Merge from trunk
authorTony Mack <tmack@cs.princeton.edu>
Tue, 13 Nov 2007 19:41:41 +0000 (19:41 +0000)
committerTony Mack <tmack@cs.princeton.edu>
Tue, 13 Nov 2007 19:41:41 +0000 (19:41 +0000)
656 files changed:
trunk/Makefile [new file with mode: 0644]
trunk/ModPython.py [new file with mode: 0644]
trunk/PLC/.cvsignore [new file with mode: 0644]
trunk/PLC/API.py [new file with mode: 0644]
trunk/PLC/AddressTypes.py [new file with mode: 0644]
trunk/PLC/Addresses.py [new file with mode: 0644]
trunk/PLC/Auth.py [new file with mode: 0644]
trunk/PLC/Boot.py [new file with mode: 0644]
trunk/PLC/BootStates.py [new file with mode: 0644]
trunk/PLC/ConfFiles.py [new file with mode: 0644]
trunk/PLC/Config.py [new file with mode: 0644]
trunk/PLC/Debug.py [new file with mode: 0644]
trunk/PLC/EventObjects.py [new file with mode: 0644]
trunk/PLC/Events.py [new file with mode: 0644]
trunk/PLC/Faults.py [new file with mode: 0644]
trunk/PLC/Filter.py [new file with mode: 0644]
trunk/PLC/GPG.py [new file with mode: 0644]
trunk/PLC/InitScripts.py [new file with mode: 0644]
trunk/PLC/KeyTypes.py [new file with mode: 0644]
trunk/PLC/Keys.py [new file with mode: 0644]
trunk/PLC/Messages.py [new file with mode: 0644]
trunk/PLC/Method.py [new file with mode: 0644]
trunk/PLC/Methods/.cvsignore [new file with mode: 0644]
trunk/PLC/Methods/AddAddressType.py [new file with mode: 0644]
trunk/PLC/Methods/AddAddressTypeToAddress.py [new file with mode: 0644]
trunk/PLC/Methods/AddBootState.py [new file with mode: 0644]
trunk/PLC/Methods/AddConfFile.py [new file with mode: 0644]
trunk/PLC/Methods/AddConfFileToNode.py [new file with mode: 0644]
trunk/PLC/Methods/AddConfFileToNodeGroup.py [new file with mode: 0644]
trunk/PLC/Methods/AddInitScript.py [new file with mode: 0644]
trunk/PLC/Methods/AddKeyType.py [new file with mode: 0644]
trunk/PLC/Methods/AddMessage.py [new file with mode: 0644]
trunk/PLC/Methods/AddNetworkMethod.py [new file with mode: 0644]
trunk/PLC/Methods/AddNetworkType.py [new file with mode: 0644]
trunk/PLC/Methods/AddNode.py [new file with mode: 0644]
trunk/PLC/Methods/AddNodeGroup.py [new file with mode: 0644]
trunk/PLC/Methods/AddNodeNetwork.py [new file with mode: 0644]
trunk/PLC/Methods/AddNodeNetworkSetting.py [new file with mode: 0644]
trunk/PLC/Methods/AddNodeNetworkSettingType.py [new file with mode: 0644]
trunk/PLC/Methods/AddNodeToNodeGroup.py [new file with mode: 0644]
trunk/PLC/Methods/AddNodeToPCU.py [new file with mode: 0644]
trunk/PLC/Methods/AddPCU.py [new file with mode: 0644]
trunk/PLC/Methods/AddPCUProtocolType.py [new file with mode: 0644]
trunk/PLC/Methods/AddPCUType.py [new file with mode: 0644]
trunk/PLC/Methods/AddPeer.py [new file with mode: 0644]
trunk/PLC/Methods/AddPerson.py [new file with mode: 0644]
trunk/PLC/Methods/AddPersonKey.py [new file with mode: 0644]
trunk/PLC/Methods/AddPersonToSite.py [new file with mode: 0644]
trunk/PLC/Methods/AddPersonToSlice.py [new file with mode: 0644]
trunk/PLC/Methods/AddRole.py [new file with mode: 0644]
trunk/PLC/Methods/AddRoleToPerson.py [new file with mode: 0644]
trunk/PLC/Methods/AddSession.py [new file with mode: 0644]
trunk/PLC/Methods/AddSite.py [new file with mode: 0644]
trunk/PLC/Methods/AddSiteAddress.py [new file with mode: 0644]
trunk/PLC/Methods/AddSlice.py [new file with mode: 0644]
trunk/PLC/Methods/AddSliceAttribute.py [new file with mode: 0644]
trunk/PLC/Methods/AddSliceAttributeType.py [new file with mode: 0644]
trunk/PLC/Methods/AddSliceInstantiation.py [new file with mode: 0644]
trunk/PLC/Methods/AddSliceToNodes.py [new file with mode: 0644]
trunk/PLC/Methods/AddSliceToNodesWhitelist.py [new file with mode: 0644]
trunk/PLC/Methods/AdmAddAddressType.py [new file with mode: 0644]
trunk/PLC/Methods/AdmAddNode.py [new file with mode: 0644]
trunk/PLC/Methods/AdmAddNodeGroup.py [new file with mode: 0644]
trunk/PLC/Methods/AdmAddNodeNetwork.py [new file with mode: 0644]
trunk/PLC/Methods/AdmAddNodeToNodeGroup.py [new file with mode: 0644]
trunk/PLC/Methods/AdmAddPerson.py [new file with mode: 0644]
trunk/PLC/Methods/AdmAddPersonKey.py [new file with mode: 0644]
trunk/PLC/Methods/AdmAddPersonToSite.py [new file with mode: 0644]
trunk/PLC/Methods/AdmAddSite.py [new file with mode: 0644]
trunk/PLC/Methods/AdmAddSitePowerControlUnit.py [new file with mode: 0644]
trunk/PLC/Methods/AdmAssociateNodeToPowerControlUnitPort.py [new file with mode: 0644]
trunk/PLC/Methods/AdmAuthCheck.py [new file with mode: 0644]
trunk/PLC/Methods/AdmDeleteAddressType.py [new file with mode: 0644]
trunk/PLC/Methods/AdmDeleteAllPersonKeys.py [new file with mode: 0644]
trunk/PLC/Methods/AdmDeleteNode.py [new file with mode: 0644]
trunk/PLC/Methods/AdmDeleteNodeGroup.py [new file with mode: 0644]
trunk/PLC/Methods/AdmDeleteNodeNetwork.py [new file with mode: 0644]
trunk/PLC/Methods/AdmDeletePerson.py [new file with mode: 0644]
trunk/PLC/Methods/AdmDeletePersonKeys.py [new file with mode: 0644]
trunk/PLC/Methods/AdmDeleteSite.py [new file with mode: 0644]
trunk/PLC/Methods/AdmDeleteSitePowerControlUnit.py [new file with mode: 0644]
trunk/PLC/Methods/AdmDisassociatePowerControlUnitPort.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGenerateNodeConfFile.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetAllAddressTypes.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetAllKeyTypes.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetAllNodeNetworks.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetAllRoles.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetNodeGroupNodes.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetNodeGroups.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetNodes.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetPersonKeys.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetPersonRoles.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetPersonSites.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetPersons.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetPowerControlUnitNodes.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetPowerControlUnits.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetSiteNodes.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetSitePIs.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetSitePersons.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetSitePowerControlUnits.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetSiteTechContacts.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGetSites.py [new file with mode: 0644]
trunk/PLC/Methods/AdmGrantRoleToPerson.py [new file with mode: 0644]
trunk/PLC/Methods/AdmIsPersonInRole.py [new file with mode: 0644]
trunk/PLC/Methods/AdmQueryConfFile.py [new file with mode: 0644]
trunk/PLC/Methods/AdmQueryNode.py [new file with mode: 0644]
trunk/PLC/Methods/AdmQueryPerson.py [new file with mode: 0644]
trunk/PLC/Methods/AdmQueryPowerControlUnit.py [new file with mode: 0644]
trunk/PLC/Methods/AdmQuerySite.py [new file with mode: 0644]
trunk/PLC/Methods/AdmRebootNode.py [new file with mode: 0644]
trunk/PLC/Methods/AdmRemoveNodeFromNodeGroup.py [new file with mode: 0644]
trunk/PLC/Methods/AdmRemovePersonFromSite.py [new file with mode: 0644]
trunk/PLC/Methods/AdmRevokeRoleFromPerson.py [new file with mode: 0644]
trunk/PLC/Methods/AdmSetPersonEnabled.py [new file with mode: 0644]
trunk/PLC/Methods/AdmSetPersonPrimarySite.py [new file with mode: 0644]
trunk/PLC/Methods/AdmUpdateNode.py [new file with mode: 0644]
trunk/PLC/Methods/AdmUpdateNodeGroup.py [new file with mode: 0644]
trunk/PLC/Methods/AdmUpdateNodeNetwork.py [new file with mode: 0644]
trunk/PLC/Methods/AdmUpdatePerson.py [new file with mode: 0644]
trunk/PLC/Methods/AdmUpdateSite.py [new file with mode: 0644]
trunk/PLC/Methods/AdmUpdateSitePowerControlUnit.py [new file with mode: 0644]
trunk/PLC/Methods/AnonAdmGetNodeGroups.py [new file with mode: 0644]
trunk/PLC/Methods/AuthCheck.py [new file with mode: 0644]
trunk/PLC/Methods/BlacklistKey.py [new file with mode: 0644]
trunk/PLC/Methods/BootCheckAuthentication.py [new file with mode: 0644]
trunk/PLC/Methods/BootGetNodeDetails.py [new file with mode: 0644]
trunk/PLC/Methods/BootNotifyOwners.py [new file with mode: 0644]
trunk/PLC/Methods/BootUpdateNode.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteAddress.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteAddressType.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteAddressTypeFromAddress.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteBootState.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteConfFile.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteConfFileFromNode.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteConfFileFromNodeGroup.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteInitScript.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteKey.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteKeyType.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteMessage.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteNetworkMethod.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteNetworkType.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteNode.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteNodeFromNodeGroup.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteNodeFromPCU.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteNodeGroup.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteNodeNetwork.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteNodeNetworkSetting.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteNodeNetworkSettingType.py [new file with mode: 0644]
trunk/PLC/Methods/DeletePCU.py [new file with mode: 0644]
trunk/PLC/Methods/DeletePCUProtocolType.py [new file with mode: 0644]
trunk/PLC/Methods/DeletePCUType.py [new file with mode: 0644]
trunk/PLC/Methods/DeletePeer.py [new file with mode: 0644]
trunk/PLC/Methods/DeletePerson.py [new file with mode: 0644]
trunk/PLC/Methods/DeletePersonFromSite.py [new file with mode: 0644]
trunk/PLC/Methods/DeletePersonFromSlice.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteRole.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteRoleFromPerson.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteSession.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteSite.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteSlice.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteSliceAttribute.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteSliceAttributeType.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteSliceFromNodes.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteSliceFromNodesWhitelist.py [new file with mode: 0644]
trunk/PLC/Methods/DeleteSliceInstantiation.py [new file with mode: 0644]
trunk/PLC/Methods/GenerateNodeConfFile.py [new file with mode: 0644]
trunk/PLC/Methods/GetAddressTypes.py [new file with mode: 0644]
trunk/PLC/Methods/GetAddresses.py [new file with mode: 0644]
trunk/PLC/Methods/GetBootMedium.py [new file with mode: 0644]
trunk/PLC/Methods/GetBootStates.py [new file with mode: 0644]
trunk/PLC/Methods/GetConfFiles.py [new file with mode: 0644]
trunk/PLC/Methods/GetEventObjects.py [new file with mode: 0644]
trunk/PLC/Methods/GetEvents.py [new file with mode: 0644]
trunk/PLC/Methods/GetInitScripts.py [new file with mode: 0644]
trunk/PLC/Methods/GetKeyTypes.py [new file with mode: 0644]
trunk/PLC/Methods/GetKeys.py [new file with mode: 0644]
trunk/PLC/Methods/GetMessages.py [new file with mode: 0644]
trunk/PLC/Methods/GetNetworkMethods.py [new file with mode: 0644]
trunk/PLC/Methods/GetNetworkTypes.py [new file with mode: 0644]
trunk/PLC/Methods/GetNodeGroups.py [new file with mode: 0644]
trunk/PLC/Methods/GetNodeNetworkSettingTypes.py [new file with mode: 0644]
trunk/PLC/Methods/GetNodeNetworkSettings.py [new file with mode: 0644]
trunk/PLC/Methods/GetNodeNetworks.py [new file with mode: 0644]
trunk/PLC/Methods/GetNodes.py [new file with mode: 0644]
trunk/PLC/Methods/GetPCUProtocolTypes.py [new file with mode: 0644]
trunk/PLC/Methods/GetPCUTypes.py [new file with mode: 0644]
trunk/PLC/Methods/GetPCUs.py [new file with mode: 0644]
trunk/PLC/Methods/GetPeerData.py [new file with mode: 0644]
trunk/PLC/Methods/GetPeerName.py [new file with mode: 0644]
trunk/PLC/Methods/GetPeers.py [new file with mode: 0644]
trunk/PLC/Methods/GetPersons.py [new file with mode: 0644]
trunk/PLC/Methods/GetPlcRelease.py [new file with mode: 0644]
trunk/PLC/Methods/GetRoles.py [new file with mode: 0644]
trunk/PLC/Methods/GetSession.py [new file with mode: 0644]
trunk/PLC/Methods/GetSessions.py [new file with mode: 0644]
trunk/PLC/Methods/GetSites.py [new file with mode: 0644]
trunk/PLC/Methods/GetSliceAttributeTypes.py [new file with mode: 0644]
trunk/PLC/Methods/GetSliceAttributes.py [new file with mode: 0644]
trunk/PLC/Methods/GetSliceInstantiations.py [new file with mode: 0644]
trunk/PLC/Methods/GetSliceKeys.py [new file with mode: 0644]
trunk/PLC/Methods/GetSliceTicket.py [new file with mode: 0644]
trunk/PLC/Methods/GetSlices.py [new file with mode: 0644]
trunk/PLC/Methods/GetSlicesMD5.py [new file with mode: 0644]
trunk/PLC/Methods/GetSlivers.py [new file with mode: 0644]
trunk/PLC/Methods/GetWhitelist.py [new file with mode: 0644]
trunk/PLC/Methods/NotifyPersons.py [new file with mode: 0644]
trunk/PLC/Methods/NotifySupport.py [new file with mode: 0644]
trunk/PLC/Methods/RebootNode.py [new file with mode: 0644]
trunk/PLC/Methods/RefreshPeer.py [new file with mode: 0644]
trunk/PLC/Methods/ResetPassword.py [new file with mode: 0644]
trunk/PLC/Methods/SetPersonPrimarySite.py [new file with mode: 0644]
trunk/PLC/Methods/SliceCreate.py [new file with mode: 0644]
trunk/PLC/Methods/SliceDelete.py [new file with mode: 0644]
trunk/PLC/Methods/SliceExtendedInfo.py [new file with mode: 0644]
trunk/PLC/Methods/SliceGetTicket.py [new file with mode: 0644]
trunk/PLC/Methods/SliceInfo.py [new file with mode: 0644]
trunk/PLC/Methods/SliceListNames.py [new file with mode: 0644]
trunk/PLC/Methods/SliceListUserSlices.py [new file with mode: 0644]
trunk/PLC/Methods/SliceNodesAdd.py [new file with mode: 0644]
trunk/PLC/Methods/SliceNodesDel.py [new file with mode: 0644]
trunk/PLC/Methods/SliceNodesList.py [new file with mode: 0644]
trunk/PLC/Methods/SliceRenew.py [new file with mode: 0644]
trunk/PLC/Methods/SliceTicketGet.py [new file with mode: 0644]
trunk/PLC/Methods/SliceUpdate.py [new file with mode: 0644]
trunk/PLC/Methods/SliceUserAdd.py [new file with mode: 0644]
trunk/PLC/Methods/SliceUserDel.py [new file with mode: 0644]
trunk/PLC/Methods/SliceUsersList.py [new file with mode: 0644]
trunk/PLC/Methods/UpdateAddress.py [new file with mode: 0644]
trunk/PLC/Methods/UpdateAddressType.py [new file with mode: 0644]
trunk/PLC/Methods/UpdateConfFile.py [new file with mode: 0644]
trunk/PLC/Methods/UpdateInitScript.py [new file with mode: 0644]
trunk/PLC/Methods/UpdateKey.py [new file with mode: 0644]
trunk/PLC/Methods/UpdateMessage.py [new file with mode: 0644]
trunk/PLC/Methods/UpdateNode.py [new file with mode: 0644]
trunk/PLC/Methods/UpdateNodeGroup.py [new file with mode: 0644]
trunk/PLC/Methods/UpdateNodeNetwork.py [new file with mode: 0644]
trunk/PLC/Methods/UpdateNodeNetworkSetting.py [new file with mode: 0644]
trunk/PLC/Methods/UpdateNodeNetworkSettingType.py [new file with mode: 0644]
trunk/PLC/Methods/UpdatePCU.py [new file with mode: 0644]
trunk/PLC/Methods/UpdatePCUProtocolType.py [new file with mode: 0644]
trunk/PLC/Methods/UpdatePCUType.py [new file with mode: 0644]
trunk/PLC/Methods/UpdatePeer.py [new file with mode: 0644]
trunk/PLC/Methods/UpdatePerson.py [new file with mode: 0644]
trunk/PLC/Methods/UpdateSite.py [new file with mode: 0644]
trunk/PLC/Methods/UpdateSlice.py [new file with mode: 0644]
trunk/PLC/Methods/UpdateSliceAttribute.py [new file with mode: 0644]
trunk/PLC/Methods/UpdateSliceAttributeType.py [new file with mode: 0644]
trunk/PLC/Methods/VerifyPerson.py [new file with mode: 0644]
trunk/PLC/Methods/__init__.py [new file with mode: 0644]
trunk/PLC/Methods/system/.cvsignore [new file with mode: 0644]
trunk/PLC/Methods/system/__init__.py [new file with mode: 0644]
trunk/PLC/Methods/system/listMethods.py [new file with mode: 0644]
trunk/PLC/Methods/system/methodHelp.py [new file with mode: 0644]
trunk/PLC/Methods/system/methodSignature.py [new file with mode: 0644]
trunk/PLC/Methods/system/multicall.py [new file with mode: 0644]
trunk/PLC/NetworkMethods.py [new file with mode: 0644]
trunk/PLC/NetworkTypes.py [new file with mode: 0644]
trunk/PLC/NodeGroups.py [new file with mode: 0644]
trunk/PLC/NodeNetworkSettingTypes.py [new file with mode: 0644]
trunk/PLC/NodeNetworkSettings.py [new file with mode: 0644]
trunk/PLC/NodeNetworks.py [new file with mode: 0644]
trunk/PLC/Nodes.py [new file with mode: 0644]
trunk/PLC/PCUProtocolTypes.py [new file with mode: 0644]
trunk/PLC/PCUTypes.py [new file with mode: 0644]
trunk/PLC/PCUs.py [new file with mode: 0644]
trunk/PLC/POD.py [new file with mode: 0644]
trunk/PLC/Parameter.py [new file with mode: 0644]
trunk/PLC/Peers.py [new file with mode: 0644]
trunk/PLC/Persons.py [new file with mode: 0644]
trunk/PLC/PostgreSQL.py [new file with mode: 0644]
trunk/PLC/PyCurl.py [new file with mode: 0644]
trunk/PLC/Roles.py [new file with mode: 0644]
trunk/PLC/Sessions.py [new file with mode: 0644]
trunk/PLC/Shell.py [new file with mode: 0644]
trunk/PLC/Sites.py [new file with mode: 0644]
trunk/PLC/SliceAttributeTypes.py [new file with mode: 0644]
trunk/PLC/SliceAttributes.py [new file with mode: 0644]
trunk/PLC/SliceInstantiations.py [new file with mode: 0644]
trunk/PLC/Slices.py [new file with mode: 0644]
trunk/PLC/Table.py [new file with mode: 0644]
trunk/PLC/Test.py [new file with mode: 0644]
trunk/PLC/__init__.py [new file with mode: 0644]
trunk/PLC/sendmail.py [new file with mode: 0644]
trunk/PLCAPI.spec [new file with mode: 0644]
trunk/Server.py [new file with mode: 0755]
trunk/TODO [new file with mode: 0644]
trunk/Test.py [new file with mode: 0755]
trunk/doc/.cvsignore [new file with mode: 0644]
trunk/doc/DocBook.py [new file with mode: 0755]
trunk/doc/DocBookLocal.py [new file with mode: 0644]
trunk/doc/Makefile [new file with mode: 0644]
trunk/doc/PLCAPI.html [new file with mode: 0644]
trunk/doc/PLCAPI.pdf [new file with mode: 0644]
trunk/doc/PLCAPI.xml [new file with mode: 0644]
trunk/migrations/001-down-subversion.sql [new file with mode: 0644]
trunk/migrations/001-up-subversion.sql [new file with mode: 0644]
trunk/migrations/002-up-slices.sql [new file with mode: 0644]
trunk/migrations/003-down-network-settings.sql [new file with mode: 0644]
trunk/migrations/003-test.py [new file with mode: 0755]
trunk/migrations/003-up-network-settings.sql [new file with mode: 0644]
trunk/migrations/004-up-fix-site-nodes.sql [new file with mode: 0644]
trunk/migrations/005-down-import-apr-2007.sql [new file with mode: 0644]
trunk/migrations/005-up-import-apr-2007.sql [new file with mode: 0644]
trunk/migrations/006-down-slice-attribute-nodegroup.sql [new file with mode: 0644]
trunk/migrations/006-up-slice-attribute-nodegroup.sql [new file with mode: 0644]
trunk/migrations/007-down-event-objects-view.sql [new file with mode: 0644]
trunk/migrations/007-up-event-objects-view.sql [new file with mode: 0644]
trunk/migrations/008-down-import-aug-2007.sql [new file with mode: 0644]
trunk/migrations/008-up-import-aug-2007.sql [new file with mode: 0644]
trunk/migrations/009-down-pcu-types.sql [new file with mode: 0644]
trunk/migrations/009-up-pcu-types.sql [new file with mode: 0644]
trunk/migrations/README.txt [new file with mode: 0644]
trunk/php/.cvsignore [new file with mode: 0644]
trunk/php/Makefile [new file with mode: 0644]
trunk/php/footer.php [new file with mode: 0644]
trunk/php/header.php [new file with mode: 0644]
trunk/php/methods.py [new file with mode: 0755]
trunk/php/xmlrpc/CREDITS [new file with mode: 0644]
trunk/php/xmlrpc/EXPERIMENTAL [new file with mode: 0644]
trunk/php/xmlrpc/Makefile [new file with mode: 0644]
trunk/php/xmlrpc/config.m4 [new file with mode: 0644]
trunk/php/xmlrpc/config.m4.lib64 [new file with mode: 0644]
trunk/php/xmlrpc/config.w32 [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/README [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/acinclude.m4 [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/base64.c [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/base64.h [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/encodings.c [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/encodings.h [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/queue.c [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/queue.h [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/simplestring.c [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/simplestring.h [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/system_methods.c [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/system_methods_private.h [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xml_element.c [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xml_element.c.gcc4 [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xml_element.h [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xml_to_dandarpc.c [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xml_to_dandarpc.h [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xml_to_soap.c [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xml_to_soap.h [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xml_to_xmlrpc.c [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xml_to_xmlrpc.h [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xmlrpc.c [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xmlrpc.h [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xmlrpc.m4 [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xmlrpc_introspection.c [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xmlrpc_introspection.h [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xmlrpc_introspection_private.h [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xmlrpc_private.h [new file with mode: 0644]
trunk/php/xmlrpc/libxmlrpc/xmlrpc_win32.h [new file with mode: 0644]
trunk/php/xmlrpc/php_xmlrpc.h [new file with mode: 0644]
trunk/php/xmlrpc/xmlrpc-epi-php.c [new file with mode: 0644]
trunk/php/xmlrpc/xmlrpc.dsp [new file with mode: 0644]
trunk/planetlab4.sql [new file with mode: 0644]
trunk/plcsh [new file with mode: 0755]
trunk/plctest/TestConfig.py [new file with mode: 0644]
trunk/plctest/TestMain.py [new file with mode: 0755]
trunk/plctest/TestNode.py [new file with mode: 0644]
trunk/plctest/TestPlc.py [new file with mode: 0644]
trunk/plctest/TestRestore.py [new file with mode: 0755]
trunk/plctest/TestSite.py [new file with mode: 0644]
trunk/plctest/tty_conf [new file with mode: 0644]
trunk/psycopg2/AUTHORS [new file with mode: 0644]
trunk/psycopg2/ChangeLog [new file with mode: 0644]
trunk/psycopg2/INSTALL [new file with mode: 0644]
trunk/psycopg2/LICENSE [new file with mode: 0644]
trunk/psycopg2/MANIFEST [new file with mode: 0644]
trunk/psycopg2/MANIFEST.in [new file with mode: 0644]
trunk/psycopg2/PKG-INFO [new file with mode: 0644]
trunk/psycopg2/README [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/DA.py [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/__init__.py [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/db.py [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/dtml/add.dtml [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/dtml/browse.dtml [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/dtml/edit.dtml [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/dtml/table_info.dtml [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/icons/bin.gif [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/icons/date.gif [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/icons/datetime.gif [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/icons/field.gif [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/icons/float.gif [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/icons/int.gif [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/icons/stable.gif [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/icons/table.gif [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/icons/text.gif [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/icons/time.gif [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/icons/view.gif [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/icons/what.gif [new file with mode: 0644]
trunk/psycopg2/ZPsycopgDA/pool.py [new file with mode: 0644]
trunk/psycopg2/debian/changelog [new file with mode: 0644]
trunk/psycopg2/debian/control [new file with mode: 0644]
trunk/psycopg2/debian/copyright [new file with mode: 0644]
trunk/psycopg2/debian/rules [new file with mode: 0755]
trunk/psycopg2/doc/ChangeLog-1.x [new file with mode: 0644]
trunk/psycopg2/doc/HACKING [new file with mode: 0644]
trunk/psycopg2/doc/SUCCESS [new file with mode: 0644]
trunk/psycopg2/doc/TODO [new file with mode: 0644]
trunk/psycopg2/doc/api-screen.css [new file with mode: 0644]
trunk/psycopg2/doc/api/epydoc.css [new file with mode: 0644]
trunk/psycopg2/doc/api/index.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/__builtin__.list-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/__builtin__.object-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/__builtin__.type-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/datetime.tzinfo-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/epydoc.css [new file with mode: 0644]
trunk/psycopg2/doc/api/private/exceptions.Exception-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/exceptions.StandardError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/frames.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/help.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/index.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/indices.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.DataError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.DatabaseError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.Error-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.IntegrityError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.InterfaceError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.InternalError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.NotSupportedError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.OperationalError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.ProgrammingError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.Warning-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2._psycopg-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2._psycopg.ISQLQuote-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2._psycopg.connection-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2._psycopg.cursor-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.extensions-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.extras-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.extras.DictConnection-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.extras.DictCursor-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.extras.DictRow-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.extras.SQL_IN-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.pool-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.pool.AbstractConnectionPool-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.pool.PersistentConnectionPool-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.pool.PoolError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.pool.SimpleConnectionPool-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.pool.ThreadedConnectionPool-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.psycopg1-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.psycopg1.connection-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.psycopg1.cursor-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.tz-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.tz.FixedOffsetTimezone-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/psycopg2.tz.LocalTimezone-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/toc-everything.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/toc-psycopg2-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/toc-psycopg2._psycopg-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/toc-psycopg2.extensions-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/toc-psycopg2.extras-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/toc-psycopg2.pool-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/toc-psycopg2.psycopg1-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/toc-psycopg2.tz-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/toc.html [new file with mode: 0644]
trunk/psycopg2/doc/api/private/trees.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/__builtin__.list-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/__builtin__.object-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/__builtin__.type-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/datetime.tzinfo-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/epydoc.css [new file with mode: 0644]
trunk/psycopg2/doc/api/public/exceptions.Exception-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/exceptions.StandardError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/frames.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/help.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/index.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/indices.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.DataError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.DatabaseError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.Error-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.IntegrityError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.InterfaceError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.InternalError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.NotSupportedError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.OperationalError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.ProgrammingError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.Warning-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2._psycopg-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.extensions-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.extras-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.extras.DictConnection-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.extras.DictCursor-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.extras.DictRow-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.extras.SQL_IN-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.pool-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.pool.AbstractConnectionPool-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.pool.PersistentConnectionPool-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.pool.PoolError-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.pool.SimpleConnectionPool-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.pool.ThreadedConnectionPool-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.psycopg1-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.psycopg1.connection-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.psycopg1.cursor-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.tz-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.tz.FixedOffsetTimezone-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/psycopg2.tz.LocalTimezone-class.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/toc-everything.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/toc-psycopg2-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/toc-psycopg2._psycopg-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/toc-psycopg2.extensions-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/toc-psycopg2.extras-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/toc-psycopg2.pool-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/toc-psycopg2.psycopg1-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/toc-psycopg2.tz-module.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/toc.html [new file with mode: 0644]
trunk/psycopg2/doc/api/public/trees.html [new file with mode: 0644]
trunk/psycopg2/doc/async.txt [new file with mode: 0644]
trunk/psycopg2/doc/extensions.html [new file with mode: 0644]
trunk/psycopg2/doc/extensions.rst [new file with mode: 0644]
trunk/psycopg2/examples/binary.py [new file with mode: 0644]
trunk/psycopg2/examples/copy_from.py [new file with mode: 0644]
trunk/psycopg2/examples/copy_to.py [new file with mode: 0644]
trunk/psycopg2/examples/cursor.py [new file with mode: 0644]
trunk/psycopg2/examples/dialtone.py [new file with mode: 0644]
trunk/psycopg2/examples/dict.py [new file with mode: 0644]
trunk/psycopg2/examples/dt.py [new file with mode: 0644]
trunk/psycopg2/examples/encoding.py [new file with mode: 0644]
trunk/psycopg2/examples/fetch.py [new file with mode: 0644]
trunk/psycopg2/examples/lastrowid.py [new file with mode: 0644]
trunk/psycopg2/examples/mogrify.py [new file with mode: 0644]
trunk/psycopg2/examples/myfirstrecipe.py [new file with mode: 0644]
trunk/psycopg2/examples/notify.py [new file with mode: 0644]
trunk/psycopg2/examples/simple.py [new file with mode: 0644]
trunk/psycopg2/examples/somehackers.jpg [new file with mode: 0644]
trunk/psycopg2/examples/threads.py [new file with mode: 0644]
trunk/psycopg2/examples/tz.py [new file with mode: 0644]
trunk/psycopg2/examples/usercast.py [new file with mode: 0644]
trunk/psycopg2/examples/whereareyou.jpg [new file with mode: 0644]
trunk/psycopg2/lib/__init__.py [new file with mode: 0644]
trunk/psycopg2/lib/extensions.py [new file with mode: 0644]
trunk/psycopg2/lib/extras.py [new file with mode: 0644]
trunk/psycopg2/lib/pool.py [new file with mode: 0644]
trunk/psycopg2/lib/psycopg1.py [new file with mode: 0644]
trunk/psycopg2/lib/tz.py [new file with mode: 0644]
trunk/psycopg2/psycopg/adapter_asis.c [new file with mode: 0644]
trunk/psycopg2/psycopg/adapter_asis.h [new file with mode: 0644]
trunk/psycopg2/psycopg/adapter_binary.c [new file with mode: 0644]
trunk/psycopg2/psycopg/adapter_binary.h [new file with mode: 0644]
trunk/psycopg2/psycopg/adapter_datetime.c [new file with mode: 0644]
trunk/psycopg2/psycopg/adapter_datetime.h [new file with mode: 0644]
trunk/psycopg2/psycopg/adapter_list.c [new file with mode: 0644]
trunk/psycopg2/psycopg/adapter_list.h [new file with mode: 0644]
trunk/psycopg2/psycopg/adapter_mxdatetime.c [new file with mode: 0644]
trunk/psycopg2/psycopg/adapter_mxdatetime.h [new file with mode: 0644]
trunk/psycopg2/psycopg/adapter_pboolean.c [new file with mode: 0644]
trunk/psycopg2/psycopg/adapter_pboolean.h [new file with mode: 0644]
trunk/psycopg2/psycopg/adapter_qstring.c [new file with mode: 0644]
trunk/psycopg2/psycopg/adapter_qstring.h [new file with mode: 0644]
trunk/psycopg2/psycopg/config.h [new file with mode: 0644]
trunk/psycopg2/psycopg/connection.h [new file with mode: 0644]
trunk/psycopg2/psycopg/connection_int.c [new file with mode: 0644]
trunk/psycopg2/psycopg/connection_type.c [new file with mode: 0644]
trunk/psycopg2/psycopg/cursor.h [new file with mode: 0644]
trunk/psycopg2/psycopg/cursor_int.c [new file with mode: 0644]
trunk/psycopg2/psycopg/cursor_type.c [new file with mode: 0644]
trunk/psycopg2/psycopg/microprotocols.c [new file with mode: 0644]
trunk/psycopg2/psycopg/microprotocols.h [new file with mode: 0644]
trunk/psycopg2/psycopg/microprotocols_proto.c [new file with mode: 0644]
trunk/psycopg2/psycopg/microprotocols_proto.h [new file with mode: 0644]
trunk/psycopg2/psycopg/pgtypes.h [new file with mode: 0644]
trunk/psycopg2/psycopg/pgversion.h [new file with mode: 0644]
trunk/psycopg2/psycopg/pqpath.c [new file with mode: 0644]
trunk/psycopg2/psycopg/pqpath.h [new file with mode: 0644]
trunk/psycopg2/psycopg/psycopg.h [new file with mode: 0644]
trunk/psycopg2/psycopg/psycopgmodule.c [new file with mode: 0644]
trunk/psycopg2/psycopg/python.h [new file with mode: 0644]
trunk/psycopg2/psycopg/typecast.c [new file with mode: 0644]
trunk/psycopg2/psycopg/typecast.h [new file with mode: 0644]
trunk/psycopg2/psycopg/typecast_array.c [new file with mode: 0644]
trunk/psycopg2/psycopg/typecast_basic.c [new file with mode: 0644]
trunk/psycopg2/psycopg/typecast_binary.c [new file with mode: 0644]
trunk/psycopg2/psycopg/typecast_binary.h [new file with mode: 0644]
trunk/psycopg2/psycopg/typecast_builtins.c [new file with mode: 0644]
trunk/psycopg2/psycopg/typecast_datetime.c [new file with mode: 0644]
trunk/psycopg2/psycopg/typecast_mxdatetime.c [new file with mode: 0644]
trunk/psycopg2/scripts/buildtypes.py [new file with mode: 0644]
trunk/psycopg2/scripts/ext2html.py [new file with mode: 0755]
trunk/psycopg2/scripts/makedocs.py [new file with mode: 0755]
trunk/psycopg2/scripts/maketypes.sh [new file with mode: 0755]
trunk/psycopg2/setup.cfg [new file with mode: 0644]
trunk/psycopg2/setup.py [new file with mode: 0644]
trunk/psycopg2/tests/dbapi20.py [new file with mode: 0644]
trunk/psycopg2/tests/extras_dictcursor.py [new file with mode: 0644]
trunk/psycopg2/tests/test_psycopg2_dbapi20.py [new file with mode: 0644]
trunk/psycopg2/tests/types_basic.py [new file with mode: 0644]
trunk/pycurl/COPYING [new file with mode: 0644]
trunk/pycurl/ChangeLog [new file with mode: 0644]
trunk/pycurl/INSTALL [new file with mode: 0644]
trunk/pycurl/MANIFEST.in [new file with mode: 0644]
trunk/pycurl/Makefile [new file with mode: 0644]
trunk/pycurl/PKG-INFO [new file with mode: 0644]
trunk/pycurl/README [new file with mode: 0644]
trunk/pycurl/TODO [new file with mode: 0644]
trunk/pycurl/doc/callbacks.html [new file with mode: 0644]
trunk/pycurl/doc/curlmultiobject.html [new file with mode: 0644]
trunk/pycurl/doc/curlobject.html [new file with mode: 0644]
trunk/pycurl/doc/pycurl.html [new file with mode: 0644]
trunk/pycurl/examples/basicfirst.py [new file with mode: 0644]
trunk/pycurl/examples/file_upload.py [new file with mode: 0644]
trunk/pycurl/examples/linksys.py [new file with mode: 0755]
trunk/pycurl/examples/retriever-multi.py [new file with mode: 0644]
trunk/pycurl/examples/retriever.py [new file with mode: 0644]
trunk/pycurl/examples/sfquery.py [new file with mode: 0644]
trunk/pycurl/examples/xmlrpc_curl.py [new file with mode: 0644]
trunk/pycurl/python/curl/__init__.py [new file with mode: 0644]
trunk/pycurl/setup.py [new file with mode: 0644]
trunk/pycurl/setup_win32_ssl.py [new file with mode: 0644]
trunk/pycurl/src/Makefile [new file with mode: 0644]
trunk/pycurl/src/pycurl.c [new file with mode: 0644]
trunk/pycurl/tests/test.py [new file with mode: 0644]
trunk/pycurl/tests/test_cb.py [new file with mode: 0644]
trunk/pycurl/tests/test_debug.py [new file with mode: 0644]
trunk/pycurl/tests/test_getinfo.py [new file with mode: 0644]
trunk/pycurl/tests/test_gtk.py [new file with mode: 0644]
trunk/pycurl/tests/test_internals.py [new file with mode: 0644]
trunk/pycurl/tests/test_memleak.py [new file with mode: 0644]
trunk/pycurl/tests/test_multi.py [new file with mode: 0644]
trunk/pycurl/tests/test_multi2.py [new file with mode: 0644]
trunk/pycurl/tests/test_multi3.py [new file with mode: 0644]
trunk/pycurl/tests/test_multi4.py [new file with mode: 0644]
trunk/pycurl/tests/test_multi5.py [new file with mode: 0644]
trunk/pycurl/tests/test_multi6.py [new file with mode: 0644]
trunk/pycurl/tests/test_multi_vs_thread.py [new file with mode: 0644]
trunk/pycurl/tests/test_post.py [new file with mode: 0644]
trunk/pycurl/tests/test_post2.py [new file with mode: 0644]
trunk/pycurl/tests/test_post3.py [new file with mode: 0644]
trunk/pycurl/tests/test_stringio.py [new file with mode: 0644]
trunk/pycurl/tests/test_xmlrpc.py [new file with mode: 0644]
trunk/pycurl/tests/util.py [new file with mode: 0644]
trunk/refresh-peer.py [new file with mode: 0644]
trunk/setup.py [new file with mode: 0755]
trunk/tests/Makefile [new file with mode: 0644]
trunk/tests/Test.py [new file with mode: 0755]
trunk/tests/TestCases.py [new file with mode: 0755]
trunk/tests/TestPeers.py [new file with mode: 0755]
trunk/tests/readme.txt [new file with mode: 0644]
trunk/tests/regrtests.cron [new file with mode: 0644]
trunk/tests/regrtests.py [new file with mode: 0644]
trunk/tests/testpeers.-b.-1.populate.ref [new file with mode: 0644]
trunk/tests/testpeers.-b.-2.populate.ref [new file with mode: 0644]
trunk/tests/testpeers.-b.populate_end.ref [new file with mode: 0644]
trunk/tests/testpeers.-h.populate_end.ref [new file with mode: 0644]
trunk/tests/testpeers.-m.-1.populate.ref [new file with mode: 0644]
trunk/tests/testpeers.-m.-2.populate.ref [new file with mode: 0644]
trunk/tests/testpeers.-m.populate_end.ref [new file with mode: 0644]
trunk/tests/testpeers.-m.test_all.ref [new file with mode: 0644]
trunk/tests/testpeers.-n.-1.populate.ref [new file with mode: 0644]
trunk/tests/testpeers.-n.-2.populate.ref [new file with mode: 0644]
trunk/tests/testpeers.-n.populate_end.ref [new file with mode: 0644]
trunk/tools/dzombie.py [new file with mode: 0755]
trunk/tools/planetlab3_dump.sh [new file with mode: 0755]
trunk/tools/plcdb.3-4.conf [new file with mode: 0644]
trunk/tools/slice_attributes.py [new file with mode: 0755]
trunk/tools/upgrade-db.py [new file with mode: 0755]

diff --git a/trunk/Makefile b/trunk/Makefile
new file mode 100644 (file)
index 0000000..6dab495
--- /dev/null
@@ -0,0 +1,143 @@
+#
+# (Re)builds Python metafiles (__init__.py) and documentation
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2005 The Trustees of Princeton University
+#
+# $Id$
+#
+
+# Metafiles
+init := PLC/__init__.py PLC/Methods/__init__.py
+
+# Python modules
+#modules := psycopg2
+modules := pycurl
+
+# Temporarily until we can kill the Fedora Core 2 build
+curl_vernum := $(shell printf %d 0x$(shell curl-config --vernum))
+pycurl_vernum := $(shell printf %d 0x070d01) # 7.13.1
+pycurl_incompatnum := $(shell printf %d 0x071000) # 7.16.0
+ifeq ($(shell test $(curl_vernum) -ge $(pycurl_vernum) && echo 1),1)
+ifeq ($(shell test $(curl_vernum) -ge $(pycurl_incompatnum) && echo 0),1)
+modules += pycurl
+endif
+endif
+
+modules-install := $(foreach module, $(modules), $(module)-install)
+modules-clean := $(foreach module, $(modules), $(module)-clean)
+
+# Other stuff
+subdirs := doc php php/xmlrpc
+
+# autoconf compatible variables
+DESTDIR := /plc/root
+datadir := /usr/share
+bindir := /usr/bin
+
+PWD := $(shell pwd)
+
+all: $(init) $(subdirs) $(modules)
+       python setup.py build
+
+install: $(modules-install)
+       python setup.py install \
+           --install-purelib=$(DESTDIR)/$(datadir)/plc_api \
+           --install-scripts=$(DESTDIR)/$(datadir)/plc_api \
+           --install-data=$(DESTDIR)/$(datadir)/plc_api
+       install -D -m 755 php/xmlrpc/xmlrpc.so $(DESTDIR)/$(shell php-config --extension-dir)/xmlrpc.so
+       install -D -m 755 refresh-peer.py $(DESTDIR)/$(bindir)/refresh-peer.py
+
+$(subdirs): $(init) $(modules)
+
+$(subdirs): %:
+       $(MAKE) -C $@
+
+$(modules):
+        # Install in the current directory so that we can import it while developing
+       cd $@ && \
+           python setup.py build && \
+           python setup.py install_lib --install-dir=$(PWD)
+
+$(modules-install): %-install:
+       cd $* && \
+           python setup.py install_lib --install-dir=$(DESTDIR)/$(datadir)/plc_api
+
+$(modules-clean): %-clean:
+       cd $* && python setup.py clean && rm -rf build
+
+clean: $(modules-clean)
+       find . -name '*.pyc' | xargs rm -f
+       rm -f $(INIT)
+       for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir clean ; done
+       python setup.py clean && rm -rf build
+
+index: $(init)
+
+index-clean:
+       rm $(init)
+
+tags:
+       find . '(' -name '*.py' -o -name '*.sql' -o -name '*.php' -o -name Makefile ')' | xargs etags
+
+########## make sync PLCHOST=hostname
+ifdef PLCHOST
+PLCSSH:=root@$(PLCHOST)
+endif
+
+LOCAL_RSYNC_EXCLUDES   := --exclude '*.pyc' 
+RSYNC_EXCLUDES         := --exclude .svn --exclude CVS --exclude '*~' --exclude TAGS $(LOCAL_RSYNC_EXCLUDES)
+RSYNC_COND_DRY_RUN     := $(if $(findstring n,$(MAKEFLAGS)),--dry-run,)
+RSYNC                  := rsync -a -v $(RSYNC_COND_DRY_RUN) $(RSYNC_EXCLUDES)
+
+sync:
+ifeq (,$(PLCSSH))
+       echo "sync: You must define target host as PLCHOST on the command line"
+       echo " e.g. make sync PLCHOST=private.one-lab.org" ; exit 1
+else
+       +$(RSYNC) PLC planetlab4.sql migrations $(PLCSSH):/plc/root/usr/share/plc_api/
+       ssh $(PLCSSH) chroot /plc/root apachectl graceful
+endif
+
+####################
+# All .py files in PLC/
+
+# the current content of __init__.py
+PLC_now := $(sort $(shell fgrep -v '"' PLC/__init__.py 2>/dev/null))
+# what should be declared
+PLC_paths := $(filter-out %/__init__.py, $(wildcard PLC/*.py))
+PLC_files := $(sort $(notdir $(PLC_paths:.py=)))
+
+ifneq ($(PLC_now),$(PLC_files))
+PLC/__init__.py: force
+endif
+PLC/__init__.py: 
+       (echo 'all = """' ; cd PLC; ls -1 *.py | grep -v __init__ | sed -e 's,.py$$,,' ; echo '""".split()') > $@
+
+
+# the current content of __init__.py
+METHODS_now := $(sort $(shell fgrep -v '"' PLC/Methods/__init__.py 2>/dev/null))
+# what should be declared
+METHODS_paths := $(filter-out %/__init__.py, $(wildcard PLC/Methods/*.py PLC/Methods/system/*.py))
+METHODS_files := $(sort $(notdir $(subst system/, system., $(METHODS_paths:.py=))))
+
+ifneq ($(METHODS_now),$(METHODS_files))
+PLC/Methods/__init__.py: force
+endif
+PLC/Methods/__init__.py: 
+       (echo 'methods = """' ; cd PLC/Methods; ls -1 *.py system/*.py | grep -v __init__ | sed -e 's,.py$$,,' -e 's,system/,system.,' ; echo '""".split()') > $@
+
+force:
+
+.PHONY: all install force clean index tags $(subdirs) $(modules)
+
+#################### convenience, for debugging only
+# make +foo : prints the value of $(foo)
+# make ++foo : idem but verbose, i.e. foo=$(foo)
+++%: varname=$(subst +,,$@)
+++%:
+       @echo "$(varname)=$($(varname))"
++%: varname=$(subst +,,$@)
++%:
+       @echo "$($(varname))"
+
diff --git a/trunk/ModPython.py b/trunk/ModPython.py
new file mode 100644 (file)
index 0000000..c722114
--- /dev/null
@@ -0,0 +1,62 @@
+#
+# Apache mod_python interface
+#
+# Aaron Klingaman <alk@absarokasoft.com>
+# Mark Huang <mlhuang@cs.princeton.edu>
+#
+# Copyright (C) 2004-2006 The Trustees of Princeton University
+# $Id$
+#
+
+import sys
+import traceback
+import xmlrpclib
+from mod_python import apache
+
+from PLC.Debug import log
+
+from PLC.API import PLCAPI
+api = PLCAPI()
+
+def handler(req):
+    try:
+        if req.method != "POST":
+            req.content_type = "text/html"
+            req.send_http_header()
+            req.write("""
+<html><head>
+<title>PLCAPI XML-RPC/SOAP Interface</title>
+</head><body>
+<h1>PLCAPI XML-RPC/SOAP Interface</h1>
+<p>Please use XML-RPC or SOAP to access the PLCAPI.</p>
+</body></html>
+""")
+            return apache.OK
+
+        # Read request
+        request = req.read(int(req.headers_in['content-length']))
+
+        # mod_python < 3.2: The IP address portion of remote_addr is
+        # incorrect (always 0.0.0.0) when IPv6 is enabled.
+        # http://issues.apache.org/jira/browse/MODPYTHON-64?page=all
+        (remote_ip, remote_port) = req.connection.remote_addr
+        remote_addr = (req.connection.remote_ip, remote_port)
+
+        # Handle request
+        response = api.handle(remote_addr, request)
+
+        # Shut down database connection, otherwise up to MaxClients DB
+        # connections will remain open.
+        api.db.close()
+
+        # Write response
+        req.content_type = "text/xml; charset=" + api.encoding
+        req.send_http_header()
+        req.write(response)
+
+        return apache.OK
+
+    except Exception, err:
+        # Log error in /var/log/httpd/(ssl_)?error_log
+        print >> log, err, traceback.format_exc()
+        return apache.HTTP_INTERNAL_SERVER_ERROR
diff --git a/trunk/PLC/.cvsignore b/trunk/PLC/.cvsignore
new file mode 100644 (file)
index 0000000..0d20b64
--- /dev/null
@@ -0,0 +1 @@
+*.pyc
diff --git a/trunk/PLC/API.py b/trunk/PLC/API.py
new file mode 100644 (file)
index 0000000..7fcfa09
--- /dev/null
@@ -0,0 +1,174 @@
+#
+# PLCAPI XML-RPC and SOAP interfaces
+#
+# Aaron Klingaman <alk@absarokasoft.com>
+# Mark Huang <mlhuang@cs.princeton.edu>
+#
+# Copyright (C) 2004-2006 The Trustees of Princeton University
+# $Id$
+#
+
+import sys
+import traceback
+import string
+
+import xmlrpclib
+
+# See "2.2 Characters" in the XML specification:
+#
+# #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD]
+# avoiding
+# [#x7F-#x84], [#x86-#x9F], [#xFDD0-#xFDDF]
+
+invalid_xml_ascii = map(chr, range(0x0, 0x8) + [0xB, 0xC] + range(0xE, 0x1F))
+xml_escape_table = string.maketrans("".join(invalid_xml_ascii), "?" * len(invalid_xml_ascii))
+
+def xmlrpclib_escape(s, replace = string.replace):
+    """
+    xmlrpclib does not handle invalid 7-bit control characters. This
+    function augments xmlrpclib.escape, which by default only replaces
+    '&', '<', and '>' with entities.
+    """
+
+    # This is the standard xmlrpclib.escape function
+    s = replace(s, "&", "&amp;")
+    s = replace(s, "<", "&lt;")
+    s = replace(s, ">", "&gt;",)
+
+    # Replace invalid 7-bit control characters with '?'
+    return s.translate(xml_escape_table)
+
+def xmlrpclib_dump(self, value, write):
+    """
+    xmlrpclib cannot marshal instances of subclasses of built-in
+    types. This function overrides xmlrpclib.Marshaller.__dump so that
+    any value that is an instance of one of its acceptable types is
+    marshalled as that type.
+
+    xmlrpclib also cannot handle invalid 7-bit control characters. See
+    above.
+    """
+
+    # Use our escape function
+    args = [self, value, write]
+    if isinstance(value, (str, unicode)):
+        args.append(xmlrpclib_escape)
+
+    try:
+        # Try for an exact match first
+        f = self.dispatch[type(value)]
+    except KeyError:
+        # Try for an isinstance() match
+        for Type, f in self.dispatch.iteritems():
+            if isinstance(value, Type):
+                f(*args)
+                return
+        raise TypeError, "cannot marshal %s objects" % type(value)
+    else:
+        f(*args)
+
+# You can't hide from me!
+xmlrpclib.Marshaller._Marshaller__dump = xmlrpclib_dump
+
+# SOAP support is optional
+try:
+    import SOAPpy
+    from SOAPpy.Parser import parseSOAPRPC
+    from SOAPpy.Types import faultType
+    from SOAPpy.NS import NS
+    from SOAPpy.SOAPBuilder import buildSOAP
+except ImportError:
+    SOAPpy = None
+
+from PLC.Config import Config
+from PLC.Faults import *
+import PLC.Methods
+
+class PLCAPI:
+    methods = PLC.Methods.methods
+
+    def __init__(self, config = "/etc/planetlab/plc_config", encoding = "utf-8"):
+        self.encoding = encoding
+
+        # Better just be documenting the API
+        if config is None:
+            return
+
+        # Load configuration
+        self.config = Config(config)
+       
+       # Initialize database connection
+        if self.config.PLC_DB_TYPE == "postgresql":
+            from PLC.PostgreSQL import PostgreSQL
+            self.db = PostgreSQL(self)
+
+        else:
+            raise PLCAPIError, "Unsupported database type " + self.config.PLC_DB_TYPE
+
+    def callable(self, method):
+        """
+        Return a new instance of the specified method.
+        """
+
+        # Look up method
+        if method not in self.methods:
+            raise PLCInvalidAPIMethod, method
+
+        # Get new instance of method
+        try:
+            classname = method.split(".")[-1]
+            module = __import__("PLC.Methods." + method, globals(), locals(), [classname])
+            return getattr(module, classname)(self)
+        except ImportError, AttributeError:
+            raise PLCInvalidAPIMethod, method
+
+    def call(self, source, method, *args):
+        """
+        Call the named method from the specified source with the
+        specified arguments.
+        """
+
+        function = self.callable(method)
+        function.source = source
+        return function(*args)
+
+    def handle(self, source, data):
+        """
+        Handle an XML-RPC or SOAP request from the specified source.
+        """
+
+        # Parse request into method name and arguments
+        try:
+            interface = xmlrpclib
+            (args, method) = xmlrpclib.loads(data)
+            methodresponse = True
+        except Exception, e:
+            if SOAPpy is not None:
+                interface = SOAPpy
+                (r, header, body, attrs) = parseSOAPRPC(data, header = 1, body = 1, attrs = 1)
+                method = r._name
+                args = r._aslist()
+                # XXX Support named arguments
+            else:
+                raise e
+
+        try:
+            result = self.call(source, method, *args)
+        except PLCFault, fault:
+            # Handle expected faults
+            if interface == xmlrpclib:
+                result = fault
+                methodresponse = None
+            elif interface == SOAPpy:
+                result = faultParameter(NS.ENV_T + ":Server", "Method Failed", method)
+                result._setDetail("Fault %d: %s" % (fault.faultCode, fault.faultString))
+
+        # Return result
+        if interface == xmlrpclib:
+            if not isinstance(result, PLCFault):
+                result = (result,)
+            data = xmlrpclib.dumps(result, methodresponse = True, encoding = self.encoding, allow_none = 1)
+        elif interface == SOAPpy:
+            data = buildSOAP(kw = {'%sResponse' % method: {'Result': result}}, encoding = self.encoding)
+
+        return data
diff --git a/trunk/PLC/AddressTypes.py b/trunk/PLC/AddressTypes.py
new file mode 100644 (file)
index 0000000..dd6afff
--- /dev/null
@@ -0,0 +1,66 @@
+#
+# Functions for interacting with the address_types table in the database
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from types import StringTypes
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Filter import Filter
+from PLC.Table import Row, Table
+
+class AddressType(Row):
+    """
+    Representation of a row in the address_types table. To use,
+    instantiate with a dict of values.
+    """
+
+    table_name = 'address_types'
+    primary_key = 'address_type_id'
+    join_tables = ['address_address_type']
+    fields = {
+        'address_type_id': Parameter(int, "Address type identifier"),
+        'name': Parameter(str, "Address type", max = 20),
+        'description': Parameter(str, "Address type description", max = 254),
+        }
+
+    def validate_name(self, name):
+       # Make sure name is not blank
+        if not len(name):
+            raise PLCInvalidArgument, "Address type must be specified"
+       
+       # Make sure address type does not already exist
+       conflicts = AddressTypes(self.api, [name])
+       for address_type_id in conflicts:
+            if 'address_type_id' not in self or self['address_type_id'] != address_type_id:
+               raise PLCInvalidArgument, "Address type name already in use"
+
+       return name
+
+class AddressTypes(Table):
+    """
+    Representation of the address_types table in the database.
+    """
+
+    def __init__(self, api, address_type_filter = None, columns = None):
+       Table.__init__(self, api, AddressType, columns)
+
+        sql = "SELECT %s FROM address_types WHERE True" % \
+              ", ".join(self.columns)
+
+        if address_type_filter is not None:
+            if isinstance(address_type_filter, (list, tuple, set)):
+                # Separate the list into integers and strings
+                ints = filter(lambda x: isinstance(x, (int, long)), address_type_filter)
+                strs = filter(lambda x: isinstance(x, StringTypes), address_type_filter)
+                address_type_filter = Filter(AddressType.fields, {'address_type_id': ints, 'name': strs})
+                sql += " AND (%s) %s" % address_type_filter.sql(api, "OR")
+            elif isinstance(address_type_filter, dict):
+                address_type_filter = Filter(AddressType.fields, address_type_filter)
+                sql += " AND (%s) %s" % address_type_filter.sql(api, "AND")
+
+        self.selectall(sql)
diff --git a/trunk/PLC/Addresses.py b/trunk/PLC/Addresses.py
new file mode 100644 (file)
index 0000000..36c0d1d
--- /dev/null
@@ -0,0 +1,99 @@
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Table import Row, Table
+from PLC.Filter import Filter
+from PLC.AddressTypes import AddressType, AddressTypes
+
+class Address(Row):
+    """
+    Representation of a row in the addresses table. To use, instantiate
+    with a dict of values.
+    """
+
+    table_name = 'addresses'
+    primary_key = 'address_id'
+    join_tables = ['address_address_type', 'site_address']
+    fields = {
+        'address_id': Parameter(int, "Address identifier"),
+        'line1': Parameter(str, "Address line 1", max = 254),
+        'line2': Parameter(str, "Address line 2", max = 254, nullok = True),
+        'line3': Parameter(str, "Address line 3", max = 254, nullok = True),
+        'city': Parameter(str, "City", max = 254),
+        'state': Parameter(str, "State or province", max = 254),
+        'postalcode': Parameter(str, "Postal code", max = 64),
+        'country': Parameter(str, "Country", max = 128),
+        'address_type_ids': Parameter([int], "Address type identifiers"),
+        'address_types': Parameter([str], "Address types"),
+        }
+
+    def add_address_type(self, address_type, commit = True):
+        """
+        Add address type to existing address.
+        """
+
+        assert 'address_id' in self
+        assert isinstance(address_type, AddressType)
+        assert 'address_type_id' in address_type
+
+        address_id = self['address_id']
+        address_type_id = address_type['address_type_id']
+
+        if address_type_id not in self['address_type_ids']:
+            assert address_type['name'] not in self['address_types']
+
+            self.api.db.do("INSERT INTO address_address_type (address_id, address_type_id)" \
+                           " VALUES(%(address_id)d, %(address_type_id)d)",
+                           locals())
+
+            if commit:
+                self.api.db.commit()
+
+            self['address_type_ids'].append(address_type_id)
+            self['address_types'].append(address_type['name'])
+
+    def remove_address_type(self, address_type, commit = True):
+        """
+        Add address type to existing address.
+        """
+
+        assert 'address_id' in self
+        assert isinstance(address_type, AddressType)
+        assert 'address_type_id' in address_type
+
+        address_id = self['address_id']
+        address_type_id = address_type['address_type_id']
+
+        if address_type_id in self['address_type_ids']:
+            assert address_type['name'] in self['address_types']
+
+            self.api.db.do("DELETE FROM address_address_type" \
+                           " WHERE address_id = %(address_id)d" \
+                           " AND address_type_id = %(address_type_id)d",
+                           locals())
+
+            if commit:
+                self.api.db.commit()
+
+            self['address_type_ids'].remove(address_type_id)
+            self['address_types'].remove(address_type['name'])
+
+class Addresses(Table):
+    """
+    Representation of row(s) from the addresses table in the
+    database.
+    """
+
+    def __init__(self, api, address_filter = None, columns = None):
+       Table.__init__(self, api, Address, columns)
+
+        sql = "SELECT %s FROM view_addresses WHERE True" % \
+              ", ".join(self.columns)
+
+        if address_filter is not None:
+            if isinstance(address_filter, (list, tuple, set)):
+                address_filter = Filter(Address.fields, {'address_id': address_filter})
+            elif isinstance(address_filter, dict):
+                address_filter = Filter(Address.fields, address_filter)
+            sql += " AND (%s) %s" % address_filter.sql(api)
+
+        self.selectall(sql)
diff --git a/trunk/PLC/Auth.py b/trunk/PLC/Auth.py
new file mode 100644 (file)
index 0000000..f62b511
--- /dev/null
@@ -0,0 +1,332 @@
+#
+# PLCAPI authentication parameters
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+import crypt
+import sha
+import hmac
+import time
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Persons
+from PLC.Nodes import Node, Nodes
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+from PLC.Sessions import Session, Sessions
+from PLC.Peers import Peer, Peers
+from PLC.Boot import notify_owners
+
+class Auth(Parameter):
+    """
+    Base class for all API authentication methods, as well as a class
+    that can be used to represent all supported API authentication
+    methods.
+    """
+
+    def __init__(self, auth = None):
+        if auth is None:
+            auth = {'AuthMethod': Parameter(str, "Authentication method to use", optional = False)}
+        Parameter.__init__(self, auth, "API authentication structure")
+
+    def check(self, method, auth, *args):
+        # Method.type_check() should have checked that all of the
+        # mandatory fields were present.
+        assert 'AuthMethod' in auth
+
+        if auth['AuthMethod'] == "session":
+            expected = SessionAuth()
+        elif auth['AuthMethod'] == "password" or \
+             auth['AuthMethod'] == "capability":
+            expected = PasswordAuth()
+        elif auth['AuthMethod'] == "gpg":
+            expected = GPGAuth()
+        elif auth['AuthMethod'] == "hmac":
+            expected = BootAuth()
+        elif auth['AuthMethod'] == "anonymous":
+            expected = AnonymousAuth()
+        else:
+            raise PLCInvalidArgument("must be 'session', 'password', 'gpg', 'hmac', or 'anonymous'", "AuthMethod")
+
+        # Re-check using the specified authentication method
+        method.type_check("auth", auth, expected, (auth,) + args)
+
+class GPGAuth(Auth):
+    """
+    Proposed PlanetLab federation authentication structure.
+    """
+
+    def __init__(self):
+        Auth.__init__(self, {
+            'AuthMethod': Parameter(str, "Authentication method to use, always 'gpg'", optional = False),
+            'name': Parameter(str, "Peer or user name", optional = False),
+            'signature': Parameter(str, "Message signature", optional = False)
+            })
+
+    def check(self, method, auth, *args):
+        try:
+            peers = Peers(method.api, [auth['name']])
+            if peers:
+                if 'peer' not in method.roles:
+                    raise PLCAuthenticationFailure, "Not allowed to call method"
+
+                method.caller = peer = peers[0]
+                keys = [peer['key']]
+            else:
+                persons = Persons(method.api, {'email': auth['name'], 'enabled': True, 'peer_id': None})
+                if not persons:
+                    raise PLCAuthenticationFailure, "No such user '%s'" % auth['name']
+
+                if not set(person['roles']).intersection(method.roles):
+                    raise PLCAuthenticationFailure, "Not allowed to call method"
+
+                method.caller = person = persons[0]
+                keys = Keys(method.api, {'key_id': person['key_ids'], 'key_type': "gpg", 'peer_id': None})
+
+            if not keys:
+                raise PLCAuthenticationFailure, "No GPG key on record for peer or user '%s'"
+
+            for key in keys:
+                try:
+                    from PLC.GPG import gpg_verify
+                    gpg_verify(args, key, auth['signature'], method.name)
+                    return
+                except PLCAuthenticationFailure, fault:
+                    pass
+
+            raise fault
+
+        except PLCAuthenticationFailure, fault:
+            # XXX Send e-mail
+            raise fault
+
+class SessionAuth(Auth):
+    """
+    Secondary authentication method. After authenticating with a
+    primary authentication method, call GetSession() to generate a
+    session key that may be used for subsequent calls.
+    """
+
+    def __init__(self):
+        Auth.__init__(self, {
+            'AuthMethod': Parameter(str, "Authentication method to use, always 'session'", optional = False),
+            'session': Parameter(str, "Session key", optional = False)
+            })
+
+    def check(self, method, auth, *args):
+        # Method.type_check() should have checked that all of the
+        # mandatory fields were present.
+        assert auth.has_key('session')
+
+        # Get session record
+        sessions = Sessions(method.api, [auth['session']], expires = None)
+        if not sessions:
+            raise PLCAuthenticationFailure, "No such session"
+        session = sessions[0]
+
+        try:
+            if session['node_id'] is not None:
+                nodes = Nodes(method.api, {'node_id': session['node_id'], 'peer_id': None})
+                if not nodes:
+                    raise PLCAuthenticationFailure, "No such node"
+                node = nodes[0]
+
+                if 'node' not in method.roles:
+                    raise PLCAuthenticationFailure, "Not allowed to call method"
+
+                method.caller = node
+
+            elif session['person_id'] is not None and session['expires'] > time.time():
+                persons = Persons(method.api, {'person_id': session['person_id'], 'enabled': True, 'peer_id': None})
+                if not persons:
+                    raise PLCAuthenticationFailure, "No such account"
+                person = persons[0]
+
+                if not set(person['roles']).intersection(method.roles):
+                    raise PLCPermissionDenied, "Not allowed to call method"
+
+                method.caller = persons[0]
+
+            else:
+                raise PLCAuthenticationFailure, "Invalid session"
+
+        except PLCAuthenticationFailure, fault:
+            session.delete()
+            raise fault
+
+class BootAuth(Auth):
+    """
+    PlanetLab version 3.x node authentication structure. Used by the
+    Boot Manager to make authenticated calls to the API based on a
+    unique node key or boot nonce value.
+
+    The original parameter serialization code did not define the byte
+    encoding of strings, or the string encoding of all other types. We
+    define the byte encoding to be UTF-8, and the string encoding of
+    all other types to be however Python version 2.3 unicode() encodes
+    them.
+    """
+
+    def __init__(self):
+        Auth.__init__(self, {
+            'AuthMethod': Parameter(str, "Authentication method to use, always 'hmac'", optional = False),
+            'node_id': Parameter(int, "Node identifier", optional = False),
+            'value': Parameter(str, "HMAC of node key and method call", optional = False)
+            })
+
+    def canonicalize(self, args):
+        values = []
+
+        for arg in args:
+            if isinstance(arg, list) or isinstance(arg, tuple):
+                # The old implementation did not recursively handle
+                # lists of lists. But neither did the old API itself.
+                values += self.canonicalize(arg)
+            elif isinstance(arg, dict):
+                # Yes, the comments in the old implementation are
+                # misleading. Keys of dicts are not included in the
+                # hash.
+                values += self.canonicalize(arg.values())
+            else:
+                # We use unicode() instead of str().
+                values.append(unicode(arg))
+
+        return values
+
+    def check(self, method, auth, *args):
+        # Method.type_check() should have checked that all of the
+        # mandatory fields were present.
+        assert auth.has_key('node_id')
+
+        if 'node' not in method.roles:
+            raise PLCAuthenticationFailure, "Not allowed to call method"
+
+        try:
+            nodes = Nodes(method.api, {'node_id': auth['node_id'], 'peer_id': None})
+            if not nodes:
+                raise PLCAuthenticationFailure, "No such node"
+            node = nodes[0]
+
+            if node['key']:
+                key = node['key']
+            elif node['boot_nonce']:
+                # Allow very old nodes that do not have a node key in
+                # their configuration files to use their "boot nonce"
+                # instead. The boot nonce is a random value generated
+                # by the node itself and POSTed by the Boot CD when it
+                # requests the Boot Manager. This is obviously not
+                # very secure, so we only allow it to be used if the
+                # requestor IP is the same as the IP address we have
+                # on record for the node.
+                key = node['boot_nonce']
+
+                nodenetwork = None
+                if node['nodenetwork_ids']:
+                    nodenetworks = NodeNetworks(method.api, node['nodenetwork_ids'])
+                    for nodenetwork in nodenetworks:
+                        if nodenetwork['is_primary']:
+                            break
+            
+                if not nodenetwork or not nodenetwork['is_primary']:
+                    raise PLCAuthenticationFailure, "No primary network interface on record"
+            
+                if method.source is None:
+                    raise PLCAuthenticationFailure, "Cannot determine IP address of requestor"
+
+                if nodenetwork['ip'] != method.source[0]:
+                    raise PLCAuthenticationFailure, "Requestor IP %s does not match node IP %s" % \
+                          (method.source[0], nodenetwork['ip'])
+            else:
+                raise PLCAuthenticationFailure, "No node key or boot nonce"
+
+            # Yes, this is the "canonicalization" method used.
+            args = self.canonicalize(args)
+            args.sort()
+            msg = "[" + "".join(args) + "]"
+
+            # We encode in UTF-8 before calculating the HMAC, which is
+            # an 8-bit algorithm.
+            digest = hmac.new(key, msg.encode('utf-8'), sha).hexdigest()
+
+            if digest != auth['value']:
+                raise PLCAuthenticationFailure, "Call could not be authenticated"
+
+            method.caller = node
+
+        except PLCAuthenticationFailure, fault:
+            if nodes:
+                notify_owners(method, node, 'authfail', include_pis = True, include_techs = True, fault = fault)
+            raise fault
+
+class AnonymousAuth(Auth):
+    """
+    PlanetLab version 3.x anonymous authentication structure.
+    """
+
+    def __init__(self):
+        Auth.__init__(self, {
+            'AuthMethod': Parameter(str, "Authentication method to use, always 'anonymous'", False),
+            })
+
+    def check(self, method, auth, *args):
+        if 'anonymous' not in method.roles:
+            raise PLCAuthenticationFailure, "Not allowed to call method anonymously"
+
+        method.caller = None
+
+class PasswordAuth(Auth):
+    """
+    PlanetLab version 3.x password authentication structure.
+    """
+
+    def __init__(self):
+        Auth.__init__(self, {
+            'AuthMethod': Parameter(str, "Authentication method to use, always 'password' or 'capability'", optional = False),
+            'Username': Parameter(str, "PlanetLab username, typically an e-mail address", optional = False),
+            'AuthString': Parameter(str, "Authentication string, typically a password", optional = False),
+            })
+
+    def check(self, method, auth, *args):
+        # Method.type_check() should have checked that all of the
+        # mandatory fields were present.
+        assert auth.has_key('Username')
+
+        # Get record (must be enabled)
+        persons = Persons(method.api, {'email': auth['Username'].lower(), 'enabled': True, 'peer_id': None})
+        if len(persons) != 1:
+            raise PLCAuthenticationFailure, "No such account"
+
+        person = persons[0]
+
+        if auth['Username'] == method.api.config.PLC_API_MAINTENANCE_USER:
+            # "Capability" authentication, whatever the hell that was
+            # supposed to mean. It really means, login as the special
+            # "maintenance user" using password authentication. Can
+            # only be used on particular machines (those in a list).
+            sources = method.api.config.PLC_API_MAINTENANCE_SOURCES.split()
+            if method.source is not None and method.source[0] not in sources:
+                raise PLCAuthenticationFailure, "Not allowed to login to maintenance account"
+
+            # Not sure why this is not stored in the DB
+            password = method.api.config.PLC_API_MAINTENANCE_PASSWORD
+
+            if auth['AuthString'] != password:
+                raise PLCAuthenticationFailure, "Maintenance account password verification failed"
+        else:
+            # Compare encrypted plaintext against encrypted password stored in the DB
+            plaintext = auth['AuthString'].encode(method.api.encoding)
+            password = person['password']
+
+            # Protect against blank passwords in the DB
+            if password is None or password[:12] == "" or \
+               crypt.crypt(plaintext, password[:12]) != password:
+                raise PLCAuthenticationFailure, "Password verification failed"
+
+        if not set(person['roles']).intersection(method.roles):
+           raise PLCAuthenticationFailure, "Not allowed to call method"
+
+        method.caller = person
diff --git a/trunk/PLC/Boot.py b/trunk/PLC/Boot.py
new file mode 100644 (file)
index 0000000..cd3a738
--- /dev/null
@@ -0,0 +1,61 @@
+#
+# Boot Manager support
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2007 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from PLC.Faults import *
+from PLC.Debug import log
+from PLC.Messages import Message, Messages
+from PLC.Persons import Person, Persons
+from PLC.Sites import Site, Sites
+from PLC.sendmail import sendmail
+
+def notify_owners(method, node, message_id,
+                  include_pis = False, include_techs = False, include_support = False,
+                  fault = None):
+    messages = Messages(method.api, [message_id], enabled = True)
+    if not messages:
+        print >> log, "No such message template '%s'" % message_id
+        return 1
+    message = messages[0]
+
+    To = []
+
+    if method.api.config.PLC_MAIL_BOOT_ADDRESS:
+        To.append(("Boot Messages", method.api.config.PLC_MAIL_BOOT_ADDRESS))
+
+    if include_support and method.api.config.PLC_MAIL_SUPPORT_ADDRESS:
+        To.append(("%s Support" % method.api.config.PLC_NAME,
+                   method.api.config.PLC_MAIL_SUPPORT_ADDRESS))
+
+    if include_pis or include_techs:
+        sites = Sites(method.api, [node['site_id']])
+        if not sites:
+            raise PLCAPIError, "No site associated with node"
+        site = sites[0]
+
+        persons = Persons(method.api, site['person_ids'])
+        for person in persons:
+            if include_pis and 'pi' in person['roles'] or \
+               include_techs and 'tech' in person['roles']:
+                To.append(("%s %s" % (person['first_name'], person['last_name']), person['email']))
+
+    # Send email
+    params = {'node_id': node['node_id'],
+              'hostname': node['hostname'],
+              'PLC_WWW_HOST': method.api.config.PLC_WWW_HOST,
+              'PLC_WWW_SSL_PORT': method.api.config.PLC_WWW_SSL_PORT,
+              'fault': fault}
+
+    sendmail(method.api, To = To,
+             Subject = message['subject'] % params,
+             Body = message['template'] % params)
+
+    # Logging variables
+    method.object_type = "Node"
+    method.object_ids = [node['node_id']]
+    method.message = "Sent message %s" % message_id
diff --git a/trunk/PLC/BootStates.py b/trunk/PLC/BootStates.py
new file mode 100644 (file)
index 0000000..f1bfcf9
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# Functions for interacting with the boot_states table in the database
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Table import Row, Table
+
+class BootState(Row):
+    """
+    Representation of a row in the boot_states table. To use,
+    instantiate with a dict of values.
+    """
+
+    table_name = 'boot_states'
+    primary_key = 'boot_state'
+    join_tables = ['nodes']
+    fields = {
+        'boot_state': Parameter(str, "Boot state", max = 20),
+        }
+
+    def validate_boot_state(self, name):
+       # Make sure name is not blank
+        if not len(name):
+            raise PLCInvalidArgument, "Boot state must be specified"
+       
+       # Make sure boot state does not alredy exist
+       conflicts = BootStates(self.api, [name])
+        if conflicts:
+            raise PLCInvalidArgument, "Boot state name already in use"
+
+       return name
+
+class BootStates(Table):
+    """
+    Representation of the boot_states table in the database.
+    """
+
+    def __init__(self, api, boot_states = None):
+        Table.__init__(self, api, BootState)
+
+        sql = "SELECT %s FROM boot_states" % \
+              ", ".join(BootState.fields)
+        
+        if boot_states:
+            sql += " WHERE boot_state IN (%s)" % ", ".join(map(api.db.quote, boot_states))
+
+        self.selectall(sql)
diff --git a/trunk/PLC/ConfFiles.py b/trunk/PLC/ConfFiles.py
new file mode 100644 (file)
index 0000000..63474e3
--- /dev/null
@@ -0,0 +1,155 @@
+#
+# Functions for interacting with the conf_files table in the database
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Filter import Filter
+from PLC.Table import Row, Table
+from PLC.Nodes import Node, Nodes
+from PLC.NodeGroups import NodeGroup, NodeGroups
+
+class ConfFile(Row):
+    """
+    Representation of a row in the conf_files table. To use,
+    instantiate with a dict of values.
+    """
+
+    table_name = 'conf_files'
+    primary_key = 'conf_file_id'
+    join_tables = ['conf_file_node', 'conf_file_nodegroup']
+    fields = {
+        'conf_file_id': Parameter(int, "Configuration file identifier"),
+        'enabled': Parameter(bool, "Configuration file is active"),
+        'source': Parameter(str, "Relative path on the boot server where file can be downloaded", max = 255),
+        'dest': Parameter(str, "Absolute path where file should be installed", max = 255),
+        'file_permissions': Parameter(str, "chmod(1) permissions", max = 20),
+        'file_owner': Parameter(str, "chown(1) owner", max = 50),
+        'file_group': Parameter(str, "chgrp(1) owner", max = 50),
+        'preinstall_cmd': Parameter(str, "Shell command to execute prior to installing", max = 1024, nullok = True),
+        'postinstall_cmd': Parameter(str, "Shell command to execute after installing", max = 1024, nullok = True),
+        'error_cmd': Parameter(str, "Shell command to execute if any error occurs", max = 1024, nullok = True),
+        'ignore_cmd_errors': Parameter(bool, "Install file anyway even if an error occurs"),
+        'always_update': Parameter(bool, "Always attempt to install file even if unchanged"),
+        'node_ids': Parameter(int, "List of nodes linked to this file"),
+        'nodegroup_ids': Parameter(int, "List of node groups linked to this file"),
+        }
+
+    def add_node(self, node, commit = True):
+        """
+        Add configuration file to node.
+        """
+
+        assert 'conf_file_id' in self
+        assert isinstance(node, Node)
+        assert 'node_id' in node
+
+        conf_file_id = self['conf_file_id']
+        node_id = node['node_id']
+
+        if node_id not in self['node_ids']:
+            self.api.db.do("INSERT INTO conf_file_node (conf_file_id, node_id)" \
+                           " VALUES(%(conf_file_id)d, %(node_id)d)",
+                           locals())
+
+            if commit:
+                self.api.db.commit()
+
+            self['node_ids'].append(node_id)
+            node['conf_file_ids'].append(conf_file_id)
+
+    def remove_node(self, node, commit = True):
+        """
+        Remove configuration file from node.
+        """
+
+        assert 'conf_file_id' in self
+        assert isinstance(node, Node)
+        assert 'node_id' in node
+
+        conf_file_id = self['conf_file_id']
+        node_id = node['node_id']
+
+        if node_id in self['node_ids']:
+            self.api.db.do("DELETE FROM conf_file_node" \
+                           " WHERE conf_file_id = %(conf_file_id)d" \
+                           " AND node_id = %(node_id)d",
+                           locals())
+
+            if commit:
+                self.api.db.commit()
+
+            self['node_ids'].remove(node_id)
+            node['conf_file_ids'].remove(conf_file_id)
+
+    def add_nodegroup(self, nodegroup, commit = True):
+        """
+        Add configuration file to node group.
+        """
+
+        assert 'conf_file_id' in self
+        assert isinstance(nodegroup, NodeGroup)
+        assert 'nodegroup_id' in nodegroup
+
+        conf_file_id = self['conf_file_id']
+        nodegroup_id = nodegroup['nodegroup_id']
+
+        if nodegroup_id not in self['nodegroup_ids']:
+            self.api.db.do("INSERT INTO conf_file_nodegroup (conf_file_id, nodegroup_id)" \
+                           " VALUES(%(conf_file_id)d, %(nodegroup_id)d)",
+                           locals())
+
+            if commit:
+                self.api.db.commit()
+
+            self['nodegroup_ids'].append(nodegroup_id)
+            nodegroup['conf_file_ids'].append(conf_file_id)
+
+    def remove_nodegroup(self, nodegroup, commit = True):
+        """
+        Remove configuration file from node group.
+        """
+
+        assert 'conf_file_id' in self
+        assert isinstance(nodegroup, NodeGroup)
+        assert 'nodegroup_id' in nodegroup
+
+        conf_file_id = self['conf_file_id']
+        nodegroup_id = nodegroup['nodegroup_id']
+
+        if nodegroup_id in self['nodegroup_ids']:
+            self.api.db.do("DELETE FROM conf_file_nodegroup" \
+                           " WHERE conf_file_id = %(conf_file_id)d" \
+                           " AND nodegroup_id = %(nodegroup_id)d",
+                           locals())
+
+            if commit:
+                self.api.db.commit()
+
+            self['nodegroup_ids'].remove(nodegroup_id)
+            nodegroup['conf_file_ids'].remove(conf_file_id)
+
+class ConfFiles(Table):
+    """
+    Representation of the conf_files table in the database.
+    """
+
+    def __init__(self, api, conf_file_filter = None, columns = None):
+       Table.__init__(self, api, ConfFile, columns)
+
+        sql = "SELECT %s FROM view_conf_files WHERE True" % \
+              ", ".join(self.columns)
+
+        if conf_file_filter is not None:
+            if isinstance(conf_file_filter, (list, tuple, set)):
+                conf_file_filter = Filter(ConfFile.fields, {'conf_file_id': conf_file_filter})
+            elif isinstance(conf_file_filter, dict):
+                conf_file_filter = Filter(ConfFile.fields, conf_file_filter)
+            sql += " AND (%s) %s" % conf_file_filter.sql(api)
+
+        self.selectall(sql)
diff --git a/trunk/PLC/Config.py b/trunk/PLC/Config.py
new file mode 100644 (file)
index 0000000..6a4a7e2
--- /dev/null
@@ -0,0 +1,96 @@
+#!/usr/bin/python
+#
+# PLCAPI configuration store. Supports XML-based configuration file
+# format exported by MyPLC.
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2004-2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+import os
+import sys
+
+from PLC.Faults import *
+from PLC.Debug import profile
+
+# If we have been checked out into a directory at the same
+# level as myplc, where plc_config.py lives. If we are in a
+# MyPLC environment, plc_config.py has already been installed
+# in site-packages.
+myplc = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + \
+        os.sep + "myplc"
+
+class Config:
+    """
+    Parse the bash/Python/PHP version of the configuration file. Very
+    fast but no type conversions.
+    """
+
+    def __init__(self, file = "/etc/planetlab/plc_config"):
+        # Load plc_config
+        try:
+            execfile(file, self.__dict__)
+        except:
+            # Try myplc directory
+            try:
+                execfile(myplc + os.sep + "plc_config", self.__dict__)
+            except:
+                raise PLCAPIError("Could not find plc_config in " + \
+                                  file + ", " + \
+                                  myplc + os.sep + "plc_config")
+
+class XMLConfig:
+    """
+    Parse the XML configuration file directly. Takes longer but is
+    presumably more accurate.
+    """
+
+    def __init__(self, file = "/etc/planetlab/plc_config.xml"):
+        try:
+            from plc_config import PLCConfiguration
+        except:
+            sys.path.append(myplc)
+            from plc_config import PLCConfiguration
+
+        # Load plc_config.xml
+        try:
+            cfg = PLCConfiguration(file)
+        except:
+            # Try myplc directory
+            try:
+                cfg = PLCConfiguration(myplc + os.sep + "plc_config.xml")
+            except:
+                raise PLCAPIError("Could not find plc_config.xml in " + \
+                                  file + ", " + \
+                                  myplc + os.sep + "plc_config.xml")
+
+        for (category, variablelist) in cfg.variables().values():
+            for variable in variablelist.values():
+                # Try to cast each variable to an appropriate Python
+                # type.
+                if variable['type'] == "int":
+                    value = int(variable['value'])
+                elif variable['type'] == "double":
+                    value = float(variable['value'])
+                elif variable['type'] == "boolean":
+                    if variable['value'] == "true":
+                        value = True
+                    else:
+                        value = False
+                else:
+                    value = variable['value']
+
+                # Variables are split into categories such as
+                # "plc_api", "plc_db", etc. Within each category are
+                # variables such as "host", "port", etc. For backward
+                # compatibility, refer to variables by their shell
+                # names.
+                shell_name = category['id'].upper() + "_" + variable['id'].upper()
+                setattr(self, shell_name, value)
+
+if __name__ == '__main__':
+    import pprint
+    pprint = pprint.PrettyPrinter()
+    pprint.pprint(Config().__dict__.items())
diff --git a/trunk/PLC/Debug.py b/trunk/PLC/Debug.py
new file mode 100644 (file)
index 0000000..b8dac85
--- /dev/null
@@ -0,0 +1,54 @@
+import time
+import sys
+import syslog
+
+class unbuffered:
+    """
+    Write to /var/log/httpd/error_log. See
+
+    http://www.modpython.org/FAQ/faqw.py?req=edit&file=faq02.003.htp
+    """
+
+    def write(self, data):
+        sys.stderr.write(data)
+        sys.stderr.flush()
+
+log = unbuffered()
+
+def profile(callable):
+    """
+    Prints the runtime of the specified callable. Use as a decorator, e.g.,
+
+        @profile
+        def foo(...):
+            ...
+
+    Or, equivalently,
+
+        def foo(...):
+            ...
+        foo = profile(foo)
+
+    Or inline:
+
+        result = profile(foo)(...)
+    """
+
+    def wrapper(*args, **kwds):
+        start = time.time()
+        result = callable(*args, **kwds)
+        end = time.time()
+        args = map(str, args)
+        args += ["%s = %s" % (name, str(value)) for (name, value) in kwds.items()]
+        print >> log, "%s (%s): %f s" % (callable.__name__, ", ".join(args), end - start)
+        return result
+
+    return wrapper
+
+if __name__ == "__main__":
+    def sleep(seconds = 1):
+        time.sleep(seconds)
+
+    sleep = profile(sleep)
+
+    sleep(1)
diff --git a/trunk/PLC/EventObjects.py b/trunk/PLC/EventObjects.py
new file mode 100644 (file)
index 0000000..1c6c4bb
--- /dev/null
@@ -0,0 +1,63 @@
+#
+# Functions for interacting with the events table in the database
+#
+# Tony Mack <tmack@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Filter import Filter
+from PLC.Debug import profile
+from PLC.Table import Row, Table
+
+class EventObject(Row):
+    """
+    Representation of a row in the event_object table. 
+    """
+    
+    table_name = 'event_object'
+    primary_key = 'event_id'
+    fields = {
+        'event_id': Parameter(int, "Event identifier"),
+        'person_id': Parameter(int, "Identifier of person responsible for event, if any"),
+        'node_id': Parameter(int, "Identifier of node responsible for event, if any"),
+        'fault_code': Parameter(int, "Event fault code"),
+       'call_name': Parameter(str, "Call responsible for this event"),
+       'call': Parameter(str, "Call responsible for this event, including paramters"),
+       'message': Parameter(str, "High level description of this event"),
+        'runtime': Parameter(float, "Runtime of event"),
+        'time': Parameter(int, "Date and time that the event took place, in seconds since UNIX epoch", ro = True),
+        'object_id': Parameter(int, "ID of objects affected by this event"),
+       'object_type': Parameter(str, "What type of object is this event affecting")
+       }    
+
+class EventObjects(Table):
+    """
+    Representation of row(s) from the event_object table in the database. 
+    """
+
+    def __init__(self, api, event_filter = None, columns = None):
+        Table.__init__(self, api, EventObject, columns)
+       
+       sql = "SELECT %s FROM view_event_objects WHERE True" % \
+            ", ".join(self.columns)
+        
+       if event_filter is not None:
+            if isinstance(event_filter, (list, tuple, set)):
+                event_filter = Filter(EventObject.fields, {'event_id': event_filter})
+                sql += " AND (%s) %s" % event_filter.sql(api, "OR")
+            elif isinstance(event_filter, dict):
+                event_filter = Filter(EventObject.fields, event_filter)
+                sql += " AND (%s) %s" % event_filter.sql(api, "AND")
+            elif isinstance (event_filter, int):
+                event_filter = Filter(EventObject.fields, {'event_id':[event_filter]})
+                sql += " AND (%s) %s" % event_filter.sql(api, "AND")
+            else:
+                raise PLCInvalidArgument, "Wrong event object filter %r"%event_filter
+# with new filtering, caller needs to set this explicitly
+#      sql += " ORDER BY %s" % EventObject.primary_key
+        
+       self.selectall(sql)
diff --git a/trunk/PLC/Events.py b/trunk/PLC/Events.py
new file mode 100644 (file)
index 0000000..c01f589
--- /dev/null
@@ -0,0 +1,79 @@
+#
+# Functions for interacting with the events table in the database
+#
+# Tony Mack <tmack@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Filter import Filter
+from PLC.Debug import profile
+from PLC.Table import Row, Table
+
+class Event(Row):
+    """
+    Representation of a row in the events table. 
+    """
+    
+    table_name = 'events'
+    primary_key = 'event_id'
+    fields = {
+        'event_id': Parameter(int, "Event identifier"),
+        'person_id': Parameter(int, "Identifier of person responsible for event, if any"),
+        'node_id': Parameter(int, "Identifier of node responsible for event, if any"),
+       'auth_type': Parameter(int, "Type of auth used. i.e. AuthMethod"),
+        'fault_code': Parameter(int, "Event fault code"),
+       'call_name': Parameter(str, "Call responsible for this event"),
+       'call': Parameter(str, "Call responsible for this event, including paramters"),
+       'message': Parameter(str, "High level description of this event"),
+        'runtime': Parameter(float, "Runtime of event"),
+        'time': Parameter(int, "Date and time that the event took place, in seconds since UNIX epoch", ro = True),
+        'object_ids': Parameter([int], "IDs of objects affected by this event"),
+       'object_types': Parameter([str], "What type of object were affected by this event")
+       }    
+
+    def add_object(self, object_type, object_id, commit = True):
+        """
+        Relate object to this event.
+        """
+
+        assert 'event_id' in self
+
+        event_id = self['event_id']
+
+        if 'object_ids' not in self:
+            self['object_ids'] = []
+
+        if object_id not in self['object_ids']:
+            self.api.db.do("INSERT INTO event_object (event_id, object_id, object_type)" \
+                           " VALUES(%(event_id)d, %(object_id)d, %(object_type)s)",
+                           locals())
+
+            if commit:
+                self.api.db.commit()
+
+            self['object_ids'].append(object_id)
+    
+class Events(Table):
+    """
+    Representation of row(s) from the events table in the database. 
+    """
+
+    def __init__(self, api, event_filter = None, columns = None):
+        Table.__init__(self, api, Event, columns)
+
+        sql = "SELECT %s FROM view_events WHERE True" % \
+              ", ".join(self.columns)
+
+        if event_filter is not None:
+            if isinstance(event_filter, (list, tuple, set)):
+                event_filter = Filter(Event.fields, {'event_id': event_filter})
+            elif isinstance(event_filter, dict):
+                event_filter = Filter(Event.fields, event_filter)
+            sql += " AND (%s) %s" % event_filter.sql(api)
+# with new filtering, caller needs to set this explicitly
+#      sql += " ORDER BY %s" % Event.primary_key
+        self.selectall(sql)
diff --git a/trunk/PLC/Faults.py b/trunk/PLC/Faults.py
new file mode 100644 (file)
index 0000000..3c9328e
--- /dev/null
@@ -0,0 +1,67 @@
+#
+# PLCAPI XML-RPC faults
+#
+# Aaron Klingaman <alk@absarokasoft.com>
+# Mark Huang <mlhuang@cs.princeton.edu>
+#
+# Copyright (C) 2004-2006 The Trustees of Princeton University
+# $Id$
+#
+
+import xmlrpclib
+
+class PLCFault(xmlrpclib.Fault):
+    def __init__(self, faultCode, faultString, extra = None):
+        if extra:
+            faultString += ": " + extra
+        xmlrpclib.Fault.__init__(self, faultCode, faultString)
+
+class PLCInvalidAPIMethod(PLCFault):
+    def __init__(self, method, role = None, extra = None):
+        faultString = "Invalid method " + method
+        if role:
+            faultString += " for role " + role
+        PLCFault.__init__(self, 100, faultString, extra)
+
+class PLCInvalidArgumentCount(PLCFault):
+    def __init__(self, got, min, max = min, extra = None):
+        if min != max:
+            expected = "%d-%d" % (min, max)
+        else:
+            expected = "%d" % min
+        faultString = "Expected %s arguments, got %d" % \
+                      (expected, got)
+        PLCFault.__init__(self, 101, faultString, extra)
+
+class PLCInvalidArgument(PLCFault):
+    def __init__(self, extra = None, name = None):
+        if name is not None:
+            faultString = "Invalid %s value" % name
+        else:
+            faultString = "Invalid argument"
+        PLCFault.__init__(self, 102, faultString, extra)
+
+class PLCAuthenticationFailure(PLCFault):
+    def __init__(self, extra = None):
+        faultString = "Failed to authenticate call"
+        PLCFault.__init__(self, 103, faultString, extra)
+
+class PLCDBError(PLCFault):
+    def __init__(self, extra = None):
+        faultString = "Database error"
+        PLCFault.__init__(self, 106, faultString, extra)
+
+class PLCPermissionDenied(PLCFault):
+    def __init__(self, extra = None):
+        faultString = "Permission denied"
+        PLCFault.__init__(self, 108, faultString, extra)
+
+class PLCNotImplemented(PLCFault):
+    def __init__(self, extra = None):
+        faultString = "Not fully implemented"
+        PLCFault.__init__(self, 109, faultString, extra)
+
+class PLCAPIError(PLCFault):
+    def __init__(self, extra = None):
+        faultString = "Internal API error"
+        PLCFault.__init__(self, 111, faultString, extra)
diff --git a/trunk/PLC/Filter.py b/trunk/PLC/Filter.py
new file mode 100644 (file)
index 0000000..4063496
--- /dev/null
@@ -0,0 +1,203 @@
+from types import StringTypes
+try:
+    set
+except NameError:
+    from sets import Set
+    set = Set
+
+import time
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter, Mixed, python_type
+
+class Filter(Parameter, dict):
+    """
+    A type of parameter that represents a filter on one or more
+    columns of a database table.
+    Special features provide support for negation, upper and lower bounds, 
+    as well as sorting and clipping.
+
+
+    fields should be a dictionary of field names and types
+    Only filters on non-sequence type fields are supported.
+    example : fields = {'node_id': Parameter(int, "Node identifier"),
+                        'hostname': Parameter(int, "Fully qualified hostname", max = 255),
+                        ...}
+
+
+    filter should be a dictionary of field names and values
+    representing  the criteria for filtering. 
+    example : filter = { 'hostname' : '*.edu' , site_id : [34,54] }
+    Whether the filter represents an intersection (AND) or a union (OR) 
+    of these criteria is determined by the join_with argument 
+    provided to the sql method below
+
+    Special features:
+
+    * a field starting with the ~ character means negation.
+    example :  filter = { '~peer_id' : None }
+
+    * a field starting with < [  ] or > means lower than or greater than
+      < > uses strict comparison
+      [ ] is for using <= or >= instead
+    example :  filter = { ']event_id' : 2305 }
+    example :  filter = { '>time' : 1178531418 }
+      in this example the integer value denotes a unix timestamp
+
+    * if a value is a sequence type, then it should represent 
+      a list of possible values for that field
+    example : filter = { 'node_id' : [12,34,56] }
+
+    * a (string) value containing either a * or a % character is
+      treated as a (sql) pattern; * are replaced with % that is the
+      SQL wildcard character.
+    example :  filter = { 'hostname' : '*.jp' } 
+
+    * fields starting with - are special and relate to row selection, i.e. sorting and clipping
+    * '-SORT' : a field name, or an ordered list of field names that are used for sorting
+    * these fields may start with + (default) or - for denoting increasing or decreasing order
+    example : filter = { '-SORT' : [ '+node_id', '-hostname' ] }
+    * '-OFFSET' : the number of first rows to be ommitted
+    * '-LIMIT' : the amount of rows to be returned 
+    example : filter = { '-OFFSET' : 100, '-PAGE':25}
+
+    A realistic example would read
+    GetNodes ( { 'hostname' : '*.edu' , '-SORT' : 'hostname' , '-OFFSET' : 30 , '-PAGE' : 25 } )
+    and that would return nodes matching '*.edu' in alphabetical order from 31th to 55th
+    """
+
+    def __init__(self, fields = {}, filter = {}, doc = "Attribute filter"):
+        # Store the filter in our dict instance
+        dict.__init__(self, filter)
+
+        # Declare ourselves as a type of parameter that can take
+        # either a value or a list of values for each of the specified
+        # fields.
+        self.fields = {}
+
+        for field, expected in fields.iteritems():
+            # Cannot filter on sequences
+            if python_type(expected) in (list, tuple, set):
+                continue
+            
+            # Accept either a value or a list of values of the specified type
+            self.fields[field] = Mixed(expected, [expected])
+
+        # Null filter means no filter
+        Parameter.__init__(self, self.fields, doc = doc, nullok = True)
+
+    # this code is not used anymore
+    # at some point the select in the DB for event objects was done on
+    # the events table directly, that is stored as a timestamp, thus comparisons
+    # needed to be done based on SQL timestamps as well
+    def unix2timestamp (self,unix):
+       s = time.gmtime(unix)
+       return "TIMESTAMP'%04d-%02d-%02d %02d:%02d:%02d'" % (s.tm_year,s.tm_mon,s.tm_mday,
+                                                            s.tm_hour,s.tm_min,s.tm_sec)
+
+    def sql(self, api, join_with = "AND"):
+        """
+        Returns a SQL conditional that represents this filter.
+        """
+
+        # So that we always return something
+        if join_with == "AND":
+            conditionals = ["True"]
+        elif join_with == "OR":
+            conditionals = ["False"]
+        else:
+            assert join_with in ("AND", "OR")
+
+        # init 
+        sorts = []
+        clips = []
+
+        for field, value in self.iteritems():
+           # handle negation, numeric comparisons
+           # simple, 1-depth only mechanism
+
+           modifiers={'~' : False, 
+                      '<' : False, '>' : False,
+                      '[' : False, ']' : False,
+                       '-' : False,
+                      }
+
+           for char in modifiers.keys():
+               if field[0] == char:
+                   modifiers[char]=True;
+                   field = field[1:]
+                   break
+
+            # filter on fields
+            if not modifiers['-']:
+                if field not in self.fields:
+                    raise PLCInvalidArgument, "Invalid filter field '%s'" % field
+
+                if isinstance(value, (list, tuple, set)):
+                    # Turn empty list into (NULL) instead of invalid ()
+                    if not value:
+                        value = [None]
+
+                    operator = "IN"
+                    value = map(str, map(api.db.quote, value))
+                    value = "(%s)" % ", ".join(value)
+                else:
+                    if value is None:
+                        operator = "IS"
+                        value = "NULL"
+                    elif isinstance(value, StringTypes) and \
+                            (value.find("*") > -1 or value.find("%") > -1):
+                        operator = "LIKE"
+                        value = str(api.db.quote(value.replace("*", "%")))
+                    else:
+                        operator = "="
+                        if modifiers['<']:
+                            operator='<'
+                        if modifiers['>']:
+                            operator='>'
+                        if modifiers['[']:
+                            operator='<='
+                        if modifiers[']']:
+                            operator='>='
+                        else:
+                            value = str(api.db.quote(value))
+                clause = "%s %s %s" % (field, operator, value)
+
+                if modifiers['~']:
+                    clause = " ( NOT %s ) " % (clause)
+
+                conditionals.append(clause)
+            # sorting and clipping
+            else:
+                if field not in ('SORT','OFFSET','LIMIT'):
+                    raise PLCInvalidArgument, "Invalid filter, unknown sort and clip field %r"%field
+                # sorting
+                if field == 'SORT':
+                    if not isinstance(value,(list,tuple,set)):
+                        value=[value]
+                    for field in value:
+                        order = 'ASC'
+                        if field[0] == '+':
+                            field = field[1:]
+                        elif field[0] == '-':
+                            field = field[1:]
+                            order = 'DESC'
+                        if field not in self.fields:
+                            raise PLCInvalidArgument, "Invalid field %r in SORT filter"%field
+                        sorts.append("%s %s"%(field,order))
+                # clipping
+                elif field == 'OFFSET':
+                    clips.append("OFFSET %d"%value)
+                # clipping continued
+                elif field == 'LIMIT' :
+                    clips.append("LIMIT %d"%value)
+
+        where_part = (" %s " % join_with).join(conditionals)
+        clip_part = ""
+        if sorts:
+            clip_part += " ORDER BY " + ",".join(sorts)
+        if clips:
+            clip_part += " " + " ".join(clips)
+#      print 'where_part=',where_part,'clip_part',clip_part
+        return (where_part,clip_part)
diff --git a/trunk/PLC/GPG.py b/trunk/PLC/GPG.py
new file mode 100644 (file)
index 0000000..2499bab
--- /dev/null
@@ -0,0 +1,183 @@
+#
+# Python "binding" for GPG. I'll write GPGME bindings eventually. The
+# intent is to use GPG to sign method calls, as a way of identifying
+# and authenticating peers. Calls should still go over an encrypted
+# transport such as HTTPS, with certificate checking.
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+import os
+import xmlrpclib
+import shutil
+from types import StringTypes
+from StringIO import StringIO
+from xml.dom import minidom
+from xml.dom.ext import Canonicalize
+from subprocess import Popen, PIPE, call
+from tempfile import NamedTemporaryFile, mkdtemp
+
+from PLC.Faults import *
+
+def canonicalize(args, methodname = None, methodresponse = False):
+    """
+    Returns a canonicalized XML-RPC representation of the specified
+    method call (methodname != None) or response (methodresponse =
+    True).
+    """
+
+    xml = xmlrpclib.dumps(args, methodname, methodresponse, encoding = 'utf-8', allow_none = 1)
+    dom = minidom.parseString(xml)
+
+    # Canonicalize(), though it claims to, does not encode unicode
+    # nodes to UTF-8 properly and throws an exception unless you write
+    # the stream to a file object, so just encode it ourselves.
+    buf = StringIO()
+    Canonicalize(dom, output = buf)
+    xml = buf.getvalue().encode('utf-8')
+
+    return xml
+
+def gpg_export(keyring, armor = True):
+    """
+    Exports the specified public keyring file.
+    """
+
+    homedir = mkdtemp()
+    args = ["gpg", "--batch", "--no-tty",
+            "--homedir", homedir,
+            "--no-default-keyring",
+            "--keyring", keyring,
+            "--export"]
+    if armor:
+        args.append("--armor")
+
+    p = Popen(args, stdin = PIPE, stdout = PIPE, stderr = PIPE, close_fds = True)
+    export = p.stdout.read()
+    err = p.stderr.read()
+    rc = p.wait()
+
+    # Clean up
+    shutil.rmtree(homedir)
+
+    if rc:
+        raise PLCAuthenticationFailure, "GPG export failed with return code %d: %s" % (rc, err)
+
+    return export
+
+def gpg_sign(args, secret_keyring, keyring, methodname = None, methodresponse = False, detach_sign = True):
+    """
+    Signs the specified method call (methodname != None) or response
+    (methodresponse == True) using the specified GPG keyring files. If
+    args is not a tuple representing the arguments to the method call
+    or the method response value, then it should be a string
+    representing a generic message to sign (detach_sign == True) or
+    sign/encrypt (detach_sign == False) specified). Returns the
+    detached signature (detach_sign == True) or signed/encrypted
+    message (detach_sign == False).
+    """
+
+    # Accept either an opaque string blob or a Python tuple
+    if isinstance(args, StringTypes):
+        message = args
+    elif isinstance(args, tuple):
+        message = canonicalize(args, methodname, methodresponse)
+
+    # Use temporary trustdb
+    homedir = mkdtemp()
+
+    cmd = ["gpg", "--batch", "--no-tty",
+           "--homedir", homedir,
+           "--no-default-keyring",
+           "--secret-keyring", secret_keyring,
+           "--keyring", keyring,
+           "--armor"]
+
+    if detach_sign:
+        cmd.append("--detach-sign")
+    else:
+        cmd.append("--sign")
+
+    p = Popen(cmd, stdin = PIPE, stdout = PIPE, stderr = PIPE)
+    p.stdin.write(message)
+    p.stdin.close()
+    signature = p.stdout.read()
+    err = p.stderr.read()
+    rc = p.wait()
+
+    # Clean up
+    shutil.rmtree(homedir)
+
+    if rc:
+        raise PLCAuthenticationFailure, "GPG signing failed with return code %d: %s" % (rc, err)
+
+    return signature
+
+def gpg_verify(args, key, signature = None, methodname = None, methodresponse = False):
+    """
+    Verifies the signature of the specified method call (methodname !=
+    None) or response (methodresponse = True) using the specified
+    public key material. If args is not a tuple representing the
+    arguments to the method call or the method response value, then it
+    should be a string representing a generic message to verify (if
+    signature is specified) or verify/decrypt (if signature is not
+    specified).
+    """
+
+    # Accept either an opaque string blob or a Python tuple
+    if isinstance(args, StringTypes):
+        message = args
+    else:
+        message = canonicalize(args, methodname, methodresponse)
+
+    # Write public key to temporary file
+    if os.path.exists(key):
+        keyfile = None
+        keyfilename = key
+    else:
+        keyfile = NamedTemporaryFile(suffix = '.pub')
+        keyfile.write(key)
+        keyfile.flush()
+        keyfilename = keyfile.name
+
+    # Import public key into temporary keyring
+    homedir = mkdtemp()
+    call(["gpg", "--batch", "--no-tty", "--homedir", homedir, "--import", keyfilename],
+         stdin = PIPE, stdout = PIPE, stderr = PIPE)
+
+    cmd = ["gpg", "--batch", "--no-tty",
+           "--homedir", homedir]
+
+    if signature is not None:
+        # Write detached signature to temporary file
+        sigfile = NamedTemporaryFile()
+        sigfile.write(signature)
+        sigfile.flush()
+        cmd += ["--verify", sigfile.name, "-"]
+    else:
+        # Implicit signature
+        sigfile = None
+        cmd.append("--decrypt")
+
+    p = Popen(cmd, stdin = PIPE, stdout = PIPE, stderr = PIPE)
+    p.stdin.write(message)
+    p.stdin.close()
+    if signature is None:
+        message = p.stdout.read()
+    err = p.stderr.read()
+    rc = p.wait()
+
+    # Clean up
+    shutil.rmtree(homedir)
+    if sigfile:
+        sigfile.close()
+    if keyfile:
+        keyfile.close()
+
+    if rc:
+        raise PLCAuthenticationFailure, "GPG verification failed with return code %d: %s" % (rc, err)
+
+    return message
diff --git a/trunk/PLC/InitScripts.py b/trunk/PLC/InitScripts.py
new file mode 100644 (file)
index 0000000..9f864d2
--- /dev/null
@@ -0,0 +1,66 @@
+#
+# Functions for interacting with the initscripts table in the database
+#
+# Tony Mack <tmack@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+#
+
+from types import StringTypes
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Filter import Filter
+from PLC.Table import Row, Table
+
+class InitScript(Row):
+    """
+    Representation of a row in the initscripts table. To use,
+    instantiate with a dict of values.
+    """
+
+    table_name = 'initscripts'
+    primary_key = 'initscript_id'
+    join_tables = []
+    fields = {
+        'initscript_id': Parameter(int, "Initscript identifier"),
+        'name': Parameter(str, "Initscript name", max = 254),
+        'enabled': Parameter(bool, "Initscript is active"),
+        'script': Parameter(str, "Initscript"),
+        }
+
+    def validate_name(self, name):
+       """ 
+       validates the script name 
+       """
+       
+       conflicts = InitScripts(self.api, [name])
+       for initscript in conflicts:
+           if 'initscript_id' not in self or self['initscript_id'] != initscript['initscript_id']:
+               raise PLCInvalidArgument, "Initscript name already in use"
+
+       return name
+
+
+class InitScripts(Table):
+    """
+    Representation of the initscipts table in the database.
+    """
+
+    def __init__(self, api, initscript_filter = None, columns = None):
+       Table.__init__(self, api, InitScript, columns)
+
+        sql = "SELECT %s FROM initscripts WHERE True" % \
+              ", ".join(self.columns)
+
+        if initscript_filter is not None:
+            if isinstance(initscript_filter, (list, tuple, set)):
+               # Separate the list into integers and strings
+                ints = filter(lambda x: isinstance(x, (int, long)), initscript_filter)
+                strs = filter(lambda x: isinstance(x, StringTypes), initscript_filter)
+                initscript_filter = Filter(InitScript.fields, {'initscript_id': ints, 'name': strs })
+               sql += " AND (%s) %s" % initscript_filter.sql(api, "OR")
+            elif isinstance(initscript_filter, dict):
+                initscript_filter = Filter(InitScript.fields, initscript_filter)
+               sql += " AND (%s) %s" % initscript_filter.sql(api, "AND")
+
+        self.selectall(sql)
diff --git a/trunk/PLC/KeyTypes.py b/trunk/PLC/KeyTypes.py
new file mode 100644 (file)
index 0000000..34df019
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# Functions for interacting with the key_types table in the database
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Table import Row, Table
+
+class KeyType(Row):
+    """
+    Representation of a row in the key_types table. To use,
+    instantiate with a dict of values.
+    """
+
+    table_name = 'key_types'
+    primary_key = 'key_type'
+    join_tables = ['keys']
+    fields = {
+        'key_type': Parameter(str, "Key type", max = 20),
+        }
+
+    def validate_key_type(self, name):
+       # Make sure name is not blank
+        if not len(name):
+            raise PLCInvalidArgument, "Key type must be specified"
+       
+       # Make sure key type does not alredy exist
+       conflicts = KeyTypes(self.api, [name])
+        if conflicts:
+            raise PLCInvalidArgument, "Key type name already in use"
+
+       return name
+        
+class KeyTypes(Table):
+    """
+    Representation of the key_types table in the database.
+    """
+
+    def __init__(self, api, key_types = None):
+        Table.__init__(self, api, KeyType)
+
+        sql = "SELECT %s FROM key_types" % \
+              ", ".join(KeyType.fields)
+        
+        if key_types:
+            sql += " WHERE key_type IN (%s)" % ", ".join(map(api.db.quote, key_types))
+
+        self.selectall(sql)
diff --git a/trunk/PLC/Keys.py b/trunk/PLC/Keys.py
new file mode 100644 (file)
index 0000000..8d22dc2
--- /dev/null
@@ -0,0 +1,122 @@
+import re
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Filter import Filter
+from PLC.Debug import profile
+from PLC.Table import Row, Table
+from PLC.KeyTypes import KeyType, KeyTypes
+
+class Key(Row):
+    """
+    Representation of a row in the keys table. To use, instantiate with a 
+    dict of values. Update as you would a dict. Commit to the database 
+    with sync().
+    """
+
+    table_name = 'keys'
+    primary_key = 'key_id'
+    join_tables = ['person_key', 'peer_key']
+    fields = {
+        'key_id': Parameter(int, "Key identifier"),
+        'key_type': Parameter(str, "Key type"),
+        'key': Parameter(str, "Key value", max = 4096),
+        'person_id': Parameter(int, "User to which this key belongs", nullok = True),
+        'peer_id': Parameter(int, "Peer to which this key belongs", nullok = True),
+        'peer_key_id': Parameter(int, "Foreign key identifier at peer", nullok = True),
+        }
+
+    # for Cache
+    class_key= 'key'
+    foreign_fields = ['key_type']
+    foreign_xrefs = []
+
+    def validate_key_type(self, key_type):
+        key_types = [row['key_type'] for row in KeyTypes(self.api)]
+        if key_type not in key_types:
+            raise PLCInvalidArgument, "Invalid key type"
+       return key_type
+
+    def validate_key(self, key):
+       # Key must not be blacklisted
+       rows = self.api.db.selectall("SELECT 1 from keys" \
+                                    " WHERE key = %(key)s" \
+                                     " AND is_blacklisted IS True",
+                                     locals())
+       if rows:
+            raise PLCInvalidArgument, "Key is blacklisted and cannot be used"
+
+       return key
+
+    def validate(self):
+        # Basic validation
+        Row.validate(self)
+
+        assert 'key' in self
+        key = self['key']
+
+        if self['key_type'] == 'ssh':
+            # Accept only SSH version 2 keys without options. From
+            # sshd(8):
+            #
+            # Each protocol version 2 public key consists of: options,
+            # keytype, base64 encoded key, comment.  The options field
+            # is optional...The comment field is not used for anything
+            # (but may be convenient for the user to identify the
+            # key). For protocol version 2 the keytype is ``ssh-dss''
+            # or ``ssh-rsa''.
+
+            good_ssh_key = r'^.*(?:ssh-dss|ssh-rsa)[ ]+[A-Za-z0-9+/=]+(?: .*)?$'
+            if not re.match(good_ssh_key, key, re.IGNORECASE):
+                raise PLCInvalidArgument, "Invalid SSH version 2 public key"
+
+    def blacklist(self, commit = True):
+        """
+       Permanently blacklist key (and all other identical keys),
+       preventing it from ever being added again. Because this could
+       affect multiple keys associated with multiple accounts, it
+       should be admin only.        
+       """
+
+       assert 'key_id' in self
+        assert 'key' in self
+
+        # Get all matching keys
+        rows = self.api.db.selectall("SELECT key_id FROM keys WHERE key = %(key)s",
+                                     self)
+        key_ids = [row['key_id'] for row in rows]
+        assert key_ids
+        assert self['key_id'] in key_ids
+
+        # Keep the keys in the table
+        self.api.db.do("UPDATE keys SET is_blacklisted = True" \
+                       " WHERE key_id IN (%s)" % ", ".join(map(str, key_ids)))
+
+       # But disassociate them from all join tables
+        for table in self.join_tables:
+            self.api.db.do("DELETE FROM %s WHERE key_id IN (%s)" % \
+                           (table, ", ".join(map(str, key_ids))))
+
+        if commit:
+            self.api.db.commit()
+
+class Keys(Table):
+    """
+    Representation of row(s) from the keys table in the
+    database.
+    """
+
+    def __init__(self, api, key_filter = None, columns = None):
+        Table.__init__(self, api, Key, columns)
+       
+       sql = "SELECT %s FROM view_keys WHERE is_blacklisted IS False" % \
+              ", ".join(self.columns)
+
+        if key_filter is not None:
+            if isinstance(key_filter, (list, tuple, set)):
+                key_filter = Filter(Key.fields, {'key_id': key_filter})
+            elif isinstance(key_filter, dict):
+                key_filter = Filter(Key.fields, key_filter)
+            sql += " AND (%s) %s" % key_filter.sql(api)
+
+       self.selectall(sql)
diff --git a/trunk/PLC/Messages.py b/trunk/PLC/Messages.py
new file mode 100644 (file)
index 0000000..3ec310f
--- /dev/null
@@ -0,0 +1,50 @@
+#
+# Functions for interacting with the messages table in the database
+#
+# Tony Mack <tmack@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from PLC.Parameter import Parameter
+from PLC.Table import Row, Table
+from PLC.Filter import Filter
+
+class Message(Row):
+    """
+    Representation of a row in the messages table. 
+    """
+    
+    table_name = 'messages'
+    primary_key = 'message_id'
+    fields = {
+        'message_id': Parameter(str, "Message identifier"),
+        'subject': Parameter(str, "Message summary", nullok = True),
+        'template': Parameter(str, "Message template", nullok = True),
+        'enabled': Parameter(bool, "Message is enabled"),
+        }
+    
+class Messages(Table):
+    """
+    Representation of row(s) from the messages table in the database. 
+    """
+
+    def __init__(self, api, message_filter = None, columns = None, enabled = None):
+        Table.__init__(self, api, Message, columns)
+    
+        sql = "SELECT %s from messages WHERE True" % \
+              ", ".join(self.columns)
+
+        if enabled is not None:
+            sql += " AND enabled IS %s" % enabled
+
+        if message_filter is not None:
+            if isinstance(message_filter, (list, tuple, set)):
+                message_filter = Filter(Message.fields, {'message_id': message_filter})
+                sql += " AND (%s) %s" % message_filter.sql(api, "OR")
+            elif isinstance(message_filter, dict):
+                message_filter = Filter(Message.fields, message_filter)
+                sql += " AND (%s) %s" % message_filter.sql(api, "AND")
+
+        self.selectall(sql)
diff --git a/trunk/PLC/Method.py b/trunk/PLC/Method.py
new file mode 100644 (file)
index 0000000..74dc862
--- /dev/null
@@ -0,0 +1,372 @@
+#
+# Base class for all PLCAPI functions
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+import xmlrpclib
+from types import *
+import textwrap
+import os
+import time
+import pprint
+
+from types import StringTypes
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter, Mixed, python_type, xmlrpc_type
+from PLC.Auth import Auth
+from PLC.Debug import profile, log
+from PLC.Events import Event, Events
+from PLC.Nodes import Node, Nodes
+from PLC.Persons import Person, Persons
+
+class Method:
+    """
+    Base class for all PLCAPI functions. At a minimum, all PLCAPI
+    functions must define:
+
+    roles = [list of roles]
+    accepts = [Parameter(arg1_type, arg1_doc), Parameter(arg2_type, arg2_doc), ...]
+    returns = Parameter(return_type, return_doc)
+    call(arg1, arg2, ...): method body
+
+    Argument types may be Python types (e.g., int, bool, etc.), typed
+    values (e.g., 1, True, etc.), a Parameter, or lists or
+    dictionaries of possibly mixed types, values, and/or Parameters
+    (e.g., [int, bool, ...]  or {'arg1': int, 'arg2': bool}).
+
+    Once function decorators in Python 2.4 are fully supported,
+    consider wrapping calls with accepts() and returns() functions
+    instead of performing type checking manually.
+    """
+
+    # Defaults. Could implement authentication and type checking with
+    # decorators, but they are not supported in Python 2.3 and it
+    # would be hard to generate documentation without writing a code
+    # parser.
+
+    roles = []
+    accepts = []
+    returns = bool
+    status = "current"
+
+    def call(self, *args):
+        """
+        Method body for all PLCAPI functions. Must override.
+        """
+
+        return True
+
+    def __init__(self, api):
+        self.name = self.__class__.__name__
+        self.api = api
+
+        # Auth may set this to a Person instance (if an anonymous
+        # method, will remain None).
+        self.caller = None
+
+        # API may set this to a (addr, port) tuple if known
+        self.source = None
+       
+    def __call__(self, *args, **kwds):
+        """
+        Main entry point for all PLCAPI functions. Type checks
+        arguments, authenticates, and executes call().
+        """
+
+        try:
+           start = time.time()
+            (min_args, max_args, defaults) = self.args()
+                               
+           # Check that the right number of arguments were passed in
+            if len(args) < len(min_args) or len(args) > len(max_args):
+                raise PLCInvalidArgumentCount(len(args), len(min_args), len(max_args))
+
+            for name, value, expected in zip(max_args, args, self.accepts):
+                self.type_check(name, value, expected, args)
+       
+           result = self.call(*args, **kwds)
+           runtime = time.time() - start
+
+            if self.api.config.PLC_API_DEBUG or hasattr(self, 'message'):
+               self.log(None, runtime, *args)
+               
+           return result
+
+        except PLCFault, fault:
+       
+           caller = ""
+           if isinstance(self.caller, Person):
+               caller = 'person_id %s'  % self.caller['person_id']
+            elif isinstance(self.caller, Node):
+                caller = 'node_id %s'  % self.caller['node_id']
+
+            # Prepend caller and method name to expected faults
+            fault.faultString = caller + ": " +  self.name + ": " + fault.faultString
+           runtime = time.time() - start
+           self.log(fault, runtime, *args)
+            raise fault
+
+    def log(self, fault, runtime, *args):
+        """
+        Log the transaction 
+        """    
+
+       # Do not log system or Get calls
+        #if self.name.startswith('system') or self.name.startswith('Get'):
+        #    return False
+
+        # Create a new event
+        event = Event(self.api)
+       event['fault_code'] = 0
+       if fault:
+            event['fault_code'] = fault.faultCode
+        event['runtime'] = runtime
+
+        # Redact passwords and sessions
+        if args and isinstance(args[0], dict):
+           # what type of auth this is
+           if args[0].has_key('AuthMethod'):
+               auth_methods = ['session', 'password', 'capability', 'gpg', 'hmac','anonymous']
+               auth_method = args[0]['AuthMethod']
+               if auth_method in auth_methods:
+                   event['auth_type'] = auth_method
+            for password in 'AuthString', 'session':
+                if args[0].has_key(password):
+                    auth = args[0].copy()
+                    auth[password] = "Removed by API"
+                    args = (auth,) + args[1:]
+
+        # Log call representation
+        # XXX Truncate to avoid DoS
+        event['call'] = self.name + pprint.saferepr(args)
+       event['call_name'] = self.name
+
+        # Both users and nodes can call some methods
+        if isinstance(self.caller, Person):
+            event['person_id'] = self.caller['person_id']
+        elif isinstance(self.caller, Node):
+            event['node_id'] = self.caller['node_id']
+
+        event.sync(commit = False)
+
+        if hasattr(self, 'event_objects') and isinstance(self.event_objects, dict):
+            for key in self.event_objects.keys():
+               for object_id in self.event_objects[key]:
+                    event.add_object(key, object_id, commit = False)
+       
+
+       # Set the message for this event
+       if fault:
+           event['message'] = fault.faultString
+       elif hasattr(self, 'message'):
+            event['message'] = self.message    
+       
+        # Commit
+        event.sync()
+
+    def help(self, indent = "  "):
+        """
+        Text documentation for the method.
+        """
+
+        (min_args, max_args, defaults) = self.args()
+
+        text = "%s(%s) -> %s\n\n" % (self.name, ", ".join(max_args), xmlrpc_type(self.returns))
+
+        text += "Description:\n\n"
+        lines = [indent + line.strip() for line in self.__doc__.strip().split("\n")]
+        text += "\n".join(lines) + "\n\n"
+
+        text += "Allowed Roles:\n\n"
+        if not self.roles:
+            roles = ["any"]
+        else:
+            roles = self.roles
+        text += indent + ", ".join(roles) + "\n\n"
+
+        def param_text(name, param, indent, step):
+            """
+            Format a method parameter.
+            """
+
+            text = indent
+
+            # Print parameter name
+            if name:
+                param_offset = 32
+                text += name.ljust(param_offset - len(indent))
+            else:
+                param_offset = len(indent)
+
+            # Print parameter type
+            param_type = python_type(param)
+            text += xmlrpc_type(param_type) + "\n"
+
+            # Print parameter documentation right below type
+            if isinstance(param, Parameter):
+                wrapper = textwrap.TextWrapper(width = 70,
+                                               initial_indent = " " * param_offset,
+                                               subsequent_indent = " " * param_offset)
+                text += "\n".join(wrapper.wrap(param.doc)) + "\n"
+                param = param.type
+
+            text += "\n"
+
+            # Indent struct fields and mixed types
+            if isinstance(param, dict):
+                for name, subparam in param.iteritems():
+                    text += param_text(name, subparam, indent + step, step)
+            elif isinstance(param, Mixed):
+                for subparam in param:
+                    text += param_text(name, subparam, indent + step, step)
+            elif isinstance(param, (list, tuple, set)):
+                for subparam in param:
+                    text += param_text("", subparam, indent + step, step)
+
+            return text
+
+        text += "Parameters:\n\n"
+        for name, param in zip(max_args, self.accepts):
+            text += param_text(name, param, indent, indent)
+
+        text += "Returns:\n\n"
+        text += param_text("", self.returns, indent, indent)
+
+        return text
+
+    def args(self):
+        """
+        Returns a tuple:
+
+        ((arg1_name, arg2_name, ...),
+         (arg1_name, arg2_name, ..., optional1_name, optional2_name, ...),
+         (None, None, ..., optional1_default, optional2_default, ...))
+
+        That represents the minimum and maximum sets of arguments that
+        this function accepts and the defaults for the optional arguments.
+        """
+
+        # Inspect call. Remove self from the argument list.
+        max_args = self.call.func_code.co_varnames[1:self.call.func_code.co_argcount]
+        defaults = self.call.func_defaults
+        if defaults is None:
+            defaults = ()
+
+        min_args = max_args[0:len(max_args) - len(defaults)]
+        defaults = tuple([None for arg in min_args]) + defaults
+        
+        return (min_args, max_args, defaults)
+
+    def type_check(self, name, value, expected, args):
+        """
+        Checks the type of the named value against the expected type,
+        which may be a Python type, a typed value, a Parameter, a
+        Mixed type, or a list or dictionary of possibly mixed types,
+        values, Parameters, or Mixed types.
+        
+        Extraneous members of lists must be of the same type as the
+        last specified type. For example, if the expected argument
+        type is [int, bool], then [1, False] and [14, True, False,
+        True] are valid, but [1], [False, 1] and [14, True, 1] are
+        not.
+
+        Extraneous members of dictionaries are ignored.
+        """
+
+        # If any of a number of types is acceptable
+        if isinstance(expected, Mixed):
+            for item in expected:
+                try:
+                    self.type_check(name, value, item, args)
+                    return
+                except PLCInvalidArgument, fault:
+                    pass
+            raise fault
+
+        # If an authentication structure is expected, save it and
+        # authenticate after basic type checking is done.
+        if isinstance(expected, Auth):
+            auth = expected
+        else:
+            auth = None
+
+        # Get actual expected type from within the Parameter structure
+        if isinstance(expected, Parameter):
+            min = expected.min
+            max = expected.max
+            nullok = expected.nullok
+            expected = expected.type
+        else:
+            min = None
+            max = None
+            nullok = False
+
+        expected_type = python_type(expected)
+
+        # If value can be NULL
+        if value is None and nullok:
+            return
+
+        # Strings are a special case. Accept either unicode or str
+        # types if a string is expected.
+        if expected_type in StringTypes and isinstance(value, StringTypes):
+            pass
+
+        # Integers and long integers are also special types. Accept
+        # either int or long types if an int or long is expected.
+        elif expected_type in (IntType, LongType) and isinstance(value, (IntType, LongType)):
+            pass
+
+        elif not isinstance(value, expected_type):
+            raise PLCInvalidArgument("expected %s, got %s" % \
+                                     (xmlrpc_type(expected_type),
+                                      xmlrpc_type(type(value))),
+                                     name)
+
+        # If a minimum or maximum (length, value) has been specified
+        if expected_type in StringTypes:
+            if min is not None and \
+               len(value.encode(self.api.encoding)) < min:
+                raise PLCInvalidArgument, "%s must be at least %d bytes long" % (name, min)
+            if max is not None and \
+               len(value.encode(self.api.encoding)) > max:
+                raise PLCInvalidArgument, "%s must be at most %d bytes long" % (name, max)
+        elif expected_type in (list, tuple, set):
+            if min is not None and len(value) < min:
+                raise PLCInvalidArgument, "%s must contain at least %d items" % (name, min)
+            if max is not None and len(value) > max:
+                raise PLCInvalidArgument, "%s must contain at most %d items" % (name, max)
+        else:
+            if min is not None and value < min:
+                raise PLCInvalidArgument, "%s must be > %s" % (name, str(min))
+            if max is not None and value > max:
+                raise PLCInvalidArgument, "%s must be < %s" % (name, str(max))
+
+        # If a list with particular types of items is expected
+        if isinstance(expected, (list, tuple, set)):
+            for i in range(len(value)):
+                if i >= len(expected):
+                    j = len(expected) - 1
+                else:
+                    j = i
+                self.type_check(name + "[]", value[i], expected[j], args)
+
+        # If a struct with particular (or required) types of items is
+        # expected.
+        elif isinstance(expected, dict):
+            for key in value.keys():
+                if key in expected:
+                    self.type_check(name + "['%s']" % key, value[key], expected[key], args)
+            for key, subparam in expected.iteritems():
+                if isinstance(subparam, Parameter) and \
+                   subparam.optional is not None and \
+                   not subparam.optional and key not in value.keys():
+                    raise PLCInvalidArgument("'%s' not specified" % key, name)
+
+        if auth is not None:
+            auth.check(self, *args)
diff --git a/trunk/PLC/Methods/.cvsignore b/trunk/PLC/Methods/.cvsignore
new file mode 100644 (file)
index 0000000..0d20b64
--- /dev/null
@@ -0,0 +1 @@
+*.pyc
diff --git a/trunk/PLC/Methods/AddAddressType.py b/trunk/PLC/Methods/AddAddressType.py
new file mode 100644 (file)
index 0000000..9fc771b
--- /dev/null
@@ -0,0 +1,36 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.AddressTypes import AddressType, AddressTypes
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field not in ['address_type_id']
+
+class AddAddressType(Method):
+    """
+    Adds a new address type. Fields specified in address_type_fields
+    are used.
+
+    Returns the new address_type_id (> 0) if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    address_type_fields = dict(filter(can_update, AddressType.fields.items()))
+
+    accepts = [
+        Auth(),
+        address_type_fields
+        ]
+
+    returns = Parameter(int, 'New address_type_id (> 0) if successful')
+        
+
+    def call(self, auth, address_type_fields):
+        address_type_fields = dict(filter(can_update, address_type_fields.items()))
+        address_type = AddressType(self.api, address_type_fields)
+        address_type.sync()
+
+       self.event_objects = {'AddressType' : [address_type['address_type_id']]}
+        
+       return address_type['address_type_id']
diff --git a/trunk/PLC/Methods/AddAddressTypeToAddress.py b/trunk/PLC/Methods/AddAddressTypeToAddress.py
new file mode 100644 (file)
index 0000000..d69e627
--- /dev/null
@@ -0,0 +1,47 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.AddressTypes import AddressType, AddressTypes
+from PLC.Addresses import Address, Addresses
+from PLC.Auth import Auth
+
+class AddAddressTypeToAddress(Method):
+    """
+    Adds an address type to the specified address.
+
+    PIs may only update addresses of their own sites.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi']
+
+    accepts = [
+        Auth(),
+        Mixed(AddressType.fields['address_type_id'],
+              AddressType.fields['name']),
+        Address.fields['address_id']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, address_type_id_or_name, address_id):
+       address_types = AddressTypes(self.api, [address_type_id_or_name])
+        if not address_types:
+            raise PLCInvalidArgument, "No such address type"
+        address_type = address_types[0]
+
+        addresses = Addresses(self.api, [address_id])
+        if not addresses:
+            raise PLCInvalidArgument, "No such address"
+        address = addresses[0]
+
+        if 'admin' not in self.caller['roles']:
+            if address['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Address must be associated with one of your sites"
+
+        address.add_address_type(address_type)
+       self.event_objects = {'Address': [address['address_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/AddBootState.py b/trunk/PLC/Methods/AddBootState.py
new file mode 100644 (file)
index 0000000..fc75254
--- /dev/null
@@ -0,0 +1,29 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.BootStates import BootState, BootStates
+from PLC.Auth import Auth
+
+class AddBootState(Method):
+    """
+    Adds a new node boot state.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        BootState.fields['boot_state']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    
+    def call(self, auth, name):
+        boot_state = BootState(self.api)
+        boot_state['boot_state'] = name
+        boot_state.sync(insert = True)
+
+        return 1
diff --git a/trunk/PLC/Methods/AddConfFile.py b/trunk/PLC/Methods/AddConfFile.py
new file mode 100644 (file)
index 0000000..5604cef
--- /dev/null
@@ -0,0 +1,37 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.ConfFiles import ConfFile, ConfFiles
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field not in \
+             ['conf_file_id', 'node_ids', 'nodegroup_ids']
+
+class AddConfFile(Method):
+    """
+    Adds a new node configuration file. Any fields specified in
+    conf_file_fields are used, otherwise defaults are used.
+
+    Returns the new conf_file_id (> 0) if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    conf_file_fields = dict(filter(can_update, ConfFile.fields.items()))
+
+    accepts = [
+        Auth(),
+        conf_file_fields
+        ]
+
+    returns = Parameter(int, 'New conf_file_id (> 0) if successful')
+
+
+    def call(self, auth, conf_file_fields):
+        conf_file_fields = dict(filter(can_update, conf_file_fields.items()))
+        conf_file = ConfFile(self.api, conf_file_fields)
+        conf_file.sync()
+
+       self.event_objects = {'ConfFile': [conf_file['conf_file_id']]}
+
+        return conf_file['conf_file_id']
diff --git a/trunk/PLC/Methods/AddConfFileToNode.py b/trunk/PLC/Methods/AddConfFileToNode.py
new file mode 100644 (file)
index 0000000..2d1542c
--- /dev/null
@@ -0,0 +1,51 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.ConfFiles import ConfFile, ConfFiles
+from PLC.Nodes import Node, Nodes
+from PLC.Auth import Auth
+
+class AddConfFileToNode(Method):
+    """
+    Adds a configuration file to the specified node. If the node is
+    already linked to the configuration file, no errors are returned.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        ConfFile.fields['conf_file_id'],
+        Mixed(Node.fields['node_id'],
+              Node.fields['hostname'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, conf_file_id, node_id_or_hostname):
+       # Get configuration file
+        conf_files = ConfFiles(self.api, [conf_file_id])
+        if not conf_files:
+            raise PLCInvalidArgument, "No such configuration file"
+        conf_file = conf_files[0]
+
+        # Get node
+       nodes = Nodes(self.api, [node_id_or_hostname])
+       if not nodes:
+               raise PLCInvalidArgument, "No such node"
+       node = nodes[0]
+
+        if node['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local node"
+       
+       # Link configuration file to node
+        if node['node_id'] not in conf_file['node_ids']:
+            conf_file.add_node(node)
+
+        # Log affected objects
+        self.event_objects = {'ConfFile': [conf_file_id], 
+                             'Node': [node['node_id']] }
+
+        return 1
diff --git a/trunk/PLC/Methods/AddConfFileToNodeGroup.py b/trunk/PLC/Methods/AddConfFileToNodeGroup.py
new file mode 100644 (file)
index 0000000..6ff642c
--- /dev/null
@@ -0,0 +1,50 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.ConfFiles import ConfFile, ConfFiles
+from PLC.NodeGroups import NodeGroup, NodeGroups
+from PLC.Auth import Auth
+
+class AddConfFileToNodeGroup(Method):
+    """
+    Adds a configuration file to the specified node group. If the node
+    group is already linked to the configuration file, no errors are
+    returned.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        ConfFile.fields['conf_file_id'],
+        Mixed(NodeGroup.fields['nodegroup_id'],
+              NodeGroup.fields['name'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, conf_file_id, nodegroup_id_or_name):
+       # Get configuration file
+        conf_files = ConfFiles(self.api, [conf_file_id])
+        if not conf_files:
+            raise PLCInvalidArgument, "No such configuration file"
+        conf_file = conf_files[0]
+
+        # Get node
+       nodegroups = NodeGroups(self.api, [nodegroup_id_or_name])
+       if not nodegroups:
+            raise PLCInvalidArgument, "No such node group"
+       nodegroup = nodegroups[0]
+       
+       # Link configuration file to node
+        if nodegroup['nodegroup_id'] not in conf_file['nodegroup_ids']:
+            conf_file.add_nodegroup(nodegroup)
+
+        # Log affected objects
+        self.event_objects = {'ConfFile': [conf_file_id], 
+                             'NodeGroup': [nodegroup['nodegroup_id']] }
+
+        return 1
diff --git a/trunk/PLC/Methods/AddInitScript.py b/trunk/PLC/Methods/AddInitScript.py
new file mode 100644 (file)
index 0000000..8c247cb
--- /dev/null
@@ -0,0 +1,37 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.InitScripts import InitScript, InitScripts
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field not in \
+             ['initscript_id']
+
+class AddInitScript(Method):
+    """
+    Adds a new initscript. Any fields specified in initscript_fields
+    are used, otherwise defaults are used.
+
+    Returns the new initscript_id (> 0) if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    initscript_fields = dict(filter(can_update, InitScript.fields.items()))
+
+    accepts = [
+        Auth(),
+        initscript_fields
+        ]
+
+    returns = Parameter(int, 'New initscript_id (> 0) if successful')
+
+
+    def call(self, auth, initscript_fields):
+        initscript_fields = dict(filter(can_update, initscript_fields.items()))
+        initscript = InitScript(self.api, initscript_fields)
+        initscript.sync()
+
+       self.event_objects = {'InitScript': [initscript['initscript_id']]}
+
+        return initscript['initscript_id']
diff --git a/trunk/PLC/Methods/AddKeyType.py b/trunk/PLC/Methods/AddKeyType.py
new file mode 100644 (file)
index 0000000..b3690a8
--- /dev/null
@@ -0,0 +1,29 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.KeyTypes import KeyType, KeyTypes
+from PLC.Auth import Auth
+
+class AddKeyType(Method):
+    """
+    Adds a new key type.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        KeyType.fields['key_type']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, name):
+        key_type = KeyType(self.api)
+        key_type['key_type'] = name
+        key_type.sync(insert = True)
+
+        return 1
diff --git a/trunk/PLC/Methods/AddMessage.py b/trunk/PLC/Methods/AddMessage.py
new file mode 100644 (file)
index 0000000..62a2da7
--- /dev/null
@@ -0,0 +1,29 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter
+from PLC.Messages import Message, Messages
+from PLC.Auth import Auth
+
+class AddMessage(Method):
+    """
+    Adds a new message template. Any values specified in
+    message_fields are used, otherwise defaults are used.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Message.fields,
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, message_fields):
+        message = Message(self.api, message_fields)
+        message.sync(insert = True)
+
+        return 1
diff --git a/trunk/PLC/Methods/AddNetworkMethod.py b/trunk/PLC/Methods/AddNetworkMethod.py
new file mode 100644 (file)
index 0000000..11f3845
--- /dev/null
@@ -0,0 +1,29 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.NetworkMethods import NetworkMethod, NetworkMethods
+from PLC.Auth import Auth
+
+class AddNetworkMethod(Method):
+    """
+    Adds a new network method.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        NetworkMethod.fields['method']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, name):
+        network_method = NetworkMethod(self.api)
+        network_method['method'] = name
+        network_method.sync(insert = True)
+
+        return 1
diff --git a/trunk/PLC/Methods/AddNetworkType.py b/trunk/PLC/Methods/AddNetworkType.py
new file mode 100644 (file)
index 0000000..6533053
--- /dev/null
@@ -0,0 +1,29 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.NetworkTypes import NetworkType, NetworkTypes
+from PLC.Auth import Auth
+
+class AddNetworkType(Method):
+    """
+    Adds a new network type.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        NetworkType.fields['type']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, name):
+        network_type = NetworkType(self.api)
+        network_type['type'] = name
+        network_type.sync(insert = True)
+
+        return 1
diff --git a/trunk/PLC/Methods/AddNode.py b/trunk/PLC/Methods/AddNode.py
new file mode 100644 (file)
index 0000000..8d253df
--- /dev/null
@@ -0,0 +1,66 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.NodeGroups import NodeGroup, NodeGroups
+from PLC.Sites import Site, Sites
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in \
+             ['hostname', 'boot_state', 'model', 'version']
+
+class AddNode(Method):
+    """
+    Adds a new node. Any values specified in node_fields are used,
+    otherwise defaults are used.
+
+    PIs and techs may only add nodes to their own sites. Admins may
+    add nodes to any site.
+
+    Returns the new node_id (> 0) if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech']
+
+    node_fields = dict(filter(can_update, Node.fields.items()))
+
+    accepts = [
+        Auth(),
+        Mixed(Site.fields['site_id'],
+              Site.fields['login_base']),
+        node_fields
+        ]
+
+    returns = Parameter(int, 'New node_id (> 0) if successful')
+
+    def call(self, auth, site_id_or_login_base, node_fields):
+        node_fields = dict(filter(can_update, node_fields.items()))
+
+        # Get site information
+        sites = Sites(self.api, [site_id_or_login_base])
+        if not sites:
+            raise PLCInvalidArgument, "No such site"
+
+        site = sites[0]
+
+        # Authenticated function
+        assert self.caller is not None
+
+        # If we are not an admin, make sure that the caller is a
+        # member of the site.
+        if 'admin' not in self.caller['roles']:
+            if site['site_id'] not in self.caller['site_ids']:
+                assert self.caller['person_id'] not in site['person_ids']
+                raise PLCPermissionDenied, "Not allowed to add nodes to specified site"
+            else:
+                assert self.caller['person_id'] in site['person_ids']
+
+        node = Node(self.api, node_fields)
+        node['site_id'] = site['site_id']
+        node.sync()
+
+       self.event_objects = {'Site': [site['site_id']],
+                            'Node': [node['node_id']]} 
+       self.message = "Node %s created" % node['node_id']
+
+        return node['node_id']
diff --git a/trunk/PLC/Methods/AddNodeGroup.py b/trunk/PLC/Methods/AddNodeGroup.py
new file mode 100644 (file)
index 0000000..34f5f97
--- /dev/null
@@ -0,0 +1,39 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.NodeGroups import NodeGroup, NodeGroups
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in \
+             ['name', 'description']
+
+class AddNodeGroup(Method):
+    """
+    Adds a new node group. Any values specified in nodegroup_fields
+    are used, otherwise defaults are used.
+
+    Returns the new nodegroup_id (> 0) if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    nodegroup_fields = dict(filter(can_update, NodeGroup.fields.items()))
+
+    accepts = [
+        Auth(),
+        nodegroup_fields
+        ]
+
+    returns = Parameter(int, 'New nodegroup_id (> 0) if successful')
+
+
+    def call(self, auth, nodegroup_fields):
+        nodegroup_fields = dict(filter(can_update, nodegroup_fields.items()))
+        nodegroup = NodeGroup(self.api, nodegroup_fields)
+        nodegroup.sync()
+
+       # Logging variables
+       self.event_objects = {'NodeGroup': [nodegroup['nodegroup_id']]}
+       self.message = 'Node group %d created' % nodegroup['nodegroup_id']
+        return nodegroup['nodegroup_id']
diff --git a/trunk/PLC/Methods/AddNodeNetwork.py b/trunk/PLC/Methods/AddNodeNetwork.py
new file mode 100644 (file)
index 0000000..6e24bce
--- /dev/null
@@ -0,0 +1,73 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field not in ['nodenetwork_id', 'node_id']
+
+class AddNodeNetwork(Method):
+    """
+
+    Adds a new network for a node. Any values specified in
+    nodenetwork_fields are used, otherwise defaults are
+    used. Acceptable values for method may be retrieved via
+    GetNetworkMethods. Acceptable values for type may be retrieved via
+    GetNetworkTypes.
+
+    If type is static, ip, gateway, network, broadcast, netmask, and
+    dns1 must all be specified in nodenetwork_fields. If type is dhcp,
+    these parameters, even if specified, are ignored.
+
+    PIs and techs may only add networks to their own nodes. Admins may
+    add networks to any node.
+
+    Returns the new nodenetwork_id (> 0) if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech']
+
+    nodenetwork_fields = dict(filter(can_update, NodeNetwork.fields.items()))
+
+    accepts = [
+        Auth(),
+        Mixed(Node.fields['node_id'],
+              Node.fields['hostname']),
+        nodenetwork_fields
+        ]
+
+    returns = Parameter(int, 'New nodenetwork_id (> 0) if successful')
+
+    
+    def call(self, auth, node_id_or_hostname, nodenetwork_fields):
+        nodenetwork_fields = dict(filter(can_update, nodenetwork_fields.items()))
+
+        # Check if node exists
+        nodes = Nodes(self.api, [node_id_or_hostname])
+        if not nodes:
+            raise PLCInvalidArgument, "No such node"
+       node = nodes[0]
+
+        # Authenticated function
+        assert self.caller is not None
+
+        # If we are not an admin, make sure that the caller is a
+        # member of the site where the node exists.
+        if 'admin' not in self.caller['roles']:
+            if node['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to add node network for specified node"
+
+        # Add node network
+       nodenetwork = NodeNetwork(self.api, nodenetwork_fields)
+        nodenetwork['node_id'] = node['node_id']
+       # if this is the first node network, make it primary
+       if not node['nodenetwork_ids']:
+               nodenetwork['is_primary'] = True
+        nodenetwork.sync()
+       
+       # Logging variables
+       self.object_ids = [node['node_id'], nodenetwork['nodenetwork_id']]      
+       self.messgage = "Node network %d added" % nodenetwork['nodenetwork_id']
+
+        return nodenetwork['nodenetwork_id']
diff --git a/trunk/PLC/Methods/AddNodeNetworkSetting.py b/trunk/PLC/Methods/AddNodeNetworkSetting.py
new file mode 100644 (file)
index 0000000..b31aed2
--- /dev/null
@@ -0,0 +1,89 @@
+#
+# Thierry Parmentelat - INRIA
+#
+# $Revision$
+#
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+
+from PLC.NodeNetworkSettingTypes import NodeNetworkSettingType, NodeNetworkSettingTypes
+from PLC.NodeNetworkSettings import NodeNetworkSetting, NodeNetworkSettings
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+
+from PLC.Nodes import Nodes
+from PLC.Sites import Sites
+
+class AddNodeNetworkSetting(Method):
+    """
+    Sets the specified setting for the specified nodenetwork
+    to the specified value.
+
+    In general only tech(s), PI(s) and of course admin(s) are allowed to
+    do the change, but this is defined in the nodenetwork setting type object.
+
+    Returns the new nodenetwork_setting_id (> 0) if successful, faults
+    otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech', 'user']
+
+    accepts = [
+        Auth(),
+        # no other way to refer to a nodenetwork
+        NodeNetworkSetting.fields['nodenetwork_id'],
+        Mixed(NodeNetworkSettingType.fields['nodenetwork_setting_type_id'],
+              NodeNetworkSettingType.fields['name']),
+        NodeNetworkSetting.fields['value'],
+        ]
+
+    returns = Parameter(int, 'New nodenetwork_setting_id (> 0) if successful')
+
+    object_type = 'NodeNetwork'
+
+
+    def call(self, auth, nodenetwork_id, nodenetwork_setting_type_id_or_name, value):
+        nodenetworks = NodeNetworks(self.api, [nodenetwork_id])
+        if not nodenetworks:
+            raise PLCInvalidArgument, "No such nodenetwork %r"%nodenetwork_id
+        nodenetwork = nodenetworks[0]
+
+        nodenetwork_setting_types = NodeNetworkSettingTypes(self.api, [nodenetwork_setting_type_id_or_name])
+        if not nodenetwork_setting_types:
+            raise PLCInvalidArgument, "No such nodenetwork setting type %r"%nodenetwork_setting_type_id_or_name
+        nodenetwork_setting_type = nodenetwork_setting_types[0]
+
+       # checks for existence - does not allow several different settings
+        conflicts = NodeNetworkSettings(self.api,
+                                        {'nodenetwork_id':nodenetwork['nodenetwork_id'],
+                                         'nodenetwork_setting_type_id':nodenetwork_setting_type['nodenetwork_setting_type_id']})
+
+        if len(conflicts) :
+            raise PLCInvalidArgument, "Nodenetwork %d already has setting %d"%(nodenetwork['nodenetwork_id'],
+                                                                               nodenetwork_setting_type['nodenetwork_setting_type_id'])
+
+       # check permission : it not admin, is the user affiliated with the right site
+       if 'admin' not in self.caller['roles']:
+           # locate node
+           node = Nodes (self.api,[nodenetwork['node_id']])[0]
+           # locate site
+           site = Sites (self.api, [node['site_id']])[0]
+           # check caller is affiliated with this site
+           if self.caller['person_id'] not in site['person_ids']:
+               raise PLCPermissionDenied, "Not a member of the hosting site %s"%site['abbreviated_site']
+           
+           required_min_role = nodenetwork_setting_type ['min_role_id']
+           if required_min_role is not None and \
+                   min(self.caller['role_ids']) > required_min_role:
+               raise PLCPermissionDenied, "Not allowed to modify the specified nodenetwork setting, requires role %d",required_min_role
+
+        nodenetwork_setting = NodeNetworkSetting(self.api)
+        nodenetwork_setting['nodenetwork_id'] = nodenetwork['nodenetwork_id']
+        nodenetwork_setting['nodenetwork_setting_type_id'] = nodenetwork_setting_type['nodenetwork_setting_type_id']
+        nodenetwork_setting['value'] = value
+
+        nodenetwork_setting.sync()
+       self.object_ids = [nodenetwork_setting['nodenetwork_setting_id']]
+
+        return nodenetwork_setting['nodenetwork_setting_id']
diff --git a/trunk/PLC/Methods/AddNodeNetworkSettingType.py b/trunk/PLC/Methods/AddNodeNetworkSettingType.py
new file mode 100644 (file)
index 0000000..35a3ca0
--- /dev/null
@@ -0,0 +1,45 @@
+#
+# Thierry Parmentelat - INRIA
+#
+# $Revision$
+#
+
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.NodeNetworkSettingTypes import NodeNetworkSettingType, NodeNetworkSettingTypes
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in \
+             ['name', 'description', 'category', 'min_role_id']
+
+class AddNodeNetworkSettingType(Method):
+    """
+    Adds a new type of nodenetwork setting.
+    Any fields specified are used, otherwise defaults are used.
+
+    Returns the new nodenetwork_setting_id (> 0) if successful,
+    faults otherwise.
+    """
+
+    roles = ['admin']
+
+    nodenetwork_setting_type_fields = dict(filter(can_update, NodeNetworkSettingType.fields.items()))
+
+    accepts = [
+        Auth(),
+        nodenetwork_setting_type_fields
+        ]
+
+    returns = Parameter(int, 'New nodenetwork_setting_id (> 0) if successful')
+
+
+    def call(self, auth, nodenetwork_setting_type_fields):
+        nodenetwork_setting_type_fields = dict(filter(can_update, nodenetwork_setting_type_fields.items()))
+        nodenetwork_setting_type = NodeNetworkSettingType(self.api, nodenetwork_setting_type_fields)
+        nodenetwork_setting_type.sync()
+
+       self.object_ids = [nodenetwork_setting_type['nodenetwork_setting_type_id']]
+
+        return nodenetwork_setting_type['nodenetwork_setting_type_id']
diff --git a/trunk/PLC/Methods/AddNodeToNodeGroup.py b/trunk/PLC/Methods/AddNodeToNodeGroup.py
new file mode 100644 (file)
index 0000000..a552b11
--- /dev/null
@@ -0,0 +1,55 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.NodeGroups import NodeGroup, NodeGroups
+from PLC.Nodes import Node, Nodes
+from PLC.Auth import Auth
+
+class AddNodeToNodeGroup(Method):
+    """
+    Add a node to the specified node group. If the node is
+    already a member of the nodegroup, no errors are returned.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+       Mixed(Node.fields['node_id'],
+             Node.fields['hostname']),
+        Mixed(NodeGroup.fields['nodegroup_id'],
+             NodeGroup.fields['name']),
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, node_id_or_hostname, nodegroup_id_or_name):
+        # Get node info
+       nodes = Nodes(self.api, [node_id_or_hostname])
+       if not nodes:
+               raise PLCInvalidArgument, "No such node"
+       node = nodes[0]
+
+        if node['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local node"
+
+       # Get nodegroup info
+        nodegroups = NodeGroups(self.api, [nodegroup_id_or_name])
+        if not nodegroups:
+            raise PLCInvalidArgument, "No such nodegroup"
+
+        nodegroup = nodegroups[0]
+       
+       # add node to nodegroup
+        if node['node_id'] not in nodegroup['node_ids']:
+            nodegroup.add_node(node)
+       
+       # Logging variables
+       self.event_objects = {'NodeGroup': [nodegroup['nodegroup_id']],
+                             'Node': [node['node_id']]}
+       self.message = 'Node %d added to node group %d' % \
+               (node['node_id'], nodegroup['nodegroup_id'])
+        return 1
diff --git a/trunk/PLC/Methods/AddNodeToPCU.py b/trunk/PLC/Methods/AddNodeToPCU.py
new file mode 100644 (file)
index 0000000..c0d5eff
--- /dev/null
@@ -0,0 +1,74 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.PCUs import PCU, PCUs
+from PLC.Sites import Site, Sites
+from PLC.Auth import Auth
+
+class AddNodeToPCU(Method):
+    """
+    Adds a node to a port on a PCU. Faults if the node has already
+    been added to the PCU or if the port is already in use.
+
+    Non-admins may only update PCUs at their sites.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech']
+
+    accepts = [
+        Auth(),
+       Mixed(Node.fields['node_id'],
+              Node.fields['hostname']),
+        PCU.fields['pcu_id'],
+        Parameter(int, 'PCU port number')
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, node_id_or_hostname, pcu_id, port):
+        # Get node
+        nodes = Nodes(self.api, [node_id_or_hostname])
+        if not nodes:
+            raise PLCInvalidArgument, "No such node"
+        node = nodes[0]
+
+        if node['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local node"
+
+        # Get PCU
+        pcus = PCUs(self.api, [pcu_id])
+        if not pcus:
+            raise PLCInvalidArgument, "No such PCU"
+        pcu = pcus[0]
+
+        if 'admin' not in self.caller['roles']:
+            ok = False
+            sites = Sites(self.api, self.caller['site_ids'])
+            for site in sites:
+                if pcu['pcu_id'] in site['pcu_ids']:
+                    ok = True
+                    break
+            if not ok:
+                raise PLCPermissionDenied, "Not allowed to update that PCU"
+       
+       # Add node to PCU
+        if node['node_id'] in pcu['node_ids']:
+            raise PLCInvalidArgument, "Node already controlled by PCU"
+
+        if node['site_id'] != pcu['site_id']:
+            raise PLCInvalidArgument, "Node is at a different site than this PCU"
+
+        if port in pcu['ports']:
+            raise PLCInvalidArgument, "PCU port already in use"
+
+        pcu.add_node(node, port)
+
+       # Logging variables
+       self.event_objects = {'Node': [node['node_id']],
+                             'PCU': [pcu['pcu_id']]}
+       self.message = 'Node %d added to pcu %d on port %d' % \
+               (node['node_id'], pcu['pcu_id'], port)
+        return 1
diff --git a/trunk/PLC/Methods/AddPCU.py b/trunk/PLC/Methods/AddPCU.py
new file mode 100644 (file)
index 0000000..3c46194
--- /dev/null
@@ -0,0 +1,61 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.PCUs import PCU, PCUs
+from PLC.Auth import Auth
+from PLC.Sites import Site, Sites
+
+can_update = lambda (field, value): field in \
+             ['ip', 'hostname', 'protocol',
+              'username', 'password',
+              'model', 'notes']
+
+class AddPCU(Method):
+    """
+    Adds a new power control unit (PCU) to the specified site. Any
+    fields specified in pcu_fields are used, otherwise defaults are
+    used.
+
+    PIs and technical contacts may only add PCUs to their own sites.
+
+    Returns the new pcu_id (> 0) if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech']
+
+    pcu_fields = dict(filter(can_update, PCU.fields.items()))
+
+    accepts = [
+        Auth(),
+        Mixed(Site.fields['site_id'],
+              Site.fields['login_base']),
+        pcu_fields
+        ]
+
+    returns = Parameter(int, 'New pcu_id (> 0) if successful')
+    
+
+    def call(self, auth, site_id_or_login_base, pcu_fields):
+        pcu_fields = dict(filter(can_update, pcu_fields.items()))
+
+        # Get associated site details
+        sites = Sites(self.api, [site_id_or_login_base])
+        if not sites:
+            raise PLCInvalidArgument, "No such site"
+        site = sites[0]
+
+        if 'admin' not in self.caller['roles']:
+            if site['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to add a PCU to that site"
+
+        pcu = PCU(self.api, pcu_fields)
+        pcu['site_id'] = site['site_id']
+        pcu.sync()
+
+       # Logging variables
+       self.event_objects = {'Site': [site['site_id']],
+                             'PCU': [pcu['pcu_id']]}
+       self.message = 'PCU %d added site %s' % \
+               (pcu['pcu_id'], site['site_id'])
+
+        return pcu['pcu_id']
diff --git a/trunk/PLC/Methods/AddPCUProtocolType.py b/trunk/PLC/Methods/AddPCUProtocolType.py
new file mode 100644 (file)
index 0000000..76dad3b
--- /dev/null
@@ -0,0 +1,55 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.PCUProtocolTypes import PCUProtocolType, PCUProtocolTypes
+from PLC.PCUTypes import PCUType, PCUTypes
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in \
+            ['pcu_type_id', 'port', 'protocol', 'supported']   
+
+class AddPCUProtocolType(Method):
+    """
+    Adds a new pcu protocol type.
+
+    Returns the new pcu_protocol_type_id (> 0) if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    protocol_type_fields = dict(filter(can_update, PCUProtocolType.fields.items()))
+
+    accepts = [
+        Auth(),
+       Mixed(PCUType.fields['pcu_type_id'],
+              PCUType.fields['model']),
+        protocol_type_fields
+       ]
+
+    returns = Parameter(int, 'New pcu_protocol_type_id (> 0) if successful')
+
+    def call(self, auth, pcu_type_id_or_model, protocol_type_fields):
+
+       # Check if pcu type exists
+       pcu_types = PCUTypes(self.api, [pcu_type_id_or_model])
+       if not pcu_types:
+           raise PLCInvalidArgument, "No such pcu type"
+       pcu_type = pcu_types[0]
+
+       
+       # Check if this port is already used
+       if 'port' not in protocol_type_fields:
+           raise PLCInvalidArgument, "Must specify a port"
+       else:
+           protocol_types = PCUProtocolTypes(self.api, {'pcu_type_id': pcu_type['pcu_type_id']})
+           for protocol_type in protocol_types:
+               if protocol_type['port'] == protocol_type_fields['port']:
+                   raise PLCInvalidArgument, "Port alreay in use" 
+
+       protocol_type_fields = dict(filter(can_update, protocol_type_fields.items()))
+        protocol_type = PCUProtocolType(self.api, protocol_type_fields)
+       protocol_type['pcu_type_id'] = pcu_type['pcu_type_id']
+       protocol_type.sync()
+       self.event_object = {'PCUProtocolType': [protocol_type['pcu_protocol_type_id']]}        
+
+        return protocol_type['pcu_protocol_type_id']
diff --git a/trunk/PLC/Methods/AddPCUType.py b/trunk/PLC/Methods/AddPCUType.py
new file mode 100644 (file)
index 0000000..106791a
--- /dev/null
@@ -0,0 +1,35 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.PCUTypes import PCUType, PCUTypes
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in \
+            ['model', 'name']  
+
+class AddPCUType(Method):
+    """
+    Adds a new pcu type.
+
+    Returns the new pcu_type_id (> 0) if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    pcu_type_fields = dict(filter(can_update, PCUType.fields.items()))
+
+    accepts = [
+        Auth(),
+        pcu_type_fields
+       ]
+
+    returns = Parameter(int, 'New pcu_type_id (> 0) if successful')
+
+    
+    def call(self, auth, pcu_type_fields):
+       pcu_type_fields = dict(filter(can_update, pcu_type_fields.items()))
+        pcu_type = PCUType(self.api, pcu_type_fields)
+       pcu_type.sync()
+       self.event_object = {'PCUType': [pcu_type['pcu_type_id']]}      
+
+        return pcu_type['pcu_type_id']
diff --git a/trunk/PLC/Methods/AddPeer.py b/trunk/PLC/Methods/AddPeer.py
new file mode 100644 (file)
index 0000000..d6dc576
--- /dev/null
@@ -0,0 +1,36 @@
+#
+# Thierry Parmentelat - INRIA
+# 
+
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+from PLC.Peers import Peer, Peers
+
+can_update = lambda (field, value): field in \
+             ['peername', 'peer_url', 'key', 'cacert']
+
+class AddPeer(Method):
+    """
+    Adds a new peer.
+
+    Returns the new peer_id (> 0) if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    peer_fields = dict(filter(can_update, Peer.fields.items()))
+
+    accepts = [
+        Auth(),
+        peer_fields
+        ]
+
+    returns = Parameter(int, "New peer_id (> 0) if successful")
+
+    def call(self, auth, peer_fields):
+       peer = Peer(self.api, peer_fields);
+       peer.sync()
+       self.event_objects = {'Peer': [peer['peer_id']]}
+
+       return peer['peer_id']
diff --git a/trunk/PLC/Methods/AddPerson.py b/trunk/PLC/Methods/AddPerson.py
new file mode 100644 (file)
index 0000000..cb0aa71
--- /dev/null
@@ -0,0 +1,43 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in \
+             ['first_name', 'last_name', 'title',
+              'email', 'password', 'phone', 'url', 'bio']
+
+class AddPerson(Method):
+    """
+    Adds a new account. Any fields specified in person_fields are
+    used, otherwise defaults are used.
+
+    Accounts are disabled by default. To enable an account, use
+    UpdatePerson().
+
+    Returns the new person_id (> 0) if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi']
+
+    person_fields = dict(filter(can_update, Person.fields.items()))
+
+    accepts = [
+        Auth(),
+        person_fields
+        ]
+
+    returns = Parameter(int, 'New person_id (> 0) if successful')
+
+    def call(self, auth, person_fields):
+        person_fields = dict(filter(can_update, person_fields.items()))
+        person_fields['enabled'] = False
+        person = Person(self.api, person_fields)
+        person.sync()
+
+       # Logging variables
+       self.event_objects = {'Person': [person['person_id']]}
+       self.message = 'Person %d added' % person['person_id']  
+
+        return person['person_id']
diff --git a/trunk/PLC/Methods/AddPersonKey.py b/trunk/PLC/Methods/AddPersonKey.py
new file mode 100644 (file)
index 0000000..aa4ed00
--- /dev/null
@@ -0,0 +1,59 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Keys import Key, Keys
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in ['key_type','key']
+
+class AddPersonKey(Method):
+    """
+    Adds a new key to the specified account.
+
+    Non-admins can only modify their own keys.
+
+    Returns the new key_id (> 0) if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech', 'user']
+
+    key_fields = dict(filter(can_update, Key.fields.items()))
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email']),
+        key_fields
+        ]
+
+    returns = Parameter(int, 'New key_id (> 0) if successful')
+
+    def call(self, auth, person_id_or_email, key_fields):
+        key_fields = dict(filter(can_update, key_fields.items()))
+
+        # Get account details
+        persons = Persons(self.api, [person_id_or_email])
+        if not persons:
+            raise PLCInvalidArgument, "No such account"
+        person = persons[0]
+
+        if person['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local account"
+
+       # If we are not admin, make sure caller is adding a key to their account
+        if 'admin' not in self.caller['roles']:
+            if person['person_id'] != self.caller['person_id']:
+                raise PLCPermissionDenied, "You may only modify your own keys"
+
+        key = Key(self.api, key_fields)
+        key.sync(commit = False)
+        person.add_key(key, commit = True)
+
+        # Logging variables
+       self.event_objects = {'Person': [person['person_id']],
+                             'Key': [key['key_id']]}
+       self.message = 'Key %d added to person %d' % \
+               (key['key_id'], person['person_id'])
+
+        return key['key_id']
diff --git a/trunk/PLC/Methods/AddPersonToSite.py b/trunk/PLC/Methods/AddPersonToSite.py
new file mode 100644 (file)
index 0000000..7d5ac10
--- /dev/null
@@ -0,0 +1,56 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Sites import Site, Sites
+from PLC.Auth import Auth
+
+class AddPersonToSite(Method):
+    """
+    Adds the specified person to the specified site. If the person is
+    already a member of the site, no errors are returned. Does not
+    change the person's primary site.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email']),
+        Mixed(Site.fields['site_id'],
+              Site.fields['login_base'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, person_id_or_email, site_id_or_login_base):
+        # Get account information
+        persons = Persons(self.api, [person_id_or_email])
+        if not persons:
+            raise PLCInvalidArgument, "No such account"
+        person = persons[0]
+
+        if person['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local account"
+
+        # Get site information
+        sites = Sites(self.api, [site_id_or_login_base])
+        if not sites:
+            raise PLCInvalidArgument, "No such site"
+        site = sites[0]
+
+        if site['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local site"
+
+        if site['site_id'] not in person['site_ids']:
+            site.add_person(person)
+
+       # Logging variables
+       self.event_objects = {'Site': [site['site_id']],
+                             'Person': [person['person_id']]}
+       self.message = 'Person %d added to site %d' % \
+               (person['person_id'], site['site_id'])
+        return 1
diff --git a/trunk/PLC/Methods/AddPersonToSlice.py b/trunk/PLC/Methods/AddPersonToSlice.py
new file mode 100644 (file)
index 0000000..e3392eb
--- /dev/null
@@ -0,0 +1,61 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Slices import Slice, Slices
+from PLC.Auth import Auth
+
+class AddPersonToSlice(Method):
+    """
+    Adds the specified person to the specified slice. If the person is
+    already a member of the slice, no errors are returned. 
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi']
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email']),
+        Mixed(Slice.fields['slice_id'],
+              Slice.fields['name'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, person_id_or_email, slice_id_or_name):
+        # Get account information
+        persons = Persons(self.api, [person_id_or_email])
+        if not persons:
+            raise PLCInvalidArgument, "No such account"
+        person = persons[0]
+
+        # Get slice information
+        slices = Slices(self.api, [slice_id_or_name])
+        if not slices:
+            raise PLCInvalidArgument, "No such slice"
+        slice = slices[0]
+
+        # N.B. Allow foreign users to be added to local slices and
+        # local users to be added to foreign slices (and, of course,
+        # local users to be added to local slices).
+        if person['peer_id'] is not None and slice['peer_id'] is not None:
+            raise PLCInvalidArgument, "Cannot add foreign users to foreign slices"
+
+        # If we are not admin, make sure the caller is a PI
+        # of the site associated with the slice
+       if 'admin' not in self.caller['roles']:
+            if slice['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to add users to this slice"
+
+       if slice['slice_id'] not in person['slice_ids']:
+            slice.add_person(person)
+
+        # Logging variables
+       self.event_objects = {'Person': [person['person_id']],
+                             'Slice': [slice['slice_id']]}     
+       self.object_ids = [slice['slice_id']]
+
+        return 1
diff --git a/trunk/PLC/Methods/AddRole.py b/trunk/PLC/Methods/AddRole.py
new file mode 100644 (file)
index 0000000..7266180
--- /dev/null
@@ -0,0 +1,32 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Roles import Role, Roles
+from PLC.Auth import Auth
+
+class AddRole(Method):
+    """
+    Adds a new role.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Role.fields['role_id'],
+        Role.fields['name']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, role_id, name):
+        role = Role(self.api)
+        role['role_id'] = role_id
+        role['name'] = name
+        role.sync(insert = True)
+       self.event_objects = {'Role': [role['role_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/AddRoleToPerson.py b/trunk/PLC/Methods/AddRoleToPerson.py
new file mode 100644 (file)
index 0000000..5a8e241
--- /dev/null
@@ -0,0 +1,66 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+from PLC.Roles import Role, Roles
+
+class AddRoleToPerson(Method):
+    """
+    Grants the specified role to the person.
+    
+    PIs can only grant the tech and user roles to users and techs at
+    their sites. Admins can grant any role to any user.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi']
+
+    accepts = [
+        Auth(),
+        Mixed(Role.fields['role_id'],
+              Role.fields['name']),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email']),
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, role_id_or_name, person_id_or_email):
+        # Get role
+        roles = Roles(self.api, [role_id_or_name])
+        if not roles:
+            raise PLCInvalidArgument, "Invalid role '%s'" % unicode(role_id_or_name)
+        role = roles[0]
+
+        # Get account information
+        persons = Persons(self.api, [person_id_or_email])
+        if not persons:
+            raise PLCInvalidArgument, "No such account"
+        person = persons[0]
+
+        if person['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local account"
+
+        # Authenticated function
+        assert self.caller is not None
+
+        # Check if we can update this account
+        if not self.caller.can_update(person):
+            raise PLCPermissionDenied, "Not allowed to update specified account"
+
+        # Can only grant lesser (higher) roles to others
+        if 'admin' not in self.caller['roles'] and \
+           role['role_id'] <= min(self.caller['role_ids']):
+            raise PLCInvalidArgument, "Not allowed to grant that role"
+
+        if role['role_id'] not in person['role_ids']:
+            person.add_role(role)
+
+       self.event_objects = {'Person': [person['person_id']],
+                             'Role': [role['role_id']]}
+       self.message = "Role %d granted to person %d" % \
+                       (role['role_id'], person['person_id'])
+
+        return 1
diff --git a/trunk/PLC/Methods/AddSession.py b/trunk/PLC/Methods/AddSession.py
new file mode 100644 (file)
index 0000000..6f5bc88
--- /dev/null
@@ -0,0 +1,37 @@
+import time
+
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+from PLC.Sessions import Session, Sessions
+from PLC.Persons import Person, Persons
+
+class AddSession(Method):
+    """
+    Creates and returns a new session key for the specified user. 
+    (Used for website 'user sudo')
+    """
+
+    roles = ['admin']
+    accepts = [
+       Auth(),
+       Mixed(Person.fields['person_id'],
+              Person.fields['email'])
+       ]
+    returns = Session.fields['session_id']
+    
+
+    def call(self, auth, person_id_or_email):
+        
+       persons = Persons(self.api, [person_id_or_email], ['person_id', 'email'])
+       
+       if not persons:
+           raise PLCInvalidArgument, "No such person"
+       
+       person = persons[0]
+       session = Session(self.api)
+        session['expires'] = int(time.time()) + (24 * 60 * 60)
+       session.sync(commit = False)
+       session.add_person(person, commit = True)
+
+        return session['session_id']
diff --git a/trunk/PLC/Methods/AddSite.py b/trunk/PLC/Methods/AddSite.py
new file mode 100644 (file)
index 0000000..475c8b1
--- /dev/null
@@ -0,0 +1,41 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Sites import Site, Sites
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in \
+             ['name', 'abbreviated_name', 'login_base',
+              'is_public', 'latitude', 'longitude', 'url',
+              'max_slices', 'max_slivers', 'enabled']
+
+class AddSite(Method):
+    """
+    Adds a new site, and creates a node group for that site. Any
+    fields specified in site_fields are used, otherwise defaults are
+    used.
+
+    Returns the new site_id (> 0) if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    site_fields = dict(filter(can_update, Site.fields.items()))
+
+    accepts = [
+        Auth(),
+        site_fields
+        ]
+
+    returns = Parameter(int, 'New site_id (> 0) if successful')
+
+    def call(self, auth, site_fields):
+        site_fields = dict(filter(can_update, site_fields.items()))
+        site = Site(self.api, site_fields)
+        site.sync()
+       
+       # Logging variables 
+       self.event_objects = {'Site': [site['site_id']]}
+        self.message = 'Site %d created' % site['site_id']
+       
+       return site['site_id']
diff --git a/trunk/PLC/Methods/AddSiteAddress.py b/trunk/PLC/Methods/AddSiteAddress.py
new file mode 100644 (file)
index 0000000..a3a4eff
--- /dev/null
@@ -0,0 +1,58 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Addresses import Address, Addresses
+from PLC.Auth import Auth
+from PLC.Sites import Site, Sites
+
+can_update = lambda (field, value): field in \
+             ['line1', 'line2', 'line3',
+              'city', 'state', 'postalcode', 'country']
+
+class AddSiteAddress(Method):
+    """
+    Adds a new address to a site. Fields specified in
+    address_fields are used; some are not optional.
+
+    PIs may only add addresses to their own sites.
+
+    Returns the new address_id (> 0) if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi']
+
+    address_fields = dict(filter(can_update, Address.fields.items()))
+
+    accepts = [
+        Auth(),
+        Mixed(Site.fields['site_id'],
+              Site.fields['login_base']),
+        address_fields
+        ]
+
+    returns = Parameter(int, 'New address_id (> 0) if successful')
+
+    def call(self, auth, site_id_or_login_base, address_fields):
+        address_fields = dict(filter(can_update, address_fields.items()))
+
+        # Get associated site details
+        sites = Sites(self.api, [site_id_or_login_base])
+        if not sites:
+            raise PLCInvalidArgument, "No such site"
+        site = sites[0]
+
+        if 'admin' not in self.caller['roles']:
+            if site['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Address must be associated with one of your sites"
+
+        address = Address(self.api, address_fields)
+        address.sync(commit = False)
+        site.add_address(address, commit = True)
+
+       # Logging variables
+       self.event_objects = {'Site': [site['site_id']], 
+                             'Address': [address['address_id']]}
+       self.message = 'Address %d assigned to Site %d' % \
+               (address['address_id'], site['site_id'])
+
+        return address['address_id']
diff --git a/trunk/PLC/Methods/AddSlice.py b/trunk/PLC/Methods/AddSlice.py
new file mode 100644 (file)
index 0000000..6cc056c
--- /dev/null
@@ -0,0 +1,80 @@
+import re
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Slices import Slice, Slices
+from PLC.Auth import Auth
+from PLC.Sites import Site, Sites
+
+can_update = lambda (field, value): field in \
+             ['name', 'instantiation', 'url', 'description', 'max_nodes']
+
+class AddSlice(Method):
+    """
+    Adds a new slice. Any fields specified in slice_fields are used,
+    otherwise defaults are used.
+
+    Valid slice names are lowercase and begin with the login_base
+    (slice prefix) of a valid site, followed by a single
+    underscore. Thereafter, only letters, numbers, or additional
+    underscores may be used.
+
+    PIs may only add slices associated with their own sites (i.e.,
+    slice prefixes must always be the login_base of one of their
+    sites).
+
+    Returns the new slice_id (> 0) if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi']
+
+    slice_fields = dict(filter(can_update, Slice.fields.items()))
+
+    accepts = [
+        Auth(),
+        slice_fields
+        ]
+
+    returns = Parameter(int, 'New slice_id (> 0) if successful')
+
+    def call(self, auth, slice_fields):
+        slice_fields = dict(filter(can_update, slice_fields.items()))
+
+        # 1. Lowercase.
+        # 2. Begins with login_base (letters or numbers).
+        # 3. Then single underscore after login_base.
+        # 4. Then letters, numbers, or underscores.
+        name = slice_fields['name']
+        good_name = r'^[a-z0-9]+_[a-zA-Z0-9_]+$'
+        if not name or \
+           not re.match(good_name, name):
+            raise PLCInvalidArgument, "Invalid slice name"
+
+        # Get associated site details
+        login_base = name.split("_")[0]
+        sites = Sites(self.api, [login_base])
+        if not sites:
+            raise PLCInvalidArgument, "Invalid slice prefix %s in %s"%(login_base,name)
+        site = sites[0]
+
+        if 'admin' not in self.caller['roles']:
+            if site['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Slice prefix %s must be the same as the login_base of one of your sites"%login_base
+
+        if len(site['slice_ids']) >= site['max_slices']:
+            raise PLCInvalidArgument, "Site %s has reached (%d) its maximum allowable slice count (%d)"%(site['name'],
+                                                                                                         len(site['slice_ids']),
+                                                                                                         site['max_slices'])
+
+       if not site['enabled']:
+           raise PLCInvalidArgument, "Site %s is disabled can cannot create slices" % (site['name'])
+        
+        slice = Slice(self.api, slice_fields)
+        slice['creator_person_id'] = self.caller['person_id']
+        slice['site_id'] = site['site_id']
+        slice.sync()
+
+       self.event_objects = {'Slice': [slice['slice_id']]}
+
+        return slice['slice_id']
diff --git a/trunk/PLC/Methods/AddSliceAttribute.py b/trunk/PLC/Methods/AddSliceAttribute.py
new file mode 100644 (file)
index 0000000..c5183bc
--- /dev/null
@@ -0,0 +1,113 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.SliceAttributeTypes import SliceAttributeType, SliceAttributeTypes
+from PLC.Slices import Slice, Slices
+from PLC.Nodes import Node, Nodes
+from PLC.SliceAttributes import SliceAttribute, SliceAttributes
+from PLC.NodeGroups import NodeGroup, NodeGroups
+from PLC.InitScripts import InitScript, InitScripts
+from PLC.Auth import Auth
+
+class AddSliceAttribute(Method):
+    """
+    Sets the specified attribute of the slice (or sliver, if
+    node_id_or_hostname is specified) to the specified value.
+
+    Attributes may require the caller to have a particular role in
+    order to be set or changed. Users may only set attributes of
+    slices or slivers of which they are members. PIs may only set
+    attributes of slices or slivers at their sites, or of which they
+    are members. Admins may set attributes of any slice or sliver.
+
+    Returns the new slice_attribute_id (> 0) if successful, faults
+    otherwise.
+    """
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+        Mixed(SliceAttribute.fields['slice_id'],
+              SliceAttribute.fields['name']),
+        Mixed(SliceAttribute.fields['attribute_type_id'],
+              SliceAttribute.fields['name']),
+        Mixed(SliceAttribute.fields['value'],
+             InitScript.fields['initscript_id']),
+        Mixed(Node.fields['node_id'],
+              Node.fields['hostname'],
+             None),
+       Mixed(NodeGroup.fields['nodegroup_id'],
+              NodeGroup.fields['name'])
+        ]
+
+    returns = Parameter(int, 'New slice_attribute_id (> 0) if successful')
+
+    def call(self, auth, slice_id_or_name, attribute_type_id_or_name, value, node_id_or_hostname = None, nodegroup_id_or_name = None):
+        slices = Slices(self.api, [slice_id_or_name])
+        if not slices:
+            raise PLCInvalidArgument, "No such slice"
+        slice = slices[0]
+
+        attribute_types = SliceAttributeTypes(self.api, [attribute_type_id_or_name])
+        if not attribute_types:
+            raise PLCInvalidArgument, "No such slice attribute type"
+        attribute_type = attribute_types[0]
+
+        if 'admin' not in self.caller['roles']:
+            if self.caller['person_id'] in slice['person_ids']:
+                pass
+            elif 'pi' not in self.caller['roles']:
+                raise PLCPermissionDenied, "Not a member of the specified slice"
+            elif slice['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Specified slice not associated with any of your sites"
+
+            if attribute_type['min_role_id'] is not None and \
+               min(self.caller['role_ids']) > attribute_type['min_role_id']:
+                raise PLCPermissionDenied, "Not allowed to set the specified slice attribute"
+
+       # if initscript is specified, validate value
+       if attribute_type['name'] in ['plc_initscript_id']:
+           initscripts = InitScripts(self.api, {'enabled': True, 'initscript_id': int(value)})
+           if not initscripts: 
+               raise PLCInvalidArgument, "No such plc initscript"      
+
+        slice_attribute = SliceAttribute(self.api)
+        slice_attribute['slice_id'] = slice['slice_id']
+        slice_attribute['attribute_type_id'] = attribute_type['attribute_type_id']
+        slice_attribute['value'] = value
+
+        # Sliver attribute if node is specified
+        if node_id_or_hostname is not None:
+            nodes = Nodes(self.api, [node_id_or_hostname])
+            if not nodes:
+                raise PLCInvalidArgument, "No such node"
+            node = nodes[0]
+            
+            if node['node_id'] not in slice['node_ids']:
+                raise PLCInvalidArgument, "Node not in the specified slice"
+            slice_attribute['node_id'] = node['node_id']
+
+       # Sliver attribute shared accross nodes if nodegroup is sepcified
+       if nodegroup_id_or_name is not None:
+           nodegroups = NodeGroups(self.api, [nodegroup_id_or_name])
+           if not nodegroups:
+               raise PLCInvalidArgument, "No such nodegroup"
+           nodegroup = nodegroups[0]
+       
+           slice_attribute['nodegroup_id'] = nodegroup['nodegroup_id']
+
+       # Check if slice attribute alreay exists
+        slice_attributes_check = SliceAttributes(self.api, {'slice_id': slice['slice_id'], 'name': attribute_type['name'], 'value': value})
+        for slice_attribute_check in slice_attributes_check:
+            if 'node_id' in slice_attribute and slice_attribute['node_id'] == slice_attribute_check['node_id']:
+               raise PLCInvalidArgument, "Sliver attribute already exists"
+           if 'nodegroup_id' in slice_attribute and slice_attribute['nodegroup_id'] == slice_attribute_check['nodegroup_id']:
+               raise PLCInvalidArgument, "Slice attribute already exists for this nodegroup"
+            if node_id_or_hostname is None and nodegroup_id_or_name is None:
+                raise PLCInvalidArgument, "Slice attribute already exists"
+
+        slice_attribute.sync()
+       self.event_objects = {'SliceAttribute': [slice_attribute['slice_attribute_id']]}
+
+        return slice_attribute['slice_attribute_id']
diff --git a/trunk/PLC/Methods/AddSliceAttributeType.py b/trunk/PLC/Methods/AddSliceAttributeType.py
new file mode 100644 (file)
index 0000000..095ae83
--- /dev/null
@@ -0,0 +1,38 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.SliceAttributeTypes import SliceAttributeType, SliceAttributeTypes
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in \
+             ['name', 'description', 'min_role_id']
+
+class AddSliceAttributeType(Method):
+    """
+    Adds a new type of slice attribute. Any fields specified in
+    attribute_type_fields are used, otherwise defaults are used.
+
+    Returns the new attribute_type_id (> 0) if successful, faults
+    otherwise.
+    """
+
+    roles = ['admin']
+
+    attribute_type_fields = dict(filter(can_update, SliceAttributeType.fields.items()))
+
+    accepts = [
+        Auth(),
+        attribute_type_fields
+        ]
+
+    returns = Parameter(int, 'New attribute_id (> 0) if successful')
+
+
+    def call(self, auth, attribute_type_fields):
+        attribute_type_fields = dict(filter(can_update, attribute_type_fields.items()))
+        attribute_type = SliceAttributeType(self.api, attribute_type_fields)
+        attribute_type.sync()
+
+       self.event_objects = {'AttributeType': [attribute_type['attribute_type_id']]}
+
+        return attribute_type['attribute_type_id']
diff --git a/trunk/PLC/Methods/AddSliceInstantiation.py b/trunk/PLC/Methods/AddSliceInstantiation.py
new file mode 100644 (file)
index 0000000..0374957
--- /dev/null
@@ -0,0 +1,29 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.SliceInstantiations import SliceInstantiation, SliceInstantiations
+from PLC.Auth import Auth
+
+class AddSliceInstantiation(Method):
+    """
+    Adds a new slice instantiation state.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        SliceInstantiation.fields['instantiation']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, name):
+        slice_instantiation = SliceInstantiation(self.api)
+        slice_instantiation['instantiation'] = name
+        slice_instantiation.sync(insert = True)
+
+        return 1
diff --git a/trunk/PLC/Methods/AddSliceToNodes.py b/trunk/PLC/Methods/AddSliceToNodes.py
new file mode 100644 (file)
index 0000000..d5a2c8c
--- /dev/null
@@ -0,0 +1,69 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.Slices import Slice, Slices
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+
+class AddSliceToNodes(Method):
+    """
+    Adds the specified slice to the specified nodes. Nodes may be
+    either local or foreign nodes.
+
+    If the slice is already associated with a node, no errors are
+    returned.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+        Mixed(Slice.fields['slice_id'],
+              Slice.fields['name']),
+       [Mixed(Node.fields['node_id'],
+               Node.fields['hostname'])]
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, slice_id_or_name, node_id_or_hostname_list):
+        # Get slice information
+        slices = Slices(self.api, [slice_id_or_name])
+        if not slices:
+            raise PLCInvalidArgument, "No such slice"
+        slice = slices[0]
+
+        if slice['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local slice"
+
+        if 'admin' not in self.caller['roles']:
+            if self.caller['person_id'] in slice['person_ids']:
+                pass
+            elif 'pi' not in self.caller['roles']:
+                raise PLCPermissionDenied, "Not a member of the specified slice"
+            elif slice['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Specified slice not associated with any of your sites"
+       
+        # Get specified nodes, add them to the slice         
+        nodes = Nodes(self.api, node_id_or_hostname_list, ['node_id', 'hostname', 'slice_ids', 'slice_ids_whitelist', 'site_id'])
+       
+       for node in nodes:
+           # check the slice whitelist on each node first
+           # allow  users at site to add node to slice, ignoring whitelist
+           if node['slice_ids_whitelist'] and \
+              slice['slice_id'] not in node['slice_ids_whitelist'] and \
+              not set(self.caller['site_ids']).intersection([node['site_id']]):
+               raise PLCInvalidArgument, "%s is not allowed on %s (not on the whitelist)" % \
+                 (slice['name'], node['hostname'])
+            if slice['slice_id'] not in node['slice_ids']:
+                slice.add_node(node, commit = False)
+
+        slice.sync()
+
+       self.event_objects = {'Node': [node['node_id'] for node in nodes],
+                             'Slice': [slice['slice_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/AddSliceToNodesWhitelist.py b/trunk/PLC/Methods/AddSliceToNodesWhitelist.py
new file mode 100644 (file)
index 0000000..a6b4bd1
--- /dev/null
@@ -0,0 +1,54 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.Slices import Slice, Slices
+from PLC.Auth import Auth
+
+class AddSliceToNodesWhitelist(Method):
+    """
+    Adds the specified slice to the whitelist on the specified nodes. Nodes may be
+    either local or foreign nodes.
+
+    If the slice is already associated with a node, no errors are
+    returned.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(Slice.fields['slice_id'],
+              Slice.fields['name']),
+       [Mixed(Node.fields['node_id'],
+               Node.fields['hostname'])]
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, slice_id_or_name, node_id_or_hostname_list):
+        # Get slice information
+        slices = Slices(self.api, [slice_id_or_name])
+        if not slices:
+            raise PLCInvalidArgument, "No such slice"
+        slice = slices[0]
+
+        if slice['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local slice"
+
+        # Get specified nodes, add them to the slice         
+        nodes = Nodes(self.api, node_id_or_hostname_list)
+       for node in nodes:
+           if node['peer_id'] is not None:
+                raise PLCInvalidArgument, "%s not a local node" % node['hostname']
+            if slice['slice_id'] not in node['slice_ids_whitelist']:
+                slice.add_to_node_whitelist(node, commit = False)
+           
+        slice.sync()
+
+       self.event_objects = {'Node': [node['node_id'] for node in nodes],
+                             'Slice': [slice['slice_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/AdmAddAddressType.py b/trunk/PLC/Methods/AdmAddAddressType.py
new file mode 100644 (file)
index 0000000..e0cd09d
--- /dev/null
@@ -0,0 +1,21 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.AddressTypes import AddressType, AddressTypes
+from PLC.Auth import Auth
+from PLC.Methods.AddAddressType import AddAddressType
+
+class AdmAddAddressType(AddAddressType):
+    """
+    Deprecated. See AddAddressType.
+    """
+
+    status = "deprecated"
+
+    accepts = [
+        Auth(),
+        AddressType.fields['name']
+        ]
+
+    def call(self, auth, name):
+        return AddAddressType.call(self, auth, {'name': name})
diff --git a/trunk/PLC/Methods/AdmAddNode.py b/trunk/PLC/Methods/AdmAddNode.py
new file mode 100644 (file)
index 0000000..dda5c99
--- /dev/null
@@ -0,0 +1,33 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.Sites import Site, Sites
+from PLC.Auth import Auth
+from PLC.Methods.AddNode import AddNode
+
+can_update = lambda (field, value): field in \
+             ['model', 'version']
+
+class AdmAddNode(AddNode):
+    """
+    Deprecated. See AddNode.
+    """
+
+    status = "deprecated"
+
+    node_fields = dict(filter(can_update, Node.fields.items()))
+
+    accepts = [
+        Auth(),
+        Site.fields['site_id'],
+        Node.fields['hostname'],
+        Node.fields['boot_state'],
+        node_fields
+        ]
+
+    def call(self, auth, site_id, hostname, boot_state, node_fields = {}):
+        node_fields['site_id'] = site_id
+        node_fields['hostname'] = hostname
+        node_fields['boot_state'] = boot_state
+        return AddNode.call(self, auth, node_fields)
diff --git a/trunk/PLC/Methods/AdmAddNodeGroup.py b/trunk/PLC/Methods/AdmAddNodeGroup.py
new file mode 100644 (file)
index 0000000..6bbb59e
--- /dev/null
@@ -0,0 +1,22 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.NodeGroups import NodeGroup, NodeGroups
+from PLC.Auth import Auth
+from PLC.Methods.AddNodeGroup import AddNodeGroup
+
+class AdmAddNodeGroup(AddNodeGroup):
+    """
+    Deprecated. See AddNodeGroup.
+    """
+
+    status = "deprecated"
+
+    accepts = [
+        Auth(),
+        NodeGroup.fields['name'],
+        NodeGroup.fields['description']
+        ]
+
+    def call(self, auth, name, description):
+        return AddNodeGroup.call(self, auth, {'name': name, 'description': description})
diff --git a/trunk/PLC/Methods/AdmAddNodeNetwork.py b/trunk/PLC/Methods/AdmAddNodeNetwork.py
new file mode 100644 (file)
index 0000000..c309a77
--- /dev/null
@@ -0,0 +1,31 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+from PLC.Auth import Auth
+from PLC.Methods.AddNodeNetwork import AddNodeNetwork
+
+can_update = lambda (field, value): field not in ['nodenetwork_id', 'node_id', 'method', 'type']
+
+class AdmAddNodeNetwork(AddNodeNetwork):
+    """
+    Deprecated. See AddNodeNetwork.
+    """
+
+    status = "deprecated"
+
+    nodenetwork_fields = dict(filter(can_update, NodeNetwork.fields.items()))
+
+    accepts = [
+        Auth(),
+        NodeNetwork.fields['node_id'],
+        NodeNetwork.fields['method'],
+        NodeNetwork.fields['type'],
+        nodenetwork_fields
+        ]
+
+    def call(self, auth, node_id, method, type, nodenetwork_fields = {}):
+        nodenetwork_fields['node_id'] = node_id
+        nodenetwork_fields['method'] = method
+        nodenetwork_fields['type'] = type
+        return AddNodeNetwork.call(self, auth, nodenetwork_fields)
diff --git a/trunk/PLC/Methods/AdmAddNodeToNodeGroup.py b/trunk/PLC/Methods/AdmAddNodeToNodeGroup.py
new file mode 100644 (file)
index 0000000..dc7eab4
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.AddNodeToNodeGroup import AddNodeToNodeGroup
+
+class AdmAddNodeToNodeGroup(AddNodeToNodeGroup):
+    """
+    Deprecated. See AddNodeToNodeGroup.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmAddPerson.py b/trunk/PLC/Methods/AdmAddPerson.py
new file mode 100644 (file)
index 0000000..2b90f61
--- /dev/null
@@ -0,0 +1,30 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+from PLC.Methods.AddPerson import AddPerson
+
+can_update = lambda (field, value): field in \
+             ['title', 'email', 'password', 'phone', 'url', 'bio']
+
+class AdmAddPerson(AddPerson):
+    """
+    Deprecated. See AddPerson.
+    """
+
+    status = "deprecated"
+
+    person_fields = dict(filter(can_update, Person.fields.items()))
+
+    accepts = [
+        Auth(),
+        Person.fields['first_name'],
+        Person.fields['last_name'],
+        person_fields
+        ]
+
+    def call(self, auth, first_name, last_name, person_fields = {}):
+        person_fields['first_name'] = first_name
+        person_fields['last_name'] = last_name
+        return AddPerson.call(self, auth, person_fields)
diff --git a/trunk/PLC/Methods/AdmAddPersonKey.py b/trunk/PLC/Methods/AdmAddPersonKey.py
new file mode 100644 (file)
index 0000000..05d0a69
--- /dev/null
@@ -0,0 +1,28 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Keys import Key, Keys
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+from PLC.Methods.AddPersonKey import AddPersonKey
+
+class AdmAddPersonKey(AddPersonKey):
+    """
+    Deprecated. See AddPersonKey. Keys can no longer be marked as
+    primary, i.e. the is_primary argument does nothing.
+    """
+
+    status = "deprecated"
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email']),
+        Key.fields['key_type'],
+        Key.fields['key'],
+        Parameter(int, "Make this key the primary key")
+        ]
+
+    def call(self, auth, person_id_or_email, key_type, key_value, is_primary):
+        key_fields = {'key_type': key_type, 'key_value': key_value}
+        return AddPersonKey.call(self, auth, person_id_or_email, key_fields)
diff --git a/trunk/PLC/Methods/AdmAddPersonToSite.py b/trunk/PLC/Methods/AdmAddPersonToSite.py
new file mode 100644 (file)
index 0000000..948b06f
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.AddPersonToSite import AddPersonToSite
+
+class AdmAddPersonToSite(AddPersonToSite):
+    """
+    Deprecated. See AddPersonToSite.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmAddSite.py b/trunk/PLC/Methods/AdmAddSite.py
new file mode 100644 (file)
index 0000000..929c0a7
--- /dev/null
@@ -0,0 +1,32 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Sites import Site, Sites
+from PLC.Auth import Auth
+from PLC.Methods.AddSite import AddSite
+
+can_update = lambda (field, value): field in \
+             ['is_public', 'latitude', 'longitude', 'url']
+
+class AdmAddSite(AddSite):
+    """
+    Deprecated. See AddSite.
+    """
+
+    status = "deprecated"
+
+    site_fields = dict(filter(can_update, Site.fields.items()))
+
+    accepts = [
+        Auth(),
+        Site.fields['name'],
+        Site.fields['abbreviated_name'],
+        Site.fields['login_base'],
+        site_fields
+        ]
+
+    def call(self, auth, name, abbreviated_name, login_base, site_fields = {}):
+        site_fields['name'] = name
+        site_fields['abbreviated_name'] = abbreviated_name
+        site_fields['login_base'] = login_base
+        return AddSite.call(self, auth, site_fields)
diff --git a/trunk/PLC/Methods/AdmAddSitePowerControlUnit.py b/trunk/PLC/Methods/AdmAddSitePowerControlUnit.py
new file mode 100644 (file)
index 0000000..e9e452e
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.AddPCU import AddPCU
+
+class AdmAddSitePowerControlUnit(AddPCU):
+    """
+    Deprecated. See AddPCU.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmAssociateNodeToPowerControlUnitPort.py b/trunk/PLC/Methods/AdmAssociateNodeToPowerControlUnitPort.py
new file mode 100644 (file)
index 0000000..9e955be
--- /dev/null
@@ -0,0 +1,29 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.PCUs import PCU, PCUs
+from PLC.Auth import Auth
+from PLC.Methods.AddNodeToPCU import AddNodeToPCU
+
+class AdmAssociateNodeToPowerControlUnitPort(AddNodeToPCU):
+    """
+    Deprecated. See AddNodeToPCU.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'tech']
+
+    accepts = [
+        Auth(),
+        PCU.fields['pcu_id'],
+        Parameter(int, 'PCU port number'),
+       Mixed(Node.fields['node_id'],
+              Node.fields['hostname']),
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, pcu_id, port, node_id_or_hostname):
+        return AddNodeToPCU(self, auth, node_id_or_hostname, pcu_id, port)
diff --git a/trunk/PLC/Methods/AdmAuthCheck.py b/trunk/PLC/Methods/AdmAuthCheck.py
new file mode 100644 (file)
index 0000000..63defa5
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.AuthCheck import AuthCheck
+
+class AdmAuthCheck(AuthCheck):
+    """
+    Deprecated. See AuthCheck.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmDeleteAddressType.py b/trunk/PLC/Methods/AdmDeleteAddressType.py
new file mode 100644 (file)
index 0000000..12f0625
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.DeleteAddressType import DeleteAddressType
+
+class AdmDeleteAddressType(DeleteAddressType):
+    """
+    Deprecated. See DeleteAddressType.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmDeleteAllPersonKeys.py b/trunk/PLC/Methods/AdmDeleteAllPersonKeys.py
new file mode 100644 (file)
index 0000000..9f038f9
--- /dev/null
@@ -0,0 +1,55 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Keys import Key, Keys
+from PLC.Auth import Auth
+
+class AdmDeleteAllPersonKeys(Method):
+    """
+    Deprecated. Functionality can be implemented with GetPersons and
+    DeleteKey.
+
+    Deletes all of the keys associated with an account. Non-admins may
+    only delete their own keys.
+
+    Non-admins may only delete their own keys.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'tech', 'user']
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, person_id_or_email):
+        # Get account information
+        persons = Persons(self.api, [person_id_or_email])
+        if not persons:
+            raise PLCInvalidArgument, "No such account"
+
+        person = persons[0]
+
+        if 'admin' not in self.caller['roles']:
+            if self.caller['person_id'] != person['person_id']:
+                raise PLCPermissionDenied, "Not allowed to update specified account"
+
+        key_ids = person['key_ids']
+        if not key_ids:
+            return 1
+
+        # Get associated key details
+        keys = Keys(self.api, key_ids)
+
+        for key in keys:
+            key.delete()
+
+        return 1
diff --git a/trunk/PLC/Methods/AdmDeleteNode.py b/trunk/PLC/Methods/AdmDeleteNode.py
new file mode 100644 (file)
index 0000000..2ec9ff1
--- /dev/null
@@ -0,0 +1,9 @@
+from PLC.Methods.DeleteNode import DeleteNode
+
+class AdmDeleteNode(DeleteNode):
+    """
+    Deprecated. See DeleteNode.
+    """
+
+    status = "deprecated"
+
diff --git a/trunk/PLC/Methods/AdmDeleteNodeGroup.py b/trunk/PLC/Methods/AdmDeleteNodeGroup.py
new file mode 100644 (file)
index 0000000..b5b2cb6
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.DeleteNodeGroup import DeleteNodeGroup
+
+class AdmDeleteNodeGroup(DeleteNodeGroup):
+    """
+    Deprecated. See DeleteNodeGroup.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmDeleteNodeNetwork.py b/trunk/PLC/Methods/AdmDeleteNodeNetwork.py
new file mode 100644 (file)
index 0000000..d566504
--- /dev/null
@@ -0,0 +1,24 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+from PLC.Nodes import Node, Nodes
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+from PLC.Methods.DeleteNodeNetwork import DeleteNodeNetwork
+
+class AdmDeleteNodeNetwork(DeleteNodeNetwork):
+    """
+    Deprecated. See DeleteNodeNetwork.
+    """
+
+    status = "deprecated"
+
+    accepts = [
+        Auth(),
+        Mixed(Node.fields['node_id'],
+             Node.fields['hostname']),
+       NodeNetwork.fields['nodenetwork_id']
+        ]
+
+    def call(self, auth, node_id_or_hostname, nodenetwork_id):
+        return DeleteNodeNetwork.call(self, auth, nodenetwork_id)
diff --git a/trunk/PLC/Methods/AdmDeletePerson.py b/trunk/PLC/Methods/AdmDeletePerson.py
new file mode 100644 (file)
index 0000000..ff29e8b
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.DeletePerson import DeletePerson
+
+class AdmDeletePerson(DeletePerson):
+    """
+    Deprecated. See DeletePerson.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmDeletePersonKeys.py b/trunk/PLC/Methods/AdmDeletePersonKeys.py
new file mode 100644 (file)
index 0000000..fd24eef
--- /dev/null
@@ -0,0 +1,56 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Keys import Key, Keys
+from PLC.Auth import Auth
+
+class AdmDeletePersonKeys(Method):
+    """
+    Deprecated. Functionality can be implemented with GetPersons and
+    DeleteKey.
+
+    Deletes the specified keys. Non-admins may only delete their own
+    keys.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'tech', 'user']
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email']),
+        [Key.fields['key_id']]
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, person_id_or_email, key_ids):
+        # Get account information
+        persons = Persons(self.api, [person_id_or_email])
+        if not persons:
+            raise PLCInvalidArgument, "No such account"
+        person = persons[0]
+
+        if person['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local account"
+
+        if 'admin' not in self.caller['roles']:
+            if self.caller['person_id'] != person['person_id']:
+                raise PLCPermissionDenied, "Not allowed to update specified account"
+
+        key_ids = set(key_ids).intersection(person['key_ids'])
+        if not key_ids:
+            return 1
+
+        # Get associated key details
+        keys = Keys(self.api, key_ids)
+
+        for key in keys:
+            key.delete()
+
+        return 1
diff --git a/trunk/PLC/Methods/AdmDeleteSite.py b/trunk/PLC/Methods/AdmDeleteSite.py
new file mode 100644 (file)
index 0000000..7501ad5
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.DeleteSite import DeleteSite
+
+class AdmDeleteSite(DeleteSite):
+    """
+    Deprecated. See DeleteSite.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmDeleteSitePowerControlUnit.py b/trunk/PLC/Methods/AdmDeleteSitePowerControlUnit.py
new file mode 100644 (file)
index 0000000..2865224
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.DeletePCU import DeletePCU
+
+class AdmDeleteSitePowerControlUnit(DeletePCU):
+    """
+    Deprecated. See DeletePCU.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmDisassociatePowerControlUnitPort.py b/trunk/PLC/Methods/AdmDisassociatePowerControlUnitPort.py
new file mode 100644 (file)
index 0000000..5f7c448
--- /dev/null
@@ -0,0 +1,37 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.PCUs import PCU, PCUs
+from PLC.Auth import Auth
+from PLC.Methods.DeleteNodeFromPCU import DeleteNodeFromPCU
+
+class AdmDisassociatePowerControlUnitPort(DeleteNodeFromPCU):
+    """
+    Deprecated. See DeleteNodeFromPCU.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'tech']
+
+    accepts = [
+        Auth(),
+        PCU.fields['pcu_id'],
+        Parameter(int, 'PCU port number'),
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, pcu_id, port):
+        pcus = PCUs(self.api, [pcu_id])
+        if not pcus:
+            raise PLCInvalidArgument, "No such PCU"
+
+        pcu = pcus[0]
+
+        ports = dict(zip(pcu['ports'], pcu['node_ids']))
+        if port not in ports:
+            raise PLCInvalidArgument, "No node on that port or no such port"
+
+        return DeleteNodeFromPCU(self, auth, ports[port], pcu_id)
diff --git a/trunk/PLC/Methods/AdmGenerateNodeConfFile.py b/trunk/PLC/Methods/AdmGenerateNodeConfFile.py
new file mode 100644 (file)
index 0000000..85789bd
--- /dev/null
@@ -0,0 +1,110 @@
+import random
+import base64
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+from PLC.Auth import Auth
+
+class AdmGenerateNodeConfFile(Method):
+    """
+    Deprecated. Functionality can be implemented with GetNodes,
+    GetNodeNetworks, and UpdateNode.
+
+    Creates a new node configuration file if all network settings are
+    present. This function will generate a new node key for the
+    specified node, effectively invalidating any old configuration
+    files.
+
+    Non-admins can only generate files for nodes at their sites.
+
+    Returns the contents of the file if successful, faults otherwise.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'tech']
+
+    accepts = [
+        Auth(),
+        Mixed(Node.fields['node_id'],
+              Node.fields['hostname'])
+        ]
+
+    returns = Parameter(str, "Node configuration file")
+
+    def call(self, auth, node_id_or_hostname):
+        # Get node information
+        nodes = Nodes(self.api, [node_id_or_hostname])
+        if not nodes:
+            raise PLCInvalidArgument, "No such node"
+        node = nodes[0]
+
+        if node['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local node"
+
+        # If we are not an admin, make sure that the caller is a
+        # member of the site at which the node is located.
+        if 'admin' not in self.caller['roles']:
+            if node['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to generate a configuration file for that node"
+
+       # Get node networks for this node
+        primary = None
+        nodenetworks = NodeNetworks(self.api, node['nodenetwork_ids'])
+        for nodenetwork in nodenetworks:
+            if nodenetwork['is_primary']:
+                primary = nodenetwork
+                break
+        if primary is None:
+            raise PLCInvalidArgument, "No primary network configured"
+
+        # Split hostname into host and domain parts
+        parts = node['hostname'].split(".", 1)
+        if len(parts) < 2:
+            raise PLCInvalidArgument, "Node hostname is invalid"
+        host = parts[0]
+        domain = parts[1]
+
+        # Generate 32 random bytes
+        bytes = random.sample(xrange(0, 256), 32)
+        # Base64 encode their string representation
+        node['key'] = base64.b64encode("".join(map(chr, bytes)))
+        # XXX Boot Manager cannot handle = in the key
+        node['key'] = node['key'].replace("=", "")
+        # Save it
+        node.sync()
+
+        # Generate node configuration file suitable for BootCD
+        file = ""
+
+        file += 'NODE_ID="%d"\n' % node['node_id']
+        file += 'NODE_KEY="%s"\n' % node['key']
+
+        if primary['mac']:
+            file += 'NET_DEVICE="%s"\n' % primary['mac'].lower()
+
+        file += 'IP_METHOD="%s"\n' % primary['method']
+
+        if primary['method'] == 'static':
+            file += 'IP_ADDRESS="%s"\n' % primary['ip']
+            file += 'IP_GATEWAY="%s"\n' % primary['gateway']
+            file += 'IP_NETMASK="%s"\n' % primary['netmask']
+            file += 'IP_NETADDR="%s"\n' % primary['network']
+            file += 'IP_BROADCASTADDR="%s"\n' % primary['broadcast']
+            file += 'IP_DNS1="%s"\n' % primary['dns1']
+            file += 'IP_DNS2="%s"\n' % (primary['dns2'] or "")
+
+        file += 'HOST_NAME="%s"\n' % host
+        file += 'DOMAIN_NAME="%s"\n' % domain
+
+        for nodenetwork in nodenetworks:
+            if nodenetwork['method'] == 'ipmi':
+                file += 'IPMI_ADDRESS="%s"\n' % nodenetwork['ip']
+                if nodenetwork['mac']:
+                    file += 'IPMI_MAC="%s"\n' % nodenetwork['mac'].lower()
+                break
+
+        return file
diff --git a/trunk/PLC/Methods/AdmGetAllAddressTypes.py b/trunk/PLC/Methods/AdmGetAllAddressTypes.py
new file mode 100644 (file)
index 0000000..ca4748b
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.GetAddressTypes import GetAddressTypes
+
+class AdmGetAllAddressTypes(GetAddressTypes):
+    """
+    Deprecated. See GetAddressTypes.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmGetAllKeyTypes.py b/trunk/PLC/Methods/AdmGetAllKeyTypes.py
new file mode 100644 (file)
index 0000000..4383f84
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.GetKeyTypes import GetKeyTypes
+
+class AdmGetAllKeyTypes(GetKeyTypes):
+    """
+    Deprecated. See GetKeyTypes.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmGetAllNodeNetworks.py b/trunk/PLC/Methods/AdmGetAllNodeNetworks.py
new file mode 100644 (file)
index 0000000..c00bdec
--- /dev/null
@@ -0,0 +1,37 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+from PLC.Auth import Auth
+from PLC.Methods.GetNodeNetworks import GetNodeNetworks
+
+class AdmGetAllNodeNetworks(GetNodeNetworks):
+    """
+    Deprecated. Functionality can be implemented with GetNodes and
+    GetNodeNetworks.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user', 'tech']
+
+    accepts = [
+        Auth(),
+        Mixed(Node.fields['node_id'],
+              Node.fields['hostname'])
+        ]
+
+    returns = [NodeNetwork.fields]
+
+    def call(self, auth, node_id_or_hostname):
+        # Get node information
+        nodes = Nodes(self.api, [node_id_or_hostname])
+       if not nodes:
+            raise PLCInvalidArgument, "No such node"
+       node = nodes[0]
+
+        if not node['nodenetwork_ids']:
+            return []
+
+        return GetNodeNetworks.call(self, auth, node['nodenetwork_ids'])
diff --git a/trunk/PLC/Methods/AdmGetAllRoles.py b/trunk/PLC/Methods/AdmGetAllRoles.py
new file mode 100644 (file)
index 0000000..2b88714
--- /dev/null
@@ -0,0 +1,32 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter
+from PLC.Auth import Auth
+from PLC.Methods.GetRoles import GetRoles
+
+class AdmGetAllRoles(GetRoles):
+    """
+    Deprecated. See GetRoles.
+
+    Return all possible roles as a struct:
+
+    {'10': 'admin', '20': 'pi', '30': 'user', '40': 'tech'}
+
+    Note that because of XML-RPC marshalling limitations, the keys to
+    this struct are string representations of the integer role
+    identifiers.
+    """
+
+    status = "deprecated"
+
+    returns = dict
+
+    def call(self, auth):
+        roles_list = GetRoles.call(self, auth)
+
+        roles_dict = {}
+        for role in roles_list:
+            # Stringify the keys!
+            roles_dict[str(role['role_id'])] = role['name']
+
+        return roles_dict
diff --git a/trunk/PLC/Methods/AdmGetNodeGroupNodes.py b/trunk/PLC/Methods/AdmGetNodeGroupNodes.py
new file mode 100644 (file)
index 0000000..51c392a
--- /dev/null
@@ -0,0 +1,36 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+from PLC.NodeGroups import NodeGroup, NodeGroups
+
+class AdmGetNodeGroupNodes(Method):
+    """
+    Deprecated. See GetNodeGroups.
+
+    Returns a list of node_ids for the node group specified.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user', 'tech']
+
+    accepts = [
+        Auth(),
+        Mixed(NodeGroup.fields['nodegroup_id'],
+             NodeGroup.fields['name'])
+        ]
+
+    returns = NodeGroup.fields['node_ids']
+
+    def call(self, auth, nodegroup_id_or_name):
+        # Get nodes in this nodegroup
+       nodegroups = NodeGroups(self.api, [nodegroup_id_or_name])
+       if not nodegroups:
+            raise PLCInvalidArgument, "No such node group"
+
+       # Get the info for the node group specified
+       nodegroup = nodegroups[0]
+
+       # Return the list of node_ids
+        return nodegroup['node_ids']
diff --git a/trunk/PLC/Methods/AdmGetNodeGroups.py b/trunk/PLC/Methods/AdmGetNodeGroups.py
new file mode 100644 (file)
index 0000000..fa1ad59
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.GetNodeGroups import GetNodeGroups
+
+class AdmGetNodeGroups(GetNodeGroups):
+    """
+    Deprecated. See GetNodeGroups.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmGetNodes.py b/trunk/PLC/Methods/AdmGetNodes.py
new file mode 100644 (file)
index 0000000..74d8489
--- /dev/null
@@ -0,0 +1,11 @@
+from PLC.Methods.GetNodes import GetNodes
+
+class AdmGetNodes(GetNodes):
+    """
+    Deprecated. See GetNodes. All fields are now always returned.
+    """
+
+    status = "deprecated"
+
+    def call(self, auth, node_id_or_hostname_list = None, return_fields = None):
+        return GetNodes.call(self, auth, node_id_or_hostname_list)
diff --git a/trunk/PLC/Methods/AdmGetPersonKeys.py b/trunk/PLC/Methods/AdmGetPersonKeys.py
new file mode 100644 (file)
index 0000000..946230a
--- /dev/null
@@ -0,0 +1,40 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Keys import Key, Keys
+from PLC.Auth import Auth
+from PLC.Methods.GetKeys import GetKeys
+
+class AdmGetPersonKeys(GetKeys):
+    """
+    Deprecated. Functionality can be implemented with GetPersons and
+    GetKeys.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user', 'tech']
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email']),
+        [Key.fields['key_id']]
+        ]
+
+    returns = [Key.fields]
+
+    def call(self, auth, person_id_or_email):
+        # Get account information
+        persons = Persons(self.api, [person_id_or_email])
+        if not persons:
+            raise PLCInvalidArgument, "No such account"
+
+        person = persons[0]
+
+        if 'admin' not in self.caller['roles']:
+            if self.caller['person_id'] != person['person_id']:
+                raise PLCPermissionDenied, "Not allowed to view keys for specified account"
+
+        return GetKeys.call(self, auth, person['key_ids'])
diff --git a/trunk/PLC/Methods/AdmGetPersonRoles.py b/trunk/PLC/Methods/AdmGetPersonRoles.py
new file mode 100644 (file)
index 0000000..024b93c
--- /dev/null
@@ -0,0 +1,55 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+
+class AdmGetPersonRoles(Method):
+    """
+    Deprecated. See GetPersons.
+
+    Return the roles that the specified person has as a struct:
+
+    {'10': 'admin', '30': 'user', '20': 'pi', '40': 'tech'}
+
+    Admins can get the roles for any user. PIs can only get the roles
+    for members of their sites. All others may only get their own
+    roles.
+
+    Note that because of XML-RPC marshalling limitations, the keys to
+    this struct are string representations of the integer role
+    identifiers.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user', 'tech']
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email'])
+        ]
+
+    returns = dict
+
+    def call(self, auth, person_id_or_email):
+        # Get account information
+        persons = Persons(self.api, [person_id_or_email])
+        if not persons:
+            raise PLCInvalidArgument, "No such account"
+
+        person = persons[0]
+
+        # Authenticated function
+        assert self.caller is not None
+
+        # Check if we can view this account
+        if not self.caller.can_view(person):
+            raise PLCPermissionDenied, "Not allowed to view specified account"
+
+        # Stringify the keys!
+        role_ids = map(str, person['role_ids'])
+        roles = person['roles']
+
+        return dict(zip(role_ids, roles))
diff --git a/trunk/PLC/Methods/AdmGetPersonSites.py b/trunk/PLC/Methods/AdmGetPersonSites.py
new file mode 100644 (file)
index 0000000..79324f8
--- /dev/null
@@ -0,0 +1,47 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Sites import Site, Sites
+from PLC.Auth import Auth
+
+class AdmGetPersonSites(Method):
+    """
+    Deprecated. See GetPersons.
+
+    Returns the sites that the specified person is associated with as
+    an array of site identifiers.
+
+    Admins may retrieve details about anyone. Users and techs may only
+    retrieve details about themselves. PIs may retrieve details about
+    themselves and others at their sites.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user', 'tech']
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email'])
+        ]
+
+    returns = Person.fields['site_ids']
+
+    def call(self, auth, person_id_or_email):
+        # Get account information
+        persons = Persons(self.api, [person_id_or_email])
+        if not persons:
+            raise PLCInvalidArgument, "No such account"
+
+        person = persons[0]
+
+        # Authenticated function
+        assert self.caller is not None
+
+        # Check if we can view this account
+        if not self.caller.can_view(person):
+            raise PLCPermissionDenied, "Not allowed to view specified account"
+
+        return person['site_ids']
diff --git a/trunk/PLC/Methods/AdmGetPersons.py b/trunk/PLC/Methods/AdmGetPersons.py
new file mode 100644 (file)
index 0000000..35e94a0
--- /dev/null
@@ -0,0 +1,11 @@
+from PLC.Methods.GetPersons import GetPersons
+
+class AdmGetPersons(GetPersons):
+    """
+    Deprecated. See GetPersons.
+    """
+
+    status = "deprecated"
+
+    def call(self, auth, person_id_or_email_list = None, return_fields = None):
+        return GetPersons.call(self, auth, person_id_or_email_list)
diff --git a/trunk/PLC/Methods/AdmGetPowerControlUnitNodes.py b/trunk/PLC/Methods/AdmGetPowerControlUnitNodes.py
new file mode 100644 (file)
index 0000000..af298ee
--- /dev/null
@@ -0,0 +1,41 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.PCUs import PCU, PCUs
+from PLC.Auth import Auth
+
+class AdmGetPowerControlUnitNodes(Method):
+    """
+    Deprecated. See GetPCUs.
+
+    Returns a list of the nodes, and the ports they are assigned to,
+    on the specified PCU.
+    
+    Admin may query all PCUs. Non-admins may only query the PCUs at
+    their sites.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'tech']
+
+    accepts = [
+        Auth(),
+        PCU.fields['pcu_id']
+        ]
+
+    returns = [{'node_id': Parameter(int, "Node identifier"),
+                'port_number': Parameter(int, "Port number")}]
+
+    def call(self, auth, pcu_id):
+        pcus = PCUs(self.api, [pcu_id])
+        if not pcus:
+            raise PLCInvalidArgument, "No such PCU"
+        pcu = pcus[0]
+
+        if 'admin' not in self.caller['roles']:
+            if pcu['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to view that PCU"
+
+        return [{'node_id': node_id, 'port_number': port} \
+                for (node_id, port) in zip(pcu['node_ids'], pcu['ports'])]
diff --git a/trunk/PLC/Methods/AdmGetPowerControlUnits.py b/trunk/PLC/Methods/AdmGetPowerControlUnits.py
new file mode 100644 (file)
index 0000000..8f7e0c7
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.GetPCUs import GetPCUs
+
+class AdmGetPowerControlUnits(GetPCUs):
+    """
+    Deprecated. See GetPCUs.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmGetSiteNodes.py b/trunk/PLC/Methods/AdmGetSiteNodes.py
new file mode 100644 (file)
index 0000000..b366c80
--- /dev/null
@@ -0,0 +1,44 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Sites import Site, Sites
+from PLC.Auth import Auth
+
+class AdmGetSiteNodes(Method):
+    """
+    Deprecated. See GetSites.
+
+    Return a struct containing an array of node_ids for each of the
+    sites specified. Note that the keys of the struct are strings, not
+    integers, because of XML-RPC marshalling limitations.
+
+    Admins may retrieve details about all nodes on a site by not specifying
+    site_id_or_name or by specifying an empty list. Users and
+    techs may only retrieve details about themselves. PIs may retrieve
+    details about themselves and others at their sites.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user', 'tech']
+
+    accepts = [
+        Auth(),
+        [Mixed(Site.fields['site_id'],
+               Site.fields['name'])],
+        ]
+
+    returns = dict
+
+    def call(self, auth, site_id_or_name_list = None):
+        # Get site information
+       sites = Sites(self.api, site_id_or_name_list)   
+       if not sites:
+            raise PLCInvalidArgument, "No such site"
+        
+       # Convert to {str(site_id): [node_id]}
+       site_nodes = {}
+       for site in sites:
+            site_nodes[str(site['site_id'])] = site['node_ids']
+               
+        return site_nodes
diff --git a/trunk/PLC/Methods/AdmGetSitePIs.py b/trunk/PLC/Methods/AdmGetSitePIs.py
new file mode 100644 (file)
index 0000000..d35ee88
--- /dev/null
@@ -0,0 +1,44 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Sites import Site, Sites
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+
+class AdmGetSitePIs(Method):
+    """
+    Deprecated. Functionality can be implemented with GetSites and
+    GetPersons.
+
+    Return a list of person_ids of the PIs for the site specified.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(Site.fields['site_id'],
+              Site.fields['login_base'])
+        ]
+
+    returns = Site.fields['person_ids']
+
+    def call(self, auth, site_id_or_login_base):
+        # Authenticated function
+        assert self.caller is not None
+
+        # Get site information
+       sites = Sites(self.api, [site_id_or_login_base])
+       if not sites:
+            raise PLCInvalidArgument, "No such site"
+
+       site = sites[0]
+
+        persons = Persons(self.api, site['person_ids'])
+
+        has_pi_role = lambda person: 'pi' in person['roles']
+        pis = filter(has_pi_role, persons)
+
+       return [pi['person_id'] for pi in pis]
diff --git a/trunk/PLC/Methods/AdmGetSitePersons.py b/trunk/PLC/Methods/AdmGetSitePersons.py
new file mode 100644 (file)
index 0000000..8122528
--- /dev/null
@@ -0,0 +1,44 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Sites import Site, Sites
+from PLC.Auth import Auth
+
+class AdmGetSitePersons(Method):
+    """
+    Deprecated. See GetSites.
+
+    Return a list of person_ids for the site specified.
+
+    PIs may only retrieve the person_ids of accounts at their
+    site. Admins may retrieve the person_ids of accounts at any site.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi']
+
+    accepts = [
+        Auth(),
+        Mixed(Site.fields['site_id'],
+              Site.fields['login_base'])
+        ]
+
+    returns = Site.fields['person_ids']
+
+    def call(self, auth, site_id_or_login_base):
+        # Authenticated function
+        assert self.caller is not None
+
+        # Get site information
+       sites = Sites(self.api, [site_id_or_login_base])
+       if not sites:
+            raise PLCInvalidArgument, "No such site"
+
+       site = sites[0]
+
+       if 'admin' not in self.caller['roles']: 
+            if site['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to view accounts at that site"
+
+       return site['person_ids']
diff --git a/trunk/PLC/Methods/AdmGetSitePowerControlUnits.py b/trunk/PLC/Methods/AdmGetSitePowerControlUnits.py
new file mode 100644 (file)
index 0000000..b95f298
--- /dev/null
@@ -0,0 +1,35 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.PCUs import PCU, PCUs
+from PLC.Sites import Site, Sites
+from PLC.Auth import Auth
+
+class AdmGetSitePowerControlUnits(Method):
+    """
+    Deprecated. Functionality can be implemented with GetSites and GetPCUs.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'tech']
+
+    accepts = [
+        Auth(),
+        Mixed(Site.fields['site_id'],
+              Site.fields['login_base'])
+        ]
+
+    returns = [PCU.fields]
+
+    def call(self, auth, site_id_or_login_base):
+        sites = Sites(self.api, [site_id_or_login_base])
+        if not sites:
+            raise PLCInvalidArgument, "No such site"
+        site = sites[0]
+
+        if 'admin' not in self.caller['roles']:
+            if site['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to view the PCUs at that site"
+
+        return PCUs(self.api, site['pcu_ids'])
diff --git a/trunk/PLC/Methods/AdmGetSiteTechContacts.py b/trunk/PLC/Methods/AdmGetSiteTechContacts.py
new file mode 100644 (file)
index 0000000..f531db5
--- /dev/null
@@ -0,0 +1,45 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Sites import Site, Sites
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+
+class AdmGetSiteTechContacts(Method):
+    """
+    Deprecated. Functionality can be implemented with GetSites and
+    GetPersons.
+
+    Return a list of person_ids of the technical contacts for the site
+    specified.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(Site.fields['site_id'],
+              Site.fields['login_base'])
+        ]
+
+    returns = Site.fields['person_ids']
+
+    def call(self, auth, site_id_or_login_base):
+        # Authenticated function
+        assert self.caller is not None
+
+        # Get site information
+       sites = Sites(self.api, [site_id_or_login_base])
+       if not sites:
+            raise PLCInvalidArgument, "No such site"
+
+       site = sites[0]
+
+        persons = Persons(self.api, site['person_ids'])
+
+        has_tech_role = lambda person: 'tech' in person['roles']
+        techs = filter(has_tech_role, persons)
+
+       return [tech['person_id'] for tech in techs]
diff --git a/trunk/PLC/Methods/AdmGetSites.py b/trunk/PLC/Methods/AdmGetSites.py
new file mode 100644 (file)
index 0000000..cf5b0cd
--- /dev/null
@@ -0,0 +1,11 @@
+from PLC.Methods.GetSites import GetSites
+
+class AdmGetSites(GetSites):
+    """
+    Deprecated. See GetSites.
+    """
+
+    status = "deprecated"
+
+    def call(self, auth, site_id_or_login_base_list = None, return_fields = None):
+        return GetSites.call(self, auth, site_id_or_login_base_list)
diff --git a/trunk/PLC/Methods/AdmGrantRoleToPerson.py b/trunk/PLC/Methods/AdmGrantRoleToPerson.py
new file mode 100644 (file)
index 0000000..36e2e25
--- /dev/null
@@ -0,0 +1,11 @@
+from PLC.Methods.AddRoleToPerson import AddRoleToPerson
+
+class AdmGrantRoleToPerson(AddRoleToPerson):
+    """
+    Deprecated. See AddRoleToPerson.
+    """
+
+    status = "deprecated"
+
+    def call(self, auth, person_id_or_email, role_id_or_name):
+        return AddRoleToPerson.call(self, auth, role_id_or_name, person_id_or_email)
diff --git a/trunk/PLC/Methods/AdmIsPersonInRole.py b/trunk/PLC/Methods/AdmIsPersonInRole.py
new file mode 100644 (file)
index 0000000..b32ab03
--- /dev/null
@@ -0,0 +1,67 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+from PLC.Roles import Role, Roles
+
+class AdmIsPersonInRole(Method):
+    """
+    Deprecated. Functionality can be implemented with GetPersons.
+
+    Returns 1 if the specified account has the specified role, 0
+    otherwise. This function differs from AdmGetPersonRoles() in that
+    any authorized user can call it. It is currently restricted to
+    verifying PI roles.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user', 'tech']
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email']),
+        Mixed(Parameter(int, "Role identifier"),
+              Parameter(str, "Role name"))
+        ]
+
+    returns = Parameter(int, "1 if account has role, 0 otherwise")
+
+    def call(self, auth, person_id_or_email, role_id_or_name):
+        # This is a totally fucked up function. I have no idea why it
+        # exists or who calls it, but here is how it is supposed to
+        # work.
+
+        # Only allow PI roles to be checked
+        roles = {}
+        for role in Roles(self.api):
+            roles[role['role_id']] = role['name']
+            roles[role['name']] = role['role_id']
+
+        if role_id_or_name not in roles:
+            raise PLCInvalidArgument, "Invalid role identifier or name"
+
+        if isinstance(role_id_or_name, int):
+            role_id = role_id_or_name
+        else:
+            role_id = roles[role_id_or_name]
+
+        if roles[role_id] != "pi":
+            raise PLCInvalidArgument, "Only the PI role may be checked"
+
+        # Get account information
+        persons = Persons(self.api, [person_id_or_email])
+
+        # Rather than raise an error, and indicate whether or not
+        # the person is real, return 0.
+        if not persons:
+            return 0
+
+        person = persons[0]
+
+        if role_id in person['role_ids']:
+            return 1
+
+        return 0
diff --git a/trunk/PLC/Methods/AdmQueryConfFile.py b/trunk/PLC/Methods/AdmQueryConfFile.py
new file mode 100644 (file)
index 0000000..6cf5d99
--- /dev/null
@@ -0,0 +1,35 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.ConfFiles import ConfFile, ConfFiles
+from PLC.Auth import Auth
+
+class AdmQueryConfFile(Method):
+    """
+    Deprecated. See GetConfFiles.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user', 'tech']
+
+    accepts = [
+        Auth(),
+        {'node_id': Node.fields['node_id']}
+        ]
+
+    returns = [ConfFile.fields['conf_file_id']]
+
+    def call(self, auth, search_vals):
+        if 'node_id' in search_vals:
+            conf_files = ConfFiles(self.api)
+
+            conf_files = filter(lambda conf_file: \
+                                search_vals['node_id'] in conf_file['node_ids'],
+                                conf_files)
+
+            if conf_files:
+                return [conf_file['conf_file_id'] for conf_file in conf_files]
+
+        return []
diff --git a/trunk/PLC/Methods/AdmQueryNode.py b/trunk/PLC/Methods/AdmQueryNode.py
new file mode 100644 (file)
index 0000000..f41d04f
--- /dev/null
@@ -0,0 +1,67 @@
+import socket
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks, valid_ip
+from PLC.Auth import Auth
+
+class AdmQueryNode(Method):
+    """
+    Deprecated. Functionality can be implemented with GetNodes and
+    GetNodeNetworks.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user', 'tech']
+
+    accepts = [
+        Auth(),
+        {'node_hostname': Node.fields['hostname'],
+         'nodenetwork_ip': NodeNetwork.fields['ip'],
+         'nodenetwork_mac': NodeNetwork.fields['mac'],
+         'nodenetwork_method': NodeNetwork.fields['method']}
+        ]
+
+    returns = [Node.fields['node_id']]
+
+    def call(self, auth, search_vals):
+        # Get possible nodenetworks
+        if 'node_hostname' in search_vals:
+            nodes = Nodes(self.api, [search_vals['node_hostname']])
+            if not nodes:
+                return []
+
+            # No network interface filters specified
+            if 'nodenetwork_ip' not in search_vals and \
+               'nodenetwork_mac' not in search_vals and \
+               'nodenetwork_method' not in search_vals:
+                return [nodes[0]['node_id']]
+
+            if nodes[0]['nodenetwork_ids']:
+                nodenetworks = NodeNetworks(self.api, nodes[0]['nodenetwork_ids'])
+            else:
+                nodenetworks = []
+        else:
+            nodenetworks = NodeNetworks(self.api)
+
+        if 'nodenetwork_ip' in search_vals:
+            if not valid_ip(search_vals['nodenetwork_ip']):
+                raise PLCInvalidArgument, "Invalid IP address"
+            nodenetworks = filter(lambda nodenetwork: \
+                                  socket.inet_aton(nodenetwork['ip']) == socket.inet_aton(search_vals['nodenetwork_ip']),
+                                  nodenetworks)
+
+        if 'nodenetwork_mac' in search_vals:
+            nodenetworks = filter(lambda nodenetwork: \
+                                 nodenetwork['mac'].lower() == search_vals['nodenetwork_mac'].lower(),
+                                 nodenetworks)
+
+        if 'nodenetwork_method' in search_vals:
+            nodenetworks = filter(lambda nodenetwork: \
+                                  nodenetwork['method'].lower() == search_vals['nodenetwork_method'].lower(),
+                                  nodenetworks)
+
+        return [nodenetwork['node_id'] for nodenetwork in nodenetworks]
diff --git a/trunk/PLC/Methods/AdmQueryPerson.py b/trunk/PLC/Methods/AdmQueryPerson.py
new file mode 100644 (file)
index 0000000..b41d0a5
--- /dev/null
@@ -0,0 +1,29 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+
+class AdmQueryPerson(Method):
+    """
+    Deprecated. See GetPersons.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user', 'tech']
+
+    accepts = [
+        Auth(),
+        {'email': Person.fields['email']}
+        ]
+
+    returns = [Person.fields['person_id']]
+
+    def call(self, auth, search_vals):
+        if 'email' in search_vals:
+            persons = Persons(self.api, [search_vals['email']])
+            if persons:
+                return [persons[0]['person_id']]
+
+        return []
diff --git a/trunk/PLC/Methods/AdmQueryPowerControlUnit.py b/trunk/PLC/Methods/AdmQueryPowerControlUnit.py
new file mode 100644 (file)
index 0000000..8fc2f42
--- /dev/null
@@ -0,0 +1,59 @@
+import socket
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.PCUs import PCU, PCUs
+from PLC.Nodes import Node, Nodes
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks, valid_ip
+from PLC.Auth import Auth
+
+class AdmQueryPowerControlUnit(Method):
+    """
+    Deprecated. Functionality can be implemented with GetPCUs or
+    GetNodes.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user', 'tech']
+
+    accepts = [
+        Auth(),
+        {'pcu_hostname': PCU.fields['hostname'],
+         'pcu_ip': PCU.fields['ip'],
+         'node_hostname': Node.fields['hostname'],
+         'node_id': Node.fields['node_id']}
+        ]
+
+    returns = [PCU.fields['pcu_id']]
+
+    def call(self, auth, search_vals):
+        # Get all PCUs. This is a stupid function. The API should not
+        # be used for DB mining.
+        pcus = PCUs(self.api)
+
+        if 'pcu_hostname' in search_vals:
+            pcus = filter(lambda pcu: \
+                          pcu['hostname'].lower() == search_vals['pcu_hostname'].lower(),
+                          pcus)
+
+        if 'pcu_ip' in search_vals:
+            if not valid_ip(search_vals['pcu_ip']):
+                raise PLCInvalidArgument, "Invalid IP address"
+            pcus = filter(lambda pcu: \
+                          socket.inet_aton(pcu['ip']) == socket.inet_aton(search_vals['pcu_ip']),
+                          pcus)
+
+        if 'node_id' in search_vals:
+            pcus = filter(lambda pcu: \
+                          search_vals['node_id'] in pcu['node_ids'],
+                          pcus)
+
+        if 'node_hostname' in search_vals:
+            pcus = filter(lambda pcu: \
+                          search_vals['node_hostname'] in \
+                          [node['hostname'] for node in Nodes(self.api, pcu['node_ids'])],
+                          pcus)
+
+        return [pcu['pcu_id'] for pcu in pcus]
diff --git a/trunk/PLC/Methods/AdmQuerySite.py b/trunk/PLC/Methods/AdmQuerySite.py
new file mode 100644 (file)
index 0000000..cad6b8c
--- /dev/null
@@ -0,0 +1,87 @@
+import socket
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Sites import Site, Sites
+from PLC.Nodes import Node, Nodes
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks, valid_ip
+from PLC.Auth import Auth
+
+class AdmQuerySite(Method):
+    """
+    Deprecated. Functionality can be implemented with GetSites and
+    GetNodes.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user', 'tech']
+
+    accepts = [
+        Auth(),
+        {'site_name': Site.fields['name'],
+         'site_abbreviatedname': Site.fields['abbreviated_name'],
+         'site_loginbase': Site.fields['login_base'],
+         'node_hostname': Node.fields['hostname'],
+         'node_id': Node.fields['node_id'],
+         'nodenetwork_ip': NodeNetwork.fields['ip'],
+         'nodenetwork_mac': NodeNetwork.fields['mac']}
+        ]
+
+    returns = [Site.fields['site_id']]
+
+    def call(self, auth, search_vals):
+        if 'site_loginbase' in search_vals:
+            sites = Sites(self.api, [search_vals['site_loginbase']])
+        else:
+            sites = Sites(self.api)
+            
+        if 'site_name' in search_vals:
+            sites = filter(lambda site: \
+                           site['name'] == search_vals['site_name'],
+                           sites)
+
+        if 'site_abbreviatedname' in search_vals:
+            sites = filter(lambda site: \
+                           site['abbreviatedname'] == search_vals['site_abbreviatedname'],
+                           sites)
+
+        if 'node_id' in search_vals:
+            sites = filter(lambda site: \
+                           search_vals['node_id'] in site['node_ids'],
+                           sites)
+
+        if 'node_hostname' in search_vals or \
+           'nodenetwork_ip' in search_vals or \
+           'nodenetwork_mac' in search_vals:
+            for site in sites:
+                site['hostnames'] = []
+                site['ips'] = []
+                site['macs'] = []
+                if site['node_ids']:
+                    nodes = Nodes(self.api, site['node_ids'])
+                    for node in nodes:
+                        site['hostnames'].append(node['hostname'])
+                        if 'nodenetwork_ip' in search_vals or \
+                           'nodenetwork_mac' in search_vals:
+                            nodenetworks = NodeNetworks(self.api, node['nodenetwork_ids'])
+                            site['ips'] += [nodenetwork['ip'] for nodenetwork in nodenetworks]
+                            site['macs'] += [nodenetwork['mac'] for nodenetwork in nodenetworks]
+
+            if 'node_hostname' in search_vals:
+                sites = filter(lambda site: \
+                               search_vals['node_hostname'] in site['hostnames'],
+                               sites)
+
+            if 'nodenetwork_ip' in search_vals:
+                sites = filter(lambda site: \
+                               search_vals['nodenetwork_ip'] in site['ips'],
+                               sites)
+
+            if 'nodenetwork_mac' in search_vals:
+                sites = filter(lambda site: \
+                               search_vals['nodenetwork_mac'] in site['macs'],
+                               sites)
+
+        return [site['site_id'] for site in sites]
diff --git a/trunk/PLC/Methods/AdmRebootNode.py b/trunk/PLC/Methods/AdmRebootNode.py
new file mode 100644 (file)
index 0000000..c8368e3
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.RebootNode import RebootNode
+
+class AdmRebootNode(RebootNode):
+    """
+    Deprecated. See RebootNode.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmRemoveNodeFromNodeGroup.py b/trunk/PLC/Methods/AdmRemoveNodeFromNodeGroup.py
new file mode 100644 (file)
index 0000000..f905a16
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.DeleteNodeFromNodeGroup import DeleteNodeFromNodeGroup
+
+class AdmRemoveNodeFromNodeGroup(DeleteNodeFromNodeGroup):
+    """
+    Deprecated. See DeleteNodeFromNodeGroup.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmRemovePersonFromSite.py b/trunk/PLC/Methods/AdmRemovePersonFromSite.py
new file mode 100644 (file)
index 0000000..54d3f1d
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.DeletePersonFromSite import DeletePersonFromSite
+
+class AdmRemovePersonFromSite(DeletePersonFromSite):
+    """
+    Deprecated. See DeletePersonFromSite.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmRevokeRoleFromPerson.py b/trunk/PLC/Methods/AdmRevokeRoleFromPerson.py
new file mode 100644 (file)
index 0000000..2631a3a
--- /dev/null
@@ -0,0 +1,11 @@
+from PLC.Methods.DeleteRoleFromPerson import DeleteRoleFromPerson
+
+class AdmRevokeRoleFromPerson(DeleteRoleFromPerson):
+    """
+    Deprecated. See DeleteRoleFromPerson.
+    """
+
+    status = "deprecated"
+
+    def call(self, auth, person_id_or_email, role_id_or_name):
+        return DeleteRoleFromPerson.call(self, auth, role_id_or_name, person_id_or_email)
diff --git a/trunk/PLC/Methods/AdmSetPersonEnabled.py b/trunk/PLC/Methods/AdmSetPersonEnabled.py
new file mode 100644 (file)
index 0000000..2009f00
--- /dev/null
@@ -0,0 +1,23 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+from PLC.Methods.UpdatePerson import UpdatePerson
+
+class AdmSetPersonEnabled(UpdatePerson):
+    """
+    Deprecated. See UpdatePerson.
+    """
+
+    status = "deprecated"
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email']),
+        Person.fields['enabled']
+        ]
+
+    def call(self, auth, person_id_or_email, enabled):
+        return UpdatePerson.call(self, auth, person_id_or_email, {'enabled': enabled})
diff --git a/trunk/PLC/Methods/AdmSetPersonPrimarySite.py b/trunk/PLC/Methods/AdmSetPersonPrimarySite.py
new file mode 100644 (file)
index 0000000..c631a95
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.SetPersonPrimarySite import SetPersonPrimarySite
+
+class AdmSetPersonPrimarySite(SetPersonPrimarySite):
+    """
+    Deprecated. See SetPersonPrimarySite.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmUpdateNode.py b/trunk/PLC/Methods/AdmUpdateNode.py
new file mode 100644 (file)
index 0000000..ba4b3f1
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.UpdateNode import UpdateNode
+
+class AdmUpdateNode(UpdateNode):
+    """
+    Deprecated. See UpdateNode.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmUpdateNodeGroup.py b/trunk/PLC/Methods/AdmUpdateNodeGroup.py
new file mode 100644 (file)
index 0000000..b53198a
--- /dev/null
@@ -0,0 +1,27 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.NodeGroups import NodeGroup, NodeGroups
+from PLC.Auth import Auth
+from PLC.Methods.UpdateNodeGroup import UpdateNodeGroup
+
+class AdmUpdateNodeGroup(UpdateNodeGroup):
+    """
+    Deprecated. See UpdateNodeGroup.
+    """
+
+    status = "deprecated"
+
+    accepts = [
+        Auth(),
+        Mixed(NodeGroup.fields['nodegroup_id'],
+             NodeGroup.fields['name']),
+        NodeGroup.fields['name'],
+       NodeGroup.fields['description']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, nodegroup_id_or_name, name, description):
+        return UpdateNodeGroup.call(self, auth, nodegroup_id_or_name,
+                                    {'name': name, 'description': description})
diff --git a/trunk/PLC/Methods/AdmUpdateNodeNetwork.py b/trunk/PLC/Methods/AdmUpdateNodeNetwork.py
new file mode 100644 (file)
index 0000000..a85d62a
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.UpdateNodeNetwork import UpdateNodeNetwork
+
+class AdmUpdateNodeNetwork(UpdateNodeNetwork):
+    """
+    Deprecated. See UpdateNodeNetwork.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmUpdatePerson.py b/trunk/PLC/Methods/AdmUpdatePerson.py
new file mode 100644 (file)
index 0000000..066fe6d
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.UpdatePerson import UpdatePerson
+
+class AdmUpdatePerson(UpdatePerson):
+    """
+    Deprecated. See UpdatePerson.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmUpdateSite.py b/trunk/PLC/Methods/AdmUpdateSite.py
new file mode 100644 (file)
index 0000000..0b6c26a
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.UpdateSite import UpdateSite
+
+class AdmUpdateSite(UpdateSite):
+    """
+    Deprecated. See UpdateSite.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AdmUpdateSitePowerControlUnit.py b/trunk/PLC/Methods/AdmUpdateSitePowerControlUnit.py
new file mode 100644 (file)
index 0000000..ed564fb
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.UpdatePCU import UpdatePCU
+
+class AdmUpdateSitePowerControlUnit(UpdatePCU):
+    """
+    Deprecated. See UpdatePCU.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/AnonAdmGetNodeGroups.py b/trunk/PLC/Methods/AnonAdmGetNodeGroups.py
new file mode 100644 (file)
index 0000000..b223e1e
--- /dev/null
@@ -0,0 +1,11 @@
+from PLC.Methods.GetNodeGroups import GetNodeGroups
+class AnonAdmGetNodeGroups(GetNodeGroups):
+    """
+    Deprecated. See GetNodeGroups. All fields are now always returned
+    """
+    
+    status = "deprecated"
+
+    def call(self, auth, nodegroup_id_or_name_list =  None, return_fields = None):
+       return GetNodeGroups.call(self, auth, nodegroup_id_or_name_list)
diff --git a/trunk/PLC/Methods/AuthCheck.py b/trunk/PLC/Methods/AuthCheck.py
new file mode 100644 (file)
index 0000000..0a4c260
--- /dev/null
@@ -0,0 +1,16 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth, BootAuth
+
+class AuthCheck(Method):
+    """
+    Returns 1 if the user or node authenticated successfully, faults
+    otherwise.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+    accepts = [Auth()]
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth):
+        return 1
diff --git a/trunk/PLC/Methods/BlacklistKey.py b/trunk/PLC/Methods/BlacklistKey.py
new file mode 100644 (file)
index 0000000..7953e7a
--- /dev/null
@@ -0,0 +1,42 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Keys import Key, Keys
+from PLC.Auth import Auth
+
+class BlacklistKey(Method):
+    """
+    Blacklists a key, disassociating it and all others identical to it
+    from all accounts and preventing it from ever being added again.
+
+    WARNING: Identical keys associated with other accounts with also
+    be blacklisted.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Key.fields['key_id'],
+        ]
+
+    returns = Parameter(int, '1 if successful')
+   
+    def call(self, auth, key_id):
+        # Get associated key details
+        keys = Keys(self.api, [key_id])
+        if not keys:
+            raise PLCInvalidArgument, "No such key"
+        key = keys[0]
+
+        # N.B.: Can blacklist any key, even foreign ones
+
+        key.blacklist()
+       
+       # Logging variables
+       self.event_objects = {'Key': [key['key_id']]}
+       self.message = 'Key %d blacklisted' % key['key_id']
+
+        return 1
diff --git a/trunk/PLC/Methods/BootCheckAuthentication.py b/trunk/PLC/Methods/BootCheckAuthentication.py
new file mode 100644 (file)
index 0000000..ea9b098
--- /dev/null
@@ -0,0 +1,8 @@
+from PLC.Methods.AuthCheck import AuthCheck
+
+class BootCheckAuthentication(AuthCheck):
+    """
+    Deprecated. See AuthCheck.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/BootGetNodeDetails.py b/trunk/PLC/Methods/BootGetNodeDetails.py
new file mode 100644 (file)
index 0000000..2f5056d
--- /dev/null
@@ -0,0 +1,55 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import BootAuth
+from PLC.Nodes import Node, Nodes
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+from PLC.Sessions import Session, Sessions
+
+class BootGetNodeDetails(Method):
+    """
+    Returns a set of details about the calling node, including a new
+    node session value.
+    """
+
+    roles = ['node']
+
+    accepts = [BootAuth()]
+
+    returns = {
+        'hostname': Node.fields['hostname'],
+        'boot_state': Node.fields['boot_state'],
+        'model': Node.fields['model'],
+        'networks': [NodeNetwork.fields],
+        'session': Session.fields['session_id'],
+        }
+
+    def call(self, auth):
+        details = {
+            'hostname': self.caller['hostname'],
+            'boot_state': self.caller['boot_state'],
+            # XXX Boot Manager cannot unmarshal None
+            'model': self.caller['model'] or "",
+            }
+
+        # Generate a new session value
+        session = Session(self.api)
+        session.sync(commit = False)
+        session.add_node(self.caller, commit = True)
+
+        details['session'] = session['session_id']
+
+        if self.caller['nodenetwork_ids']:
+            details['networks'] = NodeNetworks(self.api, self.caller['nodenetwork_ids'])
+            # XXX Boot Manager cannot unmarshal None
+            for network in details['networks']:
+                for field in network:
+                    if network[field] is None:
+                        if isinstance(network[field], (int, long)):
+                            network[field] = -1
+                        else:
+                            network[field] = ""
+
+       self.messge = "Node request boot_state (%s) and networks" % \
+               (details['boot_state'])
+        return details
+
diff --git a/trunk/PLC/Methods/BootNotifyOwners.py b/trunk/PLC/Methods/BootNotifyOwners.py
new file mode 100644 (file)
index 0000000..c1da332
--- /dev/null
@@ -0,0 +1,32 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth, BootAuth
+from PLC.Nodes import Node, Nodes
+from PLC.Messages import Message, Messages
+
+from PLC.Boot import notify_owners
+
+class BootNotifyOwners(Method):
+    """
+    Notify the owners of the node, and/or support about an event that
+    happened on the machine.
+
+    Returns 1 if successful.
+    """
+
+    roles = ['node']
+
+    accepts = [
+        BootAuth(),
+        Message.fields['message_id'],
+        Parameter(int, "Notify PIs"),
+        Parameter(int, "Notify technical contacts"),
+        Parameter(int, "Notify support")
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, message_id, include_pis, include_techs, include_support):
+        assert isinstance(self.caller, Node)
+        notify_owners(self, self.caller, message_id, include_pis, include_techs, include_support)
+        return 1
diff --git a/trunk/PLC/Methods/BootUpdateNode.py b/trunk/PLC/Methods/BootUpdateNode.py
new file mode 100644 (file)
index 0000000..52381cb
--- /dev/null
@@ -0,0 +1,64 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth, BootAuth, SessionAuth
+from PLC.Nodes import Node, Nodes
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+
+can_update = lambda (field, value): field in \
+             ['method', 'mac', 'gateway', 'network',
+              'broadcast', 'netmask', 'dns1', 'dns2']
+
+class BootUpdateNode(Method):
+    """
+    Allows the calling node to update its own record. Only the primary
+    network can be updated, and the node IP cannot be changed.
+
+    Returns 1 if updated successfully.
+    """
+
+    roles = ['node']
+
+    nodenetwork_fields = dict(filter(can_update, NodeNetwork.fields.items()))
+
+    accepts = [
+        Mixed(BootAuth(), SessionAuth()),
+        {'boot_state': Node.fields['boot_state'],
+         'primary_network': nodenetwork_fields,
+         'ssh_host_key': Node.fields['ssh_rsa_key']}
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, node_fields):
+        # Update node state
+        if node_fields.has_key('boot_state'):
+            self.caller['boot_state'] = node_fields['boot_state']
+        if node_fields.has_key('ssh_host_key'):
+            self.caller['ssh_rsa_key'] = node_fields['ssh_host_key']
+
+        # Update primary node network state
+        if node_fields.has_key('primary_network'):
+            primary_network = node_fields['primary_network'] 
+
+            if 'nodenetwork_id' not in primary_network:
+                raise PLCInvalidArgument, "Node network not specified"
+            if primary_network['nodenetwork_id'] not in self.caller['nodenetwork_ids']:
+                raise PLCInvalidArgument, "Node network not associated with calling node"
+
+            nodenetworks = NodeNetworks(self.api, [primary_network['nodenetwork_id']])
+            if not nodenetworks:
+                raise PLCInvalidArgument, "No such node network"
+            nodenetwork = nodenetworks[0]
+
+            if not nodenetwork['is_primary']:
+                raise PLCInvalidArgument, "Not the primary node network on record"
+
+            nodenetwork_fields = dict(filter(can_update, primary_network.items()))
+            nodenetwork.update(nodenetwork_fields)
+            nodenetwork.sync(commit = False)
+
+        self.caller.sync(commit = True)
+       self.message = "Node updated: %s" % ", ".join(node_fields.keys())
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteAddress.py b/trunk/PLC/Methods/DeleteAddress.py
new file mode 100644 (file)
index 0000000..d4f98bc
--- /dev/null
@@ -0,0 +1,43 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Addresses import Address, Addresses
+from PLC.Auth import Auth
+
+class DeleteAddress(Method):
+    """
+    Deletes an address.
+
+    PIs may only delete addresses from their own sites.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi']
+
+    accepts = [
+        Auth(),
+        Address.fields['address_id'],
+        ]
+
+    returns = Parameter(int, '1 if successful')
+    
+
+    def call(self, auth, address_id):
+        # Get associated address details
+        addresses = Addresses(self.api, [address_id])
+        if not addresses:
+            raise PLCInvalidArgument, "No such address"
+        address = addresses[0]
+
+        if 'admin' not in self.caller['roles']:
+            if address['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Address must be associated with one of your sites"
+
+        address.delete()
+
+       # Logging variables
+        self.event_objects = {'Address': [address['address_id']]}
+       self.message = 'Address %d deleted' % address['address_id']     
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteAddressType.py b/trunk/PLC/Methods/DeleteAddressType.py
new file mode 100644 (file)
index 0000000..4fd1d9b
--- /dev/null
@@ -0,0 +1,33 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.AddressTypes import AddressType, AddressTypes
+from PLC.Auth import Auth
+
+class DeleteAddressType(Method):
+    """
+    Deletes an address type.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(AddressType.fields['address_type_id'],
+              AddressType.fields['name'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, address_type_id_or_name):
+        address_types = AddressTypes(self.api, [address_type_id_or_name])
+        if not address_types:
+            raise PLCInvalidArgument, "No such address type"
+        address_type = address_types[0]
+        address_type.delete()
+       self.event_objects = {'AddressType': [address_type['address_type_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteAddressTypeFromAddress.py b/trunk/PLC/Methods/DeleteAddressTypeFromAddress.py
new file mode 100644 (file)
index 0000000..d4ea928
--- /dev/null
@@ -0,0 +1,48 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.AddressTypes import AddressType, AddressTypes
+from PLC.Addresses import Address, Addresses
+from PLC.Auth import Auth
+
+class DeleteAddressTypeFromAddress(Method):
+    """
+    Deletes an address type from the specified address.
+
+    PIs may only update addresses of their own sites.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi']
+
+    accepts = [
+        Auth(),
+        Mixed(AddressType.fields['address_type_id'],
+              AddressType.fields['name']),
+        Address.fields['address_id']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+    
+
+    def call(self, auth, address_type_id_or_name, address_id):
+        address_types = AddressTypes(self.api, [address_type_id_or_name])
+        if not address_types:
+            raise PLCInvalidArgument, "No such address type"
+        address_type = address_types[0]
+
+        addresses = Addresses(self.api, [address_id])
+        if not addresses:
+            raise PLCInvalidArgument, "No such address"
+        address = addresses[0]
+
+        if 'admin' not in self.caller['roles']:
+            if address['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Address must be associated with one of your sites"
+
+        address.remove_address_type(address_type)
+       self.event_objects = {'Address' : [address['address_id']],
+                             'AddressType': [address_type['address_type_id']]} 
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteBootState.py b/trunk/PLC/Methods/DeleteBootState.py
new file mode 100644 (file)
index 0000000..507fc7b
--- /dev/null
@@ -0,0 +1,35 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.BootStates import BootState, BootStates
+from PLC.Auth import Auth
+
+class DeleteBootState(Method):
+    """
+    Deletes a node boot state.
+
+    WARNING: This will cause the deletion of all nodes in this boot
+    state.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        BootState.fields['boot_state']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, name):
+        boot_states = BootStates(self.api, [name])
+        if not boot_states:
+            raise PLCInvalidArgument, "No such boot state"
+        boot_state = boot_states[0]
+
+        boot_state.delete()
+       
+        return 1
diff --git a/trunk/PLC/Methods/DeleteConfFile.py b/trunk/PLC/Methods/DeleteConfFile.py
new file mode 100644 (file)
index 0000000..f05ae43
--- /dev/null
@@ -0,0 +1,33 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.ConfFiles import ConfFile, ConfFiles
+from PLC.Auth import Auth
+
+class DeleteConfFile(Method):
+    """
+    Returns an array of structs containing details about node
+    configuration files. If conf_file_ids is specified, only the
+    specified configuration files will be queried.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        ConfFile.fields['conf_file_id']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+    
+
+    def call(self, auth, conf_file_id):
+        conf_files = ConfFiles(self.api, [conf_file_id])
+        if not conf_files:
+            raise PLCInvalidArgument, "No such configuration file"
+
+        conf_file = conf_files[0]
+        conf_file.delete()
+       self.event_objects = {'ConfFile': [conf_file['conf_file_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteConfFileFromNode.py b/trunk/PLC/Methods/DeleteConfFileFromNode.py
new file mode 100644 (file)
index 0000000..50b08e6
--- /dev/null
@@ -0,0 +1,48 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.ConfFiles import ConfFile, ConfFiles
+from PLC.Nodes import Node, Nodes
+from PLC.Auth import Auth
+
+class DeleteConfFileFromNode(Method):
+    """
+    Deletes a configuration file from the specified node. If the node
+    is not linked to the configuration file, no errors are returned.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        ConfFile.fields['conf_file_id'],
+        Mixed(Node.fields['node_id'],
+              Node.fields['hostname'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, conf_file_id, node_id_or_hostname):
+       # Get configuration file
+        conf_files = ConfFiles(self.api, [conf_file_id])
+        if not conf_files:
+            raise PLCInvalidArgument, "No such configuration file"
+        conf_file = conf_files[0]
+
+        # Get node
+       nodes = Nodes(self.api, [node_id_or_hostname])
+       if not nodes:
+               raise PLCInvalidArgument, "No such node"
+       node = nodes[0]
+       
+       # Link configuration file to node
+        if node['node_id'] in conf_file['node_ids']:
+            conf_file.remove_node(node)
+
+        # Log affected objects
+        self.event_objects = {'ConfFile': [conf_file_id], 
+                             'Node': [node['node_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteConfFileFromNodeGroup.py b/trunk/PLC/Methods/DeleteConfFileFromNodeGroup.py
new file mode 100644 (file)
index 0000000..5504b0f
--- /dev/null
@@ -0,0 +1,49 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.ConfFiles import ConfFile, ConfFiles
+from PLC.NodeGroups import NodeGroup, NodeGroups
+from PLC.Auth import Auth
+
+class DeleteConfFileFromNodeGroup(Method):
+    """
+    Deletes a configuration file from the specified nodegroup. If the nodegroup
+    is not linked to the configuration file, no errors are returned.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        ConfFile.fields['conf_file_id'],
+        Mixed(NodeGroup.fields['nodegroup_id'],
+              NodeGroup.fields['name'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, conf_file_id, nodegroup_id_or_name):
+       # Get configuration file
+        conf_files = ConfFiles(self.api, [conf_file_id])
+        if not conf_files:
+            raise PLCInvalidArgument, "No such configuration file"
+        conf_file = conf_files[0]
+
+        # Get nodegroup
+       nodegroups = NodeGroups(self.api, [nodegroup_id_or_name])
+       if not nodegroups:
+               raise PLCInvalidArgument, "No such nodegroup"
+       nodegroup = nodegroups[0]
+       
+       # Link configuration file to nodegroup
+        if nodegroup['nodegroup_id'] in conf_file['nodegroup_ids']:
+            conf_file.remove_nodegroup(nodegroup)
+
+        # Log affected objects
+        self.event_objects = {'ConfFile': [conf_file_id], 
+                             'NodeGroup': [nodegroup['nodegroup_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteInitScript.py b/trunk/PLC/Methods/DeleteInitScript.py
new file mode 100644 (file)
index 0000000..47a9993
--- /dev/null
@@ -0,0 +1,33 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.InitScripts import InitScript, InitScripts
+from PLC.Auth import Auth
+
+class DeleteInitScript(Method):
+    """
+    Deletes an existing initscript.  
+    
+    Returns 1 if successfuli, faults otherwise. 
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        InitScript.fields['initscript_id']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+    
+
+    def call(self, auth, initscript_id):
+        initscripts = InitScripts(self.api, [initscript_id])
+        if not initscripts:
+            raise PLCInvalidArgument, "No such initscript"
+
+        initscript = initscripts[0]
+        initscript.delete()
+       self.event_objects = {'InitScript':  [initscript['initscript_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteKey.py b/trunk/PLC/Methods/DeleteKey.py
new file mode 100644 (file)
index 0000000..86c16a5
--- /dev/null
@@ -0,0 +1,46 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Keys import Key, Keys
+from PLC.Auth import Auth
+
+class DeleteKey(Method):
+    """
+    Deletes a key.
+
+    Non-admins may only delete their own keys.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech', 'user']
+
+    accepts = [
+        Auth(),
+        Key.fields['key_id'],
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, key_id):
+        # Get associated key details
+        keys = Keys(self.api, [key_id])
+        if not keys:
+            raise PLCInvalidArgument, "No such key"
+        key = keys[0]
+
+        if key['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local key"
+
+        if 'admin' not in self.caller['roles']:
+            if key['key_id'] not in self.caller['key_ids']:
+                raise PLCPermissionDenied, "Key must be associated with your account"
+
+        key.delete()
+       
+       # Logging variables
+       self.event_objects = {'Key': [key['key_id']]}
+       self.message = 'Key %d deleted' % key['key_id']
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteKeyType.py b/trunk/PLC/Methods/DeleteKeyType.py
new file mode 100644 (file)
index 0000000..e09e5c5
--- /dev/null
@@ -0,0 +1,34 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.KeyTypes import KeyType, KeyTypes
+from PLC.Auth import Auth
+
+class DeleteKeyType(Method):
+    """
+    Deletes a key type.
+
+    WARNING: This will cause the deletion of all keys of this type.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        KeyType.fields['key_type']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+    
+    
+    def call(self, auth, name):
+        key_types = KeyTypes(self.api, [name])
+        if not key_types:
+            raise PLCInvalidArgument, "No such key type"
+        key_type = key_types[0]
+
+        key_type.delete()
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteMessage.py b/trunk/PLC/Methods/DeleteMessage.py
new file mode 100644 (file)
index 0000000..4989942
--- /dev/null
@@ -0,0 +1,34 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Messages import Message, Messages
+from PLC.Auth import Auth
+
+class DeleteMessage(Method):
+    """
+    Deletes a message template.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Message.fields['message_id'],
+        ]
+
+    returns = Parameter(int, '1 if successful')
+       
+
+    def call(self, auth, message_id):
+        # Get message information
+        messages = Messages(self.api, [message_id])
+        if not messages:
+            raise PLCInvalidArgument, "No such message"
+        message = messages[0]
+
+        message.delete()
+       self.event_objects = {'Message': [message['message_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteNetworkMethod.py b/trunk/PLC/Methods/DeleteNetworkMethod.py
new file mode 100644 (file)
index 0000000..d0f982e
--- /dev/null
@@ -0,0 +1,35 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.NetworkMethods import NetworkMethod, NetworkMethods
+from PLC.Auth import Auth
+
+class DeleteNetworkMethod(Method):
+    """
+    Deletes a network method.
+
+    WARNING: This will cause the deletion of all network interfaces
+    that use this method.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        NetworkMethod.fields['method']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+   
+
+    def call(self, auth, name):
+        network_methods = NetworkMethods(self.api, [name])
+        if not network_methods:
+            raise PLCInvalidArgument, "No such network method"
+        network_method = network_methods[0]
+
+        network_method.delete()
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteNetworkType.py b/trunk/PLC/Methods/DeleteNetworkType.py
new file mode 100644 (file)
index 0000000..a02f6e0
--- /dev/null
@@ -0,0 +1,35 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.NetworkTypes import NetworkType, NetworkTypes
+from PLC.Auth import Auth
+
+class DeleteNetworkType(Method):
+    """
+    Deletes a network type.
+
+    WARNING: This will cause the deletion of all network interfaces
+    that use this type.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        NetworkType.fields['type']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+    
+
+    def call(self, auth, name):
+        network_types = NetworkTypes(self.api, [name])
+        if not network_types:
+            raise PLCInvalidArgument, "No such network type"
+        network_type = network_types[0]
+
+        network_type.delete()
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteNode.py b/trunk/PLC/Methods/DeleteNode.py
new file mode 100644 (file)
index 0000000..bc92718
--- /dev/null
@@ -0,0 +1,52 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+from PLC.Nodes import Node, Nodes
+
+class DeleteNode(Method):
+    """
+    Mark an existing node as deleted.
+
+    PIs and techs may only delete nodes at their own sites. ins may
+    delete nodes at any site.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech']
+
+    accepts = [
+        Auth(),
+        Mixed(Node.fields['node_id'],
+              Node.fields['hostname'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, node_id_or_hostname):
+        # Get account information
+        nodes = Nodes(self.api, [node_id_or_hostname])
+        if not nodes:
+            raise PLCInvalidArgument, "No such node"
+        node = nodes[0]
+
+        if node['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local node"
+
+        # If we are not an admin, make sure that the caller is a
+        # member of the site at which the node is located.
+        if 'admin' not in self.caller['roles']:
+            # Authenticated function
+            assert self.caller is not None
+
+            if node['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to delete nodes from specified site"
+
+        node.delete()
+
+       # Logging variables
+       self.event_objects = {'Node': [node['node_id']]}
+       self.message = "Node %d deleted" % node['node_id']
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteNodeFromNodeGroup.py b/trunk/PLC/Methods/DeleteNodeFromNodeGroup.py
new file mode 100644 (file)
index 0000000..2bc6770
--- /dev/null
@@ -0,0 +1,53 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.NodeGroups import NodeGroup, NodeGroups
+from PLC.Nodes import Node, Nodes
+from PLC.Auth import Auth
+
+class DeleteNodeFromNodeGroup(Method):
+    """
+    Removes a node from the specified node group. 
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+       Mixed(Node.fields['node_id'],
+             Node.fields['hostname']),
+        Mixed(NodeGroup.fields['nodegroup_id'],
+             NodeGroup.fields['name']),
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, node_id_or_hostname, nodegroup_id_or_name):
+        # Get node info
+       nodes = Nodes(self.api, [node_id_or_hostname])
+       if not nodes:
+               raise PLCInvalidArgument, "No such node"
+
+       node = nodes[0]
+
+       # Get nodegroup info
+        nodegroups = NodeGroups(self.api, [nodegroup_id_or_name])
+        if not nodegroups:
+            raise PLCInvalidArgument, "No such nodegroup"
+
+        nodegroup = nodegroups[0]
+
+       # Remove node from nodegroup
+        if node['node_id'] in nodegroup['node_ids']:
+            nodegroup.remove_node(node)
+       
+       # Logging variables
+       self.event_objects = {'NodeGroup': [nodegroup['nodegroup_id']],
+                             'Node': [node['node_id']]}
+       self.message = 'node %d deleted from node group %d' % \
+               (node['node_id'], nodegroup['nodegroup_id'])
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteNodeFromPCU.py b/trunk/PLC/Methods/DeleteNodeFromPCU.py
new file mode 100644 (file)
index 0000000..8e728ef
--- /dev/null
@@ -0,0 +1,65 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.PCUs import PCU, PCUs
+from PLC.Sites import Site, Sites
+from PLC.Auth import Auth
+
+class DeleteNodeFromPCU(Method):
+    """
+    Deletes a node from a PCU.
+
+    Non-admins may only update PCUs at their sites.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech']
+
+    accepts = [
+        Auth(),
+       Mixed(Node.fields['node_id'],
+              Node.fields['hostname']),
+        PCU.fields['pcu_id']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, node_id_or_hostname, pcu_id):
+        # Get node
+        nodes = Nodes(self.api, [node_id_or_hostname])
+        if not nodes:
+            raise PLCInvalidArgument, "No such node"
+
+        node = nodes[0]
+
+        # Get PCU
+        pcus = PCUs(self.api, [pcu_id])
+        if not pcus:
+            raise PLCInvalidArgument, "No such PCU"
+
+        pcu = pcus[0]
+
+        if 'admin' not in self.caller['roles']:
+            ok = False
+            sites = Sites(self.api, self.caller['site_ids'])
+            for site in sites:
+                if pcu['pcu_id'] in site['pcu_ids']:
+                    ok = True
+                    break
+            if not ok:
+                raise PLCPermissionDenied, "Not allowed to update that PCU"
+       
+       # Removed node from PCU
+       
+        if node['node_id'] in pcu['node_ids']:
+            pcu.remove_node(node)
+
+       # Logging variables
+       self.event_objects = {'PCU': [pcu['pcu_id']],
+                             'Node': [node['node_id']]}        
+       self.message = 'Node %d removed from PCU %d' % \
+               (node['node_id'], pcu['pcu_id']) 
+       
+       return 1
diff --git a/trunk/PLC/Methods/DeleteNodeGroup.py b/trunk/PLC/Methods/DeleteNodeGroup.py
new file mode 100644 (file)
index 0000000..7650150
--- /dev/null
@@ -0,0 +1,41 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+from PLC.NodeGroups import NodeGroup, NodeGroups
+
+class DeleteNodeGroup(Method):
+    """
+    Delete an existing Node Group.
+
+    ins may delete any node group
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(NodeGroup.fields['nodegroup_id'],
+             NodeGroup.fields['name'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, node_group_id_or_name):
+        # Get account information
+        nodegroups = NodeGroups(self.api, [node_group_id_or_name])
+        if not nodegroups:
+            raise PLCInvalidArgument, "No such node group"
+
+        nodegroup = nodegroups[0]
+
+        nodegroup.delete()
+
+       # Logging variables
+       self.event_objects = {'NodeGroup': [nodegroup['nodegroup_id']]}
+       self.message  = 'Node group %d deleted' % nodegroup['nodegroup_id']
+        return 1
diff --git a/trunk/PLC/Methods/DeleteNodeNetwork.py b/trunk/PLC/Methods/DeleteNodeNetwork.py
new file mode 100644 (file)
index 0000000..4bdda21
--- /dev/null
@@ -0,0 +1,57 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+from PLC.Nodes import Node, Nodes
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+
+class DeleteNodeNetwork(Method):
+    """
+    Deletes an existing node network interface.
+
+    Admins may delete any node network. PIs and techs may only delete
+    node network interfaces associated with nodes at their sites.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech']
+
+    accepts = [
+        Auth(),
+       NodeNetwork.fields['nodenetwork_id']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, nodenetwork_id):
+
+        # Get node network information
+        nodenetworks = NodeNetworks(self.api, [nodenetwork_id])
+        if not nodenetworks:
+            raise PLCInvalidArgument, "No such node network"
+       nodenetwork = nodenetworks[0]
+       
+       # Get node information
+       nodes = Nodes(self.api, [nodenetwork['node_id']])
+       if not nodes:
+               raise PLCInvalidArgument, "No such node"
+       node = nodes[0]
+
+        # Authenticated functino
+       assert self.caller is not None
+
+        # If we are not an admin, make sure that the caller is a
+        # member of the site at which the node is located.
+        if 'admin' not in self.caller['roles']:
+            if node['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to delete this node network"
+
+        nodenetwork.delete()
+
+       # Logging variables
+       self.event_objects = {'NodeNetwork': [nodenetwork['nodenetwork_id']]}
+       self.message = "Node network %d deleted" % nodenetwork['nodenetwork_id']
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteNodeNetworkSetting.py b/trunk/PLC/Methods/DeleteNodeNetworkSetting.py
new file mode 100644 (file)
index 0000000..eae2112
--- /dev/null
@@ -0,0 +1,73 @@
+#
+# Thierry Parmentelat - INRIA
+#
+# $Revision$
+#
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+
+from PLC.NodeNetworkSettings import NodeNetworkSetting, NodeNetworkSettings
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+
+from PLC.Nodes import Node, Nodes
+from PLC.Sites import Site, Sites
+
+class DeleteNodeNetworkSetting(Method):
+    """
+    Deletes the specified nodenetwork setting
+
+    Attributes may require the caller to have a particular role in order
+    to be deleted, depending on the related nodenetwork setting type.
+    Admins may delete attributes of any slice or sliver.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+        NodeNetworkSetting.fields['nodenetwork_setting_id']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    object_type = 'NodeNetwork'
+
+
+    def call(self, auth, nodenetwork_setting_id):
+        nodenetwork_settings = NodeNetworkSettings(self.api, [nodenetwork_setting_id])
+        if not nodenetwork_settings:
+            raise PLCInvalidArgument, "No such nodenetwork setting %r"%nodenetwork_setting_id
+        nodenetwork_setting = nodenetwork_settings[0]
+
+        ### reproducing a check from UpdateSliceAttribute, looks dumb though
+        nodenetworks = NodeNetworks(self.api, [nodenetwork_setting['nodenetwork_id']])
+        if not nodenetworks:
+            raise PLCInvalidArgument, "No such nodenetwork %r"%nodenetwork_setting['nodenetwork_id']
+        nodenetwork = nodenetworks[0]
+
+        assert nodenetwork_setting['nodenetwork_setting_id'] in nodenetwork['nodenetwork_setting_ids']
+
+       # check permission : it not admin, is the user affiliated with the right site
+       if 'admin' not in self.caller['roles']:
+           # locate node
+           node = Nodes (self.api,[nodenetwork['node_id']])[0]
+           # locate site
+           site = Sites (self.api, [node['site_id']])[0]
+           # check caller is affiliated with this site
+           if self.caller['person_id'] not in site['person_ids']:
+               raise PLCPermissionDenied, "Not a member of the hosting site %s"%site['abbreviated_site']
+           
+           required_min_role = nodenetwork_setting_type ['min_role_id']
+           if required_min_role is not None and \
+                   min(self.caller['role_ids']) > required_min_role:
+               raise PLCPermissionDenied, "Not allowed to modify the specified nodenetwork setting, requires role %d",required_min_role
+
+        nodenetwork_setting.delete()
+       self.object_ids = [nodenetwork_setting['nodenetwork_setting_id']]
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteNodeNetworkSettingType.py b/trunk/PLC/Methods/DeleteNodeNetworkSettingType.py
new file mode 100644 (file)
index 0000000..dc52d10
--- /dev/null
@@ -0,0 +1,39 @@
+#
+# Thierry Parmentelat - INRIA
+#
+# $Revision$
+#
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.NodeNetworkSettingTypes import NodeNetworkSettingType, NodeNetworkSettingTypes
+from PLC.Auth import Auth
+
+class DeleteNodeNetworkSettingType(Method):
+    """
+    Deletes the specified nodenetwork setting type.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(NodeNetworkSettingType.fields['nodenetwork_setting_type_id'],
+              NodeNetworkSettingType.fields['name']),
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, nodenetwork_setting_type_id_or_name):
+        nodenetwork_setting_types = NodeNetworkSettingTypes(self.api, [nodenetwork_setting_type_id_or_name])
+        if not nodenetwork_setting_types:
+            raise PLCInvalidArgument, "No such nodenetwork settnig type"
+        nodenetwork_setting_type = nodenetwork_setting_types[0]
+
+        nodenetwork_setting_type.delete()
+       self.object_ids = [nodenetwork_setting_type['nodenetwork_setting_type_id']]
+
+        return 1
diff --git a/trunk/PLC/Methods/DeletePCU.py b/trunk/PLC/Methods/DeletePCU.py
new file mode 100644 (file)
index 0000000..944882b
--- /dev/null
@@ -0,0 +1,43 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.PCUs import PCU, PCUs
+from PLC.Auth import Auth
+
+class DeletePCU(Method):
+    """
+    Deletes a PCU.
+
+    Non-admins may only delete PCUs at their sites.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech']
+
+    accepts = [
+        Auth(),
+        PCU.fields['pcu_id'],
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, pcu_id):
+        # Get associated PCU details
+        pcus = PCUs(self.api, [pcu_id])
+        if not pcus:
+            raise PLCInvalidArgument, "No such PCU"
+        pcu = pcus[0]
+
+        if 'admin' not in self.caller['roles']:
+            if pcu['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to update that PCU"
+
+        pcu.delete()
+       
+       # Logging variables
+       self.event_objects = {'PCU': [pcu['pcu_id']]}
+       self.message = 'PCU %d deleted' % pcu['pcu_id']
+
+        return 1
diff --git a/trunk/PLC/Methods/DeletePCUProtocolType.py b/trunk/PLC/Methods/DeletePCUProtocolType.py
new file mode 100644 (file)
index 0000000..ab66520
--- /dev/null
@@ -0,0 +1,33 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.PCUProtocolTypes import PCUProtocolType, PCUProtocolTypes
+from PLC.Auth import Auth
+
+class DeletePCUProtocolType(Method):
+    """
+    Deletes a PCU protocol type.
+
+    Returns 1 if successful, faults otherwise. 
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        PCUProtocolType.fields['pcu_protocol_type_id']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+    
+
+    def call(self, auth, protocol_type_id):
+        protocol_types = PCUProtocolTypes(self.api, [protocol_type_id])
+        if not protocol_types:
+            raise PLCInvalidArgument, "No such pcu protocol type"
+
+        protocol_type = protocol_types[0]
+        protocol_type.delete()
+       self.event_objects = {'PCUProtocolType': [protocol_type['pcu_protocol_type_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/DeletePCUType.py b/trunk/PLC/Methods/DeletePCUType.py
new file mode 100644 (file)
index 0000000..d73c204
--- /dev/null
@@ -0,0 +1,33 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.PCUTypes import PCUType, PCUTypes
+from PLC.Auth import Auth
+
+class DeletePCUType(Method):
+    """
+    Deletes a PCU type.
+
+    Returns 1 if successful, faults otherwise. 
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        PCUType.fields['pcu_type_id']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+    
+
+    def call(self, auth, pcu_type_id):
+        pcu_types = PCUTypes(self.api, [pcu_type_id])
+        if not pcu_types:
+            raise PLCInvalidArgument, "No such pcu type"
+
+        pcu_type = pcu_types[0]
+        pcu_type.delete()
+       self.event_objects = {'PCUType': [pcu_type['pcu_type_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/DeletePeer.py b/trunk/PLC/Methods/DeletePeer.py
new file mode 100644 (file)
index 0000000..4260d25
--- /dev/null
@@ -0,0 +1,38 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+from PLC.Peers import Peer, Peers
+
+class DeletePeer(Method):
+    """
+    Mark an existing peer as deleted. All entities (e.g., slices,
+    keys, nodes, etc.) for which this peer is authoritative will also
+    be deleted or marked as deleted.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(Peer.fields['peer_id'],
+              Peer.fields['peername'])
+        ]
+
+    returns = Parameter(int, "1 if successful")
+
+    def call(self, auth, peer_id_or_name):
+        # Get account information
+        peers = Peers(self.api, [peer_id_or_name])
+        if not peers:
+            raise PLCInvalidArgument, "No such peer"
+
+        peer = peers[0]
+        peer.delete()
+
+        # Log affected objects
+       self.event_objects = {'Peer': [peer['peer_id']]}
+
+       return 1
diff --git a/trunk/PLC/Methods/DeletePerson.py b/trunk/PLC/Methods/DeletePerson.py
new file mode 100644 (file)
index 0000000..448f808
--- /dev/null
@@ -0,0 +1,51 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+
+class DeletePerson(Method):
+    """
+    Mark an existing account as deleted.
+
+    Users and techs can only delete themselves. PIs can only delete
+    themselves and other non-PIs at their sites. ins can delete
+    anyone.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech']
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, person_id_or_email):
+        # Get account information
+        persons = Persons(self.api, [person_id_or_email])
+        if not persons:
+            raise PLCInvalidArgument, "No such account"
+        person = persons[0]
+
+        if person['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local account"
+
+        # Authenticated function
+        assert self.caller is not None
+
+        # Check if we can update this account
+        if not self.caller.can_update(person):
+            raise PLCPermissionDenied, "Not allowed to delete specified account"
+
+        person.delete()
+       
+       # Logging variables
+       self.event_objects = {'Person': [person['person_id']]}
+       self.message = 'Person %d deleted' % person['person_id']
+
+        return 1
diff --git a/trunk/PLC/Methods/DeletePersonFromSite.py b/trunk/PLC/Methods/DeletePersonFromSite.py
new file mode 100644 (file)
index 0000000..db2af2d
--- /dev/null
@@ -0,0 +1,56 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Sites import Site, Sites
+from PLC.Auth import Auth
+
+class DeletePersonFromSite(Method):
+    """
+    Removes the specified person from the specified site. If the
+    person is not a member of the specified site, no error is
+    returned.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email']),
+        Mixed(Site.fields['site_id'],
+              Site.fields['login_base'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, person_id_or_email, site_id_or_login_base):
+        # Get account information
+        persons = Persons(self.api, [person_id_or_email])
+        if not persons:
+            raise PLCInvalidArgument, "No such account"
+        person = persons[0]
+
+        if person['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local account"
+
+        # Get site information
+        sites = Sites(self.api, [site_id_or_login_base])
+        if not sites:
+            raise PLCInvalidArgument, "No such site"
+        site = sites[0]
+
+        if site['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local site"
+
+        if site['site_id'] in person['site_ids']:
+            site.remove_person(person)
+
+       # Logging variables
+       self.event_objects = {'Site': [site['site_id']],
+                             'Person': [person['person_id']]}  
+       self.message = 'Person %d deleted from site %d  ' % \
+               (person['person_id'], site['site_id'])
+        return 1
diff --git a/trunk/PLC/Methods/DeletePersonFromSlice.py b/trunk/PLC/Methods/DeletePersonFromSlice.py
new file mode 100644 (file)
index 0000000..c990ccd
--- /dev/null
@@ -0,0 +1,59 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Slices import Slice, Slices
+from PLC.Auth import Auth
+
+class DeletePersonFromSlice(Method):
+    """
+    Deletes the specified person from the specified slice. If the person is
+    not a member of the slice, no errors are returned. 
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi']
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email']),
+        Mixed(Slice.fields['slice_id'],
+              Slice.fields['name'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, person_id_or_email, slice_id_or_name):
+        # Get account information
+        persons = Persons(self.api, [person_id_or_email])
+        if not persons:
+            raise PLCInvalidArgument, "No such account"
+        person = persons[0]
+
+        # Get slice information
+        slices = Slices(self.api, [slice_id_or_name])
+        if not slices:
+            raise PLCInvalidArgument, "No such slice"
+        slice = slices[0]
+
+        # N.B. Allow foreign users to be added to local slices and
+        # local users to be added to foreign slices (and, of course,
+        # local users to be added to local slices).
+        if person['peer_id'] is not None and slice['peer_id'] is not None:
+            raise PLCInvalidArgument, "Cannot delete foreign users from foreign slices"
+
+        # If we are not admin, make sure the caller is a pi
+        # of the site associated with the slice
+       if 'admin' not in self.caller['roles']:
+               if slice['site_id'] not in self.caller['site_ids']:
+                       raise PLCPermissionDenied, "Not allowed to delete users from this slice"
+
+       if slice['slice_id'] in person['slice_ids']:
+            slice.remove_person(person)
+       
+       self.event_objects = {'Slice': [slice['slice_id']],
+                             'Person': [person['person_id']]}  
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteRole.py b/trunk/PLC/Methods/DeleteRole.py
new file mode 100644 (file)
index 0000000..f707280
--- /dev/null
@@ -0,0 +1,38 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Roles import Role, Roles
+from PLC.Auth import Auth
+
+class DeleteRole(Method):
+    """
+    Deletes a role.
+
+    WARNING: This will remove the specified role from all accounts
+    that possess it, and from all node and slice attributes that refer
+    to it.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(Role.fields['role_id'],
+              Role.fields['name'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    
+    def call(self, auth, role_id_or_name):
+        roles = Roles(self.api, [role_id_or_name])
+        if not roles:
+            raise PLCInvalidArgument, "No such role"
+        role = roles[0]
+
+        role.delete()
+       self.event_objects = {'Role': [role['role_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteRoleFromPerson.py b/trunk/PLC/Methods/DeleteRoleFromPerson.py
new file mode 100644 (file)
index 0000000..151ba25
--- /dev/null
@@ -0,0 +1,67 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+from PLC.Roles import Role, Roles
+
+class DeleteRoleFromPerson(Method):
+    """
+    Deletes the specified role from the person.
+    
+    PIs can only revoke the tech and user roles from users and techs
+    at their sites. ins can revoke any role from any user.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi']
+
+    accepts = [
+        Auth(),
+        Mixed(Role.fields['role_id'],
+              Role.fields['name']),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email']),
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, role_id_or_name, person_id_or_email):
+        # Get role
+        roles = Roles(self.api, [role_id_or_name])
+        if not roles:
+            raise PLCInvalidArgument, "Invalid role '%s'" % unicode(role_id_or_name)
+        role = roles[0]
+
+        # Get account information
+        persons = Persons(self.api, [person_id_or_email])
+        if not persons:
+            raise PLCInvalidArgument, "No such account"
+        person = persons[0]
+
+        if person['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local account"
+
+        # Authenticated function
+        assert self.caller is not None
+
+        # Check if we can update this account
+        if not self.caller.can_update(person):
+            raise PLCPermissionDenied, "Not allowed to update specified account"
+
+        # Can only revoke lesser (higher) roles from others
+        if 'admin' not in self.caller['roles'] and \
+           role['role_id'] <= min(self.caller['role_ids']):
+            raise PLCPermissionDenied, "Not allowed to revoke that role"
+
+        if role['role_id'] in person['role_ids']:
+            person.remove_role(role)
+       
+       # Logging variables
+       self.event_objects = {'Person': [person['person_id']],
+                             'Role': [role['role_id']]}        
+       self.message = "Role %d revoked from person %d" % \
+                       (role['role_id'], person['person_id'])
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteSession.py b/trunk/PLC/Methods/DeleteSession.py
new file mode 100644 (file)
index 0000000..3898f51
--- /dev/null
@@ -0,0 +1,30 @@
+import time
+
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import SessionAuth
+from PLC.Sessions import Session, Sessions
+
+class DeleteSession(Method):
+    """
+    Invalidates the current session.
+
+    Returns 1 if successful.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+    accepts = [SessionAuth()]
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth):
+        assert auth.has_key('session')
+
+        sessions = Sessions(self.api, [auth['session']])
+        if not sessions:
+            raise PLCAPIError, "No such session"
+        session = sessions[0]
+
+        session.delete()
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteSite.py b/trunk/PLC/Methods/DeleteSite.py
new file mode 100644 (file)
index 0000000..c23fff4
--- /dev/null
@@ -0,0 +1,46 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Sites import Site, Sites
+from PLC.Persons import Person, Persons
+from PLC.Nodes import Node, Nodes
+from PLC.PCUs import PCU, PCUs
+from PLC.Auth import Auth
+
+class DeleteSite(Method):
+    """
+    Mark an existing site as deleted. The accounts of people who are
+    not members of at least one other non-deleted site will also be
+    marked as deleted. Nodes, PCUs, and slices associated with the
+    site will be deleted.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(Site.fields['site_id'],
+              Site.fields['login_base'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, site_id_or_login_base):
+        # Get account information
+        sites = Sites(self.api, [site_id_or_login_base])
+        if not sites:
+            raise PLCInvalidArgument, "No such site"
+        site = sites[0]
+
+        if site['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local site"
+
+        site.delete()
+       
+       # Logging variables
+       self.event_objects = {'Site': [site['site_id']]}
+       self.message = 'Site %d deleted' % site['site_id']      
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteSlice.py b/trunk/PLC/Methods/DeleteSlice.py
new file mode 100644 (file)
index 0000000..297f8a9
--- /dev/null
@@ -0,0 +1,48 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Slices import Slice, Slices
+from PLC.Auth import Auth
+
+class DeleteSlice(Method):
+    """
+    Deletes the specified slice.
+
+    Users may only delete slices of which they are members. PIs may
+    delete any of the slices at their sites, or any slices of which
+    they are members. Admins may delete any slice.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+        Mixed(Slice.fields['slice_id'],
+              Slice.fields['name']),
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, slice_id_or_name):
+        slices = Slices(self.api, [slice_id_or_name])
+        if not slices:
+            raise PLCInvalidArgument, "No such slice"
+        slice = slices[0]
+
+        if slice['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local slice"
+
+        if 'admin' not in self.caller['roles']:
+            if self.caller['person_id'] in slice['person_ids']:
+                pass
+            elif 'pi' not in self.caller['roles']:
+                raise PLCPermissionDenied, "Not a member of the specified slice"
+            elif slice['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Specified slice not associated with any of your sites"
+
+        slice.delete()
+        self.event_objects = {'Slice': [slice['slice_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteSliceAttribute.py b/trunk/PLC/Methods/DeleteSliceAttribute.py
new file mode 100644 (file)
index 0000000..06a99f3
--- /dev/null
@@ -0,0 +1,59 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.SliceAttributes import SliceAttribute, SliceAttributes
+from PLC.Slices import Slice, Slices
+from PLC.Nodes import Node, Nodes
+from PLC.Auth import Auth
+
+class DeleteSliceAttribute(Method):
+    """
+    Deletes the specified slice or sliver attribute.
+
+    Attributes may require the caller to have a particular role in
+    order to be deleted. Users may only delete attributes of
+    slices or slivers of which they are members. PIs may only delete
+    attributes of slices or slivers at their sites, or of which they
+    are members. Admins may delete attributes of any slice or sliver.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+        SliceAttribute.fields['slice_attribute_id']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, slice_attribute_id):
+        slice_attributes = SliceAttributes(self.api, [slice_attribute_id])
+        if not slice_attributes:
+            raise PLCInvalidArgument, "No such slice attribute"
+        slice_attribute = slice_attributes[0]
+
+        slices = Slices(self.api, [slice_attribute['slice_id']])
+        if not slices:
+            raise PLCInvalidArgument, "No such slice"
+        slice = slices[0]
+
+        assert slice_attribute['slice_attribute_id'] in slice['slice_attribute_ids']
+
+        if 'admin' not in self.caller['roles']:
+            if self.caller['person_id'] in slice['person_ids']:
+                pass
+            elif 'pi' not in self.caller['roles']:
+                raise PLCPermissionDenied, "Not a member of the specified slice"
+            elif slice['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Specified slice not associated with any of your sites"
+
+            if slice_attribute['min_role_id'] is not None and \
+               min(self.caller['role_ids']) > slice_attribute['min_role_id']:
+                raise PLCPermissioinDenied, "Not allowed to delete the specified attribute"
+
+        slice_attribute.delete()
+       self.event_objects = {'SliceAttribute': [slice_attribute['slice_attribute_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteSliceAttributeType.py b/trunk/PLC/Methods/DeleteSliceAttributeType.py
new file mode 100644 (file)
index 0000000..e6c1a8a
--- /dev/null
@@ -0,0 +1,34 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.SliceAttributeTypes import SliceAttributeType, SliceAttributeTypes
+from PLC.Auth import Auth
+
+class DeleteSliceAttributeType(Method):
+    """
+    Deletes the specified slice attribute.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(SliceAttributeType.fields['attribute_type_id'],
+              SliceAttributeType.fields['name']),
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, attribute_type_id_or_name):
+        attribute_types = SliceAttributeTypes(self.api, [attribute_type_id_or_name])
+        if not attribute_types:
+            raise PLCInvalidArgument, "No such slice attribute type"
+        attribute_type = attribute_types[0]
+
+        attribute_type.delete()
+       self.event_objects = {'AttributeType': [attribute_type['attribute_type_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteSliceFromNodes.py b/trunk/PLC/Methods/DeleteSliceFromNodes.py
new file mode 100644 (file)
index 0000000..2390be5
--- /dev/null
@@ -0,0 +1,58 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.Slices import Slice, Slices
+from PLC.Auth import Auth
+
+class DeleteSliceFromNodes(Method):
+    """
+    Deletes the specified slice from the specified nodes. If the slice is
+    not associated with a node, no errors are returned. 
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+       Mixed(Slice.fields['slice_id'],
+              Slice.fields['name']),
+       [Mixed(Node.fields['node_id'],
+               Node.fields['hostname'])]
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, slice_id_or_name, node_id_or_hostname_list):
+        # Get slice information
+        slices = Slices(self.api, [slice_id_or_name])
+        if not slices:
+            raise PLCInvalidArgument, "No such slice"
+        slice = slices[0]
+
+        if 'admin' not in self.caller['roles']:
+            if self.caller['person_id'] in slice['person_ids']:
+                pass
+            elif 'pi' not in self.caller['roles']:
+                raise PLCPermissionDenied, "Not a member of the specified slice"
+            elif slice['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Specified slice not associated with any of your sites"
+       
+       # Remove slice from all nodes found
+
+       # Get specified nodes
+        nodes = Nodes(self.api, node_id_or_hostname_list)
+       for node in nodes:
+           if slice['peer_id'] is not None and node['peer_id'] is not None:
+               raise PLCPermissionDenied, "Not allowed to remove peer slice from peer node"
+            if slice['slice_id'] in node['slice_ids']:
+                slice.remove_node(node, commit = False)
+
+        slice.sync()
+       
+       self.event_objects = {'Node': [node['node_id'] for node in nodes],
+                             'Slice': [slice['slice_id']]}      
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteSliceFromNodesWhitelist.py b/trunk/PLC/Methods/DeleteSliceFromNodesWhitelist.py
new file mode 100644 (file)
index 0000000..8899d88
--- /dev/null
@@ -0,0 +1,54 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.Slices import Slice, Slices
+from PLC.Auth import Auth
+
+class DeleteSliceFromNodesWhitelist(Method):
+    """
+    Deletes the specified slice from the whitelist on the specified nodes. Nodes may be
+    either local or foreign nodes.
+
+    If the slice is already associated with a node, no errors are
+    returned.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(Slice.fields['slice_id'],
+              Slice.fields['name']),
+       [Mixed(Node.fields['node_id'],
+               Node.fields['hostname'])]
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, slice_id_or_name, node_id_or_hostname_list):
+        # Get slice information
+        slices = Slices(self.api, [slice_id_or_name])
+        if not slices:
+            raise PLCInvalidArgument, "No such slice"
+        slice = slices[0]
+
+        if slice['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local slice"
+
+        # Get specified nodes, add them to the slice         
+        nodes = Nodes(self.api, node_id_or_hostname_list)
+       for node in nodes:
+            if node['peer_id'] is not None:
+                raise PLCInvalidArgument, "%s not a local node" % node['hostname']
+           if slice['slice_id'] in node['slice_ids_whitelist']:
+                slice.delete_from_node_whitelist(node, commit = False)
+
+        slice.sync()
+
+       self.event_objects = {'Node': [node['node_id'] for node in nodes],
+                             'Slice': [slice['slice_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/DeleteSliceInstantiation.py b/trunk/PLC/Methods/DeleteSliceInstantiation.py
new file mode 100644 (file)
index 0000000..5098a9d
--- /dev/null
@@ -0,0 +1,34 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.SliceInstantiations import SliceInstantiation, SliceInstantiations
+from PLC.Auth import Auth
+
+class DeleteSliceInstantiation(Method):
+    """
+    Deletes a slice instantiation state.
+
+    WARNING: This will cause the deletion of all slices of this instantiation.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        SliceInstantiation.fields['instantiation']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+
+    def call(self, auth, instantiation):
+        slice_instantiations = SliceInstantiations(self.api, [instantiation])
+        if not slice_instantiations:
+            raise PLCInvalidArgument, "No such slice instantiation state"
+        slice_instantiation = slice_instantiations[0]
+
+        slice_instantiation.delete()
+
+        return 1
diff --git a/trunk/PLC/Methods/GenerateNodeConfFile.py b/trunk/PLC/Methods/GenerateNodeConfFile.py
new file mode 100644 (file)
index 0000000..0b5cf8e
--- /dev/null
@@ -0,0 +1,107 @@
+import random
+import base64
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+from PLC.Auth import Auth
+
+class GenerateNodeConfFile(Method):
+    """
+    Creates a new node configuration file if all network settings are
+    present. This function will generate a new node key for the
+    specified node, effectively invalidating any old configuration
+    files.
+
+    Non-admins can only generate files for nodes at their sites.
+
+    Returns the contents of the file if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech']
+
+    accepts = [
+        Auth(),
+        Mixed(Node.fields['node_id'],
+              Node.fields['hostname']),
+       Parameter(bool, "True if you want to regenerate node key")
+        ]
+
+    returns = Parameter(str, "Node configuration file")
+
+    def call(self, auth, node_id_or_hostname, regenerate_node_key = True):
+        # Get node information
+        nodes = Nodes(self.api, [node_id_or_hostname])
+        if not nodes:
+            raise PLCInvalidArgument, "No such node"
+        node = nodes[0]
+
+        if node['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local node"
+
+        # If we are not an admin, make sure that the caller is a
+        # member of the site at which the node is located.
+        if 'admin' not in self.caller['roles']:
+            if node['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to generate a configuration file for that node"
+
+       # Get node networks for this node
+        primary = None
+        nodenetworks = NodeNetworks(self.api, node['nodenetwork_ids'])
+        for nodenetwork in nodenetworks:
+            if nodenetwork['is_primary']:
+                primary = nodenetwork
+                break
+        if primary is None:
+            raise PLCInvalidArgument, "No primary network configured"
+
+        # Split hostname into host and domain parts
+        parts = node['hostname'].split(".", 1)
+        if len(parts) < 2:
+            raise PLCInvalidArgument, "Node hostname is invalid"
+        host = parts[0]
+        domain = parts[1]
+
+       if regenerate_node_key:
+            # Generate 32 random bytes
+            bytes = random.sample(xrange(0, 256), 32)
+            # Base64 encode their string representation
+            node['key'] = base64.b64encode("".join(map(chr, bytes)))
+            # XXX Boot Manager cannot handle = in the key
+            node['key'] = node['key'].replace("=", "")
+            # Save it
+            node.sync()
+
+        # Generate node configuration file suitable for BootCD
+        file = ""
+
+        file += 'NODE_ID="%d"\n' % node['node_id']
+        file += 'NODE_KEY="%s"\n' % node['key']
+
+        if primary['mac']:
+            file += 'NET_DEVICE="%s"\n' % primary['mac'].lower()
+
+        file += 'IP_METHOD="%s"\n' % primary['method']
+
+        if primary['method'] == 'static':
+            file += 'IP_ADDRESS="%s"\n' % primary['ip']
+            file += 'IP_GATEWAY="%s"\n' % primary['gateway']
+            file += 'IP_NETMASK="%s"\n' % primary['netmask']
+            file += 'IP_NETADDR="%s"\n' % primary['network']
+            file += 'IP_BROADCASTADDR="%s"\n' % primary['broadcast']
+            file += 'IP_DNS1="%s"\n' % primary['dns1']
+            file += 'IP_DNS2="%s"\n' % (primary['dns2'] or "")
+
+        file += 'HOST_NAME="%s"\n' % host
+        file += 'DOMAIN_NAME="%s"\n' % domain
+
+        for nodenetwork in nodenetworks:
+            if nodenetwork['method'] == 'ipmi':
+                file += 'IPMI_ADDRESS="%s"\n' % nodenetwork['ip']
+                if nodenetwork['mac']:
+                    file += 'IPMI_MAC="%s"\n' % nodenetwork['mac'].lower()
+                break
+
+        return file
diff --git a/trunk/PLC/Methods/GetAddressTypes.py b/trunk/PLC/Methods/GetAddressTypes.py
new file mode 100644 (file)
index 0000000..d10be73
--- /dev/null
@@ -0,0 +1,32 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.AddressTypes import AddressType, AddressTypes
+from PLC.Auth import Auth
+
+class GetAddressTypes(Method):
+    """
+    Returns an array of structs containing details about address
+    types. If address_type_filter is specified and is an array of
+    address type identifiers, or a struct of address type attributes,
+    only address types matching the filter will be returned. If
+    return_fields is specified, only the specified details will be
+    returned.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+
+    accepts = [
+        Auth(),
+        Mixed([Mixed(AddressType.fields['address_type_id'],
+                     AddressType.fields['name'])],
+              Filter(AddressType.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [AddressType.fields]
+
+
+    def call(self, auth, address_type_filter = None, return_fields = None):
+        return AddressTypes(self.api, address_type_filter, return_fields)
diff --git a/trunk/PLC/Methods/GetAddresses.py b/trunk/PLC/Methods/GetAddresses.py
new file mode 100644 (file)
index 0000000..b299295
--- /dev/null
@@ -0,0 +1,30 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Addresses import Address, Addresses
+from PLC.Auth import Auth
+
+class GetAddresses(Method):
+    """
+    Returns an array of structs containing details about addresses. If
+    address_filter is specified and is an array of address
+    identifiers, or a struct of address attributes, only addresses
+    matching the filter will be returned. If return_fields is
+    specified, only the specified details will be returned.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+
+    accepts = [
+        Auth(),
+        Mixed([Address.fields['address_id']],
+              Filter(Address.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [Address.fields]
+    
+
+    def call(self, auth, address_filter = None, return_fields = None):
+        return Addresses(self.api, address_filter, return_fields)
diff --git a/trunk/PLC/Methods/GetBootMedium.py b/trunk/PLC/Methods/GetBootMedium.py
new file mode 100644 (file)
index 0000000..5daac9b
--- /dev/null
@@ -0,0 +1,400 @@
+import random
+import base64
+import os
+import os.path
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+
+from PLC.Nodes import Node, Nodes
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+from PLC.NodeNetworkSettings import NodeNetworkSetting, NodeNetworkSettings
+
+#
+# xxx todo
+# Thierry on june 5 2007
+# 
+# it turns out that having either apache (when invoked through xmlrpc)
+# or root (when running plcsh directly) run this piece of code is
+# problematic. In fact although we try to create intermediate dirs
+# with mode 777, what happens is that root's umask in the plc chroot
+# jail is set to 0022.
+# 
+# the bottom line is, depending on who (apache or root) runs this for
+# the first time, we can access denied issued (when root comes first)
+# so probably we'd better implement a scheme where files are stored
+# directly under /var/tmp or something
+# 
+# in addition the sequels of a former run (e.g. with a non-empty
+# filename) can prevent subsequent runs if the file is not properly
+# cleaned up after use, which is generally the case if someone invokes
+# this through plcsh and does not clean up
+# so maybe a dedicated cleanup method could be useful just in case
+# 
+
+# could not define this in the class..
+boot_medium_actions = [ 'node-preview',
+                       'node-floppy',
+                       'node-iso',
+                       'node-usb',
+                       'generic-iso',
+                       'generic-usb',
+                       ]
+
+class GetBootMedium(Method):
+    """
+    This method is a redesign based on former, supposedly dedicated, 
+    AdmGenerateNodeConfFile
+
+    As compared with its ancestor, this method provides a much more detailed
+    detailed interface, that allows to
+    (*) either just preview the node config file (in which case 
+        the node key is NOT recomputed, and NOT provided in the output
+    (*) or regenerate the node config file for storage on a floppy 
+        that is, exactly what the ancestor method used todo, 
+        including renewing the node's key
+    (*) or regenerate the config file and bundle it inside an ISO or USB image
+    (*) or just provide the generic ISO or USB boot images 
+        in which case of course the node_id_or_hostname parameter is not used
+
+    action is expected among the following string constants
+    (*) node-preview
+    (*) node-floppy
+    (*) node-iso
+    (*) node-usb
+    (*) generic-iso
+    (*) generic-usb
+
+    Apart for the preview mode, this method generates a new node key for the
+    specified node, effectively invalidating any old boot medium.
+
+    Non-admins can only generate files for nodes at their sites.
+
+    In addition, two return mechanisms are supported.
+    (*) The default behaviour is that the file's content is returned as a 
+        base64-encoded string. This is how the ancestor method used to work.
+       To use this method, pass an empty string as the file parameter.
+
+    (*) Or, for efficiency -- this makes sense only when the API is used 
+        by the web pages that run on the same host -- the caller may provide 
+        a filename, in which case the resulting file is stored in that location instead. 
+       The filename argument can use the following markers, that are expanded 
+       within the method
+       - %d : default root dir (some builtin dedicated area under /var/tmp/)
+              Using this is recommended, and enforced for non-admin users
+        - %n : the node's name when this makes sense, or a mktemp-like name when 
+               generic media is requested
+       - %s : a file suffix appropriate in the context (.txt, .iso or the like)
+       - %v : the bootcd version string (e.g. 4.0)
+       - %p : the PLC name
+        With the file-based return mechanism, the method returns the full pathname 
+       of the result file; it is the caller's responsability to remove 
+       this file after use.
+
+       Security:
+       When the user's role is not admin, the provided directory *must* be under
+       the %d area
+
+       Housekeeping: 
+       Whenever needed, the method stores intermediate files in a
+       private area, typically not located under the web server's
+       accessible area, and are cleaned up by the method.
+
+    """
+
+    roles = ['admin', 'pi', 'tech']
+
+    accepts = [
+        Auth(),
+        Mixed(Node.fields['node_id'],
+              Node.fields['hostname']),
+       Parameter (str, "Action mode, expected in " + "|".join(boot_medium_actions)),
+       Parameter (str, "Empty string for verbatim result, resulting file full path otherwise"),
+        ]
+
+    returns = Parameter(str, "Node boot medium, either inlined, or filename, depending to the filename parameter")
+
+    BOOTCDDIR = "/usr/share/bootcd/"
+    BOOTCUSTOM = "/usr/share/bootcd/bootcustom.sh"
+    GENERICDIR = "/var/www/html/download/"
+    NODEDIR = "/var/tmp/bootmedium/results"
+    WORKDIR = "/var/tmp/bootmedium/work"
+    DEBUG = False
+    # uncomment this to preserve temporary area and bootcustom logs
+    #DEBUG = True
+
+    ### returns (host, domain) :
+    # 'host' : host part of the hostname
+    # 'domain' : domain part of the hostname
+    def split_hostname (self, node):
+        # Split hostname into host and domain parts
+        parts = node['hostname'].split(".", 1)
+        if len(parts) < 2:
+            raise PLCInvalidArgument, "Node hostname %s is invalid"%node['hostname']
+       return parts
+       
+    # plnode.txt content
+    def floppy_contents (self, node, renew_key):
+
+        if node['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local node"
+
+        # If we are not an admin, make sure that the caller is a
+        # member of the site at which the node is located.
+        if 'admin' not in self.caller['roles']:
+            if node['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to generate a configuration file for %s"%node['hostname']
+
+       # Get node networks for this node
+        primary = None
+        nodenetworks = NodeNetworks(self.api, node['nodenetwork_ids'])
+        for nodenetwork in nodenetworks:
+            if nodenetwork['is_primary']:
+                primary = nodenetwork
+                break
+        if primary is None:
+            raise PLCInvalidArgument, "No primary network configured on %s"%node['hostname']
+
+       ( host, domain ) = self.split_hostname (node)
+
+       if renew_key:
+           # Generate 32 random bytes
+           bytes = random.sample(xrange(0, 256), 32)
+           # Base64 encode their string representation
+           node['key'] = base64.b64encode("".join(map(chr, bytes)))
+           # XXX Boot Manager cannot handle = in the key
+           node['key'] = node['key'].replace("=", "")
+           # Save it
+           node.sync()
+
+        # Generate node configuration file suitable for BootCD
+        file = ""
+
+       if renew_key:
+           file += 'NODE_ID="%d"\n' % node['node_id']
+           file += 'NODE_KEY="%s"\n' % node['key']
+
+        if primary['mac']:
+            file += 'NET_DEVICE="%s"\n' % primary['mac'].lower()
+
+        file += 'IP_METHOD="%s"\n' % primary['method']
+
+        if primary['method'] == 'static':
+            file += 'IP_ADDRESS="%s"\n' % primary['ip']
+            file += 'IP_GATEWAY="%s"\n' % primary['gateway']
+            file += 'IP_NETMASK="%s"\n' % primary['netmask']
+            file += 'IP_NETADDR="%s"\n' % primary['network']
+            file += 'IP_BROADCASTADDR="%s"\n' % primary['broadcast']
+            file += 'IP_DNS1="%s"\n' % primary['dns1']
+            file += 'IP_DNS2="%s"\n' % (primary['dns2'] or "")
+
+        file += 'HOST_NAME="%s"\n' % host
+        file += 'DOMAIN_NAME="%s"\n' % domain
+
+       # define various nodenetwork settings attached to the primary nodenetwork
+       settings = NodeNetworkSettings (self.api, {'nodenetwork_id':nodenetwork['nodenetwork_id']})
+
+       categories = set()
+       for setting in settings:
+           if setting['category'] is not None:
+               categories.add(setting['category'])
+       
+       for category in categories:
+           category_settings = NodeNetworkSettings(self.api,{'nodenetwork_id':nodenetwork['nodenetwork_id'],
+                                                             'category':category})
+           if category_settings:
+               file += '### Category : %s\n'%category
+               for setting in category_settings:
+                   file += '%s_%s="%s"\n'%(category.upper(),setting['name'].upper(),setting['value'])
+
+        for nodenetwork in nodenetworks:
+            if nodenetwork['method'] == 'ipmi':
+                file += 'IPMI_ADDRESS="%s"\n' % nodenetwork['ip']
+                if nodenetwork['mac']:
+                    file += 'IPMI_MAC="%s"\n' % nodenetwork['mac'].lower()
+                break
+
+       return file
+
+    def bootcd_version (self):
+       try:
+           f = open (self.BOOTCDDIR + "/build/version.txt")
+           version=f.readline().strip()
+       finally:
+           f.close()
+       return version
+
+    def cleandir (self,tempdir):
+       if not self.DEBUG:
+           os.system("rm -rf %s"%tempdir)
+
+    def call(self, auth, node_id_or_hostname, action, filename):
+
+       ### check action
+       if action not in boot_medium_actions:
+           raise PLCInvalidArgument, "Unknown action %s"%action
+
+       ### compute file suffix 
+       if action.find("-iso") >= 0 :
+           suffix=".iso"
+       elif action.find("-usb") >= 0:
+           suffix=".usb"
+       else:
+           suffix=".txt"
+
+       ### compute a 8 bytes random number
+       tempbytes = random.sample (xrange(0,256), 8);
+       def hexa2 (c):
+           return chr((c>>4)+65) + chr ((c&16)+65)
+       temp = "".join(map(hexa2,tempbytes))
+
+       ### check node if needed
+       if action.find("node-") == 0:
+           nodes = Nodes(self.api, [node_id_or_hostname])
+           if not nodes:
+               raise PLCInvalidArgument, "No such node %r"%node_id_or_hostname
+           node = nodes[0]
+           nodename = node['hostname']
+           
+       else:
+           node = None
+           nodename = temp
+           
+       ### handle filename
+       filename = filename.replace ("%d",self.NODEDIR)
+       filename = filename.replace ("%n",nodename)
+       filename = filename.replace ("%s",suffix)
+       filename = filename.replace ("%p",self.api.config.PLC_NAME)
+       # only if filename contains "%v", bootcd is maybe not avail ?
+       if filename.find("%v") >=0:
+           filename = filename.replace ("%v",self.bootcd_version())
+
+       ### Check filename location
+       if filename != '':
+           if 'admin' not in self.caller['roles']:
+               if ( filename.index(self.NODEDIR) != 0):
+                   raise PLCInvalidArgument, "File %s not under %s"%(filename,self.NODEDIR)
+
+           ### output should not exist (concurrent runs ..)
+           if os.path.exists(filename):
+               raise PLCInvalidArgument, "Resulting file %s already exists"%filename
+
+           ### we can now safely create the file, 
+           ### either we are admin or under a controlled location
+           if not os.path.exists(os.path.dirname(filename)):
+               try:
+                   os.makedirs (os.path.dirname(filename),0777)
+               except:
+                   raise PLCPermissionDenied, "Could not create dir %s"%os.path.dirname(filename)
+
+       
+       ### generic media
+       if action == 'generic-iso' or action == 'generic-usb':
+           # this raises an exception if bootcd is missing
+           version = self.bootcd_version()
+           generic_name = "%s-BootCD-%s%s"%(self.api.config.PLC_NAME,
+                                            version,
+                                            suffix)
+           generic_path = "%s/%s" % (self.GENERICDIR,generic_name)
+
+           if filename:
+               ret=os.system ("cp %s %s"%(generic_path,filename))
+               if ret==0:
+                   return filename
+               else:
+                   raise PLCPermissionDenied, "Could not copy %s into"%(generic_path,filename)
+           else:
+               ### return the generic medium content as-is, just base64 encoded
+               return base64.b64encode(file(generic_path).read())
+
+       ### floppy preview
+       if action == 'node-preview':
+           floppy = self.floppy_contents (node,False)
+           if filename:
+               try:
+                   file(filename,'w').write(floppy)
+               except:
+                   raise PLCPermissionDenied, "Could not write into %s"%filename
+               return filename
+           else:
+               return floppy
+
+       if action == 'node-floppy':
+           floppy = self.floppy_contents (node,True)
+           if filename:
+               try:
+                   file(filename,'w').write(floppy)
+               except:
+                   raise PLCPermissionDenied, "Could not write into %s"%filename
+               return filename
+           else:
+               return floppy
+
+       ### we're left with node-iso and node-usb
+       if action == 'node-iso' or action == 'node-usb':
+
+           ### check we've got required material
+           version = self.bootcd_version()
+           generic_name = "%s-BootCD-%s%s"%(self.api.config.PLC_NAME,
+                                            version,
+                                            suffix)
+           generic_path = "%s/%s" % (self.GENERICDIR,generic_name)
+           if not os.path.isfile(generic_path):
+               raise PLCAPIError, "Cannot locate generic medium %s"%generic_path
+           
+           if not os.path.isfile(self.BOOTCUSTOM):
+               raise PLCAPIError, "Cannot locate bootcustom script %s"%self.BOOTCUSTOM
+
+           # need a temporary area
+           tempdir = "%s/%s"%(self.WORKDIR,nodename)
+           if not os.path.isdir(tempdir):
+               try:
+                   os.makedirs(tempdir,0777)
+               except:
+                   raise PLCPermissionDenied, "Could not create dir %s"%tempdir
+           
+           try:
+               # generate floppy config
+               floppy = self.floppy_contents(node,True)
+               # store it
+               node_floppy = "%s/%s"%(tempdir,nodename)
+               try:
+                   file(node_floppy,"w").write(floppy)
+               except:
+                   raise PLCPermissionDenied, "Could not write into %s"%node_floppy
+
+               # invoke bootcustom
+               bootcustom_command = 'sudo %s -C "%s" "%s" "%s"'%(self.BOOTCUSTOM,
+                                                                 tempdir,
+                                                                 generic_path,
+                                                                 node_floppy)
+               if self.DEBUG:
+                   print 'bootcustom command:',bootcustom_command
+               ret=os.system(bootcustom_command)
+               if ret != 0:
+                   raise PLCPermissionDenied,"bootcustom.sh failed to create node-specific medium"
+
+               node_image = "%s/%s%s"%(tempdir,nodename,suffix)
+               if not os.path.isfile (node_image):
+                   raise PLCAPIError,"Unexpected location of bootcustom output - %s"%node_image
+           
+               # cache result
+               if filename:
+                   ret=os.system("mv %s %s"%(node_image,filename))
+                   if ret != 0:
+                       raise PLCAPIError, "Could not move node image %s into %s"%(node_image,filename)
+                   self.cleandir(tempdir)
+                   return filename
+               else:
+                   result = file(node_image).read()
+                   self.cleandir(tempdir)
+                   return base64.b64encode(result)
+           except:
+               self.cleandir(tempdir)
+               raise
+               
+       # we're done here, or we missed something
+       raise PLCAPIError,'Unhandled action %s'%action
+
diff --git a/trunk/PLC/Methods/GetBootStates.py b/trunk/PLC/Methods/GetBootStates.py
new file mode 100644 (file)
index 0000000..4cd31be
--- /dev/null
@@ -0,0 +1,22 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.BootStates import BootState, BootStates
+from PLC.Auth import Auth
+
+class GetBootStates(Method):
+    """
+    Returns an array of all valid node boot states.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+
+    accepts = [
+        Auth()
+        ]
+
+    returns = [BootState.fields['boot_state']]
+    
+
+    def call(self, auth):
+        return [boot_state['boot_state'] for boot_state in BootStates(self.api)]
diff --git a/trunk/PLC/Methods/GetConfFiles.py b/trunk/PLC/Methods/GetConfFiles.py
new file mode 100644 (file)
index 0000000..89d5250
--- /dev/null
@@ -0,0 +1,31 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.ConfFiles import ConfFile, ConfFiles
+from PLC.Auth import Auth
+
+class GetConfFiles(Method):
+    """
+    Returns an array of structs containing details about configuration
+    files. If conf_file_filter is specified and is an array of
+    configuration file identifiers, or a struct of configuration file
+    attributes, only configuration files matching the filter will be
+    returned. If return_fields is specified, only the specified
+    details will be returned.
+    """
+
+    roles = ['admin', 'node']
+
+    accepts = [
+        Auth(),
+        Mixed([ConfFile.fields['conf_file_id']],
+              Filter(ConfFile.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [ConfFile.fields]
+
+
+    def call(self, auth, conf_file_filter = None, return_fields = None):
+        return ConfFiles(self.api, conf_file_filter, return_fields)
diff --git a/trunk/PLC/Methods/GetEventObjects.py b/trunk/PLC/Methods/GetEventObjects.py
new file mode 100644 (file)
index 0000000..02bcd68
--- /dev/null
@@ -0,0 +1,29 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.EventObjects import EventObject, EventObjects
+from PLC.Auth import Auth
+
+class GetEventObjects(Method):
+    """
+    Returns an array of structs containing details about events and
+    faults. If event_filter is specified and is an array of event
+    identifiers, or a struct of event attributes, only events matching
+    the filter will be returned. If return_fields is specified, only the
+    specified details will be returned.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(Filter(EventObject.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [EventObject.fields]
+
+    def call(self, auth, event_filter = None, return_fields = None):
+        return EventObjects(self.api, event_filter, return_fields)
+
diff --git a/trunk/PLC/Methods/GetEvents.py b/trunk/PLC/Methods/GetEvents.py
new file mode 100644 (file)
index 0000000..2bc989c
--- /dev/null
@@ -0,0 +1,30 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Events import Event, Events
+from PLC.Auth import Auth
+
+class GetEvents(Method):
+    """
+    Returns an array of structs containing details about events and
+    faults. If event_filter is specified and is an array of event
+    identifiers, or a struct of event attributes, only events matching
+    the filter will be returned. If return_fields is specified, only the
+    specified details will be returned.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed([Event.fields['event_id']],
+              Filter(Event.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [Event.fields]
+
+    def call(self, auth, event_filter = None, return_fields = None):
+        return Events(self.api, event_filter, return_fields)
+
diff --git a/trunk/PLC/Methods/GetInitScripts.py b/trunk/PLC/Methods/GetInitScripts.py
new file mode 100644 (file)
index 0000000..d8bb0f5
--- /dev/null
@@ -0,0 +1,31 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.InitScripts import InitScript, InitScripts
+from PLC.Auth import Auth
+
+class GetInitScripts(Method):
+    """
+    Returns an array of structs containing details about initscripts. 
+    If initscript_filter is specified and is an array of initscript 
+    identifiers, or a struct of initscript attributes, only initscripts 
+    matching the filter will be returned. If return_fields is specified, 
+    only the specified details will be returned.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+
+    accepts = [
+        Auth(),
+        Mixed([Mixed(InitScript.fields['initscript_id'],
+                    InitScript.fields['name'])],
+              Filter(InitScript.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [InitScript.fields]
+
+
+    def call(self, auth, initscript_filter = None, return_fields = None):
+        return InitScripts(self.api, initscript_filter, return_fields)
diff --git a/trunk/PLC/Methods/GetKeyTypes.py b/trunk/PLC/Methods/GetKeyTypes.py
new file mode 100644 (file)
index 0000000..32bb658
--- /dev/null
@@ -0,0 +1,22 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.KeyTypes import KeyType, KeyTypes
+from PLC.Auth import Auth
+
+class GetKeyTypes(Method):
+    """
+    Returns an array of all valid key types.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+
+    accepts = [
+        Auth()
+        ]
+
+    returns = [KeyType.fields['key_type']]
+
+
+    def call(self, auth):
+        return [key_type['key_type'] for key_type in KeyTypes(self.api)]
diff --git a/trunk/PLC/Methods/GetKeys.py b/trunk/PLC/Methods/GetKeys.py
new file mode 100644 (file)
index 0000000..2d7550c
--- /dev/null
@@ -0,0 +1,41 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Persons import Person, Persons
+from PLC.Keys import Key, Keys
+from PLC.Auth import Auth
+
+class GetKeys(Method):
+    """
+    Returns an array of structs containing details about keys. If
+    key_filter is specified and is an array of key identifiers, or a
+    struct of key attributes, only keys matching the filter will be
+    returned. If return_fields is specified, only the specified
+    details will be returned.
+
+    Admin may query all keys. Non-admins may only query their own
+    keys.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+
+    accepts = [
+        Auth(),
+        Mixed([Mixed(Key.fields['key_id'])],
+              Filter(Key.fields)),
+        Parameter([str], "List of fields to return", nullok = True)        
+        ]
+
+    returns = [Key.fields]
+
+
+    def call(self, auth, key_filter = None, return_fields = None):
+       keys = Keys(self.api, key_filter, return_fields)
+
+       # If we are not admin, make sure to only return our own keys       
+        if isinstance(self.caller, Person) and \
+           'admin' not in self.caller['roles']:
+            keys = filter(lambda key: key['key_id'] in self.caller['key_ids'], keys)
+
+        return keys
diff --git a/trunk/PLC/Methods/GetMessages.py b/trunk/PLC/Methods/GetMessages.py
new file mode 100644 (file)
index 0000000..b0eb44e
--- /dev/null
@@ -0,0 +1,31 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Messages import Message, Messages
+from PLC.Auth import Auth
+
+class GetMessages(Method):
+    """
+    Returns an array of structs containing details about message
+    templates. If message template_filter is specified and is an array
+    of message template identifiers, or a struct of message template
+    attributes, only message templates matching the filter will be
+    returned. If return_fields is specified, only the specified
+    details will be returned.
+    """
+
+    roles = ['admin', 'node']
+
+    accepts = [
+        Auth(),
+        Mixed([Message.fields['message_id']],
+              Filter(Message.fields)),
+        Parameter([str], "List of fields to return", nullok = True),
+        ]
+
+    returns = [Message.fields]
+
+
+    def call(self, auth, message_filter = None, return_fields = None):
+        return Messages(self.api, message_filter, return_fields)
diff --git a/trunk/PLC/Methods/GetNetworkMethods.py b/trunk/PLC/Methods/GetNetworkMethods.py
new file mode 100644 (file)
index 0000000..cee914a
--- /dev/null
@@ -0,0 +1,22 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.NetworkMethods import NetworkMethod, NetworkMethods
+from PLC.Auth import Auth
+
+class GetNetworkMethods(Method):
+    """
+    Returns a list of all valid network methods.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+
+    accepts = [
+        Auth()
+        ]
+
+    returns = [NetworkMethod.fields['method']]
+
+
+    def call(self, auth):
+        return [network_method['method'] for network_method in NetworkMethods(self.api)]
diff --git a/trunk/PLC/Methods/GetNetworkTypes.py b/trunk/PLC/Methods/GetNetworkTypes.py
new file mode 100644 (file)
index 0000000..dbddd9f
--- /dev/null
@@ -0,0 +1,22 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.NetworkTypes import NetworkType, NetworkTypes
+from PLC.Auth import Auth
+
+class GetNetworkTypes(Method):
+    """
+    Returns a list of all valid network types.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+
+    accepts = [
+        Auth()
+        ]
+
+    returns = [NetworkType.fields['type']]
+
+
+    def call(self, auth):
+        return [network_type['type'] for network_type in NetworkTypes(self.api)]
diff --git a/trunk/PLC/Methods/GetNodeGroups.py b/trunk/PLC/Methods/GetNodeGroups.py
new file mode 100644 (file)
index 0000000..f4927ef
--- /dev/null
@@ -0,0 +1,30 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Auth import Auth
+from PLC.NodeGroups import NodeGroup, NodeGroups
+
+class GetNodeGroups(Method):
+    """
+    Returns an array of structs containing details about node groups.
+    If nodegroup_filter is specified and is an array of node group
+    identifiers or names, or a struct of node group attributes, only
+    node groups matching the filter will be returned. If return_fields
+    is specified, only the specified details will be returned.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node', 'anonymous']
+
+    accepts = [
+        Auth(),
+        Mixed([Mixed(NodeGroup.fields['nodegroup_id'],
+                     NodeGroup.fields['name'])],
+              Filter(NodeGroup.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [NodeGroup.fields]
+  
+    def call(self, auth, nodegroup_filter = None, return_fields = None):
+       return NodeGroups(self.api, nodegroup_filter, return_fields)
diff --git a/trunk/PLC/Methods/GetNodeNetworkSettingTypes.py b/trunk/PLC/Methods/GetNodeNetworkSettingTypes.py
new file mode 100644 (file)
index 0000000..10d7b39
--- /dev/null
@@ -0,0 +1,33 @@
+#
+# Thierry Parmentelat - INRIA
+#
+# $Revision$
+#
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Auth import Auth
+from PLC.NodeNetworkSettingTypes import NodeNetworkSettingType, NodeNetworkSettingTypes
+
+class GetNodeNetworkSettingTypes(Method):
+    """
+    Returns an array of structs containing details about
+    nodenetwork setting types.
+
+    The usual filtering scheme applies on this method.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+
+    accepts = [
+        Auth(),
+        Mixed([Mixed(NodeNetworkSettingType.fields['nodenetwork_setting_type_id'],
+                     NodeNetworkSettingType.fields['name'])],
+              Filter(NodeNetworkSettingType.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [NodeNetworkSettingType.fields]
+
+    def call(self, auth, nodenetwork_setting_type_filter = None, return_fields = None):
+        return NodeNetworkSettingTypes(self.api, nodenetwork_setting_type_filter, return_fields)
diff --git a/trunk/PLC/Methods/GetNodeNetworkSettings.py b/trunk/PLC/Methods/GetNodeNetworkSettings.py
new file mode 100644 (file)
index 0000000..42359ce
--- /dev/null
@@ -0,0 +1,45 @@
+#
+# Thierry Parmentelat - INRIA
+#
+# $Revision$
+#
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+
+from PLC.NodeNetworkSettings import NodeNetworkSetting, NodeNetworkSettings
+from PLC.Sites import Site, Sites
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+
+class GetNodeNetworkSettings(Method):
+    """
+    Returns an array of structs containing details about
+    nodenetworks and related settings.
+
+    If nodenetwork_setting_filter is specified and is an array of
+    nodenetwork setting identifiers, only nodenetwork settings matching
+    the filter will be returned. If return_fields is specified, only
+    the specified details will be returned.
+    """
+
+    roles = ['admin', 'pi', 'user', 'node']
+
+    accepts = [
+        Auth(),
+        Mixed([NodeNetworkSetting.fields['nodenetwork_setting_id']],
+              Parameter(int,"Nodenetwork setting id"),
+              Filter(NodeNetworkSetting.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [NodeNetworkSetting.fields]
+    
+
+    def call(self, auth, nodenetwork_setting_filter = None, return_fields = None):
+
+        nodenetwork_settings = NodeNetworkSettings(self.api, nodenetwork_setting_filter, return_fields)
+
+        return nodenetwork_settings
diff --git a/trunk/PLC/Methods/GetNodeNetworks.py b/trunk/PLC/Methods/GetNodeNetworks.py
new file mode 100644 (file)
index 0000000..150f87d
--- /dev/null
@@ -0,0 +1,32 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+from PLC.Auth import Auth
+
+class GetNodeNetworks(Method):
+    """
+    Returns an array of structs containing details about node network
+    interfacess. If nodenetworks_filter is specified and is an array
+    of node network identifiers, or a struct of node network
+    fields and values, only node network interfaces matching the filter
+    will be returned.
+
+    If return_fields is given, only the specified details will be returned.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node', 'anonymous']
+
+    accepts = [
+        Auth(),
+        Mixed([NodeNetwork.fields['nodenetwork_id']],
+              Parameter (int, "nodenetwork id"),
+              Filter(NodeNetwork.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [NodeNetwork.fields]
+    
+    def call(self, auth, nodenetwork_filter = None, return_fields = None):
+        return NodeNetworks(self.api, nodenetwork_filter, return_fields)
diff --git a/trunk/PLC/Methods/GetNodes.py b/trunk/PLC/Methods/GetNodes.py
new file mode 100644 (file)
index 0000000..8e2931a
--- /dev/null
@@ -0,0 +1,79 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Nodes import Node, Nodes
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+
+class GetNodes(Method):
+    """
+    Returns an array of structs containing details about nodes. If
+    node_filter is specified and is an array of node identifiers or
+    hostnames, or a struct of node attributes, only nodes matching the
+    filter will be returned. If return_fields is specified, only the
+    specified details will be returned.
+
+    Some fields may only be viewed by admins.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node', 'anonymous']
+
+    accepts = [
+        Auth(),
+        Mixed([Mixed(Node.fields['node_id'],
+                     Node.fields['hostname'])],
+             Parameter(str,"hostname"),
+              Parameter(int,"node_id"),
+              Filter(Node.fields)),
+        Parameter([str], "List of fields to return", nullok = True),
+        ]
+
+    returns = [Node.fields]
+
+
+    def call(self, auth, node_filter = None, return_fields = None):
+        
+       # Must query at least slice_ids_whitelist
+       if return_fields is not None:
+           added_fields = set(['slice_ids_whitelist', 'site_id']).difference(return_fields)
+           return_fields += added_fields
+       else:
+           added_fields =[]    
+
+       # Get node information
+        nodes = Nodes(self.api, node_filter, return_fields)
+
+        # Remove admin only fields
+        if not isinstance(self.caller, Person) or \
+           'admin' not in self.caller['roles']:
+           slice_ids = set()
+           site_ids = set()
+           if self.caller:
+               slice_ids.update(self.caller['slice_ids'])
+               site_ids.update(self.caller['site_ids'])
+
+           # if node has whitelist, only return it if users is at
+           # the same site or user has a slice on the whitelist 
+            for node in nodes[:]:
+               if 'site_id' in node and \
+                  site_ids.intersection([node['site_id']]):
+                   continue    
+               if 'slice_ids_whitelist' in node and \
+                  node['slice_ids_whitelist'] and \
+                  not slice_ids.intersection(node['slice_ids_whitelist']):
+                   nodes.remove(node)
+
+           # remove remaining admin only fields
+            for node in nodes:    
+               for field in ['boot_nonce', 'key', 'session', 'root_person_ids']:
+                    if field in node:
+                        del node[field]
+       
+       # remove added fields if not specified
+       if added_fields:
+           for node in nodes:
+               for field in added_fields:
+                   del node[field]     
+
+        return nodes
diff --git a/trunk/PLC/Methods/GetPCUProtocolTypes.py b/trunk/PLC/Methods/GetPCUProtocolTypes.py
new file mode 100644 (file)
index 0000000..44f9380
--- /dev/null
@@ -0,0 +1,40 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.PCUProtocolTypes import PCUProtocolType, PCUProtocolTypes
+from PLC.Auth import Auth
+from PLC.Filter import Filter
+
+class GetPCUProtocolTypes(Method):
+    """
+    Returns an array of PCU Types.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+
+    accepts = [
+        Auth(),
+       Mixed([PCUProtocolType.fields['pcu_type_id']],
+               Filter(PCUProtocolType.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [PCUProtocolType.fields]
+    
+
+    def call(self, auth, protocol_type_filter = None, return_fields = None):
+
+       #Must query at least pcu_type_id
+       if return_fields is not None and 'pcu_protocol_type_id' not in return_fields:
+           return_fields.append('pcu_protocol_type_id')
+           added_fields = ['pcu_protocol_type_id']
+       else:
+           added_fields = []
+
+       protocol_types = PCUProtocolTypes(self.api, protocol_type_filter, return_fields)
+
+       for added_field in added_fields:
+           for protocol_type in protocol_types:
+               del protocol_type[added_field]
+               
+        return protocol_types 
diff --git a/trunk/PLC/Methods/GetPCUTypes.py b/trunk/PLC/Methods/GetPCUTypes.py
new file mode 100644 (file)
index 0000000..cf0d689
--- /dev/null
@@ -0,0 +1,48 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.PCUTypes import PCUType, PCUTypes
+from PLC.Auth import Auth
+from PLC.Filter import Filter
+
+class GetPCUTypes(Method):
+    """
+    Returns an array of PCU Types.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+
+    accepts = [
+        Auth(),
+       Mixed([PCUType.fields['pcu_type_id'],
+               PCUType.fields['model']],
+               Filter(PCUType.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [PCUType.fields]
+    
+
+    def call(self, auth, pcu_type_filter = None, return_fields = None):
+
+       #Must query at least pcu_type_id
+       if return_fields is not None:
+           added_fields = []
+           if 'pcu_type_id' not in return_fields:
+               return_fields.append('pcu_type_id')
+               added_fields.append('pcu_type_id')
+           if 'pcu_protocol_types' in return_fields and \
+              'pcu_protocol_type_ids' not in return_fields:
+               return_fields.append('pcu_protocol_type_ids')
+               added_fields.append('pcu_protocol_type_ids') 
+       else:
+           added_fields = []
+
+       pcu_types = PCUTypes(self.api, pcu_type_filter, return_fields)
+
+       # remove added fields and protocol_types
+       for added_field in added_fields:
+           for pcu_type in pcu_types:
+               del pcu_type[added_field]
+               
+        return pcu_types 
diff --git a/trunk/PLC/Methods/GetPCUs.py b/trunk/PLC/Methods/GetPCUs.py
new file mode 100644 (file)
index 0000000..ee9ab4d
--- /dev/null
@@ -0,0 +1,73 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Sites import Site, Sites
+from PLC.Persons import Person, Persons
+from PLC.Nodes import Node, Nodes
+from PLC.PCUs import PCU, PCUs
+from PLC.Auth import Auth
+
+class GetPCUs(Method):
+    """
+    Returns an array of structs containing details about power control
+    units (PCUs). If pcu_filter is specified and is an array of PCU
+    identifiers, or a struct of PCU attributes, only PCUs matching the
+    filter will be returned. If return_fields is specified, only the
+    specified details will be returned.
+
+    Admin may query all PCUs. Non-admins may only query the PCUs at
+    their sites.
+    """
+
+    roles = ['admin', 'pi', 'tech', 'node']
+
+    accepts = [
+        Auth(),
+        Mixed([PCU.fields['pcu_id']],
+              Filter(PCU.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [PCU.fields]
+
+    def call(self, auth, pcu_filter = None, return_fields = None):
+       # If we are not admin
+        if not (isinstance(self.caller, Person) and 'admin' in self.caller['roles']):
+            # Return only the PCUs at our site
+            valid_pcu_ids = []
+
+            if isinstance(self.caller, Person):
+                site_ids = self.caller['site_ids']
+            elif isinstance(self.caller, Node):
+                site_ids = [self.caller['site_id']]
+
+            for site in Sites(self.api, site_ids):
+                valid_pcu_ids += site['pcu_ids']
+
+            if not valid_pcu_ids:
+                return []
+
+            if pcu_filter is None:
+                pcu_filter = valid_pcu_ids
+
+        # Must query at least slice_id (see below)
+        if return_fields is not None and 'pcu_id' not in return_fields:
+            return_fields.append('pcu_id')
+            added_fields = True
+        else:
+            added_fields = False
+
+        pcus = PCUs(self.api, pcu_filter, return_fields)
+
+        # Filter out PCUs that are not viewable
+        if not (isinstance(self.caller, Person) and 'admin' in self.caller['roles']):
+            pcus = filter(lambda pcu: pcu['pcu_id'] in valid_pcu_ids, pcus)
+
+        # Remove pcu_id if not specified
+        if added_fields:
+            for pcu in pcus:
+               if 'pcu_id' in pcu:
+                   del pcu['pcu_id']
+
+        return pcus
diff --git a/trunk/PLC/Methods/GetPeerData.py b/trunk/PLC/Methods/GetPeerData.py
new file mode 100644 (file)
index 0000000..113fe86
--- /dev/null
@@ -0,0 +1,87 @@
+#
+# Thierry Parmentelat - INRIA
+# 
+# $Id$
+
+import time
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+
+from PLC.Peers import Peer, Peers
+
+from PLC.Sites import Site, Sites
+from PLC.Keys import Key, Keys
+from PLC.Nodes import Node, Nodes
+from PLC.Persons import Person, Persons
+from PLC.Slices import Slice, Slices
+from PLC.SliceAttributes import SliceAttributes
+
+class GetPeerData(Method):
+    """
+    Returns lists of local objects that a peer should cache in its
+    database as foreign objects. Also returns the list of foreign
+    nodes in this database, for which the calling peer is
+    authoritative, to assist in synchronization of slivers.
+    
+    See the implementation of RefreshPeer for how this data is used.
+    """
+
+    roles = ['admin', 'peer']
+
+    accepts = [Auth()]
+
+    returns = {
+        'Sites': Parameter([dict], "List of local sites"),
+        'Keys': Parameter([dict], "List of local keys"),
+        'Nodes': Parameter([dict], "List of local nodes"),
+        'Persons': Parameter([dict], "List of local users"),
+        'Slices': Parameter([dict], "List of local slices"),
+        'db_time': Parameter(float, "(Debug) Database fetch time"),
+        }
+
+    def call (self, auth):
+        start = time.time()
+
+        # Filter out various secrets
+        node_fields = filter(lambda field: field not in \
+                             ['boot_nonce', 'key', 'session', 'root_person_ids'],
+                             Node.fields)
+        nodes = Nodes(self.api, {'peer_id': None}, node_fields);
+        # filter out whitelisted nodes
+        nodes = [ n for n in nodes if not n['slice_ids_whitelist']] 
+        
+
+        person_fields = filter(lambda field: field not in \
+                               ['password', 'verification_key', 'verification_expires'],
+                               Person.fields)
+
+        # XXX Optimize to return only those Persons, Keys, and Slices
+        # necessary for slice creation on the calling peer's nodes.
+
+       # filter out special person
+       persons = Persons(self.api, {'~email':[self.api.config.PLC_API_MAINTENANCE_USER,
+                                              self.api.config.PLC_ROOT_USER],
+                                    'peer_id': None}, person_fields)
+
+       # filter out system slices
+        system_slice_ids = SliceAttributes(self.api, {'name': 'system', 'value': '1'}).dict('slice_id')
+       slices = Slices(self.api, {'peer_id': None,
+                                  '~slice_id':system_slice_ids.keys()})
+       
+        result = {
+            'Sites': Sites(self.api, {'peer_id': None}),
+            'Keys': Keys(self.api, {'peer_id': None}),
+            'Nodes': nodes,
+            'Persons': persons,
+            'Slices': slices,
+            }
+
+        if isinstance(self.caller, Peer):
+            result['PeerNodes'] = Nodes(self.api, {'peer_id': self.caller['peer_id']})
+
+        result['db_time'] = time.time() - start
+
+        return result
diff --git a/trunk/PLC/Methods/GetPeerName.py b/trunk/PLC/Methods/GetPeerName.py
new file mode 100644 (file)
index 0000000..30fbd94
--- /dev/null
@@ -0,0 +1,19 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter
+from PLC.Auth import Auth
+
+from PLC.Peers import Peer, Peers
+
+class GetPeerName (Method):
+    """
+    Returns this peer's name, as defined in the config as PLC_NAME
+    """
+
+    roles = ['admin', 'peer', 'node']
+
+    accepts = [Auth()]
+
+    returns = Peer.fields['peername']
+
+    def call (self, auth):
+        return self.api.config.PLC_NAME
diff --git a/trunk/PLC/Methods/GetPeers.py b/trunk/PLC/Methods/GetPeers.py
new file mode 100644 (file)
index 0000000..e93fe36
--- /dev/null
@@ -0,0 +1,47 @@
+#
+# Thierry Parmentelat - INRIA
+# 
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Auth import Auth
+
+from PLC.Persons import Person
+from PLC.Peers import Peer, Peers
+
+class GetPeers (Method):
+    """
+    Returns an array of structs containing details about peers. If
+    person_filter is specified and is an array of peer identifiers or
+    peer names, or a struct of peer attributes, only peers matching
+    the filter will be returned. If return_fields is specified, only the
+    specified details will be returned.
+    """
+
+    roles = ['admin', 'node','pi','user']
+
+    accepts = [
+        Auth(),
+        Mixed([Mixed(Peer.fields['peer_id'],
+                     Peer.fields['peername'])],
+              Filter(Peer.fields)),
+        Parameter([str], "List of fields to return", nullok = True)        
+        ]
+
+    returns = [Peer.fields]
+
+    def call (self, auth, peer_filter = None, return_fields = None):
+        
+        peers = Peers(self.api, peer_filter, return_fields)
+
+        # Remove admin only fields
+        if not isinstance(self.caller, Person) or \
+                'admin' not in self.caller['roles']:
+            for peer in peers:    
+               for field in ['key', 'cacert']:
+                    if field in peer:
+                        del peer[field]
+
+        return peers
diff --git a/trunk/PLC/Methods/GetPersons.py b/trunk/PLC/Methods/GetPersons.py
new file mode 100644 (file)
index 0000000..5228933
--- /dev/null
@@ -0,0 +1,87 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Persons import Person, Persons
+from PLC.Sites import Site, Sites
+from PLC.Auth import Auth
+
+hidden_fields = ['password', 'verification_key', 'verification_expires']
+
+class GetPersons(Method):
+    """
+    Returns an array of structs containing details about users. If
+    person_filter is specified and is an array of user identifiers or
+    usernames, or a struct of user attributes, only users matching the
+    filter will be returned. If return_fields is specified, only the
+    specified details will be returned.
+
+    Users and techs may only retrieve details about themselves. PIs
+    may retrieve details about themselves and others at their
+    sites. Admins and nodes may retrieve details about all accounts.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+
+    accepts = [
+        Auth(),
+        Mixed([Mixed(Person.fields['person_id'],
+                     Person.fields['email'])],
+             Parameter(str,"email"),
+              Parameter(int,"person_id"), 
+              Filter(Person.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    # Filter out password field
+    return_fields = dict(filter(lambda (field, value): field not in hidden_fields,
+                                Person.fields.items()))
+    returns = [return_fields]
+    
+    def call(self, auth, person_filter = None, return_fields = None):
+       # If we are not admin, make sure to only return viewable accounts
+        if isinstance(self.caller, Person) and \
+           'admin' not in self.caller['roles']:
+            # Get accounts that we are able to view
+            valid_person_ids = [self.caller['person_id']]
+            if 'pi' in self.caller['roles'] and self.caller['site_ids']:
+                sites = Sites(self.api, self.caller['site_ids'])
+                for site in sites:
+                    valid_person_ids += site['person_ids']
+
+            if not valid_person_ids:
+                return []
+
+            if person_filter is None:
+                person_filter = valid_person_ids
+
+        # Filter out password field
+        if return_fields:
+            return_fields = filter(lambda field: field not in hidden_fields,
+                                   return_fields)
+       else:
+           return_fields = self.return_fields.keys()
+
+        # Must query at least person_id, site_ids, and role_ids (see
+        # Person.can_view() and below).
+        if return_fields is not None:
+            added_fields = set(['person_id', 'site_ids', 'role_ids']).difference(return_fields)
+            return_fields += added_fields
+        else:
+            added_fields = []
+
+        persons = Persons(self.api, person_filter, return_fields)
+
+        # Filter out accounts that are not viewable
+        if isinstance(self.caller, Person) and \
+           'admin' not in self.caller['roles']:
+            persons = filter(self.caller.can_view, persons)
+
+        # Remove added fields if not specified
+        if added_fields:
+            for person in persons:
+                for field in added_fields:
+                   if field in person:
+                       del person[field]
+
+        return persons
diff --git a/trunk/PLC/Methods/GetPlcRelease.py b/trunk/PLC/Methods/GetPlcRelease.py
new file mode 100644 (file)
index 0000000..7df66aa
--- /dev/null
@@ -0,0 +1,57 @@
+from PLC.Method import Method
+from PLC.Auth import Auth
+from PLC.Faults import *
+
+import re
+
+comment_regexp = '\A\s*#.|\A\s*\Z|\Axxxxx' 
+
+regexps = { 'build'   : '\A[bB]uild\s+(?P<key>[^:]+)\s*:\s*(?P<value>.*)\Z',
+           'tags'    : '\A(?P<key>[^:]+)\s*:=\s*(?P<value>.*)\Z'}
+
+class GetPlcRelease(Method):
+    """
+    Returns various information about the current myplc installation.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node', 'anonymous']
+
+    accepts = [
+        Auth(),
+        ]
+
+    # for now only return /etc/myplc-release verbatim
+    returns = { 'build' : 'information about the build',
+               'tags' : 'describes the codebase location and tags used for building',
+               'rpms' : 'details the rpm installed in the myplc chroot jail' }
+
+    def call(self, auth):
+
+       comment_matcher = re.compile(comment_regexp)
+
+       matchers = {}
+       result = {} 
+       for field in regexps.keys():
+           matchers[field] = re.compile(regexps[field])
+           result[field]={}
+       result['rpms']="Not implemented yet"
+
+       try:
+           release = open('/etc/myplc-release')
+           for line in release.readlines():
+               line=line.strip()
+               if comment_matcher.match(line):
+                   continue
+               for field in regexps.keys():
+                   m=matchers[field].match(line)
+                   if m:
+                       (key,value)=m.groups(['key','value'])
+                       result[field][key]=value
+                       break
+               else:
+                   if not result.has_key('unexpected'):
+                       result['unexpected']=""
+                   result['unexpected'] += (line+"\n")
+       except:
+           raise PLCNotImplemented, 'Cannot open /etc/myplc-release'
+       return result
diff --git a/trunk/PLC/Methods/GetRoles.py b/trunk/PLC/Methods/GetRoles.py
new file mode 100644 (file)
index 0000000..0456662
--- /dev/null
@@ -0,0 +1,21 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Roles import Role, Roles
+from PLC.Auth import Auth
+
+class GetRoles(Method):
+    """
+    Get an array of structs containing details about all roles.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+
+    accepts = [
+        Auth()
+        ]
+
+    returns = [Role.fields]
+    
+    def call(self, auth):
+       return Roles(self.api)
diff --git a/trunk/PLC/Methods/GetSession.py b/trunk/PLC/Methods/GetSession.py
new file mode 100644 (file)
index 0000000..ae75219
--- /dev/null
@@ -0,0 +1,39 @@
+import time
+
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+from PLC.Sessions import Session, Sessions
+from PLC.Nodes import Node, Nodes
+from PLC.Persons import Person, Persons
+
+class GetSession(Method):
+    """
+    Returns a new session key if a user or node authenticated
+    successfully, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+    accepts = [Auth()]
+    returns = Session.fields['session_id']
+    
+
+    def call(self, auth):
+        # Authenticated with a session key, just return it
+        if auth.has_key('session'):
+            return auth['session']
+
+        session = Session(self.api)
+
+        if isinstance(self.caller, Person):
+            # XXX Make this configurable
+            session['expires'] = int(time.time()) + (24 * 60 * 60)
+
+        session.sync(commit = False)
+
+        if isinstance(self.caller, Node):
+            session.add_node(self.caller, commit = True)
+        elif isinstance(self.caller, Person):
+            session.add_person(self.caller, commit = True)
+
+        return session['session_id']
diff --git a/trunk/PLC/Methods/GetSessions.py b/trunk/PLC/Methods/GetSessions.py
new file mode 100644 (file)
index 0000000..a72553c
--- /dev/null
@@ -0,0 +1,35 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Sessions import Session, Sessions
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+
+class GetSessions(Method):
+    """
+    Returns an array of structs containing details about users sessions. If
+    session_filter is specified and is an array of user identifiers or
+    session_keys, or a struct of session attributes, only sessions matching the
+    filter will be returned. If return_fields is specified, only the
+    specified details will be returned.
+
+    
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed([Mixed(Session.fields['person_id'],
+                     Session.fields['session_id'])],
+              Filter(Session.fields))
+        ]
+
+    returns = [Session.fields]
+    
+    def call(self, auth, session_filter = None):
+
+        sessions = Sessions(self.api, session_filter)
+       
+       return sessions
diff --git a/trunk/PLC/Methods/GetSites.py b/trunk/PLC/Methods/GetSites.py
new file mode 100644 (file)
index 0000000..c0f198e
--- /dev/null
@@ -0,0 +1,31 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Auth import Auth
+from PLC.Sites import Site, Sites
+
+class GetSites(Method):
+    """
+    Returns an array of structs containing details about sites. If
+    site_filter is specified and is an array of site identifiers or
+    hostnames, or a struct of site attributes, only sites matching the
+    filter will be returned. If return_fields is specified, only the
+    specified details will be returned.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node', 'anonymous']
+
+    accepts = [
+        Auth(),
+        Mixed([Mixed(Site.fields['site_id'],
+                     Site.fields['login_base'])],
+             Parameter(str,"login_base"),
+              Parameter(int,"site_id"),
+              Filter(Site.fields)),
+        Parameter([str], "List of fields to return", nullok = True)        
+        ]
+
+    returns = [Site.fields]
+
+    def call(self, auth, site_filter = None, return_fields = None):
+        return Sites(self.api, site_filter, return_fields)
diff --git a/trunk/PLC/Methods/GetSliceAttributeTypes.py b/trunk/PLC/Methods/GetSliceAttributeTypes.py
new file mode 100644 (file)
index 0000000..bc8f1ed
--- /dev/null
@@ -0,0 +1,30 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Auth import Auth
+from PLC.SliceAttributeTypes import SliceAttributeType, SliceAttributeTypes
+
+class GetSliceAttributeTypes(Method):
+    """
+    Returns an array of structs containing details about slice
+    attribute types. If attribute_type_filter is specified and
+    is an array of slice attribute type identifiers, or a
+    struct of slice attribute type attributes, only slice attribute
+    types matching the filter will be returned. If return_fields is
+    specified, only the specified details will be returned.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+
+    accepts = [
+        Auth(),
+        Mixed([Mixed(SliceAttributeType.fields['attribute_type_id'],
+                     SliceAttributeType.fields['name'])],
+              Filter(SliceAttributeType.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [SliceAttributeType.fields]
+
+    def call(self, auth, attribute_type_filter = None, return_fields = None):
+        return SliceAttributeTypes(self.api, attribute_type_filter, return_fields)
diff --git a/trunk/PLC/Methods/GetSliceAttributes.py b/trunk/PLC/Methods/GetSliceAttributes.py
new file mode 100644 (file)
index 0000000..b8a0a11
--- /dev/null
@@ -0,0 +1,88 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.SliceAttributes import SliceAttribute, SliceAttributes
+from PLC.Persons import Person, Persons
+from PLC.Sites import Site, Sites
+from PLC.Slices import Slice, Slices
+from PLC.Auth import Auth
+
+class GetSliceAttributes(Method):
+    """
+    Returns an array of structs containing details about slice and
+    sliver attributes. An attribute is a sliver attribute if the
+    node_id field is set. If slice_attribute_filter is specified and
+    is an array of slice attribute identifiers, or a struct of slice
+    attribute attributes, only slice attributes matching the filter
+    will be returned. If return_fields is specified, only the
+    specified details will be returned.
+
+    Users may only query attributes of slices or slivers of which they
+    are members. PIs may only query attributes of slices or slivers at
+    their sites, or of which they are members. Admins may query
+    attributes of any slice or sliver.
+    """
+
+    roles = ['admin', 'pi', 'user', 'node']
+
+    accepts = [
+        Auth(),
+        Mixed([SliceAttribute.fields['slice_attribute_id']],
+              Filter(SliceAttribute.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [SliceAttribute.fields]
+    
+
+    def call(self, auth, slice_attribute_filter = None, return_fields = None):
+       # If we are not admin, make sure to only return our own slice
+       # and sliver attributes.
+        if isinstance(self.caller, Person) and \
+           'admin' not in self.caller['roles']:
+            # Get slices that we are able to view
+            valid_slice_ids = self.caller['slice_ids']
+            if 'pi' in self.caller['roles'] and self.caller['site_ids']:
+                sites = Sites(self.api, self.caller['site_ids'])
+                for site in sites:
+                    valid_slice_ids += site['slice_ids']
+
+            if not valid_slice_ids:
+                return []
+
+            # Get slice attributes that we are able to view
+            valid_slice_attribute_ids = []
+            slices = Slices(self.api, valid_slice_ids)
+            for slice in slices:
+                valid_slice_attribute_ids += slice['slice_attribute_ids']
+
+            if not valid_slice_attribute_ids:
+                return []
+
+            if slice_attribute_filter is None:
+                slice_attribute_filter = valid_slice_attribute_ids
+
+        # Must query at least slice_attribute_id (see below)
+        if return_fields is not None and 'slice_attribute_id' not in return_fields:
+            return_fields.append('slice_attribute_id')
+            added_fields = True
+        else:
+            added_fields = False
+
+        slice_attributes = SliceAttributes(self.api, slice_attribute_filter, return_fields)
+
+        # Filter out slice attributes that are not viewable
+        if isinstance(self.caller, Person) and \
+           'admin' not in self.caller['roles']:
+            slice_attributes = filter(lambda slice_attribute: \
+                                      slice_attribute['slice_attribute_id'] in valid_slice_attribute_ids,
+                                      slice_attributes)
+
+        # Remove slice_attribute_id if not specified
+        if added_fields:
+            for slice_attribute in slice_attributes:
+               if 'slice_attribute_id' in slice_attribute:
+                   del slice_attribute['slice_attribute_id']
+
+        return slice_attributes
diff --git a/trunk/PLC/Methods/GetSliceInstantiations.py b/trunk/PLC/Methods/GetSliceInstantiations.py
new file mode 100644 (file)
index 0000000..174c209
--- /dev/null
@@ -0,0 +1,21 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.SliceInstantiations import SliceInstantiation, SliceInstantiations
+from PLC.Auth import Auth
+
+class GetSliceInstantiations(Method):
+    """
+    Returns an array of all valid slice instantiation states.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+
+    accepts = [
+        Auth()
+        ]
+
+    returns = [SliceInstantiation.fields['instantiation']]
+
+    def call(self, auth):
+        return [slice_instantiation['instantiation'] for slice_instantiation in SliceInstantiations(self.api)]
diff --git a/trunk/PLC/Methods/GetSliceKeys.py b/trunk/PLC/Methods/GetSliceKeys.py
new file mode 100644 (file)
index 0000000..4029c83
--- /dev/null
@@ -0,0 +1,134 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Auth import Auth
+from PLC.Persons import Person, Persons
+from PLC.Sites import Site, Sites
+from PLC.Slices import Slice, Slices
+from PLC.Keys import Key, Keys
+
+class GetSliceKeys(Method):
+    """
+    Returns an array of structs containing public key info for users in 
+    the specified slices. If slice_filter is specified and is an array 
+    of slice identifiers or slice names, or a struct of slice 
+    attributes, only slices matching the filter will be returned. If 
+    return_fields is specified, only the specified details will be 
+    returned.
+
+    Users may only query slices of which they are members. PIs may
+    query any of the slices at their sites. Admins and nodes may query
+    any slice. If a slice that cannot be queried is specified in
+    slice_filter, details about that slice will not be returned.
+    """
+
+    roles = ['admin', 'pi', 'user', 'node']
+
+    accepts = [
+        Auth(),
+        Mixed([Mixed(Slice.fields['slice_id'],
+                     Slice.fields['name'])],
+              Filter(Slice.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [
+       {
+       'slice_id': Slice.fields['slice_id'],
+       'name': Slice.fields['name'], 
+       'person_id': Person.fields['person_id'], 
+       'email': Person.fields['email'],
+       'key': Key.fields['key']
+       }]
+
+    def call(self, auth, slice_filter = None, return_fields = None):
+       slice_fields = ['slice_id', 'name']
+       person_fields = ['person_id', 'email']
+       key_fields = ['key']
+
+       # If we are not admin, make sure to return only viewable
+       # slices.
+        if isinstance(self.caller, Person) and \
+           'admin' not in self.caller['roles']:
+            # Get slices that we are able to view
+            valid_slice_ids = self.caller['slice_ids']
+            if 'pi' in self.caller['roles'] and self.caller['site_ids']:
+                sites = Sites(self.api, self.caller['site_ids'])
+                for site in sites:
+                    valid_slice_ids += site['slice_ids']
+
+            if not valid_slice_ids:
+                return []
+
+            if slice_filter is None:
+                slice_filter = valid_slice_ids
+
+       if return_fields:
+           slice_return_fields = filter(lambda field: field in slice_fields, return_fields)
+           person_return_fields = filter(lambda field: field in person_fields, return_fields)
+           key_return_fields = filter(lambda field: field in key_fields, return_fields)
+       else:
+           slice_return_fields = slice_fields
+           person_return_fields = person_fields
+           key_return_fields = key_fields
+
+       # Must query at least Slice.slice_id, Slice.person_ids, 
+       # and Person.person_id and Person.key_ids so we can join data correctly
+        slice_added_fields = set(['slice_id', 'person_ids']).difference(slice_return_fields)
+        slice_return_fields += slice_added_fields
+       person_added_fields = set(['person_id', 'key_ids']).difference(person_return_fields)
+       person_return_fields += person_added_fields
+       key_added_fields = set(['key_id']).difference(key_return_fields)
+       key_return_fields += key_added_fields
+
+       # Get the slices
+        all_slices = Slices(self.api, slice_filter, slice_return_fields).dict('slice_id')
+       slice_ids = all_slices.keys()
+       slices = all_slices.values()
+
+       # Filter out slices that are not viewable
+        if isinstance(self.caller, Person) and \
+           'admin' not in self.caller['roles']:
+            slices = filter(lambda slice: slice['slice_id'] in valid_slice_ids, slices)
+       
+       # Get the persons
+       person_ids = set()
+       for slice in slices:
+           person_ids.update(slice['person_ids'])
+
+       all_persons = Persons(self.api, list(person_ids), person_return_fields).dict('person_id')
+       person_ids = all_persons.keys()
+       persons = all_persons.values()
+       
+       # Get the keys
+       key_ids = set()
+       for person in persons:
+           key_ids.update(person['key_ids'])
+       
+       all_keys = Keys(self.api, list(key_ids), key_return_fields).dict('key_id')
+       key_ids = all_keys.keys()
+       keys = all_keys.values()
+
+       # Create slice_keys list
+       slice_keys = []
+       slice_fields = list(set(slice_return_fields).difference(slice_added_fields))
+       person_fields = list(set(person_return_fields).difference(person_added_fields))
+       key_fields = list(set(key_return_fields).difference(key_added_fields))
+
+       for slice in slices:
+            slice_key = dict.fromkeys(slice_fields + person_fields + key_fields)
+           if not slice['person_ids']:
+               continue
+           for person_id in slice['person_ids']:
+               person = all_persons[person_id]
+               if not person['key_ids']:
+                   continue
+               for key_id in person['key_ids']:
+                   key = all_keys[key_id]
+                   slice_key.update(dict(filter(lambda (k, v): k in slice_fields, slice.items())))
+                   slice_key.update(dict(filter(lambda (k, v): k in person_fields, person.items())))
+                   slice_key.update(dict(filter(lambda (k, v): k in key_fields, key.items())))
+                   slice_keys.append(slice_key.copy())
+
+       return slice_keys       
+
diff --git a/trunk/PLC/Methods/GetSliceTicket.py b/trunk/PLC/Methods/GetSliceTicket.py
new file mode 100644 (file)
index 0000000..cd73f7b
--- /dev/null
@@ -0,0 +1,77 @@
+import time
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Slices import Slice, Slices
+from PLC.Auth import Auth
+from PLC.GPG import gpg_sign, gpg_verify
+from PLC.InitScripts import InitScript, InitScripts
+
+from PLC.Methods.GetSlivers import get_slivers
+
+class GetSliceTicket(Method):
+    """
+    Returns a ticket for, or signed representation of, the specified
+    slice. Slice tickets may be used to manually instantiate or update
+    a slice on a node. Present this ticket to the local Node Manager
+    interface to redeem it.
+
+    If the slice has not been added to a node with AddSliceToNodes,
+    and the ticket is redeemed on that node, it will be deleted the
+    next time the Node Manager contacts the API.
+
+    Users may only obtain tickets for slices of which they are
+    members. PIs may obtain tickets for any of the slices at their
+    sites, or any slices of which they are members. Admins may obtain
+    tickets for any slice.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'user', 'peer']
+
+    accepts = [
+        Auth(),
+        Mixed(Slice.fields['slice_id'],
+              Slice.fields['name']),
+        ]
+
+    returns = Parameter(str, 'Signed slice ticket')
+
+    def call(self, auth, slice_id_or_name):
+        slices = Slices(self.api, [slice_id_or_name])
+        if not slices:
+            raise PLCInvalidArgument, "No such slice"
+        slice = slices[0]
+
+        # Allow peers to obtain tickets for their own slices
+        if slice['peer_id'] is not None:
+            if not isinstance(self.caller, Peer):
+                raise PLCInvalidArgument, "Not a local slice"
+            elif slice['peer_id'] != self.caller['peer_id']:
+                raise PLCInvalidArgument, "Only the authoritative peer may obtain tickets for that slice"
+
+        # Tickets are the canonicalized XML-RPC methodResponse
+        # representation of a partial GetSlivers() response, i.e.,
+       
+       initscripts = InitScripts(self.api, {'enabled': True})
+
+        data = {
+            'timestamp': int(time.time()),
+           'initscripts': initscripts,
+            'slivers': get_slivers(self.api, [slice['slice_id']]),
+            }
+
+        # Sign ticket
+        signed_ticket = gpg_sign((data,),
+                                 self.api.config.PLC_ROOT_GPG_KEY,
+                                 self.api.config.PLC_ROOT_GPG_KEY_PUB,
+                                 methodresponse = True,
+                                 detach_sign = False)
+
+        # Verify ticket
+        gpg_verify(signed_ticket,
+                   self.api.config.PLC_ROOT_GPG_KEY_PUB)
+
+        return signed_ticket
diff --git a/trunk/PLC/Methods/GetSlices.py b/trunk/PLC/Methods/GetSlices.py
new file mode 100644 (file)
index 0000000..63dc0b4
--- /dev/null
@@ -0,0 +1,75 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Auth import Auth
+from PLC.Persons import Person, Persons
+from PLC.Sites import Site, Sites
+from PLC.Slices import Slice, Slices
+
+class GetSlices(Method):
+    """
+    Returns an array of structs containing details about slices. If
+    slice_filter is specified and is an array of slice identifiers or
+    slice names, or a struct of slice attributes, only slices matching
+    the filter will be returned. If return_fields is specified, only the
+    specified details will be returned.
+
+    Users may only query slices of which they are members. PIs may
+    query any of the slices at their sites. Admins and nodes may query
+    any slice. If a slice that cannot be queried is specified in
+    slice_filter, details about that slice will not be returned.
+    """
+
+    roles = ['admin', 'pi', 'user', 'node']
+
+    accepts = [
+        Auth(),
+        Mixed([Mixed(Slice.fields['slice_id'],
+                     Slice.fields['name'])],
+              Parameter(str,"name"),
+              Parameter(int,"slice_id"),
+              Filter(Slice.fields)),
+        Parameter([str], "List of fields to return", nullok = True)
+        ]
+
+    returns = [Slice.fields]
+
+    def call(self, auth, slice_filter = None, return_fields = None):
+       # If we are not admin, make sure to return only viewable
+       # slices.
+        if isinstance(self.caller, Person) and \
+           'admin' not in self.caller['roles']:
+            # Get slices that we are able to view
+            valid_slice_ids = self.caller['slice_ids']
+            if 'pi' in self.caller['roles'] and self.caller['site_ids']:
+                sites = Sites(self.api, self.caller['site_ids'])
+                for site in sites:
+                    valid_slice_ids += site['slice_ids']
+
+            if not valid_slice_ids:
+                return []
+
+            if slice_filter is None:
+                slice_filter = valid_slice_ids
+
+        # Must query at least slice_id (see below)
+        if return_fields is not None and 'slice_id' not in return_fields:
+            return_fields.append('slice_id')
+            added_fields = True
+        else:
+            added_fields = False
+
+        slices = Slices(self.api, slice_filter, return_fields)
+
+        # Filter out slices that are not viewable
+        if isinstance(self.caller, Person) and \
+           'admin' not in self.caller['roles']:
+            slices = filter(lambda slice: slice['slice_id'] in valid_slice_ids, slices)
+
+        # Remove slice_id if not specified
+        if added_fields:
+            for slice in slices:
+               if 'slice_id' in slice:
+                   del slice['slice_id']
+
+        return slices
diff --git a/trunk/PLC/Methods/GetSlicesMD5.py b/trunk/PLC/Methods/GetSlicesMD5.py
new file mode 100644 (file)
index 0000000..b7e4cde
--- /dev/null
@@ -0,0 +1,30 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+
+class GetSlicesMD5(Method):
+    """
+    Returns the current md5 hash of slices.xml file
+    (slices-0.5.xml.md5)
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node']
+
+    accepts = [
+        Auth(),
+        ]
+
+    returns = Parameter(str, "MD5 hash of slices.xml")
+    
+
+    def call(self, auth):
+       try:
+           file_path = '/var/www/html/xml/slices-0.5.xml.md5'
+           slices_md5 = file(file_path).readline().strip()
+           if slices_md5 <> "":                    
+               return slices_md5
+           raise PLCInvalidArgument, "File is empty"
+       except IOError:
+           raise PLCInvalidArgument, "No such file"
+       
diff --git a/trunk/PLC/Methods/GetSlivers.py b/trunk/PLC/Methods/GetSlivers.py
new file mode 100644 (file)
index 0000000..d3c5471
--- /dev/null
@@ -0,0 +1,226 @@
+import time
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Auth import Auth
+from PLC.Nodes import Node, Nodes
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+from PLC.NodeGroups import NodeGroup, NodeGroups
+from PLC.ConfFiles import ConfFile, ConfFiles
+from PLC.Slices import Slice, Slices
+from PLC.Persons import Person, Persons
+from PLC.Keys import Key, Keys
+from PLC.SliceAttributes import SliceAttribute, SliceAttributes
+from PLC.InitScripts import InitScript, InitScripts
+
+def get_slivers(api, slice_filter, node = None):
+    # Get slice information
+    slices = Slices(api, slice_filter, ['slice_id', 'name', 'instantiation', 'expires', 'person_ids', 'slice_attribute_ids'])
+
+    # Build up list of users and slice attributes
+    person_ids = set()
+    slice_attribute_ids = set()
+    for slice in slices:
+        person_ids.update(slice['person_ids'])
+        slice_attribute_ids.update(slice['slice_attribute_ids'])
+
+    # Get user information
+    all_persons = Persons(api, {'person_id':person_ids,'enabled':True}, ['person_id', 'enabled', 'key_ids']).dict()
+
+    # Build up list of keys
+    key_ids = set()
+    for person in all_persons.values():
+        key_ids.update(person['key_ids'])
+
+    # Get user account keys
+    all_keys = Keys(api, key_ids, ['key_id', 'key', 'key_type']).dict()
+
+    # Get slice attributes
+    all_slice_attributes = SliceAttributes(api, slice_attribute_ids).dict()
+
+    slivers = []
+    for slice in slices:
+        keys = []
+        for person_id in slice['person_ids']:
+            if person_id in all_persons:
+                person = all_persons[person_id]
+                if not person['enabled']:
+                    continue
+                for key_id in person['key_ids']:
+                    if key_id in all_keys:
+                        key = all_keys[key_id]
+                        keys += [{'key_type': key['key_type'],
+                                  'key': key['key']}]
+
+        attributes = []
+
+        # All (per-node and global) attributes for this slice
+        slice_attributes = []
+        for slice_attribute_id in slice['slice_attribute_ids']:
+            if slice_attribute_id in all_slice_attributes:
+                slice_attributes.append(all_slice_attributes[slice_attribute_id])
+
+        # Per-node sliver attributes take precedence over global
+        # slice attributes, so set them first.
+        # Then comes nodegroup slice attributes
+       # Followed by global slice attributes
+        sliver_attributes = []
+
+        if node is not None:
+            for sliver_attribute in filter(lambda a: a['node_id'] == node['node_id'], slice_attributes):
+                sliver_attributes.append(sliver_attribute['name'])
+                attributes.append({'name': sliver_attribute['name'],
+                                   'value': sliver_attribute['value']})
+
+           # set nodegroup slice attributes
+           for slice_attribute in filter(lambda a: a['nodegroup_id'] in node['nodegroup_ids'], slice_attributes):
+               # Do not set any nodegroup slice attributes for
+                # which there is at least one sliver attribute
+                # already set.
+               if slice_attribute['name'] not in slice_attributes:
+                   attributes.append({'name': slice_attribute['name'],
+                                  'value': slice_attribute['value']})
+
+        for slice_attribute in filter(lambda a: a['node_id'] is None, slice_attributes):
+            # Do not set any global slice attributes for
+            # which there is at least one sliver attribute
+            # already set.
+            if slice_attribute['name'] not in sliver_attributes:
+                attributes.append({'name': slice_attribute['name'],
+                                   'value': slice_attribute['value']})
+
+        slivers.append({
+            'name': slice['name'],
+            'slice_id': slice['slice_id'],
+            'instantiation': slice['instantiation'],
+            'expires': slice['expires'],
+            'keys': keys,
+            'attributes': attributes
+            })
+
+    return slivers
+
+class GetSlivers(Method):
+    """
+    Returns a struct containing information about the specified node
+    (or calling node, if called by a node and node_id_or_hostname is
+    not specified), including the current set of slivers bound to the
+    node.
+
+    All of the information returned by this call can be gathered from
+    other calls, e.g. GetNodes, GetNodeNetworks, GetSlices, etc. This
+    function exists almost solely for the benefit of Node Manager.
+    """
+
+    roles = ['admin', 'node']
+
+    accepts = [
+        Auth(),
+        Mixed(Node.fields['node_id'],
+              Node.fields['hostname']),
+        ]
+
+    returns = {
+        'timestamp': Parameter(int, "Timestamp of this call, in seconds since UNIX epoch"),
+        'node_id': Node.fields['node_id'],
+        'hostname': Node.fields['hostname'],
+        'networks': [NodeNetwork.fields],
+        'groups': [NodeGroup.fields['name']],
+        'conf_files': [ConfFile.fields],
+       'initscripts': [InitScript.fields],
+        'slivers': [{
+            'name': Slice.fields['name'],
+            'slice_id': Slice.fields['slice_id'],
+            'instantiation': Slice.fields['instantiation'],
+            'expires': Slice.fields['expires'],
+            'keys': [{
+                'key_type': Key.fields['key_type'],
+                'key': Key.fields['key']
+            }],
+            'attributes': [{
+                'name': SliceAttribute.fields['name'],
+                'value': SliceAttribute.fields['value']
+            }]
+        }]
+    }
+
+    def call(self, auth, node_id_or_hostname = None):
+        timestamp = int(time.time())
+
+        # Get node
+        if node_id_or_hostname is None:
+            if isinstance(self.caller, Node):
+                node = self.caller
+            else:
+                raise PLCInvalidArgument, "'node_id_or_hostname' not specified"
+        else:
+            nodes = Nodes(self.api, [node_id_or_hostname])
+            if not nodes:
+                raise PLCInvalidArgument, "No such node"
+            node = nodes[0]
+
+            if node['peer_id'] is not None:
+                raise PLCInvalidArgument, "Not a local node"
+
+        # Get nodenetwork information
+        networks = NodeNetworks(self.api, node['nodenetwork_ids'])
+
+        # Get node group information
+        nodegroups = NodeGroups(self.api, node['nodegroup_ids']).dict('name')
+        groups = nodegroups.keys()
+
+        # Get all (enabled) configuration files
+        all_conf_files = ConfFiles(self.api, {'enabled': True}).dict()
+        conf_files = {}
+
+        # Global configuration files are the default. If multiple
+        # entries for the same global configuration file exist, it is
+        # undefined which one takes precedence.
+        for conf_file in all_conf_files.values():
+            if not conf_file['node_ids'] and not conf_file['nodegroup_ids']:
+                conf_files[conf_file['dest']] = conf_file
+        
+        # Node group configuration files take precedence over global
+        # ones. If a node belongs to multiple node groups for which
+        # the same configuration file is defined, it is undefined
+        # which one takes precedence.
+        for nodegroup in nodegroups.values():
+            for conf_file_id in nodegroup['conf_file_ids']:
+                if conf_file_id in all_conf_files:
+                    conf_files[conf_file['dest']] = all_conf_files[conf_file_id]
+        
+        # Node configuration files take precedence over node group
+        # configuration files.
+        for conf_file_id in node['conf_file_ids']:
+            if conf_file_id in all_conf_files:
+                conf_files[conf_file['dest']] = all_conf_files[conf_file_id]
+            
+
+       # Get all (enabled) initscripts
+       initscripts = InitScripts(self.api, {'enabled': True})  
+
+        # Get system slices
+        system_slice_attributes = SliceAttributes(self.api, {'name': 'system', 'value': '1'}).dict('slice_id')
+        system_slice_ids = system_slice_attributes.keys()
+       
+       # Get nm-controller slices
+       controller_and_delegated_slices = Slices(self.api, {'instantiation': ['nm-controller', 'delegated']}, ['slice_id']).dict('slice_id')
+       controller_and_delegated_slice_ids = controller_and_delegated_slices.keys()
+       slice_ids = system_slice_ids + controller_and_delegated_slice_ids + node['slice_ids']
+
+       slivers = get_slivers(self.api, slice_ids, node)
+
+       node.update_last_contact()
+
+        return {
+            'timestamp': timestamp,
+            'node_id': node['node_id'],
+            'hostname': node['hostname'],
+            'networks': networks,
+            'groups': groups,
+            'conf_files': conf_files.values(),
+           'initscripts': initscripts,
+            'slivers': slivers
+            }
diff --git a/trunk/PLC/Methods/GetWhitelist.py b/trunk/PLC/Methods/GetWhitelist.py
new file mode 100644 (file)
index 0000000..11251f8
--- /dev/null
@@ -0,0 +1,73 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Nodes import Node, Nodes
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+
+class GetWhitelist(Method):
+    """
+    Returns an array of structs containing details about the specified nodes 
+    whitelists. If node_filter is specified and is an array of node identifiers or
+    hostnames, or a struct of node attributes, only nodes matching the
+    filter will be returned. If return_fields is specified, only the
+    specified details will be returned.
+
+    Some fields may only be viewed by admins.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech', 'node', 'anonymous']
+
+    accepts = [
+        Auth(),
+        Mixed([Mixed(Node.fields['node_id'],
+                     Node.fields['hostname'])],
+              Filter(Node.fields)),
+        Parameter([str], "List of fields to return", nullok = True),
+        ]
+
+    returns = [Node.fields]
+
+
+    def call(self, auth, node_filter = None, return_fields = None):
+        
+       # Must query at least slice_ids_whitelist
+       if return_fields is not None:
+           added_fields = set(['slice_ids_whitelist']).difference(return_fields)
+           return_fields += added_fields
+       else:
+           added_fields =[]    
+
+       # Get node information
+        nodes = Nodes(self.api, node_filter, return_fields)
+
+       # Remove all nodes without a whitelist
+       for node in nodes[:]:
+           if not node['slice_ids_whitelist']:
+               nodes.remove(node)
+
+        # Remove admin only fields
+        if not isinstance(self.caller, Person) or \
+           'admin' not in self.caller['roles']:
+           slice_ids = set()
+           if self.caller:
+               slice_ids.update(self.caller['slice_ids'])
+           #if node has whitelist, make sure the user has a slice on the whitelist 
+            for node in nodes[:]:
+               if 'slice_ids_whitelist' in node and \
+                  node['slice_ids_whitelist'] and \
+                  not slice_ids.intersection(node['slice_ids_whitelist']):
+                   nodes.remove(node)
+           for node in nodes:   
+                for field in ['boot_nonce', 'key', 'session', 'root_person_ids']:
+                    if field in node:
+                        del node[field]
+
+       # remove added fields if not specified
+       if added_fields:
+           for node in nodes:
+               for field in added_fields:
+                   del node[field]     
+
+        return nodes
diff --git a/trunk/PLC/Methods/NotifyPersons.py b/trunk/PLC/Methods/NotifyPersons.py
new file mode 100644 (file)
index 0000000..70c273d
--- /dev/null
@@ -0,0 +1,48 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Auth import Auth
+from PLC.Persons import Person, Persons
+from PLC.sendmail import sendmail
+
+class NotifyPersons(Method):
+    """
+    Sends an e-mail message to the specified users. If person_filter
+    is specified and is an array of user identifiers or usernames, or
+    a struct of user attributes, only users matching the filter will
+    receive the message.
+
+    Returns 1 if successful.
+    """
+
+    roles = ['admin', 'node']
+
+    accepts = [
+        Auth(),
+        Mixed([Mixed(Person.fields['person_id'],
+                     Person.fields['email'])],
+              Filter(Person.fields)),
+        Parameter(str, "E-mail subject"),
+        Parameter(str, "E-mail body")
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, person_filter, subject, body):
+        persons = Persons(self.api, person_filter,
+                          ['person_id', 'first_name', 'last_name', 'email'])
+        if not persons:
+            raise PLCInvalidArgument, "No such user(s)"
+
+        # Send email
+        sendmail(self.api,
+                 To = [("%s %s" % (person['first_name'], person['last_name']),
+                        person['email']) for person in persons],
+                 Subject = subject,
+                 Body = body)
+
+        # Logging variables
+        self.event_objects = {'Person': [person['person_id'] for person in persons]}
+        self.message = subject
+
+        return 1
diff --git a/trunk/PLC/Methods/NotifySupport.py b/trunk/PLC/Methods/NotifySupport.py
new file mode 100644 (file)
index 0000000..99ec318
--- /dev/null
@@ -0,0 +1,36 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+from PLC.sendmail import sendmail
+
+class NotifySupport(Method):
+    """
+    Sends an e-mail message to the configured support address. 
+
+    Returns 1 if successful.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Parameter(str, "E-mail subject"),
+        Parameter(str, "E-mail body")
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, subject, body):
+        to_name="%s Support"%self.api.config.PLC_NAME
+        to_address=self.api.config.PLC_MAIL_SUPPORT_ADDRESS
+
+        # Send email
+        sendmail(self.api, To=(to_name,to_address),
+                 Subject = subject,
+                 Body = body)
+
+        # Logging variables
+        #self.event_objects = {'Person': [person['person_id'] for person in persons]}
+        self.message = subject
+
+        return 1
diff --git a/trunk/PLC/Methods/RebootNode.py b/trunk/PLC/Methods/RebootNode.py
new file mode 100644 (file)
index 0000000..bea6b89
--- /dev/null
@@ -0,0 +1,73 @@
+import socket
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+from PLC.Auth import Auth
+from PLC.POD import udp_pod
+
+class RebootNode(Method):
+    """
+    Sends the specified node a specially formatted UDP packet which
+    should cause it to reboot immediately.
+
+    Admins can reboot any node. Techs and PIs can only reboot nodes at
+    their site.
+
+    Returns 1 if the packet was successfully sent (which only whether
+    the packet was sent, not whether the reboot was successful).
+    """
+
+    roles = ['admin', 'pi', 'tech']
+
+    accepts = [
+        Auth(),
+        Mixed(Node.fields['node_id'],
+              Node.fields['hostname'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, node_id_or_hostname):
+        # Get account information
+        nodes = Nodes(self.api, [node_id_or_hostname])
+        if not nodes:
+            raise PLCInvalidArgument, "No such node"
+
+        node = nodes[0]
+
+        # Authenticated function
+        assert self.caller is not None
+
+        # If we are not an admin, make sure that the caller is a
+        # member of the site at which the node is located.
+        if 'admin' not in self.caller['roles']:
+            if node['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to delete nodes from specified site"
+
+        session = node['session']
+        if not session:
+            raise PLCInvalidArgument, "No session key on record for that node (i.e., has never successfully booted)"
+        session = session.strip()
+
+        # Only use the hostname as a backup, try to use the primary ID
+        # address instead.
+        host = node['hostname']
+        nodenetworks = NodeNetworks(self.api, node['nodenetwork_ids'])
+        for nodenetwork in nodenetworks:
+            if nodenetwork['is_primary'] == 1:
+                host = nodenetwork['ip']
+                break
+
+        try:
+            udp_pod(host, session)
+        except socket.error, e:
+            # Ignore socket errors
+            pass
+
+       self.event_objects = {'Node': [node['node_id']]}
+       self.message = "RebootNode called"
+               
+        return 1
diff --git a/trunk/PLC/Methods/RefreshPeer.py b/trunk/PLC/Methods/RefreshPeer.py
new file mode 100644 (file)
index 0000000..40fb1e2
--- /dev/null
@@ -0,0 +1,476 @@
+#
+# Thierry Parmentelat - INRIA
+# 
+# $Id$
+
+import time
+
+from PLC.Debug import log
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+
+from PLC.Peers import Peer, Peers
+from PLC.Sites import Site, Sites
+from PLC.Persons import Person, Persons
+from PLC.KeyTypes import KeyType, KeyTypes
+from PLC.Keys import Key, Keys
+from PLC.BootStates import BootState, BootStates
+from PLC.Nodes import Node, Nodes
+from PLC.SliceInstantiations import SliceInstantiations
+from PLC.Slices import Slice, Slices
+
+verbose=False
+
+class RefreshPeer(Method):
+    """
+    Fetches site, node, slice, person and key data from the specified peer
+    and caches it locally; also deletes stale entries.
+    Upon successful completion, returns a dict reporting various timers.
+    Faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(Peer.fields['peer_id'],
+              Peer.fields['peername']),
+        ]
+
+    returns = Parameter(int, "1 if successful")
+
+    def call(self, auth, peer_id_or_peername):
+        # Get peer
+       peers = Peers(self.api, [peer_id_or_peername])
+        if not peers:
+            raise PLCInvalidArgument, "No such peer '%s'" % unicode(peer_id_or_peername)
+        peer = peers[0]
+        peer_id = peer['peer_id']
+
+       # Connect to peer API
+        peer.connect()
+
+        timers = {}
+
+        # Get peer data
+        start = time.time()
+       print >>log, 'Issuing GetPeerData'
+        peer_tables = peer.GetPeerData()
+        timers['transport'] = time.time() - start - peer_tables['db_time']
+        timers['peer_db'] = peer_tables['db_time']
+        if verbose:
+            print >>log, 'GetPeerData returned -> db=%d transport=%d'%(timers['peer_db'],timers['transport'])
+
+        def sync(objects, peer_objects, classobj):
+            """
+            Synchronizes two dictionaries of objects. objects should
+            be a dictionary of local objects keyed on their foreign
+            identifiers. peer_objects should be a dictionary of
+            foreign objects keyed on their local (i.e., foreign to us)
+            identifiers. Returns a final dictionary of local objects
+            keyed on their foreign identifiers.
+            """
+
+            if verbose:
+                print >>log, 'Entering sync on',classobj(self.api).__class__.__name__
+
+            synced = {}
+
+            # Delete stale objects
+            for peer_object_id, object in objects.iteritems():
+                if peer_object_id not in peer_objects:
+                    object.delete(commit = False)
+                    print >> log, peer['peername'],classobj(self.api).__class__.__name__, object[object.primary_key],"deleted" 
+
+            # Add/update new/existing objects
+            for peer_object_id, peer_object in peer_objects.iteritems():
+                if peer_object_id in objects:
+                    # Update existing object
+                    object = objects[peer_object_id]
+
+                    # Replace foreign identifier with existing local
+                    # identifier temporarily for the purposes of
+                    # comparison.
+                    peer_object[object.primary_key] = object[object.primary_key]
+
+                    # Must use __eq__() instead of == since
+                    # peer_object may be a raw dict instead of a Peer
+                    # object.
+                    if not object.__eq__(peer_object):
+                        # Only update intrinsic fields
+                        object.update(object.db_fields(peer_object))
+                        sync = True
+                        dbg = "changed"
+                    else:
+                        sync = False
+                        dbg = None
+
+                    # Restore foreign identifier
+                    peer_object[object.primary_key] = peer_object_id
+                else:
+                    # Add new object
+                    object = classobj(self.api, peer_object)
+                    # Replace foreign identifier with new local identifier
+                    del object[object.primary_key]
+                    sync = True
+                    dbg = "added"
+
+                if sync:
+                    try:
+                        object.sync(commit = False)
+                    except PLCInvalidArgument, err:
+                        # Skip if validation fails
+                        # XXX Log an event instead of printing to logfile
+                        print >> log, "Warning: Skipping invalid", \
+                              peer['peername'], object.__class__.__name__, \
+                              ":", peer_object, ":", err
+                        continue
+
+                synced[peer_object_id] = object
+
+                if dbg:
+                    print >> log, peer['peername'], classobj(self.api).__class__.__name__, object[object.primary_key], dbg
+
+            if verbose:
+                print >>log, 'Exiting sync on',classobj(self.api).__class__.__name__
+
+            return synced
+
+        #
+        # Synchronize foreign sites
+        #
+
+        start = time.time()
+
+       print >>log, 'Dealing with Sites'
+
+        # Compare only the columns returned by the GetPeerData() call
+        if peer_tables['Sites']:
+            columns = peer_tables['Sites'][0].keys()
+        else:
+            columns = None
+
+        # Keyed on foreign site_id
+        old_peer_sites = Sites(self.api, {'peer_id': peer_id}, columns).dict('peer_site_id')
+        sites_at_peer = dict([(site['site_id'], site) for site in peer_tables['Sites']])
+
+        # Synchronize new set (still keyed on foreign site_id)
+        peer_sites = sync(old_peer_sites, sites_at_peer, Site)
+
+        for peer_site_id, site in peer_sites.iteritems():
+            # Bind any newly cached sites to peer
+            if peer_site_id not in old_peer_sites:
+                peer.add_site(site, peer_site_id, commit = False)
+                site['peer_id'] = peer_id
+                site['peer_site_id'] = peer_site_id
+
+        timers['site'] = time.time() - start
+
+        #
+        # XXX Synchronize foreign key types
+        #
+
+       print >>log, 'Dealing with Keys'
+
+        key_types = KeyTypes(self.api).dict()
+
+        #
+        # Synchronize foreign keys
+        #
+
+        start = time.time()
+
+        # Compare only the columns returned by the GetPeerData() call
+        if peer_tables['Keys']:
+            columns = peer_tables['Keys'][0].keys()
+        else:
+            columns = None
+
+        # Keyed on foreign key_id
+        old_peer_keys = Keys(self.api, {'peer_id': peer_id}, columns).dict('peer_key_id')
+        keys_at_peer = dict([(key['key_id'], key) for key in peer_tables['Keys']])
+
+        # Fix up key_type references
+        for peer_key_id, key in keys_at_peer.items():
+            if key['key_type'] not in key_types:
+                # XXX Log an event instead of printing to logfile
+                print >> log, "Warning: Skipping invalid %s key:" % peer['peername'], \
+                      key, ": invalid key type", key['key_type']
+                del keys_at_peer[peer_key_id]
+                continue
+
+        # Synchronize new set (still keyed on foreign key_id)
+        peer_keys = sync(old_peer_keys, keys_at_peer, Key)
+        for peer_key_id, key in peer_keys.iteritems():
+            # Bind any newly cached keys to peer
+            if peer_key_id not in old_peer_keys:
+                peer.add_key(key, peer_key_id, commit = False)
+                key['peer_id'] = peer_id
+                key['peer_key_id'] = peer_key_id
+
+        timers['keys'] = time.time() - start
+
+        #
+        # Synchronize foreign users
+        #
+
+        start = time.time()
+
+       print >>log, 'Dealing with Persons'
+
+        # Compare only the columns returned by the GetPeerData() call
+        if peer_tables['Persons']:
+            columns = peer_tables['Persons'][0].keys()
+        else:
+            columns = None
+
+        # Keyed on foreign person_id
+        old_peer_persons = Persons(self.api, {'peer_id': peer_id}, columns).dict('peer_person_id')
+
+       # artificially attach the persons returned by GetPeerData to the new peer 
+       # this is because validate_email needs peer_id to be correct when checking for duplicates 
+       for person in peer_tables['Persons']: 
+           person['peer_id']=peer_id
+        persons_at_peer = dict([(peer_person['person_id'], peer_person) \
+                                for peer_person in peer_tables['Persons']])
+
+        # XXX Do we care about membership in foreign site(s)?
+
+        # Synchronize new set (still keyed on foreign person_id)
+        peer_persons = sync(old_peer_persons, persons_at_peer, Person)
+
+       # transcoder : retrieve a local key_id from a peer_key_id
+       key_transcoder = dict ( [ (key['key_id'],peer_key_id) \
+                                 for peer_key_id,key in peer_keys.iteritems()])
+
+        for peer_person_id, person in peer_persons.iteritems():
+            # Bind any newly cached users to peer
+            if peer_person_id not in old_peer_persons:
+                peer.add_person(person, peer_person_id, commit = False)
+                person['peer_id'] = peer_id
+                person['peer_person_id'] = peer_person_id
+                person['key_ids'] = []
+
+            # User as viewed by peer
+            peer_person = persons_at_peer[peer_person_id]
+            
+            # Foreign keys currently belonging to the user
+           old_person_key_ids = [key_transcoder[key_id] for key_id in person['key_ids'] \
+                                 if key_transcoder[key_id] in peer_keys]
+
+            # Foreign keys that should belong to the user
+           # this is basically peer_person['key_ids'], we just check it makes sense 
+           # (e.g. we might have failed importing it)
+           person_key_ids = [ key_id for key_id in peer_person['key_ids'] if key_id in peer_keys]
+
+            # Remove stale keys from user
+           for key_id in (set(old_person_key_ids) - set(person_key_ids)):
+               person.remove_key(peer_keys[key_id], commit = False)
+               print >> log, peer['peername'], 'Key', key_id, 'removed from', person['email']
+
+            # Add new keys to user
+           for key_id in (set(person_key_ids) - set(old_person_key_ids)):
+               person.add_key(peer_keys[key_id], commit = False)
+               print >> log, peer['peername'], 'Key', key_id, 'added into', person['email']
+
+        timers['persons'] = time.time() - start
+
+        #
+        # XXX Synchronize foreign boot states
+        #
+
+        boot_states = BootStates(self.api).dict()
+
+        #
+        # Synchronize foreign nodes
+        #
+
+        start = time.time()
+
+       print >>log, 'Dealing with Nodes'
+
+        # Compare only the columns returned by the GetPeerData() call
+        if peer_tables['Nodes']:
+            columns = peer_tables['Nodes'][0].keys()
+        else:
+            columns = None
+
+        # Keyed on foreign node_id
+        old_peer_nodes = Nodes(self.api, {'peer_id': peer_id}, columns).dict('peer_node_id')
+        nodes_at_peer = dict([(node['node_id'], node) \
+                              for node in peer_tables['Nodes']])
+
+        # Fix up site_id and boot_states references
+        for peer_node_id, node in nodes_at_peer.items():
+            errors = []
+            if node['site_id'] not in peer_sites:
+                errors.append("invalid site %d" % node['site_id'])
+            if node['boot_state'] not in boot_states:
+                errors.append("invalid boot state %s" % node['boot_state'])
+            if errors:
+                # XXX Log an event instead of printing to logfile
+                print >> log, "Warning: Skipping invalid %s node:" % peer['peername'], \
+                      node, ":", ", ".join(errors)
+                del nodes_at_peer[peer_node_id]
+                continue
+            else:
+                node['site_id'] = peer_sites[node['site_id']]['site_id']
+
+        # Synchronize new set
+        peer_nodes = sync(old_peer_nodes, nodes_at_peer, Node)
+
+        for peer_node_id, node in peer_nodes.iteritems():
+            # Bind any newly cached foreign nodes to peer
+            if peer_node_id not in old_peer_nodes:
+                peer.add_node(node, peer_node_id, commit = False)
+                node['peer_id'] = peer_id
+                node['peer_node_id'] = peer_node_id
+
+        timers['nodes'] = time.time() - start
+
+        #
+        # Synchronize local nodes
+        #
+
+        start = time.time()
+
+        # Keyed on local node_id
+        local_nodes = Nodes(self.api).dict()
+
+        for node in peer_tables['PeerNodes']:
+            # Foreign identifier for our node as maintained by peer
+            peer_node_id = node['node_id']
+            # Local identifier for our node as cached by peer
+            node_id = node['peer_node_id']
+            if node_id in local_nodes:
+                # Still a valid local node, add it to the synchronized
+                # set of local node objects keyed on foreign node_id.
+                peer_nodes[peer_node_id] = local_nodes[node_id]
+
+        timers['local_nodes'] = time.time() - start
+
+        #
+        # XXX Synchronize foreign slice instantiation states
+        #
+
+        slice_instantiations = SliceInstantiations(self.api).dict()
+
+        #
+        # Synchronize foreign slices
+        #
+
+        start = time.time()
+
+       print >>log, 'Dealing with Slices'
+
+        # Compare only the columns returned by the GetPeerData() call
+        if peer_tables['Slices']:
+            columns = peer_tables['Slices'][0].keys()
+        else:
+            columns = None
+
+        # Keyed on foreign slice_id
+        old_peer_slices = Slices(self.api, {'peer_id': peer_id}, columns).dict('peer_slice_id')
+        slices_at_peer = dict([(slice['slice_id'], slice) \
+                               for slice in peer_tables['Slices']])
+
+        # Fix up site_id, instantiation, and creator_person_id references
+        for peer_slice_id, slice in slices_at_peer.items():
+            errors = []
+            if slice['site_id'] not in peer_sites:
+                errors.append("invalid site %d" % slice['site_id'])
+            if slice['instantiation'] not in slice_instantiations:
+                errors.append("invalid instantiation %s" % slice['instantiation'])
+            if slice['creator_person_id'] not in peer_persons:
+                # Just NULL it out
+                slice['creator_person_id'] = None
+            else:
+                slice['creator_person_id'] = peer_persons[slice['creator_person_id']]['person_id']
+            if errors:
+                print >> log, "Warning: Skipping invalid %s slice:" % peer['peername'], \
+                      slice, ":", ", ".join(errors)
+                del slices_at_peer[peer_slice_id]
+                continue
+            else:
+                slice['site_id'] = peer_sites[slice['site_id']]['site_id']
+
+        # Synchronize new set
+        peer_slices = sync(old_peer_slices, slices_at_peer, Slice)
+
+       # transcoder : retrieve a local node_id from a peer_node_id
+       node_transcoder = dict ( [ (node['node_id'],peer_node_id) \
+                                  for peer_node_id,node in peer_nodes.iteritems()])
+       person_transcoder = dict ( [ (person['person_id'],peer_person_id) \
+                                    for peer_person_id,person in peer_persons.iteritems()])
+
+        for peer_slice_id, slice in peer_slices.iteritems():
+            # Bind any newly cached foreign slices to peer
+            if peer_slice_id not in old_peer_slices:
+                peer.add_slice(slice, peer_slice_id, commit = False)
+                slice['peer_id'] = peer_id
+                slice['peer_slice_id'] = peer_slice_id
+                slice['node_ids'] = []
+                slice['person_ids'] = []
+
+            # Slice as viewed by peer
+            peer_slice = slices_at_peer[peer_slice_id]
+
+            # Nodes that are currently part of the slice
+           old_slice_node_ids = [ node_transcoder[node_id] for node_id in slice['node_ids'] \
+                                  if node_transcoder[node_id] in peer_nodes]
+
+            # Nodes that should be part of the slice
+           slice_node_ids = [ node_id for node_id in peer_slice['node_ids'] if node_id in peer_nodes]
+
+            # Remove stale nodes from slice
+            for node_id in (set(old_slice_node_ids) - set(slice_node_ids)):
+                slice.remove_node(peer_nodes[node_id], commit = False)
+               print >> log, peer['peername'], 'Node', peer_nodes[node_id]['hostname'], 'removed from', slice['name']
+
+            # Add new nodes to slice
+            for node_id in (set(slice_node_ids) - set(old_slice_node_ids)):
+                slice.add_node(peer_nodes[node_id], commit = False)
+               print >> log, peer['peername'], 'Node', peer_nodes[node_id]['hostname'], 'added into', slice['name']
+
+            # N.B.: Local nodes that may have been added to the slice
+            # by hand, are removed. In other words, don't do this.
+
+            # Foreign users that are currently part of the slice
+           #old_slice_person_ids = [ person_transcoder[person_id] for person_id in slice['person_ids'] \
+           #                if person_transcoder[person_id] in peer_persons]
+           # An issue occurred with a user who registered on both sites (same email)
+           # So the remote person could not get cached locally
+           # The one-line map/filter style is nicer but ineffective here
+           old_slice_person_ids = []
+           for person_id in slice['person_ids']:
+               if not person_transcoder.has_key(person_id):
+                   print >> log, 'WARNING : person_id %d in %s not transcodable (1) - skipped'%(person_id,slice['name'])
+               elif person_transcoder[person_id] not in peer_persons:
+                   print >> log, 'WARNING : person_id %d in %s not transcodable (2) - skipped'%(person_id,slice['name'])
+               else:
+                   old_slice_person_ids += [person_transcoder[person_id]]
+
+            # Foreign users that should be part of the slice
+           slice_person_ids = [ person_id for person_id in peer_slice['person_ids'] if person_id in peer_persons ]
+
+            # Remove stale users from slice
+            for person_id in (set(old_slice_person_ids) - set(slice_person_ids)):
+                slice.remove_person(peer_persons[person_id], commit = False)
+               print >> log, peer['peername'], 'User', peer_persons[person_id]['email'], 'removed from', slice['name']
+
+            # Add new users to slice
+            for person_id in (set(slice_person_ids) - set(old_slice_person_ids)):
+                slice.add_person(peer_persons[person_id], commit = False)
+               print >> log, peer['peername'], 'User', peer_persons[person_id]['email'], 'added into', slice['name']
+
+            # N.B.: Local users that may have been added to the slice
+            # by hand, are not touched.
+
+        timers['slices'] = time.time() - start
+
+        # Update peer itself and commit
+        peer.sync(commit = True)
+
+        return timers
diff --git a/trunk/PLC/Methods/ResetPassword.py b/trunk/PLC/Methods/ResetPassword.py
new file mode 100644 (file)
index 0000000..0e2d2a9
--- /dev/null
@@ -0,0 +1,128 @@
+import random
+import base64
+import time
+import urllib
+
+from types import StringTypes
+
+from PLC.Debug import log
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Messages import Message, Messages
+from PLC.Auth import Auth
+from PLC.sendmail import sendmail
+
+class ResetPassword(Method):
+    """
+    If verification_key is not specified, then a new verification_key
+    will be generated and stored with the user's account. The key will
+    be e-mailed to the user in the form of a link to a web page.
+
+    The web page should verify the key by calling this function again
+    and specifying verification_key. If the key matches what has been
+    stored in the user's account, a new random password will be
+    e-mailed to the user.
+
+    Returns 1 if verification_key was not specified, or was specified
+    and is valid, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email']),
+       Person.fields['verification_key'],
+        Person.fields['verification_expires']
+        ]
+
+    returns = Parameter(int, '1 if verification_key is valid')
+
+    def call(self, auth, person_id_or_email, verification_key = None, verification_expires = None):
+       # Get account information
+        # we need to search in local objects only
+        if isinstance (person_id_or_email,StringTypes):
+            filter={'email':person_id_or_email}
+        else:
+            filter={'person_id':person_id_or_email}
+        filter['peer_id']=None
+        persons = Persons(self.api, filter)
+        if not persons:
+            raise PLCInvalidArgument, "No such account"
+        person = persons[0]
+
+        if person['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local account"
+
+        if not person['enabled']:
+            raise PLCInvalidArgument, "Account must be enabled"
+
+        # Be paranoid and deny password resets for admins
+        if 'admin' in person['roles']:
+            raise PLCInvalidArgument, "Cannot reset admin passwords"
+
+        # Generate 32 random bytes
+        bytes = random.sample(xrange(0, 256), 32)
+        # Base64 encode their string representation
+        random_key = base64.b64encode("".join(map(chr, bytes)))
+
+        if verification_key is not None:
+            if person['verification_key'] is None or \
+               person['verification_expires'] is None or \
+               person['verification_expires'] < time.time():
+                raise PLCPermissionDenied, "Verification key has expired"
+            elif person['verification_key'] != verification_key:
+                raise PLCPermissionDenied, "Verification key incorrect"
+            else:
+                # Reset password to random string
+                person['password'] = random_key
+                person['verification_key'] = None
+                person['verification_expires'] = None
+                person.sync()
+
+                message_id = 'Password reset'
+        else:
+            # Only allow one reset at a time
+            if person['verification_expires'] is not None and \
+               person['verification_expires'] > time.time():
+                raise PLCPermissionDenied, "Password reset request already pending"
+
+            if verification_expires is None:
+                verification_expires = int(time.time() + (24 * 60 * 60))
+
+            person['verification_key'] = random_key
+            person['verification_expires'] = verification_expires
+            person.sync()
+
+            message_id = 'Password reset requested'
+
+        messages = Messages(self.api, [message_id])
+        if messages:
+            # Send password to user
+            message = messages[0]
+
+            params = {'PLC_NAME': self.api.config.PLC_NAME,
+                      'PLC_MAIL_SUPPORT_ADDRESS': self.api.config.PLC_MAIL_SUPPORT_ADDRESS,
+                      'PLC_WWW_HOST': self.api.config.PLC_WWW_HOST,
+                      'PLC_WWW_SSL_PORT': self.api.config.PLC_WWW_SSL_PORT,
+                      'person_id': person['person_id'],
+                      # Will be used in a URL, so must quote appropriately
+                      'verification_key': urllib.quote_plus(random_key),
+                      'password': random_key,
+                      'email': person['email']}
+
+            sendmail(self.api,
+                     To = ("%s %s" % (person['first_name'], person['last_name']), person['email']),
+                     Subject = message['subject'] % params,
+                     Body = message['template'] % params)
+        else:
+            print >> log, "Warning: No message template '%s'" % message_id
+
+       # Logging variables
+        self.event_objects = {'Person': [person['person_id']]}
+        self.message = message_id
+
+        return 1
diff --git a/trunk/PLC/Methods/SetPersonPrimarySite.py b/trunk/PLC/Methods/SetPersonPrimarySite.py
new file mode 100644 (file)
index 0000000..644826b
--- /dev/null
@@ -0,0 +1,62 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Sites import Site, Sites
+from PLC.Auth import Auth
+
+class SetPersonPrimarySite(Method):
+    """
+    Makes the specified site the person's primary site. The person
+    must already be a member of the site.
+
+    Admins may update anyone. All others may only update themselves.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech']
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email']),
+        Mixed(Site.fields['site_id'],
+              Site.fields['login_base'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    object_type = 'Person'
+
+    def call(self, auth, person_id_or_email, site_id_or_login_base):
+        # Get account information
+        persons = Persons(self.api, [person_id_or_email])
+        if not persons:
+            raise PLCInvalidArgument, "No such account"
+        person = persons[0]
+
+        if person['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local account"
+
+        # Authenticated function
+        assert self.caller is not None
+
+        # Non-admins can only update their own primary site
+        if 'admin' not in self.caller['roles'] and \
+           self.caller['person_id'] != person['person_id']:
+            raise PLCPermissionDenied, "Not allowed to update specified account"
+
+        # Get site information
+        sites = Sites(self.api, [site_id_or_login_base])
+        if not sites:
+            raise PLCInvalidArgument, "No such site"
+        site = sites[0]
+
+        if site['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local site"
+
+        if site['site_id'] not in person['site_ids']:
+            raise PLCInvalidArgument, "Not a member of the specified site"
+
+        person.set_primary_site(site)
+
+        return 1
diff --git a/trunk/PLC/Methods/SliceCreate.py b/trunk/PLC/Methods/SliceCreate.py
new file mode 100644 (file)
index 0000000..cc30b52
--- /dev/null
@@ -0,0 +1,25 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+from PLC.Slices import Slice, Slices
+from PLC.Methods.AddSlice import AddSlice
+
+class SliceCreate(AddSlice):
+    """
+    Deprecated. See AddSlice.
+    """
+
+    status = "deprecated"
+    
+    accepts = [
+        Auth(),
+        Slice.fields['name'],
+        AddSlice.accepts[1]
+        ]
+    
+    returns = Parameter(int, 'New slice_id (> 0) if successful')
+
+    def call(self, auth, name, slice_fields = {}):
+        slice_fields['name'] = name
+        return AddSlice.call(self, auth, slice_fields)
diff --git a/trunk/PLC/Methods/SliceDelete.py b/trunk/PLC/Methods/SliceDelete.py
new file mode 100644 (file)
index 0000000..70f6696
--- /dev/null
@@ -0,0 +1,29 @@
+import re
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Slices import Slice, Slices
+from PLC.Auth import Auth
+from PLC.Methods.DeleteSlice import DeleteSlice
+
+class SliceDelete(DeleteSlice):
+    """
+    Deprecated. See DeleteSlice.
+
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi']
+
+    accepts = [
+        Auth(),
+        Slice.fields['name']
+        ]
+
+    returns = Parameter(int, 'Returns 1 if successful, a fault otherwise.')
+
+    def call(self, auth, slice_name):
+
+       return DeleteSlice.call(self, auth, slice_name)
diff --git a/trunk/PLC/Methods/SliceExtendedInfo.py b/trunk/PLC/Methods/SliceExtendedInfo.py
new file mode 100644 (file)
index 0000000..1211610
--- /dev/null
@@ -0,0 +1,84 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Auth import Auth
+from PLC.Slices import Slice, Slices
+from PLC.SliceAttributes import SliceAttribute, SliceAttributes
+from PLC.Sites import Site, Sites
+from PLC.Nodes import Node, Nodes
+from PLC.Persons import Person, Persons
+
+class SliceExtendedInfo(Method):
+    """
+    Deprecated. Can be implemented with GetSlices.
+
+    Returns an array of structs containing details about slices. 
+    The summary can optionally include the list of nodes in and 
+    users of each slice.
+
+    Users may only query slices of which they are members. PIs may
+    query any of the slices at their sites. Admins may query any
+    slice. If a slice that cannot be queried is specified in
+    slice_filter, details about that slice will not be returned.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+        [Slice.fields['name']],
+        Parameter(bool, "Whether or not to return users for the slices", nullok = True),
+       Parameter(bool, "Whether or not to return nodes for the slices", nullok = True)
+        ]
+
+    returns = [Slice.fields]
+    
+
+    def call(self, auth, slice_name_list=None, return_users=None, return_nodes=None, return_attributes=None):
+       # If we are not admin, make sure to return only viewable
+       # slices.
+       slice_filter = slice_name_list
+       slices = Slices(self.api, slice_filter)
+       if not slices:
+            raise PLCInvalidArgument, "No such slice"
+
+        if 'admin' not in self.caller['roles']:
+            # Get slices that we are able to view
+            valid_slice_ids = self.caller['slice_ids']
+            if 'pi' in self.caller['roles'] and self.caller['site_ids']:
+                sites = Sites(self.api, self.caller['site_ids'])
+                for site in sites:
+                    valid_slice_ids += site['slice_ids']
+
+            if not valid_slice_ids:
+                return []
+         
+           slices = filter(lambda slice: slice['slice_id'] in valid_slice_ids, slices)
+
+       for slice in slices:
+           index = slices.index(slice)
+            node_ids = slices[index].pop('node_ids')
+            person_ids = slices[index].pop('person_ids')
+           attribute_ids = slices[index].pop('slice_attribute_ids')
+            if return_users or return_users is None:
+                persons = Persons(self.api, person_ids)
+                person_info = [{'email': person['email'], 
+                               'person_id': person['person_id']} \
+                              for person in persons]
+                slices[index]['users'] = person_info
+            if return_nodes or return_nodes is None:
+                nodes = Nodes(self.api, node_ids)
+                node_info = [{'hostname': node['hostname'], 
+                             'node_id': node['node_id']} \
+                            for node in nodes]
+                slices[index]['nodes'] = node_info
+           if return_attributes or return_attributes is None:
+               attributes = SliceAttributes(self.api, attribute_ids)
+               attribute_info = [{'name': attribute['name'],
+                                  'value': attribute['value']} \
+                                 for attribute in attributes]
+               slices[index]['attributes'] = attribute_info
+       
+        return slices
diff --git a/trunk/PLC/Methods/SliceGetTicket.py b/trunk/PLC/Methods/SliceGetTicket.py
new file mode 100644 (file)
index 0000000..64413c9
--- /dev/null
@@ -0,0 +1,249 @@
+import os
+import sys
+from subprocess import Popen, PIPE, call
+from tempfile import NamedTemporaryFile
+from xml.sax.saxutils import escape, quoteattr, XMLGenerator
+
+from PLC.Faults import *
+from PLC.Slices import Slice, Slices
+from PLC.Nodes import Node, Nodes
+from PLC.Persons import Person, Persons
+from PLC.SliceAttributes import SliceAttribute, SliceAttributes
+
+from PLC.Methods.GetSliceTicket import GetSliceTicket
+
+class PrettyXMLGenerator(XMLGenerator):
+    """
+    Adds indentation to the beginning and newlines to the end of
+    opening and closing tags.
+    """
+
+    def __init__(self, out = sys.stdout, encoding = "utf-8", indent = "", addindent = "", newl = ""):
+        XMLGenerator.__init__(self, out, encoding)
+        # XMLGenerator does not export _write()
+        self.write = self.ignorableWhitespace
+        self.indents = [indent]
+        self.addindent = addindent
+        self.newl = newl
+
+    def startDocument(self):
+        XMLGenerator.startDocument(self)
+
+    def startElement(self, name, attrs, indent = True, newl = True):
+        if indent:
+            self.ignorableWhitespace("".join(self.indents))
+        self.indents.append(self.addindent)
+
+        XMLGenerator.startElement(self, name, attrs)
+
+        if newl:
+            self.ignorableWhitespace(self.newl)
+
+    def characters(self, content):
+        # " to &quot;
+        # ' to &apos;
+        self.write(escape(content, {
+            '"': '&quot;',
+            "'": '&apos;',
+            }))
+
+    def endElement(self, name, indent = True, newl = True):
+        self.indents.pop()
+        if indent:
+            self.ignorableWhitespace("".join(self.indents))
+
+        XMLGenerator.endElement(self, name)
+
+        if newl:
+            self.ignorableWhitespace(self.newl)
+
+    def simpleElement(self, name, attrs = {}, indent = True, newl = True):
+        if indent:
+            self.ignorableWhitespace("".join(self.indents))
+
+        self.write('<' + name)
+        for (name, value) in attrs.items():
+            self.write(' %s=%s' % (name, quoteattr(value)))
+        self.write('/>')
+
+        if newl:
+            self.ignorableWhitespace(self.newl)
+
+class SliceGetTicket(GetSliceTicket):
+    """
+    Deprecated. See GetSliceTicket.
+
+    Warning: This function exists solely for backward compatibility
+    with the old public PlanetLab 3.0 Node Manager, which will be
+    removed from service by 2007. This call is not intended to be used
+    by any other PLC except the public PlanetLab.
+    """
+
+    status = "deprecated"
+
+    def call(self, auth, slice_id_or_name):
+        slices = Slices(self.api, [slice_id_or_name])
+        if not slices:
+            raise PLCInvalidArgument, "No such slice"
+        slice = slices[0]
+
+        # Allow peers to obtain tickets for their own slices
+        if slice['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local slice"
+
+        if slice['instantiation'] != 'delegated':
+            raise PLCInvalidArgument, "Not in delegated state"
+
+        nodes = Nodes(self.api, slice['node_ids']).dict()
+        persons = Persons(self.api, slice['person_ids']).dict()
+        slice_attributes = SliceAttributes(self.api, slice['slice_attribute_ids']).dict()
+
+        ticket = NamedTemporaryFile()
+
+        xml = PrettyXMLGenerator(out = ticket, encoding = self.api.encoding, indent = "", addindent = "  ", newl = "\n")
+        xml.startDocument()
+
+        # <ticket>
+        xml.startElement('ticket', {})
+
+        # <slice name="site_slice" id="12345" expiry="1138712648">
+        xml.startElement('slice',
+                         {'id': str(slice['slice_id']),
+                          'name': unicode(slice['name']),
+                          'expiry': unicode(int(slice['expires']))})
+        
+        # <nodes>
+        xml.startElement('nodes', {})
+        for node_id in slice['node_ids']:
+            if not nodes.has_key(node_id):
+                continue
+            node = nodes[node_id]
+            # <node id="12345" hostname="node.site.domain"/>
+            xml.simpleElement('node',
+                              {'id': str(node['node_id']),
+                               'hostname': unicode(node['hostname'])})
+        # </nodes>
+        xml.endElement('nodes')
+
+        # <users>
+        xml.startElement('users', {})
+        for person_id in slice['person_ids']:
+            if not persons.has_key(person_id):
+                continue
+            user = persons[person_id]
+            # <user person_id="12345" email="user@site.domain"/>
+            xml.simpleElement('user',
+                              {'person_id': unicode(user['person_id']),
+                               'email': unicode(user['email'])})
+        # </users>
+        xml.endElement('users')
+
+        # <rspec>
+        xml.startElement('rspec', {})
+        for slice_attribute_id in slice['slice_attribute_ids']:
+            if not slice_attributes.has_key(slice_attribute_id):
+                continue
+            slice_attribute = slice_attributes[slice_attribute_id]
+
+            name = slice_attribute['name']
+            value = slice_attribute['value']
+
+            def kbps_to_bps(kbps):
+                bps = int(kbps) * 1000
+                return bps
+
+            def max_kbyte_to_bps(max_kbyte):
+                bps = int(max_kbyte) * 1000 * 8 / 24 / 60 / 60
+                return bps
+
+            # XXX Used to support multiple named values for each attribute type
+            name_type_cast = {
+                'cpu_share': ('nm_cpu_share', 'cpu_share', 'integer', int),
+
+                'net_share': ('nm_net_share', 'rate', 'integer', int),
+                'net_min_rate': ('nm_net_min_rate', 'rate', 'integer', int),
+                'net_max_rate': ('nm_net_max_rate', 'rate', 'integer', int),
+                'net_max_kbyte': ('nm_net_avg_rate', 'rate', 'integer', max_kbyte_to_bps),
+
+                'net_i2_share': ('nm_net_exempt_share', 'rate', 'integer', int),
+                'net_i2_min_rate': ('nm_net_exempt_min_rate', 'rate', 'integer', kbps_to_bps),
+                'net_i2_max_rate': ('nm_net_exempt_max_rate', 'rate', 'integer', kbps_to_bps),
+                'net_i2_max_kbyte': ('nm_net_exempt_avg_rate', 'rate', 'integer', max_kbyte_to_bps),
+
+                'disk_max': ('nm_disk_quota', 'quota', 'integer', int),
+                'plc_agent_version': ('plc_agent_version', 'version', 'string', str),
+                'plc_slice_type': ('plc_slice_type', 'type', 'string', str),
+                'plc_ticket_pubkey': ('plc_ticket_pubkey', 'key', 'string', str),
+                }
+
+            if name == 'initscript':
+                (attribute_name, value_name, type) = ('initscript', 'initscript_id', 'integer')
+                value = slice_attribute['slice_attribute_id']
+            elif name in name_type_cast:
+                (attribute_name, value_name, type, cast) = name_type_cast[name]
+                value = cast(value)
+            else:
+                attribute_name = value_name = name
+                type = "string"
+
+            # <resource name="slice_attribute_type">
+            xml.startElement('resource', {'name': unicode(attribute_name)})
+
+            # <value name="element_name" type="element_type">
+            xml.startElement('value',
+                             {'name': unicode(value_name),
+                              'type': type},
+                             newl = False)
+            # element value
+            xml.characters(unicode(value))
+            # </value>
+            xml.endElement('value', indent = False)
+
+            # </resource>
+            xml.endElement('resource')
+        # </rspec>
+        xml.endElement('rspec')
+
+        # </slice>
+        xml.endElement('slice')
+
+        # Add signature template
+        xml.startElement('Signature', {'xmlns': "http://www.w3.org/2000/09/xmldsig#"})
+        xml.startElement('SignedInfo', {})
+        xml.simpleElement('CanonicalizationMethod', {'Algorithm': "http://www.w3.org/TR/2001/REC-xml-c14n-20010315"})
+        xml.simpleElement('SignatureMethod', {'Algorithm': "http://www.w3.org/2000/09/xmldsig#rsa-sha1"})
+        xml.startElement('Reference', {'URI': ""})
+        xml.startElement('Transforms', {})
+        xml.simpleElement('Transform', {'Algorithm': "http://www.w3.org/2000/09/xmldsig#enveloped-signature"})
+        xml.endElement('Transforms')
+        xml.simpleElement('DigestMethod', {'Algorithm': "http://www.w3.org/2000/09/xmldsig#sha1"})
+        xml.simpleElement('DigestValue', {})
+        xml.endElement('Reference')
+        xml.endElement('SignedInfo')
+        xml.simpleElement('SignatureValue', {})
+        xml.endElement('Signature')
+
+        xml.endElement('ticket')
+        xml.endDocument()
+
+        if not hasattr(self.api.config, 'PLC_API_TICKET_KEY') or \
+           not os.path.exists(self.api.config.PLC_API_TICKET_KEY):
+            raise PLCAPIError, "Slice ticket signing key not found"
+
+        ticket.flush()
+
+        # Sign the ticket
+        p = Popen(["xmlsec1", "--sign",
+                   "--privkey-pem", self.api.config.PLC_API_TICKET_KEY,
+                   ticket.name],
+                  stdin = PIPE, stdout = PIPE, stderr = PIPE, close_fds = True)
+        signed_ticket = p.stdout.read()
+        err = p.stderr.read()
+        rc = p.wait()
+
+        ticket.close()
+
+        if rc:
+            raise PLCAPIError, err
+
+        return signed_ticket
diff --git a/trunk/PLC/Methods/SliceInfo.py b/trunk/PLC/Methods/SliceInfo.py
new file mode 100644 (file)
index 0000000..9645f99
--- /dev/null
@@ -0,0 +1,75 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Faults import *
+from PLC.Filter import Filter
+from PLC.Auth import Auth
+from PLC.Slices import Slice, Slices
+from PLC.Sites import Site, Sites
+from PLC.Persons import Person, Persons
+from PLC.Nodes import Node, Nodes
+
+class SliceInfo(Method):
+    """
+    Deprecated. Can be implemented with GetSlices.
+
+    Returns an array of structs containing details about slices. 
+    The summary can optionally include the list of nodes in and 
+    users of each slice.
+
+    Users may only query slices of which they are members. PIs may
+    query any of the slices at their sites. Admins may query any
+    slice. If a slice that cannot be queried is specified in
+    slice_filter, details about that slice will not be returned.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+        [Mixed(Slice.fields['name'])],
+        Parameter(bool, "Whether or not to return users for the slices", nullok = True),
+       Parameter(bool, "Whether or not to return nodes for the slices", nullok = True)
+        ]
+
+    returns = [Slice.fields]
+    
+
+    def call(self, auth, slice_name_list=None, return_users=None, return_nodes=None):
+       # If we are not admin, make sure to return only viewable
+       # slices.
+       slice_filter = slice_name_list
+       slices = Slices(self.api, slice_filter)
+       if not slices:
+            raise PLCInvalidArgument, "No such slice"
+
+        if 'admin' not in self.caller['roles']:
+            # Get slices that we are able to view
+            valid_slice_ids = self.caller['slice_ids']
+            if 'pi' in self.caller['roles'] and self.caller['site_ids']:
+                sites = Sites(self.api, self.caller['site_ids'])
+                for site in sites:
+                    valid_slice_ids += site['slice_ids']
+
+            if not valid_slice_ids:
+                return []
+       
+           slices = filter(lambda slice: slice['slice_id'] in valid_slice_ids, slices)
+
+
+       for slice in slices:
+           index = slices.index(slice)
+           node_ids = slices[index].pop('node_ids')
+           person_ids = slices[index].pop('person_ids')
+           if return_users or return_users is None:
+               persons = Persons(self.api, person_ids)
+               emails = [person['email'] for person in persons]
+               slices[index]['users'] = emails
+           if return_nodes or return_nodes is None:
+               nodes = Nodes(self.api, node_ids)
+               hostnames = [node['hostname'] for node in nodes]
+               slices[index]['nodes'] = hostnames
+               
+       
+        return slices
diff --git a/trunk/PLC/Methods/SliceListNames.py b/trunk/PLC/Methods/SliceListNames.py
new file mode 100644 (file)
index 0000000..4d94933
--- /dev/null
@@ -0,0 +1,45 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Auth import Auth
+from PLC.Slices import Slice, Slices
+from PLC.Methods.GetSlices import GetSlices
+
+class SliceListNames(GetSlices):
+    """
+    Deprecated. Can be implemented with GetSlices.
+
+    List the names of registered slices.
+
+    Users may only query slices of which they are members. PIs may
+    query any of the slices at their sites. Admins may query any
+    slice. If a slice that cannot be queried is specified in
+    slice_filter, details about that slice will not be returned.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+        Parameter(str, "Slice prefix", nullok = True)
+        ]
+
+    returns = [Slice.fields['name']]
+    
+
+    def call(self, auth, prefix=None):
+
+       slice_filter = None
+        if prefix:
+            slice_filter = {'name': prefix+'*'}
+       
+        slices = GetSlices.call(self, auth, slice_filter)
+       
+        if not slices:
+            raise PLCInvalidArgument, "No such slice"
+       
+       slice_names = [slice['name'] for slice in slices]
+
+        return slice_names
diff --git a/trunk/PLC/Methods/SliceListUserSlices.py b/trunk/PLC/Methods/SliceListUserSlices.py
new file mode 100644 (file)
index 0000000..9e054ed
--- /dev/null
@@ -0,0 +1,47 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Auth import Auth
+from PLC.Slices import Slice, Slices
+from PLC.Persons import Person, Persons
+from PLC.Methods.GetSlices import GetSlices
+from PLC.Methods.GetPersons import GetPersons
+
+class SliceListUserSlices(GetSlices, GetPersons):
+    """
+    Deprecated. Can be implemented with GetPersons and GetSlices.
+
+    Return the slices the specified user (by email address) is a member of.
+
+    Users may only query slices of which they are members. PIs may
+    query any of the slices at their sites. Admins may query any
+    slice. If a slice that cannot be queried is specified in
+    slice_filter, details about that slice will not be returned.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+        Person.fields['email']
+        ]
+
+    returns = [Slice.fields['name']]
+    
+
+    def call(self, auth, email):
+
+       persons = GetPersons.call(self, auth, [email])
+       if not persons:
+               return []
+       person = persons[0]
+       slice_ids = person['slice_ids']
+       if not slice_ids:
+               return []
+       
+       slices = GetSlices.call(self, auth, slice_ids)
+       slice_names = [slice['name'] for slice in slices]
+
+        return slice_names
diff --git a/trunk/PLC/Methods/SliceNodesAdd.py b/trunk/PLC/Methods/SliceNodesAdd.py
new file mode 100644 (file)
index 0000000..35ccabe
--- /dev/null
@@ -0,0 +1,29 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.Slices import Slice, Slices
+from PLC.Auth import Auth
+from PLC.Methods.AddSliceToNodes import AddSliceToNodes
+
+class SliceNodesAdd(AddSliceToNodes):
+    """
+    Deprecated. See AddSliceToNodes.
+
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+        Slice.fields['name'],
+        [Node.fields['hostname']]
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, slice_name, nodes_list):
+
+       return AddSliceToNodes.call(self, auth, slice_name, nodes_list)
diff --git a/trunk/PLC/Methods/SliceNodesDel.py b/trunk/PLC/Methods/SliceNodesDel.py
new file mode 100644 (file)
index 0000000..66c0ed2
--- /dev/null
@@ -0,0 +1,29 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.Slices import Slice, Slices
+from PLC.Auth import Auth
+from PLC.Methods.DeleteSliceFromNodes import DeleteSliceFromNodes
+
+class SliceNodesDel(DeleteSliceFromNodes):
+    """
+    Deprecated. See DeleteSliceFromNodes.
+
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+        Slice.fields['name'],
+        [Node.fields['hostname']]
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, slice_name, nodes_list):
+
+       return DeleteSliceFromNodes.call(self, auth, slice_name, nodes_list)
diff --git a/trunk/PLC/Methods/SliceNodesList.py b/trunk/PLC/Methods/SliceNodesList.py
new file mode 100644 (file)
index 0000000..0c44f66
--- /dev/null
@@ -0,0 +1,40 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Auth import Auth
+from PLC.Slices import Slice, Slices
+from PLC.Nodes import Node, Nodes
+from PLC.Methods.GetSlices import GetSlices
+from PLC.Methods.GetNodes import GetNodes
+
+class SliceNodesList(GetSlices, GetNodes):
+    """
+    Deprecated. Can be implemented with GetSlices and GetNodes.
+
+    """
+  
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+        Slice.fields['name']
+        ]
+
+    returns = [Node.fields['hostname']]
+    
+
+    def call(self, auth, slice_name):
+       slices = GetSlices.call(self, auth, [slice_name])
+       if not slices:
+           return []
+
+       slice = slices[0]
+       nodes = GetNodes.call(self, auth, slice['node_ids'])
+       if not nodes:
+           return []
+       
+       node_hostnames = [node['hostname'] for node in nodes]           
+       
+        return node_hostnames
diff --git a/trunk/PLC/Methods/SliceRenew.py b/trunk/PLC/Methods/SliceRenew.py
new file mode 100644 (file)
index 0000000..4ac6f89
--- /dev/null
@@ -0,0 +1,34 @@
+import time
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Slices import Slice, Slices
+from PLC.Auth import Auth
+from PLC.Methods.UpdateSlice import UpdateSlice 
+
+class SliceRenew(UpdateSlice):
+    """
+    Deprecated. See UpdateSlice.    
+
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+        Slice.fields['name'],
+       Slice.fields['expires']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, slice_name, slice_expires):
+
+       slice_fields = {}
+       slice_fields['expires'] = slice_expires
+       
+       return UpdateSlice.call(self, auth, slice_name, slice_fields)
diff --git a/trunk/PLC/Methods/SliceTicketGet.py b/trunk/PLC/Methods/SliceTicketGet.py
new file mode 100644 (file)
index 0000000..5b2b786
--- /dev/null
@@ -0,0 +1,13 @@
+from PLC.Methods.SliceGetTicket import SliceGetTicket
+
+class SliceTicketGet(SliceGetTicket):
+    """
+    Deprecated. See GetSliceTicket.
+
+    Warning: This function exists solely for backward compatibility
+    with the old public PlanetLab 3.0 Node Manager, which will be
+    removed from service by 2007. This call is not intended to be used
+    by any other PLC except the public PlanetLab.
+    """
+
+    status = "deprecated"
diff --git a/trunk/PLC/Methods/SliceUpdate.py b/trunk/PLC/Methods/SliceUpdate.py
new file mode 100644 (file)
index 0000000..9e82d3a
--- /dev/null
@@ -0,0 +1,37 @@
+import time
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Slices import Slice, Slices
+from PLC.Auth import Auth
+from PLC.Methods.UpdateSlice import UpdateSlice
+
+class SliceUpdate(UpdateSlice):
+    """
+    Deprecated. See UpdateSlice.
+   
+    """
+
+    status = 'deprecated'
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+        Slice.fields['name'],
+        Slice.fields['url'],
+        Slice.fields['description'],
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, slice_name, url, description):
+
+       slice_fields = {}
+       slice_fields['url'] = url
+       slice_fields['description'] = description
+       
+       return UpdateSlice.call(self, auth, slice_name, slice_fields)
+
+        return 1
diff --git a/trunk/PLC/Methods/SliceUserAdd.py b/trunk/PLC/Methods/SliceUserAdd.py
new file mode 100644 (file)
index 0000000..560a66a
--- /dev/null
@@ -0,0 +1,32 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Slices import Slice, Slices
+from PLC.Auth import Auth
+from PLC.Methods.AddPersonToSlice import AddPersonToSlice
+
+class SliceUserAdd(AddPersonToSlice):
+    """
+    Deprecated. See AddPersonToSlice.
+
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi']
+
+    accepts = [
+        Auth(),
+        Slice.fields['name'],
+        [Person.fields['email']],
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, slice_name, user_list):
+
+       for user in user_list:
+           AddPersonToSlice.call(self, auth, user, slice_name)
+
+        return 1
diff --git a/trunk/PLC/Methods/SliceUserDel.py b/trunk/PLC/Methods/SliceUserDel.py
new file mode 100644 (file)
index 0000000..0b41b15
--- /dev/null
@@ -0,0 +1,35 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+from PLC.Persons import Person, Persons
+from PLC.Slices import Slice, Slices
+from PLC.Methods.DeletePersonFromSlice import DeletePersonFromSlice
+
+class SliceUserDel(Method):
+    """
+    Deprecated. Can be implemented with DeletePersonFromSlice.
+
+    Removes the specified users from the specified slice. If the person is
+    already a member of the slice, no errors are returned. 
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi']
+
+    accepts = [
+        Auth(),
+        Slice.fields['name'],
+        [Person.fields['email']],
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, slice_name, user_list):
+       for user in user_list:
+           DeletePersonFromSlice.call(self, auth, user, slice_name)
+
+        return 1
diff --git a/trunk/PLC/Methods/SliceUsersList.py b/trunk/PLC/Methods/SliceUsersList.py
new file mode 100644 (file)
index 0000000..e3eb1e4
--- /dev/null
@@ -0,0 +1,45 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Auth import Auth
+from PLC.Slices import Slice, Slices
+from PLC.Persons import Person, Persons
+from PLC.Methods.GetSlices import GetSlices
+from PLC.Methods.GetPersons import GetPersons
+
+class SliceUsersList(GetSlices, GetPersons):
+    """
+    Deprecated. Can be implemented with GetSlices and GetPersons.
+
+    List users that are members of the named slice.
+
+    Users may only query slices of which they are members. PIs may
+    query any of the slices at their sites. Admins may query any
+    slice. If a slice that cannot be queried is specified details 
+    about that slice will not be returned.
+    """
+
+    status = "deprecated"
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+        Slice.fields['name']
+       ]
+
+    returns = [Person.fields['email']]
+    
+
+    def call(self, auth, slice_name):
+
+       slice_filter = [slice_name]
+        slices = GetSlices.call(self, auth, slice_filter)
+       if not slices:
+            return []
+       slice = slices[0]
+     
+       persons = GetPersons.call(self, auth, slice['person_ids'])
+       person_emails = [person['email'] for person in persons]
+
+        return person_emails
diff --git a/trunk/PLC/Methods/UpdateAddress.py b/trunk/PLC/Methods/UpdateAddress.py
new file mode 100644 (file)
index 0000000..ed2fd43
--- /dev/null
@@ -0,0 +1,54 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Addresses import Address, Addresses
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in \
+             ['line1', 'line2', 'line3',
+              'city', 'state', 'postalcode', 'country']
+
+class UpdateAddress(Method):
+    """
+    Updates the parameters of an existing address with the values in
+    address_fields.
+
+    PIs may only update addresses of their own sites.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi']
+
+    address_fields = dict(filter(can_update, Address.fields.items()))
+
+    accepts = [
+        Auth(),
+        Address.fields['address_id'],
+        address_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, address_id, address_fields):
+        address_fields = dict(filter(can_update, address_fields.items()))
+
+        # Get associated address details
+        addresses = Addresses(self.api, [address_id])
+        if not addresses:
+            raise PLCInvalidArgument, "No such address"
+        address = addresses[0]
+
+        if 'admin' not in self.caller['roles']:
+            if address['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Address must be associated with one of your sites"
+
+        address.update(address_fields)
+        address.sync()
+       
+       # Logging variables
+       self.event_objects = {'Address': [address['address_id']]}
+       self.message = 'Address %d updated: %s' % \
+               (address['address_id'], ", ".join(address_fields.keys()))
+        
+       return 1
diff --git a/trunk/PLC/Methods/UpdateAddressType.py b/trunk/PLC/Methods/UpdateAddressType.py
new file mode 100644 (file)
index 0000000..922c940
--- /dev/null
@@ -0,0 +1,42 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.AddressTypes import AddressType, AddressTypes
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in ['name', 'description']
+
+class UpdateAddressType(Method):
+    """
+    Updates the parameters of an existing address type with the values
+    in address_type_fields.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    address_type_fields = dict(filter(can_update, AddressType.fields.items()))
+
+    accepts = [
+        Auth(),
+        Mixed(AddressType.fields['address_type_id'],
+              AddressType.fields['name']),
+        address_type_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, address_type_id_or_name, address_type_fields):
+        address_type_fields = dict(filter(can_update, address_type_fields.items()))
+
+        address_types = AddressTypes(self.api, [address_type_id_or_name])
+        if not address_types:
+            raise PLCInvalidArgument, "No such address type"
+        address_type = address_types[0]
+
+        address_type.update(address_type_fields)
+        address_type.sync()
+       self.event_objects = {'AddressType': [address_type['address_type_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/UpdateConfFile.py b/trunk/PLC/Methods/UpdateConfFile.py
new file mode 100644 (file)
index 0000000..6fd0e2a
--- /dev/null
@@ -0,0 +1,42 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.ConfFiles import ConfFile, ConfFiles
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field not in \
+             ['conf_file_id', 'node_ids', 'nodegroup_ids']
+
+class UpdateConfFile(Method):
+    """
+    Updates a node configuration file. Only the fields specified in
+    conf_file_fields are updated, all other fields are left untouched.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    conf_file_fields = dict(filter(can_update, ConfFile.fields.items()))
+
+    accepts = [
+        Auth(),
+        ConfFile.fields['conf_file_id'],
+        conf_file_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, conf_file_id, conf_file_fields):
+        conf_file_fields = dict(filter(can_update, conf_file_fields.items()))
+
+        conf_files = ConfFiles(self.api, [conf_file_id])
+        if not conf_files:
+            raise PLCInvalidArgument, "No such configuration file"
+
+        conf_file = conf_files[0]
+        conf_file.update(conf_file_fields)
+        conf_file.sync()
+       self.event_objects = {'ConfFile': [conf_file['conf_file_id']]}  
+
+        return 1
diff --git a/trunk/PLC/Methods/UpdateInitScript.py b/trunk/PLC/Methods/UpdateInitScript.py
new file mode 100644 (file)
index 0000000..bb0f1f0
--- /dev/null
@@ -0,0 +1,42 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.InitScripts import InitScript, InitScripts
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field not in \
+             ['initscript_id']
+
+class UpdateInitScript(Method):
+    """
+    Updates an initscript. Only the fields specified in
+    initscript_fields are updated, all other fields are left untouched.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    initscript_fields = dict(filter(can_update, InitScript.fields.items()))
+
+    accepts = [
+        Auth(),
+        InitScript.fields['initscript_id'],
+        initscript_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, initscript_id, initscript_fields):
+        initscript_fields = dict(filter(can_update, initscript_fields.items()))
+
+        initscripts = InitScripts(self.api, [initscript_id])
+        if not initscripts:
+            raise PLCInvalidArgument, "No such initscript"
+
+        initscript = initscripts[0]
+        initscript.update(initscript_fields)
+        initscript.sync()
+       self.event_objects = {'InitScript': [initscript['initscript_id']]}      
+
+        return 1
diff --git a/trunk/PLC/Methods/UpdateKey.py b/trunk/PLC/Methods/UpdateKey.py
new file mode 100644 (file)
index 0000000..0fb560b
--- /dev/null
@@ -0,0 +1,55 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Keys import Key, Keys
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in \
+             ['key_type', 'key']
+
+class UpdateKey(Method):
+    """
+    Updates the parameters of an existing key with the values in
+    key_fields.
+
+    Non-admins may only update their own keys.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech', 'user']
+
+    key_fields = dict(filter(can_update, Key.fields.items()))
+
+    accepts = [
+        Auth(),
+        Key.fields['key_id'],
+        key_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, key_id, key_fields):
+        key_fields = dict(filter(can_update, key_fields.items()))
+
+        # Get key information
+        keys = Keys(self.api, [key_id])
+        if not keys:
+            raise PLCInvalidArgument, "No such key"
+        key = keys[0]
+
+        if key['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local key"
+
+        if 'admin' not in self.caller['roles']:
+            if key['key_id'] not in self.caller['key_ids']:
+                raise PLCPermissionDenied, "Key must be associated with one of your accounts"
+
+        key.update(key_fields)
+        key.sync()
+       
+       # Logging variables
+       self.event_objects = {'Key': [key['key_id']]}
+       self.message = 'key %d updated: %s' % \
+               (key['key_id'], ", ".join(key_fields.keys()))
+        return 1
diff --git a/trunk/PLC/Methods/UpdateMessage.py b/trunk/PLC/Methods/UpdateMessage.py
new file mode 100644 (file)
index 0000000..e44dca4
--- /dev/null
@@ -0,0 +1,43 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Messages import Message, Messages
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in \
+             ['template', 'enabled']
+
+class UpdateMessage(Method):
+    """
+    Updates the parameters of an existing message template with the
+    values in message_fields.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    message_fields = dict(filter(can_update, Message.fields.items()))
+
+    accepts = [
+        Auth(),
+        Message.fields['message_id'],
+        message_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, message_id, message_fields):
+        message_fields = dict(filter(can_update, message_fields.items()))
+
+        # Get message information
+        messages = Messages(self.api, [message_id])
+        if not messages:
+            raise PLCInvalidArgument, "No such message"
+        message = messages[0]
+
+        message.update(message_fields)
+        message.sync()
+       self.event_objects = {'Message': [message['message_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/UpdateNode.py b/trunk/PLC/Methods/UpdateNode.py
new file mode 100644 (file)
index 0000000..d5cdb0d
--- /dev/null
@@ -0,0 +1,81 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.Auth import Auth
+
+related_fields = Node.related_fields.keys()
+can_update = lambda (field, value): field in \
+             ['hostname', 'boot_state', 'model', 'version',
+              'key', 'session', 'boot_nonce'] + \
+            related_fields
+
+class UpdateNode(Method):
+    """
+    Updates a node. Only the fields specified in node_fields are
+    updated, all other fields are left untouched.
+    
+    PIs and techs can update only the nodes at their sites. Only
+    admins can update the key, session, and boot_nonce fields.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech']
+
+    node_fields = dict(filter(can_update, Node.fields.items() + Node.related_fields.items()))
+
+    accepts = [
+        Auth(),
+        Mixed(Node.fields['node_id'],
+              Node.fields['hostname']),
+        node_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, node_id_or_hostname, node_fields):
+        node_fields = dict(filter(can_update, node_fields.items()))
+
+       # Remove admin only fields
+       if 'admin' not in self.caller['roles']:
+            for key in 'key', 'session', 'boot_nonce':
+                if node_fields.has_key(key):
+                    del node_fields[key]
+
+        # Get account information
+        nodes = Nodes(self.api, [node_id_or_hostname])
+        if not nodes:
+            raise PLCInvalidArgument, "No such node"
+        node = nodes[0]
+
+        if node['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local node"
+
+        # Authenticated function
+        assert self.caller is not None
+
+        # If we are not an admin, make sure that the caller is a
+        # member of the site at which the node is located.
+        if 'admin' not in self.caller['roles']:
+            if node['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to delete nodes from specified site"
+
+        # Make requested associations
+        for field in related_fields:
+            if field in node_fields:
+                node.associate(auth, field, node_fields[field])
+                node_fields.pop(field)
+
+       node.update(node_fields)
+       node.update_last_updated(False)
+        node.sync()
+       
+       # Logging variables
+       self.event_objects = {'Node': [node['node_id']]}
+       self.message = 'Node %d updated: %s.' % \
+               (node['node_id'], ", ".join(node_fields.keys()))
+       if 'boot_state' in node_fields.keys():
+               self.message += ' boot_state updated to %s' %  node_fields['boot_state']
+
+        return 1
diff --git a/trunk/PLC/Methods/UpdateNodeGroup.py b/trunk/PLC/Methods/UpdateNodeGroup.py
new file mode 100644 (file)
index 0000000..c84c7f1
--- /dev/null
@@ -0,0 +1,54 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.NodeGroups import NodeGroup, NodeGroups
+from PLC.Auth import Auth
+
+related_fields = NodeGroup.related_fields.keys()
+can_update = lambda (field, value): field in \
+             ['name', 'description'] + \
+            related_fields
+
+class UpdateNodeGroup(Method):
+    """
+    Updates a custom node group.
+     
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    nodegroup_fields = dict(filter(can_update, NodeGroup.fields.items() + NodeGroup.related_fields.items()))
+
+    accepts = [
+        Auth(),
+        Mixed(NodeGroup.fields['nodegroup_id'],
+             NodeGroup.fields['name']),
+        nodegroup_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, nodegroup_id_or_name, nodegroup_fields):
+        nodegroup_fields = dict(filter(can_update, nodegroup_fields.items()))
+
+       # Get nodegroup information
+       nodegroups = NodeGroups(self.api, [nodegroup_id_or_name])
+       if not nodegroups:
+            raise PLCInvalidArgument, "No such nodegroup"
+       nodegroup = nodegroups[0]
+
+       # Make requested associations
+        for field in related_fields:
+            if field in nodegroup_fields:
+                nodegroup.associate(auth, field, nodegroup_fields[field])
+                nodegroup_fields.pop(field)
+       
+       nodegroup.update(nodegroup_fields)
+        nodegroup.sync()
+       
+       # Logging variables
+       self.event_objects = {'NodeGroup': [nodegroup['nodegroup_id']]}
+       self.message = 'Node group %d updated: %s' % \
+               (nodegroup['nodegroup_id'], ", ".join(nodegroup_fields.keys()))  
+        return 1
diff --git a/trunk/PLC/Methods/UpdateNodeNetwork.py b/trunk/PLC/Methods/UpdateNodeNetwork.py
new file mode 100644 (file)
index 0000000..dc1e65a
--- /dev/null
@@ -0,0 +1,69 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Nodes import Node, Nodes
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field not in \
+             ['nodenetwork_id','node_id']
+
+class UpdateNodeNetwork(Method):
+    """
+    Updates an existing node network. Any values specified in
+    nodenetwork_fields are used, otherwise defaults are
+    used. Acceptable values for method are dhcp and static. If type is
+    static, then ip, gateway, network, broadcast, netmask, and dns1
+    must all be specified in nodenetwork_fields. If type is dhcp,
+    these parameters, even if specified, are ignored.
+    
+    PIs and techs may only update networks associated with their own
+    nodes. Admins may update any node network.
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech']
+
+    nodenetwork_fields = dict(filter(can_update, NodeNetwork.fields.items()))
+
+    accepts = [
+        Auth(),
+       NodeNetwork.fields['nodenetwork_id'],
+       nodenetwork_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, nodenetwork_id, nodenetwork_fields):
+        nodenetwork_fields = dict(filter(can_update, nodenetwork_fields.items()))
+
+       # Get node network information
+       nodenetworks = NodeNetworks(self.api, [nodenetwork_id])
+       if not nodenetworks:
+            raise PLCInvalidArgument, "No such node network"
+
+       nodenetwork = nodenetworks[0]
+               
+        # Authenticated function
+        assert self.caller is not None
+
+       # If we are not an admin, make sure that the caller is a
+        # member of the site where the node exists.
+        if 'admin' not in self.caller['roles']:
+            nodes = Nodes(self.api, [nodenetwork['node_id']])
+            if not nodes:
+                raise PLCPermissionDenied, "Node network is not associated with a node"
+            node = nodes[0]
+            if node['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to update node network"
+
+       # Update node network
+       nodenetwork.update(nodenetwork_fields)
+        nodenetwork.sync()
+       
+       self.event_objects = {'NodeNetwork': [nodenetwork['nodenetwork_id']]}
+       self.message = "Node network %d updated: %s " % \
+           (nodenetwork['nodenetwork_id'], ", ".join(nodenetwork_fields.keys()))
+
+        return 1
diff --git a/trunk/PLC/Methods/UpdateNodeNetworkSetting.py b/trunk/PLC/Methods/UpdateNodeNetworkSetting.py
new file mode 100644 (file)
index 0000000..bd59879
--- /dev/null
@@ -0,0 +1,72 @@
+#
+# Thierry Parmentelat - INRIA
+#
+# $Revision$
+#
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+
+from PLC.NodeNetworkSettings import NodeNetworkSetting, NodeNetworkSettings
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+
+from PLC.Nodes import Nodes
+from PLC.Sites import Sites
+
+class UpdateNodeNetworkSetting(Method):
+    """
+    Updates the value of an existing nodenetwork setting
+
+    Access rights depend on the nodenetwork setting type.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech', 'user']
+
+    accepts = [
+        Auth(),
+        NodeNetworkSetting.fields['nodenetwork_setting_id'],
+        NodeNetworkSetting.fields['value']
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    object_type = 'NodeNetwork'
+
+    def call(self, auth, nodenetwork_setting_id, value):
+        nodenetwork_settings = NodeNetworkSettings(self.api, [nodenetwork_setting_id])
+        if not nodenetwork_settings:
+            raise PLCInvalidArgument, "No such nodenetwork setting %r"%nodenetwork_setting_id
+        nodenetwork_setting = nodenetwork_settings[0]
+
+        ### reproducing a check from UpdateSliceAttribute, looks dumb though
+        nodenetworks = NodeNetworks(self.api, [nodenetwork_setting['nodenetwork_id']])
+        if not nodenetworks:
+            raise PLCInvalidArgument, "No such nodenetwork %r"%nodenetwork_setting['nodenetwork_id']
+        nodenetwork = nodenetworks[0]
+
+        assert nodenetwork_setting['nodenetwork_setting_id'] in nodenetwork['nodenetwork_setting_ids']
+
+       # check permission : it not admin, is the user affiliated with the right site
+       if 'admin' not in self.caller['roles']:
+           # locate node
+           node = Nodes (self.api,[nodenetwork['node_id']])[0]
+           # locate site
+           site = Sites (self.api, [node['site_id']])[0]
+           # check caller is affiliated with this site
+           if self.caller['person_id'] not in site['person_ids']:
+               raise PLCPermissionDenied, "Not a member of the hosting site %s"%site['abbreviated_site']
+           
+           required_min_role = nodenetwork_setting_type ['min_role_id']
+           if required_min_role is not None and \
+                   min(self.caller['role_ids']) > required_min_role:
+               raise PLCPermissionDenied, "Not allowed to modify the specified nodenetwork setting, requires role %d",required_min_role
+
+        nodenetwork_setting['value'] = value
+        nodenetwork_setting.sync()
+
+       self.object_ids = [nodenetwork_setting['nodenetwork_setting_id']]
+        return 1
diff --git a/trunk/PLC/Methods/UpdateNodeNetworkSettingType.py b/trunk/PLC/Methods/UpdateNodeNetworkSettingType.py
new file mode 100644 (file)
index 0000000..5501c11
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Thierry Parmentelat - INRIA
+#
+# $Revision$
+#
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.NodeNetworkSettingTypes import NodeNetworkSettingType, NodeNetworkSettingTypes
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in \
+             ['name', 'description', 'category', 'min_role_id']
+
+class UpdateNodeNetworkSettingType(Method):
+    """
+    Updates the parameters of an existing setting type
+    with the values in nodenetwork_setting_type_fields.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    nodenetwork_setting_type_fields = dict(filter(can_update, NodeNetworkSettingType.fields.items()))
+
+    accepts = [
+        Auth(),
+        Mixed(NodeNetworkSettingType.fields['nodenetwork_setting_type_id'],
+              NodeNetworkSettingType.fields['name']),
+        nodenetwork_setting_type_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, nodenetwork_setting_type_id_or_name, nodenetwork_setting_type_fields):
+        nodenetwork_setting_type_fields = dict(filter(can_update, nodenetwork_setting_type_fields.items()))
+
+        nodenetwork_setting_types = NodeNetworkSettingTypes(self.api, [nodenetwork_setting_type_id_or_name])
+        if not nodenetwork_setting_types:
+            raise PLCInvalidArgument, "No such setting type"
+        nodenetwork_setting_type = nodenetwork_setting_types[0]
+
+        nodenetwork_setting_type.update(nodenetwork_setting_type_fields)
+        nodenetwork_setting_type.sync()
+       self.object_ids = [nodenetwork_setting_type['nodenetwork_setting_type_id']]
+
+        return 1
diff --git a/trunk/PLC/Methods/UpdatePCU.py b/trunk/PLC/Methods/UpdatePCU.py
new file mode 100644 (file)
index 0000000..8916684
--- /dev/null
@@ -0,0 +1,52 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.PCUs import PCU, PCUs
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field not in \
+             ['pcu_id', 'site_id']
+
+class UpdatePCU(Method):
+    """
+    Updates the parameters of an existing PCU with the values in
+    pcu_fields.
+
+    Non-admins may only update PCUs at their sites.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'tech']
+
+    update_fields = dict(filter(can_update, PCU.fields.items()))
+
+    accepts = [
+        Auth(),
+        PCU.fields['pcu_id'],
+        update_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, pcu_id, pcu_fields):
+        pcu_fields = dict(filter(can_update, pcu_fields.items()))
+
+        # Get associated PCU details
+        pcus = PCUs(self.api, [pcu_id])
+        if not pcus:
+            raise PLCInvalidArgument, "No such PCU"
+        pcu = pcus[0]
+
+        if 'admin' not in self.caller['roles']:
+            if pcu['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to update that PCU"
+
+        pcu.update(pcu_fields)
+        pcu.sync()
+       
+       # Logging variables
+       self.event_objects = {'PCU': [pcu['pcu_id']]}
+       self.message = 'PCU %d updated: %s' % \
+               (pcu['pcu_id'], ", ".join(pcu_fields.keys()))
+        return 1
diff --git a/trunk/PLC/Methods/UpdatePCUProtocolType.py b/trunk/PLC/Methods/UpdatePCUProtocolType.py
new file mode 100644 (file)
index 0000000..b1a30bc
--- /dev/null
@@ -0,0 +1,41 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.PCUProtocolTypes import PCUProtocolType, PCUProtocolTypes
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in \
+             ['pcu_type_id', 'port', 'protocol', 'supported']
+
+class UpdatePCUProtocolType(Method):
+    """
+    Updates a pcu protocol type. Only the fields specified in
+    port_typee_fields are updated, all other fields are left untouched.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    protocol_type_fields = dict(filter(can_update, PCUProtocolType.fields.items()))
+
+    accepts = [
+        Auth(),
+        PCUProtocolType.fields['pcu_protocol_type_id'],
+        protocol_type_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, protocol_type_id, protocol_type_fields):
+        protocol_type_fields = dict(filter(can_update, protocol_type_fields.items()))
+
+        protocol_types = PCUProtocolTypes(self.api, [protocol_type_id])
+        if not protocol_types:
+            raise PLCInvalidArgument, "No such pcu protocol type"
+
+        protocol_type = protocol_types[0]
+        protocol_type.update(protocol_type_fields)
+        protocol_type.sync()
+       self.event_objects = {'PCUProtocolType': [protocol_type['pcu_protocol_type_id']]}       
+        return 1
diff --git a/trunk/PLC/Methods/UpdatePCUType.py b/trunk/PLC/Methods/UpdatePCUType.py
new file mode 100644 (file)
index 0000000..fc4e886
--- /dev/null
@@ -0,0 +1,42 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.PCUTypes import PCUType, PCUTypes
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in \
+             ['model', 'name']
+
+class UpdatePCUType(Method):
+    """
+    Updates a PCU type. Only the fields specified in
+    pcu_typee_fields are updated, all other fields are left untouched.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    pcu_type_fields = dict(filter(can_update, PCUType.fields.items()))
+
+    accepts = [
+        Auth(),
+        PCUType.fields['pcu_type_id'],
+        pcu_type_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, pcu_type_id, pcu_type_fields):
+        pcu_type_fields = dict(filter(can_update, pcu_type_fields.items()))
+
+        pcu_types = PCUTypes(self.api, [pcu_type_id])
+        if not pcu_types:
+            raise PLCInvalidArgument, "No such pcu type"
+
+        pcu_type = pcu_types[0]
+        pcu_type.update(pcu_type_fields)
+        pcu_type.sync()
+       self.event_objects = {'PCUType': [pcu_type['pcu_type_id']]}     
+
+        return 1
diff --git a/trunk/PLC/Methods/UpdatePeer.py b/trunk/PLC/Methods/UpdatePeer.py
new file mode 100644 (file)
index 0000000..8586a48
--- /dev/null
@@ -0,0 +1,50 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Auth import Auth
+from PLC.Peers import Peer, Peers
+
+can_update = lambda (field, value): field in \
+             ['peername', 'peer_url', 'key', 'cacert']
+
+class UpdatePeer(Method):
+    """
+    Updates a peer. Only the fields specified in peer_fields are
+    updated, all other fields are left untouched.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    peer_fields = dict(filter(can_update, Peer.fields.items()))
+
+    accepts = [
+        Auth(),
+        Mixed(Peer.fields['peer_id'],
+              Peer.fields['peername']),
+        peer_fields
+        ]
+
+    returns = Parameter(int, "1 if successful")
+
+    def call(self, auth, peer_id_or_name, peer_fields):
+        peer_fields = dict(filter(can_update, peer_fields.items()))
+
+        # Get account information
+        peers = Peers(self.api, [peer_id_or_name])
+        if not peers:
+            raise PLCInvalidArgument, "No such peer"
+        peer = peers[0]
+
+        if isinstance(self.caller, Peer):
+            if self.caller['peer_id'] != peer['peer_id']:
+                raise PLCPermissionDenied, "Not allowed to update specified peer"
+
+        peer.update(peer_fields)
+        peer.sync()
+
+        # Log affected objects
+       self.event_objects = {'Peer': [peer['peer_id']]}
+
+       return 1
diff --git a/trunk/PLC/Methods/UpdatePerson.py b/trunk/PLC/Methods/UpdatePerson.py
new file mode 100644 (file)
index 0000000..8f74fc0
--- /dev/null
@@ -0,0 +1,77 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Auth import Auth
+
+related_fields = Person.related_fields.keys()
+can_update = lambda (field, value): field in \
+             ['first_name', 'last_name', 'title', 'email',
+              'password', 'phone', 'url', 'bio', 'accepted_aup',
+              'enabled'] + related_fields
+
+class UpdatePerson(Method):
+    """
+    Updates a person. Only the fields specified in person_fields are
+    updated, all other fields are left untouched.
+    
+    Users and techs can only update themselves. PIs can only update
+    themselves and other non-PIs at their sites.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'user', 'tech']
+
+    person_fields = dict(filter(can_update, Person.fields.items() + Person.related_fields.items()))
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email']),
+        person_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, person_id_or_email, person_fields):
+        person_fields = dict(filter(can_update, person_fields.items()))
+
+        # Get account information
+        persons = Persons(self.api, [person_id_or_email])
+        if not persons:
+            raise PLCInvalidArgument, "No such account"
+        person = persons[0]
+
+        if person['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local account"
+
+        # Authenticated function
+        assert self.caller is not None
+
+        # Check if we can update this account
+        if not self.caller.can_update(person):
+            raise PLCPermissionDenied, "Not allowed to update specified account"
+       
+       # Make requested associations
+        for field in related_fields:
+            if field in person_fields:
+                person.associate(auth, field, person_fields[field])
+                person_fields.pop(field)
+
+        person.update(person_fields)
+       person.update_last_updated(False)
+        person.sync()
+       
+       # Logging variables
+       self.event_objects = {'Person': [person['person_id']]}
+
+        # Redact password
+        if 'password' in person_fields:
+            person_fields['password'] = "Removed by API"
+        self.message = 'Person %d updated: %s.' % \
+                       (person['person_id'], person_fields.keys())
+       if 'enabled' in person_fields:
+            self.message += ' Person enabled'  
+
+        return 1
diff --git a/trunk/PLC/Methods/UpdateSite.py b/trunk/PLC/Methods/UpdateSite.py
new file mode 100644 (file)
index 0000000..6a33c5e
--- /dev/null
@@ -0,0 +1,79 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Sites import Site, Sites
+from PLC.Auth import Auth
+
+related_fields = Site.related_fields.keys()
+can_update = lambda (field, value): field in \
+             ['name', 'abbreviated_name', 'login_base',
+              'is_public', 'latitude', 'longitude', 'url',
+              'max_slices', 'max_slivers', 'enabled', 'ext_consortium_id'] + \
+             related_fields    
+
+class UpdateSite(Method):
+    """
+    Updates a site. Only the fields specified in update_fields are
+    updated, all other fields are left untouched.
+
+    PIs can only update sites they are a member of. Only admins can 
+    update max_slices, max_slivers, and login_base.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi']
+
+    site_fields = dict(filter(can_update, Site.fields.items() + Site.related_fields.items()))
+
+    accepts = [
+        Auth(),
+        Mixed(Site.fields['site_id'],
+              Site.fields['login_base']),
+        site_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, site_id_or_login_base, site_fields):
+        site_fields = dict(filter(can_update, site_fields.items()))
+
+        # Get site information
+        sites = Sites(self.api, [site_id_or_login_base])
+        if not sites:
+            raise PLCInvalidArgument, "No such site"
+        site = sites[0]
+
+        if site['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local site"
+
+        # Authenticated function
+        assert self.caller is not None
+
+        # If we are not an admin, make sure that the caller is a
+        # member of the site.
+        if 'admin' not in self.caller['roles']:
+            if site['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Not allowed to modify specified site"
+
+            # Remove admin only fields
+            for key in 'max_slices', 'max_slivers', 'login_base':
+                if key in site_fields:
+                    del site_fields[key]
+
+       # Make requested associations
+       for field in related_fields:
+           if field in site_fields:
+               site.associate(auth, field, site_fields[field])
+               site_fields.pop(field)  
+       
+        site.update(site_fields)
+       site.update_last_updated(False)
+       site.sync()
+       
+       # Logging variables
+       self.event_objects = {'Site': [site['site_id']]}
+       self.message = 'Site %d updated: %s' % \
+               (site['site_id'], ", ".join(site_fields.keys()))        
+       
+       return 1
diff --git a/trunk/PLC/Methods/UpdateSlice.py b/trunk/PLC/Methods/UpdateSlice.py
new file mode 100644 (file)
index 0000000..de4a023
--- /dev/null
@@ -0,0 +1,101 @@
+import time
+
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Slices import Slice, Slices
+from PLC.Auth import Auth
+from PLC.Sites import Site, Sites
+
+related_fields = Slice.related_fields.keys() 
+can_update = lambda (field, value): field in \
+             ['instantiation', 'url', 'description', 'max_nodes', 'expires'] + \
+            related_fields
+
+
+class UpdateSlice(Method):
+    """
+    Updates the parameters of an existing slice with the values in
+    slice_fields.
+
+    Users may only update slices of which they are members. PIs may
+    update any of the slices at their sites, or any slices of which
+    they are members. Admins may update any slice.
+
+    Only PIs and admins may update max_nodes. Slices cannot be renewed
+    (by updating the expires parameter) more than 8 weeks into the
+    future.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'user']
+
+    slice_fields = dict(filter(can_update, Slice.fields.items() + Slice.related_fields.items()))
+
+    accepts = [
+        Auth(),
+        Mixed(Slice.fields['slice_id'],
+              Slice.fields['name']),
+        slice_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, slice_id_or_name, slice_fields):
+        slice_fields = dict(filter(can_update, slice_fields.items()))
+        
+       slices = Slices(self.api, [slice_id_or_name])
+        if not slices:
+            raise PLCInvalidArgument, "No such slice"
+        slice = slices[0]
+
+        if slice['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local slice"
+
+        if 'admin' not in self.caller['roles']:
+            if self.caller['person_id'] in slice['person_ids']:
+                pass
+            elif 'pi' not in self.caller['roles']:
+                raise PLCPermissionDenied, "Not a member of the specified slice"
+            elif slice['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Specified slice not associated with any of your sites"
+
+        # Renewing
+        if 'expires' in slice_fields and slice_fields['expires'] > slice['expires']:
+            sites = Sites(self.api, [slice['site_id']])
+            assert sites
+            site = sites[0]
+
+            if site['max_slices'] < 0:
+                raise PLCInvalidArgument, "Slice creation and renewal have been disabled for the site"
+
+            # Maximum expiration date is 8 weeks from now
+            # XXX Make this configurable
+            max_expires = time.time() + (8 * 7 * 24 * 60 * 60)
+
+            if 'admin' not in self.caller['roles'] and slice_fields['expires'] > max_expires:
+                raise PLCInvalidArgument, "Cannot renew a slice beyond 8 weeks from now"
+
+        if 'max_nodes' in slice_fields and slice_fields['max_nodes'] != slice['max_nodes']:
+            if 'admin' not in self.caller['roles'] and \
+               'pi' not in self.caller['roles']:
+                raise PLCInvalidArgument, "Only admins and PIs may update max_nodes"
+
+        # XXX Make this a configurable policy
+        if slice['description'] is None or not slice['description'].strip() or \
+           slice['url'] is None or not slice['url'].strip():
+            raise PLCInvalidArgument, "Cannot renew a slice with an empty description or URL"
+
+       # Make requested associations
+       for field in related_fields:
+           if field in slice_fields:
+               slice.associate(auth, field, slice_fields[field])
+               slice_fields.pop(field)
+
+       slice.update(slice_fields)
+        slice.sync()
+
+       self.event_objects = {'Slice': [slice['slice_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/UpdateSliceAttribute.py b/trunk/PLC/Methods/UpdateSliceAttribute.py
new file mode 100644 (file)
index 0000000..43cf1f3
--- /dev/null
@@ -0,0 +1,68 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.SliceAttributes import SliceAttribute, SliceAttributes
+from PLC.Slices import Slice, Slices
+from PLC.InitScripts import InitScript, InitScripts
+from PLC.Auth import Auth
+
+class UpdateSliceAttribute(Method):
+    """
+    Updates the value of an existing slice or sliver attribute.
+
+    Users may only update attributes of slices or slivers of which
+    they are members. PIs may only update attributes of slices or
+    slivers at their sites, or of which they are members. Admins may
+    update attributes of any slice or sliver.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin', 'pi', 'user']
+
+    accepts = [
+        Auth(),
+        SliceAttribute.fields['slice_attribute_id'],
+       Mixed(SliceAttribute.fields['value'],
+              InitScript.fields['initscript_id'])
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, slice_attribute_id, value):
+        slice_attributes = SliceAttributes(self.api, [slice_attribute_id])
+        if not slice_attributes:
+            raise PLCInvalidArgument, "No such slice attribute"
+        slice_attribute = slice_attributes[0]
+
+        slices = Slices(self.api, [slice_attribute['slice_id']])
+        if not slices:
+            raise PLCInvalidArgument, "No such slice"
+        slice = slices[0]
+
+        if slice['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local slice"
+
+        assert slice_attribute['slice_attribute_id'] in slice['slice_attribute_ids']
+
+        if 'admin' not in self.caller['roles']:
+            if self.caller['person_id'] in slice['person_ids']:
+                pass
+            elif 'pi' not in self.caller['roles']:
+                raise PLCPermissionDenied, "Not a member of the specified slice"
+            elif slice['site_id'] not in self.caller['site_ids']:
+                raise PLCPermissionDenied, "Specified slice not associated with any of your sites"
+
+            if slice_attribute['min_role_id'] is not None and \
+               min(self.caller['role_ids']) > slice_attribute['min_role_id']:
+                raise PLCPermissionDenied, "Not allowed to update the specified attribute"
+       
+       if slice_attribute['name'] in ['plc_initscript_id']:
+            initscripts = InitScripts(self.api, {'enabled': True, 'initscript_id': int(value)})
+            if not initscripts:
+                raise PLCInvalidArgument, "No such plc initscript"     
+
+        slice_attribute['value'] = unicode(value)
+        slice_attribute.sync()
+       self.event_objects = {'SliceAttribute': [slice_attribute['slice_attribute_id']]}
+        return 1
diff --git a/trunk/PLC/Methods/UpdateSliceAttributeType.py b/trunk/PLC/Methods/UpdateSliceAttributeType.py
new file mode 100644 (file)
index 0000000..145a51d
--- /dev/null
@@ -0,0 +1,43 @@
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.SliceAttributeTypes import SliceAttributeType, SliceAttributeTypes
+from PLC.Auth import Auth
+
+can_update = lambda (field, value): field in \
+             ['name', 'description', 'min_role_id']
+
+class UpdateSliceAttributeType(Method):
+    """
+    Updates the parameters of an existing attribute with the values in
+    attribute_type_fields.
+
+    Returns 1 if successful, faults otherwise.
+    """
+
+    roles = ['admin']
+
+    attribute_type_fields = dict(filter(can_update, SliceAttributeType.fields.items()))
+
+    accepts = [
+        Auth(),
+        Mixed(SliceAttributeType.fields['attribute_type_id'],
+              SliceAttributeType.fields['name']),
+        attribute_type_fields
+        ]
+
+    returns = Parameter(int, '1 if successful')
+
+    def call(self, auth, attribute_type_id_or_name, attribute_type_fields):
+        attribute_type_fields = dict(filter(can_update, attribute_type_fields.items()))
+
+        attribute_types = SliceAttributeTypes(self.api, [attribute_type_id_or_name])
+        if not attribute_types:
+            raise PLCInvalidArgument, "No such attribute"
+        attribute_type = attribute_types[0]
+
+        attribute_type.update(attribute_type_fields)
+        attribute_type.sync()
+       self.event_objects = {'AttributeType': [attribute_type['attribute_type_id']]}
+
+        return 1
diff --git a/trunk/PLC/Methods/VerifyPerson.py b/trunk/PLC/Methods/VerifyPerson.py
new file mode 100644 (file)
index 0000000..9dd784b
--- /dev/null
@@ -0,0 +1,156 @@
+import random
+import base64
+import time
+import urllib
+
+from PLC.Debug import log
+from PLC.Faults import *
+from PLC.Method import Method
+from PLC.Parameter import Parameter, Mixed
+from PLC.Persons import Person, Persons
+from PLC.Sites import Site, Sites
+from PLC.Messages import Message, Messages
+from PLC.Auth import Auth
+from PLC.sendmail import sendmail
+
+class VerifyPerson(Method):
+    """
+    Verify a new (must be disabled) user's e-mail address and registration.
+
+    If verification_key is not specified, then a new verification_key
+    will be generated and stored with the user's account. The key will
+    be e-mailed to the user in the form of a link to a web page.
+
+    The web page should verify the key by calling this function again
+    and specifying verification_key. If the key matches what has been
+    stored in the user's account, then an e-mail will be sent to the
+    user's PI (and support if the user is requesting a PI role),
+    asking the PI (or support) to enable the account.
+
+    Returns 1 if the verification key if valid.
+    """
+
+    roles = ['admin']
+
+    accepts = [
+        Auth(),
+        Mixed(Person.fields['person_id'],
+              Person.fields['email']),
+       Person.fields['verification_key'],
+        Person.fields['verification_expires']
+        ]
+
+    returns = Parameter(int, '1 if verification_key is valid')
+
+    def call(self, auth, person_id_or_email, verification_key = None, verification_expires = None):
+       # Get account information
+        persons = Persons(self.api, [person_id_or_email])
+        if not persons:
+            raise PLCInvalidArgument, "No such account %r"%person_id_or_email
+        person = persons[0]
+
+        if person['peer_id'] is not None:
+            raise PLCInvalidArgument, "Not a local account %r"%person_id_or_email
+
+        if person['enabled']:
+            raise PLCInvalidArgument, "Account %r must be new (disabled)"%person_id_or_email
+
+        # Get the primary site name
+        person_sites = Sites(self.api, person['site_ids'])
+        if person_sites:
+            site_name = person_sites[0]['name']
+        else:
+            site_name = "No Site"
+
+        # Generate 32 random bytes
+        bytes = random.sample(xrange(0, 256), 32)
+        # Base64 encode their string representation
+        random_key = base64.b64encode("".join(map(chr, bytes)))
+
+        if verification_key is None or \
+       (verification_key is not None and person['verification_expires'] and \
+       person['verification_expires'] < time.time()):
+           # Only allow one verification at a time
+            if person['verification_expires'] is not None and \
+               person['verification_expires'] > time.time():
+                raise PLCPermissionDenied, "Verification request already pending"
+
+            if verification_expires is None:
+                verification_expires = int(time.time() + (24 * 60 * 60))
+
+            person['verification_key'] = random_key
+            person['verification_expires'] = verification_expires
+            person.sync()
+
+            # Send e-mail to user
+            To = ("%s %s" % (person['first_name'], person['last_name']), person['email'])
+            Cc = None
+
+            message_id = 'Verify account'
+
+
+       elif verification_key is not None:
+            if person['verification_key'] is None or \
+               person['verification_expires'] is None:
+                raise PLCPermissionDenied, "Invalid Verification key"
+            elif person['verification_key'] != verification_key:
+               raise PLCPermissionDenied, "Verification key incorrect"
+            else:
+                person['verification_key'] = None
+                person['verification_expires'] = None
+                person.sync()
+
+                # Get the PI(s) of each site that the user is registering with
+                person_ids = set()
+                for site in person_sites:
+                    person_ids.update(site['person_ids'])
+                persons = Persons(self.api, person_ids)
+                pis = filter(lambda person: 'pi' in person['roles'] and person['enabled'], persons)
+
+                # Send e-mail to PI(s) and copy the user
+                To = [("%s %s" % (pi['first_name'], pi['last_name']), pi['email']) for pi in pis]
+                Cc = ("%s %s" % (person['first_name'], person['last_name']), person['email'])
+
+                if 'pi' in person['roles']:
+                    # And support if user is requesting a PI role
+                    To.append(("%s Support" % self.api.config.PLC_NAME,
+                               self.api.config.PLC_MAIL_SUPPORT_ADDRESS))
+                    message_id = 'New PI account'
+                else:
+                    message_id = 'New account'
+
+        messages = Messages(self.api, [message_id])
+        if messages:
+            # Send message to user
+            message = messages[0]
+
+            params = {'PLC_NAME': self.api.config.PLC_NAME,
+                      'PLC_MAIL_SUPPORT_ADDRESS': self.api.config.PLC_MAIL_SUPPORT_ADDRESS,
+                      'PLC_WWW_HOST': self.api.config.PLC_WWW_HOST,
+                      'PLC_WWW_SSL_PORT': self.api.config.PLC_WWW_SSL_PORT,
+                      'person_id': person['person_id'],
+                      # Will be used in a URL, so must quote appropriately
+                      'verification_key': urllib.quote_plus(random_key),
+                      'site_name': site_name,
+                      'first_name': person['first_name'],
+                      'last_name': person['last_name'],
+                      'email': person['email'],
+                      'roles': ", ".join(person['roles'])}
+
+            sendmail(self.api,
+                     To = To,
+                     Cc = Cc,
+                     Subject = message['subject'] % params,
+                     Body = message['template'] % params)
+        else:
+            print >> log, "Warning: No message template '%s'" % message_id
+
+       # Logging variables
+        self.event_objects = {'Person': [person['person_id']]}
+        self.message = message_id
+       
+       if verification_key is not None and person['verification_expires'] and \
+        person['verification_expires'] < time.time():
+           raise PLCPermissionDenied, "Verification key has expired. Another email has been sent."
+
+        return 1
diff --git a/trunk/PLC/Methods/__init__.py b/trunk/PLC/Methods/__init__.py
new file mode 100644 (file)
index 0000000..45c9228
--- /dev/null
@@ -0,0 +1,231 @@
+methods = """
+AddAddressType
+AddAddressTypeToAddress
+AddBootState
+AddConfFile
+AddConfFileToNodeGroup
+AddConfFileToNode
+AddInitScript
+AddKeyType
+AddMessage
+AddNetworkMethod
+AddNetworkType
+AddNodeGroup
+AddNodeNetwork
+AddNodeNetworkSetting
+AddNodeNetworkSettingType
+AddNode
+AddNodeToNodeGroup
+AddNodeToPCU
+AddPCUProtocolType
+AddPCU
+AddPCUType
+AddPeer
+AddPersonKey
+AddPerson
+AddPersonToSite
+AddPersonToSlice
+AddRole
+AddRoleToPerson
+AddSession
+AddSiteAddress
+AddSite
+AddSliceAttribute
+AddSliceAttributeType
+AddSliceInstantiation
+AddSlice
+AddSliceToNodes
+AddSliceToNodesWhitelist
+AdmAddAddressType
+AdmAddNodeGroup
+AdmAddNodeNetwork
+AdmAddNode
+AdmAddNodeToNodeGroup
+AdmAddPersonKey
+AdmAddPerson
+AdmAddPersonToSite
+AdmAddSitePowerControlUnit
+AdmAddSite
+AdmAssociateNodeToPowerControlUnitPort
+AdmAuthCheck
+AdmDeleteAddressType
+AdmDeleteAllPersonKeys
+AdmDeleteNodeGroup
+AdmDeleteNodeNetwork
+AdmDeleteNode
+AdmDeletePersonKeys
+AdmDeletePerson
+AdmDeleteSitePowerControlUnit
+AdmDeleteSite
+AdmDisassociatePowerControlUnitPort
+AdmGenerateNodeConfFile
+AdmGetAllAddressTypes
+AdmGetAllKeyTypes
+AdmGetAllNodeNetworks
+AdmGetAllRoles
+AdmGetNodeGroupNodes
+AdmGetNodeGroups
+AdmGetNodes
+AdmGetPersonKeys
+AdmGetPersonRoles
+AdmGetPersonSites
+AdmGetPersons
+AdmGetPowerControlUnitNodes
+AdmGetPowerControlUnits
+AdmGetSiteNodes
+AdmGetSitePersons
+AdmGetSitePIs
+AdmGetSitePowerControlUnits
+AdmGetSites
+AdmGetSiteTechContacts
+AdmGrantRoleToPerson
+AdmIsPersonInRole
+AdmQueryConfFile
+AdmQueryNode
+AdmQueryPerson
+AdmQueryPowerControlUnit
+AdmQuerySite
+AdmRebootNode
+AdmRemoveNodeFromNodeGroup
+AdmRemovePersonFromSite
+AdmRevokeRoleFromPerson
+AdmSetPersonEnabled
+AdmSetPersonPrimarySite
+AdmUpdateNodeGroup
+AdmUpdateNodeNetwork
+AdmUpdateNode
+AdmUpdatePerson
+AdmUpdateSitePowerControlUnit
+AdmUpdateSite
+AnonAdmGetNodeGroups
+AuthCheck
+BlacklistKey
+BootCheckAuthentication
+BootGetNodeDetails
+BootNotifyOwners
+BootUpdateNode
+DeleteAddress
+DeleteAddressTypeFromAddress
+DeleteAddressType
+DeleteBootState
+DeleteConfFileFromNodeGroup
+DeleteConfFileFromNode
+DeleteConfFile
+DeleteInitScript
+DeleteKey
+DeleteKeyType
+DeleteMessage
+DeleteNetworkMethod
+DeleteNetworkType
+DeleteNodeFromNodeGroup
+DeleteNodeFromPCU
+DeleteNodeGroup
+DeleteNodeNetwork
+DeleteNodeNetworkSetting
+DeleteNodeNetworkSettingType
+DeleteNode
+DeletePCUProtocolType
+DeletePCU
+DeletePCUType
+DeletePeer
+DeletePersonFromSite
+DeletePersonFromSlice
+DeletePerson
+DeleteRoleFromPerson
+DeleteRole
+DeleteSession
+DeleteSite
+DeleteSliceAttribute
+DeleteSliceAttributeType
+DeleteSliceFromNodes
+DeleteSliceFromNodesWhitelist
+DeleteSliceInstantiation
+DeleteSlice
+GenerateNodeConfFile
+GetAddresses
+GetAddressTypes
+GetBootMedium
+GetBootStates
+GetConfFiles
+GetEventObjects
+GetEvents
+GetInitScripts
+GetKeys
+GetKeyTypes
+GetMessages
+GetNetworkMethods
+GetNetworkTypes
+GetNodeGroups
+GetNodeNetworkSettings
+GetNodeNetworkSettingTypes
+GetNodeNetworks
+GetNodes
+GetPCUProtocolTypes
+GetPCUs
+GetPCUTypes
+GetPeerData
+GetPeerName
+GetPeers
+GetPersons
+GetPlcRelease
+GetRoles
+GetSession
+GetSessions
+GetSites
+GetSliceAttributes
+GetSliceAttributeTypes
+GetSliceInstantiations
+GetSliceKeys
+GetSlicesMD5
+GetSlices
+GetSliceTicket
+GetSlivers
+GetWhitelist
+NotifyPersons
+NotifySupport
+RebootNode
+RefreshPeer
+ResetPassword
+SetPersonPrimarySite
+SliceCreate
+SliceDelete
+SliceExtendedInfo
+SliceGetTicket
+SliceInfo
+SliceListNames
+SliceListUserSlices
+SliceNodesAdd
+SliceNodesDel
+SliceNodesList
+SliceRenew
+SliceTicketGet
+SliceUpdate
+SliceUserAdd
+SliceUserDel
+SliceUsersList
+system.listMethods
+system.methodHelp
+system.methodSignature
+system.multicall
+UpdateAddress
+UpdateAddressType
+UpdateConfFile
+UpdateInitScript
+UpdateKey
+UpdateMessage
+UpdateNodeGroup
+UpdateNodeNetwork
+UpdateNodeNetworkSetting
+UpdateNodeNetworkSettingType
+UpdateNode
+UpdatePCUProtocolType
+UpdatePCU
+UpdatePCUType
+UpdatePeer
+UpdatePerson
+UpdateSite
+UpdateSliceAttribute
+UpdateSliceAttributeType
+UpdateSlice
+VerifyPerson
+""".split()
diff --git a/trunk/PLC/Methods/system/.cvsignore b/trunk/PLC/Methods/system/.cvsignore
new file mode 100644 (file)
index 0000000..0d20b64
--- /dev/null
@@ -0,0 +1 @@
+*.pyc
diff --git a/trunk/PLC/Methods/system/__init__.py b/trunk/PLC/Methods/system/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/trunk/PLC/Methods/system/listMethods.py b/trunk/PLC/Methods/system/listMethods.py
new file mode 100644 (file)
index 0000000..c8cfa37
--- /dev/null
@@ -0,0 +1,20 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter
+import PLC.Methods
+
+class listMethods(Method):
+    """
+    This method lists all the methods that the XML-RPC server knows
+    how to dispatch.
+    """
+
+    roles = []
+    accepts = []
+    returns = Parameter(list, 'List of methods')
+
+    def __init__(self, api):
+        Method.__init__(self, api)
+        self.name = "system.listMethods"
+
+    def call(self):
+        return self.api.methods
diff --git a/trunk/PLC/Methods/system/methodHelp.py b/trunk/PLC/Methods/system/methodHelp.py
new file mode 100644 (file)
index 0000000..22a0dc1
--- /dev/null
@@ -0,0 +1,20 @@
+from PLC.Method import Method
+from PLC.Parameter import Parameter
+
+class methodHelp(Method):
+    """
+    Returns help text if defined for the method passed, otherwise
+    returns an empty string.
+    """
+
+    roles = []
+    accepts = [Parameter(str, 'Method name')]
+    returns = Parameter(str, 'Method help')
+
+    def __init__(self, api):
+        Method.__init__(self, api)
+        self.name = "system.methodHelp"
+
+    def call(self, method):
+        function = self.api.callable(method)
+        return function.help()
diff --git a/trunk/PLC/Methods/system/methodSignature.py b/trunk/PLC/Methods/system/methodSignature.py
new file mode 100644 (file)
index 0000000..4b049a1
--- /dev/null
@@ -0,0 +1,60 @@
+from PLC.Parameter import Parameter, Mixed
+from PLC.Method import Method, xmlrpc_type
+
+class methodSignature(Method):
+    """
+    Returns an array of known signatures (an array of arrays) for the
+    method name passed. If no signatures are known, returns a
+    none-array (test for type != array to detect missing signature).
+    """
+
+    roles = []
+    accepts = [Parameter(str, "Method name")]
+    returns = [Parameter([str], "Method signature")]
+
+    def __init__(self, api):
+        Method.__init__(self, api)
+        self.name = "system.methodSignature"
+
+    def possible_signatures(self, signature, arg):
+        """
+        Return a list of the possible new signatures given a current
+        signature and the next argument.
+        """
+
+        if isinstance(arg, Mixed):
+            arg_types = [xmlrpc_type(mixed_arg) for mixed_arg in arg]
+        else:
+            arg_types = [xmlrpc_type(arg)]
+
+        return [signature + [arg_type] for arg_type in arg_types]
+
+    def signatures(self, returns, args):
+        """
+        Returns a list of possible signatures given a return value and
+        a set of arguments.
+        """
+
+        signatures = [[xmlrpc_type(returns)]]
+
+        for arg in args:
+            # Create lists of possible new signatures for each current
+            # signature. Reduce the list of lists back down to a
+            # single list.
+            signatures = reduce(lambda a, b: a + b,
+                                [self.possible_signatures(signature, arg) \
+                                 for signature in signatures])
+
+        return signatures
+
+    def call(self, method):
+        function = self.api.callable(method)
+        (min_args, max_args, defaults) = function.args()
+
+        signatures = []
+
+        assert len(max_args) >= len(min_args)
+        for num_args in range(len(min_args), len(max_args) + 1):
+            signatures += self.signatures(function.returns, function.accepts[:num_args])
+
+        return signatures
diff --git a/trunk/PLC/Methods/system/multicall.py b/trunk/PLC/Methods/system/multicall.py
new file mode 100644 (file)
index 0000000..64563ef
--- /dev/null
@@ -0,0 +1,54 @@
+import sys
+import xmlrpclib
+
+from PLC.Parameter import Parameter, Mixed
+from PLC.Method import Method
+
+class multicall(Method):
+    """
+    Process an array of calls, and return an array of results. Calls
+    should be structs of the form
+
+    {'methodName': string, 'params': array}
+
+    Each result will either be a single-item array containg the result
+    value, or a struct of the form
+
+    {'faultCode': int, 'faultString': string}
+
+    This is useful when you need to make lots of small calls without
+    lots of round trips.
+    """
+
+    roles = []
+    accepts = [[{'methodName': Parameter(str, "Method name"),
+                 'params': Parameter(list, "Method arguments")}]]
+    returns = Mixed([Mixed()],
+                    {'faultCode': Parameter(int, "XML-RPC fault code"),
+                     'faultString': Parameter(int, "XML-RPC fault detail")})
+
+    def __init__(self, api):
+        Method.__init__(self, api)
+        self.name = "system.multicall"
+
+    def call(self, calls):
+        # Some error codes, borrowed from xmlrpc-c.
+        REQUEST_REFUSED_ERROR = -507
+
+        results = []
+        for call in calls:
+            try:
+                name = call['methodName']
+                params = call['params']
+                if name == 'system.multicall':
+                    errmsg = "Recursive system.multicall forbidden"
+                    raise xmlrpclib.Fault(REQUEST_REFUSED_ERROR, errmsg)
+                result = [self.api.call(self.source, name, *params)]
+            except xmlrpclib.Fault, fault:
+                result = {'faultCode': fault.faultCode,
+                          'faultString': fault.faultString}
+            except:
+                errmsg = "%s:%s" % (sys.exc_type, sys.exc_value)
+                result = {'faultCode': 1, 'faultString': errmsg}
+            results.append(result)
+        return results
diff --git a/trunk/PLC/NetworkMethods.py b/trunk/PLC/NetworkMethods.py
new file mode 100644 (file)
index 0000000..41ccfab
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# Functions for interacting with the network_methods table in the database
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Table import Row, Table
+
+class NetworkMethod(Row):
+    """
+    Representation of a row in the network_methods table. To use,
+    instantiate with a dict of values.
+    """
+
+    table_name = 'network_methods'
+    primary_key = 'method'
+    join_tables = ['nodenetworks']
+    fields = {
+        'method': Parameter(str, "Network method", max = 20),
+        }
+
+    def validate_method(self, name):
+       # Make sure name is not blank
+        if not len(name):
+            raise PLCInvalidArgument, "Network method must be specified"
+       
+       # Make sure network method does not alredy exist
+       conflicts = NetworkMethods(self.api, [name])
+        if conflicts:
+            raise PLCInvalidArgument, "Network method name already in use"
+
+       return name
+
+class NetworkMethods(Table):
+    """
+    Representation of the network_methods table in the database.
+    """
+
+    def __init__(self, api, methods = None):
+        Table.__init__(self, api, NetworkMethod)
+
+        sql = "SELECT %s FROM network_methods" % \
+              ", ".join(NetworkMethod.fields)
+        
+        if methods:
+            sql += " WHERE method IN (%s)" % ", ".join(map(api.db.quote, methods))
+
+        self.selectall(sql)
diff --git a/trunk/PLC/NetworkTypes.py b/trunk/PLC/NetworkTypes.py
new file mode 100644 (file)
index 0000000..f3a032f
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# Functions for interacting with the network_types table in the database
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Table import Row, Table
+
+class NetworkType(Row):
+    """
+    Representation of a row in the network_types table. To use,
+    instantiate with a dict of values.
+    """
+
+    table_name = 'network_types'
+    primary_key = 'type'
+    join_tables = ['nodenetworks']
+    fields = {
+        'type': Parameter(str, "Network type", max = 20),
+        }
+
+    def validate_type(self, name):
+       # Make sure name is not blank
+        if not len(name):
+            raise PLCInvalidArgument, "Network type must be specified"
+       
+       # Make sure network type does not alredy exist
+       conflicts = NetworkTypes(self.api, [name])
+        if conflicts:
+            raise PLCInvalidArgument, "Network type name already in use"
+
+       return name
+
+class NetworkTypes(Table):
+    """
+    Representation of the network_types table in the database.
+    """
+
+    def __init__(self, api, types = None):
+        Table.__init__(self, api, NetworkType)
+
+        sql = "SELECT %s FROM network_types" % \
+              ", ".join(NetworkType.fields)
+        
+        if types:
+            sql += " WHERE type IN (%s)" % ", ".join(map(api.db.quote, types))
+
+        self.selectall(sql)
diff --git a/trunk/PLC/NodeGroups.py b/trunk/PLC/NodeGroups.py
new file mode 100644 (file)
index 0000000..a2b19d7
--- /dev/null
@@ -0,0 +1,182 @@
+#
+# Functions for interacting with the nodegroups table in the database
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from types import StringTypes
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Debug import profile
+from PLC.Table import Row, Table
+from PLC.Nodes import Node, Nodes
+
+class NodeGroup(Row):
+    """
+    Representation of a row in the nodegroups table. To use, optionally
+    instantiate with a dict of values. Update as you would a
+    dict. Commit to the database with sync().
+    """
+
+    table_name = 'nodegroups'
+    primary_key = 'nodegroup_id'
+    join_tables = ['nodegroup_node', 'conf_file_nodegroup']
+    fields = {
+        'nodegroup_id': Parameter(int, "Node group identifier"),
+        'name': Parameter(str, "Node group name", max = 50),
+        'description': Parameter(str, "Node group description", max = 200, nullok = True),
+        'node_ids': Parameter([int], "List of nodes in this node group"),
+        'conf_file_ids': Parameter([int], "List of configuration files specific to this node group"),
+        }
+    related_fields = {
+       'conf_files': [Parameter(int, "ConfFile identifier")],
+       'nodes': [Mixed(Parameter(int, "Node identifier"),
+                        Parameter(str, "Fully qualified hostname"))]
+       }
+
+    def validate_name(self, name):
+       # Make sure name is not blank
+        if not len(name):
+                raise PLCInvalidArgument, "Invalid node group name"
+       
+       # Make sure node group does not alredy exist
+       conflicts = NodeGroups(self.api, [name])
+       for nodegroup in conflicts:
+            if 'nodegroup_id' not in self or self['nodegroup_id'] != nodegroup['nodegroup_id']:
+               raise PLCInvalidArgument, "Node group name already in use"
+
+       return name
+
+    def add_node(self, node, commit = True):
+        """
+        Add node to existing nodegroup.
+        """
+
+        assert 'nodegroup_id' in self
+        assert isinstance(node, Node)
+        assert 'node_id' in node
+
+        node_id = node['node_id']
+        nodegroup_id = self['nodegroup_id']
+
+        if node_id not in self['node_ids']:
+            assert nodegroup_id not in node['nodegroup_ids']
+
+            self.api.db.do("INSERT INTO nodegroup_node (nodegroup_id, node_id)" \
+                           " VALUES(%(nodegroup_id)d, %(node_id)d)",
+                           locals())
+
+            if commit:
+                self.api.db.commit()
+
+            self['node_ids'].append(node_id)
+            node['nodegroup_ids'].append(nodegroup_id)
+
+    def remove_node(self, node, commit = True):
+        """
+        Remove node from existing nodegroup.
+        """
+
+        assert 'nodegroup_id' in self
+        assert isinstance(node, Node)
+        assert 'node_id' in node
+
+        node_id = node['node_id']
+        nodegroup_id = self['nodegroup_id']
+
+        if node_id in self['node_ids']:
+            assert nodegroup_id in node['nodegroup_ids']
+
+            self.api.db.do("DELETE FROM nodegroup_node" \
+                           " WHERE nodegroup_id = %(nodegroup_id)d" \
+                           " AND node_id = %(node_id)d",
+                           locals())
+
+            if commit:
+                self.api.db.commit()
+
+            self['node_ids'].remove(node_id)
+            node['nodegroup_ids'].remove(nodegroup_id)
+
+    def associate_nodes(self, auth, field, value):
+        """
+        Adds nodes found in value list to this nodegroup (using AddNodeToNodeGroup).
+        Deletes nodes not found in value list from this slice (using DeleteNodeFromNodeGroup).
+        """
+
+        assert 'node_ids' in self
+        assert 'nodegroup_id' in self
+        assert isinstance(value, list)
+
+        (node_ids, hostnames) = self.separate_types(value)[0:2]
+
+        # Translate hostnames into node_ids
+        if hostnames:
+            nodes = Nodes(self.api, hostnames, ['node_id']).dict('node_id')
+            node_ids += nodes.keys()
+
+        # Add new ids, remove stale ids
+        if self['node_ids'] != node_ids:
+            from PLC.Methods.AddNodeToNodeGroup import AddNodeToNodeGroup
+            from PLC.Methods.DeleteNodeFromNodeGroup import DeleteNodeFromNodeGroup
+            new_nodes = set(node_ids).difference(self['node_ids'])
+            stale_nodes = set(self['node_ids']).difference(node_ids)
+
+            for new_node in new_nodes:
+                AddNodeToNodeGroup.__call__(AddNodeToNodeGroup(self.api), auth, new_node, self['nodegroup_id'])
+            for stale_node in stale_nodes:
+                DeleteNodeFromNodeGroup.__call__(DeleteNodeFromNodeGroup(self.api), auth, stale_node, self['nodegroup_id'])
+
+    def associate_conf_files(self, auth, field, value):
+        """
+        Add conf_files found in value list (AddConfFileToNodeGroup)
+        Delets conf_files not found in value list (DeleteConfFileFromNodeGroup)
+        """
+
+        assert 'conf_file_ids' in self
+        assert 'nodegroup_id' in self
+        assert isinstance(value, list)
+
+        conf_file_ids = self.separate_types(value)[0]
+
+        if self['conf_file_ids'] != conf_file_ids:
+            from PLC.Methods.AddConfFileToNodeGroup import AddConfFileToNodeGroup
+            from PLC.Methods.DeleteConfFileFromNodeGroup import DeleteConfFileFromNodeGroup
+            new_conf_files = set(conf_file_ids).difference(self['conf_file_ids'])
+            stale_conf_files = set(self['conf_file_ids']).difference(conf_file_ids)
+
+            for new_conf_file in new_conf_files:
+                AddConfFileToNodeGroup.__call__(AddConfFileToNodeGroup(self.api), auth, new_conf_file, self['nodegroup_id'])
+            for stale_conf_file in stale_conf_files:
+                DeleteConfFileFromNodeGroup.__call__(DeleteConfFileFromNodeGroup(self.api), auth, stale_conf_file, self['nodegroup_id'])
+
+
+class NodeGroups(Table):
+    """
+    Representation of row(s) from the nodegroups table in the
+    database.
+    """
+
+    def __init__(self, api, nodegroup_filter = None, columns = None):
+        Table.__init__(self, api, NodeGroup, columns)
+
+        sql = "SELECT %s FROM view_nodegroups WHERE True" % \
+              ", ".join(self.columns)
+
+        if nodegroup_filter is not None:
+            if isinstance(nodegroup_filter, (list, tuple, set)):
+                # Separate the list into integers and strings
+                ints = filter(lambda x: isinstance(x, (int, long)), nodegroup_filter)
+                strs = filter(lambda x: isinstance(x, StringTypes), nodegroup_filter)
+                nodegroup_filter = Filter(NodeGroup.fields, {'nodegroup_id': ints, 'name': strs})
+                sql += " AND (%s) %s" % nodegroup_filter.sql(api, "OR")
+            elif isinstance(nodegroup_filter, dict):
+                nodegroup_filter = Filter(NodeGroup.fields, nodegroup_filter)
+                sql += " AND (%s) %s" % nodegroup_filter.sql(api, "AND")
+
+        self.selectall(sql)
diff --git a/trunk/PLC/NodeNetworkSettingTypes.py b/trunk/PLC/NodeNetworkSettingTypes.py
new file mode 100644 (file)
index 0000000..f25d074
--- /dev/null
@@ -0,0 +1,83 @@
+#
+# Thierry Parmentelat - INRIA
+#
+# $Revision$
+#
+from types import StringTypes
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Filter import Filter
+from PLC.Table import Row, Table
+from PLC.Roles import Role, Roles
+
+class NodeNetworkSettingType (Row):
+
+    """
+    Representation of a row in the nodenetwork_setting_types table.
+    """
+
+    table_name = 'nodenetwork_setting_types'
+    primary_key = 'nodenetwork_setting_type_id'
+    join_tables = ['nodenetwork_setting']
+    fields = {
+        'nodenetwork_setting_type_id': Parameter(int, "Nodenetwork setting type identifier"),
+        'name': Parameter(str, "Nodenetwork setting type name", max = 100),
+        'description': Parameter(str, "Nodenetwork setting type description", max = 254),
+        'category' : Parameter (str, "Nodenetwork setting category", max=64),
+        'min_role_id': Parameter(int, "Minimum (least powerful) role that can set or change this attribute"),
+        }
+
+    # for Cache
+    class_key = 'name'
+    foreign_fields = ['category','description','min_role_id']
+    foreign_xrefs = []
+
+    def validate_name(self, name):
+        if not len(name):
+            raise PLCInvalidArgument, "nodenetwork setting type name must be set"
+
+        conflicts = NodeNetworkSettingTypes(self.api, [name])
+        for setting_type in conflicts:
+            if 'nodenetwork_setting_type_id' not in self or \
+                   self['nodenetwork_setting_type_id'] != setting_type['nodenetwork_setting_type_id']:
+                raise PLCInvalidArgument, "nodenetwork setting type name already in use"
+
+        return name
+
+    def validate_min_role_id(self, role_id):
+        roles = [row['role_id'] for row in Roles(self.api)]
+        if role_id not in roles:
+            raise PLCInvalidArgument, "Invalid role"
+
+        return role_id
+
+class NodeNetworkSettingTypes(Table):
+    """
+    Representation of row(s) from the nodenetwork_setting_types table
+    in the database.
+    """
+
+    def __init__(self, api, nodenetwork_setting_type_filter = None, columns = None):
+        Table.__init__(self, api, NodeNetworkSettingType, columns)
+
+        sql = "SELECT %s FROM nodenetwork_setting_types WHERE True" % \
+              ", ".join(self.columns)
+
+        if nodenetwork_setting_type_filter is not None:
+            if isinstance(nodenetwork_setting_type_filter, (list, tuple, set)):
+                # Separate the list into integers and strings
+                ints = filter(lambda x: isinstance(x, (int, long)), nodenetwork_setting_type_filter)
+                strs = filter(lambda x: isinstance(x, StringTypes), nodenetwork_setting_type_filter)
+                nodenetwork_setting_type_filter = Filter(NodeNetworkSettingType.fields, {'nodenetwork_setting_type_id': ints, 'name': strs})
+                sql += " AND (%s) %s" % nodenetwork_setting_type_filter.sql(api, "OR")
+            elif isinstance(nodenetwork_setting_type_filter, dict):
+                nodenetwork_setting_type_filter = Filter(NodeNetworkSettingType.fields, nodenetwork_setting_type_filter)
+                sql += " AND (%s) %s" % nodenetwork_setting_type_filter.sql(api, "AND")
+            elif isinstance (nodenetwork_setting_type_filter, StringTypes):
+                nodenetwork_setting_type_filter = Filter(NodeNetworkSettingType.fields, {'name':[nodenetwork_setting_type_filter]})
+                sql += " AND (%s) %s" % nodenetwork_setting_type_filter.sql(api, "AND")
+            else:
+                raise PLCInvalidArgument, "Wrong nodenetwork setting type filter %r"%nodenetwork_setting_type_filter
+
+        self.selectall(sql)
diff --git a/trunk/PLC/NodeNetworkSettings.py b/trunk/PLC/NodeNetworkSettings.py
new file mode 100644 (file)
index 0000000..c85bae5
--- /dev/null
@@ -0,0 +1,57 @@
+#
+# Thierry Parmentelat - INRIA
+#
+# $Revision$
+#
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Filter import Filter
+from PLC.Table import Row, Table
+from PLC.NodeNetworkSettingTypes import NodeNetworkSettingType, NodeNetworkSettingTypes
+
+class NodeNetworkSetting(Row):
+    """
+    Representation of a row in the nodenetwork_setting.
+    To use, instantiate with a dict of values.
+    """
+
+    table_name = 'nodenetwork_setting'
+    primary_key = 'nodenetwork_setting_id'
+    fields = {
+        'nodenetwork_setting_id': Parameter(int, "Nodenetwork setting identifier"),
+        'nodenetwork_id': Parameter(int, "NodeNetwork identifier"),
+        'nodenetwork_setting_type_id': NodeNetworkSettingType.fields['nodenetwork_setting_type_id'],
+        'name': NodeNetworkSettingType.fields['name'],
+        'description': NodeNetworkSettingType.fields['description'],
+        'category': NodeNetworkSettingType.fields['category'],
+        'min_role_id': NodeNetworkSettingType.fields['min_role_id'],
+        'value': Parameter(str, "Nodenetwork setting value"),
+       ### relations
+       
+        }
+
+class NodeNetworkSettings(Table):
+    """
+    Representation of row(s) from the nodenetwork_setting table in the
+    database.
+    """
+
+    def __init__(self, api, nodenetwork_setting_filter = None, columns = None):
+        Table.__init__(self, api, NodeNetworkSetting, columns)
+
+        sql = "SELECT %s FROM view_nodenetwork_settings WHERE True" % \
+              ", ".join(self.columns)
+
+        if nodenetwork_setting_filter is not None:
+            if isinstance(nodenetwork_setting_filter, (list, tuple, set)):
+                nodenetwork_setting_filter = Filter(NodeNetworkSetting.fields, {'nodenetwork_setting_id': nodenetwork_setting_filter})
+            elif isinstance(nodenetwork_setting_filter, dict):
+                nodenetwork_setting_filter = Filter(NodeNetworkSetting.fields, nodenetwork_setting_filter)
+            elif isinstance(nodenetwork_setting_filter, int):
+                nodenetwork_setting_filter = Filter(NodeNetworkSetting.fields, {'nodenetwork_setting_id': [nodenetwork_setting_filter]})
+            else:
+                raise PLCInvalidArgument, "Wrong nodenetwork setting filter %r"%nodenetwork_setting_filter
+            sql += " AND (%s) %s" % nodenetwork_setting_filter.sql(api)
+
+
+        self.selectall(sql)
diff --git a/trunk/PLC/NodeNetworks.py b/trunk/PLC/NodeNetworks.py
new file mode 100644 (file)
index 0000000..47e091d
--- /dev/null
@@ -0,0 +1,226 @@
+#
+# Functions for interacting with the nodenetworks table in the database
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from types import StringTypes
+import socket
+import struct
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Filter import Filter
+from PLC.Debug import profile
+from PLC.Table import Row, Table
+from PLC.NetworkTypes import NetworkType, NetworkTypes
+from PLC.NetworkMethods import NetworkMethod, NetworkMethods
+import PLC.Nodes
+
+def valid_ip(ip):
+    try:
+        ip = socket.inet_ntoa(socket.inet_aton(ip))
+        return True
+    except socket.error:
+        return False
+
+def in_same_network(address1, address2, netmask):
+    """
+    Returns True if two IPv4 addresses are in the same network. Faults
+    if an address is invalid.
+    """
+
+    address1 = struct.unpack('>L', socket.inet_aton(address1))[0]
+    address2 = struct.unpack('>L', socket.inet_aton(address2))[0]
+    netmask = struct.unpack('>L', socket.inet_aton(netmask))[0]
+
+    return (address1 & netmask) == (address2 & netmask)
+
+class NodeNetwork(Row):
+    """
+    Representation of a row in the nodenetworks table. To use, optionally
+    instantiate with a dict of values. Update as you would a
+    dict. Commit to the database with sync().
+    """
+
+    table_name = 'nodenetworks'
+    primary_key = 'nodenetwork_id'
+    join_tables = ['nodenetwork_setting']
+    fields = {
+        'nodenetwork_id': Parameter(int, "Node interface identifier"),
+        'method': Parameter(str, "Addressing method (e.g., 'static' or 'dhcp')"),
+        'type': Parameter(str, "Address type (e.g., 'ipv4')"),
+        'ip': Parameter(str, "IP address", nullok = True),
+        'mac': Parameter(str, "MAC address", nullok = True),
+        'gateway': Parameter(str, "IP address of primary gateway", nullok = True),
+        'network': Parameter(str, "Subnet address", nullok = True),
+        'broadcast': Parameter(str, "Network broadcast address", nullok = True),
+        'netmask': Parameter(str, "Subnet mask", nullok = True),
+        'dns1': Parameter(str, "IP address of primary DNS server", nullok = True),
+        'dns2': Parameter(str, "IP address of secondary DNS server", nullok = True),
+        'bwlimit': Parameter(int, "Bandwidth limit", min = 0, nullok = True),
+        'hostname': Parameter(str, "(Optional) Hostname", nullok = True),
+        'node_id': Parameter(int, "Node associated with this interface"),
+        'is_primary': Parameter(bool, "Is the primary interface for this node"),
+        'nodenetwork_setting_ids' : Parameter([int], "List of nodenetwork settings"),
+        }
+
+    def validate_method(self, method):
+        network_methods = [row['method'] for row in NetworkMethods(self.api)]
+        if method not in network_methods:
+            raise PLCInvalidArgument, "Invalid addressing method %s"%method
+       return method
+
+    def validate_type(self, type):
+        network_types = [row['type'] for row in NetworkTypes(self.api)]
+        if type not in network_types:
+            raise PLCInvalidArgument, "Invalid address type %s"%type
+       return type
+
+    def validate_ip(self, ip):
+        if ip and not valid_ip(ip):
+            raise PLCInvalidArgument, "Invalid IP address %s"%ip
+        return ip
+
+    def validate_mac(self, mac):
+        if not mac:
+            return mac
+
+        try:
+            bytes = mac.split(":")
+            if len(bytes) < 6:
+                raise Exception
+            for i, byte in enumerate(bytes):
+                byte = int(byte, 16)
+                if byte < 0 or byte > 255:
+                    raise Exception
+                bytes[i] = "%02x" % byte
+            mac = ":".join(bytes)
+        except:
+            raise PLCInvalidArgument, "Invalid MAC address %s"%mac
+
+        return mac
+
+    validate_gateway = validate_ip
+    validate_network = validate_ip
+    validate_broadcast = validate_ip
+    validate_netmask = validate_ip
+    validate_dns1 = validate_ip
+    validate_dns2 = validate_ip
+
+    def validate_bwlimit(self, bwlimit):
+       if not bwlimit:
+           return bwlimit
+
+       if bwlimit < 500000:
+           raise PLCInvalidArgument, 'Minimum bw is 500 kbs'
+
+       return bwlimit  
+
+    def validate_hostname(self, hostname):
+        # Optional
+        if not hostname:
+            return hostname
+
+        if not PLC.Nodes.valid_hostname(hostname):
+            raise PLCInvalidArgument, "Invalid hostname %s"%hostname
+
+        return hostname
+
+    def validate_node_id(self, node_id):
+        nodes = PLC.Nodes.Nodes(self.api, [node_id])
+        if not nodes:
+            raise PLCInvalidArgument, "No such node %d"%node_id
+
+        return node_id
+
+    def validate_is_primary(self, is_primary):
+        """
+        Set this interface to be the primary one.
+        """
+
+        if is_primary:
+            nodes = PLC.Nodes.Nodes(self.api, [self['node_id']])
+            if not nodes:
+                raise PLCInvalidArgument, "No such node %d"%node_id
+            node = nodes[0]
+
+            if node['nodenetwork_ids']:
+                conflicts = NodeNetworks(self.api, node['nodenetwork_ids'])
+                for nodenetwork in conflicts:
+                    if ('nodenetwork_id' not in self or \
+                        self['nodenetwork_id'] != nodenetwork['nodenetwork_id']) and \
+                       nodenetwork['is_primary']:
+                        raise PLCInvalidArgument, "Can only set one primary interface per node"
+
+        return is_primary
+
+    def validate(self):
+        """
+        Flush changes back to the database.
+        """
+
+        # Basic validation
+        Row.validate(self)
+
+        assert 'method' in self
+        method = self['method']
+
+        if method == "proxy" or method == "tap":
+            if 'mac' in self and self['mac']:
+                raise PLCInvalidArgument, "For %s method, mac should not be specified" % method
+            if 'ip' not in self or not self['ip']:
+                raise PLCInvalidArgument, "For %s method, ip is required" % method
+            if method == "tap" and ('gateway' not in self or not self['gateway']):
+                raise PLCInvalidArgument, "For tap method, gateway is required and should be " \
+                      "the IP address of the node that proxies for this address"
+            # Should check that the proxy address is reachable, but
+            # there's no way to tell if the only primary interface is
+            # DHCP!
+
+        elif method == "static":
+            for key in ['ip', 'gateway', 'network', 'broadcast', 'netmask', 'dns1']:
+                if key not in self or not self[key]:
+                    raise PLCInvalidArgument, "For static method, %s is required" % key
+                globals()[key] = self[key]
+            if not in_same_network(ip, network, netmask):
+                raise PLCInvalidArgument, "IP address %s is inconsistent with network %s/%s" % \
+                      (ip, network, netmask)
+            if not in_same_network(broadcast, network, netmask):
+                raise PLCInvalidArgument, "Broadcast address %s is inconsistent with network %s/%s" % \
+                      (broadcast, network, netmask)
+            if not in_same_network(ip, gateway, netmask):
+                raise PLCInvalidArgument, "Gateway %s is not reachable from %s/%s" % \
+                      (gateway, ip, netmask)
+
+        elif method == "ipmi":
+            if 'ip' not in self or not self['ip']:
+                raise PLCInvalidArgument, "For ipmi method, ip is required"
+
+class NodeNetworks(Table):
+    """
+    Representation of row(s) from the nodenetworks table in the
+    database.
+    """
+
+    def __init__(self, api, nodenetwork_filter = None, columns = None):
+        Table.__init__(self, api, NodeNetwork, columns)
+
+        sql = "SELECT %s FROM view_nodenetworks WHERE True" % \
+              ", ".join(self.columns)
+
+        if nodenetwork_filter is not None:
+            if isinstance(nodenetwork_filter, (list, tuple, set)):
+                nodenetwork_filter = Filter(NodeNetwork.fields, {'nodenetwork_id': nodenetwork_filter})
+            elif isinstance(nodenetwork_filter, dict):
+                nodenetwork_filter = Filter(NodeNetwork.fields, nodenetwork_filter)
+            elif isinstance(nodenetwork_filter, int):
+                nodenetwork_filter = Filter(NodeNetwork.fields, {'nodenetwork_id': [nodenetwork_filter]})
+            else:
+                raise PLCInvalidArgument, "Wrong node network filter %r"%nodenetwork_filter
+            sql += " AND (%s) %s" % nodenetwork_filter.sql(api)
+
+        self.selectall(sql)
diff --git a/trunk/PLC/Nodes.py b/trunk/PLC/Nodes.py
new file mode 100644 (file)
index 0000000..08612f6
--- /dev/null
@@ -0,0 +1,326 @@
+#
+# Functions for interacting with the nodes table in the database
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from types import StringTypes
+import re
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Debug import profile
+from PLC.Table import Row, Table
+from PLC.NodeNetworks import NodeNetwork, NodeNetworks
+from PLC.BootStates import BootStates
+
+def valid_hostname(hostname):
+    # 1. Each part begins and ends with a letter or number.
+    # 2. Each part except the last can contain letters, numbers, or hyphens.
+    # 3. Each part is between 1 and 64 characters, including the trailing dot.
+    # 4. At least two parts.
+    # 5. Last part can only contain between 2 and 6 letters.
+    good_hostname = r'^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\.)+' \
+                    r'[a-z]{2,6}$'
+    return hostname and \
+           re.match(good_hostname, hostname, re.IGNORECASE)
+
+class Node(Row):
+    """
+    Representation of a row in the nodes table. To use, optionally
+    instantiate with a dict of values. Update as you would a
+    dict. Commit to the database with sync().
+    """
+
+    table_name = 'nodes'
+    primary_key = 'node_id'
+    # Thierry -- we use delete on nodenetworks so the related NodeNetworkSettings get deleted too
+    join_tables = ['nodegroup_node', 'conf_file_node', 'pcu_node', 'slice_node', 'slice_attribute', 'node_session', 'peer_node','node_slice_whitelist']
+    fields = {
+        'node_id': Parameter(int, "Node identifier"),
+        'hostname': Parameter(str, "Fully qualified hostname", max = 255),
+        'site_id': Parameter(int, "Site at which this node is located"),
+        'boot_state': Parameter(str, "Boot state", max = 20),
+        'model': Parameter(str, "Make and model of the actual machine", max = 255, nullok = True),
+        'boot_nonce': Parameter(str, "(Admin only) Random value generated by the node at last boot", max = 128),
+        'version': Parameter(str, "Apparent Boot CD version", max = 64),
+        'ssh_rsa_key': Parameter(str, "Last known SSH host key", max = 1024),
+        'date_created': Parameter(int, "Date and time when node entry was created", ro = True),
+        'last_updated': Parameter(int, "Date and time when node entry was created", ro = True),
+       'last_contact': Parameter(int, "Date and time when node last contacted plc", ro = True), 
+        'key': Parameter(str, "(Admin only) Node key", max = 256),
+        'session': Parameter(str, "(Admin only) Node session value", max = 256, ro = True),
+        'nodenetwork_ids': Parameter([int], "List of network interfaces that this node has"),
+        'nodegroup_ids': Parameter([int], "List of node groups that this node is in"),
+        'conf_file_ids': Parameter([int], "List of configuration files specific to this node"),
+        # 'root_person_ids': Parameter([int], "(Admin only) List of people who have root access to this node"),
+        'slice_ids': Parameter([int], "List of slices on this node"),
+       'slice_ids_whitelist': Parameter([int], "List of slices allowed on this node"),
+        'pcu_ids': Parameter([int], "List of PCUs that control this node"),
+        'ports': Parameter([int], "List of PCU ports that this node is connected to"),
+        'peer_id': Parameter(int, "Peer to which this node belongs", nullok = True),
+        'peer_node_id': Parameter(int, "Foreign node identifier at peer", nullok = True),
+        }
+    related_fields = {
+       'nodenetworks': [Mixed(Parameter(int, "NodeNetwork identifier"),
+                                      Filter(NodeNetwork.fields))],
+       'nodegroups': [Mixed(Parameter(int, "NodeGroup identifier"),
+                             Parameter(str, "NodeGroup name"))],
+       'conf_files': [Parameter(int, "ConfFile identifier")],
+       'slices': [Mixed(Parameter(int, "Slice identifier"),
+                         Parameter(str, "Slice name"))],
+       'slices_whitelist': [Mixed(Parameter(int, "Slice identifier"),
+                                   Parameter(str, "Slice name"))]
+       }
+    # for Cache
+    class_key = 'hostname'
+    foreign_fields = ['boot_state','model','version']
+    # forget about these ones, they are read-only anyway
+    # handling them causes Cache to re-sync all over again 
+    # 'date_created','last_updated'
+    foreign_xrefs = [
+       # in this case, we dont need the 'table' but Cache will look it up, so...
+        {'field' : 'site_id' , 'class' : 'Site' , 'table' : 'unused-on-direct-refs' } ,
+       ]
+
+    def validate_hostname(self, hostname):
+        if not valid_hostname(hostname):
+            raise PLCInvalidArgument, "Invalid hostname"
+
+        conflicts = Nodes(self.api, [hostname])
+        for node in conflicts:
+            if 'node_id' not in self or self['node_id'] != node['node_id']:
+                raise PLCInvalidArgument, "Hostname already in use"
+
+        return hostname
+
+    def validate_boot_state(self, boot_state):
+        boot_states = [row['boot_state'] for row in BootStates(self.api)]
+        if boot_state not in boot_states:
+            raise PLCInvalidArgument, "Invalid boot state"
+
+        return boot_state
+
+    validate_date_created = Row.validate_timestamp
+    validate_last_updated = Row.validate_timestamp
+    validate_last_contact = Row.validate_timestamp
+
+    def update_last_contact(self, commit = True):
+       """
+       Update last_contact field with current time
+       """
+       
+       assert 'node_id' in self
+       assert self.table_name
+
+       self.api.db.do("UPDATE %s SET last_contact = CURRENT_TIMESTAMP " % (self.table_name) + \
+                      " where node_id = %d" % ( self['node_id']) )
+       self.sync(commit)
+
+
+    def update_last_updated(self, commit = True):
+        """
+        Update last_updated field with current time
+        """
+
+        assert 'node_id' in self
+        assert self.table_name
+
+        self.api.db.do("UPDATE %s SET last_updated = CURRENT_TIMESTAMP " % (self.table_name) + \
+                       " where node_id = %d" % (self['node_id']) )
+        self.sync(commit)
+
+    def associate_nodenetworks(self, auth, field, value):
+       """
+       Delete nodenetworks not found in value list (using DeleteNodeNetwor)k   
+       Add nodenetworks found in value list (using AddNodeNetwork)
+       Updates nodenetworks found w/ nodenetwork_id in value list (using UpdateNodeNetwork) 
+       """
+
+       assert 'nodenetworkp_ids' in self
+        assert 'node_id' in self
+        assert isinstance(value, list)
+
+        (nodenetwork_ids, blank, nodenetworks) = self.separate_types(value)
+
+        if self['nodenetwork_ids'] != nodenetwork_ids:
+            from PLC.Methods.DeleteNodeNetwork import DeleteNodeNetwork
+
+            stale_nodenetworks = set(self['nodenetwork_ids']).difference(nodenetwork_ids)
+
+            for stale_nodenetwork in stale_nodenetworks:
+                DeleteNodeNetwork.__call__(DeleteNodeNetwork(self.api), auth, stale_nodenetwork['nodenetwork_id'])
+
+    def associate_nodegroups(self, auth, field, value):
+       """
+       Add node to nodegroups found in value list (AddNodeToNodegroup)
+       Delete node from nodegroup not found in value list (DeleteNodeFromNodegroup)
+       """
+       
+       from PLC.NodeGroups import NodeGroups
+       
+       assert 'nodegroup_ids' in self
+       assert 'node_id' in self
+       assert isinstance(value, list)
+
+       (nodegroup_ids, nodegroup_names) = self.separate_types(value)[0:2]
+       
+       if nodegroup_names:
+           nodegroups = NodeGroups(self.api, nodegroup_names, ['nodegroup_id']).dict('nodegroup_id')
+           nodegroup_ids += nodegroups.keys()
+
+       if self['nodegroup_ids'] != nodegroup_ids:
+           from PLC.Methods.AddNodeToNodeGroup import AddNodeToNodeGroup
+           from PLC.Methods.DeleteNodeFromNodeGroup import DeleteNodeFromNodeGroup
+       
+           new_nodegroups = set(nodegroup_ids).difference(self['nodegroup_ids'])
+           stale_nodegroups = set(self['nodegroup_ids']).difference(nodegroup_ids)
+       
+           for new_nodegroup in new_nodegroups:
+               AddNodeToNodeGroup.__call__(AddNodeToNodeGroup(self.api), auth, self['node_id'], new_nodegroup)
+           for stale_nodegroup in stale_nodegroups:
+               DeleteNodeFromNodeGroup.__call__(DeleteNodeFromNodeGroup(self.api), auth, self['node_id'], stale_nodegroup)
+         
+
+    def associate_conf_files(self, auth, field, value):
+       """
+       Add conf_files found in value list (AddConfFileToNode)
+       Delets conf_files not found in value list (DeleteConfFileFromNode)
+       """
+       
+       assert 'conf_file_ids' in self
+       assert 'node_id' in self
+       assert isinstance(value, list)
+       
+       conf_file_ids = self.separate_types(value)[0]
+       
+       if self['conf_file_ids'] != conf_file_ids:
+           from PLC.Methods.AddConfFileToNode import AddConfFileToNode
+           from PLC.Methods.DeleteConfFileFromNode import DeleteConfFileFromNode
+           new_conf_files = set(conf_file_ids).difference(self['conf_file_ids'])
+           stale_conf_files = set(self['conf_file_ids']).difference(conf_file_ids)
+       
+           for new_conf_file in new_conf_files:
+               AddConfFileToNode.__call__(AddConfFileToNode(self.api), auth, new_conf_file, self['node_id'])
+           for stale_conf_file in stale_conf_files:
+               DeleteConfFileFromNode.__call__(DeleteConfFileFromNode(self.api), auth, stale_conf_file, self['node_id'])
+
+    def associate_slices(self, auth, field, value):
+       """
+       Add slices found in value list to (AddSliceToNode)
+       Delete slices not found in value list (DeleteSliceFromNode)
+       """
+       
+       from PLC.Slices import Slices
+       
+       assert 'slice_ids' in self
+       assert 'node_id' in self
+       assert isinstance(value, list)
+       
+       (slice_ids, slice_names) = self.separate_types(value)[0:2]
+
+       if slice_names:
+           slices = Slices(self.api, slice_names, ['slice_id']).dict('slice_id')
+           slice_ids += slices.keys()
+
+       if self['slice_ids'] != slice_ids:
+           from PLC.Methods.AddSliceToNodes import AddSliceToNodes
+           from PLC.Methods.DeleteSliceFromNodes import DeleteSliceFromNodes
+           new_slices = set(slice_ids).difference(self['slice_ids'])
+           stale_slices = set(self['slice_ids']).difference(slice_ids)
+       
+       for new_slice in new_slices:
+           AddSliceToNodes.__call__(AddSliceToNodes(self.api), auth, new_slice, [self['node_id']])
+       for stale_slice in stale_slices:
+           DeleteSliceFromNodes.__call__(DeleteSliceFromNodes(self.api), auth, stale_slice, [self['node_id']])                         
+
+    def associate_slices_whitelist(self, auth, field, value):
+       """
+       Add slices found in value list to whitelist (AddSliceToNodesWhitelist)
+       Delete slices not found in value list from whitelist (DeleteSliceFromNodesWhitelist)
+       """
+
+       from PLC.Slices import Slices
+
+       assert 'slice_ids_whitelist' in self
+        assert 'node_id' in self
+        assert isinstance(value, list)
+
+       (slice_ids, slice_names) = self.separate_types(value)[0:2]
+
+        if slice_names:
+            slices = Slices(self.api, slice_names, ['slice_id']).dict('slice_id')
+            slice_ids += slices.keys()
+
+        if self['slice_ids_whitelist'] != slice_ids:
+            from PLC.Methods.AddSliceToNodesWhitelist import AddSliceToNodesWhitelist
+            from PLC.Methods.DeleteSliceFromNodesWhitelist import DeleteSliceFromNodesWhitelist
+            new_slices = set(slice_ids).difference(self['slice_ids_whitelist'])
+            stale_slices = set(self['slice_ids_whitelist']).difference(slice_ids)
+
+        for new_slice in new_slices:
+            AddSliceToNodesWhitelist.__call__(AddSliceToNodesWhitelist(self.api), auth, new_slice, [self['node_id']])
+        for stale_slice in stale_slices:
+            DeleteSliceFromNodesWhitelist.__call__(DeleteSliceFromNodesWhitelist(self.api), auth, stale_slice, [self['node_id']]) 
+               
+
+    def delete(self, commit = True):
+        """
+        Delete existing node.
+        """
+
+        assert 'node_id' in self
+       assert 'nodenetwork_ids' in self
+
+       # we need to clean up NodeNetworkSettings, so handling nodenetworks as part of join_tables does not work
+       for nodenetwork in NodeNetworks(self.api,self['nodenetwork_ids']):
+           nodenetwork.delete()
+
+        # Clean up miscellaneous join tables
+        for table in self.join_tables:
+            self.api.db.do("DELETE FROM %s WHERE node_id = %d" % \
+                           (table, self['node_id']))
+
+        # Mark as deleted
+        self['deleted'] = True
+        self.sync(commit)
+
+
+class Nodes(Table):
+    """
+    Representation of row(s) from the nodes table in the
+    database.
+    """
+
+    def __init__(self, api, node_filter = None, columns = None):
+        Table.__init__(self, api, Node, columns)
+
+        sql = "SELECT %s FROM view_nodes WHERE deleted IS False" % \
+              ", ".join(self.columns)
+
+        if node_filter is not None:
+            if isinstance(node_filter, (list, tuple, set)):
+                # Separate the list into integers and strings
+                ints = filter(lambda x: isinstance(x, (int, long)), node_filter)
+                strs = filter(lambda x: isinstance(x, StringTypes), node_filter)
+                node_filter = Filter(Node.fields, {'node_id': ints, 'hostname': strs})
+                sql += " AND (%s) %s" % node_filter.sql(api, "OR")
+            elif isinstance(node_filter, dict):
+                node_filter = Filter(Node.fields, node_filter)
+                sql += " AND (%s) %s" % node_filter.sql(api, "AND")
+            elif isinstance (node_filter, StringTypes):
+                node_filter = Filter(Node.fields, {'hostname':[node_filter]})
+                sql += " AND (%s) %s" % node_filter.sql(api, "AND")
+            elif isinstance (node_filter, int):
+                node_filter = Filter(Node.fields, {'node_id':[node_filter]})
+                sql += " AND (%s) %s" % node_filter.sql(api, "AND")
+            else:
+                raise PLCInvalidArgument, "Wrong node filter %r"%node_filter
+
+        self.selectall(sql)
diff --git a/trunk/PLC/PCUProtocolTypes.py b/trunk/PLC/PCUProtocolTypes.py
new file mode 100644 (file)
index 0000000..30ef459
--- /dev/null
@@ -0,0 +1,75 @@
+#
+# Functions for interacting with the pcu_type_port table in the database
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id: 
+#
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Table import Row, Table
+from PLC.Filter import Filter
+
+class PCUProtocolType(Row):
+    """
+    Representation of a row in the pcu_protocol_type table. To use,
+    instantiate with a dict of values.
+    """
+
+    table_name = 'pcu_protocol_type'
+    primary_key = 'pcu_protocol_type_id'
+    join_tables = []
+    fields = {
+       'pcu_protocol_type_id': Parameter(int, "PCU protocol type identifier"),
+       'pcu_type_id': Parameter(int, "PCU type identifier"), 
+       'port': Parameter(int, "PCU port", max = 254),
+       'protocol': Parameter(str, "Protocol", max = 254),
+       'supported': Parameter(bool, "Is the port/protocol supported by PLC") 
+        }
+
+    def validate_port(self, port):
+       # make sure port is not blank
+       
+       if not port:
+            raise PLCInvalidArgument, "Port must be specified"
+       
+       return port
+
+    def validate_protocol(self, protocol):
+        # make sure port is not blank
+        if not len(protocol):
+            raise PLCInvalidArgument, "protocol must be specified"
+
+       return protocol
+
+class PCUProtocolTypes(Table):
+    """
+    Representation of the pcu_protocol_types table in the database.
+    """
+
+    def __init__(self, api, protocol_type_filter = None, columns = None):
+        Table.__init__(self, api, PCUProtocolType, columns)
+
+        sql = "SELECT %s FROM pcu_protocol_type WHERE True" % \
+              ", ".join(self.columns)
+        
+       if protocol_type_filter is not None:
+            if isinstance(protocol_type_filter, (list, tuple, set)):
+                # Separate the list into integers and strings
+                ints = filter(lambda x: isinstance(x, (int, long)), protocol_type_filter)
+                protocol_type_filter = Filter(PCUProtocolType.fields, {'pcu_protocol_type_id': ints})
+                sql += " AND (%s) %s" % protocol_type_filter.sql(api, "OR")
+            elif isinstance(protocol_type_filter, dict):
+                protocol_type_filter = Filter(PCUProtocolType.fields, protocol_type_filter)
+                sql += " AND (%s) %s" % protocol_type_filter.sql(api, "AND")
+            elif isinstance (protocol_type_filter, int):
+                protocol_type_filter = Filter(PCUProtocolType.fields, {'pcu_protocol_type_id':[protocol_type_filter]})
+
+                sql += " AND (%s) %s" % protocol_type_filter.sql(api, "AND")
+            else:
+                raise PLCInvalidArgument, "Wrong pcu_protocol_type filter %r"%protocol_type_filter     
+
+
+        self.selectall(sql)
diff --git a/trunk/PLC/PCUTypes.py b/trunk/PLC/PCUTypes.py
new file mode 100644 (file)
index 0000000..d1f650c
--- /dev/null
@@ -0,0 +1,104 @@
+#
+# Functions for interacting with the pcu_types table in the database
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id: 
+#
+from types import StringTypes
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Table import Row, Table
+from PLC.Filter import Filter
+
+class PCUType(Row):
+    """
+    Representation of a row in the pcu_types table. To use,
+    instantiate with a dict of values.
+    """
+
+    table_name = 'pcu_types'
+    primary_key = 'pcu_type_id'
+    join_tables = ['pcu_port_type']
+    fields = {
+        'pcu_type_id': Parameter(int, "PCU Type Identifier"),
+       'model': Parameter(str, "PCU model", max = 254),
+       'name': Parameter(str, "PCU full name", max = 254),
+        'pcu_protocol_type_ids': Parameter([int], "PCU Protocol Type Identifiers"),
+       'pcu_protocol_types': Parameter([dict], "PCU Protocol Type List")
+        }
+
+    def validate_model(self, model):
+       # Make sure name is not blank
+        if not len(model):
+            raise PLCInvalidArgument, "Model must be specified"
+       
+       # Make sure boot state does not alredy exist
+       conflicts = PCUTypes(self.api, [model])
+        for pcu_type in conflicts:
+           if 'pcu_type_id' not in self or self['pcu_type_id'] != pcu_type['pcu_type_id']: 
+               raise PLCInvalidArgument, "Model already in use"
+
+       return model
+
+class PCUTypes(Table):
+    """
+    Representation of the pcu_types table in the database.
+    """
+
+    def __init__(self, api, pcu_type_filter = None, columns = None):
+
+       # Remove pcu_protocol_types from query since its not really a field
+       # in the db. We will add it later
+       if columns == None:
+           columns = PCUType.fields.keys()
+       if 'pcu_protocol_types' in columns:
+           removed_fields = ['pcu_protocol_types']
+           columns.remove('pcu_protocol_types')
+       else:
+           removed_fields = []
+
+        Table.__init__(self, api, PCUType, columns)
+
+        sql = "SELECT %s FROM view_pcu_types WHERE True" % \
+              ", ".join(self.columns)
+        
+       if pcu_type_filter is not None:
+            if isinstance(pcu_type_filter, (list, tuple, set)):
+                # Separate the list into integers and strings
+                ints = filter(lambda x: isinstance(x, (int, long)), pcu_type_filter)
+                strs = filter(lambda x: isinstance(x, StringTypes), pcu_type_filter)
+                pcu_type_filter = Filter(PCUType.fields, {'pcu_type_id': ints, 'model': strs})
+                sql += " AND (%s) %s" % pcu_type_filter.sql(api, "OR")
+            elif isinstance(pcu_type_filter, dict):
+                pcu_type_filter = Filter(PCUType.fields, pcu_type_filter)
+                sql += " AND (%s) %s" % pcu_type_filter.sql(api, "AND")
+            elif isinstance (pcu_type_filter, StringTypes):
+                pcu_type_filter = Filter(PCUType.fields, {'model':[pcu_type_filter]})
+                sql += " AND (%s) %s" % pcu_type_filter.sql(api, "AND")
+            elif isinstance (pcu_type_filter, int):
+                pcu_type_filter = Filter(PCUType.fields, {'pcu_type_id':[pcu_type_filter]})
+                sql += " AND (%s) %s" % pcu_type_filter.sql(api, "AND")
+            else:
+                raise PLCInvalidArgument, "Wrong pcu_type filter %r"%pcu_type_filter   
+
+
+        self.selectall(sql)
+
+        # return a list of protocol type objects for each port type
+        if 'pcu_protocol_types' in removed_fields:
+           from PLC.PCUProtocolTypes import PCUProtocolTypes
+            protocol_type_ids = set()
+            for pcu_type in self:
+                protocol_type_ids.update(pcu_type['pcu_protocol_type_ids'])
+
+            protocol_return_fields = ['pcu_protocol_type_id', 'port', 'protocol', 'supported']
+            all_protocol_types = PCUProtocolTypes(self.api, list(protocol_type_ids), \
+                                                 protocol_return_fields).dict('pcu_protocol_type_id')
+
+            for pcu_type in self:
+                pcu_type['pcu_protocol_types'] = []
+                for protocol_type_id in pcu_type['pcu_protocol_type_ids']:
+                    pcu_type['pcu_protocol_types'].append(all_protocol_types[protocol_type_id])
diff --git a/trunk/PLC/PCUs.py b/trunk/PLC/PCUs.py
new file mode 100644 (file)
index 0000000..563acf9
--- /dev/null
@@ -0,0 +1,116 @@
+#
+# Functions for interacting with the pcus table in the database
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Filter import Filter
+from PLC.Debug import profile
+from PLC.Table import Row, Table
+from PLC.NodeNetworks import valid_ip, NodeNetwork, NodeNetworks
+from PLC.Nodes import Node, Nodes
+
+class PCU(Row):
+    """
+    Representation of a row in the pcus table. To use,
+    instantiate with a dict of values.
+    """
+
+    table_name = 'pcus'
+    primary_key = 'pcu_id'
+    join_tables = ['pcu_node']
+    fields = {
+        'pcu_id': Parameter(int, "PCU identifier"),
+        'site_id': Parameter(int, "Identifier of site where PCU is located"),
+        'hostname': Parameter(str, "PCU hostname", max = 254),
+        'ip': Parameter(str, "PCU IP address", max = 254),
+        'protocol': Parameter(str, "PCU protocol, e.g. ssh, https, telnet", max = 16, nullok = True),
+        'username': Parameter(str, "PCU username", max = 254, nullok = True),
+        'password': Parameter(str, "PCU username", max = 254, nullok = True),
+        'notes': Parameter(str, "Miscellaneous notes", max = 254, nullok = True),
+        'model': Parameter(str, "PCU model string", max = 32, nullok = True),
+        'node_ids': Parameter([int], "List of nodes that this PCU controls"),
+        'ports': Parameter([int], "List of the port numbers that each node is connected to"),
+        }
+
+    def validate_ip(self, ip):
+        if not valid_ip(ip):
+            raise PLCInvalidArgument, "Invalid IP address " + ip
+        return ip
+
+    def add_node(self, node, port, commit = True):
+        """
+        Add node to existing PCU.
+        """
+
+        assert 'pcu_id' in self
+        assert isinstance(node, Node)
+        assert isinstance(port, (int, long))
+        assert 'node_id' in node
+
+        pcu_id = self['pcu_id']
+        node_id = node['node_id']
+
+        if node_id not in self['node_ids'] and port not in self['ports']:
+            self.api.db.do("INSERT INTO pcu_node (pcu_id, node_id, port)" \
+                           " VALUES(%(pcu_id)d, %(node_id)d, %(port)d)",
+                           locals())
+
+            if commit:
+                self.api.db.commit()
+
+            self['node_ids'].append(node_id)
+            self['ports'].append(port)
+
+    def remove_node(self, node, commit = True):
+        """
+        Remove node from existing PCU.
+        """
+
+        assert 'pcu_id' in self
+        assert isinstance(node, Node)
+        assert 'node_id' in node
+
+        pcu_id = self['pcu_id']
+        node_id = node['node_id']
+
+        if node_id in self['node_ids']:
+            i = self['node_ids'].index(node_id)
+            port = self['ports'][i]
+
+            self.api.db.do("DELETE FROM pcu_node" \
+                           " WHERE pcu_id = %(pcu_id)d" \
+                           " AND node_id = %(node_id)d",
+                           locals())
+
+            if commit:
+                self.api.db.commit()
+
+            self['node_ids'].remove(node_id)
+            self['ports'].remove(port)
+
+class PCUs(Table):
+    """
+    Representation of row(s) from the pcus table in the
+    database.
+    """
+
+    def __init__(self, api, pcu_filter = None, columns = None):
+        Table.__init__(self, api, PCU, columns)
+
+        sql = "SELECT %s FROM view_pcus WHERE True" % \
+              ", ".join(self.columns)
+
+        if pcu_filter is not None:
+            if isinstance(pcu_filter, (list, tuple, set)):
+                pcu_filter = Filter(PCU.fields, {'pcu_id': pcu_filter})
+            elif isinstance(pcu_filter, dict):
+                pcu_filter = Filter(PCU.fields, pcu_filter)
+            sql += " AND (%s) %s" % pcu_filter.sql(api)
+
+        self.selectall(sql)
diff --git a/trunk/PLC/POD.py b/trunk/PLC/POD.py
new file mode 100644 (file)
index 0000000..01a7ddd
--- /dev/null
@@ -0,0 +1,90 @@
+# Marc E. Fiuczynski <mef@cs.princeton.edu>
+# Copyright (C) 2004 The Trustees of Princeton University
+#
+# Client ping of death program for both udp & icmp
+#
+# modified for inclusion by api by Aaron K
+
+import struct
+import os
+import array
+import getopt
+from socket import *
+
+UPOD_PORT = 664
+
+def _in_cksum(packet):
+    """THE RFC792 states: 'The 16 bit one's complement of
+    the one's complement sum of all 16 bit words in the header.'
+    Generates a checksum of a (ICMP) packet. Based on in_chksum found
+    in ping.c on FreeBSD.
+    """
+
+    # add byte if not dividable by 2
+    if len(packet) & 1:
+        packet = packet + '\0'
+
+    # split into 16-bit word and insert into a binary array
+    words = array.array('h', packet)
+    sum = 0
+
+    # perform ones complement arithmetic on 16-bit words
+    for word in words:
+        sum += (word & 0xffff)
+
+    hi = sum >> 16
+    lo = sum & 0xffff
+    sum = hi + lo
+    sum = sum + (sum >> 16)
+
+    return (~sum) & 0xffff # return ones complement
+
+def _construct(id, data):
+    """Constructs a ICMP IPOD packet
+    """
+    ICMP_TYPE = 6 # ping of death code used by PLK
+    ICMP_CODE = 0
+    ICMP_CHECKSUM = 0
+    ICMP_ID = 0
+    ICMP_SEQ_NR = 0
+
+    header = struct.pack('bbHHh', ICMP_TYPE, ICMP_CODE, ICMP_CHECKSUM, \
+                         ICMP_ID, ICMP_SEQ_NR+id)
+
+    packet = header + data          # ping packet without checksum
+    checksum = _in_cksum(packet)    # make checksum
+
+    # construct header with correct checksum
+    header = struct.pack('bbHHh', ICMP_TYPE, ICMP_CODE, checksum, ICMP_ID, \
+                         ICMP_SEQ_NR+id)
+
+    # ping packet *with* checksum
+    packet = header + data
+
+    # a perfectly formatted ICMP echo packet
+    return packet
+
+def icmp_pod(host,key):
+    uid = os.getuid()
+    if uid <> 0:
+        print "must be root to send icmp pod"
+        return
+    
+    s = socket(AF_INET, SOCK_RAW, getprotobyname("icmp"))
+    packet = _construct(0, key) # make a ping packet
+    addr = (host,1)
+    print 'pod sending icmp-based reboot request to %s' % host
+    for i in range(1,10):
+        s.sendto(packet, addr)
+
+def udp_pod(host,key,fromaddr=('', 0)):
+    addr = host, UPOD_PORT
+    s = socket(AF_INET, SOCK_DGRAM)
+    s.bind(fromaddr)
+    packet = key
+    print 'pod sending udp-based reboot request to %s' % host
+    for i in range(1,10):
+        s.sendto(packet, addr)
+
+def noop_pod(host,key):
+    pass
diff --git a/trunk/PLC/Parameter.py b/trunk/PLC/Parameter.py
new file mode 100644 (file)
index 0000000..fc25b93
--- /dev/null
@@ -0,0 +1,105 @@
+#
+# Shared type definitions
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from types import *
+from PLC.Faults import *
+
+class Parameter:
+    """
+    Typed value wrapper. Use in accepts and returns to document method
+    parameters. Set the optional and default attributes for
+    sub-parameters (i.e., dict fields).
+    """
+
+    def __init__(self, type, doc = "",
+                 min = None, max = None,
+                 optional = None,
+                 ro = False,
+                 nullok = False):
+        # Basic type of the parameter. Must be a builtin type
+        # that can be marshalled by XML-RPC.
+        self.type = type
+
+        # Documentation string for the parameter
+        self.doc = doc
+
+        # Basic value checking. For numeric types, the minimum and
+        # maximum possible values, inclusive. For string types, the
+        # minimum and maximum possible UTF-8 encoded byte lengths.
+        self.min = min
+        self.max = max
+
+        # Whether the sub-parameter is optional or not. If None,
+        # unknown whether it is optional.
+        self.optional = optional
+
+        # Whether the DB field is read-only.
+        self.ro = ro
+
+        # Whether the DB field can be NULL.
+        self.nullok = nullok
+
+    def type(self):
+        return self.type
+
+    def __repr__(self):
+        return repr(self.type)
+
+class Mixed(tuple):
+    """
+    A list (technically, a tuple) of types. Use in accepts and returns
+    to document method parameters that may return mixed types.
+    """
+
+    def __new__(cls, *types):
+        return tuple.__new__(cls, types)
+
+
+def python_type(arg):
+    """
+    Returns the Python type of the specified argument, which may be a
+    Python type, a typed value, or a Parameter.
+    """
+
+    if isinstance(arg, Parameter):
+        arg = arg.type
+
+    if isinstance(arg, type):
+        return arg
+    else:
+        return type(arg)
+
+def xmlrpc_type(arg):
+    """
+    Returns the XML-RPC type of the specified argument, which may be a
+    Python type, a typed value, or a Parameter.
+    """
+
+    arg_type = python_type(arg)
+
+    if arg_type == NoneType:
+        return "nil"
+    elif arg_type == IntType or arg_type == LongType:
+        return "int"
+    elif arg_type == bool:
+        return "boolean"
+    elif arg_type == FloatType:
+        return "double"
+    elif arg_type in StringTypes:
+        return "string"
+    elif arg_type == ListType or arg_type == TupleType:
+        return "array"
+    elif arg_type == DictType:
+        return "struct"
+    elif arg_type == Mixed:
+        # Not really an XML-RPC type but return "mixed" for
+        # documentation purposes.
+        return "mixed"
+    else:
+        raise PLCAPIError, "XML-RPC cannot marshal %s objects" % arg_type
diff --git a/trunk/PLC/Peers.py b/trunk/PLC/Peers.py
new file mode 100644 (file)
index 0000000..0973c3d
--- /dev/null
@@ -0,0 +1,235 @@
+#
+# Thierry Parmentelat - INRIA
+# 
+
+import re
+from types import StringTypes
+from urlparse import urlparse
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Table import Row, Table
+import PLC.Auth
+
+from PLC.Sites import Site, Sites
+from PLC.Persons import Person, Persons
+from PLC.Keys import Key, Keys
+from PLC.Nodes import Node, Nodes
+from PLC.SliceAttributeTypes import SliceAttributeType, SliceAttributeTypes
+from PLC.SliceAttributes import SliceAttribute, SliceAttributes
+from PLC.Slices import Slice, Slices
+
+class Peer(Row):
+    """
+    Stores the list of peering PLCs in the peers table. 
+    See the Row class for more details
+    """
+
+    table_name = 'peers'
+    primary_key = 'peer_id'
+    join_tables = ['peer_site', 'peer_person', 'peer_key', 'peer_node',
+                   'peer_slice_attribute_type', 'peer_slice_attribute', 'peer_slice']
+    fields = {
+       'peer_id': Parameter (int, "Peer identifier"),
+       'peername': Parameter (str, "Peer name"),
+       'peer_url': Parameter (str, "Peer API URL"),
+       'key': Parameter(str, "Peer GPG public key"),
+       'cacert': Parameter(str, "Peer SSL public certificate"),
+        ### cross refs
+        'site_ids': Parameter([int], "List of sites for which this peer is authoritative"),
+        'person_ids': Parameter([int], "List of users for which this peer is authoritative"),
+        'key_ids': Parameter([int], "List of keys for which this peer is authoritative"),
+        'node_ids': Parameter([int], "List of nodes for which this peer is authoritative"),
+        'slice_ids': Parameter([int], "List of slices for which this peer is authoritative"),
+       }
+
+    def validate_peername(self, peername):
+        if not len(peername):
+            raise PLCInvalidArgument, "Peer name must be specified"
+
+        conflicts = Peers(self.api, [peername])
+        for peer in conflicts:
+            if 'peer_id' not in self or self['peer_id'] != peer['peer_id']:
+                raise PLCInvalidArgument, "Peer name already in use"
+
+        return peername
+
+    def validate_peer_url(self, url):
+       """
+       Validate URL. Must be HTTPS.
+       """
+
+        (scheme, netloc, path, params, query, fragment) = urlparse(url)
+        if scheme != "https":
+            raise PLCInvalidArgument, "Peer URL scheme must be https"
+
+       return url
+
+    def delete(self, commit = True):
+       """
+       Deletes this peer and all related entities.
+       """
+
+       assert 'peer_id' in self
+
+        # Remove all related entities
+        for obj in \
+            Slices(self.api, self['slice_ids']) + \
+            Keys(self.api, self['key_ids']) + \
+            Persons(self.api, self['person_ids']) + \
+            Nodes(self.api, self['node_ids']) + \
+            Sites(self.api, self['site_ids']):
+            assert obj['peer_id'] == self['peer_id']
+            obj.delete(commit = False)
+
+        # Mark as deleted
+       self['deleted'] = True
+       self.sync(commit)
+
+    def add_site(self, site, peer_site_id, commit = True):
+        """
+        Associate a local site entry with this peer.
+        """
+
+        add = Row.add_object(Site, 'peer_site')
+        add(self, site,
+            {'peer_id': self['peer_id'],
+             'site_id': site['site_id'],
+             'peer_site_id': peer_site_id},
+            commit = commit)
+
+    def add_person(self, person, peer_person_id, commit = True):
+        """
+        Associate a local user entry with this peer.
+        """
+
+        add = Row.add_object(Person, 'peer_person')
+        add(self, person,
+            {'peer_id': self['peer_id'],
+             'person_id': person['person_id'],
+             'peer_person_id': peer_person_id},
+            commit = commit)
+
+    def add_key(self, key, peer_key_id, commit = True):
+        """
+        Associate a local key entry with this peer.
+        """
+
+        add = Row.add_object(Key, 'peer_key')
+        add(self, key,
+            {'peer_id': self['peer_id'],
+             'key_id': key['key_id'],
+             'peer_key_id': peer_key_id},
+            commit = commit)
+
+    def add_node(self, node, peer_node_id, commit = True):
+        """
+        Associate a local node entry with this peer.
+        """
+
+        add = Row.add_object(Node, 'peer_node')
+        add(self, node,
+            {'peer_id': self['peer_id'],
+             'node_id': node['node_id'],
+             'peer_node_id': peer_node_id},
+            commit = commit)
+
+    def add_slice(self, slice, peer_slice_id, commit = True):
+        """
+        Associate a local slice entry with this peer.
+        """
+
+        add = Row.add_object(Slice, 'peer_slice')
+        add(self, slice,
+            {'peer_id': self['peer_id'],
+             'slice_id': slice['slice_id'],
+             'peer_slice_id': peer_slice_id},
+            commit = commit)
+
+    def connect(self, **kwds):
+        """
+        Connect to this peer via XML-RPC.
+        """
+
+        import xmlrpclib
+        from PLC.PyCurl import PyCurlTransport
+        self.server = xmlrpclib.ServerProxy(self['peer_url'],
+                                            PyCurlTransport(self['peer_url'], self['cacert']),
+                                            allow_none = 1, **kwds)
+
+    def add_auth(self, function, methodname, **kwds):
+        """
+        Sign the specified XML-RPC call and add an auth struct as the
+        first argument of the call.
+        """
+
+        def wrapper(*args, **kwds):
+            from PLC.GPG import gpg_sign
+            signature = gpg_sign(args,
+                                 self.api.config.PLC_ROOT_GPG_KEY,
+                                 self.api.config.PLC_ROOT_GPG_KEY_PUB,
+                                 methodname)
+
+            auth = {'AuthMethod': "gpg",
+                    'name': self.api.config.PLC_NAME,
+                    'signature': signature}
+
+            # Automagically add auth struct to every call
+            args = (auth,) + args
+
+            return function(*args)
+
+        return wrapper
+
+    def __getattr__(self, attr):
+        """
+        Returns a callable API function if attr is the name of a
+        PLCAPI function; otherwise, returns the specified attribute.
+        """
+
+        try:
+            # Figure out if the specified attribute is the name of a
+            # PLCAPI function. If so and the function requires an
+            # authentication structure as its first argument, return a
+            # callable that automagically adds an auth struct to the
+            # call.
+            methodname = attr
+            api_function = self.api.callable(methodname)
+            if api_function.accepts and \
+               (isinstance(api_function.accepts[0], PLC.Auth.Auth) or \
+                (isinstance(api_function.accepts[0], Mixed) and \
+                 filter(lambda param: isinstance(param, Auth), api_function.accepts[0]))):
+                function = getattr(self.server, methodname)
+                return self.add_auth(function, methodname)
+        except Exception, err:
+            pass
+
+        if hasattr(self, attr):
+            return getattr(self, attr)
+        else:
+            raise AttributeError, "type object 'Peer' has no attribute '%s'" % attr
+
+class Peers (Table):
+    """ 
+    Maps to the peers table in the database
+    """
+    
+    def __init__ (self, api, peer_filter = None, columns = None):
+        Table.__init__(self, api, Peer, columns)
+
+       sql = "SELECT %s FROM view_peers WHERE deleted IS False" % \
+              ", ".join(self.columns)
+
+        if peer_filter is not None:
+            if isinstance(peer_filter, (list, tuple, set)):
+                # Separate the list into integers and strings
+                ints = filter(lambda x: isinstance(x, (int, long)), peer_filter)
+                strs = filter(lambda x: isinstance(x, StringTypes), peer_filter)
+                peer_filter = Filter(Peer.fields, {'peer_id': ints, 'peername': strs})
+                sql += " AND (%s) %s" % peer_filter.sql(api, "OR")
+            elif isinstance(peer_filter, dict):
+                peer_filter = Filter(Peer.fields, peer_filter)
+                sql += " AND (%s) %s" % peer_filter.sql(api, "AND")
+
+       self.selectall(sql)
diff --git a/trunk/PLC/Persons.py b/trunk/PLC/Persons.py
new file mode 100644 (file)
index 0000000..8eb882c
--- /dev/null
@@ -0,0 +1,501 @@
+#
+# Functions for interacting with the persons table in the database
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from types import StringTypes
+from datetime import datetime
+import md5
+import time
+from random import Random
+import re
+import crypt
+
+from PLC.Faults import *
+from PLC.Debug import log
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Table import Row, Table
+from PLC.Roles import Role, Roles
+from PLC.Keys import Key, Keys
+from PLC.Messages import Message, Messages
+
+class Person(Row):
+    """
+    Representation of a row in the persons table. To use, optionally
+    instantiate with a dict of values. Update as you would a
+    dict. Commit to the database with sync().
+    """
+
+    table_name = 'persons'
+    primary_key = 'person_id'
+    join_tables = ['person_key', 'person_role', 'person_site', 'slice_person', 'person_session', 'peer_person']
+    fields = {
+        'person_id': Parameter(int, "User identifier"),
+        'first_name': Parameter(str, "Given name", max = 128),
+        'last_name': Parameter(str, "Surname", max = 128),
+        'title': Parameter(str, "Title", max = 128, nullok = True),
+        'email': Parameter(str, "Primary e-mail address", max = 254),
+        'phone': Parameter(str, "Telephone number", max = 64, nullok = True),
+        'url': Parameter(str, "Home page", max = 254, nullok = True),
+        'bio': Parameter(str, "Biography", max = 254, nullok = True),
+        'enabled': Parameter(bool, "Has been enabled"),
+        'password': Parameter(str, "Account password in crypt() form", max = 254),
+        'verification_key': Parameter(str, "Reset password key", max = 254, nullok = True),
+       'verification_expires': Parameter(int, "Date and time when verification_key expires", nullok = True),
+       'last_updated': Parameter(int, "Date and time of last update", ro = True),
+        'date_created': Parameter(int, "Date and time when account was created", ro = True),
+        'role_ids': Parameter([int], "List of role identifiers"),
+        'roles': Parameter([str], "List of roles"),
+        'site_ids': Parameter([int], "List of site identifiers"),
+        'key_ids': Parameter([int], "List of key identifiers"),
+        'slice_ids': Parameter([int], "List of slice identifiers"),
+        'peer_id': Parameter(int, "Peer to which this user belongs", nullok = True),
+        'peer_person_id': Parameter(int, "Foreign user identifier at peer", nullok = True),
+        }
+    related_fields = {
+       'roles': [Mixed(Parameter(int, "Role identifier"),
+                       Parameter(str, "Role name"))],
+       'sites': [Mixed(Parameter(int, "Site identifier"),
+                       Parameter(str, "Site name"))],
+       'keys': [Mixed(Parameter(int, "Key identifier"),
+                      Filter(Key.fields))],
+       'slices': [Mixed(Parameter(int, "Slice identifier"),
+                        Parameter(str, "Slice name"))]
+       }       
+
+       
+
+    # for Cache
+    class_key = 'email'
+    foreign_fields = ['first_name', 'last_name', 'title', 'email', 'phone', 'url',
+                     'bio', 'enabled', 'password', ]
+    # forget about these ones, they are read-only anyway
+    # handling them causes Cache to re-sync all over again 
+    # 'last_updated', 'date_created'
+    foreign_xrefs = [
+        {'field' : 'key_ids',  'class': 'Key',  'table' : 'person_key' } ,
+        {'field' : 'site_ids', 'class': 'Site', 'table' : 'person_site'},
+#       xxx this is not handled by Cache yet
+#        'role_ids': Parameter([int], "List of role identifiers"),
+]
+
+    def validate_email(self, email):
+        """
+        Validate email address. Stolen from Mailman.
+        """
+
+        invalid_email = PLCInvalidArgument("Invalid e-mail address")
+        email_badchars = r'[][()<>|;^,\200-\377]'
+
+        # Pretty minimal, cheesy check.  We could do better...
+        if not email or email.count(' ') > 0:
+            raise invalid_email
+        if re.search(email_badchars, email) or email[0] == '-':
+            raise invalid_email
+
+        email = email.lower()
+        at_sign = email.find('@')
+        if at_sign < 1:
+            raise invalid_email
+        user = email[:at_sign]
+        rest = email[at_sign+1:]
+        domain = rest.split('.')
+
+        # This means local, unqualified addresses, are not allowed
+        if not domain:
+            raise invalid_email
+        if len(domain) < 2:
+            raise invalid_email
+
+               # check only against users on the same peer  
+       if 'peer_id' in self:
+            namespace_peer_id = self['peer_id']
+        else:
+            namespace_peer_id = None
+         
+       conflicts = Persons(self.api, {'email':email,'peer_id':namespace_peer_id}) 
+       
+       for person in conflicts:
+            if 'person_id' not in self or self['person_id'] != person['person_id']:
+                raise PLCInvalidArgument, "E-mail address already in use"
+
+        return email
+
+    def validate_password(self, password):
+        """
+        Encrypt password if necessary before committing to the
+        database.
+        """
+
+        magic = "$1$"
+
+        if len(password) > len(magic) and \
+           password[0:len(magic)] == magic:
+            return password
+        else:
+            # Generate a somewhat unique 8 character salt string
+            salt = str(time.time()) + str(Random().random())
+            salt = md5.md5(salt).hexdigest()[:8] 
+            return crypt.crypt(password.encode(self.api.encoding), magic + salt + "$")
+
+    validate_date_created = Row.validate_timestamp
+    validate_last_updated = Row.validate_timestamp
+    validate_verification_expires = Row.validate_timestamp
+
+    def can_update(self, person):
+        """
+        Returns true if we can update the specified person. We can
+        update a person if:
+
+        1. We are the person.
+        2. We are an admin.
+        3. We are a PI and the person is a user or tech or at
+           one of our sites.
+        """
+
+        assert isinstance(person, Person)
+
+        if self['person_id'] == person['person_id']:
+            return True
+
+        if 'admin' in self['roles']:
+            return True
+
+        if 'pi' in self['roles']:
+            if set(self['site_ids']).intersection(person['site_ids']):
+                # Can update people with higher role IDs
+                return min(self['role_ids']) < min(person['role_ids'])
+
+        return False
+
+    def can_view(self, person):
+        """
+        Returns true if we can view the specified person. We can
+        view a person if:
+
+        1. We are the person.
+        2. We are an admin.
+        3. We are a PI and the person is at one of our sites.
+        """
+
+        assert isinstance(person, Person)
+
+        if self.can_update(person):
+            return True
+
+        if 'pi' in self['roles']:
+            if set(self['site_ids']).intersection(person['site_ids']):
+                # Can view people with equal or higher role IDs
+                return min(self['role_ids']) <= min(person['role_ids'])
+
+        return False
+
+    add_role = Row.add_object(Role, 'person_role')
+    remove_role = Row.remove_object(Role, 'person_role')
+
+    add_key = Row.add_object(Key, 'person_key')
+    remove_key = Row.remove_object(Key, 'person_key')
+
+    def set_primary_site(self, site, commit = True):
+        """
+        Set the primary site for an existing user.
+        """
+
+        assert 'person_id' in self
+        assert 'site_id' in site
+
+        person_id = self['person_id']
+        site_id = site['site_id']
+        self.api.db.do("UPDATE person_site SET is_primary = False" \
+                       " WHERE person_id = %(person_id)d",
+                       locals())
+        self.api.db.do("UPDATE person_site SET is_primary = True" \
+                       " WHERE person_id = %(person_id)d" \
+                       " AND site_id = %(site_id)d",
+                       locals())
+
+        if commit:
+            self.api.db.commit()
+
+        assert 'site_ids' in self
+        assert site_id in self['site_ids']
+
+        # Make sure that the primary site is first in the list
+        self['site_ids'].remove(site_id)
+        self['site_ids'].insert(0, site_id)
+
+    def update_last_updated(self, commit = True):
+        """
+        Update last_updated field with current time
+        """
+       
+       assert 'person_id' in self
+       assert self.table_name
+       
+       self.api.db.do("UPDATE %s SET last_updated = CURRENT_TIMESTAMP " % (self.table_name) + \
+                       " where person_id = %d" % (self['person_id']) )
+        self.sync(commit)
+
+    def associate_roles(self, auth, field, value):
+       """
+       Adds roles found in value list to this person (using AddRoleToPerson).
+       Deletes roles not found in value list from this person (using DeleteRoleFromPerson).
+       """
+       
+       assert 'role_ids' in self
+       assert 'person_id' in self
+       assert isinstance(value, list)
+       
+       (role_ids, roles_names) = self.separate_types(value)[0:2]
+       
+       # Translate roles into role_ids
+       if roles_names:
+           roles = Roles(self.api, role_names, ['role_id']).dict('role_id')
+           role_ids += roles.keys()
+       
+       # Add new ids, remove stale ids
+       if self['role_ids'] != role_ids:
+           from PLC.Methods.AddRoleToPerson import AddRoleToPerson
+           from PLC.Methods.DeleteRoleFromPerson import DeleteRoleFromPerson
+           new_roles = set(role_ids).difference(self['role_ids'])
+           stale_roles = set(self['role_ids']).difference(role_ids)
+
+           for new_role in new_roles:
+               AddRoleToPerson.__call__(AddRoleToPerson(self.api), auth, new_role, self['person_id'])
+           for stale_role in stale_roles:
+               DeleteRoleFromPerson.__call__(DeleteRoleFromPerson(self.api), auth, stale_role, self['person_id'])
+
+
+    def associate_sites(self, auth, field, value):
+        """
+        Adds person to sites found in value list (using AddPersonToSite).
+        Deletes person from site not found in value list (using DeletePersonFromSite).
+        """
+
+       from PLC.Sites import Sites
+
+        assert 'site_ids' in self
+        assert 'person_id' in self
+        assert isinstance(value, list)
+
+        (site_ids, site_names) = self.separate_types(value)[0:2]
+
+        # Translate roles into role_ids
+        if site_names:
+            sites = Sites(self.api, site_names, ['site_id']).dict('site_id')
+            site_ids += sites.keys()
+
+        # Add new ids, remove stale ids
+        if self['site_ids'] != site_ids:
+            from PLC.Methods.AddPersonToSite import AddPersonToSite
+            from PLC.Methods.DeletePersonFromSite import DeletePersonFromSite
+            new_sites = set(site_ids).difference(self['site_ids'])
+            stale_sites = set(self['site_ids']).difference(site_ids)
+
+            for new_site in new_sites:
+                AddPersonToSite.__call__(AddPersonToSite(self.api), auth, self['person_id'], new_site)
+            for stale_site in stale_sites:
+                DeletePersonFromSite.__call__(DeletePersonFromSite(self.api), auth, self['person_id'], stale_site)
+
+
+    def associate_keys(self, auth, field, value):
+       """
+        Deletes key_ids not found in value list (using DeleteKey).
+        Adds key if key_fields w/o key_id is found (using AddPersonKey).
+        Updates key if key_fields w/ key_id is found (using UpdateKey).
+        """
+       assert 'key_ids' in self
+       assert 'person_id' in self
+       assert isinstance(value, list)
+       
+       (key_ids, blank, keys) = self.separate_types(value)
+       
+       if self['key_ids'] != key_ids:
+           from PLC.Methods.DeleteKey import DeleteKey
+           stale_keys = set(self['key_ids']).difference(key_ids)
+       
+           for stale_key in stale_keys:
+               DeleteKey.__call__(DeleteKey(self.api), auth, stale_key) 
+
+       if keys:
+           from PLC.Methods.AddPersonKey import AddPersonKey
+           from PLC.Methods.UpdateKey import UpdateKey         
+           updated_keys = filter(lambda key: 'key_id' in key, keys)
+           added_keys = filter(lambda key: 'key_id' not in key, keys)
+               
+           for key in added_keys:
+               AddPersonKey.__call__(AddPersonKey(self.api), auth, self['person_id'], key)
+           for key in updated_keys:
+               key_id = key.pop('key_id')
+               UpdateKey.__call__(UpdateKey(self.api), auth, key_id, key)
+                 
+       
+    def associate_slices(self, auth, field, value):
+        """
+        Adds person to slices found in value list (using AddPersonToSlice).
+        Deletes person from slices found in value list (using DeletePersonFromSlice).
+        """
+
+       from PLC.Slices import Slices
+
+        assert 'slice_ids' in self
+        assert 'person_id' in self
+        assert isinstance(value, list)
+
+        (slice_ids, slice_names) = self.separate_types(value)[0:2]
+
+        # Translate roles into role_ids
+        if slice_names:
+            slices = Slices(self.api, slice_names, ['slice_id']).dict('slice_id')
+            slice_ids += slices.keys()
+
+        # Add new ids, remove stale ids
+        if self['slice_ids'] != slice_ids:
+            from PLC.Methods.AddPersonToSlice import AddPersonToSlice
+            from PLC.Methods.DeletePersonFromSlice import DeletePersonFromSlice
+            new_slices = set(slice_ids).difference(self['slice_ids'])
+            stale_slices = set(self['slice_ids']).difference(slice_ids)
+
+            for new_slice in new_slices:
+                AddPersonToSlice.__call__(AddPersonToSlice(self.api), auth, self['person_id'], new_slice)
+            for stale_slice in stale_slices:
+                DeletePersonFromSlice.__call__(DeletePersonFromSlice(self.api), auth, self['person_id'], stale_slice)
+    
+
+    def delete(self, commit = True):
+        """
+        Delete existing user.
+        """
+
+        # Delete all keys
+        keys = Keys(self.api, self['key_ids'])
+        for key in keys:
+            key.delete(commit = False)
+
+        # Clean up miscellaneous join tables
+        for table in self.join_tables:
+            self.api.db.do("DELETE FROM %s WHERE person_id = %d" % \
+                           (table, self['person_id']))
+
+        # Mark as deleted
+        self['deleted'] = True
+        self.sync(commit)
+
+class Persons(Table):
+    """
+    Representation of row(s) from the persons table in the
+    database.
+    """
+
+    def __init__(self, api, person_filter = None, columns = None):
+        Table.__init__(self, api, Person, columns)
+        #sql = "SELECT %s FROM view_persons WHERE deleted IS False" % \
+        #      ", ".join(self.columns)
+       foreign_fields = {'role_ids': ('role_id', 'person_role'),
+                         'roles': ('name', 'roles'),
+                          'site_ids': ('site_id', 'person_site'),
+                          'key_ids': ('key_id', 'person_key'),
+                          'slice_ids': ('slice_id', 'slice_person')
+                          }
+       foreign_keys = {}
+       db_fields = filter(lambda field: field not in foreign_fields.keys(), Person.fields.keys())
+       all_fields = db_fields + [value[0] for value in foreign_fields.values()]
+       fields = []
+       _select = "SELECT "
+       _from = " FROM persons "
+       _join = " LEFT JOIN peer_person USING (person_id) "  
+       _where = " WHERE deleted IS False "
+
+       if not columns:
+           # include all columns       
+           fields = all_fields
+           tables = [value[1] for value in foreign_fields.values()]
+           tables.sort()
+           for key in foreign_fields.keys():
+               foreign_keys[foreign_fields[key][0]] = key  
+           for table in tables:
+               if table in ['roles']:
+                   _join += " LEFT JOIN roles USING(role_id) "
+               else:   
+                   _join += " LEFT JOIN %s USING (person_id) " % (table)
+       else: 
+           tables = set()
+           columns = filter(lambda column: column in db_fields+foreign_fields.keys(), columns)
+           columns.sort()
+           for column in columns: 
+               if column in foreign_fields.keys():
+                   (field, table) = foreign_fields[column]
+                   foreign_keys[field] = column
+                   fields += [field]
+                   tables.add(table)
+                   if column in ['roles']:
+                       _join += " LEFT JOIN roles USING(role_id) "
+                   else:
+                       _join += " LEFT JOIN %s USING (person_id)" % \
+                               (foreign_fields[column][1])
+               
+               else:
+                   fields += [column]  
+       
+       # postgres will return timestamps as datetime objects. 
+       # XMLPRC cannot marshal datetime so convert to int
+       timestamps = ['date_created', 'last_updated', 'verification_expires']
+       for field in fields:
+           if field in timestamps:
+               fields[fields.index(field)] = \
+                "CAST(date_part('epoch', %s) AS bigint) AS %s" % (field, field)
+
+       _select += ", ".join(fields)
+       sql = _select + _from + _join + _where
+
+       # deal with filter                      
+        if person_filter is not None:
+            if isinstance(person_filter, (list, tuple, set)):
+                # Separate the list into integers and strings
+                ints = filter(lambda x: isinstance(x, (int, long)), person_filter)
+                strs = filter(lambda x: isinstance(x, StringTypes), person_filter)
+                person_filter = Filter(Person.fields, {'person_id': ints, 'email': strs})
+                sql += " AND (%s) %s" % person_filter.sql(api, "OR")
+            elif isinstance(person_filter, dict):
+                person_filter = Filter(Person.fields, person_filter)
+                sql += " AND (%s) %s" % person_filter.sql(api, "AND")
+            elif isinstance (person_filter, StringTypes):
+                person_filter = Filter(Person.fields, {'email':[person_filter]})
+                sql += " AND (%s) %s" % person_filter.sql(api, "AND")
+            elif isinstance (person_filter, int):
+                person_filter = Filter(Person.fields, {'person_id':[person_filter]})
+                sql += " AND (%s) %s" % person_filter.sql(api, "AND")
+            else:
+                raise PLCInvalidArgument, "Wrong person filter %r"%person_filter
+
+       # aggregate data
+       all_persons = {}
+       for row in self.api.db.selectall(sql):
+           person_id = row['person_id']
+
+           if all_persons.has_key(person_id):
+               for (key, key_list) in foreign_keys.items():
+                   data = row.pop(key)
+                   row[key_list] = [data]
+                   if data and data not in all_persons[person_id][key_list]:
+                       all_persons[person_id][key_list].append(data)
+            else:
+               for key in foreign_keys.keys():
+                    value = row.pop(key)
+                   if value:   
+                       row[foreign_keys[key]] = [value]
+                   else:
+                       row[foreign_keys[key]] = []
+               if row: 
+                   all_persons[person_id] = row
+               
+       # populate self
+       for row in all_persons.values():
+           obj = self.classobj(self.api, row)
+            self.append(obj)
+
diff --git a/trunk/PLC/PostgreSQL.py b/trunk/PLC/PostgreSQL.py
new file mode 100644 (file)
index 0000000..597077a
--- /dev/null
@@ -0,0 +1,240 @@
+#
+# PostgreSQL database interface. Sort of like DBI(3) (Database
+# independent interface for Perl).
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+import psycopg2
+import psycopg2.extensions
+psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
+# UNICODEARRAY not exported yet
+psycopg2.extensions.register_type(psycopg2._psycopg.UNICODEARRAY)
+
+import pgdb
+from types import StringTypes, NoneType
+import traceback
+import commands
+import re
+from pprint import pformat
+
+from PLC.Debug import profile, log
+from PLC.Faults import *
+
+if not psycopg2:
+    is8bit = re.compile("[\x80-\xff]").search
+
+    def unicast(typecast):
+        """
+        pgdb returns raw UTF-8 strings. This function casts strings that
+        appear to contain non-ASCII characters to unicode objects.
+        """
+    
+        def wrapper(*args, **kwds):
+            value = typecast(*args, **kwds)
+
+            # pgdb always encodes unicode objects as UTF-8 regardless of
+            # the DB encoding (and gives you no option for overriding
+            # the encoding), so always decode 8-bit objects as UTF-8.
+            if isinstance(value, str) and is8bit(value):
+                value = unicode(value, "utf-8")
+
+            return value
+
+        return wrapper
+
+    pgdb.pgdbTypeCache.typecast = unicast(pgdb.pgdbTypeCache.typecast)
+
+class PostgreSQL:
+    def __init__(self, api):
+        self.api = api
+        self.debug = False
+        self.connection = None
+
+    def cursor(self):
+        if self.connection is None:
+            # (Re)initialize database connection
+            if psycopg2:
+                try:
+                    # Try UNIX socket first
+                    self.connection = psycopg2.connect(user = self.api.config.PLC_DB_USER,
+                                                       password = self.api.config.PLC_DB_PASSWORD,
+                                                       database = self.api.config.PLC_DB_NAME)
+                except psycopg2.OperationalError:
+                    # Fall back on TCP
+                    self.connection = psycopg2.connect(user = self.api.config.PLC_DB_USER,
+                                                       password = self.api.config.PLC_DB_PASSWORD,
+                                                       database = self.api.config.PLC_DB_NAME,
+                                                       host = self.api.config.PLC_DB_HOST,
+                                                       port = self.api.config.PLC_DB_PORT)
+                self.connection.set_client_encoding("UNICODE")
+            else:
+                self.connection = pgdb.connect(user = self.api.config.PLC_DB_USER,
+                                               password = self.api.config.PLC_DB_PASSWORD,
+                                               host = "%s:%d" % (api.config.PLC_DB_HOST, api.config.PLC_DB_PORT),
+                                               database = self.api.config.PLC_DB_NAME)
+
+        (self.rowcount, self.description, self.lastrowid) = \
+                        (None, None, None)
+
+        return self.connection.cursor()
+
+    def close(self):
+        if self.connection is not None:
+            self.connection.close()
+            self.connection = None
+
+    def quote(self, value):
+        """
+        Returns quoted version of the specified value.
+        """
+
+        # The pgdb._quote function is good enough for general SQL
+        # quoting, except for array types.
+        if isinstance(value, (list, tuple, set)):
+            return "ARRAY[%s]" % ", ".join(map, self.quote, value)
+        else:
+            return pgdb._quote(value)
+
+    quote = classmethod(quote)
+
+    def param(self, name, value):
+        # None is converted to the unquoted string NULL
+        if isinstance(value, NoneType):
+            conversion = "s"
+        # True and False are also converted to unquoted strings
+        elif isinstance(value, bool):
+            conversion = "s"
+        elif isinstance(value, float):
+            conversion = "f"
+        elif not isinstance(value, StringTypes):
+            conversion = "d"
+        else:
+            conversion = "s"
+
+        return '%(' + name + ')' + conversion
+
+    param = classmethod(param)
+
+    def begin_work(self):
+        # Implicit in pgdb.connect()
+        pass
+
+    def commit(self):
+        self.connection.commit()
+
+    def rollback(self):
+        self.connection.rollback()
+
+    def do(self, query, params = None):
+        cursor = self.execute(query, params)
+        cursor.close()
+        return self.rowcount
+
+    def last_insert_id(self, table_name, primary_key):
+        if isinstance(self.lastrowid, int):
+            sql = "SELECT %s FROM %s WHERE oid = %d" % \
+                  (primary_key, table_name, self.lastrowid)
+            rows = self.selectall(sql, hashref = False)
+            if rows:
+                return rows[0][0]
+
+        return None
+
+    def execute(self, query, params = None):
+        return self.execute_array(query, (params,))
+
+    def execute_array(self, query, param_seq):
+        cursor = self.cursor()
+        try:
+            if self.debug:
+                for params in param_seq:
+                    if params:
+                        print >> log, query % params
+                    else:
+                        print >> log, query
+
+            # psycopg2 requires %()s format for all parameters,
+            # regardless of type.
+            if psycopg2:
+                query = re.sub(r'(%\([^)]*\)|%)[df]', r'\1s', query)
+
+            cursor.executemany(query, param_seq)
+            (self.rowcount, self.description, self.lastrowid) = \
+                            (cursor.rowcount, cursor.description, cursor.lastrowid)
+        except Exception, e:
+            try:
+                self.rollback()
+            except:
+                pass
+            uuid = commands.getoutput("uuidgen")
+            print >> log, "Database error %s:" % uuid
+            print >> log, e
+            print >> log, "Query:"
+            print >> log, query
+            print >> log, "Params:"
+            print >> log, pformat(param_seq[0])
+            raise PLCDBError("Please contact " + \
+                             self.api.config.PLC_NAME + " Support " + \
+                             "<" + self.api.config.PLC_MAIL_SUPPORT_ADDRESS + ">" + \
+                             " and reference " + uuid)
+
+        return cursor
+
+    def selectall(self, query, params = None, hashref = True, key_field = None):
+        """
+        Return each row as a dictionary keyed on field name (like DBI
+        selectrow_hashref()). If key_field is specified, return rows
+        as a dictionary keyed on the specified field (like DBI
+        selectall_hashref()).
+
+        If params is specified, the specified parameters will be bound
+        to the query.
+        """
+
+        cursor = self.execute(query, params)
+        rows = cursor.fetchall()
+        cursor.close()
+
+        if hashref or key_field is not None:
+            # Return each row as a dictionary keyed on field name
+            # (like DBI selectrow_hashref()).
+            labels = [column[0] for column in self.description]
+            rows = [dict(zip(labels, row)) for row in rows]
+
+        if key_field is not None and key_field in labels:
+            # Return rows as a dictionary keyed on the specified field
+            # (like DBI selectall_hashref()).
+            return dict([(row[key_field], row) for row in rows])
+        else:
+            return rows
+
+    def fields(self, table, notnull = None, hasdef = None):
+        """
+        Return the names of the fields of the specified table.
+        """
+
+        if hasattr(self, 'fields_cache'):
+            if self.fields_cache.has_key((table, notnull, hasdef)):
+                return self.fields_cache[(table, notnull, hasdef)]
+        else:
+            self.fields_cache = {}
+
+        sql = "SELECT attname FROM pg_attribute, pg_class" \
+              " WHERE pg_class.oid = attrelid" \
+              " AND attnum > 0 AND relname = %(table)s"
+
+        if notnull is not None:
+            sql += " AND attnotnull is %(notnull)s"
+
+        if hasdef is not None:
+            sql += " AND atthasdef is %(hasdef)s"
+
+        rows = self.selectall(sql, locals(), hashref = False)
+
+        self.fields_cache[(table, notnull, hasdef)] = [row[0] for row in rows]
+
+        return self.fields_cache[(table, notnull, hasdef)]
diff --git a/trunk/PLC/PyCurl.py b/trunk/PLC/PyCurl.py
new file mode 100644 (file)
index 0000000..f0d4005
--- /dev/null
@@ -0,0 +1,80 @@
+#
+# Replacement for xmlrpclib.SafeTransport, which does not validate
+# SSL certificates. Requires PyCurl.
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+import os
+import xmlrpclib
+import pycurl
+from tempfile import NamedTemporaryFile
+
+class PyCurlTransport(xmlrpclib.Transport):
+    def __init__(self, uri, cert = None, timeout = 300):
+        self.curl = pycurl.Curl()
+
+        # Suppress signals
+        self.curl.setopt(pycurl.NOSIGNAL, 1)
+
+        # Follow redirections
+        self.curl.setopt(pycurl.FOLLOWLOCATION, 1)
+
+        # Set URL
+        self.url = uri
+        self.curl.setopt(pycurl.URL, str(uri))
+
+        # Set certificate path
+        if cert is not None:
+            if os.path.exists(cert):
+                cert_path = str(cert)
+            else:
+                # Keep a reference so that it does not get deleted
+                self.cert = NamedTemporaryFile(prefix = "cert")
+                self.cert.write(cert)
+                self.cert.flush()
+                cert_path = self.cert.name
+            self.curl.setopt(pycurl.CAINFO, cert_path)
+            self.curl.setopt(pycurl.SSL_VERIFYPEER, 2)
+
+        # Set connection timeout
+        if timeout:
+            self.curl.setopt(pycurl.CONNECTTIMEOUT, timeout)
+            self.curl.setopt(pycurl.TIMEOUT, timeout)
+
+        # Set request callback
+        self.body = ""
+        def body(buf):
+            self.body += buf
+        self.curl.setopt(pycurl.WRITEFUNCTION, body)        
+
+    def request(self, host, handler, request_body, verbose = 1):
+        # Set verbosity
+        self.curl.setopt(pycurl.VERBOSE, verbose)
+
+        # Post request
+        self.curl.setopt(pycurl.POST, 1)
+        self.curl.setopt(pycurl.POSTFIELDS, request_body)
+
+        try:
+            self.curl.perform()
+            errcode = self.curl.getinfo(pycurl.HTTP_CODE)
+            response = self.body
+            self.body = ""
+        except pycurl.error, err:
+            (errcode, errmsg) = err
+
+        if errcode == 60:
+            raise Exception, "PyCurl: SSL certificate validation failed"
+        elif errcode != 200:
+           raise Exception, "PyCurl: HTTP error %d -- %r" % (errcode,errmsg)
+
+        # Parse response
+        p, u = self.getparser()
+        p.feed(response)
+        p.close()
+
+        return u.close()
diff --git a/trunk/PLC/Roles.py b/trunk/PLC/Roles.py
new file mode 100644 (file)
index 0000000..400b344
--- /dev/null
@@ -0,0 +1,72 @@
+#
+# Functions for interacting with the roles table in the database
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from types import StringTypes
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Filter import Filter
+from PLC.Table import Row, Table
+
+class Role(Row):
+    """
+    Representation of a row in the roles table. To use,
+    instantiate with a dict of values.
+    """
+
+    table_name = 'roles'
+    primary_key = 'role_id'
+    join_tables = ['person_role', ('slice_attribute_types', 'min_role_id')]
+    fields = {
+        'role_id': Parameter(int, "Role identifier"),
+        'name': Parameter(str, "Role", max = 100),
+        }
+
+    def validate_role_id(self, role_id):
+       # Make sure role does not already exist
+       conflicts = Roles(self.api, [role_id])
+        if conflicts:
+            raise PLCInvalidArgument, "Role ID already in use"
+
+        return role_id
+
+    def validate_name(self, name):
+       # Make sure name is not blank
+        if not len(name):
+            raise PLCInvalidArgument, "Role must be specified"
+       
+       # Make sure role does not already exist
+       conflicts = Roles(self.api, [name])
+        if conflicts:
+            raise PLCInvalidArgument, "Role name already in use"
+
+       return name
+
+class Roles(Table):
+    """
+    Representation of the roles table in the database.
+    """
+
+    def __init__(self, api, role_filter = None):
+        Table.__init__(self, api, Role)
+
+        sql = "SELECT %s FROM roles WHERE True" % \
+              ", ".join(Role.fields)
+        
+        if role_filter is not None:
+            if isinstance(role_filter, (list, tuple, set)):
+                # Separate the list into integers and strings
+                ints = filter(lambda x: isinstance(x, (int, long)), role_filter)
+                strs = filter(lambda x: isinstance(x, StringTypes), role_filter)
+                role_filter = Filter(Role.fields, {'role_id': ints, 'name': strs})
+                sql += " AND (%s) %s" % role_filter.sql(api, "OR")
+            elif isinstance(role_filter, dict):
+                role_filter = Filter(Role.fields, role_filter)
+                sql += " AND (%s) %s" % role_filter.sql(api, "AND")
+
+        self.selectall(sql)
diff --git a/trunk/PLC/Sessions.py b/trunk/PLC/Sessions.py
new file mode 100644 (file)
index 0000000..e0a57b3
--- /dev/null
@@ -0,0 +1,91 @@
+from types import StringTypes
+import random
+import base64
+import time
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Filter import Filter
+from PLC.Debug import profile
+from PLC.Table import Row, Table
+from PLC.Persons import Person, Persons
+from PLC.Nodes import Node, Nodes
+
+class Session(Row):
+    """
+    Representation of a row in the sessions table. To use, instantiate
+    with a dict of values.
+    """
+
+    table_name = 'sessions'
+    primary_key = 'session_id'
+    join_tables = ['person_session', 'node_session']
+    fields = {
+        'session_id': Parameter(str, "Session key"),
+        'person_id': Parameter(int, "Account identifier, if applicable"),
+        'node_id': Parameter(int, "Node identifier, if applicable"),
+        'expires': Parameter(int, "Date and time when session expires, in seconds since UNIX epoch"),
+        }
+
+    def validate_expires(self, expires):
+        if expires < time.time():
+            raise PLCInvalidArgument, "Expiration date must be in the future"
+
+        return time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(expires))
+
+    add_person = Row.add_object(Person, 'person_session')
+
+    def add_node(self, node, commit = True):
+        # Nodes can have only one session at a time
+        self.api.db.do("DELETE FROM node_session WHERE node_id = %d" % \
+                       node['node_id'])
+
+        add = Row.add_object(Node, 'node_session')
+        add(self, node, commit = commit)
+
+    def sync(self, commit = True, insert = None):
+        if not self.has_key('session_id'):
+            # Before a new session is added, delete expired sessions
+            expired = Sessions(self.api, expires = -int(time.time()))
+            for session in expired:
+                session.delete(commit)
+
+            # Generate 32 random bytes
+            bytes = random.sample(xrange(0, 256), 32)
+            # Base64 encode their string representation
+            self['session_id'] = base64.b64encode("".join(map(chr, bytes)))
+            # Force insert
+            insert = True
+
+        Row.sync(self, commit, insert)
+
+class Sessions(Table):
+    """
+    Representation of row(s) from the session table in the database.
+    """
+
+    def __init__(self, api, session_filter = None, expires = int(time.time())):
+       Table.__init__(self, api, Session)
+
+        sql = "SELECT %s FROM view_sessions WHERE True" % \
+              ", ".join(Session.fields)
+
+       if session_filter is not None:
+           if isinstance(session_filter, (list, tuple, set)):
+               # Separate the list into integers and strings
+                ints = filter(lambda x: isinstance(x, (int, long)), session_filter)
+                strs = filter(lambda x: isinstance(x, StringTypes), session_filter)
+                session_filter = Filter(Session.fields, {'person_id': ints, 'session_id': strs})
+                sql += " AND (%s) %s" % session_filter.sql(api, "OR")
+           elif isinstance(session_filter, dict):
+               session_filter = Filter(Session.fields, session_filter)
+               sql += " AND (%s) %s" % session_filter.sql(api, "AND")
+
+        if expires is not None:
+            if expires >= 0:
+                sql += " AND expires > %(expires)d"
+            else:
+                expires = -expires
+                sql += " AND expires < %(expires)d"
+
+        self.selectall(sql, locals())
diff --git a/trunk/PLC/Shell.py b/trunk/PLC/Shell.py
new file mode 100644 (file)
index 0000000..6e4a77b
--- /dev/null
@@ -0,0 +1,260 @@
+#!/usr/bin/python
+#
+# Interactive shell for testing PLCAPI
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2005 The Trustees of Princeton University
+#
+# $Id$
+#
+
+import os
+import pydoc
+import xmlrpclib
+
+from PLC.API import PLCAPI
+from PLC.Parameter import Mixed
+from PLC.Auth import Auth
+from PLC.Config import Config
+from PLC.Method import Method
+from PLC.PyCurl import PyCurlTransport
+import PLC.Methods
+
+class Callable:
+    """
+    Wrapper to call a method either directly or remotely and
+    automagically add the authentication structure if necessary.
+    """
+
+    def __init__(self, shell, name, func, auth = None):
+        self.shell = shell
+        self.name = name
+        self.func = func
+        self.auth = auth
+
+    def __call__(self, *args, **kwds):
+        """
+        Automagically add the authentication structure if the function
+        requires it and it has not been specified.
+        """
+
+        if self.auth and \
+           (not args or not isinstance(args[0], dict) or \
+            (not args[0].has_key('AuthMethod') and \
+             not args[0].has_key('session'))):
+            args = (self.auth,) + args
+
+        if self.shell.multi:
+            self.shell.calls.append({'methodName': self.name, 'params': list(args)})
+            return None
+        else:
+            return self.func(*args, **kwds)
+
+class Shell:
+    def __init__(self,
+                 # Add API functions to global scope
+                 globals = None,
+                 # Configuration file
+                 config = None,
+                 # XML-RPC server
+                 url = None, xmlrpc = False, cacert = None,
+                 # API authentication method
+                 method = None,
+                 # Password authentication
+                 role = None, user = None, password = None,
+                 # Session authentication
+                 session = None):
+        """
+        Initialize a new shell instance. Re-initializes globals.
+        """
+
+        try:
+            # If any XML-RPC options have been specified, do not try
+            # connecting directly to the DB.
+            if (url, method, user, password, role, cacert, xmlrpc) != \
+                   (None, None, None, None, None, None, False):
+                raise Exception
+
+            # Otherwise, first try connecting directly to the DB. This
+            # absolutely requires a configuration file; the API
+            # instance looks for one in a default location if one is
+            # not specified. If this fails, try connecting to the API
+            # server via XML-RPC.
+            if config is None:
+                self.api = PLCAPI()
+            else:
+                self.api = PLCAPI(config)
+            self.config = self.api.config
+            self.url = None
+            self.server = None
+        except Exception, err:
+            # Try connecting to the API server via XML-RPC
+            self.api = PLCAPI(None)
+
+            try:
+                if config is None:
+                    self.config = Config()
+                else:
+                    self.config = Config(config)
+            except Exception, err:
+                # Try to continue if no configuration file is available
+                self.config = None
+
+            if url is None:
+                if self.config is None:
+                    raise Exception, "Must specify API URL"
+
+                url = "https://" + self.config.PLC_API_HOST + \
+                      ":" + str(self.config.PLC_API_PORT) + \
+                      "/" + self.config.PLC_API_PATH + "/"
+
+                if cacert is None:
+                    cacert = self.config.PLC_API_CA_SSL_CRT
+
+            self.url = url
+            if cacert is not None:
+                self.server = xmlrpclib.ServerProxy(url, PyCurlTransport(url, cacert), allow_none = 1)
+            else:
+                self.server = xmlrpclib.ServerProxy(url, allow_none = 1)
+
+        # Set up authentication structure
+
+        # Default is to use session or capability authentication
+        if (method, user, password) == (None, None, None):
+            if session is not None or os.path.exists("/etc/planetlab/session"):
+                method = "session"
+                if session is None:
+                    session = "/etc/planetlab/session"
+            else:
+                method = "capability"
+
+        if method == "capability":
+            # Load defaults from configuration file if using capability
+            # authentication.
+            if user is None and self.config is not None:
+                user = self.config.PLC_API_MAINTENANCE_USER
+            if password is None and self.config is not None:
+                password = self.config.PLC_API_MAINTENANCE_PASSWORD
+            if role is None:
+                role = "admin"
+        elif method is None:
+            # Otherwise, default to password authentication
+            method = "password"
+
+        if role == "anonymous" or method == "anonymous":
+            self.auth = {'AuthMethod': "anonymous"}
+        elif method == "session":
+            if session is None:
+                raise Exception, "Must specify session"
+
+            if os.path.exists(session):
+                session = file(session).read()
+
+            self.auth = {'AuthMethod': "session", 'session': session}
+        else:
+            if user is None:
+                raise Exception, "Must specify username"
+
+            if password is None:
+                raise Exception, "Must specify password"
+
+            self.auth = {'AuthMethod': method,
+                         'Username': user,
+                         'AuthString': password}
+
+            if role is not None:
+                self.auth['Role'] = role
+
+        for method in PLC.Methods.methods:
+            api_function = self.api.callable(method)
+
+            if self.server is None:
+                # Can just call it directly
+                func = api_function
+            else:
+                func = getattr(self.server, method)
+
+            # If the function requires an authentication structure as
+            # its first argument, automagically add an auth struct to
+            # the call.
+            if api_function.accepts and \
+               (isinstance(api_function.accepts[0], Auth) or \
+                (isinstance(api_function.accepts[0], Mixed) and \
+                 filter(lambda param: isinstance(param, Auth), api_function.accepts[0]))):
+                auth = self.auth
+            else:
+                auth = None
+
+            callable = Callable(self, method, func, auth)
+
+            # Add to ourself and the global environment. Add dummy
+            # subattributes to support tab completion of methods with
+            # dots in their names (e.g., system.listMethods).
+            class Dummy: pass
+            paths = method.split(".")
+            if len(paths) > 1:
+                first = paths.pop(0)
+
+                if not hasattr(self, first):
+                    obj = Dummy()
+                    setattr(self, first, obj)
+                    # Also add to global environment if specified
+                    if globals is not None:
+                        globals[first] = obj
+
+                obj = getattr(self, first)
+
+                for path in paths:
+                    if not hasattr(obj, path):
+                        if path == paths[-1]:
+                            setattr(obj, path, callable)
+                        else:
+                            setattr(obj, path, Dummy())
+                    obj = getattr(obj, path)
+            else:
+                setattr(self, method, callable)
+                # Also add to global environment if specified
+                if globals is not None:
+                    globals[method] = callable
+
+        # Override help(), begin(), and commit()
+        if globals is not None:
+            globals['help'] = self.help
+            globals['begin'] = self.begin
+            globals['commit'] = self.commit
+
+        # Multicall support
+        self.calls = []
+        self.multi = False
+
+    def help(self, topic = None):
+        if isinstance(topic, Callable):
+            pydoc.pager(self.system.methodHelp(topic.name))
+        else:
+            pydoc.help(topic)
+
+    def begin(self):
+        if self.calls:
+            raise Exception, "multicall already in progress"
+
+        self.multi = True
+
+    def commit(self):
+        if self.calls:
+            ret = []
+            self.multi = False
+            results = self.system.multicall(self.calls)
+            for result in results:
+                if type(result) == type({}):
+                    raise xmlrpclib.Fault(result['faultCode'], result['faultString'])
+                elif type(result) == type([]):
+                    ret.append(result[0])
+                else:
+                    raise ValueError, "unexpected type in multicall result"
+        else:
+            ret = None
+
+        self.calls = []
+        self.multi = False
+
+        return ret
diff --git a/trunk/PLC/Sites.py b/trunk/PLC/Sites.py
new file mode 100644 (file)
index 0000000..6035bb7
--- /dev/null
@@ -0,0 +1,271 @@
+from types import StringTypes
+import string
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Debug import profile
+from PLC.Table import Row, Table
+from PLC.Slices import Slice, Slices
+from PLC.PCUs import PCU, PCUs
+from PLC.Nodes import Node, Nodes
+from PLC.Addresses import Address, Addresses
+from PLC.Persons import Person, Persons
+
+class Site(Row):
+    """
+    Representation of a row in the sites table. To use, optionally
+    instantiate with a dict of values. Update as you would a
+    dict. Commit to the database with sync().
+    """
+
+    table_name = 'sites'
+    primary_key = 'site_id'
+    join_tables = ['person_site', 'site_address', 'peer_site']
+    fields = {
+        'site_id': Parameter(int, "Site identifier"),
+        'name': Parameter(str, "Full site name", max = 254),
+        'abbreviated_name': Parameter(str, "Abbreviated site name", max = 50),
+        'login_base': Parameter(str, "Site slice prefix", max = 20),
+        'is_public': Parameter(bool, "Publicly viewable site"),
+        'enabled': Parameter(bool, "Has been enabled"),
+       'latitude': Parameter(float, "Decimal latitude of the site", min = -90.0, max = 90.0, nullok = True),
+        'longitude': Parameter(float, "Decimal longitude of the site", min = -180.0, max = 180.0, nullok = True),
+        'url': Parameter(str, "URL of a page that describes the site", max = 254, nullok = True),
+        'date_created': Parameter(int, "Date and time when site entry was created, in seconds since UNIX epoch", ro = True),
+        'last_updated': Parameter(int, "Date and time when site entry was last updated, in seconds since UNIX epoch", ro = True),
+        'max_slices': Parameter(int, "Maximum number of slices that the site is able to create"),
+        'max_slivers': Parameter(int, "Maximum number of slivers that the site is able to create"),
+        'person_ids': Parameter([int], "List of account identifiers"),
+        'slice_ids': Parameter([int], "List of slice identifiers"),
+        'address_ids': Parameter([int], "List of address identifiers"),
+        'pcu_ids': Parameter([int], "List of PCU identifiers"),
+        'node_ids': Parameter([int], "List of site node identifiers"),
+        'peer_id': Parameter(int, "Peer to which this site belongs", nullok = True),
+        'peer_site_id': Parameter(int, "Foreign site identifier at peer", nullok = True),
+       'ext_consortium_id': Parameter(int, "external consortium id", nullok = True)
+        }
+    related_fields = {
+       'persons': [Mixed(Parameter(int, "Person identifier"),
+                          Parameter(str, "Email address"))],
+       'addresses': [Mixed(Parameter(int, "Address identifer"),
+                            Filter(Address.fields))]
+       }
+    # for Cache
+    class_key = 'login_base'
+    foreign_fields = ['abbreviated_name', 'name', 'is_public', 'latitude', 'longitude',
+                     'url', 'max_slices', 'max_slivers',
+                     ]
+    # forget about these ones, they are read-only anyway
+    # handling them causes Cache to re-sync all over again 
+    # 'last_updated', 'date_created'
+    foreign_xrefs = []
+
+    def validate_name(self, name):
+        if not len(name):
+            raise PLCInvalidArgument, "Name must be specified"
+
+        return name
+
+    validate_abbreviated_name = validate_name
+
+    def validate_login_base(self, login_base):
+        if not len(login_base):
+            raise PLCInvalidArgument, "Login base must be specified"
+
+        if not set(login_base).issubset(string.lowercase + string.digits):
+            raise PLCInvalidArgument, "Login base must consist only of lowercase ASCII letters or numbers"
+
+        conflicts = Sites(self.api, [login_base])
+        for site in conflicts:
+            if 'site_id' not in self or self['site_id'] != site['site_id']:
+                raise PLCInvalidArgument, "login_base already in use"
+
+        return login_base
+
+    def validate_latitude(self, latitude):
+        if not self.has_key('longitude') or \
+           self['longitude'] is None:
+            raise PLCInvalidArgument, "Longitude must also be specified"
+
+        return latitude
+
+    def validate_longitude(self, longitude):
+        if not self.has_key('latitude') or \
+           self['latitude'] is None:
+            raise PLCInvalidArgument, "Latitude must also be specified"
+
+        return longitude
+
+    validate_date_created = Row.validate_timestamp
+    validate_last_updated = Row.validate_timestamp
+
+    add_person = Row.add_object(Person, 'person_site')
+    remove_person = Row.remove_object(Person, 'person_site')
+
+    add_address = Row.add_object(Address, 'site_address')
+    remove_address = Row.remove_object(Address, 'site_address')
+
+    def update_last_updated(self, commit = True):
+        """
+        Update last_updated field with current time
+        """
+
+        assert 'site_id' in self
+        assert self.table_name
+
+        self.api.db.do("UPDATE %s SET last_updated = CURRENT_TIMESTAMP " % (self.table_name) + \
+                       " where site_id = %d" % (self['site_id']) )
+        self.sync(commit)    
+
+
+    def associate_persons(self, auth, field, value):
+       """
+       Adds persons found in value list to this site (using AddPersonToSite).
+       Deletes persons not found in value list from this site (using DeletePersonFromSite).
+       """
+       
+       assert 'person_ids' in self
+       assert 'site_id' in self
+       assert isinstance(value, list)
+
+       (person_ids, emails) = self.separate_types(value)[0:2]
+
+       # Translate emails into person_ids
+       if emails:
+           persons = Persons(self.api, emails, ['person_id']).dict('person_id')
+           person_ids += persons.keys()
+
+       # Add new ids, remove stale ids
+       if self['person_ids'] != person_ids:
+           from PLC.Methods.AddPersonToSite import AddPersonToSite
+           from PLC.Methods.DeletePersonFromSite import DeletePersonFromSite
+           new_persons = set(person_ids).difference(self['person_ids'])
+           stale_persons = set(self['person_ids']).difference(person_ids)
+        
+           for new_person in new_persons:
+               AddPersonToSite.__call__(AddPersonToSite(self.api), auth, new_person, self['site_id'])
+           for stale_person in stale_persons:
+               DeletePersonFromSite.__call__(DeletePersonFromSite(self.api), auth, stale_person, self['site_id'])              
+
+    def associate_addresses(self, auth, field, value):
+       """
+       Deletes addresses_ids not found in value list (using DeleteAddress).  
+       Adds address if slice_fields w/o address_id found in value list (using AddSiteAddress).
+       Update address if slice_fields w/ address_id found in value list (using UpdateAddress).
+       """
+       
+       assert 'address_ids' in self
+       assert 'site_id' in self
+        assert isinstance(value, list)
+
+        (address_ids, blank, addresses) = self.separate_types(value)
+
+       for address in addresses:
+           if 'address_id' in address:
+               address_ids.append(address['address_id'])               
+
+        # Add new ids, remove stale ids
+        if self['address_ids'] != address_ids:
+            from PLC.Methods.DeleteAddress import DeleteAddress
+            stale_addresses = set(self['address_ids']).difference(address_ids)
+
+            for stale_address in stale_addresses:
+                DeleteAddress.__call__(DeleteAddress(self.api), auth, stale_address)   
+       
+       if addresses:
+           from PLC.Methods.AddSiteAddress import AddSiteAddress
+           from PLC.Methods.UpdateAddress import UpdateAddress
+               
+           updated_addresses = filter(lambda address: 'address_id' in address, addresses)
+           added_addresses = filter(lambda address: 'address_id' not in address, addresses)
+               
+           for address in added_addresses:
+               AddSiteAddress.__call__(AddSiteAddress(self.api), auth, self['site_id'], address)       
+           for address in updated_addresses:
+               address_id = address.pop('address_id')
+               UpdateAddress.__call__(UpdateAddress(self.api), auth, address_id, address)
+
+    def delete(self, commit = True):
+        """
+        Delete existing site.
+        """
+
+        assert 'site_id' in self
+
+        # Delete accounts of all people at the site who are not
+        # members of at least one other non-deleted site.
+        persons = Persons(self.api, self['person_ids'])
+        for person in persons:
+            delete = True
+
+            person_sites = Sites(self.api, person['site_ids'])
+            for person_site in person_sites:
+                if person_site['site_id'] != self['site_id']:
+                    delete = False
+                    break
+
+            if delete:
+                person.delete(commit = False)
+
+        # Delete all site addresses
+        addresses = Addresses(self.api, self['address_ids'])
+        for address in addresses:
+            address.delete(commit = False)
+
+        # Delete all site slices
+        slices = Slices(self.api, self['slice_ids'])
+        for slice in slices:
+            slice.delete(commit = False)
+
+        # Delete all site PCUs
+        pcus = PCUs(self.api, self['pcu_ids'])
+        for pcu in pcus:
+            pcu.delete(commit = False)
+
+        # Delete all site nodes
+        nodes = Nodes(self.api, self['node_ids'])
+        for node in nodes:
+            node.delete(commit = False)
+
+        # Clean up miscellaneous join tables
+        for table in self.join_tables:
+            self.api.db.do("DELETE FROM %s WHERE site_id = %d" % \
+                           (table, self['site_id']))
+
+        # Mark as deleted
+        self['deleted'] = True
+        self.sync(commit)
+
+class Sites(Table):
+    """
+    Representation of row(s) from the sites table in the
+    database.
+    """
+
+    def __init__(self, api, site_filter = None, columns = None):
+        Table.__init__(self, api, Site, columns)
+
+        sql = "SELECT %s FROM view_sites WHERE deleted IS False" % \
+              ", ".join(self.columns)
+
+        if site_filter is not None:
+            if isinstance(site_filter, (list, tuple, set)):
+                # Separate the list into integers and strings
+                ints = filter(lambda x: isinstance(x, (int, long)), site_filter)
+                strs = filter(lambda x: isinstance(x, StringTypes), site_filter)
+                site_filter = Filter(Site.fields, {'site_id': ints, 'login_base': strs})
+                sql += " AND (%s) %s" % site_filter.sql(api, "OR")
+            elif isinstance(site_filter, dict):
+                site_filter = Filter(Site.fields, site_filter)
+                sql += " AND (%s) %s" % site_filter.sql(api, "AND")
+            elif isinstance (site_filter, StringTypes):
+                site_filter = Filter(Site.fields, {'login_base':[site_filter]})
+                sql += " AND (%s) %s" % site_filter.sql(api, "AND")
+            elif isinstance (site_filter, int):
+                site_filter = Filter(Site.fields, {'site_id':[site_filter]})
+                sql += " AND (%s) %s" % site_filter.sql(api, "AND")
+            else:
+                raise PLCInvalidArgument, "Wrong site filter %r"%site_filter
+
+        self.selectall(sql)
diff --git a/trunk/PLC/SliceAttributeTypes.py b/trunk/PLC/SliceAttributeTypes.py
new file mode 100644 (file)
index 0000000..5884fe0
--- /dev/null
@@ -0,0 +1,72 @@
+from types import StringTypes
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Filter import Filter
+from PLC.Table import Row, Table
+from PLC.Roles import Role, Roles
+
+class SliceAttributeType(Row):
+    """
+    Representation of a row in the slice_attribute_types table. To
+    use, instantiate with a dict of values.
+    """
+
+    table_name = 'slice_attribute_types'
+    primary_key = 'attribute_type_id'
+    join_tables = ['slice_attribute']
+    fields = {
+        'attribute_type_id': Parameter(int, "Slice attribute type identifier"),
+        'name': Parameter(str, "Slice attribute type name", max = 100),
+        'description': Parameter(str, "Slice attribute type description", max = 254),
+        'min_role_id': Parameter(int, "Minimum (least powerful) role that can set or change this attribute"),
+        }
+
+    # for Cache
+    class_key = 'name'
+    foreign_fields = ['description','min_role_id']
+    foreign_xrefs = []
+
+    def validate_name(self, name):
+        if not len(name):
+            raise PLCInvalidArgument, "Slice attribute type name must be set"
+
+        conflicts = SliceAttributeTypes(self.api, [name])
+        for attribute in conflicts:
+            if 'attribute_type_id' not in self or \
+               self['attribute_type_id'] != attribute['attribute_type_id']:
+                raise PLCInvalidArgument, "Slice attribute type name already in use"
+
+        return name
+
+    def validate_min_role_id(self, role_id):
+        roles = [row['role_id'] for row in Roles(self.api)]
+        if role_id not in roles:
+            raise PLCInvalidArgument, "Invalid role"
+
+        return role_id
+
+class SliceAttributeTypes(Table):
+    """
+    Representation of row(s) from the slice_attribute_types table in the
+    database.
+    """
+
+    def __init__(self, api, attribute_type_filter = None, columns = None):
+        Table.__init__(self, api, SliceAttributeType, columns)
+
+        sql = "SELECT %s FROM slice_attribute_types WHERE True" % \
+              ", ".join(self.columns)
+
+        if attribute_type_filter is not None:
+            if isinstance(attribute_type_filter, (list, tuple, set)):
+                # Separate the list into integers and strings
+                ints = filter(lambda x: isinstance(x, (int, long)), attribute_type_filter)
+                strs = filter(lambda x: isinstance(x, StringTypes), attribute_type_filter)
+                attribute_type_filter = Filter(SliceAttributeType.fields, {'attribute_type_id': ints, 'name': strs})
+                sql += " AND (%s) %s" % attribute_type_filter.sql(api, "OR")
+            elif isinstance(attribute_type_filter, dict):
+                attribute_type_filter = Filter(SliceAttributeType.fields, attribute_type_filter)
+                sql += " AND (%s) %s" % attribute_type_filter.sql(api, "AND")
+
+        self.selectall(sql)
diff --git a/trunk/PLC/SliceAttributes.py b/trunk/PLC/SliceAttributes.py
new file mode 100644 (file)
index 0000000..9f0b1fb
--- /dev/null
@@ -0,0 +1,46 @@
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Filter import Filter
+from PLC.Table import Row, Table
+from PLC.SliceAttributeTypes import SliceAttributeType, SliceAttributeTypes
+
+class SliceAttribute(Row):
+    """
+    Representation of a row in the slice_attribute table. To use,
+    instantiate with a dict of values.
+    """
+
+    table_name = 'slice_attribute'
+    primary_key = 'slice_attribute_id'
+    fields = {
+        'slice_attribute_id': Parameter(int, "Slice attribute identifier"),
+        'slice_id': Parameter(int, "Slice identifier"),
+        'node_id': Parameter(int, "Node identifier, if a sliver attribute"),
+       'nodegroup_id': Parameter(int, "Nodegroup identifier, if a sliver attribute"),
+        'attribute_type_id': SliceAttributeType.fields['attribute_type_id'],
+        'name': SliceAttributeType.fields['name'],
+        'description': SliceAttributeType.fields['description'],
+        'min_role_id': SliceAttributeType.fields['min_role_id'],
+        'value': Parameter(str, "Slice attribute value"),
+        }
+
+class SliceAttributes(Table):
+    """
+    Representation of row(s) from the slice_attribute table in the
+    database.
+    """
+
+    def __init__(self, api, slice_attribute_filter = None, columns = None):
+        Table.__init__(self, api, SliceAttribute, columns)
+
+        sql = "SELECT %s FROM view_slice_attributes WHERE True" % \
+              ", ".join(self.columns)
+
+        if slice_attribute_filter is not None:
+            if isinstance(slice_attribute_filter, (list, tuple, set)):
+                slice_attribute_filter = Filter(SliceAttribute.fields, {'slice_attribute_id': slice_attribute_filter})
+            elif isinstance(slice_attribute_filter, dict):
+                slice_attribute_filter = Filter(SliceAttribute.fields, slice_attribute_filter)
+            sql += " AND (%s) %s" % slice_attribute_filter.sql(api)
+
+        self.selectall(sql)
diff --git a/trunk/PLC/SliceInstantiations.py b/trunk/PLC/SliceInstantiations.py
new file mode 100644 (file)
index 0000000..4996a1e
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# Functions for interacting with the slice_instantiations table in the database
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+from PLC.Table import Row, Table
+
+class SliceInstantiation(Row):
+    """
+    Representation of a row in the slice_instantiations table. To use,
+    instantiate with a dict of values.
+    """
+
+    table_name = 'slice_instantiations'
+    primary_key = 'instantiation'
+    join_tables = ['slices']
+    fields = {
+        'instantiation': Parameter(str, "Slice instantiation state", max = 100),
+        }
+
+    def validate_instantiation(self, instantiation):
+       # Make sure name is not blank
+        if not len(instantiation):
+            raise PLCInvalidArgument, "Slice instantiation state name must be specified"
+       
+       # Make sure slice instantiation does not alredy exist
+       conflicts = SliceInstantiations(self.api, [instantiation])
+        if conflicts:
+            raise PLCInvalidArgument, "Slice instantiation state name already in use"
+
+       return instantiation
+        
+class SliceInstantiations(Table):
+    """
+    Representation of the slice_instantiations table in the database.
+    """
+
+    def __init__(self, api, instantiations = None):
+        Table.__init__(self, api, SliceInstantiation)
+
+        sql = "SELECT %s FROM slice_instantiations" % \
+              ", ".join(SliceInstantiation.fields)
+        
+        if instantiations:
+            sql += " WHERE instantiation IN (%s)" % ", ".join(map(api.db.quote, instantiations))
+
+        self.selectall(sql)
diff --git a/trunk/PLC/Slices.py b/trunk/PLC/Slices.py
new file mode 100644 (file)
index 0000000..1a1786c
--- /dev/null
@@ -0,0 +1,296 @@
+from types import StringTypes
+import time
+import re
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter, Mixed
+from PLC.Filter import Filter
+from PLC.Debug import profile
+from PLC.Table import Row, Table
+from PLC.SliceInstantiations import SliceInstantiation, SliceInstantiations
+from PLC.Nodes import Node
+from PLC.Persons import Person, Persons
+from PLC.SliceAttributes import SliceAttribute
+
+class Slice(Row):
+    """
+    Representation of a row in the slices table. To use, optionally
+    instantiate with a dict of values. Update as you would a
+    dict. Commit to the database with sync().To use, instantiate
+    with a dict of values.
+    """
+
+    table_name = 'slices'
+    primary_key = 'slice_id'
+    join_tables = ['slice_node', 'slice_person', 'slice_attribute', 'peer_slice', 'node_slice_whitelist']
+    fields = {
+        'slice_id': Parameter(int, "Slice identifier"),
+        'site_id': Parameter(int, "Identifier of the site to which this slice belongs"),
+        'name': Parameter(str, "Slice name", max = 32),
+        'instantiation': Parameter(str, "Slice instantiation state"),
+        'url': Parameter(str, "URL further describing this slice", max = 254, nullok = True),
+        'description': Parameter(str, "Slice description", max = 2048, nullok = True),
+        'max_nodes': Parameter(int, "Maximum number of nodes that can be assigned to this slice"),
+        'creator_person_id': Parameter(int, "Identifier of the account that created this slice"),
+        'created': Parameter(int, "Date and time when slice was created, in seconds since UNIX epoch", ro = True),
+        'expires': Parameter(int, "Date and time when slice expires, in seconds since UNIX epoch"),
+        'node_ids': Parameter([int], "List of nodes in this slice", ro = True),
+        'person_ids': Parameter([int], "List of accounts that can use this slice", ro = True),
+        'slice_attribute_ids': Parameter([int], "List of slice attributes", ro = True),
+        'peer_id': Parameter(int, "Peer to which this slice belongs", nullok = True),
+        'peer_slice_id': Parameter(int, "Foreign slice identifier at peer", nullok = True),
+        }
+    related_fields = {
+       'persons': [Mixed(Parameter(int, "Person identifier"),
+                         Parameter(str, "Email address"))],
+       'nodes': [Mixed(Parameter(int, "Node identifier"),
+                       Parameter(str, "Fully qualified hostname"))]
+       }
+    # for Cache
+    class_key = 'name'
+    foreign_fields = ['instantiation', 'url', 'description', 'max_nodes', 'expires']
+    foreign_xrefs = [
+        {'field': 'node_ids' ,         'class': 'Node',   'table': 'slice_node' },
+       {'field': 'person_ids',        'class': 'Person', 'table': 'slice_person'},
+       {'field': 'creator_person_id', 'class': 'Person', 'table': 'unused-on-direct-refs'},
+        {'field': 'site_id',           'class': 'Site',   'table': 'unused-on-direct-refs'},
+    ]
+    # forget about this one, it is read-only anyway
+    # handling it causes Cache to re-sync all over again 
+    # 'created'
+
+    def validate_name(self, name):
+        # N.B.: Responsibility of the caller to ensure that login_base
+        # portion of the slice name corresponds to a valid site, if
+        # desired.
+
+        # 1. Lowercase.
+        # 2. Begins with login_base (letters or numbers).
+        # 3. Then single underscore after login_base.
+        # 4. Then letters, numbers, or underscores.
+        good_name = r'^[a-z0-9]+_[a-zA-Z0-9_]+$'
+        if not name or \
+           not re.match(good_name, name):
+            raise PLCInvalidArgument, "Invalid slice name"
+
+        conflicts = Slices(self.api, [name])
+        for slice in conflicts:
+            if 'slice_id' not in self or self['slice_id'] != slice['slice_id']:
+                raise PLCInvalidArgument, "Slice name already in use, %s"%name
+
+        return name
+
+    def validate_instantiation(self, instantiation):
+        instantiations = [row['instantiation'] for row in SliceInstantiations(self.api)]
+        if instantiation not in instantiations:
+            raise PLCInvalidArgument, "No such instantiation state"
+
+        return instantiation
+
+    validate_created = Row.validate_timestamp
+
+    def validate_expires(self, expires):
+        # N.B.: Responsibility of the caller to ensure that expires is
+        # not too far into the future.
+        check_future = not ('is_deleted' in self and self['is_deleted'])
+        return Row.validate_timestamp(self, expires, check_future = check_future)
+
+    add_person = Row.add_object(Person, 'slice_person')
+    remove_person = Row.remove_object(Person, 'slice_person')
+
+    add_node = Row.add_object(Node, 'slice_node')
+    remove_node = Row.remove_object(Node, 'slice_node')
+
+    add_to_node_whitelist = Row.add_object(Node, 'node_slice_whitelist')
+    delete_from_node_whitelist = Row.remove_object(Node, 'node_slice_whitelist')
+
+    def associate_persons(self, auth, field, value):
+        """
+        Adds persons found in value list to this slice (using AddPersonToSlice).
+       Deletes persons not found in value list from this slice (using DeletePersonFromSlice).
+        """
+       
+       assert 'person_ids' in self
+       assert 'slice_id' in self
+        assert isinstance(value, list)
+
+       (person_ids, emails) = self.separate_types(value)[0:2]
+
+       # Translate emails into person_ids      
+       if emails:
+           persons = Persons(self.api, emails, ['person_id']).dict('person_id')
+           person_ids += persons.keys()
+       
+       # Add new ids, remove stale ids
+        if self['person_ids'] != person_ids:
+            from PLC.Methods.AddPersonToSlice import AddPersonToSlice
+            from PLC.Methods.DeletePersonFromSlice import DeletePersonFromSlice
+            new_persons = set(person_ids).difference(self['person_ids'])
+            stale_persons = set(self['person_ids']).difference(person_ids)
+
+            for new_person in new_persons:
+                AddPersonToSlice.__call__(AddPersonToSlice(self.api), auth, new_person, self['slice_id'])
+            for stale_person in stale_persons:
+                DeletePersonFromSlice.__call__(DeletePersonFromSlice(self.api), auth, stale_person, self['slice_id'])
+
+    def associate_nodes(self, auth, field, value):
+       """
+       Adds nodes found in value list to this slice (using AddSliceToNodes).
+       Deletes nodes not found in value list from this slice (using DeleteSliceFromNodes).
+       """
+
+        from PLC.Nodes import Nodes
+
+       assert 'node_ids' in self
+       assert 'slice_id' in self
+       assert isinstance(value, list)
+       
+       (node_ids, hostnames) = self.separate_types(value)[0:2]
+       
+       # Translate hostnames into node_ids
+       if hostnames:
+           nodes = Nodes(self.api, hostnames, ['node_id']).dict('node_id')
+           node_ids += nodes.keys()
+       
+       # Add new ids, remove stale ids
+       if self['node_ids'] != node_ids:
+           from PLC.Methods.AddSliceToNodes import AddSliceToNodes
+           from PLC.Methods.DeleteSliceFromNodes import DeleteSliceFromNodes
+           new_nodes = set(node_ids).difference(self['node_ids'])
+           stale_nodes = set(self['node_ids']).difference(node_ids)
+           
+           if new_nodes:
+               AddSliceToNodes.__call__(AddSliceToNodes(self.api), auth, self['slice_id'], list(new_nodes))
+           if stale_nodes:
+               DeleteSliceFromNodes.__call__(DeleteSliceFromNodes(self.api), auth, self['slice_id'], list(stale_nodes))                        
+    def associate_slice_attributes(self, auth, fields, value):
+       """
+       Deletes slice_attribute_ids not found in value list (using DeleteSliceAttribute). 
+       Adds slice_attributes if slice_fields w/o slice_id is found (using AddSliceAttribute).
+       Updates slice_attribute if slice_fields w/ slice_id is found (using UpdateSlceiAttribute).  
+       """
+       
+       assert 'slice_attribute_ids' in self
+       assert isinstance(value, list)
+
+       (attribute_ids, blank, attributes) = self.separate_types(value)
+       
+       # There is no way to add attributes by id. They are
+       # associated with a slice when they are created.
+       # So we are only looking to delete here 
+       if self['slice_attribute_ids'] != attribute_ids:
+           from PLC.Methods.DeleteSliceAttribute import DeleteSliceAttribute
+           stale_attributes = set(self['slice_attribute_ids']).difference(attribute_ids)
+       
+           for stale_attribute in stale_attributes:
+               DeleteSliceAttribute.__call__(DeleteSliceAttribute(self.api), auth, stale_attribute['slice_attribute_id'])              
+       
+       # If dictionary exists, we are either adding new
+        # attributes or updating existing ones.
+        if attributes:
+            from PLC.Methods.AddSliceAttribute import AddSliceAttribute
+            from PLC.Methods.UpdateSliceAttribute import UpdateSliceAttribute
+       
+           added_attributes = filter(lambda x: 'slice_attribute_id' not in x, attributes)
+           updated_attributes = filter(lambda x: 'slice_attribute_id' in x, attributes)
+
+           for added_attribute in added_attributes:
+               if 'attribute_type' in added_attribute:
+                   type = added_attribute['attribute_type']
+               elif 'attribute_type_id' in added_attribute:
+                   type = added_attribute['attribute_type_id']
+               else:
+                   raise PLCInvalidArgument, "Must specify attribute_type or attribute_type_id"
+
+               if 'value' in added_attribute:
+                   value = added_attribute['value']
+               else:
+                   raise PLCInvalidArgument, "Must specify a value"
+               
+               if 'node_id' in added_attribute:
+                   node_id = added_attribute['node_id']
+               else:
+                   node_id = None
+
+               if 'nodegroup_id' in added_attribute:
+                   nodegroup_id = added_attribute['nodegroup_id']
+               else:
+                   nodegroup_id = None 
+               AddSliceAttribute.__call__(AddSliceAttribute(self.api), auth, self['slice_id'], type, value, node_id, nodegroup_id)
+           for updated_attribute in updated_attributes:
+               attribute_id = updated_attribute.pop('slice_attribute_id')
+               if attribute_id not in self['slice_attribute_ids']:
+                   raise PLCInvalidArgument, "Attribute doesnt belong to this slice" 
+               else:
+                   UpdateSliceAttribute.__call__(UpdateSliceAttribute(self.api), auth, attribute_id, updated_attribute)                 
+       
+    def sync(self, commit = True):
+        """
+        Add or update a slice.
+        """
+
+        # Before a new slice is added, delete expired slices
+        if 'slice_id' not in self:
+            expired = Slices(self.api, expires = -int(time.time()))
+            for slice in expired:
+                slice.delete(commit)
+
+        Row.sync(self, commit)
+
+    def delete(self, commit = True):
+        """
+        Delete existing slice.
+        """
+
+        assert 'slice_id' in self
+
+        # Clean up miscellaneous join tables
+        for table in self.join_tables:
+            self.api.db.do("DELETE FROM %s WHERE slice_id = %d" % \
+                           (table, self['slice_id']))
+
+        # Mark as deleted
+        self['is_deleted'] = True
+        self.sync(commit)
+
+
+class Slices(Table):
+    """
+    Representation of row(s) from the slices table in the
+    database.
+    """
+
+    def __init__(self, api, slice_filter = None, columns = None, expires = int(time.time())):
+        Table.__init__(self, api, Slice, columns)
+
+        sql = "SELECT %s FROM view_slices WHERE is_deleted IS False" % \
+              ", ".join(self.columns)
+
+        if expires is not None:
+            if expires >= 0:
+                sql += " AND expires > %d" % expires
+            else:
+                expires = -expires
+                sql += " AND expires < %d" % expires
+
+        if slice_filter is not None:
+            if isinstance(slice_filter, (list, tuple, set)):
+                # Separate the list into integers and strings
+                ints = filter(lambda x: isinstance(x, (int, long)), slice_filter)
+                strs = filter(lambda x: isinstance(x, StringTypes), slice_filter)
+                slice_filter = Filter(Slice.fields, {'slice_id': ints, 'name': strs})
+                sql += " AND (%s) %s" % slice_filter.sql(api, "OR")
+            elif isinstance(slice_filter, dict):
+                slice_filter = Filter(Slice.fields, slice_filter)
+                sql += " AND (%s) %s" % slice_filter.sql(api, "AND")
+            elif isinstance (slice_filter, StringTypes):
+                slice_filter = Filter(Slice.fields, {'name':[slice_filter]})
+                sql += " AND (%s) %s" % slice_filter.sql(api, "AND")
+            elif isinstance (slice_filter, int):
+                slice_filter = Filter(Slice.fields, {'slice_id':[slice_filter]})
+                sql += " AND (%s) %s" % slice_filter.sql(api, "AND")
+            else:
+                raise PLCInvalidArgument, "Wrong slice filter %r"%slice_filter
+
+        self.selectall(sql)
diff --git a/trunk/PLC/Table.py b/trunk/PLC/Table.py
new file mode 100644 (file)
index 0000000..2362d61
--- /dev/null
@@ -0,0 +1,322 @@
+from types import StringTypes
+import time
+import calendar
+
+from PLC.Faults import *
+from PLC.Parameter import Parameter
+
+class Row(dict):
+    """
+    Representation of a row in a database table. To use, optionally
+    instantiate with a dict of values. Update as you would a
+    dict. Commit to the database with sync().
+    """
+
+    # Set this to the name of the table that stores the row.
+    table_name = None
+
+    # Set this to the name of the primary key of the table. It is
+    # assumed that the this key is a sequence if it is not set when
+    # sync() is called.
+    primary_key = None
+
+    # Set this to the names of tables that reference this table's
+    # primary key.
+    join_tables = []
+
+    # Set this to a dict of the valid fields of this object and their
+    # types. Not all fields (e.g., joined fields) may be updated via
+    # sync().
+    fields = {}
+
+    def __init__(self, api, fields = {}):
+        dict.__init__(self, fields)
+        self.api = api
+
+    def validate(self):
+        """
+        Validates values. Will validate a value with a custom function
+        if a function named 'validate_[key]' exists.
+        """
+
+        # Warn about mandatory fields
+        mandatory_fields = self.api.db.fields(self.table_name, notnull = True, hasdef = False)
+        for field in mandatory_fields:
+            if not self.has_key(field) or self[field] is None:
+                raise PLCInvalidArgument, field + " must be specified and cannot be unset in class %s"%self.__class__.__name__
+
+        # Validate values before committing
+        for key, value in self.iteritems():
+            if value is not None and hasattr(self, 'validate_' + key):
+                validate = getattr(self, 'validate_' + key)
+                self[key] = validate(value)
+       
+    def separate_types(self, items):
+       """
+       Separate a list of different typed objects. 
+       Return a list for each type (ints, strs and dicts)
+       """
+       
+       if isinstance(items, (list, tuple, set)):
+           ints = filter(lambda x: isinstance(x, (int, long)), items)
+           strs = filter(lambda x: isinstance(x, StringTypes), items)
+           dicts = filter(lambda x: isinstance(x, dict), items)
+           return (ints, strs, dicts)          
+       else:
+           raise PLCInvalidArgument, "Can only separate list types" 
+               
+
+    def associate(self, *args):
+       """
+       Provides a means for high lvl api calls to associate objects
+        using low lvl calls.
+       """
+
+       if len(args) < 3:
+           raise PLCInvalidArgumentCount, "auth, field, value must be specified"
+       elif hasattr(self, 'associate_' + args[1]):
+           associate = getattr(self, 'associate_'+args[1])
+           associate(*args)
+       else:
+           raise PLCInvalidArguemnt, "No such associate function associate_%s" % args[1]
+
+    def validate_timestamp(self, timestamp, check_future = False):
+        """
+        Validates the specified GMT timestamp string (must be in
+        %Y-%m-%d %H:%M:%S format) or number (seconds since UNIX epoch,
+        i.e., 1970-01-01 00:00:00 GMT). If check_future is True,
+        raises an exception if timestamp is not in the future. Returns
+        a GMT timestamp string.
+        """
+
+        time_format = "%Y-%m-%d %H:%M:%S"
+
+       if isinstance(timestamp, StringTypes):
+           # calendar.timegm() is the inverse of time.gmtime()
+           timestamp = calendar.timegm(time.strptime(timestamp, time_format))
+
+        # Human readable timestamp string
+       human = time.strftime(time_format, time.gmtime(timestamp))
+
+       if check_future and timestamp < time.time():
+            raise PLCInvalidArgument, "'%s' not in the future" % human
+
+       return human
+
+    def add_object(self, classobj, join_table, columns = None):
+        """
+        Returns a function that can be used to associate this object
+        with another.
+        """
+
+        def add(self, obj, columns = None, commit = True):
+            """
+            Associate with the specified object.
+            """
+
+            # Various sanity checks
+            assert isinstance(self, Row)
+            assert self.primary_key in self
+            assert join_table in self.join_tables
+            assert isinstance(obj, classobj)
+            assert isinstance(obj, Row)
+            assert obj.primary_key in obj
+           assert join_table in obj.join_tables
+
+            # By default, just insert the primary keys of each object
+            # into the join table.
+            if columns is None:
+                columns = {self.primary_key: self[self.primary_key],
+                           obj.primary_key: obj[obj.primary_key]}
+
+            params = []
+            for name, value in columns.iteritems():
+                params.append(self.api.db.param(name, value))
+
+            self.api.db.do("INSERT INTO %s (%s) VALUES(%s)" % \
+                           (join_table, ", ".join(columns), ", ".join(params)),
+                           columns)
+
+            if commit:
+                self.api.db.commit()
+    
+        return add
+
+    add_object = classmethod(add_object)
+
+    def remove_object(self, classobj, join_table):
+        """
+        Returns a function that can be used to disassociate this
+        object with another.
+        """
+
+        def remove(self, obj, commit = True):
+            """
+            Disassociate from the specified object.
+            """
+    
+            assert isinstance(self, Row)
+            assert self.primary_key in self
+            assert join_table in self.join_tables
+            assert isinstance(obj, classobj)
+            assert isinstance(obj, Row)
+            assert obj.primary_key in obj
+            assert join_table in obj.join_tables
+    
+            self_id = self[self.primary_key]
+            obj_id = obj[obj.primary_key]
+    
+            self.api.db.do("DELETE FROM %s WHERE %s = %s AND %s = %s" % \
+                           (join_table,
+                            self.primary_key, self.api.db.param('self_id', self_id),
+                            obj.primary_key, self.api.db.param('obj_id', obj_id)),
+                           locals())
+
+            if commit:
+                self.api.db.commit()
+
+        return remove
+
+    remove_object = classmethod(remove_object)
+
+    def db_fields(self, obj = None):
+        """
+        Return only those fields that can be set or updated directly
+        (i.e., those fields that are in the primary table (table_name)
+        for this object, and are not marked as a read-only Parameter.
+        """
+
+        if obj is None:
+            obj = self
+
+        db_fields = self.api.db.fields(self.table_name)
+        return dict(filter(lambda (key, value): \
+                           key in db_fields and \
+                           (key not in self.fields or \
+                            not isinstance(self.fields[key], Parameter) or \
+                            not self.fields[key].ro),
+                           obj.items()))
+
+    def __eq__(self, y):
+        """
+        Compare two objects.
+        """
+
+        # Filter out fields that cannot be set or updated directly
+        # (and thus would not affect equality for the purposes of
+        # deciding if we should sync() or not).
+        x = self.db_fields()
+        y = self.db_fields(y)
+        return dict.__eq__(x, y)
+
+    def sync(self, commit = True, insert = None):
+        """
+        Flush changes back to the database.
+        """
+
+        # Validate all specified fields
+        self.validate()
+
+        # Filter out fields that cannot be set or updated directly
+        db_fields = self.db_fields()
+
+        # Parameterize for safety
+        keys = db_fields.keys()
+        values = [self.api.db.param(key, value) for (key, value) in db_fields.items()]
+
+        # If the primary key (usually an auto-incrementing serial
+        # identifier) has not been specified, or the primary key is the
+        # only field in the table, or insert has been forced.
+        if not self.has_key(self.primary_key) or \
+           keys == [self.primary_key] or \
+           insert is True:
+            # Insert new row
+            sql = "INSERT INTO %s (%s) VALUES (%s)" % \
+                  (self.table_name, ", ".join(keys), ", ".join(values))
+        else:
+            # Update existing row
+            columns = ["%s = %s" % (key, value) for (key, value) in zip(keys, values)]
+            sql = "UPDATE %s SET " % self.table_name + \
+                  ", ".join(columns) + \
+                  " WHERE %s = %s" % \
+                  (self.primary_key,
+                   self.api.db.param(self.primary_key, self[self.primary_key]))
+
+        self.api.db.do(sql, db_fields)
+
+        if not self.has_key(self.primary_key):
+            self[self.primary_key] = self.api.db.last_insert_id(self.table_name, self.primary_key)
+
+        if commit:
+            self.api.db.commit()
+
+    def delete(self, commit = True):
+        """
+        Delete row from its primary table, and from any tables that
+        reference it.
+        """
+
+        assert self.primary_key in self
+
+        for table in self.join_tables + [self.table_name]:
+            if isinstance(table, tuple):
+                key = table[1]
+                table = table[0]
+            else:
+                key = self.primary_key
+
+            sql = "DELETE FROM %s WHERE %s = %s" % \
+                  (table, key,
+                   self.api.db.param(self.primary_key, self[self.primary_key]))
+
+            self.api.db.do(sql, self)
+
+        if commit:
+            self.api.db.commit()
+
+class Table(list):
+    """
+    Representation of row(s) in a database table.
+    """
+
+    def __init__(self, api, classobj, columns = None):
+        self.api = api
+        self.classobj = classobj
+        self.rows = {}
+
+        if columns is None:
+            columns = classobj.fields
+        else:
+            columns = filter(lambda x: x in classobj.fields, columns)
+            if not columns:
+                raise PLCInvalidArgument, "No valid return fields specified"
+
+        self.columns = columns
+
+    def sync(self, commit = True):
+        """
+        Flush changes back to the database.
+        """
+
+        for row in self:
+            row.sync(commit)
+
+    def selectall(self, sql, params = None):
+        """
+        Given a list of rows from the database, fill ourselves with
+        Row objects.
+        """
+
+        for row in self.api.db.selectall(sql, params):
+            obj = self.classobj(self.api, row)
+            self.append(obj)
+
+    def dict(self, key_field = None):
+        """
+        Return ourself as a dict keyed on key_field.
+        """
+
+        if key_field is None:
+            key_field = self.classobj.primary_key
+
+        return dict([(obj[key_field], obj) for obj in self])
diff --git a/trunk/PLC/Test.py b/trunk/PLC/Test.py
new file mode 100644 (file)
index 0000000..05796a6
--- /dev/null
@@ -0,0 +1,1460 @@
+#!/usr/bin/python
+#
+# Test script utility class
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from pprint import pprint
+from string import letters, digits, punctuation
+from traceback import print_exc
+from optparse import OptionParser
+import socket
+import base64
+import struct
+import os
+import xmlrpclib
+
+from PLC.Shell import Shell
+
+from random import Random
+random = Random()
+
+def randfloat(min = 0.0, max = 1.0):
+    return float(min) + (random.random() * (float(max) - float(min)))
+
+def randint(min = 0, max = 1):
+    return int(randfloat(min, max + 1))
+
+# See "2.2 Characters" in the XML specification:
+#
+# #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD]
+# avoiding
+# [#x7F-#x84], [#x86-#x9F], [#xFDD0-#xFDDF]
+#
+
+ascii_xml_chars = map(unichr, [0x9, 0xA])
+# xmlrpclib uses xml.parsers.expat, which always converts either '\r'
+# (#xD) or '\n' (#xA) to '\n'. So avoid using '\r', too, if this is
+# still the case.
+if xmlrpclib.loads(xmlrpclib.dumps(('\r',)))[0][0] == '\r':
+    ascii_xml_chars.append('\r')
+ascii_xml_chars += map(unichr, xrange(0x20, 0x7F - 1))
+low_xml_chars = list(ascii_xml_chars)
+low_xml_chars += map(unichr, xrange(0x84 + 1, 0x86 - 1))
+low_xml_chars += map(unichr, xrange(0x9F + 1, 0xFF))
+valid_xml_chars = list(low_xml_chars)
+valid_xml_chars += map(unichr, xrange(0xFF + 1, 0xD7FF))
+valid_xml_chars += map(unichr, xrange(0xE000, 0xFDD0 - 1))
+valid_xml_chars += map(unichr, xrange(0xFDDF + 1, 0xFFFD))
+
+def randstr(length, pool = valid_xml_chars, encoding = "utf-8"):
+    sample = random.sample(pool, min(length, len(pool)))
+    while True:
+        s = u''.join(sample)
+        bytes = len(s.encode(encoding))
+        if bytes > length:
+            sample.pop()
+        elif bytes < length:
+            sample += random.sample(pool, min(length - bytes, len(pool)))
+            random.shuffle(sample)
+        else:
+            break
+    return s
+
+def randhostname():
+    # 1. Each part begins and ends with a letter or number.
+    # 2. Each part except the last can contain letters, numbers, or hyphens.
+    # 3. Each part is between 1 and 64 characters, including the trailing dot.
+    # 4. At least two parts.
+    # 5. Last part can only contain between 2 and 6 letters.
+    hostname = 'a' + randstr(61, letters + digits + '-') + '1.' + \
+               'b' + randstr(61, letters + digits + '-') + '2.' + \
+               'c' + randstr(5, letters)
+    return hostname
+
+def randpath(length):
+    parts = []
+    for i in range(randint(1, 10)):
+        parts.append(randstr(randint(1, 30), ascii_xml_chars))
+    return u'/'.join(parts)[0:length]
+
+def randemail():
+    return (randstr(100, letters + digits) + "@" + randhostname()).lower()
+
+def randkey(bits = 2048):
+    ssh_key_types = ["ssh-dss", "ssh-rsa"]
+    key_type = random.sample(ssh_key_types, 1)[0]
+    return ' '.join([key_type,
+                     base64.b64encode(''.join(randstr(bits / 8).encode("utf-8"))),
+                     randemail()])
+
+def random_site():
+    return {
+        'name': randstr(254),
+        'abbreviated_name': randstr(50),
+        'login_base': randstr(20, letters).lower(),
+        'latitude': int(randfloat(-90.0, 90.0) * 1000) / 1000.0,
+        'longitude': int(randfloat(-180.0, 180.0) * 1000) / 1000.0,
+        }
+            
+def random_address_type():
+    return {
+        'name': randstr(20),
+        'description': randstr(254),
+        }
+
+def random_address():
+    return {
+        'line1': randstr(254),
+        'line2': randstr(254),
+        'line3': randstr(254),
+        'city': randstr(254),
+        'state': randstr(254),
+        'postalcode': randstr(64),
+        'country': randstr(128),
+        }
+
+def random_person():
+    return {
+        'first_name': randstr(128),
+        'last_name': randstr(128),
+        'email': randemail(),
+        'bio': randstr(254),
+        # Accounts are disabled by default
+        'enabled': False,
+        'password': randstr(254),
+        }
+
+def random_key(key_types):
+    return {
+        'key_type': random.sample(key_types, 1)[0],
+        'key': randkey()
+        }
+
+def random_nodegroup():
+    return {
+        'name': randstr(50),
+        'description': randstr(200),
+        }
+
+def random_node(boot_states):
+    return {
+        'hostname': randhostname(),
+        'boot_state': random.sample(boot_states, 1)[0],
+        'model': randstr(255),
+        'version': randstr(64),
+        }
+
+def random_nodenetwork(method, type):
+    nodenetwork_fields = {
+        'method': method,
+        'type': type,
+        'bwlimit': randint(500000, 10000000),
+        }
+
+    if method != 'dhcp':
+        ip = randint(0, 0xffffffff)
+        netmask = (0xffffffff << randint(2, 31)) & 0xffffffff
+        network = ip & netmask
+        broadcast = ((ip & netmask) | ~netmask) & 0xffffffff
+        gateway = randint(network + 1, broadcast - 1)
+        dns1 = randint(0, 0xffffffff)
+
+        for field in 'ip', 'netmask', 'network', 'broadcast', 'gateway', 'dns1':
+            nodenetwork_fields[field] = socket.inet_ntoa(struct.pack('>L', locals()[field]))
+
+    return nodenetwork_fields
+
+def random_pcu():
+    return {
+        'hostname': randhostname(),
+        'ip': socket.inet_ntoa(struct.pack('>L', randint(0, 0xffffffff))),
+        'protocol': randstr(16),
+        'username': randstr(254),
+        'password': randstr(254),
+        'notes': randstr(254),
+        'model': randstr(32),
+        }
+
+def random_conf_file():
+    return {
+        'enabled': bool(randint()),
+        'source': randpath(255),
+        'dest': randpath(255),
+        'file_permissions': "%#o" % randint(0, 512),
+        'file_owner': randstr(32, letters + '_' + digits),
+        'file_group': randstr(32, letters + '_' + digits),
+        'preinstall_cmd': randpath(100),
+        'postinstall_cmd': randpath(100),
+        'error_cmd': randpath(100),
+        'ignore_cmd_errors': bool(randint()),
+        'always_update': bool(randint()),
+        }
+
+def random_attribute_type(role_ids):
+    return {
+        'name': randstr(100),
+        'description': randstr(254),
+        'min_role_id': random.sample(role_ids, 1)[0],
+        }
+
+def random_slice(login_base):
+    return {
+        'name': login_base + "_" + randstr(11, letters).lower(),
+        'url': "http://" + randhostname() + "/",
+        'description': randstr(2048),
+        }
+
+class Test:
+    tiny = {
+        'sites': 1,
+        'address_types': 1,
+        'addresses_per_site': 1,
+        'persons_per_site': 1,
+        'keys_per_person': 1,
+        'nodegroups': 1,
+        'nodes_per_site': 1,
+        'nodenetworks_per_node': 1,
+        'pcus_per_site': 1,
+        'conf_files': 1,
+        'attribute_types': 1,
+        'slices_per_site': 1,
+        'attributes_per_slice': 1,
+        }
+
+    default = {
+        'sites': 10,
+        'address_types': 2,
+        'addresses_per_site': 2,
+        'persons_per_site': 10,
+        'keys_per_person': 2,
+        'nodegroups': 10,
+        'nodes_per_site': 2,
+        'nodenetworks_per_node': 1,
+        'pcus_per_site': 1,
+        'conf_files': 10,
+        'attribute_types': 10,
+        'slices_per_site': 10,
+        'attributes_per_slice': 2,
+        }
+
+    def __init__(self, api, check = True, verbose = True):
+        self.api = api
+        self.check = check
+        self.verbose = verbose
+        
+        self.site_ids = []
+        self.address_type_ids = []
+        self.address_ids = []
+        self.person_ids = []
+        self.key_ids = []
+        self.nodegroup_ids = []
+        self.node_ids = []
+        self.nodenetwork_ids = []
+        self.pcu_ids = []
+        self.conf_file_ids = []
+        self.attribute_type_ids = []
+        self.slice_ids = []
+        self.slice_attribute_ids = []
+
+    def Run(self, **kwds):
+        """
+        Run a complete database and API consistency test. Populates
+        the database with a set of random entities, updates them, then
+        deletes them. Examples:
+
+        test.Run() # Defaults
+        test.Run(**Test.default) # Defaults
+        test.Run(**Test.tiny) # Tiny set
+        test.Run(sites = 123, slices_per_site = 4) # Defaults with overrides
+        """
+
+        try:
+            self.Add(**kwds)
+            self.Update()
+        finally:
+            self.Delete()
+
+    def Add(self, **kwds):
+        """
+        Populate the database with a set of random entities. Examples:
+
+        test.populate() # Defaults
+        test.populate(Test.tiny) # Tiny set
+        test.populate(sites = 123, slices_per_site = 4) # Defaults with overrides
+        """
+
+        params = self.default.copy()
+        params.update(kwds)
+
+        self.AddSites(params['sites'])
+        self.AddAddressTypes(params['address_types'])
+        self.AddAddresses(params['addresses_per_site'])
+        self.AddPersons(params['persons_per_site'])
+        self.AddKeys(params['keys_per_person'])
+        self.AddNodeGroups(params['nodegroups'])
+        self.AddNodes(params['nodes_per_site'])
+        self.AddNodeNetworks(params['nodenetworks_per_node'])
+        self.AddPCUs(params['pcus_per_site'])
+        self.AddConfFiles(params['conf_files'])
+        self.AddSliceAttributeTypes(params['attribute_types'])
+        self.AddSlices(params['slices_per_site'])
+        self.AddSliceAttributes(params['attributes_per_slice'])
+
+    def Update(self):
+        self.UpdateSites()
+        self.UpdateAddressTypes()
+        self.UpdateAddresses()
+        self.UpdatePersons()
+        self.UpdateKeys()
+        self.UpdateNodeGroups()
+        self.UpdateNodes()
+        self.UpdateNodeNetworks()
+        self.UpdatePCUs()
+        self.UpdateConfFiles()
+        self.UpdateSliceAttributeTypes()
+        self.UpdateSlices()
+        self.UpdateSliceAttributes()
+
+    def Delete(self):
+        self.DeleteSliceAttributes()
+        self.DeleteSlices()
+        self.DeleteSliceAttributeTypes()
+        self.DeleteKeys()
+        self.DeleteConfFiles()
+        self.DeletePCUs()
+        self.DeleteNodeNetworks()
+        self.DeleteNodes()
+        self.DeletePersons()
+        self.DeleteNodeGroups()
+        self.DeleteAddresses()
+        self.DeleteAddressTypes()
+        self.DeleteSites()
+
+    def AddSites(self, n = 10):
+        """
+        Add a number of random sites.
+        """
+
+        for i in range(n):
+            # Add site
+            site_fields = random_site()
+            site_id = self.api.AddSite(site_fields)
+
+            # Should return a unique site_id
+            assert site_id not in self.site_ids
+            self.site_ids.append(site_id)
+
+            # Enable slice creation
+            site_fields['max_slices'] = randint(1, 10)
+            self.api.UpdateSite(site_id, site_fields)
+
+            if self.check:
+                # Check site
+                site = self.api.GetSites([site_id])[0]
+                for field in site_fields:
+                    assert site[field] == site_fields[field]
+
+            if self.verbose:
+                print "Added site", site_id
+
+    def UpdateSites(self):
+        """
+        Make random changes to any sites we may have added.
+        """
+
+        for site_id in self.site_ids:
+            # Update site
+            site_fields = random_site()
+            # Do not change login_base
+           if 'login_base' in site_fields:
+               del site_fields['login_base']
+            self.api.UpdateSite(site_id, site_fields)
+
+            if self.check:
+                # Check site
+                site = self.api.GetSites([site_id])[0]
+                for field in site_fields:
+                    assert site[field] == site_fields[field]
+
+            if self.verbose:
+                print "Updated site", site_id
+
+    def DeleteSites(self):
+        """
+        Delete any random sites we may have added.
+        """
+
+        for site_id in self.site_ids:
+            self.api.DeleteSite(site_id)
+
+            if self.check:
+                assert not self.api.GetSites([site_id])
+
+            if self.verbose:
+                print "Deleted site", site_id
+
+        if self.check:
+            assert not self.api.GetSites(self.site_ids)
+
+        self.site_ids = []
+
+    def AddAddressTypes(self, n = 2):
+        """
+        Add a number of random address types.
+        """
+
+        for i in range(n):
+            address_type_fields = random_address_type()
+            address_type_id = self.api.AddAddressType(address_type_fields)
+
+            # Should return a unique address_type_id
+            assert address_type_id not in self.address_type_ids
+            self.address_type_ids.append(address_type_id)
+
+            if self.check:
+                # Check address type
+                address_type = self.api.GetAddressTypes([address_type_id])[0]
+                for field in address_type_fields:
+                    assert address_type[field] == address_type_fields[field]
+
+            if self.verbose:
+                print "Added address type", address_type_id
+
+    def UpdateAddressTypes(self):
+        """
+        Make random changes to any address types we may have added.
+        """
+
+        for address_type_id in self.address_type_ids:
+            # Update address_type
+            address_type_fields = random_address_type()
+            self.api.UpdateAddressType(address_type_id, address_type_fields)
+
+            if self.check:
+                # Check address type
+                address_type = self.api.GetAddressTypes([address_type_id])[0]
+                for field in address_type_fields:
+                    assert address_type[field] == address_type_fields[field]
+
+            if self.verbose:
+                print "Updated address_type", address_type_id
+
+    def DeleteAddressTypes(self):
+        """
+        Delete any random address types we may have added.
+        """
+
+        for address_type_id in self.address_type_ids:
+            self.api.DeleteAddressType(address_type_id)
+
+            if self.check:
+                assert not self.api.GetAddressTypes([address_type_id])
+
+            if self.verbose:
+                print "Deleted address type", address_type_id
+
+        if self.check:
+            assert not self.api.GetAddressTypes(self.address_type_ids)
+
+        self.address_type_ids = []
+
+    def AddAddresses(self, per_site = 2):
+        """
+        Add a number of random addresses to each site.
+        """
+
+        for site_id in self.site_ids:
+            for i in range(per_site):
+                address_fields = random_address()
+                address_id = self.api.AddSiteAddress(site_id, address_fields)
+
+                # Should return a unique address_id
+                assert address_id not in self.address_ids
+                self.address_ids.append(address_id)
+
+                # Add random address type
+                if self.address_type_ids:
+                    for address_type_id in random.sample(self.address_type_ids, 1):
+                        self.api.AddAddressTypeToAddress(address_type_id, address_id)
+
+                if self.check:
+                    # Check address
+                    address = self.api.GetAddresses([address_id])[0]
+                    for field in address_fields:
+                        assert address[field] == address_fields[field]
+
+                if self.verbose:
+                    print "Added address", address_id, "to site", site_id
+
+    def UpdateAddresses(self):
+        """
+        Make random changes to any addresses we may have added.
+        """
+
+        for address_id in self.address_ids:
+            # Update address
+            address_fields = random_address()
+            self.api.UpdateAddress(address_id, address_fields)
+
+            if self.check:
+                # Check address
+                address = self.api.GetAddresses([address_id])[0]
+                for field in address_fields:
+                    assert address[field] == address_fields[field]
+
+            if self.verbose:
+                print "Updated address", address_id
+
+    def DeleteAddresses(self):
+        """
+        Delete any random addresses we may have added.
+        """
+
+        for address_id in self.address_ids:
+            # Remove address types
+            address = self.api.GetAddresses([address_id])[0]
+            for address_type_id in address['address_type_ids']:
+                self.api.DeleteAddressTypeFromAddress(address_type_id, address_id)
+
+            if self.check:
+                address = self.api.GetAddresses([address_id])[0]
+                assert not address['address_type_ids']
+
+            self.api.DeleteAddress(address_id)
+
+            if self.check:
+                assert not self.api.GetAddresses([address_id])
+
+            if self.verbose:
+                print "Deleted address", address_id
+
+        if self.check:
+            assert not self.api.GetAddresses(self.address_ids)
+
+        self.address_ids = []
+
+    def AddPersons(self, per_site = 10):
+        """
+        Add a number of random users to each site.
+        """
+
+        for site_id in self.site_ids:
+            for i in range(per_site):
+                # Add user
+                person_fields = random_person()
+                person_id = self.api.AddPerson(person_fields)
+
+                # Should return a unique person_id
+                assert person_id not in self.person_ids
+                self.person_ids.append(person_id)
+
+                if self.check:
+                    # Check user
+                    person = self.api.GetPersons([person_id])[0]
+                    for field in person_fields:
+                        if field != 'password':
+                            assert person[field] == person_fields[field]
+
+                auth = {'AuthMethod': "password",
+                        'Username': person_fields['email'],
+                        'AuthString': person_fields['password']}
+
+                if self.check:
+                    # Check that user is disabled
+                    try:
+                        assert not self.api.AuthCheck(auth)
+                    except:
+                        pass
+
+                # Add random set of roles
+                role_ids = random.sample([20, 30, 40], randint(1, 3))
+                for role_id in role_ids:
+                    self.api.AddRoleToPerson(role_id, person_id)
+
+                if self.check:
+                    person = self.api.GetPersons([person_id])[0]
+                    assert set(role_ids) == set(person['role_ids'])
+
+                # Enable user
+                self.api.UpdatePerson(person_id, {'enabled': True})
+
+                if self.check:
+                    # Check that user is enabled
+                    assert self.api.AuthCheck(auth)
+
+                # Associate user with site
+                self.api.AddPersonToSite(person_id, site_id)
+                self.api.SetPersonPrimarySite(person_id, site_id)
+
+                if self.check:
+                    person = self.api.GetPersons([person_id])[0]
+                    assert person['site_ids'][0] == site_id
+
+                if self.verbose:
+                    print "Added user", person_id, "to site", site_id
+
+    def UpdatePersons(self):
+        """
+        Make random changes to any users we may have added.
+        """
+
+        for person_id in self.person_ids:
+            # Update user
+            person_fields = random_person()
+            # Keep them enabled
+            person_fields['enabled'] = True
+            self.api.UpdatePerson(person_id, person_fields)
+
+            if self.check:
+                # Check user
+                person = self.api.GetPersons([person_id])[0]
+                for field in person_fields:
+                    if field != 'password':
+                        assert person[field] == person_fields[field]
+
+            if self.verbose:
+                print "Updated person", person_id
+
+            person = self.api.GetPersons([person_id])[0]
+
+            # Associate user with a random set of sites
+            site_ids = random.sample(self.site_ids, randint(0, len(self.site_ids)))
+            for site_id in (set(site_ids) - set(person['site_ids'])):
+                self.api.AddPersonToSite(person_id, site_id)
+            for site_id in (set(person['site_ids']) - set(site_ids)):
+                self.api.DeletePersonFromSite(person_id, site_id)
+
+            if site_ids:
+                self.api.SetPersonPrimarySite(person_id, site_ids[0])
+
+            if self.check:
+                person = self.api.GetPersons([person_id])[0]
+                assert set(site_ids) == set(person['site_ids'])
+
+            if self.verbose:
+                print "Updated person", person_id, "to sites", site_ids
+
+    def DeletePersons(self):
+        """
+        Delete any random users we may have added.
+        """
+
+        for person_id in self.person_ids:
+            # Remove from site
+            person = self.api.GetPersons([person_id])[0]
+            for site_id in person['site_ids']:
+                self.api.DeletePersonFromSite(person_id, site_id)
+
+            if self.check:
+                person = self.api.GetPersons([person_id])[0]
+                assert not person['site_ids']
+
+            # Revoke roles
+            for role_id in person['role_ids']:
+                self.api.DeleteRoleFromPerson(role_id, person_id)
+
+            if self.check:
+                person = self.api.GetPersons([person_id])[0]
+                assert not person['role_ids']
+
+            # Disable account
+            self.api.UpdatePerson(person_id, {'enabled': False})
+
+            if self.check:
+                person = self.api.GetPersons([person_id])[0]
+                assert not person['enabled']
+
+            # Delete account
+            self.api.DeletePerson(person_id)
+
+            if self.check:
+                assert not self.api.GetPersons([person_id])                         
+
+            if self.verbose:
+                print "Deleted user", person_id
+
+        if self.check:
+            assert not self.api.GetPersons(self.person_ids)
+
+        self.person_ids = []
+
+    def AddKeys(self, per_person = 2):
+        """
+        Add a number of random keys to each user.
+        """
+
+        key_types = self.api.GetKeyTypes()
+        if not key_types:
+            raise Exception, "No key types"
+
+        for person_id in self.person_ids:
+            for i in range(per_person):
+                # Add key
+                key_fields = random_key(key_types)
+                key_id = self.api.AddPersonKey(person_id, key_fields)
+
+                # Should return a unique key_id
+                assert key_id not in self.key_ids
+                self.key_ids.append(key_id)
+
+                if self.check:
+                    # Check key
+                    key = self.api.GetKeys([key_id])[0]
+                    for field in key_fields:
+                        assert key[field] == key_fields[field]
+
+                    # Add and immediately blacklist a key
+                    key_fields = random_key(key_types)
+                    key_id = self.api.AddPersonKey(person_id, key_fields)
+
+                    self.api.BlacklistKey(key_id)
+
+                    # Is effectively deleted
+                    assert not self.api.GetKeys([key_id])
+
+                    # Cannot be added again
+                    try:
+                        key_id = self.api.AddPersonKey(person_id, key_fields)
+                        assert False
+                    except Exception, e:
+                        pass
+
+                if self.verbose:
+                    print "Added key", key_id, "to user", person_id
+
+    def UpdateKeys(self):
+        """
+        Make random changes to any keys we may have added.
+        """
+
+        key_types = self.api.GetKeyTypes()
+        if not key_types:
+            raise Exception, "No key types"
+
+        for key_id in self.key_ids:
+            # Update key
+            key_fields = random_key(key_types)
+            self.api.UpdateKey(key_id, key_fields)
+
+            if self.check:
+                # Check key
+                key = self.api.GetKeys([key_id])[0]
+                for field in key_fields:
+                    assert key[field] == key_fields[field]
+
+            if self.verbose:
+                print "Updated key", key_id
+
+    def DeleteKeys(self):
+        """
+        Delete any random keys we may have added.
+        """
+
+        for key_id in self.key_ids:
+            self.api.DeleteKey(key_id)
+
+            if self.check:
+                assert not self.api.GetKeys([key_id])
+
+            if self.verbose:
+                print "Deleted key", key_id
+
+        if self.check:
+            assert not self.api.GetKeys(self.key_ids)
+
+        self.key_ids = []
+
+    def AddNodeGroups(self, n = 10):
+        """
+        Add a number of random node groups.
+        """
+
+        for i in range(n):
+            # Add node group
+            nodegroup_fields = random_nodegroup()
+            nodegroup_id = self.api.AddNodeGroup(nodegroup_fields)
+
+            # Should return a unique nodegroup_id
+            assert nodegroup_id not in self.nodegroup_ids
+            self.nodegroup_ids.append(nodegroup_id)
+
+            if self.check:
+                # Check node group
+                nodegroup = self.api.GetNodeGroups([nodegroup_id])[0]
+                for field in nodegroup_fields:
+                    assert nodegroup[field] == nodegroup_fields[field]
+
+            if self.verbose:
+                print "Added node group", nodegroup_id
+
+    def UpdateNodeGroups(self):
+        """
+        Make random changes to any node groups we may have added.
+        """
+
+        for nodegroup_id in self.nodegroup_ids:
+            # Update nodegroup
+            nodegroup_fields = random_nodegroup()
+            self.api.UpdateNodeGroup(nodegroup_id, nodegroup_fields)
+
+            if self.check:
+                # Check nodegroup
+                nodegroup = self.api.GetNodeGroups([nodegroup_id])[0]
+                for field in nodegroup_fields:
+                    assert nodegroup[field] == nodegroup_fields[field]
+
+            if self.verbose:
+                print "Updated node group", nodegroup_id
+
+    def DeleteNodeGroups(self):
+        """
+        Delete any random node groups we may have added.
+        """
+
+        for nodegroup_id in self.nodegroup_ids:
+            self.api.DeleteNodeGroup(nodegroup_id)
+
+            if self.check:
+                assert not self.api.GetNodeGroups([nodegroup_id])
+
+            if self.verbose:
+                print "Deleted node group", nodegroup_id
+
+        if self.check:
+            assert not self.api.GetNodeGroups(self.nodegroup_ids)
+
+        self.nodegroup_ids = []
+
+    def AddNodes(self, per_site = 2):
+        """
+        Add a number of random nodes to each site. Each node will also
+        be added to a random node group if AddNodeGroups() was
+        previously run.
+        """
+        
+        boot_states = self.api.GetBootStates()
+        if not boot_states:
+            raise Exception, "No boot states"
+
+        for site_id in self.site_ids:
+            for i in range(per_site):
+                # Add node
+                node_fields = random_node(boot_states)
+                node_id = self.api.AddNode(site_id, node_fields)
+
+                # Should return a unique node_id
+                assert node_id not in self.node_ids
+                self.node_ids.append(node_id)
+
+                # Add to a random set of node groups
+                nodegroup_ids = random.sample(self.nodegroup_ids, randint(0, len(self.nodegroup_ids)))
+                for nodegroup_id in nodegroup_ids:
+                    self.api.AddNodeToNodeGroup(node_id, nodegroup_id)
+
+                if self.check:
+                    # Check node
+                    node = self.api.GetNodes([node_id])[0]
+                    for field in node_fields:
+                        assert node[field] == node_fields[field]
+
+                if self.verbose:
+                    print "Added node", node_id
+
+    def UpdateNodes(self):
+        """
+        Make random changes to any nodes we may have added.
+        """
+
+        boot_states = self.api.GetBootStates()
+        if not boot_states:
+            raise Exception, "No boot states"
+
+        for node_id in self.node_ids:
+            # Update node
+            node_fields = random_node(boot_states)
+            self.api.UpdateNode(node_id, node_fields)
+
+            node = self.api.GetNodes([node_id])[0]
+
+            # Add to a random set of node groups
+            nodegroup_ids = random.sample(self.nodegroup_ids, randint(0, len(self.nodegroup_ids)))
+            for nodegroup_id in (set(nodegroup_ids) - set(node['nodegroup_ids'])):
+                self.api.AddNodeToNodeGroup(node_id, nodegroup_id)
+            for nodegroup_id in (set(node['nodegroup_ids']) - set(nodegroup_ids)):
+                self.api.DeleteNodeFromNodeGroup(node_id, nodegroup_id)
+
+            if self.check:
+                # Check node
+                node = self.api.GetNodes([node_id])[0]
+                for field in node_fields:
+                    assert node[field] == node_fields[field]
+                assert set(nodegroup_ids) == set(node['nodegroup_ids'])
+
+            if self.verbose:
+                print "Updated node", node_id
+                print "Added node", node_id, "to node groups", nodegroup_ids
+
+    def DeleteNodes(self):
+        """
+        Delete any random nodes we may have added.
+        """
+
+        for node_id in self.node_ids:
+            # Remove from node groups
+            node = self.api.GetNodes([node_id])[0]
+            for nodegroup_id in node['nodegroup_ids']:
+                self.api.DeleteNodeFromNodeGroup(node_id, nodegroup_id)
+
+            if self.check:
+                node = self.api.GetNodes([node_id])[0]
+                assert not node['nodegroup_ids']
+
+            self.api.DeleteNode(node_id)
+
+            if self.check:
+                assert not self.api.GetNodes([node_id])
+
+            if self.verbose:
+                print "Deleted node", node_id
+
+        if self.check:
+            assert not self.api.GetNodes(self.node_ids)
+
+        self.node_ids = []
+
+    def AddNodeNetworks(self, per_node = 1):
+        """
+        Add a number of random network interfaces to each node.
+        """
+
+        network_methods = self.api.GetNetworkMethods()
+        if not network_methods:
+            raise Exception, "No network methods"
+        
+        network_types = self.api.GetNetworkTypes()
+        if not network_types:
+            raise Exception, "No network types"
+
+        for node_id in self.node_ids:
+            for i in range(per_node):
+                method = random.sample(network_methods, 1)[0]
+                type = random.sample(network_types, 1)[0]
+
+                # Add node network
+                nodenetwork_fields = random_nodenetwork(method, type)
+                nodenetwork_id = self.api.AddNodeNetwork(node_id, nodenetwork_fields)
+
+                # Should return a unique nodenetwork_id
+                assert nodenetwork_id not in self.nodenetwork_ids
+                self.nodenetwork_ids.append(nodenetwork_id)
+
+                if self.check:
+                    # Check node network
+                    nodenetwork = self.api.GetNodeNetworks([nodenetwork_id])[0]
+                    for field in nodenetwork_fields:
+                        assert nodenetwork[field] == nodenetwork_fields[field]
+
+                if self.verbose:
+                    print "Added node network", nodenetwork_id, "to node", node_id
+
+    def UpdateNodeNetworks(self):
+        """
+        Make random changes to any network interfaces we may have added.
+        """
+
+        network_methods = self.api.GetNetworkMethods()
+        if not network_methods:
+            raise Exception, "No network methods"
+        
+        network_types = self.api.GetNetworkTypes()
+        if not network_types:
+            raise Exception, "No network types"
+
+        for nodenetwork_id in self.nodenetwork_ids:
+            method = random.sample(network_methods, 1)[0]
+            type = random.sample(network_types, 1)[0]
+
+            # Update nodenetwork
+            nodenetwork_fields = random_nodenetwork(method, type)
+            self.api.UpdateNodeNetwork(nodenetwork_id, nodenetwork_fields)
+
+            if self.check:
+                # Check nodenetwork
+                nodenetwork = self.api.GetNodeNetworks([nodenetwork_id])[0]
+                for field in nodenetwork_fields:
+                    assert nodenetwork[field] == nodenetwork_fields[field]
+
+            if self.verbose:
+                print "Updated node network", nodenetwork_id
+
+    def DeleteNodeNetworks(self):
+        """
+        Delete any random network interfaces we may have added.
+        """
+
+        for nodenetwork_id in self.nodenetwork_ids:
+            self.api.DeleteNodeNetwork(nodenetwork_id)
+
+            if self.check:
+                assert not self.api.GetNodeNetworks([nodenetwork_id])
+
+            if self.verbose:
+                print "Deleted node network", nodenetwork_id
+
+        if self.check:
+            assert not self.api.GetNodeNetworks(self.nodenetwork_ids)
+
+        self.nodenetwork_ids = []
+
+    def AddPCUs(self, per_site = 1):
+        """
+        Add a number of random PCUs to each site. Each node at the
+        site will be added to a port on the PCU if AddNodes() was
+        previously run.
+        """
+
+        for site_id in self.site_ids:
+            for i in range(per_site):
+                # Add PCU
+                pcu_fields = random_pcu()
+                pcu_id = self.api.AddPCU(site_id, pcu_fields)
+
+                # Should return a unique pcu_id
+                assert pcu_id not in self.pcu_ids
+                self.pcu_ids.append(pcu_id)
+
+                # Add each node at this site to a different port on this PCU
+                site = self.api.GetSites([site_id])[0]
+                port = randint(1, 10)
+                for node_id in site['node_ids']:
+                    self.api.AddNodeToPCU(node_id, pcu_id, port)
+                    port += 1
+
+                if self.check:
+                    # Check PCU
+                    pcu = self.api.GetPCUs([pcu_id])[0]
+                    for field in pcu_fields:
+                        assert pcu[field] == pcu_fields[field]
+
+                if self.verbose:
+                    print "Added PCU", pcu_id, "to site", site_id
+
+    def UpdatePCUs(self):
+        """
+        Make random changes to any PCUs we may have added.
+        """
+
+        for pcu_id in self.pcu_ids:
+            # Update PCU
+            pcu_fields = random_pcu()
+            self.api.UpdatePCU(pcu_id, pcu_fields)
+
+            if self.check:
+                # Check PCU
+                pcu = self.api.GetPCUs([pcu_id])[0]
+                for field in pcu_fields:
+                    assert pcu[field] == pcu_fields[field]
+
+            if self.verbose:
+                print "Updated PCU", pcu_id
+
+    def DeletePCUs(self):
+        """
+        Delete any random nodes we may have added.
+        """
+
+        for pcu_id in self.pcu_ids:
+            # Remove nodes from PCU
+            pcu = self.api.GetPCUs([pcu_id])[0]
+            for node_id in pcu['node_ids']:
+                self.api.DeleteNodeFromPCU(node_id, pcu_id)
+
+            if self.check:
+                pcu = self.api.GetPCUs([pcu_id])[0]
+                assert not pcu['node_ids']
+
+            self.api.DeletePCU(pcu_id)
+
+            if self.check:
+                assert not self.api.GetPCUs([pcu_id])
+
+            if self.verbose:
+                print "Deleted PCU", pcu_id
+
+        if self.check:
+            assert not self.api.GetPCUs(self.pcu_ids)
+
+        self.pcu_ids = []
+
+    def AddConfFiles(self, n = 10):
+        """
+        Add a number of random global configuration files.
+        """
+
+        conf_files = []
+
+        for i in range(n):
+            # Add a random configuration file
+            conf_files.append(random_conf_file())
+
+        if n:
+            # Add a nodegroup override file
+            nodegroup_conf_file = conf_files[0].copy()
+            nodegroup_conf_file['source'] = randpath(255)
+            conf_files.append(nodegroup_conf_file)
+
+            # Add a node override file
+            node_conf_file = conf_files[0].copy()
+            node_conf_file['source'] = randpath(255)
+            conf_files.append(node_conf_file)
+
+        for conf_file_fields in conf_files:
+            conf_file_id = self.api.AddConfFile(conf_file_fields)
+
+            # Should return a unique conf_file_id
+            assert conf_file_id not in self.conf_file_ids
+            self.conf_file_ids.append(conf_file_id)
+
+            # Add to nodegroup
+            if conf_file_fields == nodegroup_conf_file and self.nodegroup_ids:
+                nodegroup_id = random.sample(self.nodegroup_ids, 1)[0]
+                self.api.AddConfFileToNodeGroup(conf_file_id, nodegroup_id)
+            else:
+                nodegroup_id = None
+
+            # Add to node
+            if conf_file_fields == node_conf_file and self.node_ids:
+                node_id = random.sample(self.node_ids, 1)[0]
+                self.api.AddConfFileToNode(conf_file_id, node_id)
+            else:
+                node_id = None
+
+            if self.check:
+                # Check configuration file
+                conf_file = self.api.GetConfFiles([conf_file_id])[0]
+                for field in conf_file_fields:
+                    assert conf_file[field] == conf_file_fields[field]
+
+            if self.verbose:
+                print "Added configuration file", conf_file_id,
+                if nodegroup_id is not None:
+                    print "to node group", nodegroup_id,
+                elif node_id is not None:
+                    print "to node", node_id,
+                print
+
+    def UpdateConfFiles(self):
+        """
+        Make random changes to any configuration files we may have added.
+        """
+
+        for conf_file_id in self.conf_file_ids:
+            # Update configuration file
+            conf_file_fields = random_conf_file()
+            # Do not update dest so that it remains an override if set
+           if 'dest' in conf_file_fields:
+               del conf_file_fields['dest']
+            self.api.UpdateConfFile(conf_file_id, conf_file_fields)
+
+            if self.check:
+                # Check configuration file
+                conf_file = self.api.GetConfFiles([conf_file_id])[0]
+                for field in conf_file_fields:
+                    assert conf_file[field] == conf_file_fields[field]
+
+            if self.verbose:
+                print "Updated configuration file", conf_file_id
+
+    def DeleteConfFiles(self):
+        """
+        Delete any random configuration files we may have added.
+        """
+
+        for conf_file_id in self.conf_file_ids:
+            self.api.DeleteConfFile(conf_file_id)
+
+            if self.check:
+                assert not self.api.GetConfFiles([conf_file_id])
+
+            if self.verbose:
+                print "Deleted configuration file", conf_file_id
+
+        if self.check:
+            assert not self.api.GetConfFiles(self.conf_file_ids)
+
+        self.conf_file_ids = []
+
+    def AddSliceAttributeTypes(self, n = 10):
+        """
+        Add a number of random slice attribute types.
+        """
+
+        roles = self.api.GetRoles()
+        if not roles:
+            raise Exception, "No roles"
+        role_ids = [role['role_id'] for role in roles]
+
+        for i in range(n):
+            attribute_type_fields = random_attribute_type(role_ids)
+            attribute_type_id = self.api.AddSliceAttributeType(attribute_type_fields)
+
+            # Should return a unique attribute_type_id
+            assert attribute_type_id not in self.attribute_type_ids
+            self.attribute_type_ids.append(attribute_type_id)
+
+            if self.check:
+                # Check slice attribute type
+                attribute_type = self.api.GetSliceAttributeTypes([attribute_type_id])[0]
+                for field in attribute_type_fields:
+                    assert attribute_type[field] == attribute_type_fields[field]
+
+            if self.verbose:
+                print "Added slice attribute type", attribute_type_id
+
+    def UpdateSliceAttributeTypes(self):
+        """
+        Make random changes to any slice attribute types we may have added.
+        """
+
+        roles = self.api.GetRoles()
+        if not roles:
+            raise Exception, "No roles"
+        role_ids = [role['role_id'] for role in roles]
+
+        for attribute_type_id in self.attribute_type_ids:
+            # Update slice attribute type
+            attribute_type_fields = random_attribute_type(role_ids)
+            self.api.UpdateSliceAttributeType(attribute_type_id, attribute_type_fields)
+
+            if self.check:
+                # Check slice attribute type
+                attribute_type = self.api.GetSliceAttributeTypes([attribute_type_id])[0]
+                for field in attribute_type_fields:
+                    assert attribute_type[field] == attribute_type_fields[field]
+
+            if self.verbose:
+                print "Updated slice attribute type", attribute_type_id
+
+    def DeleteSliceAttributeTypes(self):
+        """
+        Delete any random slice attribute types we may have added.
+        """
+
+        for attribute_type_id in self.attribute_type_ids:
+            self.api.DeleteSliceAttributeType(attribute_type_id)
+
+            if self.check:
+                assert not self.api.GetSliceAttributeTypes([attribute_type_id])
+
+            if self.verbose:
+                print "Deleted slice attribute type", attribute_type_id
+
+        if self.check:
+            assert not self.api.GetSliceAttributeTypes(self.attribute_type_ids)
+
+        self.attribute_type_ids = []
+
+    def AddSlices(self, per_site = 10):
+        """
+        Add a number of random slices per site.
+        """
+
+        for site in self.api.GetSites(self.site_ids):
+            for i in range(min(per_site, site['max_slices'])):
+                # Add slice
+                slice_fields = random_slice(site['login_base'])
+                slice_id = self.api.AddSlice(slice_fields)
+
+                # Should return a unique slice_id
+                assert slice_id not in self.slice_ids
+                self.slice_ids.append(slice_id)
+
+                # Add slice to a random set of nodes
+                node_ids = random.sample(self.node_ids, randint(0, len(self.node_ids)))
+                if node_ids:
+                    self.api.AddSliceToNodes(slice_id, node_ids)
+
+                # Add random set of site users to slice
+                person_ids = random.sample(site['person_ids'], randint(0, len(site['person_ids'])))
+                for person_id in person_ids:
+                    self.api.AddPersonToSlice(person_id, slice_id)
+
+                if self.check:
+                    # Check slice
+                    slice = self.api.GetSlices([slice_id])[0]
+                    for field in slice_fields:
+                        assert slice[field] == slice_fields[field]
+
+                    assert set(node_ids) == set(slice['node_ids'])
+                    assert set(person_ids) == set(slice['person_ids'])
+
+                if self.verbose:
+                    print "Added slice", slice_id, "to site", site['site_id'],
+                    if node_ids:
+                        print "and nodes", node_ids,
+                    print
+                    if person_ids:
+                        print "Added users", site['person_ids'], "to slice", slice_id
+
+    def UpdateSlices(self):
+        """
+        Make random changes to any slices we may have added.
+        """
+
+        for slice_id in self.slice_ids:
+            # Update slice
+            slice_fields = random_slice("unused")
+            # Cannot change slice name
+           if 'name' in slice_fields:
+               del slice_fields['name']
+            self.api.UpdateSlice(slice_id, slice_fields)
+
+            slice = self.api.GetSlices([slice_id])[0]
+
+            # Add slice to a random set of nodes
+            node_ids = random.sample(self.node_ids, randint(0, len(self.node_ids)))
+            self.api.AddSliceToNodes(slice_id, list(set(node_ids) - set(slice['node_ids'])))
+            self.api.DeleteSliceFromNodes(slice_id, list(set(slice['node_ids']) - set(node_ids)))
+
+            # Add random set of users to slice
+            person_ids = random.sample(self.person_ids, randint(0, len(self.person_ids)))
+            for person_id in (set(person_ids) - set(slice['person_ids'])):
+                self.api.AddPersonToSlice(person_id, slice_id)
+            for person_id in (set(slice['person_ids']) - set(person_ids)):
+                self.api.DeletePersonFromSlice(person_id, slice_id)
+
+            if self.check:
+                slice = self.api.GetSlices([slice_id])[0]
+                for field in slice_fields:
+                    assert slice[field] == slice_fields[field]
+                assert set(node_ids) == set(slice['node_ids'])
+                assert set(person_ids) == set(slice['person_ids'])
+
+            if self.verbose:
+                print "Updated slice", slice_id
+                print "Added nodes", node_ids, "to slice", slice_id
+                print "Added persons", person_ids, "to slice", slice_id
+
+    def DeleteSlices(self):
+        """
+        Delete any random slices we may have added.
+        """
+
+        for slice_id in self.slice_ids:
+            self.api.DeleteSlice(slice_id)
+
+            if self.check:
+                assert not self.api.GetSlices([slice_id])
+
+            if self.verbose:
+                print "Deleted slice", slice_id
+
+        if self.check:
+            assert not self.api.GetSlices(self.slice_ids)
+
+        self.slice_ids = []
+
+    def AddSliceAttributes(self, per_slice = 2):
+        """
+        Add a number of random slices per site.
+        """
+
+        if not self.attribute_type_ids:
+            return
+
+        for slice_id in self.slice_ids:
+            slice = self.api.GetSlices([slice_id])[0]
+
+            for i in range(per_slice):
+                # Set a random slice/sliver attribute
+                for attribute_type_id in random.sample(self.attribute_type_ids, 1):
+                    value = randstr(16, letters + '_' + digits)
+                    # Make it a sliver attribute with 50% probability
+                    if slice['node_ids']:
+                        node_id = random.sample(slice['node_ids'] + [None] * len(slice['node_ids']), 1)[0]
+                    else:
+                        node_id = None
+
+                    # Add slice attribute
+                    if node_id is None:
+                        slice_attribute_id = self.api.AddSliceAttribute(slice_id, attribute_type_id, value)
+                    else:
+                        slice_attribute_id = self.api.AddSliceAttribute(slice_id, attribute_type_id, value, node_id)
+
+                    # Should return a unique slice_attribute_id
+                    assert slice_attribute_id not in self.slice_attribute_ids
+                    self.slice_attribute_ids.append(slice_attribute_id)
+
+                    if self.check:
+                        # Check slice attribute
+                        slice_attribute = self.api.GetSliceAttributes([slice_attribute_id])[0]
+                        for field in 'attribute_type_id', 'slice_id', 'node_id', 'slice_attribute_id', 'value':
+                            assert slice_attribute[field] == locals()[field]
+
+                    if self.verbose:
+                        print "Added slice attribute", slice_attribute_id, "of type", attribute_type_id,
+                        if node_id is not None:
+                            print "to node", node_id,
+                        print
+                        
+    def UpdateSliceAttributes(self):
+        """
+        Make random changes to any slice attributes we may have added.
+        """
+
+        for slice_attribute_id in self.slice_attribute_ids:
+            # Update slice attribute
+            value = randstr(16, letters + '_' + digits)
+            self.api.UpdateSliceAttribute(slice_attribute_id, value)
+
+            # Check slice attribute again
+            slice_attribute = self.api.GetSliceAttributes([slice_attribute_id])[0]
+            assert slice_attribute['value'] == value
+
+            if self.verbose:
+                print "Updated slice attribute", slice_attribute_id
+
+    def DeleteSliceAttributes(self):
+        """
+        Delete any random slice attributes we may have added.
+        """
+
+        for slice_attribute_id in self.slice_attribute_ids:
+            self.api.DeleteSliceAttribute(slice_attribute_id)
+
+            if self.check:
+                assert not self.api.GetSliceAttributes([slice_attribute_id])
+
+            if self.verbose:
+                print "Deleted slice attribute", slice_attribute_id
+
+        if self.check:
+            assert not self.api.GetSliceAttributes(self.slice_attribute_ids)
+
+        self.slice_attribute_ids = []
+
+def main():
+    parser = OptionParser()
+    parser.add_option("-c", "--check", action = "store_true", default = False, help = "Check most actions (default: %default)")
+    parser.add_option("-q", "--quiet", action = "store_true", default = False, help = "Be quiet (default: %default)")
+    parser.add_option("-t", "--tiny", action = "store_true", default = False, help = "Run a tiny test (default: %default)")
+    (options, args) = parser.parse_args()
+
+    test = Test(api = Shell(),
+                check = options.check,
+                verbose = not options.quiet)
+
+    if options.tiny:
+        params = Test.tiny
+    else:
+        params = Test.default
+
+    test.Run(**params)
+
+if __name__ == "__main__":
+    main()
diff --git a/trunk/PLC/__init__.py b/trunk/PLC/__init__.py
new file mode 100644 (file)
index 0000000..d5ddda8
--- /dev/null
@@ -0,0 +1,48 @@
+all = """
+Addresses
+AddressTypes
+API
+Auth
+Boot
+BootStates
+ConfFiles
+Config
+Debug
+EventObjects
+Events
+Faults
+Filter
+GPG
+InitScripts
+Keys
+KeyTypes
+Messages
+Method
+NetworkMethods
+NetworkTypes
+NodeGroups
+NodeNetworkSettings
+NodeNetworkSettingTypes
+NodeNetworks
+Nodes
+Parameter
+PCUProtocolTypes
+PCUs
+PCUTypes
+Peers
+Persons
+POD
+PostgreSQL
+PyCurl
+Roles
+sendmail
+Sessions
+Shell
+Sites
+SliceAttributes
+SliceAttributeTypes
+SliceInstantiations
+Slices
+Table
+Test
+""".split()
diff --git a/trunk/PLC/sendmail.py b/trunk/PLC/sendmail.py
new file mode 100644 (file)
index 0000000..cab0ae6
--- /dev/null
@@ -0,0 +1,98 @@
+import os
+import sys
+import pprint
+from types import StringTypes
+from email.MIMEText import MIMEText
+from email.Header import Header
+from smtplib import SMTP
+
+from PLC.Debug import log
+from PLC.Faults import *
+
+def sendmail(api, To, Subject, Body, From = None, Cc = None, Bcc = None):
+    """
+    Uses sendmail (must be installed and running locally) to send a
+    message to the specified recipients. If the API is running under
+    mod_python, the apache user must be listed in e.g.,
+    /etc/mail/trusted-users.
+
+    To, Cc, and Bcc may be addresses or lists of addresses. Each
+    address may be either a plain text address or a tuple of (name,
+    address).
+    """
+
+    # Fix up defaults
+    if not isinstance(To, list):
+        To = [To]
+    if Cc is not None and not isinstance(Cc, list):
+        Cc = [Cc]
+    if Bcc is not None and not isinstance(Bcc, list):
+        Bcc = [Bcc]
+    if From is None:
+        From = ("%s Support" % api.config.PLC_NAME,
+                api.config.PLC_MAIL_SUPPORT_ADDRESS)
+
+    # Create a MIME-encoded UTF-8 message
+    msg = MIMEText(Body.encode(api.encoding), _charset = api.encoding)
+
+    # Unicode subject headers are automatically encoded correctly
+    msg['Subject'] = Subject
+
+    def encode_addresses(addresses, header_name = None):
+        """
+        Unicode address headers are automatically encoded by
+        email.Header, but not correctly. The correct way is to put the
+        textual name inside quotes and the address inside brackets:
+
+        To: "=?utf-8?b?encoded" <recipient@domain>
+
+        Each address in addrs may be a tuple of (name, address) or
+        just an address. Returns a tuple of (header, addrlist)
+        representing the encoded header text and the list of plain
+        text addresses.
+        """
+
+        header = []
+        addrs = []
+
+        for addr in addresses:
+            if isinstance(addr, tuple):
+                (name, addr) = addr
+                try:
+                    name = name.encode('ascii')
+                    header.append('%s <%s>' % (name, addr))
+                except:
+                    h = Header(name, charset = api.encoding, header_name = header_name)
+                    header.append('"%s" <%s>' % (h.encode(), addr))
+            else:
+                header.append(addr)
+            addrs.append(addr)
+
+        return (", ".join(header), addrs)
+
+    (msg['From'], from_addrs) = encode_addresses([From], 'From')
+    (msg['To'], to_addrs) = encode_addresses(To, 'To')
+
+    if Cc is not None:
+        (msg['Cc'], cc_addrs) = encode_addresses(Cc, 'Cc')
+        to_addrs += cc_addrs
+
+    if Bcc is not None:
+        (unused, bcc_addrs) = encode_addresses(Bcc, 'Bcc')
+        to_addrs += bcc_addrs
+
+    # Needed to pass some spam filters
+    msg['Reply-To'] = msg['From']
+    msg['X-Mailer'] = "Python/" + sys.version.split(" ")[0]
+
+    if not api.config.PLC_MAIL_ENABLED:
+        print >> log, "From: %(From)s, To: %(To)s, Subject: %(Subject)s" % msg
+        return
+
+    s = SMTP()
+    s.connect()
+    rejected = s.sendmail(from_addrs[0], to_addrs, msg.as_string(), rcpt_options = ["NOTIFY=NEVER"])
+    s.close()
+
+    if rejected:
+        raise PLCAPIError, "Error sending message to " + ", ".join(rejected.keys())
diff --git a/trunk/PLCAPI.spec b/trunk/PLCAPI.spec
new file mode 100644 (file)
index 0000000..02ab40b
--- /dev/null
@@ -0,0 +1,102 @@
+#
+# $Id$
+#
+
+%define url $URL$
+
+%define name PLCAPI
+%define version 4.2
+%define subversion 0
+
+%define release %{subversion}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
+
+Summary: PlanetLab Central API
+Name: %{name}
+Version: %{version}
+Release: %{release}
+License: PlanetLab
+Group: System Environment/Daemons
+Source0: %{name}-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+URL: %(echo %{url} | cut -d ' ' -f 2)
+
+Obsoletes: plcapilib
+
+# We use set everywhere
+Requires: python >= 2.4
+
+# We use psycopg2
+BuildRequires: postgresql-devel
+
+# Standard xmlrpc.so that ships with PHP does not marshal NULL
+BuildRequires: php-devel
+Obsoletes: php-xmlrpc
+Provides: php-xmlrpc
+
+# OpenJade does not honor XML catalog files and tries to access
+# www.oasis-open.org even if DTDs are locally installed. Disable
+# documentation generation for now.
+# BuildRequires: docbook-dtds, docbook-utils-pdf
+
+# PostgreSQL and SOAPpy are necessary to run the API server, but not
+# plcsh. Since the only supported method of running the server is via
+# MyPLC anyway, don't be so stringent about binary requirements, in
+# case people want to install this package just for plcsh.
+# Requires: postgresql-server, SOAPpy
+AutoReqProv: no
+
+%description
+The PLCAPI package provides an XML-RPC and SOAP API for accessing the
+PlanetLab Central (PLC) database. The API may be accessed directly via
+the Python shell program plcsh, through a toy standalone server, or
+through Apache mod_python.
+
+%prep
+%setup -q
+
+%build
+# Build __init__.py metafiles and PHP API. 
+%{__make} %{?_smp_mflags} subdirs="php php/xmlrpc"
+# Build documentation
+# beware that making the pdf file somehow overwrites the html
+%{__make} -C doc PLCAPI.pdf
+rm -f doc/PLCAPI.html
+%{__make} -C doc PLCAPI.html
+
+%install
+rm -rf $RPM_BUILD_ROOT
+%{__make} %{?_smp_mflags} install DESTDIR="$RPM_BUILD_ROOT" datadir="%{_datadir}" bindir="%{_bindir}"
+#someone out there skips doc installation - we DO want this installed
+for doc in PLCAPI.html PLCAPI.pdf ; do
+    install -D -m 644 doc/$doc $RPM_BUILD_ROOT/"%{_datadir}"/plc_api/doc/$doc
+done
+
+# Install shell symlink
+mkdir -p $RPM_BUILD_ROOT/%{_bindir}
+ln -s %{_datadir}/plc_api/plcsh $RPM_BUILD_ROOT/%{_bindir}/plcsh
+
+mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/php.d
+cat > $RPM_BUILD_ROOT/%{_sysconfdir}/php.d/xmlrpc.ini <<EOF
+; Enable xmlrpc extension module
+extension=xmlrpc.so
+EOF
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%define php_extension_dir %(php-config --extension-dir)
+
+%files
+%defattr(-,root,root,-)
+#someone out there skips doc installation - we DO want this installed
+#%doc doc/PLCAPI.xml doc/PLCAPI.pdf doc/PLCAPI.html
+%dir %{_datadir}/plc_api
+%{_datadir}/plc_api/*
+%{_bindir}/plcsh
+%{php_extension_dir}/xmlrpc.so
+%{_sysconfdir}/php.d/xmlrpc.ini
+%{_bindir}/refresh-peer.py*
+
+%changelog
+* Fri Oct 27 2006 Mark Huang <mlhuang@CS.Princeton.EDU> - 
+- Initial build.
diff --git a/trunk/Server.py b/trunk/Server.py
new file mode 100755 (executable)
index 0000000..40a68ab
--- /dev/null
@@ -0,0 +1,105 @@
+#!/usr/bin/python
+#
+# Simple standalone HTTP server for testing PLCAPI
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+import os
+import sys
+import getopt
+import traceback
+import BaseHTTPServer
+
+# Append PLC to the system path
+sys.path.append(os.path.dirname(os.path.realpath(sys.argv[0])))
+
+from PLC.API import PLCAPI
+
+class PLCAPIRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
+    """
+    Simple standalone HTTP request handler for testing PLCAPI.
+    """
+
+    def do_POST(self):
+        try:
+            # Read request
+            request = self.rfile.read(int(self.headers["Content-length"]))
+
+            # Handle request
+            response = self.server.api.handle(self.client_address, request)
+
+            # Write response
+            self.send_response(200)
+            self.send_header("Content-type", "text/xml")
+            self.send_header("Content-length", str(len(response)))
+            self.end_headers()
+            self.wfile.write(response)
+
+            self.wfile.flush()
+            self.connection.shutdown(1)
+
+        except Exception, e:
+            # Log error
+            sys.stderr.write(traceback.format_exc())
+            sys.stderr.flush()
+
+    def do_GET(self):
+        self.send_response(200)
+        self.send_header("Content-type", 'text/html')
+        self.end_headers()
+        self.wfile.write("""
+<html><head>
+<title>PLCAPI XML-RPC/SOAP Interface</title>
+</head><body>
+<h1>PLCAPI XML-RPC/SOAP Interface</h1>
+<p>Please use XML-RPC or SOAP to access the PLCAPI.</p>
+</body></html>
+""")        
+        
+class PLCAPIServer(BaseHTTPServer.HTTPServer):
+    """
+    Simple standalone HTTP server for testing PLCAPI.
+    """
+
+    def __init__(self, addr, config):
+        self.api = PLCAPI(config)
+        self.allow_reuse_address = 1
+        BaseHTTPServer.HTTPServer.__init__(self, addr, PLCAPIRequestHandler)
+
+# Defaults
+addr = "0.0.0.0"
+port = 8000
+config = "/etc/planetlab/plc_config"
+
+def usage():
+    print "Usage: %s [OPTION]..." % sys.argv[0]
+    print "Options:"
+    print "     -p PORT, --port=PORT    TCP port number to listen on (default: %d)" % port
+    print "     -f FILE, --config=FILE  PLC configuration file (default: %s)" % config
+    print "     -h, --help              This message"
+    sys.exit(1)
+
+# Get options
+try:
+    (opts, argv) = getopt.getopt(sys.argv[1:], "p:f:h", ["port=", "config=", "help"])
+except getopt.GetoptError, err:
+    print "Error: " + err.msg
+    usage()
+
+for (opt, optval) in opts:
+    if opt == "-p" or opt == "--port":
+        try:
+            port = int(optval)
+        except ValueError:
+            usage()
+    elif opt == "-f" or opt == "--config":
+        config = optval
+    elif opt == "-h" or opt == "--help":
+        usage()
+
+# Start server
+PLCAPIServer((addr, port), config).serve_forever()
diff --git a/trunk/TODO b/trunk/TODO
new file mode 100644 (file)
index 0000000..95ccdec
--- /dev/null
@@ -0,0 +1,31 @@
+* Event logging
+  * In the current API, every call is logged and certain interesting
+    events are logged in the events table. I haven't implemented event
+    logging yet in the new API.
+
+* Tests
+  * With Shell.py, it should be easy to write a large set of tests. I've
+    thought about writing a SQLite DB backend so that MyPLC/PostgreSQL
+    doesn't have to be setup in order for the tests to be run. But there
+    are some technical limitations to SQLite. It would probably be best
+    to run the testsuite against MyPLC for now.
+
+* Authentication
+  * Need to implement node and certificate/federation authentication.
+  * Need to (re)implement "capability" (i.e. trusted host)
+    authentication. Maybe implement it in the same way as node
+    authentication.
+
+* Anonymous functions
+  * Implement anonymous functions for now for backward compatibility,
+    but get rid of them as soon as possible
+
+* Hierarchical layout
+  * Probably need to organize the functions inside PLC/Methods/
+
+* Deletion
+  * Need to come up with a sane, consistent principal deletion policy.
+
+* Validation
+  * Need to come up with a policy (truncation? fault?) for dealing with
+    variable length strings.
diff --git a/trunk/Test.py b/trunk/Test.py
new file mode 100755 (executable)
index 0000000..8ff3ad2
--- /dev/null
@@ -0,0 +1,281 @@
+#!/usr/bin/python
+#
+# Test script for peer caching
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+"""
+Test script for peer caching. Intended for testing multiple PLCs
+running on the same machine in different chroots. Here is how I set
+things up after installing and configuring MyPLC:
+
+# Shut down MyPLC
+service plc stop
+
+# Copy to /plc2
+cp -ra /plc /plc2
+ln -sf plc /etc/init.d/plc2
+echo 'PLC_ROOT=/plc2/root' > /etc/sysconfig/plc2
+echo 'PLC_DATA=/plc2/data' >> /etc/sysconfig/plc2
+
+# Edit /plc2/data/etc/planetlab/plc_config.xml and change at least the
+# following so that they do not conflict with the defaults:
+#
+# PLC_NAME (e.g., PlanetLab Two)
+# PLC_SLICE_PREFIX (e.g., two)
+# PLC_ROOT_USER (e.g., root@planetlab.two)
+# PLC_API_MAINTENANCE_USER (e.g., maint@planetlab.two)
+# PLC_DB_PORT (e.g., 5433)
+# PLC_WWW_PORT (e.g., 81)
+# PLC_WWW_SSL_PORT (e.g., 444)
+# PLC_API_PORT (must be the same as PLC_WWW_SSL_PORT, e.g., 444)
+# PLC_BOOT_SSL_PORT (must be the same as PLC_WWW_SSL_PORT, e.g., 444)
+# PLC_BOOT_PORT (may be the same as PLC_WWW_PORT, e.g., 81)
+
+# Start up both MyPLC instances
+service plc start
+service plc2 start
+
+# Run test
+./Test.py -f /etc/planetlab/plc_config -f /plc2/data/etc/planetlab/plc_config
+
+# If the test fails and your databases are corrupt and/or you want to
+# start over, you can always just blow the databases away.
+service plc stop
+rm -rf /plc/data/var/lib/pgsql/data
+service plc start
+
+service plc2 stop
+rm -rf /plc2/data/var/lib/pgsql/data
+service plc2 start
+"""
+
+import re
+from optparse import OptionParser
+
+from PLC.Config import Config
+from PLC.GPG import gpg_export
+from PLC.Shell import Shell
+from PLC.Test import Test
+
+def todict(list_of_dicts, key):
+    """
+    Turn a list of dicts into a dict keyed on key.
+    """
+
+    return dict([(d[key], d) for d in list_of_dicts])
+
+def RefreshPeers(plcs):
+    """
+    Refresh each peer with each other.
+    """
+
+    for plc in plcs:
+        for peer in plcs:
+            if peer == plc:
+                continue
+
+            print plc.config.PLC_NAME, "refreshing", peer.config.PLC_NAME
+            plc.RefreshPeer(peer.config.PLC_NAME)
+
+            peer_id = plc.GetPeers([peer.config.PLC_NAME])[0]['peer_id']
+
+            peer_sites = todict(plc.GetSites({'peer_id': peer_id}), 'site_id')
+            sites_at_peer = todict(peer.GetSites(), 'site_id')
+
+            peer_keys = todict(plc.GetKeys({'peer_id': peer_id}), 'key_id')
+            keys_at_peer = todict(peer.GetKeys(), 'key_id')
+
+            peer_persons = todict(plc.GetPersons({'peer_id': peer_id}), 'person_id')
+            persons_at_peer = todict(peer.GetPersons(), 'person_id')
+
+            peer_nodes = todict(plc.GetNodes({'peer_id': peer_id}), 'node_id')
+            nodes_at_peer = todict(peer.GetNodes(), 'node_id')
+
+            our_nodes = todict(plc.GetNodes({'peer_id': None}), 'node_id')
+            our_peer_id_at_peer = peer.GetPeers([plc.config.PLC_NAME])[0]['peer_id']
+            our_nodes_at_peer = todict(peer.GetNodes({'peer_id': our_peer_id_at_peer,
+                                                      'peer_node_id': our_nodes.keys()}), 'peer_node_id')
+
+            peer_slices = todict(plc.GetSlices({'peer_id': peer_id}), 'peer_slice_id')
+            slices_at_peer = todict(peer.GetSlices(), 'slice_id')
+            for site_id, site in peer_sites.iteritems():
+                # Verify that this site exists at the peer
+                peer_site_id = site['peer_site_id']
+                assert peer_site_id in sites_at_peer
+                peer_site = sites_at_peer[peer_site_id]
+
+                # And is the same
+                for field in ['name', 'abbreviated_name', 'login_base', 'is_public',
+                              'latitude', 'longitude', 'url',
+                              'max_slices', 'max_slivers',]:
+                    assert site[field] == peer_site[field]
+
+            for key_id, key in peer_keys.iteritems():
+                # Verify that this key exists at the peer
+                peer_key_id = key['peer_key_id']
+                assert peer_key_id in keys_at_peer
+                peer_key = keys_at_peer[peer_key_id]
+
+                # And is the same
+                for field in ['key_type', 'key']:
+                    assert key[field] == peer_key[field]
+
+            for person_id, person in peer_persons.iteritems():
+                # Verify that this user exists at the peer
+                peer_person_id = person['peer_person_id']
+                assert peer_person_id in persons_at_peer
+                peer_person = persons_at_peer[peer_person_id]
+
+                # And is the same
+                for field in ['first_name', 'last_name', 'title', 'email', 'phone',
+                              'url', 'bio', 'enabled']:
+                    assert person[field] == peer_person[field]
+
+                for key_id in person['key_ids']:
+                    # Verify that the user is not associated with any local keys
+                    assert key_id in peer_keys
+                    key = peer_keys[key_id]
+                    peer_key_id = key['peer_key_id']
+
+                    # Verify that this key exists at the peer
+                    assert peer_key_id in keys_at_peer
+                    peer_key = keys_at_peer[peer_key_id]
+
+                    # And is related to the same user at the peer
+                    assert peer_key['key_id'] in peer_person['key_ids']
+
+            for node_id, node in peer_nodes.iteritems():
+                # Verify that this node exists at the peer
+                peer_node_id = node['peer_node_id']
+                assert peer_node_id in nodes_at_peer
+                peer_node = nodes_at_peer[peer_node_id]
+
+                # And is the same
+                for field in ['boot_state', 'ssh_rsa_key', 'hostname',
+                              'version', 'model']:
+                    assert node[field] == peer_node[field]
+
+                # Verify that the node is not associated with any local sites
+                assert node['site_id'] in peer_sites
+                site = peer_sites[node['site_id']]
+
+                # Verify that this site exists at the peer
+                peer_site_id = site['peer_site_id']
+                assert peer_site_id in sites_at_peer
+                peer_site = sites_at_peer[peer_site_id]
+
+                # And is related to the same node at the peer
+                assert peer_site['site_id'] == peer_node['site_id']
+
+            for slice_id, slice in peer_slices.iteritems():
+                # Verify that this slice exists at the peer
+                peer_slice_id = slice['peer_slice_id']
+                assert peer_slice_id in slices_at_peer
+                peer_slice = slices_at_peer[peer_slice_id]
+
+                # And is the same
+                for field in ['name', 'instantiation', 'url', 'description',
+                              'max_nodes', 'expires']:
+                    assert slice[field] == peer_slice[field]
+
+                for node_id in slice['node_ids']:
+                    # Verify that the slice is associated only with
+                    # the peer's own nodes, or with our nodes as
+                    # last cached by the peer.
+                    assert node_id in peer_nodes or node_id in our_nodes_at_peer
+                    if node_id in peer_nodes:
+                        node = peer_nodes[node_id]
+                        peer_node_id = node['peer_node_id']
+                    elif node_id in our_nodes_at_peer:
+                        peer_node = our_nodes_at_peer[node_id]
+                        peer_node_id = peer_node['node_id']
+
+                    # Verify that this node exists at the peer
+                    assert peer_node_id in nodes_at_peer
+
+                    # And is related to the same slice at the peer
+                    assert peer_node_id in peer_slice['node_ids']
+
+def TestPeers(plcs, check = True, verbose = True, tiny = False):
+    # Register each peer with each other
+    for plc in plcs:
+        for peer in plcs:
+            if peer == plc:
+                continue
+
+            key = gpg_export(peer.chroot + peer.config.PLC_ROOT_GPG_KEY_PUB)
+            cacert = file(peer.chroot + peer.config.PLC_API_CA_SSL_CRT).read()
+
+            if plc.GetPeers([peer.config.PLC_NAME]):
+                print plc.config.PLC_NAME, "updating peer", peer.config.PLC_NAME
+                plc.UpdatePeer(peer.config.PLC_NAME,
+                               {'peer_url': peer.url, 'key': key, 'cacert': cacert})
+            else:
+                print plc.config.PLC_NAME, "adding peer", peer.config.PLC_NAME
+                plc.AddPeer({'peername': peer.config.PLC_NAME,
+                             'peer_url': peer.url, 'key': key, 'cacert': cacert})
+
+        # Populate the DB
+        plc.test = Test(api = plc, check = check, verbose = verbose)
+
+        if tiny:
+            params = Test.tiny
+        else:
+            params = Test.default
+
+        print "Populating", plc.config.PLC_NAME
+        plc.test.Add(**params)
+
+    # Refresh each other
+    RefreshPeers(plcs)
+
+    # Change some things
+    for plc in plcs:
+        print "Updating", plc.config.PLC_NAME
+        plc.test.Update()
+
+    # Refresh each other again
+    RefreshPeers(plcs)
+
+def main():
+    parser = OptionParser()
+    parser.add_option("-f", "--config", dest = "configs", action = "append", default = [], help = "Configuration file (default: %default)")
+    parser.add_option("-c", "--check", action = "store_true", default = False, help = "Verify actions (default: %default)")
+    parser.add_option("-q", "--quiet", action = "store_true", default = False, help = "Be quiet (default: %default)")
+    parser.add_option("-t", "--tiny", action = "store_true", default = False, help = "Run a tiny test (default: %default)")
+    (options, args) = parser.parse_args()
+
+    # Test single peer by default
+    if not options.configs:
+        options.configs = ["/etc/planetlab/plc_config"]
+
+    plcs = []
+    for path in options.configs:
+        # Load configuration file
+        config = Config(path)
+
+        # Determine path to chroot
+        m = re.match(r'(.*)/etc/planetlab', path)
+        if m is not None:
+            chroot = m.group(1)
+        else:
+            chroot = ""
+
+        # Fix up path to SSL certificate
+        cacert = chroot + config.PLC_API_CA_SSL_CRT
+
+        # Always connect with XML-RPC
+        plc = Shell(config = path, cacert = cacert, xmlrpc = True)
+        plc.chroot = chroot
+        plcs.append(plc)
+
+    TestPeers(plcs, check = options.check, verbose = not options.quiet, tiny = options.tiny)
+
+if __name__ == "__main__":
+    main()
diff --git a/trunk/doc/.cvsignore b/trunk/doc/.cvsignore
new file mode 100644 (file)
index 0000000..6cf3622
--- /dev/null
@@ -0,0 +1,9 @@
+*.dvi
+*.man
+*.ps
+*.rtf
+*.tex
+*.texi
+*.txt
+*.xml.valid
+Methods.xml
diff --git a/trunk/doc/DocBook.py b/trunk/doc/DocBook.py
new file mode 100755 (executable)
index 0000000..3434ce5
--- /dev/null
@@ -0,0 +1,199 @@
+#!/usr/bin/python
+#
+# Generates a DocBook section documenting all PLCAPI methods on
+# stdout.
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+import xml.dom.minidom
+from xml.dom.minidom import Element, Text
+import codecs
+
+from PLC.Method import *
+import DocBookLocal
+import groups
+
+# xml.dom.minidom.Text.writexml adds surrounding whitespace to textual
+# data when pretty-printing. Override this behavior.
+class TrimText(Text):
+    """text"""
+    def __init__(self, text = None):
+        self.data = unicode(text)
+
+    def writexml(self, writer, indent="", addindent="", newl=""):
+        Text.writexml(self, writer, "", "", "")
+
+class TrimTextElement(Element):
+    """<tagName>text</tagName>"""
+    def __init__(self, tagName, text = None):
+        Element.__init__(self, tagName)
+        if text is not None:
+            self.appendChild(TrimText(text))
+
+    def writexml(self, writer, indent="", addindent="", newl=""):
+        writer.write(indent)
+        Element.writexml(self, writer, "", "", "")
+        writer.write(newl)
+
+class simpleElement(TrimTextElement): pass
+
+class paraElement(simpleElement):
+    """<para>text</para>"""
+    def __init__(self, text = None):
+        simpleElement.__init__(self, 'para', text)
+
+class blockquoteElement(Element):
+    """<blockquote><para>text...</para><para>...text</para></blockquote>"""
+    def __init__(self, text = None):
+        Element.__init__(self, 'blockquote')
+        if text is not None:
+            # Split on blank lines
+            lines = [line.strip() for line in text.strip().split("\n")]
+            lines = "\n".join(lines)
+            paragraphs = lines.split("\n\n")
+
+            for paragraph in paragraphs:
+                self.appendChild(paraElement(paragraph))
+
+def param_type(param):
+    """Return the XML-RPC type of a parameter."""
+    if isinstance(param, Mixed) and len(param):
+        subtypes = [param_type(subparam) for subparam in param]
+        return " or ".join(subtypes)
+    elif isinstance(param, (list, tuple, set)) and len(param):
+        return "array of " + " or ".join([param_type(subparam) for subparam in param])
+    else:
+        return xmlrpc_type(python_type(param))
+
+class paramElement(Element):
+    """An optionally named parameter."""
+    def __init__(self, name, param):
+        # <listitem>
+        Element.__init__(self, 'listitem')
+
+        description = Element('para')
+
+        if name:
+            description.appendChild(simpleElement('parameter', name))
+            description.appendChild(TrimText(": "))
+
+        description.appendChild(TrimText(param_type(param)))
+
+        if isinstance(param, (list, tuple, set)) and len(param) == 1:
+            param = param[0]
+
+        if isinstance(param, Parameter):
+            description.appendChild(TrimText(", " + param.doc))
+            param = param.type
+
+        self.appendChild(description)
+
+        if isinstance(param, dict):
+            itemizedlist = Element('itemizedlist')
+            self.appendChild(itemizedlist)
+            for name, subparam in param.iteritems():
+                itemizedlist.appendChild(paramElement(name, subparam))
+
+        elif isinstance(param, (list, tuple, set)) and len(param):
+            itemizedlist = Element('itemizedlist')
+            self.appendChild(itemizedlist)
+            for subparam in param:
+                itemizedlist.appendChild(paramElement(None, subparam))
+
+
+def get_method_doc(func):
+
+    method = func.name
+
+    if func.status == "deprecated":
+        return
+
+    (min_args, max_args, defaults) = func.args()
+
+    section = Element('section')
+    section.setAttribute('id', func.name)
+    section.appendChild(simpleElement('title', func.name))
+
+    prototype = "%s (%s)" % (method, ", ".join(max_args))
+    para = paraElement('Prototype:')
+    para.appendChild(blockquoteElement(prototype))
+    section.appendChild(para)
+
+    para = paraElement('Description:')
+    para.appendChild(blockquoteElement(func.__doc__))
+    section.appendChild(para)
+
+    para = paraElement('Allowed Roles:')
+    para.appendChild(blockquoteElement(", ".join(func.roles)))
+    section.appendChild(para)
+
+    section.appendChild(paraElement('Parameters:'))
+    params = Element('itemizedlist')
+    if func.accepts:
+        for name, param, default in zip(max_args, func.accepts, defaults):
+            params.appendChild(paramElement(name, param))
+    else:
+        listitem = Element('listitem')
+        listitem.appendChild(paraElement('None'))
+        params.appendChild(listitem)
+    section.appendChild(params)
+
+    section.appendChild(paraElement('Returns:'))
+    returns = Element('itemizedlist')
+    returns.appendChild(paramElement(None, func.returns))
+    section.appendChild(returns)
+
+    #print section.toprettyxml(encoding = "UTF-8")
+    return section
+
+
+def get_section(fields, field_list = None):
+    if not field_list:
+       field_list = fields.keys()
+       field_list.sort()
+
+    for field in field_list:
+       value = fields[field]
+       section = Element('section')
+       section.setAttribute('id', field.title())
+       section.appendChild(simpleElement('title', field.title()))
+       # if list of methods, append method docs
+       # else if dict, make a new section group
+        if isinstance(value, dict):
+           section.appendChild(get_section(value))
+       elif isinstance(value, list):
+           methods = DocBookLocal.get_func_list(value)
+           for method in methods:
+               method_doc = get_method_doc(method)
+               section.appendChild(method_doc)               
+
+    return section
+       
+# write full list of methods to Methods.xml
+#api_func_list = DocBookLocal.get_func_list()
+#methods_xml = file('Methods.xml',  'w')
+#for func in api_func_list:
+#    section = get_method_doc(func)
+#    if section:               
+#        methods_xml.write(section)
+#methods_xml.close()
+
+# write methods grouped into interfaces
+interfaces = ['Registry_Interface', 'Management_Interface', 'Slice_Interface']
+for interface in interfaces:
+    interface_file = file(interface+'.xml', 'w')
+    interface_methods = groups.interfaces[interface]
+    section =  get_section(interface_methods, ['public', 'admin'])
+    if section:    
+       interface_file.write(section.toprettyxml(encoding = "UTF-8"))
+    interface_file.close()     
+       
+       
+
+       
+               
+       
diff --git a/trunk/doc/DocBookLocal.py b/trunk/doc/DocBookLocal.py
new file mode 100644 (file)
index 0000000..a01ad6c
--- /dev/null
@@ -0,0 +1,8 @@
+
+from PLC.API import PLCAPI
+
+def get_func_list(methods = None):
+       api = PLCAPI(None)
+       if not methods:
+           methods = api.methods
+       return [api.callable(method) for method in methods]
diff --git a/trunk/doc/Makefile b/trunk/doc/Makefile
new file mode 100644 (file)
index 0000000..3adaa1f
--- /dev/null
@@ -0,0 +1,45 @@
+#
+# (Re)builds API documentation
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+all: PLCAPI.pdf
+
+.PLCAPI.xml.valid: Methods.xml
+
+Methods.xml: DocBook.py ../PLC/__init__.py ../PLC/Methods/__init__.py
+       PYTHONPATH=.. python $< > $@
+
+#
+# Documentation
+#
+
+# Validate the XML
+.%.xml.valid: %.xml
+       xmllint --valid --output $@ $<
+
+# Remove the temporary output file after compilation
+.SECONDARY: .%.xml.valid
+
+# Compile it into other formats
+FORMATS := dvi html man ps pdf rtf tex texi txt
+
+DOCBOOK2FLAGS := -V biblio-number=1
+
+define docbook2
+%.$(1): %.xml .%.xml.valid
+       docbook2$(1) --nochunks $$(DOCBOOK2FLAGS) $$<
+endef
+
+$(foreach format,$(FORMATS),$(eval $(call docbook2,$(format))))
+
+clean:
+       rm -f $(patsubst %,*.%,$(FORMATS)) .*.xml.valid Methods.xml
+
+force:
+
+.PHONY: force clean docclean
diff --git a/trunk/doc/PLCAPI.html b/trunk/doc/PLCAPI.html
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/trunk/doc/PLCAPI.pdf b/trunk/doc/PLCAPI.pdf
new file mode 100644 (file)
index 0000000..4c3abd0
--- /dev/null
@@ -0,0 +1,37971 @@
+%PDF-1.4
+1 0 obj
+<< /S /GoTo /D (1.0) >>
+endobj
+4 0 obj
+(PlanetLab Central API Documentation)
+endobj
+5 0 obj
+<< /S /GoTo /D (2.0) >>
+endobj
+8 0 obj
+(Table of Contents)
+endobj
+9 0 obj
+<< /S /GoTo /D (3.0) >>
+endobj
+12 0 obj
+(Chapter 1. Introduction)
+endobj
+13 0 obj
+<< /S /GoTo /D (3.1.1) >>
+endobj
+16 0 obj
+(1.1. Authentication)
+endobj
+17 0 obj
+<< /S /GoTo /D (3.2.1) >>
+endobj
+20 0 obj
+(1.2. Roles)
+endobj
+21 0 obj
+<< /S /GoTo /D (3.3.1) >>
+endobj
+24 0 obj
+(1.3. Filters)
+endobj
+25 0 obj
+<< /S /GoTo /D (3.4.1) >>
+endobj
+28 0 obj
+(1.4. PlanetLab shell)
+endobj
+29 0 obj
+<< /S /GoTo /D (4.0) >>
+endobj
+32 0 obj
+(Chapter 2. PlanetLab API Methods)
+endobj
+33 0 obj
+<< /S /GoTo /D (4.5.1) >>
+endobj
+36 0 obj
+(2.1. AddAddressType)
+endobj
+37 0 obj
+<< /S /GoTo /D (4.6.1) >>
+endobj
+40 0 obj
+(2.2. AddAddressTypeToAddress)
+endobj
+41 0 obj
+<< /S /GoTo /D (4.7.1) >>
+endobj
+44 0 obj
+(2.3. AddBootState)
+endobj
+45 0 obj
+<< /S /GoTo /D (4.8.1) >>
+endobj
+48 0 obj
+(2.4. AddConfFile)
+endobj
+49 0 obj
+<< /S /GoTo /D (4.9.1) >>
+endobj
+52 0 obj
+(2.5. AddConfFileToNodeGroup)
+endobj
+53 0 obj
+<< /S /GoTo /D (4.10.1) >>
+endobj
+56 0 obj
+(2.6. AddConfFileToNode)
+endobj
+57 0 obj
+<< /S /GoTo /D (4.11.1) >>
+endobj
+60 0 obj
+(2.7. AddKeyType)
+endobj
+61 0 obj
+<< /S /GoTo /D (4.12.1) >>
+endobj
+64 0 obj
+(2.8. AddMessage)
+endobj
+65 0 obj
+<< /S /GoTo /D (4.13.1) >>
+endobj
+68 0 obj
+(2.9. AddNetworkMethod)
+endobj
+69 0 obj
+<< /S /GoTo /D (4.14.1) >>
+endobj
+72 0 obj
+(2.10. AddNetworkType)
+endobj
+73 0 obj
+<< /S /GoTo /D (4.15.1) >>
+endobj
+76 0 obj
+(2.11. AddNodeGroup)
+endobj
+77 0 obj
+<< /S /GoTo /D (4.16.1) >>
+endobj
+80 0 obj
+(2.12. AddNodeNetwork)
+endobj
+81 0 obj
+<< /S /GoTo /D (4.17.1) >>
+endobj
+84 0 obj
+(2.13. AddNode)
+endobj
+85 0 obj
+<< /S /GoTo /D (4.18.1) >>
+endobj
+88 0 obj
+(2.14. AddNodeToNodeGroup)
+endobj
+89 0 obj
+<< /S /GoTo /D (4.19.1) >>
+endobj
+92 0 obj
+(2.15. AddNodeToPCU)
+endobj
+93 0 obj
+<< /S /GoTo /D (4.20.1) >>
+endobj
+96 0 obj
+(2.16. AddPCU)
+endobj
+97 0 obj
+<< /S /GoTo /D (4.21.1) >>
+endobj
+100 0 obj
+(2.17. AddPeer)
+endobj
+101 0 obj
+<< /S /GoTo /D (4.22.1) >>
+endobj
+104 0 obj
+(2.18. AddPersonKey)
+endobj
+105 0 obj
+<< /S /GoTo /D (4.23.1) >>
+endobj
+108 0 obj
+(2.19. AddPerson)
+endobj
+109 0 obj
+<< /S /GoTo /D (4.24.1) >>
+endobj
+112 0 obj
+(2.20. AddPersonToSite)
+endobj
+113 0 obj
+<< /S /GoTo /D (4.25.1) >>
+endobj
+116 0 obj
+(2.21. AddPersonToSlice)
+endobj
+117 0 obj
+<< /S /GoTo /D (4.26.1) >>
+endobj
+120 0 obj
+(2.22. AddRole)
+endobj
+121 0 obj
+<< /S /GoTo /D (4.27.1) >>
+endobj
+124 0 obj
+(2.23. AddRoleToPerson)
+endobj
+125 0 obj
+<< /S /GoTo /D (4.28.1) >>
+endobj
+128 0 obj
+(2.24. AddSiteAddress)
+endobj
+129 0 obj
+<< /S /GoTo /D (4.29.1) >>
+endobj
+132 0 obj
+(2.25. AddSite)
+endobj
+133 0 obj
+<< /S /GoTo /D (4.30.1) >>
+endobj
+136 0 obj
+(2.26. AddSliceAttribute)
+endobj
+137 0 obj
+<< /S /GoTo /D (4.31.1) >>
+endobj
+140 0 obj
+(2.27. AddSliceAttributeType)
+endobj
+141 0 obj
+<< /S /GoTo /D (4.32.1) >>
+endobj
+144 0 obj
+(2.28. AddSliceInstantiation)
+endobj
+145 0 obj
+<< /S /GoTo /D (4.33.1) >>
+endobj
+148 0 obj
+(2.29. AddSlice)
+endobj
+149 0 obj
+<< /S /GoTo /D (4.34.1) >>
+endobj
+152 0 obj
+(2.30. AddSliceToNodes)
+endobj
+153 0 obj
+<< /S /GoTo /D (4.35.1) >>
+endobj
+156 0 obj
+(2.31. AuthCheck)
+endobj
+157 0 obj
+<< /S /GoTo /D (4.36.1) >>
+endobj
+160 0 obj
+(2.32. BlacklistKey)
+endobj
+161 0 obj
+<< /S /GoTo /D (4.37.1) >>
+endobj
+164 0 obj
+(2.33. BootGetNodeDetails)
+endobj
+165 0 obj
+<< /S /GoTo /D (4.38.1) >>
+endobj
+168 0 obj
+(2.34. BootNotifyOwners)
+endobj
+169 0 obj
+<< /S /GoTo /D (4.39.1) >>
+endobj
+172 0 obj
+(2.35. BootUpdateNode)
+endobj
+173 0 obj
+<< /S /GoTo /D (4.40.1) >>
+endobj
+176 0 obj
+(2.36. DeleteAddress)
+endobj
+177 0 obj
+<< /S /GoTo /D (4.41.1) >>
+endobj
+180 0 obj
+(2.37. DeleteAddressTypeFromAddress)
+endobj
+181 0 obj
+<< /S /GoTo /D (4.42.1) >>
+endobj
+184 0 obj
+(2.38. DeleteAddressType)
+endobj
+185 0 obj
+<< /S /GoTo /D (4.43.1) >>
+endobj
+188 0 obj
+(2.39. DeleteBootState)
+endobj
+189 0 obj
+<< /S /GoTo /D (4.44.1) >>
+endobj
+192 0 obj
+(2.40. DeleteConfFileFromNodeGroup)
+endobj
+193 0 obj
+<< /S /GoTo /D (4.45.1) >>
+endobj
+196 0 obj
+(2.41. DeleteConfFileFromNode)
+endobj
+197 0 obj
+<< /S /GoTo /D (4.46.1) >>
+endobj
+200 0 obj
+(2.42. DeleteConfFile)
+endobj
+201 0 obj
+<< /S /GoTo /D (4.47.1) >>
+endobj
+204 0 obj
+(2.43. DeleteKey)
+endobj
+205 0 obj
+<< /S /GoTo /D (4.48.1) >>
+endobj
+208 0 obj
+(2.44. DeleteKeyType)
+endobj
+209 0 obj
+<< /S /GoTo /D (4.49.1) >>
+endobj
+212 0 obj
+(2.45. DeleteMessage)
+endobj
+213 0 obj
+<< /S /GoTo /D (4.50.1) >>
+endobj
+216 0 obj
+(2.46. DeleteNetworkMethod)
+endobj
+217 0 obj
+<< /S /GoTo /D (4.51.1) >>
+endobj
+220 0 obj
+(2.47. DeleteNetworkType)
+endobj
+221 0 obj
+<< /S /GoTo /D (4.52.1) >>
+endobj
+224 0 obj
+(2.48. DeleteNodeFromNodeGroup)
+endobj
+225 0 obj
+<< /S /GoTo /D (4.53.1) >>
+endobj
+228 0 obj
+(2.49. DeleteNodeFromPCU)
+endobj
+229 0 obj
+<< /S /GoTo /D (4.54.1) >>
+endobj
+232 0 obj
+(2.50. DeleteNodeGroup)
+endobj
+233 0 obj
+<< /S /GoTo /D (4.55.1) >>
+endobj
+236 0 obj
+(2.51. DeleteNodeNetwork)
+endobj
+237 0 obj
+<< /S /GoTo /D (4.56.1) >>
+endobj
+240 0 obj
+(2.52. DeleteNode)
+endobj
+241 0 obj
+<< /S /GoTo /D (4.57.1) >>
+endobj
+244 0 obj
+(2.53. DeletePCU)
+endobj
+245 0 obj
+<< /S /GoTo /D (4.58.1) >>
+endobj
+248 0 obj
+(2.54. DeletePeer)
+endobj
+249 0 obj
+<< /S /GoTo /D (4.59.1) >>
+endobj
+252 0 obj
+(2.55. DeletePersonFromSite)
+endobj
+253 0 obj
+<< /S /GoTo /D (4.60.1) >>
+endobj
+256 0 obj
+(2.56. DeletePersonFromSlice)
+endobj
+257 0 obj
+<< /S /GoTo /D (4.61.1) >>
+endobj
+260 0 obj
+(2.57. DeletePerson)
+endobj
+261 0 obj
+<< /S /GoTo /D (4.62.1) >>
+endobj
+264 0 obj
+(2.58. DeleteRoleFromPerson)
+endobj
+265 0 obj
+<< /S /GoTo /D (4.63.1) >>
+endobj
+268 0 obj
+(2.59. DeleteRole)
+endobj
+269 0 obj
+<< /S /GoTo /D (4.64.1) >>
+endobj
+272 0 obj
+(2.60. DeleteSession)
+endobj
+273 0 obj
+<< /S /GoTo /D (4.65.1) >>
+endobj
+276 0 obj
+(2.61. DeleteSite)
+endobj
+277 0 obj
+<< /S /GoTo /D (4.66.1) >>
+endobj
+280 0 obj
+(2.62. DeleteSliceAttribute)
+endobj
+281 0 obj
+<< /S /GoTo /D (4.67.1) >>
+endobj
+284 0 obj
+(2.63. DeleteSliceAttributeType)
+endobj
+285 0 obj
+<< /S /GoTo /D (4.68.1) >>
+endobj
+288 0 obj
+(2.64. DeleteSliceFromNodes)
+endobj
+289 0 obj
+<< /S /GoTo /D (4.69.1) >>
+endobj
+292 0 obj
+(2.65. DeleteSliceInstantiation)
+endobj
+293 0 obj
+<< /S /GoTo /D (4.70.1) >>
+endobj
+296 0 obj
+(2.66. DeleteSlice)
+endobj
+297 0 obj
+<< /S /GoTo /D (4.71.1) >>
+endobj
+300 0 obj
+(2.67. GetAddresses)
+endobj
+301 0 obj
+<< /S /GoTo /D (4.72.1) >>
+endobj
+304 0 obj
+(2.68. GetAddressTypes)
+endobj
+305 0 obj
+<< /S /GoTo /D (4.73.1) >>
+endobj
+308 0 obj
+(2.69. GetBootStates)
+endobj
+309 0 obj
+<< /S /GoTo /D (4.74.1) >>
+endobj
+312 0 obj
+(2.70. GetConfFiles)
+endobj
+313 0 obj
+<< /S /GoTo /D (4.75.1) >>
+endobj
+316 0 obj
+(2.71. GetEvents)
+endobj
+317 0 obj
+<< /S /GoTo /D (4.76.1) >>
+endobj
+320 0 obj
+(2.72. GetKeys)
+endobj
+321 0 obj
+<< /S /GoTo /D (4.77.1) >>
+endobj
+324 0 obj
+(2.73. GetKeyTypes)
+endobj
+325 0 obj
+<< /S /GoTo /D (4.78.1) >>
+endobj
+328 0 obj
+(2.74. GetMessages)
+endobj
+329 0 obj
+<< /S /GoTo /D (4.79.1) >>
+endobj
+332 0 obj
+(2.75. GetNetworkMethods)
+endobj
+333 0 obj
+<< /S /GoTo /D (4.80.1) >>
+endobj
+336 0 obj
+(2.76. GetNetworkTypes)
+endobj
+337 0 obj
+<< /S /GoTo /D (4.81.1) >>
+endobj
+340 0 obj
+(2.77. GetNodeGroups)
+endobj
+341 0 obj
+<< /S /GoTo /D (4.82.1) >>
+endobj
+344 0 obj
+(2.78. GetNodeNetworks)
+endobj
+345 0 obj
+<< /S /GoTo /D (4.83.1) >>
+endobj
+348 0 obj
+(2.79. GetNodes)
+endobj
+349 0 obj
+<< /S /GoTo /D (4.84.1) >>
+endobj
+352 0 obj
+(2.80. GetPCUs)
+endobj
+353 0 obj
+<< /S /GoTo /D (4.85.1) >>
+endobj
+356 0 obj
+(2.81. GetPeerData)
+endobj
+357 0 obj
+<< /S /GoTo /D (4.86.1) >>
+endobj
+360 0 obj
+(2.82. GetPeerName)
+endobj
+361 0 obj
+<< /S /GoTo /D (4.87.1) >>
+endobj
+364 0 obj
+(2.83. GetPeers)
+endobj
+365 0 obj
+<< /S /GoTo /D (4.88.1) >>
+endobj
+368 0 obj
+(2.84. GetPersons)
+endobj
+369 0 obj
+<< /S /GoTo /D (4.89.1) >>
+endobj
+372 0 obj
+(2.85. GetRoles)
+endobj
+373 0 obj
+<< /S /GoTo /D (4.90.1) >>
+endobj
+376 0 obj
+(2.86. GetSession)
+endobj
+377 0 obj
+<< /S /GoTo /D (4.91.1) >>
+endobj
+380 0 obj
+(2.87. GetSites)
+endobj
+381 0 obj
+<< /S /GoTo /D (4.92.1) >>
+endobj
+384 0 obj
+(2.88. GetSliceAttributes)
+endobj
+385 0 obj
+<< /S /GoTo /D (4.93.1) >>
+endobj
+388 0 obj
+(2.89. GetSliceAttributeTypes)
+endobj
+389 0 obj
+<< /S /GoTo /D (4.94.1) >>
+endobj
+392 0 obj
+(2.90. GetSliceInstantiations)
+endobj
+393 0 obj
+<< /S /GoTo /D (4.95.1) >>
+endobj
+396 0 obj
+(2.91. GetSlices)
+endobj
+397 0 obj
+<< /S /GoTo /D (4.96.1) >>
+endobj
+400 0 obj
+(2.92. GetSliceTicket)
+endobj
+401 0 obj
+<< /S /GoTo /D (4.97.1) >>
+endobj
+404 0 obj
+(2.93. GetSlivers)
+endobj
+405 0 obj
+<< /S /GoTo /D (4.98.1) >>
+endobj
+408 0 obj
+(2.94. NotifyPersons)
+endobj
+409 0 obj
+<< /S /GoTo /D (4.99.1) >>
+endobj
+412 0 obj
+(2.95. RebootNode)
+endobj
+413 0 obj
+<< /S /GoTo /D (4.100.1) >>
+endobj
+416 0 obj
+(2.96. RefreshPeer)
+endobj
+417 0 obj
+<< /S /GoTo /D (4.101.1) >>
+endobj
+420 0 obj
+(2.97. ResetPassword)
+endobj
+421 0 obj
+<< /S /GoTo /D (4.102.1) >>
+endobj
+424 0 obj
+(2.98. SetPersonPrimarySite)
+endobj
+425 0 obj
+<< /S /GoTo /D (4.103.1) >>
+endobj
+428 0 obj
+(2.99. UpdateAddress)
+endobj
+429 0 obj
+<< /S /GoTo /D (4.104.1) >>
+endobj
+432 0 obj
+(2.100. UpdateAddressType)
+endobj
+433 0 obj
+<< /S /GoTo /D (4.105.1) >>
+endobj
+436 0 obj
+(2.101. UpdateConfFile)
+endobj
+437 0 obj
+<< /S /GoTo /D (4.106.1) >>
+endobj
+440 0 obj
+(2.102. UpdateKey)
+endobj
+441 0 obj
+<< /S /GoTo /D (4.107.1) >>
+endobj
+444 0 obj
+(2.103. UpdateMessage)
+endobj
+445 0 obj
+<< /S /GoTo /D (4.108.1) >>
+endobj
+448 0 obj
+(2.104. UpdateNodeGroup)
+endobj
+449 0 obj
+<< /S /GoTo /D (4.109.1) >>
+endobj
+452 0 obj
+(2.105. UpdateNodeNetwork)
+endobj
+453 0 obj
+<< /S /GoTo /D (4.110.1) >>
+endobj
+456 0 obj
+(2.106. UpdateNode)
+endobj
+457 0 obj
+<< /S /GoTo /D (4.111.1) >>
+endobj
+460 0 obj
+(2.107. UpdatePCU)
+endobj
+461 0 obj
+<< /S /GoTo /D (4.112.1) >>
+endobj
+464 0 obj
+(2.108. UpdatePeer)
+endobj
+465 0 obj
+<< /S /GoTo /D (4.113.1) >>
+endobj
+468 0 obj
+(2.109. UpdatePerson)
+endobj
+469 0 obj
+<< /S /GoTo /D (4.114.1) >>
+endobj
+472 0 obj
+(2.110. UpdateSite)
+endobj
+473 0 obj
+<< /S /GoTo /D (4.115.1) >>
+endobj
+476 0 obj
+(2.111. UpdateSliceAttribute)
+endobj
+477 0 obj
+<< /S /GoTo /D (4.116.1) >>
+endobj
+480 0 obj
+(2.112. UpdateSliceAttributeType)
+endobj
+481 0 obj
+<< /S /GoTo /D (4.117.1) >>
+endobj
+484 0 obj
+(2.113. UpdateSlice)
+endobj
+485 0 obj
+<< /S /GoTo /D (4.118.1) >>
+endobj
+488 0 obj
+(2.114. VerifyPerson)
+endobj
+489 0 obj
+<< /S /GoTo /D (4.119.1) >>
+endobj
+492 0 obj
+(2.115. system.listMethods)
+endobj
+493 0 obj
+<< /S /GoTo /D (4.120.1) >>
+endobj
+496 0 obj
+(2.116. system.methodHelp)
+endobj
+497 0 obj
+<< /S /GoTo /D (4.121.1) >>
+endobj
+500 0 obj
+(2.117. system.methodSignature)
+endobj
+501 0 obj
+<< /S /GoTo /D (4.122.1) >>
+endobj
+504 0 obj
+(2.118. system.multicall)
+endobj
+505 0 obj
+<< /S /GoTo /D [506 0 R  /Fit ] >>
+endobj
+508 0 obj <<
+/Length 160       
+/Filter /FlateDecode
+>>
+stream
+xÚ\8d\8e;\ fÂ0\f\84÷ü
+\8f\89Ý6NFÞ\ 21tÈ\86\18B)\b©\ f   \95ÿO¤V\88\81\ 1y8\9f>Ëw\ 4:\ e\81\10J\16\85\1d²)\18ªVi¸G´S4\9däÆ \17d¢ùAÓ"\13t\96\r¤ßO\96^Í·LÀ9\8a\ 3\7f\ 3\e\83\88\ 4Dkdfð×Ó¬lBW\ fÇpIR\16;[ÕÝð\fÍh\16å~\Ö}õj#   Ã£ï\92³?¨\8dÿ¤Oõs\8b\96\8cû¿ý\e\ 3ý7Èendstream
+endobj
+506 0 obj <<
+/Type /Page
+/Contents 508 0 R
+/Resources 507 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 515 0 R
+>> endobj
+509 0 obj <<
+/D [506 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+510 0 obj <<
+/D [506 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+511 0 obj <<
+/D [506 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+2 0 obj <<
+/D [506 0 R /XYZ 528.0019 700.222 null]
+>> endobj
+507 0 obj <<
+/Font << /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+518 0 obj <<
+/Length 158       
+/Filter /FlateDecode
+>>
+stream
+xÚ3T0\0BC\ 5sC=sc ed©gdfj¤\90\9cËe \90\ e\94rç2\84*113Ó3254\ 3r°Èê\9a\1a\9bëYZ\18\99)è"\eâ\14Â¥ïfd¨`©gi\ 6\94\vI\83Ûd`¡glbl®\10\92\12­\11\90\93\98\97\93\98¤©kdn¡á\9c\9aWR\94\98\ 3á8\ 6xB\18.ùÉ¥¹@\99Ä\92Ìü<ÍØ\10/.×\10¸õPSM,ô,\fÍ,\89w>\0@Ã8\ fendstream
+endobj
+517 0 obj <<
+/Type /Page
+/Contents 518 0 R
+/Resources 516 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 515 0 R
+>> endobj
+519 0 obj <<
+/D [517 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+516 0 obj <<
+/Font << /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+522 0 obj <<
+/Length 53930     
+/Filter /FlateDecode
+>>
+stream
+xÚ\94ÝM\93kW~\9dù¹>\ 5\87ä@h¼$\90È¡¬h)Ün9\1cíêQG\ fÊ*ÊRtu±¢\8a\8a\ e}û>y/öÚȵqÖ³h;B\92yjýP\80\8a¼\97Ìç\8fÓ\ fÇíÿ\9e~x?\1dÞ/Û\7f9\7f\1cηëù\87\7fþ\7fÿæøÃÿÜþÐ?þÍéñÈÛív8_O·í\7fxñGÿözy?|ÜÏ·\1fþöyä?ýîoþ\97\7f8\9f~8\1f\ f·ëýúÃïþEÔñr8_n?üî\ fÿ×\8f¿ûé~üñ÷ÿã§ÓñÇ?þüÓß\9eßï?þò/ßÿëßÿò§_\7fþÓ¯\7fýéÿþÝÿö7ÿëïä\9dN\1f\87ëõôþÃí~;\9c®\97\97¯I\ fýíÓSß_Òý\87\8fÃÇm{¹Û+Z¶>_Óé°½\80ëñÇÿü§_ÿòÓi{A\7fø÷\7fþõß~ùÓòBî\97Ãõ~J¯ãx8\9f?ÞwÞ·Ï\7fýýtÄ×8\1e{~\8d\87õÅÜ\ e\97ãéíÕ«y!?\1e&Ù6wäûáýã\Âß\9f%÷ëâköãt8ßÏï\9d;\1e\ 6Ø7wäËáýýR¾Õãa\92msGÞþ\83xkáïÏ\92ûuq\87Ý>\8fë[ûV?\1e&Ø6_Êçãö\81¼m\7f´\91õp\96\97Í\1dyû@¶?Iuð÷gÉýº¸Ãn\9fÇùö^º\8f\87        ¶Í\1dyû@Nïí[ýx\98dÛ|-\9f\ fäxïàdzàÚâ\ e{9Ü>îåG<\1e&Ø6wäí\ fÞ?Ê·z<L²mîÈ÷í}§¿=Jê\97½×æùt8½\1fË÷y<\f®oîÈÛ§q;\95ïóx\98dÛÜ\91?ÿàé£\94\1f\ f\93l\9b;òö\89¼\9dÛwûñ0ɶùZ¾l\9fÉåR¾Ûãa\90}sGÞ>\93ó¥|·ÇÃ$Ûæ\8e¼ýÁÓ[ùn\8f\87I¶Í\1dyûL\8e×s)?\1e&Ù6_Ëo§ÃñãZ¾Ûãa\90}sGþü\ 5÷­|·ÇÃ$Ûæ\8e|;\1cßßËw{<L²mîÈ÷ÃõöÞ¾Û\8f\87I¶Í×òuûL>\7fçVÉãa\90}sGÞ>\93·ò·\14z\98dÛÜ\91·ÏäòQ¾Ûãa\92msGÞ>\93˱}·\1f\ f\93l\9b¯åÛö\99\9cOå»=\1e\ 6Ù7wäí39\9dÊ_\8f\8c\87I¶Í\1dyûL\8eçòÝ\1e\ f\93l\9b;òýðöqißíÇÃ$Ûækùýxø¸_Êw{<\f²oîÈ\97ÃÛû[ùn\8f\87I¶Í\1dùºý+®§R~<L²mîÈÛgr½¶ïöãa\92móµ|ß>\93·[ùn\8f\87AöÍ\1dyûL.ïå»=\1e&Ù6wäí3ÙÞ\9eR~<L²mîÈÛgrº¿\95òãa\92móµü±}&Ç\8fòÝ\1e\ f\83ì\9b;òå°ý\ 5­|·ÇÃ$Ûæ\8e|=Ü?\8eå»=\1e&Ù6wäûár?µïöãa\92mó¥|9\1e\ f÷÷S÷·\84ôp\96\97Í\1dyûLnç·R~<L²mîÈÛgr½\9cJùñ0ɶ¹#o\9fÉö'\9cR~<L²m¾\96OÛgry+ßíñ0Ⱦ¹#o\9f\8b¡ñ,¹_\17wØí\ 39]Ë·z<L°mîÈÛ\ar¼µoõãa\92móµ|>\1eÞ?Ê\7fË\8fgÁµÅ\1dör8ßß[÷ñ0Á¶¹#_\ fïï÷K)?\1e&Ù6wäûá|û(áïÏ\92ûuñ5{Ù>\8f\11\8f\87\ 1öÍ\1dyû@®Çò­\1e\ f\93l\9b;òö\81¼\95\7f¶~<Kî×Å\1dvû<.§[é>\1e&Ø6_ËoÛ\ar>\97oõx\18dßÜ\91·\ fäÔÂß\9f%÷ëâ\ e»}\1eÇò\9f\87éa\82msG¾\1fN\1foí¿ãÇÃ$Ûækùz<Üîoå\9fAÆàûæ\8e|9\9cÞ¯å»=\1e&Ù6wäëáv»\95ïöx\98dÛÜ\91·ÏäÚþùz<L²m¾\96oÛgòö^¾Ûãa\90}sGÞ>\93Ëý\Ê\8f\87I¶Í\1dyûLÎ÷òÝ\1e\ f\93l\9b;òö\99\9c>Úwûñ0ɶùZ~ß>\93Ó±|·Çàûæ\8e¼}&Çcùn\8f\87I¶Í\1dùz¸~\9cÊ_Û\8f\87I¶Í\1dù~8ÞÏí»ýx\98dÛ|-ß\8f\87ëû¹|·Çàûæ\8e|9\1co\97òÝ\1e\ f\93l\9b;òö\99\ßÊw{<L²mîÈÛgòöv/åÇÃ$ÛækùcûL¶¿¸tòx\18dßÜ\91·Ïä|+ßíñ0ɶ¹#o\9fÉ©ü\11\ e=L²mîÈÛgr|oßíÇÃ$ÛæKùíx<¼}Ü»ß^èá,/\9b;òùðq¿ßKùñ0ɶ¹#_\ f\1f×R~<L²mîÈï\87\8f÷cûn?\1e&Ù6_˧í3¹\95?\b¦\87AöÍ\1dyûL®å\ fÏêa\92msGÞ>\93·sùn\8f\87I¶Í\1dyûL.çöÝ~<L²m¾\96ÏÛgr.\7f~V\ f\83ì\9b;òö\99\9cÊ¿Q¡\87I¶Í\1dyûL\8eå\8fÐêa\92msG~?Ü?®í»ýx\98dÛ|-_\8e\87ËýV¾Ûãa\90}sG>\1fîïåOÑêa\92msG¾\1e.·÷òÝ\1e\ f\93l\9b;òö\99\94ÿ¼y<Kî×Å×ìÛö\81¼ÝË·z<\f°oîÈÛ\arù(ßêñ0ɶ¹#o\1fÈ¥t¿=Jê\97½\1dsû0ÎÇö}~<L®m¾\96¯Û§q*ÿ\96£\1e\ 6Ù7wäíÓ(\7f¿>\9e%÷ëâ\ e{=\9c?ʲD\ f\13l\9b;òûáýÞþ¯Öx\98dÛ|-ß\8e\87sû§­Ç³àÚâ\ e{>¼ßÊ\9f\9fÕÃ\ 4Ûæ\8e¼} ×²,ÑÃ$Ûæ\8e¼} õ¿åïÏ\92ûuñ5û~ü¬îJw<\f°oîÈÛ\ar.Ë\12=L²mîÈÛ\ar*\7fxV\ f\93l\9b;òö\91\1cïí»ýx\98dÛ|-ß\8f\87ÓG\19\97èa\90}sG>\1fn÷ò\87gõ0ɶ¹#_\ f§{\99\98èa\92msG~?ÜÞË\1f\9eÕÃ$ÛækùcûLneb¢\87AöÍ\1dyûL®eb¢\87I¶Í\1dyûLÞÊ\1f\9eÕÃ$Ûæ\8e¼}&\97Kûn?\1e&Ù6_Ê×ãö\99\9cË\1f\9eÕÃY^6wäí39\95\89\89\1e&Ù6wäí39\96\89\89\1e&Ù6wä÷ÃõãÖ¾Û\8f\87I¶Í×òéx8ÞËÄD\ f\83ì\9b;òùp}/\7fxV\ f\93l\9b;òõp¼\95\89\89\1e&Ù6wäí3¹~´ïöãa\92móµ|Þ>\93·ò\87gõ0Ⱦ¹#o\9fÉ[\99\98èa\92msGÞ>\93Kùóz\98dÛÜ\91·Ïä|jßíÇÃ$Ûækù²}&§ò§*õ0Ⱦ¹#o\9fÉñ\ 2\87)¾ýÓ\8f½\83\1e\97Ãñ\88¿Ny<öõW\85§õÕ<®\83¤s\1d\97\8f·í-ýü5Ùö\9fÞËÛùíõÁ\8c·ËáíÛ?HÛ~ßq?m\8fëu}<\9f\16x<¦§¾\1fõ\18g=þîß\7fý×\9fÿôë¿ýóï_\1dõ8oÿQ:\9d>\8b\96'Ã_ÉgÄv»ï¼{O     s|\99³a~~\9d!b~ñ\82\f¸¯BÇÜá
+\99\ 1÷UH\99;\-3à¾
+5s\85Ï\9c9ãË*\ 4Í\1d®¢\19p_\85¦¹Ã\155\ 3î«\905w¸ºfÀ}\15Êæ
+\9fisÆ\97U\88\9b;\u3à¾
+}s\87+p\ 6ÜW!qîp5Î\80û*TÎ\15>3ç\8c\10:w¸JgÀ}\15\ e\f¸¯BîÜáê\9d\ 1÷U(\9e+|&Ï\19_V!zîpUÏ\80û*tÏ\1d®ð\19p_\85ô¹ÃÕ>\ 3î«P?WøÌ\9f3¾¬B\0Ýá* \ 1÷Uh ;\\114à¾
+\19t\87«\83\ 6ÜW¡\84®ð\99Bg|Y\85\18ºÃUC\ 3î«ÐCw¸\82hÀ}\15\92è\ eW\13\r¸¯B\15]á3\8bÎø²
+at\87«\8c\ 6ÜW¡\8dîpÅÑ\80û*äÑ\1d®>\1ap_\85BºÁ\9f\12é\88¯«\10Iw¸*iÀ}\15\ eW(\r¸¯B*Ýáj¥\ 1÷U¨¥+|æÒ\19_Vs0ÝÙ£\98\ 6Ú6¡\99îhEÓ`û*dÓ\1d®n\1ap_Íåte+\9dδoB<ÝѪ§ÁöUè§;\\ 15à¾\9a\13êÎ\1e\r5ж    \15uEÏ\8c:ÛË*\84Ô\1d®\92\1ap_Í-ug\8f\98\1a\84\9cº£ÕS\83í«PTWøLª3¾¬æ¨º³GU\r´mBWÝÑ
+«ÁöUH«;\m5à¾
+uu\85ϼ:ãË*\ 4Ö\1d®Â\1ap_\85ƺÃ\15Y\ 3î«\90Yw¸:kÀ}\15
+\9f©uÆ\97U\88­;\µ5à¾
+½u\87\ 6ÜW!¹îp5×\80û*T×\15>³ë\8c\10^w¸ÊkÀ}\15Úë\ eW|\r¸¯B~Ýáê¯\ 1÷U(°+|&Ø\19_V!ÂîpUØ\80û*tØ\1d®\10\ep_\85\14»ÃÕb\ 3î«PcWø̱3¾¬B\90Ýá*²\ 1÷Uh²;\Q6à¾
+Yv\87«Ë\ 6ÜW¡Ìnð§4;âë*ÄÙ\1d®:\ep_\85>»Ã\15h\ 3î«\90hw¸\1amÀ}\15
+\9f\99\97U\bµ;\¥6à¾
+­v\87\ 6ÜW!×îpõÚ\80û*\14Û\15>\93í\8c\10mw¸ªmÀ}\15ºí\ e\r¸¯BºÝáj·\ 1÷U¨·+|æÛ\19_V!àîp\15Ü\80û*4Ü\1d®\88\ep_Í\19wg\8f\8e\e\84\92»¢gÊ\9díe\15\ e\r¸¯Æ\9e»£\1fA7À_\17!éî`5Ý@û*TÝ\15>³î\8c/«9ìîìQv\ 3m\9bÐvw´ân°}\15òî\ e\r¸¯æ»²\95xgÚ7!òîhUÞ`û*tÞ\1d®Ð\ep_Í©wg\8fÖ\e\84Ú»¢gî\9díe\15\82ï\ e\r¸¯BóÝá\8a¾\ 1÷UȾ;\Ý7à¾
+åw\85Ïô;ãË*Äß\1d®ú\ep_\85þ»Ã\15\80\ 3î«\90\80\1apÀ}\15
+\9f\19\97U\bÁ;\%8à¾
+-x\87+\ 6\aÜW!\aïpõà\80û*\14á\rþ\94\84G|]\85(¼ÃU\85\ 3î«Ð\85w¸ÂpÀ}\15Òð\ eW\e\ e¸¯B\1d^á3\ fÏø²
+\81x\87«\10\aÜW¡\11ïpEâ\80û*dâ\1d®N\1cp_\85R¼Âg*\9eñe\15\ eW-\ e¸¯B/Þá
\ 1÷UHÆ;\Í8à¾
+Õx\85Ïl<ãË*\84ã¡}nËqxA#\1dÿÒhï·ãá\ 5=Çã\8f¿\8f\9fãñëçß\rÛþÓ\97ãññÔ÷xüü\88Çÿ\8f_þøó_ýe\9eî\97Ï\7f$ÿô/zù¾\9dO\1f×\9d÷ísaû÷÷\8e¯n<÷åå\1dÖ\17t;\\8e\9fÿ@ãÅ\vz\81?\9eFÜWwðûáýãÜÚß\1fFÚ6_Ë\1fÛ\au?¿\97ôx\9aìeu\a¿\1cÞß/í{>\9eFÜWwðÛá|«íï\ f#m\9b;òöÉ\ßê÷üñ4Ú¾úº:9n\1fÍÛçß\86ip=\røºº\83o\1fÍçÏXvö÷\87\91¶Í\1dyûdη÷\96~<\8d¶¯îàÛGsz¯ßóÇÓ\88ûêkü´}4\9fÿ\94¸²\1f\ f\13í\9b;òåpû¸·\1f÷x\1am_ÝÁo\87Óý£}ÏÇÓ\88ûê\ e~?Üê·üÛ³\b\7f]ܹþ1ΣTð<º\92ée\15\8e®t¸\8e®\0î«pt¥Ãut\ 5p_\85£+\1d®£+\80û*\1c]©ðyt%ãË*\1c]ép\1d]\ 1ÜWáèJ\87ëè
+à¾
+GW:\GW\0÷U8ºRáóèJÆ\97U8ºÒá:º\ 2¸¯ÂÑ\95\ e×Ñ\15À}\15\8e®t¸\8e®\0î«pt¥ÂçÑ\95\8c/«pt¥Ãut\ 5p_\85£+\1d®£+\80û*\1c]ép\1d]\ 1ÜWáèJ\85Ï£+\19_VáèJ\87ëè
+à¾
+GW:\GW\0÷U8ºÒá:º\ 2¸¯ÂÑ\95
+\9fGW2¾¬ÂÑ\95\ e×Ñ\15À}\15\8e®t¸\8e®\0î«pt¥Ãut\ 5p_\85£+\15>\8f®d|Y\85£+\1d®£+\80û*\1c]ép\1d]\ 1ÜWáèJ\87ëè
+à¾
+GW*|\1e]Éø²
+GW:\GW\0÷U8ºÒá:º\ 2¸¯ÂÑ\95\ e×Ñ\15À}\15\8e®4øÓÑ\95\88¯«pt¥Ãut\ 5p_\85£+\1d®£+\80û*\1c]ép\1d]\ 1ÜWáèJ\85Ï£+\19_VóÑ\95Î\1eGW\80¶M8ºÒÑ:º\ 2¶¯ÂÑ\95\ e×Ñ\15À}5\1f]©l\1d]É´oÂÑ\95\8eÖÑ\15°}\15\8e®t¸\8e®\0î«ùèJg\8f£+@Û&\1c]©èyt%ÛË*\1c]ép\1d]\ 1ÜWóÑ\95Î\1eGW\80¶M8ºÒÑ:º\ 2¶¯ÂÑ\95
+\9fGW2¾¬æ£+\9d=\8e®\0m\9bpt¥£ut\ 5l_\85£+\1d®£+\80û*\1c]©ðyt%ãË*\1c]ép\1d]\ 1ÜWáèJ\87ëè
+à¾
+GW:\GW\0÷U8ºRáóèJÆ\97U8ºÒá:º\ 2¸¯ÂÑ\95\ e×Ñ\15À}\15\8e®t¸\8e®\0î«pt¥ÂçÑ\95\8c/«pt¥Ãut\ 5p_\85£+\1d®£+\80û*\1c]ép\1d]\ 1ÜWáèJ\85Ï£+\19_VáèJ\87ëè
+à¾
+GW:\GW\0÷U8ºÒá:º\ 2¸¯ÂÑ\95
+\9fGW2¾¬ÂÑ\95\ e×Ñ\15À}\15\8e®t¸\8e®\0î«pt¥Ãut\ 5p_\85£+\rþtt%âë*\1c]ép\1d]\ 1ÜWáèJ\87ëè
+à¾
+GW:\GW\0÷U8ºRáóèJÆ\97U8ºÒá:º\ 2¸¯ÂÑ\95\ e×Ñ\15À}\15\8e®t¸\8e®\0î«pt¥ÂçÑ\95\8c/«pt¥Ãut\ 5p_\85£+\1d®£+\80û*\1c]ép\1d]\ 1ÜWáèJ\85Ï£+\19_VáèJ\87ëè
+à¾
+GW:\GW\0÷Õ|t¥³ÇÑ\15 m\13\8e®Tô<º\92íe\15\8e®t¸\8e®\0î«ñèJG?\8e®\0üu\11\8e®t°\8e®\0í«pt¥ÂçÑ\95\8c/«ùèJg\8f£+@Û&\1c]éh\1d]\ 1ÛWáèJ\87ëè
+à¾\9a\8f®T¶\8e®dÚ7áèJGëè
+GW:\GW\0÷Õ|t¥³ÇÑ\15 m\13\8e®Tô<º\92íe\15\8e®t¸\8e®\0î«pt¥Ãut\ 5p_\85£+\1d®£+\80û*\1c]©ðyt%ãË*\1c]ép\1d]\ 1ÜWáèJ\87ëè
+à¾
+GW:\GW\0÷U8ºRáóèJÆ\97U8ºÒá:º\ 2¸¯ÂÑ\95\ e×Ñ\15À}\15\8e®t¸\8e®\0î«pt¥Á\9f\8e®D|]\85£+\1d®£+\80û*\1c]ép\1d]\ 1ÜWáèJ\87ëè
+à¾
+GW*|\1e]Éø²
+GW:\GW\0÷U8ºÒá:º\ 2¸¯ÂÑ\95\ e×Ñ\15À}\15\8e®Tø<º\92ñe\15\8e®t¸\8e®\0î«pt¥Ãut\ 5p_\85£+\1d®£+\80û*\1c]©ðyt%ãË*\1c]\89ÇCº£+ð\82ÆÑ\95ç\17tÞ?º\12^Ðrtå
+GWÞÞ\ e\1fÇ÷w8º2\9eú~tåò8ºò\ fÿöÇ_\7fþË__^9¹}þRñiÜ_Âùðv9½í\9e]\19×GòË\e×G\9e_^¸>òâå¤ë#Ù^VáúH\87ëú\bà¾\9a¯\8ftö¸>\ 2´mÂõ\91\8eÖõ\11°}\15®\8f4øÓõ\91\88¯«ùúHg\8fë#@Û&\\1féh]\1f\ 1ÛWáúH\87ëú\bà¾\9a¯\8fT¶®\8fdÚ7áúHGëú\bؾ
+×G:\×G\0÷Õx}¤£\1f×G\0þº\b×G*x^\1fÉô²
+×G:\×G\0÷U¸>Òáº>\ 2¸¯Âõ\91\ e×õ\11À}\15®\8fTø¼>\92ñe\15®\8ft¸®\8f\0î«p}¤Ãu}\ 4p_\85ë#\1d®ë#\80û*\\1f©ðy}$ãË*\\1fép]\1f\ 1ÜWáúH\87ëú\bà¾
+×G:\×G\0÷U¸>RáóúHÆ\97U¸>Òáº>\ 2¸¯Âõ\91\ e×õ\11À}\15®\8ft¸®\8f\0î«p}¤Âçõ\91\8c/«p}¤Ãu}\ 4p_\85ë#\1d®ë#\80û*\\1fép]\1f\ 1ÜWáúH\85Ïë#\19_VáúH\87ëú\bà¾
+×G:\×G\0÷U¸>Òáº>\ 2¸¯Âõ\91
+\9f×G2¾¬Âõ\91\ e×õ\11À}\15®\8ft¸®\8f\0î«p}¤Ãu}\ 4p_\85ë#\15\8fd|Y\85ë#\1d®ë#\80û*\\1fép]\1f\ 1ÜWáúH\87ëú\bà¾
+×G\1aüéúHÄ×U¸>Òáº>\ 2¸¯Âõ\91\ e×õ\11À}\15®\8ft¸®\8f\0î«p}¤Âçõ\91\8c/«ùúHg\8fë#@Û&\\1féh]\1f\ 1ÛWáúH\87ëú\bà¾\9a¯\8fT¶®\8fdÚ7áúHGëú\bؾ
+×G:\×G\0÷Õ|}¤³Çõ\11 m\13®\8fTô¼>\92íe\15®\8ft¸®\8f\0î«ùúHg\8fë#@Û&\\1féh]\1f\ 1ÛWáúH\85Ïë#\19_Vóõ\91Î\1e×G\80¶M¸>ÒѺ>\ 2¶¯Âõ\91\ e×õ\11À}\15®\8fTø¼>\92ñe\15®\8ft¸®\8f\0î«p}¤Ãu}\ 4p_\85ë#\1d®ë#\80û*\\1f©ðy}$ãË*\\1fép]\1f\ 1ÜWáúH\87ëú\bà¾
+×G:\×G\0÷U¸>RáóúHÆ\97U¸>Òáº>\ 2¸¯Âõ\91\ e×õ\11À}\15®\8ft¸®\8f\0î«p}¤Âçõ\91\8c/«p}¤Ãu}\ 4p_\85ë#\1d®ë#\80û*\\1fép]\1f\ 1ÜWáúH\85Ïë#\19_VáúH\87ëú\bà¾
+×G:\×G\0÷U¸>Òáº>\ 2¸¯Âõ\91\ 6\7fº>\12ñu\15®\8ft¸®\8f\0î«p}¤Ãu}\ 4p_\85ë#\1d®ë#\80û*\\1f©ðy}$ãË*\\1fép]\1f\ 1ÜWáúH\87ëú\bà¾
+×G:\×G\0÷U¸>RáóúHÆ\97U¸>Òáº>\ 2¸¯Âõ\91\ e×õ\11À}\15®\8ft¸®\8f\0î«p}¤Âçõ\91\8c/«p}¤Ãu}\ 4p_\85ë#\1d®ë#\80ûj¾>ÒÙãú\bж  ×G*z^\1fÉö²
+×G:\×G\0÷Õx}¤£\1f×G\0þº\b×G:X×G\80öU¸>RáóúHÆ\97Õ|}¤³Çõ\11 m\13®\8ft´®\8f\80í«p}¤Ãu}\ 4p_Í×G*[×G2í\9bp}¤£u}\ 4l_\85ë#\1d®ë#\80ûj¾>ÒÙãú\bж      ×G*z^\1fÉö²
+×G:\×G\0÷U¸>Òáº>\ 2¸¯Âõ\91\ e×õ\11À}\15®\8fTø¼>\92ñe\15®\8ft¸®\8f\0î«p}¤Ãu}\ 4p_\85ë#\1d®ë#\80û*\\1f©ðy}$ãË*\\1fép]\1f\ 1ÜWáúH\87ëú\bà¾
+×G:\×G\0÷U¸>ÒàO×G"¾®Âõ\91\ e×õ\11À}\15®\8ft¸®\8f\0î«p}¤Ãu}\ 4p_\85ë#\15\8fd|Y\85ë#\1d®ë#\80û*\\1fép]\1f\ 1ÜWáúH\87ëú\bà¾
+×G*|^\1fÉø²
+×G:\×G\0÷U¸>Òáº>\ 2¸¯Âõ\91\ e×õ\11À}\15®\8fTø¼>\92ñe\15®\8f\84\e\1aíõ\11xAãúÈó\v
+×GÂ\v\8f¼Áõ\91Ëi{êv\81ë#ã©ï×GÞ\1e×GþÛ\1f\7fÿ§\9f\7fýß\7fÿ?¾ÿ\8f\7fý×\9fÿøǵ[Þþbvüü!â'É_Ïg\1fxûØy\e\9f*îøbgÅýüjCÅýâ\ 5¥\8a\ep_\85\8a»ÃUq\ 3î«PqWø¬¸3¾¬BÅÝ᪸\ 1÷U¨¸;\\157à¾
+\15w\87«â\ 6ÜW¡â®ðYqg|Y\85\8a»ÃUq\ 3î«Pqw¸*nÀ}\15\ e\r¸¯BÅ]á³âÎø²
+\15w\87«â\ 6ÜW¡âîpUÜ\80û*TÜ\1d®\8a\ep_\85\8a»ÂgÅ\9dñe\15\ e\r¸¯BÅÝ᪸\ 1÷U¨¸;\\157à¾
+\15w\85Ï\8a;ãË*TÜ\1d®\8a\ep_\85\8a»ÃUq\ 3î«Pqw¸*nÀ}\15
+\9f\15\97U¨¸;\\157à¾
+\15w\87«â\ 6ÜW¡âîpUÜ\80û*TÜ\15>+î\8c/«Pqw¸*nÀ}\15\ e\r¸¯BÅÝ᪸\ 1÷U¨¸\eü©â\8eøº
+\15w\87«â\ 6ÜW¡âîpUÜ\80û*TÜ\1d®\8a\ep_\85\8a»ÂgÅ\9dñe5WÜ\9d=*n m\13\8e\r¶¯BÅÝ᪸\ 1÷Õ\qW¶*îLû&TÜ\1d­\8a\el_\85\8a»ÃUq\ 3âîìQq\ 3m\9bPqWô¬¸³½¬BÅÝ᪸\ 1÷Õ\qwö¨¸\81¶M¨¸;Z\157ؾ
+\15w\85Ï\8a;ãËj®¸;{TÜ@Û&TÜ\1d­\8a\el_\85\8a»ÃUq\ 3î«PqWø¬¸3¾¬BÅÝ᪸\ 1÷U¨¸;\\157à¾
+\15w\87«â\ 6ÜW¡â®ðYqg|Y\85\8a»ÃUq\ 3î«Pqw¸*nÀ}\15\ e\r¸¯BÅ]á³âÎø²
+\15w\87«â\ 6ÜW¡âîpUÜ\80û*TÜ\1d®\8a\ep_\85\8a»ÂgÅ\9dñe\15\ e\r¸¯BÅÝ᪸\ 1÷U¨¸;\\157à¾
+\15w\85Ï\8a;ãË*TÜ\1d®\8a\ep_\85\8a»ÃUq\ 3î«Pqw¸*nÀ}\15\ 6\7fª¸#¾®BÅÝ᪸\ 1÷U¨¸;\\157à¾
+\15w\87«â\ 6ÜW¡â®ðYqg|Y\85\8a»ÃUq\ 3î«Pqw¸*nÀ}\15\ e\r¸¯BÅ]á³âÎø²
+\15w\87«â\ 6ÜW¡âîpUÜ\80û*TÜ\1d®\8a\ep_\85\8a»ÂgÅ\9dñe\15\ e\r¸¯BÅÝ᪸\ 1÷Õ\qwö¨¸\81¶M¨¸+zVÜÙ^V¡âîpUÜ\80ûj¬¸;úQq\ 3üu\11\ e\r´¯BÅ]á³âÎø²\9a+îÎ\1e\157ж    \15wG«â\ 6ÛW¡âîpUÜ\80ûj®¸+[\15w¦}\13\8e\r¶¯BÅÝ᪸\ 1÷Õ\qwö¨¸\81¶M¨¸+zVÜÙ^V¡âîpUÜ\80û*TÜ\1d®\8a\ep_\85\8a»ÃUq\ 3î«PqWø¬¸3¾¬BÅÝ᪸\ 1÷U¨¸;\\157à¾
+\15w\87«â\ 6ÜW¡â®ðYqg|Y\85\8a»ÃUq\ 3î«Pqw¸*nÀ}\15\ e\r¸¯BÅÝàO\15wÄ×U¨¸;\\157à¾
+\15w\87«â\ 6ÜW¡âîpUÜ\80û*TÜ\15>+î\8c/«Pqw¸*nÀ}\15\ e\r¸¯BÅÝ᪸\ 1÷U¨¸+|VÜ\19_V¡âîpUÜ\80û*TÜ\1d®\8a\ep_\85\8a»ÃUq\ 3î«PqWø¬¸3¾¬BÅ\1dòã¶â\86\174*îç\17\14*îð\82þöít?¼]>ÿ±ýö\1fêËÛöoóeÅ}úØþC÷íǾO·í/6\97û|i÷ç\8c{<§Ç¾½´×\15÷ßý·ÿüý¿ù§\9f\7fý×_þð×W!ïñÛ_×\9eÌõ\1d½m\7f\12Þ\vºgÜ\e\8c{\9f_v\88{_¼ \14÷\ 2î«\10÷v¸â^À}\15âÞ
+\9fqoÆ\97U\88{;\q/à¾
+qo\87\ 5ÜW!îípŽ\80û*Ľ\15>ãÞ\8c\10÷v¸â^À}\15âÞ\ e\v¸¯BÜÛá\8a{\ 1÷U\88{+|ƽ\19_V!îípŽ\80û*Ľ\1d®¸\17p_\85¸·Ã\15÷\ 2î«\10÷Vø\8c{3¾¬BÜÛá\8a{\ 1÷U\88{;\q/à¾
+qo\87\ 5ÜW!î­ð\19÷f|Y\85¸·Ã\15÷\ 2î«\10÷v¸â^À}\15âÞ\ e\v¸¯BÜ[á3îÍø²
+qo\87\ 5ÜW!îípŽ\80û*Ľ\1d®¸\17p_\85¸·Á\9fâÞ\88¯«\10÷v¸â^À}\15âÞ\ e\v¸¯BÜÛá\8a{\ 1÷U\88{+|ƽ\19_VsÜÛÙ#î\ 5Ú6!îíhŽ`û*Ľ\1d®¸\17p_Íqoe+îÍ´oBÜÛÑ\8a{ÁöU\88{;\q/à¾\9aãÞÎ\1eq/ж    qoEϸ7ÛË*Ľ\1d®¸\17p_Íqog\8f¸\17\84¸·£\15÷\82í«\10÷Vø\8c{3¾¬æ¸·³GÜ\v´mBÜÛÑ\8a{ÁöU\88{;\q/à¾
+qo\85ϸ7ãË*Ľ\1d®¸\17p_\85¸·Ã\15÷\ 2î«\10÷v¸â^À}\15âÞ
+\9fqoÆ\97U\88{;\q/à¾
+qo\87\ 5ÜW!îípŽ\80û*Ľ\15>ãÞ\8c\10÷v¸â^À}\15âÞ\ e\v¸¯BÜÛá\8a{\ 1÷U\88{+|ƽ\19_V!îípŽ\80û*Ľ\1d®¸\17p_\85¸·Ã\15÷\ 2î«\10÷Vø\8c{3¾¬BÜÛá\8a{\ 1÷U\88{;\q/à¾
+qo\87\ 5ÜW!îmð§¸7âë*Ľ\1d®¸\17p_\85¸·Ã\15÷\ 2î«\10÷v¸â^À}\15âÞ
+\9fqoÆ\97U\88{;\q/à¾
+qo\87\ 5ÜW!îípŽ\80û*Ľ\15>ãÞ\8c\10÷v¸â^À}\15âÞ\ e\v¸¯BÜÛá\8a{\ 1÷U\88{+|ƽ\19_V!îípŽ\80û*Ľ\1d®¸\17p_Íqog\8f¸\17\84¸·¢gÜ\9bíe\15âÞ\ e\v¸¯Æ¸·£\1fq/À_\17!îí`Ž@û*Ľ\15>ãÞ\8c/«9îíì\11÷\ 2m\9b\10÷v´â^°}\15âÞ\ e\v¸¯æ¸·²\15÷fÚ7!îíhŽ`û*Ľ\1d®¸\17p_Íqog\8f¸\17\84¸·¢gÜ\9bíe\15âÞ\ e\v¸¯BÜÛá\8a{\ 1÷U\88{;\q/à¾
+qo\85ϸ7ãË*Ľ\1d®¸\17p_\85¸·Ã\15÷\ 2î«\10÷v¸â^À}\15âÞ
+\9fqoÆ\97U\88{;\q/à¾
+qo\87\ 5ÜW!îípŽ\80û*Ľ\rþ\14÷F|]\85¸·Ã\15÷\ 2î«\10÷v¸â^À}\15âÞ\ e\v¸¯BÜ[á3îÍø²
+qo\87\ 5ÜW!îípŽ\80û*Ľ\1d®¸\17p_\85¸·ÂgÜ\9bñe\15âÞ\ e\v¸¯BÜÛá\8a{\ 1÷U\88{;\q/à¾
+qo\85ϸ7ãË*Ľ1Eíâ^xA#î}~A×ý¸7¼ ç¯hNq¯¾¢ùxÚ~Óz¢¯h\1eO}O{O\8f¸÷ïþð\87íÿýåç¿þõw?Ý\8f?þÇ\9f\7f^\vÖãáòþù³´OÎú&nOÜv{^}Sp|©ó\9b\82\9f_kø¦à\17/(ÅÄ\80û*ÄÄ\1d®\98\18p_\85\98¸Ã\15\13\ 3î«\10\13\8c\893¾¬BLÜá\8a\89\ 1÷U\88\89;\11à¾
+1q\87+&\ 6ÜW!&®ð\19\13g|Y\85\98¸Ã\15\13\ 3î«\10\13w¸bbÀ}\15\ eWL\f¸¯BL\á3&Îø²
+1q\87+&\ 6ÜW!&îpÅÄ\80û*ÄÄ\1d®\98\18p_\85\98¸ÂgL\9cñe\15\ eWL\f¸¯BLÜá\8a\89\ 1÷U\88\89;\11à¾
+1q\85Ï\988ãË*ÄÄ\1d®\98\18p_\85\98¸Ã\15\13\ 3î«\10\13w¸bbÀ}\15
+\9f1qÆ\97U\88\89;\11à¾
+1q\87+&\ 6ÜW!&îpÅÄ\80û*ÄÄ\rþ\14\13G|]\85\98¸Ã\15\13\ 3î«\10\13w¸bbÀ}\15\ eWL\f¸¯BL\á3&Îø²\9acâÎ\1e11ж 1qG+&\ 6ÛW!&îpÅÄ\80ûj\8e\89+[1q¦}\13\8eVL\f¶¯BLÜá\8a\89\ 1÷Õ\1c\13\88\89\81¶M\88\89+zÆÄÙ^V!&îpÅÄ\80ûj\8e\89;{ÄÄ@Û&ÄÄ\1d­\98\18l_\85\98¸ÂgL\9cñe5ÇÄ\9d=bb m\13\8eVL\f¶¯BLÜá\8a\89\ 1÷U\88\89+|ÆÄ\19_V!&îpÅÄ\80û*ÄÄ\1d®\98\18p_\85\98¸Ã\15\13\ 3î«\10\13\8c\893¾¬BLÜá\8a\89\ 1÷U\88\89;\11à¾
+1q\87+&\ 6ÜW!&®ð\19\13g|Y\85\98¸Ã\15\13\ 3î«\10\13w¸bbÀ}\15\ eWL\f¸¯BL\á3&Îø²
+1q\87+&\ 6ÜW!&îpÅÄ\80û*ÄÄ\1d®\98\18p_\85\98¸ÂgL\9cñe\15\ eWL\f¸¯BLÜá\8a\89\ 1÷U\88\89;\11à¾
+1q\83?ÅÄ\11_W!&îpÅÄ\80û*ÄÄ\1d®\98\18p_\85\98¸Ã\15\13\ 3î«\10\13\8c\893¾¬BLÜá\8a\89\ 1÷U\88\89;\11à¾
+1q\87+&\ 6ÜW!&®ð\19\13g|Y\85\98¸Ã\15\13\ 3î«\10\13w¸bbÀ}\15\ eWL\f¸¯BL\á3&Îø²
+1q\87+&\ 6ÜW!&îpÅÄ\80ûj\8e\89;{ÄÄ@Û&ÄÄ\15=câl/«\10\13w¸bbÀ}5ÆÄ\1dý\88\89\ 1þº\b1q\a+&\ 6ÚW!&®ð\19\13g|YÍ1qg\8f\98\18\84\98¸£\15\13\83í«\10\13w¸bbÀ}5ÇÄ\95­\988Ó¾     1qG+&\ 6ÛW!&îpÅÄ\80ûj\8e\89;{ÄÄ@Û&ÄÄ\15=câl/«\10\13w¸bbÀ}\15\ eWL\f¸¯BLÜá\8a\89\ 1÷U\88\89+|ÆÄ\19_V!&îpÅÄ\80û*ÄÄ\1d®\98\18p_\85\98¸Ã\15\13\ 3î«\10\13\8c\893¾¬BLÜá\8a\89\ 1÷U\88\89;\11à¾
+1q\87+&\ 6ÜW!&nð§\988âë*ÄÄ\1d®\98\18p_\85\98¸Ã\15\13\ 3î«\10\13w¸bbÀ}\15
+\9f1qÆ\97U\88\89;\11à¾
+1q\87+&\ 6ÜW!&îpÅÄ\80û*ÄÄ\15>câ\8c\10\13w¸bbÀ}\15\ eWL\f¸¯BLÜá\8a\89\ 1÷U\88\89+|ÆÄ\19_V!&\8e\1dl\17\13Ã\v\1a1ñó\v
+1qxAÏ1ñãïãÇ\98øz¿\1f.Û¯hsL¬§¾ÇÄçÝ\98øÛ\7fýåñÿù*ü9\7fl\7fQ}F×wtû_\8b\9d®X)P~ÕzîËËÞO\81\9c\90\ 2\11î«9\ 5\91\ 2\11î«9\ 5êp¥@\80/«9\ 5\91\ 2\11î«9\ 5\91\ 2\11î«9\ 5\91\ 2\11î«9\ 5êp¥@\80/«9\ 5\91\ 2\11î«9\ 5\91\ 2\11î«9\ 5\91\ 2\11î«9\ 5ªð\99\ 2e|]Í)P\89\8f\14\88p_Í)P\89\8f\14\88p_Í)P\89\8f\14\88p_Í)P\87+\ 5\ 2|Y\8d)Pi?R ¢m3§@%=R ²}5§@%>R Â}5¦@\9d=R  }3§@%=R ²}5§@%>R Â}5¦@¥ýH\81\88¶Í\9c\ 2u´R °\97Õ\9c\ 2\95øH\81\b÷Õ\98\ 2\95ö#\ 5"Ú6s
+TÒ#\ 5"ÛWs
+ÔáJ\81\0_Vc
+TÚ\8f\14\88hÛÌ)PI\8f\14\88l_Í)P\89\8f\14\88p_Í)P\87+\ 5\ 2|YÍ)P\89\8f\14\88p_Í)P\89\8f\14\88p_Í)P\89\8f\14\88p_Í)P\87+\ 5\ 2|YÍ)P\89\8f\14\88p_Í)P\89\8f\14\88p_Í)P\89\8f\14\88p_Í)P\87+\ 5\ 2|YÍ)P\89\8f\14\88p_Í)P\89\8f\14\88p_Í)P\89\8f\14\88p_Í)P\87+\ 5\ 2|YÍ)P\89\8f\14\88p_Í)P\89\8f\14\88p_Í)P\89\8f\14\88p_Í)P\87+\ 5\ 2|YÍ)P\89\8f\14\88p_Í)P\89\8f\14\88p_Í)P\89\8f\14\88p_Í)P\85Ï\14(ãëjN\81J|¤@\84ûjN\81J|¤@\84ûjN\81J|¤@\84ûjN\81:\)\10àËjN\81J|¤@\84ûjN\81J|¤@\84ûjN\81J|¤@\84ûjN\81:\)\10àËjN\81J|¤@\84ûjN\81J|¤@\84ûjN\81J|¤@\84ûjN\81:\)\10àËjN\81J|¤@\84ûjN\81J|¤@\84ûjL\81\91\ 2\11m\9b9\ 5êh¥@`/«9\ 5\91\ 2\11î«)\ 5*éï)\10Á_\17s
+TÂ#\ 5"ÚWs
+ÔáJ\81\0_Vc
+TÚ\8f\14\88hÛÌ)PI\8f\14\88l_Í)P\89\8f\14\88p_\8d)Pg\8f\14\bhßÌ)PI\8f\14\88l_Í)P\89\8f\14\88p_\8d)Pi?R ¢m3§@\1d­\14\bìe5§@%>R Â}5§@%>R Â}5§@%>R Â}5§@\1d®\14\bðe5§@%>R Â}5§@%>R Â}5§@%>R Â}5§@\1d®\14\bðe5§@%>R Â}5§@%>R Â}5§@%>R Â}5§@\15>S \8c¯«9\ 5\91\ 2\11î«9\ 5\91\ 2\11î«9\ 5\91\ 2\11î«9\ 5êp¥@\80/«9\ 5\91\ 2\11î«9\ 5\91\ 2\11î«9\ 5\91\ 2\11î«9\ 5êp¥@\80/«9\ 5\91\ 2\11î«9\ 5\91\ 2\11î«9\ 5\91\ 2\11î«9\ 5êp¥@\80/«9\ 5ÊáJ\95\ 2Ñ\vz¤@_^Ð~
+\94^ÐoN\81Þ?ÿFÜý
+)Ðxê{
+t\99\7fúå\97_ÿû¯¿ÿuýFÁí?Ö\97ëç\ f>=    þ:N\9f?äû¾Wþ\9cî\87oÿd0¾ÄÇS_^áú\ 3ùçÓáôþù\8b×\17/f\85ÇÓD/«;øåp»\9d.-þx\1aq_ÝÁo\87Óõó\17¯\1dþx\1aq_ÝÁ·Ïæí\¿í\8f§\11÷Õ\9dïQ||Ñd\87ëë+\ 1_Vó×W\96øøúJÂ}5\7f}e\89\8f¯¯$ÜWó×W\96øøúJÂ}5\7f}e\87ëë+\ 1_Vó×W\96øøúJÂ}5\7f}e\89\8f¯¯$ÜWó×W\96øøúJÂ}5\7f}e\87ëë+\ 1_Vó×W\96øøúJÂ}5\7f}e\89\8f¯¯$ÜWó×W\96øøúJÂ}5\7f}e\87ëë+\ 1_Vó×W\96øøúJÂ}5\7f}e\89\8f¯¯$ÜWó×W\96øøúJÂ}5\7f}e\87ëë+\ 1_Vó×W\96¸\9auÀ}\15\9aõ\ e\ e¸¯B³ÞájÖ\ 1÷UhÖ+|6ë\19_V¡Yïp5ë\80û*4ë\1d®f\1dp_\85f½ÃÕ¬\ 3î«Ð¬WølÖ3¾¬B³ÞájÖ\ 1÷UhÖ;\Í:à¾
+Íz\87«Y\aÜW¡Yoð§f=âë*4ë\1d®f\1dp_\85f½ÃÕ¬\ 3î«Ð¬w¸\9auÀ}\15\9aõ
+\9fÍzÆ\97ÕܬwöhÖ\81¶MhÖ;ZÍ:ؾ
+Íz\87«Y\aÜWs³^ÙjÖ3í\9bЬw´\9au°}\15\9aõ\ e\ e¸¯æf½³G³\ e´mB³^ѳYÏö²
+Íz\87«Y\aÜWs³ÞÙ£Y\aÚ6¡Yïh5ë`û*4ë\15>\9bõ\8c/«¹YïìѬ\ 3m\9bЬw´\9au°}\15\9aõ\ e\ e¸¯B³^á³YÏø²
+Íz\87«Y\aÜW¡Yïp5ë\80û*4ë\1d®f\1dp_\85f½Âg³\9eñe\15\9aõ\ e\ e¸¯B³ÞájÖ\ 1÷UhÖ;\Í:à¾
+Íz\85Ïf=ãË*4ë\1d®f\1dp_\85f½ÃÕ¬\ 3î«Ð¬w¸\9auÀ}\15\9aõ
+\9fÍzÆ\97UhÖ;\Í:à¾
+Íz\87«Y\aÜW¡Yïp5ë\80û*4ë\15>\9bõ\8c/«Ð¬w¸\9auÀ}\15\9aõ\ e\ e¸¯B³ÞájÖ\ 1÷UhÖ\eü©Y\8føº
+Íz\87«Y\aÜW¡Yïp5ë\80û*4ë\1d®f\1dp_\85f½Âg³\9eñe\15\9aõ\ e\ e¸¯B³ÞájÖ\ 1÷UhÖ;\Í:à¾
+Íz\85Ïf=ãË*4ë\1d®f\1dp_\85f½ÃÕ¬\ 3î«Ð¬w¸\9auÀ}\15\9aõ
+\9fÍzÆ\97UhÖ;\Í:à¾
+Íz\87«Y\aÜWs³ÞÙ£Y\aÚ6¡Y¯èÙ¬g{Y\85f½ÃÕ¬\ 3YïèG³\ eð×EhÖ;XÍ:о
+Íz\85Ïf=ãËjnÖ;{4ë@Û&4ë\1d­f\1dl_\85f½ÃÕ¬\ 3Y¯l5ë\99öMhÖ;ZÍ:ؾ
+Íz\87«Y\aÜWs³ÞÙ£Y\aÚ6¡Y¯èÙ¬g{Y\85f½ÃÕ¬\ 3î«Ð¬w¸\9auÀ}\15\9aõ\ e\ e¸¯B³^á³YÏø²
+Íz\87«Y\aÜW¡Yïp5ë\80û*4ë\1d®f\1dp_\85f½Âg³\9eñe\15\9aõ\ e\ e¸¯B³ÞájÖ\ 1÷UhÖ;\Í:à¾
+Íz\83?5ë\11_W¡Yïp5ë\80û*4ë\1d®f\1dp_\85f½ÃÕ¬\ 3î«Ð¬WølÖ3¾¬B³ÞájÖ\ 1÷UhÖ;\Í:à¾
+Íz\87«Y\aÜW¡Y¯ðÙ¬g|Y\85f½ÃÕ¬\ 3î«Ð¬w¸\9auÀ}\15\9aõ\ e\ e¸¯B³^á³YÏø²
+Íz\88®Ûf\1d^ÐhÖ\9f_Ðm¿Y\ f/è77ëÛo\1cßNï'hÖÇSß\9bõ·Ù¬ÿý/\7fú\97\7fø·?¾HÖ?s\9c\8f\1f\9e÷×7ï|úØ/Ö/\87ÛÇ·¿¥\16_âã¹Û×׸þHþé¶ýòõó\17î/^Ð\vüñ4⾺\83\7fïê;úQê\ 3üu\11
+\9e¥~¦\97U(õ;\¥>à¾
+¥~\87«Ô\aÜW¡Ôïp\95ú\80û*\94ú\15>Ký\8c/«Pêw¸J}À}\15\ e\ f¸¯B©ßá*õ\ 1÷U(õ+|\96ú\19_V¡Ôïp\95ú\80û*\94ú\1d®R\1fp_\85R¿ÃUê\ 3î«PêWø,õ3¾¬B©ßá*õ\ 1÷U(õ;\¥>à¾
+¥~\87«Ô\aÜW¡Ô¯ðYêg|Y\85R¿ÃUê\ 3î«Pêw¸J}À}\15\ e\ f¸¯B©_á³ÔÏø²
+¥~\87«Ô\aÜW¡Ôïp\95ú\80û*\94ú\1d®R\1fp_\85R¿Âg©\9fñe\15\ e\ f¸¯B©ßá*õ\ 1÷U(õ;\¥>à¾
+¥~\85ÏR?ãË*\94ú\1d®R\1fp_\85R¿ÃUê\ 3î«Pêw¸J}À}\15\ 6\7f*õ#¾®B©ßá*õ\ 1÷U(õ;\¥>à¾
+¥~\87«Ô\aÜW¡Ô¯ðYêg|YÍ¥~g\8fR\1f\84R¿£Uê\83í«Pêw¸J}À}5\97ú\95­R?Ó¾   ¥~G«Ô\aÛW¡Ôïp\95ú\80ûj.õ;{\94ú@Û&\94ú\15=Kýl/«Pêw¸J}À}5\97ú\9d=J} m\13\8e\ f¶¯B©_á³ÔÏø²\9aKýÎ\1e¥>ж ¥~G«Ô\aÛW¡Ôïp\95ú\80û*\94ú\15>Ký\8c/«Pêw¸J}À}\15\ e\ f¸¯B©ßá*õ\ 1÷U(õ+|\96ú\19_V¡Ôïp\95ú\80û*\94ú\1d®R\1fp_\85R¿ÃUê\ 3î«PêWø,õ3¾¬B©ßá*õ\ 1÷U(õ;\¥>à¾
+¥~\87«Ô\aÜW¡Ô¯ðYêg|Y\85R¿ÃUê\ 3î«Pêw¸J}À}\15\ e\ f¸¯B©_á³ÔÏø²
+¥~\87«Ô\aÜW¡Ôïp\95ú\80û*\94ú\1d®R\1fp_\85R¿Á\9f\88¯«Pêw¸J}À}\15\ e\ f¸¯B©ßá*õ\ 1÷U(õ+|\96ú\19_V¡Ôïp\95ú\80û*\94ú\1d®R\1fp_\85R¿ÃUê\ 3î«PêWø,õ3¾¬B©ßá*õ\ 1÷U(õ;\¥>à¾
+¥~\87«Ô\aÜW¡Ô¯ðYêg|Y\85R¿ÃUê\ 3î«Pêw¸J}À}5\97ú\9d=J} m\13\8a\9e¥~¶\97U(õ;\¥>à¾\1a\8e~\94ú\0\7f]\84R¿\83\ 3í«PêWø,õ3¾¬æR¿³G©\ f´mB©ßÑ*õÁöU(õ;\¥>à¾\9aKýÊV©\9f\84R¿£Uê\83í«Pêw¸J}À}5\97ú\9d=J} m\13\8a\9e¥~¶\97U(õ;\¥>à¾
+¥~\87«Ô\aÜW¡Ôïp\95ú\80û*\94ú\15>Ký\8c/«Pêw¸J}À}\15\ e\ f¸¯B©ßá*õ\ 1÷U(õ+|\96ú\19_V¡Ôïp\95ú\80û*\94ú\1d®R\1fp_\85R¿ÃUê\ 3î«Pê7øS©\1fñu\15\ e\ f¸¯B©ßá*õ\ 1÷U(õ;\¥>à¾
+¥~\85ÏR?ãË*\94ú\1d®R\1fp_\85R¿ÃUê\ 3î«Pêw¸J}À}\15
+\9f¥~Æ\97U(õ;\¥>à¾
+¥~\87«Ô\aÜW¡Ôïp\95ú\80û*\94ú\15>Ký\8c/«PêÇؼ+õá\ 5\8dRÿù\ 5½ï\97úá\ 5-¥þ\15Jý·\8fí¿¹Þ Ô\1fO}/õ¯k©ÿ»\9fîÇ\1f\7fù¯¿üáç\7füË/ÿþçWÁÑûg®ðÄ­ïåéóçúwÂýÙ ÅW<\e¤ç\97\1c\1a¤\17/(5H\80û*4H\1d®\ 6    p_\85\ 6©ÃÕ \ 1î«Ð Uøl\902¾¬B\83Ôáj\90\0÷Uh\90:\\r\12à¾
+\rR\87«A\ 2ÜW¡AªðÙ e|Y\85\ 6©ÃÕ \ 1î«Ð u¸\1a$À}\15\1a¤\ eW\83\ 4¸¯B\83ÔàO\rRÄ×Uh\90:\\r\12à¾
+\rR\87«A\ 2ÜW¡Aêp5H\80û*4H\15>\e¤\8c/«¹AêìÑ \ 1m\9bРu´\1a$°}\15\1a¤\ eW\83\ 4¸¯æ\ 6©²Õ eÚ7¡Aêh5H`û*4H\1d®\ 6    p_Í\rRg\8f\ 6        hÛ\84\ 6©¢g\83\94íe\15\1a¤\ eW\83\ 4¸¯æ\ 6©³G\83\ 4´mB\83ÔÑj\90ÀöUh\90*|6H\19_Vs\83ÔÙ£A\ 2Ú6¡Aêh5H`û*4H\1d®\ 6  p_\85\ 6©Âg\83\94ñe\15\1a¤\ eW\83\ 4¸¯B\83Ôáj\90\0÷Uh\90:\\r\12à¾
+\rR\85Ï\ 6)ãË*4H\1d®\ 6 p_\85\ 6©ÃÕ \ 1î«Ð u¸\1a$À}\15\1a¤
+\9f\r\97Uh\90:\\r\12à¾
+\rR\87«A\ 2ÜW¡Aêp5H\80û*4H\15>\e¤\8c/«Ð u¸\1a$À}\15\1a¤\ eW\83\ 4¸¯B\83Ôáj\90\0÷Uh\90*|6H\19_V¡Aêp5H\80û*4H\1d®\ 6    p_\85\ 6©ÃÕ \ 1î«Ð 5øS\83\14ñu\15\1a¤\ eW\83\ 4¸¯B\83Ôáj\90\0÷Uh\90:\\r\12à¾
+\rR\85Ï\ 6)ãË*4H\1d®\ 6 p_\85\ 6©ÃÕ \ 1î«Ð u¸\1a$À}\15\1a¤
+\9f\r\97Uh\90:\\r\12à¾
+\rR\87«A\ 2ÜW¡Aêp5H\80û*4H\15>\e¤\8c/«Ð u¸\1a$À}\15\1a¤\ eW\83\ 4¸¯æ\ 6©³G\83\ 4´mB\83TѳAÊö²
+\rR\87«A\ 2ÜWc\83ÔÑ\8f\ 6 à¯\8bРu°\1a$ }\15\1a¤
+\9f\r\97ÕÜ uöh\90\80¶Mh\90:Z\r\12ؾ
+\rR\87«A\ 2ÜWs\83TÙj\90\9bРu´\1a$°}\15\1a¤\ eW\83\ 4¸¯æ\ 6©³G\83\ 4´mB\83TѳAÊö²
+\rR\87«A\ 2ÜW¡Aêp5H\80û*4H\1d®\ 6 p_\85\ 6©Âg\83\94ñe\15\1a¤\ eW\83\ 4¸¯B\83Ôáj\90\0÷Uh\90:\\r\12à¾
+\rR\85Ï\ 6)ãË*4H\1d®\ 6 p_\85\ 6©ÃÕ \ 1î«Ð u¸\1a$À}\15\1a¤\ 6\7fj\90"¾®B\83Ôáj\90\0÷Uh\90:\\r\12à¾
+\rR\87«A\ 2ÜW¡AªðÙ e|Y\85\ 6©ÃÕ \ 1î«Ð u¸\1a$À}\15\1a¤\ eW\83\ 4¸¯B\83Tá³AÊø²
+\rR\87«A\ 2ÜW¡Aêp5H\80û*4H\1d®\ 6 p_\85\ 6©Âg\83\94ñe\15\1a¤ØÍt\r\12¼ Ñ =¿ û~\83\14^Ðoþ¶ÐËí°=t\86\ 6i<õ½Aº¥\ 6iýRµëárþüÇ8OÔú>¾o¿®ßë\8fæ·¼ÅW;¿åíùå\86oy{ñ\82Ò·¼\ 1î«ð-o\15>¿å-ãË*|Ë[\87ë[Þ\0÷Uø\96·\ e×·¼\ 1î«ð-o\1d®oy\ 3ÜWá[Þ*|~Ë[Æ\97\96·\ e×·¼\ 1î«ð-o\1d®oy\ 3ÜWá[Þ:\ßò\ 6¸¯Â·¼Uø,,3¾¬BaÙá*,\ 1÷U(,;\\85%à¾
+\85e\87«°\ 4ÜW¡°¬ðYXf|Y\85²ÃUX\ 2î«PXv¸
+KÀ}\15
\ eWa   ¸¯BaYá³°Ìø²
+\85e\87«°\ 4ÜW¡°ìp\15\96\80û*\14\96\1d®Â\12p_\85²Á\9f
\88¯«PXv¸
+KÀ}\15
\ eWa   ¸¯BaÙá*,\ 1÷U(,+|\16\96\19_VsaÙÙ£°\ 4Ú6¡°ìh\15\96`û*\14\96\1d®Â\12p_Í\85ee«°Ì´oBaÙÑ*,ÁöU(,;\\85%à¾\9a\vËÎ\1e\85%ж       \85eEÏÂ2ÛË*\14\96\1d®Â\12p_Í\85eg\8fÂ\12\84²£UX\82í«PXVø,,3¾¬æ²³Ga      ´mBaÙÑ*,ÁöU(,;\\85%à¾
+\85e\85ÏÂ2ãË*\14\96\1d®Â\12p_\85²ÃUX\ 2î«PXv¸
+KÀ}\15
+\9f\85\97U(,;\\85%à¾
+\85e\87«°\ 4ÜW¡°ìp\15\96\80û*\14\96\15>\vË\8c/«PXv¸
+KÀ}\15
\ eWa   ¸¯BaÙá*,\ 1÷U(,+|\16\96\19_V¡°ìp\15\96\80û*\14\96\1d®Â\12p_\85²ÃUX\ 2î«PXVø,,3¾¬BaÙá*,\ 1÷U(,;\\85%à¾
+\85e\87«°\ 4ÜW¡°lð§Â2âë*\14\96\1d®Â\12p_\85²ÃUX\ 2î«PXv¸
+KÀ}\15
+\9f\85\97U(,;\\85%à¾
+\85e\87«°\ 4ÜW¡°ìp\15\96\80û*\14\96\15>\vË\8c/«PXv¸
+KÀ}\15
\ eWa   ¸¯BaÙá*,\ 1÷U(,+|\16\96\19_V¡°ìp\15\96\80û*\14\96\1d®Â\12p_Í\85eg\8fÂ\12\84²¢ga\99íe\15
\ eWa   ¸¯Æ²£\1f\85%À_\17¡°ì`\15\96@û*\14\96\15>\vË\8c/«¹°ììQX\ 2m\9bPXv´
+K°}\15
\ eWa   ¸¯æ²²UXfÚ7¡°ìh\15\96`û*\14\96\1d®Â\12p_Í\85eg\8fÂ\12\84²¢ga\99íe\15
\ eWa   ¸¯BaÙá*,\ 1÷U(,;\\85%à¾
+\85e\85ÏÂ2ãË*\14\96\1d®Â\12p_\85²ÃUX\ 2î«PXv¸
+KÀ}\15
+\9f\85\97U(,;\\85%à¾
+\85e\87«°\ 4ÜW¡°ìp\15\96\80û*\14\96\rþTXF|]\85²ÃUX\ 2î«PXv¸
+KÀ}\15
\ eWa   ¸¯BaYá³°Ìø²
+\85e\87«°\ 4ÜW¡°ìp\15\96\80û*\14\96\1d®Â\12p_\85²Âga\99ñe\15
\ eWa   ¸¯BaÙá*,\ 1÷U(,;\\85%à¾
+\85e\85ÏÂ2ãË*\14\96±\fì
+KxA£°|~A\1fû\85exA¿¹°<_\ e×Ûù\ e\85åxê{aù>\vËÿòÓùúãÏ?\9d®?þÇ·Èò?þ¼&\96§Ë#\94x²ü\15\9d\ fçí/y{\89åé¶ýÚóÛ¯ÎãËÕs_^ïúãù§ûáöúå¼ ¿=\8bð×Å×ìùt8½\7fþ
\82ÇÓD/«;øåp»\9d.-þx\1aq_ÝÁ·Ïåúù+è\ e\7f<\8d¸¯îàÛgóv®ßöÇÓ\88ûêkü²}:\97Kû¶\8f§   _VwðíÓ9_Ú·}<\8d¸¯îàÛ§szkßöñ4⾺\83o\9fÎñznñÇÓ\88ûêNÁ}:\1c?®íÛ>\9e&|YÝÁ·?z¿µoûx\1aq_ÝÁGâÞá
\ 1÷U\bç;\á<à¾
+á|\85Ïp>ãË*\84ó\1d®p\1ep_\85p¾Ã\15Î\ 3î«\10Îw¸ÂyÀ}\15Âù
+\9fá|Æ\97U\bç;\á<à¾
+á|\87+\9c\aÜW!\9cïp\85ó\80û*\84ó\15>Ãù\8c\10Îw¸ÂyÀ}\15Âù\ eW8\ f¸¯B8ßá
\ 1÷U\bç+|\86ó\19_V!\9cïp\85ó\80û*\84ó\1d®p\1ep_\85p¾Ã\15Î\ 3î«\10ÎWø\fç3¾¬B8ßá
\ 1÷U\bç;\á<à¾
+á|\87+\9c\aÜW!\9coð§p>âë*\84ó\1d®p\1ep_\85p¾Ã\15Î\ 3î«\10Îw¸ÂyÀ}\15Âù
+\9fá|Æ\97Õ\1cÎwö\bç\81¶M\bç;Zá<ؾ
+á|\87+\9c\aÜWs8_Ù
+ç3í\9b\10Îw´Ây°}\15Âù\ eW8\ f¸¯æp¾³G8\ f´mB8_Ñ3\9cÏö²
+á|\87+\9c\aÜWs8ßÙ#\9c\aÚ6!\9cïh\85ó`û*\84ó\15>Ãù\8c/«9\9cïì\11Î\ 3m\9b\10Îw´Ây°}\15Âù\ eW8\ f¸¯B8_á3\9cÏø²
+á|\87+\9c\aÜW!\9cïp\85ó\80û*\84ó\1d®p\1ep_\85p¾Âg8\9fñe\15Âù\ eW8\ f¸¯B8ßá
\ 1÷U\bç;\á<à¾
+á|\85Ïp>ãË*\84ó\1d®p\1ep_\85p¾Ã\15Î\ 3î«\10Îw¸ÂyÀ}\15Âù
+\9fá|Æ\97U\bç;\á<à¾
+á|\87+\9c\aÜW!\9cïp\85ó\80û*\84ó\15>Ãù\8c\10Îw¸ÂyÀ}\15Âù\ eW8\ f¸¯B8ßá
\ 1÷U\bç\eü)\9c\8føº
+á|\87+\9c\aÜW!\9cïp\85ó\80û*\84ó\1d®p\1ep_\85p¾Âg8\9fñe\15Âù\ eW8\ f¸¯B8ßá
\ 1÷U\bç;\á<à¾
+á|\85Ïp>ãË*\84ó\1d®p\1ep_\85p¾Ã\15Î\ 3î«\10Îw¸ÂyÀ}\15Âù
+\9fá|Æ\97U\bç;\á<à¾
+á|\87+\9c\aÜWs8ßÙ#\9c\aÚ6!\9c¯è\19Îg{Y\85p¾Ã\15Î\ 3î«1\9cïèG8\ fð×E\bç;Xá<о
+á|\85Ïp>ãËj\ eç;{\84ó@Û&\84ó\1d­p\1el_\85p¾Ã\15Î\ 3î«9\9c¯l\85ó\99öM\bç;Zá<ؾ
+á|\87+\9c\aÜWs8ßÙ#\9c\aÚ6!\9c¯è\19Îg{Y\85p¾Ã\15Î\ 3î«\10Îw¸ÂyÀ}\15Âù\ eW8\ f¸¯B8_á3\9cÏø²
+á|\87+\9c\aÜW!\9cïp\85ó\80û*\84ó\1d®p\1ep_\85p¾Âg8\9fñe\15Âù\ eW8\ f¸¯B8ßá
\ 1÷U\bç;\á<à¾
+á|\83?\85ó\11_W!\9cïp\85ó\80û*\84ó\1d®p\1ep_\85p¾Ã\15Î\ 3î«\10ÎWø\fç3¾¬B8ßá
\ 1÷U\bç;\á<à¾
+á|\87+\9c\aÜW!\9c¯ð\19Îg|Y\85p¾Ã\15Î\ 3î«\10Îw¸ÂyÀ}\15Âù\ eW8\ f¸¯B8_á3\9cÏø²
+á|è½Ûp\1e\bç\9f_P\bçÃ\vZÂù+\84ó§Ï\1f\1dØì\1cÎ\8f§¾\87ó÷\19ÎÿÓÏ\7fýëïÿç\8bXþóo(\9fN?<ï¿ø>âûûm7\96¿\1cn\1fßþ\96Z|\89zîËk|\11Ë\8f¦þÅ\vJ¥>à¾\1a\8e~\94ú\0\7f]\84R¿\82\9fée\15\ e\ f¸¯B©ßá*õ\ 1÷U(õ;\¥>à¾
+¥~\85ÏR?ãË*\94ú\1d®R\1fp_\85R¿ÃUê\ 3î«Pêw¸J}À}\15
+\9f¥~Æ\97U(õ;\¥>à¾
+¥~\87«Ô\aÜW¡Ôïp\95ú\80û*\94ú\15>Ký\8c/«Pêw¸J}À}\15\ e\ f¸¯B©ßá*õ\ 1÷U(õ+|\96ú\19_V¡Ôïp\95ú\80û*\94ú\1d®R\1fp_\85R¿ÃUê\ 3î«PêWø,õ3¾¬B©ßá*õ\ 1÷U(õ;\¥>à¾
+¥~\87«Ô\aÜW¡Ô¯ðYêg|Y\85R¿ÃUê\ 3î«Pêw¸J}À}\15\ e\ f¸¯B©_á³ÔÏø²
+¥~\87«Ô\aÜW¡Ôïp\95ú\80û*\94ú\1d®R\1fp_\85R¿Á\9f\88¯«Pêw¸J}À}\15\ e\ f¸¯B©ßá*õ\ 1÷U(õ+|\96ú\19_Vs©ßÙ£Ô\aÚ6¡Ôïh\95ú`û*\94ú\1d®R\1fp_Í¥~e«ÔÏ´oB©ßÑ*õÁöU(õ;\¥>à¾\9aKýÎ\1e¥>ж    ¥~EÏR?ÛË*\94ú\1d®R\1fp_Í¥~g\8fR\1f\84R¿£Uê\83í«PêWø,õ3¾¬æR¿³G©\ f´mB©ßÑ*õÁöU(õ;\¥>à¾
+¥~\85ÏR?ãË*\94ú\1d®R\1fp_\85R¿ÃUê\ 3î«Pêw¸J}À}\15
+\9f¥~Æ\97U(õ;\¥>à¾
+¥~\87«Ô\aÜW¡Ôïp\95ú\80û*\94ú\15>Ký\8c/«Pêw¸J}À}\15\ e\ f¸¯B©ßá*õ\ 1÷U(õ+|\96ú\19_V¡Ôïp\95ú\80û*\94ú\1d®R\1fp_\85R¿ÃUê\ 3î«PêWø,õ3¾¬B©ßá*õ\ 1÷U(õ;\¥>à¾
+¥~\87«Ô\aÜW¡Ôoð§R?âë*\94ú\1d®R\1fp_\85R¿ÃUê\ 3î«Pêw¸J}À}\15
+\9f¥~Æ\97U(õ;\¥>à¾
+¥~\87«Ô\aÜW¡Ôïp\95ú\80û*\94ú\15>Ký\8c/«Pêw¸J}À}\15\ e\ f¸¯B©ßá*õ\ 1÷U(õ+|\96ú\19_V¡Ôïp\95ú\80û*\94ú\1d®R\1fp_Í¥~g\8fR\1f\84R¿¢g©\9fíe\15\ e\ f¸¯ÆR¿£\1f¥>À_\17¡Ôï`\95ú@û*\94ú\15>Ký\8c/«¹ÔïìQê\ 3m\9bPêw´J}°}\15\ e\ f¸¯æR¿²UêgÚ7¡Ôïh\95ú`û*\94ú\1d®R\1fp_Í¥~g\8fR\1f\84R¿¢g©\9fíe\15\ e\ f¸¯B©ßá*õ\ 1÷U(õ;\¥>à¾
+¥~\85ÏR?ãË*\94ú\1d®R\1fp_\85R¿ÃUê\ 3î«Pêw¸J}À}\15
+\9f¥~Æ\97U(õ;\¥>à¾
+¥~\87«Ô\aÜW¡Ôïp\95ú\80û*\94ú\rþTêG|]\85R¿ÃUê\ 3î«Pêw¸J}À}\15\ e\ f¸¯B©_á³ÔÏø²
+¥~\87«Ô\aÜW¡Ôïp\95ú\80û*\94ú\1d®R\1fp_\85R¿Âg©\9fñe\15\ e\ f¸¯B©ßá*õ\ 1÷U(õcr\9dzõóýp<ñ¯nôÜ\97\17t:î\aëá\15ýÖozÿö\17\9bë\86Ç`]O}\ fÖ?f°þ_\7fþõÿûétüñ\97¿ü?ÿôó¯ÿúË\1f^\ 5\8d÷ÏèòYzñ=ïÛ\9f~vÊue\86ùµê¹//v?3|õzBfH¸¯æÌ°Ã\95\19\ 2¾¬æÌ°ÄGfH¸¯æÌ°ÄGfH¸¯æÌ°ÄGfH¸¯æÌ°Ã\95\19\ 2¾¬æÌ°ÄGfH¸¯æÌ°ÄGfH¸¯æÌ°ÄGfH¸¯æÌ°Ã\95\19\ 2¾¬æÌ°ÄGfH¸¯æÌ°ÄGfH¸¯æÌ°ÄGfH¸¯æÌ°Ã\95\19\ 2¾¬æÌ°ÄGfH¸¯æÌ°ÄGfH¸¯æÌ°ÄGfH¸¯æÌ°Ã\95\19\ 2¾¬æÌ°ÄGfH¸¯æÌ°ÄGfH¸¯æÌ°ÄGfH¸¯æÌ°Âgf\98ñu5g\86%>2CÂ}5g\86%>2CÂ}5g\86%>2CÂ}5g\86\1d®Ì\10ðe5f\86¥ýÈ\f\89¶Í\9c\19\96ôÈ\fÉöÕ\9c\19\96øÈ\f        ÷Õ\98\19vöÈ\f\81öÍ\9c\19\96ôÈ\fÉöÕ\9c\19\96øÈ\f      ÷Õ\98\19\96ö#3$Ú6sfØÑÊ\fÁ^VsfXâ#3$ÜWcfXÚ\8fÌ\90hÛÌ\99aI\8fÌ\90l_Í\99a\87+3\ 4|Y\8d\99ai?2C¢m3g\86%=2C²}5g\86%>2CÂ}5g\86\1d®Ì\10ðe5g\86%>2CÂ}5g\86%>2CÂ}5g\86%>2CÂ}5g\86\1d®Ì\10ðe5g\86%>2CÂ}5g\86%>2CÂ}5g\86%>2CÂ}5g\86\1d®Ì\10ðe5g\86%>2CÂ}5g\86%>2CÂ}5g\86%>2CÂ}5g\86\1d®Ì\10ðe5g\86%>2CÂ}5g\86%>2CÂ}5g\86%>2CÂ}5g\86\1d®Ì\10ðe5g\86%>2CÂ}5g\86%>2CÂ}5g\86%>2CÂ}5g\86\15>3Ã\8c¯«93,ñ\91\19\12î«93,ñ\91\19\12î«93,ñ\91\19\12î«93ìpe\86\80/«93,ñ\91\19\12î«93,ñ\91\19\12î«93,ñ\91\19\12î«93ìpe\86\80/«93,ñ\91\19\12î«93,ñ\91\19\12î«93,ñ\91\19\12î«93ìpe\86\80/«93,ñ\91\19\12î«93,ñ\91\19\12î«13,íGfH´mæÌ°£\95\19\82½¬æÌ°ÄGfH¸¯¦Ì°¤¿g\86\ 4\7f\99\8fÌ\90h_Í\99a\87+3\ 4|Y\8d\99ai?2C¢m3g\86%=2C²}5g\86%>2CÂ}5f\86\9d=2C }3g\86%=2C²}5g\86%>2CÂ}5f\86¥ýÈ\f\89¶Í\9c\19v´2C°\97Õ\9c\19\96øÈ\f   ÷Õ\9c\19\96øÈ\f        ÷Õ\9c\19\96øÈ\f        ÷Õ\9c\19v¸2CÀ\97Õ\9c\19\96øÈ\f       ÷Õ\9c\19\96øÈ\f        ÷Õ\9c\19\96øÈ\f        ÷Õ\9c\19v¸2CÀ\97Õ\9c\19\96øÈ\f       ÷Õ\9c\19\96øÈ\f        ÷Õ\9c\19\96øÈ\f        ÷Õ\9c\19VøÌ\f3¾®æÌ°ÄGfH¸¯æÌ°ÄGfH¸¯æÌ°ÄGfH¸¯æÌ°Ã\95\19\ 2¾¬æÌ°ÄGfH¸¯æÌ°ÄGfH¸¯æÌ°ÄGfH¸¯æÌ°Ã\95\19\ 2¾¬æÌ°ÄGfH¸¯æÌ°ÄGfH¸¯æÌ0åqefH/èñÜ\97\17t:íf\86é\15ýæÌðþöù\8bÊ+d\86ã©ï\99áöç\8bW\9dáï~º\1f\7fü\8f?¯_\92»½ð·ÛÇÓÌ\8b\97ôùÅ\9b»ß\91«ï\91Ì/WÏ}y½ûß#ùêõ\84ï\91\ 4|YÍß#Yâã{$     ÷Õü=\92%®À\13p_\85À³Ã\15x\ 2î«\10xVø\f<3¾¬BàÙá
+<\ 1÷U\b<;\\81'à¾
+\81g\87\ 4ÜW!ð¬ð\19xf|Y\85À³Ã\15x\ 2î«\10xv¸\ 2OÀ}\15\ 2Ï\ eWà       ¸¯BàYá3ðÌø²
+\81g\87\ 4ÜW!ðìp\ 5\9e\80û*\ 4\9e\1d®À\13p_\85À³Âgà\99ñe\15\ 2Ï\ eWà       ¸¯BàÙá
+<\ 1÷U\b<;\\81'à¾
+\81g\85ÏÀ3ãË*\ 4\9e\1d®À\13p_\85À³Ã\15x\ 2î«\10xv¸\ 2OÀ}\15\ 2Ï\ 6\7f
+<#¾®BàÙá
+<\ 1÷U\b<;\\81'à¾
+\81g\87\ 4ÜW!ð¬ð\19xf|YÍ\81gg\8fÀ\13\84À³£\15x\82í«\10xv¸\ 2OÀ}5\a\9e\95­À3Ó¾   \81gG+ð\ 4ÛW!ðìp\ 5\9e\80ûj\ e<;{\ 4\9e@Û&\ 4\9e\15=\ 3Ïl/«\10xv¸\ 2OÀ}5\a\9e\9d=\ 2O m\13\ 2Ï\8eVà      ¶¯BàYá3ðÌø²\9a\ 3ÏÎ\1e\81'ж    \81gG+ð\ 4ÛW!ðìp\ 5\9e\80û*\ 4\9e\15>\ 3Ï\8c\10xv¸\ 2OÀ}\15\ 2Ï\ eWà        ¸¯BàÙá
+<\ 1÷U\b<+|\ 6\9e\19_V!ðìp\ 5\9e\80û*\ 4\9e\1d®À\13p_\85À³Ã\15x\ 2î«\10xVø\f<3¾¬BàÙá
+<\ 1÷U\b<;\\81'à¾
+\81g\87\ 4ÜW!ð¬ð\19xf|Y\85À³Ã\15x\ 2î«\10xv¸\ 2OÀ}\15\ 2Ï\ eWà       ¸¯BàYá3ðÌø²
+\81g\87\ 4ÜW!ðìp\ 5\9e\80û*\ 4\9e\1d®À\13p_\85À³Á\9f\ 2Ï\88¯«\10xv¸\ 2OÀ}\15\ 2Ï\ eWà      ¸¯BàÙá
+<\ 1÷U\b<+|\ 6\9e\19_V!ðìp\ 5\9e\80û*\ 4\9e\1d®À\13p_\85À³Ã\15x\ 2î«\10xVø\f<3¾¬BàÙá
+<\ 1÷U\b<;\\81'à¾
+\81g\87\ 4ÜW!ð¬ð\19xf|Y\85À³Ã\15x\ 2î«\10xv¸\ 2OÀ}5\a\9e\9d=\ 2O m\13\ 2Ï\8a\9e\81\97U\b<;\\81'à¾\1a\ 3Ï\8e~\ 4\9e\0\7f]\84À³\83\15x\ 2í«\10xVø\f<3¾¬æÀ³³Gà        ´mBàÙÑ
+<ÁöU\b<;\\81'à¾\9a\ 3ÏÊVà\99\84À³£\15x\82í«\10xv¸\ 2OÀ}5\a\9e\9d=\ 2O m\13\ 2Ï\8a\9e\81\97U\b<;\\81'à¾
+\81g\87\ 4ÜW!ðìp\ 5\9e\80û*\ 4\9e\15>\ 3Ï\8c\10xv¸\ 2OÀ}\15\ 2Ï\ eWà       ¸¯BàÙá
+<\ 1÷U\b<+|\ 6\9e\19_V!ðìp\ 5\9e\80û*\ 4\9e\1d®À\13p_\85À³Ã\15x\ 2î«\10x6øSà\19ñu\15\ 2Ï\ eWà ¸¯BàÙá
+<\ 1÷U\b<;\\81'à¾
+\81g\85ÏÀ3ãË*\ 4\9e\1d®À\13p_\85À³Ã\15x\ 2î«\10xv¸\ 2OÀ}\15\ 2Ï
+\9f\81\97U\b<;\\81'à¾
+\81g\87\ 4ÜW!ð\fUb\e\v\1a\81çó\v:\9d÷\ 3Ïð\8a\96Àó
+\81çûéð~}\87¾óñÐ#ï<=å\9d¿üáç\7füË/ÿþç5êÜþ÷ëöY(L`m:\8f·Ûî×G^>\93Ïo¿ïM/Q\8f=¿ÆõçÒ/\97Ãíüù\97ÔõÕ¼\90\1f\ f\93l\9b;òm{Ã>\7f£VÉ\8f\87I¶Í\1dyÔ®\95¬\846˶    \ 1m#Ï~6ʾ        õl%+\9eͲmB:[É*g³l\9bÐÍV²²Ù,Û&D³\8d<\9bÙ(û&\14³\95¬`6˶     ¹l%«\96ͲmB+[ÉJe³l\9b\10Ê6òìd£ì\9bPÉV²"Ù,Û&$²\95¬B6˶     }l%+\8fͲmB\1cÛȳ\8d\8d²oB\19
+c³l\9b\90ÅV²ªØ,Û&4±\95¬$6˶  Al#Ï\1e6ʾ        5l%+\86ͲmB
+[É*a³l\9bÐÁV²2Ø,Û&D°\8d<\eØ(û&\14°\95¬\06˶      ùk%«~ͲmBûZÉJ_³l\9b\10¾\16òS÷\9aäe\13ª×JVô\9a\84äµ\92U¼fÙ6¡w­då®Y¶M\88]\ey¶®QöÍ\ºVð\b]³ûu\112×ÊUå\9a\84Ƶ\92\95¸fÙ6sàÚÀê[£k\8bP·V®âÖ\fÛ&¤­\95¬²5˶\99»Ö
+\1eYkv¿.BÔÚ¸³i\8d°oBÑZÉ
+Z³l\9b9g­àQ³f÷ë"´¬\95«\945ö !k#Ï\8e5ʾ\99
+\1e\11kv¿.BÂZ¹*X3l\9bЯV²òÕ,Û&Ä«\8d<ÛÕ(û&\94«\95¬p5˶      Ùj%«ZͲmB³ZÉJV³l\9b\10¬6òìU£ì\9bP«V²bÕ,Û&¤ª\95¬R5˶     \9dj%+SͲmB¤ÚȳQ\8d²oB¡ZÉ
+T³l\9b\90§V²êÔ,Û&´©\95¬45˶  aj#Ï.5ʾ        Uj%+JͲmB\92ZÉ*R³l\9bУV²rÔ,Û&Ĩ\8d<[Ô(û&\94¨\95¬\105˶     \19j%«BͲmB\83ZÉJP³l\9b\10 \16òS\7f\9aäe\13êÓJV|\9a\84ô´\92U\9efÙ6¡;­de§Y¶M\88N\ey6§QöM(N+YÁi\96m\13rÓJVm\9a\84Ö´\92\95\9afÙ6!4mäÙ\99FÙ7¡2­dE¦Y¶MHL+Y\85i\96m\13úÒJV^\9a\84¸´\91g[\1a\84²´\92\15\96fÙ6!+­dU¥Y¶ÍÜ\94VðHJ³ûu\11\82ÒÆ\9d=i\84}\13jÒJVL\9a\8c)iå>JÒ¬~Ù\83\8e´R\95\91f×6!"mäÙ\90FÙ7sAZÁ# Íî×EÈG+Wõh\86m\13ÚÑJV:\9aeÛÌáh\ 3«\e\8d®-B5Z¹\8aF3l\9b\90\8c\8aÑ,ÛfîE+xä¢Ùýº\b±hãÎV4¾   ¥h%+\14ͲmB&ZɪD³l\9bÐ\88\12Ñ,Û&\ 4¢\8d<ûÐ(û&Ô¡\95¬84˶     ih%«\fͲmB\17ZÉÊB³l\9b\10\856òlB£ì\9bP\84\82Ð,Û&ä \95¬\1a4˶     -h%+\ 5ͲmB\bZÈO\1dh\92\97M¨@+Y\11h\96m\13\12ÐJV\ 1\9a\84þ³\92\95\7ffÙ6!þläÙ~FÙ7¡ü¬d\85\9fY¶MÈ>+YÕg\96m\13\9aÏJVò\99\84à³\91\19\84Ú³\92\15{fÙ6!õ¬d\95\9eY¶Mè<÷CÅ6ó̯fT\9eO¯&E\9eû/ç7\7f\89çõ¾ý\9eöz\83Ès<õ¨<Ï_+ϧ/ò\KÃ\8fÃåýiáeëùþÙJî´\9e³\ 1\8c/uF\80ϯ5T\80/^PÊ\0\ 1÷U\b\ 1;\% à¾
+-`\87+\ 6\ 4ÜW!\a¬ðÙ\ 3f|Y\85"°Ã\95\ 4\ 2î«\10\ 5v¸ª@À}\15ºÀ\ eW\18\b¸¯B\1aXá³\rÌø²
+u`\87+\ f\ 4ÜW!\10ìp\15\82\80û*4\82\1d®H\10p_\85L°Âg'\98ñe\15\ eW*\b¸¯B,Øáª\ 5\ 1÷Uè\ 5;\Á à¾
+É`\85Ïf0ãË*T\83\1d®l\10p_\85p°ÃU\ e\ 2î«Ð\ ev¸âAÀ}\15òÁ
+\9fý`Æ\97U(\b;\     !à¾
+\11a\87«"\ 4ÜW¡#ìp\85\84\80û*¤\84\rþÔ\12F|]\85\9a°Ã\95\13\ 2î«\10\14\8aBÀ}\15\9aÂ\ eWT\b¸¯BVXá³+Ìø²\9aËÂÎ\1ei!ж qaG«.\ 4ÛW¡/ìp\ 5\86\80ûjN\f+[\8da¦}\13\8eVf\b¶¯BhØá*\r\ 1÷ÕÜ\1a\88\r\81¶MÈ\r+zö\86Ù^V¡8ìp%\87\80ûj\8e\ e;{T\87@Û&t\87\1d­ð\10l_\85ô°Âg{\98ñe5×\87\9d=òC m\13\ 2Ä\8eV\81\b¶¯B\83Øá\8a\10\ 1÷UÈ\10+|v\88\19_V¡Dìp¥\88\80û*Ä\88\1d®\1a\11p_\85\1e±Ã\15$\ 2î«\90$Vøl\123¾¬B\95ØáÊ\12\ 1÷U\b\13;\e"à¾
+mb\87+N\ 4ÜW!O¬ðÙ'f|Y\85B±Ã\95(\ 2î«\10)v¸*EÀ}\15\ e\b¸¯BªXá³UÌø²
+µb\87+W\ 4ÜW!Xìp\15\8b\80û*4\8b\1d®h\11p_\85l±Âg·\98ñe\15ÊÅ\ e\b¸¯B¼Øáª\17\ 1÷Uè\17;\\ 1#à¾
+       c\83?5\8c\11_W¡bìpe\8c\80û*\84\8c\1d®\92\11p_\85\96±Ã\153\ 2î«\903Vøì\193¾¬BÑØáJ\1a\ 1÷U\88\1a;\U#à¾
+]c\87+l\ 4ÜW!m¬ðÙ6f|Y\85º±Ã\957\ 2î«\108v¸
+GÀ}\15\1aÇ\ e\b¸¯BæXá³sÌø²
+¥c\87+u\ 4ÜW!vìpÕ\8e\80ûjî\1d;{\ 4\8f@Û&$\8f\15=\9bÇl/«P=v¸²GÀ}5\86\8f\1dý(\1f\ 1þº\bíc\a+~\ 4ÚW!\7f¬ðÙ?f|YÍ\ 5dg\8f\ 4\12\84\b²£UA\82í«ÐAv¸BHÀ}5§\90\95­\162Ó¾     5dG+\87\ 4ÛW!\88ìp\15\91\80ûjn";{D\91@Û&d\91\15=»Èl/«PFv¸ÒHÀ}\15âÈ\ eW\1d       ¸¯B\1fÙá
+$\ 1÷UH$+|6\92\19_V¡\92ìpe\92\80û*\84\92\1d®R\12p_\85V²Ã\15K\ 2î«\90KVøì%3¾¬B1ÙáJ&\ 1÷U\88&;\Õ$à¾
+Ýd\87+\9c\ 4ÜW!\9dlð§v2âë*Ô\93\1d®|\12p_\85\80²ÃUP\ 2î«ÐPv¸"JÀ}\15
+\9f\1d\97U();\)%à¾
+1e\87«¦\ 4ÜW¡§ìp\ 5\95\80û*$\95\15>\9bÊ\8c/«PUv¸²JÀ}\15ÂÊ\ eWY       ¸¯B[\19ÊÀ6®\84\174êÊç\17tºìç\95á\15ýæ¾òíó\87|ßÎÐW\8e§\1e}ååk_¹ü\18øñmûóøç+}Z_«ÊÛçßxÝ©*\8f·ÃùüíïåÅ\17¨ç¾¼ÂõçÒ\8f÷Ãûéó7\r/^Ð\vüñ4â¾ú\1a?\9d\ eçÏ\7f¦QÙ\8f\87\89öÍ\1dùr¸}Üo-ýx\1am_ÝÁoÛ¯\9b?Ú÷|<\8d¸¯îà÷í~Ë¿=\8bð×Å×ìùt8½\1fÛ7|<Mô²º\83o\9fËíÔ¾áãiÄ}u\aß>\97ëçï\15:üñ4⾺\83o\9fÍÛ¹~Û\1fO#î«;ßU;¾Å·ÂçW\ 3g|Y\85/\aîp};0à¾
\ fÜáú\82`À}\15¾"¸Ãõ\1dÁ\80û*|Kp\85Ï\13\ 1\19_VáD@\87ëD\0à¾
+'\ 2:\'\ 2\0÷U8\11Ðá:\11\0¸¯Â\89\80
+\9f'\ 22¾¬Â\89\80\ e×\89\0À}\15N\ 4t¸N\ 4\0î«p" Ãu"\0p_\85\13\ 1\15>O\ 4d|Y\85\13\ 1\1d®\13\ 1\80û*\9c\bèp\9d\b\0ÜWáD@\87ëD\0à¾
+'\ 2*|\9e\bÈø²
+'\ 2:\'\ 2\0÷U8\11Ðá:\11\0¸¯Â\89\80\ e×\89\0À}\15N\ 4Tø<\11\90ñe\15N\ 4t¸N\ 4\0î«p" Ãu"\0p_\85\13\ 1\1d®\13\ 1\80û*\9c\b¨ðy" ãË*\9c\bèp\9d\b\0ÜWáD@\87ëD\0à¾
+'\ 2:\'\ 2\0÷U8\11ÐàO'\ 2"¾®Â\89\80\ e×\89\0À}\15N\ 4t¸N\ 4\0î«p" Ãu"\0p_\85\13\ 1\15>O\ 4d|YÍ'\ 2:{\9c\b\0Ú6áD@GëD\0ؾ
+'\ 2:\'\ 2\0÷Õ|" ²u" Ó¾     '\ 2:Z'\ 2ÀöU8\11Ðá:\11\0¸¯æ\13\ 1\9d=N\ 4\0m\9bp" ¢ç\89\80l/«p" Ãu"\0p_Í'\ 2:{\9c\b\0Ú6áD@GëD\0ؾ
+'\ 2*|\9e\bÈø²\9aO\ 4tö8\11\0´mÂ\89\80\8eÖ\89\0°}\15N\ 4t¸N\ 4\0î«p" Âç\89\80\8c/«p" Ãu"\0p_\85\13\ 1\1d®\13\ 1\80û*\9c\bèp\9d\b\0ÜWáD@\85Ï\13\ 1\19_VáD@\87ëD\0à¾
+'\ 2:\'\ 2\0÷U8\11Ðá:\11\0¸¯Â\89\80
+\9f'\ 22¾¬Â\89\80\ e×\89\0À}\15N\ 4t¸N\ 4\0î«p" Ãu"\0p_\85\13\ 1\15>O\ 4d|Y\85\13\ 1\1d®\13\ 1\80û*\9c\bèp\9d\b\0ÜWáD@\87ëD\0à¾
+'\ 2*|\9e\bÈø²
+'\ 2:\'\ 2\0÷U8\11Ðá:\11\0¸¯Â\89\80\ e×\89\0À}\15N\ 44øÓ\89\80\88¯«p" Ãu"\0p_\85\13\ 1\1d®\13\ 1\80û*\9c\bèp\9d\b\0ÜWáD@\85Ï\13\ 1\19_VáD@\87ëD\0à¾
+'\ 2:\'\ 2\0÷U8\11Ðá:\11\0¸¯Â\89\80
+\9f'\ 22¾¬Â\89\80\ e×\89\0À}\15N\ 4t¸N\ 4\0î«p" Ãu"\0p_\85\13\ 1\15>O\ 4d|Y\85\13\ 1\1d®\13\ 1\80û*\9c\bèp\9d\b\0ÜWó\89\80Î\1e'\ 2\80¶M8\11PÑóD@¶\97U8\11Ðá:\11\0¸¯Æ\13\ 1\1dý8\11\0ð×E8\11ÐÁ:\11\0´¯Â\89\80
+\9f'\ 22¾¬æ\13\ 1\9d=N\ 4\0m\9bp" £u"\0l_\85\13\ 1\1d®\13\ 1\80ûj>\11PÙ:\11\90\84\13\ 1\1d­\13\ 1`û*\9c\bèp\9d\b\0ÜWó\89\80Î\1e'\ 2\80¶M8\11PÑóD@¶\97U8\11Ðá:\11\0¸¯Â\89\80\ e×\89\0À}\15N\ 4t¸N\ 4\0î«p" Âç\89\80\8c/«p" Ãu"\0p_\85\13\ 1\1d®\13\ 1\80û*\9c\bèp\9d\b\0ÜWáD@\85Ï\13\ 1\19_VáD@\87ëD\0à¾
+'\ 2:\'\ 2\0÷U8\11Ðá:\11\0¸¯Â\89\80\ 6\7f:\11\10ñu\15N\ 4t¸N\ 4\0î«p" Ãu"\0p_\85\13\ 1\1d®\13\ 1\80û*\9c\b¨ðy" ãË*\9c\bèp\9d\b\0ÜWáD@\87ëD\0à¾
+'\ 2:\'\ 2\0÷U8\11PáóD@Æ\97U8\11Ðá:\11\0¸¯Â\89\80\ e×\89\0À}\15N\ 4\84̽=\11\0/h\9c\bx~A§·ý\13\ 1á\15ýæ\13\ 1\97í©ãù\ e'\ 2ÆS\8f\13\ 1o_O\ 4üî§ûñÇ_>ÿ»\7füË/ÿþçW¡ÕÇéó'3\9e°õbÀõó§\85v.\ 6\9a>èõê¹//8ôO/^Pê\9f\0÷Uè\9f:\ý\13à¾
+ýS\85Ïþ)ãË*ôO\1d®þ p_\85þ©ÃÕ?\ 1î«Ð?u¸ú'À}\15ú§
+\9fýSÆ\97\9f:\ý\13à¾
+ýS\87«\7f\ 2ÜW¡\7fêpõO\80û*ôO\15>û§\8c/«Ð?u¸ú'À}\15ú§\ eWÿ\ 4¸¯BÿÔáê\9f\0÷Uè\9f\1aü©\7f\8aøº
+ýS\87«\7f\ 2ÜW¡\7fêpõO\80û*ôO\1d®þ p_\85þ©Âgÿ\94ñe5÷O\9d=ú' m\13ú§\8eVÿ\ 4¶¯BÿÔáê\9f\0÷ÕÜ?U¶ú§Lû&ôO\1d­þ    l_\85þ©ÃÕ?\ 1\7fêìÑ?\ 1m\9bÐ?Uôì\9f²½¬BÿÔáê\9f\0÷ÕÜ?uöè\9f\80¶Mè\9f:Zý\13ؾ
+ýS\85Ïþ)ãËjî\9f:{ôO@Û&ôO\1d­þ        l_\85þ©ÃÕ?\ 1î«Ð?Uøì\9f2¾¬BÿÔáê\9f\0÷Uè\9f:\ý\13à¾
+ýS\87«\7f\ 2ÜW¡\7fªðÙ?e|Y\85þ©ÃÕ?\ 1î«Ð?u¸ú'À}\15ú§\ eWÿ\ 4¸¯BÿTá³\7fÊø²
+ýS\87«\7f\ 2ÜW¡\7fêpõO\80û*ôO\1d®þ p_\85þ©Âgÿ\94ñe\15ú§\ eWÿ\ 4¸¯BÿÔáê\9f\0÷Uè\9f:\ý\13à¾
+ýS\85Ïþ)ãË*ôO\1d®þ p_\85þ©ÃÕ?\ 1î«Ð?u¸ú'À}\15ú§\ 6\7fê\9f"¾®BÿÔáê\9f\0÷Uè\9f:\ý\13à¾
+ýS\87«\7f\ 2ÜW¡\7fªðÙ?e|Y\85þ©ÃÕ?\ 1î«Ð?u¸ú'À}\15ú§\ eWÿ\ 4¸¯BÿTá³\7fÊø²
+ýS\87«\7f\ 2ÜW¡\7fêpõO\80û*ôO\1d®þ p_\85þ©Âgÿ\94ñe\15ú§\ eWÿ\ 4¸¯BÿÔáê\9f\0÷ÕÜ?uöè\9f\80¶Mè\9f*zöOÙ^V¡\7fêpõO\80ûjì\9f:úÑ?\ 1üu\11ú§\ eVÿ\ 4´¯BÿTá³\7fÊø²\9aû§Î\1eý\13ж    ýSG«\7f\ 2ÛW¡\7fêpõO\80ûjî\9f*[ýS¦}\13ú§\8eVÿ\ 4¶¯BÿÔáê\9f\0÷ÕÜ?uöè\9f\80¶Mè\9f*zöOÙ^V¡\7fêpõO\80û*ôO\1d®þ     p_\85þ©ÃÕ?\ 1î«Ð?Uøì\9f2¾¬BÿÔáê\9f\0÷Uè\9f:\ý\13à¾
+ýS\87«\7f\ 2ÜW¡\7fªðÙ?e|Y\85þ©ÃÕ?\ 1î«Ð?u¸ú'À}\15ú§\ eWÿ\ 4¸¯BÿÔàOýSÄ×Uè\9f:\ý\13à¾
+ýS\87«\7f\ 2ÜW¡\7fêpõO\80û*ôO\15>û§\8c/«Ð?u¸ú'À}\15ú§\ eWÿ\ 4¸¯BÿÔáê\9f\0÷Uè\9f*|öO\19_V¡\7fêpõO\80û*ôO\1d®þ    p_\85þ)D;mÿ\ 4/hôOÏ/ètÝï\9fÂ+Zú§+ôO§\8fϧ.Ð?\8d§\1eýÓõUÿôßþþÿ\¿Çîípþöý\8aOÌZ>ݯ\97Ýòi~±^|¥ó\8bõ\9e_jøb½\17/(}±\1eà¾
+_¬Wáó\8bõ2¾¬Â\17ëu¸¾X\ fp_\85/Öëp}±\1eà¾
+_¬×áúb=À}\15¾X¯Âç\17ëe|Y\85/Öëp}±\1eà¾
+_¬×áúb=À}\15¾X¯ÃõÅz\80û*|±^\85Ï/ÖËø²
+_¬×áúb=À}\15ÂÒ\ eWX
+¸¯BXÚá
+K\ 1÷U\bK+|\86¥\19_V!,íp\85¥\80û*\84¥\1d®°\14p_\85°´Ã\15\96\ 2î«\10\96\fK3¾¬BXÚá
+K\ 1÷U\bK;\a)à¾
+ai\87+,\ 5ÜW!,­ð\19\96f|Y\85°´Ã\15\96\ 2î«\10\96v¸ÂRÀ}\15ÂÒ\ eWX
+¸¯BXÚàOaiÄ×U\bK;\a)à¾
+ai\87+,\ 5ÜW!,íp\85¥\80û*\84¥\15>ÃÒ\8c/«9,íì\11\96\ 2m\9b\10\96v´ÂR°}\15ÂÒ\ eWX
+¸¯æ°´²\15\96fÚ7!,íh\85¥`û*\84¥\1d®°\14p_Íaig\8f°\14\84°´¢gX\9aíe\15ÂÒ\ eWX
+¸¯æ°´³GX
+´mBXÚÑ
+KÁöU\bK+|\86¥\19_VsXÚÙ#,\ 5Ú6!,íh\85¥`û*\84¥\1d®°\14p_\85°´ÂgX\9añe\15ÂÒ\ eWX
+¸¯BXÚá
+K\ 1÷U\bK;\a)à¾
+ai\85Ï°4ãË*\84¥\1d®°\14p_\85°´Ã\15\96\ 2î«\10\96v¸ÂRÀ}\15ÂÒ
+\9faiÆ\97U\bK;\a)à¾
+ai\87+,\ 5ÜW!,íp\85¥\80û*\84¥\15>ÃÒ\8c\10\96v¸ÂRÀ}\15ÂÒ\ eWX
+¸¯BXÚá
+K\ 1÷U\bK+|\86¥\19_V!,íp\85¥\80û*\84¥\1d®°\14p_\85°´Ã\15\96\ 2î«\10\966øSX\1añu\15ÂÒ\ eWX
+¸¯BXÚá
+K\ 1÷U\bK;\a)à¾
+ai\85Ï°4ãË*\84¥\1d®°\14p_\85°´Ã\15\96\ 2î«\10\96v¸ÂRÀ}\15ÂÒ
+\9faiÆ\97U\bK;\a)à¾
+ai\87+,\ 5ÜW!,íp\85¥\80û*\84¥\15>ÃÒ\8c\10\96v¸ÂRÀ}\15ÂÒ\ eWX
+¸¯æ°´³GX
+´mBXZÑ3,Íö²
+ai\87+,\ 5ÜWcXÚÑ\8f°\14à¯\8b\10\96v°ÂR }\15ÂÒ
+\9faiÆ\97Õ\1c\96\bK\81¶M\bK;Za)ؾ
+ai\87+,\ 5ÜWsXZÙ
+K3í\9b\10\96v´ÂR°}\15ÂÒ\ eWX
+¸¯æ°´³GX
+´mBXZÑ3,Íö²
+ai\87+,\ 5ÜW!,íp\85¥\80û*\84¥\1d®°\14p_\85°´ÂgX\9añe\15ÂÒ\ eWX
+¸¯BXÚá
+K\ 1÷U\bK;\a)à¾
+ai\85Ï°4ãË*\84¥\1d®°\14p_\85°´Ã\15\96\ 2î«\10\96v¸ÂRÀ}\15ÂÒ\ 6\7f
+K#¾®BXÚá
+K\ 1÷U\bK;\a)à¾
+ai\87+,\ 5ÜW!,­ð\19\96f|Y\85°´Ã\15\96\ 2î«\10\96v¸ÂRÀ}\15ÂÒ\ eWX
+¸¯BXZá3,Íø²
+ai\87+,\ 5ÜW!,íp\85¥\80û*\84¥¡\89lÃRxA#,}~A§Û~X\1a^Ñoþb½ãíð±ý\1f\bKÇS\8f°ô6ÃÒW9éö§ñ·ÓçßÅ\7f\1a_sÒËyû3ýNNz¼\1cÞ¿ý\80S|yã±//oý¡ôí\8f\9eÏ\9f\7f¿ïÅËyA?\9eFÛWwðûáýôùÛ\95\ e\7f<\8d¸¯¾ÆO§ÃyçsXíÇÃDûæ\8e|9Ü>î·\96~<\8d¶¯îà·íWì\1fí{>\9eFÜWwðûáV¿åß\9eEøëâkö|:\9cÞ\8fí\e>\9e&zYÝÁ·Ïå[?Þá\8f§\11÷Õ\1d|û\®\9f¿KéðÇÓ\88ûê\ e¾}6oçúm\7f<\8d¸¯îTòÛ§s¹´oûx\9aðeu\aß>\9dó¥}ÛÇÓ\88ûê\ e\b\8e\13\0î«p\9c Ãu\9c\0p_\85ã\ 4\15>\8f\13d|Y\85ã\ 4\1d®ã\ 4\80û*\1c'èp\1d'\0ÜWá8A\87ë8\ 1à¾
+Ç      *|\1e'Èø²
+Ç      :\Ç     \0÷U8NÐá:N\0¸¯Âq\82\ e×q\ 2À}\15\8e\13Tø<N\90ñe\15\8e\13\8e\13\0î«p\9c Ãu\9c\0p_\85ã\ 4\1d®ã\ 4\80û*\1c'¨ðy\9c ãË*\1c'èp\1d'\0ÜWá8A\87ë8\ 1à¾
+Ç      :\Ç     \0÷U8NPáó8AÆ\97U8NÐá:N\0¸¯Âq\82\ e×q\ 2À}\15\8e\13\8e\13\0î«p\9c Âçq\82\8c/«p\9c Ãu\9c\0p_\85ã\ 4\1d®ã\ 4\80û*\1c'èp\1d'\0ÜWá8A\83?\1d'\88øº
+Ç      :\Ç     \0÷U8NÐá:N\0¸¯Âq\82\ e×q\ 2À}\15\8e\13Tø<N\90ñe5\1f'èìq\9c\0\84ã\ 4\1d­ã\ 4`û*\1c'èp\1d'\0ÜWóq\82ÊÖq\82Lû&\1c'èh\1d'\0ÛWá8A\87ë8\ 1à¾\9a\8f\13tö8N\0´mÂq\82\8a\9eÇ        ²½¬Âq\82\ e×q\ 2À}5\1f'èìq\9c\0\84ã\ 4\1d­ã\ 4`û*\1c'¨ðy\9c ãËj>NÐÙã8\ 1ж     Ç       :ZÇ     ÀöU8NÐá:N\0¸¯Âq\82
+\9fÇ     2¾¬Âq\82\ e×q\ 2À}\15\8e\13\8e\13\0î«p\9c Ãu\9c\0p_\85ã\ 4\15>\8f\13d|Y\85ã\ 4\1d®ã\ 4\80û*\1c'èp\1d'\0ÜWá8A\87ë8\ 1à¾
+Ç      *|\1e'Èø²
+Ç      :\Ç     \0÷U8NÐá:N\0¸¯Âq\82\ e×q\ 2À}\15\8e\13Tø<N\90ñe\15\8e\13\8e\13\0î«p\9c Ãu\9c\0p_\85ã\ 4\1d®ã\ 4\80û*\1c'¨ðy\9c ãË*\1c'èp\1d'\0ÜWá8A\87ë8\ 1à¾
+Ç      :\Ç     \0÷U8NÐàOÇ       "¾®Âq\82\ e×q\ 2À}\15\8e\13\8e\13\0î«p\9c Ãu\9c\0p_\85ã\ 4\15>\8f\13d|Y\85ã\ 4\1d®ã\ 4\80û*\1c'èp\1d'\0ÜWá8A\87ë8\ 1à¾
+Ç      *|\1e'Èø²
+Ç      :\Ç     \0÷U8NÐá:N\0¸¯Âq\82\ e×q\ 2À}\15\8e\13Tø<N\90ñe\15\8e\13\8e\13\0î«p\9c Ãu\9c\0p_ÍÇ    :{\1c'\0Ú6á8AEÏã\ 4Ù^Vá8A\87ë8\ 1à¾\1a\8f\13tôã8\ 1À_\17á8A\aë8\ 1о
+Ç      *|\1e'Èø²\9a\8f\13tö8N\0´mÂq\82\8eÖq\ 2°}\15\8e\13\8e\13\0î«ù8Aeë8A¦}\13\8e\13\8e\13\80í«p\9c Ãu\9c\0p_ÍÇ      :{\1c'\0Ú6á8AEÏã\ 4Ù^Vá8A\87ë8\ 1à¾
+Ç      :\Ç     \0÷U8NÐá:N\0¸¯Âq\82
+\9fÇ     2¾¬Âq\82\ e×q\ 2À}\15\8e\13\8e\13\0î«p\9c Ãu\9c\0p_\85ã\ 4\15>\8f\13d|Y\85ã\ 4\1d®ã\ 4\80û*\1c'èp\1d'\0ÜWá8A\87ë8\ 1à¾
+Ç      \1aüé8AÄ×U8NÐá:N\0¸¯Âq\82\ e×q\ 2À}\15\8e\13\8e\13\0î«p\9c Âçq\82\8c/«p\9c Ãu\9c\0p_\85ã\ 4\1d®ã\ 4\80û*\1c'èp\1d'\0ÜWá8A\85Ïã\ 4\19_Vá8A\87ë8\ 1à¾
+Ç      :\Ç     \0÷U8N\10
+ûö8\ 1¼ q\9càù\ 5\9dÞ÷\8f\13\84Wô[\8f\13|>~Ü~\89\93\8f\13<\9ez\eÇ   Þ\9f\8e\13üüó_Ö"ÿxx¿¼Ï\7fÙË·îz¼ï~×õñtØþ"tÑë{Û\8bô\1fÏ}y\81/.\ 4|?bðêõì\1fF Ú6óa\84\92\1e\87\11ÈöÕ|\18¡ÄÇa\ 4Â}5\1eFèìq\18\ 1hßÌ\87\11Jz\1cF ÛWóa\84\12\1f\87\11\b÷Õt\18¡¤¿\1fF øëb>\8cÐÁ:\8c\0ô²\9a\ f#\94ø8\8c@¸¯æÃ\b%>\ e#\10î«ù0B\89\8fÃ\b\84ûj>\8cÐá:\8c\0ø²\9a\ f#\94ø8\8c@¸¯æÃ\b%>\ e#\10î«ù0B\89\8fÃ\b\84ûj>\8cÐá:\8c\0ø²\9a\ f#\94ø8\8c@¸¯æÃ\b%>\ e#\10î«ù0B\89\8fÃ\b\84ûj>\8cÐá:\8c\0ø²\9a\ f#\94ø8\8c@¸¯æÃ\b%>\ e#\10î«ù0B\89\8fÃ\b\84ûj>\8cÐá:\8c\0ø²\9a\ f#\94ø8\8c@¸¯æÃ\b%>\ e#\10î«ù0B\89\8fÃ\b\84ûj>\8cÐá:\8c\0ø²\9a\ f#\94ø8\8c@¸¯æÃ\b%>\ e#\10î«ù0B\89\8fÃ\b\84ûj>\8cÐá:\8c\0ø²\9a\ f#\94ø8\8c@¸¯æÃ\b%>\ e#\10î«ù0B\89\8fÃ\b\84ûj>\8cÐá:\8c\0ø²\9a\ f#\94ø8\8c@¸¯æÃ\b%>\ e#\10î«ù0B\89\8fÃ\b\84ûj>\8cPáó0BÆ×Õ|\18¡ÄÇa\ 4Â}5\1fF(ñq\18\81p_Í\87\11J|\1cF ÜWóa\84\ e×a\ 4À\97Õx\18¡´\1f\87\11\88¶Í|\18¡¤Ça\ 4²}5\1fF(ñq\18\81p_\8d\87\11:{\1cF\0Ú7óa\84\92\1e\87\11ÈöÕ|\18¡ÄÇa\ 4Â}5\1eF(íÇa\ 4¢m3\1fFèh\1dF\0{YÍ\87\11J|\1cF ÜWãa\84Ò~\1cF Ú6óa\84\92\1e\87\11ÈöÕ|\18¡Ãu\18\ 1ðe5\1eF(íÇa\ 4¢m3\1fF(éq\18\81l_Í\87\11J|\1cF ÜWóa\84\ e×a\ 4À\97Õ|\18¡ÄÇa\ 4Â}5\1fF(ñq\18\81p_Í\87\11J|\1cF ÜWóa\84\ e×a\ 4À\97Õ|\18¡ÄÇa\ 4Â}5\1fF(ñq\18\81p_Í\87\11J|\1cF ÜWóa\84\ e×a\ 4À\97Õ|\18¡ÄÇa\ 4Â}5\1fF(ñq\18\81p_Í\87\11J|\1cF ÜWóa\84\ e×a\ 4À\97Õ|\18¡ÄÇa\ 4Â}5\1fF(ñq\18\81p_Í\87\11J|\1cF ÜWóa\84\ e×a\ 4À\97Õ|\18¡ÄÇa\ 4Â}5\1fF(ñq\18\81p_Í\87\11J|\1cF ÜWóa\84
+\9f\87\112¾®æÃ\b%>\ e#\10î«ù0B\89\8fÃ\b\84ûj>\8cPâã0\ 2á¾\9a\ f#t¸\ e#\0¾¬æÃ\b%>\ e#\10î«ù0B\89\8fÃ\b\84ûj>\8cPâã0\ 2á¾\9a\ f#t¸\ e#\0¾¬æÃ\b%>\ e#\10î«ù0B\89\8fÃ\b\84ûj>\8cPâã0\ 2á¾\9a\ f#t¸\ e#\0¾¬æÃ\b%>\ e#\10î«ù0B\89\8fÃ\b\84ûj<\8c\8fÃ\bDÛf>\8cÐÑ:\8c\0ö²\9a\ f#\94ø8\8c@¸¯¦Ã\b%ýý0\ 2Á_\17óa\84\12\1e\87\11\88öÕ|\18¡Ãu\18\ 1ðe5\1eF(íÇa\ 4¢m3\1fF(éq\18\81l_Í\87\11J|\1cF ÜWãa\84Î\1e\87\11\80öÍ|\18¡¤Ça\ 4²}5\1fF(ñq\18\81p_\8d\87\11Jûq\18\81hÛÌ\87\11:Z\87\11À^Vóa\84\12\1f\87\11\b÷Õ|\18¡ÄÇa\ 4Â}5\1fF(ñq\18\81p_Í\87\11:\\87\11\0_Vóa\84\12\1f\87\11\b÷Õ|\18¡ÄÇa\ 4Â}5\1fF(ñq\18\81p_Í\87\11:\\87\11\0_Vóa\84\12\1f\87\11\b÷Õ|\18¡ÄÇa\ 4Â}5\1fF(ñq\18\81p_Í\87\11*|\1eFÈøº\9a\ f#\94ø8\8c@¸¯æÃ\b%>\ e#\10î«ù0B\89\8fÃ\b\84ûj>\8cÐá:\8c\0ø²\9a\ f#\94ø8\8c@¸¯æÃ\b%>\ e#\10î«ù0B\89\8fÃ\b\84ûj>\8cÐá:\8c\0ø²\9a\ f#\94ø8\8c@¸¯æÃ\b%>\ e#\10î«ù0B®û«Ã\bô\82\1eÏ}yA§ûîa\84ô\8a~óa\84ûg\96ø\ ew\11\1e\ f=Î"Ü\9fÏ"ü寿üé¿üt¾þøóO§ë\8fÿñ*\1d¾\?ÿ!ù\84üÕ\9c·ß5\9fÞ÷n$Ì 7½ÔÙó>½Ö\90ó®¯&Õ¼QöMhy+Y)o\96m\13BÞJVÇ\9b\84\8a·\92\15ñfÙ6!ámäYðFÙ7¡ß­då»Y¶M\88w+Yín\96m\13ÊÝJV¸\9b\84\91\e\84\92\95ìfÙ6!Ø­dõºY¶M¨u+Y±n\96m\13RÝF\9e¥n\94}\13:ÝJV¦\9b\84\92ÕèfÙ6¡Ð­d\ 5ºY¶MÈs\eyÖ¹QöMhs+Yin\96m\13ÂÜJV\97\9b\84\92\15åfÙ6!ÉmäYäFÙ7¡Ç­då¸Y¶M\88q+Y-n\96m\13JÜJV\88\9b\84\f·\91g\85\e\84\ 6·\92\95àfÙ6!À­dõ·Y¶M¨o+Yñm\96m\13ÒÛB~*o\93¼lBw[ÉÊn³l\9b\10ÝV²\9aÛ,Û&\14·\95¬à6˶ ¹m#ÏÚ6ʾ\99
+\1e©mv¿.Bh[¹êl3l\9bPÙV²"Û,ÛfNl\eX\85mtm\11úÚÊU^\9b\84¸¶\92ÕÖfÙ6sY[Á#¬Íî×EÈj\ewVµ\11öMhj+YIm\96m3\aµ\15<zÚì~]\84\9a¶r\15ÓfØ6!¥mäYÒFÙ7sG[Á#£Íî×E\88h+W\rm\86m\13
+ÚJV@\9b\84\91g=\e\84\92\95ÎfÙ6!\9c­du³Y¶M¨f+YÑl\96m\13\92ÙF\9eÅl\94}\13zÙJV.\9b\84\92ÕÊfÙ6¡\94­d\85²Y¶MÈd\eyV²QöMhd+Y\89l\96m\13\ 2ÙJV\1f\9b\84\92\15ÇfÙ6!\8dmäYÆFÙ7¡\8b­de±Y¶M\88b+YMl\96m\13\8aØJV\10\9b\84\1c\91g\r\e\84\16\92\95ÂfÙ6!\84­du°Y¶M¨`+Y\11l\96m\13\12ØB~*`\93¼lBÿZÉÊ_³l\9b\10¿V²Ú×,Û&\94¯\95¬ð5˶    Ùk#Ïê5ʾ        Ík%+yͲmBðZÉê]³l\9bP»V²b×,Û&¤®\8d<K×(û&t®\95¬Ì5˶     \91k%«qͲmBáZÉ
+\³l\9b\90·6ò¬[£ì\9bжV²ÒÖ,Û&\84­\95¬®5˶\99«Ö
+\1eQkv¿.BÒúÿWv7;\92fg\96\9do\85Crâ\bÿ÷\18v«Ñ\rA@     P\95.\80*F£\13MU\16Èh\bu÷rgÚÙÇ|\1f·w­\1cÕ\80\86ý|ð +#"¿õ\9aqwÑ:½  =«\92\93³Îrm\8e1«r/-ë¬~Ú\83\92U©  Yg·6!c5ò®XG¹7ç\86UÁ+a\9dÝÏ\8b\10°*7ýê\f×&Ô«JN¼:˵9§«\ 6N¹:ºµ\bݪr\93­ÎpmB´ªä4«³\\9bs±ªà\15¬ÎîçEÈU\8d»kÕ\11îMhU\95\9cTu\96k\13BU%§S\9dåÚ\84JUÉ\89Tg¹6!Q5ò.TG¹7¡OUròÔY®M\88S\95\9c6u\96k\13ÊT%'L\9dåÚ\84,ÕÈ»J\1dåÞ\84&UÉIRg¹6!HUrzÔY®M¨Q\95\9c\18u\96k\13RT!_\95¨\93|lB\87ªäd¨³\\9b\10¡*9\rê,×&\14¨JN\80:˵      ù©\91w}:ʽ        í©\92\93\9eÎrmBxªät§³\\9bP\9d*9Ñé,×&$§FÞÅé(÷&ô¦JNn:˵     ±©\92Ó\9aÎrmBiz;\91´¡éü4«3½z\9aûï·3ÓÛ\8fó»+Ó\8f\7fùýôü\ 2\99éúÔ¥3ýÞ\9déùEÀß>¾Aöå\ f×ûý\14\1f5×ËÓ­º4ßÈ<>a¾\91ùú      \87odþâq¦od\ 6»Wá\e\99\1d\9eod\ 6¼WÇodvôå\e\99\ 1þ¼\bßȬàý\8dÌ3}¬Â72;<ßÈ\fx¯Â72;<ßÈ\fx¯Â72;<\ 17à½
+       ·ÂwÃ=ãÇ*TÜ\ e\rx¯BÈíð\94Ü\80÷*´Ü\ e\rx¯BέðÝsÏø±
+E·Ã\93t\ 3Þ«\10u;<U7à½
+]·Ã\13v\ 3Þ«\90v+|·Ý3~¬BÝíðäÝ\80÷*\ 4Þ\ e\rx¯BãíðDÞ\80÷*dÞ
\9d÷\8c\1f«Pz;<©7à½
+±·ÃS{\ 3Þ«Ð{;<Á7à½
+É·Âwó=ãÇ*Tß\ e\rx¯Bøíð\94ß\80÷*´ß\ e\rx¯Bþ­ðÝ\7fÏø±
+\ 5¸Ã\93\80\ 3Þ«\10\81;<\158à½
+\1d¸Ã\13\82\ 3Þ«\90\82+|·à3~¬B\rîðäà\80÷*\ 4á\ eO\11\ ex¯B\13îðDá\80÷*dá\ 6¿êÂGü\\852ÜáIÃ\ 1ïU\88Ã\1d\9e:\1cð^\85>Üá      Ä\ 1ïUHÄ\15¾\eñ\19?VçJÜÙ+\13\aº6!\14wtJq°{\15Zq\87'\16\a¼Wç\\ÙéÅgº7¡\18wt\92q°{\15¢q\87§\1a\a¼WçnÜÙ+\1c\aº6!\1dWônÇgûX\85zÜáÉÇ\ 1ïÕ9 wö*È\81®MhÈ\1d\9d\88\1cì^\85\8c\á»#\9fñcu.É\9d½Rr k\13brG§&\a»W¡'wx\82rÀ{\15\92r\85ï¦|Æ\8fU¨Ê\1d\9e¬\1cð^\85°Üá)Ë\ 1ïUhË\1d\9e¸\1cð^\85¼\á»/\9fñc\15
+s\87'1\a¼W!2wx*sÀ{\15:s\87'4\a¼W!5WønÍgüX\85ÚÜáÉÍ\ 1ïU\bÎ\1d\9eâ\1cð^\85æÜá\89Î\ 1ïUÈÎ\15¾»ó\19?V¡<wxÒsÀ{\15âs\87§>\a¼W¡?wx\ 2tÀ{\15\12t\85ï\ 6\8fU¨Ð\1d\9e\f\1dð^\85\10Ýá)Ñ\ 1ïUhÑ\1d\9e\18\1dð^\85\1cÝàW=ú\88\9f«P¤;<I:à½
+QºÃS¥\ 3Þ«Ð¥;<a:à½
+iºÂw\9b>ãÇ*Ôé\ eO\9e\ ex¯B îð\14ê\80÷*4ê\ e\ ex¯B¦®ðÝ©Ïø±
+¥ºÃ\93ª\ 3Þ«\10«;<µ:à½
+½ºÃ\13¬\ 3Þ«\90¬+|7ë3~¬Bµîðdë\80÷*\84ë\ e\ ex¯Îíº³W¼\ etmB¾®èݯÏö±
+\ 5»Ã\93°\ 3Þ«cÄîèKÅ\ eðçEèØ\1d\9c\90\1dè^\85\94]á»e\9fñcu®Ù\9d½rv k\13\82vG§h\a»W¡iwx¢vÀ{uÎÚ\95\9d®}¦{\13ÊvG'm\a»W!nwxêvÀ{uîÛ\9d½\ 2w k\13\12wEïÆ}¶\8fU¨Ü\1d\9eÌ\1dð^\85ÐÝá)Ý\ 1ïUhÝ\1d\9eØ\1dð^\85Ü]á»w\9fñc\15\8aw\87'y\a¼W!zwxªwÀ{\15ºw\87'|\a¼W!}WønßgüX\85úÝáÉß\ 1ïU\bà\1d\9e\ 2\1eð^\85\ 6Þá\89à\ 1ïUÈà\r~ÕÁ\8fø¹
+%¼Ã\93Â\ 3Þ«\10Ã;<5<à½
+=¼Ã\13Ä\ 3Þ«\90Ä+|7ñ3~¬B\15ïðdñ\80÷*\84ñ\ eO\19\ fx¯B\eïðÄñ\80÷*äñ
+ß}ü\8c\1f«PÈ;<\89<à½
+\91¼ÃSÉ\ 3Þ«ÐÉ\ fµ·\råá\81V)ÿ©Hÿv;\95\1f\9eèw·òï\7ff½ÿþô\0­üo\9fº¿´òïÿÝ©Vþ_þôöí\8f¿þó/?\7f\9c)çG-ðñ\97\9ckãË\9fãýÇoïnTó»-½\9a\98ÚÒë§\1dÚÒ/\1ehjK\ 1ïUhK\15¾ÛÒ\19?V¡-uxÚRÀ{\15ÚR\87§-\ 5¼W¡-uxÚRÀ{\15ÚR\85ï¶tÆ\8fUhK\1d\9e\14ð^\85¶ÔáiK\ 1ïUhK\1d\9e\14ð^\85¶Tá»-\9dñc\15ÚR\87§-\ 5¼W¡-uxÚRÀ{\15ÚR\87§-\ 5¼W¡-UønKgüX\85¶ÔáiK\ 1ïUhK\1d\9e\14ð^\85¶ÔáiK\ 1ïUhK\15¾ÛÒ\19?V¡-uxÚRÀ{\15ÚR\87§-\ 5¼W¡-uxÚRÀ{\15ÚR\85ï¶tÆ\8fUhK\1d\9e\14ð^\85¶ÔáiK\ 1ïUhK\1d\9e\14ð^\85¶ÔàWmé\88\9f«Ð\96:<m)à½
+m©ÃÓ\96\ 2Þ«Ð\96:<m)à½
+m©Âw[:ãÇêÜ\96:{µ¥@×&´¥\8eN[
+v¯B[êð´¥\80÷êÜ\96*;méL÷&´¥\8eN[
+v¯B[êð´¥\80÷êÜ\96:{µ¥@×&´¥\8aÞmél\1f«Ð\96:<m)à½:·¥Î^m)е m©£Ó\96\82Ý«Ð\96*|·¥3~¬Îm©³W[
+tmB[êè´¥`÷*´¥\ eO[
+x¯B[ªðÝ\96Îø±
+m©ÃÓ\96\ 2Þ«Ð\96:<m)à½
+m©ÃÓ\96\ 2Þ«Ð\96*|·¥3~¬B[êð´¥\80÷*´¥\ eO[
+x¯B[êð´¥\80÷*´¥
+ßmé\8c\1f«Ð\96:<m)à½
+m©ÃÓ\96\ 2Þ«Ð\96:<m)à½
+m©Âw[:ãÇ*´¥\ eO[
+x¯B[êð´¥\80÷*´¥\ eO[
+x¯B[ªðÝ\96Îø±
+m©ÃÓ\96\ 2Þ«Ð\96:<m)à½
+m©ÃÓ\96\ 2Þ«Ð\96\1aüª-\1dñs\15ÚR\87§-\ 5¼W¡-uxÚRÀ{\15ÚR\87§-\ 5¼W¡-UønKgüX\85¶ÔáiK\ 1ïUhK\1d\9e\14ð^\85¶ÔáiK\ 1ïUhK\15¾ÛÒ\19?V¡-uxÚRÀ{\15ÚR\87§-\ 5¼W¡-uxÚRÀ{\15ÚR\85ï¶tÆ\8fUhK\1d\9e\14ð^\85¶ÔáiK\ 1ïÕ¹-uöjK\81®MhK\15½ÛÒÙ>V¡-uxÚRÀ{ulK\1d}iK\ 1þ¼\b\83Ó\96\ 2Ý«Ð\96*|·¥3~¬Îm©³W[
+tmB[êè´¥`÷*´¥\ eO[
+x¯Îm©²Ó\96ÎtoB[êè´¥`÷*´¥\ eO[
+x¯Îm©³W[
+tmB[ªèÝ\96Îö±
+m©ÃÓ\96\ 2Þ«Ð\96:<m)à½
+m©ÃÓ\96\ 2Þ«Ð\96*|·¥3~¬B[êð´¥\80÷*´¥\ eO[
+x¯B[êð´¥\80÷*´¥
+ßmé\8c\1f«Ð\96:<m)à½
+m©ÃÓ\96\ 2Þ«Ð\96:<m)à½
+m©Á¯ÚÒ\11?W¡-uxÚRÀ{\15ÚR\87§-\ 5¼W¡-uxÚRÀ{\15ÚR\85ï¶tÆ\8fUhK\1d\9e\14ð^\85¶ÔáiK\ 1ïUhK\1d\9e\14ð^\85¶Tá»-\9dñc\15ÚR\87§-\ 5¼W¡-uxÚRÀ{\15ÚÒ±\89tm)<ÐjK?\15\9c÷·ÛÒá\89~w[úôp÷ðôð
+méúÔ¥-½¿Ñ\96þõ\97\7f=ãÒßþêçþ\ f×Ôù\83|}zÿÿ\ 17âÒ\9dX\8e\13ËëÇ\1d\12Ë/\1ehJ,\ 1ïUH,\1d\9eÄ\12ð^\85ÄÒáI,\ 1ïUH,\15¾\13Ë\19?V!±tx\12KÀ{\15\12K\87\ 4¼W!±tx\12KÀ{\15\12K\85ïÄrÆ\8fUH,\1d\9eÄ\12ð^\85ÄÒáI,\ 1ïUH,\1d\9eÄ\12ð^\85ÄRá;±\9cñc\15\12K\87\ 4¼W!±tx\12KÀ{\15\12K\87\ 4¼W!±TøN,güX\85ÄÒáI,\ 1ïUH,\1d\9eÄ\12ð^\85ÄÒáI,\ 1ïUH,\15¾\13Ë\19?V!±tx\12KÀ{\15\12K\87\ 4¼W!±tx\12KÀ{\15\12K\83_%\96#~®Bbéð$\96\80÷*$\96\ eOb x¯Bbéð$\96\80÷*$\96
\89å\8c\1f«sbéì\95X\ 2]\9b\90X::\89%ؽ
+\89¥Ã\93X\ 2Þ«sb©ì$\96\9b\90X::\89%ؽ
+\89¥Ã\93X\ 2Þ«sbéì\95X\ 2]\9b\90X*z'\96³}¬Bbéð$\96\80÷ê\9cX:{%\96@×&$\96\8eNb      v¯Bb©ð\9dXÎø±:'\96Î^\89%е    \89¥£\93X\82Ý«\90X:<\89%à½
+\89¥Âwb9ãÇ*$\96\ eOb x¯Bbéð$\96\80÷*$\96\ eOb        x¯Bb©ð\9dXÎø±
+\89¥Ã\93X\ 2Þ«\90X:<\89%à½
+\89¥Ã\93X\ 2Þ«\90X*|'\963~¬Bbéð$\96\80÷*$\96\ eOb        x¯Bbéð$\96\80÷*$\96
\89å\8c\1f«\90X:<\89%à½
+\89¥Ã\93X\ 2Þ«\90X:<\89%à½
+\89¥Âwb9ãÇ*$\96\ eOb x¯Bbéð$\96\80÷*$\96\ eOb        x¯Bbið«ÄrÄÏUH,\1d\9eÄ\12ð^\85ÄÒáI,\ 1ïUH,\1d\9eÄ\12ð^\85ÄRá;±\9cñc\15\12K\87\ 4¼W!±tx\12KÀ{\15\12K\87\ 4¼W!±TøN,güX\85ÄÒáI,\ 1ïUH,\1d\9eÄ\12ð^\85ÄÒáI,\ 1ïUH,\15¾\13Ë\19?V!±tx\12KÀ{\15\12K\87\ 4¼WçÄÒÙ+±\ 4º6!±TôN,gûX\85ÄÒáI,\ 1ïÕ1±tô%±\ 4øó"$\96\ eNb t¯Bb©ð\9dXÎø±:'\96Î^\89%е    \89¥£\93X\82Ý«\90X:<\89%à½:'\96ÊNb9Ó½       \89¥£\93X\82Ý«\90X:<\89%à½:'\96Î^\89%е       \89¥¢wb9ÛÇ*$\96\ eOb  x¯Bbéð$\96\80÷*$\96\ eOb        x¯Bb©ð\9dXÎø±
+\89¥Ã\93X\ 2Þ«\90X:<\89%à½
+\89¥Ã\93X\ 2Þ«\90X*|'\963~¬Bbéð$\96\80÷*$\96\ eOb        x¯Bbéð$\96\80÷*$\96\ 6¿J,Gü\\85ÄÒáI,\ 1ïUH,\1d\9eÄ\12ð^\85ÄÒáI,\ 1ïUH,\15¾\13Ë\19?V!±tx\12KÀ{\15\12K\87\ 4¼W!±tx\12KÀ{\15\12K\85ïÄrÆ\8fUH,\1d\9eÄ\12ð^\85ÄÒáI,\ 1ïUH,Ç2Ð%\96ð@+±ü\142>ÜN,\87'úÝ\89åÃ÷÷?³¾ÿQ}N,ק.\89åÃN,ÿ¯_ÿzV\95ßîïÞ\9e?þ>ùj½\9fáý#oïÿ\84½QU~{¼{ýÇ\eNãó­\8f}z¾ó­ôo/ï\8füñ\17~_<Î\17ôåÓh÷ê\rüíîõþãÏ+\ e¿|\1añ^ý\1a¿¿¿{øö&íË\87\89îÍ\eòãÝË÷·\17K_>\8dv¯ÞÀ_>¾\ fÖþÌק\11ïÕ\eøÛÝ\8bþ\91ÿã³\b\7f\9a}¸¿»\7fýf\7fàëÓD\1f«7ð÷_\97\97\ 3_\9fF¼Woàï¿.Ï\1f\7fLqøåÓ\88÷ê\rüý×æéAÿØ/\9fF¼Wo|\13ñû¯Îã£ý±¯O\13~¬ÞÀß\7fu\1e\1eí\8f}}\1añ^½\81¯¯jvx¾\0\1að^\85/\80vx¾\0\1að^\85/\80Vø¾N0ãÇ*\'px®\13\0Þ«p\9dÀá¹N\0x¯Âu\ 2\87ç:\ 1à½
+×      \14¾¯\13Ìø±
+×      \1c\9eë\ 4\80÷*\'px®\13\0Þ«p\9dÀá¹N\0x¯Âu\ 2\85ïë\ 43~¬Âu\ 2\87ç:\ 1à½
+×      \1c\9eë\ 4\80÷*\'px®\13\0Þ«p\9d@áû:Á\8c\1f«p\9dÀá¹N\0x¯Âu\ 2\87ç:\ 1à½
+×      \1c\9eë\ 4\80÷*\'Pø¾N0ãÇ*\'px®\13\0Þ«p\9dÀá¹N\0x¯Âu\ 2\87ç:\ 1à½
+×      \14¾¯\13Ìø±
+×      \1c\9eë\ 4\80÷*\'px®\13\0Þ«p\9dÀá¹N\0x¯Âu\ 2\83_]'\18ñs\15®\138<×       \0ïU¸Nàð\'\0¼Wá:\81Ãs\9d\0ð^\85ë\ 4
+ß×     füX\9d¯\138{]'\0º6á:\81£s\9d\0ì^\85ë\ 4\ eÏu\ 2À{u¾N ì\'\98éÞ\84ë\ 4\8eÎu\ 2°{\15®\138<×        \0ïÕù:\81³×u\ 2 k\13®\13(z_'\98íc\15®\138<×    \0ïÕù:\81³×u\ 2 k\13®\138:×      ÀîU¸N ð}\9d\8fÕù:\81³×u\ 2 k\13®\138:×    ÀîU¸Nàð\'\0¼Wá:\81Â÷u\82\19?Vá:\81Ãs\9d\0ð^\85ë\ 4\ eÏu\ 2À{\15®\138<×  \0ïU¸N ð}\9d\8fU¸Nàð\'\0¼Wá:\81Ãs\9d\0ð^\85ë\ 4\ eÏu\ 2À{\15®\13(|_'\98ñc\15®\138<×        \0ïU¸Nàð\'\0¼Wá:\81Ãs\9d\0ð^\85ë\ 4
+ß×     füX\85ë\ 4\ eÏu\ 2À{\15®\138<×      \0ïU¸Nàð\'\0¼Wá:\81Â÷u\82\19?Vá:\81Ãs\9d\0ð^\85ë\ 4\ eÏu\ 2À{\15®\138<×  \0ïU¸N`ð«ë\ 4#~®Âu\ 2\87ç:\ 1à½
+×      \1c\9eë\ 4\80÷*\'px®\13\0Þ«p\9d@áû:Á\8c\1f«p\9dÀá¹N\0x¯Âu\ 2\87ç:\ 1à½
+×      \1c\9eë\ 4\80÷*\'Pø¾N0ãÇ*\'px®\13\0Þ«p\9dÀá¹N\0x¯Âu\ 2\87ç:\ 1à½
+×      \14¾¯\13Ìø±
+×      \1c\9eë\ 4\80÷*\'px®\13\0Þ«óu\ 2g¯ë\ 4@×&\'Pô¾N0ÛÇ*\'px®\13\0Þ«ãu\ 2G_®\13\0üy\11®\1388×   \80îU¸N ð}\9d\8fÕù:\81³×u\ 2 k\13®\138:×    ÀîU¸Nàð\'\0¼Wçë\ 4ÊÎu\82\99îM¸Nàè\'\0»Wá:\81Ãs\9d\0ð^\9d¯\138{]'\0º6á:\81¢÷u\82Ù>Vá:\81Ãs\9d\0ð^\85ë\ 4\ eÏu\ 2À{\15®\138<×    \0ïU¸N ð}\9d\8fU¸Nàð\'\0¼Wá:\81Ãs\9d\0ð^\85ë\ 4\ eÏu\ 2À{\15®\13(|_'\98ñc\15®\138<×        \0ïU¸Nàð\'\0¼Wá:\81Ãs\9d\0ð^\85ë\ 4\ 6¿ºN0âç*\'px®\13\0Þ«p\9dÀá¹N\0x¯Âu\ 2\87ç:\ 1à½
+×      \14¾¯\13Ìø±
+×      \1c\9eë\ 4\80÷*\'px®\13\0Þ«p\9dÀá¹N\0x¯Âu\ 2\85ïë\ 43~¬Âu\ 2\87ç:\ 1à½
+×      \1c\9eë\ 4\80÷*\'\18
+{{\9d\0\1eh]'øt\ 3`¸N0<Ñï¾Npÿr÷ø\11jÍ×  ~ûÔÛºNðøù:Áo_ÿüÛWA\9f)ç÷\8fS
+O{ãëK\ 5Ï\8fÏüýÏW\13Sayý´CaùÅ\ 3M\85%à½
+\85¥ÃSX\ 2Þ«PX:<\85%à½
+\85¥Âwa9ãÇ*\14\96\ eOa x¯Baéð\14\96\80÷*\14\96\ eOa        x¯Ba©ð]XÎø±
+\85¥ÃSX\ 2Þ«PX:<\85%à½
+\85¥ÃSX\ 2Þ«PX*|\17\963~¬Baéð\14\96\80÷*\14\96\ eOa        x¯Baéð\14\96\80÷*\14\96
\85å\8c\1f«PX:<\85%à½
+\85¥ÃSX\ 2Þ«PX:<\85%à½
+\85¥Âwa9ãÇ*\14\96\ eOa x¯Baéð\14\96\80÷*\14\96\ eOa        x¯Baið«ÂrÄÏU(,\1d\9eÂ\12ð^\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂRá»°\9cñcu.,\9d½
+K k\13
+KG§°\ 4»W¡°tx
+KÀ{u.,\95\9dÂr¦{\13
+KG§°\ 4»W¡°tx
+KÀ{u.,\9d½
+K k\13
+KEïÂr¶\8fU(,\1d\9eÂ\12ð^\9d\vKg¯Â\12èÚ\84ÂÒÑ),ÁîU(,\15¾\vË\19?VçÂÒÙ«°\ 4º6¡°tt
+K°{\15
+K\87§°\ 4¼W¡°Tø.,güX\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂÒá),\ 1ïU(,\15¾\vË\19?V¡°tx
+KÀ{\15
+K\87§°\ 4¼W¡°tx
+KÀ{\15
+K\85ïÂrÆ\8fU(,\1d\9eÂ\12ð^\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂRá»°\9cñc\15
+K\87§°\ 4¼W¡°tx
+KÀ{\15
+K\87§°\ 4¼W¡°Tø.,güX\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂÒá),\ 1ïU(,\r~UX\8eø¹
+\85¥ÃSX\ 2Þ«PX:<\85%à½
+\85¥ÃSX\ 2Þ«PX*|\17\963~¬Baéð\14\96\80÷*\14\96\ eOa        x¯Baéð\14\96\80÷*\14\96
\85å\8c\1f«PX:<\85%à½
+\85¥ÃSX\ 2Þ«PX:<\85%à½
+\85¥Âwa9ãÇ*\14\96\ eOa x¯Baéð\14\96\80÷ê\X:{\15\96@×&\14\96\8aÞ\85ål\1f«PX:<\85%à½:\16\96\8e¾\14\96\0\7f^\84ÂÒÁ),\81îU(,\15¾\vË\19?VçÂÒÙ«°\ 4º6¡°tt
+K°{\15
+K\87§°\ 4¼WçÂRÙ),gº7¡°tt
+K°{\15
+K\87§°\ 4¼WçÂÒÙ«°\ 4º6¡°Tô.,gûX\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂÒá),\ 1ïU(,\15¾\vË\19?V¡°tx
+KÀ{\15
+K\87§°\ 4¼W¡°tx
+KÀ{\15
+K\85ïÂrÆ\8fU(,\1d\9eÂ\12ð^\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂÒàW\85å\88\9f«PX:<\85%à½
+\85¥ÃSX\ 2Þ«PX:<\85%à½
+\85¥Âwa9ãÇ*\14\96\ eOa x¯Baéð\14\96\80÷*\14\96\ eOa        x¯Ba©ð]XÎø±
+\85¥ÃSX\ 2Þ«PX:<\85%à½
+\85åP\ 6ÚÂ\12\1eh\15\96\9f:ÆÇÛ\85åðD¿»°üxÃøíí  
+Ëõ©Kaù´\vË\7fþåç\8f÷ÿó·\1f\7fÿû\97_Oúöñöò\15Ò\8fòp÷ôt\7f3®Üß\1a:>çþÖÐë\a\1d¾5ô\8b\a\9a¾5\14ð^\85o\rux¾5\14ð^\85o\rUønZgüX\85¦ÕáiZ\ 1ïUhZ\1d\9e¦\15ð^\85¦ÕáiZ\ 1ïUhZ\15¾\9bÖ\19?V¡iux\9aVÀ{\15\9aV\87§i\ 5¼W¡iux\9aVÀ{\15\9aV\85ï¦uÆ\8fUhZ\1d\9e¦\15ð^\85¦ÕáiZ\ 1ïUhZ\1d\9e¦\15ð^\85¦Uá»i\9dñc\15\9aV\87§i\ 5¼W¡iux\9aVÀ{\15\9aV\87§i\ 5¼W¡iUønZgüX\85¦ÕáiZ\ 1ïUhZ\1d\9e¦\15ð^\85¦ÕáiZ\ 1ïUhZ\15¾\9bÖ\19?V¡iux\9aVÀ{\15\9aV\87§i\ 5¼W¡iux\9aVÀ{\15\9aV\83_5­#~®BÓêð4­\80÷*4­\ e
+x¯BÓêð4­\80÷*4­
+ßMë\8c\1f«sÓêìÕ´\ 2]\9bд::M+ؽ
+M«ÃÓ´\ 2Þ«sÓªì4­3Ý\9bд::M+ؽ
+M«ÃÓ´\ 2Þ«sÓêìÕ´\ 2]\9bд*z7­³}¬BÓêð4­\80÷êÜ´:{5­@×&4­\8e
+v¯BÓªðÝ´Îø±:7­Î^M+е   M«£Ó´\82ݫд:<M+à½
+M«ÂwÓ:ãÇ*4­\ e
+x¯BÓêð4­\80÷*4­\ e
+x¯BÓªðÝ´Îø±
+M«ÃÓ´\ 2ޫд:<M+à½
+M«ÃÓ´\ 2ޫд*|7­3~¬BÓêð4­\80÷*4­\ e
+x¯BÓêð4­\80÷*4­
+ßMë\8c\1f«Ð´:<M+à½
+M«ÃÓ´\ 2ޫд:<M+à½
+M«ÂwÓ:ãÇ*4­\ e
+x¯BÓêð4­\80÷*4­\ e
+x¯BÓjð«¦uÄÏUhZ\1d\9e¦\15ð^\85¦ÕáiZ\ 1ïUhZ\1d\9e¦\15ð^\85¦Uá»i\9dñc\15\9aV\87§i\ 5¼W¡iux\9aVÀ{\15\9aV\87§i\ 5¼W¡iUønZgüX\85¦ÕáiZ\ 1ïUhZ\1d\9e¦\15ð^\85¦ÕáiZ\ 1ïUhZ\15¾\9bÖ\19?V¡iux\9aVÀ{\15\9aV\87§i\ 5¼Wç¦ÕÙ«i\ 5º6¡iUônZgûX\85¦ÕáiZ\ 1ïÕ±iuô¥i\ 5øó"4­\ e
+t¯BÓªðÝ´Îø±:7­Î^M+е   M«£Ó´\82ݫд:<M+à½:7­ÊNÓ:Ó½       M«£Ó´\82ݫд:<M+à½:7­Î^M+е       M«¢wÓ:ÛÇ*4­\ e
+x¯BÓêð4­\80÷*4­\ e
+x¯BÓªðÝ´Îø±
+M«ÃÓ´\ 2ޫд:<M+à½
+M«ÃÓ´\ 2ޫд*|7­3~¬BÓêð4­\80÷*4­\ e
+x¯BÓêð4­\80÷*4­\ 6¿jZGü\\85¦ÕáiZ\ 1ïUhZ\1d\9e¦\15ð^\85¦ÕáiZ\ 1ïUhZ\15¾\9bÖ\19?V¡iux\9aVÀ{\15\9aV\87§i\ 5¼W¡iux\9aVÀ{\15\9aV\85ï¦uÆ\8fUhZ\1d\9e¦\15ð^\85¦ÕáiZ\ 1ïUhZ\87 Ó6­ð@«iýT\8e>ÝnZ\87'ú½MëÇ+í\1f¯Ù\8eIëúÐ¥h}þ\´ösÞ\7fÿȯ\9eïÿpµ}þà\1e\19øú\a÷1ðúüñ÷§óÓ­\8f]?ÞùJú·û»÷\7f\9e=~õ4ç\eéëó|lÞ\90\1fï^\1f_$üÛgÉý¼x\83}¹{xxy\95îåÃ\ 4×æ\rùý\17äþÕþ¨/\1f&¹6¿\96ïß\7fA¾½9øòYpkñ\ 6ûx÷òýMþ\12¯\ f\13\\9b\97÷?\94|\97?êõa\92\86üöþg1éþ㣤~ÚûÚ|¸¿»\7fý&\7fÎëÃàöæ\rùýWãå^þ\9c×\87I®Í\eòû¯Æóû\1f¾\9c|ù0ɵyC~ÿ\15yz°?íË\87I®Í\eÙÿû¯Éã£üi¯\ f\83Ü\9b7äËQ\ 4'¯K\v ×æ|gÁÉëÌ\ 2ȵ9\1fYpòº±\0rmÎ\17\16\94\9c\ 3\v³Ü\9bóy\ 5'¯ë
+ ×æ|[ÁÉë´\ 2ȵ9\1fVpòº«\0rmÎW\15\94\9c£
+³Ü\9bóI\ 5\8b
+ ×æ|OÁÉë\9c\ 2ȵ9\1fSpòº¥\0rmÎ\97\14\94\9cC
+³Ü\9bó\19\ 5'¯+
+ ×æ|CÁÉë\84\ 2ȵ9\1fPpòº\9f\0rmÎ×\13\94\9cã   ³Ü\9bóé\ 4'¯Ë        ×æ|7ÁÉël\ 2ȵ9\1fMpòº\99\0rmÎ\17\13\94\9c\83    ³Ü\9bó¹\ 4'¯k        ×æ|+ÁÉëT\ 2ȵ9\1fJpòº\93\0rmÎW\12\94\9c#    ³Ü\9bó\89\ 4\v        ×æ|\1fÁÉë<\ 2ȵ9\1fGpòº\8d\0rmÎ\97\11\8c¼\ f#\8cò±9\9fEpòº\8a\0rmÎ7\11\9c¼N"\80\\9bóA\ 4'¯{\b ×æ|\rAÉ9\860˽9\9eBpðå\12\ 2¸\9f\17ç;\bÎ]g\10\0®Íù\b\82\93×\r\ 4\90ks¼\80 àu\0avkq>\7fàÜuý\0àÚ\9co\1f8y\9d>\0¹6ÇÃ\a\ e¾Ü=\0÷óâ|õ@¹9z0ý9\9f<pòºx\0rm\8e÷\ e\1c|9w\0îçÅùØ\81s×­\ 3\80ks¾t ä\1c:\98åÞ\1cÏ\1c8ørå\0ÜÏ\8bó\8d\ 3ç®\13\a\0×æ|àÀÉë¾\ 1ȵ9_7Pr\8e\eÌroΧ\r\9c¼.\e\80\\9bó]\ 3'¯³\ 6 ×æ|ÔÀÉë¦\ 1ȵ9_4Pr\ e\1aÌroÎç\f\9c¼®\19\80\\9bó-\ 3'¯S\ 6 ×æ|ÈÀÉë\8e\ 1ȵ9_1Pr\8e\18ÌroÎ'\f\9c¼.\18\80\\9bóý\ 2'¯ó\ 5 ×æ|¼ÀÉëv\ 1ȵ9_.Pr\ e\17ÌroÎg\v\9c¼®\16\80\\9bóÍ\ 2\93\ 5 ×æ|°ÀÉë^\ 1ȵ9_+Pr\8e\15ÌroΧ
+\9c¼.\15\80\\9bó\9d\ 2'¯3\ 5 ×æ|¤ÀÉëF\ 1ȵ9_(0ò>P0ÊÇæ|\9eÀÉë:\ 1ȵ9ß&pò:M\0rmÎ\87     \9c¼î\12\80\\9bóU\ 2%ç(Á,÷æ|\92ÀÉë"\ 1ȵ9ß#pò:G\0rmÎÇ\b\9c¼n\11\80\\9bó%\ 2\10Á,÷æ|\86ÀÉë
+\ 1ȵ9ß pò:A\0rmÎ\a\b\9c¼î\ f\80\\9bóõ\ 1%çøÀ,÷æ|zÀÉëò\0ȵ9ß\1dpò:;\0rm\8eG\a\1c|¹9\0îçÅùâ\80rsp`\86{s>7àäum\0äÚ\9cn\r8÷·S\ 3 ~Ú\9b\ f\r8uÝ\19\0·6ç+\ 3\91\81YîÍñÄ\80\83/\17\ 6Àý¼8ß\17pî:/\0pmÎÇ\ 5\9c¼n\v\80\\9bãe\ 1\ 5¯Ã\ 2³[\8bóY\ 1箫\ 2\0×æ|SÀÉë¤\0ȵ9\1e\14pðå\9e\0¸\9f\17çk\ 2ÊÍ1\81\19îÍù\94\80\93×%\ 1\90ks¾#àäuF\0äÚ\9c\8f\b8yÝ\10\0¹6ç\v\ 2\ 1\81YîÍù|\80\93×õ\0\90ks¾\1dàäu:\0äÚ\9c\ f\a8yÝ\r\0¹6ç«\ 1JÎÑ\80YîÍùd\80\93×Å\0\90ks¾\17àäu.\0äÚ\9c\8f\ 58yÝ
+\0¹6çK\ 1\87\ 2FùØ\9cÏ\ 48y]    \0¹6ç\e\ 1N^'\ 2@®Íù@\80\93×}\0\90ks¾\ e ä\1c\a\98åÞ\9cO\ 38y]\ 6\0¹6ç»\0N^g\ 1@®Íù(\80\93×M\0\90ks¾\b ä\1c\ 4\98åÞ\9cÏ\ 18y]\ 3\0¹6ç[\0N^§\0@®Íù\10À\98³«;\0ð4\97\8f}ªí\9fo^\ 1\18\1eçw\1f\ 1xÿmáûoV^à
+ÀúÔå\fÀËÕ\19\80¿þò¯?þÓÏ\9f\7fûåÿùÓ÷?þ¯ó(ÀG\18øúø\91y\Yç÷[?¾<Üú1^u\80ããî\10ðúy\87\12ð\8b\a\9aR@À{\15b@\87§\ 6\ 4¼W¡\atx\82@À{\15\92@\85ï&pÆ\8f\ 2\1d\9e,\10ð^\850Ðá)\ 3\ 1ïUh\ 3\1d\9e8\10ð^\85<Pá»\ f\9cñc\15
+A\87'\11\ 4¼W!\12tx*AÀ{\15:A\87'\14\ 4¼W!\15Tøn\ 5güX\85ZÐáÉ\ 5\ 1ïU\b\ 6\1d\9eb\10ð^\85fÐá\89\ 6\ 1ïUÈ\ 6\15¾»Á\19?V¡\1ctxÒAÀ{\15âA\87§\1e\ 4¼W¡\1ftx\ 2BÀ{\15\12B\85ï\86\8f\b\1d\9e\8c\10ð^\85\90Ðá)   \ 1ïUh    \1d\9e\98\10ð^\85\9cÐàW=á\88\9f«P\14:<I!à½
+Q¡ÃS\15\ 2Þ«Ð\15:<a!à½
+i¡Âw[8ãÇê\\17:{å\85@×&\ 4\86\8eNa\bv¯BcèðD\86\80÷ê\9c\19*;\9dáL÷&\94\86\8eNj\bv¯BlèðÔ\86\80÷êÜ\e:{\ 5\87@×&$\87\8aÞÍál\1f«P\1d:<Ù!à½:\87\87Î^å!е       í¡£\13\1f\82Ý«\90\1f*|÷\873~¬Î\ 5¢³W\82\btmB\84èèT\88`÷*t\88\ eO\88\bx¯B\8a¨ðÝ"Îø±
+5¢Ã\93#\ 2Þ«\10$:<E"à½
+M¢Ã\13%\ 2Þ«\90%*|w\893~¬B\99èð¤\89\80÷*Ä\89\ eO\9d\bx¯B\9fèð\ 4\8a\80÷*$\8a
\8dâ\8c\1f«P):<\99"à½
+¡¢ÃS*\ 2Þ«Ð*:<±"à½
+¹¢Âw¯8ãÇ*\14\8b\ e\bx¯B´èðT\8b\80÷*t\8b\ e\bx¯Bº¨ðÝ.Îø±
+õ¢Ã\93/\ 2Þ«\100:<\ 5#à½
+\r£Ã\131\ 2Þ«\901\1aüªc\1cñs\15JF\87'e\ 4¼W!ftxjFÀ{\15zF\87'h\ 4¼W!iTøn\1agüX\85ªÑáÉ\1a\ 1ïU\b\e\1d\9e²\11ð^\85¶Ñá\89\e\ 1ïUÈ\e\15¾ûÆ\19?V¡ptx\12GÀ{\15"G\87§r\ 4¼W¡stxBGÀ{\15RG\85ïÖqÆ\8f\1d\1d\9eÜ\11ð^\85àÑá)\1e\ 1ïÕ¹ytö\8a\1e\81®MÈ\1e\15½»ÇÙ>V¡|txÒGÀ{u\8c\1f\1d\1f\ 1þ¼\bý£\83\13@\ 2Ý«\90@*|7\903~¬Î\15¤³W\ 6        tmB\béè\94\90`÷*´\90\ eO\f        x¯Î9¤²ÓCÎtoB\11éè$\91`÷*D\91\ eO\15       x¯Î]¤³W\18        tmB\1a©èÝFÎö±
+u¤Ã\93G\ 2Þ«\10H:<\85$à½
+\8d¤Ã\13I\ 2Þ«\90I*|w\923~¬B)éð¤\92\80÷*Ä\92\ eO-        x¯B/éð\ 4\93\80÷*$\93
+ßÍä\8c\1f«PM:<Ù$à½
+á¤ÃSN\ 2Þ«ÐN:<ñ$à½
+ù¤Á¯úÉ\11?W¡ tx\12JÀ{\15"J\87§¢\ 4¼W¡£txBJÀ{\15RJ\85ï\96\8fU¨)\1d\9e\9c\12ð^\85 Òá)*\ 1ïUh*\1d\9e¨\12ð^\85¬Rừ\9cñc\15ÊJ\87\ 4¼W!®txêJÀ{\15úÊ¡\f´\81%<Ð*,?\95\8c\13Ëá\89\8eÆò\19\1aË\97÷\8f?>ÝCc¹>ui,_§Æò_þôöí\8fÿñï?¾\8a½>þ¦õJ<\7f\9e÷\ fïÿµ¸QZîük|è\9d\7f]?õ\90\7f}ñ@Sþ5ãÇ*ä_\ e\ 5x¯Bþåðä_\80÷*ä_\ e\ 5x¯Bþ¥ð\9d\7fÍø±
\97Ã\93\7f\ 1Þ«\90\7f9<ù\17à½
\97Ã\93\7f\ 1Þ«\90\7f)|ç_3~¬Bþåðä_\80÷*ä_\ e\ 5x¯Bþåðä_\80÷*ä_
+ßù×\8c\1f«\90\7f9<ù\17à½
\97Ã\93\7f\ 1Þ«\90\7f9<ù\17à½
\97Á¯ò¯\11?W!ÿrxò/À{\15ò/\87'ÿ\ 2¼W!ÿrxò/À{\15ò/\85ïükÆ\8fÕ9ÿröÊ¿\80®MÈ¿\1c\9dü\vì^\85üËáÉ¿\0ïÕ9ÿRvò¯\99îMÈ¿\1c\9dü\vì^\85üËáÉ¿\0ïÕ9ÿröÊ¿\80®MÈ¿\14½ó¯Ù>V!ÿrxò/À{uο\9c½ò/ k\13ò/G'ÿ\ 2»W!ÿRøοfüX\9dó/g¯ü\vèÚ\84üËÑÉ¿ÀîUÈ¿\1c\9eü\vð^\85üKá;ÿ\9añc\15ò/\87'ÿ\ 2¼W!ÿrxò/À{\15ò/\87'ÿ\ 2¼W!ÿRøοfüX\85üËáÉ¿\0ïUÈ¿\1c\9eü\vð^\85üËáÉ¿\0ïUÈ¿\14¾ó¯\19?V!ÿrxò/À{\15ò/\87'ÿ\ 2¼W!ÿrxò/À{\15ò/\85ïükÆ\8fUÈ¿\1c\9eü\vð^\85üËáÉ¿\0ïUÈ¿\1c\9eü\vð^\85üKá;ÿ\9añc\15ò/\87'ÿ\ 2¼W!ÿrxò/À{\15ò/\87'ÿ\ 2¼W!ÿ2øUþ5âç*ä_\ e\ 5x¯Bþåðä_\80÷*ä_\ e\ 5x¯Bþ¥ð\9d\7fÍø±
\97Ã\93\7f\ 1Þ«\90\7f9<ù\17à½
\97Ã\93\7f\ 1Þ«\90\7f)|ç_3~¬Bþåðä_\80÷*ä_\ e\ 5x¯Bþåðä_\80÷*ä_
+ßù×\8c\1f«\90\7f9<ù\17à½
\97Ã\93\7f\ 1Þ«sþåì\95\7f\ 1]\9b\90\7f)zç_³}¬Bþåðä_\80÷ê\98\7f\92\7f\ 1üy\11ò/\a'ÿ\ 2ºW!ÿRøοfüX\9dó/g¯ü\vèÚ\84üËÑÉ¿ÀîUÈ¿\1c\9eü\vð^\9dó/e'ÿ\9aéÞ\84üËÑÉ¿ÀîUÈ¿\1c\9eü\vð^\9dó/g¯ü\vèÚ\84üKÑ;ÿ\9aíc\15ò/\87'ÿ\ 2¼W!ÿrxò/À{\15ò/\87'ÿ\ 2¼W!ÿRøοfüX\85üËáÉ¿\0ïUÈ¿\1c\9eü\vð^\85üËáÉ¿\0ïUÈ¿\14¾ó¯\19?V!ÿrxò/À{\15ò/\87'ÿ\ 2¼W!ÿrxò/À{\15ò/\83_å_#~®Bþåðä_\80÷*ä_\ e\ 5x¯Bþåðä_\80÷*ä_
+ßù×\8c\1f«\90\7f9<ù\17à½
\97Ã\93\7f\ 1Þ«\90\7f9<ù\17à½
\97Âwþ5ãÇ*ä_\ e\ 5x¯Bþåðä_\80÷*ä_c®äò/x \95\7f}\8a¬^oç_Ã\13ýî¯Ø{¾¿{~{x\85ük}ê\92\7f½Uþõ¿ÿÛß\7fþùß~þòç\9f¿üúogöõþ;ö×\8f\7fO~e\9d\7f¼\88x+üÊ7\9e\8d\8f»¿ñìúy\87o<ûâ\81¦o<\ 3¼Wá\eÏ\1c\9eä\rð^\85äMá;y\9bñc\15\927\87'y\ 3¼W!ysx\927À{\15\927\87'y\ 3¼W!ySøNÞfüX\85äÍáIÞ\0ïUHÞ\1c\9eä\rð^\85äÍáIÞ\0ïUHÞ\14¾\93·\19?V!ysx\927À{\15\927\87'y\ 3¼W!ysx\927À{\15\927\85ïämÆ\8fUHÞ\1c\9eä\rð^\85äÍáIÞ\0ïUHÞ\1c\9eä\rð^\85äÍàWÉÛ\88\9f«\90¼9<É\eà½
\9bÃ\93¼\ 1Þ«\90¼9<É\eà½
\9bÂwò6ãÇê\9c¼9{%o@×&$o\8e\ 6v¯Bòæð$o\80÷ê\9c¼);ÉÛL÷&$o\8e\ 6v¯Bòæð$o\80÷ê\9c¼9{%o@×&$o\8aÞÉÛl\1f«\90¼9<É\eà½:'oÎ^É\eе       É\9b£\93¼\81Ý«\90¼)|'o3~¬ÎÉ\9b³Wò\ 6tmBòæè$o`÷*$o\ e\ 6x¯Bò¦ð\9d¼Íø±
\9bÃ\93¼\ 1Þ«\90¼9<É\eà½
\9bÃ\93¼\ 1Þ«\90¼)|'o3~¬Bòæð$o\80÷*$o\ e\ 6x¯Bòæð$o\80÷*$o
+ßÉÛ\8c\1f«\90¼9<É\eà½
\9bÃ\93¼\ 1Þ«\90¼9<É\eà½
\9bÂwò6ãÇ*$o\ e\ 6x¯Bòæð$o\80÷*$o\ e\ 6x¯Bò¦ð\9d¼Íø±
\9bÃ\93¼\ 1Þ«\90¼9<É\eà½
\9bÃ\93¼\ 1Þ«\90¼\19ü*y\eñs\15\927\87'y\ 3¼W!ysx\927À{\15\927\87'y\ 3¼W!ySøNÞfüX\85äÍáIÞ\0ïUHÞ\1c\9eä\rð^\85äÍáIÞ\0ïUHÞ\14¾\93·\19?V!ysx\927À{\15\927\87'y\ 3¼W!ysx\927À{\15\927\85ïämÆ\8fUHÞ\1c\9eä\rð^\85äÍáIÞ\0ïÕ9ysöJÞ\80®MHÞ\14½\93·Ù>V!ysx\927À{uLÞ\1c}IÞ\0þ¼\bÉ\9b\83\93¼\ 1Ý«\90¼)|'o3~¬ÎÉ\9b³Wò\ 6tmBòæè$o`÷*$o\ e\ 6x¯ÎÉ\9b²\93¼ÍtoBòæè$o`÷*$o\ e\ 6x¯ÎÉ\9b³Wò\ 6tmBò¦è\9d¼Íö±
\9bÃ\93¼\ 1Þ«\90¼9<É\eà½
\9bÃ\93¼\ 1Þ«\90¼)|'o3~¬Bòæð$o\80÷*$o\ e\ 6x¯Bòæð$o\80÷*$o
+ßÉÛ\8c\1f«\90¼9<É\eà½
\9bÃ\93¼\ 1Þ«\90¼9<É\eà½
\9bÁ¯\92·\11?W!ysx\927À{\15\927\87'y\ 3¼W!ysx\927À{\15\927\85ïämÆ\8fUHÞ\1c\9eä\rð^\85äÍáIÞ\0ïUHÞ\1c\9eä\rð^\85äMá;y\9bñc\15\927\87'y\ 3¼W!ysx\927À{\15\92·1ÔrÉ\e<ÐJÞ>\85eo·\93·á\89~wòöøöþ\ f\9b÷?ªÏÉÛúÔ%yû^ÉÛñ\1eøÇ¿>yþøßÕÕüW\95Ûëͯ7ûöx÷ú\8fW\9cÆ\a\\1fûô\80çkéß^î\1e\1e>þÆï\8bÇù\82¾|\1aí^½\81¿Ý½Þ\7fü\81Åá\97O#Þ«_ã÷÷w\ f\1fÿ>EÙ\97\ f\13Ý\9b7äÇ»\97ïo/\96¾|\1aí^½\81¿¼ÿ\9eý»ý\99¯O#Þ«7ð÷ÿTÿÈÿñY\84?/~Í>ÜßÝ¿~³?ðõi¢\8fÕ\eøû¯Ë˽ý\81¯O#Þ«7ð÷_\97ç\8f?§8üòiÄ{õ\ 6þþ\9f>=è\1fûåÓ\88÷ê×øãû¯Îã£ý±¯O\13~¬ÞÀß\7fu\1e\1eí\8f}}\1añ^½\81¿ÿêÜ?Ù\1fûú4â½z\ 3\7fÿO¿=?XüòiÄ{õküéþîÛ÷gûc_\9f&üX½\81?¾ÿÖãÅþØק\11ïÕ\eøËÝ·×Wûc_\9fF¼WoàowÏ/¯úÇ~ù4â½z£\93\7fÿÕ¹õû©/:ù˧   ?Voàë\90\80Ãs\9e\0ð^\85ó\ 4\ eÏy\ 2À{\15Î\138<ç    \0ïU8O ð}\9e\8fU8Oàð\9c'\0¼Wá<\81Ãs\9e\0ð^\85ó\ 4\ eÏy\ 2À{\15Î\13(|\9f'\98ñc\15Î\138<ç        \0ïU8Oàð\9c'\0¼Wá<\81Ãs\9e\0ð^\85ó\ 4
+ßç     füX\85ó\ 4\ eÏy\ 2À{\15Î\138<ç      \0ïU8Oàð\9c'\0¼Wá<\81Â÷y\82\19?Vá<\81Ãs\9e\0ð^\85ó\ 4\ eÏy\ 2À{\15Î\138<ç  \0ïU8O`ð«ó\ 4#~®Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9e@áû<Á\8c\1f«óy\ 2g¯ó\ 4@×&\9c'ptÎ\13\80Ý«p\9eÀá9O\0x¯Îç        \94\9dó\ 4\9bp\9eÀÑ9O\0v¯Ây\ 2\87ç<\ 1à½:\9f'pö:O\0tmÂy\ 2Eïó\ 4³}¬Ây\ 2\87ç<\ 1à½:\9f'pö:O\0tmÂy\ 2Gç<\ 1ؽ
+ç      \14¾Ï\13Ìø±:\9f'pö:O\0tmÂy\ 2Gç<\ 1ؽ
+ç      \1c\9eó\ 4\80÷*\9c'Pø>O0ãÇ*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \14¾Ï\13Ìø±
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\85ïó\ 43~¬Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9e@áû<Á\8c\1f«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'Pø>O0ãÇ*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \f~u\9e`ÄÏU8Oàð\9c'\0¼Wá<\81Ãs\9e\0ð^\85ó\ 4\ eÏy\ 2À{\15Î\13(|\9f'\98ñc\15Î\138<ç     \0ïU8Oàð\9c'\0¼Wá<\81Ãs\9e\0ð^\85ó\ 4
+ßç     füX\85ó\ 4\ eÏy\ 2À{\15Î\138<ç      \0ïU8Oàð\9c'\0¼Wá<\81Â÷y\82\19?Vá<\81Ãs\9e\0ð^\85ó\ 4\ eÏy\ 2À{u>Oàìu\9e\0èÚ\84ó\ 4\8aÞç        fûX\85ó\ 4\ eÏy\ 2À{u<OàèËy\ 2\80?/Ây\ 2\aç<\ 1н
+ç      \14¾Ï\13Ìø±:\9f'pö:O\0tmÂy\ 2Gç<\ 1ؽ
+ç      \1c\9eó\ 4\80÷ê|\9e@Ù9O0Ó½        ç       \1c\9dó\ 4`÷*\9c'pxÎ\13\0Þ«óy\ 2g¯ó\ 4@×&\9c'Pô>O0ÛÇ*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \14¾Ï\13Ìø±
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\85ïó\ 43~¬Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9eÀàWç  Fü\\85ó\ 4\ eÏy\ 2À{\15Î\138<ç      \0ïU8Oàð\9c'\0¼Wá<\81Â÷y\82\19?Vá<\81Ãs\9e\0ð^\85ó\ 4\ eÏy\ 2À{\15Î\138<ç  \0ïU8O ð}\9e\8fU8Oàð\9c'\0¼Wá<\81Ãs\9e\0ð^\85ó\ 4caïÎ\13À\ 3­ó\ 4\9f\8e\0|¿}\9e`x¢ã<Á3\9c'xÿi¼¼¾ÿ÷`>O°>õÛy\82Çou\9eà_þôöí\8f¿þÓ¯\7fùñ÷/Sη\8fwi¯¤~\9e\87»§ûû\9b\97
+va9>ì.,¯\9fv(,¿x ©°\ 4¼W¡°tx
+KÀ{\15
+K\87§°\ 4¼W¡°Tø.,güX\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂÒá),\ 1ïU(,\15¾\vË\19?V¡°tx
+KÀ{\15
+K\87§°\ 4¼W¡°tx
+KÀ{\15
+K\85ïÂrÆ\8fU(,\1d\9eÂ\12ð^\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂRá»°\9cñc\15
+K\87§°\ 4¼W¡°tx
+KÀ{\15
+K\87§°\ 4¼W¡°Tø.,güX\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂÒá),\ 1ïU(,\r~UX\8eø¹
+\85¥ÃSX\ 2Þ«PX:<\85%à½
+\85¥ÃSX\ 2Þ«PX*|\17\963~¬Î\85¥³Wa        tmBaéè\14\96`÷*\14\96\ eOa        x¯Î\85¥²SXÎtoBaéè\14\96`÷*\14\96\ eOa       x¯Î\85¥³Wa        tmBa©è]XÎö±
+\85¥ÃSX\ 2Þ«saéìUX\ 2]\9bPX::\85%ؽ
+\85¥Âwa9ãÇê\X:{\15\96@×&\14\96\8eNa        v¯Baéð\14\96\80÷*\14\96
\85å\8c\1f«PX:<\85%à½
+\85¥ÃSX\ 2Þ«PX:<\85%à½
+\85¥Âwa9ãÇ*\14\96\ eOa x¯Baéð\14\96\80÷*\14\96\ eOa        x¯Ba©ð]XÎø±
+\85¥ÃSX\ 2Þ«PX:<\85%à½
+\85¥ÃSX\ 2Þ«PX*|\17\963~¬Baéð\14\96\80÷*\14\96\ eOa        x¯Baéð\14\96\80÷*\14\96
\85å\8c\1f«PX:<\85%à½
+\85¥ÃSX\ 2Þ«PX:<\85%à½
+\85¥Á¯
\11?W¡°tx
+KÀ{\15
+K\87§°\ 4¼W¡°tx
+KÀ{\15
+K\85ïÂrÆ\8fU(,\1d\9eÂ\12ð^\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂRá»°\9cñc\15
+K\87§°\ 4¼W¡°tx
+KÀ{\15
+K\87§°\ 4¼W¡°Tø.,güX\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\9d\vKg¯Â\12èÚ\84ÂRÑ»°\9cíc\15
+K\87§°\ 4¼WÇÂÒÑ\97Â\12àÏ\8bPX:8\85%н
+\85¥Âwa9ãÇê\X:{\15\96@×&\14\96\8eNa        v¯Baéð\14\96\80÷ê\X*;\85åL÷&\14\96\8eNa       v¯Baéð\14\96\80÷ê\X:{\15\96@×&\14\96\8aÞ\85ål\1f«PX:<\85%à½
+\85¥ÃSX\ 2Þ«PX:<\85%à½
+\85¥Âwa9ãÇ*\14\96\ eOa x¯Baéð\14\96\80÷*\14\96\ eOa        x¯Ba©ð]XÎø±
+\85¥ÃSX\ 2Þ«PX:<\85%à½
+\85¥ÃSX\ 2Þ«PX\1aüª°\1cñs\15
+K\87§°\ 4¼W¡°tx
+KÀ{\15
+K\87§°\ 4¼W¡°Tø.,güX\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂÒá),\ 1ïU(,\15¾\vË\19?V¡°tx
+KÀ{\15
+K\87§°\ 4¼W¡°\1cÊ@[XÂ\ 3­Âòú\81\1e¿Ý.,\87'úÝ_\0}ÿñÛé·'(,ק.\85åý*,ÿ×Ïÿñ¿ý\8f\1fÿú?¿üâáç\8f\7fstµÿEWùt\7fë§wõ\95Àã#î¯\ 4¾~Æá+\81¿x é+\81\ 1ïÕñ+\81\1d}ùJ`\80?/ÂW\ 2+x\7f%ðL\1f«ð\95À\ eÏW\ 2\ 3Þ«ð\95À\ eÏW\ 2\ 3Þ«ð\95À\ eÏW\ 2\ 3Þ«ð\95À
+ß_     <ãÇ*|%°Ãó\95À\80÷*|%°Ãó\95À\80÷*|%°Ãó\95À\80÷*|%°Âw°>ãÇ*\ 4ë\ e\ ex¯B°îð\ 4ë\80÷*\ 4ë\ e\ ex¯B°®ð\1d¬Ïø±
+ÁºÃ\13¬\ 3Þ«\10¬;<Á:à½
+ÁºÃ\13¬\ 3Þ«\10¬+|\aë3~¬B°îð\ 4ë\80÷*\ 4ë\ e\ ex¯B°îð\ 4ë\80÷*\ 4ë
+ßÁú\8c\1f«\10¬;<Á:à½
+ÁºÃ\13¬\ 3Þ«\10¬;<Á:à½
+ÁºÂw°>ãÇ*\ 4ë\ e\ ex¯B°îð\ 4ë\80÷*\ 4ë\ e\ ex¯B°®ð\1d¬Ïø±
+ÁºÃ\13¬\ 3Þ«\10¬;<Á:à½
+ÁºÃ\13¬\ 3Þ«\10¬\eü*X\1fñs\15\82u\87'X\a¼W!Xwx\82uÀ{\15\82u\87'X\a¼W!XWø\ eÖgüX\9d\83ug¯`\1dèÚ\84`ÝÑ      ÖÁîU\bÖ\1d\9e`\1dð^\9d\83ue'X\9féÞ\84`ÝÑ       ÖÁîU\bÖ\1d\9e`\1dð^\9d\83ug¯`\1dèÚ\84`]Ñ;X\9fíc\15\82u\87'X\a¼Wç`ÝÙ+X\aº6!Xwt\82u°{\15\82u\85ï`}Æ\8fÕ9Xwö
\81®M\bÖ\1d\9d`\1dì^\85`Ýá       Ö\ 1ïU\bÖ\15¾\83õ\19?V!Xwx\82uÀ{\15\82u\87'X\a¼W!Xwx\82uÀ{\15\82u\85ï`}Æ\8fU\bÖ\1d\9e`\1dð^\85`Ýá    Ö\ 1ïU\bÖ\1d\9e`\1dð^\85`]á;X\9fñc\15\82u\87'X\a¼W!Xwx\82uÀ{\15\82u\87'X\a¼W!XWø\ eÖgüX\85`Ýá    Ö\ 1ïU\bÖ\1d\9e`\1dð^\85`Ýá        Ö\ 1ïU\bÖ\15¾\83õ\19?V!Xwx\82uÀ{\15\82u\87'X\a¼W!Xwx\82uÀ{\15\82u\83_\ 5ë#~®B°îð\ 4ë\80÷*\ 4ë\ e\ ex¯B°îð\ 4ë\80÷*\ 4ë
+ßÁú\8c\1f«\10¬;<Á:à½
+ÁºÃ\13¬\ 3Þ«\10¬;<Á:à½
+ÁºÂw°>ãÇ*\ 4ë\ e\ ex¯B°îð\ 4ë\80÷*\ 4ë\ e\ ex¯B°®ð\1d¬Ïø±
+ÁºÃ\13¬\ 3Þ«\10¬;<Á:à½:\aëÎ^Á:е      Áº¢w°>ÛÇ*\ 4ë\ e\ e\8eÁº£/Á:À\9f\17!Xwp\82u {\15\82u\85ï`}Æ\8fÕ9Xwö
\81®M\bÖ\1d\9d`\1dì^\85`Ýá       Ö\ 1ïÕ9XWv\82õ\99îM\bÖ\1d\9d`\1dì^\85`Ýá       Ö\ 1ïÕ9Xwö
\81®M\bÖ\15½\83õÙ>V!Xwx\82uÀ{\15\82u\87'X\a¼W!Xwx\82uÀ{\15\82u\85ï`}Æ\8fU\bÖ\1d\9e`\1dð^\85`Ýá   Ö\ 1ïU\bÖ\1d\9e`\1dð^\85`]á;X\9fñc\15\82u\87'X\a¼W!Xwx\82uÀ{\15\82u\87'X\a¼W!X7øU°>âç*\ 4ë\ e\ ex¯B°îð\ 4ë\80÷*\ 4ë\ e\ ex¯B°®ð\1d¬Ïø±
+ÁºÃ\13¬\ 3Þ«\10¬;<Á:à½
+ÁºÃ\13¬\ 3Þ«\10¬+|\aë3~¬B°îð\ 4ë\80÷*\ 4ë\ e\ ex¯B°>$×6X\87\aZÁúõ\ 3MÁúðD¿7X\7fwï^__ç^}}è\92«?\rõÿü×?ÿëÿüë/\7fÿù\7füéáù\8f?þtÿüÇÿ8[í÷\1fã·Ç×?\Aý4\1f\ 1ôËãÍpý·\80{|ÐË\87®\9fóv¾ýÅ\93\fõöìöæÜn;y¥Û ×æ\1cn;yuÛ ×æ\m;yEÛ ×æ\9cl+9Åö,÷æÜk;yåÚ ×æ\1ck;yµÚ ×æ\j;y\85Ú ×æ\9ci+9\95ö,÷æÜh;y%Ú ×æ\1ch;yõÙ ×æ\g;yÅÙ ×æ\9cf+9eö,÷æÜe;yeÙ ×æ\1ce;y5Ù ×æ\d;y\ 5Ù ×æ\9cc+95ö,÷æÜb;y¥Ø ×æ\1cb;yuØ ×æ\a;yEØ ×æ\9c`+9\ 5ö,÷æÜ_;yå× ×æ\1c_;yµ× ×æ\^;y\85× ×æ\9c]+9Õõ,÷æÜ\;y%× ×æ\1c\;yõÖ ×æ\[;yÅÖ ×æ\9cZ+9¥õ,÷æÜY;yeÖ ×æ\1cY;y5Ö ×æ\X;y\ 5Ö ×æ\9cW\ey×Õ£|lÎmµ\93WZ\rrmÎaµ\93WW\rrmÎUµ\93WT\rrmÎIµ\92STÏro\8e\83/95¸\9f\17ç\98Ú¹«¥\ 6¸6ç\92ÚÉ+¤\ 6¹6Ç\8cZÁ«¢\9eÝZ\9c\ejç®\84\1aàÚ\9c\ 3j'¯~\1aäÚ\1cëi\a_âip?/Îé´rSNÏpoÎÝ´\93W6\rrm\8eÑ´\83/Í4¸\9f\17çbÚ¹+\98\ 6¸6ç\ZÉ©¥g¹7ÇVÚÁ\97T\1aÜÏ\8bs(íÜÕI\ 3\\9bs%íä\15I\83\\9bs"­ä\14Ò³Ü\9bs\1fíä\95G\83\\9bs\1cíäÕF\83\\9bs\19íä\15F\83\\9bs\16­äTѳÜ\9bs\13íä\95D\83\\9bs\10íäÕC\83\\9bs\ríä\15C\83\\9bs
+­ä\94гÜ\9bs\aíä\95A\83\\9bs\ 4íäÕ@\83\\9bs\ 1íä\15@\83\\9bsþ¬äÔϳÜ\9bsûìä\95>\83\\9bsøìäÕ=\83\\9bsõìä\15=\83\\9bsò¬ä\14ϳÜ\9bsïìä\95;\83\\9bsììäÕ:\83\\9bséìä\15:\83\\9bsælä]9\8fò±97ÎN^\893ȵ9\aÎN^}3ȵ9×ÍN^q3ȵ9§ÍJNÙ<˽9wÍN^Y3ȵ9GÍN^M3ȵ9\17ÍN^A3ȵ9çÌJNÍ<˽9·ÌN^)3ȵ9\87ÌN^\1d3ȵ9WÌN^\113ȵ9'ÌJNÁ<˽9÷ËN^ù2ȵ9ÇËN^í2ȵ9\96Ë\ e¾\84Ëà~^\9c³eå¦Z\9eáÞ\9c\9be'¯d\19äÚ\9c\82eçþÖ+\83úio®\95\9dºbepksN\95\95\9cRy\96{sì\94\1d\94Áý¼8GÊÎ]\8d2Àµ9\17ÊN^\812ȵ9æÉ
+^uòìÖâÜ&;w¥É\0×æ\1c&;yuÉ ×æX%;ø\12%\83ûyqN\92\95\9b"y\86{sî\91\9d¼rd\90ks\8e\91\9d¼Zd\90ks.\91\9d¼Bd\90ksÎ\90\95\9c
+y\96{sn\90\9d¼\12d\90ks\ e\90\9d¼úc\90ks®\8f\9d¼âc\90ksN\8f\95\9còx\96{sî\8e\9d¼²c\90ks\8e\8e\9d¼\9ac\90ks.\8e\9d¼\82c\90ksÎ\8d\8d¼kãQ>6çÖØÉ+5\ 6¹6çÐØÉ«3\ 6¹6çÊØÉ+2\ 6¹6çÄXÉ)\8cg¹7ç¾ØÉ+/\ 6¹6ç¸ØÉ«-\ 6¹6ç²ØÉ+,\ 6¹6ç¬XÉ©\8ag¹7ç¦ØÉ+)\ 6¹6ç ØÉ«'\ 6¹6ç\9axÈ`eL\fOsùØõÓ<ÞßL\89\87Ç9Jâg(\89ß^Þÿ\14ÿü\f)ñúÔ¥%~\-ñ¯¿þüo?~þÓ¯\7fùñ_~üüó/\7fýûY }¿{zúxMç
+:Sâ\97û§ï·Râ\1d\87\8dϺë°ë\87\1dò°/\1ehêÃ\0ïU(Ä\1c\9eD\fð^\85HÌá©Ä\0ïUèÄ\14¾C±\19?V!\15sxZ1À{\15j1\87'\17\ 3¼W!\18sx\8a1À{\15\9a1\85ïhlÆ\8fUÈÆ\1c\9en\fð^\85rÌáIÇ\0ïU\88Ç\1c\9ez\fð^\85~Lá; \9bñc\15\122\87§!\ 3¼W¡"sx22À{\15B2\87§$\ 3¼W¡%Sø\8eÉfüX\85\9cÌáéÉ\0ïU(Ê\1c\9e¤\fð^\85¨Ìá©Ê\0ïUèÊ\f~\15\96\8dø¹
+i\99ÃÓ\96\ 1Þ«P\979<y\19à½
+\81\99ÃS\98\ 1Þ«Ð\98)|Gf3~¬Î\99\99³Wg\ 6tmBiæè¤f`÷*Äf\ eOm\ 6x¯Î½\99²\13\9cÍtoBræè4g`÷*Tg\ eOv\ 6x¯Îá\99³Wy\ 6tmB{¦è\1d\9fÍö±
\99ÃÓ\9f\ 1Þ«s\81æì\95 \ 1]\9b\10¡9:\15\1aؽ
+\1d\9aÂw\886ãÇê\9c¢9{µh@×&Ôh\8eN\8e\ 6v¯B\90æð\14i\80÷*4i
+ßQÚ\8c\1f«\90¥9<]\1aà½
+e\9aÃ\93¦\ 1Þ«\10§9<u\1aà½
+}\9aÂw 6ãÇ*$j\ e\ 6x¯B¥æðdj\80÷*\84j\ e\ 6x¯B«¦ð\1d«Íø±
\9aÃÓ«\ 1Þ«P¬9<É\1aà½
\9aÃS­\ 1ޫЭ)|\87k3~¬Bºæð´k\80÷*Ôk\ e\ 6x¯BÀæð\14l\80÷*4l
\11Û\8c\1f«\90±9<\1d\eà½
+%\9bÃ\93²\ 1Þ«\10³9<5\eà½
+=\9bÁ¯\82\11?W!isx\9a6À{\15ª6\87'k\ 3¼W!lsxÊ6À{\15Ú6\85ï¸mÆ\8fUÈÛ\1c\9e¾\rð^\85ÂÍáIÜ\0ïU\88Ü\1c\9eÊ\rð^\85ÎMá;t\9bñc\15R7\87§u\ 3¼W¡vsxr7À{\15\827\87§x\ 3¼W¡ySø\8eÞfüX\85ìÍáéÞ\0ïU(ß\1c\9eô\rð^\9dã7g¯ú\rèÚ\84þMÑ;\80\9bíc\15\128\87§\81\ 3¼WÇ
+ÎÑ\97\f\ eàÏ\8b\10Â98%\1cн
+-\9cÂw\f7ãÇê\9cÃ9{õp@×&\14q\8eN\12\av¯B\14çðTq\80÷êÜÅ);aÜL÷&¤q\8eN\e\av¯B\1dçðäq\80÷ê\1cÈ9{\15r@×&4r\8aÞ\91Ül\1f«\90É9<\9d\1cà½
\9cÃ\93Ê\ 1Þ«\10Ë9<µ\1cà½
\9cÂw07ãÇ*$s\ eO3\ax¯B5çðds\80÷*\84s\ eO9\ax¯B;§ð\1dÏÍø±
\9cÃÓÏ\ 1Þ«PÐ9<   \1dà½
+\11\9dÃSÑ\ 1Þ«ÐÑ\19ü*¤\eñs\15R:\87§¥\ 3¼W¡¦sxr:À{\15\82:\87§¨\ 3¼W¡©Sø\8eêfüX\85¬Îáéê\0ïU(ë\1c\9e´\ eð^\85¸Îá©ë\0ïUèë\14¾\ 3»\19?V!±sx\1a;À{\15*;\87\ 3¼W!´\e*1[ÚÁ\ 3­Ôîú\81\1e\1fn·vÃ\13ýî¯í|}¼{ûx)l\8eíÖ§.±ÝÓUl÷O¿þüå¿ÿÇÿùÿýÛ\8f¿}\91Ú=|¼ìöö\87kæLí\1e\1f\9fßn¥vû[ïÆ'Ý_{wý¨Ã÷Þ}ñ@Ó\17ß\ 1Þ«ðÕw\ eÏwß\ 1Þ«ðíw
\85ã\8c\1f«P8:<\85#à½
+\85£ÃS8\ 2Þ«P8:<\85#à½
+\85£Âwá8ãÇ*\14\8e\ e\bx¯Báèð\14\8e\80÷*\14\8e\ e\bx¯Bá¨ð]8Îø±
+\85£ÃS8\ 2Þ«P8:<\85#à½
+\85£ÃS8\ 2Þ«P8*|\17\8e3~¬Báèð\14\8e\80÷*\14\8e\ e\bx¯Báèð\14\8e\80÷*\14\8e
\85ã\8c\1f«P8:<\85#à½
+\85£ÃS8\ 2Þ«P8:<\85#à½
+\85£Á¯
\11?W¡ptx
+GÀ{\15
+G\87§p\ 4¼W¡ptx
+GÀ{\15
+G\85ïÂqÆ\8fÕ¹ptö*\1c\81®M(\1c\1d\9dÂ\11ì^\85ÂÑá)\1c\ 1ïÕ¹pTv
\99îM(\1c\1d\9dÂ\11ì^\85ÂÑá)\1c\ 1ïÕ¹ptö*\1c\81®M(\1c\15½\vÇÙ>V¡ptx
+GÀ{u.\1c\9d½
+G k\13
+GG§p\ 4»W¡pTø.\1cgüX\9d\vGg¯Â\11èÚ\84ÂÑÑ)\1cÁîU(\1c\1d\9eÂ\11ð^\85ÂQá»p\9cñc\15
+G\87§p\ 4¼W¡ptx
+GÀ{\15
+G\87§p\ 4¼W¡pTø.\1cgüX\85ÂÑá)\1c\ 1ïU(\1c\1d\9eÂ\11ð^\85ÂÑá)\1c\ 1ïU(\1c\15¾\vÇ\19?V¡ptx
+GÀ{\15
+G\87§p\ 4¼W¡ptx
+GÀ{\15
+G\85ïÂqÆ\8fU(\1c\1d\9eÂ\11ð^\85ÂÑá)\1c\ 1ïU(\1c\1d\9eÂ\11ð^\85ÂQá»p\9cñc\15
+G\87§p\ 4¼W¡ptx
+GÀ{\15
+G\87§p\ 4¼W¡p4øUá8âç*\14\8e\ e\bx¯Báèð\14\8e\80÷*\14\8e\ e\bx¯Bá¨ð]8Îø±
+\85£ÃS8\ 2Þ«P8:<\85#à½
+\85£ÃS8\ 2Þ«P8*|\17\8e3~¬Báèð\14\8e\80÷*\14\8e\ e\bx¯Báèð\14\8e\80÷*\14\8e
\85ã\8c\1f«P8:<\85#à½
+\85£ÃS8\ 2Þ«sáèìU8\ 2]\9bP8*z\17\8e³}¬Báèð\14\8e\80÷êX8:úR8\ 2üy\11
+G\a§p\ 4ºW¡pTø.\1cgüX\9d\vGg¯Â\11èÚ\84ÂÑÑ)\1cÁîU(\1c\1d\9eÂ\11ð^\9d\vGe§p\9céÞ\84ÂÑÑ)\1cÁîU(\1c\1d\9eÂ\11ð^\9d\vGg¯Â\11èÚ\84ÂQÑ»p\9cíc\15
+G\87§p\ 4¼W¡ptx
+GÀ{\15
+G\87§p\ 4¼W¡pTø.\1cgüX\85ÂÑá)\1c\ 1ïU(\1c\1d\9eÂ\11ð^\85ÂÑá)\1c\ 1ïU(\1c\15¾\vÇ\19?V¡ptx
+GÀ{\15
+G\87§p\ 4¼W¡ptx
+GÀ{\15
+G\83_\15\8e#~®Báèð\14\8e\80÷*\14\8e\ e\bx¯Báèð\14\8e\80÷*\14\8e
\85ã\8c\1f«P8:<\85#à½
+\85£ÃS8\ 2Þ«P8:<\85#à½
+\85£Âwá8ãÇ*\14\8e\ e\bx¯Báèð\14\8e\80÷*\14\8eC\9cg\vGx U8^?ÐããíÂqx¢ß]8¾ÿÙíûÃÃ+\14\8eëS\97Âñùªpü¿ÿý/\7fþùãã\e\ 5\8f·Áß?÷òñ\e§+ãü  >\7fü\96öFÞøørw\7fÿ\8f?\f\8d\8f\99Ï}zÎóíôÇ·÷çy~øò\81¾À/\9fF¼Woä\8d÷wß¾\7füãEáëÓ\84\1f«7ðÕ\7f:<U)à½
+U©ÃS\95\ 2Þ«P\95:<U)à½
+U©ÂwU:ãÇ*T¥\ eOU
+x¯BUêðT¥\80÷*T¥\ eOU
+x¯BUªð]\95Îø±
+U©ÃS\95\ 2Þ«P\95:<U)à½
+U©ÃS\95\ 2Þ«P\95*|W¥3~¬BUêðT¥\80÷*T¥\ eOU
+x¯BUêðT¥\80÷*T¥
+ßUé\8c\1f«P\95:<U)à½
+U©ÃS\95\ 2Þ«P\95:<U)à½
+U©ÂwU:ãÇ*T¥\ eOU
+x¯BUêðT¥\80÷*T¥\ eOU
+x¯BUjð«ªtÄÏU¨J\1d\9eª\14ð^\85ªÔá©J\ 1ïU¨J\1d\9eª\14ð^\85ªTá»*\9dñcu®J\9d½ªR k\13ªRG§*\ 5»W¡*uxªRÀ{u®J\95\9dªt¦{\13ªRG§*\ 5»W¡*uxªRÀ{u®J\9d½ªR k\13ªREïªt¶\8fU¨J\1d\9eª\14ð^\9d«Rg¯ª\14èÚ\84ªÔÑ©JÁîU¨J\15¾«Ò\19?VçªÔÙ«*\ 5º6¡*utªR°{\15ªR\87§*\ 5¼W¡*Uø®JgüX\85ªÔá©J\ 1ïU¨J\1d\9eª\14ð^\85ªÔá©J\ 1ïU¨J\15¾«Ò\19?V¡*uxªRÀ{\15ªR\87§*\ 5¼W¡*uxªRÀ{\15ªR\85ïªtÆ\8fU¨J\1d\9eª\14ð^\85ªÔá©J\ 1ïU¨J\1d\9eª\14ð^\85ªTá»*\9dñc\15ªR\87§*\ 5¼W¡*uxªRÀ{\15ªR\87§*\ 5¼W¡*Uø®JgüX\85ªÔá©J\ 1ïU¨J\1d\9eª\14ð^\85ªÔá©J\ 1ïU¨J\r~U\95\8eø¹
+U©ÃS\95\ 2Þ«P\95:<U)à½
+U©ÃS\95\ 2Þ«P\95*|W¥3~¬BUêðT¥\80÷*T¥\ eOU
+x¯BUêðT¥\80÷*T¥
+ßUé\8c\1f«P\95:<U)à½
+U©ÃS\95\ 2Þ«P\95:<U)à½
+U©ÂwU:ãÇ*T¥\ eOU
+x¯BUêðT¥\80÷ê\\95:{U¥@×&T¥\8aÞUél\1f«P\95:<U)à½:V¥\8e¾T¥\0\7f^\84ªÔÁ©J\81îU¨J\15¾«Ò\19?VçªÔÙ«*\ 5º6¡*utªR°{\15ªR\87§*\ 5¼WçªTÙ©Jgº7¡*utªR°{\15ªR\87§*\ 5¼WçªÔÙ«*\ 5º6¡*Uô®JgûX\85ªÔá©J\ 1ïU¨J\1d\9eª\14ð^\85ªÔá©J\ 1ïU¨J\15¾«Ò\19?V¡*uxªRÀ{\15ªR\87§*\ 5¼W¡*uxªRÀ{\15ªR\85ïªtÆ\8fU¨J\1d\9eª\14ð^\85ªÔá©J\ 1ïU¨J\1d\9eª\14ð^\85ªÔàWUé\88\9f«P\95:<U)à½
+U©ÃS\95\ 2Þ«P\95:<U)à½
+U©ÂwU:ãÇ*T¥\ eOU
+x¯BUêðT¥\80÷*T¥\ eOU
+x¯BUªð]\95Îø±
+U©ÃS\95\ 2Þ«P\95:<U)à½
+UéØDºª\14\1ehU¥×\ fôøt»*\1d\9eè¨J\9f¡*}úøëþ÷ß`ÌUéúÔ¥*}¹T¥ÿåÇ_\7füüñ\9fþò\97¿ýøûù¥\99\ f\1fOòñ;õ+ãüÒÌ\97\87§×[UéÃËÝoÿØ\18\9fr}ìÓS\9e樂ÿ\98_\9e>~|_<Î\17ôåÓh÷ê\8d õþîþññQâëÓ\84\1f«7ðÇ÷\9fòÇo(\1c~ù4â½z\ 3_ůÃÓ\11\ 3Þ«Ð\11;<\1d1à½
+\1d±ÂwG<ãÇ*tÄ\ eOG\fx¯BGìðtÄ\80÷*tÄ\ eOG\fx¯BG¬ðÝ\11Ïø±
+\1d±ÃÓ\11\ 3Þ«Ð\11;<\1d1à½
+\1d±ÃÓ\11\ 3Þ«Ð\11+|wÄ3~¬BGìðtÄ\80÷*tÄ\ eOG\fx¯BGìðtÄ\80÷*tÄ
\1dñ\8c\1f«Ð\11;<\1d1à½
+\1d±ÃÓ\11\ 3Þ«Ð\11;<\1d1à½
+\1d±ÂwG<ãÇ*tÄ\ eOG\fx¯BGìðtÄ\80÷*tÄ\ eOG\fx¯BG¬ðÝ\11Ïø±
+\1d±ÃÓ\11\ 3Þ«Ð\11;<\1d1à½
+\1d±ÃÓ\11\ 3Þ«Ð\11\eüª#\1eñs\15:b\87§#\ 6¼W¡#vx:bÀ{\15:b\87§#\ 6¼W¡#Vøî\88güX\9d;bg¯\8e\18èÚ\84\8eØÑé\88ÁîUè\88\1d\9e\8e\18ð^\9d;be§#\9eéÞ\84\8eØÑé\88ÁîUè\88\1d\9e\8e\18ð^\9d;bg¯\8e\18èÚ\84\8eXÑ»#\9eíc\15:b\87§#\ 6¼Wç\8eØÙ«#\ 6º6¡#vt:b°{\15:b\85ï\8e\8fÕ¹#vöê\88\81®Mè\88\1d\9d\8e\18ì^\85\8eØáé\88\ 1ïUè\88\15¾;â\19?V¡#vx:bÀ{\15:b\87§#\ 6¼W¡#vx:bÀ{\15:b\85ï\8e\8f\88\1d\9e\8e\18ð^\85\8eØáé\88\ 1ïUè\88\1d\9e\8e\18ð^\85\8eXá»#\9eñc\15:b\87§#\ 6¼W¡#vx:bÀ{\15:b\87§#\ 6¼W¡#Vøî\88güX\85\8eØáé\88\ 1ïUè\88\1d\9e\8e\18ð^\85\8eØáé\88\ 1ïUè\88\15¾;â\19?V¡#vx:bÀ{\15:b\87§#\ 6¼W¡#vx:bÀ{\15:b\83_uÄ#~®BGìðtÄ\80÷*tÄ\ eOG\fx¯BGìðtÄ\80÷*tÄ
\1dñ\8c\1f«Ð\11;<\1d1à½
+\1d±ÃÓ\11\ 3Þ«Ð\11;<\1d1à½
+\1d±ÂwG<ãÇ*tÄ\ eOG\fx¯BGìðtÄ\80÷*tÄ\ eOG\fx¯BG¬ðÝ\11Ïø±
+\1d±ÃÓ\11\ 3Þ«Ð\11;<\1d1à½:wÄÎ^\1d1е      \1d±¢wG<ÛÇ*tÄ\ eOG\f\8e\1d±£/\1d\9f\17¡#vp:b {\15:b\85ï\8e\8fÕ¹#vöê\88\81®Mè\88\1d\9d\8e\18ì^\85\8eØáé\88\ 1ïÕ¹#Vv:â\99îMè\88\1d\9d\8e\18ì^\85\8eØáé\88\ 1ïÕ¹#vöê\88\81®Mè\88\15½;âÙ>V¡#vx:bÀ{\15:b\87§#\ 6¼W¡#vx:bÀ{\15:b\85ï\8e\8f\88\1d\9e\8e\18ð^\85\8eØáé\88\ 1ïUè\88\1d\9e\8e\18ð^\85\8eXá»#\9eñc\15:b\87§#\ 6¼W¡#vx:bÀ{\15:b\87§#\ 6¼W¡#6øUG<âç*tÄ\ eOG\fx¯BGìðtÄ\80÷*tÄ\ eOG\fx¯BG¬ðÝ\11Ïø±
+\1d±ÃÓ\11\ 3Þ«Ð\11;<\1d1à½
+\1d±ÃÓ\11\ 3Þ«Ð\11+|wÄ3~¬BGìðtÄ\80÷*tÄ\ eOG\fx¯BG<T°¶#\86\aZ\1dñõ\ 3=>ßî\88\87'úÝßNûøü\81¿AG¼>ué\88_¿ê\88ÿåOoßþø\1fÿþã¿þí×ÿ÷VZüýíîéñãßl\±ýp\ fï\1fyx¸ñC½zm{|òýÚöõ£\ f¯m\7fñ@ÓkÛ\80÷*¼¶íð¼¶\rx¯ÂkÛ\ eÏkÛ\80÷*¼¶­ðýÚö\8c\1f«ókÛÎ^¯m\ 3]\9bðÚ¶£óÚ6ؽ
+¯m;<¯m\ 3Þ«ókÛÊÎkÛ3Ý\9bðÚ¶£óÚ6ؽ
+¯m;<¯m\ 3Þ«ókÛÎ^¯m\ 3]\9bðÚ¶¢÷kÛ³}¬ÂkÛ\ eÏkÛ\80÷êüÚ¶³×kÛ@×&¼¶í輶\rv¯ÂkÛ
+߯mÏø±:¿¶íìõÚ6е       ¯m;:¯m\83Ý«ðÚ¶ÃóÚ6à½
+¯m+|¿¶=ãÇ*¼¶íð¼¶\rx¯ÂkÛ\ eÏkÛ\80÷*¼¶íð¼¶\rx¯ÂkÛ
+߯mÏø±
+¯m;<¯m\ 3Þ«ðÚ¶ÃóÚ6à½
+¯m;<¯m\ 3Þ«ðÚ¶Â÷kÛ3~¬ÂkÛ\ eÏkÛ\80÷*¼¶íð¼¶\rx¯ÂkÛ\ eÏkÛ\80÷*¼¶­ðýÚö\8c\1f«ðÚ¶ÃóÚ6à½
+¯m;<¯m\ 3Þ«ðÚ¶ÃóÚ6à½
+¯m+|¿¶=ãÇ*¼¶íð¼¶\rx¯ÂkÛ\ eÏkÛ\80÷*¼¶íð¼¶\rx¯ÂkÛ\ 6¿zm{ÄÏUxmÛáym\eð^\85׶\1d\9e׶\ 1ïUxmÛáym\eð^\85׶\15¾_Û\9eñc\15^Ûvx^Û\ 6¼Wáµm\87çµmÀ{\15^Ûvx^Û\ 6¼Wáµm\85ï׶güX\85׶\1d\9e׶\ 1ïUxmÛáym\eð^\85׶\1d\9e׶\ 1ïUxm[áûµí\19?Váµm\87çµmÀ{\15^Ûvx^Û\ 6¼Wç׶\9d½^Û\ 6º6áµmEï׶gûX\85׶\1d\9e׶\ 1ïÕñµmG_^Û\ 6øó"¼¶í༶\rt¯ÂkÛ
+߯mÏø±:¿¶íìõÚ6е       ¯m;:¯m\83Ý«ðÚ¶ÃóÚ6à½:¿¶­ì¼¶=Ó½    ¯m;:¯m\83Ý«ðÚ¶ÃóÚ6à½:¿¶íìõÚ6е    ¯m+z¿¶=ÛÇ*¼¶íð¼¶\rx¯ÂkÛ\ eÏkÛ\80÷*¼¶íð¼¶\rx¯ÂkÛ
+߯mÏø±
+¯m;<¯m\ 3Þ«ðÚ¶ÃóÚ6à½
+¯m;<¯m\ 3Þ«ðÚ¶Â÷kÛ3~¬ÂkÛ\ eÏkÛ\80÷*¼¶íð¼¶\rx¯ÂkÛ\ eÏkÛ\80÷*¼¶mð«×¶Gü\\85׶\1d\9e׶\ 1ïUxmÛáym\eð^\85׶\1d\9e׶\ 1ïUxm[áûµí\19?Váµm\87çµmÀ{\15^Ûvx^Û\ 6¼Wáµm\87çµmÀ{\15^ÛVø~m{Æ\8fUxmÛáym\eð^\85׶\1d\9e׶\ 1ïUxm{xÃؾ¶\r\ f´^Û¾~ Ç\97Û¯m\ fOô»_Û~ÿ¥xÿ_À\13¼¶½>uymûmzmûü>\96§»\87o\1fÿÎôÊ:¿\ 6êíõñæ×@í/\88\19\1fw\7fAÌõó\ e_\10óÅ\ 3M_\10\ 3x¯Â\17Ä(|\7f\8c\1f«ð\ 51\ eÏ\17Ä\0Þ«ð\ 51\ eÏ\17Ä\0Þ«ð\ 51\ eÏ\17Ä\0Þ«ð\ 51
+ß_\103ãÇ*|A\8cÃó\ 51\80÷*|A\8cÃó\ 51\80÷*|A\8cÃó\ 51\80÷*|A\8cÂ÷\17ÄÌø±
+_\10ãð|A\fà½
+_\10ãð|A\fà½
+_\10ãð|A\fà½
+_\10£ðý\ 513~¬Â\17Ä8<_\10\ 3x¯Â\17Ä8<_\10\ 3x¯Â\17Ä8<_\10\ 3x¯Â\17Ä(|\7f\8c\1f«ð\ 51\ eÏ\17Ä\0Þ«ð\ 51\ eÏ\17Ä\0Þ«ð\ 51\ eÏ\17Ä\0Þ«ð\ 51\ 6¿*\rGü\\85ÒÐá)\r\ 1ïU(\r\1d\9eÒ\10ð^\85ÒÐá)\r\ 1ïU(\r\15¾KÃ\19?VçÒÐÙ«4\ 4º6¡4ttJC°{\15JC\87§4\ 4¼WçÒPÙ)\rgº7¡4ttJC°{\15JC\87§4\ 4¼WçÒÐÙ«4\ 4º6¡4Tô.\rgûX\85ÒÐá)\r\ 1ïÕ¹4tö*\r\81®M(\r\1d\9dÒ\10ì^\85ÒPá»4\9cñcu.\r\9d½JC k\13JCG§4\ 4»W¡4txJCÀ{\15JC\85ïÒpÆ\8fU(\r\1d\9eÒ\10ð^\85ÒÐá)\r\ 1ïU(\r\1d\9eÒ\10ð^\85ÒPá»4\9cñc\15JC\87§4\ 4¼W¡4txJCÀ{\15JC\87§4\ 4¼W¡4Tø.\rgüX\85ÒÐá)\r\ 1ïU(\r\1d\9eÒ\10ð^\85ÒÐá)\r\ 1ïU(\r\15¾KÃ\19?V¡4txJCÀ{\15JC\87§4\ 4¼W¡4txJCÀ{\15JC\85ïÒpÆ\8fU(\r\1d\9eÒ\10ð^\85ÒÐá)\r\ 1ïU(\r\1d\9eÒ\10ð^\85ÒÐàW¥á\88\9f«P\1a:<¥!à½
+¥¡ÃS\1a\ 2Þ«P\1a:<¥!à½
+¥¡Âwi8ãÇ*\94\86\ eOi\bx¯Bièð\94\86\80÷*\94\86\ eOi\bx¯Bi¨ð]\1aÎø±
+¥¡ÃS\1a\ 2Þ«P\1a:<¥!à½
+¥¡ÃS\1a\ 2Þ«P\1a*|\97\863~¬Bièð\94\86\80÷*\94\86\ eOi\bx¯Î¥¡³Wi\btmBi¨è]\1aÎö±
+¥¡ÃS\1a\ 2Þ«cièèKi\bðçE(\r\1d\9cÒ\10è^\85ÒPá»4\9cñcu.\r\9d½JC k\13JCG§4\ 4»W¡4txJCÀ{u.\r\95\9dÒp¦{\13JCG§4\ 4»W¡4txJCÀ{u.\r\9d½JC k\13JCEïÒp¶\8fU(\r\1d\9eÒ\10ð^\85ÒÐá)\r\ 1ïU(\r\1d\9eÒ\10ð^\85ÒPá»4\9cñc\15JC\87§4\ 4¼W¡4txJCÀ{\15JC\87§4\ 4¼W¡4Tø.\rgüX\85ÒÐá)\r\ 1ïU(\r\1d\9eÒ\10ð^\85ÒÐá)\r\ 1ïU(\r\r~U\1a\8eø¹
+¥¡ÃS\1a\ 2Þ«P\1a:<¥!à½
+¥¡ÃS\1a\ 2Þ«P\1a*|\97\863~¬Bièð\94\86\80÷*\94\86\ eOi\bx¯Bièð\94\86\80÷*\94\86
+ߥá\8c\1f«P\1a:<¥!à½
+¥¡ÃS\1a\ 2Þ«P\1a\ e}\9c-\rá\81Vixý@Si8<ÑQ\1a>CiøíûÝýýËw(\rק.¥á÷O¥á\7fþõ×\9fÿüóÏ?ÏÆðñþý·N\1f\7f©}¥|ñ}0Oï?æ\e\8dáããÝËÃ?þ\999>h>÷éIÏ÷Ó\1f_ÞÿÓ\8f?6}ñ@_à\97O#Þ«7ð·»\97\ f\16¿|\1añ^½QWÞß}ûþü]âëÓ\84\1f«7ðÇ»ç·\17ûc_\9fF¼Woà+?ux¢VÀ{\15¢V\87'j\ 5¼W!jUø\8eZgüX\85¨Õá\89Z\ 1ïU\88Z\1d\9e¨\15ð^\85¨Õá\89Z\ 1ïU\88Z\15¾£Ö\19?V!jux¢VÀ{\15¢V\87'j\ 5¼W!jux¢VÀ{\15¢V\85ï¨uÆ\8fU\88Z\1d\9e¨\15ð^\85¨Õá\89Z\ 1ïU\88Z\1d\9e¨\15ð^\85¨Uá;j\9dñc\15¢V\87'j\ 5¼W!jux¢VÀ{\15¢V\87'j\ 5¼W!jUø\8eZgüX\85¨Õá\89Z\ 1ïU\88Z\1d\9e¨\15ð^\85¨Õá\89Z\ 1ïU\88Z\r~\15µ\8eø¹
+Q«Ã\13µ\ 2Þ«\10µ:<Q+à½
+Q«Ã\13µ\ 2Þ«\10µ*|G­3~¬ÎQ«³WÔ
+tmBÔêèD­`÷*D­\ e
+x¯ÎQ«²\13µÎtoBÔêèD­`÷*D­\ e
+x¯ÎQ«³WÔ
+tmBÔªè\1dµÎö±
+Q«Ã\13µ\ 2Þ«sÔêì\15µ\ 2]\9b\10µ::Q+ؽ
+Q«ÂwÔ:ãÇê\1cµ:{E­@×&D­\8e
+v¯BÔêðD­\80÷*D­
+ßQë\8c\1f«\10µ:<Q+à½
+Q«Ã\13µ\ 2Þ«\10µ:<Q+à½
+Q«ÂwÔ:ãÇ*D­\ e
+x¯BÔêðD­\80÷*D­\ e
+x¯BÔªð\1dµÎø±
+Q«Ã\13µ\ 2Þ«\10µ:<Q+à½
+Q«Ã\13µ\ 2Þ«\10µ*|G­3~¬BÔêðD­\80÷*D­\ e
+x¯BÔêðD­\80÷*D­
+ßQë\8c\1f«\10µ:<Q+à½
+Q«Ã\13µ\ 2Þ«\10µ:<Q+à½
+Q«Á¯¢Ö\11?W!jux¢VÀ{\15¢V\87'j\ 5¼W!jux¢VÀ{\15¢V\85ï¨uÆ\8fU\88Z\1d\9e¨\15ð^\85¨Õá\89Z\ 1ïU\88Z\1d\9e¨\15ð^\85¨Uá;j\9dñc\15¢V\87'j\ 5¼W!jux¢VÀ{\15¢V\87'j\ 5¼W!jUø\8eZgüX\85¨Õá\89Z\ 1ïU\88Z\1d\9e¨\15ð^\9d£Vg¯¨\15èÚ\84¨UÑ;j\9díc\15¢V\87'j\ 5¼WǨÕÑ\97¨\15àÏ\8b\10µ:8Q+н
+Q«ÂwÔ:ãÇê\1cµ:{E­@×&D­\8e
+v¯BÔêðD­\80÷ê\1cµ*;QëL÷&D­\8e
+v¯BÔêðD­\80÷ê\1cµ:{E­@×&D­\8aÞQël\1f«\10µ:<Q+à½
+Q«Ã\13µ\ 2Þ«\10µ:<Q+à½
+Q«ÂwÔ:ãÇ*D­\ e
+x¯BÔêðD­\80÷*D­\ e
+x¯BÔªð\1dµÎø±
+Q«Ã\13µ\ 2Þ«\10µ:<Q+à½
+Q«Ã\13µ\ 2Þ«\10µ\1aü*j\1dñs\15¢V\87'j\ 5¼W!jux¢VÀ{\15¢V\87'j\ 5¼W!jUø\8eZgüX\85¨Õá\89Z\ 1ïU\88Z\1d\9e¨\15ð^\85¨Õá\89Z\ 1ïU\88Z\15¾£Ö\19?V!jux¢VÀ{\15¢V\87'j\ 5¼W!j\1d\82L\eµÂ\ 3­¨õú\81\1e_oG­Ã\13½ÿùáåýÏ$\1f/d½ÿ©ìñË\8f¼Þß½>þã7!wo×OõøíÓS}\7fÿ\9dÇÓÇol~ûÔÇCýòË/7\9fêjm\89ÿ?\ 6Z\9f6endstream
+endobj
+521 0 obj <<
+/Type /Page
+/Contents 522 0 R
+/Resources 520 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 515 0 R
+/Annots [ 524 0 R 528 0 R 529 0 R 533 0 R 534 0 R 535 0 R 536 0 R 537 0 R 538 0 R 539 0 R 540 0 R 541 0 R 542 0 R 543 0 R 544 0 R 545 0 R 546 0 R 547 0 R 548 0 R 549 0 R 550 0 R 551 0 R 552 0 R 553 0 R 554 0 R 555 0 R 556 0 R 557 0 R 558 0 R 559 0 R 560 0 R 561 0 R 562 0 R 563 0 R 564 0 R 565 0 R 566 0 R 567 0 R 568 0 R 569 0 R 570 0 R 571 0 R 572 0 R 573 0 R 574 0 R 575 0 R 576 0 R 577 0 R 578 0 R 579 0 R 580 0 R 581 0 R 582 0 R 583 0 R 584 0 R 585 0 R 586 0 R 587 0 R 588 0 R 589 0 R 590 0 R 591 0 R 592 0 R 593 0 R 594 0 R 595 0 R 596 0 R 597 0 R 598 0 R 599 0 R 600 0 R 601 0 R 602 0 R 603 0 R 604 0 R 605 0 R 606 0 R 607 0 R 608 0 R 609 0 R 610 0 R 611 0 R 612 0 R 613 0 R 614 0 R 615 0 R 616 0 R 617 0 R 618 0 R 619 0 R ]
+>> endobj
+524 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [118.5554 685.0373 184.5772 694.0135]
+/Subtype /Link
+/A << /S /GoTo /D (0:Introduction) >>
+>> endobj
+528 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [532.005 685.0373 538.9788 694.0135]
+/Subtype /Link
+/A << /S /GoTo /D (0:Introduction) >>
+>> endobj
+529 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 669.7148 221.1101 678.5614]
+/Subtype /Link
+/A << /S /GoTo /D (0:Authentication) >>
+>> endobj
+533 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [532.005 669.7148 538.9788 678.5614]
+/Subtype /Link
+/A << /S /GoTo /D (0:Authentication) >>
+>> endobj
+534 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 656.7633 184.5875 665.61]
+/Subtype /Link
+/A << /S /GoTo /D (0:Roles) >>
+>> endobj
+535 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [532.005 656.7633 538.9788 665.61]
+/Subtype /Link
+/A << /S /GoTo /D (0:Roles) >>
+>> endobj
+536 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 643.8119 187.3568 652.6585]
+/Subtype /Link
+/A << /S /GoTo /D (0:Filters) >>
+>> endobj
+537 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [532.005 643.8119 538.9788 652.6585]
+/Subtype /Link
+/A << /S /GoTo /D (0:Filters) >>
+>> endobj
+538 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 630.8605 223.6007 639.7071]
+/Subtype /Link
+/A << /S /GoTo /D (0:90) >>
+>> endobj
+539 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [532.005 630.8605 538.9788 639.7071]
+/Subtype /Link
+/A << /S /GoTo /D (0:90) >>
+>> endobj
+540 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [118.5554 615.4981 234.0115 624.4743]
+/Subtype /Link
+/A << /S /GoTo /D (0:Methods) >>
+>> endobj
+541 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [532.005 615.4981 538.9788 624.4743]
+/Subtype /Link
+/A << /S /GoTo /D (0:Methods) >>
+>> endobj
+542 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 598.1183 231.372 609.0222]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddAddressType) >>
+>> endobj
+543 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [532.005 598.1183 538.9788 609.0222]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddAddressType) >>
+>> endobj
+544 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 585.1668 274.2907 596.0708]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddAddressTypeToAddress) >>
+>> endobj
+545 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [532.005 585.1668 538.9788 596.0708]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddAddressTypeToAddress) >>
+>> endobj
+546 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 574.2727 218.3506 583.1193]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddBootState) >>
+>> endobj
+547 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [532.005 574.2727 538.9788 583.1193]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddBootState) >>
+>> endobj
+548 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 561.3213 214.4752 570.1679]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddConfFile) >>
+>> endobj
+549 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [532.005 561.3213 538.9788 570.1679]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddConfFile) >>
+>> endobj
+550 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 546.3125 271.7802 557.2165]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddConfFileToNodeGroup) >>
+>> endobj
+551 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [532.005 546.3125 538.9788 557.2165]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddConfFileToNodeGroup) >>
+>> endobj
+552 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 535.2988 246.3258 544.265]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddConfFileToNode) >>
+>> endobj
+553 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [532.005 535.2988 538.9788 544.265]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddConfFileToNode) >>
+>> endobj
+554 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 520.4097 214.924 531.3136]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddKeyType) >>
+>> endobj
+555 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [532.005 520.4097 538.9788 531.3136]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddKeyType) >>
+>> endobj
+556 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 507.4582 213.9073 518.3622]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddMessage) >>
+>> endobj
+557 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 507.4582 538.9788 518.3622]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddMessage) >>
+>> endobj
+558 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 496.4445 244.8014 505.4107]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddNetworkMethod) >>
+>> endobj
+559 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 496.4445 538.9788 505.4107]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddNetworkMethod) >>
+>> endobj
+560 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 481.5554 238.4655 492.4593]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddNetworkType) >>
+>> endobj
+561 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 481.5554 538.9788 492.4593]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddNetworkType) >>
+>> endobj
+562 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 468.6039 231.0633 479.5079]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddNodeGroup) >>
+>> endobj
+563 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 468.6039 538.9788 479.5079]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddNodeGroup) >>
+>> endobj
+564 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 457.7098 240.3683 466.5564]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddNodeNetwork) >>
+>> endobj
+565 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 457.7098 538.9788 466.5564]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddNodeNetwork) >>
+>> endobj
+566 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 444.7584 205.6089 453.605]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddNode) >>
+>> endobj
+567 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 444.7584 538.9788 453.605]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddNode) >>
+>> endobj
+568 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 429.7496 262.9139 440.6536]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddNodeToNodeGroup) >>
+>> endobj
+569 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 429.7496 538.9788 440.6536]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddNodeToNodeGroup) >>
+>> endobj
+570 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 418.8555 235.2576 427.7021]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddNodeToPCU) >>
+>> endobj
+571 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 418.8555 538.9788 427.7021]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddNodeToPCU) >>
+>> endobj
+572 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 405.9041 203.407 414.7507]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddPCU) >>
+>> endobj
+573 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 405.9041 538.9788 414.7507]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddPCU) >>
+>> endobj
+574 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 392.9526 201.7333 401.7993]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddPeer) >>
+>> endobj
+575 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 392.9526 538.9788 401.7993]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddPeer) >>
+>> endobj
+576 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 377.9439 227.3472 388.8479]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddPersonKey) >>
+>> endobj
+577 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 377.9439 538.9788 388.8479]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddPersonKey) >>
+>> endobj
+578 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 366.9302 211.1479 375.8964]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddPerson) >>
+>> endobj
+579 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 366.9302 538.9788 375.8964]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddPerson) >>
+>> endobj
+580 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 354.0983 236.921 362.945]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddPersonToSite) >>
+>> endobj
+581 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 354.0983 538.9788 362.945]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddPersonToSite) >>
+>> endobj
+582 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 341.1469 241.3443 349.9936]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddPersonToSlice) >>
+>> endobj
+583 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 341.1469 538.9788 349.9936]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddPersonToSlice) >>
+>> endobj
+584 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 328.1955 202.8491 337.0421]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddRole) >>
+>> endobj
+585 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 328.1955 538.9788 337.0421]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddRole) >>
+>> endobj
+586 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 315.244 240.2386 324.0907]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddRoleToPerson) >>
+>> endobj
+587 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 315.244 538.9788 324.0907]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddRoleToPerson) >>
+>> endobj
+588 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 302.2926 232.1786 311.1393]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddSiteAddress) >>
+>> endobj
+589 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 302.2926 538.9788 311.1393]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddSiteAddress) >>
+>> endobj
+590 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 289.3412 199.5314 298.1878]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddSite) >>
+>> endobj
+591 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 289.3412 538.9788 298.1878]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddSite) >>
+>> endobj
+592 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 276.3897 239.7301 285.2364]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddSliceAttribute) >>
+>> endobj
+593 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 276.3897 538.9788 285.2364]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddSliceAttribute) >>
+>> endobj
+594 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 261.381 259.4063 272.285]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddSliceAttributeType) >>
+>> endobj
+595 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 261.381 538.9788 272.285]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddSliceAttributeType) >>
+>> endobj
+596 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 250.4869 253.7672 259.3335]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddSliceInstantiation) >>
+>> endobj
+597 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 250.4869 538.9788 259.3335]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddSliceInstantiation) >>
+>> endobj
+598 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 237.4158 203.9548 246.3821]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddSlice) >>
+>> endobj
+599 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 237.4158 538.9788 246.3821]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddSlice) >>
+>> endobj
+600 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 224.584 239.6806 233.4307]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddSliceToNodes) >>
+>> endobj
+601 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 224.584 538.9788 233.4307]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddSliceToNodes) >>
+>> endobj
+602 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 211.6326 212.2537 220.4792]
+/Subtype /Link
+/A << /S /GoTo /D (0:AuthCheck) >>
+>> endobj
+603 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 211.6326 538.9788 220.4792]
+/Subtype /Link
+/A << /S /GoTo /D (0:AuthCheck) >>
+>> endobj
+604 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 196.6239 218.4999 207.5278]
+/Subtype /Link
+/A << /S /GoTo /D (0:BlacklistKey) >>
+>> endobj
+605 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 196.6239 538.9788 207.5278]
+/Subtype /Link
+/A << /S /GoTo /D (0:BlacklistKey) >>
+>> endobj
+606 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 185.7297 250.4398 194.5764]
+/Subtype /Link
+/A << /S /GoTo /D (0:BootGetNodeDetails) >>
+>> endobj
+607 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 185.7297 538.9788 194.5764]
+/Subtype /Link
+/A << /S /GoTo /D (0:BootGetNodeDetails) >>
+>> endobj
+608 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 170.721 243.2471 181.6249]
+/Subtype /Link
+/A << /S /GoTo /D (0:BootNotifyOwners) >>
+>> endobj
+609 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 170.721 538.9788 181.6249]
+/Subtype /Link
+/A << /S /GoTo /D (0:BootNotifyOwners) >>
+>> endobj
+610 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 157.7696 236.6022 168.6735]
+/Subtype /Link
+/A << /S /GoTo /D (0:BootUpdateNode) >>
+>> endobj
+611 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 157.7696 538.9788 168.6735]
+/Subtype /Link
+/A << /S /GoTo /D (0:BootUpdateNode) >>
+>> endobj
+612 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 146.8754 225.5235 155.7221]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteAddress) >>
+>> endobj
+613 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 146.8754 538.9788 155.7221]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteAddress) >>
+>> endobj
+614 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 131.8667 299.4358 142.7706]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteAddressTypeFromAddress) >>
+>> endobj
+615 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 131.8667 538.9788 142.7706]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteAddressTypeFromAddress) >>
+>> endobj
+616 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 118.9153 245.1997 129.8192]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteAddressType) >>
+>> endobj
+617 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 118.9153 538.9788 129.8192]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteAddressType) >>
+>> endobj
+618 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 107.9015 232.1783 116.8678]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteBootState) >>
+>> endobj
+619 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 107.9015 538.9788 116.8678]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteBootState) >>
+>> endobj
+523 0 obj <<
+/D [521 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+6 0 obj <<
+/D [521 0 R /XYZ 244.3315 703.236 null]
+>> endobj
+520 0 obj <<
+/Font << /F21 514 0 R /F28 527 0 R /F29 532 0 R /F30 622 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+670 0 obj <<
+/Length 55961     
+/Filter /FlateDecode
+>>
+stream
+xÚ\94ÝM\8f¬Wz¥ç¹~\ 5\87Å\81Â\19\11\19ù1lË.Á6Zh¸«G\86\aj\15»]誢À¢Ðпw\1c2öÚ\91ë\89X÷"4(   Ü\×æ\e¥s2\ fóÆ{üîåú?ÇïÞ\8f\87÷óõ?N\9f\87ÓÛåôÝ¿üåï^¾ûï׿ô\8f\7f\1dy}{;\9c.Ç·ëÿñà¯þýùóõp9½¼}÷÷§\97Ãçéxyxêøz>¼¾\9d¾ûû÷\97\8fÃùõüþíÔÿú\87¿û_~\7fúüîóðùvzûî\ fÿí»uL§þðÇÿçw§ÃëËáû¿?]^~÷¿ýðç\1f~þá\1f~üë\7fûý\9fþüÃï\7fúñ/ÿôã\1f\7føÇ\9f~ü·\7fýþÿýÃÿùwÿû\1fD\9e>/×ë|~w\ fúµ®Ë\97ÓñÉ?Øéóú7~\1c\8ftg\9dûré\83ßçüòrøx?¾?¼Ð|ªë4àsõ  ~>\9cßN¯-~;\8d¸¯>Á/\87\8fËùØâ·Ó\88ûê\13üöWKüv\bq_}\8c\1f¯\9fÎùµ}ìë4ácõ     ~ýtN\97Öþõ0Ò¶ùD¾~4ÇKûÌ×i´}õ       ~ý«/oõ3¿\9dFÜW\1fã×_\ 3ß?Û\7fðÛa¢}ó\89|>\9c>Þkúv\1am_}\82_\ eïï\1fç\16¿\9dFÜW\9fà\1f×ß»>[û×ÃHÛæcù|ýd.õǽN\93=V\9fà×\8fæòÒ>óu\1aq_}\82_?\9a×öWôÛa¤mó\89|ýdÎׯFJúv\1am_}\8c_¿\10y?\9dÚg¾N\13>V\9fà×\8fæXÛ¿\1eFÚ6\9fÈ×OæåÜ>óu\1am_}\82\7f\1c\8e\9f¯õ?÷í4â¾ú\18¿¼\1cÞ>^Û_\ÖiÂÇê\13ü|8¾_ÚǾN#î«OðËáíí­}ìë4â¾ú\ 4¿~:\97ú×ôu\1aq_}\8c¿]?\9d×÷ö±¯Ó\84\8fÕ'øõÓ9\7f\9cZüv\1aq_}\82_?\9dÓGûØ×iÄ}õ        ~ýt\8e\9fõc¿\9dFÜW\1fãï×OçøÒ>öu\9að±ú\ 4¿~://íc_§\11÷Õ'øåpù<¶ß&¬Ó\88ûê\13üãðòqª\1fûí4â¾ú\18ÿx9\ÞOíc_§ \1f«OðóáåíÜ>öu\1aq_}\82_?\9dËkûØ×iÄ}õ   ~ýt^_?Züv\1aq_}\8c\7f^?\9dëoB%¾N\13>V\9fà×OçôÖ>öu\1aq_}\82_?\9dã[ûØ×iÄ}õ  ~ýt^ÞëÇ~;\8d¸¯>Ä__^\ e¯\9f\1få7+:\rø\}\82\9f\ e\9f\1f\1f\1f-~;\8d¸¯>Á/\87×÷ÏK\8bßN#î«Oð÷ÃçûKýØo§\11÷ÕÇøñúé¼½´\8f}\9d&|¬>Á¯\9fÎåøÚâ·Ó\88ûê\13üúé¼\9eÚǾN#î«Oðë§s>Õ\8fýv\1aq_}\8c\9f®\9fÎéÜ>öu\9að±ú\ 4¿~:ÇöODt\1aq_}\82_?\9d\97×÷\16¿\9dFÜW\9fàï\87\8fÏKýØo§\11÷ÕÇøùåpþxk\1fû:MøX}\82\9f\ e\1fïoíc_§\11÷Õ'øåp~{o\1fû:\8d¸¯>Á¯\9fÎ¥ý\7fóÛa¤mó±üzýh^?Úg¾N\93=V\9fà×\8fæüÙ>óu\1aq_}\82_?\9asKÿr\16á¯\8bOØëÇrz©\1føí4Ò¾ú\18¿\?\97cûg\9e:MøX}\82_?\97ö\8f\ 4Öa¤mó\89|9\9c>Oí3_§ÑöÕ'øûáý£þoÚ:\8d¸¯>Æß^\ e§ú\17µÛa¢}ó\89|:¼¿½¾µôí4Ú¾ú\ 4¿~4\97KûÌ×iÄ}õ   ~ýhú\7fð_\ f#m\9b\8få÷ë's~kéu\9aì±ú\ 4¿~4§÷ö\99¯Ó\88ûê\13üúÑ\1cß?[üv\1aq_}\82_?\9c\97\8fú±ßN#î«\8fñ\8f\97Ãñó³}ìë4ácõ        ~:¼}|¶\8f}\9dFÜW\9fà\97Ãñã¥}ìë4â¾ú\ 4\7f?¼½\1fÛßÍÖiÄ}õ1þyýtÞ\8eíc_§     \1f«Oðë§s9µ\8f}\9dFÜW\9fà×Oçú\15}\8bßN#î«Oðë§s>×\8fýv\1aq_}\88_^®\9fÎéµü³'\9d\ 6|®>Á¯\9fÎñrjñÛiÄ}õ        ~ýt^.\9f-~;\8d¸¯>Áß\ f\97Ï·ú±ßN#î«\8fñãËáåã½}ìë4ácõ       ~:\Þß?Züv\1aq_}\82_\ e/o\1fíc_§\11÷Õ'øõÓ¹|Ö\8fýv\1aq_}\8c\9f®\9fÎëgûØ×iÂÇê\13üúé¼¾´\8f}\9dFÜW\9fà×Oç|<¶øí4â¾ú\ 4¿~:§ãGüñæÛ¿¡xüãÍ\97ÓÇáåÈ_ÝèÜ\97\v\9d\8dÎï\87Ï\8f'¿Ï>øiñõÇÙñ§Åß®¿Ó\9d?OçüÓâ:uûiñcüiññ\83â×ï\17^¿}³r\8fÍGyy¹þÿÂ\93\9f\14¿.|~\9c?è¾:÷åÂ\87y¡ó·\v]\1e\ 1~;\8d¸¯>Á/׿årlñÛiÄ}õ       þqx½\>Züv\1aq_}\8c_¿\87ø¼~Ï\âë4ácõ    ~ýtÎïíc_§\11÷Õ'ø·Tâ½}ìë4â¾ú\ 4¿~:Ç\8f×\16¿\9dFÜW\1fã×ï!>_>ÛǾN\13>V\9fàçë_ýl\1fû:\8d¸¯>Á/\87\8fÏ\97ö±¯Ó\88ûê\13ü\96Ì\94ø
+q\b÷Õ\1câTø\ eq2>Ws\88Sâ+Ä!ÜWs\88Sâ+Ä!ÜWs\88Sâ+Ä!ÜWs\88Óá
+q\0\1f«1Ä)í[\88C´mæ\10§¤W\88C¶¯æ\10§ÄW\88C¸¯Æ\10§³W\88\ 3´oæ\10§¤W\88C¶¯æ\10§ÄW\88C¸¯Æ\10§´o!\ eѶ\99C\9c\8eV\88\ 3öXÍ!N\89¯\10\87p_\8d!NißB\1c¢m3\878%½B\1c²}5\878\1d®\10\að±\1aC\9cÒ¾\858DÛf\ eqJz\858dûj\ eqJ|\858\84ûj\ eq:\!\ eàc5\878%¾B\1cÂ}5\878%¾B\1cÂ}5\878%¾B\1cÂ}5\878\1d®\10\að±\9aC\9c\12_!\ eá¾\9aC\9c\12_!\ eá¾\9aC\9c\12_!\ eá¾\9aC\9c\ eW\88\ 3øXÍ!N\89¯\10\87p_Í!N\89¯\10\87p_Í!N\89¯\10\87p_Í!N\87\ 1|¬æ\10§ÄW\88C¸¯æ\10§ÄW\88C¸¯æ\10§ÄW\88C¸¯æ\10§Ã\15â\0>Vs\88Sâ+Ä!ÜWs\88Sâ+Ä!ÜWs\88Sâ+Ä!ÜWs\88Sá;ÄÉø\Í!N\89¯\10\87p_Í!N\89¯\10\87p_Í!N\89¯\10\87p_Í!N\87\ 1|¬æ\10§ÄW\88C¸¯æ\10§ÄW\88C¸¯æ\10§ÄW\88C¸¯æ\10§Ã\15â\0>Vs\88Sâ+Ä!ÜWs\88Sâ+Ä!ÜWs\88Sâ+Ä!ÜWs\88Óá
+q\0\1f«9Ä)ñ\15â\10î«9Ä)ñ\15â\10î«1Ä)í[\88C´mæ\10§£\15â\80=Vs\88Sâ+Ä!ÜWS\88SÒ¿\868\ 4\7f]Ì!N ¯\10\87h_Í!N\87\ 1|¬Æ\10§´o!\ eѶ\99C\9c\92^!\ eÙ¾\9aC\9c\12_!\ eá¾\1aC\9cÎ^!\ eо\99C\9c\92^!\ eÙ¾\9aC\9c\12_!\ eá¾\1aC\9cÒ¾\858DÛf\ eq:Z!\ eØc5\878%¾B\1cÂ}5\878%¾B\1cÂ}5\878%¾B\1cÂ}5\878\1d®\10\að±\9aC\9c\12_!\ eá¾\9aC\9c\12_!\ eá¾\9aC\9c\12_!\ eá¾\9aC\9c\ eW\88\ 3øXÍ!N\89¯\10\87p_Í!N\89¯\10\87p_Í!N\89¯\10\87p_Í!N\85ï\10'ãs5\878%¾B\1cÂ}5\878%¾B\1cÂ}5\878%¾B\1cÂ}5\878\1d®\10\að±\9aC\9c\12_!\ eá¾\9aC\9c\12_!\ eá¾\9aC\9c\12_!\ eá¾\9aC\9c\ eW\88\ 3øXÍ!N\89¯\10\87p_Í!N\89¯\10\87p_Í!N®Gª\10\87.t;÷åBçϧ!NºÑ\bqàµ\ro×/­^__> ÄY§n!Îéa\883~\1aüú\bÏ/ßþ í\ eñ«\1c\ fçóõ\17Ý'\ 1ÎõѼ½þòÅB¼§Î}¹èüñôóñp<\7fû\1eùÁ\85&¾N\13>V\9fàçÃÛéÛoë\1d~;\8d¸¯>Áß\ eÇãë[\8bßN#î«Oðë§ór9µøí4â¾ú\18\7f=\1e^>/íc_§        \1f«OðóáòñÖ>öu\1aq_}\82¿\1d^ÞßÛǾN#î«Oð\8fÃåí½~ì·Ó\88ûêcürýt.ß~[¯ðu\9að±ú\ 4¿~:¯\9fíc_§\11÷Õ'øõÓ9\7f\8f}\9dFÜW\9fà×OçüR?öÛiÄ}õ1þvýtNÇö±¯Ó\84\8fÕ'øõÓ9~ûb¡Ão§\11÷Õ'øõÓy9µ\8f}\9dFÜW\9fà\1fׯ\81Îõc¿\9dFÜW\9fd¥«»­ð]óf|¬BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\87«æ\ 5ÜW¡æ­ð]óf|¬BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\87«æ\ 5ÜW¡æ­ð]óf|¬BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\87«æ\ 5ÜW¡æmð»\9a7âs\15\ e\v¸¯BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\85ï\9a7ãc5×¼\9d½j^ m\13\8e\v¶¯BÍÛáªy\ 1÷Õ\óV¶jÞLû&Ô¼\1d­\9a\17l_\85\9a·ÃUó\ 2æíìUó\ 2m\9bPóVô®y³=V¡æípÕ¼\80ûj®y;{Õ¼@Û&Ô¼\1d­\9a\17l_\85\9a·ÂwÍ\9bñ±\9akÞÎ^5/ж    5oG«æ\ 5ÛW¡æípÕ¼\80û*Ô¼\15¾kÞ\8c\8fU¨y;\5/à¾
+5o\87«æ\ 5ÜW¡æípÕ¼\80û*Ô¼\15¾kÞ\8c\8fU¨y;\5/à¾
+5o\87«æ\ 5ÜW¡æípÕ¼\80û*Ô¼\15¾kÞ\8c\8fU¨y;\5/à¾
+5o\87«æ\ 5ÜW¡æípÕ¼\80û*Ô¼\15¾kÞ\8c\8fU¨y;\5/à¾
+5o\87«æ\ 5ÜW¡æípÕ¼\80û*Ô¼\15¾kÞ\8c\8fU¨y;\5/à¾
+5o\87«æ\ 5ÜW¡æípÕ¼\80û*Ô¼\r~WóF|®BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\87«æ\ 5ÜW¡æ­ð]óf|¬BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\87«æ\ 5ÜW¡æ­ð]óf|¬BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\87«æ\ 5ÜW¡æ­ð]óf|¬BÍÛáªy\ 1÷U¨y;\5/à¾\9akÞÎ^5/ж    5oEï\9a7Ûc\15\ e\v¸¯Æ\9a·£o5/À_\17¡æí`Õ¼@û*Ô¼\15¾kÞ\8c\8fÕ\óvöªy\81¶M¨y;Z5/ؾ
+5o\87«æ\ 5ÜWsÍ[Ùªy3í\9bPóv´j^°}\15\ e\v¸¯æ\9a·³WÍ\v´mBÍ[Ñ»æÍöX\85\9a·ÃUó\ 2î«Póv¸j^À}\15\ e\v¸¯BÍ[á»æÍøX\85\9a·ÃUó\ 2î«Póv¸j^À}\15\ e\v¸¯BÍ[á»æÍøX\85\9a·ÃUó\ 2î«Póv¸j^À}\15\ e\v¸¯BÍÛàw5oÄç*Ô¼\1d®\9a\17p_\85\9a·ÃUó\ 2î«Póv¸j^À}\15
+ß5oÆÇ*Ô¼\1d®\9a\17p_\85\9a·ÃUó\ 2î«Póv¸j^À}\15
+ß5oÆÇ*Ô¼\1d®\9a\17p_\85\9a·ÃUó\ 2î«Pó\86\14µ­yáB«æ½¿PªyÃ\8d~ókõÞ>\ f¯\1f\9f¯Pó®S·\9a÷ü¥æý¿¾?]~÷Ã÷ÇËïþ}ü@øËõ\9fíýÛ\97\8dwÎ|\8a\8fg=ïuàýøË·\ 5ñ¦:÷åªó\aÔ\8fÇÃéÛ¿_xp\9d\ e\13í\9bOäóáíóÛWï\1d};\8d¶¯>Áß®_Ã>ù\18\1eà·Ó\88ûê\13üãðV?ò_Î"üuñ1{:\1e\8eï/í\ 3\89\1e«Oðëçòvl\1fø:\8d¸¯>Á¯\9fËåÛ×í\1d~;\8d¸¯>ÁWXßáÊõ\ 1÷UÈõ+|çú\19\1f«\90ëw¸r}À}\15\ e\ f¸¯B®ßáÊõ\ 1÷UÈõ+|çú\19\1f«\90ëw¸r}À}\15\ e\ f¸¯B®ßáÊõ\ 1÷UÈõ+|çú\19\1f«\90ëw¸r}À}\15\ e\ f¸¯B®ßáÊõ\ 1÷UÈõ+|çú\19\1f«\90ëw¸r}À}\15\ e\ f¸¯B®ßáÊõ\ 1÷UÈõ+|çú\19\1f«\90ëw¸r}À}\15\ e\ f¸¯B®ßáÊõ\ 1÷UÈõ+|çú\19\1f«\90ëw¸r}À}\15\ e\ f¸¯B®ßáÊõ\ 1÷UÈõ+|çú\19\1f«\90ëw¸r}À}\15\ e\ f¸¯B®ßáÊõ\ 1÷UÈõ\eü.×\8fø\\85\¿Ã\95ë\ 3î«\90ëw¸r}À}\15\ e\ f¸¯B®_á;×ÏøX͹~g¯\\1f\84\¿£\95ë\83í«\90ëw¸r}À}5çú\95­\?Ó¾ ¹~G+×\aÛW!×ïpåú\80ûjÎõ;{åú@Û&äú\15½sýl\8fUÈõ;\¹>à¾\9asýÎ^¹>ж    ¹~G+×\aÛW!ׯð\9dëg|¬æ\¿³W®\ f´mB®ßÑÊõÁöUÈõ;\¹>à¾
+¹~\85ï\?ãc\15\ e\ f¸¯B®ßáÊõ\ 1÷UÈõ;\¹>à¾
+¹~\85ï\?ãc\15\ e\ f¸¯B®ßáÊõ\ 1÷UÈõ;\¹>à¾
+¹~\85ï\?ãc\15\ e\ f¸¯B®ßáÊõ\ 1÷UÈõ;\¹>à¾
+¹~\85ï\?ãc\15\ e\ f¸¯B®ßáÊõ\ 1÷UÈõ;\¹>à¾
+¹~\85ï\?ãc\15\ e\ f¸¯B®ßáÊõ\ 1÷UÈõ;\¹>à¾
+¹~\83ßåú\11\9f«\90ëw¸r}À}\15\ e\ f¸¯B®ßáÊõ\ 1÷UÈõ+|çú\19\1f«\90ëw¸r}À}\15\ e\ f¸¯B®ßáÊõ\ 1÷UÈõ+|çú\19\1f«\90ëw¸r}À}\15\ e\ f¸¯B®ßáÊõ\ 1÷UÈõ+|çú\19\1f«\90ëw¸r}À}\15\ e\ f¸¯æ\¿³W®\ f´mB®_Ñ;×ÏöX\85\¿Ã\95ë\ 3î«1×ïè[®\ fð×EÈõ;X¹>о
+¹~\85ï\?ãc5çú\9d½r} m\13\8e\ f¶¯B®ßáÊõ\ 1÷Õ\9cëW¶rýLû&äú\1d­\\1fl_\85\¿Ã\95ë\ 3î«9×ïì\95ë\ 3m\9b\90ëWôÎõ³=V!×ïpåú\80û*äú\1d®\\1fp_\85\¿Ã\95ë\ 3î«\90ëWøÎõ3>V!×ïpåú\80û*äú\1d®\\1fp_\85\¿Ã\95ë\ 3î«\90ëWøÎõ3>V!×ïpåú\80û*äú\1d®\\1fp_\85\¿Ã\95ë\ 3î«\90ë7ø]®\1fñ¹
+¹~\87\aÜW!×ïpåú\80û*äú\1d®\\1fp_\85\¿Âw®\9fñ±
+¹~\87\aÜW!×ïpåú\80û*äú\1d®\\1fp_\85\¿Âw®\9fñ±
+¹~\87\aÜW!×ïpåú\80û*äú14ïr}¸ÐÊõï/ôúò<×\ f7ú͹þåíp9Ó»·o\87n±þë³Xÿ\ fß\7f¼üîßÿõá[¸ß/ßþõÝÖæ£üøx?òK¸Ó}wÔ{wáÐôÎÛ¤¤7ʾ  Ao%«çͲmBÍ[É\8ay³l\9b\90òV²JÞ,Û&t¼\8d¼3Þ(û&D¼\95¬\867˶     \ 5o%+àͲmB¾[ɪw³l\9bÐî6òNw£ì\9b\10îV²ºÝ,Û&T»\95¬h7˶     Én%«ØͲmB¯ÛÈ;×\8d²oB¬[Éju³l\9bPêV²BÝ,Û&dº\95¬J7˶     \8dn#ïD7ʾ        \81n%«ÏͲmB\9d\8as³l\9b\90æV²ÊÜ,Û&t¹\8d¼³Ü(û&D¹\95¬&7˶     En%+ÈͲmB\8e[ɪq³l\9bÐâ6òNq£ì\9b\10âV²:Ü,Û&T¸\95¬\b7˶             n%«ÀͲmB\7f[Èwùm\92Ç&Ä·\95¬ö6˶       åm%+¼Í²mBv[ɪn³l\9bÐÜ6òNn£ì\9b9¸­àÕÛf÷ë"Ô¶\95«Ø6ö    ©m%«´Í²mæζ\81\95ÙF×\16!²­\5¶\19¶M(l+Y\81m\96m3çµ\15¼êÚì~]\84¶¶qwZ\e\84°¶\92ÕÕfÙ6sU[Á+ªÍî×EHj+WEm\86m\13zÚFÞ9m\94}3Ç´\15¼ZÚì~]\84\92¶r\15ÒfØ6!£­dU´Y¶Mhh\ey'´QöM\bh+Yýl\96m\13êÙJV<\9b\84\92UÎfÙ6¡\9b\9dÍFÙ7!\9a­d5³Y¶M(f+YÁl\96m\13rÙJV-\9b\84\91w*\e\84\92ÕÉfÙ6¡\92­dE²Y¶MHd+Y\85l\96m\13úØFÞyl\94}\13âØJV\e\9b\84\92\15ÆfÙ6!\8b­dU±Y¶Mhb\ey'±QöM\bb+Y=l\96m\13jØJV\f\9b\84\14\92UÂfÙ6¡\83-ä»\f6Éc\13"ØJV\ 3\9b\84\ 2\92\15ÀfÙ6!\7f­dÕ¯Y¶Mh_\ey§¯QöM\b_+YÝk\96m\13ª×JVô\9a\84äµ\92U¼fÙ6¡wmä\9d»FÙ7!v­dµ®Y¶M(]+Y¡k\96m\132×JVå\9a\84Ƶ\91\1a\84Àµ\92Õ·fÙ6¡n­dÅ­Y¶Í\9c¶Vð*[³ûu\11ºÖÆÝYk\84}\13¢ÖJVÓ\9a\8cEkåÞ\82Ö¬~Ù\83\9cµRU³f×6¡emä\9d²FÙ7sÈZÁ«cÍî×E¨X+W\11k\86m\13\12ÖJVÁ\9aeÛÌýj\ 3+_\8d®-B¼Z¹jW3l\9bP®V²ÂÕ,ÛfÎV+xU«Ùýº\bÍjãîd5¾       Áj%«WͲmB­ZÉ\8aU³l\9b\90ªV²JÕ,Û&tª\8d¼3Õ(û&Dª\95¬F5˶     \85j%+PͲmB\9eZɪS³l\9bЦ6òNS£ì\9b\10¦V²ºÔ,Û&T©\95¬(5˶     Ij%«HͲmB\8fZÈw9j\92Ç&Ĩ\95¬\165˶      %j%+DͲmB\86ZɪP³l\9bР6òNP£ì\9b\10 V²úÓ,Û&Ô§\95¬ø4˶     éi%«<ͲmBwÚÈ;;\8d²oBtZÉjN³l\9bP\9c\82Ó,Û&ä¦)\91ìjÓ|\9b\15\9bÞÝæõø¼5}~\9d\91\9a^ 5ýµ`»@kºNÝbÓË\97Øô?þð·¿ýó\7fÿáÑ\vjßÏßþ]Å\9dá79\1e>_\9e¿\16z\17¦ñ\9a;1½¿ghL\1f\(E¦\19\1f«\90\99v¸:SÀ}\15\ eWj
+¸¯BlÚáªM\ 1÷UèM+|\a§\19\1f«\90\9c\9aSÀ}\15ªÓ\ eWv
+¸¯BxÚá*O\ 1÷UhO+|ǧ\19\1f«\90\9fv¸úSÀ}\15
\ eW\82
+¸¯B\84ÚáªP\ 1÷UèP+|\87¨\19\1f«\90¢v¸ZTÀ}\15\ eW\8e
+¸¯B\90Úá*R\ 1÷UhR+|G©\19\1f«\90¥v¸ºTÀ}\15ÊÔ\ eW\9a
+¸¯B\9cÚáªS\ 1÷UèS+|\aª\19\1f«\90¨v¸\1aUÀ}\15\ e
+¸¯B¨Úá*U\ 1÷UhU+|Ǫ\19\1f«\90«v¸zUÀ}\15\8aÕ\ e
+¸¯B´ÚáªV\ 1÷UèV\eü.\\8dø\\85tµÃÕ®\ 2î«P¯v¸òUÀ}\15\ 2Ö\ e
+¸¯BÃZá;bÍøXÍ\19kg¯\8e\15\84\92µ£\95²\82í«\10³v¸jVÀ}5÷¬\95­ 5Ó¾ IkG«i\ 5ÛW¡jípe­\80ûj\ e[;{\95­@Û&´­\15½ãÖl\8fUÈ[;\}+à¾\9a\v×Î^\89+ж    \91kG«r\ 5ÛW¡s­ð\1dºf|¬æÔµ³Wë
+´mBíÚÑÊ]ÁöU\b^;\Å+à¾
+Ík\85ïè5ãc\15²×\ e
+¸¯BùÚáJ_\ 1÷U\88_;\õ+à¾
+ýk\85ï\06ãc\15\12Ø\ eW\ 3\v¸¯B\ 5ÛáÊ`\ 1÷U\ba;\%,à¾
+-l\85ï\186ãc\15\ eW\ f\v¸¯B\11ÛáJb\ 1÷U\88b;\U,à¾
+]l\85ï06ãc\15ÒØ\ eW\e\v¸¯B\1dÛáÊc\ 1÷U\bd;\\85,à¾
+\8dl\85ïH6ãc\15\ eW'\v¸¯B)ÛáJe\ 1÷U\88e;\µ,à¾
+½l\83ß\ 5³\11\9f«\90Ìv¸\9aYÀ}\15ªÙ\ eW6\v¸¯B8Ûá*g\ 1÷Uhg+|dz\19\1f«\90Ïv¸úYÀ}\15
\ eWB\v¸¯BDÛáªh\ 1÷Uèh+|\87´\19\1f«\90Òv¸ZZÀ}\15\ eWN\v¸¯BPÛá*j\ 1÷Uhj+|Gµ\19\1f«\90Õv¸ºZÀ}\15ÊÚ\ eWZ\v¸¯æ¸¶³W]\v´mB_[Ñ;°ÍöX\85ĶÃÕØ\ 2²íè[f\vð×E\bm;X¥-о
+­m\85ïØ6ãc5ç¶\9d½z[ m\13\8aÛ\8eVr\v¶¯BtÛáªn\ 1÷ÕÜÝV¶ÂÛLû&¤·\1d­ö\16l_\85ú¶Ã\95ß\ 2î«9ÀíìUà\ 2m\9bÐàVô\8ep³=V!Ãípu¸\80û*\94¸\1d®\14\17p_\85\18·ÃUã\ 2î«ÐãVø\ er3>V!Éíp5¹\80û*T¹\1d®,\17p_\850·ÃUæ\ 2î«ÐæVø\8es3>V!Ïípõ¹\80û*\14º\1d®D\17p_\85H·ÃUé\ 2î«Ðé6ø]¨\eñ¹
+©n\87«Õ\ 5ÜW¡Öípåº\80û*\ 4»\1d®b\17p_\85f·Âw´\9bñ±
+Ùn\87«Û\ 5ÜW¡Üíp¥»\80û*Ä»\1d®z\17p_\85~·ÂwÀ\9bñ±
+       o\87«á\ 5ÜW¡âípe¼\80û*\84¼!EmK^¸ÐJyï/\94ZÞp£ßüÞØóËõ7\9bË\11bÞuê\16ó¾}\89yÿé\87\9fÿç÷Ç\97ßýøÓÿø\8f?üüÿýøÇ\99y}û\1díÛ¿²½Ó\1e¼8öóýíYÖ»Ó¯xá\9d~Ýß8¤_\ f.\94Ò¯\8c\8fUH¿:\é\17à¾
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\15¾Ó¯\8c\8fUH¿:\é\17à¾
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\15¾Ó¯\8c\8fUH¿:\é\17à¾
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\15¾Ó¯\8c\8fUH¿:\é\17à¾
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\r~\97~E|®BúÕáJ¿\0÷UH¿:\é\17à¾
+éW\87\ 2ÜW!ýªð\9d~e|¬æô«³Wú\ 5´mBúÕÑJ¿ÀöUH¿:\é\17à¾\9aÓ¯ÊVú\95\84ô«£\95~\81í«\90~u¸Ò/À}5§_\9d½Ò/ m\13Ò¯\8aÞéW¶Ç*¤_\1d®ô\vp_ÍéWg¯ô\v\84ô«£\95~\81í«\90~UøN¿2>VsúÕÙ+ý\ 2Ú6!ýêh¥_`û*¤_\1d®ô\vp_\85ô«Âwú\95ñ±
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«Âwú\95ñ±
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«Âwú\95ñ±
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«Âwú\95ñ±
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«Âwú\95ñ±
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«ÁïÒ¯\88ÏUH¿:\é\17à¾
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\15¾Ó¯\8c\8fUH¿:\é\17à¾
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\15¾Ó¯\8c\8fUH¿:\é\17à¾
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\15¾Ó¯\8c\8fUH¿:\é\17à¾
+éW\87\ 2ÜWsúÕÙ+ý\ 2Ú6!ýªè\9d~e{¬BúÕáJ¿\0÷Õ\98~uô-ý\ 2øë"¤_\1d¬ô\vh_\85ô«Âwú\95ñ±\9aÓ¯Î^é\17ж        éWG+ý\ 2ÛW!ýêp¥_\80ûjN¿*[éW¦}\13Ò¯\8e\ 5¶¯BúÕáJ¿\0÷Õ\9c~uöJ¿\80¶MH¿*z§_Ù\1e«\90~u¸Ò/À}\15Ò¯\ e\ 5¸¯BúÕáJ¿\0÷UH¿*|§_\19\1f«\90~u¸Ò/À}\15Ò¯\ e\ 5¸¯BúÕáJ¿\0÷UH¿*|§_\19\1f«\90~u¸Ò/À}\15Ò¯\ e\ 5¸¯BúÕáJ¿\0÷UH¿\1aü.ý\8aø\\85ô«Ã\95~\ 1î«\90~u¸Ò/À}\15Ò¯\ e\ 5¸¯BúUá;ýÊøX\85ô«Ã\95~\ 1î«\90~u¸Ò/À}\15Ò¯\ e\ 5¸¯BúUá;ýÊøX\85ô«Ã\95~\ 1î«\90~u¸Ò/À}\15Ò¯\98+ué\17\h¥_÷\17z==O¿Â\8d~súuý/áÛÇù\1dÒ¯uê\96~½?K¿þðýÇËïþý_\7fxôR¹óñÛÏÄÜy~«Óõ\9b©ÓùYüµßõ\16¯¼ßõv\7fçð®·\a\17JïzËøX\85w½u¸Þõ\ 6¸¯Â»Þ:\ïz\ 3ÜWá]o\1d®à\ fp_\85à¯Âwð\97ñ±
+Á_\87\ 3ÜW!øëp\ 5\7f\80û*\ 4\7f\1d®à\ fp_\85à¯Âwð\97ñ±
+Á_\87\ 3ÜW!øëp\ 5\7f\80û*\ 4\7f\1d®à\ fp_\85à¯Âwð\97ñ±
+Á_\87\ 3ÜW!øëp\ 5\7f\80û*\ 4\7f\1d®à\ fp_\85à¯Âwð\97ñ±
+Á_\87\ 3ÜW!øëp\ 5\7f\80û*\ 4\7f\1d®à\ fp_\85à¯Áï\82¿\88ÏU\bþ:\Á\1fà¾
+Á_\87\ 3ÜW!øëp\ 5\7f\80û*\ 4\7f\15¾\83¿\8c\8fÕ\1cüuö
\80¶M\bþ:ZÁ\1fؾ
+Á_\87\ 3ÜWsðWÙ
+þ2í\9b\10üu´\82?°}\15\82¿\ e\a¸¯æ௳Wð\a´mBðWÑ;øËöX\85à¯Ã\15ü\ 1î«9øëì\15ü\ 1m\9b\10üu´\82?°}\15\82¿
+ßÁ_ÆÇj\ eþ:{\ 5\7f@Û&\ 4\7f\1d­à\ fl_\85à¯Ã\15ü\ 1î«\10üUø\ eþ2>V!øëp\ 5\7f\80û*\ 4\7f\1d®à\ fp_\85à¯Ã\15ü\ 1î«\10üUø\ eþ2>V!øëp\ 5\7f\80û*\ 4\7f\1d®à\ fp_\85à¯Ã\15ü\ 1î«\10üUø\ eþ2>V!øëp\ 5\7f\80û*\ 4\7f\1d®à\ fp_\85à¯Ã\15ü\ 1î«\10üUø\ eþ2>V!øëp\ 5\7f\80û*\ 4\7f\1d®à\ fp_\85à¯Ã\15ü\ 1î«\10üUø\ eþ2>V!øëp\ 5\7f\80û*\ 4\7f\1d®à\ fp_\85à¯Ã\15ü\ 1î«\10ü5ø]ð\17ñ¹
+Á_\87\ 3ÜW!øëp\ 5\7f\80û*\ 4\7f\1d®à\ fp_\85à¯Âwð\97ñ±
+Á_\87\ 3ÜW!øëp\ 5\7f\80û*\ 4\7f\1d®à\ fp_\85à¯Âwð\97ñ±
+Á_\87\ 3ÜW!øëp\ 5\7f\80û*\ 4\7f\1d®à\ fp_\85à¯Âwð\97ñ±
+Á_\87\ 3ÜW!øëp\ 5\7f\80ûj\ eþ:{\ 5\7f@Û&\ 4\7f\15½\83¿l\8fU\bþ:\Á\1fà¾\1a\83¿\8e¾\ 5\7f\0\7f]\84à¯\83\15ü\ 1í«\10üUø\ eþ2>Vsð×Ù+ø\ 3Ú6!øëh\ 5\7f`û*\ 4\7f\1d®à\ fp_ÍÁ_e+øË´oBð×Ñ
+þÀöU\bþ:\Á\1fà¾\9a\83¿Î^Á\1fж  Á_Eïà/Ûc\15\82¿\ e\a¸¯Bð×á
\0÷U\bþ:\Á\1fà¾
+Á_\85ïà/ãc\15\82¿\ e\a¸¯Bð×á
\0÷U\bþ:\Á\1fà¾
+Á_\85ïà/ãc\15\82¿\ e\a¸¯Bð×á
\0÷U\bþ:\Á\1fà¾
+Á_\83ß\ 5\7f\11\9f«\10üu¸\82?À}\15\82¿\ e\a¸¯Bð×á
\0÷U\bþ*|\a\7f\19\1f«\10üu¸\82?À}\15\82¿\ e\a¸¯Bð×á
\0÷U\bþ*|\a\7f\19\1f«\10üu¸\82?À}\15\82¿\ e\a¸¯Bð\17\12µ6ø\83\v­àïþB¯ççÁ_¸Ño\ eþ^^\ fïçÓ\19\82¿uê\16ü}|\rþ~üã\ f¿ÿéÇ¿|ûÏ\7füéÇ\7fû×\99\ 2\9c®¿À|ûó\80;Íït<\9c¿µ\1cOr¿\1d\vï0âþÆ!\8cxp¡\14F\0î«\10Ft¸Â\bÀ}\15Â\88
+ßaDÆÇ*\84\11\1d®0\ 2p_\850¢Ã\15F\0î«\10Ft¸Â\bÀ}\15Â\88\ 6¿\v#">W!\8cèp\85\11\80û*\84\11\1d®0\ 2p_\850¢Ã\15F\0î«\10FTø\ e#2>Vs\18ÑÙ+\8c\0Ú6!\8cèh\85\11`û*\84\11\1d®0\ 2p_ÍaDe+\8cÈ´oB\18ÑÑ
+#ÀöU\b#:\a\ 4à¾\9aÃ\88Î^a\ 4ж  aDEï0"Ûc\15Â\88\ eW\18\ 1¸¯æ0¢³W\18\ 1´mB\18ÑÑ
+#ÀöU\b#*|\87\11\19\1f«9\8cèì\15F\0m\9b\10Ft´Â\b°}\15Â\88\ eW\18\ 1¸¯B\18Qá;\8cÈøX\850¢Ã\15F\0î«\10Ft¸Â\bÀ}\15Â\88\ eW\18\ 1¸¯B\18Qá;\8cÈøX\850¢Ã\15F\0î«\10Ft¸Â\bÀ}\15Â\88\ eW\18\ 1¸¯B\18Qá;\8cÈøX\850¢Ã\15F\0î«\10Ft¸Â\bÀ}\15Â\88\ eW\18\ 1¸¯B\18Qá;\8cÈøX\850¢Ã\15F\0î«\10Ft¸Â\bÀ}\15Â\88\ eW\18\ 1¸¯B\18Qá;\8cÈøX\850¢Ã\15F\0î«\10Ft¸Â\bÀ}\15Â\88\ eW\18\ 1¸¯B\18ÑàwaDÄç*\84\11\1d®0\ 2p_\850¢Ã\15F\0î«\10Ft¸Â\bÀ}\15Â\88
+ßaDÆÇ*\84\11\1d®0\ 2p_\850¢Ã\15F\0î«\10Ft¸Â\bÀ}\15Â\88
+ßaDÆÇ*\84\11\1d®0\ 2p_\850¢Ã\15F\0î«\10Ft¸Â\bÀ}\15Â\88
+ßaDÆÇ*\84\11\1d®0\ 2p_\850¢Ã\15F\0î«9\8cèì\15F\0m\9b\10FTô\ e#²=V!\8cèp\85\11\80ûj\f#:ú\16F\0üu\11Â\88\ eV\18\ 1´¯B\18Qá;\8cÈøXÍaDg¯0\ 2\840¢£\15F\80í«\10Ft¸Â\bÀ}5\87\11\95­0"Ó¾       aDG+\8c\0ÛW!\8cèp\85\11\80ûj\ e#:{\85\11@Û&\84\11\15½Ã\88l\8fU\b#:\a\ 4à¾
+aD\87+\8c\0ÜW!\8cèp\85\11\80û*\84\11\15¾Ã\88\8c\8fU\b#:\a\ 4à¾
+aD\87+\8c\0ÜW!\8cèp\85\11\80û*\84\11\15¾Ã\88\8c\8fU\b#:\a\ 4à¾
+aD\87+\8c\0ÜW!\8cèp\85\11\80û*\84\11\r~\17FD|®B\18Ñá
+#\0÷U\b#:\a\ 4à¾
+aD\87+\8c\0ÜW!\8c¨ð\1dFd|¬B\18Ñá
+#\0÷U\b#:\a\ 4à¾
+aD\87+\8c\0ÜW!\8c¨ð\1dFd|¬B\18Ñá
+#\0÷U\b#:\a\ 4à¾
+aDøaþ6\8c\80\v­0âþB¯¯ÏÃ\88\11F\r\18qù<^¿m|ùÈa\84NÝÂ\88Ï\87\7fú\87ÿ2ß|ózx=]¾»gf\11ñv|ý|VDèM<ù¦:÷åªÏßÄóèBáM<\84ûj~\13O\87ëM<\80\8fÕü&\9e\12_oâ!ÜWó\9bxJ|½\89\87p_Íoâ)ñõ&\1eÂ}5¿\89§Ãõ&\1eÀÇj~\13O\89¯7ñ\10î«ùM<%¾ÞÄC¸¯æ7ñ\94øz\13\ fá¾\9aßÄÓáz\13\ fàc5¿\89§ÄWpF¸¯æà¬ÄWpF¸¯æà¬ÄWpF¸¯æà¬Ã\15\9c\ 1>VspVâ+8#ÜWspVâ+8#ÜWspVâ+8#ÜWspVá;8Ëø\ÍÁY\89¯à\8cp_ÍÁY\89¯à\8cp_ÍÁY\89¯à\8cp_ÍÁY\87+8\ 3|¬Æ଴oÁ\19Ѷ\99\83³\92\19Ù¾\9a\83³\12\19á¾\1a\83³Î^Á\19о\99\83³\92\19Ù¾\9a\83³\12\19á¾\1a\83³Ò¾\ 5gDÛf\ eÎ:ZÁ\19Øc5\ag%¾\823Â}5\ 6g¥}\vÎ\88¶Í\1c\9c\95ô
+ÎÈöÕ\1c\9c\823ÀÇj\fÎJû\16\9c\11m\9b98+é\15\9c\91í«98+ñ\15\9c\11î«98ëp\ 5g\80\8fÕ\1c\9c\95ø
\b÷Õ\1c\9c\95ø
\b÷Õ\1c\9c\95ø
\b÷Õ\1c\9c\823ÀÇj\ eÎJ|\ 5g\84ûj\ eÎJ|\ 5g\84ûj\ eÎJ|\ 5g\84ûj\ eÎ:\Á\19àc5\ag%¾\823Â}5\ag%¾\823Â}5\ag%¾\823Â}5\ag\1d®à\fð±\9a\83³\12\19á¾\9a\83³\12\19á¾\9a\83³\12\19á¾\9a\83³\ eWp\ 6øXÍÁY\89¯à\8cp_ÍÁY\89¯à\8cp_ÍÁY\89¯à\8cp_ÍÁY\85ïà,ãs5\ag%¾\823Â}5\ag%¾\823Â}5\ag%¾\823Â}5\ag\1d®à\fð±\9a\83³\12\19á¾\9a\83³\12\19á¾\9a\83³\12\19á¾\9a\83³\ eWp\ 6øXÍÁY\89¯à\8cp_ÍÁY\89¯à\8cp_ÍÁY\89¯à\8cp_ÍÁY\87+8\ 3|¬æà¬ÄWpF¸¯æà¬ÄWpF¸¯Æ଴oÁ\19Ѷ\99\83³\8eVp\ 6öXÍÁY\89¯à\8cp_MÁYIÿ\1a\9c\11üu1\ag%¼\823¢}5\ag\1d®à\fð±\1a\83³Ò¾\ 5gDÛf\ eÎJz\ 5gdûj\ eÎJ|\ 5g\84ûj\fÎ:{\ 5g@ûf\ eÎJz\ 5gdûj\ eÎJ|\ 5g\84ûj\fÎJû\16\9c\11m\9b98ëh\ 5g`\8fÕ\1c\9c\95ø
\b÷Õ\1c\9c\95ø
\b÷Õ\1c\9c\95ø
\b÷Õ\1c\9c\823ÀÇj\ eÎJ|\ 5g\84ûj\ eÎJ|\ 5g\84ûj\ eÎJ|\ 5g\84ûj\ eÎ:\Á\19àc5\ag%¾\823Â}5\ag%¾\823Â}5\ag%¾\823Â}5\ag\15¾\83³\8cÏÕ\1c\9c\95ø
\b÷Õ\1c\9c\95ø
\b÷Õ\1c\9c\95ø
\b÷Õ\1c\9c\823ÀÇj\ eÎJ|\ 5g\84ûj\ eÎJ|\ 5g\84ûj\ eÎJ|\ 5g\84ûj\ eÎ:\Á\19àc5\ag%¾\823Â}5\ag%¾\823Â}5\a\95*\833ºÐíÜ\97\v\85à,Ýè·¾\89çòþqø8}¾Bp¶Ný\1a\9c]¿½÷àìñ\e\1f\87Ïã·\7f[z§ø]Nׯ®N¯Ïz³×ãáåó\97_¼ãEuîËMçϧ_ÿy.\1fß¾syp¡\aøí4â¾ú\ 4\7f;¼¼¿\9fZüv\1aq_}\82\7f\1c.oï\9f-~;\8d¸¯>Éü®\9fÎåãRâë4ácõ     ~ýt^?ÛǾN#î«OðÕAv¸êJÀ}\15êÊ\ eW]    ¸¯B]Yá»®ÌøX\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Yá»®ÌøX\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Yá»®ÌøX\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Yá»®ÌøX\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]ÙàwueÄç*Ô\95\1d®º\12p_\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ
+ßueÆÇj®+;{Õ\95@Û&Ô\95\1d­º\12l_\85º²ÃUW\ 2®¬lÕ\95\99öM¨+;Zu%ؾ
+ue\87«®\ 4ÜWs]ÙÙ«®\ 4Ú6¡®¬è]Wf{¬B]Ùáª+\ 1÷Õ\Wvöª+\81¶M¨+;Zu%ؾ
+ue\85ïº2ãc5×\95\9d½êJ m\13êÊ\8eV]        ¶¯B]Ùáª+\ 1÷U¨++|×\95\19\1f«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Ùáª+\ 1÷U¨++|×\95\19\1f«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Ùáª+\ 1÷U¨++|×\95\19\1f«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Ùáª+\ 1÷U¨++|×\95\19\1f«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Ùáª+\ 1÷U¨++|×\95\19\1f«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Ùáª+\ 1÷U¨+\eü®®\8cø\\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ\ eW]     ¸¯B]Yá»®ÌøX\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Yá»®ÌøX\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Yá»®ÌøX\85º²ÃUW\ 2î«PWv¸êJÀ}5×\95\9d½êJ m\13êÊ\8aÞue¶Ç*Ô\95\1d®º\12p_\8dueGßêJ\80¿.B]ÙÁª+\81öU¨++|×\95\19\1f«¹®ììUW\ 2m\9bPWv´êJ°}\15êÊ\ eW]      ¸¯æº²²UWfÚ7¡®ìhÕ\95`û*Ô\95\1d®º\12p_Íueg¯º\12\84º²¢w]\99í±
+ue\87«®\ 4ÜW¡®ìpÕ\95\80û*Ô\95\1d®º\12p_\85º²Âw]\99ñ±
+ue\87«®\ 4ÜW¡®ìpÕ\95\80û*Ô\95\1d®º\12p_\85º²Âw]\99ñ±
+ue\87«®\ 4ÜW¡®ìpÕ\95\80û*Ô\95\1d®º\12p_\85º²ÁïêÊ\88ÏU¨+;\u%à¾
+ue\87«®\ 4ÜW¡®ìpÕ\95\80û*Ô\95\15¾ëÊ\8c\8fU¨+;\u%à¾
+ue\87«®\ 4ÜW¡®ìpÕ\95\80û*Ô\95\15¾ëÊ\8c\8fU¨+;\u%à¾
+ue\87«®\ 4ÜW¡®\fe`[WÂ\85V]y\7f¡×Ëóº2Üè7×\95×oa>Þém~¿\1cº~Ù{\8b+\8f#®ü§\1f\9fß\1f_~÷ãOÿãQ×wúå'ö×ÊÃ\ay¾þ\9eû4±Tëw7\91Z¿ûû\86ÖïÁ\85\97ñ±
+­_\87«õ\ 3ÜW¡õëpµ~\80û*´~\1d®Ö\ fp_\85Ö¯Âwë\97ñ±
+­_\87«õ\ 3ÜW¡õëpµ~\80û*´~\1d®Ö\ fp_\85Ö¯Âwë\97ñ±
+­_\87«õ\ 3ÜW¡õëpµ~\80û*´~\1d®Ö\ fp_\85Ö¯Âwë\97ñ±
+­_\87«õ\ 3ÜW¡õëpµ~\80û*´~\1d®Ö\ fp_\85Ö¯Âwë\97ñ±
+­_\87«õ\ 3ÜW¡õëpµ~\80û*´~\1d®Ö\ fp_\85Ö¯ÁïZ¿\88ÏUhý:\­\1fà¾
+­_\87«õ\ 3ÜW¡õëpµ~\80û*´~\15¾[¿\8c\8fÕÜúuöjý\80¶Mhý:Z­\1fؾ
+­_\87«õ\ 3ÜWsëWÙjý2í\9bÐúu´Z?°}\15Z¿\ e\a¸¯æÖ¯³Wë\a´mBëWÑ»õËöX\85Ö¯ÃÕú\ 1õëìÕú\ 1m\9bÐúu´Z?°}\15Z¿
+ß­_ÆÇjný:{µ~@Û&´~\1d­Ö\ fl_\85Ö¯ÃÕú\ 1î«ÐúUøný2>V¡õëpµ~\80û*´~\1d®Ö\ fp_\85Ö¯ÃÕú\ 1î«ÐúUøný2>V¡õëpµ~\80û*´~\1d®Ö\ fp_\85Ö¯ÃÕú\ 1î«ÐúUøný2>V¡õëpµ~\80û*´~\1d®Ö\ fp_\85Ö¯ÃÕú\ 1î«ÐúUøný2>V¡õëpµ~\80û*´~\1d®Ö\ fp_\85Ö¯ÃÕú\ 1î«ÐúUøný2>V¡õëpµ~\80û*´~\1d®Ö\ fp_\85Ö¯ÃÕú\ 1î«Ðú5ø]ë\17ñ¹
+­_\87«õ\ 3ÜW¡õëpµ~\80û*´~\1d®Ö\ fp_\85Ö¯Âwë\97ñ±
+­_\87«õ\ 3ÜW¡õëpµ~\80û*´~\1d®Ö\ fp_\85Ö¯Âwë\97ñ±
+­_\87«õ\ 3ÜW¡õëpµ~\80û*´~\1d®Ö\ fp_\85Ö¯Âwë\97ñ±
+­_\87«õ\ 3ÜW¡õëpµ~\80ûjný:{µ~@Û&´~\15½[¿l\8fUhý:\­\1fà¾\1a[¿\8e¾µ~\0\7f]\84Ö¯\83Õú\ 1í«ÐúUøný2>Vsë×Ù«õ\ 3Ú6¡õëhµ~`û*´~\1d®Ö\ fp_Í­_e«õË´oBë×ÑjýÀöUhý:\­\1fà¾\9a[¿Î^­\1fж   ­_EïÖ/Ûc\15Z¿\ e\a¸¯Bë×ájý\0÷Uhý:\­\1fà¾
+­_\85ïÖ/ãc\15Z¿\ e\a¸¯Bë×ájý\0÷Uhý:\­\1fà¾
+­_\85ïÖ/ãc\15Z¿\ e\a¸¯Bë×ájý\0÷Uhý:\­\1fà¾
+­_\83ßµ~\11\9f«Ðúu¸Z?À}\15Z¿\ e\a¸¯Bë×ájý\0÷Uhý*|·~\19\1f«Ðúu¸Z?À}\15Z¿\ e\a¸¯Bë×ájý\0÷Uhý*|·~\19\1f«Ðúu¸Z?À}\15Z¿\ e\a¸¯Bë\17\13µ®õ\83\v­ÖïþB¯oÏ[¿p£ßÜú]¿_þ<]\7fáɱß:u\8býN#ö\e?   ~¼þ\9dß~1½Û\9fOïtþ|{\16ø]\aÞ>\7fùª8^Qç¾ÜqþdúñíúUÜ·¯_\1f\ 1~;\8d¸¯>Á?\ eßþ\15^Gÿr\16á¯\8b\8fÙÓñp|\7fy+áu\9aè±ú\ 4¿~.oÇö\81¯Ó\88ûê\13üú¹\\8e\9f-~;\8d¸¯>Á¯\9fÍë©~ì·Ó\88ûêcü|ýtÎçö±¯Ó\84\8fÕ'øõÓ9\9dÛǾN#î«Oðë§s|m\1fû:\8d¸¯>Á¯\9fÎËåÔâ·Ó\88ûê\93·¤®×ÈVø~9mÆÇ*¼\9c¶ÃõrZÀ}\15^NÛáz9-à¾
+/§íp\ 5ë\80û*\ 4ë\15¾\83õ\8c\8fU\bÖ;\Á:à¾
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\15¾\83õ\8c\8fU\bÖ;\Á:à¾
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\15¾\83õ\8c\8fU\bÖ;\Á:à¾
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\15¾\83õ\8c\8fU\bÖ;\Á:à¾
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\15¾\83õ\8c\8fU\bÖ;\Á:à¾
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\r~\17¬G|®B°Þá
\ 1÷U\bÖ;\Á:à¾
+Áz\87+X\aÜW!X¯ð\1d¬g|¬æ`½³W°\ e´mB°ÞÑ
+ÖÁöU\bÖ;\Á:à¾\9a\83õÊV°\9e\84`½£\15¬\83í«\10¬w¸\82uÀ}5\aë\9d½\82u m\13\82õ\8aÞÁz¶Ç*\ 4ë\1d®`\1dp_ÍÁzg¯`\1d\84`½£\15¬\83í«\10¬Wø\ eÖ3>Vs°ÞÙ+X\aÚ6!Xïh\ 5ë`û*\ 4ë\1d®`\1dp_\85`½Âw°\9eñ±
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\1d®`\1dp_\85`½Âw°\9eñ±
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\1d®`\1dp_\85`½Âw°\9eñ±
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\1d®`\1dp_\85`½Âw°\9eñ±
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\1d®`\1dp_\85`½Âw°\9eñ±
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\1d®`\1dp_\85`½Áï\82õ\88ÏU\bÖ;\Á:à¾
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\15¾\83õ\8c\8fU\bÖ;\Á:à¾
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\15¾\83õ\8c\8fU\bÖ;\Á:à¾
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\15¾\83õ\8c\8fU\bÖ;\Á:à¾
+Áz\87+X\aÜWs°ÞÙ+X\aÚ6!X¯è\1d¬g{¬B°Þá
\ 1÷Õ\18¬wô-X\aøë"\ 4ë\1d¬`\1dh_\85`½Âw°\9eñ±\9a\83õÎ^Á:ж       ÁzG+X\aÛW!Xïp\ 5ë\80ûj\ eÖ+[Áz¦}\13\82õ\8e\ e¶¯B°Þá
\ 1÷Õ\1c¬wö
\81¶M\bÖ+z\aëÙ\1e«\10¬w¸\82uÀ}\15\82õ\ e\ e¸¯B°Þá
\ 1÷U\bÖ+|\aë\19\1f«\10¬w¸\82uÀ}\15\82õ\ e\ e¸¯B°Þá
\ 1÷U\bÖ+|\aë\19\1f«\10¬w¸\82uÀ}\15\82õ\ e\ e¸¯B°Þá
\ 1÷U\bÖ\eü.X\8fø\\85`½Ã\15¬\ 3î«\10¬w¸\82uÀ}\15\82õ\ e\ e¸¯B°^á;XÏøX\85`½Ã\15¬\ 3î«\10¬w¸\82uÀ}\15\82õ\ e\ e¸¯B°^á;XÏøX\85`½Ã\15¬\ 3î«\10¬w¸\82uÀ}\15\82õ\98\wÁ:\h\ 5ë÷\17z}\7f\1e¬\87\eýæ`ý|½Èûå\bÁú:u\vÖÏ_\82õÿô\ fÿe&ÚÇëwFïw\7fç\83[\9c\ e¯¯×ûa°\1e¯¸\83õû;\86`ýÁ\85\ e¸¯Æ`½£oÁ:À_\17!X¯à\1d¬gz¬B°Þá
\ 1÷U\bÖ;\Á:à¾
+Áz\87+X\aÜW!X¯ð\1d¬g|¬B°Þá
\ 1÷U\bÖ;\Á:à¾
+Áz\87+X\aÜW!X¯ð\1d¬g|¬B°Þá
\ 1÷U\bÖ;\Á:à¾
+Áz\87+X\aÜW!X¯ð\1d¬g|¬B°Þá
\ 1÷U\bÖ;\Á:à¾
+Áz\87+X\aÜW!X¯ð\1d¬g|¬B°Þá
\ 1÷U\bÖ;\Á:à¾
+Áz\87+X\aÜW!X¯ð\1d¬g|¬B°Þá
\ 1÷U\bÖ;\Á:à¾
+Áz\87+X\aÜW!X¯ð\1d¬g|¬B°Þá
\ 1÷U\bÖ;\Á:à¾
+Áz\87+X\aÜW!X¯ð\1d¬g|¬B°Þá
\ 1÷U\bÖ;\Á:à¾
+Áz\87+X\aÜW!Xoð»`=âs\15\82õ\ e\ e¸¯B°Þá
\ 1÷U\bÖ;\Á:à¾
+Áz\85ï`=ãc5\aë\9d½\82u m\13\82õ\8e\ e¶¯B°Þá
\ 1÷Õ\1c¬W¶\82õLû&\ 4ë\1d­`\1dl_\85`½Ã\15¬\ 3î«9Xïì\15¬\ 3m\9b\10¬Wô\ eÖ³=V!Xïp\ 5ë\80ûj\ eÖ;{\ 5ë@Û&\ 4ë\1d­`\1dl_\85`½Âw°\9eñ±\9a\83õÎ^Á:ж   ÁzG+X\aÛW!Xïp\ 5ë\80û*\ 4ë\15¾\83õ\8c\8fU\bÖ;\Á:à¾
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\15¾\83õ\8c\8fU\bÖ;\Á:à¾
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\15¾\83õ\8c\8fU\bÖ;\Á:à¾
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\15¾\83õ\8c\8fU\bÖ;\Á:à¾
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\15¾\83õ\8c\8fU\bÖ;\Á:à¾
+Áz\87+X\aÜW!Xïp\ 5ë\80û*\ 4ë\r~\17¬G|®B°Þá
\ 1÷U\bÖ;\Á:à¾
+Áz\87+X\aÜW!X¯ð\1d¬g|¬B°Þá
\ 1÷U\bÖ;\Á:à¾
+Áz\87+X\aÜW!X¯ð\1d¬g|¬B°Þá
\ 1÷U\bÖ;\Á:à¾
+Áz\87+X\aÜW!X¯ð\1d¬g|¬B°Þá
\ 1÷U\bÖ;\Á:à¾\9a\83õÎ^Á:ж  ÁzEï`=Ûc\15\82õ\ e\ e¸¯Æ`½£oÁ:À_\17!Xï`\ 5ë@û*\ 4ë\15¾\83õ\8c\8fÕ\1c¬wö
\81¶M\bÖ;ZÁ:ؾ
+Áz\87+X\aÜWs°^Ù
+Ö3í\9b\10¬w´\82u°}\15\82õ\ e\ e¸¯æ`½³W°\ e´mB°^Ñ;XÏöX\85`½Ã\15¬\ 3î«\10¬w¸\82uÀ}\15\82õ\ e\ e¸¯B°^á;XÏøX\85`½Ã\15¬\ 3î«\10¬w¸\82uÀ}\15\82õ\ e\ e¸¯B°^á;XÏøX\85`½Ã\15¬\ 3î«\10¬w¸\82uÀ}\15\82õ\ e\ e¸¯B°ÞàwÁzÄç*\ 4ë\1d®`\1dp_\85`½Ã\15¬\ 3î«\10¬w¸\82uÀ}\15\82õ
+ßÁzÆÇ*\ 4ë\1d®`\1dp_\85`½Ã\15¬\ 3î«\10¬w¸\82uÀ}\15\82õ
+ßÁzÆÇ*\ 4ë\1d®`\1dp_\85`½Ã\15¬\ 3î«\10¬\87äº\rÖáB+X¿¿ÐëÇó`=Üè7\aë×\7fÌ\97Óù\1d\82õ_O½­`ýõk°þÃ\ f?\8d\9f\ 4\7fù<\>¾ý©îú[\1f\ãxx;½>\7fÅúñpúå_\19Ü-<J·\7f=öå\8a\87G/|ÿ5k\7fp\9d\14Ë\83í«\10Ëw¸byÀ}5Æò\1d}\8bå\ 1þº\b±|\ 5ïX>Óc\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å;\±<à¾
+±|\85ïX>ãc\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å;\±<à¾
+±|\85ïX>ãc\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å;\±<à¾
+±|\85ïX>ãc\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å;\±<à¾
+±|\85ïX>ãc\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å;\±<à¾
+±|\85ïX>ãc\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å;\±<à¾
+±|\85ïX>ãc\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å;\±<à¾
+±|\85ïX>ãc\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å;\±<à¾
+±|\83ßÅò\11\9f«\10Ëw¸byÀ}\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å+|Çò\19\1f«9\96ïì\15Ë\ 3m\9b\10Ëw´by°}\15\ eW,\ f¸¯æX¾²\15ËgÚ7!\96ïhÅò`û*Äò\1d®X\1ep_ͱ|g¯X\1e\84X¾¢w,\9fí±
+±|\87+\96\aÜWs,ßÙ+\96\aÚ6!\96ïhÅò`û*Äò\15¾cù\8c\8fÕ\1cËwö\8aå\81¶M\88å;Z±<ؾ
+±|\87+\96\aÜW!\96¯ð\1dËg|¬B,ßá\8aå\ 1÷U\88å;\±<à¾
+±|\87+\96\aÜW!\96¯ð\1dËg|¬B,ßá\8aå\ 1÷U\88å;\±<à¾
+±|\87+\96\aÜW!\96¯ð\1dËg|¬B,ßá\8aå\ 1÷U\88å;\±<à¾
+±|\87+\96\aÜW!\96¯ð\1dËg|¬B,ßá\8aå\ 1÷U\88å;\±<à¾
+±|\87+\96\aÜW!\96¯ð\1dËg|¬B,ßá\8aå\ 1÷U\88å;\±<à¾
+±|\87+\96\aÜW!\96oð»X>âs\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å;\±<à¾
+±|\85ïX>ãc\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å;\±<à¾
+±|\85ïX>ãc\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å;\±<à¾
+±|\85ïX>ãc\15\ eW,\ f¸¯B,ßá\8aå\ 1÷Õ\1cËwö\8aå\81¶M\88å+zÇòÙ\1e«\10Ëw¸byÀ}5Æò\1d}\8bå\ 1þº\b±|\a+\96\aÚW!\96¯ð\1dËg|¬æX¾³W,\ f´mB,ßÑ\8aåÁöU\88å;\±<à¾\9acùÊV,\9f\84X¾£\15Ë\83í«\10Ëw¸byÀ}5Çò\9d½by m\13\8aÞ±|¶Ç*Äò\1d®X\1ep_\85X¾Ã\15Ë\ 3î«\10Ëw¸byÀ}\15
+ß±|ÆÇ*Äò\1d®X\1ep_\85X¾Ã\15Ë\ 3î«\10Ëw¸byÀ}\15
+ß±|ÆÇ*Äò\1d®X\1ep_\85X¾Ã\15Ë\ 3î«\10Ëw¸byÀ}\15\ 6¿\8bå#>W!\96ïpÅò\80û*Äò\1d®X\1ep_\85X¾Ã\15Ë\ 3î«\10ËWø\8eå3>V!\96ïpÅò\80û*Äò\1d®X\1ep_\85X¾Ã\15Ë\ 3î«\10ËWø\8eå3>V!\96ïpÅò\80û*Äò\1d®X\1ep_\85X>ÔÞm,\ f\17Z±üý\85R,\1f\9bcùãëáåýt\82X~\9dºÅò\17\8bå\7fúÛ\8f\7fýýO?þå?ÿéç\1f\1e\ 6f\1fß~bÿ\8ezô¢÷Ó³\ay×}ÅÛîîëþº¡ûzp¡Ô}e|¬B÷Õáê¾\0÷Uè¾:\Ý\17à¾
+ÝW\87«û\ 2ÜW¡ûªðÝ}e|¬B÷Õáê¾\0÷Uè¾:\Ý\17à¾
+ÝW\87«û\ 2ÜW¡ûªðÝ}e|¬B÷Õáê¾\0÷Uè¾:\Ý\17à¾
+ÝW\87«û\ 2ÜW¡ûªðÝ}e|¬B÷Õáê¾\0÷Uè¾:\Ý\17à¾
+ÝW\87«û\ 2ÜW¡ûjð»î+âs\15º¯\ e\ 5¸¯B÷Õáê¾\0÷Uè¾:\Ý\17à¾
+ÝW\85ïî+ãc5w_\9d½º/ m\13º¯\8e\ 5¶¯B÷Õáê¾\0÷ÕÜ}U¶º¯Lû&t_\1d­î\vl_\85î«ÃÕ}\ 1ûêìÕ}\ 1m\9bÐ}Uôî¾²=V¡ûêpu_\80ûjî¾:{u_@Û&t_\1d­î\vl_\85î«Âw÷\95ñ±\9a»¯Î^Ý\17ж    ÝWG«û\ 2ÛW¡ûêpu_\80û*t_\15¾»¯\8c\8fUè¾:\Ý\17à¾
+ÝW\87«û\ 2ÜW¡ûêpu_\80û*t_\15¾»¯\8c\8fUè¾:\Ý\17à¾
+ÝW\87«û\ 2ÜW¡ûêpu_\80û*t_\15¾»¯\8c\8fUè¾:\Ý\17à¾
+ÝW\87«û\ 2ÜW¡ûêpu_\80û*t_\15¾»¯\8c\8fUè¾:\Ý\17à¾
+ÝW\87«û\ 2ÜW¡ûêpu_\80û*t_\15¾»¯\8c\8fUè¾:\Ý\17à¾
+ÝW\87«û\ 2ÜW¡ûêpu_\80û*t_\r~×}E|®B÷Õáê¾\0÷Uè¾:\Ý\17à¾
+ÝW\87«û\ 2ÜW¡ûªðÝ}e|¬B÷Õáê¾\0÷Uè¾:\Ý\17à¾
+ÝW\87«û\ 2ÜW¡ûªðÝ}e|¬B÷Õáê¾\0÷Uè¾:\Ý\17à¾
+ÝW\87«û\ 2ÜW¡ûªðÝ}e|¬B÷Õáê¾\0÷Uè¾:\Ý\17à¾\9a»¯Î^Ý\17ж    ÝWEïî+Ûc\15º¯\ e\ 5¸¯Æî«£oÝ\17À_\17¡ûê`u_@û*t_\15¾»¯\8c\8fÕÜ}uöê¾\80¶Mè¾:ZÝ\17ؾ
+ÝW\87«û\ 2ÜWs÷UÙê¾2í\9bÐ}u´º/°}\15º¯\ e\ 5¸¯æW÷\ 5´mB÷UÑ»ûÊöX\85î«ÃÕ}\ 1î«Ð}u¸º/À}\15º¯\ e\ 5¸¯B÷Uá»ûÊøX\85î«ÃÕ}\ 1î«Ð}u¸º/À}\15º¯\ e\ 5¸¯B÷Uá»ûÊøX\85î«ÃÕ}\ 1î«Ð}u¸º/À}\15º¯\ e\ 5¸¯B÷ÕàwÝWÄç*t_\1d®î\vp_\85î«ÃÕ}\ 1î«Ð}u¸º/À}\15º¯
+ßÝWÆÇ*t_\1d®î\vp_\85î«ÃÕ}\ 1î«Ð}u¸º/À}\15º¯
+ßÝWÆÇ*t_\1d®î\vp_\85î«ÃÕ}\ 1î«Ð}\85\©í¾àB«ûº¿Ðëçóî+Üè7w_/Çë¯÷/\1fÐ}­S·îëíY÷õç?ýË\f¿®ß\1eþ\1a%ÝYóI^^>_\9f\85_»½\8a×ÝíÕý}C{õàB©½\ 2ÜW¡½êpµW\80û*´W\1d®ö
+p_\85öªÂw{\95ñ±
+íU\87«½\ 2ÜW¡½êpµW\80û*´W\1d®ö
+p_\85öªÂw{\95ñ±
+íU\87«½\ 2ÜW¡½êpµW\80û*´W\1d®ö
+p_\85öªÂw{\95ñ±
+íU\87«½\ 2ÜW¡½êpµW\80û*´W\1d®ö
+p_\85öªÁïÚ«\88ÏUh¯:\í\15à¾
+íU\87«½\ 2ÜW¡½êpµW\80û*´W\15¾Û«\8c\8fÕÜ^uöj¯\80¶Mh¯:Zí\15ؾ
+íU\87«½\ 2ÜWs{UÙj¯2í\9bÐ^u´Ú+°}\15Ú«\ eW{\ 5¸¯æöª³W{\ 5´mB{UÑ»½ÊöX\85öªÃÕ^\ 1½êìÕ^\ 1m\9bÐ^u´Ú+°}\15Ú«
+ßíUÆÇjn¯:{µW@Û&´W\1d­ö
+l_\85öªÃÕ^\ 1î«Ð^Uøn¯2>V¡½êpµW\80û*´W\1d®ö
+p_\85öªÃÕ^\ 1î«Ð^Uøn¯2>V¡½êpµW\80û*´W\1d®ö
+p_\85öªÃÕ^\ 1î«Ð^Uøn¯2>V¡½êpµW\80û*´W\1d®ö
+p_\85öªÃÕ^\ 1î«Ð^Uøn¯2>V¡½êpµW\80û*´W\1d®ö
+p_\85öªÃÕ^\ 1î«Ð^Uøn¯2>V¡½êpµW\80û*´W\1d®ö
+p_\85öªÃÕ^\ 1î«Ð^5ø]{\15ñ¹
+íU\87«½\ 2ÜW¡½êpµW\80û*´W\1d®ö
+p_\85öªÂw{\95ñ±
+íU\87«½\ 2ÜW¡½êpµW\80û*´W\1d®ö
+p_\85öªÂw{\95ñ±
+íU\87«½\ 2ÜW¡½êpµW\80û*´W\1d®ö
+p_\85öªÂw{\95ñ±
+íU\87«½\ 2ÜW¡½êpµW\80ûjn¯:{µW@Û&´W\15½Û«l\8fUh¯:\í\15à¾\1aÛ«\8e¾µW\0\7f]\84öª\83Õ^\ 1í«Ð^Uøn¯2>Vs{ÕÙ«½\ 2Ú6¡½êhµW`û*´W\1d®ö
+p_ÍíUe«½Ê´oB{ÕÑj¯ÀöUh¯:\í\15à¾\9aÛ«Î^í\15ж  íUEïö*Ûc\15Ú«\ eW{\ 5¸¯B{Õáj¯\0÷Uh¯:\í\15à¾
+íU\85ïö*ãc\15Ú«\ eW{\ 5¸¯B{Õáj¯\0÷Uh¯:\í\15à¾
+íU\85ïö*ãc\15Ú«\ eW{\ 5¸¯B{Õáj¯\0÷Uh¯:\í\15à¾
+íU\83ßµW\11\9f«Ð^u¸Ú+À}\15Ú«\ eW{\ 5¸¯B{Õáj¯\0÷Uh¯*|·W\19\1f«Ð^u¸Ú+À}\15Ú«\ eW{\ 5¸¯B{Õáj¯\0÷Uh¯*|·W\19\1f«Ð^u¸Ú+À}\15Ú«\ eW{\ 5¸¯B{\15\8b¡®½\82\v­öêþB\97\97çíU¸Ñom¯^?>®¿Ç\7f¾æöêvê¼Ú«÷\aíÕøYðãÇáóÛÓÑßüð][Ç÷ÓåYruºþs¾\7fûG¹\9fxðóáëÜ\97\1fN?\9d\ fooÇóÃ\v=Ào§\11÷Õ'øÛáx¹~-Uâ·Ó\88ûê\13üãðözzkñÛiÄ}õ1~¾~:çsûØ×iÂÇê\13üúé\9cÎíc_§\11÷Õ'øõÓ9¾¶\8f}\9dFÜW\9fà×OçårjñÛiÄ}õ1þz<¼|^ÚǾN\13>V\9fàçÃåã­}ìë4â¾ú\ 4\7f;¼¼¿·\8f}\9dFÜW\9fà\1f\87ËÛ{ýØo§\11÷ÕÇøåúé\®_Kuø:MøX}\82_?\9dë·\8c-~;\8d¸¯>Á¯\9fÎù³}ìë4â¾ú\ 4¿½h²Ä×ë+   ÷ÕüúÊ\ eWB\røXÍ    u\89¯\84\9ap_Í        u\89¯\84\9ap_Í        u\89¯\84\9ap_Í        u\87\ 6|¬æ\84ºÄWBM¸¯æ\84ºÄWBM¸¯æ\84ºÄWBM¸¯æ\84ºÃ\95P\ 3>VsB]â+¡&ÜWsB]â+¡&ÜWsB]â+¡&ÜWsBÝáJ¨\ 1\1f«9¡.ñ\95P\13î«9¡.ñ\95P\13î«9¡.ñ\95P\13î«9¡®ð\9dPg|®æ\84ºÄWBM¸¯æ\84ºÄWBM¸¯æ\84ºÄWBM¸¯æ\84ºÃ\95P\ 3>VcB]Ú·\84\9ahÛÌ       uI¯\84\9al_Í        u\89¯\84\9ap_\8d        ug¯\84\1ahßÌ        uI¯\84\9al_Í        u\89¯\84\9ap_\8d        uiß\12j¢m3'Ô\1d­\84\1aì±\9a\13ê\12_   5á¾\1a\13êÒ¾%ÔDÛfN¨Kz%ÔdûjN¨;\      5àc5&Ô¥}K¨\89¶Í\9cP\97ôJ¨ÉöÕ\9cP\97øJ¨    ÷Õ\9cPw¸\12jÀÇjN¨K|%Ô\84ûjN¨K|%Ô\84ûjN¨K|%Ô\84ûjN¨;\      5àc5'Ô%¾\12jÂ}5'Ô%¾\12jÂ}5'Ô%¾\12jÂ}5'Ô\1d®\84\1að±\9a\13ê\12_    5á¾\9a\13ê\12_        5á¾\9a\13ê\12_        5á¾\9a\13ê\ eWB\røXÍ   u\89¯\84\9ap_Í        u\89¯\84\9ap_Í        u\89¯\84\9ap_Í        u\87\ 6|¬æ\84ºÄWBM¸¯æ\84ºÄWBM¸¯æ\84ºÄWBM¸¯æ\84ºÂwB\9dñ¹\9a\13ê\12_        5á¾\9a\13ê\12_        5á¾\9a\13ê\12_        5á¾\9a\13ê\ eWB\røXÍ   u\89¯\84\9ap_Í        u\89¯\84\9ap_Í        u\89¯\84\9ap_Í        u\87\ 6|¬æ\84ºÄWBM¸¯æ\84ºÄWBM¸¯æ\84ºÄWBM¸¯æ\84ºÃ\95P\ 3>VsB]â+¡&ÜWsB]â+¡&ÜWcB]Ú·\84\9ahÛÌ uG+¡\ 6{¬æ\84ºÄWBM¸¯¦\84º¤\7fM¨ þº\98\13ê\12^ 5Ѿ\9a\13ê\ eWB\røX\8d   uiß\12j¢m3'Ô%½\12j²}5'Ô%¾\12jÂ}5&Ô\9d½\12j }3'Ô%½\12j²}5'Ô%¾\12jÂ}5&Ô¥}K¨\89¶Í\9cPw´\12j°ÇjN¨K|%Ô\84ûjN¨K|%Ô\84ûjN¨K|%Ô\84ûjN¨;\  5àc5'Ô%¾\12jÂ}5'Ô%¾\12jÂ}5'Ô%¾\12jÂ}5'Ô\1d®\84\1að±\9a\13ê\12_    5á¾\9a\13ê\12_        5á¾\9a\13ê\12_        5á¾\9a\13ê
+ß      uÆçjN¨K|%Ô\84ûjN¨K|%Ô\84ûjN¨K|%Ô\84ûjN¨;\     5àc5'Ô%¾\12jÂ}5'Ô%¾\12jÂ}5'Ô%¾\12jÂ}5'Ô\1d®\84\1að±\9a\13ê\12_    5á¾\9a\13ê\12_        5á¾\9a\13êT\0\97       5]èvîË\85.ǧ      uºÑoN¨×W´9¡^§n  õÇ\97\84úÿþñÏ?|{yå\93\94úòyx}y»û\92üÁ\85\8eß~Ý?âÛ+ómwzu\7fÝ\90^=¸PJ¯\0÷UH¯:\é\15à¾
+éU\87\ 2ÜW!½ªð\9d^e|¬BzÕáJ¯\0÷UH¯:\é\15à¾
+éU\87\ 2ÜW!½ªð\9d^e|¬BzÕáJ¯\0÷UH¯:\é\15à¾
+éU\87\ 2ÜW!½ªð\9d^e|¬BzÕáJ¯\0÷UH¯:\é\15à¾
+éU\87\ 2ÜW!½jð»ô*âs\15Ò«\ eWz\ 5¸¯BzÕáJ¯\0÷UH¯:\é\15à¾
+éU\85ïô*ãc5§W\9d½Ò+ m\13Ò«\8eVz\ 5¶¯BzÕáJ¯\0÷Õ\9c^U¶Ò«Lû&¤W\1d­ô
+l_\85ôªÃ\95^\ 1î«9½êì\95^\ 1m\9b\90^UôN¯²=V!½êp¥W\80ûjN¯:{¥W@Û&¤W\1d­ô
+l_\85ôªÂwz\95ñ±\9aÓ«Î^é\15ж   éUG+½\ 2ÛW!½êp¥W\80û*¤W\15¾Ó«\8c\8fUH¯:\é\15à¾
+éU\87\ 2ÜW!½êp¥W\80û*¤W\15¾Ó«\8c\8fUH¯:\é\15à¾
+éU\87\ 2ÜW!½êp¥W\80û*¤W\15¾Ó«\8c\8fUH¯:\é\15à¾
+éU\87\ 2ÜW!½êp¥W\80û*¤W\15¾Ó«\8c\8fUH¯:\é\15à¾
+éU\87\ 2ÜW!½êp¥W\80û*¤W\15¾Ó«\8c\8fUH¯:\é\15à¾
+éU\87\ 2ÜW!½êp¥W\80û*¤W\r~\97^E|®BzÕáJ¯\0÷UH¯:\é\15à¾
+éU\87\ 2ÜW!½ªð\9d^e|¬BzÕáJ¯\0÷UH¯:\é\15à¾
+éU\87\ 2ÜW!½ªð\9d^e|¬BzÕáJ¯\0÷UH¯:\é\15à¾
+éU\87\ 2ÜW!½ªð\9d^e|¬BzÕáJ¯\0÷UH¯:\é\15à¾\9aÓ«Î^é\15ж    éUEïô*Ûc\15Ò«\ eWz\ 5¸¯Æôª£oé\15À_\17!½ê`¥W@û*¤W\15¾Ó«\8c\8fÕ\9c^uöJ¯\80¶MH¯:Zé\15ؾ
+éU\87\ 2ÜWszUÙJ¯2í\9b\90^u´Ò+°}\15Ò«\ eWz\ 5¸¯æôª³Wz\ 5´mBzUÑ;½ÊöX\85ôªÃ\95^\ 1î«\90^u¸Ò+À}\15Ò«\ eWz\ 5¸¯BzUá;½ÊøX\85ôªÃ\95^\ 1î«\90^u¸Ò+À}\15Ò«\ eWz\ 5¸¯BzUá;½ÊøX\85ôªÃ\95^\ 1î«\90^u¸Ò+À}\15Ò«\ eWz\ 5¸¯BzÕàwéUÄç*¤W\1d®ô
+p_\85ôªÃ\95^\ 1î«\90^u¸Ò+À}\15Ò«
+ßéUÆÇ*¤W\1d®ô
+p_\85ôªÃ\95^\ 1î«\90^u¸Ò+À}\15Ò«
+ßéUÆÇ*¤W\1d®ô
+p_\85ôªÃ\95^\ 1î«\90^\85b¨M¯àB+½º¿Ðåô<½
+7úÍéÕõû§ÓÛõ\17\9e\9c^­S·ôês¤WóÝ\95/\87·ÏÏ»¿õá㻼||<\v®\8eÇÃé\97\7fe\10¯¸\8e}¹âüÁôãùz\9do_;?¸Î\ 3úv\1am_}\82¿]¿\82üöµs\87ßN#î«Oð\8fÃÛGKÿr\16á¯\8bO^\98¹Þ(ZÁû=¥\99\1e«ð\9eÒ\ e×{J\ 1÷UxOi\87ë=¥\80û*¼§´Ãõ\9eRÀ}\15ÞSZáû=¥\19\1f«ð\9eÒ\ e×{J\ 1÷UxOi\87ë=¥\80û*¼§´Ãõ\9eRÀ}\15ÞSZáû=¥\19\1f«ð\9eÒ\ e×{J\ 1÷UxOi\87ë=¥\80û*¼§´Ãõ\9eRÀ}\15ÞSZáû=¥\19\1f«ð\9eÒ\ e×{J\ 1÷UxOi\87ë=¥\80û*¼§´Ãõ\9eRÀ}\15ÞSZá;\96ÏøX\85X¾Ã\15Ë\ 3î«\10Ëw¸byÀ}\15\ eW,\ f¸¯B,_á;\96ÏøX\85X¾Ã\15Ë\ 3î«\10Ëw¸byÀ}\15\ eW,\ f¸¯B,_á;\96ÏøX\85X¾Ã\15Ë\ 3î«\10Ëw¸byÀ}\15\ eW,\ f¸¯B,_á;\96ÏøX\85X¾Ã\15Ë\ 3î«\10Ëw¸byÀ}\15\ eW,\ f¸¯B,ßàw±|Äç*Äò\1d®X\1ep_\85X¾Ã\15Ë\ 3î«\10Ëw¸byÀ}\15
+ß±|ÆÇj\8eå;{Åò@Û&Äò\1d­X\1el_\85X¾Ã\15Ë\ 3î«9\96¯lÅò\99öM\88å;Z±<ؾ
+±|\87+\96\aÜWs,ßÙ+\96\aÚ6!\96¯è\1dËg{¬B,ßá\8aå\ 1÷Õ\1cËwö\8aå\81¶M\88å;Z±<ؾ
+±|\85ïX>ãc5Çò\9d½by m\13\8eV,\ f¶¯B,ßá\8aå\ 1÷U\88å+|Çò\19\1f«\10Ëw¸byÀ}\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å+|Çò\19\1f«\10Ëw¸byÀ}\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å+|Çò\19\1f«\10Ëw¸byÀ}\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å+|Çò\19\1f«\10Ëw¸byÀ}\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å+|Çò\19\1f«\10Ëw¸byÀ}\15\ eW,\ f¸¯B,ßá\8aå\ 1÷U\88å\eü.\96\8fø\\85X¾Ã\15Ë\ 3î«\10Ëw¸byÀ}\15\ eW,\ f¸¯B,_á;\96ÏøX\85X¾Ã\15Ë\ 3î«\10Ëw¸byÀ}\15\ eW,\ f¸¯B,_á;\96ÏøX\85X¾Ã\15Ë\ 3î«\10Ëw¸byÀ}\15\ eW,\ f¸¯B,_á;\96ÏøX\85X¾Ã\15Ë\ 3î«\10Ëw¸byÀ}5Çò\9d½by m\13\8aÞ±|¶Ç*Äò\1d®X\1ep_\8d±|Gßby\80¿.B,ßÁ\8aå\81öU\88å+|Çò\19\1f«9\96ïì\15Ë\ 3m\9b\10Ëw´by°}\15\ eW,\ f¸¯æX¾²\15ËgÚ7!\96ïhÅò`û*Äò\1d®X\1ep_ͱ|g¯X\1e\84X¾¢w,\9fí±
+±|\87+\96\aÜW!\96ïpÅò\80û*Äò\1d®X\1ep_\85X¾Âw,\9fñ±
+±|\87+\96\aÜW!\96ïpÅò\80û*Äò\1d®X\1ep_\85X¾Âw,\9fñ±
+±|\87+\96\aÜW!\96ïpÅò\80û*Äò\1d®X\1ep_\85X¾Áïbù\88ÏU\88å;\±<à¾
+±|\87+\96\aÜW!\96ïpÅò\80û*Äò\15¾cù\8c\8fU\88å;\±<à¾
+±|\87+\96\aÜW!\96ïpÅò\80û*Äò\15¾cù\8c\8fU\88å;\±<à¾
+±|\87+\96\aÜW!\96\8fµw\17ËÃ\85V,\7f\7f¡\14Ë\87\eýæXþõóú­úå\b±ü:õk,\7fý~ï>\96ÿÏ?üío\7f\82Òë§|>}û\13Æ;c¾ ô|¾þ\9aû¤\97ß\19s¼æÎ\98ïï\19\a\17J\193à¾
+\19s\87+c\ 6ÜW!c®ð\9d1g|¬BÆÜáÊ\98\ 1÷UÈ\98;\\193à¾
+\19s\87+c\ 6ÜW!c®ð\9d1g|¬BÆÜáÊ\98\ 1÷UÈ\98;\\193à¾
+\19s\87+c\ 6ÜW!c®ð\9d1g|¬BÆÜáÊ\98\ 1÷UÈ\98;\\193à¾
+\19s\87+c\ 6ÜW!c®ð\9d1g|¬BÆÜáÊ\98\ 1÷UÈ\98;\\193à¾
+\19s\87+c\ 6ÜW!c®ð\9d1g|¬BÆÜáÊ\98\ 1÷UÈ\98;\\193à¾
+\19s\87+c\ 6ÜW!c®ð\9d1g|¬BÆÜáÊ\98\ 1÷UÈ\98;\\193à¾
+\19s\87+c\ 6ÜW!c®ð\9d1g|¬BÆÜáÊ\98\ 1÷UÈ\98;\\193à¾
+\19s\87+c\ 6ÜW!cnð»\8c9âs\15\ e\f¸¯BÆÜáÊ\98\ 1÷UÈ\98;\\193à¾
+\19s\85ï\8c9ãc5gÌ\9d½2f m\13\8e\f¶¯BÆÜáÊ\98\ 1÷Õ\9c1W¶2æLû&dÌ\1d­\8c\19l_\85\8c¹Ã\951\ 3î«9cîì\951\ 3m\9b\901WôÎ\98³=V!cîpeÌ\80ûjÎ\98;{eÌ@Û&dÌ\1d­\8c\19l_\85\8c¹ÂwÆ\9cñ±\9a3æÎ^\193ж    \19sG+c\ 6ÛW!cîpeÌ\80û*dÌ\15¾3æ\8c\8f\98;\\193à¾
+\19s\87+c\ 6ÜW!cîpeÌ\80û*dÌ\15¾3æ\8c\8f\98;\\193à¾
+\19s\87+c\ 6ÜW!cîpeÌ\80û*dÌ\15¾3æ\8c\8f\98;\\193à¾
+\19s\87+c\ 6ÜW!cîpeÌ\80û*dÌ\15¾3æ\8c\8f\98;\\193à¾
+\19s\87+c\ 6ÜW!cîpeÌ\80û*dÌ\15¾3æ\8c\8f\98;\\193à¾
+\19s\87+c\ 6ÜW!cîpeÌ\80û*dÌ\r~\971G|®BÆÜáÊ\98\ 1÷UÈ\98;\\193à¾
+\19s\87+c\ 6ÜW!c®ð\9d1g|¬BÆÜáÊ\98\ 1÷UÈ\98;\\193à¾
+\19s\87+c\ 6ÜW!c®ð\9d1g|¬BÆÜáÊ\98\ 1÷UÈ\98;\\193à¾
+\19s\87+c\ 6ÜW!c®ð\9d1g|¬BÆÜáÊ\98\ 1÷UÈ\98;\\193à¾\9a3æÎ^\193ж    \19sEï\8c9Ûc\15\ e\f¸¯Æ\8c¹£o\193À_\17!cî`eÌ@û*dÌ\15¾3æ\8c\8fÕ\9c1wöÊ\98\81¶MÈ\98;Z\193ؾ
+\19s\87+c\ 6ÜWsÆ\ÙÊ\98\9b\901w´2f°}\15\ e\f¸¯æ\8c¹³WÆ\f´mBÆ\Ñ;cÎöX\85\8c¹Ã\951\ 3î«\901w¸2fÀ}\15\ e\f¸¯BÆ\á;cÎøX\85\8c¹Ã\951\ 3î«\901w¸2fÀ}\15\ e\f¸¯BÆ\á;cÎøX\85\8c¹Ã\951\ 3î«\901w¸2fÀ}\15\ e\f¸¯BÆÜàw\19sÄç*dÌ\1d®\8c\19p_\85\8c¹Ã\951\ 3î«\901w¸2fÀ}\15
\19sÆÇ*dÌ\1d®\8c\19p_\85\8c¹Ã\951\ 3î«\901w¸2fÀ}\15
\19sÆÇ*dÌ\1d®\8c\19p_\85\8c¹Ã\951\ 3î«\901\87\b·Í\98áB+c¾¿Ðåü<c\ e7\1a\19ó\ 52æóÛáüv~\83\8cy\9dºeÌǯ\19ó\9f~\9eïü¾þ\82vþøöó^wÀÃ\86ùýYÃüòqx?þò\rA¼£Î}¹ä\83w_ßÞ\rþà>á}ã\99öMxßxGë}ã`û*¼o¼Ãõ¾qÀ}5¾o¼£oï\e\aøë"¼o¼\82÷ûÆ3=Vá}ã\1d®P\1fp_\85P¿Ã\15ê\ 3î«\10êw¸B}À}\15
+ß¡~ÆÇ*\84ú\1d®P\1fp_\85P¿Ã\15ê\ 3î«\10êw¸B}À}\15
+ß¡~ÆÇ*\84ú\1d®P\1fp_\85P¿Ã\15ê\ 3î«\10êw¸B}À}\15
+ß¡~ÆÇ*\84ú\1d®P\1fp_\85P¿Ã\15ê\ 3î«\10êw¸B}À}\15
+ß¡~ÆÇ*\84ú\1d®P\1fp_\85P¿Ã\15ê\ 3î«\10êw¸B}À}\15
+ß¡~ÆÇ*\84ú\1d®P\1fp_\85P¿Ã\15ê\ 3î«\10êw¸B}À}\15
+ß¡~ÆÇ*\84ú\1d®P\1fp_\85P¿Ã\15ê\ 3î«\10êw¸B}À}\15
+ß¡~ÆÇ*\84ú\1d®P\1fp_\85P¿Ã\15ê\ 3î«\10êw¸B}À}\15\ 6¿\võ#>W!Ôïp\85ú\80û*\84ú\1d®P\1fp_\85P¿Ã\15ê\ 3î«\10êWø\ eõ3>Vs¨ßÙ+Ô\aÚ6!Ôïh\85ú`û*\84ú\1d®P\1fp_Í¡~e+ÔÏ´oB¨ßÑ
+õÁöU\bõ;\¡>à¾\9aCýÎ^¡>ж  ¡~EïP?Ûc\15\ e\ f¸¯æP¿³W¨\ f´mB¨ßÑ
+õÁöU\bõ+|\87ú\19\1f«9Ôïì\15ê\ 3m\9b\10êw´B}°}\15\ e\ f¸¯B¨_á;ÔÏøX\85P¿Ã\15ê\ 3î«\10êw¸B}À}\15\ e\ f¸¯B¨_á;ÔÏøX\85P¿Ã\15ê\ 3î«\10êw¸B}À}\15\ e\ f¸¯B¨_á;ÔÏøX\85P¿Ã\15ê\ 3î«\10êw¸B}À}\15\ e\ f¸¯B¨_á;ÔÏøX\85P¿Ã\15ê\ 3î«\10êw¸B}À}\15\ e\ f¸¯B¨_á;ÔÏøX\85P¿Ã\15ê\ 3î«\10êw¸B}À}\15\ e\ f¸¯B¨ßàw¡~Äç*\84ú\1d®P\1fp_\85P¿Ã\15ê\ 3î«\10êw¸B}À}\15
+ß¡~ÆÇ*\84ú\1d®P\1fp_\85P¿Ã\15ê\ 3î«\10êw¸B}À}\15
+ß¡~ÆÇ*\84ú\1d®P\1fp_\85P¿Ã\15ê\ 3î«\10êw¸B}À}\15
+ß¡~ÆÇ*\84ú\1d®P\1fp_\85P¿Ã\15ê\ 3î«9Ôïì\15ê\ 3m\9b\10êWô\ eõ³=V!Ôïp\85ú\80ûj\fõ;ú\16ê\ 3üu\11\ e\ f´¯B¨_á;ÔÏøXÍ¡~g¯P\1f\84P¿£\15ê\83í«\10êw¸B}À}5\87ú\95­P?Ó¾       ¡~G+Ô\aÛW!Ôïp\85ú\80ûj\ eõ;{\85ú@Û&\84ú\15½Cýl\8fU\bõ;\¡>à¾
+¡~\87\aÜW!Ôïp\85ú\80û*\84ú\15¾Cý\8c\8fU\bõ;\¡>à¾
+¡~\87\aÜW!Ôïp\85ú\80û*\84ú\15¾Cý\8c\8fU\bõ;\¡>à¾
+¡~\87\aÜW!Ôïp\85ú\80û*\84ú\r~\17êG|®B¨ßá
\ 1÷U\bõ;\¡>à¾
+¡~\87\aÜW!Ô¯ð\1dêg|¬B¨ßá
\ 1÷U\bõ;\¡>à¾
+¡~\87\aÜW!Ô¯ð\1dêg|¬B¨ßá
\ 1÷U\bõ;\¡>à¾
+¡~(ÍÛP\1f.´Býû\v]^\9f\87úáF¿ù}ã§ëÿr<\9d Ô_§n¡þék¨ÿç?ýË\ fÿáç\9f\7fúÓ\7fýþôò»\7f{\90í¿^\1fæÇ·\1fz»ãæÃüüx\7f{\96íïÞ/Þx÷~÷W\ e½ß\83\v¥Þ/ãc\15z¿\ e\a¸¯Bï×áêý\0÷Uèý:\½\1fà¾
+½_\85ïÞ/ãc\15z¿\ e\a¸¯Bï×áêý\0÷Uèý:\½\1fà¾
+½_\85ïÞ/ãc\15z¿\ e\a¸¯Bï×áêý\0÷Uèý:\½\1fà¾
+½_\85ïÞ/ãc\15z¿\ e\a¸¯Bï×áêý\0÷Uèý:\½\1fà¾
+½_\85ïÞ/ãc\15z¿\ e\a¸¯Bï×áêý\0÷Uèý:\½\1fà¾
+½_\83ßõ~\11\9f«Ðûu¸z?À}\15z¿\ e\a¸¯Bï×áêý\0÷Uèý*|÷~\19\1f«¹÷ëìÕû\ 1m\9bÐûu´z?°}\15z¿\ e\a¸¯æÞ¯²ÕûeÚ7¡÷ëhõ~`û*ô~\1d®Þ\ fp_ͽ_g¯Þ\ f\84Þ¯¢wï\97í±
+½_\87«÷\ 3ÜWsï×Ù«÷\ 3Ú6¡÷ëhõ~`û*ô~\15¾{¿\8c\8fÕÜûuöêý\80¶Mèý:Z½\1fؾ
+½_\87«÷\ 3ÜW¡÷«ðÝûe|¬Bï×áêý\0÷Uèý:\½\1fà¾
+½_\87«÷\ 3ÜW¡÷«ðÝûe|¬Bï×áêý\0÷Uèý:\½\1fà¾
+½_\87«÷\ 3ÜW¡÷«ðÝûe|¬Bï×áêý\0÷Uèý:\½\1fà¾
+½_\87«÷\ 3ÜW¡÷«ðÝûe|¬Bï×áêý\0÷Uèý:\½\1fà¾
+½_\87«÷\ 3ÜW¡÷«ðÝûe|¬Bï×áêý\0÷Uèý:\½\1fà¾
+½_\87«÷\ 3ÜW¡÷kð»Þ/âs\15z¿\ e\a¸¯Bï×áêý\0÷Uèý:\½\1fà¾
+½_\85ïÞ/ãc\15z¿\ e\a¸¯Bï×áêý\0÷Uèý:\½\1fà¾
+½_\85ïÞ/ãc\15z¿\ e\a¸¯Bï×áêý\0÷Uèý:\½\1fà¾
+½_\85ïÞ/ãc\15z¿\ e\a¸¯Bï×áêý\0÷ÕÜûuöêý\80¶Mèý*z÷~Ù\1e«Ðûu¸z?À}5ö~\1d}ëý\0þº\b½_\a«÷\ 3ÚW¡÷«ðÝûe|¬æÞ¯³Wï\a´mBï×ÑêýÀöUèý:\½\1fà¾\9a{¿ÊVï\97\84Þ¯£Õû\81í«Ðûu¸z?À}5÷~\9d½z? m\13z¿\8aÞ½_¶Ç*ô~\1d®Þ\ fp_\85Þ¯ÃÕû\ 1î«Ðûu¸z?À}\15z¿
+ß½_ÆÇ*ô~\1d®Þ\ fp_\85Þ¯ÃÕû\ 1î«Ðûu¸z?À}\15z¿
+ß½_ÆÇ*ô~\1d®Þ\ fp_\85Þ¯ÃÕû\ 1î«Ðûu¸z?À}\15z¿\ 6¿ëý">W¡÷ëpõ~\80û*ô~\1d®Þ\ fp_\85Þ¯ÃÕû\ 1î«ÐûUøîý2>V¡÷ëpõ~\80û*ô~\1d®Þ\ fp_\85Þ¯ÃÕû\ 1î«ÐûUøîý2>V¡÷ëpõ~\80û*ô~\1d®Þ\ fp_\85Þ/&j]ï\a\17Z½ßý\85.\97ç½_¸ÑoîýÖ\9f¸çÞo\9dºõ~gèýþðýÇËïþý_g÷wý®åtùöËÜ\1d;_×{ýæâéëzw\ f\14o¾{ û«\87\1eèÁ\85R\ f\94ñ±
+=P\87«\a\ 2ÜW¡\aêpõ@\80û*ô@\1d®\1e\bp_\85\1e¨Âw\ f\94ñ±
+=P\87«\a\ 2ÜW¡\aêpõ@\80û*ô@\1d®\1e\bp_\85\1e¨Âw\ f\94ñ±
+=P\87«\a\ 2ÜW¡\aêpõ@\80û*ô@\1d®\1e\bp_\85\1e¨Áïz \88ÏUè\81:\=\10à¾
+=P\87«\a\ 2ÜW¡\aêpõ@\80û*ô@\15¾{ \8c\8fÕÜ\ 3uöê\81\80¶Mè\81:Z=\10ؾ
+=P\87«\a\ 2ÜWs\ fTÙê\81\9bÐ\ 3u´z °}\15\ eW\ f\ 4¸¯æ\1e¨³W\ f\ 4´mB\ fTÑ»\aÊöX\85\1e¨ÃÕ\ 3\ 1\aêìÕ\ 3\ 1m\9bÐ\ 3u´z °}\15
+ß=PÆÇjî\81:{õ@@Û&ô@\1d­\1e\bl_\85\1e¨ÃÕ\ 3\ 1î«Ð\ 3Uøî\812>V¡\aêpõ@\80û*ô@\1d®\1e\bp_\85\1e¨ÃÕ\ 3\ 1î«Ð\ 3Uøî\812>V¡\aêpõ@\80û*ô@\1d®\1e\bp_\85\1e¨ÃÕ\ 3\ 1î«Ð\ 3Uøî\812>V¡\aêpõ@\80û*ô@\1d®\1e\bp_\85\1e¨ÃÕ\ 3\ 1î«Ð\ 3Uøî\812>V¡\aêpõ@\80û*ô@\1d®\1e\bp_\85\1e¨ÃÕ\ 3\ 1î«Ð\ 3Uøî\812>V¡\aêpõ@\80û*ô@\1d®\1e\bp_\85\1e¨ÃÕ\ 3\ 1î«Ð\ 35ø]\ f\14ñ¹
+=P\87«\a\ 2ÜW¡\aêpõ@\80û*ô@\1d®\1e\bp_\85\1e¨Âw\ f\94ñ±
+=P\87«\a\ 2ÜW¡\aêpõ@\80û*ô@\1d®\1e\bp_\85\1e¨Âw\ f\94ñ±
+=P\87«\a\ 2ÜW¡\aêpõ@\80û*ô@\1d®\1e\bp_\85\1e¨Âw\ f\94ñ±
+=P\87«\a\ 2ÜW¡\aêpõ@\80ûjî\81:{õ@@Û&ô@\15½{ l\8f\81:\=\10à¾\1a\8e¾õ@\0\7f]\84\1e¨\83Õ\ 3\ 1í«Ð\ 3Uøî\812>Vs\ fÔÙ«\a\ 2Ú6¡\aêhõ@`û*ô@\1d®\1e\bp_Í=Pe«\aÊ´oB\ fÔÑê\81ÀöUè\81:\=\10à¾\9a{ Î^=\10ж   =PEï\1e(Ûc\15\ eW\ f\ 4¸¯B\ fÔáê\81\0÷Uè\81:\=\10à¾
+=P\85ï\1e(ãc\15\ eW\ f\ 4¸¯B\ fÔáê\81\0÷Uè\81:\=\10à¾
+=P\85ï\1e(ãc\15\ eW\ f\ 4¸¯B\ fÔáê\81\0÷Uè\81:\=\10à¾
+=P\83ßõ@\11\9f«Ð\ 3u¸z À}\15\ eW\ f\ 4¸¯B\ fÔáê\81\0÷Uè\81*|÷@\19\1f«Ð\ 3u¸z À}\15\ eW\ f\ 4¸¯B\ fÔáê\81\0÷Uè\81*|÷@\19\1f«Ð\ 3u¸z À}\15\ eW\ f\ 4¸¯B\ f\14Ò\95\a\82\v­\1eèþB©\a
+7\1a=Ð%÷@çëo6\97\97ë×u±\aÒ©[\ fô:{ ßÿôã_þéÇ?þð·Gï|úxý8~wOù\85N\87ãûùø´\ 1Z¯bÊ·Õ¹/×}þ*¦G\17
+¯b"ÜWó«\98J|½\8a\89p_ͯb*ñ\95^\11î«9½êp¥W\80\8fÕ\9c^\95øJ¯\b÷Õ\9c^\95øJ¯\b÷Õ\9c^\95øJ¯\b÷Õ\9c^u¸Ò+ÀÇjN¯J|¥W\84ûjN¯J|¥W\84ûjN¯J|¥W\84ûjN¯:\é\15àc5§W%¾Ò+Â}5§W%¾Ò+Â}5§W%¾Ò+Â}5§W\15¾Ó«\8cÏÕ\9c^\95øJ¯\b÷Õ\9c^\95øJ¯\b÷Õ\9c^\95øJ¯\b÷Õ\9c^u¸Ò+ÀÇjL¯Jû\96^\11m\9b9½*é\95^\91í«9½*ñ\95^\11î«1½êì\95^\ 1í\9b9½*é\95^\91í«9½*ñ\95^\11î«1½*í[zE´mæôª£\95^\81=VszUâ+½"ÜWczUÚ·ô\8ahÛÌéUI¯ô\8al_ÍéU\87\ 2|¬Æôª´oé\15Ѷ\99Ó«\92\15Ù¾\9aÓ«\12\15á¾\9aÓ«\ eWz\ 5øXÍéU\89¯ô\8ap_ÍéU\89¯ô\8ap_ÍéU\89¯ô\8ap_ÍéU\87\ 2|¬æôªÄWzE¸¯æôªÄWzE¸¯æôªÄWzE¸¯æôªÃ\95^\ 1>VszUâ+½"ÜWszUâ+½"ÜWszUâ+½"ÜWszÕáJ¯\0\1f«9½*ñ\95^\11î«9½*ñ\95^\11î«9½*ñ\95^\11î«9½êp¥W\80\8fÕ\9c^\95øJ¯\b÷Õ\9c^\95øJ¯\b÷Õ\9c^\95øJ¯\b÷Õ\9c^UøN¯2>WszUâ+½"ÜWszUâ+½"ÜWszUâ+½"ÜWszÕáJ¯\0\1f«9½*ñ\95^\11î«9½*ñ\95^\11î«9½*ñ\95^\11î«9½êp¥W\80\8fÕ\9c^\95øJ¯\b÷Õ\9c^\95øJ¯\b÷Õ\9c^\95øJ¯\b÷Õ\9c^u¸Ò+ÀÇjN¯J|¥W\84ûjN¯J|¥W\84ûjL¯Jû\96^\11m\9b9½êh¥W`\8fÕ\9c^\95øJ¯\b÷Õ\94^\95ô¯é\15Á_\17szUÂ+½"ÚWszÕáJ¯\0\1f«1½*í[zE´mæôª¤WzE¶¯æôªÄWzE¸¯Æôª³Wz\ 5´oæôª¤WzE¶¯æôªÄWzE¸¯Æôª´oé\15Ѷ\99Ó«\8eVz\ 5öXÍéU\89¯ô\8ap_ÍéU\89¯ô\8ap_ÍéU\89¯ô\8ap_ÍéU\87\ 2|¬æôªÄWzE¸¯æôªÄWzE¸¯æôªÄWzE¸¯æôªÃ\95^\ 1>VszUâ+½"ÜWszUâ+½"ÜWszUâ+½"ÜWszUá;½Êø\ÍéU\89¯ô\8ap_ÍéU\89¯ô\8ap_ÍéU\89¯ô\8ap_ÍéU\87\ 2|¬æôªÄWzE¸¯æôªÄWzE¸¯æôªÄWzE¸¯æôªÃ\95^\ 1>VszUâ+½"ÜWszUâ+½"ÜWsz\95\8a¡2½¢\vÝÎ}¹Ðåíiz\95nô[_Åtþ¸\1e¿\¿¢ÍéÕ:uK¯.3½ú?þú·\9fÿù¯?ÿé\9f\7fþÓ\8f\7f\9dÍÏñú\vû·/Úï¸ù
\8fÏëo<Ïò+\15PñÆ»\80º¿r( \1e\(\15P\80û*\14P\1d®\ 2
+p_\85\ 2ªÂw\ 1\95ñ±
+\ 5T\87«\80\ 2ÜW¡\80êp\15P\80û*\14P\1d®\ 2
+p_\85\ 2ªÂw\ 1\95ñ±
+\ 5T\87«\80\ 2ÜW¡\80êp\15P\80û*\14P\1d®\ 2
+p_\85\ 2ªÂw\ 1\95ñ±
+\ 5T\87«\80\ 2ÜW¡\80êp\15P\80û*\14P\1d®\ 2
+p_\85\ 2ªÁï
\88ÏU( :\\ 5\14à¾
+\ 5T\87«\80\ 2ÜW¡\80êp\15P\80û*\14P\15¾\v¨\8c\8fÕ\@uö* \80¶M( :Z\ 5\14ؾ
+\ 5T\87«\80\ 2ÜWs\ 1UÙ* 2í\9bP@u´
+(°}\15
\ eW\ 1\ 5¸¯æ\ 2ª³W\ 1\ 5´mB\ 1UÑ»\80ÊöX\85\ 2ªÃU@\ 1\80êìU@\ 1m\9bP@u´
+(°}\15
\ 5TÆÇj. :{\15P@Û&\14P\1d­\ 2
+l_\85\ 2ªÃU@\ 1î«P@Uø. 2>V¡\80êp\15P\80û*\14P\1d®\ 2
+p_\85\ 2ªÃU@\ 1î«P@Uø. 2>V¡\80êp\15P\80û*\14P\1d®\ 2
+p_\85\ 2ªÃU@\ 1î«P@Uø. 2>V¡\80êp\15P\80û*\14P\1d®\ 2
+p_\85\ 2ªÃU@\ 1î«P@Uø. 2>V¡\80êp\15P\80û*\14P\1d®\ 2
+p_\85\ 2ªÃU@\ 1î«P@Uø. 2>V¡\80êp\15P\80û*\14P\1d®\ 2
+p_\85\ 2ªÃU@\ 1î«P@5ø]\ 1õÿWv7˵^iv\9d\9a\99\1d\ 4\ 1p\9a\96l«á\90Âa\95/ #\8a\92+,\17+\92´\14\ 2ȽæÚ{.ìw\8cÓÿ8\9f/\80d\12\87Äx÷\88\9f«P@9<\ 5\14à½
+\ 5\94ÃS@\ 1Þ«P@9<\ 5\14à½
+\ 5\94Âw\ 15ãÇ*\14P\ eO\ 1\ 5x¯B\ 1åð\14P\80÷*\14P\ eO\ 1\ 5x¯B\ 1¥ð]@Íø±
+\ 5\94ÃS@\ 1Þ«P@9<\ 5\14à½
+\ 5\94ÃS@\ 1Þ«P@)|\17P3~¬B\ 1åð\14P\80÷*\14P\ eO\ 1\ 5x¯Î\ 5\94³W\ 1\ 5tmB\ 1¥è]@Íö±
+\ 5\94ÃS@\ 1Þ«c\ 1åèK\ 1\ 5ðí"\14P\ eN\ 1\ 5t¯B\ 1¥ð]@Íø±:\17PÎ^\ 5\14е   \ 5\94£S@\81Ý«P@9<\ 5\14à½:\17PÊN\ 15Ó½       \ 5\94£S@\81Ý«P@9<\ 5\14à½:\17PÎ^\ 5\14е       \ 5\94¢w\ 15ÛÇ*\14P\ eO\ 1\ 5x¯B\ 1åð\14P\80÷*\14P\ eO\ 1\ 5x¯B\ 1¥ð]@Íø±
+\ 5\94ÃS@\ 1Þ«P@9<\ 5\14à½
+\ 5\94ÃS@\ 1Þ«P@)|\17P3~¬B\ 1åð\14P\80÷*\14P\ eO\ 1\ 5x¯B\ 1åð\14P\80÷*\14P\ 6¿* Fü\\85\ 2Êá) \0ïU( \1c\9e\ 2
+ð^\85\ 2Êá) \0ïU( \14¾\v¨\19?V¡\80rx
+(À{\15
+(\87§\80\ 2¼W¡\80rx
+(À{\15
+(\85ï\ 2\8fU( \1c\9e\ 2
+ð^\85\ 2Êá) \0ïU( \86\16PðB«\80º~¡ïo÷\v¨á\8d\80z{zx}|ý\ e\ 5ÔzêR@½\9e\ 5Ôñ«àOO\1f\7f\10ÿü\15\9c+á«èéåí^ôôôòðúã\8f\9f\8bÇ\97Ìs7oyþnúÓëÇÏq\9f?Á~ñB_à\97§\11ïÕ;øûÃç\7fÄsô\1fÏ"|»ø5ûüôðôöø*áõ4ÑÇê\1düãûòúd¿àëiÄ{õ\ eþñ}ùþôÃâ\97§\11ïÕ;øÇ÷æÛ³þ²_\9eF¼W¿Æ_>¾;//ö˾\9e&üX½\83\7f|w\9e\97}=\8dx¯ÞÁ?¾;Oßì\97}=\8dx¯ÞÁ?¾;\8fß\9f-~y\1añ^ý\1aÿöôðøã»ý²¯§  ?Vïà/\ fßß_í\97}=\8dx¯ÞÁ_\1f\1eßÞì\97}=\8dx¯ÞÁß\1f¾¿¾é/ûåiÄ{õküûÇwçûçÏ®
+_O\13~¬ÞÁ?¾;ß~Ø/ûz\1añ^½\83\7f|w^~Ø/ûz\1añ^½\83\7f|w^\1eõ\97ýò4â½z§\9d^\1f¯©ðý¡\9d3~¬Â\87v:<É:à½
+ɺÃ\93¬\ 3Þ«\90¬;<É:à½
+ɺÂw²>ãÇ*$ë\ e\ ex¯B²îð$ë\80÷*$ë\ e\ ex¯B²®ð\9d¬Ïø±
+ɺÃ\93¬\ 3Þ«\90¬;<É:à½
+ɺÃ\93¬\ 3Þ«\90¬+|'ë3~¬B²îð$ë\80÷*$ë\ e\ ex¯B²îð$ë\80÷*$ë\ 6¿JÖGü\\85dÝáIÖ\ 1ïUHÖ\1d\9ed\1dð^\85dÝáIÖ\ 1ïUHÖ\15¾\93õ\19?VçdÝÙ+Y\aº6!Ywt\92u°{\15\92u\87'Y\a¼Wçd]ÙIÖgº7!Ywt\92u°{\15\92u\87'Y\a¼WçdÝÙ+Y\aº6!YWôNÖgûX\85dÝáIÖ\ 1ïÕ9YwöJÖ\81®MHÖ\1d\9dd\1dì^\85d]á;Y\9fñcuNÖ\9d½\92u k\13\92uG'Y\a»W!Ywx\92uÀ{\15\92u\85ïd}Æ\8fUHÖ\1d\9ed\1dð^\85dÝáIÖ\ 1ïUHÖ\1d\9ed\1dð^\85d]á;Y\9fñc\15\92u\87'Y\a¼W!Ywx\92uÀ{\15\92u\87'Y\a¼W!YWøNÖgüX\85dÝáIÖ\ 1ïUHÖ\1d\9ed\1dð^\85dÝáIÖ\ 1ïUHÖ\15¾\93õ\19?V!Ywx\92uÀ{\15\92u\87'Y\a¼W!Ywx\92uÀ{\15\92u\85ïd}Æ\8fUHÖ\1d\9ed\1dð^\85dÝáIÖ\ 1ïUHÖ\1d\9ed\1dð^\85dÝàWÉú\88\9f«\90¬;<É:à½
+ɺÃ\93¬\ 3Þ«\90¬;<É:à½
+ɺÂw²>ãÇ*$ë\ e\ ex¯B²îð$ë\80÷*$ë\ e\ ex¯B²®ð\9d¬Ïø±
+ɺÃ\93¬\ 3Þ«\90¬;<É:à½
+ɺÃ\93¬\ 3Þ«\90¬+|'ë3~¬B²îð$ë\80÷*$ë\ e\ ex¯Îɺ³W²\ etmB²®è\9d¬Ïö±
+ɺÃ\93¬\ 3Þ«c²îèK²\ eðí"$ë\ e\ et¯B²®ð\9d¬Ïø±:'ëÎ^É:е   Éº£\93¬\83Ý«\90¬;<É:à½:'ëÊN²>Ó½       Éº£\93¬\83Ý«\90¬;<É:à½:'ëÎ^É:е       Éº¢w²>ÛÇ*$ë\ e\ ex¯B²îð$ë\80÷*$ë\ e\ ex¯B²®ð\9d¬Ïø±
+ɺÃ\93¬\ 3Þ«\90¬;<É:à½
+ɺÃ\93¬\ 3Þ«\90¬+|'ë3~¬B²îð$ë\80÷*$ë\ e\ ex¯B²îð$ë\80÷*$ë\ 6¿JÖGü\\85dÝáIÖ\ 1ïUHÖ\1d\9ed\1dð^\85dÝáIÖ\ 1ïUHÖ\15¾\93õ\19?V!Ywx\92uÀ{\15\92u\87'Y\a¼W!Ywx\92uÀ{\15\92u\85ïd}Æ\8fUHÖ\1d\9ed\1dð^\85dÝáIÖ\ 1ïUHÖ\87äÚ&ëðB+Y¿~¡ïï÷\93õá\8d\8edý;$ëßß?þ1KÅúå¡K°þv   ÖÿÃ/¿ÿ/ÿôO\7fÿå·ß~ùí«Xúùñó\7f_\eè·x~øöù~w\82õ\9d0O¯¸\væ«w\1c\ 2æóm¦~y\96k\13êe%'^\9eåÚ\84tÙÈ»\\1eåÞ\84nYÉÉ\96g¹6!ZVr\9aåY®M(\96\95\9c`y\96k\13re#ïZy\94{\13Ze%'U\9eåÚ\84PYÉé\94g¹6¡RVr"åY®MH\94\8d¼\våQîMè\93\95\9c<y\96k\13âd%§M\9eåÚ\842YÉ \93g¹6!K6ò®\92G¹7¡IVr\92äY®M\b\92\95\9c\1ey\96k\13jd%'F\9eåÚ\84\14ÙÈ»D\1eåÞ\84\ eYÉÉ\90g¹6!BVr\1aäY®M(\90\95\9c\0y\96k\13òc#ïúx\94{\13Úc%'=\9eåÚ\84ðXÉé\8eg¹6¡:Vr¢ãY®MH\8e\8d¼\8bãQîMè\8d\95\9cÜx\96k\13bc%§5\9eåÚ\84ÒXÉ    \8dg¹6!3\16òUe<ÉÇ&4ÆJNb<˵  \81±\92Ó\17ÏrmB]¬äÄų\\9b\90\16\ey\97Å£Ü\9bsW¬à\95\15Ïîí"DÅÊMS<õ    E±\92\13\14ÏrmÎ9±\81S\13\8fn-BK¬Ü¤Ä3\\9b\10\12+9\1dñ,×æ\\11+xEij{»\b   ±qwA<½ ý°\92\93\ fÏrmÎñ°\82W;<»·\8bP\ e+7áð\f×&dÃFÞÕð(÷æÜ\f+x%ó{»\bÁ°rÓ\vÏpmB-¬äij\\9b\90
+\ey\97£Ü\9bР      +9\99ð,×&DÂJN#<˵ \85°\92\13\bÏrmB\1elä]\a\8froB\e¬ä¤Á³\\9b\10\ 6+9]ð,×&TÁJN\14<˵     I°\91w\11<ʽ        =°\92\93\ 3ÏrmB\f¬ä´À³\\9bP\ 2+9!ð,×&dÀFÞ\15ð(÷&4ÀJN\ 2<˵     \ 1°\92ÓÿÎrmBý«äÄ¿³\\9b\90þ\1ay\97¿£Ü\9bÐý*9Ùï,×&D¿JNó;˵     Å¯\92\13üÎrmBî+ä«Úw\92\8fMh}\95\9cÔw\96k\13B_%§ó\9dåÚ\84ÊWÉ\89|g¹6!ñ5ò.|G¹7¡ïUròÞY®M\88{\95\9c¶w\96k\13Ê^%'ì\9dåÚ\84¬×È»ê\1dåÞ\84¦WÉIzg¹6!èUrzÞY®M¨y\95\9c\98w\96k\13R^#ï\92w\94{\13:^%'ã\9dåÚ\84\88WÉixg¹6ç\82WÁ+à\9dÝÛEÈw\8d»ëÝ\11îMhw\95\9ctw\96ks\fw\95{évgõf\ fª]¥&Ú\9dÝÚ\84d×È»Ø\1dåÞ\9c{]\ 5¯\wvo\17!ÖUnZÝ\19®M(u\95\9cPw\96ksÎt\r\9cJwtk\11\1a]å&Ñ\9dáÚ\84@WÉésg¹6ç:WÁ+Î\9dÝÛEHs\8d»ËÜ\11îMèr\95\9c,w\96k\13¢\%§É\9dåÚ\84"WÉ      rg¹6!Ç5ò®qG¹7¡ÅUrRÜY®M\bq\95\9c\ ew\96k\13*\%'Â\9dåÚ\84\ 4×È»À\1dåÞ\84þVÉÉog¹6!¾UrÚÛY®M(o\95\9cðv\96k\13²[!_U·\93|lBs«ä$·³\\9b\10Ü*9½í,×&Ô¶JNl;˵  ©­\91wi;ʽ        \9d­\92\93ÙÎrmBd«ä4¶³\\9bPØ*9\81í,×&äµFÞuí(÷&´µJNZ;˵     a­\92ÓÕÎrmBU{?\vµQíü6«©½z\9bï?î'µ÷_ç§?\ 4\1aÍ\9cÔ®§.MíûÑÔþã_ß\1fÿòoÿúEZûòú9ñú\ f×ÒÙÖ>}\16¢wÚÚÝ\1f\8e\ 3Äë·\1d
+Ä/^hJ\10güX\85\bÑá©\10\ 1ïUè\10\1d\9e\10\11ð^\85\14Ñái\11\ 1ïU¨\11\15¾sÄ\19?V!Htx\8aDÀ{\15\9aD\87'J\ 4¼W!KtxºDÀ{\15ÊD\85ï4qÆ\8fU\88\13\1d\9e:\11ð^\85>Ñá    \14\ 1ïUH\14\1d\9eF\11ð^\85JQá;S\9cñc\15BE\87§T\ 4¼W¡UtxbEÀ{\15rE\87§W\ 4¼W¡XTøN\16güX\85hÑá©\16\ 1ïUè\16\1d\9ep\11ð^\85tÑái\17\ 1ïU¨\17\15¾óÅ\19?V!`tx
+FÀ{\15\1aF\87'b\ 4¼W!ctx:FÀ{\15JF\83\8c#~®BÌèðÔ\8c\80÷*ô\8c\ e\bx¯BÒèð4\8d\80÷*T\8d
+ßYã\8c\1f«sØèìU6\ 2]\9bÐ6::q#ؽ
+y£ÃÓ7\ 2Þ«sá¨ì$\8e\9b\109::\95#ؽ
+\9d£Ã\13:\ 2Þ«sêèìÕ:\ 2]\9bP;*zç\8e³}¬Bðèð\14\8f\80÷êÜ<:{E\8f@×&d\8f\8e\bv¯Bù¨ð\9d>Îø±:Ç\8fÎ^õ#е ý££\13@\82Ý«\90@:<\r$à½
+\15¤Âw\ 69ãÇ*\84\90\ eO          x¯B\véðÄ\90\80÷*ä\90\ eO\ f        x¯B\11©ð\9dDÎø±
+Q¤ÃSE\ 2Þ«ÐE:<a$à½
+i¤ÃÓF\ 2Þ«PG*|ç\913~¬B éð\14\92\80÷*4\92\ eO$        x¯B&éðt\92\80÷*\94\92
+ß©ä\8c\1f«\10K:<µ$à½
+½¤Ã\13L\ 2Þ«\90L:<Í$à½
+Õ¤Âw69ãÇ*\84\93\ eO9 x¯B;éðÄ\93\80÷*ä\93\ eO?        x¯BAið«\84rÄÏU\88(\1d\9e\8a\12ð^\85\8eÒá        )\ 1ïUH)\1d\9e\96\12ð^\85\9aRá;§\9cñc\15\82J\87§¨\ 4¼W¡©tx¢JÀ{\15²J\87§«\ 4¼W¡¬TøN+güX\85¸Òá©+\ 1ïUè+\1d\9eÀ\12ð^\85ÄÒái,\ 1ïU¨,\15¾3Ë\19?V!´txJKÀ{\15ZK\87\ 4¼WçÜÒÙ«·\ 4º6¡¸TôN.gûX\85èÒá©.\ 1ïÕ±»tô%¼\ 4øv\11ÒK\a§½\ 4ºW¡¾TøÎ/güX\9d\ 3Lg¯\ 2\13èÚ\84\ 6ÓÑ\890ÁîUÈ0\1d\9e\ e\13ð^\9dKLe'Å\9céÞ\84\18ÓÑ©1ÁîUè1\1d\9e \13ð^\9d\93Lg¯&\13èÚ\84*SÑ;Ë\9cíc\15ÂL\87§Ì\ 4¼W¡ÍtxâLÀ{\15òL\87§Ï\ 4¼W¡ÐTøN4güX\85HÓá©4\ 1ïUè4\1d\9eP\13ð^\85TÓái5\ 1ïU¨5\15¾sÍ\19?V!Øtx\8aMÀ{\15\9aM\87\ 4¼W!ÛtxºMÀ{\15ÊM\83\9b#~®B¼éðÔ\9b\80÷*ô\9b\ eOÀ x¯BÂéð4\9c\80÷*T\9c
\19ç\8c\1f«\10r:<%'à½
+-§Ã\13s\ 2Þ«\90s:<='à½
+E§ÂwÒ9ãÇ*D\9d\ eOÕ x¯B×éð\84\9d\80÷*¤\9dC\96hÛNx¡\15w^¿ÐëÓýºsx£\9fÎ;_>~\9cþø~@Þ¹\9eºä\9d?vÞùï~ýõ÷ÿüûß~ÿê3S?þâoOW\7fõ\97_ÁççÇ'þÐÔñ5÷§¦^¿çð±©_¼Ðô¹©\80÷*|rªÃóÑ©\80÷*|xªÂ÷§§Îø±
+\9f\9fêð|\80*à½
+\1f¡êð|\86*à½
+\9f¢êðdÌ\80÷*dÌ
\19ó\8c\1f«\901;<\193à½
+\19³Ã\931\ 3Þ«\901;<\193à½
+\19³ÂwÆ<ãÇ*dÌ\ e\fx¯BÆìðdÌ\80÷*dÌ\ e\fx¯BƬð\9d1Ïø±
+\19³Ã\931\ 3Þ«\901;<\193à½
+\19³Ã\931\ 3Þ«\901+|gÌ3~¬BÆìðdÌ\80÷*dÌ\ e\fx¯BÆìðdÌ\80÷*dÌ
\19ó\8c\1f«\901;<\193à½
+\19³Ã\931\ 3Þ«\901;<\193à½
+\19³ÂwÆ<ãÇ*dÌ\ e\fx¯BÆìðdÌ\80÷*dÌ\ e\fx¯BÆlð«\8cyÄÏUÈ\98\1d\9e\8c\19ð^\85\8cÙáÉ\98\ 1ïUÈ\98\1d\9e\8c\19ð^\85\8cYá;c\9eñcuÎ\98\9d½2f k\132fG'c\ 6»W!cvx2fÀ{uÎ\98\95\9d\8cy¦{\132fG'c\ 6»W!cvx2fÀ{uÎ\98\9d½2f k\132fEï\8c\8f\98\1d\9e\8c\19ð^\9d3fg¯\8c\19èÚ\84\8cÙÑÉ\98ÁîUÈ\98\15¾3æ\19?Vç\8cÙÙ+c\ 6º6!cvt2f°{\152f\87'c\ 6¼W!cVøÎ\98güX\85\8cÙáÉ\98\ 1ïUÈ\98\1d\9e\8c\19ð^\85\8cÙáÉ\98\ 1ïUÈ\98\15¾3æ\19?V!cvx2fÀ{\152f\87'c\ 6¼W!cvx2fÀ{\152f\85ï\8c\8f\98\1d\9e\8c\19ð^\85\8cÙáÉ\98\ 1ïUÈ\98\1d\9e\8c\19ð^\85\8cYá;c\9eñc\152f\87'c\ 6¼W!cvx2fÀ{\152f\87'c\ 6¼W!cVøÎ\98güX\85\8cÙáÉ\98\ 1ïUÈ\98\1d\9e\8c\19ð^\85\8cÙáÉ\98\ 1ïUÈ\98\r~\951\8fø¹
+\19³Ã\931\ 3Þ«\901;<\193à½
+\19³Ã\931\ 3Þ«\901+|gÌ3~¬BÆìðdÌ\80÷*dÌ\ e\fx¯BÆìðdÌ\80÷*dÌ
\19ó\8c\1f«\901;<\193à½
+\19³Ã\931\ 3Þ«\901;<\193à½
+\19³ÂwÆ<ãÇ*dÌ\ e\fx¯BÆìðdÌ\80÷ê\9c1;{eÌ@×&dÌ\8aÞ\19ól\1f«\901;<\193à½:fÌ\8e¾dÌ\0ß.BÆìàdÌ@÷*dÌ
\19ó\8c\1f«sÆìì\951\ 3]\9b\901;:\193ؽ
+\19³Ã\931\ 3Þ«sƬìdÌ3Ý\9b\901;:\193ؽ
+\19³Ã\931\ 3Þ«sÆìì\951\ 3]\9b\901+zg̳}¬BÆìðdÌ\80÷*dÌ\ e\fx¯BÆìðdÌ\80÷*dÌ
\19ó\8c\1f«\901;<\193à½
+\19³Ã\931\ 3Þ«\901;<\193à½
+\19³ÂwÆ<ãÇ*dÌ\ e\fx¯BÆìðdÌ\80÷*dÌ\ e\fx¯BÆlð«\8cyÄÏUÈ\98\1d\9e\8c\19ð^\85\8cÙáÉ\98\ 1ïUÈ\98\1d\9e\8c\19ð^\85\8cYá;c\9eñc\152f\87'c\ 6¼W!cvx2fÀ{\152f\87'c\ 6¼W!cVøÎ\98güX\85\8cÙáÉ\98\ 1ïUÈ\98\1d\9e\8c\19ð^\85\8cy\8cp]Æ\f/´2æë\17z}¾\9f1\ fotdÌß!c~úññçåÇ7È\98×S\7f\1f?ÿ'cþ÷¿þË\7fùßÿù¿}Q1\7fü5ß_?ÿÿô\8aè\17yzxýü\17 ÷*æ§\87§·?~B\eß2ÏݼæÃWYõ\9f±ó\17/4%Ô\80÷*$Ô\ eOB\rx¯BBíð$Ô\80÷*$Ô
+ß      õ\8c\1f«\90P;<        5à½
+       µÃ\93P\ 3Þ«\90P;<     5à½
+       µÂwB=ãÇ*$Ô\ eOB\rx¯BBíð$Ô\80÷*$Ô\ eOB\rx¯BB­ð\9dPÏø±
+       µÃ\93P\ 3Þ«\90P;<     5à½
+       µÃ\93P\ 3Þ«\90P+|'Ô3~¬BBíð$Ô\80÷*$Ô\ eOB\rx¯BBíð$Ô\80÷*$Ô
+ß      õ\8c\1f«\90P;<        5à½
+       µÃ\93P\ 3Þ«\90P;<     5à½
+       µÂwB=ãÇ*$Ô\ eOB\rx¯BBíð$Ô\80÷*$Ô\ eOB\rx¯BB­ð\9dPÏø±
+       µÃ\93P\ 3Þ«\90P;<     5à½
+       µÃ\93P\ 3Þ«\90P\eü*¡\1eñs\15\12j\87\ 6¼W!¡vx\12jÀ{\15\12j\87\ 6¼W!¡VøN¨güX\9d\13jg¯\84\1aèÚ\84\84ÚÑI¨ÁîUH¨\1d\9e\84\1að^\9d\13je'¡\9eéÞ\84\84ÚÑI¨ÁîUH¨\1d\9e\84\1að^\9d\13jg¯\84\1aèÚ\84\84ZÑ;¡\9eíc\15\12j\87\ 6¼Wç\84ÚÙ+¡\ 6º6!¡vt\12j°{\15\12j\85ï\84\8fÕ9¡vöJ¨\81®MH¨\1d\9d\84\1aì^\85\84ÚáI¨\ 1ïUH¨\15¾\13ê\19?V!¡vx\12jÀ{\15\12j\87\ 6¼W!¡vx\12jÀ{\15\12j\85ï\84\8fUH¨\1d\9e\84\1að^\85\84ÚáI¨\ 1ïUH¨\1d\9e\84\1að^\85\84Zá;¡\9eñc\15\12j\87\ 6¼W!¡vx\12jÀ{\15\12j\87\ 6¼W!¡VøN¨güX\85\84ÚáI¨\ 1ïUH¨\1d\9e\84\1að^\85\84ÚáI¨\ 1ïUH¨\15¾\13ê\19?V!¡vx\12jÀ{\15\12j\87\ 6¼W!¡vx\12jÀ{\15\12j\83_%Ô#~®BBíð$Ô\80÷*$Ô\ eOB\rx¯BBíð$Ô\80÷*$Ô
+ß      õ\8c\1f«\90P;<        5à½
+       µÃ\93P\ 3Þ«\90P;<     5à½
+       µÂwB=ãÇ*$Ô\ eOB\rx¯BBíð$Ô\80÷*$Ô\ eOB\rx¯BB­ð\9dPÏø±
+       µÃ\93P\ 3Þ«\90P;<     5à½:'ÔÎ^        5е             µ¢wB=ÛÇ*$Ô\ eOB\r\8e       µ£/     5À·\8b\90P;8        5н
+       µÂwB=ãÇê\9cP;{%Ô@×&$Ô\8eNB\rv¯BBíð$Ô\80÷ê\9cP+;  õL÷&$Ô\8eNB\rv¯BBíð$Ô\80÷ê\9cP;{%Ô@×&$Ô\8aÞ      õl\1f«\90P;<        5à½
+       µÃ\93P\ 3Þ«\90P;<     5à½
+       µÂwB=ãÇ*$Ô\ eOB\rx¯BBíð$Ô\80÷*$Ô\ eOB\rx¯BB­ð\9dPÏø±
+       µÃ\93P\ 3Þ«\90P;<     5à½
+       µÃ\93P\ 3Þ«\90P\eü*¡\1eñs\15\12j\87\ 6¼W!¡vx\12jÀ{\15\12j\87\ 6¼W!¡VøN¨güX\85\84ÚáI¨\ 1ïUH¨\1d\9e\84\1að^\85\84ÚáI¨\ 1ïUH¨\15¾\13ê\19?V!¡vx\12jÀ{\15\12j\87\ 6¼W!¡\1e
+`\9b\v­\84úú\85^_î'ÔÃ\eýô'A?¾>¼\7fûø¹nN¨×S\97\84úi'ÔÿÛ\7fÿëÓ÷¿üò/¿\9f\rõÇÿ§=ÿñ»¬WÆÙP\7f{ÿö~¯¡~|ÿ°þø3Áø\9ayîæ=ÏßN\7fzzxþü\8f\v_¼Ïi_\1e&º7ïÈ/\ f¯?>\7ftwôåi´{õ\ eþúñ\ 3ì\8f\17\8b_\9eF¼Wïàï\ f¯úKþdz\bß.Þ\89ÆWU¯àÝêÏô±
+­¾ÃÓê\ 3Þ«Ðê;<­>à½
+­¾ÃÓê\ 3Þ«Ðê+|·ú3~¬B«ïð´ú\80÷*´ú\ e\ fx¯B«ïð´ú\80÷*´ú
+ß­þ\8c\1f«Ðê;<­>à½
+­¾ÃÓê\ 3Þ«Ðê;<­>à½
+­¾Âw«?ãÇ*´ú\ e\ fx¯B«ïð´ú\80÷*´ú\ e\ fx¯B«¯ðÝêÏø±
+­¾ÃÓê\ 3Þ«Ðê;<­>à½
+­¾ÃÓê\ 3Þ«Ðê+|·ú3~¬B«ïð´ú\80÷*´ú\ e\ fx¯B«ïð´ú\80÷*´ú
+ß­þ\8c\1f«Ðê;<­>à½
+­¾ÃÓê\ 3Þ«Ðê;<­>à½
+­¾Âw«?ãÇ*´ú\ e\ fx¯B«ïð´ú\80÷*´ú\ e\ fx¯B«oð«V\7fÄÏUhõ\1d\9eV\1fð^\85Vßáiõ\ 1ïUhõ\1d\9eV\1fð^\85V_á»Õ\9fñcunõ\9d½Z} k\13Z}G§Õ\a»W¡ÕwxZ}À{unõ\95\9dV\7f¦{\13Z}G§Õ\a»W¡ÕwxZ}À{unõ\9d½Z} k\13Z}EïV\7f\8fUhõ\1d\9eV\1fð^\9d[}g¯V\1fèÚ\84VßÑiõÁîUhõ\15¾[ý\19?VçVßÙ«Õ\aº6¡ÕwtZ}°{\15Z}\87§Õ\a¼W¡ÕWønõgüX\85Vßáiõ\ 1ïUhõ\1d\9eV\1fð^\85Vßáiõ\ 1ïUhõ\15¾[ý\19?V¡ÕwxZ}À{\15Z}\87§Õ\a¼W¡ÕwxZ}À{\15Z}\85ïV\7fÆ\8fUhõ\1d\9eV\1fð^\85Vßáiõ\ 1ïUhõ\1d\9eV\1fð^\85V_á»Õ\9fñc\15Z}\87§Õ\a¼W¡ÕwxZ}À{\15Z}\87§Õ\a¼W¡ÕWønõgüX\85Vßáiõ\ 1ïUhõ\1d\9eV\1fð^\85Vßáiõ\ 1ïUhõ\r~Õê\8fø¹
+­¾ÃÓê\ 3Þ«Ðê;<­>à½
+­¾ÃÓê\ 3Þ«Ðê+|·ú3~¬B«ïð´ú\80÷*´ú\ e\ fx¯B«ïð´ú\80÷*´ú
+ß­þ\8c\1f«Ðê;<­>à½
+­¾ÃÓê\ 3Þ«Ðê;<­>à½
+­¾Âw«?ãÇ*´ú\ e\ fx¯B«ïð´ú\80÷êÜê;{µú@×&´ú\8aÞ­þl\1f«Ðê;<­>à½:¶ú\8e¾´ú\0ß.B«ïà´ú@÷*´ú
+ß­þ\8c\1f«s«ïìÕê\ 3]\9bÐê;:­>ؽ
+­¾ÃÓê\ 3Þ«s«¯ì´ú3Ý\9bÐê;:­>ؽ
+­¾ÃÓê\ 3Þ«s«ïìÕê\ 3]\9bÐê+z·ú³}¬B«ïð´ú\80÷*´ú\ e\ fx¯B«ïð´ú\80÷*´ú
+ß­þ\8c\1f«Ðê;<­>à½
+­¾ÃÓê\ 3Þ«Ðê;<­>à½
+­¾Âw«?ãÇ*´ú\ e\ fx¯B«ïð´ú\80÷*´ú\ e\ fx¯B«oð«V\7fÄÏUhõ\1d\9eV\1fð^\85Vßáiõ\ 1ïUhõ\1d\9eV\1fð^\85V_á»Õ\9fñc\15Z}\87§Õ\a¼W¡ÕwxZ}À{\15Z}\87§Õ\a¼W¡ÕWønõgüX\85Vßáiõ\ 1ïUhõ\1d\9eV\1fð^\85V\7f(Ím«\ f/´Zýë\17z}½ßê\ foô³­þço\95¿ÿøø\89vlõóÔ¥Õ\7fÞ­þÿñ×çï\7fùå³×ÿ·/jýÇ\87\97\97\8f¿½®\95ókøããoÁ»µþÓÃÇ?\8d^èEóÜÍ\9b\9e¿\9fþøòðöòúåû|aÿù0ÒµyG~}x~~}³ôåi´{õ\ e~¹e ñu!\81ð^\1d/$8{]H\0º7ç\v  \92^\17\12ÈîÕùB\82Ä×\85\ 4Â{uº\90 é?/$\10|»8_Hpp.$\0}¬Î\17\12$¾.$\10Þ«ó\85\ 4\89¯\v   \84÷ê|!AâëB\ 2á½:_Hpx.$\0~¬Î\17\12$¾.$\10Þ«ó\85\ 4\89¯\v  \84÷ê|!AâëB\ 2á½:_Hpx.$\0~¬Î\17\12$¾.$\10Þ«ó\85\ 4\89¯\v  \84÷ê|!AâëB\ 2á½:_Hpx.$\0~¬Î\17\12$¾.$\10Þ«ó\85\ 4\89¯\v  \84÷ê|!AâëB\ 2á½:_Hpx.$\0~¬Î\17\12$¾.$\10Þ«ó\85\ 4\89¯\v  \84÷ê|!AâëB\ 2á½:_Hpx.$\0~¬Î\17\12$¾.$\10Þ«ó\85\ 4\89¯\v  \84÷ê|!AâëB\ 2á½:_Hpx.$\0~¬Î\17\12$¾.$\10Þ«ó\85\ 4\89¯\v  \84÷ê|!AâëB\ 2á½:_Hpx.$\0~¬Î\17\12$¾.$\10Þ«ó\85\ 4\89¯\v  \84÷ê|!AâëB\ 2á½:_HPø¾\900ãçê|!AâëB\ 2á½:_H\90øº\90@x¯Î\17\12$¾.$\10Þ«ó\85\ 4\87çB\ 2àÇêx!AÚ\97\v    D×æ|!AÒëB\ 2Ù½:_H\90øº\90@x¯\8e\17\12\9c½.$\0Ý\9bó\85\ 4\v  d÷ê|!AâëB\ 2á½:^H\90öåB\ 2ѵ9_Hpt.$\80}¬Î\17\12$¾.$\10Þ«ã\85\ 4i_.$\10]\9bó\85\ 4\v      d÷ê|!Áá¹\90\0ø±:^H\90öåB\ 2ѵ9_H\90ôº\90@v¯Î\17\12$¾.$\10Þ«ó\85\ 4\87çB\ 2àÇê|!AâëB\ 2á½:_H\90øº\90@x¯Î\17\12$¾.$\10Þ«ó\85\ 4\87çB\ 2àÇê|!AâëB\ 2á½:_H\90øº\90@x¯Î\17\12$¾.$\10Þ«ó\85\ 4\87çB\ 2àÇê|!AâëB\ 2á½:_H\90øº\90@x¯Î\17\12$¾.$\10Þ«ó\85\ 4\87çB\ 2àÇê|!AâëB\ 2á½:_H\90øº\90@x¯Î\17\12$¾.$\10Þ«ó\85\ 4\87çB\ 2àÇê|!AâëB\ 2á½:_H\90øº\90@x¯Î\17\12$¾.$\10Þ«ó\85\ 4\85ï\v     3~®Î\17\12$¾.$\10Þ«ó\85\ 4\89¯\v     \84÷ê|!AâëB\ 2á½:_Hpx.$\0~¬Î\17\12$¾.$\10Þ«ó\85\ 4\89¯\v  \84÷ê|!AâëB\ 2á½:_Hpx.$\0~¬Î\17\12$¾.$\10Þ«ó\85\ 4\89¯\v  \84÷ê|!AâëB\ 2á½:_Hpx.$\0~¬Î\17\12$¾.$\10Þ«ó\85\ 4\89¯\v  \84÷êx!AÚ\97\v       D×æ|!Áѹ\90\0ö±:_H\90øº\90@x¯N\17\12$ýç\85\ 4\82o\17ç\v     \12^\17\12\88îÕùB\82Ãs!\ 1ðcu¼\90 íË\85\ 4¢ks¾\90 éu!\81ì^\9d/$H|]H ¼WÇ\v        Î^\17\12\80îÍùB\82¤×\85\ 4²{u¾\90 ñu!\81ð^\1d/$Hûr!\81èÚ\9c/$8:\17\12À>Vç\v        \12_\17\12\bïÕùB\82Ä×\85\ 4Â{u¾\90 ñu!\81ð^\9d/$8<\17\12\0?Vç\v  \12_\17\12\bïÕùB\82Ä×\85\ 4Â{u¾\90 ñu!\81ð^\9d/$8<\17\12\0?Vç\v  \12_\17\12\bïÕùB\82Ä×\85\ 4Â{u¾\90 ñu!\81ð^\9d/$(|_H\98ñsu¾\90 ñu!\81ð^\9d/$H|]H ¼Wç\v      \12_\17\12\bïÕùB\82Ãs!\ 1ðcu¾\90 ñu!\81ð^\9d/$H|]H ¼Wç\v  \12_\17\12\bïÕùB\82Ãs!\ 1ðcu¾\90 ñu!\81ð^\9d/$H|]H ¼Wç\v  sݯ.$Ð\v]\9e»y¡×÷»\17\12¦7:.$|\87\v       \7ff\fßàBÂzêr!áåË\v ÿø×÷Ç¿üÛ¿þr^Jøü\1fÛÓç¿è¼Òú\9d\9e\1e\9e>þn¸w)a×Ôã\vï\9aúú\8d\87\9aú\8b\17\9ajjÀ{\15jj\87§¦\ 6¼W¡¦vxjjÀ{\15jj\85ï\9a\8fU¨©\1d\9e\9a\1að^\85\9aÚá©©\ 1ïU¨©\1d\9e\9a\1að^\85\9aZỦ\9eñc\15jj\87§¦\ 6¼W¡¦vxjjÀ{\15jj\87§¦\ 6¼W¡¦Vø®©güX\85\9aÚá©©\ 1ïU¨©\1d\9e\9a\1að^\85\9aÚá©©\ 1ïU¨©\15¾kê\19?V¡¦vxjjÀ{\15jj\87§¦\ 6¼W¡¦vxjjÀ{\15jj\85ï\9a\8fU¨©\1d\9e\9a\1að^\85\9aÚá©©\ 1ïU¨©\1d\9e\9a\1að^\85\9aZỦ\9eñc\15jj\87§¦\ 6¼W¡¦vxjjÀ{\15jj\87§¦\ 6¼W¡¦Vø®©güX\85\9aÚá©©\ 1ïU¨©\1d\9e\9a\1að^\85\9aÚá©©\ 1ïU¨©\r~US\8fø¹
+5µÃSS\ 3Þ«PS;<55à½
+5µÃSS\ 3Þ«PS+|×Ô3~¬Î5µ³WM\rtmBMíèÔÔ`÷*ÔÔ\ eOM\rx¯Î5µ²SSÏtoBMíèÔÔ`÷*ÔÔ\ eOM\rx¯Î5µ³WM\rtmBM­è]SÏö±
+5µÃSS\ 3Þ«sMíìUS\ 3]\9bPS;:55ؽ
+5µÂwM=ãÇê\S;{ÕÔ@×&ÔÔ\8eNM\rv¯BMíðÔÔ\80÷*ÔÔ
+ß5õ\8c\1f«PS;<55à½
+5µÃSS\ 3Þ«PS;<55à½
+5µÂwM=ãÇ*ÔÔ\ eOM\rx¯BMíðÔÔ\80÷*ÔÔ\ eOM\rx¯BM­ð]SÏø±
+5µÃSS\ 3Þ«PS;<55à½
+5µÃSS\ 3Þ«PS+|×Ô3~¬BMíðÔÔ\80÷*ÔÔ\ eOM\rx¯BMíðÔÔ\80÷*ÔÔ
+ß5õ\8c\1f«PS;<55à½
+5µÃSS\ 3Þ«PS;<55à½
+5µÁ¯jê\11?W¡¦vxjjÀ{\15jj\87§¦\ 6¼W¡¦vxjjÀ{\15jj\85ï\9a\8fU¨©\1d\9e\9a\1að^\85\9aÚá©©\ 1ïU¨©\1d\9e\9a\1að^\85\9aZỦ\9eñc\15jj\87§¦\ 6¼W¡¦vxjjÀ{\15jj\87§¦\ 6¼W¡¦Vø®©güX\85\9aÚá©©\ 1ïU¨©\1d\9e\9a\1að^\9dkjg¯\9a\1aèÚ\84\9aZÑ»¦\9eíc\15jj\87§¦\ 6¼WÇ\9aÚÑ\97\9a\1aàÛE¨©\1d\9c\9a\1aè^\85\9aZỦ\9eñcu®©\9d½jj k\13jjG§¦\ 6»W¡¦vxjjÀ{u®©\95\9d\9az¦{\13jjG§¦\ 6»W¡¦vxjjÀ{u®©\9d½jj k\13jjEï\9a\8fU¨©\1d\9e\9a\1að^\85\9aÚá©©\ 1ïU¨©\1d\9e\9a\1að^\85\9aZỦ\9eñc\15jj\87§¦\ 6¼W¡¦vxjjÀ{\15jj\87§¦\ 6¼W¡¦Vø®©güX\85\9aÚá©©\ 1ïU¨©\1d\9e\9a\1að^\85\9aÚá©©\ 1ïU¨©\r~US\8fø¹
+5µÃSS\ 3Þ«PS;<55à½
+5µÃSS\ 3Þ«PS+|×Ô3~¬BMíðÔÔ\80÷*ÔÔ\ eOM\rx¯BMíðÔÔ\80÷*ÔÔ
+ß5õ\8c\1f«PS;<55à½
+5µÃSS\ 3Þ«PS\ f\ 5°­©á\85VM}ýBo\8f÷kêá\8d~úóæ?þ\1cñãÇw\88©/\ f]Zêo»¥þ\8f¿üöÛßþë\17ýôÓûÃ\1f¿«¾çû\1d\9e\1f\9eÞ>\18¬§§\17ÜñôÕ\e\ eíôù6S:=˵      á´\92ÓMÏrmB5­äDÓ³\\9b\90L\ey\17Ó£Ü\9bÐK+9¹ô,×&ÄÒJN+=˵     ¥´\92\13JÏrmB&mä]I\8froB#­ä$Ò³\\9b\10H+9}ô,×&ÔÑJN\1c=˵     i´\91w\19=ʽ        ]´\92\93EÏrmB\14­ä4ѳ\\9bPD+9Aô,×&äÐFÞ5ô(÷&´ÐJN
+=˵    !´\92ÓAÏrmB\ 5­äDг\\9b\90@\ey\17УÜ\9bÐ?+9ùó,×&ÄÏJNû<˵     å³\92\13>ÏrmBölä]=\8froBó¬ä$ϳ\\9b\10<+9½ó,×&ÔÎJNì<˵     ©³\91wé<ʽ        \9d³\92\939ÏrmBä¬ä4γ\\9bP8+9\81ó,×&äÍB¾ª\9b'ùØ\84¶YÉI\9bg¹6!lVrºæY®M¨\9a\95\9c¨y\96k\13\92f#ï¢y\94{sî\99\15¼ræÙ½]\84\98Y¹i\99g¸6¡dVrBæY®Í9c6p*æÑ­Eh\98\95\9b\84y\86k\13\ 2f%§_\9eåÚ\9cëe\ 5¯xyvo\17!]6î.\97G¸7¡[Vr²åY®Í9ZVðj\96g÷v\11\8aeå&X\9eáÚ\84\ÙÈ»V\1eåÞ\9c[e\ 5¯Tyvo\17!TVn:å\19®M¨\94\95\9cHy\96k\13\12e#ïBy\94{\13úd%'O\9eåÚ\848YÉi\93g¹6¡LVrÂäY®MÈ\92\8d¼«äQîMh\92\95\9c$y\96k\13\82d%§G\9eåÚ\84\1a\89\91g¹6!E6ò.\91G¹7¡CVr2äY®M\88\90\95\9c\ 6y\96k\13
+d%'@\9eåÚ\84üØÈ»>\1eåÞ\84öXÉI\8fg¹6!<VrºãY®M¨\8e\95\9cèx\96k\13\92c#ïâx\94{\13zc%'7\9eåÚ\84ØXÉi\8dg¹6¡4VrBãY®MÈ\8c\85|U\19Oò±        \8d±\92\93\18ÏrmB`¬äôų\\9bP\17+9qñ,×&¤ÅFÞeñ(÷&tÅJNV<˵     Q±\92Ó\14ÏrmBQ¬ä\ 4ų\\9b\90\13\ey×Ä£Ü\9bÐ\12+9)ñ,×&\84ÄJNG<˵     \15±\92\13\11ÏrmBBlä]\10\8froB?¬ääó\\9b\10\ f+9íð,×æ\\ e+x\85ó{»\bÙ°qw5<½   Í°\92\93\fÏrm\8eÁ°r/½ð¬ÞìA-¬Ôij[\9b\90
+\ey\97£Ü\9bs'¬à\95   Ïîí"DÂÊM#<õ    \85°\92\13\bÏrmÎy°\81S\a\8fn-B\e¬Ü¤Á3\\9b\10\ 6+9]ð,×æ\\ 5+xEÁ³{»\bI°qw\11<½   =°\92\93\ 3ÏrmB\f¬ä´À³\\9bP\ 2+9!ð,×&dÀFÞ\15ð(÷&4ÀJN\ 2<˵     \ 1°\92ÓÿÎrmBý«äÄ¿³\\9b\90þ\1ay\97¿£Ü\9bÐý*9Ùï,×&D¿JNó;˵     Å¯\92\13üÎrmBî+ä«Úw\92\8fMh}\95\9cÔw\96k\13B_%§ó\9dåÚ\84ÊWÉ\89|g¹6!ñ5ò.|G¹7¡ïUròÞY®M\88{\95\9c¶w\96k\13Ê^%'ì\9dåÚ\84¬×È»ê\1dåÞ\84¦WÉIzg¹6!èUrzÞY®M¨yï\a©6æ\9dßfµ¼Wo3¥¼÷_ç§KÞ\8f?Z>~{y\85\94w=uiy¿ï\96÷?ýòûÿøëÓã_~ýûÿû\1f\7fùýÿùõ\9fΪ÷Û\8f\87÷\1f\9fÿFùÊúâS\91__¿Ýëzw\1f6¾î\ eÄ®ßw(ľx¡)\11\ 3¼W!\12sx*1À{\15:1\87'\14\ 3¼W!\15SønÅfüX\85ZÌáÉÅ\0ïU\bÆ\1c\9eb\fð^\85fÌá\89Æ\0ïUÈÆ\14¾»±\19?V¡\1csxÒ1À{\15â1\87§\1e\ 3¼W¡\1fsx\ 22À{\15\122\85ï\86\8fU¨È\1c\9e\8c\fð^\85\90Ìá)É\0ïUhÉ\1c\9e\98\fð^\85\9cLá»'\9bñc\15\8a2\87')\ 3¼W!*sxª2À{\15º2\87',\ 3¼W!-3øU[6âç*Ôe\ eO^\ 6x¯B`æð\14f\80÷*4f\ eOd\ 6x¯Bf¦ðÝ\99Íø±:\97fÎ^©\19е  ±\99£S\9b\81Ý«Ð\9b9<Á\19à½:'gÊNs6Ó½       Õ\99£\93\9d\81Ý«\10\9e9<å\19à½:·gÎ^ñ\19е       ù\99¢w\7f6ÛÇ*\14h\ eO\82\ 6x¯Î\11\9a³W\85\ 6tmB\87æè\84h`÷*¤h
+ß-Ú\8c\1f«s\8dæì\95£\ 1]\9b\10¤9:E\1aؽ
+M\9aÃ\13¥\ 1Þ«\90¥)|wi3~¬B\99æð¤i\80÷*Äi\ eO\9d\ 6x¯B\9fæð\ 4j\80÷*$j
\8dÚ\8c\1f«P©9<\99\1aà½
\9aÃSª\ 1ޫЪ9<±\1aà½
\9aÂw¯6ãÇ*\14k\ e\ 6x¯B´æðTk\80÷*tk\ e\ 6x¯Bº¦ðÝ®Íø±
\9aÃ\93¯\ 1Þ«\10°9<\ 5\eà½
+\r\9bÃ\13±\ 1Þ«\90±)|wl3~¬BÉæð¤l\80÷*Äl\ e\ 6x¯BÏæð\ 4m\80÷*$m\ 6¿jÚFü\\85ªÍáÉÚ\0ïU\bÛ\1c\9e²\rð^\85¶Íá\89Û\0ïUÈÛ\14¾û¶\19?V¡psx\127À{\15"7\87§r\ 3¼W¡ssxB7À{\15R7\85ïÖmÆ\8fU¨Ý\1c\9eÜ\rð^\85àÍá)Þ\0ïUhÞ\1c\9eè\rð^\85ìMá»{\9bñc\15Ê7\87'}\ 3¼W!~sxê7À{uîß\9c½\ 28 k\13\128Eï\ 6\8fU¨à\1c\9e\f\ eð^\1dC8G_J8\80o\17¡\85spb8 {\15r8\85ï\1e\8fÕ¹\88söJâ\80®M\88â\1c\9d*\ eì^\85.Îá      ã\0ïÕ9\8dSvÚ¸\99îM¨ã\1c\9d<\ eì^\85@Îá)ä\0ïÕ¹\91\8aä\80®MÈä\14½;¹Ù>V¡\94sxR9À{\15b9\87§\96\ 3¼W¡\97sx\829À{\15\929\85ïfnÆ\8fU¨æ\1c\9el\ eð^\85pÎá)ç\0ïUhç\1c\9ex\ eð^\85|Ná»\9f\9bñc\15
+:\87\ 3¼W!¢sx*:À{\15::\87\ 3¼W!¥3øUK7âç*Ôt\ eON\ax¯BPçð\14u\80÷*4u\ eOT\ax¯BV§ðÝÕÍø±
+e\9dÃ\93Ö\ 1Þ«\10×9<u\1dà½
+}\9dÃ\13Ø\ 1Þ«\90Ø)|7v3~¬Beçðdv\80÷*\84v\ eOi\ax¯Bk7Tb6¶\83\17ZµÝõ\v½=ßÏí\867úéÞîÛóÃã\8fçgèíþ|êiõv¯_övÿø×÷Ç¿üÛ¿~ñ9\9a\1f\7f\8f\7fþ·Ãµóå×òñåñnq·?óïjbúпë7\1e>õï\8b\17\9a>öoÆ\8fUøà?\87ç\93ÿ\0ïUøì?\87çÃÿ\0ïUøø?\87çóÿ\0ïUø\ 4@\85ïÄsÆ\8fUH<\1d\9eÄ\13ð^\85ÄÓáI<\ 1ïUH<\1d\9eÄ\13ð^\85ÄSá;ñ\9cñc\15\12O\87\ 4¼W!ñtx\12OÀ{\15\12O\87\ 4¼W!ñTøN<güX\85ÄÓáI<\ 1ïUH<\1d\9eÄ\13ð^\85ÄÓáI<\ 1ïUH<\15¾\13Ï\19?V!ñtx\12OÀ{\15\12O\87\ 4¼W!ñtx\12OÀ{\15\12O\85ïÄsÆ\8fUH<\1d\9eÄ\13ð^\85ÄÓáI<\ 1ïUH<\1d\9eÄ\13ð^\85ÄÓàW\89ç\88\9f«\90x:<\89'à½
+\89§Ã\93x\ 2Þ«\90x:<\89'à½
+\89§Âwâ9ãÇê\9cx:{%\9e@×&$\9e\8eNâ        v¯Bâéð$\9e\80÷ê\9cx*;\89çL÷&$\9e\8eNâ       v¯Bâéð$\9e\80÷ê\9cx:{%\9e@×&$\9e\8aÞ\89çl\1f«\90x:<\89'à½:'\9eÎ^\89'е  \89§£\93x\82Ý«\90x*|'\9e3~¬Î\89§³Wâ tmBâéè$\9e`÷*$\9e\ eOâ        x¯Bâ©ð\9dxÎø±
+\89§Ã\93x\ 2Þ«\90x:<\89'à½
+\89§Ã\93x\ 2Þ«\90x*|'\9e3~¬Bâéð$\9e\80÷*$\9e\ eOâ        x¯Bâéð$\9e\80÷*$\9e
\89ç\8c\1f«\90x:<\89'à½
+\89§Ã\93x\ 2Þ«\90x:<\89'à½
+\89§Âwâ9ãÇ*$\9e\ eOâ x¯Bâéð$\9e\80÷*$\9e\ eOâ        x¯Bâ©ð\9dxÎø±
+\89§Ã\93x\ 2Þ«\90x:<\89'à½
+\89§Ã\93x\ 2Þ«\90x\1aü*ñ\1cñs\15\12O\87\ 4¼W!ñtx\12OÀ{\15\12O\87\ 4¼W!ñTøN<güX\85ÄÓáI<\ 1ïUH<\1d\9eÄ\13ð^\85ÄÓáI<\ 1ïUH<\15¾\13Ï\19?V!ñtx\12OÀ{\15\12O\87\ 4¼W!ñtx\12OÀ{\15\12O\85ïÄsÆ\8fUH<\1d\9eÄ\13ð^\85ÄÓáI<\ 1ïÕ9ñtöJ<\81®MH<\15½\13ÏÙ>V!ñtx\12OÀ{uL<\1d}I<\ 1¾]\84ÄÓÁI<\81îUH<\15¾\13Ï\19?VçÄÓÙ+ñ\ 4º6!ñtt\12O°{\15\12O\87\ 4¼WçÄSÙI<gº7!ñtt\12O°{\15\12O\87\ 4¼WçÄÓÙ+ñ\ 4º6!ñTôN<gûX\85ÄÓáI<\ 1ïUH<\1d\9eÄ\13ð^\85ÄÓáI<\ 1ïUH<\15¾\13Ï\19?V!ñtx\12OÀ{\15\12O\87\ 4¼W!ñtx\12OÀ{\15\12O\85ïÄsÆ\8fUH<\1d\9eÄ\13ð^\85ÄÓáI<\ 1ïUH<\1d\9eÄ\13ð^\85ÄÓàW\89ç\88\9f«\90x:<\89'à½
+\89§Ã\93x\ 2Þ«\90x:<\89'à½
+\89§Âwâ9ãÇ*$\9e\ eOâ x¯Bâéð$\9e\80÷*$\9e\ eOâ        x¯Bâ©ð\9dxÎø±
+\89§Ã\93x\ 2Þ«\90x:<\89'à½
+\89ç\98%ºÄ\13^h%\9e×/4%\9eÃ\eýtâùüãã\9ft\8fo\90x®§.\89çÛUâùë?ýò\1fþþëÿÿ¯_\84\9dO\ fOo\9f\7f\1c¾2úM\9e\1f¾}ü?ÀÝ°óåáõù\8f\7fb\8e¯\99çnÞóüíô\97×\87§§Ï?4}ñB_à\97§\11ïÕ;ø\8aO\1d\9e¤\15ð^\85¤Uá;i\9dñc\15\92V\87'i\ 5¼W!iux\92VÀ{\15\92V\87'i\ 5¼W!iUøNZgüX\85¤ÕáIZ\ 1ïUHZ\1d\9e¤\15ð^\85¤ÕáIZ\ 1ïUHZ\15¾\93Ö\19?V!iux\92VÀ{\15\92V\87'i\ 5¼W!iux\92VÀ{\15\92V\85ï¤uÆ\8fUHZ\1d\9e¤\15ð^\85¤ÕáIZ\ 1ïUHZ\1d\9e¤\15ð^\85¤Uá;i\9dñc\15\92V\87'i\ 5¼W!iux\92VÀ{\15\92V\87'i\ 5¼W!iUøNZgüX\85¤ÕáIZ\ 1ïUHZ\1d\9e¤\15ð^\85¤ÕáIZ\ 1ïUHZ\r~\95´\8eø¹
+I«Ã\93´\ 2Þ«\90´:<I+à½
+I«Ã\93´\ 2Þ«\90´*|'­3~¬ÎI«³WÒ
+tmBÒêè$­`÷*$­\ e
+x¯ÎI«²\93´ÎtoBÒêè$­`÷*$­\ e
+x¯ÎI«³WÒ
+tmBÒªè\9d´Îö±
+I«Ã\93´\ 2Þ«sÒêì\95´\ 2]\9b\90´::I+ؽ
+I«ÂwÒ:ãÇê\9c´:{%­@×&$­\8e
+v¯BÒêð$­\80÷*$­
+ßIë\8c\1f«\90´:<I+à½
+I«Ã\93´\ 2Þ«\90´:<I+à½
+I«ÂwÒ:ãÇ*$­\ e
+x¯BÒêð$­\80÷*$­\ e
+x¯BÒªð\9d´Îø±
+I«Ã\93´\ 2Þ«\90´:<I+à½
+I«Ã\93´\ 2Þ«\90´*|'­3~¬BÒêð$­\80÷*$­\ e
+x¯BÒêð$­\80÷*$­
+ßIë\8c\1f«\90´:<I+à½
+I«Ã\93´\ 2Þ«\90´:<I+à½
+I«Á¯\92Ö\11?W!iux\92VÀ{\15\92V\87'i\ 5¼W!iux\92VÀ{\15\92V\85ï¤uÆ\8fUHZ\1d\9e¤\15ð^\85¤ÕáIZ\ 1ïUHZ\1d\9e¤\15ð^\85¤Uá;i\9dñc\15\92V\87'i\ 5¼W!iux\92VÀ{\15\92V\87'i\ 5¼W!iUøNZgüX\85¤ÕáIZ\ 1ïUHZ\1d\9e¤\15ð^\9d\93Vg¯¤\15èÚ\84¤UÑ;i\9díc\15\92V\87'i\ 5¼WǤÕÑ\97¤\15àÛEHZ\1d\9c¤\15è^\85¤Uá;i\9dñcuNZ\9d½\92V k\13\92VG'i\ 5»W!iux\92VÀ{uNZ\95\9d¤u¦{\13\92VG'i\ 5»W!iux\92VÀ{uNZ\9d½\92V k\13\92VEï¤u¶\8fUHZ\1d\9e¤\15ð^\85¤ÕáIZ\ 1ïUHZ\1d\9e¤\15ð^\85¤Uá;i\9dñc\15\92V\87'i\ 5¼W!iux\92VÀ{\15\92V\87'i\ 5¼W!iUøNZgüX\85¤ÕáIZ\ 1ïUHZ\1d\9e¤\15ð^\85¤ÕáIZ\ 1ïUHZ\r~\95´\8eø¹
+I«Ã\93´\ 2Þ«\90´:<I+à½
+I«Ã\93´\ 2Þ«\90´*|'­3~¬BÒêð$­\80÷*$­\ e
+x¯BÒêð$­\80÷*$­
+ßIë\8c\1f«\90´:<I+à½
+I«Ã\93´\ 2Þ«\90´\ eA¦MZá\85VÒzýBo/÷\93Öá\8d~:i}zýøéæãçº9i]O]\92Ö÷Û¤õê\93KÏ°õÛÇ\17éíó×2®¤óëøúôþr/lÝ\85åø²»°¼~Û¡°üâ\85¦Â\12ð^\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂRá»°\9cñc\15
+K\87§°\ 4¼W¡°tx
+KÀ{\15
+K\87§°\ 4¼W¡°Tø.,güX\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂÒá),\ 1ïU(,\15¾\vË\19?V¡°tx
+KÀ{\15
+K\87§°\ 4¼W¡°tx
+KÀ{\15
+K\85ïÂrÆ\8fU(,\1d\9eÂ\12ð^\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂRá»°\9cñc\15
+K\87§°\ 4¼W¡°tx
+KÀ{\15
+K\87§°\ 4¼W¡°4øUa9âç*\14\96\ eOa x¯Baéð\14\96\80÷*\14\96\ eOa        x¯Ba©ð]XÎø±:\17\96Î^\85%е    \85¥£SX\82Ý«PX:<\85%à½:\17\96ÊNa9Ó½       \85¥£SX\82Ý«PX:<\85%à½:\17\96Î^\85%е       \85¥¢wa9ÛÇ*\14\96\ eOa  x¯Î\85¥³Wa        tmBaéè\14\96`÷*\14\96
\85å\8c\1f«saéìUX\ 2]\9bPX::\85%ؽ
+\85¥ÃSX\ 2Þ«PX*|\17\963~¬Baéð\14\96\80÷*\14\96\ eOa        x¯Baéð\14\96\80÷*\14\96
\85å\8c\1f«PX:<\85%à½
+\85¥ÃSX\ 2Þ«PX:<\85%à½
+\85¥Âwa9ãÇ*\14\96\ eOa x¯Baéð\14\96\80÷*\14\96\ eOa        x¯Ba©ð]XÎø±
+\85¥ÃSX\ 2Þ«PX:<\85%à½
+\85¥ÃSX\ 2Þ«PX*|\17\963~¬Baéð\14\96\80÷*\14\96\ eOa        x¯Baéð\14\96\80÷*\14\96\ 6¿*,Gü\\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂÒá),\ 1ïU(,\15¾\vË\19?V¡°tx
+KÀ{\15
+K\87§°\ 4¼W¡°tx
+KÀ{\15
+K\85ïÂrÆ\8fU(,\1d\9eÂ\12ð^\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂRá»°\9cñc\15
+K\87§°\ 4¼W¡°tx
+KÀ{u.,\9d½
+K k\13
+KEïÂr¶\8fU(,\1d\9eÂ\12ð^\1d\vKG_
+K\80o\17¡°tp
+K {\15
+K\85ïÂrÆ\8fÕ¹°tö*,\81®M(,\1d\9dÂ\12ì^\85ÂÒá),\ 1ïÕ¹°Tv
\99îM(,\1d\9dÂ\12ì^\85ÂÒá),\ 1ïÕ¹°tö*,\81®M(,\15½\vËÙ>V¡°tx
+KÀ{\15
+K\87§°\ 4¼W¡°tx
+KÀ{\15
+K\85ïÂrÆ\8fU(,\1d\9eÂ\12ð^\85ÂÒá),\ 1ïU(,\1d\9eÂ\12ð^\85ÂRá»°\9cñc\15
+K\87§°\ 4¼W¡°tx
+KÀ{\15
+K\87§°\ 4¼W¡°4øUa9âç*\14\96\ eOa x¯Baéð\14\96\80÷*\14\96\ eOa        x¯Ba©ð]XÎø±
+\85¥ÃSX\ 2Þ«PX:<\85%à½
+\85¥ÃSX\ 2Þ«PX*|\17\963~¬Baéð\14\96\80÷*\14\96\ eOa        x¯Ba9\96\81®°\84\17Z\85åõ\v½}¿_X\ eoôÓ\85åãËÇÏò\1f?ÑÎ\85å\9fO½¯ÂòÇmayf\95\1fÿ_úöô~õ\17~ùÅûþøñ·Þ\9d¬òñõáùù\8f\7f\99w5ñÅï\86¯çn^ñüÅôÇ÷\8f\17úüSÃ\17\ 5~y\1añ^ý\1a\7fzzxþü\8f\1aʾ<LtoÞ\91_\1e^\7f\91ÁÑ\97§ÑîÕ;øå\7f¦\12¿<\8dx¯ÞÁß\1f\97ü\8fg\11¾]ü\9a}þü ÜGû\ 5_O\13}¬ÞÁ?¾/¯Oö\v¾\9eF¼Wïà\1fß\97ï\9f\7fXpøåiÄ{õ\ eþñ½ùö¬¿ì\97§\11ïÕ;\1f\aüñÝyy±_öõ4áÇê\1d|}^²Ãó)Ì\80÷*|
+³Ãó)Ì\80÷*|
+³Ãó)Ì\80÷*|
+³Â÷\8d\80\19?VáF\80Ãs#\0ð^\85\e\ 1\ eÏ\8d\0À{\15n\ 48<7\ 2\0ïU¸\11 ð}#`Æ\8f\11àðÜ\b\0¼WáF\80Ãs#\0ð^\85\e\ 1\ eÏ\8d\0À{\15n\ 4(|ß\b\98ñc\15n\ 48<7\ 2\0ïU¸\11àðÜ\b\0¼WáF\80Ãs#\0ð^\85\e\ 1
+ß7\ 2füX\85\e\ 1\ eÏ\8d\0À{\15n\ 48<7\ 2\0ïU¸\11àðÜ\b\0¼WáF\80Â÷\8d\80\19?VáF\80Ãs#\0ð^\85\e\ 1\ eÏ\8d\0À{\15n\ 48<7\ 2\0ïU¸\11 ð}#`Æ\8f\11àðÜ\b\0¼WáF\80Ãs#\0ð^\85\e\ 1\ eÏ\8d\0À{\15n\ 4\18üêFÀ\88\9f«p#Àá¹\11\0x¯Â\8d\0\87çF\0à½
+7\ 2\1c\9e\e\ 1\80÷*Ü\bPø¾\110ãÇê|#ÀÙëF\0е   7\ 2\1c\9d\e\ 1`÷*Ü\bpxn\ 4\0Þ«ó\8d\0eçFÀL÷&Ü\bptn\ 4\80Ý«p#Àá¹\11\0x¯Î7\ 2\9c½n\ 4\0]\9bp#@ÑûFÀl\1f«p#Àá¹\11\0x¯Î7\ 2\9c½n\ 4\0]\9bp#Àѹ\11\0v¯Â\8d\0\85ï\e\ 13~¬Î7\ 2\9c½n\ 4\0]\9bp#Àѹ\11\0v¯Â\8d\0\87çF\0à½
+7\ 2\14¾o\ 4Ìø±
+7\ 2\1c\9e\e\ 1\80÷*Ü\bpxn\ 4\0Þ«p#Àá¹\11\0x¯Â\8d\0\85ï\e\ 13~¬Â\8d\0\87çF\0à½
+7\ 2\1c\9e\e\ 1\80÷*Ü\bpxn\ 4\0Þ«p#@áûFÀ\8c\1f«p#Àá¹\11\0x¯Â\8d\0\87çF\0à½
+7\ 2\1c\9e\e\ 1\80÷*Ü\bPø¾\110ãÇ*Ü\bpxn\ 4\0Þ«p#Àá¹\11\0x¯Â\8d\0\87çF\0à½
+7\ 2\14¾o\ 4Ìø±
+7\ 2\1c\9e\e\ 1\80÷*Ü\bpxn\ 4\0Þ«p#Àá¹\11\0x¯Â\8d\0\83\b\18ñs\15n\ 48<7\ 2\0ïU¸\11àðÜ\b\0¼WáF\80Ãs#\0ð^\85\e\ 1
+ß7\ 2füX\85\e\ 1\ eÏ\8d\0À{\15n\ 48<7\ 2\0ïU¸\11àðÜ\b\0¼WáF\80Â÷\8d\80\19?VáF\80Ãs#\0ð^\85\e\ 1\ eÏ\8d\0À{\15n\ 48<7\ 2\0ïU¸\11 ð}#`Æ\8f\11àðÜ\b\0¼WáF\80Ãs#\0ð^\9do\ 48{Ý\b\0º6áF\80¢÷\8d\80Ù>VáF\80Ãs#\0ð^\1do\ 48úr#\0àÛE¸\11ààÜ\b\0ºWáF\80Â÷\8d\80\19?Vç\e\ 1Î^7\ 2\80®M¸\11àèÜ\b\0»WáF\80Ãs#\0ð^\9do\ 4(;7\ 2fº7áF\80£s#\0ì^\85\e\ 1\ eÏ\8d\0À{u¾\11àìu#\0èÚ\84\e\ 1\8aÞ7\ 2fûX\85\e\ 1\ eÏ\8d\0À{\15n\ 48<7\ 2\0ïU¸\11àðÜ\b\0¼WáF\80Â÷\8d\80\19?VáF\80Ãs#\0ð^\85\e\ 1\ eÏ\8d\0À{\15n\ 48<7\ 2\0ïU¸\11 ð}#`Æ\8f\11àðÜ\b\0¼WáF\80Ãs#\0ð^\85\e\ 1\ eÏ\8d\0À{\15n\ 4\18üêFÀ\88\9f«p#Àá¹\11\0x¯Â\8d\0\87çF\0à½
+7\ 2\1c\9e\e\ 1\80÷*Ü\bPø¾\110ãÇ*Ü\bpxn\ 4\0Þ«p#Àá¹\11\0x¯Â\8d\0\87çF\0à½
+7\ 2\14¾o\ 4Ìø±
+7\ 2\1c\9e\e\ 1\80÷*Ü\bpxn\ 4\0Þ«p#`ÌÜÝ\8d\0x¡u#àú\85ÞÞïß\b\18Þègo\ 4<}ü3þùýõÛ|# Oýy#àãgÁÜ\bø?ÿýÿýÅ\89\80Ï\féãñëõók÷üùk\ 3÷N\ 4¼<¼}þ\86Óü~ë±\9b÷ûâ@Àå\8eÀW¯3\' »Wçë\ 4\12_× \bïÕñ:\81³×u\ 2 {s¾N éu\9d\80ì^\9d¯\13H|]' ¼W§ë\ 4\92þó:\ 1Á·\8bóu\ 2\aç:\ 1ÐÇê|\9d@âë:\ 1á½:_'\90øºN@x¯Î×      $¾®\13\10Þ«óu\ 2\87ç:\ 1àÇê|\9d@âë:\ 1á½:_'\90øºN@x¯Î×  $¾®\13\10Þ«óu\ 2\87ç:\ 1àÇê|\9d@âë:\ 1á½:_'\90øºN@x¯Î×  $¾®\13\10Þ«óu\ 2\87ç:\ 1àÇê|\9d@âë:\ 1á½:_'\90øºN@x¯Î×  $¾®\13\10Þ«óu\ 2\87ç:\ 1àÇê|\9d@âë:\ 1á½:_'\90øºN@x¯Î×  $¾®\13\10Þ«óu\ 2\87ç:\ 1àÇê|\9d@âë:\ 1á½:_'\90øºN@x¯Î×  $¾®\13\10Þ«óu\ 2\87ç:\ 1àÇê|\9d@âë:\ 1á½:_'\90øºN@x¯Î×  $¾®\13\10Þ«óu\ 2\87ç:\ 1àÇê|\9d@âë:\ 1á½:_'\90øºN@x¯Î×  $¾®\13\10Þ«óu\ 2\85ïë\ 43~®Î×     $¾®\13\10Þ«óu\ 2\89¯ë\ 4\84÷ê|\9d@âë:\ 1á½:_'px®\13\0\8e×  ¤}¹N@tmÎ×       $½®\13\90Ý«óu\ 2\89¯ë\ 4\84÷êx\9dÀÙë:\ 1н9_'\90ôºN@v¯Î×  $¾®\13\10Þ«ãu\ 2i_®\13\10]\9bóu\ 2Gç:\ 1ØÇê|\9d@âë:\ 1á½:^'\90öå:\ 1ѵ9_'\90ôºN@v¯Î×      \1c\9eë\ 4\80\1f«ãu\ 2i_®\13\10]\9bóu\ 2I¯ë\ 4d÷ê|\9d@âë:\ 1á½:_'px®\13\0~¬Î×        $¾®\13\10Þ«óu\ 2\89¯ë\ 4\84÷ê|\9d@âë:\ 1á½:_'px®\13\0~¬Î×  $¾®\13\10Þ«óu\ 2\89¯ë\ 4\84÷ê|\9d@âë:\ 1á½:_'px®\13\0~¬Î×  $¾®\13\10Þ«óu\ 2\89¯ë\ 4\84÷ê|\9d@âë:\ 1á½:_'px®\13\0~¬Î×  $¾®\13\10Þ«óu\ 2\89¯ë\ 4\84÷ê|\9d@âë:\ 1á½:_'px®\13\0~¬Î×  $¾®\13\10Þ«óu\ 2\89¯ë\ 4\84÷ê|\9d@âë:\ 1á½:_'Pø¾N0ãçê|\9d@âë:\ 1á½:_'\90øºN@x¯Î×      $¾®\13\10Þ«óu\ 2\87ç:\ 1àÇê|\9d@âë:\ 1á½:_'\90øºN@x¯Î×  $¾®\13\10Þ«óu\ 2\87ç:\ 1àÇê|\9d@âë:\ 1á½:_'\90øºN@x¯Î×  $¾®\13\10Þ«óu\ 2\87ç:\ 1àÇê|\9d@âë:\ 1á½:_'\90øºN@x¯\8e×  ¤}¹N@tmÎ×       \1c\9dë\ 4`\1f«óu\ 2\89¯ë\ 4\84÷êt\9d\7f^' øvq¾N áu\9d\80è^\9d¯\138<×     \0?VÇë\ 4Ò¾\' º6çë\ 4\92^×     ÈîÕù:\81Ä×u\ 2Â{u¼Nàìu\9d\0èÞ\9c¯\13Hz]' »Wçë\ 4\12_×  \bïÕñ:\81´/×       \88®Íù:\81£s\9d\0ìcu¾N ñu\9d\80ð^\9d¯\13H|]' ¼Wçë\ 4\12_×  \bïÕù:\81Ãs\9d\0ðcu¾N ñu\9d\80ð^\9d¯\13H|]' ¼Wçë\ 4\12_×  \bïÕù:\81Ãs\9d\0ðcu¾N ñu\9d\80ð^\9d¯\13H|]' ¼Wçë\ 4\12_×  \bïÕù:\81Â÷u\82\19?Wçë\ 4\12_×     \bïÕù:\81Ä×u\ 2Â{u¾N ñu\9d\80ð^\9d¯\138<×    \0?Vçë\ 4\12_×       \bïÕù:\81Ä×u\ 2Â{u¾N ñu\9d\80ð^\9d¯\138<×    \0?Vçë\ 4\12_×       \bïÕù:\81Ä×u\ 2Â{u¾N0\17öê:\ 1½Ðå¹\9b\17z\7fº{\9d`z£\9f¾NðñCåËËw8Npyèr\9bàéê6Á/¿üý\7fýÛï\7fûª\ f\7f{ûümνß/ñôðãó\97\93î\9c'XÝöô~+Û¾z½¡Ú>ßd\8a¶G·7!ÙVr\8aíY®Mèµ\95\9c\{\96k\13bm%§Õ\9eåÚ\84RÛÈ;Ô\1eåÞ\84L[É©´g¹6¡ÑVr\12íY®M\b´\95\9c>{\96k\13êl#ï8{\94{\13Òl%§Ì\9eåÚ\84.[Éɲg¹6!ÊVr\9aìY®M(²\8d¼\83ìQîMȱ\95\9c\1a{\96k\13Zl%'Å\9eåÚ\84\10[Éé°g¹6¡Â6ò\8e°G¹7!ÁVr
+ìY®Mè¯\95\9cüz\96k\13âk%§½\9eåÚ\84òÚÈ;¼\1eåÞ\84ìZÉ©®g¹6¡¹Vr\92ëY®M\b®\95\9cÞz\96k\13jk#ïØz\94{\13Rk%§´\9eåÚ\84ÎZÉɬg¹6!²Vr\1aëY®M(¬\8d¼\ 3ëQîMÈ«\95\9cºz\96k\13Új%'­\9eåÚ\84°ZÉéªg¹6¡ª\16òUT=ÉÇ&$ÕJNQ=˵      =µ\92\93SÏrmBL­ä´Ô³\\9bPR\ey\87Ô£Ü\9bsF­àUQÏîí"4ÔÊMB=õ    \ 1µ\92ÓOÏrmÎõ´\81\13O\8fn-B:­Ü\94Ó3\\9bÐM+9Ùô,×æ\1cM+x5Ó³{»\bÅ´qw0=½   ¹´\92SKÏrmέ´\82W*=»·\8b\10J+7\9dô\f×&TÒFÞ\91ô(÷æ\9cH+x\15Ò³{»\b}´r\93GÏpmB\1c­ä´Ñ³\\9bPF\ey\87Ñ£Ü\9b\90E+9Uô,×&4ÑJN\12=˵       A´\92ÓCÏrmB\r\1dC\8froB
+­ä\94г\\9bÐA+9\19ô,×&DÐJN\ 3=˵       \ 5´\91w\0=ʽ        ù³\92S?ÏrmBû¬ä¤Ï³\\9b\10>+9Ýó,×&TÏFÞÑó(÷&$ÏJNñ<˵     ½³\92\93;ÏrmBì¬ä´Î³\\9bP:\ey\87ΣÜ\9b\909+9\95ó,×&4ÎJNâ<˵     \81³\92Ó7ÏrmBÝ,䫸y\92\8fMH\9b\95\9c²y\96k\13ºf%'k\9eåÚ\84¨YÉi\9ag¹6¡h6ò\ e\9aG¹7!gVrjæY®Mh\99\95\9c\94y\96k\13Bf%§c\9eåÚ\84\8aÙÈ;b\1eåÞ\84\84YÉ)\98g¹6¡_VròåY®M\88\97\95\9cvy\96k\13Êe#ïpy\94{\13²e%§Z\9eåÚ\84fYÉI\96g¹6ç`YÁ«W\9eÝÛE¨\95\8d»cå\11îMH\95\95\9cRy\96ksì\94\95\94gõf\ f"e¥¦Q\9eÝÚ\84BÙÈ;P\1eåÞ\9cód\ 5¯:yvo\17¡MVnÒä\19®M\b\93\95\9c.y\96ks®\92\r\9c(ytk\11\92då¦H\9eáÚ\84\1eYÉÉ\91g¹6ç\18YÁ«E\9eÝÛE(\91\8d»Cä\11îMÈ\90\95\9c
+y\96k\13\1ad%'A\9eåÚ\84\0YÉé\8fg¹6¡>6ò\8e\8fG¹7!=VrÊãY®Mè\8e\95\9cìx\96k\13¢c%§9\9eåÚ\84âØÈ;8\1eåÞ\84ÜXÉ©\8dg¹6¡5VrRãY®M\b\8d\95\9cÎx\96k\13*c!_EÆ\93|lBb¬ä\14Ƴ\\9bÐ\17+9yñ,×&ÄÅJN[<˵        e±\91wX<ʽ        Y±\92S\15ÏrmBS¬ä$ų\\9b\10\14+9=ñ,×&ÔÄFÞ1ñ(÷&¤ÄJNI<˵     \1d±\92\93\11ÏrmBD|?\83µ\rñü6+!¾z\9b÷o÷\vâû¯óÓ\ 1ñë·\87\97÷\97W(\88ÿ|*  ñómBü\9fþöÿýòU¸ûöýó\17üÖ_ûÓ\rñnj¯&¦¨öú-\87ªö\8b\17\9a²ZÀ{\15ÂZ\87§¬\ 5¼W¡­Uø\8ekgüX\85¼Öáék\ 1ïU(l\1d\9eÄ\16ð^\85ÈÖá©l\ 1ïUèl\15¾CÛ\19?V!µuxZ[À{\15j[\87\ 5¼W!¸ux\8a[À{\15\9a[\85ïèvÆ\8fUÈn\1d\9eî\16ð^\85òÖáIo\ 1ïU\88o\1d\9eú\16ð^\85þVá;À\9dñc\15\12\\87§Á\ 5¼W¡Âux2\À{\15B\\87§Ä\ 5¼W¡ÅUø\8eqgüX\85\1c×áéq\ 1ïU(r\1d\9e$\17ð^\85(×á©r\ 1ïUèr\15¾ÃÜ\19?V!ÍuxÚ\À{\15ê\\87\ 5¼W!Ðux
+]À{\15\1a]\85ïHwÆ\8fUÈt\1d\9eN\17ð^\85R×áIu\ 1ïU\88u\1d\9eZ\17ð^\85^×àWÁî\88\9f«\90ì:<Í.à½
+Õ®Ã\93í\ 2Þ«\10î:<å.à½
+í®Âw¼;ãÇê\9cï:{õ»@×&\14¼\8e\vv¯BÄëðT¼\80÷êÜñ*;!ïL÷&¤¼\8e\vv¯BÍëðä¼\80÷ê\1cô:{\15½@×&4½\8aÞQïl\1f«\90õ:<]/à½:\97½Î^i/е       q¯£S÷\82Ý«Ð÷*|\a¾3~¬Î\89¯³Wã\vtmBåëèd¾`÷*\84¾\ e\vx¯Bë«ð\1dûÎø±
+¹¯ÃÓû\ 2Þ«Pü:<É/à½
+ѯÃSý\ 2Þ«Ðý*|\87¿3~¬Búëð´¿\80÷*Ô¿\ e\vx¯B\0ìð\14À\80÷*4À
\11ð\8c\1f«\90\ 1;<\1d0à½
+%°Ã\93\ 2\ 3Þ«\10\ 3;<50à½
+=°Âw\10<ãÇ*$Á\ eO\13\fx¯B\15ìðdÁ\80÷*\84Á\ eO\19\fx¯B\e¬ð\1d\aÏø±
+y°ÃÓ\a\ 3Þ«P\b;<\890à½
+\91°ÃS   \ 3ޫР   \eü*\14\1eñs\15Ra\87§\15\ 6¼W¡\16vxraÀ{\15\82a\87§\18\ 6¼W¡\19\8e\86güX\85lØáé\86\ 1ïU(\87\1d\9et\18ð^\85xØá©\87\ 1ïUè\87\15¾\ 3â\19?V!!vx\1abÀ{\15*b\87'#\ 6¼W!$vxJbÀ{\15Zb\85ï\98\8f\89\1d\9e\9e\18ð^\85¢ØáI\8a\ 1ïÕ9*vöª\8a\81®Mè\8a\15½ÃâÙ>V!-vxÚbÀ{u¬\8b\1d\8b\ 1¾]\84ÀØÁ)\8c\81îUh\8c\15¾#ã\19?VçÌØÙ«3\ 6º6¡4vtRc°{\15bc\87§6\ 6¼WçÞXÙ   \8egº7!9vt\9ac°{\15ªc\87';\ 6¼WçðØÙ«<\ 6º6¡=Vô\8e\8fgûX\85üØáé\8f\ 1ïU(\90\1d\9e\ 4\19ð^\85\bÙá©\90\ 1ïUè\90\15¾Cä\19?V!EvxZdÀ{\15jd\87'G\ 6¼W!Hvx\8adÀ{\15\9ad\85ï(yÆ\8f\92\1d\9e.\19ð^\852ÙáI\93\ 1ïU\88\93\1d\9e:\19ð^\85>ÙàW\81ò\88\9f«\90(;<\8d2à½
+\95²Ã\93)\ 3Þ«\10*;<¥2à½
+­²Âw¬<ãÇ*äÊ\ e\fx¯B±ìð$Ë\80÷*DË\ e\fx¯B·¬ð\1d.Ïø±
+é²ÃÓ.\ 3Þ«P/;<ù2à½
+\ 1ó\10áÚ\82\19^h%Ì×/ôþý~Ã<¼ÑOGÌß\9f\1e>þA÷\ 4\11ózê\121¿ÜFÌ¿\1d¿\aþøôðþG]{5\7f\16Ìï?^¾Ý+\98\1f_\1eÞþø\15§ñ\ 5×c7/xþZúãëÃóóç¿ñûâu¾ /O£Ý«wð÷\87·§Ï?°8üò4â½ú5þôôðüùßS\94}y\98èÞ¼#¿<¼þx\7fµôåi´{õ\ eþúñ3û\ fû5_O#Þ«wð??\9bÛÑ\97\ fû\ 6øv\11>î[Áûó¾gúX\85OüvxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \14¾Ï\13Ìø±
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\85ïó\ 43~¬Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9e@áû<Á\8c\1f«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'Pø>O0ãÇ*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \14¾Ï\13Ìø±
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\85ïó\ 43~¬Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9e@áû<Á\8c\1f«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'0øÕy\82\11?Wá<\81Ãs\9e\0ð^\85ó\ 4\ eÏy\ 2À{\15Î\138<ç       \0ïU8O ð}\9e\8fÕù<\81³×y\ 2 k\13Î\138:ç    ÀîU8Oàð\9c'\0¼Wçó\ 4ÊÎy\82\99îM8Oàè\9c'\0»Wá<\81Ãs\9e\0ð^\9dÏ\138{\9d'\0º6á<\81¢÷y\82Ù>Vá<\81Ãs\9e\0ð^\9dÏ\138{\9d'\0º6á<\81£s\9e\0ì^\85ó\ 4
+ßç     füX\9dÏ\138{\9d'\0º6á<\81£s\9e\0ì^\85ó\ 4\ eÏy\ 2À{\15Î\13(|\9f'\98ñc\15Î\138<ç \0ïU8Oàð\9c'\0¼Wá<\81Ãs\9e\0ð^\85ó\ 4
+ßç     füX\85ó\ 4\ eÏy\ 2À{\15Î\138<ç      \0ïU8Oàð\9c'\0¼Wá<\81Â÷y\82\19?Vá<\81Ãs\9e\0ð^\85ó\ 4\ eÏy\ 2À{\15Î\138<ç  \0ïU8O ð}\9e\8fU8Oàð\9c'\0¼Wá<\81Ãs\9e\0ð^\85ó\ 4\ eÏy\ 2À{\15Î\13(|\9f'\98ñc\15Î\138<ç        \0ïU8Oàð\9c'\0¼Wá<\81Ãs\9e\0ð^\85ó\ 4\ 6¿:O0âç*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \14¾Ï\13Ìø±
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\85ïó\ 43~¬Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9e@áû<Á\8c\1f«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½:\9f'pö:O\0tmÂy\ 2Eïó\ 4³}¬Ây\ 2\87ç<\ 1à½:\9e'pôå<\ 1À·\8bp\9eÀÁ9O\0t¯Ây\ 2\85ïó\ 43~¬Îç       \9c½Î\13\0]\9bp\9eÀÑ9O\0v¯Ây\ 2\87ç<\ 1à½:\9f'PvÎ\13ÌtoÂy\ 2Gç<\ 1ؽ
+ç      \1c\9eó\ 4\80÷ê|\9eÀÙë<\ 1е        ç       \14½Ï\13Ìö±
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\85ïó\ 43~¬Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9e@áû<Á\8c\1f«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'0øÕy\82\11?Wá<\81Ãs\9e\0ð^\85ó\ 4\ eÏy\ 2À{\15Î\138<ç       \0ïU8O ð}\9e\8fU8Oàð\9c'\0¼Wá<\81Ãs\9e\0ð^\85ó\ 4\ eÏy\ 2À{\15Î\13(|\9f'\98ñc\15Î\138<ç        \0ïU8Oàð\9c'\0¼Wá<ÁPØÛó\ 4ðBë<Áõ\vMç   \867úéó\ 4\ f\1f?Û½Áy\82õÔå<Á·ëó\ 4\7fÿí×\7fùíË.þûÛÕ_úÅk<?|ûöt÷@Á.ÖÇwÜÅúõK\ eÅú\17/4\15ë\80÷êX¬;úR¬\ 3\bź\82w±>ÓÇ*\14ë\ e\ ex¯B±îð\14ë\80÷*\14ë\ e\ ex¯B±®ð]¬Ïø±
+źÃS¬\ 3Þ«P¬;<Å:à½
+źÃS¬\ 3Þ«P¬+|\17ë3~¬B±îð\14ë\80÷*\14ë\ e\ ex¯B±îð\14ë\80÷*\14ë
+ßÅú\8c\1f«P¬;<Å:à½
+źÃS¬\ 3Þ«P¬;<Å:à½
+źÂw±>ãÇ*\14ë\ e\ ex¯B±îð\14ë\80÷*\14ë\ e\ ex¯B±®ð]¬Ïø±
+źÃS¬\ 3Þ«P¬;<Å:à½
+źÃS¬\ 3Þ«P¬+|\17ë3~¬B±îð\14ë\80÷*\14ë\ e\ ex¯B±îð\14ë\80÷*\14ë
+ßÅú\8c\1f«P¬;<Å:à½
+źÃS¬\ 3Þ«P¬;<Å:à½
+źÁ¯\8aõ\11?W¡Xwx\8auÀ{\15\8au\87§X\a¼W¡Xwx\8auÀ{\15\8au\85ïb}Æ\8fÕ¹Xwö*Ö\81®M(Ö\1d\9db\1dì^\85bÝá)Ö\ 1ïÕ¹XWv\8aõ\99îM(Ö\1d\9db\1dì^\85bÝá)Ö\ 1ïÕ¹Xwö*Ö\81®M(Ö\15½\8bõÙ>V¡Xwx\8auÀ{u.Ö\9d½\8au k\13\8auG§X\a»W¡XWø.ÖgüX\9d\8bug¯b\1dèÚ\84bÝÑ)ÖÁîU(Ö\1d\9eb\1dð^\85b]á»X\9fñc\15\8au\87§X\a¼W¡Xwx\8auÀ{\15\8au\87§X\a¼W¡XWø.ÖgüX\85bÝá)Ö\ 1ïU(Ö\1d\9eb\1dð^\85bÝá)Ö\ 1ïU(Ö\15¾\8bõ\19?V¡Xwx\8auÀ{\15\8au\87§X\a¼W¡Xwx\8auÀ{\15\8au\85ïb}Æ\8fU(Ö\1d\9eb\1dð^\85bÝá)Ö\ 1ïU(Ö\1d\9eb\1dð^\85b]á»X\9fñc\15\8au\87§X\a¼W¡Xwx\8auÀ{\15\8au\87§X\a¼W¡X7øU±>âç*\14ë\ e\ ex¯B±îð\14ë\80÷*\14ë\ e\ ex¯B±®ð]¬Ïø±
+źÃS¬\ 3Þ«P¬;<Å:à½
+źÃS¬\ 3Þ«P¬+|\17ë3~¬B±îð\14ë\80÷*\14ë\ e\ ex¯B±îð\14ë\80÷*\14ë
+ßÅú\8c\1f«P¬;<Å:à½
+źÃS¬\ 3Þ«s±îìU¬\ 3]\9bP¬+z\17ë³}¬B±îð\14ë\80÷êX¬;úR¬\ 3\bź\83\ 3Ý«P¬+|\17ë3~¬Îź³W±\ etmB±îè\14ë`÷*\14ë\ e\ ex¯Îź²S¬ÏtoB±îè\14ë`÷*\14ë\ e\ ex¯Îź³W±\ etmB±®è]¬Ïö±
+źÃS¬\ 3Þ«P¬;<Å:à½
+źÃS¬\ 3Þ«P¬+|\17ë3~¬B±îð\14ë\80÷*\14ë\ e\ ex¯B±îð\14ë\80÷*\14ë
+ßÅú\8c\1f«P¬;<Å:à½
+źÃS¬\ 3Þ«P¬;<Å:à½
+źÁ¯\8aõ\11?W¡Xwx\8auÀ{\15\8au\87§X\a¼W¡Xwx\8auÀ{\15\8au\85ïb}Æ\8fU(Ö\1d\9eb\1dð^\85bÝá)Ö\ 1ïU(Ö\1d\9eb\1dð^\85b]á»X\9fñc\15\8au\87§X\a¼W¡Xwx\8auÀ{\15\8aõ!¹¶Å:¼Ð*Ö¯_èýí~±>¼ÑO\17ë\1f_\8dïÏ\1f?×ÍÅúzêR¬\7fßÅúÿõë\7fûåìÕ?ÿóÉ÷ÏßÒ¿\9a?¿xooo¯÷zõÇ\97\87·?~Åi|ÁõØÍ\v\99ö¯\ fÏÏ\9fÿÆï\8b×ù\82¾<\8dv¯ÞÁß\1fÞ\9e>ÿÀâðËÓ\88÷ê\9dTþéáùó¿§(ûò0ѽyG^\87\ 4\1c\9dó\ 4`÷*\9c'pxÎ\13\0Þ«ãy\ 2G_Î\13\0\bç     \14¼Ï\13Ìô±
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\85ïó\ 43~¬Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9e@áû<Á\8c\1f«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'Pø>O0ãÇ*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \14¾Ï\13Ìø±
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\85ïó\ 43~¬Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9e@áû<Á\8c\1f«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'Pø>O0ãÇ*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \f~u\9e`ÄÏU8Oàð\9c'\0¼Wá<\81Ãs\9e\0ð^\85ó\ 4\ eÏy\ 2À{\15Î\13(|\9f'\98ñcu>Oàìu\9e\0èÚ\84ó\ 4\8eÎy\ 2°{\15Î\138<ç  \0ïÕù<\81²s\9e`¦{\13Î\138:ç      ÀîU8Oàð\9c'\0¼Wçó\ 4Î^ç      \80®M8O è}\9e\8fU8Oàð\9c'\0¼Wçó\ 4Î^ç    \80®M8Oàè\9c'\0»Wá<\81Â÷y\82\19?Vçó\ 4Î^ç    \80®M8Oàè\9c'\0»Wá<\81Ãs\9e\0ð^\85ó\ 4
+ßç     füX\85ó\ 4\ eÏy\ 2À{\15Î\138<ç      \0ïU8Oàð\9c'\0¼Wá<\81Â÷y\82\19?Vá<\81Ãs\9e\0ð^\85ó\ 4\ eÏy\ 2À{\15Î\138<ç  \0ïU8O ð}\9e\8fU8Oàð\9c'\0¼Wá<\81Ãs\9e\0ð^\85ó\ 4\ eÏy\ 2À{\15Î\13(|\9f'\98ñc\15Î\138<ç        \0ïU8Oàð\9c'\0¼Wá<\81Ãs\9e\0ð^\85ó\ 4
+ßç     füX\85ó\ 4\ eÏy\ 2À{\15Î\138<ç      \0ïU8Oàð\9c'\0¼Wá<\81Á¯Î\13\8cø¹
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\85ïó\ 43~¬Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9e@áû<Á\8c\1f«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'Pø>O0ãÇ*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Îç   \9c½Î\13\0]\9bp\9e@Ñû<Ál\1f«p\9eÀá9O\0\8eç    \1c}9O\0ðí"\9c'ppÎ\13\0Ý«p\9e@áû<Á\8c\1f«óy\ 2g¯ó\ 4@×&\9c'ptÎ\13\80Ý«p\9eÀá9O\0x¯Îç       \94\9dó\ 4\9bp\9eÀÑ9O\0v¯Ây\ 2\87ç<\ 1à½:\9f'pö:O\0tmÂy\ 2Eïó\ 4³}¬Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'pxÎ\13\0Þ«p\9e@áû<Á\8c\1f«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \1c\9eó\ 4\80÷*\9c'Pø>O0ãÇ*\9c'pxÎ\13\0Þ«p\9eÀá9O\0x¯Ây\ 2\87ç<\ 1à½
+ç      \f~u\9e`ÄÏU8Oàð\9c'\0¼Wá<\81Ãs\9e\0ð^\85ó\ 4\ eÏy\ 2À{\15Î\13(|\9f'\98ñc\15Î\138<ç     \0ïU8Oàð\9c'\0¼Wá<\81Ãs\9e\0ð^\85ó\ 4
+ßç     füX\85ó\ 4\ eÏy\ 2À{\15Î\138<ç      \0ïU8O0\16öî<\ 1¼Ð:OpýB?\9eî\9f'\18Þè8Oð\1dÎ\13¬¿ýæó\ 4ë©Ëy\82×}\9eà?ÿòÛoÿüë¿\9c\8döãÇ\ f«?®þÒ{_¾÷{\a
+\12Ë\8f¯\98Xþú\15\87\8b×\99by°{\15by\87'\96\a¼WÇXÞÑ\97X\1eàÛE\88å\15¼cù\99>V!\96wxbyÀ{\15by\87'\96\a¼W!\96wxbyÀ{\15by\85ïX~Æ\8fU\88å\1d\9eX\1eð^\85XÞá\89å\ 1ïU\88å\1d\9eX\1eð^\85X^á;\96\9fñc\15by\87'\96\a¼W!\96wxbyÀ{\15by\87'\96\a¼W!\96\8eågüX\85XÞá\89å\ 1ïU\88å\1d\9eX\1eð^\85XÞá\89å\ 1ïU\88å\15¾cù\19?V!\96wxbyÀ{\15by\87'\96\a¼W!\96wxbyÀ{\15by\85ïX~Æ\8fU\88å\1d\9eX\1eð^\85XÞá\89å\ 1ïU\88å\1d\9eX\1eð^\85X^á;\96\9fñc\15by\87'\96\a¼W!\96wxbyÀ{\15by\87'\96\a¼W!\96\8eågüX\85XÞá\89å\ 1ïU\88å\1d\9eX\1eð^\85XÞá\89å\ 1ïU\88å\r~\15Ë\8fø¹
+±¼Ã\13Ë\ 3Þ«\10Ë;<±<à½
+±¼Ã\13Ë\ 3Þ«\10Ë+|Çò3~¬Î±¼³W,\ ftmB,ïèÄò`÷*Äò\ eO,\ fx¯Î±¼²\13ËÏtoB,ïèÄò`÷*Äò\ eO,\ fx¯Î±¼³W,\ ftmB,¯è\1dËÏö±
+±¼Ã\13Ë\ 3Þ«s,ïì\15Ë\ 3]\9b\10Ë;:±<ؽ
+±¼Âw,?ãÇê\1cË;{Åò@×&Äò\8eN,\ fv¯B,ïðÄò\80÷*Äò
+ß±ü\8c\1f«\10Ë;<±<à½
+±¼Ã\13Ë\ 3Þ«\10Ë;<±<à½
+±¼Âw,?ãÇ*Äò\ eO,\ fx¯B,ïðÄò\80÷*Äò\ eO,\ fx¯B,¯ð\1dËÏø±
+±¼Ã\13Ë\ 3Þ«\10Ë;<±<à½
+±¼Ã\13Ë\ 3Þ«\10Ë+|Çò3~¬B,ïðÄò\80÷*Äò\ eO,\ fx¯B,ïðÄò\80÷*Äò
+ß±ü\8c\1f«\10Ë;<±<à½
+±¼Ã\13Ë\ 3Þ«\10Ë;<±<à½
+±¼Á¯bù\11?W!\96wxbyÀ{\15by\87'\96\a¼W!\96wxbyÀ{\15by\85ïX~Æ\8fU\88å\1d\9eX\1eð^\85XÞá\89å\ 1ïU\88å\1d\9eX\1eð^\85X^á;\96\9fñc\15by\87'\96\a¼W!\96wxbyÀ{\15by\87'\96\a¼W!\96\8eågüX\85XÞá\89å\ 1ïU\88å\1d\9eX\1eð^\9dcyg¯X\1eèÚ\84X^Ñ;\96\9fíc\15by\87'\96\a¼WÇXÞÑ\97X\1eàÛE\88å\1d\9cX\1eè^\85X^á;\96\9fñcu\8eå\9d½by k\13byG'\96\a»W!\96wxbyÀ{u\8eå\95\9dX~¦{\13byG'\96\a»W!\96wxbyÀ{u\8eå\9d½by k\13byEïX~¶\8fU\88å\1d\9eX\1eð^\85XÞá\89å\ 1ïU\88å\1d\9eX\1eð^\85X^á;\96\9fñc\15by\87'\96\a¼W!\96wxbyÀ{\15by\87'\96\a¼W!\96\8eågüX\85XÞá\89å\ 1ïU\88å\1d\9eX\1eð^\85XÞá\89å\ 1ïU\88å\r~\15Ë\8fø¹
+±¼Ã\13Ë\ 3Þ«\10Ë;<±<à½
+±¼Ã\13Ë\ 3Þ«\10Ë+|Çò3~¬B,ïðÄò\80÷*Äò\ eO,\ fx¯B,ïðÄò\80÷*Äò
+ß±ü\8c\1f«\10Ë;<±<à½
+±¼Ã\13Ë\ 3Þ«\10ËSí-byx¡\15Ë_¿Ð\8fçû±üðFG,ÿm\8eå\7füxøx\8dos+¿\1eº¤òoW©ü?ÿþËoý¢O\9fÏ\7f{|û\87«ñ~\83§\87×Ç\8f?¾Üéä\1f\9f\1e\19ô\ 2¯\97Ç®ßïü\9dôÇ\97\87·\97ׯ^æ\vøÏgɽ]¼Ã¾><?¿¾I÷ò0ÁµyG~\7fx{z{\91òåa\92kóN\98ÿçá\ 2\ 5¯[\b³[\8bó%\ 4ç®C\b\0×æ|\ 6ÁÉë
+\ 2ȵ9Ý@pî\9f'\10@½Ù\9b\ f (5÷\ ff·7çë\aN^Ç\ f@®Íùô\81\93×å\ 3\90ks¾{àäuö\0äÚ\9c\8f\1e(97\ ff¹7ç\8b\aN^\a\ f@®ÍùÜ\81\93×µ\ 3\90ks¾uàäuê\0äÚ\9c\ f\1d(9w\ ef¹7ç+\aN^G\ e@®ÍùÄ\81\93×\85\ 3\90ks¾oàäuÞ\0äÚ\9c\8f\e(9·\rf¹7çË\ 6N^\87\r@®Íù¬\81\93×U\ 3\90ks¾iàäuÒ\0äÚ\9c\ f\1a(9÷\ff¹7çk\ 6N^Ç\f@®Íù\94\81\93×%\ 3\90ks¾càäuÆ\0äÚ\9c\8f\18(97\ff¹7ç\v\ 6N^\a\f@®Íù|\81\93×õ\ 2\90ks¾]àäuº\0äÚ\9c\ f\17(9w\vf¹7ç«\ 5N^G\v@®Íùd\81\93×Å\ 2\90ks¾Wàäu®\0äÚ\9c\8f\15(9·
+f¹7çK\ 5N^\87
+@®ÍùL\81\93×\95\ 2\90ks¾Qàäu¢\0äÚ\9c\ f\14\18yß'\18åcs¾Nàäu\9c\0äÚ\9cO\138y]&\0¹6ç»\ 4N^g     @®Íù(\81\92s\93`\96{s¼HààËA\ 2po\17çs\ 4Î]×\b\0®Íù\16\81\93×)\ 2\90ks<D àu\87`vkq¾BàÜu\84\0àÚ\9cO\108y] \0¹6Çû\ 3\ e¾\9c\1f\0÷vq>> ÜÜ\1e\98áÞ\9c/\ f8y\1d\1e\0¹6dz\ 3\ e¾\\1d\0÷vq¾9àÜur\0àÚ\9c\ f\ e(9÷\ 6f¹7Çk\ 3\ e¾\1c\e\0÷vq>5àÜui\0àÚ\9cï\f8y\9d\19\0¹6ç#\ 3\8d\81YîÍùÂ\80\93×\81\ 1\90ks>/àäu]\0äÚ\9co\v8y\9d\16\0¹6çÃ\ 2JÎ]\81YîÍùª\80\93×Q\ 1\90ks>)àäuQ\0äÚ\9cï        8y\9d\13\0¹6çc\ 2JÎ-\81YîÍù\92\80\93×!\ 1\90ks>#àäuE\0äÚ\9co\b8y\9d\10\0¹6ç\ 3\ 2JÎý\80YîÍùz\80\93×ñ\0\90ks>\1dàäu9\0äÚ\9cï\ 68y\9d\r\0¹6ç£\ 1JÎÍ\80YîÍùb\80\93×Á\0\90ks>\17àäu-\0äÚ\9co\ 58y\9d
+\0¹6çC\ 1FÞw\ 2FùØ\9c¯\ 48y\1d    \0¹6ç\13\ 1N^\17\ 2@®Íù>\80\93×y\0\90ks>\ e äÜ\ 6\98åÞ\9c/\ 38y\1d\ 6\0¹6ç³\0N^W\ 1@®Íù&\80\93×I\0\90ks>\b äÜ\ 3\98åÞ\9c¯\ 18y\1d\ 3\0¹6çS\0N^\97\0@®Íù\ e\80\93×\19\0\90ks>\ 2 äÜ\0\98åÞ\9c/\08y\1d\0\0¹6çüßÉ«þ\a¹6ÇößÁ\97ô\1fÜÛÅ9üWnºÿ\19î͹úwò\8aþA®Í)ùwî\9fÅ?¨7{sïïÔ\95û\83[\9bsì¯ä´þ³Ü\9bcéïàKè\ fîíâ\9cù;wUþ\0×æÜø;y%þ ×æ\18ø+xõý³[\8bsÝïÜ\15÷\ 3\\9bsÚïäUö\83\\9bc×ïàKÖ\ fîíâ\1cõ+7Mÿ\f÷æ\ô;y\ 5ý ×æ\9có;yÕü ×æÜò;y¥ü ×æ\1cò+9\1dÿ,÷æ\ñ;yEü ×æ\9cð;y\15ü ×æÜï;yåû ×æ\1cï+9íþ,÷æ\î;y\85û ×æ\9cí;yUû ×æÜì;y%û ×æ\1cì\ey÷ú£|lε¾\93\ frmΩ¾\93\ frmÎ\9d¾\93\ frmÎ\91¾\92ÓèÏroÎ\85¾\93\ frmÎy¾\93W\9d\ frmÎm¾\93W\9a\ frmÎa¾\92ÓåÏroÎU¾\93W\94\ frmÎI¾\93W\91\ frmÎ=þ\10\95Ë\1c\1fÞæòØõÛ\f1þð:\1f?ô¿~ü1âó7\95\94üþøãë\ f®\7f{zx{ùã\87\8a\87÷§×\1f\97Çë×úüű÷\1foÿ°\9eú|­\7fþïw_ëjl\81ÿ\13\13\ ehÃendstream
+endobj
+669 0 obj <<
+/Type /Page
+/Contents 670 0 R
+/Resources 668 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 515 0 R
+/Annots [ 672 0 R 673 0 R 674 0 R 675 0 R 676 0 R 677 0 R 678 0 R 679 0 R 680 0 R 681 0 R 682 0 R 683 0 R 684 0 R 685 0 R 686 0 R 687 0 R 688 0 R 689 0 R 690 0 R 691 0 R 692 0 R 693 0 R 694 0 R 695 0 R 696 0 R 697 0 R 698 0 R 699 0 R 700 0 R 701 0 R 702 0 R 703 0 R 704 0 R 705 0 R 706 0 R 707 0 R 708 0 R 709 0 R 710 0 R 711 0 R 712 0 R 713 0 R 714 0 R 715 0 R 716 0 R 717 0 R 718 0 R 719 0 R 720 0 R 721 0 R 722 0 R 723 0 R 724 0 R 725 0 R 726 0 R 727 0 R 728 0 R 729 0 R 730 0 R 731 0 R 732 0 R 733 0 R 734 0 R 735 0 R 736 0 R 737 0 R 738 0 R 739 0 R 740 0 R 741 0 R 742 0 R 743 0 R 744 0 R 745 0 R 746 0 R 747 0 R 748 0 R 749 0 R 750 0 R 751 0 R 752 0 R 753 0 R 754 0 R 755 0 R 756 0 R 757 0 R 758 0 R 759 0 R 760 0 R 761 0 R 762 0 R 763 0 R 764 0 R 765 0 R 766 0 R 767 0 R ]
+>> endobj
+672 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 705.1906 296.9253 716.0945]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteConfFileFromNodeGroup) >>
+>> endobj
+673 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 705.1906 538.9788 716.0945]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteConfFileFromNodeGroup) >>
+>> endobj
+674 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 694.1769 271.4708 703.1431]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteConfFileFromNode) >>
+>> endobj
+675 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 694.1769 538.9788 703.1431]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteConfFileFromNode) >>
+>> endobj
+676 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 681.2254 228.303 690.1917]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteConfFile) >>
+>> endobj
+677 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 681.2254 538.9788 690.1917]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteConfFile) >>
+>> endobj
+678 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 666.3363 209.0756 677.2402]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteKey) >>
+>> endobj
+679 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 666.3363 538.9788 677.2402]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteKey) >>
+>> endobj
+680 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 653.3849 228.7518 664.2888]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteKeyType) >>
+>> endobj
+681 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 653.3849 538.9788 664.2888]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteKeyType) >>
+>> endobj
+682 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 640.4334 227.7351 651.3374]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteMessage) >>
+>> endobj
+683 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 640.4334 538.9788 651.3374]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteMessage) >>
+>> endobj
+684 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 629.5393 258.6292 638.3859]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteNetworkMethod) >>
+>> endobj
+685 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 629.5393 538.9788 638.3859]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteNetworkMethod) >>
+>> endobj
+686 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 614.5306 247.3119 625.4345]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteNetworkType) >>
+>> endobj
+687 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 614.5306 538.9788 625.4345]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteNetworkType) >>
+>> endobj
+688 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 601.5791 283.0776 612.4831]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteNodeFromNodeGroup) >>
+>> endobj
+689 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 601.5791 538.9788 612.4831]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteNodeFromNodeGroup) >>
+>> endobj
+690 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 590.5654 255.4213 599.5316]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteNodeFromPCU) >>
+>> endobj
+691 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 590.5654 538.9788 599.5316]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteNodeFromPCU) >>
+>> endobj
+692 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 575.6763 239.9098 586.5802]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteNodeGroup) >>
+>> endobj
+693 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 575.6763 538.9788 586.5802]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteNodeGroup) >>
+>> endobj
+694 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 564.7821 249.2147 573.6288]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteNodeNetwork) >>
+>> endobj
+695 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 564.7821 538.9788 573.6288]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteNodeNetwork) >>
+>> endobj
+696 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 551.8307 214.4553 560.6774]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteNode) >>
+>> endobj
+697 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 551.8307 538.9788 560.6774]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteNode) >>
+>> endobj
+698 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 538.8793 212.2535 547.7259]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeletePCU) >>
+>> endobj
+699 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 538.8793 538.9788 547.7259]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeletePCU) >>
+>> endobj
+700 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 525.9278 210.5797 534.7745]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeletePeer) >>
+>> endobj
+701 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 525.9278 538.9788 534.7745]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeletePeer) >>
+>> endobj
+702 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 512.8568 257.0847 521.8231]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeletePersonFromSite) >>
+>> endobj
+703 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 512.8568 538.9788 521.8231]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeletePersonFromSite) >>
+>> endobj
+704 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 500.025 261.5081 508.8716]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeletePersonFromSlice) >>
+>> endobj
+705 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 500.025 538.9788 508.8716]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeletePersonFromSlice) >>
+>> endobj
+706 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 487.0735 219.9943 495.9202]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeletePerson) >>
+>> endobj
+707 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 487.0735 538.9788 495.9202]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeletePerson) >>
+>> endobj
+708 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 474.1221 260.4024 482.9688]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteRoleFromPerson) >>
+>> endobj
+709 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 474.1221 538.9788 482.9688]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteRoleFromPerson) >>
+>> endobj
+710 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 461.0511 211.6955 470.0173]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteRole) >>
+>> endobj
+711 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 461.0511 538.9788 470.0173]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteRole) >>
+>> endobj
+712 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 448.2192 223.3217 457.0659]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteSession) >>
+>> endobj
+713 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 448.2192 538.9788 457.0659]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteSession) >>
+>> endobj
+714 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 435.2678 208.3778 444.1145]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteSite) >>
+>> endobj
+715 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 435.2678 538.9788 444.1145]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteSite) >>
+>> endobj
+716 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 422.3164 248.5765 431.163]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteSliceAttribute) >>
+>> endobj
+717 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 422.3164 538.9788 431.163]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteSliceAttribute) >>
+>> endobj
+718 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 407.3077 268.2527 418.2116]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteSliceAttributeType) >>
+>> endobj
+719 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 407.3077 538.9788 418.2116]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteSliceAttributeType) >>
+>> endobj
+720 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 396.4135 259.8444 405.2602]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteSliceFromNodes) >>
+>> endobj
+721 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 396.4135 538.9788 405.2602]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteSliceFromNodes) >>
+>> endobj
+722 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 383.4621 262.6136 392.3087]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteSliceInstantiation) >>
+>> endobj
+723 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 383.4621 538.9788 392.3087]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteSliceInstantiation) >>
+>> endobj
+724 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 370.5107 212.8012 379.3573]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteSlice) >>
+>> endobj
+725 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 370.5107 538.9788 379.3573]
+/Subtype /Link
+/A << /S /GoTo /D (0:DeleteSlice) >>
+>> endobj
+726 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 357.4396 222.206 366.4059]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetAddresses) >>
+>> endobj
+727 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 357.4396 538.9788 366.4059]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetAddresses) >>
+>> endobj
+728 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 342.5505 237.4589 353.4544]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetAddressTypes) >>
+>> endobj
+729 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 342.5505 538.9788 353.4544]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetAddressTypes) >>
+>> endobj
+730 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 331.5368 224.4375 340.503]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetBootStates) >>
+>> endobj
+731 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 331.5368 538.9788 340.503]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetBootStates) >>
+>> endobj
+732 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 318.7049 220.5621 327.5516]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetConfFiles) >>
+>> endobj
+733 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 318.7049 538.9788 327.5516]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetConfFiles) >>
+>> endobj
+734 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 305.7535 208.2288 314.6001]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetEvents) >>
+>> endobj
+735 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 305.7535 538.9788 314.6001]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetEvents) >>
+>> endobj
+736 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 290.7448 201.3347 301.6487]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetKeys) >>
+>> endobj
+737 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 290.7448 538.9788 301.6487]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetKeys) >>
+>> endobj
+738 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 277.7933 221.0109 288.6973]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetKeyTypes) >>
+>> endobj
+739 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 277.7933 538.9788 288.6973]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetKeyTypes) >>
+>> endobj
+740 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 264.8419 219.9942 275.7458]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetMessages) >>
+>> endobj
+741 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 264.8419 538.9788 275.7458]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetMessages) >>
+>> endobj
+742 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 253.9478 250.8883 262.7944]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetNetworkMethods) >>
+>> endobj
+743 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 253.9478 538.9788 262.7944]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetNetworkMethods) >>
+>> endobj
+744 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 238.939 239.571 249.843]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetNetworkTypes) >>
+>> endobj
+745 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 238.939 538.9788 249.843]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetNetworkTypes) >>
+>> endobj
+746 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 225.9876 232.1689 236.8915]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetNodeGroups) >>
+>> endobj
+747 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 225.9876 538.9788 236.8915]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetNodeGroups) >>
+>> endobj
+748 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 215.0935 241.4738 223.9401]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetNodeNetworks) >>
+>> endobj
+749 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 215.0935 538.9788 223.9401]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetNodeNetworks) >>
+>> endobj
+750 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 202.0224 206.7144 210.9887]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetNodes) >>
+>> endobj
+751 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 202.0224 538.9788 210.9887]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetNodes) >>
+>> endobj
+752 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 189.1906 204.5126 198.0373]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetPCUs) >>
+>> endobj
+753 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 189.1906 538.9788 198.0373]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetPCUs) >>
+>> endobj
+754 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 176.2392 217.7727 185.0858]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetPeerData) >>
+>> endobj
+755 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 176.2392 538.9788 185.0858]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetPeerData) >>
+>> endobj
+756 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 163.2877 222.754 172.1344]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetPeerName) >>
+>> endobj
+757 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 163.2877 538.9788 172.1344]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetPeerName) >>
+>> endobj
+758 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 150.3363 202.8388 159.183]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetPeers) >>
+>> endobj
+759 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 150.3363 538.9788 159.183]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetPeers) >>
+>> endobj
+760 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 137.3849 212.2535 146.2315]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetPersons) >>
+>> endobj
+761 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 137.3849 538.9788 146.2315]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetPersons) >>
+>> endobj
+762 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 124.3138 203.9546 133.2801]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetRoles) >>
+>> endobj
+763 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 124.3138 538.9788 133.2801]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetRoles) >>
+>> endobj
+764 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 111.3624 211.7055 120.3287]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSession) >>
+>> endobj
+765 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 111.3624 538.9788 120.3287]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSession) >>
+>> endobj
+766 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 98.411 200.637 107.3772]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSites) >>
+>> endobj
+767 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 98.411 538.9788 107.3772]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSites) >>
+>> endobj
+671 0 obj <<
+/D [669 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+668 0 obj <<
+/Font << /F29 532 0 R /F30 622 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+818 0 obj <<
+/Length 35243     
+/Filter /FlateDecode
+>>
+stream
+xÚ\94ÝM\8flW~¥÷¹>\ 5\87ä@á\8cÈ\8c|\19Ê\r·`\e\16
+Võ¨áAIuÕ&Z],\90\94\eõí\1d\97\8c½väúG¬g]ô@hÔ®õÛuNÕe^ò>8Çï\9e.ÿïøÝÛñðö|ù?§\8fÃéõ|úî_ÿÇß=}÷ß.ÿÒ?þÝñzäåõõp:\1f_/ÿ\9f;ÿêß?\7f¼\1cΧ§×ïþþôtø8\1dÏwO\1d_\9e\ f/¯§ïþþíéýðüòüöõÔÿúÇ¿û_þóéã»\8fÃÇëéõ»?þÛwë\98NýñÏÿõûÓáýýðÃß\9fÎOßÿã\97_ÿùß\7fü×/ÿðë¯?ÿø/?\9c\9e¾ÿ\8f_¿üòÃÿóÇÿãïþ·?J;=\7f\1cÞ/÷úî\16ó+\1d/ÿ¡^Ï\ fþC\9d^\8e\87§\8fó\aÝWç>]ø0.tù\8fu~\7f}½{¡;øõ4â¾ú\0\7f=<½½\9dZüz\1aq_}\80¿\1fίo\1f-~=\8d¸¯ÞÇÏ\97·s~?\97ø:MøX}\80_ÞÎËGûØ×iÄ}õ\ 1~y;Ï\1fíc_§\11÷Õ\aøåí<?Õ\8fýz\1aq_½\8f¿^ÞÎéØ>öu\9að±ú\0¿¼\9dãñ½Å¯§\11÷Õ\aøåí<\9dÚǾN#î«\ fð÷ÃËÇsýد§\11÷ÕûøÛå¯<ïÏíc_§   \1f«\ fðË_²Þ^ÚǾN#î«\ fðóåßr>¶øõ4â¾ú\0¿¼\9dó¹~ì×Ó\88ûê}üýòv^^ÛǾN\13>V\1fà\97·óüÖ>öu\1aq_}\80_ÞÎå)µøõ4â¾ú\0¿¼\9dãûK\8b_O#î«÷ñ\8fËÛyúh\1fû:MøX}\80?\1f.\7fík\1fû:\8d¸¯>ÀÏ\87÷\8f§ö±¯Ó\88ûê\ 3üò¯¾\1fëÇ~=\8d¸¯ÞÅ\9f\9f\9e\ eïoÇ·\ e×iÀçê\ 3üòv^O/-~=\8d¸¯>À/oçü|lñëiÄ}õ\ 1~ýWKüz\bq_½\8f\1f/oçù¥}ìë4ácõ\ 1~y;íOQë0Ò¶ù@¾¼\9aã¹}æë4Ú¾ú\0¿ü«O¯õ3¿\9eFÜWï㧧ÃÛGû\1füz\98hß| ?\1fNïo5}=\8d¶¯>ÀÏ\87··÷ç\16¿\9eFÜW\1fàï\87ÓëGkÿ~\18iÛ¼/?_Þ̹~Ýë4Ùcõ\ 1~y5ç§ö\99¯Ó\88ûê\ 3üòj^Ú_ѯ\87\91¶Í\aòåÍ<\1f_[úz\1am_½\8f¿\^ÍéÔ>óu\9að±ú\0¿¼\9acmÿ~\18iÛ| _ÞÌÓsûÌ×i´}õ\ 1þ~8~¼Ôÿ¹¯§\11÷ÕûøùéðúþÒþâ²N\13>V\1fàÏ\87ãÛ¹}ìë4â¾ú\0?\1f^__ÛǾN#î«\ fðËÛ9׿¦¯Ó\88ûê}üõòv^ÞÚǾN\13>V\1fà\97·óü~jñëiÄ}õ\ 1~y;§÷ö±¯Ó\88ûê\ 3üòv\8e\1fõc¿\9eFÜWïão\97·s|j\1fû:MøX}\80_ÞÎÓSûØ×iÄ}õ\ 1~>\9c?\8eío\13ÖiÄ}õ\ 1þ~xz?Õ\8fýz\1aq_½\8f¿?\1dÎo§ö±¯Ó\84\8fÕ\aøóáéõ¹}ìë4â¾ú\0¿¼\9dóKûØ×iÄ}õ\ 1~y;//ï-~=\8d¸¯ÞÇ?.oçò\17¡\12_§      \1f«\ fðËÛ9½¶\8f}\9dFÜW\1fà\97·s|m\1fû:\8d¸¯>À/oçé­~ì×Ó\88ûê]üåééðòñ^þfE§\ 1\9f«\ fðÓáãýý½Å¯§\11÷Õ\aøùðòöqnñëiÄ}õ\ 1þvøx{ª\1fûõ4â¾z\1f?^ÞÎëSûØ×iÂÇê\ 3üòvÎÇ\97\16¿\9eFÜW\1fà\97·órj\1fû:\8d¸¯>À/oçùT?öëiÄ}õ>~º¼\9dÓsûØ×iÂÇê\ 3üòv\8eíß\11ÑiÄ}õ\ 1~y;O/o-~=\8d¸¯>Àß\ eï\1fçú±_O#î«÷ñç§ÃóûkûØ×iÂÇê\ 3ütx\7f{m\1fû:\8d¸¯>ÀÏ\87ç×·ö±¯Ó\88ûê\ 3üòvÚ\7f\ e#m\9b÷å\97Ë«yyo\9fù:MöX}\80\9f\1eÿq¼;øõ4â¾ú\0¿¼\9aç\96þí,Â\9f\17\1f°\97×rzª\1føõ4Ò¾z\1f?_Þ˱ý{\9e:MøX}\80_ÞKû·\ 4Öa¤mó\81|>\9c>Ní3_§ÑöÕ\aøÛáí½þoÚ:\8d¸¯ÞÇ_\9f\ e§ú\17µëa¢}ó\81|:¼½¾¼¶ôõ4Ú¾ú\0¿¼\9aó¹}æë4â¾ú\0¿¼\9aþ?øï\87\91¶ÍûòÛåÍ<·\7f\9aX§É\1e«\ fðË«9½µÏ|\9dFÜW\1fà\97Wslÿ4±N#î«\ fðËËyz¯\1fûõ4â¾z\1f\7f\7f:\1c?>ÚǾN\13>V\1fà§Ãë{û§\89u\1aq_}\80\9f\ fÇ÷§ö±¯Ó\88ûê\ 3üíðúÖþib\9dFÜWïã\1f\97·ózl\1fû:MøX}\80_ÞÎùÔ>öu\1aq_}\80_ÞÎKû§\89u\1aq_}\80_ÞÎósýد§\11÷Õ»øùéòvNí\9f&ÖiÀçê\ 3üòv\8eçS\8b_O#î«\ fðËÛy:\7f´øõ4â¾ú\0\7f;\9c?^ëÇ~=\8d¸¯ÞÇ\8fO\87§÷6ÐÑiÂÇê\ 3üt8¿µ\7f\9a\11÷Õ\aøùðôÚ\ 6::\8d¸¯>À/oçüQ?öëiÄ}õ>~º¼\9d\97öO\13ë4ácõ\ 1~y;/m £Ó\88ûê\ 3üòv\9eÛ?M¬Ó\88ûê\ 3üòvN\ f\ 2\9duèúO(î\97\81çÓûáéÈ?Ýèܧ\v\8e\e=¿\1d\1füuöNd¹þvv\8c,_/\7f¥{þ8=çÈR§®\91åG\8a,ÿøÃûÓ÷\7fûë\9dØòüq¸ü/îõ»[tÆ\96\97_\88\1f\15¤;ÂÊ÷Ö¹O\17\7f\1caÝ»P\88°\b÷Õ\1ca\95ø\8a°\b÷Õ\1ca\95ø\8a°\b÷Õ\1cau¸",ÀÇj\8e°J|EX\84ûj\8e°J|EX\84ûj\8e°J|EX\84ûj\8e°:\\11\16àc5GX%¾",Â}5GX%¾",Â}5GX%¾",Â}5GX\1d®\b\vð±\9a\12_\11\16á¾\9a\12_\11\16á¾\9a\12_\11\16á¾\9a
\11VÆçj\8e°J|EX\84ûj\8e°J|EX\84ûj\8e°J|EX\84ûj\8e°:\\11\16àc5FX¥}\8d°\88¶Í\1ca\95ô\8a°ÈöÕ\1ca\95ø\8a°\b÷Õ\18auö\8a°\80öÍ\1ca\95ô\8a°ÈöÕ\1ca\95ø\8a°\b÷Õ\18a\95ö5Â"Ú6s\84ÕÑ\8a°À\1e«9Â*ñ\15a\11î«1Â*ík\84E´mæ\b«¤W\84E¶¯æ\b«Ã\15a\ 1>Vc\84UÚ×\b\8bhÛÌ\11VI¯\b\8bl_Í\11V\89¯\b\8bp_Í\11V\87\ 2|¬æ\b«ÄW\84E¸¯æ\b«ÄW\84E¸¯æ\b«ÄW\84E¸¯æ\b«Ã\15a\ 1>Vs\84Uâ+Â"ÜWs\84Uâ+Â"ÜWs\84Uâ+Â"ÜWs\84Õá\8a°\0\1f«9Â*ñ\15a\11î«9Â*ñ\15a\11î«9Â*ñ\15a\11î«9ÂêpEX\80\8fÕ\1ca\95ø\8a°\b÷Õ\1ca\95ø\8a°\b÷Õ\1ca\95ø\8a°\b÷Õ\1cau¸",ÀÇj\8e°J|EX\84ûj\8e°J|EX\84ûj\8e°J|EX\84ûj\8e°*|GX\19\9f«9Â*ñ\15a\11î«9Â*ñ\15a\11î«9Â*ñ\15a\11î«9ÂêpEX\80\8fÕ\1ca\95ø\8a°\b÷Õ\1ca\95ø\8a°\b÷Õ\1ca\95ø\8a°\b÷Õ\1cau¸",ÀÇj\8e°J|EX\84ûj\8e°J|EX\84ûj\8e°J|EX\84ûj\8e°:\\11\16àc5GX%¾",Â}5GX%¾",Â}5FX¥}\8d°\88¶Í\1cau´",°Çj\8e°J|EX\84ûj\8a°Jú÷\b\8bàÏ\8b9Â*á\15a\11í«9ÂêpEX\80\8fÕ\18a\95ö5Â"Ú6s\84UÒ+Â"ÛWs\84Uâ+Â"ÜWc\84ÕÙ+Â\ 2Ú7s\84UÒ+Â"ÛWs\84Uâ+Â"ÜWc\84UÚ×\b\8bhÛÌ\11VG+Â\ 2{¬æ\b«ÄW\84E¸¯æ\b«ÄW\84E¸¯æ\b«ÄW\84E¸¯æ\b«Ã\15a\ 1>Vs\84Uâ+Â"ÜWs\84Uâ+Â"ÜWs\84Uâ+Â"ÜWs\84Õá\8a°\0\1f«9Â*ñ\15a\11î«9Â*ñ\15a\11î«9Â*ñ\15a\11î«9ªð\1dae|®æ\b«ÄW\84E¸¯æ\b«ÄW\84E¸¯æ\b«ÄW\84E¸¯æ\b«Ã\15a\ 1>Vs\84Uâ+Â"ÜWs\84Uâ+Â"ÜWs\84Uâ+Â"ÜWs\84Õá\8a°\0\1f«9Â*ñ\15a\11î«9Â*ñ\15a\11î«9ÂJÅP\19\85®ç>]èãýa\84\95n4",øÒÝëåG«\97\97§w\88°Ö©ß#¬ËÏ\ 5\9f#¬ÿý/¿üú§¿üúã\9f~ýñ§¿ürï#cïo_\7fq»ÁüJ§Ë\8f\1aÏ/\8fâ+}û+ßWç>]øñ·¿î](|û\8bp_Íßþêð\9d\9de|¬BvÖáÊÎ\0÷UÈÎ:\Ù\19à¾
+ÙY\87+;\ 3ÜW!;«ð\9d\9de|¬BvÖáÊÎ\0÷UÈÎ:\Ù\19à¾
+ÙY\87+;\ 3ÜW!;«ð\9d\9de|¬BvÖáÊÎ\0÷UÈÎ:\Ù\19à¾
+ÙY\87+;\ 3ÜW!;«ð\9d\9de|¬BvÖáÊÎ\0÷UÈÎ:\Ù\19à¾
+ÙY\87+;\ 3ÜW!;kð\9bì,âs\15²³\ eWv\ 6¸¯BvÖáÊÎ\0÷UÈÎ:\Ù\19à¾
+ÙY\85ïì,ãc5gg\9d½²3 m\13²³\8eVv\ 6¶¯BvÖáÊÎ\0÷Õ\9c\9dU¶²³Lû&dg\1d­ì\fl_\85ì¬Ã\95\9d\ 1î«9;ëì\95\9d\ 1m\9b\90\9dUôÎβ=V!;ëpeg\80ûjÎÎ:{eg@Û&dg\1d­ì\fl_\85ì¬Âwv\96ñ±\9a³³Î^Ù\19ж    ÙYG+;\ 3ÛW!;ëpeg\80û*dg\15¾³³\8c\8fUÈÎ:\Ù\19à¾
+ÙY\87+;\ 3ÜW!;ëpeg\80û*dg\15¾³³\8c\8fUÈÎ:\Ù\19à¾
+ÙY\87+;\ 3ÜW!;ëpeg\80û*dg\15¾³³\8c\8fUÈÎ:\Ù\19à¾
+ÙY\87+;\ 3ÜW!;ëpeg\80û*dg\15¾³³\8c\8fUÈÎ:\Ù\19à¾
+ÙY\87+;\ 3ÜW!;ëpeg\80û*dg\15¾³³\8c\8fUÈÎ:\Ù\19à¾
+ÙY\87+;\ 3ÜW!;ëpeg\80û*dg\r~\93\9dE|®BvÖáÊÎ\0÷UÈÎ:\Ù\19à¾
+ÙY\87+;\ 3ÜW!;«ð\9d\9de|¬BvÖáÊÎ\0÷UÈÎ:\Ù\19à¾
+ÙY\87+;\ 3ÜW!;«ð\9d\9de|¬BvÖáÊÎ\0÷UÈÎ:\Ù\19à¾
+ÙY\87+;\ 3ÜW!;«ð\9d\9de|¬BvÖáÊÎ\0÷UÈÎ:\Ù\19à¾\9a³³Î^Ù\19ж    ÙYEïì,Ûc\15²³\ eWv\ 6¸¯Æ쬣¯Ù\19À\9f\17!;ë`eg@û*dg\15¾³³\8c\8fÕ\9c\9duöÊÎ\80¶MÈÎ:ZÙ\19ؾ
+ÙY\87+;\ 3ÜWsvVÙÊÎ2í\9b\90\9du´²3°}\15²³\ eWv\ 6¸¯æ쬳Wv\ 6´mBvVÑ;;ËöX\85ì¬Ã\95\9d\ 1î«\90\9du¸²3À}\15²³\ eWv\ 6¸¯BvVá;;ËøX\85ì¬Ã\95\9d\ 1î«\90\9du¸²3À}\15²³\ eWv\ 6¸¯BvVá;;ËøX\85ì¬Ã\95\9d\ 1î«\90\9du¸²3À}\15²³\ eWv\ 6¸¯BvÖà7ÙYÄç*dg\1d®ì\fp_\85ì¬Ã\95\9d\ 1î«\90\9du¸²3À}\15²³
+ßÙYÆÇ*dg\1d®ì\fp_\85ì¬Ã\95\9d\ 1î«\90\9du¸²3À}\15²³
+ßÙYÆÇ*dg¡\18\82øêùðôÌ?Ýèܧ\v\1d\9f\9e\1e×WáJßü      ¬×\8fÃËûÇ\vÔWëÔµ¾:Z}5\83«§\97Ë\7f¿¾þíÅ\9bý{ÁÕéá×®\9e^\ f§Óo\7fS+^Qç>Ýqþ\ 1í§÷ÃÛñëOÏw.t\a¿\9eFÜWïãÇãáôõoîWöõ0Ѿù@~>¼~|ý/WG_O£í«\ fð×Ë\ f\90\1fí3_§\11÷Õ\aøûáµ~ä¿\9dEøóâ}öt<\1cß\9eÚ\a¾N\13=V\1fà\97÷òzl\1fø:\8d¸¯>À/ïåüõ\87æ\ e¿\9eFÜW\1fà\97wórª\1fûõ4â¾z\1f\7f¾¼\9dççö±¯Ó\84\8fÕ\aøåí\9c\9eÛǾN#î«\ fðËÛ9¾´\8f}\9dFÜW\1fà\97·ót>µøõ4â¾z\1f\7f9\1e\9e>Îíc_§    \1f«\ fðçÃùýµ}ìë4â¾ú\0\7f=<½½µ\8f}\9dFÜW\1fàï\87óë[ýد§\11÷Õ\aÑöåí\9c¿þÐ\áë4ácõ\ 1~y;/\1fíc_§\11÷Õ\aøªÚ;\­<à¾
+­|\87«\95\aÜW¡\95¯ðÝÊg|¬B+ßájå\ 1÷Uhå;\­<à¾
+­|\87«\95\aÜW¡\95¯ðÝÊg|¬B+ßájå\ 1÷Uhå;\­<à¾
+­|\87«\95\aÜW¡\95¯ðÝÊg|¬B+ßájå\ 1÷Uhå;\­<à¾
+­|\87«\95\aÜW¡\95¯ðÝÊg|¬B+ßájå\ 1÷Uhå;\­<à¾
+­|\87«\95\aÜW¡\95\9bV>âs\15\ eW+\ f¸¯B+ßájå\ 1÷Uhå;\­<à¾
+­|\85ïV>ãc5·ò\9d½Zy m\13\8eV+\ f¶¯B+ßájå\ 1÷ÕÜÊW¶ZùLû&´ò\1d­V\1el_\85V¾ÃÕÊ\ 3\95ïìÕÊ\ 3m\9bÐÊWônå³=V¡\95ïpµò\80ûjnå;{µò@Û&´ò\1d­V\1el_\85V¾Âw+\9fñ±\9a[ùÎ^­<ж    ­|G«\95\aÛW¡\95ïpµò\80û*´ò\15¾[ù\8c\8fUhå;\­<à¾
+­|\87«\95\aÜW¡\95ïpµò\80û*´ò\15¾[ù\8c\8fUhå;\­<à¾
+­|\87«\95\aÜW¡\95ïpµò\80û*´ò\15¾[ù\8c\8fUhå;\­<à¾
+­|\87«\95\aÜW¡\95ïpµò\80û*´ò\15¾[ù\8c\8fUhå;\­<à¾
+­|\87«\95\aÜW¡\95ïpµò\80û*´ò\15¾[ù\8c\8fUhå;\­<à¾
+­|\87«\95\aÜW¡\95ïpµò\80û*´ò\r~ÓÊG|®B+ßájå\ 1÷Uhå;\­<à¾
+­|\87«\95\aÜW¡\95¯ðÝÊg|¬B+ßájå\ 1÷Uhå;\­<à¾
+­|\87«\95\aÜW¡\95¯ðÝÊg|¬B+ßájå\ 1÷Uhå;\­<à¾
+­|\87«\95\aÜW¡\95¯ðÝÊg|¬B+ßájå\ 1÷Uhå;\­<à¾\9a[ùÎ^­<ж    ­|EïV>Ûc\15\ eW+\ f¸¯ÆV¾£¯­<À\9f\17¡\95ï`µò@û*´ò\15¾[ù\8c\8fÕÜÊwöjå\81¶Mhå;Z­<ؾ
+­|\87«\95\aÜWs+_Ùjå3í\9bÐÊw´Zy°}\15\ eW+\ f¸¯æV¾³W+\ f´mB+_Ñ»\95ÏöX\85V¾ÃÕÊ\ 3î«ÐÊw¸ZyÀ}\15\ eW+\ f¸¯B+_á»\95ÏøX\85V¾ÃÕÊ\ 3î«ÐÊw¸ZyÀ}\15\ eW+\ f¸¯B+_á»\95ÏøX\85V¾ÃÕÊ\ 3î«ÐÊw¸ZyÀ}\15\ eW+\ f¸¯B+ßà7­|Äç*´ò\1d®V\1ep_\85V¾ÃÕÊ\ 3î«ÐÊw¸ZyÀ}\15
+ß­|ÆÇ*´ò\1d®V\1ep_\85V¾ÃÕÊ\ 3î«ÐÊw¸ZyÀ}\15
+ß­|ÆÇ*´ò!ön[y¸Ðjåo/\14[ùp¥onåϯ\87ó3}¨ôzèZÊ\9f¬\94ÿã\ fÏçï\7fü×ÿþÃñéû/¿Î\8cõüõÏü~wCÍ\aùq¾üdû \9aßYmºì®jon\e¢Úy\9bÔÔfÙ6¡¨mä\1dÔFÙ7!§­dÕ´Y¶Mhi+Y)m\96m\13BÚJVG\9b\84\8a\91wD\e\84\84\92UÐfÙ6¡\9f­då³Y¶M\88g+Yíl\96m\13ÊÙFÞál\94}\13²ÙJV5\9b\84\92\95ÌfÙ6!\98­dõ²Y¶M¨e\eyDzQöMHe+Y¥l\96m\13:ÙJV&\9b\84\92ÕÈfÙ6¡\90\1dÈFÙ7!\8f­dÕ±Y¶Mhc+Yil\96m\13ÂØJV\17\9b\84\91w\14\e\84\92UÄfÙ6¡\87­då°Y¶M\88a+Y-l\96m\13JØFÞ!l\94}\132ØJV\ 5\9b\84\ 6\92\95ÀfÙ6!\80­dõ¯Y¶M¨_\vù&~MòØ\84ôµ\92U¾fÙ6¡{­de¯Y¶M\88^+YÍk\96m\13\8a×FÞÁk\94}3ç®\15¼j×ì~^\84Öµr\95ºfØ6!t­du®Y¶Í\¹6°"×èÚ"$®\95«Â5ö    }k%+oͲm渵\82\9aÝÏ\8bP¶6î\ e[#ì\9b\90µV²ªÖ,ÛfnZ+x%­Ùý¼\bAkåªgÍ°mBÍÚÈ;f\8d²oæ\94µ\82\9aÝÏ\8bбV®2Ö\fÛ&D¬\95¬\865˶      \ 5k#ï\805ʾ        ùj%«^ͲmB»ZÉJW³l\9b\10®V²ºÕ,Û&T«\8d¼£Õ(û&$«\95¬b5˶     ½j%+WͲmB¬ZÉjU³l\9bPª6ò\ eU£ì\9b\90©V²*Õ,Û&4ª\95¬D5˶     \81j%«OͲmB\9dÚÈ;N\8d²oB\9aZÉ*S³l\9bÐ¥V²²Ô,Û&D©\95¬&5˶     Ej#ï 5ʾ        9j%«FͲmB\8bZÉJQ³l\9b\10¢V²:Ô,Û&T¨\85|\13¡&ylB\82ZÉ*P³l\9bÐ\9fV²òÓ,Û&ħ\95¬ö4˶   åi#ïð4ʾ        Ùi%«:ͲmBsZÉJN³l\9b\10\9cV²zÓ,Û&Ô¦\8d¼cÓ(û&¤¦\95¬Ò4˶     \9di%+3ͲmBdZÉjL³l\9bP\98\ eL£ì\9b\90\97V²êÒ,Û&´¥\95¬´4˶\99ÃÒ
+^]iv?/BUÚ¸;*\8d°oBRZÉ*J³l\9b±'­ÜkN\9aÕO{\10\93VªZÒìÚ&\94¤\8d¼CÒ(ûfÎH+xU¤Ùý¼\b\riå*!Í°mB@ZÉêG³l\9b¹\1em`ţѵEHG+Wåh\86m\13ºÑJV6\9aeÛÌÑh\ 5¯f4»\9f\17¡\18\1d\8cFØ7!\17­dÕ¢Y¶MhE+Y©h\96m\13BÑJV'\9a\84\91w$\1a\84\92U\88fÙ6¡\ f­då¡Y¶M\88C+Ymh\96m\13ÊÐFÞah\94}\13²ÐJV\15\9a\84\92\95\84fÙ6!\b­dõ Y¶M¨A\vù&\ 6MòØ\84\14´\92U\82fÙ6¡\ 3­de Y¶M\88@+Y\rh\96m\13
+ÐFÞ\ 1h\94}\13òÏJVý\99\84ö³\92\95~fÙ6!ü¬du\9fY¶M¨>\eyG\9fQöMH>S¨Ø\15\9fù6+ø¼¹Íñéùqïùø>#÷<Cîù{Îu\86Þs\9dº\ 6\9fÏ\9f\82Ï\1fNçïÿ¿\1f\8eçï¿ü|ç\eÉ\97wüòõ\8fìÞ@~\9d¯ß}½(\8f¾\91¬Ï\14Ç»îÏ\14ß^öñg\8aïÜ'|¦8Ó¾ \9f)îh}¦\18l_\85Ï\14w¸>S\f¸¯ÆÏ\14wôõ3Å\0\7f^\84Ï\14WðþLq¦Ç*|¦¸Ãõ\99bÀ}\15>SÜáê©\ 1÷U(ª;\I5à¾
+Qu\85ïª:ãc\15ºê\ eWX\r¸¯BZÝáj«\ 1÷U¨«;\y5à¾
+\81u\85ïÂ:ãc\15\1aë\ eWd\r¸¯BfÝáê¬\ 1÷U(­;\©5à¾
+±u\85ïÚ:ãc\15\ eWp\r¸¯BrÝáj®\ 1÷U¨®;\Ù5à¾
+áu\85ïò:ãc\15Úë\ eW|\r¸¯B~Ýáê¯\ 1÷U(°;\ 6à¾
+\11v\85ï
+;ãc\15\ eW\88\r¸¯B\8aÝáj±\ 1÷U¨±;\96à¾
+Av\85ï";ãc\15\9aì\ eW\94\r¸¯B\96Ýáê²\ 1÷U(³;\i6à¾
+qv\85ï:;ãc\15úì\ e\r¸¯B¢Ýáj´\ 1÷U¨´;\\996à¾
+¡v\83ß\94Ú\11\9f«Ðjw¸bmÀ}\15\ e\r¸¯B±ÝáJ¶\ 1÷U\88¶+|WÛ\19\1f«¹Ûîì\15n\ 3m\9b\90nw´Úm°}\15êí\ e\r¸¯æ\80»²UpgÚ7¡áîhEÜ`û*dÜ\1d®\8e\ep_Í%wg¯\94\e\84\98»¢wÍ\9dí±
+=w\87\ 6ÜWsÒÝÙ«é\ 6Ú6¡êîheÝ`û*\84Ý\15¾Ëî\8c\8fÕÜvwö\8a»\81¶MÈ»;Z}7ؾ
+\85w\87\ 6ÜW!ò®ð]yg|¬BçÝá
\ 1÷UH½;\­7à¾
+µw\87\ 6ÜW!ø®ð]|g|¬BóÝá\8a¾\ 1÷UȾ;\Ý7à¾
+åw\87\ 6ÜW!þ®ð]\7fg|¬BÿÝá
\ 1÷UHÀ;\\r8à¾
+\15x\87+\ 3\aÜW!\ 4¯ð]\82g|¬B\vÞá\8aÁ\ 1÷UÈÁ;\=8à¾
+Ex\87+   \aÜW!
+¯ð]\85g|¬B\17Þá
\ 1÷UHÃ;\m8à¾
+ux\87+\ f\aÜW!\10\9bB<âs\15\1añ\ eW$\ e¸¯B&ÞáêÄ\ 1÷U(Å;\©8à¾
+±x\85ïZ<ãc\15\ eW0\ e¸¯B2ÞájÆ\ 1÷U¨Æ;\Ù8à¾
+áx\85ïr<ãc\15Úñ\ eW<\ e¸¯B>ÞáêÇ\ 1÷U(È;\ 9à¾
+\11y\85ï\8a<ãc\15\ eWH\ e¸¯BJÞájÉ\ 1÷Õ\\93wöÊÉ\81¶M\bÊ+z\17åÙ\1e«Ð\94w¸¢rÀ}5få\1d}íÊ\ 1þ¼\bey\a+-\aÚW!.¯ð]\97g|¬æ¾¼³W`\ e´mBbÞÑjÌÁöU¨Ì;\\999à¾\9aCóÊVi\9e\84Ö¼£\15\9b\83í«\90\9bw¸zsÀ}5\17ç\9d½\92s m\13¢ó\8aÞÕy¶Ç*tç\1d®ð\1cp_\85ô¼ÃÕ\9e\ 3î«P\9fw¸òsÀ}\15\ 2ô
\ 5zÆÇ*4è\1d®\b\1dp_\85\f½ÃÕ¡\ 3î«P¢w¸RtÀ}\15
+ß5zÆÇ*ôè\1d® \1dp_\85$½ÃÕ¤\ 3î«P¥w¸²tÀ}\15Âô\ 6¿)Ó#>W¡MïpÅé\80û*äé\1d®>\1dp_\85B½Ã\95¨\ 3î«\10©Wø®Ô3>V¡Sïp\85ê\80û*¤ê\1d®V\1dp_\85Z½Ã\95«\ 3î«\10¬Wø.Ö3>V¡Y\ f½u\e­Ã\85Vµ~{¡ãÓËãl=\é\9b?Süütù5÷|\84n}\9dºvë/×ný\9f~úõÇ\7fûÛ\1f¾üüËO\7f\99Éúå\11¾¿\7fýG\867Æ|\84o_ÿ7ðè\ 3Ūyã5wÍ{{ÏPóÞ¹Pªy\ 1÷U¨y;\5/à¾
+5o\85ï\9a7ãc\15\ e\v¸¯BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\85ï\9a7ãc\15\ e\v¸¯BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\85ï\9a7ãc\15\ e\v¸¯BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\85ï\9a7ãc\15\ e\v¸¯BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\85ï\9a7ãc\15\ e\v¸¯BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\85ï\9a7ãc\15\ e\v¸¯BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\85ï\9a7ãc\15\ e\v¸¯BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\83ßÔ¼\11\9f«Póv¸j^À}\15\ e\v¸¯BÍÛáªy\ 1÷U¨y+|×¼\19\1f«¹æíìUó\ 2m\9bPóv´j^°}\15\ e\v¸¯æ\9a·²UófÚ7¡æíhÕ¼`û*Ô¼\1d®\9a\17p_Í5og¯\9a\17\84\9a·¢wÍ\9bí±
+5o\87«æ\ 5ÜWsÍÛÙ«æ\ 5Ú6¡æíhÕ¼`û*Ô¼\15¾kÞ\8c\8fÕ\óvöªy\81¶M¨y;Z5/ؾ
+5o\87«æ\ 5ÜW¡æ­ð]óf|¬BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\87«æ\ 5ÜW¡æ­ð]óf|¬BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\87«æ\ 5ÜW¡æ­ð]óf|¬BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\87«æ\ 5ÜW¡æ­ð]óf|¬BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\87«æ\ 5ÜW¡æ­ð]óf|¬BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\87«æ\ 5ÜW¡æmð\9b\9a7âs\15\ e\v¸¯BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\85ï\9a7ãc\15\ e\v¸¯BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\85ï\9a7ãc\15\ e\v¸¯BÍÛáªy\ 1÷U¨y;\5/à¾
+5o\85ï\9a7ãc\15\ e\v¸¯BÍÛáªy\ 1÷Õ\óvöªy\81¶M¨y+z×¼Ù\1e«Póv¸j^À}5Ö¼\1d}­y\ 1þ¼\b5o\a«æ\ 5ÚW¡æ­ð]óf|¬æ\9a·³WÍ\v´mBÍÛѪyÁöU¨y;\5/à¾\9akÞÊVÍ\9b\84\9a·£Uó\82í«Póv¸j^À}5×¼\9d½j^ m\13\8aÞ5o¶Ç*Ô¼\1d®\9a\17p_\85\9a·ÃUó\ 2î«Póv¸j^À}\15
+ß5oÆÇ*Ô¼\1d®\9a\17p_\85\9a·ÃUó\ 2î«Póv¸j^À}\15
+ß5oÆÇ*Ô¼\1d®\9a\17p_\85\9a·ÃUó\ 2î«Póv¸j^À}\15\ 6¿©y#>W¡æípÕ¼\80û*Ô¼\1d®\9a\17p_\85\9a·ÃUó\ 2î«PóVø®y3>V¡æípÕ¼\80û*Ô¼\1d®\9a\17p_\85\9a·ÃUó\ 2î«PóVø®y3>V¡æ\8d)jWóÂ\85VÍ{{¡ãÓëã\9a7\é\9bkÞË»x}\7f~\83\9aw\9dºÖ¼çkÍû\7f\7fù\97\9f~úõ\9f~úó\97{_=>=\7fýç\b7\80_ãtxy9>üúôú\1cq¼áú\1cñí\ 5Ãç\88ï\&}\8e8Óc\15>GÜá
+\98\ 1÷U\b\98;\\ 13à¾
+\ 1s\87+`\ 6ÜW!`®ð\1d0g|¬BÀÜá
+\98\ 1÷U\b\98;\\ 13à¾
+\ 1s\87+`\ 6ÜW!`®ð\1d0g|¬BÀÜá
+\98\ 1÷U\b\98;\\ 13à¾
+\ 1s\87+`\ 6ÜW!`®ð\1d0g|¬BÀÜá
+\98\ 1÷U\b\98;\\ 13à¾
+\ 1s\87+`\ 6ÜW!`®ð\1d0g|¬BÀÜá
+\98\ 1÷U\b\98;\\ 13à¾
+\ 1s\87+`\ 6ÜW!`®ð\1d0g|¬BÀÜá
+\98\ 1÷U\b\98;\\ 13à¾
+\ 1s\87+`\ 6ÜW!`®ð\1d0g|¬BÀÜá
+\98\ 1÷U\b\98;\\ 13à¾
+\ 1s\87+`\ 6ÜW!`®ð\1d0g|¬BÀÜá
+\98\ 1÷U\b\98;\\ 13à¾
+\ 1s\87+`\ 6ÜW!`nð\9b\809âs\15\ 2æ\ e\f¸¯BÀÜá
+\98\ 1÷U\b\98;\\ 13à¾
+\ 1s\85ï\809ãc5\aÌ\9d½\ 2f m\13\ 2æ\8e\f¶¯BÀÜá
+\98\ 1÷Õ\1c0W¶\ 2æLû&\ 4Ì\1d­\80\19l_\85\80¹Ã\150\ 3î«9`îì\150\ 3m\9b\100Wô\ e\98³=V!`îp\ 5Ì\80ûj\ e\98;{\ 5Ì@Û&\ 4Ì\1d­\80\19l_\85\80¹ÂwÀ\9cñ±\9a\ 3æÎ^\ 13ж   \ 1sG+`\ 6ÛW!`îp\ 5Ì\80û*\ 4Ì\15¾\ 3æ\8c\8fU\b\98;\\ 13à¾
+\ 1s\87+`\ 6ÜW!`îp\ 5Ì\80û*\ 4Ì\15¾\ 3æ\8c\8fU\b\98;\\ 13à¾
+\ 1s\87+`\ 6ÜW!`îp\ 5Ì\80û*\ 4Ì\15¾\ 3æ\8c\8fU\b\98;\\ 13à¾
+\ 1s\87+`\ 6ÜW!`îp\ 5Ì\80û*\ 4Ì\15¾\ 3æ\8c\8fU\b\98;\\ 13à¾
+\ 1s\87+`\ 6ÜW!`îp\ 5Ì\80û*\ 4Ì\15¾\ 3æ\8c\8fU\b\98;\\ 13à¾
+\ 1s\87+`\ 6ÜW!`îp\ 5Ì\80û*\ 4Ì\r~\130G|®BÀÜá
+\98\ 1÷U\b\98;\\ 13à¾
+\ 1s\87+`\ 6ÜW!`®ð\1d0g|¬BÀÜá
+\98\ 1÷U\b\98;\\ 13à¾
+\ 1s\87+`\ 6ÜW!`®ð\1d0g|¬BÀÜá
+\98\ 1÷U\b\98;\\ 13à¾
+\ 1s\87+`\ 6ÜW!`®ð\1d0g|¬BÀÜá
+\98\ 1÷U\b\98;\\ 13à¾\9a\ 3æÎ^\ 13ж  \ 1sEï\809Ûc\15\ 2æ\ e\f¸¯Æ\80¹£¯\ 1\9f\17!`î`\ 5Ì@û*\ 4Ì\15¾\ 3æ\8c\8fÕ\1c0wö
+\98\81¶M\b\98;Z\ 13ؾ
+\ 1s\87+`\ 6ÜWsÀ\Ù
+\98\9b\100w´\ 2f°}\15\ 2æ\ e\f¸¯æ\80¹³WÀ\f´mBÀ\Ñ;`ÎöX\85\80¹Ã\150\ 3î«\100w¸\ 2fÀ}\15\ 2æ\ e\f¸¯BÀ\á;`ÎøX\85\80¹Ã\150\ 3î«\100w¸\ 2fÀ}\15\ 2æ\ e\f¸¯BÀ\á;`ÎøX\85\80¹Ã\150\ 3î«\100w¸\ 2fÀ}\15\ 2æ\ e\f¸¯BÀÜà7\ 1sÄç*\ 4Ì\1d®\80\19p_\85\80¹Ã\150\ 3î«\100w¸\ 2fÀ}\15\ 2æ
\ 1sÆÇ*\ 4Ì\1d®\80\19p_\85\80¹Ã\150\ 3î«\100w¸\ 2fÀ}\15\ 2æ
\ 1sÆÇ*\ 4Ì!Àm\ 3f¸Ð
+\98o/t|úx\1c0\87+}sÀüôrx{>=CÀ¼N]\ 3æW\ 5Ìÿöó\97_þß?|ùòó,\98/÷xýú\8fÍn\ 4¿Çñðúõ\97ÜG\ 5óëåç\8fß~B\8b\97Ô¹O·\9c\7f\9a:ß¹Îãx\1aàÏ\8b\10OWð\8e§3=V!\9eîpÅÓ\80û*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10OWø\8e§3>V!\9eîpÅÓ\80û*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10OWø\8e§3>V!\9eîpÅÓ\80û*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10OWø\8e§3>V!\9eîpÅÓ\80û*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10OWø\8e§3>V!\9eîpÅÓ\80û*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10OWø\8e§3>V!\9eîpÅÓ\80û*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10OWø\8e§3>V!\9eîpÅÓ\80û*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10OWø\8e§3>V!\9eîpÅÓ\80û*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10O7øM<\1dñ¹
+ñt\87+\9e\ 6ÜW!\9eîpÅÓ\80û*ÄÓ\1d®x\1ap_\85xºÂw<\9dñ±\9aãéÎ^ñ4ж    ñtG+\9e\ 6ÛW!\9eîpÅÓ\80ûj\8e§+[ñt¦}\13âé\8eV<\r¶¯B<Ýá\8a§\ 1÷Õ\1cOwö\8a§\81¶M\88§+zÇÓÙ\1e«\10Ow¸âiÀ}5ÇÓ\9d½âi m\13âé\8eV<\r¶¯B<]á;\9eÎøXÍñtg¯x\1a\84xº£\15O\83í«\10Ow¸âiÀ}\15âé
+ßñtÆÇ*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10Ow¸âiÀ}\15âé
+ßñtÆÇ*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10Ow¸âiÀ}\15âé
+ßñtÆÇ*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10Ow¸âiÀ}\15âé
+ßñtÆÇ*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10Ow¸âiÀ}\15âé
+ßñtÆÇ*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10Ow¸âiÀ}\15âé\ 6¿\89§#>W!\9eîpÅÓ\80û*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10OWø\8e§3>V!\9eîpÅÓ\80û*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10OWø\8e§3>V!\9eîpÅÓ\80û*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10OWø\8e§3>V!\9eîpÅÓ\80û*ÄÓ\1d®x\1ap_Íñtg¯x\1a\84xº¢w<\9dí±
+ñt\87+\9e\ 6ÜWc<ÝÑ×x\1aàÏ\8b\10Ow°âi }\15âé
+ßñtÆÇj\8e§;{ÅÓ@Û&ÄÓ\1d­x\1al_\85xºÃ\15O\ 3î«9\9e®lÅÓ\99öM\88§;Zñ4ؾ
+ñt\87+\9e\ 6ÜWs<ÝÙ+\9e\ 6Ú6!\9e®è\1dOg{¬B<Ýá\8a§\ 1÷U\88§;\ñ4à¾
+ñt\87+\9e\ 6ÜW!\9e®ð\1dOg|¬B<Ýá\8a§\ 1÷U\88§;\ñ4à¾
+ñt\87+\9e\ 6ÜW!\9e®ð\1dOg|¬B<Ýá\8a§\ 1÷U\88§;\ñ4à¾
+ñt\87+\9e\ 6ÜW!\9e\9bx:âs\15âé\ eW<\r¸¯B<Ýá\8a§\ 1÷U\88§;\ñ4à¾
+ñt\85ïx:ãc\15âé\ eW<\r¸¯B<Ýá\8a§\ 1÷U\88§;\ñ4à¾
+ñt\85ïx:ãc\15âéÐþ¶ñ4\hÅÓ·\17:\1e\9f\1eÇÓáJ#\9e>çxúüq¼üîéé=ÇÓ:u\8d§ß\14Oÿòå×?üp<\7fÿ§_~ù\9f?\1c\9f¾ÿéç?Ï\8eõ|¹ÈÍÈÝ'yù\19ëãQE­®6ßVç>]÷qW{ïB¡«%ÜWsWÛáêj\ 1\1f«¹«-ñÕÕ\12«-ñÕÕ\12«-ñÕÕ\12«ípuµ\80\8fÕÜÕ\96øêj    ÷ÕÜÕ\96øêj        ÷ÕÜÕ\96øêj        ÷ÕÜÕv¸ºZÀÇjîjK|uµ\84ûjîjK|uµ\84ûjîjK|uµ\84ûjîj;\]-àc5wµ%¾ºZÂ}5wµ%¾ºZÂ}5wµ%¾ºZÂ}5wµ\1d®®\16ð±\9a»Ú\12_]-á¾\9a»Ú\12_]-á¾\9a»Ú\12_]-á¾\9a»Ú\ eWW\vøXÍ]m\89¯®\96p_Í]m\89¯®\96p_Í]m\89¯®\96p_Í]m\87««\ 5|¬æ®¶ÄWWK¸¯æ®¶ÄWWK¸¯æ®¶ÄWWK¸¯æ®¶ÂwW\9bñ¹\9a»Ú\12_]-á¾\9a»Ú\12_]-á¾\9a»Ú\12_]-á¾\9a»Ú\ eWW\vøX\8d]mi_»Z¢m3wµ%½ºZ²}5wµ%¾ºZÂ}5vµ\9d½ºZ }3wµ%½ºZ²}5wµ%¾ºZÂ}5vµ¥}íj\89¶ÍÜÕv´ºZ°ÇjîjK|uµ\84ûjìjKûÚÕ\12m\9b¹«-éÕÕ\92í«¹«ípuµ\80\8fÕØÕ\96öµ«%Ú6sW[Ò««%ÛWsW[â««%ÜWsWÛáêj\ 1\1f«¹«-ñÕÕ\12«-ñÕÕ\12«-ñÕÕ\12«ípuµ\80\8fÕÜÕ\96øêj   ÷ÕÜÕ\96øêj        ÷ÕÜÕ\96øêj        ÷ÕÜÕv¸ºZÀÇjîjK|uµ\84ûjîjK|uµ\84ûjîjK|uµ\84ûjîj;\]-àc5wµ%¾ºZÂ}5wµ%¾ºZÂ}5wµ%¾ºZÂ}5wµ\1d®®\16ð±\9a»Ú\12_]-á¾\9a»Ú\12_]-á¾\9a»Ú\12_]-á¾\9a»Ú
+ß]mÆçjîjK|uµ\84ûjîjK|uµ\84ûjîjK|uµ\84ûjîj;\]-àc5wµ%¾ºZÂ}5wµ%¾ºZÂ}5wµ%¾ºZÂ}5wµ\1d®®\16ð±\9a»Ú\12_]-á¾\9a»Ú\12_]-á¾\9a»Ú\12_]-á¾\9a»Ú\ eWW\vøXÍ]m\89¯®\96p_Í]m\89¯®\96p_\8d]mi_»Z¢m3wµ\1d­®\16ì±\9a»Ú\12_]-á¾\9aºÚ\92þ½«%øóbîjKxuµDûjîj;\]-àc5vµ¥}íj\89¶ÍÜÕ\96ôêjÉöÕÜÕ\96øêj    ÷ÕØÕvöêj\81öÍÜÕ\96ôêjÉöÕÜÕ\96øêj      ÷ÕØÕ\96öµ«%Ú6sWÛÑêjÁ\1e«¹«-ñÕÕ\12«-ñÕÕ\12«-ñÕÕ\12«ípuµ\80\8fÕÜÕ\96øêj  ÷ÕÜÕ\96øêj        ÷ÕÜÕ\96øêj        ÷ÕÜÕv¸ºZÀÇjîjK|uµ\84ûjîjK|uµ\84ûjîjK|uµ\84ûjîj+|wµ\19\9f«¹«-ñÕÕ\12«-ñÕÕ\12«-ñÕÕ\12«ípuµ\80\8fÕÜÕ\96øêj       ÷ÕÜÕ\96øêj        ÷ÕÜÕ\96øêj        ÷ÕÜÕv¸ºZÀÇjîjs\rZuµt¡ë¹O\17:\1e\8f\ f»Út¥oý(ñùíýòÛå\8f\17èjשkWû~íjÿù˯\7føòó/?ýå\ f?ÿø?þôóßþùÇ_¿Ü\8b¼\9eO_ÿ\89Â\r5\9fäéôôò¨«ÝáW¼í\ e¿n¯\e¯;\17\17à¾
+áW\87\ 2ÜW!üªð\1d~e|¬BøÕá
+¿\0÷U\b¿:\á\17à¾
+áW\87\ 2ÜW!üªð\1d~e|¬BøÕá
+¿\0÷U\b¿:\á\17à¾
+áW\87\ 2ÜW!üªð\1d~e|¬BøÕá
+¿\0÷U\b¿:\á\17à¾
+áW\87\ 2ÜW!üªð\1d~e|¬BøÕá
+¿\0÷U\b¿:\á\17à¾
+áW\87\ 2ÜW!üjð\9bð+âs\15¯\ e\ 5¸¯BøÕá
+¿\0÷U\b¿:\á\17à¾
+áW\85ïð+ãc5\87_\9d½Â/ m\13¯\8e\ 5¶¯BøÕá
+¿\0÷Õ\1c~U¶Â¯Lû&\84_\1d­ð\vl_\85ð«Ã\15~\ 1î«9üêì\15~\ 1m\9b\10~Uô\ e¿²=V!üêp\85_\80ûj\ e¿:{\85_@Û&\84_\1d­ð\vl_\85ð«Âwø\95ñ±\9aïÎ^á\17ж   áWG+ü\ 2ÛW!üêp\85_\80û*\84_\15¾Ã¯\8c\8fU\b¿:\á\17à¾
+áW\87\ 2ÜW!üêp\85_\80û*\84_\15¾Ã¯\8c\8fU\b¿:\á\17à¾
+áW\87\ 2ÜW!üêp\85_\80û*\84_\15¾Ã¯\8c\8fU\b¿:\á\17à¾
+áW\87\ 2ÜW!üêp\85_\80û*\84_\15¾Ã¯\8c\8fU\b¿:\á\17à¾
+áW\87\ 2ÜW!üêp\85_\80û*\84_\15¾Ã¯\8c\8fU\b¿:\á\17à¾
+áW\87\ 2ÜW!üêp\85_\80û*\84_\r~\13~E|®BøÕá
+¿\0÷U\b¿:\á\17à¾
+áW\87\ 2ÜW!üªð\1d~e|¬BøÕá
+¿\0÷U\b¿:\á\17à¾
+áW\87\ 2ÜW!üªð\1d~e|¬BøÕá
+¿\0÷U\b¿:\á\17à¾
+áW\87\ 2ÜW!üªð\1d~e|¬BøÕá
+¿\0÷U\b¿:\á\17à¾\9aïÎ^á\17ж  áWEïð+Ûc\15¯\ e\ 5¸¯Æ𫣯á\17À\9f\17!üê`\85_@û*\84_\15¾Ã¯\8c\8fÕ\1c~uö
+¿\80¶M\b¿:Zá\17ؾ
+áW\87\ 2ÜWsøUÙ
+¿2í\9b\10~u´Â/°}\15¯\ e\ 5¸¯æð«³Wø\ 5´mBøUÑ;üÊöX\85ð«Ã\15~\ 1î«\10~u¸Â/À}\15¯\ e\ 5¸¯BøUá;üÊøX\85ð«Ã\15~\ 1î«\10~u¸Â/À}\15¯\ e\ 5¸¯BøUá;üÊøX\85ð«Ã\15~\ 1î«\10~u¸Â/À}\15¯\ e\ 5¸¯BøÕà7áWÄç*\84_\1d®ð\vp_\85ð«Ã\15~\ 1î«\10~u¸Â/À}\15¯
+ßáWÆÇ*\84_\1d®ð\vp_\85ð«Ã\15~\ 1î«\10~u¸Â/À}\15¯
+ßáWÆÇ*\84_1WêÂ/¸Ð
+¿n/\14ïp¥o\ e¿.?É¿¿Ñ÷\14\7f;tùéïÚ}}\»¯ÿò×?ÿé×/ÿðç?ÿüå\97_æw\vß.¿)üúGõ׿ûÎE\8e\87çËo\1e\1f~HQß2¼\99Hß2¼½gø\96á\9d\v¥o\19f|¬Â·\f;\ß2\ 4ÜWá[\86\1d®o\19\ 2î«ð-Ã\ e×·\f\ 1÷Uø\96a\85ïo\19f|¬Â·\f;\ß2\ 4ÜWá[\86\1d®o\19\ 2î«ð-Ã\ e×·\f\ 1÷Uø\96a\85ïo\19f|¬Â·\f;\I+à¾
+Ik\87+i\ 5ÜW!iíp%­\80û*$­\15¾\93Ö\8c\8fUHZ;\I+à¾
+Ik\87+i\ 5ÜW!iíp%­\80û*$­\15¾\93Ö\8c\8fUHZ;\I+à¾
+Ik\87+i\ 5ÜW!iíp%­\80û*$­\15¾\93Ö\8c\8fUHZ;\I+à¾
+Ik\87+i\ 5ÜW!iíp%­\80û*$­\15¾\93Ö\8c\8fUHZ;\I+à¾
+Ik\87+i\ 5ÜW!iíp%­\80û*$­\r~\93´F|®BÒÚáJZ\ 1÷UHZ;\I+à¾
+Ik\87+i\ 5ÜW!i­ð\9d´f|¬æ¤µ³WÒ
+´mBÒÚÑJZÁöUHZ;\I+à¾\9a\93ÖÊVÒ\9a\84¤µ£\95´\82í«\90´v¸\92VÀ}5'­\9d½\92V m\13\92Ö\8aÞIk¶Ç*$­\1d®¤\15p_ÍIkg¯¤\15\84¤µ£\95´\82í«\90´VøNZ3>VsÒÚÙ+i\ 5Ú6!iíh%­`û*$­\1d®¤\15p_\85¤µÂwÒ\9añ±
+Ik\87+i\ 5ÜW!iíp%­\80û*$­\1d®¤\15p_\85¤µÂwÒ\9añ±
+Ik\87+i\ 5ÜW!iíp%­\80û*$­\1d®¤\15p_\85¤µÂwÒ\9añ±
+Ik\87+i\ 5ÜW!iíp%­\80û*$­\1d®¤\15p_\85¤µÂwÒ\9añ±
+Ik\87+i\ 5ÜW!iíp%­\80û*$­\1d®¤\15p_\85¤µÂwÒ\9añ±
+Ik\87+i\ 5ÜW!iíp%­\80û*$­\1d®¤\15p_\85¤µÁo\92Ö\88ÏUHZ;\I+à¾
+Ik\87+i\ 5ÜW!iíp%­\80û*$­\15¾\93Ö\8c\8fUHZ;\I+à¾
+Ik\87+i\ 5ÜW!iíp%­\80û*$­\15¾\93Ö\8c\8fUHZ;\I+à¾
+Ik\87+i\ 5ÜW!iíp%­\80û*$­\15¾\93Ö\8c\8fUHZ;\I+à¾
+Ik\87+i\ 5ÜWsÒÚÙ+i\ 5Ú6!i­è\9d´f{¬BÒÚáJZ\ 1÷Õ\98´vô5i\ 5øó"$­\1d¬¤\15h_\85¤µÂwÒ\9añ±\9a\93ÖÎ^I+ж        IkG+i\ 5ÛW!iíp%­\80ûjNZ+[Ik¦}\13\92Ö\8e
+¶¯BÒÚáJZ\ 1÷Õ\9c´vöJZ\81¶MHZ+z'­Ù\1e«\90´v¸\92VÀ}\15\92Ö\ e
+¸¯BÒÚáJZ\ 1÷UHZ+|'­\19\1f«\90´v¸\92VÀ}\15\92Ö\ e
+¸¯BÒÚáJZ\ 1÷UHZ+|'­\19\1f«\90´v¸\92VÀ}\15\92Ö\ e
+¸¯BÒÚáJZ\ 1÷UHZ\eü&i\8dø\\85¤µÃ\95´\ 2î«\90´v¸\92VÀ}\15\92Ö\ e
+¸¯BÒZá;iÍøX\85¤µÃ\95´\ 2î«\90´v¸\92VÀ}\15\92Ö\ e
+¸¯BÒZá;iÍøX\85¤5\ 4\99
+\17ZIëí\85\8eÇÓã¤5\é\9b\93ÖËo\e?N\97ÿýå¦u\9dú½i=^~­¼\13µþñ\87÷§ïÿö×/÷\1a³\8fó×\9fÙo°\19·\9e?.Gðk\86ñ¾;ýº½pH¿î\(¥_\80û*¤_\1d®ô\vp_\85ô«Âwú\95ñ±
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«Âwú\95ñ±
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«Âwú\95ñ±
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«Âwú\95ñ±
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«ÁoÒ¯\88ÏUH¿:\é\17à¾
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\15¾Ó¯\8c\8fÕ\9c~uöJ¿\80¶MH¿:Zé\17ؾ
+éW\87\ 2ÜWsúUÙJ¿2í\9b\90~u´Ò/°}\15Ò¯\ e\ 5¸¯æô«³Wú\ 5´mBúUÑ;ýÊöX\85ô«Ã\95~\ 1î«9ýêì\95~\ 1m\9b\90~u´Ò/°}\15Ò¯
+ßéWÆÇjN¿:{¥_@Û&¤_\1d­ô\vl_\85ô«Ã\95~\ 1î«\90~UøN¿2>V!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«Ã\95~\ 1î«\90~UøN¿2>V!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«Ã\95~\ 1î«\90~UøN¿2>V!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«Ã\95~\ 1î«\90~UøN¿2>V!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«Ã\95~\ 1î«\90~UøN¿2>V!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«Ã\95~\ 1î«\90~5øMú\15ñ¹
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«Âwú\95ñ±
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«Âwú\95ñ±
+éW\87\ 2ÜW!ýêp¥_\80û*¤_\1d®ô\vp_\85ô«Âwú\95ñ±
+éW\87\ 2ÜW!ýêp¥_\80ûjN¿:{¥_@Û&¤_\15½Ó¯l\8fUH¿:\é\17à¾\1aÓ¯\8e¾¦_\0\7f^\84ô«\83\95~\ 1í«\90~UøN¿2>VsúÕÙ+ý\ 2Ú6!ýêh¥_`û*¤_\1d®ô\vp_ÍéWe+ýÊ´oBúÕÑJ¿ÀöUH¿:\é\17à¾\9aÓ¯Î^é\17ж   éWEïô+Ûc\15Ò¯\ e\ 5¸¯BúÕáJ¿\0÷UH¿:\é\17à¾
+éW\85ïô+ãc\15Ò¯\ e\ 5¸¯BúÕáJ¿\0÷UH¿:\é\17à¾
+éW\85ïô+ãc\15Ò¯\ e\ 5¸¯BúÕáJ¿\0÷UH¿:\é\17à¾
+éW\83ߤ_\11\9f«\90~u¸Ò/À}\15Ò¯\ e\ 5¸¯BúÕáJ¿\0÷UH¿*|§_\19\1f«\90~u¸Ò/À}\15Ò¯\ e\ 5¸¯BúÕáJ¿\0÷UH¿*|§_\19\1f«\90~\85\©M¿àB+ýº½Ðå7\91\8fÓ¯p¥oN¿\9e/7y;\1f!ýZ§Vúuü\94~ý§\9fþòoÿùÇ\7f\9fÍ×óå¿eç¯ÿ\15¿Qfóõt~}\7fÔ|í/ëÅ\8bî/ëÝÞ4|YïÎ\85Ò\97õ\0÷Uø²^\85ï/ëe|¬Â\97õ:\_Ö\ 3ÜWáËz\1d®/ë\ 1î«ðe½\ e×\97õ\0÷Uø²^\85ï/ëe|¬Â\97õ:\y%à¾
+ye\87\ 4ÜW!¯ìpå\95\80û*ä\95\15¾óÊ\8c\8fUÈ+;\y%à¾
+ye\87\ 4ÜW!¯ìpå\95\80û*ä\95\15¾óÊ\8c\8fUÈ+;\y%à¾
+ye\87\ 4ÜW!¯ìpå\95\80û*ä\95\15¾óÊ\8c\8fUÈ+;\y%à¾
+ye\87\ 4ÜW!¯ìpå\95\80û*ä\95\15¾óÊ\8c\8fUÈ+;\y%à¾
+ye\87\ 4ÜW!¯ìpå\95\80û*ä\95\r~\93WF|®B^ÙáÊ+\ 1÷UÈ+;\y%à¾
+ye\87\ 4ÜW!¯¬ð\9dWf|¬æ¼²³W^        ´mB^ÙÑÊ+ÁöUÈ+;\y%à¾\9aóÊÊV^\99\84¼²£\95W\82í«\90Wv¸òJÀ}5ç\95\9d½òJ m\13òÊ\8aÞye¶Ç*ä\95\1d®¼\12p_Íyeg¯¼\12\84¼²£\95W\82í«\90WVøÎ+3>Vs^ÙÙ+¯\ 4Ú6!¯ìhå\95`û*ä\95\1d®¼\12p_\85¼²Âw^\99ñ±
+ye\87\ 4ÜW!¯ìpå\95\80û*ä\95\1d®¼\12p_\85¼²Âw^\99ñ±
+ye\87\ 4ÜW!¯ìpå\95\80û*ä\95\1d®¼\12p_\85¼²Âw^\99ñ±
+ye\87\ 4ÜW!¯ìpå\95\80û*ä\95\1d®¼\12p_\85¼²Âw^\99ñ±
+ye\87\ 4ÜW!¯ìpå\95\80û*ä\95\1d®¼\12p_\85¼²Âw^\99ñ±
+ye\87\ 4ÜW!¯ìpå\95\80û*ä\95\1d®¼\12p_\85¼²ÁoòÊ\88ÏUÈ+;\y%à¾
+ye\87\ 4ÜW!¯ìpå\95\80û*ä\95\15¾óÊ\8c\8fUÈ+;\y%à¾
+ye\87\ 4ÜW!¯ìpå\95\80û*ä\95\15¾óÊ\8c\8fUÈ+;\y%à¾
+ye\87\ 4ÜW!¯ìpå\95\80û*ä\95\15¾óÊ\8c\8fUÈ+;\y%à¾
+ye\87\ 4ÜWs^ÙÙ+¯\ 4Ú6!¯¬è\9dWf{¬B^ÙáÊ+\ 1÷Õ\98Wvô5¯\ 4øó"ä\95\1d¬¼\12h_\85¼²Âw^\99ñ±\9aóÊÎ^y%ж        yeG+¯\ 4ÛW!¯ìpå\95\80ûjÎ++[ye¦}\13òÊ\8eV^ ¶¯B^ÙáÊ+\ 1÷Õ\9cWvöÊ+\81¶MÈ++zç\95Ù\1e«\90Wv¸òJÀ}\15òÊ\ eW^     ¸¯B^ÙáÊ+\ 1÷UÈ++|ç\95\19\1f«\90Wv¸òJÀ}\15òÊ\ eW^      ¸¯B^ÙáÊ+\ 1÷UÈ++|ç\95\19\1f«\90Wv¸òJÀ}\15òÊ\ eW^      ¸¯B^ÙáÊ+\ 1÷UÈ+\eü&¯\8cø\\85¼²Ã\95W\ 2î«\90Wv¸òJÀ}\15òÊ\ eW^     ¸¯B^Yá;¯ÌøX\85¼²Ã\95W\ 2î«\90Wv¸òJÀ}\15òÊ\ eW^      ¸¯B^Yá;¯ÌøX\85¼2\94\81m^      \17Zyåí\85\8eÇ\97Çye¸Ò7ç\95§·ÃÓéù\ròÊßO½*¯<}Ê+ÿÏ\1fNçï¿üp<\7fÿ·ñ\a£¿þÑÊç¯\7f~zMÜ}\8eÏç÷\8fG\85åñõòcÈo?¨ÝLÜùÃÒëܧËÎ?©}|?|ý§Jw®s\87þí,Â\9f\17ﳧãáøöõ\87©
+^§\89\1e«\ fðçÃëëñ¹Å¯§\11÷Õ\aøå½\9c¿þ0Õá×Ó\88ûê\ 3üòn^Nõc¿\9eFÜW\1fļ\97·óüÜ>öu\9að±ú\0¿¼\9dÓsûØ×iÄ}õ\ 1¾jç\ eWC\r¸¯BCÝáj¨\ 1÷Uh¨+|7Ô\19\1f«ÐPw¸\1ajÀ}\15\1aê\ eWC\r¸¯BCÝáj¨\ 1÷Uh¨+|7Ô\19\1f«ÐPw¸\1ajÀ}\15\1aê\ eWC\r¸¯BCÝáj¨\ 1÷Uh¨+|7Ô\19\1f«ÐPw¸\1ajÀ}\15\1aê\ eWC\r¸¯BCÝáj¨\ 1÷Uh¨+|7Ô\19\1f«ÐPw¸\1ajÀ}\15\1aê\ eWC\r¸¯BCÝáj¨\ 1÷Uh¨+|7Ô\19\1f«ÐPw¸\1ajÀ}\15\1aê\ eWC\r¸¯BCÝáj¨\ 1÷Uh¨+|7Ô\19\1f«ÐPw¸\1ajÀ}\15\1aê\ eWC\r¸¯BCÝáj¨\ 1÷Uh¨\eü¦¡\8eø\\85\86ºÃÕP\ 3î«ÐPw¸\1ajÀ}\15\1aê\ eWC\r¸¯BC]ỡÎøXÍ\rug¯\86\1a\84\86º£ÕP\83í«ÐPw¸\1ajÀ}57Ô\95­\86:Ó¾        \ruG«¡\ 6ÛW¡¡îp5Ô\80ûjn¨;{5Ô@Û&4Ô\15½\eêl\8fUh¨;\\r5à¾\9a\eêÎ^\r5ж    \ruG«¡\ 6ÛW¡¡®ðÝPg|¬æ\86º³WC\r´mBCÝÑj¨ÁöUh¨;\\r5à¾
+\ru\85ï\86:ãc\15\1aê\ eWC\r¸¯BCÝáj¨\ 1÷Uh¨;\\r5à¾
+\ru\85ï\86:ãc\15\1aê\ eWC\r¸¯BCÝáj¨\ 1÷Uh¨;\\r5à¾
+\ru\85ï\86:ãc\15\1aê\ eWC\r¸¯BCÝáj¨\ 1÷Uh¨;\\r5à¾
+\ru\85ï\86:ãc\15\1aê\ eWC\r¸¯BCÝáj¨\ 1÷Uh¨;\\r5à¾
+\ru\85ï\86:ãc\15\1aê\ eWC\r¸¯BCÝáj¨\ 1÷Uh¨;\\r5à¾
+\ru\83ß4Ô\11\9f«ÐPw¸\1ajÀ}\15\1aê\ eWC\r¸¯BCÝáj¨\ 1÷Uh¨+|7Ô\19\1f«ÐPw¸\1ajÀ}\15\1aê\ eWC\r¸¯BCÝáj¨\ 1÷Uh¨+|7Ô\19\1f«ÐPw¸\1ajÀ}\15\1aê\ eWC\r¸¯BCÝáj¨\ 1÷Uh¨+|7Ô\19\1f«ÐPw¸\1ajÀ}\15\1aê\ eWC\r¸¯æ\86º³WC\r´mBC]Ñ»¡ÎöX\85\86ºÃÕP\ 3¡îèkC\rðçEh¨;X\r5о
+\ru\85ï\86:ãc57Ô\9d½\1aj m\13\1aê\8eVC\r¶¯BCÝáj¨\ 1÷ÕÜPW¶\1aêLû&4Ô\1d­\86\1al_\85\86ºÃÕP\ 3¡îìÕP\ 3m\9bÐPWôn¨³=V¡¡îp5Ô\80û*4Ô\1d®\86\1ap_\85\86ºÃÕP\ 3î«ÐPWøn¨3>V¡¡îp5Ô\80û*4Ô\1d®\86\1ap_\85\86ºÃÕP\ 3î«ÐPWøn¨3>V¡¡îp5Ô\80û*4Ô\1d®\86\1ap_\85\86ºÃÕP\ 3î«ÐP7øMC\1dñ¹
+\ru\87«¡\ 6ÜW¡¡îp5Ô\80û*4Ô\1d®\86\1ap_\85\86ºÂwC\9dñ±
+\ru\87«¡\ 6ÜW¡¡îp5Ô\80û*4Ô\1d®\86\1ap_\85\86ºÂwC\9dñ±
+\rul\7f»\86\1a\1aêÛ\v\1d\8fçÇ\ru¸Ò77ÔÇ\97ÃÓÛé\ 4\rõ:µ\1aêçO\rõÿõå\97_þôßî|¡öåðòÛO/7ÈüBíëéå\8d¿P\eï¹ëÊÛ\8b\86ºòÎ\85R]   ¸¯B]Yá»®ÌøX\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Yá»®ÌøX\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Yá»®ÌøX\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Yá»®ÌøX\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Yá»®ÌøX\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Yá»®ÌøX\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Ùà7ueÄç*Ô\95\1d®º\12p_\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ
+ßueÆÇj®+;{Õ\95@Û&Ô\95\1d­º\12l_\85º²ÃUW\ 2®¬lÕ\95\99öM¨+;Zu%ؾ
+ue\87«®\ 4ÜWs]ÙÙ«®\ 4Ú6¡®¬è]Wf{¬B]Ùáª+\ 1÷Õ\Wvöª+\81¶M¨+;Zu%ؾ
+ue\85ïº2ãc5×\95\9d½êJ m\13êÊ\8eV]        ¶¯B]Ùáª+\ 1÷U¨++|×\95\19\1f«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Ùáª+\ 1÷U¨++|×\95\19\1f«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Ùáª+\ 1÷U¨++|×\95\19\1f«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Ùáª+\ 1÷U¨++|×\95\19\1f«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Ùáª+\ 1÷U¨++|×\95\19\1f«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Ùáª+\ 1÷U¨+\eü¦®\8cø\\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ\ eW]     ¸¯B]Yá»®ÌøX\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Yá»®ÌøX\85º²ÃUW\ 2î«PWv¸êJÀ}\15êÊ\ eW]      ¸¯B]Yá»®ÌøX\85º²ÃUW\ 2î«PWv¸êJÀ}5×\95\9d½êJ m\13êÊ\8aÞue¶Ç*Ô\95\1d®º\12p_\8dueG_ëJ\80?/B]ÙÁª+\81öU¨++|×\95\19\1f«¹®ììUW\ 2m\9bPWv´êJ°}\15êÊ\ eW]      ¸¯æº²²UWfÚ7¡®ìhÕ\95`û*Ô\95\1d®º\12p_Íueg¯º\12\84º²¢w]\99í±
+ue\87«®\ 4ÜW¡®ìpÕ\95\80û*Ô\95\1d®º\12p_\85º²Âw]\99ñ±
+ue\87«®\ 4ÜW¡®ìpÕ\95\80û*Ô\95\1d®º\12p_\85º²Âw]\99ñ±
+ue\87«®\ 4ÜW¡®ìpÕ\95\80û*Ô\95\1d®º\12p_\85º²ÁoêÊ\88ÏU¨+;\u%à¾
+ue\87«®\ 4ÜW¡®ìpÕ\95\80û*Ô\95\15¾ëÊ\8c\8fU¨+;\u%à¾
+ue\87«®\ 4ÜW¡®ìpÕ\95\80û*Ô\95\15¾ëÊ\8c\8fU¨+C\19ØÖ\95p¡UWÞ^èx|}\W\86+}s]ùt¼ü²÷ô\ euå:µêÊ\97Ouå?ýôç/ÿøóOÿñ×{]Ýëo¿I¹af_ùñtùíÛ\83¾rçnñ¦;w»½jÈÝî\(ån\19\1f«\90»u¸r7À}\15\ e\ 6¸¯BîÖáÊÝ\0÷UÈÝ*|çn\19\1f«\90»u¸r7À}\15\ e\ 6¸¯BîÖáÊÝ\0÷UÈÝ*|çn\19\1f«\90»u¸r7À}\15\ e\ 6¸¯BîÖáÊÝ\0÷UÈÝ*|çn\19\1f«\90»u¸r7À}\15\ e\ 6¸¯BîÖáÊÝ\0÷UÈÝ*|çn\19\1f«\90»u¸r7À}\15\ e\ 6¸¯BîÖáÊÝ\0÷UÈÝ\1aü&w\8bø\\85Ü­Ã\95»\ 1î«\90»u¸r7À}\15\ e\ 6¸¯BîVá;wËøX͹[g¯Ü\r\84Ü­£\95»\81í«\90»u¸r7À}5çn\95­Ü-Ó¾   ¹[G+w\ 3ÛW!wëpån\80ûjÎÝ:{ån@Û&än\15½s·l\8fUÈÝ:\¹\eà¾\9as·Î^¹\eж    ¹[G+w\ 3ÛW!w«ð\9d»e|¬æÜ­³Wî\ 6´mBîÖÑÊÝÀöUÈÝ:\¹\eà¾
+¹[\85ïÜ-ãc\15\ e\ 6¸¯BîÖáÊÝ\0÷UÈÝ:\¹\eà¾
+¹[\85ïÜ-ãc\15\ e\ 6¸¯BîÖáÊÝ\0÷UÈÝ:\¹\eà¾
+¹[\85ïÜ-ãc\15\ e\ 6¸¯BîÖáÊÝ\0÷UÈÝ:\¹\eà¾
+¹[\85ïÜ-ãc\15\ e\ 6¸¯BîÖáÊÝ\0÷UÈÝ:\¹\eà¾
+¹[\85ïÜ-ãc\15\ e\ 6¸¯BîÖáÊÝ\0÷UÈÝ:\¹\eà¾
+¹[\83ßän\11\9f«\90»u¸r7À}\15\ e\ 6¸¯BîÖáÊÝ\0÷UÈÝ*|çn\19\1f«\90»u¸r7À}\15\ e\ 6¸¯BîÖáÊÝ\0÷UÈÝ*|çn\19\1f«\90»u¸r7À}\15\ e\ 6¸¯BîÖáÊÝ\0÷UÈÝ*|çn\19\1f«\90»u¸r7À}\15\ e\ 6¸¯æÜ­³Wî\ 6´mBîVÑ;wËöX\85Ü­Ã\95»\ 1î«1wëèkî\ 6ðçEÈÝ:X¹\eо
+¹[\85ïÜ-ãc5çn\9d½r7 m\13\8e\ 6¶¯BîÖáÊÝ\0÷Õ\9c»U¶r·Lû&än\1d­Ü\rl_\85Ü­Ã\95»\ 1î«9wëì\95»\ 1m\9b\90»UôÎݲ=V!wëpån\80û*än\1d®Ü\rp_\85Ü­Ã\95»\ 1î«\90»UøÎÝ2>V!wëpån\80û*än\1d®Ü\rp_\85Ü­Ã\95»\ 1î«\90»UøÎÝ2>V!wëpån\80û*än\1d®Ü\rp_\85Ü­Ã\95»\ 1î«\90»5øMî\16ñ¹
+¹[\87+w\ 3ÜW!wëpån\80û*än\1d®Ü\rp_\85Ü­Âwî\96ñ±
+¹[\87+w\ 3ÜW!wëpån\80û*än\1d®Ü\rp_\85Ü­Âwî\96ñ±
+¹[\bµÚÜ\r.´r·Û\v\1d\8fo\8fs·p¥oÍÝ^Þß/\7f©ûxɹÛõÔ³r·óÈÝþé˯ÿó\87ãÓ÷?ýüßgìôµ\95ø8ï\99»ÏòéíéåQô¦úêv"ÔW\9f.ü¸¾ºw¡P_\11¾êpÕW\80\8fÕ\_\95øª¯\b÷Õ\_\95øª¯\b÷Õ\_\95øª¯\b÷Õ\_u¸ê+ÀÇj®¯J|ÕW\84ûj®¯J|ÕW\84ûj®¯J|ÕW\84ûj®¯:\õ\15àc5×W%¾ê+Â}5×W%¾ê+Â}5×W%¾ê+Â}5×W\1d®ú
+ð±\9aë«\12\15á¾\9aë«\12\15á¾\9aë«\12\15á¾\9aë«
+ßõUÆçj®¯J|ÕW\84ûj®¯J|ÕW\84ûj®¯J|ÕW\84ûj®¯:\õ\15àc5ÖW¥}­¯\88¶Í\_\95ôª¯ÈöÕ\_\95øª¯\b÷ÕX_uöª¯\80öÍ\_\95ôª¯ÈöÕ\_\95øª¯\b÷ÕX_\95öµ¾"Ú6s}ÕѪ¯À\1e«¹¾*ñU_\11¾*ík}E´mæúª¤W}E¶¯æúªÃU_\ 1>Vc}UÚ×ú\8ahÛÌõUI¯ú\8al_ÍõU\89¯ú\8ap_ÍõU\87«¾\ 2|¬æúªÄW}E¸¯æúªÄW}E¸¯æúªÄW}E¸¯æúªÃU_\ 1>Vs}U⫾"ÜWs}U⫾"ÜWs}U⫾"ÜWs}Õ᪯\0\1f«¹¾*ñU_\11¾*ñU_\11¾*ñU_\11¾êpÕW\80\8fÕ\_\95øª¯\b÷Õ\_\95øª¯\b÷Õ\_\95øª¯\b÷Õ\_u¸ê+ÀÇj®¯J|ÕW\84ûj®¯J|ÕW\84ûj®¯J|ÕW\84ûj®¯*|×W\19\9f«¹¾*ñU_\11¾*ñU_\11¾*ñU_\11¾êpÕW\80\8fÕ\_\95øª¯\b÷Õ\_\95øª¯\b÷Õ\_\95øª¯\b÷Õ\_u¸ê+ÀÇj®¯J|ÕW\84ûj®¯J|ÕW\84ûj®¯J|ÕW\84ûj®¯:\õ\15àc5×W%¾ê+Â}5×W%¾ê+Â}5ÖW¥}­¯\88¶Í\_u´ê+°Çj®¯J|ÕW\84ûjª¯Jú÷ú\8aàÏ\8b¹¾*áU_\11í«¹¾êpÕW\80\8fÕX_\95öµ¾"Ú6s}UÒ«¾"ÛWs}U⫾"ÜWc}ÕÙ«¾\ 2Ú7s}UÒ«¾"ÛWs}U⫾"ÜWc}UÚ×ú\8ahÛÌõUG«¾\ 2{¬æúªÄW}E¸¯æúªÄW}E¸¯æúªÄW}E¸¯æúªÃU_\ 1>Vs}U⫾"ÜWs}U⫾"ÜWs}U⫾"ÜWs}Õ᪯\0\1f«¹¾*ñU_\11¾*ñU_\11¾*ñU_\11¾ªð]_e|®æúªÄW}E¸¯æúªÄW}E¸¯æúªÄW}E¸¯æúªÃU_\ 1>Vs}U⫾"ÜWs}U⫾"ÜWs}U⫾"ÜWs}Õ᪯\0\1f«¹¾ÊÅPU_Ñ\85®ç>]èx|\7fX_¥+}s}µ~°ËõÕ:µê«×Q_\8d?\11}:^þ-O7?\90Þ¹Çéðrù\9fÁ£äêò`^_\7fûMw¼¤Î}ºåü#Ú§×Ãñüõ/êw.t\a¿\9eFÜW\1fàï\87×\97¯ï®Ã¯§\11÷Õûøóñp|~~.ñu\9að±ú\0¿¼\9dÓsûØ×iÄ}õ\ 1~y;Ç\97ö±¯Ó\88ûê\ 3üòv\9eΧ\16¿\9eFÜWïã/ÇÃÓǹ}ìë4ácõ\ 1þ|8¿¿¶\8f}\9dFÜW\1fà¯\87§··ö±¯Ó\88ûê\ 3üúÍÃ\12__R$ÜWó\97\14;\_R\ 4|¬æ/)\96øú\92"á¾\9a¿¤Xâjy\ 1÷Uhy;\-/à¾
+-o\85ï\967ãc\15\ e\v¸¯BËÛájy\ 1÷Uhy;\-/à¾
+-o\85ï\967ãc\15\ e\v¸¯BËÛájy\ 1÷Uhy;\-/à¾
+-o\85ï\967ãc\15\ e\v¸¯BËÛájy\ 1÷Uhy;\-/à¾
+-o\85ï\967ãc\15\ e\v¸¯BËÛájy\ 1÷Uhy;\-/à¾
+-o\83ß´¼\11\9f«Ðòv¸Z^À}\15\ e\v¸¯BËÛájy\ 1÷Uhy+|·¼\19\1f«¹åíìÕò\ 2m\9bÐòv´Z^°}\15\ e\v¸¯æ\96·²ÕòfÚ7¡åíhµ¼`û*´¼\1d®\96\17p_Í-og¯\96\17\84\96·¢wË\9bí±
+-o\87«å\ 5ÜWsËÛÙ«å\ 5Ú6¡åíhµ¼`û*´¼\15¾[Þ\8c\8fÕÜòvöjy\81¶Mhy;Z-/ؾ
+-o\87«å\ 5ÜW¡å­ðÝòf|¬BËÛájy\ 1÷Uhy;\-/à¾
+-o\87«å\ 5ÜW¡å­ðÝòf|¬BËÛájy\ 1÷Uhy;\-/à¾
+-o\87«å\ 5ÜW¡å­ðÝòf|¬BËÛájy\ 1÷Uhy;\-/à¾
+-o\87«å\ 5ÜW¡å­ðÝòf|¬BËÛájy\ 1÷Uhy;\-/à¾
+-o\87«å\ 5ÜW¡å­ðÝòf|¬BËÛájy\ 1÷Uhy;\-/à¾
+-o\87«å\ 5ÜW¡åmð\9b\967âs\15\ e\v¸¯BËÛájy\ 1÷Uhy;\-/à¾
+-o\85ï\967ãc\15\ e\v¸¯BËÛájy\ 1÷Uhy;\-/à¾
+-o\85ï\967ãc\15\ e\v¸¯BËÛájy\ 1÷Uhy;\-/à¾
+-o\85ï\967ãc\15\ e\v¸¯BËÛájy\ 1÷ÕÜòvöjy\81¶Mhy+z·¼Ù\1e«Ðòv¸Z^À}5¶¼\1d}my\ 1þ¼\b-o\a«å\ 5ÚW¡å­ðÝòf|¬æ\96·³WË\v´mBËÛÑjyÁöUhy;\-/à¾\9a[ÞÊVË\9b\84\96·£Õò\82í«Ðòv¸Z^À}5·¼\9d½Z^ m\13\8aÞ-o¶Ç*´¼\1d®\96\17p_\85\96·ÃÕò\ 2î«Ðòv¸Z^À}\15
+ß-oÆÇ*´¼\1d®\96\17p_\85\96·ÃÕò\ 2î«Ðòv¸Z^À}\15
+ß-oÆÇ*´¼\1d®\96\17p_\85\96·ÃÕò\ 2î«Ðòv¸Z^À}\15\ 6¿iy#>W¡åípµ¼\80û*´¼\1d®\96\17p_\85\96·ÃÕò\ 2î«ÐòVøny3>V¡åípµ¼\80û*´¼\1d®\96\17p_\85\96·ÃÕò\ 2î«ÐòVøny3>V¡å\r)jÛòÂ\85VË{{¡ãñãqË\e®ôÍ-ïå·\11§×ËÿþrË»N­\96÷íSËû\87ÿô_Æ\1f\88>~\1c\9e\9e¾þ      »\e`¦¼Ç×ÓóÃ\94÷x8¾ýöcJ¼£Î}ºä\9d\9av\15¿w.\94:bÀ}\15\ eWG\f¸¯BGÜáê\88\ 1÷Uè\88+|wÄ\19\1f«Ð\11w¸:bÀ}\15\ eWG\f¸¯BGÜáê\88\ 1÷Uè\88+|wÄ\19\1f«Ð\11w¸:bÀ}\15\ eWG\f¸¯BGÜáê\88\ 1÷Uè\88+|wÄ\19\1f«Ð\11w¸:bÀ}\15\ eWG\f¸¯BGÜáê\88\ 1÷Uè\88+|wÄ\19\1f«Ð\11w¸:bÀ}\15\ eWG\f¸¯BGÜáê\88\ 1÷Uè\88+|wÄ\19\1f«Ð\11w¸:bÀ}\15\ eWG\f¸¯BGÜáê\88\ 1÷Uè\88+|wÄ\19\1f«Ð\11w¸:bÀ}\15\ eWG\f¸¯BGÜáê\88\ 1÷Uè\88+|wÄ\19\1f«Ð\11w¸:bÀ}\15\ eWG\f¸¯BGÜáê\88\ 1÷Uè\88\eü¦#\8eø\\85\8e¸ÃÕ\11\ 3î«Ð\11w¸:bÀ}\15\ eWG\f¸¯BG\á»#ÎøXÍ\1dqg¯\8e\18\84\8e¸£Õ\11\83í«Ð\11w¸:bÀ}5wÄ\95­\8e8Ó¾     \1dqG«#\ 6ÛW¡#îpuÄ\80ûjî\88;{uÄ@Û&tÄ\15½;âl\8f\88;\\1d1à¾\9a;âÎ^\1d1ж    \1dqG«#\ 6ÛW¡#®ðÝ\11g|¬æ\8e¸³WG\f´mBGÜÑê\88ÁöUè\88;\\1d1à¾
+\1dq\85ï\8e8ãc\15\ eWG\f¸¯BGÜáê\88\ 1÷Uè\88;\\1d1à¾
+\1dq\85ï\8e8ãc\15\ eWG\f¸¯BGÜáê\88\ 1÷Uè\88;\\1d1à¾
+\1dq\85ï\8e8ãc\15\ eWG\f¸¯BGÜáê\88\ 1÷Uè\88;\\1d1à¾
+\1dq\85ï\8e8ãc\15\ eWG\f¸¯BGÜáê\88\ 1÷Uè\88;\\1d1à¾
+\1dq\85ï\8e8ãc\15\ eWG\f¸¯BGÜáê\88\ 1÷Uè\88;\\1d1à¾
+\1dq\83ßtÄ\11\9f«Ð\11w¸:bÀ}\15\ eWG\f¸¯BGÜáê\88\ 1÷Uè\88+|wÄ\19\1f«Ð\11w¸:bÀ}\15\ eWG\f¸¯BGÜáê\88\ 1÷Uè\88+|wÄ\19\1f«Ð\11w¸:bÀ}\15\ eWG\f¸¯BGÜáê\88\ 1÷Uè\88+|wÄ\19\1f«Ð\11w¸:bÀ}\15\ eWG\f¸¯æ\8e¸³WG\f´mBG\Ñ»#ÎöX\85\8e¸ÃÕ\11\ 3#îèkG\fðçEè\88;X\1d1о
+\1dq\85ï\8e8ãc5wÄ\9d½:b m\13\8eVG\f¶¯BGÜáê\88\ 1÷ÕÜ\11W¶:âLû&tÄ\1d­\8e\18l_\85\8e¸ÃÕ\11\ 3#îìÕ\11\ 3m\9bÐ\11Wôî\88³=V¡#îpuÄ\80û*tÄ\1d®\8e\18p_\85\8e¸ÃÕ\11\ 3î«Ð\11Wøî\883>V¡#îpuÄ\80û*tÄ\1d®\8e\18p_\85\8e¸ÃÕ\11\ 3î«Ð\11Wøî\883>V¡#îpuÄ\80û*tÄ\1d®\8e\18p_\85\8e¸ÃÕ\11\ 3î«Ð\117øMG\1cñ¹
+\1dq\87«#\ 6ÜW¡#îpuÄ\80û*tÄ\1d®\8e\18p_\85\8e¸ÂwG\9cñ±
+\1dq\87«#\ 6ÜW¡#îpuÄ\80û*tÄ\1d®\8e\18p_\85\8e¸ÂwG\9cñ±
+\1dqè`Û\8e\18.´:âÛ\v\1dOO\8f;âp¥oî\88_>.¿c=\1f¡#^§VGüþ¹#þòåç\19\12¿\1d\9e\9f¿þzz#ø=\8e\87Ë\89ó£\90øø~øí\9f\13Å+^O}ºááÞ\a\8a\7fo\8dï\&\15Ì\99\1e«P0w¸
+fÀ}\15
\ e\f¸¯BÁÜá*\98\ 1÷U(\98+|\17Ì\19\1f«P0w¸
+fÀ}\15
\ e\f¸¯BÁÜá*\98\ 1÷U(\98+|\17Ì\19\1f«P0w¸
+fÀ}\15
\ e\f¸¯BÁÜá*\98\ 1÷U(\98+|\17Ì\19\1f«P0w¸
+fÀ}\15
\ e\f¸¯BÁÜá*\98\ 1÷U(\98+|\17Ì\19\1f«P0w¸
+fÀ}\15
\ e\f¸¯BÁÜá*\98\ 1÷U(\98+|\17Ì\19\1f«P0w¸
+fÀ}\15
\ e\f¸¯BÁÜá*\98\ 1÷U(\98+|\17Ì\19\1f«P0w¸
+fÀ}\15
\ e\f¸¯BÁÜá*\98\ 1÷U(\98+|\17Ì\19\1f«P0w¸
+fÀ}\15
\ e\f¸¯BÁÜá*\98\ 1÷U(\98\eü¦`\8eø\\85\82¹ÃU0\ 3î«P0w¸
+fÀ}\15
\ e\f¸¯BÁ\á»`ÎøXÍ\ 5sg¯\82\19\84\82¹£U0\83í«P0w¸
+fÀ}5\17Ì\95­\829Ó¾   \ 5sG«`\ 6ÛW¡`îp\15Ì\80ûj.\98;{\15Ì@Û&\14Ì\15½\væl\8fU(\98;\\ 53à¾\9a\væÎ^\ 53ж    \ 5sG«`\ 6ÛW¡`®ð]0g|¬æ\82¹³WÁ\f´mBÁÜÑ*\98ÁöU(\98;\\ 53à¾
+\ 5s\85ï\829ãc\15
\ e\f¸¯BÁÜá*\98\ 1÷U(\98;\\ 53à¾
+\ 5s\85ï\829ãc\15
\ e\f¸¯BÁÜá*\98\ 1÷U(\98;\\ 53à¾
+\ 5s\85ï\829ãc\15
\ e\f¸¯BÁÜá*\98\ 1÷U(\98;\\ 53à¾
+\ 5s\85ï\829ãc\15
\ e\f¸¯BÁÜá*\98\ 1÷U(\98;\\ 53à¾
+\ 5s\85ï\829ãc\15
\ e\f¸¯BÁÜá*\98\ 1÷U(\98;\\ 53à¾
+\ 5s\83ß\14Ì\11\9f«P0w¸
+fÀ}\15
\ e\f¸¯BÁÜá*\98\ 1÷U(\98+|\17Ì\19\1f«P0w¸
+fÀ}\15
\ e\f¸¯BÁÜá*\98\ 1÷U(\98+|\17Ì\19\1f«P0w¸
+fÀ}\15
\ e\f¸¯BÁÜá*\98\ 1÷U(\98+|\17Ì\19\1f«P0w¸
+fÀ}\15
\ e\f¸¯æ\82¹³WÁ\f´mBÁ\Ñ»`ÎöX\85\82¹ÃU0\ 3`îèkÁ\fðçE(\98;X\ 53о
+\ 5s\85ï\829ãc5\17Ì\9d½
+f m\13
\8e\f¶¯BÁÜá*\98\ 1÷Õ\0W¶
+æLû&\14Ì\1d­\82\19l_\85\82¹ÃU0\ 3`îìU0\ 3m\9bP0Wô.\98³=V¡`îp\15Ì\80û*\14Ì\1d®\82\19p_\85\82¹ÃU0\ 3î«P0Wø.\983>V¡`îp\15Ì\80û*\14Ì\1d®\82\19p_\85\82¹ÃU0\ 3î«P0Wø.\983>V¡`îp\15Ì\80û*\14Ì\1d®\82\19p_\85\82¹ÃU0\ 3î«P07øMÁ\1cñ¹
+\ 5s\87«`\ 6ÜW¡`îp\15Ì\80û*\14Ì\1d®\82\19p_\85\82¹ÂwÁ\9cñ±
+\ 5s\87«`\ 6ÜW¡`îp\15Ì\80û*\14Ì\1d®\82\19p_\85\82¹ÂwÁ\9cñ±
+\ 5s\b\82\19
+æÛ\v\1dOÇÇ\ 5s¸Ò(\98ÏP0?¿\1e\9e_\9f_¡`^§VÁüa\ 5óÏ¿üô\97{ñìÛo\1dÖ\8d1\eæ÷\8fç\97\87\1fCVÓ\1a¯¹\9bÖÛ{\86¦õÎ\85\9añ±
+Mk\87«i\ 5ÜW¡iíp5­\80û*4­\1d®¦\15p_\85¦µÂwÓ\9añ±
+Mk\87«i\ 5ÜW¡iíp5­\80û*4­\1d®¦\15p_\85¦µÂwÓ\9añ±
+Mk\87«i\ 5ÜW¡iíp5­\80û*4­\1d®¦\15p_\85¦µÂwÓ\9añ±
+Mk\87«i\ 5ÜW¡iíp5­\80û*4­\1d®¦\15p_\85¦µÂwÓ\9añ±
+Mk\87«i\ 5ÜW¡iíp5­\80û*4­\1d®¦\15p_\85¦µÂwÓ\9añ±
+Mk\87«i\ 5ÜW¡iíp5­\80û*4­\1d®¦\15p_\85¦µÂwÓ\9añ±
+Mk\87«i\ 5ÜW¡iíp5­\80û*4­\1d®¦\15p_\85¦µÁo\9aÖ\88ÏUhZ;\M+à¾
+Mk\87«i\ 5ÜW¡iíp5­\80û*4­\15¾\9bÖ\8c\8fÕÜ´vöjZ\81¶MhZ;ZM+ؾ
+Mk\87«i\ 5ÜWsÓZÙjZ3í\9bдv´\9aV°}\15\9aÖ\ e
+¸¯æ¦µ³WÓ
+´mBÓZÑ»iÍöX\85¦µÃÕ´\ 2iíìÕ´\ 2m\9bдv´\9aV°}\15\9aÖ
+ßMkÆÇjnZ;{5­@Û&4­\1d­¦\15l_\85¦µÃÕ´\ 2î«Ð´VønZ3>V¡iíp5­\80û*4­\1d®¦\15p_\85¦µÃÕ´\ 2î«Ð´VønZ3>V¡iíp5­\80û*4­\1d®¦\15p_\85¦µÃÕ´\ 2î«Ð´VønZ3>V¡iíp5­\80û*4­\1d®¦\15p_\85¦µÃÕ´\ 2î«Ð´VønZ3>V¡iíp5­\80û*4­\1d®¦\15p_\85¦µÃÕ´\ 2î«Ð´VønZ3>V¡iíp5­\80û*4­\1d®¦\15p_\85¦µÃÕ´\ 2î«Ð´6øMÓ\1añ¹
+Mk\87«i\ 5ÜW¡iíp5­\80û*4­\1d®¦\15p_\85¦µÂwÓ\9añ±
+Mk\87«i\ 5ÜW¡iíp5­\80û*4­\1d®¦\15p_\85¦µÂwÓ\9añ±
+Mk\87«i\ 5ÜW¡iíp5­\80û*4­\1d®¦\15p_\85¦µÂwÓ\9añ±
+Mk\87«i\ 5ÜW¡iíp5­\80ûjnZ;{5­@Û&4­\15½\9bÖl\8fUhZ;\M+à¾\1a\9bÖ\8e¾6­\0\7f^\84¦µ\83Õ´\ 2í«Ð´VønZ3>VsÓÚÙ«i\ 5Ú6¡iíh5­`û*4­\1d®¦\15p_ÍMke«iÍ´oBÓÚÑjZÁöUhZ;\M+à¾\9a\9bÖÎ^M+ж   MkEï¦5Ûc\15\9aÖ\ e
+¸¯BÓÚájZ\ 1÷UhZ;\M+à¾
+Mk\85ï¦5ãc\15\9aÖ\ e
+¸¯BÓÚájZ\ 1÷UhZ;\M+à¾
+Mk\85ï¦5ãc\15\9aÖ\ e
+¸¯BÓÚájZ\ 1÷UhZ;\M+à¾
+Mk\83ß4­\11\9f«Ð´v¸\9aVÀ}\15\9aÖ\ e
+¸¯BÓÚájZ\ 1÷UhZ+|7­\19\1f«Ð´v¸\9aVÀ}\15\9aÖ\ e
+¸¯BÓÚájZ\ 1÷UhZ+|7­\19\1f«Ð´\86 ³mZáB«i½½ÐñtzÜ´\86+}óWy/úË\ 5\83¦u\9dº6­\97ÿÝÜ6­ÿüã¯_æWy/¿ª<\7fý=á\8d0\8bÖ§óåÇéG_å}½üüñÛOhñ\92:÷é\96ó\8fh_?ß{ç:\8f?\b\fðçEø p\ 5ï\ f\ 2gz¬Â\a\81;\\1f\ 4\ 6ÜWá\83À\1d®\ f\ 2\ 3î«ðAà\ eW<\r¸¯B<]á;\9eÎøX\85xºÃ\15O\ 3î«\10Ow¸âiÀ}\15âé\ eW<\r¸¯B<]á;\9eÎøX\85xºÃ\15O\ 3î«\10Ow¸âiÀ}\15âé\ eW<\r¸¯B<]á;\9eÎøX\85xºÃ\15O\ 3î«\10Ow¸âiÀ}\15âé\ eW<\r¸¯B<]á;\9eÎøX\85xºÃ\15O\ 3î«\10Ow¸âiÀ}\15âé\ eW<\r¸¯B<]á;\9eÎøX\85xºÃ\15O\ 3î«\10Ow¸âiÀ}\15âé\ eW<\r¸¯B<]á;\9eÎøX\85xºÃ\15O\ 3î«\10Ow¸âiÀ}\15âé\ eW<\r¸¯B<]á;\9eÎøX\85xºÃ\15O\ 3î«\10Ow¸âiÀ}\15âé\ eW<\r¸¯B<Ýà7ñtÄç*ÄÓ\1d®x\1ap_\85xºÃ\15O\ 3î«\10Ow¸âiÀ}\15âé
+ßñtÆÇj\8e§;{ÅÓ@Û&ÄÓ\1d­x\1al_\85xºÃ\15O\ 3î«9\9e®lÅÓ\99öM\88§;Zñ4ؾ
+ñt\87+\9e\ 6ÜWs<ÝÙ+\9e\ 6Ú6!\9e®è\1dOg{¬B<Ýá\8a§\ 1÷Õ\1cOwö\8a§\81¶M\88§;Zñ4ؾ
+ñt\85ïx:ãc5ÇÓ\9d½âi m\13âé\8eV<\r¶¯B<Ýá\8a§\ 1÷U\88§+|ÇÓ\19\1f«\10Ow¸âiÀ}\15âé\ eW<\r¸¯B<Ýá\8a§\ 1÷U\88§+|ÇÓ\19\1f«\10Ow¸âiÀ}\15âé\ eW<\r¸¯B<Ýá\8a§\ 1÷U\88§+|ÇÓ\19\1f«\10Ow¸âiÀ}\15âé\ eW<\r¸¯B<Ýá\8a§\ 1÷U\88§+|ÇÓ\19\1f«\10Ow¸âiÀ}\15âé\ eW<\r¸¯B<Ýá\8a§\ 1÷U\88§+|ÇÓ\19\1f«\10Ow¸âiÀ}\15âé\ eW<\r¸¯B<Ýá\8a§\ 1÷U\88§\eü&\9e\8eø\\85xºÃ\15O\ 3î«\10Ow¸âiÀ}\15âé\ eW<\r¸¯B<]á;\9eÎøX\85xºÃ\15O\ 3î«\10Ow¸âiÀ}\15âé\ eW<\r¸¯B<]á;\9eÎøX\85xºÃ\15O\ 3î«\10Ow¸âiÀ}\15âé\ eW<\r¸¯B<]á;\9eÎøX\85xºÃ\15O\ 3î«\10Ow¸âiÀ}5ÇÓ\9d½âi m\13âé\8aÞñt¶Ç*ÄÓ\1d®x\1ap_\8dñtG_ãi\80?/B<ÝÁ\8a§\81öU\88§+|ÇÓ\19\1f«9\9eîì\15O\ 3m\9b\10Ow´âi°}\15âé\ eW<\r¸¯æxº²\15OgÚ7!\9eîhÅÓ`û*ÄÓ\1d®x\1ap_Íñtg¯x\1a\84xº¢w<\9dí±
+ñt\87+\9e\ 6ÜW!\9eîpÅÓ\80û*ÄÓ\1d®x\1ap_\85xºÂw<\9dñ±
+ñt\87+\9e\ 6ÜW!\9eîpÅÓ\80û*ÄÓ\1d®x\1ap_\85xºÂw<\9dñ±
+ñt\87+\9e\ 6ÜW!\9eîpÅÓ\80û*ÄÓ\1d®x\1ap_\85xºÁoâé\88ÏU\88§;\ñ4à¾
+ñt\87+\9e\ 6ÜW!\9eîpÅÓ\80û*ÄÓ\15¾ãé\8c\8fU\88§;\ñ4à¾
+ñt\87+\9e\ 6ÜW!\9eîpÅÓ\80û*ÄÓ\15¾ãé\8c\8fU\88§CûÛÆÓp¡\15Oß^èxz~\1cO\87+}s<½þÆs\8e§×©\15O\1f?ÇÓÿþã¿~ù\87_\7fýùÇ\7fùáôôý\7fÜI©Ï_ÿ\86À׿Å|ãÍÇyù)ïü(¥Þ\ 1V¼ò\ e°nï\1c\ 2¬;\17J\ 1\16à¾
+\ 1V\85ï\0+ãc\15\ 2¬\ eW\80\ 5¸¯B\80Õá
\0÷U\b°:\\ 1\16à¾
+\ 1V\85ï\0+ãc\15\ 2¬\ eW\80\ 5¸¯B\80Õá
\0÷U\b°:\\ 1\16à¾
+\ 1V\85ï\0+ãc\15\ 2¬\ eW\80\ 5¸¯B\80Õá
\0÷U\b°:\\ 1\16à¾
+\ 1V\85ï\0+ãc\15\ 2¬\ eW\80\ 5¸¯B\80Õá
\0÷U\b°:\\ 1\16à¾
+\ 1V\83ß\ 4X\11\9f«\10`u¸\ 2,À}\15\ 2¬\ eW\80\ 5¸¯B\80Õá
\0÷U\b°*|\aX\19\1f«9Àêì\15`\ 1m\9b\10`u´\ 2,°}\15\ 2¬\ eW\80\ 5¸¯æ\0«²\15`eÚ7!Àêh\ 5X`û*\ 4X\1d®\0\vp_Í\ 1Vg¯\0\v\84\0«¢w\80\95í±
+\ 1V\87\ 2ÜWs\80ÕÙ+À\ 2Ú6!Àêh\ 5X`û*\ 4X\15¾\ 3¬\8c\8fÕ\1c`uö
\80¶M\b°:Z\ 1\16ؾ
+\ 1V\87\ 2ÜW!Àªð\1d`e|¬B\80Õá
\0÷U\b°:\\ 1\16à¾
+\ 1V\87\ 2ÜW!Àªð\1d`e|¬B\80Õá
\0÷U\b°:\\ 1\16à¾
+\ 1V\87\ 2ÜW!Àªð\1d`e|¬B\80Õá
\0÷U\b°:\\ 1\16à¾
+\ 1V\87\ 2ÜW!Àªð\1d`e|¬B\80Õá
\0÷U\b°:\\ 1\16à¾
+\ 1V\87\ 2ÜW!Àªð\1d`e|¬B\80Õá
\0÷U\b°:\\ 1\16à¾
+\ 1V\87\ 2ÜW!Àjð\9b\0+âs\15\ 2¬\ eW\80\ 5¸¯B\80Õá
\0÷U\b°:\\ 1\16à¾
+\ 1V\85ï\0+ãc\15\ 2¬\ eW\80\ 5¸¯B\80Õá
\0÷U\b°:\\ 1\16à¾
+\ 1V\85ï\0+ãc\15\ 2¬\ eW\80\ 5¸¯B\80Õá
\0÷U\b°:\\ 1\16à¾
+\ 1V\85ï\0+ãc\15\ 2¬\ eW\80\ 5¸¯B\80Õá
\0÷Õ\1c`uö
\80¶M\b°*z\a\1e«\10`u¸\ 2,À}5\ 6X\1d}\r°\0þ¼\b\ 1V\a\ 2ÚW!Àªð\1d`e|¬æ\0«³W\80\ 5´mB\80ÕÑ
+°ÀöU\b°:\\ 1\16à¾\9a\ 3¬ÊV\80\95\84\0«£\15`\81í«\10`u¸\ 2,À}5\aX\9d½\ 2, m\13\ 2¬\8aÞ\ 1V¶Ç*\ 4X\1d®\0\vp_\85\0«Ã\15`\ 1î«\10`u¸\ 2,À}\15\ 2¬
\ 1VÆÇ*\ 4X\1d®\0\vp_\85\0«Ã\15`\ 1î«\10`u¸\ 2,À}\15\ 2¬
\ 1VÆÇ*\ 4X\1d®\0\vp_\85\0«Ã\15`\ 1î«\10`u¸\ 2,À}\15\ 2¬\ 6¿   °">W!Àêp\ 5X\80û*\ 4X\1d®\0\vp_\85\0«Ã\15`\ 1î«\10`Uø\ e°2>V!Àêp\ 5X\80û*\ 4X\1d®\0\vp_\85\0«Ã\15`\ 1î«\10`Uø\ e°2>V!À\8aÅP\17\85V\80u{¡Ë/E\8f\ 3¬p¥\11`\9ds\80õ|ù5÷ütùñ&\ 6X:µ\ 2¬\13\ 4X\7füáýéû¿ýõ˽\18ãééíõ»[w>Ö\8fóÛÃoZþ\1e^àÕuîÓÝ\1f\a\1a÷.\14\ 2\rÂ}5\a\1a\1d®@\ 3ð±\9a\ 3\8d\12_\81\ 6á¾\9a\ 3\8d\12_\81\ 6á¾\9a\ 3\8d\12_\81\ 6á¾\9a\ 3\8d\ e\ 1øXÍ\81F\89¯@\83p_Í\81F\89¯@\83p_Í\81F\89¯@\83p_Í\81F\85ï@#ãs5\a\1a\ 2\rÂ}5\a\1a\ 2\rÂ}5\a\1a\ 2\rÂ}5\a\1a\1d®@\ 3ð±\1a\ 3\8dÒ¾\ 6\1aDÛf\ e4Jz\ 5\1adûj\ e4J|\ 5\1a\84ûj\f4:{\ 5\1a@ûf\ e4Jz\ 5\1adûj\ e4J|\ 5\1a\84ûj\f4Jû\1ah\10m\9b9Ðèh\ 5\1a`\8fÕ\1ch\94ø
+4\b÷Õ\18h\94ö5РÚ6s QÒ+РÛWs Ñá
+4\0\1f«1Ð(ík A´mæ@£¤W A¶¯æ@£ÄW A¸¯æ@£Ã\15h\0>Vs Qâ+РÜWs Qâ+РÜWs Qâ+РÜWs Ñá
+4\0\1f«9Ð(ñ\15h\10î«9Ð(ñ\15h\10î«9Ð(ñ\15h\10î«9Ðèp\ 5\1a\80\8fÕ\1ch\94ø
+4\b÷Õ\1ch\94ø
+4\b÷Õ\1ch\94ø
+4\b÷Õ\1cht¸\ 2\rÀÇj\ e4J|\ 5\1a\84ûj\ e4J|\ 5\1a\84ûj\ e4J|\ 5\1a\84ûj\ e4:\\81\ 6àc5\a\1a\ 2\rÂ}5\a\1a\ 2\rÂ}5\a\1a\ 2\rÂ}5\a\1a\15¾\ 3\8d\8cÏÕ\1ch\94ø
+4\b÷Õ\1ch\94ø
+4\b÷Õ\1ch\94ø
+4\b÷Õ\1cht¸\ 2\rÀÇj\ e4J|\ 5\1a\84ûj\ e4J|\ 5\1a\84ûj\ e4J|\ 5\1a\84ûj\ e4:\\81\ 6àc5\a\1a\ 2\rÂ}5\a\1a\ 2\rÂ}5\a\1a\ 2\rÂ}5\a\1a\1d®@\ 3ð±\9a\ 3\8d\12_\81\ 6á¾\9a\ 3\8d\12_\81\ 6á¾\1a\ 3\8dÒ¾\ 6\1aDÛf\ e4:Z\81\ 6Øc5\a\1a\ 2\rÂ}5\ 5\1a%ý{ AðçÅ\1ch\94ð
+4\88öÕ\1cht¸\ 2\rÀÇj\f4Jû\1ah\10m\9b9Ð(é\15h\90í«9Ð(ñ\15h\10î«1Ðèì\15h\0í\9b9Ð(é\15h\90í«9Ð(ñ\15h\10î«1Ð(ík A´mæ@££\15h\80=Vs Qâ+РÜWs Qâ+РÜWs Qâ+РÜWs Ñá
+4\0\1f«9Ð(ñ\15h\10î«9Ð(ñ\15h\10î«9Ð(ñ\15h\10î«9Ðèp\ 5\1a\80\8fÕ\1ch\94ø
+4\b÷Õ\1ch\94ø
+4\b÷Õ\1ch\94ø
+4\b÷Õ\1chTø\ e42>Ws Qâ+РÜWs Qâ+РÜWs Qâ+РÜWs Ñá
+4\0\1f«9Ð(ñ\15h\10î«9Ð(ñ\15h\10î«9Ð(ñ\15h\10î«9Ðèp\ 5\1a\80\8fÕ\1c\92 
+4èB×s\9f.t<\9d\1f\ 6\1aéJßú\85\9cç÷Ëñóå\a»\1ch¬S+Ðx\9e\81Æø#ÑÇ\8fË¿çõ»[Áïq¼üª÷ò0Å8\1d\ fÇ·ß~N\89\97Ô¹O·\9c\7fDûò\9c__¿þÞüÎ\85îà×Ó\88ûê\ 3üõp<\7fý\89¢Ã¯§\11÷Õ\aøûáõåôÚâ×Ó\88ûê}üùòv\9e\9fÛǾN\13>V\1fà\97·szn\1fû:\8d¸¯>À/oçë\7f½Küz\1aq_}\80_ÞÎÓùÔâ×Ó\88ûêÿ_ÙݬV\9a¤W\14¾\15\ fí\89\90R©¿;ðÄ`0ô¼±ÓvAö\ f\95Ù\86¾û\96Ê\8a\1dG;tÞµjþ±WÔ§¢tT\9c\87ø<þõîæöåÁ¾öõ4Å\8fÕ+ñû\9b\87çGûÚ×Ó\18ïÕ+ñÇ\9bÛ§'ûÚ×Ó\18ïÕ+ñç\9b\87Ç'ýÚß\9fÆx¯^¹rìõ§óðö\89BÅ×Ó\14?V¯Ä_\7f:__ìk_Oc¼W¯Äßïd\93ñuÓ\eÅ{u¾éMÆ×Mo\14ïÕù¦7\17ÏMo\10?Vç\9bÞd|ÝôFñ^\9doz\93ñuÓ\eÅ{u¾éMÆ×Mo\14ïÕù¦7\17ÏMo\10?Vç\9bÞd|ÝôFñ^\9doz\93ñuÓ\eÅ{\15 ±\8b\a\12C¼W\ 1\12«ø\86ÄsüX\ 5Hìâ\81Ä\10ïU\80Ä.\1eH\fñ^\ 5Hìâ\81Ä\10ïU\80Ä*¾!ñ\1c?V\ 1\12»x 1Ä{\15 ±\8b\a\12C¼W\ 1\12»x 1Ä{\15 ±\89_@â1~®\ 2$vñ@b\88÷*@b\17\ f$\86\ 2$vñ@b\88÷*@b\15ß\90x\8e\1f«3$ví\ 5\89!]\9b\0\89]:\90\18Ú½
+\90ØÅ\ 3\89!Þ«3$Ví@â9Ý\9b\0\89]:\90\18Ú½
+\90ØÅ\ 3\89!Þ«3$ví\ 5\89!]\9b\0\89UzCâ¹}¬\ 2$vñ@b\88÷ê\f\89]{AbH×&@b\97\ e$\86\ 2$Vñ\r\89çø±:Cb×^\90\18Òµ \90Ø¥\ 3\89¡Ý«\0\89]<\90\18â½
+\90XÅ7$\9eãÇ*@b\17\ f$\86\ 2$vñ@b\88÷*@b\17\ f$\86\ 2$Vñ\r\89çø±
+\90ØÅ\ 3\89!Þ«\0\89]<\90\18â½
+\90ØÅ\ 3\89!Þ«\0\89U|Câ9~¬\ 2$vñ@b\88÷*@b\17\ f$\86\ 2$vñ@b\88÷*@b\15ß\90x\8e\1f«\0\89]<\90\18â½
+\90ØÅ\ 3\89!Þ«\0\89]<\90\18â½
+\90XÅ7$\9eãÇ*@b\17\ f$\86\ 2$vñ@b\88÷*@b\17\ f$\86\ 2$6ñ\vH<ÆÏU\80Ä.\1eH\fñ^\ 5Hìâ\81Ä\10ïU\80Ä.\1eH\fñ^\ 5H¬â\e\12Ïñc\15 ±\8b\a\12C¼W\ 1\12»x 1Ä{\15 ±\8b\a\12C¼W\ 1\12«ø\86ÄsüX\ 5Hìâ\81Ä\10ïU\80Ä.\1eH\fñ^\ 5Hìâ\81Ä\10ïU\80Ä*¾!ñ\1c?V\ 1\12»x 1Ä{\15 ±\8b\a\12C¼WgHìÚ\v\12Cº6\ 1\12«ô\86ÄsûX\ 5Hìâ\81Ä\10ïÕ\11\12»ô;$\86ðÇE\80Ä.\1cH\fé^\ 5H¬â\e\12Ïñcu\86Ä®½ 1¤k\13 ±K\a\12C»W\ 1\12»x 1Ä{u\86Ī\1dH<§{\13 ±K\a\12C»W\ 1\12»x 1Ä{u\86Ä®½ 1¤k\13 ±JoH<·\8fU\80Ä.\1eH\fñ^\ 5Hìâ\81Ä\10ïU\80Ä.\1eH\fñ^\ 5H¬â\e\12Ïñc\15 ±\8b\a\12C¼W\ 1\12»x 1Ä{\15 ±\8b\a\12C¼W\ 1\12«ø\86ÄsüX\ 5Hìâ\81Ä\10ïU\80Ä.\1eH\fñ^\ 5Hìâ\81Ä\10ïU\80Ä&~\ 1\89Çø¹
+\90ØÅ\ 3\89!Þ«\0\89]<\90\18â½
+\90ØÅ\ 3\89!Þ«\0\89U|Câ9~¬\ 2$vñ@b\88÷*@b\17\ f$\86\ 2$vñ@b\88÷*@b\15ß\90x\8e\1f«\0\89\a\ak!1\1chAâË\ 3Ý}y¼\ e\89\87#ýnHütwóxûø\0\90x=µ ñ×wHü\87\7f¹»»ûço¿þòß\7fÿ÷o¿þøË\9fOÄúöÿ\9cÞ¾Îz\11:ßãÓóõ«Ý6é\1dϺIïåa\aÒûÉ\81\vñ^\ 5Òëâ!½\10ïU ½*¾Iï\1c?V\81ôºxH/Ä{\15\8b\87ôB¼W\81ôºxH/Ä{\15\8aoÒ;Ç\8fU ½.\1eÒ\vñ^\ 5Òëâ!½\10ïU ½.\1eÒ\vñ^\ 5Ò«â\9bôÎñc\15\8b\87ôB¼W\81ôºxH/Ä{\15\8b\87ôB¼W\81ôªø&½süX\ 5Òëâ!½\10ïU ½.\1eÒ\vñ^\ 5Òëâ!½\10ïU ½*¾Iï\1c?V\81ôºxH/Ä{\15\8b\87ôB¼W\81ôºxH/Ä{\15\8aoÒ;Ç\8fU ½.\1eÒ\vñ^\ 5Òëâ!½\10ïU ½.\1eÒ\vñ^\ 5Ò«â\9bôÎñc\15\8b\87ôB¼W\81ôºxH/Ä{\15\8b\87ôB¼W\81ô\9aø\ 5é\1dãç*\90^\17\ fé\85\ 2éuñ\90^\88÷*\90^\17\ fé\85\ 2éUñMzçø±:\93^×^¤\17Òµ     ¤×¥Cz¡Ý«@z]<¤\17â½:\93\ eé\9dÓ½       ¤×¥Cz¡Ý«@z]<¤\17â½:\93^×^¤\17Òµ       ¤W¥7é\9dÛÇ*\90^\17\ fé\85x¯Î¤×µ\17é\85tm\ 2éué\90^h÷*\90^\15ߤw\8e\1f«3éuíEz!]\9b@z]:¤\17Ú½
+¤×ÅCz!Þ«@zU|\93Þ9~¬\ 2éuñ\90^\88÷*\90^\17\ fé\85\ 2éuñ\90^\88÷*\90^\15ߤw\8e\1f«@z]<¤\17â½
+¤×ÅCz!Þ«@z]<¤\17â½
+¤WÅ7é\9dãÇ*\90^\17\ fé\85\ 2éuñ\90^\88÷*\90^\17\ fé\85\ 2éUñMzçø±
+¤×ÅCz!Þ«@z]<¤\17â½
+¤×ÅCz!Þ«@zU|\93Þ9~¬\ 2éuñ\90^\88÷*\90^\17\ fé\85\ 2éuñ\90^\88÷*\90^\13¿ ½cü\\ 5Òëâ!½\10ïU ½.\1eÒ\vñ^\ 5Òëâ!½\10ïU ½*¾Iï\1c?V\81ôºxH/Ä{\15\8b\87ôB¼W\81ôºxH/Ä{\15\8aoÒ;Ç\8fU ½.\1eÒ\vñ^\ 5Òëâ!½\10ïU ½.\1eÒ\vñ^\ 5Ò«â\9bôÎñc\15\8b\87ôB¼W\81ôºxH/Ä{u&½®½H/¤k\13H¯JoÒ;·\8fU ½.\1eÒ\vñ^\1dI¯K¿\93^\b\7f\\ 4ÒëÂ!½\90îU ½*¾Iï\1c?VgÒëÚ\8bôBº6\81ôºtH/´{\15\8b\87ôB¼WgÒ«Ú!½sº7\81ôºtH/´{\15\8b\87ôB¼WgÒëÚ\8bôBº6\81ôªô&½sûX\ 5Òëâ!½\10ïU ½.\1eÒ\vñ^\ 5Òëâ!½\10ïU ½*¾Iï\1c?V\81ôºxH/Ä{\15\8b\87ôB¼W\81ôºxH/Ä{\15\8aoÒ;Ç\8fU ½.\1eÒ\vñ^\ 5Òëâ!½\10ïU ½.\1eÒ\vñ^\ 5Òkâ\17¤w\8c\9f«@z]<¤\17â½
+¤×ÅCz!Þ«@z]<¤\17â½
+¤WÅ7é\9dãÇ*\90^\17\ fé\85\ 2éuñ\90^\88÷*\90^\17\ fé\85\ 2éUñMzçø±
+¤w¤¨\8eôÂ\81\16é½<ÐÝ\97§ë¤w8ÒAz\1f\80ô><¿þ¶!ÑûþÐ\ 2½\ fï ÷Çß\7füüö§\9bï¿üøùoß~þï_þëÇg¶íöéí[ë»óÉ[|~y¸\ 6z7w\9bNºµÛÅQ\aìv\9ef²nc¹7Aº©r Û\®M`nª\1cå6\97k\13\8c\9b*\87¸ÍåÚ\ 4àfÊÛ·\8dåÞ\ 4ݦÊÁms¹6\81¶©rdÛ\®Mpmª\1cÖ6\97k\13P\9b)oÓ6\96{\13D\9b*\a´ÍåÚ\ 4ΦÊÑls¹6Á²©r(Û\®M\80l¦¼\1dÛXîMPlª\1cÄ6\97k\13\b\9b*G°ÍåÚ\ 4¿¦Êáks¹6\ 1¯\99ò¶kc¹7A®©ràÚ\®M`kª\1cµ6\97k\13Ì\9a*\87¬ÍåÚ\ 4°&Ê\17^m*\1f\9b ÕT9Xm.×&P5U\8eT\9b˵        NM\95ÃÔærm\ 2R3åmÔÆroÎBM\85\17P\9b»\1f\17\81§©ntÚ\1c®M°iª\1c\9a6\97ks\86i&\1c\976vk\11T\9aê\ 6¥ÍáÚ\ 4\92¦Ê\11is¹6g\8f¦Â\8b£ÍÝ\8f\8b\80ÑLw[´1Ü\9b ÑT9\10m.×æÌÐTx)´¹ûq\11\f\9aê\86 ÍáÚ\ 4\80fÊÛ\9f\8dåÞ\9cõ\99
+/|6w?.\ 2=SÝȳ9\\9bàÎT9ìl.×& 3SÞæl,÷&\883U\ e8\9b˵      ÜL\95£Íærm\825SåP³¹\\9b\0ÍLy;³±Ü\9b ÌT9Èl.×&\103U\8e0\9b˵     ¾L\95ÃËærm\ 2.3åmËÆro\82,SåÀ²¹\\9bÀÊT9ªl.×&\982U\ e)\9b˵      Ì\94·'\e˽        \9aL\95\83Éærm\ 2%SåH²¹\\9bàÈT9\8cl.×& 2SÞ\86l,÷&\b2U\ e \9b˵     |L\95£Çærm\82\1dSåб¹\\9b\0ÇDùÂ\8dMåc\13Ô\98*\a\8dÍåÚ\ 42¦Ê\11cs¹6Á\8b©r¸Ø\®MÀb¦¼­ØXîM\90\1c(6\97k\13\98\98*G\89ÍåÚ\ 4#¦Ê!bs¹6\ 1\88\99òöac¹7A\87©rpØ\®M aª\1c\196\97k\13\\98*\87\85ÍåÚ\ 4\14fÊÛ\84\8dåÞ\ 4\11¦Ê\ 1as¹6\81\83©r4Ø\®ÍÙ\82©ð¢`s÷ã"@0ÓÝ\ el\f÷&(0U\ e\ 2\9b˵9\120Õ}\17`sõÃ\1eø/U\rÿ\9a»µ    øË\94·ý\1a˽9Ë/\15^ðkî~\\ 4ö¥ºQ_s¸6Á|©rÈ×\®Í\19|\99p¼×Ø­EÐ^ª\eì5\87k\13¨\97*GzÍåÚ\9c\9d\97
+/æ5w?.\ 2ò2Ým¼Æpo\82ðRå\0¯¹\\9bÀ»T9ºk.×&Ø.U\ eí\9a˵      °Ë\94·ë\1a˽        ªK\95\83ºærm\ 2éRå\88®¹\\9bà¹T9\9ck.×&`.SÞ\96k,÷&H.U\ eä\9a˵     \8cK\95£¸ærm\82áRå\10®¹\\9b\0¸DùÂoMåc\13ô\96*\aoÍåÚ\ 4º¥Ê\91[s¹6Ám©rØÖ\®M@[¦¼ÍÖXîM\10\1c°5\97k\13¸\96*GkÍåÚ\ 4«¥Ê¡Zs¹6\ 1j\99òvZc¹7Ai\8d¼H!­ù4Ëh]\9cæîËóu¢uý<¿ûÒÅõ\9d\92\99h­§\96Ñzüh´þô\9bÏú×oßÿz2\9d×O¼Ïoïð"ôÉ¥\8b¯ÿæ_!Z\eJ\8dGÝRêò¬\ 3\95úä<\93\95\82\82\96rñp)\88÷*\80)\17\8f\98\82\82\99\8d¦æø±
+lÊÅ㦠ޫ §\<t
+â½
+xÊÅ£§ Þ«à§T|\ 3ª9~¬\ 2¡rñ\18*\88÷*(*\17\ f£\82\ 2¤rñH*\88÷*X*\15ß\98j\8e\1f«À©\<\9e
+â½
+¢ÊÅCª Þ«\80ª\<ª
+â½
+®JÅ7¬\9aãÇ*Ð*\17\8f­\82\82®rñð*\88÷*\0+\17\8f°\82\82±2ñ\vd5ÆÏU`V.\1eg\ 5ñ^\ 5iåâ¡V\10ïUÀV.\1em\ 5ñ^\ 5o¥â\e\Íñcu&W®½Ì\15¤k\13Ô\95K\87]A»W\ 1^¹xä\15Ä{u¶Wª\1d|5§{\13ø\95KÇ_A»WA`¹x\b\16Ä{uFX®½\14\16¤k\13\1c\96Jo\88\8fU X.\1e\8b\ 5ñ^\9d5\96k/\8e\ 5éÚ\ 4\90åÒ\11YÐîU0Y*¾QÖ\1c?Vg\96åÚËeAº6Af¹th\16´{\15p\96\8bGgA¼WÁg©ø\ 6ZsüX\ 5¢åâ1Z\10ïUPZ.\1e¦\ 5ñ^\ 5¨åâ\91Z\10ïU°Z*¾±Ö\1c?V\81k¹x¼\16Ä{\15Ä\96\8b\87lA¼W\ 1m¹xÔ\16Ä{\15Ü\96\8ao¸5Ç\8fU [.\1e»\ 5ñ^\ 5½åâá[\10ïU\0\.\1eÁ\ 5ñ^\ 5Ã¥â\eqÍñc\15\18\97\8bÇqA¼WAr¹x(\17Ä{\150\97\8bGsA¼WÁs©ø\ 6]süX\ 5Òåâ1]\10ïUP].\1eÖ\ 5ñ^\ 5Øåâ\91]\10ïU°]&~\81»Æø¹
+¼ËÅã» Þ« ¼\<Ä\vâ½
+ÈËÅ£¼ Þ«à¼T|C¯9~¬\ 2õrñX/\88÷*h/\17\ f÷\82\ 2ørñ\88/\88÷*\98/\15ßèk\8e\1f«À¾\<î\vâ½
+òËÅC¿ Þ«\80¿\<ú\vâ½
+þKÅ7\0\9bãÇ*\100\17\8f\ 1\83\82\ 2sñ00\88÷ê\fÁ\{I0H×&X0\95Þ\18ln\1f«ÀÁ\<\1e\fâ½:\8a0\97~'a\10þ¸\b\85£Â Ý«àÂT|ð9~¬Î4̵\97\r\83tm\82\ eséð0h÷*\01\17\8f\10\83x¯ÎFLµ\83Äæto\ 2\13sé81h÷*H1\17\ f\15\83x¯ÎX̵\97\16\83tm\82\17\rÆæö±
+dÌÅcÆ Þ« Æ\<l\fâ½
+pÌÅ#Ç Þ«`ÇT|ã±9~¬\ 2\1fsñø1\88÷*\b2\17\ f!\83\ 2"sñ(2\88÷*82\15ß\90l\8e\1f«@É\<\96\fâ½
+\9aÌÅÃÉ Þ«\0Ê\<¢\fâ½
+¦ÌÄ/PÙ\18?W\81\95¹x\\19Ä{\15d\99\8b\87\96A¼W\ 1\97¹xt\19Ä{\15|\99\8ao`6Ç\8fU f.\1ec\ 6ñ^\ 5eæâaf\10ïU\80f.\1ei\ 6ñ^\ 5k¦â\e\9bÍñc\15¸ÙH¥\9c7\83\ 3-pvy Q\9c\rGúÝäìþõSåë?,\90³õÔ"gO\9f\91³ÿøå\7fþüÇ\9f\7fûõÛ)_^nn_Þ¾wvQë3ÝÝ<?\7f½ö2/@Êxà\rR.O<\80\94O\ e4\81\14\88÷*\80\14\17\ fH\81\ 2Hqñ\80\14\88÷*\80\14\15ß e\8e\1f«\0R\< \ 5â½
+ ÅÅ\ 3R Þ«\0R\< \ 5â½
+ EÅ7H\99ãÇ*\80\14\17\ fH\81\ 2Hqñ\80\14\88÷*\80\14\17\ fH\81\ 2H1ñ\v\902ÆÏU\0).\1e\90\ 2ñ^\ 5\90ââ\ 1)\10ïU\0).\1e\90\ 2ñ^\ 5\90¢â\e¤Ìñcu\ 6)®½@
+¤k\13@\8aK\a¤@»W\ 1¤¸x@
+Ä{u\ 6\1d\902§{\13@\8aK\a¤@»W\ 1¤¸x@
+Ä{u\ 6)®½@
+¤k\13@\8aJo\90\8fU\0).\1e\90\ 2ñ^\9dA\8ak/\90\ 2éÚ\ 4\90âÒ\ 1)ÐîU\0)*¾AÊ\1c?Vg\90âÚ\v¤@º6\ 1¤¸t@
+´{\15@\8a\8b\a¤@¼W\ 1¤¨ø\ 6)süX\ 5\90ââ\ 1)\10ïU\0).\1e\90\ 2ñ^\ 5\90ââ\ 1)\10ïU\0)*¾AÊ\1c?V\ 1¤¸x@
+Ä{\15@\8a\8b\a¤@¼W\ 1¤¸x@
+Ä{\15@\8a\8ao\90\8fU\0).\1e\90\ 2ñ^\ 5\90ââ\ 1)\10ïU\0).\1e\90\ 2ñ^\ 5\90¢â\e¤Ìñc\15@\8a\8b\a¤@¼W\ 1¤¸x@
+Ä{\15@\8a\8b\a¤@¼W\ 1¤¨ø\ 6)süX\ 5\90ââ\ 1)\10ïU\0).\1e\90\ 2ñ^\ 5\90ââ\ 1)\10ïU\0)&~\ 1RÆø¹
+ ÅÅ\ 3R Þ«\0R\< \ 5â½
+ ÅÅ\ 3R Þ«\0RT|\83\949~¬\ 2Hqñ\80\14\88÷*\80\14\17\ fH\81\ 2Hqñ\80\14\88÷*\80\14\15ß e\8e\1f«\0R\< \ 5â½
+ ÅÅ\ 3R Þ«\0R\< \ 5â½
+ EÅ7H\99ãÇ*\80\14\17\ fH\81\ 2Hqñ\80\14\88÷ê\fR\{\81\14H×&\80\14\95Þ en\1f«\0R\< \ 5â½:\82\14\97~\a)\10þ¸\b Å\85\ 3R Ý«\0RT|\83\949~¬Î Åµ\17H\81tm\ 2Hqé\80\14h÷*\80\14\17\ fH\81x¯Î Eµ\ 3Ræto\ 2Hqé\80\14h÷*\80\14\17\ fH\81x¯Î Åµ\17H\81tm\ 2HQé\rRæö±
+ ÅÅ\ 3R Þ«\0R\< \ 5â½
+ ÅÅ\ 3R Þ«\0RT|\83\949~¬\ 2Hqñ\80\14\88÷*\80\14\17\ fH\81\ 2Hqñ\80\14\88÷*\80\14\15ß e\8e\1f«\0R\< \ 5â½
+ ÅÅ\ 3R Þ«\0R\< \ 5â½
+ ÅÄ/@Ê\18?W\ 1¤¸x@
+Ä{\15@\8a\8b\a¤@¼W\ 1¤¸x@
+Ä{\15@\8a\8ao\90\8fU\0).\1e\90\ 2ñ^\ 5\90ââ\ 1)\10ïU\0).\1e\90\ 2ñ^\ 5\90¢â\e¤Ìñc\15@Ê`(,H\81\ 3-\90ry »//×AÊp¤\ 3¤<\0H¹{yý³ñõÏå\19¤¬§\16Hy.\90ò·ï?\7fùÏ?~ÿ~|/úþñæõ/Ó»\7fºìôi^\a\1f^\7få\¡(÷Ï7\8f·¿ýI2\1eõý¹:ëùEí¯w7·/oÿ±ûä@g|=MñcõJüþæáùíï\a\17\7f\7f\1aã½z%þxsûôôÅÆß\9fÆx¯^\89?ß<<>é×þþ4Æ{õÊíOëz,\15ß\97nÍñc\15.Ýrñ\º\ 5ñ^\85K·\<\97nA¼WáÒ-\17Ï¥[\10ïU¸tKÅ÷¥[süX\85K·\<\97nA¼WáÒ-\17Ï¥[\10ïU¸tËÅsé\16Ä{\15.ÝRñm\1cçø±
+ÆÑÅc\1c!Þ«`\1c]<Æ\11â½
+ÆÑÅc\1c!Þ«`\1cU|\eÇ9~¬\82qtñ\18G\88÷*\18G\17\8fq\84\82qtñ\18G\88÷*\18G\15ßÆq\8e\1f«`\1c]<Æ\11â½
+ÆÑÅc\1c!Þ«`\1c]<Æ\11â½
+ÆÑÄ/\8cã\18?WÁ8ºx\8c#Ä{\15\8c£\8bÇ8B¼WÁ8ºx\8c#Ä{\15\8c£\8aoã8Ç\8fÕÙ8ºö2\8e\90®M0\8e.\1dã\bí^\ 5ãèâ1\8e\10ïÕÙ8ªv\8cã\9cîM0\8e.\1dã\bí^\ 5ãèâ1\8e\10ïÕÙ8ºö2\8e\90®M0\8e\8dãÜ>VÁ8ºx\8c#Ä{u6\8e®½\8c#¤k\13\8c£KÇ8B»WÁ8ªø6\8esüX\9d\8d£k/ã\béÚ\ 4ãèÒ1\8eÐîU0\8e.\1eã\bñ^\ 5ã¨âÛ8Îñc\15\8c£\8bÇ8B¼WÁ8ºx\8c#Ä{\15\8c£\8bÇ8B¼WÁ8ªø6\8esüX\ 5ãèâ1\8e\10ïU0\8e.\1eã\bñ^\ 5ãèâ1\8e\10ïU0\8e\8dã\1c?VÁ8ºx\8c#Ä{\15\8c£\8bÇ8B¼WÁ8ºx\8c#Ä{\15\8c£\8aoã8Ç\8fU0\8e.\1eã\bñ^\ 5ãèâ1\8e\10ïU0\8e.\1eã\bñ^\ 5ã¨âÛ8Îñc\15\8c£\8bÇ8B¼WÁ8ºx\8c#Ä{\15\8c£\8bÇ8B¼WÁ8\9aø\85q\1cãç*\18G\17\8fq\84\82qtñ\18G\88÷*\18G\17\8fq\84\82qTñm\1cçø±
+ÆÑÅc\1c!Þ«`\1c]<Æ\11â½
+ÆÑÅc\1c!Þ«`\1cU|\eÇ9~¬\82qtñ\18G\88÷*\18G\17\8fq\84\82qtñ\18G\88÷*\18G\15ßÆq\8e\1f«`\1c]<Æ\11â½
+ÆÑÅc\1c!Þ«³qtíe\1c!]\9b`\1cUz\eǹ}¬\82qtñ\18G\88÷êh\1c]úÝ8Bøã"\18G\17\8eq\84\82qTñm\1cçø±:\eG×^Æ\11Òµ        ÆÑ¥c\1c¡Ý«`\1c]<Æ\11â½:\e\8eq\9cÓ½       ÆÑ¥c\1c¡Ý«`\1c]<Æ\11â½:\eG×^Æ\11Òµ       ÆQ¥·q\9cÛÇ*\18G\17\8fq\84\82qtñ\18G\88÷*\18G\17\8fq\84\82qTñm\1cçø±
+ÆÑÅc\1c!Þ«`\1c]<Æ\11â½
+ÆÑÅc\1c!Þ«`\1cU|\eÇ9~¬\82qtñ\18G\88÷*\18G\17\8fq\84\82qtñ\18G\88÷*\18G\13¿0\8ecü\\ 5ãèâ1\8e\10ïU0\8e.\1eã\bñ^\ 5ãèâ1\8e\10ïU0\8e\8dã\1c?VÁ8ºx\8c#Ä{\15\8c£\8bÇ8B¼WÁ8ºx\8c#Ä{\15\8c£\8aoã8Ç\8fU0\8e\ 3γÆ\11\ e´\8cãå\81îîo¯\eÇáH¯\1f£\1f_?\9a¿}/)8ã³Ç\9eîn\9eî\7fû}|ó|÷ø\92£Ýß^\1eíþþÿ\7fPë©·\93ýßÕs]l­Þ?\0Ml­\97endstream
+endobj
+817 0 obj <<
+/Type /Page
+/Contents 818 0 R
+/Resources 816 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 515 0 R
+/Annots [ 820 0 R 821 0 R 822 0 R 823 0 R 824 0 R 825 0 R 826 0 R 827 0 R 828 0 R 829 0 R 830 0 R 831 0 R 832 0 R 833 0 R 834 0 R 835 0 R 836 0 R 837 0 R 838 0 R 839 0 R 840 0 R 841 0 R 842 0 R 843 0 R 844 0 R 845 0 R 846 0 R 847 0 R 848 0 R 849 0 R 850 0 R 851 0 R 852 0 R 853 0 R 854 0 R 855 0 R 856 0 R 857 0 R 858 0 R 859 0 R 860 0 R 861 0 R 862 0 R 863 0 R 864 0 R 865 0 R 866 0 R 867 0 R 868 0 R 869 0 R 870 0 R 871 0 R 872 0 R 873 0 R 874 0 R 875 0 R 876 0 R 877 0 R 878 0 R 879 0 R 880 0 R 881 0 R ]
+>> endobj
+820 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 707.1283 240.8357 716.0945]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSliceAttributes) >>
+>> endobj
+821 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 707.1283 538.9788 716.0945]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSliceAttributes) >>
+>> endobj
+822 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 692.2392 260.5119 703.1431]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSliceAttributeTypes) >>
+>> endobj
+823 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [527.0237 692.2392 538.9788 703.1431]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSliceAttributeTypes) >>
+>> endobj
+824 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 681.2254 254.8727 690.1917]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSliceInstantiations) >>
+>> endobj
+825 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 681.2254 538.9788 690.1917]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSliceInstantiations) >>
+>> endobj
+826 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 668.274 205.0603 677.2402]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSlices) >>
+>> endobj
+827 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 668.274 538.9788 677.2402]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSlices) >>
+>> endobj
+828 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 655.3226 226.1909 664.2888]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSliceTicket) >>
+>> endobj
+829 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 655.3226 538.9788 664.2888]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSliceTicket) >>
+>> endobj
+830 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 642.3711 208.5374 651.3374]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSlivers) >>
+>> endobj
+831 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 642.3711 538.9788 651.3374]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSlivers) >>
+>> endobj
+832 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 627.482 223.8798 638.3859]
+/Subtype /Link
+/A << /S /GoTo /D (0:NotifyPersons) >>
+>> endobj
+833 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 627.482 538.9788 638.3859]
+/Subtype /Link
+/A << /S /GoTo /D (0:NotifyPersons) >>
+>> endobj
+834 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 616.4683 217.2351 625.4345]
+/Subtype /Link
+/A << /S /GoTo /D (0:RebootNode) >>
+>> endobj
+835 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 616.4683 538.9788 625.4345]
+/Subtype /Link
+/A << /S /GoTo /D (0:RebootNode) >>
+>> endobj
+836 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 603.5168 215.561 612.4831]
+/Subtype /Link
+/A << /S /GoTo /D (0:RefreshPeer) >>
+>> endobj
+837 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 603.5168 538.9788 612.4831]
+/Subtype /Link
+/A << /S /GoTo /D (0:RefreshPeer) >>
+>> endobj
+838 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 590.5654 226.9482 599.5316]
+/Subtype /Link
+/A << /S /GoTo /D (0:ResetPassword) >>
+>> endobj
+839 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 590.5654 538.9788 599.5316]
+/Subtype /Link
+/A << /S /GoTo /D (0:ResetPassword) >>
+>> endobj
+840 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 575.6763 254.325 586.5802]
+/Subtype /Link
+/A << /S /GoTo /D (0:SetPersonPrimarySite) >>
+>> endobj
+841 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 575.6763 538.9788 586.5802]
+/Subtype /Link
+/A << /S /GoTo /D (0:SetPersonPrimarySite) >>
+>> endobj
+842 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 562.7248 228.2933 573.6288]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateAddress) >>
+>> endobj
+843 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 562.7248 538.9788 573.6288]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateAddress) >>
+>> endobj
+844 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 549.7734 252.9508 560.6774]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateAddressType) >>
+>> endobj
+845 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 549.7734 538.9788 560.6774]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateAddressType) >>
+>> endobj
+846 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 536.822 236.0541 547.7259]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateConfFile) >>
+>> endobj
+847 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 536.822 538.9788 547.7259]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateConfFile) >>
+>> endobj
+848 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 523.8706 216.8267 534.7745]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateKey) >>
+>> endobj
+849 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 523.8706 538.9788 534.7745]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateKey) >>
+>> endobj
+850 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 510.9191 235.4862 521.8231]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateMessage) >>
+>> endobj
+851 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 510.9191 538.9788 521.8231]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateMessage) >>
+>> endobj
+852 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 497.9677 247.6609 508.8716]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateNodeGroup) >>
+>> endobj
+853 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 497.9677 538.9788 508.8716]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateNodeGroup) >>
+>> endobj
+854 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 485.0163 256.9658 495.9202]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateNodeNetwork) >>
+>> endobj
+855 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 485.0163 538.9788 495.9202]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateNodeNetwork) >>
+>> endobj
+856 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 472.0648 222.2064 482.9688]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateNode) >>
+>> endobj
+857 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 472.0648 538.9788 482.9688]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateNode) >>
+>> endobj
+858 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 459.1134 220.0046 470.0173]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdatePCU) >>
+>> endobj
+859 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 459.1134 538.9788 470.0173]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdatePCU) >>
+>> endobj
+860 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 446.162 218.3308 457.0659]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdatePeer) >>
+>> endobj
+861 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 446.162 538.9788 457.0659]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdatePeer) >>
+>> endobj
+862 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 433.2105 227.7454 444.1145]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdatePerson) >>
+>> endobj
+863 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 433.2105 538.9788 444.1145]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdatePerson) >>
+>> endobj
+864 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 420.2591 216.1289 431.163]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateSite) >>
+>> endobj
+865 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 420.2591 538.9788 431.163]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateSite) >>
+>> endobj
+866 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 407.3077 256.3276 418.2116]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateSliceAttribute) >>
+>> endobj
+867 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 407.3077 538.9788 418.2116]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateSliceAttribute) >>
+>> endobj
+868 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 394.3562 276.0038 405.2602]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateSliceAttributeType) >>
+>> endobj
+869 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 394.3562 538.9788 405.2602]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateSliceAttributeType) >>
+>> endobj
+870 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 381.4048 220.5523 392.3087]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateSlice) >>
+>> endobj
+871 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 381.4048 538.9788 392.3087]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdateSlice) >>
+>> endobj
+872 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 368.4534 223.8699 379.3573]
+/Subtype /Link
+/A << /S /GoTo /D (0:VerifyPerson) >>
+>> endobj
+873 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 368.4534 538.9788 379.3573]
+/Subtype /Link
+/A << /S /GoTo /D (0:VerifyPerson) >>
+>> endobj
+874 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 355.5019 249.0747 366.4059]
+/Subtype /Link
+/A << /S /GoTo /D (0:system.listMethods) >>
+>> endobj
+875 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 355.5019 538.9788 366.4059]
+/Subtype /Link
+/A << /S /GoTo /D (0:system.listMethods) >>
+>> endobj
+876 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 342.5505 251.2768 353.4544]
+/Subtype /Link
+/A << /S /GoTo /D (0:system.methodHelp) >>
+>> endobj
+877 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 342.5505 538.9788 353.4544]
+/Subtype /Link
+/A << /S /GoTo /D (0:system.methodHelp) >>
+>> endobj
+878 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 329.5991 270.096 340.503]
+/Subtype /Link
+/A << /S /GoTo /D (0:system.methodSignature) >>
+>> endobj
+879 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 329.5991 538.9788 340.503]
+/Subtype /Link
+/A << /S /GoTo /D (0:system.methodSignature) >>
+>> endobj
+880 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [142.4658 316.6476 237.4483 327.5516]
+/Subtype /Link
+/A << /S /GoTo /D (0:system.multicall) >>
+>> endobj
+881 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [522.0424 316.6476 538.9788 327.5516]
+/Subtype /Link
+/A << /S /GoTo /D (0:system.multicall) >>
+>> endobj
+819 0 obj <<
+/D [817 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+816 0 obj <<
+/Font << /F29 532 0 R /F30 622 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+915 0 obj <<
+/Length 1659      
+/Filter /FlateDecode
+>>
+stream
+xÚ\9dX[\93£D\14~\9f_ÁcR5´}åâÛ8¥³««¦\9cXZåú@\80L(   D.;ο÷4tw\9aK`´¶f\81ðqîç;\a\88\83á\1fq|\82|\ 6\a\1a"ê     êÄç;ì¼À­§;¢ Üó\10\15Ä\83\8b\99»®`>
+\ 3ê9®-ä\9býÝWßQâP\8c<\11\bg\7f4ª0C\94yÎ>ùcóx\8a.MZm]ê\a\e\82úãÇ¢©¶\14oʤ\8d\9b¬,¶\7fî¿\a\13¢Ð\ 3\8aû( Øw\\16"ƨè\84íO)\b\10x³Ë£"m>E\87þò1\ 5\81QÞ_<ì>ö'\9f±À»O\8fp\rg¤ÿ-«ûc£%e\ 5XwÜ\12¼\89âTß«ÊöåÔ_¼\9e²ø4zfI{\125Ñ!ªSé\12DÏ%\14\85\82ðÎüúT¶yÒã\ eJV\14Çi]§êרP'ç\b\f\83¿4Aý\ fÆuã\9ev¥5O\1fÞF\86¾¦\87:kÒûáí¢LÒzô[Ô6å9j´¤:®²K£AÒª\81;}6ô³`@¥ÃZÚ^\8d|j/\10\1c\13öcY\81B\99ü\1eu(ÛÆ\92w?µUºbÎó,Nmûº\93\12<¯úSÈIÖdi=\ eç\^&qÓIDª0\89C|D\89à²2]S\9a\@×pÖÉ H\17÷Ã\96\81\ f \v,\88£Õò¦(ð=\7fXÞ&Çë\15ó%\8bú\93ß\7füäþ²{T\81Ø\12±ù"ÿÓñø°ßï\9eoÖRÝ^.eÕ\8c\9b£n ´Q\95\98V©Êú\92\9a\96\1dÇ1\8eò¼\967î¾Ý\eö \1c#\86\19w\ 4cà>¸:G1\ 6åÚ°\9ebì¸M¥u\8dõV7é\19åYÝü\986§2\99XA!\81\82\82\8cE+\f\8a©4iÅýD)¥H`\16®(Õ¨5¥\13i\96ëçÎíçì¥\88\9a¶JÇ\960 i\9fC©.ZbP+\96L¥õîÛd1ÐÎ)ò0]Ó®QkÚ'Ò&qø\90æ\97±\11\1cÂ\aO\89e#\f\88©´Q\b\96\1aé\105ñ)+^º\1er\19¦\88û$\98öÒ¤\95\98\878\r\88#(A\98\b6ßJ\1aåÚ°\99V\9aH³ãØæ\92½¦6P,\1dÇÁ²\r\ 6µbÃT\9a´AÑÔo[\ e¤Ó\8c§o*ií\9f8½\\87Gy4\98Z¡:.ÒùÈÕpî·\ 1\v \1e\8bþ\92\v\80æ×Â\8cD\9bÃU\1e+ØXT\839n\0\99óB2Ì\teѬÒ\9b\b¦U­Æ[TmI°yiÏ \yú \r\Ô©äVéßmV¥ã
+\ 3^Τ\1eûQ\88K7zXà\ 4²J»ùÅ\88\87\98\bå²'Í}\0\95=iÎ\8c\11\11^  ÊÚ\8f×h«
+ö1\82í\91\ f×\83¤\8c;\1f-{`æ+?¯9P\13·Ôî\15¥\8aÓ±­®ã¼sï8\9eÓ\8báº7àÂ$\16*çmX2rI<È]To\1fe\91¿]÷EíãhÒ\1dË</·Tl^e\e¿;uçèm8Ëåîöõ¤ÍI\88\84 >¬år\9fö½ù6×(×\86é\16\83\85ÝǤkó\894éÀgJÅD/p\1aã\84Îê\1d\1f¯vè§fí°è\ 6^\1d |lhÇ3¬2×\1dp\10BUm¿Ö¦\ 6z¬^+M\v¼]:¦R¡ý"Ó\12åY2*9Êû#lTU­dÿ\ 4Ûå¢ì\91°\16\8cË\17\v£èÙ©Ñ­z(KÝä?\1fä\ 6:¨ÿÚö^qеD_%÷\8dé7à\bû°ÿp\1e ?ðè<ýj\94kÃfèw"Múð\946:-\935\ 2h\ 4s\7fY»A­hg\8c \16\ 2ç\ f´·õµ¥
+k¡\97ï\vÃÖ\1d\96\8b~1hõëZT÷ìD1AA@\86ät\89êúU\ 6¼ÔCY×ÉSÑî\9eæëQ\8a\ 3\19A\0s\8dÊÈqo\96B9¶èV\8eY"àÕ¡çÐú\1aÙQ8\\83\84m\18\85\1c6=û\ 1\97`\1fÞ.\9eo\95Ì-\12aB\9a\8c×HÄ\86-\90\88\81­\92È\9cÞw\90È\9c\1d3$2°c'#0Ièbö`í >ûÏÙëÊFjXO_Ï\a\92½\8aè\ft\12z\84\99ËûYêÒ\9bGêÂûj·y9\96P{ÅH\92J¾_wõ=_6Ò«ç¦êz)\84W\87î\87\99ù\ 4\80\891s\8aû¶Q¼5è\9e[\85Ge{3/\)<\e¶Px\ 6¶ZxszßQxsvÌ\14ÞÀ\8e\ 5®0³k<úÛK^FÉ`\f<i!\97ö\90\8d\13ã\98\91C\81H Âåh\eÔ\8a\97Si])%É\ eü(\8b\1fä4\9c§\e.\84ü
+\18,ÛaP+vL¥Yëç.Õ#ÁÄÍ\8a\95j
+F¡|9\17ïø\0\97$ú[ÊìÀ\85m9\14\ 2L!\ 1b\81\107>\1c(\94kÃæ>\1c\8c¥\99\0\83ScÕ\ 2\ 6\17ákª5jM5ìò\fÃÝ\81êrªÕ\13\b\87bE©\ 2­é\1cËê(±û\f8ç0#\ 4  \1fÓeÝ\ 6µ¢|*­/¢\9e\10aÏ'ÿ\7f\90¿\^Þ?Äû\11@\88ÀĪ_½r´fÅíp£¨¨\8fê°#\ 5äF_)\88kaºx0l¿Ë1\860&ÌHê>[\8eµ\99oý3úþ\ 54¨ã\rendstream
+endobj
+914 0 obj <<
+/Type /Page
+/Contents 915 0 R
+/Resources 913 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 515 0 R
+/Annots [ 918 0 R 919 0 R 920 0 R 921 0 R 929 0 R 943 0 R 944 0 R 945 0 R ]
+>> endobj
+918 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [139.3072 530.8136 218.5188 541.7176]
+/Subtype /Link
+/A << /S /GoTo /D (0:system.listMethods) >>
+>> endobj
+919 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [221.5076 530.8136 321.7405 541.7176]
+/Subtype /Link
+/A << /S /GoTo /D (0:system.methodSignature) >>
+>> endobj
+920 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [341.606 530.8136 423.0197 541.7176]
+/Subtype /Link
+/A << /S /GoTo /D (0:system.methodHelp) >>
+>> endobj
+921 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [135.4318 517.8622 203.0171 528.7661]
+/Subtype /Link
+/A << /S /GoTo /D (0:system.multicall) >>
+>> endobj
+929 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [283.0771 445.6331 329.9009 456.537]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetSession) >>
+>> endobj
+943 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [394.1896 228.1838 456.6551 239.0878]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddPersonKey) >>
+>> endobj
+944 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [215.9595 215.2324 252.8111 226.1363]
+/Subtype /Link
+/A << /S /GoTo /D (0:AddPeer) >>
+>> endobj
+945 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [264.0987 215.2324 312.5665 226.1363]
+/Subtype /Link
+/A << /S /GoTo /D (0:UpdatePeer) >>
+>> endobj
+623 0 obj <<
+/D [914 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+10 0 obj <<
+/D [914 0 R /XYZ 298.5799 703.236 null]
+>> endobj
+916 0 obj <<
+/D [914 0 R /XYZ 71.731 672.5787 null]
+>> endobj
+624 0 obj <<
+/D [914 0 R /XYZ 71.731 622.8923 null]
+>> endobj
+14 0 obj <<
+/D [914 0 R /XYZ 225.2223 579.7949 null]
+>> endobj
+917 0 obj <<
+/D [914 0 R /XYZ 71.731 559.6545 null]
+>> endobj
+922 0 obj <<
+/D [914 0 R /XYZ 435.9113 508.0639 null]
+>> endobj
+926 0 obj <<
+/D [914 0 R /XYZ 71.731 480.0042 null]
+>> endobj
+927 0 obj <<
+/D [914 0 R /XYZ 71.731 478.7588 null]
+>> endobj
+928 0 obj <<
+/D [914 0 R /XYZ 129.5143 461.7376 null]
+>> endobj
+930 0 obj <<
+/D [914 0 R /XYZ 71.731 433.6779 null]
+>> endobj
+931 0 obj <<
+/D [914 0 R /XYZ 71.731 423.7153 null]
+>> endobj
+932 0 obj <<
+/D [914 0 R /XYZ 71.731 423.7153 null]
+>> endobj
+936 0 obj <<
+/D [914 0 R /XYZ 76.7123 370.9133 null]
+>> endobj
+937 0 obj <<
+/D [914 0 R /XYZ 129.5143 352.9806 null]
+>> endobj
+938 0 obj <<
+/D [914 0 R /XYZ 71.731 352.881 null]
+>> endobj
+939 0 obj <<
+/D [914 0 R /XYZ 71.731 342.9184 null]
+>> endobj
+940 0 obj <<
+/D [914 0 R /XYZ 71.731 342.9184 null]
+>> endobj
+941 0 obj <<
+/D [914 0 R /XYZ 76.7123 249.2697 null]
+>> endobj
+942 0 obj <<
+/D [914 0 R /XYZ 129.5143 231.3369 null]
+>> endobj
+946 0 obj <<
+/D [914 0 R /XYZ 71.731 216.2286 null]
+>> endobj
+947 0 obj <<
+/D [914 0 R /XYZ 71.731 206.266 null]
+>> endobj
+948 0 obj <<
+/D [914 0 R /XYZ 71.731 206.266 null]
+>> endobj
+913 0 obj <<
+/Font << /F21 514 0 R /F29 532 0 R /F38 925 0 R /F40 935 0 R /F30 622 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+951 0 obj <<
+/Length 1378      
+/Filter /FlateDecode
+>>
+stream
+xÚ­X[\8fÓF\14~ß_a©\ fÄ*\9eÌÅc\8fé\13 ²¢b+D#µ\12 ÊkO²\16\8e\1d|!Ъÿ½gn^ß²@U­´vâ3çú\9dï\9c\98x\18þ\88\17\13\143¸Ð\ 4Ñ\88S/;^aï\0\8f®¯\88\15     ¬L0\16z¶»Ú¾`ØKP\12ÑÈÛí½0d\88ã8öbF\91àDx»üíæù]zêdã\a\94ã\rAæú²ê\1a\9b:ï³®¨+ÿýî\97«\9fw\83EÎb\94\bPû [\83ÔÒ1\9a\8c\1c\ fÇ\10@\94D\88   \11iÇÚâP¥]ßH? \18c²¹®ú××Æ¿Ñ3õ±Þ\9bkw'\95§ 0B\84óÐ\v\bE      '\+ÌÒª®\8a,-\8b¿d®å°\13\bµÀ;Ìñ]×\9d\9el·çóÙ\8fø\ 6\9d\19ª\e\9f\88Ía»{³ý|,\83µ\83\19   +8L\8c\17\7fܼ
+Þ¼~>\15ä\97,\80Îæ\94¡¬>nÛ\93Ì´\9a\15\13\8d<5²\95U\97êz,ÂÖ7 Ñ­gd¦-51õGPØZÉz¦\f\12U¢yá    I\10ç$öx\1c"\ 1\88Z-ü \15\8cÅ\á\ 1\141&ºð\vm:I\94ò\85]J\11\v    ]µ;¿ÞûáN­ú1\ 2 À\13Ræ~<\ 5¸ø\84\1cëÞ&)í!=U\a RUÐÙñ ­B\b/ !Âqh°û\14ändwWk\9cm_\84Ø\13`-
+\rÜ-:±©\ 5\981&´(\85`cD       ×²\ 1\81\96HhÌ¡\87à\14\13\ 6G\ 4QÕ©±Ø¼©KéN\8eC
+c$(\86
+¨^\8f£X\1fû­>ÚâîûJ7¶\8dë\98~±¸©J{w;\82\ 1´\8bùÎ>ë[ÙØ\93碻³\82²éÒÂB³Ñné[\85ùVÊyE\99\0\1c\84\94\ 1-\ 1\90¯"i\90
+ÆbË
+.µ©x¯e7ägl;¤\1caJã\87m\ fR_±½Ôf[\9d<¶¨©lþj@O3Oy#\81È4ÃB¸\98£0&ÓfÍ\8b½Oùf/\e\80\9e9STûº9\8e¨Àuï\8a¬. ³\9aË\93¬ò¢:¸rÏ\19\ 4Ò¥\vvOg\v\961
+}\ eäå¸e\f²\9d¡\9c9èõ(à\16óU\9dË\15Ъ\16ÂI24Æj÷DÆÔzó\8cµq\8c\12ì\94\8d\0\99º±qje\9f×\81~d\aßÓi{¸ÈS\9bK\88¼Vù=·\13z\9d»\98\bhÕP|O°Ê\89\190.t \ 1
+#@\vTÌh½ïj@\85\13n³¦89~oúªZÔ=5\17å¡ÅjÛg¶\9fÓvV÷guÝÍ\0ý«
+MßݤUz\0\98ý\9fy\9c\rÏïªõ·åÒF£Y¾®äOÃ\17&\88×/×hß&ªk`7\1aV\90cïFoÛ\15e9µª\ 6\ ecêL_àÄa\1e2\1eÃ0\81Qððt\1d\8b­Lµ\856=\ 3ä¨"\ 4\91\85\ fQ\b;\18£_ñÁI}Í\87\85\8dhuÜ%\14Á\9a\b\b\85I\12ÙiÇì´{Q\94jW\85r}óÌ»©/ìD3°\85\ 2\854v\10\82ɱb\80\b\141L¬Ìl\86\a\9fà\8d\9ct\96*z9¬×ãµË6\8a\89¨½\0×´iÒ/íÔý¢ê¤ÊÀÁiU`\1a\85\11ß\15GÇu\80Rhúa©\f\ 2\17Ó¾*r\85m\rϦµ4P7\930\fØݼ²\9bèÀ&«±.FKÚ\81/·>\85õ¡\93í\85Ù¢Ôv\85{|+\a\e\1f\142wYS      p>êl|N\8f§\12Hl\95E(A\11\11\89\8eö\a?\880p\7f\99µwæ6Ó$¦îöMz8êÁ©>¹&Õ\1fneY\9f'Ë9èä\11shQL¨\86&~K\1eÓÇìý·\88þýH\11ï\9fEþè\891bÏþó\9f\ e\13sLßÿh.\ fÊÓï\94g\83[³®\98Íÿß}\ 1\85íË| ú)¦åǾPÜÿIýKËaO1\15\1e\ 6È
+ZFóÃÑ.\0çØÊò\93\82Àý|¿o\1a]ÃñH[â\83©^\béxZW²;×Í\a\b~\8df\ 4CD\88\a\97\94\80%j[dzùÜ\96E&/h5\13\16\aîÊÖ\83¸ùUUn
\84Â6\9e;j\98vb»øýfß\14\0Ù     \12%\ f¾L\18É,ß%pÆ`{!lФ\9c¦\17_\13¬Øû\17\ 4\19?\1eendstream
+endobj
+950 0 obj <<
+/Type /Page
+/Contents 951 0 R
+/Resources 949 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 971 0 R
+/Annots [ 958 0 R 964 0 R ]
+>> endobj
+958 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [386.946 438.6014 426.0189 449.5054]
+/Subtype /Link
+/A << /S /GoTo /D (0:GetRoles) >>
+>> endobj
+964 0 obj <<
+/Type /Annot
+/Border[0 0 0]/H/I/C[1 0 0]
+/Rect [118.5554 354.2926 165.3794 364.8229]
+/Subtype /Link
+/A << /S /GoTo /D (0:Authentication) >>
+>> endobj
+952 0 obj <<
+/D [950 0 R /XYZ 76.7123 592.7771 null]
+>> endobj
+953 0 obj <<
+/D [950 0 R /XYZ 129.5143 574.8443 null]
+>> endobj
+954 0 obj <<
+/D [950 0 R /XYZ 71.731 572.6875 null]
+>> endobj
+955 0 obj <<
+/D [950 0 R /XYZ 71.731 562.7249 null]
+>> endobj
+956 0 obj <<
+/D [950 0 R /XYZ 71.731 562.7249 null]
+>> endobj
+625 0 obj <<
+/D [950 0 R /XYZ 71.731 519.8856 null]
+>> endobj
+18 0 obj <<
+/D [950 0 R /XYZ 152.1087 474.6313 null]
+>> endobj
+957 0 obj <<
+/D [950 0 R /XYZ 71.731 454.4909 null]
+>> endobj
+959 0 obj <<
+/D [950 0 R /XYZ 71.731 406.721 null]
+>> endobj
+960 0 obj <<
+/D [950 0 R /XYZ 137.5342 395.9264 null]
+>> endobj
+961 0 obj <<
+/D [950 0 R /XYZ 178.4208 395.9264 null]
+>> endobj
+962 0 obj <<
+/D [950 0 R /XYZ 427.4646 395.9264 null]
+>> endobj
+963 0 obj <<
+/D [950 0 R /XYZ 119.5517 370.0235 null]
+>> endobj
+626 0 obj <<
+/D [950 0 R /XYZ 71.731 354.0435 null]
+>> endobj
+22 0 obj <<
+/D [950 0 R /XYZ 156.6362 310.5725 null]
+>> endobj
+965 0 obj <<
+/D [950 0 R /XYZ 71.731 290.4321 null]
+>> endobj
+966 0 obj <<
+/D [950 0 R /XYZ 167.9796 277.6957 null]
+>> endobj
+967 0 obj <<
+/D [950 0 R /XYZ 71.731 252.6248 null]
+>> endobj
+968 0 obj <<
+/D [950 0 R /XYZ 71.731 187.0522 null]
+>> endobj
+969 0 obj <<
+/D [950 0 R /XYZ 432.4945 175.2798 null]
+>> endobj
+970 0 obj <<
+/D [950 0 R /XYZ 119.5517 162.3284 null]
+>> endobj
+627 0 obj <<
+/D [950 0 R /XYZ 71.731 159.2998 null]
+>> endobj
+949 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F40 935 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+974 0 obj <<
+/Length 1461      
+/Filter /FlateDecode
+>>
+stream
+xÚ\9d\17ioÛ6ô{~\85×}\88\ 5D´¨[\ 1\,K\9d.\83\93\18\8bmH\83A\91i\9b\88®\92Ò\1c\7fßã!ù\88êµC\91\9az|÷É\87{\16üý\0£À\81\1f;B¶ïÙ½$;³z+¸úx\865\8a©qÌ}¤\9fçg\83\eÇêE(òm¿7_ö\×A\9e\15\ 4½À±Qèá°7_<ö¯×qY\11f\98¶gõ1R¿·yÅ\f×ë\17\8b:©h\91\eOó_ÏFóV¢ç\ 4(
+\81íIµZ¬·\8aÙ¸\87\ 3dcÏ\15\9a56Z>Â8\88¤^\18¹B\99 ìOÒ8'Õ8~V\9f|MÒT(\ 4\¢}ó\ 2\14ÚVÐ3\85u\81\1fH.WÊ\9e¤È²8_\98\89\82\94¬X±8Ó×q\9a\92\85æ\19îñÄÀËöì\0ì\11ÜÊ4áë\ eѶ\8b|'°5\16§Y\99ÒÏ\96e\13®øÇuµ&yE\93X:SÂxÅÀ·5Óú¬A=Ðnu¡)ò\85:PÍ¢ædY§ê¼,\98P¢gbÏGa\18Ep²QäaWÉO\18-+à¥\839_7L\ e\8cn\80\v
+ªÐgÃ\ 6!\15ÑbãFsõ3¦yýª\8eÓÉÝ\81Óäy2¾¾\9aÜ\1e©ÎÈ\97\9a²Æ\a\93mµV\89\ 1EwÎs|\aa×uµ÷>[¶×áâ\0\ 5n\18j\1c\86Äq­^\b8¾L#Ó   ,\14F\8eÝ3m\8c\12©æñ\8a\\1a¦oY:\80òøX\94"\18üIºÒ\ 2\12\a9Øö$\8d¾»\94wØB\81\17A\16c`êù\8eÄ0\97\8aÍõÃýÍíÇ\võa\9aI\91/éj¨ \8a\1a\87Èñ||H\ e\ eS$\8a f:3\ 4hIS¢ãÛIkj\v>MÇ­Ü\9a¥Cø6LÇ\82o\19\v\8dÒ\98wÀ!ÑÊ_]\8f¦ó\9dòqBX5TÐ\13Ê·ìg³±¶\ 2èèRä÷iÍ_\14úíýltýi:j%Ó\9c\93\ 4jaØÜ\9c\90þ¡PTyQiák\92¼üO\852\85~7\9aÿòð¡U'#\90«\8b¡\82~\8b#\8e\v\14\93\93Ò¹Öz4\9bÝ>Ü·â9á\1cØ\f5ü[\14Ð$êã\85lO\8a­urÌFÓ]\ 2\86\ 2b@/ÙO!q¡\1d\1eg¤3\9bJu?¹\9aÍ~{\98îÜXÆ\9co
\1867ßbICtÒ\ 2­Ñôa¼Ë!V¤d( Ç\16\88\8bN½_[Ú×,e¥*
\v'
+þûÝØ\9cNt¡Ò\1c¦ä\12\93\95      C       Ü\10ÉX¬\8b\8d¢©dç\15'u­Ò\82\8b\86¤óFôJq ¯´êèzfÛ{\\17y\8e\126+IB\97[Ým+õ\9b\92\98ë#¤¢:´-Yv\86\83Þ¼-jÖ\ e\16}\12ñ½ìh«\96n§a´7\ 4w}G\eXU%¿\1c\f6\9b\r*åÀ6Óø\19\15l5PÃa Iê]ZýÄiE\10\1d\96[\a&ÿa`lõ\8bZ)º¡©\9e\84Ïí4'\1cê¯\19G\e\ fæ\17\f¾¬¬ô<¼\81\ f=t  #\17­C\9a±¦\a\r×êÿ%æbñb\80øc¯\8a\ 1È\8füZdô8
+G½¡É\9eý\81Ý<\ 5.\ e\87oÃê­½âq±\9b¾4o%\15Y,$¥éÖð½>:\11Íf8î\87¡\99H9I¤/U à%qT\9a]=¯£*æÛRçù;¾å\15ÉP
+o\8d\17ùg˳à\ f¿S\18\85.éw¢RÄ\9dj\9f{\18Ë\ 6%+\18ij\12\80\99\94\8fº\14x<0ïéýû÷\8aî
+T¿\16S£Q¢\8b\18\7f\ fÇ\8f¤º/\16DZõ\88mü¤[Ëãy\ eà?éâ\\ 3Î×\ 5¯D¥\9d?}Mðãß-\91\0Ã7äúê\\15\eÔ\9a\89QÂQÉh\9e\90
+\1c\ 2ú\9dÿóô\9f¥uÅ\9b|=ùJ\8c!AeZí\97\95~Óé$\84þ\bu(v     ¨\9bã²ÊbM\9a0"\86²<Cqyý\98Ñø9%\S\10\ 3{ýWñ\1f¼\b\1aD\19{Ùæ\8a¢l0á\99]°ª« 
+ÈLMPÆÉ\v´Û\96{\95 \8bæÝË Í\e\8b\1a3Ú²Õ+\83\16Ûî\rMm¶\86m\fÙ\99ÒEÓNe¹\1c°bÒ¦U\9dÆì­ßä:Ófïþî27BàÜvé\8eõÄ\ e!\8c\10ÛïÙNtt\ fúÄ¡C[åß6\ f1\8eèÝ\87 ³£ÙWÖ1ÏB\91\15a\8d\99Á&\99vN\17Ó¶!r\ 1ô£\83)óã\ f\83\9a³Á3Í\ae»9쯠zgtA!ìG'×â=\9c·[1Ô\ 1²,ì´\9c\84tç«\vo\87¼\7f\ 1'\87\17Kendstream
+endobj
+973 0 obj <<
+/Type /Page
+/Contents 974 0 R
+/Resources 972 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 971 0 R
+>> endobj
+26 0 obj <<
+/D [973 0 R /XYZ 231.5225 706.1179 null]
+>> endobj
+975 0 obj <<
+/D [973 0 R /XYZ 71.731 685.9775 null]
+>> endobj
+976 0 obj <<
+/D [973 0 R /XYZ 251.8044 673.2412 null]
+>> endobj
+980 0 obj <<
+/D [973 0 R /XYZ 71.731 648.1703 null]
+>> endobj
+981 0 obj <<
+/D [973 0 R /XYZ 71.731 385.6198 null]
+>> endobj
+982 0 obj <<
+/D [973 0 R /XYZ 71.731 360.5489 null]
+>> endobj
+983 0 obj <<
+/D [973 0 R /XYZ 71.731 319.4679 null]
+>> endobj
+984 0 obj <<
+/D [973 0 R /XYZ 71.731 281.4456 null]
+>> endobj
+985 0 obj <<
+/D [973 0 R /XYZ 71.731 182.0831 null]
+>> endobj
+986 0 obj <<
+/D [973 0 R /XYZ 71.731 134.0981 null]
+>> endobj
+987 0 obj <<
+/D [973 0 R /XYZ 148.0846 123.3035 null]
+>> endobj
+988 0 obj <<
+/D [973 0 R /XYZ 291.6145 123.3035 null]
+>> endobj
+989 0 obj <<
+/D [973 0 R /XYZ 71.731 111.1841 null]
+>> endobj
+972 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F28 527 0 R /F14 979 0 R /F40 935 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+992 0 obj <<
+/Length 596       
+/Filter /FlateDecode
+>>
+stream
+xÚ¥T]o\9b0\14}ϯ@é\ 3\89T\fæ\9bI\93¶v[\95i\9bª5oYT¹à\ 4KÆfØ4ê~ýlL\18iX4iâ\81Ëññ¹ç^_\f-O=ÐJ H\ 2õò3àÇ\91oåÕ̳öjén\ 6{\8aÓs\9c1éf=s?\ 5\9e\95\81,öck½³Â0\0\91\97$V\12ø \8d`j­\8bÍâ¶DµÄÍÒñ#o\ 1\81\98l\96a´àE\9bKÂÙr»þ<û¸\1e2FA\ 2²TÉ^´5°Î\8d\85\9e\95*cq¨\8dA\98\81(\82\89\15g1\88Ó$ì\8c\91ªæ\8d\:±ç-Ä\8bÐ\16\94¬ã\a \80º E¹2«\1fð\ eµ´§R\9e£Îr÷%K$\8f\116Áý\97Û÷÷+\13\7f¿ÿj\ 2Â\84D\94\8as®   r\8aÄ`\ 1B\10GqÐYPÎ@\8dd        P]cVüð"Ïv[Ѹ¢D\rvk\9a\9aØ
+\87\17*X1" ¢äW\9fW\94\98R\13böL\1aÎ*Ì$0È\83\89\ e:\90#½À;Âz\15t\ 4Ç%WX\96¼\98¬åêØ\8bW]\105ÎÉ\8eàÂ|2TaQ£¼_ÕN\fã\85°½Áö\94?!*þŤÊR]0c\94è\8b\96\ 1S¼]ë¡Jðð§qãù1ðÄnu>\86ñöUo_UpÝm\8eC5§Iz*Ñ6ôDb^JY\8b7®{8\1c@M\11ÃÒ¡è   ðfï\9a\83pç×S^Z¡\7fñ\92FÞ      "1ÀE;½©VsyàMqºñ\88Î\87¹s\ 6ïfü¢q\93o¸,û\91iúcÁ?[ò\8c¨\9aº©¬\8c\17X\9c¤¼Ãò\9b\ 6uÃ6Ð\87Ûk\83olÍ}$\85Ý\ 3\85Ô#doÇ?ÅeuuLà\7f2\8cï®þ²\fS\90Â8»x\9f\8e8ç×i\14\ 4Àó`0(iëá_oÊ\89|¿\ 1\rÃ\82\81endstream
+endobj
+991 0 obj <<
+/Type /Page
+/Contents 992 0 R
+/Resources 990 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 971 0 R
+>> endobj
+990 0 obj <<
+/Font << /F30 622 0 R /F40 935 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+995 0 obj <<
+/Length 890       
+/Filter /FlateDecode
+>>
+stream
+xÚ½W]\8f\9b8\14}\9f_Ác"-®?ðW\1f*¥Ý¶Új·\1aUyëT#\1a\9c\ eR\ 6F@Tí¿ï56Ä       \86¤Òj5\ fÀøú\9eããsí\e\92`ø#\89$H2xP\8d¨à4Ù=ßáä\a\f}¼#>$\13\ 2QN\ 4|DFSÎ$Ò\8a\8a$\r\93¼ÝÞ½ú@IB1\12\ñd»\1f¡0C\94\89d[|]½{Ê_:Ó¬S*Õ\8a"÷¼?ä\95éþο»ÏÍý_îå\1fÓ=ÕE»þ¶ýÔ§&\12QÂ3\9b\1a\ 38A\82Ù/HK\11ñ¹6Å\9aàUá\1f\8diÛíZàÕ¿/ƧÑ\89FZ\0\92I¤(\96IÊ(RRÈ>×}Swu\a\13^\8f3\14Ì\10\9f\9bR\0'J÷\136\ 5Ày(å RÊñê\ 1s\9c\1f»§?Ügîb\1emêÇ\a\8c©9\14\90\b±tÀ   \89ýiÚ]S¾te]-Qc\ 2qAGj­Gw\8fʬ)_ý<cä>,-ä^?\94\96\9a{o_Ì®ìÙ\16î\1feµ°\1c?Ôx\ 5\8e­)\90¥j÷\8b\bØ/élðÅtǦ\1a\90\9fÌ<9\97¿,N\92¾q¯¸\97ÎQÚ{®ÇÝ\ e¦ì\8f\a/ùÞ\9a ?\1e:\8fT\ 3Tó³l\rºUóÍáP÷¤\86å\7f©\ f¦½Õ\19\f\bu¿&\1c¤Ë\9f\r\14\88\83¸{¿\1dË\8e\10\8d8'2aÊ\96S´pÓ1(\r¢\eê\ 4ªVbbñ'¹,þ\ 3¥|\ 2J)b\19¡1ÐËç\89Ä0iB\82©@0\ 2\87\a'\19;#aë%"\18Í\10¶ùmÈk¿Ù]sÜu~£Ý\91a]\ 3óMÕ\95»Ü\96I\18ylÌtu\ 3\ 3Á\11ÕzFÓ!*\rÃN¢\12\9d­g\b\9bU\15\1dÓLGqçe\1dfMy\9cëÊ4ʤ<§±\ 1]Üq\1aQ\97Cef2\9bè[V?\ 6}#²>»t®\84ë±àç}\vúd\8cÉkÆ\rÂ\96\9c;\84]·n\ 4÷\16ï^ò\981oÈãìÌÚ»St*7Á\19\92\98\9fç-J\bâ Á\15\87\9e¢\96\f꣮ûs
+z\8b=/HÄÝ\19p¨àÌ\9b)z¬õ\92-//°Yù¨fp+ªk\15\1e\86-\b8\86]U0\86{\83\84\13\1eQ\rÏh\14§î ¢¥\80[I(ù[Zöo\17i\93TÁ¾é\fº@\8c\14ÖYx\9dÏßYÔ\96\95\96k?\f[¨ý1ìjíÇpo¨ý\18\8f ~G\e\84<Êj¸\8c>ÿgmL¬óM¹DR1Öï\0e\ú\ 6\98^m\80ûî´\ e\ 6þÇ\8e\ e<¶Ô\1e\97ÅcÝ<Úsáb´,\86\8e9ÜoÿC#SH\11¡£&ó!i\10ã
+\v\87\17!cpä\106f²\8b\99¸küý\13Áû\ 5_ð$Õendstream
+endobj
+994 0 obj <<
+/Type /Page
+/Contents 995 0 R
+/Resources 993 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 971 0 R
+>> endobj
+628 0 obj <<
+/D [994 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+30 0 obj <<
+/D [994 0 R /XYZ 408.0688 703.236 null]
+>> endobj
+996 0 obj <<
+/D [994 0 R /XYZ 71.731 672.5787 null]
+>> endobj
+629 0 obj <<
+/D [994 0 R /XYZ 71.731 672.5787 null]
+>> endobj
+34 0 obj <<
+/D [994 0 R /XYZ 246.3801 631.6006 null]
+>> endobj
+997 0 obj <<
+/D [994 0 R /XYZ 71.731 608.1118 null]
+>> endobj
+998 0 obj <<
+/D [994 0 R /XYZ 161.0655 598.7239 null]
+>> endobj
+999 0 obj <<
+/D [994 0 R /XYZ 71.731 586.6044 null]
+>> endobj
+1000 0 obj <<
+/D [994 0 R /XYZ 71.731 555.2385 null]
+>> endobj
+1001 0 obj <<
+/D [994 0 R /XYZ 168.8063 544.2282 null]
+>> endobj
+1002 0 obj <<
+/D [994 0 R /XYZ 71.731 517.1648 null]
+>> endobj
+1003 0 obj <<
+/D [994 0 R /XYZ 71.731 500.7429 null]
+>> endobj
+1004 0 obj <<
+/D [994 0 R /XYZ 71.731 469.1613 null]
+>> endobj
+1005 0 obj <<
+/D [994 0 R /XYZ 181.5683 458.151 null]
+>> endobj
+1006 0 obj <<
+/D [994 0 R /XYZ 71.731 448.0889 null]
+>> endobj
+1007 0 obj <<
+/D [994 0 R /XYZ 71.731 416.5173 null]
+>> endobj
+1008 0 obj <<
+/D [994 0 R /XYZ 71.731 403.5559 null]
+>> endobj
+1009 0 obj <<
+/D [994 0 R /XYZ 71.731 402.3105 null]
+>> endobj
+1010 0 obj <<
+/D [994 0 R /XYZ 129.5143 383.232 null]
+>> endobj
+1011 0 obj <<
+/D [994 0 R /XYZ 129.5143 383.232 null]
+>> endobj
+1012 0 obj <<
+/D [994 0 R /XYZ 71.731 381.7924 null]
+>> endobj
+1013 0 obj <<
+/D [994 0 R /XYZ 71.731 381.7924 null]
+>> endobj
+1014 0 obj <<
+/D [994 0 R /XYZ 139.477 365.2992 null]
+>> endobj
+1015 0 obj <<
+/D [994 0 R /XYZ 139.477 365.2992 null]
+>> endobj
+1016 0 obj <<
+/D [994 0 R /XYZ 76.7123 347.3665 null]
+>> endobj
+1017 0 obj <<
+/D [994 0 R /XYZ 129.5143 329.4337 null]
+>> endobj
+1018 0 obj <<
+/D [994 0 R /XYZ 129.5143 329.4337 null]
+>> endobj
+1019 0 obj <<
+/D [994 0 R /XYZ 71.731 328.053 null]
+>> endobj
+1020 0 obj <<
+/D [994 0 R /XYZ 71.731 328.053 null]
+>> endobj
+1021 0 obj <<
+/D [994 0 R /XYZ 139.477 311.501 null]
+>> endobj
+1022 0 obj <<
+/D [994 0 R /XYZ 139.477 311.501 null]
+>> endobj
+1023 0 obj <<
+/D [994 0 R /XYZ 71.731 309.3442 null]
+>> endobj
+1024 0 obj <<
+/D [994 0 R /XYZ 139.477 293.5682 null]
+>> endobj
+1025 0 obj <<
+/D [994 0 R /XYZ 139.477 293.5682 null]
+>> endobj
+1026 0 obj <<
+/D [994 0 R /XYZ 71.731 255.7102 null]
+>> endobj
+1027 0 obj <<
+/D [994 0 R /XYZ 71.731 242.6592 null]
+>> endobj
+1028 0 obj <<
+/D [994 0 R /XYZ 71.731 241.4139 null]
+>> endobj
+1029 0 obj <<
+/D [994 0 R /XYZ 129.5143 222.3354 null]
+>> endobj
+630 0 obj <<
+/D [994 0 R /XYZ 71.731 215.1972 null]
+>> endobj
+38 0 obj <<
+/D [994 0 R /XYZ 334.7464 172.0997 null]
+>> endobj
+1030 0 obj <<
+/D [994 0 R /XYZ 71.731 148.611 null]
+>> endobj
+1031 0 obj <<
+/D [994 0 R /XYZ 161.0655 139.223 null]
+>> endobj
+1032 0 obj <<
+/D [994 0 R /XYZ 71.731 127.1035 null]
+>> endobj
+993 0 obj <<
+/Font << /F21 514 0 R /F29 532 0 R /F38 925 0 R /F30 622 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1035 0 obj <<
+/Length 924       
+/Filter /FlateDecode
+>>
+stream
+xÚÍW]o\9b0\14}ï¯à±\91\8a\87mlCßÒ}©Ó&U]ÞÖ)¢Ám\91\12\88À¨Ú¿ßu0Ä\ 4ó!íeê\ 3\84\1eû\1c\8eϵ/Ø\và\ f{\ 2#AáBbD8#Þîp\15x¯ð¯¯WØ@|\83ñmÐÝæêÃ\17\1ax1\8a9áÞæÅ£1GL\84\9e \ 4E\fGÞ&ýuýñ-9*Y®|Â\82k\82\9aëÃ>É¥ú\9e<7?×\ f÷ÍÍ\ f©Þ\8a´ZýÞ|»ú¼éø\19\15(\8e\80dRd\87\1aÊ$±%\13ã\181\86\85'\82\bÑ\90\8a\93ÎO²Ú\95ÙQeE~«ùO\83"\18ÄC=È\f÷)¼"\87ÿè!ë\14¤\9et'¹¹¦i)+óPý9JsW\98ë\9byP\1då.{
+\ 2"ÓÞ@¤\99ám|\8a\11\8b0?Ñ<Ü\9b    \ fÉ\9fæ¦È÷æ®>¦\89\92½9¤A\17/\1difì/V\84]¿\e­U¦ä\99\10sÄ©h\b\1f¥ªËÜL\83\9bKff«êÝ\ eH^êýMóàe\85\81ºÞ«\96\16øÊ÷¬\92¨sñl½ßÙ\b     \11¼q~½ß7ÂZ3\1e\8b½¬¦\16\81`ÄqÔ,B\92\1e²Üh9fK9\1fV\98]'er\90\90Í\86Ë\ e\\17\11\86\19\12\9cÅÎÀu(ß\86µ\81\830\8a\0÷\ 2×Á´\84'BØ\80\97\10H$&NÞËëYG;j¨\83F\96}\18Ê\82á\90öu$µzsØFB\14h\ 6\r¹5k¯Êz§n.jV\8f\97¹Êv\89®\1d\eY\97\82FB\18\v\14QØS\9cƶ(ß\86\9d\8dÅz3²_¨\83\8d\1a\v\8b\1f\900vò\8e\eÛ\8e\1aêè\eKc\14
\97±\ 6_\9aýÌá.\83r\va«¼ô7Ë_[\7f\1d\1e\9aéz{J]ÉÑô\86\1c\ 3#TõtzmØDz;Ølz]¼\vÒ;ÐáNoO\87Ùô¶z³Ýfé¶(·9TµÃrL8"p*ô=Ïreö­Ò^\84ñÜ\86P\174\8cçrkÁ¦rÛÂæsëà]\92[\87\ eË\926·¶\f\8d û4ËR\9dËÓéU\8eû\ 4\80ÌÖ·\ 5\9bò©\85Íûäà]â\93C\87Ã'[F¿Z\aV\8dÕ$\8d\ 3D(\9f«I\e6Q\93\1dl¶&]¼\vjr Ã]\93=\1dmMfã;ß°
+]F^&Íó9\8cÆàAï07ýÊø)N¡k\8b)\94þ\8cç\16lÊó\166ï¹\83w\89ç\ e\1dö>Öznë8;8Ú°\99Å\0}\ 2\11ÌN\vè3\81\ 4\1cYp£\17\905\v\bBt£."X\ eÝÞ¥wE¡~*Ýi\ e\174\843\8f\ 4⢿*\vUè:XÚÆÁº\9fINÂ\9f\ 2\16èÞ¼\96ÞÕá\11^Úáý[?o8å©/5?\8aÔ({\ 6¡ía\ 1rÿó\1eÚN¦ù\8e\v#\ 4\1f\17ñä§\9e\85\19~é1à\1619Ϥ5ðÑÏ6\aß_\vÛV8endstream
+endobj
+1034 0 obj <<
+/Type /Page
+/Contents 1035 0 R
+/Resources 1033 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 971 0 R
+>> endobj
+1036 0 obj <<
+/D [1034 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1037 0 obj <<
+/D [1034 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+1038 0 obj <<
+/D [1034 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+1039 0 obj <<
+/D [1034 0 R /XYZ 168.8063 708.3437 null]
+>> endobj
+1040 0 obj <<
+/D [1034 0 R /XYZ 71.731 681.2803 null]
+>> endobj
+1041 0 obj <<
+/D [1034 0 R /XYZ 71.731 649.9144 null]
+>> endobj
+1042 0 obj <<
+/D [1034 0 R /XYZ 71.731 633.2768 null]
+>> endobj
+1043 0 obj <<
+/D [1034 0 R /XYZ 71.731 602.3408 null]
+>> endobj
+1044 0 obj <<
+/D [1034 0 R /XYZ 181.5683 590.6849 null]
+>> endobj
+1045 0 obj <<
+/D [1034 0 R /XYZ 71.731 580.6227 null]
+>> endobj
+1046 0 obj <<
+/D [1034 0 R /XYZ 71.731 547.1996 null]
+>> endobj
+1047 0 obj <<
+/D [1034 0 R /XYZ 71.731 536.0897 null]
+>> endobj
+1048 0 obj <<
+/D [1034 0 R /XYZ 71.731 534.8444 null]
+>> endobj
+1049 0 obj <<
+/D [1034 0 R /XYZ 129.5143 515.7659 null]
+>> endobj
+1050 0 obj <<
+/D [1034 0 R /XYZ 129.5143 515.7659 null]
+>> endobj
+1051 0 obj <<
+/D [1034 0 R /XYZ 71.731 514.3263 null]
+>> endobj
+1052 0 obj <<
+/D [1034 0 R /XYZ 71.731 514.3263 null]
+>> endobj
+1053 0 obj <<
+/D [1034 0 R /XYZ 139.477 497.8331 null]
+>> endobj
+1054 0 obj <<
+/D [1034 0 R /XYZ 139.477 497.8331 null]
+>> endobj
+1055 0 obj <<
+/D [1034 0 R /XYZ 76.7123 479.9004 null]
+>> endobj
+1056 0 obj <<
+/D [1034 0 R /XYZ 129.5143 461.9676 null]
+>> endobj
+1057 0 obj <<
+/D [1034 0 R /XYZ 129.5143 461.9676 null]
+>> endobj
+1058 0 obj <<
+/D [1034 0 R /XYZ 71.731 459.8108 null]
+>> endobj
+1059 0 obj <<
+/D [1034 0 R /XYZ 71.731 459.8108 null]
+>> endobj
+1060 0 obj <<
+/D [1034 0 R /XYZ 139.477 444.0349 null]
+>> endobj
+1061 0 obj <<
+/D [1034 0 R /XYZ 71.731 441.878 null]
+>> endobj
+1062 0 obj <<
+/D [1034 0 R /XYZ 139.477 426.1021 null]
+>> endobj
+1063 0 obj <<
+/D [1034 0 R /XYZ 76.7123 408.1694 null]
+>> endobj
+1064 0 obj <<
+/D [1034 0 R /XYZ 129.5143 390.2366 null]
+>> endobj
+1065 0 obj <<
+/D [1034 0 R /XYZ 129.5143 390.2366 null]
+>> endobj
+1066 0 obj <<
+/D [1034 0 R /XYZ 71.731 368.8718 null]
+>> endobj
+1067 0 obj <<
+/D [1034 0 R /XYZ 71.731 357.2604 null]
+>> endobj
+1068 0 obj <<
+/D [1034 0 R /XYZ 71.731 356.015 null]
+>> endobj
+1069 0 obj <<
+/D [1034 0 R /XYZ 129.5143 336.9365 null]
+>> endobj
+631 0 obj <<
+/D [1034 0 R /XYZ 71.731 330.5156 null]
+>> endobj
+42 0 obj <<
+/D [1034 0 R /XYZ 219.8168 286.7009 null]
+>> endobj
+1070 0 obj <<
+/D [1034 0 R /XYZ 71.731 266.5605 null]
+>> endobj
+1071 0 obj <<
+/D [1034 0 R /XYZ 161.0655 253.8241 null]
+>> endobj
+1072 0 obj <<
+/D [1034 0 R /XYZ 71.731 241.7047 null]
+>> endobj
+1073 0 obj <<
+/D [1034 0 R /XYZ 71.731 210.675 null]
+>> endobj
+1074 0 obj <<
+/D [1034 0 R /XYZ 168.8063 199.3285 null]
+>> endobj
+1075 0 obj <<
+/D [1034 0 R /XYZ 71.731 172.2651 null]
+>> endobj
+1076 0 obj <<
+/D [1034 0 R /XYZ 71.731 157.6947 null]
+>> endobj
+1077 0 obj <<
+/D [1034 0 R /XYZ 71.731 124.9071 null]
+>> endobj
+1078 0 obj <<
+/D [1034 0 R /XYZ 181.5683 113.2513 null]
+>> endobj
+1033 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1081 0 obj <<
+/Length 1140      
+/Filter /FlateDecode
+>>
+stream
+xÚÍX]\8f£6\14}\9f_Ác"5®mð\aóPivÛ­ZµÒh7o\9dÕ\8a\823A"\10\ 1Ñtÿ}¯Á\80\ 3æãa«­"Å$\1c¸Çç\9e{m \1e\86\ fñ\ 4\87\81\86\88rF½øò\80½W8õë\ 31\90\83Á\1clлãÃ\8f\1f\85\94\93ç\87\1c1\11x§H2"½cò×îý9ºÖªÜ\1f(Ã;\8aÚñ9\8brUÿ\11ýÝþ|zþ­=øSÕç"©ö\9f\8f¿?ürìã3_ PB\90E\92=jJ\93\86\9e\ 4\9a<Ð4     \9ce$ð=\81\ 3_4<£ä\92æ:p\83\1e&u0\87\a=)Á[ðó\9e°]TF\17\ 5\1eÇ|     \81\b\8c\b\8f3\86pàs'ß\1eu°a\1d_\98\8bÀ¤á;¹\9b¦ðB)\9bÄ¥\14&D¨3îx\1cxtWMyøÒ¥Û\1d\8fèV\9f\1d²Ñ\0a\1dAC\1eÛäVuy\8bë\1fF)×׫¼Nã¨N\8bÜFÞJ5\9d`G\ 1rM\b\96na;ÔÁ\86\rÂ\12íå»    u°Ya!ù\98\ 6¡3î¼°ÝUS\1e÷Âú!
+\84¸§ñ\ 4º´åàP\97\ 3¨´±¾iþÚéë\90õÒÞ®9®\8bv¼UjÞ½\98 \1a0\7fͽ\16lɽ\1dlݽ\8e¸[Ü;æ1ã^\9bG\ e%¼Ù½\83ºï\8a¢îþ\8eêæ\ eР|\98ô¸S|Tàã|¡E°\0´
+fZÚ ²\r[\10¹\87­\8aì\8a»Ad\17\8fA·^ä;\1eiÞU=i\87ôdĻűªªÓ-39\0~\ 2\9a\8c\1d\98@BúPÆ\f#곶ßP\14èEDÈÝS²'x\97¼/òÓ\874s¥\11HH\8aŨw\97E]Ô_¯ê±¿bpI×ì)A\9cÈ°­Äd\88ÑÐ~Á\fë¶e&\15ÃÉ//\18ÓL5\83Ê\92
+ dëbò³ªâ2½ê:]¢äÃâÊiO©2í³\1drµ§l÷f~\14\89ê©iF¯·Òj\ 3-U³\12?åz)û:\9cÑìMv®*N\9b¿LÏHóù   \e6¥êÛJbä) \11\95oieÎ$ê¤Ó\16ݲںH\17\10Ö~G\9cñ¶4õ-P\7f\ 2\1a\9e/¸]R¦\8f\9d\95C\ 1\9ba\9a\fYû©=ÄMzf¬hh\8fYöÓ@[óú\94eEéÓïc\91©j«ëþ\93ý\b\85\15\86Ë@¬4\e\e¶ÐlzØj³qÅÝÐl&<Ü\1dý\8eÇ÷Ù\8fPÐD0\12®ìGlØÂ~¤\87­îG\q7ìG&<\9cû\91;\1aÿ\83ý\b\91>\92\128.»×\86-¸·\87­º×\15w\83{'<Üî½ãÑ4®\13¬4ðÕ´Õ©ÖRÂ: ¤Ë˳ö$\9c¡\10\9e\8fVìiÃ\16ìÙÃVíé\8a»Á\9e\13\1eN{ÞÑh4+ÞrxÒtÛ\93\10¾`Ïøܶê\¯\12dX\1eÌ¿í]ÝÒ\ 6\12XãµÊ·aKÒv°ui\1dq·H;æá\96Ö¦q-ª:Ía£\9be_â\8b«üÁÁ,àlAßOg\95eÝÚ|¹Dù¨ì\95^ÀþÑ_*¾ÕfI\8f\8b\ 3\13\1fn8\9f\b\1f#,%]K\84\ 5[JD\a[O\84\96D\8c\13aÓPeY\943)`ðPÃ\ 5ÿÖ)è¶G\91½Mlx\98ú\88ã[YÍç\84PD\18\vÖrbÁ\96rÒÁÖsâ\88»%'c\1eî\9cØ4®¥Z®\r!\11á°MûÆ\89¹\96i\97\83\ e7_#æõ\1d\14µ$<\|Ãga¦/ø\18(Å}8îPzJböm\9d#Þ¿e\84®Ùendstream
+endobj
+1080 0 obj <<
+/Type /Page
+/Contents 1081 0 R
+/Resources 1079 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 971 0 R
+>> endobj
+1082 0 obj <<
+/D [1080 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1083 0 obj <<
+/D [1080 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+1084 0 obj <<
+/D [1080 0 R /XYZ 71.731 675.3674 null]
+>> endobj
+1085 0 obj <<
+/D [1080 0 R /XYZ 71.731 674.1221 null]
+>> endobj
+1086 0 obj <<
+/D [1080 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+1087 0 obj <<
+/D [1080 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+1088 0 obj <<
+/D [1080 0 R /XYZ 71.731 653.604 null]
+>> endobj
+1089 0 obj <<
+/D [1080 0 R /XYZ 71.731 653.604 null]
+>> endobj
+1090 0 obj <<
+/D [1080 0 R /XYZ 139.477 637.1108 null]
+>> endobj
+1091 0 obj <<
+/D [1080 0 R /XYZ 139.477 637.1108 null]
+>> endobj
+1092 0 obj <<
+/D [1080 0 R /XYZ 76.7123 619.1781 null]
+>> endobj
+1093 0 obj <<
+/D [1080 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+1094 0 obj <<
+/D [1080 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+1095 0 obj <<
+/D [1080 0 R /XYZ 71.731 579.1632 null]
+>> endobj
+1096 0 obj <<
+/D [1080 0 R /XYZ 71.731 568.2691 null]
+>> endobj
+1097 0 obj <<
+/D [1080 0 R /XYZ 71.731 567.0237 null]
+>> endobj
+1098 0 obj <<
+/D [1080 0 R /XYZ 129.5143 547.9452 null]
+>> endobj
+632 0 obj <<
+/D [1080 0 R /XYZ 71.731 541.5243 null]
+>> endobj
+46 0 obj <<
+/D [1080 0 R /XYZ 207.3873 497.7096 null]
+>> endobj
+1099 0 obj <<
+/D [1080 0 R /XYZ 71.731 477.5692 null]
+>> endobj
+1100 0 obj <<
+/D [1080 0 R /XYZ 161.0655 464.8329 null]
+>> endobj
+1101 0 obj <<
+/D [1080 0 R /XYZ 71.731 452.7134 null]
+>> endobj
+1102 0 obj <<
+/D [1080 0 R /XYZ 71.731 421.6837 null]
+>> endobj
+1103 0 obj <<
+/D [1080 0 R /XYZ 168.8063 410.3372 null]
+>> endobj
+1104 0 obj <<
+/D [1080 0 R /XYZ 71.731 383.2738 null]
+>> endobj
+1105 0 obj <<
+/D [1080 0 R /XYZ 71.731 357.0471 null]
+>> endobj
+1106 0 obj <<
+/D [1080 0 R /XYZ 71.731 323.9503 null]
+>> endobj
+1107 0 obj <<
+/D [1080 0 R /XYZ 181.5683 312.6037 null]
+>> endobj
+1108 0 obj <<
+/D [1080 0 R /XYZ 71.731 302.5415 null]
+>> endobj
+1109 0 obj <<
+/D [1080 0 R /XYZ 71.731 270.9699 null]
+>> endobj
+1110 0 obj <<
+/D [1080 0 R /XYZ 71.731 258.0085 null]
+>> endobj
+1111 0 obj <<
+/D [1080 0 R /XYZ 71.731 256.7632 null]
+>> endobj
+1112 0 obj <<
+/D [1080 0 R /XYZ 129.5143 237.6847 null]
+>> endobj
+1113 0 obj <<
+/D [1080 0 R /XYZ 129.5143 237.6847 null]
+>> endobj
+1114 0 obj <<
+/D [1080 0 R /XYZ 71.731 236.2451 null]
+>> endobj
+1115 0 obj <<
+/D [1080 0 R /XYZ 71.731 236.2451 null]
+>> endobj
+1116 0 obj <<
+/D [1080 0 R /XYZ 139.477 219.7519 null]
+>> endobj
+1117 0 obj <<
+/D [1080 0 R /XYZ 139.477 219.7519 null]
+>> endobj
+1118 0 obj <<
+/D [1080 0 R /XYZ 76.7123 201.8192 null]
+>> endobj
+1119 0 obj <<
+/D [1080 0 R /XYZ 129.5143 183.8864 null]
+>> endobj
+1120 0 obj <<
+/D [1080 0 R /XYZ 129.5143 183.8864 null]
+>> endobj
+1121 0 obj <<
+/D [1080 0 R /XYZ 71.731 182.7074 null]
+>> endobj
+1122 0 obj <<
+/D [1080 0 R /XYZ 71.731 182.7074 null]
+>> endobj
+1123 0 obj <<
+/D [1080 0 R /XYZ 139.477 165.9537 null]
+>> endobj
+1124 0 obj <<
+/D [1080 0 R /XYZ 139.477 165.9537 null]
+>> endobj
+1125 0 obj <<
+/D [1080 0 R /XYZ 71.731 163.7968 null]
+>> endobj
+1126 0 obj <<
+/D [1080 0 R /XYZ 139.477 148.0209 null]
+>> endobj
+1127 0 obj <<
+/D [1080 0 R /XYZ 139.477 148.0209 null]
+>> endobj
+1128 0 obj <<
+/D [1080 0 R /XYZ 71.731 145.8641 null]
+>> endobj
+1129 0 obj <<
+/D [1080 0 R /XYZ 139.477 130.0882 null]
+>> endobj
+1130 0 obj <<
+/D [1080 0 R /XYZ 139.477 130.0882 null]
+>> endobj
+1131 0 obj <<
+/D [1080 0 R /XYZ 71.731 127.9313 null]
+>> endobj
+1132 0 obj <<
+/D [1080 0 R /XYZ 139.477 112.1554 null]
+>> endobj
+1133 0 obj <<
+/D [1080 0 R /XYZ 139.477 112.1554 null]
+>> endobj
+1134 0 obj <<
+/D [1080 0 R /XYZ 71.731 109.9986 null]
+>> endobj
+1079 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1137 0 obj <<
+/Length 1450      
+/Filter /FlateDecode
+>>
+stream
+xÚ\8d\8e£6\14}\9f¯àq"m¼¶Á6ìC¥é¶»Úª]\8dVóÖ­"\ 6\9c\ 4\95@d £ùûÚ`\13\a\8cA#M<ÌÁ÷ø\9cë{\rA\ 1\94?(`\b°P~à\ 4`Jp\90]\1e`p\92ÿúú\804d¯1{\eôëËÃÇ/!\f\12\90PL\83\97c\10&\14\10\16\ 5,Ä &(\ e^ò¿\1f?\9fÓkËÅn\8f   |Ä`ø|.Ó\8a·\7f¦¯Ã\9fOÏß\86Á_¼=×y³ûçå\8f\87ß_Æø$d \89e\10\bÆ ¢q\18ì1\ 4     FÄ\89Br
+\82"\89b\12\1fF!\e\17\83\93\80\ 1¤\16*\173âF\98ZÍO\8cÉ\94\1d\92Ë\858J\ 2{B\13wúyãaî\9aó\bã \96¢Ò¨ç\11& bì\9e\9bVÑè9ß\fÀ\11\800Id\0\ 5ú4hÚ´¢¨N\1f´Ò¯M]v-\1fþº¦íy\18½\9d¹Ð\17\7fB\88K=nÎuWæÃøU_+ª¦MË\92ç3\1d\8cb4\81 B0YÑß\86\1fa«ú»ânÐ\7fÆéÿ\1d\8dâTÕ\82\1f²K~àBÔ¢q\98\91\84 \89\18½7ãµ®K\9e\8do\83\94sÝÓj\87ÈãûÛ\ eÉñûp\8dï0yüO]ç\95vâ8¢\a\84¢2\fë,ëD³ì\10ÃrQ1^sÈ\82ù\1c2°u\87\1cq·84åávȦÁ«ôUçèÄ\97\b\ 2\ 2Yâóås])7N\9dHÛ¢®æþ\14\8dV>k\8b\9b-Ër\93\b\90\88Dkr[0\9fÜ\ 6¶.·#î\16¹§<ÜrÛ4\8e\ fW..EÓHÅ\û!\8e\ 1¡,ö\14§ì|©ó\9f\90@$\7f!]¢îçtË\eR@\11fkòZ0\9f¼\ 6¶.¯#î\16y§<ÜòÚ4\9aº\13\19w\88\1aF\80Ñ\84zDýÁËô.I'\95ߤw{æãVhõ<\\f÷\bo\93ÈLý1\1d"¯U¸·ª¬ÓÜ×&P\f(KVÛ\84\ 5óÙf`ë¶9ân±mÊÃm\9bM#-ßÒ÷æÐ]ó´u¹§
+\16\96\a\16O)z*U\ fÐ\8dÀT\9d¶å\97«6©­ïÚòÜ\9eå¾ÑUÙ9­N>\8b \ 4,b«}Â\82ù,2°u\8b\1cq·X4åá¶È¦Ñ\17®\93¨»«Ã\1fBA\18\86Ô[²Nâ:)Y:ûå®\913Êã\1d\ 5\98Ä\92\1d\81 \86    éçúÁÛNTͧ\99\ 2HjE\10\v\88\11Í©¼AímØMù\84ÁAùÙl\8bÊc,O\97\b;ã.+oîrò¸é8fÀ\1d\8f¢jµ\8aßû\1c\92ÖÕñ0$ð¡ÈM>\13øË0\847¡M\1e7]\96ñ¦9v¥öP®\87\ 1ù\0ÐÛ¾'\f°8\f{\ 3pHh\1f\1c\ 3¢\9eEXüø\94«Í\95Ë\9e\7fü"\93áe\17K\v¿×9ÿ*vX\ e\9d\99\111\10c(\rP\8f:\8c\ eUúYÔmݾ_ù§ñ\8e[öé{÷\18ɲ\1e\ fõá)w\86U!Çe§]{þàRF_¬ä-js÷9,/\1fjq¨Ò\vïe\9a\13ß\e\1e6ñßx\93\89âªÎ:>ê²#\11\8aGê¦\1a\8däüg&S¨ÆFÓ\yV(\ 4Ï­¥ô£~1úYñÛqrß\ 469\91\95\82§¹>2\97Eõ¯2×\ 4\98Q\98\92V\e\16ªý\ 5(¡z·ôK\18ŶNÚ&¢é\89¢ßÓ<\aã4²\83\87\8cÚ\e~@.æ¯\ esìË}W¶\1a_KÂâ­h8ØêèSY\ eeÈ,ý\87l*ÍÖ¼LóKQm\rõ¬²/\152åäc¾§¢a9ÀDVd\7fE³a\9e\8a6ÂV+\9a\86\8a6ãqßKL!»ã¡öêÂc9\9a5\91.3åo|ý¡îçU[dÖ\16\1a\90\9dX~ºÀ\10\81PÖ<\7f\8f¶P\9e\16mP«\1dÚ\11tC\83\9e\92pög\9bÃ\93Tdx)änÏ4b\91ïu\87CÐË0Ý]Aè\1a¾\98·\88\12\10\11BVòÖ\86yòv\84­æ­+î\86¼\9dñpçí\1d\8f¾±ô'¡Â¥3e \82l\92Á·î½þ´\9c+\ fúJ/\96e\96-\95`¼V\1el\98Of\ 3[\97Ù\11w\8bÌS\1e\v2Û<Tã\9a¶i\87Ü\bA\0c\87Þº\19\b\17«B?X{¶º\81<5A\83VKÂ<â\86\8a0g`       ¡\v\82EÀ:3:O\ 1¾L\e×Ó·w\16®icÁ|ê\18غ>\8e¸[\14rðphdÓ¸«\81N¡LêÙDõKþ(\ 6\89÷{\0\v3ÿ\1a\80\84!\80\10\85ãL\8aR¼øNß\11ï\7f\19Ö¢\8cendstream
+endobj
+1136 0 obj <<
+/Type /Page
+/Contents 1137 0 R
+/Resources 1135 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1194 0 R
+>> endobj
+1138 0 obj <<
+/D [1136 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1139 0 obj <<
+/D [1136 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+1140 0 obj <<
+/D [1136 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+1141 0 obj <<
+/D [1136 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+1142 0 obj <<
+/D [1136 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+1143 0 obj <<
+/D [1136 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+1144 0 obj <<
+/D [1136 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+1145 0 obj <<
+/D [1136 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+1146 0 obj <<
+/D [1136 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+1147 0 obj <<
+/D [1136 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+1148 0 obj <<
+/D [1136 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+1149 0 obj <<
+/D [1136 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+1150 0 obj <<
+/D [1136 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+1151 0 obj <<
+/D [1136 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+1152 0 obj <<
+/D [1136 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+1153 0 obj <<
+/D [1136 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+1154 0 obj <<
+/D [1136 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+1155 0 obj <<
+/D [1136 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+1156 0 obj <<
+/D [1136 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+1157 0 obj <<
+/D [1136 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+1158 0 obj <<
+/D [1136 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+1159 0 obj <<
+/D [1136 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+1160 0 obj <<
+/D [1136 0 R /XYZ 71.731 562.8892 null]
+>> endobj
+1161 0 obj <<
+/D [1136 0 R /XYZ 71.731 549.8382 null]
+>> endobj
+1162 0 obj <<
+/D [1136 0 R /XYZ 71.731 548.5928 null]
+>> endobj
+1163 0 obj <<
+/D [1136 0 R /XYZ 129.5143 529.5143 null]
+>> endobj
+633 0 obj <<
+/D [1136 0 R /XYZ 71.731 522.7498 null]
+>> endobj
+50 0 obj <<
+/D [1136 0 R /XYZ 321.3874 479.2787 null]
+>> endobj
+1164 0 obj <<
+/D [1136 0 R /XYZ 71.731 455.7899 null]
+>> endobj
+1165 0 obj <<
+/D [1136 0 R /XYZ 161.0655 446.402 null]
+>> endobj
+1166 0 obj <<
+/D [1136 0 R /XYZ 71.731 434.2825 null]
+>> endobj
+1167 0 obj <<
+/D [1136 0 R /XYZ 71.731 402.9166 null]
+>> endobj
+1168 0 obj <<
+/D [1136 0 R /XYZ 168.8063 391.9063 null]
+>> endobj
+1169 0 obj <<
+/D [1136 0 R /XYZ 71.731 364.8429 null]
+>> endobj
+1170 0 obj <<
+/D [1136 0 R /XYZ 71.731 337.4102 null]
+>> endobj
+1171 0 obj <<
+/D [1136 0 R /XYZ 71.731 305.8287 null]
+>> endobj
+1172 0 obj <<
+/D [1136 0 R /XYZ 181.5683 294.1728 null]
+>> endobj
+1173 0 obj <<
+/D [1136 0 R /XYZ 71.731 284.1107 null]
+>> endobj
+1174 0 obj <<
+/D [1136 0 R /XYZ 71.731 252.539 null]
+>> endobj
+1175 0 obj <<
+/D [1136 0 R /XYZ 71.731 239.5777 null]
+>> endobj
+1176 0 obj <<
+/D [1136 0 R /XYZ 71.731 238.3323 null]
+>> endobj
+1177 0 obj <<
+/D [1136 0 R /XYZ 129.5143 219.2538 null]
+>> endobj
+1178 0 obj <<
+/D [1136 0 R /XYZ 129.5143 219.2538 null]
+>> endobj
+1179 0 obj <<
+/D [1136 0 R /XYZ 71.731 217.8142 null]
+>> endobj
+1180 0 obj <<
+/D [1136 0 R /XYZ 71.731 217.8142 null]
+>> endobj
+1181 0 obj <<
+/D [1136 0 R /XYZ 139.477 201.321 null]
+>> endobj
+1182 0 obj <<
+/D [1136 0 R /XYZ 139.477 201.321 null]
+>> endobj
+1183 0 obj <<
+/D [1136 0 R /XYZ 76.7123 183.3883 null]
+>> endobj
+1184 0 obj <<
+/D [1136 0 R /XYZ 129.5143 165.4555 null]
+>> endobj
+1185 0 obj <<
+/D [1136 0 R /XYZ 129.5143 165.4555 null]
+>> endobj
+1186 0 obj <<
+/D [1136 0 R /XYZ 71.731 163.2987 null]
+>> endobj
+1187 0 obj <<
+/D [1136 0 R /XYZ 129.5143 147.5228 null]
+>> endobj
+1188 0 obj <<
+/D [1136 0 R /XYZ 129.5143 147.5228 null]
+>> endobj
+1189 0 obj <<
+/D [1136 0 R /XYZ 71.731 145.3659 null]
+>> endobj
+1190 0 obj <<
+/D [1136 0 R /XYZ 71.731 145.3659 null]
+>> endobj
+1191 0 obj <<
+/D [1136 0 R /XYZ 139.477 129.59 null]
+>> endobj
+1192 0 obj <<
+/D [1136 0 R /XYZ 71.731 127.4332 null]
+>> endobj
+1193 0 obj <<
+/D [1136 0 R /XYZ 139.477 111.6573 null]
+>> endobj
+1135 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1197 0 obj <<
+/Length 975       
+/Filter /FlateDecode
+>>
+stream
+xÚ\8dW[\8f\9b8\18}\9f_Ác"5®/Ø\86yËÎvªV»«Q\95·ÎjÄ\ 6g\82ÊÀÔ\80ªþûý\f\86\98à\0\9a\a'\99c\9fããïb\93\0Ã\1f       $A\92Á@cD\ 5§Áñí\ e\a¯ð¯ÏwÄBv\16³sA\7f\1cî>>2\1cÄ(\16T\ 4\87SÀb\81¸\f\ 3É(\8a8\89\82Cú}ópNÞk¥·;Êñ\86¢n|Ê\93\7f%ÿu_÷O_º\ f\7f«ú\¦ÕößÃ×»O\87\81\9f3\89â\bHfE\ e¨©L\1a;2        \89\11çD\ 6Br\14
+ÙÊü¦êF\17Õý5õ\ 5Ì9Â!\13\ 1µsa=5È\92\98\8c©{\98á~¦\94Ox)E,$ÔË{=^tô³¼:\1c\vÀ NB6Ö\91\15õ\87î\1cH7d§n¬\9aãQUÕ©É\8dLX\vôID \ fÍb;.\91\8c\18\83\ f\18QÆ»Å(\12æ°e´Ù§[\827éCY\9c\1e³\\1d\11Þ\94ÿ\94©²\8b¹ÂB\89"\8aÁG\13\9eÍ\93.ë²þý®î\87\19\11Ì\10\9d»£\ 4     \12·ø}ê#kwò\8c9N\9aúl÷y\ 4ØË3Æ4W/Yj\7f,\0\rß^Jýr.«ºHÞ\14L#\1eµ»\9eÜUû§ª\8e:{¯³²\98ÓË W\ 4\1d\ 4W\1dw2è2ª^\e\9d\98uzíFg÷¹.íx¶?Tïê\98\19\84J/»°Ùöåt\ 5.\ 6\9e7×*I\7fw_ò¬øa\8e¬_jB6#oð°\e\95Ö¥nó\19\ 2\14Ò\ 4  .X»çDÛÅt\9by*E\ 3J Á¤pÓr!*-éÉ\88N\9a¼¶ø\12\ 4ë_Y¥ÐÚ³Ûçy¹¥|ó«ßú·2WÕbØEÝ1&é[V¬¥zÚ\12\ e&@pAu\9c©;,\fMv\91\85ºãÂfêÎ\0[¬;>Þ\15ug¢\83E\8ekCÝ\19é0    é±\8d\86\b\e\ 6\ 3¹·G^ëæØ\17©¡k\98ùª¨³£\13\8d\1d²ÑjºÁ^\ 2\15Ð¥0ó\eÛ£v.ìb,1íp´¡\1evÓX8|LÃØË{ÛØ~ÖTÇØX\16£Pʱ\8c=øÒuT\8f»\1c²,\84f}íoV¼öþzl}ë\96\e\95\85¦R7£\97Æ\18zr\18-D¯\v\9b\89Þ\ 1\18½>Þ\15Ñ;Ñá\8fÞ\91\8e\87\9c²¶\83x|\16\12\85X^Åñ¥Ó>,Uú,5gÐVv}ÛfÉ\10¾q-r\¾ æL¶¨e\8f§¤k,¾\12qÃaG\84§\1f{|&\18*
+\96lb´í\ 5Ú\8dð\9bE\81Â}\b\9cX*
+.l¦(\f°Å¢àã]Q\14|:\1cKlQ\18ɸ\84ÞåV4\ecÃfàzM"Á\97¬q`sÖô°ek<¼k¬ñèðXãÊ\18U¿Ç&Ïí}èg\93䣻\95\e\86À     ËRÞ]\7f#\1c\87ëÞ\13Dp\14Ã\93e!g]ØLÒ\ e°Å¬õñ®H[\9f\ eÏ{b¤cå{Â\95i\1f\9aa\84""âÙ·¨\83\99>E9\83ú\81  \eV2zâ\9bïJ\ fßÿ¡¯téendstream
+endobj
+1196 0 obj <<
+/Type /Page
+/Contents 1197 0 R
+/Resources 1195 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1194 0 R
+>> endobj
+1198 0 obj <<
+/D [1196 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1199 0 obj <<
+/D [1196 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+1200 0 obj <<
+/D [1196 0 R /XYZ 71.731 675.3674 null]
+>> endobj
+1201 0 obj <<
+/D [1196 0 R /XYZ 71.731 674.1221 null]
+>> endobj
+1202 0 obj <<
+/D [1196 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+634 0 obj <<
+/D [1196 0 R /XYZ 71.731 648.6227 null]
+>> endobj
+54 0 obj <<
+/D [1196 0 R /XYZ 270.0858 604.8079 null]
+>> endobj
+1203 0 obj <<
+/D [1196 0 R /XYZ 71.731 584.6676 null]
+>> endobj
+1204 0 obj <<
+/D [1196 0 R /XYZ 161.0655 571.9312 null]
+>> endobj
+1205 0 obj <<
+/D [1196 0 R /XYZ 71.731 559.8118 null]
+>> endobj
+1206 0 obj <<
+/D [1196 0 R /XYZ 71.731 528.7821 null]
+>> endobj
+1207 0 obj <<
+/D [1196 0 R /XYZ 168.8063 517.4356 null]
+>> endobj
+1208 0 obj <<
+/D [1196 0 R /XYZ 71.731 490.3722 null]
+>> endobj
+1209 0 obj <<
+/D [1196 0 R /XYZ 71.731 464.1455 null]
+>> endobj
+1210 0 obj <<
+/D [1196 0 R /XYZ 71.731 431.3579 null]
+>> endobj
+1211 0 obj <<
+/D [1196 0 R /XYZ 181.5683 419.7021 null]
+>> endobj
+1212 0 obj <<
+/D [1196 0 R /XYZ 71.731 409.6399 null]
+>> endobj
+1213 0 obj <<
+/D [1196 0 R /XYZ 71.731 378.0683 null]
+>> endobj
+1214 0 obj <<
+/D [1196 0 R /XYZ 71.731 365.1069 null]
+>> endobj
+1215 0 obj <<
+/D [1196 0 R /XYZ 71.731 363.8616 null]
+>> endobj
+1216 0 obj <<
+/D [1196 0 R /XYZ 129.5143 344.7831 null]
+>> endobj
+1217 0 obj <<
+/D [1196 0 R /XYZ 129.5143 344.7831 null]
+>> endobj
+1218 0 obj <<
+/D [1196 0 R /XYZ 71.731 343.3435 null]
+>> endobj
+1219 0 obj <<
+/D [1196 0 R /XYZ 71.731 343.3435 null]
+>> endobj
+1220 0 obj <<
+/D [1196 0 R /XYZ 139.477 326.8503 null]
+>> endobj
+1221 0 obj <<
+/D [1196 0 R /XYZ 139.477 326.8503 null]
+>> endobj
+1222 0 obj <<
+/D [1196 0 R /XYZ 76.7123 308.9175 null]
+>> endobj
+1223 0 obj <<
+/D [1196 0 R /XYZ 129.5143 290.9848 null]
+>> endobj
+1224 0 obj <<
+/D [1196 0 R /XYZ 129.5143 290.9848 null]
+>> endobj
+1225 0 obj <<
+/D [1196 0 R /XYZ 71.731 288.828 null]
+>> endobj
+1226 0 obj <<
+/D [1196 0 R /XYZ 129.5143 273.052 null]
+>> endobj
+1227 0 obj <<
+/D [1196 0 R /XYZ 129.5143 273.052 null]
+>> endobj
+1228 0 obj <<
+/D [1196 0 R /XYZ 71.731 270.8952 null]
+>> endobj
+1229 0 obj <<
+/D [1196 0 R /XYZ 71.731 270.8952 null]
+>> endobj
+1230 0 obj <<
+/D [1196 0 R /XYZ 139.477 255.1193 null]
+>> endobj
+1231 0 obj <<
+/D [1196 0 R /XYZ 71.731 253.6797 null]
+>> endobj
+1232 0 obj <<
+/D [1196 0 R /XYZ 139.477 237.1865 null]
+>> endobj
+1233 0 obj <<
+/D [1196 0 R /XYZ 71.731 199.3285 null]
+>> endobj
+1234 0 obj <<
+/D [1196 0 R /XYZ 71.731 186.2775 null]
+>> endobj
+1235 0 obj <<
+/D [1196 0 R /XYZ 71.731 185.0322 null]
+>> endobj
+1236 0 obj <<
+/D [1196 0 R /XYZ 129.5143 165.9537 null]
+>> endobj
+635 0 obj <<
+/D [1196 0 R /XYZ 71.731 159.5328 null]
+>> endobj
+1195 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F21 514 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1239 0 obj <<
+/Length 807       
+/Filter /FlateDecode
+>>
+stream
+xÚÝVÛ\8e\9b0\10}߯à1\91\16×\17lã}K¯êM\8aVyëV\15\rN\82\ 2ÓÕþ}ml\88   äòRUª"Å!ÌÌ9s<\9e1
+ þ \80\89\0\98Q\1c¬÷w0ØêW\1fî\903       \9d\e½^ݽzO` \80`\98\ 5«M@\ 4\ 3\94G\ 1'\18Ä\14ÅÁ*ý6{³K\ eJVó\10S8ÃÀ®Ë<)¤ú\92ü´\8f\8båGûã«T»2­çßW\9fîÞ­z|J8\10±\ 6¹H²·\1aÓÄ(@\1c`D#óË\182\80\10\17-M\f¸áÆãÙ"\9d#8K?Ï\11\9dIóõ²\9a38{9HCKÇ\12\11\a1\86<\b\9cñ6Ö²*U©´ÃCï\11k\ fÖ\82\10#ÀPlÁ\17©\86ÃG¸Øµ\92<A
+\93Fíîíc\91ì¥þ\vMp  »Ð>\97·²^WÙAeeq\89\rÑ;ÇpϦ¶`\89Ã\94\86ܳ}øeÔ±Dí\1f&Q`Bë]\b\11\ 3\8cpÖÆy\94ª©
+\17
+Ù%ÛصnÖkY×\9b&wymLؤÉ\95³/ÕNVÏYmCß\92é"ÏË\96§Lm\88Ç2\97õ­[\90¤û¬¸\15jiÒO*½\15º²-\84\b     @)âAD9à\91 \93åÚ[\85¾\99-W\11èRæ\10\19\ 6ãh\86Â\13Æt\84\8b\11Â\93¸§ë\91Gç5æAbO5¤\ f\15E\11\19ò0¥9!\e\8e\04\bÆäÁm¹ª\9aµº?9ñÆ_\16*['¦D}˦\92ã\ 4;
+D\80\181:-lg\15úfGa\91\83\84:³³ÂêÍ\878\12\93¸ç\85í¼Æ<\86Âê·\11çC\1a\v­\8bí\86\13êR}Ê"ÝhOõÍ\8am§ï\84¬{\eÎ\1eÚÒ®M-ÏW/$@Pt­x\8fV\97j×Y]/Ý1è-\95{BâLáz$L\1f½¹n\8fºzmúØýÚæ\17\12\1d\9c\9fv
\ 3Ï·\bB!`\14\8a+*ûf\17dîÍ®ê<\85{\83ÐS<\8eêõJ\ fxdEwêÏ\ e\ 1·\13\83)\1d\9a6\13\13}\8cu0L(ss:\1eÎé¯:Bb~mça;\99þâ\90n±¶Ó\83yoßýx\82\10Ë<­ÿé\90ÞûD\95Ü\1fòDIw÷Z\14^ùþ6NIÞH\17¬>ÈuÖ¦à\1aEVL§ç°+Ù÷\91ôþdrÛÇT\9e\8eö\81Ó\7ftsðÏ\99»bF±éèââ\9dÚ³\19_©)\8euC\12¢\8fd\10\11<{A\9e\0ü\ 3Ù7Ê\98endstream
+endobj
+1238 0 obj <<
+/Type /Page
+/Contents 1239 0 R
+/Resources 1237 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1194 0 R
+>> endobj
+1240 0 obj <<
+/D [1238 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+58 0 obj <<
+/D [1238 0 R /XYZ 208.7305 706.1179 null]
+>> endobj
+1241 0 obj <<
+/D [1238 0 R /XYZ 71.731 682.6291 null]
+>> endobj
+1242 0 obj <<
+/D [1238 0 R /XYZ 161.0655 673.2412 null]
+>> endobj
+1243 0 obj <<
+/D [1238 0 R /XYZ 71.731 661.1217 null]
+>> endobj
+1244 0 obj <<
+/D [1238 0 R /XYZ 71.731 575.2602 null]
+>> endobj
+1245 0 obj <<
+/D [1238 0 R /XYZ 71.731 544.3242 null]
+>> endobj
+1246 0 obj <<
+/D [1238 0 R /XYZ 181.5683 532.6683 null]
+>> endobj
+1247 0 obj <<
+/D [1238 0 R /XYZ 71.731 522.6062 null]
+>> endobj
+1248 0 obj <<
+/D [1238 0 R /XYZ 71.731 491.0346 null]
+>> endobj
+1249 0 obj <<
+/D [1238 0 R /XYZ 71.731 478.0732 null]
+>> endobj
+1250 0 obj <<
+/D [1238 0 R /XYZ 71.731 476.8278 null]
+>> endobj
+1251 0 obj <<
+/D [1238 0 R /XYZ 129.5143 457.7493 null]
+>> endobj
+1252 0 obj <<
+/D [1238 0 R /XYZ 129.5143 457.7493 null]
+>> endobj
+1253 0 obj <<
+/D [1238 0 R /XYZ 71.731 456.3097 null]
+>> endobj
+1254 0 obj <<
+/D [1238 0 R /XYZ 71.731 456.3097 null]
+>> endobj
+1255 0 obj <<
+/D [1238 0 R /XYZ 139.477 439.8165 null]
+>> endobj
+1256 0 obj <<
+/D [1238 0 R /XYZ 139.477 439.8165 null]
+>> endobj
+1257 0 obj <<
+/D [1238 0 R /XYZ 76.7123 421.8838 null]
+>> endobj
+1258 0 obj <<
+/D [1238 0 R /XYZ 129.5143 403.951 null]
+>> endobj
+1259 0 obj <<
+/D [1238 0 R /XYZ 129.5143 403.951 null]
+>> endobj
+1260 0 obj <<
+/D [1238 0 R /XYZ 71.731 381.8689 null]
+>> endobj
+1261 0 obj <<
+/D [1238 0 R /XYZ 71.731 370.9748 null]
+>> endobj
+1262 0 obj <<
+/D [1238 0 R /XYZ 71.731 369.7295 null]
+>> endobj
+1263 0 obj <<
+/D [1238 0 R /XYZ 129.5143 350.6509 null]
+>> endobj
+636 0 obj <<
+/D [1238 0 R /XYZ 71.731 344.23 null]
+>> endobj
+62 0 obj <<
+/D [1238 0 R /XYZ 211.2435 300.4153 null]
+>> endobj
+1264 0 obj <<
+/D [1238 0 R /XYZ 71.731 276.6597 null]
+>> endobj
+1265 0 obj <<
+/D [1238 0 R /XYZ 161.0655 267.5386 null]
+>> endobj
+1266 0 obj <<
+/D [1238 0 R /XYZ 71.731 255.4191 null]
+>> endobj
+1267 0 obj <<
+/D [1238 0 R /XYZ 71.731 224.0532 null]
+>> endobj
+1268 0 obj <<
+/D [1238 0 R /XYZ 168.8063 213.0429 null]
+>> endobj
+1269 0 obj <<
+/D [1238 0 R /XYZ 71.731 185.9795 null]
+>> endobj
+1270 0 obj <<
+/D [1238 0 R /XYZ 71.731 169.5576 null]
+>> endobj
+1271 0 obj <<
+/D [1238 0 R /XYZ 71.731 138.6216 null]
+>> endobj
+1272 0 obj <<
+/D [1238 0 R /XYZ 181.5683 126.9657 null]
+>> endobj
+1273 0 obj <<
+/D [1238 0 R /XYZ 71.731 116.9035 null]
+>> endobj
+1237 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1276 0 obj <<
+/Length 1027      
+/Filter /FlateDecode
+>>
+stream
+xÚÍXËnÛ8\14Ýç+´´\81\9aåC|e\97¶3\83)Ú"(¼k\ 6\ 3Ŧ\13µ²\14H2\82þ}¯\9e¦$J\14f3E\16²\9d#\9eÃÃCÞ+\91\0Ã\1f     $A\92Á\85jD\ 5§Áá|\83\83'ø×_7¤\85ìZÌÎ\ 6½Ûß¼ý\93á@#-¨\bö§\80i\81¸\f\ 3É(R\9c¨`\7fü¶yÿ\1c½\94&ßî(Ç\e\8a\9aë}\12¥¦ü\14=6_ïîÿn>|6åsv,¶ÿì?Þü±ïù9\93H+ Y\14Ù£¦2©¶d\12¢\11çD\ 6\12+ÄB&k\9d÷[Â7Q\1e\9d\r¨-nÇ\12ú\9b\84\ 2\16\8a\99SB\8fÚÙ°N\ 2ü"1\19Hèa\95\84\a\84\97RÐH¨\93w|½êèî\9aê`*P`\85\bk\1d`\14'!\eê\88.ås¥cä\e\r\11®\18*Èm³^E\99_\ eå\9bÑ*V÷\9b´\8c\ fQ\19\8d¼äf:ÁN\82\0*%¹ÛØ\ eµ³aWcI\15ÏÁ\84:ج±\10RLCíä\9d7¶»kªch,Ó(\94r(ã\ e|i\12îp\97\v$BØ<c\7fãô©ó×aë¹\19®þ\fÍõR\98ùô²\10A8|á½¢\96²Û¢üÑ\9d\92®IîHÄLp-\11gS\14Ñ\93ù÷\14\9b¤9DF\1eK\89\14\95áùX\12\81\88ÒÌ\17K\v\14Ë\ eæ\8f¥\83wM,Ç:ܱ´e\984zL\8c+\93!F\1cK=ôë1Ë\12\13¥oº\13»ö¼ù\12\17ÍÕ\1aÑé)×
+Q.|[Ý\86-xÚü\9eºxWx:Ñáôt £\8bbü߶úÐÕcµë\1f0¦PFg-U\181
+Â<\96Z°%K;\98ßR\aï\1aKÇ:Ü\96Ú2Js~I¢Ò¸rÊ\11§\9a®5Ô\1eÉm¦\80CH\13\9f\97\92\95-Êïä\94t\8d\91#\11n\1f-\rÅåñ»iλén'¡^\1dËâr>GùÏj 8v0Â2\84ÒÁ1\1c±0H5ÄW\ 3\ 5?]è¥BM\10á\8a\91\r[¨G=Ì[\90\¼+*\92K\87ÕVv+>Ð\11§]{DÚÝ|êì;\1cÀÎÓ%i\97\ 2ôID        ¯WnÇ%\92\8a±ÚPʸ¨\a£HW\r´T\9b»ã\96àÍñ\8b)_·\14o²üÇlc\11BÑ£\18l¬ºr)Ún7Ïʬüùbnû;®±iïÝQ\82\ 4T\89¦w96dÄ&«'ò\809®:¾v\9a)tÐð\13q(Ùu\ 3ÛJ>\98â\90Ç/UK³¤\85Á£\85 ½\96¶ÐD-§ÙR¾yí¾ô2í\1e     ÕAÅ°\9epú2)ì\84z\16¨\9dÙ©\1a5º$e\8bÏ \1dË_ã µs½K\92¬VjZï¾B)-Ö.At<ÇéZªµ\8f3DSøÀ´g\vÚ°\85-Øü[ÐÅ»b\vNt¸»Â\81\8eÿçq\86È\10      J¨§\88Ø°\85*ÒüeÄÅ»¢\8eLt8\vÉ@Æoð8C\98B\92séK¯\ 5[Jo\aó§×Á»&½c\1d3éµuTçéêô^Ýýâ>\ 5\9b\18Lþzb¨Åjݾû  \15RDèÅ×C\16fúv\88S\ 5\92µîGªH    \99}×ã ü\ 5\89\9c6öendstream
+endobj
+1275 0 obj <<
+/Type /Page
+/Contents 1276 0 R
+/Resources 1274 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1194 0 R
+>> endobj
+1277 0 obj <<
+/D [1275 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+638 0 obj <<
+/D [1275 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+1278 0 obj <<
+/D [1275 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+1279 0 obj <<
+/D [1275 0 R /XYZ 71.731 708.2442 null]
+>> endobj
+1280 0 obj <<
+/D [1275 0 R /XYZ 71.731 706.9988 null]
+>> endobj
+1281 0 obj <<
+/D [1275 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+1282 0 obj <<
+/D [1275 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+1283 0 obj <<
+/D [1275 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+1284 0 obj <<
+/D [1275 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+1285 0 obj <<
+/D [1275 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+1286 0 obj <<
+/D [1275 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+1287 0 obj <<
+/D [1275 0 R /XYZ 76.7123 652.0548 null]
+>> endobj
+1288 0 obj <<
+/D [1275 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+1289 0 obj <<
+/D [1275 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+1290 0 obj <<
+/D [1275 0 R /XYZ 71.731 632.7413 null]
+>> endobj
+1291 0 obj <<
+/D [1275 0 R /XYZ 71.731 632.7413 null]
+>> endobj
+1292 0 obj <<
+/D [1275 0 R /XYZ 139.477 616.1893 null]
+>> endobj
+1293 0 obj <<
+/D [1275 0 R /XYZ 139.477 616.1893 null]
+>> endobj
+1294 0 obj <<
+/D [1275 0 R /XYZ 71.731 614.0324 null]
+>> endobj
+1295 0 obj <<
+/D [1275 0 R /XYZ 139.477 598.2565 null]
+>> endobj
+1296 0 obj <<
+/D [1275 0 R /XYZ 139.477 598.2565 null]
+>> endobj
+1297 0 obj <<
+/D [1275 0 R /XYZ 71.731 596.0997 null]
+>> endobj
+1298 0 obj <<
+/D [1275 0 R /XYZ 139.477 580.3238 null]
+>> endobj
+1299 0 obj <<
+/D [1275 0 R /XYZ 139.477 580.3238 null]
+>> endobj
+1300 0 obj <<
+/D [1275 0 R /XYZ 71.731 578.1669 null]
+>> endobj
+1301 0 obj <<
+/D [1275 0 R /XYZ 139.477 562.391 null]
+>> endobj
+1302 0 obj <<
+/D [1275 0 R /XYZ 139.477 562.391 null]
+>> endobj
+1303 0 obj <<
+/D [1275 0 R /XYZ 71.731 524.533 null]
+>> endobj
+1304 0 obj <<
+/D [1275 0 R /XYZ 71.731 511.482 null]
+>> endobj
+1305 0 obj <<
+/D [1275 0 R /XYZ 71.731 510.2367 null]
+>> endobj
+1306 0 obj <<
+/D [1275 0 R /XYZ 129.5143 491.1581 null]
+>> endobj
+637 0 obj <<
+/D [1275 0 R /XYZ 71.731 484.7373 null]
+>> endobj
+66 0 obj <<
+/D [1275 0 R /XYZ 267.2967 440.9225 null]
+>> endobj
+1307 0 obj <<
+/D [1275 0 R /XYZ 71.731 420.7821 null]
+>> endobj
+1308 0 obj <<
+/D [1275 0 R /XYZ 161.0655 408.0458 null]
+>> endobj
+1309 0 obj <<
+/D [1275 0 R /XYZ 71.731 395.9263 null]
+>> endobj
+1310 0 obj <<
+/D [1275 0 R /XYZ 71.731 364.8967 null]
+>> endobj
+1311 0 obj <<
+/D [1275 0 R /XYZ 168.8063 353.5502 null]
+>> endobj
+1312 0 obj <<
+/D [1275 0 R /XYZ 71.731 326.4867 null]
+>> endobj
+1313 0 obj <<
+/D [1275 0 R /XYZ 71.731 311.9164 null]
+>> endobj
+1314 0 obj <<
+/D [1275 0 R /XYZ 71.731 279.1288 null]
+>> endobj
+1315 0 obj <<
+/D [1275 0 R /XYZ 181.5683 267.473 null]
+>> endobj
+1316 0 obj <<
+/D [1275 0 R /XYZ 71.731 257.4108 null]
+>> endobj
+1317 0 obj <<
+/D [1275 0 R /XYZ 71.731 225.8392 null]
+>> endobj
+1318 0 obj <<
+/D [1275 0 R /XYZ 71.731 212.8778 null]
+>> endobj
+1319 0 obj <<
+/D [1275 0 R /XYZ 71.731 211.6324 null]
+>> endobj
+1320 0 obj <<
+/D [1275 0 R /XYZ 129.5143 192.5539 null]
+>> endobj
+1321 0 obj <<
+/D [1275 0 R /XYZ 129.5143 192.5539 null]
+>> endobj
+1322 0 obj <<
+/D [1275 0 R /XYZ 71.731 191.1144 null]
+>> endobj
+1323 0 obj <<
+/D [1275 0 R /XYZ 71.731 191.1144 null]
+>> endobj
+1324 0 obj <<
+/D [1275 0 R /XYZ 139.477 174.6212 null]
+>> endobj
+1325 0 obj <<
+/D [1275 0 R /XYZ 139.477 174.6212 null]
+>> endobj
+1326 0 obj <<
+/D [1275 0 R /XYZ 76.7123 156.6884 null]
+>> endobj
+1327 0 obj <<
+/D [1275 0 R /XYZ 129.5143 138.7557 null]
+>> endobj
+1328 0 obj <<
+/D [1275 0 R /XYZ 129.5143 138.7557 null]
+>> endobj
+1329 0 obj <<
+/D [1275 0 R /XYZ 71.731 116.6735 null]
+>> endobj
+1330 0 obj <<
+/D [1275 0 R /XYZ 71.731 105.7794 null]
+>> endobj
+1331 0 obj <<
+/D [1275 0 R /XYZ 71.731 104.5341 null]
+>> endobj
+1274 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1334 0 obj <<
+/Length 862       
+/Filter /FlateDecode
+>>
+stream
+xÚÅWÛ\8e\9b0\10}ÏWðH¤Åõ\ 5c{\1f*¥·U«v\15­òÖ­*\1a\9c\r*\81\88KWû÷µ±!\908$RWªò` Ç3gÎxf\0yPý\90Ç\10`D-X\0\1cQì­w3è=©¿îfÈB\ 2\8b      \86 w«Ù\9bO\ 4z\ 2\88\bGÞjã\11\11\ 1ÊB\8f\11\f8EÜ[%ßý÷Ûx_Ër\1e`
+}\f̺Ìâ\Ö_ã_æv±ül.¾Éz[$ÕüÇêËìãª÷O       \ 3\82+'\93$CÄAH ð\ 2\f\81À\88:Q\b    @)b*\18È\ 1         ë\83ÁÂS~\18D:\98\1e×Ãt4\8f\18Ócv\bc\ 5\e\1aìü\1e¯\a\1eÝ.'\8f\83¨H\85LQHÆ<Ò¼¾1\92!³¤\e³VÍz-«jÓd\9a¦²¥ø1 Ä\bµ±\802À8!ê\ 2\ 2LhÔ\1aÃ\0A\9d\18ÆýE2GÐOîeý<ÇÐ/Êß«y\ 4ý\97½´æ\86ÔB\ 68\86JI\9do\16\19f˲¨\8bZm¸íwpµ#jýÛ½\ 1F B\´\e\16\89q\87¬;nܵÑ<B
+ã¦ÞÚXóx'Õ#äà\12\87\>Èj]¦û:-ò)6D\1dÛ\b÷l*ã,¶>å\1cSÿ¹»é\89\9a\a:P M«¤\ 6(\ 2\11aFÓ\aY7e^]È\91\8dk£mÆMV[|Qoeù\9cVÆô5\91.²¬hyÊÄ\98x(2Y]\9b\828Ù¥ùµ®\96sDý¸T©Pem\\8cª¡«\9b\10
+Õ4Ä¥*\1cÂ&ª°\87]¬B\97ß+ªð\84\aá\ 3Õú*\1cñÐGÓ!\e\ e\ 1Ô\1e4äÖ¦¼.\9buW²}»Óûe^§ëX\1fÑ!²)åi\80\96\ 2\11\bp\181·°\1d*\18Â\ eÂ"ÝÇ\87\ 1õ°³ÂªäC\1c
+§ßóÂv»Ny\8c\85%\ 2\84\8c\8di,\94.f\148Ô¥ªÊB5e\8eõMó§N_\87¬;cÎ\14maÖ¦\92gO/¡\14\b}0¦Oï\106qz{ØÅÓëò{Åé=áá>½#\1eº\9b^}z\ fêÞ»z`Û\ 2\ 3BTèÇýÂvÂó\8d\82@¬2\8aÐ%©\a°)©;Øe©\1d\91ÚÁÃ1®G<^{\££q]$ò®l\a\7fýA}\98Ó­\1fíÃ9\9dÕ¿z6<iÄÏG\b±Ì\92êÿÎkM©½jIÙ·ÏE®i¾\98\9b?\1a\1eg\8d´fª½\§-yÛ-Ò|*<ë»\94}KIn\8e\86¸¹Mäñ\94\1fmºü\12¡Ì\9d\8b°g\95&\87̼5\97°MÀ¿¼\7f\f\8bÇ~\b\84\1cp\14\89Éo\85\ 1æôS\81b®º\8c\10½%\1d.Âg_ü\1d\ eÿ\ 2\82Nûöendstream
+endobj
+1333 0 obj <<
+/Type /Page
+/Contents 1334 0 R
+/Resources 1332 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1194 0 R
+>> endobj
+1335 0 obj <<
+/D [1333 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1336 0 obj <<
+/D [1333 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+70 0 obj <<
+/D [1333 0 R /XYZ 254.8155 658.1081 null]
+>> endobj
+1337 0 obj <<
+/D [1333 0 R /XYZ 71.731 634.6193 null]
+>> endobj
+1338 0 obj <<
+/D [1333 0 R /XYZ 161.0655 625.2314 null]
+>> endobj
+1339 0 obj <<
+/D [1333 0 R /XYZ 71.731 613.1119 null]
+>> endobj
+1340 0 obj <<
+/D [1333 0 R /XYZ 71.731 581.746 null]
+>> endobj
+1341 0 obj <<
+/D [1333 0 R /XYZ 168.8063 570.7357 null]
+>> endobj
+1342 0 obj <<
+/D [1333 0 R /XYZ 71.731 543.6723 null]
+>> endobj
+1343 0 obj <<
+/D [1333 0 R /XYZ 71.731 527.2504 null]
+>> endobj
+1344 0 obj <<
+/D [1333 0 R /XYZ 71.731 496.3144 null]
+>> endobj
+1345 0 obj <<
+/D [1333 0 R /XYZ 181.5683 484.6585 null]
+>> endobj
+1346 0 obj <<
+/D [1333 0 R /XYZ 71.731 474.5963 null]
+>> endobj
+1347 0 obj <<
+/D [1333 0 R /XYZ 71.731 443.0247 null]
+>> endobj
+1348 0 obj <<
+/D [1333 0 R /XYZ 71.731 430.0633 null]
+>> endobj
+1349 0 obj <<
+/D [1333 0 R /XYZ 71.731 428.818 null]
+>> endobj
+1350 0 obj <<
+/D [1333 0 R /XYZ 129.5143 409.7395 null]
+>> endobj
+1351 0 obj <<
+/D [1333 0 R /XYZ 129.5143 409.7395 null]
+>> endobj
+1352 0 obj <<
+/D [1333 0 R /XYZ 71.731 408.2999 null]
+>> endobj
+1353 0 obj <<
+/D [1333 0 R /XYZ 71.731 408.2999 null]
+>> endobj
+1354 0 obj <<
+/D [1333 0 R /XYZ 139.477 391.8067 null]
+>> endobj
+1355 0 obj <<
+/D [1333 0 R /XYZ 139.477 391.8067 null]
+>> endobj
+1356 0 obj <<
+/D [1333 0 R /XYZ 76.7123 373.874 null]
+>> endobj
+1357 0 obj <<
+/D [1333 0 R /XYZ 129.5143 355.9412 null]
+>> endobj
+1358 0 obj <<
+/D [1333 0 R /XYZ 129.5143 355.9412 null]
+>> endobj
+1359 0 obj <<
+/D [1333 0 R /XYZ 71.731 333.8591 null]
+>> endobj
+1360 0 obj <<
+/D [1333 0 R /XYZ 71.731 322.965 null]
+>> endobj
+1361 0 obj <<
+/D [1333 0 R /XYZ 71.731 321.7196 null]
+>> endobj
+1362 0 obj <<
+/D [1333 0 R /XYZ 129.5143 302.6411 null]
+>> endobj
+639 0 obj <<
+/D [1333 0 R /XYZ 71.731 296.2202 null]
+>> endobj
+74 0 obj <<
+/D [1333 0 R /XYZ 242.4379 252.4055 null]
+>> endobj
+1363 0 obj <<
+/D [1333 0 R /XYZ 71.731 228.9167 null]
+>> endobj
+1364 0 obj <<
+/D [1333 0 R /XYZ 161.0655 219.5287 null]
+>> endobj
+1365 0 obj <<
+/D [1333 0 R /XYZ 71.731 207.4093 null]
+>> endobj
+1366 0 obj <<
+/D [1333 0 R /XYZ 71.731 176.0434 null]
+>> endobj
+1367 0 obj <<
+/D [1333 0 R /XYZ 168.8063 165.0331 null]
+>> endobj
+1368 0 obj <<
+/D [1333 0 R /XYZ 71.731 137.9697 null]
+>> endobj
+1369 0 obj <<
+/D [1333 0 R /XYZ 71.731 121.5478 null]
+>> endobj
+1332 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F21 514 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1372 0 obj <<
+/Length 1185      
+/Filter /FlateDecode
+>>
+stream
+xÚ\9dX]o«8\10}ï¯à1\91\1a_lc\eîÃ\95²_W]íVÕUÞ¶«\8a\80Ó %\10\ 1\7f¿clÀ\80óÑ«<`ÂØsæÌ\99±\ 1{>ü°'0\12\14.$B\843â%\87;ß{\85Gßï°1Y\19\9b\95môËæîË\1fÔ÷"\14q½ÍΣ\11GL\ 4\9e \ 4\85\f\87Þ&ýgñë>>6²Z®\bó\17\ 4éëS\1e\17²ù+ÞêÛõÓ\83\1eü-\9b}\99ÖË\7f7\7fÞý¾éý3*P\14\82\93\8b {«9L\12Y01\8e\10cXxÂ\ f\11\r¨hq®ó¼\\12¶x\97©Æò£ÌeýUAiç\870\9f\aj¾YiE0â8\8cÚÙqzÈ\8aÞvðµê\8c\15%\82kWOKÌ\16q\15\1f$\10£]ØÑöø8¥( \ 1wFÛ[­l³.Z`Bøx\14mo¦ <\13Âf~   \ 1:0qú\9d^\a\1cݬ9\ e\1aZ¬aÈ      Ã\ 1\1dã\88OÍÞA\e      \90¯<(\93¯:\1duS\9d\92æ~"\185_\16M\96ÄMV\16¶å©\92ó\0;\b\98¡ Â\91\9bØÎje\9b\rÄbU        £\80:³³ÄBò}\12DN¿ç\89ífÍq\8c\89¥\11
+\84\18ÃX\ 3\98\1cì2\8ex\0u:å7+^;~\1d´\1eôrí¸)õõT˳êe"Bà0¸¢^Ûì\82z{³«êuù½A½3\1c\8ep\14e*_«òt|Ùe2×}kÂu\18"ÆEèÒòYy2\ e\9d%¢ü\8a<m³\vòìÍ®ÊÓå÷\ 6yÎp8å9\82Q@ï;Sö~\14]\10æ#0®G-ïzØ­æ&3 HpÿZ­Ûf\97ÈìÌ®\93éð{\v\99S\1cn2m\18©¬\93*;¶\95:çTÑÎCñYN'\8b\10#\16\ 5\0ÐG¡\1f±vµ\1f\12Úlqa\a\v\ 4A\8c\84WZ\80eu¡\ 3tVW\e\80Ãé\rõï\0a\1d\19ºüÛ ²¢Û\8e\1ee{r0jTtÂ\ 6¯\eCf:æ³ÏüozèÃ\18ëa¶3ù8%\89¬ëÝ)7\19\84p\ 4"\98µY\87Þ\84DHiK>¡L×\10A¸=N\89p±N\97\18\12ù(\9b÷%ñ\17\9fC\f\81@!ñÅä8R\95MÙ|\1cå­\87\9du:¸ÂÚU\1f£Ú\90ï\a" þ\97²zÙ\97u£ªÔzR\f³_\9e}\9f¨þÙ\12sã!ê·A \97pS8\92rÒã®Í±Áà\18åm\1aή¬ÆÖ\80Ú\9c\85Êð\87¾yS\8bÄùI\9aÅë£L²6$\93û¬¸\1c¶ñRÉ~SM\rQ%lÃÕ{VË®(wjn|Ê\ek\92*O_Õ\13â\8cÓ6Rµ\84\82\1aðÅ\1a\94ulâm.õý\b-Üë(aÐïïj\1c\7fèÁÖ̪$t\8c\96­7\15¹4voY¬\aßecÉÁ\1cã?\8b@ipðï\bkkxp¡Q\89ÈL¦Æh6ËÐ_ÀÒ\80ǬI¡\97\85X\97Ñ\83)Aã\¥«Ëc\ 3§\9fÄd";\9aÁë\12À7F8*\19\1f\16÷3\r\99\7f¶U\19§I\7\83Å!®»§qa §EmZÂáT7æa\9e\9b5äya9X:'3£Ýó\ 1§û¤\8b\12\89îØ¿©\98g\16ñŤ\8d\r\0ï'¢Î^\8b²R¢\1c¥@o#O\ fõ\84\8eF&{ó\9f\96¢ª\85"7£8Mgt×ã\83)àÏLõê·:«\ 4;"Öê\9dmêå\86µc»øuSè²\0\ak*¸½7öp\\1dg\92¨Ïî\15\86ãiOè\9b\ 6ºµ\97þ仯õêk \1c³û!\81Ó\rÚ|D\bB\ 4µ\17]üÎ`ÙÌ?3Àþ\vo\87pLì¬\14
+LÏ~4p8ü\1fË\19\16\19endstream
+endobj
+1371 0 obj <<
+/Type /Page
+/Contents 1372 0 R
+/Resources 1370 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1194 0 R
+>> endobj
+1373 0 obj <<
+/D [1371 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1374 0 obj <<
+/D [1371 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+1375 0 obj <<
+/D [1371 0 R /XYZ 181.5683 708.3437 null]
+>> endobj
+1376 0 obj <<
+/D [1371 0 R /XYZ 71.731 698.2815 null]
+>> endobj
+1377 0 obj <<
+/D [1371 0 R /XYZ 71.731 666.7099 null]
+>> endobj
+1378 0 obj <<
+/D [1371 0 R /XYZ 71.731 653.7485 null]
+>> endobj
+1379 0 obj <<
+/D [1371 0 R /XYZ 71.731 652.5032 null]
+>> endobj
+1380 0 obj <<
+/D [1371 0 R /XYZ 129.5143 633.4246 null]
+>> endobj
+1381 0 obj <<
+/D [1371 0 R /XYZ 129.5143 633.4246 null]
+>> endobj
+1382 0 obj <<
+/D [1371 0 R /XYZ 71.731 631.9851 null]
+>> endobj
+1383 0 obj <<
+/D [1371 0 R /XYZ 71.731 631.9851 null]
+>> endobj
+1384 0 obj <<
+/D [1371 0 R /XYZ 139.477 615.4919 null]
+>> endobj
+1385 0 obj <<
+/D [1371 0 R /XYZ 139.477 615.4919 null]
+>> endobj
+1386 0 obj <<
+/D [1371 0 R /XYZ 76.7123 597.5591 null]
+>> endobj
+1387 0 obj <<
+/D [1371 0 R /XYZ 129.5143 579.6264 null]
+>> endobj
+1388 0 obj <<
+/D [1371 0 R /XYZ 129.5143 579.6264 null]
+>> endobj
+1389 0 obj <<
+/D [1371 0 R /XYZ 71.731 578.2456 null]
+>> endobj
+1390 0 obj <<
+/D [1371 0 R /XYZ 71.731 578.2456 null]
+>> endobj
+1391 0 obj <<
+/D [1371 0 R /XYZ 139.477 561.6936 null]
+>> endobj
+1392 0 obj <<
+/D [1371 0 R /XYZ 139.477 561.6936 null]
+>> endobj
+1393 0 obj <<
+/D [1371 0 R /XYZ 71.731 559.5368 null]
+>> endobj
+1394 0 obj <<
+/D [1371 0 R /XYZ 139.477 543.7609 null]
+>> endobj
+1395 0 obj <<
+/D [1371 0 R /XYZ 139.477 543.7609 null]
+>> endobj
+1396 0 obj <<
+/D [1371 0 R /XYZ 71.731 505.9029 null]
+>> endobj
+1397 0 obj <<
+/D [1371 0 R /XYZ 71.731 492.8519 null]
+>> endobj
+1398 0 obj <<
+/D [1371 0 R /XYZ 71.731 491.6065 null]
+>> endobj
+1399 0 obj <<
+/D [1371 0 R /XYZ 129.5143 472.528 null]
+>> endobj
+640 0 obj <<
+/D [1371 0 R /XYZ 71.731 465.3899 null]
+>> endobj
+78 0 obj <<
+/D [1371 0 R /XYZ 258.7062 422.2924 null]
+>> endobj
+1400 0 obj <<
+/D [1371 0 R /XYZ 71.731 402.152 null]
+>> endobj
+1401 0 obj <<
+/D [1371 0 R /XYZ 161.0655 389.4157 null]
+>> endobj
+1402 0 obj <<
+/D [1371 0 R /XYZ 71.731 377.2962 null]
+>> endobj
+1403 0 obj <<
+/D [1371 0 R /XYZ 71.731 346.2666 null]
+>> endobj
+1404 0 obj <<
+/D [1371 0 R /XYZ 168.8063 334.92 null]
+>> endobj
+1405 0 obj <<
+/D [1371 0 R /XYZ 71.731 307.8566 null]
+>> endobj
+1406 0 obj <<
+/D [1371 0 R /XYZ 71.731 253.1781 null]
+>> endobj
+1407 0 obj <<
+/D [1371 0 R /XYZ 71.731 209.9403 null]
+>> endobj
+1408 0 obj <<
+/D [1371 0 R /XYZ 71.731 193.3027 null]
+>> endobj
+1409 0 obj <<
+/D [1371 0 R /XYZ 71.731 162.0574 null]
+>> endobj
+1410 0 obj <<
+/D [1371 0 R /XYZ 181.5683 150.7108 null]
+>> endobj
+1411 0 obj <<
+/D [1371 0 R /XYZ 71.731 140.6487 null]
+>> endobj
+1370 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1414 0 obj <<
+/Length 1520      
+/Filter /FlateDecode
+>>
+stream
+xÚ­\99]oÛ6\14\86ïó+|\17\e¨9~Jb/\ 6¤íºeX³`ÍÝ:\18\8a¥ÄÂlÉ\93ä\ 6ù÷;²D\9b\96\8eH­+ra9~¥óêá!yH²\19\85?6\v\19       \ 5|pMx øl½»¢³gøéç+ÖI\96\9dfi\8bÞ=\ýðQÐ\99&:àÁìái&t@T(g¡à$R,\9a=$\7fÎßoâ}\9d\96\8b%WtÎIûy¿\8dó´þ-~l¿ÞÜ߶\17\9fÒzS$Õâ¯\87_¯~z8ÅW"$:\82 N\93'ÕÐ&×\96MÆ4Q\8a\85³\90FDH\11\1e}Þ/\98\9aÇe¼KÁmõ¶oátS\10A\14N\ 5já¤ZÚ2c\ 1þ\13Rvaá$k,|á\\râr\ e\1e\19Gãö?Ï>Ì]C\1f"\9aE\80"\90G\1f\0J1).}Ä\87zÓøèqã\92Ð&B#yÛ¶WU\97\87uý¦×\8aÍýi^gë¸Î\8aÜV\1eÊtø\82ÆB\0¡¢Pá`\8djiËÎ`Y\93\9e\17/dd£`!I)\97\1a\8d;\ eÖÜ5ôq      Vh"ÃðÒÆ\rpi3\1c¡«\ 2\12Hè<}¾Yþlø"Xwíã\8e×uÑ~\1eªt<{\85$\90\1c¾ä=«\¹Û©ü©;\f:%s{&F\12×2\91\17IºÊ\92UQ®6EUçÐ\97\11Ð\8cJ\12ÒP\\92Îòº½(J\eýx¶²\80°H\v_¶Z2W¶\1a\99?[\91¸S²\15ña!1ÙjÛ\0"]âÝ\ 1×\8eRÒ$à\17J9\8cèch\94\8e\bW\81¯#Û2\a\9a\93Ì\8b\ 6\8b;\ 1\ræc\88æÂÆE·üxØn_ÛË\7f\ eñ¶¥ÓuI;\rÑþ¨\ 2HwÍ<ýÑR9ú£Qyû#\12tB\7fì\9bÀû£m¢é\8f0Í¿\14åß«§,ݶ\13{\ f°ÖDpdÜ\83Ùb<ä$RE¾ÎgË\\19fdþ\fCâNÉ°¾\ ftª¸°ÑaCxIJ¤\84Òf|\9eø|x\84Û»©8IÊ´ªÆIr(Ù¸òöUKæ"id~\92HÜ)$û>p\92\8d¬ZíËl\17\97¯Ø¤\e\12*z3ÁcQlÓ8ï`ÞVÝäºé\86@ó03k¤åÓ\82\ 1èu÷û\93\99@êMÖÝÛô\83ñ\16\80"Ti\1eùZÀ\92¹ZÀÈü-\80Ä\9dÒ\ 2}\1fx\vØ6\92¼b#å$ÕÚ\91È·÷\97IÜÎÏOH;|¸ûÜÝ\9f\96_\9bBÞ1=IMI\10xp\9fE\ eØ\9dÈ\8bz\18q\ 2è\9e\ 3\14³eÀQðH\ 5½A»F\8c/TÑß÷MU\19\9aµÿýelò:½\7fÈIÈCß0lË\4\8dÌÏ\13\89;\85\aÎÔ¶±\8b×X\ 5\19A\ 1 ËÛq \9fn\16\92ÎßO\e\83¥\82\82TKß\18lË\\18\8dÌ\8f\11\89;\ 5\a\8eѶñø²ÍvY\8dÏfLj9¨Å;\8eïâ<yÉ\12X\8e\1e¿\9e\9e\82s\14\ 1\89\ 2æ\eIm\99\8b£\91ù9"q§pìûÀ9Ú6\1eË"NÖq\85\91T\94\1aMï ¤hfª¦¬h'ºÓÓ¦¥)¤½\86\90\1eºg\95\vn§ò³\1d\ 6\9d\82¶g\ 2'kyØ\8d­Ê\85\82ÕeÄ\«ò\16[³V\1c¬È\9bq5%Ϥ\93^/\94\82\9baù¾¾¾\lÂ/t\9elÖûëãð;Ú\ 4\14\1a\19¬ùÚÀ\92¹\1aÁÈü­\80Ä\9dÒ\f}\1fx;Ø6 pÝÅÕÿ¯{ÍCP\8c"\12\84\ 6Â7àÚ2\aÆ\93Ì\8b\11\8b;\ 1ãÀ\a\8añÂ\ 6\94\üû\97\Uº.òä\9b\8a.\11@G\124ô!·d.äFæG\8eÄ\9d\82¼ï\ 3GnÛÈöX¥ \b×\8aý\aà£\0%pо¹ÍR¹ðu*?½aÐ)ðz&pv\96\87úu\9f~S¶ÞØYz|
+:ìfû¯Ò=°
+×¹\82\85\179WÀø\1a\99\1f0\12w
+áÁ1\f\8aضñ\1c×éKü\8a\ f¬\91\16ÁwY\87=/Ô\1c\ 2\9a\1fk\8d6àl\19@\f\16\1d\97\8f$¢Pï5¡þHëC\99;\8e\8a`yÎ¥gwÌ\969¶ÇN2ïþ\18\16\ 6\19æÃ\1a
+Lv\ø°6Y;j§\1d\83ü\¯­2« ø±½¤ç\85ZfÆçÃz\ríótØvÍ\fï\14\12ÎÔ1-\96*$a$\8e{  \84\vÕ\ e[\1cF°æP.\8c 75á\92»n·¢\9f&!\898\8cuËæp/\fºC³²¨\8b¦ã½=ÝqÎÃîÞ%g$h\1aÿx\ 4\92$çÝäæm\9a³¢\8e@\95Õfû~[<gùê1®Ò7g «ãÎê6©LWî9\\9a\80¶Ã\ fiµ.³ãÚv\90hÝ©¦\8c 9\ 3í<ø´4ÃsOÅ¡E\19\8cTFÕ\ 4frô\14\13     ø/é.\8bOendstream
+endobj
+1413 0 obj <<
+/Type /Page
+/Contents 1414 0 R
+/Resources 1412 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1486 0 R
+>> endobj
+1415 0 obj <<
+/D [1413 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1416 0 obj <<
+/D [1413 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+1417 0 obj <<
+/D [1413 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+1418 0 obj <<
+/D [1413 0 R /XYZ 71.731 708.2442 null]
+>> endobj
+1419 0 obj <<
+/D [1413 0 R /XYZ 71.731 706.9988 null]
+>> endobj
+1420 0 obj <<
+/D [1413 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+1421 0 obj <<
+/D [1413 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+1422 0 obj <<
+/D [1413 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+1423 0 obj <<
+/D [1413 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+1424 0 obj <<
+/D [1413 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+1425 0 obj <<
+/D [1413 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+1426 0 obj <<
+/D [1413 0 R /XYZ 76.7123 652.0548 null]
+>> endobj
+1427 0 obj <<
+/D [1413 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+1428 0 obj <<
+/D [1413 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+1429 0 obj <<
+/D [1413 0 R /XYZ 71.731 631.9652 null]
+>> endobj
+1430 0 obj <<
+/D [1413 0 R /XYZ 71.731 631.9652 null]
+>> endobj
+1431 0 obj <<
+/D [1413 0 R /XYZ 139.477 616.1893 null]
+>> endobj
+1432 0 obj <<
+/D [1413 0 R /XYZ 71.731 614.7497 null]
+>> endobj
+1433 0 obj <<
+/D [1413 0 R /XYZ 139.477 598.2565 null]
+>> endobj
+1434 0 obj <<
+/D [1413 0 R /XYZ 76.7123 580.3238 null]
+>> endobj
+1435 0 obj <<
+/D [1413 0 R /XYZ 129.5143 562.391 null]
+>> endobj
+1436 0 obj <<
+/D [1413 0 R /XYZ 129.5143 562.391 null]
+>> endobj
+1437 0 obj <<
+/D [1413 0 R /XYZ 71.731 561.212 null]
+>> endobj
+1438 0 obj <<
+/D [1413 0 R /XYZ 71.731 561.212 null]
+>> endobj
+1439 0 obj <<
+/D [1413 0 R /XYZ 139.477 544.4583 null]
+>> endobj
+1440 0 obj <<
+/D [1413 0 R /XYZ 139.477 544.4583 null]
+>> endobj
+1441 0 obj <<
+/D [1413 0 R /XYZ 71.731 542.3014 null]
+>> endobj
+1442 0 obj <<
+/D [1413 0 R /XYZ 139.477 526.5255 null]
+>> endobj
+1443 0 obj <<
+/D [1413 0 R /XYZ 139.477 526.5255 null]
+>> endobj
+1444 0 obj <<
+/D [1413 0 R /XYZ 71.731 524.3687 null]
+>> endobj
+1445 0 obj <<
+/D [1413 0 R /XYZ 139.477 508.5928 null]
+>> endobj
+1446 0 obj <<
+/D [1413 0 R /XYZ 139.477 508.5928 null]
+>> endobj
+1447 0 obj <<
+/D [1413 0 R /XYZ 71.731 506.4359 null]
+>> endobj
+1448 0 obj <<
+/D [1413 0 R /XYZ 139.477 490.66 null]
+>> endobj
+1449 0 obj <<
+/D [1413 0 R /XYZ 139.477 490.66 null]
+>> endobj
+1450 0 obj <<
+/D [1413 0 R /XYZ 71.731 488.5032 null]
+>> endobj
+1451 0 obj <<
+/D [1413 0 R /XYZ 139.477 472.7273 null]
+>> endobj
+1452 0 obj <<
+/D [1413 0 R /XYZ 139.477 472.7273 null]
+>> endobj
+1453 0 obj <<
+/D [1413 0 R /XYZ 71.731 470.5704 null]
+>> endobj
+1454 0 obj <<
+/D [1413 0 R /XYZ 139.477 454.7945 null]
+>> endobj
+1455 0 obj <<
+/D [1413 0 R /XYZ 139.477 454.7945 null]
+>> endobj
+1456 0 obj <<
+/D [1413 0 R /XYZ 71.731 453.355 null]
+>> endobj
+1457 0 obj <<
+/D [1413 0 R /XYZ 139.477 436.8618 null]
+>> endobj
+1458 0 obj <<
+/D [1413 0 R /XYZ 139.477 436.8618 null]
+>> endobj
+1459 0 obj <<
+/D [1413 0 R /XYZ 71.731 434.7049 null]
+>> endobj
+1460 0 obj <<
+/D [1413 0 R /XYZ 139.477 418.929 null]
+>> endobj
+1461 0 obj <<
+/D [1413 0 R /XYZ 139.477 418.929 null]
+>> endobj
+1462 0 obj <<
+/D [1413 0 R /XYZ 71.731 416.7722 null]
+>> endobj
+1463 0 obj <<
+/D [1413 0 R /XYZ 139.477 400.9962 null]
+>> endobj
+1464 0 obj <<
+/D [1413 0 R /XYZ 139.477 400.9962 null]
+>> endobj
+1465 0 obj <<
+/D [1413 0 R /XYZ 71.731 398.8394 null]
+>> endobj
+1466 0 obj <<
+/D [1413 0 R /XYZ 139.477 383.0635 null]
+>> endobj
+1467 0 obj <<
+/D [1413 0 R /XYZ 139.477 383.0635 null]
+>> endobj
+1468 0 obj <<
+/D [1413 0 R /XYZ 71.731 380.9067 null]
+>> endobj
+1469 0 obj <<
+/D [1413 0 R /XYZ 139.477 365.1307 null]
+>> endobj
+1470 0 obj <<
+/D [1413 0 R /XYZ 139.477 365.1307 null]
+>> endobj
+1471 0 obj <<
+/D [1413 0 R /XYZ 71.731 362.9739 null]
+>> endobj
+1472 0 obj <<
+/D [1413 0 R /XYZ 139.477 347.198 null]
+>> endobj
+1473 0 obj <<
+/D [1413 0 R /XYZ 139.477 347.198 null]
+>> endobj
+1474 0 obj <<
+/D [1413 0 R /XYZ 71.731 345.0412 null]
+>> endobj
+1475 0 obj <<
+/D [1413 0 R /XYZ 139.477 329.2652 null]
+>> endobj
+1476 0 obj <<
+/D [1413 0 R /XYZ 139.477 329.2652 null]
+>> endobj
+1477 0 obj <<
+/D [1413 0 R /XYZ 71.731 291.4072 null]
+>> endobj
+1478 0 obj <<
+/D [1413 0 R /XYZ 71.731 278.3562 null]
+>> endobj
+1479 0 obj <<
+/D [1413 0 R /XYZ 71.731 277.1109 null]
+>> endobj
+1480 0 obj <<
+/D [1413 0 R /XYZ 129.5143 258.0324 null]
+>> endobj
+641 0 obj <<
+/D [1413 0 R /XYZ 71.731 251.2678 null]
+>> endobj
+82 0 obj <<
+/D [1413 0 R /XYZ 191.1362 207.7967 null]
+>> endobj
+1481 0 obj <<
+/D [1413 0 R /XYZ 71.731 187.6564 null]
+>> endobj
+1482 0 obj <<
+/D [1413 0 R /XYZ 161.0655 174.92 null]
+>> endobj
+1483 0 obj <<
+/D [1413 0 R /XYZ 71.731 162.8006 null]
+>> endobj
+1484 0 obj <<
+/D [1413 0 R /XYZ 71.731 131.4347 null]
+>> endobj
+1485 0 obj <<
+/D [1413 0 R /XYZ 168.8063 120.4244 null]
+>> endobj
+1412 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1489 0 obj <<
+/Length 1325      
+/Filter /FlateDecode
+>>
+stream
+xÚ¥X]\8f\9b8\14}\9f_ÁãD\9a\8d?èÃJi»­fµ­Fݼí¬"&8\13´\ 4²@Ú\9d\7f_\el0`>¤U\1e0áØ÷øø^ßkCÏ\97?è1\b\18\96\ f\14\ 2D   ò\8e\97;ß{\95\9f>ßA\rÙjÌÖ\ 6½ßßýò  û^\bB\8a¨·?y8¤\80°Àc\18\ 1N ÷öñ_÷\1fÎѵ\12Åf\8b\88\7f\8f@ó|J£LT\7fD/Íëîé±i|\11Õ9\8fËÍßûßï~Û·ö      f äÒÈ,É\16\89B\8fK\9a4P4¡üJ`\80=æs\80\ 3Ìj\9e»XÚ­IDÍ#\13\e\7fè\97<\16\9aû.Û@rÿÖ¼|W\98(½  Ý·¼\8acòìûHÄÍ\1f\rp¨?¤­\9dB4\8d[)â\87¦\99WgQüHJý%\16§\r\94È[Z¹:\ 1%\94\9cü\16C@8¤õD\9e\1e\r\1c*q<ëÿ.\91&\9eg©nEqÜQÔ°*×ϳHôÒåµ\1az6eR\89Òè\11_\92l8üÜ \91\1a©\9d\ 6¤\80bÖLã\9b¨n\85\19\98X\94\r=ûÄÿµiú²\rµü'mæv<\8a²<ÝR-ôP×Vø\9aLí1\9dcous«\1c\9bQí0iÚhb\96ú[\9e\8aò]Û½s8Ó\eA@!\ fëÞ\91RMs¹&\ fÝB­5ÿ¤D\8c\8aè"dt5fí\90\81P:9\81Ì#\ 4\ 1\8c8w\86L\8bÚÚ0\1322\9c\98\ fë\90\19\8d¦(<#DFv\91\ 4\ 4\10\ e\9f\1d\ fÓkÌ\ 3sWèöxD·Ê%\e
+\80¯,(È;í\ 6Uq;V\ f\83]Gõ\17Y\95\1c£*É3\ey\93Ñ6\9a ¡\80\ 3 w<·®\ 6´µP\9d¬Pm¦½éhÔ¤ªrå}\14\84.£Ó¢\9aN#\12}Mq\b\ 2Æz\1cvR\91f/vèJd\94\ 6r\9b\1f*\9bd¯FY\87 \97f¸ÞN ÷°I¿\rB\ e\böÉ\82ßÚ°\19¿ma\8b~ë²»ÂoG<Ü~Ûã¡ö>¹\7f\1dòâ\90æ¯Ivx\89\1aA\ 6\82CH@@iØW<É*½u\15ö\12LúkÀ}@BÆ\17\1cÖ\86Íxl\v[tY\97Ý\15>ëâaI¢\9d¶GC*¢\1dðO©¬V)V\8eX'ÞbZ\1a\8a\0¥dI\99\ e5'\8cF-ë26ºF\961  \87*\16\87^`vº\94irÔÍk!\94>ÿM\87\80\85áb(Z°¹P4°åPtØ]\13\8aC\1e\13¡hó¨K\89SR\17\0¤2qSÎ\¹dÚ§dqÉ©LÖ\vNeÁæ¼ÊÀ\96ÝÊaw\8d_\ry8sD\8fÆK\9eW\87²\8a*áN\122=ó\99$ñ^v7\7fë1\9cBâÐ\a!\ e\16t´P32\1aÔ¢\8a\ e£+D\1c\92pjhs¸H·K]¥K\b0\ fÙ\8cz_¢\7fT\ 5+\ 6¥~3`\93\16N\83Ú9\92õL\94\9aBýxN²\19Ñ\19\ 6¾\ fÑ\92ê\16lNv\ 3[ÖÝaw\8dðC\1enåm\1aßeÕ¬\8a\93±ø\81\ f`\10ÎÖ7׫<\87\99üÛ9ò\87\8fæT(kón|·Â\84\0\9fò¥¤cÃæ\146°e\85\1dv×(<äáVئqÎË*\93ç\13\97Ä\ 4\10\14¢\19\89?ÝRs@ýWzmïLm\ fìm©,\8eH@d\95ë\ 3îëý\\9f\1e§\8fE\88cÀ1¡\v\86Íä´\16\98Ó\vWä4\17\ f\e7èñèÊ¡¯ÿûÔ¬×PN\84\ 1\ 4I½è[Â\0ã\18×Ê#c\15ÉàQ7\ 3\8cßïbµEÅ_¥Áý\86Ë\1dIµ>\17\e$\9b·«Ë-\18àÈg\83\83n\91Wyõv\15k\8fÖ»xdR\99kç«\8e{\ f=-T\ 5n\9cÊú¢¢øUõÕ\10õ¹\16\11ý£(\8fErUg 9î\98\ 2BQ˽\7f    ¥h\f¯d&®\9a:lMZ_Ï<\ eÓ@\aKÌEQZ\88(~ë\19¾\88Ë\8b¹µË\9dC\18qZÁ\9a§(\8a¼°.«ÌÕ\8e\ Bq=É¢\ eN}}eG\89¾f\fd\91\ 1åqgî&ÒÂ\8c/"     âòè\1f\86íHÊ*$\93×\8a\ e\83?\ 1AõÜÆendstream
+endobj
+1488 0 obj <<
+/Type /Page
+/Contents 1489 0 R
+/Resources 1487 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1486 0 R
+>> endobj
+1490 0 obj <<
+/D [1488 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1491 0 obj <<
+/D [1488 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+1492 0 obj <<
+/D [1488 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+1493 0 obj <<
+/D [1488 0 R /XYZ 71.731 669.8397 null]
+>> endobj
+1494 0 obj <<
+/D [1488 0 R /XYZ 71.731 638.5943 null]
+>> endobj
+1495 0 obj <<
+/D [1488 0 R /XYZ 181.5683 627.2478 null]
+>> endobj
+1496 0 obj <<
+/D [1488 0 R /XYZ 71.731 617.1856 null]
+>> endobj
+1497 0 obj <<
+/D [1488 0 R /XYZ 71.731 583.7625 null]
+>> endobj
+1498 0 obj <<
+/D [1488 0 R /XYZ 71.731 572.6526 null]
+>> endobj
+1499 0 obj <<
+/D [1488 0 R /XYZ 71.731 571.4073 null]
+>> endobj
+1500 0 obj <<
+/D [1488 0 R /XYZ 129.5143 552.3288 null]
+>> endobj
+1501 0 obj <<
+/D [1488 0 R /XYZ 129.5143 552.3288 null]
+>> endobj
+1502 0 obj <<
+/D [1488 0 R /XYZ 71.731 550.8892 null]
+>> endobj
+1503 0 obj <<
+/D [1488 0 R /XYZ 71.731 550.8892 null]
+>> endobj
+1504 0 obj <<
+/D [1488 0 R /XYZ 139.477 534.396 null]
+>> endobj
+1505 0 obj <<
+/D [1488 0 R /XYZ 139.477 534.396 null]
+>> endobj
+1506 0 obj <<
+/D [1488 0 R /XYZ 76.7123 516.4633 null]
+>> endobj
+1507 0 obj <<
+/D [1488 0 R /XYZ 129.5143 498.5305 null]
+>> endobj
+1508 0 obj <<
+/D [1488 0 R /XYZ 129.5143 498.5305 null]
+>> endobj
+1509 0 obj <<
+/D [1488 0 R /XYZ 71.731 496.3737 null]
+>> endobj
+1510 0 obj <<
+/D [1488 0 R /XYZ 71.731 496.3737 null]
+>> endobj
+1511 0 obj <<
+/D [1488 0 R /XYZ 139.477 480.5978 null]
+>> endobj
+1512 0 obj <<
+/D [1488 0 R /XYZ 71.731 479.1582 null]
+>> endobj
+1513 0 obj <<
+/D [1488 0 R /XYZ 139.477 462.665 null]
+>> endobj
+1514 0 obj <<
+/D [1488 0 R /XYZ 76.7123 444.7322 null]
+>> endobj
+1515 0 obj <<
+/D [1488 0 R /XYZ 129.5143 426.7995 null]
+>> endobj
+1516 0 obj <<
+/D [1488 0 R /XYZ 129.5143 426.7995 null]
+>> endobj
+1517 0 obj <<
+/D [1488 0 R /XYZ 71.731 425.6205 null]
+>> endobj
+1518 0 obj <<
+/D [1488 0 R /XYZ 71.731 425.6205 null]
+>> endobj
+1519 0 obj <<
+/D [1488 0 R /XYZ 139.477 408.8667 null]
+>> endobj
+1520 0 obj <<
+/D [1488 0 R /XYZ 139.477 408.8667 null]
+>> endobj
+1521 0 obj <<
+/D [1488 0 R /XYZ 71.731 406.7099 null]
+>> endobj
+1522 0 obj <<
+/D [1488 0 R /XYZ 139.477 390.934 null]
+>> endobj
+1523 0 obj <<
+/D [1488 0 R /XYZ 139.477 390.934 null]
+>> endobj
+1524 0 obj <<
+/D [1488 0 R /XYZ 71.731 388.7772 null]
+>> endobj
+1525 0 obj <<
+/D [1488 0 R /XYZ 139.477 373.0012 null]
+>> endobj
+1526 0 obj <<
+/D [1488 0 R /XYZ 139.477 373.0012 null]
+>> endobj
+1527 0 obj <<
+/D [1488 0 R /XYZ 71.731 370.8444 null]
+>> endobj
+1528 0 obj <<
+/D [1488 0 R /XYZ 139.477 355.0685 null]
+>> endobj
+1529 0 obj <<
+/D [1488 0 R /XYZ 139.477 355.0685 null]
+>> endobj
+1530 0 obj <<
+/D [1488 0 R /XYZ 71.731 317.2105 null]
+>> endobj
+1531 0 obj <<
+/D [1488 0 R /XYZ 71.731 304.1595 null]
+>> endobj
+1532 0 obj <<
+/D [1488 0 R /XYZ 71.731 302.9142 null]
+>> endobj
+1533 0 obj <<
+/D [1488 0 R /XYZ 129.5143 283.8356 null]
+>> endobj
+642 0 obj <<
+/D [1488 0 R /XYZ 71.731 277.0711 null]
+>> endobj
+86 0 obj <<
+/D [1488 0 R /XYZ 305.1364 233.6 null]
+>> endobj
+1534 0 obj <<
+/D [1488 0 R /XYZ 71.731 210.1112 null]
+>> endobj
+1535 0 obj <<
+/D [1488 0 R /XYZ 161.0655 200.7233 null]
+>> endobj
+1536 0 obj <<
+/D [1488 0 R /XYZ 71.731 188.6038 null]
+>> endobj
+1537 0 obj <<
+/D [1488 0 R /XYZ 71.731 157.2379 null]
+>> endobj
+1538 0 obj <<
+/D [1488 0 R /XYZ 168.8063 146.2276 null]
+>> endobj
+1539 0 obj <<
+/D [1488 0 R /XYZ 71.731 119.1642 null]
+>> endobj
+1487 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1542 0 obj <<
+/Length 1054      
+/Filter /FlateDecode
+>>
+stream
+xÚÍX]\8f£6\14}\9f_Ác"m\Ûà\ fö-ÝvªVíj´Ê>uª\11\e<\13$\ 2)\18­æß×\ 6\eL0\1fU_ªy\80\8c\8fï=\1cßc®A\ 1T\7f(`\b°P]p\f0%88_\1f`ð¦\86~y@\ 6r0\98\83\vúñôðÃc\b\83\18Ä\14Óàô\1a\841\ 5\84E\ 1\v\ 4ñà\94þ¹ûtInRTû\ 3&p\87Aw}Ê\93BÈß\93oÝÏãÓ¯ÝÍ\1fB^Ê´ÞÿuúíáçS\9f\9f\84\fÄ\%Y$Ù£¦4q\1cpE\93F\9a&R£\ 4EaÀ \aa\14²\96ç\17!\9bª¨;\1e¨»d¯ÝµnÎgQׯMþ¡ûÇë\1eÁ]ÒäÒàKy\11Õ÷¬\16@Soó\r²\1cÌíAËÂh\97î\98çå\1e\93Ýw\91v!¾\94¹¨?öÓ\aºv6F\80"\1e·³\93ô\9a\15[S=í\11Ù%Ur\15j\1dº\14®¸\b)9\bb\ 1\85\10\90\88Å^q{ÔÁ\85Yq\95ð\f¢VÜI4Má\19c2É\8b±R\1faoÞûëÀÃÎ\9aò\b¹o\91G<\92F^<²á\b@\9dAC>\9a%\97Us\96\1fîêSÏ\17\85ÌÎ\89ÌÊÂE6\95\98> ¡@8VK7Sµ=êàÂ\ 6a\916\9eû@=lVXµø\10G±7ï¼°vÖ\94ÇXØ0\ 6\11cc\1aG¥Kç]\8fº\84\ 2\1a©má^߬x³úzd½váÚ{Yvצ\16³ÕK"
+X\14³\95êua\vÕÛÃV«×\97wCõNxø«wÄ£(Sñ\92¥/eõr)kY(G{äF0\ 2\f²p¬wVH³UUî\ 2Ì×,æ\80#\1a¯Õ¬\ 3[ªY\v[¯YOÞ-5ëááHbkÖ¥¡\141å÷YéjTJu\19>C\88Õ\ekV\1a\ 4\ 1çѪ\9d\1dØ\924\16¶.\8d\16i<<<Ò¸4Fæ|lòü½»ý»IòN\1dcL·\f½®\8c\18Q[+_s¥\v[pe\ f[u¥/ï\ 6WNxø]9â¡]ùV\95ÍÍXsÎ\96J`È\19úo¶\8c\bSQÈ\9a-]ØBíõ°ÕÚóåÝP{>\1eÓÚ\eÑðÙ²\95÷_84R\81\11        ×\1cêÂ\96T²°u\95<y·¨äááQÉ¥1r¨W([\86*\91\8a\85\89Þ\91\94ÅaLÜvw¾\e\f©2 \86á\8as]Ø\82s{تs}y78×ÇÃÑЮå\88ÇPj³ý¾1²âÇ\0F¤Ý\ 6\ eª\\19\ f;AqHh\e\f«Åѧ\eÆwÇT\1f\ fR½,§=WÞ~úôÕ³#D\fp\fÙ]³^\95²\94ï7±õ(pLï\12µOð\f      Ôͪy>Oç`FnçF\rØ\1fe%ÕL´õdñ\93¨ÏUvÓMÛ\12ÝP\1d\v)îé\9a3S2P\ewyÉ@Æì\8dÅh@=¤9F>¶'\9bá\18f×Ou\93÷Á/\89M\9bW"IÍ\ví\9b\106v\9a\8a»n³\8fÒ«j7éI\9e\81kv\97F;\10\0J¨-»¾\9b\ 5v<D\80¨Î¤\1dÿ\\16\87ö\80gB]\93\83}\117·4\91\ 3;\9bSö´2û:ɤ¨û,Huâ!£ÿ³ó®»\r\98\ f\rÑBói¿EDw\1dßèS\ 4ÁÊ\\bò>\92æ\80èì\87\ 5\7f\0\8fCê1endstream
+endobj
+1541 0 obj <<
+/Type /Page
+/Contents 1542 0 R
+/Resources 1540 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1486 0 R
+>> endobj
+1543 0 obj <<
+/D [1541 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1544 0 obj <<
+/D [1541 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+1545 0 obj <<
+/D [1541 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+1546 0 obj <<
+/D [1541 0 R /XYZ 71.731 633.8332 null]
+>> endobj
+1547 0 obj <<
+/D [1541 0 R /XYZ 71.731 620.8718 null]
+>> endobj
+1548 0 obj <<
+/D [1541 0 R /XYZ 71.731 619.6265 null]
+>> endobj
+1549 0 obj <<
+/D [1541 0 R /XYZ 129.5143 600.5479 null]
+>> endobj
+1550 0 obj <<
+/D [1541 0 R /XYZ 129.5143 600.5479 null]
+>> endobj
+1551 0 obj <<
+/D [1541 0 R /XYZ 71.731 599.1084 null]
+>> endobj
+1552 0 obj <<
+/D [1541 0 R /XYZ 71.731 599.1084 null]
+>> endobj
+1553 0 obj <<
+/D [1541 0 R /XYZ 139.477 582.6152 null]
+>> endobj
+1554 0 obj <<
+/D [1541 0 R /XYZ 139.477 582.6152 null]
+>> endobj
+1555 0 obj <<
+/D [1541 0 R /XYZ 76.7123 564.6824 null]
+>> endobj
+1556 0 obj <<
+/D [1541 0 R /XYZ 129.5143 546.7497 null]
+>> endobj
+1557 0 obj <<
+/D [1541 0 R /XYZ 129.5143 546.7497 null]
+>> endobj
+1558 0 obj <<
+/D [1541 0 R /XYZ 71.731 544.5928 null]
+>> endobj
+1559 0 obj <<
+/D [1541 0 R /XYZ 71.731 544.5928 null]
+>> endobj
+1560 0 obj <<
+/D [1541 0 R /XYZ 139.477 528.8169 null]
+>> endobj
+1561 0 obj <<
+/D [1541 0 R /XYZ 71.731 527.3774 null]
+>> endobj
+1562 0 obj <<
+/D [1541 0 R /XYZ 139.477 510.8842 null]
+>> endobj
+1563 0 obj <<
+/D [1541 0 R /XYZ 76.7123 492.9514 null]
+>> endobj
+1564 0 obj <<
+/D [1541 0 R /XYZ 129.5143 475.0187 null]
+>> endobj
+1565 0 obj <<
+/D [1541 0 R /XYZ 129.5143 475.0187 null]
+>> endobj
+1566 0 obj <<
+/D [1541 0 R /XYZ 71.731 472.8618 null]
+>> endobj
+1567 0 obj <<
+/D [1541 0 R /XYZ 71.731 472.8618 null]
+>> endobj
+1568 0 obj <<
+/D [1541 0 R /XYZ 139.477 457.0859 null]
+>> endobj
+1569 0 obj <<
+/D [1541 0 R /XYZ 71.731 454.9291 null]
+>> endobj
+1570 0 obj <<
+/D [1541 0 R /XYZ 139.477 439.1532 null]
+>> endobj
+1571 0 obj <<
+/D [1541 0 R /XYZ 71.731 401.2951 null]
+>> endobj
+1572 0 obj <<
+/D [1541 0 R /XYZ 71.731 388.2442 null]
+>> endobj
+1573 0 obj <<
+/D [1541 0 R /XYZ 71.731 386.9988 null]
+>> endobj
+1574 0 obj <<
+/D [1541 0 R /XYZ 129.5143 367.9203 null]
+>> endobj
+643 0 obj <<
+/D [1541 0 R /XYZ 71.731 361.4994 null]
+>> endobj
+90 0 obj <<
+/D [1541 0 R /XYZ 247.1379 317.6847 null]
+>> endobj
+1575 0 obj <<
+/D [1541 0 R /XYZ 71.731 297.5443 null]
+>> endobj
+1576 0 obj <<
+/D [1541 0 R /XYZ 161.0655 284.8079 null]
+>> endobj
+1577 0 obj <<
+/D [1541 0 R /XYZ 71.731 272.6885 null]
+>> endobj
+1578 0 obj <<
+/D [1541 0 R /XYZ 71.731 241.3226 null]
+>> endobj
+1579 0 obj <<
+/D [1541 0 R /XYZ 168.8063 230.3123 null]
+>> endobj
+1580 0 obj <<
+/D [1541 0 R /XYZ 71.731 203.2489 null]
+>> endobj
+1581 0 obj <<
+/D [1541 0 R /XYZ 71.731 162.0783 null]
+>> endobj
+1582 0 obj <<
+/D [1541 0 R /XYZ 71.731 143.5891 null]
+>> endobj
+1583 0 obj <<
+/D [1541 0 R /XYZ 71.731 112.6531 null]
+>> endobj
+1584 0 obj <<
+/D [1541 0 R /XYZ 181.5683 100.9973 null]
+>> endobj
+1540 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1587 0 obj <<
+/Length 1123      
+/Filter /FlateDecode
+>>
+stream
+xÚÅX]o¤6\14}ϯàqFʸþÀ6ä¡ÒtÛ]íj[\8dVÓ§¦\8a\b8  \12\ 3³|h\95\7f_\83m0à\ 1\9eºÊ\ 3\8crì{îñ¹ö5È\83ò\ fy\1c\ 1\ 3\87\03\8a½ør\a½Wù¯OwHC\ e\1as°A¿\9dï~ùH \17\82\90\9d_<\122@¹ïq\82A@Qà\9d\93\7fv\1fÞ¢k-Êý\ 1S¸Ã@=OY\94\8búkô¬~\1eO\9fÕË\9f¢~+\92jÿïùËÝ\1fç>>%\1c\84\81\f²H²GÍiâÐ\v$Mæ·4\91ü/E>ñ8\f\0ñ  ïxFÉ%Íï\15\8dkª_j\11¿µdº\19\86D\ fúõÐ&Ê\99\9aà´Gt\17\95ÑEÈt«\87i\ e\bɨ\14q\8fQ
+ O\983\87\1eu°a&\a\99\1f\87¨Ëa6[Ká\11c:\8b\8b±L\12agÜésàaFÍy\90À¥å\88GÔÔ.Ù°\ f`\e¡\85<(\81«ºlâú~b\83v¼Èë4\8eê´ÈmdS\8ay\82\86\82\\7f\84\16Ö \ e6l\10\16µþ\1e%d`7\85\95\8b\ f±\1f:ãÞ\16Ö\8c\9aó\18\vKBàs>¦q\94º¨\12q¨K\19`¾¬¾©¾iþjôuÈzQÓ)·\17êÙTâ¶{!\ 2اdͽ\16lɽ\ 6¶î^GÜ-î\9dò¸á^\9bG^$â)M\9e\8aòé­¨ê\V´Cn\ 4}À!'c½Ó¼V/Ei/ÀMÏÒ\80\0\820[ñ¬\r[ðl\ f[õ¬+î\ 6ϺxX\92\8ehHE´ýþ\92ºj\95\92Ö\86\8f\10by0Ü\94\86Q@x¸VÎ6lI\1a\ 3[\97Æ\11w\8b4\ e\1e\ eil\1a£âüØdÙ»zýÞD\99RG\17¦mCgUR\93ærUÚ°\85ªìa«Ué\8a»¡*g<ÜU9âq\8d\eY\94\8eB$\14 \1càY\1dj]O\1fþÞ`º>u\84\0\rÐÚálÃ\96\844°u!\1d\b9åqCH\9bǵ(ëm\87³CÄnp÷\967\97g%¤l\83\88Ì}è\87\94»¿     yZç\v\8d\90O\ 3\80\ 3ä¯hmÃ\16´îa«Z»ânÐÚÅÃ*p£õ\88Ç  Ò\92¾èc¡\89cQU/M¦\97Bòã\0#Ú-Ü\81\ 3Òîn\10`BÕÂa\80XÛ?ó`wLö\bî\92vYæ+és\10`È'ÝiYÔEý~\15\ fý\88Á(¦\9dÅ\b0\14\84ª×H\92\1f!\85mO¦s©ÒÚ\1c\90\9aæOÏQ%Lë,Ë´«±,©ä0´µ{þ]Tq\99^ÛÆd\89!\917\f\86{\86\95î\17µ%Å\1eÓÝ\ fãÔî\87¹yÄE^\97\e\9c\87Ìd\9a\1dÓQ\ f$;%\9dìUģ͸Í^_c\8eyÛó¿\9b©TÖ7\86¥ù\ Í¾\14\95Üw\15\ 5Û\ 2\0\8c2µ÷\15\92Mù#­4.\11/íòGMV»¦\0f
+bUýé³\81æÉp·Ée/\98\r\ 2\99ð\12é¬\8aÜ\9cJQ\92ô\9bA5\13+Õ:+ÕóAªª§#Ý+»Yfo\ e\13­Ç\v¨6ü~\99~U¯pX«y1i\13Nåéõ\ 3[íxÌ2í\1fÍà[\91\89jkíüowI$5õI¸vîÛ°\85\87­n¡®¸\e¶Ð\19\ f÷q5âñsî\92a\0(dkm¹\85Zh=\rjµót\ 4ÝÐxNI8¯\916\87\9fw\8bÔ\9f\91ü\0Èm)\üÒdaæ\1f\9a(ærsD¤\9f©å\8aøÍÏF\8e\80ÿ\ 1&uW\ eendstream
+endobj
+1586 0 obj <<
+/Type /Page
+/Contents 1587 0 R
+/Resources 1585 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1486 0 R
+>> endobj
+1588 0 obj <<
+/D [1586 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1589 0 obj <<
+/D [1586 0 R /XYZ 71.731 686.4773 null]
+>> endobj
+1590 0 obj <<
+/D [1586 0 R /XYZ 71.731 675.3674 null]
+>> endobj
+1591 0 obj <<
+/D [1586 0 R /XYZ 71.731 674.1221 null]
+>> endobj
+1592 0 obj <<
+/D [1586 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+1593 0 obj <<
+/D [1586 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+1594 0 obj <<
+/D [1586 0 R /XYZ 71.731 653.604 null]
+>> endobj
+1595 0 obj <<
+/D [1586 0 R /XYZ 71.731 653.604 null]
+>> endobj
+1596 0 obj <<
+/D [1586 0 R /XYZ 139.477 637.1108 null]
+>> endobj
+1597 0 obj <<
+/D [1586 0 R /XYZ 139.477 637.1108 null]
+>> endobj
+1598 0 obj <<
+/D [1586 0 R /XYZ 76.7123 619.1781 null]
+>> endobj
+1599 0 obj <<
+/D [1586 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+1600 0 obj <<
+/D [1586 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+1601 0 obj <<
+/D [1586 0 R /XYZ 71.731 599.0885 null]
+>> endobj
+1602 0 obj <<
+/D [1586 0 R /XYZ 71.731 599.0885 null]
+>> endobj
+1603 0 obj <<
+/D [1586 0 R /XYZ 139.477 583.3126 null]
+>> endobj
+1604 0 obj <<
+/D [1586 0 R /XYZ 71.731 581.873 null]
+>> endobj
+1605 0 obj <<
+/D [1586 0 R /XYZ 139.477 565.3798 null]
+>> endobj
+1606 0 obj <<
+/D [1586 0 R /XYZ 76.7123 547.4471 null]
+>> endobj
+1607 0 obj <<
+/D [1586 0 R /XYZ 129.5143 529.5143 null]
+>> endobj
+1608 0 obj <<
+/D [1586 0 R /XYZ 129.5143 529.5143 null]
+>> endobj
+1609 0 obj <<
+/D [1586 0 R /XYZ 71.731 528.0748 null]
+>> endobj
+1610 0 obj <<
+/D [1586 0 R /XYZ 129.5143 511.5816 null]
+>> endobj
+1611 0 obj <<
+/D [1586 0 R /XYZ 129.5143 511.5816 null]
+>> endobj
+1612 0 obj <<
+/D [1586 0 R /XYZ 71.731 489.4994 null]
+>> endobj
+1613 0 obj <<
+/D [1586 0 R /XYZ 71.731 478.6053 null]
+>> endobj
+1614 0 obj <<
+/D [1586 0 R /XYZ 71.731 477.36 null]
+>> endobj
+1615 0 obj <<
+/D [1586 0 R /XYZ 129.5143 458.2814 null]
+>> endobj
+644 0 obj <<
+/D [1586 0 R /XYZ 71.731 451.8606 null]
+>> endobj
+94 0 obj <<
+/D [1586 0 R /XYZ 184.4394 408.0458 null]
+>> endobj
+1616 0 obj <<
+/D [1586 0 R /XYZ 71.731 387.9054 null]
+>> endobj
+1617 0 obj <<
+/D [1586 0 R /XYZ 161.0655 375.1691 null]
+>> endobj
+1618 0 obj <<
+/D [1586 0 R /XYZ 71.731 363.0496 null]
+>> endobj
+1619 0 obj <<
+/D [1586 0 R /XYZ 71.731 331.6837 null]
+>> endobj
+1620 0 obj <<
+/D [1586 0 R /XYZ 168.8063 320.6735 null]
+>> endobj
+1621 0 obj <<
+/D [1586 0 R /XYZ 71.731 293.61 null]
+>> endobj
+1622 0 obj <<
+/D [1586 0 R /XYZ 71.731 252.4394 null]
+>> endobj
+1623 0 obj <<
+/D [1586 0 R /XYZ 71.731 233.9502 null]
+>> endobj
+1624 0 obj <<
+/D [1586 0 R /XYZ 71.731 202.3687 null]
+>> endobj
+1625 0 obj <<
+/D [1586 0 R /XYZ 181.5683 191.3584 null]
+>> endobj
+1626 0 obj <<
+/D [1586 0 R /XYZ 71.731 181.2962 null]
+>> endobj
+1627 0 obj <<
+/D [1586 0 R /XYZ 71.731 147.873 null]
+>> endobj
+1628 0 obj <<
+/D [1586 0 R /XYZ 71.731 136.7632 null]
+>> endobj
+1629 0 obj <<
+/D [1586 0 R /XYZ 71.731 135.5179 null]
+>> endobj
+1630 0 obj <<
+/D [1586 0 R /XYZ 129.5143 116.4393 null]
+>> endobj
+1631 0 obj <<
+/D [1586 0 R /XYZ 129.5143 116.4393 null]
+>> endobj
+1632 0 obj <<
+/D [1586 0 R /XYZ 71.731 114.9998 null]
+>> endobj
+1633 0 obj <<
+/D [1586 0 R /XYZ 71.731 114.9998 null]
+>> endobj
+1634 0 obj <<
+/D [1586 0 R /XYZ 139.477 98.5066 null]
+>> endobj
+1635 0 obj <<
+/D [1586 0 R /XYZ 139.477 98.5066 null]
+>> endobj
+1585 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1638 0 obj <<
+/Length 1225      
+/Filter /FlateDecode
+>>
+stream
+xÚ¥\98[\8f£6\14ÇßçSð\98H\e×÷Ë<TJ·\17mÕ­¢íô©SElðL\90\98\10\ 1Ѷ߾\87p\89\ 3\ 6³]ÍC<É\1f\9f¿\7f\9cÃ1&\11\86?\12)\82\14\83\ fj\10\95\82F\87·\a\1c½ÂO¿<\90V²i5\eWôÃÓÃw?3\1c\19d$\95ÑÓKÄ\8cDBñH1\8a´ :zJþZ½?ÆçÊ\16ë\r\15xEQó¹Ëâ\93­~\8b?7ÿnw\1f\9aÁG[\1dó¤\ÿýôëÃOO}|Á\142\1a\82Ì\9aäD#ΰ\896LC|μ*B\f\12\82¨h#\rF\9c\80¾[\f5\11ÄQ\98Ô\8béu½¬^Í3¥bè\8eP\8a\18'4r'ìâ\ e?o>º«Æ>\98\8e4@\95üê\ 3\96,\b,æÎG\99Vv\9f&û¼ØgùkzÚ\7f\8eK[\e»®âvK\b\11\88Ki f}Ùc\839=UÍ oïKY\15ééu¼°.´¢\88+íÇÞ«6®ì\ 6\94Ô\99\90N6      \14ò\aSn¼q§\81vWy}8H\98\81_Õ½\r ò®Añ\a\90m)%öT¥Ï\18SHßI4\82\ 5\ f¡qdsh:Y\18\8d\124\1e\1f\1e\8d&7FtÊ,=´ÃsakJÿ\8cÌö%\ 4\95)\95\82tds\ 5ÙÉÂ\ 5é\89»¤ \87>&
+Òõq>\ö/©Í\9a\87×\80«\90\88j=(Bàz9TÓ\89\851R\\ 5\91Í%V'\v'\96\92Ä\1aú¸gÖ%\96kãRÚâ\14¿ù\1e[\ A\r\1d\ 1»%âîý\9fÍÀ\9dÅ\vRhèF\84\87\95Í\80ìeA\90¾¸\v@\8e|xAÞÙ8\17y\95\1fòìÛ@v³´ß[ôÚ6ë²<¶ß\1d«ê\¶ãÊfЧ©K\8e´\86j\rPwdsÔ;Y\98º'î\12êC\1f~ê®\8dôìë·\fQ#È\12Þ\1fvÍg\9c$\85-Ëi\92\"õ   \91tds$;Y\98¤'î\12\92C\1f~\92®\8dS^Yßc\13<3mÔ\fÌ\8fiy°Y½\99Ì/eóU?\99\1f&\f0\91¡§ª+\9b\83ÙÉÂ0=q\97À\1cúðÃtm\1có²úö§ª;\8b\1f$!\bk\16|ª:²9\90\9d,\fÒ\13w       È¡\ f?H×Æ[\9eØì\7feeO±\99\ e\9b\e\86\88À¡Ç¥+\9bÁÙË\828}q\17à\1cùðâ¼³q\8eËòK^$þ¼ÔZé¯íöõn\16\9a`ý^*0ÒØ\88ëõ\9flu)Nåãän\94S\82\f\81xó»QW6³\eíeÁݨ/î\82ݨÏ\87Ópú{îú¸½Îün×T¬¾´-\1e6©iÒ\8c\9f±Àß7C\fcÒ¾ó¼´ô/\87\ 3\97KW\ 1°\ e\85(\11×\e¼\11
+)ÍØ\15<eB^\83RHÄzË ôj\9b¬    ^%»5\83\8dDóö4¼ç
+i
+©±©Ï
+\94lrdWoAª\7fÏö±¿â\96Uíµ\eX'ì¼\9bαM\92\9dí\ e\17ê\15Å\97ªÛ¬\9cá\87ýõí\r6å×\15\8e]lºI]\17?ÚòP¤ç*ÍOs>\98DBÒÞGÛ~â¶\vÝa¯-
+±B׬Åps%\92LI7]ÛMÕÑN\ÿÕ÷­¥ðRß\88ø\92Um\84\1cB\14_ÒÒ¢¥8¶Y\96_ÍØÖÁ§<³åÒ;\14'oéii¨Ý\9a\88U\@}W¶\98©`B\19b\84É@\ 5»²\99
+îeÁ
+öÅ]PÁ#\1fþ÷É;\1fu"û\9a\ f\87Nï{\8f|78I«¯¯\8f/\ eq\9dÇ®òRLwu\82\ 547¬\ 3\95Í´¡^\16lC¾¸\vÚÐÈ\87·\rÝÙØ\ 2\97æ\94Ñÿ\9e.¹â3\8dhëÁúÖL×\14pÞ÷©ábÛ3T®¡gI3{ÌêhƧ¬\82\ 1\99j¯DO\9e\99z\ 2þ\a­rá\13endstream
+endobj
+1637 0 obj <<
+/Type /Page
+/Contents 1638 0 R
+/Resources 1636 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1486 0 R
+>> endobj
+1639 0 obj <<
+/D [1637 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1640 0 obj <<
+/D [1637 0 R /XYZ 76.7123 708.3437 null]
+>> endobj
+1641 0 obj <<
+/D [1637 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+1642 0 obj <<
+/D [1637 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+1643 0 obj <<
+/D [1637 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+1644 0 obj <<
+/D [1637 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+1645 0 obj <<
+/D [1637 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+1646 0 obj <<
+/D [1637 0 R /XYZ 71.731 671.0386 null]
+>> endobj
+1647 0 obj <<
+/D [1637 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+1648 0 obj <<
+/D [1637 0 R /XYZ 76.7123 636.6127 null]
+>> endobj
+1649 0 obj <<
+/D [1637 0 R /XYZ 129.5143 618.6799 null]
+>> endobj
+1650 0 obj <<
+/D [1637 0 R /XYZ 129.5143 618.6799 null]
+>> endobj
+1651 0 obj <<
+/D [1637 0 R /XYZ 71.731 617.2992 null]
+>> endobj
+1652 0 obj <<
+/D [1637 0 R /XYZ 71.731 617.2992 null]
+>> endobj
+1653 0 obj <<
+/D [1637 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+1654 0 obj <<
+/D [1637 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+1655 0 obj <<
+/D [1637 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+1656 0 obj <<
+/D [1637 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+1657 0 obj <<
+/D [1637 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+1658 0 obj <<
+/D [1637 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+1659 0 obj <<
+/D [1637 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+1660 0 obj <<
+/D [1637 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+1661 0 obj <<
+/D [1637 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+1662 0 obj <<
+/D [1637 0 R /XYZ 139.477 546.9489 null]
+>> endobj
+1663 0 obj <<
+/D [1637 0 R /XYZ 139.477 546.9489 null]
+>> endobj
+1664 0 obj <<
+/D [1637 0 R /XYZ 71.731 544.7921 null]
+>> endobj
+1665 0 obj <<
+/D [1637 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+1666 0 obj <<
+/D [1637 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+1667 0 obj <<
+/D [1637 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+1668 0 obj <<
+/D [1637 0 R /XYZ 139.477 511.0834 null]
+>> endobj
+1669 0 obj <<
+/D [1637 0 R /XYZ 139.477 511.0834 null]
+>> endobj
+1670 0 obj <<
+/D [1637 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+1671 0 obj <<
+/D [1637 0 R /XYZ 139.477 493.1507 null]
+>> endobj
+1672 0 obj <<
+/D [1637 0 R /XYZ 139.477 493.1507 null]
+>> endobj
+1673 0 obj <<
+/D [1637 0 R /XYZ 71.731 455.2926 null]
+>> endobj
+1674 0 obj <<
+/D [1637 0 R /XYZ 71.731 442.2417 null]
+>> endobj
+1675 0 obj <<
+/D [1637 0 R /XYZ 71.731 440.9963 null]
+>> endobj
+1676 0 obj <<
+/D [1637 0 R /XYZ 129.5143 421.9178 null]
+>> endobj
+645 0 obj <<
+/D [1637 0 R /XYZ 71.731 414.7796 null]
+>> endobj
+98 0 obj <<
+/D [1637 0 R /XYZ 184.904 371.6822 null]
+>> endobj
+1677 0 obj <<
+/D [1637 0 R /XYZ 71.731 351.5418 null]
+>> endobj
+1678 0 obj <<
+/D [1637 0 R /XYZ 161.0655 338.8055 null]
+>> endobj
+1679 0 obj <<
+/D [1637 0 R /XYZ 71.731 326.686 null]
+>> endobj
+1680 0 obj <<
+/D [1637 0 R /XYZ 71.731 295.3201 null]
+>> endobj
+1681 0 obj <<
+/D [1637 0 R /XYZ 168.8063 284.3098 null]
+>> endobj
+1682 0 obj <<
+/D [1637 0 R /XYZ 71.731 257.2464 null]
+>> endobj
+1683 0 obj <<
+/D [1637 0 R /XYZ 71.731 240.8245 null]
+>> endobj
+1684 0 obj <<
+/D [1637 0 R /XYZ 71.731 209.2429 null]
+>> endobj
+1685 0 obj <<
+/D [1637 0 R /XYZ 181.5683 198.2326 null]
+>> endobj
+1686 0 obj <<
+/D [1637 0 R /XYZ 71.731 188.1704 null]
+>> endobj
+1687 0 obj <<
+/D [1637 0 R /XYZ 71.731 156.5988 null]
+>> endobj
+1688 0 obj <<
+/D [1637 0 R /XYZ 71.731 143.6374 null]
+>> endobj
+1689 0 obj <<
+/D [1637 0 R /XYZ 71.731 142.3921 null]
+>> endobj
+1690 0 obj <<
+/D [1637 0 R /XYZ 129.5143 123.3136 null]
+>> endobj
+1691 0 obj <<
+/D [1637 0 R /XYZ 129.5143 123.3136 null]
+>> endobj
+1692 0 obj <<
+/D [1637 0 R /XYZ 71.731 121.874 null]
+>> endobj
+1693 0 obj <<
+/D [1637 0 R /XYZ 71.731 121.874 null]
+>> endobj
+1694 0 obj <<
+/D [1637 0 R /XYZ 139.477 105.3808 null]
+>> endobj
+1695 0 obj <<
+/D [1637 0 R /XYZ 139.477 105.3808 null]
+>> endobj
+1636 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1698 0 obj <<
+/Length 1176      
+/Filter /FlateDecode
+>>
+stream
+xÚ¥X[o£8\18}ï¯à1\91\8a\17ÛØ\86\94½U»Û\1dE\9dÌÓvT1àLÑ$\10qѨÿ~?\ 3&\ e\98ËjÔ\a\9cæØßñù®\ 1;\1eüaG`$(<H\88\b\89Ïw\9eó\15¾z¼Ã\1dÄí0®    úåp÷Ó\1fÔsB\14\9dÃÑ¡!GLø\8e \ 4\ 5\f\aÎ!ùwóë[t©d±u  ó6\ 4µÏý)Êdõ\14}i?îö\7f\8b\7f\96'åöó᯻ß\ f½}F\ 5
+\ 302KÒÇ\ 1ò©\17:.\rÀ¾O­(\8c\18\16\8eËC\ fù\18ðú2$tÀ\8eð°ºL\8fëaê6/\84°!;L\b¢>&\8ey ¶;|^yè]c\1e4p\ 2\10\95û\r\ f¸2Ãp\99\e\1e\17)\8b×c*O­X\r÷«#8F\9c\a\ 2\f)ìC«mY\15u\\8dÉëã\ 5\bìÒö(×\84]EÃ*:nÈjؤh\10#\1eñC«ÝiÑô®1\8f[Ñh\bß\8a[\1aßä»E+p3\15Àx¨U\9a}½ï\82Uêð}Ü?¶\8bKýå\94ÆíúÛ\16{\e¹Åló>-.ó\11ó\99¿$®\ 1\9b\13\96ŵØ]#î\90\87]\\93F\1cŲ¨,úR\1f       \1eòUú~üø4ÖW\9d\9b¾x\1e\89£JN+L9â\98\88%\85\rØ\9cÂ\1a¶¬°Åî\1a\85\87
+\9b4TÊgÑYZ4ö\19b$$«4ÖGØU\84\12ÊE\18.©hÀæTÔ°e\15-vר8äaWѤÑ\14κ8ý \8a}Çúôü¤\8eR9\83 \17\98ã2\ f\ 5^Øfų¬ê"+\1fF\17×Í\85ù\ 2ù¾À\v­Ê\84Í´ª\1e¶ØªlvW´*\e\ f£\94jÇßðH³ª\93ï\83Ü\12¶ùÞ¥¸rD\9a´\1f^<æýÜ.=Xãv\99\1e;\1fÔq,ËòXk¯ÁE\ 4"\985nv\99@" ´Q\9ePÖf\vAàuØ.\82Í.Q\15:Ùo)ÔéB\15ê2ÏþVÏkÕ\1e\86\82@\ 1ñ@x5É\bÞ\1e¹/ò*¯Þ/ò¡ßq\r¶n¯K õâ \8dµ]\92ìeÑ\18#½±þ¾Q]½Ýk-\14
+ÔxÍ\8bWy\8eÒÓý¨·¼ª\12¨ú}£Ï\98²«\19\98\94\7f\93e\¤\97*ͳ9ÒPf\18'=é²5\1eu\ 5Ãô\9aÙì\9a\7fTy÷|\93\9d³.2nʵì|\eÅq^g\15jÒÄ\ 3c\18±\0óÆØ\87<s£ä\9cf\9dÉ8ÊÚE\9e\9d:\ 3ç<I\8fï½\91´KÀ¼!\95\8dX\95½\1d\fµ\93
+næá\80êÔÍþwXvÞ:ª#¢úTu\86r°T|OK\89Öúkw:µ\17Óâ=ç'Y®\8d·FI\1dRi·¨d¬Ã¬.!üW2Ù+%¢\ 2\9a\ 5\fï3\ 5\8c¨LäxiÖ6a3\ 5¬\87-\160\9bÝ\15\ 5lÄÃ>kßðP\89j\91\8døÈö\11û~Ð"Ô~\99U)Ì/\90\87&².¦[1\ ea0%\ 1[hÅ&l¦\15÷°ÅVl³»¢\15\8fxX[ñ\r\8d\1dèÒþ೨ˠ{}ø-9Ý\8cw\16YÏíq7\95     ¢~2z1§ÈçKÁk fbW£\16C×btEä\ e\ 3×$1î*\16\9d\e\87\fu\86\96ÝU°Â\14~:VÕèD=º\14«\ 6l.V5l9V-v×Ī\85\871ÅèX5i\\87\98\9e\ 1ÓD\85_Óê\8aii\88@,\14\8bilÀæ¤Ñ°ei,v×Hcáa\91Ƥq;!\17é9*ºv-Ý&èÚ"\98$\ 54Ë!ßîÅ\92\1f \18        ÂÙwO\ 6füê\89\91\0ª1Ìø\1a¥\98ápòE\92Åà\7f?\95I\ eendstream
+endobj
+1697 0 obj <<
+/Type /Page
+/Contents 1698 0 R
+/Resources 1696 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1486 0 R
+>> endobj
+1699 0 obj <<
+/D [1697 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1700 0 obj <<
+/D [1697 0 R /XYZ 76.7123 708.3437 null]
+>> endobj
+1701 0 obj <<
+/D [1697 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+1702 0 obj <<
+/D [1697 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+1703 0 obj <<
+/D [1697 0 R /XYZ 71.731 689.0302 null]
+>> endobj
+1704 0 obj <<
+/D [1697 0 R /XYZ 71.731 689.0302 null]
+>> endobj
+1705 0 obj <<
+/D [1697 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+1706 0 obj <<
+/D [1697 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+1707 0 obj <<
+/D [1697 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+1708 0 obj <<
+/D [1697 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+1709 0 obj <<
+/D [1697 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+1710 0 obj <<
+/D [1697 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+1711 0 obj <<
+/D [1697 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+1712 0 obj <<
+/D [1697 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+1713 0 obj <<
+/D [1697 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+1714 0 obj <<
+/D [1697 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+1715 0 obj <<
+/D [1697 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+1716 0 obj <<
+/D [1697 0 R /XYZ 71.731 580.8219 null]
+>> endobj
+1717 0 obj <<
+/D [1697 0 R /XYZ 71.731 567.7709 null]
+>> endobj
+1718 0 obj <<
+/D [1697 0 R /XYZ 71.731 566.5256 null]
+>> endobj
+1719 0 obj <<
+/D [1697 0 R /XYZ 129.5143 547.4471 null]
+>> endobj
+646 0 obj <<
+/D [1697 0 R /XYZ 71.731 540.3089 null]
+>> endobj
+102 0 obj <<
+/D [1697 0 R /XYZ 236.7399 497.2114 null]
+>> endobj
+1720 0 obj <<
+/D [1697 0 R /XYZ 71.731 473.7227 null]
+>> endobj
+1721 0 obj <<
+/D [1697 0 R /XYZ 161.0655 464.3347 null]
+>> endobj
+1722 0 obj <<
+/D [1697 0 R /XYZ 71.731 452.2152 null]
+>> endobj
+1723 0 obj <<
+/D [1697 0 R /XYZ 71.731 420.8494 null]
+>> endobj
+1724 0 obj <<
+/D [1697 0 R /XYZ 168.8063 409.8391 null]
+>> endobj
+1725 0 obj <<
+/D [1697 0 R /XYZ 71.731 382.7757 null]
+>> endobj
+1726 0 obj <<
+/D [1697 0 R /XYZ 71.731 351.4098 null]
+>> endobj
+1727 0 obj <<
+/D [1697 0 R /XYZ 71.731 334.7722 null]
+>> endobj
+1728 0 obj <<
+/D [1697 0 R /XYZ 71.731 303.1906 null]
+>> endobj
+1729 0 obj <<
+/D [1697 0 R /XYZ 181.5683 292.1803 null]
+>> endobj
+1730 0 obj <<
+/D [1697 0 R /XYZ 71.731 282.1181 null]
+>> endobj
+1731 0 obj <<
+/D [1697 0 R /XYZ 71.731 248.695 null]
+>> endobj
+1732 0 obj <<
+/D [1697 0 R /XYZ 71.731 237.5851 null]
+>> endobj
+1733 0 obj <<
+/D [1697 0 R /XYZ 71.731 236.3398 null]
+>> endobj
+1734 0 obj <<
+/D [1697 0 R /XYZ 129.5143 217.2613 null]
+>> endobj
+1735 0 obj <<
+/D [1697 0 R /XYZ 129.5143 217.2613 null]
+>> endobj
+1736 0 obj <<
+/D [1697 0 R /XYZ 71.731 215.8217 null]
+>> endobj
+1737 0 obj <<
+/D [1697 0 R /XYZ 71.731 215.8217 null]
+>> endobj
+1738 0 obj <<
+/D [1697 0 R /XYZ 139.477 199.3285 null]
+>> endobj
+1739 0 obj <<
+/D [1697 0 R /XYZ 139.477 199.3285 null]
+>> endobj
+1740 0 obj <<
+/D [1697 0 R /XYZ 76.7123 181.3958 null]
+>> endobj
+1741 0 obj <<
+/D [1697 0 R /XYZ 129.5143 163.463 null]
+>> endobj
+1742 0 obj <<
+/D [1697 0 R /XYZ 129.5143 163.463 null]
+>> endobj
+1743 0 obj <<
+/D [1697 0 R /XYZ 71.731 161.3062 null]
+>> endobj
+1744 0 obj <<
+/D [1697 0 R /XYZ 71.731 161.3062 null]
+>> endobj
+1745 0 obj <<
+/D [1697 0 R /XYZ 139.477 145.5303 null]
+>> endobj
+1746 0 obj <<
+/D [1697 0 R /XYZ 71.731 144.0907 null]
+>> endobj
+1747 0 obj <<
+/D [1697 0 R /XYZ 139.477 127.5975 null]
+>> endobj
+1748 0 obj <<
+/D [1697 0 R /XYZ 76.7123 109.6647 null]
+>> endobj
+1696 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1751 0 obj <<
+/Length 1263      
+/Filter /FlateDecode
+>>
+stream
+xÚ\9d\98Ë\8e£8\14\86÷õ\14,+RÅã\vÆv-FJϥ箨'³\9a\1a\95¨àTP\13\88¸t«Þ~ll\88\ 3\ eP­, Éo\9fß\9f\8fí\ 3(\80ê\83\ 2\86\0\82\ 5À\11ÅÁþt\a\83Wõ×Ç;d%k«Y»¢\ f»»ï~&0\10@D8
+v\87\80\88\bP\16\ 6\8c`À)âÁ.ù÷þ\87c|®e¹Zc
+ï10×m\16ç²þ#~1_7Û_ÍÍ\9f²>\16Iµúo÷ÛÝO»>>%\f\b®\82L\9a\f\11\a!\81"Xc\b\ 4FÔ«BH\0J\11S\83\81\1c\90\90°~0X\ 4*\ e\83H\ f¦×õ2=\9a'\8céÐ\1dÂX        \10\ eÜ\ e»¸ÃëÅG×jì\83ð\80+¨QØúPC¦($×>>Ë·çC*3êµ~\99\a\1a\ 1̹Pq´ôÑ ­ê²Ù×cï¶÷H@\10"\ 5ÏˬS­]Ù\85\19ÒÉázíe7\99©\14\818\14Þ¸·\99u­Æ>®\99\11\ 1BÆ®mhdõÛYz\80\85\14P,ð\bX\9a¿>\98/¿¯0½\97+DïßÌ\ f]O~\98\f«ø\1cÏÁtdS0;Ù<LOÜ%0\87>ü0]\e
\87£Z2\84)ÇïàøEÿ\10gM\v3X«XX\88(XS\b8\14´íè\93¬\9b\1eGãî\96h\ 4\11À!%3\vÞ\95M,ø^6»à}q\17,x\9f\ f\ab?ï®\8f4¯-¿¤FöÕ|ù¼BÐò|N\13óÛ\13¤ð{s\vÕ=2·éÁNG³ß˪:4\99\9d@5\1e\ 6ÔnÙNö\9a2À8!í\ 4`B£68\ 6\8a\8djÎøý&Ñ\11\93í\8a¨¸¥\ e\\15¹oI1À1TÐõYÀ"³kmË¢.ôÊyì[\ò̶]c\ 4"ÄÍ\9aÝ$ÉV\96:B?²¸©\8f\96Ĺýëù B¬wÂv¬c'ë®c×É\8f²Ú\97é¹N\8b\vQ\aZ\84{/\95\89\e\9bKîND¼ß\17M^Ûóm\93;)Þù³üÏr\9f¶?ÙéJsïhl·¥47M%\13;ì¢>ÊòkZÙ\7f\12yÐS\127Yík\ 4Ú\85\ 5ÕX\10 \1c\99   Ý\18·C}\92VñKÖ\19{y\e\ 5°ÃÛ­¸²aîe®\9bØ\8eò+\18\ f½\vsóÏ9\89ki&TO¥\9e°Þ\1e\8a@DXä.x»Ó\1e¥\87·¥õÞ\9c·\96\86Äz¤`i\ 2m²¬hít´>\15\99¬\96æu\9c\9cÒ¼ËâtiÌ­Nª¸\8cOR\15T\13Û!Vå\1a¤b®þqe\13Ûa/\9bÝ\ e}q\17l\87#\1fþúçÊ\87Þ\ 5<Øp\b òÕ=\ f\83BS·\97y\9dîc½\ 5¸Ê¦¼}®cJ\0Â\11\9f9×]ÙĹÞËfÏu_Ü\ 5çúÈ\87÷\¿²±Q\L\11î¯+£PÕ÷·\8f÷\8d\aëÉtgÖrqÙ\12nf¯>\8e"4w\98»²©ìídóÙë\89»${\87>nd¯ëÃn^7\vx]iaNÞUÀ#¡\8a/ÌéLnº²\89Üìe³¹é\8b» 7G>¼¹yeã%-|5'Wç\86gÑ_\92òCZ¼\96ñù¸Ò'òM|\1c\ 1"èÜÒveSø:Ù<>OÜ%ø\86>üø\\e\87´¬êç\\9d\1e7\1f\19ù\ 4Å\8f©>î¾è#HÚ\95Ýõå\a\1a\11\10Fd\8eçE5\85Óªæi\8e\83.\8190ágéxÈâ        \92\10\b(&@þ­J\9bIpúi\94ÀYr\8el
+]'\9b\89»\ 4ÞÐ\87\9f\9ek£NëÌ\87Ny&\°       v»\15¡÷]k?=Ì\0\15lv\etdSô:Ù<=OÜ%ô\86>üô\\eM\99}Ó6øKq²\85ô9~\9d\0\b\ 5PáÙ\1c@G6\ 5°\93Í\ 3ôÄ]\ 2pèÃ\ fеq>\16ù·¦\1fS\ f<\994=\98=°9½¨çàÁ¨ìûÒ\90\ 3õÄ%&_©:\9añ\eU\8a¹*h\85è{j\9fÆáÍ÷£\9e\80ÿ\ 3þfèäendstream
+endobj
+1750 0 obj <<
+/Type /Page
+/Contents 1751 0 R
+/Resources 1749 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1809 0 R
+>> endobj
+1752 0 obj <<
+/D [1750 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1753 0 obj <<
+/D [1750 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+1754 0 obj <<
+/D [1750 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+1755 0 obj <<
+/D [1750 0 R /XYZ 71.731 706.9629 null]
+>> endobj
+1756 0 obj <<
+/D [1750 0 R /XYZ 71.731 706.9629 null]
+>> endobj
+1757 0 obj <<
+/D [1750 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+1758 0 obj <<
+/D [1750 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+1759 0 obj <<
+/D [1750 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+1760 0 obj <<
+/D [1750 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+1761 0 obj <<
+/D [1750 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+1762 0 obj <<
+/D [1750 0 R /XYZ 71.731 634.6202 null]
+>> endobj
+1763 0 obj <<
+/D [1750 0 R /XYZ 71.731 621.5692 null]
+>> endobj
+1764 0 obj <<
+/D [1750 0 R /XYZ 71.731 620.3239 null]
+>> endobj
+1765 0 obj <<
+/D [1750 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+647 0 obj <<
+/D [1750 0 R /XYZ 71.731 594.1072 null]
+>> endobj
+106 0 obj <<
+/D [1750 0 R /XYZ 205.6832 551.0097 null]
+>> endobj
+1766 0 obj <<
+/D [1750 0 R /XYZ 71.731 530.8693 null]
+>> endobj
+1767 0 obj <<
+/D [1750 0 R /XYZ 161.0655 518.133 null]
+>> endobj
+1768 0 obj <<
+/D [1750 0 R /XYZ 71.731 506.0135 null]
+>> endobj
+1769 0 obj <<
+/D [1750 0 R /XYZ 71.731 474.6476 null]
+>> endobj
+1770 0 obj <<
+/D [1750 0 R /XYZ 168.8063 463.6373 null]
+>> endobj
+1771 0 obj <<
+/D [1750 0 R /XYZ 71.731 436.5739 null]
+>> endobj
+1772 0 obj <<
+/D [1750 0 R /XYZ 71.731 405.208 null]
+>> endobj
+1773 0 obj <<
+/D [1750 0 R /XYZ 71.731 388.5704 null]
+>> endobj
+1774 0 obj <<
+/D [1750 0 R /XYZ 71.731 356.9889 null]
+>> endobj
+1775 0 obj <<
+/D [1750 0 R /XYZ 181.5683 345.9786 null]
+>> endobj
+1776 0 obj <<
+/D [1750 0 R /XYZ 71.731 335.9164 null]
+>> endobj
+1777 0 obj <<
+/D [1750 0 R /XYZ 71.731 302.4932 null]
+>> endobj
+1778 0 obj <<
+/D [1750 0 R /XYZ 71.731 291.3834 null]
+>> endobj
+1779 0 obj <<
+/D [1750 0 R /XYZ 71.731 290.1381 null]
+>> endobj
+1780 0 obj <<
+/D [1750 0 R /XYZ 129.5143 271.0595 null]
+>> endobj
+1781 0 obj <<
+/D [1750 0 R /XYZ 129.5143 271.0595 null]
+>> endobj
+1782 0 obj <<
+/D [1750 0 R /XYZ 71.731 269.62 null]
+>> endobj
+1783 0 obj <<
+/D [1750 0 R /XYZ 71.731 269.62 null]
+>> endobj
+1784 0 obj <<
+/D [1750 0 R /XYZ 139.477 253.1268 null]
+>> endobj
+1785 0 obj <<
+/D [1750 0 R /XYZ 139.477 253.1268 null]
+>> endobj
+1786 0 obj <<
+/D [1750 0 R /XYZ 76.7123 235.194 null]
+>> endobj
+1787 0 obj <<
+/D [1750 0 R /XYZ 129.5143 217.2613 null]
+>> endobj
+1788 0 obj <<
+/D [1750 0 R /XYZ 129.5143 217.2613 null]
+>> endobj
+1789 0 obj <<
+/D [1750 0 R /XYZ 71.731 215.8805 null]
+>> endobj
+1790 0 obj <<
+/D [1750 0 R /XYZ 71.731 215.8805 null]
+>> endobj
+1791 0 obj <<
+/D [1750 0 R /XYZ 139.477 199.3285 null]
+>> endobj
+1792 0 obj <<
+/D [1750 0 R /XYZ 139.477 199.3285 null]
+>> endobj
+1793 0 obj <<
+/D [1750 0 R /XYZ 71.731 197.1717 null]
+>> endobj
+1794 0 obj <<
+/D [1750 0 R /XYZ 139.477 181.3958 null]
+>> endobj
+1795 0 obj <<
+/D [1750 0 R /XYZ 139.477 181.3958 null]
+>> endobj
+1796 0 obj <<
+/D [1750 0 R /XYZ 71.731 179.2389 null]
+>> endobj
+1797 0 obj <<
+/D [1750 0 R /XYZ 139.477 163.463 null]
+>> endobj
+1798 0 obj <<
+/D [1750 0 R /XYZ 139.477 163.463 null]
+>> endobj
+1799 0 obj <<
+/D [1750 0 R /XYZ 71.731 161.3062 null]
+>> endobj
+1800 0 obj <<
+/D [1750 0 R /XYZ 139.477 145.5303 null]
+>> endobj
+1801 0 obj <<
+/D [1750 0 R /XYZ 139.477 145.5303 null]
+>> endobj
+1802 0 obj <<
+/D [1750 0 R /XYZ 71.731 143.3734 null]
+>> endobj
+1803 0 obj <<
+/D [1750 0 R /XYZ 139.477 127.5975 null]
+>> endobj
+1804 0 obj <<
+/D [1750 0 R /XYZ 139.477 127.5975 null]
+>> endobj
+1805 0 obj <<
+/D [1750 0 R /XYZ 71.731 125.4407 null]
+>> endobj
+1806 0 obj <<
+/D [1750 0 R /XYZ 139.477 109.6647 null]
+>> endobj
+1807 0 obj <<
+/D [1750 0 R /XYZ 139.477 109.6647 null]
+>> endobj
+1808 0 obj <<
+/D [1750 0 R /XYZ 71.731 107.5079 null]
+>> endobj
+1749 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1812 0 obj <<
+/Length 1196      
+/Filter /FlateDecode
+>>
+stream
+xÚ¥Xßo«6\14~ï_ÁÛ\12éÆÃ6Æv\1f&u»Ût§m\8auª(8-R\ 2\95!êúßï\80\ 4\a\98¦ªâG>Îùüù;>\ 6\1cÅð\87#\8e\11§p \12\91\94\91(?ÞÅÑ\vüôó\1d\90\8dÅl|Ð÷»»o\7f¢q$\91LI\1aíö\11\95)b<\898%H0,¢]ñ×ê\87×ì­Uz½!,^\11d\8eÛCV©ö×ìÙ\>l¿\98\93ßTûZ\17ÍúïÝ/w?î\86ü\8cr$\ 5$\99$\99Ä\ 2%© Ñ\86ÄH\12Ì\82(\f!\18N\0Å\ 1O\13Ê\87Á\10\19q\84»\81Â`\ 6Ü\0ëFóH\b»f\87a¸1Idä\aty¯\8fg\1eî©1\ f*"\ 1¢¦IÏ\83J\94p~Iã-k\9a÷Z\17\1d\95\9e÷y\12\12\86\84à\ 2\92tÀ{£kÓê²zùdÕÎóúTµæ¢\8f´Æñª\8bÖß)+sÌõÇ[û\18³\18þ±¹µ¯õq4z§S*c\94àXΨîÃ&T\1f`³ª\87ò.P}Ä#¨ú\ 5\ruÌÊC@ràL\85ä\13\92ouyÌô\87¹P\9b>N\7f\9e\15\85VMox00Ä\ 1×nX\8cD,\93>ÚWÕ\9etÕÜ\8f\86\8fA(\86\81!\9c`.pXv\87Úø°³ì\92ÇFöQ´\9b²\13\ 26Ä$\98÷¶ìî© \8f³\92çé÷y\94Ukuü]­        [½[ë*ÝÔÕSi}ÛYõ;sêY¶ÜÛé8å9\b½?¹   \84¡p\ 4\8bD?Ý\eÆ\11\17\94öÚ\13ÊL\95\11\ 4\v  <ÎÅê¡èj¤Ø®)Ì\9f^c¶\82Ô»µ\80ºù£lU¨\ e9\12$\ 6å»Å\90§&âV×mÝ~¼©ûá\89³çì³\e\82Q\8a\85±ÜCQlûaz¹\86Ñf§öõÓ\95\16Oµ~ê}j\7fhà   {ûP¿\94ÕÓsÖ¨^\9e\8dcàSþ¬\9a\\97omYWS¤),ý)\19H7&{ûjé6o*/\1fã\98¨Â'lQõ\1cº\e\85m\1d_öW`?Rióf\a­²ÂÖ[f\ eGu|v}¨¾\ eÒ%°\8aU\96\8dÒºÖ.\9eî§\18Ì\f%\85R\96Ò~ º/NUXj\9fkÕ¸\18vyÍ_³êE\ 5\19\7f³fà"{Ç_\1fÌ`]º\14¥\94§þZ`P7ým\87±ï\f\9b\9d\ e­Å×\90^¿\97\8d        ½dæ\1f\ e\87º/77\v\83j\96:7+\8eÐI\16¦Úv\15\95éì¨`«0±ØQh\82\12s6³Øù°\89Ån\80Í.v¡¼\v\16»\11\8fË\1eã\16»\v\1e]Q\87zL\82b<ê0§Ü­\8cÃ\16ª{^Um\99g]ÉúÈ\931q°y\13èsR$b¦yû°\89æ=Àf\9bw(ï\82æ=â\11\174\1e@\17³½\f¨Ë Ê\12عNl\9a\ 2²\1e\8b5ìÔ¨\9bî%\8c!¸ 3îõa\13î\1d`³î\rå]àÞ\11\8f°{/x\8cûP@m      û\1cr­vév¤µöå¿íXx'À"\9dÛäû°)Ç:ؼc\ 3y\9786ÀÃÛ÷8Çú4ÎÛ\9e?\e׸ʢ3aß\1aõmiÀ"\84ÑÙbö`SÒ8ؼ4\81¼K¤    ð\bHãÓøÏ\9bë`=bAaã.æêÑ\87MÔã\0\9b­ÇPÞ\ 5õ8â\11®Ç\v\1eÁí_ $1fðî\9cÊÿW\938\85(\8cÍÕ¤\ f\9b\0\9b5^(ï\ 2ã\85x\8c\8dwAã\\93ç­ø¢\9aÄð>À\b\99«I\1f6%\8d\83ÍK\13È»D\9a\0\8f\804>\8d\8b\9a<«Ó\1cÊÜí{µêTúǼíBÝH(h÷ºË&_wí\a¨D \81S9ù\8dÊÃ\8c?Q1"`\1f\10©\7fÏÃ7?8\ 5\12þ\v\7f\91c\81endstream
+endobj
+1811 0 obj <<
+/Type /Page
+/Contents 1812 0 R
+/Resources 1810 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1809 0 R
+>> endobj
+1813 0 obj <<
+/D [1811 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1814 0 obj <<
+/D [1811 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+1815 0 obj <<
+/D [1811 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+1816 0 obj <<
+/D [1811 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+1817 0 obj <<
+/D [1811 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+1818 0 obj <<
+/D [1811 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+1819 0 obj <<
+/D [1811 0 R /XYZ 71.731 652.5529 null]
+>> endobj
+1820 0 obj <<
+/D [1811 0 R /XYZ 71.731 639.5019 null]
+>> endobj
+1821 0 obj <<
+/D [1811 0 R /XYZ 71.731 638.2566 null]
+>> endobj
+1822 0 obj <<
+/D [1811 0 R /XYZ 129.5143 619.1781 null]
+>> endobj
+648 0 obj <<
+/D [1811 0 R /XYZ 71.731 612.0399 null]
+>> endobj
+110 0 obj <<
+/D [1811 0 R /XYZ 256.9159 568.9424 null]
+>> endobj
+1823 0 obj <<
+/D [1811 0 R /XYZ 71.731 548.8021 null]
+>> endobj
+1824 0 obj <<
+/D [1811 0 R /XYZ 161.0655 536.0657 null]
+>> endobj
+1825 0 obj <<
+/D [1811 0 R /XYZ 71.731 523.9463 null]
+>> endobj
+1826 0 obj <<
+/D [1811 0 R /XYZ 71.731 492.5804 null]
+>> endobj
+1827 0 obj <<
+/D [1811 0 R /XYZ 168.8063 481.5701 null]
+>> endobj
+1828 0 obj <<
+/D [1811 0 R /XYZ 71.731 454.5067 null]
+>> endobj
+1829 0 obj <<
+/D [1811 0 R /XYZ 71.731 426.4285 null]
+>> endobj
+1830 0 obj <<
+/D [1811 0 R /XYZ 71.731 395.4924 null]
+>> endobj
+1831 0 obj <<
+/D [1811 0 R /XYZ 181.5683 383.8366 null]
+>> endobj
+1832 0 obj <<
+/D [1811 0 R /XYZ 71.731 373.7744 null]
+>> endobj
+1833 0 obj <<
+/D [1811 0 R /XYZ 71.731 342.2028 null]
+>> endobj
+1834 0 obj <<
+/D [1811 0 R /XYZ 71.731 329.2414 null]
+>> endobj
+1835 0 obj <<
+/D [1811 0 R /XYZ 71.731 327.9961 null]
+>> endobj
+1836 0 obj <<
+/D [1811 0 R /XYZ 129.5143 308.9175 null]
+>> endobj
+1837 0 obj <<
+/D [1811 0 R /XYZ 129.5143 308.9175 null]
+>> endobj
+1838 0 obj <<
+/D [1811 0 R /XYZ 71.731 307.478 null]
+>> endobj
+1839 0 obj <<
+/D [1811 0 R /XYZ 71.731 307.478 null]
+>> endobj
+1840 0 obj <<
+/D [1811 0 R /XYZ 139.477 290.9848 null]
+>> endobj
+1841 0 obj <<
+/D [1811 0 R /XYZ 139.477 290.9848 null]
+>> endobj
+1842 0 obj <<
+/D [1811 0 R /XYZ 76.7123 273.052 null]
+>> endobj
+1843 0 obj <<
+/D [1811 0 R /XYZ 129.5143 255.1193 null]
+>> endobj
+1844 0 obj <<
+/D [1811 0 R /XYZ 129.5143 255.1193 null]
+>> endobj
+1845 0 obj <<
+/D [1811 0 R /XYZ 71.731 252.9625 null]
+>> endobj
+1846 0 obj <<
+/D [1811 0 R /XYZ 71.731 252.9625 null]
+>> endobj
+1847 0 obj <<
+/D [1811 0 R /XYZ 139.477 237.1865 null]
+>> endobj
+1848 0 obj <<
+/D [1811 0 R /XYZ 71.731 235.747 null]
+>> endobj
+1849 0 obj <<
+/D [1811 0 R /XYZ 139.477 219.2538 null]
+>> endobj
+1850 0 obj <<
+/D [1811 0 R /XYZ 76.7123 201.321 null]
+>> endobj
+1851 0 obj <<
+/D [1811 0 R /XYZ 129.5143 183.3883 null]
+>> endobj
+1852 0 obj <<
+/D [1811 0 R /XYZ 129.5143 183.3883 null]
+>> endobj
+1853 0 obj <<
+/D [1811 0 R /XYZ 71.731 181.2315 null]
+>> endobj
+1854 0 obj <<
+/D [1811 0 R /XYZ 71.731 181.2315 null]
+>> endobj
+1855 0 obj <<
+/D [1811 0 R /XYZ 139.477 165.4555 null]
+>> endobj
+1856 0 obj <<
+/D [1811 0 R /XYZ 71.731 164.016 null]
+>> endobj
+1857 0 obj <<
+/D [1811 0 R /XYZ 139.477 147.5228 null]
+>> endobj
+1858 0 obj <<
+/D [1811 0 R /XYZ 71.731 109.6647 null]
+>> endobj
+1859 0 obj <<
+/D [1811 0 R /XYZ 71.731 96.6138 null]
+>> endobj
+1810 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1862 0 obj <<
+/Length 1038      
+/Filter /FlateDecode
+>>
+stream
+xÚ¥X[\8f£6\18}\9f_Ác"\15×\17\8cí}K¯Úª\95¢Ýô©S\8dØàì \11\88\fÑjÿ}?À&&q\0©\9a\aÈpìïøø\1cÛ@"\f\7f$\12\ 4    \ 6\17ª\10M9\8d\8eç\17\1c}\85G¿¿\10\v\89-&öA?\1d^~ü\8dáH!\95Ò4:\9c"¦RÄE\12     F\91äDF\87ü\9fÍÏïÙ¥Õf\eS\8e7\14\r×}\99Uºý3û2üÜí?\ e7\7féö½Î\9bí¿\87?^~=\8cõ9\13HI(2K2!\12%\f«(¦\18)Jx\10E\88B\9c\13\ 1\83Á\12±\84\89q0TEPG`Ò\r\8d°n4¯\94ò{v\84R\0\10\1aù\1dºº÷×\e\ f×*Èã&*\81!s\92°)\8f¢j\7f\18$#Ã¥8\r×æz<ê¦9]Ë\8e\ 5ü\ 4\ 21\92®³\98\v$$cp\83\11e<í;£ð¼\9b\18!7»|Kð&ßo\19ÞÀ¤\11¾iêê°\95xS\7f.\8b£¶\9dú\ 4\13\81$Å g7ë"\1døíMÝÖí÷\8bþ0¶\90Ð"íYض1TM\89T}\83]\9eïµ¹+Ö\8fè\15s\9c]Ûw;ÞK\8fz+ò·Ú¼ésV\94öAÓ5±ÿ¯²³\86v$@7vÕ}º¿èæh\8aK[ÔÕ\1ca\ 6þNéH¸\19
+·ï\96isÑÇâ\15cªs\9f«EÕKè~\0\1fOwh¿«Â\16ÎJ£³ü»ý1\ÎúüÅ¥­¾ï¤¯`åª,\1fmLm\\87¦\9f`0(Ä\ 4¥<eýP\8dn¯¦Ò9\1a\1f¦(eb0ϧþa³`F[ôÔ¹+»\96­Å×@Í|+\1a\8dÖÎÔ®,ë-å\9boNµOu©\9bµ.ËòsQ9#\15kkî»\1cd\ 6<\ 5\vÙPk\92\7f·R0%\11\96\8c.¬;>lfÝ\19a\8bëN¨î\8a\81\a\93\9e|ãº3áÑ\ 5\eM\10î*t\90\ fvî[s=ºEj\à»öºj\8bcÖeÍG^\aïM\aè(H\8c\bÇIXX\87\8a}ØMXÒí\\93\ 19ØSaaò1MT°îsa]«G\1eSa\99B\89\10S\1a;ÐeØü\ 2êr\88[\ 2ûê½¾EõÕé\e\90õ<t7Y|®\8d~îÞ$AT\ 2ÿ\ 5÷z°9÷:ز{\ 3u׸÷\9eÇ\13÷ú<\1e÷\8e\80ÚJ!FïÕ\86ýÖ®XÆ\97ÿ¹ci\8a\18§tɱ\1elα\ e¶ìØ@Ý5\8e\rðð\8e Î±>\8dÛ      äïÆm8EÞ\99°ßÓÌsià\1c\93\10µ\18f\ f6'\8d\83-K\13¨»F\9a\0\8f\804>\8dI4÷¦8gÆnÒ:îM7,\85yn`s|\9aG*(Ü°¥<ú°\99<\8e°Å<\86ê®Èã\ 3\8fp\1e'<î\8fl\814J    G.!ÿ_\1a)OPJÉR\1a\8cåFØ¢åBuWX.ÄãÑr\13\1a·4z'çUq¤p¨M¥\\8a£\ f\9bÓÆÁ\96µ  Ô]£M\80G@\e\9fÆ$\8e\9e<ÎqÐ=ô@ùðV$±âþÁöùq\8f¤\1c%\9c/½fú°\99\80\8e°Å\80\86ê®\bh\88Gà5sÂcåk¦OÓ~*H$\92$U³_\13<ÌãÇ\ 4NáØI\94\1a{êßTéÓO\ 3\81\82ÿ\ 1|[Ðâendstream
+endobj
+1861 0 obj <<
+/Type /Page
+/Contents 1862 0 R
+/Resources 1860 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1809 0 R
+>> endobj
+1863 0 obj <<
+/D [1861 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1864 0 obj <<
+/D [1861 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+1865 0 obj <<
+/D [1861 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+1866 0 obj <<
+/D [1861 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+649 0 obj <<
+/D [1861 0 R /XYZ 71.731 701.9228 null]
+>> endobj
+114 0 obj <<
+/D [1861 0 R /XYZ 265.5406 658.1081 null]
+>> endobj
+1867 0 obj <<
+/D [1861 0 R /XYZ 71.731 637.9677 null]
+>> endobj
+1868 0 obj <<
+/D [1861 0 R /XYZ 161.0655 625.2314 null]
+>> endobj
+1869 0 obj <<
+/D [1861 0 R /XYZ 71.731 613.1119 null]
+>> endobj
+1870 0 obj <<
+/D [1861 0 R /XYZ 71.731 581.746 null]
+>> endobj
+1871 0 obj <<
+/D [1861 0 R /XYZ 168.8063 570.7357 null]
+>> endobj
+1872 0 obj <<
+/D [1861 0 R /XYZ 71.731 543.6723 null]
+>> endobj
+1873 0 obj <<
+/D [1861 0 R /XYZ 71.731 517.4456 null]
+>> endobj
+1874 0 obj <<
+/D [1861 0 R /XYZ 71.731 484.6581 null]
+>> endobj
+1875 0 obj <<
+/D [1861 0 R /XYZ 181.5683 473.0022 null]
+>> endobj
+1876 0 obj <<
+/D [1861 0 R /XYZ 71.731 462.94 null]
+>> endobj
+1877 0 obj <<
+/D [1861 0 R /XYZ 71.731 429.5169 null]
+>> endobj
+1878 0 obj <<
+/D [1861 0 R /XYZ 71.731 418.407 null]
+>> endobj
+1879 0 obj <<
+/D [1861 0 R /XYZ 71.731 417.1617 null]
+>> endobj
+1880 0 obj <<
+/D [1861 0 R /XYZ 129.5143 398.0832 null]
+>> endobj
+1881 0 obj <<
+/D [1861 0 R /XYZ 129.5143 398.0832 null]
+>> endobj
+1882 0 obj <<
+/D [1861 0 R /XYZ 71.731 396.6436 null]
+>> endobj
+1883 0 obj <<
+/D [1861 0 R /XYZ 71.731 396.6436 null]
+>> endobj
+1884 0 obj <<
+/D [1861 0 R /XYZ 139.477 380.1504 null]
+>> endobj
+1885 0 obj <<
+/D [1861 0 R /XYZ 139.477 380.1504 null]
+>> endobj
+1886 0 obj <<
+/D [1861 0 R /XYZ 76.7123 362.2177 null]
+>> endobj
+1887 0 obj <<
+/D [1861 0 R /XYZ 129.5143 344.2849 null]
+>> endobj
+1888 0 obj <<
+/D [1861 0 R /XYZ 129.5143 344.2849 null]
+>> endobj
+1889 0 obj <<
+/D [1861 0 R /XYZ 71.731 342.1281 null]
+>> endobj
+1890 0 obj <<
+/D [1861 0 R /XYZ 71.731 342.1281 null]
+>> endobj
+1891 0 obj <<
+/D [1861 0 R /XYZ 139.477 326.3522 null]
+>> endobj
+1892 0 obj <<
+/D [1861 0 R /XYZ 71.731 324.9126 null]
+>> endobj
+1893 0 obj <<
+/D [1861 0 R /XYZ 139.477 308.4194 null]
+>> endobj
+1894 0 obj <<
+/D [1861 0 R /XYZ 76.7123 290.4867 null]
+>> endobj
+1895 0 obj <<
+/D [1861 0 R /XYZ 129.5143 272.5539 null]
+>> endobj
+1896 0 obj <<
+/D [1861 0 R /XYZ 129.5143 272.5539 null]
+>> endobj
+1897 0 obj <<
+/D [1861 0 R /XYZ 71.731 270.3971 null]
+>> endobj
+1898 0 obj <<
+/D [1861 0 R /XYZ 71.731 270.3971 null]
+>> endobj
+1899 0 obj <<
+/D [1861 0 R /XYZ 139.477 254.6212 null]
+>> endobj
+1900 0 obj <<
+/D [1861 0 R /XYZ 71.731 253.1816 null]
+>> endobj
+1901 0 obj <<
+/D [1861 0 R /XYZ 139.477 236.6884 null]
+>> endobj
+1902 0 obj <<
+/D [1861 0 R /XYZ 71.731 198.8304 null]
+>> endobj
+1903 0 obj <<
+/D [1861 0 R /XYZ 71.731 185.7794 null]
+>> endobj
+1904 0 obj <<
+/D [1861 0 R /XYZ 71.731 184.5341 null]
+>> endobj
+1905 0 obj <<
+/D [1861 0 R /XYZ 129.5143 165.4555 null]
+>> endobj
+650 0 obj <<
+/D [1861 0 R /XYZ 71.731 159.0347 null]
+>> endobj
+1860 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F21 514 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1908 0 obj <<
+/Length 916       
+/Filter /FlateDecode
+>>
+stream
+xÚµWKo£0\10¾÷Wp$Rñú\81±é-ûªºÚ\95¢*·íªbÁi\90\12\88\80¨Ú\7f¿clÀ\ 4ò¸T9Øàof>\7f\8cÇ\13âaø\11O\10$\18\f4F4âÔK÷wØ{\83¥Ç;b!\81Å\ 4.èóúîÓw\86½\18Å\11\8d¼õÆcq\84¸\b=Á(\92\9cHo\9dýö¿l\93C£ªE@9ö)2ãj\97\14ªù\99ü5\8fËÕ\93\99üRͶÌêÅ\9fõ\8f»oë>>g\ 2Å\12\82\$Ù£¦4)ñ\88@\94ðPóìv\8c#D\88\88[\9a\14Ñ\96\9c\90þ2[\10ìgÏåNi"`\1d;\9b\f\ 5\92\14\v\9b\14\91h­WUÙ\94Í¿\83zè-$XDm8k\eP\82""M¸efü·»~Á\1c'Çf{o\1e+XxÍ3ûT${\ 5\02C%è<»T¾ª:­òC\93\97Å%2\f>UD{2µ   \96Ø\98jA¹ÿ>ÐAÚ\13¨\1c\90\bELD­Ù³j\8eUa-\89\19ò\8d\19ëc\9aªºÞ\1cwv\e\e­irÜ5\16_6[U½çµq}ËÆ\96»]ÙÒR\99\ 5¬o\15<Éöyqk¨Õ\82p?©@yÈ\\13ÂMGBbÄ9\11\ 5\12aÌfÓ±G\ 5.̤cìAª
+L4\83©7Má\85R>\89\v)ÊBBgã\9e\8e\ 3\8fÎjÊ\83IG5\ 2\87\86\93\90\8dyè¼\9c\91\8d\86\bë\b\1aò`?yS\1dÓæþäDk{U4y\9aè\8ct\91ÇJM7ØQ`1\92$âóÂv¨À\85\rÂ\12}¸G\eê`g\85\85\8f\8fi\18ÏÆ=/lg5å1\16\16VC!Æ4\96 \8b©v3êr8e!\14ÒS}óâ­ÓwFÖ½q×Î\9bÒ\8cÇZ\9dÏ^ÌPÌɵä\1dP\97r×¢®§î4è-\99{BâLâ:$l\11\9d\18q,ÇÚæE\97¸CUÎ3-ð\vÆ\14n¯s\1a2\19ÁA\90×*\80\v» b\ f»*ã\Ü\et\9cð\98\17rÄC_@7W\80!C»ë\13\82ÂW\11§%Ö^\1eçk+\ 3´ \92^SÖ\81]R¶\83]Wv&î-ÊÎð\18Ä\1a\94uy\fYwöö´Â\8fÚ\97@×gÉ þq\8c(ã¢k`Ø´\81Y/$ܵ«\ 5Ã>d1ÜjuY|tSccÂÍÙU¦ù\ 6絬^urÙ·\87ÖÀ¾Wû$ß}pÛóX%E×\8e@5µÒ\1fTj\ e}6\90\1d×Ô\1ek\18÷½\11#\88C}7Ú=iÇ,òÓ¤0\93²Øý3³7\1d×L\8d+=QéÖÌ\92"3\13(ݺkf¼¥`ݵ\1cìb}b }tï\ 6ÿye¦uÞ¨\1a\99ùR7C§\ 4\1d
+RÅÒµ\ 2\9denhrî\7ft\8bè\1eVÛÀ\87RߧñÅ\7f,\ e\87\85S    E,\8e{OíAbgÿ~Ì\ 4ü\ f\88\9a\1exendstream
+endobj
+1907 0 obj <<
+/Type /Page
+/Contents 1908 0 R
+/Resources 1906 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1809 0 R
+>> endobj
+1909 0 obj <<
+/D [1907 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+118 0 obj <<
+/D [1907 0 R /XYZ 185.4033 706.1179 null]
+>> endobj
+1910 0 obj <<
+/D [1907 0 R /XYZ 71.731 685.9775 null]
+>> endobj
+1911 0 obj <<
+/D [1907 0 R /XYZ 161.0655 673.2412 null]
+>> endobj
+1912 0 obj <<
+/D [1907 0 R /XYZ 71.731 661.1217 null]
+>> endobj
+1913 0 obj <<
+/D [1907 0 R /XYZ 71.731 577.1118 null]
+>> endobj
+1914 0 obj <<
+/D [1907 0 R /XYZ 71.731 544.3242 null]
+>> endobj
+1915 0 obj <<
+/D [1907 0 R /XYZ 181.5683 532.6683 null]
+>> endobj
+1916 0 obj <<
+/D [1907 0 R /XYZ 71.731 522.6062 null]
+>> endobj
+1917 0 obj <<
+/D [1907 0 R /XYZ 71.731 491.0346 null]
+>> endobj
+1918 0 obj <<
+/D [1907 0 R /XYZ 71.731 478.0732 null]
+>> endobj
+1919 0 obj <<
+/D [1907 0 R /XYZ 71.731 476.8278 null]
+>> endobj
+1920 0 obj <<
+/D [1907 0 R /XYZ 129.5143 457.7493 null]
+>> endobj
+1921 0 obj <<
+/D [1907 0 R /XYZ 129.5143 457.7493 null]
+>> endobj
+1922 0 obj <<
+/D [1907 0 R /XYZ 71.731 456.3097 null]
+>> endobj
+1923 0 obj <<
+/D [1907 0 R /XYZ 71.731 456.3097 null]
+>> endobj
+1924 0 obj <<
+/D [1907 0 R /XYZ 139.477 439.8165 null]
+>> endobj
+1925 0 obj <<
+/D [1907 0 R /XYZ 139.477 439.8165 null]
+>> endobj
+1926 0 obj <<
+/D [1907 0 R /XYZ 76.7123 421.8838 null]
+>> endobj
+1927 0 obj <<
+/D [1907 0 R /XYZ 129.5143 403.951 null]
+>> endobj
+1928 0 obj <<
+/D [1907 0 R /XYZ 129.5143 403.951 null]
+>> endobj
+1929 0 obj <<
+/D [1907 0 R /XYZ 71.731 402.5115 null]
+>> endobj
+1930 0 obj <<
+/D [1907 0 R /XYZ 129.5143 386.0183 null]
+>> endobj
+1931 0 obj <<
+/D [1907 0 R /XYZ 129.5143 386.0183 null]
+>> endobj
+1932 0 obj <<
+/D [1907 0 R /XYZ 71.731 363.9362 null]
+>> endobj
+1933 0 obj <<
+/D [1907 0 R /XYZ 71.731 353.042 null]
+>> endobj
+1934 0 obj <<
+/D [1907 0 R /XYZ 71.731 351.7967 null]
+>> endobj
+1935 0 obj <<
+/D [1907 0 R /XYZ 129.5143 332.7182 null]
+>> endobj
+651 0 obj <<
+/D [1907 0 R /XYZ 71.731 326.2973 null]
+>> endobj
+122 0 obj <<
+/D [1907 0 R /XYZ 262.6488 282.4825 null]
+>> endobj
+1936 0 obj <<
+/D [1907 0 R /XYZ 71.731 262.3422 null]
+>> endobj
+1937 0 obj <<
+/D [1907 0 R /XYZ 161.0655 249.6058 null]
+>> endobj
+1938 0 obj <<
+/D [1907 0 R /XYZ 71.731 237.4863 null]
+>> endobj
+1939 0 obj <<
+/D [1907 0 R /XYZ 71.731 206.1205 null]
+>> endobj
+1940 0 obj <<
+/D [1907 0 R /XYZ 168.8063 195.1102 null]
+>> endobj
+1941 0 obj <<
+/D [1907 0 R /XYZ 71.731 168.0468 null]
+>> endobj
+1942 0 obj <<
+/D [1907 0 R /XYZ 71.731 136.6809 null]
+>> endobj
+1943 0 obj <<
+/D [1907 0 R /XYZ 71.731 120.0433 null]
+>> endobj
+1906 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1946 0 obj <<
+/Length 1053      
+/Filter /FlateDecode
+>>
+stream
+xÚ­X]\8f\9b8\14}\9f_Ác"M¼þĸ+UJÛíª«])êf\9f\88\ 6Ï\f\12\81\b\88ªù÷{Á\86\98Ä|¬Tå\ 1\12®}Ï=>Ç\\87\ 4\18>$\90\ 4I\ 6\17ª\10\r\ 5\r\8e§\a\1c¼À£ß\1f\88\rÙØ\98\8d\eôaÿðËg\86\ 3\85THÃ`ÿ\1c0\15"!y \19E\91 Q°O¾­>¾ÆçZ\97ë\r\15xE\91¹î²8×õ\9fñwóu»ûbnþÒõk\91\7f÷\7f<ü¶ïó\v&\91\8a É$È>ê\1e&U\ eLB\14\12\82È@â\b1Îd\8bs\9b\9a\8aÕ\ f\9d\18,_\8bLWï\1a(íø\bÆ\87¼\19ogÚP\82B\12©vt\9c\9cÒüÑ\f<§ý kÒM7ªáF\86&çnMÄ*.ã\93\ 6\86L.·ì\1e\18â\94\87Þ²û¨\8d\eÖ\95\r\94HL\ 6e÷a\r\84'JÅ]^J\81\17B½yo¯W\1cݨ{\1c,rè#°8\82p6Ä\11_êW\ fm\94#ÜdhBÞ\19z«º¼\1cëÇ\eå4ãu^§Ç¸N\8bÜ\8d¼\94ú¾À\ e\ 2\11\88+¢üÄvQ\e7ìJ,i,1(¨\v\e%\16\16\1fS®¼yÇ\89íFÝã\18\12Ë\14âR\ eal\81\17ã*\ f»"D!\aÃÞò\9bæ/\1d¿\1eZOfºö¾.ÌõRéQõ
\10$ä3êuÃ&ÔÛ\87ͪ×\97w\81zïpøÕ;ÀQÂ^qH\93CQ\1erp³\87ê\88!\12EC¦Ó¼67EéR?ªV\11Â\8e£X8£V7lB­}جZ}y\17¨Õ\87ÃÙ\85­Z\a0\80\91ÇëîkYJ\1a\ 1>aLá-2J\rgH\86xÎÈnØ\145]Ø<5\9e¼K¨ñàðPãÂ\18زegÔoX¢H\89Y¿9aS~ëÂæýæÉ»Äo·8Füæâ8Ãë²È­ãô)N3\8få\94B\8cÞînÿ×s<²\13N\vË\r\9b\10V\1f6+,_Þ\ 5Âòá¸\17Ö\0ÆÕsÿT]\9f¶Ès\6YÕ\9cçÜ°)jº°yj<y\97PãÁá¡Æ\851ðÜ®LOqùf¾èM+:Óz$I©«¶i\85|0%\15ÍV\83Q\84\95hçùª¡\vÉ'\1a<\8e1\92JÎ8Ö\89\9a0l\175ëWOÒ\ 5\80pXìWÓ\ 1q\15\18±êz¶Ö»\1c\8f@Üó¥s/\80\93\88\12Ñ:\1f^ÄHFÌPI\990j¥\bZB\18.£Õ6Y\13¼JþNkmo»e¸AÅaç XÞôÞeQ\17õÛY/mñ·\89MeÒ´\15<a\81\9bÎÓÖWÁs»)eÅK\9a\1f¾Ç\95~\1c¨äÐ\9a*K*\18J\96\9e\13>éêX¦ç¦\ 5\9bBËàø\15Ò\1e­Å\18\9bK®ÛÓÍP²\83\1e\16a\8fi\9fÓ\ 6©ýù¬\8ffGHº\9dÔ_\98ýµÔ}g\98üj§(Núæi^tÛq[]\9c¡ÖF\18\8a!HDÄ,úî\8b\9dõ\14[ÿ\15yöÖ§\1fàÐ7UAÿ\9aÚ]Í\9cïòk\99U\9f\8d@'Ìd躵\1f\1f¬õU\aïÍ-n\17vDçV\vÏ\8dZãKVÛ$\ 5d)\7f¤\95FK\15ñ³O«î\ 6a\ fû<BÀ¿\9aü?À\89¹ÿ;@Ð\b\ eoJõ3µþå£\87{OÂÿ\0ЯÌOendstream
+endobj
+1945 0 obj <<
+/Type /Page
+/Contents 1946 0 R
+/Resources 1944 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1809 0 R
+>> endobj
+1947 0 obj <<
+/D [1945 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1948 0 obj <<
+/D [1945 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+1949 0 obj <<
+/D [1945 0 R /XYZ 181.5683 708.3437 null]
+>> endobj
+1950 0 obj <<
+/D [1945 0 R /XYZ 71.731 698.2815 null]
+>> endobj
+1951 0 obj <<
+/D [1945 0 R /XYZ 71.731 664.8583 null]
+>> endobj
+1952 0 obj <<
+/D [1945 0 R /XYZ 71.731 653.7485 null]
+>> endobj
+1953 0 obj <<
+/D [1945 0 R /XYZ 71.731 652.5032 null]
+>> endobj
+1954 0 obj <<
+/D [1945 0 R /XYZ 129.5143 633.4246 null]
+>> endobj
+1955 0 obj <<
+/D [1945 0 R /XYZ 129.5143 633.4246 null]
+>> endobj
+1956 0 obj <<
+/D [1945 0 R /XYZ 71.731 631.9851 null]
+>> endobj
+1957 0 obj <<
+/D [1945 0 R /XYZ 71.731 631.9851 null]
+>> endobj
+1958 0 obj <<
+/D [1945 0 R /XYZ 139.477 615.4919 null]
+>> endobj
+1959 0 obj <<
+/D [1945 0 R /XYZ 139.477 615.4919 null]
+>> endobj
+1960 0 obj <<
+/D [1945 0 R /XYZ 76.7123 597.5591 null]
+>> endobj
+1961 0 obj <<
+/D [1945 0 R /XYZ 129.5143 579.6264 null]
+>> endobj
+1962 0 obj <<
+/D [1945 0 R /XYZ 129.5143 579.6264 null]
+>> endobj
+1963 0 obj <<
+/D [1945 0 R /XYZ 71.731 577.4696 null]
+>> endobj
+1964 0 obj <<
+/D [1945 0 R /XYZ 71.731 577.4696 null]
+>> endobj
+1965 0 obj <<
+/D [1945 0 R /XYZ 139.477 561.6936 null]
+>> endobj
+1966 0 obj <<
+/D [1945 0 R /XYZ 71.731 560.2541 null]
+>> endobj
+1967 0 obj <<
+/D [1945 0 R /XYZ 139.477 543.7609 null]
+>> endobj
+1968 0 obj <<
+/D [1945 0 R /XYZ 76.7123 525.8281 null]
+>> endobj
+1969 0 obj <<
+/D [1945 0 R /XYZ 129.5143 507.8954 null]
+>> endobj
+1970 0 obj <<
+/D [1945 0 R /XYZ 129.5143 507.8954 null]
+>> endobj
+1971 0 obj <<
+/D [1945 0 R /XYZ 71.731 505.7386 null]
+>> endobj
+1972 0 obj <<
+/D [1945 0 R /XYZ 71.731 505.7386 null]
+>> endobj
+1973 0 obj <<
+/D [1945 0 R /XYZ 139.477 489.9626 null]
+>> endobj
+1974 0 obj <<
+/D [1945 0 R /XYZ 71.731 488.5231 null]
+>> endobj
+1975 0 obj <<
+/D [1945 0 R /XYZ 139.477 472.0299 null]
+>> endobj
+1976 0 obj <<
+/D [1945 0 R /XYZ 71.731 434.1718 null]
+>> endobj
+1977 0 obj <<
+/D [1945 0 R /XYZ 71.731 421.1209 null]
+>> endobj
+1978 0 obj <<
+/D [1945 0 R /XYZ 71.731 419.8755 null]
+>> endobj
+1979 0 obj <<
+/D [1945 0 R /XYZ 129.5143 400.797 null]
+>> endobj
+652 0 obj <<
+/D [1945 0 R /XYZ 71.731 394.3761 null]
+>> endobj
+126 0 obj <<
+/D [1945 0 R /XYZ 248.3767 350.5614 null]
+>> endobj
+1980 0 obj <<
+/D [1945 0 R /XYZ 71.731 330.421 null]
+>> endobj
+1981 0 obj <<
+/D [1945 0 R /XYZ 161.0655 317.6847 null]
+>> endobj
+1982 0 obj <<
+/D [1945 0 R /XYZ 71.731 305.5652 null]
+>> endobj
+1983 0 obj <<
+/D [1945 0 R /XYZ 71.731 274.1993 null]
+>> endobj
+1984 0 obj <<
+/D [1945 0 R /XYZ 168.8063 263.189 null]
+>> endobj
+1985 0 obj <<
+/D [1945 0 R /XYZ 71.731 236.1256 null]
+>> endobj
+1986 0 obj <<
+/D [1945 0 R /XYZ 71.731 204.7597 null]
+>> endobj
+1987 0 obj <<
+/D [1945 0 R /XYZ 71.731 188.1221 null]
+>> endobj
+1988 0 obj <<
+/D [1945 0 R /XYZ 71.731 156.8768 null]
+>> endobj
+1989 0 obj <<
+/D [1945 0 R /XYZ 181.5683 145.5303 null]
+>> endobj
+1990 0 obj <<
+/D [1945 0 R /XYZ 71.731 135.4681 null]
+>> endobj
+1944 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+1993 0 obj <<
+/Length 1255      
+/Filter /FlateDecode
+>>
+stream
+xÚ­\98]o¤6\14\86ïó+¸L¤\8e\8b\rþÊE¥tû¡Vm\15íÎ]SE,x\12$\ 2#`ºÍ¿¯\8d\80Á´Zå\ 2'yÍyýø\1cc\eF±ü\81\11\85\80\818@\ 4£(\7f»\89£\17ù¯\9f\91\1c\8cæà\8a¾?Þ|ûS\12G\1cp\82Ht<E  '\0Ó4¢   \ 2\fC\16\1d\8b?o?¼fç^´w\a\84ã[\ 4ôó±ÊjÑÿ\96}Ö¿><þ¢\e¿\8bþµ)º»¿\8e¿Þüx\1cãã\84\ 2Îd\90M\93£ji\13qÇ&\84\1c`\fiDc\ 6\92\83ÏÇ;\88o³6{\13Òmw?·0v"LFAqâµ0ª\ e®ÌZ\90\7f¡1\9cX\18eÊÂ\13Bx\11\17\11"oÜùóêÃöZúHXÄ$
+\92\ e>$(\fÓdê#»ô¯ÊÇ\8c\eJA¬"(ɽ\9e¯®o/yÿÍl\16U\7fQ÷e\9eõeS»ÊK+\96\ 3´\16\88\fÅ(ö\83µª\83\82\85*='\ 3²²U°2Ic\94roÜu°¶×ÒÇ\14lÂAJéÔÆ\83ä¢3ÜC\17\13@RY<s¾eýbùz°¾é×\rí¾ÑÏK'Ö³7I\81L\8ePò^U[¹kTáÔ]\ 6Ý\93¹3\13+\89ë\98èÊ^<\97ÅsÓ>WÍKY?\7fÎ4\8aÅ\ 2\80A*gfʺ¬{ÝhZ\17þz¾B\ 2 ãI(_\1dÙV¾ZY8_=q÷ä«Ç\87\83Äæ«kC\121©÷I\925\94
+\95\82Oq\8cä\9a¾\86\ 6s\ 6\10&¡Rve\ehFY\10\8d\ e4>\1fK4\13\e\93¼Òéª27Ís+\14¥\7fVK\11\13\99é\1c\ 6JÑQm\94¢U\ 5\13tG)ÎMøKÑ5\91\15E+ºîùT\8aJ\7fÏgT)\ 5,fÈ÷9YO«4\ 5)f¡\8ase[ieeá´òÄÝ\93Vs\1fÞ/ÄÄF^öïþ//Å)Üø6|0\1dýÜ\90Ü\97!\1c,GG¶ÅÍÊÂÜ<q÷p\9bûðssmäÍ¥î[\1fº4\ 6r9#[è®}ýôä.\11sÄBô\1cÙ\16=+\vÓóÄÝCoîÃOϵQ\95µH|iÇAÂ8ÝÚ\92è2׿¨×èV²
+3å1 $\80ò*Ú\0iDA\8cË\88; Î\1cx\11:\ 6ÔÈÑ×\ 4\88Ö\ 1R\ 4(¢¡5Ð\95mA´²0FOÜ= ç>ü(]\e\8a\ 2ü\9a0á:L,\17V\9e\86\16FW¶\ 5ÓÊÂ0=q÷À\9cûðÃtmt}Ö\8bÿ\ 5óÓÐs²!>·\8d:$ÿ]Öùú1.M\b`\ 4\86\96KW¶ÅÔÊÂL=q÷0\9dûð3um\9c\eIµÊ\9b\8fq\88\ 1öqè®Ûö%Ñ\81Ê~0U·\18ò\83\15s={\1f\85<1×\e\97\11    Á\80 Æ\ 3\9bHW¶±\8b\1ceÁm¤/î\8e}¤Ï\87³Ñ¶\93>ñq=\84ü!î\10¾ýbî\18Ì\ 6³4\87ߧ\18Çßéf,ÛÐ\9cVNf\ 2.y.Õ§Ke¦L\8e\85Jàx\98å\ 3¦\80²dø\88\ 3\94`½¨#¹ÛW×U\94É\85å\ eÆ·Å°Ï÷l1äV\16Å
+3\ 2\8c\12s\9dÔ6}Ó¿\9fÅýØã\9aV¦ï\ 1A@ \1e¦\»®Ç\b5\18u\89b\ 6>\9ck\87#\97ÜK\ f\83[\9a8Øwº&~\10\96gu]°eC&·Ü»\8f\ 2\9aéGíRWN\8c©¬6äóVÈ\95bÖIåõÐzi\9bËY7Ov\1dé_³þú>s%øP«µåÝ\ 2Ð\835ª³Èõ\91³°Gu\ f\18\15ã-Ha¬6ý«h¿\94ú.@椬\f@0Ñ\9f\9bB\9cÔäf\97ª÷½\ 2\8c}\b   %n]ÚÑ\88\15Rÿ99\8dß¹¡Ñ?Ø;ñ\ f\ff,±\8fM%º`*\9a\92Ë\8a7IxVûæ
+8e\80AÂ7o\89\1dÍò\92\18#\ 6bÈùø¦¡Öðê\95¯'à¿\1cZ\14=endstream
+endobj
+1992 0 obj <<
+/Type /Page
+/Contents 1993 0 R
+/Resources 1991 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 1809 0 R
+>> endobj
+1994 0 obj <<
+/D [1992 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+1995 0 obj <<
+/D [1992 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+1996 0 obj <<
+/D [1992 0 R /XYZ 71.731 708.2442 null]
+>> endobj
+1997 0 obj <<
+/D [1992 0 R /XYZ 71.731 706.9988 null]
+>> endobj
+1998 0 obj <<
+/D [1992 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+1999 0 obj <<
+/D [1992 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+2000 0 obj <<
+/D [1992 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+2001 0 obj <<
+/D [1992 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+2002 0 obj <<
+/D [1992 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+2003 0 obj <<
+/D [1992 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+2004 0 obj <<
+/D [1992 0 R /XYZ 76.7123 652.0548 null]
+>> endobj
+2005 0 obj <<
+/D [1992 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+2006 0 obj <<
+/D [1992 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+2007 0 obj <<
+/D [1992 0 R /XYZ 71.731 631.9652 null]
+>> endobj
+2008 0 obj <<
+/D [1992 0 R /XYZ 71.731 631.9652 null]
+>> endobj
+2009 0 obj <<
+/D [1992 0 R /XYZ 139.477 616.1893 null]
+>> endobj
+2010 0 obj <<
+/D [1992 0 R /XYZ 71.731 614.7497 null]
+>> endobj
+2011 0 obj <<
+/D [1992 0 R /XYZ 139.477 598.2565 null]
+>> endobj
+2012 0 obj <<
+/D [1992 0 R /XYZ 76.7123 580.3238 null]
+>> endobj
+2013 0 obj <<
+/D [1992 0 R /XYZ 129.5143 562.391 null]
+>> endobj
+2014 0 obj <<
+/D [1992 0 R /XYZ 129.5143 562.391 null]
+>> endobj
+2015 0 obj <<
+/D [1992 0 R /XYZ 71.731 561.212 null]
+>> endobj
+2016 0 obj <<
+/D [1992 0 R /XYZ 71.731 561.212 null]
+>> endobj
+2017 0 obj <<
+/D [1992 0 R /XYZ 139.477 544.4583 null]
+>> endobj
+2018 0 obj <<
+/D [1992 0 R /XYZ 139.477 544.4583 null]
+>> endobj
+2019 0 obj <<
+/D [1992 0 R /XYZ 71.731 542.3014 null]
+>> endobj
+2020 0 obj <<
+/D [1992 0 R /XYZ 139.477 526.5255 null]
+>> endobj
+2021 0 obj <<
+/D [1992 0 R /XYZ 139.477 526.5255 null]
+>> endobj
+2022 0 obj <<
+/D [1992 0 R /XYZ 71.731 524.3687 null]
+>> endobj
+2023 0 obj <<
+/D [1992 0 R /XYZ 139.477 508.5928 null]
+>> endobj
+2024 0 obj <<
+/D [1992 0 R /XYZ 139.477 508.5928 null]
+>> endobj
+2025 0 obj <<
+/D [1992 0 R /XYZ 71.731 506.4359 null]
+>> endobj
+2026 0 obj <<
+/D [1992 0 R /XYZ 139.477 490.66 null]
+>> endobj
+2027 0 obj <<
+/D [1992 0 R /XYZ 139.477 490.66 null]
+>> endobj
+2028 0 obj <<
+/D [1992 0 R /XYZ 71.731 488.5032 null]
+>> endobj
+2029 0 obj <<
+/D [1992 0 R /XYZ 139.477 472.7273 null]
+>> endobj
+2030 0 obj <<
+/D [1992 0 R /XYZ 139.477 472.7273 null]
+>> endobj
+2031 0 obj <<
+/D [1992 0 R /XYZ 71.731 470.5704 null]
+>> endobj
+2032 0 obj <<
+/D [1992 0 R /XYZ 139.477 454.7945 null]
+>> endobj
+2033 0 obj <<
+/D [1992 0 R /XYZ 139.477 454.7945 null]
+>> endobj
+2034 0 obj <<
+/D [1992 0 R /XYZ 71.731 452.6377 null]
+>> endobj
+2035 0 obj <<
+/D [1992 0 R /XYZ 139.477 436.8618 null]
+>> endobj
+2036 0 obj <<
+/D [1992 0 R /XYZ 139.477 436.8618 null]
+>> endobj
+2037 0 obj <<
+/D [1992 0 R /XYZ 71.731 399.0037 null]
+>> endobj
+2038 0 obj <<
+/D [1992 0 R /XYZ 71.731 385.9527 null]
+>> endobj
+2039 0 obj <<
+/D [1992 0 R /XYZ 71.731 384.7074 null]
+>> endobj
+2040 0 obj <<
+/D [1992 0 R /XYZ 129.5143 365.6289 null]
+>> endobj
+653 0 obj <<
+/D [1992 0 R /XYZ 71.731 358.8643 null]
+>> endobj
+130 0 obj <<
+/D [1992 0 R /XYZ 179.6704 315.3932 null]
+>> endobj
+2041 0 obj <<
+/D [1992 0 R /XYZ 71.731 295.2529 null]
+>> endobj
+2042 0 obj <<
+/D [1992 0 R /XYZ 161.0655 282.5165 null]
+>> endobj
+2043 0 obj <<
+/D [1992 0 R /XYZ 71.731 270.3971 null]
+>> endobj
+2044 0 obj <<
+/D [1992 0 R /XYZ 71.731 239.3674 null]
+>> endobj
+2045 0 obj <<
+/D [1992 0 R /XYZ 168.8063 228.0209 null]
+>> endobj
+2046 0 obj <<
+/D [1992 0 R /XYZ 71.731 200.9575 null]
+>> endobj
+2047 0 obj <<
+/D [1992 0 R /XYZ 71.731 174.7308 null]
+>> endobj
+2048 0 obj <<
+/D [1992 0 R /XYZ 71.731 141.6339 null]
+>> endobj
+2049 0 obj <<
+/D [1992 0 R /XYZ 181.5683 130.2874 null]
+>> endobj
+2050 0 obj <<
+/D [1992 0 R /XYZ 71.731 120.2252 null]
+>> endobj
+1991 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2053 0 obj <<
+/Length 1548      
+/Filter /FlateDecode
+>>
+stream
+xÚµY]oÛ6\14}ϯð£\rÄ\1cI\89\87\ 1Þºn\1dÚ!hÓ§e0h\8b\89\ 5ÈR¦\8f´ý÷#%R¢$ê£\ 1\86<XI\ ey\ fÏ=¼\97\94Ñ\ 6Ê\1f´¡\bPO~à\10à\80àÍùz\ 37Oò_¿ß \rÙkÌÞ\ 6ýr\7fóÓ;\ fnB\10\ 68ØÜ?n¼0\0\84ú\eêaÀ\bb\9bûèïí¯\17þ\\8a|·Ç\ 4n1h>ï\12\9e\8aò\ 3?5¿\1eîÞ7\ f\1fEyÉ¢b÷Ïý\9f7¿Ý·ñ\89GAÈd\90Y\92-jL\13\87\16M\84B@\b¢\e
+\19ð|\8fÖ<ïv\88lyίB²-Þ\f\83\ 2&£`è9)´¨½\r3\14ä_(D=
+-LQxÀ\98\8câb,9"ì\8c;üìx\98Qc\1e\1eÛ0)Eà×<¤P\ 4ù^\9f\a¯Ê\8bâ1Ð\rû\0ª\b
+ò¦ÉWQæÕ¹¼\1ddQ\8d\17i\19\9fy\19\8d¬r1^ ¡\10ÈP\8c\12·°\ 6µ·a\9d°HÙ³· \ 3\9b\14V\9a\14b?tÆ\9d\16Ö\8c\1aóè\vë\85À§´Oã ui\1cîP\97\ 4 ðåæ\19ê\e§OF_\87¬×fºú¹Ì\9aϪ\10Óîõ| Í±dÞ\ e5ç]\8dZ¶î8è\1aç\ eHL\18×"QÄ¥8>Æ"i*È@à\0\81@ÚÜeàiO¢\0 \16zK\9e´`s\9e4°eO:â®ñä\90\87Û\936\8dT\16¼\89½\ eÃpÆ\8dïª$Ñ\7f\96²7Of2§\96$d\0\93`i\7fÛ°\19-[Ø¢\96®¸+´\1cñpjÙ£Qå\89CJÄ@à9
+g'å\97O\1f\9a\87ìQ\17Ðæã\99?iaË\v/\9b§H\14ç<>\89ÂüCXI\98\94\9eAàa¹\80\ 5é-Ø\9cô\ 6¶,½#î\1aé\87<ÜÒÛ4DÊO\89pÕU\1f\ 2\ 2éÀɧ,K\ 4Oµþ\7fp­æI\b]W­ùÜ\8a\ 6²L\85hIÐ\ e5§§F-Ë9\ eºFÍ\ 1     ·\98\16\87$K\9fâ²\8a\u\81@\10Â\81\98QVI­´\96oÅ9¾r]\19º\99zö^iZß\a>aKµ×\86Í\89l`Ë*;â®\91yÈí³M#\91\8d|Bg\9f\0\82C¼Zh3ÓktÆòÔ\8eÉb]¶`s:\eزÎ\8e¸kt\1eòpëlÓ¸òoÇ"\89Ï¢p\9f»0c¬¯t\9c\9aCíGþ-¾VWÝߪëÉ\e\8cÈzâA\99îKßÌ©Aª°ô\ flç\ð¹\ 4Ék
+       ñbõ¶`s  2°å\ 49â®IÐ\90\87;A6\8d${\8aÓã\89\17bm\82zýós«q\9d\fÝ<sñ\0!þ6)«\1fBy \\10µ\ 3ÍHªA\8b\82\8e\90sÀÀ)¦E@{ýEÞa×\9e\81\7fÌì;L¶/ꮬ"ü\8f®÷)\ 6\14Ó¥òoÃæRd`ËIrÄ]\93¦!\ fw¢l\1aqq|\96\ 5=>OôY\ 6éÜ©å®\1e\9b|o~{\89\85ÊÌ×\1d²µ\9e-ü>ñ\ 1\rý¥ÂoÃæ\146°e\85\1dq×(<äáVئÁO§\¼ÄÒfÑqâ¢Ãd\19
+è\u9¨Ij××\13MÝy$UYÒüP½&\93Ùc0l8|\12e\95§3/\94<æI
+(X¸\93Û°\99Ky\v\95»â®¸\96»xX\97\1dc\87\1e\8f®Âü¥]Ú\8ax\8cµ¢\ f\90À\9f\9bG(\9f\91.\1f¦ðTgÙe\8bÇÊÜ°äB(À\88ÔÉß\13
+(óê&\b°G\9a¨\18ÈC\80\1cNÙö\10©}\11}VíáPÊì\9ev\18n«Òyô¢\80\14Ç\80Ñ@¿\1d̳2+¿?\8b\88Î{zì\1eËê*/ÖÍ»\9eÈ\15­]©zEvkõ,)Ã1Ëk\93ê?s{àQ\85\1ec^\94\98<©Ìïi\16\19Ô%+J\85¬¥\1c/ro8Û\8b|[ß-\9fÕÛ¥¹ezòh\15àf\99\9fE9º\89\93©j½f¯ð±\ 4ã\13j׸\95<Yîê7;\1fnoû¾p¬¸ßw,6\9d«L\v\9aæÜ*\vê½\råª\11 Lû¹\97T\1dèÊu%ÎÅ¿U\9c\8bA\843O\12ÓMMø\vWS4\8b\e\üó2>W ×\ 3òÌ\14ôXßO³<\1aÎv2k\11¥ÁèÐ\17\9e>\89H¿zÿR´\8d»¥\9c¥¦\8d¨ÁzÁHº\99\ 4ú\8d°cÁ®\ 3°;o\83\ 1_/ñùÒÉ#!:87ª]\85:z\14æË\82÷ó|Ç&{-C¾CÛî(\13ç.)TÑ*nû\93½ve\87è\1a§ÃÅ­Z\12O­Ù­Í3±q\bÙ¶FF\ 1\b<\1aØÍiàÕ´W¤ëòÔ¯F?Z³µ\\8fõá¤JLÉÈdÄük\4\9blM\85:$IVs3ûô\93Ü\19ãÞª¿®ò\19\90;6\9cýFËÂ\8c¿Ð"Xö\ 2ÙÖÛ\99ê¶\12L~=å\bø\1f'°b\7fendstream
+endobj
+2052 0 obj <<
+/Type /Page
+/Contents 2053 0 R
+/Resources 2051 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2113 0 R
+>> endobj
+2054 0 obj <<
+/D [2052 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+2055 0 obj <<
+/D [2052 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+2056 0 obj <<
+/D [2052 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+2057 0 obj <<
+/D [2052 0 R /XYZ 71.731 708.2442 null]
+>> endobj
+2058 0 obj <<
+/D [2052 0 R /XYZ 71.731 706.9988 null]
+>> endobj
+2059 0 obj <<
+/D [2052 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+2060 0 obj <<
+/D [2052 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+2061 0 obj <<
+/D [2052 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+2062 0 obj <<
+/D [2052 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+2063 0 obj <<
+/D [2052 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+2064 0 obj <<
+/D [2052 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+2065 0 obj <<
+/D [2052 0 R /XYZ 76.7123 652.0548 null]
+>> endobj
+2066 0 obj <<
+/D [2052 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+2067 0 obj <<
+/D [2052 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+2068 0 obj <<
+/D [2052 0 R /XYZ 71.731 632.943 null]
+>> endobj
+2069 0 obj <<
+/D [2052 0 R /XYZ 71.731 632.943 null]
+>> endobj
+2070 0 obj <<
+/D [2052 0 R /XYZ 139.477 616.1893 null]
+>> endobj
+2071 0 obj <<
+/D [2052 0 R /XYZ 139.477 616.1893 null]
+>> endobj
+2072 0 obj <<
+/D [2052 0 R /XYZ 71.731 614.0324 null]
+>> endobj
+2073 0 obj <<
+/D [2052 0 R /XYZ 139.477 598.2565 null]
+>> endobj
+2074 0 obj <<
+/D [2052 0 R /XYZ 139.477 598.2565 null]
+>> endobj
+2075 0 obj <<
+/D [2052 0 R /XYZ 71.731 596.0997 null]
+>> endobj
+2076 0 obj <<
+/D [2052 0 R /XYZ 139.477 580.3238 null]
+>> endobj
+2077 0 obj <<
+/D [2052 0 R /XYZ 139.477 580.3238 null]
+>> endobj
+2078 0 obj <<
+/D [2052 0 R /XYZ 71.731 578.8842 null]
+>> endobj
+2079 0 obj <<
+/D [2052 0 R /XYZ 139.477 562.391 null]
+>> endobj
+2080 0 obj <<
+/D [2052 0 R /XYZ 139.477 562.391 null]
+>> endobj
+2081 0 obj <<
+/D [2052 0 R /XYZ 71.731 560.2342 null]
+>> endobj
+2082 0 obj <<
+/D [2052 0 R /XYZ 139.477 544.4583 null]
+>> endobj
+2083 0 obj <<
+/D [2052 0 R /XYZ 139.477 544.4583 null]
+>> endobj
+2084 0 obj <<
+/D [2052 0 R /XYZ 71.731 543.0187 null]
+>> endobj
+2085 0 obj <<
+/D [2052 0 R /XYZ 139.477 526.5255 null]
+>> endobj
+2086 0 obj <<
+/D [2052 0 R /XYZ 139.477 526.5255 null]
+>> endobj
+2087 0 obj <<
+/D [2052 0 R /XYZ 71.731 525.086 null]
+>> endobj
+2088 0 obj <<
+/D [2052 0 R /XYZ 139.477 508.5928 null]
+>> endobj
+2089 0 obj <<
+/D [2052 0 R /XYZ 139.477 508.5928 null]
+>> endobj
+2090 0 obj <<
+/D [2052 0 R /XYZ 71.731 506.4359 null]
+>> endobj
+2091 0 obj <<
+/D [2052 0 R /XYZ 139.477 490.66 null]
+>> endobj
+2092 0 obj <<
+/D [2052 0 R /XYZ 139.477 490.66 null]
+>> endobj
+2093 0 obj <<
+/D [2052 0 R /XYZ 71.731 489.2205 null]
+>> endobj
+2094 0 obj <<
+/D [2052 0 R /XYZ 139.477 472.7273 null]
+>> endobj
+2095 0 obj <<
+/D [2052 0 R /XYZ 139.477 472.7273 null]
+>> endobj
+2096 0 obj <<
+/D [2052 0 R /XYZ 71.731 470.5704 null]
+>> endobj
+2097 0 obj <<
+/D [2052 0 R /XYZ 139.477 454.7945 null]
+>> endobj
+2098 0 obj <<
+/D [2052 0 R /XYZ 139.477 454.7945 null]
+>> endobj
+2099 0 obj <<
+/D [2052 0 R /XYZ 71.731 416.9365 null]
+>> endobj
+2100 0 obj <<
+/D [2052 0 R /XYZ 71.731 403.8855 null]
+>> endobj
+2101 0 obj <<
+/D [2052 0 R /XYZ 71.731 402.6402 null]
+>> endobj
+2102 0 obj <<
+/D [2052 0 R /XYZ 129.5143 383.5616 null]
+>> endobj
+654 0 obj <<
+/D [2052 0 R /XYZ 71.731 376.7971 null]
+>> endobj
+134 0 obj <<
+/D [2052 0 R /XYZ 259.6697 333.326 null]
+>> endobj
+2103 0 obj <<
+/D [2052 0 R /XYZ 71.731 313.1856 null]
+>> endobj
+2104 0 obj <<
+/D [2052 0 R /XYZ 161.0655 300.4493 null]
+>> endobj
+2105 0 obj <<
+/D [2052 0 R /XYZ 71.731 288.3298 null]
+>> endobj
+2106 0 obj <<
+/D [2052 0 R /XYZ 71.731 256.9639 null]
+>> endobj
+2107 0 obj <<
+/D [2052 0 R /XYZ 168.8063 245.9537 null]
+>> endobj
+2108 0 obj <<
+/D [2052 0 R /XYZ 71.731 218.8902 null]
+>> endobj
+2109 0 obj <<
+/D [2052 0 R /XYZ 71.731 187.5243 null]
+>> endobj
+2110 0 obj <<
+/D [2052 0 R /XYZ 71.731 147.5742 null]
+>> endobj
+2111 0 obj <<
+/D [2052 0 R /XYZ 71.731 116.3288 null]
+>> endobj
+2112 0 obj <<
+/D [2052 0 R /XYZ 181.5683 104.9823 null]
+>> endobj
+2051 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2116 0 obj <<
+/Length 1187      
+/Filter /FlateDecode
+>>
+stream
+xÚ­XË\8eÛ6\14ÝÏWhi\ 3c\96\ fñ¡Y\14p\1f)Z´Å õ®\13\f\14K\8e\ 5h¤©%'\98¿/)R2e]\8b
+\12daNtÈ{îá=\97\12I\84õ?\12I\82$Ó?4ATp\1aí_îpôI?úí\8e8ÈÆa6>è§ÝÝ\ fï\18\8e\12\94\b*¢Ý!b\89@\Æ\91d\14)NT´Ëþ]ý|L_Ûü´ÞP\8eW\14ÙßÇ2­òöÏô£ýsûø»\1dü\95·Ç:kÖ\1fv\7fÜýº\eâs&Q¢t\90Y\92\ 3jJ\93&\91Ò4Elh\12ý\94\93\98E\12+Äb&;\9eiöRT÷\96Æká\ 6çF3×dº\15.\89nÜpc\12\95Â.ð¸&|\95\9eÒ\97\§Û<\ç@\88\8eÊ\89\8c\ 4ç\bÇL\809\f¨\8d\ fësÐùILº\1c\19
+O\94òI\Ju\92\84\82\7f/<úYS\1eLAZ\8ex¤çö\bÈFc\84M\ 4\ 3\ 27íé¼oï¯ÊÀÌÏ«¶Ø§mQW>ò|ʧ  ö\14ôþ\13\82\15,l\8fÚø°\8b°ÄÔ÷(¡\1evSX½ù\98Æ    \18÷¶°ý¬)\8f±°,A±\94c\1a\8bµ\b .\17HÄÚ}×ú\16Õ§^_@Ö\17»\7në¡êoW/&\88Æ\9c\85ª×\83ÍUo\ f\vW/\10wIõ^ó¸Q½>\8f¦,öùs\91=קçJÛ\19ÐZ)Ä\85Tc­\8bªµ\83úä\8b\7f³^¹b\88\11*\ 2õêÃfêu\80\ 5ë\15\8a» ^!\1e\17Eúz\1dÑÐ\8a¸ÒûÇhêdÊL\r>aLmo\85µ\11\1c1\99\84¼ìÃæ´éaam\80¸K´\ 1x\0Úø4FÎôäI[ýàã\9aj\e¶î¿Ú·W7êË\11´&ïÓ\9d·¦\ f\9b±æ\0\vZ\13\8a»À\9a\13\1e°5G<¬8Z\98g£É¼G        \13úu@Ðo4)!\88+\12\a\9b\1e\16.D î\92B\ 4x\0\85èÓ\0M:[\85\8b\1c\1c'L\9fG*ä`\1f6#Ü\0\v
+\aÅ] \1cÄc*Ü\88Æ÷wpÌ%\92\8a\85\1cìÃf\1c\82\ e\86â.pð\84\aìà\11\8fÏiy\86ܪÁL%jæíe^áÏkªß¾ÝÚ°¸z\ f\15Ç<$®\a\9b\13·\87\85Å\ 5â.\11÷\9aÇ\rq}\1eU\9dõMñX7í­Æ\88c$±dßÖ\18cJPBdÐß\1elÎß=,ìo î\12\7f\ 3<\0\7fû4.\8dño­ë×´>ÌôÉÃCÊ\PsÂ8TX\97iÐ%²LI\0ªx\1cF\96|w.Ë7;üï\9c\96V\17÷1á\17 \8e¨W¥Ü\1c\94\18)\9cÄÝZïsý=WÍ|*3ÍSrJ\ 3\96õa3\96\1d`AËBq\17X\16âá©Ùoé\88\87Wd¹ia_\9cùºo\90Q\9fÓƶÏ\9e0Ç?Ú!Öcâ*óàf\9e÷û¼i\ eçÒY_ç%\11%¼ë\e\9b¾\17\9b\8d \8cÛ«\v\8a¨473R­¶Ù\9aàUÖ5Û­\1f\16xe\8e±iC\89%R\14Ë«ë\90SÝÖæÜ{\18f\ÚW\7f\7f¢í&\88JìÇm\ 6FU6ê\90¹¹\e¸\a\8e\ 1ûFØU`\995\9d.\v/n~É\9bý©x5ßÄs\õë$\17tàÚ8\ eîX÷7ïrÚ×\ao;\ 1Òî:l[\99»£·>I\9b\82\9bù\9aïG¾*ª`ò\ e\87ÏùÌ)V·Çüô¥hÜ\93,?\98ÝNÏeëM2\86ÅÆ_HpaOm³\ 4\1a\1e\b$\98\14¾\85]ÞÇ\1cP\ 3 úµ\95ìØ_\93\1d²AK·z[\96uG­Wó}]æÓ\ 6ä®;c\85ôKr2{#êa¦\17¢\ÛJpÂ\86\95:³É\9b×\9b@Àÿ\ 1\815éªendstream
+endobj
+2115 0 obj <<
+/Type /Page
+/Contents 2116 0 R
+/Resources 2114 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2113 0 R
+>> endobj
+2117 0 obj <<
+/D [2115 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+2118 0 obj <<
+/D [2115 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+2119 0 obj <<
+/D [2115 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+2120 0 obj <<
+/D [2115 0 R /XYZ 71.731 675.3674 null]
+>> endobj
+2121 0 obj <<
+/D [2115 0 R /XYZ 71.731 674.1221 null]
+>> endobj
+2122 0 obj <<
+/D [2115 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+2123 0 obj <<
+/D [2115 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+2124 0 obj <<
+/D [2115 0 R /XYZ 71.731 653.604 null]
+>> endobj
+2125 0 obj <<
+/D [2115 0 R /XYZ 71.731 653.604 null]
+>> endobj
+2126 0 obj <<
+/D [2115 0 R /XYZ 139.477 637.1108 null]
+>> endobj
+2127 0 obj <<
+/D [2115 0 R /XYZ 139.477 637.1108 null]
+>> endobj
+2128 0 obj <<
+/D [2115 0 R /XYZ 76.7123 619.1781 null]
+>> endobj
+2129 0 obj <<
+/D [2115 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+2130 0 obj <<
+/D [2115 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+2131 0 obj <<
+/D [2115 0 R /XYZ 71.731 599.0885 null]
+>> endobj
+2132 0 obj <<
+/D [2115 0 R /XYZ 71.731 599.0885 null]
+>> endobj
+2133 0 obj <<
+/D [2115 0 R /XYZ 139.477 583.3126 null]
+>> endobj
+2134 0 obj <<
+/D [2115 0 R /XYZ 71.731 581.873 null]
+>> endobj
+2135 0 obj <<
+/D [2115 0 R /XYZ 139.477 565.3798 null]
+>> endobj
+2136 0 obj <<
+/D [2115 0 R /XYZ 76.7123 547.4471 null]
+>> endobj
+2137 0 obj <<
+/D [2115 0 R /XYZ 129.5143 529.5143 null]
+>> endobj
+2138 0 obj <<
+/D [2115 0 R /XYZ 129.5143 529.5143 null]
+>> endobj
+2139 0 obj <<
+/D [2115 0 R /XYZ 71.731 527.3575 null]
+>> endobj
+2140 0 obj <<
+/D [2115 0 R /XYZ 71.731 527.3575 null]
+>> endobj
+2141 0 obj <<
+/D [2115 0 R /XYZ 139.477 511.5816 null]
+>> endobj
+2142 0 obj <<
+/D [2115 0 R /XYZ 71.731 509.4247 null]
+>> endobj
+2143 0 obj <<
+/D [2115 0 R /XYZ 139.477 493.6488 null]
+>> endobj
+2144 0 obj <<
+/D [2115 0 R /XYZ 76.7123 475.716 null]
+>> endobj
+2145 0 obj <<
+/D [2115 0 R /XYZ 129.5143 457.7833 null]
+>> endobj
+2146 0 obj <<
+/D [2115 0 R /XYZ 129.5143 457.7833 null]
+>> endobj
+2147 0 obj <<
+/D [2115 0 R /XYZ 71.731 455.6265 null]
+>> endobj
+2148 0 obj <<
+/D [2115 0 R /XYZ 129.5143 439.8505 null]
+>> endobj
+2149 0 obj <<
+/D [2115 0 R /XYZ 129.5143 439.8505 null]
+>> endobj
+2150 0 obj <<
+/D [2115 0 R /XYZ 71.731 437.6937 null]
+>> endobj
+2151 0 obj <<
+/D [2115 0 R /XYZ 71.731 437.6937 null]
+>> endobj
+2152 0 obj <<
+/D [2115 0 R /XYZ 139.477 421.9178 null]
+>> endobj
+2153 0 obj <<
+/D [2115 0 R /XYZ 71.731 420.4782 null]
+>> endobj
+2154 0 obj <<
+/D [2115 0 R /XYZ 139.477 403.985 null]
+>> endobj
+2155 0 obj <<
+/D [2115 0 R /XYZ 71.731 366.127 null]
+>> endobj
+2156 0 obj <<
+/D [2115 0 R /XYZ 71.731 353.076 null]
+>> endobj
+2157 0 obj <<
+/D [2115 0 R /XYZ 71.731 351.8307 null]
+>> endobj
+2158 0 obj <<
+/D [2115 0 R /XYZ 129.5143 332.7522 null]
+>> endobj
+655 0 obj <<
+/D [2115 0 R /XYZ 71.731 325.9876 null]
+>> endobj
+138 0 obj <<
+/D [2115 0 R /XYZ 298.8174 282.5165 null]
+>> endobj
+2159 0 obj <<
+/D [2115 0 R /XYZ 71.731 259.0278 null]
+>> endobj
+2160 0 obj <<
+/D [2115 0 R /XYZ 161.0655 249.6398 null]
+>> endobj
+2161 0 obj <<
+/D [2115 0 R /XYZ 71.731 237.5204 null]
+>> endobj
+2162 0 obj <<
+/D [2115 0 R /XYZ 71.731 206.1545 null]
+>> endobj
+2163 0 obj <<
+/D [2115 0 R /XYZ 168.8063 195.1442 null]
+>> endobj
+2164 0 obj <<
+/D [2115 0 R /XYZ 71.731 168.0808 null]
+>> endobj
+2165 0 obj <<
+/D [2115 0 R /XYZ 71.731 141.8541 null]
+>> endobj
+2166 0 obj <<
+/D [2115 0 R /XYZ 71.731 108.421 null]
+>> endobj
+2167 0 obj <<
+/D [2115 0 R /XYZ 181.5683 97.4107 null]
+>> endobj
+2114 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2170 0 obj <<
+/Length 1044      
+/Filter /FlateDecode
+>>
+stream
+xÚÍXË\8e£F\14Ý÷W°´¥¡R\ fêA/"u\9e\9a(\13µ&ÞeF-\ 6\97ÛH\18Z\805ÊßçBñ( x,&Jä\ 5Ø>pÏ=÷Ô½\ 5ÄÃð!\9e$H28Ð\10QÁ©\17ß\1e°÷
+\7fýú@Z\88ßb|\eôÃéá»_\18öB\14
+*¼ÓÅc¡@\\ 6\9ed\14)N\94w:ÿuøñ\1a½Uº8ú\94ã\ 3Eæø\9cF\99®~\8f¾\98¯OÏïÍÉ\a]]ósyü|úíáçS\1f\9f3\89B\ 5AVIö¨9M\1az
+h\8a ¦Ià_N\ 2æI¬\10\v\98lxFç[\92Õ\81\eô\90\94ß\9eúuRR\18ðó\91ðCTD7\r©\95\8f\84@\ 4N¤'8G8`ÂÉ·Gù6¬ã\v¹HL\1a¾³»Õ\14>QÊgq)\85\84\b\9d\1e\a\1eÝUs\1eL¹t\eñ\88îÕÕ!\e\r\10®#Ô\90GSܲ*îqõnRòúz\9dUI\1cUI\9eÙÈ{¡ç      v\14 Ö\84\16¶Cù6l\10\96Ô^\1e%ÔÁ\16\85\85âc\1a\84θËÂvWÍy\8c\85e!
\1cÓx\ 2]Ìrp¨Ë\ 5\12\ 1¬´©¾IöÚéë\90õfn×\9cW¹9ÞK½ì^L\10\r8Ûr¯\ 5[so\aÛv¯#î\1e÷Ny,¸×æ\11U Ú\97{¥_ª¿ßôË%Ñ©i?\13Á     á(\10"t9zѤ\1Ä\b\15\e&µa+&ía\9b&uÅÝaÒ\19\ f§IG4 e¾\14yª_\12\97KE}gIÇ\9a%Y×\ 2>$Yr»ßÌ\97O\98ãTGee¾¾åGÊ\ f_uq¹§ð\171¿Ö¡Zû^£\16\19G]ÓÐí/y;lâk\94½öø¤lûMSñ#\ 5ëWËý\85\v\8e\98\f·ú\8b\r[+]\aÛ.\9d\9eÒMy¸KgÓÈ`x-ôm\1c\86+\9dåÏ4\89µKK#4,#sÖ\ 5\eH\14\ 4\92lékÁÖôí`Ûú:âîÑwÊí¯Mã¬Ë¸HÞ\9aîëX\1a\ 4       ¡ä7\90y\12Çó\15A<\f\803F
+\87¼     ðQÃ4ÍV6*\81\14\88\92\80n´z\e¶Òê{Øf«wÅÝÑê]<¬fÝùbÄch<\7f覹8Ä­ûXß\8e¾7§xè?É¥-Ô=\8euYBojK\v\19I\88Ä\e;ø\"©\18kJ@\19\92"ªêݯT\87§ó\91\9a
+¿ÏÊ*\829\1d-\18\ 5,¥(\96\93íg\91Wym\81Çþ\8aÁ\8dÝ~\95\82ÅHhö\12gW°>Ñz\vönX´M¾;7Â?\rî[ãÂàÁ@Ð\9e\8aÛ\98v9ÊÁöÉ\9c-üPiÔø\1c\83\1f`\17Ĥ°\1dn`\8båj³¼ÔúG÷´jñ9ì\95\8a¯Iin½'ï§4m'Tk\98\8f0\9aÊÍr¨ðß{Ö R"Q·îõ%lÃV\96p\ fÛ\®¸;\96ð\8c\87{·6âñß<k\10\1e"!%Ý\98U6leVõ°ÍYå\8a»cVÍx8gÕ\88ÆÿàY\83P\86\14\81\93\r÷Z°5÷v°m÷:âîqï\94Ç\82{m\1e+;.²o#°Ô\11§Ùµ¯k\ 2\ 5ÁE¸úFÇÂÌ_èp\18Y\98ÀâëPÍ S\8b¯g\1c\ 1ÿ\ 1®Ç71endstream
+endobj
+2169 0 obj <<
+/Type /Page
+/Contents 2170 0 R
+/Resources 2168 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2113 0 R
+>> endobj
+2171 0 obj <<
+/D [2169 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+2172 0 obj <<
+/D [2169 0 R /XYZ 71.731 688.3288 null]
+>> endobj
+2173 0 obj <<
+/D [2169 0 R /XYZ 71.731 675.3674 null]
+>> endobj
+2174 0 obj <<
+/D [2169 0 R /XYZ 71.731 674.1221 null]
+>> endobj
+2175 0 obj <<
+/D [2169 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+2176 0 obj <<
+/D [2169 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+2177 0 obj <<
+/D [2169 0 R /XYZ 71.731 653.604 null]
+>> endobj
+2178 0 obj <<
+/D [2169 0 R /XYZ 71.731 653.604 null]
+>> endobj
+2179 0 obj <<
+/D [2169 0 R /XYZ 139.477 637.1108 null]
+>> endobj
+2180 0 obj <<
+/D [2169 0 R /XYZ 139.477 637.1108 null]
+>> endobj
+2181 0 obj <<
+/D [2169 0 R /XYZ 76.7123 619.1781 null]
+>> endobj
+2182 0 obj <<
+/D [2169 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+2183 0 obj <<
+/D [2169 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+2184 0 obj <<
+/D [2169 0 R /XYZ 71.731 599.8646 null]
+>> endobj
+2185 0 obj <<
+/D [2169 0 R /XYZ 71.731 599.8646 null]
+>> endobj
+2186 0 obj <<
+/D [2169 0 R /XYZ 139.477 583.3126 null]
+>> endobj
+2187 0 obj <<
+/D [2169 0 R /XYZ 139.477 583.3126 null]
+>> endobj
+2188 0 obj <<
+/D [2169 0 R /XYZ 71.731 581.1557 null]
+>> endobj
+2189 0 obj <<
+/D [2169 0 R /XYZ 139.477 565.3798 null]
+>> endobj
+2190 0 obj <<
+/D [2169 0 R /XYZ 139.477 565.3798 null]
+>> endobj
+2191 0 obj <<
+/D [2169 0 R /XYZ 71.731 563.223 null]
+>> endobj
+2192 0 obj <<
+/D [2169 0 R /XYZ 139.477 547.4471 null]
+>> endobj
+2193 0 obj <<
+/D [2169 0 R /XYZ 139.477 547.4471 null]
+>> endobj
+2194 0 obj <<
+/D [2169 0 R /XYZ 71.731 509.589 null]
+>> endobj
+2195 0 obj <<
+/D [2169 0 R /XYZ 71.731 496.5381 null]
+>> endobj
+2196 0 obj <<
+/D [2169 0 R /XYZ 71.731 495.2927 null]
+>> endobj
+2197 0 obj <<
+/D [2169 0 R /XYZ 129.5143 476.2142 null]
+>> endobj
+656 0 obj <<
+/D [2169 0 R /XYZ 71.731 469.4496 null]
+>> endobj
+142 0 obj <<
+/D [2169 0 R /XYZ 290.6398 425.9786 null]
+>> endobj
+2198 0 obj <<
+/D [2169 0 R /XYZ 71.731 405.8382 null]
+>> endobj
+2199 0 obj <<
+/D [2169 0 R /XYZ 161.0655 393.1018 null]
+>> endobj
+2200 0 obj <<
+/D [2169 0 R /XYZ 71.731 380.9824 null]
+>> endobj
+2201 0 obj <<
+/D [2169 0 R /XYZ 71.731 349.9527 null]
+>> endobj
+2202 0 obj <<
+/D [2169 0 R /XYZ 168.8063 338.6062 null]
+>> endobj
+2203 0 obj <<
+/D [2169 0 R /XYZ 71.731 311.5428 null]
+>> endobj
+2204 0 obj <<
+/D [2169 0 R /XYZ 71.731 296.9724 null]
+>> endobj
+2205 0 obj <<
+/D [2169 0 R /XYZ 71.731 264.1848 null]
+>> endobj
+2206 0 obj <<
+/D [2169 0 R /XYZ 181.5683 252.529 null]
+>> endobj
+2207 0 obj <<
+/D [2169 0 R /XYZ 71.731 242.4668 null]
+>> endobj
+2208 0 obj <<
+/D [2169 0 R /XYZ 71.731 210.8952 null]
+>> endobj
+2209 0 obj <<
+/D [2169 0 R /XYZ 71.731 197.9338 null]
+>> endobj
+2210 0 obj <<
+/D [2169 0 R /XYZ 71.731 196.6885 null]
+>> endobj
+2211 0 obj <<
+/D [2169 0 R /XYZ 129.5143 177.6099 null]
+>> endobj
+2212 0 obj <<
+/D [2169 0 R /XYZ 129.5143 177.6099 null]
+>> endobj
+2213 0 obj <<
+/D [2169 0 R /XYZ 71.731 176.1704 null]
+>> endobj
+2214 0 obj <<
+/D [2169 0 R /XYZ 71.731 176.1704 null]
+>> endobj
+2215 0 obj <<
+/D [2169 0 R /XYZ 139.477 159.6772 null]
+>> endobj
+2216 0 obj <<
+/D [2169 0 R /XYZ 139.477 159.6772 null]
+>> endobj
+2217 0 obj <<
+/D [2169 0 R /XYZ 76.7123 141.7444 null]
+>> endobj
+2218 0 obj <<
+/D [2169 0 R /XYZ 129.5143 123.8117 null]
+>> endobj
+2219 0 obj <<
+/D [2169 0 R /XYZ 129.5143 123.8117 null]
+>> endobj
+2168 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2222 0 obj <<
+/Length 1325      
+/Filter /FlateDecode
+>>
+stream
+xÚ\8dXÛn«8\14}ïWä\91H'\1eÛ\\f}\18)sÕ\19\9d#U\9d̼LG\15\ 1§µD â2mÿ~¶±M\fq\0å\ 1\82\97½\96×ÞÞ6\90\r\86\1fÙ0\82\98\ f\17\9a \1a\85t\93\9dïðæ\ 5\9a~¿#\1a²Ó\98\9d\rúép÷Ão>Þ$(\89h´9\9c6~\12¡\90\ 5\eæS\14\87\1cò\7f¼\9f_Ó·\96×Û\1d\r±G\91º>\14iÉÛoéQýÝ?|U7ßyûZåÍößÃ\1fw¿\1e\ 6þÐg(\89\81dVä\80º\96I\13K&! 
+CÂ6\fÇÈ\ f|Öë|ämW\97Íý\94{@G1\fO±ïä\1eP;\ef¸á     ÃdÄ=À$÷\13¥á\15/¥ \8eP'ïôzÑaz9uX\1e\80C!  ü±\ eQ¶_T \88º\88\93º6]\96ñ¦9u\85\94  c\81>\86(   \ 39Ø.d\88ž\ f7\18Q?\8cúÁ(\ 2\ eèÎbo\9fo       öò?\v\91q=\80-&`(¦\18¼\93yÃ"\15\8f\87ºj«öó\8dß\ f=bè\11õ\8cºï\8e\12\14\91¤Çïs=~/ø      \878íÚW=\9dF¶<?aLy\917ÐH\1c2vfT[Æ/¼ÉjñÖ\8aª\9c\13âCæGtPÒ(ÚT]J¾¥¡÷nIÑË`_nIè}\1aÉJ\9d\86½ñLô\8fr\1d\8aÒ5\15ÍSëiw\rÏõ\94«ö\95×ï¢Ñ-9?É\18¤]Ѻ:!97H¡\9dOP\18\13\15Á¿·\84\10/-\84\94\10D\8aZÞ2¯LϼQOÕ8ð¬¨úiò:K{VÙVê®G.gúÒO\ 2 ï¢}U\r Òô\86ÖçcÚl\89§\1fÉ \ e\9c\91÷Vs9í\8f>|= :i\1aõ÷?É\9f\160\80R̼F´ü\8bÂ\9cªÂ\bÔ\8dÇO«7ÌN\94/\ 57>\10È,\88hïCWæ¼n²ª6q;\80µ<=ɲ\16\18^\16:\92\ 5o¡©ÑÏËî|¼ü«t%Ló\Ȥ\ 2¹*\b\ 3\87\ eÏ9Õ£\1d\97ÂôðuÚå"\ 5h¬´1\91o\9a*\13ikRKG\ 3î \1aB\vT^\99¤\ 3\1f\9bËÊ\12\88#{e©[\13\1f\19éa\16]ÓjÒBæß{\9f\84\9fÍxj*      ¤s&     ô\7f\bð(\1eªLUå¥y*»W*3d°\8aD(òYd\17ù     ëõú|\16ùe¶?ª[¬óÎY\16µ\eÓ56,B´¶ÞìGY
+C<V\ 5o\16k`¬JO\9a\9fE©µ¼\89µ\9c\ f2bi\rKZ¦íí\1dÐÇÐ)XÜ\ 1mØÌ\ e\16w@\17ï\8a\1dðJ\87\1f\r;àH\87Ü3\1c¶Ñ\0aÉ !÷:ömÝef»\1c\ e0²?/[\91¥rqÛÈ®æ×\13Ô\12h\1c \ 4C\8e:\8d\9d\r»\18KäÉÌ\9eÐ\0»i,\ 4\1fÓ qòÞ6ÖôºÖ16ÖOPÀØXÆ\1e|Q\87;\87»!¬Ð\0Î\8dS\7f¡ \e\7f\1d\9eÕpj)WC\8d¼\99½ \1dá\0N.óÙkÃf²w\80-f¯\8bwEö^épgïH\87ª]'Ñ\9f\f®}\8e\18@ãÐ\95Ç·S\13v\1a\82\13\7f)5-Ø\j\1aØrj:xפæT\87;5m\19]]8¼"1ì\1a\8e5\7fÉÉ¿\1e¿é¢ßÕ²Ì\9bs\96</\1e\ 1f6\19ÑØ;åM\9f\89\ fvE\8b\82Íùl`Ë>;x×ø<ÕáöÙ\96qN?\9eË
+üqU\0\f¥"\19\9b}y\19ù\9e~\88sw¶\8fSãý_\r«ýNõ\81#KËñ)\ 3\8e=â¥ä\93\92±6@$        \11\r`\9aó\ 1²a3\ 1\1a`\8b\ 1rñ®\bÐ\95\ eg\80F2DÙ´)\14YUc¯\83Ä(
+hìÏ,   ë\ 5l<\98\86Â\91ó¶¿\8c!\1fÞ7\96üµ`sþ\1aز¿\ eÞ5þNu¸ýµeÈw¦\eg\v\9c$ël5c¸-\f\13äÃ\8bø\92\85\16lÎB\ 3[¶ÐÁ»Æ©\ e·\85\8cüò6îÚßà$\1cÅl\9d\93\93¡6»\18\92 ÿ\86\11\99û(¤¿\87\ 51\82\97°dö\93\99\85¹þb\16Ò\18\ e\96\10|\83ê?\9c$7¿\7f9\bÿ\a¤Í¢rendstream
+endobj
+2221 0 obj <<
+/Type /Page
+/Contents 2222 0 R
+/Resources 2220 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2113 0 R
+>> endobj
+2223 0 obj <<
+/D [2221 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+658 0 obj <<
+/D [2221 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+2224 0 obj <<
+/D [2221 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+2225 0 obj <<
+/D [2221 0 R /XYZ 71.731 708.2442 null]
+>> endobj
+2226 0 obj <<
+/D [2221 0 R /XYZ 71.731 706.9988 null]
+>> endobj
+2227 0 obj <<
+/D [2221 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+657 0 obj <<
+/D [2221 0 R /XYZ 71.731 681.4994 null]
+>> endobj
+146 0 obj <<
+/D [2221 0 R /XYZ 188.2952 637.6847 null]
+>> endobj
+2228 0 obj <<
+/D [2221 0 R /XYZ 71.731 617.5443 null]
+>> endobj
+2229 0 obj <<
+/D [2221 0 R /XYZ 161.0655 604.8079 null]
+>> endobj
+2230 0 obj <<
+/D [2221 0 R /XYZ 71.731 592.6885 null]
+>> endobj
+2231 0 obj <<
+/D [2221 0 R /XYZ 71.731 561.6588 null]
+>> endobj
+2232 0 obj <<
+/D [2221 0 R /XYZ 168.8063 550.3123 null]
+>> endobj
+2233 0 obj <<
+/D [2221 0 R /XYZ 71.731 523.2489 null]
+>> endobj
+2234 0 obj <<
+/D [2221 0 R /XYZ 71.731 491.883 null]
+>> endobj
+2235 0 obj <<
+/D [2221 0 R /XYZ 71.731 448.6451 null]
+>> endobj
+2236 0 obj <<
+/D [2221 0 R /XYZ 71.731 420.6875 null]
+>> endobj
+2237 0 obj <<
+/D [2221 0 R /XYZ 71.731 389.1059 null]
+>> endobj
+2238 0 obj <<
+/D [2221 0 R /XYZ 181.5683 377.7594 null]
+>> endobj
+2239 0 obj <<
+/D [2221 0 R /XYZ 71.731 367.6972 null]
+>> endobj
+2240 0 obj <<
+/D [2221 0 R /XYZ 71.731 334.274 null]
+>> endobj
+2241 0 obj <<
+/D [2221 0 R /XYZ 71.731 323.1642 null]
+>> endobj
+2242 0 obj <<
+/D [2221 0 R /XYZ 71.731 321.9189 null]
+>> endobj
+2243 0 obj <<
+/D [2221 0 R /XYZ 129.5143 302.8403 null]
+>> endobj
+2244 0 obj <<
+/D [2221 0 R /XYZ 129.5143 302.8403 null]
+>> endobj
+2245 0 obj <<
+/D [2221 0 R /XYZ 71.731 301.4008 null]
+>> endobj
+2246 0 obj <<
+/D [2221 0 R /XYZ 71.731 301.4008 null]
+>> endobj
+2247 0 obj <<
+/D [2221 0 R /XYZ 139.477 284.9076 null]
+>> endobj
+2248 0 obj <<
+/D [2221 0 R /XYZ 139.477 284.9076 null]
+>> endobj
+2249 0 obj <<
+/D [2221 0 R /XYZ 76.7123 266.9748 null]
+>> endobj
+2250 0 obj <<
+/D [2221 0 R /XYZ 129.5143 249.0421 null]
+>> endobj
+2251 0 obj <<
+/D [2221 0 R /XYZ 129.5143 249.0421 null]
+>> endobj
+2252 0 obj <<
+/D [2221 0 R /XYZ 71.731 247.8631 null]
+>> endobj
+2253 0 obj <<
+/D [2221 0 R /XYZ 71.731 247.8631 null]
+>> endobj
+2254 0 obj <<
+/D [2221 0 R /XYZ 139.477 231.1093 null]
+>> endobj
+2255 0 obj <<
+/D [2221 0 R /XYZ 139.477 231.1093 null]
+>> endobj
+2256 0 obj <<
+/D [2221 0 R /XYZ 71.731 228.9525 null]
+>> endobj
+2257 0 obj <<
+/D [2221 0 R /XYZ 139.477 213.1766 null]
+>> endobj
+2258 0 obj <<
+/D [2221 0 R /XYZ 139.477 213.1766 null]
+>> endobj
+2259 0 obj <<
+/D [2221 0 R /XYZ 71.731 211.0198 null]
+>> endobj
+2260 0 obj <<
+/D [2221 0 R /XYZ 139.477 195.2438 null]
+>> endobj
+2261 0 obj <<
+/D [2221 0 R /XYZ 139.477 195.2438 null]
+>> endobj
+2262 0 obj <<
+/D [2221 0 R /XYZ 71.731 193.087 null]
+>> endobj
+2263 0 obj <<
+/D [2221 0 R /XYZ 139.477 177.3111 null]
+>> endobj
+2264 0 obj <<
+/D [2221 0 R /XYZ 139.477 177.3111 null]
+>> endobj
+2265 0 obj <<
+/D [2221 0 R /XYZ 71.731 175.1543 null]
+>> endobj
+2266 0 obj <<
+/D [2221 0 R /XYZ 139.477 159.3783 null]
+>> endobj
+2267 0 obj <<
+/D [2221 0 R /XYZ 139.477 159.3783 null]
+>> endobj
+2268 0 obj <<
+/D [2221 0 R /XYZ 71.731 121.5203 null]
+>> endobj
+2269 0 obj <<
+/D [2221 0 R /XYZ 71.731 108.4693 null]
+>> endobj
+2270 0 obj <<
+/D [2221 0 R /XYZ 71.731 107.224 null]
+>> endobj
+2220 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F21 514 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2273 0 obj <<
+/Length 1098      
+/Filter /FlateDecode
+>>
+stream
+xÚ\9dX]\8f\9b8\14}\9f_Ác"\15¯?0¶ûP)ûÑUW»Õ¨ÍÛÎjDÁ\99 \11\98\ 5¢Qÿý^\82MLb>¶ÊC\f\1cû\9e{|®m \ 1\86\1f     \ 4A\82Á\1fU\88Æ\9c\ 6éé\ 1\a/ðè÷\ab ¡Á\84.èçýÃO\1f\19\ e\14R1\8d\83ý!`*F\D\81`\14INd°ÏþÞürL^[]oCÊñ\86¢þÿ±HJÝþ\99|ë/w\8f\9fúÆ_º=VY³ýgÿÇÃoû!>g\ 2)   AfIFD¢\88a\15\84\14#E   ÷¢\bQ\88s" \19,\11\8b\98\18\92¡*\808\ 2\93.\99\ 17Àºl\9e(å·ì\b¥\0 4p\a´qoÿ¯<l//\8f«¨\ 4Ræ$bc\1eyÙ¾ë%û¬·\94oÞú\8b¦ÈSý\9cgýÕ\13æøCßÄÐ&}3?\18ì9MuÓ\1cÎE\97\10D\85L\ 4\ 2Ù¢.lÈ\ 5\12\921h`D\19\8f/a\812î¦PÈÍ.Û\12¼É¾v\11÷[\897Õç*Ó\8d\19ËÍ \12HR\f\82\10q\9fÀc]µUûýU¿\1fzHè\11_\82\9b¾!%(&R]:ì²ûXC\96ɹ=¾\eKð\ÕÏerÒæv \1dÌÝcÕ´Ý\93ç"oÚ\8b\9cCKÁåü«nÒ:\7fmóª\9ccÍ 
+b:°64Û£6\ 4_u\9a?aLuæ06 j  ÜåÑ\98*rD8%ßûÆ7ÓQç0\86©º¢J\93¢oVæÖ¡ªuþR\8eÆ\84\8cÀ\9a!#\88KÒÏ÷§Ã-\9f+×Ü\84N\8aZ'\99     \9f4M\95æIké¾\ 1\róä\1ak\98\12Cµ®«Ú\ eV\9bÑkÝ\9eëRg\ 3-\12£\98\89\9eÖ\97ËCÓeÒÖ&Ì¡óir.Z\83¯:aÞòF£µó¾+\8aêRd6«/U¡\9bµÆM²S^\1a.¯¹i\9c\e\98\9c\95á\1f·\84\830àXXGû°£åÇ.TLHD¸P\vË\9e\v\9b\ 6Øâ²ç\8b»bÙ»ãÁ¤£ä°ì\8dxtuî\91\8dF\bw\11:È{c\83¶>§v\8d\1cö\97®¿.Û<Mº"v\91g0Þ]\82\96B\fK åÄ/¬E\85.ì*,é6ÎQB\166),L>¦\91òÆ\9d\16Ööºç1\16\96)\14     1¦±\ 3]ú½×£.\87Ê\8b`[¿Õ7/_¬¾\1eYOýp£e\r\?í^\98DÆU¼ä^\a6ç^\v[v¯'î\1a÷Þò\98p¯Ëãvkòh-%ì\1dB\8eµ\86Í~¼z÷âOû\15Ç(¢±Zò«\ 3\9bó«\85-ûÕ\13w\8d_=<\9có\8fõ«KãzüùêlHYçÁËfYOjCAáHEKµìÂf´\19`\8bÚøâ®ÐÆÇã^\9b\11\8dQe:òXÇy«\8fr\8ab*\97ªÏ\85ÍTß\0[¬>_Ü\15ÕwÇÃ_}#\1eS'@O\15\128\ 3Å8¾Yò\92º¶§¬êðc\95IY\84\97\85͹ÏÂ\96Ýç\89»Æ}\1e\1e\1e÷¹4\9c\17\13Ðûÿ\14&\1cðDÌ\16\vÓ\81ÍIcaËÒxâ®\91ÆÃÃ#\8dKcT\98\1fÏEaÌôï9)Fg|kÏËÑ7\84¢R\94÷/b\12«È=\ 1O\1f\ 6\11g\98-\14´\v\9b\ 1¶Xо¸+
+ÚÇÃó\ e<âqµÚì\9b­KÓ|Ç\88$\827\1c5û©ÃÁÜ\7féàTÂ\89S©a¤\8e\ fÃ\93ß-<\ 1ÿ\ 3\87\9dý´endstream
+endobj
+2272 0 obj <<
+/Type /Page
+/Contents 2273 0 R
+/Resources 2271 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2113 0 R
+>> endobj
+2274 0 obj <<
+/D [2272 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+2275 0 obj <<
+/D [2272 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+2276 0 obj <<
+/D [2272 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+150 0 obj <<
+/D [2272 0 R /XYZ 260.5654 658.1081 null]
+>> endobj
+2277 0 obj <<
+/D [2272 0 R /XYZ 71.731 637.9677 null]
+>> endobj
+2278 0 obj <<
+/D [2272 0 R /XYZ 161.0655 625.2314 null]
+>> endobj
+2279 0 obj <<
+/D [2272 0 R /XYZ 71.731 613.1119 null]
+>> endobj
+2280 0 obj <<
+/D [2272 0 R /XYZ 71.731 582.0823 null]
+>> endobj
+2281 0 obj <<
+/D [2272 0 R /XYZ 168.8063 570.7357 null]
+>> endobj
+2282 0 obj <<
+/D [2272 0 R /XYZ 71.731 543.6723 null]
+>> endobj
+2283 0 obj <<
+/D [2272 0 R /XYZ 71.731 512.3064 null]
+>> endobj
+2284 0 obj <<
+/D [2272 0 R /XYZ 71.731 495.6688 null]
+>> endobj
+2285 0 obj <<
+/D [2272 0 R /XYZ 71.731 464.7328 null]
+>> endobj
+2286 0 obj <<
+/D [2272 0 R /XYZ 181.5683 453.0769 null]
+>> endobj
+2287 0 obj <<
+/D [2272 0 R /XYZ 71.731 443.0148 null]
+>> endobj
+2288 0 obj <<
+/D [2272 0 R /XYZ 71.731 409.5916 null]
+>> endobj
+2289 0 obj <<
+/D [2272 0 R /XYZ 71.731 398.4818 null]
+>> endobj
+2290 0 obj <<
+/D [2272 0 R /XYZ 71.731 397.2364 null]
+>> endobj
+2291 0 obj <<
+/D [2272 0 R /XYZ 129.5143 378.1579 null]
+>> endobj
+2292 0 obj <<
+/D [2272 0 R /XYZ 129.5143 378.1579 null]
+>> endobj
+2293 0 obj <<
+/D [2272 0 R /XYZ 71.731 376.7183 null]
+>> endobj
+2294 0 obj <<
+/D [2272 0 R /XYZ 71.731 376.7183 null]
+>> endobj
+2295 0 obj <<
+/D [2272 0 R /XYZ 139.477 360.2251 null]
+>> endobj
+2296 0 obj <<
+/D [2272 0 R /XYZ 139.477 360.2251 null]
+>> endobj
+2297 0 obj <<
+/D [2272 0 R /XYZ 76.7123 342.2924 null]
+>> endobj
+2298 0 obj <<
+/D [2272 0 R /XYZ 129.5143 324.3596 null]
+>> endobj
+2299 0 obj <<
+/D [2272 0 R /XYZ 129.5143 324.3596 null]
+>> endobj
+2300 0 obj <<
+/D [2272 0 R /XYZ 71.731 322.2028 null]
+>> endobj
+2301 0 obj <<
+/D [2272 0 R /XYZ 71.731 322.2028 null]
+>> endobj
+2302 0 obj <<
+/D [2272 0 R /XYZ 139.477 306.4269 null]
+>> endobj
+2303 0 obj <<
+/D [2272 0 R /XYZ 71.731 304.9873 null]
+>> endobj
+2304 0 obj <<
+/D [2272 0 R /XYZ 139.477 288.4941 null]
+>> endobj
+2305 0 obj <<
+/D [2272 0 R /XYZ 76.7123 270.5614 null]
+>> endobj
+2306 0 obj <<
+/D [2272 0 R /XYZ 129.5143 252.6286 null]
+>> endobj
+2307 0 obj <<
+/D [2272 0 R /XYZ 129.5143 252.6286 null]
+>> endobj
+2308 0 obj <<
+/D [2272 0 R /XYZ 71.731 250.4718 null]
+>> endobj
+2309 0 obj <<
+/D [2272 0 R /XYZ 71.731 250.4718 null]
+>> endobj
+2310 0 obj <<
+/D [2272 0 R /XYZ 139.477 234.6959 null]
+>> endobj
+2311 0 obj <<
+/D [2272 0 R /XYZ 71.731 233.2563 null]
+>> endobj
+2312 0 obj <<
+/D [2272 0 R /XYZ 139.477 216.7631 null]
+>> endobj
+2313 0 obj <<
+/D [2272 0 R /XYZ 71.731 178.9051 null]
+>> endobj
+2314 0 obj <<
+/D [2272 0 R /XYZ 71.731 165.8541 null]
+>> endobj
+2315 0 obj <<
+/D [2272 0 R /XYZ 71.731 164.6088 null]
+>> endobj
+2316 0 obj <<
+/D [2272 0 R /XYZ 129.5143 145.5303 null]
+>> endobj
+659 0 obj <<
+/D [2272 0 R /XYZ 71.731 139.1094 null]
+>> endobj
+2271 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F21 514 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2319 0 obj <<
+/Length 900       
+/Filter /FlateDecode
+>>
+stream
+xÚÅVÛnÛ8\10}ÏWèQ\ 2"\96\17Q\14ûævw\8bì¥\b\ 2\ 3û°-
+E¢c!²dHô\ 6ùû\1d\9a¤L[Êå¥X\180mi\86çÌðÌ\fI\84áC"A\90`°P\89hÎiTí®pô\0¯¾\\11g\92:\9b44ú´¾úð\eÃ\91D2§y´ÞDLæ\88\8b,\12\8c¢\82\93"Z×ÿÄ\9f·å^«!I)Ç1Ev½mËNé?Ë{ûwu{c\7fü¥ô¶¯Çäûú÷«_×\13>g\ 2É\ 2@^%9YÍiR\12\11\81\99áé#Æ\1c\89L\88#M\8a\181äD\11¯\12\86ã\83Þ~Þª*¡8~4t`\ f\19\84\9a      TP,¢Ô\84*r»ÇíÐë^?ïÕÇÉ£\0\8fü\bê|SJPN
+ytX9\94G\eý7Ìq    \8f`%\v\98©ß"ÄüE\8dÕÐìuÓwïE½Sú0t£Å$vi6vÕ[e\7f\1cF\7ff½[»¾vï\fGÕé¦*µªí£ñPUj\1c7\87¶}Nr\1e_ÛÇ\9b\84\18óV;´\1e\1c\87§fTè½ñ­Ú¶O(\8f\9f<Ò]ߪñÍPm¤e½k:Geß\\a\91eØSÔªÚ^\a\11¾\93×mBx\\ eåN\81¸-\9f\84HÄ9\11QV\18\86 \94%ÅNVihf\15+#P³ÀÄ0\98ïf(|£\94Ïp)\b9#t\11÷r=ñð^s\1e¬\bRL ®8ÉØ9\ f#\87\85´Ñ\fa\83`L>:\95èáPéë\8b¢\ fä\ 4*\ e-\ f\83\9a\aè)@\15c*ärb½U\1a\9a\9d\12KLý\9f\ 5äÍ^L,\1c\99\Ä}9±ÞkÎã<±L"Ó\89Îh\98î`\eâBvy\8eò\fzíe~\9bîÁçw!­;»\9d\15~?Õ\83Ù\1fº¦éÞ\14ÄÈ1*°äa³xYàLJ$Àøu}\aV¯ÈÛ[½©î\ 5Ðw\88{\81Ä)¡\93\14B\12MçÕzÑ'OýÎ\9dÍÙ\80I¹@¢`ì\98JÊxîG\fu#æS[ÚÑÒ6£þô\12\9e\7fÚ¤1\80\ e\8cN`gCÇÅùh:¶}ÿ£©\7fÂ$b ²\9c^°rã¡\9cq\bfIÝ\8cå8öU\ 3\1eÜqhçØ9Q\97m\eL\1a·mSÛ:hÏ\85ï\9d7C¿»ð.«ª?t\13-¿û\1eú\11¤ïßã\81us\1a§\9dÀ.7v\99\89#\1e\8e\ 5\86MA \9cçì\18ü½\9aü˺öã­|H`®4\1dò.p-á\ 5±
+ú;! \9aÕÝ×\9b¯_\Éß\9cÇ\16¤Î\93w9ó\0O\rtëS\8a\96â=\99\94íè\92uïfÿ½?2UO\14       ô"&ò7/\17§¢ù¿¯\aEp?¸l2îv\98\15\bÒ._½\ e\a6óÛ0§\ 5\f@)§\9d\f"#/Þm\17\0ÿ\ 3\ 5`Î[endstream
+endobj
+2318 0 obj <<
+/Type /Page
+/Contents 2319 0 R
+/Resources 2317 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2113 0 R
+>> endobj
+2320 0 obj <<
+/D [2318 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+154 0 obj <<
+/D [2318 0 R /XYZ 204.8052 705.7477 null]
+>> endobj
+2321 0 obj <<
+/D [2318 0 R /XYZ 71.731 685.6073 null]
+>> endobj
+2322 0 obj <<
+/D [2318 0 R /XYZ 161.0655 672.871 null]
+>> endobj
+2323 0 obj <<
+/D [2318 0 R /XYZ 71.731 660.7515 null]
+>> endobj
+2324 0 obj <<
+/D [2318 0 R /XYZ 71.731 574.89 null]
+>> endobj
+2325 0 obj <<
+/D [2318 0 R /XYZ 181.5683 563.8797 null]
+>> endobj
+2326 0 obj <<
+/D [2318 0 R /XYZ 71.731 553.8175 null]
+>> endobj
+2327 0 obj <<
+/D [2318 0 R /XYZ 71.731 520.3944 null]
+>> endobj
+2328 0 obj <<
+/D [2318 0 R /XYZ 71.731 509.2845 null]
+>> endobj
+2329 0 obj <<
+/D [2318 0 R /XYZ 71.731 508.0392 null]
+>> endobj
+2330 0 obj <<
+/D [2318 0 R /XYZ 129.5143 488.9607 null]
+>> endobj
+2331 0 obj <<
+/D [2318 0 R /XYZ 129.5143 488.9607 null]
+>> endobj
+2332 0 obj <<
+/D [2318 0 R /XYZ 71.731 487.5211 null]
+>> endobj
+2333 0 obj <<
+/D [2318 0 R /XYZ 71.731 487.5211 null]
+>> endobj
+2334 0 obj <<
+/D [2318 0 R /XYZ 139.477 471.0279 null]
+>> endobj
+2335 0 obj <<
+/D [2318 0 R /XYZ 139.477 471.0279 null]
+>> endobj
+2336 0 obj <<
+/D [2318 0 R /XYZ 71.731 433.1699 null]
+>> endobj
+2337 0 obj <<
+/D [2318 0 R /XYZ 71.731 420.1189 null]
+>> endobj
+2338 0 obj <<
+/D [2318 0 R /XYZ 71.731 418.8736 null]
+>> endobj
+2339 0 obj <<
+/D [2318 0 R /XYZ 129.5143 399.795 null]
+>> endobj
+660 0 obj <<
+/D [2318 0 R /XYZ 71.731 393.3742 null]
+>> endobj
+158 0 obj <<
+/D [2318 0 R /XYZ 216.3218 349.5594 null]
+>> endobj
+2340 0 obj <<
+/D [2318 0 R /XYZ 71.731 326.0706 null]
+>> endobj
+2341 0 obj <<
+/D [2318 0 R /XYZ 161.0655 316.6827 null]
+>> endobj
+2342 0 obj <<
+/D [2318 0 R /XYZ 71.731 304.5632 null]
+>> endobj
+2343 0 obj <<
+/D [2318 0 R /XYZ 71.731 273.1973 null]
+>> endobj
+2344 0 obj <<
+/D [2318 0 R /XYZ 168.8063 262.1871 null]
+>> endobj
+2345 0 obj <<
+/D [2318 0 R /XYZ 71.731 235.1236 null]
+>> endobj
+2346 0 obj <<
+/D [2318 0 R /XYZ 71.731 192.1015 null]
+>> endobj
+2347 0 obj <<
+/D [2318 0 R /XYZ 71.731 175.4639 null]
+>> endobj
+2348 0 obj <<
+/D [2318 0 R /XYZ 71.731 144.5278 null]
+>> endobj
+2349 0 obj <<
+/D [2318 0 R /XYZ 181.5683 132.872 null]
+>> endobj
+2350 0 obj <<
+/D [2318 0 R /XYZ 71.731 122.8098 null]
+>> endobj
+2317 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2353 0 obj <<
+/Length 1251      
+/Filter /FlateDecode
+>>
+stream
+xÚÅX]o\9c8\14}ϯà­3RÇë\ f\8cí¼¥í¶û\95(ªò¶©*gÆé\8c\vL«üû½\1e\fcÀ|¨\ f»\8a\14\188ö=\9c{}®\81D\18þH$\b\12\f\ eT!\9ap\1am\9f/pô\rn}º \ e²q\98\8d\ fzwwñËG\86#\85TB\93èî1b*A\Ä\91`\14INdt·û{õ~¯_*S¬7\94ã\15Eõñ6Õ\99©þÒ\ fõÏ«Ûßë\93kSíó]¹þr÷Çůwm|Î\ 4R\12\82L\92lQC\9aTy4  Q\88s""\81%b1\13'\9e·kÂWºÐÏ\ 6Ø\96\97}
+í DB\14\8aY\90B\8bÚø°\86\ 2\\11\98t(´0Ká\9eR>\88K)p$4\18·\7f<óhF\ry0\19I\90"\89O<@(NbÖå¡\8fÕÞòèéFc\84m\ 4\v¹¬óUVÅq[½íeÑ\8e7YuØêê\90g>òX\98á\ 36\14\12\b%\ 5\ f\vÛ 6>ì,,±åÙy \ 66*,\14)¦±
\1d\17\195äÑ\15\96)\14\vÑ¥q\ 5ºÔ\15\1eP\97'(\89añôõ=dß\1a}\ 3²>×Ó\9dΫ¼>\1eK3^½,FP\1csÅ{FMÕ®CÍ\97î0è\92Êí\91\18)\\8fÄ\93yýz\biË8`$íj{È\9aÂýsMùÊØõÿêní¬Î÷\18S0.\98.ÚÄ\1ca\85e´±Ö&\92Ú2>\e(èlÂ+¸ÄHR¢fäöa\13z·°YÁCq\17(\1eâáÙf#y\87ÇYEâ´{t¥{ÜnMY>\1eS\97\10à'\10\94¿\r\17HH\ 6ë\99cD\19ON\93\ 1\11f;\84\90«wy^}2ÕM¾3\1f\ fi\19Èk,\80\b\16ݬÜ\16y\95W¯/æ²\1d\e7vC    J\88¬\1f!\10êô\ 4÷\98ckep$\81à\9bf.?ø\aSn\8bÃ\8b] ³á\95_DÎ9\9dv¦ªOr'æÎç¥\1fò£»\ f\86P\9flu\9a\82SÔ?2x\92·M\91oÓ㮽ãæÏ\8c­ø\1fgt\13¶,[gùn!:=\1a´ôÙ¯Ò4?Ík\9c!}ÎSS.ÍÂ\89ÆÂHK{5#\f      ¥æìÎ\87M¬¿\166»þBq\17¬¿\ 1\8f°åuxü?½\9a*\8ed\92Ìõj\1f6Ñ«[Øl¯\ eÅ]Ы\a<\82½ºCã¿ëÕn\84\ 4Ã\9a\84\7fúÕ­ô7ûg½}3\9e\ 5\ 1UÊ`ÿ:\93\ 5\ f6\95\85\ 66\9f\85@Ü%Yèó\bgÁ§ñÝ\1aP¨¼\15bR\89\89\ 4üv}µ\8eñê}×GÏ^÷d\85ö{¾ÎvÃ4Y[\1d\97\bÃ*\9bQÿ\8c\9a\12ß¡æµ\1f\ 6]"}\8fDXy\8f\83\15\97\8a1âX¨±½ÔM«ðp\13\ 5óÇ\8cÑSÏ\97Xñe\9b("%\12\89$3&îÃ&L¼\85Í\9ax(î\ 2\13\ fñ\bl¢:<jÃ\1d-4"@/\ 6\e§éJóa\13¥ÖÂfk-\14wA±\rx\ 4«­Cã\ 1¶`_ËJW&ì¶TJ9±Øí\ e®¹ìæ\b\vÉ)R\18f\9d\11Ò\83M     ÙÀæ\85\fÄ]"d\9fGXH\9fÆ3,¿ô§\fóZ;Kì¹áiÂ\8e\89\9bN\r\9b\ 4ínB£Ú\1f²   éá=M%JÎIïÁ¦¤o`óÒ\aâ.\91¾Ï#,½Oc\9f\97U\ 6\90grÄ©¢\13ê\7f<¦©kDÿ\80¦µmº\14ø\13\87µ\85\17+ÌÄ\'òaSÚ6°ym\ 3q\97hÛç\11ÖÖ§\91\99êG^<\95KµÕE¡_»U;â±.\9aR\88àxä£\9eÃl<P@¿ÞL£êÅÄ~\11JB!ÇÅk\ 6\r8tµ\8b\81\ 3SI\87ÄC\91ëÝV\97UÈZ1X\87"\13\85y\ 3Ê[_\0õë\vçéj¥w»\ 2^\eûOé>\18Ç\12I\92¨ÉoÊ\1eføI\99S      /2Jµ3Y\9e\8c\8e\ e\ 4ü\17 ^#%endstream
+endobj
+2352 0 obj <<
+/Type /Page
+/Contents 2353 0 R
+/Resources 2351 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2417 0 R
+>> endobj
+2354 0 obj <<
+/D [2352 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+2355 0 obj <<
+/D [2352 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+2356 0 obj <<
+/D [2352 0 R /XYZ 71.731 708.2442 null]
+>> endobj
+2357 0 obj <<
+/D [2352 0 R /XYZ 71.731 706.9988 null]
+>> endobj
+2358 0 obj <<
+/D [2352 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+2359 0 obj <<
+/D [2352 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+2360 0 obj <<
+/D [2352 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+2361 0 obj <<
+/D [2352 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+2362 0 obj <<
+/D [2352 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+2363 0 obj <<
+/D [2352 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+2364 0 obj <<
+/D [2352 0 R /XYZ 76.7123 652.0548 null]
+>> endobj
+2365 0 obj <<
+/D [2352 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+2366 0 obj <<
+/D [2352 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+2367 0 obj <<
+/D [2352 0 R /XYZ 71.731 612.0399 null]
+>> endobj
+2368 0 obj <<
+/D [2352 0 R /XYZ 71.731 601.1458 null]
+>> endobj
+2369 0 obj <<
+/D [2352 0 R /XYZ 71.731 599.9004 null]
+>> endobj
+2370 0 obj <<
+/D [2352 0 R /XYZ 129.5143 580.8219 null]
+>> endobj
+661 0 obj <<
+/D [2352 0 R /XYZ 71.731 574.401 null]
+>> endobj
+162 0 obj <<
+/D [2352 0 R /XYZ 282.1874 530.5863 null]
+>> endobj
+2371 0 obj <<
+/D [2352 0 R /XYZ 71.731 510.4459 null]
+>> endobj
+2372 0 obj <<
+/D [2352 0 R /XYZ 161.0655 497.7096 null]
+>> endobj
+2373 0 obj <<
+/D [2352 0 R /XYZ 71.731 485.5901 null]
+>> endobj
+2374 0 obj <<
+/D [2352 0 R /XYZ 71.731 454.5605 null]
+>> endobj
+2375 0 obj <<
+/D [2352 0 R /XYZ 168.8063 443.2139 null]
+>> endobj
+2376 0 obj <<
+/D [2352 0 R /XYZ 71.731 431.0945 null]
+>> endobj
+2377 0 obj <<
+/D [2352 0 R /XYZ 71.731 399.7286 null]
+>> endobj
+2378 0 obj <<
+/D [2352 0 R /XYZ 181.5683 388.7183 null]
+>> endobj
+2379 0 obj <<
+/D [2352 0 R /XYZ 71.731 378.6561 null]
+>> endobj
+2380 0 obj <<
+/D [2352 0 R /XYZ 71.731 347.0845 null]
+>> endobj
+2381 0 obj <<
+/D [2352 0 R /XYZ 71.731 334.1231 null]
+>> endobj
+2382 0 obj <<
+/D [2352 0 R /XYZ 71.731 332.8778 null]
+>> endobj
+2383 0 obj <<
+/D [2352 0 R /XYZ 129.5143 313.7992 null]
+>> endobj
+2384 0 obj <<
+/D [2352 0 R /XYZ 129.5143 313.7992 null]
+>> endobj
+2385 0 obj <<
+/D [2352 0 R /XYZ 71.731 312.3597 null]
+>> endobj
+2386 0 obj <<
+/D [2352 0 R /XYZ 71.731 312.3597 null]
+>> endobj
+2387 0 obj <<
+/D [2352 0 R /XYZ 139.477 295.8665 null]
+>> endobj
+2388 0 obj <<
+/D [2352 0 R /XYZ 139.477 295.8665 null]
+>> endobj
+2389 0 obj <<
+/D [2352 0 R /XYZ 71.731 293.7097 null]
+>> endobj
+2390 0 obj <<
+/D [2352 0 R /XYZ 139.477 277.9337 null]
+>> endobj
+2391 0 obj <<
+/D [2352 0 R /XYZ 139.477 277.9337 null]
+>> endobj
+2392 0 obj <<
+/D [2352 0 R /XYZ 71.731 275.7769 null]
+>> endobj
+2393 0 obj <<
+/D [2352 0 R /XYZ 139.477 260.001 null]
+>> endobj
+2394 0 obj <<
+/D [2352 0 R /XYZ 139.477 260.001 null]
+>> endobj
+2395 0 obj <<
+/D [2352 0 R /XYZ 71.731 222.1429 null]
+>> endobj
+2396 0 obj <<
+/D [2352 0 R /XYZ 71.731 209.092 null]
+>> endobj
+2397 0 obj <<
+/D [2352 0 R /XYZ 71.731 207.8466 null]
+>> endobj
+2398 0 obj <<
+/D [2352 0 R /XYZ 129.5143 188.7681 null]
+>> endobj
+2399 0 obj <<
+/D [2352 0 R /XYZ 71.731 188.6686 null]
+>> endobj
+2400 0 obj <<
+/D [2352 0 R /XYZ 71.731 188.6686 null]
+>> endobj
+2401 0 obj <<
+/D [2352 0 R /XYZ 139.477 170.8354 null]
+>> endobj
+2402 0 obj <<
+/D [2352 0 R /XYZ 139.477 170.8354 null]
+>> endobj
+2403 0 obj <<
+/D [2352 0 R /XYZ 71.731 168.6785 null]
+>> endobj
+2404 0 obj <<
+/D [2352 0 R /XYZ 139.477 152.9026 null]
+>> endobj
+2405 0 obj <<
+/D [2352 0 R /XYZ 139.477 152.9026 null]
+>> endobj
+2406 0 obj <<
+/D [2352 0 R /XYZ 71.731 150.7458 null]
+>> endobj
+2407 0 obj <<
+/D [2352 0 R /XYZ 139.477 134.9698 null]
+>> endobj
+2408 0 obj <<
+/D [2352 0 R /XYZ 139.477 134.9698 null]
+>> endobj
+2409 0 obj <<
+/D [2352 0 R /XYZ 71.731 132.813 null]
+>> endobj
+2410 0 obj <<
+/D [2352 0 R /XYZ 139.477 117.0371 null]
+>> endobj
+2411 0 obj <<
+/D [2352 0 R /XYZ 139.477 117.0371 null]
+>> endobj
+2412 0 obj <<
+/D [2352 0 R /XYZ 71.731 114.8803 null]
+>> endobj
+2413 0 obj <<
+/D [2352 0 R /XYZ 71.731 114.8803 null]
+>> endobj
+2414 0 obj <<
+/D [2352 0 R /XYZ 149.4396 99.1043 null]
+>> endobj
+2415 0 obj <<
+/D [2352 0 R /XYZ 149.4396 99.1043 null]
+>> endobj
+2416 0 obj <<
+/D [2352 0 R /XYZ 71.731 96.9475 null]
+>> endobj
+2351 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2420 0 obj <<
+/Length 1511      
+/Filter /FlateDecode
+>>
+stream
+xÚ­\99]s\9b8\14\86ïó+¸\8b=S«\92\90\10ô.m÷£;\9b4Óæn»Ó!\98ÄLmð\0®'ÿ¾G a\19K\88ív|\ 1دt^=H\87#L\ 2\f\1f\12\b\82D\b\a\9a \1aq\1ad»+\1c<ÃO\7f\\11%Y)ÍÊ\14½}¸zý{\88\83\ 4%\11\8d\82\87§ L"Ä\ 5\vDHQÌI\1c<¬ÿY¼Û¤û6¯\97+Êñ\82¢þx¿M˼ý;}ì/oî?ô'·y»©ÖÍòß\87¿®~{\18âóP $\86 \93&Ã$F\1có(XQ\8c\12J¸UEÂ\ 41!`,8F!\vÅ0\16\9a\ 4\ 2\119N\18\8b\96\r*9\96/\94ò±7Â\bx\13Q`ö§£\8e\8f'\17ºÕ¥\8d0\ eb@\1a±Î\ 6\ 3\eÀõÜGÑ|Ý×Å.­_¤\9bÎùé.p\81p\18B\18©|Ós}¬ªm\9e\96¯ú«\ fM\7fl7y\7f¢;ë.\8a\12n×Ó\92àE\9a©ß\9fªZ·(TÛ²Zç\17(\14³(Á\88\11\9cLó7Unþ\83ÊËß\16u\ 6ÿ\v\evþg>`î\1e«ú\9b\ 5>\ 3\15ã#úM[\17å³\82ÿùð\bÍûót½®ó¦qr\14\14\8e1õp4T\13\1cµÊÏÑ\12u\ eDZ\r\aGÓG±· $!¢      '\13\b?ÜÏÃÇ\19â\8c3\ f>C5\81O«üø,Qçà\eÛpà3}¬Ë\86X\0R\86ð\7fÁ×]TO\96Tðþî³j\9f×ß\97\84\8f»`\87\11\8a\b\15\1eØ\86j\ 2¶Vùa[¢Î\81=¶á\80múØTM[¦»Ü¶è9â4¡\13È¿`\8e?îÛ¢*Ó-\9c\93þÛ?\8d.­LI\8c"\91øò¨¡\9a`ªU~¦\96¨s\98\8em8\98\9a\11îÒæÿçQÝ\89\15"ÆH0áK¢\86j\ 2¢Vù!Z¢Î\818¶á\80húxNÛü\98¾Ø!ÆI\18ý\92Tð¼ä\v\b´¤|qìj\83\17\17p\1eCõG\98\9a*7ðAå\ 5n\8b:\ 3ø\85\r;ð3\1f²ôQ\15À×bmá.bD¢H\9cs\87²JA¿\93¥\93«Ô* ï¶ø\821uçZ\1e1\14ÇÄ\93kMÕ\ 4a­ò\13¶D\9dCxlÃAØô±K3[a\10#\81aWá\9eη7K\86\17ïfU\a\9cE(a±'¹\9aª    \88\87h\89:\aâØ\86\ 3¢éCNSûü\84¼Àqì\9f\9eiÓTY\ 1«~Ý_\1f\8bv3Þ\a\9cOa\17kضa\12yr°©\9a`­U~Ö\96¨sX\8fm8X\9b\12£¿º\12kò¬*×?S\8bqB\10\8eC_\ 66T\13¸µÊ\8fÛ\12u\ eî±\r\anÓÇãq[ì\8aÖ>µ¡  sÍí·i¹>\16k=\8d\87^l\14Y\12"±'Ë\9a*7ÅAå¥h\8b:\83â\85\r;Å3\1fíË>ÿ\89I{cNÖ®\8f¡ÄÍÑ3Rªëbÿ\9d]wµ®\8b¯à\88\12áIÀ¦j\82¯VùùZ¢Îá;¶áàkúØu/³,\84C\8e\b\8d©\9f1|¡
+ܾ++è%çÐ8m\8bìZ%\90\ 5\9blo¿\r\90¿8aa\0ÆQÈ©#[hÕÊ\94YnÄEoÎ;\11R\84)K¬qÝwB·ºôq~'ô\840m4\12eUÎM\17çÛ\fÕ¶»ø&\9fs¹L¾ºÜ\86ñ\b¸ã¼\v¾"X@Å\r\17«H\96\80q\1f\9e¢\90É÷\9e"^¼­ªö®j\8b§\97\8fÇ\12\128ôÔØlA7\14VéJ¾H\15Q¿\ï몭äz{3´8\8d[µ]Q\ 2;VU\0\8c\825§é\93\1eÚÍ+=³\9a&}\96\85Â+\9d,³í\ 1*\87\8c¾iól3þ®9ì÷UÝê     6\1aÇJÛ2Çñ>o²ºè6ÃS#\81½7\8fh?\92~\14£\97\96\179\rL?7\a\81,\80\94]Hû¯õ²P\96Õ\ f\8fÕA\9fª\9bÜíqú'lÙê.Su¶I÷{(þÕRÔób\b       \85ë¦(s$Ç\ 5\93jE"\14\85\90?ä >åí¡.\95\ 6 ÐÏúC\96Á\8dx:lÑ\\8c7ÛmO@\9bùTmófîÜЯoçDº\97,Ò:\85$\ 4°ß\,h\ 2K\9fCåN¨Ü$¹Þ·iÕÊ\94\9d\12I\ 2¥}·\80/zs&\12*\17\16¡Ö¸îD¢[]ú8O$:¡\9dù\90\vgö#ó\90é²cø\7f\97û»,m\87¤Ò+\ fuîÌÐ\ 4˽\91ëÝÚ\90¡MÙD\86\1e\fm\8b;#C_ø°fè3\e7ÀåÖõ¸ä°\88\98\98JÒ7\16¬æ#³­úã¡\19\12ÂV¦rõ&C­Éë\r,ßë1\rõ×\17\8ba\16DÉä¿c\86æòÏ1Nc\98$I2ô$\a\13\86οº,\ 1\7f\0cwA\aendstream
+endobj
+2419 0 obj <<
+/Type /Page
+/Contents 2420 0 R
+/Resources 2418 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2417 0 R
+>> endobj
+2421 0 obj <<
+/D [2419 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+2422 0 obj <<
+/D [2419 0 R /XYZ 149.4396 708.3437 null]
+>> endobj
+2423 0 obj <<
+/D [2419 0 R /XYZ 149.4396 708.3437 null]
+>> endobj
+2424 0 obj <<
+/D [2419 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+2425 0 obj <<
+/D [2419 0 R /XYZ 149.4396 690.4109 null]
+>> endobj
+2426 0 obj <<
+/D [2419 0 R /XYZ 149.4396 690.4109 null]
+>> endobj
+2427 0 obj <<
+/D [2419 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+2428 0 obj <<
+/D [2419 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+2429 0 obj <<
+/D [2419 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+2430 0 obj <<
+/D [2419 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+2431 0 obj <<
+/D [2419 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+2432 0 obj <<
+/D [2419 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+2433 0 obj <<
+/D [2419 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+2434 0 obj <<
+/D [2419 0 R /XYZ 149.4396 636.6127 null]
+>> endobj
+2435 0 obj <<
+/D [2419 0 R /XYZ 149.4396 636.6127 null]
+>> endobj
+2436 0 obj <<
+/D [2419 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+2437 0 obj <<
+/D [2419 0 R /XYZ 149.4396 618.6799 null]
+>> endobj
+2438 0 obj <<
+/D [2419 0 R /XYZ 149.4396 618.6799 null]
+>> endobj
+2439 0 obj <<
+/D [2419 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+2440 0 obj <<
+/D [2419 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+2441 0 obj <<
+/D [2419 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+2442 0 obj <<
+/D [2419 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+2443 0 obj <<
+/D [2419 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+2444 0 obj <<
+/D [2419 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+2445 0 obj <<
+/D [2419 0 R /XYZ 71.731 581.3749 null]
+>> endobj
+2446 0 obj <<
+/D [2419 0 R /XYZ 149.4396 564.8817 null]
+>> endobj
+2447 0 obj <<
+/D [2419 0 R /XYZ 149.4396 564.8817 null]
+>> endobj
+2448 0 obj <<
+/D [2419 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+2449 0 obj <<
+/D [2419 0 R /XYZ 149.4396 546.9489 null]
+>> endobj
+2450 0 obj <<
+/D [2419 0 R /XYZ 149.4396 546.9489 null]
+>> endobj
+2451 0 obj <<
+/D [2419 0 R /XYZ 71.731 545.5094 null]
+>> endobj
+2452 0 obj <<
+/D [2419 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+2453 0 obj <<
+/D [2419 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+2454 0 obj <<
+/D [2419 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+2455 0 obj <<
+/D [2419 0 R /XYZ 149.4396 511.0834 null]
+>> endobj
+2456 0 obj <<
+/D [2419 0 R /XYZ 149.4396 511.0834 null]
+>> endobj
+2457 0 obj <<
+/D [2419 0 R /XYZ 71.731 509.6439 null]
+>> endobj
+2458 0 obj <<
+/D [2419 0 R /XYZ 149.4396 493.1507 null]
+>> endobj
+2459 0 obj <<
+/D [2419 0 R /XYZ 149.4396 493.1507 null]
+>> endobj
+2460 0 obj <<
+/D [2419 0 R /XYZ 71.731 490.9938 null]
+>> endobj
+2461 0 obj <<
+/D [2419 0 R /XYZ 149.4396 475.2179 null]
+>> endobj
+2462 0 obj <<
+/D [2419 0 R /XYZ 149.4396 475.2179 null]
+>> endobj
+2463 0 obj <<
+/D [2419 0 R /XYZ 76.7123 457.2852 null]
+>> endobj
+2464 0 obj <<
+/D [2419 0 R /XYZ 139.477 439.3524 null]
+>> endobj
+2465 0 obj <<
+/D [2419 0 R /XYZ 139.477 439.3524 null]
+>> endobj
+662 0 obj <<
+/D [2419 0 R /XYZ 71.731 416.4383 null]
+>> endobj
+166 0 obj <<
+/D [2419 0 R /XYZ 265.6609 371.184 null]
+>> endobj
+2466 0 obj <<
+/D [2419 0 R /XYZ 71.731 347.6953 null]
+>> endobj
+2467 0 obj <<
+/D [2419 0 R /XYZ 161.0655 338.3073 null]
+>> endobj
+2468 0 obj <<
+/D [2419 0 R /XYZ 71.731 326.1879 null]
+>> endobj
+2469 0 obj <<
+/D [2419 0 R /XYZ 71.731 294.822 null]
+>> endobj
+2470 0 obj <<
+/D [2419 0 R /XYZ 168.8063 283.8117 null]
+>> endobj
+2471 0 obj <<
+/D [2419 0 R /XYZ 71.731 256.7483 null]
+>> endobj
+2472 0 obj <<
+/D [2419 0 R /XYZ 71.731 240.3263 null]
+>> endobj
+2473 0 obj <<
+/D [2419 0 R /XYZ 71.731 210.5963 null]
+>> endobj
+2474 0 obj <<
+/D [2419 0 R /XYZ 181.5683 197.7345 null]
+>> endobj
+2475 0 obj <<
+/D [2419 0 R /XYZ 71.731 187.6723 null]
+>> endobj
+2476 0 obj <<
+/D [2419 0 R /XYZ 71.731 156.1007 null]
+>> endobj
+2477 0 obj <<
+/D [2419 0 R /XYZ 71.731 143.1393 null]
+>> endobj
+2478 0 obj <<
+/D [2419 0 R /XYZ 71.731 141.894 null]
+>> endobj
+2479 0 obj <<
+/D [2419 0 R /XYZ 129.5143 122.8154 null]
+>> endobj
+2480 0 obj <<
+/D [2419 0 R /XYZ 129.5143 122.8154 null]
+>> endobj
+2481 0 obj <<
+/D [2419 0 R /XYZ 71.731 121.3759 null]
+>> endobj
+2482 0 obj <<
+/D [2419 0 R /XYZ 71.731 121.3759 null]
+>> endobj
+2483 0 obj <<
+/D [2419 0 R /XYZ 139.477 104.8827 null]
+>> endobj
+2484 0 obj <<
+/D [2419 0 R /XYZ 139.477 104.8827 null]
+>> endobj
+2485 0 obj <<
+/D [2419 0 R /XYZ 71.731 102.7258 null]
+>> endobj
+2418 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2488 0 obj <<
+/Length 1281      
+/Filter /FlateDecode
+>>
+stream
+xÚÍ\98]o¤6\14\86ïó+¸Û\19)ãµ\8d\8dMî²Û¯TM;ZM¯6UD\18&\83\96À\b\98®òï{\8cù0`>zSU¹\0&¯}^?¶\ fÇ\10\aÃ\1fq\ 4\85\võ\11õ8u·\eì¼Â¿~¾!µdWkv¦èÓáæãO.v|ä{Ôs\ e'Çõ=Ä\ 5s\84K\91äD:\87ã×Íçsp)£|»£\1co(Ò×}\12¤Qù[ð¢\1fï÷\ fúæ1*ÏÙ±ØþuøõæÇC\e\9f»\ 2ù\12\82Ì\9adX"æI×ÙQ\8c|J¸UE \vN\18¨\ 4è]æ\8av0Ôw\ 4"j 0\98V×ÊÔh\9e(åCw\ 4\86\8b\1d³Ã&îðÚùhZ\8d}¸Ò\91\0Õc\95\ f×GL\88¾\8d¿\83ä\1a)\1f\95én\ 6À³+}\ 1\11\94êNC-Ê<N_oõÃ/\8f÷[\867\9fõSvÒ×4;FúîÛ\96àM´%|ó®\7f\bÒ£¾y«æFß\87A\92\8c04À<\1f#F°¿\80ß\94Íàoe\8bømqWà\1fù°âïÙP¸\9eã£e\ 2\18F\1c\v¿?\ 1qZÖô\7fo9ÇÇ(-ã'\8c\8dá\88\b\8c\9d\13\bÊ\19â\8c3;ÉFµ3e\1dI_`MrÔÛ$IJa\89\11j\8d;M²i5öÑ'ÙΨéã-*\8aàu\82\90Ç\ 4\9f\8fºù¿aêB§\84\8a\86l\8ei#[fj\89»\86éÐÇ\ 4SÓG\9c\86É\15Vè%.,P=\82<O\8aé%ZƧzïï\1f\8ai\8eD"Oøþ\12GC6DZ\91-s´Ä]Ãqèc\82£é£áXFáÙFRPÄ(¼oV\90T]¤1¤Í:\7ffi\19\84å\f]\8c\91`\82.Ñ5dst\eÙ2]KÜ5t\87>&è\9a>\1aºÅõrÉòÒÂWº\88\ 6¯Ñ\87³ó¡\19Ç\9e³Se\88ðô\9eø\12\95×<-î&\89s&\10c\82,\107e3Ä[Ù"q[Ü\15Äm>:r-ñ\9e\8f\8e\1d©a\9e\1a|a\b\89ôtMêY\0\7f\ 2A\ 5UMß\8e\v\v¯l\8e\11\ 6
+F¸ªæ\84Ü|ʲòÏË1(£êýfy+
+$)\16ý\19ÙçY\99\95ï\97è®mÑ-\99ºí\8eB²"RoÇA\98Êù\13æ8¸\96çÛ®\8ey®^\0ɱ\80ÿ\11\8b\99]Ó·iæ\87¨\bóøRÆY:g\a²,÷¨¶s\9f\96òÍ÷¢Þâç¨+\8eà\r5¬¬ÊL_¯Õ\10ê    (ëƺ§T?äQ\98åǺTþ#MÞ\a\ 1.yü\16äõ¯PG\7fW5[\96\7fkÂ×ݼDfÀãí \9ek»ë,>ì«\1d\84Õ\82G\1e÷Üj Ða\9a\95ý>Ãs\90¾Fà±ÑÃëÇ\15\9e¹Õ¬+­ö2\v0D\8foÐÚÙjÑ7=}É\92¨X»\8eRû"µFÚ«J8È\ 3(~£|&{P8¡\10éñ\85ìaÊf²G+[Ì\1e¶¸+²ÇÈ\87=_÷|¨mf;r0\84ɨB»\86MªiÏvª½ªÏÂ@í2SyÍ£ÉÃ\ 4\ 5&\94\83½ùÃ\84)\9b9L´²ÅÃ\84\8aÃÄÈ\87õ0ѳq\ f\ô¹w²\ 2f3\15ð½\ 5«yTkÓN\115\19 Qù¢J\1aÁ{½M?\9cß\82ðÃô,`\82\J\96&¡SÍÍA­Z\9e\82qÐ5300a\9f\0ÃÃÿú,M \ 6r%Ô\98óäMÙ\fúV¶ÈÞ\16w\ 5ü\91\ f\9e\8dÿê,M \bá\94Ê\85\fmÊf2t+[Ìж¸+2ôÈ\87=C÷|T(O±ª}Ö\9eût\ 2\9e^~êféCN'\9a[zZ´¼ðF\11×,»¾\ 3û¢ë\f¼@!ù\\94ª
+³f\*\87§\8eÞ¶WuhósÝ\87\1d^UD\89ŽkÈæ\06²e\84\96¸k \ e}Ø1\9a6êBôYÕ ªþ´\1eá\98\9aEW\7fcf\12Iâù³\9f¡\rÍø+4§\12*\128Â7*\15Ùe\93ß\94-\ 1ÿ\ 1\85Î2Bendstream
+endobj
+2487 0 obj <<
+/Type /Page
+/Contents 2488 0 R
+/Resources 2486 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2417 0 R
+>> endobj
+2489 0 obj <<
+/D [2487 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+2490 0 obj <<
+/D [2487 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+2491 0 obj <<
+/D [2487 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+2492 0 obj <<
+/D [2487 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+2493 0 obj <<
+/D [2487 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+2494 0 obj <<
+/D [2487 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+2495 0 obj <<
+/D [2487 0 R /XYZ 76.7123 672.4782 null]
+>> endobj
+2496 0 obj <<
+/D [2487 0 R /XYZ 129.5143 654.5454 null]
+>> endobj
+2497 0 obj <<
+/D [2487 0 R /XYZ 129.5143 654.5454 null]
+>> endobj
+2498 0 obj <<
+/D [2487 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+2499 0 obj <<
+/D [2487 0 R /XYZ 129.5143 636.6127 null]
+>> endobj
+2500 0 obj <<
+/D [2487 0 R /XYZ 129.5143 636.6127 null]
+>> endobj
+2501 0 obj <<
+/D [2487 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+2502 0 obj <<
+/D [2487 0 R /XYZ 129.5143 618.6799 null]
+>> endobj
+2503 0 obj <<
+/D [2487 0 R /XYZ 129.5143 618.6799 null]
+>> endobj
+2504 0 obj <<
+/D [2487 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+2505 0 obj <<
+/D [2487 0 R /XYZ 129.5143 600.7472 null]
+>> endobj
+2506 0 obj <<
+/D [2487 0 R /XYZ 129.5143 600.7472 null]
+>> endobj
+2507 0 obj <<
+/D [2487 0 R /XYZ 71.731 578.6651 null]
+>> endobj
+2508 0 obj <<
+/D [2487 0 R /XYZ 71.731 567.7709 null]
+>> endobj
+2509 0 obj <<
+/D [2487 0 R /XYZ 71.731 566.5256 null]
+>> endobj
+2510 0 obj <<
+/D [2487 0 R /XYZ 129.5143 547.4471 null]
+>> endobj
+663 0 obj <<
+/D [2487 0 R /XYZ 71.731 541.0262 null]
+>> endobj
+170 0 obj <<
+/D [2487 0 R /XYZ 255.3838 497.2114 null]
+>> endobj
+2511 0 obj <<
+/D [2487 0 R /XYZ 71.731 473.7227 null]
+>> endobj
+2512 0 obj <<
+/D [2487 0 R /XYZ 161.0655 464.3347 null]
+>> endobj
+2513 0 obj <<
+/D [2487 0 R /XYZ 71.731 452.2152 null]
+>> endobj
+2514 0 obj <<
+/D [2487 0 R /XYZ 71.731 420.8494 null]
+>> endobj
+2515 0 obj <<
+/D [2487 0 R /XYZ 168.8063 409.8391 null]
+>> endobj
+2516 0 obj <<
+/D [2487 0 R /XYZ 71.731 382.7757 null]
+>> endobj
+2517 0 obj <<
+/D [2487 0 R /XYZ 71.731 354.6974 null]
+>> endobj
+2518 0 obj <<
+/D [2487 0 R /XYZ 71.731 323.1159 null]
+>> endobj
+2519 0 obj <<
+/D [2487 0 R /XYZ 181.5683 312.1056 null]
+>> endobj
+2520 0 obj <<
+/D [2487 0 R /XYZ 71.731 302.0434 null]
+>> endobj
+2521 0 obj <<
+/D [2487 0 R /XYZ 71.731 270.4718 null]
+>> endobj
+2522 0 obj <<
+/D [2487 0 R /XYZ 71.731 257.5104 null]
+>> endobj
+2523 0 obj <<
+/D [2487 0 R /XYZ 71.731 256.2651 null]
+>> endobj
+2524 0 obj <<
+/D [2487 0 R /XYZ 129.5143 237.1865 null]
+>> endobj
+2525 0 obj <<
+/D [2487 0 R /XYZ 129.5143 237.1865 null]
+>> endobj
+2526 0 obj <<
+/D [2487 0 R /XYZ 71.731 235.747 null]
+>> endobj
+2527 0 obj <<
+/D [2487 0 R /XYZ 71.731 235.747 null]
+>> endobj
+2528 0 obj <<
+/D [2487 0 R /XYZ 139.477 219.2538 null]
+>> endobj
+2529 0 obj <<
+/D [2487 0 R /XYZ 139.477 219.2538 null]
+>> endobj
+2530 0 obj <<
+/D [2487 0 R /XYZ 71.731 217.097 null]
+>> endobj
+2531 0 obj <<
+/D [2487 0 R /XYZ 139.477 201.321 null]
+>> endobj
+2532 0 obj <<
+/D [2487 0 R /XYZ 139.477 201.321 null]
+>> endobj
+2533 0 obj <<
+/D [2487 0 R /XYZ 71.731 199.1642 null]
+>> endobj
+2534 0 obj <<
+/D [2487 0 R /XYZ 139.477 183.3883 null]
+>> endobj
+2535 0 obj <<
+/D [2487 0 R /XYZ 139.477 183.3883 null]
+>> endobj
+2536 0 obj <<
+/D [2487 0 R /XYZ 76.7123 165.4555 null]
+>> endobj
+2537 0 obj <<
+/D [2487 0 R /XYZ 129.5143 147.5228 null]
+>> endobj
+2538 0 obj <<
+/D [2487 0 R /XYZ 129.5143 147.5228 null]
+>> endobj
+2539 0 obj <<
+/D [2487 0 R /XYZ 71.731 146.3438 null]
+>> endobj
+2540 0 obj <<
+/D [2487 0 R /XYZ 71.731 146.3438 null]
+>> endobj
+2541 0 obj <<
+/D [2487 0 R /XYZ 139.477 129.59 null]
+>> endobj
+2542 0 obj <<
+/D [2487 0 R /XYZ 139.477 129.59 null]
+>> endobj
+2543 0 obj <<
+/D [2487 0 R /XYZ 71.731 127.4332 null]
+>> endobj
+2544 0 obj <<
+/D [2487 0 R /XYZ 139.477 111.6573 null]
+>> endobj
+2545 0 obj <<
+/D [2487 0 R /XYZ 139.477 111.6573 null]
+>> endobj
+2546 0 obj <<
+/D [2487 0 R /XYZ 71.731 110.2765 null]
+>> endobj
+2547 0 obj <<
+/D [2487 0 R /XYZ 71.731 110.2765 null]
+>> endobj
+2486 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2550 0 obj <<
+/Length 1216      
+/Filter /FlateDecode
+>>
+stream
+xÚ­\98[o£8\14Çßû)xk"\r^_1ô-;ÝKWÓQ4ÍÛΪ¢ÁiP\13\88\80lÕo?\87\8b\89        æ¢ÝQ\1f\80ôo\9f??û\1cÛ\10\aÃ\1fq$A\92Á\85\ 6\88z\82:Ûã\rv^á_\7fÜ\90Fâ6\1a×\14ýº¹ùåw\86\9d\0\ 5\1eõ\9cÍÎa\81\87\84ä\8ed\14ù\82øÎ&ú{ñy\1f\9e
+\95-]*ð\82¢úº>\84\89\84/õãjýPß<ªb\9fFùò\9fÍ_7¿mÚø\82I\14ø\10dÔ$\v|$°ð\1c\97b\14P"¬*Â\ 2Ä¥\84wÁ>b\9cÉö]hàHDÊ÷\84wѲVU¾ËwJŵ7    x\93\9ecö§£^_/.t«¾\ræ;> õxe\83\83\ràÚõ\ 1ìÞÓì­´RÙ¾\f\ 1Ç\88sÁ H©»«©æE\16\9fê\87§ó\v4¯ïÃ(ÊTÞíßÝ\v 7\82\83q\8e¦j\98\9aäh\8b:\83\86\9dcÇG\94äÔ\ 2\91r\84É\bÂ\87u\17\90î\1a¥Ú¦I\14f\1fõãý×'ý{öï\92\88\ 5¤Â\10nIáêÓ Ü\86j\ 4·VMã¶D\9d\83ûÚÆ\0\aà&?\e÷)\8b\8fÿ    ¶àHpÁ'`\eª\11ØZ5\rÛ\12u\ eìk\e\ 3°M\1f\90äÇ0ÿÿ5Bwb\85È<ä\11*' \1aª\11\88Z5\rÑ\12u\ eÄk\e\ 3\10M\1fÇj=²0d\ 2\11
+Óz\98áª\9e­ðCñÿ\8e\ 5\155ÒÛ¥\10Ð8,âím3»³ö?x\11í·§[hB\ 6\87\81øÈ\93ÁT\9d6T#àUÓÃ`\89:g\18®m\f\f\83éã%KÃh\eæ\85e$\ 4¬õ8\18«\1f_aµ\\92\12ê[ýÃ¥»Y« ÆHr9U\96\rÕ\b\9a¦k\89:\87îµ\8d\ 1º¦\8fc¸µp\ 5þ\12Ã\1en\98ëãjÉñâó,\88Â\87-!á\13åÖT\rClU\93\10mQg@ìÙ°Cìøx\r\võ\1e~ØË­\1f0ï§,p¯K±\80@K*\16Õ\94®\ 3\1d\82\bî¡\80û\ 3EA«\SfAÞëm\909ìù1å\815î0sݪï£Ë\\ f½i#Ï÷Ïû4/\9eß\94\8d»'\91\f \8e\ fsÿÒ\96\80·$­\98&Íú÷ôg}Svß(JܪÜST±\1c×\87î!=\¨?>\ eêIðM\15ç,Éïzp\b`\14D:\
+håÙÇD\8b\Cu\19\92\0²±BqÝ×à\88P
+'\ 6BmA\87\aD7²\990\8a\83\9e\17¦\898)\1a°¤¾ÄzK|Þna^ïÎ\87f\98À\9cDp@«ÆÖ\15@Òg¬BI\99¨;\ 3\e^yX\94þâ^\1dT¡VQ9\ 2m\91¹N2\89|\8a\81]yô\94^½z¯³´H\8b\8f\93ºk[\¦TÓÖ¥\ 4\96ûfFéHF\1a\96Kux.ö\9f:)ú\1cGzA¾2âê~M#÷*ßfñ©\88ÓdÌ
+¼±ð¨i¥1\11&\9dè¨\9a\81\18\1a\10\86þú!×\e¶¦X¤É¡¹\8bªÎ:}è®wYz¬ï\8a½\8a\9bmG'\19ò\18|´!      ì\8e\98ôÌé>1æ\r¹]U¯Î\87B×7\88\97½Ç¹Bs)®\ e\87Ú\98j¶QßÒ\83Êç\8em\18\1dã¤ñr\8açÆ\\97\19\1ff!ìÞT6\92Ø\84\v$\18f\13\99mÊFR»\95Mæ¶-î\8cäîùèV[\9dÝ\1d\1fe\16Ì>½\9d·º\16´ßvÊö*\81=nXæ\81©<gjp\19\83\9d8\12\81\14\13Ë\98)\eYÆZÙä2f\8b;c\19ëù°.c\1d\e+àò8tÎ\10\90n\ò±s\86\ 5«yÖ(ÒúzÎ{\90\9b¯zÜ\87m\8c\17\8c~ø34ýï~\82ú0\a`¯®U¥W&\ 6¿âY\ 2þ\0WÐ¥<endstream
+endobj
+2549 0 obj <<
+/Type /Page
+/Contents 2550 0 R
+/Resources 2548 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2417 0 R
+>> endobj
+2551 0 obj <<
+/D [2549 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+2552 0 obj <<
+/D [2549 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+2553 0 obj <<
+/D [2549 0 R /XYZ 149.4396 708.3437 null]
+>> endobj
+2554 0 obj <<
+/D [2549 0 R /XYZ 149.4396 708.3437 null]
+>> endobj
+2555 0 obj <<
+/D [2549 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+2556 0 obj <<
+/D [2549 0 R /XYZ 149.4396 690.4109 null]
+>> endobj
+2557 0 obj <<
+/D [2549 0 R /XYZ 149.4396 690.4109 null]
+>> endobj
+2558 0 obj <<
+/D [2549 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+2559 0 obj <<
+/D [2549 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+2560 0 obj <<
+/D [2549 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+2561 0 obj <<
+/D [2549 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+2562 0 obj <<
+/D [2549 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+2563 0 obj <<
+/D [2549 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+2564 0 obj <<
+/D [2549 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+2565 0 obj <<
+/D [2549 0 R /XYZ 149.4396 636.6127 null]
+>> endobj
+2566 0 obj <<
+/D [2549 0 R /XYZ 149.4396 636.6127 null]
+>> endobj
+2567 0 obj <<
+/D [2549 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+2568 0 obj <<
+/D [2549 0 R /XYZ 149.4396 618.6799 null]
+>> endobj
+2569 0 obj <<
+/D [2549 0 R /XYZ 149.4396 618.6799 null]
+>> endobj
+2570 0 obj <<
+/D [2549 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+2571 0 obj <<
+/D [2549 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+2572 0 obj <<
+/D [2549 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+2573 0 obj <<
+/D [2549 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+2574 0 obj <<
+/D [2549 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+2575 0 obj <<
+/D [2549 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+2576 0 obj <<
+/D [2549 0 R /XYZ 76.7123 564.8817 null]
+>> endobj
+2577 0 obj <<
+/D [2549 0 R /XYZ 139.477 546.9489 null]
+>> endobj
+2578 0 obj <<
+/D [2549 0 R /XYZ 139.477 546.9489 null]
+>> endobj
+2579 0 obj <<
+/D [2549 0 R /XYZ 71.731 509.0909 null]
+>> endobj
+2580 0 obj <<
+/D [2549 0 R /XYZ 71.731 496.0399 null]
+>> endobj
+2581 0 obj <<
+/D [2549 0 R /XYZ 71.731 494.7946 null]
+>> endobj
+2582 0 obj <<
+/D [2549 0 R /XYZ 129.5143 475.716 null]
+>> endobj
+664 0 obj <<
+/D [2549 0 R /XYZ 71.731 469.2952 null]
+>> endobj
+174 0 obj <<
+/D [2549 0 R /XYZ 235.1724 425.4804 null]
+>> endobj
+2583 0 obj <<
+/D [2549 0 R /XYZ 71.731 405.3401 null]
+>> endobj
+2584 0 obj <<
+/D [2549 0 R /XYZ 161.0655 392.6037 null]
+>> endobj
+2585 0 obj <<
+/D [2549 0 R /XYZ 71.731 380.4842 null]
+>> endobj
+2586 0 obj <<
+/D [2549 0 R /XYZ 71.731 349.4546 null]
+>> endobj
+2587 0 obj <<
+/D [2549 0 R /XYZ 168.8063 338.1081 null]
+>> endobj
+2588 0 obj <<
+/D [2549 0 R /XYZ 71.731 311.0446 null]
+>> endobj
+2589 0 obj <<
+/D [2549 0 R /XYZ 71.731 281.5303 null]
+>> endobj
+2590 0 obj <<
+/D [2549 0 R /XYZ 71.731 263.0412 null]
+>> endobj
+2591 0 obj <<
+/D [2549 0 R /XYZ 71.731 232.1051 null]
+>> endobj
+2592 0 obj <<
+/D [2549 0 R /XYZ 181.5683 220.4493 null]
+>> endobj
+2593 0 obj <<
+/D [2549 0 R /XYZ 71.731 210.3871 null]
+>> endobj
+2594 0 obj <<
+/D [2549 0 R /XYZ 71.731 176.9639 null]
+>> endobj
+2595 0 obj <<
+/D [2549 0 R /XYZ 71.731 165.8541 null]
+>> endobj
+2596 0 obj <<
+/D [2549 0 R /XYZ 71.731 164.6088 null]
+>> endobj
+2597 0 obj <<
+/D [2549 0 R /XYZ 129.5143 145.5303 null]
+>> endobj
+2598 0 obj <<
+/D [2549 0 R /XYZ 129.5143 145.5303 null]
+>> endobj
+2599 0 obj <<
+/D [2549 0 R /XYZ 71.731 144.0907 null]
+>> endobj
+2600 0 obj <<
+/D [2549 0 R /XYZ 71.731 144.0907 null]
+>> endobj
+2601 0 obj <<
+/D [2549 0 R /XYZ 139.477 127.5975 null]
+>> endobj
+2602 0 obj <<
+/D [2549 0 R /XYZ 139.477 127.5975 null]
+>> endobj
+2603 0 obj <<
+/D [2549 0 R /XYZ 76.7123 109.6647 null]
+>> endobj
+2548 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2606 0 obj <<
+/Length 981       
+/Filter /FlateDecode
+>>
+stream
+xÚÍWI\8f£8\18½×¯à\98H\8dÛûR·\9aÞÔ£\19)*åÖ5*1ÁéBJ \ 2¢Vÿûù\b\86\98Â,ÇQ\ e\90äÙïù}\8bm\12\90H\11¤\18<¨AT
+\1a\1dÎ\ f8ú \7f}{ \ e\12;Lì\83þØ?|üÊpd\90\91TFûcÄ\8cDBñH1\8a´ :Ú§?6\9fÞ\92KmËmL\ 5ÞPÔ>w§$·õ_É¿íקÝ÷öåo[¿\15iµýgÿçÃ\97}Ï/\98BF\ 3ɬHN4â\f\9b\18\19JD\10E\88AB\10\ 5\8bÁ\1a1ÎT¿\18j"àQ\984\8béq=¬YÍ\v¥â½:B)\0\b\8dü     ;Þ÷Ï»\8enÔX\aÓ\91\ 6S%¿é\80%\vÂÙPG\92¦¥­ª×,mÔܤßã $\92\       ài \8f­µY^\7fpn·cÝÏ©Íëì\ 5c
+1\82©¢XÂh\ 2\1eÄM\14\95\9em}-óêq´öÎ%)\ 4Â\9cÉ\ 5Ï}Ø\8cç=lÑó\10ï
+ÏC:î\ 6ö\9e\ f\1d$λcû¬®\87\ 3\18\9e\0@\9fB\90\80·\0ÆB!¥\19\83\17\8c(\13íd D5Å ôæ³=ÙÚ>¥[\827·Èì·\12o~_ì×rKñ¦8{\7f\ 5¢Í\15Ò\14«a¼veQ\175ÌñØ\8f¸§\94\e\eS\ 2\9167|§ÁñkÇßp{Éò\82\ 5N®õ\9b³¡KÂ\86\a2ñµ(_óälßý\9b¥0\8c\ 4\84Ç\9d\ e_øg[\1dÊìRgE>'\9d\91Ô×î$&ù\80½ýÒ\b\8e°$÷Û\9bû©ºØC[\0é`(º\95\ 3\ 6.\82\84&mØvßÝ\94çäwûRä'÷v½¤Im\astª\8acO\9a¹VXl©Øürj«\f\16Ð\13\12¨@¦¤_x\vyç,?6y\92\OuG\v|寬²h­ýO§S+¬3ã¹8Ùj1\89´q]é\9cåNË%[˹Û\12±IJÈ\1cØ'fZ\f£\1c\15¥\17Z\8c\ f\9bi1=l±Å\84xW´\98\91\8ep[\1fèh\8a+`\e@0\19¶óª.¯\87¾£wûg3¾éç\87¤) \1fy-íx\81\9d\ 4,a¿\9cØ.;Pì¡î¶\92æX0X\8eCMº
+\91Ç\94\9b\10é´©Ý \91\88¡§Ì ®Ô@Ã\13\9e*&7J>r6Ë\7f\ 6\f=·Óµ\ 5]¸Ú¯ìdÞR8=aa\96\8e#>l&o{ØbÞ\86xWäíHG8o\a:&v\82\80å\84JDá\b7:\9c¸\8eUúA\98ÌX*\18\82\99ôBÊú°\99\9cía\8bI\eâ]\91µ!\1d\9e%.m\a2&\8e\9dìýÁ-ì\13\13\88\18¾dÓ\1d\92C-\9b4&]ãÑXDÀ"OðNG&MU#1\ 6\97ªÑ\87ÍTc\ f[¬Æ\10ï\8aj\1cé\bWã@Çÿîr@¸\84(k¾ä¹\a\9bó¼\83-{\1eà]ãy@Gàr0бòràËt\97\11\9c.Íì½ÛÃ\8c¯Ý\82Â\r\80`ÝÏÔèarò\12\1d ü\ f¸·¬Eendstream
+endobj
+2605 0 obj <<
+/Type /Page
+/Contents 2606 0 R
+/Resources 2604 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2417 0 R
+>> endobj
+2607 0 obj <<
+/D [2605 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+2608 0 obj <<
+/D [2605 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+2609 0 obj <<
+/D [2605 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+2610 0 obj <<
+/D [2605 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+2611 0 obj <<
+/D [2605 0 R /XYZ 71.731 675.3674 null]
+>> endobj
+2612 0 obj <<
+/D [2605 0 R /XYZ 71.731 674.1221 null]
+>> endobj
+2613 0 obj <<
+/D [2605 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+665 0 obj <<
+/D [2605 0 R /XYZ 71.731 648.6227 null]
+>> endobj
+178 0 obj <<
+/D [2605 0 R /XYZ 385.7203 604.8079 null]
+>> endobj
+2614 0 obj <<
+/D [2605 0 R /XYZ 71.731 581.3192 null]
+>> endobj
+2615 0 obj <<
+/D [2605 0 R /XYZ 161.0655 571.9312 null]
+>> endobj
+2616 0 obj <<
+/D [2605 0 R /XYZ 71.731 559.8118 null]
+>> endobj
+2617 0 obj <<
+/D [2605 0 R /XYZ 71.731 528.4459 null]
+>> endobj
+2618 0 obj <<
+/D [2605 0 R /XYZ 168.8063 517.4356 null]
+>> endobj
+2619 0 obj <<
+/D [2605 0 R /XYZ 71.731 490.3722 null]
+>> endobj
+2620 0 obj <<
+/D [2605 0 R /XYZ 71.731 459.0063 null]
+>> endobj
+2621 0 obj <<
+/D [2605 0 R /XYZ 71.731 442.3687 null]
+>> endobj
+2622 0 obj <<
+/D [2605 0 R /XYZ 71.731 411.4327 null]
+>> endobj
+2623 0 obj <<
+/D [2605 0 R /XYZ 181.5683 399.7768 null]
+>> endobj
+2624 0 obj <<
+/D [2605 0 R /XYZ 71.731 389.7146 null]
+>> endobj
+2625 0 obj <<
+/D [2605 0 R /XYZ 71.731 356.2915 null]
+>> endobj
+2626 0 obj <<
+/D [2605 0 R /XYZ 71.731 345.1816 null]
+>> endobj
+2627 0 obj <<
+/D [2605 0 R /XYZ 71.731 343.9363 null]
+>> endobj
+2628 0 obj <<
+/D [2605 0 R /XYZ 129.5143 324.8578 null]
+>> endobj
+2629 0 obj <<
+/D [2605 0 R /XYZ 129.5143 324.8578 null]
+>> endobj
+2630 0 obj <<
+/D [2605 0 R /XYZ 71.731 323.4182 null]
+>> endobj
+2631 0 obj <<
+/D [2605 0 R /XYZ 71.731 323.4182 null]
+>> endobj
+2632 0 obj <<
+/D [2605 0 R /XYZ 139.477 306.925 null]
+>> endobj
+2633 0 obj <<
+/D [2605 0 R /XYZ 139.477 306.925 null]
+>> endobj
+2634 0 obj <<
+/D [2605 0 R /XYZ 76.7123 288.9923 null]
+>> endobj
+2635 0 obj <<
+/D [2605 0 R /XYZ 129.5143 271.0595 null]
+>> endobj
+2636 0 obj <<
+/D [2605 0 R /XYZ 129.5143 271.0595 null]
+>> endobj
+2637 0 obj <<
+/D [2605 0 R /XYZ 71.731 268.9027 null]
+>> endobj
+2638 0 obj <<
+/D [2605 0 R /XYZ 71.731 268.9027 null]
+>> endobj
+2639 0 obj <<
+/D [2605 0 R /XYZ 139.477 253.1268 null]
+>> endobj
+2640 0 obj <<
+/D [2605 0 R /XYZ 71.731 250.9699 null]
+>> endobj
+2641 0 obj <<
+/D [2605 0 R /XYZ 139.477 235.194 null]
+>> endobj
+2642 0 obj <<
+/D [2605 0 R /XYZ 76.7123 217.2613 null]
+>> endobj
+2643 0 obj <<
+/D [2605 0 R /XYZ 129.5143 199.3285 null]
+>> endobj
+2644 0 obj <<
+/D [2605 0 R /XYZ 129.5143 199.3285 null]
+>> endobj
+2645 0 obj <<
+/D [2605 0 R /XYZ 71.731 177.9637 null]
+>> endobj
+2646 0 obj <<
+/D [2605 0 R /XYZ 71.731 166.3523 null]
+>> endobj
+2647 0 obj <<
+/D [2605 0 R /XYZ 71.731 165.1069 null]
+>> endobj
+2648 0 obj <<
+/D [2605 0 R /XYZ 129.5143 146.0284 null]
+>> endobj
+666 0 obj <<
+/D [2605 0 R /XYZ 71.731 139.6075 null]
+>> endobj
+2604 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2651 0 obj <<
+/Length 843       
+/Filter /FlateDecode
+>>
+stream
+xÚ½WÍoÚ0\1c½÷¯È\11¤ÆóGüÕ\e]·iÓ&U\1d·uB)1%\12$UbTí¿\9f\8d\1dp\88\ 3\6q0Q\9eý\9e\9fßÏvP\ 2Í\ f%\1c\ 1NL\83\8câd¹½\81É«yõå\ 6yHê1i\bº\9fß|øL`"\81d\98%óUB$\ 3\94g   '\18\b\8aD2/~M>®ó7­\9ai\8a)\9c`àÚÇM^)ý=\7fq\8f³Ç¯îÏ\ f¥×uÑN\7fÏ¿Ý|\9a\1fø)á@
+CrVä\ 15\94\89Q\82\88fVg7cÈ\0B\îeb@\84\15ÇÅäAm\94V³b\8aà¤hTÛΧ\fNþ¼)+Ë\8c%\83)g\1c\b\fy\92Ú)sÆ÷c=6µ®µépwè!L\ f¶'÷}S\8c\0\91w\8c\9eM8¶½#Ï\90Â|§×·î1w\98\85\1d}Q\16\8bºYTùV\19\14\8a¨K;²PÝ\83j\97Mù¦Ëº:§\8f\98µd8Ô×z    UO\8a{°z\80\1dÍ,E\8a\18`\84³}×'¥wMåQÈ5åʵín¹4#¬v\e\95µ<ßm´Ç×z­\9a÷²uC_3¹ÙfSO1\9d¼«Â\rñToT{í:äŶ¬®¥z\9c":É\eã¾\89·£\b3\8b\90\ 4\94"\9ed\94\ 3\9eI\12Íì\ 1\95\860\97Y\99\98<s\88¬\82áhVÂ3ÆtÀ\8bM\943\84£¼§íQG×k¨\83\88À5d*\8b¢\8côuØ\80FlÃ\19\80\96ÁBîü\92ëf·Ô·'eoû«J\97Ëܦ2Dî\1a5\9c`'\81\10£qc;T\1aÂ\8eÆ"»\ 3ô&ÔÁF\8d5\8b\ fq&£¼ãÆv½\86:úÆ\9a·\19ç}\19\8bÛ\12#îRSe\99ÙmOý-«×Îß\88­[7\9c+ÚÚµ»V\8d§\17\12 )º\14Þ#ê\v=êrt\87¤×$÷DÄHp\ 3\11#»iÄl\84\19ÀæHé»]VÚoTMhÿhb\89`¦"\ 4¹\90Ø\10v&±\aØÅÄÆx¯HlLG`\89OlO\86\vßéñà-+l"\9f!ÄæN0ê\13\13\0
+z©²CØ9\9f:Øe\9f"¼×ø\14Ñ\11ñ)\94ѯÓ\81Uö MMÙHLÍ<)\ 4\ 2Ê,<OÇ\8f\el.a\82b~¡bCØ\99\92=À.Öl\8c÷\8a¢\8dé\bËίaOÇ1d£\17
+_½k_j\8f,A\9c¡\98PÞ]üdïâw_×ú§Îõ¿¾î\1dyb\17½ÿ~«ó´uáõ¼\18yݦfD\82Ó\85÷\97èLØãJ\9eýj\b\8f\ 6³¨\80QD\ e#Yi\84\8f~\ 2D\bÿ\ 2Ü\95õ\ 6endstream
+endobj
+2650 0 obj <<
+/Type /Page
+/Contents 2651 0 R
+/Resources 2649 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2417 0 R
+>> endobj
+2652 0 obj <<
+/D [2650 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+2653 0 obj <<
+/D [2650 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+182 0 obj <<
+/D [2650 0 R /XYZ 274.3201 706.1179 null]
+>> endobj
+2654 0 obj <<
+/D [2650 0 R /XYZ 71.731 682.6291 null]
+>> endobj
+2655 0 obj <<
+/D [2650 0 R /XYZ 161.0655 673.2412 null]
+>> endobj
+2656 0 obj <<
+/D [2650 0 R /XYZ 71.731 661.1217 null]
+>> endobj
+2657 0 obj <<
+/D [2650 0 R /XYZ 71.731 575.2602 null]
+>> endobj
+2658 0 obj <<
+/D [2650 0 R /XYZ 71.731 544.3242 null]
+>> endobj
+2659 0 obj <<
+/D [2650 0 R /XYZ 181.5683 532.6683 null]
+>> endobj
+2660 0 obj <<
+/D [2650 0 R /XYZ 71.731 522.6062 null]
+>> endobj
+2661 0 obj <<
+/D [2650 0 R /XYZ 71.731 491.0346 null]
+>> endobj
+2662 0 obj <<
+/D [2650 0 R /XYZ 71.731 478.0732 null]
+>> endobj
+2663 0 obj <<
+/D [2650 0 R /XYZ 71.731 476.8278 null]
+>> endobj
+2664 0 obj <<
+/D [2650 0 R /XYZ 129.5143 457.7493 null]
+>> endobj
+2665 0 obj <<
+/D [2650 0 R /XYZ 129.5143 457.7493 null]
+>> endobj
+2666 0 obj <<
+/D [2650 0 R /XYZ 71.731 456.3097 null]
+>> endobj
+2667 0 obj <<
+/D [2650 0 R /XYZ 71.731 456.3097 null]
+>> endobj
+2668 0 obj <<
+/D [2650 0 R /XYZ 139.477 439.8165 null]
+>> endobj
+2669 0 obj <<
+/D [2650 0 R /XYZ 139.477 439.8165 null]
+>> endobj
+2670 0 obj <<
+/D [2650 0 R /XYZ 76.7123 421.8838 null]
+>> endobj
+2671 0 obj <<
+/D [2650 0 R /XYZ 129.5143 403.951 null]
+>> endobj
+2672 0 obj <<
+/D [2650 0 R /XYZ 129.5143 403.951 null]
+>> endobj
+2673 0 obj <<
+/D [2650 0 R /XYZ 71.731 401.7942 null]
+>> endobj
+2674 0 obj <<
+/D [2650 0 R /XYZ 71.731 401.7942 null]
+>> endobj
+2675 0 obj <<
+/D [2650 0 R /XYZ 139.477 386.0183 null]
+>> endobj
+2676 0 obj <<
+/D [2650 0 R /XYZ 71.731 383.8615 null]
+>> endobj
+2677 0 obj <<
+/D [2650 0 R /XYZ 139.477 368.0855 null]
+>> endobj
+2678 0 obj <<
+/D [2650 0 R /XYZ 71.731 330.2275 null]
+>> endobj
+2679 0 obj <<
+/D [2650 0 R /XYZ 71.731 317.1765 null]
+>> endobj
+2680 0 obj <<
+/D [2650 0 R /XYZ 71.731 315.9312 null]
+>> endobj
+2681 0 obj <<
+/D [2650 0 R /XYZ 129.5143 296.8527 null]
+>> endobj
+667 0 obj <<
+/D [2650 0 R /XYZ 71.731 290.4318 null]
+>> endobj
+186 0 obj <<
+/D [2650 0 R /XYZ 247.7568 246.617 null]
+>> endobj
+2682 0 obj <<
+/D [2650 0 R /XYZ 71.731 226.4767 null]
+>> endobj
+2683 0 obj <<
+/D [2650 0 R /XYZ 161.0655 213.7403 null]
+>> endobj
+2684 0 obj <<
+/D [2650 0 R /XYZ 71.731 201.6208 null]
+>> endobj
+2685 0 obj <<
+/D [2650 0 R /XYZ 71.731 170.5912 null]
+>> endobj
+2686 0 obj <<
+/D [2650 0 R /XYZ 168.8063 159.2447 null]
+>> endobj
+2687 0 obj <<
+/D [2650 0 R /XYZ 71.731 132.1812 null]
+>> endobj
+2649 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2690 0 obj <<
+/Length 999       
+/Filter /FlateDecode
+>>
+stream
+xÚíWKo¬6\14ÞçW°\9c\91\82\8bm\8c!»ÜÜ&JÕFQ4R\17M\15\93Ae`ÄCQÿ}\8f±ÍÓ3Ì®]T³°\19¾ãóù¼Á\8e\a?ìp\8c8\85\85D\88\ 4\8c8ÉñÆs>áÕÓ\rÖ\10WcÜ1èÛîæ§Gê9\11\8a\ 2\128»½C£\01î;\9c\12\142\1c:»ô\8fÍÃ!>5¢Úº\84y\e\82Ôú\9aÇ\85h~\8d\7f¨Çû×gµùM4\872­·\7fî~¹ùy×ëg\94£(\ 4%\17Iö¨%M\129!Ð\f|I\13Ã[\86}êp/DÔ§¼ãùû\16\13`òöòüòt§Øì\ eY­v_Y\9e«]\12·µPÛæ 7©ÈE\93\95\85z*÷j\8d\8dHQ¦B\9f\93\15\9cü£,\eµ«\9b¸\11H^\1d®ãâ\0\ 5\94\a\1dµ7Ñ´U¡\ 5°>Ik©Û$\11u½oó[õÇ~\8bAw\9b7\1a_\ 2Íê+«ÕÑ\9d)\ 6\8f¹zëJ\8fñ@Yâ>ÏË-a\9b/\91ª#ÞÊ\Ôw½ø`I#M0
+p\18uÒqz\84[^©êu\8bÙ&®â£\80\10Q*Æ~Ç\18<Å0wXHQ\84=jõ{\8frÇ0ãw\88  îáÎï\8bÓ$\85wBØB/!\10\18\98XõÎ×\81\87\91Zò ¡-þ&<â¶9XÌF|äI\r\12rg\ 2¥j\93æv\96:R^\14M\96ÄC(*d[\89å\ 5\r\85\80\81} Î¬\865(w\f\e\f\8beM\98\ÈÀÎ\1a\16\9cï\11?²ê=oX#µä15,\8d\90Ïù\94Æ=ØE\95\15\8bu\19d\99\ f\15kn߬ø4öµ\98õ¨\8eS\99\ªUV\85³ÑK=\841ÁkÑ;\82]\8a^\ 3[\8f^\8bÞk¢wÎãLô\8ey\14\90ÂWGï`ÝoÓê×\15?\97BVðy¥Ð5ð|\89ðy\80BxZ1ò\18vÁÈ=lÕÈ6½W\18ÙÆc°[oä       \8f¬0Y\7f¶  h\1f\0?\8e\bf\9dÇ\Æ\11\ f©Lc\ f\11ÊT^\10ä{²\eópó]ö/ñP\16ûÇ,\17\8fÕ\16\1aay|\81¶õ¤öíÉâ[\9f£\90x|VЫ²)\9b¿OâÚv1×môJ\9dÝÝÞ=æÉÚ¦o\9e\0òãÝóH.>²ôvè°²\93|J1øû£¬>dD\82,¾¶\15}\17uRe'\99å\97¸S\18q\ 22æ®ûlÜó\93ì>ÛjT0\14\9fá\8a³ù¡>\89$\93\18Óp'÷Ñ#Óó~&5\ 1éx¨Í+\9dUyVü%ç\ 11«Vý!sºfú\0\ f±@7È\8e|oiµ\8aª*+sóJ\1fVu9*Òÿ\87\18k\85ÂA 7þJ\85\1aÃ.T¨\1e¶Z¡lz¯¨P\v\1eö60áñï\f\ f¥ëøÊ\103\86]\18bzØê\10cÓ{Å\10³àa\1db&4þ\ 3C\f´zÄ\19%kÑ;\82]\8a^\ 3[\8f^\8bÞk¢wÎãLô\8eyt½e\9fu\9dÅbç\80CËä³8\1ezòÃZåÏRé\83®ÎWóëê\ flðy\88\83èâ7ø\b³ü\ 4g$\84T\8b¢þ$I\95\86g?¨-
+ÿ\ 1Á\8aÈ\85endstream
+endobj
+2689 0 obj <<
+/Type /Page
+/Contents 2690 0 R
+/Resources 2688 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2735 0 R
+>> endobj
+2691 0 obj <<
+/D [2689 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+2692 0 obj <<
+/D [2689 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+2693 0 obj <<
+/D [2689 0 R /XYZ 71.731 670.4852 null]
+>> endobj
+2694 0 obj <<
+/D [2689 0 R /XYZ 181.5683 658.8294 null]
+>> endobj
+2695 0 obj <<
+/D [2689 0 R /XYZ 71.731 648.7672 null]
+>> endobj
+2696 0 obj <<
+/D [2689 0 R /XYZ 71.731 617.1956 null]
+>> endobj
+2697 0 obj <<
+/D [2689 0 R /XYZ 71.731 604.2342 null]
+>> endobj
+2698 0 obj <<
+/D [2689 0 R /XYZ 71.731 602.9889 null]
+>> endobj
+2699 0 obj <<
+/D [2689 0 R /XYZ 129.5143 583.9103 null]
+>> endobj
+2700 0 obj <<
+/D [2689 0 R /XYZ 129.5143 583.9103 null]
+>> endobj
+2701 0 obj <<
+/D [2689 0 R /XYZ 71.731 582.4708 null]
+>> endobj
+2702 0 obj <<
+/D [2689 0 R /XYZ 71.731 582.4708 null]
+>> endobj
+2703 0 obj <<
+/D [2689 0 R /XYZ 139.477 565.9776 null]
+>> endobj
+2704 0 obj <<
+/D [2689 0 R /XYZ 139.477 565.9776 null]
+>> endobj
+2705 0 obj <<
+/D [2689 0 R /XYZ 76.7123 548.0448 null]
+>> endobj
+2706 0 obj <<
+/D [2689 0 R /XYZ 129.5143 530.1121 null]
+>> endobj
+2707 0 obj <<
+/D [2689 0 R /XYZ 129.5143 530.1121 null]
+>> endobj
+2708 0 obj <<
+/D [2689 0 R /XYZ 71.731 508.03 null]
+>> endobj
+2709 0 obj <<
+/D [2689 0 R /XYZ 71.731 497.1358 null]
+>> endobj
+2710 0 obj <<
+/D [2689 0 R /XYZ 71.731 495.8905 null]
+>> endobj
+2711 0 obj <<
+/D [2689 0 R /XYZ 129.5143 476.8119 null]
+>> endobj
+768 0 obj <<
+/D [2689 0 R /XYZ 71.731 470.3911 null]
+>> endobj
+190 0 obj <<
+/D [2689 0 R /XYZ 372.3613 426.5763 null]
+>> endobj
+2712 0 obj <<
+/D [2689 0 R /XYZ 71.731 403.0875 null]
+>> endobj
+2713 0 obj <<
+/D [2689 0 R /XYZ 161.0655 393.6996 null]
+>> endobj
+2714 0 obj <<
+/D [2689 0 R /XYZ 71.731 381.5801 null]
+>> endobj
+2715 0 obj <<
+/D [2689 0 R /XYZ 71.731 350.2143 null]
+>> endobj
+2716 0 obj <<
+/D [2689 0 R /XYZ 168.8063 339.204 null]
+>> endobj
+2717 0 obj <<
+/D [2689 0 R /XYZ 71.731 312.1405 null]
+>> endobj
+2718 0 obj <<
+/D [2689 0 R /XYZ 71.731 284.7079 null]
+>> endobj
+2719 0 obj <<
+/D [2689 0 R /XYZ 71.731 253.1263 null]
+>> endobj
+2720 0 obj <<
+/D [2689 0 R /XYZ 181.5683 241.4705 null]
+>> endobj
+2721 0 obj <<
+/D [2689 0 R /XYZ 71.731 231.4083 null]
+>> endobj
+2722 0 obj <<
+/D [2689 0 R /XYZ 71.731 199.8367 null]
+>> endobj
+2723 0 obj <<
+/D [2689 0 R /XYZ 71.731 186.8753 null]
+>> endobj
+2724 0 obj <<
+/D [2689 0 R /XYZ 71.731 185.63 null]
+>> endobj
+2725 0 obj <<
+/D [2689 0 R /XYZ 129.5143 166.5514 null]
+>> endobj
+2726 0 obj <<
+/D [2689 0 R /XYZ 129.5143 166.5514 null]
+>> endobj
+2727 0 obj <<
+/D [2689 0 R /XYZ 71.731 165.1119 null]
+>> endobj
+2728 0 obj <<
+/D [2689 0 R /XYZ 71.731 165.1119 null]
+>> endobj
+2729 0 obj <<
+/D [2689 0 R /XYZ 139.477 148.6187 null]
+>> endobj
+2730 0 obj <<
+/D [2689 0 R /XYZ 139.477 148.6187 null]
+>> endobj
+2731 0 obj <<
+/D [2689 0 R /XYZ 76.7123 130.6859 null]
+>> endobj
+2732 0 obj <<
+/D [2689 0 R /XYZ 129.5143 112.7532 null]
+>> endobj
+2733 0 obj <<
+/D [2689 0 R /XYZ 129.5143 112.7532 null]
+>> endobj
+2734 0 obj <<
+/D [2689 0 R /XYZ 71.731 110.5963 null]
+>> endobj
+2688 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2738 0 obj <<
+/Length 1114      
+/Filter /FlateDecode
+>>
+stream
+xÚ¥X[\8f£6\14~\9f_Ác"5®/ø¼Mg;ÕVm5Zåm§\1aÑÄ\99 \12H¹hµÿ¾\al\88\ 1\aP«}À\93ýìó\9d\8fs3$Àð\8f\ 4\92 ÉàA#D\ 5§Ááò\80\83\ fø¯_\1e\88\85ì,fç\82~Ú?üøÂp\10¡HP\11ìO\ 1\8b\ 4â2\f$£Hq¢\82ýñëæù\1c_+]lw\94ã\rEæù\9aÆ\99®~\8bÿ2\7f>½~6\8bßuuÎ\8fåöÏý¯\ f?ï{û\9cI\14)02K2$
+\85\f\8eb\14Q½(B"Ä9\91à\fV\88\85LöÎÐ(\0;\12\93Æ\99\1e×Ã\1aoÞ(åcv\84R\0\10\1a¸\avvÇÏ\e\8f\94\aS\81\ 2QEØò\0\979  Ù\90G\96\1fõG\91××÷äø\9e\17ïY|Ñ\r¯Ö\89Û\e!\ 4#¬dc´ÙõhTN²Ê,rûZʪH²\8f©_Ö²\880
+       \bëÕ³Cí\ØMOÒ\ 4\8eëG\ f»«'\84\ f¦aäµ{_Ïn\97\97\87#       \8bP(å\90\ 6\83\91â\ f\10Ö¬Zy­`G\9d\eÆ\14\ 2ù®J\92ÂÁ\8a.©äÀæTê`Ë*yì®QÉÃã\92\84É\9cP]\18\82!8\8b\97c¤pÄÛ\ 3¾èª.²òqâK\97k\ 2\13DCØ6\9f¹.l&s{Øbæúì®È\\1f\ fGÃþ]º<n¡Flp\9dl\12Ö\87\83.ËS\9dÚD\ 6~\12A\19kËÀ\8eK$\153\82RÆE{\18¼\1cÒ\94T©6\9ftª+ý\9c\97$Õ/Å\96B~_Ú·4­\v¡D\8abP²©ÔR\98\9aòZäU^}¿êÇ~Ç­\fÙ½;J\90 ÊdÍؤ5×zó\869\8eëêl}=\0è½I TCŲ?6EÌÖ¯s^VMðÀ6âá»ëÌ»|?éòP$×*ɳ9Æ\f\9a\92 .ãÒ\98\8f{j\r±\8fº\88\9b£:ú\rU³>\81cfU\9díOåU\1fL=8Þ\±½íói\ 4ÎzQ\92²ûÅ\16à4ÉþÞ\12¼é\8e©òÑÞ\19\88æ©\8b"/ÚΠQ
\82\ 4\17&ââÂ\1eV´é§\8f¨G       $\98\14nn.\84¦5zjHÇuZY|\ e\84\8boI©ÑÚ\97÷\94¦ù\96òÍ·Îõ/yªËµ\91\17\1f/I¶ÖÔë\96p\10\ 1¢\væ\90\99âC¡#D*T\vÅÇ\85Í\14\9f\1e¶X||vW\14\9f      \ fÿØ0àÑd¤G6\1a"<\9a\11 Ö×\87®RõóY³¿i\85\a'\1a\r².ôÝÎH%C\98/5F\a\17;Ôb[ô\18\15Ç$\86\9aÚ¦èrx\ 2EÌÔêÑ\95C~\850\10\8f\95½uÑ'\8f \17sÜ  Ô¥¾\1f·0\1d\13%\96Æ]\176\17·\1dl9n=v×Äí\98Ç\9d¸uy´íã\94´Íã³\90\9e\8aü¼Tágç»^\18XÀD³X\1e\1cØ\9cÌ\1dlYf\8fÝ52\8f\91ÙåáiȾK\ 5\ e\91Ä\92ý¿K\ 5\85¡\88Á\8c³P\14n¨¹¢`QËEajtMQ\98\92\98NÊ.\aßubÕ\1d\82(\86\98RlA\15\176#K\ f[ÔÅgw\850>\1eSe\ 64\ 6Õï¥NÓïfùO\1d§\83\89Ê\rÀÿz\9d \84"Âa\80\9eOY\176\93²=l1e}vW¤¬\8f\87ç:1à±ò:áÒ´\1fsB\85\14\11Ñì÷\1e\a3ýÜé\82±!\8aú\93\1a>,ºûñÆcð_¾ù3ëendstream
+endobj
+2737 0 obj <<
+/Type /Page
+/Contents 2738 0 R
+/Resources 2736 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2735 0 R
+>> endobj
+2739 0 obj <<
+/D [2737 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+2740 0 obj <<
+/D [2737 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+2741 0 obj <<
+/D [2737 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+2742 0 obj <<
+/D [2737 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+2743 0 obj <<
+/D [2737 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+2744 0 obj <<
+/D [2737 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+2745 0 obj <<
+/D [2737 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+2746 0 obj <<
+/D [2737 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+2747 0 obj <<
+/D [2737 0 R /XYZ 71.731 634.6202 null]
+>> endobj
+2748 0 obj <<
+/D [2737 0 R /XYZ 71.731 621.5692 null]
+>> endobj
+2749 0 obj <<
+/D [2737 0 R /XYZ 71.731 620.3239 null]
+>> endobj
+2750 0 obj <<
+/D [2737 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+769 0 obj <<
+/D [2737 0 R /XYZ 71.731 594.8244 null]
+>> endobj
+194 0 obj <<
+/D [2737 0 R /XYZ 321.0597 551.0097 null]
+>> endobj
+2751 0 obj <<
+/D [2737 0 R /XYZ 71.731 530.8693 null]
+>> endobj
+2752 0 obj <<
+/D [2737 0 R /XYZ 161.0655 518.133 null]
+>> endobj
+2753 0 obj <<
+/D [2737 0 R /XYZ 71.731 506.0135 null]
+>> endobj
+2754 0 obj <<
+/D [2737 0 R /XYZ 71.731 474.9839 null]
+>> endobj
+2755 0 obj <<
+/D [2737 0 R /XYZ 168.8063 463.6373 null]
+>> endobj
+2756 0 obj <<
+/D [2737 0 R /XYZ 71.731 436.5739 null]
+>> endobj
+2757 0 obj <<
+/D [2737 0 R /XYZ 71.731 410.3473 null]
+>> endobj
+2758 0 obj <<
+/D [2737 0 R /XYZ 71.731 377.5597 null]
+>> endobj
+2759 0 obj <<
+/D [2737 0 R /XYZ 181.5683 365.9038 null]
+>> endobj
+2760 0 obj <<
+/D [2737 0 R /XYZ 71.731 355.8417 null]
+>> endobj
+2761 0 obj <<
+/D [2737 0 R /XYZ 71.731 324.2701 null]
+>> endobj
+2762 0 obj <<
+/D [2737 0 R /XYZ 71.731 311.3087 null]
+>> endobj
+2763 0 obj <<
+/D [2737 0 R /XYZ 71.731 310.0633 null]
+>> endobj
+2764 0 obj <<
+/D [2737 0 R /XYZ 129.5143 290.9848 null]
+>> endobj
+2765 0 obj <<
+/D [2737 0 R /XYZ 129.5143 290.9848 null]
+>> endobj
+2766 0 obj <<
+/D [2737 0 R /XYZ 71.731 289.5452 null]
+>> endobj
+2767 0 obj <<
+/D [2737 0 R /XYZ 71.731 289.5452 null]
+>> endobj
+2768 0 obj <<
+/D [2737 0 R /XYZ 139.477 273.052 null]
+>> endobj
+2769 0 obj <<
+/D [2737 0 R /XYZ 139.477 273.052 null]
+>> endobj
+2770 0 obj <<
+/D [2737 0 R /XYZ 76.7123 255.1193 null]
+>> endobj
+2771 0 obj <<
+/D [2737 0 R /XYZ 129.5143 237.1865 null]
+>> endobj
+2772 0 obj <<
+/D [2737 0 R /XYZ 129.5143 237.1865 null]
+>> endobj
+2773 0 obj <<
+/D [2737 0 R /XYZ 71.731 235.0297 null]
+>> endobj
+2774 0 obj <<
+/D [2737 0 R /XYZ 129.5143 219.2538 null]
+>> endobj
+2775 0 obj <<
+/D [2737 0 R /XYZ 129.5143 219.2538 null]
+>> endobj
+2776 0 obj <<
+/D [2737 0 R /XYZ 71.731 217.097 null]
+>> endobj
+2777 0 obj <<
+/D [2737 0 R /XYZ 71.731 217.097 null]
+>> endobj
+2778 0 obj <<
+/D [2737 0 R /XYZ 139.477 201.321 null]
+>> endobj
+2779 0 obj <<
+/D [2737 0 R /XYZ 71.731 199.8815 null]
+>> endobj
+2780 0 obj <<
+/D [2737 0 R /XYZ 139.477 183.3883 null]
+>> endobj
+2781 0 obj <<
+/D [2737 0 R /XYZ 71.731 145.5303 null]
+>> endobj
+2782 0 obj <<
+/D [2737 0 R /XYZ 71.731 132.4793 null]
+>> endobj
+2783 0 obj <<
+/D [2737 0 R /XYZ 71.731 131.2339 null]
+>> endobj
+2784 0 obj <<
+/D [2737 0 R /XYZ 129.5143 112.1554 null]
+>> endobj
+770 0 obj <<
+/D [2737 0 R /XYZ 71.731 105.7345 null]
+>> endobj
+2736 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2787 0 obj <<
+/Length 891       
+/Filter /FlateDecode
+>>
+stream
+xÚµVÉnÛ0\10½û+t´\81\88å"\92RniÒ\14iÚÂ\b|k\8a@\91è\98¨,¹Z\10øïK\8a¤,[òrh`À$¡\99yo\16\ e\ayPý\90Ç\11àD-8\ 2\98Qì%ë   ôÞÔ§¯\13dE|+ã÷\85>/&\9fî      ô"\101̼ÅÒ#\11\ 3\94\a\1e'\18\84\14\85Þ"ý5½]Å\9bZ\943\1fS8ÅÀ¬ó,ÎEý=~5Ç\9bù\83Ùü\10õªH«ÙïÅ·É\97E\87O        \aQ¨@N\92ì¤\8641ò\10\a\18Ñ@ót\1eC
+xÀyK\13\83 %ÇÃé\9dÈD-n\8b|y/3¡¹(\ 3QÏÏ\80\83\10CîùÚOÎ\8c\81yYÔE½Ý\88ëN#T\1a¬E´º>F\80¡0j\15\ e`Zÿ\9f!\85qS¯®Ì1Q\1f_\9e\99x\91©ú\88FØøÎx\9fÍ\9d¨\92RnjYä\97òy\12uSæ\95A\8e\96e¼5ÛbiÖª.\9b¤®:\86u,s\99¿\99s*Ô1sF^\8b¦6Û¼HE§¡=zkÊX³s~k\1f+[\1d\ fË1÷­Qi×j#\12©?\8aÔF«È³­öUU\83\8f\94c\94\91Ö±z%\ 6*ç¹\98ûÌ2³{µFþ6¢\94"\ 5\97fâ&Ë\8a\19¦Ów\aúT(ë\97&%N×2¿\14j>CTe,^«º*\rDÿ\16!\14\ 1J\11WõË\ 1\81A0z\8b:)¿/fnQä©\eÆ!Ò\f\86Ö4\85g\8cé\0\17c@\ 2\84Gq\ f×\1d\ f§5äAÂ^Ô\90ºë\14\ 5d\9f\87¾D#aÃ\ 1\80\1aA\8b\÷Ëùê \11i}\91×2é\15\86\91lJ1tÐQ \11 \1c±ñÀ:)¿/¶\v,Ò=iÏ!'v4°*ù\10\aÑ(îñÀ:­!\8fýÀ\92\bèî¸GãFÅÅ4é\91èR\ 6X úÿa|Uwpñ\1d   ëÚ\98k÷uaÖ¦\12Ç«\17\13@!C窷'vªz\9dØùê\1dÁ½¤z\ fy\1c©Þ>\8f¶ñ-eÛöFâÌ8\b ?¨c\99»"¾=ÞÕ¬hªsÐ6²m\98¾¾:,:xÑì\83\8f\10\ e\ 1\86ìL"zR'òà¤Î¦a\ 4ô\82,\8c\90ØųKB\9fÄ.\9eÈFͽ\7fM\92\88ªZ6\99MÍÞláS\ exHÔ-§Ê\16¡ÌM\17doºxÔ­Zè¿í\a\ f\18\8fúñ±Hc3Æ\9f\19\82öûÇÌ\18D\r\85\f÷)¹ñ`@`Æè\14¸'\9c @CÛv~\16¹ß>\85VuÝ\r%úÍ·\93\876mÛÈJH;q\9a·7\1f@U\1d\ eR]\8bp6\9c\81\8eæÝFn©­ÅMæf¡BÁ\96ï²\12ÿc6è×¾\9dW\83\10¨xD'\aô\9eÌp>§8TÏ_\14u\964\87\0\1e\9d¶G\0ÿ\ 1\ e\9eendstream
+endobj
+2786 0 obj <<
+/Type /Page
+/Contents 2787 0 R
+/Resources 2785 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2735 0 R
+>> endobj
+2788 0 obj <<
+/D [2786 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+2789 0 obj <<
+/D [2786 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+198 0 obj <<
+/D [2786 0 R /XYZ 235.3273 705.7477 null]
+>> endobj
+2790 0 obj <<
+/D [2786 0 R /XYZ 71.731 685.6073 null]
+>> endobj
+2791 0 obj <<
+/D [2786 0 R /XYZ 161.0655 672.871 null]
+>> endobj
+2792 0 obj <<
+/D [2786 0 R /XYZ 71.731 660.7515 null]
+>> endobj
+2793 0 obj <<
+/D [2786 0 R /XYZ 71.731 629.7219 null]
+>> endobj
+2794 0 obj <<
+/D [2786 0 R /XYZ 168.8063 618.3754 null]
+>> endobj
+2795 0 obj <<
+/D [2786 0 R /XYZ 71.731 606.2559 null]
+>> endobj
+2796 0 obj <<
+/D [2786 0 R /XYZ 71.731 563.2337 null]
+>> endobj
+2797 0 obj <<
+/D [2786 0 R /XYZ 181.5683 552.2234 null]
+>> endobj
+2798 0 obj <<
+/D [2786 0 R /XYZ 71.731 542.1612 null]
+>> endobj
+2799 0 obj <<
+/D [2786 0 R /XYZ 71.731 510.5896 null]
+>> endobj
+2800 0 obj <<
+/D [2786 0 R /XYZ 71.731 497.6282 null]
+>> endobj
+2801 0 obj <<
+/D [2786 0 R /XYZ 71.731 496.3829 null]
+>> endobj
+2802 0 obj <<
+/D [2786 0 R /XYZ 129.5143 477.3044 null]
+>> endobj
+2803 0 obj <<
+/D [2786 0 R /XYZ 129.5143 477.3044 null]
+>> endobj
+2804 0 obj <<
+/D [2786 0 R /XYZ 71.731 475.8648 null]
+>> endobj
+2805 0 obj <<
+/D [2786 0 R /XYZ 71.731 475.8648 null]
+>> endobj
+2806 0 obj <<
+/D [2786 0 R /XYZ 139.477 459.3716 null]
+>> endobj
+2807 0 obj <<
+/D [2786 0 R /XYZ 139.477 459.3716 null]
+>> endobj
+2808 0 obj <<
+/D [2786 0 R /XYZ 76.7123 441.4389 null]
+>> endobj
+2809 0 obj <<
+/D [2786 0 R /XYZ 129.5143 423.5061 null]
+>> endobj
+2810 0 obj <<
+/D [2786 0 R /XYZ 129.5143 423.5061 null]
+>> endobj
+2811 0 obj <<
+/D [2786 0 R /XYZ 71.731 401.424 null]
+>> endobj
+2812 0 obj <<
+/D [2786 0 R /XYZ 71.731 390.5299 null]
+>> endobj
+2813 0 obj <<
+/D [2786 0 R /XYZ 71.731 389.2845 null]
+>> endobj
+2814 0 obj <<
+/D [2786 0 R /XYZ 129.5143 370.206 null]
+>> endobj
+771 0 obj <<
+/D [2786 0 R /XYZ 71.731 363.7851 null]
+>> endobj
+202 0 obj <<
+/D [2786 0 R /XYZ 197.5229 319.9704 null]
+>> endobj
+2815 0 obj <<
+/D [2786 0 R /XYZ 71.731 296.4816 null]
+>> endobj
+2816 0 obj <<
+/D [2786 0 R /XYZ 161.0655 287.0937 null]
+>> endobj
+2817 0 obj <<
+/D [2786 0 R /XYZ 71.731 274.9742 null]
+>> endobj
+2818 0 obj <<
+/D [2786 0 R /XYZ 71.731 243.6083 null]
+>> endobj
+2819 0 obj <<
+/D [2786 0 R /XYZ 168.8063 232.598 null]
+>> endobj
+2820 0 obj <<
+/D [2786 0 R /XYZ 71.731 205.5346 null]
+>> endobj
+2821 0 obj <<
+/D [2786 0 R /XYZ 71.731 174.1687 null]
+>> endobj
+2822 0 obj <<
+/D [2786 0 R /XYZ 71.731 157.5311 null]
+>> endobj
+2823 0 obj <<
+/D [2786 0 R /XYZ 71.731 126.5951 null]
+>> endobj
+2824 0 obj <<
+/D [2786 0 R /XYZ 181.5683 114.9392 null]
+>> endobj
+2785 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2827 0 obj <<
+/Length 941       
+/Filter /FlateDecode
+>>
+stream
+xÚÍWÉnÛ0\10½ç+t´\81\8aåp\95rK· ]\82 0ÐCS\14ª-×B\15;°d\ 4ùû\ eMj³hI\87\ 2-r\10\1d=rÞ<>\ eG\10\83@\ 3Ñ\1c\1f,&LI\16,\1f/hð\v_]_\80\83\84\ e\13¶Ao\16\17¯?p\1aÄ$VL\ 5\8buÀcE¤\16\81æ\8cD\12¢`±ú6{»I\9eÊt?\ f\99¤3Fìó.O¶iù9ùi\7f^ÝÝØÁ\97´ÜìVÅüûâãÅûE\1d_rMâ\b\83\f\92¬Q}\9a,\ e"¤©\84¡  øV\82à\81¦\11á\82ë#Ïdõ\98m_Y\1aO\99\e\94érã\86\87\ 2\93@^ÇÅ\9a\9cC7\fMÎZÙµîæ gÉ>yL1óâò4\1d\0$ A\aJJB\ 5WÞtjTØ\86Ué`ª\9aÂ1\9dÞj\86Â\ 3\17\97\17\987îé³áQÍêóà\91\ e\8fäPn<²1A¨\89\97Và¢Ü\1f\96å«\13G\98ùé¶Ì\96I\99í¶mäa\9fö\13¬( \15\0\17¶B\85mX#,\18«w\12ª`g\85ÅͧLÄÞ¸ç\85­fõyt\85å1\11Zwi\¡.ö´xÔ\95\8a(\81\añTßlû«Ò×#ë£]Î\1a\7fW»þ¼{)\10&$\1fso\v6äÞ
+6î^OÜ)î=åqƽm\1e¿Ó\97\1f\99Oa. °\88u\15ζ\95}?Í\99\9c¥¦
+¼¸W+£ö\ 3¥ÌV\91 \14xHbÜÌNá¸OÑÖÛ\81\8a!\ 5J'Î\14ÀFó6l@ó\1a6ª¹/î\ 4Í}<\1a\11kÍ;<\1a\15Ái·v\ 6>,\97iQ¬\ f¹Û\10䧠   \ 3yÜÀPj¢#\8e§ZR¸´å\87\11\9d££Ù»4ÇrüÉl\8aÝ\99Å\ÑÙËSêÙ^ä\131ªOªú~WîJ\9cpYÏhüS]\ 3\f\88\82(>N¨"²&bd#\1eóy \92\9aòæ²Ýâu\81ÿ\82©\97Ì»´Xî³'s~\87\b\93\15k\13*\eµ\8fßs \1d«\9a\fÉÑ£\14g\ 3\91\11X-¿Î\81a帿½¹½v\8e_l2·Ús\96çv´LLÑ°KmÜ`e\ 2×\85fç64©¦´8\14]HY\aèÐ\ 2,p\«ö\99\19±\8c\13ym"%\87¼¬â ÅýsVØ¥§È~\95ç;³£Ï©+\95÷»<-¦ZâØeüí6\82á1Ð2\16#E¡\r\e(
+5l´(øâN(
+=\1eþBÜáñoÚ\b\88\ 3J\8d´\11mØ@\eQÃFÛ\b_Ü  mD\8f\87·\8dèÐø\ fÚ\bP\1c#\ 2\8c¸·\r\epo\r\eu¯/î\ 4÷öxøÝÛáaJûd÷6êöº\88ÒÝVX&pu}Z/F»\aì\1e\89R£J7¨!¡\1dj\ç~Ð)2÷Ix\1a\876\89\89}C\9b£û¬\15\11Á;.\1eüòmaú\1f¾\92\93q\¯dø\b\19ë ø\aÀ»\85{endstream
+endobj
+2826 0 obj <<
+/Type /Page
+/Contents 2827 0 R
+/Resources 2825 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2735 0 R
+>> endobj
+2828 0 obj <<
+/D [2826 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+2829 0 obj <<
+/D [2826 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+2830 0 obj <<
+/D [2826 0 R /XYZ 71.731 675.3674 null]
+>> endobj
+2831 0 obj <<
+/D [2826 0 R /XYZ 71.731 674.1221 null]
+>> endobj
+2832 0 obj <<
+/D [2826 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+2833 0 obj <<
+/D [2826 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+2834 0 obj <<
+/D [2826 0 R /XYZ 71.731 653.604 null]
+>> endobj
+2835 0 obj <<
+/D [2826 0 R /XYZ 71.731 653.604 null]
+>> endobj
+2836 0 obj <<
+/D [2826 0 R /XYZ 139.477 637.1108 null]
+>> endobj
+2837 0 obj <<
+/D [2826 0 R /XYZ 139.477 637.1108 null]
+>> endobj
+2838 0 obj <<
+/D [2826 0 R /XYZ 76.7123 619.1781 null]
+>> endobj
+2839 0 obj <<
+/D [2826 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+2840 0 obj <<
+/D [2826 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+2841 0 obj <<
+/D [2826 0 R /XYZ 71.731 579.1632 null]
+>> endobj
+2842 0 obj <<
+/D [2826 0 R /XYZ 71.731 568.2691 null]
+>> endobj
+2843 0 obj <<
+/D [2826 0 R /XYZ 71.731 567.0237 null]
+>> endobj
+2844 0 obj <<
+/D [2826 0 R /XYZ 129.5143 547.9452 null]
+>> endobj
+772 0 obj <<
+/D [2826 0 R /XYZ 71.731 541.5243 null]
+>> endobj
+206 0 obj <<
+/D [2826 0 R /XYZ 236.6705 497.7096 null]
+>> endobj
+2845 0 obj <<
+/D [2826 0 R /XYZ 71.731 474.2208 null]
+>> endobj
+2846 0 obj <<
+/D [2826 0 R /XYZ 161.0655 464.8329 null]
+>> endobj
+2847 0 obj <<
+/D [2826 0 R /XYZ 71.731 452.7134 null]
+>> endobj
+2848 0 obj <<
+/D [2826 0 R /XYZ 71.731 421.3475 null]
+>> endobj
+2849 0 obj <<
+/D [2826 0 R /XYZ 168.8063 410.3372 null]
+>> endobj
+2850 0 obj <<
+/D [2826 0 R /XYZ 71.731 383.2738 null]
+>> endobj
+2851 0 obj <<
+/D [2826 0 R /XYZ 71.731 351.9079 null]
+>> endobj
+2852 0 obj <<
+/D [2826 0 R /XYZ 71.731 335.2703 null]
+>> endobj
+2853 0 obj <<
+/D [2826 0 R /XYZ 71.731 304.3343 null]
+>> endobj
+2854 0 obj <<
+/D [2826 0 R /XYZ 181.5683 292.6784 null]
+>> endobj
+2855 0 obj <<
+/D [2826 0 R /XYZ 71.731 282.6163 null]
+>> endobj
+2856 0 obj <<
+/D [2826 0 R /XYZ 71.731 251.0447 null]
+>> endobj
+2857 0 obj <<
+/D [2826 0 R /XYZ 71.731 238.0833 null]
+>> endobj
+2858 0 obj <<
+/D [2826 0 R /XYZ 71.731 236.8379 null]
+>> endobj
+2859 0 obj <<
+/D [2826 0 R /XYZ 129.5143 217.7594 null]
+>> endobj
+2860 0 obj <<
+/D [2826 0 R /XYZ 129.5143 217.7594 null]
+>> endobj
+2861 0 obj <<
+/D [2826 0 R /XYZ 71.731 216.3198 null]
+>> endobj
+2862 0 obj <<
+/D [2826 0 R /XYZ 71.731 216.3198 null]
+>> endobj
+2863 0 obj <<
+/D [2826 0 R /XYZ 139.477 199.8266 null]
+>> endobj
+2864 0 obj <<
+/D [2826 0 R /XYZ 139.477 199.8266 null]
+>> endobj
+2865 0 obj <<
+/D [2826 0 R /XYZ 76.7123 181.8939 null]
+>> endobj
+2866 0 obj <<
+/D [2826 0 R /XYZ 129.5143 163.9611 null]
+>> endobj
+2867 0 obj <<
+/D [2826 0 R /XYZ 129.5143 163.9611 null]
+>> endobj
+2868 0 obj <<
+/D [2826 0 R /XYZ 71.731 141.879 null]
+>> endobj
+2869 0 obj <<
+/D [2826 0 R /XYZ 71.731 130.9849 null]
+>> endobj
+2870 0 obj <<
+/D [2826 0 R /XYZ 71.731 129.7396 null]
+>> endobj
+2871 0 obj <<
+/D [2826 0 R /XYZ 129.5143 110.661 null]
+>> endobj
+773 0 obj <<
+/D [2826 0 R /XYZ 71.731 104.2401 null]
+>> endobj
+2825 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2874 0 obj <<
+/Length 830       
+/Filter /FlateDecode
+>>
+stream
+xÚÅV]o\9b0\14}ϯà1HÅó\a¶qß²u«:­UTEÚÃ:M\8c8    \1a\81\b\1cEû÷³cC @\92\87MS¥\18ʽ÷\1c\1fß\ f#\ fê?äq\ 4\v\16\03\8a½d;\81ÞZ\7fz\9c g\128\9b mô~1y÷\89@O\0Á0ó\16+\8f\b\ 6(\ f=N0\88(\8a¼ÅòÛôÃ&Þ)Yú\ 1¦p\8a\81]çY\9cKõ%þi_gó'ûð,Õ¦XVþ÷ÅçÉÇE\83O   \a"Ò \17I6V}\9a\18y\88\ 3\8chhxÖ;\86\f ÄÅ\91&\ 6!5äx4}\90\99TòYVUì#8]û\81þ\95\86\93\ e$Zû\r9\880ä^`öË\19?\ 6\9a\97\85*Ôï\9d¼o<"íÁ\8eÈÎ7À\b0\14\16ÜZZ\19Þ \85ñ^mîìëÖ~û\91\a4@$¨ã¶\89<È*)Ó\9dJ\8bü\12\15¢Ï\8cá6\95Ê¢Æ\1dpû¢äv\97ÅJ\ 2\13\1e \ 6\18áìèý*Õ¾Ì\9d7²Kº²kµO\12\1dhµÏÜ\9eVFÚx\9f)g_¨\8d,\ fieCß²¿Y\96\15>¦Ó\83\10¯E&«[U\8f\97Û4¿\15jî#:\8dËx«Õ)-D;=\11\12\80RĽ\90rÀCA\ 6Ó³±
+Úf6=\85§S\97Cd\18ô£\19
+o\18Ó\1e\80\84\b\ fâ\9e¯'\1eµW\9f\a\89Zª!]D\14\85¤Ëäå\80l8\ 4Р\18\93{wäªÜ'êî¬Â\8d¿ÌU\9aÄ&1Û\96ûRö7XS \ 2D\88Ñaak« mv\12\16\99bïl¨6\e\15V\1f>Ä¡\18Ä\1d\17¶öêóè
+«¿\86\9cwiÌ´.¶û\r¨Ku\95\85º±\9eë\9bæëZß\ 1Y·6\9c-Ü®ûJ\8eg/$@Pt-yOV\97r×Y]OÝ>è-\99{Fb$q[$N=tT_zAßN{N\97Fê7\b±\9e\11\ 6L\a@Z\82N×pýp¼]\10
+\ 1£P\Q¼mvAòÆìªæC¸7\88>Äã¤a£z\87G\9a×\1d`t ¸óèLèÀ´\9c\88è\92ÖÁ0¡¬\9eѬ3£_¤:øX\ f\8fò×híüÍ!}ÄCm¼¡q\9dë9ñ\1f\ 6u~"×®ÿfT\13\ 4¨n7Gÿ¯>Ò²Í^_\9e^\1e]º/6©\8bwH³Ì>%±é\17\81lÜÃÒ@7=¦pÇ\19×.=\16:\ 3di§}R3V\9bX\9dú\91ûW\r\7f\1fÝ0Ú\85áî\83adÚ±¸x\ 1nÙôï¿\14Gz
+
+ÑD2\9cC<z\9b\1d\0ü\ 3Í)À\91endstream
+endobj
+2873 0 obj <<
+/Type /Page
+/Contents 2874 0 R
+/Resources 2872 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2735 0 R
+>> endobj
+2875 0 obj <<
+/D [2873 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+210 0 obj <<
+/D [2873 0 R /XYZ 239.1835 706.1179 null]
+>> endobj
+2876 0 obj <<
+/D [2873 0 R /XYZ 71.731 682.3623 null]
+>> endobj
+2877 0 obj <<
+/D [2873 0 R /XYZ 161.0655 673.2412 null]
+>> endobj
+2878 0 obj <<
+/D [2873 0 R /XYZ 71.731 661.1217 null]
+>> endobj
+2879 0 obj <<
+/D [2873 0 R /XYZ 71.731 629.7558 null]
+>> endobj
+2880 0 obj <<
+/D [2873 0 R /XYZ 168.8063 618.7455 null]
+>> endobj
+2881 0 obj <<
+/D [2873 0 R /XYZ 71.731 591.6821 null]
+>> endobj
+2882 0 obj <<
+/D [2873 0 R /XYZ 71.731 575.2602 null]
+>> endobj
+2883 0 obj <<
+/D [2873 0 R /XYZ 71.731 544.3242 null]
+>> endobj
+2884 0 obj <<
+/D [2873 0 R /XYZ 181.5683 532.6683 null]
+>> endobj
+2885 0 obj <<
+/D [2873 0 R /XYZ 71.731 522.6062 null]
+>> endobj
+2886 0 obj <<
+/D [2873 0 R /XYZ 71.731 491.0346 null]
+>> endobj
+2887 0 obj <<
+/D [2873 0 R /XYZ 71.731 478.0732 null]
+>> endobj
+2888 0 obj <<
+/D [2873 0 R /XYZ 71.731 476.8278 null]
+>> endobj
+2889 0 obj <<
+/D [2873 0 R /XYZ 129.5143 457.7493 null]
+>> endobj
+2890 0 obj <<
+/D [2873 0 R /XYZ 129.5143 457.7493 null]
+>> endobj
+2891 0 obj <<
+/D [2873 0 R /XYZ 71.731 456.3097 null]
+>> endobj
+2892 0 obj <<
+/D [2873 0 R /XYZ 71.731 456.3097 null]
+>> endobj
+2893 0 obj <<
+/D [2873 0 R /XYZ 139.477 439.8165 null]
+>> endobj
+2894 0 obj <<
+/D [2873 0 R /XYZ 139.477 439.8165 null]
+>> endobj
+2895 0 obj <<
+/D [2873 0 R /XYZ 76.7123 421.8838 null]
+>> endobj
+2896 0 obj <<
+/D [2873 0 R /XYZ 129.5143 403.951 null]
+>> endobj
+2897 0 obj <<
+/D [2873 0 R /XYZ 129.5143 403.951 null]
+>> endobj
+2898 0 obj <<
+/D [2873 0 R /XYZ 71.731 381.8689 null]
+>> endobj
+2899 0 obj <<
+/D [2873 0 R /XYZ 71.731 370.9748 null]
+>> endobj
+2900 0 obj <<
+/D [2873 0 R /XYZ 71.731 369.7295 null]
+>> endobj
+2901 0 obj <<
+/D [2873 0 R /XYZ 129.5143 350.6509 null]
+>> endobj
+774 0 obj <<
+/D [2873 0 R /XYZ 71.731 344.23 null]
+>> endobj
+214 0 obj <<
+/D [2873 0 R /XYZ 295.2367 300.4153 null]
+>> endobj
+2902 0 obj <<
+/D [2873 0 R /XYZ 71.731 280.2749 null]
+>> endobj
+2903 0 obj <<
+/D [2873 0 R /XYZ 161.0655 267.5386 null]
+>> endobj
+2904 0 obj <<
+/D [2873 0 R /XYZ 71.731 255.4191 null]
+>> endobj
+2905 0 obj <<
+/D [2873 0 R /XYZ 71.731 224.3895 null]
+>> endobj
+2906 0 obj <<
+/D [2873 0 R /XYZ 168.8063 213.0429 null]
+>> endobj
+2907 0 obj <<
+/D [2873 0 R /XYZ 71.731 185.9795 null]
+>> endobj
+2908 0 obj <<
+/D [2873 0 R /XYZ 71.731 156.4652 null]
+>> endobj
+2909 0 obj <<
+/D [2873 0 R /XYZ 71.731 139.8276 null]
+>> endobj
+2872 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2912 0 obj <<
+/Length 878       
+/Filter /FlateDecode
+>>
+stream
+xÚÍWM\8f\9b0\10½çWpL¤Æõ\aÆ°·´Û®¶jW«U¤\1eº=PB6¨$¬ÀQÔ\7fß16Ä\ 4\a¨T©Õ\1e ì\e¿ç7ãa \1e\86?â    \82\ 4\83\v\8d\10\r\92ý\f{/ð¯»\191\90¥Á,mлõìíG\86½\bE\ 1\r¼õÖcQ\80¸ð=Á(
+9      ½õæÛüý.~\95i¹XR\8eç\14éëc\1e\1fRù9þ¡\7f®\1eïõÍ\97\8aMµø¾þ4û°nù9\13(
+\81dPd\8bêˤ\91%\93\90\bqN\84'p\88\98ÏD­s\95çÅ\82òù)Ýh-OE\9eV7JJ\1d\1fB|à«x³Ò\92\12\14\900ª£ãÍ>;´Ø3ײ\ 1+KD ©\1e\17\84Ïã2Þ§`\8c¦°wÛê\v\18C>õ\ 3çn[ÔÒ\86\ 5'\ 4&\9dݶ0%á\99RÞã¥\14ì ÔÉ{y=ëh¢ú:Xh¹F '\9cø¬«#>Ê\9dÃ6ê#¬\18\14äF§£\92å1\91o.
+Fŧ\a\99%±Ì\8a\83\8d<\96i\7f\83\8d\ 4Â\91\1f\91Èml\83ZÚ°³±D\9d\84Î\86\1aØUc!ù\98ú\91\93÷º±MT_G×X\16!_\88®\8c\15ø¢\ f\93Ã]\1e À\87széovxiüuغ×ËÕ÷²Ð×c\95^­^."\ 4\84þHõÚ°\81êma£Õëâ\9dP½=\1dîêíè8À\11\9e\½gw\1fRyZ\10</Ê\9f\1dka%h\14\f6\7fÙ1\9eR¨çÃ@«à4@\8c\ 6lÌl\v6dv\ 3\e7ÛÁ;Ål\87\ e«A·fÛ:²Csú\89¾d[ãí1IÒªÚ\1es\93\vÐ'\10%¼Î\1c$\16\89\90Áqæ\18QƵ¡\14\8e\8cz\17\89p~\9bæÐ\87ë\9cÐ:'ëE\80ç¿^]\99\85 \90bqÑÎËB\16\12\ 2¦¾,,Fb\18CÍXïç\19s¬ú\9aÙ­*2xD¦¾]nÓ*)³Wup\87\ 41xW\aÔ\16T\99\96jh/\8b\10Õ5\8a!\9a \1e\12Ýÿ.\b\18·zz¸\7f¸3å¾ÞefµS\96çú.\89U·ÐKíÌÍF\11·\1d¦0  \8d\9b\90\9e\ 6¨\81´ÜªGqÒè\95»X\9e»\91yÔÐwD\13è{L\ 4ö\89\1a)(\93\ 2ÍxÌ¥Á\17°\81ò\94Uzé)Iù\ f§\v\ 2Ó\1añ1\1fi\196l e´°Ñ\96áâ\9dÐ2z:Üý¹£ãßL\17D\84\b\9a\84\18\99.lØÀtÑÂF§\v\17ï\84颧Ã9]tdü\aÓ\ 5ñUaP:V½\16l¨z\eØxõ:x§Tï¥\8e+Õkëø[Ó\854ï²?\9c-Ì7\9f\1f"hôÑàg¡\85é\7f\15r\1a\82à(jWR¤>»ú\8dç ü\r\ 5\8c_\13endstream
+endobj
+2911 0 obj <<
+/Type /Page
+/Contents 2912 0 R
+/Resources 2910 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 2735 0 R
+>> endobj
+2913 0 obj <<
+/D [2911 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+776 0 obj <<
+/D [2911 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+2914 0 obj <<
+/D [2911 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+2915 0 obj <<
+/D [2911 0 R /XYZ 181.5683 708.3437 null]
+>> endobj
+2916 0 obj <<
+/D [2911 0 R /XYZ 71.731 698.2815 null]
+>> endobj
+2917 0 obj <<
+/D [2911 0 R /XYZ 71.731 666.7099 null]
+>> endobj
+2918 0 obj <<
+/D [2911 0 R /XYZ 71.731 653.7485 null]
+>> endobj
+2919 0 obj <<
+/D [2911 0 R /XYZ 71.731 652.5032 null]
+>> endobj
+2920 0 obj <<
+/D [2911 0 R /XYZ 129.5143 633.4246 null]
+>> endobj
+2921 0 obj <<
+/D [2911 0 R /XYZ 129.5143 633.4246 null]
+>> endobj
+2922 0 obj <<
+/D [2911 0 R /XYZ 71.731 631.9851 null]
+>> endobj
+2923 0 obj <<
+/D [2911 0 R /XYZ 71.731 631.9851 null]
+>> endobj
+2924 0 obj <<
+/D [2911 0 R /XYZ 139.477 615.4919 null]
+>> endobj
+2925 0 obj <<
+/D [2911 0 R /XYZ 139.477 615.4919 null]
+>> endobj
+2926 0 obj <<
+/D [2911 0 R /XYZ 76.7123 597.5591 null]
+>> endobj
+2927 0 obj <<
+/D [2911 0 R /XYZ 129.5143 579.6264 null]
+>> endobj
+2928 0 obj <<
+/D [2911 0 R /XYZ 129.5143 579.6264 null]
+>> endobj
+2929 0 obj <<
+/D [2911 0 R /XYZ 71.731 557.5443 null]
+>> endobj
+2930 0 obj <<
+/D [2911 0 R /XYZ 71.731 546.6501 null]
+>> endobj
+2931 0 obj <<
+/D [2911 0 R /XYZ 71.731 545.4048 null]
+>> endobj
+2932 0 obj <<
+/D [2911 0 R /XYZ 129.5143 526.3263 null]
+>> endobj
+775 0 obj <<
+/D [2911 0 R /XYZ 71.731 519.9054 null]
+>> endobj
+218 0 obj <<
+/D [2911 0 R /XYZ 273.1838 476.0906 null]
+>> endobj
+2933 0 obj <<
+/D [2911 0 R /XYZ 71.731 452.6019 null]
+>> endobj
+2934 0 obj <<
+/D [2911 0 R /XYZ 161.0655 443.2139 null]
+>> endobj
+2935 0 obj <<
+/D [2911 0 R /XYZ 71.731 431.0945 null]
+>> endobj
+2936 0 obj <<
+/D [2911 0 R /XYZ 71.731 399.7286 null]
+>> endobj
+2937 0 obj <<
+/D [2911 0 R /XYZ 168.8063 388.7183 null]
+>> endobj
+2938 0 obj <<
+/D [2911 0 R /XYZ 71.731 361.6549 null]
+>> endobj
+2939 0 obj <<
+/D [2911 0 R /XYZ 71.731 330.289 null]
+>> endobj
+2940 0 obj <<
+/D [2911 0 R /XYZ 71.731 313.6514 null]
+>> endobj
+2941 0 obj <<
+/D [2911 0 R /XYZ 71.731 282.7154 null]
+>> endobj
+2942 0 obj <<
+/D [2911 0 R /XYZ 181.5683 271.0595 null]
+>> endobj
+2943 0 obj <<
+/D [2911 0 R /XYZ 71.731 260.9973 null]
+>> endobj
+2944 0 obj <<
+/D [2911 0 R /XYZ 71.731 229.4257 null]
+>> endobj
+2945 0 obj <<
+/D [2911 0 R /XYZ 71.731 216.4643 null]
+>> endobj
+2946 0 obj <<
+/D [2911 0 R /XYZ 71.731 215.219 null]
+>> endobj
+2947 0 obj <<
+/D [2911 0 R /XYZ 129.5143 196.1405 null]
+>> endobj
+2948 0 obj <<
+/D [2911 0 R /XYZ 129.5143 196.1405 null]
+>> endobj
+2949 0 obj <<
+/D [2911 0 R /XYZ 71.731 194.7009 null]
+>> endobj
+2950 0 obj <<
+/D [2911 0 R /XYZ 71.731 194.7009 null]
+>> endobj
+2951 0 obj <<
+/D [2911 0 R /XYZ 139.477 178.2077 null]
+>> endobj
+2952 0 obj <<
+/D [2911 0 R /XYZ 139.477 178.2077 null]
+>> endobj
+2953 0 obj <<
+/D [2911 0 R /XYZ 76.7123 160.275 null]
+>> endobj
+2954 0 obj <<
+/D [2911 0 R /XYZ 129.5143 142.3422 null]
+>> endobj
+2955 0 obj <<
+/D [2911 0 R /XYZ 129.5143 142.3422 null]
+>> endobj
+2956 0 obj <<
+/D [2911 0 R /XYZ 71.731 120.2601 null]
+>> endobj
+2957 0 obj <<
+/D [2911 0 R /XYZ 71.731 109.366 null]
+>> endobj
+2958 0 obj <<
+/D [2911 0 R /XYZ 71.731 108.1206 null]
+>> endobj
+2910 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+2961 0 obj <<
+/Length 996       
+/Filter /FlateDecode
+>>
+stream
+xÚ¥W[oÛ6\18}ϯУ\rT\1c¯"Ù·´]\8a\r]\11\14~[\86@µéX\80,yº´è¿ßGS\92)\9b\96\ 4\f\ 1"%:äwxx\ e/$ÂðC"I\90dð \1aÑDÐh{|ÀÑ\e|úü@:HÜab\1fôaóðÛ\13Ã\91F:¡I´ÙGL'HH\1eIF\91\12DE\9bÝß«\8f\87ôÔ\98j\1dS\81W\14¹çs\9e\16¦ù\92~w\7f>>ÿá^þ2Í¡ÜÕë\7f6\7f>ü¾\19ê\v&\91VPd\92$'
+q\86u\14S\8c4%"\88"D#!\88\84Á`\85\18gr\18\fÕ\11Ô\91\98ØÁ\f¸\ 1fGóB©¸fG(\ 5\0¡\91ßa_÷úyáÑ·
+ò¸\88J`È\82p6æ\91\15Í;'\19q\8f\9eu»Ý\9aºÞ·¹¥ }\ 1?\89@\fn;\8b\85DR1\ 6/\18Q&\92sg\14qe'FªÕ'\93\9bÆ|-wæ©ZS¼*\8föý³{oO]\9f>?.\91¢\18ä´\93.\13Gï¹*\9b²ùu2ï\87\16
+Z$g\12\98\12\94\10¥Ï\rüº}M[ï<¦\17,pÚ6\87\ 5|}Ív¯eõz(ë¦H\8fÆû²&bõfÛv\10û\19\ 1êqÏħþÉÔÛ*;5YYL\91g`õ\84:òß̱´e\7fØ_¦v\R\8fÒùm\ f\ 3soÍ¡ûW}2Ûì\ 5cjv×èó\10\90%\0v\89I\82\12&\93®ZÓVE=3û\9d"û5\ 1*mÞtø\12jW?³Ú ¥z<æy¹¦bõ³çø­ÌM½t^ÓÝ1+\96\96z¶ú¥\15L\18,\18®Ä(g}"9Ö°\1cé¹|û°\89|\ f°Ù|\87ê.È÷\r\ f¦<Õ\86|\8fxX»\a\1ca[ÁBÞwSÞTí¶_\f\86\85Ô¶7E\93mSkd\1fÙVæv\80\1d\ 5¦     R8\91aa{TìÃ.Â\12»Cø\ 3\1a`w\85\85ÉÇ\94ë`ÝûÂö­ny\8c\85e\1aq)Ç4\1eA\17·É\ 4Ô\15\902\ eû×µ¾YñÖë\e\90õèºsÉ.ݳ­Í]÷2!\90¶Æ\98\ f\9b\0\9buo¨î\ 2÷Þð\b»wÄ#°B\aä&\98#\89%\eë\r;[·TUþ\ 4Ü÷,S\bc%æ<ëÁ¦<ÛÃæ=\e¨»Ä³\ 1\1e\9e$½g}\1a\97½þë°=d;kÃóÖQÝ\97\ 6ÎAX\8aÙ8{°)izؼ4\81ºK¤        ð\bHãÓ\18\85ó©Íó_îõß6ÍG\e«oÃ`*©âpJÂs©ôa\13©\1c`³©\fÕ]\90Ê\e\1eáT\8exØT^\9f\8cB±$ °\92äÿÅ\92&      ¢\12\16Óiïù°        ï\r°Yï\85ê.ð^\88Ç­÷F4B±|»\1cZ\17%\94r{¦çs  õaS*õ°y\95\ 2u\97¨\14à\11Pɧ1JhP¨Þ\86P\bú¢Â]N\14îNBÝq÷þi\90H\90\82Àms:¹>l"¹\ 3l6¹¡º\v\92\eâ\11¸í\8dx,¼íù4»\e;L\85"\89\9e¼Ô{\98Û;½ °\13\11­\87\9e,\1fÎïÞÐ\ 3\ 5ÿ\ 3W{³Üendstream
+endobj
+2960 0 obj <<
+/Type /Page
+/Contents 2961 0 R
+/Resources 2959 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3004 0 R
+>> endobj
+2962 0 obj <<
+/D [2960 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+2963 0 obj <<
+/D [2960 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+2964 0 obj <<
+/D [2960 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+222 0 obj <<
+/D [2960 0 R /XYZ 346.5386 658.1081 null]
+>> endobj
+2965 0 obj <<
+/D [2960 0 R /XYZ 71.731 634.6193 null]
+>> endobj
+2966 0 obj <<
+/D [2960 0 R /XYZ 161.0655 625.2314 null]
+>> endobj
+2967 0 obj <<
+/D [2960 0 R /XYZ 71.731 613.1119 null]
+>> endobj
+2968 0 obj <<
+/D [2960 0 R /XYZ 71.731 581.746 null]
+>> endobj
+2969 0 obj <<
+/D [2960 0 R /XYZ 168.8063 570.7357 null]
+>> endobj
+2970 0 obj <<
+/D [2960 0 R /XYZ 71.731 543.6723 null]
+>> endobj
+2971 0 obj <<
+/D [2960 0 R /XYZ 71.731 527.2504 null]
+>> endobj
+2972 0 obj <<
+/D [2960 0 R /XYZ 71.731 496.3144 null]
+>> endobj
+2973 0 obj <<
+/D [2960 0 R /XYZ 181.5683 484.6585 null]
+>> endobj
+2974 0 obj <<
+/D [2960 0 R /XYZ 71.731 474.5963 null]
+>> endobj
+2975 0 obj <<
+/D [2960 0 R /XYZ 71.731 443.0247 null]
+>> endobj
+2976 0 obj <<
+/D [2960 0 R /XYZ 71.731 430.0633 null]
+>> endobj
+2977 0 obj <<
+/D [2960 0 R /XYZ 71.731 428.818 null]
+>> endobj
+2978 0 obj <<
+/D [2960 0 R /XYZ 129.5143 409.7395 null]
+>> endobj
+2979 0 obj <<
+/D [2960 0 R /XYZ 129.5143 409.7395 null]
+>> endobj
+2980 0 obj <<
+/D [2960 0 R /XYZ 71.731 408.2999 null]
+>> endobj
+2981 0 obj <<
+/D [2960 0 R /XYZ 71.731 408.2999 null]
+>> endobj
+2982 0 obj <<
+/D [2960 0 R /XYZ 139.477 391.8067 null]
+>> endobj
+2983 0 obj <<
+/D [2960 0 R /XYZ 139.477 391.8067 null]
+>> endobj
+2984 0 obj <<
+/D [2960 0 R /XYZ 76.7123 373.874 null]
+>> endobj
+2985 0 obj <<
+/D [2960 0 R /XYZ 129.5143 355.9412 null]
+>> endobj
+2986 0 obj <<
+/D [2960 0 R /XYZ 129.5143 355.9412 null]
+>> endobj
+2987 0 obj <<
+/D [2960 0 R /XYZ 71.731 353.7844 null]
+>> endobj
+2988 0 obj <<
+/D [2960 0 R /XYZ 71.731 353.7844 null]
+>> endobj
+2989 0 obj <<
+/D [2960 0 R /XYZ 139.477 338.0085 null]
+>> endobj
+2990 0 obj <<
+/D [2960 0 R /XYZ 71.731 336.5689 null]
+>> endobj
+2991 0 obj <<
+/D [2960 0 R /XYZ 139.477 320.0757 null]
+>> endobj
+2992 0 obj <<
+/D [2960 0 R /XYZ 76.7123 302.1429 null]
+>> endobj
+2993 0 obj <<
+/D [2960 0 R /XYZ 129.5143 284.2102 null]
+>> endobj
+2994 0 obj <<
+/D [2960 0 R /XYZ 129.5143 284.2102 null]
+>> endobj
+2995 0 obj <<
+/D [2960 0 R /XYZ 71.731 282.0534 null]
+>> endobj
+2996 0 obj <<
+/D [2960 0 R /XYZ 71.731 282.0534 null]
+>> endobj
+2997 0 obj <<
+/D [2960 0 R /XYZ 139.477 266.2774 null]
+>> endobj
+2998 0 obj <<
+/D [2960 0 R /XYZ 71.731 264.1206 null]
+>> endobj
+2999 0 obj <<
+/D [2960 0 R /XYZ 139.477 248.3447 null]
+>> endobj
+3000 0 obj <<
+/D [2960 0 R /XYZ 71.731 210.4867 null]
+>> endobj
+3001 0 obj <<
+/D [2960 0 R /XYZ 71.731 197.4357 null]
+>> endobj
+3002 0 obj <<
+/D [2960 0 R /XYZ 71.731 196.1904 null]
+>> endobj
+3003 0 obj <<
+/D [2960 0 R /XYZ 129.5143 177.1118 null]
+>> endobj
+777 0 obj <<
+/D [2960 0 R /XYZ 71.731 170.6909 null]
+>> endobj
+2959 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F21 514 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3007 0 obj <<
+/Length 956       
+/Filter /FlateDecode
+>>
+stream
+xÚ½WM\8f£8\14¼÷¯à\98H\8dÇ\1f\18ã¹õ|tkW»­h\949M¯Zlât\90\bdÁh4ÿ~\9fcC\9bÄ\84H+­r\80\88²«\~e\1e$Âð#\91 H0¸P\89hÊi´9Üáè\r\1e\11\a\89\1d&öA\9fÖw\1f\1e\19\8e$\92)M£õ.b2E\$\91`\14e\9cdÑzûcñy\9f\1fµj\961åxA\91½®Ê¼Rú\8füoû÷aõ\9b½ùSé}½m\97\7f­\7f¿ûº\1eø9\13Hf@rUä\80º\94IID\ 4¢\84'Fg¿bÌ\91H\848ɤ(\91F\9cÈ\16_T©´z®·ê±YR¼¨\ f«Ïß\8d$\98GzËM\ 4Ê(\16Ql\96+R;Ϫ©u­\7f\1dÕÇaD\ 6\13±\e\eS\82R\92ÉÓ\0\9fÍ2\9d\9c\1cç\9dÞßÛ¿\15<\7f-¶¯uóº¯[]å\aå\9e\1c7\1d<\08 H\8c{F_â\17Õn\9aâ¨\8bºº&\92Áf¦Ô\17ÙZÆü]\92½Û\81ðÑ#X\ 523þÄ\8c \9e\91ô4Ís]ÅùöPTn¦CþËÞÔUéîºã6×j\98¦§Ôöª÷ªp¥Ô\16 h`!)J\99°,ß\94î\9a\9e\82ØK±s£ºÍFµí®+\9d}»%\81é»R;|\r\14ÍÏ¢UèV;\1fʲ^R¾ø©¶v\8aou©Ú[·ÿdG¿\95\85»Ñj³¿\95~µ$|\917P\10\902KëG\87\10\898'"J(T»\14<\18\9d\ 1\15û0\e\1d\19\ 4&FÁålFÂ\v¥ü\82\97\12B\83¼ç×w\1dý¨K\1d\9c$\10pN\126Öaò\12°\8d&\b\e\ 6\ 3ùèÊ@7ÝFß\9f\9d>f¼ªt±ÉM6|dרË\ 5ö\120\9c\ 3i\92\85\8díQ±\ f{7\96\98\83h´ \1e6i,l>¦\89\fòN\eÛ\8fºÔ16\96Id\8eÄ\91\8c\aðÅ\9eÌ\ 1w9$/\81CÿÜߢzëý\rØz°ÓÙj¯]ô[5Y½\fÎl)%\9b©^\1fv¥z\aØlõ\86xo¨Þ\v\1dáê\1dé\b\1cñ\ 1»        N\90À\82\8dý.*w@Ö\8d¿\ 1\935Ë8d"MùLÍú°+5;Àfk6Ä{CÍ\86tx\96¸\9a\1dÉ\0G\ù=\ fï©bkÊð\ 5c
+ýȤ5ðÞ#\8cÍÅÙ\87]³¦\87Í[\13à½Å\9a\80\8e\80\8cQ8\1f»²\7fõþÓå¥uÇ\ 5Ó/Ãp*1\86>+\9b\a»\96Ê\1e6\9fÊ\0ï-©<×1\91J_\87\ 2Ad\1c\11\9aÑ\8b\1cÞ\ f½K¸èà\ 4æ\bK\9c\8d_ã®i\99~\7fÓ$\ 5î\8cÌxíîx=Àf½\ eñÞàuH\87W\97½×#\1dïîMvmn#Fí|Ì\ 5\12\19\83PrØ8ÆS×Ðÿó\86þÉ6ôÝñ\7f\9f\1aÃ3ÙÌ¿\99Çî¼7!û/\1d¼¿qîã&É\10tÝòê×\9c\87¹ü\98ã4\83¶IÊa&C\9cðÉO³\0á¿\18üQ*endstream
+endobj
+3006 0 obj <<
+/Type /Page
+/Contents 3007 0 R
+/Resources 3005 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3004 0 R
+>> endobj
+3008 0 obj <<
+/D [3006 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3009 0 obj <<
+/D [3006 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+226 0 obj <<
+/D [3006 0 R /XYZ 288.5401 705.7477 null]
+>> endobj
+3010 0 obj <<
+/D [3006 0 R /XYZ 71.731 685.6073 null]
+>> endobj
+3011 0 obj <<
+/D [3006 0 R /XYZ 161.0655 672.871 null]
+>> endobj
+3012 0 obj <<
+/D [3006 0 R /XYZ 71.731 660.7515 null]
+>> endobj
+3013 0 obj <<
+/D [3006 0 R /XYZ 71.731 561.7976 null]
+>> endobj
+3014 0 obj <<
+/D [3006 0 R /XYZ 71.731 543.3084 null]
+>> endobj
+3015 0 obj <<
+/D [3006 0 R /XYZ 71.731 512.3724 null]
+>> endobj
+3016 0 obj <<
+/D [3006 0 R /XYZ 181.5683 500.7166 null]
+>> endobj
+3017 0 obj <<
+/D [3006 0 R /XYZ 71.731 490.6544 null]
+>> endobj
+3018 0 obj <<
+/D [3006 0 R /XYZ 71.731 457.2312 null]
+>> endobj
+3019 0 obj <<
+/D [3006 0 R /XYZ 71.731 446.1214 null]
+>> endobj
+3020 0 obj <<
+/D [3006 0 R /XYZ 71.731 444.8761 null]
+>> endobj
+3021 0 obj <<
+/D [3006 0 R /XYZ 129.5143 425.7975 null]
+>> endobj
+3022 0 obj <<
+/D [3006 0 R /XYZ 129.5143 425.7975 null]
+>> endobj
+3023 0 obj <<
+/D [3006 0 R /XYZ 71.731 424.358 null]
+>> endobj
+3024 0 obj <<
+/D [3006 0 R /XYZ 71.731 424.358 null]
+>> endobj
+3025 0 obj <<
+/D [3006 0 R /XYZ 139.477 407.8648 null]
+>> endobj
+3026 0 obj <<
+/D [3006 0 R /XYZ 139.477 407.8648 null]
+>> endobj
+3027 0 obj <<
+/D [3006 0 R /XYZ 76.7123 389.932 null]
+>> endobj
+3028 0 obj <<
+/D [3006 0 R /XYZ 129.5143 371.9993 null]
+>> endobj
+3029 0 obj <<
+/D [3006 0 R /XYZ 129.5143 371.9993 null]
+>> endobj
+3030 0 obj <<
+/D [3006 0 R /XYZ 71.731 369.8424 null]
+>> endobj
+3031 0 obj <<
+/D [3006 0 R /XYZ 71.731 369.8424 null]
+>> endobj
+3032 0 obj <<
+/D [3006 0 R /XYZ 139.477 354.0665 null]
+>> endobj
+3033 0 obj <<
+/D [3006 0 R /XYZ 71.731 352.627 null]
+>> endobj
+3034 0 obj <<
+/D [3006 0 R /XYZ 139.477 336.1338 null]
+>> endobj
+3035 0 obj <<
+/D [3006 0 R /XYZ 76.7123 318.201 null]
+>> endobj
+3036 0 obj <<
+/D [3006 0 R /XYZ 129.5143 300.2683 null]
+>> endobj
+3037 0 obj <<
+/D [3006 0 R /XYZ 129.5143 300.2683 null]
+>> endobj
+3038 0 obj <<
+/D [3006 0 R /XYZ 71.731 278.9034 null]
+>> endobj
+3039 0 obj <<
+/D [3006 0 R /XYZ 71.731 267.292 null]
+>> endobj
+3040 0 obj <<
+/D [3006 0 R /XYZ 71.731 266.0467 null]
+>> endobj
+3041 0 obj <<
+/D [3006 0 R /XYZ 129.5143 246.9681 null]
+>> endobj
+778 0 obj <<
+/D [3006 0 R /XYZ 71.731 240.5473 null]
+>> endobj
+230 0 obj <<
+/D [3006 0 R /XYZ 260.8062 196.7325 null]
+>> endobj
+3042 0 obj <<
+/D [3006 0 R /XYZ 71.731 173.2437 null]
+>> endobj
+3043 0 obj <<
+/D [3006 0 R /XYZ 161.0655 163.8558 null]
+>> endobj
+3044 0 obj <<
+/D [3006 0 R /XYZ 71.731 151.7363 null]
+>> endobj
+3045 0 obj <<
+/D [3006 0 R /XYZ 71.731 120.3704 null]
+>> endobj
+3046 0 obj <<
+/D [3006 0 R /XYZ 168.8063 109.3602 null]
+>> endobj
+3005 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3049 0 obj <<
+/Length 948       
+/Filter /FlateDecode
+>>
+stream
+xÚÝWKoÛ8\10¾çWè\18\ 3\16\97\ fñ¡ÞÒv·è¢[\ 4\85o\9bE ÊL,¬-\19\12\85´ÿ~\87¢Þ¢-c\8fE\ e\8f3\1f¿\99á\8cH\80á\8f\ 4\92 É`¡1¢\82Ó =Ýáà\15^}º#-$l1á\18ô~w÷Û\1f\f\a1\8a\ 5\15Áî%`±@\F\81d\14)NT°Ûÿ}ÿá\90\9c\8d.7!åø\9e"·>\1e\93\\9b/Éw÷ïÃãg÷ð\976\87b_mþÙýy÷û®÷Ï\99\ 2'WIö¨%M\1a\a
+h\8aÈÒ$ð\96\93\88\ 5\12+Ä"&\e\9e\1fõQ\eíh$¹[õ\86ðû\1fYe²üÕýòµØ·\98OeQ\9f\91e
+ÞCF\10WD4\96²¼r\90SòÓ=짶Áhû"ïͽZs\9d5"\90`ÒYû¦M]v\16\89\17·Vu\9aêªz©\8f[÷ÃË\86\80\87úhZ|a\ eº|Ë*Ý\10mt\18Â\15\8f¡\r\97\14N\86\87ã±ØP~ÿ¦÷Îķ⨫wýöAÆn7%H\10\15\93ý)Ëouõh\85HÊä\ 4Ú\94ÎÅ8è\84@\988\91\ 1ç\14\947è=*\1cú CBHL\9a /¬Y
+O\94ò\85_
+\80\88P¯ßù:ðèv-y0åK¾       \8f¤6\a\8fl4BØz°\90wmÈMY§f;«\e»_ç&K\13\93\15ù\18Y\97zyÀ\8e\ 2\8b\10Ô¬_×\ e\14\8eP\83¬Ä^\a\93ã´¨\8bªBä1\8db\9fÓË¢v\9b\16\9a²\18ERN8<\80"î6ñèÊ¡¾"¸¨æÊB\99wÊz\ 4=9sͳ)ÜZWúbÞF±B\9c\92·cØ\95¼ía«yëó{CÞ.xøóvÂÃÞ_ÏÍÕõ\9cí\9f\8bò9\87\bN\bG\91\10ñTñ,7í5U\8eCp1_#\85\11\8f¥ZIØ1ìJÆö°Õ\94õù½!g}<F\92´I;¡\ 1\8a\8dÆu\ 6'ØÞæä\13Æ\14\1aêE\95\ 4EBð5\91\ 6Ô5\8dZÔºDK§·(´$á\11hÄaR£^\89º\ 4\ 47`\8ar{\81a¤pÌÇÝôr³a1A\11£d¥hÇ°+EÛÃV\8bÖç÷\86¢õñ\18IØÅqÂcH²\8bãD[ÂÀO"Jxs\ 3\84\"©\98\13\942îîY
+\ eìP'U;AÙ¨|ÕæmCm]ÿë¹\f"\89\14År6\f\94\85)Ìϳ¾uÔ\98y#Î[s\8e'̱í\88ÛaÈÊ\a\fÜT\0 ·N)\1fu\95\96ÙÙ¶\81\18\8c¾\82\8e©Uk³ä0üåó\13@\88\86¹T{\87Ì\a;iý\8f9säª\9bÅ?÷L»æ¦ÓÃÜt\91\1f=Nn=B硪\8a4KL7[¾enìif^\88-\17¬o+Ý\96¶E@;κ.\91\81¸è×\98\95[.çl;H?¿#Ú\8f¯H!\b~|õûl\84Y~\9eq
+\85G°ê-Y\16\91¸ø±åqø\1fÄíW.endstream
+endobj
+3048 0 obj <<
+/Type /Page
+/Contents 3049 0 R
+/Resources 3047 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3004 0 R
+>> endobj
+3050 0 obj <<
+/D [3048 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3051 0 obj <<
+/D [3048 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+3052 0 obj <<
+/D [3048 0 R /XYZ 71.731 669.8397 null]
+>> endobj
+3053 0 obj <<
+/D [3048 0 R /XYZ 71.731 638.9037 null]
+>> endobj
+3054 0 obj <<
+/D [3048 0 R /XYZ 181.5683 627.2478 null]
+>> endobj
+3055 0 obj <<
+/D [3048 0 R /XYZ 71.731 617.1856 null]
+>> endobj
+3056 0 obj <<
+/D [3048 0 R /XYZ 71.731 585.614 null]
+>> endobj
+3057 0 obj <<
+/D [3048 0 R /XYZ 71.731 572.6526 null]
+>> endobj
+3058 0 obj <<
+/D [3048 0 R /XYZ 71.731 571.4073 null]
+>> endobj
+3059 0 obj <<
+/D [3048 0 R /XYZ 129.5143 552.3288 null]
+>> endobj
+3060 0 obj <<
+/D [3048 0 R /XYZ 129.5143 552.3288 null]
+>> endobj
+3061 0 obj <<
+/D [3048 0 R /XYZ 71.731 550.8892 null]
+>> endobj
+3062 0 obj <<
+/D [3048 0 R /XYZ 71.731 550.8892 null]
+>> endobj
+3063 0 obj <<
+/D [3048 0 R /XYZ 139.477 534.396 null]
+>> endobj
+3064 0 obj <<
+/D [3048 0 R /XYZ 139.477 534.396 null]
+>> endobj
+3065 0 obj <<
+/D [3048 0 R /XYZ 76.7123 516.4633 null]
+>> endobj
+3066 0 obj <<
+/D [3048 0 R /XYZ 129.5143 498.5305 null]
+>> endobj
+3067 0 obj <<
+/D [3048 0 R /XYZ 129.5143 498.5305 null]
+>> endobj
+3068 0 obj <<
+/D [3048 0 R /XYZ 71.731 496.3737 null]
+>> endobj
+3069 0 obj <<
+/D [3048 0 R /XYZ 71.731 496.3737 null]
+>> endobj
+3070 0 obj <<
+/D [3048 0 R /XYZ 139.477 480.5978 null]
+>> endobj
+3071 0 obj <<
+/D [3048 0 R /XYZ 71.731 478.4409 null]
+>> endobj
+3072 0 obj <<
+/D [3048 0 R /XYZ 139.477 462.665 null]
+>> endobj
+3073 0 obj <<
+/D [3048 0 R /XYZ 71.731 424.807 null]
+>> endobj
+3074 0 obj <<
+/D [3048 0 R /XYZ 71.731 411.756 null]
+>> endobj
+3075 0 obj <<
+/D [3048 0 R /XYZ 71.731 410.5107 null]
+>> endobj
+3076 0 obj <<
+/D [3048 0 R /XYZ 129.5143 391.4321 null]
+>> endobj
+779 0 obj <<
+/D [3048 0 R /XYZ 71.731 385.0113 null]
+>> endobj
+234 0 obj <<
+/D [3048 0 R /XYZ 277.0745 341.1965 null]
+>> endobj
+3077 0 obj <<
+/D [3048 0 R /XYZ 71.731 321.0561 null]
+>> endobj
+3078 0 obj <<
+/D [3048 0 R /XYZ 161.0655 308.3198 null]
+>> endobj
+3079 0 obj <<
+/D [3048 0 R /XYZ 71.731 296.2003 null]
+>> endobj
+3080 0 obj <<
+/D [3048 0 R /XYZ 71.731 265.1707 null]
+>> endobj
+3081 0 obj <<
+/D [3048 0 R /XYZ 168.8063 253.8241 null]
+>> endobj
+3082 0 obj <<
+/D [3048 0 R /XYZ 71.731 226.7607 null]
+>> endobj
+3083 0 obj <<
+/D [3048 0 R /XYZ 71.731 195.3948 null]
+>> endobj
+3084 0 obj <<
+/D [3048 0 R /XYZ 71.731 168.9525 null]
+>> endobj
+3085 0 obj <<
+/D [3048 0 R /XYZ 71.731 136.1649 null]
+>> endobj
+3086 0 obj <<
+/D [3048 0 R /XYZ 181.5683 124.5091 null]
+>> endobj
+3087 0 obj <<
+/D [3048 0 R /XYZ 71.731 114.4469 null]
+>> endobj
+3047 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3090 0 obj <<
+/Length 1015      
+/Filter /FlateDecode
+>>
+stream
+xÚÍXMoã6\10½çWèh\ 3+\96\1fâ\87rË~b\8bna,|k\8a\99µ°²\94J2Òüû\8eDJ¢,ZÒ­E\ er\94Ç\99Ç7\8fÃ\89I\80á\87\ 4\92 ÉàAcD\ 5§Áá|\87\83\1fð§/wÄBB\8b     ]ÐûýÝ/\9f\19\ eb\14\v*\82ýsÀb\81¸\8c\ 2É(R\9c¨`\7fücóá\94¼ÔºÜ\86\94ã\rEæ¹Ë\92\׿%\7f\99_\1fv_Í\87oº>\15Çjûçþ×»Oû>?g\12Å
+\92Ì\92ìQS\9a4vh\12\12\89\f$V\88EL¶<w[Â7I\99\9c5°­î¯)ô\8b\84\82,\143/\85\1e\15º°\8e\ 2¼\91\98\8c(ô°\86Â#¥|\92\97RàH¨7ïõsàÑ­\9aò`*P \85\88Z\1e \14'\11\eóH.õ©áq¥\e\8d\10n24\90{S¯ª./\87úÝU\15\9bõ:¯ÓCR§Eî"/¥\9en°£  \95\92Ü/l\87
+]Ø ,iì9ÚP\a»),\98\14Ó(öæ½-l·jÊc,,\8bQ$å\98Æ\ 3èb\1cîQ\97\v$"8<×ú¦ù\8fN_\8f¬g\13®ý\\17æy©ôm÷²\b\819\96Ì; æ¼kQËÖ\9d&]ãÜ+\127\8cë\90È\8b£\86¶òZ\94?\9fR\9fÆR!"\84\1ck\9cæ\9d\81\7f\87õý;]>o    xùн:6Ú?bL¡\99Aè T\10\8dÆ`ɦÝIaÚÈw\r&Ïgú\aW\18)Jâ\85\12¸°\99\1aô°Å"øò®¨\82\8f\87ÓJ»2\8cx\f\8a\12«Ý³µóåpÐUõ|Élq\80\9fD\94ð¶¦!\97H*\ 6\82r\8c(ã¢\rF\11oo\r©6\1fu\ 6͹­Ò´¶\91\ 4\ 2X\8e«±+\8bº¨ß^ô}¿bð\90]\eR\82\ 4Q\86º\93¢eü\889nÚ\99ÝOã0°ÖSQ>\9d\8aªÎá¶\0\ 4ñР      »è.\9d\8fº:\94éKs|ç\b1¸F\ 55\84¾%åOÛUí\91×ÍEõOZÕÐ\19\ 6V\16S\99ç±ÝÆ\11µFÅ\10\91 ®\88\11t÷µê\ 2v\8dC\1fNöÝ9y3\1f\8a<{sc\r\99ºÕµ]|Ò©½Ý\8b\9b׮᧵®Pw\9c®Ã/\ 4\85½Â&ß\86HýN\b´I&\85\16¬fKgNó%«-¾\0âåkZ\99Ðkª÷\90ef\87Úêö½ÈtµÖYÉñ\9cæ\96ËKúnP~múµ\ 3
\ 5\89\ 4Yh0.l¦Áô°Å\ 6ãË»¢ÁLxøûü\88Ç\7f3 P¨\86Ä,Z\18P\ØÌ\80ÒÃ\16\a\14\15\ 3Ê\84\87w@\19Ñø\1f\f(\ 4þ\87PLª\ 5÷º°\19÷ö°E÷úò®pï\84\87ß½#\1e\9eKÄ#7Á\11\14F²É°bÛWé\16à¦g  \8c<1ÜP\v\9eua3\9eía\8b\9eõå]áY\1f\ fG\12ëÙ\11\rïøv5«ù¥\11\18\f\924\ elN\9a\ e¶,\8d\1ai<<<Ò¸4F\87óó%ënô¿/IfÔ±\aÓµaãiøW\90\9b1Lá8\9a\9dkí7\ 3\91B0_ij_\1e8\98éw\a\9cJ$8a}¤&i$o~\13àIø/\11\83endstream
+endobj
+3089 0 obj <<
+/Type /Page
+/Contents 3090 0 R
+/Resources 3088 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3004 0 R
+>> endobj
+3091 0 obj <<
+/D [3089 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+781 0 obj <<
+/D [3089 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+3092 0 obj <<
+/D [3089 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+3093 0 obj <<
+/D [3089 0 R /XYZ 71.731 708.2442 null]
+>> endobj
+3094 0 obj <<
+/D [3089 0 R /XYZ 71.731 706.9988 null]
+>> endobj
+3095 0 obj <<
+/D [3089 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+3096 0 obj <<
+/D [3089 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+3097 0 obj <<
+/D [3089 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+3098 0 obj <<
+/D [3089 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+3099 0 obj <<
+/D [3089 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+3100 0 obj <<
+/D [3089 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+3101 0 obj <<
+/D [3089 0 R /XYZ 76.7123 652.0548 null]
+>> endobj
+3102 0 obj <<
+/D [3089 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+3103 0 obj <<
+/D [3089 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+3104 0 obj <<
+/D [3089 0 R /XYZ 71.731 612.7572 null]
+>> endobj
+3105 0 obj <<
+/D [3089 0 R /XYZ 71.731 601.1458 null]
+>> endobj
+3106 0 obj <<
+/D [3089 0 R /XYZ 71.731 599.9004 null]
+>> endobj
+3107 0 obj <<
+/D [3089 0 R /XYZ 129.5143 580.8219 null]
+>> endobj
+780 0 obj <<
+/D [3089 0 R /XYZ 71.731 574.401 null]
+>> endobj
+238 0 obj <<
+/D [3089 0 R /XYZ 209.5045 530.5863 null]
+>> endobj
+3108 0 obj <<
+/D [3089 0 R /XYZ 71.731 510.4459 null]
+>> endobj
+3109 0 obj <<
+/D [3089 0 R /XYZ 161.0655 497.7096 null]
+>> endobj
+3110 0 obj <<
+/D [3089 0 R /XYZ 71.731 485.5901 null]
+>> endobj
+3111 0 obj <<
+/D [3089 0 R /XYZ 71.731 454.5605 null]
+>> endobj
+3112 0 obj <<
+/D [3089 0 R /XYZ 168.8063 443.2139 null]
+>> endobj
+3113 0 obj <<
+/D [3089 0 R /XYZ 71.731 416.1505 null]
+>> endobj
+3114 0 obj <<
+/D [3089 0 R /XYZ 71.731 384.7846 null]
+>> endobj
+3115 0 obj <<
+/D [3089 0 R /XYZ 71.731 368.147 null]
+>> endobj
+3116 0 obj <<
+/D [3089 0 R /XYZ 71.731 337.211 null]
+>> endobj
+3117 0 obj <<
+/D [3089 0 R /XYZ 181.5683 325.5552 null]
+>> endobj
+3118 0 obj <<
+/D [3089 0 R /XYZ 71.731 315.493 null]
+>> endobj
+3119 0 obj <<
+/D [3089 0 R /XYZ 71.731 282.0698 null]
+>> endobj
+3120 0 obj <<
+/D [3089 0 R /XYZ 71.731 270.96 null]
+>> endobj
+3121 0 obj <<
+/D [3089 0 R /XYZ 71.731 269.7146 null]
+>> endobj
+3122 0 obj <<
+/D [3089 0 R /XYZ 129.5143 250.6361 null]
+>> endobj
+3123 0 obj <<
+/D [3089 0 R /XYZ 129.5143 250.6361 null]
+>> endobj
+3124 0 obj <<
+/D [3089 0 R /XYZ 71.731 249.1966 null]
+>> endobj
+3125 0 obj <<
+/D [3089 0 R /XYZ 71.731 249.1966 null]
+>> endobj
+3126 0 obj <<
+/D [3089 0 R /XYZ 139.477 232.7034 null]
+>> endobj
+3127 0 obj <<
+/D [3089 0 R /XYZ 139.477 232.7034 null]
+>> endobj
+3128 0 obj <<
+/D [3089 0 R /XYZ 76.7123 214.7706 null]
+>> endobj
+3129 0 obj <<
+/D [3089 0 R /XYZ 129.5143 196.8378 null]
+>> endobj
+3130 0 obj <<
+/D [3089 0 R /XYZ 129.5143 196.8378 null]
+>> endobj
+3131 0 obj <<
+/D [3089 0 R /XYZ 71.731 194.681 null]
+>> endobj
+3132 0 obj <<
+/D [3089 0 R /XYZ 71.731 194.681 null]
+>> endobj
+3133 0 obj <<
+/D [3089 0 R /XYZ 139.477 178.9051 null]
+>> endobj
+3134 0 obj <<
+/D [3089 0 R /XYZ 71.731 177.4655 null]
+>> endobj
+3135 0 obj <<
+/D [3089 0 R /XYZ 139.477 160.9723 null]
+>> endobj
+3136 0 obj <<
+/D [3089 0 R /XYZ 71.731 123.1143 null]
+>> endobj
+3137 0 obj <<
+/D [3089 0 R /XYZ 71.731 110.0633 null]
+>> endobj
+3138 0 obj <<
+/D [3089 0 R /XYZ 71.731 108.818 null]
+>> endobj
+3088 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3141 0 obj <<
+/Length 815       
+/Filter /FlateDecode
+>>
+stream
+xÚµV]oÚ0\14}çWä\11¤ÅóG\1cÛ}ëÚmÚ´M¨¢OëTeÁ\94H!A\89£ªÿ~×8          \98\ fi\9b\81ã{\8e\8fïõ5  0|H \b\12\f\ 6ª\10\8d9\rÒÍ\ 4\a/ð×ç   i!a\8b    \87 \ f\8bÉûO\f\a
\98ÆÁb\150\15#.¢@0\8a$'2X,\7fNïÖÉÖèj\16R\8e§\14¹q\9e'\85\92ßîëíü\8b\9b|×f].ëÙ¯Å×ÉÇEÏÏ\99@J\ 2ÉY\91\11\91(bX\ 5!ÅHQ½(B\14â\9c\bØ\f\96\88ELô\9b¡*\0\1e\81\89ÝL\8fëav7O\94òCu\84R\0\10\1a\f\ 3\87ã^G·Ê«co*\81-s\12±±\8e¬0ï\9c\rÙÊ\8du\93¦º®WMneB,Ð'\10\98\11Ù`!\17HHÆ`\82\11e<Þ\ 5£\883{0BNïu®\8d\9eß=¶«\87J"\81$Å`\9c=^\11;!óª4¥yÛê\9b~\85\84\15ñ\8e®]\eR\82b"ÕnÁ\9ea§÷   s\9c4fÝîf\9b6ÏÙ\12~$\1e\ 1a\17o(à^×i\95mMV\16ç$0HÍ\98\ e\8e1i3òî\11Ùåp8!#\88Kâ¼ùQ\16a²ÜdE\vß$onR\16y;[îÂõaº¸Æ\8df­³6ûë\fX{\16\12£\98  Çò MSu\14'O´õh5#\10¾ÉM\8b/\81¢zÍj\8d®õì6ÏË\19åÓW½t!\1eÊ\××\9eàÎ\8eî¼²vbtº¾\96~>#|\9a\ 6\1cí¨\9eºÊcB"Â\85ºPÇCØ\99:îa\17ëØÇ{E\1d\1fé`ràd_Ç#\1d6õ=¶Ñ\baË`!7m\1a\98ªI»¢ï/L»^\17&K\13[\0CdSéã\rv\12b¨~Ê\89ßØ\ e\15\ ea{c\89í\ 4£\r\93ÆÂác\1a)/ïic»UÇ:ÆÆ2\85"!Æ2nÁ\17×L<îr¨¼\búÔ¡¿YñÒùë±uã¹l/ÝØÔútöÂ!2®âKÙ;\80\9dËÞ\ ev9{=¼×dï¡\8e\13Ù;Ôánk\8fÃ\8c#B%\1d;¼ïYýí\9f-­ËO\18Sx!Ø{1\8c
+Ëñ\85Ñ^\8f§o
+
+\ f\14ÌÕ¥\8e?\84\9dñº\87]ôÚÇ{\85×>\1d\9e\8e?Òñ¯;~4îø3\86§Ú\1dÂÿlûº{    \1eö}ø\ 3R鹬\9e\vè\v\7fó\0\18\1eTûn\8d$\82~®Î>m\a\98ã\97\12.d¥úH\968\92'ß©\1eÂ?\1d\98¡\80endstream
+endobj
+3140 0 obj <<
+/Type /Page
+/Contents 3141 0 R
+/Resources 3139 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3004 0 R
+>> endobj
+3142 0 obj <<
+/D [3140 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3143 0 obj <<
+/D [3140 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+3144 0 obj <<
+/D [3140 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+242 0 obj <<
+/D [3140 0 R /XYZ 202.8077 658.1081 null]
+>> endobj
+3145 0 obj <<
+/D [3140 0 R /XYZ 71.731 637.9677 null]
+>> endobj
+3146 0 obj <<
+/D [3140 0 R /XYZ 161.0655 625.2314 null]
+>> endobj
+3147 0 obj <<
+/D [3140 0 R /XYZ 71.731 613.1119 null]
+>> endobj
+3148 0 obj <<
+/D [3140 0 R /XYZ 71.731 581.746 null]
+>> endobj
+3149 0 obj <<
+/D [3140 0 R /XYZ 168.8063 570.7357 null]
+>> endobj
+3150 0 obj <<
+/D [3140 0 R /XYZ 71.731 543.6723 null]
+>> endobj
+3151 0 obj <<
+/D [3140 0 R /XYZ 71.731 514.158 null]
+>> endobj
+3152 0 obj <<
+/D [3140 0 R /XYZ 71.731 495.6688 null]
+>> endobj
+3153 0 obj <<
+/D [3140 0 R /XYZ 71.731 464.7328 null]
+>> endobj
+3154 0 obj <<
+/D [3140 0 R /XYZ 181.5683 453.0769 null]
+>> endobj
+3155 0 obj <<
+/D [3140 0 R /XYZ 71.731 443.0148 null]
+>> endobj
+3156 0 obj <<
+/D [3140 0 R /XYZ 71.731 409.5916 null]
+>> endobj
+3157 0 obj <<
+/D [3140 0 R /XYZ 71.731 398.4818 null]
+>> endobj
+3158 0 obj <<
+/D [3140 0 R /XYZ 71.731 397.2364 null]
+>> endobj
+3159 0 obj <<
+/D [3140 0 R /XYZ 129.5143 378.1579 null]
+>> endobj
+3160 0 obj <<
+/D [3140 0 R /XYZ 129.5143 378.1579 null]
+>> endobj
+3161 0 obj <<
+/D [3140 0 R /XYZ 71.731 376.7183 null]
+>> endobj
+3162 0 obj <<
+/D [3140 0 R /XYZ 71.731 376.7183 null]
+>> endobj
+3163 0 obj <<
+/D [3140 0 R /XYZ 139.477 360.2251 null]
+>> endobj
+3164 0 obj <<
+/D [3140 0 R /XYZ 139.477 360.2251 null]
+>> endobj
+3165 0 obj <<
+/D [3140 0 R /XYZ 76.7123 342.2924 null]
+>> endobj
+3166 0 obj <<
+/D [3140 0 R /XYZ 129.5143 324.3596 null]
+>> endobj
+3167 0 obj <<
+/D [3140 0 R /XYZ 129.5143 324.3596 null]
+>> endobj
+3168 0 obj <<
+/D [3140 0 R /XYZ 71.731 302.9948 null]
+>> endobj
+3169 0 obj <<
+/D [3140 0 R /XYZ 71.731 291.3834 null]
+>> endobj
+3170 0 obj <<
+/D [3140 0 R /XYZ 71.731 290.1381 null]
+>> endobj
+3171 0 obj <<
+/D [3140 0 R /XYZ 129.5143 271.0595 null]
+>> endobj
+782 0 obj <<
+/D [3140 0 R /XYZ 71.731 264.6386 null]
+>> endobj
+246 0 obj <<
+/D [3140 0 R /XYZ 203.2724 220.8239 null]
+>> endobj
+3172 0 obj <<
+/D [3140 0 R /XYZ 71.731 200.6835 null]
+>> endobj
+3173 0 obj <<
+/D [3140 0 R /XYZ 161.0655 187.9472 null]
+>> endobj
+3174 0 obj <<
+/D [3140 0 R /XYZ 71.731 175.8277 null]
+>> endobj
+3175 0 obj <<
+/D [3140 0 R /XYZ 71.731 144.4618 null]
+>> endobj
+3176 0 obj <<
+/D [3140 0 R /XYZ 168.8063 133.4515 null]
+>> endobj
+3139 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F21 514 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3179 0 obj <<
+/Length 1058      
+/Filter /FlateDecode
+>>
+stream
+xÚíWMoã6\10½çWèh\ 3\ fQ¤ö\96v»Å\16]ÀØúÖ\14\81bѱ°²dHô¦ûï;\14IY¶(˧\9e\8a\0Ñ\87\1f9\8f\8fo\86#\12aø#\91 H0¸Ð\14Ñ\84Óh{xÀÑ\eüôÛ\ 3q\90\95ì\86 \9f7\ f?}b8JQ\9aÐ$Úì"\96&\88\8b8\12\8c\89\8c6ù_\8b_öÙQ«f¹¢\1c/(²×u\99UJÿ\91½Úǧõg{óEé}\9d·Ë¿7¿?üºéãs&P*!ÈM\92=jL\93¦\91\ 4\9aIlh\12ø\95\93\98E\ 2KÄb&:\9e_²æ\9b%\91Uöª\96\84/þ)Z]ToöÍQù\85d­½æªTZånYOeé\86VºÐ\85r g̱BoèÑ>¶e±U­{ø¶$.Ò\ fÿªªóþg¥·\b\86\13û´«]ø÷}±ÝÛ[½/ÚkvþMv\ 29\9bBgºXÒdñ}Ib\88\ 5â\82`+BPÂ\13Ö-þ½ð̳²­íÝ«ºX¢}ð\ 4\ eF-Ã<\9fÐÃ\aIPÂDÒ\ 5ùªô©©\1cЭ¨Ø9MN[ФÝ\9dJ·ð\9d\99=;\95Úák½WÍ{ѪnênGÏÆ[¹Û\951\9e\86ÂfÔKÊ\17ï\9eã׺Tí\87~øÙ\10~4\ 5E\88L»ÑY~(ª{C­ÍþeMv\80µ76Äо\84\80á8\11\11\17\14Q\1e\aÝÛ\83V\ 3\947/\18[`Ò\99÷z.\13ÿ\99R>
+J)\98\9bÐPÐëë\99\84\1f4"Ád(\83\86$\8cÙ\ 2\82Ñ\18a3¿\81|p\9b­\9bÓV?^å¾\19oòf\vn­«!òÔ¨ñê<\ 3\1e#F   \vkêQ«!ì,*1Eíb=\1e6©*l;¦q\1a\8c;-«\1f5æq©+KQ,Ä%\8d'ÐÅÖÅ\80º\1cò+\86\92{­/\94,¯o@Ö\83\9dÎÖ\ f\97î§VMû\96H\14s.ç\8c;\80Ýr®\87Í[7\10÷\1eï^ó\98\90\87)\9e/EþR7/\15äq@jÉ\10\91òRé¢Ò\97uÑJ?íV\8c\11§³f=£nyÕ¡æ­:\ ez\8fSÇ$ÎZôF\1dp\0-\9cåÖç\83(7Ö{Æ\98Â\9b)QbI\11\9c*CØ\rYzج.¡¸w\b\13â1Væ\82ÆEB\9eÕñF\83Ùa\ 2Ê»­G\12§|x^N\1f'1\1cáÌ4\·Ór\b»\91\96=l6-CqïHË\10\8f\81\ 6\ ey\9cM5Ù0¸T\ 5~\ 2Q»\1c\87ã\v        É¬ \94\80À\8epÓ©    ¹øØõ)ë%\83\16¦1§w[W\9f\9a%\85L>üYèPþÇ\ 2I\8aÅÕÉßÔºÖ?\8eêÞ¾Â\ 5\86\ 4tÁú.Ñ\9c\81\8f¾\9b3\10W\92Ô!+|gÔÂ\b÷º¬ß\8aêå5kU×#ÞÙ­|Tí¶)\8eæ8¸Å\9aA3\9fÐÔYñP\e\95¾\9b\7f¾­\85sÅ1:ª­Mò|ÈÝ5r°È9¼Y\92k¡?ï®Àù|_[Õ®ìfþ<;¼ú¤ªw÷Dë[íP7¬\9a¦¾ê¤\9b.\17ÿol'*\11Á\ 4á4Ig*Ñ\10\12õ°ÙJ\14\8a{G%\1añ\b7\b\17<þÓöÖ}oÇ\12I2¡ªÿ$\1f`Æ_ä\9c\97¦ýL\86f\9cN~_\a\ 2þ\vÒÊÌ\fendstream
+endobj
+3178 0 obj <<
+/Type /Page
+/Contents 3179 0 R
+/Resources 3177 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3004 0 R
+>> endobj
+3180 0 obj <<
+/D [3178 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3181 0 obj <<
+/D [3178 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+3182 0 obj <<
+/D [3178 0 R /XYZ 71.731 658.8289 null]
+>> endobj
+3183 0 obj <<
+/D [3178 0 R /XYZ 181.5683 647.1731 null]
+>> endobj
+3184 0 obj <<
+/D [3178 0 R /XYZ 71.731 637.1109 null]
+>> endobj
+3185 0 obj <<
+/D [3178 0 R /XYZ 71.731 605.5393 null]
+>> endobj
+3186 0 obj <<
+/D [3178 0 R /XYZ 71.731 592.5779 null]
+>> endobj
+3187 0 obj <<
+/D [3178 0 R /XYZ 71.731 591.3326 null]
+>> endobj
+3188 0 obj <<
+/D [3178 0 R /XYZ 129.5143 572.254 null]
+>> endobj
+3189 0 obj <<
+/D [3178 0 R /XYZ 129.5143 572.254 null]
+>> endobj
+3190 0 obj <<
+/D [3178 0 R /XYZ 71.731 570.8145 null]
+>> endobj
+3191 0 obj <<
+/D [3178 0 R /XYZ 71.731 570.8145 null]
+>> endobj
+3192 0 obj <<
+/D [3178 0 R /XYZ 139.477 554.3213 null]
+>> endobj
+3193 0 obj <<
+/D [3178 0 R /XYZ 139.477 554.3213 null]
+>> endobj
+3194 0 obj <<
+/D [3178 0 R /XYZ 76.7123 536.3885 null]
+>> endobj
+3195 0 obj <<
+/D [3178 0 R /XYZ 129.5143 518.4558 null]
+>> endobj
+3196 0 obj <<
+/D [3178 0 R /XYZ 129.5143 518.4558 null]
+>> endobj
+3197 0 obj <<
+/D [3178 0 R /XYZ 71.731 516.299 null]
+>> endobj
+3198 0 obj <<
+/D [3178 0 R /XYZ 71.731 516.299 null]
+>> endobj
+3199 0 obj <<
+/D [3178 0 R /XYZ 139.477 500.523 null]
+>> endobj
+3200 0 obj <<
+/D [3178 0 R /XYZ 71.731 499.0835 null]
+>> endobj
+3201 0 obj <<
+/D [3178 0 R /XYZ 139.477 482.5903 null]
+>> endobj
+3202 0 obj <<
+/D [3178 0 R /XYZ 71.731 444.7322 null]
+>> endobj
+3203 0 obj <<
+/D [3178 0 R /XYZ 71.731 431.6813 null]
+>> endobj
+3204 0 obj <<
+/D [3178 0 R /XYZ 71.731 430.4359 null]
+>> endobj
+3205 0 obj <<
+/D [3178 0 R /XYZ 129.5143 411.3574 null]
+>> endobj
+783 0 obj <<
+/D [3178 0 R /XYZ 71.731 404.9365 null]
+>> endobj
+250 0 obj <<
+/D [3178 0 R /XYZ 298.3181 361.1218 null]
+>> endobj
+3206 0 obj <<
+/D [3178 0 R /XYZ 71.731 340.9814 null]
+>> endobj
+3207 0 obj <<
+/D [3178 0 R /XYZ 161.0655 328.2451 null]
+>> endobj
+3208 0 obj <<
+/D [3178 0 R /XYZ 71.731 316.1256 null]
+>> endobj
+3209 0 obj <<
+/D [3178 0 R /XYZ 71.731 284.7597 null]
+>> endobj
+3210 0 obj <<
+/D [3178 0 R /XYZ 168.8063 273.7494 null]
+>> endobj
+3211 0 obj <<
+/D [3178 0 R /XYZ 71.731 246.686 null]
+>> endobj
+3212 0 obj <<
+/D [3178 0 R /XYZ 71.731 220.4593 null]
+>> endobj
+3213 0 obj <<
+/D [3178 0 R /XYZ 71.731 187.6718 null]
+>> endobj
+3214 0 obj <<
+/D [3178 0 R /XYZ 181.5683 176.0159 null]
+>> endobj
+3215 0 obj <<
+/D [3178 0 R /XYZ 71.731 165.9538 null]
+>> endobj
+3216 0 obj <<
+/D [3178 0 R /XYZ 71.731 134.3821 null]
+>> endobj
+3217 0 obj <<
+/D [3178 0 R /XYZ 71.731 121.4208 null]
+>> endobj
+3218 0 obj <<
+/D [3178 0 R /XYZ 71.731 120.1754 null]
+>> endobj
+3219 0 obj <<
+/D [3178 0 R /XYZ 129.5143 101.0969 null]
+>> endobj
+3220 0 obj <<
+/D [3178 0 R /XYZ 129.5143 101.0969 null]
+>> endobj
+3221 0 obj <<
+/D [3178 0 R /XYZ 71.731 99.6573 null]
+>> endobj
+3222 0 obj <<
+/D [3178 0 R /XYZ 71.731 99.6573 null]
+>> endobj
+3177 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3225 0 obj <<
+/Length 1134      
+/Filter /FlateDecode
+>>
+stream
+xÚÍXÁnã6\10½ç+t´\81\98\15IQ$sK»M±E\v\18»î©)\ 2Ŧ\13\ 1¶dP2¶û÷\1dI¤LY´¨Å\ 2\8b"\aÉÎ#çññÍph\1cÅð\87#\8e\11§ð \12\91\94\91h{¼\8b£7ø×owØ@V\ 6³rA?oî~z¢q$\91LI\1a\11\95)b<\898%H0,¢ÍîïÅ/ïÙ©Vz¹",^\10Ô=×\87¬Põ\1fÙk÷ñqý±{ùSÕïå®Zþ³ùýî×M\1f\9fQ\8e¤\80 \93$\93X $\154Z\91\18I\82\99\17\85a
+\86\13@qÀÓ\84ò~1DF\1cáf¡°\98\1e×Ã\9aÕ<\13®ÙaXnL\12\19¹\13Ú¸×Ï\v\ f;jÌ\83\8aH\80¨iÒò \12%\9c\ fi<\9eë÷N«\86LËü²\r,Ei\ 2Û\10·Ð\87NÙªÖyñvoô\86᪨ómVçeÑ}wì¦kßë²{\9e+5Z,\ 6Y\18æQÊ        ð\12þ­èQ+\17v\11Yò¸\13y4ÛM\91     \81åcâ\8d{[d;jÌc(²Ýì\ 1\8f\93ÒUY¼ä»\97R¿¨c\96\1f<jK\89(¹V;/êî¥Ô®üãEÙ°,A,aIÀ±.l±=,èX_Ü\19\8eõñ¸(b\1d\ 1\8a\18óýUÙj\90ï\1a\13>Ç1\81onJCÁÎ\98ð\904\ elJ\1a\v\v\89;G\1a\ f\ f\8f4.\8dAj®u~Ìô×î\83Zµ¦kß³ÝN«ªº\9d\8fq\8c\83ùèÀ¦òÑÂÂùè\89;'\1f¯yÜÈG\97G\95×Êdã¡|Ë\8b\97׬+P×*c\ 6\aA*¿/'\99\80S\f\9cta\13ÆëaAãùâÎ0\9e\8fÇØx\ 3\1a\97\9cü\fÊ~CN²4ABàPNº°)i,,,\8d\1ci<<<Ò¸4\ 69yQ§:ä[ózÒªQéß\86,\ 4\83ù\b\1c#\11KÖNòIÕg]T\ f7s6\91\14\8ej!\ 29ëÂ&r¶\87\ 5\17wFÎúx8:Úý\1cð¸x\f\e\83í\8d\94çí\16êÙþl\ fUàÇ\11tmm\ 1X1\8e¸ \9d \84²´\9d\8c èm`8\17\8b\ fê jµ^R¨\92z\89Ù\ 2Nê'½$\90ÞÇÏí.\8dëBÂ\91 1\bÚô§<ívz­Ëº¬¿\9eÔC?âR\87ÌØ\15ÁP®\85l\a\98Èmoð¤m´vMÏ1\8b3è­Ì\8aÇýýc#ó}\91\1dÁH\f{ø®lx\97ï\aUmu~j\1a·)ÆpÀ°\94¸\8c+ÓÛ½[/\9fÔ¶Kô\9dK·{ßÃÂBøv\15¦¡ÿ¸¿B»\93å&tQ\9a
+\9cÙ\96óøj{\81òz\82vö{;Ð\9c\87Z\97ÚL\96év\8bÁ£\90)(e)mתÛ\9cS;Ôÿ\13NZÊS7!\ 3~4A÷K\f\87ÚàK ¦¿ä\95Bs·êñp(\97\84-¾XÅ>\95\aUÍõY¶;æ\85uR>7æºÉ\85L\83©àÒ5Qz° \88
+¸,M\97\1e\176QzzX°ôøâÎ(=#\1eþvaÀ£ÉD\8fl$A1\1e]\8eÎ[[§úËhæ¹%uȳV7ÏF\9cBóÁXèòéÂ&ÎÆ\1e\16<\e}qg\9c\8d#\1eÞËç\80ÆÿàòÙê#CÞíASÎí@aß\8e"Îqí\90Á\rÏ^\18ü¸\v'nk&§!\97:°)\97ZXØ¥\9e¸s\êá1îà\ 64¾õÂi~âJ\ 4ôÇ©\9cü\15ÌÁ\8c\7f\ 4cD@}\91²\9f©!Ãâ\9b?iy\ 2þ\aüûqÕendstream
+endobj
+3224 0 obj <<
+/Type /Page
+/Contents 3225 0 R
+/Resources 3223 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3275 0 R
+>> endobj
+3226 0 obj <<
+/D [3224 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3227 0 obj <<
+/D [3224 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+3228 0 obj <<
+/D [3224 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+3229 0 obj <<
+/D [3224 0 R /XYZ 76.7123 690.4109 null]
+>> endobj
+3230 0 obj <<
+/D [3224 0 R /XYZ 129.5143 672.4782 null]
+>> endobj
+3231 0 obj <<
+/D [3224 0 R /XYZ 129.5143 672.4782 null]
+>> endobj
+3232 0 obj <<
+/D [3224 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+3233 0 obj <<
+/D [3224 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+3234 0 obj <<
+/D [3224 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+3235 0 obj <<
+/D [3224 0 R /XYZ 71.731 653.1059 null]
+>> endobj
+3236 0 obj <<
+/D [3224 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+3237 0 obj <<
+/D [3224 0 R /XYZ 76.7123 618.6799 null]
+>> endobj
+3238 0 obj <<
+/D [3224 0 R /XYZ 129.5143 600.7472 null]
+>> endobj
+3239 0 obj <<
+/D [3224 0 R /XYZ 129.5143 600.7472 null]
+>> endobj
+3240 0 obj <<
+/D [3224 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+3241 0 obj <<
+/D [3224 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+3242 0 obj <<
+/D [3224 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+3243 0 obj <<
+/D [3224 0 R /XYZ 71.731 581.3749 null]
+>> endobj
+3244 0 obj <<
+/D [3224 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+3245 0 obj <<
+/D [3224 0 R /XYZ 71.731 527.0236 null]
+>> endobj
+3246 0 obj <<
+/D [3224 0 R /XYZ 71.731 513.9727 null]
+>> endobj
+3247 0 obj <<
+/D [3224 0 R /XYZ 71.731 512.7273 null]
+>> endobj
+3248 0 obj <<
+/D [3224 0 R /XYZ 129.5143 493.6488 null]
+>> endobj
+784 0 obj <<
+/D [3224 0 R /XYZ 71.731 487.2279 null]
+>> endobj
+254 0 obj <<
+/D [3224 0 R /XYZ 306.9429 443.4132 null]
+>> endobj
+3249 0 obj <<
+/D [3224 0 R /XYZ 71.731 423.2728 null]
+>> endobj
+3250 0 obj <<
+/D [3224 0 R /XYZ 161.0655 410.5365 null]
+>> endobj
+3251 0 obj <<
+/D [3224 0 R /XYZ 71.731 398.417 null]
+>> endobj
+3252 0 obj <<
+/D [3224 0 R /XYZ 71.731 367.0511 null]
+>> endobj
+3253 0 obj <<
+/D [3224 0 R /XYZ 168.8063 356.0408 null]
+>> endobj
+3254 0 obj <<
+/D [3224 0 R /XYZ 71.731 328.9774 null]
+>> endobj
+3255 0 obj <<
+/D [3224 0 R /XYZ 71.731 302.7507 null]
+>> endobj
+3256 0 obj <<
+/D [3224 0 R /XYZ 71.731 269.9632 null]
+>> endobj
+3257 0 obj <<
+/D [3224 0 R /XYZ 181.5683 258.3073 null]
+>> endobj
+3258 0 obj <<
+/D [3224 0 R /XYZ 71.731 248.2452 null]
+>> endobj
+3259 0 obj <<
+/D [3224 0 R /XYZ 71.731 214.822 null]
+>> endobj
+3260 0 obj <<
+/D [3224 0 R /XYZ 71.731 203.7122 null]
+>> endobj
+3261 0 obj <<
+/D [3224 0 R /XYZ 71.731 202.4668 null]
+>> endobj
+3262 0 obj <<
+/D [3224 0 R /XYZ 129.5143 183.3883 null]
+>> endobj
+3263 0 obj <<
+/D [3224 0 R /XYZ 129.5143 183.3883 null]
+>> endobj
+3264 0 obj <<
+/D [3224 0 R /XYZ 71.731 181.9487 null]
+>> endobj
+3265 0 obj <<
+/D [3224 0 R /XYZ 71.731 181.9487 null]
+>> endobj
+3266 0 obj <<
+/D [3224 0 R /XYZ 139.477 165.4555 null]
+>> endobj
+3267 0 obj <<
+/D [3224 0 R /XYZ 139.477 165.4555 null]
+>> endobj
+3268 0 obj <<
+/D [3224 0 R /XYZ 76.7123 147.5228 null]
+>> endobj
+3269 0 obj <<
+/D [3224 0 R /XYZ 129.5143 129.59 null]
+>> endobj
+3270 0 obj <<
+/D [3224 0 R /XYZ 129.5143 129.59 null]
+>> endobj
+3271 0 obj <<
+/D [3224 0 R /XYZ 71.731 127.4332 null]
+>> endobj
+3272 0 obj <<
+/D [3224 0 R /XYZ 71.731 127.4332 null]
+>> endobj
+3273 0 obj <<
+/D [3224 0 R /XYZ 139.477 111.6573 null]
+>> endobj
+3274 0 obj <<
+/D [3224 0 R /XYZ 71.731 110.2177 null]
+>> endobj
+3223 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3278 0 obj <<
+/Length 1091      
+/Filter /FlateDecode
+>>
+stream
+xÚ¥X]\8f\9c6\14}ß_Áã\8c\14\\7f`lïÛ&i«T\8d4J¦OÝjEÀ\9bAa`\ 5LÓý÷½\8c\rc\ 6\ f\90\0³\1cß{||¿\80\ 4\18þH \b\12\f.T!\1as\1a¤Ç;\1c|\85G¿Þ\11\v        -&tAo÷w?ýÂp \90\8ai\1cì\9f\ 3¦bÄE\14\bF\91äD\ 6ûìÏÍ»CòÒêz\eR\8e7\14\99ë®HJÝþ\9e|1?\1fv\1fÌÍGÝ\1eª¬Ùþµÿíîçýà\9f3\81\94\ 4'³$#,Q\14K\16\84\14#E   ÷¢\b\98à$\ 2\94\0<\8b\98\186CU \10é6
+\9b\19p\ 3¬ÛÍ#¥ü\9a\1d\81íb\1a©À5Øû½¾^xô«¼<.¢\12¦P$Ä\98FÓÖyùõ\8d\15³Î\8fIýj~èð\98ä\85¹O²¬ÖÍDMB`g\9c\88 \16\14LK¿\9a\ 3*ta\17\9d\94ÀF§\89µ\9b:Q
+; Ôë÷¶Nýª)\ f&\ 3  :ÅÑè¼F<\9a"OõS\9e=UõS\99\1cuÇéJ`)\11\8f\85\ 4\82{#]^¶æ¦²\91k\14\9fn©wÊ#Ä#\1e-\84\9c\v\9b       ¹\ 1\18r>¿+BÎÇc\1ar#\1a \88\8d·Ï\9d¦V¦L\97\881\85\f¿©\r\8bQL¨XÒÆ\81ÍiÓÃ\96µñø]£\8d\87\87G\e\97Æ(\1d\1d\88\ 3ó`\81rØ%ÇHbÅÏË>éöT\97ÍýÍ\ 4å1GL(¹\90 .l&A\aØb\82úü®HP\1f\ fG¹þ\ 4G<.aElH=Û\84;¥)\14¯çSas\16ø       \ 4\9cí!\17HHf\ 4¥\8cÇgc\14ÚO×a\84ܼ×\85nõnË $Ö[Â7MUz\92?\12HR\f\1av-KÄæ8wuÕVíë\8b¾\1fV\ê\8c]\eR\ 2ç/Õy\81u¦ëÎÉ\99ý#æ89µ\a»·\97ó#[\87tW¡\ 1@<|ÂÞ¼Ëç½nÒ:\7fióª\9cc\ 4\11Écj\18}Lêo¶ XFº\13á\9f¼i»2f\9e¤iuêë\Ò\98kvÞJ\86Îa\8bÁ(A\\12\1f\rl£·\9a\99\9b\aû¿´wU\95Å«kÍ"\ fúØèâï\8e\87núAàÃ\7fY|Å¡\82§¶L\97U\19\ e6\93vX\9c÷e<o\aßyÙô»$p\98<fç]\ eL\ÿð?ðüZ\95zP\86@\ 1`"v3y!\90m0<o     \18<\15mãÐÿ\9e7Æô\9a\80x(\8ajKù滶
+|ª
+ݬ\8dÖ$;æe\1f\98¹½9ÁÙn#¼ys9Öµlv\9d4I\rµ\ eæ¼\99jF)C0É\89\85jæÂfªÙ\0[¬f>¿+ªÙ\84\87\7fÜ\18ñèRÞ#\e\8d\10\ 1\ 3ZÆ)íKß0ÿvë»\8e\9a&]²»ÈS­o6X\8a9\8añÒ¸ë fÚk\8fZì®\1e§+\9aë5\89±¦¶·º\1c\1e@\11óVàÑ\95C
+FðÂq­ì¥\19?x\ 4=\1as&Ϋ!üoÆ-\89\15¼ý(¾\10·.l&n\aØbÜúü®\88Û    \ f\7fÜ\8exLû\93Gm¥\10£×jÿè L8\81\ 1(^\1a\ 6]ØL´\ e°Åpõù]\11¯>\1eÓapDã2Ñtýò\aædÂ\18\14Õ¥W\b\a5'\8cE-ë2uºF\96)      \8f*\ e\87ÿõÂj¿>D\12Á$¢f?P8\98é÷  N%Ôa¥\ 6K\1d33\86y¿6x\1cþ\v\11Ôéîendstream
+endobj
+3277 0 obj <<
+/Type /Page
+/Contents 3278 0 R
+/Resources 3276 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3275 0 R
+>> endobj
+3279 0 obj <<
+/D [3277 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3280 0 obj <<
+/D [3277 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+3281 0 obj <<
+/D [3277 0 R /XYZ 76.7123 690.4109 null]
+>> endobj
+3282 0 obj <<
+/D [3277 0 R /XYZ 129.5143 672.4782 null]
+>> endobj
+3283 0 obj <<
+/D [3277 0 R /XYZ 129.5143 672.4782 null]
+>> endobj
+3284 0 obj <<
+/D [3277 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+3285 0 obj <<
+/D [3277 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+3286 0 obj <<
+/D [3277 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+3287 0 obj <<
+/D [3277 0 R /XYZ 71.731 653.1059 null]
+>> endobj
+3288 0 obj <<
+/D [3277 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+3289 0 obj <<
+/D [3277 0 R /XYZ 71.731 598.7547 null]
+>> endobj
+3290 0 obj <<
+/D [3277 0 R /XYZ 71.731 585.7037 null]
+>> endobj
+3291 0 obj <<
+/D [3277 0 R /XYZ 71.731 584.4584 null]
+>> endobj
+3292 0 obj <<
+/D [3277 0 R /XYZ 129.5143 565.3798 null]
+>> endobj
+785 0 obj <<
+/D [3277 0 R /XYZ 71.731 558.9589 null]
+>> endobj
+258 0 obj <<
+/D [3277 0 R /XYZ 224.0515 515.1442 null]
+>> endobj
+3293 0 obj <<
+/D [3277 0 R /XYZ 71.731 495.0038 null]
+>> endobj
+3294 0 obj <<
+/D [3277 0 R /XYZ 161.0655 482.2675 null]
+>> endobj
+3295 0 obj <<
+/D [3277 0 R /XYZ 71.731 470.148 null]
+>> endobj
+3296 0 obj <<
+/D [3277 0 R /XYZ 71.731 438.7821 null]
+>> endobj
+3297 0 obj <<
+/D [3277 0 R /XYZ 168.8063 427.7718 null]
+>> endobj
+3298 0 obj <<
+/D [3277 0 R /XYZ 71.731 400.7084 null]
+>> endobj
+3299 0 obj <<
+/D [3277 0 R /XYZ 71.731 369.3425 null]
+>> endobj
+3300 0 obj <<
+/D [3277 0 R /XYZ 71.731 341.0486 null]
+>> endobj
+3301 0 obj <<
+/D [3277 0 R /XYZ 71.731 310.1126 null]
+>> endobj
+3302 0 obj <<
+/D [3277 0 R /XYZ 181.5683 298.4568 null]
+>> endobj
+3303 0 obj <<
+/D [3277 0 R /XYZ 71.731 288.3946 null]
+>> endobj
+3304 0 obj <<
+/D [3277 0 R /XYZ 71.731 254.9714 null]
+>> endobj
+3305 0 obj <<
+/D [3277 0 R /XYZ 71.731 243.8616 null]
+>> endobj
+3306 0 obj <<
+/D [3277 0 R /XYZ 71.731 242.6163 null]
+>> endobj
+3307 0 obj <<
+/D [3277 0 R /XYZ 129.5143 223.5377 null]
+>> endobj
+3308 0 obj <<
+/D [3277 0 R /XYZ 129.5143 223.5377 null]
+>> endobj
+3309 0 obj <<
+/D [3277 0 R /XYZ 71.731 222.0982 null]
+>> endobj
+3310 0 obj <<
+/D [3277 0 R /XYZ 71.731 222.0982 null]
+>> endobj
+3311 0 obj <<
+/D [3277 0 R /XYZ 139.477 205.605 null]
+>> endobj
+3312 0 obj <<
+/D [3277 0 R /XYZ 139.477 205.605 null]
+>> endobj
+3313 0 obj <<
+/D [3277 0 R /XYZ 76.7123 187.6722 null]
+>> endobj
+3314 0 obj <<
+/D [3277 0 R /XYZ 129.5143 169.7395 null]
+>> endobj
+3315 0 obj <<
+/D [3277 0 R /XYZ 129.5143 169.7395 null]
+>> endobj
+3316 0 obj <<
+/D [3277 0 R /XYZ 71.731 167.5826 null]
+>> endobj
+3317 0 obj <<
+/D [3277 0 R /XYZ 71.731 167.5826 null]
+>> endobj
+3318 0 obj <<
+/D [3277 0 R /XYZ 139.477 151.8067 null]
+>> endobj
+3319 0 obj <<
+/D [3277 0 R /XYZ 71.731 150.3672 null]
+>> endobj
+3320 0 obj <<
+/D [3277 0 R /XYZ 139.477 133.874 null]
+>> endobj
+3276 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3323 0 obj <<
+/Length 1085      
+/Filter /FlateDecode
+>>
+stream
+xÚ\95X[\8f£6\18}\9f_Ác"\15×WlæmÚíV[µR4Ê>uª\11M\9c\rj\ 2\11\90®æß÷3\18bÀ\ªy\80!Ç>ÇÇç³\r$ÀðG\ 2I\90dp¡1¢\91 Ááú\84\83oðÓ¯OÄBB\8b       ]ÐOû§\1f?3\1cÄ(\8eh\14ìO\ 1\8b#$$\ f$£H       ¢\82ýñÏÍÏçäVéb\eR\817\145×Ý%Étõ{òwóïËîKsó\87®Îù±Üþµÿíé\97}Ç/\98\ 2\92Y\91\1dj,\93Æ\8eLBb$\ 4\91\81Ä
+1Îd­óUW÷"+\9f\87Ü\1d:RÐ=ÅÌËÝ¡B\17ÖrÃ\13\89I\8f»\83\19î7JÅ\88\97R\10\97wx}èh[yu8\1e\80C\82pÖ×\91\ fÍD\90æ\92\9e\9aky?\1ctY\9eî\17#\13ú\ 2}\12Q"¸é,\14\12\18Ü`D\99\88êÎ(\12ÊL·T\9bOú¢+ý\9a_ôçbKñ&¿î¶\f\15DlÊ<³\9dº\ 2¹D\8abðÓdIFÍ\1cí\8a¼Ê«\8f\9b~îZ(h\11Õ*lÛ\90\12\14\91¸Æ»¼À©\vÃU\ fè\r\v\9cÜ«³\1dn\ 1\90÷ôø\9e\17ïYrÕöé­n`\9fëk\92\19ñ\88\r[nWì']\1e\8aôV¥y6'\97AÍDÔÕ[6ìÕY[óoú\90¾aLõñ¡¶¹;Á°\ 6èF42\8c\10\89\90\11\98\ 6ÒÌÈî\8bíú\90X\eòìòaûÔ[*6ÿÖ³óÏ\96Àä\fú­ôáÜÜ%\99Õq/Ûº6\8aÊ¡$ós9hbzi\9fU\1dCj»)S\18½]"Òl(vJ"ü\ e\98ö¦\ 5XK\b\ 4\ 4,¯-©\87 Ä¦ó\8bD(b2r\97\84\85\8a°a9\19EÉýRY|\ eã*¾§¥Fk\ 3ór¹äf\84ßÛy6Á-WF=9^Ó¬Ímº\96rg\8cI
+\88<,Ñ3k\1fã\11ÂRÑ\85µÏ\85ͬ}\1dlqíóñ®XûF:\98rÜëÖ¾\9e\ e³\1axl£\1caÃ` Ïvê«â~h\17Ênë2íuV¥\87ÄT¼\8b¼CpG\ 3l%P\85\b\87eÔkl\8b
+]ØÃXböäÞ\80Zؤ±0ù\98òØË;mlÛj¬£o,\8b\11\97²/ã\ 5|i¶u\8f»\ 2ª\8dÃ\89aèo\9a}kýõØzmºkV\8f¼[l&ÓKc\8a¨\8cã\85ôº°\99ôv°ÅôúxW¤w¤Ã\9fÞ\9e\8eÁ\ 6æ±Z1D\94ê;\rû½]¬
+×úÉ´RÉA£¤\viua3ií`\8biõñ®H«O\87s\ 4²iíÉx\9c\80\8d$=\9a\0Ö\ep1m\rD\99\13¾TÈ.lÎ\9a\16¶l\8d\87w\8d5\1e\1d\1ek\\19½²¬Ý\99¬7\8a\91àj±Þ\1cØ\½µ°åzó𮩷¡\8e\89zsu\8c\8f\86\9e\92\8bcÄèpuûß5\87)lòÑbÍ9°¹`µ°å`yx×\ 4Ë£Ã\13,WÆ£æ¾v\aÊU5G\14G\91bK5çÂf¬é`\8bÖøxWXãÓ1¶¦'£Ws»"½&\85=çê°\ e]sô8\1e\v8\8bÖGØ\10Ê&¦¢y\17S8æë^n a\88\v\1c-\94¬\v\9b\ e¶X²>Þ\15%ëÓáy¹íéXùrëÊ´\9f=¸Bð
+\15Ï~\19q0ã\ f#\ 2\ eD\98ÀVÝ¢\8c\1eA'?sx\bÿ\ 3^@\ 3#endstream
+endobj
+3322 0 obj <<
+/Type /Page
+/Contents 3323 0 R
+/Resources 3321 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3275 0 R
+>> endobj
+3324 0 obj <<
+/D [3322 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3325 0 obj <<
+/D [3322 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+3326 0 obj <<
+/D [3322 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+3327 0 obj <<
+/D [3322 0 R /XYZ 71.731 708.2442 null]
+>> endobj
+3328 0 obj <<
+/D [3322 0 R /XYZ 71.731 706.9988 null]
+>> endobj
+3329 0 obj <<
+/D [3322 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+786 0 obj <<
+/D [3322 0 R /XYZ 71.731 681.4994 null]
+>> endobj
+262 0 obj <<
+/D [3322 0 R /XYZ 304.051 637.6847 null]
+>> endobj
+3330 0 obj <<
+/D [3322 0 R /XYZ 71.731 617.5443 null]
+>> endobj
+3331 0 obj <<
+/D [3322 0 R /XYZ 161.0655 604.8079 null]
+>> endobj
+3332 0 obj <<
+/D [3322 0 R /XYZ 71.731 592.6885 null]
+>> endobj
+3333 0 obj <<
+/D [3322 0 R /XYZ 71.731 561.3226 null]
+>> endobj
+3334 0 obj <<
+/D [3322 0 R /XYZ 168.8063 550.3123 null]
+>> endobj
+3335 0 obj <<
+/D [3322 0 R /XYZ 71.731 523.2489 null]
+>> endobj
+3336 0 obj <<
+/D [3322 0 R /XYZ 71.731 491.883 null]
+>> endobj
+3337 0 obj <<
+/D [3322 0 R /XYZ 71.731 465.4407 null]
+>> endobj
+3338 0 obj <<
+/D [3322 0 R /XYZ 71.731 432.6531 null]
+>> endobj
+3339 0 obj <<
+/D [3322 0 R /XYZ 181.5683 420.9972 null]
+>> endobj
+3340 0 obj <<
+/D [3322 0 R /XYZ 71.731 410.9351 null]
+>> endobj
+3341 0 obj <<
+/D [3322 0 R /XYZ 71.731 377.5119 null]
+>> endobj
+3342 0 obj <<
+/D [3322 0 R /XYZ 71.731 366.4021 null]
+>> endobj
+3343 0 obj <<
+/D [3322 0 R /XYZ 71.731 365.1567 null]
+>> endobj
+3344 0 obj <<
+/D [3322 0 R /XYZ 129.5143 346.0782 null]
+>> endobj
+3345 0 obj <<
+/D [3322 0 R /XYZ 129.5143 346.0782 null]
+>> endobj
+3346 0 obj <<
+/D [3322 0 R /XYZ 71.731 344.6387 null]
+>> endobj
+3347 0 obj <<
+/D [3322 0 R /XYZ 71.731 344.6387 null]
+>> endobj
+3348 0 obj <<
+/D [3322 0 R /XYZ 139.477 328.1454 null]
+>> endobj
+3349 0 obj <<
+/D [3322 0 R /XYZ 139.477 328.1454 null]
+>> endobj
+3350 0 obj <<
+/D [3322 0 R /XYZ 76.7123 310.2127 null]
+>> endobj
+3351 0 obj <<
+/D [3322 0 R /XYZ 129.5143 292.2799 null]
+>> endobj
+3352 0 obj <<
+/D [3322 0 R /XYZ 129.5143 292.2799 null]
+>> endobj
+3353 0 obj <<
+/D [3322 0 R /XYZ 71.731 290.1231 null]
+>> endobj
+3354 0 obj <<
+/D [3322 0 R /XYZ 71.731 290.1231 null]
+>> endobj
+3355 0 obj <<
+/D [3322 0 R /XYZ 139.477 274.3472 null]
+>> endobj
+3356 0 obj <<
+/D [3322 0 R /XYZ 71.731 272.9076 null]
+>> endobj
+3357 0 obj <<
+/D [3322 0 R /XYZ 139.477 256.4144 null]
+>> endobj
+3358 0 obj <<
+/D [3322 0 R /XYZ 76.7123 238.4817 null]
+>> endobj
+3359 0 obj <<
+/D [3322 0 R /XYZ 129.5143 220.5489 null]
+>> endobj
+3360 0 obj <<
+/D [3322 0 R /XYZ 129.5143 220.5489 null]
+>> endobj
+3361 0 obj <<
+/D [3322 0 R /XYZ 71.731 218.3921 null]
+>> endobj
+3362 0 obj <<
+/D [3322 0 R /XYZ 71.731 218.3921 null]
+>> endobj
+3363 0 obj <<
+/D [3322 0 R /XYZ 139.477 202.6162 null]
+>> endobj
+3364 0 obj <<
+/D [3322 0 R /XYZ 71.731 201.1766 null]
+>> endobj
+3365 0 obj <<
+/D [3322 0 R /XYZ 139.477 184.6834 null]
+>> endobj
+3366 0 obj <<
+/D [3322 0 R /XYZ 71.731 146.8254 null]
+>> endobj
+3367 0 obj <<
+/D [3322 0 R /XYZ 71.731 133.7744 null]
+>> endobj
+3368 0 obj <<
+/D [3322 0 R /XYZ 71.731 132.5291 null]
+>> endobj
+3369 0 obj <<
+/D [3322 0 R /XYZ 129.5143 113.4506 null]
+>> endobj
+787 0 obj <<
+/D [3322 0 R /XYZ 71.731 107.0297 null]
+>> endobj
+3321 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F21 514 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3372 0 obj <<
+/Length 926       
+/Filter /FlateDecode
+>>
+stream
+xÚµW]\8f\9b:\10}ß_Ác"\15\17Û\18\9b¾m?Õê¶Zm#õ¡[­(q\1a$\ 2\11\98®î¿ï8¶\89Ù\98$RUE
+$\9cñ9s<c\e\1c%ðÁ\11Ç\88\90\1c\91\8c\91¨ÜÝ$Ñ/xôá\ 6[Hl1±\ fz½ºyù\9e&Q\8eò\8cdÑj\13Ñ<C\8c§\11§\ 4  \86E´Z\7f_¼Ù\16{%»eLX² È\ïê¢\91ê¿â§ùy{÷ÑÜ|\96jÛ®ûå\8fÕ§\9b\91\9fQ\8er\ 1$gE\8e¨S\99\ 4G\98#\82Yªuº\8c\93\faÌó\83L\82X®Åq±x+k©ä}[K­\ 3\82s/Ç\94#A\12\1eÅ:G\9eñCð]תVý¿\97¯Æ\b\ 1\11Ù\81ÍÆÆ\ 4£\f\vÃæQ\1cò~HXR\fjûÂüìàÁcµ~l»Ç¦ØIx\8a\ 3Rb7²/å­ìˮګªmÎ\89¡0S\19ñÅô\86º8*@:\1e¬\8d)FLàì\0þ¶Ä\ 4&ìþËÇ/\1f^\19ìj[Ù৪®m¼ÜµKÌ\16¿õ\97MRmíM¿\97\90$D®\8flænÓµ;+Ä\rU\94e;4ªw\83\14ÊÜíÛ¾\97½ý»RÖº¢YÏ\8eÔ´kù\fÕ×U)]\9e\18f\88\90g¡TWý\B®ÃèÍ\91»\93\eWÒªu
+F¿p\86\8d_÷R\r]c\aÀ\16º±äCYB\ 6\9b¡¶â7K\fÚ\86Ú%Û\82eÝSÕ\9b©¸fúoëº]\12¶xrÖê\1aë¯-Ëb½«\9ak©îôÔ\16\1dÔ'´·¡ð{\16ã\1c1\86y\94â\141\8cÓ`Ï\8e¨Ø\87\99\9eÍ#èg\9e`­àt4-á\81\10vÂK\b¢)&AÞç×£\ e\17\83
+Ï5\f+\vÃ)\9dêЭ\e°\8d¤(Ñ\f\1ab{¥WÝPºZ\1d\97=\1d/\eU\95\85î[\1f9tò4A+Á,·\82\87\8du¨Ø\87\1d\8dÅz\ 5ô\13\1aa³ÆÂä'$Í\83¼óƺ¨S\1dSci\8eRΧ2nÁ\17³%\ 4ÜeÐe)ì6Ïý­\9a_Îß\80­;3ܤu\87^ÎV/Í\12Ä!\89\vÕëÃÎTï\b»X½!Þ+ª÷DG¸z':\9eí6\ 1«\ 5EX\88©ÓUc׶ó­\9f¯Ö\94 .\92ôRµz°sÕê`\97«5À{Mµ\ 6t\1c\r\19«Õ\97\ 1\8e¼8.ºÖ¥µ.ÀÃ^×Í[\ 3\v\85ÐÃ]°Æ\83\9d³ÆÁ.[\13à½Æ\9a\80\8e\80\8cI[º\93\15\8c    a\84Aj,A"É\99¿cÎo(\10\ 1[V*.´¤\ f\92#ìbK\86x¯hÉ\90\ eÏ.7m\13\1dÇR\9a=2Ø6\9d\1clcÆ¡\1c©1\94P\96Ù£-t»\7f´ý
+#è\ 5ñß\9en\1dËä\80û7GY\7f\11>\15\b\ e¦ùÙw\16\ fsúÊÂ\88\80=:ÏÇ\9141£³/ \ 1Â?¹Â\12\17endstream
+endobj
+3371 0 obj <<
+/Type /Page
+/Contents 3372 0 R
+/Resources 3370 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3275 0 R
+>> endobj
+3373 0 obj <<
+/D [3371 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3374 0 obj <<
+/D [3371 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+266 0 obj <<
+/D [3371 0 R /XYZ 203.7717 706.1179 null]
+>> endobj
+3375 0 obj <<
+/D [3371 0 R /XYZ 71.731 685.9775 null]
+>> endobj
+3376 0 obj <<
+/D [3371 0 R /XYZ 161.0655 673.2412 null]
+>> endobj
+3377 0 obj <<
+/D [3371 0 R /XYZ 71.731 661.1217 null]
+>> endobj
+3378 0 obj <<
+/D [3371 0 R /XYZ 71.731 562.1678 null]
+>> endobj
+3379 0 obj <<
+/D [3371 0 R /XYZ 71.731 533.8739 null]
+>> endobj
+3380 0 obj <<
+/D [3371 0 R /XYZ 71.731 501.0863 null]
+>> endobj
+3381 0 obj <<
+/D [3371 0 R /XYZ 181.5683 489.4305 null]
+>> endobj
+3382 0 obj <<
+/D [3371 0 R /XYZ 71.731 479.3683 null]
+>> endobj
+3383 0 obj <<
+/D [3371 0 R /XYZ 71.731 447.7967 null]
+>> endobj
+3384 0 obj <<
+/D [3371 0 R /XYZ 71.731 434.8353 null]
+>> endobj
+3385 0 obj <<
+/D [3371 0 R /XYZ 71.731 433.59 null]
+>> endobj
+3386 0 obj <<
+/D [3371 0 R /XYZ 129.5143 414.5114 null]
+>> endobj
+3387 0 obj <<
+/D [3371 0 R /XYZ 129.5143 414.5114 null]
+>> endobj
+3388 0 obj <<
+/D [3371 0 R /XYZ 71.731 413.0719 null]
+>> endobj
+3389 0 obj <<
+/D [3371 0 R /XYZ 71.731 413.0719 null]
+>> endobj
+3390 0 obj <<
+/D [3371 0 R /XYZ 139.477 396.5787 null]
+>> endobj
+3391 0 obj <<
+/D [3371 0 R /XYZ 139.477 396.5787 null]
+>> endobj
+3392 0 obj <<
+/D [3371 0 R /XYZ 76.7123 378.6459 null]
+>> endobj
+3393 0 obj <<
+/D [3371 0 R /XYZ 129.5143 360.7132 null]
+>> endobj
+3394 0 obj <<
+/D [3371 0 R /XYZ 129.5143 360.7132 null]
+>> endobj
+3395 0 obj <<
+/D [3371 0 R /XYZ 71.731 358.5564 null]
+>> endobj
+3396 0 obj <<
+/D [3371 0 R /XYZ 71.731 358.5564 null]
+>> endobj
+3397 0 obj <<
+/D [3371 0 R /XYZ 139.477 342.7804 null]
+>> endobj
+3398 0 obj <<
+/D [3371 0 R /XYZ 71.731 341.3409 null]
+>> endobj
+3399 0 obj <<
+/D [3371 0 R /XYZ 139.477 324.8477 null]
+>> endobj
+3400 0 obj <<
+/D [3371 0 R /XYZ 71.731 286.9896 null]
+>> endobj
+3401 0 obj <<
+/D [3371 0 R /XYZ 71.731 273.9387 null]
+>> endobj
+3402 0 obj <<
+/D [3371 0 R /XYZ 71.731 272.6933 null]
+>> endobj
+3403 0 obj <<
+/D [3371 0 R /XYZ 129.5143 253.6148 null]
+>> endobj
+788 0 obj <<
+/D [3371 0 R /XYZ 71.731 247.1939 null]
+>> endobj
+270 0 obj <<
+/D [3371 0 R /XYZ 232.4867 203.3792 null]
+>> endobj
+3404 0 obj <<
+/D [3371 0 R /XYZ 71.731 183.2388 null]
+>> endobj
+3405 0 obj <<
+/D [3371 0 R /XYZ 161.0655 170.5025 null]
+>> endobj
+3406 0 obj <<
+/D [3371 0 R /XYZ 71.731 158.383 null]
+>> endobj
+3407 0 obj <<
+/D [3371 0 R /XYZ 71.731 127.3534 null]
+>> endobj
+3408 0 obj <<
+/D [3371 0 R /XYZ 168.8063 116.0068 null]
+>> endobj
+3370 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3411 0 obj <<
+/Length 1058      
+/Filter /FlateDecode
+>>
+stream
+xÚÅWQ\8f\9c6\10~¿_Á[v¥àbccÈÛ5i«TMuJ¶OMuò\81/\8bÂÂ
+L·÷ï3\ 6\9b\85Å\v«ªJuÒ­\11ßx>\7f3\9e\19°\17À\1fö8F<\84\1f\92 \121â¥\87»Àû\ 2¯~¹Ã\ 6â\e\8c?\ 6ý¸»ûáç0ð\12\94D$òvÏ^\98D\88qêñ\90 \98áØÛe\7fnÞîÅQÉzë\13\16l\bê\7f\1f
+QJõ\9b\1fï\1fÞ÷\8b\ fRí«¬Ùþµûõî§Ýà\9f\85\1c%18Y$9 æ4IâÅ@3¢\9a&\86·\fÓÐãA\8cB\1aò\8eçûrK\83Íß[Â6¢È3¡dÓsR{Ù/Ò¶®e©ú\87F6M^\95HS\ 5÷>\8eP\14ò¨Ûê£Tm]\1asÜÿäÏÆ®MS0}n\8bδ£vVÐ7K_+È£\9eÙ}QT\9aÖIfý\1e\1f«B6o\ 6óóɬ5Á(ÂqÒY\8bì\90\97¯{Ãcn\16m\ 3\11\81ã\9aG%Ó½Y\96U&o%ö°Å V-\ e\12\ 2Ü\13\1aG\r\99aî±8D      \ eBgÔ\ 6\94?\86Ù¨ADy\80»¨ÍvÓ\14>\13Âf~       \81°bâô{ù{æa­æ<ÂØ\95=\13\1e¢U{\87l\84¢@{Ð\907&\ 1TݦêõEâk{È­<\15
+²j\8clk9? ¥\10\a²Î)¬EùcØYX¬oôä@\16vUX\b~@hâô{]Xk5ç1\156L\10å|JÃ\3\87´4@\98&t&n^~1â~2¶ÝÃ×-\ e6R'ìËu9i\8c\ 2Jã59G°%9-l]N\87ß[ä¼äá\96sLã\1eÒ¬¯±\ eE\19\94\97\14½wdé¡ß®¯#ÕP^\8c\85(´î'ýO¼\98\8aøjË\98\rì«®~ú\7\ e¢k@\80â\0¢:*£×ë
+\ 5³\18\9eVêÊ\18¶PW\ 6Øj]qù½¡®¸x\9cÕ\1fòfÂ#/m©¸ÚGL$\81\1fG\ 4³.ø>ã\88ÇaØ     JBÖ_&\ 2]A7`\1eoÞÉ\ 2\8aö§\¹\8a=å(&\ 1¿(öu¥*õr\94·6\9e\91\8b\8eñç\80\ 5ºÌ\99ó4ðâ1Ï\1e«ú±¨¾äåã\93h$`ð­Ýç\9dlÒ:?êL\¢\14BjE¤§ôAÔ_M^\9aìí*Â?y£ Éϼ\fÆäkÖ\1d$3£ËÎ\8e\ 3"M«¶T\ 6T\99¸\1ceu,\fâ´7÷AÔÒvWeoÍá        zæÔV\98\97\85\14\8dYV¥±¬àæÕv\93Ò7\9c\86é\ 3tgQß\8aÎ\a8åEa¯ac¨<\99w\a-\85.\89ÙÒa\7f\87i 1\ 1{xû\87]\8aÒX5E\9eÚ9I4M\95æBÙ\1dO9´Äé\ 4å¢f iÇ[¼é|ÿë\99Êð{îêM[\fÁÑâ\9dòF~Ï\99ë¿\9e¢p\14é\ 5]©vcØBµ\e`«ÕÎå÷\86j7ãá\9e¢&<þ\9f)
+C\87\84Ðñ\95¶?\86-´ý\ 1¶Úö]~ohû3\1eζ?¡ñýÚþõìÅ\ 4q\16\92µì\1dÁ\96²×ÂÖ³×á÷\96ì½äq%{Ç<\9c\1dÍ!8Æ\fÑ(J¦\8açö˲ªÇ!¸<\98ù\12\87èÆ8J\16?ÖG\98ù·:#0\16â$\19vÒT\18½úåípø\rñ\98Ñ\eendstream
+endobj
+3410 0 obj <<
+/Type /Page
+/Contents 3411 0 R
+/Resources 3409 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3275 0 R
+>> endobj
+3412 0 obj <<
+/D [3410 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3413 0 obj <<
+/D [3410 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+3414 0 obj <<
+/D [3410 0 R /XYZ 71.731 671.6912 null]
+>> endobj
+3415 0 obj <<
+/D [3410 0 R /XYZ 181.5683 658.8294 null]
+>> endobj
+3416 0 obj <<
+/D [3410 0 R /XYZ 71.731 648.7672 null]
+>> endobj
+3417 0 obj <<
+/D [3410 0 R /XYZ 71.731 615.344 null]
+>> endobj
+3418 0 obj <<
+/D [3410 0 R /XYZ 71.731 604.2342 null]
+>> endobj
+3419 0 obj <<
+/D [3410 0 R /XYZ 71.731 602.9889 null]
+>> endobj
+3420 0 obj <<
+/D [3410 0 R /XYZ 129.5143 583.9103 null]
+>> endobj
+3421 0 obj <<
+/D [3410 0 R /XYZ 129.5143 583.9103 null]
+>> endobj
+3422 0 obj <<
+/D [3410 0 R /XYZ 71.731 582.4708 null]
+>> endobj
+3423 0 obj <<
+/D [3410 0 R /XYZ 71.731 582.4708 null]
+>> endobj
+3424 0 obj <<
+/D [3410 0 R /XYZ 139.477 565.9776 null]
+>> endobj
+3425 0 obj <<
+/D [3410 0 R /XYZ 139.477 565.9776 null]
+>> endobj
+3426 0 obj <<
+/D [3410 0 R /XYZ 71.731 563.8207 null]
+>> endobj
+3427 0 obj <<
+/D [3410 0 R /XYZ 139.477 548.0448 null]
+>> endobj
+3428 0 obj <<
+/D [3410 0 R /XYZ 139.477 548.0448 null]
+>> endobj
+3429 0 obj <<
+/D [3410 0 R /XYZ 71.731 510.1868 null]
+>> endobj
+3430 0 obj <<
+/D [3410 0 R /XYZ 71.731 497.1358 null]
+>> endobj
+3431 0 obj <<
+/D [3410 0 R /XYZ 71.731 495.8905 null]
+>> endobj
+3432 0 obj <<
+/D [3410 0 R /XYZ 129.5143 476.8119 null]
+>> endobj
+789 0 obj <<
+/D [3410 0 R /XYZ 71.731 470.3911 null]
+>> endobj
+274 0 obj <<
+/D [3410 0 R /XYZ 198.0388 426.5763 null]
+>> endobj
+3433 0 obj <<
+/D [3410 0 R /XYZ 71.731 406.4359 null]
+>> endobj
+3434 0 obj <<
+/D [3410 0 R /XYZ 161.0655 393.6996 null]
+>> endobj
+3435 0 obj <<
+/D [3410 0 R /XYZ 71.731 381.5801 null]
+>> endobj
+3436 0 obj <<
+/D [3410 0 R /XYZ 71.731 350.2143 null]
+>> endobj
+3437 0 obj <<
+/D [3410 0 R /XYZ 168.8063 339.204 null]
+>> endobj
+3438 0 obj <<
+/D [3410 0 R /XYZ 71.731 312.1405 null]
+>> endobj
+3439 0 obj <<
+/D [3410 0 R /XYZ 71.731 284.7079 null]
+>> endobj
+3440 0 obj <<
+/D [3410 0 R /XYZ 71.731 253.1263 null]
+>> endobj
+3441 0 obj <<
+/D [3410 0 R /XYZ 181.5683 241.4705 null]
+>> endobj
+3442 0 obj <<
+/D [3410 0 R /XYZ 71.731 231.4083 null]
+>> endobj
+3443 0 obj <<
+/D [3410 0 R /XYZ 71.731 199.8367 null]
+>> endobj
+3444 0 obj <<
+/D [3410 0 R /XYZ 71.731 186.8753 null]
+>> endobj
+3445 0 obj <<
+/D [3410 0 R /XYZ 71.731 185.63 null]
+>> endobj
+3446 0 obj <<
+/D [3410 0 R /XYZ 129.5143 166.5514 null]
+>> endobj
+3447 0 obj <<
+/D [3410 0 R /XYZ 129.5143 166.5514 null]
+>> endobj
+3448 0 obj <<
+/D [3410 0 R /XYZ 71.731 165.1119 null]
+>> endobj
+3449 0 obj <<
+/D [3410 0 R /XYZ 71.731 165.1119 null]
+>> endobj
+3450 0 obj <<
+/D [3410 0 R /XYZ 139.477 148.6187 null]
+>> endobj
+3451 0 obj <<
+/D [3410 0 R /XYZ 139.477 148.6187 null]
+>> endobj
+3452 0 obj <<
+/D [3410 0 R /XYZ 76.7123 130.6859 null]
+>> endobj
+3453 0 obj <<
+/D [3410 0 R /XYZ 129.5143 112.7532 null]
+>> endobj
+3454 0 obj <<
+/D [3410 0 R /XYZ 129.5143 112.7532 null]
+>> endobj
+3455 0 obj <<
+/D [3410 0 R /XYZ 71.731 110.5963 null]
+>> endobj
+3456 0 obj <<
+/D [3410 0 R /XYZ 71.731 110.5963 null]
+>> endobj
+3409 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3459 0 obj <<
+/Length 1040      
+/Filter /FlateDecode
+>>
+stream
+xÚ\9dW]\8f£6\14}\9f_Ác"M\Ûà¯yËî¶ÕV­4ÚM\9f\8a\ 1²A"\90òÑéüû^Ç@\f8\80\03s|ϹÇ××\17âaø!\9e Høð 
+QΨ\17\9d\1f°÷\1dþõë\ 3i!»\16³³A\1f\ e\ f?ýâcO!Å)÷\ eGÏW\1c1\11x§H2"½Cü×æã)¼ÔI¹ÝQ\867\14\99çs\16æIý{øj~Ý?\7f6/\7f$õ©\88«íß\87ß\1e~>ôüÌ\17HI \99\15\19`\89\ 2.}oG1R\940'\8a@\bF\ 2@ Àû\81/úd¨ò\ 4":QH¦Çõ0\9dÍ\v¥l¬\8e\98\ 6ʳ\ 3v¼ãçMG·Ê©ãf*ñ\15
+\84\18ÊHóúÑ8ö5­\13ó\96ÆI^§/\18Sp{,±K\86+\8c\ 2\82Õ\8256lÆ\9a\1e¶h\8d\8bw\855.\1dSk\ 62ªºLóï\13wª,\8dÚ×K\99h\97þÓb\81\fâQ\ 693\8c$VÁ5È\97¤nʼz\9aä\ 3\b\v\11\92¸}ìP;\evóQ l|\9cD»ë#¥°ù\84:yïûØ­rê°|ì÷ÓÖq«1Ò\16رµ²\89¢¤ª\8eM¦eB,Ð'\10\9c·@\aÛ1\81\84ô\8d¡Ôg¦`)â׳/äæS\92%uòUïǾ\86ÍzÝR¼i`\9fL0[X \90¤\18\rEp\13ê¹,ê¢~¿$Oý
+       +ø\95½]»£\ 4q"MEÜ%¼fó\82\19\ e\9búôhÕÉ·ÐÆ}Kc\0\11\87¾]Ggëû\94TQ\99^ê´Èç\14úÐ+9µ\15VFA}êJö\92Dæ<Ç\93\1a.ÊþO[Ê6ÿn        ÛtMv \1e\1c\ 3\1fAL\12\eØÐÒ\9eÃwóR&ÿ4i\99\8cÄDa\96u\ 4ua\9e§P\870Ü-u{²N£&\vÛ\ 5e\91uM*ïôÇãh¯-$¾\9a\11·7Å\9fUR\8e\15\16yönc»\14        l:ãþ5ÅÐ\91bq´|¬æ\8c\1c-x;¥Ñéf\b@Zþ°óé\9c\9c_aYw½}^\94<Ý©\1f\12\19(\bâÊ\1ft¦Ý*h\82Õã0Ò\8f\8fÏi>NnmJan\11,\173c\9b¾z      GÜ\17ÜnÎ\v½©Mø¸%@Üdu§\ 5Ò,ßÒÊ\1c\8c5çy\9fe\85\96õÖ\1dÃ/PÍÕÚæ\13jÃZ-\97´}i*sE¯¡\7fÖn\84ex\ 6\8bË\99\e    Æ"Ä\85\12\v7\92\r\9b¹\91zØâ\8däâ]q#MtøÒr²¿\91\ 6:t\9bvØF\ 3\845\83\86<µeP\97MÔ]_ýt©×ë\19)
+us¶\91M\99Ü\1d\99(ÜB"àK#\93\r\9b\19\99zØâÈäâ]12Mt\f\8dmG¦\81\8c=øb&o\87»\fN^\0CýØßÛ\90µwØz6á\ 6\r\1eªþ~õBï\92\92\ 4KÕkÁ檷\83-W¯\83wMõ\8euÜ©^[\87=Y\98©Âá¶R\88K>4Û\1aöo=3\9cN2ã\ f\0\10\8c!\ G\1deq¸%LêYÁ_Ø\f\e\19=lq3\¼+6Ã¥Ã1Ü\ e\1cnm\99í7p \11\8cQjö3ÙÂL¿\92\19\95Я\94ê#i=\8cÝýæu\10þ\ fz\8e´\99endstream
+endobj
+3458 0 obj <<
+/Type /Page
+/Contents 3459 0 R
+/Resources 3457 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3275 0 R
+>> endobj
+3460 0 obj <<
+/D [3458 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3461 0 obj <<
+/D [3458 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+3462 0 obj <<
+/D [3458 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+3463 0 obj <<
+/D [3458 0 R /XYZ 71.731 706.9041 null]
+>> endobj
+3464 0 obj <<
+/D [3458 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+3465 0 obj <<
+/D [3458 0 R /XYZ 71.731 652.5529 null]
+>> endobj
+3466 0 obj <<
+/D [3458 0 R /XYZ 71.731 639.5019 null]
+>> endobj
+3467 0 obj <<
+/D [3458 0 R /XYZ 71.731 638.2566 null]
+>> endobj
+3468 0 obj <<
+/D [3458 0 R /XYZ 129.5143 619.1781 null]
+>> endobj
+790 0 obj <<
+/D [3458 0 R /XYZ 71.731 612.7572 null]
+>> endobj
+278 0 obj <<
+/D [3458 0 R /XYZ 278.038 568.9424 null]
+>> endobj
+3469 0 obj <<
+/D [3458 0 R /XYZ 71.731 548.8021 null]
+>> endobj
+3470 0 obj <<
+/D [3458 0 R /XYZ 161.0655 536.0657 null]
+>> endobj
+3471 0 obj <<
+/D [3458 0 R /XYZ 71.731 523.9463 null]
+>> endobj
+3472 0 obj <<
+/D [3458 0 R /XYZ 71.731 492.9166 null]
+>> endobj
+3473 0 obj <<
+/D [3458 0 R /XYZ 168.8063 481.5701 null]
+>> endobj
+3474 0 obj <<
+/D [3458 0 R /XYZ 71.731 454.5067 null]
+>> endobj
+3475 0 obj <<
+/D [3458 0 R /XYZ 71.731 423.1408 null]
+>> endobj
+3476 0 obj <<
+/D [3458 0 R /XYZ 71.731 383.1906 null]
+>> endobj
+3477 0 obj <<
+/D [3458 0 R /XYZ 71.731 352.2546 null]
+>> endobj
+3478 0 obj <<
+/D [3458 0 R /XYZ 181.5683 340.5987 null]
+>> endobj
+3479 0 obj <<
+/D [3458 0 R /XYZ 71.731 330.5366 null]
+>> endobj
+3480 0 obj <<
+/D [3458 0 R /XYZ 71.731 297.1134 null]
+>> endobj
+3481 0 obj <<
+/D [3458 0 R /XYZ 71.731 286.0036 null]
+>> endobj
+3482 0 obj <<
+/D [3458 0 R /XYZ 71.731 284.7582 null]
+>> endobj
+3483 0 obj <<
+/D [3458 0 R /XYZ 129.5143 265.6797 null]
+>> endobj
+3484 0 obj <<
+/D [3458 0 R /XYZ 129.5143 265.6797 null]
+>> endobj
+3485 0 obj <<
+/D [3458 0 R /XYZ 71.731 264.2401 null]
+>> endobj
+3486 0 obj <<
+/D [3458 0 R /XYZ 71.731 264.2401 null]
+>> endobj
+3487 0 obj <<
+/D [3458 0 R /XYZ 139.477 247.7469 null]
+>> endobj
+3488 0 obj <<
+/D [3458 0 R /XYZ 139.477 247.7469 null]
+>> endobj
+3489 0 obj <<
+/D [3458 0 R /XYZ 76.7123 229.8142 null]
+>> endobj
+3490 0 obj <<
+/D [3458 0 R /XYZ 129.5143 211.8814 null]
+>> endobj
+3491 0 obj <<
+/D [3458 0 R /XYZ 129.5143 211.8814 null]
+>> endobj
+3492 0 obj <<
+/D [3458 0 R /XYZ 71.731 190.5166 null]
+>> endobj
+3493 0 obj <<
+/D [3458 0 R /XYZ 71.731 178.9052 null]
+>> endobj
+3494 0 obj <<
+/D [3458 0 R /XYZ 71.731 177.6599 null]
+>> endobj
+3495 0 obj <<
+/D [3458 0 R /XYZ 129.5143 158.5813 null]
+>> endobj
+791 0 obj <<
+/D [3458 0 R /XYZ 71.731 152.1604 null]
+>> endobj
+3457 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F21 514 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3498 0 obj <<
+/Length 943       
+/Filter /FlateDecode
+>>
+stream
+xÚÍWÑ\8e\9b8\14}\9f¯à1\91\8ak\e\8cMßf·\9dª«ÝÕ¨Í[§\8a(q\1a$\ 2#c4Ú¿ßëØ\10\93\98\90§Õj\1e<\81ã{\8f\8fϵ/$ÂðG"N\10O` 9¢\19£Qy|ÀÑ/xõù\818Hì0±\ fúmóðþ)ÁQ\8eò\8cfÑf\1f%y\86\18O#\9eP$\18\11Ñf÷}õû¡xÕR­cÊð\8a";>×E#õ\9fÅOûóñù\8býç/©\ fí®[ÿØüñði3æg G¹\80$7I\8e¨k\9a\94D\84#JXjx\ e\fñ\94ó\13M\8a²Ä\90ãbõQÖRËouUÊG­UõsMñª×r³Îðê\9fWiØAÈÜ[yÊ\91 \98G±Y9ÏlÈgÕêVÃ\84\ fã\f\ 1\13\a77¦\ 4eD䧠     ó\89\85M|Òè\ 53\ôúðÎþ,|äÖ¤ÛV»m«¶Mq\94\80%\ 1ºñ\90ݧûQv¥ª^uÕ6·\b'°Ç\19õ   w\96\88>8\82Ý«,«\17\8c©Ü¹\afE\ 1¶È¤\81½\8bI\ 6êóì\14ó«Ô½j\Lb\87\ 2õe)»nß×nñû5\81\98\1d¾\ 5\12ê­êlè{VýX×í\9a²ÕÛ@ök[ËîÞ\1d+vǪ¹7Õó\9a°U¡`[ \1el
+ßä\84ä\881£\94q\94ð\9c\ 4M>¢b\1ffM\9eGP\0\1c\13Ãà:\9a¡ðB)»ÊK)JRB\83y/Ç3\8faÖ5\8fDxª\11(EFÒdÊÃø7 \eM\116\19\fä\83Ûr­úR¿»8'Ì|Ùèª,\8c]}d¯äõ\ 2\a
+I\8eÒ4KÂÂ\ e¨Ø\87\9d\85%æÈ\98,h\80Í
+\v\9b\8fi\9a\aóÎ\v;̺æ1\15Ö¼\85ÃkBã\11t±gh@]\ 6U\96Âñ|©oÕü\1aô\rÈz´ál\89·vì;9ï^\9c &°Xr¯\a»åÞ\ 1¶ìÞ@Þ{Ü{Écƽ>\ f{\88\ 5\8eÛ\80è\ 4ÎË\dtªzÕhw`)\7f\ef\9d\9b\b\ 6{'È\82s}Ø\rç\8e°Eç\86òÞáÜ\10\ f_\12ëÜ   \r\99ðÛÌmá,8Þ\83ÕÎXõtϨyá2\8e8aK%ïÃn 7À\96\85\vä½G¸\0\8f\80p>\8dI\ 1ß«Ý`VÈ\rá)\84\8a\19F\ 2ç©\7f\aÏ_Q\14:½TP¶Pä>ìF\91\8f°Å"\ få½£ÈC<<Y\87í\9dð8\er¶ qå>é-c¸æ¸H¬ 4acw\99^w\97OÊlO{ü»ÝÉî¿è*\9fÔ\90,ÔI\9eÚ4ï4s\8f\e\98à\9e\1eÚN\9b7Ûºêôÿ®·ÜÃê\96àf1\9dû\bù²¿D\9fcUÝ\80w\auÑumY\15z\bôVA\a\9c#\8f\8aÙQ*Õ*\17¨°}É©Û\85ÍaîÂV§J\93;tiy÷\8d\92
+$H\96ßü(ó0×ßd\8c\82\89\b\\\ 3ÊdeÙì\17V á¿Há\ªendstream
+endobj
+3497 0 obj <<
+/Type /Page
+/Contents 3498 0 R
+/Resources 3496 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3535 0 R
+>> endobj
+3499 0 obj <<
+/D [3497 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3500 0 obj <<
+/D [3497 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+282 0 obj <<
+/D [3497 0 R /XYZ 317.1857 705.7477 null]
+>> endobj
+3501 0 obj <<
+/D [3497 0 R /XYZ 71.731 682.2589 null]
+>> endobj
+3502 0 obj <<
+/D [3497 0 R /XYZ 161.0655 672.871 null]
+>> endobj
+3503 0 obj <<
+/D [3497 0 R /XYZ 71.731 660.7515 null]
+>> endobj
+3504 0 obj <<
+/D [3497 0 R /XYZ 71.731 574.89 null]
+>> endobj
+3505 0 obj <<
+/D [3497 0 R /XYZ 71.731 543.954 null]
+>> endobj
+3506 0 obj <<
+/D [3497 0 R /XYZ 181.5683 532.2981 null]
+>> endobj
+3507 0 obj <<
+/D [3497 0 R /XYZ 71.731 522.236 null]
+>> endobj
+3508 0 obj <<
+/D [3497 0 R /XYZ 71.731 490.6644 null]
+>> endobj
+3509 0 obj <<
+/D [3497 0 R /XYZ 71.731 477.703 null]
+>> endobj
+3510 0 obj <<
+/D [3497 0 R /XYZ 71.731 476.4576 null]
+>> endobj
+3511 0 obj <<
+/D [3497 0 R /XYZ 129.5143 457.3791 null]
+>> endobj
+3512 0 obj <<
+/D [3497 0 R /XYZ 129.5143 457.3791 null]
+>> endobj
+3513 0 obj <<
+/D [3497 0 R /XYZ 71.731 455.9395 null]
+>> endobj
+3514 0 obj <<
+/D [3497 0 R /XYZ 71.731 455.9395 null]
+>> endobj
+3515 0 obj <<
+/D [3497 0 R /XYZ 139.477 439.4463 null]
+>> endobj
+3516 0 obj <<
+/D [3497 0 R /XYZ 139.477 439.4463 null]
+>> endobj
+3517 0 obj <<
+/D [3497 0 R /XYZ 76.7123 421.5136 null]
+>> endobj
+3518 0 obj <<
+/D [3497 0 R /XYZ 129.5143 403.5808 null]
+>> endobj
+3519 0 obj <<
+/D [3497 0 R /XYZ 129.5143 403.5808 null]
+>> endobj
+3520 0 obj <<
+/D [3497 0 R /XYZ 71.731 401.424 null]
+>> endobj
+3521 0 obj <<
+/D [3497 0 R /XYZ 71.731 401.424 null]
+>> endobj
+3522 0 obj <<
+/D [3497 0 R /XYZ 139.477 385.6481 null]
+>> endobj
+3523 0 obj <<
+/D [3497 0 R /XYZ 71.731 383.4913 null]
+>> endobj
+3524 0 obj <<
+/D [3497 0 R /XYZ 139.477 367.7153 null]
+>> endobj
+3525 0 obj <<
+/D [3497 0 R /XYZ 71.731 329.8573 null]
+>> endobj
+3526 0 obj <<
+/D [3497 0 R /XYZ 71.731 316.8063 null]
+>> endobj
+3527 0 obj <<
+/D [3497 0 R /XYZ 71.731 315.561 null]
+>> endobj
+3528 0 obj <<
+/D [3497 0 R /XYZ 129.5143 296.4825 null]
+>> endobj
+792 0 obj <<
+/D [3497 0 R /XYZ 71.731 290.0616 null]
+>> endobj
+286 0 obj <<
+/D [3497 0 R /XYZ 301.9676 246.2468 null]
+>> endobj
+3529 0 obj <<
+/D [3497 0 R /XYZ 71.731 226.1065 null]
+>> endobj
+3530 0 obj <<
+/D [3497 0 R /XYZ 161.0655 213.3701 null]
+>> endobj
+3531 0 obj <<
+/D [3497 0 R /XYZ 71.731 201.2507 null]
+>> endobj
+3532 0 obj <<
+/D [3497 0 R /XYZ 71.731 170.221 null]
+>> endobj
+3533 0 obj <<
+/D [3497 0 R /XYZ 168.8063 158.8745 null]
+>> endobj
+3534 0 obj <<
+/D [3497 0 R /XYZ 71.731 131.8111 null]
+>> endobj
+3496 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3538 0 obj <<
+/Length 1020      
+/Filter /FlateDecode
+>>
+stream
+xÚÍW]o¤6\14}ϯàqF
+®?06û\96v»«Tm\14eGêÃf\15Ñ\19f\a\89@
+FÑþû^cÃ\98Á\ 3´OU\1e Ã±ïáø\1csM\ 2\f\7f$\10\ 4  \ 6\17\9a \1as\1aì_opð\1d\1e}¾!\16\12ZLè\82~ÞÝüô\89á AILã`w\fX\12#.¢@0\8a$'2Ø\1d¾n~9¥o*«·!åxC\91¹>\16i\99©ßÓ¿Ì¿w\8f÷ææ\8fL\9dªC³ý¶ûíæ×ÝP\9f3\81\12     EfI\ e¨)M\9a\ 4\12\91¦Ià)'\11\v\ 4\96\88ELt<\9f2ÕÖecx\10\8fæÚ´û}Ö4Ƕ¸5?\1c·\ 4oÒ¶P\16_©SV¿çM\864õ®ÞY\96ÐÞ\86Z\16\11\9brwEQm)ß¼g\a3ÅSUdÍ\87\99n?\9a\12\14\13\99t£ÓÃk^Z.o¹½i\e\90yeùÇ-á\9b´N_3X\e\15\9c\10\90\88\13\11Ä\18#\1e\89Ä+ø\80
+]X/8,\86À¤\13|2\9b¦ðL)\9fÔ¥\14V\84PoÝËë\99G?jÊ\83IßÂ\8fx¤­:yd£\11º\82\86|°6Pu»W·\17\9eÕã³RåûTåUé"Û:\9b¾ ¥À%\85å¼âä\ 1\15º°³°D\87Ñ}¡\ 1vUXX|L£Ä[÷º°ý¨)\8f±°,A\91\10c\1a\8bɳG]\1e£8\82­âRß¼üÞëë\91õÕL×Ý«jpýU÷ò(F"JÄ\82{]Ø\8c{\aØ¢{}uW¸wÂÃïÞ\11\8f¦È÷ÙK~x©ê\97\12âìÑZJÄc!ÇZ祲[Wí\8a\7fݯT"Iâdɯ\ elί=lÙ¯\9eºküêáqVdð«K\ 3\14±Öû¢5µ2\1d´\a\9f1¦foõkC0\922Z̲\ 3\9bÓ¦\87-kã©»F\e\ f\ f\8f6.\8dQ2\1dyzÇyÓ\17      \ e[¨\J\9f\v\9b\0[L\9f¯î\8aôMxøÓ7âQV\87>|§ªQZ\8e\97"o\94'\85\84Á÷\eÇ\17[^Z×é\ f\eÄã\7fKfÄ\ 5Â\92/%Ó\85͸o\80-ºÏWw\85û|<¦î\eÑ8'ó\ 1ôþ\17Á\8c`6ÂÙR0]Ø\9c4=lY\1aOÝ5Òxxx¤qi\8c\82ù©-
+k¦¿Û´0êØÏeoOÍ\19j´\94ë=   B\8e\13îvÀ×\9bA\16C.)f\v\81va3\81\1e`\8b\81öÕ]\11h\1f\ fGÎ~YG<ÎV»z\ 4°Ù\ 6~\ 2Q»Ý!\ 4»
\8c \94ñ¸\9b\f\9a\ f<Bn>f\ 5tÚÝÎy_6*\ 5ï\9a¾fºQD\ 2I\8aÅE¿^WªR?Þ²µ'\84«\ 5»·yÆ\1cë¾õ¶ßr\1c\ 4<#k\8f\11\1f³f_çozØ\1c1\ 6çÂ\98ºÄì¹)µâ:\1fÜ)YøA\99\83\15¬p\bÛ(\87ov7×\9f[B¡S|z¸\7føl7ÔÝ)·s¿çEaîö©n\12M×x²7\aMc(Ñï½i?¤cÔ\8c\1fªaê\11É\81\19\81\9e\96\89ø\7fv\9at\13e\8fñÑL+×\9fô£\8bþitÐçT\80µ       \e\1c¸¸zl÷\14ü\a*PÈ\84endstream
+endobj
+3537 0 obj <<
+/Type /Page
+/Contents 3538 0 R
+/Resources 3536 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3535 0 R
+>> endobj
+3539 0 obj <<
+/D [3537 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3540 0 obj <<
+/D [3537 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+3541 0 obj <<
+/D [3537 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+3542 0 obj <<
+/D [3537 0 R /XYZ 71.731 631.9816 null]
+>> endobj
+3543 0 obj <<
+/D [3537 0 R /XYZ 71.731 620.8718 null]
+>> endobj
+3544 0 obj <<
+/D [3537 0 R /XYZ 71.731 619.6265 null]
+>> endobj
+3545 0 obj <<
+/D [3537 0 R /XYZ 129.5143 600.5479 null]
+>> endobj
+3546 0 obj <<
+/D [3537 0 R /XYZ 129.5143 600.5479 null]
+>> endobj
+3547 0 obj <<
+/D [3537 0 R /XYZ 71.731 599.1084 null]
+>> endobj
+3548 0 obj <<
+/D [3537 0 R /XYZ 71.731 599.1084 null]
+>> endobj
+3549 0 obj <<
+/D [3537 0 R /XYZ 139.477 582.6152 null]
+>> endobj
+3550 0 obj <<
+/D [3537 0 R /XYZ 139.477 582.6152 null]
+>> endobj
+3551 0 obj <<
+/D [3537 0 R /XYZ 76.7123 564.6824 null]
+>> endobj
+3552 0 obj <<
+/D [3537 0 R /XYZ 129.5143 546.7497 null]
+>> endobj
+3553 0 obj <<
+/D [3537 0 R /XYZ 129.5143 546.7497 null]
+>> endobj
+3554 0 obj <<
+/D [3537 0 R /XYZ 71.731 544.5928 null]
+>> endobj
+3555 0 obj <<
+/D [3537 0 R /XYZ 71.731 544.5928 null]
+>> endobj
+3556 0 obj <<
+/D [3537 0 R /XYZ 139.477 528.8169 null]
+>> endobj
+3557 0 obj <<
+/D [3537 0 R /XYZ 71.731 527.3774 null]
+>> endobj
+3558 0 obj <<
+/D [3537 0 R /XYZ 139.477 510.8842 null]
+>> endobj
+3559 0 obj <<
+/D [3537 0 R /XYZ 76.7123 492.9514 null]
+>> endobj
+3560 0 obj <<
+/D [3537 0 R /XYZ 129.5143 475.0187 null]
+>> endobj
+3561 0 obj <<
+/D [3537 0 R /XYZ 129.5143 475.0187 null]
+>> endobj
+3562 0 obj <<
+/D [3537 0 R /XYZ 71.731 472.8618 null]
+>> endobj
+3563 0 obj <<
+/D [3537 0 R /XYZ 71.731 472.8618 null]
+>> endobj
+3564 0 obj <<
+/D [3537 0 R /XYZ 139.477 457.0859 null]
+>> endobj
+3565 0 obj <<
+/D [3537 0 R /XYZ 71.731 455.6464 null]
+>> endobj
+3566 0 obj <<
+/D [3537 0 R /XYZ 139.477 439.1532 null]
+>> endobj
+3567 0 obj <<
+/D [3537 0 R /XYZ 71.731 401.2951 null]
+>> endobj
+3568 0 obj <<
+/D [3537 0 R /XYZ 71.731 388.2442 null]
+>> endobj
+3569 0 obj <<
+/D [3537 0 R /XYZ 71.731 386.9988 null]
+>> endobj
+3570 0 obj <<
+/D [3537 0 R /XYZ 129.5143 367.9203 null]
+>> endobj
+793 0 obj <<
+/D [3537 0 R /XYZ 71.731 361.4994 null]
+>> endobj
+290 0 obj <<
+/D [3537 0 R /XYZ 309.0082 317.6847 null]
+>> endobj
+3571 0 obj <<
+/D [3537 0 R /XYZ 71.731 297.5443 null]
+>> endobj
+3572 0 obj <<
+/D [3537 0 R /XYZ 161.0655 284.8079 null]
+>> endobj
+3573 0 obj <<
+/D [3537 0 R /XYZ 71.731 272.6885 null]
+>> endobj
+3574 0 obj <<
+/D [3537 0 R /XYZ 71.731 241.6588 null]
+>> endobj
+3575 0 obj <<
+/D [3537 0 R /XYZ 168.8063 230.3123 null]
+>> endobj
+3576 0 obj <<
+/D [3537 0 R /XYZ 71.731 203.2489 null]
+>> endobj
+3577 0 obj <<
+/D [3537 0 R /XYZ 71.731 173.7346 null]
+>> endobj
+3578 0 obj <<
+/D [3537 0 R /XYZ 71.731 157.097 null]
+>> endobj
+3579 0 obj <<
+/D [3537 0 R /XYZ 71.731 124.3094 null]
+>> endobj
+3580 0 obj <<
+/D [3537 0 R /XYZ 181.5683 112.6535 null]
+>> endobj
+3536 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3583 0 obj <<
+/Length 1026      
+/Filter /FlateDecode
+>>
+stream
+xÚÍXM\8f¤6\10½Ï¯àØ-m;þ¶\99Û$\9bD\e%ÒhÓ9e¢\11K3ÛH4´\80Öhÿ}
+°Á4æã°R¢9@\ f\ f×ó«çª\12$ÀðG\ 2E\90bp¡!¢RР¾<àà+<úõ\81\18ÈÁ`\ e.èÇãÃ\ f¿0\1c\84(\94T\ 6Ç·\80\85\12     Å\ 3Å(Ò\82èàxú{÷Ó9ºÖI¹?P\81w\14u×ç,Ê\93ú÷èK÷óéùSwóGR\9f\8bSµÿçøÛÃÏÇ>¾`
+\85\1a\82,\92ìQS\9a4\f\94¼¡Ià© \9c\ 5
+kÄ8S-ÏètIó&p\8b\1e6u0·\87fSJvàç=\11»¨\8c.        l­z¼çK\bD\10D\ 5R\b\849\93^¾=êàÂ,_Ø\8b¤å;Y­¡ðB©\98Ä¥\146D¨7îýuàaß\9aò`Ú§Û\88Gt«Ï\1eÙ(G¸\89Ð@\1e»äVuy\8bë\ fw)oÞOò:\8d£:-r\17y+\93é\ 6-\ 5È5!Xû\85µ¨\83\v\e\84%\8d\97G\e²°Ya!ù\98òÐ\ew^XûÖ\94ÇXX\16"®Ô\98Æ\13èÒ\1d\a\8fºB"Éá¤Ýë\9bæ_­¾\1eY/Ýrí}]t×[\95Ì»\17\13D¹`kîu`Kîµ°u÷zânqï=\8f\19÷º<Ò¼ª#\90©Si*´¢\88\16\84þ3K㤻\1d/f QÝ
+\1c\1c\fq8.$\9f\13°y¾PA\ 4\a)ùLÅ\eràÂ\16rÐÃVsà\8b»!\a>\1e\83\9a}\ eF<ÒÜ\16\ 5bt|3âÝâ8©ª·[f2\ 3ü\14¢D´  =\b\85\94fpÊ\ 5F\94\89®\1cQ$eÓd\94Þ}L2(Ï]~¦\99\ 5\ 6\9abuW×Ë¢.êo×ä±\7fcp\90m\ 4\94 ItؾàÆh9¿`\81\9b\92fvT5O^ÓÓkQ¾æÐ.à1ÙÚd>&U\¦×ÆLKt\184]I]:\959âgéº&qú\821MN\ e+ÔÚ\12Ã\ 2\ 4      M:ùþª \9f\99j\11}ën\8a<3w§vyg\r\ 3-LÂÞÏi|\1e\82C\8f4/FebKÐå\vD°cÀ§ûXn\84(wV°!\86M9ñ£º\7f\98\9aI£JA\a\93\84Âü/Ú\93\1d¬ÉaM³u\ 2©\14²+\ 5ßcCOÍ\10±yOã4\10¨éLI·,¬\9c
+³½·=iÚhV[ò@µ|O«né-N{ʲbOÅîÝ\1aäs\91%ÕÖ3ÐNN\86Ë5ýÐ÷\95ò{OS\14KD0ôîåZèÂ\16ja\ f\85¾¸\e\84\87¿\1f\8dxü7Ó\14Ñ\1a\86"ÌW¦)\17¶0Mõ°ÕiÊ\17wÃ45áá\9d¦F4þ\aÓ\14\11`\fÌõ\8a{]Ø\82{{ت{}q7¸wÂÃïÞ\11\8fûnçÑ\1a\92"¤Òc­a\ 2\18WêNüy¿2\8e\98¢dͯ\ elɯ\16¶îWOÜ-~õðp\86"ëW\97Æ0\13¹óå©ñ`ÛÈËym \8fp\16²5m\1cØ\926\16¶®\8d\16m<<<Ú¸4æÆoë8\97\9eùpÁ5\82  '\ü¶á`¦\9f6\ 4ÕP\81ð_©!"ôì\87
+OÀ\7f\ 1\97Ú\ 2!endstream
+endobj
+3582 0 obj <<
+/Type /Page
+/Contents 3583 0 R
+/Resources 3581 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3535 0 R
+>> endobj
+3584 0 obj <<
+/D [3582 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3585 0 obj <<
+/D [3582 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+3586 0 obj <<
+/D [3582 0 R /XYZ 71.731 675.3674 null]
+>> endobj
+3587 0 obj <<
+/D [3582 0 R /XYZ 71.731 674.1221 null]
+>> endobj
+3588 0 obj <<
+/D [3582 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+3589 0 obj <<
+/D [3582 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+3590 0 obj <<
+/D [3582 0 R /XYZ 71.731 653.604 null]
+>> endobj
+3591 0 obj <<
+/D [3582 0 R /XYZ 71.731 653.604 null]
+>> endobj
+3592 0 obj <<
+/D [3582 0 R /XYZ 139.477 637.1108 null]
+>> endobj
+3593 0 obj <<
+/D [3582 0 R /XYZ 139.477 637.1108 null]
+>> endobj
+3594 0 obj <<
+/D [3582 0 R /XYZ 76.7123 619.1781 null]
+>> endobj
+3595 0 obj <<
+/D [3582 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+3596 0 obj <<
+/D [3582 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+3597 0 obj <<
+/D [3582 0 R /XYZ 71.731 579.1632 null]
+>> endobj
+3598 0 obj <<
+/D [3582 0 R /XYZ 71.731 568.2691 null]
+>> endobj
+3599 0 obj <<
+/D [3582 0 R /XYZ 71.731 567.0237 null]
+>> endobj
+3600 0 obj <<
+/D [3582 0 R /XYZ 129.5143 547.9452 null]
+>> endobj
+794 0 obj <<
+/D [3582 0 R /XYZ 71.731 541.5243 null]
+>> endobj
+294 0 obj <<
+/D [3582 0 R /XYZ 206.6635 497.7096 null]
+>> endobj
+3601 0 obj <<
+/D [3582 0 R /XYZ 71.731 477.5692 null]
+>> endobj
+3602 0 obj <<
+/D [3582 0 R /XYZ 161.0655 464.8329 null]
+>> endobj
+3603 0 obj <<
+/D [3582 0 R /XYZ 71.731 452.7134 null]
+>> endobj
+3604 0 obj <<
+/D [3582 0 R /XYZ 71.731 421.6837 null]
+>> endobj
+3605 0 obj <<
+/D [3582 0 R /XYZ 168.8063 410.3372 null]
+>> endobj
+3606 0 obj <<
+/D [3582 0 R /XYZ 71.731 383.2738 null]
+>> endobj
+3607 0 obj <<
+/D [3582 0 R /XYZ 71.731 351.9079 null]
+>> endobj
+3608 0 obj <<
+/D [3582 0 R /XYZ 71.731 323.614 null]
+>> endobj
+3609 0 obj <<
+/D [3582 0 R /XYZ 71.731 292.678 null]
+>> endobj
+3610 0 obj <<
+/D [3582 0 R /XYZ 181.5683 281.0222 null]
+>> endobj
+3611 0 obj <<
+/D [3582 0 R /XYZ 71.731 270.96 null]
+>> endobj
+3612 0 obj <<
+/D [3582 0 R /XYZ 71.731 237.5368 null]
+>> endobj
+3613 0 obj <<
+/D [3582 0 R /XYZ 71.731 226.427 null]
+>> endobj
+3614 0 obj <<
+/D [3582 0 R /XYZ 71.731 225.1816 null]
+>> endobj
+3615 0 obj <<
+/D [3582 0 R /XYZ 129.5143 206.1031 null]
+>> endobj
+3616 0 obj <<
+/D [3582 0 R /XYZ 129.5143 206.1031 null]
+>> endobj
+3617 0 obj <<
+/D [3582 0 R /XYZ 71.731 204.6636 null]
+>> endobj
+3618 0 obj <<
+/D [3582 0 R /XYZ 71.731 204.6636 null]
+>> endobj
+3619 0 obj <<
+/D [3582 0 R /XYZ 139.477 188.1704 null]
+>> endobj
+3620 0 obj <<
+/D [3582 0 R /XYZ 139.477 188.1704 null]
+>> endobj
+3621 0 obj <<
+/D [3582 0 R /XYZ 76.7123 170.2376 null]
+>> endobj
+3622 0 obj <<
+/D [3582 0 R /XYZ 129.5143 152.3048 null]
+>> endobj
+3623 0 obj <<
+/D [3582 0 R /XYZ 129.5143 152.3048 null]
+>> endobj
+3624 0 obj <<
+/D [3582 0 R /XYZ 71.731 150.148 null]
+>> endobj
+3625 0 obj <<
+/D [3582 0 R /XYZ 71.731 150.148 null]
+>> endobj
+3626 0 obj <<
+/D [3582 0 R /XYZ 139.477 134.3721 null]
+>> endobj
+3627 0 obj <<
+/D [3582 0 R /XYZ 71.731 132.9325 null]
+>> endobj
+3628 0 obj <<
+/D [3582 0 R /XYZ 139.477 116.4393 null]
+>> endobj
+3581 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3631 0 obj <<
+/Length 1257      
+/Filter /FlateDecode
+>>
+stream
+xÚµX]oÛ6\14}ϯð£\rÔ\1cI\89\1fÊ[ÖmE\87\r\b\8a¼5C¡HL#À\91\ 2\89F\91\7f?Ê"eJº\14\85bC\1f\87<\87\87çò2&;lþ\91\9d H$æA3D9£»âõ\ 6ï¾\9b¯>Ý\10\v9ZÌÑ\aýúpóË\1f  Þe(ã\94ï\1e\9ewIÆ\11\13éN$\14IFäî¡üºÿø\92¿iÕ\1e\8e\94á=EÃóþ\94×Jÿ\95?\r\1fïî?\ f/\7f+ýÒ\94Ýá\9f\87?o~\7f\18ùY"P&\rɪÈ\11µ\94I3O&!\19b\8c\88\9dÀ\12%i".:¿(}nëîvÎ=¢¹4ÓS\9c\80Ü#êèÃ\1c·ù\1f\81É\84{\84õÜ\8f\94²\ 5/¥F\1c¡ ïüyÕáF\81:<\ f\8cC\8c¤ÉTGUë\ fÃF\90áQ=\ fÏî\\14ªë\9eϧ^¦\99Ëè\13\88\12\96ö\93\1d\99@B&\89\88&\8c_&£\88\8b\85Ü\7fRú®<\10¼/[3\8bêì$¾ T I±ñ¯Ï\8eàÃ\9eÜ·\8dnôû\9bº\1dGH3\82_XíØ#%\88\93ì\82¿ð8\8e\8bðGÌp~Ö/vYùðí·G\8cé©Oe\8a÷ö«ö²ÿ\97oÔ©ìÌ@\ 2È<:V_æoª+ÚêMWM\1d\15*3?mVUm\9fm\9b¿\ f¯\8d3^·çB[\ÑÔ:¯êªþ>|.\95ùxr\93<5g=Y¥êlµ}~\ e¬~Øc;A÷¦\8aê²üÒÉ*§\bX§Y°É\9e©\0Ä\19\1frd\89ìèRÕz\98¸í¬Ù\8dåÎýUNW>\99#׺­\9e\ e\14ïÏZ\8d\93Ô§÷Ù\82\87\8f¯¹.^F\97ô\8brYð\97ý£:\9d\86·'å'@\95\80¥Íb\12´p¡q\94±ðy²\8dk²6Æñîtj\ e\94í\7f8\82/ÍIu[\93\99\97¯UmÕ¿UöåÜMjE«ÂUTÝ\94j«°û\ 3a&<ù«2»°rÒ&\99@L²ÈAë¡VÎY\87\8a\1e³\0é\86Sv."\91\9e½ã!ë\8bèO#À0\9a"ÜÏßCnýªø0k\91ýø¾ \8a¼?o|ä¹UËÕ9\ 5"3\19¦\81æåPG\1fv5\95ô½\7f²\1e\a\vºj¶\1dÓ4\ 3yöºQK\1dS_\93\f¥BLeÜ\19_\86ë\ 3à.ã\88§æf2÷×\1c\12Î_ÀÖ×aº!òÍX        áܦ\89é\83\82ëÁÖ\92ë`ñè\ 2¼[²;×\11\b¯¯Ãµ\90çêr\92.\9d\16\12\91\ 4gS§\81Æf®\1aÓV`{@0À\94\99;e\1aËï\15µ\16_\8b\8a§wIº%¼K\11ÞÅËe×Ó\0Ûã\82\19ê¥a«p\7f¥#ÑZ÷`kf9XÜ-\80w\8b]\80\ eÀ/_Æôdôï\ 6³N¿\90:LF¥!\90¡\ ecAG\1f\ 5\184\9f+èOJ\f@p\90\8f\eµ\941-ÓÔÈ0\7fxMu\14\95~\87\9b\8c`)\81\8eÁÙ½\f¼\89ö°Åâ\1c½0ûÉXàìs¨£\ f\ 3<]Ì\164\95\19{\18¦ oØT7
+Ôá\85\8e\19\1dØ4\96\89\8eI¿øh\1d\86Í`)"¡f{õâ\8aZ³Â¢âN,I·\18±\14\ 1ùà\89\bfcÍ\19W,D"ÊD¬ð<ÔJá9T¼ð\0Ö-\857\97\11(<_\87ë\8fÕæ[È¢\11\ 6\9ae0k\18£\84¦ÑÂó`kis°xÜ\0Þ-y\ 3t@\81óuüL3t\v"Ò\w2\1aqÇC­\98ãPQo\0Ò\rÖ\0"\0g|\11ÿÑÅÁ\16\14I9b\94G\8aÓG\85\8bsDE\8b\13bÝP\9c\v\19pqNt\14͹Ö-Ô\18S\8cd\96ðÿ£1\12*\11Ë\92X}ú°µ\b:X<\83\0ï\96\10\ 2\14ú:¦ÇÿÕdØ\ f\82\11ç$fÇ\15µæ\86EÅÍX\92nñb)\ 2²Â\13\11í\8d°9öçõT"Ix¶ú\v¼\87\0ÏÌ®`\92eãL½&\96\ 5\7fN\a\bÿ\ 5&5r{endstream
+endobj
+3630 0 obj <<
+/Type /Page
+/Contents 3631 0 R
+/Resources 3629 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3535 0 R
+>> endobj
+3632 0 obj <<
+/D [3630 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3633 0 obj <<
+/D [3630 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+3634 0 obj <<
+/D [3630 0 R /XYZ 71.731 708.2442 null]
+>> endobj
+3635 0 obj <<
+/D [3630 0 R /XYZ 71.731 706.9988 null]
+>> endobj
+3636 0 obj <<
+/D [3630 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+795 0 obj <<
+/D [3630 0 R /XYZ 71.731 681.4994 null]
+>> endobj
+298 0 obj <<
+/D [3630 0 R /XYZ 231.3506 637.6847 null]
+>> endobj
+3637 0 obj <<
+/D [3630 0 R /XYZ 71.731 617.5443 null]
+>> endobj
+3638 0 obj <<
+/D [3630 0 R /XYZ 161.0655 604.8079 null]
+>> endobj
+3639 0 obj <<
+/D [3630 0 R /XYZ 71.731 592.6885 null]
+>> endobj
+3640 0 obj <<
+/D [3630 0 R /XYZ 71.731 561.6588 null]
+>> endobj
+3641 0 obj <<
+/D [3630 0 R /XYZ 168.8063 550.3123 null]
+>> endobj
+3642 0 obj <<
+/D [3630 0 R /XYZ 71.731 538.1928 null]
+>> endobj
+3643 0 obj <<
+/D [3630 0 R /XYZ 71.731 483.5144 null]
+>> endobj
+3644 0 obj <<
+/D [3630 0 R /XYZ 181.5683 472.5041 null]
+>> endobj
+3645 0 obj <<
+/D [3630 0 R /XYZ 71.731 462.4419 null]
+>> endobj
+3646 0 obj <<
+/D [3630 0 R /XYZ 71.731 429.0187 null]
+>> endobj
+3647 0 obj <<
+/D [3630 0 R /XYZ 71.731 417.9089 null]
+>> endobj
+3648 0 obj <<
+/D [3630 0 R /XYZ 71.731 416.6636 null]
+>> endobj
+3649 0 obj <<
+/D [3630 0 R /XYZ 129.5143 397.585 null]
+>> endobj
+3650 0 obj <<
+/D [3630 0 R /XYZ 129.5143 397.585 null]
+>> endobj
+3651 0 obj <<
+/D [3630 0 R /XYZ 71.731 396.1455 null]
+>> endobj
+3652 0 obj <<
+/D [3630 0 R /XYZ 71.731 396.1455 null]
+>> endobj
+3653 0 obj <<
+/D [3630 0 R /XYZ 139.477 379.6523 null]
+>> endobj
+3654 0 obj <<
+/D [3630 0 R /XYZ 139.477 379.6523 null]
+>> endobj
+3655 0 obj <<
+/D [3630 0 R /XYZ 76.7123 361.7195 null]
+>> endobj
+3656 0 obj <<
+/D [3630 0 R /XYZ 129.5143 343.7868 null]
+>> endobj
+3657 0 obj <<
+/D [3630 0 R /XYZ 129.5143 343.7868 null]
+>> endobj
+3658 0 obj <<
+/D [3630 0 R /XYZ 71.731 341.63 null]
+>> endobj
+3659 0 obj <<
+/D [3630 0 R /XYZ 71.731 341.63 null]
+>> endobj
+3660 0 obj <<
+/D [3630 0 R /XYZ 139.477 325.854 null]
+>> endobj
+3661 0 obj <<
+/D [3630 0 R /XYZ 71.731 323.6972 null]
+>> endobj
+3662 0 obj <<
+/D [3630 0 R /XYZ 139.477 307.9213 null]
+>> endobj
+3663 0 obj <<
+/D [3630 0 R /XYZ 71.731 306.4817 null]
+>> endobj
+3664 0 obj <<
+/D [3630 0 R /XYZ 71.731 306.4817 null]
+>> endobj
+3665 0 obj <<
+/D [3630 0 R /XYZ 149.4396 289.9885 null]
+>> endobj
+3666 0 obj <<
+/D [3630 0 R /XYZ 149.4396 289.9885 null]
+>> endobj
+3667 0 obj <<
+/D [3630 0 R /XYZ 71.731 287.8317 null]
+>> endobj
+3668 0 obj <<
+/D [3630 0 R /XYZ 71.731 287.8317 null]
+>> endobj
+3669 0 obj <<
+/D [3630 0 R /XYZ 159.4023 272.0558 null]
+>> endobj
+3670 0 obj <<
+/D [3630 0 R /XYZ 71.731 269.899 null]
+>> endobj
+3671 0 obj <<
+/D [3630 0 R /XYZ 159.4023 254.123 null]
+>> endobj
+3672 0 obj <<
+/D [3630 0 R /XYZ 76.7123 236.1903 null]
+>> endobj
+3673 0 obj <<
+/D [3630 0 R /XYZ 149.4396 218.2575 null]
+>> endobj
+3674 0 obj <<
+/D [3630 0 R /XYZ 149.4396 218.2575 null]
+>> endobj
+3675 0 obj <<
+/D [3630 0 R /XYZ 71.731 216.1007 null]
+>> endobj
+3676 0 obj <<
+/D [3630 0 R /XYZ 71.731 216.1007 null]
+>> endobj
+3677 0 obj <<
+/D [3630 0 R /XYZ 159.4023 200.3248 null]
+>> endobj
+3678 0 obj <<
+/D [3630 0 R /XYZ 71.731 198.8852 null]
+>> endobj
+3679 0 obj <<
+/D [3630 0 R /XYZ 159.4023 182.392 null]
+>> endobj
+3680 0 obj <<
+/D [3630 0 R /XYZ 76.7123 164.4593 null]
+>> endobj
+3681 0 obj <<
+/D [3630 0 R /XYZ 149.4396 146.5265 null]
+>> endobj
+3682 0 obj <<
+/D [3630 0 R /XYZ 149.4396 146.5265 null]
+>> endobj
+3683 0 obj <<
+/D [3630 0 R /XYZ 71.731 144.3697 null]
+>> endobj
+3684 0 obj <<
+/D [3630 0 R /XYZ 71.731 144.3697 null]
+>> endobj
+3685 0 obj <<
+/D [3630 0 R /XYZ 159.4023 128.5938 null]
+>> endobj
+3686 0 obj <<
+/D [3630 0 R /XYZ 71.731 126.4369 null]
+>> endobj
+3687 0 obj <<
+/D [3630 0 R /XYZ 159.4023 110.661 null]
+>> endobj
+3629 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F21 514 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3690 0 obj <<
+/Length 1230      
+/Filter /FlateDecode
+>>
+stream
+xÚ½\99KoÛF\14\85÷þ\15\Ú@5\9d÷#»4h\8b\16)`4Ú5E Hr"À\95\f\89.\90\7fß\91È¡.É;s'\ 6jdAÊ9ä=üx\ e)\91¢áñ\9fh\9c`NÅ\85\fLZ#\9bõ?7¼ù\12ÿë×\eÑK\16½f\ 1E?-o~üEñ&°`¥m\96\ f\8d
+\96\19§\e§$óFøf¹ùëöÝ×ÕS»=Þ-¤á·\92uËûÇÕ~Û¾_}î>¾½ÿ­[ùcÛ~=lNw\7f/\7f¿ùy9Ì7ʱàã\90¢I\15<3Üظæã|­P\95P\81\9a\85\r\9ciÁÃp,24\8e\89óqÆcI²Au>\96\8fR\9a©7¡Eôæl\ 3÷\97¦N\97W\17i«¹\rå\e\1f\91Z}±¡£\8dÈuìãq·ßª³\91\8béë        \88t\94\ f>\8e8«ÞtLOíq·ÿÒ­\1fúó°:\1eWßú?=\8cd³£Kó\9d\8c<<N~P- \f\81:Û[\96ª\89|\f\97èÜ<Õ´\15êãÊI\98è\83K5öÑ\11ø¡\8fäfsÜ\9e\873ïnMå\ 1\19Í\8c6\9a\ 2\ 4d%@IF\ 3BæÖ\0B|`\80 \8flj¾\97\96ð̺\10\88\9e\ 2U¡§IE÷\14\99ZÓÓ©\8dLO¡\8f3\ 3ùÊ=å\9c9íÈ\9e\ 2Y)\86IFÇ\10\99[\13\a\16Cè£&s2\vÈøxs\12\9aê)\94\15\0\r2\12\10\ 2\10æ\ 3\ 14òñÂ\9eÊ\O\8d¶,hOô\14ªò=\1dTdO±©\15=\9dÙÀ{:òqf ^·§&î\9b\v\14ÊJ1L2:\86ÈÜ\9a\18">°\18B\1f5\99\13y@B0î\15ÙS +\ 1J2\1a\10\ 6\10â\ 3\ 3\ 4}¼°§"×Sí\f\93Â\11=\85ª|O\a\15ÙSljEOg6ð\9e\8e|\9cÚU»}Ý\9e\98ô\86ê)\94\15b8ÈÈ\18bs+b\88ù@b8ò1ÊÜ\87\vâ\11´§ãáN\98Û\7fwûõ6Ï)æF\19\15ÊJ\9c\92\8cæ\84Ì­á\84øÀ8A\1fT]¿\17]j\1aWL{Kµ\16¨
+­M*ºµÈÔ\9aÖNmdZ\v}<\1dbo\1f×\87\rV]cc\10ãmø\7f¨®ò\86\19£©êBY!\92\83\8c\8c$6·"\92\98\ f$\92#\1f£üÝ_8wë\896\ eÆ:f¥ º
+e%0IF\83AæÖ\80A|`` \ fª«$+\11"eáâ­Å0\1fx\86UR- ìÊ*8Þ±\9aí-ËJJ¦´\90èÜ<«´ÕÜǸ\9fñFi\84Vc\1fÇmû|Ü\7fzØm\1f»Go\13Âçg$Ò«qE;ÀÖÜö@ßïNí\98÷GÎåe\8f\97Oí¡[vÃæ\87\9d\8c¹HÍÄ+\r\8a\16P\86Ds¶·,n%\19\97: só¸ÓV¨\ f\10Íþª<²q½hÅ\1dE­4ñx\fg\9e\87îtüy!tz\93\8f$·ÌIí©H\ 2Y)\92IFG\12\99[\13\a`4\9c\ 3¯ïóºÍ\ 6GxÏ\\90Dn\80ª\10\9b¤"S\83\f­\bÍÔĸ¢}f \87õ®ý\86}ëÕÌ\19-°[g_Êwý\8681\17Cg\82¢\90\ 1Y\89Y\92ÑÐ\90¹5Ô¦>plÐƪûýôi·Á¿xXíô\98Þnßb¿½v\9bí¾Ý].hÇ<O#c\9b­¡x\ 2Y\89g\92Ñ<\91¹5<§>p\9eÐÆúð¼o\8fX\14\1e\94-Eñº-NOi\16\82ò\14= +ÑK2\9a\1e\86ÞÔ\aN\ fÚ(¿´q\ 5vÕÏÕ\87Ã\17\8eq+(\96WU        e¯¢IÎ\87Ö\80\9c\98À9\ 2\ fågê/À(³\18C`âüŧ\8c\11¨
+\18\93\8aÄ\88\f­À85\81b\84\1eÊ\8f<_\80qöTª\7fg¬=ó"óë6½V\ 6\9aù[e#=ã"\84aOgc\96\11#\ 3ÿ\ 3QÄ«ñendstream
+endobj
+3689 0 obj <<
+/Type /Page
+/Contents 3690 0 R
+/Resources 3688 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3535 0 R
+>> endobj
+3691 0 obj <<
+/D [3689 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3692 0 obj <<
+/D [3689 0 R /XYZ 76.7123 708.3437 null]
+>> endobj
+3693 0 obj <<
+/D [3689 0 R /XYZ 149.4396 690.4109 null]
+>> endobj
+3694 0 obj <<
+/D [3689 0 R /XYZ 149.4396 690.4109 null]
+>> endobj
+3695 0 obj <<
+/D [3689 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+3696 0 obj <<
+/D [3689 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+3697 0 obj <<
+/D [3689 0 R /XYZ 159.4023 672.4782 null]
+>> endobj
+3698 0 obj <<
+/D [3689 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+3699 0 obj <<
+/D [3689 0 R /XYZ 159.4023 654.5454 null]
+>> endobj
+3700 0 obj <<
+/D [3689 0 R /XYZ 76.7123 636.6127 null]
+>> endobj
+3701 0 obj <<
+/D [3689 0 R /XYZ 149.4396 618.6799 null]
+>> endobj
+3702 0 obj <<
+/D [3689 0 R /XYZ 149.4396 618.6799 null]
+>> endobj
+3703 0 obj <<
+/D [3689 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+3704 0 obj <<
+/D [3689 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+3705 0 obj <<
+/D [3689 0 R /XYZ 159.4023 600.7472 null]
+>> endobj
+3706 0 obj <<
+/D [3689 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+3707 0 obj <<
+/D [3689 0 R /XYZ 159.4023 582.8144 null]
+>> endobj
+3708 0 obj <<
+/D [3689 0 R /XYZ 76.7123 564.8817 null]
+>> endobj
+3709 0 obj <<
+/D [3689 0 R /XYZ 149.4396 546.9489 null]
+>> endobj
+3710 0 obj <<
+/D [3689 0 R /XYZ 149.4396 546.9489 null]
+>> endobj
+3711 0 obj <<
+/D [3689 0 R /XYZ 71.731 544.7921 null]
+>> endobj
+3712 0 obj <<
+/D [3689 0 R /XYZ 71.731 544.7921 null]
+>> endobj
+3713 0 obj <<
+/D [3689 0 R /XYZ 159.4023 529.0162 null]
+>> endobj
+3714 0 obj <<
+/D [3689 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+3715 0 obj <<
+/D [3689 0 R /XYZ 159.4023 511.0834 null]
+>> endobj
+3716 0 obj <<
+/D [3689 0 R /XYZ 76.7123 493.1507 null]
+>> endobj
+3717 0 obj <<
+/D [3689 0 R /XYZ 149.4396 475.2179 null]
+>> endobj
+3718 0 obj <<
+/D [3689 0 R /XYZ 149.4396 475.2179 null]
+>> endobj
+3719 0 obj <<
+/D [3689 0 R /XYZ 71.731 473.0611 null]
+>> endobj
+3720 0 obj <<
+/D [3689 0 R /XYZ 71.731 473.0611 null]
+>> endobj
+3721 0 obj <<
+/D [3689 0 R /XYZ 159.4023 457.2852 null]
+>> endobj
+3722 0 obj <<
+/D [3689 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+3723 0 obj <<
+/D [3689 0 R /XYZ 159.4023 439.3524 null]
+>> endobj
+3724 0 obj <<
+/D [3689 0 R /XYZ 76.7123 421.4197 null]
+>> endobj
+3725 0 obj <<
+/D [3689 0 R /XYZ 149.4396 403.4869 null]
+>> endobj
+3726 0 obj <<
+/D [3689 0 R /XYZ 149.4396 403.4869 null]
+>> endobj
+3727 0 obj <<
+/D [3689 0 R /XYZ 71.731 401.3301 null]
+>> endobj
+3728 0 obj <<
+/D [3689 0 R /XYZ 71.731 401.3301 null]
+>> endobj
+3729 0 obj <<
+/D [3689 0 R /XYZ 159.4023 385.5542 null]
+>> endobj
+3730 0 obj <<
+/D [3689 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+3731 0 obj <<
+/D [3689 0 R /XYZ 159.4023 367.6214 null]
+>> endobj
+3732 0 obj <<
+/D [3689 0 R /XYZ 76.7123 313.8231 null]
+>> endobj
+3733 0 obj <<
+/D [3689 0 R /XYZ 129.5143 295.8904 null]
+>> endobj
+3734 0 obj <<
+/D [3689 0 R /XYZ 129.5143 295.8904 null]
+>> endobj
+3735 0 obj <<
+/D [3689 0 R /XYZ 71.731 293.7336 null]
+>> endobj
+3736 0 obj <<
+/D [3689 0 R /XYZ 71.731 293.7336 null]
+>> endobj
+3737 0 obj <<
+/D [3689 0 R /XYZ 139.477 277.9576 null]
+>> endobj
+3738 0 obj <<
+/D [3689 0 R /XYZ 71.731 240.0996 null]
+>> endobj
+3739 0 obj <<
+/D [3689 0 R /XYZ 71.731 227.0486 null]
+>> endobj
+3740 0 obj <<
+/D [3689 0 R /XYZ 71.731 225.8033 null]
+>> endobj
+3741 0 obj <<
+/D [3689 0 R /XYZ 129.5143 206.7248 null]
+>> endobj
+3742 0 obj <<
+/D [3689 0 R /XYZ 71.731 204.5679 null]
+>> endobj
+3743 0 obj <<
+/D [3689 0 R /XYZ 71.731 204.5679 null]
+>> endobj
+3744 0 obj <<
+/D [3689 0 R /XYZ 139.477 188.792 null]
+>> endobj
+3745 0 obj <<
+/D [3689 0 R /XYZ 139.477 188.792 null]
+>> endobj
+3746 0 obj <<
+/D [3689 0 R /XYZ 71.731 186.6352 null]
+>> endobj
+3747 0 obj <<
+/D [3689 0 R /XYZ 139.477 170.8593 null]
+>> endobj
+3748 0 obj <<
+/D [3689 0 R /XYZ 139.477 170.8593 null]
+>> endobj
+3749 0 obj <<
+/D [3689 0 R /XYZ 71.731 169.4197 null]
+>> endobj
+3750 0 obj <<
+/D [3689 0 R /XYZ 139.477 152.9265 null]
+>> endobj
+3751 0 obj <<
+/D [3689 0 R /XYZ 139.477 152.9265 null]
+>> endobj
+3752 0 obj <<
+/D [3689 0 R /XYZ 71.731 150.7697 null]
+>> endobj
+3753 0 obj <<
+/D [3689 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+3754 0 obj <<
+/D [3689 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+3755 0 obj <<
+/D [3689 0 R /XYZ 71.731 132.8369 null]
+>> endobj
+3756 0 obj <<
+/D [3689 0 R /XYZ 139.477 117.061 null]
+>> endobj
+3757 0 obj <<
+/D [3689 0 R /XYZ 139.477 117.061 null]
+>> endobj
+3758 0 obj <<
+/D [3689 0 R /XYZ 71.731 114.9042 null]
+>> endobj
+3759 0 obj <<
+/D [3689 0 R /XYZ 139.477 99.1283 null]
+>> endobj
+3760 0 obj <<
+/D [3689 0 R /XYZ 139.477 99.1283 null]
+>> endobj
+3761 0 obj <<
+/D [3689 0 R /XYZ 71.731 96.9714 null]
+>> endobj
+3688 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3764 0 obj <<
+/Length 1280      
+/Filter /FlateDecode
+>>
+stream
+xÚ\95X]o¤6\14}ϯàqFʸ¶ñ\17û\96ݶ«­Z)ÚÎ[S­È@6H\13\18\81§«üû\1a\8c\19\e.\1f«<\0\99cßããã{/\90\b\9b?\12I\82dl.4ATp\1a\9dÞîpôÝüôù\8eô\90C\8f9ø \8fÇ»_~\8fq\94 DP\11\1d_¢8\11\88K\16É\98\89\8a\8eÙ?»O¯éEçõþ@9ÞQd¯\8fç´Ìõ\9fé³}|xüboþÊõk\95\7f\8f\7fÜýv\1câóX¢D\99 \8b$\19V\88       \15G\a\8aQB  \aQÄLÁ   3(ið1\8bå°\18\9aD\12\91v¡f1\ 3n\80µ«y¢\94\8fÙ\11³\LY\12ù\13º¸ãë\8d\87\e\11«H\19Q\ 5ëxÄ   bR\864Ò,«ó¦ù¦ß/ù·Â
+Öñ¿m\86R\88\v©L°vÀ\a«oZ×éû^ðÝ}/¼\9dÇ>´\93Ù»"ËK]<aLóº\99\12\12        F\8cà\ 4\a\1d|\14 òx®Y\8d\191\ e\90\ 2\8c:¯±\e\ 5Ò¸iE\98¡aÜ\eò(J=¡áL!8C\9cq¶b1\1f¶`±\ 1¶j1(î\ 6\8bMx\80\16\vh4:Õ9à+Ã9V\89\f}Õèº(¿÷¦ú»\eÙÝVý¹¿ÔÕ\9eðÝ\7fEyÊç5\8d\ 5\12\84Ê5M=Ø\92¦\ e¶®)\10w\8b¦c\1e°¦>\8dKeT=\9fª\f\12\96\vD\95R\vÂ>vÃí½\9b\ 4V\92($d\92¬)éÁ\96\94t°u%\81¸[\94\1có\80\95ôiø  \10Ê~\92"FM)ø¹ì7\9fë0F\92\92ë<ÔB®s¨õ\\a\92ë\0\1aP®óyX\9fõB\1a
+\12\99úÙÉ\7f\90\12\99ÚcæU\ 2\11LH\87§H¨¶\96Kµû\9cë\87lOð®\13ó¸\17x7³)L"E±\11ªí\ f¤°ýÁc]éª\15ÿÃ0â¶÷ýØ\ 3\10)»õ]¼>\96êcu;ø\849N¯úµßÝ F¶µìܶ!\f»Ý¯s}­Ëî\97ü\9c5f4\ 18\1f\1c\ 5ËÙ\9eã_óæT\17\17]TåVÖ_»h=Ó´ô\ri3åËpà¯'ݸC^ê´(Û\9dé\9e³Ü<\9eÝ$ÏÕU\a\8cÜ÷Y_^\96´°µ¾\1fÖ\ò\93\99#\99\85\bÃÚ¬Õ¸í@̸\88íI\9c®!ÝÐUÜ\87\ 5"õW¿i¶T\eË>ï)Þ]u>LW\9eßç$±·o©>½\ e\82ê×Üy§×\ 4\8fâÜ'ÝçÜ·N\9e\8dT\1e9jVß      Ù\81Æd\13\82\1d_"²Ñ¹\ fçsµ§|÷Ã\ 5øZ\9dóf«\89Óì­({ö\97¢¿¹6Á±ÒùÉ\9dÀ\12.t ±Ç¶?Hëô-7»`   \ 59\91\98\89\8c¨l{\141Óx9ÔÁ\87ÝRq"±MÅ\93Ùfs1¥¦ë&\14\8c;\9f\8bݨ)\8f°´¹\12\eðhs\18Ôx1\84ɤ;0Çå~ô\12Õ\8eoOÚ)m\13\94\8f¼Öó=\ 3åm£\12¯u_>l¡g\18`«=\ 3\14wCÏ0á\ 1ö\f\ 1\8d\a£\8b\84»/ÁÌ»ë|÷õ\0Èúf§³Æ¯\86ó0ï^ÚÖ\E×ÜëÁ\96Üë`ëî\ 5ânqï\98Ç\8c{}\1eA©y)\R\1dw!\98#\f¶gAîo_Á\82:Ñ÷)ãÿµEcÖØؤ\19²úªæÃ\96\8cí`ëÆ\ 6ân16ÀÃÓÍ\19Û§ñ\13ÂÍô·D1¤ÔÜ«\97ëo}Ô|\7f; Vû[(ê\86þ\16¢\ 1ô·\ 1\ f£ÇöO\1e³*    \81\12\96¬|ñðQ\v*9ÔºJ@Ô-*\ 1\95|\1e\9b\b5wÂHL\10Vlí\84ù°\85\136ÀVO\18\14wà     \83xLOX@#,´~ç9m\1f\90\18\916e/;ÇC-8Ç¡Ö\9d\ 3DÝâ\9c1\8d\ fÎñy\94¦qÛܳL28ü\1e\ 4ä«þ;4S&ù\89dñSµ\87\99~©æT\19bÆõ\ eÕ\12\14dö»3\10ð\7f¢\ eNÏendstream
+endobj
+3763 0 obj <<
+/Type /Page
+/Contents 3764 0 R
+/Resources 3762 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3535 0 R
+>> endobj
+3765 0 obj <<
+/D [3763 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3766 0 obj <<
+/D [3763 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+3767 0 obj <<
+/D [3763 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+3768 0 obj <<
+/D [3763 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+3769 0 obj <<
+/D [3763 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+3770 0 obj <<
+/D [3763 0 R /XYZ 149.4396 690.4109 null]
+>> endobj
+3771 0 obj <<
+/D [3763 0 R /XYZ 76.7123 672.4782 null]
+>> endobj
+3772 0 obj <<
+/D [3763 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+3773 0 obj <<
+/D [3763 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+3774 0 obj <<
+/D [3763 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+3775 0 obj <<
+/D [3763 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+3776 0 obj <<
+/D [3763 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+3777 0 obj <<
+/D [3763 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+3778 0 obj <<
+/D [3763 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+3779 0 obj <<
+/D [3763 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+3780 0 obj <<
+/D [3763 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+3781 0 obj <<
+/D [3763 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+3782 0 obj <<
+/D [3763 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+796 0 obj <<
+/D [3763 0 R /XYZ 71.731 559.9004 null]
+>> endobj
+302 0 obj <<
+/D [3763 0 R /XYZ 260.9266 514.6461 null]
+>> endobj
+3783 0 obj <<
+/D [3763 0 R /XYZ 71.731 491.1573 null]
+>> endobj
+3784 0 obj <<
+/D [3763 0 R /XYZ 161.0655 481.7693 null]
+>> endobj
+3785 0 obj <<
+/D [3763 0 R /XYZ 71.731 469.6499 null]
+>> endobj
+3786 0 obj <<
+/D [3763 0 R /XYZ 71.731 438.284 null]
+>> endobj
+3787 0 obj <<
+/D [3763 0 R /XYZ 168.8063 427.2737 null]
+>> endobj
+3788 0 obj <<
+/D [3763 0 R /XYZ 71.731 415.1542 null]
+>> endobj
+3789 0 obj <<
+/D [3763 0 R /XYZ 71.731 360.4758 null]
+>> endobj
+3790 0 obj <<
+/D [3763 0 R /XYZ 181.5683 349.4655 null]
+>> endobj
+3791 0 obj <<
+/D [3763 0 R /XYZ 71.731 339.4033 null]
+>> endobj
+3792 0 obj <<
+/D [3763 0 R /XYZ 71.731 305.9801 null]
+>> endobj
+3793 0 obj <<
+/D [3763 0 R /XYZ 71.731 294.8703 null]
+>> endobj
+3794 0 obj <<
+/D [3763 0 R /XYZ 71.731 293.625 null]
+>> endobj
+3795 0 obj <<
+/D [3763 0 R /XYZ 129.5143 274.5464 null]
+>> endobj
+3796 0 obj <<
+/D [3763 0 R /XYZ 129.5143 274.5464 null]
+>> endobj
+3797 0 obj <<
+/D [3763 0 R /XYZ 71.731 273.1069 null]
+>> endobj
+3798 0 obj <<
+/D [3763 0 R /XYZ 71.731 273.1069 null]
+>> endobj
+3799 0 obj <<
+/D [3763 0 R /XYZ 139.477 256.6137 null]
+>> endobj
+3800 0 obj <<
+/D [3763 0 R /XYZ 139.477 256.6137 null]
+>> endobj
+3801 0 obj <<
+/D [3763 0 R /XYZ 76.7123 238.6809 null]
+>> endobj
+3802 0 obj <<
+/D [3763 0 R /XYZ 129.5143 220.7482 null]
+>> endobj
+3803 0 obj <<
+/D [3763 0 R /XYZ 129.5143 220.7482 null]
+>> endobj
+3804 0 obj <<
+/D [3763 0 R /XYZ 71.731 218.5914 null]
+>> endobj
+3805 0 obj <<
+/D [3763 0 R /XYZ 71.731 218.5914 null]
+>> endobj
+3806 0 obj <<
+/D [3763 0 R /XYZ 139.477 202.8154 null]
+>> endobj
+3807 0 obj <<
+/D [3763 0 R /XYZ 71.731 200.6586 null]
+>> endobj
+3808 0 obj <<
+/D [3763 0 R /XYZ 71.731 200.6586 null]
+>> endobj
+3809 0 obj <<
+/D [3763 0 R /XYZ 149.4396 184.8827 null]
+>> endobj
+3810 0 obj <<
+/D [3763 0 R /XYZ 71.731 182.7258 null]
+>> endobj
+3811 0 obj <<
+/D [3763 0 R /XYZ 149.4396 166.9499 null]
+>> endobj
+3812 0 obj <<
+/D [3763 0 R /XYZ 76.7123 149.0172 null]
+>> endobj
+3813 0 obj <<
+/D [3763 0 R /XYZ 139.477 131.0844 null]
+>> endobj
+3814 0 obj <<
+/D [3763 0 R /XYZ 71.731 129.6449 null]
+>> endobj
+3815 0 obj <<
+/D [3763 0 R /XYZ 71.731 129.6449 null]
+>> endobj
+3816 0 obj <<
+/D [3763 0 R /XYZ 149.4396 113.1517 null]
+>> endobj
+3817 0 obj <<
+/D [3763 0 R /XYZ 149.4396 113.1517 null]
+>> endobj
+3818 0 obj <<
+/D [3763 0 R /XYZ 71.731 110.9948 null]
+>> endobj
+3819 0 obj <<
+/D [3763 0 R /XYZ 71.731 110.9948 null]
+>> endobj
+3762 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3822 0 obj <<
+/Length 1080      
+/Filter /FlateDecode
+>>
+stream
+xÚ¥\98]o\9c8\14\86ïó+¸L¤\8e×6þÌ]?v«V])êÎÝv\15Ñ@\1a¤  D\f\7f¿\87±a\f\1c0i5\17\80æÅç=\ fçØ\ 6\96Pø±D3¢S8pK¸\92<¹{¼ É7øëý\ 5ó\92\9d×ìBÑ\9býÅ\1f\7f¥4±Ä*®\92ý}\92ZE¤\16\89N91\92\99d\9fÿ{ùö!{j\8bæjÇ%½äÄ\1do\ eYU´\9f²¯îòõÍ\awòwÑ>Ôùñê¿ýÇ\8b?÷C|\99jb\r\ 4Y5\99\1aC¤H\93\1d§Är&Q\11\13\96\b0
+¹PCR\91ê!\17n\13MX\97'ä2è\ 6Y\97Ì\17ÎåÔ\1c\93\8cXIy\12\ eØÇ\9d\1eÏ>ú»P\1fg¦L\82\ fÊÓ±\8f\94Õ·W\9e^\9e7Åñè.Ú\9fOÅÌa\9f\8b²\94\bFm\84L([!3È¢d°¸\eÈ`>\102#\1fYÓd?\1d\8aúÞ\1d_\b+\85aµN\94\14PMR଼h\17ª\10TÓ±\16I    ÈÙh\85F]&Õß5·\91\9aÄ\0)%ÆO,ô\919\12·\1d\84Û2ï,M\b\9b\14ÔJB°N\7fí\98\95Uëñú\9eF\88w\9aÅ\1aL\15Q\8cëX\r\ 6²µ\1aìeñ\1aDân©AÄ\aV\83¡\ fH\7f±Ú\1c\9f¼¨Úò\v¥\1c&ÆEPÌ\10¥m´Y\ 3Ù\1a¨^\16\a\85ÄÝ\ 2
\81\81
+}à¥ó\eì|¿I\ 3\v\10\13\91Þ\rU˽;¨¢½\8bEÝл3\e\8e|äÅñ®)\9fÚ²®\90¾U\8c(eô¸oÝ,\18m]/[*J©\ 41\86ź7\94­\14å \8b\16%\16wCQb>\90¢\1cù\88,\17§³    \7f\1c\95
+\13ëßP¶\86ª\97ÅQ!q· B|`¨B\1f/_l£ô\98%RÂ\93\10Z\12Îô\ 2½^µ\vegzVSGo6Ú"=ÎawÅ8\1aw\99^\7f×ÜǸ\89aÛ*\19lMG>\9a¢}nªÛû²8¸-ï\84¹æDp\93\8eÛØ!WòÒ#þT\1eÛñ\138M\8dÝ\88\8e\8e.Ø<íÞ\98Ô\84\9b\85\8dõ Ú\852¤Xg£-â\867\ 4Ê\85Eã.ãîïB}\ 4Åê§î\91\8dóÄ\ 6\ 3\81\96KÈGRb¨\95'Áç\13¡ãõbI¦F\11\aÖK2\94­\94ä \8b\96$\16wCIb>\ 2Fý³\1aùÀ\eúù®],\9cT\19\ 29ÉHá\84²\95Â\19dÑÂÁân(\9c\99\8fq\9fúÂ\19Ù¨²Ç\ 2éN.\b¥°\8fA\16Ùͯ\1aCÚP\87Ì(\13\83\18ÈÖ ö²8D$î\16\88S\1f8ÄÐƯ¿lüÆnp\0\ 2ÎùÒ\9bÜ\99îYµ\ 6׫âlçA· \9d\98ÀÉ\ 6\1e~y'ø¢%\1a\86\85Ô`6eòää\84M0ѽ\ 1C«(ã¦\ fN\94í¾ðhsù¾hßÔuûO\9bµ\ 5¶¸       M\f§Ýt   ÛZí«ä¦©Ûº3q=ÜqÎÞß»ã\90\13ó\e\90q\14¿üI\9a\ fpdHÜ]?\8c\8bë¶|ïÎÙn\8dìW\v¿(W\8bûéìpp'߯¸\84+¨ýÓeUç\1eõWH \7f0]\1ad«ë×\87\rú£ðc~®\ fÅqk\ 2YþXV¾\b\9eJ\7fò|\846\12´ß\´ÅÝëÀï¤ÖýWAaàÅDÙÕ\ f\87\81fþÝPrC(\83¹´Wuþ\14
+\88\ 4ü\1fJ#\9f\8cendstream
+endobj
+3821 0 obj <<
+/Type /Page
+/Contents 3822 0 R
+/Resources 3820 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3872 0 R
+>> endobj
+3823 0 obj <<
+/D [3821 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3824 0 obj <<
+/D [3821 0 R /XYZ 159.4023 708.3437 null]
+>> endobj
+3825 0 obj <<
+/D [3821 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+3826 0 obj <<
+/D [3821 0 R /XYZ 159.4023 690.4109 null]
+>> endobj
+3827 0 obj <<
+/D [3821 0 R /XYZ 76.7123 672.4782 null]
+>> endobj
+3828 0 obj <<
+/D [3821 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+3829 0 obj <<
+/D [3821 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+3830 0 obj <<
+/D [3821 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+3831 0 obj <<
+/D [3821 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+3832 0 obj <<
+/D [3821 0 R /XYZ 159.4023 636.6127 null]
+>> endobj
+3833 0 obj <<
+/D [3821 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+3834 0 obj <<
+/D [3821 0 R /XYZ 159.4023 618.6799 null]
+>> endobj
+3835 0 obj <<
+/D [3821 0 R /XYZ 76.7123 600.7472 null]
+>> endobj
+3836 0 obj <<
+/D [3821 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+3837 0 obj <<
+/D [3821 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+3838 0 obj <<
+/D [3821 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+3839 0 obj <<
+/D [3821 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+3840 0 obj <<
+/D [3821 0 R /XYZ 159.4023 564.8817 null]
+>> endobj
+3841 0 obj <<
+/D [3821 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+3842 0 obj <<
+/D [3821 0 R /XYZ 159.4023 546.9489 null]
+>> endobj
+3843 0 obj <<
+/D [3821 0 R /XYZ 76.7123 493.1507 null]
+>> endobj
+3844 0 obj <<
+/D [3821 0 R /XYZ 129.5143 475.2179 null]
+>> endobj
+3845 0 obj <<
+/D [3821 0 R /XYZ 129.5143 475.2179 null]
+>> endobj
+3846 0 obj <<
+/D [3821 0 R /XYZ 71.731 473.0611 null]
+>> endobj
+3847 0 obj <<
+/D [3821 0 R /XYZ 71.731 473.0611 null]
+>> endobj
+3848 0 obj <<
+/D [3821 0 R /XYZ 139.477 457.2852 null]
+>> endobj
+3849 0 obj <<
+/D [3821 0 R /XYZ 71.731 419.4271 null]
+>> endobj
+3850 0 obj <<
+/D [3821 0 R /XYZ 71.731 406.3762 null]
+>> endobj
+3851 0 obj <<
+/D [3821 0 R /XYZ 71.731 405.1308 null]
+>> endobj
+3852 0 obj <<
+/D [3821 0 R /XYZ 129.5143 386.0523 null]
+>> endobj
+3853 0 obj <<
+/D [3821 0 R /XYZ 71.731 383.8955 null]
+>> endobj
+3854 0 obj <<
+/D [3821 0 R /XYZ 71.731 383.8955 null]
+>> endobj
+3855 0 obj <<
+/D [3821 0 R /XYZ 139.477 368.1195 null]
+>> endobj
+3856 0 obj <<
+/D [3821 0 R /XYZ 139.477 368.1195 null]
+>> endobj
+3857 0 obj <<
+/D [3821 0 R /XYZ 71.731 365.9627 null]
+>> endobj
+3858 0 obj <<
+/D [3821 0 R /XYZ 139.477 350.1868 null]
+>> endobj
+3859 0 obj <<
+/D [3821 0 R /XYZ 139.477 350.1868 null]
+>> endobj
+3860 0 obj <<
+/D [3821 0 R /XYZ 71.731 348.03 null]
+>> endobj
+3861 0 obj <<
+/D [3821 0 R /XYZ 139.477 332.254 null]
+>> endobj
+3862 0 obj <<
+/D [3821 0 R /XYZ 139.477 332.254 null]
+>> endobj
+797 0 obj <<
+/D [3821 0 R /XYZ 71.731 309.34 null]
+>> endobj
+306 0 obj <<
+/D [3821 0 R /XYZ 234.3633 264.0857 null]
+>> endobj
+3863 0 obj <<
+/D [3821 0 R /XYZ 71.731 243.9453 null]
+>> endobj
+3864 0 obj <<
+/D [3821 0 R /XYZ 161.0655 231.2089 null]
+>> endobj
+3865 0 obj <<
+/D [3821 0 R /XYZ 71.731 219.0895 null]
+>> endobj
+3866 0 obj <<
+/D [3821 0 R /XYZ 71.731 188.0598 null]
+>> endobj
+3867 0 obj <<
+/D [3821 0 R /XYZ 168.8063 176.7133 null]
+>> endobj
+3868 0 obj <<
+/D [3821 0 R /XYZ 71.731 164.5938 null]
+>> endobj
+3869 0 obj <<
+/D [3821 0 R /XYZ 71.731 133.2279 null]
+>> endobj
+3870 0 obj <<
+/D [3821 0 R /XYZ 181.5683 122.2177 null]
+>> endobj
+3871 0 obj <<
+/D [3821 0 R /XYZ 71.731 112.1555 null]
+>> endobj
+3820 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3875 0 obj <<
+/Length 1257      
+/Filter /FlateDecode
+>>
+stream
+xÚÅXMoã6\10½çWèè\05KR¢Hå\96\8b-Z ØÍ­)\16\8a\ 2d)°d¤ù÷\1dJ¤BY£\8f\1cÚ"@ä\8fGÎãã\9báÐ, ðÇ\ 2É\88\fáÁ\13ÂcÁ\83ìxE\83gøêË\15³\90­Ål}Ч\87«\9f?\874HH\12ó8xØ\aa\12\13!£@\86\9c(ÁTð°ûsswH_\1a}ºÞrA7\9ctÏû"-uó{úÔ½½½ÿÚ½øC7\87jW_ÿõðÛÕ¯\ f}|\11J\92(\b2K²G\8diòÄ£ÉXB\84`2\90T\910
+eËóþ\9a\89MzJ\8f\1aØÖ7\97\14úA±\82(\9c\86(\85\1eµõa\8e\ 2|")\ePèa\86Â#çb\14\97sàÈ8\1a÷òùÎÃ\8d\1aó\bU @\8a8jy\80P\82\90Gzn\ e\86Ç\85n<"ÔD0\90\9bn¿êætÎ\9a\9f.vÑ\8c×e\93gi\93\8f<\9fôx\81\8eB\f¡\94\14¸°\ eµõaïÂ2cÏÁ\82\1clRX0)åQ\82Æ\9d\16Ö\8d\1aó\18
+\e&$\92rHã\16\1c\8e¨+b\12G\90<\97úæå³Ó\17\91õØM×¾nªîy®[\91!\rL:r0£ DÑ$jgþ¦a\17Ê\19\83\8bD\11)"¹`p\1f6cð\1e¶hp,î
+\83c<¼\w~\18ðHO§ô­\13«Ú#J\7fªªÆ}\9c6Úî\16p\95\843ÑnðVH"U\18¶âòPt\13s"©)qRm¾èæ®*÷\9fóB×ÈvG\92(NAGS+elkЩjªæíEßô#Þ-eÇn9#1SI;`\10¤%üH\ 55ùgW\92Á·?\1e\85î\1e¦\14Gtc¿>µfh¿ÑÅ®\86Á\fáºu¡}®¿è:;å/Æ\8akÙZëÙ"a\1d\8cï\ 5Ô\8aº_A\93æ%lN÷~§ámá&yªÎM\8f3Ëx>\9f¼ôèV^ÛSçë~F\94ö\9bÜÎ[¿è,oUÙ9¶»!\ 2è\9b\1c£&%H,âpÊX3¼ì\8c;\93Ôm°Sm÷¥²|R_\90\ fÎ\9b6`é§k\ e\ 5¡ÑýÄeñ¶¬\17¶´cÚd\87~\17 \12y#zý^ó¢è^=ißazw±\ 5\17Æ\9bT\7f\ f<Ú¢\81\88¬4ømQT×\l^]\80o\15H³Öëéî\98\97\96}YíôÚ¨kÛ\90\10z\97\88AM\9f¯Ò>l¦J÷°Å*\8dÅ]Q¥G<ð6dÀãÿiCxBI¤b¹Ð\86ø°\99\87-¶!XÜ\15\88\aÚ\86\fhü·m\bê^."\12\17ÜëÃfÜÛÃ\16Ý\8bÅ]áÞ\11\ fܽ\ 3\1eí!³\87\83Ùü3\ 5r¬µRD%4\1ej\8d\1c!yÙ\f\8f\ 5{\1eLZ8\84MT*Z²°\a\9b³°\83-[\18\89»ÆÂ\b\ f¯\83s\16öià"Y\83Þ}äÄ\9d\16\91\99\86Q,Ö\ 1\ f6'¢\83-\8b\88Ä]#"Â\ 3\11ѧ1¬\9a~·pq´\8f¨ÚÉ(\+8ÄA\15² ­\8fB\ 4º\9ckR\9f\88\99\8bT\8cF\9dÖÇ\8d\1aÓ\18¦p\ 44Â$\1eòh³·z-Ñä5\85\92AñA
+åE\ f7uÙ\18\92`\8a\9bÂ0Q\1d\1djëÃ\10eG³MJ+@$\ 1\0,î´´n\14Êó\9e\0\1e\94\87C\1e\83\13%;t\8dVi./¬½\84tru\9f"\ eì×\16G@BFKJy°9¥\1clY)$î\1a¥\10\1e\98R>\8f¥»êÇų)gj\13MØBúú¨éôíQ\8bé\8bE]\91¾#\1a\ ex¼Tu\93\97p\83/\8a\1fÙ\11kvTHD\14\8b\7f%\87áî\ 4\eÊ\96\9céÁæ\9cé`ËÎDâ®q&Â\ 3s¦Ïc`Ãï\aín\Yu<ö÷e×\rjs¯ùÛüÓY\7f¤û÷\9bw·Q\88¤ö·ç\b\9a%\16'³?O{\98ñ¯Ó\82+¸8$I?\93YC\1cNþÖ\8c\ 4ü\a\9d*XÑendstream
+endobj
+3874 0 obj <<
+/Type /Page
+/Contents 3875 0 R
+/Resources 3873 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3872 0 R
+>> endobj
+3876 0 obj <<
+/D [3874 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3877 0 obj <<
+/D [3874 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+3878 0 obj <<
+/D [3874 0 R /XYZ 71.731 708.2442 null]
+>> endobj
+3879 0 obj <<
+/D [3874 0 R /XYZ 71.731 706.9988 null]
+>> endobj
+3880 0 obj <<
+/D [3874 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+3881 0 obj <<
+/D [3874 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+3882 0 obj <<
+/D [3874 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+3883 0 obj <<
+/D [3874 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+3884 0 obj <<
+/D [3874 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+3885 0 obj <<
+/D [3874 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+3886 0 obj <<
+/D [3874 0 R /XYZ 71.731 632.1295 null]
+>> endobj
+3887 0 obj <<
+/D [3874 0 R /XYZ 71.731 619.0785 null]
+>> endobj
+3888 0 obj <<
+/D [3874 0 R /XYZ 71.731 617.8332 null]
+>> endobj
+3889 0 obj <<
+/D [3874 0 R /XYZ 129.5143 598.7547 null]
+>> endobj
+798 0 obj <<
+/D [3874 0 R /XYZ 71.731 591.6165 null]
+>> endobj
+310 0 obj <<
+/D [3874 0 R /XYZ 221.9338 548.519 null]
+>> endobj
+3890 0 obj <<
+/D [3874 0 R /XYZ 71.731 528.3787 null]
+>> endobj
+3891 0 obj <<
+/D [3874 0 R /XYZ 161.0655 515.6423 null]
+>> endobj
+3892 0 obj <<
+/D [3874 0 R /XYZ 71.731 503.5228 null]
+>> endobj
+3893 0 obj <<
+/D [3874 0 R /XYZ 71.731 472.4932 null]
+>> endobj
+3894 0 obj <<
+/D [3874 0 R /XYZ 168.8063 461.1467 null]
+>> endobj
+3895 0 obj <<
+/D [3874 0 R /XYZ 71.731 449.0272 null]
+>> endobj
+3896 0 obj <<
+/D [3874 0 R /XYZ 71.731 394.3488 null]
+>> endobj
+3897 0 obj <<
+/D [3874 0 R /XYZ 181.5683 383.3385 null]
+>> endobj
+3898 0 obj <<
+/D [3874 0 R /XYZ 71.731 373.2763 null]
+>> endobj
+3899 0 obj <<
+/D [3874 0 R /XYZ 71.731 340.4987 null]
+>> endobj
+3900 0 obj <<
+/D [3874 0 R /XYZ 71.731 328.7433 null]
+>> endobj
+3901 0 obj <<
+/D [3874 0 R /XYZ 71.731 327.498 null]
+>> endobj
+3902 0 obj <<
+/D [3874 0 R /XYZ 129.5143 308.4194 null]
+>> endobj
+3903 0 obj <<
+/D [3874 0 R /XYZ 129.5143 308.4194 null]
+>> endobj
+3904 0 obj <<
+/D [3874 0 R /XYZ 71.731 306.9799 null]
+>> endobj
+3905 0 obj <<
+/D [3874 0 R /XYZ 71.731 306.9799 null]
+>> endobj
+3906 0 obj <<
+/D [3874 0 R /XYZ 139.477 290.4867 null]
+>> endobj
+3907 0 obj <<
+/D [3874 0 R /XYZ 139.477 290.4867 null]
+>> endobj
+3908 0 obj <<
+/D [3874 0 R /XYZ 76.7123 272.5539 null]
+>> endobj
+3909 0 obj <<
+/D [3874 0 R /XYZ 129.5143 254.6212 null]
+>> endobj
+3910 0 obj <<
+/D [3874 0 R /XYZ 129.5143 254.6212 null]
+>> endobj
+3911 0 obj <<
+/D [3874 0 R /XYZ 71.731 252.4643 null]
+>> endobj
+3912 0 obj <<
+/D [3874 0 R /XYZ 71.731 252.4643 null]
+>> endobj
+3913 0 obj <<
+/D [3874 0 R /XYZ 139.477 236.6884 null]
+>> endobj
+3914 0 obj <<
+/D [3874 0 R /XYZ 71.731 234.5316 null]
+>> endobj
+3915 0 obj <<
+/D [3874 0 R /XYZ 139.477 218.7557 null]
+>> endobj
+3916 0 obj <<
+/D [3874 0 R /XYZ 71.731 217.3161 null]
+>> endobj
+3917 0 obj <<
+/D [3874 0 R /XYZ 71.731 217.3161 null]
+>> endobj
+3918 0 obj <<
+/D [3874 0 R /XYZ 149.4396 200.8229 null]
+>> endobj
+3919 0 obj <<
+/D [3874 0 R /XYZ 149.4396 200.8229 null]
+>> endobj
+3920 0 obj <<
+/D [3874 0 R /XYZ 71.731 198.6661 null]
+>> endobj
+3921 0 obj <<
+/D [3874 0 R /XYZ 71.731 198.6661 null]
+>> endobj
+3922 0 obj <<
+/D [3874 0 R /XYZ 159.4023 182.8902 null]
+>> endobj
+3923 0 obj <<
+/D [3874 0 R /XYZ 71.731 180.7333 null]
+>> endobj
+3924 0 obj <<
+/D [3874 0 R /XYZ 159.4023 164.9574 null]
+>> endobj
+3925 0 obj <<
+/D [3874 0 R /XYZ 76.7123 147.0246 null]
+>> endobj
+3926 0 obj <<
+/D [3874 0 R /XYZ 149.4396 129.0919 null]
+>> endobj
+3927 0 obj <<
+/D [3874 0 R /XYZ 149.4396 129.0919 null]
+>> endobj
+3928 0 obj <<
+/D [3874 0 R /XYZ 71.731 126.9351 null]
+>> endobj
+3929 0 obj <<
+/D [3874 0 R /XYZ 71.731 126.9351 null]
+>> endobj
+3930 0 obj <<
+/D [3874 0 R /XYZ 159.4023 111.1591 null]
+>> endobj
+3931 0 obj <<
+/D [3874 0 R /XYZ 71.731 109.0023 null]
+>> endobj
+3873 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+3934 0 obj <<
+/Length 1429      
+/Filter /FlateDecode
+>>
+stream
+xÚÅZ]o¤6\14}ϯà1\91\1a×ß6}Û®Új«­´Ró¶©"2C2¨\13\88\18Òmÿ}MÀÄ\f\17_§É¨\8a403g¸\87ãs\8f1\81eÔý±Ì0b\84Ûð\9cp­x¶y8£Ù½ûê\9736B.GÌe\búñêìû\9f\ 5Ír\92k®³«»Lä\9a(#3#8±\8aÙìjûõüã®xìÊöâ\92+zÎÉ°ý²/ê²û\Ü\ eo?|ù4ìüVv»f{¸øãê׳\9f®¦úJ\18\92[W$JRXK\94\14Ù%§$çL\81 &s"\1dQw.Ô\12!\85\99Î\85ç\99!¬?Ow.\13n\82õ's͹:&Ç\14#¹¢<\v\ fèë\1eo_xø_\81<^4eÊñ \Ìy\14m[ü3HÖÜ\rÛC×VõýwÃ\9bßwå~?ìn\9a\87\87¢Þ\ eoºfØ\96\17L\9dÿÝ¿\94\9b§®\1c>,î¦qªêCWì÷î\80\8b³\15\8e\8f1\996Üm-<\12\1et\19¢\0\8d\8f\8fµ*±tbY£Áªë\12û_-i\b\9bY'±\96³¡\9eñ(Û¶io6\ fÛ\9eÌÑ ¸±ãÚ\1d\98>#\7f\b\a`\1c\94QÇÕqZ\9e¡ç ¤3±\92\88yCXļ\13\f5/T7Á¼\10\ fÀ¼3\1eowj5jYÔý\17£ÀÏ\ 36j½Ù<µ\87u\8d\85&\9aq\83i\1cÀb\1a{\18®1P7Ec\80\a¤qÈã$\ 1ñ\1fe÷]N)1Ò`\89\11 "\89áQxb\0US\12ã\98ÆJb\84<\1eÛrÌÍ\95Ø0\960­Í)bCY7å2\89ÅF\b\8bXz\82¡\96\86ê&X\1aâ\ 1XzÆãíþ}l+¯°ÇE&ºI\f-\89µ\fK\8b\10\16\93ÖÃpi\81º)Ò\ 2< iC\1e'I\8bש=6¶r\17x\94i$$BÔzHL(4$ ª      !± \ 1\87Ä\8cGÝlË\9bj¸Ä=\1a\e©\88\83òy<Tu\87fC\8fYu/c\84Z\81\ 6C\0\8b¹×Ãp÷\ 2uSÜ\vð\80Ü\eòp§?úôsuèæÒôr\1f\86]g»?/\98\91y»]5"®)åûrUJ\99\vÂ\14Å\82 \84\9c\94\ 4)!\1e\80\943\1e°¹NªîجR\19­B\1a?D­7þ\84B\e\1fª\9aÐø\v\1apãÏx8¥: é¹tÙp\8a+\ 2÷B\84âXã\87°\98[=\fw+P7Å­\0\ fÈ­!\8fÙ\1cõáöÐì_&\9f¢Û\r{ßve[Î\1c8¨·k\9eö£WoËÙôTn×Eå\8cH\96£\11\10Àb¢z\18.*P7ET\80\a$jÈ\ 3»\168©Îc\ 3\vë¦B%\910\bQëa0¡Ð0\80ª&\84Á\82\ 6\1c\ 63\1eÕ}Ý´e¿L¸y^?A\97\ 3.\97sy|\93á¶iö¥[\7faáàqkF\16Ú\10Í\19\96\ e!,bä        \86\1a\19ª\9b`d\88\a\19\8fQ\82Ѷ\9f\ 6Ï-\r:.f¿õ\93\97W±¼àêü¯çëÙz±ô}åÍ\ 6áv´µXd\84°\98Ò\1e\86+\rÔMQ\1aà\ 1)\1dòX÷ßÿ%¾ï}&\88åNÂx\8e\ 4¨H\8ex\14\9e#@Õ\94\1c9¦±\92#!\8f².nÇ\1c=^LP¢¨=Mxð\\11\9bS,<BXÄÒ\13\fµ4T7ÁÒ\10\ fÀÒ3\1esÿ~lêÞµ÷OmÑUM½ô±¿Æ-6]õbßu\ 1\8dqÜÜ #\ 2\ 6°\98\80\1e\86\v\bÔM\11\10à\ 1   \18ò@3á½4\1dÛ\93KNhÎ\91V\ fQë­>¡ÐV\87ª&´ú\82\ 6Üê3\1e\9b¦¾»¹«öýÝ\ 3 ßÝÌ'©aï{ó\80»Õ\89\e^´Ñ\ 3X̧\1e\86û\14¨\9bâS\80\aäÓ\90ÇËò\167䶬»ªÿ¤l×%£\9ap®ÑÖ\ e`1É<\f\97\f¨\9b"\19À\ 3\92\11½Ið6\15Ç\ 6d\86\12¡\19ÒÌ!j½\99'\14ÚÌPÕ\84f^Ð\80\9byÆã¹\8f\1fËö¡:\1c\9cJÐå\7fÿÏlmì)n\r\89ä\16\10\16ñè\ 4C=
+ÕMð(Ä\ 3ðè\8cÇlɺÙ=4Ûkª(s/l\¸ÎÅ\87u\12\92È\a½\1cÂb:y\18®\13P7E'\80\a¤SÈ\ 3[í¿Vº±érK´ Hÿ\ 6 õöõ ´{\81\92   Í{Ì\ 1îÝ\90Ä¡yj7%аNV£ó÷|(`|êFZb\99Σ\ fæ\ 4\98ås9\8a[BY\9eOGê  j¹ú\94\rPð_¯\8e\ 4/endstream
+endobj
+3933 0 obj <<
+/Type /Page
+/Contents 3934 0 R
+/Resources 3932 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3872 0 R
+>> endobj
+3935 0 obj <<
+/D [3933 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+3936 0 obj <<
+/D [3933 0 R /XYZ 159.4023 708.3437 null]
+>> endobj
+3937 0 obj <<
+/D [3933 0 R /XYZ 76.7123 690.4109 null]
+>> endobj
+3938 0 obj <<
+/D [3933 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+3939 0 obj <<
+/D [3933 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+3940 0 obj <<
+/D [3933 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+3941 0 obj <<
+/D [3933 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+3942 0 obj <<
+/D [3933 0 R /XYZ 159.4023 654.5454 null]
+>> endobj
+3943 0 obj <<
+/D [3933 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+3944 0 obj <<
+/D [3933 0 R /XYZ 159.4023 636.6127 null]
+>> endobj
+3945 0 obj <<
+/D [3933 0 R /XYZ 76.7123 618.6799 null]
+>> endobj
+3946 0 obj <<
+/D [3933 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+3947 0 obj <<
+/D [3933 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+3948 0 obj <<
+/D [3933 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+3949 0 obj <<
+/D [3933 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+3950 0 obj <<
+/D [3933 0 R /XYZ 159.4023 582.8144 null]
+>> endobj
+3951 0 obj <<
+/D [3933 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+3952 0 obj <<
+/D [3933 0 R /XYZ 159.4023 564.8817 null]
+>> endobj
+3953 0 obj <<
+/D [3933 0 R /XYZ 76.7123 546.9489 null]
+>> endobj
+3954 0 obj <<
+/D [3933 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+3955 0 obj <<
+/D [3933 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+3956 0 obj <<
+/D [3933 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+3957 0 obj <<
+/D [3933 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+3958 0 obj <<
+/D [3933 0 R /XYZ 159.4023 511.0834 null]
+>> endobj
+3959 0 obj <<
+/D [3933 0 R /XYZ 71.731 509.6439 null]
+>> endobj
+3960 0 obj <<
+/D [3933 0 R /XYZ 159.4023 493.1507 null]
+>> endobj
+3961 0 obj <<
+/D [3933 0 R /XYZ 76.7123 475.2179 null]
+>> endobj
+3962 0 obj <<
+/D [3933 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+3963 0 obj <<
+/D [3933 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+3964 0 obj <<
+/D [3933 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+3965 0 obj <<
+/D [3933 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+3966 0 obj <<
+/D [3933 0 R /XYZ 159.4023 439.3524 null]
+>> endobj
+3967 0 obj <<
+/D [3933 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+3968 0 obj <<
+/D [3933 0 R /XYZ 159.4023 421.4197 null]
+>> endobj
+3969 0 obj <<
+/D [3933 0 R /XYZ 76.7123 403.4869 null]
+>> endobj
+3970 0 obj <<
+/D [3933 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+3971 0 obj <<
+/D [3933 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+3972 0 obj <<
+/D [3933 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+3973 0 obj <<
+/D [3933 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+3974 0 obj <<
+/D [3933 0 R /XYZ 159.4023 367.6214 null]
+>> endobj
+3975 0 obj <<
+/D [3933 0 R /XYZ 71.731 365.4646 null]
+>> endobj
+3976 0 obj <<
+/D [3933 0 R /XYZ 159.4023 349.6887 null]
+>> endobj
+3977 0 obj <<
+/D [3933 0 R /XYZ 76.7123 331.7559 null]
+>> endobj
+3978 0 obj <<
+/D [3933 0 R /XYZ 149.4396 313.8231 null]
+>> endobj
+3979 0 obj <<
+/D [3933 0 R /XYZ 149.4396 313.8231 null]
+>> endobj
+3980 0 obj <<
+/D [3933 0 R /XYZ 71.731 311.6663 null]
+>> endobj
+3981 0 obj <<
+/D [3933 0 R /XYZ 71.731 311.6663 null]
+>> endobj
+3982 0 obj <<
+/D [3933 0 R /XYZ 159.4023 295.8904 null]
+>> endobj
+3983 0 obj <<
+/D [3933 0 R /XYZ 71.731 293.7336 null]
+>> endobj
+3984 0 obj <<
+/D [3933 0 R /XYZ 159.4023 277.9576 null]
+>> endobj
+3985 0 obj <<
+/D [3933 0 R /XYZ 76.7123 260.0249 null]
+>> endobj
+3986 0 obj <<
+/D [3933 0 R /XYZ 149.4396 242.0921 null]
+>> endobj
+3987 0 obj <<
+/D [3933 0 R /XYZ 149.4396 242.0921 null]
+>> endobj
+3988 0 obj <<
+/D [3933 0 R /XYZ 71.731 239.9353 null]
+>> endobj
+3989 0 obj <<
+/D [3933 0 R /XYZ 71.731 239.9353 null]
+>> endobj
+3990 0 obj <<
+/D [3933 0 R /XYZ 159.4023 224.1594 null]
+>> endobj
+3991 0 obj <<
+/D [3933 0 R /XYZ 71.731 222.0026 null]
+>> endobj
+3992 0 obj <<
+/D [3933 0 R /XYZ 159.4023 206.2266 null]
+>> endobj
+3993 0 obj <<
+/D [3933 0 R /XYZ 76.7123 188.2939 null]
+>> endobj
+3994 0 obj <<
+/D [3933 0 R /XYZ 149.4396 170.3611 null]
+>> endobj
+3995 0 obj <<
+/D [3933 0 R /XYZ 149.4396 170.3611 null]
+>> endobj
+3996 0 obj <<
+/D [3933 0 R /XYZ 71.731 168.2043 null]
+>> endobj
+3997 0 obj <<
+/D [3933 0 R /XYZ 71.731 168.2043 null]
+>> endobj
+3998 0 obj <<
+/D [3933 0 R /XYZ 159.4023 152.4284 null]
+>> endobj
+3999 0 obj <<
+/D [3933 0 R /XYZ 71.731 150.2715 null]
+>> endobj
+4000 0 obj <<
+/D [3933 0 R /XYZ 159.4023 134.4956 null]
+>> endobj
+4001 0 obj <<
+/D [3933 0 R /XYZ 76.7123 116.5629 null]
+>> endobj
+4002 0 obj <<
+/D [3933 0 R /XYZ 149.4396 98.6301 null]
+>> endobj
+4003 0 obj <<
+/D [3933 0 R /XYZ 149.4396 98.6301 null]
+>> endobj
+4004 0 obj <<
+/D [3933 0 R /XYZ 71.731 96.4733 null]
+>> endobj
+4005 0 obj <<
+/D [3933 0 R /XYZ 71.731 96.4733 null]
+>> endobj
+3932 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+4008 0 obj <<
+/Length 1686      
+/Filter /FlateDecode
+>>
+stream
+xÚÍZÛnÛF\14|÷WèÑ\ 6ªíÞ/yK\83¶H\91\ 2Aâ·¦0h\89\88J¤@Ruó÷]\8a»Ô\92:ÜeÛ \r\ 2X\8c\19Î\fÏ^H²Âö\1fY)\82\14³\1fÔ *\ 5]m\ e7xõlÿôó\rq\90µÃ¬CÐ\ f÷7ßÿÄðÊ #©\Ý?­\98\91H(¾R\8c"-\88^Ýo\7f»}³Ë\8em^ß­©À·\14õ\9fï÷Y\99·ï²Çþ¿¯ß¿í\ f~ÍÛ]µmî~¿ÿåæÇû¡¾`
+\19m\8bDI2­\91àlµ¦\18\19J\ 4\b"Ü n\89ÚkÁ\1a1ÎÔp-Ô¬\14"ÝuÚk\19p\ 3¬»\98O\94\8a)9"\b2\ 2ÓUxB_wúyáá¿\ 5ò¸hJ\84å\81)\eóhÚº(\9f¿ëEû\90ﳶ¸£âöÏ;"nóþ·Ç¬ÝõGUÙ\7f¶;÷§Çªjû£&¯ûï8\7f^vyí@\9f0¦{w¼ÉÜ)\1eÝ/¶UWî¥ÜWÙ6ß^)âµ\93\ 6#N°I8\11Â"N\f°¤\13\ 5N@<\0'F<²ºÎ>;\9d\9f\9c¨ß¶9Ì^\86R+)¸½[\ 4\87½q u\88\ 2¬\99\9e\19n5ÖJ\82\9dñߺ¦ÁôJ[g$\1f'$äQVÛü¹®NÇ\87¢ï(\13?\15E\9cjfKuèW½vEéį\9cè\80¿\1df6ñL"I¨J%>\80Å\12ïaéÄ\ 3u\97$\1eà\ 1%>äa/ßeû]Ñ´ci:Íû£³òM\7f¼/Ê?î\b¾µaì³^ùÌ\17Í(ϳª\12\8d¤2É>\12ÀbªzXZU î\12U\ 1\1e\90ª!\ f8g_Khw\1f\vm\a\13=!DÍ÷\84\ 1\95ì  PÕ\ 5\8a\ 6Ü\13F<²ýKö¹y8\1d·Y\9b/í        ¶#ïsßd#}ÁãæR,$GZ\93To\ba\91\14\ f°d\8a¡º\vR\fñ\0R<âá$p±}½ïÂøÒý°ª;ÝÚ6?\1cÛq>\8b²i³ýþzlË/\ 3§Ó¿pb\9fÊÍ.+\9f#\93\ fÁ%2\§\9aF\b\8bÉíai¹\81ºKä\ 6x@r\87<æCø¿:à;\0!\bk\96ê&\ 1*ÒM<*ÝM\80ªKºÉ\94ÆL7     y<\15ûüáÜ\7f\81V"$b\8cÉq+é§\86ÉNâ`sÉæ\86!"pª\91\84°H²\aX2ÙPÝ\ 5É\86x\0É\1eñ\18Í¡7»çúø     \v\ fâ¤êç¸vn<«\92\12\88\12\95ºÿCXL%\ f\ 4Ô]¢\12À\ 3R)ä\91Z|ü3á\88ABØFÎ1C\Ë\19á<j\1dÂ.Â\19\85{á®Î6+\1c¥vaK(Xw^8ÿ­k\1eã;\97Z\1e\84³1\8f:oOuùðTäûåk\83^m)ngge]ã<\9fqÔ[ûb×\97í\881-¬R\1cÞÓ\18\10\ 6äôêl³r3\8a\ 6¬;/·ÿ\16È#È©ë×#\1a\97vfOd±TØë\11\18ilÄ\19ðá¬Pój6\92\8cpÄ(a\89H\86°H$\aX2\92\ 5\91\84x\ 4\1a\r^\85<à{ù´ig\83C\8d\1d\16\89à\84°Hp\ 6X28PÝ\ 5Á¹â1¾O]pF4Î\ 3\9bÕõ\0+        \ 1\aØ¡ý¹f·¸\ 5\ eb(\8d¸\10:%m\0\8bIëaii\81ºK¤\9dò\80¥\ri\1c«¦u\93¾\87Ía\vè«\19²\93M\11Ñ÷ã.÷SÆMu8dådÙ\99wÓÆ¿ÎsÇÍ©u\13ÊìiØ\rvõ¡©Î \9dÄHP\96òá\82\8aÙàPi\17®\8b.1aB\ 2ö à\90×uUÏ\88\ 5T*ù¥Å÷sw»Jµ\7fpíæÌÃÝ\19\9bÍ©næÝà\14  \83\93v\ 4°\98\1f\1e\966\ 4¨»Ä\91)\ fØ\92\90ƱÎãw\85½\87\88\94êK\e\vïÁdI\16½;(GR¨ä\b\10Àb~xXÚ\ f î\12?¦<`?B\1aÝ>×Ìþ-·3\fjèÕþmtÏì¿n\94\rZa\89\14åÉ\ 1"\80Å\94÷°´ò@Ý%ÊOyÀÊ\874¬V- º5\acc"ù\7fýØTûK°\87'\1d3\8f/\9a]uÚoÇO0\ô\81­\ 5¯\18Ñ\1a)\93\9a3\a¨\88ú\1e\95\14\1f(º@û)     Pú\90Cñ\VuÞõ\9f\87sk\86Âo×Ê\86\87ñÞÏÛ¹-\1d×üÝ®Pj\9bÇo|.\1f%\88²S{aR£D\b\8b¹ãai{\80ºKü\99ò\80\r
+iäeöèÒ9mJvxÇÊÄ|yS\95\9d\eϧ:k\vÿø/ôÇ· l3zp8+· vI%S\83@\b\8bÉíai¹\81ºKä\9eò\80å\ eilªòéá¼\16( Í¥B\1c«¹q -÷6/Ûâ¼t\9f_\10\10Æ\911,ÕïCXLd\ fK\8b\fÔ]"ò\94\a,rHã¬ï1¯\ fEÓX\9d ¦Ó½_!\95\8e®¸\ eÕv²Ú\9a\9c\13\96\97(\84%I©{AÅÄu¨´¶×E\97H;!\ 1+\ephªS½\81\1e6Yõ\954±9þ·÷ò\80\17Ù\18\r²¸a\ 1*b\98G%\r\ 3\8a.0lJ\ 24,äðo_\1cøJ\ fkÝ»X\#Mf6iýëZ\ 1æúm-A5ÂÄNå<ª»\1a)fß½\ 2
\r\92ã\89ìendstream
+endobj
+4007 0 obj <<
+/Type /Page
+/Contents 4008 0 R
+/Resources 4006 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3872 0 R
+>> endobj
+4009 0 obj <<
+/D [4007 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+4010 0 obj <<
+/D [4007 0 R /XYZ 159.4023 708.3437 null]
+>> endobj
+4011 0 obj <<
+/D [4007 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+4012 0 obj <<
+/D [4007 0 R /XYZ 159.4023 690.4109 null]
+>> endobj
+4013 0 obj <<
+/D [4007 0 R /XYZ 76.7123 672.4782 null]
+>> endobj
+4014 0 obj <<
+/D [4007 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+4015 0 obj <<
+/D [4007 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+4016 0 obj <<
+/D [4007 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+4017 0 obj <<
+/D [4007 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+4018 0 obj <<
+/D [4007 0 R /XYZ 159.4023 636.6127 null]
+>> endobj
+4019 0 obj <<
+/D [4007 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+4020 0 obj <<
+/D [4007 0 R /XYZ 159.4023 618.6799 null]
+>> endobj
+4021 0 obj <<
+/D [4007 0 R /XYZ 76.7123 600.7472 null]
+>> endobj
+4022 0 obj <<
+/D [4007 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+4023 0 obj <<
+/D [4007 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+4024 0 obj <<
+/D [4007 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+4025 0 obj <<
+/D [4007 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+4026 0 obj <<
+/D [4007 0 R /XYZ 159.4023 564.8817 null]
+>> endobj
+4027 0 obj <<
+/D [4007 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+4028 0 obj <<
+/D [4007 0 R /XYZ 159.4023 546.9489 null]
+>> endobj
+4029 0 obj <<
+/D [4007 0 R /XYZ 76.7123 529.0162 null]
+>> endobj
+4030 0 obj <<
+/D [4007 0 R /XYZ 149.4396 511.0834 null]
+>> endobj
+4031 0 obj <<
+/D [4007 0 R /XYZ 149.4396 511.0834 null]
+>> endobj
+4032 0 obj <<
+/D [4007 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+4033 0 obj <<
+/D [4007 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+4034 0 obj <<
+/D [4007 0 R /XYZ 159.4023 493.1507 null]
+>> endobj
+4035 0 obj <<
+/D [4007 0 R /XYZ 71.731 490.9938 null]
+>> endobj
+4036 0 obj <<
+/D [4007 0 R /XYZ 159.4023 475.2179 null]
+>> endobj
+4037 0 obj <<
+/D [4007 0 R /XYZ 76.7123 421.4197 null]
+>> endobj
+4038 0 obj <<
+/D [4007 0 R /XYZ 129.5143 403.4869 null]
+>> endobj
+4039 0 obj <<
+/D [4007 0 R /XYZ 129.5143 403.4869 null]
+>> endobj
+4040 0 obj <<
+/D [4007 0 R /XYZ 71.731 401.3301 null]
+>> endobj
+4041 0 obj <<
+/D [4007 0 R /XYZ 71.731 401.3301 null]
+>> endobj
+4042 0 obj <<
+/D [4007 0 R /XYZ 139.477 385.5542 null]
+>> endobj
+4043 0 obj <<
+/D [4007 0 R /XYZ 71.731 347.6961 null]
+>> endobj
+4044 0 obj <<
+/D [4007 0 R /XYZ 71.731 334.6452 null]
+>> endobj
+4045 0 obj <<
+/D [4007 0 R /XYZ 71.731 333.3998 null]
+>> endobj
+4046 0 obj <<
+/D [4007 0 R /XYZ 129.5143 314.3213 null]
+>> endobj
+4047 0 obj <<
+/D [4007 0 R /XYZ 71.731 312.1645 null]
+>> endobj
+4048 0 obj <<
+/D [4007 0 R /XYZ 71.731 312.1645 null]
+>> endobj
+4049 0 obj <<
+/D [4007 0 R /XYZ 139.477 296.3885 null]
+>> endobj
+4050 0 obj <<
+/D [4007 0 R /XYZ 139.477 296.3885 null]
+>> endobj
+4051 0 obj <<
+/D [4007 0 R /XYZ 71.731 294.2317 null]
+>> endobj
+4052 0 obj <<
+/D [4007 0 R /XYZ 139.477 278.4558 null]
+>> endobj
+4053 0 obj <<
+/D [4007 0 R /XYZ 139.477 278.4558 null]
+>> endobj
+4054 0 obj <<
+/D [4007 0 R /XYZ 71.731 276.2989 null]
+>> endobj
+4055 0 obj <<
+/D [4007 0 R /XYZ 139.477 260.523 null]
+>> endobj
+4056 0 obj <<
+/D [4007 0 R /XYZ 139.477 260.523 null]
+>> endobj
+4057 0 obj <<
+/D [4007 0 R /XYZ 71.731 258.3662 null]
+>> endobj
+4058 0 obj <<
+/D [4007 0 R /XYZ 139.477 242.5903 null]
+>> endobj
+4059 0 obj <<
+/D [4007 0 R /XYZ 139.477 242.5903 null]
+>> endobj
+4060 0 obj <<
+/D [4007 0 R /XYZ 71.731 240.4334 null]
+>> endobj
+4061 0 obj <<
+/D [4007 0 R /XYZ 139.477 224.6575 null]
+>> endobj
+4062 0 obj <<
+/D [4007 0 R /XYZ 139.477 224.6575 null]
+>> endobj
+4063 0 obj <<
+/D [4007 0 R /XYZ 71.731 223.218 null]
+>> endobj
+4064 0 obj <<
+/D [4007 0 R /XYZ 139.477 206.7248 null]
+>> endobj
+4065 0 obj <<
+/D [4007 0 R /XYZ 139.477 206.7248 null]
+>> endobj
+4066 0 obj <<
+/D [4007 0 R /XYZ 71.731 204.5679 null]
+>> endobj
+4067 0 obj <<
+/D [4007 0 R /XYZ 139.477 188.792 null]
+>> endobj
+4068 0 obj <<
+/D [4007 0 R /XYZ 139.477 188.792 null]
+>> endobj
+4069 0 obj <<
+/D [4007 0 R /XYZ 71.731 186.6352 null]
+>> endobj
+4070 0 obj <<
+/D [4007 0 R /XYZ 139.477 170.8593 null]
+>> endobj
+4071 0 obj <<
+/D [4007 0 R /XYZ 139.477 170.8593 null]
+>> endobj
+4072 0 obj <<
+/D [4007 0 R /XYZ 71.731 168.7024 null]
+>> endobj
+4073 0 obj <<
+/D [4007 0 R /XYZ 139.477 152.9265 null]
+>> endobj
+4074 0 obj <<
+/D [4007 0 R /XYZ 139.477 152.9265 null]
+>> endobj
+4075 0 obj <<
+/D [4007 0 R /XYZ 71.731 150.7697 null]
+>> endobj
+4076 0 obj <<
+/D [4007 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+4077 0 obj <<
+/D [4007 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+4078 0 obj <<
+/D [4007 0 R /XYZ 71.731 132.8369 null]
+>> endobj
+4079 0 obj <<
+/D [4007 0 R /XYZ 139.477 117.061 null]
+>> endobj
+4080 0 obj <<
+/D [4007 0 R /XYZ 139.477 117.061 null]
+>> endobj
+4081 0 obj <<
+/D [4007 0 R /XYZ 71.731 114.9042 null]
+>> endobj
+4082 0 obj <<
+/D [4007 0 R /XYZ 139.477 99.1283 null]
+>> endobj
+4083 0 obj <<
+/D [4007 0 R /XYZ 139.477 99.1283 null]
+>> endobj
+4084 0 obj <<
+/D [4007 0 R /XYZ 71.731 96.9714 null]
+>> endobj
+4006 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+4087 0 obj <<
+/Length 1400      
+/Filter /FlateDecode
+>>
+stream
+xÚ­Y]o¤6\14}ϯàq"í¸¶1\18ö-m·«­Z)ZEÚ\87¦\8aÈàÉP\11\18\81g£üû^\8f1c\86ËG«U¤\03\aßããsï5\f\v(ü±@2"C8ð\94ð8âÁîõ\86\ 6/ðÕç\eÖA¶\1d\83~~¸ùé·\90\ 6)Ic\1e\a\ fû Lc\12I\11È\90\93$bIð\90ÿµùå\90\1dµjn·<¢\eNìñ¾Ì*¥ÿÈ\9eíåÝý\17{ò§Ò\87:ooÿ~øýæÓC\1f?
+%I\13\b2KRÐ\84\888    \83-§$å,BQ\f\86\88\98\0\94\ 4|(BÙO\86§\81$ÌL\14&Óãz\98\99Í#çÑ5;\ 6Ó¥\¤\81\8b{}¼ðpw\8dy\84I\90\80¨±8ó\bS"¤\1cÒÈÊ·ì½}:\1dóL+ÃçLþ²\12\92\13ÁA     zF\7f´â>×u©²êC§yyËèæÍü\83¡ìg\99Öêõ¨í\85®í±¨Z\9d\95¥½x¤\94\97Ê\9e«[\1em¾ß²h£ª\ eº·ÇSµ;dÕ\8bÊGR9Qã\94\12Áhº°D>lf\89zØâ\12aqW,Ñ\88\aºD\ 3\1aû¢TO/M}:"ë\13Å$\fÃx¸>­n\8aê¥[\9eÝá¥9>Ò\882øÇìgµ\11ü­\82d²#¼$\ 1\9f\9fI\80j\82P\99ÆÀ6!Ìä\81\19\9b\13È]¸]&\9bÏJ\7fú®*Ý"\84\84$  §2Ø\9aÔ\95±MÝû¦Öµ~?ª\8fý\1d\97Iw÷n9#1Kì\9cÏ\11¬!të\f\13Ñì¤\ f\1fÆ\9eÑOg7\99â è¦\ 34J\9f\9aêü\8d*óö<ù1Ý­\8bnéÚ¤øUµ»¦8ꢮÖ\12þz\8eæÜß¹8k\9aì½S|ß/Íi禴«+\9d\15\15¬\95½Î\15\\96n\90çú¤\91¹ö1r{²?'Þ©ÔmW\12¿ìg\15²ùÕ\8dÒ\1eÕ®8K\94_\r[ s\ 11Àj[\ 63\8f\8b\1a\v×\8d\91é\1d¾i»e©;\ 6\99¯ÇP#d$¨'Mñ|Ë¡"hÕ\ fU\95ïÓ\ 2½fzwè¥Õ\aåÕ\9d^\87·ÂÕ£gåÛFå\171\919_ykRÓ\11Ñ\9eÆHøÁÚÏÑZéỲ´Yî\ 2|\85\9aÝ®µs\96¿\16ÕÚP÷Fø¬É^\15èjC\fJ&\83â\1a1\19\84      '¦È¢\95Ú\81\1eêR¨SIm¡¾\1ek²Ns\ eM\8eq,èt\99v7\8dH\f«´ë\16>        S\9a\10ÁL)e£ê\f\96ÿpµa1÷\9blÙe¦ìøÈS£&»_\18\v¨Û\94/t?\1f6ÓýzØb÷Ãâ®è~#\1e\eи\ 3]ìf\ eï~±\80}ât÷»Cd}µÃ\rö&§VMû\96\9b\r\93\90KÆõ`sÎu°eë"q×x÷\9aÇ\84y}\1eÊ´ó'Øiè~Oàë\1cK\12Jvµ\vDº[á굫ò]y\9f´/3û\1c¶´yóasöu°eû"q×Ø\17áq\11©·¯O\ 3\17©3ç§év9)\19OaG.Ó¥\8c÷a3\92õ°EÉ°¸+$Ãx\8c%\eÐ\18ÖG¿ñ_uð\11Õn0)H$Àí¨B\1dhë£\10\81®Ç\9aÔG0x \941\1auZ\1f\98Æ0Y\ 5Ð\80\87á!\8f½Ùí=íê\á%\91'ÐÅ\a©:ÊË\89Ü\1d\857\85\96\85\13\15С¶>\fÑt4Ú¤¨\11È\13A\ 3ÀâN\8bêîByx¦\8b\80\aåá\90ÇdVöûk·gÏÕ´NaBâdêaô¢\93\a\9bÓÉÁ\96uBâ®Ñ   á\81éäóø/\ 5m\8dt.Ñ(l(Í\ 3è|Òz¨\99¤u¨å¤E¢®IÚk\1a\13Iëó°\1d¶Àv1""I"\93\1f\9b²,\110*_JY\1f6cÅ\1e¶hE,î
++b<\10+\ exü¿FÚO)\8eI*Ò¥\õas\ 29ز@HÜ5\ 2!<0\81|\1e?lóÑ%\16\v\19¡\89XHR\1f5\9d¤=j1I±¨+\92tD\ 3\ 1\8fúù\1fµÓOæM\15\v\86\aä8\91ØÓÆbªv°I3²\900ót°`F\ f6gF\a[6#\12w\8d\19\11\1e\98\19}\1e\83Dzo\87̽\1c6Z\ f¤²\8b0|§¢\ fî\f{9´7\9fíá&Dâî\a\a\91@)\8eÓÙß$<Ìø'\89\88\96&ýHfNq<ù\ 3\ 3\12ð_\93±²0endstream
+endobj
+4086 0 obj <<
+/Type /Page
+/Contents 4087 0 R
+/Resources 4085 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3872 0 R
+>> endobj
+4088 0 obj <<
+/D [4086 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+4089 0 obj <<
+/D [4086 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+4090 0 obj <<
+/D [4086 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+4091 0 obj <<
+/D [4086 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+4092 0 obj <<
+/D [4086 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+4093 0 obj <<
+/D [4086 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+799 0 obj <<
+/D [4086 0 R /XYZ 71.731 667.4969 null]
+>> endobj
+314 0 obj <<
+/D [4086 0 R /XYZ 199.9499 622.2426 null]
+>> endobj
+4094 0 obj <<
+/D [4086 0 R /XYZ 71.731 602.1022 null]
+>> endobj
+4095 0 obj <<
+/D [4086 0 R /XYZ 161.0655 589.3659 null]
+>> endobj
+4096 0 obj <<
+/D [4086 0 R /XYZ 71.731 577.2464 null]
+>> endobj
+4097 0 obj <<
+/D [4086 0 R /XYZ 71.731 546.2167 null]
+>> endobj
+4098 0 obj <<
+/D [4086 0 R /XYZ 168.8063 534.8702 null]
+>> endobj
+4099 0 obj <<
+/D [4086 0 R /XYZ 71.731 522.7507 null]
+>> endobj
+4100 0 obj <<
+/D [4086 0 R /XYZ 71.731 468.0723 null]
+>> endobj
+4101 0 obj <<
+/D [4086 0 R /XYZ 181.5683 457.062 null]
+>> endobj
+4102 0 obj <<
+/D [4086 0 R /XYZ 71.731 446.9998 null]
+>> endobj
+4103 0 obj <<
+/D [4086 0 R /XYZ 71.731 415.4282 null]
+>> endobj
+4104 0 obj <<
+/D [4086 0 R /XYZ 71.731 402.4668 null]
+>> endobj
+4105 0 obj <<
+/D [4086 0 R /XYZ 71.731 401.2215 null]
+>> endobj
+4106 0 obj <<
+/D [4086 0 R /XYZ 129.5143 382.143 null]
+>> endobj
+4107 0 obj <<
+/D [4086 0 R /XYZ 129.5143 382.143 null]
+>> endobj
+4108 0 obj <<
+/D [4086 0 R /XYZ 71.731 380.7034 null]
+>> endobj
+4109 0 obj <<
+/D [4086 0 R /XYZ 71.731 380.7034 null]
+>> endobj
+4110 0 obj <<
+/D [4086 0 R /XYZ 139.477 364.2102 null]
+>> endobj
+4111 0 obj <<
+/D [4086 0 R /XYZ 139.477 364.2102 null]
+>> endobj
+4112 0 obj <<
+/D [4086 0 R /XYZ 76.7123 346.2774 null]
+>> endobj
+4113 0 obj <<
+/D [4086 0 R /XYZ 129.5143 328.3447 null]
+>> endobj
+4114 0 obj <<
+/D [4086 0 R /XYZ 129.5143 328.3447 null]
+>> endobj
+4115 0 obj <<
+/D [4086 0 R /XYZ 71.731 326.1879 null]
+>> endobj
+4116 0 obj <<
+/D [4086 0 R /XYZ 71.731 326.1879 null]
+>> endobj
+4117 0 obj <<
+/D [4086 0 R /XYZ 139.477 310.4119 null]
+>> endobj
+4118 0 obj <<
+/D [4086 0 R /XYZ 71.731 308.2551 null]
+>> endobj
+4119 0 obj <<
+/D [4086 0 R /XYZ 139.477 292.4792 null]
+>> endobj
+4120 0 obj <<
+/D [4086 0 R /XYZ 71.731 291.0396 null]
+>> endobj
+4121 0 obj <<
+/D [4086 0 R /XYZ 71.731 291.0396 null]
+>> endobj
+4122 0 obj <<
+/D [4086 0 R /XYZ 149.4396 274.5464 null]
+>> endobj
+4123 0 obj <<
+/D [4086 0 R /XYZ 149.4396 274.5464 null]
+>> endobj
+4124 0 obj <<
+/D [4086 0 R /XYZ 71.731 272.3896 null]
+>> endobj
+4125 0 obj <<
+/D [4086 0 R /XYZ 71.731 272.3896 null]
+>> endobj
+4126 0 obj <<
+/D [4086 0 R /XYZ 159.4023 256.6137 null]
+>> endobj
+4127 0 obj <<
+/D [4086 0 R /XYZ 71.731 255.1741 null]
+>> endobj
+4128 0 obj <<
+/D [4086 0 R /XYZ 159.4023 238.6809 null]
+>> endobj
+4129 0 obj <<
+/D [4086 0 R /XYZ 76.7123 220.7482 null]
+>> endobj
+4130 0 obj <<
+/D [4086 0 R /XYZ 149.4396 202.8154 null]
+>> endobj
+4131 0 obj <<
+/D [4086 0 R /XYZ 149.4396 202.8154 null]
+>> endobj
+4132 0 obj <<
+/D [4086 0 R /XYZ 71.731 200.6586 null]
+>> endobj
+4133 0 obj <<
+/D [4086 0 R /XYZ 71.731 200.6586 null]
+>> endobj
+4134 0 obj <<
+/D [4086 0 R /XYZ 159.4023 184.8827 null]
+>> endobj
+4135 0 obj <<
+/D [4086 0 R /XYZ 71.731 183.4431 null]
+>> endobj
+4136 0 obj <<
+/D [4086 0 R /XYZ 159.4023 166.9499 null]
+>> endobj
+4137 0 obj <<
+/D [4086 0 R /XYZ 76.7123 149.0172 null]
+>> endobj
+4138 0 obj <<
+/D [4086 0 R /XYZ 149.4396 131.0844 null]
+>> endobj
+4139 0 obj <<
+/D [4086 0 R /XYZ 149.4396 131.0844 null]
+>> endobj
+4140 0 obj <<
+/D [4086 0 R /XYZ 71.731 128.9276 null]
+>> endobj
+4141 0 obj <<
+/D [4086 0 R /XYZ 71.731 128.9276 null]
+>> endobj
+4142 0 obj <<
+/D [4086 0 R /XYZ 159.4023 113.1517 null]
+>> endobj
+4143 0 obj <<
+/D [4086 0 R /XYZ 71.731 110.9948 null]
+>> endobj
+4085 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+4146 0 obj <<
+/Length 1392      
+/Filter /FlateDecode
+>>
+stream
+xÚÍZ]oä4\14}ï¯Èc+1Æß±y\83å«hA+T\ 4\12\8bªt&Ó     L\93ÑL\8aÔ\7f\8fCìÔ\9e\ÇÖ²\ 3h¥M:=ñ=>>÷ÄI\87\14Øü#EIPÉÌ\81jD¥ Åúé
+\17\8fæWß\\11\vYYÌÊ\a}qwõé×\f\17\1aiIeq·-\98\96H\94¼(\19EJ\10UÜm~½~³«\ e}}¼YQ\81¯)\1a\8fïöU[÷o«\87ñÇÏßÝ\8e'ß×ý®Û\9cn~»ûîê«»©¾`%ÒÊ\14Y$É\94B\82³bE1Ò\94\b\10D¸FÜ\105sÁ
+1ÎÊi.T\17%"Ã<Í\&Ü\ 4\e\9eRqN\8e\b\82´À´ð\atuÏ\8f¯<ÜU \8fWM\890<0e!\8fêx¬^Fɺíx<õǦ}üdüáç]Õ\8fgýË¡\ e\81ÝÃïõÚþ¶9YÔÎ\9dÕ7T\ÿyCÄuÝZPµ\1d\9a\8bL\81Ùì\99áW\96\85,©9*xe\1chå£\0ÍÏÇ\8a\8d\94`Õ¸äîª9\r¦
+e$\97<Xú\80GÛmêûf3P9["\8e\91ÀÊÔ\18`\9fYa\9dx\9du>°b\ 3f61WZpãeÁ\13\1eöa\v\1e\9e`I\ fCu3<\fñ\0<\1cð0Ó·n½Ý\18¯5ï1¦.'\9cD\83èãÙ±>\1dºöÔ<ìí\a[§làX;bc¯¯Úáó\97¸ÌL"Ih\99\92Ù\83-Éì`i\99\81º92\ 3\99}\1e°ñþ3å]\8bc\8cJ^¦âÂC-Ä\85C¥ã\ 2¨\9a\13\17ç4"qáóXWû=\90\15\94#L¨\18\83;\99\16\16\16s²Pæ\9eKx*0|Ø\82\93'XÒÉPÝ\f'C<\0'\a<\82\9b\84?#w5çÔv½\7fÞLÒ\1fªcõd6*§¸Ä\92#¥H*,|Ø\92Ä\ e\96\96\18¨\9b#1À\ 3\92Øç\91ÚWü\8bªÛæ\16\87\89L\ 4\85\8f\8a\aÅ\84J\ 6\ 5T5#(f4à \bxôÍS\9d\17\14ÿtO!\bAX±dDx°%ÿ:XÚ¿@Ý\1cÿ\ 2< ÿú<^ïl_V}íîD\ekÌAikÑi{¼«£ûÞ¾ëþ°.ÝWëz2°í\8bzݵ\eëô\93±µ\1dè§\1fn\7f±C\1eºõ.º\1a\3D\ 4\89\ f[X\8d     \96\\r¨nÆj@<\80Õ\bx,n=þ·\v\82\8b\12Q%\12Áã£âÁ3¡\92Á\ 3\b\9e\19\r8x\ 2\1e\a\93º]\v\98e§Ò\füQóÇü\87\98 ©üñaK\8ew°´ã\81º9\8e\ax@\8e÷yäì¬GÝ/ùTÃ)A\9cèd´x°%¡\1d,-4P7Gh\80\a$´Ïã\ 3\9fj.§½ít¦\ 4\12\82'RÃGÅScB%S\ 3ª\9a\91\1a3\1apj\ 4<\9eêÓ©z¬á× æ\12~\89\87\e&K$)I%\87\ f[0ô\ 4K\1a\1aª\9bah\88\a\80G°Íþ¶yÜ\8dg{Ï\8bv罩Oëcsè\egd'bì%^TUs"\95\84\ f[RÕÁÒª\ 2usT\ 5x@ªú<RÏ3\97\15Úõ1aHQ#×r&x¨\85Lp¨t&\0Us2á\9cF$\13|\1eÇç6ò\14\ 3f¦{\9e2w!\13,,æ^ª\ 5R\1a§2Á\87-¸w\82\vÕÍp/Ä\ 3poÀcTÀZõG+r Q^£Ó²4,Ìê&¤ò`KR9XZ* n\8eT\0\ fH*\9fGÔ?\1f®\9eí8Ê)Â\9a&º×GÅ»wB%»\17ª\9aѽ3\1a\ 6<\867\95÷m\ 5ö¯ÀHc}\91\17\96\94ró¤¨\93ýëÁ\96Lé`iS\ 2usL     ð\80LéóøX¯Îâ\1ab\89(\95ÉÆö`K\1a:XZC n\8e\86\0\ fHC\9fÇ\ 5ßHΦG´Ùç\92Ò´+G\\8b\88¬\ eµòa¯²ê\12\8f²ÎF\8bÊJ)b\9cP°n\VwÕ\9cGØôÔð \9c\85<\8euÿ|lï·M½\1fÿÜ~¶\18Ã_>©baã\8fk!ŵÕþmsêÃ¥ùû\99kï^ºô\9d[\99¡Ø|Ú\8e\18\91HHS\1e\94Û¡V>\fpñl´¨ÜÌ\84\1få\1a¬\e\97Û]\ 5òð\l£> \ 1G¡ýR\ 5WH\11©\17¿wáaæ_»\10Ô<G\b¦\91\86\92²\8c~\89\ 2\17\88\vendstream
+endobj
+4145 0 obj <<
+/Type /Page
+/Contents 4146 0 R
+/Resources 4144 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 3872 0 R
+>> endobj
+4147 0 obj <<
+/D [4145 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+4148 0 obj <<
+/D [4145 0 R /XYZ 159.4023 708.3437 null]
+>> endobj
+4149 0 obj <<
+/D [4145 0 R /XYZ 76.7123 690.4109 null]
+>> endobj
+4150 0 obj <<
+/D [4145 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+4151 0 obj <<
+/D [4145 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+4152 0 obj <<
+/D [4145 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+4153 0 obj <<
+/D [4145 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+4154 0 obj <<
+/D [4145 0 R /XYZ 159.4023 654.5454 null]
+>> endobj
+4155 0 obj <<
+/D [4145 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+4156 0 obj <<
+/D [4145 0 R /XYZ 159.4023 636.6127 null]
+>> endobj
+4157 0 obj <<
+/D [4145 0 R /XYZ 76.7123 618.6799 null]
+>> endobj
+4158 0 obj <<
+/D [4145 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+4159 0 obj <<
+/D [4145 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+4160 0 obj <<
+/D [4145 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+4161 0 obj <<
+/D [4145 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+4162 0 obj <<
+/D [4145 0 R /XYZ 159.4023 582.8144 null]
+>> endobj
+4163 0 obj <<
+/D [4145 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+4164 0 obj <<
+/D [4145 0 R /XYZ 159.4023 564.8817 null]
+>> endobj
+4165 0 obj <<
+/D [4145 0 R /XYZ 76.7123 546.9489 null]
+>> endobj
+4166 0 obj <<
+/D [4145 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+4167 0 obj <<
+/D [4145 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+4168 0 obj <<
+/D [4145 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+4169 0 obj <<
+/D [4145 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+4170 0 obj <<
+/D [4145 0 R /XYZ 159.4023 511.0834 null]
+>> endobj
+4171 0 obj <<
+/D [4145 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+4172 0 obj <<
+/D [4145 0 R /XYZ 159.4023 493.1507 null]
+>> endobj
+4173 0 obj <<
+/D [4145 0 R /XYZ 76.7123 475.2179 null]
+>> endobj
+4174 0 obj <<
+/D [4145 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+4175 0 obj <<
+/D [4145 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+4176 0 obj <<
+/D [4145 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+4177 0 obj <<
+/D [4145 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+4178 0 obj <<
+/D [4145 0 R /XYZ 159.4023 439.3524 null]
+>> endobj
+4179 0 obj <<
+/D [4145 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+4180 0 obj <<
+/D [4145 0 R /XYZ 159.4023 421.4197 null]
+>> endobj
+4181 0 obj <<
+/D [4145 0 R /XYZ 76.7123 403.4869 null]
+>> endobj
+4182 0 obj <<
+/D [4145 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+4183 0 obj <<
+/D [4145 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+4184 0 obj <<
+/D [4145 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+4185 0 obj <<
+/D [4145 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+4186 0 obj <<
+/D [4145 0 R /XYZ 159.4023 367.6214 null]
+>> endobj
+4187 0 obj <<
+/D [4145 0 R /XYZ 71.731 365.4646 null]
+>> endobj
+4188 0 obj <<
+/D [4145 0 R /XYZ 159.4023 349.6887 null]
+>> endobj
+4189 0 obj <<
+/D [4145 0 R /XYZ 76.7123 331.7559 null]
+>> endobj
+4190 0 obj <<
+/D [4145 0 R /XYZ 149.4396 313.8231 null]
+>> endobj
+4191 0 obj <<
+/D [4145 0 R /XYZ 149.4396 313.8231 null]
+>> endobj
+4192 0 obj <<
+/D [4145 0 R /XYZ 71.731 311.6663 null]
+>> endobj
+4193 0 obj <<
+/D [4145 0 R /XYZ 71.731 311.6663 null]
+>> endobj
+4194 0 obj <<
+/D [4145 0 R /XYZ 159.4023 295.8904 null]
+>> endobj
+4195 0 obj <<
+/D [4145 0 R /XYZ 71.731 294.4508 null]
+>> endobj
+4196 0 obj <<
+/D [4145 0 R /XYZ 159.4023 277.9576 null]
+>> endobj
+4197 0 obj <<
+/D [4145 0 R /XYZ 76.7123 260.0249 null]
+>> endobj
+4198 0 obj <<
+/D [4145 0 R /XYZ 149.4396 242.0921 null]
+>> endobj
+4199 0 obj <<
+/D [4145 0 R /XYZ 149.4396 242.0921 null]
+>> endobj
+4200 0 obj <<
+/D [4145 0 R /XYZ 71.731 239.9353 null]
+>> endobj
+4201 0 obj <<
+/D [4145 0 R /XYZ 71.731 239.9353 null]
+>> endobj
+4202 0 obj <<
+/D [4145 0 R /XYZ 159.4023 224.1594 null]
+>> endobj
+4203 0 obj <<
+/D [4145 0 R /XYZ 71.731 222.0026 null]
+>> endobj
+4204 0 obj <<
+/D [4145 0 R /XYZ 159.4023 206.2266 null]
+>> endobj
+4205 0 obj <<
+/D [4145 0 R /XYZ 76.7123 152.4284 null]
+>> endobj
+4206 0 obj <<
+/D [4145 0 R /XYZ 129.5143 134.4956 null]
+>> endobj
+4207 0 obj <<
+/D [4145 0 R /XYZ 129.5143 134.4956 null]
+>> endobj
+4208 0 obj <<
+/D [4145 0 R /XYZ 71.731 132.3388 null]
+>> endobj
+4209 0 obj <<
+/D [4145 0 R /XYZ 71.731 132.3388 null]
+>> endobj
+4210 0 obj <<
+/D [4145 0 R /XYZ 139.477 116.5629 null]
+>> endobj
+4144 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+4213 0 obj <<
+/Length 1546      
+/Filter /FlateDecode
+>>
+stream
+xÚµYß\8f\9c6\10~¿¿b\1f÷¤¬\8b\8d\r&o×$M¯m¢StU+5Õ\89\ 5ï-\r\v[`\13Ý\7fß1¶Y\ 3æG\1f¢{XàÆ3\1fß7\9e±\rÞxð\877!F¡\ f?$B$`d\93\9cn¼Í3üëý\rÖ&;m³³\8d~|¼ùá'ßÛD(
+H°y<lü(@,¤\9bÐ'\883Ì7\8fé_Û7ÇøÜ\88êvG\98·%Hý>äq!\9aß⽺½{¸W\17\1fDs,ÓúöïÇ_nÞ=vñ\99\1f¢\88C\90Y\90\9dÕ\18&\89,\98\18G\881\1cnB\8f#\9fúa\8bó\93h.UQ¿\1eÆî¬\ 3\ eî\89ç;cwV;ÛÌÄ\86\87{±;3\19û3!l\14\97\10\0\87\893îð÷\8aÃ\8crâ°8\0\86\18¦~\1fG\Uñ\8bR¢<¨ßº©.I3\ 6g\86\aà\93\87ÌM\8a±ÚÙfWR°Ì©\1e\18c6I
+d\96Ghä\8c;M\8a\195Æáó\r\aR\ 2Úâð#Dð\ fã\10_òæ))S!Á\fhd\ 1"\9cs\b#M_+ʲ¢y¥®Þ}½Ål+\8a\1en±·\95îÔ­ñé&\96\ 1fFù\12±\96Ù\1c±Æl\99XGÜ5Ä\ e\89µa\88¯@ÌS\96:h¥\fq\1e®¥5Ká2ûìy\ 4ÊÌ$\9f>E09\96è¼Zͱ©­\96É\1c\a]Ãå\0\84\9bJ\vC¹ÿG$ÍSórvåh\80Q\0³¼O&Lë¬xÖ|þq\8c5\95­\8bÞüW¾5ѵ¶:\9a+qKض¯F|\90Ï\ e0\b\ 2\81\ 3\84yä/éa\99Í      bÌ\96\15qÄ]#É\10\87[\13\e\86\16%SÝlMÝPÕ7`[-ËýÛÚ¥E=äY¤êÉþe^\9e\11'
+5\8b8",\98(áÚhg[9\94\18ú\9a\14\82bYZ\ 3gÔi!Ì('\f««Q\80\ 1«\90>\8e¬\98î_,\80~\19á\854´¬f²ÐX-&¡#è\8a\1c\1c\82p¦ \8d¡\80þ2Q_=ļ0\9aª¯÷vAíe t©®*Q\9fË¢Îö¹~p(+GÒi\8f\99\1e\1f\17òùË´\1c\94"ÊøRY°Íæ\ 41fË\8a8â®\91d\88í\89\r#\89óÜ¡\b¡Èó¢h¦H¿\91\ 3\17¨\9f\98ùF\84"É/©¬Êíí9®â\13¬Ìëi5\b¬ç       [ZÜÙfsj\18³e5\1cqר1ÄáVÃ\86Ñd'±V\8dëüx\e7Âä³®½­#­A×L\8fb²K6eùEË\90Ç\89è\14ÒÂ\8b¤,R-e\rºiG¿\7f¼ÿS»<\97ÉqZ8ØØ°\88,-\1em³9á\8cÙ²p\8e¸k\84\eâp\vgÃ8CÞ\96\85»º1\f\9b?h\16ÿ»º)§ß³¾ÑÈ\83ÅØ\82,W£\19Q´Ñ¢$ã\88+\ 4\19 pÊa\ 18\89º\8e\9f\85»Ñ@O¦3eíçìù¨®r\8bX]éRQ'Uvn2£\8aQjí\12§c+$($áR_±Íæ¸7fËì;â®á\7f\88í\80\r£º\14\13ÅÌ©AZ^ ³µ\ 6\9fôØ\1eÅ+\89e\14\85\11]j\11¶Ù\1c±Æl\99XGÜ5Ä\ e\89µaÈ\86ýTÄNj\99\87"ï;5m\1d\ eÞ9D\ 4³\16à\ ec\8e\ 2è]»\80#\1c\ 6\96Y ÏÕB¾}/\9a_Ûñm\19rí<h\888ñ`A/ÏèÂ@\9d}=TeSʽßënÄ\95\15=vG`\1f      »\9bv@\e\87\ã´ð?{Ì\8b/ÍQ¿û\17yÚ¡\f\9edµÍå) õÌî¦jÏÛÚÿ\88<­a0vÀÝ\99è6ܷײ0\aØ\87F\1f\90È>Ý몴µár\1cwÕæ\80¦hâ¬èVL©\80ÛÜ8Ù\97\97fô¦µ>à¼?Ì\90ÐÛL×g\91¨n\94\ eÖ\14Ù2\˽$\ 22\11R\ 42$PEÁ>\19©5ï&íâÞùÞ¤WeÛ@Rïo\89·½4¢sTä/ã÷WONq\93\1c;Þº\85P\9f\81o\99\99\1c{aç\84H\a$\ eR¥cÇñÆ\16\9b#\98\1d\8c\11å=aç`\99\88\ 1
+üP5¿»ôd\96m'#Ï¿\17Q\19ê\8c3G\92|,\8b],\87×\83ñWÌ\96'\80\9f\99\ 5\8b\9c
+\97ã\95Sè.Ï\95\13CÁ§2\17õÚéß\82Öü\9e3}q©{ó»\11\89©\ 4\85ûðÔ  ìA¾\88Ü\99\b¹5\99>\8dÇ\98¢\88BM\9f?\8d·ÍfNã;³ÅÓxWÜ\15§ñ#\1cýÆc\1a`\ f\87¬¥\13\9b\13<ê90\89_\r>¦Èñrþ'ñu\ 1¥,/ÕôÁs\14\82ûÅ\83RËj¦\9f\e«Åvî\bº¢\9b\ fA8\9b¹\8dá\ e\18Q\9f\98Ügr\ 1\rçÖªw\ eBOÊ\9dÞÔu3aø¦ú\ 3\1aå\88ã \9aýÆfÙ\8c?±1Âáu`kj¬$Ö\80O~0s\ 4ü\ föBh¢endstream
+endobj
+4212 0 obj <<
+/Type /Page
+/Contents 4213 0 R
+/Resources 4211 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 4275 0 R
+>> endobj
+4214 0 obj <<
+/D [4212 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+4215 0 obj <<
+/D [4212 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+4216 0 obj <<
+/D [4212 0 R /XYZ 71.731 708.2442 null]
+>> endobj
+4217 0 obj <<
+/D [4212 0 R /XYZ 71.731 706.9988 null]
+>> endobj
+4218 0 obj <<
+/D [4212 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+4219 0 obj <<
+/D [4212 0 R /XYZ 71.731 685.7635 null]
+>> endobj
+4220 0 obj <<
+/D [4212 0 R /XYZ 71.731 685.7635 null]
+>> endobj
+4221 0 obj <<
+/D [4212 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+4222 0 obj <<
+/D [4212 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+4223 0 obj <<
+/D [4212 0 R /XYZ 71.731 668.548 null]
+>> endobj
+4224 0 obj <<
+/D [4212 0 R /XYZ 139.477 652.0548 null]
+>> endobj
+4225 0 obj <<
+/D [4212 0 R /XYZ 139.477 652.0548 null]
+>> endobj
+4226 0 obj <<
+/D [4212 0 R /XYZ 71.731 650.6152 null]
+>> endobj
+4227 0 obj <<
+/D [4212 0 R /XYZ 139.477 634.122 null]
+>> endobj
+4228 0 obj <<
+/D [4212 0 R /XYZ 139.477 634.122 null]
+>> endobj
+4229 0 obj <<
+/D [4212 0 R /XYZ 71.731 631.9652 null]
+>> endobj
+4230 0 obj <<
+/D [4212 0 R /XYZ 139.477 616.1893 null]
+>> endobj
+4231 0 obj <<
+/D [4212 0 R /XYZ 139.477 616.1893 null]
+>> endobj
+4232 0 obj <<
+/D [4212 0 R /XYZ 71.731 614.0324 null]
+>> endobj
+4233 0 obj <<
+/D [4212 0 R /XYZ 71.731 614.0324 null]
+>> endobj
+4234 0 obj <<
+/D [4212 0 R /XYZ 149.4396 598.2565 null]
+>> endobj
+4235 0 obj <<
+/D [4212 0 R /XYZ 76.7123 580.3238 null]
+>> endobj
+4236 0 obj <<
+/D [4212 0 R /XYZ 139.477 562.391 null]
+>> endobj
+4237 0 obj <<
+/D [4212 0 R /XYZ 139.477 562.391 null]
+>> endobj
+4238 0 obj <<
+/D [4212 0 R /XYZ 71.731 560.2342 null]
+>> endobj
+4239 0 obj <<
+/D [4212 0 R /XYZ 139.477 544.4583 null]
+>> endobj
+4240 0 obj <<
+/D [4212 0 R /XYZ 139.477 544.4583 null]
+>> endobj
+4241 0 obj <<
+/D [4212 0 R /XYZ 71.731 542.3014 null]
+>> endobj
+4242 0 obj <<
+/D [4212 0 R /XYZ 139.477 526.5255 null]
+>> endobj
+4243 0 obj <<
+/D [4212 0 R /XYZ 139.477 526.5255 null]
+>> endobj
+4244 0 obj <<
+/D [4212 0 R /XYZ 71.731 524.3687 null]
+>> endobj
+4245 0 obj <<
+/D [4212 0 R /XYZ 139.477 508.5928 null]
+>> endobj
+4246 0 obj <<
+/D [4212 0 R /XYZ 139.477 508.5928 null]
+>> endobj
+4247 0 obj <<
+/D [4212 0 R /XYZ 71.731 506.4359 null]
+>> endobj
+4248 0 obj <<
+/D [4212 0 R /XYZ 139.477 490.66 null]
+>> endobj
+4249 0 obj <<
+/D [4212 0 R /XYZ 139.477 490.66 null]
+>> endobj
+4250 0 obj <<
+/D [4212 0 R /XYZ 71.731 488.5032 null]
+>> endobj
+4251 0 obj <<
+/D [4212 0 R /XYZ 139.477 472.7273 null]
+>> endobj
+4252 0 obj <<
+/D [4212 0 R /XYZ 139.477 472.7273 null]
+>> endobj
+4253 0 obj <<
+/D [4212 0 R /XYZ 71.731 471.2877 null]
+>> endobj
+4254 0 obj <<
+/D [4212 0 R /XYZ 139.477 454.7945 null]
+>> endobj
+4255 0 obj <<
+/D [4212 0 R /XYZ 139.477 454.7945 null]
+>> endobj
+800 0 obj <<
+/D [4212 0 R /XYZ 71.731 431.8804 null]
+>> endobj
+318 0 obj <<
+/D [4212 0 R /XYZ 184.1294 386.6261 null]
+>> endobj
+4256 0 obj <<
+/D [4212 0 R /XYZ 71.731 363.1373 null]
+>> endobj
+4257 0 obj <<
+/D [4212 0 R /XYZ 161.0655 353.7494 null]
+>> endobj
+4258 0 obj <<
+/D [4212 0 R /XYZ 71.731 341.6299 null]
+>> endobj
+4259 0 obj <<
+/D [4212 0 R /XYZ 71.731 310.2641 null]
+>> endobj
+4260 0 obj <<
+/D [4212 0 R /XYZ 168.8063 299.2538 null]
+>> endobj
+4261 0 obj <<
+/D [4212 0 R /XYZ 71.731 272.1903 null]
+>> endobj
+4262 0 obj <<
+/D [4212 0 R /XYZ 71.731 232.4559 null]
+>> endobj
+4263 0 obj <<
+/D [4212 0 R /XYZ 71.731 200.8743 null]
+>> endobj
+4264 0 obj <<
+/D [4212 0 R /XYZ 181.5683 189.864 null]
+>> endobj
+4265 0 obj <<
+/D [4212 0 R /XYZ 71.731 179.8018 null]
+>> endobj
+4266 0 obj <<
+/D [4212 0 R /XYZ 71.731 146.3786 null]
+>> endobj
+4267 0 obj <<
+/D [4212 0 R /XYZ 71.731 135.2688 null]
+>> endobj
+4268 0 obj <<
+/D [4212 0 R /XYZ 71.731 134.0235 null]
+>> endobj
+4269 0 obj <<
+/D [4212 0 R /XYZ 129.5143 114.9449 null]
+>> endobj
+4270 0 obj <<
+/D [4212 0 R /XYZ 129.5143 114.9449 null]
+>> endobj
+4271 0 obj <<
+/D [4212 0 R /XYZ 71.731 113.5054 null]
+>> endobj
+4272 0 obj <<
+/D [4212 0 R /XYZ 71.731 113.5054 null]
+>> endobj
+4273 0 obj <<
+/D [4212 0 R /XYZ 139.477 97.0122 null]
+>> endobj
+4274 0 obj <<
+/D [4212 0 R /XYZ 139.477 97.0122 null]
+>> endobj
+4211 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+4278 0 obj <<
+/Length 1287      
+/Filter /FlateDecode
+>>
+stream
+xÚµYÛnã6\14|ÏWèÑ\ 6j\96\88Ü·Ý¢[´Ý\ 2yð>u\8bÀI\94XX×\ ed¥Eþ¾T$Ê\94uxIá @ä(#Íh4£\8b\ f+¨ýaEÉHÉí\ 2\f\ 1%¡¸ûû\8a\16\8fö_¿\±\ 1²\1a0+\1fôi}õãgN\vC\8c\ 2\1f
+n\14\91¥(J\ eDK¦\8bõý\9f\8b\9f\9b§¶j\96+\90t\ 1¤_^ï6ûªý²¹íÿüxýkÿá\8fªÝ\1eî\8fË¿Ö¿]ý¼\1eù%/\89Ñ\96$*R0M\ 4§¦Xqmù\ 5GQ\8c\19"%+\8b\952\94\bfñî`À\14\96§¤¬;\98\117º£ù\ 6 ÏÕ1\0Â\ 5\83Âß¡ã=_\9et¸­æ:¸.´5U\89W\1dö\90\a3Ññ½z¹y¨w\9d±VÍ«ôÓy\90\8a(f\95ÓWè\87ÞÚMÓl^ú\8f\87\87~YïÛaÅpz\8emó|×Î\8fÏ)(\81\88Rãî\8f¨\95\ f;ùʺ\0M\8eÇÁ\82¾Ú\18Q\10\ 6å\rûê¶Bu\9cLbÜØÿ\96S\19\ 1\93\86M¥ RH\81û1\80V>
+±ã|_A7\ 4³\1d(\15Ê\1avÃm\85ÊðÜ\10V\86íïT\87\1fz\17~_\82\TK&\17\83=õ}µoëo\94B\1fA<0¶\91ª4&\15\18\ f\16\v\8c\83¥\ 3\83ðæ\ 4\ 6Ñ\81\ 4Æ\97Ñ7f0écÛ6õí\12èâ¹­úU\9dA®¥h\84(%¥(!\11!\ f\15\89\90C¥#\84°æDè\ÆôB5FÈ×ñTUÍMwµªï\91+\95ê¬/ùôJ5»,e¶ÒñKmo?L\ 4jéP+\1f\86\98:Û[ÐUiý\91\14PÞ°«n+T\87\97:iuPàS\1d§b~î:yhªúq߯ø¾d4ÜÔÞÏÁßîÜ\84]T\82hmï"        \17=XÌE\a\88ðæ¸\88èÀ\ôuà¹z/c\87\96J{9£L%\1aï£Â\8d\1fQÉÆc¬\19\8d\9fÉÀ\e?ÑÑ\95½}yª\90º\vI,\14¦u·\97Ðzÿ\98\0\vÆ\951B5O\96Þ\83Åâê`é¸"¼9qEt`qõuô\ e\84nÈÎrÔ\1da8a\92¦ÊìÃ"î\8c°¤;\18o\86;\98\ eÄ\9d\89\8e`dÞdØP,!K\ 2Z&Jê£Â%\1d\92\19%\9dÉÀK:ÑaK\8aôÓ¾òðRð÷è§ýE¸\84T?}X,\81\ e\96N Â\9b\93@D\a\96@_G<nÿt+6»çHI\81Ù\17<\93\a\8bYä`i\8b\10Þ\1c\8b\10\1d\98\8e7\974ìÚÐ.®í=E\8aDS}T¸©#*ÙT\8c5£©3\19xS':\9eªæxØã\8fÏö\\80²;¾èã3W%QÀRMõa\91\18\8e°d\f\8c\18b:\90\18Nt\9c\9eò¾\1eݳ[{è\97ÿnë»í°j[\1f\ 3Ï~·Õî°\7f<\86\1f\94Ö©.û°\98\89\ e\966\11áÍ1\11Ñ\81\99èë\88>=_ÚW×PÆ\89\ 6ëN¼í\1e*Òv\87\1daÍiû¹\8c@Û}\1dÁ7e.  \ 3\r\97­:\18I´¡©ªû°HJGX2¥\18oFJ1\1dHJ':þïWXãA\95¥e·§3a\91\a\8bYä`i\8b\10Þ\1c\8b\10\1d\98\8eh\91ßæÚP-\10\81DM}T¸¦#*YS\8c5£¦3\19xM':^¿ÕB{*(\91T_¸¦ ì{\8eIÖÔ\83Å2è`é\f"¼9\19Dt`\19ôu\9c\ 2w]½Ï\1d\19¨"\0*Yd\ f\163ÑÁÒ&"¼9&":0\13}\1dÑ"_ÚW7\1ec\\10a¤J\fÛ|XdØ6Â\92Ã6\8c7cØ6Ó\81\ fÛ&:\9aª}nö7\ fuµëg\93gg£\9b \81æؼMÉÅàÿ\97úØNÏÍë5´Ûãä¬ôdÁ\91
+c\8aH\ 5©\91\8a\ f\8b\8cTFXr¤\82ñf\8cT0\1dó\91ÊD\ 6þEÂ0\81\16\9ah¦LtHíaæ3j   \9aPf̸§\8eR\99àÄ\19\ f\8aÛ¸\13endstream
+endobj
+4277 0 obj <<
+/Type /Page
+/Contents 4278 0 R
+/Resources 4276 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 4275 0 R
+>> endobj
+4279 0 obj <<
+/D [4277 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+4280 0 obj <<
+/D [4277 0 R /XYZ 76.7123 708.3437 null]
+>> endobj
+4281 0 obj <<
+/D [4277 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+4282 0 obj <<
+/D [4277 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+4283 0 obj <<
+/D [4277 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+4284 0 obj <<
+/D [4277 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+4285 0 obj <<
+/D [4277 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+4286 0 obj <<
+/D [4277 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+4287 0 obj <<
+/D [4277 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+4288 0 obj <<
+/D [4277 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+4289 0 obj <<
+/D [4277 0 R /XYZ 76.7123 636.6127 null]
+>> endobj
+4290 0 obj <<
+/D [4277 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+4291 0 obj <<
+/D [4277 0 R /XYZ 71.731 617.2404 null]
+>> endobj
+4292 0 obj <<
+/D [4277 0 R /XYZ 71.731 617.2404 null]
+>> endobj
+4293 0 obj <<
+/D [4277 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+4294 0 obj <<
+/D [4277 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+4295 0 obj <<
+/D [4277 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+4296 0 obj <<
+/D [4277 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+4297 0 obj <<
+/D [4277 0 R /XYZ 159.4023 582.8144 null]
+>> endobj
+4298 0 obj <<
+/D [4277 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+4299 0 obj <<
+/D [4277 0 R /XYZ 159.4023 564.8817 null]
+>> endobj
+4300 0 obj <<
+/D [4277 0 R /XYZ 76.7123 546.9489 null]
+>> endobj
+4301 0 obj <<
+/D [4277 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+4302 0 obj <<
+/D [4277 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+4303 0 obj <<
+/D [4277 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+4304 0 obj <<
+/D [4277 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+4305 0 obj <<
+/D [4277 0 R /XYZ 159.4023 511.0834 null]
+>> endobj
+4306 0 obj <<
+/D [4277 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+4307 0 obj <<
+/D [4277 0 R /XYZ 159.4023 493.1507 null]
+>> endobj
+4308 0 obj <<
+/D [4277 0 R /XYZ 76.7123 475.2179 null]
+>> endobj
+4309 0 obj <<
+/D [4277 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+4310 0 obj <<
+/D [4277 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+4311 0 obj <<
+/D [4277 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+4312 0 obj <<
+/D [4277 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+4313 0 obj <<
+/D [4277 0 R /XYZ 159.4023 439.3524 null]
+>> endobj
+4314 0 obj <<
+/D [4277 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+4315 0 obj <<
+/D [4277 0 R /XYZ 159.4023 421.4197 null]
+>> endobj
+4316 0 obj <<
+/D [4277 0 R /XYZ 76.7123 403.4869 null]
+>> endobj
+4317 0 obj <<
+/D [4277 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+4318 0 obj <<
+/D [4277 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+4319 0 obj <<
+/D [4277 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+4320 0 obj <<
+/D [4277 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+4321 0 obj <<
+/D [4277 0 R /XYZ 159.4023 367.6214 null]
+>> endobj
+4322 0 obj <<
+/D [4277 0 R /XYZ 71.731 365.4646 null]
+>> endobj
+4323 0 obj <<
+/D [4277 0 R /XYZ 159.4023 349.6887 null]
+>> endobj
+4324 0 obj <<
+/D [4277 0 R /XYZ 76.7123 331.7559 null]
+>> endobj
+4325 0 obj <<
+/D [4277 0 R /XYZ 149.4396 313.8231 null]
+>> endobj
+4326 0 obj <<
+/D [4277 0 R /XYZ 149.4396 313.8231 null]
+>> endobj
+4327 0 obj <<
+/D [4277 0 R /XYZ 71.731 311.6663 null]
+>> endobj
+4328 0 obj <<
+/D [4277 0 R /XYZ 71.731 311.6663 null]
+>> endobj
+4329 0 obj <<
+/D [4277 0 R /XYZ 159.4023 295.8904 null]
+>> endobj
+4330 0 obj <<
+/D [4277 0 R /XYZ 71.731 293.7336 null]
+>> endobj
+4331 0 obj <<
+/D [4277 0 R /XYZ 159.4023 277.9576 null]
+>> endobj
+4332 0 obj <<
+/D [4277 0 R /XYZ 76.7123 260.0249 null]
+>> endobj
+4333 0 obj <<
+/D [4277 0 R /XYZ 149.4396 242.0921 null]
+>> endobj
+4334 0 obj <<
+/D [4277 0 R /XYZ 149.4396 242.0921 null]
+>> endobj
+4335 0 obj <<
+/D [4277 0 R /XYZ 71.731 239.9353 null]
+>> endobj
+4336 0 obj <<
+/D [4277 0 R /XYZ 71.731 239.9353 null]
+>> endobj
+4337 0 obj <<
+/D [4277 0 R /XYZ 159.4023 224.1594 null]
+>> endobj
+4338 0 obj <<
+/D [4277 0 R /XYZ 71.731 222.0026 null]
+>> endobj
+4339 0 obj <<
+/D [4277 0 R /XYZ 159.4023 206.2266 null]
+>> endobj
+4340 0 obj <<
+/D [4277 0 R /XYZ 76.7123 152.4284 null]
+>> endobj
+4341 0 obj <<
+/D [4277 0 R /XYZ 129.5143 134.4956 null]
+>> endobj
+4342 0 obj <<
+/D [4277 0 R /XYZ 129.5143 134.4956 null]
+>> endobj
+4343 0 obj <<
+/D [4277 0 R /XYZ 71.731 132.3388 null]
+>> endobj
+4344 0 obj <<
+/D [4277 0 R /XYZ 71.731 132.3388 null]
+>> endobj
+4345 0 obj <<
+/D [4277 0 R /XYZ 139.477 116.5629 null]
+>> endobj
+4276 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+4348 0 obj <<
+/Length 1077      
+/Filter /FlateDecode
+>>
+stream
+xÚµ\98]\8f\9c6\14\86ï÷Wp9#í¸þÀ\1fìݦm¢6\8d´\8a¦WÝjEf\9c\19\14\16FÀ4Ú\7fßc0\8c\ 1ó\91\8bh/`\99×>/\ f\87ãcH\80á\8f\ 4\92 Éà@#D\ 5§Ááõ\ e\a'øéÃ\1d±\92\9dÕì\Ñ»ýÝ/ï\19\ e"\14       *\82ý×\80E\ 2q\19\ 6\92Q¤8QÁþøÏæ×s|©t±ÝQ\8e7\145ǧ4ÎtõWü¥ù÷ñé\8fæä\93®Îù±Üþ»ÿóî÷}\17\9f3\89"\ 5AfMvª±M\1a96   \89\10çD\ 6\12+ÄB&k\9f\9fuu-²òa\18»S\v\ 5ÓS̼±;ÕÎ\95µ±á\8aĤ\17»\93\99ØÏ\94òQ\JÁ\1c¡Þ¸ÃãÍG;ÊëÃa\0\848     YßG\\14ñ[ó$ò¯Í±¬\8aë¡\1a\9bk\87\v\98SIî\87Òªv®ì\ 6\85\98\9cê\99ie\93P ³0\r#oÜi(í¨±\ f¦\ 2\ 5PDXû`\11
+¥ìÛ¸h]¼$GãdÀ0Ä\88c\19A\f£{hx%Yuos\·Y_åÍñû99\9cí¥sR6g߶\ 4\96ð\8d%ÿE§yv*§\91\e\1eª%ä\8el\ ey+[Fî\89»\ 6ùÐ\87\1f¹kã\9b~{©Þ.ÚÇ\9c#N#Úg\ e9\9ad'\8býã\96ò\1eÏv&?L\16"xg\96XÞTs(­j\99ä8è\1a\90\ 3\13~\8e\8e\aÀè!\b\ 5\88Ipû\ 3\ 4ÿ3\17âô:\83\91\bDTÄ\968:²9\90­l\99¤'î\1a\94C\1f~\96®\8d\8b.Ê<ó\17\ 2N`µ\91\10ü]þ\9cBÀ#\85(\17Kµ×\95Í@ïd\8bÐ}qW@\1fùðBïÙ0\85ÀK\9cqÈrE¦\88\8f289ê¬J\9e1¦ð(&y*\8c\18eK\85Õ\95ÍñleË<=q×ð\1cúðótmÔkÙ$Taf\96t
+ê{Ã3/trÊ&\12¶G¹¾\12WÍÑ\ 4\11áÆ%¢\84×.k¬\12úEÓ¯ "TXǦÐm\9aNQªÍ\a]}4!\9a8û­À\e¨ç¥oi\90HQ\f\1d\98é>¥hºº§"¯r³\ 2<t#n\8cìØ\1d%HÀ\8b^\ f¨ãÑ[<eãÕ·ñ\8c9\8e¯Õ\19\8eÄã`×Nè:øM\97\87"¹TI\9e­õ`[Q\8bÐÒöôfq\9aö
+4<Uÿ\831\0J´Öñc\9aæfÂïÚÎ÷9Ou¹h¾ñ\1e\1f_\93ÌfÌ%±'WS\ 1C¼±ÿVúp¶§Y~Ôk}=\99;\8a\8bøUÃ~b¦Q§\11G̤Ò|£îÊf\1aõN¶Ø¨ûâ®hÔG>úïq[Oz>L\12z°Ñ\10a2ZÙ¡\7f¿\1fì³Ìxó®\1eb\93\97®òZL¯òTJ\142.\16
+¤+\9b)\90\9dl±@úâ®(\90#\1fÞ\ 2Ù³ñ\b\\9a=¨o\99\17H\84°½\9dî\9c\1e=X_\9bézë?¼\ ff~ب\9a\r3\85\18)\1cñu;Q\8a\ 5¢Pª\97\12Ü\91Í%x+[NpOÜ5    îñáÙ\89ö|øw¢+ºüÑ
+Ã%\92\8a±\1a1m\9f3,0ám\81ù¤Ë265ó´Ý\99ÊùSW\97:Øi¸¢Ü·ÉRÿøbÖдê\15Í¢Î\8aú\17\9d\1eËv      r\1f\94ýJ\13\88\88f?ä8\9añw\1cN\15Ô\91(êf2Ö%\9eü*ã        ø?Òû\1e<endstream
+endobj
+4347 0 obj <<
+/Type /Page
+/Contents 4348 0 R
+/Resources 4346 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 4275 0 R
+>> endobj
+4349 0 obj <<
+/D [4347 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+4350 0 obj <<
+/D [4347 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+4351 0 obj <<
+/D [4347 0 R /XYZ 71.731 708.2442 null]
+>> endobj
+4352 0 obj <<
+/D [4347 0 R /XYZ 71.731 706.9988 null]
+>> endobj
+4353 0 obj <<
+/D [4347 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+4354 0 obj <<
+/D [4347 0 R /XYZ 71.731 685.7635 null]
+>> endobj
+4355 0 obj <<
+/D [4347 0 R /XYZ 71.731 685.7635 null]
+>> endobj
+4356 0 obj <<
+/D [4347 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+4357 0 obj <<
+/D [4347 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+4358 0 obj <<
+/D [4347 0 R /XYZ 71.731 667.8307 null]
+>> endobj
+4359 0 obj <<
+/D [4347 0 R /XYZ 139.477 652.0548 null]
+>> endobj
+4360 0 obj <<
+/D [4347 0 R /XYZ 139.477 652.0548 null]
+>> endobj
+4361 0 obj <<
+/D [4347 0 R /XYZ 71.731 649.898 null]
+>> endobj
+4362 0 obj <<
+/D [4347 0 R /XYZ 139.477 634.122 null]
+>> endobj
+4363 0 obj <<
+/D [4347 0 R /XYZ 139.477 634.122 null]
+>> endobj
+4364 0 obj <<
+/D [4347 0 R /XYZ 71.731 631.9652 null]
+>> endobj
+4365 0 obj <<
+/D [4347 0 R /XYZ 139.477 616.1893 null]
+>> endobj
+4366 0 obj <<
+/D [4347 0 R /XYZ 139.477 616.1893 null]
+>> endobj
+4367 0 obj <<
+/D [4347 0 R /XYZ 71.731 614.0324 null]
+>> endobj
+4368 0 obj <<
+/D [4347 0 R /XYZ 139.477 598.2565 null]
+>> endobj
+4369 0 obj <<
+/D [4347 0 R /XYZ 139.477 598.2565 null]
+>> endobj
+4370 0 obj <<
+/D [4347 0 R /XYZ 71.731 596.0997 null]
+>> endobj
+4371 0 obj <<
+/D [4347 0 R /XYZ 139.477 580.3238 null]
+>> endobj
+4372 0 obj <<
+/D [4347 0 R /XYZ 139.477 580.3238 null]
+>> endobj
+801 0 obj <<
+/D [4347 0 R /XYZ 71.731 557.4097 null]
+>> endobj
+322 0 obj <<
+/D [4347 0 R /XYZ 223.2771 512.1554 null]
+>> endobj
+4373 0 obj <<
+/D [4347 0 R /XYZ 71.731 488.6666 null]
+>> endobj
+4374 0 obj <<
+/D [4347 0 R /XYZ 161.0655 479.2787 null]
+>> endobj
+4375 0 obj <<
+/D [4347 0 R /XYZ 71.731 467.1592 null]
+>> endobj
+4376 0 obj <<
+/D [4347 0 R /XYZ 71.731 435.7933 null]
+>> endobj
+4377 0 obj <<
+/D [4347 0 R /XYZ 168.8063 424.783 null]
+>> endobj
+4378 0 obj <<
+/D [4347 0 R /XYZ 71.731 412.6636 null]
+>> endobj
+4379 0 obj <<
+/D [4347 0 R /XYZ 71.731 381.2977 null]
+>> endobj
+4380 0 obj <<
+/D [4347 0 R /XYZ 181.5683 370.2874 null]
+>> endobj
+4381 0 obj <<
+/D [4347 0 R /XYZ 71.731 360.2252 null]
+>> endobj
+4382 0 obj <<
+/D [4347 0 R /XYZ 71.731 326.802 null]
+>> endobj
+4383 0 obj <<
+/D [4347 0 R /XYZ 71.731 315.6922 null]
+>> endobj
+4384 0 obj <<
+/D [4347 0 R /XYZ 71.731 314.4469 null]
+>> endobj
+4385 0 obj <<
+/D [4347 0 R /XYZ 129.5143 295.3684 null]
+>> endobj
+4386 0 obj <<
+/D [4347 0 R /XYZ 129.5143 295.3684 null]
+>> endobj
+4387 0 obj <<
+/D [4347 0 R /XYZ 71.731 293.9288 null]
+>> endobj
+4388 0 obj <<
+/D [4347 0 R /XYZ 71.731 293.9288 null]
+>> endobj
+4389 0 obj <<
+/D [4347 0 R /XYZ 139.477 277.4356 null]
+>> endobj
+4390 0 obj <<
+/D [4347 0 R /XYZ 139.477 277.4356 null]
+>> endobj
+4391 0 obj <<
+/D [4347 0 R /XYZ 71.731 239.5776 null]
+>> endobj
+4392 0 obj <<
+/D [4347 0 R /XYZ 71.731 226.5266 null]
+>> endobj
+4393 0 obj <<
+/D [4347 0 R /XYZ 71.731 225.2813 null]
+>> endobj
+4394 0 obj <<
+/D [4347 0 R /XYZ 129.5143 206.2027 null]
+>> endobj
+802 0 obj <<
+/D [4347 0 R /XYZ 71.731 199.0646 null]
+>> endobj
+326 0 obj <<
+/D [4347 0 R /XYZ 225.7901 155.9671 null]
+>> endobj
+4395 0 obj <<
+/D [4347 0 R /XYZ 71.731 132.2115 null]
+>> endobj
+4396 0 obj <<
+/D [4347 0 R /XYZ 161.0655 123.0904 null]
+>> endobj
+4397 0 obj <<
+/D [4347 0 R /XYZ 71.731 110.9709 null]
+>> endobj
+4346 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+4400 0 obj <<
+/Length 1331      
+/Filter /FlateDecode
+>>
+stream
+xÚµY]o£8\14}ï¯Èc"5^\7f`\83ç­û©YÍJ£QßvV#\92¸-+B* ªúï×\ 4\9b^Â5¦£\1dõ\ 1h\8e}\8fOα\1dÃVÔþ±UÊH*ì\85\95ä«ýñ\86®\1eíG\7fÜ0\aÙ:Ì\16\82~¾¿ùéwAW\9ahÅÕêþa%´"2MV©à$\93,[Ý\1fþ^ÿò\94?·¦Þl¹¤kNúëç2¯Lû)ßõ\8fw\9f?ö7\7f\99öéth6ÿÜÿyóÛýP_\8a\94èÌ\16\99%9 ¦4¹\ 64\19ÓDJ\96®R\9a\11\91\88ôÂóWÓìëâ¹-NÕ\87®þ¥Qf\e©¤kä\9ao9#\8aeúÒä\8biÏuÕôÔóÊ]ë:\7fíoO\ fýµiëó¾u¸ý©jó¢*ªÇþù`ìcé;Ù\9dÎm\7f{4M\93?\9aþ¡5Çç2oMãôûø0\ 3úö\95R^¶\e¶ö²\17®ûæÙì\8bîSsè\86heÛ2;\1e©Äe<yu\18ãgÆ\84Vv­\ f¦jû2usë\9a9&9Tdq\8fyÛÖÅnÃéúl5ð]Våë[K;Ú®12ªA;\aÎÛýÓ ~ûäJô\9ayÁ^\8a²ìïvîóúò]\9bÃÕ\17Ðÿû¢¸)\ fMPî  ç¡0üN¦\86x±ã\82\\90ñ½1ó®}³úÖÛ¶Kdªz§ß\95åiÃåúÅWür*M³ÔôùáXTn8Õé`\96Vý¼aÒ\1a)?\1a«r_\rF|\b¥L\84mM\19\1añ\ 1µ\850\1fq\eÿÔþ\aF|\80u\14¾r.'u9·s\0ãhÝëë\e\ fßjÊCd@@f'"É\12\91\9fÛ'D6\9e\10ÚUè \1f`Nn¯fÉ®}\17±}ÞÍV\10y®Ít\80\9e\ 2W\84r;=£ÂzÔ\16ÂÞ\84eÝô?\1a\90\87\ 5\85µ_>å\89\86\85õ­¦<ÆÂ
+M\924\1dÓ¸³ºô+\b¢®TD%\16x­¯\9d
+¼¾\88¬Ç¾»>²§þznLн\89¦\84)¦#î\85°\19÷\ e°¨{±º\vÜ;á\81»wÄÃÍÓß\1e\8aË|9U:Í\b\13T\8f\95Æ\97Åa\1eöë\83[\18B\1eNRN8×,âa\b\9bñð\0\8bz\18«»ÀÃ\18\ f°\ fq\1e\1eÑ\bêtëwH`\95\84+mX3\99\10®U,÷\10\99\87Å5Cê.Ñ\fá\81h\ 6i\8cgI¸W¸ZÛ'T]gB\11¡\84Â\15r -D!\ 2\15Ô'av\97\9a*´jX\1fßjJc\1cÙÄÒ°ûð1\ fSå»Ò`³bB\89¤Ù8ª»\93Ý\ fø­ß°q\9búÒã&\ 3ô\14Xfoh`.ô¨-\84!ºNz\v
++­D\92r´nXXß
\ 1\8c'-\ fÊÅ\98\87\93\0ͦÛÁ\ 1íq\95(%\89ÎXL%\0\9bSÉÃâ*!u\97¨\84ðÀT\82<ÂÞù\1eá\Ð\84J\88\12<\12Z\88
+\87v@EC\8bU]\10Ú     \r<´#\1e~\9d-Þ¹\9b\89æÖÁB\86\14\89í[ëXl!lÆ\90\ 3,jH¬î\ 2Cb<\10C\8ex|ç\8a:\8c\89gÄþ¬\89E\16Âæ\14ò°¸BHÝ%
+!<0\85 \8fÿo\eâ"Æ5'\9a²H\!*\1c×\ 1\15\8d+VuA\'4ð¸\8ex\f'\16È"+\89´Ø\1f\11VûÓÇ\96Éba\85°\19+\ e°¨\15±º\v¬\88ñ@¬8â\11ö\1d\94\1cWG¦\84
+\15\v*\84Í©ãaqu\90ºKÔAx`ê@\1eï
+jP0\1f,Îì°i,¤\05\13R\8f\8a\87\14©º$¤×4\ 2!\85<\9aóî_Óÿ¾\9cn\84m\93\1f² r*\b\17i4£\06çB\ f\8b»\10©»Ä\85\b\ fÌ\85\90GØrÍùxÌë× 8,\93DP\19\8b(\84Í\883À¢â`u\17\88\83ñ@Ä\19ñxWDCzù#!ÆD÷\8e%v<
+a3\aL\ 3,zÀ\84Õ]pÀ4á\81\1f0\8dx¸3õ\87âr¢\8e\9c/q\92ðL`çKJ®\9d¨\9f\8aæêýÂø\8cÞ\1fæõÅ®\87íÞw%\19É\98Ò³¯Ä\0fúFLÚ=\15ev×éQ\1dã\94\ 5ßo!\ 5ÿ\ 3ë&?Ðendstream
+endobj
+4399 0 obj <<
+/Type /Page
+/Contents 4400 0 R
+/Resources 4398 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 4275 0 R
+>> endobj
+4401 0 obj <<
+/D [4399 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+4402 0 obj <<
+/D [4399 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+4403 0 obj <<
+/D [4399 0 R /XYZ 168.8063 708.3437 null]
+>> endobj
+4404 0 obj <<
+/D [4399 0 R /XYZ 71.731 696.2242 null]
+>> endobj
+4405 0 obj <<
+/D [4399 0 R /XYZ 71.731 631.741 null]
+>> endobj
+4406 0 obj <<
+/D [4399 0 R /XYZ 181.5683 618.8792 null]
+>> endobj
+4407 0 obj <<
+/D [4399 0 R /XYZ 71.731 608.817 null]
+>> endobj
+4408 0 obj <<
+/D [4399 0 R /XYZ 71.731 576.0394 null]
+>> endobj
+4409 0 obj <<
+/D [4399 0 R /XYZ 71.731 564.284 null]
+>> endobj
+4410 0 obj <<
+/D [4399 0 R /XYZ 71.731 563.0387 null]
+>> endobj
+4411 0 obj <<
+/D [4399 0 R /XYZ 129.5143 543.9601 null]
+>> endobj
+4412 0 obj <<
+/D [4399 0 R /XYZ 129.5143 543.9601 null]
+>> endobj
+4413 0 obj <<
+/D [4399 0 R /XYZ 71.731 542.5206 null]
+>> endobj
+4414 0 obj <<
+/D [4399 0 R /XYZ 71.731 542.5206 null]
+>> endobj
+4415 0 obj <<
+/D [4399 0 R /XYZ 139.477 526.0274 null]
+>> endobj
+4416 0 obj <<
+/D [4399 0 R /XYZ 139.477 526.0274 null]
+>> endobj
+4417 0 obj <<
+/D [4399 0 R /XYZ 76.7123 508.0946 null]
+>> endobj
+4418 0 obj <<
+/D [4399 0 R /XYZ 129.5143 490.1619 null]
+>> endobj
+4419 0 obj <<
+/D [4399 0 R /XYZ 129.5143 490.1619 null]
+>> endobj
+4420 0 obj <<
+/D [4399 0 R /XYZ 71.731 488.0051 null]
+>> endobj
+4421 0 obj <<
+/D [4399 0 R /XYZ 71.731 488.0051 null]
+>> endobj
+4422 0 obj <<
+/D [4399 0 R /XYZ 139.477 472.2291 null]
+>> endobj
+4423 0 obj <<
+/D [4399 0 R /XYZ 71.731 470.0723 null]
+>> endobj
+4424 0 obj <<
+/D [4399 0 R /XYZ 139.477 454.2964 null]
+>> endobj
+4425 0 obj <<
+/D [4399 0 R /XYZ 71.731 452.8568 null]
+>> endobj
+4426 0 obj <<
+/D [4399 0 R /XYZ 71.731 452.8568 null]
+>> endobj
+4427 0 obj <<
+/D [4399 0 R /XYZ 149.4396 436.3636 null]
+>> endobj
+4428 0 obj <<
+/D [4399 0 R /XYZ 149.4396 436.3636 null]
+>> endobj
+4429 0 obj <<
+/D [4399 0 R /XYZ 71.731 434.2068 null]
+>> endobj
+4430 0 obj <<
+/D [4399 0 R /XYZ 71.731 434.2068 null]
+>> endobj
+4431 0 obj <<
+/D [4399 0 R /XYZ 159.4023 418.4309 null]
+>> endobj
+4432 0 obj <<
+/D [4399 0 R /XYZ 71.731 416.2741 null]
+>> endobj
+4433 0 obj <<
+/D [4399 0 R /XYZ 159.4023 400.4981 null]
+>> endobj
+4434 0 obj <<
+/D [4399 0 R /XYZ 76.7123 382.5654 null]
+>> endobj
+4435 0 obj <<
+/D [4399 0 R /XYZ 149.4396 364.6326 null]
+>> endobj
+4436 0 obj <<
+/D [4399 0 R /XYZ 149.4396 364.6326 null]
+>> endobj
+4437 0 obj <<
+/D [4399 0 R /XYZ 71.731 362.4758 null]
+>> endobj
+4438 0 obj <<
+/D [4399 0 R /XYZ 71.731 362.4758 null]
+>> endobj
+4439 0 obj <<
+/D [4399 0 R /XYZ 159.4023 346.6999 null]
+>> endobj
+4440 0 obj <<
+/D [4399 0 R /XYZ 71.731 344.543 null]
+>> endobj
+4441 0 obj <<
+/D [4399 0 R /XYZ 159.4023 328.7671 null]
+>> endobj
+4442 0 obj <<
+/D [4399 0 R /XYZ 76.7123 310.8344 null]
+>> endobj
+4443 0 obj <<
+/D [4399 0 R /XYZ 149.4396 292.9016 null]
+>> endobj
+4444 0 obj <<
+/D [4399 0 R /XYZ 149.4396 292.9016 null]
+>> endobj
+4445 0 obj <<
+/D [4399 0 R /XYZ 71.731 290.7448 null]
+>> endobj
+4446 0 obj <<
+/D [4399 0 R /XYZ 71.731 290.7448 null]
+>> endobj
+4447 0 obj <<
+/D [4399 0 R /XYZ 159.4023 274.9689 null]
+>> endobj
+4448 0 obj <<
+/D [4399 0 R /XYZ 71.731 272.812 null]
+>> endobj
+4449 0 obj <<
+/D [4399 0 R /XYZ 159.4023 257.0361 null]
+>> endobj
+4450 0 obj <<
+/D [4399 0 R /XYZ 76.7123 239.1034 null]
+>> endobj
+4451 0 obj <<
+/D [4399 0 R /XYZ 149.4396 221.1706 null]
+>> endobj
+4452 0 obj <<
+/D [4399 0 R /XYZ 149.4396 221.1706 null]
+>> endobj
+4453 0 obj <<
+/D [4399 0 R /XYZ 71.731 219.0138 null]
+>> endobj
+4454 0 obj <<
+/D [4399 0 R /XYZ 71.731 219.0138 null]
+>> endobj
+4455 0 obj <<
+/D [4399 0 R /XYZ 159.4023 203.2379 null]
+>> endobj
+4456 0 obj <<
+/D [4399 0 R /XYZ 71.731 201.081 null]
+>> endobj
+4457 0 obj <<
+/D [4399 0 R /XYZ 159.4023 185.3051 null]
+>> endobj
+4458 0 obj <<
+/D [4399 0 R /XYZ 76.7123 131.5068 null]
+>> endobj
+4459 0 obj <<
+/D [4399 0 R /XYZ 129.5143 113.5741 null]
+>> endobj
+4460 0 obj <<
+/D [4399 0 R /XYZ 129.5143 113.5741 null]
+>> endobj
+4461 0 obj <<
+/D [4399 0 R /XYZ 71.731 111.4173 null]
+>> endobj
+4462 0 obj <<
+/D [4399 0 R /XYZ 71.731 111.4173 null]
+>> endobj
+4398 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+4465 0 obj <<
+/Length 936       
+/Filter /FlateDecode
+>>
+stream
+xÚ\9dWQo£8\10~ï¯à±\91\8aÏ\1ell÷­·{·ÚÕ^\15­òv=\9dhâmÙ%\10\ 1Ùªÿþ\86\18\88       \ e S\1f\8cÛÏ3ß|\1dÏ\8cY@ñ\87\ 5\92\11\19á\ 2\9a@, Øîohð\82\7fútÃZHØbB\17ôûææ·?#\1ah¢c\88\83Í÷ Ò1\11\92\a2\ 2¢\ 4SÁf÷÷í\87×äP\9br\15\82 ·@ìºÎ\92ÜÔ_\93g»}X\7f\1f\7f\99úµØU«\7f6_nþØôþE$\89Vèd\92\8aðXEA\b\94h`Â\8bbhB0\8e(\89ø\88\ f\ 6t   k\ 2Å`z\\ fk¢y\ 2\10\97ì\18\86K\81ëÀ5Øù½\Ï<ºS^\1egQY¤     \97rH£ªË4\7fi\88 !Ä\82Àx\ 4%\8ajq\ 2|3õ±Ì«û\11WD\vÁd\10£¤\8cQåרC\85.ì¬\91\96Ôj4²vU#\0dÏÀë÷ºFÝ)/\ fG£î\7f\91\94eònóªønWÔí¸­Çäºã\18\ f\93\8aÍ$\8e\v\9bH\9c\1e6\9b8>¿\v\12gÄ#R\81BQbî&Î\80\86É\93çÌì\1a&\17\1arJ\ 4\95\1a}4¸{«×sQd&ÉïºÛYUÉ\8b±\9b´²«cѯ)e\ 48æç\8c¦\ elJÓ\ e6¯©Çï\12M/yø5uiì­,ÿ¦>YELb\8e5q «½¾^Uw&¯Ó'J\ 1Kæ5I\85\8aHÄÐþ´¤.lBÒ\1e6+©Ïï\ 2IG<¼\92\ ehÔf\7fÈ\92ÚøòT\10\ 1\1a\96
+êZò\8b\19\v\12I­æÄt`Sbv°y1=~\97\88yÉÃ/¦K£:>ÿ0¶ê\8dï<ãzqrVÇý>)ß[C\18\8b$ØeO\8eCF%Q\1a7a¬\b\8b\15?\99\ 4"EÓò¥ºýdêGS¿­\0«qùÓiô\97\9cÐ\ ePl=Í\10!cÛïÖeQ\17õûÁÜ÷'ÎA·gC`$fJ\9f\ etÞØÀÛ)\8a'*hr¬_qe\1eÿagÎõÿÑTÛ2=Ôi\91/eÐv`ë3±K\96Võ°!%Yf?~­@à\ ekÈi\9b\9fÉÛ_ìm\bd)ã\87,+\1a\93o¦µø\r+y5KÞrOvû´+ú\87´ý8VX\928½½ë.ÖöµýÌ\8b\9dYÊk½b\18g\99`<¦\9c\98O@QÂ\81ó\99ùÄ\85MÌ'=lv>ñù]0\9f\8cx\f¯eW\1e\ 6<\9a$ôÈ\ 6\9cP6º\928¶Ü]\fËÍù¦[l\93&/]ä±¼^ï \ 6Â5\9bk\1e.l¢Þõ°Ùzçó» Þ\8dxxëÝ\80Æ\ 3êboüÿêÇ\ f\1eYíík\13¿èï\83\1dÀeóê\ 1Ù\rà|Ù\0Î4\8e\10\rà.l"Á{Øl\82ûü.Hp\1f\ fÏ\0>àá\1fÀÏJ?ú\8bÜ%õöñÉ\15Q,Ö\93ïS\a3~\9e
+Px³´î-5\1c%\}lz\1cþ\a |i\8fendstream
+endobj
+4464 0 obj <<
+/Type /Page
+/Contents 4465 0 R
+/Resources 4463 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 4275 0 R
+>> endobj
+4466 0 obj <<
+/D [4464 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+4467 0 obj <<
+/D [4464 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+4468 0 obj <<
+/D [4464 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+4469 0 obj <<
+/D [4464 0 R /XYZ 71.731 670.4857 null]
+>> endobj
+4470 0 obj <<
+/D [4464 0 R /XYZ 71.731 657.4347 null]
+>> endobj
+4471 0 obj <<
+/D [4464 0 R /XYZ 71.731 656.1894 null]
+>> endobj
+4472 0 obj <<
+/D [4464 0 R /XYZ 129.5143 637.1108 null]
+>> endobj
+4473 0 obj <<
+/D [4464 0 R /XYZ 71.731 634.954 null]
+>> endobj
+4474 0 obj <<
+/D [4464 0 R /XYZ 71.731 634.954 null]
+>> endobj
+4475 0 obj <<
+/D [4464 0 R /XYZ 139.477 619.1781 null]
+>> endobj
+4476 0 obj <<
+/D [4464 0 R /XYZ 139.477 619.1781 null]
+>> endobj
+4477 0 obj <<
+/D [4464 0 R /XYZ 71.731 617.0212 null]
+>> endobj
+4478 0 obj <<
+/D [4464 0 R /XYZ 139.477 601.2453 null]
+>> endobj
+4479 0 obj <<
+/D [4464 0 R /XYZ 139.477 601.2453 null]
+>> endobj
+4480 0 obj <<
+/D [4464 0 R /XYZ 71.731 599.0885 null]
+>> endobj
+4481 0 obj <<
+/D [4464 0 R /XYZ 139.477 583.3126 null]
+>> endobj
+4482 0 obj <<
+/D [4464 0 R /XYZ 139.477 583.3126 null]
+>> endobj
+4483 0 obj <<
+/D [4464 0 R /XYZ 71.731 581.1557 null]
+>> endobj
+4484 0 obj <<
+/D [4464 0 R /XYZ 139.477 565.3798 null]
+>> endobj
+4485 0 obj <<
+/D [4464 0 R /XYZ 139.477 565.3798 null]
+>> endobj
+803 0 obj <<
+/D [4464 0 R /XYZ 71.731 542.4657 null]
+>> endobj
+330 0 obj <<
+/D [4464 0 R /XYZ 281.8432 497.2114 null]
+>> endobj
+4486 0 obj <<
+/D [4464 0 R /XYZ 71.731 477.0711 null]
+>> endobj
+4487 0 obj <<
+/D [4464 0 R /XYZ 161.0655 464.3347 null]
+>> endobj
+4488 0 obj <<
+/D [4464 0 R /XYZ 71.731 452.2152 null]
+>> endobj
+4489 0 obj <<
+/D [4464 0 R /XYZ 71.731 421.1856 null]
+>> endobj
+4490 0 obj <<
+/D [4464 0 R /XYZ 168.8063 409.8391 null]
+>> endobj
+4491 0 obj <<
+/D [4464 0 R /XYZ 71.731 397.7196 null]
+>> endobj
+4492 0 obj <<
+/D [4464 0 R /XYZ 71.731 368.2053 null]
+>> endobj
+4493 0 obj <<
+/D [4464 0 R /XYZ 181.5683 355.3434 null]
+>> endobj
+4494 0 obj <<
+/D [4464 0 R /XYZ 71.731 345.2813 null]
+>> endobj
+4495 0 obj <<
+/D [4464 0 R /XYZ 71.731 311.8581 null]
+>> endobj
+4496 0 obj <<
+/D [4464 0 R /XYZ 71.731 300.7483 null]
+>> endobj
+4497 0 obj <<
+/D [4464 0 R /XYZ 71.731 299.5029 null]
+>> endobj
+4498 0 obj <<
+/D [4464 0 R /XYZ 129.5143 280.4244 null]
+>> endobj
+4499 0 obj <<
+/D [4464 0 R /XYZ 129.5143 280.4244 null]
+>> endobj
+4500 0 obj <<
+/D [4464 0 R /XYZ 71.731 278.9848 null]
+>> endobj
+4501 0 obj <<
+/D [4464 0 R /XYZ 71.731 278.9848 null]
+>> endobj
+4502 0 obj <<
+/D [4464 0 R /XYZ 139.477 262.4916 null]
+>> endobj
+4503 0 obj <<
+/D [4464 0 R /XYZ 139.477 262.4916 null]
+>> endobj
+4504 0 obj <<
+/D [4464 0 R /XYZ 71.731 224.6336 null]
+>> endobj
+4505 0 obj <<
+/D [4464 0 R /XYZ 71.731 211.5826 null]
+>> endobj
+4506 0 obj <<
+/D [4464 0 R /XYZ 71.731 210.3373 null]
+>> endobj
+4507 0 obj <<
+/D [4464 0 R /XYZ 129.5143 191.2588 null]
+>> endobj
+804 0 obj <<
+/D [4464 0 R /XYZ 71.731 184.1206 null]
+>> endobj
+4463 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+4510 0 obj <<
+/Length 920       
+/Filter /FlateDecode
+>>
+stream
+xÚ½W]oã(\14}ï¯ðc"Õ,`c`Þº_Õ¬vGÕ(oÓÕÈ\8dic­cG6Þªÿ~/\ 6;8&i4Ú\19å\ 1\88\9e{8\\80D\18~$â\ 4ñ\ 4\1a*\11Í\18\8d¶û\e\1c½À§û\eâLbg\13ûF?on~ú=Á\91D2£Y´y\8e\12\99!ÆÓ\88'\14   FD´)¾¬~Ùå\a­ÚuL\19^QdÛ\87\95þ3\7f²Ã»\87\8f¶ó\97Ò»¦èÖ\7foþ¸ùm3Åg        GR@\90\8b '«%LJ"Â\11%,58Ç\8c1C<å|\80I\11Ï\f8.V÷J\7fRúuMñªiÿÙ¬3¼z;¨\ 1\14x\92^Â)G\82b\1eÅ&a\9eYO\ f\e\r3>L3\ 4ÌÈ\86ÐnnL   Ê\88\90Ã\841\1e\84\8b70ò\88\19Î{½\83\96\ 4\10Ä£C\1fÁ¯ªÛ¶åA\97M}-\86ÏJ÷míb涩ÊNÛ^óì>T\95íü»¦\fFea\87õ\11¾ýäߡkñÞUUc\1c¾*çïsS©î]è\16y^ìËúÖÎ;\94®Ów ¸\14¯ÜP«íÎuë¦P×âzX\13ȲÍ÷
+\ 4lñøª$D"Æ\b\8fRa\10\82\ e\9c¬bß̪RF X\8e\89A°ôf <RÊ\16q)EIJh0îi{Ä1ÎZâH\84G1\81½ÃH\9aÌq\18     \ 6h£)Â&\821ù`      îtÛoõíÉÆ6óU­ËmnTé[ö­Z&8B\80\9d\8a)\97abG«Ø7;\12\1e\9f%4\9a\9d%\16\16\1fÓT\ 6ã\9e'v\9cµÄ1'6\91ÈT\9b\19\8c;àÅ\16½\0»,CY
+õô\94ß²~\19ù\rк·î¬ð\9bi?\18ÿP\19M\85¦ F\86\91À\92ù\9bÿ¼À\13)\11\aãËúö¬.È{´zWÝ\81 W\88;\0âHè$\ 5\1fDÞ¶ùÛ¼ÎÍ8þ\14*nnµfÇJÌ8â"I\ 6ri²ñ`áÞÁ\ 2åç¾\1d\8e\96þð}\8f\94\10ev\90øu\10ÊÛ\8b1ùú\881­ô¬f¶\83(\86/ª*º\1fzþ8%\87W\ 6j\86³Û6µÎË\1a\96Ê\8e\v\ 5ÃjtòÔôÚËuè\rÙvî\12òñù"\15÷Òyë\ ej[\ e\\14#Æbn1\am6\e6\9b\ 3e,K\86\14\9bç \1aç¥0Ûx\bÐ:\87\8d\83PÃùÓÝÎÿË}6æ\f\ 5Ýç\1a\14ýdd×룳ºz\v\13ä
+I®·»\89\(4£\90\1cA\81\1c_Ëñ\86ð¤|\19©â\84ó\13u\9d%{\ 1u\82±X\91Ùê_\ 2ò}o%â\9b¯%·£\90 \92\83\1cßöMßýßW\15\82á\10bR¼SÊ}³\vµ|2{·\98\87â^QÍ\178ÂW\95\19\8e\1fzUqO\89T A2yñíäÙ,\9fN\8c
+\80'åäÉÀäÉÙ\87P à\7f¾ [Iendstream
+endobj
+4509 0 obj <<
+/Type /Page
+/Contents 4510 0 R
+/Resources 4508 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 4275 0 R
+>> endobj
+4511 0 obj <<
+/D [4509 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+334 0 obj <<
+/D [4509 0 R /XYZ 259.7903 705.7477 null]
+>> endobj
+4512 0 obj <<
+/D [4509 0 R /XYZ 71.731 682.2589 null]
+>> endobj
+4513 0 obj <<
+/D [4509 0 R /XYZ 161.0655 672.871 null]
+>> endobj
+4514 0 obj <<
+/D [4509 0 R /XYZ 71.731 660.7515 null]
+>> endobj
+4515 0 obj <<
+/D [4509 0 R /XYZ 71.731 574.89 null]
+>> endobj
+4516 0 obj <<
+/D [4509 0 R /XYZ 181.5683 563.8797 null]
+>> endobj
+4517 0 obj <<
+/D [4509 0 R /XYZ 71.731 553.8175 null]
+>> endobj
+4518 0 obj <<
+/D [4509 0 R /XYZ 71.731 520.3944 null]
+>> endobj
+4519 0 obj <<
+/D [4509 0 R /XYZ 71.731 509.2845 null]
+>> endobj
+4520 0 obj <<
+/D [4509 0 R /XYZ 71.731 508.0392 null]
+>> endobj
+4521 0 obj <<
+/D [4509 0 R /XYZ 129.5143 488.9607 null]
+>> endobj
+4522 0 obj <<
+/D [4509 0 R /XYZ 129.5143 488.9607 null]
+>> endobj
+4523 0 obj <<
+/D [4509 0 R /XYZ 71.731 487.5211 null]
+>> endobj
+4524 0 obj <<
+/D [4509 0 R /XYZ 71.731 487.5211 null]
+>> endobj
+4525 0 obj <<
+/D [4509 0 R /XYZ 139.477 471.0279 null]
+>> endobj
+4526 0 obj <<
+/D [4509 0 R /XYZ 139.477 471.0279 null]
+>> endobj
+4527 0 obj <<
+/D [4509 0 R /XYZ 71.731 433.1699 null]
+>> endobj
+4528 0 obj <<
+/D [4509 0 R /XYZ 71.731 420.1189 null]
+>> endobj
+4529 0 obj <<
+/D [4509 0 R /XYZ 71.731 418.8736 null]
+>> endobj
+4530 0 obj <<
+/D [4509 0 R /XYZ 129.5143 399.795 null]
+>> endobj
+805 0 obj <<
+/D [4509 0 R /XYZ 71.731 392.6569 null]
+>> endobj
+338 0 obj <<
+/D [4509 0 R /XYZ 247.4128 349.5594 null]
+>> endobj
+4531 0 obj <<
+/D [4509 0 R /XYZ 71.731 326.0706 null]
+>> endobj
+4532 0 obj <<
+/D [4509 0 R /XYZ 161.0655 316.6827 null]
+>> endobj
+4533 0 obj <<
+/D [4509 0 R /XYZ 71.731 304.5632 null]
+>> endobj
+4534 0 obj <<
+/D [4509 0 R /XYZ 71.731 273.1973 null]
+>> endobj
+4535 0 obj <<
+/D [4509 0 R /XYZ 168.8063 262.1871 null]
+>> endobj
+4536 0 obj <<
+/D [4509 0 R /XYZ 71.731 250.0676 null]
+>> endobj
+4537 0 obj <<
+/D [4509 0 R /XYZ 71.731 195.3891 null]
+>> endobj
+4538 0 obj <<
+/D [4509 0 R /XYZ 181.5683 184.3788 null]
+>> endobj
+4539 0 obj <<
+/D [4509 0 R /XYZ 71.731 174.3167 null]
+>> endobj
+4540 0 obj <<
+/D [4509 0 R /XYZ 71.731 140.8935 null]
+>> endobj
+4541 0 obj <<
+/D [4509 0 R /XYZ 71.731 129.7837 null]
+>> endobj
+4542 0 obj <<
+/D [4509 0 R /XYZ 71.731 128.5383 null]
+>> endobj
+4543 0 obj <<
+/D [4509 0 R /XYZ 129.5143 109.4598 null]
+>> endobj
+4544 0 obj <<
+/D [4509 0 R /XYZ 129.5143 109.4598 null]
+>> endobj
+4545 0 obj <<
+/D [4509 0 R /XYZ 71.731 108.0202 null]
+>> endobj
+4546 0 obj <<
+/D [4509 0 R /XYZ 71.731 108.0202 null]
+>> endobj
+4508 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+4549 0 obj <<
+/Length 1345      
+/Filter /FlateDecode
+>>
+stream
+xÚµYË\8eÛ6\14ÝÏWh9\ 3Ô,Iñ\99]\12´E\8b´\b\ 2ï\9a"plyÆÀ\8c=°åEÿ¾Ô\83ò¥uùð\ 4E\16v<G¼\87Gç\\91\14«¨ûÇ*Í\88®Ý\a·\84+É«õË\1d­\1eÝ\9f~»c#d1b\16\10ôay÷ó¯5­,±\8a«j¹­j«\88Ô¢Ò5'F2S-7\7fß\7f|Z½¶ÍñaÁ%½çdøüü¼Ú7í§Õ÷á¿ï?ÿ>|ù³i\9f\ e\9bÓÃ?Ë?î~YNõe­\895®H\92¤ \86\beêjÁ)±\9cI\14ÅÜ\10\92     \87Ò\ e_\8bZO\93á¶Ò\84u\13u\93\99p\13¬\9bÍWÎå5;æ¦K¹°\15\1cÐ×½þ¼ððWÍyÔ¦2NT%z\1eµ%Bë\90Æûsû4hÕ\91é\99_n\83TD        w\eh\ f}7({j\8f»ýãO£ÞîòfßîÖ«vwØ\ f¿½\fÃõßÛÃðy>5³É2'\8bdºR\9a;^\ 6¿\15\13j\ 1a\17\91­¦\83ȳѢ"sî¦Ï8Z7.²¿jÎ#\14Ùßì\80Çþ°i\1e\8f\87óë·íî¹óð\kc\88±T\85\8eÇÕ¿Ã×ÃvøÜíÛñ\87\1f³ßÎëv>sÏM
+"\85\14\19[CXÂÖ\13,kk¬n\81­1\1e\17á¼­\ 3\1a7\b7#;\ eW;ó3®q\8d\ 2¢\10\89®Ç\8a*$\98kKZ¡Uã
+ù«P\1a@!áh¸\96\1aòpz\8c!þ˹søÖ{t\94kÓåú+¥|°+ª\113Dik3\1a\ 1TB#\8fÊk\84T-Ñ\b¡\81i\ 4y\ 4½\ e\95i¿zi¢9\93Æ=¾\98Èå\fÂ\129\9b\9cau\vr\86ñ\98ç, 14\1aÿ0h\9d\1f¸k÷í¨Tç\1fßð0\aI%\881,\932\88\8a;hBe\1d\84U-pÐ\8cFØù½\83\ 2\1e\97οÃ\9e°J\13A5\v»þ¬SEºÙlz\9e\80
+\13\89¥G- \fQu6ZTVé\ 4\92\94£uã²ú«P\1eÀvÒñ ¼\ eyüHó\9a\82E\99â9\99\0,%\93\87åeBê\96È\84ðÀd\82<pãühÛ\17¶&LÒLh!*\1eÚ \95\r-Vµ ´3\1axh\ 3\1e¾©_iÌ\85S\16[\f\1aYjLŵ$\9cé\`!,áÄ        \96u"V·À\89\18\ fÄ\89\ 1\8f7>I§9IM¸\91¹¬BXJ!\ fË+\84Ô-Q\bá\81)\ 4yDms³h>Z\9c\11Ál.¦\0\95\88©Gåc\8aT-\89é5\8dHL!\8fMsZ\1fw¯ýÎ\13y´2¢\94ÑÿK^iM\84QÙ¼\ 2\8d\1e\96w#R·Ä\8d\b\ fÌ\8d\90GÞzWê£BÕFº]¹ÈÅ\16Â\12BM°¬PXÝ\ 2¡0\1e\88P\ 1\8f7Å6¥\9d?ȨYM\fw\12¤\8fE ,q,2Á²Ç"XÝ\82c\91\19\ füX$àqlÚóqÿm»k\9e\87£º+Å»#\14njìLDÉûQàO»S\eê߯^º\11\83#¨¡Xt¯Æ­ì\ e`r{5\bKìÕ&Xv¯\86Õ-Ø«a<æ{µ\80Æ¥©¹\81\1c\96ËnïI\89¡Vö\80/½B§wQKr·\ 2RRË\8c%!,aÉ \96µ$V·À\92\18\ f Ñt¯ \ f<ΩÃ4N\15Ñ\\98\9cq\0,e\1c\ fË\e\a©[b\9ck\1eè\19q@£Ûúí+\96Pá:!·üÖ\84v#\9eü~d\8céÓîtù#ì\98\91å\r3\86hËÓ«\e\0\8a/n<(»¶AJ\16,m\10\ eȹ\13$\81mî½A\98ä.º*÷J\ 2Â\12v\9b`Y»au\vì6ã\81Ú- Qtd2;1yó¦v\92¢\16ÄÚ:\97c\bK      ëaya\91º%Â^óÀ\85\854\12ÛZjmâ-Ïí'\9f\8ciB\15ËiyA¥¤\1cQy%çEK\84¼"\81ë\b\ fûm÷\1e\13߸jqÃv\ e}<\1fÁ»´þüÔ·ÊÓk³î]¼\ eW67·Nk       ë\18&['\0Å[§\ae['R² u"\1c\90Ö   I ­s|å,\f1,²góo¥\ 1fþRZrC(sAñ¨®\9e\16ÑWÌHÁÿ\0.ïÉ\95endstream
+endobj
+4548 0 obj <<
+/Type /Page
+/Contents 4549 0 R
+/Resources 4547 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 4620 0 R
+>> endobj
+4550 0 obj <<
+/D [4548 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+4551 0 obj <<
+/D [4548 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+4552 0 obj <<
+/D [4548 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+4553 0 obj <<
+/D [4548 0 R /XYZ 76.7123 690.4109 null]
+>> endobj
+4554 0 obj <<
+/D [4548 0 R /XYZ 129.5143 672.4782 null]
+>> endobj
+4555 0 obj <<
+/D [4548 0 R /XYZ 129.5143 672.4782 null]
+>> endobj
+4556 0 obj <<
+/D [4548 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+4557 0 obj <<
+/D [4548 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+4558 0 obj <<
+/D [4548 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+4559 0 obj <<
+/D [4548 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+4560 0 obj <<
+/D [4548 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+4561 0 obj <<
+/D [4548 0 R /XYZ 149.4396 636.6127 null]
+>> endobj
+4562 0 obj <<
+/D [4548 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+4563 0 obj <<
+/D [4548 0 R /XYZ 149.4396 618.6799 null]
+>> endobj
+4564 0 obj <<
+/D [4548 0 R /XYZ 76.7123 600.7472 null]
+>> endobj
+4565 0 obj <<
+/D [4548 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+4566 0 obj <<
+/D [4548 0 R /XYZ 71.731 581.3749 null]
+>> endobj
+4567 0 obj <<
+/D [4548 0 R /XYZ 71.731 581.3749 null]
+>> endobj
+4568 0 obj <<
+/D [4548 0 R /XYZ 149.4396 564.8817 null]
+>> endobj
+4569 0 obj <<
+/D [4548 0 R /XYZ 149.4396 564.8817 null]
+>> endobj
+4570 0 obj <<
+/D [4548 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+4571 0 obj <<
+/D [4548 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+4572 0 obj <<
+/D [4548 0 R /XYZ 159.4023 546.9489 null]
+>> endobj
+4573 0 obj <<
+/D [4548 0 R /XYZ 71.731 544.7921 null]
+>> endobj
+4574 0 obj <<
+/D [4548 0 R /XYZ 159.4023 529.0162 null]
+>> endobj
+4575 0 obj <<
+/D [4548 0 R /XYZ 76.7123 511.0834 null]
+>> endobj
+4576 0 obj <<
+/D [4548 0 R /XYZ 149.4396 493.1507 null]
+>> endobj
+4577 0 obj <<
+/D [4548 0 R /XYZ 149.4396 493.1507 null]
+>> endobj
+4578 0 obj <<
+/D [4548 0 R /XYZ 71.731 490.9938 null]
+>> endobj
+4579 0 obj <<
+/D [4548 0 R /XYZ 71.731 490.9938 null]
+>> endobj
+4580 0 obj <<
+/D [4548 0 R /XYZ 159.4023 475.2179 null]
+>> endobj
+4581 0 obj <<
+/D [4548 0 R /XYZ 71.731 473.0611 null]
+>> endobj
+4582 0 obj <<
+/D [4548 0 R /XYZ 159.4023 457.2852 null]
+>> endobj
+4583 0 obj <<
+/D [4548 0 R /XYZ 76.7123 439.3524 null]
+>> endobj
+4584 0 obj <<
+/D [4548 0 R /XYZ 149.4396 421.4197 null]
+>> endobj
+4585 0 obj <<
+/D [4548 0 R /XYZ 149.4396 421.4197 null]
+>> endobj
+4586 0 obj <<
+/D [4548 0 R /XYZ 71.731 419.2628 null]
+>> endobj
+4587 0 obj <<
+/D [4548 0 R /XYZ 71.731 419.2628 null]
+>> endobj
+4588 0 obj <<
+/D [4548 0 R /XYZ 159.4023 403.4869 null]
+>> endobj
+4589 0 obj <<
+/D [4548 0 R /XYZ 71.731 401.3301 null]
+>> endobj
+4590 0 obj <<
+/D [4548 0 R /XYZ 159.4023 385.5542 null]
+>> endobj
+4591 0 obj <<
+/D [4548 0 R /XYZ 76.7123 331.7559 null]
+>> endobj
+4592 0 obj <<
+/D [4548 0 R /XYZ 129.5143 313.8231 null]
+>> endobj
+4593 0 obj <<
+/D [4548 0 R /XYZ 129.5143 313.8231 null]
+>> endobj
+4594 0 obj <<
+/D [4548 0 R /XYZ 71.731 311.6663 null]
+>> endobj
+4595 0 obj <<
+/D [4548 0 R /XYZ 71.731 311.6663 null]
+>> endobj
+4596 0 obj <<
+/D [4548 0 R /XYZ 139.477 295.8904 null]
+>> endobj
+4597 0 obj <<
+/D [4548 0 R /XYZ 71.731 258.0324 null]
+>> endobj
+4598 0 obj <<
+/D [4548 0 R /XYZ 71.731 244.9814 null]
+>> endobj
+4599 0 obj <<
+/D [4548 0 R /XYZ 71.731 243.7361 null]
+>> endobj
+4600 0 obj <<
+/D [4548 0 R /XYZ 129.5143 224.6575 null]
+>> endobj
+4601 0 obj <<
+/D [4548 0 R /XYZ 71.731 222.5007 null]
+>> endobj
+4602 0 obj <<
+/D [4548 0 R /XYZ 71.731 222.5007 null]
+>> endobj
+4603 0 obj <<
+/D [4548 0 R /XYZ 139.477 206.7248 null]
+>> endobj
+4604 0 obj <<
+/D [4548 0 R /XYZ 139.477 206.7248 null]
+>> endobj
+4605 0 obj <<
+/D [4548 0 R /XYZ 71.731 204.5679 null]
+>> endobj
+4606 0 obj <<
+/D [4548 0 R /XYZ 71.731 204.5679 null]
+>> endobj
+4607 0 obj <<
+/D [4548 0 R /XYZ 149.4396 188.792 null]
+>> endobj
+4608 0 obj <<
+/D [4548 0 R /XYZ 76.7123 170.8593 null]
+>> endobj
+4609 0 obj <<
+/D [4548 0 R /XYZ 139.477 152.9265 null]
+>> endobj
+4610 0 obj <<
+/D [4548 0 R /XYZ 139.477 152.9265 null]
+>> endobj
+4611 0 obj <<
+/D [4548 0 R /XYZ 71.731 150.7697 null]
+>> endobj
+4612 0 obj <<
+/D [4548 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+4613 0 obj <<
+/D [4548 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+4614 0 obj <<
+/D [4548 0 R /XYZ 71.731 132.8369 null]
+>> endobj
+4615 0 obj <<
+/D [4548 0 R /XYZ 139.477 117.061 null]
+>> endobj
+4616 0 obj <<
+/D [4548 0 R /XYZ 139.477 117.061 null]
+>> endobj
+4617 0 obj <<
+/D [4548 0 R /XYZ 71.731 114.9042 null]
+>> endobj
+4618 0 obj <<
+/D [4548 0 R /XYZ 71.731 114.9042 null]
+>> endobj
+4619 0 obj <<
+/D [4548 0 R /XYZ 149.4396 99.1283 null]
+>> endobj
+4547 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+4623 0 obj <<
+/Length 1363      
+/Filter /FlateDecode
+>>
+stream
+xÚµX]\8f£6\14}\9f_ÁcF\1a\18\fû6ýZMÕ®F»óÖ©V$\90    j\ 2\118\1aÍ¿ï5¶Á\80ù¨Ô*\ f\90äØ÷Üãs}1ÄÃð!\1e'\88\ap¡    ¢QH½Ãå\ e{oð×ç;¢!¾Æø6èÇ\97»\1f~\r°\97 $¢\91÷rô\82$B!g\1e\ f(\8aC\12{/Ù\9f»\9fNéUäõ½OC¼£H]\9fÏi\99\8bßÓ½úúøü¤nþÈÅ©Ê\9aû¿^~»ûå¥\8b\1f\ 6\1c%1\ 4Y$Ép\8cX\14\a\9e\1fÄ\10\9f\ 5N\14\81)B\ 2\7fúQ\82\11#8é\92¡\89Ç\11\91\89B2\1d®\83Él^)\rÇì\b¤\8b)K<{B\13w|íy\98QS\1eAìÅ jÄZ\1eA\82\18çC\1a\1cêâ*\8aª\94lZêý:D\ 4EQÌ!\8eÄ~RÒ6¢.Ê·\aõåK\95åêî­®nWu;\9d\14\88\92°%Ò*Ç\bãÀ8FD
+-§§\88ÇrUy¼û\9c\v\97\¼ßS¼«ê¿\e\a;ÆQL1Ì"]Â#å\92çº\12\95ø¸æ\9fº\11½\ 4z¬O!/\12+\ 5ìXDÇj³xÅ!Noâ¤3-\ 1Tö ï¯\18Ó³ô#Ã;\r©sq«Ëö\9fü\9c50\ 1qÐö\r\vE\9b·,~î%ÛJük\eM\92\rÈ.-õµ®Ó\ fu[\1dÕ\15Öëv\10\1aw¨Jq\ f°¢\845T?e¹H\8b³\99g_Ý\84º-ÕÒÊ»>mõCQBâGùSzÈ\9b\ 6©_\9f\8eý@kHÓK¥\ 6ëP\rð¸æ\87¢\95+\93I\83Ï|\ 2\19\86\91rDZfJØB/I\9b¥¼ê,á¶ÍR/\8f¾\e°\95£\81\8ePaêF/U¥÷\91´ó4h´yÆT@\rì¥5o"ï¦,Ï\1fë\\ 6ʹ\92¾¤âpR\8b\ 3xqÊ\8d\e;\ráÛ{q>«»}n{/Ïô¾øttZr(gÓË?É¡\vl\81Lu\e¿¬\10ÙhýÇ󹺧áîÝ\ 4øZ\9dófk\15¤Ù¥(5ûk¡onÍ .E~°«øÁ\98 ¶'\12î>.Õ­ÙJöY\8eHëô\92ÃZ(\92\83\1d\9cÀ^\1f\12î\ 51Ed®q\18\90o¡ú¾\91p¬úÆx®Ù¶A)
+\18¡® ó]Ã\f\9a\90\186\rÓ¼l\12rWt\bF\19ÂdÒ+ ®\1eFÍY\8e\97%yHÛ\16a!ou>ÍÎ0\88\18´\10LW\9a±\r[hÆ\1d\19»ânhÆ\13\1eÎf< ñ\bº¨\a\17\87ºa\84"\ 6ÏDó½øÑ!ëEM§Ê êªcÞ·4\ 6[@k^1®\ 5[r®\81­[×\11w\8bwÇ<fÌkó0íI6ñcÑî©Sµ\93\ 4vdX\96\81Ú\8e\ 3ûù°¡èN2kb"\1f¾H²fb\v¶db\ 3[7±#î\16\13;xô"u&¶i¸E\9a<.\ e\1aá´OÏ
+H\13
+1\93µ]À\86-\bØÁV\ 5tÅÝ  \8bÇTÀ\ 1\8dá\9ei?i\8c\9e\ 4&Tõd\9c¡\90A\ 58\15Ò ßF9\ 4\1aÏ5«\ f#p â\913ê¼>fÔ\94Æ°\80\19Ð\80Ãà\90\87\85k«äòT\11\8d\8e-\93J\9d©æI\82\86\82Ü\80I0³3\1a\94\1cºNf\9b\156\ 4\89ä\ eä\8a;/¬\19åäa\19/\ 4\1e\98\ 6C\1eÿE\9dv     ÂÑ9\8aq²&\97\ 5[\92ËÀÖårÄÝ"\97\83\87K.\9bÇÿ´Ó\99ÒÃðØ)OÌËel¡\16ÊØ ÖËØ\11uK\19\8f\94±ÍC\97°ë`\ fí\84\85\81ëQgµ\845lÎ\96$f(\8eéZ\15Û°\ 5[v°U[ºân°¥\8b\87Ã\96\ 3\1e\83gÂo·=è¬Õʲ\1aNëóÚD\11JX²V²6lI\e\ 3[×Æ\11w\8b6\ e\1e.ml\1e³\86ù\17\9a"\ 1A8f+õi£æë³C­Ö§+ê\86ú\9cÐp×ç\80GÑ|¿ÖÅ%­?\§\11\8ep0ªÐ}\ 5\a\8af¡D\r\87$@D\1e\1fV|hÁ\96|h`ë>tÄÝâC\a\ f\97\ fm\1eZ\ 2íº§fôÎÅè>×?\8eF]q2ïrÚwN£ÌôËv\16æ\e%\8bïã-Ìôu|\bÇ'L \84\fJ¦ÀÃÙ\97ë\8e\80ÿ\0q\83\8d·endstream
+endobj
+4622 0 obj <<
+/Type /Page
+/Contents 4623 0 R
+/Resources 4621 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 4620 0 R
+>> endobj
+4624 0 obj <<
+/D [4622 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+4625 0 obj <<
+/D [4622 0 R /XYZ 76.7123 708.3437 null]
+>> endobj
+4626 0 obj <<
+/D [4622 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+4627 0 obj <<
+/D [4622 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+806 0 obj <<
+/D [4622 0 R /XYZ 71.731 667.4969 null]
+>> endobj
+342 0 obj <<
+/D [4622 0 R /XYZ 263.6811 622.2426 null]
+>> endobj
+4628 0 obj <<
+/D [4622 0 R /XYZ 71.731 602.1022 null]
+>> endobj
+4629 0 obj <<
+/D [4622 0 R /XYZ 161.0655 589.3659 null]
+>> endobj
+4630 0 obj <<
+/D [4622 0 R /XYZ 71.731 577.2464 null]
+>> endobj
+4631 0 obj <<
+/D [4622 0 R /XYZ 71.731 546.2167 null]
+>> endobj
+4632 0 obj <<
+/D [4622 0 R /XYZ 168.8063 534.8702 null]
+>> endobj
+4633 0 obj <<
+/D [4622 0 R /XYZ 71.731 522.7507 null]
+>> endobj
+4634 0 obj <<
+/D [4622 0 R /XYZ 71.731 468.0723 null]
+>> endobj
+4635 0 obj <<
+/D [4622 0 R /XYZ 181.5683 457.062 null]
+>> endobj
+4636 0 obj <<
+/D [4622 0 R /XYZ 71.731 446.9998 null]
+>> endobj
+4637 0 obj <<
+/D [4622 0 R /XYZ 71.731 413.5767 null]
+>> endobj
+4638 0 obj <<
+/D [4622 0 R /XYZ 71.731 402.4668 null]
+>> endobj
+4639 0 obj <<
+/D [4622 0 R /XYZ 71.731 401.2215 null]
+>> endobj
+4640 0 obj <<
+/D [4622 0 R /XYZ 129.5143 382.143 null]
+>> endobj
+4641 0 obj <<
+/D [4622 0 R /XYZ 129.5143 382.143 null]
+>> endobj
+4642 0 obj <<
+/D [4622 0 R /XYZ 71.731 380.7034 null]
+>> endobj
+4643 0 obj <<
+/D [4622 0 R /XYZ 71.731 380.7034 null]
+>> endobj
+4644 0 obj <<
+/D [4622 0 R /XYZ 139.477 364.2102 null]
+>> endobj
+4645 0 obj <<
+/D [4622 0 R /XYZ 139.477 364.2102 null]
+>> endobj
+4646 0 obj <<
+/D [4622 0 R /XYZ 76.7123 346.2774 null]
+>> endobj
+4647 0 obj <<
+/D [4622 0 R /XYZ 129.5143 328.3447 null]
+>> endobj
+4648 0 obj <<
+/D [4622 0 R /XYZ 129.5143 328.3447 null]
+>> endobj
+4649 0 obj <<
+/D [4622 0 R /XYZ 71.731 326.1879 null]
+>> endobj
+4650 0 obj <<
+/D [4622 0 R /XYZ 71.731 326.1879 null]
+>> endobj
+4651 0 obj <<
+/D [4622 0 R /XYZ 139.477 310.4119 null]
+>> endobj
+4652 0 obj <<
+/D [4622 0 R /XYZ 71.731 308.2551 null]
+>> endobj
+4653 0 obj <<
+/D [4622 0 R /XYZ 139.477 292.4792 null]
+>> endobj
+4654 0 obj <<
+/D [4622 0 R /XYZ 71.731 291.0396 null]
+>> endobj
+4655 0 obj <<
+/D [4622 0 R /XYZ 71.731 291.0396 null]
+>> endobj
+4656 0 obj <<
+/D [4622 0 R /XYZ 149.4396 274.5464 null]
+>> endobj
+4657 0 obj <<
+/D [4622 0 R /XYZ 149.4396 274.5464 null]
+>> endobj
+4658 0 obj <<
+/D [4622 0 R /XYZ 71.731 272.3896 null]
+>> endobj
+4659 0 obj <<
+/D [4622 0 R /XYZ 71.731 272.3896 null]
+>> endobj
+4660 0 obj <<
+/D [4622 0 R /XYZ 159.4023 256.6137 null]
+>> endobj
+4661 0 obj <<
+/D [4622 0 R /XYZ 71.731 255.1741 null]
+>> endobj
+4662 0 obj <<
+/D [4622 0 R /XYZ 159.4023 238.6809 null]
+>> endobj
+4663 0 obj <<
+/D [4622 0 R /XYZ 76.7123 220.7482 null]
+>> endobj
+4664 0 obj <<
+/D [4622 0 R /XYZ 149.4396 202.8154 null]
+>> endobj
+4665 0 obj <<
+/D [4622 0 R /XYZ 149.4396 202.8154 null]
+>> endobj
+4666 0 obj <<
+/D [4622 0 R /XYZ 71.731 200.6586 null]
+>> endobj
+4667 0 obj <<
+/D [4622 0 R /XYZ 71.731 200.6586 null]
+>> endobj
+4668 0 obj <<
+/D [4622 0 R /XYZ 159.4023 184.8827 null]
+>> endobj
+4669 0 obj <<
+/D [4622 0 R /XYZ 71.731 182.7258 null]
+>> endobj
+4670 0 obj <<
+/D [4622 0 R /XYZ 159.4023 166.9499 null]
+>> endobj
+4671 0 obj <<
+/D [4622 0 R /XYZ 76.7123 149.0172 null]
+>> endobj
+4672 0 obj <<
+/D [4622 0 R /XYZ 149.4396 131.0844 null]
+>> endobj
+4673 0 obj <<
+/D [4622 0 R /XYZ 149.4396 131.0844 null]
+>> endobj
+4674 0 obj <<
+/D [4622 0 R /XYZ 71.731 128.9276 null]
+>> endobj
+4675 0 obj <<
+/D [4622 0 R /XYZ 71.731 128.9276 null]
+>> endobj
+4676 0 obj <<
+/D [4622 0 R /XYZ 159.4023 113.1517 null]
+>> endobj
+4677 0 obj <<
+/D [4622 0 R /XYZ 71.731 110.9948 null]
+>> endobj
+4621 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+4680 0 obj <<
+/Length 1361      
+/Filter /FlateDecode
+>>
+stream
+xÚ½\9a]oÛ6\18\85ïó+tW\eX8~\8aÔîÒî«Ã\9a\ 5hîÖaP,%\16\1aK\81¥-Ø¿/]\91
+i¿ÒË\ e\vÙõQÞ£GçH¦m\96\8fe\9a\11\86\17\84ç\8ag\9bÝ\ 5Í\1eìK¿\0'¹t\9aËPôúöâû\9f\ 5Í
+Rä<Ïnï3QäDi\99\89QÌd·Õ\9f«7Ûòi¨÷ëK®è\8a\93q{óX¶õð{y7>½ºy;>xW\ fÛ®ê×\7fÝþvñÓí4_     M
+c\87,\9a\14Æ\10%EvÉ))8S \88É\82HkÔ\1e\v5DH¡§cáE¦      ;\1c§=\96I7É\ e\aó\81sul\8e)F
+Ey\16þA?÷xûâÃï\ 5úxaÊ\94õA¹\88}\94û}ùß\88¬»\1f·w]÷X\97íwã³·ý¸\1d¶õøàißìʽۧií\19¹_3º*7îõûnï÷hܾmWÕ'\a\1d­³\s»5ð\89ð¢ËP\ 5 >þ[³\84¥eet\ eN\9d'ì÷:µ!Lf,á\Fg:òQµ=;ø8:\1d\\12z\98p\90ü0bê\87}Ó>¸\93á \ 2çÇÉN\ eÍ\ f\86WI$´¡l!´\93\f\r-47!´\90\ f ´\91\8f\91\80\ fè\8d#UUûºïcVQX\7f¼~ï\bÖû\7f×L­ìÅd\96¢ÈIθÆ(\ 6²%\8a^\86S\ 4æ¦P\ 4|@\14C\1f³Ñ:\vX_QJ\89\96\1a«{ Z¨»Wáu\a¦¦ÔýØÆLÝC\1fÛ®\1fÚrW\ 3\95\97\8a(^ðs\94^\19{£d\12+}([\88ë$Cã
+ÍM\88\ 3\88kä#Êæ\aªè\1fOCÓµå£}ÌÆÿý5`\ fcÊ%1\86\ eeK\98¼\fÇ\ 4ÌMÁ\ 4ø\800\85>°V\7f!9W5\9b[{»Ê\91Ú\86ªùÚN*´¶ÐÔ\84Ú\9eØ\80k\eùØ\95\e ±Ì\10MíÛÏs4\961B\8d@\e\eÈ\96¢èex\14\81¹)Q\ 4|@Q\f}D¹{wµ\96tõ&¾¥ÌÁ\91\85 LQ¬§¡l\ 1Î$Cá@s\13à@>\08\91\ f¬§I¼\£¤Ò\84\e\85´3TÍ·sR¡í\84¦&´óÄ\ 6ÜÎÈÇÝóc³k\ 6è\9eJ\89ÝEÆ\rµ«\12´\9e\aÍlü,\v¡8ÖÍP¶\14?/Ãã\aÌM\89\1fà\ 3\8a_èÃ\1e¾\vÚë²­\9e\9b\8eO'Ð0\19Î\88d\ 5ZÌ@¶DÆËp2ÀÜ\142\80\ f\88\ 3ÎÊ\97ÀrM\12ƾßS\12ie¨\9aoå¤B[    MMhå\89\r¸\95\91\8f»}WV\9b²\87z©()hq\96\ 5®È5É9ÃÚ\19Ê\1628ÉÐ\fBs\132\bù\02\18ù\88î\ 4×õð|ø\84¥Û\7ft\1fÐLÜ\93n¦Â>È\8dÁ:\eÊ\96xy\19Î\v\98\9bÂ\vð\ 1ñ
+}`7Óÿ\8bз\8f      b¸\ 5±Üä@µÐd¯Â\9b\fLMiò±\8d\99&\87>v\9f?-\ 5j,\14\9ceÉÊ\vELA±\1a\87²\85XN24\96ÐÜ\84XB>\80XF>¢\f^\8d\19\9bÈ9æÓ¢¬&\ fÄI_­\95²;\97C³y\15c¶¯ÐUµÝ<½ú¼v\9be«µµmÓ\80°\rdKl½\fg\vÌMa\vø\80Ø\86>°Ê\7f\vÜ®Ò\rB\v\8e\\1eBÕüåaR¡\97\ahjÂåáÄ\ 6|y\88|´õ°+û\8fðÛo)\958Ëõ\81K»Z*ÐëC [Ê°\97á\19\ 6æ¦d\18ð\ 1e8ô\11\ 5öý?w\96³\v«£\r\83¡9á<GË\1dÈ\96Àx\19\ e\ 6\98\9b\ 2\ 6ð\ 1\81       }`åFY¹61M\89È\19ÒÌP5ßÌI\856\13\9a\9aÐÌ\13\ep3#\1f\87oÖþn*¸\99\8a\9a¯».f\8a\13É\rVÉP¶\90¼I\86&\ f\9a\9b\90\a\90¼ÈÇËRïúð¥åH©ï»MS\ eµ»}<7~ý÷ò\15güEè,@!\89,\14VÝP¶\ 4ÐËp\80ÀÜ\14\80\80\ f\b`ècqùü5\99ºZ\16\86ä\82"\r\ f\ 5÷"´ßÀÈ\84z\1f{\80Û\1d\9a¨Ú\9e\7f\83o\8eÝO2¤!\86åÅâ¯6\ 2Íé\8f6\14×öU{Íñª\83A\9dÏþ\ 4\ 3\18ø      ËØ|\0endstream
+endobj
+4679 0 obj <<
+/Type /Page
+/Contents 4680 0 R
+/Resources 4678 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 4620 0 R
+>> endobj
+4681 0 obj <<
+/D [4679 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+4682 0 obj <<
+/D [4679 0 R /XYZ 159.4023 708.3437 null]
+>> endobj
+4683 0 obj <<
+/D [4679 0 R /XYZ 76.7123 690.4109 null]
+>> endobj
+4684 0 obj <<
+/D [4679 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+4685 0 obj <<
+/D [4679 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+4686 0 obj <<
+/D [4679 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+4687 0 obj <<
+/D [4679 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+4688 0 obj <<
+/D [4679 0 R /XYZ 159.4023 654.5454 null]
+>> endobj
+4689 0 obj <<
+/D [4679 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+4690 0 obj <<
+/D [4679 0 R /XYZ 159.4023 636.6127 null]
+>> endobj
+4691 0 obj <<
+/D [4679 0 R /XYZ 76.7123 618.6799 null]
+>> endobj
+4692 0 obj <<
+/D [4679 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+4693 0 obj <<
+/D [4679 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+4694 0 obj <<
+/D [4679 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+4695 0 obj <<
+/D [4679 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+4696 0 obj <<
+/D [4679 0 R /XYZ 159.4023 582.8144 null]
+>> endobj
+4697 0 obj <<
+/D [4679 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+4698 0 obj <<
+/D [4679 0 R /XYZ 159.4023 564.8817 null]
+>> endobj
+4699 0 obj <<
+/D [4679 0 R /XYZ 76.7123 546.9489 null]
+>> endobj
+4700 0 obj <<
+/D [4679 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+4701 0 obj <<
+/D [4679 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+4702 0 obj <<
+/D [4679 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+4703 0 obj <<
+/D [4679 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+4704 0 obj <<
+/D [4679 0 R /XYZ 159.4023 511.0834 null]
+>> endobj
+4705 0 obj <<
+/D [4679 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+4706 0 obj <<
+/D [4679 0 R /XYZ 159.4023 493.1507 null]
+>> endobj
+4707 0 obj <<
+/D [4679 0 R /XYZ 76.7123 475.2179 null]
+>> endobj
+4708 0 obj <<
+/D [4679 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+4709 0 obj <<
+/D [4679 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+4710 0 obj <<
+/D [4679 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+4711 0 obj <<
+/D [4679 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+4712 0 obj <<
+/D [4679 0 R /XYZ 159.4023 439.3524 null]
+>> endobj
+4713 0 obj <<
+/D [4679 0 R /XYZ 71.731 437.9129 null]
+>> endobj
+4714 0 obj <<
+/D [4679 0 R /XYZ 159.4023 421.4197 null]
+>> endobj
+4715 0 obj <<
+/D [4679 0 R /XYZ 76.7123 403.4869 null]
+>> endobj
+4716 0 obj <<
+/D [4679 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+4717 0 obj <<
+/D [4679 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+4718 0 obj <<
+/D [4679 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+4719 0 obj <<
+/D [4679 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+4720 0 obj <<
+/D [4679 0 R /XYZ 159.4023 367.6214 null]
+>> endobj
+4721 0 obj <<
+/D [4679 0 R /XYZ 71.731 365.4646 null]
+>> endobj
+4722 0 obj <<
+/D [4679 0 R /XYZ 159.4023 349.6887 null]
+>> endobj
+4723 0 obj <<
+/D [4679 0 R /XYZ 76.7123 331.7559 null]
+>> endobj
+4724 0 obj <<
+/D [4679 0 R /XYZ 149.4396 313.8231 null]
+>> endobj
+4725 0 obj <<
+/D [4679 0 R /XYZ 149.4396 313.8231 null]
+>> endobj
+4726 0 obj <<
+/D [4679 0 R /XYZ 71.731 311.6663 null]
+>> endobj
+4727 0 obj <<
+/D [4679 0 R /XYZ 71.731 311.6663 null]
+>> endobj
+4728 0 obj <<
+/D [4679 0 R /XYZ 159.4023 295.8904 null]
+>> endobj
+4729 0 obj <<
+/D [4679 0 R /XYZ 71.731 293.7336 null]
+>> endobj
+4730 0 obj <<
+/D [4679 0 R /XYZ 159.4023 277.9576 null]
+>> endobj
+4731 0 obj <<
+/D [4679 0 R /XYZ 76.7123 260.0249 null]
+>> endobj
+4732 0 obj <<
+/D [4679 0 R /XYZ 149.4396 242.0921 null]
+>> endobj
+4733 0 obj <<
+/D [4679 0 R /XYZ 149.4396 242.0921 null]
+>> endobj
+4734 0 obj <<
+/D [4679 0 R /XYZ 71.731 239.9353 null]
+>> endobj
+4735 0 obj <<
+/D [4679 0 R /XYZ 71.731 239.9353 null]
+>> endobj
+4736 0 obj <<
+/D [4679 0 R /XYZ 159.4023 224.1594 null]
+>> endobj
+4737 0 obj <<
+/D [4679 0 R /XYZ 71.731 222.0026 null]
+>> endobj
+4738 0 obj <<
+/D [4679 0 R /XYZ 159.4023 206.2266 null]
+>> endobj
+4739 0 obj <<
+/D [4679 0 R /XYZ 76.7123 188.2939 null]
+>> endobj
+4740 0 obj <<
+/D [4679 0 R /XYZ 149.4396 170.3611 null]
+>> endobj
+4741 0 obj <<
+/D [4679 0 R /XYZ 149.4396 170.3611 null]
+>> endobj
+4742 0 obj <<
+/D [4679 0 R /XYZ 71.731 168.2043 null]
+>> endobj
+4743 0 obj <<
+/D [4679 0 R /XYZ 71.731 168.2043 null]
+>> endobj
+4744 0 obj <<
+/D [4679 0 R /XYZ 159.4023 152.4284 null]
+>> endobj
+4745 0 obj <<
+/D [4679 0 R /XYZ 71.731 150.9888 null]
+>> endobj
+4746 0 obj <<
+/D [4679 0 R /XYZ 159.4023 134.4956 null]
+>> endobj
+4747 0 obj <<
+/D [4679 0 R /XYZ 76.7123 116.5629 null]
+>> endobj
+4748 0 obj <<
+/D [4679 0 R /XYZ 149.4396 98.6301 null]
+>> endobj
+4749 0 obj <<
+/D [4679 0 R /XYZ 149.4396 98.6301 null]
+>> endobj
+4750 0 obj <<
+/D [4679 0 R /XYZ 71.731 96.4733 null]
+>> endobj
+4751 0 obj <<
+/D [4679 0 R /XYZ 71.731 96.4733 null]
+>> endobj
+4678 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+4754 0 obj <<
+/Length 1505      
+/Filter /FlateDecode
+>>
+stream
+xÚµ\9aÛrÛ6\10\86ïý\14¼\8b4S¡8\12@îÜô\94N\92z\1aßÕ\1d\ f\16§¶¤!éxüö\81D\82\ 2©ÅÁu=¾ \ e?±?>î\82\vZ$Ãæ\8fd\92 ÉÌ\81jDsA³åÃ\19ÎîÌW¿\9d\91^²è5\vWôÓåÙ\8f¿2\9ci¤s\9ag\97·\19Ó9\12\92g\92\ 4QÙåêïÙ\87u±kËz¾ \ 2Ï(ê\8e\17÷Ŧl?\157ÝÛó\8b\8fÝ\8bÏe»Þ®\9aù?\97\7f\9cýr9Ä\17L"­L\90 I¦\14\12\9ce\v\8a\91¦D\80"Â5âƨ\99\vV\88q&\87¹P\9dIDöó4s\19t\83l?\99+JÅÔ\1c\11\ 4i\81\ ehãN\8fG\1fö,ÐÇ\91)\11Æ\a¦lì£iëjs÷C\aíãEw,V«ºl\9aîÍö¶;6år»Y\15õs÷öç/_íçõ·9\113se¦ó±3Ï5F\9c`\1dáèÊ\ 2\1c\aY\94#\147\81\ 3à8òQÔuñ<\ 1ö\96h\991!e\96\vn2Up\98l/Z¸*\0ìt,/Wn\b)\99\83Qý\íY§6\98Ê\94á\9aóñõu}T»½\8bé%`\88\8f°\97¼wq÷`ûUÂ{Uü©Êr\94\13*c©êÈB©jeñT\ 5⦤*à\ 3JU×G0/½\\88B¹ÔÑ\12vd!.V\16ç\ 2ÄMá\ 2ø\80¸¸>^ZÂ\9e\92\14Êܳ\b\8f\94¤«ò\97ä \8a\96$\145¡$OlÀ%9òÑ>ïJ ()GøMJRä\1c)Eb%éÊ\ 2©7È¢©\aÅMH=È\a\90z#\1f£<;wo\11\aØ\87WWXà\12Ý¡^õ®Ú}ãïÌ\87Ä\ f\8eçHs\15«YW\16\ 2geqp@Ü\14p\80\ f\b\9cë#V³¯fi\v\91\10\84\15\8b\15µ£
+\14µUÅ\8b\1a\88\9aRÔS\e\9e¢v}Ü\15mùdP\9eÖ5ÇHi\96¿EesÍ\10\118VÙ®,\90 \83,\9a PÜ\84\ 4\85|\0 :ò\91Þ\ 4îêêah\ 1ïæbf®È\9c\8aÙÓ\9c\983\9eý\10¥@\94ÈX\95»²\10D+\8bC\ 4â¦@\ 4|@\10]\1f¯j®_Ê\95h$\84Y\979f\88«ÜÃÕª\16®ìÈUKÜq=\19ÍË\95R³+#\14\8cëçjÏ:õ1.z³Ý\15ÄliG>ê²}¬7×·Uyßm\95'WCRÄ©bãÒï.F.f=üOUÓ\8e\89_aL\ f#v«î¶;vÁN§Ý\ecJ\18R\1cÞ\90\ fª\85+\ 3Òød4/nF\11¦\\83qý¸íY \ fw\83Ò-õ#\eÇÅÐ\fd´T\98ù\b³ºb-\ e\82¿\ e\84\9a÷Þ\94d\84#F      \8b¤¤+\v¤ä \8b¦$\147!%!\1f\ e£áZ¹>àR\7f\¶ÞÄ¡:GL)\11I\1cW\16H\9cA\16M\1c(nBâ\9cø\18×i\9f8#\e7õ¶X-\8b¦\ 5JÔä\8fÆ\1aº9÷åù¥l\ f+ݶþ·ûà8Zp73\0\91
+q!T\f¯#\váµ²8^ n
+Þ©\ f\18¯k£j®í=\ 2à+\11f\93\15ðf»½/\8b\8d½ùØun]\ 27\9c\96õíáV³ì¿¿µ\rS»®ús7ÛUé¿\ 29F\82²Ø\ 58ªBü{U\1cÿiÐ\14ú\13\130|ÇÃÆdç>3Á¶\93sA\ 3\99ýõñÆ\9c\9e\98Å\9c"¡q\14¢#\vQ´²8F n
+Ç©\ f\18¤kã¥\ fÊ\12\1fj\fS6Ûû\Èè*ëÈB\0­,\ e\10\88\9b\ 2\ 3\ 6èÚXm\1aây¬\81µ~\ 1B\7f÷\99ò`w@\84s$)\8f®»\8e,\ 4ÜÊâÀ\81¸)À§>`à®\8dõ¶i7Å\ 3ô,\89\9b\89êPñïwð\7fîÚj»)î\ f\e÷ç¿;C\82T\89RHêX\93é¨\ 2L­*\8a\14\b\9a@tj\ 2\ 4êz0\8báCѼ~-µ\83À\0¥iX\85\8e-¤®,\84ÐÊâ\f\81¸)\10§>`\8a®\8dÿô$ä-6¢\ 3$AÍf!\8f-½®,\84ÜÊâÈ\81¸)ȧ>`ä®\8d}ûÓw\ 2×Õ
\88*Dò\\8eÉ\9bÖÊö¸ûöÉ×nUfì¶:ìIý«-a\1ciÍb«­+\v1¶²8c n
+ã©\ f\98±kã¡XB\r\82Y>0Q\81\94þ|>çxö!­K Ä´Ë9\89Q<ªB\10{U\9cáiÐ\14\84\13\130AÇÃ>Iáì4ë\82ÀRdz³h\9aí²2e¿êÞ?Uízº\15\18\ f´Ö\88ì\9fÌ\84A;ª\0\8a\82\ 6\82&\80\9e\9a\0\1eL#FÿÿFìåÿcï\7fªÂ\15RÄó\18Ðþ\9aÅÑ\9cþ\98EPiºLÂ\86\91öþ¥ôþ4\ 5\bø\1dÙ¬½óendstream
+endobj
+4753 0 obj <<
+/Type /Page
+/Contents 4754 0 R
+/Resources 4752 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 4620 0 R
+>> endobj
+4755 0 obj <<
+/D [4753 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+4756 0 obj <<
+/D [4753 0 R /XYZ 159.4023 708.3437 null]
+>> endobj
+4757 0 obj <<
+/D [4753 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+4758 0 obj <<
+/D [4753 0 R /XYZ 159.4023 690.4109 null]
+>> endobj
+4759 0 obj <<
+/D [4753 0 R /XYZ 76.7123 672.4782 null]
+>> endobj
+4760 0 obj <<
+/D [4753 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+4761 0 obj <<
+/D [4753 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+4762 0 obj <<
+/D [4753 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+4763 0 obj <<
+/D [4753 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+4764 0 obj <<
+/D [4753 0 R /XYZ 159.4023 636.6127 null]
+>> endobj
+4765 0 obj <<
+/D [4753 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+4766 0 obj <<
+/D [4753 0 R /XYZ 159.4023 618.6799 null]
+>> endobj
+4767 0 obj <<
+/D [4753 0 R /XYZ 76.7123 600.7472 null]
+>> endobj
+4768 0 obj <<
+/D [4753 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+4769 0 obj <<
+/D [4753 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+4770 0 obj <<
+/D [4753 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+4771 0 obj <<
+/D [4753 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+4772 0 obj <<
+/D [4753 0 R /XYZ 159.4023 564.8817 null]
+>> endobj
+4773 0 obj <<
+/D [4753 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+4774 0 obj <<
+/D [4753 0 R /XYZ 159.4023 546.9489 null]
+>> endobj
+4775 0 obj <<
+/D [4753 0 R /XYZ 76.7123 529.0162 null]
+>> endobj
+4776 0 obj <<
+/D [4753 0 R /XYZ 149.4396 511.0834 null]
+>> endobj
+4777 0 obj <<
+/D [4753 0 R /XYZ 149.4396 511.0834 null]
+>> endobj
+4778 0 obj <<
+/D [4753 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+4779 0 obj <<
+/D [4753 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+4780 0 obj <<
+/D [4753 0 R /XYZ 159.4023 493.1507 null]
+>> endobj
+4781 0 obj <<
+/D [4753 0 R /XYZ 71.731 490.9938 null]
+>> endobj
+4782 0 obj <<
+/D [4753 0 R /XYZ 159.4023 475.2179 null]
+>> endobj
+4783 0 obj <<
+/D [4753 0 R /XYZ 76.7123 421.4197 null]
+>> endobj
+4784 0 obj <<
+/D [4753 0 R /XYZ 129.5143 403.4869 null]
+>> endobj
+4785 0 obj <<
+/D [4753 0 R /XYZ 129.5143 403.4869 null]
+>> endobj
+4786 0 obj <<
+/D [4753 0 R /XYZ 71.731 401.3301 null]
+>> endobj
+4787 0 obj <<
+/D [4753 0 R /XYZ 71.731 401.3301 null]
+>> endobj
+4788 0 obj <<
+/D [4753 0 R /XYZ 139.477 385.5542 null]
+>> endobj
+4789 0 obj <<
+/D [4753 0 R /XYZ 71.731 347.6961 null]
+>> endobj
+4790 0 obj <<
+/D [4753 0 R /XYZ 71.731 334.6452 null]
+>> endobj
+4791 0 obj <<
+/D [4753 0 R /XYZ 71.731 333.3998 null]
+>> endobj
+4792 0 obj <<
+/D [4753 0 R /XYZ 129.5143 314.3213 null]
+>> endobj
+4793 0 obj <<
+/D [4753 0 R /XYZ 71.731 312.1645 null]
+>> endobj
+4794 0 obj <<
+/D [4753 0 R /XYZ 71.731 312.1645 null]
+>> endobj
+4795 0 obj <<
+/D [4753 0 R /XYZ 139.477 296.3885 null]
+>> endobj
+4796 0 obj <<
+/D [4753 0 R /XYZ 139.477 296.3885 null]
+>> endobj
+4797 0 obj <<
+/D [4753 0 R /XYZ 71.731 294.2317 null]
+>> endobj
+4798 0 obj <<
+/D [4753 0 R /XYZ 139.477 278.4558 null]
+>> endobj
+4799 0 obj <<
+/D [4753 0 R /XYZ 139.477 278.4558 null]
+>> endobj
+4800 0 obj <<
+/D [4753 0 R /XYZ 71.731 276.2989 null]
+>> endobj
+4801 0 obj <<
+/D [4753 0 R /XYZ 139.477 260.523 null]
+>> endobj
+4802 0 obj <<
+/D [4753 0 R /XYZ 139.477 260.523 null]
+>> endobj
+4803 0 obj <<
+/D [4753 0 R /XYZ 71.731 258.3662 null]
+>> endobj
+4804 0 obj <<
+/D [4753 0 R /XYZ 139.477 242.5903 null]
+>> endobj
+4805 0 obj <<
+/D [4753 0 R /XYZ 139.477 242.5903 null]
+>> endobj
+4806 0 obj <<
+/D [4753 0 R /XYZ 71.731 240.4334 null]
+>> endobj
+4807 0 obj <<
+/D [4753 0 R /XYZ 139.477 224.6575 null]
+>> endobj
+4808 0 obj <<
+/D [4753 0 R /XYZ 139.477 224.6575 null]
+>> endobj
+4809 0 obj <<
+/D [4753 0 R /XYZ 71.731 222.5007 null]
+>> endobj
+4810 0 obj <<
+/D [4753 0 R /XYZ 139.477 206.7248 null]
+>> endobj
+4811 0 obj <<
+/D [4753 0 R /XYZ 139.477 206.7248 null]
+>> endobj
+4812 0 obj <<
+/D [4753 0 R /XYZ 71.731 204.5679 null]
+>> endobj
+4813 0 obj <<
+/D [4753 0 R /XYZ 139.477 188.792 null]
+>> endobj
+4814 0 obj <<
+/D [4753 0 R /XYZ 139.477 188.792 null]
+>> endobj
+4815 0 obj <<
+/D [4753 0 R /XYZ 71.731 186.6352 null]
+>> endobj
+4816 0 obj <<
+/D [4753 0 R /XYZ 139.477 170.8593 null]
+>> endobj
+4817 0 obj <<
+/D [4753 0 R /XYZ 139.477 170.8593 null]
+>> endobj
+4818 0 obj <<
+/D [4753 0 R /XYZ 71.731 168.7024 null]
+>> endobj
+4819 0 obj <<
+/D [4753 0 R /XYZ 139.477 152.9265 null]
+>> endobj
+4820 0 obj <<
+/D [4753 0 R /XYZ 139.477 152.9265 null]
+>> endobj
+4821 0 obj <<
+/D [4753 0 R /XYZ 71.731 151.487 null]
+>> endobj
+4822 0 obj <<
+/D [4753 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+4823 0 obj <<
+/D [4753 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+4824 0 obj <<
+/D [4753 0 R /XYZ 71.731 132.8369 null]
+>> endobj
+4825 0 obj <<
+/D [4753 0 R /XYZ 139.477 117.061 null]
+>> endobj
+4826 0 obj <<
+/D [4753 0 R /XYZ 139.477 117.061 null]
+>> endobj
+4827 0 obj <<
+/D [4753 0 R /XYZ 71.731 115.6215 null]
+>> endobj
+4828 0 obj <<
+/D [4753 0 R /XYZ 139.477 99.1283 null]
+>> endobj
+4829 0 obj <<
+/D [4753 0 R /XYZ 139.477 99.1283 null]
+>> endobj
+4830 0 obj <<
+/D [4753 0 R /XYZ 71.731 96.9714 null]
+>> endobj
+4752 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+4833 0 obj <<
+/Length 1408      
+/Filter /FlateDecode
+>>
+stream
+xÚ½XË\8eÛ6\14ÝÏWh760fù\12)e7i\9a E\13\fÒÙ5E ±4±\0Yr%z\ 6ó÷½z\90&-êÑMá\85õ8ä=÷ð>H\91\0Ã\8f\ 4\92 Éà\8fÆ\88\8a\90\ 6ûã\r\ e~«O7d\80ì\ 6ÌÎ\ 6½\7f¼ùå#ÃA\8cbAEðø\1c°X Pò@2\8a¢\90DÁcú×æ×CrRY½ÝÑ\10o(êÿ\1f\8a¤ÌÔ\1fÉS\7f{ÿð¹¿ø\92©C\956Û¿\1f\7f¿ùíÑØ\ f\99Dq\ 4FfIr\1c!."\16ì(F1%¡\17E`\8a\90p@IÀ3Τq\86Æ\81D¤u\14\9c18\ 3k½ùNixÍ\8e\80»\98ò8°'Ôv¯ÿ/<ô¨1\ f\16\ 5\11\88*xÇ\83Å\88KéÒxz-òc®Z&\1díË\1ap\8c\b\8f9ØhqïzYóRÝõWï\932}ÍSuèoÍ,\8e?Ús\11cÄ \8e\17t´a3:\1aØ¢\8e>»+t\1cñðêèÐPo§Ì#"å\bã8vElT\9d\97?\a\1dïÓ´Î\9a¦¿éf鮾ã\10gè'\1aP·ùé\85ßÂC2­±¤@+¢K\1a[°9\8d5lYc\8fÝ5\1a_óðklÓ8v9íQ\99\85\88Ð\88\f\ fúûa*¯ÔÛ0\84Á\89Ê÷·ý\93ª6oð&=ìOf!\80\a(!\11\94\88\8eö\8e`(X\92\83§"BDD¼cD\91\8cÛz%£Í§L}­Ò¬ñ%\9cD\11Å2صEO\8a>?\1fêJUmX¼3#.*\rcw\94 A¢>\10\8d\ 1ã[rV\87Á·\12Þüø\8e1-ÚBÊñfx^gê\\97Ý\9b¬H\eË=\9bàNÛ³      ~È\9a}\9d\9fT^\95s\14\19\14tA{\8aß:k\ 3ä\1cþë:y\eô~6+xÞ«\ 1·¯J\95ä¥YÁ4\83ÛBOòT\9dÕÅÅfh\ e\9f\9f}n÷\85l\18Ù\9c²}Þù\9dj>©\8b\98!ØÎÛú\f\81·#°\ 6¡`\9d\83y\9a\95ª\9fµnÜ\18:T\8d*\93cÖܹÏ\13Ûe\8f\95\1e¤ ¦\9f\14oÎê2CY¼Y®\ fñ\9d¨ýÁh¥\ e¦ªØ\1a¼æEÑ_=ev\1cdéE?\8fwWÁ2©ç\88\9f¡1\12ÝYÌ9Z\9a\8e@\82IÑÑù³:ZÞ]\18\1dÍj\19\ 2\97<ÛÒpóªÍ?\rï\93ô\98\97\rZ\eú÷EQ9ó|«\8a¬Y\9b¨\9d±A£S>\\9c\e'/U¶·S÷NGdUnI¸y;Vçf-Ù\87vDRCèÁú÷$\9drN ð\87D\ 6\f\ 6 \1a       \7f\eѨ\9d\r»´\91Xâ¾\8d\8cf\9bl#\94Âf\84P¯Ýé6¢G\8dy¸mD·3\87G[\10'zõ¸\87@:Þ]í-Ûñm\82ï\93¶êÙÈs\9dMögF8\12q¸´\a²a3ýÙÀ\16û³Ïî\8aþ<âáíÏ\ e\8d{ÐåËT\8f\ e!e¹äs=Ú#«Ý§Uerd2z¡Å¢\88\10½6l&z\rl1z}vWDï\88\87?z\1d\1e]3{λ2>\96Y\10\14Çp`qdö´.ØÈ»\r¨_\8aѳ¶\eME4\15\18\14\v\11mÃf"ÚÀ\16#ÚgwEDûx\\84Ó\11íÐø\ fÂ\8dÈ\ eÓq
+&øDÖ\ f \9d\8dòHt=פB\1cV\1f*¾×ê´Bz\94\97\86¥\10\a\1ap2wy\N\84_Í>ÅÞÿL
+CC\84\19l\9fç\85±P3ÂhÔ²0\1e«k\84ñÐð        cópjÛÇs¡7!ÿ\9c\93ÂÙüè-ád\9eÁ\8e\ 1Î\12b)ÏlØL\9e\19Øb\9eùì®È3\1f\8fq\9e94Ü>kïr¯ö­\13ÁD$A\94±\85,³QÓÁdP\8bÁ䳺"\98F4Ü¢¯\83ÉáQ$\8dúq>¥\89Ê|ÍUHı$£o5Wg\f\7f5\e¹§       \84\f1L&2T£v6Ì£êh¶IYC\10(ÄÔkwZV=ÊËÃ
\10x`Ê\\1e\97âõ!ѱf\ e\80\a\8b\97\\9fÅ ÂÕ\83\98¯[\ 2Ãô9µÎô"ùUe!bí\87\81\ 5U-Ø\9cª\1a¶¬ªÇî\1aU=<|ªÚ<üqö\7f      =¤q\få\ eÓ\85\8a`\81¦\v\82\ 6\ 3\8fÉ\15åà\9a\83¿\1aØ$^à\0×î\90W~³õíìü_[<û\98á{=\87\r(\11ñì'}\v3þ¢\1fÒ\bNWqlfj Êhòû¼Çà¿a5\93Sendstream
+endobj
+4832 0 obj <<
+/Type /Page
+/Contents 4833 0 R
+/Resources 4831 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 4620 0 R
+>> endobj
+4834 0 obj <<
+/D [4832 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+4835 0 obj <<
+/D [4832 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+4836 0 obj <<
+/D [4832 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+4837 0 obj <<
+/D [4832 0 R /XYZ 71.731 706.9041 null]
+>> endobj
+4838 0 obj <<
+/D [4832 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+4839 0 obj <<
+/D [4832 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+4840 0 obj <<
+/D [4832 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+4841 0 obj <<
+/D [4832 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+4842 0 obj <<
+/D [4832 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+807 0 obj <<
+/D [4832 0 R /XYZ 71.731 649.5641 null]
+>> endobj
+346 0 obj <<
+/D [4832 0 R /XYZ 196.1111 604.3098 null]
+>> endobj
+4843 0 obj <<
+/D [4832 0 R /XYZ 71.731 584.1694 null]
+>> endobj
+4844 0 obj <<
+/D [4832 0 R /XYZ 161.0655 571.4331 null]
+>> endobj
+4845 0 obj <<
+/D [4832 0 R /XYZ 71.731 559.3136 null]
+>> endobj
+4846 0 obj <<
+/D [4832 0 R /XYZ 71.731 528.284 null]
+>> endobj
+4847 0 obj <<
+/D [4832 0 R /XYZ 168.8063 516.9375 null]
+>> endobj
+4848 0 obj <<
+/D [4832 0 R /XYZ 71.731 489.874 null]
+>> endobj
+4849 0 obj <<
+/D [4832 0 R /XYZ 71.731 450.1395 null]
+>> endobj
+4850 0 obj <<
+/D [4832 0 R /XYZ 71.731 418.558 null]
+>> endobj
+4851 0 obj <<
+/D [4832 0 R /XYZ 181.5683 407.5477 null]
+>> endobj
+4852 0 obj <<
+/D [4832 0 R /XYZ 71.731 397.4855 null]
+>> endobj
+4853 0 obj <<
+/D [4832 0 R /XYZ 71.731 364.0623 null]
+>> endobj
+4854 0 obj <<
+/D [4832 0 R /XYZ 71.731 352.9525 null]
+>> endobj
+4855 0 obj <<
+/D [4832 0 R /XYZ 71.731 351.7072 null]
+>> endobj
+4856 0 obj <<
+/D [4832 0 R /XYZ 129.5143 332.6286 null]
+>> endobj
+4857 0 obj <<
+/D [4832 0 R /XYZ 129.5143 332.6286 null]
+>> endobj
+4858 0 obj <<
+/D [4832 0 R /XYZ 71.731 331.1891 null]
+>> endobj
+4859 0 obj <<
+/D [4832 0 R /XYZ 71.731 331.1891 null]
+>> endobj
+4860 0 obj <<
+/D [4832 0 R /XYZ 139.477 314.6959 null]
+>> endobj
+4861 0 obj <<
+/D [4832 0 R /XYZ 139.477 314.6959 null]
+>> endobj
+4862 0 obj <<
+/D [4832 0 R /XYZ 76.7123 296.7631 null]
+>> endobj
+4863 0 obj <<
+/D [4832 0 R /XYZ 129.5143 278.8304 null]
+>> endobj
+4864 0 obj <<
+/D [4832 0 R /XYZ 129.5143 278.8304 null]
+>> endobj
+4865 0 obj <<
+/D [4832 0 R /XYZ 71.731 276.6735 null]
+>> endobj
+4866 0 obj <<
+/D [4832 0 R /XYZ 71.731 276.6735 null]
+>> endobj
+4867 0 obj <<
+/D [4832 0 R /XYZ 139.477 260.8976 null]
+>> endobj
+4868 0 obj <<
+/D [4832 0 R /XYZ 71.731 258.7408 null]
+>> endobj
+4869 0 obj <<
+/D [4832 0 R /XYZ 71.731 258.7408 null]
+>> endobj
+4870 0 obj <<
+/D [4832 0 R /XYZ 149.4396 242.9649 null]
+>> endobj
+4871 0 obj <<
+/D [4832 0 R /XYZ 71.731 241.5253 null]
+>> endobj
+4872 0 obj <<
+/D [4832 0 R /XYZ 149.4396 225.0321 null]
+>> endobj
+4873 0 obj <<
+/D [4832 0 R /XYZ 76.7123 207.0994 null]
+>> endobj
+4874 0 obj <<
+/D [4832 0 R /XYZ 139.477 189.1666 null]
+>> endobj
+4875 0 obj <<
+/D [4832 0 R /XYZ 71.731 187.7271 null]
+>> endobj
+4876 0 obj <<
+/D [4832 0 R /XYZ 71.731 187.7271 null]
+>> endobj
+4877 0 obj <<
+/D [4832 0 R /XYZ 149.4396 171.2339 null]
+>> endobj
+4878 0 obj <<
+/D [4832 0 R /XYZ 149.4396 171.2339 null]
+>> endobj
+4879 0 obj <<
+/D [4832 0 R /XYZ 71.731 169.077 null]
+>> endobj
+4880 0 obj <<
+/D [4832 0 R /XYZ 71.731 169.077 null]
+>> endobj
+4881 0 obj <<
+/D [4832 0 R /XYZ 159.4023 153.3011 null]
+>> endobj
+4882 0 obj <<
+/D [4832 0 R /XYZ 71.731 151.1443 null]
+>> endobj
+4883 0 obj <<
+/D [4832 0 R /XYZ 159.4023 135.3684 null]
+>> endobj
+4884 0 obj <<
+/D [4832 0 R /XYZ 76.7123 117.4356 null]
+>> endobj
+4885 0 obj <<
+/D [4832 0 R /XYZ 149.4396 99.5029 null]
+>> endobj
+4886 0 obj <<
+/D [4832 0 R /XYZ 149.4396 99.5029 null]
+>> endobj
+4887 0 obj <<
+/D [4832 0 R /XYZ 71.731 97.346 null]
+>> endobj
+4888 0 obj <<
+/D [4832 0 R /XYZ 71.731 97.346 null]
+>> endobj
+4831 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+4891 0 obj <<
+/Length 1369      
+/Filter /FlateDecode
+>>
+stream
+xÚÍZMoã6\14¼çWè\98\0\rËo\91½ín\9b~`[,\9aÜ\9a"Pbml¬#¥\96ÓEþýR\11)Sö\13\1f»u\8a"\aIÎØo8\9cá£\ 4±\82º?V\94\8c\94Â\1d¸%\+^Ü=\9cÐâÞýëÇ\13æ!ç\1es\1e\83Þ^\9d|{!ha\89Õ\\17W\1f\va5Q¥,JÁ\89\14W\8b?Nß-«Çm½9;ç\8a\9er2\1c?¬«¦Þ¾¯n\87Ë7\1f~\1eN~­·ËvÑ\9dýyõËÉ\ fWc}%Jb\8d+\92$)\8c!J\8aâ\9cSb9S \88IK¤#êÆB\r\11R\94ãX¸-JÂúqº±\8c¸\11Ö\ fæ\9asµO\8e)F¬¢¼\88\7f0ÔÝ?îx\84o\81<v\9a2åxP.¦<ºífÕÜ\7fãÕ{|¬6u³\1d®Þ¶­?{÷ýpüû\8c©ÓzÓ­Úæ\80{\18¥¶\94HF-¢Y\fKh6ÂPÍ º\19\9aA<\0Í&<ªÍ¦z\1e\14i?\ eÇ£É(\Á²,´\92Î\81JÂ*zÐy\8c\ 2DÜÿ­Y\r¥SÃ\94\1a¬:¯aøÖ!\ra
+ã4Ôr:\971\8f[§ÊM·­¶uÏfOv¥  7ƺ:=ô»Xb/»_\ 5fgbÞ\9eB\13Íx\89Ù3\82¥ì\19`¸=\81º9ö\ 4x@ö\8cyL¼¸sß(6¬\v3D\97\16\8dm\ 4\12`¸.@Ý\1c]\0\1e\90.1\ f\98T>Nʸ\9eÄ$\12Í\185\1fÍ\11\85F\13ª\9a\11Í\ 3\1ap4'<\1eëzsÓ´\8búfµ\0©K§mɦá\\85Õ.\91Ì\1e3g?¥%1\86\8ca  û\8d0Ô~PÝ\fûA<\0ûMx¸á{£]ôë\7f»©W÷ÍðA/¶×háúÆê\9aR\1e6:\95\17\9f\95yù¤&V\1a,½1,%_\80áò\ 1usä\ 3x@òÅ<`C\1d\10\b5\ 2\vy\84J\84< ð\90\ 3UsB¾Oc&ä1\8feÛm\9bê\ 1ê¾R\11Å-\7f\8dî+­ LQ,æ1,áÓ\11\86ú\14ª\9báS\88\aàÓ  \8fIK¹xZ¯½B\7f=UëÁ\86\8bá\83x\ 6`±JE8+±PÇ°\94X\ 1\86\8b\ 5ÔÍ\11\và\ 1\89\15óÀZòWéçcçFM\84âH\84cÔ|\84G\14\1aa¨jF\84\ f\11\9eðèVÛ\99\16-)QÔ\1c·CKÎÜ\1d\90\eÁRn\f\8d\1c7\ 2< 7Æ<výäÒI;m\16\9f\97«»åpº]®º\83.ã?Y·wnë¸\98W\91
+"\8dF3\1dÁR*\ 6\18®"P7GE\80\a¤bÌ#Ù¨\8f\ f¨p»RÍ\19\12ö\185\1fö\11\85\86\1dª\9a\11ö\ 3\1apØ'<^î\97\9b¶¹û\8fï\97\85;ÑÆ`±\8fa       Ã\8e0Ô°PÝ\fÃB<\0ÃNxL:Î5UôÍâaå÷\91m³~v\1f±áê÷ªY´\ fá!\ eW§ÕúÉûô¾nêÍ\8bC_.o\9f\83¥ë}G\a㯫Î\9fõs;?\ 1\82\91R)lÅ\88a©   \b0|\ 2\80º9\13\0ð\80& æ\81í\ 2þ7sâ\17\bn\151\96"\8bM\8c\9a_lF\14ºØ@U3\16\9b\ 3\1aðb3áÑÕ]x8y¸³p_\91¯±Òð²t\1er\94ÓF\8fa       £\8f0ÔèPÝ\f£C<\0£Oxä»ú·Ñ\9aa.ö\f>«¢¦\84r\89-\171,¥b\80á*\ 2usT\ 4x@*Æ<þÕrñ\8f\85\r9åÒÝãY,ó\11*\91ù\80Â3\ fTÍÉü>\8d\99ÌÇ<ºny³éª\9bOõ3ôÐ\8f»m2\7f\95\1d\ 6§n÷Â5\9aû\b\96rl\80á\8e\ 5êæ8\16à\ 196æ1±çû±Ç|jÚÞv\9f½\a//\7fÚÝÙzÄ\19£§uÿpëyV?f\fáV`\89\8fa        ýF\18ª\1fT7C?\88\a ß\84\a\96øcIêóÉ\94s;7HÖcÔ|ÖG\14\9au¨jFÖ\ fhÀY\9fð\803Î,\11¥\14¯\91q&$\91Va\19\8fa)\8f\ 6\18îQ n\8eG\ 1\1e\90Gc\1e\82²âÍ4Q\9a£ñ\8e`)é\ 2\f\97\ e¨\9b#\1dÀ\ 3\92.æq¤\86\9ePÓ¿u"\r1læáKx1%Â\1c¾\97¢¸!\94Y;þRO¿´³o\99\0\ 5¿\0\92U·¶endstream
+endobj
+4890 0 obj <<
+/Type /Page
+/Contents 4891 0 R
+/Resources 4889 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 4620 0 R
+>> endobj
+4892 0 obj <<
+/D [4890 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+4893 0 obj <<
+/D [4890 0 R /XYZ 159.4023 708.3437 null]
+>> endobj
+4894 0 obj <<
+/D [4890 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+4895 0 obj <<
+/D [4890 0 R /XYZ 159.4023 690.4109 null]
+>> endobj
+4896 0 obj <<
+/D [4890 0 R /XYZ 76.7123 672.4782 null]
+>> endobj
+4897 0 obj <<
+/D [4890 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+4898 0 obj <<
+/D [4890 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+4899 0 obj <<
+/D [4890 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+4900 0 obj <<
+/D [4890 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+4901 0 obj <<
+/D [4890 0 R /XYZ 159.4023 636.6127 null]
+>> endobj
+4902 0 obj <<
+/D [4890 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+4903 0 obj <<
+/D [4890 0 R /XYZ 159.4023 618.6799 null]
+>> endobj
+4904 0 obj <<
+/D [4890 0 R /XYZ 76.7123 600.7472 null]
+>> endobj
+4905 0 obj <<
+/D [4890 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+4906 0 obj <<
+/D [4890 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+4907 0 obj <<
+/D [4890 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+4908 0 obj <<
+/D [4890 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+4909 0 obj <<
+/D [4890 0 R /XYZ 159.4023 564.8817 null]
+>> endobj
+4910 0 obj <<
+/D [4890 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+4911 0 obj <<
+/D [4890 0 R /XYZ 159.4023 546.9489 null]
+>> endobj
+4912 0 obj <<
+/D [4890 0 R /XYZ 76.7123 529.0162 null]
+>> endobj
+4913 0 obj <<
+/D [4890 0 R /XYZ 149.4396 511.0834 null]
+>> endobj
+4914 0 obj <<
+/D [4890 0 R /XYZ 149.4396 511.0834 null]
+>> endobj
+4915 0 obj <<
+/D [4890 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+4916 0 obj <<
+/D [4890 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+4917 0 obj <<
+/D [4890 0 R /XYZ 159.4023 493.1507 null]
+>> endobj
+4918 0 obj <<
+/D [4890 0 R /XYZ 71.731 490.9938 null]
+>> endobj
+4919 0 obj <<
+/D [4890 0 R /XYZ 159.4023 475.2179 null]
+>> endobj
+4920 0 obj <<
+/D [4890 0 R /XYZ 76.7123 457.2852 null]
+>> endobj
+4921 0 obj <<
+/D [4890 0 R /XYZ 149.4396 439.3524 null]
+>> endobj
+4922 0 obj <<
+/D [4890 0 R /XYZ 149.4396 439.3524 null]
+>> endobj
+4923 0 obj <<
+/D [4890 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+4924 0 obj <<
+/D [4890 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+4925 0 obj <<
+/D [4890 0 R /XYZ 159.4023 421.4197 null]
+>> endobj
+4926 0 obj <<
+/D [4890 0 R /XYZ 71.731 419.9801 null]
+>> endobj
+4927 0 obj <<
+/D [4890 0 R /XYZ 159.4023 403.4869 null]
+>> endobj
+4928 0 obj <<
+/D [4890 0 R /XYZ 76.7123 385.5542 null]
+>> endobj
+4929 0 obj <<
+/D [4890 0 R /XYZ 149.4396 367.6214 null]
+>> endobj
+4930 0 obj <<
+/D [4890 0 R /XYZ 149.4396 367.6214 null]
+>> endobj
+4931 0 obj <<
+/D [4890 0 R /XYZ 71.731 365.4646 null]
+>> endobj
+4932 0 obj <<
+/D [4890 0 R /XYZ 71.731 365.4646 null]
+>> endobj
+4933 0 obj <<
+/D [4890 0 R /XYZ 159.4023 349.6887 null]
+>> endobj
+4934 0 obj <<
+/D [4890 0 R /XYZ 71.731 347.5318 null]
+>> endobj
+4935 0 obj <<
+/D [4890 0 R /XYZ 159.4023 331.7559 null]
+>> endobj
+4936 0 obj <<
+/D [4890 0 R /XYZ 76.7123 313.8231 null]
+>> endobj
+4937 0 obj <<
+/D [4890 0 R /XYZ 149.4396 295.8904 null]
+>> endobj
+4938 0 obj <<
+/D [4890 0 R /XYZ 149.4396 295.8904 null]
+>> endobj
+4939 0 obj <<
+/D [4890 0 R /XYZ 71.731 293.7336 null]
+>> endobj
+4940 0 obj <<
+/D [4890 0 R /XYZ 71.731 293.7336 null]
+>> endobj
+4941 0 obj <<
+/D [4890 0 R /XYZ 159.4023 277.9576 null]
+>> endobj
+4942 0 obj <<
+/D [4890 0 R /XYZ 71.731 275.8008 null]
+>> endobj
+4943 0 obj <<
+/D [4890 0 R /XYZ 159.4023 260.0249 null]
+>> endobj
+4944 0 obj <<
+/D [4890 0 R /XYZ 76.7123 242.0921 null]
+>> endobj
+4945 0 obj <<
+/D [4890 0 R /XYZ 149.4396 224.1594 null]
+>> endobj
+4946 0 obj <<
+/D [4890 0 R /XYZ 149.4396 224.1594 null]
+>> endobj
+4947 0 obj <<
+/D [4890 0 R /XYZ 71.731 222.0026 null]
+>> endobj
+4948 0 obj <<
+/D [4890 0 R /XYZ 71.731 222.0026 null]
+>> endobj
+4949 0 obj <<
+/D [4890 0 R /XYZ 159.4023 206.2266 null]
+>> endobj
+4950 0 obj <<
+/D [4890 0 R /XYZ 71.731 204.0698 null]
+>> endobj
+4951 0 obj <<
+/D [4890 0 R /XYZ 159.4023 188.2939 null]
+>> endobj
+4952 0 obj <<
+/D [4890 0 R /XYZ 76.7123 170.3611 null]
+>> endobj
+4953 0 obj <<
+/D [4890 0 R /XYZ 149.4396 152.4284 null]
+>> endobj
+4954 0 obj <<
+/D [4890 0 R /XYZ 149.4396 152.4284 null]
+>> endobj
+4955 0 obj <<
+/D [4890 0 R /XYZ 71.731 150.2715 null]
+>> endobj
+4956 0 obj <<
+/D [4890 0 R /XYZ 71.731 150.2715 null]
+>> endobj
+4957 0 obj <<
+/D [4890 0 R /XYZ 159.4023 134.4956 null]
+>> endobj
+4958 0 obj <<
+/D [4890 0 R /XYZ 71.731 132.3388 null]
+>> endobj
+4959 0 obj <<
+/D [4890 0 R /XYZ 159.4023 116.5629 null]
+>> endobj
+4960 0 obj <<
+/D [4890 0 R /XYZ 76.7123 98.6301 null]
+>> endobj
+4889 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+4963 0 obj <<
+/Length 1435      
+/Filter /FlateDecode
+>>
+stream
+xÚ½YÑnÛ6\14}ÏWè1\ 1j\8e¤H\91ì[ÚnÃ\86v\b\86ìi\1d\ 2ÕVb¡\8edHr\83þý(\8b\94\92Ô\8a®È\83\88÷èèÜCÒ"      Ö\7f$\11\ 4\89T\7fP\85hÆi²}¾ÂÉ\93þׯWÄ@6\ 6³qAoî¯~ú%Å\89B*£Yrÿ\98¤*C\°D¤\14INdr¿ûûúí>?vEs³¡\1c_S4|Þ\1dòªèÞç\9f\86¯·w¿\r\a\1f\8an_ïÚ\9b\7fî\7f¿úù~¬ÏS\81\94ÔE\82$S%\11Ç<K6\14#E      \aQ$U\88   ¡ï\ 5K\94²T\8c÷BU"\10éïSß\8b\85\8d¨þ^>RÊ/¹\11F47\91%îx¶êåçÄÂ^µ¤\91ÊDjI3v¦Á4\r­ë\9cÇ.ï\8a\87mSè\8f]ÏçÌ}z\ e\99@\f\8b¾V\ f~=H[VÝpP\9bg\917MþÕ\9cz\9c0\8bÛ3\ 42\85\11#XÁ¢ZÔÆ\85\ 1ª.FóÊʵ@\1cS°®_V{\15ÈcR\88\ 3ÓtÎCßþ«A\88wZY£Rµ\e\ eºòÙ\9c\17ÕpTÕ;s®¨ºÆ\88ùrCôeíðÅyH°ª\82j\9bI\1a\81\85Tµ°¸ª@Ý5ª\ 2< U]\1e°Ï~\94Ц\8d³4C\19¡"\1c       .Ê\1f     #*\1a     PÕ\15\91° \ 1\8cdzVè\0d\81\ eÌT*9Ï\82¶kÊê)\1a\a\ 6æõ.\91(\13*\9a\b\ e,ä]\v\8b{\17¨»Æ»\0\ fÈ».\8fA\ 1ãÕ\ fùçÞq\97~\1d\94\9f       ×í-hÛ\9dróÏç|»/«Â/'ÆH0\11\8d\ 2\a\16\92ÓÂâr\ 2u×È      ð\80ätyx=öÿ*lú\96g\fII"\19à¢ü\190¢¢\19\0U]\91\ 1\v\1ap\ 6Ìx\1c\8b¢y(¡\15\ 1Ãze$¿ï\82\80³\f)&cíïÂ\ 2~\1daQ¿BuWø\15â\ 1øuÆc\9a§î
\84íj;9\95Û½5cÙ^ÎS\9f\8aC]=µ~õt0c\92źÝ\85\85Ô³°¸z@Ý5ê\ 1< õ\\1eÁ\89ÿ»    j\1a\92©\14\11\8e#Íí¢üÍ=¢¢Í\rU]ÑÜ\v\1apsÏxôJü¸æf\82#JD¬¹]XÀ\9e#,jO¨î
+{B<\0{ÎxL^üc4Y¹ÓëËò#ÆT»Ó«\r\17\88J\1ek]\17\16ÒÆÂâÚ\0u×h\ 3ð\80´qy\ 4[w¥\D!ÎõÌ\94\ f\98G.\8bÚ¸°I.%ð ×b4¯\\94ê\8d2¡`]¿\öª%\8fyoê\80ã\84¥s\1e\9d\9aêá±,\ eÃ\8f\17\17"÷Û!*Óy\8b\ e\1agüÚÈú¾l»¹ägaû\11g99\14[Þ¶%¦wÿ\19%\f\96Û¢6.\fpçb4¯Ü)E\982\ 5ÖõËm¯\ 2y8î4\89<£1mKô@\1aK¹¾\1f\8e\91Ä\8a\9f\ 1\7f\9e\15j_{-IU¦wE\92G,éÂ\ 2\96\1caQKBuWX\12âáhd\9fÕ\8c\a¼Ô>m;¯q¨\90\88q.#Æqa\ 1ã\8c°¨q º+\8c³à1ïSc\9c\19\8d¶hÛ²®à)T\a2\83vɯl/r|»{.Í\ f\12uuøªO\91ËD´%Î_¾ÜP~\9d\1fN\85_óLÏÝ:|#\92\90â\ 6\15\17|Yt\8dÞ\17$`¹\1d\ eÇíI¯WÚµjÇãðîí_6
+÷¹ù߶®º¦>\80ËFÏJ\912\8a¸Âix¥è¢ü+Å\11\15])BUW¬\14!\1aNëÛEÄ\8c\a´®\eM\823$(\8b\ 3\vYÎÂâ\9e\ 3ê®1Ý%\ fØu.\8dþÑ?5õéè1ß7ÎÅÓFä<øÂ\88Ð\96Å\9e)+\9f\17\89\94H(\1a¶¢\ 3ò;Ñ\82¢F\ 4J®ð!À\ 1°¡K"äB©\9e¶3\1e\v\v¸p\84E]\bÕ]áÂ\ 5\ fÐ\853\1a\87¼í\1eNÇ]ð\rÍbËö£~\14\1f\95K\19R*\8d¥\81\v\v=\a\v\8b?\a î\9açpÉ\ 3~\ e.\8d/EóÍSþíñ\987\85ÝH¿©ksôö\9d\9dÞ   ¿\9eÆ\87\15&\ 2á\8cÄ\ 4\9eP!}\r*.ï²è\1au/HÀâ:\1czÿUE÷R7\9f=Y+SD¤Þnÿ׬Õ\83ö6Ö\ 3\8f­Q4\8fggo\8bUѻϽ¿\14)\85H?\ 1\ 4\ 1ù3×\82¢\99\v\94\\91¹\0\a s]\12\9a7÷L"I2\15|¹ï`\96ïö9\95\b\13¥Æ\91úz\12{ßÔ\ 3\ 5ÿ\ 5<F\17#endstream
+endobj
+4962 0 obj <<
+/Type /Page
+/Contents 4963 0 R
+/Resources 4961 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5034 0 R
+>> endobj
+4964 0 obj <<
+/D [4962 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+4965 0 obj <<
+/D [4962 0 R /XYZ 149.4396 708.3437 null]
+>> endobj
+4966 0 obj <<
+/D [4962 0 R /XYZ 149.4396 708.3437 null]
+>> endobj
+4967 0 obj <<
+/D [4962 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+4968 0 obj <<
+/D [4962 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+4969 0 obj <<
+/D [4962 0 R /XYZ 159.4023 690.4109 null]
+>> endobj
+4970 0 obj <<
+/D [4962 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+4971 0 obj <<
+/D [4962 0 R /XYZ 159.4023 672.4782 null]
+>> endobj
+4972 0 obj <<
+/D [4962 0 R /XYZ 76.7123 654.5454 null]
+>> endobj
+4973 0 obj <<
+/D [4962 0 R /XYZ 149.4396 636.6127 null]
+>> endobj
+4974 0 obj <<
+/D [4962 0 R /XYZ 149.4396 636.6127 null]
+>> endobj
+4975 0 obj <<
+/D [4962 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+4976 0 obj <<
+/D [4962 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+4977 0 obj <<
+/D [4962 0 R /XYZ 159.4023 618.6799 null]
+>> endobj
+4978 0 obj <<
+/D [4962 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+4979 0 obj <<
+/D [4962 0 R /XYZ 159.4023 600.7472 null]
+>> endobj
+4980 0 obj <<
+/D [4962 0 R /XYZ 76.7123 582.8144 null]
+>> endobj
+4981 0 obj <<
+/D [4962 0 R /XYZ 149.4396 564.8817 null]
+>> endobj
+4982 0 obj <<
+/D [4962 0 R /XYZ 149.4396 564.8817 null]
+>> endobj
+4983 0 obj <<
+/D [4962 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+4984 0 obj <<
+/D [4962 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+4985 0 obj <<
+/D [4962 0 R /XYZ 159.4023 546.9489 null]
+>> endobj
+4986 0 obj <<
+/D [4962 0 R /XYZ 71.731 544.7921 null]
+>> endobj
+4987 0 obj <<
+/D [4962 0 R /XYZ 159.4023 529.0162 null]
+>> endobj
+4988 0 obj <<
+/D [4962 0 R /XYZ 76.7123 511.0834 null]
+>> endobj
+4989 0 obj <<
+/D [4962 0 R /XYZ 149.4396 493.1507 null]
+>> endobj
+4990 0 obj <<
+/D [4962 0 R /XYZ 149.4396 493.1507 null]
+>> endobj
+4991 0 obj <<
+/D [4962 0 R /XYZ 71.731 490.9938 null]
+>> endobj
+4992 0 obj <<
+/D [4962 0 R /XYZ 71.731 490.9938 null]
+>> endobj
+4993 0 obj <<
+/D [4962 0 R /XYZ 159.4023 475.2179 null]
+>> endobj
+4994 0 obj <<
+/D [4962 0 R /XYZ 71.731 473.7784 null]
+>> endobj
+4995 0 obj <<
+/D [4962 0 R /XYZ 159.4023 457.2852 null]
+>> endobj
+4996 0 obj <<
+/D [4962 0 R /XYZ 76.7123 403.4869 null]
+>> endobj
+4997 0 obj <<
+/D [4962 0 R /XYZ 129.5143 385.5542 null]
+>> endobj
+4998 0 obj <<
+/D [4962 0 R /XYZ 129.5143 385.5542 null]
+>> endobj
+4999 0 obj <<
+/D [4962 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+5000 0 obj <<
+/D [4962 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+5001 0 obj <<
+/D [4962 0 R /XYZ 139.477 367.6214 null]
+>> endobj
+5002 0 obj <<
+/D [4962 0 R /XYZ 71.731 329.7634 null]
+>> endobj
+5003 0 obj <<
+/D [4962 0 R /XYZ 71.731 316.7124 null]
+>> endobj
+5004 0 obj <<
+/D [4962 0 R /XYZ 71.731 315.4671 null]
+>> endobj
+5005 0 obj <<
+/D [4962 0 R /XYZ 129.5143 296.3885 null]
+>> endobj
+5006 0 obj <<
+/D [4962 0 R /XYZ 71.731 294.2317 null]
+>> endobj
+5007 0 obj <<
+/D [4962 0 R /XYZ 71.731 294.2317 null]
+>> endobj
+5008 0 obj <<
+/D [4962 0 R /XYZ 139.477 278.4558 null]
+>> endobj
+5009 0 obj <<
+/D [4962 0 R /XYZ 139.477 278.4558 null]
+>> endobj
+5010 0 obj <<
+/D [4962 0 R /XYZ 71.731 276.2989 null]
+>> endobj
+5011 0 obj <<
+/D [4962 0 R /XYZ 139.477 260.523 null]
+>> endobj
+5012 0 obj <<
+/D [4962 0 R /XYZ 139.477 260.523 null]
+>> endobj
+5013 0 obj <<
+/D [4962 0 R /XYZ 71.731 258.3662 null]
+>> endobj
+5014 0 obj <<
+/D [4962 0 R /XYZ 71.731 258.3662 null]
+>> endobj
+5015 0 obj <<
+/D [4962 0 R /XYZ 149.4396 242.5903 null]
+>> endobj
+5016 0 obj <<
+/D [4962 0 R /XYZ 76.7123 224.6575 null]
+>> endobj
+5017 0 obj <<
+/D [4962 0 R /XYZ 139.477 206.7248 null]
+>> endobj
+5018 0 obj <<
+/D [4962 0 R /XYZ 139.477 206.7248 null]
+>> endobj
+5019 0 obj <<
+/D [4962 0 R /XYZ 71.731 204.5679 null]
+>> endobj
+5020 0 obj <<
+/D [4962 0 R /XYZ 71.731 204.5679 null]
+>> endobj
+5021 0 obj <<
+/D [4962 0 R /XYZ 149.4396 188.792 null]
+>> endobj
+5022 0 obj <<
+/D [4962 0 R /XYZ 76.7123 170.8593 null]
+>> endobj
+5023 0 obj <<
+/D [4962 0 R /XYZ 139.477 152.9265 null]
+>> endobj
+5024 0 obj <<
+/D [4962 0 R /XYZ 139.477 152.9265 null]
+>> endobj
+5025 0 obj <<
+/D [4962 0 R /XYZ 71.731 150.7697 null]
+>> endobj
+5026 0 obj <<
+/D [4962 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+5027 0 obj <<
+/D [4962 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+5028 0 obj <<
+/D [4962 0 R /XYZ 71.731 132.8369 null]
+>> endobj
+5029 0 obj <<
+/D [4962 0 R /XYZ 139.477 117.061 null]
+>> endobj
+5030 0 obj <<
+/D [4962 0 R /XYZ 139.477 117.061 null]
+>> endobj
+5031 0 obj <<
+/D [4962 0 R /XYZ 71.731 114.9042 null]
+>> endobj
+5032 0 obj <<
+/D [4962 0 R /XYZ 71.731 114.9042 null]
+>> endobj
+5033 0 obj <<
+/D [4962 0 R /XYZ 149.4396 99.1283 null]
+>> endobj
+4961 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+5037 0 obj <<
+/Length 1587      
+/Filter /FlateDecode
+>>
+stream
+xÚ\9dY]\93\9b6\14}ß_áÇõL­JB\12"oùhÒtÒÎN²yj:\1e\16km&\18\\90»ã\7f_  $,°@$³\ f¶Ù\83îѹ\87«+\81VPý¡U\8c@\1c©\ f\9c\0Ì(^eÇ;¸Ú«\7f}¸C\ 6²1\98\8d\vzóx÷ëû\b®\12\900ÌV\8fÏ«(a\80Æd\15G\18p\8aøêq÷÷ýÛCz\92¢^o0\85÷\18t\9f\ fEZ
+ù)}ê~¾~øØ}ùSÈCµkÖÿ<þq÷Ûc\1f\9fF1H¸
+2K\92@\ e\bãÑj\13q\15\9fD^\14RCP¤þ¹a        \ 4\ 4Á¤\9f\fNV1@z¢j2=®\87éÙ|Ã\98\8eÙ!5]\88I²r\a´qÇ\9fW\1eö®[\1e\11_q%*#-\8f(\ 1$\8e\874\9eªJn\e\99J¡É´Ì¯i \f`ι
+£¡¯:e\eYçåþ\97îÇ\eu»½lÆ\18\9fz\8cUl\8eCB:°9!-,,¤'î\12!Ç<üBº4NBÔÛ²Ú\89m¾óHÉb@`<T2/¥\91ñý\1aÑûª\16ù¾ì.è\81\fh'J\99\7f\83\10[ë§Fq\1dqZpJ\0%\94\84\ 4w`s\82[XXpOÜ%\82\8f\ 5wi\1cªF\96éÑç[B\ 1Å \9eñíûsQ\º¯ÿ\9eÓ¢Ów×]p\aök\e\10\8eCÚ:°9m-,¬­'î\12mÇ<üÚº4\9a\Nø\98@@a\9cL\19ù\8bºqèÒ\97C\9e\1dº¯ò\9077ö6W\8a*Sõc7­9â\80ÅI\12ÒÜ\81ÍinaaÍ=q\97h>æá×Ü¥qªjÙx\14W\9c#\9e\8cJGZ×éeÍè½ÑýSÞ\18½«g³0¾ýjÊD;®I\80ÍÊ\*²ª,E&íã «[q\f}\bALâ\89¢n@\e\17åIÉx¬É\8c\10¤Vî\98y£NgÄÞå¥q\15\19\11ECu\1dC\1eÊ×\93\86¤\8c\0ÎQ¨\b¸°\19Cö° !}q\17\18ò\86\87×\90\ 3\1aM\91
+øLI!H`ò£\9elG4.«J¯\13'¬F   \ 3       áɼÕ\Ô´ÕzTÐj¾¨\v¬æ£á±Ú\80ǬÕ\10\ 2\90G¡µÜ\85ÍYÍÂÂVóÄ]bµ1\ f¿Õ\\1am\17ZVeös]è7HáëÝ1/­µ\8a\8bº\84º_\9fÓrW\1d»ïÿ­1½O\8b³©x{Q\8a:í+ÝÓÅZR\8ck£­\9bEj=­)Of\8c$\11@j\9d\f\85Íd¬\87\ 5\8b» c7<¼\19\eÐ\98ît\ 3\1dÂ_þÎvRÉ\98\ 2\8câкïÂæ\94´°°\92\9e¸K\94\1cóð+éÒø..\1e\15\91ZõcÅø'M\7fUùû\1aÁ{¡÷\17\97i\91\1e1\1aÚ\9d¹°9\91-,,²'î\12\91Ç<ü"»4vê)ßfµ°=æ\ fíÎÞ¥}S[Ú¦(?
+Ûß\8a\9b=\9bòumjÉ\8b\96\9dÕ\95\80?\ f\8azDq¨Ð»°¹<XX8\ f\9e¸Kò0æáÏ\83Kã¨4*\96\ 3»ÿ\99\1a'\ f\13Ñ\r8è2úò\9dfRíí\f\ ey9½§#\18\ 1\82\92`Åv`sÒ[XXzOÜ%Ò\8fyø¥wi´\a\14?S±\1f\84=yP[\81%{º'QTå¾\99Ö\1aF\80p\16¬é\ elNk\v\v\89»Dë1\ f¿Ö.\rµ\85zÞ>çÅTû¬\ f\8e0\8f\7fVÃêår\7fVMKn\eh}¥°]us\12Y»¤fÃ\8c-ë²#N\ 1¥$°¡sQÓ]v\8f
+vÙ¾¨\vºl\1f\rO\97=à1×eGê\ eÆy¨\ 2¸°\19Wö° +}q\17¸ò\86\87×\95\ 3\1aMsØÖMºõw\1cLy\12á¹6ûSßü~/+ÝI¿\18\v~ùòûõèÌÛv¨XjÊjAF´å§&\ 2U3©ºú\rã\01Þ-\ f\18\ föc~ÿAÈ\87·_}\ f\ f\89\ 1ÇP\eQÁcÖÍí¡®d%/'ñª¿ãª\86¹w£Ê!CfÃeÇï{©ô,\ ff¢§ì¼m\1f+ýº\81@û@ÖB\9eë²ý\8f(vMÛmÝÒÛØh.½w¢Éêü¤\9fÚ9\82\11\ 3\94á\8eàç6Zc×;·F\f7Õ²>gòzv#Ó¼T9ë~ï\84úYØA\9eª³=;îòg\v»¾­®ÌRy.séè¢UÒS5/\>>{4\1a\9c\1fõ5Èî«úÅ:oÓ©\1c¶Q\9b?FYÔNtfný!\96»WhL:*{\1eîê0q\7f*\95\91\9fÖXÍN\8a~\80Ò\9e\ 1_\9dpL¥n\14ö£Vb8Ó\97¼(ìRçZCì®"y&:òϤj7ôz\1a\ eò;GËÒa\80Eªzj:Îæá\98ö\87áÂv®©\1dL\8b\ 3춢ܤú¶ftß\95«3BOû*ïõüQäFL}ÖÜ\80qy4ï           \a\1cMt
+öU¢\83¹}\93H1\a\10%I?\92\9e9G\93ï\ 5=\ 1ÿ\aî\1d\8e5endstream
+endobj
+5036 0 obj <<
+/Type /Page
+/Contents 5037 0 R
+/Resources 5035 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5034 0 R
+>> endobj
+5038 0 obj <<
+/D [5036 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+5039 0 obj <<
+/D [5036 0 R /XYZ 76.7123 708.3437 null]
+>> endobj
+5040 0 obj <<
+/D [5036 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+5041 0 obj <<
+/D [5036 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+5042 0 obj <<
+/D [5036 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+5043 0 obj <<
+/D [5036 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+5044 0 obj <<
+/D [5036 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+5045 0 obj <<
+/D [5036 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+5046 0 obj <<
+/D [5036 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+5047 0 obj <<
+/D [5036 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+5048 0 obj <<
+/D [5036 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+5049 0 obj <<
+/D [5036 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+5050 0 obj <<
+/D [5036 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+5051 0 obj <<
+/D [5036 0 R /XYZ 71.731 635.1731 null]
+>> endobj
+5052 0 obj <<
+/D [5036 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+5053 0 obj <<
+/D [5036 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+5054 0 obj <<
+/D [5036 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+5055 0 obj <<
+/D [5036 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+5056 0 obj <<
+/D [5036 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+5057 0 obj <<
+/D [5036 0 R /XYZ 76.7123 582.8144 null]
+>> endobj
+5058 0 obj <<
+/D [5036 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+5059 0 obj <<
+/D [5036 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+5060 0 obj <<
+/D [5036 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+5061 0 obj <<
+/D [5036 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+5062 0 obj <<
+/D [5036 0 R /XYZ 149.4396 546.9489 null]
+>> endobj
+5063 0 obj <<
+/D [5036 0 R /XYZ 76.7123 529.0162 null]
+>> endobj
+5064 0 obj <<
+/D [5036 0 R /XYZ 139.477 511.0834 null]
+>> endobj
+5065 0 obj <<
+/D [5036 0 R /XYZ 139.477 511.0834 null]
+>> endobj
+5066 0 obj <<
+/D [5036 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+5067 0 obj <<
+/D [5036 0 R /XYZ 139.477 493.1507 null]
+>> endobj
+5068 0 obj <<
+/D [5036 0 R /XYZ 139.477 493.1507 null]
+>> endobj
+5069 0 obj <<
+/D [5036 0 R /XYZ 71.731 491.7111 null]
+>> endobj
+5070 0 obj <<
+/D [5036 0 R /XYZ 139.477 475.2179 null]
+>> endobj
+5071 0 obj <<
+/D [5036 0 R /XYZ 139.477 475.2179 null]
+>> endobj
+5072 0 obj <<
+/D [5036 0 R /XYZ 71.731 473.0611 null]
+>> endobj
+5073 0 obj <<
+/D [5036 0 R /XYZ 139.477 457.2852 null]
+>> endobj
+5074 0 obj <<
+/D [5036 0 R /XYZ 139.477 457.2852 null]
+>> endobj
+5075 0 obj <<
+/D [5036 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+5076 0 obj <<
+/D [5036 0 R /XYZ 139.477 439.3524 null]
+>> endobj
+5077 0 obj <<
+/D [5036 0 R /XYZ 139.477 439.3524 null]
+>> endobj
+5078 0 obj <<
+/D [5036 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+5079 0 obj <<
+/D [5036 0 R /XYZ 139.477 421.4197 null]
+>> endobj
+5080 0 obj <<
+/D [5036 0 R /XYZ 139.477 421.4197 null]
+>> endobj
+5081 0 obj <<
+/D [5036 0 R /XYZ 71.731 419.2628 null]
+>> endobj
+5082 0 obj <<
+/D [5036 0 R /XYZ 139.477 403.4869 null]
+>> endobj
+5083 0 obj <<
+/D [5036 0 R /XYZ 139.477 403.4869 null]
+>> endobj
+5084 0 obj <<
+/D [5036 0 R /XYZ 71.731 401.3301 null]
+>> endobj
+5085 0 obj <<
+/D [5036 0 R /XYZ 71.731 401.3301 null]
+>> endobj
+5086 0 obj <<
+/D [5036 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+5087 0 obj <<
+/D [5036 0 R /XYZ 76.7123 367.6214 null]
+>> endobj
+5088 0 obj <<
+/D [5036 0 R /XYZ 139.477 349.6887 null]
+>> endobj
+5089 0 obj <<
+/D [5036 0 R /XYZ 139.477 349.6887 null]
+>> endobj
+808 0 obj <<
+/D [5036 0 R /XYZ 71.731 326.7746 null]
+>> endobj
+350 0 obj <<
+/D [5036 0 R /XYZ 189.4142 281.5203 null]
+>> endobj
+5090 0 obj <<
+/D [5036 0 R /XYZ 71.731 261.3799 null]
+>> endobj
+5091 0 obj <<
+/D [5036 0 R /XYZ 161.0655 248.6436 null]
+>> endobj
+5092 0 obj <<
+/D [5036 0 R /XYZ 71.731 236.5241 null]
+>> endobj
+5093 0 obj <<
+/D [5036 0 R /XYZ 71.731 205.1582 null]
+>> endobj
+5094 0 obj <<
+/D [5036 0 R /XYZ 168.8063 194.1479 null]
+>> endobj
+5095 0 obj <<
+/D [5036 0 R /XYZ 71.731 167.0845 null]
+>> endobj
+5096 0 obj <<
+/D [5036 0 R /XYZ 71.731 127.35 null]
+>> endobj
+5035 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+5099 0 obj <<
+/Length 1309      
+/Filter /FlateDecode
+>>
+stream
+xÚ½\99_oÛ6\14Åßó)ü\98\05Çÿ\12û\96\15Û\90a\ 3\82!{Z\87\95X\80c\19\92\82bß~TD*\97Ö¥È\ 1\a\91îÑ/ç\88fÌ6Ôþc\9b\82\91\ 37\84kÅ7»ç+ºy²ÿõË\15s\92­Ól¡èÇ\87«\1f~\16tc\88Ñ\o\1e\1e7Âh¢
+¹)\ 4'¥båæaÿ×õ§Cu\1eêîfË\15½æd:Þ\1f«S=üV}\99~¼½¿\9b^ü^\ f\87vßßüýðëÕO\ fó|%
+bJ;dÕä¬ZÚä\ 6ØdÌ\10¥X±)hI\84\14Å«ÏÛã±½áêúk½\9f¼üÑ\1eëþãhåõüÒ\9e¯åx¾»Ò\963¢Yi^Ï®öÏÍéÃtâ¹q/\86zwp/Oí¾\9e/õfeë¯5\12+ôääþ\86©ëª«\9ekËmr\0aÌöµ\10Dr©Q\18³j\ve\1e\86\ 5UP\16À\98\85Ï\9c«Å\Î--Æѹ\97Ç7\1fþ¬¥\ fQ\ 2¨ÌþÊ\14\93"ôQ½\f\a\ 4\e\97\84\8e\13FÉÇ  p?t/»áÃE\9eÆóëÓÐ쪡iOPùÒÕË\eô\16\98"Ò0\83\83õª-\94½\81ecQ\82\eò²(Xû˧\\1atn\1c¬?ké#\ 4+\f\91E\11Ú¸µ\¦®!t\95&ZÚ\1a_òmNO\9e/\82õyºÜ\14üv:¾ôu4½ª0Ä\ e\94\89ôBÙJzgY2½ØÜ\8cô.|àé\r|\9cw/ÿ<6Çñé\87SfÖy@¹êºêßéeû8\1d\9bÓàÞè`~£áUÚ>\96\8cÐ\89ðBÙJxgY2¼ØÜ\8cðb>À£Ú\85\81CrѼÿô§{k?&ô3¥|Â\8fÃ\92\82\14\9a¦\9a\ eek°¼,\r\v\99\9b\ 3\vñ\81À\826Âçâ`[üå\86Ûf\ eõôÖ\bÈ'4´ê.Æ\15)yÉpBN´\85*\ 4Ðåµ¢|$³+x¡Ñ©q>þ¬¥\8d°¤ÒÚ°\9fQB\1fö\19Õ\9dìZ\8bTT*¢¸áØ\830¬$\92H'[Ü ·@\vR\1a\15yúyÕ\16Ê\10®\8b«EÁ*\8bHQ\8eÎ\8d\83õg¡>@ð\94õA¹\b}\ 4+Æ\K\88\e%#Kwáu2P¶Bf\96%É`s3È`>\102\81\8fh\²a¹BIe?\b\99"QN¨\8a\97sV%Ë\89MÍ(çÂ\ 6^ÎÀǹk\87\1e¿o9¥Ð\84i\99*'\94­EÐËÒ\11DææD\10ñ\81E\10úÀóæq»÷kòäök}ï72\87a8÷óþæhwqq\8c¬$\°d\93\81l\r£\97¥1"ss0">0\8cÐGv\93ß\87¬«ª(í§R­\13µ\87ªxígU²öØÔ\8cÚ/làµ\ f|4g¤ðL\10n\14û\16\85\17\17"Ux([Iê,K&\15\9b\9b\91\a\92ÔÀ\a\1eË»{\87l¿ïê¾\8f\ 3\92\9a(JSU\86²5@^\96\ 6\84ÌÍ\ 1\84øÀ\0A\1fÙUN1óÅb\94h¡R%\ 5ª\95\92zUº¤ÈÔ\9c\92\88\94\14ú\18\rö÷\ 3¡\bãåÅʼØÆF¶º±\ 4Ú¥\9e\14v\17\94\94­$p\96%\13\88ÍÍH æ\ 3I`àãÿnbç\9b)¤Ýï\99T9¡l\r\8d\97¥Ñ ssР>04ÐÇ;lù]\95¸°¹¦2QK¨\8a×rV%k\89MͨåÂ\ 6^ËÀÇ¡í\87ï¿\9få\9c\12û¡]¤2\bdk\19ô²t\ 6\91¹9\19D|`\19\84>ðÕ\0âÆÉPA¨(\93í\ 4²52^\96&\83ÌÍ!\83øÀÈ@\1fÙKg\14\96+\14Óî\96WË     UñrΪd9±©\19å\ØÀË\19øè\9b¡Æ\17MIíG\91ò}×Ìñ\ 5\974UJ([\89Þ,KF\ f\9b\9b\11\a\12½ÀÇÛ*p\a\1fþa\16\eÿÇί\87º«/\17\8d~:\1eÛ]5Ôû8LÁ\88 EªÇP¶\ 6ÓËÒ0\91¹90\11\1f\18Lècu\95ýF|Ý7˲$%ÓfõËg Y~÷¬xI(3f¾ÒxC%\8f~\93\8c\fü\ fÄ\1fÃ\9fendstream
+endobj
+5098 0 obj <<
+/Type /Page
+/Contents 5099 0 R
+/Resources 5097 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5034 0 R
+>> endobj
+5100 0 obj <<
+/D [5098 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+5101 0 obj <<
+/D [5098 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+5102 0 obj <<
+/D [5098 0 R /XYZ 181.5683 708.3437 null]
+>> endobj
+5103 0 obj <<
+/D [5098 0 R /XYZ 71.731 698.2815 null]
+>> endobj
+5104 0 obj <<
+/D [5098 0 R /XYZ 71.731 664.8583 null]
+>> endobj
+5105 0 obj <<
+/D [5098 0 R /XYZ 71.731 653.7485 null]
+>> endobj
+5106 0 obj <<
+/D [5098 0 R /XYZ 71.731 652.5032 null]
+>> endobj
+5107 0 obj <<
+/D [5098 0 R /XYZ 129.5143 633.4246 null]
+>> endobj
+5108 0 obj <<
+/D [5098 0 R /XYZ 129.5143 633.4246 null]
+>> endobj
+5109 0 obj <<
+/D [5098 0 R /XYZ 71.731 631.9851 null]
+>> endobj
+5110 0 obj <<
+/D [5098 0 R /XYZ 71.731 631.9851 null]
+>> endobj
+5111 0 obj <<
+/D [5098 0 R /XYZ 139.477 615.4919 null]
+>> endobj
+5112 0 obj <<
+/D [5098 0 R /XYZ 139.477 615.4919 null]
+>> endobj
+5113 0 obj <<
+/D [5098 0 R /XYZ 76.7123 597.5591 null]
+>> endobj
+5114 0 obj <<
+/D [5098 0 R /XYZ 129.5143 579.6264 null]
+>> endobj
+5115 0 obj <<
+/D [5098 0 R /XYZ 129.5143 579.6264 null]
+>> endobj
+5116 0 obj <<
+/D [5098 0 R /XYZ 71.731 577.4696 null]
+>> endobj
+5117 0 obj <<
+/D [5098 0 R /XYZ 71.731 577.4696 null]
+>> endobj
+5118 0 obj <<
+/D [5098 0 R /XYZ 139.477 561.6936 null]
+>> endobj
+5119 0 obj <<
+/D [5098 0 R /XYZ 71.731 559.5368 null]
+>> endobj
+5120 0 obj <<
+/D [5098 0 R /XYZ 139.477 543.7609 null]
+>> endobj
+5121 0 obj <<
+/D [5098 0 R /XYZ 71.731 542.3213 null]
+>> endobj
+5122 0 obj <<
+/D [5098 0 R /XYZ 71.731 542.3213 null]
+>> endobj
+5123 0 obj <<
+/D [5098 0 R /XYZ 149.4396 525.8281 null]
+>> endobj
+5124 0 obj <<
+/D [5098 0 R /XYZ 149.4396 525.8281 null]
+>> endobj
+5125 0 obj <<
+/D [5098 0 R /XYZ 71.731 523.6713 null]
+>> endobj
+5126 0 obj <<
+/D [5098 0 R /XYZ 71.731 523.6713 null]
+>> endobj
+5127 0 obj <<
+/D [5098 0 R /XYZ 159.4023 507.8954 null]
+>> endobj
+5128 0 obj <<
+/D [5098 0 R /XYZ 71.731 505.7386 null]
+>> endobj
+5129 0 obj <<
+/D [5098 0 R /XYZ 159.4023 489.9626 null]
+>> endobj
+5130 0 obj <<
+/D [5098 0 R /XYZ 76.7123 472.0299 null]
+>> endobj
+5131 0 obj <<
+/D [5098 0 R /XYZ 149.4396 454.0971 null]
+>> endobj
+5132 0 obj <<
+/D [5098 0 R /XYZ 149.4396 454.0971 null]
+>> endobj
+5133 0 obj <<
+/D [5098 0 R /XYZ 71.731 451.9403 null]
+>> endobj
+5134 0 obj <<
+/D [5098 0 R /XYZ 71.731 451.9403 null]
+>> endobj
+5135 0 obj <<
+/D [5098 0 R /XYZ 159.4023 436.1644 null]
+>> endobj
+5136 0 obj <<
+/D [5098 0 R /XYZ 71.731 434.0075 null]
+>> endobj
+5137 0 obj <<
+/D [5098 0 R /XYZ 159.4023 418.2316 null]
+>> endobj
+5138 0 obj <<
+/D [5098 0 R /XYZ 76.7123 400.2989 null]
+>> endobj
+5139 0 obj <<
+/D [5098 0 R /XYZ 149.4396 382.3661 null]
+>> endobj
+5140 0 obj <<
+/D [5098 0 R /XYZ 149.4396 382.3661 null]
+>> endobj
+5141 0 obj <<
+/D [5098 0 R /XYZ 71.731 380.2093 null]
+>> endobj
+5142 0 obj <<
+/D [5098 0 R /XYZ 71.731 380.2093 null]
+>> endobj
+5143 0 obj <<
+/D [5098 0 R /XYZ 159.4023 364.4334 null]
+>> endobj
+5144 0 obj <<
+/D [5098 0 R /XYZ 71.731 362.2765 null]
+>> endobj
+5145 0 obj <<
+/D [5098 0 R /XYZ 159.4023 346.5006 null]
+>> endobj
+5146 0 obj <<
+/D [5098 0 R /XYZ 76.7123 328.5679 null]
+>> endobj
+5147 0 obj <<
+/D [5098 0 R /XYZ 149.4396 310.6351 null]
+>> endobj
+5148 0 obj <<
+/D [5098 0 R /XYZ 149.4396 310.6351 null]
+>> endobj
+5149 0 obj <<
+/D [5098 0 R /XYZ 71.731 308.4783 null]
+>> endobj
+5150 0 obj <<
+/D [5098 0 R /XYZ 71.731 308.4783 null]
+>> endobj
+5151 0 obj <<
+/D [5098 0 R /XYZ 159.4023 292.7024 null]
+>> endobj
+5152 0 obj <<
+/D [5098 0 R /XYZ 71.731 291.2628 null]
+>> endobj
+5153 0 obj <<
+/D [5098 0 R /XYZ 159.4023 274.7696 null]
+>> endobj
+5154 0 obj <<
+/D [5098 0 R /XYZ 76.7123 256.8368 null]
+>> endobj
+5155 0 obj <<
+/D [5098 0 R /XYZ 149.4396 238.9041 null]
+>> endobj
+5156 0 obj <<
+/D [5098 0 R /XYZ 149.4396 238.9041 null]
+>> endobj
+5157 0 obj <<
+/D [5098 0 R /XYZ 71.731 236.7473 null]
+>> endobj
+5158 0 obj <<
+/D [5098 0 R /XYZ 71.731 236.7473 null]
+>> endobj
+5159 0 obj <<
+/D [5098 0 R /XYZ 159.4023 220.9713 null]
+>> endobj
+5160 0 obj <<
+/D [5098 0 R /XYZ 71.731 218.8145 null]
+>> endobj
+5161 0 obj <<
+/D [5098 0 R /XYZ 159.4023 203.0386 null]
+>> endobj
+5162 0 obj <<
+/D [5098 0 R /XYZ 76.7123 185.1058 null]
+>> endobj
+5163 0 obj <<
+/D [5098 0 R /XYZ 149.4396 167.1731 null]
+>> endobj
+5164 0 obj <<
+/D [5098 0 R /XYZ 149.4396 167.1731 null]
+>> endobj
+5165 0 obj <<
+/D [5098 0 R /XYZ 71.731 165.0163 null]
+>> endobj
+5166 0 obj <<
+/D [5098 0 R /XYZ 71.731 165.0163 null]
+>> endobj
+5167 0 obj <<
+/D [5098 0 R /XYZ 159.4023 149.2403 null]
+>> endobj
+5168 0 obj <<
+/D [5098 0 R /XYZ 71.731 147.8008 null]
+>> endobj
+5169 0 obj <<
+/D [5098 0 R /XYZ 159.4023 131.3076 null]
+>> endobj
+5170 0 obj <<
+/D [5098 0 R /XYZ 76.7123 113.3748 null]
+>> endobj
+5097 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+5173 0 obj <<
+/Length 1394      
+/Filter /FlateDecode
+>>
+stream
+xÚ½\9aKoÛF\14\85÷þ\15\:@5\9d\aç\95]\e´\85\8b\ 4\b
+gÕ\14\81\96\0Y\14H
+Aÿ}G"\87º$ï<Ü \85\17¢äù\87\1fÏå\f\82º?VhF´p/Ü\12®$/6/w´xvÿúí\8e\r\92Õ YAÑÏ\8fw?þ*ha\89U\\15\8fO\85°\8aH]\16Zpb$3ÅãöÏûw»õ©«\9a7+.é='ýëÇÃúXuï×_û·?}|è7>Tݮ޶oþzüýî\97DZ¾\14\9a\8aDM
+k\88¤R\15+N\89åL¢*&,)µvÇB\r\11¥Ðã±p[hÂ.Çé\8eÅËFÕåX>s.çÞXÉ\9c
+8\9e¯:\7f½¹ð{-m\bS\18\87T\95W\e¥³á¸N}¼ÔÛêp1r5};\ 1\8e\8e0Ö¸\12\17ÕÛ\9eiÛ5ûãs¿]\ fçaÝ4ë¿\87\8f\9e&²ÅÑ\rõ\95¥¤dÔâL½j\ 5e\bÔÅhAªÒñ\91\94£uÃTý^¨\8f\e'&\9d\ fÊÅÔGOà\87!¡ï>õ\e=ë,D\9a»È\18\9eB\ 4d1D^\96F\84ÔÍA\84øÀ\10A\1fÁܼ\9eÚÐ_J(¢\18×ñ^\85ªp¯\8eªd¯bU3zua\ 3ïÕ\89\8fÓºm¿ÕÍ\16i×R\12\7fÓ®Ì\10¥m²]\81,\96E/Kg\11©\9b\93\a\96\ 3\ fÞ¹­\9aãú¥
+\93¡\94èR'»\14Èbd¼,M\ 6©\9bC\ 6ñ\81\91\81>²»4\bkh(©J\97P\96hN¨
+7ç¨J6'V5£9\176ðæ\9cø8Ö]Õþ¿\13©,\15±¥Iu&\94Eò7Ê\92ùÃêfä\ fó\81äoâc\12\ fûvS\1d.ë½úÜö\1f\8dÔq@\ e>e*Õ P\16\ 3äei@HÝ\1c@\88\ f\f\10ô\91jÐlfÌ\12)]\96K©  7\81uñ¨ZAÙ\8d\99Õ´g¶\18\8c\18e\1c­\efæ÷Zú\98¶ªC%Y)¦>\9aª;7Ç/Oûê°ÅZö²LáFL[¶\a­äý\0öý¾í¦Ü?Sʯ#^ßuuÿÚ\17[\1e¶7æ®iBò\12ÇíU+(C"º\18-\88ÛÝOQ^Z´n\18·ß\võ\ 1":\ '6n\1717\90Óré\8eGRb¨\95\1fWBíÛ`$\852Ľ\91\89HBY$\92£,\19I¬nF$1\1f\80\91?W\13\1fx\e\9f7]08Â!dF\99Dp ,\12\9cQ\96\f\ eV7#8\v\1fÓ>\1d\82\ 1\97\14Ëå®»
+rlRÍ^\98\8c\87î<r\99j@ \8aa\1cTi\8aË¢9\10g&p\86Àé©»zS\1f¾\ f¡\1feø¼"Ïó\97¶Ý\r\9fíºîÔ\ eÛ]u8V\91à²\92\bÎD
+8\90Å\88{Y\1a9R7\87ùÜ\a\ e\1dÚ8º;Ö/{tjA©§§\96Ë\88~^Ù­;¿µoggjS\1f»¦>´¡U8·Ê­FMâq\16T\85Wá£*¹
+Ǫf¬Â1\eà:ê\97e\13\1fûc8x\Q\a?\95\8aÄΫ\92©C\8af\84nn\ 2Í\1cô°?!ac\82p+YN\8b?|\1c¢¸Ý6UÛ\86\19\96\9cHK\93\10\81,FÑËÒ\18\91º9\1cç>p\90ÐÆisv½\8bÐ\14\920nf4]Þæ(÷ÛêØí¯\8bÁ&Ì\91\97DI-S\1c\81,ÆÑËÒ\1c\91º9\1cç>p\8eÐÆ®n»ï\9f½á(8Hª\88æej\19\ 4e1\90^\96\ 6\89ÔÍ\ 1\81\83\846Ú}Wá\89,]ÿSmC\89|\80A\9c.-Ý\90ýÖ·]ÕTó\0\ f³Ê¡Þ¬»j\e\8c!Úò\ 4\8a\80÷ª$w¤h\ 6ö¹     \94:ôpª\9b.ü4G¿vþîv\ 3ä˸Ã\94~~ùZ5\8bI½Zov·9\7fzBÜì~¬6\97Sâï0\ 3Ó<ÓîöJZ\11\9fæ¡*<Í\8fªä4\8f\98æ1\eÈ4?ñ\11\9bæ\99(\89µ"uE\80²X0½,\9dL¤nN4ç>ðlB\eñïìtÎu5ý¥Ê\b\80iB\15KѼ©b0\aU\9aå²h\ eÊ\99 \9c$ððï¾Pyõ\1d¦µ\97\95CjÍ\ 4T\11\84^\95D\88\14Í@87\81"\84\1eâ\8f½cYÌ}29ü` 4Ä0e£¿)\0\9aåO
+$7\842kÇ\91\8c\bþ@\0\ fC\83'\88endstream
+endobj
+5172 0 obj <<
+/Type /Page
+/Contents 5173 0 R
+/Resources 5171 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5034 0 R
+>> endobj
+5174 0 obj <<
+/D [5172 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+809 0 obj <<
+/D [5172 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+5175 0 obj <<
+/D [5172 0 R /XYZ 149.4396 708.3437 null]
+>> endobj
+5176 0 obj <<
+/D [5172 0 R /XYZ 149.4396 708.3437 null]
+>> endobj
+5177 0 obj <<
+/D [5172 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+5178 0 obj <<
+/D [5172 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+5179 0 obj <<
+/D [5172 0 R /XYZ 159.4023 690.4109 null]
+>> endobj
+5180 0 obj <<
+/D [5172 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+5181 0 obj <<
+/D [5172 0 R /XYZ 159.4023 672.4782 null]
+>> endobj
+5182 0 obj <<
+/D [5172 0 R /XYZ 76.7123 654.5454 null]
+>> endobj
+5183 0 obj <<
+/D [5172 0 R /XYZ 149.4396 636.6127 null]
+>> endobj
+5184 0 obj <<
+/D [5172 0 R /XYZ 149.4396 636.6127 null]
+>> endobj
+5185 0 obj <<
+/D [5172 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+5186 0 obj <<
+/D [5172 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+5187 0 obj <<
+/D [5172 0 R /XYZ 159.4023 618.6799 null]
+>> endobj
+5188 0 obj <<
+/D [5172 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+5189 0 obj <<
+/D [5172 0 R /XYZ 159.4023 600.7472 null]
+>> endobj
+5190 0 obj <<
+/D [5172 0 R /XYZ 76.7123 582.8144 null]
+>> endobj
+5191 0 obj <<
+/D [5172 0 R /XYZ 149.4396 564.8817 null]
+>> endobj
+5192 0 obj <<
+/D [5172 0 R /XYZ 149.4396 564.8817 null]
+>> endobj
+5193 0 obj <<
+/D [5172 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+5194 0 obj <<
+/D [5172 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+5195 0 obj <<
+/D [5172 0 R /XYZ 159.4023 546.9489 null]
+>> endobj
+5196 0 obj <<
+/D [5172 0 R /XYZ 71.731 544.7921 null]
+>> endobj
+5197 0 obj <<
+/D [5172 0 R /XYZ 159.4023 529.0162 null]
+>> endobj
+5198 0 obj <<
+/D [5172 0 R /XYZ 76.7123 475.2179 null]
+>> endobj
+5199 0 obj <<
+/D [5172 0 R /XYZ 129.5143 457.2852 null]
+>> endobj
+5200 0 obj <<
+/D [5172 0 R /XYZ 129.5143 457.2852 null]
+>> endobj
+5201 0 obj <<
+/D [5172 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+5202 0 obj <<
+/D [5172 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+5203 0 obj <<
+/D [5172 0 R /XYZ 139.477 439.3524 null]
+>> endobj
+5204 0 obj <<
+/D [5172 0 R /XYZ 71.731 401.4944 null]
+>> endobj
+5205 0 obj <<
+/D [5172 0 R /XYZ 71.731 388.4434 null]
+>> endobj
+5206 0 obj <<
+/D [5172 0 R /XYZ 71.731 387.1981 null]
+>> endobj
+5207 0 obj <<
+/D [5172 0 R /XYZ 129.5143 368.1195 null]
+>> endobj
+5208 0 obj <<
+/D [5172 0 R /XYZ 71.731 365.9627 null]
+>> endobj
+5209 0 obj <<
+/D [5172 0 R /XYZ 71.731 365.9627 null]
+>> endobj
+5210 0 obj <<
+/D [5172 0 R /XYZ 139.477 350.1868 null]
+>> endobj
+5211 0 obj <<
+/D [5172 0 R /XYZ 139.477 350.1868 null]
+>> endobj
+5212 0 obj <<
+/D [5172 0 R /XYZ 71.731 348.03 null]
+>> endobj
+5213 0 obj <<
+/D [5172 0 R /XYZ 139.477 332.254 null]
+>> endobj
+5214 0 obj <<
+/D [5172 0 R /XYZ 139.477 332.254 null]
+>> endobj
+5215 0 obj <<
+/D [5172 0 R /XYZ 71.731 330.0972 null]
+>> endobj
+5216 0 obj <<
+/D [5172 0 R /XYZ 139.477 314.3213 null]
+>> endobj
+5217 0 obj <<
+/D [5172 0 R /XYZ 139.477 314.3213 null]
+>> endobj
+5218 0 obj <<
+/D [5172 0 R /XYZ 71.731 312.1645 null]
+>> endobj
+5219 0 obj <<
+/D [5172 0 R /XYZ 71.731 312.1645 null]
+>> endobj
+5220 0 obj <<
+/D [5172 0 R /XYZ 149.4396 296.3885 null]
+>> endobj
+5221 0 obj <<
+/D [5172 0 R /XYZ 76.7123 278.4558 null]
+>> endobj
+5222 0 obj <<
+/D [5172 0 R /XYZ 139.477 260.523 null]
+>> endobj
+5223 0 obj <<
+/D [5172 0 R /XYZ 139.477 260.523 null]
+>> endobj
+5224 0 obj <<
+/D [5172 0 R /XYZ 71.731 258.3662 null]
+>> endobj
+5225 0 obj <<
+/D [5172 0 R /XYZ 139.477 242.5903 null]
+>> endobj
+5226 0 obj <<
+/D [5172 0 R /XYZ 139.477 242.5903 null]
+>> endobj
+5227 0 obj <<
+/D [5172 0 R /XYZ 71.731 241.1507 null]
+>> endobj
+5228 0 obj <<
+/D [5172 0 R /XYZ 139.477 224.6575 null]
+>> endobj
+5229 0 obj <<
+/D [5172 0 R /XYZ 139.477 224.6575 null]
+>> endobj
+5230 0 obj <<
+/D [5172 0 R /XYZ 71.731 222.5007 null]
+>> endobj
+5231 0 obj <<
+/D [5172 0 R /XYZ 139.477 206.7248 null]
+>> endobj
+5232 0 obj <<
+/D [5172 0 R /XYZ 139.477 206.7248 null]
+>> endobj
+5233 0 obj <<
+/D [5172 0 R /XYZ 71.731 205.2852 null]
+>> endobj
+5234 0 obj <<
+/D [5172 0 R /XYZ 139.477 188.792 null]
+>> endobj
+5235 0 obj <<
+/D [5172 0 R /XYZ 139.477 188.792 null]
+>> endobj
+5236 0 obj <<
+/D [5172 0 R /XYZ 71.731 186.6352 null]
+>> endobj
+5237 0 obj <<
+/D [5172 0 R /XYZ 71.731 186.6352 null]
+>> endobj
+5238 0 obj <<
+/D [5172 0 R /XYZ 149.4396 170.8593 null]
+>> endobj
+5239 0 obj <<
+/D [5172 0 R /XYZ 76.7123 152.9265 null]
+>> endobj
+5240 0 obj <<
+/D [5172 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+5241 0 obj <<
+/D [5172 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+5242 0 obj <<
+/D [5172 0 R /XYZ 71.731 132.8369 null]
+>> endobj
+5243 0 obj <<
+/D [5172 0 R /XYZ 139.477 117.061 null]
+>> endobj
+5244 0 obj <<
+/D [5172 0 R /XYZ 139.477 117.061 null]
+>> endobj
+5245 0 obj <<
+/D [5172 0 R /XYZ 71.731 114.9042 null]
+>> endobj
+5246 0 obj <<
+/D [5172 0 R /XYZ 139.477 99.1283 null]
+>> endobj
+5247 0 obj <<
+/D [5172 0 R /XYZ 139.477 99.1283 null]
+>> endobj
+5171 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+5250 0 obj <<
+/Length 1126      
+/Filter /FlateDecode
+>>
+stream
+xÚ¥\98]s£6\14\86ïó+¸´g\82ªO$ö.í¶;m·3\9e$wÝ^\10¬\ 4Z\f\19\90»\93þú\1e\19D\84-À3\99\ Ø¯tÞsx8\92!\11\86?\12I\82$\83\vM\11M\ 4\8dòÃ\r\8e^à«/7d\90Ä\83&öE?>Þüð\vÃQ\8aÒ\84&ÑãsÄÒ\ 4        É#É(R\82¨èqÿçæ§"{5ºÝÆTà\rEýuWeµ6_³§þ߻ݯýà\ fm\8afßmÿzüíæçÇ1¾`\12¥
+\82,\9a\1cU\976)\89\88D\94\bn}\ eÙ$B!\82\15\ 4ÇÄ\9a\93jóE\9bÝ\96á\8dÖíçÌdÖ\f¬\90z\89r\89\14Å2\8am¢2\91§\15vmc\1aóöª?\8d3\14ÌHN!\87¹1%(!éIoø\10§ä¿a\81³£)àJ\ 2Ac·\86\1fô³îò¶|5eS/\85epc\12Úǽ×æØÖ]\1f³*;3\f\9bçá£&Ϫᣧ¿uî¾7EfúÑà÷U»ÛÚ\15ͱÚ÷ã<Ë\vÝ\ fËz¸º%ö\90ëSÖ\r_gçÏM«Ë\97z\12ràä®ê\9a~Ôú®Í\96l\\10\9bÁ\98\0T\0X\88  TY$ì\94îdõºÙënjÎ\14å\99»ÛÑV?ø^\94yáÄÚeYUeýr^\b·\94½\8dM[\9aÌ\94[*6ÿn\89ظuMãÒïFëÎL÷VçEÛÔå\7f\99½¥Ó\eÓUÞbm\a5@c  J\98LN    ?h}f¶<¼Vú k\13Xô^?·º+vc
+cÚEc£}\ fUi\9aì±Ó{t-°wUÕ¯«\a\9bJw«\8f\8cêÙÍö\87²¾õª~eÔ\9d­YÖf\a\r­¨\8fæ÷\17BR$\ 4\91ÐÁ\14Â\8a\85û˨\8a}Yß_Ò\bz\8fÄÄ:¸\ÍZøF©¸\88K)b\9cÐ`Üóë»\ f7ëÒ\aS^\ 1  tAA8\9bú°h\ 6ÊF9Â6\82\95|\1ax3í17·g-ÚÎ\a\94ÊÜ\83©W\1e[}\99 ³ 0"\ 2ópa\9d*öeï\85%¶[O\12r²ÙÂÂÍÇ\94§Á¸ó\85u³.}L\vËRÄ¥\9cÚ¸\83ºôÛW º\ 2\9eO\ e;ãy}¡\85¸ú\ 6Êzè\97\9bt\rxØN\ f},í^K\ 1F\81\91Â)÷{û\ 2à\18Ò R¬\ 1îÉ\96\0w²uÀ\ 3\ 1<à㽪ï<ø>z\18gI¤)\86S\ 2W+$ú²\ 5\12GÙ*\89¡¸W\90xá#HâÄÆCUæº\vPÈ8\92I\9aL)ÌÚ6{Û&b3\80øÕßOÏ\ f\ 4ݸô4ÇÁ\85d\bÏ\1cÎ\9c&öD\81º\9e­4[UN _Øð\ 2\8bê&\85<xTqð\0\89\895¨àèIT"Ö òdKP9Ù:T\81¸×@uî#\f\95oãwýÖÍl\e8M?\80Ô?[\ 2Gm»?¿Í\83\ 5\r\87
+¦VÈòT\vh9Õ:[\81¨×À\15°\11¢Ë÷±\82\17Q\f1¥Ø
+^¾l\ 1¯Q¶\8aW(î\15x]ø\bâ5±ñP\9a\ 2ÏL¥ò#-Ë­\1c\ 2\8b$\ 2q!Ä2X¾j\1e¬Qµ
+V(ê\15`\85l\ 4À\9aøX\ 3Ë\ eÒ5¬FÑ\12T½h\1d©\8b\88×\05u\10ÆéÝÀ\ eÎøM\1dÂ\89Ã\81\8d§ü\ 38Áù«\9dÇéôÃS²\15\9c\ 2NNµ\8eS ê58\ 5l\84pò}\84q\1aÞ§p\85\14IÒÅ\17H\9eæòý\91 ð;\85ÀnâT6¤â³o\83\ 2\ 1ÿ\aQ\84A/endstream
+endobj
+5249 0 obj <<
+/Type /Page
+/Contents 5250 0 R
+/Resources 5248 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5034 0 R
+>> endobj
+5251 0 obj <<
+/D [5249 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+354 0 obj <<
+/D [5249 0 R /XYZ 217.6127 658.1081 null]
+>> endobj
+5252 0 obj <<
+/D [5249 0 R /XYZ 71.731 637.9677 null]
+>> endobj
+5253 0 obj <<
+/D [5249 0 R /XYZ 161.0655 625.2314 null]
+>> endobj
+5254 0 obj <<
+/D [5249 0 R /XYZ 71.731 613.1119 null]
+>> endobj
+5255 0 obj <<
+/D [5249 0 R /XYZ 71.731 582.0823 null]
+>> endobj
+5256 0 obj <<
+/D [5249 0 R /XYZ 168.8063 570.7357 null]
+>> endobj
+5257 0 obj <<
+/D [5249 0 R /XYZ 71.731 543.6723 null]
+>> endobj
+5258 0 obj <<
+/D [5249 0 R /XYZ 71.731 515.5941 null]
+>> endobj
+5259 0 obj <<
+/D [5249 0 R /XYZ 71.731 484.0125 null]
+>> endobj
+5260 0 obj <<
+/D [5249 0 R /XYZ 181.5683 473.0022 null]
+>> endobj
+5261 0 obj <<
+/D [5249 0 R /XYZ 71.731 462.94 null]
+>> endobj
+5262 0 obj <<
+/D [5249 0 R /XYZ 71.731 429.5169 null]
+>> endobj
+5263 0 obj <<
+/D [5249 0 R /XYZ 71.731 418.407 null]
+>> endobj
+5264 0 obj <<
+/D [5249 0 R /XYZ 71.731 417.1617 null]
+>> endobj
+5265 0 obj <<
+/D [5249 0 R /XYZ 129.5143 398.0832 null]
+>> endobj
+5266 0 obj <<
+/D [5249 0 R /XYZ 129.5143 398.0832 null]
+>> endobj
+5267 0 obj <<
+/D [5249 0 R /XYZ 71.731 396.6436 null]
+>> endobj
+5268 0 obj <<
+/D [5249 0 R /XYZ 71.731 396.6436 null]
+>> endobj
+5269 0 obj <<
+/D [5249 0 R /XYZ 139.477 380.1504 null]
+>> endobj
+5270 0 obj <<
+/D [5249 0 R /XYZ 139.477 380.1504 null]
+>> endobj
+5271 0 obj <<
+/D [5249 0 R /XYZ 71.731 342.2924 null]
+>> endobj
+5272 0 obj <<
+/D [5249 0 R /XYZ 71.731 329.2414 null]
+>> endobj
+5273 0 obj <<
+/D [5249 0 R /XYZ 71.731 327.9961 null]
+>> endobj
+5274 0 obj <<
+/D [5249 0 R /XYZ 129.5143 308.9175 null]
+>> endobj
+5275 0 obj <<
+/D [5249 0 R /XYZ 71.731 308.818 null]
+>> endobj
+5276 0 obj <<
+/D [5249 0 R /XYZ 71.731 308.818 null]
+>> endobj
+5277 0 obj <<
+/D [5249 0 R /XYZ 139.477 290.9848 null]
+>> endobj
+5278 0 obj <<
+/D [5249 0 R /XYZ 139.477 290.9848 null]
+>> endobj
+5279 0 obj <<
+/D [5249 0 R /XYZ 71.731 288.828 null]
+>> endobj
+5280 0 obj <<
+/D [5249 0 R /XYZ 71.731 288.828 null]
+>> endobj
+5281 0 obj <<
+/D [5249 0 R /XYZ 149.4396 273.052 null]
+>> endobj
+5282 0 obj <<
+/D [5249 0 R /XYZ 76.7123 255.1193 null]
+>> endobj
+5283 0 obj <<
+/D [5249 0 R /XYZ 139.477 237.1865 null]
+>> endobj
+5284 0 obj <<
+/D [5249 0 R /XYZ 139.477 237.1865 null]
+>> endobj
+5285 0 obj <<
+/D [5249 0 R /XYZ 71.731 235.0297 null]
+>> endobj
+5286 0 obj <<
+/D [5249 0 R /XYZ 71.731 235.0297 null]
+>> endobj
+5287 0 obj <<
+/D [5249 0 R /XYZ 149.4396 219.2538 null]
+>> endobj
+5288 0 obj <<
+/D [5249 0 R /XYZ 76.7123 201.321 null]
+>> endobj
+5289 0 obj <<
+/D [5249 0 R /XYZ 139.477 183.3883 null]
+>> endobj
+5290 0 obj <<
+/D [5249 0 R /XYZ 139.477 183.3883 null]
+>> endobj
+5291 0 obj <<
+/D [5249 0 R /XYZ 71.731 181.2315 null]
+>> endobj
+5292 0 obj <<
+/D [5249 0 R /XYZ 71.731 181.2315 null]
+>> endobj
+5293 0 obj <<
+/D [5249 0 R /XYZ 149.4396 165.4555 null]
+>> endobj
+5294 0 obj <<
+/D [5249 0 R /XYZ 76.7123 147.5228 null]
+>> endobj
+5295 0 obj <<
+/D [5249 0 R /XYZ 139.477 129.59 null]
+>> endobj
+5296 0 obj <<
+/D [5249 0 R /XYZ 139.477 129.59 null]
+>> endobj
+5297 0 obj <<
+/D [5249 0 R /XYZ 71.731 127.4332 null]
+>> endobj
+5298 0 obj <<
+/D [5249 0 R /XYZ 71.731 127.4332 null]
+>> endobj
+5299 0 obj <<
+/D [5249 0 R /XYZ 149.4396 111.6573 null]
+>> endobj
+5248 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+5302 0 obj <<
+/Length 897       
+/Filter /FlateDecode
+>>
+stream
+xÚµV]o\9c8\14}ϯୠ\ 5¯¿?ú\96mºÕVi4ªæm³\8a\98ÁÉ \11\88\80\7fß\v\ 6\ 6\ 6Ï\87TUó`<\û\9c{¸>×$Àð#\81"H1\18¨AT
+\1alßnpð
+¯¾Ü\90>$îcâiÐßë\9b¿þa80ÈH*\83õKÀ\8cDBñ@1\8a´ :X§ÿ\85\9fvÉ{c«(¦\ 2\87\14¹q\95'\85m\1e\92\8d\9bÞ­þu\ fßl³+Ó:ú\7fýõæózÄ\17L!£\ 1ä,I\8e5âR³ f\1að9óF\11ØB\10x\19K\83\11\8cÉP\13(DÚD!\991n\fk³y¢T\1c³#\90.¦Ü\ 4Ó\r\aÜãñÀcXµäÁt ATÉ;\1eÌ ®Ô\9cÆc\99ÚN¥\8eôá\v\0\8d\ 2\846ê£\135©ªäg$Exëæ\ fYݸ§òÅ\8dy¹Mr÷X\f;Ï3ì9(
+£öË?\ 4ÅÓ(\8f®Ç{\9d\94\95\13øèJzQOË:¬òÒ8(E8Ð\80\82\9dó¨\9bj¿m\16LÆR`\12IBÕ¥Â\9a\84\9d+¬!ìrayp¯)¬c\1eþÂ\9aÒH7ÏMöf=¥Å1\ 2Íø¼´Òr¿Ém_WOXà{»\89(\ e÷¯0!îïû¤I6ImÝìÅ6Û\9d{\9c\0
+Q":b1Á
+i\ 3\93XjD¤æ\1d$xJg\1fJ\87_l³\8a\18\ e­­\1e\13?[Ø\81b(ÆÖ\8a\94tÉ­ª²)\9b\9fïöã¸â G¿6¦\ 4ÔÐî\98µ8\ 3Æ\98b²ov]vKÔxØd\8azoëm\95½7YY\\8bûÝ6ûª¨{\99vYÿô\ e\>DB\84ý¼\0^½öIÿWj\9f\85MÝ4+\86\ 4¶eÑ\ 6¼ÎW­\1e>=?FL\84wß>_\9bÖ]\9e\97\11\15á\8f\ 1ë{\99Ûúb\86.Á$}Ë\8aÛCV\11Ç\83\ 6t-\87UD\ 4Ø\eÈ\0\1dÆaÏÎ\ f\81\93&\88
+\98\0h¡N4\84!*\9e\86\1dέQØ\9dÛÅn'Ï-¥\88qB½¸§Ïí°jÉc~n\aÿ\98ñh«Ò×\108Âd~f\9dÇÝ\1euÞv½-\9al\9b´\85:\8dÜWö¤!2Æ\90¢\\0ÄiØ\19C\1cÃ.\1a¢\ f÷
+C\ðð\1aâ\8cÆ\1dèân%\1eu\ 58'W|¡oV¼\ eúzd}sÛ¹\83Yºq_w"Ã\r«½B\81\19Ç\ 2#\8d\r\9fúÁé\ 2§\12\9a\98!òB\81OÃÎ\14ø\18v±À}¸W\14¸\8fǤ5\ fõ0ã1\93µuå\83\az\9b\88PHiÆ:!)\13rè!lÙCZ\17©ÿt\13©ç\1ddb~Ï­#çÍÌ\ 5«î\8bwol\9eÖ¿Óo¦\1f®¿Çs¸\1f\13iÎ^õ'1Ë\9b¾ \1a\98\16X\8b\93÷v\ fà/7]×\19endstream
+endobj
+5301 0 obj <<
+/Type /Page
+/Contents 5302 0 R
+/Resources 5300 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5034 0 R
+>> endobj
+5303 0 obj <<
+/D [5301 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+5304 0 obj <<
+/D [5301 0 R /XYZ 76.7123 708.3437 null]
+>> endobj
+5305 0 obj <<
+/D [5301 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+5306 0 obj <<
+/D [5301 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+5307 0 obj <<
+/D [5301 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+5308 0 obj <<
+/D [5301 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+5309 0 obj <<
+/D [5301 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+5310 0 obj <<
+/D [5301 0 R /XYZ 76.7123 654.5454 null]
+>> endobj
+5311 0 obj <<
+/D [5301 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+5312 0 obj <<
+/D [5301 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+810 0 obj <<
+/D [5301 0 R /XYZ 71.731 613.6986 null]
+>> endobj
+358 0 obj <<
+/D [5301 0 R /XYZ 227.1844 568.4443 null]
+>> endobj
+5313 0 obj <<
+/D [5301 0 R /XYZ 71.731 548.3039 null]
+>> endobj
+5314 0 obj <<
+/D [5301 0 R /XYZ 161.0655 535.5676 null]
+>> endobj
+5315 0 obj <<
+/D [5301 0 R /XYZ 71.731 523.4481 null]
+>> endobj
+5316 0 obj <<
+/D [5301 0 R /XYZ 71.731 492.4185 null]
+>> endobj
+5317 0 obj <<
+/D [5301 0 R /XYZ 168.8063 481.072 null]
+>> endobj
+5318 0 obj <<
+/D [5301 0 R /XYZ 71.731 468.9525 null]
+>> endobj
+5319 0 obj <<
+/D [5301 0 R /XYZ 71.731 437.5866 null]
+>> endobj
+5320 0 obj <<
+/D [5301 0 R /XYZ 181.5683 426.5763 null]
+>> endobj
+5321 0 obj <<
+/D [5301 0 R /XYZ 71.731 416.5141 null]
+>> endobj
+5322 0 obj <<
+/D [5301 0 R /XYZ 71.731 383.091 null]
+>> endobj
+5323 0 obj <<
+/D [5301 0 R /XYZ 71.731 371.9811 null]
+>> endobj
+5324 0 obj <<
+/D [5301 0 R /XYZ 71.731 370.7358 null]
+>> endobj
+5325 0 obj <<
+/D [5301 0 R /XYZ 129.5143 351.6573 null]
+>> endobj
+5326 0 obj <<
+/D [5301 0 R /XYZ 129.5143 351.6573 null]
+>> endobj
+5327 0 obj <<
+/D [5301 0 R /XYZ 71.731 350.2177 null]
+>> endobj
+5328 0 obj <<
+/D [5301 0 R /XYZ 71.731 350.2177 null]
+>> endobj
+5329 0 obj <<
+/D [5301 0 R /XYZ 139.477 333.7245 null]
+>> endobj
+5330 0 obj <<
+/D [5301 0 R /XYZ 139.477 333.7245 null]
+>> endobj
+5331 0 obj <<
+/D [5301 0 R /XYZ 71.731 295.8665 null]
+>> endobj
+5332 0 obj <<
+/D [5301 0 R /XYZ 71.731 282.8155 null]
+>> endobj
+5333 0 obj <<
+/D [5301 0 R /XYZ 71.731 281.5702 null]
+>> endobj
+5334 0 obj <<
+/D [5301 0 R /XYZ 129.5143 262.4916 null]
+>> endobj
+811 0 obj <<
+/D [5301 0 R /XYZ 71.731 255.3535 null]
+>> endobj
+362 0 obj <<
+/D [5301 0 R /XYZ 189.6208 212.256 null]
+>> endobj
+5335 0 obj <<
+/D [5301 0 R /XYZ 71.731 192.1156 null]
+>> endobj
+5336 0 obj <<
+/D [5301 0 R /XYZ 161.0655 179.3793 null]
+>> endobj
+5337 0 obj <<
+/D [5301 0 R /XYZ 71.731 167.2598 null]
+>> endobj
+5338 0 obj <<
+/D [5301 0 R /XYZ 71.731 135.8939 null]
+>> endobj
+5339 0 obj <<
+/D [5301 0 R /XYZ 168.8063 124.8837 null]
+>> endobj
+5300 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+5342 0 obj <<
+/Length 1401      
+/Filter /FlateDecode
+>>
+stream
+xÚ½Y]oÛ6\14}ϯÐc\fÔ\1c?E©oÙ°\ 5\1d2ÀHݧu(\14[i\84*r Ë(òïw%\8a2e]\8aJ\87\ e}\90\1c\1dò\1e\1e\9dÃ\8f\8aE\14þ±H3¢\ 5\xJx¬x´{¾¢ÑWxt{ÅzȺǬ]Я۫_þ\104JI\1aó8Ú>F"\8d\89Ò2Ò\82\93D±$Úîÿ¾þí){iòzµæ\8a^sb®\9b2«òæ.{0?o6\1fÌÍ_yótØ\1fWÿlÿ¼ú};ÔWB\934\81"³$\aÔ\94&O£\ 4hƲ¥Éà©bRD\9a&DH¡;\9e÷ysª«£á\91Uýµ®³Ws{x4×cS\9fvM\8fÛ\1dª&+ª¢új~ïsøYÚN\1e\ e§Æܾäy}ìÇþáÑþ­>\1eª/\9f)åå PÑ·=¾ä»¢}\94ï-£ý\181C±­ÖJ\b²¬\19\8aE7Äb\9fW\8déµî{9ÔN\93î®Ê\9eóã»ñÓÌ\1d:RË\80\9a¦.\1eV\9c^\9f\9as\ fUùêH`n\9f³f÷4hÖ<åæf¬Ä÷¢,ÍÝCÿ¼îÞP¾?ë\88\8cÑ\80:Uór\7fôª:á7Ð\98H?z©s´\80Ngµs"ÖýíºM\84\8e\8dÓnÊò°âêú»-p\7f(óãû¡ùÙ©¶5\87\ 1²$íZgûç¢êÙW\87}¾´êfÅ\14\98\ 5Þ.Hlª¹\11c\f\98\8e\94Ö\84\v\88\r¨µ\v³\11\83øiʺ\88Mzk)|æ\Mêr\ e\19d\1c­{y=ó°­¦<D\82E}Ä#;5O\88l\\12ÚVh!ï]Ç¿»\98¥Úöm\92vYS\1c*\17yªóé\0-\ 5\95\12\14*¬E­]ØYXÖN¿£\ 1Y\98WXxù\94Ë\14­ë\17Ö¶\9aò\18\v+R"µ\1eÓ¸\ 1\f\8e¨«b\12KX\1c\85yÀê\8bÈúlº3   =\98ëé\98ûÝË\ 5\81\19\9d\85ÜëÀæÜkaa÷"u\97¸÷\92\87ǽ.\8fv"ýòXt3åTæ\98\914ej,3²F\14U3\9eãÍ«\98ü­\9dð½\8e¦\8a(*eÈÑ\ elÎÑ\16\16v4Rw\89£\11\1e\ 6G»4Þ Ü\84¬éN&\1aöDÌ\93ú\1e´vQ\88D\97}y\15\92ðöaÆG«ú\15²­P\1a\8eB\12\1e\ 3ôèó»\19\ 2îFÃ+L\9c\92X$I@\18\a5#\8cE\85\85Aª.\11\ 6¡\81    ãò\18Ím\9bÑþÊ\9b()\ 4ÑZ\88@¢\ØL¢\ 6X0QXÝ\ 5\89ÂxL\135¢1^QÝ-ãÅ&Ðg\e¦H"i(O\ ejÆ6\16\15\rRu\89m.i\8c§÷Á6.\8foù+2­Ã\8a$4¼Rdõ¼Øª£'\16l\82²ÕE
++\1fÕ\9e ZÔÚ\85!\92Nzójª@\1dE9Zׯ©m\85òpt\82ý\88¤\\8cyx¢x»¹íÏ&§\87²Ø\99ûo+F¯óv³üê\97LCE­XH2\a6'\99\85\85%Cê.\91\fá\81Iæòðú迫اOHI\18M\ 3IvQþ$\ f¨`\92±ª\v\92\81'yÄc\97íòºAÂ,$Ñ1\80~F\98y\fâÄÁ0;°9gZXØ\99HÝ%ÎDx`ÎtyxløñãÝÔ\86í\vèö!p¦Èý¢Ñ\84p)\83qv`s¢YXX4¤î\12Ñ\10\1e\98h.\8fåqþ\ 1\1dû\10r\rÇ\1a\9d\ 4\ 2í¢ü\81\1ePÁ@cU\17\ 4zB\ 3\ fô\88Gwò*°Ã­¤pfHÆ\81\9e\1c\14<\87        \9f\92DJ\15\8a²\v\9b\0\vº\12«»À\95\18\ fÄ\95#\1eo>;\f£\111lqE(±.lN\e\v\vk\83Ô]¢\rÂ\ 3ÓÆå\81»å\87\8eZ\9cÒöÿ^BÁtP3Á´¨p0\91ªK\82yIÃ\13L\97G\eL{®ºL&\9cæyÊ\7fÆZË\12N4\93¡\80º°\19\13\ e°     ±º\vL\88ñ@L8âñ\963ì0\90\18¶7     \ f\85ÍÉbaaY\90ºKdAx`²¸<\96¯¦¨R}\94\18\a_³8\10K\17å\8få\80
\12«º \96\13\1ax,G<ºõòT\97ÿs,\19\ 5Î"\18K\a6ç?\v\vû\ f©»Ä\7f\b\ fÌ\7f.\ f\8fÙ\86\ f\14\9fîï.iö_peB\12\16§³\1fy\1dÌô\e¯â\1a\9eÂ^Ç¢Z>Iìýb\8b\14ü\17D\8b½endstream
+endobj
+5341 0 obj <<
+/Type /Page
+/Contents 5342 0 R
+/Resources 5340 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5410 0 R
+>> endobj
+5343 0 obj <<
+/D [5341 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+5344 0 obj <<
+/D [5341 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+5345 0 obj <<
+/D [5341 0 R /XYZ 71.731 663.1647 null]
+>> endobj
+5346 0 obj <<
+/D [5341 0 R /XYZ 181.5683 652.1544 null]
+>> endobj
+5347 0 obj <<
+/D [5341 0 R /XYZ 71.731 642.0922 null]
+>> endobj
+5348 0 obj <<
+/D [5341 0 R /XYZ 71.731 609.3146 null]
+>> endobj
+5349 0 obj <<
+/D [5341 0 R /XYZ 71.731 597.5592 null]
+>> endobj
+5350 0 obj <<
+/D [5341 0 R /XYZ 71.731 596.3139 null]
+>> endobj
+5351 0 obj <<
+/D [5341 0 R /XYZ 129.5143 577.2354 null]
+>> endobj
+5352 0 obj <<
+/D [5341 0 R /XYZ 129.5143 577.2354 null]
+>> endobj
+5353 0 obj <<
+/D [5341 0 R /XYZ 71.731 575.7958 null]
+>> endobj
+5354 0 obj <<
+/D [5341 0 R /XYZ 71.731 575.7958 null]
+>> endobj
+5355 0 obj <<
+/D [5341 0 R /XYZ 139.477 559.3026 null]
+>> endobj
+5356 0 obj <<
+/D [5341 0 R /XYZ 139.477 559.3026 null]
+>> endobj
+5357 0 obj <<
+/D [5341 0 R /XYZ 76.7123 541.3699 null]
+>> endobj
+5358 0 obj <<
+/D [5341 0 R /XYZ 129.5143 523.4371 null]
+>> endobj
+5359 0 obj <<
+/D [5341 0 R /XYZ 129.5143 523.4371 null]
+>> endobj
+5360 0 obj <<
+/D [5341 0 R /XYZ 71.731 521.2803 null]
+>> endobj
+5361 0 obj <<
+/D [5341 0 R /XYZ 71.731 521.2803 null]
+>> endobj
+5362 0 obj <<
+/D [5341 0 R /XYZ 139.477 505.5044 null]
+>> endobj
+5363 0 obj <<
+/D [5341 0 R /XYZ 71.731 503.3475 null]
+>> endobj
+5364 0 obj <<
+/D [5341 0 R /XYZ 71.731 503.3475 null]
+>> endobj
+5365 0 obj <<
+/D [5341 0 R /XYZ 149.4396 487.5716 null]
+>> endobj
+5366 0 obj <<
+/D [5341 0 R /XYZ 71.731 486.1321 null]
+>> endobj
+5367 0 obj <<
+/D [5341 0 R /XYZ 149.4396 469.6388 null]
+>> endobj
+5368 0 obj <<
+/D [5341 0 R /XYZ 76.7123 451.7061 null]
+>> endobj
+5369 0 obj <<
+/D [5341 0 R /XYZ 139.477 433.7733 null]
+>> endobj
+5370 0 obj <<
+/D [5341 0 R /XYZ 71.731 432.3338 null]
+>> endobj
+5371 0 obj <<
+/D [5341 0 R /XYZ 71.731 432.3338 null]
+>> endobj
+5372 0 obj <<
+/D [5341 0 R /XYZ 149.4396 415.8406 null]
+>> endobj
+5373 0 obj <<
+/D [5341 0 R /XYZ 149.4396 415.8406 null]
+>> endobj
+5374 0 obj <<
+/D [5341 0 R /XYZ 71.731 413.6838 null]
+>> endobj
+5375 0 obj <<
+/D [5341 0 R /XYZ 71.731 413.6838 null]
+>> endobj
+5376 0 obj <<
+/D [5341 0 R /XYZ 159.4023 397.9078 null]
+>> endobj
+5377 0 obj <<
+/D [5341 0 R /XYZ 71.731 395.751 null]
+>> endobj
+5378 0 obj <<
+/D [5341 0 R /XYZ 159.4023 379.9751 null]
+>> endobj
+5379 0 obj <<
+/D [5341 0 R /XYZ 76.7123 362.0423 null]
+>> endobj
+5380 0 obj <<
+/D [5341 0 R /XYZ 149.4396 344.1096 null]
+>> endobj
+5381 0 obj <<
+/D [5341 0 R /XYZ 149.4396 344.1096 null]
+>> endobj
+5382 0 obj <<
+/D [5341 0 R /XYZ 71.731 341.9528 null]
+>> endobj
+5383 0 obj <<
+/D [5341 0 R /XYZ 71.731 341.9528 null]
+>> endobj
+5384 0 obj <<
+/D [5341 0 R /XYZ 159.4023 326.1768 null]
+>> endobj
+5385 0 obj <<
+/D [5341 0 R /XYZ 71.731 324.02 null]
+>> endobj
+5386 0 obj <<
+/D [5341 0 R /XYZ 159.4023 308.2441 null]
+>> endobj
+5387 0 obj <<
+/D [5341 0 R /XYZ 76.7123 290.3113 null]
+>> endobj
+5388 0 obj <<
+/D [5341 0 R /XYZ 149.4396 272.3786 null]
+>> endobj
+5389 0 obj <<
+/D [5341 0 R /XYZ 149.4396 272.3786 null]
+>> endobj
+5390 0 obj <<
+/D [5341 0 R /XYZ 71.731 270.2217 null]
+>> endobj
+5391 0 obj <<
+/D [5341 0 R /XYZ 71.731 270.2217 null]
+>> endobj
+5392 0 obj <<
+/D [5341 0 R /XYZ 159.4023 254.4458 null]
+>> endobj
+5393 0 obj <<
+/D [5341 0 R /XYZ 71.731 253.0063 null]
+>> endobj
+5394 0 obj <<
+/D [5341 0 R /XYZ 159.4023 236.5131 null]
+>> endobj
+5395 0 obj <<
+/D [5341 0 R /XYZ 76.7123 218.5803 null]
+>> endobj
+5396 0 obj <<
+/D [5341 0 R /XYZ 149.4396 200.6476 null]
+>> endobj
+5397 0 obj <<
+/D [5341 0 R /XYZ 149.4396 200.6476 null]
+>> endobj
+5398 0 obj <<
+/D [5341 0 R /XYZ 71.731 198.4907 null]
+>> endobj
+5399 0 obj <<
+/D [5341 0 R /XYZ 71.731 198.4907 null]
+>> endobj
+5400 0 obj <<
+/D [5341 0 R /XYZ 159.4023 182.7148 null]
+>> endobj
+5401 0 obj <<
+/D [5341 0 R /XYZ 71.731 180.558 null]
+>> endobj
+5402 0 obj <<
+/D [5341 0 R /XYZ 159.4023 164.7821 null]
+>> endobj
+5403 0 obj <<
+/D [5341 0 R /XYZ 76.7123 146.8493 null]
+>> endobj
+5404 0 obj <<
+/D [5341 0 R /XYZ 149.4396 128.9166 null]
+>> endobj
+5405 0 obj <<
+/D [5341 0 R /XYZ 149.4396 128.9166 null]
+>> endobj
+5406 0 obj <<
+/D [5341 0 R /XYZ 71.731 126.7597 null]
+>> endobj
+5407 0 obj <<
+/D [5341 0 R /XYZ 71.731 126.7597 null]
+>> endobj
+5408 0 obj <<
+/D [5341 0 R /XYZ 159.4023 110.9838 null]
+>> endobj
+5409 0 obj <<
+/D [5341 0 R /XYZ 71.731 108.827 null]
+>> endobj
+5340 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+5413 0 obj <<
+/Length 1150      
+/Filter /FlateDecode
+>>
+stream
+xÚ½\99Koã6\14\85÷ù\15ZÚ@Íò)\92³\9b\16mÐ"\ 5\82\19wÕ)\ 2\8f­\8c\85ÉØ\81,·È¿ï\95\94tI*è ÈB~\1cñ\1e\1e\94b\96Qøc\99fD\v8pKx®x¶ývC³/ðÕí\rë$«N³òE?­o~üUÐÌ\12\9bó<[?fÂæDi\99\89QÌdëÝ_\8b\9f÷\9b纨\96+®è\82\93öxÿ´9\14õÝæsûöýýoí\8b?\8az\7fÜ\9d\96\7f¯\7f¿ùeÝ×WB\13k HÔ¤0\86()²\15§Är¦P\11\93\96H0
+s¡\86\b)t?\17n3MX3O\98K¯ëeÍd>q®Ææ\98bÄ*Ê3\7f@Ww|¼úpg¡>®\992\ 5>(\17C\1f\9bªÚ¼´\91\1d\1fÛã©®ÊÃ\97\1fº|\v\97x\1fí\9f\1fî&Î\99%J1\9då"'9ã\1aOÌ©V¾ì\9a\98Õ´Ml2Z01Îa*\8c£uÃ\89¹³¦>\84É\f$\96Ë\8b\ f`D1à`à£*êsuxx,\8b§\96¯QÎ\9a\13É\8d\80R\8dú]\9bY\e\16]¬wå©\1e¦þ\89R~\19ñò®>¶Ç¶ØtÚÎ\183$×Öâq;ÕÊ\97!\80NF\vÆ\rË\91riѺá¸ÝY¨\ f\ fP\ 1\80j=´ÑÂØ\18\81\81\15ÌGQb¨\95\17Á\87KB§wA$\95ÔDJÍ\12Hú²\b\92½,\89$Vw\ 6\92\98\ f/#w­\ 6>ðE|ÞÖAp\94{\11\aÇ\97EÀéeIp°º3À\99ø\18®Ó\ e\9c\81\8dÃqW<\94è
+\95\8a\80\94¿v\856#vËóñØ5Å\7f÷åvß-Ù}Ù}ûÜ÷L÷Éæ\f»QUÖ\9bº\rµøgÉÔ¢\98\86ÔM\83\fËñkÓ\89
+¹4ã±\82WFÂîat\8eV\r_\19w\16jÃÃÕí}\ 3\1få!\f¦Ô\8aèÐÜ{.=U\ 4K§JR\89\14\9d\ 1åØ\ 4ʤïákñ\12"\92\12\88\96ȯKF\81#\80éå-À\94J\13m\84\88\83é«Â`öª$\98\19`b6\100\a>¢`r\18\99i\93\93ÅÐt²4\9bHÝ9p\8e}àtú6\9e\8bêt<\ 4\bU9áÆ\98×\12z>Á o\81&\15pÝU\82Ì«(\ 2f'Js9-9\aË©\a\8cJÏD\fJ\91\e\ 2·&*\ 1¥/\8b@ÙË\92Pbug@9ñ\81B9°ÑpqØ|+ænã\81\87\177\ 4\9e"ÜO2\93§\96¶/\8b¥èdé\14\91ºsR\1cûÀSôm4)>\9c«§ÿ\99\11°\9f?\18åJ¦Â¼ªbYvªt\94Ó¢s\92\1c\99À\83ô<\9c\9eÊmè®\12ò¶Ô¾¶A^F|\8b\ e)\98$\82³Äæí«Â=²W%\9b$VuF\97Äl mrà#Ö'¹6D*\95Zá¾,Be/Kb\89Õ\9dÁåÄ\a
+æÀ\ 6Ü["LÂS«ÐRÌZÜ·÷·\1dhçÏ\0åä\ e3\1cnN¡\85¤\1e%=U,ÚN\95NvZtN°#\13\9e\87íf[T5\92¬\90\80à\9cd?~¼\9b\8c[6ÿôÙnêðÖÄ%'ÊÒd¸\9e,\96®\93¥ãEêÎÉwì\ 3\ fØ·q*ëïü\9cÞ\8cø\16\1d\95sIr¥\137\9d¾*ÜQ{U²£bUgtTÌ\ 6ÒQ\a>b\1d\95\19C´å       .=U\ 4K§JR\89\14\9d\ 1åØ\ 4ʤïár·TîðçtEõh\93\87\98&K¾Ü\15\87vyÃ'£ét?\81HC\fËmôW\12O3ý\91Dq\r×
+v?§j<\19\1düÉ\ 3\1fù\r\96\8dendstream
+endobj
+5412 0 obj <<
+/Type /Page
+/Contents 5413 0 R
+/Resources 5411 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5410 0 R
+>> endobj
+5414 0 obj <<
+/D [5412 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+5415 0 obj <<
+/D [5412 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+5416 0 obj <<
+/D [5412 0 R /XYZ 159.4023 708.3437 null]
+>> endobj
+5417 0 obj <<
+/D [5412 0 R /XYZ 76.7123 654.5454 null]
+>> endobj
+5418 0 obj <<
+/D [5412 0 R /XYZ 129.5143 636.6127 null]
+>> endobj
+5419 0 obj <<
+/D [5412 0 R /XYZ 129.5143 636.6127 null]
+>> endobj
+5420 0 obj <<
+/D [5412 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+5421 0 obj <<
+/D [5412 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+5422 0 obj <<
+/D [5412 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+5423 0 obj <<
+/D [5412 0 R /XYZ 71.731 580.8219 null]
+>> endobj
+5424 0 obj <<
+/D [5412 0 R /XYZ 71.731 567.7709 null]
+>> endobj
+5425 0 obj <<
+/D [5412 0 R /XYZ 71.731 566.5256 null]
+>> endobj
+5426 0 obj <<
+/D [5412 0 R /XYZ 129.5143 547.4471 null]
+>> endobj
+5427 0 obj <<
+/D [5412 0 R /XYZ 71.731 545.2902 null]
+>> endobj
+5428 0 obj <<
+/D [5412 0 R /XYZ 71.731 545.2902 null]
+>> endobj
+5429 0 obj <<
+/D [5412 0 R /XYZ 139.477 529.5143 null]
+>> endobj
+5430 0 obj <<
+/D [5412 0 R /XYZ 139.477 529.5143 null]
+>> endobj
+5431 0 obj <<
+/D [5412 0 R /XYZ 71.731 527.3575 null]
+>> endobj
+5432 0 obj <<
+/D [5412 0 R /XYZ 71.731 527.3575 null]
+>> endobj
+5433 0 obj <<
+/D [5412 0 R /XYZ 149.4396 511.5816 null]
+>> endobj
+5434 0 obj <<
+/D [5412 0 R /XYZ 76.7123 493.6488 null]
+>> endobj
+5435 0 obj <<
+/D [5412 0 R /XYZ 139.477 475.716 null]
+>> endobj
+5436 0 obj <<
+/D [5412 0 R /XYZ 139.477 475.716 null]
+>> endobj
+5437 0 obj <<
+/D [5412 0 R /XYZ 71.731 473.5592 null]
+>> endobj
+5438 0 obj <<
+/D [5412 0 R /XYZ 71.731 473.5592 null]
+>> endobj
+5439 0 obj <<
+/D [5412 0 R /XYZ 149.4396 457.7833 null]
+>> endobj
+5440 0 obj <<
+/D [5412 0 R /XYZ 76.7123 439.8505 null]
+>> endobj
+5441 0 obj <<
+/D [5412 0 R /XYZ 139.477 421.9178 null]
+>> endobj
+5442 0 obj <<
+/D [5412 0 R /XYZ 139.477 421.9178 null]
+>> endobj
+5443 0 obj <<
+/D [5412 0 R /XYZ 71.731 419.761 null]
+>> endobj
+5444 0 obj <<
+/D [5412 0 R /XYZ 71.731 419.761 null]
+>> endobj
+5445 0 obj <<
+/D [5412 0 R /XYZ 149.4396 403.985 null]
+>> endobj
+5446 0 obj <<
+/D [5412 0 R /XYZ 76.7123 386.0523 null]
+>> endobj
+5447 0 obj <<
+/D [5412 0 R /XYZ 139.477 368.1195 null]
+>> endobj
+5448 0 obj <<
+/D [5412 0 R /XYZ 139.477 368.1195 null]
+>> endobj
+5449 0 obj <<
+/D [5412 0 R /XYZ 71.731 365.9627 null]
+>> endobj
+5450 0 obj <<
+/D [5412 0 R /XYZ 139.477 350.1868 null]
+>> endobj
+5451 0 obj <<
+/D [5412 0 R /XYZ 139.477 350.1868 null]
+>> endobj
+5452 0 obj <<
+/D [5412 0 R /XYZ 71.731 348.03 null]
+>> endobj
+5453 0 obj <<
+/D [5412 0 R /XYZ 139.477 332.254 null]
+>> endobj
+5454 0 obj <<
+/D [5412 0 R /XYZ 139.477 332.254 null]
+>> endobj
+5455 0 obj <<
+/D [5412 0 R /XYZ 71.731 330.0972 null]
+>> endobj
+5456 0 obj <<
+/D [5412 0 R /XYZ 71.731 330.0972 null]
+>> endobj
+5457 0 obj <<
+/D [5412 0 R /XYZ 149.4396 314.3213 null]
+>> endobj
+5458 0 obj <<
+/D [5412 0 R /XYZ 76.7123 296.3885 null]
+>> endobj
+5459 0 obj <<
+/D [5412 0 R /XYZ 139.477 278.4558 null]
+>> endobj
+5460 0 obj <<
+/D [5412 0 R /XYZ 139.477 278.4558 null]
+>> endobj
+5461 0 obj <<
+/D [5412 0 R /XYZ 71.731 276.2989 null]
+>> endobj
+5462 0 obj <<
+/D [5412 0 R /XYZ 139.477 260.523 null]
+>> endobj
+5463 0 obj <<
+/D [5412 0 R /XYZ 139.477 260.523 null]
+>> endobj
+5464 0 obj <<
+/D [5412 0 R /XYZ 71.731 258.3662 null]
+>> endobj
+5465 0 obj <<
+/D [5412 0 R /XYZ 139.477 242.5903 null]
+>> endobj
+5466 0 obj <<
+/D [5412 0 R /XYZ 139.477 242.5903 null]
+>> endobj
+5467 0 obj <<
+/D [5412 0 R /XYZ 71.731 240.4334 null]
+>> endobj
+5468 0 obj <<
+/D [5412 0 R /XYZ 71.731 240.4334 null]
+>> endobj
+5469 0 obj <<
+/D [5412 0 R /XYZ 149.4396 224.6575 null]
+>> endobj
+5470 0 obj <<
+/D [5412 0 R /XYZ 76.7123 206.7248 null]
+>> endobj
+5471 0 obj <<
+/D [5412 0 R /XYZ 139.477 188.792 null]
+>> endobj
+5472 0 obj <<
+/D [5412 0 R /XYZ 139.477 188.792 null]
+>> endobj
+812 0 obj <<
+/D [5412 0 R /XYZ 71.731 165.8779 null]
+>> endobj
+5411 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+5475 0 obj <<
+/Length 1376      
+/Filter /FlateDecode
+>>
+stream
+xÚµY]o£8\14}ï¯à1\91\1a/6\18üuö£\9aÕ®\14Ív\9e¶«\11\rn\83\ 2gGý÷{\r\18\f\>V£Q\1f áØ÷Üãs}MC\1d\17þ¨#(\11\1e\XDXÀ\99sºÜ¹Î\e<z¼£-äÐb\ e6èãÓÝO¿y®\13\91(`\81óôêxQ@¸ð\1dá1\12r\1a:OÉß»\9fÏñUÉr\7f`ÜÝ1Ò\\8fY\9cKõGüÒ||8~jnþ\94ê\$Õþ\9f§ßï~}êâsO\90(\84 \8b$;Ô\94\ e\15\84Qîk\9e&c\97\13á\v\ 4ƾ&'ÂÝ£Tǽçî\804廪Èk>0Idåê\v\122W8\a\9d«\b\9aI\8e
+õ~\95\1fº\11!\8c\bê¨íØ\ 3£$ aT\ fСdY\87¨ó\7f\eßÔù¾ùx­\9f}}v]\96i\r}w×>)¥º\95Í\13\99%\15\8c£\bÉ\83\89i\93üEV§2½ª´È\97hz°\96\ 1kh~®£µ\1cã¼½\96eüÞÜ\16¯ÍµRåí¤ZÜ©ÈU\9cæiþÖ|N$|ÌÌ$/ÅM5··
+²l}ñé\15O¼þ2mÇVWyJëÌ\13Ã(\19"\16(êh:k°Ì\81ÂJðÀ«SL\13\99«fÖ²\9d¥(û!y|\91ÕýðûØN\1a\89Ò\80\94\97=\83ïT?C\9e½[É7·\97X\9dÎ\9dZê,\8d%l\r¾¥YÖܽHÛ    2é\15\eÙeVÏ      ¿\8eÆDôÁr.Ñ2t\ 2\12x"¨é|é³îÖNÉÓ¹Sâ}Ì\ 3¦+S¹g|÷¯.J¹l)`}©dÖ@\8d·\8e\9fÆÓ\7fϤ={Dî\ 2°]\82ýð´]Ä*U\1d«\87ä\92æc-ò"\91ßG66ë\11\9fNÅ-W\15Ùº=<dY¡£|3\vý¹ÈdµuC\8bu:f÷Jï­jè÷.½Ò÷}¢[\89\1duÚq      \85\bÕÐ\10²{\ 4¥\11á\9c
+Çg\8cøÔÅ{D\87:Ø°¦GD\ eô\ fáRÍ`:\9b¦ðÌ\18\9fÄ\ 5\80çS\86Æ\1d_{\1e\94\87\17Z\1aSèd\9cúÞ\90\87n\11\88lÌ'®\8e !\1fìÍé~Ôfõx½Ý\9d\ 5lä­\94Ó\ 4\r\ 5×'Ð.9.¬A\1dlX/,Õ\1dw\90\90\81Í
+\v\8bï2?BãÎ\vkFMy\f\85õ"ýtHã\ 1ti\8e \88º\1c60\1fN7c}aË6ú"²^\9aé\1aã\17]=̺×\vB¨¦5óZ¨\ 5ï\1aÔªu\91 \e\9c;&\81\e×&Ѷõ×´nhS\89\ 5#\82Ó\91\85\91&\9eæjØ\8a\9be\98|§ûò\9c\9b\92@DlÅÍ6lÁÍ\1dlÕÍXÜ\rnÆxôÂ\197\ f\ fá&dÛé ¼ð\83\99\8aoA\a\e\85H4\9ekV!\9fÂñ\1dN\bXÔy\85Ì(\94\86¥\90\ f\ 5\ 3ôhk÷Kwb³O\82³ÂP\9f\84Ô\13+ÂX¨\ 5a\fj]\18\16a\10\1a\9806\8fÁ¾v,ÓK\¶V\92\87\v\9c8ÚÒL\92RVÕl\8dÁÛ\14\89üp­ÆlØB\8du°Õ\1aÃân¨1\8cÇ´Æ\ 64\86ýÕ>ë\8fNï3Fb\ 1\85\9eÍW*ÌFÍ\e©C­\1a        \8bºÁH\13\1aÃ\1dß\18iÀã%-\90\8d\9eBOð\90³Êd\13Ç_2±-«\8bî{Ä\rÙLi\1aÔÁ\86!\92Nf\9bÕ\94\83:\1cÎeXÜyMÍ(\94\87¥\13\a\1e\86<\ 6Åù1-ÞÊøzÞóÝû¼(\8c\13Ê×$é@K\824 u9&\11·\881a\80IÑ3\98\16mÚª\817\17ÂB\7f¥\ 2mÔ|\ 5v¨Õ
+Ä¢n¨À  \r¼\ 2\a<^Ó²R_õ?0ðC-\váÝí\a\14"\15\94\18ºì:\e¶à»\ e¶ê<,î\ 6ïa<\10÷\rx\fÌö\98ö/çíáß\88\8eëÃ=x£\8bÖäéQKê´¨uq¦A·h3%\81Ic\91X«Ì­b\99¢\ 2^i¼µ"µP\vEjPëE\8aDÝR¤c\1a3EjóÈâ\85\1auIäF?¤YF\11   ô\7f±\97=h¡\16<hP«\1eD\82nð B\ 2ñ Mb`¸¿n%f°ö§\0?\84£o\10-þöaa¦?}p\16Â\99'\8aº\994\810\9cý!\ 3  ø\1fDìÛ\89endstream
+endobj
+5474 0 obj <<
+/Type /Page
+/Contents 5475 0 R
+/Resources 5473 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5410 0 R
+>> endobj
+5476 0 obj <<
+/D [5474 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+366 0 obj <<
+/D [5474 0 R /XYZ 210.6581 705.7477 null]
+>> endobj
+5477 0 obj <<
+/D [5474 0 R /XYZ 71.731 685.6073 null]
+>> endobj
+5478 0 obj <<
+/D [5474 0 R /XYZ 161.0655 672.871 null]
+>> endobj
+5479 0 obj <<
+/D [5474 0 R /XYZ 71.731 660.7515 null]
+>> endobj
+5480 0 obj <<
+/D [5474 0 R /XYZ 71.731 551.5774 null]
+>> endobj
+5481 0 obj <<
+/D [5474 0 R /XYZ 71.731 508.3396 null]
+>> endobj
+5482 0 obj <<
+/D [5474 0 R /XYZ 181.5683 497.3293 null]
+>> endobj
+5483 0 obj <<
+/D [5474 0 R /XYZ 71.731 487.2671 null]
+>> endobj
+5484 0 obj <<
+/D [5474 0 R /XYZ 71.731 453.8439 null]
+>> endobj
+5485 0 obj <<
+/D [5474 0 R /XYZ 71.731 442.7341 null]
+>> endobj
+5486 0 obj <<
+/D [5474 0 R /XYZ 71.731 441.4888 null]
+>> endobj
+5487 0 obj <<
+/D [5474 0 R /XYZ 129.5143 422.4102 null]
+>> endobj
+5488 0 obj <<
+/D [5474 0 R /XYZ 129.5143 422.4102 null]
+>> endobj
+5489 0 obj <<
+/D [5474 0 R /XYZ 71.731 420.9707 null]
+>> endobj
+5490 0 obj <<
+/D [5474 0 R /XYZ 71.731 420.9707 null]
+>> endobj
+5491 0 obj <<
+/D [5474 0 R /XYZ 139.477 404.4775 null]
+>> endobj
+5492 0 obj <<
+/D [5474 0 R /XYZ 139.477 404.4775 null]
+>> endobj
+5493 0 obj <<
+/D [5474 0 R /XYZ 76.7123 386.5447 null]
+>> endobj
+5494 0 obj <<
+/D [5474 0 R /XYZ 129.5143 368.612 null]
+>> endobj
+5495 0 obj <<
+/D [5474 0 R /XYZ 129.5143 368.612 null]
+>> endobj
+5496 0 obj <<
+/D [5474 0 R /XYZ 71.731 366.4552 null]
+>> endobj
+5497 0 obj <<
+/D [5474 0 R /XYZ 71.731 366.4552 null]
+>> endobj
+5498 0 obj <<
+/D [5474 0 R /XYZ 139.477 350.6792 null]
+>> endobj
+5499 0 obj <<
+/D [5474 0 R /XYZ 71.731 348.5224 null]
+>> endobj
+5500 0 obj <<
+/D [5474 0 R /XYZ 71.731 348.5224 null]
+>> endobj
+5501 0 obj <<
+/D [5474 0 R /XYZ 149.4396 332.7465 null]
+>> endobj
+5502 0 obj <<
+/D [5474 0 R /XYZ 71.731 331.3069 null]
+>> endobj
+5503 0 obj <<
+/D [5474 0 R /XYZ 149.4396 314.8137 null]
+>> endobj
+5504 0 obj <<
+/D [5474 0 R /XYZ 76.7123 296.881 null]
+>> endobj
+5505 0 obj <<
+/D [5474 0 R /XYZ 139.477 278.9482 null]
+>> endobj
+5506 0 obj <<
+/D [5474 0 R /XYZ 71.731 277.5087 null]
+>> endobj
+5507 0 obj <<
+/D [5474 0 R /XYZ 71.731 277.5087 null]
+>> endobj
+5508 0 obj <<
+/D [5474 0 R /XYZ 149.4396 261.0155 null]
+>> endobj
+5509 0 obj <<
+/D [5474 0 R /XYZ 149.4396 261.0155 null]
+>> endobj
+5510 0 obj <<
+/D [5474 0 R /XYZ 71.731 258.8586 null]
+>> endobj
+5511 0 obj <<
+/D [5474 0 R /XYZ 71.731 258.8586 null]
+>> endobj
+5512 0 obj <<
+/D [5474 0 R /XYZ 159.4023 243.0827 null]
+>> endobj
+5513 0 obj <<
+/D [5474 0 R /XYZ 71.731 240.9259 null]
+>> endobj
+5514 0 obj <<
+/D [5474 0 R /XYZ 159.4023 225.15 null]
+>> endobj
+5515 0 obj <<
+/D [5474 0 R /XYZ 76.7123 207.2172 null]
+>> endobj
+5516 0 obj <<
+/D [5474 0 R /XYZ 149.4396 189.2845 null]
+>> endobj
+5517 0 obj <<
+/D [5474 0 R /XYZ 149.4396 189.2845 null]
+>> endobj
+5518 0 obj <<
+/D [5474 0 R /XYZ 71.731 187.1276 null]
+>> endobj
+5519 0 obj <<
+/D [5474 0 R /XYZ 71.731 187.1276 null]
+>> endobj
+5520 0 obj <<
+/D [5474 0 R /XYZ 159.4023 171.3517 null]
+>> endobj
+5521 0 obj <<
+/D [5474 0 R /XYZ 71.731 169.1949 null]
+>> endobj
+5522 0 obj <<
+/D [5474 0 R /XYZ 159.4023 153.419 null]
+>> endobj
+5523 0 obj <<
+/D [5474 0 R /XYZ 76.7123 135.4862 null]
+>> endobj
+5524 0 obj <<
+/D [5474 0 R /XYZ 149.4396 117.5535 null]
+>> endobj
+5525 0 obj <<
+/D [5474 0 R /XYZ 149.4396 117.5535 null]
+>> endobj
+5526 0 obj <<
+/D [5474 0 R /XYZ 71.731 115.3966 null]
+>> endobj
+5527 0 obj <<
+/D [5474 0 R /XYZ 71.731 115.3966 null]
+>> endobj
+5528 0 obj <<
+/D [5474 0 R /XYZ 159.4023 99.6207 null]
+>> endobj
+5529 0 obj <<
+/D [5474 0 R /XYZ 71.731 97.4639 null]
+>> endobj
+5473 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+5532 0 obj <<
+/Length 1338      
+/Filter /FlateDecode
+>>
+stream
+xÚ½\9a]oÛ6\18\85ïó+t\19\ 3\vÇO\91Ü]÷Ñ}`\ 3\8aÎwM\11(1\93\budC\967äß\8fªD\85²_ñå\86d\b\1aÙî±Þ££ó\94\92kVPÿÃ
\88\16~Ã-á¥âÅÝÓ\ 5-\1eü_ý|ÁFÉÕ¨¹\8aE߯/¾}/ha\89-yY¬ï\vaK¢´,´àÄ(f\8aõæÓå\ f\8fÕ¾síê\8a+zÉÉ°ý°­\1a×ý^Ý\ eOß}øuxð\87ë\1ew\9bÃêóú·\8b\9fÖÓ|%4±Æ\ fI\9a\14Æ\10%EqÅ)±\9c)PĤ%Ò\eõÇB\r\11RèéX¸-4aýqúc\99t\93¬?\98kÎÕ©9¦\18±\8aò"Þa\98{º}ñ\11Þ\ 5úxÉ\94\83r1÷Qµmõ<D¶»\1f\87®­\9b\87o\86'\7f\1eÛ¦zrgV\85ß\99ÖE©¹ß\1a8Æ º\8aU@@§ûZÌGú#5º\ 4§.ç\13ÞunC\98Âø|J9;O3\1fÛêÐÝ\1c÷\9bªs\9bÞÏI¨¥ö\99ê~V/þnȬnº1ѱ¬@Ƚæìð\82\ 1%}ý\94Dj\17Ë\12µ\9bdhí ¹\19µ\83|\0µ\9bùð\87?\16ìG\9fì\98\19\1e\93\9b§Õ\9f\85áÑp*\96£\13%)\19×Xt\91,\15]\90áÑ\ 1ss¢\ 3|@ÑÅ>à2½j\9a\ 1HJ\89\96\1a\83;R%à\ e*\1cn`j\ eܧ6\16à\8e}tu·u\0Õ~m\10Æ\9a9ÕÃ?\8b(Ø£l© Êø\15\8dI\8cíX\96(è$C\v
+ÍÍ((ä\ 3(èÌÇlýX¯\84º\f\89\94\92\18Ã0dcY*\91 Ã\13\ 1ææ$\ 2ø\80\12\89}`\8bìrH#=Ê7\92²\12!1V-\938©P\12¡©\19$\9eÙ\80I\9cù8¶[\80CfH)({\13\ e\19\b\94ÃH\96j]\90á­\ 3ææ´\ eð\ 1µ.ö1«Ø/»°
+ì«\87e\18¥\15\84)\8aÁ\18Ë\12±L24\16hnF,\90\ f \96\99\ f\fF$©\91"©4áF!Dƪe"'\15J$45\83È3\e0\913\1f\7f¹¶¾¯ïª®Þ57_Ü3\80§ñË$ãoA§ÿE\84â\18\9d±,UàÃk\bÌÍ©!à\ 3ªaìcÖ¹\8fîàºPºÃáï\15ëÓ\e/à¾ôÏÜ\8a©ËçåÀ8#\92Y\94ÛH\96
+,ÈðÀ\80¹9\81\ 1> Àb\1f\18·ÿ9Ã\91Ba\14QJ"DǪe¢'\15J445\83è3\e0Ñ3\1f®©n·à]¬¤DÑ\93ËÝÛÝnëª\ 6%9è\96\9a)ü-rÉ\19\86r,K4s\92¡Í\84æf4\13ò\ 14sæc\8c ¬\1fÕaLƹ1¾(y8#ÿ 4\ 6£7\96¥2
+2<#`nNF\80\ f(£ØÇrsþ}l\ 12&\88áþàÓÀFª\ 4°A\85\ 3\v\ 1öÔÆ\ 2°±\8fýã®ù\9foO¹UÄX\8aÑ\1aË\12M\9cdh\13¡¹\19M\84|\0M\9cù8¹óÒ¾g[7Dýõ¥æøtëÚå\84´öÃý)E\12\8a\84\82\fO\b\98\9b\93\10à\ 3J(ö\81ß®æ\866ÒÅ%'Ôr\84ÔXµLê¤BI\85¦f\90zf\ 3&uæcï\{³wíÁ_+×Ð
\rae©_÷sbÎ¥¿­±(¬\91,UŠë\bÌÍ©"à\ 3ªbìãå\93Í÷ýÅÛ®uõø:\1c\ fáÿ\82ê\8dkºú\9aR\1e^©Â\85 K\91LKÂy\89\92\1cÉRñ\ 5\19\1e\1f07'>À\a\14_ì#ùYñë%:¢É4%¢d\bæ±j\19óI\85b\ eMÍÀüÌ\ 6\8cùÌÇ×û\8aþ\9e\ 2¸\84ö+\8cÑo²&3Å\89ä\ 6Ã<\96%z:ÉÐ\9eBs3z
\0z:ó1[^ÞÝÝí\8eÍâ­\=¶õ®}Þw×TQÿ\87\r/ÝïÚ§å\18\85$Ò*\f÷X\96\8a1Èð\18\81¹91\ 2\18c\1fØÂýÊÉ\8e¨ÚñSÚ$õ\91h\19ú B\99\aFf \7fê\ 1&>6\91ZÒý\99â¥ßík,éã·"¤!\86\956ùÅ\89Hsþ½  Å\r¡ÌÚiO½5c\17¿\ 5\ 1\fü\a¢ôXÕendstream
+endobj
+5531 0 obj <<
+/Type /Page
+/Contents 5532 0 R
+/Resources 5530 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5410 0 R
+>> endobj
+5533 0 obj <<
+/D [5531 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+5534 0 obj <<
+/D [5531 0 R /XYZ 159.4023 708.3437 null]
+>> endobj
+5535 0 obj <<
+/D [5531 0 R /XYZ 76.7123 690.4109 null]
+>> endobj
+5536 0 obj <<
+/D [5531 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+5537 0 obj <<
+/D [5531 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+5538 0 obj <<
+/D [5531 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+5539 0 obj <<
+/D [5531 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+5540 0 obj <<
+/D [5531 0 R /XYZ 159.4023 654.5454 null]
+>> endobj
+5541 0 obj <<
+/D [5531 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+5542 0 obj <<
+/D [5531 0 R /XYZ 159.4023 636.6127 null]
+>> endobj
+5543 0 obj <<
+/D [5531 0 R /XYZ 76.7123 618.6799 null]
+>> endobj
+5544 0 obj <<
+/D [5531 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+5545 0 obj <<
+/D [5531 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+5546 0 obj <<
+/D [5531 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+5547 0 obj <<
+/D [5531 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+5548 0 obj <<
+/D [5531 0 R /XYZ 159.4023 582.8144 null]
+>> endobj
+5549 0 obj <<
+/D [5531 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+5550 0 obj <<
+/D [5531 0 R /XYZ 159.4023 564.8817 null]
+>> endobj
+5551 0 obj <<
+/D [5531 0 R /XYZ 76.7123 546.9489 null]
+>> endobj
+5552 0 obj <<
+/D [5531 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+5553 0 obj <<
+/D [5531 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+5554 0 obj <<
+/D [5531 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+5555 0 obj <<
+/D [5531 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+5556 0 obj <<
+/D [5531 0 R /XYZ 159.4023 511.0834 null]
+>> endobj
+5557 0 obj <<
+/D [5531 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+5558 0 obj <<
+/D [5531 0 R /XYZ 159.4023 493.1507 null]
+>> endobj
+5559 0 obj <<
+/D [5531 0 R /XYZ 76.7123 475.2179 null]
+>> endobj
+5560 0 obj <<
+/D [5531 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+5561 0 obj <<
+/D [5531 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+5562 0 obj <<
+/D [5531 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+5563 0 obj <<
+/D [5531 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+5564 0 obj <<
+/D [5531 0 R /XYZ 159.4023 439.3524 null]
+>> endobj
+5565 0 obj <<
+/D [5531 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+5566 0 obj <<
+/D [5531 0 R /XYZ 159.4023 421.4197 null]
+>> endobj
+5567 0 obj <<
+/D [5531 0 R /XYZ 76.7123 403.4869 null]
+>> endobj
+5568 0 obj <<
+/D [5531 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+5569 0 obj <<
+/D [5531 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+5570 0 obj <<
+/D [5531 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+5571 0 obj <<
+/D [5531 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+5572 0 obj <<
+/D [5531 0 R /XYZ 159.4023 367.6214 null]
+>> endobj
+5573 0 obj <<
+/D [5531 0 R /XYZ 71.731 366.1819 null]
+>> endobj
+5574 0 obj <<
+/D [5531 0 R /XYZ 159.4023 349.6887 null]
+>> endobj
+5575 0 obj <<
+/D [5531 0 R /XYZ 76.7123 331.7559 null]
+>> endobj
+5576 0 obj <<
+/D [5531 0 R /XYZ 149.4396 313.8231 null]
+>> endobj
+5577 0 obj <<
+/D [5531 0 R /XYZ 149.4396 313.8231 null]
+>> endobj
+5578 0 obj <<
+/D [5531 0 R /XYZ 71.731 311.6663 null]
+>> endobj
+5579 0 obj <<
+/D [5531 0 R /XYZ 71.731 311.6663 null]
+>> endobj
+5580 0 obj <<
+/D [5531 0 R /XYZ 159.4023 295.8904 null]
+>> endobj
+5581 0 obj <<
+/D [5531 0 R /XYZ 71.731 293.7336 null]
+>> endobj
+5582 0 obj <<
+/D [5531 0 R /XYZ 159.4023 277.9576 null]
+>> endobj
+5583 0 obj <<
+/D [5531 0 R /XYZ 76.7123 260.0249 null]
+>> endobj
+5584 0 obj <<
+/D [5531 0 R /XYZ 149.4396 242.0921 null]
+>> endobj
+5585 0 obj <<
+/D [5531 0 R /XYZ 149.4396 242.0921 null]
+>> endobj
+5586 0 obj <<
+/D [5531 0 R /XYZ 71.731 239.9353 null]
+>> endobj
+5587 0 obj <<
+/D [5531 0 R /XYZ 71.731 239.9353 null]
+>> endobj
+5588 0 obj <<
+/D [5531 0 R /XYZ 159.4023 224.1594 null]
+>> endobj
+5589 0 obj <<
+/D [5531 0 R /XYZ 71.731 222.0026 null]
+>> endobj
+5590 0 obj <<
+/D [5531 0 R /XYZ 159.4023 206.2266 null]
+>> endobj
+5591 0 obj <<
+/D [5531 0 R /XYZ 76.7123 188.2939 null]
+>> endobj
+5592 0 obj <<
+/D [5531 0 R /XYZ 149.4396 170.3611 null]
+>> endobj
+5593 0 obj <<
+/D [5531 0 R /XYZ 149.4396 170.3611 null]
+>> endobj
+5594 0 obj <<
+/D [5531 0 R /XYZ 71.731 168.2043 null]
+>> endobj
+5595 0 obj <<
+/D [5531 0 R /XYZ 71.731 168.2043 null]
+>> endobj
+5596 0 obj <<
+/D [5531 0 R /XYZ 159.4023 152.4284 null]
+>> endobj
+5597 0 obj <<
+/D [5531 0 R /XYZ 71.731 150.2715 null]
+>> endobj
+5598 0 obj <<
+/D [5531 0 R /XYZ 159.4023 134.4956 null]
+>> endobj
+5599 0 obj <<
+/D [5531 0 R /XYZ 76.7123 116.5629 null]
+>> endobj
+5600 0 obj <<
+/D [5531 0 R /XYZ 149.4396 98.6301 null]
+>> endobj
+5601 0 obj <<
+/D [5531 0 R /XYZ 149.4396 98.6301 null]
+>> endobj
+5602 0 obj <<
+/D [5531 0 R /XYZ 71.731 96.4733 null]
+>> endobj
+5603 0 obj <<
+/D [5531 0 R /XYZ 71.731 96.4733 null]
+>> endobj
+5530 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+5606 0 obj <<
+/Length 1397      
+/Filter /FlateDecode
+>>
+stream
+xÚµ\99Koã6\14\85÷ù\15ZÆ@Íò)\92³ëô1h1\ 5\82Ö]u
+C±\95X¨c\a²2ÓþûR\16)Sòå#m\8a,l+GºG\9fÎåÃ&\ 56\7f¤\90\ 4If^¨F´\14´Ø<ÝàâÑüëÃ\r±\92¥Õ,}ÑûÕÍ×?0\h¤KZ\16«\87\82é\12       É\vÉ(R\82¨bµýýöÛ]õÜÕíbI\ 5¾¥hx½ÛW\87ºûXÝ\ f\1f¿¹ûqxósÝí\8eÛÓâ\8fÕO7߯Æú\82\95)\12\94B\82³bI1Ò\94\bPD¸FÜ\18\82\15b\9cÉñ^¨.$"ý}\9a{\19u£¬¿\99O\94\8a¹9"\bÒ\ 2Ó¿ «;\7f½øpg\81>.L\890>0eS\1fÍ¡ûj öÛɱm¶õ¡k>aLÍ\91¹Gw7¥Æ\88\13¬\13l|Y\84Í(K²\81êf°\81|\0l&>ª¶­þ\1e\90\1c\1f,\9a×âbæÂR\16¥à&Q\82ô¬hé«\0Xók\ 5Yqs×J\96`Õ0+wÖµ\r¦
+eX\95|úÌ|\1fÛª«×\9b¶6/ÛÞÏ\fp)\r_Ù×êÅïF\98\96®%     \ 3\ fG\90\95¨$T¦"èÉb\11t²t\ 4\81º9\11\ 4|@\11ô}\òö\9d!k)\1d¶Ã\9b®y²\87¾ìê\83ýçfs|q\¿,\889r\1a>x\ f\a¦I\14*¥N6´'\8bÑt²4M n\ e\aDÓ÷\11mèÿ\r°m[¡Ì\Fxb\bðUá!`T%\87\0¨jÆ\10pe\ 3\1e\ 2&>\9eëº]7P÷s\8c\ 4VoÛü¢äH)\92j~_\16\89ë(KÆ\15ª\9b\11\a\10×\89\8fK6ïj7ÙtG\17Èf³³\87v\8dMàË8'Ý×ûãáñ\14¦ÇK¤¹J5»/\8bÑs²4= n\ e\aDÏ÷\11mö7\ 3ê\1a\92\10\84\15K5·§\8a4·S¥\9b\e¨\9aÓÜs\e\81æö}|®Ûæ¡ÙT]s<¬ë¿\9e\9b¶>\ 1\9dN\b6ç¼õDÏ5CDàT¯û²HZGY2­PÝ\8c´B>\80´N|¼z\1eú¼ âÖ<\94~Ýi\1fË\9fýlT÷Ç-Ûóû˳\82ÙJ\81(\91©\91À\97ÅØ:Y\9a-P7\87\ 3bëûx\8biÿ¿â¶½m !&hb\9cðUáqbT%Ç    ¨jÆ8qe\ 3\1e'&>ꧪÙ\ 3\ 3\83Ùn3¥gk\80S×6\87ÇäÐ`eÁ\ 4Sböl:9:x²X\82\9d,\9d` nN\82\ 1\1fP\82}\1f\ 3\ 17wµÍSÕºÌ-ÏÀ\atÛ­\89^¤Õ1C\\95ÉV÷d1PN\96\ 6\ 5ÔÍ\ 1\ 5ø\80@ù>\82éù·ì\88FB\98õ\18c\ 4I!\ 2ì\9cjéË.ì´Ä\ 3»««\ 5ÙQ\8a\18'\14¬\efçκö1m]Ó\8d\82p6õÑÖÝK{X?4õ~\vÍí\92"N\15\9b¶ð\0¼\14·\16ðÇæÔMù\9f¿\18é¯8Yn\rÅ®oÛ\19#\f)j\12\aâvª¥/\ 3¢zuµ nF\11¦\\83uøÝY \ f/ªvÀ\9eظ\fjæBFK\85¹\1f\81\91Âz\18I\7f9\13\vF\92r\8a\84Æ,\11I_\16\89ä(KF\12ª\9b\11\87ÇÈ=«\89\ f¸\9d_6]08\94rT
+)\12Áñe\91à\8c²dp º\19Á¹ò1íS\e\9c\89\8dûæ\b\15*\19&Ðüj;ó}s|l«çÝ¢_¯\ 4ñá\12IÊU
+\9f'\8bás²4> n\ e¾¹\ f\18\9foã¡iOÝúP\99%Þ5EQ"ª\94\8aPüÐ,¨°«A»4t×\ 2\81\12¥\90Ô4ÁÓSEp:U\92&P4\ 3æÜ\ 4ÈÒ÷°¯"$1ÒXG@þj\ 6·(8iÆB¡Y\8a\9c'\8b¡s²4; n\ e¼¹\ f\98\9e\8cïåy\eýÊüj#\9d³mqce_Á~\91q.\13\86\99\81ÊÔ¨éËb°\9d,\r\e¨\9b\ 3\ 3\86íÛh\8f\v\8ba_"_»¨\19/\a\bãHk¦â\9b<_\15Þä\8dªä&\ fª\9a±É\83lxÓ\8a[íO|\ 46dîùk\8dH¿P\8c\87ÉSE²äTÉ(\ 1E3\9247\ 1\ 6É÷Ð5ݾÎÍÑdÀ[-\98¸ugû·`\7f\12ç
+)\12Ø\9c¹_Í=Íõ\8fæ\82*\84\89Öã\95z'\1a\a\7f\ 2\a
\ 3\1eËë=endstream
+endobj
+5605 0 obj <<
+/Type /Page
+/Contents 5606 0 R
+/Resources 5604 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5410 0 R
+>> endobj
+5607 0 obj <<
+/D [5605 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+5608 0 obj <<
+/D [5605 0 R /XYZ 159.4023 708.3437 null]
+>> endobj
+5609 0 obj <<
+/D [5605 0 R /XYZ 71.731 706.9041 null]
+>> endobj
+5610 0 obj <<
+/D [5605 0 R /XYZ 159.4023 690.4109 null]
+>> endobj
+5611 0 obj <<
+/D [5605 0 R /XYZ 76.7123 672.4782 null]
+>> endobj
+5612 0 obj <<
+/D [5605 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+5613 0 obj <<
+/D [5605 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+5614 0 obj <<
+/D [5605 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+5615 0 obj <<
+/D [5605 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+5616 0 obj <<
+/D [5605 0 R /XYZ 159.4023 636.6127 null]
+>> endobj
+5617 0 obj <<
+/D [5605 0 R /XYZ 71.731 635.1731 null]
+>> endobj
+5618 0 obj <<
+/D [5605 0 R /XYZ 159.4023 618.6799 null]
+>> endobj
+5619 0 obj <<
+/D [5605 0 R /XYZ 76.7123 600.7472 null]
+>> endobj
+5620 0 obj <<
+/D [5605 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+5621 0 obj <<
+/D [5605 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+5622 0 obj <<
+/D [5605 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+5623 0 obj <<
+/D [5605 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+5624 0 obj <<
+/D [5605 0 R /XYZ 159.4023 564.8817 null]
+>> endobj
+5625 0 obj <<
+/D [5605 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+5626 0 obj <<
+/D [5605 0 R /XYZ 159.4023 546.9489 null]
+>> endobj
+5627 0 obj <<
+/D [5605 0 R /XYZ 76.7123 529.0162 null]
+>> endobj
+5628 0 obj <<
+/D [5605 0 R /XYZ 149.4396 511.0834 null]
+>> endobj
+5629 0 obj <<
+/D [5605 0 R /XYZ 149.4396 511.0834 null]
+>> endobj
+5630 0 obj <<
+/D [5605 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+5631 0 obj <<
+/D [5605 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+5632 0 obj <<
+/D [5605 0 R /XYZ 159.4023 493.1507 null]
+>> endobj
+5633 0 obj <<
+/D [5605 0 R /XYZ 71.731 490.9938 null]
+>> endobj
+5634 0 obj <<
+/D [5605 0 R /XYZ 159.4023 475.2179 null]
+>> endobj
+5635 0 obj <<
+/D [5605 0 R /XYZ 76.7123 457.2852 null]
+>> endobj
+5636 0 obj <<
+/D [5605 0 R /XYZ 149.4396 439.3524 null]
+>> endobj
+5637 0 obj <<
+/D [5605 0 R /XYZ 149.4396 439.3524 null]
+>> endobj
+5638 0 obj <<
+/D [5605 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+5639 0 obj <<
+/D [5605 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+5640 0 obj <<
+/D [5605 0 R /XYZ 159.4023 421.4197 null]
+>> endobj
+5641 0 obj <<
+/D [5605 0 R /XYZ 71.731 419.2628 null]
+>> endobj
+5642 0 obj <<
+/D [5605 0 R /XYZ 159.4023 403.4869 null]
+>> endobj
+5643 0 obj <<
+/D [5605 0 R /XYZ 76.7123 349.6887 null]
+>> endobj
+5644 0 obj <<
+/D [5605 0 R /XYZ 129.5143 331.7559 null]
+>> endobj
+5645 0 obj <<
+/D [5605 0 R /XYZ 129.5143 331.7559 null]
+>> endobj
+5646 0 obj <<
+/D [5605 0 R /XYZ 71.731 329.5991 null]
+>> endobj
+5647 0 obj <<
+/D [5605 0 R /XYZ 71.731 329.5991 null]
+>> endobj
+5648 0 obj <<
+/D [5605 0 R /XYZ 139.477 313.8231 null]
+>> endobj
+5649 0 obj <<
+/D [5605 0 R /XYZ 71.731 275.9651 null]
+>> endobj
+5650 0 obj <<
+/D [5605 0 R /XYZ 71.731 262.9141 null]
+>> endobj
+5651 0 obj <<
+/D [5605 0 R /XYZ 71.731 261.6688 null]
+>> endobj
+5652 0 obj <<
+/D [5605 0 R /XYZ 129.5143 242.5903 null]
+>> endobj
+5653 0 obj <<
+/D [5605 0 R /XYZ 71.731 240.4334 null]
+>> endobj
+5654 0 obj <<
+/D [5605 0 R /XYZ 71.731 240.4334 null]
+>> endobj
+5655 0 obj <<
+/D [5605 0 R /XYZ 139.477 224.6575 null]
+>> endobj
+5656 0 obj <<
+/D [5605 0 R /XYZ 139.477 224.6575 null]
+>> endobj
+5657 0 obj <<
+/D [5605 0 R /XYZ 71.731 222.5007 null]
+>> endobj
+5658 0 obj <<
+/D [5605 0 R /XYZ 139.477 206.7248 null]
+>> endobj
+5659 0 obj <<
+/D [5605 0 R /XYZ 139.477 206.7248 null]
+>> endobj
+5660 0 obj <<
+/D [5605 0 R /XYZ 71.731 204.5679 null]
+>> endobj
+5661 0 obj <<
+/D [5605 0 R /XYZ 139.477 188.792 null]
+>> endobj
+5662 0 obj <<
+/D [5605 0 R /XYZ 139.477 188.792 null]
+>> endobj
+5663 0 obj <<
+/D [5605 0 R /XYZ 71.731 186.6352 null]
+>> endobj
+5664 0 obj <<
+/D [5605 0 R /XYZ 139.477 170.8593 null]
+>> endobj
+5665 0 obj <<
+/D [5605 0 R /XYZ 139.477 170.8593 null]
+>> endobj
+5666 0 obj <<
+/D [5605 0 R /XYZ 71.731 168.7024 null]
+>> endobj
+5667 0 obj <<
+/D [5605 0 R /XYZ 139.477 152.9265 null]
+>> endobj
+5668 0 obj <<
+/D [5605 0 R /XYZ 139.477 152.9265 null]
+>> endobj
+5669 0 obj <<
+/D [5605 0 R /XYZ 71.731 150.7697 null]
+>> endobj
+5670 0 obj <<
+/D [5605 0 R /XYZ 71.731 150.7697 null]
+>> endobj
+5671 0 obj <<
+/D [5605 0 R /XYZ 149.4396 134.9938 null]
+>> endobj
+5672 0 obj <<
+/D [5605 0 R /XYZ 76.7123 117.061 null]
+>> endobj
+5673 0 obj <<
+/D [5605 0 R /XYZ 139.477 99.1283 null]
+>> endobj
+5674 0 obj <<
+/D [5605 0 R /XYZ 139.477 99.1283 null]
+>> endobj
+5675 0 obj <<
+/D [5605 0 R /XYZ 71.731 96.9714 null]
+>> endobj
+5604 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+5678 0 obj <<
+/Length 1254      
+/Filter /FlateDecode
+>>
+stream
+xÚ­XÑ\8e£6\14}\9f¯à1\916®mllÏÛ¶ÛݶÚJÑ*}êT#\12¼\13´\ 4\1aÍß×\ 4Ì\18rÁ¤ªæ\ 1È\1c|\8f\8fî9Ø&\ 16\7f$\10\ 4\89Ð\¨B4â48\9c\1epðbþõå\81t\90M\87Ù¸ \9fw\ f?}\ e\90\8ah\14ì¾\a¡\8a\10\17,\10!E\92\13\19ì\92¿W¿\1cãs­Ëõ\86r¼¢¨½n³8×õ×xß>~ÜþÞÞü©ëc\91\7fv\7f<üºëëóP %M\91Y\92\fKÄ"\19\ 6\e\8a\91¢\84\83(b\86à\84\19\94\90\85¢\9f\fU\81\99¨\99L\8fëaÍl\9e(åcvÄL\17\ 2w@[w|}çaߺå\11Ê@\1aQ#vå\11\84\18Ò¸\94YÃâJù]\7f"Q\14â¦B\83yl%­ê2Í_>´\ f¿\15'ÝÞ\9dã\17}3\11;åHaÄ\bV\1e\ 1\8c\80=Ì+ Tw\81\807<@\ 1\a4~è·ç´m´\91\88\f\14\e\8a\18\97eü¶\8eøªÓñkZÕí]ñ½½þX\13¼ÒkÂWoí\ fi¢ó:}Â\98겺\9dqÇIPs\95p?[ÐÆE\ 1:\8fÇ\9a\94\99\11ã"\11\81U§e¶o\814\9cæc\86\86I\80!\8f4¯§»,\8cPD¨ðu\99\ 3\9bë2\vów\19PwI\97\8dyÀ]æÒÐy¼Ït\ 2w\19ÇB\r»l_\14\99\8esëÕ¸ê~Ö:oï\9cñ`E\9b\ 4\10Êë[\a6§¨\85ù\15\ 5ê.QtÌ\ 3VÔ¥QeéAO8\97\9bÔÇê^ã^G¼Ç²\18\84ϲ\ ejƲ\16å·,Pu\89e\ 1\1a\90e]\1es\96å\11CR\12\9fe]ØL\83õ0o\83Au\17\r\ f°Á\ 64ÎÇ"×@s\19ΡTbæÛº[\vãÐL·#\\7fÊ/§½YúLªÉ"¤\98ôÙÕ\85Í©ia~5\81ºKÔ\1có\80Õti\9cµ.\9fÏÆMEnL\vÈ*$"Q4\92Õt`§éçæ\83Z\94:}é\12ðRÙ¥¤kÖÎë\9d³\9b¢Ó\9a\9b\eL"êÓÜ\81Íina~Í\81ºK4\1fó\805wi\94æ#2µ¶áÈ@é½\11Ù\8cxGBrB\10\96!\9bOH\175\9d\90\9b\90\ 5          Ñ\0\12rÀc.!\99à\88\12áó´\v\9bé¯\1eæí/¨î\82þºá\ 1ö×\80Æ\9c\9d91Û3#ë\84\9dÿ\82Ý;©%\17\88Jîóª\v\9bÓÒÂüZ\ 2u\97h9æ\ 1kéÒHâZ?\1fJm.\90\9c\91@\fO\86ã'óVgá<ioêÔîï^\8f\18\1f\ eÅ%ï,ýÚlSìÂÒ)\fëo(\87\9c2\9fþ\ elN\7f\vóë\ fÔ]¢ÿ\98\a¬¿K£Jëÿ9+\9b\11ïÈJF\89Ù\94*1\9f\95.j:+{\947+¡ª\v²\12¢\ 1\80Ç\V\86ÒhÌ\99Ïß.l¦¿z\98·¿ º\vúë\86\aØ_\ 3\1a×õOºx\ 3øîí­¶IY\17ÖÐéáØýtL«ñrh¯³"\7f©¦µ6Y\12Qâó²\v\9bÓÚÂüZ\ 3u\97h=æ\ 1kíÒЧ8ÍþÓÊ}[¦§¸ìÎmôæ:Nk÷$)ueÓÁÌÊD7áW
+\eed    y³Õk\96°²åÐ\9c{6G\9cB®¾èú\9bY7\81Ñ"\90¤&×7Í9©\88Z£lË¢.ê·³~ìßx\9fp÷îÆ8Ël\87Ûïp_àJõ s\1c_꣹\12 äÆ\8eà\96ü¤«C\99\9eë´Èï(j?9n"\ e#°./\87Ú~c\8a¼\8eÓÜ\88Ý>'Ú<fÝ?ã}q±ãeÙûb³BK§ð1Ë\8a5å«WÝ}\ 1¯\92xgÓN&NN©=m9§\1f\1cK1l\13¾Ö\87cw\9b\17\89^ÊkÛl\â2>éÚ¤ÿãØ\1eÝy:\93H\92\1e¹;\98Û\13wN¥Yø+Õ\8fÔÔVdòü\1c(ø/\1e_L\ 3endstream
+endobj
+5677 0 obj <<
+/Type /Page
+/Contents 5678 0 R
+/Resources 5676 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5410 0 R
+>> endobj
+5679 0 obj <<
+/D [5677 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+5680 0 obj <<
+/D [5677 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+5681 0 obj <<
+/D [5677 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+5682 0 obj <<
+/D [5677 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+5683 0 obj <<
+/D [5677 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+5684 0 obj <<
+/D [5677 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+5685 0 obj <<
+/D [5677 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+5686 0 obj <<
+/D [5677 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+5687 0 obj <<
+/D [5677 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+5688 0 obj <<
+/D [5677 0 R /XYZ 76.7123 654.5454 null]
+>> endobj
+5689 0 obj <<
+/D [5677 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+5690 0 obj <<
+/D [5677 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+5691 0 obj <<
+/D [5677 0 R /XYZ 71.731 635.1731 null]
+>> endobj
+5692 0 obj <<
+/D [5677 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+5693 0 obj <<
+/D [5677 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+5694 0 obj <<
+/D [5677 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+5695 0 obj <<
+/D [5677 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+5696 0 obj <<
+/D [5677 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+5697 0 obj <<
+/D [5677 0 R /XYZ 76.7123 582.8144 null]
+>> endobj
+5698 0 obj <<
+/D [5677 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+5699 0 obj <<
+/D [5677 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+5700 0 obj <<
+/D [5677 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+5701 0 obj <<
+/D [5677 0 R /XYZ 139.477 546.9489 null]
+>> endobj
+5702 0 obj <<
+/D [5677 0 R /XYZ 139.477 546.9489 null]
+>> endobj
+5703 0 obj <<
+/D [5677 0 R /XYZ 71.731 544.7921 null]
+>> endobj
+5704 0 obj <<
+/D [5677 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+5705 0 obj <<
+/D [5677 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+5706 0 obj <<
+/D [5677 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+5707 0 obj <<
+/D [5677 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+5708 0 obj <<
+/D [5677 0 R /XYZ 149.4396 511.0834 null]
+>> endobj
+5709 0 obj <<
+/D [5677 0 R /XYZ 76.7123 493.1507 null]
+>> endobj
+5710 0 obj <<
+/D [5677 0 R /XYZ 139.477 475.2179 null]
+>> endobj
+5711 0 obj <<
+/D [5677 0 R /XYZ 139.477 475.2179 null]
+>> endobj
+5712 0 obj <<
+/D [5677 0 R /XYZ 71.731 473.7784 null]
+>> endobj
+5713 0 obj <<
+/D [5677 0 R /XYZ 139.477 457.2852 null]
+>> endobj
+5714 0 obj <<
+/D [5677 0 R /XYZ 139.477 457.2852 null]
+>> endobj
+5715 0 obj <<
+/D [5677 0 R /XYZ 71.731 455.8456 null]
+>> endobj
+5716 0 obj <<
+/D [5677 0 R /XYZ 139.477 439.3524 null]
+>> endobj
+5717 0 obj <<
+/D [5677 0 R /XYZ 139.477 439.3524 null]
+>> endobj
+5718 0 obj <<
+/D [5677 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+5719 0 obj <<
+/D [5677 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+5720 0 obj <<
+/D [5677 0 R /XYZ 149.4396 421.4197 null]
+>> endobj
+5721 0 obj <<
+/D [5677 0 R /XYZ 76.7123 403.4869 null]
+>> endobj
+5722 0 obj <<
+/D [5677 0 R /XYZ 139.477 385.5542 null]
+>> endobj
+5723 0 obj <<
+/D [5677 0 R /XYZ 139.477 385.5542 null]
+>> endobj
+5724 0 obj <<
+/D [5677 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+5725 0 obj <<
+/D [5677 0 R /XYZ 139.477 367.6214 null]
+>> endobj
+5726 0 obj <<
+/D [5677 0 R /XYZ 139.477 367.6214 null]
+>> endobj
+813 0 obj <<
+/D [5677 0 R /XYZ 71.731 344.7073 null]
+>> endobj
+370 0 obj <<
+/D [5677 0 R /XYZ 190.3782 299.453 null]
+>> endobj
+5727 0 obj <<
+/D [5677 0 R /XYZ 71.731 279.3127 null]
+>> endobj
+5728 0 obj <<
+/D [5677 0 R /XYZ 161.0655 266.5763 null]
+>> endobj
+5729 0 obj <<
+/D [5677 0 R /XYZ 71.731 254.4568 null]
+>> endobj
+5730 0 obj <<
+/D [5677 0 R /XYZ 71.731 223.4272 null]
+>> endobj
+5731 0 obj <<
+/D [5677 0 R /XYZ 168.8063 212.0807 null]
+>> endobj
+5732 0 obj <<
+/D [5677 0 R /XYZ 71.731 199.9612 null]
+>> endobj
+5733 0 obj <<
+/D [5677 0 R /XYZ 71.731 168.5953 null]
+>> endobj
+5734 0 obj <<
+/D [5677 0 R /XYZ 181.5683 157.585 null]
+>> endobj
+5735 0 obj <<
+/D [5677 0 R /XYZ 71.731 147.5229 null]
+>> endobj
+5736 0 obj <<
+/D [5677 0 R /XYZ 71.731 114.0997 null]
+>> endobj
+5737 0 obj <<
+/D [5677 0 R /XYZ 71.731 102.9899 null]
+>> endobj
+5738 0 obj <<
+/D [5677 0 R /XYZ 71.731 101.7445 null]
+>> endobj
+5676 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+5741 0 obj <<
+/Length 929       
+/Filter /FlateDecode
+>>
+stream
+xÚÅWËnÛ0\10¼ç+t´\81\98åS$sK\9f\ 2Aê[S\14ªM7B\15)\90h\14ùû.õ2eÑ\92.E\91\ 3åhÈ\9d\1d\ ew)\12aø#\91$H2\18¨F4\164Ú=]áè\17¼úpEZȦÅl|ÐëíÕ«÷\fG\1aé\98ÆÑö\101\1d#!y$\19EJ\10\15m÷ßVo\1e\93gkÊõ\86
+¼¢¨\19ï²$7ösò³ùy{÷±yøbìc±¯Öß·\9f®Þmûø\82\15\ 4\99\89B\9ca\1dm(F\9a\12\11D\11¢\91\10DB2X!Æ\99ì\93¡:\828\12\13\97L\8fëa.\9b\aJÅ9;B)\0\b\8dü\ 5»¸çã\89G7kÌ\83©H\81¨1¯y@Ê\82p6ä\91\1cí£ãQ\93\0å\b»\b\ erÓHZÙò¸³×gB»ù&·é.±i\91ûÈciÆ     ¶\14b\8d\11' pPØ\ eµña'a\89s\90\9fP\ f»(,ø\b\83q/\vÛÍ\1aó\18
+Ë4âR\ e\82.\8d     \ 3ê\8a\18Å\1cü}®o\9aÿêô\rÈúÔ,W?Û¢\19\8fU-2ì½;1\14Ì(0RXózå{\ 3»\90W7#=:KÆð@¤"3\ 6÷a\13\ 6ïa³\ 6\ fÅ]`ð\10\8f\93ª'?ø<\92²L^\1a±\8a\83ïÏËæÄ\ 4Q.Ø\9c9=Ø\949;ؼ9\ 3q\97\98ó\9c\9c>\8d<y2\17\ e=ÖzÂ\96÷EvùP\vÅ\10#°Ô´n>lB·\1e6«[(î\ 2ÝF<\82º\rh\94\90þ\8f4t¢9F\ 2Ë3éÒÜúº5ÿÛ»cý\801\85VÖ¬\ 3©H\ 4\8e»!P\9d©`nc\15"±jN2ôÁص<©V\1f\8cýjªÊ\95\85\0\ f\89\14Åpd]ç\94qSãïÊÂ\16öåÙÜô3N\89¶s7\94 \98¨¦xy!jÒ\ fX`Wèa$\81 \9bn\r?è[SíÊôÙ\95¯¥aÛrÕ6\96fÈÍ\9a\8aÕ\9fÖ\8b>©ßk\82WfMĪ=Þéa0\13Jc{Y(Ú1/öfÔµL[Q«ãn\aË\1f\8eYö²\8eŪݹ\83\8b\92\1c3ÛÒ*`bù'­\fZ*Äm\96\15u\ e]$g\86jV\93F\92dÿ\94æ-\95çôÚË\8cã\8e¢5»Çk/Ã\85¼î\9ctI      ¥\0nU\13=\82j¸.\b9×#|ØD\8fèa³="\14wA\8f\18ñ\b_\82\ 6<þÏ%\88*¸/PÎgê¥\ f\9b¨\97=l¶^\86â.¨\97#\1eÁz9 ñ\9f/AbÙ%\88b¸.èÙ[¾\ f\9b2x\a\9b7x î\12\83\ax\ 4.A\ 3\1e\ 3Y¿^ª¢¡v$$\92\8a±ZRÊDÜu#éu£Ô\9aê\9fö¢:À \13µ©Tðæ\87\99\1d\94IJÞóú\8dÉöU×·ümh¿D¹B\8aÄzòcÕÃ\8c¿U\ 5UP%àÖÔ¡\1ciM/~y\ 6\ 2þ\ 5B\ eycendstream
+endobj
+5740 0 obj <<
+/Type /Page
+/Contents 5741 0 R
+/Resources 5739 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5785 0 R
+>> endobj
+5742 0 obj <<
+/D [5740 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+5743 0 obj <<
+/D [5740 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+5744 0 obj <<
+/D [5740 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+5745 0 obj <<
+/D [5740 0 R /XYZ 71.731 706.9041 null]
+>> endobj
+5746 0 obj <<
+/D [5740 0 R /XYZ 71.731 706.9041 null]
+>> endobj
+5747 0 obj <<
+/D [5740 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+5748 0 obj <<
+/D [5740 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+5749 0 obj <<
+/D [5740 0 R /XYZ 71.731 652.5529 null]
+>> endobj
+5750 0 obj <<
+/D [5740 0 R /XYZ 71.731 639.5019 null]
+>> endobj
+5751 0 obj <<
+/D [5740 0 R /XYZ 71.731 638.2566 null]
+>> endobj
+5752 0 obj <<
+/D [5740 0 R /XYZ 129.5143 619.1781 null]
+>> endobj
+5753 0 obj <<
+/D [5740 0 R /XYZ 71.731 617.0212 null]
+>> endobj
+5754 0 obj <<
+/D [5740 0 R /XYZ 71.731 617.0212 null]
+>> endobj
+5755 0 obj <<
+/D [5740 0 R /XYZ 139.477 601.2453 null]
+>> endobj
+5756 0 obj <<
+/D [5740 0 R /XYZ 139.477 601.2453 null]
+>> endobj
+5757 0 obj <<
+/D [5740 0 R /XYZ 71.731 599.0885 null]
+>> endobj
+5758 0 obj <<
+/D [5740 0 R /XYZ 139.477 583.3126 null]
+>> endobj
+5759 0 obj <<
+/D [5740 0 R /XYZ 139.477 583.3126 null]
+>> endobj
+814 0 obj <<
+/D [5740 0 R /XYZ 71.731 560.3985 null]
+>> endobj
+374 0 obj <<
+/D [5740 0 R /XYZ 209.5216 515.1442 null]
+>> endobj
+5760 0 obj <<
+/D [5740 0 R /XYZ 71.731 495.0038 null]
+>> endobj
+5761 0 obj <<
+/D [5740 0 R /XYZ 161.0655 482.2675 null]
+>> endobj
+5762 0 obj <<
+/D [5740 0 R /XYZ 71.731 470.148 null]
+>> endobj
+5763 0 obj <<
+/D [5740 0 R /XYZ 71.731 439.1184 null]
+>> endobj
+5764 0 obj <<
+/D [5740 0 R /XYZ 168.8063 427.7718 null]
+>> endobj
+5765 0 obj <<
+/D [5740 0 R /XYZ 71.731 415.6524 null]
+>> endobj
+5766 0 obj <<
+/D [5740 0 R /XYZ 71.731 384.2865 null]
+>> endobj
+5767 0 obj <<
+/D [5740 0 R /XYZ 181.5683 373.2762 null]
+>> endobj
+5768 0 obj <<
+/D [5740 0 R /XYZ 71.731 363.214 null]
+>> endobj
+5769 0 obj <<
+/D [5740 0 R /XYZ 71.731 329.7908 null]
+>> endobj
+5770 0 obj <<
+/D [5740 0 R /XYZ 71.731 318.681 null]
+>> endobj
+5771 0 obj <<
+/D [5740 0 R /XYZ 71.731 317.4357 null]
+>> endobj
+5772 0 obj <<
+/D [5740 0 R /XYZ 129.5143 298.3571 null]
+>> endobj
+5773 0 obj <<
+/D [5740 0 R /XYZ 129.5143 298.3571 null]
+>> endobj
+5774 0 obj <<
+/D [5740 0 R /XYZ 71.731 296.9176 null]
+>> endobj
+5775 0 obj <<
+/D [5740 0 R /XYZ 71.731 296.9176 null]
+>> endobj
+5776 0 obj <<
+/D [5740 0 R /XYZ 139.477 280.4244 null]
+>> endobj
+5777 0 obj <<
+/D [5740 0 R /XYZ 139.477 280.4244 null]
+>> endobj
+5778 0 obj <<
+/D [5740 0 R /XYZ 71.731 242.5664 null]
+>> endobj
+5779 0 obj <<
+/D [5740 0 R /XYZ 71.731 229.5154 null]
+>> endobj
+5780 0 obj <<
+/D [5740 0 R /XYZ 71.731 228.2701 null]
+>> endobj
+5781 0 obj <<
+/D [5740 0 R /XYZ 129.5143 209.1915 null]
+>> endobj
+815 0 obj <<
+/D [5740 0 R /XYZ 71.731 202.0534 null]
+>> endobj
+378 0 obj <<
+/D [5740 0 R /XYZ 184.6453 158.9559 null]
+>> endobj
+5782 0 obj <<
+/D [5740 0 R /XYZ 71.731 138.8155 null]
+>> endobj
+5783 0 obj <<
+/D [5740 0 R /XYZ 161.0655 126.0792 null]
+>> endobj
+5784 0 obj <<
+/D [5740 0 R /XYZ 71.731 113.9597 null]
+>> endobj
+5739 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+5788 0 obj <<
+/Length 1499      
+/Filter /FlateDecode
+>>
+stream
+xÚÕY]\8f£6\14}\9f_\91ÇD\9a¸ØØ|ìÛ´Û­¦ÚV£é¬T©[­HðL\90\bDàh:ÿ¾&ØÄ\86kÌHÝ\87*\ f\90äØ÷øø\9e\8bmð*\90\1f¼\8a1\8aCy!)"\11#«ýñ&X½È¿~¹Á
+²U\98­   úñéæ\87Oa°JQ\1a\91hõô¼
\b±\98®â\90 \84ádõ\94ÿµþé\90\9d\ 4o6[Â\825Aýõ¡Ì*.>g»þëÝÃ}\7fó\e\17\87:o7\7f?ýzóóÓ\10\9f\851J\13\19d\96ä\80\9aÒ$©A\13ã\141\86ãU\1c$(¤a|áù\91·û¦8\89¢®>tñ/\8d\12Ù(¢]#Õ|K0\8ap\92^\9a<rqnª¶§\9eUêÚ4Ù[\7f[?÷×V4ç½P¸}]\89¬¨\8aê¥ÿ\9esùµÔ\9dìê³P\8d
+Á[%×ýóõ·o_\83\80\94\83¢\85\9eø¾èþâ¹æ\93Û\889\82Å\ 6¯\ 5ï\86-¥Üb9F\16\85\971\169¯Dßq£:ªUèCÝ\8a*;òöÖþ=3G=\ e$£ô !\9ab·!Áú,®=Tå\9b1úþö\98\89ýa\90K\1cT\a\f¯EYöw;õ\7fs\99\1c.\a\96_U\ 4\ 6Øã.ªò2o\9dªN(\ eL&Ò[Sêd&ié4»ææVçYg¡8êSó®,ë\raëW\1dà±.y»4K³üXT\8aý©P7çV*G\83µú*øþ n«:ç·:cêj\83ÙúíX\9fÛ¥d\1fº\16Y#óBNNOÒ´ò`>Æ\98ä(iCV\1eP[\13¦­,m\1e\aزò\0ë(|%\84\12\8e      \18w|½òЭ¦<ÂÄÐ\1dË\82Ã0\rm\1eÙY\1c\0Ù\bEA\17¡\83|0½r;ª\86]ûÎ}û¬«J&òÜðé\05\ 5Y\ 6£DV5PX\8dÚ\9a°«°¸+óÖ\804Ì)¬\9cü\80Ð\14\8cë\16\9aò°\85\rSDãئq'ué\9f\14\80º,B\11\95\ f¡±¾²\82h}\ 1Y\8f}w½\19êÁ#îì\r0JpB|ÙkÀæ²WÃüÙ\vÄ]\92½c\1e\8eì5y\\1e6ÏÅ¥ÆNe\8e0JSÌl\99\81GKQ ûéÐOÅä·îQáÊh\9a\84(I\18õd´    \9bÉè\ 1æÍh(î\82\8c\86x\18«\ f\95Ñ\16\8dw\b7!«º\8b\18J\19q¸^\81¶&
+\90\97S!*g_V|0ª[!Ý
+¤a(D%\r¹\96´yH=\94\7fÿ\18\16\11æâÄ)\fMd¹MS\8f0\ 6jF\18\8dò\v\ 3D]"\f@\ 3\12ÆäaÕ¶«6mYìÕí©á\9dFÿ¸\r\86      Â\8cz\rfÀæ\f¦a~\83\ 1q\97\18\fà\ 1\18̤a?`͵çh5éÈ¢0¥\88\10ì±\97\89rgÑ\80òf\11\14uA\16MhØÕ^g\91Å£ÌZñí|Ê3Á¡§j\14#\1aÄ£UˤD9ÊØdx\9a@\1c!\92$\ ekjÔÖ\84\ 1ªNzsÊʤ@, `\·¬º\15ÈÃH;&y\ 4$´y\«ÖÇlØúè\9d\99(\8eê§W¹ \19ï\90dik\94\98¯\e,\9b©\rE7Sj\81ÒO×­VZõÀå\16SodÚ¢ÒUàËï÷\7fª\9eOõþà\9e\15&wÅ,"¾Y1`s³¢aþY\ 1â.\99\15\80\a4+&\ f8Oÿ/\13¥Ë\88\ÝÑ4ð\95$\ 35S\924Ê_\92\80¨KJÒ\98\86£$\99<º³\85ÅÛ§É\9a\12>\87\81VPCð\80Êåxì-G\ 6l.ñ5Ì\9fø@Ü%\89\ fð\80\12ßäa­\15>\9dõÉÄ5\97µæ @$\91{+Â|\95Á\84Í\b4À¼\ 2Aq\17\b\ 4ñ\0\ 4²x8³æ½\9a)cÉÿQÌähgMj¢Ü&\1dP^\93BQ\17\98tB\ 36©ÅãÜ\94\80Gq\82¢ðû¸\94t\87M$ò¹Ô\84Í%¡\86ù\93\10\88»$      \ 1\1eP\12\9a\8cûòøÙÖG\1d¯\9e²\17®\ f"3¡\ f\1e»3ì\9d>9½\9eP\16bÆÕ\98¢$¥Ø'¨\ 1\9b\13TÃü\82\ 2q\97\b
\80\ 45yø\ýÝ4VÎÅq*·.\89§
+\98(w\15\18PÞ*\0E]P\ 5&4à*`ñ¸\9c\15\15ÐÆ\81\ 6\88\ 5É\7f»oÀ\11FAÊ|%À\84Ídì\0óf,\14wAÆB<\80\8cµx¼û´c\18\r\r\11\8eB\9f\9b\9c6\1aæ×\ 6\88»D\e\80\a¤\8dÉcvõþ¾Ã!\1cÄ\88¤±Ï\98\ 6\98\1aå7&\10u\891Ç4\1cÆ4yð*Û\95|©1wu]rý\9e\9c\1a7\1a zKL\13\94\ 3Z¿H60Ó÷È\8c¨ã-\8dê(¦¡ó­0\10ð_Ã[ïPendstream
+endobj
+5787 0 obj <<
+/Type /Page
+/Contents 5788 0 R
+/Resources 5786 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5785 0 R
+>> endobj
+5789 0 obj <<
+/D [5787 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+5790 0 obj <<
+/D [5787 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+5791 0 obj <<
+/D [5787 0 R /XYZ 168.8063 708.3437 null]
+>> endobj
+5792 0 obj <<
+/D [5787 0 R /XYZ 71.731 696.2242 null]
+>> endobj
+5793 0 obj <<
+/D [5787 0 R /XYZ 71.731 641.5458 null]
+>> endobj
+5794 0 obj <<
+/D [5787 0 R /XYZ 181.5683 630.5355 null]
+>> endobj
+5795 0 obj <<
+/D [5787 0 R /XYZ 71.731 620.4733 null]
+>> endobj
+5796 0 obj <<
+/D [5787 0 R /XYZ 71.731 587.0501 null]
+>> endobj
+5797 0 obj <<
+/D [5787 0 R /XYZ 71.731 575.9403 null]
+>> endobj
+5798 0 obj <<
+/D [5787 0 R /XYZ 71.731 574.695 null]
+>> endobj
+5799 0 obj <<
+/D [5787 0 R /XYZ 129.5143 555.6164 null]
+>> endobj
+5800 0 obj <<
+/D [5787 0 R /XYZ 129.5143 555.6164 null]
+>> endobj
+5801 0 obj <<
+/D [5787 0 R /XYZ 71.731 554.1769 null]
+>> endobj
+5802 0 obj <<
+/D [5787 0 R /XYZ 71.731 554.1769 null]
+>> endobj
+5803 0 obj <<
+/D [5787 0 R /XYZ 139.477 537.6837 null]
+>> endobj
+5804 0 obj <<
+/D [5787 0 R /XYZ 139.477 537.6837 null]
+>> endobj
+5805 0 obj <<
+/D [5787 0 R /XYZ 76.7123 519.7509 null]
+>> endobj
+5806 0 obj <<
+/D [5787 0 R /XYZ 129.5143 501.8182 null]
+>> endobj
+5807 0 obj <<
+/D [5787 0 R /XYZ 129.5143 501.8182 null]
+>> endobj
+5808 0 obj <<
+/D [5787 0 R /XYZ 71.731 499.6613 null]
+>> endobj
+5809 0 obj <<
+/D [5787 0 R /XYZ 71.731 499.6613 null]
+>> endobj
+5810 0 obj <<
+/D [5787 0 R /XYZ 139.477 483.8854 null]
+>> endobj
+5811 0 obj <<
+/D [5787 0 R /XYZ 71.731 481.7286 null]
+>> endobj
+5812 0 obj <<
+/D [5787 0 R /XYZ 71.731 481.7286 null]
+>> endobj
+5813 0 obj <<
+/D [5787 0 R /XYZ 149.4396 465.9527 null]
+>> endobj
+5814 0 obj <<
+/D [5787 0 R /XYZ 71.731 464.5131 null]
+>> endobj
+5815 0 obj <<
+/D [5787 0 R /XYZ 149.4396 448.0199 null]
+>> endobj
+5816 0 obj <<
+/D [5787 0 R /XYZ 76.7123 430.0872 null]
+>> endobj
+5817 0 obj <<
+/D [5787 0 R /XYZ 139.477 412.1544 null]
+>> endobj
+5818 0 obj <<
+/D [5787 0 R /XYZ 71.731 410.7149 null]
+>> endobj
+5819 0 obj <<
+/D [5787 0 R /XYZ 71.731 410.7149 null]
+>> endobj
+5820 0 obj <<
+/D [5787 0 R /XYZ 149.4396 394.2217 null]
+>> endobj
+5821 0 obj <<
+/D [5787 0 R /XYZ 149.4396 394.2217 null]
+>> endobj
+5822 0 obj <<
+/D [5787 0 R /XYZ 71.731 392.0648 null]
+>> endobj
+5823 0 obj <<
+/D [5787 0 R /XYZ 71.731 392.0648 null]
+>> endobj
+5824 0 obj <<
+/D [5787 0 R /XYZ 159.4023 376.2889 null]
+>> endobj
+5825 0 obj <<
+/D [5787 0 R /XYZ 71.731 374.1321 null]
+>> endobj
+5826 0 obj <<
+/D [5787 0 R /XYZ 159.4023 358.3562 null]
+>> endobj
+5827 0 obj <<
+/D [5787 0 R /XYZ 76.7123 340.4234 null]
+>> endobj
+5828 0 obj <<
+/D [5787 0 R /XYZ 149.4396 322.4907 null]
+>> endobj
+5829 0 obj <<
+/D [5787 0 R /XYZ 149.4396 322.4907 null]
+>> endobj
+5830 0 obj <<
+/D [5787 0 R /XYZ 71.731 320.3338 null]
+>> endobj
+5831 0 obj <<
+/D [5787 0 R /XYZ 71.731 320.3338 null]
+>> endobj
+5832 0 obj <<
+/D [5787 0 R /XYZ 159.4023 304.5579 null]
+>> endobj
+5833 0 obj <<
+/D [5787 0 R /XYZ 71.731 302.4011 null]
+>> endobj
+5834 0 obj <<
+/D [5787 0 R /XYZ 159.4023 286.6252 null]
+>> endobj
+5835 0 obj <<
+/D [5787 0 R /XYZ 76.7123 268.6924 null]
+>> endobj
+5836 0 obj <<
+/D [5787 0 R /XYZ 149.4396 250.7596 null]
+>> endobj
+5837 0 obj <<
+/D [5787 0 R /XYZ 149.4396 250.7596 null]
+>> endobj
+5838 0 obj <<
+/D [5787 0 R /XYZ 71.731 248.6028 null]
+>> endobj
+5839 0 obj <<
+/D [5787 0 R /XYZ 71.731 248.6028 null]
+>> endobj
+5840 0 obj <<
+/D [5787 0 R /XYZ 159.4023 232.8269 null]
+>> endobj
+5841 0 obj <<
+/D [5787 0 R /XYZ 71.731 230.6701 null]
+>> endobj
+5842 0 obj <<
+/D [5787 0 R /XYZ 159.4023 214.8941 null]
+>> endobj
+5843 0 obj <<
+/D [5787 0 R /XYZ 76.7123 196.9614 null]
+>> endobj
+5844 0 obj <<
+/D [5787 0 R /XYZ 149.4396 179.0286 null]
+>> endobj
+5845 0 obj <<
+/D [5787 0 R /XYZ 149.4396 179.0286 null]
+>> endobj
+5846 0 obj <<
+/D [5787 0 R /XYZ 71.731 176.8718 null]
+>> endobj
+5847 0 obj <<
+/D [5787 0 R /XYZ 71.731 176.8718 null]
+>> endobj
+5848 0 obj <<
+/D [5787 0 R /XYZ 159.4023 161.0959 null]
+>> endobj
+5849 0 obj <<
+/D [5787 0 R /XYZ 71.731 159.6563 null]
+>> endobj
+5850 0 obj <<
+/D [5787 0 R /XYZ 159.4023 143.1631 null]
+>> endobj
+5851 0 obj <<
+/D [5787 0 R /XYZ 76.7123 125.2304 null]
+>> endobj
+5852 0 obj <<
+/D [5787 0 R /XYZ 149.4396 107.2976 null]
+>> endobj
+5853 0 obj <<
+/D [5787 0 R /XYZ 149.4396 107.2976 null]
+>> endobj
+5854 0 obj <<
+/D [5787 0 R /XYZ 71.731 105.1408 null]
+>> endobj
+5855 0 obj <<
+/D [5787 0 R /XYZ 71.731 105.1408 null]
+>> endobj
+5786 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+5858 0 obj <<
+/Length 1412      
+/Filter /FlateDecode
+>>
+stream
+xÚÍZ]oÛ6\14}ϯÐc\ 24\9cø)roÛºn\1dÖ!ÀR À:\18²¥&\ 2l9°\954û÷£*R¦ì+^6K¶!\ f\92\93cÝÃÃs.)E4Ëí\ fÍ
+J
+n\ fÌ\10¦$ËV\9b³<»±\7fúé\8c:È¥Ã\\86 ï¯Ï¾yÃóÌ\10£\98Ê®?eÜ("\v\91\15\9c\11-©Î®«?Î\7f¸-ïºzwqÉd~ÎÈp¼Z\97mÝýZ.\87\8fß]½\1dNÞÕÝí¶Ú_üyýËÙ\8f×c}É\vb´-\12%ɵ&Rðì\92åÄ0*A\10\15\86\b\8e\84\v^\8cca&+\bíÇiÇ2âFX?\98\8f\8cÉcrTRbdβð\82¾îññÀÃ\7f\väqÐ\94JË#g|Êc¹Ý®ë²}5¨ös¹\1fN\96\ egu[.×uuÂÕ\8fJ\99\9c\b\9a\e\10\16Ñh\84¡\1aAu\134\82x\0\1aMx\94»]ù× Æö\93Ó穲q[ (2%\85u\98\14°j\ et\19¢\0Ñ\8e¯5«\99°£×\85\ 2«Îkæ¿uJ\83ëL[Í\94\98Î]Èc½mo\9a{2G*K\9bªÜô\85zä·\83`ÕöÞ
+æTv!\a\84w°Y7rE\14e\ 5æÆ\0\16\87án\ 4ꦸ\11à\ 1¹1ä1(à\9c÷º^5\9br=|8h>\91¬»u¿Ø7]D9ª\89*\f\9aã\0\16SÎÃpå\80º)Ê\ 1< åB\1e³vz61]"¥¶Ë\16\15HºCÔ|ºG\14\9an¨jBºOhÀé\9eðX\97Ý\¸\85$\92\19ö\12á\96J\10­)\16î\10\16±è\bC-
+ÕM°(Ä\ 3°è\84\8f^ò'd[
+E\8cÐX¶CXL8\ fÃ\85\ 3ê¦\b\að\80\84\vy|]¶\9f ¥\8f#¥$×\1c\8bv\80\8aDÛ£ðh\ 3US¢}Lc&Ú!\8fMù¸Ø¯\9b\87VnE\98\8aOÂÝ´\1d\9aì\1e3çNa8¡2Çb\1dÂ"î\1ca¨;¡º       î\84x\0î\9cð°Ãw>|W>6\9bûÍð¡½ß,ý\r\8dWÊiï\1cYv\907\aI\1d¨\1c;k·\1d\8e«]]Fº\81($a´ÀºA\b\8béía¸Þ@Ý\14½\ 1\1e\90Þ!\ fØ\81ÿý\14¸à[á\b\97\fi"!j¾\89\8c\89@U\13\9aÈ  \r¸\89Lx¬·7M»X\96û:µ\89ì»]ÓÞ }ÄÁf­Í¨½m3h+      `1k{\18nm n\8aµ\ 1\1e\90µC\1e\83\ 2ÎÊ¿\8fVüâÙáônW\7fÌsö8¯RÎ\89Ð
+m\0\ 1\92\87á*\ 1uST\ 2x@*\85<f­ó$á\Ô¸*\88b\14\89m\88\9a\8fí\88Bc\vUM\88í  \r\13\1eÍ~qg÷LÍjæ¦]Ûål\92\18\ 4\8d­ÇÍ9\92Û\13¥5\96Û\10\16\bC\1d     ÕMp$Ä\ 3\84Çô\89ÑÕ\17\99×N¦\87¦¾`òüó\ 5\r×\92è\96\9esJ
+)±\f\87°\98b\1e\86+\ 6ÔMQ\fà\ 1)\16ò@\1f»=YD\97Af$Ñ&Gò\1c¢æó<¢Ð<CU\13ò|B\ 3Îó\84\87ÛË?Ô;h3¯(QJ\17Ï»\99gEa§Ü\12\8eû2\84E|9ÂP_Bu\13|       ñ\0|9áñu;ÉÞ\93\ f\17T\9e÷\93ð\82»z¦r\923\815\84\10\16\13ÞÃpá\81º)Â\ 3< áC\1eÿxWÿÒsá{\ 1\13öÖÏ`}%@Eú\8aGá}\ 5¨\9aÒW\8eiÌô\95\90Ge\a¿\184¨ ÆRØÉ+è37\96ÜÞ60\856\96\0\16ó·\87áþ\ 6ê¦ø\eà\ 1ù;äq0óëÒ{°l+g½fã~õùÖÿ\93é`ÕºívNÌa\ 1Ü\87F­^y}Ý÷êÕ¶­öþ"­ß\0¿ÿíí\aw½»íêvv.¨Ö\84\19\8eõ\9a\10\16\99\8b\11\86Î\ 5T7a. \1eÀ\LxD{Íÿtz\Ë \92\11Á4Ò~BÔ|û\19Qhû\81ª&´\9f\13\1a\99ð¸«ëÝ¢\17wÑükí\87rA\84\91Xû      a1Ë{\18ny n\8aå\ 1\1e\90åC\1e\a\7f¿é×Èí®nnN\9cÜTÖËM\7f\9bì×W¿\80ö³2/\1fUD*\86v\8c\0\16\93ÏÃpù\80º)ò\ 1< ùB\1eÑ\8eñl\8aº÷g\84&\9aÎ<Áñ¯Ø\ 4\98Ó7l$Ó$§Æ\8c\87`Äìû2@Á¿\ 1_ËòÖendstream
+endobj
+5857 0 obj <<
+/Type /Page
+/Contents 5858 0 R
+/Resources 5856 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5785 0 R
+>> endobj
+5859 0 obj <<
+/D [5857 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+5860 0 obj <<
+/D [5857 0 R /XYZ 159.4023 708.3437 null]
+>> endobj
+5861 0 obj <<
+/D [5857 0 R /XYZ 71.731 706.9041 null]
+>> endobj
+5862 0 obj <<
+/D [5857 0 R /XYZ 159.4023 690.4109 null]
+>> endobj
+5863 0 obj <<
+/D [5857 0 R /XYZ 76.7123 672.4782 null]
+>> endobj
+5864 0 obj <<
+/D [5857 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+5865 0 obj <<
+/D [5857 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+5866 0 obj <<
+/D [5857 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+5867 0 obj <<
+/D [5857 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+5868 0 obj <<
+/D [5857 0 R /XYZ 159.4023 636.6127 null]
+>> endobj
+5869 0 obj <<
+/D [5857 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+5870 0 obj <<
+/D [5857 0 R /XYZ 159.4023 618.6799 null]
+>> endobj
+5871 0 obj <<
+/D [5857 0 R /XYZ 76.7123 600.7472 null]
+>> endobj
+5872 0 obj <<
+/D [5857 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+5873 0 obj <<
+/D [5857 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+5874 0 obj <<
+/D [5857 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+5875 0 obj <<
+/D [5857 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+5876 0 obj <<
+/D [5857 0 R /XYZ 159.4023 564.8817 null]
+>> endobj
+5877 0 obj <<
+/D [5857 0 R /XYZ 71.731 563.4421 null]
+>> endobj
+5878 0 obj <<
+/D [5857 0 R /XYZ 159.4023 546.9489 null]
+>> endobj
+5879 0 obj <<
+/D [5857 0 R /XYZ 76.7123 529.0162 null]
+>> endobj
+5880 0 obj <<
+/D [5857 0 R /XYZ 149.4396 511.0834 null]
+>> endobj
+5881 0 obj <<
+/D [5857 0 R /XYZ 149.4396 511.0834 null]
+>> endobj
+5882 0 obj <<
+/D [5857 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+5883 0 obj <<
+/D [5857 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+5884 0 obj <<
+/D [5857 0 R /XYZ 159.4023 493.1507 null]
+>> endobj
+5885 0 obj <<
+/D [5857 0 R /XYZ 71.731 491.7111 null]
+>> endobj
+5886 0 obj <<
+/D [5857 0 R /XYZ 159.4023 475.2179 null]
+>> endobj
+5887 0 obj <<
+/D [5857 0 R /XYZ 76.7123 457.2852 null]
+>> endobj
+5888 0 obj <<
+/D [5857 0 R /XYZ 149.4396 439.3524 null]
+>> endobj
+5889 0 obj <<
+/D [5857 0 R /XYZ 149.4396 439.3524 null]
+>> endobj
+5890 0 obj <<
+/D [5857 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+5891 0 obj <<
+/D [5857 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+5892 0 obj <<
+/D [5857 0 R /XYZ 159.4023 421.4197 null]
+>> endobj
+5893 0 obj <<
+/D [5857 0 R /XYZ 71.731 419.2628 null]
+>> endobj
+5894 0 obj <<
+/D [5857 0 R /XYZ 159.4023 403.4869 null]
+>> endobj
+5895 0 obj <<
+/D [5857 0 R /XYZ 76.7123 385.5542 null]
+>> endobj
+5896 0 obj <<
+/D [5857 0 R /XYZ 149.4396 367.6214 null]
+>> endobj
+5897 0 obj <<
+/D [5857 0 R /XYZ 149.4396 367.6214 null]
+>> endobj
+5898 0 obj <<
+/D [5857 0 R /XYZ 71.731 365.4646 null]
+>> endobj
+5899 0 obj <<
+/D [5857 0 R /XYZ 71.731 365.4646 null]
+>> endobj
+5900 0 obj <<
+/D [5857 0 R /XYZ 159.4023 349.6887 null]
+>> endobj
+5901 0 obj <<
+/D [5857 0 R /XYZ 71.731 347.5318 null]
+>> endobj
+5902 0 obj <<
+/D [5857 0 R /XYZ 159.4023 331.7559 null]
+>> endobj
+5903 0 obj <<
+/D [5857 0 R /XYZ 76.7123 313.8231 null]
+>> endobj
+5904 0 obj <<
+/D [5857 0 R /XYZ 149.4396 295.8904 null]
+>> endobj
+5905 0 obj <<
+/D [5857 0 R /XYZ 149.4396 295.8904 null]
+>> endobj
+5906 0 obj <<
+/D [5857 0 R /XYZ 71.731 293.7336 null]
+>> endobj
+5907 0 obj <<
+/D [5857 0 R /XYZ 71.731 293.7336 null]
+>> endobj
+5908 0 obj <<
+/D [5857 0 R /XYZ 159.4023 277.9576 null]
+>> endobj
+5909 0 obj <<
+/D [5857 0 R /XYZ 71.731 276.5181 null]
+>> endobj
+5910 0 obj <<
+/D [5857 0 R /XYZ 159.4023 260.0249 null]
+>> endobj
+5911 0 obj <<
+/D [5857 0 R /XYZ 76.7123 242.0921 null]
+>> endobj
+5912 0 obj <<
+/D [5857 0 R /XYZ 149.4396 224.1594 null]
+>> endobj
+5913 0 obj <<
+/D [5857 0 R /XYZ 149.4396 224.1594 null]
+>> endobj
+5914 0 obj <<
+/D [5857 0 R /XYZ 71.731 222.0026 null]
+>> endobj
+5915 0 obj <<
+/D [5857 0 R /XYZ 71.731 222.0026 null]
+>> endobj
+5916 0 obj <<
+/D [5857 0 R /XYZ 159.4023 206.2266 null]
+>> endobj
+5917 0 obj <<
+/D [5857 0 R /XYZ 71.731 204.0698 null]
+>> endobj
+5918 0 obj <<
+/D [5857 0 R /XYZ 159.4023 188.2939 null]
+>> endobj
+5919 0 obj <<
+/D [5857 0 R /XYZ 76.7123 170.3611 null]
+>> endobj
+5920 0 obj <<
+/D [5857 0 R /XYZ 149.4396 152.4284 null]
+>> endobj
+5921 0 obj <<
+/D [5857 0 R /XYZ 149.4396 152.4284 null]
+>> endobj
+5922 0 obj <<
+/D [5857 0 R /XYZ 71.731 150.2715 null]
+>> endobj
+5923 0 obj <<
+/D [5857 0 R /XYZ 71.731 150.2715 null]
+>> endobj
+5924 0 obj <<
+/D [5857 0 R /XYZ 159.4023 134.4956 null]
+>> endobj
+5925 0 obj <<
+/D [5857 0 R /XYZ 71.731 132.3388 null]
+>> endobj
+5926 0 obj <<
+/D [5857 0 R /XYZ 159.4023 116.5629 null]
+>> endobj
+5927 0 obj <<
+/D [5857 0 R /XYZ 76.7123 98.6301 null]
+>> endobj
+5856 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+5930 0 obj <<
+/Length 1510      
+/Filter /FlateDecode
+>>
+stream
+xÚ­Y]oÛ6\14}ϯÐc\ 2Ô\1cI\89_}ëÚuëÐ\rA\97\ 2\ 3Ö!\90-6\16àÈ\86%¯è¿\1fe\916%]\92
+6äA²rÄ{xxîÕ¥D2lþH&\b\12¹9P\85(g4Û<ßàìÉüëç\eb!+\8bYù \1f\1fn~x\9fãL!Å)Ï\1e¾f¹â\88\89"\139E\92\11\99=T\7fݾÝ\96\87N\1fïV\94á[\8a\86ãý®lt÷±\\ f?ßÜ\7f\18N~ÓÝv_µw\7f?üzóÓÃ%>Ë\ 5\ 4\89\92Ì\95D\f3\9e­(F\8a\12\ 6¢H®P!\84\99\v\96(/rq\99\vU\99\9f§\99\8b\83]Pý\¾PʦÜHA\f7Á3\7f<\17uz¼²pwÍiä2\93FR^\9ci\14\86\86ÑuÌã õñ±®z*gÚ×%(°\91@\9a\18=ìõ jÝtÃÉÞ®By<\96ßí¥¯WÌlb64W\18\15\ 4+XN\87Zù0@ÏÙhAA\99\91\86a
\r\vêî\ 2y\\ 5"ÌðÀ4\1fó0Ó\7fe\9d©\9dW»ýpü¶­7[{i[·ÃY[wz8[ëݾyjÃê     j\8c$iJ=\ f\16SÏÁÒê\ 1q\97¨\að\80ÔóyÀ~ú¿\ 5µ   És\8e8¡"\9eÜ>*\9cÜ\17T2¹¡¨\v\92{F\ 3\11\8fr½>ê\7fê²ÓÕcS>k Ë¥)t\LÒ¼í\8e\94Ìt\v\vÚ\95\85J&»\a\8bÙÕÁÒv\ 5â.±+À\ 3²«ÏcPÀÚóM¯ö\1d\83âS3º\ 5\80µÂ\18\89B$SÛ\83Å´r°´V@Ü%Z\ 1< ­|\1eA\ 3ý\aù\88B\8c\11\911ó0Ç\84\aäs¨\95\ f»Ê§\ 4\1eä\9b\8d\16\94\8f\ 4%\14\8c\e\96ÏÝ5ç1Îeó_F\8a|Ì㨻ӱyüZëÝÐÕLDï«(\95ù8\91\aÍ9»µ\1a\7f¬Ûn¼\ 4_0¦ç\11Guu\b6\9f¶#F\bÂ2/`¹\1djåÃ\0·ÎF\vÊm\9a@L\v\ 5Æ\rËíî\ 2yxnµ\15|DãZÚÌ@\ 6KY?\1f\8c$V\ 3àÓY¡öuÐ\92&\11\8a\92>,bÉ\v,iI(î\ 2KB<<\8dÜZ\8d\19}ÚtAã\14ÔT\10b\1e7qãø°\88q.°¤q ¸\v\8c3ã1ÎSk\9c\11\8d²ª\8eºmMK\r%)'\88s)^\9a¤vPÛ\ fUºéêsÞ\1e\83­M\81sÓ7$¶-\1e(ÜØ8P²¯\ 1B.hk\0\ e\9eíÜ\ 3Í'\ 1í/\9c#r.\91É\19\96ð\97\ f\8bøë\ 2\v\8a»À_3\1e ¿F4\ e\9bSÀ[f¿fô*^ê­û·\9f_à«ÜÔ@"¹\8c\eËG\85\9duA%­\ 5E]à-\88\ 6\11\8f¨»H\81rJò\94»<XÌ]\ e\96v\17\10w\89»¦<`wù4veÛ=\9e\ eÕ¹\ 1\ 3Ê\97@¹ ¾Å
+qV\8c\9cýe~¼+Ïý\9a9+\9b¾\85+ømW?ÛK߶º\19®Ù¶Î\3\9e;~\1f.~»#Æ°íp½g2\¶t^¹hv\ 4½Ù7\95\ 5·u³ÑÃõÏ¿\7føÓ\8e\9b½ah-©â(\972U)|Xd-/°äZBq\17¬å\8c\a¸\96#\1a\81\r\1f-\10Æfû\ 2løl\8dx\7fÚí\16\97Ù\v\89
+ÆROu\1f\16ÓÒÁÒZ\ 2q\97h9å\ 1kéÓhö\95\ e\95]\86L\9fN_Zv=iÍØ/¨À\94c\130\8f\17`\ f\14®¿\ e\94,¿@È\ 5Õ\17à\0\14_\9fD¬öRã[ÎD2_=XÌc\ e\96ö\18\10w\89Ǧ<`\8fù4NÇ\1d`¯þmC\8eI$]?\7fú8é\16\87á|ÒîÕXiÝWévs¬×Úm÷¶ÚscPzÌ\91©úÉôö`1é\1d,-=\10w\89ôS\1e°ô>\rÝ\94ë\9d\ e¾\ 4\17\93j¹Þïwºl¬þ¿\94­{Ûx~¼\993o<PQ"%\12\8a&\ 4õP\11=\1d*)'\10t\81\9aS\12 \98>\87\83©]û&P,\19GTJùâýÏf³?¹O\ f\8bª$\11f¯ÎT¢Lú¨p\9d¼ \92\85\12\8aº RB4\80R9â\11«\95$/\90Ry*a}XÌ`\ e\96v\18\10w\89Ŧ<`\8fù4úz\15ùj5MØë'\84?.\8f]ßFa%\89@\98\93\94\90WTLG\8bJË8\ fºDÅ           XD\8fCÿi¤îN\15Ô$\9a\1d\91Â\13\11«ýÉ\145«ã;½©\9fKÛ&^G\1aeí²§\8bR\88ôï-ã\12\88Ä\ e\95\94\18\bº@â)    Pb\9fC»«7¡¾\11\92xAÛØ\8f¸ \ eÚ¯ì\85D\92p\15ý\10ïaæßá\19\95\b\13³]p¨\9e­bÁ¯ê@À\7f\ 1Åu\0xendstream
+endobj
+5929 0 obj <<
+/Type /Page
+/Contents 5930 0 R
+/Resources 5928 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5785 0 R
+>> endobj
+5931 0 obj <<
+/D [5929 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+5932 0 obj <<
+/D [5929 0 R /XYZ 149.4396 708.3437 null]
+>> endobj
+5933 0 obj <<
+/D [5929 0 R /XYZ 149.4396 708.3437 null]
+>> endobj
+5934 0 obj <<
+/D [5929 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+5935 0 obj <<
+/D [5929 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+5936 0 obj <<
+/D [5929 0 R /XYZ 159.4023 690.4109 null]
+>> endobj
+5937 0 obj <<
+/D [5929 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+5938 0 obj <<
+/D [5929 0 R /XYZ 159.4023 672.4782 null]
+>> endobj
+5939 0 obj <<
+/D [5929 0 R /XYZ 76.7123 654.5454 null]
+>> endobj
+5940 0 obj <<
+/D [5929 0 R /XYZ 149.4396 636.6127 null]
+>> endobj
+5941 0 obj <<
+/D [5929 0 R /XYZ 149.4396 636.6127 null]
+>> endobj
+5942 0 obj <<
+/D [5929 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+5943 0 obj <<
+/D [5929 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+5944 0 obj <<
+/D [5929 0 R /XYZ 159.4023 618.6799 null]
+>> endobj
+5945 0 obj <<
+/D [5929 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+5946 0 obj <<
+/D [5929 0 R /XYZ 159.4023 600.7472 null]
+>> endobj
+5947 0 obj <<
+/D [5929 0 R /XYZ 76.7123 546.9489 null]
+>> endobj
+5948 0 obj <<
+/D [5929 0 R /XYZ 129.5143 529.0162 null]
+>> endobj
+5949 0 obj <<
+/D [5929 0 R /XYZ 129.5143 529.0162 null]
+>> endobj
+5950 0 obj <<
+/D [5929 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+5951 0 obj <<
+/D [5929 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+5952 0 obj <<
+/D [5929 0 R /XYZ 139.477 511.0834 null]
+>> endobj
+5953 0 obj <<
+/D [5929 0 R /XYZ 71.731 473.2254 null]
+>> endobj
+5954 0 obj <<
+/D [5929 0 R /XYZ 71.731 460.1744 null]
+>> endobj
+5955 0 obj <<
+/D [5929 0 R /XYZ 71.731 458.9291 null]
+>> endobj
+5956 0 obj <<
+/D [5929 0 R /XYZ 129.5143 439.8505 null]
+>> endobj
+5957 0 obj <<
+/D [5929 0 R /XYZ 71.731 437.6937 null]
+>> endobj
+5958 0 obj <<
+/D [5929 0 R /XYZ 71.731 437.6937 null]
+>> endobj
+5959 0 obj <<
+/D [5929 0 R /XYZ 139.477 421.9178 null]
+>> endobj
+5960 0 obj <<
+/D [5929 0 R /XYZ 139.477 421.9178 null]
+>> endobj
+5961 0 obj <<
+/D [5929 0 R /XYZ 71.731 419.761 null]
+>> endobj
+5962 0 obj <<
+/D [5929 0 R /XYZ 71.731 419.761 null]
+>> endobj
+5963 0 obj <<
+/D [5929 0 R /XYZ 149.4396 403.985 null]
+>> endobj
+5964 0 obj <<
+/D [5929 0 R /XYZ 76.7123 386.0523 null]
+>> endobj
+5965 0 obj <<
+/D [5929 0 R /XYZ 139.477 368.1195 null]
+>> endobj
+5966 0 obj <<
+/D [5929 0 R /XYZ 139.477 368.1195 null]
+>> endobj
+5967 0 obj <<
+/D [5929 0 R /XYZ 71.731 365.9627 null]
+>> endobj
+5968 0 obj <<
+/D [5929 0 R /XYZ 71.731 365.9627 null]
+>> endobj
+5969 0 obj <<
+/D [5929 0 R /XYZ 149.4396 350.1868 null]
+>> endobj
+5970 0 obj <<
+/D [5929 0 R /XYZ 76.7123 332.254 null]
+>> endobj
+5971 0 obj <<
+/D [5929 0 R /XYZ 139.477 314.3213 null]
+>> endobj
+5972 0 obj <<
+/D [5929 0 R /XYZ 139.477 314.3213 null]
+>> endobj
+5973 0 obj <<
+/D [5929 0 R /XYZ 71.731 312.1645 null]
+>> endobj
+5974 0 obj <<
+/D [5929 0 R /XYZ 139.477 296.3885 null]
+>> endobj
+5975 0 obj <<
+/D [5929 0 R /XYZ 139.477 296.3885 null]
+>> endobj
+5976 0 obj <<
+/D [5929 0 R /XYZ 71.731 294.2317 null]
+>> endobj
+5977 0 obj <<
+/D [5929 0 R /XYZ 139.477 278.4558 null]
+>> endobj
+5978 0 obj <<
+/D [5929 0 R /XYZ 139.477 278.4558 null]
+>> endobj
+5979 0 obj <<
+/D [5929 0 R /XYZ 71.731 276.2989 null]
+>> endobj
+5980 0 obj <<
+/D [5929 0 R /XYZ 71.731 276.2989 null]
+>> endobj
+5981 0 obj <<
+/D [5929 0 R /XYZ 149.4396 260.523 null]
+>> endobj
+5982 0 obj <<
+/D [5929 0 R /XYZ 76.7123 242.5903 null]
+>> endobj
+5983 0 obj <<
+/D [5929 0 R /XYZ 139.477 224.6575 null]
+>> endobj
+5984 0 obj <<
+/D [5929 0 R /XYZ 139.477 224.6575 null]
+>> endobj
+5985 0 obj <<
+/D [5929 0 R /XYZ 71.731 222.5007 null]
+>> endobj
+5986 0 obj <<
+/D [5929 0 R /XYZ 139.477 206.7248 null]
+>> endobj
+5987 0 obj <<
+/D [5929 0 R /XYZ 139.477 206.7248 null]
+>> endobj
+5988 0 obj <<
+/D [5929 0 R /XYZ 71.731 205.2852 null]
+>> endobj
+5989 0 obj <<
+/D [5929 0 R /XYZ 139.477 188.792 null]
+>> endobj
+5990 0 obj <<
+/D [5929 0 R /XYZ 139.477 188.792 null]
+>> endobj
+5991 0 obj <<
+/D [5929 0 R /XYZ 71.731 186.6352 null]
+>> endobj
+5992 0 obj <<
+/D [5929 0 R /XYZ 71.731 186.6352 null]
+>> endobj
+5993 0 obj <<
+/D [5929 0 R /XYZ 149.4396 170.8593 null]
+>> endobj
+5994 0 obj <<
+/D [5929 0 R /XYZ 76.7123 152.9265 null]
+>> endobj
+5995 0 obj <<
+/D [5929 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+5996 0 obj <<
+/D [5929 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+5997 0 obj <<
+/D [5929 0 R /XYZ 71.731 133.5542 null]
+>> endobj
+5998 0 obj <<
+/D [5929 0 R /XYZ 139.477 117.061 null]
+>> endobj
+5999 0 obj <<
+/D [5929 0 R /XYZ 139.477 117.061 null]
+>> endobj
+6000 0 obj <<
+/D [5929 0 R /XYZ 71.731 114.9042 null]
+>> endobj
+6001 0 obj <<
+/D [5929 0 R /XYZ 139.477 99.1283 null]
+>> endobj
+6002 0 obj <<
+/D [5929 0 R /XYZ 139.477 99.1283 null]
+>> endobj
+6003 0 obj <<
+/D [5929 0 R /XYZ 71.731 96.9714 null]
+>> endobj
+6004 0 obj <<
+/D [5929 0 R /XYZ 71.731 96.9714 null]
+>> endobj
+5928 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+6007 0 obj <<
+/Length 1628      
+/Filter /FlateDecode
+>>
+stream
+xÚµYß\8f£6\10~ß¿"\8f\89´q±ÁÆÜ۶׫¶j«ènOªÔ«"\12¼\eK\ 4R {·ÿ}Ç`\13\ 3æÇ©ªö\ 1Â\8e=ß|3\1e\7f\ 6¼òà\ f¯B\8cB\1f.$B\84Q²:\9eï¼Õ\vüë\97;¬M¶Úfk\eýøt÷Ã\aß[E(b\84­\9e\9eW~Ä\10\r\83\13Ä)櫧ä¯õO§øR\89b³%Ô[\13Ô\wi\9c\89ê·øÐü|Ø=67¿\8bê\94'åæï§_ï~~jýS?D\11\a'\93 ý\88#êQ¶Ú\12\ fE\ 4\15ö#\14\84!Äâqä\a~ØÆB¢U\88°\8a\13b1f­\95\8aå\v\8f\r\a\18°\85leÏg¼ö¯7\14f\94\13Æ\8dR\1c\0\fàµ\8bCfÕ\0\ 60Cqà¯XH\08wSÔZmm3Gô\83ÙFÃ\87\{$\88\9c~ÇÃ7£\868|¾â\10>\vì,t`\9cãoû2\95¯¢¨\v¥Ç\18Ã\881\1e\82\1feû®©+ ì^WXüM\9e¯çæGv=\1fLiæÏÍ\15\10º~Ý`ºV\1eê\87Õ)®Ì\9dÐv²ÒwR\eÅ\87T?©òæz,D\fV£©¢\ 1¢\ 1\ræRe\99M¥Ê\98ͧÊáwIªú8Ü©²aèT\1d\85+S\94!Â9ÿ/\99R\13ÿ\9f     ò\19b\98\84s  ²Ì¦\12dÌæ\13äð»$A}\1cî\ 4Ù0ÒüEfûC\\8a¥    *«Bf/:G\9fZ\8eëd4·\97B|ñ<òm\9c\11\v£h\8eVËl\8aVc6O«Ãï\12Zû8Ü´Ú0\12¨ª}S\\89«G\85(ðF[ÔûØ\90\1ag\89®WyÖ\8f¾\9eDÖ¯o\91\9bþ÷\ 6ðҮîäÞ8ÐãÄ1Ï\92ÒL\92\99´}þãñO=ß%?\9eƳçy(\fÂÙ\rÆ2\9bÊ\9e1\9bÏ\9eÃï\92ìõq¸³gÃHãJV×ĵ$\ 2\8a(\89H7uI~\85Îb²'\8eò\1c§Í\8fv¦Nã궨1\9e)\a\15\85\83¹ÝÁ6\9bà¹5\9båÙåw\ 1Ï\ 3\1cN\9e;0d¹¿\0sòèê= áx\7f\8d\1cò<\15\99ÞÕcS]ù¯R¨}»Y\0\9ff\98\ 5\88s<×Þm³)\86\8dÙ<Ã\ e¿K\18îãp3lø\b\15\a{ùý}è\83\92@y!äË ãÈ\ 4z\8eT]ÞlÊfûU\1eÇ        \ f\18\8a\ 2>×øm³)Â\8dÙ<á\ e¿K\bïãp\13nè      wr\1dxp8  £1²wÂ0i´É×\93\84\e\86,û)8\884Ï^Êq®áÆÃl®MÛfS\\e³y®\1d~\97pÝÇáæÚ\86\11\1f\ e\85x\95j\8bÛgñÙÕ®9\9c\bY8¥`\1eÔ$µà¯'ê³lÍ\v1\86\bN\955 -\ 6qäc\0¹e\1c\9b\8e\ 6Í\8d«#nÈ׿\88ê\93ÒD\ f\15¸;l\88·¾VN\19\1c\84\88\13X\85[uj\ eY³pwE^åÕÛE¼kGÜØÐc·\ 4\8e:X\17Þ\88»:\88/\1eõâkuº·¤Ú>¶\r÷j)§ê\98\1exkmV\88êZdõ\7fD\9a\940       v ß\1a06ú÷¢<\16òRÉ<\9bÂ\ fB\942ÒàÿX{3B]7\9c¸(â·\9eè¯\8aë±2\ 2'ϪXf\90\11\vø\99¶j?¿V\ 3qÚJªî9Ï41\9b<ý®â!sü³w°\98\9ar\83×Ã\81Ï\8a\16(Ë-\86\1cRæ×\1c´º Ë\93ºcëìÕ  èz,E¥á=>/Èjwì\ 5$J=kÒãD.àߢÒAH½/@ÄÍÖPêRÊ\r\19®¨\9b\8c~\8f\97n\9a\8c\8fÌ(\81±Á:¸s\\1dOmÉ´\9cw¹ú*ÓÔôY{9\88¤G;4\ fȯ½PZ*]±Þ¨\1fÀ¾©Â~~:e=\85Ìx\84\ 3\9e\1f²Úãç²y\89ás\bü­¹Ñ>ýpýÏU\14úá\80*eøÜ\Û\93¶zVèg\10÷àU\895Æl_p«"\ 3\13ã¨\10\1a\8fPgúz\99\ 1\94Ýã\18L>\r3T.]\[¯\aL\ 1:_îXo\ edqÛ\0úÅkj³³/·\81Õ«E'Ä
+Lõ\8fä,³¶ö´­\89h¤F\8d/X\88·ù­ºvdz¡t\8d\96öè\874ÍkÁlªì#hërév\13« 4A\17©o®eg\ 3Q]l)\9a\9d\8a .`·\85%Ø è¨\v\f:\84\82¨Å\8c">öÆÌ\18m-«\9b¦\89B¯Ñ4ý¹F%\r\ f0q9\1dW4fÐ\0DWÐ\18ae\83P{´\830\12\80æ\19H\18è\99÷½·çj¼ê¿ÇXí¼¶åµ\18?\ 5a\10 \11Áþ\8cP´Í&\84bk6+\14]~\17\bÅ\ 1\ e§PìÀx\0^\9a/\vî\97\,\b\83)\89è õÜL×\11ì×R\8c×-\ 6ü\94ò¹ÂµÌ¦*×\98Í\97®Ãï\92Úíã\18)^\e\87-@\94øx\96õv:d\1cC#Á,¢]Ê\1dZC}æ趻F*ô\82Õ\1f§\ 2\8e8L;ùýʲ\19~¾¢\ 4\948öx;\93B\17±Ñ\8fQ\ e\87ÿ\ 2ß\82uêendstream
+endobj
+6006 0 obj <<
+/Type /Page
+/Contents 6007 0 R
+/Resources 6005 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5785 0 R
+>> endobj
+6008 0 obj <<
+/D [6006 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+6009 0 obj <<
+/D [6006 0 R /XYZ 149.4396 708.3437 null]
+>> endobj
+6010 0 obj <<
+/D [6006 0 R /XYZ 76.7123 690.4109 null]
+>> endobj
+6011 0 obj <<
+/D [6006 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+6012 0 obj <<
+/D [6006 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+6013 0 obj <<
+/D [6006 0 R /XYZ 71.731 671.0386 null]
+>> endobj
+6014 0 obj <<
+/D [6006 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+6015 0 obj <<
+/D [6006 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+6016 0 obj <<
+/D [6006 0 R /XYZ 71.731 653.1059 null]
+>> endobj
+6017 0 obj <<
+/D [6006 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+6018 0 obj <<
+/D [6006 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+6019 0 obj <<
+/D [6006 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+6020 0 obj <<
+/D [6006 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+6021 0 obj <<
+/D [6006 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+6022 0 obj <<
+/D [6006 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+6023 0 obj <<
+/D [6006 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+6024 0 obj <<
+/D [6006 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+6025 0 obj <<
+/D [6006 0 R /XYZ 71.731 599.3076 null]
+>> endobj
+6026 0 obj <<
+/D [6006 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+6027 0 obj <<
+/D [6006 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+6028 0 obj <<
+/D [6006 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+6029 0 obj <<
+/D [6006 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+6030 0 obj <<
+/D [6006 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+6031 0 obj <<
+/D [6006 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+6032 0 obj <<
+/D [6006 0 R /XYZ 139.477 546.9489 null]
+>> endobj
+6033 0 obj <<
+/D [6006 0 R /XYZ 139.477 546.9489 null]
+>> endobj
+6034 0 obj <<
+/D [6006 0 R /XYZ 71.731 544.7921 null]
+>> endobj
+6035 0 obj <<
+/D [6006 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+6036 0 obj <<
+/D [6006 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+882 0 obj <<
+/D [6006 0 R /XYZ 71.731 506.1021 null]
+>> endobj
+382 0 obj <<
+/D [6006 0 R /XYZ 264.6446 460.8478 null]
+>> endobj
+6037 0 obj <<
+/D [6006 0 R /XYZ 71.731 440.7074 null]
+>> endobj
+6038 0 obj <<
+/D [6006 0 R /XYZ 161.0655 427.9711 null]
+>> endobj
+6039 0 obj <<
+/D [6006 0 R /XYZ 71.731 415.8516 null]
+>> endobj
+6040 0 obj <<
+/D [6006 0 R /XYZ 71.731 384.822 null]
+>> endobj
+6041 0 obj <<
+/D [6006 0 R /XYZ 168.8063 373.4754 null]
+>> endobj
+6042 0 obj <<
+/D [6006 0 R /XYZ 71.731 346.412 null]
+>> endobj
+6043 0 obj <<
+/D [6006 0 R /XYZ 71.731 295.0212 null]
+>> endobj
+6044 0 obj <<
+/D [6006 0 R /XYZ 71.731 251.7834 null]
+>> endobj
+6045 0 obj <<
+/D [6006 0 R /XYZ 181.5683 240.7731 null]
+>> endobj
+6046 0 obj <<
+/D [6006 0 R /XYZ 71.731 230.7109 null]
+>> endobj
+6047 0 obj <<
+/D [6006 0 R /XYZ 71.731 197.2877 null]
+>> endobj
+6048 0 obj <<
+/D [6006 0 R /XYZ 71.731 186.1779 null]
+>> endobj
+6049 0 obj <<
+/D [6006 0 R /XYZ 71.731 184.9326 null]
+>> endobj
+6050 0 obj <<
+/D [6006 0 R /XYZ 129.5143 165.854 null]
+>> endobj
+6051 0 obj <<
+/D [6006 0 R /XYZ 129.5143 165.854 null]
+>> endobj
+6052 0 obj <<
+/D [6006 0 R /XYZ 71.731 164.4145 null]
+>> endobj
+6053 0 obj <<
+/D [6006 0 R /XYZ 71.731 164.4145 null]
+>> endobj
+6054 0 obj <<
+/D [6006 0 R /XYZ 139.477 147.9213 null]
+>> endobj
+6055 0 obj <<
+/D [6006 0 R /XYZ 139.477 147.9213 null]
+>> endobj
+6056 0 obj <<
+/D [6006 0 R /XYZ 76.7123 129.9885 null]
+>> endobj
+6057 0 obj <<
+/D [6006 0 R /XYZ 129.5143 112.0558 null]
+>> endobj
+6058 0 obj <<
+/D [6006 0 R /XYZ 129.5143 112.0558 null]
+>> endobj
+6059 0 obj <<
+/D [6006 0 R /XYZ 71.731 109.899 null]
+>> endobj
+6060 0 obj <<
+/D [6006 0 R /XYZ 71.731 109.899 null]
+>> endobj
+6005 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+6063 0 obj <<
+/Length 1341      
+/Filter /FlateDecode
+>>
+stream
+xÚÍZ]oÛ6\14}ϯУ\rÌ\1c¿?úÖ\rÛ°a\1d
+ÌoëP¨¶\93\b°åÀV2ôß\8f\9aD\99²®xÙÖ\ 1\86\0\91\93\1cë\1e\1e\9esIFf\ 5õ_¬0\8c\18á/Ü\11®\15/6\87;Z<ø?ýrÇzȪǬbÐ\ fë»ï\7f\16´pÄi®\8bõ}!\9c&ÊÈÂ\bN¬b¶XoÿZüøX>5»ÓrÅ\15]pÒ]ßïËz×ü^~ê~|ûþ×îÅ»]óxÜ\9e\97\7f¯\7f»ûi=ÔWÂ\10g}\91$II-\91Ú\8abÅ)q\9c)\10Åü-\14\93\1ee<^Ha\86ÁpW\18ÂÚ\81úÁ\f¸\ 1Ö\8eæ\ 3çê\9a\1dóÃ¥\º"¾a¨{}½ð\bï\ 2y\DeÂ\11\98Fy:\95\9f\8e÷ݵª\9bïºW\7fî«Í®{Y6Í©ú´ätñÜô¿ª¶»º©>PÊý¤\\8f$\8cY;J$£\ eQ0\86%\14\1c\82\f\ 5!\1eS\ 5G4ÎÍéy\13\14{;\95©\15\0\12\85\9b\19î¯\16vb\0­b\14 Ðõ½fõ\91Ìûßh°ê¼>á]S\1aÂ\16Öë£å\7f4¤§á³;æQ\97\87]ËãJL.     m+´\907\9dT^ʪ~èÝØ\a\1d0h\ f\9b\f-\14W\92(©$,h@­b\18 èän³\92*/\8e¢\1c¬;/ix\17È#²\9cò<(\17c\1e\9d\ 2Y)m>?õ¯Â<À¢      M4ã\ 6\13-\82¥D\v0\4 n\8eh\0\ f\98Ǭ\93n¡c\b ¥ÄH\83\859B%Â\1cPx\98\81ª9a¾¦1\13æ\98ǹ\15écµ\ 5\ 2-\15±ÖØq¤ýb\82æ¹ÅÌùRY¿\ 3`\12\vs\fKør\80¡¾\84êfø\12â\ 1ørÄ\ 3\o\93\8bë0\1c-½ä\f\vm\fK\89\13`¸8@Ý\1cq\0\1e\9081\8fÜýIR¯>PÊo#(ÓH8cÔ|8\a\14\1aN¨jF8'4àp\8extáì\9a\97o\pL\9d#Úê\e§\941B­@S\1aÁRF\f\88\1c#\ 2< #Æ<n²+\ e#\94N\10¦(\16Ü\18\96Ðk\80¡zAu3ô\82x\0z\8dx¼ÖÁ¢Ï\9fT\86\90,Ǩù,\ f(4ËPÕ\8c,OhÀY\1eñx)÷Ïà¶Ù\11a\9d}\8d\8d³ÿF\84âX\8acXÊ\95\ 1\86»\12¨\9bãJ\80\aäÊ\98Ç\17lø^\96\-Â$Àzqæ\8f\81\ eMq\ 4\15`¸^@Ý\1c½\0\1e\90^1\8foÛ3ÏKØ'OXE\94\92H\8acÔ|\8a\a\14\9ab¨jF\8a'4à\14\8fx\Öâöü0³ K"¨_Áoº"\vm\88æ\fËr\fKxs\80¡Þ\84êfx\13â\ 1xsÄ#w9¹\9cܲÖf!Û\r\92ÅR\1dÃRÊ\ 5\18®\1cP7G9\80\a¤\Ìã\eÖæL1C&\99 \96{IÒù\8eP\89|\a\14\9eo jN¾¯iÌä;æQ\1f·s§aJ\14½ña\98;\7fÄv\14\vu\fKXs\80¡Ö\84êfX\13â\ 1XsÄãâÃ?¼´\80Ó$]ô\80ªW¬ì×¥}Õ.7/K¦\16á)ÁØÀ³²\1aã\19{\v ²F°\94¬\ 1\86Ë
+ÔÍ\91\15à\ 1É\1aóH&þõ\95î#Ì%'Ôq¤\1dĨùv0 Ðv\0UÍh\a\13\1ap;\18ñ8TõÇÓq?Ó\12\94Á\88\e÷\ 4.ý¡Ë¡=!\82¥Ì\e`¸y\81º9æ\ 5x@æ\8dy\\9cú®ª«Ãó!<XQt¿+Ͻ~OÇÖ\94ÿìN÷Ï{ÿ'Öý¶\9d\8d~åz,{䦬{#ï®´ß<\96õÃ\80¯Î_ÔE¨&\9c\8bD°ÔD\ 4\18>\11\9c\89\0x@\13\11óHv\91ÿãÜô½\82\19J\84fHß\89Qó}g@¡}\aª\9aÑw&4à¾3â±Ý\9d7§ê©©\8e5Ôw\18ÑÚoý^á_\ 6Lq"¹ÅºO\fK\98~\80¡¦\87êf\98\1eâ\ 1\98~Äã«\9e\11]M\b¬\9d\90D:\855\8c\18\96Ò.Àpí\80º9Ú\ 1< íb\1e·zä\96\90³ÿ@\89´Ä2í\92\9f9\89\8f\9c\8f\96\8a\89áN-\7fgf?@\ 2\14ü\17\89ð´\81endstream
+endobj
+6062 0 obj <<
+/Type /Page
+/Contents 6063 0 R
+/Resources 6061 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 5785 0 R
+>> endobj
+6064 0 obj <<
+/D [6062 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+6065 0 obj <<
+/D [6062 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+6066 0 obj <<
+/D [6062 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+6067 0 obj <<
+/D [6062 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+6068 0 obj <<
+/D [6062 0 R /XYZ 71.731 688.9714 null]
+>> endobj
+6069 0 obj <<
+/D [6062 0 R /XYZ 71.731 688.9714 null]
+>> endobj
+6070 0 obj <<
+/D [6062 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+6071 0 obj <<
+/D [6062 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+6072 0 obj <<
+/D [6062 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+6073 0 obj <<
+/D [6062 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+6074 0 obj <<
+/D [6062 0 R /XYZ 159.4023 654.5454 null]
+>> endobj
+6075 0 obj <<
+/D [6062 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+6076 0 obj <<
+/D [6062 0 R /XYZ 159.4023 636.6127 null]
+>> endobj
+6077 0 obj <<
+/D [6062 0 R /XYZ 76.7123 618.6799 null]
+>> endobj
+6078 0 obj <<
+/D [6062 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+6079 0 obj <<
+/D [6062 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+6080 0 obj <<
+/D [6062 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+6081 0 obj <<
+/D [6062 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+6082 0 obj <<
+/D [6062 0 R /XYZ 159.4023 582.8144 null]
+>> endobj
+6083 0 obj <<
+/D [6062 0 R /XYZ 71.731 581.3749 null]
+>> endobj
+6084 0 obj <<
+/D [6062 0 R /XYZ 159.4023 564.8817 null]
+>> endobj
+6085 0 obj <<
+/D [6062 0 R /XYZ 76.7123 546.9489 null]
+>> endobj
+6086 0 obj <<
+/D [6062 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+6087 0 obj <<
+/D [6062 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+6088 0 obj <<
+/D [6062 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+6089 0 obj <<
+/D [6062 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+6090 0 obj <<
+/D [6062 0 R /XYZ 159.4023 511.0834 null]
+>> endobj
+6091 0 obj <<
+/D [6062 0 R /XYZ 71.731 509.6439 null]
+>> endobj
+6092 0 obj <<
+/D [6062 0 R /XYZ 159.4023 493.1507 null]
+>> endobj
+6093 0 obj <<
+/D [6062 0 R /XYZ 76.7123 475.2179 null]
+>> endobj
+6094 0 obj <<
+/D [6062 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+6095 0 obj <<
+/D [6062 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+6096 0 obj <<
+/D [6062 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+6097 0 obj <<
+/D [6062 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+6098 0 obj <<
+/D [6062 0 R /XYZ 159.4023 439.3524 null]
+>> endobj
+6099 0 obj <<
+/D [6062 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+6100 0 obj <<
+/D [6062 0 R /XYZ 159.4023 421.4197 null]
+>> endobj
+6101 0 obj <<
+/D [6062 0 R /XYZ 76.7123 403.4869 null]
+>> endobj
+6102 0 obj <<
+/D [6062 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+6103 0 obj <<
+/D [6062 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+6104 0 obj <<
+/D [6062 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+6105 0 obj <<
+/D [6062 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+6106 0 obj <<
+/D [6062 0 R /XYZ 159.4023 367.6214 null]
+>> endobj
+6107 0 obj <<
+/D [6062 0 R /XYZ 71.731 365.4646 null]
+>> endobj
+6108 0 obj <<
+/D [6062 0 R /XYZ 159.4023 349.6887 null]
+>> endobj
+6109 0 obj <<
+/D [6062 0 R /XYZ 76.7123 331.7559 null]
+>> endobj
+6110 0 obj <<
+/D [6062 0 R /XYZ 149.4396 313.8231 null]
+>> endobj
+6111 0 obj <<
+/D [6062 0 R /XYZ 149.4396 313.8231 null]
+>> endobj
+6112 0 obj <<
+/D [6062 0 R /XYZ 71.731 311.6663 null]
+>> endobj
+6113 0 obj <<
+/D [6062 0 R /XYZ 71.731 311.6663 null]
+>> endobj
+6114 0 obj <<
+/D [6062 0 R /XYZ 159.4023 295.8904 null]
+>> endobj
+6115 0 obj <<
+/D [6062 0 R /XYZ 71.731 294.4508 null]
+>> endobj
+6116 0 obj <<
+/D [6062 0 R /XYZ 159.4023 277.9576 null]
+>> endobj
+6117 0 obj <<
+/D [6062 0 R /XYZ 76.7123 260.0249 null]
+>> endobj
+6118 0 obj <<
+/D [6062 0 R /XYZ 149.4396 242.0921 null]
+>> endobj
+6119 0 obj <<
+/D [6062 0 R /XYZ 149.4396 242.0921 null]
+>> endobj
+6120 0 obj <<
+/D [6062 0 R /XYZ 71.731 239.9353 null]
+>> endobj
+6121 0 obj <<
+/D [6062 0 R /XYZ 71.731 239.9353 null]
+>> endobj
+6122 0 obj <<
+/D [6062 0 R /XYZ 159.4023 224.1594 null]
+>> endobj
+6123 0 obj <<
+/D [6062 0 R /XYZ 71.731 222.0026 null]
+>> endobj
+6124 0 obj <<
+/D [6062 0 R /XYZ 159.4023 206.2266 null]
+>> endobj
+6125 0 obj <<
+/D [6062 0 R /XYZ 76.7123 188.2939 null]
+>> endobj
+6126 0 obj <<
+/D [6062 0 R /XYZ 149.4396 170.3611 null]
+>> endobj
+6127 0 obj <<
+/D [6062 0 R /XYZ 149.4396 170.3611 null]
+>> endobj
+6128 0 obj <<
+/D [6062 0 R /XYZ 71.731 168.2043 null]
+>> endobj
+6129 0 obj <<
+/D [6062 0 R /XYZ 71.731 168.2043 null]
+>> endobj
+6130 0 obj <<
+/D [6062 0 R /XYZ 159.4023 152.4284 null]
+>> endobj
+6131 0 obj <<
+/D [6062 0 R /XYZ 71.731 150.2715 null]
+>> endobj
+6132 0 obj <<
+/D [6062 0 R /XYZ 159.4023 134.4956 null]
+>> endobj
+6061 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+6135 0 obj <<
+/Length 1369      
+/Filter /FlateDecode
+>>
+stream
+xÚ­X]o£8\14}ï¯à1\91\1a/66¶ûÖý\1aÍjfUÍæmgUÑ\846H\ 4\1dÍ¿ßkl\13\ 3æcG«>@ÊÁ÷øÜc\9b{q\10Â\1f\ e8F<\82\v\91\88Ä\8c\ 4\87ó]\18¼Á£\ fwØ@v\ 6³sA?ïï~ú=
+\ 3\89dLâ`ÿ\1aD2F\8cÓ\80G\ 4       \86E°?þ½ùå\94\\9a´Úî\b\v7\ 4éëS\9e\14ió)yÑ?\1f\9f\9bÏis*\8fõö\9fý\1fw¿í»ø,âH
+\b2K\92b\81h\14Ê`\17    \88O#/
+c\89\18Ã<ØÅ2D\14\ 3ÞN\86È\0âð\10«Ét¸\ e¦fó\95\106d\87       A\11Å$p\a´q\87×\e\ fûÖ\98G$\ 2\ 1¢Æ´å\ 1Sf\18&ÓãQ¥Íµ*\9e_³4×rµìo©à\ 4Q""\b¥Ð\ fZݤª\92ïÛ\98mîõïOYÝè»òU_¿\86!iGl\7f5¥¾ê`ãi[b*\18\17þ¤t¨\9d\v»É\8d\95¯zÓ´°I¹Á]!¡Ò\ewZnû\96\97ÇM8\1cIxÊû4ê¦Ê\8a7E\ 4\ 6\ 2,a0\1f\16"\11\ 2¾´
\ f\9d\89B\8c\be\8b\96t`s\96´°eKzâ®±¤\87\87£Q\97+\97\87vWÏN ÛõÐL\1a\87\89\bE\18Æ\9c7\8e\v\9b1N\a[4\8e
\8cxôש1N\8fF\91\9cSÏê$\14\85¡\94ýÕ©Mf\96æ_yvHͪmàÁË\96\84\9bkcþÕ|¿\98;\eÀ¯oÌPÄ¥XÒ×\81ÍékaËúzâ®ÑwÈï¯K£V2=gG\8fÆ\94!!¸èk\9c\15ÍXàì\98\16MÖn}Õ´\96\94#J9^ÒÒ\81ÍiiaËZzâ®ÑrÈï¥KCk©Ý\ 6Nó«*%\8aE¼BT\8fk×élo\16tv`s:Û\9be\9d=q×è<äá×Ù¥ñ\9eäW裂Q$$ÿáMá}KØÆ\8eí×\16\ 4^Üo\1dØ\9c\16¶¬­'î\1am\87<üÚº4nîU[ä\84\85)\8aÂ\18ÿ\98\87o;ï*7S\19¡\98\8a¥\1dØ\85Í(ÞÁ\16\15÷Å]¡ø\88\87\1e\8d¢<NmÀ!b!\97S:ÿ      /z\94¤¡ý:ÍÌGDbVB\9e)\83¿o1ÛØr¢\9f É$p\86ø¢ë\1dÔ\
+\fj9\ 3ã k\120 á×ßápÎ\8açªÌ'R\10«q9\99JÁç¬ÈÎ׳ýôga\9e&¶"¸\94JíoiõzÍá\116\95\0\842\vá\94\18ä!)L\86R[M\98ô\1cNIñÖá³ú?%\8dqÄE´t\ e¸°¹´YØrÞ<q×$nÈÃ\9f9\97Æ1­\ fUvi²²ð¥\ e£8\16ü\7føD\1cÇ\81érD0k¹µbRLUõ!\10\8e\ 5m#B\ 5/U±ÎÅæCÚ´±\1eÝ(ûm\1c\86¯ø\84¯
+AB\18\ 1xÌÛ\ 1\9fª²)\15«\87î\8d\9b@æÝ\1d\81Yc¡KÜ\89°Â\84íL\9b\\9bÓ½G\a}\ 4¨m%oz\e\8b©\9dm­Ûº{<\89\9dåäNâ×\9b\96k§aJCC°p+qO­dp\87²h\12X\9dPt\9a\1cÂÏÜ\ eòR^\9bnS\ð@m:.\1f_\97%ÒÛ\83\89Roñæ\92\1eô¾|´ôÛ]\ 6L   5+\8a\9dܾB©\9e\1deÝìà_íìàj\89\80(¼`Ì
+\ fݳ ¾7cTfX3\94.*\9dáY;<ð5Ã\8d"P'Bï¡\ eÁ6e\91\7f_&ª\87©}\12\9c\93æpêÒÕ\9cÒ[?å&í·,ÏõÝKêZ1=\ e\924pè 1·¬\18C\eönàz\98º\9e\83æ\88¬\     \8fynN\b\13à\v\1c\rõÚE\91\1cáà2ì/\99¹¹Ö½eÚ¤\a»®ÕGÆZbOê\ 3!© .\ 6Ýg:2\98ª³a±#ãÂf:2\1dl±#ã\8b»¢#3âáo\12öx¨\9dq¢û\80G\a\v¬©ûA7V½¯\96ã!i\ f\ f\ay­¦On\1c©\ fòÅ®\8e\v\9b9¹;ØâÉí\8b»âä\1eñð\9eÜ=\1a\8f \8bîT{Ôe1|\1cs:sp?zd=ëázmWX\ fÃÉ\9a><\15\b*\1e9Ûªw0ãN=#\ 2< e7\92â*ÅdßÝ\13ð_i³£qendstream
+endobj
+6134 0 obj <<
+/Type /Page
+/Contents 6135 0 R
+/Resources 6133 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6191 0 R
+>> endobj
+6136 0 obj <<
+/D [6134 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+6137 0 obj <<
+/D [6134 0 R /XYZ 76.7123 708.3437 null]
+>> endobj
+6138 0 obj <<
+/D [6134 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+6139 0 obj <<
+/D [6134 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+6140 0 obj <<
+/D [6134 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+6141 0 obj <<
+/D [6134 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+6142 0 obj <<
+/D [6134 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+6143 0 obj <<
+/D [6134 0 R /XYZ 71.731 634.6202 null]
+>> endobj
+6144 0 obj <<
+/D [6134 0 R /XYZ 71.731 621.5692 null]
+>> endobj
+6145 0 obj <<
+/D [6134 0 R /XYZ 71.731 620.3239 null]
+>> endobj
+6146 0 obj <<
+/D [6134 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+6147 0 obj <<
+/D [6134 0 R /XYZ 71.731 599.0885 null]
+>> endobj
+6148 0 obj <<
+/D [6134 0 R /XYZ 71.731 599.0885 null]
+>> endobj
+6149 0 obj <<
+/D [6134 0 R /XYZ 139.477 583.3126 null]
+>> endobj
+6150 0 obj <<
+/D [6134 0 R /XYZ 139.477 583.3126 null]
+>> endobj
+6151 0 obj <<
+/D [6134 0 R /XYZ 71.731 581.1557 null]
+>> endobj
+6152 0 obj <<
+/D [6134 0 R /XYZ 139.477 565.3798 null]
+>> endobj
+6153 0 obj <<
+/D [6134 0 R /XYZ 139.477 565.3798 null]
+>> endobj
+6154 0 obj <<
+/D [6134 0 R /XYZ 71.731 563.9403 null]
+>> endobj
+6155 0 obj <<
+/D [6134 0 R /XYZ 139.477 547.4471 null]
+>> endobj
+6156 0 obj <<
+/D [6134 0 R /XYZ 139.477 547.4471 null]
+>> endobj
+6157 0 obj <<
+/D [6134 0 R /XYZ 71.731 546.0075 null]
+>> endobj
+6158 0 obj <<
+/D [6134 0 R /XYZ 139.477 529.5143 null]
+>> endobj
+6159 0 obj <<
+/D [6134 0 R /XYZ 139.477 529.5143 null]
+>> endobj
+6160 0 obj <<
+/D [6134 0 R /XYZ 71.731 527.3575 null]
+>> endobj
+6161 0 obj <<
+/D [6134 0 R /XYZ 139.477 511.5816 null]
+>> endobj
+6162 0 obj <<
+/D [6134 0 R /XYZ 139.477 511.5816 null]
+>> endobj
+6163 0 obj <<
+/D [6134 0 R /XYZ 71.731 509.4247 null]
+>> endobj
+6164 0 obj <<
+/D [6134 0 R /XYZ 139.477 493.6488 null]
+>> endobj
+6165 0 obj <<
+/D [6134 0 R /XYZ 139.477 493.6488 null]
+>> endobj
+6166 0 obj <<
+/D [6134 0 R /XYZ 71.731 492.2093 null]
+>> endobj
+6167 0 obj <<
+/D [6134 0 R /XYZ 139.477 475.716 null]
+>> endobj
+6168 0 obj <<
+/D [6134 0 R /XYZ 139.477 475.716 null]
+>> endobj
+6169 0 obj <<
+/D [6134 0 R /XYZ 71.731 473.5592 null]
+>> endobj
+6170 0 obj <<
+/D [6134 0 R /XYZ 139.477 457.7833 null]
+>> endobj
+6171 0 obj <<
+/D [6134 0 R /XYZ 139.477 457.7833 null]
+>> endobj
+883 0 obj <<
+/D [6134 0 R /XYZ 71.731 434.8692 null]
+>> endobj
+386 0 obj <<
+/D [6134 0 R /XYZ 303.7923 389.6149 null]
+>> endobj
+6172 0 obj <<
+/D [6134 0 R /XYZ 71.731 366.1261 null]
+>> endobj
+6173 0 obj <<
+/D [6134 0 R /XYZ 161.0655 356.7382 null]
+>> endobj
+6174 0 obj <<
+/D [6134 0 R /XYZ 71.731 344.6187 null]
+>> endobj
+6175 0 obj <<
+/D [6134 0 R /XYZ 71.731 313.2529 null]
+>> endobj
+6176 0 obj <<
+/D [6134 0 R /XYZ 168.8063 302.2426 null]
+>> endobj
+6177 0 obj <<
+/D [6134 0 R /XYZ 71.731 290.1231 null]
+>> endobj
+6178 0 obj <<
+/D [6134 0 R /XYZ 71.731 235.4446 null]
+>> endobj
+6179 0 obj <<
+/D [6134 0 R /XYZ 181.5683 224.4344 null]
+>> endobj
+6180 0 obj <<
+/D [6134 0 R /XYZ 71.731 214.3722 null]
+>> endobj
+6181 0 obj <<
+/D [6134 0 R /XYZ 71.731 180.949 null]
+>> endobj
+6182 0 obj <<
+/D [6134 0 R /XYZ 71.731 169.8392 null]
+>> endobj
+6183 0 obj <<
+/D [6134 0 R /XYZ 71.731 168.5938 null]
+>> endobj
+6184 0 obj <<
+/D [6134 0 R /XYZ 129.5143 149.5153 null]
+>> endobj
+6185 0 obj <<
+/D [6134 0 R /XYZ 129.5143 149.5153 null]
+>> endobj
+6186 0 obj <<
+/D [6134 0 R /XYZ 71.731 148.0758 null]
+>> endobj
+6187 0 obj <<
+/D [6134 0 R /XYZ 71.731 148.0758 null]
+>> endobj
+6188 0 obj <<
+/D [6134 0 R /XYZ 139.477 131.5826 null]
+>> endobj
+6189 0 obj <<
+/D [6134 0 R /XYZ 139.477 131.5826 null]
+>> endobj
+6190 0 obj <<
+/D [6134 0 R /XYZ 76.7123 113.6498 null]
+>> endobj
+6133 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+6194 0 obj <<
+/Length 1345      
+/Filter /FlateDecode
+>>
+stream
+xÚÍZ]oÛ6\14}ϯÐc\ 2Ì\1c?E²oÝ°\r\eZ Xó¶\ e\81ê(\89\0G\ el\ 5Cÿý(\8b\94¯¤+\92-\ È\83\1cûH÷ðÜs¯¨k³\82º?VhF´p\an   /\15/¶ÏW´xt\1fýqÅ<dã1\e\búåöêçß\ 5-,±%/\8bÛ\87\92(-\v-81\8a\99âöþ\9fë_\9fª\97®>Ül¸¢×\9c\fÇ\ f»ª­»wÕçáß·\1fþ\1c^¼¯»§ýýñæßÛ¿®~»\1dã+¡\895.H\94¤d\86HAm±á\94\14\8a\12¥\98v\8b¡\86\b)ô¸\18n\v\17GSÖ/fÄ\8d°~5\9f8Wsv\8cs\a\80\17\fqçÇ3\8f\92\870\85\96òÄÃ-Y1)¦<ª®;4\9f_»ú®ûòRß=4»^cGì´\8asJ\18SD\e«]Ìþ´7\83ÌÕáP}\19\1f\86cÓvþ\r\9fª£\vÐ>.Þ{ÝvËõ{\86¥¥D2\97\0\80Ú@ØYwÖ\e\f®w\84­êîlF¹´hÜuÝÃY(\ f \9c°Dj=¥ñ\15Â-ÈúËiî\8e\ 6wp\0
+\91h~­U\85$su£K4êºBá,\94\ 6PH:\1a®æ§<\9c\1e?\rB|Ü5ÛÚ\eîd×\e\9de\87·zßz\ 5ïë¶k>QÊ\a\v£²)I\94T2!\e@Ed\v¨´lHÔ\1cÙ\10\1a\98l\90Çà\9a¯T®­\9eëõjtí°Ô6Y\8d\0\16«Æ\0KW#\12\1a\11\1eH5B\1aC;ò\9a½]
+Õ[*ôEÔT\94\12-uª\16\ 1*bª\80J\9b
+\89\9acª9\8dé]b4\15ä1»K4÷È\1dÂJ"hɧ7\88ES[i|\8b5z\16ʸ\1d\0\93\1aP\e\bC¤]\mU[åTR\94£q×µ\rg¡<\80÷\94ãA¹\98ò¸p\9f\e×ZJb\fÓ)å\0,¦\\80¥\95Câæ(\87ðÀ\94\83<p/}\87\9b\86\8b²2Qß\10µ^ß#*YßXÔ\8cú^ÐÀë{Âã¹iï\ eûÝJe\97}kÕâÂ\95Í\18¡F$+\eÀbþ\f°´?\91¸9þDx`þ\84<Îf|ß´Íóës¸\9b(º««£×ïe\7fÃÕõ\7fõááuç>bû}6¼U\9f*\8fÜV­ß\19Ö3í·OUû8â\9b#æûµDH+\bS4Õ( ,\92\88\11\96L\ 4\167#\11\18\ f$\11\13\1eÑFñ#æÆ÷
+©4áF%ú\ eD­÷\9d\11\95ì;XÔ\8c¾³ \81÷\9d       \8f°ï\9ce\91\9a¦í\ 6{\8aDÒºòÌ4\ 6wb\bÅSM\aÂb^\ f°´×\91¸9^Gx`^\87<.·ÿ\1f\97É\99{pµÉ\ 6\ 1`1Ñ\ 2,-\1a\127G4\84\a&\1aä±ê¤Kèè\vP\18E\94\92\89b\86¨õb\1eQÉbÆ¢f\14ó\82\ 6\13\1e÷õq{h^ºfßb\9b\bFÊÒèïQÕ¢Ô¤ä,UÕ\10\16\bK\1a\14\8b\9baP\8c\abР  \8forã,!¸vîEiLª¸!,¦]\80¥µCâæh\87ðÀ´\83<.UÜ19Ã\8c\97\98º
+\8aO\8c!,21\1e\891\167cb¼à\81O\8c'<\ eu÷zhï\1e\9az7\fØgIègxÜ\blP\ªk¯ù»&l±BJNO`ý\15\aÕ÷~«u
+¶:\9aâ%\1d¦>ñÑ\14\84EFS#,9\9aÂâf\8c¦0\1eËÑÔ\84ƹõ¹\v9,Wn=\8a\12C­:\ 1þ>)t|³jIf\fÑ\96'\1c   P\11C\ 6\8f\f;"$\80<!M\90\ 4^Û±ï\16\98vâ)+\12\96\81°\88eFXÒ2XÜ\fË,xL+Ô[fB#\7f\16\8fô\97\1c\9e\8c\1a)î|[ª\94â\0\16S<ÀÒ\8a#qs\14\9fóÀ\15\874rÆ'|Më\1fñùs\14[Hb­\13 \91:\0\8b¥.ÀÒ©Câæ¤nÎ\ 3O\1d¤\11y\ 2¥Öb»ÕK~µÂ\98&}\19&ä=£bêzTZÜeÐ\1cmg$pi\ 1\87o~\1c¸Ü¶ÌÿÚ@\1abXi£?H\0\98åï\11\147\842g\87\80ê9[»úë\ 2$àÿ\ 4?[Öendstream
+endobj
+6193 0 obj <<
+/Type /Page
+/Contents 6194 0 R
+/Resources 6192 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6191 0 R
+>> endobj
+6195 0 obj <<
+/D [6193 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+6196 0 obj <<
+/D [6193 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+6197 0 obj <<
+/D [6193 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+6198 0 obj <<
+/D [6193 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+6199 0 obj <<
+/D [6193 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+6200 0 obj <<
+/D [6193 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+6201 0 obj <<
+/D [6193 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+6202 0 obj <<
+/D [6193 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+6203 0 obj <<
+/D [6193 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+6204 0 obj <<
+/D [6193 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+6205 0 obj <<
+/D [6193 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+6206 0 obj <<
+/D [6193 0 R /XYZ 76.7123 636.6127 null]
+>> endobj
+6207 0 obj <<
+/D [6193 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+6208 0 obj <<
+/D [6193 0 R /XYZ 71.731 617.2404 null]
+>> endobj
+6209 0 obj <<
+/D [6193 0 R /XYZ 71.731 617.2404 null]
+>> endobj
+6210 0 obj <<
+/D [6193 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+6211 0 obj <<
+/D [6193 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+6212 0 obj <<
+/D [6193 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+6213 0 obj <<
+/D [6193 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+6214 0 obj <<
+/D [6193 0 R /XYZ 159.4023 582.8144 null]
+>> endobj
+6215 0 obj <<
+/D [6193 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+6216 0 obj <<
+/D [6193 0 R /XYZ 159.4023 564.8817 null]
+>> endobj
+6217 0 obj <<
+/D [6193 0 R /XYZ 76.7123 546.9489 null]
+>> endobj
+6218 0 obj <<
+/D [6193 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+6219 0 obj <<
+/D [6193 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+6220 0 obj <<
+/D [6193 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+6221 0 obj <<
+/D [6193 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+6222 0 obj <<
+/D [6193 0 R /XYZ 159.4023 511.0834 null]
+>> endobj
+6223 0 obj <<
+/D [6193 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+6224 0 obj <<
+/D [6193 0 R /XYZ 159.4023 493.1507 null]
+>> endobj
+6225 0 obj <<
+/D [6193 0 R /XYZ 76.7123 475.2179 null]
+>> endobj
+6226 0 obj <<
+/D [6193 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+6227 0 obj <<
+/D [6193 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+6228 0 obj <<
+/D [6193 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+6229 0 obj <<
+/D [6193 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+6230 0 obj <<
+/D [6193 0 R /XYZ 159.4023 439.3524 null]
+>> endobj
+6231 0 obj <<
+/D [6193 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+6232 0 obj <<
+/D [6193 0 R /XYZ 159.4023 421.4197 null]
+>> endobj
+6233 0 obj <<
+/D [6193 0 R /XYZ 76.7123 403.4869 null]
+>> endobj
+6234 0 obj <<
+/D [6193 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+6235 0 obj <<
+/D [6193 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+6236 0 obj <<
+/D [6193 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+6237 0 obj <<
+/D [6193 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+6238 0 obj <<
+/D [6193 0 R /XYZ 159.4023 367.6214 null]
+>> endobj
+6239 0 obj <<
+/D [6193 0 R /XYZ 71.731 365.4646 null]
+>> endobj
+6240 0 obj <<
+/D [6193 0 R /XYZ 159.4023 349.6887 null]
+>> endobj
+6241 0 obj <<
+/D [6193 0 R /XYZ 76.7123 295.8904 null]
+>> endobj
+6242 0 obj <<
+/D [6193 0 R /XYZ 129.5143 277.9576 null]
+>> endobj
+6243 0 obj <<
+/D [6193 0 R /XYZ 129.5143 277.9576 null]
+>> endobj
+6244 0 obj <<
+/D [6193 0 R /XYZ 71.731 275.8008 null]
+>> endobj
+6245 0 obj <<
+/D [6193 0 R /XYZ 71.731 275.8008 null]
+>> endobj
+6246 0 obj <<
+/D [6193 0 R /XYZ 139.477 260.0249 null]
+>> endobj
+6247 0 obj <<
+/D [6193 0 R /XYZ 71.731 222.1669 null]
+>> endobj
+6248 0 obj <<
+/D [6193 0 R /XYZ 71.731 209.1159 null]
+>> endobj
+6249 0 obj <<
+/D [6193 0 R /XYZ 71.731 207.8706 null]
+>> endobj
+6250 0 obj <<
+/D [6193 0 R /XYZ 129.5143 188.792 null]
+>> endobj
+6251 0 obj <<
+/D [6193 0 R /XYZ 71.731 186.6352 null]
+>> endobj
+6252 0 obj <<
+/D [6193 0 R /XYZ 71.731 186.6352 null]
+>> endobj
+6253 0 obj <<
+/D [6193 0 R /XYZ 139.477 170.8593 null]
+>> endobj
+6254 0 obj <<
+/D [6193 0 R /XYZ 139.477 170.8593 null]
+>> endobj
+6255 0 obj <<
+/D [6193 0 R /XYZ 71.731 168.7024 null]
+>> endobj
+6256 0 obj <<
+/D [6193 0 R /XYZ 139.477 152.9265 null]
+>> endobj
+6257 0 obj <<
+/D [6193 0 R /XYZ 139.477 152.9265 null]
+>> endobj
+6258 0 obj <<
+/D [6193 0 R /XYZ 71.731 150.7697 null]
+>> endobj
+6259 0 obj <<
+/D [6193 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+6260 0 obj <<
+/D [6193 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+6261 0 obj <<
+/D [6193 0 R /XYZ 71.731 132.8369 null]
+>> endobj
+6262 0 obj <<
+/D [6193 0 R /XYZ 139.477 117.061 null]
+>> endobj
+6263 0 obj <<
+/D [6193 0 R /XYZ 139.477 117.061 null]
+>> endobj
+6192 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+6266 0 obj <<
+/Length 985       
+/Filter /FlateDecode
+>>
+stream
+xÚµWKoã6\10¾çWè\18\ 3\11Ë\87(\8a{K÷\85\14-\10ìzOMQÈ\12³& K®D7È¿/)\92\12õpì\1e\ 2\1fDZÃ\99o>~3¤P\ 4õ\ fE\f\ 1\ 3s\80S\8a£âp\ 3£\9fúÕ×\eäLbg\13\87F¿no~ùB`Ä\ 1Oq\1am\9f#ÂS@Y\121\82AFQ\16mË?o?îó£\12í&Æ\14Þb`\9f\8fU^\võ{¾³ÓûÇ\a;øC¨}Sv\9b¿¶¿Ý|Þ\ eñ)a\80g:È\9b \a«%L\8c\0F418}Æ\90\ 2\960ÖÃÄ\80C\ 3\8ee·_\85ú^ÉB<Ô\9dÊk%s%\9bºÇ¤\1dñ ß\84\81\fC\16Å&_\96ZG\8f\1aõz\14\1f\86\15\99^\91ö\91ÝÚ\18#\90¢\8c÷\vÎ\84ëùx\82\14æ'µ×O´\ 2 öþB\0\9fDW´òh¼\\vá\9bP§ÖÇÌk÷lÛüÕ\ e\9bg÷WUÙÁ¿\eLõL\96\19üv(Ã,Ü[\95\81kñßWUcÜ¿\bçý[S\89îb*6\93¼<Èúή;J78uZ\7f  ¼uS%\8a½\eÖM)®Åõ¸A:ç6?\b-g\8b'Ô(B\1cP\8aX\94d\ 6¡\96Å\9aF\a«84³\1aå\91Ö/\83È Xz3\10\9e\8b¸\18\ 3\92 ¼\1a\1cqøUK\1c$\v(Fº\92(JÈ\14\87\91ä
+m8\ 1ÐD0&\1füÞ·§BÝÍÊܬ\17Z$ÅD%ÆòÔ\8ae\82\1e\82®[\88\19_'Ö[Å¡ÙH,2\15?IÈ\9b\9d%Vo>Ä      _\8d{\9eX¿j\89cJ,áÀô\9e \8c\8bm\81+ìÒ\14¤\89î®s~eýÓó»BëÁº³Âo\86z0þu\9f\1ak1R\b2ÈiØ\fÎ\v\9cp\ e\986~[ß\81Õ\eòöV\17Õ½\12ô
+q¯\80\18   \1d¤\10\82Xéz\13\8e¿_nunï&GNL\19`\19!=Õ\98ÐÔ\1f:hvè¼ÿ93;Zî\82\16þ÷\13\84¸R\93nÙörèß\88ªìÞá$"Z\85\7f'\91í\16ήhj\95ËZo\92\9d\97BO+ïd×\9cT\90cç® \ fÏ«\89Û\9duk»£(d\9f\11\95S\8bs\10\13î\ eESgÐÔ\ 5HiJú\1cei\8a´wÛ:7M»8Hk}ÐtwÓ×y\98ü\8c\90qe®´`w\e¬\v]\8d.êê5dÁu\87\\15û\817Ý=¼6B6^d\7fìë\94v"Ô\84(G*WÒ\9c        ç,³\v\80\ 3\8c\ 5ý\93\8du°ôh ËÃÑ-\930[k?º\81íðUCÌ\7fN¢]ádzû²\97Å~D§/\ 2¯~ß\85ï³\87\9d\ eàï·\ fóPA\0­\99Ñ\81\8f0&\1d\84ÏÕðRz\85H5HøÞ\vº5î\a\9d\9a\vεPúȳêÈ\17êR{\8fªÈëºQÓ-0¾¥(/\94\91¬/4\9ds\15Ü\a_É7À7Êb\ 1\8f\8af×ßEý\ 54<óÜçI\92\81\f¥üÍï±Àfù9F1\ 1\90déàÉ\80B\10\9eýºZ\89ø\1fã\93\88\88endstream
+endobj
+6265 0 obj <<
+/Type /Page
+/Contents 6266 0 R
+/Resources 6264 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6191 0 R
+>> endobj
+6267 0 obj <<
+/D [6265 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+884 0 obj <<
+/D [6265 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+390 0 obj <<
+/D [6265 0 R /XYZ 295.6147 705.7477 null]
+>> endobj
+6268 0 obj <<
+/D [6265 0 R /XYZ 71.731 685.6073 null]
+>> endobj
+6269 0 obj <<
+/D [6265 0 R /XYZ 161.0655 672.871 null]
+>> endobj
+6270 0 obj <<
+/D [6265 0 R /XYZ 71.731 660.7515 null]
+>> endobj
+6271 0 obj <<
+/D [6265 0 R /XYZ 71.731 629.7219 null]
+>> endobj
+6272 0 obj <<
+/D [6265 0 R /XYZ 168.8063 618.3754 null]
+>> endobj
+6273 0 obj <<
+/D [6265 0 R /XYZ 71.731 606.2559 null]
+>> endobj
+6274 0 obj <<
+/D [6265 0 R /XYZ 71.731 574.89 null]
+>> endobj
+6275 0 obj <<
+/D [6265 0 R /XYZ 181.5683 563.8797 null]
+>> endobj
+6276 0 obj <<
+/D [6265 0 R /XYZ 71.731 553.8175 null]
+>> endobj
+6277 0 obj <<
+/D [6265 0 R /XYZ 71.731 520.3944 null]
+>> endobj
+6278 0 obj <<
+/D [6265 0 R /XYZ 71.731 509.2845 null]
+>> endobj
+6279 0 obj <<
+/D [6265 0 R /XYZ 71.731 508.0392 null]
+>> endobj
+6280 0 obj <<
+/D [6265 0 R /XYZ 129.5143 488.9607 null]
+>> endobj
+6281 0 obj <<
+/D [6265 0 R /XYZ 129.5143 488.9607 null]
+>> endobj
+6282 0 obj <<
+/D [6265 0 R /XYZ 71.731 487.5211 null]
+>> endobj
+6283 0 obj <<
+/D [6265 0 R /XYZ 71.731 487.5211 null]
+>> endobj
+6284 0 obj <<
+/D [6265 0 R /XYZ 139.477 471.0279 null]
+>> endobj
+6285 0 obj <<
+/D [6265 0 R /XYZ 139.477 471.0279 null]
+>> endobj
+6286 0 obj <<
+/D [6265 0 R /XYZ 71.731 433.1699 null]
+>> endobj
+6287 0 obj <<
+/D [6265 0 R /XYZ 71.731 420.1189 null]
+>> endobj
+6288 0 obj <<
+/D [6265 0 R /XYZ 71.731 418.8736 null]
+>> endobj
+6289 0 obj <<
+/D [6265 0 R /XYZ 129.5143 399.795 null]
+>> endobj
+885 0 obj <<
+/D [6265 0 R /XYZ 71.731 392.6569 null]
+>> endobj
+394 0 obj <<
+/D [6265 0 R /XYZ 193.27 349.5594 null]
+>> endobj
+6290 0 obj <<
+/D [6265 0 R /XYZ 71.731 329.419 null]
+>> endobj
+6291 0 obj <<
+/D [6265 0 R /XYZ 161.0655 316.6827 null]
+>> endobj
+6292 0 obj <<
+/D [6265 0 R /XYZ 71.731 304.5632 null]
+>> endobj
+6293 0 obj <<
+/D [6265 0 R /XYZ 71.731 273.5336 null]
+>> endobj
+6294 0 obj <<
+/D [6265 0 R /XYZ 168.8063 262.1871 null]
+>> endobj
+6295 0 obj <<
+/D [6265 0 R /XYZ 71.731 235.1236 null]
+>> endobj
+6296 0 obj <<
+/D [6265 0 R /XYZ 71.731 195.3891 null]
+>> endobj
+6297 0 obj <<
+/D [6265 0 R /XYZ 71.731 142.3466 null]
+>> endobj
+6298 0 obj <<
+/D [6265 0 R /XYZ 181.5683 129.4847 null]
+>> endobj
+6299 0 obj <<
+/D [6265 0 R /XYZ 71.731 119.4225 null]
+>> endobj
+6264 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+6302 0 obj <<
+/Length 1400      
+/Filter /FlateDecode
+>>
+stream
+xÚÍ\9a[oã6\10\85ßó+ü\98\0k\96wRû¶½"Ŷ\bÚ,P [\ 4\8a£¬\ 5$r Ë(úïKY¤L\9aC\91AÓ¢Ø\a)Þ#Ïѧ3#J0Yaó\8f¬\14A\8a\99\r­\10\95\82®6Ï\17xõÅü×\ f\17ÄJÖV³öE_ß^|õ=ë
+U\92ÊÕíã\8aU\12      ÅW\8a\ 5Ñ«Û\87ß/¿ÙÖ/CÓ_­©À\97\14\9b§ºk\86\8fõýôç\87\9bëiç§fØî\1eöW\7fÜþxñÝí\_0\85*m\8a,\9a\9cU±MZy6 ©\90\10\14Ö\88\8e>o®\88¸¬ûú¹1n÷ïÏ-Ì\aImªPÌ@\v³jíË\9c\ 5ó\89Â$°0ËF\v\9f)\15Q]J\8dGBÁºçÛ\93\ fwTì\83é\956($?ú0 \ 4á,ôQ\1f\86íèã\8c\eå\b\8f\15FÉûézí\87þ°\19Þ\9d]Åñø¦\eÚM=´»ÎW\1eú&>AgA\9aRZ       \18¬S­}Ù  ,\19ã\19\9c\90\93\9a\90bÊ+°n\1a¬;*ö\11\82e\15âJ\856>\18.SÂ\ 1ºB"ÉMó\9cóm»/\8e/\80õyúºãþ°\9b\87}\93N/ãÈ\84#\17Þ\93j)»V\95\8fn\´$¹g&\12ÁõLì\9fÚMs÷Ø>\8dó&&,\15b\8a°\90pÝ÷õ_ÓîîqÚ¶Ý`?èý«\10}fò\9c\ e3\91\88è\8aåÂìÉ\96Âìdù0\ 3uKÂ\føð\ 6¦\v³oã\15à"³Ó×\89J#*d¢á­hí«\0Dçß\95$ÄÉØ\88\12¬\9a\8e\ 2mx\84¸±an\7f¡\ fÃöî¯c2-¤\87±\87?cL§\90\82d4F\8c\9aÀ/\93ñT\vd\9c*O\ 6¨ZB\ 6°\ 1\91ñ}\ 4\83Ó\99Ûo²§\ 4ç\88\v\9dë)_¶ÐS³,ÛSPÝ\82\9e\82|Ä=\15Ø\b\83\81t\7fEÍ@\1f,\9e15n¸\81¹¡f\ 1FE®£<ÕBn\9c*\9f\e jInÎm\84\ 3\8dïcÓ7õ°ëï^Ì\12m×ݵÐ\8d´â\88aIÃ1\1f\8d¦Äø\8aÎѹ0KEQÑDG:ÕÚ\97\ 1h£oK²\15\86\92À\14¬\9b\8e\ 2}xÙ\13Æ\a¦,ôq\9aV×þ\88
+\10\99\ 5\88Å·Ùì\ e\8eé°­íÞñú4n=²m÷ö>pìð\14[^a$e\86ìI´ÀÕ\8a²Tã\8a\ 5Lc\a\0\ 1\9c°ÿ\16±íe.8R\15ÏÌ\ 5_\95\9e\v³*;\17 ª\ 5s!²\ 1Ï\85ÀGÛí\87Ú\0\9dVÆñLP\14\19´¸Î\8e\85Ä"föÁ$Ò\92ä&\83/[J°\93å3\fÔ-I1à\ 3ʱï#u·\ e©[X&\9ciVÄ\HS0\83ê¤Z"eUyPqÑ\12N±   \b\93g"\19\9d\7f\0Îö\1cÓ\faÉ2ýë«Òý;«²ý\vU-èßÈ\ 6Ü¿\81\ f·î+zãð\ 6Mˤ@\84a\95I¢/[\88â,Ëf\11ª[\10\a\90ÆÀÇ«\96Øó\99pszUn\96yª%*V\95\87\12\17-a\12\9b\80\90x&^Ñ  $×@\84 Æh®\19=ÕB3:U¾\19\81ª%Íxn#Ñ\8c¾\8fé5
+¸¶æ\ 2i­ôÛ®­iÅ\10«ª\3ú²\85ØͲlî º\ 5Á\83|\0É\v|¼þMÀ|:J .³lNª%4V\95'\13\17-\ 1\13\9b\80¸x&\16\97ȯ|gBÍVb\92iK_\95nËY\95mK¨jA[F6à¶\f\85\95\18\99'¹7nJJÌ\83\8cÎ\ 6Ï\93-%ÏÉòÑ\ 3ê\96d\ fð\ 1\85Ï÷q\8aÚ·µ{ÃRwîɪ}¶\1fý¹m:ÿ\19kúð\8a\18ñ>x${ç¨Zu³Ùu\ fîñ¬íÜ¡\9f~¾þmÚk^v\9b
+`\86\14Ë=\17{ª%þV\95Ç\1f\17\1f\9b\80à{&\16;ÿ\7fu9ìH R!­pf¼øªôx\99UÙñ\ 2U-\18/\91\r\ 4>\ eý\130ZÌó\8ddÿÎ\1a|Ü©\98ÊM\18\90ðY\96\8d8T· ã\90\ f ä\81\8f`yùé\97\8fÓÎã¡\1f¶îµÏC³ßôíý̳ô¥Ùñ=s*\8e'x'Õ\12;«Ê£\8b\8b\96\90\8bM@à<\13¹\95ú\9b ´¿ià\1ai"«Å\9f=x\9aøW\ f\82\9a\aY¦åüMã\19\10L\92?b\0\r\96Ë`eendstream
+endobj
+6301 0 obj <<
+/Type /Page
+/Contents 6302 0 R
+/Resources 6300 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6191 0 R
+>> endobj
+6303 0 obj <<
+/D [6301 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+6304 0 obj <<
+/D [6301 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+6305 0 obj <<
+/D [6301 0 R /XYZ 71.731 708.2442 null]
+>> endobj
+6306 0 obj <<
+/D [6301 0 R /XYZ 71.731 706.9988 null]
+>> endobj
+6307 0 obj <<
+/D [6301 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+6308 0 obj <<
+/D [6301 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+6309 0 obj <<
+/D [6301 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+6310 0 obj <<
+/D [6301 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+6311 0 obj <<
+/D [6301 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+6312 0 obj <<
+/D [6301 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+6313 0 obj <<
+/D [6301 0 R /XYZ 76.7123 652.0548 null]
+>> endobj
+6314 0 obj <<
+/D [6301 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+6315 0 obj <<
+/D [6301 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+6316 0 obj <<
+/D [6301 0 R /XYZ 71.731 631.9652 null]
+>> endobj
+6317 0 obj <<
+/D [6301 0 R /XYZ 71.731 631.9652 null]
+>> endobj
+6318 0 obj <<
+/D [6301 0 R /XYZ 139.477 616.1893 null]
+>> endobj
+6319 0 obj <<
+/D [6301 0 R /XYZ 71.731 614.0324 null]
+>> endobj
+6320 0 obj <<
+/D [6301 0 R /XYZ 71.731 614.0324 null]
+>> endobj
+6321 0 obj <<
+/D [6301 0 R /XYZ 149.4396 598.2565 null]
+>> endobj
+6322 0 obj <<
+/D [6301 0 R /XYZ 71.731 596.817 null]
+>> endobj
+6323 0 obj <<
+/D [6301 0 R /XYZ 149.4396 580.3238 null]
+>> endobj
+6324 0 obj <<
+/D [6301 0 R /XYZ 76.7123 562.391 null]
+>> endobj
+6325 0 obj <<
+/D [6301 0 R /XYZ 139.477 544.4583 null]
+>> endobj
+6326 0 obj <<
+/D [6301 0 R /XYZ 71.731 543.0187 null]
+>> endobj
+6327 0 obj <<
+/D [6301 0 R /XYZ 71.731 543.0187 null]
+>> endobj
+6328 0 obj <<
+/D [6301 0 R /XYZ 149.4396 526.5255 null]
+>> endobj
+6329 0 obj <<
+/D [6301 0 R /XYZ 149.4396 526.5255 null]
+>> endobj
+6330 0 obj <<
+/D [6301 0 R /XYZ 71.731 524.3687 null]
+>> endobj
+6331 0 obj <<
+/D [6301 0 R /XYZ 71.731 524.3687 null]
+>> endobj
+6332 0 obj <<
+/D [6301 0 R /XYZ 159.4023 508.5928 null]
+>> endobj
+6333 0 obj <<
+/D [6301 0 R /XYZ 71.731 507.1532 null]
+>> endobj
+6334 0 obj <<
+/D [6301 0 R /XYZ 159.4023 490.66 null]
+>> endobj
+6335 0 obj <<
+/D [6301 0 R /XYZ 76.7123 472.7273 null]
+>> endobj
+6336 0 obj <<
+/D [6301 0 R /XYZ 149.4396 454.7945 null]
+>> endobj
+6337 0 obj <<
+/D [6301 0 R /XYZ 149.4396 454.7945 null]
+>> endobj
+6338 0 obj <<
+/D [6301 0 R /XYZ 71.731 452.6377 null]
+>> endobj
+6339 0 obj <<
+/D [6301 0 R /XYZ 71.731 452.6377 null]
+>> endobj
+6340 0 obj <<
+/D [6301 0 R /XYZ 159.4023 436.8618 null]
+>> endobj
+6341 0 obj <<
+/D [6301 0 R /XYZ 71.731 434.7049 null]
+>> endobj
+6342 0 obj <<
+/D [6301 0 R /XYZ 159.4023 418.929 null]
+>> endobj
+6343 0 obj <<
+/D [6301 0 R /XYZ 76.7123 400.9962 null]
+>> endobj
+6344 0 obj <<
+/D [6301 0 R /XYZ 149.4396 383.0635 null]
+>> endobj
+6345 0 obj <<
+/D [6301 0 R /XYZ 149.4396 383.0635 null]
+>> endobj
+6346 0 obj <<
+/D [6301 0 R /XYZ 71.731 380.9067 null]
+>> endobj
+6347 0 obj <<
+/D [6301 0 R /XYZ 71.731 380.9067 null]
+>> endobj
+6348 0 obj <<
+/D [6301 0 R /XYZ 159.4023 365.1307 null]
+>> endobj
+6349 0 obj <<
+/D [6301 0 R /XYZ 71.731 362.9739 null]
+>> endobj
+6350 0 obj <<
+/D [6301 0 R /XYZ 159.4023 347.198 null]
+>> endobj
+6351 0 obj <<
+/D [6301 0 R /XYZ 76.7123 329.2652 null]
+>> endobj
+6352 0 obj <<
+/D [6301 0 R /XYZ 149.4396 311.3325 null]
+>> endobj
+6353 0 obj <<
+/D [6301 0 R /XYZ 149.4396 311.3325 null]
+>> endobj
+6354 0 obj <<
+/D [6301 0 R /XYZ 71.731 309.1757 null]
+>> endobj
+6355 0 obj <<
+/D [6301 0 R /XYZ 71.731 309.1757 null]
+>> endobj
+6356 0 obj <<
+/D [6301 0 R /XYZ 159.4023 293.3997 null]
+>> endobj
+6357 0 obj <<
+/D [6301 0 R /XYZ 71.731 291.9602 null]
+>> endobj
+6358 0 obj <<
+/D [6301 0 R /XYZ 159.4023 275.467 null]
+>> endobj
+6359 0 obj <<
+/D [6301 0 R /XYZ 76.7123 257.5342 null]
+>> endobj
+6360 0 obj <<
+/D [6301 0 R /XYZ 149.4396 239.6015 null]
+>> endobj
+6361 0 obj <<
+/D [6301 0 R /XYZ 149.4396 239.6015 null]
+>> endobj
+6362 0 obj <<
+/D [6301 0 R /XYZ 71.731 237.4447 null]
+>> endobj
+6363 0 obj <<
+/D [6301 0 R /XYZ 71.731 237.4447 null]
+>> endobj
+6364 0 obj <<
+/D [6301 0 R /XYZ 159.4023 221.6687 null]
+>> endobj
+6365 0 obj <<
+/D [6301 0 R /XYZ 71.731 219.5119 null]
+>> endobj
+6366 0 obj <<
+/D [6301 0 R /XYZ 159.4023 203.736 null]
+>> endobj
+6367 0 obj <<
+/D [6301 0 R /XYZ 76.7123 185.8032 null]
+>> endobj
+6368 0 obj <<
+/D [6301 0 R /XYZ 149.4396 167.8705 null]
+>> endobj
+6369 0 obj <<
+/D [6301 0 R /XYZ 149.4396 167.8705 null]
+>> endobj
+6370 0 obj <<
+/D [6301 0 R /XYZ 71.731 165.7136 null]
+>> endobj
+6371 0 obj <<
+/D [6301 0 R /XYZ 71.731 165.7136 null]
+>> endobj
+6372 0 obj <<
+/D [6301 0 R /XYZ 159.4023 149.9377 null]
+>> endobj
+6373 0 obj <<
+/D [6301 0 R /XYZ 71.731 147.7809 null]
+>> endobj
+6374 0 obj <<
+/D [6301 0 R /XYZ 159.4023 132.005 null]
+>> endobj
+6375 0 obj <<
+/D [6301 0 R /XYZ 76.7123 114.0722 null]
+>> endobj
+6300 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+6378 0 obj <<
+/Length 1446      
+/Filter /FlateDecode
+>>
+stream
+xÚÍZÛnã6\14|ÏWè1\ 1Ö,ï\12÷­·-Rl\8b M\81\ 2Ý"Pl%\16\10K\86¤`Ó¿/e\91\12e\1d\92ZÀX,ò`Ù\19ê\f\87sF\94l\92`ýG\92\94 \94é\17ª\10\95\82&ÛÃ\15N\9eõ¿~¹"\ 6²1\98\8d\vúáþê»\ f\f'
+)Ierÿ\940%\91Hy\922\8a2A²ä~÷Ïõ\8fûüØ\15ÍÍ\86
+|MÑðz÷\92WE÷1\7f\1cÞ~\7fw;\1cüVtûz×Þü{ÿëÕÏ÷c}ÁR¤2]$H\92©\f  ,d²¡\18)J\ 4\88"L!\9e¦z.8C\8c³t\9c\vUI\8aH?O=\17\v\eQý\>Q*ι\11N4·T&îùlÕó×\89\85\1dµ¤Á²$Ó\92J~¢Á5\r­ë\9cÇ!\7f{¨ê]q\12êD|Z\ 4¡ç\8eU_¨G¾\1ft-«n8¨ÍBäM\93ÿg>z\9a0\8b¹\99êRaÄ V°¢\16µqa\80¤\8b³y5\15Z\1d\81)Xׯ©\1d\ 5ò\98\14"BóÀ\94Íyèé¿3&ÌßÊÃëaxS½\1e\1e­{­R\83ô§Ãn\9f\ee·y5\1c<\16Fâ¶-\9f«bg\80µ\1dP\9a¡íK¹-ü\8a§Tû/£1Å\1dXHq\v\8b+\ eÔ]£8À\ 3RÜå\ 1{ð[X\ 4Óû\92I$     MÃ9â¢ü92¢¢9\ 2U]\91#\v\1ap\8eÌx\14oDz\ 1S\84\87ð\v§\bÉ\90LU4E\1cXÈÓ\16\16÷4Pw\8d§\ 1\1e\90§]\1e\93\81\7fÊ;ëÁÊÚ¯<\98\8f\8bÊ5àé°¸!âzX\91wVL\ 3*¶uµ³\96-+;â¯ßoÿ6c\8fõvï\17\1ec\94ò4\1a&\ e,$¼\85Å\85\aê®\11\1eà\ 1   ïò\b\86É·°\16&\a\84ä(ËH$S\\94?SFT4S ª+2eA\ 3Î\94\19\8f¶ì\8a\87r\ag\8aÀÙe#Ep\89\14Ïb\91âÂ\ 2Î\1eaQgCuW8\eâ\ 18{Æc²ñí®¨ºò\13ÆôübØí\vkHët{­û¼/µ\eÁË\9e¹R¾ÔÕsëWXo¹1\91±ìpa!\85-,®0Pw\8dÂ\0\ fHa\97G0;¾ªè¦±¹b\88\b\1c            \17å\ f\89\11\15\r ¨ê\8a\90\80CbÆãX\14ÍÃI\ f8*ô61ͤºlVðT JÒXV¸°\80\93GXÔÉPÝ\15N\86x\0N\9eñ\98lû¡¿\80ÕM¡w¿\v÷\95\vKÛýs¿.~ýD\8ah&bIàÂBúYX\? î\1aý\0\1e\90~.\8f`\12\PRÛ\9b\94è\eP\15ës\a\15ès\8b\8a÷9PuM\9f\9fÓðô¹ËãÔç_m3À1C¼\8f\8d\88A\1dXÈ \16\167(Pw\8dA\ 1\1e\90A]\1e\93\eï
+ë´K]éY&\90\10<Öß., ß\b\8bÊ\aÕ]!\1fÄ\ 3\90oÆ#Øß\97SÔ´$ÓZÈ,\8b´·\8bò·÷\88\8a¶7TuE{/hÀí=ã±+ÚmS\1e»²®\80\16\97\ 4\91³\1eo»¦¬\9e£mn`^«2\82R!b\9dîÂBVµ°¸U\81ºk¬
\80¬êò\18\140ÖüsòÜ\99æ°<\84¡\8cêYFäq`!y,,.\ fPw\8d<\0\ fH\1e\97\87×3_¦\18Q:\1cô\9d\14aE=\8aYÔÆ\85M\8a©\14\ f\8a-ÎæU\8cRÄ8¡`]¿bvÔ\92ǼYõÍ\8d \9cÍy4E÷ÚT\ fOeñ²ká=7§\19\9b·ë ³\14×FÖ\8feÛÍU?íy^ì\ 3\11\9b\9cC±å´-1ÊõÍ\80â°Ü\16µqa\80A\17góÊÍ´\ e\94+°®_n;
+äá\18ÔDô\8cÆ\14`úD\1aK\85\9e\8fÀ(ÃJ\9c\0\7f\9c\14jß{-I\ 4Õä\88\85\ 5,9¢\96\84ê®°$ÄÃÑÈ®Õ\8c\aÜįÛÎk\1cÂ8RJ»=l\1c\17\16\b\8b\1a\aª»Â8\v\1eó>5Æ\99ÑØ6EÞÕÍñhÚº\82\8a#\86åò;¾õ\8f,òí¶~µÛmçû\93¾øømIä[\92QE\92¢\9eMdI&ThE\f*¾ Ë¢kÖã\8c\ 4¼\1c\ e\87²j»\\8b\99{ö8`hú.Dó\93\19hÿhÚ§¬R\88ôg\ f+ë \ 2ÊZTTY è
+eÏI\80ʺ\1c\86§?y§µz|==2\86.J\ 4s\94â\94~éUÉÙ¤\ f%n(¾Öe\16{uóË\ 6\9e¡\8c\1cí\8f\1f\1cÌò·\ f\822\84Y&Ç3õt   ¦Þ\9f2\0\15ÿ\ahEo°endstream
+endobj
+6377 0 obj <<
+/Type /Page
+/Contents 6378 0 R
+/Resources 6376 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6191 0 R
+>> endobj
+6379 0 obj <<
+/D [6377 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+6380 0 obj <<
+/D [6377 0 R /XYZ 149.4396 708.3437 null]
+>> endobj
+6381 0 obj <<
+/D [6377 0 R /XYZ 149.4396 708.3437 null]
+>> endobj
+6382 0 obj <<
+/D [6377 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+6383 0 obj <<
+/D [6377 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+6384 0 obj <<
+/D [6377 0 R /XYZ 159.4023 690.4109 null]
+>> endobj
+6385 0 obj <<
+/D [6377 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+6386 0 obj <<
+/D [6377 0 R /XYZ 159.4023 672.4782 null]
+>> endobj
+6387 0 obj <<
+/D [6377 0 R /XYZ 76.7123 654.5454 null]
+>> endobj
+6388 0 obj <<
+/D [6377 0 R /XYZ 149.4396 636.6127 null]
+>> endobj
+6389 0 obj <<
+/D [6377 0 R /XYZ 149.4396 636.6127 null]
+>> endobj
+6390 0 obj <<
+/D [6377 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+6391 0 obj <<
+/D [6377 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+6392 0 obj <<
+/D [6377 0 R /XYZ 159.4023 618.6799 null]
+>> endobj
+6393 0 obj <<
+/D [6377 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+6394 0 obj <<
+/D [6377 0 R /XYZ 159.4023 600.7472 null]
+>> endobj
+6395 0 obj <<
+/D [6377 0 R /XYZ 76.7123 582.8144 null]
+>> endobj
+6396 0 obj <<
+/D [6377 0 R /XYZ 149.4396 564.8817 null]
+>> endobj
+6397 0 obj <<
+/D [6377 0 R /XYZ 149.4396 564.8817 null]
+>> endobj
+6398 0 obj <<
+/D [6377 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+6399 0 obj <<
+/D [6377 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+6400 0 obj <<
+/D [6377 0 R /XYZ 159.4023 546.9489 null]
+>> endobj
+6401 0 obj <<
+/D [6377 0 R /XYZ 71.731 544.7921 null]
+>> endobj
+6402 0 obj <<
+/D [6377 0 R /XYZ 159.4023 529.0162 null]
+>> endobj
+6403 0 obj <<
+/D [6377 0 R /XYZ 76.7123 511.0834 null]
+>> endobj
+6404 0 obj <<
+/D [6377 0 R /XYZ 149.4396 493.1507 null]
+>> endobj
+6405 0 obj <<
+/D [6377 0 R /XYZ 149.4396 493.1507 null]
+>> endobj
+6406 0 obj <<
+/D [6377 0 R /XYZ 71.731 490.9938 null]
+>> endobj
+6407 0 obj <<
+/D [6377 0 R /XYZ 71.731 490.9938 null]
+>> endobj
+6408 0 obj <<
+/D [6377 0 R /XYZ 159.4023 475.2179 null]
+>> endobj
+6409 0 obj <<
+/D [6377 0 R /XYZ 71.731 473.0611 null]
+>> endobj
+6410 0 obj <<
+/D [6377 0 R /XYZ 159.4023 457.2852 null]
+>> endobj
+6411 0 obj <<
+/D [6377 0 R /XYZ 76.7123 439.3524 null]
+>> endobj
+6412 0 obj <<
+/D [6377 0 R /XYZ 149.4396 421.4197 null]
+>> endobj
+6413 0 obj <<
+/D [6377 0 R /XYZ 149.4396 421.4197 null]
+>> endobj
+6414 0 obj <<
+/D [6377 0 R /XYZ 71.731 419.2628 null]
+>> endobj
+6415 0 obj <<
+/D [6377 0 R /XYZ 71.731 419.2628 null]
+>> endobj
+6416 0 obj <<
+/D [6377 0 R /XYZ 159.4023 403.4869 null]
+>> endobj
+6417 0 obj <<
+/D [6377 0 R /XYZ 71.731 401.3301 null]
+>> endobj
+6418 0 obj <<
+/D [6377 0 R /XYZ 159.4023 385.5542 null]
+>> endobj
+6419 0 obj <<
+/D [6377 0 R /XYZ 76.7123 367.6214 null]
+>> endobj
+6420 0 obj <<
+/D [6377 0 R /XYZ 149.4396 349.6887 null]
+>> endobj
+6421 0 obj <<
+/D [6377 0 R /XYZ 149.4396 349.6887 null]
+>> endobj
+6422 0 obj <<
+/D [6377 0 R /XYZ 71.731 347.5318 null]
+>> endobj
+6423 0 obj <<
+/D [6377 0 R /XYZ 71.731 347.5318 null]
+>> endobj
+6424 0 obj <<
+/D [6377 0 R /XYZ 159.4023 331.7559 null]
+>> endobj
+6425 0 obj <<
+/D [6377 0 R /XYZ 71.731 329.5991 null]
+>> endobj
+6426 0 obj <<
+/D [6377 0 R /XYZ 159.4023 313.8231 null]
+>> endobj
+6427 0 obj <<
+/D [6377 0 R /XYZ 76.7123 260.0249 null]
+>> endobj
+6428 0 obj <<
+/D [6377 0 R /XYZ 129.5143 242.0921 null]
+>> endobj
+6429 0 obj <<
+/D [6377 0 R /XYZ 129.5143 242.0921 null]
+>> endobj
+6430 0 obj <<
+/D [6377 0 R /XYZ 71.731 239.9353 null]
+>> endobj
+6431 0 obj <<
+/D [6377 0 R /XYZ 71.731 239.9353 null]
+>> endobj
+6432 0 obj <<
+/D [6377 0 R /XYZ 139.477 224.1594 null]
+>> endobj
+6433 0 obj <<
+/D [6377 0 R /XYZ 71.731 186.3014 null]
+>> endobj
+6434 0 obj <<
+/D [6377 0 R /XYZ 71.731 173.2504 null]
+>> endobj
+6435 0 obj <<
+/D [6377 0 R /XYZ 71.731 172.0051 null]
+>> endobj
+6436 0 obj <<
+/D [6377 0 R /XYZ 129.5143 152.9265 null]
+>> endobj
+6437 0 obj <<
+/D [6377 0 R /XYZ 71.731 150.7697 null]
+>> endobj
+6438 0 obj <<
+/D [6377 0 R /XYZ 71.731 150.7697 null]
+>> endobj
+6439 0 obj <<
+/D [6377 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+6440 0 obj <<
+/D [6377 0 R /XYZ 139.477 134.9938 null]
+>> endobj
+6441 0 obj <<
+/D [6377 0 R /XYZ 71.731 133.5542 null]
+>> endobj
+6442 0 obj <<
+/D [6377 0 R /XYZ 139.477 117.061 null]
+>> endobj
+6443 0 obj <<
+/D [6377 0 R /XYZ 139.477 117.061 null]
+>> endobj
+6444 0 obj <<
+/D [6377 0 R /XYZ 71.731 114.9042 null]
+>> endobj
+6445 0 obj <<
+/D [6377 0 R /XYZ 139.477 99.1283 null]
+>> endobj
+6446 0 obj <<
+/D [6377 0 R /XYZ 139.477 99.1283 null]
+>> endobj
+6447 0 obj <<
+/D [6377 0 R /XYZ 71.731 96.9714 null]
+>> endobj
+6448 0 obj <<
+/D [6377 0 R /XYZ 71.731 96.9714 null]
+>> endobj
+6376 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+6451 0 obj <<
+/Length 1602      
+/Filter /FlateDecode
+>>
+stream
+xÚ­Yßo\9c8\10~Ï_Áã®\94õa°\rô­w½V9µUÔK¥\93®§\88\80\93µº\v+ð*Í\7fß\ 1Û¬\ 1ó£§(\ f\ fÏ7ß\8cgÆ,ö|øÃ^\84Q\14¿ A\ 1£\81\97\1d¯|ï  ¾úp\855d§1;\eôûÝÕoïCßKPÂ\ 2æÝ=zaÂ\10\8d\88\17\85\ 1\8a)\8e½»üßÍ\1fûô$yµÝ\ 5Ôß\ 4Hý¿=¤\ 5\97\1fÓ\aõñíí\8dºøÄå¾Ìëí\7fw\7f]ýy×Ù§a\84\92\18\8cÌ\92\f\93\18Q\9f2o\17ø(  0u¢p\98 \12\8b\1f£\90\84QçK\90x\11Â\8d\9fà\8b\81u¨Æ\97oA@\87Ü0ÁÀ-b\9e½\9e±:ü\7faa\9erÒ¸H\8a Ð\0]û<D!G4@\19\8aIè±(\0â±[¢\ eµ³a\ eïG«Mº\ f±ö\ 3\928íN»o\9e\1aó\bc/\ 6÷\19±£Ð£Q¤GÞÐ\18H\15\10äûI\ 2\ 6\1aÐ\e\95Pµ¬Dñt­>ü}\10\19W\97f\r·\84\94 J(Y\92Ð\82ÍIh`Ë\12:ì®\91pÈÃ-¡M£n\94¸\17¹CFBQ\1cGq_FH¸±\86\85\14ß|?\80í=©eÈ\10ÃA´¤¥\ 5\9bÓÒÀ\96µtØ]£å\90\87[K\9bFVñTr§\94>Ô£(\99\92ò\1d<¦®Ò"W\17R\1cõ­ç=/t
+_\14\7fÞb\0×ê\83¶{m\96Õh\9e\95E®!µ(Ì£_?ßü£®ø©ÌöÓñÂ1b\11\85xY°¹x\19Ør¼\1cv×ÄkÈÃ\1d/\9bƹ:8bÕ B\1fÏT\8f¯_>ª\8bÇs%÷¦£å¼Î*ñ\00\1dÁ½¨í¸Mêìû("Ñb\99¶`s:\eزÎ\ e»kt\1eòpëlÓ8¦?î\8b\12ôq¨M¡Aû\93\eãSúC\1cÏG]©ÏÇ\a#vù¨ïµËj½S©÷Cª·À\83ÙUu-\9e
+n¶Vùk\ 1¢1\f1\98,5\ 1\e6\13 \ e\18 \97Ý\15\ 1\1añp\ 6¨GãÄ«º, \v8#ÄP\10Ç\836\90VUú²et£\ 3õQÔ²\1f\994ËÊs!§\83s®ùº8\18Æ\8c@?ÂÑü,g£¦g¹\ eµ8˹¬®\98å\4\1c³\\8fÇÜ,GáÂÇl©HØ°¹\1c4°å\1ctØ]\93\83C\1eî\1c´ið\1f'Q9K\ 44O\10\8c¼^óä[L7ÊÜ+÷L\8a1òãp±TX°¹0\19Ør\98\1c\84iÈÃ\1d&\9bF-äÔ¸8?ãÜØ3b¯R@\v5\82\9bH\9a\12ý¼\17 ¶³Jè\ 2\7f(\8b§z2\1e$    \11\ 6V\vñ°a3ñè`\8bñpÙ]\11\8f\11\ fg<z4N\9cW÷3C<\1c\97¢\98MFå}³\15Ê\8aC{\1c\89+F\1135¼1:­yDQ\80£¥¹Ñ\86Íin`Ë\9a;ì®Ñ|Èí¹M£\19:&\9a%\9c\99 ª\ 5¿Ú,­1Æ\94¢\95]\91Ð\bÚóÄ{\90®+Ú¨é®Ø¡\16»¢Ëê\8a®è¢áè\8a=\1es]\91\ 4\18\11\9c,no\v6\97j\ 6\9cj\ e»kRmÈÃ\9dj6\8dv{ÿ\9fr{Ëͦ}µZê\87\884¥dAl\v6'¶\81-\8bí°»Fì!\ f·Ø6\ru\82;IQ\16\ eÁ\19F\8cÅѺ·Jã¥À#ÈjL[ó­^\ 4\13Ø\9a,F\98Ū¹\ 6(iß\8bFñæ\ 3\97írw"Û\ 6þæ;\97®\1c\88P\1c@#Ø5¯Y#¦Ræ¶*e)_NüM÷ÄÅoýì\ er\f\8eÂÊíÎÔ6¤\e\91}o^-p] ¾ùÔOÏr\7f\väã}YÝ7/Îàkìàµ3fl^ï.\92Ì1\v\19¢,P̾py®
+\9dª©\99íú\f\1fËjK|SZËÊ\8c\12\97ó^ÅO0éA/KÛpèÂ{=\1c>N<SÍ.·|E£È^ìk^G¨í½Ó&\1cl\ 6'ÍcZ\9cÓÃá¥q\eòg\a\ 3\15£,Ôõ­\96)ôÙn\8a5.\9cOùe²\1díVãHzi æ\8dºrv¸Ó\87º]NÁzÅC\99¥\a\19V3\að"}2\95\ 4ª\v¯\1eÛ7OÙ`P«xι>§\8b-ÞHd|\r1¢1f­¯7M»#¡¶I\82Î!¸·oßfÁEQJõå\ 3ogw¸\95æy+ióh©o)L¡\98Â\8dg!÷êêm\9eë|\8eA§Æ\97\a´: \\b\84}U\0!4  å\8f\8a\rßêSlK2ç×êRèG\9fÅáà
+ðCW\12\ e\v\99aT/ÔaD\ e\ f.\1d`"\16pN\91iv9^óî÷\93\81ò´%ñµ\86#þ _Ëâ`®\1edÚÍ\1dÃü~ìöT#jÝ\1f\zM¥uåÅÌ<\9aÑ\917omj\93\9c7#\16«l§\85µöøà \989ÄO»}ÀEu9eÔ\83rÑ[þ5ü|\9b\1f
+®ê"4è\8dúG8\12#ØYÉìït\16fü3\1d\r\871ëVj$Ã~8ù«\9bÃâOT \86­endstream
+endobj
+6450 0 obj <<
+/Type /Page
+/Contents 6451 0 R
+/Resources 6449 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6191 0 R
+>> endobj
+6452 0 obj <<
+/D [6450 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+6453 0 obj <<
+/D [6450 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+6454 0 obj <<
+/D [6450 0 R /XYZ 149.4396 708.3437 null]
+>> endobj
+6455 0 obj <<
+/D [6450 0 R /XYZ 76.7123 690.4109 null]
+>> endobj
+6456 0 obj <<
+/D [6450 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+6457 0 obj <<
+/D [6450 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+6458 0 obj <<
+/D [6450 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+6459 0 obj <<
+/D [6450 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+6460 0 obj <<
+/D [6450 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+6461 0 obj <<
+/D [6450 0 R /XYZ 71.731 653.1059 null]
+>> endobj
+6462 0 obj <<
+/D [6450 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+6463 0 obj <<
+/D [6450 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+6464 0 obj <<
+/D [6450 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+6465 0 obj <<
+/D [6450 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+6466 0 obj <<
+/D [6450 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+6467 0 obj <<
+/D [6450 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+6468 0 obj <<
+/D [6450 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+6469 0 obj <<
+/D [6450 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+6470 0 obj <<
+/D [6450 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+6471 0 obj <<
+/D [6450 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+6472 0 obj <<
+/D [6450 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+6473 0 obj <<
+/D [6450 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+6474 0 obj <<
+/D [6450 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+6475 0 obj <<
+/D [6450 0 R /XYZ 149.4396 564.8817 null]
+>> endobj
+6476 0 obj <<
+/D [6450 0 R /XYZ 76.7123 546.9489 null]
+>> endobj
+6477 0 obj <<
+/D [6450 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+6478 0 obj <<
+/D [6450 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+6479 0 obj <<
+/D [6450 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+6480 0 obj <<
+/D [6450 0 R /XYZ 139.477 511.0834 null]
+>> endobj
+6481 0 obj <<
+/D [6450 0 R /XYZ 139.477 511.0834 null]
+>> endobj
+6482 0 obj <<
+/D [6450 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+6483 0 obj <<
+/D [6450 0 R /XYZ 139.477 493.1507 null]
+>> endobj
+6484 0 obj <<
+/D [6450 0 R /XYZ 139.477 493.1507 null]
+>> endobj
+6485 0 obj <<
+/D [6450 0 R /XYZ 71.731 490.9938 null]
+>> endobj
+6486 0 obj <<
+/D [6450 0 R /XYZ 139.477 475.2179 null]
+>> endobj
+6487 0 obj <<
+/D [6450 0 R /XYZ 139.477 475.2179 null]
+>> endobj
+6488 0 obj <<
+/D [6450 0 R /XYZ 71.731 473.0611 null]
+>> endobj
+6489 0 obj <<
+/D [6450 0 R /XYZ 71.731 473.0611 null]
+>> endobj
+6490 0 obj <<
+/D [6450 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+6491 0 obj <<
+/D [6450 0 R /XYZ 76.7123 439.3524 null]
+>> endobj
+6492 0 obj <<
+/D [6450 0 R /XYZ 139.477 421.4197 null]
+>> endobj
+6493 0 obj <<
+/D [6450 0 R /XYZ 139.477 421.4197 null]
+>> endobj
+6494 0 obj <<
+/D [6450 0 R /XYZ 71.731 419.2628 null]
+>> endobj
+6495 0 obj <<
+/D [6450 0 R /XYZ 139.477 403.4869 null]
+>> endobj
+6496 0 obj <<
+/D [6450 0 R /XYZ 139.477 403.4869 null]
+>> endobj
+886 0 obj <<
+/D [6450 0 R /XYZ 71.731 380.5728 null]
+>> endobj
+398 0 obj <<
+/D [6450 0 R /XYZ 233.1062 335.3185 null]
+>> endobj
+6497 0 obj <<
+/D [6450 0 R /XYZ 71.731 315.1782 null]
+>> endobj
+6498 0 obj <<
+/D [6450 0 R /XYZ 161.0655 302.4418 null]
+>> endobj
+6499 0 obj <<
+/D [6450 0 R /XYZ 71.731 290.3223 null]
+>> endobj
+6500 0 obj <<
+/D [6450 0 R /XYZ 71.731 259.2927 null]
+>> endobj
+6501 0 obj <<
+/D [6450 0 R /XYZ 168.8063 247.9462 null]
+>> endobj
+6502 0 obj <<
+/D [6450 0 R /XYZ 71.731 220.8827 null]
+>> endobj
+6503 0 obj <<
+/D [6450 0 R /XYZ 71.731 177.8606 null]
+>> endobj
+6504 0 obj <<
+/D [6450 0 R /XYZ 71.731 134.6227 null]
+>> endobj
+6449 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+6507 0 obj <<
+/Length 1171      
+/Filter /FlateDecode
+>>
+stream
+xÚÅXM\8f£8\10½÷¯à\98H\1d¯ml\fsëý\1aíjgÔ\9aÉm{Õ¢\89\93 !Ð\ 23½óï·\8cm>\82\13rX©\95\ 3\ e\94«\9e\9f
+H\80áG\ 2A\90\báB\13D#N\83ìt\87\83\ 3<úxG¬ÉÆÚlÆF?oï~ú=ÄA\82\92\88FÁv\1f\84I\84¸`\81\b)\8a9\89\83íîïÕ/ÇôUÉz½¡\1c¯(2×Ç"-¥ú+}1\7f\1f\1eÿ0\83OR\1d«]³þgûçÝoÛ>>\ f\ 5Jb\br\15do5\87I\93 \ 6\98\11Ó0    <å\84\85\81À1
+Y(:\9c_¤jë²18\88¹ä{smÚ,\93M³o\8b{sc¿&x\95\85²ö\95:Êú-o$Òлx\ 3-\e;ÜhZDdÂ=\14Eµ¦|õ&wÆÅ\97ª\90Í\87\0×ͦ\ 4E$NºÙéî\94\97\16Ëkn\am\ 343¼r÷%ü½\11Íã\9aðUZ§'       [eP\8cù'\ 4\18ãD\ 4\11Æ\883\91xùï­6c3Ç?ì\8dÀ¤ã\7fæMCx¢\94ÏâR
+\eD¨7îùuÀáfÍq\84±O\a\13\1c\8e\1eÚ(CXGÐ&\1f¬*TÝfêþLÂz¾,U\9e¥*¯Ê±e[Ëù\ 2-\ 4\1eSØÝ\vÂî­6c³\81X¢ss¼ Þì"±°ù\98²Ä\e÷2±nÖ\1cÇ\94Ø0AL\88)\8c\aàŤ·\87]\1e¡\88ÁÉqÎo^\1e\1c¿\1eZOÆ]7VU\9f\ 4\17ÕËY\84\ 4\82zÇfWÔÛ\9b-ª×\17÷\ 6õÎpøÕ;ÁÑ\14y&\9fóÝsU?\97\90Î\1e®ã\18ñHÄS®óRÙ\93¬\1e\93\7fY¯4F1\89\92\8eÌ®éÕ\99-ëÕ\13÷\16½zp\f\8côz\1dÃ\0F¬ô¾jN-M;­Á'\8c©9[ýÜ\10\8câ\98-æòÈì\1a7Îl\99\eOÜ[¸ñàðp3\861ÉÌ\11=Nqà\1e<P®W     ÓpÂÇ%örya\10,â$\HбÙ\95\ 4íÍ\16\13Ô\17÷\86\ 4õá\181çvp\82cJ]~(]ýo\ 6\1aá\94û¦\e\f©lú\ 2T\81(á]âo¸@"\ e\r·4äQç\97¢$ÔÍ\95\88W\1f¥\82\ e
+\85¢ÞxN\0&PL±8k\ 1êJUêÇ«¼µ\a1at\ fó]\a\82¾Á \7fÂ\1cë"h×XV;w \1d«Fi\89\80\ 5¹µ3ùU6Y\9d¿êCÿ\1a°\10\88&óN.\1dW`3ΪR¥y©\8f7{öí«ú4ª+éKÕZ[(:ÖÁ«ÌLâï\86u\r\vvÇf\96\16EïX\9bÜO;IýÜyxù1\8188LË®F\82Ü@ô \9dÈHÇäuÞ8\ fj\ 6Vsí0\94YÑîztýÒ²¶®¥;ÿ\eé
+Á¾×å|\8f\81 ò¬ðöî4LÔã\87Â\1e\8aȵ¼`ÁBã\1a®f
+\f¦;Àèªî¶°#
+\1ewDuöÝJa¤it£Ò\1aI3õ°\86NV·ãnö¾®N6®¾=8hîÍX¢\ 32#\90ôg@ï\1eÀß5Yé;\9f¥zÓ\19YÕßà¡goL2df*ש\9bÙW\9díÑmϾ-³AdR\13úoÞ¸W\88´8Á¦ZÎá] °êØ;iõ\ 4¿ÈRêÍ=ۨϽ~>¥ez\80\95r¾z\87÷\91NÇÿó{\a\81óO\84\8c/\14\86±Ù\95ÂÐ\9b-\16\ 6\e
\f\87¿s\9bàx\9f÷\8e$\81òLÄB«2²ºÒ©8«ÅFÅ\13ô\86\1c\84÷\95c\8cáýÞ8ìç\12v¥Gv_TØYc:ù Âi\88p\18G½'\8d\95`vñû\88\7fpp7ßendstream
+endobj
+6506 0 obj <<
+/Type /Page
+/Contents 6507 0 R
+/Resources 6505 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6550 0 R
+>> endobj
+6508 0 obj <<
+/D [6506 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+6509 0 obj <<
+/D [6506 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+6510 0 obj <<
+/D [6506 0 R /XYZ 71.731 631.9816 null]
+>> endobj
+6511 0 obj <<
+/D [6506 0 R /XYZ 71.731 620.8718 null]
+>> endobj
+6512 0 obj <<
+/D [6506 0 R /XYZ 71.731 619.6265 null]
+>> endobj
+6513 0 obj <<
+/D [6506 0 R /XYZ 129.5143 600.5479 null]
+>> endobj
+6514 0 obj <<
+/D [6506 0 R /XYZ 129.5143 600.5479 null]
+>> endobj
+6515 0 obj <<
+/D [6506 0 R /XYZ 71.731 599.1084 null]
+>> endobj
+6516 0 obj <<
+/D [6506 0 R /XYZ 71.731 599.1084 null]
+>> endobj
+6517 0 obj <<
+/D [6506 0 R /XYZ 139.477 582.6152 null]
+>> endobj
+6518 0 obj <<
+/D [6506 0 R /XYZ 139.477 582.6152 null]
+>> endobj
+6519 0 obj <<
+/D [6506 0 R /XYZ 76.7123 564.6824 null]
+>> endobj
+6520 0 obj <<
+/D [6506 0 R /XYZ 129.5143 546.7497 null]
+>> endobj
+6521 0 obj <<
+/D [6506 0 R /XYZ 129.5143 546.7497 null]
+>> endobj
+6522 0 obj <<
+/D [6506 0 R /XYZ 71.731 544.5928 null]
+>> endobj
+6523 0 obj <<
+/D [6506 0 R /XYZ 71.731 544.5928 null]
+>> endobj
+6524 0 obj <<
+/D [6506 0 R /XYZ 139.477 528.8169 null]
+>> endobj
+6525 0 obj <<
+/D [6506 0 R /XYZ 71.731 527.3774 null]
+>> endobj
+6526 0 obj <<
+/D [6506 0 R /XYZ 139.477 510.8842 null]
+>> endobj
+6527 0 obj <<
+/D [6506 0 R /XYZ 71.731 473.0261 null]
+>> endobj
+6528 0 obj <<
+/D [6506 0 R /XYZ 71.731 459.9752 null]
+>> endobj
+6529 0 obj <<
+/D [6506 0 R /XYZ 71.731 458.7298 null]
+>> endobj
+6530 0 obj <<
+/D [6506 0 R /XYZ 129.5143 439.6513 null]
+>> endobj
+887 0 obj <<
+/D [6506 0 R /XYZ 71.731 432.5131 null]
+>> endobj
+402 0 obj <<
+/D [6506 0 R /XYZ 199.7086 389.4157 null]
+>> endobj
+6531 0 obj <<
+/D [6506 0 R /XYZ 71.731 369.2753 null]
+>> endobj
+6532 0 obj <<
+/D [6506 0 R /XYZ 161.0655 356.539 null]
+>> endobj
+6533 0 obj <<
+/D [6506 0 R /XYZ 71.731 344.4195 null]
+>> endobj
+6534 0 obj <<
+/D [6506 0 R /XYZ 71.731 313.3899 null]
+>> endobj
+6535 0 obj <<
+/D [6506 0 R /XYZ 168.8063 302.0433 null]
+>> endobj
+6536 0 obj <<
+/D [6506 0 R /XYZ 71.731 274.9799 null]
+>> endobj
+6537 0 obj <<
+/D [6506 0 R /XYZ 71.731 246.9017 null]
+>> endobj
+6538 0 obj <<
+/D [6506 0 R /XYZ 71.731 203.6638 null]
+>> endobj
+6539 0 obj <<
+/D [6506 0 R /XYZ 181.5683 192.6535 null]
+>> endobj
+6540 0 obj <<
+/D [6506 0 R /XYZ 71.731 182.5914 null]
+>> endobj
+6541 0 obj <<
+/D [6506 0 R /XYZ 71.731 149.8137 null]
+>> endobj
+6542 0 obj <<
+/D [6506 0 R /XYZ 71.731 138.0584 null]
+>> endobj
+6543 0 obj <<
+/D [6506 0 R /XYZ 71.731 136.813 null]
+>> endobj
+6544 0 obj <<
+/D [6506 0 R /XYZ 129.5143 117.7345 null]
+>> endobj
+6545 0 obj <<
+/D [6506 0 R /XYZ 129.5143 117.7345 null]
+>> endobj
+6546 0 obj <<
+/D [6506 0 R /XYZ 71.731 116.2949 null]
+>> endobj
+6547 0 obj <<
+/D [6506 0 R /XYZ 71.731 116.2949 null]
+>> endobj
+6548 0 obj <<
+/D [6506 0 R /XYZ 139.477 99.8017 null]
+>> endobj
+6549 0 obj <<
+/D [6506 0 R /XYZ 139.477 99.8017 null]
+>> endobj
+6505 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+6553 0 obj <<
+/Length 1991      
+/Filter /FlateDecode
+>>
+stream
+xÚ­\9a]o\9cF\14\86ïý+öÒ\96â)óÅ@îÒ´i]¥n\94¸R¥¦ZaÀ^\14\16¶ÀÖõ¿ï°Ì°Ã0_N£H^b¿p^\9e3sæ0,ÜDü\1fÜ0\b\18æ\1f(\ 5(¦h\93ï/¢Í#ÿÓO\17PH®\85æZ\15}\7fwñÝ;\1cmR\90Æ(ÞÜ=lp\1a\ 3ÊÈ\86a\ 4\12
+\93Í]ñçåÛ]v\18Êîê\1aÑè\12\81éóC\9d5åð>»\9fþûæÃÍtðk9ìÚ¢¿úëî\97\8b\1fïæø\143\90&<\88Ó$\81     8J7×8áñ        6ª L\ 1¥\90m®ã4\ 2\ 4r½¼\19\94nx\1c\16ÁñffÝ,\eïæ3BTw\a\11\ 2\98@´Q/(ãê\9fg\1fò¬µ\ f\9cl\12\ e5&'\1fü\96)ä7³ðÑ´E¹­\8amÛmwm?4Ù¾\1cm\9dîá\9c\10\18\11À"\86yÄñ¤×\13äª\19¦\83Vd¥\1fºªy\ß\96\fÌ\10 ,1C\9fUתì\8c\13\8eãfq\eRfÅÉGO\84Hj\8ckÇ)Ï2úP\90à\94ÿ\95-mp"¯&\14·\9c« T\94ÍP}\8e\a¯\15\r%\80\12J|h\14\99\v\8d\94ùÑ\18â\86 1ø0 QmLcCÐyw¬ëçéðïcVOt\8aé\17ê0ä1ùe\11å·N#\90Dét­\8fåpì\9aþõê¶äT£      \ 6\18r7î\89«Ê\1c\13w\96y'®)nÀÄ5ùPpÊ´.|p\9eÇ|°\ e(\1aS\80Y\9ax\ 6\94*s\f¨Yæ\1dP¦¸\ 1\ 3jåcYºÄ\80\18ª}Ù\ fÙþ`¨W|°¤\94_B/WbøÝ]az9\9f>\95°\87ésØUýt\94guýJ\9e)ê[\99·M!þÞWM.¦øï·7\7fLGå¡Íwö¤\10\ 6\b\97\14EæJ\8a\94ù\93b\88\e\92\14Ý\879)ª\rÇ\1aB( (EË\9c|UU0³\95\a\1e\8aÌÅV\1eøÙ\1aâ\86°Õ}\98Ùª6øØ{Ø>TuÙ\9bF|\fP\92h#>ëºìy9¾-eCÆ\83\10Ð\ 4Zê¦\10]«*\ 3CýZV\84\ 4òf\8cÅƨv\84ò¬µ\8d%BÂmðFrécÄ·m\9f\9ai)^3\8c!¯÷ö\11\9aïÚ+D/\9f\9aÏ\11\8d ÿ\ 1\ 5Ýé·\86\ 5^À )\ 61I\127XUe\a;«¼`MQ\ 3À®l\98Á.|\1cøü¬\1a^Pëz\9bï\v\ 3]¾xQ\12S\aÝO»²®\ 5èv¿Ï\1a\87V\14×+H/ÿ\1d\7f\94ùq\10µ7{\98\1f
+D|S\v*Ñ1
+\98ox+"G\12\84È\9f\83\90\14h\1e,\19PL\94]Ç{x3z
+ùÃ\ e¿ì7F_\89\9a\92\1fD¡9ù\10³"Ï\8f]oÍ\ 5e\80%\18{\92¡¨\1cÙ\90*\7f:\fQCò¡Û°$DõqèJ÷\8c`      \80q̾uZ\ e]%3 u\ 13\83\7f&4¢\9el(*G6¤Ê\9f\r\90lè6,ÙP}\88\aÝ>´39w\8bï«~X.¢ãµD\17È\99\82<\13ZfÎ}äØÅÔ¥\95;â7\ 5\99oaPT\ eîRåçn\88\1aÂ]·aá®úà¤\ 6\ 3sD@\ 4\1d#ÿÍ}ßÖç!\9d\r»éèiWvå\ 2ìtî®=Ö"\ 5÷åbÐ\97\85\95}\84ù\8dù\86üYä /D~ðë\90!Ü5\ f\16ì\8a\89ê±i»r¬;ÛSA6\r{¾|§D_\15îÛ¶.³FdáfB¸æ-JþÓ8ôe\8bY\8eMÐ?§bÔ¬\16\88\97­\r8\89AD\91gmPUöÜÌ*orLQ\ 3²³²aNÏÂGÙd÷bdêÅ(\ 24J\IyÛ6c*\1e\8f]6Tm³N\8e¬<Y>Tç\9cXYÇ|\19\82©g\1a¨*\ak©ò³6D\ra­Û°°V}ÌÏM¼ü\e\80Çüñ5bÐVýý´]û{\92\v\8d\0LbO\95WU\ eÆRågl\88\1aÂX·aa¬ú8á=\94ݾê{NÉTn\92\ 4Ð\98%Χ«}[hOVÚ5\8dpùC5²m\9dÎlÏ"\aZ!ò\93]\87\f\ 1«y°pULôí±ËM\9b)\98\0\16§®\8eþcYg\8bé¯-¤r(\ f»r.2\83Üæê¦s:ç\9a\9b˲.\17ÜB<\ 6×mVØW]\f       À\búj»¢r$Lªü\193D\rI\99\923ÕÇØ\1d>víñ`i7Ç\17\ 6(Á/k7§£Óe¿Qç\89Ò\18àÄ×þ¨*{\1ef\957\ f¦¨\ 1yXÙ0çaá#«\9f²ç~{<\14ÙP\86æa¹Ô¾©G¢Ë\91«ê0\94ûÃ`|ÀZO\12{Stlò]Ö<Ú'
+âÏ\87\84RÏ¢¡ª\1c     \92*\7f\82\fQC\12¤Û°$HõqZ4NCÚ¼\19\871\8e\9dËÅcw\bÞ\88\93\88 @ÓÈ·O¬Ê\1cûij̻Ol\8a\e°O¼òaÜ'^Ø\10Oº¶Þ\92¥¶ÊóÂw\96\88?ÃÅ\94Q\1fIEæ")e~\92\86¸!$u\1ff\92ª\rQn\ 3\97_ónûy¼Þ.˸¨í®w\1a(\8a\ 1CÄ÷\12O\95¹\bK\99\9f°!n\b\87\99°j£)\87§¶û\12¼+óâ7\1a\90·\9d,Eî\1aª\88ì%T\8a¼\15Ô\10\80ê\1eÌõS5qßñ>+Ï\8cÛ+ã\vÐ(um°ÜròãºÆé\8b\95o¾ÜDº(º²·6Ý\90E ¡©§\8bSU\ e²RåGk\88\1aÂV·a\81«ú¨úí¡«öY÷lÂË@\84\9d\9dÃM¯µ×òb²æ\96Ýé­\90ï\90\1fæ=Û¹\7f;õ}6þ\14\81\14Å\9eîMU9øK\95\9f¿!j\b\7fÝ\86\85¿êCT\ 6ó*F\bÅ®móã=?=l\1cóR\9e¦ØÓd©*\aG©òs4D\rá¨Û°pT}T¦æ
+b\80Rê*\ f7\1fÂðA>\13bè¡w\169à   \91\9fÝ:d\b\83\85\9cb¢hzø\15\e×:¸ÅZµ(\ 2?Ü~Z=o[0§)\80ã£\8a\13³"²c\96"/fCÈ\0̺\a3fÕÄÿúÆÈØýÿv\18÷å²úü\10ð³å»"â˧$\ 1    \8cSç÷S\15Íúë©\14a^þ\93x¾Òh\ fFÔúmSCÄÿ\0ù#¢\7fendstream
+endobj
+6552 0 obj <<
+/Type /Page
+/Contents 6553 0 R
+/Resources 6551 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6550 0 R
+>> endobj
+6554 0 obj <<
+/D [6552 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+6555 0 obj <<
+/D [6552 0 R /XYZ 76.7123 708.3437 null]
+>> endobj
+6556 0 obj <<
+/D [6552 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+6557 0 obj <<
+/D [6552 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+6558 0 obj <<
+/D [6552 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+6559 0 obj <<
+/D [6552 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+6560 0 obj <<
+/D [6552 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+6561 0 obj <<
+/D [6552 0 R /XYZ 71.731 671.0386 null]
+>> endobj
+6562 0 obj <<
+/D [6552 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+6563 0 obj <<
+/D [6552 0 R /XYZ 71.731 616.6874 null]
+>> endobj
+6564 0 obj <<
+/D [6552 0 R /XYZ 71.731 603.6364 null]
+>> endobj
+6565 0 obj <<
+/D [6552 0 R /XYZ 71.731 602.3911 null]
+>> endobj
+6566 0 obj <<
+/D [6552 0 R /XYZ 129.5143 583.3126 null]
+>> endobj
+6567 0 obj <<
+/D [6552 0 R /XYZ 71.731 583.213 null]
+>> endobj
+6568 0 obj <<
+/D [6552 0 R /XYZ 71.731 583.213 null]
+>> endobj
+6569 0 obj <<
+/D [6552 0 R /XYZ 139.477 565.3798 null]
+>> endobj
+6570 0 obj <<
+/D [6552 0 R /XYZ 139.477 565.3798 null]
+>> endobj
+6571 0 obj <<
+/D [6552 0 R /XYZ 71.731 563.223 null]
+>> endobj
+6572 0 obj <<
+/D [6552 0 R /XYZ 139.477 547.4471 null]
+>> endobj
+6573 0 obj <<
+/D [6552 0 R /XYZ 139.477 547.4471 null]
+>> endobj
+6574 0 obj <<
+/D [6552 0 R /XYZ 71.731 545.2902 null]
+>> endobj
+6575 0 obj <<
+/D [6552 0 R /XYZ 139.477 529.5143 null]
+>> endobj
+6576 0 obj <<
+/D [6552 0 R /XYZ 139.477 529.5143 null]
+>> endobj
+6577 0 obj <<
+/D [6552 0 R /XYZ 71.731 527.3575 null]
+>> endobj
+6578 0 obj <<
+/D [6552 0 R /XYZ 71.731 527.3575 null]
+>> endobj
+6579 0 obj <<
+/D [6552 0 R /XYZ 149.4396 511.5816 null]
+>> endobj
+6580 0 obj <<
+/D [6552 0 R /XYZ 149.4396 511.5816 null]
+>> endobj
+6581 0 obj <<
+/D [6552 0 R /XYZ 71.731 509.4247 null]
+>> endobj
+6582 0 obj <<
+/D [6552 0 R /XYZ 149.4396 493.6488 null]
+>> endobj
+6583 0 obj <<
+/D [6552 0 R /XYZ 149.4396 493.6488 null]
+>> endobj
+6584 0 obj <<
+/D [6552 0 R /XYZ 71.731 491.492 null]
+>> endobj
+6585 0 obj <<
+/D [6552 0 R /XYZ 149.4396 475.716 null]
+>> endobj
+6586 0 obj <<
+/D [6552 0 R /XYZ 149.4396 475.716 null]
+>> endobj
+6587 0 obj <<
+/D [6552 0 R /XYZ 71.731 473.5592 null]
+>> endobj
+6588 0 obj <<
+/D [6552 0 R /XYZ 149.4396 457.7833 null]
+>> endobj
+6589 0 obj <<
+/D [6552 0 R /XYZ 149.4396 457.7833 null]
+>> endobj
+6590 0 obj <<
+/D [6552 0 R /XYZ 71.731 455.6265 null]
+>> endobj
+6591 0 obj <<
+/D [6552 0 R /XYZ 149.4396 439.8505 null]
+>> endobj
+6592 0 obj <<
+/D [6552 0 R /XYZ 149.4396 439.8505 null]
+>> endobj
+6593 0 obj <<
+/D [6552 0 R /XYZ 71.731 438.411 null]
+>> endobj
+6594 0 obj <<
+/D [6552 0 R /XYZ 149.4396 421.9178 null]
+>> endobj
+6595 0 obj <<
+/D [6552 0 R /XYZ 149.4396 421.9178 null]
+>> endobj
+6596 0 obj <<
+/D [6552 0 R /XYZ 71.731 419.761 null]
+>> endobj
+6597 0 obj <<
+/D [6552 0 R /XYZ 149.4396 403.985 null]
+>> endobj
+6598 0 obj <<
+/D [6552 0 R /XYZ 149.4396 403.985 null]
+>> endobj
+6599 0 obj <<
+/D [6552 0 R /XYZ 71.731 401.8282 null]
+>> endobj
+6600 0 obj <<
+/D [6552 0 R /XYZ 149.4396 386.0523 null]
+>> endobj
+6601 0 obj <<
+/D [6552 0 R /XYZ 149.4396 386.0523 null]
+>> endobj
+6602 0 obj <<
+/D [6552 0 R /XYZ 71.731 383.8955 null]
+>> endobj
+6603 0 obj <<
+/D [6552 0 R /XYZ 149.4396 368.1195 null]
+>> endobj
+6604 0 obj <<
+/D [6552 0 R /XYZ 149.4396 368.1195 null]
+>> endobj
+6605 0 obj <<
+/D [6552 0 R /XYZ 71.731 365.9627 null]
+>> endobj
+6606 0 obj <<
+/D [6552 0 R /XYZ 149.4396 350.1868 null]
+>> endobj
+6607 0 obj <<
+/D [6552 0 R /XYZ 149.4396 350.1868 null]
+>> endobj
+6608 0 obj <<
+/D [6552 0 R /XYZ 71.731 348.03 null]
+>> endobj
+6609 0 obj <<
+/D [6552 0 R /XYZ 149.4396 332.254 null]
+>> endobj
+6610 0 obj <<
+/D [6552 0 R /XYZ 149.4396 332.254 null]
+>> endobj
+6611 0 obj <<
+/D [6552 0 R /XYZ 71.731 330.0972 null]
+>> endobj
+6612 0 obj <<
+/D [6552 0 R /XYZ 149.4396 314.3213 null]
+>> endobj
+6613 0 obj <<
+/D [6552 0 R /XYZ 149.4396 314.3213 null]
+>> endobj
+6614 0 obj <<
+/D [6552 0 R /XYZ 71.731 312.1645 null]
+>> endobj
+6615 0 obj <<
+/D [6552 0 R /XYZ 149.4396 296.3885 null]
+>> endobj
+6616 0 obj <<
+/D [6552 0 R /XYZ 149.4396 296.3885 null]
+>> endobj
+6617 0 obj <<
+/D [6552 0 R /XYZ 71.731 294.2317 null]
+>> endobj
+6618 0 obj <<
+/D [6552 0 R /XYZ 149.4396 278.4558 null]
+>> endobj
+6619 0 obj <<
+/D [6552 0 R /XYZ 149.4396 278.4558 null]
+>> endobj
+6620 0 obj <<
+/D [6552 0 R /XYZ 76.7123 260.523 null]
+>> endobj
+6621 0 obj <<
+/D [6552 0 R /XYZ 139.477 242.5903 null]
+>> endobj
+6622 0 obj <<
+/D [6552 0 R /XYZ 139.477 242.5903 null]
+>> endobj
+6623 0 obj <<
+/D [6552 0 R /XYZ 71.731 241.1507 null]
+>> endobj
+6624 0 obj <<
+/D [6552 0 R /XYZ 139.477 224.6575 null]
+>> endobj
+6625 0 obj <<
+/D [6552 0 R /XYZ 139.477 224.6575 null]
+>> endobj
+6626 0 obj <<
+/D [6552 0 R /XYZ 71.731 222.5007 null]
+>> endobj
+6627 0 obj <<
+/D [6552 0 R /XYZ 139.477 206.7248 null]
+>> endobj
+6628 0 obj <<
+/D [6552 0 R /XYZ 139.477 206.7248 null]
+>> endobj
+6629 0 obj <<
+/D [6552 0 R /XYZ 71.731 204.5679 null]
+>> endobj
+6630 0 obj <<
+/D [6552 0 R /XYZ 71.731 204.5679 null]
+>> endobj
+6631 0 obj <<
+/D [6552 0 R /XYZ 149.4396 188.792 null]
+>> endobj
+6632 0 obj <<
+/D [6552 0 R /XYZ 149.4396 188.792 null]
+>> endobj
+6633 0 obj <<
+/D [6552 0 R /XYZ 71.731 186.6352 null]
+>> endobj
+6634 0 obj <<
+/D [6552 0 R /XYZ 149.4396 170.8593 null]
+>> endobj
+6635 0 obj <<
+/D [6552 0 R /XYZ 149.4396 170.8593 null]
+>> endobj
+6636 0 obj <<
+/D [6552 0 R /XYZ 71.731 168.7024 null]
+>> endobj
+6637 0 obj <<
+/D [6552 0 R /XYZ 149.4396 152.9265 null]
+>> endobj
+6638 0 obj <<
+/D [6552 0 R /XYZ 149.4396 152.9265 null]
+>> endobj
+6639 0 obj <<
+/D [6552 0 R /XYZ 71.731 150.7697 null]
+>> endobj
+6640 0 obj <<
+/D [6552 0 R /XYZ 149.4396 134.9938 null]
+>> endobj
+6641 0 obj <<
+/D [6552 0 R /XYZ 149.4396 134.9938 null]
+>> endobj
+6642 0 obj <<
+/D [6552 0 R /XYZ 71.731 132.8369 null]
+>> endobj
+6643 0 obj <<
+/D [6552 0 R /XYZ 149.4396 117.061 null]
+>> endobj
+6644 0 obj <<
+/D [6552 0 R /XYZ 149.4396 117.061 null]
+>> endobj
+6645 0 obj <<
+/D [6552 0 R /XYZ 71.731 114.9042 null]
+>> endobj
+6646 0 obj <<
+/D [6552 0 R /XYZ 149.4396 99.1283 null]
+>> endobj
+6647 0 obj <<
+/D [6552 0 R /XYZ 149.4396 99.1283 null]
+>> endobj
+6648 0 obj <<
+/D [6552 0 R /XYZ 71.731 96.9714 null]
+>> endobj
+6551 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+6651 0 obj <<
+/Length 1495      
+/Filter /FlateDecode
+>>
+stream
+xÚ¥\99]o£F\14\86ïó+¸\8b-­§óÉ\f¹ËnÚ*m7\8a´©T©©"bHL\13\e\vp¼þ÷=\18\86\fx\86aSå\82\ f¿Ìyyæp8\13H\80á\8f\ 4\92 É`C#DCA\83åú\f\aÏðÓ¯g¤\95,ZÍÂ\14}¾;ûé\17\86\83\bE!\r\83»§\80E!\12\92\a\92\ 4QÁ]ò÷ìË*ÞVi1_P\81g\145ÛÛ×x\93V\7fÄ\8fÍáåíu³ó5­VyRÎÿ¹ûíìç».¾`\12E
+\82\8c\9ad\91B\ 2\8b0XP\8c"J\84UEX\84¸\94p/X!Æ\99ìî\85F\81D¤¾O¸\17-ëTõ½ÜS*\86Þ\b'àM\86\819\9e\8e:ܾ»ÐW\9dÚ`*P\804äG\e\1cl\0×¾\ f\8eË\97ÚÊÑöû\14p\8c8\17\f\82Ôº\8b\86jY\15ÙæùSsðm÷\b\977ûz\90Þý´7\1eF0\14ÁÑ8DSå\86Ø©¼\10mQ'@<±a\87Øóñ\1cWé>>Ø!ª\88\85#\10¯o\9bm\9c$EZ\96ÍAþÔl·E¶\8e\8bCsð<\173\b4§b¶\9f\13¸âà\ 4.)l\15õ\07T#ÀµÊ\ fÜ\12u
+ð¡\r\apÓÇ&ORH½}^¼<d\89\85»T\88\84¡ìsÏ6U\vý\ 6®ïÎ¥ÅÓ\11çR\9f\82±«ì\1ec
+µÆEXp$¸à\1eÂ\86j\84°Vù       [¢N!<´á lúXÇK\v\90ÄP\8dÝéüõrÎñìK?§]\10Y\88BB¥\a¢¡\1a\81¨U~\88\96¨S \ em8 \9a>ê4µç'Ô\ 5\81\95?=ã²Ì\97\19<õIs¼ÏªU³W­²Ò\96Â.Ö0u¡\8c|5ØP\8d°Ö*?kKÔ)¬\876\1c¬M\1fɦ¤\16Ð\94#L>Z~Ët\99o\92®\0_Ý|Óç\8b·9\11³\91ú\801\92\ú*°¡\1aÁ­U~Ü\96¨Sp\ fm8p\9b>\1e÷¯Ù:«ì©\r\97pWn\7f\8e7É>Kt\1aw£Ø(
+\ 5Ý\1fá\9e*kªÜ\14;\95\97¢-ê\ 4\8a'6ì\14{>ªÃ6ý@Ò^\9aÉz\1cã¸w\8f\ 5NÑ3jUçÙö\8d\9fÃIâä\e\14ñ\14`S5ÂW«ü|-Q§ð\1dÚpð5}¬\8f\8b\0\va&\10¡ÐLx\19Ã\89¶Ám\86²\82\9e\v\ 1\17ÇU¶<o\vHÑý\82gÉj¹µO\ 3,A\ 4á,\10°\83Iè¨\16Zµ0e\96\898\19Í9\13°¨Â\94GÖ¸î\99ÐW\9dúèÏ\84N\bÓFù\9a½¥E9µ\ÄE\11\1f\ 6µ¸*vKw¥ \ 4aÅ|\95ÂP\8dd²Vù3Ù\12uJ&\ fm82Ùô\91m Á -\85$Ë7¶\86\17ºcªFWk¯Y×áö\ 6k¥õÒÂA\97G\f\11\81=uÂT¹év*/][Ô       tOlØéö|lâõGê°\81T\8f`Å'\ 5¢Dzz/S5\82O«üø,Q§à\eÚpà3}\945\aG£+ \1aKg§k&å\84e\17\17\12Q%<m\95©\1a!©U~\92\96¨SH\ em8H\9a>^ÒC9-\11§\97È.\10Ü8\13ÔQ#µjaÊ,ôNFsâ\13\0B`j\8dëƧ¯:õÑÇ'À\a¦¬ï\ 3ð=8z*HDx#\8d½ñ\7f¯ÿ³\92Ö}ýÁè¬\9c4)A\9cDÒGÓ\90\8dÑÔ2?MKÜ)4\87>\1c4M\1f@Óö?\0à-9û\11\90\89øuç¬\90LÁì\bîy®M\95û¹îTÞçÚ\16uÂs}bÃþ\÷|¤ß·\19´\93?¾\ºª_ËÍ\ 3¿i»Ï*[·§ö«T¿¾ßëè\11|\13î\93\1eÍ\ζË\ 6èlõ\15\7fÞ\ÿÕ^»Í\97+ç$\85\12\85\94xz,S52IZå\9f$KÔ)\934´á\98$ÓG\A\16?î*ë<\89\10ª´\8aþo\11\13Â\eÑS6LÙHÙèdÞ²a\8b;¡l\9cø°\97\8d\9e\8f\91f
+GÑ´vª\99\8a9ų\9dÎÿ÷u®µ×ê\900\82¤\10\91\ f°!\e\ 3¬e~À\96¸S\0\ f}8\0\9b>Þt)\1d\12\86ʬ"ùa½2\rcÃÝAkBÄÑÊ\82À\ 1\ e\18f\92±Æ\vE\11¯¿ÄI5»É«ìép;g¸þÇ\18\14¡2ßX+\9eD\8aâºTP\ 4Ïj\934·E^åõ\14_tW¼ch¯]ÀË)$ª       ÜF\83Ee\1d¥[\96Ç»jÕÞìöøÛCÝQ¾Ö\9f\r9\9eµ¿\94»Ç\7fÓ¥.±\8fyrÐËó\81Õ\85\8elZ½JËe\91mëµÓÅ0\1dÚ¯\9b\!EÂhô\ 3¨¡9ýþ)(\ 4¤ðZЪ:0Á¡ós¦%â\7fÓ1\8b»endstream
+endobj
+6650 0 obj <<
+/Type /Page
+/Contents 6651 0 R
+/Resources 6649 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6550 0 R
+>> endobj
+6652 0 obj <<
+/D [6650 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+6653 0 obj <<
+/D [6650 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+6654 0 obj <<
+/D [6650 0 R /XYZ 149.4396 708.3437 null]
+>> endobj
+6655 0 obj <<
+/D [6650 0 R /XYZ 149.4396 708.3437 null]
+>> endobj
+6656 0 obj <<
+/D [6650 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+6657 0 obj <<
+/D [6650 0 R /XYZ 149.4396 690.4109 null]
+>> endobj
+6658 0 obj <<
+/D [6650 0 R /XYZ 149.4396 690.4109 null]
+>> endobj
+6659 0 obj <<
+/D [6650 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+6660 0 obj <<
+/D [6650 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+6661 0 obj <<
+/D [6650 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+6662 0 obj <<
+/D [6650 0 R /XYZ 71.731 671.0386 null]
+>> endobj
+6663 0 obj <<
+/D [6650 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+6664 0 obj <<
+/D [6650 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+6665 0 obj <<
+/D [6650 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+6666 0 obj <<
+/D [6650 0 R /XYZ 149.4396 636.6127 null]
+>> endobj
+6667 0 obj <<
+/D [6650 0 R /XYZ 149.4396 636.6127 null]
+>> endobj
+6668 0 obj <<
+/D [6650 0 R /XYZ 71.731 635.1731 null]
+>> endobj
+6669 0 obj <<
+/D [6650 0 R /XYZ 149.4396 618.6799 null]
+>> endobj
+6670 0 obj <<
+/D [6650 0 R /XYZ 149.4396 618.6799 null]
+>> endobj
+6671 0 obj <<
+/D [6650 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+6672 0 obj <<
+/D [6650 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+6673 0 obj <<
+/D [6650 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+6674 0 obj <<
+/D [6650 0 R /XYZ 71.731 599.3076 null]
+>> endobj
+6675 0 obj <<
+/D [6650 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+6676 0 obj <<
+/D [6650 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+6677 0 obj <<
+/D [6650 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+6678 0 obj <<
+/D [6650 0 R /XYZ 149.4396 564.8817 null]
+>> endobj
+6679 0 obj <<
+/D [6650 0 R /XYZ 149.4396 564.8817 null]
+>> endobj
+6680 0 obj <<
+/D [6650 0 R /XYZ 76.7123 546.9489 null]
+>> endobj
+6681 0 obj <<
+/D [6650 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+6682 0 obj <<
+/D [6650 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+6683 0 obj <<
+/D [6650 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+6684 0 obj <<
+/D [6650 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+6685 0 obj <<
+/D [6650 0 R /XYZ 149.4396 511.0834 null]
+>> endobj
+6686 0 obj <<
+/D [6650 0 R /XYZ 149.4396 511.0834 null]
+>> endobj
+6687 0 obj <<
+/D [6650 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+6688 0 obj <<
+/D [6650 0 R /XYZ 149.4396 493.1507 null]
+>> endobj
+6689 0 obj <<
+/D [6650 0 R /XYZ 149.4396 493.1507 null]
+>> endobj
+6690 0 obj <<
+/D [6650 0 R /XYZ 71.731 490.9938 null]
+>> endobj
+6691 0 obj <<
+/D [6650 0 R /XYZ 149.4396 475.2179 null]
+>> endobj
+6692 0 obj <<
+/D [6650 0 R /XYZ 149.4396 475.2179 null]
+>> endobj
+6693 0 obj <<
+/D [6650 0 R /XYZ 71.731 473.7784 null]
+>> endobj
+6694 0 obj <<
+/D [6650 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+6695 0 obj <<
+/D [6650 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+6696 0 obj <<
+/D [6650 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+6697 0 obj <<
+/D [6650 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+6698 0 obj <<
+/D [6650 0 R /XYZ 159.4023 439.3524 null]
+>> endobj
+6699 0 obj <<
+/D [6650 0 R /XYZ 159.4023 439.3524 null]
+>> endobj
+6700 0 obj <<
+/D [6650 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+6701 0 obj <<
+/D [6650 0 R /XYZ 159.4023 421.4197 null]
+>> endobj
+6702 0 obj <<
+/D [6650 0 R /XYZ 159.4023 421.4197 null]
+>> endobj
+6703 0 obj <<
+/D [6650 0 R /XYZ 76.7123 403.4869 null]
+>> endobj
+6704 0 obj <<
+/D [6650 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+6705 0 obj <<
+/D [6650 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+6706 0 obj <<
+/D [6650 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+6707 0 obj <<
+/D [6650 0 R /XYZ 149.4396 367.6214 null]
+>> endobj
+6708 0 obj <<
+/D [6650 0 R /XYZ 149.4396 367.6214 null]
+>> endobj
+6709 0 obj <<
+/D [6650 0 R /XYZ 71.731 365.4646 null]
+>> endobj
+6710 0 obj <<
+/D [6650 0 R /XYZ 71.731 365.4646 null]
+>> endobj
+6711 0 obj <<
+/D [6650 0 R /XYZ 159.4023 349.6887 null]
+>> endobj
+6712 0 obj <<
+/D [6650 0 R /XYZ 159.4023 349.6887 null]
+>> endobj
+6713 0 obj <<
+/D [6650 0 R /XYZ 71.731 347.5318 null]
+>> endobj
+6714 0 obj <<
+/D [6650 0 R /XYZ 159.4023 331.7559 null]
+>> endobj
+6715 0 obj <<
+/D [6650 0 R /XYZ 159.4023 331.7559 null]
+>> endobj
+888 0 obj <<
+/D [6650 0 R /XYZ 71.731 272.9763 null]
+>> endobj
+406 0 obj <<
+/D [6650 0 R /XYZ 230.7311 227.722 null]
+>> endobj
+6716 0 obj <<
+/D [6650 0 R /XYZ 71.731 204.2332 null]
+>> endobj
+6717 0 obj <<
+/D [6650 0 R /XYZ 161.0655 194.8453 null]
+>> endobj
+6718 0 obj <<
+/D [6650 0 R /XYZ 71.731 182.7258 null]
+>> endobj
+6719 0 obj <<
+/D [6650 0 R /XYZ 71.731 151.36 null]
+>> endobj
+6720 0 obj <<
+/D [6650 0 R /XYZ 168.8063 140.3497 null]
+>> endobj
+6649 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+6723 0 obj <<
+/Length 1422      
+/Filter /FlateDecode
+>>
+stream
+xÚµY]\8f\9b8\14}\9f_Ác"5^\7f`\8cû6Ý\8fª«]iÔ¦OÛUÅ$d\82\94\90\88\90­æßï%ØÄÀ5f¥\1dÍ\ 3\849ö=\1cιؠ       \8b(ü±H1¢\ 4\1c¸&<\91\1c\1f\ 2ÿúøÀ\fde0+\17ôaýðÓo\82F\9aè\84'Ñz\17   \9d\10©âH   NRÉÒh½ýkñó>;×yµ\qI\17\9c´Ç§CVæõ\1fÙsûññéS{òg^ïOÛËòïõï\ f¿®»úR(¢S(2I²C\8dir\1d¥@3\89\e\9a\fþ+Y,"ES"b¡n<¿ä%\14¾±ÈÊö\98¯\8eYqhÏ\8fùå\92½äí\87úd\8e{sárÎ7Å7Jy¾m/\/yu17ûi×\1eÏpéT~o`\87N\91ââ\99!+·}\84e\95UUöÚ\9e\9ev÷j\ 6¼Í˺\9d§jÆÅzqª\1a9A¢\15c$\91\89¸Ýn3¤Ìà®Þ\99©Ì\ 4\99¡SW×Mí«\92ÕuU</9\«ï3\94\87Wçæ\8dlY½Ù\17åË@¯¾\ 6?\8a\83Q¹Ê7y±ärñÏ\92ÉE>\18e\9e\ 1éî'!\89PÉí~>çõµ*MUfÄ0Ä/×Í\ 6\86î®\87ÛÐ\9b\1dî®]\99ÓUãZ\95´nx<\1cN\r\8f\1föq|>\1dòËûnøÝMv4\aqYªo£³í±(\8d,åi\9bÏ­úÔÜuVÁc\ 1mÚjn\f\18\ 3ãJ¦"©8á2FSÐ\81V\ eÊ\86\0\ 2¢(»\85`8WSÿ\eçrT\94s\b       ãXÑáñNÂ\ e\1a\91\10)\96D\97Dv­÷\88`<&´\99¿\81¼wMúnÐC\9añM\b6Y]\9cJ\17y­òñÝY\ 62&\823\81kjQ+\17v\17\955ͱw?\16æU\15\1e;\85t¢uý²ÚQc\1e}]\85&±R}\1a\8f KÛ_\11u%D)\86Ö=Ô\17¢kõEd=¶Óõz"\84ßï[\96\92XÊ4d\\a6å\\v\v[\17©;Ç»C\1e\1eóº<L\93ß\15·ö6\16\1a\8c®$\e\18\19iéEY÷\esû0F×\9a.íõ4¥Dò ¥ï¨)G\eTØÐã¢sü<&q׬³³Ãá?H6bÚÎ\16§\9cHM=ò\18ÐÊE!ò\fçòÊ\133X\9bÀ»
+«ê×Ç\8eBi8\ 2Å@\ 3V_}\1e \87ÉîWt}à\15&\89a\9d d@\18\a5!\8cE\85\85AªÎ\11\ 6¡\81        ãòèõµ§ª8fÕëxÅ\97\15¬\1a¼é\8ayJ\94æ\81t9¨\89tYT0]HÑ\19éBH\8cÓårè¿YÝÕÞ`ýæ³\10£°\ 3Сl9¨       \vYTØBHÕ9\16\1aÒè·ùÎB.\8fçâ\844wx\11$\ 2\8c\1a7Ò½<ÍÊV\17\9a\13\r{\1a\Q\8bZ¹0DÒÑl^M%¨#)Gëú5µ£P\1e\8eN\12xPèä=\1e½X~(N/UvÞ/åâÕ/\8a\8a\89Ö"\r\89âÀ¦D±°°(HÝ9¢ <0Q\\1e^§ÌÑÉ$HÀ\91ñ4\90F\17åOc\87
\11«:#\8d#\1ax\1a{<vEu©¿7ÛY|iËSØ\98½E(aÓÇ´\f\86Ò\81MùÏÂÂþCêÎñ\1fÂ\ 3ó\9fË£g¶\8fÎÞÜl\ 1¬è¸>T\10\9eð`>\1dØ\94>\16\16Ö\a©;G\1f\84\a¦\8fË#\94Ϲ\92\99xñD\11¡U ª.Ê\1fÕ\ e\15\8c*VuFTG4ð¨öx\1c²\89¤R¢©~\93×'oN\928\94T\176áÄ\ e\16t"Vw\86\131\1e\88\13{<z¶ûr­&\93É\ 5#RÀ&: \87\ 3\9bÒÃÂÂz uçè\81ðÀôpy\84\92é\93Ȥ\a: I\92\84O'ÑEù\93Ø¡\82IĪÎHâ\88\ 6\9eÄ\1e\8f[\12¯çmVçØ7B\10Ú\98ªA\18G[lÏ6Üg;¦\14QB\84bèÂ&l×Á\82¶Ãêΰ\1dÆ\ 3±]\8fÇ}×ýKf·KÝwùuqÌûj5OÁ|qv{\14~é ZJi(±.lJ:\v\vK\87Ô\9d#\1dÂ\ 3\93Îå\81\9bé\7f\ 6\92\v¢\85\f\85ÛAM\84Û¢ÂáFªÎ        ÷\90\86'Ü.\8fº¨\ fØ+\96k"R\9d¾Å+\96Ñ\84\83Ùv`S\ 6µ°°A\91ºs\f\8aðÀ\fêòè½?ÖK!\17Vf\97\99ù±4NIÊ\12=ù{ª\83\19ÿ\9c*9'\89êæi\b0ª¼¿\8d"õþ\ 5\1aP\9c-endstream
+endobj
+6722 0 obj <<
+/Type /Page
+/Contents 6723 0 R
+/Resources 6721 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6550 0 R
+>> endobj
+6724 0 obj <<
+/D [6722 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+6725 0 obj <<
+/D [6722 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+6726 0 obj <<
+/D [6722 0 R /XYZ 71.731 660.0349 null]
+>> endobj
+6727 0 obj <<
+/D [6722 0 R /XYZ 181.5683 647.1731 null]
+>> endobj
+6728 0 obj <<
+/D [6722 0 R /XYZ 71.731 637.1109 null]
+>> endobj
+6729 0 obj <<
+/D [6722 0 R /XYZ 71.731 604.3333 null]
+>> endobj
+6730 0 obj <<
+/D [6722 0 R /XYZ 71.731 592.5779 null]
+>> endobj
+6731 0 obj <<
+/D [6722 0 R /XYZ 71.731 591.3326 null]
+>> endobj
+6732 0 obj <<
+/D [6722 0 R /XYZ 129.5143 572.254 null]
+>> endobj
+6733 0 obj <<
+/D [6722 0 R /XYZ 129.5143 572.254 null]
+>> endobj
+6734 0 obj <<
+/D [6722 0 R /XYZ 71.731 570.8145 null]
+>> endobj
+6735 0 obj <<
+/D [6722 0 R /XYZ 71.731 570.8145 null]
+>> endobj
+6736 0 obj <<
+/D [6722 0 R /XYZ 139.477 554.3213 null]
+>> endobj
+6737 0 obj <<
+/D [6722 0 R /XYZ 139.477 554.3213 null]
+>> endobj
+6738 0 obj <<
+/D [6722 0 R /XYZ 76.7123 536.3885 null]
+>> endobj
+6739 0 obj <<
+/D [6722 0 R /XYZ 129.5143 518.4558 null]
+>> endobj
+6740 0 obj <<
+/D [6722 0 R /XYZ 129.5143 518.4558 null]
+>> endobj
+6741 0 obj <<
+/D [6722 0 R /XYZ 71.731 516.299 null]
+>> endobj
+6742 0 obj <<
+/D [6722 0 R /XYZ 71.731 516.299 null]
+>> endobj
+6743 0 obj <<
+/D [6722 0 R /XYZ 139.477 500.523 null]
+>> endobj
+6744 0 obj <<
+/D [6722 0 R /XYZ 71.731 498.3662 null]
+>> endobj
+6745 0 obj <<
+/D [6722 0 R /XYZ 71.731 498.3662 null]
+>> endobj
+6746 0 obj <<
+/D [6722 0 R /XYZ 149.4396 482.5903 null]
+>> endobj
+6747 0 obj <<
+/D [6722 0 R /XYZ 71.731 481.1507 null]
+>> endobj
+6748 0 obj <<
+/D [6722 0 R /XYZ 149.4396 464.6575 null]
+>> endobj
+6749 0 obj <<
+/D [6722 0 R /XYZ 76.7123 446.7248 null]
+>> endobj
+6750 0 obj <<
+/D [6722 0 R /XYZ 139.477 428.792 null]
+>> endobj
+6751 0 obj <<
+/D [6722 0 R /XYZ 71.731 427.3525 null]
+>> endobj
+6752 0 obj <<
+/D [6722 0 R /XYZ 71.731 427.3525 null]
+>> endobj
+6753 0 obj <<
+/D [6722 0 R /XYZ 149.4396 410.8593 null]
+>> endobj
+6754 0 obj <<
+/D [6722 0 R /XYZ 149.4396 410.8593 null]
+>> endobj
+6755 0 obj <<
+/D [6722 0 R /XYZ 71.731 408.7024 null]
+>> endobj
+6756 0 obj <<
+/D [6722 0 R /XYZ 71.731 408.7024 null]
+>> endobj
+6757 0 obj <<
+/D [6722 0 R /XYZ 159.4023 392.9265 null]
+>> endobj
+6758 0 obj <<
+/D [6722 0 R /XYZ 71.731 390.7697 null]
+>> endobj
+6759 0 obj <<
+/D [6722 0 R /XYZ 159.4023 374.9938 null]
+>> endobj
+6760 0 obj <<
+/D [6722 0 R /XYZ 76.7123 357.061 null]
+>> endobj
+6761 0 obj <<
+/D [6722 0 R /XYZ 149.4396 339.1283 null]
+>> endobj
+6762 0 obj <<
+/D [6722 0 R /XYZ 149.4396 339.1283 null]
+>> endobj
+6763 0 obj <<
+/D [6722 0 R /XYZ 71.731 336.9714 null]
+>> endobj
+6764 0 obj <<
+/D [6722 0 R /XYZ 71.731 336.9714 null]
+>> endobj
+6765 0 obj <<
+/D [6722 0 R /XYZ 159.4023 321.1955 null]
+>> endobj
+6766 0 obj <<
+/D [6722 0 R /XYZ 71.731 319.0387 null]
+>> endobj
+6767 0 obj <<
+/D [6722 0 R /XYZ 159.4023 303.2628 null]
+>> endobj
+6768 0 obj <<
+/D [6722 0 R /XYZ 76.7123 285.33 null]
+>> endobj
+6769 0 obj <<
+/D [6722 0 R /XYZ 149.4396 267.3973 null]
+>> endobj
+6770 0 obj <<
+/D [6722 0 R /XYZ 149.4396 267.3973 null]
+>> endobj
+6771 0 obj <<
+/D [6722 0 R /XYZ 71.731 265.2404 null]
+>> endobj
+6772 0 obj <<
+/D [6722 0 R /XYZ 71.731 265.2404 null]
+>> endobj
+6773 0 obj <<
+/D [6722 0 R /XYZ 159.4023 249.4645 null]
+>> endobj
+6774 0 obj <<
+/D [6722 0 R /XYZ 71.731 247.3077 null]
+>> endobj
+6775 0 obj <<
+/D [6722 0 R /XYZ 159.4023 231.5317 null]
+>> endobj
+6776 0 obj <<
+/D [6722 0 R /XYZ 76.7123 213.599 null]
+>> endobj
+6777 0 obj <<
+/D [6722 0 R /XYZ 149.4396 195.6662 null]
+>> endobj
+6778 0 obj <<
+/D [6722 0 R /XYZ 149.4396 195.6662 null]
+>> endobj
+6779 0 obj <<
+/D [6722 0 R /XYZ 71.731 193.5094 null]
+>> endobj
+6780 0 obj <<
+/D [6722 0 R /XYZ 71.731 193.5094 null]
+>> endobj
+6781 0 obj <<
+/D [6722 0 R /XYZ 159.4023 177.7335 null]
+>> endobj
+6782 0 obj <<
+/D [6722 0 R /XYZ 71.731 175.5767 null]
+>> endobj
+6783 0 obj <<
+/D [6722 0 R /XYZ 159.4023 159.8007 null]
+>> endobj
+6784 0 obj <<
+/D [6722 0 R /XYZ 76.7123 141.868 null]
+>> endobj
+6785 0 obj <<
+/D [6722 0 R /XYZ 149.4396 123.9352 null]
+>> endobj
+6786 0 obj <<
+/D [6722 0 R /XYZ 149.4396 123.9352 null]
+>> endobj
+6787 0 obj <<
+/D [6722 0 R /XYZ 71.731 121.7784 null]
+>> endobj
+6788 0 obj <<
+/D [6722 0 R /XYZ 71.731 121.7784 null]
+>> endobj
+6789 0 obj <<
+/D [6722 0 R /XYZ 159.4023 106.0025 null]
+>> endobj
+6790 0 obj <<
+/D [6722 0 R /XYZ 71.731 103.8457 null]
+>> endobj
+6721 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+6793 0 obj <<
+/Length 1344      
+/Filter /FlateDecode
+>>
+stream
+xÚµ\9a[OëF\14\85ßù\15~\ 4©Lç>ã¾\9d^N/j¥£*}*\15\0Ö           rL\8fø÷\9d\10\8fÙN¶gO\8f@\b\9c\84\85÷òÊú2v\88¨xü\12\95\13Ì©¸\915\93ÖÈjùpÆ«»ø«\9fÏÄ ¹\1c4\97PôýâìÛ\8f\8aW5«­´Õâ¶RµeÆéÊ)ɼ\11¾Z¬þ>ÿá¾yìCwq)\r?\97ì°ý´n6¡ÿ½¹9Üýðé×Ã\8d?B\7f¿]í.þYüvöÓb\9co\94\8fC²&\95÷ÌhU]JÎj)\f*\12ºf:\1a\8dÇÂ=SZ¹ñXd]9&öÇ\19\8f\8d²ýÁ\Ii\8eÍ       #Xm¸¬à\ eÓÜãí«\8fôW¨\8f×L\85\89>¸TS\1fM×5Ï\87ȶ·\87í®ïÚÍÝ7\87;\8b\veÎÛ~\1dN̪¸;ç*ëdÜz<È$º\84*$¢ã}Í&¤ã±zgÑ©ó      ¥¿:µ¡|åcBVO\9e©\89\8f§n½·q\9c¦gVñý\88½æ;\98Ü\90æPÔÙ\80O\8f-M7:¶Ïh¢uP\96iÝ(#[\87Í-h\1dæ\ 3iÝÄǤb¿l\1fÂáÖcs\17æcQ\96Y!\1d\15\v\90åbI2:\16dnI,\88\ f,\16è\83\82\91H*QÄ9sÚQD\ 2U\86Ȥ¢\89\96\10ylc\86Hèãßе·í²éÛíæúsxFðô5SB¾\a\9dÆÇ%Ih\8aN(ËÔp\94\915Äæ\16Ô\10ó\81ÔpâcÒ¹?Ã.ô©t»Ý\97\v±Oouxäóþ^¸\10æüy>0«\99÷\82â\16Êr\81%\19\1d\182·$0Ä\a\16\18ôAqûÕ\19\ e\14\9ax²Â\85%\88\86ªy¢G\15I46µ\80è\13\e\13\1faÓܬÃ
+\ 1Ysf¸\9f\82|³Ý®C³!INºÙf
+Á¸W$Ê@\96kf\92ÑÍDæ\964\13ñ\815\13ú\18"HëG³\e\92 a\88\ f$\8ff¤kÅ\84á\14½P\96Éh\94\91\19as\v2Â| \19M|Ì7çÿÇ6@¦\8d\e\ 2\9a\avT\91ÀbS\v\80\81\ 3;ññx¿Ý\ 4\ 4×\bµòµ\7f\8f\857þ`ÊH\8aV(Ë51Éè&"sK\9a\88øÀ\9a\b}\1c]y¹Ø³u8DýòÐæéá&^\0Ï&$\ 5Ó¢&Y\ 5²\BIF'\84Ì-I\bñ\81%\ 4\97«¥¡\rt)o\981\9a \15ªæI\1dU$©ØÔ\ 2ROlà¤N|<\86Ð]?\86n\17Ï\95[l\85u\9e    kÝ\14ÙvÓ\93¼î5sUTÖ1+\ 5\ 5+\94eª8ÊÈ*bs\vª\88ù@ª8ñ\11\ f\7f(ÝÇýÉÛ¶\víÝ°:<íÒÛTí*lúö\8as\99\1e\89\90¬â\rë=E2\94åâK2:>dnI|\88\ f,>è\ 3\9b'\9aÐ\14\8ay\19sÉc\ eT\19Ì\93\8aÆ\1c\99Z\82ù±\8d\19Ì¡\8f\97ë\8aý5\ 5r
+mâ\95\8a{\975YÖqß5§0\87²LOG\19ÙSlnAO1\1fHO'>&ËË\87årû´\99½\94k\87¶.»çÇþ\8a\e\1e¿Åá¡Ûm÷0\1f£sÑa|ê\89\18\81,\17c\92Ñ1"sKbD|`1B\1fÔÂýÆÉ\ e¨J-\19¯%\81=TÍc?ªH챩\ 5Ø\9fØÀ±\9føÈ-ìñù\926îøM\17v)u¼rªIâ\81,WÕ$£«\8aÌ-©*â\ 3«*ôñº\fý\85¯:³Ùpˤ´$Æ@\96Ë&Éèl\90¹%Ù >°l \8fìª]\18×À\93p\9c)+\b6¡j\9eÍQE²\89M-`óÄ\ 6ÎæÄǪéÃõ²\vq\83á\19Ï%5wâmñ\14F2-=\85'\94e*8ÊÈ
+bs\v*\88ù@*8ññÚ·\1fc²CJ\9ba\9dèÛô\1f\92/÷é½\9a\ 6.-/ËJz?\a<9x\9aJ3]\e
+h(Ë¥\99dt\9aÈÜ\924\11\1fX\9aÐG\16èw\vxÀ¶\1eþ\89\9a}\ 5\0¢ù\17\80$"ùGF\16à\7fì\ 1§\1f\9ax¹ìnKßÑþJì\87\ fShϼ°uöó\16@súq\v#\15ãÊÛqO{k\82ûÙOO \13ÿ\ 3ÏYgaendstream
+endobj
+6792 0 obj <<
+/Type /Page
+/Contents 6793 0 R
+/Resources 6791 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6550 0 R
+>> endobj
+6794 0 obj <<
+/D [6792 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+6795 0 obj <<
+/D [6792 0 R /XYZ 159.4023 708.3437 null]
+>> endobj
+6796 0 obj <<
+/D [6792 0 R /XYZ 76.7123 690.4109 null]
+>> endobj
+6797 0 obj <<
+/D [6792 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+6798 0 obj <<
+/D [6792 0 R /XYZ 149.4396 672.4782 null]
+>> endobj
+6799 0 obj <<
+/D [6792 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+6800 0 obj <<
+/D [6792 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+6801 0 obj <<
+/D [6792 0 R /XYZ 159.4023 654.5454 null]
+>> endobj
+6802 0 obj <<
+/D [6792 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+6803 0 obj <<
+/D [6792 0 R /XYZ 159.4023 636.6127 null]
+>> endobj
+6804 0 obj <<
+/D [6792 0 R /XYZ 76.7123 618.6799 null]
+>> endobj
+6805 0 obj <<
+/D [6792 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+6806 0 obj <<
+/D [6792 0 R /XYZ 149.4396 600.7472 null]
+>> endobj
+6807 0 obj <<
+/D [6792 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+6808 0 obj <<
+/D [6792 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+6809 0 obj <<
+/D [6792 0 R /XYZ 159.4023 582.8144 null]
+>> endobj
+6810 0 obj <<
+/D [6792 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+6811 0 obj <<
+/D [6792 0 R /XYZ 159.4023 564.8817 null]
+>> endobj
+6812 0 obj <<
+/D [6792 0 R /XYZ 76.7123 546.9489 null]
+>> endobj
+6813 0 obj <<
+/D [6792 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+6814 0 obj <<
+/D [6792 0 R /XYZ 149.4396 529.0162 null]
+>> endobj
+6815 0 obj <<
+/D [6792 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+6816 0 obj <<
+/D [6792 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+6817 0 obj <<
+/D [6792 0 R /XYZ 159.4023 511.0834 null]
+>> endobj
+6818 0 obj <<
+/D [6792 0 R /XYZ 71.731 509.6439 null]
+>> endobj
+6819 0 obj <<
+/D [6792 0 R /XYZ 159.4023 493.1507 null]
+>> endobj
+6820 0 obj <<
+/D [6792 0 R /XYZ 76.7123 475.2179 null]
+>> endobj
+6821 0 obj <<
+/D [6792 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+6822 0 obj <<
+/D [6792 0 R /XYZ 149.4396 457.2852 null]
+>> endobj
+6823 0 obj <<
+/D [6792 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+6824 0 obj <<
+/D [6792 0 R /XYZ 71.731 455.1283 null]
+>> endobj
+6825 0 obj <<
+/D [6792 0 R /XYZ 159.4023 439.3524 null]
+>> endobj
+6826 0 obj <<
+/D [6792 0 R /XYZ 71.731 437.1956 null]
+>> endobj
+6827 0 obj <<
+/D [6792 0 R /XYZ 159.4023 421.4197 null]
+>> endobj
+6828 0 obj <<
+/D [6792 0 R /XYZ 76.7123 403.4869 null]
+>> endobj
+6829 0 obj <<
+/D [6792 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+6830 0 obj <<
+/D [6792 0 R /XYZ 149.4396 385.5542 null]
+>> endobj
+6831 0 obj <<
+/D [6792 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+6832 0 obj <<
+/D [6792 0 R /XYZ 71.731 383.3973 null]
+>> endobj
+6833 0 obj <<
+/D [6792 0 R /XYZ 159.4023 367.6214 null]
+>> endobj
+6834 0 obj <<
+/D [6792 0 R /XYZ 71.731 365.4646 null]
+>> endobj
+6835 0 obj <<
+/D [6792 0 R /XYZ 159.4023 349.6887 null]
+>> endobj
+6836 0 obj <<
+/D [6792 0 R /XYZ 76.7123 331.7559 null]
+>> endobj
+6837 0 obj <<
+/D [6792 0 R /XYZ 149.4396 313.8231 null]
+>> endobj
+6838 0 obj <<
+/D [6792 0 R /XYZ 149.4396 313.8231 null]
+>> endobj
+6839 0 obj <<
+/D [6792 0 R /XYZ 71.731 311.6663 null]
+>> endobj
+6840 0 obj <<
+/D [6792 0 R /XYZ 71.731 311.6663 null]
+>> endobj
+6841 0 obj <<
+/D [6792 0 R /XYZ 159.4023 295.8904 null]
+>> endobj
+6842 0 obj <<
+/D [6792 0 R /XYZ 71.731 293.7336 null]
+>> endobj
+6843 0 obj <<
+/D [6792 0 R /XYZ 159.4023 277.9576 null]
+>> endobj
+6844 0 obj <<
+/D [6792 0 R /XYZ 76.7123 260.0249 null]
+>> endobj
+6845 0 obj <<
+/D [6792 0 R /XYZ 149.4396 242.0921 null]
+>> endobj
+6846 0 obj <<
+/D [6792 0 R /XYZ 149.4396 242.0921 null]
+>> endobj
+6847 0 obj <<
+/D [6792 0 R /XYZ 71.731 239.9353 null]
+>> endobj
+6848 0 obj <<
+/D [6792 0 R /XYZ 71.731 239.9353 null]
+>> endobj
+6849 0 obj <<
+/D [6792 0 R /XYZ 159.4023 224.1594 null]
+>> endobj
+6850 0 obj <<
+/D [6792 0 R /XYZ 71.731 222.7198 null]
+>> endobj
+6851 0 obj <<
+/D [6792 0 R /XYZ 159.4023 206.2266 null]
+>> endobj
+6852 0 obj <<
+/D [6792 0 R /XYZ 76.7123 188.2939 null]
+>> endobj
+6853 0 obj <<
+/D [6792 0 R /XYZ 149.4396 170.3611 null]
+>> endobj
+6854 0 obj <<
+/D [6792 0 R /XYZ 149.4396 170.3611 null]
+>> endobj
+6855 0 obj <<
+/D [6792 0 R /XYZ 71.731 168.2043 null]
+>> endobj
+6856 0 obj <<
+/D [6792 0 R /XYZ 71.731 168.2043 null]
+>> endobj
+6857 0 obj <<
+/D [6792 0 R /XYZ 159.4023 152.4284 null]
+>> endobj
+6858 0 obj <<
+/D [6792 0 R /XYZ 71.731 150.9888 null]
+>> endobj
+6859 0 obj <<
+/D [6792 0 R /XYZ 159.4023 134.4956 null]
+>> endobj
+6860 0 obj <<
+/D [6792 0 R /XYZ 76.7123 116.5629 null]
+>> endobj
+6861 0 obj <<
+/D [6792 0 R /XYZ 149.4396 98.6301 null]
+>> endobj
+6862 0 obj <<
+/D [6792 0 R /XYZ 149.4396 98.6301 null]
+>> endobj
+6863 0 obj <<
+/D [6792 0 R /XYZ 71.731 96.4733 null]
+>> endobj
+6864 0 obj <<
+/D [6792 0 R /XYZ 71.731 96.4733 null]
+>> endobj
+6791 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+6867 0 obj <<
+/Length 1197      
+/Filter /FlateDecode
+>>
+stream
+xÚ½\98Moã6\10\86ïù\15:Ú@Í\92\94ø¡ÜÒf[lÑ\16ÆÖ=5E HL¬Ö\96\f\89Þmþ}G\16\16õÑ\ 2-r\90b¿â¼|f8"M\ 2\f\7f$\10\ 4\89\10.4F\943\1a¤Ç;\1c¼ÁWßß\11\18ÍÆ\15}³»ûú»\10\a1\8a9åÁî5\bc\8e\98\88\ 2\11R$\19\91Á.ûmõí>9iU­7\94á\15Eíu{H
\7fL^Ú\7f\1f\1fÛ\9b\9f\94Þ\97Y½þ}÷ÃÝ\87]\17\9f\85\ 2Å\12\82L\9a\f¥D,
+\83\rÅ(¦\84yE$\8aQ\ 4Fa.X¢0
+E7\17\1a\a\ 2\91f\9e0\97N×É\9aÉ<QÊnÍ\11FPÌ0\rÜ\ 1mÜÛkïÃ>åõÑ3%\f|`\1a^ûÈ\vý\95!©,[]¶×/û<Ý\9b\8föyÝÞ\9dk+{Q\87²x\e îæËc\8c"\82ã\19z®l\82^'\9b¥ç\8b»\80\9eÏ\87\87Þ\95\8f¤ª\92÷\96FùÚ^ÿ\ 3 !\84\16"à,\82ªd\91\9f§\11m\\95\açíX£4#à"\ 5÷F\1d§i\9f\1aÚ\b\81&\8f®³êúø¬ªü5O\13\9d\97ųúë\94\ 2ã6\15\ 4#,E\13´yê¾ãn\12ahús3^­!G\9cP1W­\8elªZ­l¾Z=q\97T«Ç\87¯Z]\1f}i>&Z\19JEf
+2?*[¥ªhï>¯     [AR\9e0¦&-\7f®      ^©æsÃörßçÊÏ\96HÄE<Û       \1cÙ\14[+\9b\89»\84­Ç\87\8f­ëc²\13üO¸ÍÚf\12^\9a$\9aé\13®j¼OtªÙ>á\8bº O\fløûÄ\95\ fuLò\83§1À+=\94±¼î\vµ®òâm¶5\18ÙX\ 53\1e!)É\wpe\13\15ÜÉf+Ø\17wA\ 5û|x*øÊGKÀ¾»ªü\98T¶æ6\17à-º,\83Ò\e_ê,â(\8eäÜRweS ¬l\1e\94\12P\1e\1f>P®\8fÑêù·ìH\8c\18\83,D\82!JÄ\b;«Ú¸²\9e],pËn0Ú(;Ja\1fH¨7î8;ûÔÐÇõÒ\85ÕÈ\bl¢¯|Ôç\97?Tª=\8b\bÒ\1eù\16¯áúÁAé\8cãGÉ\ 4¢rd{ï tdS(­l\1e¥'î\12\94·>FPº>^ÊìÝ×\ 4#$XD\16\83À\99\a\9e#\1c\984G.ÁÛ\9eðIésUÔ÷ã\9cq\b\8d\9cÍaîUS\94\8dj\1eò0è\12ÆC\13ÎJï\10;&ú\1781ot»ÜÏi
+\vùõlßB`\ e2CØ%]\eÈ\92\90!\1c\1f\19F4dü2\18\85\8eÓ\9cY\85\ 4ª/e©\7f.3å[\a\ 2I\8aoò°­J]ê÷\93ºï\9eèËÃ<»¡\ 4¶z¦G9!.\8e\9f0ÃÉYïÍ|
+øâ9Ï\9eËêy_ÖºH\8e
+\14ÄcgcGwí<ª:­òS³C\992\ 4{OÆikè\17Udµ=ú\18SõI¥\97Í\8eÊz[¦U:\8aäp0Íôµ¬\8e\89ÖVþë㶽9%i»QÒ\83sV½/Ï\a£O\138k\99Lêë\93Yuáe¾;\1eU\96Ã\96\rÂr¶B\97õ\81a:\ 41IÚl>dǼ¨í°Åp\10ø¬ß´5ó2¿WìÖ\ 2|¦ûúf?¸ýx;ZYØi»ã6CÙguÇ37\e\9b:תóK`ë\1f
+î.do5wù\18`lþIêÛ\9a·¶je\8f\Mu9Ì{ç°·\85Ñ«\7f\14Gu«®(õÔ0\ 6\8b\9d-T?ãáe¶#Æ\9b\12GKküáp(×\94­¾ØjûT\1eT½tý%M}\98i\9crs£!ï·MÍü\1e\16IØÞòxò'3G3üÅ\8cÑ\10áPòn¤Æ\ 5Áñè\ f`\9e\88\7f\ 3\9d²\895endstream
+endobj
+6866 0 obj <<
+/Type /Page
+/Contents 6867 0 R
+/Resources 6865 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6550 0 R
+>> endobj
+6868 0 obj <<
+/D [6866 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+6869 0 obj <<
+/D [6866 0 R /XYZ 159.4023 708.3437 null]
+>> endobj
+6870 0 obj <<
+/D [6866 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+6871 0 obj <<
+/D [6866 0 R /XYZ 159.4023 690.4109 null]
+>> endobj
+6872 0 obj <<
+/D [6866 0 R /XYZ 76.7123 672.4782 null]
+>> endobj
+6873 0 obj <<
+/D [6866 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+6874 0 obj <<
+/D [6866 0 R /XYZ 149.4396 654.5454 null]
+>> endobj
+6875 0 obj <<
+/D [6866 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+6876 0 obj <<
+/D [6866 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+6877 0 obj <<
+/D [6866 0 R /XYZ 159.4023 636.6127 null]
+>> endobj
+6878 0 obj <<
+/D [6866 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+6879 0 obj <<
+/D [6866 0 R /XYZ 159.4023 618.6799 null]
+>> endobj
+6880 0 obj <<
+/D [6866 0 R /XYZ 76.7123 600.7472 null]
+>> endobj
+6881 0 obj <<
+/D [6866 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+6882 0 obj <<
+/D [6866 0 R /XYZ 149.4396 582.8144 null]
+>> endobj
+6883 0 obj <<
+/D [6866 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+6884 0 obj <<
+/D [6866 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+6885 0 obj <<
+/D [6866 0 R /XYZ 159.4023 564.8817 null]
+>> endobj
+6886 0 obj <<
+/D [6866 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+6887 0 obj <<
+/D [6866 0 R /XYZ 159.4023 546.9489 null]
+>> endobj
+6888 0 obj <<
+/D [6866 0 R /XYZ 76.7123 493.1507 null]
+>> endobj
+6889 0 obj <<
+/D [6866 0 R /XYZ 129.5143 475.2179 null]
+>> endobj
+6890 0 obj <<
+/D [6866 0 R /XYZ 129.5143 475.2179 null]
+>> endobj
+6891 0 obj <<
+/D [6866 0 R /XYZ 71.731 473.0611 null]
+>> endobj
+6892 0 obj <<
+/D [6866 0 R /XYZ 129.5143 457.2852 null]
+>> endobj
+6893 0 obj <<
+/D [6866 0 R /XYZ 129.5143 457.2852 null]
+>> endobj
+6894 0 obj <<
+/D [6866 0 R /XYZ 71.731 435.2031 null]
+>> endobj
+6895 0 obj <<
+/D [6866 0 R /XYZ 71.731 424.3089 null]
+>> endobj
+6896 0 obj <<
+/D [6866 0 R /XYZ 71.731 423.0636 null]
+>> endobj
+6897 0 obj <<
+/D [6866 0 R /XYZ 129.5143 403.985 null]
+>> endobj
+889 0 obj <<
+/D [6866 0 R /XYZ 71.731 397.5642 null]
+>> endobj
+410 0 obj <<
+/D [6866 0 R /XYZ 217.1313 353.7494 null]
+>> endobj
+6898 0 obj <<
+/D [6866 0 R /XYZ 71.731 333.609 null]
+>> endobj
+6899 0 obj <<
+/D [6866 0 R /XYZ 161.0655 320.8727 null]
+>> endobj
+6900 0 obj <<
+/D [6866 0 R /XYZ 71.731 308.7532 null]
+>> endobj
+6901 0 obj <<
+/D [6866 0 R /XYZ 71.731 277.7236 null]
+>> endobj
+6902 0 obj <<
+/D [6866 0 R /XYZ 168.8063 266.3771 null]
+>> endobj
+6903 0 obj <<
+/D [6866 0 R /XYZ 71.731 239.3136 null]
+>> endobj
+6904 0 obj <<
+/D [6866 0 R /XYZ 71.731 207.9478 null]
+>> endobj
+6905 0 obj <<
+/D [6866 0 R /XYZ 71.731 191.3101 null]
+>> endobj
+6906 0 obj <<
+/D [6866 0 R /XYZ 71.731 148.4085 null]
+>> endobj
+6907 0 obj <<
+/D [6866 0 R /XYZ 181.5683 137.062 null]
+>> endobj
+6908 0 obj <<
+/D [6866 0 R /XYZ 71.731 126.9998 null]
+>> endobj
+6865 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+6911 0 obj <<
+/Length 1046      
+/Filter /FlateDecode
+>>
+stream
+xÚÍX]\8f\9b8\14}\9f_Ác"5^\7f`\e¦OÓ\8fYuµ»\1aUyëT#J\9c\ 6\89@\16\13Uý÷{\1d\f\98à\0ªTµ\9a\a\98pÌ9\1cν¾\82\ 4\18þH   \92\f\ e4FTp\1a¤Ç;\1c|\85K\7fÞ\11\vÙXÌÆ\ 5½ÙÞýñÈp\10£XP\11\ 1\8b\ 5â2\f$£(â$
+¶»O«·\87äT«j½¡\1c¯(j\8eOyR¨úïäKóïÃÓ\87æä\1fU\1fÊ\9d^\7fÞþu÷~Ûñs&Q\1c\ 1ɤÈ\ e5\96IcG&!1â\9cÈ@â\b±\90É\8bΧ5᫤J\8e
+Ôêûk   Ý"\11\ 1\vÅÌ+¡Cm\X+\ 1~\91\98\f$t0#á\99R>â¥\144\12êå½>ö:ÚUc\1d,
+"°B\84\17\1d`\14'!\eêHÎõÁè¸ò\8d\86\b\e\ 6\ 3¹oÞ\97®«sZ¿ºz\8bf½*ê,Mê¬,\ä¹Rã\al%\b \8a\eÛ¢6.¬7\96\98x\ e\1e¨\85Ý4\16B\8ai\18{yo\eÛ®\1aë\18\1aËb\14J9\94ñ\0¾4   ÷¸Ë\ 5\12!\14ϵ¿Yñµõ×cë±¹Ýå¼.\9bãY«Ûée!\82\85·GMe×¢æ£;&]\92Ü+\117\82ë\88\9dzÉv/eõr(u]@-{\8c&8D\12K6t:+ê椬\ëo§\95\b\98Í¥Õ\81M¥µ\85ͧÕû$­\1e\1d\8e%mZ]\19à\88\rÞ¿à«uig\ 2ø\8c1\85\8e\1a\1eG\88r1WÈ.lÂ\9a\ e6k\8d\8fw\815>\1dck\ 62\ 6eùxÎóïÍé\7fç$oܱ%éÆ\108á¶\94\9bGÇ(Âqx¹×G\ 5\98Øp8\95 \94\89\99\9aua\13EÛÁf«ÖÇ» l}:\1c;»×êêè£FlÎö¶\bÏiª´Þ\9fs[È O"Jø¥      l¸D2b\8d¡\94ñæf\14ÈÌ\98!#ðv_)}xZ3¼RMb¯ô\84\12E\14\83}fd\91Â\8e\ 2UY\97õ÷\93ºïVô\9dÇ®ÝP\82\ 4Ô\8a}\87\r\8f\9cg̱Ù\ 5íS\9dà\82mLæÔ$\ 2\10Ä£gÓÞÞÕóNé´ÊN¦ë/Uô¨êô tC_tõ\9b\146\98:ÏRûÛ.©\93æl_\95\95\1cìE}Ré Ñ§î\19»{¥IO\95Ù.\9a\97i\ 2eñÚBsm÷¦\9dÊa¾Òm\8bMrË\ 3m¥ÊÔ\9a¬´\9d\10mY\§ÂÔ\116±G\82\8b¦Oõ\19±nï×ÄÌ ymW\97ð4Õ·L+´Ôð\87</×\94¯¾µOý±Ì\95^ê}²;fÅRª¥c'\rͬ\1aÊ\99.àÂ&º@\a\9bí\ 2\ 5]`¤Ã¿{\ f\9a±\932\8cB0ff·ra\13»U\a\9bÝ­|¼\v\91\ eïØ9\90ñ\e\8c\9d$\ e\11\ fAãtz]ØDz;Ølz}¼\vÒ;ÒáOï@\87§Çÿ´á\93Hxk\84É\99̺°\89Ìv°ÙÌúx\17dÖ§c<a\r\13A¿©.\1a>   \8f\90\80ájÎ\1a\a6eM\v\9b·ÆûÄ\1a\8f\ e\8f\8cAqöîüà\98i¿ì@\1f\8e\88\88'?þ8\98ñ·\1fN\19Â,\12Ý\9d\f)!øæ§\1c\ fãÿÝ\104Rendstream
+endobj
+6910 0 obj <<
+/Type /Page
+/Contents 6911 0 R
+/Resources 6909 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6963 0 R
+>> endobj
+6912 0 obj <<
+/D [6910 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+891 0 obj <<
+/D [6910 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+6913 0 obj <<
+/D [6910 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+6914 0 obj <<
+/D [6910 0 R /XYZ 71.731 708.2442 null]
+>> endobj
+6915 0 obj <<
+/D [6910 0 R /XYZ 71.731 706.9988 null]
+>> endobj
+6916 0 obj <<
+/D [6910 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+6917 0 obj <<
+/D [6910 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+6918 0 obj <<
+/D [6910 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+6919 0 obj <<
+/D [6910 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+6920 0 obj <<
+/D [6910 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+6921 0 obj <<
+/D [6910 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+6922 0 obj <<
+/D [6910 0 R /XYZ 76.7123 652.0548 null]
+>> endobj
+6923 0 obj <<
+/D [6910 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+6924 0 obj <<
+/D [6910 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+6925 0 obj <<
+/D [6910 0 R /XYZ 71.731 631.9652 null]
+>> endobj
+6926 0 obj <<
+/D [6910 0 R /XYZ 71.731 631.9652 null]
+>> endobj
+6927 0 obj <<
+/D [6910 0 R /XYZ 139.477 616.1893 null]
+>> endobj
+6928 0 obj <<
+/D [6910 0 R /XYZ 71.731 614.7497 null]
+>> endobj
+6929 0 obj <<
+/D [6910 0 R /XYZ 139.477 598.2565 null]
+>> endobj
+6930 0 obj <<
+/D [6910 0 R /XYZ 71.731 560.3985 null]
+>> endobj
+6931 0 obj <<
+/D [6910 0 R /XYZ 71.731 547.3475 null]
+>> endobj
+6932 0 obj <<
+/D [6910 0 R /XYZ 71.731 546.1022 null]
+>> endobj
+6933 0 obj <<
+/D [6910 0 R /XYZ 129.5143 527.0236 null]
+>> endobj
+890 0 obj <<
+/D [6910 0 R /XYZ 71.731 520.6028 null]
+>> endobj
+414 0 obj <<
+/D [6910 0 R /XYZ 215.7019 476.788 null]
+>> endobj
+6934 0 obj <<
+/D [6910 0 R /XYZ 71.731 456.6476 null]
+>> endobj
+6935 0 obj <<
+/D [6910 0 R /XYZ 161.0655 443.9113 null]
+>> endobj
+6936 0 obj <<
+/D [6910 0 R /XYZ 71.731 431.7918 null]
+>> endobj
+6937 0 obj <<
+/D [6910 0 R /XYZ 71.731 400.426 null]
+>> endobj
+6938 0 obj <<
+/D [6910 0 R /XYZ 168.8063 389.4157 null]
+>> endobj
+6939 0 obj <<
+/D [6910 0 R /XYZ 71.731 377.2962 null]
+>> endobj
+6940 0 obj <<
+/D [6910 0 R /XYZ 71.731 334.9196 null]
+>> endobj
+6941 0 obj <<
+/D [6910 0 R /XYZ 181.5683 323.2637 null]
+>> endobj
+6942 0 obj <<
+/D [6910 0 R /XYZ 71.731 313.2016 null]
+>> endobj
+6943 0 obj <<
+/D [6910 0 R /XYZ 71.731 281.63 null]
+>> endobj
+6944 0 obj <<
+/D [6910 0 R /XYZ 71.731 268.6686 null]
+>> endobj
+6945 0 obj <<
+/D [6910 0 R /XYZ 71.731 267.4232 null]
+>> endobj
+6946 0 obj <<
+/D [6910 0 R /XYZ 129.5143 248.3447 null]
+>> endobj
+6947 0 obj <<
+/D [6910 0 R /XYZ 129.5143 248.3447 null]
+>> endobj
+6948 0 obj <<
+/D [6910 0 R /XYZ 71.731 246.9051 null]
+>> endobj
+6949 0 obj <<
+/D [6910 0 R /XYZ 71.731 246.9051 null]
+>> endobj
+6950 0 obj <<
+/D [6910 0 R /XYZ 139.477 230.4119 null]
+>> endobj
+6951 0 obj <<
+/D [6910 0 R /XYZ 139.477 230.4119 null]
+>> endobj
+6952 0 obj <<
+/D [6910 0 R /XYZ 76.7123 212.4792 null]
+>> endobj
+6953 0 obj <<
+/D [6910 0 R /XYZ 129.5143 194.5464 null]
+>> endobj
+6954 0 obj <<
+/D [6910 0 R /XYZ 129.5143 194.5464 null]
+>> endobj
+6955 0 obj <<
+/D [6910 0 R /XYZ 71.731 192.3896 null]
+>> endobj
+6956 0 obj <<
+/D [6910 0 R /XYZ 71.731 192.3896 null]
+>> endobj
+6957 0 obj <<
+/D [6910 0 R /XYZ 139.477 176.6137 null]
+>> endobj
+6958 0 obj <<
+/D [6910 0 R /XYZ 71.731 175.1741 null]
+>> endobj
+6959 0 obj <<
+/D [6910 0 R /XYZ 139.477 158.6809 null]
+>> endobj
+6960 0 obj <<
+/D [6910 0 R /XYZ 71.731 120.8229 null]
+>> endobj
+6961 0 obj <<
+/D [6910 0 R /XYZ 71.731 107.7719 null]
+>> endobj
+6962 0 obj <<
+/D [6910 0 R /XYZ 71.731 106.5266 null]
+>> endobj
+6909 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+6966 0 obj <<
+/Length 1264      
+/Filter /FlateDecode
+>>
+stream
+xÚ\9d\8eÛ6\10}߯Ð[m fx\11uÉÛ¶i\8b\14\b\9c§n±ÐÊôZ\88,\19\92¼®ÿ¾C\91\94)\99º¤\b\10q­CÎ\9933äPÄÃð\8fx!A!\83\a\8d\11\r8õÒã\ 3öÞàÕï\ fDC6\1a³±A?o\1f>þÆ°\17£8 \81·Ý{,\ e\10\ f}/d\14E\9cDÞv÷÷ê\97CrjDµÞP\8eW\14©çS\9e\14¢ù3yU\7f>>}Q\83¿Ds(wõú\9fí\1f\ f¿n;û\9c\85(\8eÀÈ$I\9fDÈg8ö6\14£\98\12îD\11\12#ÎI\bÎà\b1\9f\85\9d34öÀN\88\89t¦Ãu0éÍ3¥|È\8eP
+\0B={Acwø¼ñ0³\9c<n¢\12p\99\13\9fõydEóAIFÔ#Û«g}NSQ×ûs.iÂZÀ/D \86/\17Ûð\10\85\11c0À\882\1e´\8bQpZ\ 6&\8cV_E-\9a§5뤮×\84¯.k\8aWe%ÿßé\15mv~\88"\8aAL\19ò0Pä\9eª²)\9bëI|êfD0#h)è¹\eJP@¢¸\9d ­\829°zY\13iq§üyÆ\1c'çæ ½=\89ª.\8b\97l÷RV/â\98d¹~ñ.g\8b*{Æ\98¦I\93\ 1è»\HÈ߯ë\80¯Æ\81-æßSV\89\1aÌ\11\87\9b\eÃÚvó³¨Ó*;É%¦\1ceP\14\ 1U\8e~Ù/b«"Z«gQ6:´'\91¶3ÄNûÒ\1cD¡F\89Æ\8a5\951[lä\92å¹\1a½
+õ|\13\85¨\92Fhý\93B\ fꦬÌ\8f\97¬9t\fÔà\\8bê§5競x!Å¡ÐPÀ\ 3Öú\9d¤iy.\1a]ý[3i\ 1\1d±\91A6\86\9bÒaVËU\f^íËê¨Få¾'R\9e\15ßûËé\17\17¡÷£Sò&\90ñ\83\11Ä#¢*¥cÞ\83j\81\ eå9ßõ¥ß_\a¤î<~ÕÏ4É\81×\9b\81\9bàïÏE*#§y¾­¡D\8c§·ÐÈÄØ_»éóµ \ 3aÒÑIÏ\11ÆcÒ¤\a¡©]\ e\89NÌCR\9b \99|´³å.2V®(GTv|\18
+|-\8fFñá\1eñÿ²\86K\19\8c\93\ 1
+X\18èͨ9WEíÜ]\17\95\94ü!\99/Þ²rà-Ø È&#Þ¥,I\9e\99eöíôsÞè÷%xY]²Z%ð\92}ì1ÏËVkcók\99\8bzéÞ\9dì\8e\10à\85¦Ô\1e_%G\ 1-\812Ñ;IÍ\99˸\8f"\9f³\99\13Ü\86M\9cà\1d\ 4wÙ]p\82ßñ`\91¥Zw\82÷xÈCÍ!\eõ\11\96\16\93©¥ê\9c\9aêèZ%9_\14M¦ÒÐF\9e+qï ¡\0§QLÀ\94SX\83ÚØ°\9b°Dö\80=\87\flTX\b>¦~ì´;.¬\99uÏ£/,\8b\91\1f\86}\1a\8f \8bj#\1dêr¨s\1f:Ô¡¾°u\1a}\1d²\1eÕr½½\ 4\90ñìÅ\ 4a?$sÙkÁ¦²×Àæ³×awIö\ ey\8cd¯Íã¾\ f\1dÇ\88Ñ¡Úйö÷?%ÿhÆÒ\88!"\aÓ\19kÃ&2¶\83Íf¬Ëî\82\8cuñ°\9ay\9d±=\1a·^þÛ­\9bÙÉ$l\ f\82j\\9a\80#"[\93\19i,Ø\944\ 66/\8dÃî\12i\1c<\1cÒØ4z¥ùTeǤºÚ'¼Þ
+w;hÝëÑz¤à"#Á\=Ú°\89zì`³õè²» \1eïx¸ë±Çã]6\9b\99iIÄÕQ\8d\91\84Ó\89­¯½\85\8dõX\83ÎЭ3ô\8aLÞ.gt¶`S:\eؼÎ\ e»Kt\1eò\18ÑÙæÑÓY¨;£CkB0ÂQHî¶>-õg¸`\rú»&;\9a»Ew«[ÒnZ\97׶\9b\ 5\aÁ¶\1f\ fî享\1d\b\8f\802£3Á³a\13Áë`³ÁsÙ]\10<\17\ fÇG\93\1e\8fÑ\8f&?r\1dïúï¡Gú\e\99\1f!ؽâÉÏh\16æþ+\1a§\fa\16\ 5ÝJ\92:!dô£\98Ãâ\7f Ã¦~endstream
+endobj
+6965 0 obj <<
+/Type /Page
+/Contents 6966 0 R
+/Resources 6964 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6963 0 R
+>> endobj
+6967 0 obj <<
+/D [6965 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+6968 0 obj <<
+/D [6965 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+6969 0 obj <<
+/D [6965 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+418 0 obj <<
+/D [6965 0 R /XYZ 241.5425 658.1081 null]
+>> endobj
+6970 0 obj <<
+/D [6965 0 R /XYZ 71.731 637.9677 null]
+>> endobj
+6971 0 obj <<
+/D [6965 0 R /XYZ 161.0655 625.2314 null]
+>> endobj
+6972 0 obj <<
+/D [6965 0 R /XYZ 71.731 613.1119 null]
+>> endobj
+6973 0 obj <<
+/D [6965 0 R /XYZ 71.731 581.746 null]
+>> endobj
+6974 0 obj <<
+/D [6965 0 R /XYZ 168.8063 570.7357 null]
+>> endobj
+6975 0 obj <<
+/D [6965 0 R /XYZ 71.731 543.6723 null]
+>> endobj
+6976 0 obj <<
+/D [6965 0 R /XYZ 71.731 500.6501 null]
+>> endobj
+6977 0 obj <<
+/D [6965 0 R /XYZ 71.731 472.3562 null]
+>> endobj
+6978 0 obj <<
+/D [6965 0 R /XYZ 71.731 440.7747 null]
+>> endobj
+6979 0 obj <<
+/D [6965 0 R /XYZ 181.5683 429.7644 null]
+>> endobj
+6980 0 obj <<
+/D [6965 0 R /XYZ 71.731 419.7022 null]
+>> endobj
+6981 0 obj <<
+/D [6965 0 R /XYZ 71.731 388.1306 null]
+>> endobj
+6982 0 obj <<
+/D [6965 0 R /XYZ 71.731 375.1692 null]
+>> endobj
+6983 0 obj <<
+/D [6965 0 R /XYZ 71.731 373.9239 null]
+>> endobj
+6984 0 obj <<
+/D [6965 0 R /XYZ 129.5143 354.8453 null]
+>> endobj
+6985 0 obj <<
+/D [6965 0 R /XYZ 129.5143 354.8453 null]
+>> endobj
+6986 0 obj <<
+/D [6965 0 R /XYZ 71.731 353.4058 null]
+>> endobj
+6987 0 obj <<
+/D [6965 0 R /XYZ 71.731 353.4058 null]
+>> endobj
+6988 0 obj <<
+/D [6965 0 R /XYZ 139.477 336.9126 null]
+>> endobj
+6989 0 obj <<
+/D [6965 0 R /XYZ 139.477 336.9126 null]
+>> endobj
+6990 0 obj <<
+/D [6965 0 R /XYZ 76.7123 318.9798 null]
+>> endobj
+6991 0 obj <<
+/D [6965 0 R /XYZ 129.5143 301.0471 null]
+>> endobj
+6992 0 obj <<
+/D [6965 0 R /XYZ 129.5143 301.0471 null]
+>> endobj
+6993 0 obj <<
+/D [6965 0 R /XYZ 71.731 298.8902 null]
+>> endobj
+6994 0 obj <<
+/D [6965 0 R /XYZ 71.731 298.8902 null]
+>> endobj
+6995 0 obj <<
+/D [6965 0 R /XYZ 139.477 283.1143 null]
+>> endobj
+6996 0 obj <<
+/D [6965 0 R /XYZ 71.731 281.6748 null]
+>> endobj
+6997 0 obj <<
+/D [6965 0 R /XYZ 139.477 265.1816 null]
+>> endobj
+6998 0 obj <<
+/D [6965 0 R /XYZ 76.7123 247.2488 null]
+>> endobj
+6999 0 obj <<
+/D [6965 0 R /XYZ 129.5143 229.3161 null]
+>> endobj
+7000 0 obj <<
+/D [6965 0 R /XYZ 129.5143 229.3161 null]
+>> endobj
+7001 0 obj <<
+/D [6965 0 R /XYZ 71.731 227.1592 null]
+>> endobj
+7002 0 obj <<
+/D [6965 0 R /XYZ 129.5143 211.3833 null]
+>> endobj
+7003 0 obj <<
+/D [6965 0 R /XYZ 129.5143 211.3833 null]
+>> endobj
+7004 0 obj <<
+/D [6965 0 R /XYZ 71.731 189.3012 null]
+>> endobj
+7005 0 obj <<
+/D [6965 0 R /XYZ 71.731 178.4071 null]
+>> endobj
+7006 0 obj <<
+/D [6965 0 R /XYZ 71.731 177.1617 null]
+>> endobj
+7007 0 obj <<
+/D [6965 0 R /XYZ 129.5143 158.0832 null]
+>> endobj
+892 0 obj <<
+/D [6965 0 R /XYZ 71.731 150.945 null]
+>> endobj
+6964 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F21 514 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7010 0 obj <<
+/Length 1092      
+/Filter /FlateDecode
+>>
+stream
+xÚµX[\8f£6\18}\9f_Á[\13iq}Á\18ï[v·­Zu¥h7ûÔ©FLðLÐr\89\80´\9d\7f_\eÛÄ\ 4\a\90ª*\ f!Éùü\1d\1fÎ1vP\0å\v\ 5\f\ 1\eæ\0Ç\14\aÇò\ 1\ 6¯ò§_\1e\90\81\84\ 6\13º \ f\87\87\1f\7f&0à\80Ç8\ e\ e/\ 1á1 ,
+\18Á ¡(  \ eÙ\1f\9b\8f§ôÜ\89f\eb
+7\18è÷}\91V¢û=}Ö\1fwû_õÅgÑ\9dê¬Ýþyøíá§ÃÐ\9f\12\ 6x"\9bÌ\92\1cPS\9a\18\ 5\88\ 1\8ch¤xÚ\19C
+XÄXO\13ËRE\8e%\9b¯¢Ûo        ÜHÒ\88nÚºÚ7y\99Ê\19 ¸yû\9awBÑ\93crgê\11\ 3    \86,\bÕÔY¬ÇÜ7uWwogñ~¨HdEÜ\930µ!F F   ï\vTgÑ\f\1du³^\98GHazéNïôÇs\8fzʳ§ºy\12e\9a\17æ\87VV\98¯\8bú5¯\9e\9eÓVÈbäá\1cZ
+.çO¢=6ù¹Ëëj\8e5\91w:Æ\9aõçôûVJ#ZM¡;\19ÎíY\1cóG\b±È®än0z"?l©\14Ú|£§~­0\969\8cKôuyi;}\95\16\8dH3Söl ©A\89òÙ:°~¹eÙ·\903\95&
+Q\fbÂâ~Z»¬Ì+CªLÍÈ\97s\96ÚI¤\95òÇ[]Y\8a»¢0MäèÍmi]\15\9eA$²lEñ\97\1aJ´`ím\92­ê-¦\9b¿­¶_êB´k}\96ª©Y+åæâÒJ\8d"¸1\1f;q<­e³WìÓ&-\85LºfáÆ\17!\ e(E,\88(\ 3\84\8dï\80
+]\98\8e/\ f\19D\8aÁt4Eá\11c:é\8b\11ÂÞ¾·ïW\1e¶jÊ\83$\8e°H.2\14EdÌC\85Ô#\e\8e\0T\1d\14ä½1^×\\8eÝ»\9b\15\8bªË\8f©\8a \8b¼4b:AK\81p\10E1ñ\vkQ¡\v»
+\8bÔb8\9a\90\85Ý\15VÞ|\88#îí{_X[5å1\16Vý*\97å\11\8d\9dÔE?\1d<êR\19ÛH>xnõÍ«W«¯GÖR\ f§Ý^\ f!¸ï^H\0M`²ä^\a6ç^\v[v¯§ï\1a÷Þò¸ã^\97Çô¹âQ\9bs@ð­Úye\16âºqå¿ëX\92PyÏ\12´àX\176ãØ\ 1¶èX_ß\15\8eõñ¸*b\1d;¢!\151æûÖÚ§O\9e)\13öÏÄæ¾41\ 3\fÑ¥0»°9i,lY\1aOß5Òxxx¤qi\8c¢¹w\1fø"ìM§\97Â,kDÛÞÍ#!\b$\11_Ê£\v\9bÉã\0[Ì£¯ï\8a<Nxøó8âáÝÎy"\89\10\ 5Q\1cóÿ\98ID\0Gl1\93\ elÎx\16¶l<Oß5Æóðð\18Ï¥qÍäuk½*\93\98Sy@\88\962éÂf¤\19`\8bÒøú®\90ÆÇc*Í\88Æ(\93WuÚ"?Ú\8dw#\94Jÿô\9båPæ\86c\99ç\90B\90@\1eõ\83|\11r\9bRÍì\0±Ü\b1\8aèBf]ØLf\aØbf}}WdÖÇÃÑq¸\9f.\8f«Ç\901\989r´\97ãQ®g/\17ûP\1d\1dJC¹\8bd     Ñ\82bB\87c)7ÇÒoý©a\97©³Ö°0þ/ÇPÛIwñ\9d?ÍÒ,\97¦\9b\18\15Yk\8f\9cîÍ0Çî(\ 1     \92KÕÜÿ\f\ efú7\ 3Å\ 4@\92ÄÃH\8a3Bøî¿\ 6\9e\8eÿ\ 2Nèéiendstream
+endobj
+7009 0 obj <<
+/Type /Page
+/Contents 7010 0 R
+/Resources 7008 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6963 0 R
+>> endobj
+7011 0 obj <<
+/D [7009 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+422 0 obj <<
+/D [7009 0 R /XYZ 295.0295 705.7477 null]
+>> endobj
+7012 0 obj <<
+/D [7009 0 R /XYZ 71.731 682.2589 null]
+>> endobj
+7013 0 obj <<
+/D [7009 0 R /XYZ 161.0655 672.871 null]
+>> endobj
+7014 0 obj <<
+/D [7009 0 R /XYZ 71.731 660.7515 null]
+>> endobj
+7015 0 obj <<
+/D [7009 0 R /XYZ 71.731 574.89 null]
+>> endobj
+7016 0 obj <<
+/D [7009 0 R /XYZ 71.731 543.3084 null]
+>> endobj
+7017 0 obj <<
+/D [7009 0 R /XYZ 181.5683 532.2981 null]
+>> endobj
+7018 0 obj <<
+/D [7009 0 R /XYZ 71.731 522.236 null]
+>> endobj
+7019 0 obj <<
+/D [7009 0 R /XYZ 71.731 488.8128 null]
+>> endobj
+7020 0 obj <<
+/D [7009 0 R /XYZ 71.731 477.703 null]
+>> endobj
+7021 0 obj <<
+/D [7009 0 R /XYZ 71.731 476.4576 null]
+>> endobj
+7022 0 obj <<
+/D [7009 0 R /XYZ 129.5143 457.3791 null]
+>> endobj
+7023 0 obj <<
+/D [7009 0 R /XYZ 129.5143 457.3791 null]
+>> endobj
+7024 0 obj <<
+/D [7009 0 R /XYZ 71.731 455.9395 null]
+>> endobj
+7025 0 obj <<
+/D [7009 0 R /XYZ 71.731 455.9395 null]
+>> endobj
+7026 0 obj <<
+/D [7009 0 R /XYZ 139.477 439.4463 null]
+>> endobj
+7027 0 obj <<
+/D [7009 0 R /XYZ 139.477 439.4463 null]
+>> endobj
+7028 0 obj <<
+/D [7009 0 R /XYZ 76.7123 421.5136 null]
+>> endobj
+7029 0 obj <<
+/D [7009 0 R /XYZ 129.5143 403.5808 null]
+>> endobj
+7030 0 obj <<
+/D [7009 0 R /XYZ 129.5143 403.5808 null]
+>> endobj
+7031 0 obj <<
+/D [7009 0 R /XYZ 71.731 401.424 null]
+>> endobj
+7032 0 obj <<
+/D [7009 0 R /XYZ 71.731 401.424 null]
+>> endobj
+7033 0 obj <<
+/D [7009 0 R /XYZ 139.477 385.6481 null]
+>> endobj
+7034 0 obj <<
+/D [7009 0 R /XYZ 71.731 384.2085 null]
+>> endobj
+7035 0 obj <<
+/D [7009 0 R /XYZ 139.477 367.7153 null]
+>> endobj
+7036 0 obj <<
+/D [7009 0 R /XYZ 76.7123 349.7826 null]
+>> endobj
+7037 0 obj <<
+/D [7009 0 R /XYZ 129.5143 331.8498 null]
+>> endobj
+7038 0 obj <<
+/D [7009 0 R /XYZ 129.5143 331.8498 null]
+>> endobj
+7039 0 obj <<
+/D [7009 0 R /XYZ 71.731 329.693 null]
+>> endobj
+7040 0 obj <<
+/D [7009 0 R /XYZ 71.731 329.693 null]
+>> endobj
+7041 0 obj <<
+/D [7009 0 R /XYZ 139.477 313.9171 null]
+>> endobj
+7042 0 obj <<
+/D [7009 0 R /XYZ 71.731 312.4775 null]
+>> endobj
+7043 0 obj <<
+/D [7009 0 R /XYZ 139.477 295.9843 null]
+>> endobj
+7044 0 obj <<
+/D [7009 0 R /XYZ 71.731 258.1263 null]
+>> endobj
+7045 0 obj <<
+/D [7009 0 R /XYZ 71.731 245.0753 null]
+>> endobj
+7046 0 obj <<
+/D [7009 0 R /XYZ 71.731 243.83 null]
+>> endobj
+7047 0 obj <<
+/D [7009 0 R /XYZ 129.5143 224.7515 null]
+>> endobj
+893 0 obj <<
+/D [7009 0 R /XYZ 71.731 218.3306 null]
+>> endobj
+426 0 obj <<
+/D [7009 0 R /XYZ 241.8522 174.5158 null]
+>> endobj
+7048 0 obj <<
+/D [7009 0 R /XYZ 71.731 151.027 null]
+>> endobj
+7049 0 obj <<
+/D [7009 0 R /XYZ 161.0655 141.6391 null]
+>> endobj
+7050 0 obj <<
+/D [7009 0 R /XYZ 71.731 129.5196 null]
+>> endobj
+7008 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7053 0 obj <<
+/Length 1178      
+/Filter /FlateDecode
+>>
+stream
+xÚ­X]\8f\9c6\14}ß_Áã\8c´¸þÀØìÛ6ýPªVZ%Ó§l´¢àÉ"10\ 2&Ûý÷½\ 6Ã\18Æ|¨\8aò\0\eÎõ9>÷ú\8emâaøG<A\90`ð \11¢!§^rºÃÞ7øôû\1d1\10ß`|\eôóáî§ß\18ö"\14\85\ eG\8fE!â"ð\ 4£Hr"½Cúe÷á5>7ªÚû\94ã\1dEÝó)\8f\vÕü\19ÿÓýùøô±{ùK5¯eZï¿\1eþ¸ûõ0ðs&P$\81dQä\80º\95I#K&!\11â\9c\bO`\89XÀD«ó\17U'Uvn²²xÐüm\90\84 0ÐA&Üg0Å\10¾è\90¿Ïiܨº\93Þ¼ªîå\1cWñIÁ\94Í\87òØ=ã¢{ª=á»\7f³ºÉ\8aoæK\9aVª6ð·¬y\9d\8cø}Où.Î/=UV\8câ^\9e1¦*Ok¤u\83\17>#\88K\12¶"\9f>\9a¨Sün\ 4\15¹y»´\13\18\r¦&ªADf\92Wj\19o\86»Î`æ\ 3!  QÈDGøI5\97ª0Ã\10£Ø\8cV_\92\ 4H\8e\97ü¾û\8fã\9e\0õ%ozZà«Þ²Z¡!\a×ÄùC\12 ¾DØåí1Ï;a*í\86øTæª^J!%($²Ka\9c\9e²Âh9g[9\9ft
+\874?LËu(0N8\12!\8f\9cå: |\eÖ\97+\94²ÀdT®\ 3LKx¦\94ßðR
+õL¨\93wú¼êè£nu0iÙG`Qq\12°±\8eø\ 2åzk\e\r\10Ö\f\1aò`rßT\97¤¹\9f¬x\1d¯\8a&Kb½òlä¥R·\134\12\82H É #9\8díQ¾\r»\1aKt+³'4Àf\8d\85äc\1aDNÞycû¨[\1dccY\84\ 2!Æ2\1eÁ\97®\e:Üå°Ü\ 2h´S\7f¡£ôþ:l=uÃu˺4\1d V³Õ\e\84\ 4\18aU/W¯\r[¨Þ\ 1¶Z½.Þ\rÕ{£Ã]½#\1d}\aÍæ]æc\97³b(a»kg©v»mÄÕ¼¡\ 1¬
+\16¬µ\ 3\e¶dh\ f[7ÔÁ»ÅЩ\8e\19Cm\1d½¡ÇLÿ 9L\15PãXRWk\98_í4D\ 4ÓÕÕnÁ\96V{\ f[_í\ eÞ-«}ªÃ½Úm\19IÖ¼»»¨à\ 1YXç\1fL Û7Øß\900
+Ö|³`K¾õ°uß\1c¼[|\9bêpûfËHÊKÑT.ë\ 2\8cdÄÂ%ë®±N÷X\84\11ea¸â\9e\r[po\80­ºçâÝàÞ\8d\ e§{#\19yV(æ*»\b1\19\89¥\9f\17»÷éaº76o¦\80®\82Y´f¦\ 5[2³\87­\9béàÝbæT\87ÛL[\86v\81þH3é¼\99<@L\90µ~hÃ\96Ììaëf:x·\989Õá6Ó\96¡] ?ÒL2o&\9cè\ 2\9a¤\r[2³\87­\9béàÝbæT\87ÛL[FÝèCÞÿ1ós3\1c\ fKs\b<W¥>ü|Ï\8ad~{Î\88D\1cóÕÖiÁ\96<íaë\9e:x·x:ÕáöÔ\96q.ÁÕ<)SåÞ8R)å\82±Omx÷Þ\ fâù\ 2âH o2àÇ\vGÜ>NÏ\1f2i \10\15T¬ì*mØ®r\80­î*]¼\ev\95.\1dÖÝL\9fô\91\8eë¦{ö>Á¤\ 1ôA\1cámæ|.\90\80\13Uk(e&u\14¶]XßC       inp\1eS}\vÑö\8dÃ>Ä»÷³+« HR,&7\ 1\94\r\ 4l½pè\19\r\9bìØÚÉ<c\8eõqø~|»£G\87\ 3ÊKY½\14ñI¹¾ö\17@0\ 2Ùz\871½ï²sl®û\ 2\89$lµ\16o\ 4-Ìí\85 §\f\8e\ 62\1cFÒÄ\84°Ùû=\aã\7f+3«Cendstream
+endobj
+7052 0 obj <<
+/Type /Page
+/Contents 7053 0 R
+/Resources 7051 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6963 0 R
+>> endobj
+7054 0 obj <<
+/D [7052 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+7055 0 obj <<
+/D [7052 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+7056 0 obj <<
+/D [7052 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+7057 0 obj <<
+/D [7052 0 R /XYZ 168.8063 708.3437 null]
+>> endobj
+7058 0 obj <<
+/D [7052 0 R /XYZ 71.731 681.2803 null]
+>> endobj
+7059 0 obj <<
+/D [7052 0 R /XYZ 71.731 649.9144 null]
+>> endobj
+7060 0 obj <<
+/D [7052 0 R /XYZ 71.731 633.2768 null]
+>> endobj
+7061 0 obj <<
+/D [7052 0 R /XYZ 71.731 602.3408 null]
+>> endobj
+7062 0 obj <<
+/D [7052 0 R /XYZ 181.5683 590.6849 null]
+>> endobj
+7063 0 obj <<
+/D [7052 0 R /XYZ 71.731 580.6227 null]
+>> endobj
+7064 0 obj <<
+/D [7052 0 R /XYZ 71.731 547.1996 null]
+>> endobj
+7065 0 obj <<
+/D [7052 0 R /XYZ 71.731 536.0897 null]
+>> endobj
+7066 0 obj <<
+/D [7052 0 R /XYZ 71.731 534.8444 null]
+>> endobj
+7067 0 obj <<
+/D [7052 0 R /XYZ 129.5143 515.7659 null]
+>> endobj
+7068 0 obj <<
+/D [7052 0 R /XYZ 129.5143 515.7659 null]
+>> endobj
+7069 0 obj <<
+/D [7052 0 R /XYZ 71.731 514.3263 null]
+>> endobj
+7070 0 obj <<
+/D [7052 0 R /XYZ 71.731 514.3263 null]
+>> endobj
+7071 0 obj <<
+/D [7052 0 R /XYZ 139.477 497.8331 null]
+>> endobj
+7072 0 obj <<
+/D [7052 0 R /XYZ 139.477 497.8331 null]
+>> endobj
+7073 0 obj <<
+/D [7052 0 R /XYZ 76.7123 479.9004 null]
+>> endobj
+7074 0 obj <<
+/D [7052 0 R /XYZ 129.5143 461.9676 null]
+>> endobj
+7075 0 obj <<
+/D [7052 0 R /XYZ 129.5143 461.9676 null]
+>> endobj
+7076 0 obj <<
+/D [7052 0 R /XYZ 71.731 460.5281 null]
+>> endobj
+7077 0 obj <<
+/D [7052 0 R /XYZ 129.5143 444.0349 null]
+>> endobj
+7078 0 obj <<
+/D [7052 0 R /XYZ 129.5143 444.0349 null]
+>> endobj
+7079 0 obj <<
+/D [7052 0 R /XYZ 71.731 442.8558 null]
+>> endobj
+7080 0 obj <<
+/D [7052 0 R /XYZ 71.731 442.8558 null]
+>> endobj
+7081 0 obj <<
+/D [7052 0 R /XYZ 139.477 426.1021 null]
+>> endobj
+7082 0 obj <<
+/D [7052 0 R /XYZ 139.477 426.1021 null]
+>> endobj
+7083 0 obj <<
+/D [7052 0 R /XYZ 71.731 423.9453 null]
+>> endobj
+7084 0 obj <<
+/D [7052 0 R /XYZ 139.477 408.1694 null]
+>> endobj
+7085 0 obj <<
+/D [7052 0 R /XYZ 139.477 408.1694 null]
+>> endobj
+7086 0 obj <<
+/D [7052 0 R /XYZ 71.731 406.0125 null]
+>> endobj
+7087 0 obj <<
+/D [7052 0 R /XYZ 139.477 390.2366 null]
+>> endobj
+7088 0 obj <<
+/D [7052 0 R /XYZ 139.477 390.2366 null]
+>> endobj
+7089 0 obj <<
+/D [7052 0 R /XYZ 71.731 388.0798 null]
+>> endobj
+7090 0 obj <<
+/D [7052 0 R /XYZ 139.477 372.3039 null]
+>> endobj
+7091 0 obj <<
+/D [7052 0 R /XYZ 139.477 372.3039 null]
+>> endobj
+7092 0 obj <<
+/D [7052 0 R /XYZ 71.731 370.147 null]
+>> endobj
+7093 0 obj <<
+/D [7052 0 R /XYZ 139.477 354.3711 null]
+>> endobj
+7094 0 obj <<
+/D [7052 0 R /XYZ 139.477 354.3711 null]
+>> endobj
+7095 0 obj <<
+/D [7052 0 R /XYZ 71.731 352.2143 null]
+>> endobj
+7096 0 obj <<
+/D [7052 0 R /XYZ 139.477 336.4384 null]
+>> endobj
+7097 0 obj <<
+/D [7052 0 R /XYZ 139.477 336.4384 null]
+>> endobj
+7098 0 obj <<
+/D [7052 0 R /XYZ 71.731 334.2815 null]
+>> endobj
+7099 0 obj <<
+/D [7052 0 R /XYZ 139.477 318.5056 null]
+>> endobj
+7100 0 obj <<
+/D [7052 0 R /XYZ 139.477 318.5056 null]
+>> endobj
+7101 0 obj <<
+/D [7052 0 R /XYZ 71.731 280.6476 null]
+>> endobj
+7102 0 obj <<
+/D [7052 0 R /XYZ 71.731 267.5966 null]
+>> endobj
+7103 0 obj <<
+/D [7052 0 R /XYZ 71.731 266.3513 null]
+>> endobj
+7104 0 obj <<
+/D [7052 0 R /XYZ 129.5143 247.2727 null]
+>> endobj
+894 0 obj <<
+/D [7052 0 R /XYZ 71.731 240.8519 null]
+>> endobj
+430 0 obj <<
+/D [7052 0 R /XYZ 290.5716 197.0371 null]
+>> endobj
+7105 0 obj <<
+/D [7052 0 R /XYZ 71.731 173.5483 null]
+>> endobj
+7106 0 obj <<
+/D [7052 0 R /XYZ 161.0655 164.1604 null]
+>> endobj
+7107 0 obj <<
+/D [7052 0 R /XYZ 71.731 152.0409 null]
+>> endobj
+7108 0 obj <<
+/D [7052 0 R /XYZ 71.731 120.675 null]
+>> endobj
+7109 0 obj <<
+/D [7052 0 R /XYZ 168.8063 109.6647 null]
+>> endobj
+7051 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7112 0 obj <<
+/Length 1077      
+/Filter /FlateDecode
+>>
+stream
+xÚÍXM\8f¤6\10½Ï¯à8--\8e\99Ûd\93\8d\12%ÊhÕ{ʬF\ 4ÜÓH\f´øÈdÿ}l°i\ 3\ 6zoÑ\1cÌ4åªççWe\17(\80ê\ f\ 5\1c\ 1\80c\80#\86\83ôí\ e\ 6¯êÕ/wÈ\98\84Æ&t\8d~<Þýð\89À \ 6q\84£àx
+H\1c\ 1ÆiÀ \ 6\82!\11\1c³¿î?\9e\93K+ëC\88\19¼Ç`\18\9f\8a¤\94íïÉßÿ\8fO¿\ e\ f\7fÈö\eÍáëñ·»\9f\8fc|F8\88\85
+²      r´ZÂÄq \14Ì\88j\98H½e\88\92\80C\ 1\b%¼Çùå\92%­l\ 6\1cíY\ e\ f\97¤NÞ¤Âo^T§aLÊa\94\aÄîÿÍ\9b6/_Í\9b,«ecý|»\18Gïy{\9eùþç\80Ù}Rt6h^N<¼èÉ/Ï\10bYd\rÐ\9c¨u\86(\ 2\11áQ\8fù³l»º4Ó\91ñb\106]\9a*/§®ø0üp: å»+Z»\14\ 5¤~Ï\eÙ»î9ºneh\1e\95<\1a(z,\8aJc~\97ÙàâsUÈæa\9c~¥ØÎÆ\bDHÄýì${S+¼1Ô\93æuäþa.\b\84Ô\16\ 3&\b\88\11$^A\8cV¡kf\ 5¡ÄÂ!ê\ 5±ð¦!<cÌ\16q1V\8a\ew>^qØYK\1c\84\91tJ9KÚ0\ 5PGÐ&\ ffËÛºKÛ\ f³\9cÒóeÙæiÒæUéZvµ\.ÐB\88\98âGéÌK¬µ
+]³+±H\17\8bÉ\82¬Ù*±jó!¦±7î:±vÖ\12Ç\94X\12\ 3Êù\14Æ£âe¨7\1ev\99Ê2ªJÙ\9c_\95æ\96_\ f­o\83»!Í«aì\1a¹®^\ 2\ 1B\18í©×1ÛR¯5ÛW¯'î-ê\9dãXQ¯\8bcRÌò쥪_J\95Õ\1eÊ\11\8e\0VU{Êy^¶¦\Õî&¬ë\16a%¿\98ìéÖ1ÛÒ­5Û×­'î-ºõàp(±ºua(F¬\ 4ýGM\9ei]ö\aG½Ê\13\8d)À4ÚËo×l\83§Ñl\97'_Ü\exòáXò4\811ÍÖ\ 5Uk9I\99º\14\b´\97\93®ÙFN\8ef»9é\8b{CN.pøsr\82c\92\93§\_/|ù\b\90\13ß\19³.+
+\ 1¥b/ý\³-YY³}YyâÞ"«9\ eï±1\81±R½ôq\fãxëÀØ\95à¸lµ»\f±ÝÜt̶H´fû$zâÞBâ\1c\87\9fD\17F&\9b´Î/ýɹä2R·ÆHðïâ²\7f\9a¹\rB\81\0\8b©*³\10\b\183÷Ò¼~§$\f\ 1,0ß©\0®ÙF\ 5\18Ív+\80\r\15À\87Ã=U\8d\f&8®gÈj×`öEáã\0#ÖïeÈ8à\82\90\9ePLÌfª³        "ÝØqaº¨\8fUyú\94\17¾<¡\1c\b\fùì¶_Wm¥·q·\97\88\9d^m\8cÒ#\7f\86\fê«®YWª^öÍS¡¯\1d\9e\1fmc¥æ¡[»\92\9f®úÚBJT\e\1cáxÙV&ÃPV\99\1c\ 1i\1c¯]íÜ"\a\80¦Sþ³,¾ÍúF\8bÜìØE¦Ãa\9fMÛHßb\r\8cÚxêzp\96\9d¤(\9cÎÐ\17+\19\1a\86¾\rU»Á¢¡$\16òd.i]ÙV]z\96Ùÿ¼]uóÏ|Û \ 2\b\14Å\9b\9f?\1c\9bå×\ f\86        \80DD£'\8d\ 1!ºú1Ã\13ñ?¨\8f\12kendstream
+endobj
+7111 0 obj <<
+/Type /Page
+/Contents 7112 0 R
+/Resources 7110 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6963 0 R
+>> endobj
+7113 0 obj <<
+/D [7111 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+7114 0 obj <<
+/D [7111 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+7115 0 obj <<
+/D [7111 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+7116 0 obj <<
+/D [7111 0 R /XYZ 71.731 670.4852 null]
+>> endobj
+7117 0 obj <<
+/D [7111 0 R /XYZ 181.5683 658.8294 null]
+>> endobj
+7118 0 obj <<
+/D [7111 0 R /XYZ 71.731 648.7672 null]
+>> endobj
+7119 0 obj <<
+/D [7111 0 R /XYZ 71.731 617.1956 null]
+>> endobj
+7120 0 obj <<
+/D [7111 0 R /XYZ 71.731 604.2342 null]
+>> endobj
+7121 0 obj <<
+/D [7111 0 R /XYZ 71.731 602.9889 null]
+>> endobj
+7122 0 obj <<
+/D [7111 0 R /XYZ 129.5143 583.9103 null]
+>> endobj
+7123 0 obj <<
+/D [7111 0 R /XYZ 129.5143 583.9103 null]
+>> endobj
+7124 0 obj <<
+/D [7111 0 R /XYZ 71.731 582.4708 null]
+>> endobj
+7125 0 obj <<
+/D [7111 0 R /XYZ 71.731 582.4708 null]
+>> endobj
+7126 0 obj <<
+/D [7111 0 R /XYZ 139.477 565.9776 null]
+>> endobj
+7127 0 obj <<
+/D [7111 0 R /XYZ 139.477 565.9776 null]
+>> endobj
+7128 0 obj <<
+/D [7111 0 R /XYZ 76.7123 548.0448 null]
+>> endobj
+7129 0 obj <<
+/D [7111 0 R /XYZ 129.5143 530.1121 null]
+>> endobj
+7130 0 obj <<
+/D [7111 0 R /XYZ 129.5143 530.1121 null]
+>> endobj
+7131 0 obj <<
+/D [7111 0 R /XYZ 71.731 527.9552 null]
+>> endobj
+7132 0 obj <<
+/D [7111 0 R /XYZ 71.731 527.9552 null]
+>> endobj
+7133 0 obj <<
+/D [7111 0 R /XYZ 139.477 512.1793 null]
+>> endobj
+7134 0 obj <<
+/D [7111 0 R /XYZ 71.731 510.0225 null]
+>> endobj
+7135 0 obj <<
+/D [7111 0 R /XYZ 139.477 494.2466 null]
+>> endobj
+7136 0 obj <<
+/D [7111 0 R /XYZ 76.7123 476.3138 null]
+>> endobj
+7137 0 obj <<
+/D [7111 0 R /XYZ 129.5143 458.3811 null]
+>> endobj
+7138 0 obj <<
+/D [7111 0 R /XYZ 129.5143 458.3811 null]
+>> endobj
+7139 0 obj <<
+/D [7111 0 R /XYZ 71.731 457.0003 null]
+>> endobj
+7140 0 obj <<
+/D [7111 0 R /XYZ 71.731 457.0003 null]
+>> endobj
+7141 0 obj <<
+/D [7111 0 R /XYZ 139.477 440.4483 null]
+>> endobj
+7142 0 obj <<
+/D [7111 0 R /XYZ 139.477 440.4483 null]
+>> endobj
+7143 0 obj <<
+/D [7111 0 R /XYZ 71.731 438.2915 null]
+>> endobj
+7144 0 obj <<
+/D [7111 0 R /XYZ 139.477 422.5156 null]
+>> endobj
+7145 0 obj <<
+/D [7111 0 R /XYZ 139.477 422.5156 null]
+>> endobj
+7146 0 obj <<
+/D [7111 0 R /XYZ 71.731 384.6575 null]
+>> endobj
+7147 0 obj <<
+/D [7111 0 R /XYZ 71.731 371.6066 null]
+>> endobj
+7148 0 obj <<
+/D [7111 0 R /XYZ 71.731 370.3612 null]
+>> endobj
+7149 0 obj <<
+/D [7111 0 R /XYZ 129.5143 351.2827 null]
+>> endobj
+895 0 obj <<
+/D [7111 0 R /XYZ 71.731 344.8618 null]
+>> endobj
+434 0 obj <<
+/D [7111 0 R /XYZ 251.5788 301.0471 null]
+>> endobj
+7150 0 obj <<
+/D [7111 0 R /XYZ 71.731 277.5583 null]
+>> endobj
+7151 0 obj <<
+/D [7111 0 R /XYZ 161.0655 268.1703 null]
+>> endobj
+7152 0 obj <<
+/D [7111 0 R /XYZ 71.731 256.0509 null]
+>> endobj
+7153 0 obj <<
+/D [7111 0 R /XYZ 71.731 224.685 null]
+>> endobj
+7154 0 obj <<
+/D [7111 0 R /XYZ 168.8063 213.6747 null]
+>> endobj
+7155 0 obj <<
+/D [7111 0 R /XYZ 71.731 186.6113 null]
+>> endobj
+7156 0 obj <<
+/D [7111 0 R /XYZ 71.731 160.3846 null]
+>> endobj
+7157 0 obj <<
+/D [7111 0 R /XYZ 71.731 127.5971 null]
+>> endobj
+7158 0 obj <<
+/D [7111 0 R /XYZ 181.5683 115.9412 null]
+>> endobj
+7110 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7161 0 obj <<
+/Length 1489      
+/Filter /FlateDecode
+>>
+stream
+xÚ­Y[\8f\9b8\18}\9f_Áã\8c´ñú\82±é[·{Q÷¦ª;û´]\8d\18â$h  D\:;ÿ¾6ØÄ\ 1cS©\1a)aÈ\81ïø\9cÏ\9f?\f\8a üC\11C\80\11ù\85S\80\13\8a£ü|\a££üé\97;¤!;\8dÙÙ \1f\1eï¾ÿ\99À(\ 5i\82\93èñ\10\914\ 1\94Å\11#\18p\8axô¸ÿçþÝ)»t¢yØa
+ï1\18¿?\94Y%ºß³çñß·\1fÞ\8f\a\7f\88îTïÛ\87\7f\1f\7f½ûéq\8aO    \ 3)\97A¼$'Ô\92&N#.i&±¢\89ä¯\14Å$b\90\ 3\12\136ðÌöç¢R\81\aôuP;}¸S\83\bþð\80è}Ödg!\87Ö¾\99óEHF \88E    ¥\0Æ$qò\9dP;\eføʱ0\88\ 6¾\8b»)
+\9f\8b¸\18Ë\ 1\8c;ÿ¾ò0W-y\10îÒí\86GÖw'\87l8\ 6PEP\907£¹m×ôy÷ÝÌru½¨º"Ϻ¢®ldß\88å\0\r\ 5é5B\90»\85\9d\r»
+\8bT.ß\fÈÀV\85\95æC\1c§Î¸ëÂ\9a«\96<n\85%)\88\19»¥ñVê2N\a\87º4\ 1I,gÚ\ߢ:\1a}\1d²\9eÇÛ\rÇ]=~÷­XÏ^\88\0\8e)  e¯\ 5óe¯\81\85³×\11wKöÎy¬d¯Í#¯«ÃÓ¡(ÅSáÒ9a \86l\96ÇEe\92ø]]}\82\10\1fûÆRY\9d)\85\86î\95\aê\8c¬\80k2SN\0A8T$l\98Gæ    \16\94Ù\15w\83Ì\v\1en\99ox\e>\14¢\1c\vüLjÎ\ 1M\18w\95\8cÕ*@\13
+\bKCUÀ\86yªÀ\ 4\vV\ 1\rU`ÁÃY\ 5nh\f\9aÕ/Õ\98>\8e*\80Pâ©\ 2ù©~ÀôþE¦)\85H~ ñ¼>ëHÊI\8cX¦~,S? ­\ 5óIk`ai\1dq·H;çá\96Ö¦q©Û®¨Ú.+˧üì\9aý2\83i\9cP\8f¾\7f\9dDYj©ëó9«fÕU¨>á\7fõ!ò¾ÓE!;Lý\90\8e/o¸n\849\b\18aÁ|F\98\83°\11\8e¸[\8c\98óp\e\10MS7+\16PY«\13\96|k\v\8a\83¶¢R?¼j¤â¡çG\9e÷M»î       B\80r\94\84<±`>O\f\89\16Oæ<Ü\9eØ4.\8dðÏ\rÆ\ 1Jd7ü\8d\8d¹4\85ñÀà6Ì\918%²\1fâ¡uÀ\86\98`A?\q7ø±àáôã\86Æ^´ÝJ\97\rÓÔ×\a>·uy\957\93Íúpôr\12\8dX6,í©îKmÔ³¸1@ì×õg\14°àt°P>õ5*,þ2è\16íg$ÜÒ[\1c\8acU7BÍ\82§¡@¸z\17éT\1aÏ«Ôs]\97"«´\ fïG\11\97\8aë\12ôò\80䱩Djyþ<L\8djQ°¾²VÅ\94\ 1ÆIhý°a>w\f,l\8f\16\7fæ<Ü\ 6Ù4D\95=ëì\9cù\12C@!K}¾\84[øV+\9fwÅÕ\96u¹%CN!\rÉmÁ|r\eXXnGÜ-rÏy¸å¶i\f-éE4ç¢m¥b_ÓËÛ\8dé¹ÞÏ\9aÒÙ=Ýòb\ 4\82\95Þ\82ùä5°°¼\8e¸[ä\9dópËkÓhë¾É\85CT\12\ 3\96¤¾Vè£(³\9b$\9dÕ|\93ÞÝILS¡Ó÷\11ÍxMã]\1erS\7fÌÚ°×O\12e\9dí}\v\ 4\94\15\92\a\15å3M£Â\9e-\83n±lFÂí\98Å!+_²×ö©¿ì³Îå\eàÆ\9cø\8aÐÛRU\7f½\ 4\98zÓuâ|é\9c½ÐÒ\98õ\15£¯òSV\1d\10\9e\0Hqh\85°a\1e{&XÐ\1f\r\ 6-x8\1dº¡1\94¬cS÷\17÷S4!Äÿ\14}l.¾'èhÇ\12\80)W½6\ 4\1c¦cf|\14]ßT\9eía\82bÀQ\1a\av~l\98gçg\82\ 5w~\q7ìü¸x\u¼f\80ÍãºY\86nó²íó\´í¡/µ'\92\1f\ 3\18ÑÁÆ\9d\95 \98б\17Ã\0Áá\15\ 2ã÷\7f\ fóí·±Ð\r\ fq\8eõ\9f\ 1\8e!\9bíÝ7uWw¯\17ñfºâ\9a>f³_Vä\ 4I?Õ\ 5&\12\9e"ééG¡Ú¼ÖÃûOÍÞñ÷§bï89ì\ 2\96ûvÈ¡\8dï\19~\14\14\17Õ\99øØ\92D®·ØfÛÎ*ýezY¡ÓwÞO\ e\ fc\85Ú\119.¨ë%¡0ëÈt×ÏJ\93¬ìM¸¢Z\1f6\18&
+TYt}Ìü³®vÃ\8b\17}\83³é\80ëªÔGº®\9aÀEs3ÿ\16ñÆ8vÖëwW1\97I\99¤Þ×[\16fùvK\16\13\0eY\99î¤\ 6\80\10]}Yå\88ø\ 5G\8e<÷endstream
+endobj
+7160 0 obj <<
+/Type /Page
+/Contents 7161 0 R
+/Resources 7159 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 6963 0 R
+>> endobj
+7162 0 obj <<
+/D [7160 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+7163 0 obj <<
+/D [7160 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+7164 0 obj <<
+/D [7160 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+7165 0 obj <<
+/D [7160 0 R /XYZ 71.731 675.3674 null]
+>> endobj
+7166 0 obj <<
+/D [7160 0 R /XYZ 71.731 674.1221 null]
+>> endobj
+7167 0 obj <<
+/D [7160 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+7168 0 obj <<
+/D [7160 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+7169 0 obj <<
+/D [7160 0 R /XYZ 71.731 653.604 null]
+>> endobj
+7170 0 obj <<
+/D [7160 0 R /XYZ 71.731 653.604 null]
+>> endobj
+7171 0 obj <<
+/D [7160 0 R /XYZ 139.477 637.1108 null]
+>> endobj
+7172 0 obj <<
+/D [7160 0 R /XYZ 139.477 637.1108 null]
+>> endobj
+7173 0 obj <<
+/D [7160 0 R /XYZ 76.7123 619.1781 null]
+>> endobj
+7174 0 obj <<
+/D [7160 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+7175 0 obj <<
+/D [7160 0 R /XYZ 129.5143 601.2453 null]
+>> endobj
+7176 0 obj <<
+/D [7160 0 R /XYZ 71.731 599.0885 null]
+>> endobj
+7177 0 obj <<
+/D [7160 0 R /XYZ 129.5143 583.3126 null]
+>> endobj
+7178 0 obj <<
+/D [7160 0 R /XYZ 129.5143 583.3126 null]
+>> endobj
+7179 0 obj <<
+/D [7160 0 R /XYZ 71.731 582.1335 null]
+>> endobj
+7180 0 obj <<
+/D [7160 0 R /XYZ 71.731 582.1335 null]
+>> endobj
+7181 0 obj <<
+/D [7160 0 R /XYZ 139.477 565.3798 null]
+>> endobj
+7182 0 obj <<
+/D [7160 0 R /XYZ 139.477 565.3798 null]
+>> endobj
+7183 0 obj <<
+/D [7160 0 R /XYZ 71.731 563.223 null]
+>> endobj
+7184 0 obj <<
+/D [7160 0 R /XYZ 139.477 547.4471 null]
+>> endobj
+7185 0 obj <<
+/D [7160 0 R /XYZ 139.477 547.4471 null]
+>> endobj
+7186 0 obj <<
+/D [7160 0 R /XYZ 71.731 545.2902 null]
+>> endobj
+7187 0 obj <<
+/D [7160 0 R /XYZ 139.477 529.5143 null]
+>> endobj
+7188 0 obj <<
+/D [7160 0 R /XYZ 139.477 529.5143 null]
+>> endobj
+7189 0 obj <<
+/D [7160 0 R /XYZ 71.731 527.3575 null]
+>> endobj
+7190 0 obj <<
+/D [7160 0 R /XYZ 139.477 511.5816 null]
+>> endobj
+7191 0 obj <<
+/D [7160 0 R /XYZ 139.477 511.5816 null]
+>> endobj
+7192 0 obj <<
+/D [7160 0 R /XYZ 71.731 509.4247 null]
+>> endobj
+7193 0 obj <<
+/D [7160 0 R /XYZ 139.477 493.6488 null]
+>> endobj
+7194 0 obj <<
+/D [7160 0 R /XYZ 139.477 493.6488 null]
+>> endobj
+7195 0 obj <<
+/D [7160 0 R /XYZ 71.731 491.492 null]
+>> endobj
+7196 0 obj <<
+/D [7160 0 R /XYZ 139.477 475.716 null]
+>> endobj
+7197 0 obj <<
+/D [7160 0 R /XYZ 139.477 475.716 null]
+>> endobj
+7198 0 obj <<
+/D [7160 0 R /XYZ 71.731 473.5592 null]
+>> endobj
+7199 0 obj <<
+/D [7160 0 R /XYZ 139.477 457.7833 null]
+>> endobj
+7200 0 obj <<
+/D [7160 0 R /XYZ 139.477 457.7833 null]
+>> endobj
+7201 0 obj <<
+/D [7160 0 R /XYZ 71.731 455.6265 null]
+>> endobj
+7202 0 obj <<
+/D [7160 0 R /XYZ 139.477 439.8505 null]
+>> endobj
+7203 0 obj <<
+/D [7160 0 R /XYZ 139.477 439.8505 null]
+>> endobj
+7204 0 obj <<
+/D [7160 0 R /XYZ 71.731 437.6937 null]
+>> endobj
+7205 0 obj <<
+/D [7160 0 R /XYZ 139.477 421.9178 null]
+>> endobj
+7206 0 obj <<
+/D [7160 0 R /XYZ 139.477 421.9178 null]
+>> endobj
+7207 0 obj <<
+/D [7160 0 R /XYZ 71.731 419.761 null]
+>> endobj
+7208 0 obj <<
+/D [7160 0 R /XYZ 139.477 403.985 null]
+>> endobj
+7209 0 obj <<
+/D [7160 0 R /XYZ 139.477 403.985 null]
+>> endobj
+7210 0 obj <<
+/D [7160 0 R /XYZ 71.731 401.8282 null]
+>> endobj
+7211 0 obj <<
+/D [7160 0 R /XYZ 139.477 386.0523 null]
+>> endobj
+7212 0 obj <<
+/D [7160 0 R /XYZ 139.477 386.0523 null]
+>> endobj
+7213 0 obj <<
+/D [7160 0 R /XYZ 71.731 348.1943 null]
+>> endobj
+7214 0 obj <<
+/D [7160 0 R /XYZ 71.731 335.1433 null]
+>> endobj
+7215 0 obj <<
+/D [7160 0 R /XYZ 71.731 333.898 null]
+>> endobj
+7216 0 obj <<
+/D [7160 0 R /XYZ 129.5143 314.8194 null]
+>> endobj
+896 0 obj <<
+/D [7160 0 R /XYZ 71.731 308.3985 null]
+>> endobj
+438 0 obj <<
+/D [7160 0 R /XYZ 213.7744 264.5838 null]
+>> endobj
+7217 0 obj <<
+/D [7160 0 R /XYZ 71.731 241.095 null]
+>> endobj
+7218 0 obj <<
+/D [7160 0 R /XYZ 161.0655 231.7071 null]
+>> endobj
+7219 0 obj <<
+/D [7160 0 R /XYZ 71.731 219.5876 null]
+>> endobj
+7220 0 obj <<
+/D [7160 0 R /XYZ 71.731 188.2217 null]
+>> endobj
+7221 0 obj <<
+/D [7160 0 R /XYZ 168.8063 177.2114 null]
+>> endobj
+7222 0 obj <<
+/D [7160 0 R /XYZ 71.731 150.148 null]
+>> endobj
+7223 0 obj <<
+/D [7160 0 R /XYZ 71.731 118.7821 null]
+>> endobj
+7159 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7226 0 obj <<
+/Length 999       
+/Filter /FlateDecode
+>>
+stream
+xÚÕXY\8f«6\18}\9f_Ác"\r®WlîÛtU\97+\8d®r\9f:UE\13g\82J\16\ 5ètþ}?cCL0K¥JWÕH\ 3I\ eþ\ eÇßr\80D\18þH$    \92\f\ e4E4\11\1e\1f
+?ýð@\1c$v\98Ø\a}½yøê{\86£\14¥   M¢Í>bi\82\84ä\91d\14)AT´Ùýºúæ\90]*}]ÇTà\15Eöø\d']ý\92ýa?>=ÿhO>êêpÞ\95ëß6?=|·éâ\v&Qª È$É\ e5¤IÓH\ 1Í\84\e\9a\ 4~\15\84³Hb\85\18g²áùIWõõTZ\1eÄ\1eò½=\96õv«Ër_\17\8fö\8bý\9aàUV\17\95Ã\9f«\83¾¾å¥F\86z\13ï&KìNc#\8bLl¸§¢8¯©X½é\9d]âÓ¹Ðå\87îò\eÝöjJPBTÚ\\9dí\8eùÉq¹äî¤ÒÛ\83;­KP|!\93ç5\11«ì\9a\1d5l\93eàkO\b¨%\88\8c\12\8c\91à2\rjß¡b\1fÖj\ fû"1i´\1f¬f(¼P*\ 6q)\85Í!4\18÷þxãÑ^5äÁT(\az<²º:\ 4\1ca\13Á@>¸\8c¨®õ¶z¼K_s½>Uù6«òóÉGÖW=¼AGA(
+;;\92Ô\1d*öa7a\89©Kÿ\86:ب°°ù\98ò4\18w\Øöª!\8f¾°,E\Ê>\8d'ÐÅ\96v@]\91 \84C׸×7?½¶ú\ 6d=Úålâ\9f»¬\1fÍ^Á\13$y*g²×\87Mdo\a\9bÍÞPÜ\ 5Ù;à\11ÎÞ\1e\8f?õûïyHa&\10¡\8aö\15ÎOmúþlú\906]àÝý´3j¿`Lm\17  \vJ\15R$\99k\a>lJÐ\166/h î\12Aïy\8c\bêó0\82îs]Ø\814L[ª \1d\aÚÂx¥\13\8c\94â³\95îÁ¦*½\85ÍWz î\92J¿ç\11®t\9f\86\91¬z¿è\80`\ AS:Qç\83DlW
+\8aÉS\8aR8\9b\11Ó\87M\88ÙÁfÅ\fÅ] æ\80GPÌ\1e\r\103 #\94\f\93Àø_èø\97ù"+êFL\98þà\8eÒ\14l\80\80\9dÃ)÷ýÏøüç`@$Qb¦à}ØDÁw°Ù\82\ fÅ]Pð!\1e\9e\88ݾû<n=qÔ\0º\r\ 1~\12Q"\9aÍ\8b\85DR1Ö\bJ\99H\9aÅ("\98\19¿+Õêóe\97Uú#,\91\19çøº\8eá\7f°H$R\14Ë;\87v=WgS\vKí¡\17îUÛ;xÁ\ 2\e{òØ\8eÏæ7\98\17w_4]\1f:\1eàÉR\aù­.·×üb\86ó\14C\ 6O\a      õ\19\fÓÝYÙÎ\86:[íäÏÜÐorúL ×{´[\ 3\14°¬ýô\96\83\99ë¯ßÕAÙÎÀðÍ7.\1e\12*&àM\98Lþ§\ f\bÿõ\13\0¡\f\11S4Ó\1dÀ\87Mt\80\ e\ 1Bq\17t\80\ 1\8fðÈïñø2O\0\ 4\83C\ 3Û13Ê|ØÄ(ë`³£,\14wÁ(\eð\b\8e²\1e\8d\ 4à^]ð  ·Ú¾Ýà÷\16Ñ\7f¹! ¯\14\85aÉ=\87HH2ú®"\10ñ\1fË,üÃendstream
+endobj
+7225 0 obj <<
+/Type /Page
+/Contents 7226 0 R
+/Resources 7224 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 7274 0 R
+>> endobj
+7227 0 obj <<
+/D [7225 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+7228 0 obj <<
+/D [7225 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+7229 0 obj <<
+/D [7225 0 R /XYZ 71.731 631.9816 null]
+>> endobj
+7230 0 obj <<
+/D [7225 0 R /XYZ 71.731 620.8718 null]
+>> endobj
+7231 0 obj <<
+/D [7225 0 R /XYZ 71.731 619.6265 null]
+>> endobj
+7232 0 obj <<
+/D [7225 0 R /XYZ 129.5143 600.5479 null]
+>> endobj
+7233 0 obj <<
+/D [7225 0 R /XYZ 129.5143 600.5479 null]
+>> endobj
+7234 0 obj <<
+/D [7225 0 R /XYZ 71.731 599.1084 null]
+>> endobj
+7235 0 obj <<
+/D [7225 0 R /XYZ 71.731 599.1084 null]
+>> endobj
+7236 0 obj <<
+/D [7225 0 R /XYZ 139.477 582.6152 null]
+>> endobj
+7237 0 obj <<
+/D [7225 0 R /XYZ 139.477 582.6152 null]
+>> endobj
+7238 0 obj <<
+/D [7225 0 R /XYZ 76.7123 564.6824 null]
+>> endobj
+7239 0 obj <<
+/D [7225 0 R /XYZ 129.5143 546.7497 null]
+>> endobj
+7240 0 obj <<
+/D [7225 0 R /XYZ 129.5143 546.7497 null]
+>> endobj
+7241 0 obj <<
+/D [7225 0 R /XYZ 71.731 544.5928 null]
+>> endobj
+7242 0 obj <<
+/D [7225 0 R /XYZ 129.5143 528.8169 null]
+>> endobj
+7243 0 obj <<
+/D [7225 0 R /XYZ 129.5143 528.8169 null]
+>> endobj
+7244 0 obj <<
+/D [7225 0 R /XYZ 71.731 527.4362 null]
+>> endobj
+7245 0 obj <<
+/D [7225 0 R /XYZ 71.731 527.4362 null]
+>> endobj
+7246 0 obj <<
+/D [7225 0 R /XYZ 139.477 510.8842 null]
+>> endobj
+7247 0 obj <<
+/D [7225 0 R /XYZ 139.477 510.8842 null]
+>> endobj
+7248 0 obj <<
+/D [7225 0 R /XYZ 71.731 508.7273 null]
+>> endobj
+7249 0 obj <<
+/D [7225 0 R /XYZ 139.477 492.9514 null]
+>> endobj
+7250 0 obj <<
+/D [7225 0 R /XYZ 139.477 492.9514 null]
+>> endobj
+7251 0 obj <<
+/D [7225 0 R /XYZ 71.731 455.0934 null]
+>> endobj
+7252 0 obj <<
+/D [7225 0 R /XYZ 71.731 442.0424 null]
+>> endobj
+7253 0 obj <<
+/D [7225 0 R /XYZ 71.731 440.7971 null]
+>> endobj
+7254 0 obj <<
+/D [7225 0 R /XYZ 129.5143 421.7185 null]
+>> endobj
+897 0 obj <<
+/D [7225 0 R /XYZ 71.731 415.2977 null]
+>> endobj
+442 0 obj <<
+/D [7225 0 R /XYZ 255.435 371.4829 null]
+>> endobj
+7255 0 obj <<
+/D [7225 0 R /XYZ 71.731 347.7274 null]
+>> endobj
+7256 0 obj <<
+/D [7225 0 R /XYZ 161.0655 338.6062 null]
+>> endobj
+7257 0 obj <<
+/D [7225 0 R /XYZ 71.731 326.4867 null]
+>> endobj
+7258 0 obj <<
+/D [7225 0 R /XYZ 71.731 295.1209 null]
+>> endobj
+7259 0 obj <<
+/D [7225 0 R /XYZ 168.8063 284.1106 null]
+>> endobj
+7260 0 obj <<
+/D [7225 0 R /XYZ 71.731 257.0471 null]
+>> endobj
+7261 0 obj <<
+/D [7225 0 R /XYZ 71.731 240.6252 null]
+>> endobj
+7262 0 obj <<
+/D [7225 0 R /XYZ 71.731 209.6892 null]
+>> endobj
+7263 0 obj <<
+/D [7225 0 R /XYZ 181.5683 198.0334 null]
+>> endobj
+7264 0 obj <<
+/D [7225 0 R /XYZ 71.731 187.9712 null]
+>> endobj
+7265 0 obj <<
+/D [7225 0 R /XYZ 71.731 156.3996 null]
+>> endobj
+7266 0 obj <<
+/D [7225 0 R /XYZ 71.731 143.4382 null]
+>> endobj
+7267 0 obj <<
+/D [7225 0 R /XYZ 71.731 142.1929 null]
+>> endobj
+7268 0 obj <<
+/D [7225 0 R /XYZ 129.5143 123.1143 null]
+>> endobj
+7269 0 obj <<
+/D [7225 0 R /XYZ 129.5143 123.1143 null]
+>> endobj
+7270 0 obj <<
+/D [7225 0 R /XYZ 71.731 121.6748 null]
+>> endobj
+7271 0 obj <<
+/D [7225 0 R /XYZ 71.731 121.6748 null]
+>> endobj
+7272 0 obj <<
+/D [7225 0 R /XYZ 139.477 105.1816 null]
+>> endobj
+7273 0 obj <<
+/D [7225 0 R /XYZ 139.477 105.1816 null]
+>> endobj
+7224 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7277 0 obj <<
+/Length 1138      
+/Filter /FlateDecode
+>>
+stream
+xÚ\95\8e£F\10}\9f¯àÑ\96\96N_i\98·Ém\95(Y\8dVÞ§L4bìö\f\12\ 6\8b\8bVùû\14W7¸ Yù\ 1[>t\9d>uª«\80y\14>ÌÓ\8ch\ 1\17\1e\11\1e\1d/\ fÔ{\87¿>?°\1eâ÷\18ß\ 6ý|xøéwA½\88D\ 1\ f¼ÃÙ\13Q@\94\96\9e\16\9c\84\8a\85ÞáôÏî\97\8føZ\99bïsEw\9ct×ç4ÎLõWüÖý|zþ£ûò·©>òS¹ÿ÷ðçÃo\87\12\9aD!\ 4Y%)YH¤ \91ç\8b\10âK\81¢\18\8b\88RL{~\10Q"\19à\87ÍðÈ\838\9a²f3#n\845»yá\ÍÙ1Î\89\90\8c\82CÜùõÆc¸ë\9e\87\b½\10D\r\ 3¶¬\18lfÂãbÊ2~7¯É©aÓR¿åA\ 5$\90ZA\9c\ 6úØI[VE\92½\7f\1atnoï~$'\93\v¥\1cÒ4ßÛ¨\82æDê\90»4µ`k\9a\ e0·¦HÜ-\9aÎy,hjó\184='&í<8ÓUk\12R\0Ïu­\8fÕ=ÿ!\82\92DI%qÝ\ 6\94oÃnº±¦è&|\aØ¢nPz\94Ë\b\8d»¬Ûp×=\8f©n"\ 2¹ô\94\86Éâ·Ô`>\94\94(ª£©^oy\9e\9a8C\8dXvWkE\S\ 1\ 6g\»4µ`k\9a\ e0·¦HÜ-\9aÎyà\9aÚ4*s¹¦qe0Q\15Q<â[\8bÛ^©I/\81´)ÏW\14¬\1c©v\8d¯¦ª\8b¬|\¬}\ 5·       \1d\85\8eÚ·a+µ?Â\9cµ\8fÅÝPû\18\8f\9b~cÞ'<\92¬êÕc½\17Ͻ²õñ\bz\9eë´Ï\ 5ðÓ\843Õ&ÏW\9aèP\88VP.TÐ.Æ £²ét:Ü}»\9e@ý/ùÉ|.ö\9cîòú\8a%\15N\16NAæsê 3Ás\91WyõßÕ<\8ewÜlÓßës\ 6®   »¦`Çjâ´\e\8aÆuõÑo/\83\7f÷LíÞ\e\ 4´\8f×¼xÍâ\8bAÿn{\ 2\9c\85°\ 6CXû\ 3  \9bõ¯¦<\16ɵJòl\8d7¸]\ 5ÜæÝ\17\7fÜ]\8euYå\17\8bTû­¥EZ/SH9T\8cÐ\81mbG\ eû]\9e÷\f\ 2ÕiÕãóêÃ\14ß\93Ò\90­»|JÓ|ÏÕî;\1c\12_áT+·&*>]\92lk¨ç&\1fq\ 19\821j¥Jy\10\10­Á\82ëUjÃVªt\84\14\8b»¡Jïxà\1dz£ñ1"\e\97\842¬+\7f\9a\8d\97Íýͬs\8c\e{ÚȺ0\8bí\86K\18'%\ f\1díÆ\86­´\9b\11æl7XÜ\ríæ\8e\aÚn&4\9e@\97nô^\9c&åJÃyBd½tËu=(ï®ui\96ÝË8\98P»fv\e¶æÞ\ 1æv/\12w\8b{ç<\16Ükóh\8e±ù±\8bèÍ\18%4Ô3CC\83êϪÂÎÀ¢iY¤\b\952p\98Ö\86­\98v\849M\8bÅÝ`Z\8c\87%IoÚ \8d[Ëþ2í\ f\e\9ejÆ}ÁHÏ\18s\95\r[Si\80¹UBânQ  á\81¨dÓ\98\14**Ô`C´,\99d\84ËÀU\966l¥,G\98³,±¸\eÊò\8e\a^\96\13\1e·²\|ð\vC\18VtøC\ f~\8c\v"\98p\16 \ 5[³Ö\0s[\v\89»ÅZs\1e\98ÐX8¿\9anL£h¥_l·á¸}
+³:<{»Ä´`kb\ e\98HÜ-bÎyàbÚ4N·±\19Ñ4\80á1\bõ\8fj:[ÔÞbÿF¯\99\ 2X\10­¾ô³0÷ïü\14Ô\1e\fª\ 3¦¡Ç\98^|\81\87Äû\1f\8e\88\9c\14endstream
+endobj
+7276 0 obj <<
+/Type /Page
+/Contents 7277 0 R
+/Resources 7275 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 7274 0 R
+>> endobj
+7278 0 obj <<
+/D [7276 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+7279 0 obj <<
+/D [7276 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+7280 0 obj <<
+/D [7276 0 R /XYZ 76.7123 708.3437 null]
+>> endobj
+7281 0 obj <<
+/D [7276 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+7282 0 obj <<
+/D [7276 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+7283 0 obj <<
+/D [7276 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+7284 0 obj <<
+/D [7276 0 R /XYZ 129.5143 672.4782 null]
+>> endobj
+7285 0 obj <<
+/D [7276 0 R /XYZ 129.5143 672.4782 null]
+>> endobj
+7286 0 obj <<
+/D [7276 0 R /XYZ 71.731 671.0974 null]
+>> endobj
+7287 0 obj <<
+/D [7276 0 R /XYZ 71.731 671.0974 null]
+>> endobj
+7288 0 obj <<
+/D [7276 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+7289 0 obj <<
+/D [7276 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+7290 0 obj <<
+/D [7276 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+7291 0 obj <<
+/D [7276 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+7292 0 obj <<
+/D [7276 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+7293 0 obj <<
+/D [7276 0 R /XYZ 71.731 598.7547 null]
+>> endobj
+7294 0 obj <<
+/D [7276 0 R /XYZ 71.731 585.7037 null]
+>> endobj
+7295 0 obj <<
+/D [7276 0 R /XYZ 71.731 584.4584 null]
+>> endobj
+7296 0 obj <<
+/D [7276 0 R /XYZ 129.5143 565.3798 null]
+>> endobj
+898 0 obj <<
+/D [7276 0 R /XYZ 71.731 558.9589 null]
+>> endobj
+446 0 obj <<
+/D [7276 0 R /XYZ 277.0577 515.1442 null]
+>> endobj
+7297 0 obj <<
+/D [7276 0 R /XYZ 71.731 491.6554 null]
+>> endobj
+7298 0 obj <<
+/D [7276 0 R /XYZ 161.0655 482.2675 null]
+>> endobj
+7299 0 obj <<
+/D [7276 0 R /XYZ 71.731 470.148 null]
+>> endobj
+7300 0 obj <<
+/D [7276 0 R /XYZ 71.731 438.7821 null]
+>> endobj
+7301 0 obj <<
+/D [7276 0 R /XYZ 168.8063 427.7718 null]
+>> endobj
+7302 0 obj <<
+/D [7276 0 R /XYZ 71.731 400.7084 null]
+>> endobj
+7303 0 obj <<
+/D [7276 0 R /XYZ 71.731 384.2865 null]
+>> endobj
+7304 0 obj <<
+/D [7276 0 R /XYZ 71.731 353.3505 null]
+>> endobj
+7305 0 obj <<
+/D [7276 0 R /XYZ 181.5683 341.6946 null]
+>> endobj
+7306 0 obj <<
+/D [7276 0 R /XYZ 71.731 331.6324 null]
+>> endobj
+7307 0 obj <<
+/D [7276 0 R /XYZ 71.731 300.0608 null]
+>> endobj
+7308 0 obj <<
+/D [7276 0 R /XYZ 71.731 287.0994 null]
+>> endobj
+7309 0 obj <<
+/D [7276 0 R /XYZ 71.731 285.8541 null]
+>> endobj
+7310 0 obj <<
+/D [7276 0 R /XYZ 129.5143 266.7756 null]
+>> endobj
+7311 0 obj <<
+/D [7276 0 R /XYZ 129.5143 266.7756 null]
+>> endobj
+7312 0 obj <<
+/D [7276 0 R /XYZ 71.731 265.336 null]
+>> endobj
+7313 0 obj <<
+/D [7276 0 R /XYZ 71.731 265.336 null]
+>> endobj
+7314 0 obj <<
+/D [7276 0 R /XYZ 139.477 248.8428 null]
+>> endobj
+7315 0 obj <<
+/D [7276 0 R /XYZ 139.477 248.8428 null]
+>> endobj
+7316 0 obj <<
+/D [7276 0 R /XYZ 76.7123 230.9101 null]
+>> endobj
+7317 0 obj <<
+/D [7276 0 R /XYZ 129.5143 212.9773 null]
+>> endobj
+7318 0 obj <<
+/D [7276 0 R /XYZ 129.5143 212.9773 null]
+>> endobj
+7319 0 obj <<
+/D [7276 0 R /XYZ 71.731 210.8205 null]
+>> endobj
+7320 0 obj <<
+/D [7276 0 R /XYZ 71.731 210.8205 null]
+>> endobj
+7321 0 obj <<
+/D [7276 0 R /XYZ 139.477 195.0446 null]
+>> endobj
+7322 0 obj <<
+/D [7276 0 R /XYZ 71.731 192.8877 null]
+>> endobj
+7323 0 obj <<
+/D [7276 0 R /XYZ 139.477 177.1118 null]
+>> endobj
+7324 0 obj <<
+/D [7276 0 R /XYZ 76.7123 159.1791 null]
+>> endobj
+7325 0 obj <<
+/D [7276 0 R /XYZ 129.5143 141.2463 null]
+>> endobj
+7326 0 obj <<
+/D [7276 0 R /XYZ 129.5143 141.2463 null]
+>> endobj
+7327 0 obj <<
+/D [7276 0 R /XYZ 71.731 139.8656 null]
+>> endobj
+7328 0 obj <<
+/D [7276 0 R /XYZ 71.731 139.8656 null]
+>> endobj
+7329 0 obj <<
+/D [7276 0 R /XYZ 139.477 123.3136 null]
+>> endobj
+7330 0 obj <<
+/D [7276 0 R /XYZ 139.477 123.3136 null]
+>> endobj
+7331 0 obj <<
+/D [7276 0 R /XYZ 71.731 121.1567 null]
+>> endobj
+7332 0 obj <<
+/D [7276 0 R /XYZ 139.477 105.3808 null]
+>> endobj
+7333 0 obj <<
+/D [7276 0 R /XYZ 139.477 105.3808 null]
+>> endobj
+7275 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7336 0 obj <<
+/Length 1396      
+/Filter /FlateDecode
+>>
+stream
+xÚ\9dXÛr£8\10}ÏWøÑ®\8aµ\92@\òæ\99ÙK¶v²®\99ìÓfk
+\83\1cS\8bÁ\85Ädò÷Û\80\84\ 5\16\97ÚÊ\ 3\ e\1c©O\9fnu7\90\15\86?²ò      ò\1d¸Ð\10Q\8fÑU|¾Ã«Wxôë\1dQ\90­ÂlMÐ\87ç»\9f~qð*D¡G½Õóqå\84\1eb¾»ò\1d\8a\ 2F\82Õsò÷úã)ºH^n¶\94á5Eíu\9fE9\97\7fD\87ößÝþ±ýñ\99ËS\91\88Í?Ï¿ßýüÜÙg\8e\8fÂ\0\8cL\92ìP·4ihÐ$$D\8c\11\7fåù\f¹\9eßÐüÂeUæâahú
+f\fa×ñ¬¦;ÔÖ\84iÓ@ËǤoZÃjÛ/\94²\e»\94"Ç%Ôjwx½òЫ¬<\f     @ F\§Ï#Íå}\e\aÒ^Òc{\15U\1cs!\8eUVÓ\84½\80\9f\8f(an½Ù\96ùÈ\ f\1c\a~`D\1dÖnF\11Á¬\ e·\1f¬ÿº$\91äOEÂ\9f¸|ÛP¼.Ê\7fÕV&-×G\ 1Å b\9d\8a̾,d!ß/ü¡[\11À
+¯±­Ön)A\1e       \eüÀ\18i\8d5~¼`\86£J\9e\94\979`ò+æ[\9a\8c<xÁ\98ò,\11°\9eXho5\v\93ö'.â2½È´È§\88;pd<j2\17-\87(o¯|CØúG*d\9a¿^Ù©_W\8eê`íò\1aþÞþó}CÙ:Ê*½¥¸ð8m|IT|ói\7f\15\93R\99«\ 4×
+\15òÄË·T¨'       ?Ök£*\93Æ"ð\1aÒ\12\ e\aò\98ç4.Ö[hª\90S\17\19\1d2ng{,TÑ87EaÀ%9Å\17-\94z&d$ÓXíþ¨R·N\1cå¬0aÊ\ fpCi\90^Ô­×\rÐ\90¼fÓ\b\12½o<¶¾¿Q\Ý9\94E\94Ä\91\80£cñ\17ðçHhlG5É\85:bçJHõ0ËÔ\8eü\7f\86kÖõZ´«ã:x\97¨\8c@c^\8a{\9dràû÷:\91:q\8e\f\82÷\83ð¤¯yQÖ¡VË\1c\82X@ÚÊ°\7f\14\ 39$\8fOêÞ9RÉ[ä\99úU5ÇâF\7f½\89\10E\9c\ 2@íõ\96ÊSçbªR¨h¢iȧµÚ%ç4\1f\9a6\r\81jN^O\bª£|=\87ú¹\87<Ç÷Ìæ2S[\95\86Ã\93Ô\1d5´´ô첬uXkò¥È¸XX>£Z\11\92Þ_\ 3´Ôú¾\16¬K©ñ\86
+\8d\ 1º\ 5\9dk¨&l¢¡v°Ù\86j³» ¡Þðp\ 2CÈ®¡öxÔ½Æ"\eu\11®-Ô\90\a]\94Ê*ÖÝ·\e\87êõ<\87j\15ÕmÄDVmyí;¨)xÐ\86Ã0´\v«Q[\13v\15\96Ôs^Ï!\r\e\15\16\82\8f©\e\8e\v«WÝòè\vë\84Èõý>\8d\1dèÒ\8e\8a\16u\19\1c<\17¦Ð¡¾Ð?µ¾\16YÍ&#\8b®ß\8dg/\ 4Ñu\w.{\rØTöjØ|öZì.ÉÞ!\8f\91ì5yè6Ó\8eF\16¥!Õ\89\a§¾§ôu\88|êæ\14¸Ç˶®ÅúVRG i\1eå¸È\18¦#LfK\84\ 1\9b\12YÃæE¶Ø]"ò\90Ç\88È&\ fSäcÚ\f]·B\87!r¨%¥¡\10\8cV\ 1\12\ 40Y\ 6sUÀ\84MT\81\ e6[\ 5lv\17T\81\e\1eÖ*У¡d³½G`äºðú7^\ 2¾V\aX®ªl\92\94Ð\81Ç\95ô1´r\8fÌ)iÀ¦\94Ô°y%-v\97(9äaWÒ¤\91\8ao\972=Gå»­\9eú\bÃË]OËC\ 1\13E¤Ç\ 4=ÏAUUs\83Úlìðw£½<éÑT\8f\b0\8a|ì¸s\110`S\11аù\bXì.\89À\90\87=\ 2&\8dæ\85À>)`hzã\89ü¸ï'q;2\1e-qøôôU­çe;Ü\97ã\82;.ò}ìÍ nÀ¦\ 4×°yÁ-v\97\b>äa\17ܤq*\84ÌaFµU\ f\86\18\r§ªGý\1dáÏæÕ>Ê\9ao\ 2ÍÝß\8c-íªÂ;Aàø³%Ù\80M©ªaóªZì.QuÈîªIã\1cÅ\16AI\0\89N\82  A?ï6.^\7f\V\8f\ 1¢Ï¨h &DÔ¨Y\r-F\17H8$aUÐäpxËÒs*í=\8d¸¡;6l}\80\97é·4Ñï¾Ý.¦3ê+®\e x\15\ f'?ô\1a\98Ûï¼\8c\12\ 2¯Û©fDH0úÙÖbñ?\16z@9endstream
+endobj
+7335 0 obj <<
+/Type /Page
+/Contents 7336 0 R
+/Resources 7334 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 7274 0 R
+>> endobj
+7337 0 obj <<
+/D [7335 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+7338 0 obj <<
+/D [7335 0 R /XYZ 71.731 675.3674 null]
+>> endobj
+7339 0 obj <<
+/D [7335 0 R /XYZ 71.731 674.1221 null]
+>> endobj
+7340 0 obj <<
+/D [7335 0 R /XYZ 129.5143 655.0436 null]
+>> endobj
+899 0 obj <<
+/D [7335 0 R /XYZ 71.731 648.6227 null]
+>> endobj
+450 0 obj <<
+/D [7335 0 R /XYZ 293.326 604.8079 null]
+>> endobj
+7341 0 obj <<
+/D [7335 0 R /XYZ 71.731 581.3192 null]
+>> endobj
+7342 0 obj <<
+/D [7335 0 R /XYZ 161.0655 571.9312 null]
+>> endobj
+7343 0 obj <<
+/D [7335 0 R /XYZ 71.731 559.8118 null]
+>> endobj
+7344 0 obj <<
+/D [7335 0 R /XYZ 71.731 528.4459 null]
+>> endobj
+7345 0 obj <<
+/D [7335 0 R /XYZ 168.8063 517.4356 null]
+>> endobj
+7346 0 obj <<
+/D [7335 0 R /XYZ 71.731 490.3722 null]
+>> endobj
+7347 0 obj <<
+/D [7335 0 R /XYZ 71.731 424.0374 null]
+>> endobj
+7348 0 obj <<
+/D [7335 0 R /XYZ 71.731 397.5951 null]
+>> endobj
+7349 0 obj <<
+/D [7335 0 R /XYZ 71.731 364.8075 null]
+>> endobj
+7350 0 obj <<
+/D [7335 0 R /XYZ 181.5683 353.1517 null]
+>> endobj
+7351 0 obj <<
+/D [7335 0 R /XYZ 71.731 343.0895 null]
+>> endobj
+7352 0 obj <<
+/D [7335 0 R /XYZ 71.731 309.6663 null]
+>> endobj
+7353 0 obj <<
+/D [7335 0 R /XYZ 71.731 298.5565 null]
+>> endobj
+7354 0 obj <<
+/D [7335 0 R /XYZ 71.731 297.3112 null]
+>> endobj
+7355 0 obj <<
+/D [7335 0 R /XYZ 129.5143 278.2326 null]
+>> endobj
+7356 0 obj <<
+/D [7335 0 R /XYZ 129.5143 278.2326 null]
+>> endobj
+7357 0 obj <<
+/D [7335 0 R /XYZ 71.731 276.7931 null]
+>> endobj
+7358 0 obj <<
+/D [7335 0 R /XYZ 71.731 276.7931 null]
+>> endobj
+7359 0 obj <<
+/D [7335 0 R /XYZ 139.477 260.2999 null]
+>> endobj
+7360 0 obj <<
+/D [7335 0 R /XYZ 139.477 260.2999 null]
+>> endobj
+7361 0 obj <<
+/D [7335 0 R /XYZ 76.7123 242.3671 null]
+>> endobj
+7362 0 obj <<
+/D [7335 0 R /XYZ 129.5143 224.4344 null]
+>> endobj
+7363 0 obj <<
+/D [7335 0 R /XYZ 129.5143 224.4344 null]
+>> endobj
+7364 0 obj <<
+/D [7335 0 R /XYZ 71.731 222.9948 null]
+>> endobj
+7365 0 obj <<
+/D [7335 0 R /XYZ 129.5143 206.5016 null]
+>> endobj
+7366 0 obj <<
+/D [7335 0 R /XYZ 129.5143 206.5016 null]
+>> endobj
+7367 0 obj <<
+/D [7335 0 R /XYZ 71.731 205.3226 null]
+>> endobj
+7368 0 obj <<
+/D [7335 0 R /XYZ 71.731 205.3226 null]
+>> endobj
+7369 0 obj <<
+/D [7335 0 R /XYZ 139.477 188.5689 null]
+>> endobj
+7370 0 obj <<
+/D [7335 0 R /XYZ 139.477 188.5689 null]
+>> endobj
+7371 0 obj <<
+/D [7335 0 R /XYZ 71.731 186.412 null]
+>> endobj
+7372 0 obj <<
+/D [7335 0 R /XYZ 139.477 170.6361 null]
+>> endobj
+7373 0 obj <<
+/D [7335 0 R /XYZ 139.477 170.6361 null]
+>> endobj
+7374 0 obj <<
+/D [7335 0 R /XYZ 71.731 168.4793 null]
+>> endobj
+7375 0 obj <<
+/D [7335 0 R /XYZ 139.477 152.7034 null]
+>> endobj
+7376 0 obj <<
+/D [7335 0 R /XYZ 139.477 152.7034 null]
+>> endobj
+7377 0 obj <<
+/D [7335 0 R /XYZ 71.731 150.5465 null]
+>> endobj
+7378 0 obj <<
+/D [7335 0 R /XYZ 139.477 134.7706 null]
+>> endobj
+7379 0 obj <<
+/D [7335 0 R /XYZ 139.477 134.7706 null]
+>> endobj
+7380 0 obj <<
+/D [7335 0 R /XYZ 71.731 132.6138 null]
+>> endobj
+7381 0 obj <<
+/D [7335 0 R /XYZ 139.477 116.8379 null]
+>> endobj
+7382 0 obj <<
+/D [7335 0 R /XYZ 139.477 116.8379 null]
+>> endobj
+7383 0 obj <<
+/D [7335 0 R /XYZ 71.731 114.681 null]
+>> endobj
+7384 0 obj <<
+/D [7335 0 R /XYZ 139.477 98.9051 null]
+>> endobj
+7385 0 obj <<
+/D [7335 0 R /XYZ 139.477 98.9051 null]
+>> endobj
+7386 0 obj <<
+/D [7335 0 R /XYZ 71.731 97.4656 null]
+>> endobj
+7334 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F21 514 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7389 0 obj <<
+/Length 1377      
+/Filter /FlateDecode
+>>
+stream
+xÚ\9dXËr¤6\14Ýû+Ø\99®r+\92\90\90ðÎÉdRNe\9c®\19g\15§\\18°\9b2\86\ e\8fqùïsA\82\16Ýâ\91©^4\88#Ý£s\1f\A\1c\f\b\82\84\a\7f4@ÔçÔ\89Þ.°ó\ 2\8f~» \1a²Õ\98­    úùþâ§Ï\1ev\ 2\14øÔwî\9f\1d\11\17Ì\11\1eE\92\13éÜÇ\7f»¿ìÃC\9d\94\9b-åØ¥Hýï²0Oê?Â'u{³»U\17_\92z_ÄÕæ\9fûß/~½\1fìsO @\82\91Y\92\fKÄ|é9[\8aQ@     ·¢\b,Á   \ 3\94\0¼Ç<1l\86\ 6\8e@¤Ý(lfÀ\r°v7\ f\94òSv\ 4\8b)\v\1csÁÞîéÿ\91G?ë\9c\87'\1d ¢ú¬ãá\ 5\88 1¦ñT\16a\1c\85UÝré\88\1f½Àaó8\0#-ðZéZÕe\9a¿\©\9b»¤~ß\10ì\16å«\1a8®ÖÝ\86q\&Õ\99\13\ 6\0#FÀļ¼&lFÞ\ 1¶(¯Íî
+yÏxXå\1dÑxëÂТ­Ç\11¡\92Ì\88{£Ä\83\ 1\97ê®\1f0Ç       zA\1az¹á\1c&\87u\1a\91¢\1c\9e`7ÞG\87K\98\1d!(p\97\11\ 6\11=lÙ\11\16»k\1cqÊÃî\b\93\ 6\14\89·°zµx\82\81»\18\14\82iO|k\9e`ºö\82^Ä.#g\88\96d4`s2ö°e\19-v×ÈxÊÃ.£I#Î+jÑ\902\84q0W*nwã\92 ¢ôY#\93¨Èã°üP·\9fî¾õãå÷\rá.\14ýIÉ=\1fù\84\8a\rØ\9cä=lYr\8bÝ5\92\9fò°KnÒH\ f\16Á\89\87hÀÉÿ\10|R@"\91/\82Å\1alÀæ\ 4ìaË\ 2Zì®\11ð\94\87]@\93FýqH~(foÌXíV±\16ßôð\9d-\94W\8c\91`b±¼\1a°9\8d{زÆ\16»k4>åa×ؤñ\12ÖÉ{øa/¯2ðü\1f-\r\872}\e
+ÃË\86»`hC¹Ûõ\1dÊ`K\18I"\819t,\12\a¼3õ5©\9b2¯®ÏÔ! #'Âá½ V¯ô¨­        ;z%\10XyålµI¯P
+m\17¡V»Ó^égYy\18\ 5¡\7f\91æµ\16\99¨¿´¯¸M\14\81ÖÏM¦]\ 6ü\ 4\82N·sñ\96\v$¤çu\82R\8fûÝb\14\11ì·m·\90î_\87\18\1cqWĶÌb\ 2I\8aAº¶{\17¾*c»²¨\8b6\89®\87\19Ç\98Òs·\94\93*m\r\13\85M½×\eÊáÁc\1a?\16å㾨ê<|KÌ'\ f\18Ó$\8b«>/O(n{\8b&ÅOI\15\95é¡N\8b|\8e$\14gîS\93¤\8eÙðh_\9fNþÌ3\1dºõ~Ø\86"¦ýpH¢´\eÒ\9d]\9a[6¡\97\12Mg4ÖÛ\r³L§\fØ(mF\86\89Yò¬Û\98\8b&Ú'1ê2\bî\bâ\92(OïnÛ\99Ìwü¥Å\84['Ñ^\8fEa®.\14\ru]¨\8d¶È½\1ejwÐ/S\ fÏÒR\rU)È\86ÔµV©\ 5Æoi^)°Õ\8e^]¸¯mþ'msð±ñ¹{¥Wm\eæ"¿\1a±÷ݧ¢¨\1fó"\8f\92\ 4\ 2\8dû:YµX\83\14\ 4Þ¾\9eðÍ*²\90\15Ï]Qj²º2<ò\9eV       Z\e\827YVtå­\8f\87¯E\96TkS¦\93Os9¤ú¢uÝZó»Vа\84\\82\83öLé$RÀû\95Ò\85ÒiÂfJç\0[,\9d6»+Jç\19\8fñ\v­¯\98#\1e\99è\1aÎÛ®&êëìð\ 1¢\9d\9fäp"\vÛzb"\9b2\99ì\14\88\1f á\ 5K\1f\1cLØL§0À\16;\ 5\9bÝ\15\9dÂ\19\ fk§0¢q\ 3º|\99:\15sÈ<&Ø\Of\91Õ<\19×\85.pU2\1d½\9e\a\96\82÷\88\9a\8b]\8dZ\ eÝs£k"÷\84ÄDà\1a$,ïEÛù\ 13$°ðÆJC»0þ| ¤\9f\8eVÂQÐò\\88V\ 36\17­=l9Z-v×D«\85\87y¤ÒÑjÒ86PÇF$\8dÛ\0ìÞ\1aÓçÒ@ÂéB.å±\81\9a\11¦G-êb1ºB\16\v\89sUL\ e£\84üÜd}\8fóo\13f£fÆ\f@\93°þ\bÌ$´í~0û\9dØÀ\9c\7f&æÔCØ\93þ°RË\ eRsò«¯Åâ\7f\9aP-pendstream
+endobj
+7388 0 obj <<
+/Type /Page
+/Contents 7389 0 R
+/Resources 7387 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 7274 0 R
+>> endobj
+7390 0 obj <<
+/D [7388 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+7391 0 obj <<
+/D [7388 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+7392 0 obj <<
+/D [7388 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+7393 0 obj <<
+/D [7388 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+7394 0 obj <<
+/D [7388 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+7395 0 obj <<
+/D [7388 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+7396 0 obj <<
+/D [7388 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+7397 0 obj <<
+/D [7388 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+7398 0 obj <<
+/D [7388 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+7399 0 obj <<
+/D [7388 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+7400 0 obj <<
+/D [7388 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+7401 0 obj <<
+/D [7388 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+7402 0 obj <<
+/D [7388 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+7403 0 obj <<
+/D [7388 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+7404 0 obj <<
+/D [7388 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+7405 0 obj <<
+/D [7388 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+7406 0 obj <<
+/D [7388 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+7407 0 obj <<
+/D [7388 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+7408 0 obj <<
+/D [7388 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+7409 0 obj <<
+/D [7388 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+7410 0 obj <<
+/D [7388 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+7411 0 obj <<
+/D [7388 0 R /XYZ 71.731 562.8892 null]
+>> endobj
+7412 0 obj <<
+/D [7388 0 R /XYZ 71.731 549.8382 null]
+>> endobj
+7413 0 obj <<
+/D [7388 0 R /XYZ 71.731 548.5928 null]
+>> endobj
+7414 0 obj <<
+/D [7388 0 R /XYZ 129.5143 529.5143 null]
+>> endobj
+900 0 obj <<
+/D [7388 0 R /XYZ 71.731 523.0934 null]
+>> endobj
+454 0 obj <<
+/D [7388 0 R /XYZ 225.7561 479.2787 null]
+>> endobj
+7415 0 obj <<
+/D [7388 0 R /XYZ 71.731 455.7899 null]
+>> endobj
+7416 0 obj <<
+/D [7388 0 R /XYZ 161.0655 446.402 null]
+>> endobj
+7417 0 obj <<
+/D [7388 0 R /XYZ 71.731 434.2825 null]
+>> endobj
+7418 0 obj <<
+/D [7388 0 R /XYZ 71.731 402.9166 null]
+>> endobj
+7419 0 obj <<
+/D [7388 0 R /XYZ 168.8063 391.9063 null]
+>> endobj
+7420 0 obj <<
+/D [7388 0 R /XYZ 71.731 364.8429 null]
+>> endobj
+7421 0 obj <<
+/D [7388 0 R /XYZ 71.731 333.477 null]
+>> endobj
+7422 0 obj <<
+/D [7388 0 R /XYZ 71.731 307.0347 null]
+>> endobj
+7423 0 obj <<
+/D [7388 0 R /XYZ 71.731 274.2471 null]
+>> endobj
+7424 0 obj <<
+/D [7388 0 R /XYZ 181.5683 262.5913 null]
+>> endobj
+7425 0 obj <<
+/D [7388 0 R /XYZ 71.731 252.5291 null]
+>> endobj
+7426 0 obj <<
+/D [7388 0 R /XYZ 71.731 219.1059 null]
+>> endobj
+7427 0 obj <<
+/D [7388 0 R /XYZ 71.731 207.9961 null]
+>> endobj
+7428 0 obj <<
+/D [7388 0 R /XYZ 71.731 206.7508 null]
+>> endobj
+7429 0 obj <<
+/D [7388 0 R /XYZ 129.5143 187.6722 null]
+>> endobj
+7430 0 obj <<
+/D [7388 0 R /XYZ 129.5143 187.6722 null]
+>> endobj
+7431 0 obj <<
+/D [7388 0 R /XYZ 71.731 186.2327 null]
+>> endobj
+7432 0 obj <<
+/D [7388 0 R /XYZ 71.731 186.2327 null]
+>> endobj
+7433 0 obj <<
+/D [7388 0 R /XYZ 139.477 169.7395 null]
+>> endobj
+7434 0 obj <<
+/D [7388 0 R /XYZ 139.477 169.7395 null]
+>> endobj
+7435 0 obj <<
+/D [7388 0 R /XYZ 76.7123 151.8067 null]
+>> endobj
+7436 0 obj <<
+/D [7388 0 R /XYZ 129.5143 133.874 null]
+>> endobj
+7437 0 obj <<
+/D [7388 0 R /XYZ 129.5143 133.874 null]
+>> endobj
+7438 0 obj <<
+/D [7388 0 R /XYZ 71.731 131.7171 null]
+>> endobj
+7439 0 obj <<
+/D [7388 0 R /XYZ 71.731 131.7171 null]
+>> endobj
+7440 0 obj <<
+/D [7388 0 R /XYZ 139.477 115.9412 null]
+>> endobj
+7441 0 obj <<
+/D [7388 0 R /XYZ 71.731 114.5017 null]
+>> endobj
+7442 0 obj <<
+/D [7388 0 R /XYZ 139.477 98.0085 null]
+>> endobj
+7387 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7445 0 obj <<
+/Length 1263      
+/Filter /FlateDecode
+>>
+stream
+xÚ¥\98ßs£6\10ÇßóWðèÌ\9c\96È[.×ë´Ó»ÉdrOM'Cl\123\87Á5p©ÿû.HÂ2\96\81¹N\1e\80xÑ~õÙÕj\ 5\89\91H\11¤\18\h\8c¨\144Zm¯pô\ 6?ývE¬ÉÒÚ,}£\8f\8fW¿|f8\8aQ,©\8c\1e_#\16K$\14\8f\14£H\v¢£Çõ_\8b»M²«Óýõ\92
+¼ È\ïó¤Hë?\93\17óx{ÿ»¹ù\92Ö\9br]]ÿýøÇÕ¯\8f½\7fÁ\14\8a58\19\15É\89F\9cá8Z2\rþ9\vZ\11\12#!\88\8a\96\88\13°w\93¡q\ 4~\14&ídz»Þ¬\9dÍ\13¥b¨\8eP\8a\18'4ò\at~\87×£\ e÷Ö¹\ e¦#\rP%ïtÀ\94\ 5\81É\9cè(Êuúü\9a¥¹\81Õi?\ 6B\12$¥Vਵ½1l«z߬êsñnxE\11W:\8c¶·ZúfGh¤Í\8e\13±Îì"4È\11Ly\1cô{\19\9a{ë\Ç)4\16ïêTÆ\8ft_ee\11àÅ1"<æg¼²âí\83ÍÐÝ.Ù§Em\9e>\96¥½»ûd®?®\89X\1cÇ\ f\13\16\1c .ø\14aÏl\8c°3\9b&\1cð;\87ðPG\98°/ã\ 5¸<WuR§\ 1ÈB"ªµ\1e\81|ÄÚ\8f\11\ 6É$\92\84ª)\90\9eÙ\18Hg6\r2àw\ eÈ¡\8e0H_Ʀ¬ê"Ù\860r\81\ 4\8dé\bÆÏM\9e\1fÌí?M\92gO\18Ótmþá\ f\1cf\vETª8\9e\99\8d±ufÓl\ 3~ç°\1dê\b³õetIZ\94Åêç\92ô        \v|»Þf\85y,\8bü\0ÿ"æé!)ÖåÖ\95\ 4*\16IÞ¤æñ--Ò=dµ\rÄ\8b\8dP½±¿·\15ÝÜ%v\11äIeïZÉ\97#\861R\M\16nÏl,bÎl:b\ 1¿s"6Ô\11\8e\98/£J«\9f.Ü£áúÚ3w.\ 6\91»Ä\hèp\b\9f*å¾Ù\bóÞl\92yÈï\fæg:\82ÌOd|O\ f\ 1ÞÐ\131\ 5\8aÿ7ïï×\ 4/ÒvÓ<\\86,9Ò\9aL\95yßl\f²3\9b\86\1cð;\aòPG\18²/c\v\0fÐÌt¬F0\7fI,AS1
+[UÌ\80\86üë À$«\1av\ 3k\97¬6YÑå7ôÍà\8d\b\98\0F\1aÇ¢óù\90Ö;¨nΠ¹®\98Ç\fI\ e\95r¼ÇöÍFzìÞl²Ç\ eù\9dÑc\87txií\92äDGVÔ\96¶MßÌ"­\9aÕ
+êÅkãb\aú\14¢Dt\91^
+\85\94\ 3J\99\90Ý`\14\11¬ÚÓ\8fÒ\8bo»5l\ 4÷wßB\15M!M1\90kÏPJ\9a<¹ß\97uY\1fvéMÿÆ1³ì»K
+M?Ñf\8f;zè\17eÒÔ\e;\9dݪyÎÖÞC×!ÀQ¢[©ç\9a\96Î\85¯éSZ­öÙ®\86ª9¦
\1a!©¯ª\1aä%4ÖÐ\90À\11±:MÜÄ\96\90®Jü\9bU5d¿==ºy½gõf0Z_»íh®\10ùÓD]Þc\10G\90ÐÄ\ 4èkY,\93¶pUn\89\1c\8e%ÌÜ5\9dþ^Cuº]\83\84Ì\1e\f¦Ù{!ÐØ1%ýu5\91V64¯í\12O\9a¼vdÀÅþ=«R47H·y^¶@Þ]ÛñPæi57\8b:\1c.M2{S§«Í\÷÷mèúð^.&D2ÄåÔyݳ\1a)%Îj²\92\ 4\9cÎ($C\11ᳺ/¢]x¡\1aÏ\11\13ú\87Á7\91ö}8yf«¤î;\14cÙì/w(¤='0Ì&6OßldóìÍ&7Ï\90ß\19\9bç\99\8eàæy"ã\16¸\98ïEá>^r5z¢\ f\9aáL\9e\97vÑWéå¼Å1\ 2\89j*q=³±ÌufÓ©\eð;'w\87:.$¯¯Ãì\15\ 1ÂL Bõà\1czÜ2û\1a\9d­[Ê]éÝ\ f'd?+r\r\8cG¿<z6ç\1f\1e\ 5e\b3-û\91ZI\84â\8bß\11\ 3\1eÿ\ 3\82\97Æ=endstream
+endobj
+7444 0 obj <<
+/Type /Page
+/Contents 7445 0 R
+/Resources 7443 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 7274 0 R
+>> endobj
+7446 0 obj <<
+/D [7444 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+7447 0 obj <<
+/D [7444 0 R /XYZ 76.7123 708.3437 null]
+>> endobj
+7448 0 obj <<
+/D [7444 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+7449 0 obj <<
+/D [7444 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+7450 0 obj <<
+/D [7444 0 R /XYZ 71.731 689.2319 null]
+>> endobj
+7451 0 obj <<
+/D [7444 0 R /XYZ 71.731 689.2319 null]
+>> endobj
+7452 0 obj <<
+/D [7444 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+7453 0 obj <<
+/D [7444 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+7454 0 obj <<
+/D [7444 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+7455 0 obj <<
+/D [7444 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+7456 0 obj <<
+/D [7444 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+7457 0 obj <<
+/D [7444 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+7458 0 obj <<
+/D [7444 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+7459 0 obj <<
+/D [7444 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+7460 0 obj <<
+/D [7444 0 R /XYZ 71.731 634.4559 null]
+>> endobj
+7461 0 obj <<
+/D [7444 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+7462 0 obj <<
+/D [7444 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+7463 0 obj <<
+/D [7444 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+7464 0 obj <<
+/D [7444 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+7465 0 obj <<
+/D [7444 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+7466 0 obj <<
+/D [7444 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+7467 0 obj <<
+/D [7444 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+7468 0 obj <<
+/D [7444 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+7469 0 obj <<
+/D [7444 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+7470 0 obj <<
+/D [7444 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+7471 0 obj <<
+/D [7444 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+7472 0 obj <<
+/D [7444 0 R /XYZ 71.731 527.0236 null]
+>> endobj
+7473 0 obj <<
+/D [7444 0 R /XYZ 71.731 513.9727 null]
+>> endobj
+7474 0 obj <<
+/D [7444 0 R /XYZ 71.731 512.7273 null]
+>> endobj
+7475 0 obj <<
+/D [7444 0 R /XYZ 129.5143 493.6488 null]
+>> endobj
+901 0 obj <<
+/D [7444 0 R /XYZ 71.731 487.2279 null]
+>> endobj
+458 0 obj <<
+/D [7444 0 R /XYZ 219.0592 443.4132 null]
+>> endobj
+7476 0 obj <<
+/D [7444 0 R /XYZ 71.731 419.9244 null]
+>> endobj
+7477 0 obj <<
+/D [7444 0 R /XYZ 161.0655 410.5365 null]
+>> endobj
+7478 0 obj <<
+/D [7444 0 R /XYZ 71.731 398.417 null]
+>> endobj
+7479 0 obj <<
+/D [7444 0 R /XYZ 71.731 367.0511 null]
+>> endobj
+7480 0 obj <<
+/D [7444 0 R /XYZ 168.8063 356.0408 null]
+>> endobj
+7481 0 obj <<
+/D [7444 0 R /XYZ 71.731 328.9774 null]
+>> endobj
+7482 0 obj <<
+/D [7444 0 R /XYZ 71.731 297.6115 null]
+>> endobj
+7483 0 obj <<
+/D [7444 0 R /XYZ 71.731 280.9739 null]
+>> endobj
+7484 0 obj <<
+/D [7444 0 R /XYZ 71.731 250.0379 null]
+>> endobj
+7485 0 obj <<
+/D [7444 0 R /XYZ 181.5683 238.3821 null]
+>> endobj
+7486 0 obj <<
+/D [7444 0 R /XYZ 71.731 228.3199 null]
+>> endobj
+7487 0 obj <<
+/D [7444 0 R /XYZ 71.731 194.8967 null]
+>> endobj
+7488 0 obj <<
+/D [7444 0 R /XYZ 71.731 183.7869 null]
+>> endobj
+7489 0 obj <<
+/D [7444 0 R /XYZ 71.731 182.5415 null]
+>> endobj
+7490 0 obj <<
+/D [7444 0 R /XYZ 129.5143 163.463 null]
+>> endobj
+7491 0 obj <<
+/D [7444 0 R /XYZ 129.5143 163.463 null]
+>> endobj
+7492 0 obj <<
+/D [7444 0 R /XYZ 71.731 162.0235 null]
+>> endobj
+7493 0 obj <<
+/D [7444 0 R /XYZ 71.731 162.0235 null]
+>> endobj
+7494 0 obj <<
+/D [7444 0 R /XYZ 139.477 145.5303 null]
+>> endobj
+7495 0 obj <<
+/D [7444 0 R /XYZ 139.477 145.5303 null]
+>> endobj
+7496 0 obj <<
+/D [7444 0 R /XYZ 76.7123 127.5975 null]
+>> endobj
+7497 0 obj <<
+/D [7444 0 R /XYZ 129.5143 109.6647 null]
+>> endobj
+7498 0 obj <<
+/D [7444 0 R /XYZ 129.5143 109.6647 null]
+>> endobj
+7499 0 obj <<
+/D [7444 0 R /XYZ 71.731 108.2252 null]
+>> endobj
+7443 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7502 0 obj <<
+/Length 1266      
+/Filter /FlateDecode
+>>
+stream
+xÚ­\98]\8f\9b8\14\86ïçWp9\91\1a×666s×í~¨«V\eUÓ«\9dÕ\88\12g\82Ä\0\ 2£Qÿý\1e\82M\1câ`´]ÍE\98äµÏËÃ9æØ$ÂðG"A\90\88á\83¦\88&\9cFùë\1d\8e^à§?î\88\91l\8d\8a~y¼{ÿ{\8c£\14¥      M¢ÇC\14§  â\82E"¦Hr"£Çýß÷\1f\8fY£U»ÙR\8eï)\1a?weV)ý9û>þûa÷i¼ø¢ô±Þw\9b\7f\1eÿ¼ûíq\8aÏc\81R     A\16M2"\11\8bq\1am)F)%Ü«"$E\9c\13\ 17\83%\8aY,¦\9b¡i\ 4q\ 4&ÃÍLºI6ÜÍ\13¥|î\8eP
+\ 2B#wB\ewþyöaG]û\88e$\ 1jÂN>à\969añ¥\8f\9f\ f\85*GV'ëççÀ\13D¥L!Π}\18Ñvºís}íÝÌ\9e¤\181\ 2ð¼Ì¬jëÊÎÌÈ\90\1c®×Iv\93\19¤\b¦,õƽÍÌ\8eºöqÉ,N\11\13âÒFß©¶Ê^\95\a\18ã\88Ó\94^\ 1\97w&a?~\e/ÜYü \ 5\85Ø\92\86@:²%\90V\16\ 6é\89»\ 6äÜ\87\1f¤k£ik]çuùs í,æ{\85^ÌÚÐuGóÝQë¦3×Z\95°bܦÎ\19â\8c³\10uG¶DÝÊÂÔ=q×P\9fûðSwmTõ^=\17Þz÷RÏÚ6û±Iø½\ 1ø¹èôxU\1fÆÏaÆÎÐ=fÚ^\15ÝìIåu¥Ûºì®!\18\9bq\82\12B\85\9f½\11m]\95\aý|®\9bä\19\81W\81H¼Qo\93·£¼6Î$  \ 3\eð\1a»ôQT\v\89\871\12L\ 4ËÝ\91-%\9e\95\85\13Ï\13wMâÍ}ø\13ϵQ4\9e\94#1¢)'k
+ýÓÎ$ä~ߪ®»I\92\1a\b\v\95°+[ 9É\82$}qW\90¼òá%ya£ªµòÕ/x\8ee*\16`~)º\\95CÓT÷\9d­^3\99\1f\90\94D\84`:²%\98V\16\86é\89»\ 6æÜ\87\1f¦kãXwúç_çî,~\90,A)\93¡¾È\95-\81´²0HOÜ5 ç>ü ]\e¯ð\1a(ÿSVN\14Ç)\1cÁm\9cp\81I\12Z.]Ù\12N+\vãôÄ]\83sîÃ\8fÓµÑd]÷V·{\7f^J)äÿÒfrB\10\96qpµtdK ­,\fÒ\13w\rȹ\ f?H×FS·zõj\19îvôQ\99Æ\13æ5Khÿú]µW-\90Êòã¹C\1a¯lS\ 4½P¥r­öfP}«)bi\8c\bÇ\81¦ÈUÝn\8a&U°)òE]Ñ\14ùlx\9a¢\v\1f¦)\82Ív:dõÐ[Hh\1aèX\ 5_\95îÛª{¸rjwÕ\fÇ\10<´EwT\v;t«
+nÐ=AWìÏ=&\1c\84\\13ÀÆä!1éc\92°ëó\1cz Co\17\0'\10%üT\ 6[.\90\90ñP¶\18Ñ\98'§É("°ó\87ñBÞ\7f\99V»M\fYªZß\12#\90¤ð\84¶Ã\11\8cHÆGµ\e¶ZúG£\1e¦\11çÚ3c·\94@Ãk^     &\8c²Ç6O\98ã¬×v_ÖÀ\ f°\15y®Ûça\8dr¿}Â\98\ e§\120\82xìmm4×Þ¯ªËÛ¢ÑE]-\19\84\8e\9c'Ô5hj2;Çßp~o¶\91\7f\8fYå[sæY4*/N_\99b.*Ï\8dØåÅLÑ\9f\ 2ïÍ-g¥yëÕ\10£õ\ 5\99\ 6\96ê`\96\97¾Òu\9f\1fÕ\1e\9dê\aCªÁ^#\16\89[8\81ì1ñ\ f\e\ 2!úRw\8e\8d·¢Sh-û\ feYo(¿\7f³\10¾Ö¥êÖæI¶\7f\ 5h+Cí6\84\ 3\ fH\18\r\8bîí\95\81`\ e\v<\96\81¥Á\95\r\93,¸8øâ®X\1d®|øOï.|\fµä{³1h#|§vïfǤÃxUé"Ï\86¢q\95}{Õ2\98³[&a#\92¤\8bÇ»\8eæút\97Ó\18áX&ÓL\83MBÉÍÃZOÄ\7f\ 1Fb\ 5Óendstream
+endobj
+7501 0 obj <<
+/Type /Page
+/Contents 7502 0 R
+/Resources 7500 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 7274 0 R
+>> endobj
+7503 0 obj <<
+/D [7501 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+7504 0 obj <<
+/D [7501 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+7505 0 obj <<
+/D [7501 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+7506 0 obj <<
+/D [7501 0 R /XYZ 71.731 706.9629 null]
+>> endobj
+7507 0 obj <<
+/D [7501 0 R /XYZ 71.731 706.9629 null]
+>> endobj
+7508 0 obj <<
+/D [7501 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+7509 0 obj <<
+/D [7501 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+7510 0 obj <<
+/D [7501 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+7511 0 obj <<
+/D [7501 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+7512 0 obj <<
+/D [7501 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+7513 0 obj <<
+/D [7501 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+7514 0 obj <<
+/D [7501 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+7515 0 obj <<
+/D [7501 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+7516 0 obj <<
+/D [7501 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+7517 0 obj <<
+/D [7501 0 R /XYZ 71.731 652.3886 null]
+>> endobj
+7518 0 obj <<
+/D [7501 0 R /XYZ 149.4396 636.6127 null]
+>> endobj
+7519 0 obj <<
+/D [7501 0 R /XYZ 76.7123 618.6799 null]
+>> endobj
+7520 0 obj <<
+/D [7501 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+7521 0 obj <<
+/D [7501 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+7522 0 obj <<
+/D [7501 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+7523 0 obj <<
+/D [7501 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+7524 0 obj <<
+/D [7501 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+7525 0 obj <<
+/D [7501 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+7526 0 obj <<
+/D [7501 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+7527 0 obj <<
+/D [7501 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+7528 0 obj <<
+/D [7501 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+7529 0 obj <<
+/D [7501 0 R /XYZ 139.477 546.9489 null]
+>> endobj
+7530 0 obj <<
+/D [7501 0 R /XYZ 139.477 546.9489 null]
+>> endobj
+7531 0 obj <<
+/D [7501 0 R /XYZ 71.731 544.7921 null]
+>> endobj
+7532 0 obj <<
+/D [7501 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+7533 0 obj <<
+/D [7501 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+7534 0 obj <<
+/D [7501 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+7535 0 obj <<
+/D [7501 0 R /XYZ 139.477 511.0834 null]
+>> endobj
+7536 0 obj <<
+/D [7501 0 R /XYZ 139.477 511.0834 null]
+>> endobj
+7537 0 obj <<
+/D [7501 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+7538 0 obj <<
+/D [7501 0 R /XYZ 71.731 508.9266 null]
+>> endobj
+7539 0 obj <<
+/D [7501 0 R /XYZ 149.4396 493.1507 null]
+>> endobj
+7540 0 obj <<
+/D [7501 0 R /XYZ 71.731 437.3599 null]
+>> endobj
+7541 0 obj <<
+/D [7501 0 R /XYZ 71.731 424.3089 null]
+>> endobj
+7542 0 obj <<
+/D [7501 0 R /XYZ 71.731 423.0636 null]
+>> endobj
+7543 0 obj <<
+/D [7501 0 R /XYZ 129.5143 403.985 null]
+>> endobj
+902 0 obj <<
+/D [7501 0 R /XYZ 71.731 397.5642 null]
+>> endobj
+462 0 obj <<
+/D [7501 0 R /XYZ 219.5239 353.7494 null]
+>> endobj
+7544 0 obj <<
+/D [7501 0 R /XYZ 71.731 330.2606 null]
+>> endobj
+7545 0 obj <<
+/D [7501 0 R /XYZ 161.0655 320.8727 null]
+>> endobj
+7546 0 obj <<
+/D [7501 0 R /XYZ 71.731 308.7532 null]
+>> endobj
+7547 0 obj <<
+/D [7501 0 R /XYZ 71.731 277.3873 null]
+>> endobj
+7548 0 obj <<
+/D [7501 0 R /XYZ 168.8063 266.3771 null]
+>> endobj
+7549 0 obj <<
+/D [7501 0 R /XYZ 71.731 239.3136 null]
+>> endobj
+7550 0 obj <<
+/D [7501 0 R /XYZ 71.731 222.8917 null]
+>> endobj
+7551 0 obj <<
+/D [7501 0 R /XYZ 71.731 191.9557 null]
+>> endobj
+7552 0 obj <<
+/D [7501 0 R /XYZ 181.5683 180.2999 null]
+>> endobj
+7553 0 obj <<
+/D [7501 0 R /XYZ 71.731 170.2377 null]
+>> endobj
+7554 0 obj <<
+/D [7501 0 R /XYZ 71.731 138.6661 null]
+>> endobj
+7555 0 obj <<
+/D [7501 0 R /XYZ 71.731 125.7047 null]
+>> endobj
+7556 0 obj <<
+/D [7501 0 R /XYZ 71.731 124.4593 null]
+>> endobj
+7557 0 obj <<
+/D [7501 0 R /XYZ 129.5143 105.3808 null]
+>> endobj
+7558 0 obj <<
+/D [7501 0 R /XYZ 129.5143 105.3808 null]
+>> endobj
+7559 0 obj <<
+/D [7501 0 R /XYZ 71.731 103.9413 null]
+>> endobj
+7560 0 obj <<
+/D [7501 0 R /XYZ 71.731 103.9413 null]
+>> endobj
+7500 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7563 0 obj <<
+/Length 1229      
+/Filter /FlateDecode
+>>
+stream
+xÚÅXËnã6\14Ýç+´´\81\98%)¾\94
+¦HQ#\93¬\9a"ÐÈôX\18E2ôè \7fß+\89\94i\9bz ]\14YX±\ fyÏ=¼/\8a\ 4\18þH    \92!|Ð\bQÁi\90¼ßàà+üôpC\fdc0\e\17ôãóÍ\ f¿\868\88P$¨\b\9e÷A\18       Ä%\vdH\91âD\ 5Ï»?W?\1dâc­Ëõ\86r¼¢¨ÿÜfq®ëÇøKÿïýöSÿð»®\ fÅ®ZÿõüÛÍ/Ï\83}\1eJ\14)02I\92a\85\98Pa°¡\18E\94p/\8aÀ\16\9c0@IÀ\87,\94\8334
+$"­£àÌ\80\e`­7¯\94òKv\ 4ÜÅ\94E\81»¡µ{ùyâaW]ó\bU @TÁ:\1ea\84\98\94ç4î\9búÐkÕ\92é\98\9f\8e\81\v$\18\1c\ 3î w½²U]¦ù×[£7,×y\9d&q\9d\16yÿÝ{¿]÷\\17ýgSé+g   ÈÂ\89\f\84¤ÀKù\8fb@m\ØIäHâ^ä«ÝFE¦\14Ü'Ôkw\d»ê\9aǹÈö°Ïx\1cµ.ßÒÝ[Q¾åñ»öH­BD\94:W:Íëþ¡(]é¯\1d²&9C\9cq6\13­.l"Z\aØl´úì.\88V\1f\8f\93 6ZÏh\80"&ð¶ÚV\82\ 6à+Æ\14¾\19\95&\84P&TÎIãÀ¦¤±°yi<v\97Hãáá\91Æ¥q\96\96'ul¸ù3\ fc$\99\9cÍ<\a6\95y\166\9fy\1e»K2ï\92ÇHæ¹<ºÌÛ§:ë{Á\85\92\82 !\94¼*pMR\8f\86\12\93\b\9bË2\176\11J\ 3l6\94|v\17\84Ò\15\ foO8£ñM\7f\82c\ e%0\1eo\ 6§¨{Ø>ô\ fÇæK\96&ýó·5Á+½&|õ1.®`H)2\97§.lJ\\v\9b\17×cw\89¸\97<üâº4\928ÑeíÑ7dH\8aH,Ò÷óçÇk}Û}»:\bÍX\8f\ 4\8a\98\8aæ\14v`S
+[ؼÂ\1e»K\14¾äáWإѦüH\97e\1cq\1aÑE\1a{+çà7<`"è\9c\8a\ elJE\v\9bWÑcw\89\8a\97<ü*º4ºÂÙ\94Ù\7fTq\18È_\9e\1eÛ­Ú¶\8f \9d\85\91Â\11ï6yÒuSæÕÝh«b\"©Âp¦U¹°\89V5Àf[\95Ïî\82Våãá\94R{ðg<NÃ\r1\93ÍÞHÛ$\89®ª}c\ f\ 3øI\ 4×\92îô6v\8fVP\1arÑmF\11ÁQ{G\92jõrÜAEØ®C(¿e[\7f+\18Õ=Ç*\91¢\18Dl/]Rôåj[\16uQ\7f\1cõÝ°â\148fí\86B\e%&û\8c1]Vö>ð\8a9\8eá\9e`\9c;v?\99iX¿ÇivþC7ÉA»\86eÄÃrc\8dº,\7fÖUR¦Çö\ e\13æ%.¨Ë³êMÇ.\ 3s³ü#Ï>Ì%æ ­'=5s,G\9dôsçÎÎë^G\8c\89ÒlÒt\86wÆé8ËÌ\8c\ fVJ\9f\99aa¦÷æ>ÐäuÑ$\a½C]Jað\8c ®H\7fô/\15Ø7ks{\ fÓÉÁ|\97Ä\86f18ØS\1a\9c}¯töw\e'º²·ìOÿfñ\ 5\aÇüÈ7Ã\9eq=,NíE'­[ÛÆ9\ 2cn(\85[(fòÄ\88»o'\8e¸ÉêÊað=­4Z\1aX÷YV¬)_}·güTdºZ\9a\vñî=Ímt§·ÃU¸\3¼º=\9dÌR6ÛV׸\84ÆTÃ\11\8f\17\13 \1eI>S,]ØD±\1c`³ÅÒgwA±¼âá\9fëÏx´\ 5Å#\eeÐÁ|ãüíE;\8a=/.zdS\8e·ý¶¦\ 2­¹ñÔ\85M´ý\ 16Ûö}v\17´ý+\1eÞ¶\7fFãÿ{\1f\f2\ 5\17\11\11M¾<t0×ï\ e9\r\11\ e\95\18vj¹B°\8d¾
+ôXü\a¥é¼jendstream
+endobj
+7562 0 obj <<
+/Type /Page
+/Contents 7563 0 R
+/Resources 7561 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 7615 0 R
+>> endobj
+7564 0 obj <<
+/D [7562 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+7565 0 obj <<
+/D [7562 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+7566 0 obj <<
+/D [7562 0 R /XYZ 139.477 708.3437 null]
+>> endobj
+7567 0 obj <<
+/D [7562 0 R /XYZ 76.7123 690.4109 null]
+>> endobj
+7568 0 obj <<
+/D [7562 0 R /XYZ 129.5143 672.4782 null]
+>> endobj
+7569 0 obj <<
+/D [7562 0 R /XYZ 129.5143 672.4782 null]
+>> endobj
+7570 0 obj <<
+/D [7562 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+7571 0 obj <<
+/D [7562 0 R /XYZ 71.731 670.3214 null]
+>> endobj
+7572 0 obj <<
+/D [7562 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+7573 0 obj <<
+/D [7562 0 R /XYZ 71.731 653.1059 null]
+>> endobj
+7574 0 obj <<
+/D [7562 0 R /XYZ 139.477 636.6127 null]
+>> endobj
+7575 0 obj <<
+/D [7562 0 R /XYZ 76.7123 618.6799 null]
+>> endobj
+7576 0 obj <<
+/D [7562 0 R /XYZ 129.5143 600.7472 null]
+>> endobj
+7577 0 obj <<
+/D [7562 0 R /XYZ 129.5143 600.7472 null]
+>> endobj
+7578 0 obj <<
+/D [7562 0 R /XYZ 71.731 599.3664 null]
+>> endobj
+7579 0 obj <<
+/D [7562 0 R /XYZ 71.731 599.3664 null]
+>> endobj
+7580 0 obj <<
+/D [7562 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+7581 0 obj <<
+/D [7562 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+7582 0 obj <<
+/D [7562 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+7583 0 obj <<
+/D [7562 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+7584 0 obj <<
+/D [7562 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+7585 0 obj <<
+/D [7562 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+7586 0 obj <<
+/D [7562 0 R /XYZ 139.477 546.9489 null]
+>> endobj
+7587 0 obj <<
+/D [7562 0 R /XYZ 139.477 546.9489 null]
+>> endobj
+7588 0 obj <<
+/D [7562 0 R /XYZ 71.731 544.7921 null]
+>> endobj
+7589 0 obj <<
+/D [7562 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+7590 0 obj <<
+/D [7562 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+7591 0 obj <<
+/D [7562 0 R /XYZ 71.731 491.1581 null]
+>> endobj
+7592 0 obj <<
+/D [7562 0 R /XYZ 71.731 478.1072 null]
+>> endobj
+7593 0 obj <<
+/D [7562 0 R /XYZ 71.731 476.8618 null]
+>> endobj
+7594 0 obj <<
+/D [7562 0 R /XYZ 129.5143 457.7833 null]
+>> endobj
+903 0 obj <<
+/D [7562 0 R /XYZ 71.731 451.3624 null]
+>> endobj
+466 0 obj <<
+/D [7562 0 R /XYZ 240.303 407.5477 null]
+>> endobj
+7595 0 obj <<
+/D [7562 0 R /XYZ 71.731 384.0589 null]
+>> endobj
+7596 0 obj <<
+/D [7562 0 R /XYZ 161.0655 374.671 null]
+>> endobj
+7597 0 obj <<
+/D [7562 0 R /XYZ 71.731 362.5515 null]
+>> endobj
+7598 0 obj <<
+/D [7562 0 R /XYZ 71.731 331.1856 null]
+>> endobj
+7599 0 obj <<
+/D [7562 0 R /XYZ 168.8063 320.1753 null]
+>> endobj
+7600 0 obj <<
+/D [7562 0 R /XYZ 71.731 293.1119 null]
+>> endobj
+7601 0 obj <<
+/D [7562 0 R /XYZ 71.731 261.746 null]
+>> endobj
+7602 0 obj <<
+/D [7562 0 R /XYZ 71.731 245.1084 null]
+>> endobj
+7603 0 obj <<
+/D [7562 0 R /XYZ 71.731 214.1724 null]
+>> endobj
+7604 0 obj <<
+/D [7562 0 R /XYZ 181.5683 202.5165 null]
+>> endobj
+7605 0 obj <<
+/D [7562 0 R /XYZ 71.731 192.4544 null]
+>> endobj
+7606 0 obj <<
+/D [7562 0 R /XYZ 71.731 159.0312 null]
+>> endobj
+7607 0 obj <<
+/D [7562 0 R /XYZ 71.731 147.9214 null]
+>> endobj
+7608 0 obj <<
+/D [7562 0 R /XYZ 71.731 146.676 null]
+>> endobj
+7609 0 obj <<
+/D [7562 0 R /XYZ 129.5143 127.5975 null]
+>> endobj
+7610 0 obj <<
+/D [7562 0 R /XYZ 129.5143 127.5975 null]
+>> endobj
+7611 0 obj <<
+/D [7562 0 R /XYZ 71.731 126.158 null]
+>> endobj
+7612 0 obj <<
+/D [7562 0 R /XYZ 71.731 126.158 null]
+>> endobj
+7613 0 obj <<
+/D [7562 0 R /XYZ 139.477 109.6647 null]
+>> endobj
+7614 0 obj <<
+/D [7562 0 R /XYZ 139.477 109.6647 null]
+>> endobj
+7561 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7618 0 obj <<
+/Length 1329      
+/Filter /FlateDecode
+>>
+stream
+xÚ\9d\98]\8f£6\14\86ïçWp\99H\e×\1f\18\9b¹\9bíÇv«V\1díf¯:Uä\ 4g\82D\0\ 1étþý\1a°Á!\ eF«Ñ\b\ 2/>¯\1f\9fc°Q\0Õ\1f
+\18\ 2\8c¨\ 3\8e\ 1\8e(\ e\ eç\a\18¼ª[\9f\1e\90\96l´fc\8b>n\1f\8dÀ \ 6q\84£`{\fH\1c\ 1ÊÂ\80\11\f8E<Ø&ÿ¬~>\89²\91Õz\83)\aÐ\1f\9f3\91ËæO±ï\7f>=\7fîOþ\92Í©Hêõ¿Û?\1e\ eñ)a æ*ȬÉ\10q\10\12\18\a\eÂUü\908U\bÅ\80\82M\14C\10"¥7\9dÁq â0\88ÚÎ\fºAÖöæ\ 5c:u\870\ 6$D8°\e4q§ÇÑ\87yêÖ\aá\ 1WP£°ó¡ºL\91êÌ\95\8fRVu\91ïÒdWT;y\16iÖºêº0\8eG\1c\ 3\82ÕxÀî\91Ç\1eq\9a7ýI¡Ç¤nª4\7f½í\94  Ë0\b\19w#\1fT\e[6ÂDmÖ\uÂÈîÂT¹\ 3q\18;ãÞ\87i\9e\18\89 \12«»ìÚ\86"ò¡Gñ­6\89\9a&2oÒ\17\b±ºr\17\r\r\ 1\rièCcÉæÐ\18\99\1f\8d\124\ e\1f\ e\8d>74\9dç*=\8bê½ÿ!7]Òuç"I*YßTíXAª0#\16Ǿz´dsõhdþztÄ]R\8fS\1fwêÑö¡ëñ\98ʬ\9f¾&tÛ|Ã\9c\\97¢¢{94÷Ó\vBÀBæ­<K6\97^FæO/GÜ%é5õq\8dͤ\97mc\9f\16\ eV-W\ 2Ñ\r«1\13?¦Åk%ÊÓ\9a®Þïâ£\½\85Pè«N[6\83o\90yñ¹â.ÀwãÃ\89ïÊÆ1­êf\97\8b³tP¤\11À\9có\19\8a\9fÒ5¦«ÿÖ\88®dÞ_2m¹\81F!à\U \a¨%\9b\ 3jd~ \8e¸K\80N}¸\81Ú621Ã\13\82X½|ïãüz©æñ\85\11\88C\1eûðY²9|FæÇç\88»\ 4ßÔ\87\e\9fm£I\9bÌ\85Ny&<f3ì¶kBWæi7=u\ 2\9b\f\1c=#óÓsÄ]BoêÃM϶q©²\1f\9a\f\7f/TÒug¥x\9d\ 1\88\10\80\9cx§CK6\aÐÈü\0\1dq\97\0\9cúp\ 3´mÈ\ì3\99\86\10PÈ&Å»/\8aL\8aÜP\14µ¾,Ídhµç$\1aÆ\ 4 Õ®\87¨-\9b!:ȼD]q\17\10½ñá$ze£<\15ù\8f\164S\03ٷп[.çýÌÇtÈ(À\88ù¦G[6GÓÈü4\1dq\97Ð\9cúpÓ´m\94¢®ß\8aÊ\99 T½\84ØÜËúép(.féÖµ´Fí\1a.1«ºþx¨ÞËæ\ 5R¨þQ\7féXTçûÔ)S\9f     Ô7­Ú²9êFæ§î\88»\84úÔ\87\9bºmãÞâØ\9fÃKÖ;mY\ 1\82¨\9a° à0¦]k_d£>\ 6êÇ»+"Â#\0)öíPز\99\15Ñ ó®\88\q\17¬\88\>¬W\94\19þ+\1fãªZçazÔ\8c/\87\83¢w¼\98QQþÔx!Ú\8dáF\8d\1dã\84t@1¡Q×\18\ 6\bÁvï\88ñÕ·2\11\8dü\9a\99)d\80cØ¢SßÉ,꧱çªh\8aæ½\94\8fÃ\13cÒèg7\18\ 1µ¢ë+Õ
+ÑYn\vJ\\9a\93îP­nè­\97¬xMóÝ^ÔÒ¾×í\e¨\85`W\84·&7&¦mò\17Y\1fª´lÒ"\9f³I"@#lÛÔï-1Æ×\9bl\7fç\99NÞæ4t¤7¦µ¥<ô{\1c\93YäÒ5¼»V\8bJÚw\13Ýa\91éª(T\94Ê\15fx0\93G=\81©\99¬¸\1cN2\ 1]\11AÕ/\ 4(Gýh?\7fÖO\1e\846T\f\83\8f}­Ç\1e¢v5x\1dQC9ËîÕÓ7u¼Á#\92s\9aOCÚ\81Îâÿ]\9d¥*m?\]\18×O\95¹#òÄtI}\9bD4ê«aÌ\93¡Ç(R_v,²'\fO½è\10Çvæ\17\97¬©-ðo©nzI®=eYÑz\7f3\ 3ÿE}
+ÕK«£Ã¥½\94ét®Ñ[Å!WëÔ(\9eÝM¶4·\9bÉj\1e\ 1PÍ(CKmh\84ÉݽaGÄï\f¶(       endstream
+endobj
+7617 0 obj <<
+/Type /Page
+/Contents 7618 0 R
+/Resources 7616 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 7615 0 R
+>> endobj
+7619 0 obj <<
+/D [7617 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+7620 0 obj <<
+/D [7617 0 R /XYZ 76.7123 708.3437 null]
+>> endobj
+7621 0 obj <<
+/D [7617 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+7622 0 obj <<
+/D [7617 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+7623 0 obj <<
+/D [7617 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+7624 0 obj <<
+/D [7617 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+7625 0 obj <<
+/D [7617 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+7626 0 obj <<
+/D [7617 0 R /XYZ 71.731 671.0386 null]
+>> endobj
+7627 0 obj <<
+/D [7617 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+7628 0 obj <<
+/D [7617 0 R /XYZ 76.7123 636.6127 null]
+>> endobj
+7629 0 obj <<
+/D [7617 0 R /XYZ 129.5143 618.6799 null]
+>> endobj
+7630 0 obj <<
+/D [7617 0 R /XYZ 129.5143 618.6799 null]
+>> endobj
+7631 0 obj <<
+/D [7617 0 R /XYZ 71.731 617.2992 null]
+>> endobj
+7632 0 obj <<
+/D [7617 0 R /XYZ 71.731 617.2992 null]
+>> endobj
+7633 0 obj <<
+/D [7617 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+7634 0 obj <<
+/D [7617 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+7635 0 obj <<
+/D [7617 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+7636 0 obj <<
+/D [7617 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+7637 0 obj <<
+/D [7617 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+7638 0 obj <<
+/D [7617 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+7639 0 obj <<
+/D [7617 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+7640 0 obj <<
+/D [7617 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+7641 0 obj <<
+/D [7617 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+7642 0 obj <<
+/D [7617 0 R /XYZ 139.477 546.9489 null]
+>> endobj
+7643 0 obj <<
+/D [7617 0 R /XYZ 139.477 546.9489 null]
+>> endobj
+7644 0 obj <<
+/D [7617 0 R /XYZ 71.731 544.7921 null]
+>> endobj
+7645 0 obj <<
+/D [7617 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+7646 0 obj <<
+/D [7617 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+7647 0 obj <<
+/D [7617 0 R /XYZ 71.731 526.8593 null]
+>> endobj
+7648 0 obj <<
+/D [7617 0 R /XYZ 139.477 511.0834 null]
+>> endobj
+7649 0 obj <<
+/D [7617 0 R /XYZ 139.477 511.0834 null]
+>> endobj
+7650 0 obj <<
+/D [7617 0 R /XYZ 71.731 509.6439 null]
+>> endobj
+7651 0 obj <<
+/D [7617 0 R /XYZ 139.477 493.1507 null]
+>> endobj
+7652 0 obj <<
+/D [7617 0 R /XYZ 139.477 493.1507 null]
+>> endobj
+7653 0 obj <<
+/D [7617 0 R /XYZ 71.731 490.9938 null]
+>> endobj
+7654 0 obj <<
+/D [7617 0 R /XYZ 139.477 475.2179 null]
+>> endobj
+7655 0 obj <<
+/D [7617 0 R /XYZ 139.477 475.2179 null]
+>> endobj
+7656 0 obj <<
+/D [7617 0 R /XYZ 71.731 473.0611 null]
+>> endobj
+7657 0 obj <<
+/D [7617 0 R /XYZ 139.477 457.2852 null]
+>> endobj
+7658 0 obj <<
+/D [7617 0 R /XYZ 139.477 457.2852 null]
+>> endobj
+7659 0 obj <<
+/D [7617 0 R /XYZ 71.731 419.4271 null]
+>> endobj
+7660 0 obj <<
+/D [7617 0 R /XYZ 71.731 406.3762 null]
+>> endobj
+7661 0 obj <<
+/D [7617 0 R /XYZ 71.731 405.1308 null]
+>> endobj
+7662 0 obj <<
+/D [7617 0 R /XYZ 129.5143 386.0523 null]
+>> endobj
+904 0 obj <<
+/D [7617 0 R /XYZ 71.731 379.6314 null]
+>> endobj
+470 0 obj <<
+/D [7617 0 R /XYZ 214.2903 335.8167 null]
+>> endobj
+7663 0 obj <<
+/D [7617 0 R /XYZ 71.731 312.3279 null]
+>> endobj
+7664 0 obj <<
+/D [7617 0 R /XYZ 161.0655 302.9399 null]
+>> endobj
+7665 0 obj <<
+/D [7617 0 R /XYZ 71.731 290.8205 null]
+>> endobj
+7666 0 obj <<
+/D [7617 0 R /XYZ 71.731 259.4546 null]
+>> endobj
+7667 0 obj <<
+/D [7617 0 R /XYZ 168.8063 248.4443 null]
+>> endobj
+7668 0 obj <<
+/D [7617 0 R /XYZ 71.731 221.3809 null]
+>> endobj
+7669 0 obj <<
+/D [7617 0 R /XYZ 71.731 190.015 null]
+>> endobj
+7670 0 obj <<
+/D [7617 0 R /XYZ 71.731 161.7211 null]
+>> endobj
+7671 0 obj <<
+/D [7617 0 R /XYZ 71.731 130.7851 null]
+>> endobj
+7672 0 obj <<
+/D [7617 0 R /XYZ 181.5683 119.1293 null]
+>> endobj
+7673 0 obj <<
+/D [7617 0 R /XYZ 71.731 109.0671 null]
+>> endobj
+7616 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7676 0 obj <<
+/Length 1398      
+/Filter /FlateDecode
+>>
+stream
+xÚµ\99Moã6\10\86ïù\15>ÆÀ\9a%)Q¤ö\96v»ýÀ.\10ìfOMaÈ6\93\b\90-C\96Òì¿ïH"e\8a¢HµE\91\83íø\15çÕ3Ã!)\93\15\86?²â\ 4ñ\b^h\8ahÂèj\7f¼Á«gøê\97\e¢$\e¥Ù\98¢\1f\1fn~ø\18áU\8aÒ\84\87§U\94&\88ñxÅ#\8a\ 4#bõpøãö§\97ì\Ëj½¡\fßRÔ¿Þ\17ÙIÖ\9f²]ÿñîþ·þÍgY¿\94\87ËúÏ\87ßo~~\18â³\88£T@\10¯ÉA5µISÃ&!)b\8cð\15Ç\ 2EqÄ;\9f÷kÂn³*;Jp{yo[\18.J\ 4D¡8rZ\18T\eS¦-À\7f8&#\v\83¬µðH)\9bÄ¥\14<\12ê\8ck¿^}諦>"±\12\80"\89;\1f\0\8a\918\1aûÈ\9aú¥õaq£1Âm\84Vò¾Ï×¥®\9a}ýÎÊb{½<Õù>«óòd*\9bJNoP[H \94àÌ\rV«6¦ì
+\96´å9º!-\9b\ 5\vE\8ai\9c:ãÎ\83ÕWM}\8cÁF)\8a9\1fÛ¸\ 3.}\85;è²\ 4%1L\1e\9bo~zÖ|\1dX\8fýpÝûºì_\9b\8b\9c¯Þ(FP\1c¡â½ª|µ«TáÒ\9d\ 6]R¹\96\89\99Â5L\òZnóö¬¶Eù\9c\9f¶»¬G1i\0\fÅ\90\991ëüT÷oÊÊ\84?_¯$AD¤Q¨^\r\99¯^µ,\¯\8e¸KêÕáÃ@¢ëÕ´\ 1DTé}\ 5²\8aÒ¡-ÁG\8c)ôô94,\15\88²$4\95M\99\aÍ \v¢qÅ]\80Æåc\8afdc41¯t.E¾WoÏ\95l)½ÍNE\96@¥§$0\15\r\95g*jUp*:\82.\98\8a¶     ÷T4MtSñ)\97E¿\98[H\13\82\12Xq\kÉ|MÅ1\8a\99\bM7Sæ«)-\v×\94\92\9a²}8\97\87\91\8d\13ì=f\96]\9c¦\9e\85ácS\14êßC%êÁÜ,)lÔ(\vÎOCæc©ea\96\8e¸KXÚ>Ü,M\eMU¸\1a¿@IäØÃ\Q~ûòI-\ 2Oj/£fsö¬ÀÖ/\99Z'\ eò²¯ò\9d¼è/¤\91\84Yô°çd)\15\86Ì\87^ËÂè\1dq\97 ·}¸Ñ\9b6ä)Û\15ÒµÅ\891b\98[\95¼+ËBf'Åÿ×LÑÜI©¶8ÆxN¢q\8a¡\9b\ 4x^E\1e\9aJ\14d9\8d¸\80¤åÀÉÑ0P\94§ç¼n\ e®\8eÀ0J±\85ñP6@IQü ÷ù1S=á:Ò¨°\97\95kÌ)â\94\87º®)ó\ 1Ö²0bGÜ%\90m\1fn̦\8d\ 2vÓ3\9cc\ 6\r\8b\91þ\rg\16#\9eÆ¡\8elÊ|\9cµ,ÌÙ\11w      gÛ\87\9b³iã\98½m»íÑÅ}ø¡B\88É\86\aþ\9c½åÇæ¨V¶æ¸ÓÏ\134d5°Õ Çèû1\95¨m)ãSÓ¾\92\99/AQ\82DBB}Û\94ù\12¤eá\ 49â.I\90íÃ\9d Ó\86÷ÈäLÐ\7fØ\ 4\ f `IN!R\80êUå\83ªTa¦Ó K\90Z&ÜD\r\ fªâ_eµx\ füÏJ~MÙíkûت\8dð\7fÖ>\86\ 5\a|\87²dÈ|iÒ²p\9e\1cq\97$ÊöáÎ\94i#¿lÏÐÖóýÌj+0÷íZî»k\8bïý§×\¶\99ùkMLÖÞö\1f\89\bá$
\7fSæ!<È\82\84]q\17\10\9eøp\12\1eÙÈv»J¾æPf\87íÌAGÀ&2á¾\1e\ eÒU}7ÐÜ\99\a¬Â\864NÛ'Ö\90=\81ÓÞÃ\17Y7ÕÉól7"\ 4\89\b'\813¹)ó\1cÊ\aYðTî\8a»àXîòa\1cv\86r0}\;\fQ]A÷\93f\ fKèå©Ñ\a'ðÇ\11%¬Ëé\86qÄEÔ\9dL\10\8dX?\18E\ 4Æ\86빸ýv>@N¾¶½ÿ®\86¤íÖ\14ß6µs_Å\91 ¸\ 5I\91à\89zþ^\95uY\7f?Ë÷Ã\15×\92R×n(4M"úö:\e°»\9dGÌpû\1cú\9d±&m3S·Í\ fêË׶¤²¢\81µ\8a\11\87ß\8d\ eoúýÐ\9dþÎí£X\9fcXaYBMÇöqq\88n\1d<õñ§mðoù¥n\9fEÚëëð¨r´\18¨\ 1Ì\9bEví©_tb\81\ 4IRï\8f>\86\9b\ f£0É#\91\f#µ7Jh<û\13\8e#âßGtó¬endstream
+endobj
+7675 0 obj <<
+/Type /Page
+/Contents 7676 0 R
+/Resources 7674 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 7615 0 R
+>> endobj
+7677 0 obj <<
+/D [7675 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+7678 0 obj <<
+/D [7675 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+7679 0 obj <<
+/D [7675 0 R /XYZ 71.731 708.2442 null]
+>> endobj
+7680 0 obj <<
+/D [7675 0 R /XYZ 71.731 706.9988 null]
+>> endobj
+7681 0 obj <<
+/D [7675 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+7682 0 obj <<
+/D [7675 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+7683 0 obj <<
+/D [7675 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+7684 0 obj <<
+/D [7675 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+7685 0 obj <<
+/D [7675 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+7686 0 obj <<
+/D [7675 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+7687 0 obj <<
+/D [7675 0 R /XYZ 76.7123 652.0548 null]
+>> endobj
+7688 0 obj <<
+/D [7675 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+7689 0 obj <<
+/D [7675 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+7690 0 obj <<
+/D [7675 0 R /XYZ 71.731 631.9652 null]
+>> endobj
+7691 0 obj <<
+/D [7675 0 R /XYZ 71.731 631.9652 null]
+>> endobj
+7692 0 obj <<
+/D [7675 0 R /XYZ 139.477 616.1893 null]
+>> endobj
+7693 0 obj <<
+/D [7675 0 R /XYZ 71.731 614.7497 null]
+>> endobj
+7694 0 obj <<
+/D [7675 0 R /XYZ 139.477 598.2565 null]
+>> endobj
+7695 0 obj <<
+/D [7675 0 R /XYZ 76.7123 580.3238 null]
+>> endobj
+7696 0 obj <<
+/D [7675 0 R /XYZ 129.5143 562.391 null]
+>> endobj
+7697 0 obj <<
+/D [7675 0 R /XYZ 129.5143 562.391 null]
+>> endobj
+7698 0 obj <<
+/D [7675 0 R /XYZ 71.731 561.212 null]
+>> endobj
+7699 0 obj <<
+/D [7675 0 R /XYZ 71.731 561.212 null]
+>> endobj
+7700 0 obj <<
+/D [7675 0 R /XYZ 139.477 544.4583 null]
+>> endobj
+7701 0 obj <<
+/D [7675 0 R /XYZ 139.477 544.4583 null]
+>> endobj
+7702 0 obj <<
+/D [7675 0 R /XYZ 71.731 542.3014 null]
+>> endobj
+7703 0 obj <<
+/D [7675 0 R /XYZ 139.477 526.5255 null]
+>> endobj
+7704 0 obj <<
+/D [7675 0 R /XYZ 139.477 526.5255 null]
+>> endobj
+7705 0 obj <<
+/D [7675 0 R /XYZ 71.731 524.3687 null]
+>> endobj
+7706 0 obj <<
+/D [7675 0 R /XYZ 139.477 508.5928 null]
+>> endobj
+7707 0 obj <<
+/D [7675 0 R /XYZ 139.477 508.5928 null]
+>> endobj
+7708 0 obj <<
+/D [7675 0 R /XYZ 71.731 507.1532 null]
+>> endobj
+7709 0 obj <<
+/D [7675 0 R /XYZ 139.477 490.66 null]
+>> endobj
+7710 0 obj <<
+/D [7675 0 R /XYZ 139.477 490.66 null]
+>> endobj
+7711 0 obj <<
+/D [7675 0 R /XYZ 71.731 488.5032 null]
+>> endobj
+7712 0 obj <<
+/D [7675 0 R /XYZ 139.477 472.7273 null]
+>> endobj
+7713 0 obj <<
+/D [7675 0 R /XYZ 139.477 472.7273 null]
+>> endobj
+7714 0 obj <<
+/D [7675 0 R /XYZ 71.731 471.2877 null]
+>> endobj
+7715 0 obj <<
+/D [7675 0 R /XYZ 139.477 454.7945 null]
+>> endobj
+7716 0 obj <<
+/D [7675 0 R /XYZ 139.477 454.7945 null]
+>> endobj
+7717 0 obj <<
+/D [7675 0 R /XYZ 71.731 453.355 null]
+>> endobj
+7718 0 obj <<
+/D [7675 0 R /XYZ 139.477 436.8618 null]
+>> endobj
+7719 0 obj <<
+/D [7675 0 R /XYZ 139.477 436.8618 null]
+>> endobj
+7720 0 obj <<
+/D [7675 0 R /XYZ 71.731 434.7049 null]
+>> endobj
+7721 0 obj <<
+/D [7675 0 R /XYZ 139.477 418.929 null]
+>> endobj
+7722 0 obj <<
+/D [7675 0 R /XYZ 139.477 418.929 null]
+>> endobj
+7723 0 obj <<
+/D [7675 0 R /XYZ 71.731 417.4895 null]
+>> endobj
+7724 0 obj <<
+/D [7675 0 R /XYZ 139.477 400.9962 null]
+>> endobj
+7725 0 obj <<
+/D [7675 0 R /XYZ 139.477 400.9962 null]
+>> endobj
+7726 0 obj <<
+/D [7675 0 R /XYZ 71.731 398.8394 null]
+>> endobj
+7727 0 obj <<
+/D [7675 0 R /XYZ 139.477 383.0635 null]
+>> endobj
+7728 0 obj <<
+/D [7675 0 R /XYZ 139.477 383.0635 null]
+>> endobj
+7729 0 obj <<
+/D [7675 0 R /XYZ 71.731 345.2055 null]
+>> endobj
+7730 0 obj <<
+/D [7675 0 R /XYZ 71.731 332.1545 null]
+>> endobj
+7731 0 obj <<
+/D [7675 0 R /XYZ 71.731 330.9092 null]
+>> endobj
+7732 0 obj <<
+/D [7675 0 R /XYZ 129.5143 311.8306 null]
+>> endobj
+905 0 obj <<
+/D [7675 0 R /XYZ 71.731 305.4098 null]
+>> endobj
+474 0 obj <<
+/D [7675 0 R /XYZ 294.2895 261.595 null]
+>> endobj
+7733 0 obj <<
+/D [7675 0 R /XYZ 71.731 238.1062 null]
+>> endobj
+7734 0 obj <<
+/D [7675 0 R /XYZ 161.0655 228.7183 null]
+>> endobj
+7735 0 obj <<
+/D [7675 0 R /XYZ 71.731 216.5988 null]
+>> endobj
+7736 0 obj <<
+/D [7675 0 R /XYZ 71.731 185.2329 null]
+>> endobj
+7737 0 obj <<
+/D [7675 0 R /XYZ 168.8063 174.2226 null]
+>> endobj
+7738 0 obj <<
+/D [7675 0 R /XYZ 71.731 147.1592 null]
+>> endobj
+7674 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7741 0 obj <<
+/Length 1024      
+/Filter /FlateDecode
+>>
+stream
+xÚÝXM\8fÛ6\10½ï¯ÐÑ\ 6V,?DRÊÍi\93"E\v,RçÔ-\f­­\8d\ 5È\92!Q»Í¿ïP\14õaÑ\92\13\ 4\b\10ìA´ý\86óæqf8+âaø#\9e$H2xÐ\bQÁ©·?Ýaï3üôû\1di!~\8bñ\87 ·Û»_Þ3ìE(\12TxÛg\8fE\ 2q\19x\92Q\14r\12zÛÃ?«_\8fñY%åÚ§\1c¯(2Ï\87\13õgüd>n\1e>\98Å_\89:\16\87jýïö\8f»wÛÎ?g\12E!8\99%Ù¡¦4iä\85@S\ 4\9a&\81_9        \98'q\88XÀdÃóS\95\94\95aq\8a¿\98E\91gíª>\1fb\95\98u¬T\99>­)|«\92Ö¤x6Ï*K÷Ýwe÷Ý\9aòÕË\9aðUçÃ\1a¼\1eÓýÑ,Õ1Ñ\90Öc\¶îNÉé Ì¬r\1f¾\89$\b
+"ù\84 Á\ 5k\ 2þjʱêx¦\16\97Âæ÷cÛo\8dls8¥ùep·ê\1eç\ 3\aMD\1d)GèãðÖ\9c¯P\a\13H0)\1aØÇDÕ¥¥DÌ#µªÕ{P­z®³6üç5\ 1\1au¦,3\bº|M«¤ÙºIÁ¾RüvéëJ\91Âdà&Ë
+Më59\98->\16YR½éÌû\f¶Ö\14b"aÔXÇZ¾\96Ë9m\175$õ­î\1f´\1aq\19\9f\12(WãvX\83\84@Õp"=.0â\91\f\9d5Ø¡ü!Ì֠ԧĤ©ÁÉn\9aÂ#¥|â\97R(RB\9d~/\9f=\ fk5åÁBW/\18ñ\88kutÈF\ 3\84µ\a\ryÓ¦\81*뽺¿hcÚ>ÉUº\8fUZäCd\r¹?    ÐR\b(\12\82»uµ \7f\80êe%º;\8fÂiQWU\85\93Ç4\88\N¯\8bj\8d&$Æ\9a²\b\ 5R\8e8l@\11ÓÜ\1dºr¨¹\0î\8dKeÓü³UÖ!èÉlg\1aLÑåûõ¼Å\ 2É(âKy;\80Íå­\85-ç­Ãï-y{ÉãJÞ\ ey4\8dogú$ôÈ]êR;\8a\90\bÅXì4·9üwß;Gý¶Å\1dô)<bLM_q
+\1d\84!
+\ 5t\95\87°\19¡;Ø¢Ð.¿7\b=áá\16zÄã%ÎêÄÕ!"ÄÂ(\9cÉäy}_tÿ·{C{\86í8\rÆ}º½\95®7è\80\85\10\ f`sú[زþ\ e¿·èïàÑ+Úë?äÑçëÕk¹=\1dà'\11%¼9L\9fK$C¦»(F\94\19E\844\83©\fW\9f\9ay£9¤Íðx¶k\81W_ή3\ f$
+)\96\17\97iY¨B\81Á­×÷uÇ¡qÜ\84÷\88\97˽#\83\1d\94ü®(w9Üâ×1Mýf\87
+v#·N\a¿%Õ¾LϺýÎ\85Äà?\0A\87!Uý\bhf\93\98Lpͳ\99\14ÿK+\ 55sµN^Su¼Ø·+\9dʶ´Åø\7f\92¡ï{\ fx\ 4\ e\11¬\83\85þ1\84Íô\8f\ e¶Ø?\~oè\1f\13\1eîþ=âñc\ 6<­      ¦\91X\98ð\86°\99\11¯\83-Îx.¿7\fy\13\1eÎ)oDãÇ\8d\e\8a\0.i"¢Ù\97\18\ 3Ìô\1d\ 6§\fa\ 6ó\91Ei®d*n÷²Ááñ\7f\0\93%vendstream
+endobj
+7740 0 obj <<
+/Type /Page
+/Contents 7741 0 R
+/Resources 7739 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 7615 0 R
+>> endobj
+7742 0 obj <<
+/D [7740 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+7743 0 obj <<
+/D [7740 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+7744 0 obj <<
+/D [7740 0 R /XYZ 71.731 679.9602 null]
+>> endobj
+7745 0 obj <<
+/D [7740 0 R /XYZ 71.731 647.1727 null]
+>> endobj
+7746 0 obj <<
+/D [7740 0 R /XYZ 181.5683 635.5168 null]
+>> endobj
+7747 0 obj <<
+/D [7740 0 R /XYZ 71.731 625.4546 null]
+>> endobj
+7748 0 obj <<
+/D [7740 0 R /XYZ 71.731 592.0315 null]
+>> endobj
+7749 0 obj <<
+/D [7740 0 R /XYZ 71.731 580.9216 null]
+>> endobj
+7750 0 obj <<
+/D [7740 0 R /XYZ 71.731 579.6763 null]
+>> endobj
+7751 0 obj <<
+/D [7740 0 R /XYZ 129.5143 560.5978 null]
+>> endobj
+7752 0 obj <<
+/D [7740 0 R /XYZ 129.5143 560.5978 null]
+>> endobj
+7753 0 obj <<
+/D [7740 0 R /XYZ 71.731 559.1582 null]
+>> endobj
+7754 0 obj <<
+/D [7740 0 R /XYZ 71.731 559.1582 null]
+>> endobj
+7755 0 obj <<
+/D [7740 0 R /XYZ 139.477 542.665 null]
+>> endobj
+7756 0 obj <<
+/D [7740 0 R /XYZ 139.477 542.665 null]
+>> endobj
+7757 0 obj <<
+/D [7740 0 R /XYZ 76.7123 524.7323 null]
+>> endobj
+7758 0 obj <<
+/D [7740 0 R /XYZ 129.5143 506.7995 null]
+>> endobj
+7759 0 obj <<
+/D [7740 0 R /XYZ 129.5143 506.7995 null]
+>> endobj
+7760 0 obj <<
+/D [7740 0 R /XYZ 71.731 505.36 null]
+>> endobj
+7761 0 obj <<
+/D [7740 0 R /XYZ 129.5143 488.8667 null]
+>> endobj
+7762 0 obj <<
+/D [7740 0 R /XYZ 129.5143 488.8667 null]
+>> endobj
+7763 0 obj <<
+/D [7740 0 R /XYZ 71.731 466.7846 null]
+>> endobj
+7764 0 obj <<
+/D [7740 0 R /XYZ 71.731 455.8905 null]
+>> endobj
+7765 0 obj <<
+/D [7740 0 R /XYZ 71.731 454.6452 null]
+>> endobj
+7766 0 obj <<
+/D [7740 0 R /XYZ 129.5143 435.5666 null]
+>> endobj
+906 0 obj <<
+/D [7740 0 R /XYZ 71.731 429.1458 null]
+>> endobj
+478 0 obj <<
+/D [7740 0 R /XYZ 333.4372 385.331 null]
+>> endobj
+7767 0 obj <<
+/D [7740 0 R /XYZ 71.731 361.8422 null]
+>> endobj
+7768 0 obj <<
+/D [7740 0 R /XYZ 161.0655 352.4543 null]
+>> endobj
+7769 0 obj <<
+/D [7740 0 R /XYZ 71.731 340.3348 null]
+>> endobj
+7770 0 obj <<
+/D [7740 0 R /XYZ 71.731 308.9689 null]
+>> endobj
+7771 0 obj <<
+/D [7740 0 R /XYZ 168.8063 297.9586 null]
+>> endobj
+7772 0 obj <<
+/D [7740 0 R /XYZ 71.731 270.8952 null]
+>> endobj
+7773 0 obj <<
+/D [7740 0 R /XYZ 71.731 254.4733 null]
+>> endobj
+7774 0 obj <<
+/D [7740 0 R /XYZ 71.731 223.5373 null]
+>> endobj
+7775 0 obj <<
+/D [7740 0 R /XYZ 181.5683 211.8814 null]
+>> endobj
+7776 0 obj <<
+/D [7740 0 R /XYZ 71.731 201.8193 null]
+>> endobj
+7777 0 obj <<
+/D [7740 0 R /XYZ 71.731 170.2476 null]
+>> endobj
+7778 0 obj <<
+/D [7740 0 R /XYZ 71.731 157.2863 null]
+>> endobj
+7779 0 obj <<
+/D [7740 0 R /XYZ 71.731 156.0409 null]
+>> endobj
+7780 0 obj <<
+/D [7740 0 R /XYZ 129.5143 136.9624 null]
+>> endobj
+7781 0 obj <<
+/D [7740 0 R /XYZ 129.5143 136.9624 null]
+>> endobj
+7782 0 obj <<
+/D [7740 0 R /XYZ 71.731 135.5228 null]
+>> endobj
+7783 0 obj <<
+/D [7740 0 R /XYZ 71.731 135.5228 null]
+>> endobj
+7784 0 obj <<
+/D [7740 0 R /XYZ 139.477 119.0296 null]
+>> endobj
+7785 0 obj <<
+/D [7740 0 R /XYZ 139.477 119.0296 null]
+>> endobj
+7786 0 obj <<
+/D [7740 0 R /XYZ 76.7123 101.0969 null]
+>> endobj
+7739 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7789 0 obj <<
+/Length 1272      
+/Filter /FlateDecode
+>>
+stream
+xÚ­X[\8f£6\14~\9f_Ác"M\Û`\eæmzÕV]u´\9d}êT\11\93\90\r*\97\88Kg÷ßï\ 1_0Ä\ 1*\8dò\10\12>û|ç;\17\1f \1e\86\ fñ\ 4\87/\1a\19õ\ eù\1dö¾À­ßî\88\82ì\14fg\83~|¾ûáW\1f{\11\8a8åÞóÉó#\8e\98\b<áS\142\12zÏÇ¿7?\9dãK\93\1dexC\91ü~Êâ"iþ\88_åÏǧ\ fòâcÒ\9cËc½ýçù÷»_\9e\8d\v\14\85`d\96d@B\14ø8òv\14£\88\12æD\11\12\88\0gp\88üÀ\17Æ\19\1ay`G`Ò9cp\ 6ÖyóB)\9b²#\94\ 2\80PÏÞPÛ\9d~\ f<ôªk\1e\85 *\ fz\1eà2#\81\117M\95¾¶M²o¾]\92}zÜ\97Õ¾\88ó¤#×{2\84\85ø\1cÔã\14ìvK\1f¤ÔiÑÈ\8bRŦ\86\1d\8b/×Î)ó<Â(  ®ST\8dÚÙ°ATÒe\8fí\8c\81Ý\14\15r\bÓ rÚ½-ª^åäaK\12¡@\881\rPä^JñW\96\1e\12y)\85ÞR¼\ 1±å_\9dâJÃcR4é\vÆ\14\12ü¦p\82\82­\90.       gÁæ\84Ó°eá\1c\bçàá\10Φ!3ç\7f\93uÄ]×\1c\87\94å\84\8a\85
+¶a3\15l`\8b\15ì²»¢\82¯x¸+xÄcRÁ§4Édã\9b*N\18
+8\8fÆÕ\v\92·\87ævÎA+ä"Z,V\v6\97s\1a\9cs\ e»krnÊc¬\9fÎ9\9bF\9e\16ûªÌºÖç\10\8dw;\8bë\8e§rôcZ¤y\9bË\1f/\98á,\89\ e\96²Í[R\9dÚ\fn\11ùogJeð9VÈC\¨`$\93Vz8ÇÅ\17\83OkW9Ü\f\1dÆH\ 4b±]X°¹ÐiØrè\1c\84nÊÃ\1d:\9bÆ\8dc\8a\ 6\bãè:Ïß©µhEX\bà           \82\ 5}mØ\8c¾\ 6¶¨¯Ëî
+}¯x8õ\1dÑ8&õ¡J/MZ\16®Ò \88óP¼\83Ì\13;Þ.$\88E\ 1pÆ(Ä\91$ó)iÚª¨\1fn¶zF`UHøB«·a3­ÞÀ\16[½Ëî\8aVïâa5k\93\176\8f¡ñ¨n\92\9e\94ìíá\90Ô5t\1a\15(à'\10L®}pwL \11ú~/(õ\99<7("ÄïÆh\11n>_\8eq\93Èx]G:\10\18´ëÆqÁåò§ªlÊ.\86\ f\90Njí\8eB\8e\90P6ZÛ\86é\97\9c\95KuwÇ\1a@G\7f÷£\11\9ck}#½f¸Ó\ 6m\86?\ fi5Ç\11ÎRƩͱÖ\rW\11½Ä\15ð\81g\ fu£Tªë¶\9dl       Û|Më¦\e{\aÒòò-mÎ\93ýþë\ e\868kµ¡´p¹\8aúZÀ@ÐÊ\80ϵa\91Çß\14\9d"SWmOßÚlBøí\9c\1e,2ÀZ-\8c+µ*OòW° \9f®>LmÙ\16Àýa\amÂ8iÛ×\a\1dÜLõCB
+:ß\8fO;½¡ò\e2\9f3îËÉð\1d¼y<ÂY¿Ú¡Þâ$\ 6¬çò§ÑÛè\13\17Gu±d#\8f¿î\8b\12:\1e²zdmæ\80¢TR½*|\95\14\89\9c#\8eCÕ¼Ú\e\9b¤3ÒË|¼¤\95ÞØ$°.\9f©¼yY\rS\89ÊÆP©\9c$ÿ\9a<mÊ\89©S\v]y\90\89À\ê\vn7ì\85~¥Rà´% ^\9b5:Æ`¡zKk¹õ\9aj\7f̲r$Ô'\98´êµÍ©\8f\9bârIÕE[˧±5æ\9f:ÍM\9f¸}J\11
\ 6/\9eR6læ\942°ÅSÊewÅ)uÅÃý@2âÑõô\ec\19q=|ÜOÞÝtë»ÇáCÜO\ 4\16\12Ríæ8Fp\b}<\zR±a3ã\98\81-\8ec.»+Ʊ+\1eÎqlDã\11t\91ïµ\1cê2¨¼@\ 43ÓØ£CÖ\n'kº4Y?uV½µ\vB\98\ry4ûbÏÂ\¿×c\90W!\85\81N£:®\90;7_Ó9,~\a\95ÍÌHendstream
+endobj
+7788 0 obj <<
+/Type /Page
+/Contents 7789 0 R
+/Resources 7787 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 7615 0 R
+>> endobj
+7790 0 obj <<
+/D [7788 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+7791 0 obj <<
+/D [7788 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+7792 0 obj <<
+/D [7788 0 R /XYZ 129.5143 708.3437 null]
+>> endobj
+7793 0 obj <<
+/D [7788 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+7794 0 obj <<
+/D [7788 0 R /XYZ 71.731 706.1869 null]
+>> endobj
+7795 0 obj <<
+/D [7788 0 R /XYZ 139.477 690.4109 null]
+>> endobj
+7796 0 obj <<
+/D [7788 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+7797 0 obj <<
+/D [7788 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+7798 0 obj <<
+/D [7788 0 R /XYZ 76.7123 654.5454 null]
+>> endobj
+7799 0 obj <<
+/D [7788 0 R /XYZ 129.5143 636.6127 null]
+>> endobj
+7800 0 obj <<
+/D [7788 0 R /XYZ 129.5143 636.6127 null]
+>> endobj
+7801 0 obj <<
+/D [7788 0 R /XYZ 71.731 635.2319 null]
+>> endobj
+7802 0 obj <<
+/D [7788 0 R /XYZ 71.731 635.2319 null]
+>> endobj
+7803 0 obj <<
+/D [7788 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+7804 0 obj <<
+/D [7788 0 R /XYZ 139.477 618.6799 null]
+>> endobj
+7805 0 obj <<
+/D [7788 0 R /XYZ 71.731 616.5231 null]
+>> endobj
+7806 0 obj <<
+/D [7788 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+7807 0 obj <<
+/D [7788 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+7808 0 obj <<
+/D [7788 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+7809 0 obj <<
+/D [7788 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+7810 0 obj <<
+/D [7788 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+7811 0 obj <<
+/D [7788 0 R /XYZ 71.731 544.9564 null]
+>> endobj
+7812 0 obj <<
+/D [7788 0 R /XYZ 71.731 531.9054 null]
+>> endobj
+7813 0 obj <<
+/D [7788 0 R /XYZ 71.731 530.6601 null]
+>> endobj
+7814 0 obj <<
+/D [7788 0 R /XYZ 129.5143 511.5816 null]
+>> endobj
+907 0 obj <<
+/D [7788 0 R /XYZ 71.731 505.1607 null]
+>> endobj
+482 0 obj <<
+/D [7788 0 R /XYZ 222.915 461.3459 null]
+>> endobj
+7815 0 obj <<
+/D [7788 0 R /XYZ 71.731 437.8572 null]
+>> endobj
+7816 0 obj <<
+/D [7788 0 R /XYZ 161.0655 428.4692 null]
+>> endobj
+7817 0 obj <<
+/D [7788 0 R /XYZ 71.731 416.3497 null]
+>> endobj
+7818 0 obj <<
+/D [7788 0 R /XYZ 71.731 384.9839 null]
+>> endobj
+7819 0 obj <<
+/D [7788 0 R /XYZ 168.8063 373.9736 null]
+>> endobj
+7820 0 obj <<
+/D [7788 0 R /XYZ 71.731 346.9101 null]
+>> endobj
+7821 0 obj <<
+/D [7788 0 R /XYZ 71.731 315.5443 null]
+>> endobj
+7822 0 obj <<
+/D [7788 0 R /XYZ 71.731 272.3064 null]
+>> endobj
+7823 0 obj <<
+/D [7788 0 R /XYZ 71.731 245.8641 null]
+>> endobj
+7824 0 obj <<
+/D [7788 0 R /XYZ 71.731 213.0765 null]
+>> endobj
+7825 0 obj <<
+/D [7788 0 R /XYZ 181.5683 201.4207 null]
+>> endobj
+7826 0 obj <<
+/D [7788 0 R /XYZ 71.731 191.3585 null]
+>> endobj
+7827 0 obj <<
+/D [7788 0 R /XYZ 71.731 157.9353 null]
+>> endobj
+7828 0 obj <<
+/D [7788 0 R /XYZ 71.731 146.8255 null]
+>> endobj
+7829 0 obj <<
+/D [7788 0 R /XYZ 71.731 145.5802 null]
+>> endobj
+7830 0 obj <<
+/D [7788 0 R /XYZ 129.5143 126.5016 null]
+>> endobj
+7831 0 obj <<
+/D [7788 0 R /XYZ 129.5143 126.5016 null]
+>> endobj
+7832 0 obj <<
+/D [7788 0 R /XYZ 71.731 125.0621 null]
+>> endobj
+7833 0 obj <<
+/D [7788 0 R /XYZ 71.731 125.0621 null]
+>> endobj
+7834 0 obj <<
+/D [7788 0 R /XYZ 139.477 108.5689 null]
+>> endobj
+7835 0 obj <<
+/D [7788 0 R /XYZ 139.477 108.5689 null]
+>> endobj
+7787 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7838 0 obj <<
+/Length 1432      
+/Filter /FlateDecode
+>>
+stream
+xÚ\95Xßo¤6\10~Ï_Á[w¥¬\8b\8d\r&o×^[]uWEiîT©©"\ 2Þ]+,l1Ü&ÿ}\rج\ 1ó£ÊÃ\12\18{¾ùæ\9bñ\0t\ù\a\9d\0\82À\93?(\ 4È'È\89O7®s\90\8f\81Êd§lv¦ÑO\8f7?þê¹N\bB\1fùÎãÞñB\1f\90\0;\81\87\0%\90:\8fÉß\9b\9f\8fѹdÅv\87\88»A ý½O£\8c\95\9f£\97öß\ f÷\9fÚ\8b/¬<æ\89ØþóøûÍ/\8f\9d\7fâ\ 5 ¤ÒÉ,H\f\9e\e:;\8fJÿسZA\18\ 2B`àìüÐ\ 5\18J{\1d\f
+\1dé'pa\1dLg×\99ÕÑ<!D\86è BÀÃ\10\86Úïð÷\8a\1aãð¨C%©>npÈ\90   \94Áôp\88\94Çì\99'Ïyñ\9cE'Vcj\ 2¸f\83R@ü\80Joõ\82»\96`\9e\95íE®2"Ê\82g\87qHÚi\80\0\ e¨\9dðÎjg\9a\84µfz!h³I*¥r\\84C«ßi*õ*+\8e+#Ð\våÓ \ fC2rÛRñgÍ©¢)aYÉ\9f\\17IåNrC0 \98à%n\f³9n´Ù27\16¿k¸±à°pcÂhÅ1¦G+®\a¯«\17Y\86~\10\86KÕg\98ÍU\9f6[®>\8bß5Õ7Ä1Q}&\8e¶úö\9c¥m¯\1a\aÀÅ\94ô+OrYÅå´\98\\17\ 48X,4ÃlNLÚlYL\16¿kÄ4ÄÑgM\8bÉ\84Q\15©\85«\9a\85#®®ºûúð¹½ØWEyÔ'IÂD\ð\97ºw5ÿ\97G.ÔâF§S<\13*Ï&\88\97\8aÖ4\9bá¹3[äÙæw\ 5Ï#\1cV\9e{0NÑÛs\96K~,l\13\17\84ò\ 4\19\1e  \8aé/Ñ\e?U'UãÕéE\93\9dïÕ½f[Åw¤N\928ÊÚ\8b\17Õ\1d"!ø!c\892Ìÿg\82|\f(\95\95¿\90 Ãl.AÚl9A\16¿k\124ÄaO\90    \83\8cäñ\12\95<Ï,IªO'D½\99\920OªÞfÊ4*gøÅ>\b1\r\97ø5ÌæøÕfËüZü®áw\88Ãί   \83½\9dya\95?v\ 1Ä!\9eÒÿÇ\9a·VÂ\99V/?©[\97#ËLý6\97l\vɦuw«wSF,γD+\9egzÅ×?>ý¥Ö\9eóø8\9d&yáB\7fé<0ÍæÒ¤Í\96Ódñ»&MC\1cö4\99\ e~\9e(\ 2\1f\ 2ߧÁº"\18låì(\ 4Dæy'û\1duCÒìñÀʪÈÄÝäà\82I\0\ 2ê-½6\98f3\83Kg¶8¸Øü®\18\l8\8csU§¾\87ãªu¨äª:»¨â\98 ±¯ô\19\ 5\0AÒäo§÷¨ E\1eñ\9bÍ\10\80\10×/t\ 1Ý|ÛÖ\8a.øþý~ëÕWua\bkfq\0(r%\91õ[bà·=ñ¾È˼|?³»nÅU>jí\ eIM@Uä߶\10\91\15B÷¾'\97¸QU\1eU\94çæ\91zOb§\88§êÁ÷\1a\9f\]\8føqÓ;\9f_·P\15ôûÖ'\9biC£è¥;h q§\11\9b!~¼\8at.HO¾Cûh\14¤êKê\1cf[D6\97kȧJ\94ýC8á"zIYÒ lîT\82\15?l\89L\8bê?»\9a\ fµo\92ÈhÄ ù\15\a.Ë®\89\1c4ÅåJ\8c²¼(lUði¿\8aÑVmBÏ\11
+­8³¸}ÍJnõ\98 Û¬-Ö5N.<Mû\\1cXÆd\ 4z"éâ\13e^è\9b\17^\1e;\ 4#ÂTÜP
+\90øm)Eq\9cWY©>h<êE+à´Ä\8fç#Ãmÿ,é\1eíóâÔ\9fÈ\14I)Ï^ûÛ©\a\17¦>±\9c£\ 3³æ¯CÞ3U\ 4\1dó*MúÔk)\96\93\11¿¼ëÁ0M-óù¾Êâë°\12\1d¶d\13éH¯©©\85±\7fï\96/׫J\84\96£\15^/\8dHMËe|ÔCí¥\ej\8f\91ÐIë\8e}C-£Ì\f\8bK©c,êl\|c\85\b¦?ÓXÕa:Ò_Î\9aÆ×±W\9dÏyQv-Þ"_\9bÜ\84\7f+&Ê\8eû¨ï©ÈSVw\95[=í¿\1aIfcTÝ\97¦\16Ôµ!éØXVwªÁ\ e]yiì¾|O\f|ó$·\1e\ 6cÅLÈ\95w\r\99(å        XÛÑ?¤iÞ4'-\8b\aI\8dX{\82\89gá@}hÅT¾Ïùáì·XÃfü)\96È1A¢Ô6µ?\88\82Éïª\16\7fÿ\ 1v\903yendstream
+endobj
+7837 0 obj <<
+/Type /Page
+/Contents 7838 0 R
+/Resources 7836 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 7615 0 R
+>> endobj
+7839 0 obj <<
+/D [7837 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+7840 0 obj <<
+/D [7837 0 R /XYZ 76.7123 708.3437 null]
+>> endobj
+7841 0 obj <<
+/D [7837 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+7842 0 obj <<
+/D [7837 0 R /XYZ 129.5143 690.4109 null]
+>> endobj
+7843 0 obj <<
+/D [7837 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+7844 0 obj <<
+/D [7837 0 R /XYZ 71.731 688.2541 null]
+>> endobj
+7845 0 obj <<
+/D [7837 0 R /XYZ 139.477 672.4782 null]
+>> endobj
+7846 0 obj <<
+/D [7837 0 R /XYZ 71.731 671.0386 null]
+>> endobj
+7847 0 obj <<
+/D [7837 0 R /XYZ 139.477 654.5454 null]
+>> endobj
+7848 0 obj <<
+/D [7837 0 R /XYZ 76.7123 636.6127 null]
+>> endobj
+7849 0 obj <<
+/D [7837 0 R /XYZ 129.5143 618.6799 null]
+>> endobj
+7850 0 obj <<
+/D [7837 0 R /XYZ 129.5143 618.6799 null]
+>> endobj
+7851 0 obj <<
+/D [7837 0 R /XYZ 71.731 617.5009 null]
+>> endobj
+7852 0 obj <<
+/D [7837 0 R /XYZ 71.731 617.5009 null]
+>> endobj
+7853 0 obj <<
+/D [7837 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+7854 0 obj <<
+/D [7837 0 R /XYZ 139.477 600.7472 null]
+>> endobj
+7855 0 obj <<
+/D [7837 0 R /XYZ 71.731 598.5904 null]
+>> endobj
+7856 0 obj <<
+/D [7837 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+7857 0 obj <<
+/D [7837 0 R /XYZ 139.477 582.8144 null]
+>> endobj
+7858 0 obj <<
+/D [7837 0 R /XYZ 71.731 580.6576 null]
+>> endobj
+7859 0 obj <<
+/D [7837 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+7860 0 obj <<
+/D [7837 0 R /XYZ 139.477 564.8817 null]
+>> endobj
+7861 0 obj <<
+/D [7837 0 R /XYZ 71.731 562.7248 null]
+>> endobj
+7862 0 obj <<
+/D [7837 0 R /XYZ 139.477 546.9489 null]
+>> endobj
+7863 0 obj <<
+/D [7837 0 R /XYZ 139.477 546.9489 null]
+>> endobj
+7864 0 obj <<
+/D [7837 0 R /XYZ 71.731 544.7921 null]
+>> endobj
+7865 0 obj <<
+/D [7837 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+7866 0 obj <<
+/D [7837 0 R /XYZ 139.477 529.0162 null]
+>> endobj
+7867 0 obj <<
+/D [7837 0 R /XYZ 71.731 491.1581 null]
+>> endobj
+7868 0 obj <<
+/D [7837 0 R /XYZ 71.731 478.1072 null]
+>> endobj
+7869 0 obj <<
+/D [7837 0 R /XYZ 71.731 476.8618 null]
+>> endobj
+7870 0 obj <<
+/D [7837 0 R /XYZ 129.5143 457.7833 null]
+>> endobj
+908 0 obj <<
+/D [7837 0 R /XYZ 71.731 451.3624 null]
+>> endobj
+486 0 obj <<
+/D [7837 0 R /XYZ 228.9404 407.5477 null]
+>> endobj
+7871 0 obj <<
+/D [7837 0 R /XYZ 71.731 384.0589 null]
+>> endobj
+7872 0 obj <<
+/D [7837 0 R /XYZ 161.0655 374.671 null]
+>> endobj
+7873 0 obj <<
+/D [7837 0 R /XYZ 71.731 362.5515 null]
+>> endobj
+7874 0 obj <<
+/D [7837 0 R /XYZ 71.731 331.1856 null]
+>> endobj
+7875 0 obj <<
+/D [7837 0 R /XYZ 168.8063 320.1753 null]
+>> endobj
+7876 0 obj <<
+/D [7837 0 R /XYZ 71.731 293.1119 null]
+>> endobj
+7877 0 obj <<
+/D [7837 0 R /XYZ 71.731 261.746 null]
+>> endobj
+7878 0 obj <<
+/D [7837 0 R /XYZ 71.731 218.5082 null]
+>> endobj
+7879 0 obj <<
+/D [7837 0 R /XYZ 71.731 178.558 null]
+>> endobj
+7880 0 obj <<
+/D [7837 0 R /XYZ 71.731 146.9764 null]
+>> endobj
+7881 0 obj <<
+/D [7837 0 R /XYZ 181.5683 135.9661 null]
+>> endobj
+7882 0 obj <<
+/D [7837 0 R /XYZ 71.731 125.9039 null]
+>> endobj
+7836 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7885 0 obj <<
+/Length 1044      
+/Filter /FlateDecode
+>>
+stream
+xÚ\95X]\8f£6\14}\9f_Ác"\15\17Û\18Ûó6Ým«V³U4J¥J\9dÕ\88&\9e\rÚ\ 4"`v\9a\7f¿×Á&\ 6ÌÇ*\8aøÈ1÷p|ÎÅ\ 1\a\11|pÀ1â\146D"\920\12ìNwQð\ 5~úý\ e\eHh0¡\vúe{÷óo4
+$\92     I\82ík@e\82\18\8f\ 3N     \12\f\8b`»ÿwõá\90\9ekU®C¢\15AÍvsLsU?¦ÿ5\87\ f\9b?\9a\9dOª>\14ûjýyûçݯ۶>£\1cI\ 1E&I¶¨!M"\1d\9a\18\18æ\ 1\8f\ 4¢1åW\9e\9b5f«´LO
+ØV÷}
+í D@\15\12Q/\85\16\15º0K\ 1Îð\bw(´0Má\99\106¨K\bpÄÄ[·¿½ñ°£\86\b\ 4H\91ÄW\1e \14Ã1íòHßê\83æÑÓ\8dÄ(Ò\154ä¾\99¯ª.ßvõO½YÔãU^g»´Î\8aÜE¾\95jx\83\96B\ 2¥\ 4g~a-*ta7a±¶gç\86,lTX0iDbé­;.¬\1d5äÑ\15\96J\14sÞ¥ñ\0º4\ e÷¨Ë\12\94Ä\10\9e¾¾YþÅêë\91õÔ\îº_\17Íö­Rãî¥1\ 2\99÷\86\9aò®AÍ[wXt\89s{$F\8cë\908Cp\8bü%Û¿\14å\8b:¥ÙÑ£³\94\88\92¾ÎY^7;Eé
+?îU\9c ,$\9dóª\ 3\9bòª\85Í{ÕSw\89W=<\9c~h½êÒ\0E\8cíþ®l÷ÎöÚ~ÏQDàÌ\984L
+DX2\17c\176!M\v\9b\95ÆWw\814>\1eCi:4:¡Ü\94Ù)-/Í\81
+¯¦k\9aà~_ªª\1aM"KÀè\12Ï$ÑAM$Ñ¢f\93è)º \89}\12þ$º$¾©2{5\8dê嫺xr( \87pññv÷¤*eRyN«ê}\8du<M¯ûª\8f\94~d_Æ\15\8ec\1431÷¤vaS\1a[ؼÈ\9eºKTîó\18\91ÙåÑÑYý\7fÎÀr\1e­1\8eP$8\1e4=#õÇ´VƵ¹}\98d'sê\1d\1e:ÍÞ7­7TÔ\1dÀέ3\ fM\ 4ôþ\8d\88¾A¨\1dK\10
+yÒ¬¶\9e\14¬\ 5ò\89eV,1ÂLÌåÃ\85ML^\v\9b\9d<_Ý\ 5\93çãáèo'¯Ãã¦?6\13òº\笲X\ 2ËÖcf\97\14p+\1c\11Ì®¦      \19G\PÝn#D(K®u    Â\98é\858\17«êRÕê\84\8eYU;kï\1eý\98#A¢Þ\fnÊ¢.êËYÝ·#nn5cC\82Q\ 2\8f\94¦m\ eK]ïà9b\11|±§ph¯ã\16þ¨ª]\99\9dµ,KKo\ fV.w½¤\99\98ÓéÑtmXa¹ÀÊ\9eMëÞïÿ|z\f\9f6\1fLßR¥\99\9dòBOË»\19~h\8eº«´}V\9dÓzw@Kïûáxl®£\fÿ§â¨\9a\ 4\81\eÃ\18 TÆ?ô_\ 6,\81¸\84?jÓ!sa\13!ka³!óÕ]\102\1f\ fOÈ:<þ*rÕ4"\9f¦³m\b\v\82 ´É\8cB.lB¡\16\90¯î\ 2\85|<<
+ux¤e\99^Ö        [\99\b±0\8bá×n\16zdÍK\81\81\139ùÞÀÁ\f_\e0BQDEÒ^I³ÂD\8c¾\ 5ðTü\ ej¿Çÿendstream
+endobj
+7884 0 obj <<
+/Type /Page
+/Contents 7885 0 R
+/Resources 7883 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 7932 0 R
+>> endobj
+7886 0 obj <<
+/D [7884 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+7887 0 obj <<
+/D [7884 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+7888 0 obj <<
+/D [7884 0 R /XYZ 71.731 718.3063 null]
+>> endobj
+7889 0 obj <<
+/D [7884 0 R /XYZ 71.731 708.2442 null]
+>> endobj
+7890 0 obj <<
+/D [7884 0 R /XYZ 71.731 706.9988 null]
+>> endobj
+7891 0 obj <<
+/D [7884 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+7892 0 obj <<
+/D [7884 0 R /XYZ 129.5143 687.9203 null]
+>> endobj
+7893 0 obj <<
+/D [7884 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+7894 0 obj <<
+/D [7884 0 R /XYZ 71.731 686.4807 null]
+>> endobj
+7895 0 obj <<
+/D [7884 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+7896 0 obj <<
+/D [7884 0 R /XYZ 139.477 669.9875 null]
+>> endobj
+7897 0 obj <<
+/D [7884 0 R /XYZ 76.7123 652.0548 null]
+>> endobj
+7898 0 obj <<
+/D [7884 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+7899 0 obj <<
+/D [7884 0 R /XYZ 129.5143 634.122 null]
+>> endobj
+7900 0 obj <<
+/D [7884 0 R /XYZ 71.731 631.9652 null]
+>> endobj
+7901 0 obj <<
+/D [7884 0 R /XYZ 71.731 631.9652 null]
+>> endobj
+7902 0 obj <<
+/D [7884 0 R /XYZ 139.477 616.1893 null]
+>> endobj
+7903 0 obj <<
+/D [7884 0 R /XYZ 71.731 614.7497 null]
+>> endobj
+7904 0 obj <<
+/D [7884 0 R /XYZ 139.477 598.2565 null]
+>> endobj
+7905 0 obj <<
+/D [7884 0 R /XYZ 76.7123 580.3238 null]
+>> endobj
+7906 0 obj <<
+/D [7884 0 R /XYZ 129.5143 562.391 null]
+>> endobj
+7907 0 obj <<
+/D [7884 0 R /XYZ 129.5143 562.391 null]
+>> endobj
+7908 0 obj <<
+/D [7884 0 R /XYZ 71.731 560.2342 null]
+>> endobj
+7909 0 obj <<
+/D [7884 0 R /XYZ 129.5143 544.4583 null]
+>> endobj
+7910 0 obj <<
+/D [7884 0 R /XYZ 129.5143 544.4583 null]
+>> endobj
+7911 0 obj <<
+/D [7884 0 R /XYZ 71.731 522.3762 null]
+>> endobj
+7912 0 obj <<
+/D [7884 0 R /XYZ 71.731 511.482 null]
+>> endobj
+7913 0 obj <<
+/D [7884 0 R /XYZ 71.731 510.2367 null]
+>> endobj
+7914 0 obj <<
+/D [7884 0 R /XYZ 129.5143 491.1581 null]
+>> endobj
+909 0 obj <<
+/D [7884 0 R /XYZ 71.731 484.02 null]
+>> endobj
+490 0 obj <<
+/D [7884 0 R /XYZ 284.1324 440.9225 null]
+>> endobj
+7915 0 obj <<
+/D [7884 0 R /XYZ 71.731 417.4337 null]
+>> endobj
+7916 0 obj <<
+/D [7884 0 R /XYZ 161.0655 408.0458 null]
+>> endobj
+7917 0 obj <<
+/D [7884 0 R /XYZ 71.731 395.9263 null]
+>> endobj
+7918 0 obj <<
+/D [7884 0 R /XYZ 71.731 364.5604 null]
+>> endobj
+7919 0 obj <<
+/D [7884 0 R /XYZ 168.8063 353.5502 null]
+>> endobj
+7920 0 obj <<
+/D [7884 0 R /XYZ 71.731 341.4307 null]
+>> endobj
+7921 0 obj <<
+/D [7884 0 R /XYZ 71.731 310.0648 null]
+>> endobj
+7922 0 obj <<
+/D [7884 0 R /XYZ 181.5683 299.0545 null]
+>> endobj
+7923 0 obj <<
+/D [7884 0 R /XYZ 71.731 288.9923 null]
+>> endobj
+7924 0 obj <<
+/D [7884 0 R /XYZ 71.731 269.0671 null]
+>> endobj
+7925 0 obj <<
+/D [7884 0 R /XYZ 71.731 256.1156 null]
+>> endobj
+7926 0 obj <<
+/D [7884 0 R /XYZ 71.731 254.8703 null]
+>> endobj
+7927 0 obj <<
+/D [7884 0 R /XYZ 129.5143 235.7918 null]
+>> endobj
+7928 0 obj <<
+/D [7884 0 R /XYZ 71.731 215.7669 null]
+>> endobj
+7929 0 obj <<
+/D [7884 0 R /XYZ 71.731 202.8155 null]
+>> endobj
+7930 0 obj <<
+/D [7884 0 R /XYZ 71.731 201.5702 null]
+>> endobj
+7931 0 obj <<
+/D [7884 0 R /XYZ 129.5143 182.4916 null]
+>> endobj
+910 0 obj <<
+/D [7884 0 R /XYZ 71.731 175.3535 null]
+>> endobj
+7883 0 obj <<
+/Font << /F30 622 0 R /F29 532 0 R /F38 925 0 R /F21 514 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7935 0 obj <<
+/Length 805       
+/Filter /FlateDecode
+>>
+stream
+xÚÅWMs\9b0\14¼ûWÐ\9b=\13T=     }\90\99\1eÒïtÚ\99Lê[Ó\ 3\8d\95\98©\r\1e¤N\9a\7f_\81\0\v#Û\ÚN\ e\b{¥Ý·ï±Á\10\a\91\0$¨½\90\14\11ÎHt¿\9dáèÑ~õa\ 6-$n1±\ f\9c½|Oq\94¢\94\13\1e-\1f"\9arÄD\12    J\90d £åêÛüÍ:Û\19U-bÂð\9c w½Ùd\852\9f³\1fîöêæÚ-¾(³.Wzñ}ùiönÙó3*P*-ÉI\91=j,\93@\ 4\ 2\11`I­³«\18s\ 4 ÒF&±K^«\13\9fµQ[´mÄ|T\9b]­Ç\1e\92zµ&\ 2I\82E\14×µ
+.\9aCnªÒ\94æy§.û\1dÒîà\rk»7&\808HÇ:fjl¸Ã\f»Ïì
+\ 2ìqw\98ÏþVéû*ß\99¼,¦òß*ó«*´c]÷üF-\80Í\7f\ew\97?¸ëJÝaL
+µr·\ feÛT³Vná$»õ.ÓZ­.ÜMi!ÕS®[\å³f\85»ªíÎ<»¥6U^<¢©u_m6å\82°ùS§ì¶Ü(ÝX`\a#N,\94¦\89kP]WVeV©ª\1cÄ\9f3\80\141\ 6"b\18ÛQ\12\10\9c³\1e\15û07gidgP`¨Å\8eO«%Ü\11ÂF¼\84 \9a\0      ò\1e^÷:º]c\1dTz\8d\aû40HèPGÛ¬±Ç\94\92X\8e\1avé·äÂ\7fJݺ°^6NÇ   C8ÅrØ\9b\8e;\9dØ\a\89KqÆh\ fuÂç\ euÖæ\0é\ 4\97\ 3"ö®õ&û"\8eº¶Þ\87Ê \99b&\90\90\94Ö-E\842Þg\93\beÓ×ü±È¬Áêß\ 4Ô\9eî?¦T\97\17YUem^\94m@ý,\\ e´\bÝÉÕ{½'v7\1fé¦\94       ùÖ̽\97tí?¶ëö0«$¨!s½ªs    l\85\8cÓ¦Â^ùE(!»#\v\15{ºër\8cÒæP­í®[½x5ªÕ\94]\94\eußîÜæZÛ)=Ð[ûð?\13\18$Fv$\923ÁàÃN$C\ f;\e\r!Þ  Ù0Ò\11\81\8e¿\9dÀrZ\ 2\ 3\11\88ò\84\9c\83\9d\83\9dw:À;Åé\80\8e@\f\ ft\1c\17\9cÍ\ 3\8ej?V\87Ú»Óq\8a\12
+,ìY\87\8a}ØÞ3¨_>\aZ;ØQÏlC1IÒ ïqϺ]A\1d\9egÔ~+ÄP\86\e·C!í\9bs"\91\ 4\9e\9eü©àaÆ¿\14\18¡\bSÉû\93jJëÇÑ\17ÿ\0ã\1f\ 39\ 42endstream
+endobj
+7934 0 obj <<
+/Type /Page
+/Contents 7935 0 R
+/Resources 7933 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 7932 0 R
+>> endobj
+7936 0 obj <<
+/D [7934 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+912 0 obj <<
+/D [7934 0 R /XYZ 71.731 741.2204 null]
+>> endobj
+494 0 obj <<
+/D [7934 0 R /XYZ 287.9544 706.1179 null]
+>> endobj
+7937 0 obj <<
+/D [7934 0 R /XYZ 71.731 682.6291 null]
+>> endobj
+7938 0 obj <<
+/D [7934 0 R /XYZ 161.0655 673.2412 null]
+>> endobj
+7939 0 obj <<
+/D [7934 0 R /XYZ 71.731 661.1217 null]
+>> endobj
+7940 0 obj <<
+/D [7934 0 R /XYZ 71.731 575.2602 null]
+>> endobj
+7941 0 obj <<
+/D [7934 0 R /XYZ 181.5683 564.2499 null]
+>> endobj
+7942 0 obj <<
+/D [7934 0 R /XYZ 71.731 554.1877 null]
+>> endobj
+7943 0 obj <<
+/D [7934 0 R /XYZ 71.731 534.2624 null]
+>> endobj
+7944 0 obj <<
+/D [7934 0 R /XYZ 71.731 521.311 null]
+>> endobj
+7945 0 obj <<
+/D [7934 0 R /XYZ 71.731 520.0657 null]
+>> endobj
+7946 0 obj <<
+/D [7934 0 R /XYZ 129.5143 500.9871 null]
+>> endobj
+7947 0 obj <<
+/D [7934 0 R /XYZ 129.5143 500.9871 null]
+>> endobj
+7948 0 obj <<
+/D [7934 0 R /XYZ 71.731 478.905 null]
+>> endobj
+7949 0 obj <<
+/D [7934 0 R /XYZ 71.731 468.0109 null]
+>> endobj
+7950 0 obj <<
+/D [7934 0 R /XYZ 71.731 466.7656 null]
+>> endobj
+7951 0 obj <<
+/D [7934 0 R /XYZ 129.5143 447.687 null]
+>> endobj
+911 0 obj <<
+/D [7934 0 R /XYZ 71.731 440.5489 null]
+>> endobj
+498 0 obj <<
+/D [7934 0 R /XYZ 330.0457 397.4514 null]
+>> endobj
+7952 0 obj <<
+/D [7934 0 R /XYZ 71.731 373.6958 null]
+>> endobj
+7953 0 obj <<
+/D [7934 0 R /XYZ 161.0655 364.5747 null]
+>> endobj
+7954 0 obj <<
+/D [7934 0 R /XYZ 71.731 352.4552 null]
+>> endobj
+7955 0 obj <<
+/D [7934 0 R /XYZ 71.731 321.0893 null]
+>> endobj
+7956 0 obj <<
+/D [7934 0 R /XYZ 168.8063 310.079 null]
+>> endobj
+7957 0 obj <<
+/D [7934 0 R /XYZ 71.731 297.9596 null]
+>> endobj
+7958 0 obj <<
+/D [7934 0 R /XYZ 71.731 254.9374 null]
+>> endobj
+7959 0 obj <<
+/D [7934 0 R /XYZ 181.5683 243.9271 null]
+>> endobj
+7960 0 obj <<
+/D [7934 0 R /XYZ 71.731 233.8649 null]
+>> endobj
+7961 0 obj <<
+/D [7934 0 R /XYZ 71.731 213.9397 null]
+>> endobj
+7962 0 obj <<
+/D [7934 0 R /XYZ 71.731 200.9882 null]
+>> endobj
+7963 0 obj <<
+/D [7934 0 R /XYZ 71.731 199.7429 null]
+>> endobj
+7964 0 obj <<
+/D [7934 0 R /XYZ 129.5143 180.6644 null]
+>> endobj
+7965 0 obj <<
+/D [7934 0 R /XYZ 129.5143 180.6644 null]
+>> endobj
+7966 0 obj <<
+/D [7934 0 R /XYZ 71.731 158.5822 null]
+>> endobj
+7967 0 obj <<
+/D [7934 0 R /XYZ 71.731 147.6881 null]
+>> endobj
+7968 0 obj <<
+/D [7934 0 R /XYZ 71.731 146.4428 null]
+>> endobj
+7969 0 obj <<
+/D [7934 0 R /XYZ 129.5143 127.3642 null]
+>> endobj
+7970 0 obj <<
+/D [7934 0 R /XYZ 71.731 125.2074 null]
+>> endobj
+7971 0 obj <<
+/D [7934 0 R /XYZ 71.731 125.2074 null]
+>> endobj
+7972 0 obj <<
+/D [7934 0 R /XYZ 139.477 109.4315 null]
+>> endobj
+7933 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+7975 0 obj <<
+/Length 1059      
+/Filter /FlateDecode
+>>
+stream
+xÚ\9dWËnã6\14Ýç+´\8b\r\8c8|\88¯ì¦é´h1S\ 4©\17\ 5fºÐØt,T\ fC\8f¦AÑ\7f/%\912eQ\92[dA::¼çÜë+\12\ 5Pÿ¡\80\89\1e°\ 4\98Q\1cì³;\18¼èG?Þ!\ 3      \r&tAßíîÞÿ@` \81d\98\ 5»c@$\ 3\94G\ 1'\18\b\8aD°;|Ù<\9eâs­Êm\88)Ü`Ð\8fOi\9c«úSü­ÿùáé§~òYÕ§âPm\7fßý|÷q7ðSÂ\81\14\9adQä\80\9aÊÄ(@\1c`D£V§É\86Q\ 1\10\14¨\93\89\ 1B¢UÇŦz«j\95\81l\8bá¦Iëd\1f§i+IÇ\91\11\a\ 2C\1e\84\9cñ.ÎSYÔEývV\ fÃ
+¡W°\8eج\r1\ 2\fÉ\ e\ 6\9eÎ\87¯\90ÂöW¥'ÈC\1dÚH.õ÷ªÚ\97ɹN\8a|\89\9cèMbXZµ{UU=i\9c\9b±,ã·~Z\1cû±ÓòÎÂ\ eý¤TuSæ«kKUéä*³ó\8fm¤~Z\9d\8a&5±¾)ó¿ºlöu5\8eP\9fÌÓcQfmfz¿C\82\0\15\88uiü}\9fu\85óK\9c©û\87!R\92¿\18Í÷ç¸\8c³Ê>ëTþ3\8eD»H\1fãýÉ\95ÝÏ_\13»1*ÑbʱæØ\10jºT\85\89ÞÎ\89\17û"¯cýü*\1f\97ãÏ-¦\9b8m\94\91\\94ãè\9d1ÿÙ\97ã\16é\10\9aä±8\fÖ$ym}\19\9eÿÚÙ56op\b\bïcîN\89Ù\1e;6\95:6Æ\9f×\932\95ðV4ý$WÊlr]ôc\16ÿÑÒ\1añiq½ßU6¼\bûK¹¼jë\8b¦\9e[T\16\8d-L-þ¬ëíÆ×æC\9a\16­÷¯Væs\91ªêÁæ\1ei(\91Qÿºl\91Þ#]IJw´\1eâ¶)\84\14ñ\80`m\18EÈÛ¦\ 6TèÂú6%\ 3ÝÂ8D­Øi´VÂW\8cé\84\17c@"\84½¼×ãE\87]5ÕA\84Ó7\90\14Ed¬£ß\98©Å\1aL\84\14\9a¢E=Ìv\ 5\93L,\17\14\80#Aü\ eZTèÂ.\ e¢¶»\8f\94[ج\83º  \8e¤\97wÞA»jªcì \91 â|,£ïH\1e\aI\ 48\93Ìç £\9b\87Ò>Û"±yi2\95×Õ¬£XBÀ\ 5¥+\8eº°\ 5G\aت£>Þ\e\1c\9dèð::\92\ 6x\¥\f`!®êrô\8dp-ÍM\10}\94ÐëPÔ\9e\10Ðô\81çîË·Ð\0p7Á|¥\ 1¸°\85\ 60ÀV\e\80\8f÷\86\ 6àÓq±î²é®\ eÏ;\9d%\7fµ\rÒöQû\ 5[yÕ1ìNCr­0\1dØRaZØzazxo)L\8f\ eÇ+[\98®\8cE«ælÑ}\ 20Áñ\8a-.lÁ\96\ 1¶j\8b\8f÷\ 6[|:¦¶\8cdÌÔ\85\852
+8\8d"\7fþ\ 6\14º(Oú×±f³\8f\90¾:è\13\8e\8fu>{»j*cÜ­"-C_\8eÆ:\8eöXæëV\10H(Ѹ[]\8em¿}þ\14>?=\9aÃ\9f=ÂÙ£f\1fÑëiweA|ÅS\aµà©E­{êa½ÅÓk\193\9eº:\8e\97£¬ÇU¦/y\òÿãêAéó{z\9d¢¹HF\ 2è\13·\¼9;\98éÅ\99b\ 2 \11l\88ÔêC\ 4ÎÞ\83=\8cÿ\ 2\14S¢®endstream
+endobj
+7974 0 obj <<
+/Type /Page
+/Contents 7975 0 R
+/Resources 7973 0 R
+/MediaBox [0 0 609.7136 789.0411]
+/Parent 7932 0 R
+>> endobj
+7976 0 obj <<
+/D [7974 0 R /XYZ 71.731 729.2652 null]
+>> endobj
+502 0 obj <<
+/D [7974 0 R /XYZ 257.982 658.1081 null]
+>> endobj
+7977 0 obj <<
+/D [7974 0 R /XYZ 71.731 634.6193 null]
+>> endobj
+7978 0 obj <<
+/D [7974 0 R /XYZ 161.0655 625.2314 null]
+>> endobj
+7979 0 obj <<
+/D [7974 0 R /XYZ 71.731 613.1119 null]
+>> endobj
+7980 0 obj <<
+/D [7974 0 R /XYZ 71.731 581.746 null]
+>> endobj
+7981 0 obj <<
+/D [7974 0 R /XYZ 168.8063 570.7357 null]
+>> endobj
+7982 0 obj <<
+/D [7974 0 R /XYZ 71.731 543.6723 null]
+>> endobj
+7983 0 obj <<
+/D [7974 0 R /XYZ 71.731 512.3064 null]
+>> endobj
+7984 0 obj <<
+/D [7974 0 R /XYZ 71.731 480.7248 null]
+>> endobj
+7985 0 obj <<
+/D [7974 0 R /XYZ 71.731 449.1433 null]
+>> endobj
+7986 0 obj <<
+/D [7974 0 R /XYZ 71.731 432.5057 null]
+>> endobj
+7987 0 obj <<
+/D [7974 0 R /XYZ 71.731 400.9241 null]
+>> endobj
+7988 0 obj <<
+/D [7974 0 R /XYZ 181.5683 389.9138 null]
+>> endobj
+7989 0 obj <<
+/D [7974 0 R /XYZ 71.731 379.8516 null]
+>> endobj
+7990 0 obj <<
+/D [7974 0 R /XYZ 71.731 359.9264 null]
+>> endobj
+7991 0 obj <<
+/D [7974 0 R /XYZ 71.731 346.9749 null]
+>> endobj
+7992 0 obj <<
+/D [7974 0 R /XYZ 71.731 345.7296 null]
+>> endobj
+7993 0 obj <<
+/D [7974 0 R /XYZ 129.5143 326.6511 null]
+>> endobj
+7994 0 obj <<
+/D [7974 0 R /XYZ 129.5143 326.6511 null]
+>> endobj
+7995 0 obj <<
+/D [7974 0 R /XYZ 71.731 324.4942 null]
+>> endobj
+7996 0 obj <<
+/D [7974 0 R /XYZ 71.731 324.4942 null]
+>> endobj
+7997 0 obj <<
+/D [7974 0 R /XYZ 139.477 308.7183 null]
+>> endobj
+7998 0 obj <<
+/D [7974 0 R /XYZ 139.477 308.7183 null]
+>> endobj
+7999 0 obj <<
+/D [7974 0 R /XYZ 71.731 306.5615 null]
+>> endobj
+8000 0 obj <<
+/D [7974 0 R /XYZ 139.477 290.7855 null]
+>> endobj
+8001 0 obj <<
+/D [7974 0 R /XYZ 139.477 290.7855 null]
+>> endobj
+8002 0 obj <<
+/D [7974 0 R /XYZ 71.731 252.9275 null]
+>> endobj
+8003 0 obj <<
+/D [7974 0 R /XYZ 71.731 239.8765 null]
+>> endobj
+8004 0 obj <<
+/D [7974 0 R /XYZ 71.731 238.6312 null]
+>> endobj
+8005 0 obj <<
+/D [7974 0 R /XYZ 129.5143 219.5527 null]
+>> endobj
+8006 0 obj <<
+/D [7974 0 R /XYZ 71.731 217.3958 null]
+>> endobj
+8007 0 obj <<
+/D [7974 0 R /XYZ 71.731 217.3958 null]
+>> endobj
+8008 0 obj <<
+/D [7974 0 R /XYZ 139.477 201.6199 null]
+>> endobj
+8009 0 obj <<
+/D [7974 0 R /XYZ 71.731 199.4631 null]
+>> endobj
+8010 0 obj <<
+/D [7974 0 R /XYZ 139.477 183.6872 null]
+>> endobj
+8011 0 obj <<
+/D [7974 0 R /XYZ 71.731 183.5876 null]
+>> endobj
+8012 0 obj <<
+/D [7974 0 R /XYZ 71.731 183.5876 null]
+>> endobj
+8013 0 obj <<
+/D [7974 0 R /XYZ 149.4396 165.7544 null]
+>> endobj
+8014 0 obj <<
+/D [7974 0 R /XYZ 149.4396 165.7544 null]
+>> endobj
+8015 0 obj <<
+/D [7974 0 R /XYZ 71.731 164.3149 null]
+>> endobj
+8016 0 obj <<
+/D [7974 0 R /XYZ 149.4396 147.8217 null]
+>> endobj
+8017 0 obj <<
+/D [7974 0 R /XYZ 149.4396 147.8217 null]
+>> endobj
+7973 0 obj <<
+/Font << /F30 622 0 R /F21 514 0 R /F29 532 0 R /F38 925 0 R >>
+/ProcSet [ /PDF /Text ]
+>> endobj
+978 0 obj <<
+/Length1 756
+/Length2 667
+/Length3 532
+/Length 1211      
+/Filter /FlateDecode
+>>
+stream
+xÚíRkP\13W\18µU ,´¶\82\ 6\91\8c\17\ 1Q0É.\18\11\f(\88Ê+\11\14ñ1ËîMXIvòÁ\ 4\ 4±Ú\82Ñø`Êc*ÒZ\90b\1fÓÖ)\82Å\826"Tm\87Ô\f\16¦`\vbQ\94Z\8a"m\a» \8eSüÙþêtï\9fýî9÷ÜsÏ÷ùy'¨D
+\92I\83Q\fÍ\8901&\a\91±ª\14\f\ 5\98\18Eüü"Y\88s\14C¯Ä9(\aXh(\ 6\14\ 6\rÀ¤\0\95É\83P¹T\86ø\81HFob)M:\a\16E.\9e É\80B\aY\8aÀi\10\8bséPÇk\10¸\16¨\18\82\82\9cI\f\14Z-PN\9cÈ\ 2J\98\ 5ÙlH\8a\11\f\ 3$Ep \rj(\1a\91L8\8a¡Õ\f\90=Þ&\rú§P6d³xS`\11or1à-\92\f­5\ 1\12ª\11I\1cÃß\ 5y'ÿ\86©©âQ\ 6­6\ e×MÈO¦ô\1c\8eë(­é   \83Ñé\r\1cdA,CB\96\9e\0\1f\9b\8b\85$eÐMEc8\K\11
+Z£\85@\84-\15£ÁÒÇ\0\95\15E\19!\99@qD:PãÚ,8¹\ firª\15>¾I#\92\88\98øÄ(Uà\93¾N\82      8EsëMz\bÐgìÉ\1a{Vó)±\94\11¤¢b\14Åx"¿\9eþm\99rÙ*\9a`H\8aÖ\80 i\bÀY\167!ü\ 4ñ\95\14äb\80¢Ih\ 4ÐÈ;\96\88i\86ã\8f\0>\9a< fXd¢­A\18\90h&&\r²0ÓÀ÷\84G\91ç\9f\13\11Á\18sEA¡@\14\1aÂËcX\b\90ɤy\7f#\12\ 6\96\854791|(Ok5Å\a   ¡\11\12Hg\aC,Û»½ìô\9b'óWUµ\7fà q\1ekûøV§Ó¹\8d\rùG)2O%­LôÖpÕ·\8f÷Ö\1d´
+2l\1ek\88e%nìçs-q\a\8e¼çöQ\9dùÝ\9a\8d\87\v¤ÍâïU\ 2Ó\1eséËã\81þ·c¬\99Éå\15oôÎ\937³}oïóYÒ9Ⳬ͵\92\1c\88ØTÕ4ÚÓá2+@Y\1c°ÀSÖYëÔýÂ\1c\81©ûç«ó\87\ev\95µ.'\86¾éZ\17\93 È\8a2ûÛÔa.i#ø\83\eÈ\16u¶Í\16\98xSqÞ>лÃ\83üóÕø\ 3Í©Æ;¢\ 5\85~¿^PÕ\18ï\9bóçå^»¤w\12|W4h9~\7fg¼3Ò,\8chén·îmí\95\1c*\88n\12®ójë\vNÿó-0®Ô]\83ö\ 4¿xêfÃÜËÛo$}ö       VøhÀÉóDþÃ\1a<£¢þ-áÊ;9\99ï7.\1fM\12XòÄkO\97§üRÝhuéh\9c\8d¹\85Û;#\ f\8d½ã\1cwÅÑ\1c\14k¨{PÚ\90~pP"è¿»ôJG{tu_\81n\9aëÜc;\13·Ô#\96x<jÜÑr¾¿g\7f\8b^öZ\97óôY_\84\9fC^º ºè|Ñ¿¶1¼£\98ô\9dÑZn\1fîïO\rhs°4È\8f¬¾2ø\9bC\8aê\91j@ä{ýÓÔ¾\9c\9bW\95×ÌÇZ\f\ 5\83×Ãò×ç
+O\ e9ÎØtïL_\b¬\88­°ÀÌ&\93Ï­iØ\99¡¤ìÔ;\9eD]òë£kÄ\ 1¶³U#è¶\9asGäÛº.\r\v¿\1eÚݽ0ɾ¿dÑÌ\84ù\17­µ337Þ;*]AèìÉò\9fzwÔ¢¿sÂ$Ä=ï¬Çì­9\19UîÞ_æ\\92yU\17\16\16\11q={£\17\96ù\v\1dç䤵ÖV\82¯l®Ä\87[¿Uv×D{]¾\Sg¯Ü°ù\18·¹¸~Å,\96~x¼»Þâ³ö\94\8dhí·\1e\16\1dðúq[     \15¶ÊßauËHØf_ìÔ]åÝ%\ eÞ\99á®Màì\98}\8f²:ú\15\83ä¼Âú\83aH\9f>¾oz{_±\1dý\87\1fò¿À\7fB\80ÐB\9cå\18\1dÎf \7f\ 1E|£Èendstream
+endobj
+979 0 obj <<
+/Type /Font
+/Subtype /Type1
+/Encoding 8018 0 R
+/FirstChar 21
+/LastChar 21
+/Widths 8019 0 R
+/BaseFont /BIOQFS+CMSY10
+/FontDescriptor 977 0 R
+>> endobj
+977 0 obj <<
+/Ascent 750
+/CapHeight 683
+/Descent -194
+/FontName /BIOQFS+CMSY10
+/ItalicAngle -14.035
+/StemV 85
+/XHeight 431
+/FontBBox [-29 -960 1116 775]
+/Flags 4
+/CharSet (/greaterequal)
+/FontFile 978 0 R
+>> endobj
+8019 0 obj
+[778 ]
+endobj
+8018 0 obj <<
+/Type /Encoding
+/Differences [ 0 /.notdef 21/greaterequal 22/.notdef]
+>> endobj
+8020 0 obj <<
+/Type /Encoding
+/Differences [ 0 /.notdef 1/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash/ogonek/ring 10/.notdef 11/breve/minus 13/.notdef 14/Zcaron/zcaron/caron/dotlessi/dotlessj/ff/ffi/ffl/notequal/infinity/lessequal/greaterequal/partialdiff/summation/product/pi/grave/quotesingle/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 127/.notdef 128/Euro/integral/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE/Omega/radical/approxequal 144/.notdef 147/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe/Delta/lozenge/Ydieresis 160/.notdef 161/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]
+>> endobj
+934 0 obj <<
+/Length1 1612
+/Length2 15481
+/Length3 532
+/Length 16342     
+/Filter /FlateDecode
+>>
+stream
+xÚíºUp&Í\92%(æ\123~bf\96JÌÌÌ%}bff\86\12\97\98\99\19KÌÌÌR\89\99\19¶þ{§§Çzg_vúimÓ,Í2Ü=\8e\1f÷ã\11OIN¬¨B/db÷\ 3(ngëLÏÌÀÄ\ 3\90·°ùáâ$gg+K¯\f4s\ 1ü5²Ã\91\93\8b8\ 2\8d\9c-ìlE\8d\9c\81<\0\r    @\14h\f`a\ 10sssÃ\91\ 3Dìì=\1c-ÌÌ\9d\ 1TjÊ\1aÔ´´tÿiù'\ 4ðÃã?<\7fw:Y\98Ù\ 2(þ~¸\ 2­íìm\80¶Î\7f!þ_oT\ 1\ 2\ 1Îæ@\80©\855\10 ¢ ¨%%/\ 1 \92\90W\ 3H\0m\81\8e\0E\97\1fÖ\16Æ\0Y\vc ­\13\90\1a`jç\b°þ÷\ 2`lgkbñOiN\f\7f±\84\9c\0F\0'{ ±Åßm@wc ý?.:\80=ÐÑÆÂÉéï7À  `æhdëü·\aÎv\0\v[ck\17\93\7f\büµ\9bÚý\8b\90½£Ýß\b\9b¿¾¿`\8avNÎNÆ\8e\16öÎ\80¿Y\15EÅÿÍÓÙÜÈù\9fÜN\16\7fÝ\0;Ó¿\91&vÆ.ÿ\94ô/ß_\98¿^g#\v['\803ÐÝù\9f\?\80\0\13\v'{k#\8f¿¹ÿ\82Ù;Zü\8b\86\8b\93\85­Ù\7f\ 38\ 2Í\8c\1c\81NN\7faþbÿÓ\9dÿ¬\13ð¿Todooíñ¯Ývÿ\8aú\9f\1c,\9c\9d\80Ö¦\fpÌ,\7fs\1a;ÿÍmfa\vÇøÏ HÙ\9aÚ\ 1\98\99þm7q±ÿ\ f\9f+Ðñ_\r¢úgf¨ÿ\9202±³µö\0\98\0\18åí\9cÿ¦\ 4Pý¿S\99á¿Oäÿ\ 6\89ÿ[\ 4þo\91÷ÿLÜÿªÑÿr\88ÿOÏó\7f\85\16w±¶\967²ù;\0ÿ¾`\0\7fo\18;\80\9f;ÆÚÈñÿ\16ndcaíñ¿Ùð_\ 35\80ÿ&ùÿ\80#ålô·\19B¶f\7f\ 5ab`ú·ÑÂIÜÂ\1dh¢háll\ e05²þÛ©\7fÙÕlM\80\8eÖ\16¶À¿\8aþ«\99\0zf&¦ÿâS5·0¶²ý§õìÿv\ 1mMþ+ù¿"ý\8b\82\9c\92\8c\98\ 6í\7f½Sÿ\15¥øW{gU\ fû¿ÄþG)rv&ÿsñ\ f\86°°\9d\8bþï      ¤gaå\ 4püMÈÅÌìó¿Éö/\18æÿ\Ë\199;Z¸\ 3\96ÌÄü¯ÂÿÇû\9f+½ÿ\ 2#fklgòϬ¨8\eÙ\9aü\1d¯ÿiøÇmìâèøWÕ\7f\9dø¿\ 5ÿÇú_\83\ e\ 4º\ 3\8dáV\97ì\8cy\83-S3Ò\9ck±r\86&Duúz\98Á\87BìK\1aT\vóý«íºýRÃw¸+\fßkB\18\1a§x>Û<\16Oí?ö¥i\ eFz0­)»\7f\ 1/óð}H©{óQ6)~sÒ\1e\ 4\97|K;Ó\88öºZ\90Ý\86Ðæ`R?Ø\9dPRÖ/~\87"\98úÍê\bsõDíOê\9aï\8fNöh\8fèk\9cR\1f\8bÑ\81Ü\b\82Z[pzF\91xüôH90:<4Ø}\ 3Ù»\8fG\9b\1d\vKÎë
\8d"Êß!\eO@[­Â+\82\1a*­      \ 1ï¦ýê\93H£ËK?\97\9c\f\97,ÒFöUÑ,oͶ]ö=    2­]à{¢\9c£dë~¥&æõÜTÔw¡Ä)îÙ\9c¯u\17r1'¬ïMø\93A}·3VdAÓ\19Ðõ\84C\ f`×T}Ná^µ6Õ4¯½\889óÃÓJ\1d%õn-PûäLôÃ\11.\95\88"­öNä\9eºËÂ2æÀ÷Ò¬pÛØä\81Ç\ 5\8d\1f|¿{f­jÎdMrô\1ck3°\15\19N\9bÃN0N\9a8
+\8c\1aoDû'e\87\82\9a®µåÇ%I\8bÎ\94<~û^F¹öá\91Å\97¹Ã<2GiêÀW¥Þ36\96¨u´ÈΫ>%\8dt\15µ!µ\99ã-\ 6g\89\91ùr'"\84\93Å\91"bþ\98Ï\1c\vÓù:í?Jwß²EM­8  ð<      u\19À$\81\9b\99/\0ú_2Ò`\95ç\91Y\vÙh\16\ e2þ¦(¿k~Òd­ùÉSö\8b8¦¦Èámxl\15q*3ü{\0_,f´~èïW$8Ý\ 6[vúý±Üçy\12?ÇAH«7\9d\97!DpODQ3¸\98ï\1dé8w\1ec1\rð\ eDJ\91Ñ.\16ĸÃ\bâ\97s5?
+üH£f:Q\97ÀY\ e\9d\86\8e\82\eÎ
+n\8f\bÓ\12Û|#¹\9e\15%\13}\93cñWÞmM\91%U\8dØÕ[\91_\89\1eQÚL\92að!Té\9f>¯C¶\86p6¢\83'4Ìù\88©Ð²Ð\1d#\v(Iwg\rh\9e¯ÙH¦kÖ\ 4«¼ø\89á\8d\ 3\1e­\92vQ\93únÚ\98Ù\ 2¬\b\8d-\8bÛ~0ÈNYßÖôzg\80C«SC¾[\93\13\ad\ 3²ßÔ{ç\9fl6ò\87 ?±\93ç\91lÀ|1\16Ï$­WøZõ\e ¦\føµ¥÷V²ø µñ\9f\14+'\1d%\13 [d\a\ 6è7rÜ
+\1f\1fzªf\b?\8f\19,\8aÄ\ 1±M¸³)D\8b\ 6\8cðW%ï\90Tç5b\98Þ\88ÏXi\85\99Ø / ò×\9f\12ÓmªÈ\1a\89íåq\92\94ÔbÞR\9cþШÖî\1f\93\ 6§ÿ4Ù·U\83|:yní\8bÒºúB2-\ e\87\18\88uǸù\9e=\ 2¿\1f¾z`\17©&Y\ 2\12gU\87\a\98\8e\9a<?ÑU-Á5þÅÃc\ 2\e\vdÇÂëÌ\94\82I\95l\ 6iHÑ\12\1a\16¸*XÝ\15\98\8f­&Z±à°2\9a÷\¾\f\á ØY\99é\85\1c·\e|D&õj\18Ú\13>8\80¤Þ½QrÞ\96>\81ò\1d8t#7£\a
+\8eÄ\19Efè\98\96\1cÕ\98°SÃ×\83º¯)@\92ǵ\92)«¦ÐdK\ 4¼·\17Aufyÿ1zµTæ\9eü\b\19\10êYÎs\1e@"5-Ms3eÔ"Ä\ 15u\84\88Ë#+±ô\ f\17ú\f\98OÔÚ.C ÷!\87æ} ñøÔýì\fÀ¢ã7_\b\v]È'ñrðá§QÙI\97ÿT\813µ=©\86zE\19\11~\19èá~>ÕA+(S\93WpÏü\14 Ø@ ÏJ~:&öo1c\89zW¡\9b¦\80\8aôa«\15,ËiOK¢]±Þo´{\18ʨ\18ódÚ\17\ 1Î3g\12³5\1a\93<\9daÚÇÐî\8d\81p\1dQÃG4¶\1e§´æ©Ì\1f\84BÁÇË\18'\97Ù\93\81ùZ\8bôõ&\8dî\vÇ\16ÇM\96IS\7f\18\8b¬ôE\91ñ
+^)ð>\95É\eÁèÏ7Â??¹Éeɬwd\8a*\88A\9c`ó¨Ó{F§\9ctÒ'ê\84\99Á\88qRØR[\7fÑ´òb\17·LM\91ÈW\932H4DtòýÚ\81<ç±.z\95u"õ\91 \ e\87\ébhÏnÓ.¹)ÂeVdJ\rüùê\J\ 4{ÝË\16\b\bø>\95\99j¥ô»¶­Zàãì\9eº\ 3\1c\97\ eí\853\8aJÌe_±åÁ»zë\11R"ê\b\9aX³±~^©\8eá:(­N\8cïíÊϦ`\850©%\9d\1a¸Ä©rª\83,\85\vø\9eÍIc0Ò
+k^\85â^º)`Ë\15¦5   -@zfçÞªÊ\81¤½\10\94\aI\15ú\vô\17\8dZ\95\ 2\ 5ª§z\ 3Õ\80¦º¨\90\95uB
+\16º\a4'¹2ÿ-;Ë\1fñXäLdLW\1f9äðßS\8e¾\a\8e}±dñUmÉ£P\ fò^\ñ\99\15ìÑ\89Ô¢%L|OÞâ\8fJ\eÁ\89\9aé߸xC«ã\89¶Ù\94\99     x\89\1c7\11Ö¶ÞU?.\9ey\r\1a\86\83i    7î.á¾3\1e{+÷~á\82\11ÈÍ|Õ\12¢Í\95W#F\9dxWWt^\92,Øe\9eG§$\94×ê\a<Ô¡§k\1c¾®\93ÀK(Ï`¾qì®±9­Õ\a\91r\8ct\88\15\15\ 2­BR\19_\97ö\9cqÚ7¤(-3-\94)Ù+lÒù\90ýµÕT¯L\ 1.;\14P\ e·K\15«\91äXÛ®~Eñ\87´~ªufúÉÃ{|Ò£Ð/lMWÉTÓc3°2Ï\16]\86\81àªT¯\85\18\9b\8a`\81ÔcåêC<ÇTËGK§Xú\96º?w Àü"\e·òõ>±\9a\7fÍýB\87ë\v\81êzÊ\1e$S×\86X\808É¿\ 1!\15ª¤tAÊ\9bÆM\93OkVÀ    \15Çß\86\91Ñjr7×2%\11Þ\7f\8bÀÖ\ 5\87?\9f\86\10ÌC\0(\ 5\9aø»±Û\9aP\91\v\ f»
\92F\17¤ÎÔ\8a¬WÏ<vMt\ 2õôvú0Å®ô¶3ø\88E\18\93\7fßE\91\1d#¥0X°D\1e<¼;HÁmj\86ë\8d¸ÒÓú*\14§ø\7f·\13\8bÓWýAGB̹¥!ÿsCÇ\7fUxZ1\9e\0ªÕ:î\1e\82)S¦\9dÇ\8d\ 2ÔC\ 2\11_306§Ã\9aQÖ?¨\16MP, \11µV/)\e2)à7£\18 û¢´ä\b´Xpû8Ú\9egIæ,
+ÈcÌí®ÝâqÕ¼ÒVÕ9_8\88üæt\ 2C;\15Ú¬1\98-?!\86u
\1aí¯)\a\9aQoÞ\7fø \8ew\eyY¿\vNÆù@ó\8cÂÐ\8a³×ÛH\8eõïhC`lö\99\80[ÈMìZ¼>H?¯Mù+O!A\r\9aêüjÝF\8d\89õ¦¼LH`vÂ\86½½%;"Ã#øq,\13JSXîD\91D9{iQñ\99\8dÖÚ\81$¹ú¦cwï\97\96ñøeWu¼Æ05ÁÎEuÁqK"ú{gan1h\ 36\7fê \98#S}q\9e\89] ¬,2Ñ¿\8d\ e\ 1q\ 1¥¨\ºN*Âh\ e\13«({9\18ÁoÄÆÙ\87(pFª\98¦N\11K\12\7fsöÓÓicòÌ\1dX\8d´ã[\1e]Ï]É-\8c\ 4µr¥=©¶äQS\8dd+\9cÉ/\9bh\9aËBÏ\16T¨C\98\95..§bÓ[¿¶âú>|*\9eº#¼i
++öÊ\ ed½½¯\8e\1cæ\ 2Gå]n9eXש\9dár\15®\86¯\14u<[ª\86`: ÕÙæ\15³\ab\8b\97\9f\8bÃ
\v\9a\0C ¦«5{\9cW\19°\f}Ôâ\80\9a í<\9dÄ¥Ñ>cCÝÞlr³\84+FëõÆÜ\aá\98Ã¥\92Ü\82¿Äýc\12O$\8c£ÑG\9a£ñ\ 4?o\19å\ 2ÅõF\1c\8aºu\ 4\96=\ 5Ýý®ÊS\88Yìªà:\ 69ðyj\1f%ϪÛÔ!úð868\ 1t\MôÅ\8dØ s{K³
+"É\80f\14߶\174÷ª\96ìÖâ\ e4g\7f·)@»\82§þÐVÙ\9dÃk\84a\ 3O­ôì{CÅTÌ\90óç>?\97×pFyA\0ÌáÊ\bÚV·Ö\80£@;cïì\91Wûm­\14:0\19·å     U«KFë\0À¶á\12\9e´G{^\81ó]ìI78ß)\9b?\98â-\98\99£´\82±ÓiïB\95§¬ä»¨î=³¾Æ\ f@\fhé@ér\19¤·\14ªi\10\1eñ\95¥¶      \8bäü~TõÏ\167,\941>z£Åo3\14\95k?or\ 3Gùf°²SlÉÂÏV\98&j\v\14\87\92ÿTôB¥§ò\8b?Ò/M!¾\9f\ f5\8e(1d\16ã\eÁ\93aì*l» ÚUi\ 4òõ\16ÈYá]ÏXDNÙ\16C\9dyÓß\8cZ(d·\19\92\94ÐönîOÞ\8d)Ù{G¼~ùÍ:ÕeA§?ðC\84c£0\84ìO¨$`\1dì¨6ýÁ\1fR^6        \12\ f"9q\9dK\94 ÈãqS7\96µé\9f\ 3¬\89J5¥´h²²:¦E5Æ\91eÃ6\12¸_ü\14kýÎ\9a)#£N\92T\97·\17\10yNIÃ\10\b\a\94'v¬Za \9b\98ÁÏrqJ´û²J\11G\1aðû³s<úx
+gâiGÝÉ\81æ\e$\ få(|[°°Á,qnü\aëÀe
+_Ä&C\89WEÝ\9a6ó)Å3I¦[©÷hþ\v/\8c\10#'A´Ö\96wª²{>\ 1çcÇ£Ñðë\0\87L\99\ 3\84Æk°\9f©Ó6ñ©å«\97Ý\17j\8d¡ëfr\aKJP\ 4*\7f\ 1ªÄ\9a\9b(E«Ü¨EíËBÝ!\82\\19Ä~\93¢\ 2ÄúU\r[ÙÖ´&\8f\8c×aG°\eê\80Òc\82Yo'\82j<ê>\1eÅ\18Ü®\84\97S¯¾ó#ôR\94\17Æ\83F1\82\b;\1a\ f(\14¾¶ãtÙÌ\91\80ú\90ùH&´¨Á\12øû\11¡åbÁ\13\1f_Æèa<zn\16Ùw¬¡»pCkzXÐ5´&\86À¢G\eW/&Þ\95å¨5\9e¯à\9c\17\ 3
+-Sp)«k\aSAu8¦\12\1eDÛÀS>\14\1e\11\1fÏI²`=íú½çObW\19ìþ\9f\9d\81\1e\96úoñÈ\ 2íºX±\1aGÐ|\81\ 6\8cÁS²\96áîu\85b
+\19û´\9d_3=ÃÛ¥\1f\16Æ®!\13¹ü\9b\92ü\1f®=xóFN¾ñD¾Îr=8ÇÜ"m\17r\8aûWí9(H\8dg ¶\ 3Å\15\ 3NfÒ\97\11nBçÙµõ¼%w\9cû²\99\r\fe(®\8býÔòL& ¶!ªmõ±Ð}ê0D:±\1c\1c\13\89/\90)Òð\9cà\15ÜX¨1{\0=ʹ\vG\87\eëý@Sl#Ý{T\83\1f\1aÑL²\fªþ\ 5ï\8dPÝfó?,¡¸}\89\14\94o\7fý\99\8b\84Ò£¸:ecû\13÷\1dó3jr3u\ÒK\94lWò\11ãú\84Ä\98\95Îa\a-(êg\14\ 1\17H÷\>§
+<Ö\18±é\ 4w"³eEåºP#\ 1W5Nâ\8bÂò/ð+Ol×6nJü\1fßÓÉrlÔH]s\12Ú{í¯4Ü/ë\15wÊè5»7Ô¼^\8d\94\ f.\99\9f?DÕÍûl+\8dØ\18Âï¼]ælx\85æ9:6`J
+¨%\85\ 4\12Þ×¥£^Å\82\94è1\15c-RfíD£§\15]\f\ 3Pl¸Eækú¦¥'ûý4gw¨"f» ?\9dTWëûqʯzq\9c\8b!Wr/y`!Þ¾°ÖI\10bÜØí`NÁ+±T~£´Ð@¤\9aé²ãÂ4Âñ4\v\1d^÷½üÚ­\90ú\1dG\81=4WeÅT\ 1Ë\8d\rÊ\9cv'4\83\13\98þ\19Ê)Ñû1Ü\10u~ü\e        È\vg\ 2O?\ 46¬Þô|z¯R¼B       ºwÏ\856\b\16\83Ä^K\ 4\83\1c¼ÊP\0×'Bp95U\ f\11\88ô¦®z»\ 4\11Y0\15V©ÍRæÕÖ<]gêø*(!¼åCû¨9¢\10\ e\91Ó\1aL47\ 2\81aª,\8e\8f\ e½Ô#^\9f\97j½# VåÛ«\12±rq\8b\86\88P\11\10Xtfì\1d$\14O6`*±¶"c\v«Ö6É
+\81·¥`\rZ^\83\8f?â¡ù0\88\11eÑ­ä \7f\9eÂxß׳$\9aý¥\1fêArÎөȪèÚÀ\92ú¹)\9c\81\87\172\13ÝìÙ×Ð\bLÏÓÕUÂh?#\b\10\80ç\88ÿÈÕ¾Í\ 3\ f§7\1d0+¹\1aG(²\9cèÒ\12\a\89ÅXLá4'¨=e\18À&®cI*N\e«ÎÌ\89}{\8c     \96*¹9KÆîUÞOuÙ\84\8aÁO|\14j÷¼êßÚ\80·#QOÏX\15ÎÛ¼ÀÌ,.!\ fý\\ eæ;A[\19,è4\14Ô¡<mY\9f\85\9aâ\9a¨\1cbðÕÝ\9b!j\9b\13oè[¸îÝ\84Rx\90©þ\98
+\93·­ÀyÛ\9c\98\11dô¿\82ãfbÅø8ä{ï°Zg}u\ 1\15\f\8a\8c¼Zy@ ¦u ¤ÝßÃ×\84ç\925\9e\9a±Ú\89\17Ì\12\94åã\16È7pÄõ)h\93XÞG2ÁÐM¯\90Ϩ°£ãG5\93Vi(¸\8bAQ\9b̼Ç\84ú¶ô\1dî·ÉÏi\92j/pÌ\82\9eø\\19}®&hØ1â|è\95%XV \18"\84L\8fûYÔ=ê\18\13ûU&\1d·\9bà­8Ü\vQ\14õïζ\1fÛ覷\1ehÜòéÁa`m\85£Bª8;-Üñbí\9e m\8bnªK"¥;q\1cM-q(­Ö{\1cË«ø½ì   \1a\ 2,çfpZJ\ f÷\86Ú¦«4IÇ.\84I\10í\19Ç,\8c)¦éBÉ:t\1d¦ö±©¿\96r¤!ÏÑæ\1c\87Nzm\9câ\87®\91Ç\14\82k)ö3j;B\8aáZ\7fl=gþaì3I&IÕ¥LÂ×Ü\7f\80ÏäÞ¬\bË\9c#ë¤å]\bã=\1fq*\eÆúUÕÉ\9f\8cG\84\16\98-4J²\9d\8a\12~\9dÍéÝ·¡±,V:\84µû\89°AÂ,\9fC5ÍI¡$iɽé\ 2B\1a%¿a\9añç¨aI&£\97×M2Wx\90yV\vÜ|\9e®ätÅÇ\ 651:\1a£Í£\ 5P\808Éæ\8b\85U®'[ËK1P \ 2Ò}¸²B\8aM>º&\ 3\95i\9e7¿ìÿfÖµÜ\91hnÒ!o\96ÅÙ­J=¤b\91ï\1e2ï7KÇ\1eü.Ô\ 6±
+Cؤ¶\95\9f\1d\1dF\17aµ¥kõU\97\80=ÒÍ'Ô\8aÞºyüM|¸\9a'>@^)ݽ!gL¬\88Ǫ;áòÒP\90»Î\8d\ 5Ip½®CD\9b4äYò\ 5Dô±\18ÑQ-¾[1\90@&£o«£¾K¢lVÅÍWR\a²(\85£_\9fSü(\9f\eû\86\80Ù¦\112r¯Äù±zî¨fþÀo\9a\86!a¬¬VO\8fù5Ü£~ú©`\87\84ÜTNFϳM^\16C\80BPòÎ-\8f\0æYü:ØOä\fC¼Ýï\ f\19l2~U\19Ûs\84e1¸{g\bL\1d§\e\95æliú\1c®\\15\87\17ñB\v2\15\ 3\18GLÏ·#r¹Ñ%b\1a_0Joà+\1c¾/¿ÜÕê   ë\1a\7f
\18¢½\ 1UÞ.§ù\ f}LK*\9d:°Ìcú\8a.Ï$|z\96yû×ÚTu\8e\9b}` Æ2\ 6DÅÅ
+{dô·\16йJ,\97Æxg\f*1\89S©ÍûG{ý¡Cæ\97\ 3\80K^E4ý\fE6\ 2|ûZ¢\ 2ãO8ݪ¹ëCù®Nå:\92§ø*³íÐ]ûé\1f\18i\7fÊ\94\ 3N\80   Z¸Ý.Gx:¶ö$ÙÊø\9d\8ez»Õ\1e\8eëô\f\87\9a\ 3®SZ\f 5@.lü'M\82\ 4\861°¹Ã5a@¶ûØVH\rQ\1a\8fñ~\19ç\8d\83\19\f\1aN\13Æ\83\9ò\ 6Á\bE\80yåZ(e\8dG»ÇÓ/=Ê   86íAK\9f³Ì&ù\11\ fóø C/¹i£æ#K\94ÕO¾(?\1fÙ\870Dº\16r9©_\856ó®kèUçø\12ªU1E¯z\17óL>B*['\ ejz\94\9e\82\91Å\13AS½9Õõm+a×\95Ô\1fçþ6\1cÌ\12¼\8f\89À\9e\13ÝWe\86è lзe\18\8e\1d\7f§[\19\85\10\1c\9dðÒºl\ 2×hÏûõ'Wbâ|8b\ 5þü\9a¼\ 1B?\18ÆKÁ<Ø\8aÁ1»\fÉH\1c¬,
+*%\1dé\eÏ\9fùmÓ¨0¸\9a \ fg
+ïó7HI]\81\98´/ô¥¾!tµº\88\ 3\ 1<øä\r£\8fÔÝ\1aót\92m\94ô#câ»m¼\18Êô%s·\9dZ}0À[ìæaª©ÅkëC\8f\96\8dÏØq\93-\80»#LÒ\85,)IiE11#tÕè\8f£¤31ãä\1a\ 4\95\9bA ©³)¨
+¢Þ\97fY\99Nò&O\97R\18\95Ú®]q\94\ e\17·øÙ\19\94\88\ 3\87µÈoä\109B\17\ 5EçL¨²C¨p\10\13:Ph\8dZ\89\15\9c\ 6\84\13ë\9cY\\12Íßl\93»jgP\8dd«j3m\9b¥¼bývK>#\83¥;ÛÑÙata³\ 2Yó)qþl蘒p\1aQYë4¤\90QÆ Q\18\86Ksþz¥Å\ 5ðøiJ+\85\1a\85\85Ò[H¥Üþ²\98\14nZ´¦¥ø\1e\ e"bÆÞ`Iâ7ÔÝÐÙ\bäÒ\a\923á,SÒ7´\83\1e#\18-m\99ÁÄm¸ö¼Áp\81egÆø+\94Ò¸H*»\8a\93¾-\141z\9e·V[ü\7f\f\18*s(ÉYyDhF\9d\1f\9f\7f\86\ 3>\9cªbðç\9d¹Æ\ 5¥58ê¬\88\våB|Y\r\9cøCÈO,*\827\99]Est\12\96\91b\17\116P\ 4a'\1fj)ùX\bzO\859uZÕU½\ 27@Ì$>õ~\85¨¡\16\9a\9fDþd\\f?\96ÎTöî\973\9eý|S\90\95\1acÖ÷Ó?b½ë[\9a»+\86ùöBÚ\b¥³N</\7fú^\90X\11°uõdc\88DP?\1fÆ\8e\ e\19f¼,ócÒ\ 1ê[s/È÷kï½W]?b\8c<8
\ fIìAB F       \92ùXAq\ 2?N\9eû\vÆÁ\96g\ 5gH\8f\11q¤b7¦ã\ 5¨?$\10ç\9d\\81!êÇ\87v-½Ë\ 51\18\99\ 6\11¡J&qài<p\1cË\88»\f¥\ 1o5QÍ+\8bD\ 1ã>]3\99³y\99Öö[\8eFP|ffäÄa#l\94\ 3\19nkê\9aT°t2öæ\85Ï\94\ 3\ 3\8bO{ \ 1\19Ǩ\Ì`«\98w!Oö¬\92Q8R\97\8ak\10êó\1eI}5Ï\132°ôéÊöø\18¥r\1cW¢TKˤ=D<\Z    ¡xêTd5©1»+~ôCaD\1e\80þ3<´U\1f!\ 4\12{J\80j\8fÐ\8c\vÈ\ f\87º`\9b\8eÔ
+ÄØ\976\89÷ÊÒ\a-\89ê\14!\8cÄöí\8aóMË'Ä\9a\8e\am\10\82[\ 1\12˼T\18-BË"ç©]\ 1s\1c\9e\9ad6«é\98W\94\1f\ 5ɯ\89§´<T&å\89\ 6ﱨ2¢oj«²Ñè\9düÄ\8dË\85\91¤\8c\ 5wBW\10\97v\8añyi¥*\v\939\97­Âkì|Uî¦Í\8fԫ²\84ì¼\ 6<p*Òõ\13¯©B\85\11ãPÈ$`¼0<Ní.\16¹\94ØP:øl7I]W÷5q;ëMxA\9dòt#LCkV\8d§\1fz Ò\90*Á¼\93®/^\92O\8b\b\ 5      ¯¾lW_\88.\91\97Ù<ê¤ýÍf\84T$\1dþEú_\85Ù\92B\81,9É\15\12B0ù¿ x\9fj      \f°­¨1ª\8e¬Ahl/Ç(5x\98~tï\93Äq\9eé\8aÎ{\83T²â\15V\fbbfëî´ÞLå6[\ 2\ 3Fâä%úÍ\1a\13/j´¡\80_$Ò¸\84cäîP(\81\84\95ê~=\19M¶U\11CÉÑã¾H̸ë\17Æ\80\95\ e(\9eB®_.à«Øî¾Û\10A\8fo.´±ôNɤIn\RëH\ 4ÆÛûò+\91É|r"ò®úR}\9aOÑ·÷&/\82@\bx}**\97ÈñI=X»KöJ\7f\8aRb·\13ñFj\93\89Ó4\9f*øèS\ eÀñãÌòk$Ù÷G3éÒº\9f÷Jîö\93[Z¡ÍãÏ\19#\ 4è¡'\ 3ã\99dvâa\9c»^U\9e³|\93L3¸Ø±»p\81º\RCçZè"¥\ 3<¯~0Ò;iXÓÀ§û²AQüºÄ1Ø'*il\v²\9bù@o\12ýV©\v±Ñì-ÛI'\9c       \86       +;Ï¢îª×ÍÄÎï}Ð+¨\ 2\9axe   q³D\9fâq\9c\9eWq=å÷P離\96\13YÚ`ó+:\b¤®8«\vÁÃ<\eÐ¥æõRB8KiDkÆØ\18"\v\80\ 1J¡Ìzååa\7f;Ü"kjV¿}Äl=38s§\f_õB«0\f:«#δég\7fÿ\84\89þÏ\9d뤧\âeyç·\f¸÷U\99ì\94\9f\96UCË\90\ 1\99\vãÛÍM/\82xÓݳçûÌ\9cÆC\12\92\8ae\83\86\ 4ß~     ']\86gûï\950N(Î\86Xi¾qBÜU]\15óôà\83\86·óuZ\88á\8aê\90¥²½Z®î \v~©1O\13\1c
+\1a/}\14ùÝ\90\80å9ªÜ\85\199*Á3\80Öw»\ 6®-ûô¥xV æ\14ÎAj\17D÷OW=ç5\16S RLÔ3ÃãÂ\rdÀ8ÈYÍÌÕHép¹\84À\ 4§ps%v\9d\94ûJ\8f;dÚÞt\14\15\7f°B¡{(ÔÌ\18\942÷T\8dÃ\8aF\8bk   \83x\88ÿ¤\ e
+\ 2¢\12V¹­;\8c\17¿îªÐ\88\9cg¨w\83²yd×\8e¿8?óñåSe7\11\8fÎ,\ 13\8e4\1f\92®\9d½\95\ 3\90ò¯>
+\b\\86\8c\8cø@1ò=\90\18\99\88ôë¨Tw}\9bE¨ÂÖ\99ð\ÉD\87!$\8c~
+O4\88%qöð¤c°\19¡\1a/V`U\a²\83-%Æ\8a\92¾\rÛ9\9f¬eß\96\12þða\18òIv¿ïóWÿ\86ã¯8²\v(n²JÖß±4èiüÙ%v®DS\8ce2­\8f\86\7f\98\90è\901®E\rG~-?\f\81W\ebºA\98ÂeÜ0ÍùMƺ¦µò\89Ä\a\17\1a\81\9dÅ\96u\ 4\94Á\05àH9uÎèØQ\87Èã\8eKòQ\14z\98ÒÙ\7f\r0s      ]³Ñh\93ÄÂ$#®¯e\v3+:\13x#\83û¡ê¿;/®IÇà\80Ë\f7íõÄsÅwBøäî\91ëùíW½± Sûkf\9ex\ 4u.ê\85\1f{§Ò·\fÑîQ\18ù\90t\97¤)Gî¡éîQÓ\10\8e>¿àiPV\95t\ 2A\85r\16tªý&r;õPÇ  \ 6ݬ­I\16éBfK_g\rÎ?p\840\16\85K\ eRHëµ\9eÙ£Û'ë\ 54\e\9b+\88\eÇÌ\ 1KO½\1då%(Åi\94\83\9f](4\ 4¥\94Ï\82äù\15ÓH1Õ¥?ý¾»ÏYGÜÐÆ\84fË·\0>Qêó,·\15ü'\82ãâs\9aeqÈÚJ-\18sõ,\90Ï$¥ßÞ\96(\9bã<±\9f\8fÑ\97Î\94Ò5S\v\bò\9c\fE\86\7fÂ\8då&ÿÔu\15\94Ý?ñ(\7f Ú= Ú«ÒÅ*Æ\11\19q\1cctjëÅôk!\94\91¤\96\17úæ\1dJ\19\8f·÷Ô\99dövB0.À\82O¥ncpÞ§Ü\ 3IZþ\85µ
+%ä\87\12¸¿ã\95\ 69-%MûaéÓ\83h\11Íù .R¼Ô0\v\92ç\ 2\92\0Õ\1c\ 6m=\89ÎÂí-r%p"\ eÕùk¹0¤&þ2D\945N×}        \15ÿÉ\87Á\80ñå\ù\18»uù\83h°µó\b\9f¸ö©\ 5Åjª\9eg´j\85JaÙ\8c\vËS\19´\ 6\18uu/\82N2Ô\90ÅEäIï\ e\8cÛÆfafÚ­YÑ\90\8bét\80cjÛ9\96#;\1d\86\fì\100R¤H`Z¥û}±£5CQ\94¿Ú¬,¾ÊÏQBiu å|\PY®Ên[ÿbÃÄð\1cÿݪ\19^\938\11ôÕ\92oì;,\8d\ 5\ 5¦[\1e\95\85ãÚ+ä*Ûî~ÝH²÷3\bû\ fâÙ?\19\b\88\1eE\13Ä$ÉI\97V\834\85\850­Éºà\99ªzý\9bC~%z,\9f¡¼Á\1flV\9c½é[\854;\15\9c½y\17È\9c!æM     ÏÒ¤jëo¿`\8e\a\ 6­ó/\92J\eñ¼cJ'ñ;Â\8e¿\a÷ÛþÖrÏþ¤RIÈ\ eË\9f\e\1d\93\ 2emá \9fи\93NѵMø\16e\13µh\9f\82l²7\ajv8\97æ¹\fJ\86rnÄ."\91{ÝçD\9a\95\85ÉáiPAP\f5ÇZ¿\94jt\ f\9c\9bLGMy^ønäË©ð´k\9eÉïî8\14Î\fõ4\ 3\16ì\8b\92@Õ«B\13¾ºú;\8c\90]\1dÝà¤sç\aM²}é¶|\8e·\a\9a\9chH¸}.)¿ëË­o\f
+Ýê¨\8fM@¯vÞ\13yª S\98¹ON÷w\18:â^DDÄ\aÙ¥þ\8eðGt\r\7fæ\86\92{$&Kph \84~ï@\8bþ¶ ø8iÔYN\82\96ÀÈÓä¸\9fp\85¤pzÅ/Z¶Q\7fhÍ%%C\16MÎç×µéE\9bVع\82[Ñì"\10Û\1dGY\1d=\18\82á~8`ø\93«Ò¨Î2ºz;\8c\e\17d)ÒS\98ø\ 4\12\10@\ 2ƨte\?ï\\18g3.âô­VÓ\ 4ÇÄs\e\15©(["\10|o\12\a\12Ó0®3 ú\e\vÖX\13g   R\12wÓqûËÞ\19øµ\1fì\8dc\17\82àB\83×-\15R_ûjàk:Iødq="ó\ eXÃÀ¾\9cZyëk({\8f\95¤\19÷\942pJ\C\96Ø8'çe¶>3w\85\v\ 4\ 2jvôà\9e©\19KIÐÞ\95\1a\ 3#Ð6Uï8Sÿ\9b\93K\9b~¯B\9a        ð\8dqI¤¤\95öû
+ZÔU{¥(J\13i2»Øe¯å\9c¬8øl;\7f\82©Ã\1fláa-\92T\98}c\86\941àì\\17\87è±4;ô·\9fQf{ÞD\94sx\86(ÚÜ\9anuû\8c\91ÕghJB#Y¡â0Iãs^ÆÁ(v©ú\vï\bOy}\10\v\9d4C\10\92G\88-ESó£g«ÛÉ\99¥¼£\r÷Øß\1f@   DQ~\81\12\18\88Í\94\83H¿Õgâë\rôÚÁ<><ÐETh\9c\90¢\9fZÿ\1ac<ò
+ 3¹E¶\84\8f+\r].\ 5Ì\b¼uÛuõã\8e\92`¿9l\1dE}b\82\9a\92\87wñ*ì\81Õ!ÝË\8d¥Î·\97³Xz¥\vg<\8c¬p+Ä.FÌÁÓßì\f6cÙð\80¾\98AôÖy\90<\8eW\15\85\ 2Ù\89\96\{NãW@¥\8d[\11\r÷mQ¯l;\10j @4¦kÖW8c­õ\80Ò\a¹¬?×\14Ó\1aû]¬¨Ò\12]'\81Ý«\8fÁS ¤¤Rvï6Ì(´\87F±çr\15\1ca\17\1ci\95ÎXâß]\92\ 3\8c\8f\aCü×\12ð%ëQE0_\96­¥óhëûÀÐ>¿ýÁínÚ\1)l2ý\85¢\ 5Ëì¾p|¡\0\82˱p\13\8c9?\93ø,0bÜ\8eþÅ\81>¤Yä\8amýë$P8v?\ 16UXO\9aÖ3|]í\8f^zªÅ¬\11½v¤ò\11ÒöRT±Q0\82¤¦\12Wa.n\btN²\r\91ê.%\ f¯.h8îã/\ 1\99\0Î^>3u\r\94ô¾dö×\86\83¸2GÐ\97\9f-\9a´h à\8e\163X\84ÒP~\9f/G\8cA¦V·AOö\86£Ò\93\9dl\99\9dg
+\bõ_3\98ÈgÚ÷øúb\r[gMZïÅo\10o\e^2aö¤.\91Ó7       ö½Gb\11õt>;tëìÛ¥\1e
+In\1cºcî=ò÷ð\98qíqë\ 6êÃ\89æ\887÷u\96ì\ f=ç¼\90\13îî-Ä\9bÜ˽ÃA~Ý\1e¸æ°\98b,\94UôÂ\ 2,"XË´\a\ 2o 3Å\8aݧD%\96,\18rÜS·Ø´kÅÊÙ\99ç½      \10³³Ï\1d|\17
+¶KåF\1f\ 3Ñ~¦\90?[R·\99,kM\1f\8c\85Þ#ð©FEhQn\87\ 4ò&û\9b¾<#\8a&o&&Ænø\16\8c¼³\96\91\86\98\13¹\83\945\1euReÁL±*Ö«\1e\84B\9djÜFæPMg'\90
+\967!®\85\91>DåöñtC\ 2ubG;fu³®\96é$ܪ\7fÎë\90Juv\91xct\13S5V\84íõD\81ý\19\8e\86A+áôr¦Â:#Ö¯$\13ÀéóPí\b½f\90²\8d2¬{á\83 \aE¤¿\98Õ\12¨Ý jä´\106\fÅ®\1f\ 4k>ÀZV\1e\8dèV`T9ÎzÎD\13\9ch\1e\1aVê_)K±@q`æ\87êB?ëAèÌOT¢8b\b³\82(
+wØ[âÀ\8aû=r\88ÎùHäÅø       Ú\ 1Ý#'\84Ͼ¥!\9d     \90\83\9aZ\8e:¿\93y¿'\0\e>e&inC&wÞ\13'`¬\ 6¶°à\83\17H%ã\r\8b%\81V3£O\ 4ÕÕ+\1cɲ\13VtpüT?=\8cê¿ø\90\8f\ 5·òü  \9fÈIJl\rÉ¥T\1cÞ´ycÊÖ\ e\rQàu\82\95½\ 6ä\1d\83 é>\ es¹ßýÅj× Ü­ÂØ    êØ
+C½!\98ÓfÌ\bDW\80\82\99ä\18C^\f4u¥ê#÷Ì\rI¢p¹l¦Ôì\90ÑÇ\1c\9ds^kú\90ròÏÝñ\1a\96\vN7÷\0¯\11ù¼¹BT<VÈNæI\19êÚÍ óæ\9d÷¢5\ 6É\r:\9aÍ#\87~\93D6]LN\0\93!\84yf ·OB\98u2újUûSÞßX\9b)¿/³_¡y
+åG*\94YÕôì*X¿T|Æ<\9f\9e»ë$\1fÀU\15Þ\90É&F\ fº6õ\9e\16uÉÌ)z®Á ªÌ5\£¿,?Ä9ÜF'#\95#*UayÙ¶?\ f\92N\8br=úQÉ\8cÚ\14[!Æmv%\95â\b¸ó~âõû\88\86µõôä\7fÛB,\85¥É\ 4ÿc\80â´å\17×x7ôFtUÓ\ 6¥¯öÉÞó\06õÍV\ 5\ 2\eèR\ 4[\9f×\8f\84½àç\89´^\0[OÖÜl;ü¡é\r\rÙ\19O\16L\1f8ÀU\1f\8fö6öZ\90Ö\8bö\8e2\9eóûÏVs;ô¡Ó=E-tXiåc""]¦Ó\v\12\8c×É7\97ÊA%ÕÎi·\9aãM÷\ 3\7f\1e)¬gZO7\83\ 32{\1cûÒðX\83iWUSt­n½\ eÜÏÌ¢EÒ\90-\8b\99\86°å\a)\ f\82\91ºoñ³|)\1aÅ\85´D)Æ\18SN\8f,\88~\1d'
\ 1\ e9\\1e¥}\0ÿã<ÃìMï8ûÂ"h=Æèå×ZÄQÉ0]»¢i-\9fרɠ«P\aP\1dã60\9f\17ø­Ôq\8cÆö4\94¹\ 1êµY\frÃÄ\1e3ã;T6å'ªí\89Ų|Oþß\9e\ 1|Ð1|\8dË\9aõå\9c\1c³²$¦M§\91à\8c23ÄM/¿¡Xa\84(\86ÛÐ'S£\89k\17
+\16<\87U ÷\86AÜ@ÉÔa\ 2W\82\e\8a©Q\87  ÙRÓ!Õì~\fv\9a\10L\80tÀDJyäîÆ\8bð^1@UqïÀýø°éÏ'k±\ 6Ì
+j½¢6(aej[.6\126\8c\13+(\10Ë}¯\1aFôª(Êw#Ü\ eõY¬ËíT) ÙÐ÷\ 3ɱPî\90\b\85ϧJÒ*dWéín\bÌ03)JQ\88c[¤¡KÇ$cØPð\9fu\0M:ü0Aõ2mUa\v\141c"ËÍ`+\8b#xØʲ\8e\97\12eyJ\83\95Õ\12̯)âÔXJ\12*\16\96¸8\§   \1f\82tu:\8f\9b\rL<ËÕYÊóý±\96\85àý\19Aµü\a&-\v\8f\e³ý»\93¡kµk\11£4+/\ fh?é±\81¢ÄqÆ»3\ 1\89»Ô9%âÈ\rS{\8f´ß\90*\9d³\8bt\ f\883ëÏ$^E\15G{¢wçÓ\13\17c\1eU~\7fMj|\87f\17\93õM\95Þ¯O_â\84\85~Åï]ØöôüLNòr\94Ø\95|\86 \89Ëܬï\13\fBÏö     \8d\85×\91\v(â^r¼=~\14\ 3dR\84ÏÃY¿£\1d¤¹¡i\82E5åÓ\13\88(¤(µé\96J\81°÷Qî=\83\98Q\9d)É?á\9b\1dÄ8^\12¬OA7ßÌü\bá·\16Ð\9ez®EN\86Ð;8¸á\vãæ\8e?&[³\ 4LRö8ô\ 3ÊZJK\8d\16\8fÏf \b\17\963\89T\19¦[O¨/°Z9Õ3gÁt\9e\97Ú\90j|íÇ2ØÅ×;¸\94\92~¢:\a\1e)³¿\8a?á4\81OíºBÃ\1eÛ×ä'\12SòeþúÆS/\bs\18àî=o\\90
+\19iô­À@Àæöí;·R#\8dFÂ¥óiÊ;*wügqá\9f¶ùèôEú\19üïÍØ       \9fW©¸þÓNFÁð^xåµê\f=o'\91Ú!$má&\9ep\e\14\98Ü\8bìr\8f\9fèýOþÈM(|#>\10Åü¡{x\80Ð\rÔ-\9f¬T8\99/\8e\11ݺ&íða÷\8b\¿z\ab$w1ùàÍ®\ 1_{\9bRÔi_\19±ç]»\ 3\9c\7f\ e\95ìÐxëF¥T\bÔÀ\fò§7²\9auAã,O,;øèùw">\8eæ\93RS&ûo\16\93\eB6\94\85I\ 4w!q\8ei9®\r\b]Ò2óK;Ï\ 2Òò§ùw\1aoÏEÀ\8c(\ 2¿\9e\9a;N\95½\r\8e\ 4¯µ¥ü\b\96\1dâó*\ 1U¦®ê¨MÝuI`ÒÒ\1d\9dQ\ 2\9degT§Ü±\98;¿\ 2­\85ÇSÌ2ɨÒÃ\91mf´\90a\ra\87£T´e0ì%Z¾Ç       ÿT=¼Är\ 4cÈÂß\91\83ÊeÛ6¯8½Iµ\8f¯ Ã\9eU\14R\15¬ô\9cf\7f\16\90Ä7%;©çxóª\83\bf¾/ô·v\84µ[\86;\92Ý\7f/É#\84k\1fm\17`\19\ 3®\a\ 5¢ì\82\96úE\ e\1eºÐ3d\a¿ÊÍú6\7f¾2\10NbNj\19\98+2,\8b\1f\0Â\863íW\10t\84 ¡æÅÐ\97Ì\ 5+ù½\1c\8f\ 6$Ìã6ºxAv'\ fÒ«w\9f\15¨\0\13{\81>ÅñUµ7i\9fSï¹<~ºÑ=iï\8d\86\89Ëà5É\13\8dÀ\9fm\14 Í\f¨\81v*\99TkÕh¸÷\19ý,¥Sj¡\ 3ª#¶·N¤¥¡´Ì?Ùa&×c$ÚÖ\ fé 6\9bå\97\ f\ f\7f×Vø\8b÷zÖ\ 4dëëç\87JÔ<_ÄÇlh[ÿ^7óU\ 3ÉÕkÏ\1drز\9a\82%(e)\93?÷Ð-LO»;ÖÚ\fоj_§$/\13#Ul\90\80\16\9d¤L\ e B­b7    î.¤³ÖÝíµÅPEÕ
+\94J½¸Êè\1a2\s\83Ü\14K\e&z_\ 1´¹\9e\88"\16\ 4\88wZ<\ 4\97\990n"4ü6çfW\86\f 2t#\9eÕÌòupGQ\ 1&n\85nyZ¹\96ä7\7f\88`\1d\12kQ\7f\ fШ\82(6£@\83\9b õ¨ÆÇv>\ 6\10ÊZ¼?l\942!m-rçÂSL\1f¸ \9eÅ'iE\16\98\85S\9f\e7\1d\9a\8c#|H\ 5\9f\ 5\86Øä\83Ïa\10\eÊìà\14\11é\8c£ºjBÌà\13*\19Q\14\8cCÊù:\17ÞJ\1e9]ÂU¡\17£G-¾¨\1c\ 44Oñ\9c1\8cÈÃyv·èëi\92Á´Ý¹<î\82y\ e}¼â73,¡~\12\aYÕÑ·v.f=K`\95e³óM/SAß\84k1>T\ 5\16\91\an¤ä°ÈÔ\ 4©øܺ5æcä1Ý´\8f¯¤3@­Mfqå´ÿþ*Û\86Z\1d{
+\8dÆÆ\ f:÷¤O\83= b\14°8\99\ f\v"X[ó\87\9a\89©F\1d÷,\9cÁB\19êñ\13wÍx\11g¡´ YË  \8c\ 4ShÆ\99¹ö?rgéÍU\8b¾à\1a\1f×\92\ 1\96¿õ\0ÜÀñÜ\ 5.°/[w÷Ó\1a\86'\10Êa£D{
+Iæ²\ 3#çªm\98:Ñîd\r¸¥\96Õ©½Õ·6\8f¯b\86b\17z(ÊôÌÆ¥=½,\17KoÃ\10©2"ºã_õ.DÔ×ï\86     µ\11g&\87²\fʧݢÃ!\910z\18ýOºW-9fåCO\1d\14½û\7f\1fU\ f[t&\ 6\a\e\90\82u9vUC\1c(­f<xtI?R÷õ°o_\82\99k˵\80Æ\82\96S»r¶\b&\1e\914~\8b\8c\10 ¬8§ª#j\91\99      \88'\13Náö\ eQé¾Aê²\99\1cή\15\14B|¦b\99\94å°{ÿ\8f¿F§' ª¶ëì\ eWn{ÕÒÆ:^\90²
++t\174§å¼\9fl(-ÿ\80s\8e@£ÝYÍ9gA\92\81­3!$\aVñ$iÏ^úÖmgÖà\91\12Á×sÇ\89xV\93\92\ 3\ 2d¯>t\8cÓ\ 3¬Õ¬¤\12¶OêaM½ \12\1e\86vïÐÖ\97åö+\82c²h¨62\1f\18þ@¼:\ eÛ±ÛÁ(á5(\ 5\e\\1c\97å´Ò+\90\853[h\97Þ`Û\96\9c\18\9câ?nÇ«óÎ\92\ 1\1f§Ö\8bhoÏgÁ\82Kg)\8aQ\8b@~hºÆ\912ãÒ\16±\11ða\81©2ÖYL@£\r\0¯å\86
+9\fÇ[8­UuP\12È\99­\87i\13Y\90\1a_u \94\824lý*:1÷ý~zY\8d\17y\9f¸HÜ\1c UaR\11ô\ 1÷ì`ú¤á~\ 5     úÏ\ 6M\87£\1fÑÈ[ö\13\8c\87º\8aÙlé)\85`­9'à
+¤%\91^¥î\9c\9c4*¡v\11ÎÄHäñ\98\134ª¦Jö[ë,8Èá¿ðÅ`;\94\82M\9e\82^,IÍïx°\825\ 4ù\93Ö j×\brY¾ã^öÝ\8f\90w\12\82\9fß\f\93â·#F«Êù\8e\9e\97\ 4\ 4ä746n4\9a\1fdðm\ 3\92\8c$¨GVÜ×;\99õÆõ\ 5<\9fÓÚ[Y\9a.Áau\9b/\18
+\82ªh(Äyðþ\86u\8aa\ 2òMBâª\ eá_.è\81¢MÐH\ f\98;£,ZO[ñZ\b\ Ýé\97
+y´6vAc\9b¦4\ eøÀ\13øw\ 6Û\85¦åâã\ fû`*W\8b?<\83þÙ \89Q\ 5¹®ó\93ßK±\14PPX\b¨Ëâ§W2ÀNÈâôШ¯t\8e\99é\11KéL­Õ\99ùTtVrX¬N#WÂ=\9f\87ó6\15m\1e ù\84\88\ 3È"6^#L¡\83¨°K¡TË\82A\9cy*\ 3O\9b\84¯\aóZb\98ÁH¸±3t÷>ó¢x?ñ\888\f\84o\7fd˦!\98wüì·P\10\9d\ 4¾,\ f\ f\1eÇzT±êéõ\8f%ó6bPl\ f¡í\94HÑg5$\8c\ 5$Ø;àpx?EØúζâ\v~åcÉ÷¢õTÉ\\¢éãÙpn\81\817ÕEÎ+±\1d_÷¾ëÆ    \7fv\|²Ò¦2\98\8d\ e
+áëW7ý:\92Jt)½\0Þ[Ö\84q\80\85l\e\1c Øù\1caµÒ=\9c\7f)¢#ïS\87Ù\82\9d\82AM\bD¶àÖV\9e$\ 6çq\85\80ú´\13Æ:>JUg\1aü´¨US\98E\8c7\8d]Lz_͸¸ÍÖ\96\80s\17È¡ù=×\12(\vV3\91~\vE\18\8f¤â\r\92 É¹l\89\e\\f"ãâH\97ù?ÚÈf\87\85\83\11é¢\f$ »ÒfÆVx\83©
\93\b\9b£\9aÿ¨StÙ-þ&³ßLx³Î\ f¿­\1cÎõMH¬Ú6I%Å\ 1
+ÿ«\8eÎþë\ 2\eªòô¢R(+¯\920±s.B³÷dBʵ\81!\81\88\8dÝP_\83G?«\89Ag\9c!\88\80D\9d\9e'³5ó\9aF\1e\8a¥\ 6ä\81û\ fI\9dÖ«£D\8dЫº2$ÜdpZSÛ­\88Ý\\râ¢cP×Åäð*cÔ'ÝO¶\ 3Ï4\9eoê@·\9b\94e\98z¾8»¬rC°\86îÓ¸u6àNÀ(Ý\9eE\90Åþ\a\ eÉÛ\82«]\9c[ ^fò\9e\95\8a¶¤å\x\ 2\e\ eDa P\ eÖ(ñÚ¼yêf¦
+N©JhÞ\93ʺÏÍ­¶\87W\ 3\9cN\1a9©'%\r\83ø\97yAm\ 6Yw|Sé*æ\0%\bîP\15JÙ¥yÉ!>_\84\9dS\ e\9e¦m\90\r`\14\84\8eØÙL+Àã73ù®\13¯ê\9dFþN/Þ¶vÓü=]Aïó×\8fó\1e\9cë\93=~\8aÕ·\85°²t\93±%§\f¾ª"8*6\1aZûDL\9eM\1f\ 3SÁY1^nÈ\9d\ 4ð\9a\ 2Î9gÖ\ 3×ÚQsú\83\86Æΰ\90\0§\ 5Ö\1eP¼ð\ûܪn1\17Wë1Å´º©ò̸,Ëi5\ 50Âé¾,\9do\ eåX\ 5\82»i\8e'\ f j       ~Û¦\f®Óµ²Ð©ëO b;ãGE\99Æpa¨4\86\93\9fUe\8aëò:\89ý\85È+:\ 6q¾¥ô\1d¹Ï)T\95\85ó³\80È$É\91õ\ 6\8bYt\ 2\10qäqM\17IZ«\ 2Ò\19\96e\19p×HØM·ë\94}­$b\88 ÌH·ëb\93ÀR¤­:\97Úì¯E}YüÈ\9a7ói\9c\81lðXõõ×\15Õ\12)b\ 5zy"S\ f°?Êóäâ\ 3Z?³QÉ\ fÕðFb!\93\97º"ö\13×5ï\10\84¼\82#¦â~­:Þ÷O\8bª<~<\8e×=]t\92\97B°Y\84"RÚ\eyá$P\92ø\9büÖVSîÜAà¤k¢CÀ·B6ù\16Í\ e\8fD"Î\84<a}7Gï\ªë\ 2J\96\14\7fÑô­¿%¯\17\1d\f-\96oÜÿâK8ÓÁnM\846RõèN´¾\94\rM¦p§ó¥EÜæ\8d\92\ 2VüëD/Ù/        wüûµw\ 5TQÌAëÏ6ɵ\9fãÕ\r\8fQ:\1f\ e\8fnê&PT+_uíz\f\80Î\9f¿\1cÒÇÑGôËÔÜ\9e\8c²"Äj6O\98\ 4gä)³ó\8b§<¬§\92¼Põ\9fù4|\92ó( V|@\ fÅP.i\eÁ?r)p\ 2B\83`w¦£Ù×\87¹\a^èyË\1dËðà\14\a¤GcUÌ_Û\\ 1Qß²®\b\1f3^eßßóÔTìçg\80Ç\bÅ=[òO+ÁEv¬Æ{ë¯mâ9:d$!¦v\16N\97\ e½Ìé.?]\18ñ£tÎ\rò½X\9f\8b\e\8c\ 66\99yS¯SÓæ\13\ e\ 5ü
+qÚ+¢\1fÆ2ÎÇÓ/\ f\9f\13\r#y9sl\82w\15´\f\19é1Û\1aLÛ»|\85kJ\9aºý\88\9fà¥ÛÕ \8a¿ÿVcWìeDØ\0ÔÒW\1eõléì\83q}Sæ\ 4\89\9bµ\88á \12×\89¥\ 2¢\~#¡fÿ!\ eQ\94Zj\19é\a绺*å)Án\80\97\9aÎíg\ 6\8d\b9\8e\a\93tk\97\7fúCe\13ZÉÕ°évU\96\15\89>Eݾá¬\1e£\13È\r×=\ 1\89\8c5^ñÌ\1fR\r\81.\95ESñ*tïÈÜÐY\92î½wô2µbªB|\890\88\95p\88æ/Ò\8fmàìK»g9×¾=-1wz\82"i\b\ 3'ë7`\82ËVîбÿ\vd1PX\11ù       \9büQ\87ûCn\\f¼ø(\ 6I±¯üíI¢ByÃrh\aúi± \9bÃö]\99\86ÿ·Y\92ªX\ fê~þå\1a¡º|cß û\9atÕÍØç\1fRöæ\ f¢¬\99\9aÆ\9d©°©ÔQ[mf>\ 2      ¨¬9ï¬"w ×³w¨ÂKu\83û\90'k\13\9ffh¼UçG\9fGÌΫb{Ûþ\8f¬\81\ 6ñÜ\1c«½\99N\18-J¨c>:àa`\81\ fH³gäæL'JÇWÖ\8d\94:j\0æ\81y\a\9e¾\80ºv\bjD\10#\95\1cï\15)ÌÇT\97­\98\96º*Èy\\vø÷\v\802=&\1a£ªÐ\ 4i\ 1=9L<\1edZ\7f\ 5\9e$H\889bâ¤'ìë\93«\87Ä9¹3Î/×0\15.Æ{á\11\8c62»¦\bcjë·Ö\17Ö\e­¾\96E\98ªþ)[\98Ö9\823c\9a¯\83ÞË$áðô9¥´\v¨®m\a\91õº*\181È62"\84°}\95¢#\e\9eø\93­\v\8f\88\10pW\98 à\81\9f\81ª\90\ 1÷,\989H#èfZ\92\1dG :óôí+6p\10æ|äÜF¿\86®/\197lá<Ü\8boP³ÉQ%äÝ\e¶&Ò_î\13òIñ\82v´faÈ\87\95\r\87Û#\8b¯ËOÀM_ÃØð°E\9f?C!Ãiõ{fW\ 2H@\0µ¿ë\97è¹J^5=ä\9f\11\f\19ãÇpÄ\98~­äöË\b4uT¢Ëq¢tpïªêi:Ьîɨi&.ͱ®\9e\8b\14NEÌ©V\87\7fÿ}d\9a©ð <³v?a\1aÿ,7ÉêÐØÇ7\0!\91Ïðµ]ÉþÃ><é\157®T\ eÿ¤!\98DÒ¿<\vì[ \84C&\89Ïy\ 4Ð\f\16L\16{¦Î \1766Oäó*\85%!>\1d¢åÆoÚ!\14q8¡}pi¹pÖe\10åÒ^F\ 4¦à§\97\80\eµCùÉ\9fd¬4\87\fM¨Ú\ 2á­\9d\ 5Kzì\19\1d\1fÙY\82\ 1Ógon\fÁå\bãá\135\14\96õ\83\87¥\aã#Ür\89v~Ä`GÚ¨\86\9f\1a°Ðr®\ 5\ 68\11\84\ 3Ã\9e 6î\9d\87\9eÄ\8d9\8cU³BR\95Ê\ 2¸\1a\9f\11k&\92U\rrÙ¤\8be ÊC`B»£îÜ-ë$\85\1aÍtÄ\19\1fË\8f;¿è~\bKh¨æ\9a\90¼Tã\82\1a \83í\19T\15¡çÚ¬á`°Ü\91×   \89¤\8cб\99«Î\7f\11\ eµ¾9ÛU÷`´ñR\937F\1fïOÕ\12ö$~i¸ú\82Õì[É%\91à\à¾Qfª\8d\14\7f{pû\fã\97\817JÓFò ¹µ£b\9cþcFÙ¶zÐûòÃ\81¯
++H÷Ï\v\8bòê¶\a\ 6ô\f\8c5 ðÑûÁP^Ù\97ñ\v|Uç:=¿\81zÐH¶4 \80\ 4\9fAx¾K¨\1e\16\f\ 4\ 6+\0Ù`=¥\82\ 4å;¤b>zÙ\88¥q5A¬\86¨eøQvNôÈz\1d\ 3;$\19\90,{Q$Uë\12'lIZTZ\92ãVÅÿ»á[¹±P\8b þ-\82Ôc»2/+¹Æv      É*SèZhJ{H\1f\7f\91%>H\99é¾±v5mip\8f\9bå÷H¸9â;\9e\ 3L)Þë\bUk¨®g=ád]·bG*ýyøë\83¹k\8eL\80Þ\91d4Û á½±\99\18b0"B\b`û@ãMÙO5eäsñ\ 1*Xü=¡ÆÌÀa"®\9c_AÙ\91È\18Ñ\97Ù\ f¡{\ 2'\eâT(¾õ\13^Ã÷8\1a´ÔÂ\82\9aI~6NøÉ\83ïî®^tö\13ú9K¨ôDÝ@î\92èZôµÅ{ÁáYKà˶ÙôwÊÏ,\1e\87SëY«Û\vmd¹\ f\fE3~n¸¡\8a½*ع\96(\ f/%J\97\97\9døá{¿MÊ£òF\0û\9cMö¾\86¸\ 4\87×\9fhi\ 6
+\82Ç"\ fì$اY\88\fQùÛÇÓ½ÙÍ×üÑnø÷&7eË\9c¨\ 5ȸ\97é\82\1fÑèy¾';ì\105¨æH`P\8eW\91\85ðáÊ>ÊJ1ÉÑnÃSe\9a°\b­Ge,\16`õdÚ¦\12°þèÕ­Ô\ 6OÛió\ 2\82°\ 2Ý\87ý\98oøqU9¨\ f\9dQc´Üûi\96å³?\10á\ e\1c¢\91)«»¦²t\13\7f\81Rq\8e ^´«ßaÒ¿\8bCüºø½Ó=ñ\9dç\b5\17\96P)Å\19\81²4££\8a\96 î\19÷|éö¸Ò|\9a\90Ðu@¶\85éådxkÙM!14\\10+XP´\99GeNiM\9a\8fÙ6Ã;grãZpq6\85À\ 4\ 1Î\88p\99am\92$T\94Å\r,¹Âi8ëw7\1f[u\86ø]ñ\80Õí1AªQ6ô\88k\8a\9e\92\8cα\16\95´\8eD9z\85÷\ e\8a\9b+ßÐ\ fþ­w\8c\13\90è\9aÇ£ðïA\92Àæ~ã\89º×gi\1d:e\15ÎJ\1eÂ7\7f,aÀ TùÛ0_\\83ä\rÐ\8fÅ'y]\8f7;¸ÓôQ
+^\1dó±ªÄÕÒ\v\8a\9e\83Â\93V¦pû6WµÇb\866F8qE\ fW{%\9f]ðC\19wRkð©æ\9a£®õ Áµ;#oÃ\94\9dLÜÁfÄY1纴 \ 1jÒøÕ\9fl#½,\81\82î\a¢þ¬\ 3\99\r\99}\88a5R\ e\ 4ÍJuìs¼#?«p&8\19KB*{ü¦,u0\16NVÔW\ 5Ò"\8ccþðÏ\90½Q\1e\19±\ 2\98\86Õh^µ±_Ã\85ôª¡\7f¨`*Æ\109h\7f©"aáZ·d\96\87\1eÞ\90»,P®\8c\93Ãöû\8627ZÓ@úª¶q=\1f\1eØÁWúÌ^ТèaFjl8
+\9f{w0\17\82Õ\91Ò$b\9cÂPø6ç\ fKL; ÝY3pw@ô6Ë\ f\ e
+       ¸\8bí\ f\9etbM*+ÉÍ\85!]¨\87àä\80¢pE;\98\9c\1d\1d\91V¤]pwßPª\8a_Uð4\94\88ô\85\87\ 4Kmov°\83¦ÀP;­ò¦\1aÙù¨g\v\83\r\98{\14DÌRÞÅ/PíÔº\ 4\93\89êúº|é\17)1½ªáË\ e*\1a\8b[r\83\81x\85QÁéìQò\9e\94Æpa\9dq^KR\8d\ f¨\rã¸2ý\1f>pÿ?Àÿ'\0\8c­\81F\8eÎv6F\8eVpÿ\17\153f\84endstream
+endobj
+935 0 obj <<
+/Type /Font
+/Subtype /Type1
+/Encoding 8020 0 R
+/FirstChar 33
+/LastChar 125
+/Widths 8021 0 R
+/BaseFont /OMQKEW+NimbusMonL-Regu
+/FontDescriptor 933 0 R
+>> endobj
+933 0 obj <<
+/Ascent 625
+/CapHeight 557
+/Descent -147
+/FontName /OMQKEW+NimbusMonL-Regu
+/ItalicAngle 0
+/StemV 41
+/XHeight 426
+/FontBBox [-12 -237 650 811]
+/Flags 4
+/CharSet (/exclam/quotedbl/numbersign/quoteright/parenleft/parenright/plus/comma/hyphen/period/slash/one/two/three/colon/equal/greater/at/A/B/C/D/E/F/G/H/I/L/M/N/O/P/R/S/T/U/W/X/bracketleft/bracketright/underscore/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/braceright)
+/FontFile 934 0 R
+>> endobj
+8021 0 obj
+[600 600 600 0 0 0 600 600 600 0 600 600 600 600 600 0 600 600 600 0 0 0 0 0 0 600 0 0 600 600 0 600 600 600 600 600 600 600 600 600 600 0 0 600 600 600 600 600 0 600 600 600 600 0 600 600 0 0 600 0 600 0 600 0 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 ]
+endobj
+924 0 obj <<
+/Length1 1630
+/Length2 9776
+/Length3 532
+/Length 10644     
+/Filter /FlateDecode
+>>
+stream
+xÚízeT\9cí\92-\90àîN\1aww\v®Á=¸5ÐX\13ºq÷àî\12Ü\82{\80à\10\b\ 4\b\16Ü\9dàî\97\9c9³Î\9d_3ç×]·×ê^ïS»jWÕ³ë­_MK©¦É*a       6\aÊ\82\1d¡¬\9cl\1cB\0\15\90\83¹\vD\19ì¨Äª\ 1´vQ5·\a\ 1^\0^\14ZZ)g \19\14\ 4v\946\83\ 2\85\0º@K\80\ 2ÀÅ\ 5à\14\14\14\ 5H\81\9d<\9cAÖ6P\0\83\86.#33Ë?-\7f\\0æ\1eÿ@^"! kG\0ÝË\83\1eìä\0t\84¾Pü\8f\ 35\81@\0Ô\ 6\b°\ 2Ù\ 3\ 1Rªjï\15\0\fr*Ú\09 #ÐÙÌ\1e æòÒ\8a\ 5@    d\ 1t\84\0\19\ 1V`g\80ýß\a\80\ 5ØÑ\12ô§5\bÛ\v\97\ 4\ 4`\ 6\808\ 1-@/a@w\v Ó\1f\88\ 5à\ 4tv\0A /Ï\0\10\ 4`ílæ\b\ 3(\18\0r´°w±üSÀ\8bÝ
+üWANÎà\17\ f\87\17ì\85L\r\f\81B,\9cANPÀKV5iÙ¿ë\84Ú\98Aÿä\86\80^`\0ØêÅÓ\12láò§¥¿°\17\9a\17\14j\ 6r\84\0 @wè\9f\æ@\80%\bâdoæñ\92û\85ÌÉ\19ôW\19.\10\90£õ?+`\ 18\ 3­Í\9c\81\10È\vÍ\v÷\9fÛùg\9f\80ÿÒ½\99\93\93½Ç_Ñ࿼þ³\ 6\10\14\ 2´·bCáäzÉi\ 1}Ém\rrDaÿ3,
+\8eV`\0'ÇßvK\17§\7f`®@ç¿.\88áÏÌ0¾\14af    v´÷\0X\ 2­PØUÀÐ\97\94\0\86ÿ\99Êlÿ>\91ÿ\r\12ÿ[\ 4þ·Èû¿\13÷_5ú//ñÿö}þWjY\17{{\153\87\97\ 1ø{É\0\f\18 \ 4ø³gìÍ\9c\ 1\7f\a\17àÿ\15\0²÷øo\ 2ÿÕQ\17øw±ÿÁ÷¯°\ 2ÔìåR$\1c­_\84aåäbãøÛ\f\82È\82Ü\81\96j ¨\85\rÀÊÌþåÎþ²k;Z\ 2\9díA\8eÀ\17mÿºÖ\97 \ e\8e\7fÁ´l@\16v\8e\7fDàý\e\ 2:Zþkù/rýU<»\9aº\86¤\86\fó\7f·aÿòT{\99\ 4¨\96\87\13\10ð\1fit\95Á\96ÿyøÃ#)        v\ax±òq\ 2X¹¸ù\ 1üü<\0\ 1NN\9fÿ&ã_4\9cÿ<+\9bA\9d\0\ 3\ e6\ e\ eNÀËï?¾ÿ<\19ý\v\8d\8c£\ 5ØòÏähBÍ\1c-_\86í?\r\7f`\v\17\17\8dÿzÿ_\9aþÇù¯±\a\ 2Ý\81\16(s3`\vá`Û´Ìth\rá§\81\11i\83\9e.ÎW\ 3!N%õZ\85ùþUàN¿´\8f«\82\9fM\1fªCØ\1aF\85\9e¾xLï;=n*2m\rv\11ØÓw¦\0\8fòÈ|¨\19»ó±\97èÚø\99·\ 2Ù\8dKÐÓ\ ft£¼\8e§\94V^ëóqèl­\8d¨k\18\17\90\8f¶q;#\1d_3úS»æûãÑ\9aøZ¤ÖÅâ·c5ÀàÔ\14ì\1fÐ%î^_Ñ÷\r}\eèï<\85ïÞ$eÎ\89\15v}\8dN\17éÿ!\87TL_û³W8ó\ 6\íÖ\9b\98î\84O|f8VG²·ÉÁ\ 4?\ 2Ò¦ÊsÕ\1d´µÎø|Ûs¼³Þñ¿*Nþª±\83Tl|\99m\8bß\96I$q\1eQíÙ·N\9bëEf\8bwÒdÏ¿Ë,¾5Z¦,Sö\88$ÆûÊ'õYu}\9eð2»\11îò1óѺ\1cÚ߶\11i\14O´!]\96è\7fOHúNÝe\94\7f\ax\87û\85\87?Óèt\9dÖf\9a¾\1fqhW?ñ\9bÍ@pm¤Í2ýEÏ~\1fEä6\1cx{Y×£F\ 4)\a5ܾä\vÎXp\87S¢à\8e_\9b\1f
+õS\9eTêCqR;åU´cø¼L÷X\93ÒyU­?µ\e¡Y\8cðY\82f\90¢mú©¹P.aÆ\9eÌ\97eOi\1añ¶²l%ÖU%Ë,a$/,çõøÉêäO\9b\v\10·    \13Z\81`\ 1Æ\8búÏC8¸XA\12¨\16\8a5Ú4¿\O4\ 2Û\96\83HÃk;=¸Å\18ÉÒ¶$ÓýÒêu)¯\187­ºãZ\ f\1c\ 6\1f%\8d_+;, hrI\9cÏ#Ïà²\88\13fHÅ M\oïùj«Â\1e°\14ü|[M\1f\1a_Ûí±³Ð\87
+\9aBØ8ÏoÐ=ù5\81\f\7fÞ\8b\8c;Æw\88NÿæjÅû6âÆ\10A6\88s\18ñKöõ\8fçf2Û·æNHôØ\82C¯?Tëó\9e¹Ûð\8dÏS\9b´+\87V+ \8a÷0\1f\ 5\ 63@\1a¸6ë?\8eç zt\16\1as:\83´®íE}¦ñ|Æ6Fáï?£÷k\9f|ÀWRÅâ\8c©ú:\19\9a3\8bëµOi·\97\19û\80LO×ØKNÝ\88ÆÌ\1d\96\1dÃ#HA+\19W\8f¥\18vïæù}Fwå\83Äl\9eñC¶}\1eÕ=àZv\91!¿:\9c³r¾\106z\94\aÎÆ}«\96X\ 5\96\ 5b£^Õ&$¤4`Òþ\95ÛZÄ (\86\98\88\9bÜõhª¢ùÕ/\9f\9b\9c®g½¯\ e\f\91iµç\f\98qùwº|kó\15\86+{Lï¼)\e¢²\82Ñ\1f®Çæ¾VXÌvK\9f-\rîÐ/2\99u\17ûò°\räß\93\bâ+Â7ëþ\92Ó=`e$cÆr^3\90\12}ßêd2?|¸\86N\1e\89[
+þè}~*Ó\v^\aµ5:\ 4UÒxcÜû\ 5L\\86`T°\19\v·±\17\89¦Ñ\a\88\91
+(¬%çt¾R\9a£Êâ\95Ò'²Q\95\ 6³\eÈ<Ó°\16&2§r
+\9e3ìì1P%î\ 2aR\aÎÞÛ\84H¢2\v,V4Òt\ 4\97¸¡ÚÌnMÙ\8c²ÏÃw£b\vîKª,"\84(¥¹ímâ\90ÛÜk©Ó|^\82\f^sÆ' cw2 ~vüè\8aëOZ\9c\1dnØnÕÜ\13ÅÒÞ]àÙ\vóÐF\16+p¼\v{\8d\87ÈAzB\91\94Íu÷\86Ü@\82Ûtçu\8dX×÷g\92\9dÜ-ú\e`\91aþ(ï\aRo·\88\8cº\94p\ 3°bWU{\82ÅB}?û(ÐjR\86\10!À=A\13\8e«ç=9\97Á@ÁS-p\9a\97\?¯ìz\866\183\ e²\81YQ\8ahp/Îî\94\81IìÁÀ\8f§Æ\ 1»rRn¨hD\9c ~`çþqÆA¨W-[u\r6\86à\aÃ\90'lã2><Ù=ç\r`\13_æó\a^Ïaä¬iÏ\9føÅÎZ\ 4\98\Ûï·é\17\18Þù9(\9b\fÚS\92"\96\14ç\a\9b-Íî³\94³Ç\97Áµ\e\1e\12ƪøÑ\8fè\e\\1a\97HÁHf¡~´\ eÆYÕ\1an÷Êñ^jV½Ë\bÓ-Öþ\ 1Ë\ 2e\9d÷ÀK'Cð}düƱÍôæ"OEIi,ì\88ËÐY\15)\90¦\85è\9b3i.\94Yv7©Ô\12¨òmÅÄÉ\89ºèN\13áG\14Ëúhü\f\93.Ðk³u!\8fLc\87·g(`\89D\1dæ£VÔ\84./7ÉòI¦Ïú\91o¿N[   ä$\a)'ý\9að®\98w~Óÿ\ 2\95o\12ÿ]È­;\9bh\v墹\1a\aõÖI:=ý\ f§!Ì,ú7jÖæ\f\8e&ú¹ÍÂëdñ\8bá$m\98.ëä¡+hÑõæ\84\14ÛI&^Â\ 2Âs\9cØ¿°»×'©ìkx~\9e\99墹Þ\15\1eð@â\960v\ 5ä6b\87i\8e7¨j=r\8c\12°\15ó7°!¿æ\17\89\1fd\15¾\81\9duR·Ó\ePDJÉ\10q*\87R\7fÿÔ§&\13\87Á4Ã\9htMGX3"¿w|«\19\9a÷KÍ&Í\ 1\ e\ f¯½D\8d¢A¿\8dkFõ~CN¿\ f®~¹7¤?Q06Ï\8b4À Å\96=pÂ3{g\16}(\94P\95\ 6\ 5EîÄ7ÀU\ 6q\1dó±3ºQô^ÜM\1cgØU\1dÆ\95noâø\11Æ3&Íä7Ý[û¸Ö­\9fY\95û\14<-\89¡\90òC$\82Þë\8b\99\ 2n9ìÔ¬Oû\1a0Ë,^3æè¦Ü%\ eíAâNÜÂ8\8fɧj¥ÇM\9d:\92GÊËæ*\94\98¤¼{ù\17\r\89°ôâ\fSJ'¿ê*y\ f\99½¹\ fÄ.4QO¨;ßÆä3D\14\fRa\9a\95G\82/R(/cq·¤Ñ¦ª\7f\ 5VcX\9e\9c\1e^¿FÈ\86\93aªÛ:Ç\8e»²\94ð\ e¾\91§\90"cr\9e»åÌ^t\14:Åa´W\8f\1aÜ_$ÔgZ8\17áµn¿Ç>\9d\99$\9c\ 2]H´FÇ°ÌÙt\90irO\98~¯r+\96Ã\8d w\95Px-\15lÝÇËG\9a³Î\1f\89J\r$\8cÚ|FÝí:\\9fIÙF\7fÚ:52ÎMXì\9bÊÄM\88'?z\1cLÞSã\9bàÔ)Á\0Òq\rL\8e(\97H\82õîL\1do~óÒË\pÝ\10ú,| '´\92\96\14«Chóê¹RÆ\1e\15\85çg\1d\1fÁ Z&|·E\95A87DÇ\80Æç(u\10ä%\81¥5\11\8c\9b¬\93\fÃãë\f\e3\1dù\919e©Lf\1fÑ\16lsy\8d)MQöÅ\93¹ý¡d   Íy-gWP÷IÊ\14þ\953
\83\88\13»nîN]\1c\9c\bÎ\8e\9b\9ae\88g\80è.f³é\eQ\85±ö÷¹-R
+\91\a\93øÕ\96¾éÒì¾\vÕâ~\82ôË£\87U\8c°óï¶ïÄ¡\v8<C߬ìqpÚg\ 6\\91ô:Ã\b\13ßÔ\90m\ªµ?òô´¶²î\ e&êÓ2±º,Ky\ f\a\8b\8ep}\92g|¾_·Ãç\89\9eÍÙé.N0\81jÖü \1eW*ì\98\1e\89 "\rJ\13\9aJ¸51\12Ä\7f\9aø¹âé5\15¹\12\9eQKƳû\9d\8d½ÒYB.\v
+"2ßL~¤)­M ¶ø$\92ý\95\9dNBÌ6KJEñiöày$¹ÐP\8eÚ@\15\ fáÁÂîÑk\11OK\81\8e°ºEí\90ÉÑwlèd_y^ÄÎ\a.~JÅßË5e¦
+®\¿X\80Js\98¹ø`ä¾Ç\8e·U°Òï\ 3ìÒ¨ñvÖ\9b0Ï6|\16ÓMd\8f½\12\1aðȽ\92á\96\95HÃG¡\ 4Ày6¬tmÔ\97è\18\ f\12\88\1dá)\ 2\8eRgc\119ú,\8a>\86áÒ\85áÇåÚ\fÚÊ[Û2¦C_º¶ú¶2\ e8L=RÜàW)\96SàÃ\ f³¢äô4b£®\9fä\1ce\f`\aT[r\9c\e~x\ eç8`5s½-
+ýNªöe ¼"@H@àþä+V\ 14\ f·E@8N\99\94.iÿîFÖ\93õ=!\86\vbÚÛ\rã\1f}Z\12dd\ f\9b|<\1eäÍõä5t:ºÜ\0\ 1z=§t\ 2Yz\ve\85Ë$JÞ \ 4wTN\ fÑ^½\bB\f}@\1dª·¯\17\84éÑüzb\90â\94\8bo( 7\18þ·Ð\9cXÙØ\87\1fïõ£V÷De:ýLÓ\92E`+wQK]¥][jâô>ÀÊå     \97       Ü!|}
+`Çl<ò¢}\8cÑs4%\80ßró\99HäH°e\9ey\7f¢Tål}1 *\9eØÁ0T|d_z1RLD Je\ 3Qêtdg\9a\1f\8a\85\97\8eïP.N«(ô tUÙ>s\88\1a\91§tÖZì;ú\99ø¥2Qê\83jCZO\ 5\18åú»¦\86ú\bÆõ¶\9el~ª=x_\84µÚZ
+7A_\87\ 1Û \96\87º¶\18\805··ý0Ìè9lY·\93m\fÝwÎCð¬\rÁ\99\9a\ 6Þc¾`\90vuÑ¡r\87Ö}¶ä£\ fÚ\82\9bÿö\0Óø\ 47ü©u½~¶¹m7®îÈ÷SÑ)3ï\8cæ/ýé\vEm\eNS{\15\81ø\ë\:ıkâQã0׬\8bª\10\81ßú(S¬n¼0\b7\88\8cÎ\18\94ɶl¯ø®\80\15ê\ e¦³Z\82w\ 2çm\8eÈ®Ñ%[D\ 2â¨øý(\99út\0ö\19x£Ë¤Ã9θ$Z\9f/\9c\96e\ 2Ò{¯¸4긢¤
+¦Ë×F&ÚVÍãGI³n$\97,So¤¥%0`ÆÛ:aÍW\8a\9e\9e\7f}ß1+e¤\b\r\9dI\85Ä73\9eÀ¸ü¬1\12éåx«ù\v\97GUa\r¤\9bÀg°Êû\1c\87©Ñã2¥:Sú¾Á=Ú(0Ô]Ã\9cU\8axèç-¾Ç¯Á\0Ó&2[W\8c×T\8c°\8b\82nýû­÷4\87°n"\8f\11föpuõz,2ûÊÚ\ 1:\r\9eü\ 1o\f$rOZ\ fw?L7
+³ÂõYx\82J\15­¸\90z\92Ü*¾&ül¥Yå\96\89æ§?|\97Bzòî\ 2¹n\f\93\86º'N\99\ 4­b\86\ 6\\8c\18\96\12JÇ}\83\92\97\18ûJ\13K´Ed,^ê<¯8!\97¸¢¡î\92\7fÁ\12»4¥Ï«Ìø\ 3e
+J\9b:\1fö!\12´Q\9f]PL]\ 4\87Ð¥|x Á18>B\90:bú¬TI=\84#½,l_à\81\92\81\13(gôõ\8cÖ{¼Ã\11VÔ®©\86I¤Z:\11 \ 4Úh\rrð½\84\8dÌý\82'Jè+ü\vÓ\9f\1cîТ\91%·Å\9cêì\vf|·z+    \96\1cË:|\8eµ¶î\96\90\11\8c\ 6 \7fl{Ìç7Ì£;õ«\0\wÓh\82ÚPvx\ 34Û¤\12\8f#q\92àÓX»ET:\93%]bá\98(|*ú{\a\ 5ã\r\83\1f\r÷¾Xn-[ú\15{å­§¹É(̨Ì\97\9eç©ÏÜÂ\95å9á3Ê!'}
+\95í\95þQåÈ;H7\ 4ïõ\ 41¿\ f,\80x`ÝÅÊiB.LUKnS\83á}ïazë%\89ð\84\85v\ 3^CkÈê\é@\vz\a\991\89QU_hl¸ð¶\9bY\84Ç-L®dJ\r2ãq\fðk­@ø\a uL\12ã.À\82/\8e4¥@\96V5Mù1&ç\1a¿KÄ\8f\89\91\9dѶ\89©×l\\9aôI¥¦UYß+¹9Ä£ûab.\ 4Ä\ eÓÂVúÜWxÙwVðÑ\15æ_ö`#õ\ 6âÌùúbG©1f  nvÙø£\ 4#´öy\80§\8a:  };¦"5Nþ°¼Ùhø=@.\9aWæD» H»Ã·ÌA§\8d\ f\97U°P      Á
+.Y\90Åy<ÿN\83¯¨ä\91c`bç>NopF\15\86\ 1\b\ eCÆ«ë\95=~\vÎC\bN\ 5\8eW\87v$V+vÐOÒ\84\9b\89§6B\1e\18D\11\ 6h\97á\8eù\ 3\8a\9d¡B\9a$\9e\9bE@\97ÕÝ2\aí\fi\8eñÈjg¨\ 6 ërÅ:3¹ çþTïÙ¶ÞA?o¬J¡¸?§é·\a\8eA,'gÄ\ 1\ 1îüïÁKæ8½O\14×#6£× yXiS×\13)T×\1d \81iÖ3ì\1e\ 4ïvµÙ¯\81l0¿V\87\7fh'Ç\ f>\ 2\9b\14\82¤\14á¢ÂÙ©ÿùð÷\12(u]ÑúÀ«\86ùWdã½\ fï¢B2V\0gr¶y¹\ 3\8f&¤1ú\ 2\86ýõú­¢*¶ñS\83r\80RB¨2\82\ e\1acãúÇéXÙ°ÜãÛ£u#azѦ\1dõKøùÀSÓ\e¡\91\96\18c\8d¥uI°\13³q\9c\ 3Dös³õ]\8eáðæ°\8d2¼ t¼ÆUx\1do]\9dRÊmx\91q½û-\18\14Aj¯/.¶!ªò¹Gýk¥8[Q¿H\81\99V,ù\81\9d¼cɸ\18\92F       )\fUìêaYrÕeØJ    $'»Yw\96QÀ)òW\11\89WÀ¸\ 2ï!\ 6B$"\8b\18ö\18~\1fÜ$ÌÄ\9d§mª<)\8c&e¦·É£<+Eqç
+\ 6« bQÔΡòf$0\84\93:=D/!(\86Ì\9e&\82\8a®[íT[$<©OWÂß\8bC.\83F\eÞ½\ 3±¸¢$|\7fGzöUBð 6º\91\10[yú<\93âí²¾\9aJÆç\84õ¶ëÅ[\ 2\8a¦\86î\8dF(ÜØðt½â\8fY¤â \85Øuèï\ 4´É2Û×:\9c\87E¹Á2\ 1öukE\1e¼%S\8ei\94\8cyCÎY¿\86ëȲß7\9ewh\199)Ô\1dwm\85Ù\8dõU\1f\80É>^ù\ 5\ e\95Nf.as§Ól\bcå­\r´èÖ\ 2\89ý|MCqÎÄnjmbß{o÷\1a¨\r\9b£~KÌ69¼ÿ\88r1U\ 1\9dë/¯\b\81ë´oxG'uli©d²\90ÿ½\84å\9az\946@\85#ÌÒéÔÞ86ìZé>¼+Ϩ`Û\9fÕ\fÇ\9fº\84ÿC\ 3zNMA$\r5OÏø¶L\îQPñÙmßsTµKÔ\0S*³p|\8b7\ f¬ãäâá\93ð­hp¡lÖ;Ô\18_¥÷Ìd@é\98 O:\8fàWþ·cóâb\ 4+\88+¦Y\1fø\1cô>\93
+\9b,÷vò±Ç'Ï!\8c\1emâ¥+Y¤;x7õ²\11V      ~;\e}X®¬ìtÎ\80\95È`Q)v{\9cÊí\1dÖ6ïÏÌì½ÝÇ:ÇÙÄÆQ¸\9a¥\10\ eÌ&\10ͤO        \9c¾\11Õ*\b\7f t\8e¿ªé\ 2\v¬çSZ¯\92é¯ÅJ"÷å²Å#~5±mqµÀ\99sæêP¥g\rVÕÙ\9cj\ 3\ 5¹\8a\aÙ\1fÅ?\89[)=Ý\84Ö°©8öR¯S6\18O\87F\13Ó\96YæÙ:¨\9e\974\1d|Õx+>\97MQÙ#ý\ 5fÌ:\1aµ\98ùÐ\88ûF\87hÞô2ü\80\96ønt3¸\eÿ\84W\89zT\85\1c\196Íßí\8dªÕ\97%      Òä\b8xÑÛ\9fÌçýþ\13ö}pG7q!\14õ{é²\15;\82Gâª\80:\9e\83Ntêap\9e\8eºE\18«ù\81\12ß}È]\17j£h\97øµÆýë+ÞÎïÆûùFÔ^¸îâ_´¨6ÈÖ\14\10m>°~\11k\7fnéÇ°Y\87\ 3Á4é£\8bµ\9aäÜ~jj\b\8aÓâVú\1e\ eQÛzë\95år6\94 ?uî\8a­²\ 6ÓÒ\1c3\82?\99øyx´#G\93½\14\15PÓ,AÜ«£.hü
+[Ì[=%¹ºë\bm&áþÝ]\fÛ;Kºb'rä\a\8e\90\86zYwé\ f\ 5ï\85Pßèw¢Ã\90'\12dO\vÂ\90æÄ~\81[®       Fá\9e\14+Ä<à\8dÿDçõU¸1ÝJ\18kHb\96¼\81©·Àú>nÔ\ fÝ ez\9b\8eK5º\8eÚ0·V{l\13×\98\81\1d\ 1c&>\90av\ 5\ 3\11\17\9fC}.CÎß\92Þíë\ 2$\82#·Lâ6Êãí\82w_r&ëê¨ZV\ 2áWÀ\8du\93\92\ 2\8b½­Êb\94'ý¦nâ0\1d«Î\a¢édÕ«¡È\r\98Vñ¶7YQ\f&N6$\929\ f\1eÙ\v\9a9q\80
+
\f±Ï'Áþ3\83@¹òö£°öÛ}%Þ<³töÁaF\ 5\85\b\ e\95\19\85ÑB\ 3ôb~ÂgÚ\1aÇÅOÝrAïP\9b¦,ò \14\8bEØ4h9ã\86ª\17\92V\14\ 5°\88uIF{\9b\82÷·Jõ\91¬\ ei\8d\18FF\8d\14`>\1d    ¹\98\15\91\93\86³#N}¶q}u$õ¸&\10¤rr\v\8fþ½n\ fíÙÁ\88ÞwèG\1e\90ùÈGéÞ\8fÈ\v\88Y\9a\86Ê0\99¯C\8d§ÒwÂq6\ 2\86Cø&xkÒµ¸º<åè 
+X?Òsjp%+ò~et9³ª\15Ã7·b\bõ
+ãg|\9cÇBM"ÿ]µ÷$LÀþ¸)\89°6a^XÓä1e\7fk\8b¯^o¶
+\9aÈ´'BR#\8d\94\8aÍ\ 2\86z§ú\10\86h\9fQ=¬üZU°ï\9cð\f\8cÞ¯ýx\9eå\10
+[\88\17\ 2¹¦C}ö
+Zø\96\1aJR( \14=\86ÿ¾\80E¶ÎÐ?£]7Öz±¸=\8e=çÝ\9eÚ&Eób\97ÈZ"»\í\ 3éÒ·r\85\8a\ 5A¥¶nû\10ßü\85Õ5\94.dkg¹YòÍîn\8ai\81\93\e\eÔþ\12½%NÄõÎ\95ü\83f1\12C]$\9e0\1fÔ$fýx¿\8eá=Éés§oE0\1fïäß¹½^y\95\ 4t¸¾\88Z\99/ÉB^\14\8b¤)\9d\9f\ 4fd4Ǧ\8b¡¤3ôì\vù\8d³Øü¼m\13\88\85ËW#ó\9b$FIØNc|8\#T^ÐÖK\v}8¥\19£O±\9eèî²ÚÒ\e_õzÓ$æÊz»\ 4l\eààμþ\96Çf3ìTñþÎH¢\87H\91³\82\18¿\1cù;×Ò­^\14\83\9f\ fñ.P\84º\aÒ\98Tw\13\ eû\ e²²Än¿ÀëÒDÈø»Ùú\8b(\13\1d\11³g\97È<c8Rmx \13\10\8fp««$Iz-µWº\ 2d¥EÄ\1aÿÀ¼Q7^\90då?\7f\82`\99ý\v¦C\9f%%8\1e\82\86\1fü\ 5ÃÌZ#i)§ÓÊ\18\95Öè\98Y\96Ø\12}\ 3ëÝ$\81`-\860<\19\95Û\eøбø\8d¦Òä\1fߢή.\98§{?f?\vï] üö\90G\9e;\9a\18Ø`\19¥Ï\8cõZ\85""¤ã7ê¾\9aèñÛÃlz*gO\82\97p\ e[`\v\17Æ\13\82\83/iª{°\adËï:\93"˧9lø\8f\9aa8d\13\aÎz §j¡:ìßØq\9fGF¸d\ 6#A|ä\f~\8cäÂ\8c\19]©Ý\r\ fKç1GÐ\90OZõf_¡ÄÛ'ºD\93ëoÆÉÄ\81\ 2\15Ê\96nd'©Sí:J¿\rNï·\ 6¬´># \83\19I$Ù\8dÙ¹e\9cU×»(×Xº×\15f\81P\80¡L$ß;îúI)~\vÓê\83á\96Swên®Ue}5ï\93Ë\10|\96\ 1\9b\9aÏÛv¦Ç\93ö\83úí\84\90`||,í4\9f\84#\86H\8ehüió[\7f\98o?ç\1a\15µuç\89\89_\872\8c5\10\fzs:Ïe7Ý\16[Yö)yfWO¼\8eúM\13J¾Ð²\0\12p W\\8d-ßÃs÷eëý¡$2Y\88~@\ es\1e\17û;-ôN¡J       íVc\1f=KÂuºâ¾/:B\1eQJ·¶®·\94\81\9aåM=\a.helèãÇ:UVK¼å̸Ý!ÍU$4vGQ\89&«¤e\97\9eÓ"\19íç'ëOMOweEî>Õg­Å9\9d3³|"àUμ@\9c¥TIèïøÃnÖ"Þ½ç&»\94é\15½\1fhh×zÇ»fÎbtìÞ§\83\12ûb\85\9b{.\9clÙ^N·\ 1MÏngúzë\ eUÛÍ\98$é¶X\85)}({o\1eJ-\1a¨rL\88ÿþr\88Ð}µì«3 Ö\v\9d\rã¹\9fà\19o\1e\1f\ 4x2¾Ùì\8eµà½ÏãíèeäÓ2¹\7f\98\87p\87ÀWÃxÊf\83ü#\b)O\9d½>#ù'ì;Ai\12üb\18aÁ´\18\a¼BLºCÅÝδ\ e\vÕ\9f^LìR\b\15Y\18,6>ä\19£¶U4v\83#>é}4ðï\7fNô4ú\80r\8c[\18{\ 6§\9fW\84o\92\9f\7f°··~\vÃËÅ\b\1f\12rî-"í/èÛîHá\7f\88\9cÜS6×í õºÇ\83Àõ=Eß#O\94î)£,X|¼Â,É\92(æIty¤\88(;2þ6\85©YÁU\9b\13z\98\80º¬¸»\92OA½ð4»Ð\ e\90¼kIBý=|+Ù\81\83£º2Õ5Á£\16\80H:,VJï\ fÚÕÔíè~\17+20>Â\95\9aAq4\80á\86%R+\87HWù&æµ6\9ap¥c<÷\86,~\8cÖ\87þ]T³Øbõ\87\ 1ýY8éve0äqC^\96Ƥ6S\8d\10M71 £\19ò\99°yá\rO=\82±Ï\85ü±wð0 ÚiøTq\91'\12[mC\ 5\ fù\13]ÃüY\8dV~Cà·\9b´j½xqæ-&%T\S6AÖ\949*¥\ 2CL¤f\8d'J\9egýPö\81 ùÜÕ.Dê\f¡\89_å¸\8f?¹x\a~"Å[\10Y\86 Öa*y"\b{ºçÔn\9fçz¹yQu\18\97\9eZN\vÓ¨\88\8fR{$B\9aå\9cM¨Î6ü¸=½
+       ã©\9aÌ\97áý\8d\86÷\1fÞ\87 øN\84"¤dßs\9b
+U\97pì®Ã`\Ë7·\89\872ö]\9aÙS\10±b\eÔWvá1\7\v2z÷5\15À\19\95M\b\96X]áÊ\8cËB(H82\15'â¬k\12  \8c¿å\82
+yÈÒ>8øçuõ·ó\9b6{M\ f0\e'#ø\90\11Y\83\9a\8e\97j\98¶â\9b\86\8e}\18Õ\7fp>üÞh\82\92!Õçª\bó\7f\0¸6\84\9fÙ\I\b=u\a+-À;ú¾ãH¢\15\87\15Ê?¨1Ew~\b®»ü<N\83®Af\85\90Ç\\8c^]¶.A<\15þúæÐy\8cùa\ 6ãw¥³´ \ f\9f\18wp4\96dM­ñý\86&#ï¢\88>\8b6ý)[>%Æ\8ce'\17oxE\83\16»/j'\r³ïµY\80\9dù¾8Ù+a\1dÉìâÞÊ7^\84ñË\8cÕahý¸÷×KÄ>±p+Ì\ 1Ñí?[£»\83\v@\ 5T
+N5iU\11)\89\ f\9e|\ 2~#³O2Aºrkì\82\8f*½G7|ÄA¶ø±CÉB£xvù\96\aç?tøË\18\19V{¯ðä       ÒB*öÉO¡Ç¶H\14\90¥g\86÷VÚ¾¹7¯CÔ\9a³Ï\97ßC8\7fX²PaZÞÈ))pwõ>LÖUv\96³¶\8fãÿ\86ø\97\eD\ 4\9b\#%g\1fÔZRD\1a\\99GNÂ{d´L¢8:lê\1dÔy\8c¼¥§:ªî~\9ck.[\0¾í\17ò\87\9f\96Í\1fèl\ 1ß{ÕmC\81\156>\ 5O°J?ÌÑç'¸G  J(òÙ\86EïY\19\89éÓ\18ðB\98ªl\94]k\9fÈå\ f\96\15°\14à\82»?)dU\7f\17\85­b¹*-Åé\1e\81óþTz\16Þ_\87eèð`¶§\13Ñ\8f¤ªÜçiG1¯\1eCNÓæ'\1a\ e\91°ßäGÞ³vÉ\12!uÙv(^D{\8c£DѺ~:\94É\8eFÛò_7¤\98áR\7fm\89\ eE±-\7f \19\ e©à\19s\1aÏÛ\15á\82m8<¡@ÑýÝ\80Z[eÖ1\81\9aмg4V\98ûùÞdöÑ\8aôã×ÞQy²\91\90\8b9\83°$O§Ê\ 3\8dò\8e4Ôe~Ù\1e µ
+ÿª!hz\9f<EåX]">>¬c,Md÷´&täë\91c2Ý·\16íª\14<cªWBVS<\v<¹W7Ðݶ¶\83\ÝVj\9fâü;Ç\1c6\84\1d\12M0\85@\95b74Z\91   e×\1c\93¡\Á±·gõíÀÁr\8f\an\ 3ù2ú\12Ä
+á='cÕ\0\9c\94Õ´N¨T\7f\14\1aZÐw\8b\8d\ 6\8cbK}~¹ÖÞþà&^[URXN/ã¤\11\94é_Í\97*ÈÇ|8BðÜJD¢P\ e×\ 1þI<Arëq<\91¯éåÉ0\¿7³ð\97sQ'ê´a\8c\8c#~çå/       }\9d¿ x\8b\8aü\9a\18Ýr\9b\9f_\e\ fW͵ü3·Ü\86\a\9c\e)R\a\847\1dTfLɯ\96\1d\9aÎ|\ 2}\ 6µ\14\vè\19\9f\9a¾Pn\15ò\OæAN\ûN\ 6T\e%»®áÑ<÷4\7f}
+(\87~\7fû{t\bõ\15Ø­¿X»8#\87½|q>\9bö\80o\8fÙ5\ 1êÿ9$\96ôÄoT¨Î\7f㡤ߺÙ\86Æ<W¸\14}$\8a\92µã\84xG\18°Öè\1f¸\86|c£\9eâ^§\9bAq{ûn ¤²\95\8b»â:*î¾~\ 4G\8bKt?\86\7f\}\8dß#â\87ëLÀCE¤¥7\88¹ôvÚZÇ!&$¤ÇµEó\9cÒ¸\rW~Òwñ*\83í\9cñ\1cÛG°L\fo\92Ð\9a<ýÝa²j\81\9fÅö.\ fîe\89^ÉJßÓ\13Z³ò\12TØÀ»:qSW\ eIêc­k¦\ f\8c¸ëÔï\1d\87txÖ=ý\9f¨{\1cT¹¦ÙÁLL\1el\%\½
+wD¯v\ 1¦î
+\a\e¼\ 3\ 5¥­ÂÞì\1a\9d\ 6þ9UK \8c)!ÄÀ4>æ\95µÃþðo\98\93Ѷ\ 5\13\1d5{\97
+?Æìh1\84\8b\ f6º¸\eéì\84\89[\94Cû¬Í­\95\9b\v\ e£Á)\9au\88\Clr\18Èí\8a\84s\8f\8fëI\8f¶Ã\e2O\95c\8f\9b±ì
+¾¤¸&Z\81óÐüdg©sÅðI,^\8f\19
+E /Aüí¾#\8dF,®ª\ fb\8aï«\1f\94ys?LÂ\83\83\8eºp$\16´:ª\11íÏ;£«Hº\83:cö\b|_e3èçx/£È\86­üÖ\9e\16î\11Û\8c4\7fL{«;\97Àú\15´dàSS~¬k|ß{{\9fLQ\11U\1fÇåÚT>¾¿¿ë\ f\86ÐïȲø\ 1j\r}pn\95e\93¿þîS>áÌë*³ºÃE\18\17#\/¾\1céc^\18\93¾e¬\80îÕ\97û\e6\16ø\88Í\80\15\1eö$ÀÚú\8a÷È¥\9d|Î¥Ieâ\9akÔäcð¤ÆÃT@\9aN
\91\81\99   Ó\92 G\85\97\15O»ÿvY Ä}\9b\9e>\13/kÁT <eÏf\ 4ÔØ\9aø¹µ#EÈý\18\16®ÂÛquY¿\9eãi\ 5\1aÆ\8a\84É\8f­\8e\1d/Ëá:¢B\161\8be á«\9a\96J\ 3ÜÓ3\1fã&<2±\9aIOå\9f\12\7f«+ß2êm prºfm*\94i}!õ¾:;lCÛW\81SõÖ7+Æ\90\91ñë7J¾ãGâw¸\8aëpo\89Ý
\96\83ifþ\80Móv[Ø\9fªZ\13òk\81l\86\9apß#ò\ 4Ò\93L*èHß\10¬kè\8f\90\14K~ÿÊýΤ\8d¡ãt\10í[_~\82Cf°=\8d·­Í:ѦJ]À=ì%¿qRÑ\81\eF#\e\ f\8e´Á'»\92=\8acÒ7Ôê\a\15Ânfx\ 4É\0¼\1eû7ê$\ 3Ü6\f+\19\12'Íùõ!:ä!´hä]º5Ñ\94±û\1eMEV>?w9öú\f\83\89dG\ 3\9b\9b\ 1H\1ewEÄ¥»öo=#s\ 3¿)·\ 4溷\8aèt\8dgB_\93°GÆô\9bõ²\ f\9aëïvq£Vt\93\17\12\1a\búvö\1a\8cie·\9cÉ9\T\7f\9e\92È}Âf¦/ÈÿÌ¡£\9fŵW`\8d\9c\8a\17!\1c\ 3T\8fÓt\93)Mtm.\9dc\9f\11\17\17\18þ|âW\99Ê\9aÒhÝ[ô\91·ûç\9eú\rGQl¼\ 1á\17c\98iÝú%¸\1e¯\8a\a;Ø£Õ<\9d´\84\væ&®öý}t'e\9cå±ôw»Ë¡Î\0·ç\10tÕ_òsýDJ;rîÓ\8a¼8ôQ?Òë>sff ì2÷y¬È¾µt\8f\18\9a\91æ
\18þ8;%ý\84\[\88eÀЮ,,\11r7ÍEnËú(\17[À(þ
+\85\8d\1d½~À3ÏÚ7y\ e¦\86vì[ÔÉñ®B;g\94,PI$gA\16Gai¡ÍV-¹Ø¬H\8f|ù§ÞS\11\9dÉg\ 2»-ú6\fôàÃöµYRêå\10\e~\8c\82È\ 5²úÏås\ 3\9f\1fÏ©2Ã\86\9f\94\95\11\95È|»³\9d\ eÇú(ÚdÎm;¨\85\+Eø\17eÝ<\88Z¼á\\9f\J°FÕ²\17Ï
+\8eHô¤×Ä7´\9cxx3fÞ\9fÕ\1a&&(ù1\17\9fÔ¬î´tp"4z[äË"Á¶`ï7\8eß\94\8e\18Ýwf\12\16Ì÷\v}f\96\9c\95\83g×8\8fjE`yØ\17¥Äæ`±À\9c\9d[A\18·  7ö9±\1eÁ\bĵ\8b\14Ã
+\81§\11\9fÆ9S\9fÿ\f['+\85·\8flÁmCRÌðæ\83©ï\88\18\92û¶&ûT´`vj\86hD\12 \83´0m\12MA\92\16BÔ¯õ\88«\80UqZ\14µ­\16äzÖIï\9cò|º¡âh\12\88!~\15Æ-ð­×@M\ 6\ 3g\86\15ùü\81iyç-\1fj¾ì+4\9c×Ò£\v±.5Ô\ eÍC\8dóà\1aõ@¢ú2"¾,¦ò\v=«Ù\19þï®pÛDØB\978'×ÅÆ®if´
+¼¿pMb×\12\7fZ\982(\9f\ e'9D/\8dÈK´\vvM\87ò\9c\v\8eWâ»F§/·æñ£?3¡wTr\80jÄùOÆ   jc®l\92 Bb\15¼\81\fÜúÙ0Ï]d­yh0\"\b¿ÞÁñÆ^f1¡¼\9dÚ\e\ 2\81íµ\9b{\7f\82\89À\84Zb{\8f";_kN¹9ëç\95±.Zò§¸®\90\ 2ܪecÕ\99N\ 6ÊîéÚ®kÂVž¤ñe\93Ö´ìOÙâjЬ¯Þ.\1dÔK;p¾zj¥m;H5­\1a\92\14L\18Ä>b\101\88Sl1ª¸íÈÇHÅð`ÖÑùØþ  æàKxc\9aÿ:pDãt\eº9\8aò#¦gÊÒo\99ä\80æ»3Ù\ 1Ó`\1cC\93?æ"ÞÞÝ\97\.\8c\8eï\1dúrû)ð)\99\ 2ÕArË\eÆ0K\1a±î9)Ô\97Þ \ 3© KæRsy\92à\95È\1fëÓ\95öúbY©É\ 6ÜJ\9f\9dÆL\98ª¸'M\89Q\8b#J\ fað{xÁõ\9e\94»QÞâÖ       }Í!]¢2$\11\86ÄÂ6ÑiCm\9c*\8f\98(t@\9aä0ú<\f\9dWª·nþ,Wëþ.d³ÛJ\14ê\8d»\8eEJ99JºZ«QH½oòvk×¢\7f×G£Mòb(\17\99\ 5w¤¸¥Df¢¸¹\1d¥ûØXó\85\v»³\13h&Ëó.Áb\8c\81\8bâÝá\ 6üZbJâÿñ÷\971\9eÏl¶k*í+~ACky¯S[ º\15?{­Èe\12× ¥\91q¨T£\ 2°Ö\19ã-2Ô{\11Tb\13èñG×?9\14Æ
+lq(&'\ fè/!\1a³\17]lÇ\8dNßÂr\18öÜ(5k\a¡\9a\99;¥«µÖ(§\7f 8\9e\ 1$%;\98\91ï\8e½âø_~Pþ?Áÿ\13\ 4\16ö@3g(ØÁÌÙ\ eåÿ\0t\82wäendstream
+endobj
+925 0 obj <<
+/Type /Font
+/Subtype /Type1
+/Encoding 8020 0 R
+/FirstChar 49
+/LastChar 121
+/Widths 8022 0 R
+/BaseFont /PQRBRE+NimbusMonL-ReguObli
+/FontDescriptor 923 0 R
+>> endobj
+923 0 obj <<
+/Ascent 625
+/CapHeight 557
+/Descent -147
+/FontName /PQRBRE+NimbusMonL-ReguObli
+/ItalicAngle -12
+/StemV 43
+/XHeight 426
+/FontBBox [-61 -237 774 811]
+/Flags 4
+/CharSet (/one/two/three/A/C/K/M/N/P/S/underscore/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/r/s/t/u/v/w/x/y)
+/FontFile 924 0 R
+>> endobj
+8022 0 obj
+[600 600 600 0 0 0 0 0 0 0 0 0 0 0 0 0 600 0 600 0 0 0 0 0 0 0 600 0 600 600 0 600 0 0 600 0 0 0 0 0 0 0 0 0 0 0 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 600 600 600 600 600 600 600 ]
+endobj
+621 0 obj <<
+/Length1 1647
+/Length2 9838
+/Length3 532
+/Length 10715     
+/Filter /FlateDecode
+>>
+stream
+xÚíyeP\9cݲ.®ÁÝ\awww\bî\1e\9c\ 1\ 6\87\19\9cà\ 4M\bîNpw     .Á      \16\9càn    î\97|ßÙg\9fÚ÷\9e?÷ì_·îTÍÔ»úé~º{=kuÍÔÐRªk±JZ9[\0å\9c\9d ¬\9cl\1cB\0U\90£\85;XÓÙQÕYP\99U\13hã®\01w\0¼b¼(´´Òn@s\bÈÙIÆ\1c\ 2\14\ 2è\ 1­\02@K\0\17\17\80SPP\10\85\16 íìâí\ 6²±\85\0\18t4õ\18\99\99Yþiùã\ 2°ðþ\aò\1a       \ 6Ù8\ 1è^\1f<\80\ eÎ.\8e@'È+Åÿu \16\10\b\80Ø\ 2\ 1Ö \a @ZMÝ@AU\1eÀ ¯ª\ 3\90\a:\ 1Ý^\9bPw·p\0Y\ 2\94A\96@'0\90\11`íì\ 6pø{\ 1°tv²\ 2ýi\rÌöÊ% \ 6\98\ 3À.@KÐk\18ÐË\12èò\ab\ 1¸\0Ý\1cA`ðë3\0\ 4\ 6ظ\99;A^÷\0â\f\09Y:¸[ý)àÕníüWA.nί\1e\8e¯Ø+\99º3\18\ 2¶t\ 3¹@\0¯YÕeäþ®\13bk\ eù\93\e\fz\85\ 1ÎÖ¯\9e\96î\7f\v{¥yE!æ '0\0\ 2ô\82üÉe\ 1\ 4X\81À.\ eæÞ¯¹_É\Ü@\7f\95á\ e\ 69Ùü³\ 2\16\80\eÐÆÜÍÊ\ 1\b\ 6¿Ò¼rÿÙ\9d\7fö ø/Ý\9b»¸8xÿ\15íü\97×\7fÖ\0\82\80\81\ eÖl(\9c\¯9-!¯¹m@N(ì\7fÎ\8b\82\93µ3\80\93ão»\95»Ë?0\ f Û_\eÄðçÌ0¾\16anåìäà\r°\ 2Z£°«:C^S\ 2\18þïTfû÷\89üo\90øß"ð¿EÞÿ\99¸ÿªÑ\7f¹ÄÿÓûü¯Ôrî\ e\ eªæ\8e¯\aàï9\ 3x\1d4æN\80×Y\ 3P\ 6ü\196\ eæn\80?\ 3\adù¿\85\9a;\82\1c¼ÿ»à\7fõÖ\ 3þ]õ\7fpþ+üw
+I'\9bW\85X9yÙxÿ6\83Àr / \95:\bbi\v°6wxݼ¿ì:NV@7\a\90\13ðUä¿ö÷5\88\83ã_0m[\90¥½Ó\1f5xÿ\86\80NVÿÚën\7fuÀ®­j`¨¬ÎüßLÛ¿\9cÕ_O\ 5DÛÛ\ 5\bø\8fLz*ÎVÿ¹øC%%åì\ 5ðeåä\13\ 4°rñs¼^Æ×ë(ÈÅóþÿ\90ö/"Î\7f®UÌ!n /\80\11\a\e\a\a'àõó\1fï\7f®\8cÿ\85FÖÉÒÙêÏ9Ò\82\98;Y½\1e½ÿ4ü\81-ÝÝÜ^\15ÿk\1a¼vþ\8fõ_\97\0\bô\ 2Z¢,þp¶\14\ eµKÍH\83Ô\10ä\f\8eÉ\18õvsÂ\ e\86¹\14×k\17æ\aV9w\ 5¤F¬\v\96\9b=V\87±5L\b=·zÏ\1dº<m+2í\fuã;Ðw%\ 3OóHßS3öäc­Òµó3ï\ 4³\9b\14£¥\1déÅø\9eÍ*ÿ\843äãÐÝÙ\18ÓÐ4)zD \9bhçvC:»a\f¤öÈ\ fÄ¥¹vA÷·L©\8bÅû\8aÙ\0\85]SpxD\97°\7fsMß?ümp ë\17|Ï6 sv,2­°\a\1c\1a]t k6\89¸¡N¹ï'\1c\15åÆò\89\99ôAÞ%(ò4\9e\9eÔâ»Ö\13(\86\12\93ôu8Ê\9f\v\87\ 5íÂJÊÛÆ\80\ 4Xjß9Bäg\95\bd¨ÚÓ:¾\8a\12ß\9cë£ÝÖÄ"\94«\1f~cR\1dº\9e\8cïx\9c\1a\ 6\99\7f³­¿/[døÙÌ£s\1ewA\83tbÅÑ
+!°\15úí\ 3ë\1a\85ç$îäë¤Æ\16ä©.²Àº|©ã#2y9¤_åssvâ0@\99\1f"%m\9f$&§Þèͼo\92\7f\17\98
+\82/¢(\88NÞh\1fâh\96\ 1áaÔ4¦\16'>\ 5N!¹ )\86»\81KÕYxtwΠ¼èNÂ;\1fÄ¢óÂ\8e\f\1eÂë\81ÖÕ®\0\99È)\86÷ªñ&Üu\ 2\8dÃgÃ>ì¦>\fÌY\9cdE!\1f\8b\95\91PpÀÐT\ 3zÅéò\ fW º´®K¡õq*d\81µô\83\bßàìÛù\99 pÖË\13Ï{½åô\ 5\§ÝºÔ\0÷¡ûY\10ã½ö\92°1ä6·õ+\8e\13Õ\9b©\ fJ"6Pþ\8b\11P\fR¼üì(.ÃØ\9bäaÄ\ f·ØøF\1fï°Ç\89¡Åè)Py¼mÂ\1d\94%\11Ï¢¦~¹ÄY`Â*[\v*f¥\90Ø><bqn\ 5ôx\1d¥ôÔå^\81+\17ç»»\12U\81\8c`\95Ûâ3í·F\ 5üïúг¹"¥Á"\1d¼Ì=F\bCF\ f\8aÉiRqß\98ЫB\1f 1Hh¾c\9b¶ô8\9aé\92ݶû\14¯>')T7¿!\8f\94\92Â5ËY\93LÇe\88ßÂ\80qW\9bæ\99¨\1fHg\82ë¶/÷ÙF\8f]\e\807háñ\b\15$uG\ e\ fdÕÖì÷#G5¥b=È=­>%\9aO~á7$'?¯:!\19é¿\f{¬Ú\88:Ö7&Î
+¼$t]-4=#¯
+\1e\88ä$Lõ=RÉæyGÿM2g×ä­V\ 3<ÿ\ 2Õ\96Ú¯õ\ e\ 6¢iòkÄTl\83ý\1cL\89üy¤y9\ 1ý2­ ÷ôþ¬ËÕµ:ä|¯g³\ e\8aÜK;\9atø&Íío]$6 éñ~Ëz4)d\15\9c0GÝUfie}W\90\8b/ô×öÖf@\83I§ßlìoKU      \ 6m)N\föu\ 3;0\1e\ 6\95ö»g®°ê\13ý4òìÞP\99T©goßBõ÷/\9d\15\95\97
+Ä·s\ 3\8a\b\b?¬qx<Ô,\8e°és±y"vÌ\93Ö<\\99\14ÞV=>D\8c\91ÄçÉjÁÊtT(ØÕ-ôØ'\ 4ð\1fõØ\96\8a\ fI¥~ÑGfÃ\1f\r(PDÞÐS3\9d\9c\82ti¶ãN\14ïò^\1fI    ¡G
+ÕBi|°ACh·7\82ÈCG\19\9bn\9d¡\9d®\1cLí/¿\×ñ,\861¼XÞqùî\8bú#ÁÜa#ÙtL[|\ f#ÔÑjúåìYLê/vÁ\8e\13\18qM{\1c\8cÉRAãd²é!GE/±Ð¯\1f1\9b;\19µ\8b¹\aí\8fµ\17sµ)¾qN1öíJ0Åbêk\9ajb\13A\ 6±\eÇ£ãqe£ÒÒôÓç\ 3J×íP®öòl\80÷\vy\fÔ\9e6       kóð\8e\15.\ 3·}K,Ï\ 2\8b\10¯¤ý\9eÄ\17I4\9bê\1dö~Ð\18,jO³»\13B\ 3ìÑ~\19^\8c¬ Æ@G\eLª\|-Z\8eür|x\1e»g\15\1eºÚjU\88ܸÓ\97É\18\8a7ªÃ\9aÃ\8a3Dßð~\8d´å·çx¼)sÖÆ\1f´\ 1\e/|È[l\16®D(b\1a\91\8a·¯Q!\1cn«ÎçÂ8\9b\16=4­QÅFa"¬=3+ü.Õ\ eaVFrWÉ\81ê\1d~*]Ô\e      RË=éò,Fj\94ß­Öv[ôüPÜÕ\ f\9d\8cD\13ös?\ 6ÙX®W\8b\96é&Ð\0ÿç¦0ßb-\13,\ra+\171¼µËi.Ë\94\ f+¡p6\11Okì\8b\eÍ[ÚPË÷îã\9dk^V{Ï?<\95Ì\9b×¹\al\16\1e\95\87y$6Jj*|2Y\9f×Å\13P®V\1eLeð\17Û4{i´0¹²*\83)\bz&}+ósù¶«\9e\9d>\7fs\7fÉ®WjCµ¥´,\90ð·)\eâ5ç0÷­\MN¨²ðõ\80\14\81\aî¯`\8eÃ>À°ÖÚ¤¬Ê\9fÍGV»¹«\ 2í\ 6±JyBЩ¿?k£æ{Å$°:d\9a2VùE\8a/RÎ\b\16D\80@Sþz\87^\95&h\93Î+óJ\0e¿É\ 1ÅÄKùRW÷\8d\10pq\1eRo¼ñ±9\11*<ò\ 3wØÕ\97Õà\ 6©O¦?\9ex$¸Õù\82ÂpX¼\1dz¯µ\90¦³¡¿%\b%£!%CQ㪧\9an\88;\v0\9f°Àr?\8e\1fð9.½¨\ 4\12¹\1d9DÃ\19f\96frT:JïâÆÌ-Ý\1a\85\8bÊ4\18Ô\85\8fðìv¾hЧDôv±_âtÀ\15¿+Ðë\93ÔùòÉ<òSÀ\87s\1a\fyYÔ©éÓ\13(\v\93/ÛÐ\aµ\ 6=,Y|>¿;\14W§¶\81qWϯaÁM«ä&`m¸\eiÜ~\ 3)¸É¿IÐ\85\8d\86Dxv\7f*\8aÞñvÞ÷³Þ.+\15ç\a\rðÒ\vj6aè§lÆá²lVGÄ©\97½|ã     \1f\82\89\8cP\9e`~þ±ÎçÀY~)^Q¿\98\8f\89\aÙk©k°à\r\92=}c°Fâá\8cXq_Ü.Í{B\8b\98sÔGùÌ\ 3XÙ`"'Û\99x4\94åÞÍòKWñpO(Øn\8asªnéy\18Öv¥V\97\b\7fã wu\86\81Ò\f_\99\89\90Þ1£(\1fÏGÔÑô\84r'«\ 6{|îòu\92m¸µQtÎwù¥¤ óÛÕ\80Âí\16G.\r\8eú\1di4\87¥Þ\19Ì£j³\95èïClº\8f]2È-\925<£ÔÁQDU  8H¡\11ê\ f\19Â0aßî\97\19
+\I\11è\85½ï\\91rïW^4Åá\96\85v­S®ÞõuX·\88\8cv;R\8e\13ù*ûº'~\w¯§l\16J"       ¦ÂÛ|\1aJ:Pç\9bæ¤×ñâW·\13ÖfFå\1dç\81\85Ë\9e\9e)\80ë|\7fSmÝ®\8føÌ\10[ªÈc\8f\an=§§qcÎ\80¤?\85ïò3F¸J\ 1Ò\17º\96Ö­Ò\98XpkÅ  \17à¢iî>z\a\145Ù?ÚÚ¹nC÷Í\9f\15\\7fvب\8awM \ e\1c\90\1d\92ð2\85\15\8d0r\8b¡Êí%@(\10\19\85\90Çq¨å\87ÛÆÞ\ 6´\15d\ 3\vAøV[àÆ^%±z\87æ¹[»:\9bmM¼j1\92)n\1a2ýÕ1\eX\17óY-^Z>öÕ\0\91ª`    O¢_bAq\ 6\1c9UÏ;\9d§D\87LEýø\9e\1a©\1f\9e*."B\94È\9d·¾~\96ß\ f\95®n\11O^\e7Aå\1a8äʬ\97\82¢Ü̺²äÜç×eý9Ý\9aÿÆJ6\84¾0\96Ûhôg£é\ fÝ\94\17Ô°'Á\8e\9f\1e\ 4ÈEM\f\10\ f¥©¶>ÂMW\7fß%\89\94Ç\96Ç&Þþ³\8bý\8bÌÛÌÜ'³ÞÒ\fF\81Y¾¾\ 6Gk²\1aº®Ñq|\1am\94l\82G^o©)ºC#´@\85\9d(¿\86ÜX×8\98\19ñ~U5³_ë\}Â?Ê\ 6\9d\9c\9d¶'\14\13ûÄ\96¾\19pO"tý\88O\8dJÍÄ\8f3ÁQ\94/Ì#øbd]yµ\97\81\1d1à'\ 4,\9f´á/ä^+ã     æ\8e\13Å#C\9d\96 8Ë[û¡\87Õè½Þ\84\93\7f\90¸Èò\10\1eÝL[³O\8e\95!BÖ\17Ñ«íj{ÿ\91r±kSóí\81\9bàl\98\14`Þñý@úNáùÙd9=CzB=Vr\87Q ñ2Üå7¥õo\12õe¡\99\b\99Iàb\98\9fexãî_hXI¦°hK¨KbüÁ\14V\173,U\91Ãk\9f\94hL:{\rÏ\11\ 1\82N-U\1d\84º#\8eØÉ#ÄÏ\1aX\1e¿ù\1fòab´Äq\88td     ²?°\91Íïp\f\13\ 6 g$³ B?+ËÍ\9c \91cíó¿Û6SÓõ^¼ò ¿\96\18\85»ÞE·ÿÈÞ\1aøcÛp\15~\11·õZÆT/yÕ\15¾¼·*JëÖTSÿºwÃ\83¿\98\ 5z
+\et\80ö9çKAh\ 3±d£$\82\98â¸\9cÍ\84þâÖvà\16é\80²íóa¾§xOWS2\15LÌZÏ}üWÉÆ\9aL:\rã\9a\9dØ¡ÑÜÉ\12¼oÉv¦í\12È\12\88-Ôm©áï ¨¹æâ¥\12Îà\84îu\ 6˳       \93ÖùÚ\80kx] dT×\b}iôvâ§\0ùqsƺ§\9c\vt«Q¿\9foÛ·ÑѯÏ\16       N\19\ e\ 2s-ôQsòÈ\87\ f¹\1aä\1cÔ3\1a¿¾·N¶\84\16\11Y\91æ\7f\87x¸À\8foMÿõ¥2~\9f\f\99*$õq   g\1fé©le\93h\96\9c½ZÕÞ2\81G\88x\15k,\88ìÀá)wòçé\0ó9¹\8c\9b¨Ø\e\88þ\eæ"¿Ñ\ 6jM\9fã­Ï}X\1cI\81\8a\9ab\ 2ÃßÌ\82¢kÄ\ 3\16áSû¢IÙÞ¤§\a_Ç-ÄC­6ñ»Í\8bð­3`D\8d/¯½\9b½Öö·ø\Nª\84\89o¼ßw\80\99¦Pòh6J\91¬îõ\10\9bKžî%Â\99\ 3gyä\1c2=ÑÇ\ fé8Äì[â/\16Os{K¹±§;³Æ\82ﺰ\154¤±"Îi®lX\7f\85±\91#$\b·QªvÂÝY?Þ\80w©0\{\89\87/ =í\13'zºÁ\10\161®9
+íµå\86\84÷;(ÀÕ\89\98ÞEs\9dÕ·tR]\eßÀWÝ¢Âüèö»¨NµÓ\85Ü\81\9a¢ò\90\8a9&:q\8eC\97ap7ÿ<ú¶Ò\17
+]qL¸³6±\88M*6§ü\8a\9f¼\1fçÅJñ/Y*,¥\91·l®ô\10¨FÜ3¶XqU'      \9d\85\e»¥´ÑWa>N§ñR¿UR\9dÉ+ #\10\83*>×i\8dÞÊZZ#ÐÆ\8eê\ f1\88ägÔ.\81\19TÇrCåöÐßøå\84\98m-ÈuH\91a\85ó8øNÂ>ê})[\1d»ã1§\83~ª5\8b"Y\18yÞáù­\vNõ·\ 1¼\89\ 5\ 3ÑÃÄ­Ö\e§¦\1d\1aO\15é42ê¢\92ÁùsCÒ\89l.Ó\ f[Ì<î3VOèõ\9eÄ\82YX\\1fïJÂÂwç*­Ph» L\10Hq\v­!VîÉ\16·I(Þ$}¿\ 1õ#¦áÍ\81X\18ï¸'&ÕÔîâ®'VD ÉîJL\rwwZìÖ\0\ø{½S­\8f\1aë\9a¸i\ 5\r\9dV:\rÕ¬÷\ 5®\8fk\8a
+uª\85Iði5\92×¼î'\86¨ÎÖH
+²â\vb±ýý\ eybt\12T\ 5\94v\9cÖýñ÷\89-\92Þ®\97\ 6_óµ\81\e;Wº*Ç\91qxÒpüÙ7È<¤I¨K\ 4\eK\82É®\17ºÅÄ\fø'\8ar\19²ÙR}ø\97J\9bÏ×FÎi\136-+\98\97hT¡¦©\ 5þV­x ëà´ðî\87\88\8cÞë¥&\91iYúÜ"}²\1cþ`úÀE;\8dþc\17¸È\91\1f¿6å­\15\97Ú\99\1dWUzµ\9bâeö¹ôÛ4±ªA\85-#C\9e\17ÀÍ/á#\83§ø4Å$Vó0\9d\96i[Áß\17Í«¿ÙìÁÀ|ME͹T\91*Må*K\97÷n',îÅô\97\ºå\ 3)/\85\aZ\0ÇT\83¨N\1d[\8c&§sR\8e¸§#=gãM*4BS\8e\19\7f?««ä*q\ 4ÕæyBï\ 4N\9bX\96í(|°e \\1e\95Ö\82ð¡GÅ⩾6\99So1þ÷ñÃq²\1e\14ø\8dÜe½~o$|ZÉ\90xmŽ\80qf\85\9e®¹åãD/\9eÏcìt|ô´þÔ`"BFGÖ\ 2\9cõó\15rZB£uâB\8a7öÃt\85òd²\a\ 2\7f\17¦\14\9eÑÆ\9bÍh°ÙI\10>7â\8aâ^\b\95ØϪQÀl\93\b\88(\8cQT¯Ü\84çܤÔ}w\ 4ó\93\13è\91õK'\ e\9cF¤"tt\10r!3<_Vn\ 1ïwñ¦]K#Ý\ f\1e\8b<]Téa,\9fò!\8c\18\13;\89n\bµ\82þ\\9b?Dxá¤6±\8c>~:ò\83züù,þÖI\92¾<];\9d´\92\96«lJ4ÙN\89¢±á\\ e½\88Ó\1f\1d¶Pp\96\8f\97Vù¥\vã\ 1ý²ä£Bïáõ\90\81Ø!Ô¯Jm\ eí[\aÆ\ 3O!\ 4ó/m¥Ñ¿\8co_¢³³A^çS\921ã7\1dØì~8Æ«\9fl\1aÊ>8\85H\9cÙ°\ 3XAÖ¼9\885\92»]\91Ir×$!KÁ\9d\8cÙã.>vj\9cn\15Q\92Ð\1c\ 31m\15EÂVCmB£"ªÁ)P¿\91â)½\9bO®tjï|\15WüY\9f\97c1;\11<U3\13\99\83§1ÁÝw'&\88Ü)\199{¿¸7\9dàA?\10§ï,Ü2dGr÷ZÀëëüRSI\98\84\9c\98î$ï|5ª\88MqæÞÏmÎ=Ëj}ï\ e\ f\r\8fÑ°­Îr_[Wr®\17.'µÂÞþ\1a\95x_l\94ô"´\9b`\92"õ¾²Z¤\10k'ÿ$ȸ\9c\13\95£}\b§\7f\eµ\\8d\vf¨àE+r­íweçÑÏÎ\aP¢¸:\r)ú\9dÔM\7f\f¼ç'*óÏè\86²\ e(pÚÎC\83(g@H Eêît\ 5Àv«\16\86{âÚØyç\aU¯^0?c\18ä4ë÷SËì\ 2\19\10ª¥\9añ\bù G\ 5xc". '³v>O¶\9a\r\938í¡ùÀ\101#ûdf¡8ükä;Ó\8bY¶¿ù&Ì?@Ç\83mù<+xi¹w\91t½I\8eÁ®'ý\14?=ç\10¼ßÕ'\93\8e\9d\9bä×;é\8c¥(ÖÃBî\81àPA»ÌzÁºrO]wLy\85Ù)¬)êwì8gè[vS³Înöáù¦))hf\88&¢.ÐëlB\882¤'\88\ fã|OÎÞ\86§y8i\9fW¤h\82¡å(êó\90_kË Ò°\1d¡\9d#÷5*F#¿6Ä0,,\90Hêcï­ð·¨\ e·(ÿúOÃqõ¿R\7fO\9dw4 ª§$\8a\9a\96Ob3£K\94AkƸӱ]\ fÀÈÌ]PA\8bzî[ÑÐ\18rWÎæË|\19/\ 5\9eÐSÃæ\90\90³ÉÅG\8e\11\8d¯V­X§\9d·y6\ 5£Q{¨ÞP\bä+¬
+\13ê¨~â2Æ^\16\15«¼\85.êíxÓ \90^øQ0¼\1fÞ\01\11\ 3\8e.\8bY-|CmxÂ\15y    \ 6Å\14WJ<\8b¼äxNfts~ðñ\8cçÊæÂ`\v:\17¢\83ã\10,éÄ°.\1fz\ 5àÜÆöo}> ·ºjÇe­ÔÅ\0«µ\0}Ð,\r\8c\10E¬¦ðÉÉ\9dÛ&5\9aL\13\f\10ºÄØõ»\901t¢\94¾Ë\1eè«0å¢òN\14\87\r\16\9dL9OÔ±UP\e\9d\9còÅPûeÏ"u\11ëYñ©s8HGR\eÞ\92e"ö#\8f\95\ 6þ6ó¹qÝTìX$r+-\ e>ÁÍðáî\90t\90\83"\ 4\12®\12Ø»§&¨ÑƧ¬Çû\85nÊüv\849\85ò:³Ú2%\vÕ\ 5Êí\98ý\9eæF\b\11\v\ 4møèÆuL\19Ñ\1d«bk-føþ|1ùÞø¢N}eü\90b5\19þ\88üøÝ*þ+D`»^\b\8cN\93-HÚCÕʦ\ 3\91·¸ä\9dq\19t\9e\e\12\89\8cV\86\rƸëgË\1e3;Z\8bgîºnBùD\ 4âðGc\ؤÀ¯Å\15a~A2\1f\8d0pVæ\1cmS.ð\82ünçw\92c,u¸óöËe_¶x´
+¡>\9b¾P\94\1ffë5~aON²H®\ 4¬ý¼¾\1f?{®\95ÙÖ¸\16\98{\99lm\8b«\83køü3\v\96\19\87.Ò1Î6Wþô\94À±ÍÄÔ- f±ë0+á¨Ä´F%Ð_f_dª® gXá·V×\85qLcá.>ã§:ñLj\93BÁ)\9aïoåY\e\17äXÑ\10\ 2pïªVe\10V·Ö\80\1c<ýÙvÎP\1e_%\7f¸\88\v5{¿õ\1a5¯(25«\9c\1fú:Î19VV÷\92®\ 1ÅÝ!ò\85-':v\e\8aû¥á\91÷-¸µ3R\ 2L\15æN\95¯PcÓ'®>Æ\1e\10\9e¸°\ 61\13Ì¡@º\8b\82v\96\897\88m3ÝÅß\12Ë\7fϼGt\8e\13.V©\1e\14µÓ·G\0ÅÌE4\eÊ,àçôö¬Ï\8aX\12\rÅ\8d@­üùQóN¢b­¬\a»G6`åýf\82À³\97¡·\8f\ 1\ 6\1eZ,)äýé1\81\13ÈbÞÿvÿ°\11\81'÷´\8dzKèé<Aö]\85û\9bÉ\9eïNÚ»t¤¼\e¸\92\96\97þ\ 1(\946ñ²û\99v¡ßÚÈS\88ùðóéh\ 2\b\82°\8e\f\90\90\11ö\17õ\1fÌSlÐMè\16¿OÉ\ 5¤\9c\16ª$ñh\14¤v\ 5s¶yÎÙín7ýz¢Q6` \16\vÅ\eA<L\rí§(ä\85E£´\9a~N\8a\8a\1c\83#"JÁ\81\17õ\8b&3\ f-;\96½cV\9bK|\9cå\81é{&Toû¤\95*& ¡­·{¸\fE²d¾£Ñ.?{\92ÒÑ\16¿°\aFÙx¦·á\84\15,P^\10QZÁ!\ 4»\7fj\ 6¹\17+bx¸ó5Z³\98w\11ô\94Ù'\80/\83d\92\14»"ã\9a(0\9a\ f\fÇfÚg7¤ ½\eß3\r\1d¬\ e\92¢g\9cúÌ­JøgR\aÙR×\80ñ<©ÍË\1cê÷B\89î\91\8a<`\10¸J\8a»8a\8bÒAã}O"0\1cÊ·Í|ºýØa*\ 1x|WûyÛ3{ôµ¶±\10Ó\aµlÝQN}Au¬ú<á)\99\8eû²N1ñtf|^mÔ\10\8aõ¯\ 2\83\18\ 3bÅdqå\8a<r\9dܬ\8aë²\1e-5qáÚ®ÐòyÂ¥\ 2÷\b\1dÏAìHGØ¿\1eê\83í*.ßfì¿iî\12!%\1fÃô\80k\ 1Ó\19Ñ·äT2AåÞr\99\ÀÄÑv½I\11\ï;¢¨Ç*6x¦{CîTq¯¹ß\ 2\18B8y+ßÇT\1dI¸bx\9b÷2µ\1d'åà¦ñ\99
+Ì^\131gDß\9a¨þÉSN¹\9c|îö\eÓÂÚ|Î\85\b\8e\81Éý^×æÃîZ *´Ià2Kæ\89=-oË5 \17\83uBÃzërFUwþîñÚaqøÆ´-¾|ÖÇäW\8c\90tksÁÔ\19Ρ׭{z+\båG_Q@Wu_ìW¨\ fb¥#-Ï\18o¹Ù|\v\7f\8b\9càG@Ì|T\9b/\9e¦Á)!\84$|1¹!\12\12Ĭ\12Ø÷Ê\87Þ8<
+©¨û\bÕr.^øYOµÅÆò=$Ëû\b;$\8c\92YWîhÔà»\14>Ö%üÜya\82Øæ&0"@U\1c\96\7fx\90\v+m[×Ïa@6Í\83$\ 3\9e\9drPÆã\0¬¿6YÔ\99ñ\ 1ÛÌ~\9e|Ïn¤CêȽSO\97\ 6²eN`\84¥\ e®;\9bR¤¸qXVÂK\12ò%\98ÆÚÌ\16\81\15X\8e\7f\1c\8eûùëæ¹\13\ 3Ì®³BUÑGdòY¢y­{¿Eòù\16ó\8dW\8e\eø\eú\ 6\rO{cv\9c\14+2\9cÞ*å ½\8c4V²Z\84\8býl\97ö\97|üߧ\v*\93ô\1f\17F}\81äþ§\v¦8ôO\88ú&Uv\9aÚ\r"\ fçË×\83¬!¸\19°\8d­ø¤F&\14;ºË\98\8c\1c\8e©*\94ë!
+-\9d\14,\88\96Ì\1aI\rP\ 20ÂK@\10\88\80ñ\10JQ4ùü¡\1eê\12Ñøa\83µJâ|\1fÃOàS\80
+Ⲩ\1a~\15-ô×Ù\9a\ e"S+\1aê¤Ý!ÄæïèØc\99ÅXé\9bú·ß\ 6Ø¡4\8b\80l\ eM+\ 5´\94\165E±¼Æ
+åÐ\r\ 6Ö¥×½O¹     c\8a²æ|M\95¬vû´ÁÛ(¿\8b;75oXDë\1d¡Dø<wqä\87ç­\99ÓL\83¼æ\18övÛ¦µ®®=Þ\ f'\ f$äÖa Jäzuж\8c§ï%¹¬û~¼l36ë ä+ì\y®Ï\17d\8b\98t\bak3b'áÝ\87\9aí\98Û\8b\9eà\eùø$å²\98Ì\81ñ;Mó\ et\e\fIª»Wéç\8bëvÇ\95¥SÙÿ\12ßÖÆÚtñãøý\18§Dò~\1f\87\17î·&¥ÎT5O\1e\84t'V8¨4G[S\9c;¥¨e¶¯\85\17gQ\v\86\85\9f9=å9Ê%»\b\86J\94û\99\84yR\8fÇG\11íìXÉGðôêP;&ìC¯\7f\15³\89¸\ fÐ\9aúTÑ\ 5<$\90¨\8c\95¯î\15[r;\ 6\f\ 3=¤*z1\f±>Þ\92$_¤¡\88³¦L\9a\81\97\f±eä\9d\80²¸/ß¿\o¸\933øgh$y!Shí\87«\93n\1eçñÇ¡å\93z\97\1eoÄ1[ßôµ°\ 6~yÒ\89Ä
+Tà\82ïØ$T¸êãDT<&}9\ e\e\ 1\17&ÉAcú\eò¹ ïh\8f ÐwÍ;C\7f\9d¤9\ 6y7*&\a\9fÇpD\7f\ e\95b`X²¤|{\85¤ÔWBÌ;gvï'»þÞ URÌ\95\82;d\1f\88Õ\85\82>¬M©#.\83WèÔ²ÌDðF\9a·w+y\96å>¦Q\1aÊ:-\92\0³v\bm\82D×±#¨\1c©\97ùó;ßè°s\ 2Y\12¦Ö§¹\9c{K-\f\9b\980\1e$!?\8d\92\17A¦`ªþ¾ª;\89>iö¨AY¸gl\96·¹$\85¹z?èà]=Z­\a:}T\9fm¤ö\89Hy\15\1aÙ\99Xj~\14_\12ÑY\r^jòây\9b\8dÞ\ 1ú\19Ø`&¥.Û\90e'bE\9cMyh\9b\8f\aõ¸\13/ù°õóJ'u¸\84[4\12Úç\83ù2\ 1÷n¼¤\93×÷òK?\1drßPÅ\9eS\18±uÆÆó\12¯x\17kaR\19*\19Àsp
+Ñ&Èî8*èFÅÍÙ_¥ZÒu\0å¡pÀ\1f\ 4m
+_\ 2Æ\f»9Û\ 2à}!µB3\16ÈØÇx    ö\98ƤÅùQ\9fi)¢7Þt\17\90\87\ fB®øÓE\88ôÂm\ eß.¶³\7fvý¦o\ fÌuµs®N¾\rz\fX~\a\95+â7 ^#\9e\88\83\97;íà1Ö\14\1c\ 2ë¿^\9bfCð\89\10ý{HÚ´¾Ë$\85¿·EH£~\17È\8cí\11ý,\8dÔ0\8c;»ÒÌ8LB1Úhz~ß\8fðd\9d¤bv_ß\81H\93eV\9f\9c\17Ws\12ð+\ 6µQÈ\ 5\ 5ã\14º\8aR;\8d`N\16ª\8adeà{>·þ\97_mø*ÌÜù\9fO\18û3­\90·K\17®\84Ý\17O\ f\82&Ë%\96Ë-_¿Ãk\8d£Ú\17Hÿ\9e\ fçâB$|éÌ*÷\89)\89\1dÎöM\80\96½¼a\1d\ 4Ø\9c©hcäú\9e\16\95¬y\97ê:è`TxeõÛWñHLuO\91{TÃj\9b!\92\98\8f£èö\15ÙL}TÀ\80¢ ­ÄþV\93¡\84\8d\85:\9cK5\9e\15\16ÐM\17*@vê5æÕGÏçäº\97§âurò½\12áô]\8cº\13Hm)\99:K\ 6±\80Û[c8\15 4Q-S¹\eë\\99\9e\9dLF÷\eê×e^¨r\ 6\94YX\83P\88\87­«ì\ f³%ÕJ7\ 5{X©£\1cöù\1aOWÒæ\90wþµ\1fÉ\93Rd`h        3ç\18\8fô+¹V\97©¦:V¶\b«Qn\91FQí8\ fö}\94\ 2Þ*ê¼|Áh¥Ò\84¦\92³b\8d\aüðÖûª=Z\92g\8cð\8c²¢;Æö¡Ò\9c{5´<)Ã?
+Êsï\99\93\90²x       \177Uö¤(ûK+\17¾\86\1cì§ÂÌ-ÐfÔ§U'®;¦\e\1e\9e\97I<­\80²\1aV\8a\86\1dm\83"V\18oS[\v\98\97\ 3\8c`
\8e6_S¤¢ùV\81\1c\83t\17Ù¢]¿\9fý\94LØ¿ßuÕ.5?Øyµ¬\13l\17\99óÎðóð\vlMì\13 \8bm\90\93Ô.ºó!\8e÷Ù*ûüòR\1f\81´\9a6~çüÜ?òíÒ\11B¤<\a\13¢®^¾°\vGЧ¢ð®´êá"õè$^\ f¨\89\15°\8d\9bÍ\97\81#\ 1ÉÅÁ\84Ó2Èß\93ïÔ]\ 4kþäÂ.¤\14\9eÒ®þ¬9ÞgÏ\b\e\85ûæ\ 3§¤9b\1e\10\ ek\1eQ´¤¿\9f'áãázÕ|Ù`ý£\1eF$º¨\96i9Jk\10|Ê       ¼üø>Ùõo°ÃÄjl\18³m\86\ eRS\vï¢\9eÍ×jålô:TV0Y p\14Áv\12\8c\83t¸Z)\9d·\ 3®9ËÜ\fÖI¬U IÚ\ fá³\98\82ߤ\15Ó\8e¾\976`ùî|\8d&é»\12Y2å[ä²}>9¯D\13+X±1,}ùüå®_se\92×Gº3Ñý¡\ 2íÔx¹\92\ 2:ôRÈ{\190a\ fIHÑÚ\86@:¦Æ\8b\94e\99\88½ÂD\89á-röÍ;N\80\12\ e¯O\ e\1d\12éÆÊíã\9bï\93S(\9c¡z\8d\91»®£\81ý\89ú\16xKÒ\1d\80\91\80ê_\87^ßå\\7f×\10=lvÌZA\15\b#1Wy\19á'\e§±©m2­g]\\985\¹Ô=~MM{\97´¬|¢0\v®1»'\86  gÃ3êö3{¶J-E_\1ai#Í\e\81\9b\v@\8e\16\7f\ 2¡)Û¡\83Ð\ etLÆØÄîg\1dn.xáë\85ã\11(nhÎã©\8fpùø¨È¤uûâ)K?ñh\90fH\19P*s\7f Ê×1»õÖ\ 3a§)\16?Q~­9'îSÌ.¼¾Y»£ìá7°§!ʱ\9f\1avØ°ÊMjâ\92w¶à&\f\9daßo]åÑ\1a\88µÝ,\80\8a
\béi\fm\15\e}s\ 3Z\bé\82þ²õ¶OLúNÀµ}Ù}¿G\97Ë\8d\vÃÌ\83²ÿcÐKÑ£i\1d-ÅÊ\92ý:neA½¬É*\ 3n\84\88`ì%õ\89\ 5\87Ô,Ì\93\9e\1düÀ´d\99\12\ 1Þ\8f\95Ú\eê¦ÝG\92Uýëþ\0¼ÄÔ²LHxU±©,Ý\a\17Ý\ 1\12¬M\1fó÷Ýòéd§ý\9b\18\a?4\96÷#ÛeVfWÌeEÎ\89ѱe±T\8c\1e\ 6ÅÄ-\11_\10>\ 40|Éž]ã#\95ûbT\ 5k|\9cØÖ\9fo£®ì\el6êX@¼\87ìpwÁ[Û°~­k¦q#ÁÕ¹µðEòÓ¶ïç7°\80î`u{bÕy\86\bÂ<\ 1»Â÷X®ã~¶y\aÜÅk~¦æ¦F-%@$tX\9f(ð <2\f)u\91ï\94Ñp¾Ó\95Df_\Ð\8e\10\ 6Ù;\7f8\f¥ì!¦Ê\ 4\96Ö9\1aLÛ#â\9bî\aH;'ô:P
+sàR\ 1»p\16þ>Ú_hV¨\8fI\1dÆmþ\1a\16§\aÙLÄãWlÔ\1a¬FsÉá\9bs\84\1cx\99\19Áóµ\17\b\9a3c4ª5\9eæx¡:\19÷J\8bì)\ 4\99u=\17Wt^ø\r\98ån8\16S]å(9ô\1a%±Æ®VH@èàU.\86ò\e\8d<:"\82ø=ô\91\84µ§;!ç¯l\11)í[\a¾\9eèqW  x\11ïÛÅÉLìï÷Çî\9bô\ e¾·\ eÅ\1ai!çíܧNܾï\94ß\ã;äÚùæ\1c,Ê8£þòÈÆ°G\9as¾:c£"z9Hò#ª!\8d\90\92\14¢\a\14cñù\\8a£éÊ$u@ë\8c1\9b\85\91P5¡{ÙPHFåsé64\9f\825Î^\8a\14¼äÁ]Qö³(]\86\99\7fó·î\11¥\81\89÷\88\1e\ eü\92Ð\10\165\12\90\8e\8aþò=Ë\ 3\f\b\12L?¯\80E"q.ß±ÚY®;\7f\84\11-/$ºüâ8Âü\89$\98ß/?-Í-\ 5\19ÎæÃì[ÝøI»\16WÈäFÅW,\8eÕ-\15\86}\14*HîiØ\9aåM®@½Iïý\92=-6³SaJ\ 2\96R°¬Íí\a\9fò?ÿâ®M\\91,\ 6ÆgåµJ\ fºo\88)+ÐË-õ\82Ã\10\87în\f«ädÝv\ 5\19·\rò-QZ®qdNød?¶\11s\92£áùno\9d\a_Ûý$ga»·ù|T\13Ûø\83\84\90¯\f\18_\90ü]»×úõ7    \0*\8fó\87âàuêw\92§ã\0ÊØÃ6dÉ\0\95Ê:©u7a\ 2\80\ 4ßfôö\98V;fݳ\13Ò\ e'út\83\ 6\8fÍ*[ΣÑZúpûy\1a!´±\10Ô\96v\r\17,¯'åæ'}s
+{Lº2?\18U«³«n>Vú\8d¸\85ú\ 13&\8dó$\ 3¦Õ_á\86ÏlH\96Q%9\84Wm\91\9f-\ 5   ¯ Rº°\8cw\9a½\8b¦#¡\94ð\90\1fõ\ f\1ag\9c\0\98VÚ¹ß\10@ã"ûc¬\v\11È\8e\94§\aÕû?\19|\96\94;Ëv{\96aEE\11X|6\11Å'øz\ fëì\97¬)\19XæVk0¨¡\17\18'\9e4D      Æ\9a\8fë.8 t\7fFî÷©yS\84då.ÆÍÖ]\1d
+\82AêK\85\1fH!Z\8b\ 3¤ß\eß÷å/ÀÑÜ\ fæàüÄÌ°\15\ 3\14ÅÔ*>pk:Rö[Ö\95fÖ©\1d\a\17mH\ e½=þP¨Î,\12\11À\8c´\89½3B\1d\99\17ÌÑä\87Od|0\97^ô"l?\9a\ 5Z\92\84m\80D\15çç°¨£x¤\97µGs£%*Ü!ó\ 5|[\9fî¦áì\88­\8a\87á²W\v]J\90\b\ 6á\1a{Ú·ÿâÂP²£\9f¡Cjðè]ROH\8d»ô\12\1d¢2Ò\7f²|GÒ}÷r!\1c¶UO,}¥¼Çù¡è"ÅAp'ÿG\b0Fß\94¡">òÊú\9c\ 5º\94~åD_\0cck|%S¦®29¢\#\93\9d4¦ÒA¡\fØ!\17â@_\87\17\bË\8cö\9e6\12Ì=¯sîüve±¸Â+º\98afé"\14 g\19#¡lÞO T\12K[ ZúÕ\1aaEܪ\8aØV\83Èb\ 2\97.``\8eÛ\ 2æ]\82ìuE§)#Êx\82Ä~\ 5Ä>Àèò\9dË)ü\98X\80:Üíï\17¤/\16;\1aU\18äûÜv\eB\89´Ä¢<\b\85_\91V­SËçô\87¬¿5§âjU|@ÞNÜ1_eÜ\89¾£\1d²HPÈ\11åßEú\9e¯ÓÛ\9bÕ¬¾µþ\90º\8fì¾dTWVSÈÝ\7f£^
+j\8d\81I\1eà`\19¸\17VXð(zýY\ 6\ 2Ùz\17\ 4\11Ì}ç}ß\80wX       W\93\ e/\1c|++.Û\1cÆ"\8d.IGy<ð>]ȳÊrÌ£¶Ü\fáJÝ\8f\afº[\16¯Ü®\b¿\16\83-\9cö\14|
+\8dY\86\8a\8cäk\9e\8cy{\ 5níx\7f\ f§Äñ?|¡ü\7f\82ÿ'\b,\1d\80æn\10gGs7{\94ÿ\ 5\9a\e\91rendstream
+endobj
+622 0 obj <<
+/Type /Font
+/Subtype /Type1
+/Encoding 8020 0 R
+/FirstChar 46
+/LastChar 118
+/Widths 8023 0 R
+/BaseFont /TNYZLP+NimbusRomNo9L-ReguItal
+/FontDescriptor 620 0 R
+>> endobj
+620 0 obj <<
+/Ascent 669
+/CapHeight 669
+/Descent -193
+/FontName /TNYZLP+NimbusRomNo9L-ReguItal
+/ItalicAngle -15.5
+/StemV 78
+/XHeight 441
+/FontBBox [-169 -270 1010 924]
+/Flags 4
+/CharSet (/period/zero/one/two/three/four/five/six/seven/eight/nine/A/C/I/L/M/P/a/b/c/d/e/h/i/l/n/o/p/r/s/t/u/v)
+/FontFile 621 0 R
+>> endobj
+8023 0 obj
+[250 0 500 500 500 500 500 500 500 500 500 500 0 0 0 0 0 0 0 611 0 667 0 0 0 0 0 333 0 0 556 833 0 0 611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 500 444 500 444 0 0 500 278 0 0 278 0 500 500 500 0 389 389 278 500 444 ]
+endobj
+531 0 obj <<
+/Length1 1630
+/Length2 17287
+/Length3 532
+/Length 18211     
+/Filter /FlateDecode
+>>
+stream
+xÚ¬¸eT\9cm³%\fÁÝ-XãîîîN\90àÚ@ãîî\ 4wwwwww     \12\bnÁÝùò¼ï\9c9³Î7ógæüèµî«êª]»j×]«»)H\94¿1\88\98Ú\19\ 3%íl\9d\19X\18\99y\ 1\8a \ec\17'U;\eE;\1ey\ 6U ¹\và¯\9d\ 3\9e\82\11\f²³\157r\ 6ò\ 24\81¦\0q  \80\95\15ÀÂÃÃ\ 3O\ 1\10³³÷p\ 4\99[8\ 3¨ÕU5ièèèÿÓòÏ\15\80±Ç\7fxþF:\81Ìm\ 1\94\7f\1f\\81Övö6@[ç¿\10ÿ×\81ß\80@\80³\ 5\10`\ 6²\ 6\ 2Ä\94\94µd\14¥\0ÔR\8aê\0) -ÐÑÈ\1a ìbl\r2\ 1È\83L\80¶N@\1a\80\99\9d#Àúß\a\80\89\9d­)è\9fÒ\9c\18ÿb\898\ 1\8c\0Nö@\13Ðß0 » Ðþ\1f\17\1eèh\ 3rrúû\f\09\ 1Ì\1d\8dl\9dÿöÀÙ\ e\0²5±v1ý\87À_»\99Ý¿\bÙ;Úý½aó×÷\17LÙÎÉÙÉÄ\11\fø\9bUY\òß<\9d-\8c\9cÿÉí\ 4úë\ 6Ø\99ý½ijgâòOIÿòý\85ùëu6\ 2Ù:\ 1\9c\81îÎÿä2\ 6\ 2LANöÖF\1e\7fsÿ\ 5³w\ 4ý\8b\86\8b\13ÈÖü?\19Ð\ 3\1c\81æF\8e¦Ö@'§¿0\7f±ÿéÎ\7fÖ        ø_ª7²··öøW´Ý¿nýO\ e g' µ\19#<\vëß\9c\7fs\9b\83\99þ\99\15\19[3;\0\vó¿í¦.öÿás\ 5:þ«AÔÿÌ\fÍ_\12F¦v¶Ö\1e\0\19<\93¢\9dóß\94\0êÿ;\95\19ÿûDþo\90ø¿Eàÿ\16yÿßÄý¯\1aý//ñÿëûü_¡%]¬­\15\8d\ eÀ¿w\fàï\92\ 5üÝ3\0yÀ?\8bÆÚÈñÿ\17cd\ 3²öø?Eý×Û\9aÀ\7fÓý?\80É8\eým\8b\88­ù_i\98\19\99ÿm\ 49I\82Ü\81¦Ê g\13\v\80\99\91õß\9eýË®nk
+t´\ 6Ù\ 2ÿjû¯¶\ 2\18X\98\99ÿ\8b\ 2dbeû\8f\b\1cÿv\ 1mMÿk\ 5\7fåú\17\7f&      \11M-     iºÿÍ\82ý×Eå¿\83à¬æaÿ\97Ûÿ¨FÁÎô\7f\1eþ\81\11\15µs\ax1°pr\ 3\18X¹Yþ¾\7f\7f ñ°²ûüoRþ\v\88å?Ï
+FÎ\8e w\80Îߺ\99YþUýÿøüçIï¿ÀHØ\9aØ\99þ3:ß\9c\8dlMÿNÛÿ4üã6qqtü+ò¿\16Àߪÿãü¯¹\a\ 2Ý\81&ðk+v&|Á\96i\99éÎu8¹#Sâ:\ 3},\10#!ö¥\8djE\ 5þ5v½~iáÛ<\95\86oµ!\8cM3¼\1fí\1e˧öïû²´\ac}ØÖT½)À\8b|\ 2\1f2\9aþ\ 2´MÊN.º\83@&ýR¤ô?\9aQ^\97Kò¿!µ9\995\ ev¦TTõKÞ         g:Ù\1ca/\1fiüÉ\\vü1É\1fì\91}MR\eb±ºP\9bÀÐë
+OÿP&\1e?>P\r\8d\8f\8e\f÷^CõïãÓåÄÂQð¹B"QFú;äà\vi«WzÅ`Ñ
+\1fÄ\89$ÈÜì\ f\1ai=\1dÈ}#·Ø\ 3\ 1\vC%Ý¿Öµ>\14\1e«¼£N\14eüî?\90dZ83Rþe\8b§Ê¬ü\80\19$]lT\1dÍHErùTl?É&   ï¬\93`\1d\9e\bÙ\97úmàglÝDò/\9b\83¶ar\17ú C"ß\§ßfÐÎWÚ«¼Ø6å=\117L§Ýr\94À\14\14»æ.Ö\84\18\ 1ô\83\95¬\v\ 46´|§\1f\9e»&¨ ìÕ\13\ 3\8a\ 6\1d¹\91Ú:>\8fÊv½u\95H\91¢¤ïh\84´\98l}bƾÏ\92H¬J\1f¤\89\ 6J6e\91\91ñ5É\8d\8a°Â?ØÏbª\84\80-5\82\82\14䡾'\vq\16ODb\8ewR\b\17M+=\17
\1a=S\88­~Áqh^¤\r¯.ãÜçðú\80èð.î\86ÊȬ×ëeæà\96;\81[Ni¢      ø\82e\16¯1¡¾\9d¥\rð¹V{ßK\12ߤÒç\10T\86sªÕã:¸ÇK\9bvüø£È\97£n\8b\18ÔÆ_\19£Þ[ÇR\15
+cgîäDZ\ 2\94g\9e\86 #\95\82\9ao\14?9OrÀ»'·@\9a¹  \17g¤ræ\9a\17¿LKÕÔ;Íôîh\91å\8fÚ3o\8fVìbߢ0\9e\7fæ\7fzf\e<V\89ñ\98{\\13d\82\15@
+H·à\87×±@Ö\8b\1aÀ\99ë¨g\15\83\11\1d#Ñ9eõ½£\92õ*\11\11E0jM\95\ e\18¢µm·,d\rä\8eR%¼\17\1f-¯Æ<Çfw¤ ¦|\93çÉR\vÕ¯\fE)Ø^\19\1d\92S\17¬Âr^Ö÷°wV\90Jø|ýuø*\ 6ìî¢\ 1v2欯mÿ¹j\ 1l\88\ 5¦Þ×\ 4­\8d¢\8a\99i\1e)P\1eóh\8eJD\ 4\89qAh»\80ûóH=\84\1f
\e/{\ 5gSûË÷ |\ f\16ÓFFÿ5Þ!"ÛéD÷ZCf\ f~¯¹U|âØ\ 1Ë]8:þÇ¥B\16
+)¯\98¦û³7\ emÐPCiÞóK\7f¸a­UèåÒn?\85\85u\86>\9abò(ñX\86ÞÉpDïA\15¤ÿì#6»*pAL\7fýÐûM\1a\§/ÆSz%¨j#~Û@2\v1\ 2ï'¯\1eLþT½Ó\1e²«\ 5ü$Ü\97"xA´x£´nÐu\81m8\e\8a2\88\ 1I\vç$Ç\13¼\91JD\90¼â$¦(xÿ{êa\8d\ 2(µå¸ó\81         ú\ 4{\19\142I·\90z\õf;Ë@\1aP\1d\f²ò¶n\ eî\ e\99\ 2t`V/v      RlÄ£ËÃÏ\92\9e\7f½\92\1fBÚcI'\8asY m¾@\ eÎd\aS>\1cÂ\191-\r\9cS\97Ù`¼w¼N¬ï§\93ä\18hüîl/¹õ]?qú<\8eè¸Ùì\ 4Ô7wæ?ï\98\84PxöB@;g\14\1aç\19ß8J`_-e\17mk;2/e]\9e½Õ   \9bÚîCR]3\E\(\7f\19$\81ÂÿlEv¹\81 ¹û-aÚNlyLôÉË&VL(éK}\10ÏÖ±î!\1ejöp]1ú\9cîóÏes   Á\97\91\12\agv\7f³\1d§á¹:Y\9f<     ¨\9a\1fæÓþúÃ*¤\9dߧÍ7·I< ÎÑ~¨½]v£g\9b ¦ë|ÿm\93\0Ï<\ 6å\8c\97ô\15MQ8\94ÏÉ\v\8cÖºü{Û\0\8fgJS\82\8fç\15\1aÓuþï_5Çõ­Út½\wd]á\87Ýsv´\ f\18àï\86ñï7#ÆF\14,\ 5\9c\17Â4ÉqÝ[P¤1ýµÍ?w\15ép_\90´½*Ú\18XSÇg~\ 1\9e\r Ê?*V=\ 2\1dSp\82nT÷³Ô\9dÝí$¶Â_oVÚ\95Ð÷Oy37¨uÎ\83è\ 4¬g|J(®\ 5²\94%-\xó<N\1a\94\10ùt\13\11Éu½åp\17áí%\v<ó`\96\95hñ)R^_\88tÍ,L\89ä±D\89m\ 2HÕ×¢\19#.øZ+1\97\80\93ÈJÆ$âûX§jÛ?î#rW÷ÀU7µ\9f\ 1(?ÆÚ^xD¸¿\1f\fÂÿ>=Íiö\92¢æÑPü¤ý¢\96\18é¸5\9cMã= Ð\963
+b\9es(ñ8\9fñd~OcÀe\fm\9c4\19·\10\83MvÆO\9bbQæÄ\8f\0?²òßkË\0\9f­\83øéÈV\ 4SÓÐį*iZ\ 3ß\96}\15ª\8fYÀ%7>\fçSV~:La§ö\8d8\19ëÅ3é{ óOB\8dV¶¼P\1ey\18»À3
+B-}Å\93ç\1eÊòP\80\95ËÃ\ e\16¡§M\0\81Ùà\ 5dTÃ\ 6ÔÜ\ 1¼ª.ËÌÂ\13w®2d¨þqÌÒV\9a\9d!MQ_W¹fü\ 2"+Kb+\92$#\90êp\80Dñ0\1eÇϾ\ f\99\7f\82\88ó\0\8dÐùlGþ0Âö§qìì\90È 
+j,¸\96²>¸,Ç\0ñ¤\9a{þÌ>#¦$ø¾/¿ø%]\96þ\f\1e\16\ 6'í\üÃgE}Èæ£Ö/Jê\1fT·t\9dM°>tIÑçÖâ\81±½½iÁB+_«ÄU/\88Ò³\ 6ã¾úµ[»¸F\14'ê\\94#N¢\0#\92¿dÃF¦!â\7f¸?Ïy{°ëV\80î6X\14\ 6\82\15Ù\0\17v1\11Úö÷»ü\18ïÏ¥\8e²\ 6\fÞ\96ñÐsû\8c¸b8¿Å©\8bö\96
+\ars*ýÂÇíâd\8dú¥z~¸Í\8e\ 4C\94\9c|\86\99\931ãÄc\ 2\85\ 41\81N\930'je ëN»sei#¾Û¬²Éx\8cµ·¹iþå\1dÀ¼ßþ¼:+pà«Ï\8bh\81ï¾`\8d\82R\bZôçóÜ\80sÅȲL\1aÁjq\81\10Â\ 1\16WB\84"cÿ"\99¹oBÍ\99_X»3©oØ~æ\95q\9ek4\10Á²ªÐI\19lß­föy<Å^\99\ e\96\8b÷\8c\19qÈ«ôPþ\ecmx.f\84wöùè\8be\86D(Ø\9a\8cÓñÉÀyzæÓz\18\9bjp°±×\88ô¬\8bñòJV'9¾Á\81hÍOçp·DãùÐ+ÐpÇÃõRxE\7f®å{\87\ fS&¢Ç¾Éúø7"lÙS\9eŬÈ#\11NE\16}O"yµ1OñÊñ\9b\92\a\e×¹½  y\1c\9a\95¯¯\1eWµÀGJ\81¤\r\9f¸æ«?P+\8e\18ñ\81­Üa5\ f\a\8e\r¸G\9c·çÞ»x±E\ 1¹\97®¤hÆØ\82È\86Ì\93\95Lzg!Â\8f\11J\90o'÷!î¹Â\84iM$2_Á¬T«-9¨!Í\82Æ»°¿ÿÚÝûz\8cg\17kÆÙF\1fÈ\7füA»µ:v9~¶ÃãÒ*$âSÝL\8aIHâ\80\90MÜÂ!:V%¢i\8a¤z\Dû6º\83Èqk\11\89Ñ\8d\9eQ\92>'\1e\82\10\17\ 5.#k+ÐͤO.É%Z\17\99ÇRo§¼\9e\1fº\89\b\97\13`ôã&?\11ã$l\17nçgÂj±\ 4\ eZ×5Ä£aã¯zôËbÏ\91£\14ù\95Æ0Ñ[\8a:ÿê«ñ3.«Hëßm\96f\89Sô-HÂ\90ë\a/u51È\90»åðÌûá\8f½ãÌQ\89­Ò\8d\85Êì\82«Sg\ 6²Ê\80¸\94;\9b¬¥ ¯W\ed\8db\86\ 4®\12\bÊÛ÷½¼Ç\ 6°Q1¥nxØp©\19/x¬9kBàu\8cU~Agñ@uj_²({øìj\1c\ 60µ°Uâißs\9b¼Ú\90
+¦?\9biÜ[¿T;öÁ
+\8e3&«\13EHKT¢Í\82\86~Þý\80OZhá\1f\ eN"\7f\87·B\89Êó\16\fþ³ÐÔò¡\98Øv7ÓÁh\86A\90\1e_\ 2\ e\v·\1e\98p\83\8byêó9\8ab\98É}hYg\1fÅÕ\1c\0Yçëþª Ý;f\9e j\ 3t¡->KVh\ 2Q!èBÎzÓô¨\94\14\15UÊ5Ì\f®W\98G\92\95þ\99xöO\rÅAýÉÖ¬\ 2\13÷\aýó#Û\94Üô\8eeZ^»È¤Ãa\ 6UNõ»óób³rBøÙ\86\ 6\9b\røwI2$ëîiB\9f2®"ļ¢\84ÔÀ\a\a\8d+\83Ç\90\ fåcGEÕì\1a\1eɼÁü__Ø\0yØv;2f>u\13\e\ 2íº»£
+ÌðoXÁò6\a \99[Be·¹\ 5Þ\ód§:Æ-U²Æh:'\ 5\7fºF «\1e!\1c9LA\18Ê2=ùü\ 5ý§    í\19\99ºÆû­\8d\938÷Ù\0\1eKÞ[J\80\0È\13²¡ñ¶.ÀgÝ*ø6*\e\181õgèã+-B\ 4ÙC\84\96&·kè\8b\14\1d¢dvtê@\1cfnÇ|1\85ôn¶Âunû/\84\16\84)G¿8¬<þä/;\81§uGss_»\88XP|h\19-n¯¿ûIY®\1c\85 !Of\16v¾gè㧼L%Éý\8e
\83\fÀTĤ>Pf¾ß \88Íá\8f\8eÔ\1aw4vJ¿gv\96ÑS¹\Jµ\9cÚe\99üa.^     VGÝþq\95exæ[B¡rdc×0Ok\ 6y`GéjÙþC\9c\12_\18\ 1o¶,29ý\e\bø³þ\93ÿÄ%
+Q`\98NÀ/MT4x:\83\1ay\88\ 5Iu\95ǬåØ\97JÉÉSvÞ£f\9e_ý¾\81G\7f\98(ÂßxÅ\0D\90È5;\8c.<\19ÿZ\7fc>t\aCvf(\83ir7\94#¬¶åÎH\16ô³ÄºÌ\17;\19|F¯Ä_`5\84{u\93{\972b1­»Z\17S\87àåúðñÏ#<\92e\18-|f\9aó5«'\ 4ÛÜ\99v\90\ e\86*\8f×°\1c\1aßóïXÂË;ÖÊ[\13ù\1f\8aK¹êgÒ\0Íy¯/P\8e\8deèÅ\9c§U\9c5\81ïm\90Qoê2ÆËßz´_ \8f­Viï\ 4TúN\ 5\rã&1u\92$ð·[b'Ä\82\11Ð9Ç/KqÄäi\93\97\rè\9b$fmr¯\14\aX\18HRL«O\99 ^H\8fq(Ãõ*`\9câÅ\85×ùaÂ^u\83\aÄÌ7­Y4\9a\9a\1d\19\89\94t\8c\12\18\86ò,nur|ë}#´Ó\8c'\bÂ\8d°s,&\9c÷;É'LÆ\10µ'&;RçÁX\ 2\fµ  \8eïá¾ëÂO¬\1e8¥>·öÀfXg_,«ªyÄ~öî\8e}û4Ôgy\9d\9bóJ+\19µûs\19ª²Y\8e\17\80«1a\83\9e2ñÕëXi¯³³\9dE¿ägh
+ÛýIk\ 2Km\91º^3¢\8bE<±Uåí~Ú]º\151-îO\93ucÎÍ\9f\14\90¢\81zÞ½!èZuO\8eË<äöù\8e#M\91±SâçØN\1f«õ¦{Ü¥ýë\83\1f\ f\93ú\86|x`ϯ¡\ e\8a\0¹u\879Ìj=\85È\\9a±$\e\87¨\ eWL\9fÒëîD\83d3¹\90%I(\99üè»­\r\1cË\98õ|·{üEja9Шú>>,\82­\ eP%úí²WZýBýý\19~°zÙgì\92­\8b1Îv9Ì\9f,½ã\93\8e}"¬dÙ"\9a"\aÊýø)\ f\13\86Ñ°Í\97\94ý£,>\96Ñr\8fÔaKþd:¯Å\1f¤Ä\81/Çõx\98\84^"³ó\1c\1a\1a9á}*A%\8dÜ\9bÜ\95á\8b¹ú¶\14\84ñË\1c\86c¼l\90©|ö;EÓxáÜ/\83\91N:lƾ«w¼²\8d\9e-Û´¯\91\1d\9fÆY\1f\ 1si½\aPÒ       Ö\9fw}\88Dx>K6/Öuñâkª¸ ã¡$å\1ex3w@k£\19\ 6ç\97e
+\9e¢\81 T\9c<<¸+ôÊ\88ú2¢\b%äj   ûn\b¯è<¿[Ki\8f\95Gþ¥\86ÁÄÖJÐá[Ï8Öu,¸ýð\0檠ô*Þ²ßp\ 6G\ 3
+O98´\17aYïI\86¹]{\1e¥tÎp\10\8b6ò2\14&\1ey\11û´_\9dLy\8eZ +Îz1ª¤"Õù¾\9dFXül\11\aº"úÃOy:PÎT\7f J6\14\9f\15\16d\12îA\96\1aîazK\84¹½\ 2\vH\83\v5  
+\v)\937;°Ç½#\8eÿC$\8f¹ã\è'\97êHb'h\939ME\fÜ£Ù\87vìds\84\09óÂsySØ7\8b¼y\14ÚqÙ\88/\88(·Ô6\14;%\ 6ļ\ 3k\18\1a\rU\95$çåÀg²\95\ 4\ö¤I\98\12\8b`\8dïæág\81éF½úþ\80\8f\9a\ 2]d ®
+\1dÙ'k§NN8).c=\85á@4B]Tâ¶11ÜÎ=z\1eä\91\v\8fÝXF\96뺳Ø(¿\8bi\9fûûñj\0\ 1í½î^\95FB\97|V­eò}jõ\9b·
+ÂEK¶°\0¥\8föfO}Q$Vꥠ;\84åü.Òt£     y ýõØñP\83kLA0/\85Õ\91ÞDbÂÚá\92ÔXÄh/\9ex\ 6\9a¿\87\97\91\83ÐÏ\fçó¤lÎØ       ë9\10ôTÑòGà\8e\876L\85\11U\99ý'\1dJoÿM\93\13·rá
+Æ0§\91Õ×\8f\ 4©Äà\12pÃ%\8d϶½\94\17¢Q\9fÀ\14>\9aNäy<eçR\9a*BI\89\fÎÕ\a1\11~µ+nyòÎ.¿ ÂM\8d\8eó`D\19ÜÊëÌ%Å\b\bÿ\99¼ºíiOv\ 6\r\84§ÞSÛí\ 2aT\94hm#ßC\82ÁÞ\8aë&,Ö\8c\8foä½ií\80O©>JmGâÄ\ 3¡
+£ô¨\10\15'@¿bm\ 4 |˯\87Û\19i¦ÃcÚ\0Ï\18R¥{Öt5
+\12\ 1W\83o\81\95HiçÌ\12\9dI\96Ne\0EKjaâW\84\9bûé9\81Ì\13\84¾
+\17\91\12;¼æ¯J:\13\83\90 ¦BÀtî.ä,SzÝ\8e?\fì\9a\vÖ¤õ5ú@Y6\83x\80m\9c3\86  m\1dÉÎ\a­8ï°Míö\ 4¦lû6=\89»\83n°5ñ½{\\826\1e-ý:þû*±'ÓÐ6\1evR~ît\8c:4+O\ 1\15Ù:ü¯øÅ\8eðÄÀ'ýb¬\15àCÏ»\94ßàÂ\9c\8cgì5`×}vZ\12>_Ó­·'@K½¦}Ð\13:ÉuÜNõºC«\ 2\8b÷²´"¯y\83+\ràÿó\ 5\11ìu\86´rßâBüá\95\97Q-R  \19¾ùO@wCÖÕ¼e\12\ 6̱\95©\ 2F\92h>ß³¨GÑ\ 5q\84K\14ÛÊÙ$T\83̸ޡæì1»÷Th\ 6¼A.\ 1ÃÞ±¾öÞTX~µ\8a\83ý8Ô;3ÎwN8ÃÛOLFÔ\8aíH\86\92\9dûç|\ 4>:b\8eçÄ-Ìàî>MúS9w\0}Èd\87\89\97r\17ùÄÆ7N>Où\8eWîí=\95\97\19\e\8a~K¼Ã0\15øû\8bÓ8ü0\17
+Sê/\11s`ÞÎøË#    \81\12¹.T\17t'õ\12¯\1a\9b\857\9d16mfÊsûMãÌöR®Ýc÷a\1c_QX¥ 0\86ã³»Ï\1c!O¬ï¥î\8dÅ\7fYpÃvDB¸+Þ\9bÉø<ËT=\ 5\133Óí\19/E\8f¯p\83\84 pK¾BßX§\9fß,vES\90 \1d«\ 4ÒÙ;?Ø`\82MF:ÌÚ\98;\1e\1c\ 3I8Eô¢9Fæò\eY\95\99¤7\984Rvå8d×>pòÜ\8fÏ
+VYáT¸®\8d\b6ü   w\86àë´à\84^I¾&ïßÅ}²QL\98\7f\8a£\fÚ"û\13\7f\1cúé^>\f¦¥\rÊ¥¸?Ó²Í\1e\82\11áC\1e=ÝÑ\99ì\19÷\8f\13¥\1a¨R\84¥¿\98´\f#$ ø\fázÃ!MÛËÍÖ \8a\v§¡Ç¯g=\ f+¦R@<\8bõ庿?\83\9a_\11x\114¡`\88Ø\8cêgô8\9bh¶A¤ %\10î(*f\95óèIÿ3\85\ fö§´8Ë\ e]ó`»èU;\1a¶Ý\ 4mL⬴éõ}\ 3S\1dì§gjY/\ f%48J\92l\87\1aW\93ÝeÓP\e\0¼¬éè7øÄ~ö\89ø\80Á\89$+ïùÁ\15åK¥9I\88 ¼\bÎüßo\8b&{ÀT\bCÿñq¾)tdÆ@§\vöÁ¢KØÈ}˵\17$Aò\9b÷YM<þ\89
+΢Vg\8a\8f\84l4<_&Ñ{NA\9b\eº\82\9cP?6mQb\0\ e<ïuØ(\1dZæÁu\ e\9b\r\81\82®6à·'3²O\87\89}S\80h«T\13\97\0Ùy\17ß]òï\80Üb\<y\ej\82ö\87Ç8(\82§\80
+\92cU¾\81°\8ew$ùæf\99\96\8cq¥ýÔ´.\99µµ¥Ì¬vѬüTV|5\r
+8.\9aû\1ew\99A\v¡Ã´¡ñL´50p5]%\ e>\1e7ßÒøb\88é]³îô\19B\1aWH\88¸\91\1e\rÙ¶'3ξ\9a\81x¬ú|°í$üÐrÔ³¬T\99KjÓõÚ\81¦pkÛ\9cl\12ÅG\19À\90\92G$\15ÞZÇ\83¿\13W[çÞ-\18µ³
+ÁZÁtcRr>»Ks\920qäiÆ\14ýÍ\87\1fvÕÀ\9dÐ3·ì\95\ 6}\b\81ÿDkû\1dý(t»\1a\×ýó\17\v\98H`å[\98\ 3J^u\88\83½÷CP\9b\88\9bö$\8a£>¥\16ßy=VuÜÇ£\8d\¬"\9c-\80\92\ 3\82¡ô\ 2\18\91+WÓ]ª\8a³Ý\ 6Õr\9e2`è\89ò5@!\9e\85\18¢I+\93ÂdynÏbed
+÷MÑ\eæ¤\82X!\v8X\·FC&      ¬_¨\8eV1\1c=yÐX\13lÀÜy\81¼Â7ëÜ\80¯\86\eâñðIØA\a\ fm\8b\1e·>·Â¹#ý¾b@\\99Û¹«|_2¸\96ôgôÊã\18®#¦\r\94p\rÔg=Cá\8dËÊ\89éË'\11à\84ûIj§\11YVxè«$féónÒ*DÎÍ\8cËá\14\14\13T\7fÁ\9f¦\ 6ð
+Rò\14\12\16Ò*\97+oøÖ\9e_[ÖF²¹{5l]è\1f»5¼\8dNl]§Ã\84qÏävAy{\92!(ÊÐ\8bºÚ½$Ë 7\18|5)\91\14?jÁ}Ïù\9eX!\1d``¸%õIZ"éOô$Íã×ì=øm\8d{{\rKi¡3\1aU\94¬',\9dØE\87¡Cî'ð±èÙ¬{£OÙ§´Núá*/0Ñå{\ eÌo¹KÆ*®\93['÷8"4T?ìjûz¯\8c\ fÆP\14\ 5C\124\ f\98\8fb\19\ 5\ 3g¡÷²²ÁAIf:\8f\93½äû\89¶&6¿bÃ9Úu<CÄØk­X\1eN$a\93\8cÒïd\18\10@\94\86½S\9f#óG\ 5Ûàrâ\84Pü3¬é|¥Û\8f\85Ü`\ 6\8cPl\81\1er\ 5¾Y\87\11³ºâfò#î¶ÜètI¶½#\vZMÄÛ½\ 1\9bK\12$\84û)<ðgsÖr\7f¸\89\83o\858'°#ë\12)\r\15\17&\8d\8a\9a\1c×i3Mñ\1d˪HÔÔ±ëFË=Ú\ 1ð\8e¬ØÉÀâM¤\13¯¥æEÂ\85J^¬\bòTyë\127S¡\9eáÏß!B×\ fuûúr{»Þê\ 2.,oX\aðàÁo1ȼø_Ñ\12üïÑ\ 6{fpI¹ð\8d®Ðgq¯3-¿\12à¯
+Ôó\bAD%ú        îß\83Y\rµÌ]Ùw¹L7á¿äC0\9cÇ\15ç\14±\ 1î¨Á\1c\8eT\1c\96²\1c\82\99\8aïë\b¾\11ѺÚèíÿ®¥hÓ\ 5}¨À\1a[o\8e/® \12\83¼à¤\87~_ʽ@2¿ëjÓ\90ÓÂ\99\1a\0ñ\97áb¡z1¢\\8eãÔa\9c    \88Ó\b9׿§üBN\ 5ù¯_¢o²\r\v\16\97@3tâU\18¸÷Ù¢\1d;ñÞáª@UïVAP J\97dú:ï"ÒV×Ëú\12\91\ eÍ\8bc6h©¾æ&è`\9bÆy\179å¿3\82O¢¥¦#ÿ\ e\16\9f
+º®õ¢JTÅ\98\ 5A\84~ºñ\8a\ eÅÜUSË^9ö¤Ñÿé\8f\88¦=\r%\84O\1c\11ÉÐÒC#\83r\12µ4W{\7f\81_CÝl$ò\92\93;8%¡\97r¿ÒÄ¥\ 2Ã-S]\19\11h\97Nnä\1f\eVtØv±\92¡wåW\fµ7\1eÍû\1a¿ß        \81_mOà5?§¬O%du¡+Ê\93\e\ 6\14ù­ø¦ùâ©\1f\e"\ 2[\9dÔ,K\98\8aÄ.\ e\85ß»H\ f\95\83º4]ó*²Ø\8c(\ 2±Ìt9¥[Ì\82ÿ\r\ el{\eí¸ú\83ð:k\92A\ 5-j6s âÝ^3Y:éÅr\19®\9aûþ\8bá\8e\a#Ëþ.Ò\e\ f¡©g\1fAÆÙ\ 2(V\87:\14\94 \0-oÒÓ\rlÚ2ýÎi9¥ª;\92ñK\9e's \9blÒÎ\13\82Q¿Ãî°¦ËiM\ f×·\98\9eá#ùñÔRF°Ú>\91tBä.¤9çèú\99\93¿Üì\92\13Fýw¯OFRxédÒÈu&yâÁ tÜJ\10é=?t8¼C*\ 3U\ 3-\90vtb»ÌK\eé\a\17aGÁ\87\16ã\xm¼Ç\18K2\18¹Ð¤¦{\14"#½ÜìÔÕJ©1\ 4­ÐAU\13ñ\96ëp\85Fâï\80\19Ü\93!½·¾\9c\13\93ùÅø\ 6(N¹äV\8f  ;\9e\84l_Í6øµ+¸þæA\99ÙêØpm\ 1ùBDg#Á/Pµd\15¤è?ëGõÔ ¸\83/ÿ[OB}\ eG\10\9dæÂ|;xñÂ'£¼%¨Åx
+òºï¶ÆòË£GMXñP­û¡½\ e9\11>Ò&$´\82Z­àI04ßFºß\bÁ\f§ÈÛCÉ\13ùîjÀ\ 6H\90\e2Y%\8d\16¼þ¦Ö\r3\81JÜk\9a\11«h\95½6Ø9ôQ60\7fp\ 3²x°o*Ĺ©g\15Fä÷E_Âà\1f&¾¼\7f \1a\93\9c)"ÞèÝ,düEM^\87¼n*ÎPhl,¥_¶2\99\84îæ\82Í\0É\8d`i\19ª¼µÑQ}Nßãª,$´§ð<[PÀâ#KH\16×h«\1di|KÈÎݳ=u ªwöµx\82\14\8e\97\94ö\ eP^Õ7¶ÍãÛÜ)\1d-e£øVÜ\ 3¢'G\83­®¯Ê+@\15ÖÍÔÝ"·\81Çj4\819]pDX3\1f\1ao¿ý\ 6¹+ê\12l¤YGG`\9b\86qÙñ~\80'=³òØüÄL~R8d\89>=ÎdÎí\13°$~È\8dõJ>k~qÏ\94a3Î\80w\84D_UæÝa´ÁT\0kñÝ5½¤3"â9\12\7f¿¼\fô\14ÈO\1cö#ôôÏ\1c\85\a\1eØ­ÎÜ\9b&\ 5%:·P\7f6½Æ\ 4}1Ǧ\99·\ 1}éo¹ßF\1fMµú½v°Ë~/{rï¨bkòc\85\8a×cÂ\8aÒV*³ÁW¦ÅéÂ#^ëFØ\eÞ>\80&6\84yìí\1f\ e6\(±¾"Ó\@À\fÏ;mF\17B\9a\ 6Р;;¿º«Cÿ\98-gf¶\ebh\11[õ®Û%\12FºÁ:\ 5£Dæwvòò\82¼\9c\15\9aÜV\1dÖ(Ëùóe¼u\12\8fBüè\19|±Å£\85¬\15×Ô     g§èY&Üþo®Ç¶÷H÷\8cËCñg\9am(0_Î$\12µó½òÞï9ä4¹\8b\9cPçØ\8eãÅ'{ò#-\ e¾\91\1e²\r\eï¿y#L£âLyª5ï§\14\9cÕ2To­6_b¯ÌÕrù­Ë\8f÷ìð\82C1\87ë\83\9b\18\8b1Uï\85'\v"Ùq[\ e\85ò)¡{Ývlð!Â\82g3}\94ØÂ#7ð¤*å¾H5Í\89Ä1]æä\80[D>\96äÃÈlÒ\r\ 3ÏÚÕk|¥Ø]óþ\     ò\8eïÎ\85Iîü°Ç`%5è\93äx7ZѦTõéSï\ eýjMÆ\8edÑÀµ8h\14\14úq\81V£Ó¤§\v\9d4w­å:{[Ï\8b×/û Îhf\7fm\90Õ¯\9b\ 2Z\0ËÄðÝ\ 2\98\8e\15$\13»\11\8c\92`b\ 5l\14¬^'o\9dówCæafJ\8e\86Tµ°\0\91\92»NùÖô³êq\8c|\9a_.ç®\ fòL==ä~\8alÂTÛð\98\11,\98\8b\81STìK:\ 5\9f¿\ 4¬M3º(ª\8d\93]K\v9´H\9aÈÊëÜ5\fs|hÓ¤
+J\84ÙP\8dh×þÑà\1d\r\19\8a¥ÎêÅ\19ÖóÔ(\85\¯Í\92\91Ë\94ÚYÕN\9b\8e\0çm#\98\81jÄÝ?1«eX\9cë\8cµøÅõ{·\1cu,z,ö\15º\11Ì\84M¿Ç{\18Ô4E±`'Å\=\10lcèL·\ eC:å£kl`\8eÇ(á¤q\r;/ôñ­O¼    !\19\ 6MtxÍuÐj!~`Eòu&\9a\e\8a\83kõsñçÝm\81\a\8d|Æf\16+,\ 5¾5\8e«Ä\ 2\18ÂmÙT\99ë\92óïS,\8f\9fY\9eîµßí®Ò\ 57£µ¦E\bõ(Âî8.Häbئô:®f\98n\87\89\91á\99\1a8\ 4\98§¿h\90\8f¶c\97#\bÍó~ïd2¹è\1c£Ü\1dºÿÑ\9av:«FRóZ&\9f9\ 4'o\1f¿8cñÌ\19÷£\82\0\ 1ì\82¢9î\16ñ\92ïþ>î\13öÒw¾\80f!2\ 6Y¢q;4ÿK\9b\93_û{\ 5\98KÿëTwU\ 6b¥)\8cmûÉ:«\10\94×£Ó\99\98A l2?oýUãlrÁ\80¿\ó\85×ÕÆ\8c=\fY\93ZÙZ\10\1f\eÊ×
+ÐAnã\8b\19û\14H\92û>p\92ÈÚsB?Ä«£\7f1B¤\ el+'A"\89\97ì8\80\88¬\92\9a\97£\ 1Q/lGÇQθ\13\11÷ÚÎÀÒ¶\7f\90EÂ|,r\97\11\1e|A¹\ 5\10ú}¦ä<¯ï0·ÊÕn³moa<Éæ\vþø\9dP\ 4ý¥F}/4\ 2Ïò´òÀ\85ÙûJ\92\85\1dJ\97"\0Nw¿ï^>øô:\8a\8cþK¨Dqõð~Ë\88å\ efméüAhJ)8ÇTÁ\93\ 5ü\15÷w-d8ç\9b®ÙMê7eá±£t@o}xÉ8\1c\v\9f+eö+\11²ýà\9f8m\8dRI\94.'\86~m\b7û&²\8bg¢¨\1enDÆ1¥\96\1d?\91H'0\0
+bt¡ïû%°ËuÁmÃKB_6Ñ\vLV`ÜÍ:\8b]9Ð$X\11l\15\90\81ä½5\9fqm}]&ðëg´¹­CËðWÓ2¿UÚÑwwº\b*U£\16w¡²\8d¼E½J«Í¼{0HU¯ô-\e-ÈÜ\81\ f\95 í\13¸%\93\98\98z\ 2\11Lh\94j=ZiÁ\17÷G&Þ'^R6\8eÄ"\99\1dMðQ÷á9Hg%H¡J\92\1dp/Ã\ry[Þ©\ 6±\8fDç»FįnàÉÒúV\84\82ÒÌ\95\93þ«/ÖCU!\97\ 3\v\ 5\13Ôù|\ 1ää\1dâ_Þ1\11z¡\a\85\8eßË\ eí\ 5t3\18\8bë÷C\91³·ÖU© \87Ë©Þ\94àðµÀÚ»`ëhW\84õÜ¢pd\ 6q4z3¯\18t=\1c\v©%¡ºçîçö¾(    KX\ 2×\96¥\18\8b*¿\-Ê#Ð\8dT%´\82Hxg·ìO\81)\81w*a§Õ\9a\90\ 2Z±à\82ù"D·\8e&pói­s\9abónhm;Üûô9\99\fì6e\87§÷\81\9b\9cý\vñfÓÃ%ß/\186\7fC\13\99ÔwPa£+Ùðö\aw·Ååm*x\e×ë\rÁç\ 6 ¶G³¶Bç»U±\18
\14Øå\18\90 = É\93ö(W\88\ f\81N·ö>lUr\ 5\1e\8b\18&ÂÊÁ\90\96×?÷¾%äì±\8b0\87å\ 2Xe\B6ÁK*\91\90j/éèR\91\v\83'm\vô w=W\16áàÀ\1draH¾ÿ\16®ðv\9f§®å®æ\8cYzä´\ fô?ê\82È{y1-\1dþXÅë©/Ç\11\9b È\ 1¢_½\ 4biï¨\1fî\7foJ×sEt«7Ç\1c$9Ü¥h¦@\88\1eq©±!k\1d£Õ#Ø\eþukù\v\8få\1ds¿0\91\ejýµûû\80ã
+ 8á¨Hº½\8aªÐ+ ´¯Ô(\88j\16B6+¥\99Þ\e\83O%\ 3÷Áç±¼\rð\80b_i¦\95·=D*(\9f±wÚ&+ò¿\f7ù,\17K\8a}ñÅÖòRÿ\f\rRÒMÝ\8e NI\86\86g\89°\87\9fÇ\87.obcë]\88\87\83Å\84X³^À\eõÇ%ögçÑÆ/ÎdÕW\15ÆHH\vs$yú\91<بR«äg\894C\aã|\86\11\8fîè\1eÏ®1|;c\9duÃß­ìJµnj\9d\9a\99Ü\17í\12ûpX/Ô\a'\82(\\8b5\90>\ fÝäJ£ù\ÑhP<*[ÃË\ f\807\9b\97oX×,ÇÏF0ö[\0Ò/
+²·\87´µ\13¯Á9mÁô ?ý\8cq\9a¦Ï\86ÀZ:\81â\vèpº`È\12˹0Ó¨øÏÜ2^u±?DºzØ]:\  OÖס¹Ä\9a\94[,ÍRD   Q*«\9bìÑñMjø#F6:\18E\9b\19ÂB]WQ\ 5WÒ`p¨\86\0\8cæf"hËø¶\9fì>e\ eGÅ´Ð\99H6\9cªÐKü¡w/2\8el\ 1-\f\94\94n{¬þ8¨ÞyH0ªý'ùY2qÂ\ 1WÇÏ?שâRã3HÕX\94fIVpó     b\ f\96\10\117¹°[1Ç\15P\12]\8fÝÏ\9d\ 4ã.\ 5\ f)\9dÞð9\14\12Õ,ix´u\ e\8dÀÏà\83d,¯Â\1c÷ò`\11ï~OÌ\1c¨\bÖ
+ÆñUr{ \87Ñ8\13`ý¹\97\97¤\bÓqL\80ÓØ\9dÐ\9cù4©HåræäÑæïS\b·;F@\16÷\8cï­ag±ïdô.;Ó¦8b\1dÍ¢=¸¥D7Kb°kAHp\15?ytËØé¸m«\90\19É¥%\97üH        \eAg­\9cB"\9fò\9eõ?ð
+Ãð\197\0cÜÛä@%$\9cà\90ÜQ\18ªpqHy\12\96Ô\14C!8ûæ¾Á?5\f®\8eÌ;é«ÄòôCN~\1c#t¨\ 4Îz¯\12~ÄY\vû\ 5·3v\9c\ 6[$×õléW6a\8cõ.¸æÅó5aÆ\a3ì·y$\96À{G#Mt¡?\87?     \92
+B\19V=\Í\1cr\94d\1e3òA£        \11\ 1¢e\1aûÄú¸¨ VX¿;.$\ 2
+\aL÷wÙ±m¾ý\82ÀlF¶gë%²Ð\ 1örq¯Àn\95L\93ì°¢¶9e«ä\9cú\ 4¹%¼Ø<("N\ 5\88\ 6d"øÞ×Å\96\91\1c\9c<g\bü\98¡Þ©~\9b\ 1§¥<<äÓÖ/Æ\94\86\ 2\85>Ñ        ñ»Ú7\1e\81¹ÑRõ\96ÑQ¶Ë¶°¨5ZIí\ 15^v\10ȸ\8f\9b÷ÁU\86ä´²\8a\17#Éj0\8féüdn\r\Ëî¨nè\1edl°¾ie#ÂA#\aÄÈ\b÷°4î<e²\8bºxÒïµ*\1c\rlÔSY§\ 3?{Y\9bS'u/Y(ÔD{!«ubaó±\1a\14\ fm   ¥~\94oæì²cÁ\bäÌ(Z8Q\1a\9fÏ{µ\1fY'af\b\11\89~<zè\14=;ûM»Q\80\ e4\8f°»z´¡-r_CÆê6\9f\vS\ 4\10Ð\8c\12åÈ\8a\87Ç|`b7ë\10)0n\8f\8bóü×Î\ esc\80im\1c\ 21S×ôÉÌ2lÝJ8$G°>N]\15o¾ùäÎ\12Ô\81O*
+(\97\9d×÷\9cöß´}.õÀx¤~9ëw'wçû_ש-»\92\95>\17Àù+'B´·Q#9$\fxÀ%½nu\ e0\83QqJ$²SôÝçH\19fϩ׹D\8dal\9f÷¨\83ëJu\ 4x\122s\88l\95¶%Ï*\880Üð¶\94\8b\rÁ9FÆG'ÙR hX\988¢sÑ¡\98?;M\7fc,`Õ5ó]eÖ§7çûÕOÂÑ FBÝ9óå\82çKAèÑ9\9f:§Â1\18G\92µ-ó\17S»ip§\1fUíÕª]ssx\18\8b\89!Å~\89A\15d\9a8µÁµ½zþѬ\90Ñæ\8dæ?t¬$ÍÇáoÎfk\9cÁ'U\9b\9bz\10®\12ÜÍ!!\ f\b~\15w\95Ý%\f\9d\93tp.Ö\845ÿ©j»\86§ÚmwÂ,ï=\17D\93èÅh8M\1eÔ\16'±NÌ\16Jl$cWø\9a\85\8c+ýKg\eY|æ\9bÁ\8e\ 3ëWP&>Õ\84)ë®u.\98t=*üO\9aG\12¨`$ð\a|f­"\9fçõ"jCÍó-\91×'ö\8cò\1fÅæ×g¯bÕÞ\7f*\88~HéNJ\8c\1eø\9f\8fºhh \ ebK°äí\r \95å`oéÄ,=üà
+Ìþýé?\99]1'5GÌ\90\19­sD¸@ø;ü%\95c\¼oÜe¹p\97û¹\r\92Ûv{*=ô>\12znÝÌëáÀnæ\fV\13\1c
+r\97½\92\94\99÷#ÿ:GBõ  \81\93ôë ª J°ö4A8\82àýÂñ\87Ü\10ï[ôÈ£¦|=ßæ\85\92Ë3^(\ 3CzJ.'ry.Ûo\14»ß\13\10oð°'[\97~C\97\9añ|\8dLj\80²\ 3\98F\83ÁÌqï\90\93PSð)¼Üá¬\8f³/>±\84¡¸û\8bû¿ZÜÛñ\12N\ 2mWÔ:Wyå<ʽÀÀ\1ce\16£eÖÜ\92U\ e á,ão$ÝV\9bª\909\1fØðvbT\89÷bά^äVi´;,\ 6ÑÏ\14^¿f¢ö\89\9cïÞT¥\ f\16],Úk±Ä\0\9d÷8:PÒ|î\ f7<N\bȳò\80\97\8e¦2¢¢;®4×xÀ§ÛR\9f\8f\83c\8fÃ]v8¡ÔyÅ\94\14\94\850^&\19\e\83\e\87A-\rÅR)5\18á÷\v¾MÝE¼6i¼\10§Í:?}ª¢Ò¶¡å*æܯã\ 3R §®FAg\99îÝÒLæöm5ù\92J\1d\1cÔ*\12pe\81·\1e\88¨dÝåÛ
+7t\ 3;§Ï±$aHS\92ä}\ 5\8f,\8b\8aë\94A{Ì^+\1c&Y\8a­_\96\ 2WH\ 2\14H\8f¹VHG{~å6\ f^Q\16\9c\9eûrj5Y@$\84\1f\854¡Ý\b\ 6\1a\9en[\9f\92\ 4ÜêUûécÃ\91u\ 2é¾"AàìÉ\86\f\92 \99ã\93]]·É}ÇÎÊ\15¾÷X¢ Ãí \10\17P\19·èRD\r\93a7\11\19\13\9a\15QÏЬ\86\ eabì¬\14Á0ÿlÒÆê-PýÎ[\8c¦æ\96®ê2)+\99À#ôPü­11®^­M±_\1dM16N%äP¯º.¿û2²Ø\85ÛgN4_Ç*NuÌ\82oP\87±¶_\ 68\r\92è\87k\8cÛðSã_ßÜáöÏK\12ÑEc \8b\18Í \88\84\ eñ=¦òµ¥v7}£ÃmÌO\ 5\10¤àÂÝo\95\18h\fE\aü\80\14\ 4¬\85¦MÙ£ye\98â\1d·W\ 5<ú¾¦£RÔ9Yg¢´f9"Qrb6\9d\9dàr\96c[eé\10@>~ÇpCì\v³c\¢Ý{u¯j¢F\0Ã\0\9f\vra#\9bß?Ë\15UY¢\9e»8\10\9dÖ6Ä)«\1e­¡(\88¸\7fÍ\83\9b^\81\19Âòý-\90\16\9e6G·6¸,®Ù\9d×SÑov\9b\108Gf\v\17´\9fT¿úF\9by\e\ 3Ê4\9dÚ"\7fEJN\1e\87\88¸ø\8f¿áÅ
+·ý36\bD·WÞo\a    \91xy\14úÁ=A;\vöTÏGC\8a¢\97áëÄâs\ 3a÷dA\ 5[\7f\7fóFÑo¾
\10\ 3.wØ\ 5        ý¢G2¢"\b°äe\947:ä\96=\13£;ó£>\8e\19 1\12Áü¯>\90Nó«Í\1a¿;\95\9cûÞ¯´¯°\98~\9bô(0JIè9P\17\89Â\b1*DõDF\ 1Í¡2ÉNDø¥ÇÊÚX\1d¢\1c²k'$\b\90çEÍ\0\18Ç\93Ãq\8e\85\95¶¼\9c
+\89¡\89bY·
+E\93ò=Ó¸\92À²6\80\ 1±Êø7ãP\96Ú;R¨\81ó\8dͼ­]\\13s+\83PÕß\ÑÝ}\8e\99Æäèaµ\ 6\8bª\v6²lÒ\ 6\rKR3p¤s}øPrÚ\aÑ~\95;*r~õj\ fìHÍY¶ÛÎÃ\81mîÃõÏ`}Aª¸¦ø\8aî\ 1üiÌ\f¾h'Tºt\8fÔ¶¿iÏ\90\ 4\86\81Ù\13V®O>ö³={\85Ñqʨ\9cô$P!¾Eí 
+Æ7\7f§¶\94"ãy¾\94m*C:©ö}ó+r\11\88j8Õ|dr\17öç\ e÷esQvD\83Sg\9dîéåÏ^\bF\ré2Há:cEÕ\e\19Ì\87ý\ 4\ 6ì9´\9a\97\1a\16Ä/\84á\8fS!\ 1\1fíéÑN8C\18\96)´xùºCÎ\1eü\8b\12ü5®\ 1\90v\84\1e\Ìc\ax\8e\90\8bضØ-=¢\91Ò¸7  \89\19\8cZ](ÛOüwÜèËf  ~4\95äÊG2\ 1-\ 2P~\a«\88P!\12ÒË%\ 5ÐoÂa:\9b #üÓOñ­\ e\ e\89\14\ 45\84×(\95ßq\f§\1a \ fM»tt\9e\9d\10©\9e\8cÝ@j\eá¢4¿ê?ÉQll?\82Hߧ\ 3ú¿X0m'¹\19¶)Ò`vQ±-8þ\80\1e»»oð\bÒ\0g\ 4\1f\aB]D8jÊ/;Û;\8b\91Ý^®m\9b    NT^\83¬U9 ãR\1aÊTTªUF\99µ½S¶&Å÷ú0ùNàT}¥qGr}¤\1fìåc\94\9cïön.\8eÍ\e¾8`Ði\1a\ f\8f:\.Q%¸ÎaµSO\9c\ f%\·Z2@®EÖ©`àÄ®aK*\80év³ña\18@D3î\9a}\85z\17¦:pé=øQeàQ¸l åîñ\9ct\83º\v%H©ï\13£\0áÛ³Új¯èP <\92òSü\93u\11\ 5\96Ø娺o4o¢ 9Sú±1ÈGc&¸¿jÿ\8aĪ \16\11÷Ó`/ýVô=~3¡²NºC òÈ_Å
\1c\13\19\ 6\18\ 1v\199éä\ eÛ¿Ú.£ü6LL\83MIpkpÆD£ÚjUãú2h6à\9e¹þòTÆ|O#äA{ÍÛN~ö\9dà.â\r\89%á¾Ð¿\ 1\93£è\8dóìºgjrLK¾\13\15\176Pðâü¾\ 5\8d*'Ø\v}\ 1òÖ\93o&AA\84ëÌù®\16Ã\7fÊ44v[\15.ù[!\81\r@\94 «P¤\rê\18òŨM²8¶\92 =su0^¿üe\12U*¡ô\1c×â\ 3:4\83\9a+\ 5:\1662·ÇUí*:q;ANH\18ùºö\1c,Äe@µ~õ\8b\8eȵâ®xYß<"Bj3\84\8bçOoý\92\83þÏ^\91Ü\9fº\8c\8d\1c\18\86V\8dC5(_^\ 4Àí­\96é\ eL\8e\17K:hw¼Î/\99\16ç3\85ù¡Ð½i»8¸æM7ºG-Ð\80ÙS|\ 4¸\85,\99\eý=è¯\9f\9a¡é²\81\ 4\83/n\96\8cq2ì)ê\1aKÔ(ö\13t=\82*礲¾¿Z Â\8dB\90\15¶Ø\7f(kÌ®oá\91g;{§\8d\13ÁÉ)\16OÚîêäºw;-ú\ f;J3ØT\94\11·\97\ 5æÎ\8c\12©¸r\14ÔÆçõÿì0£È\1aÏ2\94Ñô\9eΡ[+Òw\86\3µÛ     ¹\91\V»:涾
+Ëà(\ e\17ÿµñ(MØ3w\ 6ɽ¢Mò\19Ñ@«Rÿ\98%N\83LS\17\8f·D<\ eëïEß©/ßò±"Ö\9aü`æÛ\f3JT\96>ÇB\97 .ß\8cU\94w&\ 1\94 ïÆ\95\19\83Tµ1M\8cú̪ñQ\ fÿcÆ34ÂQ=Å!Â?¯Úý\14\17\95â:5\93\10ý\ e\1f,\98\9a\86àÊß\9c\bIyÈÖK^\1c![ä\f|+1?fÌ\13Òùêëo\85?ZÛ.«np_\102ÝysD\ 2Wjºao\10u»@\ 2Df\19\95\ 3\13ü\82a\98üÃ+0;û\12ÌT\89\7fDüÙâê\1au\1e\96\8bdß%૧¼\99\ eÎ\0Wö7\8c\ 3M.®\ 1 (ù\9ad\80ñ\¾[$\11\95\86HÉ3£`è{³©\808¥óÖA¼\ 6\ 5\99f\fY\88ãâuå\11\8c\ e\12\ 2[íä\87¸?\85äw\ 6Y£·\ 6S\99I\9f_\1a~´ö¾BÝ3Hfiâ\r\988\96Ò\ 6|\84\88$49efEëÈ\16ö½\9b\83ëd\17!G\18ÝÝD\8a\92\rÐÒ\89H!\80ÃÏ\972ý«ÈVq£±Hq/\1aY.É>\9d£íß\7fú%6À\7f\16.¶ÚáPõ¸¶vùGýÐ\14ݼÄ\848\rUhmn>\80\9clF¦ãR×ÿðTEv¨n\89ä @pö'\10æaÑËÖ\17 ðfçµ)\9eÁ:d7Üɵ#|7Ûq;\94«­\88ü\9d\80Cè`\8c\9aª·4¼\98ö\9a;ý'\1c¸¬½Ì²å=d"\9d
+\7fËçW÷\8bì\84\a;\18ÖKD"\17±Ôù0\82âw]Å\8f°ï`\10úæÏââÑ\85y\1a5uft\ e¡Lrc8x
\vá±p~éþn=d4«ó©õlÁ_`¶û\ 4oWµ#bÄ\ 3wc=\ 5@K\7fÙ\95\9f\8c05Ç\19&Ö§^ÕÛ5¯\10Í:>=\81\17K\973\vô­·\18½\17\88ä{Qâ6A×j Êy\83Ï\9fê\87%\ e;\17
+xO\93aÌ»c\ 6dÁ!>Z,\8d\91Ã\a\12¨Jûñ#z»\8b@Î+ñjIô­\7f¤\81\93\84§ÝqÂ\1cÛ\ 4ö%OmÆñ\ 6\ e¢\84©÷e¤ü î§]í\80ÿ=x_%udõÅ\8bµ\11\ 4 \15»Éü|¼TÑ\7f(P\8fà\9aÆ.¬*i\84\\13q\ 4[áY¤¨µ\86g^§©"? \86»éÍ5)\8fö7$­­@Ú¡5\9a®ÃÏ;\900äìTÎ\8c;\e&\86)³OàÕ­^\83\93\1d3m\8cG\82cïë\9a\80|\11\1c\96/^±W \19êVÙ\12\r  r\1aõ)\ 12±e\84õ\8fTÆÛ^÷W\92x|¡¸uMãO\ 6\80w¹×\91k\ 2+=\10\f(Én\1e\1aкÅ4â\95\8dÚ¹upèíY9×ø¨\ eU¯3$H\9c\1a:¨`£f-cÙXWÿXæ¾JáÍõ":duõ\ 6á4J5c%liTõÓ\ 6\99ëj½nk\14Ôg¦ç='pó\95\9f¸°¹Ï¸ê4\87ET\f\ 29_n\9cØ\8a\ 28Wu\9c~i{\8e5ãã±\8dï\8eD\ 1\9cé\8cÆ{\16úpX\92ëì²}   Ì\ 5ë5\83\87@\11\fdG\1aÊKK\14\9dÚ¥jº¡|Úcöív\ 1ú\94ÈOíd«Ñä*+ÍßWO9\ f§2Zr\8f¢Fé4àC&²     \18ÜÒ°ãǽ¿\9e\1aK\89-aÂ\134[Ýÿþ6\ 3³\89)ÀØ`\7f{|­ÐÆ:ͦDogö[gÖ?\18k\97h\9d÷\ fZA{k*\16\8a£»\ 2\ 4'Ñ2ÜW0Û",¿%¿\8anÿ»o\bw¶÷øÒ\11\8ed\17÷DÄ\1eº¡³}÷¸QúÝ\83ñgäO\9a*s\ 1#\144\8bïø\8fÕ×t\95\95\83§
+iöîOQåú?Û<^¿qÌW+Svl\1fPOy¹4\8d/Ý·Þíàñ¨}\87Þ¼­y\18ÁßMrM:Jd\\14\15ë#Ý4ôjÚÎ/-\10§ý\93øâ`L\91ü~ÆöÔ=üe\84\88      \9c\96¥+ÛzÖ\16s       \7fm\8a\81à\15\10Ø\13L\88kJ_G\99¢å\0\a©k}¯\90]\96\97\ 1Ê $5X\üQ,P¢ÛgVÄr\ 6\15(V&þí­Xb\9a\9aD!¸\ 2@t0÷\8eJK¼^\9e\88~\81G\17\80¦;{¤·°à/aX\92R\ 3É\88\ 5pmÜ{\82wO]RÜÁV\17«Þø\96t\83Ì1b\84\93Ø\87×ü\9c\1e\15\14Õ\9fZ\80\93TKÊî\b¾\b¯-aöÉõN\93Çg\88O\12²»òõË\9d
+þò\9d=\ 4 \ 4/\8d\94õpk\90³4\99Y\\80:`\83\16\1e\83\ 3b\ f²D^\9d      e\0)ÒçºÐáð[ë;á|Õ¸½eúçíÞ\1eÁ«\9d\96\ 2«Í^h&Å;\ eiPðæ®Õ\8dÙC[lè\15åèX\ eD
+\89\86\8bß\81C\8bºQ~]À¤¯\93ɾêqé\81Xh\17¦t¨-þß\10jú5\18~7\\93\931\f<)Òì´\9da\140\ 2\90õG*ÈÒîÚ\85>OªüØê\13'¦ß|\8c\10xP2\'Ê­A\92zÒÂ\15Àµf\87®ò\12ï\10sG`îÛ:-h\e]Õc¯`QÌR\15vX\85¬íß~¨\7f"Õ~<6Ö\8eúH_dþE\96²ÍÊe½e*¨\97ãé\1eK®Ð_¯\ 5¹}8\1aw\95y\9b\86WU'×á\r\1e\83m\1aNGÌn×­Õ\0+StÅ<õä\10g]\8a\11\90Çp'Q\90\8d\m\1d#ªæ±9.ìÍÇçuä\ 5\83\88a\11J(I*\15\18ÝAX\15\ e\88\8eim\16AÌ´B\9d«]Çy\r¨ºhoEcw¯W`>\10\88Ë9EUÿº!8n\80ÚêÂß«\97{\ 3\1eD¾5Àî\8b1þô±¸\10\1c\9f\8aònÙØhï\14·^ß\18r\ 3ì\8b}Q        \9dÂçî\ eBÏïìÑXÍ\94Ð\1cÅ£7P\9e¯¹@ømï\1eòå{+\12u-[FríŨý\88´\9d\8bPð]\1fq×     o\938Ñå¦FlSQº\86ø¯\19H\ 6D\86µï7ã'ù\9ajRS·\9d\96ý¤ó&\1cü{ÂÚúsµ½ÖL\13\81Î\ 1÷ºóåùóÉ\1aÃÁZùëx\ 2Z\94\8f1\13JB\föv%ã7©0ü\87\7o\ 5®ï(´b\8bØ0½B¸\98¢ºÙ\\fH­+\95\9c¨µcõü2\ fÔ\10\8d{d·a7ëÂ\95±`êç9íJ§\vënþEür\99òR\8fP×ø¶xI\9a\ 4®Ò%èÑ*M`EÓù2Là\eG\ ec\16þz\99\ 5Ìï|\ 5ÌÍ2ðÔ»=\8dµ\bÒ\rd\89\93ë½®AW`\87áËÂI#\1aйh¹¼v\ft\19\86\17Ä@\ 4\8c¨\1d\ fa\0Vi\85\1ahSïÕb£È \8bëqw\88²<\9b       Y¿Ñ§\92&ó"ðkéo\1f´Êä]¾8ô¢Koµ?}1µ\rÔã\rvÔùñ$\13\15̽ïÏÜ\8e,"\97`í¹\96\9d³TÕ\ 58åÙÉ·ýë\9e]Ø}\91ÂDÎ5\82`Ô__\93¡¬é&Ç\85\rW\1a\ 1\8aÕ-Æ\e3\99.yT¬\98w»=hðGм§%\9d\0Ü3Íåç5\98\8aK\15nnM`\8d\14¦¼Ë\94ÃpkÜ\fêLnîÜ\83|ħµ,º¬\9f\16\14\85W§ÀBÆ]\1eH¾!>¾O4\1eà\84\8d\8a/í      \8a\90§'^É\19MÜÿ8me\82,\8fãªõ\90e   R\87\1828\1e}te¯\r\r¬\99÷'.Ú/\99IÚ¨nTÏè³N$#ëL\84IfroEH[\98Äç¡Óæ\8daën\ 3ã\11É\9e"&¼\e)^U\82ÂG/Ý\99\9f\v\8c\8b:\98\95    \9a\9dû:¬îz\84Ûã¦k\15\ fJLô\92A1\ f¬¼=¢°
+`£1WS¢\90hVÁ\ 3ó\97ÿ\1açH\9a¯\95À 9ÝZþHW\a®%h´|\1cõ4\vC\97³\9a\82sÂø©ª½\9bÒ µ
+»àV\8c`x^°\86\1e\ fÀ³ÆÖR\17\ 3q·qÛ\84\ em\1eY£ÇPæ\9e5¿\0.ü%\8f\8d\1d¬w\8fØQ{aÖ\86lÔË<\1fÝ\ e\ e]K°\887\93Qh¯$\18ÀYlÈ&\1d<£iØ\90\r\98n\f|¤#\v:íî\12*9oº\12\88_\8b\8f\10ÖKÐ+ª¿X^Æ©¢        |\10\96)±«¥Foìþ|Êܨ\11·tìqW\91¦NÂ\1em'\199?é\13àSÙQRªÐî\87\19È\94cЩG;ÆrLrûí·^ÌÖ\8c¹b1Ù\9e\9d\8cs\8a\93SÿPÊT\85\7f£i>(%¥ùQü\ 6C\17°¿\9f¦[ ï¹×\ 1fx\8cS{\182jϪ\9bÓ/V\9cË®q\175\b\997\94    \7f[Þø\bÌ 
+\92û\14Æ<OîйbAl\945åÁ\95¶\&WÍOøÁÒ\11ÕTì;Ò\93½\ahm0Ä\16\93'~æ\8bÈÙ\8eË@C\8f\88\1d'
+\88\10«.£ªF]\89Þ¯wù¥ZU\87NI\1c_!\ 5¿\1e\9cqbA梯R\91¿hýUYíÉë\8fÇO.XXpü\8d\ e$\9fa\90\99SóÓW¹,mJ´/ë\89V
+\1c$LÊ\99IÑüK¦\14qPÊÙû®\1fåÈ\1f\91¼([\1am\0+\bG\16y\11z½¦\12&ÙÊçµp~±·ô\19©\11\9c\13ë\81\a\87\89\b\9dÜ£|`\e/ 2¶+j×ÂÅ\1e\ 2\ 3ï®}¸·\84DÏÙOÚNÞ6Ü\90¤`,[R!\97j©þ\ 4\fùÄ\ 5*®f¤Çu\r\9bÓºôp½\94ÿdÐ\7fª\9d\ e÷\94$pne;\80¨¸·d\8b!P\f\8eÝF=¢vó&cȨ0BõD»\90×z,\89\9dl\81F xá0\9fDìì\1e\81Ý÷÷L4\v\1ea¼Y\ e\9c\92Ûzd\r(=­±cj\90÷\91á©që5AIa\91D\81»Ä\fAl¼?\ eæ±5Ð\9e\1f3-Éï\17ý±K\9az\1a\99¹.á7UË\91¯\83\ 4PÚa\82\17aÛÍÞ4¼Ñm\ 1\1ekÒ)³\10Ú|\12ç\96\8fhvd\99búwÁ=UIÍ\85£\ 5\8b´m½ø T²ÈÇfv\e\10ìëܪµ(\9d!\ 6ú\8dKFWÇá|:C\9d\9c+þ.¨ \16\8d\b°m\942¼Ï\97zG.\ 5þÌ\ 6Ët(ðyÓº\17\86Ulæ\94û%s¼ßm\ 1Ùïĵ
+î>¥d\9d\93h_ë\98¬f\14ÿÛhAX ^ÛÝÅ\84\13rWw©ª\9d\98»ÍõïLÎ\8fDíQ     ÔZB\8e¤\92\18ßÑý\14o\ 2vDn\aM?\8fý_z\18\80\8b½H¿\84à¬7\93/ªbØØ)»áYÁ u\9d ¤\88üo|í&\ 2ï\93;\r¾öy?ÄÙ\9dü\8d`¶°\85/=§ÓR]Σ¤GÞf\18\8c"Ã"ÀËJs\92'Þþ¿væü\9f \ 5\0\0xE\96ÙX&3Ç\fS\8e\90+\12&ç\c\8eÌCbd\8e"¹r\94\ e\95<G<s­\10ÑH(\95\96\f!cÌ9£\8cÜÕF#¶\1eÕû#Þoïó¾\7fÀwG\8a;ç÷\15C\8aÓ³mLö\1a¾/dÌ¿V\8cuAÃ:_Ý×\ e\99\81hö´=\93AuF\83\1d
+\9c¿f|f\92sl\95]/[]ü) e\82\15?,çáG\9d¹PxÞ\88éä\80\8c6\1c\aã¸Ü\13NA]µ\91Í\ eF\1a\8fóé\1ck7\1dýW\ 5\80Ä.}ß.l0¸ì\99\83®å_\83®]Y¾Øð\80\f<Óð\v\17\12i2JµWb\9cz£ÚêÁî/\17V\fKªè1¦ÍG)\9d\ 5\17îw\ 4ð\10é\82¨
+GO\97,õá¿]XèÀd!fô"\9bÁðõ·æ}x\9et7ÄB\88JëÀo\85\fí_\90÷ Û\8eD\f$\a4\ 6\f\84W\8fmªOH\8d     ¢p\b*Z©tjxb$\a\16<a´sÝfÆ\v@&[\80ó\ eI8Ú\8fvib6É
\ 1M\97\1f\94díì®C/¼7)­ùè\ eáh\v<Y¶I"w`JØ\\8bÞ+ø\1a\17­Õ\1a\1eïmèV»<ße¿ëÞx\86xøÔcf\8cøÙZ}àÉ'\ e¬\81øçx&(:ùª\85\80H\7f\11¹vä\añk}
+(\88{\12\9etu¢ö\9dý\84]\1d\1f=hÍÏ辿\b\88\ 1Þ\1d\96<\e¾wûÉÂ\1e\1ck\85µýZæ    SÄñh\1ft\r \86 ázê\9b\ 6\1d¥ô\9a\96.{ð\1a\9f±=×\12\8aN¬(k^\vîÈ<¦¿M{)+£4Ó\ 2ÞQlÛÞ\ f¬£É·ñÆ\f\ f\e\83\8c4EyÂ:6\15
+#8là\99È\19\9c\ f#ë7\96#ÇM\9f­RüN°:A       +Õ:U\9b\18ËÂ3Ðí\ 5+\92\91\ 4Û\10\9e\98¬s¶\84w±[Ú\99ç`e\0       Tö\88\98_¢; \8a\99F\ 2ô\ 6ÉùfE\ 6=¦³MûT\12\19qMÞêí\90\13\95}æÀ\94ö)7\83£5¯bW)×D\99E)±\0KíæbÙäk\94Y\84WUfïKߺ\80xkÓ\98\r\97é IW¨t»_\vD\12¿iZuc\96ªæ\9e\86+|\83\86\90\ 6ç\14á¬!û\bwÕÖýÝE¡¶°Èi&(õ¸2ñÐÈ\15]\ 5×P4éU/\8d1½Qè\83mg\89\1dæÛe ?0¬J\8bÎýäJÿ¹Z\v¤ÁUû£\1e\99*\99.ÍI\165Üô´\11\f˹'QÆϽ^\ f\8fÉTîKLiî<\ 21ÙãÃ\91~ç£\998\93àm\1eÁ<¹ÃÞº@ÌtB\85\96åÐ\ 5á\ 4Ñe-)cYù\8bn\0\91;üjíúE\99Õnb°ð|"ÊjÝXKã)m\11.Ã!dû\17²?néö½\9fD\ 5ü°ÿÜ\ fõ{\ 1GØÞþF\999zH|Ó9\rC\15¸àÀ\97;\81êjU×E½¹i¢\95b,\9bêz!(ø­È»1\v\ er^Ü%$úÑUbã\88úQOÑ>!=WJ\8b}\8f\82\85T:ÁH\19ñOOÃìÒè¿\9b+ó]b\ 2\15bkÃcÂ\88úk¢\12Ùk\ 19cj¼ôØLx\9cñO\0ý0x\15Ë7Y/öã+\1d1ã2/-R\96»àI\8aâS\9c\9e&dþ\ 5C,f\8bì\18\95\95\848B\ eP\1d,+¹\b\97U\11\eà\9eµ\1a¿ýGÉF\9f\8cH\Ũ²\88\9b\97cÿ¢\16çYtu\ 2οb\ eO\1cß»\92È?.B:XÓx\ fétÀþ3OÚ\95¶P\ 6¨]¿¶­¢S\13aß-\11F(\r     }ùúaÇÆ°\13\95Ô Ö­³O~\9fT®"\8a$íUàDÕ½ràlX\8e\16òF/µ<¹ßøË\82Æ%F\90¼yüÛ_ɸ/Ô\ 55\8d\9dÅê]«`\84\83Y ¿Ü\88:?½R½úkâ\16¬j\17X>tËì§\9cy\13c\12ÐÜ\9a\901Úr\0\84ô½}\8a\1cS\97\ f7\9a¶ÄõÍ\1e\1e²lÔý¥RN\82'\84U\1eÇJ#½â>\8d\rXZ¬.¹\97²Ñæ\rñA*\8b#\86û\1f \bq\8a\ f? p\9f\86\9eÖ'JÊA\12
+óZ\8b_¸^A\18¨\9cpñ®µ4M-\11ò%\e"MZ'ª\9fN\17cw\8b~\8fÍÿ\1e\17\80æ\ e\7f2\83fh[\1f\ 3\8dÄÿÞV-P\bäµ\18\9f\ 3\7flLxP*ÞÒæYJ\91³¿\83XPÅ\a\84÷èU:!?Máq«Zoü\12\9d"åÓ»þ%\8fyçj\v*\18\1c\8f9]YÿΠwi¾\7fÒ¸'ÙßÈw­\8eÆ1\81tÑó0\9d\r\ 6åYe)\e55I¸]\1d9=KUö¥a\1dX\e×ÍÓz}Äíx\92ñyO\ 1yû`:þ\f¦xà\93Ö7Ãù\83ä°\9b*©þj¨cÿ\12ðÿà?\11\10¢B\83bã¢Ï\aÅF\ 2ÿ\ 1µ
+&ôendstream
+endobj
+532 0 obj <<
+/Type /Font
+/Subtype /Type1
+/Encoding 8020 0 R
+/FirstChar 2
+/LastChar 149
+/Widths 8024 0 R
+/BaseFont /EAWYEH+NimbusRomNo9L-Regu
+/FontDescriptor 530 0 R
+>> endobj
+530 0 obj <<
+/Ascent 678
+/CapHeight 651
+/Descent -216
+/FontName /EAWYEH+NimbusRomNo9L-Regu
+/ItalicAngle 0
+/StemV 85
+/XHeight 450
+/FontBBox [-168 -281 1000 924]
+/Flags 4
+/CharSet (/fi/exclam/quoteright/parenleft/parenright/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/greater/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/R/S/T/U/V/W/X/Y/underscore/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/braceright/bullet)
+/FontFile 531 0 R
+>> endobj
+8024 0 obj
+[556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 0 0 0 0 0 333 333 333 0 0 250 333 250 278 500 500 500 500 500 500 500 500 500 500 278 278 0 564 564 0 0 722 667 667 722 611 556 722 722 333 0 722 611 889 722 722 556 0 667 556 611 722 722 944 722 722 0 0 0 0 0 500 0 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500 500 500 333 389 278 500 500 722 500 500 444 480 0 480 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 350 ]
+endobj
+526 0 obj <<
+/Length1 1626
+/Length2 8267
+/Length3 532
+/Length 9125      
+/Filter /FlateDecode
+>>
+stream
+xÚíteP\9cݲ.\16\13 \fîî\10 ¸{ð Ã0ÀÀà\83\aw\87à\90à\ 4\ fîîî\16\b\ e   \1a ¸\86\9d½÷©ï\9eûç\9cýëÖ\9dª©zWw¯§\9fî§WÓQ©k±I\98Û\9b\81eíí`l\ì\9cÂ\0U\88­\99\8b³¦½­ª½\902\9b
\1c\ 2x²ó¡ÓÑI9\81\810\88½\9d4\10\ 6\16\ 6è\82Í\ 1Ò`\10\80\9b\eÀ%$$\84N\a\90²wðp\82XZÁ\0\8cÚ\9aºL,,¬ÿ²ü\ e\ 1\98yüÃótÓ\19bi\a \7fúp\ 5\1dlÁv°'\88ÿñE-0\18\0³\ 2\ 3, P0@JM]_AU\ eÀ(§ª\r\90\ 3Û\81\9d\80P\80º\8b\19\14\ 2\ 2(C@`;g0\13ÀÂÞ    \0ýë\0\0ÙÛ\99C~\97æÌþ\84\f\0\ 2\9c\1dÀ ÈÓ5°;\bìðÛÅ
+p\0;ÙB\9c\9d\9f¾\ 1\10g\80¥\13Ð\ eöÔ\ 3\98=\0b\a\82º\98ÿ&ðd·°ÿCÈÁÉþ)ÂöÉ÷\ 4¦nï\fs\ 69A\1c`\80§¬êÒ²\7fñ\84Y\ 1a¿s;C\9eÜ\0{\8b§Hs{\90Ëï\92þø\9e`\9e¼0 ÄÎ\19\0\ 3»Ã~ç2\ 3\ 3Ì!Î\ eP ÇSî'0\a\1f\1a\10\7f1`\ 58\81-\81NæP°³ó\13Ì\13öïîü«NÀ\7f©\1eèà\0õøsÛþOÔ?9@`Î`¨\ 5;:\17÷SN\10ì)·%Ä\ e\9dã÷¬(ØYØ\ 3¸8ÿ²\9b»8üÃç
+vúÓ Æß3ÃôD\ 2hno\aõ\0\98\83-Ð9TíaO)\ 1\8cÿ3\95Ùÿ}"ÿ\e$þ·\büo\91÷\7f'îß5ú/\8fø\7fû\9eÿ\ e\ 2\85ª\ 2m\9f\ 6à¯\1d\ 3xZ2@;ÀÓ\9e\ 1(\ 3~/\1a\17Ûÿã
\16\ 2õø¿]ú{´.ø/¶\92öPó¿û\14`À§\96HØY>ÉÂÉÎù\97\11â,\vq\a\9b«C` +\80\ 5\10úÔ¯?vm;s°\13\14b\a~ÒõOK\ 1l\\9c\9c\7fó½±\82\80lì~\vÀ÷\97\vlgþwúORý!Ï¡« §©eÀòß,×?\81êOC\0{ãáðÄí?KQ±7ÿçá7\8c¤¤½;À\8b\8d\8b_\10ÀÆÃËõôö\9e\b  ñszÿ7)ÿ\0qýë¬\ 2\849AÜ\ 1\86Ousrý©þ?ÿÿ:\19ý\r\ edoþ{l´`@;ó§Iû§á·\eäâäô$ð\9fÇÿTõ?Î\7ff\1e\fv\a\83Ð\17çíA"AÖ©\19i°Jâ¬þQiÃîN.Äþ`\87Â\9a7ù¹~\9fí;|SÃÖ\85JMï+\82ÙkÇ\85\7f5yÌí;<l+2\7f\eì$\822t$\83\8frȽi\98ºrqWè[\ 4\ 5p\18\17\1dèFy\1dÏ*¯!\19ðsê|Û\18ÕÐ4þt\8fL1ÞÂã\84z|ÅäGã\9aëG@{é\80å\ 3\8e%lÅ©\85ëÌÛ? Oؽºdè\1d\1aèïëøù¬k\9b\8c%3\16\8d\15     \93>ÒÏ1\93LÜ@»Ô+\868\94»\1c\vßÄ\8d\9apߧaßUb\86\10a£%\19¸S¹ëòy\ f      \ e?\96¹B1$d@¬DúÛp­¥\eº(Þ\9e\9fWYJµbÌ\1d\16\83¥éùÅË\ 1¼WR­öÑ\13é\1c
+ÖñNþâµÀ\87P\14\10§\8d\8c%²V±;ö9Z\ 3ïD¡2Þ\18ásD^ɤø(Õ/        wfè\89\95\ 2\ap5;8Ø:\ãà¦\88æ\8eè\95áí¶6hqH.\92¤G¿\89\19\1câ)_ö¥«x{k¼\1cM\7fP°@-_¡qÖ[\98\88T!7\9c"\8cZc3\87,¶ÙÙ¦\98\1d\9e©\90¿b0\81ÄaaâUdPýÔÒÓ\95ÜK\v}~$ú\bB\e\vH\8eiy½Ø\r\19\93B\ 6+\96\12âr¯J$¢Ð\ 6? r´ØÞ×<<fR\ eF'\ 6F|RÒ£c\12r\1fÀÈìLª
+ÔìXæ­mÿ\90\90\10´ÅH6jC\82ú©þeï¶W}\19AÕ³ÇÂ\1fÖ{éäÙ5¦S\ 5ݪØ-Úýöz¸\ 5cÈt`Ù7`R\8f¢Þ\1e à\r     ù\fÜ\98äÔâp\89^<ÉüÀ\98qQqv¿Ð\9cV"ç,"Éy\83Ð\12ã\8b\ e\96MW#ésCªÈª÷\e\99w+Wn>¡\9c·Þ\9d`²1#«\ 3Ø+\8dÅñ¹7\88\b\142WïJ\8d}ÂYD)C\8d\8a \88è4¡òÞÍ\83\1eº
+\87      R\1f\ f\0S\14(KØhG   :s\86Ñ\98ÁÚ?+\ fS\a\18A5®3Rv8«\1c\89ZKKð\1fGÌ/'õK\85\93ª#\13¥Ô\91\86\8aÚÄ\e±X>®oqNòS\v/\82k\19Ål\aýrñá\83ÇJ;µúè\13ÆÅÕµ}5UÞ\r\e>&¥\94_Lõrwb<Ç\8cé\1e\ eâ·2T:ÛÄ1\f¿\85\ e\84
\86&w\9f\v:Õt\fÂãêw³\7fuT(\ fçæG\ fË¥\19\ 5Eþ óA\8aóã./TÿéäqÅ\83\eÞC=b¼Xo§Î$Ó^uhU5ÐÚIC}<\ féfª\8eÚ\98\1cé\843¹±\9cÌ\17\14\8a¸Å\9f¥\90WqÎ\94÷VðÞÿr        \fò4
+Xð\8e§J\9f°°ÓÑ|/(Çø-æ\85\9b(1ÞZüO\ 5ê½iT1¾\13R\10åörx éx°\86\89ñÒÖ\98¼Hö\19\83ÔNN¸CÄÉ\88}s5óà)?Òãáºà  \1ck>új\aª\)\85\f\16ÊÍ\1c  ã´Ñò'\8f­Ûo²¼y\9e\e\ 5\85îüo\rX#\18ÌQ\r\ 6\ÊðY'\18\86\89\94å¨.½@sì\82\91Äx\1c\84ßÖ\84\88`£õC?¶P\162\85à¬R°×K©\10\ 5´\83¥w\87õÛ\82Ï×\96^@¦"\92\8eíÈ#ì~5ßÌL\8e\7fòù¤ #ýüû\99\9cco|?JGU\1a\f² \ 4ìÜ]:$¸Ç?<s!øzÓW\1c\9f(òõ\12\8a>\1cÔ¾\16ù¦bÖ}\11b2\9c½}«1
+\15\ e\9a\99\8bSm\99\f¯
+\a\88^ѤÓ$\9eÖñÄV\9aò\86\1fY\9d\8d;§TI"³\8cY\9bUÜðW\97\1dÇgêRÝj[rP[\19j=»ØU\80ëaØD\90¿Z9\94z¹v\1cû\9eýW\9bÞ\8f%ú7\ 4_x\85ðý»?\94\11ß\8e¡s \10\98¶c\8a\ e\Ê`¹F¯)ÎdÄ0 \eDÓØí\99¿\ 2¤ó\8f\f\96R\84\ eÔ<ì\1fì2\ fxhÇ\16\13\1e\97¾Óc\81Þ\9e]WÁª¨Eµp,\9bßg\96\13 -ë'\a0Xc rf¶   %½\10
+\v¼\8fOw|\19\13Ni\ eö6¯\15«P\1c)\93gC®\98Õ;Y\16\97\ fF\84K^ýTá9\1dÃ6G?owò¼æ<\ 5\83\88\19°\99-üx3_Yá°1/å®<lòÜõ\96h.%4Ë\95åj\H\85dÙu\1a\99ó\85³   \8f\9b{ÖÒ}\90x\86\bÈp \94¢õ´±ÝØÇ,®\94\       \87Èh·g\ f'M¡èÞt\84t¿¼­h<¶ð~|\95l¶QÇ\9a>\f¾\90\96±\91T\1\vAݶD(\f\920ÿ=@\8cÔç¸6ï5\12\ 6¹z³\82æÄ\8e%\8a\12?áCµGSkg\9a ã\9ec\84ËÚã\80TR\1dwAx`ÃV)w\8e°hïíú\96ªü[®;&Í¥éO¸\1e\11\194\83\9dGÆä«\18      (@#öÌÐØFÞÅÛ®0nê\9c!\8cü½×ø`À`\85\7fAß6£3]6νôò°\v\87®\9f­Ã~\v\80\e\ 6G\18î^Ú£÷LF<hÔø0íÅÛå(\9e¥\95µ\80\84dHö+æôÛ§U\89\11\13I`8Æ&Ë\88½²Öuä\8f\10\83\8fàKßÜ!¼\15\v\9e!\8b+ÞiË\8f\97¼d Ué\ºÌ¸ô¶1«©ë$\90A\rÀs\7f¿£¿c\8aÿRÝ%Sèñ\80K\86¡\88a2*5ï<\ eÁ\10Pú=»FK\1c´mû\8dµó\ 5\r+­ÎQü«Ò¦ê\9c±óÄ\17\8e\94tÛw\9fÛ¶G)a?áÐñ6­m\11I\1d\9f\11ÇÛbÜøQ\11©_=P\80ßq\99Û FU\7f\ fÕHóI¾ùáÉ®2ªYg¼ÈBÏ,ÊCȲ\94â˺aÑZ\10\8fªÚi\87\ 4\ 3ãË!ô²rNz;eÍ\9eÞ÷|jò¡4¹\1fP\1dµùµ\18\8bùfQ¸æ³àÌ©2èxÁiús\89*á'<.?ý\­ìRp\9d\89\ e"\8a<\9d\90\81aÞá\91> ¥âñ]\8b©è\8eÓêÌT1\ 5^[\8edds\0Ú\1c¶ùU)³.§\rE\83ú\K¶åÞOáîµãkW}z®\93\87GTx×\1e*77ÒDZ`\1c|¢±U+\1fqSO-\8fÀ;\8e\8c\98Üà\99\135c?ÝC+]*ü\82·V\8eA5\86qãÙÇ4·Ú¼\89\ 2kx;µÇ\0%Ý¢mæj\91\13¹­yñ;²4KKûÝ[ó\92¡ 0Ý =$>í:e\92¯ØÆByhm\13Ú\90øÚï\vß'¹\ab&\13\8dºB\9a\fî­gñ`Lëï)>\b×\1f2"/\81¾c¿tFç\1eÄ\7fîXêЭװ*F,W¨ª'Â
+³I\1c9ZåÇUòÑb
+¶}\1c«MÛÇLþ\99Ã\r\89Ì\8c\9a\aFïd\8fL\15\91û\1a\8d¼f^æ\18g\UQÕq\1c*E\9d¾àd#Gj;D0\7fG\ 2ß@\19[\82éx\8dK\14~THX¹a\vJ7Õ\7fkí.ÂÛb\8fB\8dBÁ¯\96Oæâ&ã\rUøÚ¼·\13Ä\ráF{Q\92ZkiR©k\81\93çe\9f\8b¬\12i!Gô¬\80·\83l\9eä\ 5»·Ý«0k{\7f\8d\8eêЬ\1fåü~\84\91 HXLØõ\ fÒÞ\85÷·;Iô{\13T¾^\19$º"ж¤\b¿[\ 2jÊôáý\8d\87T\88\ fÕUù«Ó;Á\14B\16\9f¬wÊ\ 2\90çyU«ø\1cd?\17à\1d_\876Vv\88z\v\9e\17
+\83|e\1dñ8¨F?Lih¿\9bÜ$\båAPV\14\13¯\f§>A¹£\ 42\14\7f"\89Ä\£òCP\19+î§Õ4xf6î[\12\83\187\86ï\84ù\8aé\ 57î")BU­/Õ-ÙÁ\r\81\90\16CA@r°üT\9fyT»Mñ«}Ìm´\87Mv\80Ù\ f
+~\97\86ä>Só@u¨\1dîËåx¶\8f\87\86~a&\1fø`<é@ºWܼ\1dò\16ù\ 4VØñ®Ù&Ü5ê\9b\13²ÍXÑð\80&\17\1d\16ÐRW¥³4ËNNQ\9f¹Ù@\99ëÏ3õ\8e©ý\9dûüMý`»\87·ME\98äåÚ\8bËõªêa\1ejf\bZ~\e\ 6\9f¸J\bI<j\99\87£·yzâä°$Óý8\93ªw\18L\8fOéÛã¸ûó\8aÇ\11\1f¢=\92zlå}¥\9d;Ê÷§\95\13\8fE\19V\1cï6\1c\ 6Ûe\89ÛnC\1f¾\19\17i\bO\89è°\1a\94
+Åé\11Î÷ìÖ£w7ù׶\98Õ\87\b+ßnù:\1a¯\89\15äñ{ܱÁ\89u¥.¯)H ¹6\87\90°ÎÉǼR\99  Oû\85í\9c\9e\10Yq\\17Öº[(Ç\92ÛÌ8\95²#Ô\95sèà\8aÕ1zþÁ\e<ôµ\88-¿äCºl6¿º\11\96í\87ó\90ÕÇ\91s\ 14'\80o\ 5ꦲ\11: /8\1eãb4)®aº¶°^°Ü&ý\r\8dÚ\96ÌÆɸGt\9fl\ 1ü£_]\91\ f\84ôUD,\92oBMr(B\87 ¢   ¶\ 6ôúÅ\9b<P\0¾6ÞxE·â&k\\89@U\99QUoÇu¡c¦\16ÓY¡Uä.¥!Ãè\8e÷~ûñ%\0¸6è´º\14×\90\85«p½s`¶¿ó"«\84ÛC\8a'\f\9d2aëvY+ð\8dLy m*³\8c®ê\e(!ݺX÷0\ 3Õøvѯ¼èW\87\18}\12»tÊÓ]JGW¾ª¾_Í~\81UMFÂy\bêO\88\8f\97i\94~z\r!òI0øãc\86\8e\ 2ÇMn\9cËw\98õ§\92]\88R×=×\86Å·Æ\eÃ+\7f\94T¶ÙKU\16H®ái\82m2£|£Òõ\7fµÛ\ /S×£L{Ífø\92\8dI\89ÂmF¸yV¬\ 5o\8fJO*aé&¹²(\10\8d  Òd\1f©±ØÐ\ 5\9f¬uu[zDuÝdo?êè8N|.ë%\16\83\ae×/$M£·P-Ý\1cüÄ;à¯KÙ      wÝeJ%¡Q\1d\r¶1\85\ f\95\8bT¡2ªôu£ïM\e\12\9dµ:KøDâ\82л\88\94k\93Ë&V\10â ¸\92Ä×\17\19\89ý®\ 3#h_ÙH/²|_\ï\90ns¬ÔG\8ceú£\9d,rüÈl\96r^²Wvô\1cÏ2VtðÍÒ½É\17Ésbú7\f{üäm\9biMÏ;7«P\87l\88n¾c\8aµßE×\86¤ÚîÃ0a
+ ÏZ9\8dË\93\96ù]¦&Þò\ 1\e       ï«t\10:?6
+m¬>ªÔ¡\10l©`\95\93
+kO¹Y|÷;\9d\95q     ¤\9d¥W\12â\96@Õ¾Ð\17% Íõ\82\ 5L\1f\9b\129\7fÛU\874*Þ\9d\1a\83Òí\86\83\16®´Ðp\18\10ÏÝDdÕ\b5,\9aù7?Ý\86Êtû»Wò\97ù#çæ\9bÍÜ\87©r\a½´Ù`$Îa\a7\83\aÆ­·{í\12×{ô\10Ý$\ 3ûõ\1a\88®5w\85Æ4\9bå%8Vù\97\11\81\87ÕK\0K{\81ñ\99"«e±n=/h9Ó¡Æ=f\8fpÍ¢´­=C÷ø$Âs® U'j\91Þ>\99ù}\1d<ìýA\aü¦\94\fQÿ\9d\0Â-£2ÊÚF¥\14\11¨9À}vÄ<r)B\11];çlÚMª\97\80{&m\94\7fUýµî\8a.\19)ç=ÛqÐám\1cWèå\8f^ÔÌIv\1d\ f\9a϶-£ùQ´Ö¨\18_¦B|r[\83\v\91²u(\99@l\99<\ 5\1f\ f5\ 4½t\ 1ï&®hý¹O\ePP¼ºb­P¾\r\9cÔ]\9bÅ.ß²öÀá\Ö\12¯ÓUáS\99fʾ\ e\rí¾r4ÞØ\ 5úö_AS-\ 4"±«íeG£­7\9d\ 4\ eû\9bòÓÙÙrߺÎF\87\ 4kÊ`â,\95\16cÉø\16¿\1f\80u]ä.X\10\97>:\99!\99ÒYÁa"\ 3_ò!\85Ö\8dª­\1cQM }n\99£¨íç\13JH\1f»Øg'\0òöM\vð2\89\1cci     ç'GÇ\16è\92\99Ô1µª\11|þ)¤¤Àñ\85\16tU\92Z\12!¿ \87¯'I\87d`;²\9cÄ÷\ e³Y\9cï¸\92ôbØtg#={A\aTñ¶FTG¢j\1eÅ\9dä6\vû\0ÆðÌÜE#\13 .§kR<ûظHP¶.\bãH×é->G\ 5Åg\9cg}\96çÐó\8b(\12\8e0Ìf\7f¨ßT\ 2\ e\12¸óp,¡\92ÎÖ\95¬\95\12\16!s\8cÕAôH\16À!x'Wר\92ïñø¤\vZvY\1d\90»A%Q3z\85Ë´cXv\1fÊ¢+-Ót'D?¦¿#©íí]Ǥ\a\96&ζ­V\8e\88 gU¯¢D\b¬\8eâ\17Õ²¼¡\1c\b\9dcdÃôêþfýÖ4P\98Óó\8a þ\16Ü\97\13Ø\12\ 3\18\1a 
++zU\7fß\88\8erHºîºùV.m\1e\83u\80\1f§2ôÒêsÛ\ 1A×fÙPò`x\v\90:\9f\89M\82\91B\1c³\80\96íz\1d\8c\91\93à;rI7\93KX\1eYLÈ6T,\99¨²0çÍ¢®Oý\8f»,B\ fÜïÏïEûA8¬·¼67Ò#-X^¥\9d\12â\96\ 1Hþ/Îâ8¿\94b\99òr¾³TIT¯àwèý^\1e­è\9fo\e\9c±@êÏ\85\8dФÛgäVõåë\92M5þM\80Ъ¶cØ2#¶^RSöL\82\19g¸rÆU\ f\1dZ~Æ|¦\8f%\7fN\9b\83Sq(\93¡¸¤T\82Ç©wL¢ë$\b\17\17Qdi\9d²U?\80\ 5wHÂÖ[ß}M^j\9dZ)5p©º\r\ 4\17W1#ÝB]AÒ"±X|eâç"¢òñQöôL\8fî\8c½\ eZ\9b\8d\17ôÅ\171ßyÓ@\ðã¨Ex1qRîR«`ߺÎ\10R
+µÿZ\90\85L\94\98UuîÊÇ\vuËËêÙ£\83\ 2ãiäR¾Î¶
\9dYOÚÜ\\14\13Kmþ¼\13\9aD]iá°4ÿíûÌ7ì\1f´øÉî,+âi¯Þ$\14Ö\97¦]ºËÆÑ\8aË\81\9a\1eWê§]\89åÕÂ\11\96N\19Ô\15\8c.+\e\95Y5ü¶<*}5\98¿Zz¼u\95\95£\9dË\rù1¦C\\8e\92\1fæ\81\872­¶AbÉ@\aü¨à5Vé)h(#tk\8düSv\8fÙ;+ûÃ\11k>#OwWtmgo¹àÒTÒ!Üø©üt5¡\99\1c\0Ù}¾$\99JM {j^Ãev±(\1aÛm\96\9cÖ÷½´pÁÄrKo¤èp\ foÖK\8cJÎ4\9b®Î¾\89£p\99ê\ f¦ËýÊÅ\e\12Z9\9bÆ\1aü\1fTr¿\1fNÉÖ\83%-ξ¡5:\83ä\ 4\80îZ`<ʯ¦?Ôï¯:>îTOdùpmc\10>Ã2\ 1z\19ë\14y\ 2RB¿\9b\8d~æ>\11ÅgüXiv¼÷\9dÍ@ô\10qê"\1f^Ã$!Á¯¶ÒqÖGÿðW\85Ûç\88«l8?\9bÏM[\89º\16\v8ð«7»räÙ[ÓP\9d\83¥¥ÊåF\11\10\80w\95\fl\10E£ÈI\ 4ò°é+ \10\âe\88\9a>Ú#¶\æï¿è/ö°\8euØJ¢ApO}å\aGØ®\ 2CFÛÑÞ°f
+\14î\96´\17"\13\ 2h¿Rõ¿ä\90Z?R±}Eñ^iB\89ÚÛF*,^éÆ åÊ\vïmþs\1fxa\94_s]íí\93­ÛÝ\91?s\r\e\99á#\99/¯Dµ;|2ky|\86ï\19µï\84\88öO\1f\f\9aî»\16¿S[Mì)£\96{ÍØ\805ÝȾ)¡mÎ\1fÀ\7fbd.ÿ\1aR\19úYøZ5_[}\9f©[+EA\9eFt óL@,îÒyVÜR>\80zߢr--OM\b¬î(U¿\1eòý\ eÎå$\17ø\18\9bG\b¾0P\98>*²:\rì5o.&¿\vìºY£R7÷Ò3¥à\bWàà<g\ 3Ð\ 6ÇèÞ      4Ø\121õy\84÷\ûù\b½\ fweº±Mj8\1aö3\88\19Eîº~øbèÇ«Âñ~¼ t\98?\1d\9aªÛHb\8fp;Ti\13 >>G®oôö\ 3FÎ8ò¯ºÄÊ°ÃÏIQ\9e\§ß¯\1a¹\10ò\rqÅ×\84òÏ\ 6õù-ü-\9e#\ e·?j0¤\84u·U~tȤq\9b\e\râ1p³k`A\vì\8bâX`Ô¬ñ Nb'½Æ¤LJÇõ%\86*U\13fðÏ1êæ\8a\17Ç~\16m\90ê,\90\12\8dÝ®\97_\eÌóø¢8Õ\97\81Õ\81{;\ 6e7\18¤øñÓæj9   \10\97Ç\91Í×\11\11Ó\9cü®\8e\ f8øó\95\90ty\13ð+®*¸×«f+~\94¹\88Ù\7fmæê-°Ù`ÁSo±\ 1\85§[P:"\9c¦eÀ\a\1e»¼×¯õáK§~¸*!ýË\8e\913F*\97|Yïäîã\Uüd\9eì\8a"¢C\v\v\8d¯¯¯·41
+\ f®\8dö®U\84KpÓ\9bäê.\9a¾}/=\f{ÏÂ\8f\1c²I\8b&i\8eJ\90»éPÕKô¸ÚC\12\9bË\86Óð\8a)\r{   s:z&Þ\8e\95tx\ 6a¼«\16ùl¥N%$Í­ú\99\ fÚº\9c\93´\96\9a\9dà+m\r\15O\0Æ\92n°TɺÙÝ·\13_Óq=\96·¾Ûð<\93\eÑ\92§Ö\92j{\ 5&©i5\vKoËò\11/(¹s\v[\ 1hQfxkE&-Jç\10\14Rз\ 2ׯUYb°Ð´Ù\ f\9c\16xN.Âèï×\9bùà*vC*\\83?²i\b\9cq\92D\8c}\87\9b\19\1f é\85÷\é\99iõ}\81àJ<î0       fâG:Ø:Í\93\9a\83ë?ÁäØ\98ËGj¬5d«\0A»àɳß)ã6\12Ù5¨jIpc\93õ\13n3ã<4k\bEócÚH\0n:»\82òús\ 2\8b®/³sq^¿Íx»J\93?Dý]/Z\94£\90!>Âmç{d(tI¸\94\92iÆWÝ÷F\82ç½\9b|OÈ\1aùËÜK\8a\1e\89nXÙ\12i,þ¥\v\ 5½÷eKWDÞ\ 2Ç\96Ô\17ó|kîʽo\14ÃïYÓµ\10©c­hæÚ\vÐ\8eãÓ\ fÏ`SȸTÉ\80\9e;\11e Ä\81¨\9f\98\1e`µ.Õ|Ë:2<\8eê²e¥I\8e\19\7fi¼^oX¼\ 5\87\9fÝ\7fê§Ø\16iÚvÂ?(D\8a\81³\10¨\ 3Ñ#p»{\0ÊÁÍ·
+\93«ÒC\89Ü\84Q÷fK\83m>´º\1c\1dG»-?(Ï_\14x"Úv§uñJ\ e®û\a³º-Ï>Ä\8c^\9b\ 4(\1aj\e\b\85\94\ e\1aÅ­Ñ)½ iÄC9×\7f\9eë\1e\95À\ 6ýP\1e\92sàÇÂ\19¸\82d}f\88\9duÐ]9\15ÿ%\82=bÛ¨\14]^^ÆS\92\90#câ\9d¢±OùMù*ZÑÂ\1aAf\8cØ8Òíæþv\ 1\89ð\17$\8eFU\86ËϤGÑ.N%Öm¯#\17;wÁÂ!ó[²¡_¯\ e_\8cO\v+`@eùhïï2¥Nï¥q9\8aÕ©c\1e\1c:ªÑ6\9a~L`\8aÎ\8fÑ®T\eoJd\8cÀøhçZÓçê¿\19àbô³«\95\7f\92.Ió4f^\9eþÅB©[­!\90\8fÆ£\82YA\8d£\94{ètÒÍ\8aÀß³<:9\b\97önXm\96®ÀG_=ª\eYéq§Û\81\81\ 6\8aÔÐÇ,ª[õø\vÝ\9aÇ\19Z\90]X¨NÓ\96ñ09$E¹½¦~W«vÝítO\90ð³øãWvÊ_\9e@åF\90Åkëݤ \9eúLXÛÛ\9cF\vÇM\9dz´Â4ß\84\8f©^\89\r\98èdÉò\19îETò½Ü\85P\16Jø·0¸¾2å½~H0\10õz#ó\8c\86?\93\91\9eú\16êz"­±ÁÈL˽\e{nУ Õ}Í\11jãö±g·o&q^\81À4EÜ+\1aR\ 1\\,\91eÒ¶È@\82léPà\9d~~ë    \17md\e[½²*¡\10Õ_?+\ 5²\9a\8eh*ÞA\r%öá\9e\90¹`°ªG\85J\1c,\12×>\8aèX_S\9a  þ\8c縼\88\8b~Qhrý#\92þóFz´¬Ý\1a\9aD$F\e\acÕC\88\1cÃs\1fëúz]^\a\9e\13º\9d\83\ f<'¥\16¬«+}¿Jf\11°ï3_r#\90Gt¹\e\ f\ e¤qsÁ^à!\16~\90JåÃ\92±¹Ù|,!N\11S­ë#CÖäÞéÔ4\98\fÏþxûügÕå\9ca]\83ø\ 5Ó\19´7üBY\e\ 3ýÙBlsb\8aÒT\18\8fÁ{¢ô]½\99\94\1eÙ\17®ã½ër\9eâT\91á\8ad\17á-hËwPøÅ!s<ø\86Ò¹añ\94\1cú<\82Ýà¸Ê\1c«¾Öþ\ 2º­&U4¤(lë\10¤\ 3Ï\8a\ 49~í\³7©Lpj\85CØËr¯OJ\80\ekãI*¬¬Å\92Æß\1cS\ 3ÌýÖµùtÉR´î2Ì<δOÑ´\13æã\z\8dp\ eªÇ\18\19ßYwiHòL{VÊeXïdѦxû\ 1?ñ»\1c"Pc1\9d¹ÚâI\ 1VrÆ\9f\9fwâÈA\1c\0\16\13ô°|æÂÎP©¬\8c¦N±V\11W_ý°ÉÄ\14\1fлñ}EÕhæ\v\1c\87\11ö\1cVíV9S+¼~®\92\1e¹¯ÞBõ¶iMù=_i\8aM\7fBôêÃcá6Îå÷B\87q\7f\11¨bx\9a\15\ 6\85å~Â\8cÐa\17~\vE¹FG@<g\ 3)\92ÃÏ\ e\94cl\94\9dÝì¯\80hyuê ÚæÔ\0Õ®½Ô\18\1e\8db»¥\15ãG³ý¡êN¿\95<]\14\1eý³Ì\r¸6»Ô\f\8a)\9b;Þ3'Ã\r\8cýG\92k\8aÃÎÜ\95ð\86"PÃ\16©iG\9cE×êÞ²Á>ʧCVpð.\1fÛùü\14\e¯zj\ 6R³õûí·¿¶cÙ.W\92Xxü³Ì¢¦\90\98d²¥Ûpv8ü\82\96#ËÑê\8e\8bÙºùßý(\ 2P~\87è\9fÜÉ+ó»}éh+Ƭ\83\96Na\11\89ÅûJ¥¯-qo½\8a*8§®XS\1cÂ\8b\b>T·<>:)htç\9b;¤Hd\f\1e´v¿åïþäy¯a\âÏö\88£\16ykÌ£lÂâÍ\98Ýå"ËÖQ£È§Q2ïý\11®ú.þv,Ô:}Ô\9b\eãsüt¦\8b\16n\19®(i\f`J\90\9eÉu\90±$ò\99\92R\9f\ 3§\90co\ 4\13\13\87òOf¾\1dój\11p\9b\8b»å8¹;fé×p\e\890T\ eÑÕKíèk\83ô+|yß\83r\9fÈ\ e\14\95\ 1¢\8aêOn\8c!\18a\13\97¤\19\ 2\81¸4J\9cw\14Ë\19[¾sû\86\81©^\9fx\ eú\1a¬1\87¥ÏÞç\12°P2c\17$+:\b\ 4Äà\bµ¿\rÁÕ®íÜYB\8a2\ 2\f\133Ïpç\87\14\ eøÕ å÷N\97\95¼«Iz\96\8d ²JØ©¥\12é9¹«\97×/qeT¿ñ=Y\10Í~»7\1eÏÁ\86TÈæ\8eÿl\9f\7f\7fq\8a÷\81ѵäu\0TM\96\0\11¿5>\a0ÕÂ&!Ù6%t\86FK\8b´¤\ e\9dnR>0<óoQp\16S\19)·ÞÞ#FÕ0ÑÛ×Ì\13\8cl´XP¨¤:{é´\18t*r\f\83Ð\17v7÷¸æE\16?BGi^S\82\ 3¡çùX:\1f\96\9a²äS\1c\85ðæÇo\84§\bQjÚ!_ˬG'VNWæ\f\90\85Õ©fãj\ 6\90ÝP\90qI9\1aû\15ò­· \87\1eU\91>ëjä(\86MA\ 5¤÷?¤\ 5\ 2êö\8d\8b_þÀO\9a\97W\94ã8\12R2iN$\v©è­ ûv\90'=£F\8aJë]as^\15¸îÔÓ.Å\1d¸\96*ç¦\ 6÷\8b4oE\1fo\92\9es2¨û\90\8b/þÞ\7féGÁÇé\81\1e\b[³lm×ÀjÜ~D\85\ 4\13£b^ê\97\85\13g:\9f\ 3+O~\14M׺Yʺ\9cg÷u¥yþÇ\94d\9cvNÒß\93¥³\a\9ds0æ¸\1e\1czµÏå\15¼¸ËB©\7f\8eÑot\811\19Â\9bU\e"\9ddÓKXFË~\89O6\16\91í\90jòÛ\82R\90Ð?¨\9d*¦t\ 6*\17Ei½S¦\8e\8ff<:²Ôr\93é\98Z\15o\9få¨ù\96iF\17Ü\8d®Ë\13¬kwÐ<ÊÀy7ÿ2L\93\13\97ÌÅc?Y¾f\0\98\85"í 0\a@à¡ÿðþ¦Ö¯¶V±fuñ³\12\9b\ 3G\94Íö\81æǺV]6ú)^\87\16v{cJ\19ÓüN \8a¬7 F­O\0        \7f\15\ 3\8f\0\8d¦\92u\r.T¹ÖR¾±º¬\9bJmÔ\ 4¬÷°±ÖT\88\15àÌ\ 6\v\8d\97­Ê\8b½\13?µì65J\86Ðp Fw8ï\19Ý¿\996ÝÖæ\1c\93Ü\18z\9d\ 3fõǤ'?Z\97l%"òÁøÜ8_\811"\1fõ\8c\f \80\93Ë:\ 2\19j\88ö¥K9i[\1dûy\1a\\\8dYO\13¯?\0ð\8aáeÆë\1d\8e>\85\ f%1è\95\94\1c\8eÑ\17IO\9d^ÐÐÓo:©R§ê[2QGv5\95\ 1\ 5ô\99H\16£\84äºõa\aX\ fݾ\9b\88jÝ2\17{\19\8f5×q\bJ¢|   *ë\1fÆÐx)^./\9aÊyMø\ 3ÿ¹\8c*\8e\1eÿt\9fï\ fg^\8bW¸)\r<\15Öí\86\17²!u5¾ÔuªZÛnJãï\ 6\\9fÝÄEýØ\8b\18AFÚ\11bÚl\17\ 1M4÷h%1áG\12=oêoäV\85é%Ý¸ µqL\rØ\7fI¿ á\195\9ar\8c6\v\87 ÜÈöM\87Û½&íÏ]Øx\ eF\89V÷Yó*\17°Z­\9dC\98¾\10¨Öf\ejÞöðôDÿÔiëEÐbÓ\18\8eÐáÅ\96în«8p\9f\9dxF\9bæ\e.e¼Rÿ\18=ò K\ 4ØyE\86\eK\9eüàä4vä\8f^ºDØ¡+%óí<\14G\\10>E¤ýì«\99ô§ÓE¯\aU\80\93¼ÚóGÀÍ×P©ÞUy.\8d\ 3Å\10\rM\19\e\8a:Õ0+|á.\9f]|N\9d¬¶H³!©jæê|@\89\8aÒÚCåÏÅôIS\atææg\8dQÞä¡\19Lw\8b¬\94 \14z±Ï£\83X?êÀ\8b     Ùpc\1f0\9a\8bS¾·\90\86ó\8ch\8f±Â¼íáü_þÐÿ?Àÿ\13\0 (\18è\ 4³·\ 5:Ù ÿ\a}@¹Ýendstream
+endobj
+527 0 obj <<
+/Type /Font
+/Subtype /Type1
+/Encoding 8020 0 R
+/FirstChar 46
+/LastChar 117
+/Widths 8025 0 R
+/BaseFont /WIXRSZ+NimbusRomNo9L-Medi
+/FontDescriptor 525 0 R
+>> endobj
+525 0 obj <<
+/Ascent 690
+/CapHeight 690
+/Descent -209
+/FontName /WIXRSZ+NimbusRomNo9L-Medi
+/ItalicAngle 0
+/StemV 140
+/XHeight 461
+/FontBBox [-168 -341 1000 960]
+/Flags 4
+/CharSet (/period/one/two/five/A/I/L/M/P/a/b/c/d/e/h/i/l/n/o/p/r/s/t/u)
+/FontFile 526 0 R
+>> endobj
+8025 0 obj
+[250 0 0 500 500 0 0 500 0 0 0 0 0 0 0 0 0 0 0 722 0 0 0 0 0 0 0 389 0 0 667 944 0 0 611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 556 444 556 444 0 0 556 278 0 0 278 0 556 500 556 0 444 389 333 556 ]
+endobj
+513 0 obj <<
+/Length1 1608
+/Length2 10350
+/Length3 532
+/Length 11200     
+/Filter /FlateDecode
+>>
+stream
+xÚíteP\9cÝ\96.\124Hp\87Æ-¸»»»\85\10h\1am´q\87à®ÁÝ=x°à\10\1c\82»»;A/ßwfæL\9d;¿fæ×­ÛU]õ.ÙÏzÖzÖÞÔäª\1aLb¦v& i;['&6fV~\80²¥\8d\893DÃØV\91\ el
+xsr!SSK8\82\8c\9d,íl%\8d\9d\0\1d\90)@\12\ 4\ 4°³\ 3Øøøø\90©\ 1\12vöî\8e\96æ\16N\0:-u\1dzFÆ\8fÿôü\95\ 20qÿ÷ÈÛI\88¥¹-\80æíÃ\ 5\ 4¶³·\ 1Ù:½Aü·\ fj\80@\0'\v\10ÀÌ\12\f\ 2H¨¨êÉ)Ë\0èd\94µ\02 [\90£1\18 êl\ 2\ 4\ 2\14-\81 [\b\88\1e`fç\b\0ÿÃ\0\0ílM-ÿj\rÂü\86%\ 6\ 1\18\ 3 ö  åÛ1\90\e\10dÿWè#À\1eähc    \81¼}\ 3,!\0sGc[§·\19\ 1,m\81`gÓ¿\b¼ùÍìþ&dïh÷\96\16{\ 3\838A\80\8e\96öN\80·ªª\92ÒÿàédaìôWm\88å[\18`gö\96ij\atþ«¥¿co0oQ'cK[\bÀ   äæôW-\13\10ÀÔ\12b\ f6v\7f«ý\ 6fïhù7\rg\88¥­ù?\19|\ 48\82Ì\8d\1dMÁ \bä\ræ\rû¯éü³OÀ\7fêÞØÞ\1eìþ÷i»¿³þ\83\83¥\13\ 4\ 46cFfc\7f«        tz«mni\8bÌò×¢ÈÙ\9aÙ\ 1ØXÿá7u¶ÿ÷\98\vÈñï\ 1Ñýµ3ôo$\8cMílÁî\0S\90\192\8b²\9dÓ[I\0Ý\7fOeæÿ=\91ÿ\17$þ_\11ø\7fEÞÿ\99¸ÿªÑ\7fºÄÿÓûü¯ÐÒÎ`°²±ÍÛ\ 2üã\81\ 1¼½0\10\80"à¯7æÿÊ5¶±\ 4»ÿ\17Ùÿ\9a¨\ 3ú\aÃÿ
+DÎÉøm\fb¶æoR°2³þÃi      \91¶t\ 3\99ªZ:\ 1-\0fÆà·\19ýíײ5\ 59\82-mAoZþ=F\0\13\e\17׿Ä4-,\81Ö¶\7f\r\9d\9bïï\10ÈÖô_\99¿Éó7o\16)\r\r              EÆ\7f}MÿÎR}SÝIÓÝþ\8dØ¿õ¡dgú\1fÆ_\18ââvn\0O&6\1e\ e\0\13\a+ÏÛecå\0ðqòyÿ\17õþ\ 6bû§­dìähé\ 60xk\9a\95íïÖÿíÿOËð_`¤l\81\7fí\89\86\93±­éÛjý\87ã¯0ÐÙÑñMÑ¿oû[Ëÿnÿ½ä \90\e\b\88¼0k\a\14\b´JIOuú\8e\97Ý?"iÐÝÉ\ 6Û\1fd_\§Y\90çWe×á\9b\12ºÎWþå©:\88¹~\8cÿ¥Ù}æÐþy[\9eaçW'.\98¶ã\eè4\97Ø\9b\92¾+\ fc\85¦\95\87q'\80ås1jê\91N¤çÙ´âÚ;}nVí\9d\8d\115õÏEOð$c­\1c\8e\88gwô~\94.y~ØT·öh>ÀäÚ\18\9c\ fõP\98ßó\ f\8fh\12öïni{\a\aúû:.ຶ\89\18³b\90¨\ 5\Þ¡ÒDø9d\11\89èk\95{F\99\14±%ôV%v\ 6wiÑq¬Ì_à6¬q\0ô÷\90êÊ\80\8b\9eG5 FGÿ\0OÙÇÏK'0¹\85\9dn*}Þ\9c!\8b\85I\80\96E¢­Çä$³T*vâík³Ñh\11\9fèn9ùS¿Í\15\ fÙ¢`Â\9bæó\912y\96Íï\9c)\87C£Ö\19|ý%\97[Yð­ß\8dÇ\99{üò\99\1f&\9ab\93\15\1aF\84ª\91âe°µ¿AL\W9ýEhË\ f\12`î­ë\7f'äû\ 6\9aùø
+½l\8f\1fL\16¹\14:FV5P°Ü \96ú8Õ\8e\1eÝQ?\ eÙãä\86\86\11\87óXgÎ\17\89÷Ö\ 4Ö´^]¹\14Ín\91^üâRZóã\e\ 6<\94\ fsN;¥\vFFY:\8eÕÀÿ(,Ûª\12-%#cÄв Ì\18ä¸w¦\eLc\84±¨ç\17\ eÈò\15\98\a\ e«'!@ÚÓ\11Ø\96åâ5I¼÷r´\86@+¿Ù|ñàºQÉ\12è\89\15[ZÄ?Á2
+àÀ¡\8a-b¿nÔÍ\ 6\9e\16Ð!éC\1f°¥LßËÕòUfº_«²À8T?¢Ðû²pz>f`¹\ 6\98Ú\99ƸB¹ü0Ò\8fÏ\1e\85å\10±ÄÿqAmâ\e¡úÉ"\9aõRwu²jücðÉhhw¼\   "\1e\eÄ!é¡©²UÓI`\16\84A tJ\8d\9b\94\9e\87\0½¹\0\11§
+H\16×\8c»\1d\94!\1d,\8d\ 6¢B\94*\b\1cÉÞ³K²ÿ\9aËiR\93\12 »\83\8aÈ÷ì\8dFd;\15\1e\9eÏÉ\8b\9f\15|
+{Ow\9b\94E_! ´äV\14*\10ï8Æ\99\83Y°ÚÙØ(¶\95\88,\11\8e\149ÞÑ\a'Ù¬Rñ\9cé±\9e6\ 1\ 4àÜ\93°¸>Ùø\150w\91\98Ï\97\12ó\80±~mI*®­*1\90N\90\8b¡+Y)'ûÉ\1fȵDZ&þfC\1c\9c
+Ô¾ø@½ù[\8e\ fCÁz\'\r\16§\8fE0·­;\18½+§ù1\9c§\8a¥\e\ 5}Z\89ܨ»\1aâ;Á\91\8e\80ª¹k
+\83)\8a@lf¸\8d\87ú\80Ϥ̫\1dô(\96\eZ\83\9d\95æ\ 2®¿BªßlÉ\8b¼¸\1fÁì­Éâ8\97\1eKn\10:ÒÌ>ü6\ eÞ\ 5êôÆ*¸³ßÔ\8cÁ\8eoå¢$[g\fVbÌåÐáÞoà\9a\rE\bo\88\91\\ e%âÑèµ,ÐomíPÅÈÂÇ\8eõÏßÁã"\8eÓ8Þê·\ f\f\ 5Îü\92\91Dù£.$p)b=Í­\15°]\13Ò\98\9bCÇ<EÙAAº\82¬¸A¼wRÌ;Y-[»\91}$\94k¦t\90!éŵ6­jù|B6j__\14ô9îµÝAúlß\ fóý+\89\rá°Æ̺o\83»\916¡¼p\92@\8b\17\vÃâF´îòn]M1,&óU\8d%°Â«Ùâã.\1a\8f\8f¹!A,±O\80ã\98\9a\86Uûk\ 1ý\ f@  Ãi\1adnùÎ{U)\9a\9a¸®®ð{)1ú¨oëá\       æ+\81Ê\84ÜeDÀu÷\9c°Ø\b¤kðÖ"\81ð£O\8b&Tn3\12ÌÙ®;\vÀ\81{cÃZÌ]\19Ü\ 1Á\rMûÂÄÕãses\9cTMsÐ\8a\ 4%eÇÜA\vw<æɼ\0+ñ[\18Êv\98\8eI\81\9b¾\15\857þê5\ 3ï\ 5lTnÁ\15M<-ÿ
+C [\91ýC\fYh\93\19\19z˼\8fÊ\9e\99NñÏþ\rÜÌÒ\ë¦ø\v\ 2Ù!TbáçÉQ¯ôݦ>p
+n%AУ\vÕÍvämg÷IP½Ù­¢ú9^-ÊbkÐoIõõ`>qnf\17yÆEt0\11\95¸-+Ó²$lNÈYm\10Ê\15í'O*Zý*Ztr:¶ëÞÂ\ 5ÃÃF\ 2Ê!L[]\9f\98ÏÓ\973\90\18øýÞ?\18uÒ?\8e\17{ýWWX4\81pÅ£Àaói¨\84~üÇöë\94_s\87ó\ 3dF0LïÛ\1eJÌÑ\ 4\ 4RÓp\93\aeªyç6ò¿l\9d\aè§\15»\89Î\95®Í8\8f±¼\9bB¼ëÓ8º±¬\b¼ìbÈ ÎØ@\18ÀÊ\1fÙ¥RÕ먻)£\9dDã°\ fÆ\96ÿ\1e\1fü\93\97:_ö£&\85\94¢UFë%ÜW\ e\7´\1f_aÜízis\1e³4\8a;¨t|\8fD
+ç?5rªÄú!àsQL\r|é"\eX\8cÂn5\9c\87Ò±²V"J%&ºZBÏÈ«0¤\88CH#Èf±µé\ fÀ\9a\12.IhR±ze=!R»oà\876zV\ 2¸4\91A(\fp\88\9f.H\19èñÆ\89D¾lÖO\8b³zñ)ãRßí¢Õ0\\1ee\14×x"²à\9aNd4å_\85\1f¦æ\8a\80bÃÄ\8di®}+\rl\ 6L?\10Oó,
+R´Iì\95¬"P\v×9È mlo3\18\92åõ.i\81*Ýgi   7£cV\r\15kEM»¤V%Od­H½/×âÉ\18\89v\9ek\0óMþ= ÏÅLÝ\f\fL<:ÙÈ·ïÅÙ\91k?E¹ÄQqQÉæjzð\12ñ\86+¥iî³\10¤ç\e\11òù\að7¦lÝ{óN1¬L_ð²»>\rV\9cú¶³\aÝ\86\95\18¸L¼4ï¡#µL\8caËØ\17\8d\0\ 4·Ñpâ\98Ö·¤\rÛÜñ·\ eå*w|ö{#\9d\13|\r©å"¥ðà\13à},a\12¼Ò%Ê¿øaà\ 2g\96mBï\18øúöZf])\12SØù\85=(X6µ\18¡\86ãÆèds\v¹x\9bª©aóÍ        `7PÏ\ fLIZíu<öéV\ 4«R\1e²\b\9d®y|c£\ 4ç\12\8d\7f§°·)¦\80´P\86¡¤¸â\ 3¨Uu
+Úeõâ>]l\7f\1embÏ\8e\15F¦(T\80ë«\98ÌðRz¢\96e ÍCñhFÔ\ 4s¹î{¬&\1cJK\0±s\8aû¨~Ä+@SðíyÍêo&¦wøH\17æѤû>\12ß\17¶ù\1c\12HþþÞÁÓÑcµ¸P\98ú\80\9a`Du¦\16J0¡Éix!       !ùÍÁ\88îû9°×ê:8\91ø\82^8øÔ!#½Ü\ 4(\83b\8fÔ\93 \82¯ó½\ 4¸\ 5¦\8bâÙ­\bÚÍ­ß= FÎÞ2ÿÙK{È\83µ?y®.<~\vï\8a\98G\8cçn¡Ë\8bsN)\8el\86îQ0ú«\83ºB@X<U¼ù\ 6S(\90R\11ß&\9eFÖËeíÌ\90\ 6WÇ¡sÏ\b\877`;s\9f­\1e\8c¹\85Ú\ 3I¢"q!èÔo\13½É·ó\13¯7~\ 4ó«ùßyb\1fì.¸ñpY+°=ô\ 4¡^\ 4Ç\ 2\1d%p?(º§[±\88÷\18ç;oÿÎjñ\rBßÌzì\1e»¥Í3l\90+\98î\8dÉ\1eÌ»b)D!Þm(\94*5òé`Î\9aûP\15W±AG(¹\9dv*Æ1Ò)GS´\94§àHL\8e\1f\19VÈ ç¤\ 5=^&a:.·uÌ ·p*}Åa\ 2TIÖ\rð$È\9eðnIH\9fãu \ 2\ 5³Ø\97zéÃ%%9\ eÈ\82nb\99\93\90D\8e\97\ e\ 5ZKë½+ö\11h\98Ö\aÎÞ\ 5²ëÝ\84³s:PzÍ@è#\r\91áU+\19\86Ú\1d\86%û¹\9d        è¤¶&\88\ 4èªCÈ8½å¥Qº£²\12E\13%X÷\13~{Âc\ 1\80å\8e\1e¼×2y\ 5@!úÊ
+èö\91\ 1 ²éÚ²V\9cØm\16&Loγ¬L:Ú\82¾\vÜ \1c4\8f0\ 6TÑð\13\86ÈȶÔ:\9b× |\10Â
\8bÇÜR³yJÑ\9c¶l\1c\8fN×e      w\ 5\r\83W\911Õ6h\9f\991&ýkÛ0_D*Äô|¥\89ôËH\1fÊ\8a!&óq\8fupIvkCG-íc~qÓªW¬\8f®\ez·K·Ê¹Y
+M\©\87ê¤\84ÉoowXç\ 2\a\93Õ\11\8d¾.Òp§T·¨çàª×\17\1f\13\1a{[&\84¬4\1db+ö\8a\91HÔqJÕ\18]\19o¸?¹Oæ\19¨Eâ\9a´U\1côB0\83Ç9$ÕLÈD\b;j\86Ü\e\91eü5\8d}\10\9bç³­À¥Q*\15\14\fD\8f\10A)èþU\ 6}\9d-ég\91ø\1c)Ràëms\86Í\93éI0dYó\f\8441!\11o0Æ\87ÀÒ¯´öQîÇ\17&BµÓ\0\16\82¹Z,ý\12i\9a\8e­WvBëc~(þ\ 5\1f\97Ôñ|\85\fFÞ5\99Äaý-pÒ5£$9ӮǷ¡ÌwÎ!©ÁÜæü°ÄÊß\ 5/
+5hn\16\94V\9d\11­%Ï\93NÖác\1a\9b\7fk;Ç\8a\8dæ(\ f\rÏϹ\89éUW±\95öó,\14\a¢.l¡UôÛ(ÙÍ^0|áÏ[\12N1ygêRy\82\83è]2\99öQÀñË£       
+Á8J\8c«¤\81 «<¡m\95ë\9c¹Á\8a££±÷N
\ ekL\906\7fÊ\8aäRä \19ã¡x\87\8d;®|H¹â\89|`\18\96\ 6\16ùöÈ\95x\ 2|\b¾\19\85^9Ê\b+\1ft\1eÂ/6ê)ÚZ\97\9e<¡ºÚ­yÂ/yå\ 40÷î\17Ü\84÷\9d\12ô\ f\ 2fúkçXú \8a\ 66<P*ñ\ 3\ 1ñ\ 2tÒ]\1a2ëMÏÖã\98Æ\ e`\10\8c\86ie\ e\8cõ.Oïyî¨ÐANàú\f\87\9dw[¦\1e\8e©a\eý|Ë     à×\80ÞÇ£1"`Èêª.*RÂj!l¨ÕIaWW\vÌɳïò3 Ñ\8f\93U\1fò\9f\16\9bÊ®Ü{<åGâ\98Öëçä@!OË\10Úè\15\eñwV\e\12×A\97\1cç\16h\vo~xè¹\wztÝõ:㶼¼Ãº\f©\eɳÈ;]MÜü\19Ú\8d¬W%ºW\ø^ç\14ÉU´DVrã\8eê4E\16\89åÄS\85·\ eò     1ØÁ\18/\90\v\8c\82\99\11\81ѲiÖÀ»à]õüÇí)½\15a\9f¨\7f*ïµ³¡$nÖÓ"«k\85\ 3W\10E¬üÎôÇ^/gÈäõb\æõ(\1a°gÃ\0\ 6 ;D¢6\1aH\81bÿ!öê9.[\8a3êE\85é!{èå\ 6\ 2ÏsYø\1dÎ\a\1dLvðM)fCBí¨°´Íµ\Y\89~\1ajá¶/×\8b\v\8e\vY\13\98\ 3ÿH±¹jâJ\9fÚÚ7\ 6¡¢\9d\8e\92ÈöËÄYtå{h\98_\17\98¿üúhÁÞ\8fÖ\1f\ 2m\80Ï\82\8f1\ 1EaÅ\ 3¿giÃ6\1aÑ\9dÕÒ¤8Qo\95Ü\17Ú\9dòç#$\7f(x\16M'\8bZ:A-Z\9a>¿R\87\14\81\1e¾ò 2W\ 4\9dH\16\ 3TGM×Á\8e´\88z\87u&£öøS>]¨\95\84:{ëÐ9p¯«n2­³þÞ\8dTp¤í¶¦Ã\97¦\9a¼\9b$\9d(ÎNå\8bÐ\92ÅL÷\9dV\¬ær,|Ð\18¤d\ 6\12ÉØS8TîÿÙ\9f\13Þ5\9a´k\ 4Çö\95\11ªdã\ 3Ö\aÊÇn\15\14V\1fi\8e\rß\8e¢6\15ý*\e\9b:Äêéß\94¯ip3öçÎ\ e\17\1d"ô£ç4'GbÇ¿d¤ÝtÃÂgè\80"2\9e\90¬²s\9fo
+\7fÊßwJD\1a¥}·±+
\8dô\1eª»¢2@ÂËlT
+\98áä\1aèÛûÍ\85&ßù$«zHΡ×ëù\98ÎA~\rçLaõ\a\r¥ÙÛ7\añN\96ÒÖ
+ðtó\0îÔ|·ÓõCI\8fÂ\1fû|á.<4M\9db£V\81ÑÌè\ 3\9c|÷kîèQI\92ú ]£Q¢l\ e5(W\98\9c»GÎcòQ\ 3ø书"ú\9b   ;¡YÕ\12+¦­E;@C\92¯\9dS\18Ý\1f\1cc¨jr\bt\12\9bUl\88oLz\86°Á\9að£\80ÿû?_¸\v\10×oHa¢\12ؼØ/@0é°÷n$ ý=H\96õû¥-\84\1e\9aT)V\9e\18\8f\89(ö#\1ev\98¯\\ 6\9e£nÁ     ]*\80ikëu\ 2RÝü»E;± É\1ck\89­°%èÞ\94\1a»C\99ïkþ&\8eGûîý\8eb_\9d\ e[f\19 .\7fÈáì¸ÕÍhDÜÜ\15óºØ:ø
+¦ìS\92\0\12öÅ ýúäy2\8b\r\9aW\vèKQ¾\93ÞjâÒ+VSpC®Õ\9e\9c\91«Þ\e÷U\9fN\97ÊÞw¡-\9dþ^e\8e\98\aɯm¨\8bêPý¤ïî²Q\98|g\0Ã^FHÐÒ6:z+òÊï\ 2ú\90Îs\90\81q%L
+\96      ª\1eâ\eq­7--v`\985H\94Dr\93iêZ¸©ç\12\92\e^æzÔ·þþT½\9b\91&S¦¾Ç[ì\99\87ê,ÐîIê\8cC÷4~;­u\16ñ\v\83cÛ´\85ãüÛ¯       BÒ
\9a\8e\1dX\95PÑp\1f\86Ôlù\95È\9a\fÚ!k\ 2ú¶Û\eÆJ=ú6R\80\ 3\16٫̶\86P\11x!Î\14\16Ï\1c\84ë´V)ÃZ'ûº\8d\18ÂiXä\ e\93ñxb´gO\1fÀ\10\9eýPËã\84ò0 ÙOpÂ\90É$`Dæñlë]\asPÁZ\15»\ 1\88\96\98\15é\94=ÅS\ 4ã¬\f\ 2\7f7O%\97\8c*Ø8i
\925\9aÿhðVåT¨GÆ¡\18V%'â[à4sè\97F\ 3ËÏ«M\ 5¾7,¤\1f#\13\94(ò."±³ÿðEê\95 ö\ f\97¼;\93\9c\98ÛRÉ\bãvC¶%7\15\9d\13®q =âR\ 2\ 2ð\e:`\9eü\82z%]âÛ¥\85Âõ7\91®\bh9lõ!êz\86Ó=ËÜ\86L\9c©÷\8eñÏ_\eÏÈ4gU\91"\r¼O\80N"´ÌP÷Áh_ª\9bÇó°\9f\99y\7f>"\10e¿´S\19ë\8aT\87³\98T%MHáJ+Úµ\8bÉhÿö\84y\1fææ\14\82¥yb5Û¸Àr\11i-íLð\1d\84*OWL     þ\ 3RZþ/\86mE~\1e\15ÝEìøLz۵   ÖÉÏ\bÉðvu\9elG.\9c\14\99\83[R\95²\96Ä\f2kp.¯\8d\83\1eäÖê\1a\13Ò;\8aêÛúÌ\83\12\9c\89Ï¢¯}\ 2
+\9f\ 4\1cDlÉóê=V¹ä\94\14\9a²j\97$£Gº\7fÈubÇ(1y\84À\16Ãá\r¾L=\9c<\96=ÖC±UíÑÈZ¬&÷8?Â<l\12\19Ôó\1c\f\eÈ\9aÂ(\1c\92ui°ª\çlÂ|<ߤH;;ÐÚØ\8d4YòÆ'¸|ï2;:±\94+ÕÎyZßßR\14 ç|\18¡\86¹Þ)fj!ôBß\ 5õ\15\8aù*\95\96\1f\1aÜðÌj'vMú\83y\18\b\98°ð!Òå\rº~Õ\8c)$TA!*ÏbéÕÈ\ 2Ë\89¬Q\và¢ÏÒ¿úr\8f\8fx\86qVòÿ\9a*XBè\18+òo\83µ¸×¦\95Ùõ_øpìÛÁ\8c¡{®vß±zÄå\873\ f0>5¿z\90±o&Ü[@Ú\1c\1d\822\ f\1eÌ\90\82F\ f1\1fä\8d\16ó½`>?$%,\13Z'3ß¡W\12\ 4:\95ÁE6þQ \11þè!\94y\91k\88Ýô\v×*\11®\94'åq\ 5VE\92=¡u\8aE|3DVXñÞg»~-c^úÒS4A\rðþê\1dìÖ«ÆY \98\18\9f×}\98ÏåÓbdݯ~\9fSG\8aw{\1cø|Ô\11\11
\81|\89?\1f\16G)\16\99Ö \93\91ôÏ\1e\1a\1c\8c\95V\84hßÛó­\16¼]H7\1di9×¥Av\1as_µ\16¯û\ eÖÏ\88¥ºú\v\ 6<]\8164\ãâ7¯»UEZ½OB<¢¾\ 2=\16ô«cä¶Ynç:~ª\ 4\84;\ eµ=\8eÏßä\aÆØ`\1e\82Ы*\ 4\88¼¼Ä äu\89Åq\94rÑÆq;$\8e¿À*ç)\10\15Ú4¢\92¼oÏ>Ð;sĸ\16Ûï[¾u\ eñ\80bÁÌÒß2º^m\10hæz\8c\989Óå`
+Q鶢\10ëÿÅ\9acàbºÌv¯}PóíXÅÛ\0Û«\86,zük,4\80\95ö»ÌX ¾-zØàI÷\93ä\8bëX¸á\0\12/\9c-í:n0\19¬C·"d\89\86\92ɼ?¿\84D<Ö¼Ñ\ 6i\11/ð7îxª\8eE®â÷Ã\1e}ôì³(\9cÊY8©¹|E\8cäV\16<שV\1eö\1dìüpú kÖÀ\8aåõW;\9fQ¿\18\91Z\b²º\8dó\9c¼éÜ÷Ih{-Û[Ì\89\9bòxǪ̴̃Ýåì\ fDi~U\ 67Ó^Pc\88\e\90\18*\91©\91I~7Å\1fPáÍ8æÙÈ«Ì_L!¤¨ð®£\96AmS\96\85>iVÊ&DØ\ 3E\ 3-^[M¶Sf4\83Bq\ 3\e²Ült\9f¿\a\198YZ[ã\8d\1f¬Îº|\84ó
+xÇk¿\18ÐÕSñÑOI\17ßf\86½#Eç³<\\XÜ\f´\ 3Êm\96FP¾©"­¹\88è:K\81\86ïåbUåÉáþsà\17©ÞËô¸cRjT\9b«u&\8aÑå\b\86lüØtþ\9fM\81\9b\94Áî\rv­CðÏ«ím¬?¥U4B\9d¦Ìx7\ 4\83}Ø}2±Rl¢`í\17\15ã\9fµ\89]'\86\84\9e\94¿º\1a\99w\1d\a\1f»ñ\8e6µl\92\ 4\89r\ 6¹Õ`â·»Z\raôº\ 6\e\18¿BssZ©\1f$ÎP1¢Mù\90\1f^)©Á|¾o\1c\91eXìy\99W\f*\1f\9c\9a\86ù²ä<ö*hÉ8êïÔ\9aÄsòýÞ%m²2ÓU¨}\1e\ 1ÞÑëü¦WCø\93\8f`_ïû\90KBTÃQûIÑú\94\16\89`A©\ 5e3ñ\95wÃË|õéÄêUnn8Ãç#³ñ\ f§Õ]üÓug¶\v\99<\91Ë\93\ 2P/ª\13¿%E\90Q\8d¦\f\90\92\ 4öïÐ?3ÇLöd\84ÎÕh=\8b  \1a\9c\9bt:gs%\7få¥JU­,%þ\18­\9cv_\15(Û:\98\99´Ô>\95ÉJ7\86\13X\17q\154\8düSÐ\940#\82Ý\8c\82[«È"\81\10¦fó\82ÃÂøÃÁex×Ô\14\a¡Ñ`$2\ eSy¶?\15\94\88\98í\v\8b\9aÀ\8c«î3ög\97LåÐ\ e\89ÉXÕEÝÛìX\85ç\99S\9b³]8Û\82\9c­4¾¦'B\9b\1csÌþ\94\92óìõ©\83r\82àlsO\9f\b¸\14\82Ç\1a«`\8dñ\14aWu{ÚLÙ«òo\9e5,  ®B\99ðïæéBÂ<ãN«ë¨k\8cDy·\143;¾$Ô\859\1c#&y\93"®äJaøÌ\91¼Î\16ÿêj\12\98²]\9b\17æ®9\92¼jB/\98eãÔÝAE ¾ö*"\ 6§'³÷V\aËìè$`\83ùf\ fnrì±³\18¸3>\aå 5»o#£H?Ýy½[\82¯æFe\v³\ 2PyÊ\8d\89!\85^\7f\19\9eS¬±peQ[\8f¼ÇÚ¶r\15îú.ý»\1di>\99I\am¿\93_ý³´÷½\93|\84M\83Ï»Áô»\e«Mé?\11¸t\ 2\8cùsXßï.»úÂ]¾áF<à£ÞZAj¦t}`\12°ÌÔ$~\89k\83a   Y®\0»"þhV¬PûßÐ\1c\9a\84caim)\1eDifÎÍ+\vßu\8cÐÉ \ 2Q¥?ä\87&r\9b­·´Â\88\8f\94.\89¶F\84ê\ 5'¦NB7\1dWwé\95\9c!û(½¢UjÎ28ça´¼®\94\1fìlZ¾B·é¹SA\9cF£w褼°\e¹ªå*¿]³\ 1år\ 6\e"q\98.ü13O\9a\8b´N9³\91´\97lL,úÇ\11#J\9ftS\9d\ 3ø@eJ,ýU´µ\1ex}\1f\8e\v¤Y$ÎÂ\1c©\82=ȵú©\1eRA¤\ 5GtTô¿â.\9fPÖj¢Â\95(¾,'ÌU` Ô!e¥é¥¤AÔ>rù\8dTJ\9brj\97}ÑÀ\90Ì\95ĺÝ\Ü7\8cÎñî@÷Ú¯\96\8a\8e\92\0 ÒP´+\v«Ö\84Q\bÍé     q;U5>`3÷»9\e\99ä×\9bæ°Âa-Ér\19\báÛ¯\ 6ô,ñ­ó:I²\88ì ñ×Y\99à3X\85¥j+xÒë\ 2VÜÊ\b^)ïßãǤZ\8e)a\9doÔÜÐj±ú?d\9cÀì¦+ÂE\1dª\ 4únd,\rÊ\85G\80Á¡ñÍUÈû5a<\1aaq=\ f\7fØA\10@íkN\18\10¶À\87þ\11ÙØ\19\80?DÅ\ 4»5ÿ¹U \8b\93\12¶$ÿ\12Ñ\82ug\r6ó¸\ 3\9b£\H\92õpµR\14\ 5|\f:ØáÙ1\ 2cÜ0@)}`éý§¯\ eÎú\ e¤gu4LÓðÌH\135ñCEë\9dÅ"õ\94y\95ðÙÆ{Ù8Z\bvl\14\99"r±_S¯Bë\8a\15ÿ\18Ⱦ2º\ fjÍbÕçæG\82-_É\v\8cü²},ܧË\98Jî(\85K¨R(é<ï\9a\91\GÍê«\90ü úÒ9ÀÐ\1a=£Â>V\87#¾G¾¦_fg\9e±J\r×\87(Ëàw\ f\1dLIåÉ6ʦÖ0¿²]:\18"   \15å\b¯(Q\ e4Ê°r\1f·?Ç;c¼v \93Û`Áf\eÇ&b$\8b\v*¡]\97\ 2Ð7סè¥\vjÍ^0dòâgçú¢\16µSÞݧNßN\f([\ 6\9d!.¿\ 3~\0\14Í1½k+%Ȳ\90\vü\19K+LÂ0qsè\1aæ±\8cÔ°\9f,Àhk3\9c%¶" ÖCw[<X»<®ðî+\ 1ëü{       \7f·\8dÀ\83§Ó.Âîù[Þß\81\ecC\89å\17t/Ô\18\10\9a\9fEê¿\1dÜÅ/¨©¤i\19î_7÷\1e/\81Á\ e8M\8b\ 5t g\85\8bÛãÌ\82ð\ 3\10R\0`\81n\8bÓ\15â.1z9sÃU\95`Á¬¹¡ù\11\17
+Iê\1aÉü1_ÜJ\ 6\8fÊ\8b:N\82\rCźñHd6±ß\8aG¿\86[ä!\ 5µ\8eQ\93áÚ¤>\98\11u:@\83#úÇP5úx/hf\92ð§\81ÙvZf\87\1e\9c\8e\99\1fÃj¦óQösðÓ\1c\86U\96ïr\17O\87EË:½\84$#\eó2îÉ\8farB!úÎz\1a\e\v \8agADí÷\0ïV¡¹Ë\9f\9bÇ#c\e\82\1f|ë\1fÙ^\a7s:\ fU'®ê²Å¢ °Éä\e\94\13\ 32m;:éP\ f\1cµä¶sMºsè@ùGÝñ¨ý4/¨ð\ fd^\13RiÈWä\86}:}\7fîÆ\8f\10\17¾\98ò\fÔDñ\98Öçù\9bÎ\93\b\1e\8c_L\96¼¨É[¸\ 4°\91\92\85*GÃ\80Ý\a\r¯dáöf$À\v¹ê³-×\1e_\rè©h#ïgUá\97GÛ±#Ñ<
+|Ú¿´\91s`ódÑN²\16\83S\84äT«\0\12ÆÝ2\8e[_´ªÕ+êÝ\ f\85\98õ#\9du\81Ø\8dkåc\8fÇ\\15\86\1f|úS~£ºá\14\92\1c\1e!0\bÚ\96G\87\16µÓP\99\8c<\93x¨ê|ôã¤0\91å\82\ 2#¥§U\1e¿W¢\16w\9aÀl\8b&w\80c\òȵ
+]\f`þsÇï".¸e~·o\b{=úq!m\aǯ!\11£-\13 cÿá\1csuîÉ -¡N\ eýÑôÓøØ~qÕ   \82î³}¥\93üà\97wx¹A-\8e~c)TEòÞVï¸V½õ\eÅëE9\8f¶~\ 4 \9d\v gÞt®@\11\99Ñ!ïM AªzìJ\8aÄ\f¤T\88Ðl\19\9etå¦\93.\96´i}Ô÷Àª^´Íe\a¸Á\82\8d\aTs%\rBåȯ\9e<\1f  Ê\89È\81\89;pÕimÂ\17âKÆ"\1eû\83\1a\8f°ýþÌ>Bq|¡´\6\8f\94´mÕõÖþ\ 6\86\1aÁ®×\96ý\Lwæðù"\1eR²´"ß\19:=§7ºY\91©ÖhÏð\ fë©éséÅ\1a\16\1e\9e±Ã^>a$}\17EÝ3±\\1f\8a\8c\ fWK$2U²Ô\88L\82ÆÆ\\11ó\v\97;lpVwë\92=uÞý\ 3Ã^5Ç[\«ÃÌ\156W)ý\a_\97¼$9I\9dРȴ1õkM\bõ©ïyò\9d%¸Ì\ e\9c/-\8dßÙ]ðkQF¹z¢ñªÚEK¢\ e4³ÆV@\ e\1aâÞ\ 3\81\ e\9d\14ñÚ\1e\1a\82 O\87ñoå?\8fÑiØe<ª\11\1f´áË\ 1\ eÏ«\99ÑÂôí     (>áX.¯dZSÐ\1d,Pæ\9b\8a\12¥ïÃÃÉâÙr\9f:1P   µB\9cØ»\8d®Ó\84\7f\11\82û\8f3Nî\94U
+\ 6c#Ùì¾Ö|9F\1eoüÞ®ç\1f1:2/Ë<\80R\94\ 3C^Á±\fݧ"\81\105\98\92bòu\82\9c\19\81°Ê\ 5S^O\fí\ 6\9f\92
+vÒ\=mù\9d7\905M[ûR< D°\17\81u¼VoK\16ûvU\9eÁ)^ûeÿ9\87Þª#¤\841\¥áut      e\89\8fÕ·½½Á:\ 4Cd¨Ë:­ïÝ'mi¬k¢+­\88âQ]_CA\18"\93\13W\85v\15b¿Iþ\9b¼zs\8b\91\84õ\ 1éÃ=S©\84¬\80Ê\15S\9c\eõ)Y\ 1ûÉDÝ!êÜ×ù«`ÆöÁ¤\15A\850g¯e\11gd­VbQùù®=<ò\94#\97\95\b/;íGëO\ fZP^br+Qß\b¸\89\15*\94Ç\11¹\f\91\87Í$\19Ey%;\7fIѤ!\96M\19³\bÝ+Ûð>»\9c
+Xë\07>5-Òâ^HýúÀ\11%x5á>r:Ðx}"Ä\87þGÌ\88ÿ\8eC.í·\a\99Oß5ý©Ëìô\163\9dPC\8eN\86õ\ 3Úi\1aW$\1aî(\9b\ 3¿wÌ¡ºuw\89J\82W°ÇøO\ 6`Oä\9f\8fÒ\15\9c\90ý¼\1f\ 2\rÄ\8a=\9cîåèC9ê¨çÐí
+\92örqFÒ\r;ûh\11àwlDn1\bU\97©e~¾\1f\18\86#\ªÜÒþÕÊ\ 6\8eÿ\99ä½\90ãÝ}Q(¥õúb\9e\9f\81¢r\1f\90¬*\94|BÏ\8ddäÛs¾°iÚ\8cíJ\95\89xwüé\eÜàÍ\8a4\83y¤G¼Ñ½Ù\ e\82ó\84ϵ\84öi\ 1\ 1¶gµ\fß\19Çg\ 5Ys:ÑÝÊ\1a#æp¥mâa9:ÐËÓ3ò@\f  ËxN»ØØ'\111Åâ\99\11\fTo\8büB\87µE\0Zø­5uÝÜ#B\ 5oÙîîü1\87]Øë{Ò¸Óì;ÿ}\9e¼k²$ÚTpSì6t*I·\1eÉæÁ\8dÕnäîrH7\8c¤¥<\96w{s°}GD@4H®ùb\16Yt\9dùcì2I\8a/\13\10\9a\ e·0\8b\92·IôøàÅ-/ÕW \94\ 5ï\84ت0pj¹¯¼oM\10(´õ£ÄiÁ\98Áe\1aIx\9b\ 4®k@ÆyÞ\1c[ÕLÈ\vËíÃ\ 1\86Y«qxÄ!\r<\83'Ñàì¦F\1d{s"¥\83¹\0¡ØÏ\1dNôÊp\1c(\9d\1f\ 4ÉÔÊÚ}Ö\13ô6Ús\92ÒÆÆT\b½âKS\1fôz¿þÄÖR²ðòõÛÑnÕöº?;ÁxñÅßn        {Q\ 6Îi\ f|"\93üÄ\8d\95£L×\ 3\ü¹\12\8eÊ7æû>\89ózÖµ}Ç\87=þ3\11ý\ f³P\1c¾\18¦Dvi¶­«o¡\0ÊZ\9e\05Åíw~¨\eGw¼©Ï*Ü\88¤f \ 4\vB{º¸\89uøK»¥ûf-ë\9a7\0mzâ±ïyÉ\93è\98ý1\1fGÔy¦d3R\92\97\90ìüê3ò%\15\81ßrÓæ\1d\866Kt¹]\ 4­Ö\93u
+^QW3 s\ 1\17Á¾Q\16¤]fõÞ>e\8e\9cð\8b\e8$M\ezn:ÖI!~%¶a\92\84½¶\92Y#\80²ì4â\13©pS¦×\1eS¡þ\1fcÉ7\8b\9d&¯RÛw%\98íD\9b\91ó\17!\94uBRñ~\99/\8a6 ¤:\vÜ\ 1rÂfL\9bù\1a\84\ 1ÝûB4;\14Ù`\94\97t9]\92=Ýü\9fQe\ 5C\90Óvç\ 5\ 2\820ÏCÝ7-\9bÒQÙVÛQ\14\a\80/\ 3mò¾\18\91ÆBXÚ\vK¥ª»¯a\88\ 6\ 6·H½ls~Ùª\84\80\1d9\18\12Á\ 1\9c\1d\ 2\88\9a BKÚ\92\16"\98e<\1c\8b,\81òäÔ1ø F\8d\v\1dê$\9fÔÂn%¦:é\15Ø\82\ 6¹\8c9t­K5 \94:\8a ðÙóó\8f¨?Zç9Ð/åW7\f\vß\ 4µZØ&}\ 4l?Øl©c\84>\lTUÝ÷¨Üè\94Ëïá|nÿ¹1-¢¥i§°,ª|~¥\83P\18«\90s»<W¶~!3ÿû        [*ºJ\9d¬"â~ËóÕ¢\95\92\19áÌD2{\\95Ý^\89ºº\83[¤ÞÌÉ\9eÝ22\9c>7^H;Ü//Í<?\81ãÌpZ$ÁRzëA9\84â|°U¨\92¹$\10ºÄ¼­vpüãïOs^wª:0¦¬3\91\v¸\82¿à\95IÁÅ\ 3¤\1c\19\ 1LËJùNl×¢%9\ 3^#ÜÊd15L\ fF\993\92ìþ£¼VñWxéóÑ\9bø\8d\9a°®X25£qpå-\8aÐòL2\8b7c8:\8fó"Æè\129\ff3µõ@ST!\9b¾î¢B\ 6¯\8fÂ\9a\rsÙ ¾jÉæñ\9e'C\°ù2L\92ÉÆñ\ 1u\82=\83\95éueÍ"ïd\9eùÖ·Ô¡Ôg\11¼-\9f/©NM¤\80ñ;Ë\95\ 2þã{=ÎãE)Ñ[\8eðõö¹v¼ªÇ:\1dO\8e]\825£[\19ô
+_É\92¢Î¿\96ô1¶bzfÑ\92Û\JPMR3H\81°\0§AÆQTS6Z\82?>ÑÙqÁ¿¿_õy\85O\ fª±ü®!\ e\7fÞ\ 1ä\ 3£.ævùðd\98ß\fýô\94±\80\89J#;OCÈ\KþÚ\93¬{éÓÈn:_â²Ã°\ 1'\1eh»k\12)\1e§qxÓ     éF\9a\9dÐb+       °\92\b\ f\85WF2\88¬á½ÏëØ\87½h\9d\fÉûþ5éê\89\92­Ë©ÐMgÉë²1¢û$ø¨äU\10\7f½\85\ e«\1e%
+Æ.I#ìÕ\9f\92aH\99oêöú~u\97\91§No\7f\8d\87\ 3\94Åv\18ç\81\80_ÀÑo½}!h1Ä+\9bUïHüëot?`in;Ï\1e\b\h¬qF¾Âþ\fC   /Í\1c\87q\7f*RÃ.!}Q¯qÕè\82\91öª7÷\1a­SÉî
+¨Ül3pt\1d\92\vË\ e%E4\98
+\e¤ç£,\1eËÀá\ f×÷!ÒÎàäØú#o9>~5ò\1e\8eBÜÚ6µ3})   ÌHÞ¸Á\96\ 6\134\8e1tùÆQ\þ\8f¼\r³GPÌ\rek;¨
+¬'@î¢ÑRD\11µ\14L8\12\83âÇeæ\1fcS;K\9aê;PÎ\87\156\87\82ö#íQÊ®h\9cb\13Þ\ 5Ç        Ï\f¶9Õ@\9b§ö×â¥\11\ 5\8fMRîüݹû î\13Èy;ªQIm¯ª\90(/"¹\9eBÝ'\e÷v¹U\83¾xn\7f'a<£ã\14¼ U\94\ f\872ì-\ f]¥¼ÛõÖ8\9e\97\1a9\16\99\87¥Rì¹#\ eE°+Âl²g¡×~\92&'>Û    Iâ´b_\11ò\81\1f.G~ýüvÐÛèÂUí\85\85\95FÒT\8d»s\ 1\13¢4Q,´õ¾\16ÆIÛñO!lu\98-¥¶{TëÖ\ 26C<üre\16íÕ
\82\ 1"ßS&\14|á°M=©\96æöÁ]ØþxÎú¼d&\14Óý\13Î̬´Þ\14øÅ_\ 3=r»ö\90õúö¼å÷1q\98Þ>CÎàZ s¤¼nb¿Jªdª\9c°i1E\92´\ 4ÐM'×øhãLñ]\97¥v[þû#Y\v\176º3\93O\´Íìý\96â¤\9b\8d\8c»®é\9cä\1c/z\yÉHÇÚg2Eܲ\12
+_Kh96¯>º\85jK5\94\84
+\8bªÆ\92\fn/@0ÿðacv¿\9büÞM{ÚêصùKÇ\17\9a\19\85\1d\86=½³\184â@í3!0+\99'Së\98ï©; \r\81S"T\97ÑÈ\11uWTn\9b«g~\915:pûÆ\87\8aúBmc\1c\86g}7\9d'WI'¢\11B\11\10F\86°\ 1\0Õ\8dí\b?ë@¹æ.|E1*¹9KÑÓó\89ou\1f\a\ 4¤\89\ 5ÿ\f»ª\93\8bù¼f\8b\82U\96¨§¡:,û)\8e§ö\a\95ÙÂ"\85à4Ùâ­èÖ®Bð^©êçCÆÊ«]\97ÏË5qÙ|\913BâóÚ¿$éÓ\15K\82`]´\95$çø?&¨A4©\14¦7»LÌmÆ\84\12\ 6\v\83\8cðøT¨\99±\99\9f     *Ã\ 3Numýy§àLР\9b\12¯\11Yÿ\87?äÿ\ fðÿ\ 4\0\10\f2vt²³1v´Fþ?q¬\87\8bendstream
+endobj
+514 0 obj <<
+/Type /Font
+/Subtype /Type1
+/Encoding 8020 0 R
+/FirstChar 46
+/LastChar 121
+/Widths 8026 0 R
+/BaseFont /ESSCCL+NimbusSanL-Bold
+/FontDescriptor 512 0 R
+>> endobj
+512 0 obj <<
+/Ascent 722
+/CapHeight 722
+/Descent -217
+/FontName /ESSCCL+NimbusSanL-Bold
+/ItalicAngle 0
+/StemV 141
+/XHeight 532
+/FontBBox [-173 -307 1003 949]
+/Flags 4
+/CharSet (/period/zero/one/two/three/four/five/six/seven/eight/nine/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/R/S/T/U/V/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/u/v/w/y)
+/FontFile 513 0 R
+>> endobj
+8026 0 obj
+[278 0 556 556 556 556 556 556 556 556 556 556 0 0 0 0 0 0 0 722 722 722 722 667 611 778 722 278 0 722 611 833 722 778 667 0 722 667 611 722 667 0 0 0 0 0 0 0 0 0 0 556 611 556 611 556 333 611 611 278 0 556 278 889 611 611 611 0 389 556 333 611 556 778 0 556 ]
+endobj
+515 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8027 0 R
+/Kids [506 0 R 517 0 R 521 0 R 669 0 R 817 0 R 914 0 R]
+>> endobj
+971 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8027 0 R
+/Kids [950 0 R 973 0 R 991 0 R 994 0 R 1034 0 R 1080 0 R]
+>> endobj
+1194 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8027 0 R
+/Kids [1136 0 R 1196 0 R 1238 0 R 1275 0 R 1333 0 R 1371 0 R]
+>> endobj
+1486 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8027 0 R
+/Kids [1413 0 R 1488 0 R 1541 0 R 1586 0 R 1637 0 R 1697 0 R]
+>> endobj
+1809 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8027 0 R
+/Kids [1750 0 R 1811 0 R 1861 0 R 1907 0 R 1945 0 R 1992 0 R]
+>> endobj
+2113 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8027 0 R
+/Kids [2052 0 R 2115 0 R 2169 0 R 2221 0 R 2272 0 R 2318 0 R]
+>> endobj
+2417 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8028 0 R
+/Kids [2352 0 R 2419 0 R 2487 0 R 2549 0 R 2605 0 R 2650 0 R]
+>> endobj
+2735 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8028 0 R
+/Kids [2689 0 R 2737 0 R 2786 0 R 2826 0 R 2873 0 R 2911 0 R]
+>> endobj
+3004 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8028 0 R
+/Kids [2960 0 R 3006 0 R 3048 0 R 3089 0 R 3140 0 R 3178 0 R]
+>> endobj
+3275 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8028 0 R
+/Kids [3224 0 R 3277 0 R 3322 0 R 3371 0 R 3410 0 R 3458 0 R]
+>> endobj
+3535 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8028 0 R
+/Kids [3497 0 R 3537 0 R 3582 0 R 3630 0 R 3689 0 R 3763 0 R]
+>> endobj
+3872 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8028 0 R
+/Kids [3821 0 R 3874 0 R 3933 0 R 4007 0 R 4086 0 R 4145 0 R]
+>> endobj
+4275 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8029 0 R
+/Kids [4212 0 R 4277 0 R 4347 0 R 4399 0 R 4464 0 R 4509 0 R]
+>> endobj
+4620 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8029 0 R
+/Kids [4548 0 R 4622 0 R 4679 0 R 4753 0 R 4832 0 R 4890 0 R]
+>> endobj
+5034 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8029 0 R
+/Kids [4962 0 R 5036 0 R 5098 0 R 5172 0 R 5249 0 R 5301 0 R]
+>> endobj
+5410 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8029 0 R
+/Kids [5341 0 R 5412 0 R 5474 0 R 5531 0 R 5605 0 R 5677 0 R]
+>> endobj
+5785 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8029 0 R
+/Kids [5740 0 R 5787 0 R 5857 0 R 5929 0 R 6006 0 R 6062 0 R]
+>> endobj
+6191 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8029 0 R
+/Kids [6134 0 R 6193 0 R 6265 0 R 6301 0 R 6377 0 R 6450 0 R]
+>> endobj
+6550 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8030 0 R
+/Kids [6506 0 R 6552 0 R 6650 0 R 6722 0 R 6792 0 R 6866 0 R]
+>> endobj
+6963 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8030 0 R
+/Kids [6910 0 R 6965 0 R 7009 0 R 7052 0 R 7111 0 R 7160 0 R]
+>> endobj
+7274 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8030 0 R
+/Kids [7225 0 R 7276 0 R 7335 0 R 7388 0 R 7444 0 R 7501 0 R]
+>> endobj
+7615 0 obj <<
+/Type /Pages
+/Count 6
+/Parent 8030 0 R
+/Kids [7562 0 R 7617 0 R 7675 0 R 7740 0 R 7788 0 R 7837 0 R]
+>> endobj
+7932 0 obj <<
+/Type /Pages
+/Count 3
+/Parent 8030 0 R
+/Kids [7884 0 R 7934 0 R 7974 0 R]
+>> endobj
+8027 0 obj <<
+/Type /Pages
+/Count 36
+/Parent 8031 0 R
+/Kids [515 0 R 971 0 R 1194 0 R 1486 0 R 1809 0 R 2113 0 R]
+>> endobj
+8028 0 obj <<
+/Type /Pages
+/Count 36
+/Parent 8031 0 R
+/Kids [2417 0 R 2735 0 R 3004 0 R 3275 0 R 3535 0 R 3872 0 R]
+>> endobj
+8029 0 obj <<
+/Type /Pages
+/Count 36
+/Parent 8031 0 R
+/Kids [4275 0 R 4620 0 R 5034 0 R 5410 0 R 5785 0 R 6191 0 R]
+>> endobj
+8030 0 obj <<
+/Type /Pages
+/Count 27
+/Parent 8031 0 R
+/Kids [6550 0 R 6963 0 R 7274 0 R 7615 0 R 7932 0 R]
+>> endobj
+8031 0 obj <<
+/Type /Pages
+/Count 135
+/Kids [8027 0 R 8028 0 R 8029 0 R 8030 0 R]
+>> endobj
+8032 0 obj <<
+/Type /Outlines
+/First 3 0 R
+/Last 31 0 R
+/Count 4
+>> endobj
+503 0 obj <<
+/Title 504 0 R
+/A 501 0 R
+/Parent 31 0 R
+/Prev 499 0 R
+>> endobj
+499 0 obj <<
+/Title 500 0 R
+/A 497 0 R
+/Parent 31 0 R
+/Prev 495 0 R
+/Next 503 0 R
+>> endobj
+495 0 obj <<
+/Title 496 0 R
+/A 493 0 R
+/Parent 31 0 R
+/Prev 491 0 R
+/Next 499 0 R
+>> endobj
+491 0 obj <<
+/Title 492 0 R
+/A 489 0 R
+/Parent 31 0 R
+/Prev 487 0 R
+/Next 495 0 R
+>> endobj
+487 0 obj <<
+/Title 488 0 R
+/A 485 0 R
+/Parent 31 0 R
+/Prev 483 0 R
+/Next 491 0 R
+>> endobj
+483 0 obj <<
+/Title 484 0 R
+/A 481 0 R
+/Parent 31 0 R
+/Prev 479 0 R
+/Next 487 0 R
+>> endobj
+479 0 obj <<
+/Title 480 0 R
+/A 477 0 R
+/Parent 31 0 R
+/Prev 475 0 R
+/Next 483 0 R
+>> endobj
+475 0 obj <<
+/Title 476 0 R
+/A 473 0 R
+/Parent 31 0 R
+/Prev 471 0 R
+/Next 479 0 R
+>> endobj
+471 0 obj <<
+/Title 472 0 R
+/A 469 0 R
+/Parent 31 0 R
+/Prev 467 0 R
+/Next 475 0 R
+>> endobj
+467 0 obj <<
+/Title 468 0 R
+/A 465 0 R
+/Parent 31 0 R
+/Prev 463 0 R
+/Next 471 0 R
+>> endobj
+463 0 obj <<
+/Title 464 0 R
+/A 461 0 R
+/Parent 31 0 R
+/Prev 459 0 R
+/Next 467 0 R
+>> endobj
+459 0 obj <<
+/Title 460 0 R
+/A 457 0 R
+/Parent 31 0 R
+/Prev 455 0 R
+/Next 463 0 R
+>> endobj
+455 0 obj <<
+/Title 456 0 R
+/A 453 0 R
+/Parent 31 0 R
+/Prev 451 0 R
+/Next 459 0 R
+>> endobj
+451 0 obj <<
+/Title 452 0 R
+/A 449 0 R
+/Parent 31 0 R
+/Prev 447 0 R
+/Next 455 0 R
+>> endobj
+447 0 obj <<
+/Title 448 0 R
+/A 445 0 R
+/Parent 31 0 R
+/Prev 443 0 R
+/Next 451 0 R
+>> endobj
+443 0 obj <<
+/Title 444 0 R
+/A 441 0 R
+/Parent 31 0 R
+/Prev 439 0 R
+/Next 447 0 R
+>> endobj
+439 0 obj <<
+/Title 440 0 R
+/A 437 0 R
+/Parent 31 0 R
+/Prev 435 0 R
+/Next 443 0 R
+>> endobj
+435 0 obj <<
+/Title 436 0 R
+/A 433 0 R
+/Parent 31 0 R
+/Prev 431 0 R
+/Next 439 0 R
+>> endobj
+431 0 obj <<
+/Title 432 0 R
+/A 429 0 R
+/Parent 31 0 R
+/Prev 427 0 R
+/Next 435 0 R
+>> endobj
+427 0 obj <<
+/Title 428 0 R
+/A 425 0 R
+/Parent 31 0 R
+/Prev 423 0 R
+/Next 431 0 R
+>> endobj
+423 0 obj <<
+/Title 424 0 R
+/A 421 0 R
+/Parent 31 0 R
+/Prev 419 0 R
+/Next 427 0 R
+>> endobj
+419 0 obj <<
+/Title 420 0 R
+/A 417 0 R
+/Parent 31 0 R
+/Prev 415 0 R
+/Next 423 0 R
+>> endobj
+415 0 obj <<
+/Title 416 0 R
+/A 413 0 R
+/Parent 31 0 R
+/Prev 411 0 R
+/Next 419 0 R
+>> endobj
+411 0 obj <<
+/Title 412 0 R
+/A 409 0 R
+/Parent 31 0 R
+/Prev 407 0 R
+/Next 415 0 R
+>> endobj
+407 0 obj <<
+/Title 408 0 R
+/A 405 0 R
+/Parent 31 0 R
+/Prev 403 0 R
+/Next 411 0 R
+>> endobj
+403 0 obj <<
+/Title 404 0 R
+/A 401 0 R
+/Parent 31 0 R
+/Prev 399 0 R
+/Next 407 0 R
+>> endobj
+399 0 obj <<
+/Title 400 0 R
+/A 397 0 R
+/Parent 31 0 R
+/Prev 395 0 R
+/Next 403 0 R
+>> endobj
+395 0 obj <<
+/Title 396 0 R
+/A 393 0 R
+/Parent 31 0 R
+/Prev 391 0 R
+/Next 399 0 R
+>> endobj
+391 0 obj <<
+/Title 392 0 R
+/A 389 0 R
+/Parent 31 0 R
+/Prev 387 0 R
+/Next 395 0 R
+>> endobj
+387 0 obj <<
+/Title 388 0 R
+/A 385 0 R
+/Parent 31 0 R
+/Prev 383 0 R
+/Next 391 0 R
+>> endobj
+383 0 obj <<
+/Title 384 0 R
+/A 381 0 R
+/Parent 31 0 R
+/Prev 379 0 R
+/Next 387 0 R
+>> endobj
+379 0 obj <<
+/Title 380 0 R
+/A 377 0 R
+/Parent 31 0 R
+/Prev 375 0 R
+/Next 383 0 R
+>> endobj
+375 0 obj <<
+/Title 376 0 R
+/A 373 0 R
+/Parent 31 0 R
+/Prev 371 0 R
+/Next 379 0 R
+>> endobj
+371 0 obj <<
+/Title 372 0 R
+/A 369 0 R
+/Parent 31 0 R
+/Prev 367 0 R
+/Next 375 0 R
+>> endobj
+367 0 obj <<
+/Title 368 0 R
+/A 365 0 R
+/Parent 31 0 R
+/Prev 363 0 R
+/Next 371 0 R
+>> endobj
+363 0 obj <<
+/Title 364 0 R
+/A 361 0 R
+/Parent 31 0 R
+/Prev 359 0 R
+/Next 367 0 R
+>> endobj
+359 0 obj <<
+/Title 360 0 R
+/A 357 0 R
+/Parent 31 0 R
+/Prev 355 0 R
+/Next 363 0 R
+>> endobj
+355 0 obj <<
+/Title 356 0 R
+/A 353 0 R
+/Parent 31 0 R
+/Prev 351 0 R
+/Next 359 0 R
+>> endobj
+351 0 obj <<
+/Title 352 0 R
+/A 349 0 R
+/Parent 31 0 R
+/Prev 347 0 R
+/Next 355 0 R
+>> endobj
+347 0 obj <<
+/Title 348 0 R
+/A 345 0 R
+/Parent 31 0 R
+/Prev 343 0 R
+/Next 351 0 R
+>> endobj
+343 0 obj <<
+/Title 344 0 R
+/A 341 0 R
+/Parent 31 0 R
+/Prev 339 0 R
+/Next 347 0 R
+>> endobj
+339 0 obj <<
+/Title 340 0 R
+/A 337 0 R
+/Parent 31 0 R
+/Prev 335 0 R
+/Next 343 0 R
+>> endobj
+335 0 obj <<
+/Title 336 0 R
+/A 333 0 R
+/Parent 31 0 R
+/Prev 331 0 R
+/Next 339 0 R
+>> endobj
+331 0 obj <<
+/Title 332 0 R
+/A 329 0 R
+/Parent 31 0 R
+/Prev 327 0 R
+/Next 335 0 R
+>> endobj
+327 0 obj <<
+/Title 328 0 R
+/A 325 0 R
+/Parent 31 0 R
+/Prev 323 0 R
+/Next 331 0 R
+>> endobj
+323 0 obj <<
+/Title 324 0 R
+/A 321 0 R
+/Parent 31 0 R
+/Prev 319 0 R
+/Next 327 0 R
+>> endobj
+319 0 obj <<
+/Title 320 0 R
+/A 317 0 R
+/Parent 31 0 R
+/Prev 315 0 R
+/Next 323 0 R
+>> endobj
+315 0 obj <<
+/Title 316 0 R
+/A 313 0 R
+/Parent 31 0 R
+/Prev 311 0 R
+/Next 319 0 R
+>> endobj
+311 0 obj <<
+/Title 312 0 R
+/A 309 0 R
+/Parent 31 0 R
+/Prev 307 0 R
+/Next 315 0 R
+>> endobj
+307 0 obj <<
+/Title 308 0 R
+/A 305 0 R
+/Parent 31 0 R
+/Prev 303 0 R
+/Next 311 0 R
+>> endobj
+303 0 obj <<
+/Title 304 0 R
+/A 301 0 R
+/Parent 31 0 R
+/Prev 299 0 R
+/Next 307 0 R
+>> endobj
+299 0 obj <<
+/Title 300 0 R
+/A 297 0 R
+/Parent 31 0 R
+/Prev 295 0 R
+/Next 303 0 R
+>> endobj
+295 0 obj <<
+/Title 296 0 R
+/A 293 0 R
+/Parent 31 0 R
+/Prev 291 0 R
+/Next 299 0 R
+>> endobj
+291 0 obj <<
+/Title 292 0 R
+/A 289 0 R
+/Parent 31 0 R
+/Prev 287 0 R
+/Next 295 0 R
+>> endobj
+287 0 obj <<
+/Title 288 0 R
+/A 285 0 R
+/Parent 31 0 R
+/Prev 283 0 R
+/Next 291 0 R
+>> endobj
+283 0 obj <<
+/Title 284 0 R
+/A 281 0 R
+/Parent 31 0 R
+/Prev 279 0 R
+/Next 287 0 R
+>> endobj
+279 0 obj <<
+/Title 280 0 R
+/A 277 0 R
+/Parent 31 0 R
+/Prev 275 0 R
+/Next 283 0 R
+>> endobj
+275 0 obj <<
+/Title 276 0 R
+/A 273 0 R
+/Parent 31 0 R
+/Prev 271 0 R
+/Next 279 0 R
+>> endobj
+271 0 obj <<
+/Title 272 0 R
+/A 269 0 R
+/Parent 31 0 R
+/Prev 267 0 R
+/Next 275 0 R
+>> endobj
+267 0 obj <<
+/Title 268 0 R
+/A 265 0 R
+/Parent 31 0 R
+/Prev 263 0 R
+/Next 271 0 R
+>> endobj
+263 0 obj <<
+/Title 264 0 R
+/A 261 0 R
+/Parent 31 0 R
+/Prev 259 0 R
+/Next 267 0 R
+>> endobj
+259 0 obj <<
+/Title 260 0 R
+/A 257 0 R
+/Parent 31 0 R
+/Prev 255 0 R
+/Next 263 0 R
+>> endobj
+255 0 obj <<
+/Title 256 0 R
+/A 253 0 R
+/Parent 31 0 R
+/Prev 251 0 R
+/Next 259 0 R
+>> endobj
+251 0 obj <<
+/Title 252 0 R
+/A 249 0 R
+/Parent 31 0 R
+/Prev 247 0 R
+/Next 255 0 R
+>> endobj
+247 0 obj <<
+/Title 248 0 R
+/A 245 0 R
+/Parent 31 0 R
+/Prev 243 0 R
+/Next 251 0 R
+>> endobj
+243 0 obj <<
+/Title 244 0 R
+/A 241 0 R
+/Parent 31 0 R
+/Prev 239 0 R
+/Next 247 0 R
+>> endobj
+239 0 obj <<
+/Title 240 0 R
+/A 237 0 R
+/Parent 31 0 R
+/Prev 235 0 R
+/Next 243 0 R
+>> endobj
+235 0 obj <<
+/Title 236 0 R
+/A 233 0 R
+/Parent 31 0 R
+/Prev 231 0 R
+/Next 239 0 R
+>> endobj
+231 0 obj <<
+/Title 232 0 R
+/A 229 0 R
+/Parent 31 0 R
+/Prev 227 0 R
+/Next 235 0 R
+>> endobj
+227 0 obj <<
+/Title 228 0 R
+/A 225 0 R
+/Parent 31 0 R
+/Prev 223 0 R
+/Next 231 0 R
+>> endobj
+223 0 obj <<
+/Title 224 0 R
+/A 221 0 R
+/Parent 31 0 R
+/Prev 219 0 R
+/Next 227 0 R
+>> endobj
+219 0 obj <<
+/Title 220 0 R
+/A 217 0 R
+/Parent 31 0 R
+/Prev 215 0 R
+/Next 223 0 R
+>> endobj
+215 0 obj <<
+/Title 216 0 R
+/A 213 0 R
+/Parent 31 0 R
+/Prev 211 0 R
+/Next 219 0 R
+>> endobj
+211 0 obj <<
+/Title 212 0 R
+/A 209 0 R
+/Parent 31 0 R
+/Prev 207 0 R
+/Next 215 0 R
+>> endobj
+207 0 obj <<
+/Title 208 0 R
+/A 205 0 R
+/Parent 31 0 R
+/Prev 203 0 R
+/Next 211 0 R
+>> endobj
+203 0 obj <<
+/Title 204 0 R
+/A 201 0 R
+/Parent 31 0 R
+/Prev 199 0 R
+/Next 207 0 R
+>> endobj
+199 0 obj <<
+/Title 200 0 R
+/A 197 0 R
+/Parent 31 0 R
+/Prev 195 0 R
+/Next 203 0 R
+>> endobj
+195 0 obj <<
+/Title 196 0 R
+/A 193 0 R
+/Parent 31 0 R
+/Prev 191 0 R
+/Next 199 0 R
+>> endobj
+191 0 obj <<
+/Title 192 0 R
+/A 189 0 R
+/Parent 31 0 R
+/Prev 187 0 R
+/Next 195 0 R
+>> endobj
+187 0 obj <<
+/Title 188 0 R
+/A 185 0 R
+/Parent 31 0 R
+/Prev 183 0 R
+/Next 191 0 R
+>> endobj
+183 0 obj <<
+/Title 184 0 R
+/A 181 0 R
+/Parent 31 0 R
+/Prev 179 0 R
+/Next 187 0 R
+>> endobj
+179 0 obj <<
+/Title 180 0 R
+/A 177 0 R
+/Parent 31 0 R
+/Prev 175 0 R
+/Next 183 0 R
+>> endobj
+175 0 obj <<
+/Title 176 0 R
+/A 173 0 R
+/Parent 31 0 R
+/Prev 171 0 R
+/Next 179 0 R
+>> endobj
+171 0 obj <<
+/Title 172 0 R
+/A 169 0 R
+/Parent 31 0 R
+/Prev 167 0 R
+/Next 175 0 R
+>> endobj
+167 0 obj <<
+/Title 168 0 R
+/A 165 0 R
+/Parent 31 0 R
+/Prev 163 0 R
+/Next 171 0 R
+>> endobj
+163 0 obj <<
+/Title 164 0 R
+/A 161 0 R
+/Parent 31 0 R
+/Prev 159 0 R
+/Next 167 0 R
+>> endobj
+159 0 obj <<
+/Title 160 0 R
+/A 157 0 R
+/Parent 31 0 R
+/Prev 155 0 R
+/Next 163 0 R
+>> endobj
+155 0 obj <<
+/Title 156 0 R
+/A 153 0 R
+/Parent 31 0 R
+/Prev 151 0 R
+/Next 159 0 R
+>> endobj
+151 0 obj <<
+/Title 152 0 R
+/A 149 0 R
+/Parent 31 0 R
+/Prev 147 0 R
+/Next 155 0 R
+>> endobj
+147 0 obj <<
+/Title 148 0 R
+/A 145 0 R
+/Parent 31 0 R
+/Prev 143 0 R
+/Next 151 0 R
+>> endobj
+143 0 obj <<
+/Title 144 0 R
+/A 141 0 R
+/Parent 31 0 R
+/Prev 139 0 R
+/Next 147 0 R
+>> endobj
+139 0 obj <<
+/Title 140 0 R
+/A 137 0 R
+/Parent 31 0 R
+/Prev 135 0 R
+/Next 143 0 R
+>> endobj
+135 0 obj <<
+/Title 136 0 R
+/A 133 0 R
+/Parent 31 0 R
+/Prev 131 0 R
+/Next 139 0 R
+>> endobj
+131 0 obj <<
+/Title 132 0 R
+/A 129 0 R
+/Parent 31 0 R
+/Prev 127 0 R
+/Next 135 0 R
+>> endobj
+127 0 obj <<
+/Title 128 0 R
+/A 125 0 R
+/Parent 31 0 R
+/Prev 123 0 R
+/Next 131 0 R
+>> endobj
+123 0 obj <<
+/Title 124 0 R
+/A 121 0 R
+/Parent 31 0 R
+/Prev 119 0 R
+/Next 127 0 R
+>> endobj
+119 0 obj <<
+/Title 120 0 R
+/A 117 0 R
+/Parent 31 0 R
+/Prev 115 0 R
+/Next 123 0 R
+>> endobj
+115 0 obj <<
+/Title 116 0 R
+/A 113 0 R
+/Parent 31 0 R
+/Prev 111 0 R
+/Next 119 0 R
+>> endobj
+111 0 obj <<
+/Title 112 0 R
+/A 109 0 R
+/Parent 31 0 R
+/Prev 107 0 R
+/Next 115 0 R
+>> endobj
+107 0 obj <<
+/Title 108 0 R
+/A 105 0 R
+/Parent 31 0 R
+/Prev 103 0 R
+/Next 111 0 R
+>> endobj
+103 0 obj <<
+/Title 104 0 R
+/A 101 0 R
+/Parent 31 0 R
+/Prev 99 0 R
+/Next 107 0 R
+>> endobj
+99 0 obj <<
+/Title 100 0 R
+/A 97 0 R
+/Parent 31 0 R
+/Prev 95 0 R
+/Next 103 0 R
+>> endobj
+95 0 obj <<
+/Title 96 0 R
+/A 93 0 R
+/Parent 31 0 R
+/Prev 91 0 R
+/Next 99 0 R
+>> endobj
+91 0 obj <<
+/Title 92 0 R
+/A 89 0 R
+/Parent 31 0 R
+/Prev 87 0 R
+/Next 95 0 R
+>> endobj
+87 0 obj <<
+/Title 88 0 R
+/A 85 0 R
+/Parent 31 0 R
+/Prev 83 0 R
+/Next 91 0 R
+>> endobj
+83 0 obj <<
+/Title 84 0 R
+/A 81 0 R
+/Parent 31 0 R
+/Prev 79 0 R
+/Next 87 0 R
+>> endobj
+79 0 obj <<
+/Title 80 0 R
+/A 77 0 R
+/Parent 31 0 R
+/Prev 75 0 R
+/Next 83 0 R
+>> endobj
+75 0 obj <<
+/Title 76 0 R
+/A 73 0 R
+/Parent 31 0 R
+/Prev 71 0 R
+/Next 79 0 R
+>> endobj
+71 0 obj <<
+/Title 72 0 R
+/A 69 0 R
+/Parent 31 0 R
+/Prev 67 0 R
+/Next 75 0 R
+>> endobj
+67 0 obj <<
+/Title 68 0 R
+/A 65 0 R
+/Parent 31 0 R
+/Prev 63 0 R
+/Next 71 0 R
+>> endobj
+63 0 obj <<
+/Title 64 0 R
+/A 61 0 R
+/Parent 31 0 R
+/Prev 59 0 R
+/Next 67 0 R
+>> endobj
+59 0 obj <<
+/Title 60 0 R
+/A 57 0 R
+/Parent 31 0 R
+/Prev 55 0 R
+/Next 63 0 R
+>> endobj
+55 0 obj <<
+/Title 56 0 R
+/A 53 0 R
+/Parent 31 0 R
+/Prev 51 0 R
+/Next 59 0 R
+>> endobj
+51 0 obj <<
+/Title 52 0 R
+/A 49 0 R
+/Parent 31 0 R
+/Prev 47 0 R
+/Next 55 0 R
+>> endobj
+47 0 obj <<
+/Title 48 0 R
+/A 45 0 R
+/Parent 31 0 R
+/Prev 43 0 R
+/Next 51 0 R
+>> endobj
+43 0 obj <<
+/Title 44 0 R
+/A 41 0 R
+/Parent 31 0 R
+/Prev 39 0 R
+/Next 47 0 R
+>> endobj
+39 0 obj <<
+/Title 40 0 R
+/A 37 0 R
+/Parent 31 0 R
+/Prev 35 0 R
+/Next 43 0 R
+>> endobj
+35 0 obj <<
+/Title 36 0 R
+/A 33 0 R
+/Parent 31 0 R
+/Next 39 0 R
+>> endobj
+31 0 obj <<
+/Title 32 0 R
+/A 29 0 R
+/Parent 8032 0 R
+/Prev 11 0 R
+/First 35 0 R
+/Last 503 0 R
+/Count -118
+>> endobj
+27 0 obj <<
+/Title 28 0 R
+/A 25 0 R
+/Parent 11 0 R
+/Prev 23 0 R
+>> endobj
+23 0 obj <<
+/Title 24 0 R
+/A 21 0 R
+/Parent 11 0 R
+/Prev 19 0 R
+/Next 27 0 R
+>> endobj
+19 0 obj <<
+/Title 20 0 R
+/A 17 0 R
+/Parent 11 0 R
+/Prev 15 0 R
+/Next 23 0 R
+>> endobj
+15 0 obj <<
+/Title 16 0 R
+/A 13 0 R
+/Parent 11 0 R
+/Next 19 0 R
+>> endobj
+11 0 obj <<
+/Title 12 0 R
+/A 9 0 R
+/Parent 8032 0 R
+/Prev 7 0 R
+/Next 31 0 R
+/First 15 0 R
+/Last 27 0 R
+/Count -4
+>> endobj
+7 0 obj <<
+/Title 8 0 R
+/A 5 0 R
+/Parent 8032 0 R
+/Prev 3 0 R
+/Next 11 0 R
+>> endobj
+3 0 obj <<
+/Title 4 0 R
+/A 1 0 R
+/Parent 8032 0 R
+/Next 7 0 R
+>> endobj
+8033 0 obj <<
+/Names [(0:0) 511 0 R (0:100) 986 0 R (0:1000) 1915 0 R (0:1001) 1916 0 R (0:1002) 1917 0 R (0:1003) 1918 0 R (0:1004) 1919 0 R (0:1005) 1920 0 R (0:1006) 1921 0 R (0:1007) 1922 0 R (0:1008) 1923 0 R (0:1009) 1924 0 R (0:101) 987 0 R (0:1010) 1925 0 R (0:1011) 1926 0 R (0:1012) 1927 0 R (0:1013) 1928 0 R (0:1014) 1929 0 R (0:1015) 1930 0 R (0:1016) 1931 0 R (0:1017) 1932 0 R (0:1018) 1933 0 R (0:1019) 1934 0 R (0:102) 988 0 R (0:1020) 1935 0 R (0:1023) 1936 0 R (0:1024) 1937 0 R (0:1025) 1938 0 R (0:1026) 1939 0 R (0:1027) 1940 0 R (0:1028) 1941 0 R (0:1029) 1942 0 R (0:103) 989 0 R (0:1030) 1943 0 R (0:1031) 1948 0 R (0:1032) 1949 0 R (0:1033) 1950 0 R (0:1034) 1951 0 R (0:1035) 1952 0 R (0:1036) 1953 0 R (0:1037) 1954 0 R (0:1038) 1955 0 R (0:1039) 1956 0 R (0:1040) 1957 0 R (0:1041) 1958 0 R (0:1042) 1959 0 R (0:1043) 1960 0 R (0:1044) 1961 0 R (0:1045) 1962 0 R (0:1046) 1963 0 R (0:1047) 1964 0 R (0:1048) 1965 0 R (0:1049) 1966 0 R (0:1050) 1967 0 R (0:1051) 1968 0 R (0:1052) 1969 0 R (0:1053) 1970 0 R (0:1054) 1971 0 R (0:1055) 1972 0 R (0:1056) 1973 0 R (0:1057) 1974 0 R (0:1058) 1975 0 R (0:1059) 1976 0 R (0:106) 996 0 R (0:1060) 1977 0 R (0:1061) 1978 0 R (0:1062) 1979 0 R (0:1065) 1980 0 R (0:1066) 1981 0 R (0:1067) 1982 0 R (0:1068) 1983 0 R (0:1069) 1984 0 R (0:1070) 1985 0 R (0:1071) 1986 0 R (0:1072) 1987 0 R (0:1073) 1988 0 R (0:1074) 1989 0 R (0:1075) 1990 0 R (0:1076) 1995 0 R (0:1077) 1996 0 R (0:1078) 1997 0 R (0:1079) 1998 0 R (0:1080) 1999 0 R (0:1081) 2000 0 R (0:1082) 2001 0 R (0:1083) 2002 0 R (0:1084) 2003 0 R (0:1085) 2004 0 R (0:1086) 2005 0 R (0:1087) 2006 0 R (0:1088) 2007 0 R (0:1089) 2008 0 R (0:109) 997 0 R (0:1090) 2009 0 R (0:1091) 2010 0 R (0:1092) 2011 0 R (0:1093) 2012 0 R (0:1094) 2013 0 R (0:1095) 2014 0 R (0:1096) 2015 0 R (0:1097) 2016 0 R (0:1098) 2017 0 R (0:1099) 2018 0 R (0:110) 998 0 R (0:1100) 2019 0 R (0:1101) 2020 0 R (0:1102) 2021 0 R (0:1103) 2022 0 R (0:1104) 2023 0 R (0:1105) 2024 0 R (0:1106) 2025 0 R (0:1107) 2026 0 R (0:1108) 2027 0 R (0:1109) 2028 0 R (0:111) 999 0 R (0:1110) 2029 0 R (0:1111) 2030 0 R (0:1112) 2031 0 R (0:1113) 2032 0 R (0:1114) 2033 0 R (0:1115) 2034 0 R (0:1116) 2035 0 R (0:1117) 2036 0 R (0:1118) 2037 0 R (0:1119) 2038 0 R (0:112) 1000 0 R (0:1120) 2039 0 R (0:1121) 2040 0 R (0:1124) 2041 0 R (0:1125) 2042 0 R (0:1126) 2043 0 R (0:1127) 2044 0 R (0:1128) 2045 0 R (0:1129) 2046 0 R (0:113) 1001 0 R (0:1130) 2047 0 R (0:1131) 2048 0 R (0:1132) 2049 0 R (0:1133) 2050 0 R (0:1134) 2056 0 R (0:1135) 2057 0 R (0:1136) 2058 0 R (0:1137) 2059 0 R (0:1138) 2060 0 R (0:1139) 2061 0 R (0:114) 1002 0 R (0:1140) 2062 0 R (0:1141) 2063 0 R (0:1142) 2064 0 R (0:1143) 2065 0 R (0:1144) 2066 0 R (0:1145) 2067 0 R (0:1146) 2068 0 R (0:1147) 2069 0 R (0:1148) 2070 0 R (0:1149) 2071 0 R (0:115) 1003 0 R (0:1150) 2072 0 R (0:1151) 2073 0 R (0:1152) 2074 0 R (0:1153) 2075 0 R (0:1154) 2076 0 R (0:1155) 2077 0 R (0:1156) 2078 0 R (0:1157) 2079 0 R (0:1158) 2080 0 R (0:1159) 2081 0 R (0:116) 1004 0 R (0:1160) 2082 0 R (0:1161) 2083 0 R (0:1162) 2084 0 R (0:1163) 2085 0 R (0:1164) 2086 0 R (0:1165) 2087 0 R (0:1166) 2088 0 R (0:1167) 2089 0 R (0:1168) 2090 0 R (0:1169) 2091 0 R (0:117) 1005 0 R (0:1170) 2092 0 R (0:1171) 2093 0 R (0:1172) 2094 0 R (0:1173) 2095 0 R (0:1174) 2096 0 R (0:1175) 2097 0 R (0:1176) 2098 0 R (0:1177) 2099 0 R (0:1178) 2100 0 R (0:1179) 2101 0 R (0:118) 1006 0 R (0:1180) 2102 0 R (0:1183) 2103 0 R (0:1184) 2104 0 R (0:1185) 2105 0 R (0:1186) 2106 0 R (0:1187) 2107 0 R (0:1188) 2108 0 R (0:1189) 2109 0 R (0:119) 1007 0 R (0:1190) 2110 0 R (0:1191) 2111 0 R (0:1192) 2112 0 R (0:1193) 2119 0 R (0:1194) 2055 0 R (0:1195) 2120 0 R (0:1196) 2121 0 R (0:1197) 2122 0 R (0:1198) 2123 0 R (0:1199) 2124 0 R (0:120) 1008 0 R (0:1200) 2125 0 R (0:1201) 2126 0 R (0:1202) 2127 0 R (0:1203) 2128 0 R (0:1204) 2129 0 R (0:1205) 2130 0 R (0:1206) 2131 0 R (0:1207) 2132 0 R (0:1208) 2133 0 R (0:1209) 2134 0 R (0:121) 1009 0 R (0:1210) 2135 0 R (0:1211) 2136 0 R (0:1212) 2137 0 R (0:1213) 2138 0 R (0:1214) 2139 0 R (0:1215) 2140 0 R (0:1216) 2141 0 R (0:1217) 2142 0 R (0:1218) 2143 0 R (0:1219) 2144 0 R (0:122) 1010 0 R (0:1220) 2145 0 R (0:1221) 2146 0 R (0:1222) 2147 0 R (0:1223) 2148 0 R (0:1224) 2149 0 R (0:1225) 2150 0 R (0:1226) 2151 0 R (0:1227) 2152 0 R (0:1228) 2153 0 R (0:1229) 2154 0 R (0:123) 1011 0 R (0:1230) 2155 0 R (0:1231) 2156 0 R (0:1232) 2157 0 R (0:1233) 2158 0 R (0:1236) 2159 0 R (0:1237) 2160 0 R (0:1238) 2161 0 R (0:1239) 2162 0 R (0:124) 1012 0 R (0:1240) 2163 0 R (0:1241) 2164 0 R (0:1242) 2165 0 R (0:1243) 2166 0 R (0:1244) 2167 0 R (0:1245) 2118 0 R (0:1246) 2172 0 R (0:1247) 2173 0 R (0:1248) 2174 0 R (0:1249) 2175 0 R (0:125) 1013 0 R (0:1250) 2176 0 R (0:1251) 2177 0 R (0:1252) 2178 0 R (0:1253) 2179 0 R (0:1254) 2180 0 R (0:1255) 2181 0 R (0:1256) 2182 0 R (0:1257) 2183 0 R (0:1258) 2184 0 R (0:1259) 2185 0 R (0:126) 1014 0 R (0:1260) 2186 0 R (0:1261) 2187 0 R (0:1262) 2188 0 R (0:1263) 2189 0 R (0:1264) 2190 0 R (0:1265) 2191 0 R (0:1266) 2192 0 R (0:1267) 2193 0 R (0:1268) 2194 0 R (0:1269) 2195 0 R (0:127) 1015 0 R (0:1270) 2196 0 R (0:1271) 2197 0 R (0:1274) 2198 0 R (0:1275) 2199 0 R (0:1276) 2200 0 R (0:1277) 2201 0 R (0:1278) 2202 0 R (0:1279) 2203 0 R (0:128) 1016 0 R (0:1280) 2204 0 R (0:1281) 2205 0 R (0:1282) 2206 0 R (0:1283) 2207 0 R (0:1284) 2208 0 R (0:1285) 2209 0 R (0:1286) 2210 0 R (0:1287) 2211 0 R (0:1288) 2212 0 R (0:1289) 2213 0 R (0:129) 1017 0 R (0:1290) 2214 0 R (0:1291) 2215 0 R (0:1292) 2216 0 R (0:1293) 2217 0 R (0:1294) 2218 0 R (0:1295) 2219 0 R (0:1296) 2224 0 R (0:1297) 2225 0 R (0:1298) 2226 0 R (0:1299) 2227 0 R (0:13) 922 0 R (0:130) 1018 0 R (0:1302) 2228 0 R (0:1303) 2229 0 R (0:1304) 2230 0 R (0:1305) 2231 0 R (0:1306) 2232 0 R (0:1307) 2233 0 R (0:1308) 2234 0 R (0:1309) 2235 0 R (0:131) 1019 0 R (0:1310) 2236 0 R (0:1311) 2237 0 R (0:1312) 2238 0 R (0:1313) 2239 0 R (0:1314) 2240 0 R (0:1315) 2241 0 R (0:1316) 2242 0 R (0:1317) 2243 0 R (0:1318) 2244 0 R (0:1319) 2245 0 R (0:132) 1020 0 R (0:1320) 2246 0 R (0:1321) 2247 0 R (0:1322) 2248 0 R (0:1323) 2249 0 R (0:1324) 2250 0 R (0:1325) 2251 0 R (0:1326) 2252 0 R (0:1327) 2253 0 R (0:1328) 2254 0 R (0:1329) 2255 0 R (0:133) 1021 0 R (0:1330) 2256 0 R (0:1331) 2257 0 R (0:1332) 2258 0 R (0:1333) 2259 0 R (0:1334) 2260 0 R (0:1335) 2261 0 R (0:1336) 2262 0 R (0:1337) 2263 0 R (0:1338) 2264 0 R (0:1339) 2265 0 R (0:134) 1022 0 R (0:1340) 2266 0 R (0:1341) 2267 0 R (0:1342) 2268 0 R (0:1343) 2269 0 R (0:1344) 2270 0 R (0:1345) 2276 0 R (0:1348) 2277 0 R (0:1349) 2278 0 R (0:135) 1023 0 R (0:1350) 2279 0 R (0:1351) 2280 0 R (0:1352) 2281 0 R (0:1353) 2282 0 R (0:1354) 2283 0 R (0:1355) 2284 0 R (0:1356) 2285 0 R (0:1357) 2286 0 R (0:1358) 2287 0 R (0:1359) 2288 0 R (0:136) 1024 0 R (0:1360) 2289 0 R (0:1361) 2290 0 R (0:1362) 2291 0 R (0:1363) 2292 0 R (0:1364) 2293 0 R (0:1365) 2294 0 R (0:1366) 2295 0 R (0:1367) 2296 0 R (0:1368) 2297 0 R (0:1369) 2298 0 R (0:137) 1025 0 R (0:1370) 2299 0 R (0:1371) 2300 0 R (0:1372) 2301 0 R (0:1373) 2302 0 R (0:1374) 2303 0 R (0:1375) 2304 0 R (0:1376) 2305 0 R (0:1377) 2306 0 R (0:1378) 2307 0 R (0:1379) 2308 0 R (0:138) 1026 0 R (0:1380) 2309 0 R (0:1381) 2310 0 R (0:1382) 2311 0 R (0:1383) 2312 0 R (0:1384) 2313 0 R (0:1385) 2314 0 R (0:1386) 2315 0 R (0:1387) 2316 0 R (0:139) 1027 0 R (0:1390) 2321 0 R (0:1391) 2322 0 R (0:1392) 2323 0 R (0:1393) 2275 0 R (0:1396) 2324 0 R (0:1397) 2325 0 R (0:1398) 2326 0 R (0:1399) 2327 0 R (0:14) 926 0 R (0:140) 1028 0 R (0:1400) 2328 0 R (0:1401) 2329 0 R (0:1402) 2330 0 R (0:1403) 2331 0 R (0:1404) 2332 0 R (0:1405) 2333 0 R (0:1406) 2334 0 R (0:1407) 2335 0 R (0:1408) 2336 0 R (0:1409) 2337 0 R (0:141) 1029 0 R (0:1410) 2338 0 R (0:1411) 2339 0 R (0:1414) 2340 0 R (0:1415) 2341 0 R (0:1416) 2342 0 R (0:1417) 2343 0 R (0:1418) 2344 0 R (0:1419) 2345 0 R (0:1420) 2346 0 R (0:1421) 2347 0 R (0:1422) 2348 0 R (0:1423) 2349 0 R (0:1424) 2350 0 R (0:1425) 2355 0 R (0:1426) 2356 0 R (0:1427) 2357 0 R (0:1428) 2358 0 R (0:1429) 2359 0 R (0:1430) 2360 0 R (0:1431) 2361 0 R (0:1432) 2362 0 R (0:1433) 2363 0 R (0:1434) 2364 0 R (0:1435) 2365 0 R (0:1436) 2366 0 R (0:1437) 2367 0 R (0:1438) 2368 0 R (0:1439) 2369 0 R (0:144) 1030 0 R (0:1440) 2370 0 R (0:1443) 2371 0 R (0:1444) 2372 0 R (0:1445) 2373 0 R (0:1446) 2374 0 R (0:1447) 2375 0 R (0:1448) 2376 0 R (0:1449) 2377 0 R (0:145) 1031 0 R (0:1450) 2378 0 R (0:1451) 2379 0 R (0:1452) 2380 0 R (0:1453) 2381 0 R (0:1454) 2382 0 R (0:1455) 2383 0 R (0:1456) 2384 0 R (0:1457) 2385 0 R (0:1458) 2386 0 R (0:1459) 2387 0 R (0:146) 1032 0 R (0:1460) 2388 0 R (0:1461) 2389 0 R (0:1462) 2390 0 R (0:1463) 2391 0 R (0:1464) 2392 0 R (0:1465) 2393 0 R (0:1466) 2394 0 R (0:1467) 2395 0 R (0:1468) 2396 0 R (0:1469) 2397 0 R (0:147) 1038 0 R (0:1470) 2398 0 R (0:1471) 2399 0 R (0:1472) 2400 0 R (0:1473) 2401 0 R (0:1474) 2402 0 R (0:1475) 2403 0 R (0:1476) 2404 0 R (0:1477) 2405 0 R (0:1478) 2406 0 R (0:1479) 2407 0 R (0:148) 1039 0 R (0:1480) 2408 0 R (0:1481) 2409 0 R (0:1482) 2410 0 R (0:1483) 2411 0 R (0:1484) 2412 0 R (0:1485) 2413 0 R (0:1486) 2414 0 R (0:1487) 2415 0 R (0:1488) 2416 0 R (0:1489) 2422 0 R (0:149) 1040 0 R (0:1490) 2423 0 R (0:1491) 2424 0 R (0:1492) 2425 0 R (0:1493) 2426 0 R (0:1494) 2427 0 R (0:1495) 2428 0 R (0:1496) 2429 0 R (0:1497) 2430 0 R (0:1498) 2431 0 R (0:1499) 2432 0 R (0:15) 927 0 R (0:150) 1041 0 R (0:1500) 2433 0 R (0:1501) 2434 0 R (0:1502) 2435 0 R (0:1503) 2436 0 R (0:1504) 2437 0 R (0:1505) 2438 0 R (0:1506) 2439 0 R (0:1507) 2440 0 R (0:1508) 2441 0 R (0:1509) 2442 0 R (0:151) 1042 0 R (0:1510) 2443 0 R (0:1511) 2444 0 R (0:1512) 2445 0 R (0:1513) 2446 0 R (0:1514) 2447 0 R (0:1515) 2448 0 R (0:1516) 2449 0 R (0:1517) 2450 0 R (0:1518) 2451 0 R (0:1519) 2452 0 R (0:152) 1043 0 R (0:1520) 2453 0 R (0:1521) 2454 0 R (0:1522) 2455 0 R (0:1523) 2456 0 R (0:1524) 2457 0 R (0:1525) 2458 0 R (0:1526) 2459 0 R (0:1527) 2460 0 R (0:1528) 2461 0 R (0:1529) 2462 0 R (0:153) 1044 0 R (0:1530) 2463 0 R (0:1531) 2464 0 R (0:1532) 2465 0 R (0:1535) 2466 0 R (0:1536) 2467 0 R (0:1537) 2468 0 R (0:1538) 2469 0 R (0:1539) 2470 0 R (0:154) 1045 0 R (0:1540) 2471 0 R (0:1541) 2472 0 R (0:1542) 2473 0 R (0:1543) 2474 0 R (0:1544) 2475 0 R (0:1545) 2476 0 R (0:1546) 2477 0 R (0:1547) 2478 0 R (0:1548) 2479 0 R (0:1549) 2480 0 R (0:155) 1046 0 R (0:1550) 2481 0 R (0:1551) 2482 0 R (0:1552) 2483 0 R (0:1553) 2484 0 R (0:1554) 2485 0 R (0:1555) 2490 0 R (0:1556) 2491 0 R (0:1557) 2492 0 R (0:1558) 2493 0 R (0:1559) 2494 0 R (0:156) 1047 0 R (0:1560) 2495 0 R (0:1561) 2496 0 R (0:1562) 2497 0 R (0:1563) 2498 0 R (0:1564) 2499 0 R (0:1565) 2500 0 R (0:1566) 2501 0 R (0:1567) 2502 0 R (0:1568) 2503 0 R (0:1569) 2504 0 R (0:157) 1048 0 R (0:1570) 2505 0 R (0:1571) 2506 0 R (0:1572) 2507 0 R (0:1573) 2508 0 R (0:1574) 2509 0 R (0:1575) 2510 0 R (0:1578) 2511 0 R (0:1579) 2512 0 R (0:158) 1049 0 R (0:1580) 2513 0 R (0:1581) 2514 0 R (0:1582) 2515 0 R (0:1583) 2516 0 R (0:1584) 2517 0 R (0:1585) 2518 0 R (0:1586) 2519 0 R (0:1587) 2520 0 R (0:1588) 2521 0 R (0:1589) 2522 0 R (0:159) 1050 0 R (0:1590) 2523 0 R (0:1591) 2524 0 R (0:1592) 2525 0 R (0:1593) 2526 0 R (0:1594) 2527 0 R (0:1595) 2528 0 R (0:1596) 2529 0 R (0:1597) 2530 0 R (0:1598) 2531 0 R (0:1599) 2532 0 R (0:16) 928 0 R (0:160) 1051 0 R (0:1600) 2533 0 R (0:1601) 2534 0 R (0:1602) 2535 0 R (0:1603) 2536 0 R (0:1604) 2537 0 R (0:1605) 2538 0 R (0:1606) 2539 0 R (0:1607) 2540 0 R (0:1608) 2541 0 R (0:1609) 2542 0 R (0:161) 1052 0 R (0:1610) 2543 0 R (0:1611) 2544 0 R (0:1612) 2545 0 R (0:1613) 2546 0 R (0:1614) 2547 0 R (0:1615) 2553 0 R (0:1616) 2554 0 R (0:1617) 2555 0 R (0:1618) 2556 0 R (0:1619) 2557 0 R (0:162) 1053 0 R (0:1620) 2558 0 R (0:1621) 2559 0 R (0:1622) 2560 0 R (0:1623) 2561 0 R (0:1624) 2562 0 R (0:1625) 2563 0 R (0:1626) 2564 0 R (0:1627) 2565 0 R (0:1628) 2566 0 R (0:1629) 2567 0 R (0:163) 1054 0 R (0:1630) 2568 0 R (0:1631) 2569 0 R (0:1632) 2570 0 R (0:1633) 2571 0 R (0:1634) 2572 0 R (0:1635) 2573 0 R (0:1636) 2574 0 R (0:1637) 2575 0 R (0:1638) 2576 0 R (0:1639) 2577 0 R (0:164) 1055 0 R (0:1640) 2578 0 R (0:1641) 2579 0 R (0:1642) 2580 0 R (0:1643) 2581 0 R (0:1644) 2582 0 R (0:1647) 2583 0 R (0:1648) 2584 0 R (0:1649) 2585 0 R (0:165) 1056 0 R (0:1650) 2586 0 R (0:1651) 2587 0 R (0:1652) 2588 0 R (0:1653) 2589 0 R (0:1654) 2590 0 R (0:1655) 2591 0 R (0:1656) 2592 0 R (0:1657) 2593 0 R (0:1658) 2594 0 R (0:1659) 2595 0 R (0:166) 1057 0 R (0:1660) 2596 0 R (0:1661) 2597 0 R (0:1662) 2598 0 R (0:1663) 2599 0 R (0:1664) 2600 0 R (0:1665) 2601 0 R (0:1666) 2602 0 R (0:1667) 2603 0 R (0:1668) 2609 0 R (0:1669) 2610 0 R (0:167) 1058 0 R (0:1670) 2552 0 R (0:1671) 2611 0 R (0:1672) 2612 0 R (0:1673) 2613 0 R (0:1676) 2614 0 R (0:1677) 2615 0 R (0:1678) 2616 0 R (0:1679) 2617 0 R (0:168) 1059 0 R (0:1680) 2618 0 R (0:1681) 2619 0 R (0:1682) 2620 0 R (0:1683) 2621 0 R (0:1684) 2622 0 R (0:1685) 2623 0 R (0:1686) 2624 0 R (0:1687) 2625 0 R (0:1688) 2626 0 R (0:1689) 2627 0 R (0:169) 1060 0 R (0:1690) 2628 0 R (0:1691) 2629 0 R (0:1692) 2630 0 R (0:1693) 2631 0 R (0:1694) 2632 0 R (0:1695) 2633 0 R (0:1696) 2634 0 R (0:1697) 2635 0 R (0:1698) 2636 0 R (0:1699) 2637 0 R (0:170) 1061 0 R (0:1700) 2638 0 R (0:1701) 2639 0 R (0:1702) 2640 0 R (0:1703) 2641 0 R (0:1704) 2642 0 R (0:1705) 2643 0 R (0:1706) 2644 0 R (0:1707) 2645 0 R (0:1708) 2646 0 R (0:1709) 2647 0 R (0:171) 1062 0 R (0:1710) 2648 0 R (0:1713) 2654 0 R (0:1714) 2655 0 R (0:1715) 2656 0 R (0:1716) 2608 0 R (0:1719) 2657 0 R (0:172) 1063 0 R (0:1720) 2658 0 R (0:1721) 2659 0 R (0:1722) 2660 0 R (0:1723) 2661 0 R (0:1724) 2662 0 R (0:1725) 2663 0 R (0:1726) 2664 0 R (0:1727) 2665 0 R (0:1728) 2666 0 R (0:1729) 2667 0 R (0:173) 1064 0 R (0:1730) 2668 0 R (0:1731) 2669 0 R (0:1732) 2670 0 R (0:1733) 2671 0 R (0:1734) 2672 0 R (0:1735) 2673 0 R (0:1736) 2674 0 R (0:1737) 2675 0 R (0:1738) 2676 0 R (0:1739) 2677 0 R (0:174) 1065 0 R (0:1740) 2678 0 R (0:1741) 2679 0 R (0:1742) 2680 0 R (0:1743) 2681 0 R (0:1746) 2682 0 R (0:1747) 2683 0 R (0:1748) 2684 0 R (0:1749) 2685 0 R (0:175) 1066 0 R (0:1750) 2686 0 R (0:1751) 2687 0 R (0:1752) 2692 0 R (0:1753) 2653 0 R (0:1754) 2693 0 R (0:1755) 2694 0 R (0:1756) 2695 0 R (0:1757) 2696 0 R (0:1758) 2697 0 R (0:1759) 2698 0 R (0:176) 1067 0 R (0:1760) 2699 0 R (0:1761) 2700 0 R (0:1762) 2701 0 R (0:1763) 2702 0 R (0:1764) 2703 0 R (0:1765) 2704 0 R (0:1766) 2705 0 R (0:1767) 2706 0 R (0:1768) 2707 0 R (0:1769) 2708 0 R (0:177) 1068 0 R (0:1770) 2709 0 R (0:1771) 2710 0 R (0:1772) 2711 0 R (0:1775) 2712 0 R (0:1776) 2713 0 R (0:1777) 2714 0 R (0:1778) 2715 0 R (0:1779) 2716 0 R (0:178) 1069 0 R (0:1780) 2717 0 R (0:1781) 2718 0 R (0:1782) 2719 0 R (0:1783) 2720 0 R (0:1784) 2721 0 R (0:1785) 2722 0 R (0:1786) 2723 0 R (0:1787) 2724 0 R (0:1788) 2725 0 R (0:1789) 2726 0 R (0:1790) 2727 0 R (0:1791) 2728 0 R (0:1792) 2729 0 R (0:1793) 2730 0 R (0:1794) 2731 0 R (0:1795) 2732 0 R (0:1796) 2733 0 R (0:1797) 2734 0 R (0:1798) 2740 0 R (0:1799) 2741 0 R (0:18) 930 0 R (0:1800) 2742 0 R (0:1801) 2743 0 R (0:1802) 2744 0 R (0:1803) 2745 0 R (0:1804) 2746 0 R (0:1805) 2747 0 R (0:1806) 2748 0 R (0:1807) 2749 0 R (0:1808) 2750 0 R (0:181) 1070 0 R (0:1811) 2751 0 R (0:1812) 2752 0 R (0:1813) 2753 0 R (0:1814) 2754 0 R (0:1815) 2755 0 R (0:1816) 2756 0 R (0:1817) 2757 0 R (0:1818) 2758 0 R (0:1819) 2759 0 R (0:182) 1071 0 R (0:1820) 2760 0 R (0:1821) 2761 0 R (0:1822) 2762 0 R (0:1823) 2763 0 R (0:1824) 2764 0 R (0:1825) 2765 0 R (0:1826) 2766 0 R (0:1827) 2767 0 R (0:1828) 2768 0 R (0:1829) 2769 0 R (0:183) 1072 0 R (0:1830) 2770 0 R (0:1831) 2771 0 R (0:1832) 2772 0 R (0:1833) 2773 0 R (0:1834) 2774 0 R (0:1835) 2775 0 R (0:1836) 2776 0 R (0:1837) 2777 0 R (0:1838) 2778 0 R (0:1839) 2779 0 R (0:184) 1073 0 R (0:1840) 2780 0 R (0:1841) 2781 0 R (0:1842) 2782 0 R (0:1843) 2783 0 R (0:1844) 2784 0 R (0:1847) 2790 0 R (0:1848) 2791 0 R (0:1849) 2792 0 R (0:185) 1074 0 R (0:1850) 2793 0 R (0:1851) 2794 0 R (0:1852) 2795 0 R (0:1853) 2796 0 R (0:1854) 2797 0 R (0:1855) 2798 0 R (0:1856) 2799 0 R (0:1857) 2800 0 R (0:1858) 2801 0 R (0:1859) 2802 0 R (0:186) 1075 0 R (0:1860) 2803 0 R (0:1861) 2804 0 R (0:1862) 2805 0 R (0:1863) 2806 0 R (0:1864) 2807 0 R (0:1865) 2808 0 R (0:1866) 2809 0 R (0:1867) 2810 0 R (0:1868) 2811 0 R (0:1869) 2812 0 R (0:187) 1076 0 R (0:1870) 2813 0 R (0:1871) 2814 0 R (0:1874) 2815 0 R (0:1875) 2816 0 R (0:1876) 2817 0 R (0:1877) 2818 0 R (0:1878) 2819 0 R (0:1879) 2820 0 R (0:188) 1077 0 R (0:1880) 2821 0 R (0:1881) 2822 0 R (0:1882) 2823 0 R (0:1883) 2824 0 R (0:1884) 2829 0 R (0:1885) 2789 0 R (0:1886) 2830 0 R (0:1887) 2831 0 R (0:1888) 2832 0 R (0:1889) 2833 0 R (0:189) 1078 0 R (0:1890) 2834 0 R (0:1891) 2835 0 R (0:1892) 2836 0 R (0:1893) 2837 0 R (0:1894) 2838 0 R (0:1895) 2839 0 R (0:1896) 2840 0 R (0:1897) 2841 0 R (0:1898) 2842 0 R (0:1899) 2843 0 R (0:19) 931 0 R (0:190) 1083 0 R (0:1900) 2844 0 R (0:1903) 2845 0 R (0:1904) 2846 0 R (0:1905) 2847 0 R (0:1906) 2848 0 R (0:1907) 2849 0 R (0:1908) 2850 0 R (0:1909) 2851 0 R (0:191) 1037 0 R (0:1910) 2852 0 R (0:1911) 2853 0 R (0:1912) 2854 0 R (0:1913) 2855 0 R (0:1914) 2856 0 R (0:1915) 2857 0 R (0:1916) 2858 0 R (0:1917) 2859 0 R (0:1918) 2860 0 R (0:1919) 2861 0 R (0:192) 1084 0 R (0:1920) 2862 0 R (0:1921) 2863 0 R (0:1922) 2864 0 R (0:1923) 2865 0 R (0:1924) 2866 0 R (0:1925) 2867 0 R (0:1926) 2868 0 R (0:1927) 2869 0 R (0:1928) 2870 0 R (0:1929) 2871 0 R (0:193) 1085 0 R (0:1932) 2876 0 R (0:1933) 2877 0 R (0:1934) 2878 0 R (0:1935) 2879 0 R (0:1936) 2880 0 R (0:1937) 2881 0 R (0:1938) 2882 0 R (0:1939) 2883 0 R (0:194) 1086 0 R (0:1940) 2884 0 R (0:1941) 2885 0 R (0:1942) 2886 0 R (0:1943) 2887 0 R (0:1944) 2888 0 R (0:1945) 2889 0 R (0:1946) 2890 0 R (0:1947) 2891 0 R (0:1948) 2892 0 R (0:1949) 2893 0 R (0:195) 1087 0 R (0:1950) 2894 0 R (0:1951) 2895 0 R (0:1952) 2896 0 R (0:1953) 2897 0 R (0:1954) 2898 0 R (0:1955) 2899 0 R (0:1956) 2900 0 R (0:1957) 2901 0 R (0:196) 1088 0 R (0:1960) 2902 0 R (0:1961) 2903 0 R (0:1962) 2904 0 R (0:1963) 2905 0 R (0:1964) 2906 0 R (0:1965) 2907 0 R (0:1966) 2908 0 R (0:1967) 2909 0 R (0:1968) 2914 0 R (0:1969) 2915 0 R (0:197) 1089 0 R (0:1970) 2916 0 R (0:1971) 2917 0 R (0:1972) 2918 0 R (0:1973) 2919 0 R (0:1974) 2920 0 R (0:1975) 2921 0 R (0:1976) 2922 0 R (0:1977) 2923 0 R (0:1978) 2924 0 R (0:1979) 2925 0 R (0:198) 1090 0 R (0:1980) 2926 0 R (0:1981) 2927 0 R (0:1982) 2928 0 R (0:1983) 2929 0 R (0:1984) 2930 0 R (0:1985) 2931 0 R (0:1986) 2932 0 R (0:1989) 2933 0 R (0:199) 1091 0 R (0:1990) 2934 0 R (0:1991) 2935 0 R (0:1992) 2936 0 R (0:1993) 2937 0 R (0:1994) 2938 0 R (0:1995) 2939 0 R (0:1996) 2940 0 R (0:1997) 2941 0 R (0:1998) 2942 0 R (0:1999) 2943 0 R (0:200) 1092 0 R (0:2000) 2944 0 R (0:2001) 2945 0 R (0:2002) 2946 0 R (0:2003) 2947 0 R (0:2004) 2948 0 R (0:2005) 2949 0 R (0:2006) 2950 0 R (0:2007) 2951 0 R (0:2008) 2952 0 R (0:2009) 2953 0 R (0:201) 1093 0 R (0:2010) 2954 0 R (0:2011) 2955 0 R (0:2012) 2956 0 R (0:2013) 2957 0 R (0:2014) 2958 0 R (0:2015) 2964 0 R (0:2018) 2965 0 R (0:2019) 2966 0 R (0:202) 1094 0 R (0:2020) 2967 0 R (0:2021) 2968 0 R (0:2022) 2969 0 R (0:2023) 2970 0 R (0:2024) 2971 0 R (0:2025) 2972 0 R (0:2026) 2973 0 R (0:2027) 2974 0 R (0:2028) 2975 0 R (0:2029) 2976 0 R (0:203) 1095 0 R (0:2030) 2977 0 R (0:2031) 2978 0 R (0:2032) 2979 0 R (0:2033) 2980 0 R (0:2034) 2981 0 R (0:2035) 2982 0 R (0:2036) 2983 0 R (0:2037) 2984 0 R (0:2038) 2985 0 R (0:2039) 2986 0 R (0:204) 1096 0 R (0:2040) 2987 0 R (0:2041) 2988 0 R (0:2042) 2989 0 R (0:2043) 2990 0 R (0:2044) 2991 0 R (0:2045) 2992 0 R (0:2046) 2993 0 R (0:2047) 2994 0 R (0:2048) 2995 0 R (0:2049) 2996 0 R (0:205) 1097 0 R (0:2050) 2997 0 R (0:2051) 2998 0 R (0:2052) 2999 0 R (0:2053) 3000 0 R (0:2054) 3001 0 R (0:2055) 3002 0 R (0:2056) 3003 0 R (0:2059) 3010 0 R (0:206) 1098 0 R (0:2060) 3011 0 R (0:2061) 3012 0 R (0:2062) 2963 0 R (0:2065) 3013 0 R (0:2066) 3014 0 R (0:2067) 3015 0 R (0:2068) 3016 0 R (0:2069) 3017 0 R (0:2070) 3018 0 R (0:2071) 3019 0 R (0:2072) 3020 0 R (0:2073) 3021 0 R (0:2074) 3022 0 R (0:2075) 3023 0 R (0:2076) 3024 0 R (0:2077) 3025 0 R (0:2078) 3026 0 R (0:2079) 3027 0 R (0:2080) 3028 0 R (0:2081) 3029 0 R (0:2082) 3030 0 R (0:2083) 3031 0 R (0:2084) 3032 0 R (0:2085) 3033 0 R (0:2086) 3034 0 R (0:2087) 3035 0 R (0:2088) 3036 0 R (0:2089) 3037 0 R (0:209) 1099 0 R (0:2090) 3038 0 R (0:2091) 3039 0 R (0:2092) 3040 0 R (0:2093) 3041 0 R (0:2096) 3042 0 R (0:2097) 3043 0 R (0:2098) 3044 0 R (0:2099) 3045 0 R (0:210) 1100 0 R (0:2100) 3046 0 R (0:2101) 3051 0 R (0:2102) 3009 0 R (0:2103) 3052 0 R (0:2104) 3053 0 R (0:2105) 3054 0 R (0:2106) 3055 0 R (0:2107) 3056 0 R (0:2108) 3057 0 R (0:2109) 3058 0 R (0:211) 1101 0 R (0:2110) 3059 0 R (0:2111) 3060 0 R (0:2112) 3061 0 R (0:2113) 3062 0 R (0:2114) 3063 0 R (0:2115) 3064 0 R (0:2116) 3065 0 R (0:2117) 3066 0 R (0:2118) 3067 0 R (0:2119) 3068 0 R (0:212) 1102 0 R (0:2120) 3069 0 R (0:2121) 3070 0 R (0:2122) 3071 0 R (0:2123) 3072 0 R (0:2124) 3073 0 R (0:2125) 3074 0 R (0:2126) 3075 0 R (0:2127) 3076 0 R (0:213) 1103 0 R (0:2130) 3077 0 R (0:2131) 3078 0 R (0:2132) 3079 0 R (0:2133) 3080 0 R (0:2134) 3081 0 R (0:2135) 3082 0 R (0:2136) 3083 0 R (0:2137) 3084 0 R (0:2138) 3085 0 R (0:2139) 3086 0 R (0:214) 1104 0 R (0:2140) 3087 0 R (0:2141) 3092 0 R (0:2142) 3093 0 R (0:2143) 3094 0 R (0:2144) 3095 0 R (0:2145) 3096 0 R (0:2146) 3097 0 R (0:2147) 3098 0 R (0:2148) 3099 0 R (0:2149) 3100 0 R (0:215) 1105 0 R (0:2150) 3101 0 R (0:2151) 3102 0 R (0:2152) 3103 0 R (0:2153) 3104 0 R (0:2154) 3105 0 R (0:2155) 3106 0 R (0:2156) 3107 0 R (0:2159) 3108 0 R (0:216) 1106 0 R (0:2160) 3109 0 R (0:2161) 3110 0 R (0:2162) 3111 0 R (0:2163) 3112 0 R (0:2164) 3113 0 R (0:2165) 3114 0 R (0:2166) 3115 0 R (0:2167) 3116 0 R (0:2168) 3117 0 R (0:2169) 3118 0 R (0:217) 1107 0 R (0:2170) 3119 0 R (0:2171) 3120 0 R (0:2172) 3121 0 R (0:2173) 3122 0 R (0:2174) 3123 0 R (0:2175) 3124 0 R (0:2176) 3125 0 R (0:2177) 3126 0 R (0:2178) 3127 0 R (0:2179) 3128 0 R (0:218) 1108 0 R (0:2180) 3129 0 R (0:2181) 3130 0 R (0:2182) 3131 0 R (0:2183) 3132 0 R (0:2184) 3133 0 R (0:2185) 3134 0 R (0:2186) 3135 0 R (0:2187) 3136 0 R (0:2188) 3137 0 R (0:2189) 3138 0 R (0:219) 1109 0 R (0:2190) 3144 0 R (0:2193) 3145 0 R (0:2194) 3146 0 R (0:2195) 3147 0 R (0:2196) 3148 0 R (0:2197) 3149 0 R (0:2198) 3150 0 R (0:2199) 3151 0 R (0:220) 1110 0 R (0:2200) 3152 0 R (0:2201) 3153 0 R (0:2202) 3154 0 R (0:2203) 3155 0 R (0:2204) 3156 0 R (0:2205) 3157 0 R (0:2206) 3158 0 R (0:2207) 3159 0 R (0:2208) 3160 0 R (0:2209) 3161 0 R (0:221) 1111 0 R (0:2210) 3162 0 R (0:2211) 3163 0 R (0:2212) 3164 0 R (0:2213) 3165 0 R (0:2214) 3166 0 R (0:2215) 3167 0 R (0:2216) 3168 0 R (0:2217) 3169 0 R (0:2218) 3170 0 R (0:2219) 3171 0 R (0:222) 1112 0 R (0:2222) 3172 0 R (0:2223) 3173 0 R (0:2224) 3174 0 R (0:2225) 3175 0 R (0:2226) 3176 0 R (0:2227) 3181 0 R (0:2228) 3143 0 R (0:2229) 3182 0 R (0:223) 1113 0 R (0:2230) 3183 0 R (0:2231) 3184 0 R (0:2232) 3185 0 R (0:2233) 3186 0 R (0:2234) 3187 0 R (0:2235) 3188 0 R (0:2236) 3189 0 R (0:2237) 3190 0 R (0:2238) 3191 0 R (0:2239) 3192 0 R (0:224) 1114 0 R (0:2240) 3193 0 R (0:2241) 3194 0 R (0:2242) 3195 0 R (0:2243) 3196 0 R (0:2244) 3197 0 R (0:2245) 3198 0 R (0:2246) 3199 0 R (0:2247) 3200 0 R (0:2248) 3201 0 R (0:2249) 3202 0 R (0:225) 1115 0 R (0:2250) 3203 0 R (0:2251) 3204 0 R (0:2252) 3205 0 R (0:2255) 3206 0 R (0:2256) 3207 0 R (0:2257) 3208 0 R (0:2258) 3209 0 R (0:2259) 3210 0 R (0:226) 1116 0 R (0:2260) 3211 0 R (0:2261) 3212 0 R (0:2262) 3213 0 R (0:2263) 3214 0 R (0:2264) 3215 0 R (0:2265) 3216 0 R (0:2266) 3217 0 R (0:2267) 3218 0 R (0:2268) 3219 0 R (0:2269) 3220 0 R (0:227) 1117 0 R (0:2270) 3221 0 R (0:2271) 3222 0 R (0:2272) 3227 0 R (0:2273) 3228 0 R (0:2274) 3229 0 R (0:2275) 3230 0 R (0:2276) 3231 0 R (0:2277) 3232 0 R (0:2278) 3233 0 R (0:2279) 3234 0 R (0:228) 1118 0 R (0:2280) 3235 0 R (0:2281) 3236 0 R (0:2282) 3237 0 R (0:2283) 3238 0 R (0:2284) 3239 0 R (0:2285) 3240 0 R (0:2286) 3241 0 R (0:2287) 3242 0 R (0:2288) 3243 0 R (0:2289) 3244 0 R (0:229) 1119 0 R (0:2290) 3245 0 R (0:2291) 3246 0 R (0:2292) 3247 0 R (0:2293) 3248 0 R (0:2296) 3249 0 R (0:2297) 3250 0 R (0:2298) 3251 0 R (0:2299) 3252 0 R (0:230) 1120 0 R (0:2300) 3253 0 R (0:2301) 3254 0 R (0:2302) 3255 0 R (0:2303) 3256 0 R (0:2304) 3257 0 R (0:2305) 3258 0 R (0:2306) 3259 0 R (0:2307) 3260 0 R (0:2308) 3261 0 R (0:2309) 3262 0 R (0:231) 1121 0 R (0:2310) 3263 0 R (0:2311) 3264 0 R (0:2312) 3265 0 R (0:2313) 3266 0 R (0:2314) 3267 0 R (0:2315) 3268 0 R (0:2316) 3269 0 R (0:2317) 3270 0 R (0:2318) 3271 0 R (0:2319) 3272 0 R (0:232) 1122 0 R (0:2320) 3273 0 R (0:2321) 3274 0 R (0:2322) 3280 0 R (0:2323) 3281 0 R (0:2324) 3282 0 R (0:2325) 3283 0 R (0:2326) 3284 0 R (0:2327) 3285 0 R (0:2328) 3286 0 R (0:2329) 3287 0 R (0:233) 1123 0 R (0:2330) 3288 0 R (0:2331) 3289 0 R (0:2332) 3290 0 R (0:2333) 3291 0 R (0:2334) 3292 0 R (0:2337) 3293 0 R (0:2338) 3294 0 R (0:2339) 3295 0 R (0:234) 1124 0 R (0:2340) 3296 0 R (0:2341) 3297 0 R (0:2342) 3298 0 R (0:2343) 3299 0 R (0:2344) 3300 0 R (0:2345) 3301 0 R (0:2346) 3302 0 R (0:2347) 3303 0 R (0:2348) 3304 0 R (0:2349) 3305 0 R (0:235) 1125 0 R (0:2350) 3306 0 R (0:2351) 3307 0 R (0:2352) 3308 0 R (0:2353) 3309 0 R (0:2354) 3310 0 R (0:2355) 3311 0 R (0:2356) 3312 0 R (0:2357) 3313 0 R (0:2358) 3314 0 R (0:2359) 3315 0 R (0:236) 1126 0 R (0:2360) 3316 0 R (0:2361) 3317 0 R (0:2362) 3318 0 R (0:2363) 3319 0 R (0:2364) 3320 0 R (0:2365) 3326 0 R (0:2366) 3327 0 R (0:2367) 3328 0 R (0:2368) 3329 0 R (0:237) 1127 0 R (0:2371) 3330 0 R (0:2372) 3331 0 R (0:2373) 3332 0 R (0:2374) 3333 0 R (0:2375) 3334 0 R (0:2376) 3335 0 R (0:2377) 3336 0 R (0:2378) 3337 0 R (0:2379) 3338 0 R (0:238) 1128 0 R (0:2380) 3339 0 R (0:2381) 3340 0 R (0:2382) 3341 0 R (0:2383) 3342 0 R (0:2384) 3343 0 R (0:2385) 3344 0 R (0:2386) 3345 0 R (0:2387) 3346 0 R (0:2388) 3347 0 R (0:2389) 3348 0 R (0:239) 1129 0 R (0:2390) 3349 0 R (0:2391) 3350 0 R (0:2392) 3351 0 R (0:2393) 3352 0 R (0:2394) 3353 0 R (0:2395) 3354 0 R (0:2396) 3355 0 R (0:2397) 3356 0 R (0:2398) 3357 0 R (0:2399) 3358 0 R (0:240) 1130 0 R (0:2400) 3359 0 R (0:2401) 3360 0 R (0:2402) 3361 0 R (0:2403) 3362 0 R (0:2404) 3363 0 R (0:2405) 3364 0 R (0:2406) 3365 0 R (0:2407) 3366 0 R (0:2408) 3367 0 R (0:2409) 3368 0 R (0:241) 1131 0 R (0:2410) 3369 0 R (0:2413) 3375 0 R (0:2414) 3376 0 R (0:2415) 3377 0 R (0:2416) 3325 0 R (0:2419) 3378 0 R (0:242) 1132 0 R (0:2420) 3379 0 R (0:2421) 3380 0 R (0:2422) 3381 0 R (0:2423) 3382 0 R (0:2424) 3383 0 R (0:2425) 3384 0 R (0:2426) 3385 0 R (0:2427) 3386 0 R (0:2428) 3387 0 R (0:2429) 3388 0 R (0:243) 1133 0 R (0:2430) 3389 0 R (0:2431) 3390 0 R (0:2432) 3391 0 R (0:2433) 3392 0 R (0:2434) 3393 0 R (0:2435) 3394 0 R (0:2436) 3395 0 R (0:2437) 3396 0 R (0:2438) 3397 0 R (0:2439) 3398 0 R (0:244) 1134 0 R (0:2440) 3399 0 R (0:2441) 3400 0 R (0:2442) 3401 0 R (0:2443) 3402 0 R (0:2444) 3403 0 R (0:2447) 3404 0 R (0:2448) 3405 0 R (0:2449) 3406 0 R (0:245) 1140 0 R (0:2450) 3407 0 R (0:2451) 3408 0 R (0:2452) 3413 0 R (0:2453) 3374 0 R (0:2454) 3414 0 R (0:2455) 3415 0 R (0:2456) 3416 0 R (0:2457) 3417 0 R (0:2458) 3418 0 R (0:2459) 3419 0 R (0:246) 1141 0 R (0:2460) 3420 0 R (0:2461) 3421 0 R (0:2462) 3422 0 R (0:2463) 3423 0 R (0:2464) 3424 0 R (0:2465) 3425 0 R (0:2466) 3426 0 R (0:2467) 3427 0 R (0:2468) 3428 0 R (0:2469) 3429 0 R (0:247) 1142 0 R (0:2470) 3430 0 R (0:2471) 3431 0 R (0:2472) 3432 0 R (0:2475) 3433 0 R (0:2476) 3434 0 R (0:2477) 3435 0 R (0:2478) 3436 0 R (0:2479) 3437 0 R (0:248) 1143 0 R (0:2480) 3438 0 R (0:2481) 3439 0 R (0:2482) 3440 0 R (0:2483) 3441 0 R (0:2484) 3442 0 R (0:2485) 3443 0 R (0:2486) 3444 0 R (0:2487) 3445 0 R (0:2488) 3446 0 R (0:2489) 3447 0 R (0:249) 1144 0 R (0:2490) 3448 0 R (0:2491) 3449 0 R (0:2492) 3450 0 R (0:2493) 3451 0 R (0:2494) 3452 0 R (0:2495) 3453 0 R (0:2496) 3454 0 R (0:2497) 3455 0 R (0:2498) 3456 0 R (0:2499) 3462 0 R (0:250) 1145 0 R (0:2500) 3463 0 R (0:2501) 3464 0 R (0:2502) 3465 0 R (0:2503) 3466 0 R (0:2504) 3467 0 R (0:2505) 3468 0 R (0:2508) 3469 0 R (0:2509) 3470 0 R (0:251) 1146 0 R (0:2510) 3471 0 R (0:2511) 3472 0 R (0:2512) 3473 0 R (0:2513) 3474 0 R (0:2514) 3475 0 R (0:2515) 3476 0 R (0:2516) 3477 0 R (0:2517) 3478 0 R (0:2518) 3479 0 R (0:2519) 3480 0 R (0:252) 1147 0 R (0:2520) 3481 0 R (0:2521) 3482 0 R (0:2522) 3483 0 R (0:2523) 3484 0 R (0:2524) 3485 0 R (0:2525) 3486 0 R (0:2526) 3487 0 R (0:2527) 3488 0 R (0:2528) 3489 0 R (0:2529) 3490 0 R (0:253) 1148 0 R (0:2530) 3491 0 R (0:2531) 3492 0 R (0:2532) 3493 0 R (0:2533) 3494 0 R (0:2534) 3495 0 R (0:2537) 3501 0 R (0:2538) 3502 0 R (0:2539) 3503 0 R (0:254) 1149 0 R (0:2540) 3461 0 R (0:2543) 3504 0 R (0:2544) 3505 0 R (0:2545) 3506 0 R (0:2546) 3507 0 R (0:2547) 3508 0 R (0:2548) 3509 0 R (0:2549) 3510 0 R (0:255) 1150 0 R (0:2550) 3511 0 R (0:2551) 3512 0 R (0:2552) 3513 0 R (0:2553) 3514 0 R (0:2554) 3515 0 R (0:2555) 3516 0 R (0:2556) 3517 0 R (0:2557) 3518 0 R (0:2558) 3519 0 R (0:2559) 3520 0 R (0:256) 1151 0 R (0:2560) 3521 0 R (0:2561) 3522 0 R (0:2562) 3523 0 R (0:2563) 3524 0 R (0:2564) 3525 0 R (0:2565) 3526 0 R (0:2566) 3527 0 R (0:2567) 3528 0 R (0:257) 1152 0 R (0:2570) 3529 0 R (0:2571) 3530 0 R (0:2572) 3531 0 R (0:2573) 3532 0 R (0:2574) 3533 0 R (0:2575) 3534 0 R (0:2576) 3541 0 R (0:2577) 3500 0 R (0:258) 1153 0 R (0:2580) 3542 0 R (0:2581) 3543 0 R (0:2582) 3544 0 R (0:2583) 3545 0 R (0:2584) 3546 0 R (0:2585) 3547 0 R (0:2586) 3548 0 R (0:2587) 3549 0 R (0:2588) 3550 0 R (0:2589) 3551 0 R (0:259) 1154 0 R (0:2590) 3552 0 R (0:2591) 3553 0 R (0:2592) 3554 0 R (0:2593) 3555 0 R (0:2594) 3556 0 R (0:2595) 3557 0 R (0:2596) 3558 0 R (0:2597) 3559 0 R (0:2598) 3560 0 R (0:2599) 3561 0 R (0:260) 1155 0 R (0:2600) 3562 0 R (0:2601) 3563 0 R (0:2602) 3564 0 R (0:2603) 3565 0 R (0:2604) 3566 0 R (0:2605) 3567 0 R (0:2606) 3568 0 R (0:2607) 3569 0 R (0:2608) 3570 0 R (0:261) 1156 0 R (0:2611) 3571 0 R (0:2612) 3572 0 R (0:2613) 3573 0 R (0:2614) 3574 0 R (0:2615) 3575 0 R (0:2616) 3576 0 R (0:2617) 3577 0 R (0:2618) 3578 0 R (0:2619) 3579 0 R (0:262) 1157 0 R (0:2620) 3580 0 R (0:2621) 3585 0 R (0:2622) 3540 0 R (0:2623) 3586 0 R (0:2624) 3587 0 R (0:2625) 3588 0 R (0:2626) 3589 0 R (0:2627) 3590 0 R (0:2628) 3591 0 R (0:2629) 3592 0 R (0:263) 1158 0 R (0:2630) 3593 0 R (0:2631) 3594 0 R (0:2632) 3595 0 R (0:2633) 3596 0 R (0:2634) 3597 0 R (0:2635) 3598 0 R (0:2636) 3599 0 R (0:2637) 3600 0 R (0:264) 1159 0 R (0:2640) 3601 0 R (0:2641) 3602 0 R (0:2642) 3603 0 R (0:2643) 3604 0 R (0:2644) 3605 0 R (0:2645) 3606 0 R (0:2646) 3607 0 R (0:2647) 3608 0 R (0:2648) 3609 0 R (0:2649) 3610 0 R (0:265) 1160 0 R (0:2650) 3611 0 R (0:2651) 3612 0 R (0:2652) 3613 0 R (0:2653) 3614 0 R (0:2654) 3615 0 R (0:2655) 3616 0 R (0:2656) 3617 0 R (0:2657) 3618 0 R (0:2658) 3619 0 R (0:2659) 3620 0 R (0:266) 1161 0 R (0:2660) 3621 0 R (0:2661) 3622 0 R (0:2662) 3623 0 R (0:2663) 3624 0 R (0:2664) 3625 0 R (0:2665) 3626 0 R (0:2666) 3627 0 R (0:2667) 3628 0 R (0:2668) 3633 0 R (0:2669) 3634 0 R (0:267) 1162 0 R (0:2670) 3635 0 R (0:2671) 3636 0 R (0:2674) 3637 0 R (0:2675) 3638 0 R (0:2676) 3639 0 R (0:2677) 3640 0 R (0:2678) 3641 0 R (0:2679) 3642 0 R (0:268) 1163 0 R (0:2680) 3643 0 R (0:2681) 3644 0 R (0:2682) 3645 0 R (0:2683) 3646 0 R (0:2684) 3647 0 R (0:2685) 3648 0 R (0:2686) 3649 0 R (0:2687) 3650 0 R (0:2688) 3651 0 R (0:2689) 3652 0 R (0:2690) 3653 0 R (0:2691) 3654 0 R (0:2692) 3655 0 R (0:2693) 3656 0 R (0:2694) 3657 0 R (0:2695) 3658 0 R (0:2696) 3659 0 R (0:2697) 3660 0 R (0:2698) 3661 0 R (0:2699) 3662 0 R (0:2700) 3663 0 R (0:2701) 3664 0 R (0:2702) 3665 0 R (0:2703) 3666 0 R (0:2704) 3667 0 R (0:2705) 3668 0 R (0:2706) 3669 0 R (0:2707) 3670 0 R (0:2708) 3671 0 R (0:2709) 3672 0 R (0:271) 1164 0 R (0:2710) 3673 0 R (0:2711) 3674 0 R (0:2712) 3675 0 R (0:2713) 3676 0 R (0:2714) 3677 0 R (0:2715) 3678 0 R (0:2716) 3679 0 R (0:2717) 3680 0 R (0:2718) 3681 0 R (0:2719) 3682 0 R (0:272) 1165 0 R (0:2720) 3683 0 R (0:2721) 3684 0 R (0:2722) 3685 0 R (0:2723) 3686 0 R (0:2724) 3687 0 R (0:2725) 3692 0 R (0:2726) 3693 0 R (0:2727) 3694 0 R (0:2728) 3695 0 R (0:2729) 3696 0 R (0:273) 1166 0 R (0:2730) 3697 0 R (0:2731) 3698 0 R (0:2732) 3699 0 R (0:2733) 3700 0 R (0:2734) 3701 0 R (0:2735) 3702 0 R (0:2736) 3703 0 R (0:2737) 3704 0 R (0:2738) 3705 0 R (0:2739) 3706 0 R (0:274) 1167 0 R (0:2740) 3707 0 R (0:2741) 3708 0 R (0:2742) 3709 0 R (0:2743) 3710 0 R (0:2744) 3711 0 R (0:2745) 3712 0 R (0:2746) 3713 0 R (0:2747) 3714 0 R (0:2748) 3715 0 R (0:2749) 3716 0 R (0:275) 1168 0 R (0:2750) 3717 0 R (0:2751) 3718 0 R (0:2752) 3719 0 R (0:2753) 3720 0 R (0:2754) 3721 0 R (0:2755) 3722 0 R (0:2756) 3723 0 R (0:2757) 3724 0 R (0:2758) 3725 0 R (0:2759) 3726 0 R (0:276) 1169 0 R (0:2760) 3727 0 R (0:2761) 3728 0 R (0:2762) 3729 0 R (0:2763) 3730 0 R (0:2764) 3731 0 R (0:2765) 3732 0 R (0:2766) 3733 0 R (0:2767) 3734 0 R (0:2768) 3735 0 R (0:2769) 3736 0 R (0:277) 1170 0 R (0:2770) 3737 0 R (0:2771) 3738 0 R (0:2772) 3739 0 R (0:2773) 3740 0 R (0:2774) 3741 0 R (0:2775) 3742 0 R (0:2776) 3743 0 R (0:2777) 3744 0 R (0:2778) 3745 0 R (0:2779) 3746 0 R (0:278) 1171 0 R (0:2780) 3747 0 R (0:2781) 3748 0 R (0:2782) 3749 0 R (0:2783) 3750 0 R (0:2784) 3751 0 R (0:2785) 3752 0 R (0:2786) 3753 0 R (0:2787) 3754 0 R (0:2788) 3755 0 R (0:2789) 3756 0 R (0:279) 1172 0 R (0:2790) 3757 0 R (0:2791) 3758 0 R (0:2792) 3759 0 R (0:2793) 3760 0 R (0:2794) 3761 0 R (0:2795) 3766 0 R (0:2796) 3767 0 R (0:2797) 3768 0 R (0:2798) 3769 0 R (0:2799) 3770 0 R (0:28) 936 0 R (0:280) 1173 0 R (0:2800) 3771 0 R (0:2801) 3772 0 R (0:2802) 3773 0 R (0:2803) 3774 0 R (0:2804) 3775 0 R (0:2805) 3776 0 R (0:2806) 3777 0 R (0:2807) 3778 0 R (0:2808) 3779 0 R (0:2809) 3780 0 R (0:281) 1174 0 R (0:2810) 3781 0 R (0:2811) 3782 0 R (0:2814) 3783 0 R (0:2815) 3784 0 R (0:2816) 3785 0 R (0:2817) 3786 0 R (0:2818) 3787 0 R (0:2819) 3788 0 R (0:282) 1175 0 R (0:2820) 3789 0 R (0:2821) 3790 0 R (0:2822) 3791 0 R (0:2823) 3792 0 R (0:2824) 3793 0 R (0:2825) 3794 0 R (0:2826) 3795 0 R (0:2827) 3796 0 R (0:2828) 3797 0 R (0:2829) 3798 0 R (0:283) 1176 0 R (0:2830) 3799 0 R (0:2831) 3800 0 R (0:2832) 3801 0 R (0:2833) 3802 0 R (0:2834) 3803 0 R (0:2835) 3804 0 R (0:2836) 3805 0 R (0:2837) 3806 0 R (0:2838) 3807 0 R (0:2839) 3808 0 R (0:284) 1177 0 R (0:2840) 3809 0 R (0:2841) 3810 0 R (0:2842) 3811 0 R (0:2843) 3812 0 R (0:2844) 3813 0 R (0:2845) 3814 0 R (0:2846) 3815 0 R (0:2847) 3816 0 R (0:2848) 3817 0 R (0:2849) 3818 0 R (0:285) 1178 0 R (0:2850) 3819 0 R (0:2851) 3824 0 R (0:2852) 3825 0 R (0:2853) 3826 0 R (0:2854) 3827 0 R (0:2855) 3828 0 R (0:2856) 3829 0 R (0:2857) 3830 0 R (0:2858) 3831 0 R (0:2859) 3832 0 R (0:286) 1179 0 R (0:2860) 3833 0 R (0:2861) 3834 0 R (0:2862) 3835 0 R (0:2863) 3836 0 R (0:2864) 3837 0 R (0:2865) 3838 0 R (0:2866) 3839 0 R (0:2867) 3840 0 R (0:2868) 3841 0 R (0:2869) 3842 0 R (0:287) 1180 0 R (0:2870) 3843 0 R (0:2871) 3844 0 R (0:2872) 3845 0 R (0:2873) 3846 0 R (0:2874) 3847 0 R (0:2875) 3848 0 R (0:2876) 3849 0 R (0:2877) 3850 0 R (0:2878) 3851 0 R (0:2879) 3852 0 R (0:288) 1181 0 R (0:2880) 3853 0 R (0:2881) 3854 0 R (0:2882) 3855 0 R (0:2883) 3856 0 R (0:2884) 3857 0 R (0:2885) 3858 0 R (0:2886) 3859 0 R (0:2887) 3860 0 R (0:2888) 3861 0 R (0:2889) 3862 0 R (0:289) 1182 0 R (0:2892) 3863 0 R (0:2893) 3864 0 R (0:2894) 3865 0 R (0:2895) 3866 0 R (0:2896) 3867 0 R (0:2897) 3868 0 R (0:2898) 3869 0 R (0:2899) 3870 0 R (0:29) 937 0 R (0:290) 1183 0 R (0:2900) 3871 0 R (0:2901) 3877 0 R (0:2902) 3878 0 R (0:2903) 3879 0 R (0:2904) 3880 0 R (0:2905) 3881 0 R (0:2906) 3882 0 R (0:2907) 3883 0 R (0:2908) 3884 0 R (0:2909) 3885 0 R (0:291) 1184 0 R (0:2910) 3886 0 R (0:2911) 3887 0 R (0:2912) 3888 0 R (0:2913) 3889 0 R (0:2916) 3890 0 R (0:2917) 3891 0 R (0:2918) 3892 0 R (0:2919) 3893 0 R (0:292) 1185 0 R (0:2920) 3894 0 R (0:2921) 3895 0 R (0:2922) 3896 0 R (0:2923) 3897 0 R (0:2924) 3898 0 R (0:2925) 3899 0 R (0:2926) 3900 0 R (0:2927) 3901 0 R (0:2928) 3902 0 R (0:2929) 3903 0 R (0:293) 1186 0 R (0:2930) 3904 0 R (0:2931) 3905 0 R (0:2932) 3906 0 R (0:2933) 3907 0 R (0:2934) 3908 0 R (0:2935) 3909 0 R (0:2936) 3910 0 R (0:2937) 3911 0 R (0:2938) 3912 0 R (0:2939) 3913 0 R (0:294) 1187 0 R (0:2940) 3914 0 R (0:2941) 3915 0 R (0:2942) 3916 0 R (0:2943) 3917 0 R (0:2944) 3918 0 R (0:2945) 3919 0 R (0:2946) 3920 0 R (0:2947) 3921 0 R (0:2948) 3922 0 R (0:2949) 3923 0 R (0:295) 1188 0 R (0:2950) 3924 0 R (0:2951) 3925 0 R (0:2952) 3926 0 R (0:2953) 3927 0 R (0:2954) 3928 0 R (0:2955) 3929 0 R (0:2956) 3930 0 R (0:2957) 3931 0 R (0:2958) 3936 0 R (0:2959) 3937 0 R (0:296) 1189 0 R (0:2960) 3938 0 R (0:2961) 3939 0 R (0:2962) 3940 0 R (0:2963) 3941 0 R (0:2964) 3942 0 R (0:2965) 3943 0 R (0:2966) 3944 0 R (0:2967) 3945 0 R (0:2968) 3946 0 R (0:2969) 3947 0 R (0:297) 1190 0 R (0:2970) 3948 0 R (0:2971) 3949 0 R (0:2972) 3950 0 R (0:2973) 3951 0 R (0:2974) 3952 0 R (0:2975) 3953 0 R (0:2976) 3954 0 R (0:2977) 3955 0 R (0:2978) 3956 0 R (0:2979) 3957 0 R (0:298) 1191 0 R (0:2980) 3958 0 R (0:2981) 3959 0 R (0:2982) 3960 0 R (0:2983) 3961 0 R (0:2984) 3962 0 R (0:2985) 3963 0 R (0:2986) 3964 0 R (0:2987) 3965 0 R (0:2988) 3966 0 R (0:2989) 3967 0 R (0:299) 1192 0 R (0:2990) 3968 0 R (0:2991) 3969 0 R (0:2992) 3970 0 R (0:2993) 3971 0 R (0:2994) 3972 0 R (0:2995) 3973 0 R (0:2996) 3974 0 R (0:2997) 3975 0 R (0:2998) 3976 0 R (0:2999) 3977 0 R (0:30) 938 0 R (0:300) 1193 0 R (0:3000) 3978 0 R (0:3001) 3979 0 R (0:3002) 3980 0 R (0:3003) 3981 0 R (0:3004) 3982 0 R (0:3005) 3983 0 R (0:3006) 3984 0 R (0:3007) 3985 0 R (0:3008) 3986 0 R (0:3009) 3987 0 R (0:301) 1139 0 R (0:3010) 3988 0 R (0:3011) 3989 0 R (0:3012) 3990 0 R (0:3013) 3991 0 R (0:3014) 3992 0 R (0:3015) 3993 0 R (0:3016) 3994 0 R (0:3017) 3995 0 R (0:3018) 3996 0 R (0:3019) 3997 0 R (0:302) 1200 0 R (0:3020) 3998 0 R (0:3021) 3999 0 R (0:3022) 4000 0 R (0:3023) 4001 0 R (0:3024) 4002 0 R (0:3025) 4003 0 R (0:3026) 4004 0 R (0:3027) 4005 0 R (0:3028) 4010 0 R (0:3029) 4011 0 R (0:303) 1201 0 R (0:3030) 4012 0 R (0:3031) 4013 0 R (0:3032) 4014 0 R (0:3033) 4015 0 R (0:3034) 4016 0 R (0:3035) 4017 0 R (0:3036) 4018 0 R (0:3037) 4019 0 R (0:3038) 4020 0 R (0:3039) 4021 0 R (0:304) 1202 0 R (0:3040) 4022 0 R (0:3041) 4023 0 R (0:3042) 4024 0 R (0:3043) 4025 0 R (0:3044) 4026 0 R (0:3045) 4027 0 R (0:3046) 4028 0 R (0:3047) 4029 0 R (0:3048) 4030 0 R (0:3049) 4031 0 R (0:3050) 4032 0 R (0:3051) 4033 0 R (0:3052) 4034 0 R (0:3053) 4035 0 R (0:3054) 4036 0 R (0:3055) 4037 0 R (0:3056) 4038 0 R (0:3057) 4039 0 R (0:3058) 4040 0 R (0:3059) 4041 0 R (0:3060) 4042 0 R (0:3061) 4043 0 R (0:3062) 4044 0 R (0:3063) 4045 0 R (0:3064) 4046 0 R (0:3065) 4047 0 R (0:3066) 4048 0 R (0:3067) 4049 0 R (0:3068) 4050 0 R (0:3069) 4051 0 R (0:307) 1203 0 R (0:3070) 4052 0 R (0:3071) 4053 0 R (0:3072) 4054 0 R (0:3073) 4055 0 R (0:3074) 4056 0 R (0:3075) 4057 0 R (0:3076) 4058 0 R (0:3077) 4059 0 R (0:3078) 4060 0 R (0:3079) 4061 0 R (0:308) 1204 0 R (0:3080) 4062 0 R (0:3081) 4063 0 R (0:3082) 4064 0 R (0:3083) 4065 0 R (0:3084) 4066 0 R (0:3085) 4067 0 R (0:3086) 4068 0 R (0:3087) 4069 0 R (0:3088) 4070 0 R (0:3089) 4071 0 R (0:309) 1205 0 R (0:3090) 4072 0 R (0:3091) 4073 0 R (0:3092) 4074 0 R (0:3093) 4075 0 R (0:3094) 4076 0 R (0:3095) 4077 0 R (0:3096) 4078 0 R (0:3097) 4079 0 R (0:3098) 4080 0 R (0:3099) 4081 0 R (0:31) 939 0 R (0:310) 1206 0 R (0:3100) 4082 0 R (0:3101) 4083 0 R (0:3102) 4084 0 R (0:3103) 4089 0 R (0:3104) 4090 0 R (0:3105) 4091 0 R (0:3106) 4092 0 R (0:3107) 4093 0 R (0:311) 1207 0 R (0:3110) 4094 0 R (0:3111) 4095 0 R (0:3112) 4096 0 R (0:3113) 4097 0 R (0:3114) 4098 0 R (0:3115) 4099 0 R (0:3116) 4100 0 R (0:3117) 4101 0 R (0:3118) 4102 0 R (0:3119) 4103 0 R (0:312) 1208 0 R (0:3120) 4104 0 R (0:3121) 4105 0 R (0:3122) 4106 0 R (0:3123) 4107 0 R (0:3124) 4108 0 R (0:3125) 4109 0 R (0:3126) 4110 0 R (0:3127) 4111 0 R (0:3128) 4112 0 R (0:3129) 4113 0 R (0:313) 1209 0 R (0:3130) 4114 0 R (0:3131) 4115 0 R (0:3132) 4116 0 R (0:3133) 4117 0 R (0:3134) 4118 0 R (0:3135) 4119 0 R (0:3136) 4120 0 R (0:3137) 4121 0 R (0:3138) 4122 0 R (0:3139) 4123 0 R (0:314) 1210 0 R (0:3140) 4124 0 R (0:3141) 4125 0 R (0:3142) 4126 0 R (0:3143) 4127 0 R (0:3144) 4128 0 R (0:3145) 4129 0 R (0:3146) 4130 0 R (0:3147) 4131 0 R (0:3148) 4132 0 R (0:3149) 4133 0 R (0:315) 1211 0 R (0:3150) 4134 0 R (0:3151) 4135 0 R (0:3152) 4136 0 R (0:3153) 4137 0 R (0:3154) 4138 0 R (0:3155) 4139 0 R (0:3156) 4140 0 R (0:3157) 4141 0 R (0:3158) 4142 0 R (0:3159) 4143 0 R (0:316) 1212 0 R (0:3160) 4148 0 R (0:3161) 4149 0 R (0:3162) 4150 0 R (0:3163) 4151 0 R (0:3164) 4152 0 R (0:3165) 4153 0 R (0:3166) 4154 0 R (0:3167) 4155 0 R (0:3168) 4156 0 R (0:3169) 4157 0 R (0:317) 1213 0 R (0:3170) 4158 0 R (0:3171) 4159 0 R (0:3172) 4160 0 R (0:3173) 4161 0 R (0:3174) 4162 0 R (0:3175) 4163 0 R (0:3176) 4164 0 R (0:3177) 4165 0 R (0:3178) 4166 0 R (0:3179) 4167 0 R (0:318) 1214 0 R (0:3180) 4168 0 R (0:3181) 4169 0 R (0:3182) 4170 0 R (0:3183) 4171 0 R (0:3184) 4172 0 R (0:3185) 4173 0 R (0:3186) 4174 0 R (0:3187) 4175 0 R (0:3188) 4176 0 R (0:3189) 4177 0 R (0:319) 1215 0 R (0:3190) 4178 0 R (0:3191) 4179 0 R (0:3192) 4180 0 R (0:3193) 4181 0 R (0:3194) 4182 0 R (0:3195) 4183 0 R (0:3196) 4184 0 R (0:3197) 4185 0 R (0:3198) 4186 0 R (0:3199) 4187 0 R (0:320) 1216 0 R (0:3200) 4188 0 R (0:3201) 4189 0 R (0:3202) 4190 0 R (0:3203) 4191 0 R (0:3204) 4192 0 R (0:3205) 4193 0 R (0:3206) 4194 0 R (0:3207) 4195 0 R (0:3208) 4196 0 R (0:3209) 4197 0 R (0:321) 1217 0 R (0:3210) 4198 0 R (0:3211) 4199 0 R (0:3212) 4200 0 R (0:3213) 4201 0 R (0:3214) 4202 0 R (0:3215) 4203 0 R (0:3216) 4204 0 R (0:3217) 4205 0 R (0:3218) 4206 0 R (0:3219) 4207 0 R (0:322) 1218 0 R (0:3220) 4208 0 R (0:3221) 4209 0 R (0:3222) 4210 0 R (0:3223) 4215 0 R (0:3224) 4216 0 R (0:3225) 4217 0 R (0:3226) 4218 0 R (0:3227) 4219 0 R (0:3228) 4220 0 R (0:3229) 4221 0 R (0:323) 1219 0 R (0:3230) 4222 0 R (0:3231) 4223 0 R (0:3232) 4224 0 R (0:3233) 4225 0 R (0:3234) 4226 0 R (0:3235) 4227 0 R (0:3236) 4228 0 R (0:3237) 4229 0 R (0:3238) 4230 0 R (0:3239) 4231 0 R (0:324) 1220 0 R (0:3240) 4232 0 R (0:3241) 4233 0 R (0:3242) 4234 0 R (0:3243) 4235 0 R (0:3244) 4236 0 R (0:3245) 4237 0 R (0:3246) 4238 0 R (0:3247) 4239 0 R (0:3248) 4240 0 R (0:3249) 4241 0 R (0:325) 1221 0 R (0:3250) 4242 0 R (0:3251) 4243 0 R (0:3252) 4244 0 R (0:3253) 4245 0 R (0:3254) 4246 0 R (0:3255) 4247 0 R (0:3256) 4248 0 R (0:3257) 4249 0 R (0:3258) 4250 0 R (0:3259) 4251 0 R (0:326) 1222 0 R (0:3260) 4252 0 R (0:3261) 4253 0 R (0:3262) 4254 0 R (0:3263) 4255 0 R (0:3266) 4256 0 R (0:3267) 4257 0 R (0:3268) 4258 0 R (0:3269) 4259 0 R (0:327) 1223 0 R (0:3270) 4260 0 R (0:3271) 4261 0 R (0:3272) 4262 0 R (0:3273) 4263 0 R (0:3274) 4264 0 R (0:3275) 4265 0 R (0:3276) 4266 0 R (0:3277) 4267 0 R (0:3278) 4268 0 R (0:3279) 4269 0 R (0:328) 1224 0 R (0:3280) 4270 0 R (0:3281) 4271 0 R (0:3282) 4272 0 R (0:3283) 4273 0 R (0:3284) 4274 0 R (0:3285) 4280 0 R (0:3286) 4281 0 R (0:3287) 4282 0 R (0:3288) 4283 0 R (0:3289) 4284 0 R (0:329) 1225 0 R (0:3290) 4285 0 R (0:3291) 4286 0 R (0:3292) 4287 0 R (0:3293) 4288 0 R (0:3294) 4289 0 R (0:3295) 4290 0 R (0:3296) 4291 0 R (0:3297) 4292 0 R (0:3298) 4293 0 R (0:3299) 4294 0 R (0:330) 1226 0 R (0:3300) 4295 0 R (0:3301) 4296 0 R (0:3302) 4297 0 R (0:3303) 4298 0 R (0:3304) 4299 0 R (0:3305) 4300 0 R (0:3306) 4301 0 R (0:3307) 4302 0 R (0:3308) 4303 0 R (0:3309) 4304 0 R (0:331) 1227 0 R (0:3310) 4305 0 R (0:3311) 4306 0 R (0:3312) 4307 0 R (0:3313) 4308 0 R (0:3314) 4309 0 R (0:3315) 4310 0 R (0:3316) 4311 0 R (0:3317) 4312 0 R (0:3318) 4313 0 R (0:3319) 4314 0 R (0:332) 1228 0 R (0:3320) 4315 0 R (0:3321) 4316 0 R (0:3322) 4317 0 R (0:3323) 4318 0 R (0:3324) 4319 0 R (0:3325) 4320 0 R (0:3326) 4321 0 R (0:3327) 4322 0 R (0:3328) 4323 0 R (0:3329) 4324 0 R (0:333) 1229 0 R (0:3330) 4325 0 R (0:3331) 4326 0 R (0:3332) 4327 0 R (0:3333) 4328 0 R (0:3334) 4329 0 R (0:3335) 4330 0 R (0:3336) 4331 0 R (0:3337) 4332 0 R (0:3338) 4333 0 R (0:3339) 4334 0 R (0:334) 1230 0 R (0:3340) 4335 0 R (0:3341) 4336 0 R (0:3342) 4337 0 R (0:3343) 4338 0 R (0:3344) 4339 0 R (0:3345) 4340 0 R (0:3346) 4341 0 R (0:3347) 4342 0 R (0:3348) 4343 0 R (0:3349) 4344 0 R (0:335) 1231 0 R (0:3350) 4345 0 R (0:3351) 4350 0 R (0:3352) 4351 0 R (0:3353) 4352 0 R (0:3354) 4353 0 R (0:3355) 4354 0 R (0:3356) 4355 0 R (0:3357) 4356 0 R (0:3358) 4357 0 R (0:3359) 4358 0 R (0:336) 1232 0 R (0:3360) 4359 0 R (0:3361) 4360 0 R (0:3362) 4361 0 R (0:3363) 4362 0 R (0:3364) 4363 0 R (0:3365) 4364 0 R (0:3366) 4365 0 R (0:3367) 4366 0 R (0:3368) 4367 0 R (0:3369) 4368 0 R (0:337) 1233 0 R (0:3370) 4369 0 R (0:3371) 4370 0 R (0:3372) 4371 0 R (0:3373) 4372 0 R (0:3376) 4373 0 R (0:3377) 4374 0 R (0:3378) 4375 0 R (0:3379) 4376 0 R (0:338) 1234 0 R (0:3380) 4377 0 R (0:3381) 4378 0 R (0:3382) 4379 0 R (0:3383) 4380 0 R (0:3384) 4381 0 R (0:3385) 4382 0 R (0:3386) 4383 0 R (0:3387) 4384 0 R (0:3388) 4385 0 R (0:3389) 4386 0 R (0:339) 1235 0 R (0:3390) 4387 0 R (0:3391) 4388 0 R (0:3392) 4389 0 R (0:3393) 4390 0 R (0:3394) 4391 0 R (0:3395) 4392 0 R (0:3396) 4393 0 R (0:3397) 4394 0 R (0:340) 1236 0 R (0:3400) 4395 0 R (0:3401) 4396 0 R (0:3402) 4397 0 R (0:3403) 4402 0 R (0:3404) 4403 0 R (0:3405) 4404 0 R (0:3406) 4405 0 R (0:3407) 4406 0 R (0:3408) 4407 0 R (0:3409) 4408 0 R (0:3410) 4409 0 R (0:3411) 4410 0 R (0:3412) 4411 0 R (0:3413) 4412 0 R (0:3414) 4413 0 R (0:3415) 4414 0 R (0:3416) 4415 0 R (0:3417) 4416 0 R (0:3418) 4417 0 R (0:3419) 4418 0 R (0:3420) 4419 0 R (0:3421) 4420 0 R (0:3422) 4421 0 R (0:3423) 4422 0 R (0:3424) 4423 0 R (0:3425) 4424 0 R (0:3426) 4425 0 R (0:3427) 4426 0 R (0:3428) 4427 0 R (0:3429) 4428 0 R (0:343) 1241 0 R (0:3430) 4429 0 R (0:3431) 4430 0 R (0:3432) 4431 0 R (0:3433) 4432 0 R (0:3434) 4433 0 R (0:3435) 4434 0 R (0:3436) 4435 0 R (0:3437) 4436 0 R (0:3438) 4437 0 R (0:3439) 4438 0 R (0:344) 1242 0 R (0:3440) 4439 0 R (0:3441) 4440 0 R (0:3442) 4441 0 R (0:3443) 4442 0 R (0:3444) 4443 0 R (0:3445) 4444 0 R (0:3446) 4445 0 R (0:3447) 4446 0 R (0:3448) 4447 0 R (0:3449) 4448 0 R (0:345) 1243 0 R (0:3450) 4449 0 R (0:3451) 4450 0 R (0:3452) 4451 0 R (0:3453) 4452 0 R (0:3454) 4453 0 R (0:3455) 4454 0 R (0:3456) 4455 0 R (0:3457) 4456 0 R (0:3458) 4457 0 R (0:3459) 4458 0 R (0:346) 1199 0 R (0:3460) 4459 0 R (0:3461) 4460 0 R (0:3462) 4461 0 R (0:3463) 4462 0 R (0:3464) 4468 0 R (0:3465) 4469 0 R (0:3466) 4470 0 R (0:3467) 4471 0 R (0:3468) 4472 0 R (0:3469) 4473 0 R (0:3470) 4474 0 R (0:3471) 4475 0 R (0:3472) 4476 0 R (0:3473) 4477 0 R (0:3474) 4478 0 R (0:3475) 4479 0 R (0:3476) 4480 0 R (0:3477) 4481 0 R (0:3478) 4482 0 R (0:3479) 4483 0 R (0:3480) 4484 0 R (0:3481) 4485 0 R (0:3484) 4486 0 R (0:3485) 4487 0 R (0:3486) 4488 0 R (0:3487) 4489 0 R (0:3488) 4490 0 R (0:3489) 4491 0 R (0:349) 1244 0 R (0:3490) 4492 0 R (0:3491) 4493 0 R (0:3492) 4494 0 R (0:3493) 4495 0 R (0:3494) 4496 0 R (0:3495) 4497 0 R (0:3496) 4498 0 R (0:3497) 4499 0 R (0:3498) 4500 0 R (0:3499) 4501 0 R (0:350) 1245 0 R (0:3500) 4502 0 R (0:3501) 4503 0 R (0:3502) 4504 0 R (0:3503) 4505 0 R (0:3504) 4506 0 R (0:3505) 4507 0 R (0:3508) 4512 0 R (0:3509) 4513 0 R (0:351) 1246 0 R (0:3510) 4514 0 R (0:3511) 4467 0 R (0:3514) 4515 0 R (0:3515) 4516 0 R (0:3516) 4517 0 R (0:3517) 4518 0 R (0:3518) 4519 0 R (0:3519) 4520 0 R (0:352) 1247 0 R (0:3520) 4521 0 R (0:3521) 4522 0 R (0:3522) 4523 0 R (0:3523) 4524 0 R (0:3524) 4525 0 R (0:3525) 4526 0 R (0:3526) 4527 0 R (0:3527) 4528 0 R (0:3528) 4529 0 R (0:3529) 4530 0 R (0:353) 1248 0 R (0:3532) 4531 0 R (0:3533) 4532 0 R (0:3534) 4533 0 R (0:3535) 4534 0 R (0:3536) 4535 0 R (0:3537) 4536 0 R (0:3538) 4537 0 R (0:3539) 4538 0 R (0:354) 1249 0 R (0:3540) 4539 0 R (0:3541) 4540 0 R (0:3542) 4541 0 R (0:3543) 4542 0 R (0:3544) 4543 0 R (0:3545) 4544 0 R (0:3546) 4545 0 R (0:3547) 4546 0 R (0:3548) 4551 0 R (0:3549) 4552 0 R (0:355) 1250 0 R (0:3550) 4553 0 R (0:3551) 4554 0 R (0:3552) 4555 0 R (0:3553) 4556 0 R (0:3554) 4557 0 R (0:3555) 4558 0 R (0:3556) 4559 0 R (0:3557) 4560 0 R (0:3558) 4561 0 R (0:3559) 4562 0 R (0:356) 1251 0 R (0:3560) 4563 0 R (0:3561) 4564 0 R (0:3562) 4565 0 R (0:3563) 4566 0 R (0:3564) 4567 0 R (0:3565) 4568 0 R (0:3566) 4569 0 R (0:3567) 4570 0 R (0:3568) 4571 0 R (0:3569) 4572 0 R (0:357) 1252 0 R (0:3570) 4573 0 R (0:3571) 4574 0 R (0:3572) 4575 0 R (0:3573) 4576 0 R (0:3574) 4577 0 R (0:3575) 4578 0 R (0:3576) 4579 0 R (0:3577) 4580 0 R (0:3578) 4581 0 R (0:3579) 4582 0 R (0:358) 1253 0 R (0:3580) 4583 0 R (0:3581) 4584 0 R (0:3582) 4585 0 R (0:3583) 4586 0 R (0:3584) 4587 0 R (0:3585) 4588 0 R (0:3586) 4589 0 R (0:3587) 4590 0 R (0:3588) 4591 0 R (0:3589) 4592 0 R (0:359) 1254 0 R (0:3590) 4593 0 R (0:3591) 4594 0 R (0:3592) 4595 0 R (0:3593) 4596 0 R (0:3594) 4597 0 R (0:3595) 4598 0 R (0:3596) 4599 0 R (0:3597) 4600 0 R (0:3598) 4601 0 R (0:3599) 4602 0 R (0:360) 1255 0 R (0:3600) 4603 0 R (0:3601) 4604 0 R (0:3602) 4605 0 R (0:3603) 4606 0 R (0:3604) 4607 0 R (0:3605) 4608 0 R (0:3606) 4609 0 R (0:3607) 4610 0 R (0:3608) 4611 0 R (0:3609) 4612 0 R (0:361) 1256 0 R (0:3610) 4613 0 R (0:3611) 4614 0 R (0:3612) 4615 0 R (0:3613) 4616 0 R (0:3614) 4617 0 R (0:3615) 4618 0 R (0:3616) 4619 0 R (0:3617) 4625 0 R (0:3618) 4626 0 R (0:3619) 4627 0 R (0:362) 1257 0 R (0:3622) 4628 0 R (0:3623) 4629 0 R (0:3624) 4630 0 R (0:3625) 4631 0 R (0:3626) 4632 0 R (0:3627) 4633 0 R (0:3628) 4634 0 R (0:3629) 4635 0 R (0:363) 1258 0 R (0:3630) 4636 0 R (0:3631) 4637 0 R (0:3632) 4638 0 R (0:3633) 4639 0 R (0:3634) 4640 0 R (0:3635) 4641 0 R (0:3636) 4642 0 R (0:3637) 4643 0 R (0:3638) 4644 0 R (0:3639) 4645 0 R (0:364) 1259 0 R (0:3640) 4646 0 R (0:3641) 4647 0 R (0:3642) 4648 0 R (0:3643) 4649 0 R (0:3644) 4650 0 R (0:3645) 4651 0 R (0:3646) 4652 0 R (0:3647) 4653 0 R (0:3648) 4654 0 R (0:3649) 4655 0 R (0:365) 1260 0 R (0:3650) 4656 0 R (0:3651) 4657 0 R (0:3652) 4658 0 R (0:3653) 4659 0 R (0:3654) 4660 0 R (0:3655) 4661 0 R (0:3656) 4662 0 R (0:3657) 4663 0 R (0:3658) 4664 0 R (0:3659) 4665 0 R (0:366) 1261 0 R (0:3660) 4666 0 R (0:3661) 4667 0 R (0:3662) 4668 0 R (0:3663) 4669 0 R (0:3664) 4670 0 R (0:3665) 4671 0 R (0:3666) 4672 0 R (0:3667) 4673 0 R (0:3668) 4674 0 R (0:3669) 4675 0 R (0:367) 1262 0 R (0:3670) 4676 0 R (0:3671) 4677 0 R (0:3672) 4682 0 R (0:3673) 4683 0 R (0:3674) 4684 0 R (0:3675) 4685 0 R (0:3676) 4686 0 R (0:3677) 4687 0 R (0:3678) 4688 0 R (0:3679) 4689 0 R (0:368) 1263 0 R (0:3680) 4690 0 R (0:3681) 4691 0 R (0:3682) 4692 0 R (0:3683) 4693 0 R (0:3684) 4694 0 R (0:3685) 4695 0 R (0:3686) 4696 0 R (0:3687) 4697 0 R (0:3688) 4698 0 R (0:3689) 4699 0 R (0:3690) 4700 0 R (0:3691) 4701 0 R (0:3692) 4702 0 R (0:3693) 4703 0 R (0:3694) 4704 0 R (0:3695) 4705 0 R (0:3696) 4706 0 R (0:3697) 4707 0 R (0:3698) 4708 0 R (0:3699) 4709 0 R (0:3700) 4710 0 R (0:3701) 4711 0 R (0:3702) 4712 0 R (0:3703) 4713 0 R (0:3704) 4714 0 R (0:3705) 4715 0 R (0:3706) 4716 0 R (0:3707) 4717 0 R (0:3708) 4718 0 R (0:3709) 4719 0 R (0:371) 1264 0 R (0:3710) 4720 0 R (0:3711) 4721 0 R (0:3712) 4722 0 R (0:3713) 4723 0 R (0:3714) 4724 0 R (0:3715) 4725 0 R (0:3716) 4726 0 R (0:3717) 4727 0 R (0:3718) 4728 0 R (0:3719) 4729 0 R (0:372) 1265 0 R (0:3720) 4730 0 R (0:3721) 4731 0 R (0:3722) 4732 0 R (0:3723) 4733 0 R (0:3724) 4734 0 R (0:3725) 4735 0 R (0:3726) 4736 0 R (0:3727) 4737 0 R (0:3728) 4738 0 R (0:3729) 4739 0 R (0:373) 1266 0 R (0:3730) 4740 0 R (0:3731) 4741 0 R (0:3732) 4742 0 R (0:3733) 4743 0 R (0:3734) 4744 0 R (0:3735) 4745 0 R (0:3736) 4746 0 R (0:3737) 4747 0 R (0:3738) 4748 0 R (0:3739) 4749 0 R (0:374) 1267 0 R (0:3740) 4750 0 R (0:3741) 4751 0 R (0:3742) 4756 0 R (0:3743) 4757 0 R (0:3744) 4758 0 R (0:3745) 4759 0 R (0:3746) 4760 0 R (0:3747) 4761 0 R (0:3748) 4762 0 R (0:3749) 4763 0 R (0:375) 1268 0 R (0:3750) 4764 0 R (0:3751) 4765 0 R (0:3752) 4766 0 R (0:3753) 4767 0 R (0:3754) 4768 0 R (0:3755) 4769 0 R (0:3756) 4770 0 R (0:3757) 4771 0 R (0:3758) 4772 0 R (0:3759) 4773 0 R (0:376) 1269 0 R (0:3760) 4774 0 R (0:3761) 4775 0 R (0:3762) 4776 0 R (0:3763) 4777 0 R (0:3764) 4778 0 R (0:3765) 4779 0 R (0:3766) 4780 0 R (0:3767) 4781 0 R (0:3768) 4782 0 R (0:3769) 4783 0 R (0:377) 1270 0 R (0:3770) 4784 0 R (0:3771) 4785 0 R (0:3772) 4786 0 R (0:3773) 4787 0 R (0:3774) 4788 0 R (0:3775) 4789 0 R (0:3776) 4790 0 R (0:3777) 4791 0 R (0:3778) 4792 0 R (0:3779) 4793 0 R (0:378) 1271 0 R (0:3780) 4794 0 R (0:3781) 4795 0 R (0:3782) 4796 0 R (0:3783) 4797 0 R (0:3784) 4798 0 R (0:3785) 4799 0 R (0:3786) 4800 0 R (0:3787) 4801 0 R (0:3788) 4802 0 R (0:3789) 4803 0 R (0:379) 1272 0 R (0:3790) 4804 0 R (0:3791) 4805 0 R (0:3792) 4806 0 R (0:3793) 4807 0 R (0:3794) 4808 0 R (0:3795) 4809 0 R (0:3796) 4810 0 R (0:3797) 4811 0 R (0:3798) 4812 0 R (0:3799) 4813 0 R (0:380) 1273 0 R (0:3800) 4814 0 R (0:3801) 4815 0 R (0:3802) 4816 0 R (0:3803) 4817 0 R (0:3804) 4818 0 R (0:3805) 4819 0 R (0:3806) 4820 0 R (0:3807) 4821 0 R (0:3808) 4822 0 R (0:3809) 4823 0 R (0:381) 1278 0 R (0:3810) 4824 0 R (0:3811) 4825 0 R (0:3812) 4826 0 R (0:3813) 4827 0 R (0:3814) 4828 0 R (0:3815) 4829 0 R (0:3816) 4830 0 R (0:3817) 4835 0 R (0:3818) 4836 0 R (0:3819) 4837 0 R (0:382) 1279 0 R (0:3820) 4838 0 R (0:3821) 4839 0 R (0:3822) 4840 0 R (0:3823) 4841 0 R (0:3824) 4842 0 R (0:3827) 4843 0 R (0:3828) 4844 0 R (0:3829) 4845 0 R (0:383) 1280 0 R (0:3830) 4846 0 R (0:3831) 4847 0 R (0:3832) 4848 0 R (0:3833) 4849 0 R (0:3834) 4850 0 R (0:3835) 4851 0 R (0:3836) 4852 0 R (0:3837) 4853 0 R (0:3838) 4854 0 R (0:3839) 4855 0 R (0:384) 1281 0 R (0:3840) 4856 0 R (0:3841) 4857 0 R (0:3842) 4858 0 R (0:3843) 4859 0 R (0:3844) 4860 0 R (0:3845) 4861 0 R (0:3846) 4862 0 R (0:3847) 4863 0 R (0:3848) 4864 0 R (0:3849) 4865 0 R (0:385) 1282 0 R (0:3850) 4866 0 R (0:3851) 4867 0 R (0:3852) 4868 0 R (0:3853) 4869 0 R (0:3854) 4870 0 R (0:3855) 4871 0 R (0:3856) 4872 0 R (0:3857) 4873 0 R (0:3858) 4874 0 R (0:3859) 4875 0 R (0:386) 1283 0 R (0:3860) 4876 0 R (0:3861) 4877 0 R (0:3862) 4878 0 R (0:3863) 4879 0 R (0:3864) 4880 0 R (0:3865) 4881 0 R (0:3866) 4882 0 R (0:3867) 4883 0 R (0:3868) 4884 0 R (0:3869) 4885 0 R (0:387) 1284 0 R (0:3870) 4886 0 R (0:3871) 4887 0 R (0:3872) 4888 0 R (0:3873) 4893 0 R (0:3874) 4894 0 R (0:3875) 4895 0 R (0:3876) 4896 0 R (0:3877) 4897 0 R (0:3878) 4898 0 R (0:3879) 4899 0 R (0:388) 1285 0 R (0:3880) 4900 0 R (0:3881) 4901 0 R (0:3882) 4902 0 R (0:3883) 4903 0 R (0:3884) 4904 0 R (0:3885) 4905 0 R (0:3886) 4906 0 R (0:3887) 4907 0 R (0:3888) 4908 0 R (0:3889) 4909 0 R (0:389) 1286 0 R (0:3890) 4910 0 R (0:3891) 4911 0 R (0:3892) 4912 0 R (0:3893) 4913 0 R (0:3894) 4914 0 R (0:3895) 4915 0 R (0:3896) 4916 0 R (0:3897) 4917 0 R (0:3898) 4918 0 R (0:3899) 4919 0 R (0:390) 1287 0 R (0:3900) 4920 0 R (0:3901) 4921 0 R (0:3902) 4922 0 R (0:3903) 4923 0 R (0:3904) 4924 0 R (0:3905) 4925 0 R (0:3906) 4926 0 R (0:3907) 4927 0 R (0:3908) 4928 0 R (0:3909) 4929 0 R (0:391) 1288 0 R (0:3910) 4930 0 R (0:3911) 4931 0 R (0:3912) 4932 0 R (0:3913) 4933 0 R (0:3914) 4934 0 R (0:3915) 4935 0 R (0:3916) 4936 0 R (0:3917) 4937 0 R (0:3918) 4938 0 R (0:3919) 4939 0 R (0:392) 1289 0 R (0:3920) 4940 0 R (0:3921) 4941 0 R (0:3922) 4942 0 R (0:3923) 4943 0 R (0:3924) 4944 0 R (0:3925) 4945 0 R (0:3926) 4946 0 R (0:3927) 4947 0 R (0:3928) 4948 0 R (0:3929) 4949 0 R (0:393) 1290 0 R (0:3930) 4950 0 R (0:3931) 4951 0 R (0:3932) 4952 0 R (0:3933) 4953 0 R (0:3934) 4954 0 R (0:3935) 4955 0 R (0:3936) 4956 0 R (0:3937) 4957 0 R (0:3938) 4958 0 R (0:3939) 4959 0 R (0:394) 1291 0 R (0:3940) 4960 0 R (0:3941) 4965 0 R (0:3942) 4966 0 R (0:3943) 4967 0 R (0:3944) 4968 0 R (0:3945) 4969 0 R (0:3946) 4970 0 R (0:3947) 4971 0 R (0:3948) 4972 0 R (0:3949) 4973 0 R (0:395) 1292 0 R (0:3950) 4974 0 R (0:3951) 4975 0 R (0:3952) 4976 0 R (0:3953) 4977 0 R (0:3954) 4978 0 R (0:3955) 4979 0 R (0:3956) 4980 0 R (0:3957) 4981 0 R (0:3958) 4982 0 R (0:3959) 4983 0 R (0:396) 1293 0 R (0:3960) 4984 0 R (0:3961) 4985 0 R (0:3962) 4986 0 R (0:3963) 4987 0 R (0:3964) 4988 0 R (0:3965) 4989 0 R (0:3966) 4990 0 R (0:3967) 4991 0 R (0:3968) 4992 0 R (0:3969) 4993 0 R (0:397) 1294 0 R (0:3970) 4994 0 R (0:3971) 4995 0 R (0:3972) 4996 0 R (0:3973) 4997 0 R (0:3974) 4998 0 R (0:3975) 4999 0 R (0:3976) 5000 0 R (0:3977) 5001 0 R (0:3978) 5002 0 R (0:3979) 5003 0 R (0:398) 1295 0 R (0:3980) 5004 0 R (0:3981) 5005 0 R (0:3982) 5006 0 R (0:3983) 5007 0 R (0:3984) 5008 0 R (0:3985) 5009 0 R (0:3986) 5010 0 R (0:3987) 5011 0 R (0:3988) 5012 0 R (0:3989) 5013 0 R (0:399) 1296 0 R (0:3990) 5014 0 R (0:3991) 5015 0 R (0:3992) 5016 0 R (0:3993) 5017 0 R (0:3994) 5018 0 R (0:3995) 5019 0 R (0:3996) 5020 0 R (0:3997) 5021 0 R (0:3998) 5022 0 R (0:3999) 5023 0 R (0:400) 1297 0 R (0:4000) 5024 0 R (0:4001) 5025 0 R (0:4002) 5026 0 R (0:4003) 5027 0 R (0:4004) 5028 0 R (0:4005) 5029 0 R (0:4006) 5030 0 R (0:4007) 5031 0 R (0:4008) 5032 0 R (0:4009) 5033 0 R (0:401) 1298 0 R (0:4010) 5039 0 R (0:4011) 5040 0 R (0:4012) 5041 0 R (0:4013) 5042 0 R (0:4014) 5043 0 R (0:4015) 5044 0 R (0:4016) 5045 0 R (0:4017) 5046 0 R (0:4018) 5047 0 R (0:4019) 5048 0 R (0:402) 1299 0 R (0:4020) 5049 0 R (0:4021) 5050 0 R (0:4022) 5051 0 R (0:4023) 5052 0 R (0:4024) 5053 0 R (0:4025) 5054 0 R (0:4026) 5055 0 R (0:4027) 5056 0 R (0:4028) 5057 0 R (0:4029) 5058 0 R (0:403) 1300 0 R (0:4030) 5059 0 R (0:4031) 5060 0 R (0:4032) 5061 0 R (0:4033) 5062 0 R (0:4034) 5063 0 R (0:4035) 5064 0 R (0:4036) 5065 0 R (0:4037) 5066 0 R (0:4038) 5067 0 R (0:4039) 5068 0 R (0:404) 1301 0 R (0:4040) 5069 0 R (0:4041) 5070 0 R (0:4042) 5071 0 R (0:4043) 5072 0 R (0:4044) 5073 0 R (0:4045) 5074 0 R (0:4046) 5075 0 R (0:4047) 5076 0 R (0:4048) 5077 0 R (0:4049) 5078 0 R (0:405) 1302 0 R (0:4050) 5079 0 R (0:4051) 5080 0 R (0:4052) 5081 0 R (0:4053) 5082 0 R (0:4054) 5083 0 R (0:4055) 5084 0 R (0:4056) 5085 0 R (0:4057) 5086 0 R (0:4058) 5087 0 R (0:4059) 5088 0 R (0:406) 1303 0 R (0:4060) 5089 0 R (0:4063) 5090 0 R (0:4064) 5091 0 R (0:4065) 5092 0 R (0:4066) 5093 0 R (0:4067) 5094 0 R (0:4068) 5095 0 R (0:4069) 5096 0 R (0:407) 1304 0 R (0:4070) 5101 0 R (0:4071) 5102 0 R (0:4072) 5103 0 R (0:4073) 5104 0 R (0:4074) 5105 0 R (0:4075) 5106 0 R (0:4076) 5107 0 R (0:4077) 5108 0 R (0:4078) 5109 0 R (0:4079) 5110 0 R (0:408) 1305 0 R (0:4080) 5111 0 R (0:4081) 5112 0 R (0:4082) 5113 0 R (0:4083) 5114 0 R (0:4084) 5115 0 R (0:4085) 5116 0 R (0:4086) 5117 0 R (0:4087) 5118 0 R (0:4088) 5119 0 R (0:4089) 5120 0 R (0:409) 1306 0 R (0:4090) 5121 0 R (0:4091) 5122 0 R (0:4092) 5123 0 R (0:4093) 5124 0 R (0:4094) 5125 0 R (0:4095) 5126 0 R (0:4096) 5127 0 R (0:4097) 5128 0 R (0:4098) 5129 0 R (0:4099) 5130 0 R (0:4100) 5131 0 R (0:4101) 5132 0 R (0:4102) 5133 0 R (0:4103) 5134 0 R (0:4104) 5135 0 R (0:4105) 5136 0 R (0:4106) 5137 0 R (0:4107) 5138 0 R (0:4108) 5139 0 R (0:4109) 5140 0 R (0:4110) 5141 0 R (0:4111) 5142 0 R (0:4112) 5143 0 R (0:4113) 5144 0 R (0:4114) 5145 0 R (0:4115) 5146 0 R (0:4116) 5147 0 R (0:4117) 5148 0 R (0:4118) 5149 0 R (0:4119) 5150 0 R (0:412) 1307 0 R (0:4120) 5151 0 R (0:4121) 5152 0 R (0:4122) 5153 0 R (0:4123) 5154 0 R (0:4124) 5155 0 R (0:4125) 5156 0 R (0:4126) 5157 0 R (0:4127) 5158 0 R (0:4128) 5159 0 R (0:4129) 5160 0 R (0:413) 1308 0 R (0:4130) 5161 0 R (0:4131) 5162 0 R (0:4132) 5163 0 R (0:4133) 5164 0 R (0:4134) 5165 0 R (0:4135) 5166 0 R (0:4136) 5167 0 R (0:4137) 5168 0 R (0:4138) 5169 0 R (0:4139) 5170 0 R (0:414) 1309 0 R (0:4140) 5175 0 R (0:4141) 5176 0 R (0:4142) 5177 0 R (0:4143) 5178 0 R (0:4144) 5179 0 R (0:4145) 5180 0 R (0:4146) 5181 0 R (0:4147) 5182 0 R (0:4148) 5183 0 R (0:4149) 5184 0 R (0:415) 1310 0 R (0:4150) 5185 0 R (0:4151) 5186 0 R (0:4152) 5187 0 R (0:4153) 5188 0 R (0:4154) 5189 0 R (0:4155) 5190 0 R (0:4156) 5191 0 R (0:4157) 5192 0 R (0:4158) 5193 0 R (0:4159) 5194 0 R (0:416) 1311 0 R (0:4160) 5195 0 R (0:4161) 5196 0 R (0:4162) 5197 0 R (0:4163) 5198 0 R (0:4164) 5199 0 R (0:4165) 5200 0 R (0:4166) 5201 0 R (0:4167) 5202 0 R (0:4168) 5203 0 R (0:4169) 5204 0 R (0:417) 1312 0 R (0:4170) 5205 0 R (0:4171) 5206 0 R (0:4172) 5207 0 R (0:4173) 5208 0 R (0:4174) 5209 0 R (0:4175) 5210 0 R (0:4176) 5211 0 R (0:4177) 5212 0 R (0:4178) 5213 0 R (0:4179) 5214 0 R (0:418) 1313 0 R (0:4180) 5215 0 R (0:4181) 5216 0 R (0:4182) 5217 0 R (0:4183) 5218 0 R (0:4184) 5219 0 R (0:4185) 5220 0 R (0:4186) 5221 0 R (0:4187) 5222 0 R (0:4188) 5223 0 R (0:4189) 5224 0 R (0:419) 1314 0 R (0:4190) 5225 0 R (0:4191) 5226 0 R (0:4192) 5227 0 R (0:4193) 5228 0 R (0:4194) 5229 0 R (0:4195) 5230 0 R (0:4196) 5231 0 R (0:4197) 5232 0 R (0:4198) 5233 0 R (0:4199) 5234 0 R (0:420) 1315 0 R (0:4200) 5235 0 R (0:4201) 5236 0 R (0:4202) 5237 0 R (0:4203) 5238 0 R (0:4204) 5239 0 R (0:4205) 5240 0 R (0:4206) 5241 0 R (0:4207) 5242 0 R (0:4208) 5243 0 R (0:4209) 5244 0 R (0:421) 1316 0 R (0:4210) 5245 0 R (0:4211) 5246 0 R (0:4212) 5247 0 R (0:4215) 5252 0 R (0:4216) 5253 0 R (0:4217) 5254 0 R (0:4218) 5255 0 R (0:4219) 5256 0 R (0:422) 1317 0 R (0:4220) 5257 0 R (0:4221) 5258 0 R (0:4222) 5259 0 R (0:4223) 5260 0 R (0:4224) 5261 0 R (0:4225) 5262 0 R (0:4226) 5263 0 R (0:4227) 5264 0 R (0:4228) 5265 0 R (0:4229) 5266 0 R (0:423) 1318 0 R (0:4230) 5267 0 R (0:4231) 5268 0 R (0:4232) 5269 0 R (0:4233) 5270 0 R (0:4234) 5271 0 R (0:4235) 5272 0 R (0:4236) 5273 0 R (0:4237) 5274 0 R (0:4238) 5275 0 R (0:4239) 5276 0 R (0:424) 1319 0 R (0:4240) 5277 0 R (0:4241) 5278 0 R (0:4242) 5279 0 R (0:4243) 5280 0 R (0:4244) 5281 0 R (0:4245) 5282 0 R (0:4246) 5283 0 R (0:4247) 5284 0 R (0:4248) 5285 0 R (0:4249) 5286 0 R (0:425) 1320 0 R (0:4250) 5287 0 R (0:4251) 5288 0 R (0:4252) 5289 0 R (0:4253) 5290 0 R (0:4254) 5291 0 R (0:4255) 5292 0 R (0:4256) 5293 0 R (0:4257) 5294 0 R (0:4258) 5295 0 R (0:4259) 5296 0 R (0:426) 1321 0 R (0:4260) 5297 0 R (0:4261) 5298 0 R (0:4262) 5299 0 R (0:4263) 5304 0 R (0:4264) 5305 0 R (0:4265) 5306 0 R (0:4266) 5307 0 R (0:4267) 5308 0 R (0:4268) 5309 0 R (0:4269) 5310 0 R (0:427) 1322 0 R (0:4270) 5311 0 R (0:4271) 5312 0 R (0:4274) 5313 0 R (0:4275) 5314 0 R (0:4276) 5315 0 R (0:4277) 5316 0 R (0:4278) 5317 0 R (0:4279) 5318 0 R (0:428) 1323 0 R (0:4280) 5319 0 R (0:4281) 5320 0 R (0:4282) 5321 0 R (0:4283) 5322 0 R (0:4284) 5323 0 R (0:4285) 5324 0 R (0:4286) 5325 0 R (0:4287) 5326 0 R (0:4288) 5327 0 R (0:4289) 5328 0 R (0:429) 1324 0 R (0:4290) 5329 0 R (0:4291) 5330 0 R (0:4292) 5331 0 R (0:4293) 5332 0 R (0:4294) 5333 0 R (0:4295) 5334 0 R (0:4298) 5335 0 R (0:4299) 5336 0 R (0:43) 941 0 R (0:430) 1325 0 R (0:4300) 5337 0 R (0:4301) 5338 0 R (0:4302) 5339 0 R (0:4303) 5344 0 R (0:4304) 5345 0 R (0:4305) 5346 0 R (0:4306) 5347 0 R (0:4307) 5348 0 R (0:4308) 5349 0 R (0:4309) 5350 0 R (0:431) 1326 0 R (0:4310) 5351 0 R (0:4311) 5352 0 R (0:4312) 5353 0 R (0:4313) 5354 0 R (0:4314) 5355 0 R (0:4315) 5356 0 R (0:4316) 5357 0 R (0:4317) 5358 0 R (0:4318) 5359 0 R (0:4319) 5360 0 R (0:432) 1327 0 R (0:4320) 5361 0 R (0:4321) 5362 0 R (0:4322) 5363 0 R (0:4323) 5364 0 R (0:4324) 5365 0 R (0:4325) 5366 0 R (0:4326) 5367 0 R (0:4327) 5368 0 R (0:4328) 5369 0 R (0:4329) 5370 0 R (0:433) 1328 0 R (0:4330) 5371 0 R (0:4331) 5372 0 R (0:4332) 5373 0 R (0:4333) 5374 0 R (0:4334) 5375 0 R (0:4335) 5376 0 R (0:4336) 5377 0 R (0:4337) 5378 0 R (0:4338) 5379 0 R (0:4339) 5380 0 R (0:434) 1329 0 R (0:4340) 5381 0 R (0:4341) 5382 0 R (0:4342) 5383 0 R (0:4343) 5384 0 R (0:4344) 5385 0 R (0:4345) 5386 0 R (0:4346) 5387 0 R (0:4347) 5388 0 R (0:4348) 5389 0 R (0:4349) 5390 0 R (0:435) 1330 0 R (0:4350) 5391 0 R (0:4351) 5392 0 R (0:4352) 5393 0 R (0:4353) 5394 0 R (0:4354) 5395 0 R (0:4355) 5396 0 R (0:4356) 5397 0 R (0:4357) 5398 0 R (0:4358) 5399 0 R (0:4359) 5400 0 R (0:436) 1331 0 R (0:4360) 5401 0 R (0:4361) 5402 0 R (0:4362) 5403 0 R (0:4363) 5404 0 R (0:4364) 5405 0 R (0:4365) 5406 0 R (0:4366) 5407 0 R (0:4367) 5408 0 R (0:4368) 5409 0 R (0:4369) 5416 0 R (0:437) 1336 0 R (0:4370) 5417 0 R (0:4371) 5418 0 R (0:4372) 5419 0 R (0:4373) 5420 0 R (0:4374) 5421 0 R (0:4375) 5422 0 R (0:4376) 5423 0 R (0:4377) 5424 0 R (0:4378) 5425 0 R (0:4379) 5426 0 R (0:4380) 5427 0 R (0:4381) 5428 0 R (0:4382) 5429 0 R (0:4383) 5430 0 R (0:4384) 5431 0 R (0:4385) 5432 0 R (0:4386) 5433 0 R (0:4387) 5434 0 R (0:4388) 5435 0 R (0:4389) 5436 0 R (0:4390) 5437 0 R (0:4391) 5438 0 R (0:4392) 5439 0 R (0:4393) 5440 0 R (0:4394) 5441 0 R (0:4395) 5442 0 R (0:4396) 5443 0 R (0:4397) 5444 0 R (0:4398) 5445 0 R (0:4399) 5446 0 R (0:44) 942 0 R (0:440) 1337 0 R (0:4400) 5447 0 R (0:4401) 5448 0 R (0:4402) 5449 0 R (0:4403) 5450 0 R (0:4404) 5451 0 R (0:4405) 5452 0 R (0:4406) 5453 0 R (0:4407) 5454 0 R (0:4408) 5455 0 R (0:4409) 5456 0 R (0:441) 1338 0 R (0:4410) 5457 0 R (0:4411) 5458 0 R (0:4412) 5459 0 R (0:4413) 5460 0 R (0:4414) 5461 0 R (0:4415) 5462 0 R (0:4416) 5463 0 R (0:4417) 5464 0 R (0:4418) 5465 0 R (0:4419) 5466 0 R (0:442) 1339 0 R (0:4420) 5467 0 R (0:4421) 5468 0 R (0:4422) 5469 0 R (0:4423) 5470 0 R (0:4424) 5471 0 R (0:4425) 5472 0 R (0:4428) 5477 0 R (0:4429) 5478 0 R (0:443) 1340 0 R (0:4430) 5479 0 R (0:4431) 5415 0 R (0:4434) 5480 0 R (0:4435) 5481 0 R (0:4436) 5482 0 R (0:4437) 5483 0 R (0:4438) 5484 0 R (0:4439) 5485 0 R (0:444) 1341 0 R (0:4440) 5486 0 R (0:4441) 5487 0 R (0:4442) 5488 0 R (0:4443) 5489 0 R (0:4444) 5490 0 R (0:4445) 5491 0 R (0:4446) 5492 0 R (0:4447) 5493 0 R (0:4448) 5494 0 R (0:4449) 5495 0 R (0:445) 1342 0 R (0:4450) 5496 0 R (0:4451) 5497 0 R (0:4452) 5498 0 R (0:4453) 5499 0 R (0:4454) 5500 0 R (0:4455) 5501 0 R (0:4456) 5502 0 R (0:4457) 5503 0 R (0:4458) 5504 0 R (0:4459) 5505 0 R (0:446) 1343 0 R (0:4460) 5506 0 R (0:4461) 5507 0 R (0:4462) 5508 0 R (0:4463) 5509 0 R (0:4464) 5510 0 R (0:4465) 5511 0 R (0:4466) 5512 0 R (0:4467) 5513 0 R (0:4468) 5514 0 R (0:4469) 5515 0 R (0:447) 1344 0 R (0:4470) 5516 0 R (0:4471) 5517 0 R (0:4472) 5518 0 R (0:4473) 5519 0 R (0:4474) 5520 0 R (0:4475) 5521 0 R (0:4476) 5522 0 R (0:4477) 5523 0 R (0:4478) 5524 0 R (0:4479) 5525 0 R (0:448) 1345 0 R (0:4480) 5526 0 R (0:4481) 5527 0 R (0:4482) 5528 0 R (0:4483) 5529 0 R (0:4484) 5534 0 R (0:4485) 5535 0 R (0:4486) 5536 0 R (0:4487) 5537 0 R (0:4488) 5538 0 R (0:4489) 5539 0 R (0:449) 1346 0 R (0:4490) 5540 0 R (0:4491) 5541 0 R (0:4492) 5542 0 R (0:4493) 5543 0 R (0:4494) 5544 0 R (0:4495) 5545 0 R (0:4496) 5546 0 R (0:4497) 5547 0 R (0:4498) 5548 0 R (0:4499) 5549 0 R (0:450) 1347 0 R (0:4500) 5550 0 R (0:4501) 5551 0 R (0:4502) 5552 0 R (0:4503) 5553 0 R (0:4504) 5554 0 R (0:4505) 5555 0 R (0:4506) 5556 0 R (0:4507) 5557 0 R (0:4508) 5558 0 R (0:4509) 5559 0 R (0:451) 1348 0 R (0:4510) 5560 0 R (0:4511) 5561 0 R (0:4512) 5562 0 R (0:4513) 5563 0 R (0:4514) 5564 0 R (0:4515) 5565 0 R (0:4516) 5566 0 R (0:4517) 5567 0 R (0:4518) 5568 0 R (0:4519) 5569 0 R (0:452) 1349 0 R (0:4520) 5570 0 R (0:4521) 5571 0 R (0:4522) 5572 0 R (0:4523) 5573 0 R (0:4524) 5574 0 R (0:4525) 5575 0 R (0:4526) 5576 0 R (0:4527) 5577 0 R (0:4528) 5578 0 R (0:4529) 5579 0 R (0:453) 1350 0 R (0:4530) 5580 0 R (0:4531) 5581 0 R (0:4532) 5582 0 R (0:4533) 5583 0 R (0:4534) 5584 0 R (0:4535) 5585 0 R (0:4536) 5586 0 R (0:4537) 5587 0 R (0:4538) 5588 0 R (0:4539) 5589 0 R (0:454) 1351 0 R (0:4540) 5590 0 R (0:4541) 5591 0 R (0:4542) 5592 0 R (0:4543) 5593 0 R (0:4544) 5594 0 R (0:4545) 5595 0 R (0:4546) 5596 0 R (0:4547) 5597 0 R (0:4548) 5598 0 R (0:4549) 5599 0 R (0:455) 1352 0 R (0:4550) 5600 0 R (0:4551) 5601 0 R (0:4552) 5602 0 R (0:4553) 5603 0 R (0:4554) 5608 0 R (0:4555) 5609 0 R (0:4556) 5610 0 R (0:4557) 5611 0 R (0:4558) 5612 0 R (0:4559) 5613 0 R (0:456) 1353 0 R (0:4560) 5614 0 R (0:4561) 5615 0 R (0:4562) 5616 0 R (0:4563) 5617 0 R (0:4564) 5618 0 R (0:4565) 5619 0 R (0:4566) 5620 0 R (0:4567) 5621 0 R (0:4568) 5622 0 R (0:4569) 5623 0 R (0:457) 1354 0 R (0:4570) 5624 0 R (0:4571) 5625 0 R (0:4572) 5626 0 R (0:4573) 5627 0 R (0:4574) 5628 0 R (0:4575) 5629 0 R (0:4576) 5630 0 R (0:4577) 5631 0 R (0:4578) 5632 0 R (0:4579) 5633 0 R (0:458) 1355 0 R (0:4580) 5634 0 R (0:4581) 5635 0 R (0:4582) 5636 0 R (0:4583) 5637 0 R (0:4584) 5638 0 R (0:4585) 5639 0 R (0:4586) 5640 0 R (0:4587) 5641 0 R (0:4588) 5642 0 R (0:4589) 5643 0 R (0:459) 1356 0 R (0:4590) 5644 0 R (0:4591) 5645 0 R (0:4592) 5646 0 R (0:4593) 5647 0 R (0:4594) 5648 0 R (0:4595) 5649 0 R (0:4596) 5650 0 R (0:4597) 5651 0 R (0:4598) 5652 0 R (0:4599) 5653 0 R (0:460) 1357 0 R (0:4600) 5654 0 R (0:4601) 5655 0 R (0:4602) 5656 0 R (0:4603) 5657 0 R (0:4604) 5658 0 R (0:4605) 5659 0 R (0:4606) 5660 0 R (0:4607) 5661 0 R (0:4608) 5662 0 R (0:4609) 5663 0 R (0:461) 1358 0 R (0:4610) 5664 0 R (0:4611) 5665 0 R (0:4612) 5666 0 R (0:4613) 5667 0 R (0:4614) 5668 0 R (0:4615) 5669 0 R (0:4616) 5670 0 R (0:4617) 5671 0 R (0:4618) 5672 0 R (0:4619) 5673 0 R (0:462) 1359 0 R (0:4620) 5674 0 R (0:4621) 5675 0 R (0:4622) 5680 0 R (0:4623) 5681 0 R (0:4624) 5682 0 R (0:4625) 5683 0 R (0:4626) 5684 0 R (0:4627) 5685 0 R (0:4628) 5686 0 R (0:4629) 5687 0 R (0:463) 1360 0 R (0:4630) 5688 0 R (0:4631) 5689 0 R (0:4632) 5690 0 R (0:4633) 5691 0 R (0:4634) 5692 0 R (0:4635) 5693 0 R (0:4636) 5694 0 R (0:4637) 5695 0 R (0:4638) 5696 0 R (0:4639) 5697 0 R (0:464) 1361 0 R (0:4640) 5698 0 R (0:4641) 5699 0 R (0:4642) 5700 0 R (0:4643) 5701 0 R (0:4644) 5702 0 R (0:4645) 5703 0 R (0:4646) 5704 0 R (0:4647) 5705 0 R (0:4648) 5706 0 R (0:4649) 5707 0 R (0:465) 1362 0 R (0:4650) 5708 0 R (0:4651) 5709 0 R (0:4652) 5710 0 R (0:4653) 5711 0 R (0:4654) 5712 0 R (0:4655) 5713 0 R (0:4656) 5714 0 R (0:4657) 5715 0 R (0:4658) 5716 0 R (0:4659) 5717 0 R (0:4660) 5718 0 R (0:4661) 5719 0 R (0:4662) 5720 0 R (0:4663) 5721 0 R (0:4664) 5722 0 R (0:4665) 5723 0 R (0:4666) 5724 0 R (0:4667) 5725 0 R (0:4668) 5726 0 R (0:4671) 5727 0 R (0:4672) 5728 0 R (0:4673) 5729 0 R (0:4674) 5730 0 R (0:4675) 5731 0 R (0:4676) 5732 0 R (0:4677) 5733 0 R (0:4678) 5734 0 R (0:4679) 5735 0 R (0:468) 1363 0 R (0:4680) 5736 0 R (0:4681) 5737 0 R (0:4682) 5738 0 R (0:4683) 5743 0 R (0:4684) 5744 0 R (0:4685) 5745 0 R (0:4686) 5746 0 R (0:4687) 5747 0 R (0:4688) 5748 0 R (0:4689) 5749 0 R (0:469) 1364 0 R (0:4690) 5750 0 R (0:4691) 5751 0 R (0:4692) 5752 0 R (0:4693) 5753 0 R (0:4694) 5754 0 R (0:4695) 5755 0 R (0:4696) 5756 0 R (0:4697) 5757 0 R (0:4698) 5758 0 R (0:4699) 5759 0 R (0:470) 1365 0 R (0:4702) 5760 0 R (0:4703) 5761 0 R (0:4704) 5762 0 R (0:4705) 5763 0 R (0:4706) 5764 0 R (0:4707) 5765 0 R (0:4708) 5766 0 R (0:4709) 5767 0 R (0:471) 1366 0 R (0:4710) 5768 0 R (0:4711) 5769 0 R (0:4712) 5770 0 R (0:4713) 5771 0 R (0:4714) 5772 0 R (0:4715) 5773 0 R (0:4716) 5774 0 R (0:4717) 5775 0 R (0:4718) 5776 0 R (0:4719) 5777 0 R (0:472) 1367 0 R (0:4720) 5778 0 R (0:4721) 5779 0 R (0:4722) 5780 0 R (0:4723) 5781 0 R (0:4726) 5782 0 R (0:4727) 5783 0 R (0:4728) 5784 0 R (0:4729) 5790 0 R (0:473) 1368 0 R (0:4730) 5791 0 R (0:4731) 5792 0 R (0:4732) 5793 0 R (0:4733) 5794 0 R (0:4734) 5795 0 R (0:4735) 5796 0 R (0:4736) 5797 0 R (0:4737) 5798 0 R (0:4738) 5799 0 R (0:4739) 5800 0 R (0:474) 1369 0 R (0:4740) 5801 0 R (0:4741) 5802 0 R (0:4742) 5803 0 R (0:4743) 5804 0 R (0:4744) 5805 0 R (0:4745) 5806 0 R (0:4746) 5807 0 R (0:4747) 5808 0 R (0:4748) 5809 0 R (0:4749) 5810 0 R (0:475) 1374 0 R (0:4750) 5811 0 R (0:4751) 5812 0 R (0:4752) 5813 0 R (0:4753) 5814 0 R (0:4754) 5815 0 R (0:4755) 5816 0 R (0:4756) 5817 0 R (0:4757) 5818 0 R (0:4758) 5819 0 R (0:4759) 5820 0 R (0:476) 1375 0 R (0:4760) 5821 0 R (0:4761) 5822 0 R (0:4762) 5823 0 R (0:4763) 5824 0 R (0:4764) 5825 0 R (0:4765) 5826 0 R (0:4766) 5827 0 R (0:4767) 5828 0 R (0:4768) 5829 0 R (0:4769) 5830 0 R (0:477) 1376 0 R (0:4770) 5831 0 R (0:4771) 5832 0 R (0:4772) 5833 0 R (0:4773) 5834 0 R (0:4774) 5835 0 R (0:4775) 5836 0 R (0:4776) 5837 0 R (0:4777) 5838 0 R (0:4778) 5839 0 R (0:4779) 5840 0 R (0:478) 1377 0 R (0:4780) 5841 0 R (0:4781) 5842 0 R (0:4782) 5843 0 R (0:4783) 5844 0 R (0:4784) 5845 0 R (0:4785) 5846 0 R (0:4786) 5847 0 R (0:4787) 5848 0 R (0:4788) 5849 0 R (0:4789) 5850 0 R (0:479) 1378 0 R (0:4790) 5851 0 R (0:4791) 5852 0 R (0:4792) 5853 0 R (0:4793) 5854 0 R (0:4794) 5855 0 R (0:4795) 5860 0 R (0:4796) 5861 0 R (0:4797) 5862 0 R (0:4798) 5863 0 R (0:4799) 5864 0 R (0:48) 946 0 R (0:480) 1379 0 R (0:4800) 5865 0 R (0:4801) 5866 0 R (0:4802) 5867 0 R (0:4803) 5868 0 R (0:4804) 5869 0 R (0:4805) 5870 0 R (0:4806) 5871 0 R (0:4807) 5872 0 R (0:4808) 5873 0 R (0:4809) 5874 0 R (0:481) 1380 0 R (0:4810) 5875 0 R (0:4811) 5876 0 R (0:4812) 5877 0 R (0:4813) 5878 0 R (0:4814) 5879 0 R (0:4815) 5880 0 R (0:4816) 5881 0 R (0:4817) 5882 0 R (0:4818) 5883 0 R (0:4819) 5884 0 R (0:482) 1381 0 R (0:4820) 5885 0 R (0:4821) 5886 0 R (0:4822) 5887 0 R (0:4823) 5888 0 R (0:4824) 5889 0 R (0:4825) 5890 0 R (0:4826) 5891 0 R (0:4827) 5892 0 R (0:4828) 5893 0 R (0:4829) 5894 0 R (0:483) 1382 0 R (0:4830) 5895 0 R (0:4831) 5896 0 R (0:4832) 5897 0 R (0:4833) 5898 0 R (0:4834) 5899 0 R (0:4835) 5900 0 R (0:4836) 5901 0 R (0:4837) 5902 0 R (0:4838) 5903 0 R (0:4839) 5904 0 R (0:484) 1383 0 R (0:4840) 5905 0 R (0:4841) 5906 0 R (0:4842) 5907 0 R (0:4843) 5908 0 R (0:4844) 5909 0 R (0:4845) 5910 0 R (0:4846) 5911 0 R (0:4847) 5912 0 R (0:4848) 5913 0 R (0:4849) 5914 0 R (0:485) 1384 0 R (0:4850) 5915 0 R (0:4851) 5916 0 R (0:4852) 5917 0 R (0:4853) 5918 0 R (0:4854) 5919 0 R (0:4855) 5920 0 R (0:4856) 5921 0 R (0:4857) 5922 0 R (0:4858) 5923 0 R (0:4859) 5924 0 R (0:486) 1385 0 R (0:4860) 5925 0 R (0:4861) 5926 0 R (0:4862) 5927 0 R (0:4863) 5932 0 R (0:4864) 5933 0 R (0:4865) 5934 0 R (0:4866) 5935 0 R (0:4867) 5936 0 R (0:4868) 5937 0 R (0:4869) 5938 0 R (0:487) 1386 0 R (0:4870) 5939 0 R (0:4871) 5940 0 R (0:4872) 5941 0 R (0:4873) 5942 0 R (0:4874) 5943 0 R (0:4875) 5944 0 R (0:4876) 5945 0 R (0:4877) 5946 0 R (0:4878) 5947 0 R (0:4879) 5948 0 R (0:488) 1387 0 R (0:4880) 5949 0 R (0:4881) 5950 0 R (0:4882) 5951 0 R (0:4883) 5952 0 R (0:4884) 5953 0 R (0:4885) 5954 0 R (0:4886) 5955 0 R (0:4887) 5956 0 R (0:4888) 5957 0 R (0:4889) 5958 0 R (0:489) 1388 0 R (0:4890) 5959 0 R (0:4891) 5960 0 R (0:4892) 5961 0 R (0:4893) 5962 0 R (0:4894) 5963 0 R (0:4895) 5964 0 R (0:4896) 5965 0 R (0:4897) 5966 0 R (0:4898) 5967 0 R (0:4899) 5968 0 R (0:49) 947 0 R (0:490) 1389 0 R (0:4900) 5969 0 R (0:4901) 5970 0 R (0:4902) 5971 0 R (0:4903) 5972 0 R (0:4904) 5973 0 R (0:4905) 5974 0 R (0:4906) 5975 0 R (0:4907) 5976 0 R (0:4908) 5977 0 R (0:4909) 5978 0 R (0:491) 1390 0 R (0:4910) 5979 0 R (0:4911) 5980 0 R (0:4912) 5981 0 R (0:4913) 5982 0 R (0:4914) 5983 0 R (0:4915) 5984 0 R (0:4916) 5985 0 R (0:4917) 5986 0 R (0:4918) 5987 0 R (0:4919) 5988 0 R (0:492) 1391 0 R (0:4920) 5989 0 R (0:4921) 5990 0 R (0:4922) 5991 0 R (0:4923) 5992 0 R (0:4924) 5993 0 R (0:4925) 5994 0 R (0:4926) 5995 0 R (0:4927) 5996 0 R (0:4928) 5997 0 R (0:4929) 5998 0 R (0:493) 1392 0 R (0:4930) 5999 0 R (0:4931) 6000 0 R (0:4932) 6001 0 R (0:4933) 6002 0 R (0:4934) 6003 0 R (0:4935) 6004 0 R (0:4936) 6009 0 R (0:4937) 6010 0 R (0:4938) 6011 0 R (0:4939) 6012 0 R (0:494) 1393 0 R (0:4940) 6013 0 R (0:4941) 6014 0 R (0:4942) 6015 0 R (0:4943) 6016 0 R (0:4944) 6017 0 R (0:4945) 6018 0 R (0:4946) 6019 0 R (0:4947) 6020 0 R (0:4948) 6021 0 R (0:4949) 6022 0 R (0:495) 1394 0 R (0:4950) 6023 0 R (0:4951) 6024 0 R (0:4952) 6025 0 R (0:4953) 6026 0 R (0:4954) 6027 0 R (0:4955) 6028 0 R (0:4956) 6029 0 R (0:4957) 6030 0 R (0:4958) 6031 0 R (0:4959) 6032 0 R (0:496) 1395 0 R (0:4960) 6033 0 R (0:4961) 6034 0 R (0:4962) 6035 0 R (0:4963) 6036 0 R (0:4966) 6037 0 R (0:4967) 6038 0 R (0:4968) 6039 0 R (0:4969) 6040 0 R (0:497) 1396 0 R (0:4970) 6041 0 R (0:4971) 6042 0 R (0:4972) 6043 0 R (0:4973) 6044 0 R (0:4974) 6045 0 R (0:4975) 6046 0 R (0:4976) 6047 0 R (0:4977) 6048 0 R (0:4978) 6049 0 R (0:4979) 6050 0 R (0:498) 1397 0 R (0:4980) 6051 0 R (0:4981) 6052 0 R (0:4982) 6053 0 R (0:4983) 6054 0 R (0:4984) 6055 0 R (0:4985) 6056 0 R (0:4986) 6057 0 R (0:4987) 6058 0 R (0:4988) 6059 0 R (0:4989) 6060 0 R (0:499) 1398 0 R (0:4990) 6065 0 R (0:4991) 6066 0 R (0:4992) 6067 0 R (0:4993) 6068 0 R (0:4994) 6069 0 R (0:4995) 6070 0 R (0:4996) 6071 0 R (0:4997) 6072 0 R (0:4998) 6073 0 R (0:4999) 6074 0 R (0:5) 916 0 R (0:500) 1399 0 R (0:5000) 6075 0 R (0:5001) 6076 0 R (0:5002) 6077 0 R (0:5003) 6078 0 R (0:5004) 6079 0 R (0:5005) 6080 0 R (0:5006) 6081 0 R (0:5007) 6082 0 R (0:5008) 6083 0 R (0:5009) 6084 0 R (0:5010) 6085 0 R (0:5011) 6086 0 R (0:5012) 6087 0 R (0:5013) 6088 0 R (0:5014) 6089 0 R (0:5015) 6090 0 R (0:5016) 6091 0 R (0:5017) 6092 0 R (0:5018) 6093 0 R (0:5019) 6094 0 R (0:5020) 6095 0 R (0:5021) 6096 0 R (0:5022) 6097 0 R (0:5023) 6098 0 R (0:5024) 6099 0 R (0:5025) 6100 0 R (0:5026) 6101 0 R (0:5027) 6102 0 R (0:5028) 6103 0 R (0:5029) 6104 0 R (0:503) 1400 0 R (0:5030) 6105 0 R (0:5031) 6106 0 R (0:5032) 6107 0 R (0:5033) 6108 0 R (0:5034) 6109 0 R (0:5035) 6110 0 R (0:5036) 6111 0 R (0:5037) 6112 0 R (0:5038) 6113 0 R (0:5039) 6114 0 R (0:504) 1401 0 R (0:5040) 6115 0 R (0:5041) 6116 0 R (0:5042) 6117 0 R (0:5043) 6118 0 R (0:5044) 6119 0 R (0:5045) 6120 0 R (0:5046) 6121 0 R (0:5047) 6122 0 R (0:5048) 6123 0 R (0:5049) 6124 0 R (0:505) 1402 0 R (0:5050) 6125 0 R (0:5051) 6126 0 R (0:5052) 6127 0 R (0:5053) 6128 0 R (0:5054) 6129 0 R (0:5055) 6130 0 R (0:5056) 6131 0 R (0:5057) 6132 0 R (0:5058) 6137 0 R (0:5059) 6138 0 R (0:506) 1403 0 R (0:5060) 6139 0 R (0:5061) 6140 0 R (0:5062) 6141 0 R (0:5063) 6142 0 R (0:5064) 6143 0 R (0:5065) 6144 0 R (0:5066) 6145 0 R (0:5067) 6146 0 R (0:5068) 6147 0 R (0:5069) 6148 0 R (0:507) 1404 0 R (0:5070) 6149 0 R (0:5071) 6150 0 R (0:5072) 6151 0 R (0:5073) 6152 0 R (0:5074) 6153 0 R (0:5075) 6154 0 R (0:5076) 6155 0 R (0:5077) 6156 0 R (0:5078) 6157 0 R (0:5079) 6158 0 R (0:508) 1405 0 R (0:5080) 6159 0 R (0:5081) 6160 0 R (0:5082) 6161 0 R (0:5083) 6162 0 R (0:5084) 6163 0 R (0:5085) 6164 0 R (0:5086) 6165 0 R (0:5087) 6166 0 R (0:5088) 6167 0 R (0:5089) 6168 0 R (0:509) 1406 0 R (0:5090) 6169 0 R (0:5091) 6170 0 R (0:5092) 6171 0 R (0:5095) 6172 0 R (0:5096) 6173 0 R (0:5097) 6174 0 R (0:5098) 6175 0 R (0:5099) 6176 0 R (0:510) 1407 0 R (0:5100) 6177 0 R (0:5101) 6178 0 R (0:5102) 6179 0 R (0:5103) 6180 0 R (0:5104) 6181 0 R (0:5105) 6182 0 R (0:5106) 6183 0 R (0:5107) 6184 0 R (0:5108) 6185 0 R (0:5109) 6186 0 R (0:511) 1408 0 R (0:5110) 6187 0 R (0:5111) 6188 0 R (0:5112) 6189 0 R (0:5113) 6190 0 R (0:5114) 6196 0 R (0:5115) 6197 0 R (0:5116) 6198 0 R (0:5117) 6199 0 R (0:5118) 6200 0 R (0:5119) 6201 0 R (0:512) 1409 0 R (0:5120) 6202 0 R (0:5121) 6203 0 R (0:5122) 6204 0 R (0:5123) 6205 0 R (0:5124) 6206 0 R (0:5125) 6207 0 R (0:5126) 6208 0 R (0:5127) 6209 0 R (0:5128) 6210 0 R (0:5129) 6211 0 R (0:513) 1410 0 R (0:5130) 6212 0 R (0:5131) 6213 0 R (0:5132) 6214 0 R (0:5133) 6215 0 R (0:5134) 6216 0 R (0:5135) 6217 0 R (0:5136) 6218 0 R (0:5137) 6219 0 R (0:5138) 6220 0 R (0:5139) 6221 0 R (0:514) 1411 0 R (0:5140) 6222 0 R (0:5141) 6223 0 R (0:5142) 6224 0 R (0:5143) 6225 0 R (0:5144) 6226 0 R (0:5145) 6227 0 R (0:5146) 6228 0 R (0:5147) 6229 0 R (0:5148) 6230 0 R (0:5149) 6231 0 R (0:515) 1417 0 R (0:5150) 6232 0 R (0:5151) 6233 0 R (0:5152) 6234 0 R (0:5153) 6235 0 R (0:5154) 6236 0 R (0:5155) 6237 0 R (0:5156) 6238 0 R (0:5157) 6239 0 R (0:5158) 6240 0 R (0:5159) 6241 0 R (0:516) 1418 0 R (0:5160) 6242 0 R (0:5161) 6243 0 R (0:5162) 6244 0 R (0:5163) 6245 0 R (0:5164) 6246 0 R (0:5165) 6247 0 R (0:5166) 6248 0 R (0:5167) 6249 0 R (0:5168) 6250 0 R (0:5169) 6251 0 R (0:517) 1419 0 R (0:5170) 6252 0 R (0:5171) 6253 0 R (0:5172) 6254 0 R (0:5173) 6255 0 R (0:5174) 6256 0 R (0:5175) 6257 0 R (0:5176) 6258 0 R (0:5177) 6259 0 R (0:5178) 6260 0 R (0:5179) 6261 0 R (0:518) 1420 0 R (0:5180) 6262 0 R (0:5181) 6263 0 R (0:5184) 6268 0 R (0:5185) 6269 0 R (0:5186) 6270 0 R (0:5187) 6271 0 R (0:5188) 6272 0 R (0:5189) 6273 0 R (0:519) 1421 0 R (0:5190) 6274 0 R (0:5191) 6275 0 R (0:5192) 6276 0 R (0:5193) 6277 0 R (0:5194) 6278 0 R (0:5195) 6279 0 R (0:5196) 6280 0 R (0:5197) 6281 0 R (0:5198) 6282 0 R (0:5199) 6283 0 R (0:520) 1422 0 R (0:5200) 6284 0 R (0:5201) 6285 0 R (0:5202) 6286 0 R (0:5203) 6287 0 R (0:5204) 6288 0 R (0:5205) 6289 0 R (0:5208) 6290 0 R (0:5209) 6291 0 R (0:521) 1423 0 R (0:5210) 6292 0 R (0:5211) 6293 0 R (0:5212) 6294 0 R (0:5213) 6295 0 R (0:5214) 6296 0 R (0:5215) 6297 0 R (0:5216) 6298 0 R (0:5217) 6299 0 R (0:5218) 6304 0 R (0:5219) 6305 0 R (0:522) 1424 0 R (0:5220) 6306 0 R (0:5221) 6307 0 R (0:5222) 6308 0 R (0:5223) 6309 0 R (0:5224) 6310 0 R (0:5225) 6311 0 R (0:5226) 6312 0 R (0:5227) 6313 0 R (0:5228) 6314 0 R (0:5229) 6315 0 R (0:523) 1425 0 R (0:5230) 6316 0 R (0:5231) 6317 0 R (0:5232) 6318 0 R (0:5233) 6319 0 R (0:5234) 6320 0 R (0:5235) 6321 0 R (0:5236) 6322 0 R (0:5237) 6323 0 R (0:5238) 6324 0 R (0:5239) 6325 0 R (0:524) 1426 0 R (0:5240) 6326 0 R (0:5241) 6327 0 R (0:5242) 6328 0 R (0:5243) 6329 0 R (0:5244) 6330 0 R (0:5245) 6331 0 R (0:5246) 6332 0 R (0:5247) 6333 0 R (0:5248) 6334 0 R (0:5249) 6335 0 R (0:525) 1427 0 R (0:5250) 6336 0 R (0:5251) 6337 0 R (0:5252) 6338 0 R (0:5253) 6339 0 R (0:5254) 6340 0 R (0:5255) 6341 0 R (0:5256) 6342 0 R (0:5257) 6343 0 R (0:5258) 6344 0 R (0:5259) 6345 0 R (0:526) 1428 0 R (0:5260) 6346 0 R (0:5261) 6347 0 R (0:5262) 6348 0 R (0:5263) 6349 0 R (0:5264) 6350 0 R (0:5265) 6351 0 R (0:5266) 6352 0 R (0:5267) 6353 0 R (0:5268) 6354 0 R (0:5269) 6355 0 R (0:527) 1429 0 R (0:5270) 6356 0 R (0:5271) 6357 0 R (0:5272) 6358 0 R (0:5273) 6359 0 R (0:5274) 6360 0 R (0:5275) 6361 0 R (0:5276) 6362 0 R (0:5277) 6363 0 R (0:5278) 6364 0 R (0:5279) 6365 0 R (0:528) 1430 0 R (0:5280) 6366 0 R (0:5281) 6367 0 R (0:5282) 6368 0 R (0:5283) 6369 0 R (0:5284) 6370 0 R (0:5285) 6371 0 R (0:5286) 6372 0 R (0:5287) 6373 0 R (0:5288) 6374 0 R (0:5289) 6375 0 R (0:529) 1431 0 R (0:5290) 6380 0 R (0:5291) 6381 0 R (0:5292) 6382 0 R (0:5293) 6383 0 R (0:5294) 6384 0 R (0:5295) 6385 0 R (0:5296) 6386 0 R (0:5297) 6387 0 R (0:5298) 6388 0 R (0:5299) 6389 0 R (0:530) 1432 0 R (0:5300) 6390 0 R (0:5301) 6391 0 R (0:5302) 6392 0 R (0:5303) 6393 0 R (0:5304) 6394 0 R (0:5305) 6395 0 R (0:5306) 6396 0 R (0:5307) 6397 0 R (0:5308) 6398 0 R (0:5309) 6399 0 R (0:531) 1433 0 R (0:5310) 6400 0 R (0:5311) 6401 0 R (0:5312) 6402 0 R (0:5313) 6403 0 R (0:5314) 6404 0 R (0:5315) 6405 0 R (0:5316) 6406 0 R (0:5317) 6407 0 R (0:5318) 6408 0 R (0:5319) 6409 0 R (0:532) 1434 0 R (0:5320) 6410 0 R (0:5321) 6411 0 R (0:5322) 6412 0 R (0:5323) 6413 0 R (0:5324) 6414 0 R (0:5325) 6415 0 R (0:5326) 6416 0 R (0:5327) 6417 0 R (0:5328) 6418 0 R (0:5329) 6419 0 R (0:533) 1435 0 R (0:5330) 6420 0 R (0:5331) 6421 0 R (0:5332) 6422 0 R (0:5333) 6423 0 R (0:5334) 6424 0 R (0:5335) 6425 0 R (0:5336) 6426 0 R (0:5337) 6427 0 R (0:5338) 6428 0 R (0:5339) 6429 0 R (0:534) 1436 0 R (0:5340) 6430 0 R (0:5341) 6431 0 R (0:5342) 6432 0 R (0:5343) 6433 0 R (0:5344) 6434 0 R (0:5345) 6435 0 R (0:5346) 6436 0 R (0:5347) 6437 0 R (0:5348) 6438 0 R (0:5349) 6439 0 R (0:535) 1437 0 R (0:5350) 6440 0 R (0:5351) 6441 0 R (0:5352) 6442 0 R (0:5353) 6443 0 R (0:5354) 6444 0 R (0:5355) 6445 0 R (0:5356) 6446 0 R (0:5357) 6447 0 R (0:5358) 6448 0 R (0:5359) 6454 0 R (0:536) 1438 0 R (0:5360) 6455 0 R (0:5361) 6456 0 R (0:5362) 6457 0 R (0:5363) 6458 0 R (0:5364) 6459 0 R (0:5365) 6460 0 R (0:5366) 6461 0 R (0:5367) 6462 0 R (0:5368) 6463 0 R (0:5369) 6464 0 R (0:537) 1439 0 R (0:5370) 6465 0 R (0:5371) 6466 0 R (0:5372) 6467 0 R (0:5373) 6468 0 R (0:5374) 6469 0 R (0:5375) 6470 0 R (0:5376) 6471 0 R (0:5377) 6472 0 R (0:5378) 6473 0 R (0:5379) 6474 0 R (0:538) 1440 0 R (0:5380) 6475 0 R (0:5381) 6476 0 R (0:5382) 6477 0 R (0:5383) 6478 0 R (0:5384) 6479 0 R (0:5385) 6480 0 R (0:5386) 6481 0 R (0:5387) 6482 0 R (0:5388) 6483 0 R (0:5389) 6484 0 R (0:539) 1441 0 R (0:5390) 6485 0 R (0:5391) 6486 0 R (0:5392) 6487 0 R (0:5393) 6488 0 R (0:5394) 6489 0 R (0:5395) 6490 0 R (0:5396) 6491 0 R (0:5397) 6492 0 R (0:5398) 6493 0 R (0:5399) 6494 0 R (0:540) 1442 0 R (0:5400) 6495 0 R (0:5401) 6496 0 R (0:5404) 6497 0 R (0:5405) 6498 0 R (0:5406) 6499 0 R (0:5407) 6500 0 R (0:5408) 6501 0 R (0:5409) 6502 0 R (0:541) 1443 0 R (0:5410) 6503 0 R (0:5411) 6504 0 R (0:5412) 6509 0 R (0:5413) 6453 0 R (0:5416) 6510 0 R (0:5417) 6511 0 R (0:5418) 6512 0 R (0:5419) 6513 0 R (0:542) 1444 0 R (0:5420) 6514 0 R (0:5421) 6515 0 R (0:5422) 6516 0 R (0:5423) 6517 0 R (0:5424) 6518 0 R (0:5425) 6519 0 R (0:5426) 6520 0 R (0:5427) 6521 0 R (0:5428) 6522 0 R (0:5429) 6523 0 R (0:543) 1445 0 R (0:5430) 6524 0 R (0:5431) 6525 0 R (0:5432) 6526 0 R (0:5433) 6527 0 R (0:5434) 6528 0 R (0:5435) 6529 0 R (0:5436) 6530 0 R (0:5439) 6531 0 R (0:544) 1446 0 R (0:5440) 6532 0 R (0:5441) 6533 0 R (0:5442) 6534 0 R (0:5443) 6535 0 R (0:5444) 6536 0 R (0:5445) 6537 0 R (0:5446) 6538 0 R (0:5447) 6539 0 R (0:5448) 6540 0 R (0:5449) 6541 0 R (0:545) 1447 0 R (0:5450) 6542 0 R (0:5451) 6543 0 R (0:5452) 6544 0 R (0:5453) 6545 0 R (0:5454) 6546 0 R (0:5455) 6547 0 R (0:5456) 6548 0 R (0:5457) 6549 0 R (0:5458) 6555 0 R (0:5459) 6556 0 R (0:546) 1448 0 R (0:5460) 6557 0 R (0:5461) 6558 0 R (0:5462) 6559 0 R (0:5463) 6560 0 R (0:5464) 6561 0 R (0:5465) 6562 0 R (0:5466) 6563 0 R (0:5467) 6564 0 R (0:5468) 6565 0 R (0:5469) 6566 0 R (0:547) 1449 0 R (0:5470) 6567 0 R (0:5471) 6568 0 R (0:5472) 6569 0 R (0:5473) 6570 0 R (0:5474) 6571 0 R (0:5475) 6572 0 R (0:5476) 6573 0 R (0:5477) 6574 0 R (0:5478) 6575 0 R (0:5479) 6576 0 R (0:548) 1450 0 R (0:5480) 6577 0 R (0:5481) 6578 0 R (0:5482) 6579 0 R (0:5483) 6580 0 R (0:5484) 6581 0 R (0:5485) 6582 0 R (0:5486) 6583 0 R (0:5487) 6584 0 R (0:5488) 6585 0 R (0:5489) 6586 0 R (0:549) 1451 0 R (0:5490) 6587 0 R (0:5491) 6588 0 R (0:5492) 6589 0 R (0:5493) 6590 0 R (0:5494) 6591 0 R (0:5495) 6592 0 R (0:5496) 6593 0 R (0:5497) 6594 0 R (0:5498) 6595 0 R (0:5499) 6596 0 R (0:550) 1452 0 R (0:5500) 6597 0 R (0:5501) 6598 0 R (0:5502) 6599 0 R (0:5503) 6600 0 R (0:5504) 6601 0 R (0:5505) 6602 0 R (0:5506) 6603 0 R (0:5507) 6604 0 R (0:5508) 6605 0 R (0:5509) 6606 0 R (0:551) 1453 0 R (0:5510) 6607 0 R (0:5511) 6608 0 R (0:5512) 6609 0 R (0:5513) 6610 0 R (0:5514) 6611 0 R (0:5515) 6612 0 R (0:5516) 6613 0 R (0:5517) 6614 0 R (0:5518) 6615 0 R (0:5519) 6616 0 R (0:552) 1454 0 R (0:5520) 6617 0 R (0:5521) 6618 0 R (0:5522) 6619 0 R (0:5523) 6620 0 R (0:5524) 6621 0 R (0:5525) 6622 0 R (0:5526) 6623 0 R (0:5527) 6624 0 R (0:5528) 6625 0 R (0:5529) 6626 0 R (0:553) 1455 0 R (0:5530) 6627 0 R (0:5531) 6628 0 R (0:5532) 6629 0 R (0:5533) 6630 0 R (0:5534) 6631 0 R (0:5535) 6632 0 R (0:5536) 6633 0 R (0:5537) 6634 0 R (0:5538) 6635 0 R (0:5539) 6636 0 R (0:554) 1456 0 R (0:5540) 6637 0 R (0:5541) 6638 0 R (0:5542) 6639 0 R (0:5543) 6640 0 R (0:5544) 6641 0 R (0:5545) 6642 0 R (0:5546) 6643 0 R (0:5547) 6644 0 R (0:5548) 6645 0 R (0:5549) 6646 0 R (0:555) 1457 0 R (0:5550) 6647 0 R (0:5551) 6648 0 R (0:5552) 6654 0 R (0:5553) 6655 0 R (0:5554) 6656 0 R (0:5555) 6657 0 R (0:5556) 6658 0 R (0:5557) 6659 0 R (0:5558) 6660 0 R (0:5559) 6661 0 R (0:556) 1458 0 R (0:5560) 6662 0 R (0:5561) 6663 0 R (0:5562) 6664 0 R (0:5563) 6665 0 R (0:5564) 6666 0 R (0:5565) 6667 0 R (0:5566) 6668 0 R (0:5567) 6669 0 R (0:5568) 6670 0 R (0:5569) 6671 0 R (0:557) 1459 0 R (0:5570) 6672 0 R (0:5571) 6673 0 R (0:5572) 6674 0 R (0:5573) 6675 0 R (0:5574) 6676 0 R (0:5575) 6677 0 R (0:5576) 6678 0 R (0:5577) 6679 0 R (0:5578) 6680 0 R (0:5579) 6681 0 R (0:558) 1460 0 R (0:5580) 6682 0 R (0:5581) 6683 0 R (0:5582) 6684 0 R (0:5583) 6685 0 R (0:5584) 6686 0 R (0:5585) 6687 0 R (0:5586) 6688 0 R (0:5587) 6689 0 R (0:5588) 6690 0 R (0:5589) 6691 0 R (0:559) 1461 0 R (0:5590) 6692 0 R (0:5591) 6693 0 R (0:5592) 6694 0 R (0:5593) 6695 0 R (0:5594) 6696 0 R (0:5595) 6697 0 R (0:5596) 6698 0 R (0:5597) 6699 0 R (0:5598) 6700 0 R (0:5599) 6701 0 R (0:560) 1462 0 R (0:5600) 6702 0 R (0:5601) 6703 0 R (0:5602) 6704 0 R (0:5603) 6705 0 R (0:5604) 6706 0 R (0:5605) 6707 0 R (0:5606) 6708 0 R (0:5607) 6709 0 R (0:5608) 6710 0 R (0:5609) 6711 0 R (0:561) 1463 0 R (0:5610) 6712 0 R (0:5611) 6713 0 R (0:5612) 6714 0 R (0:5613) 6715 0 R (0:5616) 6716 0 R (0:5617) 6717 0 R (0:5618) 6718 0 R (0:5619) 6719 0 R (0:562) 1464 0 R (0:5620) 6720 0 R (0:5621) 6725 0 R (0:5622) 6653 0 R (0:5623) 6726 0 R (0:5624) 6727 0 R (0:5625) 6728 0 R (0:5626) 6729 0 R (0:5627) 6730 0 R (0:5628) 6731 0 R (0:5629) 6732 0 R (0:563) 1465 0 R (0:5630) 6733 0 R (0:5631) 6734 0 R (0:5632) 6735 0 R (0:5633) 6736 0 R (0:5634) 6737 0 R (0:5635) 6738 0 R (0:5636) 6739 0 R (0:5637) 6740 0 R (0:5638) 6741 0 R (0:5639) 6742 0 R (0:564) 1466 0 R (0:5640) 6743 0 R (0:5641) 6744 0 R (0:5642) 6745 0 R (0:5643) 6746 0 R (0:5644) 6747 0 R (0:5645) 6748 0 R (0:5646) 6749 0 R (0:5647) 6750 0 R (0:5648) 6751 0 R (0:5649) 6752 0 R (0:565) 1467 0 R (0:5650) 6753 0 R (0:5651) 6754 0 R (0:5652) 6755 0 R (0:5653) 6756 0 R (0:5654) 6757 0 R (0:5655) 6758 0 R (0:5656) 6759 0 R (0:5657) 6760 0 R (0:5658) 6761 0 R (0:5659) 6762 0 R (0:566) 1468 0 R (0:5660) 6763 0 R (0:5661) 6764 0 R (0:5662) 6765 0 R (0:5663) 6766 0 R (0:5664) 6767 0 R (0:5665) 6768 0 R (0:5666) 6769 0 R (0:5667) 6770 0 R (0:5668) 6771 0 R (0:5669) 6772 0 R (0:567) 1469 0 R (0:5670) 6773 0 R (0:5671) 6774 0 R (0:5672) 6775 0 R (0:5673) 6776 0 R (0:5674) 6777 0 R (0:5675) 6778 0 R (0:5676) 6779 0 R (0:5677) 6780 0 R (0:5678) 6781 0 R (0:5679) 6782 0 R (0:568) 1470 0 R (0:5680) 6783 0 R (0:5681) 6784 0 R (0:5682) 6785 0 R (0:5683) 6786 0 R (0:5684) 6787 0 R (0:5685) 6788 0 R (0:5686) 6789 0 R (0:5687) 6790 0 R (0:5688) 6795 0 R (0:5689) 6796 0 R (0:569) 1471 0 R (0:5690) 6797 0 R (0:5691) 6798 0 R (0:5692) 6799 0 R (0:5693) 6800 0 R (0:5694) 6801 0 R (0:5695) 6802 0 R (0:5696) 6803 0 R (0:5697) 6804 0 R (0:5698) 6805 0 R (0:5699) 6806 0 R (0:570) 1472 0 R (0:5700) 6807 0 R (0:5701) 6808 0 R (0:5702) 6809 0 R (0:5703) 6810 0 R (0:5704) 6811 0 R (0:5705) 6812 0 R (0:5706) 6813 0 R (0:5707) 6814 0 R (0:5708) 6815 0 R (0:5709) 6816 0 R (0:571) 1473 0 R (0:5710) 6817 0 R (0:5711) 6818 0 R (0:5712) 6819 0 R (0:5713) 6820 0 R (0:5714) 6821 0 R (0:5715) 6822 0 R (0:5716) 6823 0 R (0:5717) 6824 0 R (0:5718) 6825 0 R (0:5719) 6826 0 R (0:572) 1474 0 R (0:5720) 6827 0 R (0:5721) 6828 0 R (0:5722) 6829 0 R (0:5723) 6830 0 R (0:5724) 6831 0 R (0:5725) 6832 0 R (0:5726) 6833 0 R (0:5727) 6834 0 R (0:5728) 6835 0 R (0:5729) 6836 0 R (0:573) 1475 0 R (0:5730) 6837 0 R (0:5731) 6838 0 R (0:5732) 6839 0 R (0:5733) 6840 0 R (0:5734) 6841 0 R (0:5735) 6842 0 R (0:5736) 6843 0 R (0:5737) 6844 0 R (0:5738) 6845 0 R (0:5739) 6846 0 R (0:574) 1476 0 R (0:5740) 6847 0 R (0:5741) 6848 0 R (0:5742) 6849 0 R (0:5743) 6850 0 R (0:5744) 6851 0 R (0:5745) 6852 0 R (0:5746) 6853 0 R (0:5747) 6854 0 R (0:5748) 6855 0 R (0:5749) 6856 0 R (0:575) 1477 0 R (0:5750) 6857 0 R (0:5751) 6858 0 R (0:5752) 6859 0 R (0:5753) 6860 0 R (0:5754) 6861 0 R (0:5755) 6862 0 R (0:5756) 6863 0 R (0:5757) 6864 0 R (0:5758) 6869 0 R (0:5759) 6870 0 R (0:576) 1478 0 R (0:5760) 6871 0 R (0:5761) 6872 0 R (0:5762) 6873 0 R (0:5763) 6874 0 R (0:5764) 6875 0 R (0:5765) 6876 0 R (0:5766) 6877 0 R (0:5767) 6878 0 R (0:5768) 6879 0 R (0:5769) 6880 0 R (0:577) 1479 0 R (0:5770) 6881 0 R (0:5771) 6882 0 R (0:5772) 6883 0 R (0:5773) 6884 0 R (0:5774) 6885 0 R (0:5775) 6886 0 R (0:5776) 6887 0 R (0:5777) 6888 0 R (0:5778) 6889 0 R (0:5779) 6890 0 R (0:578) 1480 0 R (0:5780) 6891 0 R (0:5781) 6892 0 R (0:5782) 6893 0 R (0:5783) 6894 0 R (0:5784) 6895 0 R (0:5785) 6896 0 R (0:5786) 6897 0 R (0:5789) 6898 0 R (0:5790) 6899 0 R (0:5791) 6900 0 R (0:5792) 6901 0 R (0:5793) 6902 0 R (0:5794) 6903 0 R (0:5795) 6904 0 R (0:5796) 6905 0 R (0:5797) 6906 0 R (0:5798) 6907 0 R (0:5799) 6908 0 R (0:5800) 6913 0 R (0:5801) 6914 0 R (0:5802) 6915 0 R (0:5803) 6916 0 R (0:5804) 6917 0 R (0:5805) 6918 0 R (0:5806) 6919 0 R (0:5807) 6920 0 R (0:5808) 6921 0 R (0:5809) 6922 0 R (0:581) 1481 0 R (0:5810) 6923 0 R (0:5811) 6924 0 R (0:5812) 6925 0 R (0:5813) 6926 0 R (0:5814) 6927 0 R (0:5815) 6928 0 R (0:5816) 6929 0 R (0:5817) 6930 0 R (0:5818) 6931 0 R (0:5819) 6932 0 R (0:582) 1482 0 R (0:5820) 6933 0 R (0:5823) 6934 0 R (0:5824) 6935 0 R (0:5825) 6936 0 R (0:5826) 6937 0 R (0:5827) 6938 0 R (0:5828) 6939 0 R (0:5829) 6940 0 R (0:583) 1483 0 R (0:5830) 6941 0 R (0:5831) 6942 0 R (0:5832) 6943 0 R (0:5833) 6944 0 R (0:5834) 6945 0 R (0:5835) 6946 0 R (0:5836) 6947 0 R (0:5837) 6948 0 R (0:5838) 6949 0 R (0:5839) 6950 0 R (0:584) 1484 0 R (0:5840) 6951 0 R (0:5841) 6952 0 R (0:5842) 6953 0 R (0:5843) 6954 0 R (0:5844) 6955 0 R (0:5845) 6956 0 R (0:5846) 6957 0 R (0:5847) 6958 0 R (0:5848) 6959 0 R (0:5849) 6960 0 R (0:585) 1485 0 R (0:5850) 6961 0 R (0:5851) 6962 0 R (0:5852) 6969 0 R (0:5855) 6970 0 R (0:5856) 6971 0 R (0:5857) 6972 0 R (0:5858) 6973 0 R (0:5859) 6974 0 R (0:586) 1492 0 R (0:5860) 6975 0 R (0:5861) 6976 0 R (0:5862) 6977 0 R (0:5863) 6978 0 R (0:5864) 6979 0 R (0:5865) 6980 0 R (0:5866) 6981 0 R (0:5867) 6982 0 R (0:5868) 6983 0 R (0:5869) 6984 0 R (0:587) 1416 0 R (0:5870) 6985 0 R (0:5871) 6986 0 R (0:5872) 6987 0 R (0:5873) 6988 0 R (0:5874) 6989 0 R (0:5875) 6990 0 R (0:5876) 6991 0 R (0:5877) 6992 0 R (0:5878) 6993 0 R (0:5879) 6994 0 R (0:588) 1493 0 R (0:5880) 6995 0 R (0:5881) 6996 0 R (0:5882) 6997 0 R (0:5883) 6998 0 R (0:5884) 6999 0 R (0:5885) 7000 0 R (0:5886) 7001 0 R (0:5887) 7002 0 R (0:5888) 7003 0 R (0:5889) 7004 0 R (0:589) 1494 0 R (0:5890) 7005 0 R (0:5891) 7006 0 R (0:5892) 7007 0 R (0:5895) 7012 0 R (0:5896) 7013 0 R (0:5897) 7014 0 R (0:5898) 6968 0 R (0:590) 1495 0 R (0:5901) 7015 0 R (0:5902) 7016 0 R (0:5903) 7017 0 R (0:5904) 7018 0 R (0:5905) 7019 0 R (0:5906) 7020 0 R (0:5907) 7021 0 R (0:5908) 7022 0 R (0:5909) 7023 0 R (0:591) 1496 0 R (0:5910) 7024 0 R (0:5911) 7025 0 R (0:5912) 7026 0 R (0:5913) 7027 0 R (0:5914) 7028 0 R (0:5915) 7029 0 R (0:5916) 7030 0 R (0:5917) 7031 0 R (0:5918) 7032 0 R (0:5919) 7033 0 R (0:592) 1497 0 R (0:5920) 7034 0 R (0:5921) 7035 0 R (0:5922) 7036 0 R (0:5923) 7037 0 R (0:5924) 7038 0 R (0:5925) 7039 0 R (0:5926) 7040 0 R (0:5927) 7041 0 R (0:5928) 7042 0 R (0:5929) 7043 0 R (0:593) 1498 0 R (0:5930) 7044 0 R (0:5931) 7045 0 R (0:5932) 7046 0 R (0:5933) 7047 0 R (0:5936) 7048 0 R (0:5937) 7049 0 R (0:5938) 7050 0 R (0:5939) 7056 0 R (0:594) 1499 0 R (0:5940) 7057 0 R (0:5941) 7058 0 R (0:5942) 7059 0 R (0:5943) 7060 0 R (0:5944) 7061 0 R (0:5945) 7062 0 R (0:5946) 7063 0 R (0:5947) 7064 0 R (0:5948) 7065 0 R (0:5949) 7066 0 R (0:595) 1500 0 R (0:5950) 7067 0 R (0:5951) 7068 0 R (0:5952) 7069 0 R (0:5953) 7070 0 R (0:5954) 7071 0 R (0:5955) 7072 0 R (0:5956) 7073 0 R (0:5957) 7074 0 R (0:5958) 7075 0 R (0:5959) 7076 0 R (0:596) 1501 0 R (0:5960) 7077 0 R (0:5961) 7078 0 R (0:5962) 7079 0 R (0:5963) 7080 0 R (0:5964) 7081 0 R (0:5965) 7082 0 R (0:5966) 7083 0 R (0:5967) 7084 0 R (0:5968) 7085 0 R (0:5969) 7086 0 R (0:597) 1502 0 R (0:5970) 7087 0 R (0:5971) 7088 0 R (0:5972) 7089 0 R (0:5973) 7090 0 R (0:5974) 7091 0 R (0:5975) 7092 0 R (0:5976) 7093 0 R (0:5977) 7094 0 R (0:5978) 7095 0 R (0:5979) 7096 0 R (0:598) 1503 0 R (0:5980) 7097 0 R (0:5981) 7098 0 R (0:5982) 7099 0 R (0:5983) 7100 0 R (0:5984) 7101 0 R (0:5985) 7102 0 R (0:5986) 7103 0 R (0:5987) 7104 0 R (0:599) 1504 0 R (0:5990) 7105 0 R (0:5991) 7106 0 R (0:5992) 7107 0 R (0:5993) 7108 0 R (0:5994) 7109 0 R (0:5995) 7115 0 R (0:5996) 7055 0 R (0:5997) 7116 0 R (0:5998) 7117 0 R (0:5999) 7118 0 R (0:600) 1505 0 R (0:6000) 7119 0 R (0:6001) 7120 0 R (0:6002) 7121 0 R (0:6003) 7122 0 R (0:6004) 7123 0 R (0:6005) 7124 0 R (0:6006) 7125 0 R (0:6007) 7126 0 R (0:6008) 7127 0 R (0:6009) 7128 0 R (0:601) 1506 0 R (0:6010) 7129 0 R (0:6011) 7130 0 R (0:6012) 7131 0 R (0:6013) 7132 0 R (0:6014) 7133 0 R (0:6015) 7134 0 R (0:6016) 7135 0 R (0:6017) 7136 0 R (0:6018) 7137 0 R (0:6019) 7138 0 R (0:602) 1507 0 R (0:6020) 7139 0 R (0:6021) 7140 0 R (0:6022) 7141 0 R (0:6023) 7142 0 R (0:6024) 7143 0 R (0:6025) 7144 0 R (0:6026) 7145 0 R (0:6027) 7146 0 R (0:6028) 7147 0 R (0:6029) 7148 0 R (0:603) 1508 0 R (0:6030) 7149 0 R (0:6033) 7150 0 R (0:6034) 7151 0 R (0:6035) 7152 0 R (0:6036) 7153 0 R (0:6037) 7154 0 R (0:6038) 7155 0 R (0:6039) 7156 0 R (0:604) 1509 0 R (0:6040) 7157 0 R (0:6041) 7158 0 R (0:6042) 7164 0 R (0:6043) 7114 0 R (0:6044) 7165 0 R (0:6045) 7166 0 R (0:6046) 7167 0 R (0:6047) 7168 0 R (0:6048) 7169 0 R (0:6049) 7170 0 R (0:605) 1510 0 R (0:6050) 7171 0 R (0:6051) 7172 0 R (0:6052) 7173 0 R (0:6053) 7174 0 R (0:6054) 7175 0 R (0:6055) 7176 0 R (0:6056) 7177 0 R (0:6057) 7178 0 R (0:6058) 7179 0 R (0:6059) 7180 0 R (0:606) 1511 0 R (0:6060) 7181 0 R (0:6061) 7182 0 R (0:6062) 7183 0 R (0:6063) 7184 0 R (0:6064) 7185 0 R (0:6065) 7186 0 R (0:6066) 7187 0 R (0:6067) 7188 0 R (0:6068) 7189 0 R (0:6069) 7190 0 R (0:607) 1512 0 R (0:6070) 7191 0 R (0:6071) 7192 0 R (0:6072) 7193 0 R (0:6073) 7194 0 R (0:6074) 7195 0 R (0:6075) 7196 0 R (0:6076) 7197 0 R (0:6077) 7198 0 R (0:6078) 7199 0 R (0:6079) 7200 0 R (0:608) 1513 0 R (0:6080) 7201 0 R (0:6081) 7202 0 R (0:6082) 7203 0 R (0:6083) 7204 0 R (0:6084) 7205 0 R (0:6085) 7206 0 R (0:6086) 7207 0 R (0:6087) 7208 0 R (0:6088) 7209 0 R (0:6089) 7210 0 R (0:609) 1514 0 R (0:6090) 7211 0 R (0:6091) 7212 0 R (0:6092) 7213 0 R (0:6093) 7214 0 R (0:6094) 7215 0 R (0:6095) 7216 0 R (0:6098) 7217 0 R (0:6099) 7218 0 R (0:610) 1515 0 R (0:6100) 7219 0 R (0:6101) 7220 0 R (0:6102) 7221 0 R (0:6103) 7222 0 R (0:6104) 7223 0 R (0:6105) 7228 0 R (0:6106) 7163 0 R (0:6109) 7229 0 R (0:611) 1516 0 R (0:6110) 7230 0 R (0:6111) 7231 0 R (0:6112) 7232 0 R (0:6113) 7233 0 R (0:6114) 7234 0 R (0:6115) 7235 0 R (0:6116) 7236 0 R (0:6117) 7237 0 R (0:6118) 7238 0 R (0:6119) 7239 0 R (0:612) 1517 0 R (0:6120) 7240 0 R (0:6121) 7241 0 R (0:6122) 7242 0 R (0:6123) 7243 0 R (0:6124) 7244 0 R (0:6125) 7245 0 R (0:6126) 7246 0 R (0:6127) 7247 0 R (0:6128) 7248 0 R (0:6129) 7249 0 R (0:613) 1518 0 R (0:6130) 7250 0 R (0:6131) 7251 0 R (0:6132) 7252 0 R (0:6133) 7253 0 R (0:6134) 7254 0 R (0:6137) 7255 0 R (0:6138) 7256 0 R (0:6139) 7257 0 R (0:614) 1519 0 R (0:6140) 7258 0 R (0:6141) 7259 0 R (0:6142) 7260 0 R (0:6143) 7261 0 R (0:6144) 7262 0 R (0:6145) 7263 0 R (0:6146) 7264 0 R (0:6147) 7265 0 R (0:6148) 7266 0 R (0:6149) 7267 0 R (0:615) 1520 0 R (0:6150) 7268 0 R (0:6151) 7269 0 R (0:6152) 7270 0 R (0:6153) 7271 0 R (0:6154) 7272 0 R (0:6155) 7273 0 R (0:6156) 7280 0 R (0:6157) 7281 0 R (0:6158) 7282 0 R (0:6159) 7283 0 R (0:616) 1521 0 R (0:6160) 7284 0 R (0:6161) 7285 0 R (0:6162) 7286 0 R (0:6163) 7287 0 R (0:6164) 7288 0 R (0:6165) 7289 0 R (0:6166) 7290 0 R (0:6167) 7291 0 R (0:6168) 7292 0 R (0:6169) 7293 0 R (0:617) 1522 0 R (0:6170) 7294 0 R (0:6171) 7295 0 R (0:6172) 7296 0 R (0:6175) 7297 0 R (0:6176) 7298 0 R (0:6177) 7299 0 R (0:6178) 7300 0 R (0:6179) 7301 0 R (0:618) 1523 0 R (0:6180) 7302 0 R (0:6181) 7303 0 R (0:6182) 7304 0 R (0:6183) 7305 0 R (0:6184) 7306 0 R (0:6185) 7307 0 R (0:6186) 7308 0 R (0:6187) 7309 0 R (0:6188) 7310 0 R (0:6189) 7311 0 R (0:619) 1524 0 R (0:6190) 7312 0 R (0:6191) 7313 0 R (0:6192) 7314 0 R (0:6193) 7315 0 R (0:6194) 7316 0 R (0:6195) 7317 0 R (0:6196) 7318 0 R (0:6197) 7319 0 R (0:6198) 7320 0 R (0:6199) 7321 0 R (0:620) 1525 0 R (0:6200) 7322 0 R (0:6201) 7323 0 R (0:6202) 7324 0 R (0:6203) 7325 0 R (0:6204) 7326 0 R (0:6205) 7327 0 R (0:6206) 7328 0 R (0:6207) 7329 0 R (0:6208) 7330 0 R (0:6209) 7331 0 R (0:621) 1526 0 R (0:6210) 7332 0 R (0:6211) 7333 0 R (0:6212) 7279 0 R (0:6213) 7338 0 R (0:6214) 7339 0 R (0:6215) 7340 0 R (0:6218) 7341 0 R (0:6219) 7342 0 R (0:622) 1527 0 R (0:6220) 7343 0 R (0:6221) 7344 0 R (0:6222) 7345 0 R (0:6223) 7346 0 R (0:6224) 7347 0 R (0:6225) 7348 0 R (0:6226) 7349 0 R (0:6227) 7350 0 R (0:6228) 7351 0 R (0:6229) 7352 0 R (0:623) 1528 0 R (0:6230) 7353 0 R (0:6231) 7354 0 R (0:6232) 7355 0 R (0:6233) 7356 0 R (0:6234) 7357 0 R (0:6235) 7358 0 R (0:6236) 7359 0 R (0:6237) 7360 0 R (0:6238) 7361 0 R (0:6239) 7362 0 R (0:624) 1529 0 R (0:6240) 7363 0 R (0:6241) 7364 0 R (0:6242) 7365 0 R (0:6243) 7366 0 R (0:6244) 7367 0 R (0:6245) 7368 0 R (0:6246) 7369 0 R (0:6247) 7370 0 R (0:6248) 7371 0 R (0:6249) 7372 0 R (0:625) 1530 0 R (0:6250) 7373 0 R (0:6251) 7374 0 R (0:6252) 7375 0 R (0:6253) 7376 0 R (0:6254) 7377 0 R (0:6255) 7378 0 R (0:6256) 7379 0 R (0:6257) 7380 0 R (0:6258) 7381 0 R (0:6259) 7382 0 R (0:626) 1531 0 R (0:6260) 7383 0 R (0:6261) 7384 0 R (0:6262) 7385 0 R (0:6263) 7386 0 R (0:6264) 7391 0 R (0:6265) 7392 0 R (0:6266) 7393 0 R (0:6267) 7394 0 R (0:6268) 7395 0 R (0:6269) 7396 0 R (0:627) 1532 0 R (0:6270) 7397 0 R (0:6271) 7398 0 R (0:6272) 7399 0 R (0:6273) 7400 0 R (0:6274) 7401 0 R (0:6275) 7402 0 R (0:6276) 7403 0 R (0:6277) 7404 0 R (0:6278) 7405 0 R (0:6279) 7406 0 R (0:628) 1533 0 R (0:6280) 7407 0 R (0:6281) 7408 0 R (0:6282) 7409 0 R (0:6283) 7410 0 R (0:6284) 7411 0 R (0:6285) 7412 0 R (0:6286) 7413 0 R (0:6287) 7414 0 R (0:6290) 7415 0 R (0:6291) 7416 0 R (0:6292) 7417 0 R (0:6293) 7418 0 R (0:6294) 7419 0 R (0:6295) 7420 0 R (0:6296) 7421 0 R (0:6297) 7422 0 R (0:6298) 7423 0 R (0:6299) 7424 0 R (0:63) 952 0 R (0:6300) 7425 0 R (0:6301) 7426 0 R (0:6302) 7427 0 R (0:6303) 7428 0 R (0:6304) 7429 0 R (0:6305) 7430 0 R (0:6306) 7431 0 R (0:6307) 7432 0 R (0:6308) 7433 0 R (0:6309) 7434 0 R (0:631) 1534 0 R (0:6310) 7435 0 R (0:6311) 7436 0 R (0:6312) 7437 0 R (0:6313) 7438 0 R (0:6314) 7439 0 R (0:6315) 7440 0 R (0:6316) 7441 0 R (0:6317) 7442 0 R (0:6318) 7447 0 R (0:6319) 7448 0 R (0:632) 1535 0 R (0:6320) 7449 0 R (0:6321) 7450 0 R (0:6322) 7451 0 R (0:6323) 7452 0 R (0:6324) 7453 0 R (0:6325) 7454 0 R (0:6326) 7455 0 R (0:6327) 7456 0 R (0:6328) 7457 0 R (0:6329) 7458 0 R (0:633) 1536 0 R (0:6330) 7459 0 R (0:6331) 7460 0 R (0:6332) 7461 0 R (0:6333) 7462 0 R (0:6334) 7463 0 R (0:6335) 7464 0 R (0:6336) 7465 0 R (0:6337) 7466 0 R (0:6338) 7467 0 R (0:6339) 7468 0 R (0:634) 1537 0 R (0:6340) 7469 0 R (0:6341) 7470 0 R (0:6342) 7471 0 R (0:6343) 7472 0 R (0:6344) 7473 0 R (0:6345) 7474 0 R (0:6346) 7475 0 R (0:6349) 7476 0 R (0:635) 1538 0 R (0:6350) 7477 0 R (0:6351) 7478 0 R (0:6352) 7479 0 R (0:6353) 7480 0 R (0:6354) 7481 0 R (0:6355) 7482 0 R (0:6356) 7483 0 R (0:6357) 7484 0 R (0:6358) 7485 0 R (0:6359) 7486 0 R (0:636) 1539 0 R (0:6360) 7487 0 R (0:6361) 7488 0 R (0:6362) 7489 0 R (0:6363) 7490 0 R (0:6364) 7491 0 R (0:6365) 7492 0 R (0:6366) 7493 0 R (0:6367) 7494 0 R (0:6368) 7495 0 R (0:6369) 7496 0 R (0:637) 1545 0 R (0:6370) 7497 0 R (0:6371) 7498 0 R (0:6372) 7499 0 R (0:6373) 7504 0 R (0:6374) 7505 0 R (0:6375) 7506 0 R (0:6376) 7507 0 R (0:6377) 7508 0 R (0:6378) 7509 0 R (0:6379) 7510 0 R (0:638) 1491 0 R (0:6380) 7511 0 R (0:6381) 7512 0 R (0:6382) 7513 0 R (0:6383) 7514 0 R (0:6384) 7515 0 R (0:6385) 7516 0 R (0:6386) 7517 0 R (0:6387) 7518 0 R (0:6388) 7519 0 R (0:6389) 7520 0 R (0:6390) 7521 0 R (0:6391) 7522 0 R (0:6392) 7523 0 R (0:6393) 7524 0 R (0:6394) 7525 0 R (0:6395) 7526 0 R (0:6396) 7527 0 R (0:6397) 7528 0 R (0:6398) 7529 0 R (0:6399) 7530 0 R (0:64) 953 0 R (0:6400) 7531 0 R (0:6401) 7532 0 R (0:6402) 7533 0 R (0:6403) 7534 0 R (0:6404) 7535 0 R (0:6405) 7536 0 R (0:6406) 7537 0 R (0:6407) 7538 0 R (0:6408) 7539 0 R (0:6409) 7540 0 R (0:641) 1546 0 R (0:6410) 7541 0 R (0:6411) 7542 0 R (0:6412) 7543 0 R (0:6415) 7544 0 R (0:6416) 7545 0 R (0:6417) 7546 0 R (0:6418) 7547 0 R (0:6419) 7548 0 R (0:642) 1547 0 R (0:6420) 7549 0 R (0:6421) 7550 0 R (0:6422) 7551 0 R (0:6423) 7552 0 R (0:6424) 7553 0 R (0:6425) 7554 0 R (0:6426) 7555 0 R (0:6427) 7556 0 R (0:6428) 7557 0 R (0:6429) 7558 0 R (0:643) 1548 0 R (0:6430) 7559 0 R (0:6431) 7560 0 R (0:6432) 7565 0 R (0:6433) 7566 0 R (0:6434) 7567 0 R (0:6435) 7568 0 R (0:6436) 7569 0 R (0:6437) 7570 0 R (0:6438) 7571 0 R (0:6439) 7572 0 R (0:644) 1549 0 R (0:6440) 7573 0 R (0:6441) 7574 0 R (0:6442) 7575 0 R (0:6443) 7576 0 R (0:6444) 7577 0 R (0:6445) 7578 0 R (0:6446) 7579 0 R (0:6447) 7580 0 R (0:6448) 7581 0 R (0:6449) 7582 0 R (0:645) 1550 0 R (0:6450) 7583 0 R (0:6451) 7584 0 R (0:6452) 7585 0 R (0:6453) 7586 0 R (0:6454) 7587 0 R (0:6455) 7588 0 R (0:6456) 7589 0 R (0:6457) 7590 0 R (0:6458) 7591 0 R (0:6459) 7592 0 R (0:646) 1551 0 R (0:6460) 7593 0 R (0:6461) 7594 0 R (0:6464) 7595 0 R (0:6465) 7596 0 R (0:6466) 7597 0 R (0:6467) 7598 0 R (0:6468) 7599 0 R (0:6469) 7600 0 R (0:647) 1552 0 R (0:6470) 7601 0 R (0:6471) 7602 0 R (0:6472) 7603 0 R (0:6473) 7604 0 R (0:6474) 7605 0 R (0:6475) 7606 0 R (0:6476) 7607 0 R (0:6477) 7608 0 R (0:6478) 7609 0 R (0:6479) 7610 0 R (0:648) 1553 0 R (0:6480) 7611 0 R (0:6481) 7612 0 R (0:6482) 7613 0 R (0:6483) 7614 0 R (0:6484) 7620 0 R (0:6485) 7621 0 R (0:6486) 7622 0 R (0:6487) 7623 0 R (0:6488) 7624 0 R (0:6489) 7625 0 R (0:649) 1554 0 R (0:6490) 7626 0 R (0:6491) 7627 0 R (0:6492) 7628 0 R (0:6493) 7629 0 R (0:6494) 7630 0 R (0:6495) 7631 0 R (0:6496) 7632 0 R (0:6497) 7633 0 R (0:6498) 7634 0 R (0:6499) 7635 0 R (0:65) 954 0 R (0:650) 1555 0 R (0:6500) 7636 0 R (0:6501) 7637 0 R (0:6502) 7638 0 R (0:6503) 7639 0 R (0:6504) 7640 0 R (0:6505) 7641 0 R (0:6506) 7642 0 R (0:6507) 7643 0 R (0:6508) 7644 0 R (0:6509) 7645 0 R (0:651) 1556 0 R (0:6510) 7646 0 R (0:6511) 7647 0 R (0:6512) 7648 0 R (0:6513) 7649 0 R (0:6514) 7650 0 R (0:6515) 7651 0 R (0:6516) 7652 0 R (0:6517) 7653 0 R (0:6518) 7654 0 R (0:6519) 7655 0 R (0:652) 1557 0 R (0:6520) 7656 0 R (0:6521) 7657 0 R (0:6522) 7658 0 R (0:6523) 7659 0 R (0:6524) 7660 0 R (0:6525) 7661 0 R (0:6526) 7662 0 R (0:6529) 7663 0 R (0:653) 1558 0 R (0:6530) 7664 0 R (0:6531) 7665 0 R (0:6532) 7666 0 R (0:6533) 7667 0 R (0:6534) 7668 0 R (0:6535) 7669 0 R (0:6536) 7670 0 R (0:6537) 7671 0 R (0:6538) 7672 0 R (0:6539) 7673 0 R (0:654) 1559 0 R (0:6540) 7678 0 R (0:6541) 7679 0 R (0:6542) 7680 0 R (0:6543) 7681 0 R (0:6544) 7682 0 R (0:6545) 7683 0 R (0:6546) 7684 0 R (0:6547) 7685 0 R (0:6548) 7686 0 R (0:6549) 7687 0 R (0:655) 1560 0 R (0:6550) 7688 0 R (0:6551) 7689 0 R (0:6552) 7690 0 R (0:6553) 7691 0 R (0:6554) 7692 0 R (0:6555) 7693 0 R (0:6556) 7694 0 R (0:6557) 7695 0 R (0:6558) 7696 0 R (0:6559) 7697 0 R (0:656) 1561 0 R (0:6560) 7698 0 R (0:6561) 7699 0 R (0:6562) 7700 0 R (0:6563) 7701 0 R (0:6564) 7702 0 R (0:6565) 7703 0 R (0:6566) 7704 0 R (0:6567) 7705 0 R (0:6568) 7706 0 R (0:6569) 7707 0 R (0:657) 1562 0 R (0:6570) 7708 0 R (0:6571) 7709 0 R (0:6572) 7710 0 R (0:6573) 7711 0 R (0:6574) 7712 0 R (0:6575) 7713 0 R (0:6576) 7714 0 R (0:6577) 7715 0 R (0:6578) 7716 0 R (0:6579) 7717 0 R (0:658) 1563 0 R (0:6580) 7718 0 R (0:6581) 7719 0 R (0:6582) 7720 0 R (0:6583) 7721 0 R (0:6584) 7722 0 R (0:6585) 7723 0 R (0:6586) 7724 0 R (0:6587) 7725 0 R (0:6588) 7726 0 R (0:6589) 7727 0 R (0:659) 1564 0 R (0:6590) 7728 0 R (0:6591) 7729 0 R (0:6592) 7730 0 R (0:6593) 7731 0 R (0:6594) 7732 0 R (0:6597) 7733 0 R (0:6598) 7734 0 R (0:6599) 7735 0 R (0:66) 955 0 R (0:660) 1565 0 R (0:6600) 7736 0 R (0:6601) 7737 0 R (0:6602) 7738 0 R (0:6603) 7743 0 R (0:6604) 7744 0 R (0:6605) 7745 0 R (0:6606) 7746 0 R (0:6607) 7747 0 R (0:6608) 7748 0 R (0:6609) 7749 0 R (0:661) 1566 0 R (0:6610) 7750 0 R (0:6611) 7751 0 R (0:6612) 7752 0 R (0:6613) 7753 0 R (0:6614) 7754 0 R (0:6615) 7755 0 R (0:6616) 7756 0 R (0:6617) 7757 0 R (0:6618) 7758 0 R (0:6619) 7759 0 R (0:662) 1567 0 R (0:6620) 7760 0 R (0:6621) 7761 0 R (0:6622) 7762 0 R (0:6623) 7763 0 R (0:6624) 7764 0 R (0:6625) 7765 0 R (0:6626) 7766 0 R (0:6629) 7767 0 R (0:663) 1568 0 R (0:6630) 7768 0 R (0:6631) 7769 0 R (0:6632) 7770 0 R (0:6633) 7771 0 R (0:6634) 7772 0 R (0:6635) 7773 0 R (0:6636) 7774 0 R (0:6637) 7775 0 R (0:6638) 7776 0 R (0:6639) 7777 0 R (0:664) 1569 0 R (0:6640) 7778 0 R (0:6641) 7779 0 R (0:6642) 7780 0 R (0:6643) 7781 0 R (0:6644) 7782 0 R (0:6645) 7783 0 R (0:6646) 7784 0 R (0:6647) 7785 0 R (0:6648) 7786 0 R (0:6649) 7791 0 R (0:665) 1570 0 R (0:6650) 7792 0 R (0:6651) 7793 0 R (0:6652) 7794 0 R (0:6653) 7795 0 R (0:6654) 7796 0 R (0:6655) 7797 0 R (0:6656) 7798 0 R (0:6657) 7799 0 R (0:6658) 7800 0 R (0:6659) 7801 0 R (0:666) 1571 0 R (0:6660) 7802 0 R (0:6661) 7803 0 R (0:6662) 7804 0 R (0:6663) 7805 0 R (0:6664) 7806 0 R (0:6665) 7807 0 R (0:6666) 7808 0 R (0:6667) 7809 0 R (0:6668) 7810 0 R (0:6669) 7811 0 R (0:667) 1572 0 R (0:6670) 7812 0 R (0:6671) 7813 0 R (0:6672) 7814 0 R (0:6675) 7815 0 R (0:6676) 7816 0 R (0:6677) 7817 0 R (0:6678) 7818 0 R (0:6679) 7819 0 R (0:668) 1573 0 R (0:6680) 7820 0 R (0:6681) 7821 0 R (0:6682) 7822 0 R (0:6683) 7823 0 R (0:6684) 7824 0 R (0:6685) 7825 0 R (0:6686) 7826 0 R (0:6687) 7827 0 R (0:6688) 7828 0 R (0:6689) 7829 0 R (0:669) 1574 0 R (0:6690) 7830 0 R (0:6691) 7831 0 R (0:6692) 7832 0 R (0:6693) 7833 0 R (0:6694) 7834 0 R (0:6695) 7835 0 R (0:6696) 7840 0 R (0:6697) 7841 0 R (0:6698) 7842 0 R (0:6699) 7843 0 R (0:6700) 7844 0 R (0:6701) 7845 0 R (0:6702) 7846 0 R (0:6703) 7847 0 R (0:6704) 7848 0 R (0:6705) 7849 0 R (0:6706) 7850 0 R (0:6707) 7851 0 R (0:6708) 7852 0 R (0:6709) 7853 0 R (0:6710) 7854 0 R (0:6711) 7855 0 R (0:6712) 7856 0 R (0:6713) 7857 0 R (0:6714) 7858 0 R (0:6715) 7859 0 R (0:6716) 7860 0 R (0:6717) 7861 0 R (0:6718) 7862 0 R (0:6719) 7863 0 R (0:672) 1575 0 R (0:6720) 7864 0 R (0:6721) 7865 0 R (0:6722) 7866 0 R (0:6723) 7867 0 R (0:6724) 7868 0 R (0:6725) 7869 0 R (0:6726) 7870 0 R (0:6729) 7871 0 R (0:673) 1576 0 R (0:6730) 7872 0 R (0:6731) 7873 0 R (0:6732) 7874 0 R (0:6733) 7875 0 R (0:6734) 7876 0 R (0:6735) 7877 0 R (0:6736) 7878 0 R (0:6737) 7879 0 R (0:6738) 7880 0 R (0:6739) 7881 0 R (0:674) 1577 0 R (0:6740) 7882 0 R (0:6741) 7888 0 R (0:6742) 7889 0 R (0:6743) 7890 0 R (0:6744) 7891 0 R (0:6745) 7892 0 R (0:6746) 7893 0 R (0:6747) 7894 0 R (0:6748) 7895 0 R (0:6749) 7896 0 R (0:675) 1578 0 R (0:6750) 7897 0 R (0:6751) 7898 0 R (0:6752) 7899 0 R (0:6753) 7900 0 R (0:6754) 7901 0 R (0:6755) 7902 0 R (0:6756) 7903 0 R (0:6757) 7904 0 R (0:6758) 7905 0 R (0:6759) 7906 0 R (0:676) 1579 0 R (0:6760) 7907 0 R (0:6761) 7908 0 R (0:6762) 7909 0 R (0:6763) 7910 0 R (0:6764) 7911 0 R (0:6765) 7912 0 R (0:6766) 7913 0 R (0:6767) 7914 0 R (0:677) 1580 0 R (0:6770) 7915 0 R (0:6771) 7916 0 R (0:6772) 7917 0 R (0:6773) 7918 0 R (0:6774) 7919 0 R (0:6775) 7920 0 R (0:6776) 7921 0 R (0:6777) 7922 0 R (0:6778) 7923 0 R (0:6779) 7924 0 R (0:678) 1581 0 R (0:6780) 7925 0 R (0:6781) 7926 0 R (0:6782) 7927 0 R (0:6783) 7928 0 R (0:6784) 7929 0 R (0:6785) 7930 0 R (0:6786) 7931 0 R (0:6789) 7937 0 R (0:679) 1582 0 R (0:6790) 7938 0 R (0:6791) 7939 0 R (0:6792) 7887 0 R (0:6795) 7940 0 R (0:6796) 7941 0 R (0:6797) 7942 0 R (0:6798) 7943 0 R (0:6799) 7944 0 R (0:680) 1583 0 R (0:6800) 7945 0 R (0:6801) 7946 0 R (0:6802) 7947 0 R (0:6803) 7948 0 R (0:6804) 7949 0 R (0:6805) 7950 0 R (0:6806) 7951 0 R (0:6809) 7952 0 R (0:681) 1584 0 R (0:6810) 7953 0 R (0:6811) 7954 0 R (0:6812) 7955 0 R (0:6813) 7956 0 R (0:6814) 7957 0 R (0:6815) 7958 0 R (0:6816) 7959 0 R (0:6817) 7960 0 R (0:6818) 7961 0 R (0:6819) 7962 0 R (0:682) 1544 0 R (0:6820) 7963 0 R (0:6821) 7964 0 R (0:6822) 7965 0 R (0:6823) 7966 0 R (0:6824) 7967 0 R (0:6825) 7968 0 R (0:6826) 7969 0 R (0:6827) 7970 0 R (0:6828) 7971 0 R (0:6829) 7972 0 R (0:683) 1589 0 R (0:6832) 7977 0 R (0:6833) 7978 0 R (0:6834) 7979 0 R (0:6835) 7980 0 R (0:6836) 7981 0 R (0:6837) 7982 0 R (0:6838) 7983 0 R (0:6839) 7984 0 R (0:684) 1590 0 R (0:6840) 7985 0 R (0:6841) 7986 0 R (0:6842) 7987 0 R (0:6843) 7988 0 R (0:6844) 7989 0 R (0:6845) 7990 0 R (0:6846) 7991 0 R (0:6847) 7992 0 R (0:6848) 7993 0 R (0:6849) 7994 0 R (0:685) 1591 0 R (0:6850) 7995 0 R (0:6851) 7996 0 R (0:6852) 7997 0 R (0:6853) 7998 0 R (0:6854) 7999 0 R (0:6855) 8000 0 R (0:6856) 8001 0 R (0:6857) 8002 0 R (0:6858) 8003 0 R (0:6859) 8004 0 R (0:686) 1592 0 R (0:6860) 8005 0 R (0:6861) 8006 0 R (0:6862) 8007 0 R (0:6863) 8008 0 R (0:6864) 8009 0 R (0:6865) 8010 0 R (0:6866) 8011 0 R (0:6867) 8012 0 R (0:6868) 8013 0 R (0:6869) 8014 0 R (0:687) 1593 0 R (0:6870) 8015 0 R (0:6871) 8016 0 R (0:6872) 8017 0 R (0:688) 1594 0 R (0:689) 1595 0 R (0:690) 1596 0 R (0:691) 1597 0 R (0:692) 1598 0 R (0:693) 1599 0 R (0:694) 1600 0 R (0:695) 1601 0 R (0:696) 1602 0 R (0:697) 1603 0 R (0:698) 1604 0 R (0:699) 1605 0 R (0:700) 1606 0 R (0:701) 1607 0 R (0:702) 1608 0 R (0:703) 1609 0 R (0:704) 1610 0 R (0:705) 1611 0 R (0:706) 1612 0 R (0:707) 1613 0 R (0:708) 1614 0 R (0:709) 1615 0 R (0:712) 1616 0 R (0:713) 1617 0 R (0:714) 1618 0 R (0:715) 1619 0 R (0:716) 1620 0 R (0:717) 1621 0 R (0:718) 1622 0 R (0:719) 1623 0 R (0:720) 1624 0 R (0:721) 1625 0 R (0:722) 1626 0 R (0:723) 1627 0 R (0:724) 1628 0 R (0:725) 1629 0 R (0:726) 1630 0 R (0:727) 1631 0 R (0:728) 1632 0 R (0:729) 1633 0 R (0:730) 1634 0 R (0:731) 1635 0 R (0:732) 1640 0 R (0:733) 1641 0 R (0:734) 1642 0 R (0:735) 1643 0 R (0:736) 1644 0 R (0:737) 1645 0 R (0:738) 1646 0 R (0:739) 1647 0 R (0:74) 957 0 R (0:740) 1648 0 R (0:741) 1649 0 R (0:742) 1650 0 R (0:743) 1651 0 R (0:744) 1652 0 R (0:745) 1653 0 R (0:746) 1654 0 R (0:747) 1655 0 R (0:748) 1656 0 R (0:749) 1657 0 R (0:750) 1658 0 R (0:751) 1659 0 R (0:752) 1660 0 R (0:753) 1661 0 R (0:754) 1662 0 R (0:755) 1663 0 R (0:756) 1664 0 R (0:757) 1665 0 R (0:758) 1666 0 R (0:759) 1667 0 R (0:76) 959 0 R (0:760) 1668 0 R (0:761) 1669 0 R (0:762) 1670 0 R (0:763) 1671 0 R (0:764) 1672 0 R (0:765) 1673 0 R (0:766) 1674 0 R (0:767) 1675 0 R (0:768) 1676 0 R (0:77) 960 0 R (0:771) 1677 0 R (0:772) 1678 0 R (0:773) 1679 0 R (0:774) 1680 0 R (0:775) 1681 0 R (0:776) 1682 0 R (0:777) 1683 0 R (0:778) 1684 0 R (0:779) 1685 0 R (0:78) 961 0 R (0:780) 1686 0 R (0:781) 1687 0 R (0:782) 1688 0 R (0:783) 1689 0 R (0:784) 1690 0 R (0:785) 1691 0 R (0:786) 1692 0 R (0:787) 1693 0 R (0:788) 1694 0 R (0:789) 1695 0 R (0:79) 962 0 R (0:790) 1700 0 R (0:791) 1701 0 R (0:792) 1702 0 R (0:793) 1703 0 R (0:794) 1704 0 R (0:795) 1705 0 R (0:796) 1706 0 R (0:797) 1707 0 R (0:798) 1708 0 R (0:799) 1709 0 R (0:8) 917 0 R (0:80) 963 0 R (0:800) 1710 0 R (0:801) 1711 0 R (0:802) 1712 0 R (0:803) 1713 0 R (0:804) 1714 0 R (0:805) 1715 0 R (0:806) 1716 0 R (0:807) 1717 0 R (0:808) 1718 0 R (0:809) 1719 0 R (0:812) 1720 0 R (0:813) 1721 0 R (0:814) 1722 0 R (0:815) 1723 0 R (0:816) 1724 0 R (0:817) 1725 0 R (0:818) 1726 0 R (0:819) 1727 0 R (0:820) 1728 0 R (0:821) 1729 0 R (0:822) 1730 0 R (0:823) 1731 0 R (0:824) 1732 0 R (0:825) 1733 0 R (0:826) 1734 0 R (0:827) 1735 0 R (0:828) 1736 0 R (0:829) 1737 0 R (0:830) 1738 0 R (0:831) 1739 0 R (0:832) 1740 0 R (0:833) 1741 0 R (0:834) 1742 0 R (0:835) 1743 0 R (0:836) 1744 0 R (0:837) 1745 0 R (0:838) 1746 0 R (0:839) 1747 0 R (0:84) 965 0 R (0:840) 1748 0 R (0:841) 1753 0 R (0:842) 1754 0 R (0:843) 1755 0 R (0:844) 1756 0 R (0:845) 1757 0 R (0:846) 1758 0 R (0:847) 1759 0 R (0:848) 1760 0 R (0:849) 1761 0 R (0:85) 966 0 R (0:850) 1762 0 R (0:851) 1763 0 R (0:852) 1764 0 R (0:853) 1765 0 R (0:856) 1766 0 R (0:857) 1767 0 R (0:858) 1768 0 R (0:859) 1769 0 R (0:86) 967 0 R (0:860) 1770 0 R (0:861) 1771 0 R (0:862) 1772 0 R (0:863) 1773 0 R (0:864) 1774 0 R (0:865) 1775 0 R (0:866) 1776 0 R (0:867) 1777 0 R (0:868) 1778 0 R (0:869) 1779 0 R (0:87) 968 0 R (0:870) 1780 0 R (0:871) 1781 0 R (0:872) 1782 0 R (0:873) 1783 0 R (0:874) 1784 0 R (0:875) 1785 0 R (0:876) 1786 0 R (0:877) 1787 0 R (0:878) 1788 0 R (0:879) 1789 0 R (0:88) 969 0 R (0:880) 1790 0 R (0:881) 1791 0 R (0:882) 1792 0 R (0:883) 1793 0 R (0:884) 1794 0 R (0:885) 1795 0 R (0:886) 1796 0 R (0:887) 1797 0 R (0:888) 1798 0 R (0:889) 1799 0 R (0:89) 970 0 R (0:890) 1800 0 R (0:891) 1801 0 R (0:892) 1802 0 R (0:893) 1803 0 R (0:894) 1804 0 R (0:895) 1805 0 R (0:896) 1806 0 R (0:897) 1807 0 R (0:898) 1808 0 R (0:899) 1814 0 R (0:90) 627 0 R (0:900) 1815 0 R (0:901) 1816 0 R (0:902) 1817 0 R (0:903) 1818 0 R (0:904) 1819 0 R (0:905) 1820 0 R (0:906) 1821 0 R (0:907) 1822 0 R (0:910) 1823 0 R (0:911) 1824 0 R (0:912) 1825 0 R (0:913) 1826 0 R (0:914) 1827 0 R (0:915) 1828 0 R (0:916) 1829 0 R (0:917) 1830 0 R (0:918) 1831 0 R (0:919) 1832 0 R (0:92) 975 0 R (0:920) 1833 0 R (0:921) 1834 0 R (0:922) 1835 0 R (0:923) 1836 0 R (0:924) 1837 0 R (0:925) 1838 0 R (0:926) 1839 0 R (0:927) 1840 0 R (0:928) 1841 0 R (0:929) 1842 0 R (0:93) 976 0 R (0:930) 1843 0 R (0:931) 1844 0 R (0:932) 1845 0 R (0:933) 1846 0 R (0:934) 1847 0 R (0:935) 1848 0 R (0:936) 1849 0 R (0:937) 1850 0 R (0:938) 1851 0 R (0:939) 1852 0 R (0:94) 980 0 R (0:940) 1853 0 R (0:941) 1854 0 R (0:942) 1855 0 R (0:943) 1856 0 R (0:944) 1857 0 R (0:945) 1858 0 R (0:946) 1859 0 R (0:947) 1865 0 R (0:948) 1866 0 R (0:95) 981 0 R (0:951) 1867 0 R (0:952) 1868 0 R (0:953) 1869 0 R (0:954) 1870 0 R (0:955) 1871 0 R (0:956) 1872 0 R (0:957) 1873 0 R (0:958) 1874 0 R (0:959) 1875 0 R (0:96) 982 0 R (0:960) 1876 0 R (0:961) 1877 0 R (0:962) 1878 0 R (0:963) 1879 0 R (0:964) 1880 0 R (0:965) 1881 0 R (0:966) 1882 0 R (0:967) 1883 0 R (0:968) 1884 0 R (0:969) 1885 0 R (0:97) 983 0 R (0:970) 1886 0 R (0:971) 1887 0 R (0:972) 1888 0 R (0:973) 1889 0 R (0:974) 1890 0 R (0:975) 1891 0 R (0:976) 1892 0 R (0:977) 1893 0 R (0:978) 1894 0 R (0:979) 1895 0 R (0:98) 984 0 R (0:980) 1896 0 R (0:981) 1897 0 R (0:982) 1898 0 R (0:983) 1899 0 R (0:984) 1900 0 R (0:985) 1901 0 R (0:986) 1902 0 R (0:987) 1903 0 R (0:988) 1904 0 R (0:989) 1905 0 R (0:99) 985 0 R (0:992) 1910 0 R (0:993) 1911 0 R (0:994) 1912 0 R (0:995) 1864 0 R (0:998) 1913 0 R (0:999) 1914 0 R (0:AddAddressType) 629 0 R (0:AddAddressTypeToAddress) 630 0 R (0:AddBootState) 631 0 R (0:AddConfFile) 632 0 R (0:AddConfFileToNode) 634 0 R (0:AddConfFileToNodeGroup) 633 0 R (0:AddKeyType) 635 0 R (0:AddMessage) 636 0 R (0:AddNetworkMethod) 637 0 R (0:AddNetworkType) 638 0 R (0:AddNode) 641 0 R (0:AddNodeGroup) 639 0 R (0:AddNodeNetwork) 640 0 R (0:AddNodeToNodeGroup) 642 0 R (0:AddNodeToPCU) 643 0 R (0:AddPCU) 644 0 R (0:AddPeer) 645 0 R (0:AddPerson) 647 0 R (0:AddPersonKey) 646 0 R (0:AddPersonToSite) 648 0 R (0:AddPersonToSlice) 649 0 R (0:AddRole) 650 0 R (0:AddRoleToPerson) 651 0 R (0:AddSite) 653 0 R (0:AddSiteAddress) 652 0 R (0:AddSlice) 657 0 R (0:AddSliceAttribute) 654 0 R (0:AddSliceAttributeType) 655 0 R (0:AddSliceInstantiation) 656 0 R (0:AddSliceToNodes) 658 0 R (0:AuthCheck) 659 0 R (0:Authentication) 624 0 R (0:BlacklistKey) 660 0 R (0:BootGetNodeDetails) 661 0 R (0:BootNotifyOwners) 662 0 R (0:BootUpdateNode) 663 0 R (0:DeleteAddress) 664 0 R (0:DeleteAddressType) 666 0 R (0:DeleteAddressTypeFromAddress) 665 0 R (0:DeleteBootState) 667 0 R (0:DeleteConfFile) 770 0 R (0:DeleteConfFileFromNode) 769 0 R (0:DeleteConfFileFromNodeGroup) 768 0 R (0:DeleteKey) 771 0 R (0:DeleteKeyType) 772 0 R (0:DeleteMessage) 773 0 R (0:DeleteNetworkMethod) 774 0 R (0:DeleteNetworkType) 775 0 R (0:DeleteNode) 780 0 R (0:DeleteNodeFromNodeGroup) 776 0 R (0:DeleteNodeFromPCU) 777 0 R (0:DeleteNodeGroup) 778 0 R (0:DeleteNodeNetwork) 779 0 R (0:DeletePCU) 781 0 R (0:DeletePeer) 782 0 R (0:DeletePerson) 785 0 R (0:DeletePersonFromSite) 783 0 R (0:DeletePersonFromSlice) 784 0 R (0:DeleteRole) 787 0 R (0:DeleteRoleFromPerson) 786 0 R (0:DeleteSession) 788 0 R (0:DeleteSite) 789 0 R (0:DeleteSlice) 794 0 R (0:DeleteSliceAttribute) 790 0 R (0:DeleteSliceAttributeType) 791 0 R (0:DeleteSliceFromNodes) 792 0 R (0:DeleteSliceInstantiation) 793 0 R (0:Filters) 626 0 R (0:GetAddressTypes) 796 0 R (0:GetAddresses) 795 0 R (0:GetBootStates) 797 0 R (0:GetConfFiles) 798 0 R (0:GetEvents) 799 0 R (0:GetKeyTypes) 801 0 R (0:GetKeys) 800 0 R (0:GetMessages) 802 0 R (0:GetNetworkMethods) 803 0 R (0:GetNetworkTypes) 804 0 R (0:GetNodeGroups) 805 0 R (0:GetNodeNetworks) 806 0 R (0:GetNodes) 807 0 R (0:GetPCUs) 808 0 R (0:GetPeerData) 809 0 R (0:GetPeerName) 810 0 R (0:GetPeers) 811 0 R (0:GetPersons) 812 0 R (0:GetRoles) 813 0 R (0:GetSession) 814 0 R (0:GetSites) 815 0 R (0:GetSliceAttributeTypes) 883 0 R (0:GetSliceAttributes) 882 0 R (0:GetSliceInstantiations) 884 0 R (0:GetSliceTicket) 886 0 R (0:GetSlices) 885 0 R (0:GetSlivers) 887 0 R (0:Introduction) 623 0 R (0:Methods) 628 0 R (0:NotifyPersons) 888 0 R (0:RebootNode) 889 0 R (0:RefreshPeer) 890 0 R (0:ResetPassword) 891 0 R (0:Roles) 625 0 R (0:SetPersonPrimarySite) 892 0 R (0:UpdateAddress) 893 0 R (0:UpdateAddressType) 894 0 R (0:UpdateConfFile) 895 0 R (0:UpdateKey) 896 0 R (0:UpdateMessage) 897 0 R (0:UpdateNode) 900 0 R (0:UpdateNodeGroup) 898 0 R (0:UpdateNodeNetwork) 899 0 R (0:UpdatePCU) 901 0 R (0:UpdatePeer) 902 0 R (0:UpdatePerson) 903 0 R (0:UpdateSite) 904 0 R (0:UpdateSlice) 907 0 R (0:UpdateSliceAttribute) 905 0 R (0:UpdateSliceAttributeType) 906 0 R (0:VerifyPerson) 908 0 R (0:system.listMethods) 909 0 R (0:system.methodHelp) 910 0 R (0:system.methodSignature) 911 0 R (0:system.multicall) 912 0 R (1.0) 2 0 R (2.0) 6 0 R (3.0) 10 0 R (3.1.1) 14 0 R (3.2.1) 18 0 R (3.3.1) 22 0 R (3.4.1) 26 0 R (4.0) 30 0 R (4.10.1) 54 0 R (4.100.1) 414 0 R (4.101.1) 418 0 R (4.102.1) 422 0 R (4.103.1) 426 0 R (4.104.1) 430 0 R (4.105.1) 434 0 R (4.106.1) 438 0 R (4.107.1) 442 0 R (4.108.1) 446 0 R (4.109.1) 450 0 R (4.11.1) 58 0 R (4.110.1) 454 0 R (4.111.1) 458 0 R (4.112.1) 462 0 R (4.113.1) 466 0 R (4.114.1) 470 0 R (4.115.1) 474 0 R (4.116.1) 478 0 R (4.117.1) 482 0 R (4.118.1) 486 0 R (4.119.1) 490 0 R (4.12.1) 62 0 R (4.120.1) 494 0 R (4.121.1) 498 0 R (4.122.1) 502 0 R (4.13.1) 66 0 R (4.14.1) 70 0 R (4.15.1) 74 0 R (4.16.1) 78 0 R (4.17.1) 82 0 R (4.18.1) 86 0 R (4.19.1) 90 0 R (4.20.1) 94 0 R (4.21.1) 98 0 R (4.22.1) 102 0 R (4.23.1) 106 0 R (4.24.1) 110 0 R (4.25.1) 114 0 R (4.26.1) 118 0 R (4.27.1) 122 0 R (4.28.1) 126 0 R (4.29.1) 130 0 R (4.30.1) 134 0 R (4.31.1) 138 0 R (4.32.1) 142 0 R (4.33.1) 146 0 R (4.34.1) 150 0 R (4.35.1) 154 0 R (4.36.1) 158 0 R (4.37.1) 162 0 R (4.38.1) 166 0 R (4.39.1) 170 0 R (4.40.1) 174 0 R (4.41.1) 178 0 R (4.42.1) 182 0 R (4.43.1) 186 0 R (4.44.1) 190 0 R (4.45.1) 194 0 R (4.46.1) 198 0 R (4.47.1) 202 0 R (4.48.1) 206 0 R (4.49.1) 210 0 R (4.5.1) 34 0 R (4.50.1) 214 0 R (4.51.1) 218 0 R (4.52.1) 222 0 R (4.53.1) 226 0 R (4.54.1) 230 0 R (4.55.1) 234 0 R (4.56.1) 238 0 R (4.57.1) 242 0 R (4.58.1) 246 0 R (4.59.1) 250 0 R (4.6.1) 38 0 R (4.60.1) 254 0 R (4.61.1) 258 0 R (4.62.1) 262 0 R (4.63.1) 266 0 R (4.64.1) 270 0 R (4.65.1) 274 0 R (4.66.1) 278 0 R (4.67.1) 282 0 R (4.68.1) 286 0 R (4.69.1) 290 0 R (4.7.1) 42 0 R (4.70.1) 294 0 R (4.71.1) 298 0 R (4.72.1) 302 0 R (4.73.1) 306 0 R (4.74.1) 310 0 R (4.75.1) 314 0 R (4.76.1) 318 0 R (4.77.1) 322 0 R (4.78.1) 326 0 R (4.79.1) 330 0 R (4.8.1) 46 0 R (4.80.1) 334 0 R (4.81.1) 338 0 R (4.82.1) 342 0 R (4.83.1) 346 0 R (4.84.1) 350 0 R (4.85.1) 354 0 R (4.86.1) 358 0 R (4.87.1) 362 0 R (4.88.1) 366 0 R (4.89.1) 370 0 R (4.9.1) 50 0 R (4.90.1) 374 0 R (4.91.1) 378 0 R (4.92.1) 382 0 R (4.93.1) 386 0 R (4.94.1) 390 0 R (4.95.1) 394 0 R (4.96.1) 398 0 R (4.97.1) 402 0 R (4.98.1) 406 0 R (4.99.1) 410 0 R (Doc-Start) 510 0 R (page.1) 509 0 R (page.10) 1240 0 R (page.100) 6267 0 R (page.101) 6303 0 R (page.102) 6379 0 R (page.103) 6452 0 R (page.104) 6508 0 R (page.105) 6554 0 R (page.106) 6652 0 R (page.107) 6724 0 R (page.108) 6794 0 R (page.109) 6868 0 R (page.11) 1277 0 R (page.110) 6912 0 R (page.111) 6967 0 R (page.112) 7011 0 R (page.113) 7054 0 R (page.114) 7113 0 R (page.115) 7162 0 R (page.116) 7227 0 R (page.117) 7278 0 R (page.118) 7337 0 R (page.119) 7390 0 R (page.12) 1335 0 R (page.120) 7446 0 R (page.121) 7503 0 R (page.122) 7564 0 R (page.123) 7619 0 R (page.124) 7677 0 R (page.125) 7742 0 R (page.126) 7790 0 R (page.127) 7839 0 R (page.128) 7886 0 R (page.129) 7936 0 R (page.13) 1373 0 R (page.130) 7976 0 R (page.14) 1415 0 R (page.15) 1490 0 R (page.16) 1543 0 R (page.17) 1588 0 R (page.18) 1639 0 R (page.19) 1699 0 R (page.2) 519 0 R (page.20) 1752 0 R (page.21) 1813 0 R (page.22) 1863 0 R (page.23) 1909 0 R (page.24) 1947 0 R (page.25) 1994 0 R (page.26) 2054 0 R (page.27) 2117 0 R (page.28) 2171 0 R (page.29) 2223 0 R (page.3) 523 0 R (page.30) 2274 0 R (page.31) 2320 0 R (page.32) 2354 0 R (page.33) 2421 0 R (page.34) 2489 0 R (page.35) 2551 0 R (page.36) 2607 0 R (page.37) 2652 0 R (page.38) 2691 0 R (page.39) 2739 0 R (page.4) 671 0 R (page.40) 2788 0 R (page.41) 2828 0 R (page.42) 2875 0 R (page.43) 2913 0 R (page.44) 2962 0 R (page.45) 3008 0 R (page.46) 3050 0 R (page.47) 3091 0 R (page.48) 3142 0 R (page.49) 3180 0 R (page.5) 819 0 R (page.50) 3226 0 R (page.51) 3279 0 R (page.52) 3324 0 R (page.53) 3373 0 R (page.54) 3412 0 R (page.55) 3460 0 R (page.56) 3499 0 R (page.57) 3539 0 R (page.58) 3584 0 R (page.59) 3632 0 R (page.6) 1036 0 R (page.60) 3691 0 R (page.61) 3765 0 R (page.62) 3823 0 R (page.63) 3876 0 R (page.64) 3935 0 R (page.65) 4009 0 R (page.66) 4088 0 R (page.67) 4147 0 R (page.68) 4214 0 R (page.69) 4279 0 R (page.7) 1082 0 R (page.70) 4349 0 R (page.71) 4401 0 R (page.72) 4466 0 R (page.73) 4511 0 R (page.74) 4550 0 R (page.75) 4624 0 R (page.76) 4681 0 R (page.77) 4755 0 R (page.78) 4834 0 R (page.79) 4892 0 R (page.8) 1138 0 R (page.80) 4964 0 R (page.81) 5038 0 R (page.82) 5100 0 R (page.83) 5174 0 R (page.84) 5251 0 R (page.85) 5303 0 R (page.86) 5343 0 R (page.87) 5414 0 R (page.88) 5476 0 R (page.89) 5533 0 R (page.9) 1198 0 R (page.90) 5607 0 R (page.91) 5679 0 R (page.92) 5742 0 R (page.93) 5789 0 R (page.94) 5859 0 R (page.95) 5931 0 R (page.96) 6008 0 R (page.97) 6064 0 R (page.98) 6136 0 R (page.99) 6195 0 R (table.1) 932 0 R (table.2) 940 0 R (table.3) 948 0 R (table.4) 956 0 R]
+/Limits [(0:0) (table.4)]
+>> endobj
+8034 0 obj <<
+/Kids [8033 0 R]
+>> endobj
+8035 0 obj <<
+/Dests 8034 0 R
+>> endobj
+8036 0 obj <<
+/Type /Catalog
+/Pages 8031 0 R
+/Outlines 8032 0 R
+/Names 8035 0 R
+/PageMode /UseOutlines 
+/OpenAction 505 0 R
+>> endobj
+8037 0 obj <<
+/Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords()
+/CreationDate (D:20070219130429-05'00')
+/PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4)
+>> endobj
+xref
+0 8038
+0000000000 65535 f 
+0000000009 00000 n 
+0000011173 00000 n 
+0000948077 00000 n 
+0000000048 00000 n 
+0000000101 00000 n 
+0000081281 00000 n 
+0000947992 00000 n 
+0000000140 00000 n 
+0000000175 00000 n 
+0000203694 00000 n 
+0000947868 00000 n 
+0000000214 00000 n 
+0000000256 00000 n 
+0000203880 00000 n 
+0000947794 00000 n 
+0000000298 00000 n 
+0000000336 00000 n 
+0000207492 00000 n 
+0000947707 00000 n 
+0000000378 00000 n 
+0000000407 00000 n 
+0000207996 00000 n 
+0000947620 00000 n 
+0000000449 00000 n 
+0000000480 00000 n 
+0000210273 00000 n 
+0000947546 00000 n 
+0000000522 00000 n 
+0000000561 00000 n 
+0000213260 00000 n 
+0000947430 00000 n 
+0000000601 00000 n 
+0000000652 00000 n 
+0000213446 00000 n 
+0000947356 00000 n 
+0000000694 00000 n 
+0000000732 00000 n 
+0000215663 00000 n 
+0000947269 00000 n 
+0000000774 00000 n 
+0000000821 00000 n 
+0000219417 00000 n 
+0000947182 00000 n 
+0000000863 00000 n 
+0000000899 00000 n 
+0000222682 00000 n 
+0000947095 00000 n 
+0000000941 00000 n 
+0000000976 00000 n 
+0000228587 00000 n 
+0000947008 00000 n 
+0000001018 00000 n 
+0000001064 00000 n 
+0000232267 00000 n 
+0000946921 00000 n 
+0000001107 00000 n 
+0000001148 00000 n 
+0000235782 00000 n 
+0000946834 00000 n 
+0000001191 00000 n 
+0000001225 00000 n 
+0000237394 00000 n 
+0000946747 00000 n 
+0000001268 00000 n 
+0000001302 00000 n 
+0000241511 00000 n 
+0000946660 00000 n 
+0000001345 00000 n 
+0000001385 00000 n 
+0000244502 00000 n 
+0000946573 00000 n 
+0000001428 00000 n 
+0000001467 00000 n 
+0000246308 00000 n 
+0000946486 00000 n 
+0000001510 00000 n 
+0000001547 00000 n 
+0000250137 00000 n 
+0000946399 00000 n 
+0000001590 00000 n 
+0000001629 00000 n 
+0000257129 00000 n 
+0000946312 00000 n 
+0000001672 00000 n 
+0000001704 00000 n 
+0000262063 00000 n 
+0000946225 00000 n 
+0000001747 00000 n 
+0000001790 00000 n 
+0000266018 00000 n 
+0000946138 00000 n 
+0000001833 00000 n 
+0000001870 00000 n 
+0000270044 00000 n 
+0000946051 00000 n 
+0000001913 00000 n 
+0000001944 00000 n 
+0000275462 00000 n 
+0000945962 00000 n 
+0000001987 00000 n 
+0000002020 00000 n 
+0000279667 00000 n 
+0000945871 00000 n 
+0000002064 00000 n 
+0000002102 00000 n 
+0000284156 00000 n 
+0000945779 00000 n 
+0000002146 00000 n 
+0000002181 00000 n 
+0000289217 00000 n 
+0000945687 00000 n 
+0000002225 00000 n 
+0000002266 00000 n 
+0000293347 00000 n 
+0000945595 00000 n 
+0000002310 00000 n 
+0000002352 00000 n 
+0000297294 00000 n 
+0000945503 00000 n 
+0000002396 00000 n 
+0000002429 00000 n 
+0000299104 00000 n 
+0000945411 00000 n 
+0000002473 00000 n 
+0000002514 00000 n 
+0000303255 00000 n 
+0000945319 00000 n 
+0000002558 00000 n 
+0000002598 00000 n 
+0000308697 00000 n 
+0000945227 00000 n 
+0000002642 00000 n 
+0000002675 00000 n 
+0000314496 00000 n 
+0000945135 00000 n 
+0000002719 00000 n 
+0000002762 00000 n 
+0000319489 00000 n 
+0000945043 00000 n 
+0000002806 00000 n 
+0000002853 00000 n 
+0000323303 00000 n 
+0000944951 00000 n 
+0000002897 00000 n 
+0000002944 00000 n 
+0000326884 00000 n 
+0000944859 00000 n 
+0000002988 00000 n 
+0000003022 00000 n 
+0000331335 00000 n 
+0000944767 00000 n 
+0000003066 00000 n 
+0000003107 00000 n 
+0000335334 00000 n 
+0000944675 00000 n 
+0000003151 00000 n 
+0000003186 00000 n 
+0000336686 00000 n 
+0000944583 00000 n 
+0000003230 00000 n 
+0000003268 00000 n 
+0000340191 00000 n 
+0000944491 00000 n 
+0000003312 00000 n 
+0000003356 00000 n 
+0000348055 00000 n 
+0000944399 00000 n 
+0000003400 00000 n 
+0000003442 00000 n 
+0000352503 00000 n 
+0000944307 00000 n 
+0000003486 00000 n 
+0000003526 00000 n 
+0000358634 00000 n 
+0000944215 00000 n 
+0000003570 00000 n 
+0000003609 00000 n 
+0000361873 00000 n 
+0000944123 00000 n 
+0000003653 00000 n 
+0000003707 00000 n 
+0000365554 00000 n 
+0000944031 00000 n 
+0000003751 00000 n 
+0000003794 00000 n 
+0000367491 00000 n 
+0000943939 00000 n 
+0000003838 00000 n 
+0000003879 00000 n 
+0000370681 00000 n 
+0000943847 00000 n 
+0000003923 00000 n 
+0000003976 00000 n 
+0000374504 00000 n 
+0000943755 00000 n 
+0000004020 00000 n 
+0000004068 00000 n 
+0000378165 00000 n 
+0000943663 00000 n 
+0000004112 00000 n 
+0000004152 00000 n 
+0000379909 00000 n 
+0000943571 00000 n 
+0000004196 00000 n 
+0000004231 00000 n 
+0000383041 00000 n 
+0000943479 00000 n 
+0000004275 00000 n 
+0000004314 00000 n 
+0000386127 00000 n 
+0000943387 00000 n 
+0000004358 00000 n 
+0000004397 00000 n 
+0000387934 00000 n 
+0000943295 00000 n 
+0000004441 00000 n 
+0000004486 00000 n 
+0000391133 00000 n 
+0000943203 00000 n 
+0000004530 00000 n 
+0000004573 00000 n 
+0000394384 00000 n 
+0000943111 00000 n 
+0000004617 00000 n 
+0000004666 00000 n 
+0000398436 00000 n 
+0000943019 00000 n 
+0000004710 00000 n 
+0000004753 00000 n 
+0000400629 00000 n 
+0000942927 00000 n 
+0000004797 00000 n 
+0000004838 00000 n 
+0000404087 00000 n 
+0000942835 00000 n 
+0000004882 00000 n 
+0000004925 00000 n 
+0000407420 00000 n 
+0000942743 00000 n 
+0000004969 00000 n 
+0000005005 00000 n 
+0000410808 00000 n 
+0000942651 00000 n 
+0000005049 00000 n 
+0000005084 00000 n 
+0000412681 00000 n 
+0000942559 00000 n 
+0000005128 00000 n 
+0000005164 00000 n 
+0000416186 00000 n 
+0000942467 00000 n 
+0000005208 00000 n 
+0000005254 00000 n 
+0000420352 00000 n 
+0000942375 00000 n 
+0000005298 00000 n 
+0000005345 00000 n 
+0000424472 00000 n 
+0000942283 00000 n 
+0000005389 00000 n 
+0000005427 00000 n 
+0000428197 00000 n 
+0000942191 00000 n 
+0000005471 00000 n 
+0000005517 00000 n 
+0000432284 00000 n 
+0000942099 00000 n 
+0000005561 00000 n 
+0000005597 00000 n 
+0000434285 00000 n 
+0000942007 00000 n 
+0000005641 00000 n 
+0000005680 00000 n 
+0000437468 00000 n 
+0000941915 00000 n 
+0000005724 00000 n 
+0000005760 00000 n 
+0000441085 00000 n 
+0000941823 00000 n 
+0000005804 00000 n 
+0000005850 00000 n 
+0000444349 00000 n 
+0000941731 00000 n 
+0000005894 00000 n 
+0000005944 00000 n 
+0000446279 00000 n 
+0000941639 00000 n 
+0000005988 00000 n 
+0000006034 00000 n 
+0000450203 00000 n 
+0000941547 00000 n 
+0000006078 00000 n 
+0000006128 00000 n 
+0000453420 00000 n 
+0000941455 00000 n 
+0000006172 00000 n 
+0000006209 00000 n 
+0000457250 00000 n 
+0000941363 00000 n 
+0000006253 00000 n 
+0000006291 00000 n 
+0000469578 00000 n 
+0000941271 00000 n 
+0000006335 00000 n 
+0000006376 00000 n 
+0000476089 00000 n 
+0000941179 00000 n 
+0000006420 00000 n 
+0000006459 00000 n 
+0000479279 00000 n 
+0000941087 00000 n 
+0000006503 00000 n 
+0000006541 00000 n 
+0000497497 00000 n 
+0000940995 00000 n 
+0000006585 00000 n 
+0000006620 00000 n 
+0000511301 00000 n 
+0000940903 00000 n 
+0000006664 00000 n 
+0000006697 00000 n 
+0000521547 00000 n 
+0000940811 00000 n 
+0000006741 00000 n 
+0000006778 00000 n 
+0000523095 00000 n 
+0000940719 00000 n 
+0000006822 00000 n 
+0000006859 00000 n 
+0000531617 00000 n 
+0000940627 00000 n 
+0000006903 00000 n 
+0000006946 00000 n 
+0000534470 00000 n 
+0000940535 00000 n 
+0000006990 00000 n 
+0000007031 00000 n 
+0000535822 00000 n 
+0000940443 00000 n 
+0000007075 00000 n 
+0000007114 00000 n 
+0000545113 00000 n 
+0000940351 00000 n 
+0000007158 00000 n 
+0000007199 00000 n 
+0000563804 00000 n 
+0000940259 00000 n 
+0000007243 00000 n 
+0000007277 00000 n 
+0000584619 00000 n 
+0000940167 00000 n 
+0000007321 00000 n 
+0000007354 00000 n 
+0000599420 00000 n 
+0000940075 00000 n 
+0000007398 00000 n 
+0000007435 00000 n 
+0000604504 00000 n 
+0000939983 00000 n 
+0000007479 00000 n 
+0000007516 00000 n 
+0000606052 00000 n 
+0000939891 00000 n 
+0000007560 00000 n 
+0000007594 00000 n 
+0000619578 00000 n 
+0000939799 00000 n 
+0000007638 00000 n 
+0000007674 00000 n 
+0000640255 00000 n 
+0000939707 00000 n 
+0000007718 00000 n 
+0000007752 00000 n 
+0000643567 00000 n 
+0000939615 00000 n 
+0000007796 00000 n 
+0000007832 00000 n 
+0000645114 00000 n 
+0000939523 00000 n 
+0000007876 00000 n 
+0000007910 00000 n 
+0000668222 00000 n 
+0000939431 00000 n 
+0000007954 00000 n 
+0000007998 00000 n 
+0000680047 00000 n 
+0000939339 00000 n 
+0000008042 00000 n 
+0000008090 00000 n 
+0000688897 00000 n 
+0000939247 00000 n 
+0000008134 00000 n 
+0000008182 00000 n 
+0000690443 00000 n 
+0000939155 00000 n 
+0000008226 00000 n 
+0000008261 00000 n 
+0000708780 00000 n 
+0000939063 00000 n 
+0000008305 00000 n 
+0000008345 00000 n 
+0000712401 00000 n 
+0000938971 00000 n 
+0000008389 00000 n 
+0000008425 00000 n 
+0000728200 00000 n 
+0000938879 00000 n 
+0000008469 00000 n 
+0000008508 00000 n 
+0000744453 00000 n 
+0000938787 00000 n 
+0000008552 00000 n 
+0000008588 00000 n 
+0000748138 00000 n 
+0000938695 00000 n 
+0000008633 00000 n 
+0000008670 00000 n 
+0000751851 00000 n 
+0000938603 00000 n 
+0000008715 00000 n 
+0000008754 00000 n 
+0000755914 00000 n 
+0000938511 00000 n 
+0000008799 00000 n 
+0000008845 00000 n 
+0000758361 00000 n 
+0000938419 00000 n 
+0000008890 00000 n 
+0000008929 00000 n 
+0000763477 00000 n 
+0000938327 00000 n 
+0000008974 00000 n 
+0000009018 00000 n 
+0000767718 00000 n 
+0000938235 00000 n 
+0000009063 00000 n 
+0000009104 00000 n 
+0000773784 00000 n 
+0000938143 00000 n 
+0000009149 00000 n 
+0000009185 00000 n 
+0000777493 00000 n 
+0000938051 00000 n 
+0000009230 00000 n 
+0000009270 00000 n 
+0000781536 00000 n 
+0000937959 00000 n 
+0000009315 00000 n 
+0000009357 00000 n 
+0000786030 00000 n 
+0000937867 00000 n 
+0000009402 00000 n 
+0000009446 00000 n 
+0000792441 00000 n 
+0000937775 00000 n 
+0000009491 00000 n 
+0000009528 00000 n 
+0000797898 00000 n 
+0000937683 00000 n 
+0000009573 00000 n 
+0000009609 00000 n 
+0000803813 00000 n 
+0000937591 00000 n 
+0000009654 00000 n 
+0000009691 00000 n 
+0000808595 00000 n 
+0000937499 00000 n 
+0000009736 00000 n 
+0000009775 00000 n 
+0000814505 00000 n 
+0000937407 00000 n 
+0000009820 00000 n 
+0000009857 00000 n 
+0000820670 00000 n 
+0000937315 00000 n 
+0000009902 00000 n 
+0000009949 00000 n 
+0000824143 00000 n 
+0000937223 00000 n 
+0000009994 00000 n 
+0000010045 00000 n 
+0000828773 00000 n 
+0000937131 00000 n 
+0000010090 00000 n 
+0000010128 00000 n 
+0000834079 00000 n 
+0000937039 00000 n 
+0000010173 00000 n 
+0000010212 00000 n 
+0000838214 00000 n 
+0000936947 00000 n 
+0000010257 00000 n 
+0000010302 00000 n 
+0000840691 00000 n 
+0000936855 00000 n 
+0000010347 00000 n 
+0000010391 00000 n 
+0000841786 00000 n 
+0000936763 00000 n 
+0000010436 00000 n 
+0000010485 00000 n 
+0000844649 00000 n 
+0000936685 00000 n 
+0000010530 00000 n 
+0000010573 00000 n 
+0000010865 00000 n 
+0000011234 00000 n 
+0000010625 00000 n 
+0000010987 00000 n 
+0000011049 00000 n 
+0000011111 00000 n 
+0000932562 00000 n 
+0000921067 00000 n 
+0000932389 00000 n 
+0000933189 00000 n 
+0000011728 00000 n 
+0000011544 00000 n 
+0000011306 00000 n 
+0000011666 00000 n 
+0000081342 00000 n 
+0000065810 00000 n 
+0000011800 00000 n 
+0000081219 00000 n 
+0000066664 00000 n 
+0000920584 00000 n 
+0000911162 00000 n 
+0000920408 00000 n 
+0000066825 00000 n 
+0000066985 00000 n 
+0000910199 00000 n 
+0000891691 00000 n 
+0000910024 00000 n 
+0000067148 00000 n 
+0000067310 00000 n 
+0000067462 00000 n 
+0000067613 00000 n 
+0000067769 00000 n 
+0000067924 00000 n 
+0000068075 00000 n 
+0000068225 00000 n 
+0000068381 00000 n 
+0000068536 00000 n 
+0000068698 00000 n 
+0000068860 00000 n 
+0000069032 00000 n 
+0000069203 00000 n 
+0000069364 00000 n 
+0000069524 00000 n 
+0000069684 00000 n 
+0000069843 00000 n 
+0000070014 00000 n 
+0000070184 00000 n 
+0000070349 00000 n 
+0000070513 00000 n 
+0000070671 00000 n 
+0000070829 00000 n 
+0000070988 00000 n 
+0000071147 00000 n 
+0000071312 00000 n 
+0000071477 00000 n 
+0000071640 00000 n 
+0000071803 00000 n 
+0000071964 00000 n 
+0000072125 00000 n 
+0000072288 00000 n 
+0000072451 00000 n 
+0000072606 00000 n 
+0000072761 00000 n 
+0000072928 00000 n 
+0000073095 00000 n 
+0000073256 00000 n 
+0000073417 00000 n 
+0000073571 00000 n 
+0000073726 00000 n 
+0000073882 00000 n 
+0000074038 00000 n 
+0000074199 00000 n 
+0000074360 00000 n 
+0000074518 00000 n 
+0000074676 00000 n 
+0000074838 00000 n 
+0000075001 00000 n 
+0000075166 00000 n 
+0000075331 00000 n 
+0000075487 00000 n 
+0000075643 00000 n 
+0000075806 00000 n 
+0000075969 00000 n 
+0000076132 00000 n 
+0000076295 00000 n 
+0000076451 00000 n 
+0000076607 00000 n 
+0000076773 00000 n 
+0000076939 00000 n 
+0000077107 00000 n 
+0000077275 00000 n 
+0000077445 00000 n 
+0000077615 00000 n 
+0000077772 00000 n 
+0000077929 00000 n 
+0000078092 00000 n 
+0000078255 00000 n 
+0000078413 00000 n 
+0000078571 00000 n 
+0000078732 00000 n 
+0000078893 00000 n 
+0000079060 00000 n 
+0000079227 00000 n 
+0000079391 00000 n 
+0000079555 00000 n 
+0000079718 00000 n 
+0000079881 00000 n 
+0000080043 00000 n 
+0000080205 00000 n 
+0000080382 00000 n 
+0000080559 00000 n 
+0000080725 00000 n 
+0000080891 00000 n 
+0000081055 00000 n 
+0000891140 00000 n 
+0000880124 00000 n 
+0000890960 00000 n 
+0000203632 00000 n 
+0000203818 00000 n 
+0000207430 00000 n 
+0000207934 00000 n 
+0000208437 00000 n 
+0000213198 00000 n 
+0000213384 00000 n 
+0000215601 00000 n 
+0000219354 00000 n 
+0000222619 00000 n 
+0000228524 00000 n 
+0000232204 00000 n 
+0000234529 00000 n 
+0000237333 00000 n 
+0000241448 00000 n 
+0000239514 00000 n 
+0000246245 00000 n 
+0000250074 00000 n 
+0000257066 00000 n 
+0000262000 00000 n 
+0000265955 00000 n 
+0000269981 00000 n 
+0000275399 00000 n 
+0000279604 00000 n 
+0000284093 00000 n 
+0000289154 00000 n 
+0000293284 00000 n 
+0000295932 00000 n 
+0000299041 00000 n 
+0000303192 00000 n 
+0000308634 00000 n 
+0000314433 00000 n 
+0000319426 00000 n 
+0000323240 00000 n 
+0000326821 00000 n 
+0000326500 00000 n 
+0000333988 00000 n 
+0000336623 00000 n 
+0000340129 00000 n 
+0000347992 00000 n 
+0000352440 00000 n 
+0000358571 00000 n 
+0000361810 00000 n 
+0000364201 00000 n 
+0000367428 00000 n 
+0000154083 00000 n 
+0000137494 00000 n 
+0000081453 00000 n 
+0000154021 00000 n 
+0000138396 00000 n 
+0000138572 00000 n 
+0000138748 00000 n 
+0000138919 00000 n 
+0000139090 00000 n 
+0000139252 00000 n 
+0000139415 00000 n 
+0000139573 00000 n 
+0000139731 00000 n 
+0000139893 00000 n 
+0000140055 00000 n 
+0000140217 00000 n 
+0000140379 00000 n 
+0000140547 00000 n 
+0000140715 00000 n 
+0000140881 00000 n 
+0000141047 00000 n 
+0000141219 00000 n 
+0000141391 00000 n 
+0000141557 00000 n 
+0000141723 00000 n 
+0000141887 00000 n 
+0000142051 00000 n 
+0000142217 00000 n 
+0000142383 00000 n 
+0000142542 00000 n 
+0000142701 00000 n 
+0000142859 00000 n 
+0000143017 00000 n 
+0000143176 00000 n 
+0000143335 00000 n 
+0000143504 00000 n 
+0000143673 00000 n 
+0000143842 00000 n 
+0000144011 00000 n 
+0000144172 00000 n 
+0000144333 00000 n 
+0000144502 00000 n 
+0000144671 00000 n 
+0000144830 00000 n 
+0000144989 00000 n 
+0000145151 00000 n 
+0000145313 00000 n 
+0000145472 00000 n 
+0000145631 00000 n 
+0000145799 00000 n 
+0000145967 00000 n 
+0000146140 00000 n 
+0000146313 00000 n 
+0000146482 00000 n 
+0000146651 00000 n 
+0000146824 00000 n 
+0000146997 00000 n 
+0000147157 00000 n 
+0000147317 00000 n 
+0000147477 00000 n 
+0000147638 00000 n 
+0000147802 00000 n 
+0000147966 00000 n 
+0000148127 00000 n 
+0000148288 00000 n 
+0000148449 00000 n 
+0000148610 00000 n 
+0000148768 00000 n 
+0000148926 00000 n 
+0000149082 00000 n 
+0000149238 00000 n 
+0000149398 00000 n 
+0000149558 00000 n 
+0000149718 00000 n 
+0000149878 00000 n 
+0000150044 00000 n 
+0000150210 00000 n 
+0000150371 00000 n 
+0000150533 00000 n 
+0000150695 00000 n 
+0000150857 00000 n 
+0000151021 00000 n 
+0000151185 00000 n 
+0000151342 00000 n 
+0000151499 00000 n 
+0000151655 00000 n 
+0000151811 00000 n 
+0000151971 00000 n 
+0000152131 00000 n 
+0000152290 00000 n 
+0000152450 00000 n 
+0000152606 00000 n 
+0000152762 00000 n 
+0000152921 00000 n 
+0000153080 00000 n 
+0000153237 00000 n 
+0000153394 00000 n 
+0000153553 00000 n 
+0000153712 00000 n 
+0000153866 00000 n 
+0000370618 00000 n 
+0000374441 00000 n 
+0000376764 00000 n 
+0000379846 00000 n 
+0000382978 00000 n 
+0000384851 00000 n 
+0000387873 00000 n 
+0000391070 00000 n 
+0000389776 00000 n 
+0000396970 00000 n 
+0000400566 00000 n 
+0000404024 00000 n 
+0000407358 00000 n 
+0000406260 00000 n 
+0000412618 00000 n 
+0000416123 00000 n 
+0000420289 00000 n 
+0000424409 00000 n 
+0000428134 00000 n 
+0000430848 00000 n 
+0000434222 00000 n 
+0000437405 00000 n 
+0000441022 00000 n 
+0000442896 00000 n 
+0000446216 00000 n 
+0000450140 00000 n 
+0000453357 00000 n 
+0000457187 00000 n 
+0000469515 00000 n 
+0000476028 00000 n 
+0000479216 00000 n 
+0000497434 00000 n 
+0000511238 00000 n 
+0000521484 00000 n 
+0000523032 00000 n 
+0000531554 00000 n 
+0000533104 00000 n 
+0000535759 00000 n 
+0000545050 00000 n 
+0000563741 00000 n 
+0000584556 00000 n 
+0000593139 00000 n 
+0000604441 00000 n 
+0000605989 00000 n 
+0000617769 00000 n 
+0000640192 00000 n 
+0000643504 00000 n 
+0000645051 00000 n 
+0000200308 00000 n 
+0000189491 00000 n 
+0000154168 00000 n 
+0000200246 00000 n 
+0000190121 00000 n 
+0000190288 00000 n 
+0000190455 00000 n 
+0000190626 00000 n 
+0000190797 00000 n 
+0000190968 00000 n 
+0000191139 00000 n 
+0000191296 00000 n 
+0000191453 00000 n 
+0000191616 00000 n 
+0000191779 00000 n 
+0000191938 00000 n 
+0000192097 00000 n 
+0000192258 00000 n 
+0000192419 00000 n 
+0000192578 00000 n 
+0000192737 00000 n 
+0000192896 00000 n 
+0000193056 00000 n 
+0000193218 00000 n 
+0000193380 00000 n 
+0000193548 00000 n 
+0000193717 00000 n 
+0000193879 00000 n 
+0000194041 00000 n 
+0000194207 00000 n 
+0000194373 00000 n 
+0000194535 00000 n 
+0000194697 00000 n 
+0000194855 00000 n 
+0000195013 00000 n 
+0000195175 00000 n 
+0000195337 00000 n 
+0000195501 00000 n 
+0000195665 00000 n 
+0000195831 00000 n 
+0000195997 00000 n 
+0000196156 00000 n 
+0000196315 00000 n 
+0000196473 00000 n 
+0000196631 00000 n 
+0000196789 00000 n 
+0000196947 00000 n 
+0000197108 00000 n 
+0000197269 00000 n 
+0000197427 00000 n 
+0000197585 00000 n 
+0000197754 00000 n 
+0000197923 00000 n 
+0000198096 00000 n 
+0000198269 00000 n 
+0000198429 00000 n 
+0000198589 00000 n 
+0000198750 00000 n 
+0000198911 00000 n 
+0000199078 00000 n 
+0000199245 00000 n 
+0000199411 00000 n 
+0000199577 00000 n 
+0000199746 00000 n 
+0000199916 00000 n 
+0000200081 00000 n 
+0000668159 00000 n 
+0000679984 00000 n 
+0000688834 00000 n 
+0000690380 00000 n 
+0000708717 00000 n 
+0000712338 00000 n 
+0000728137 00000 n 
+0000744390 00000 n 
+0000748075 00000 n 
+0000746655 00000 n 
+0000754377 00000 n 
+0000758298 00000 n 
+0000763414 00000 n 
+0000767655 00000 n 
+0000773721 00000 n 
+0000777430 00000 n 
+0000781473 00000 n 
+0000785967 00000 n 
+0000792378 00000 n 
+0000797835 00000 n 
+0000803750 00000 n 
+0000808532 00000 n 
+0000814442 00000 n 
+0000820607 00000 n 
+0000824080 00000 n 
+0000828710 00000 n 
+0000834016 00000 n 
+0000838153 00000 n 
+0000839377 00000 n 
+0000841723 00000 n 
+0000840628 00000 n 
+0000205066 00000 n 
+0000202132 00000 n 
+0000200393 00000 n 
+0000203756 00000 n 
+0000203943 00000 n 
+0000202330 00000 n 
+0000202497 00000 n 
+0000202668 00000 n 
+0000202833 00000 n 
+0000204005 00000 n 
+0000879590 00000 n 
+0000868648 00000 n 
+0000879413 00000 n 
+0000204069 00000 n 
+0000204131 00000 n 
+0000204193 00000 n 
+0000202998 00000 n 
+0000204257 00000 n 
+0000204319 00000 n 
+0000204381 00000 n 
+0000867827 00000 n 
+0000851190 00000 n 
+0000867654 00000 n 
+0000204443 00000 n 
+0000204506 00000 n 
+0000204570 00000 n 
+0000204631 00000 n 
+0000204693 00000 n 
+0000204755 00000 n 
+0000204818 00000 n 
+0000203156 00000 n 
+0000203317 00000 n 
+0000203473 00000 n 
+0000204882 00000 n 
+0000204944 00000 n 
+0000205005 00000 n 
+0000208499 00000 n 
+0000206648 00000 n 
+0000205190 00000 n 
+0000207117 00000 n 
+0000207180 00000 n 
+0000207244 00000 n 
+0000207306 00000 n 
+0000207368 00000 n 
+0000207555 00000 n 
+0000206798 00000 n 
+0000207617 00000 n 
+0000207678 00000 n 
+0000207742 00000 n 
+0000207806 00000 n 
+0000207870 00000 n 
+0000206954 00000 n 
+0000208059 00000 n 
+0000208121 00000 n 
+0000208185 00000 n 
+0000208247 00000 n 
+0000208309 00000 n 
+0000208373 00000 n 
+0000933307 00000 n 
+0000211086 00000 n 
+0000210151 00000 n 
+0000208610 00000 n 
+0000210336 00000 n 
+0000210398 00000 n 
+0000848967 00000 n 
+0000847474 00000 n 
+0000848804 00000 n 
+0000210462 00000 n 
+0000210524 00000 n 
+0000210586 00000 n 
+0000210648 00000 n 
+0000210710 00000 n 
+0000210772 00000 n 
+0000210834 00000 n 
+0000210896 00000 n 
+0000210960 00000 n 
+0000211024 00000 n 
+0000212021 00000 n 
+0000211899 00000 n 
+0000211223 00000 n 
+0000215915 00000 n 
+0000213076 00000 n 
+0000212106 00000 n 
+0000213322 00000 n 
+0000213509 00000 n 
+0000213571 00000 n 
+0000213635 00000 n 
+0000213697 00000 n 
+0000213760 00000 n 
+0000213825 00000 n 
+0000213888 00000 n 
+0000213951 00000 n 
+0000214014 00000 n 
+0000214078 00000 n 
+0000214141 00000 n 
+0000214204 00000 n 
+0000214267 00000 n 
+0000214330 00000 n 
+0000214394 00000 n 
+0000214458 00000 n 
+0000214521 00000 n 
+0000214584 00000 n 
+0000214648 00000 n 
+0000214712 00000 n 
+0000214776 00000 n 
+0000214841 00000 n 
+0000214906 00000 n 
+0000214968 00000 n 
+0000215030 00000 n 
+0000215093 00000 n 
+0000215156 00000 n 
+0000215219 00000 n 
+0000215283 00000 n 
+0000215347 00000 n 
+0000215410 00000 n 
+0000215473 00000 n 
+0000215536 00000 n 
+0000215726 00000 n 
+0000215788 00000 n 
+0000215852 00000 n 
+0000220062 00000 n 
+0000217031 00000 n 
+0000216026 00000 n 
+0000217156 00000 n 
+0000217220 00000 n 
+0000217284 00000 n 
+0000217348 00000 n 
+0000217414 00000 n 
+0000217478 00000 n 
+0000217542 00000 n 
+0000217606 00000 n 
+0000217670 00000 n 
+0000217736 00000 n 
+0000217800 00000 n 
+0000217864 00000 n 
+0000217928 00000 n 
+0000217992 00000 n 
+0000218058 00000 n 
+0000218124 00000 n 
+0000218188 00000 n 
+0000218252 00000 n 
+0000218317 00000 n 
+0000218382 00000 n 
+0000218447 00000 n 
+0000218513 00000 n 
+0000218579 00000 n 
+0000218643 00000 n 
+0000218707 00000 n 
+0000218772 00000 n 
+0000218835 00000 n 
+0000218900 00000 n 
+0000218965 00000 n 
+0000219031 00000 n 
+0000219097 00000 n 
+0000219161 00000 n 
+0000219225 00000 n 
+0000219288 00000 n 
+0000219481 00000 n 
+0000219545 00000 n 
+0000219611 00000 n 
+0000219675 00000 n 
+0000219738 00000 n 
+0000219804 00000 n 
+0000219868 00000 n 
+0000219932 00000 n 
+0000219996 00000 n 
+0000225075 00000 n 
+0000221395 00000 n 
+0000220174 00000 n 
+0000221520 00000 n 
+0000221584 00000 n 
+0000221648 00000 n 
+0000221712 00000 n 
+0000221776 00000 n 
+0000221842 00000 n 
+0000221908 00000 n 
+0000221971 00000 n 
+0000222034 00000 n 
+0000222099 00000 n 
+0000222164 00000 n 
+0000222229 00000 n 
+0000222295 00000 n 
+0000222361 00000 n 
+0000222425 00000 n 
+0000222489 00000 n 
+0000222553 00000 n 
+0000222746 00000 n 
+0000222810 00000 n 
+0000222876 00000 n 
+0000222940 00000 n 
+0000223004 00000 n 
+0000223070 00000 n 
+0000223134 00000 n 
+0000223198 00000 n 
+0000223262 00000 n 
+0000223328 00000 n 
+0000223392 00000 n 
+0000223456 00000 n 
+0000223520 00000 n 
+0000223584 00000 n 
+0000223650 00000 n 
+0000223716 00000 n 
+0000223780 00000 n 
+0000223844 00000 n 
+0000223909 00000 n 
+0000223974 00000 n 
+0000224039 00000 n 
+0000224105 00000 n 
+0000224171 00000 n 
+0000224235 00000 n 
+0000224299 00000 n 
+0000224364 00000 n 
+0000224429 00000 n 
+0000224493 00000 n 
+0000224558 00000 n 
+0000224623 00000 n 
+0000224687 00000 n 
+0000224752 00000 n 
+0000224817 00000 n 
+0000224881 00000 n 
+0000224946 00000 n 
+0000225011 00000 n 
+0000230588 00000 n 
+0000226718 00000 n 
+0000225187 00000 n 
+0000226844 00000 n 
+0000226908 00000 n 
+0000226972 00000 n 
+0000227037 00000 n 
+0000227102 00000 n 
+0000227166 00000 n 
+0000227231 00000 n 
+0000227296 00000 n 
+0000227360 00000 n 
+0000227425 00000 n 
+0000227490 00000 n 
+0000227554 00000 n 
+0000227619 00000 n 
+0000227684 00000 n 
+0000227748 00000 n 
+0000227813 00000 n 
+0000227878 00000 n 
+0000227942 00000 n 
+0000228007 00000 n 
+0000228072 00000 n 
+0000228136 00000 n 
+0000228201 00000 n 
+0000228266 00000 n 
+0000228330 00000 n 
+0000228394 00000 n 
+0000228458 00000 n 
+0000228651 00000 n 
+0000228715 00000 n 
+0000228780 00000 n 
+0000228844 00000 n 
+0000228908 00000 n 
+0000228974 00000 n 
+0000229038 00000 n 
+0000229102 00000 n 
+0000229166 00000 n 
+0000229232 00000 n 
+0000229296 00000 n 
+0000229359 00000 n 
+0000229423 00000 n 
+0000229487 00000 n 
+0000229553 00000 n 
+0000229619 00000 n 
+0000229683 00000 n 
+0000229747 00000 n 
+0000229811 00000 n 
+0000229875 00000 n 
+0000229940 00000 n 
+0000230006 00000 n 
+0000230072 00000 n 
+0000230136 00000 n 
+0000230202 00000 n 
+0000230268 00000 n 
+0000230332 00000 n 
+0000230396 00000 n 
+0000230459 00000 n 
+0000230523 00000 n 
+0000933427 00000 n 
+0000234592 00000 n 
+0000231756 00000 n 
+0000230700 00000 n 
+0000231882 00000 n 
+0000231946 00000 n 
+0000232010 00000 n 
+0000232074 00000 n 
+0000232138 00000 n 
+0000232331 00000 n 
+0000232395 00000 n 
+0000232461 00000 n 
+0000232525 00000 n 
+0000232589 00000 n 
+0000232655 00000 n 
+0000232719 00000 n 
+0000232783 00000 n 
+0000232847 00000 n 
+0000232913 00000 n 
+0000232977 00000 n 
+0000233041 00000 n 
+0000233105 00000 n 
+0000233169 00000 n 
+0000233235 00000 n 
+0000233301 00000 n 
+0000233365 00000 n 
+0000233429 00000 n 
+0000233494 00000 n 
+0000233559 00000 n 
+0000233624 00000 n 
+0000233690 00000 n 
+0000233756 00000 n 
+0000233819 00000 n 
+0000233884 00000 n 
+0000233949 00000 n 
+0000234013 00000 n 
+0000234077 00000 n 
+0000234142 00000 n 
+0000234206 00000 n 
+0000234271 00000 n 
+0000234335 00000 n 
+0000234399 00000 n 
+0000234463 00000 n 
+0000238104 00000 n 
+0000235592 00000 n 
+0000234704 00000 n 
+0000235718 00000 n 
+0000235846 00000 n 
+0000235910 00000 n 
+0000235976 00000 n 
+0000236040 00000 n 
+0000236104 00000 n 
+0000236168 00000 n 
+0000236234 00000 n 
+0000236298 00000 n 
+0000236362 00000 n 
+0000236426 00000 n 
+0000236490 00000 n 
+0000236556 00000 n 
+0000236622 00000 n 
+0000236686 00000 n 
+0000236750 00000 n 
+0000236815 00000 n 
+0000236880 00000 n 
+0000236945 00000 n 
+0000237010 00000 n 
+0000237075 00000 n 
+0000237139 00000 n 
+0000237203 00000 n 
+0000237267 00000 n 
+0000237458 00000 n 
+0000237522 00000 n 
+0000237588 00000 n 
+0000237652 00000 n 
+0000237716 00000 n 
+0000237782 00000 n 
+0000237846 00000 n 
+0000237910 00000 n 
+0000237974 00000 n 
+0000238040 00000 n 
+0000243191 00000 n 
+0000239324 00000 n 
+0000238216 00000 n 
+0000239450 00000 n 
+0000239577 00000 n 
+0000239641 00000 n 
+0000239705 00000 n 
+0000239769 00000 n 
+0000239835 00000 n 
+0000239901 00000 n 
+0000239965 00000 n 
+0000240029 00000 n 
+0000240094 00000 n 
+0000240159 00000 n 
+0000240224 00000 n 
+0000240289 00000 n 
+0000240354 00000 n 
+0000240418 00000 n 
+0000240482 00000 n 
+0000240547 00000 n 
+0000240612 00000 n 
+0000240676 00000 n 
+0000240741 00000 n 
+0000240806 00000 n 
+0000240870 00000 n 
+0000240935 00000 n 
+0000241000 00000 n 
+0000241064 00000 n 
+0000241128 00000 n 
+0000241192 00000 n 
+0000241255 00000 n 
+0000241318 00000 n 
+0000241382 00000 n 
+0000241575 00000 n 
+0000241639 00000 n 
+0000241705 00000 n 
+0000241769 00000 n 
+0000241833 00000 n 
+0000241899 00000 n 
+0000241963 00000 n 
+0000242027 00000 n 
+0000242091 00000 n 
+0000242156 00000 n 
+0000242220 00000 n 
+0000242284 00000 n 
+0000242348 00000 n 
+0000242412 00000 n 
+0000242478 00000 n 
+0000242544 00000 n 
+0000242608 00000 n 
+0000242672 00000 n 
+0000242737 00000 n 
+0000242802 00000 n 
+0000242867 00000 n 
+0000242933 00000 n 
+0000242999 00000 n 
+0000243063 00000 n 
+0000243127 00000 n 
+0000246824 00000 n 
+0000244246 00000 n 
+0000243303 00000 n 
+0000244372 00000 n 
+0000244436 00000 n 
+0000244566 00000 n 
+0000244630 00000 n 
+0000244696 00000 n 
+0000244760 00000 n 
+0000244823 00000 n 
+0000244889 00000 n 
+0000244953 00000 n 
+0000245017 00000 n 
+0000245081 00000 n 
+0000245147 00000 n 
+0000245211 00000 n 
+0000245275 00000 n 
+0000245339 00000 n 
+0000245402 00000 n 
+0000245468 00000 n 
+0000245534 00000 n 
+0000245598 00000 n 
+0000245662 00000 n 
+0000245727 00000 n 
+0000245792 00000 n 
+0000245856 00000 n 
+0000245922 00000 n 
+0000245988 00000 n 
+0000246052 00000 n 
+0000246115 00000 n 
+0000246179 00000 n 
+0000246372 00000 n 
+0000246436 00000 n 
+0000246502 00000 n 
+0000246566 00000 n 
+0000246630 00000 n 
+0000246696 00000 n 
+0000246760 00000 n 
+0000250972 00000 n 
+0000248202 00000 n 
+0000246936 00000 n 
+0000248328 00000 n 
+0000248392 00000 n 
+0000248456 00000 n 
+0000248522 00000 n 
+0000248586 00000 n 
+0000248650 00000 n 
+0000248714 00000 n 
+0000248778 00000 n 
+0000248844 00000 n 
+0000248910 00000 n 
+0000248974 00000 n 
+0000249038 00000 n 
+0000249103 00000 n 
+0000249168 00000 n 
+0000249233 00000 n 
+0000249299 00000 n 
+0000249365 00000 n 
+0000249429 00000 n 
+0000249493 00000 n 
+0000249558 00000 n 
+0000249623 00000 n 
+0000249687 00000 n 
+0000249752 00000 n 
+0000249817 00000 n 
+0000249881 00000 n 
+0000249945 00000 n 
+0000250009 00000 n 
+0000250201 00000 n 
+0000250264 00000 n 
+0000250330 00000 n 
+0000250394 00000 n 
+0000250458 00000 n 
+0000250522 00000 n 
+0000250586 00000 n 
+0000250650 00000 n 
+0000250714 00000 n 
+0000250778 00000 n 
+0000250842 00000 n 
+0000250908 00000 n 
+0000257515 00000 n 
+0000252685 00000 n 
+0000251084 00000 n 
+0000252811 00000 n 
+0000252875 00000 n 
+0000252939 00000 n 
+0000253003 00000 n 
+0000253067 00000 n 
+0000253131 00000 n 
+0000253197 00000 n 
+0000253263 00000 n 
+0000253327 00000 n 
+0000253391 00000 n 
+0000253456 00000 n 
+0000253521 00000 n 
+0000253586 00000 n 
+0000253651 00000 n 
+0000253716 00000 n 
+0000253780 00000 n 
+0000253844 00000 n 
+0000253909 00000 n 
+0000253973 00000 n 
+0000254038 00000 n 
+0000254103 00000 n 
+0000254168 00000 n 
+0000254233 00000 n 
+0000254296 00000 n 
+0000254359 00000 n 
+0000254424 00000 n 
+0000254489 00000 n 
+0000254553 00000 n 
+0000254618 00000 n 
+0000254683 00000 n 
+0000254747 00000 n 
+0000254812 00000 n 
+0000254877 00000 n 
+0000254941 00000 n 
+0000255004 00000 n 
+0000255067 00000 n 
+0000255131 00000 n 
+0000255196 00000 n 
+0000255261 00000 n 
+0000255325 00000 n 
+0000255390 00000 n 
+0000255455 00000 n 
+0000255518 00000 n 
+0000255583 00000 n 
+0000255648 00000 n 
+0000255712 00000 n 
+0000255776 00000 n 
+0000255840 00000 n 
+0000255904 00000 n 
+0000255969 00000 n 
+0000256034 00000 n 
+0000256098 00000 n 
+0000256163 00000 n 
+0000256228 00000 n 
+0000256292 00000 n 
+0000256357 00000 n 
+0000256422 00000 n 
+0000256486 00000 n 
+0000256550 00000 n 
+0000256614 00000 n 
+0000256678 00000 n 
+0000256743 00000 n 
+0000256808 00000 n 
+0000256872 00000 n 
+0000256936 00000 n 
+0000257000 00000 n 
+0000257193 00000 n 
+0000257257 00000 n 
+0000257321 00000 n 
+0000257385 00000 n 
+0000257449 00000 n 
+0000933552 00000 n 
+0000262512 00000 n 
+0000259033 00000 n 
+0000257627 00000 n 
+0000259159 00000 n 
+0000259223 00000 n 
+0000259287 00000 n 
+0000259351 00000 n 
+0000259415 00000 n 
+0000259479 00000 n 
+0000259545 00000 n 
+0000259609 00000 n 
+0000259673 00000 n 
+0000259737 00000 n 
+0000259801 00000 n 
+0000259867 00000 n 
+0000259933 00000 n 
+0000259997 00000 n 
+0000260061 00000 n 
+0000260125 00000 n 
+0000260189 00000 n 
+0000260254 00000 n 
+0000260320 00000 n 
+0000260386 00000 n 
+0000260450 00000 n 
+0000260514 00000 n 
+0000260579 00000 n 
+0000260643 00000 n 
+0000260707 00000 n 
+0000260772 00000 n 
+0000260838 00000 n 
+0000260904 00000 n 
+0000260968 00000 n 
+0000261032 00000 n 
+0000261097 00000 n 
+0000261162 00000 n 
+0000261226 00000 n 
+0000261290 00000 n 
+0000261354 00000 n 
+0000261418 00000 n 
+0000261483 00000 n 
+0000261548 00000 n 
+0000261612 00000 n 
+0000261677 00000 n 
+0000261742 00000 n 
+0000261806 00000 n 
+0000261870 00000 n 
+0000261934 00000 n 
+0000262124 00000 n 
+0000262188 00000 n 
+0000262254 00000 n 
+0000262318 00000 n 
+0000262382 00000 n 
+0000262448 00000 n 
+0000266728 00000 n 
+0000263759 00000 n 
+0000262624 00000 n 
+0000263885 00000 n 
+0000263949 00000 n 
+0000264013 00000 n 
+0000264077 00000 n 
+0000264141 00000 n 
+0000264205 00000 n 
+0000264269 00000 n 
+0000264335 00000 n 
+0000264401 00000 n 
+0000264465 00000 n 
+0000264529 00000 n 
+0000264594 00000 n 
+0000264659 00000 n 
+0000264724 00000 n 
+0000264790 00000 n 
+0000264856 00000 n 
+0000264920 00000 n 
+0000264984 00000 n 
+0000265049 00000 n 
+0000265113 00000 n 
+0000265178 00000 n 
+0000265243 00000 n 
+0000265309 00000 n 
+0000265375 00000 n 
+0000265439 00000 n 
+0000265503 00000 n 
+0000265568 00000 n 
+0000265632 00000 n 
+0000265697 00000 n 
+0000265761 00000 n 
+0000265825 00000 n 
+0000265889 00000 n 
+0000266082 00000 n 
+0000266146 00000 n 
+0000266212 00000 n 
+0000266276 00000 n 
+0000266340 00000 n 
+0000266406 00000 n 
+0000266470 00000 n 
+0000266534 00000 n 
+0000266598 00000 n 
+0000266662 00000 n 
+0000271395 00000 n 
+0000268044 00000 n 
+0000266840 00000 n 
+0000268170 00000 n 
+0000268234 00000 n 
+0000268298 00000 n 
+0000268362 00000 n 
+0000268426 00000 n 
+0000268492 00000 n 
+0000268558 00000 n 
+0000268621 00000 n 
+0000268684 00000 n 
+0000268749 00000 n 
+0000268814 00000 n 
+0000268879 00000 n 
+0000268945 00000 n 
+0000269011 00000 n 
+0000269075 00000 n 
+0000269139 00000 n 
+0000269204 00000 n 
+0000269267 00000 n 
+0000269332 00000 n 
+0000269397 00000 n 
+0000269463 00000 n 
+0000269529 00000 n 
+0000269593 00000 n 
+0000269659 00000 n 
+0000269725 00000 n 
+0000269789 00000 n 
+0000269853 00000 n 
+0000269915 00000 n 
+0000270108 00000 n 
+0000270172 00000 n 
+0000270238 00000 n 
+0000270302 00000 n 
+0000270366 00000 n 
+0000270432 00000 n 
+0000270494 00000 n 
+0000270558 00000 n 
+0000270622 00000 n 
+0000270686 00000 n 
+0000270752 00000 n 
+0000270816 00000 n 
+0000270879 00000 n 
+0000270943 00000 n 
+0000271007 00000 n 
+0000271073 00000 n 
+0000271139 00000 n 
+0000271203 00000 n 
+0000271267 00000 n 
+0000271331 00000 n 
+0000276750 00000 n 
+0000272813 00000 n 
+0000271507 00000 n 
+0000272939 00000 n 
+0000273003 00000 n 
+0000273068 00000 n 
+0000273134 00000 n 
+0000273200 00000 n 
+0000273264 00000 n 
+0000273328 00000 n 
+0000273393 00000 n 
+0000273457 00000 n 
+0000273522 00000 n 
+0000273587 00000 n 
+0000273653 00000 n 
+0000273719 00000 n 
+0000273783 00000 n 
+0000273847 00000 n 
+0000273912 00000 n 
+0000273977 00000 n 
+0000274041 00000 n 
+0000274106 00000 n 
+0000274171 00000 n 
+0000274235 00000 n 
+0000274300 00000 n 
+0000274365 00000 n 
+0000274429 00000 n 
+0000274494 00000 n 
+0000274559 00000 n 
+0000274623 00000 n 
+0000274688 00000 n 
+0000274753 00000 n 
+0000274817 00000 n 
+0000274882 00000 n 
+0000274947 00000 n 
+0000275011 00000 n 
+0000275076 00000 n 
+0000275141 00000 n 
+0000275205 00000 n 
+0000275269 00000 n 
+0000275333 00000 n 
+0000275525 00000 n 
+0000275589 00000 n 
+0000275655 00000 n 
+0000275718 00000 n 
+0000275782 00000 n 
+0000275848 00000 n 
+0000275912 00000 n 
+0000275976 00000 n 
+0000276040 00000 n 
+0000276106 00000 n 
+0000276170 00000 n 
+0000276234 00000 n 
+0000276298 00000 n 
+0000276362 00000 n 
+0000276428 00000 n 
+0000276494 00000 n 
+0000276557 00000 n 
+0000276620 00000 n 
+0000276685 00000 n 
+0000281605 00000 n 
+0000278119 00000 n 
+0000276862 00000 n 
+0000278245 00000 n 
+0000278309 00000 n 
+0000278374 00000 n 
+0000278440 00000 n 
+0000278506 00000 n 
+0000278570 00000 n 
+0000278634 00000 n 
+0000278699 00000 n 
+0000278764 00000 n 
+0000278828 00000 n 
+0000278893 00000 n 
+0000278958 00000 n 
+0000279022 00000 n 
+0000279087 00000 n 
+0000279152 00000 n 
+0000279216 00000 n 
+0000279281 00000 n 
+0000279346 00000 n 
+0000279410 00000 n 
+0000279474 00000 n 
+0000279538 00000 n 
+0000279732 00000 n 
+0000279796 00000 n 
+0000279862 00000 n 
+0000279926 00000 n 
+0000279990 00000 n 
+0000280056 00000 n 
+0000280120 00000 n 
+0000280184 00000 n 
+0000280248 00000 n 
+0000280312 00000 n 
+0000280378 00000 n 
+0000280442 00000 n 
+0000280505 00000 n 
+0000280569 00000 n 
+0000280633 00000 n 
+0000280699 00000 n 
+0000280765 00000 n 
+0000280829 00000 n 
+0000280893 00000 n 
+0000280958 00000 n 
+0000281023 00000 n 
+0000281088 00000 n 
+0000281153 00000 n 
+0000281218 00000 n 
+0000281282 00000 n 
+0000281346 00000 n 
+0000281411 00000 n 
+0000281475 00000 n 
+0000281540 00000 n 
+0000286993 00000 n 
+0000283061 00000 n 
+0000281717 00000 n 
+0000283187 00000 n 
+0000283251 00000 n 
+0000283317 00000 n 
+0000283383 00000 n 
+0000283447 00000 n 
+0000283511 00000 n 
+0000283576 00000 n 
+0000283641 00000 n 
+0000283705 00000 n 
+0000283770 00000 n 
+0000283835 00000 n 
+0000283899 00000 n 
+0000283963 00000 n 
+0000284027 00000 n 
+0000284221 00000 n 
+0000284285 00000 n 
+0000284350 00000 n 
+0000284414 00000 n 
+0000284478 00000 n 
+0000284544 00000 n 
+0000284608 00000 n 
+0000284671 00000 n 
+0000284735 00000 n 
+0000284799 00000 n 
+0000284865 00000 n 
+0000284929 00000 n 
+0000284993 00000 n 
+0000285057 00000 n 
+0000285121 00000 n 
+0000285187 00000 n 
+0000285253 00000 n 
+0000285315 00000 n 
+0000285377 00000 n 
+0000285442 00000 n 
+0000285507 00000 n 
+0000285571 00000 n 
+0000285637 00000 n 
+0000285703 00000 n 
+0000285767 00000 n 
+0000285831 00000 n 
+0000285896 00000 n 
+0000285961 00000 n 
+0000286025 00000 n 
+0000286090 00000 n 
+0000286155 00000 n 
+0000286219 00000 n 
+0000286283 00000 n 
+0000286347 00000 n 
+0000286411 00000 n 
+0000286476 00000 n 
+0000286541 00000 n 
+0000286605 00000 n 
+0000286670 00000 n 
+0000286735 00000 n 
+0000286799 00000 n 
+0000286864 00000 n 
+0000286929 00000 n 
+0000933677 00000 n 
+0000291669 00000 n 
+0000288382 00000 n 
+0000287105 00000 n 
+0000288508 00000 n 
+0000288572 00000 n 
+0000288637 00000 n 
+0000288702 00000 n 
+0000288766 00000 n 
+0000288831 00000 n 
+0000288896 00000 n 
+0000288960 00000 n 
+0000289024 00000 n 
+0000289088 00000 n 
+0000289282 00000 n 
+0000289346 00000 n 
+0000289412 00000 n 
+0000289476 00000 n 
+0000289540 00000 n 
+0000289606 00000 n 
+0000289670 00000 n 
+0000289734 00000 n 
+0000289798 00000 n 
+0000289864 00000 n 
+0000289928 00000 n 
+0000289992 00000 n 
+0000290056 00000 n 
+0000290120 00000 n 
+0000290186 00000 n 
+0000290252 00000 n 
+0000290315 00000 n 
+0000290378 00000 n 
+0000290443 00000 n 
+0000290508 00000 n 
+0000290572 00000 n 
+0000290638 00000 n 
+0000290704 00000 n 
+0000290768 00000 n 
+0000290832 00000 n 
+0000290897 00000 n 
+0000290960 00000 n 
+0000291025 00000 n 
+0000291089 00000 n 
+0000291155 00000 n 
+0000291221 00000 n 
+0000291285 00000 n 
+0000291349 00000 n 
+0000291414 00000 n 
+0000291477 00000 n 
+0000291542 00000 n 
+0000291606 00000 n 
+0000295995 00000 n 
+0000292900 00000 n 
+0000291781 00000 n 
+0000293026 00000 n 
+0000293090 00000 n 
+0000293154 00000 n 
+0000293218 00000 n 
+0000293412 00000 n 
+0000293476 00000 n 
+0000293542 00000 n 
+0000293606 00000 n 
+0000293669 00000 n 
+0000293735 00000 n 
+0000293799 00000 n 
+0000293863 00000 n 
+0000293927 00000 n 
+0000293993 00000 n 
+0000294055 00000 n 
+0000294119 00000 n 
+0000294182 00000 n 
+0000294246 00000 n 
+0000294312 00000 n 
+0000294378 00000 n 
+0000294442 00000 n 
+0000294506 00000 n 
+0000294571 00000 n 
+0000294636 00000 n 
+0000294701 00000 n 
+0000294767 00000 n 
+0000294833 00000 n 
+0000294897 00000 n 
+0000294961 00000 n 
+0000295026 00000 n 
+0000295090 00000 n 
+0000295155 00000 n 
+0000295220 00000 n 
+0000295286 00000 n 
+0000295352 00000 n 
+0000295416 00000 n 
+0000295480 00000 n 
+0000295545 00000 n 
+0000295609 00000 n 
+0000295674 00000 n 
+0000295738 00000 n 
+0000295802 00000 n 
+0000295866 00000 n 
+0000299685 00000 n 
+0000297104 00000 n 
+0000296107 00000 n 
+0000297230 00000 n 
+0000297359 00000 n 
+0000297423 00000 n 
+0000297489 00000 n 
+0000297553 00000 n 
+0000297617 00000 n 
+0000297681 00000 n 
+0000297747 00000 n 
+0000297811 00000 n 
+0000297875 00000 n 
+0000297939 00000 n 
+0000298003 00000 n 
+0000298069 00000 n 
+0000298135 00000 n 
+0000298199 00000 n 
+0000298263 00000 n 
+0000298328 00000 n 
+0000298393 00000 n 
+0000298458 00000 n 
+0000298523 00000 n 
+0000298588 00000 n 
+0000298652 00000 n 
+0000298718 00000 n 
+0000298784 00000 n 
+0000298848 00000 n 
+0000298911 00000 n 
+0000298975 00000 n 
+0000299169 00000 n 
+0000299233 00000 n 
+0000299299 00000 n 
+0000299363 00000 n 
+0000299427 00000 n 
+0000299493 00000 n 
+0000299557 00000 n 
+0000299621 00000 n 
+0000304028 00000 n 
+0000300931 00000 n 
+0000299797 00000 n 
+0000301057 00000 n 
+0000301121 00000 n 
+0000301185 00000 n 
+0000301251 00000 n 
+0000301315 00000 n 
+0000301379 00000 n 
+0000301443 00000 n 
+0000301507 00000 n 
+0000301573 00000 n 
+0000301639 00000 n 
+0000301703 00000 n 
+0000301767 00000 n 
+0000301832 00000 n 
+0000301897 00000 n 
+0000301962 00000 n 
+0000302028 00000 n 
+0000302094 00000 n 
+0000302158 00000 n 
+0000302222 00000 n 
+0000302287 00000 n 
+0000302351 00000 n 
+0000302416 00000 n 
+0000302481 00000 n 
+0000302547 00000 n 
+0000302613 00000 n 
+0000302677 00000 n 
+0000302741 00000 n 
+0000302806 00000 n 
+0000302870 00000 n 
+0000302935 00000 n 
+0000302999 00000 n 
+0000303063 00000 n 
+0000303127 00000 n 
+0000303320 00000 n 
+0000303383 00000 n 
+0000303449 00000 n 
+0000303513 00000 n 
+0000303577 00000 n 
+0000303642 00000 n 
+0000303706 00000 n 
+0000303770 00000 n 
+0000303834 00000 n 
+0000303898 00000 n 
+0000303964 00000 n 
+0000309408 00000 n 
+0000305476 00000 n 
+0000304140 00000 n 
+0000305602 00000 n 
+0000305666 00000 n 
+0000305730 00000 n 
+0000305794 00000 n 
+0000305858 00000 n 
+0000305924 00000 n 
+0000305990 00000 n 
+0000306054 00000 n 
+0000306118 00000 n 
+0000306183 00000 n 
+0000306248 00000 n 
+0000306313 00000 n 
+0000306378 00000 n 
+0000306443 00000 n 
+0000306507 00000 n 
+0000306571 00000 n 
+0000306636 00000 n 
+0000306700 00000 n 
+0000306765 00000 n 
+0000306830 00000 n 
+0000306895 00000 n 
+0000306960 00000 n 
+0000307023 00000 n 
+0000307086 00000 n 
+0000307151 00000 n 
+0000307216 00000 n 
+0000307280 00000 n 
+0000307345 00000 n 
+0000307410 00000 n 
+0000307474 00000 n 
+0000307539 00000 n 
+0000307604 00000 n 
+0000307668 00000 n 
+0000307731 00000 n 
+0000307794 00000 n 
+0000307858 00000 n 
+0000307923 00000 n 
+0000307988 00000 n 
+0000308052 00000 n 
+0000308117 00000 n 
+0000308182 00000 n 
+0000308246 00000 n 
+0000308311 00000 n 
+0000308376 00000 n 
+0000308440 00000 n 
+0000308504 00000 n 
+0000308568 00000 n 
+0000308762 00000 n 
+0000308826 00000 n 
+0000308892 00000 n 
+0000308956 00000 n 
+0000309020 00000 n 
+0000309086 00000 n 
+0000309150 00000 n 
+0000309214 00000 n 
+0000309278 00000 n 
+0000309344 00000 n 
+0000315206 00000 n 
+0000311149 00000 n 
+0000309520 00000 n 
+0000311275 00000 n 
+0000311339 00000 n 
+0000311403 00000 n 
+0000311467 00000 n 
+0000311531 00000 n 
+0000311595 00000 n 
+0000311661 00000 n 
+0000311727 00000 n 
+0000311791 00000 n 
+0000311855 00000 n 
+0000311920 00000 n 
+0000311985 00000 n 
+0000312050 00000 n 
+0000312115 00000 n 
+0000312180 00000 n 
+0000312243 00000 n 
+0000312306 00000 n 
+0000312371 00000 n 
+0000312436 00000 n 
+0000312500 00000 n 
+0000312565 00000 n 
+0000312630 00000 n 
+0000312694 00000 n 
+0000312759 00000 n 
+0000312824 00000 n 
+0000312888 00000 n 
+0000312952 00000 n 
+0000313016 00000 n 
+0000313080 00000 n 
+0000313145 00000 n 
+0000313210 00000 n 
+0000313274 00000 n 
+0000313339 00000 n 
+0000313404 00000 n 
+0000313467 00000 n 
+0000313532 00000 n 
+0000313597 00000 n 
+0000313661 00000 n 
+0000313724 00000 n 
+0000313787 00000 n 
+0000313851 00000 n 
+0000313916 00000 n 
+0000313981 00000 n 
+0000314045 00000 n 
+0000314110 00000 n 
+0000314175 00000 n 
+0000314239 00000 n 
+0000314303 00000 n 
+0000314367 00000 n 
+0000314560 00000 n 
+0000314624 00000 n 
+0000314690 00000 n 
+0000314754 00000 n 
+0000314818 00000 n 
+0000314884 00000 n 
+0000314948 00000 n 
+0000315012 00000 n 
+0000315076 00000 n 
+0000315140 00000 n 
+0000933802 00000 n 
+0000320134 00000 n 
+0000316586 00000 n 
+0000315318 00000 n 
+0000316712 00000 n 
+0000316776 00000 n 
+0000316840 00000 n 
+0000316904 00000 n 
+0000316968 00000 n 
+0000317032 00000 n 
+0000317098 00000 n 
+0000317164 00000 n 
+0000317227 00000 n 
+0000317290 00000 n 
+0000317355 00000 n 
+0000317420 00000 n 
+0000317485 00000 n 
+0000317551 00000 n 
+0000317617 00000 n 
+0000317681 00000 n 
+0000317745 00000 n 
+0000317810 00000 n 
+0000317873 00000 n 
+0000317938 00000 n 
+0000318003 00000 n 
+0000318069 00000 n 
+0000318135 00000 n 
+0000318199 00000 n 
+0000318263 00000 n 
+0000318328 00000 n 
+0000318392 00000 n 
+0000318457 00000 n 
+0000318521 00000 n 
+0000318587 00000 n 
+0000318653 00000 n 
+0000318717 00000 n 
+0000318783 00000 n 
+0000318849 00000 n 
+0000318913 00000 n 
+0000318977 00000 n 
+0000319042 00000 n 
+0000319106 00000 n 
+0000319170 00000 n 
+0000319233 00000 n 
+0000319296 00000 n 
+0000319360 00000 n 
+0000319554 00000 n 
+0000319618 00000 n 
+0000319684 00000 n 
+0000319748 00000 n 
+0000319812 00000 n 
+0000319878 00000 n 
+0000319942 00000 n 
+0000320006 00000 n 
+0000320069 00000 n 
+0000324792 00000 n 
+0000321371 00000 n 
+0000320246 00000 n 
+0000321497 00000 n 
+0000321561 00000 n 
+0000321625 00000 n 
+0000321689 00000 n 
+0000321753 00000 n 
+0000321819 00000 n 
+0000321885 00000 n 
+0000321948 00000 n 
+0000322011 00000 n 
+0000322076 00000 n 
+0000322141 00000 n 
+0000322206 00000 n 
+0000322272 00000 n 
+0000322338 00000 n 
+0000322402 00000 n 
+0000322466 00000 n 
+0000322531 00000 n 
+0000322596 00000 n 
+0000322660 00000 n 
+0000322725 00000 n 
+0000322790 00000 n 
+0000322853 00000 n 
+0000322918 00000 n 
+0000322983 00000 n 
+0000323046 00000 n 
+0000323110 00000 n 
+0000323174 00000 n 
+0000323368 00000 n 
+0000323432 00000 n 
+0000323498 00000 n 
+0000323562 00000 n 
+0000323626 00000 n 
+0000323692 00000 n 
+0000323756 00000 n 
+0000323820 00000 n 
+0000323884 00000 n 
+0000323949 00000 n 
+0000324013 00000 n 
+0000324077 00000 n 
+0000324141 00000 n 
+0000324205 00000 n 
+0000324271 00000 n 
+0000324337 00000 n 
+0000324401 00000 n 
+0000324465 00000 n 
+0000324530 00000 n 
+0000324595 00000 n 
+0000324660 00000 n 
+0000324726 00000 n 
+0000329724 00000 n 
+0000326310 00000 n 
+0000324904 00000 n 
+0000326436 00000 n 
+0000326563 00000 n 
+0000326627 00000 n 
+0000326691 00000 n 
+0000326755 00000 n 
+0000326949 00000 n 
+0000327013 00000 n 
+0000327079 00000 n 
+0000327143 00000 n 
+0000327207 00000 n 
+0000327273 00000 n 
+0000327337 00000 n 
+0000327400 00000 n 
+0000327464 00000 n 
+0000327528 00000 n 
+0000327592 00000 n 
+0000327658 00000 n 
+0000327722 00000 n 
+0000327785 00000 n 
+0000327849 00000 n 
+0000327913 00000 n 
+0000327979 00000 n 
+0000328045 00000 n 
+0000328109 00000 n 
+0000328173 00000 n 
+0000328238 00000 n 
+0000328303 00000 n 
+0000328368 00000 n 
+0000328434 00000 n 
+0000328500 00000 n 
+0000328564 00000 n 
+0000328628 00000 n 
+0000328693 00000 n 
+0000328758 00000 n 
+0000328822 00000 n 
+0000328887 00000 n 
+0000328952 00000 n 
+0000329016 00000 n 
+0000329081 00000 n 
+0000329146 00000 n 
+0000329209 00000 n 
+0000329274 00000 n 
+0000329339 00000 n 
+0000329403 00000 n 
+0000329468 00000 n 
+0000329533 00000 n 
+0000329597 00000 n 
+0000329661 00000 n 
+0000334051 00000 n 
+0000331015 00000 n 
+0000329836 00000 n 
+0000331141 00000 n 
+0000331205 00000 n 
+0000331269 00000 n 
+0000331400 00000 n 
+0000331464 00000 n 
+0000331530 00000 n 
+0000331594 00000 n 
+0000331658 00000 n 
+0000331724 00000 n 
+0000331788 00000 n 
+0000331852 00000 n 
+0000331916 00000 n 
+0000331980 00000 n 
+0000332046 00000 n 
+0000332110 00000 n 
+0000332174 00000 n 
+0000332238 00000 n 
+0000332302 00000 n 
+0000332368 00000 n 
+0000332434 00000 n 
+0000332498 00000 n 
+0000332562 00000 n 
+0000332627 00000 n 
+0000332692 00000 n 
+0000332757 00000 n 
+0000332823 00000 n 
+0000332889 00000 n 
+0000332953 00000 n 
+0000333017 00000 n 
+0000333082 00000 n 
+0000333146 00000 n 
+0000333211 00000 n 
+0000333276 00000 n 
+0000333342 00000 n 
+0000333408 00000 n 
+0000333472 00000 n 
+0000333536 00000 n 
+0000333601 00000 n 
+0000333665 00000 n 
+0000333730 00000 n 
+0000333794 00000 n 
+0000333858 00000 n 
+0000333922 00000 n 
+0000337460 00000 n 
+0000335144 00000 n 
+0000334163 00000 n 
+0000335270 00000 n 
+0000335399 00000 n 
+0000335463 00000 n 
+0000335528 00000 n 
+0000335592 00000 n 
+0000335654 00000 n 
+0000335720 00000 n 
+0000335784 00000 n 
+0000335848 00000 n 
+0000335912 00000 n 
+0000335976 00000 n 
+0000336042 00000 n 
+0000336108 00000 n 
+0000336172 00000 n 
+0000336236 00000 n 
+0000336301 00000 n 
+0000336366 00000 n 
+0000336430 00000 n 
+0000336494 00000 n 
+0000336558 00000 n 
+0000336751 00000 n 
+0000336815 00000 n 
+0000336881 00000 n 
+0000336945 00000 n 
+0000337009 00000 n 
+0000337075 00000 n 
+0000337139 00000 n 
+0000337203 00000 n 
+0000337267 00000 n 
+0000337331 00000 n 
+0000337396 00000 n 
+0000343223 00000 n 
+0000338904 00000 n 
+0000337572 00000 n 
+0000339030 00000 n 
+0000339094 00000 n 
+0000339158 00000 n 
+0000339222 00000 n 
+0000339286 00000 n 
+0000339352 00000 n 
+0000339418 00000 n 
+0000339482 00000 n 
+0000339546 00000 n 
+0000339611 00000 n 
+0000339676 00000 n 
+0000339741 00000 n 
+0000339806 00000 n 
+0000339871 00000 n 
+0000339935 00000 n 
+0000339999 00000 n 
+0000340063 00000 n 
+0000340256 00000 n 
+0000340320 00000 n 
+0000340386 00000 n 
+0000340450 00000 n 
+0000340514 00000 n 
+0000340580 00000 n 
+0000340644 00000 n 
+0000340708 00000 n 
+0000340774 00000 n 
+0000340838 00000 n 
+0000340902 00000 n 
+0000340966 00000 n 
+0000341030 00000 n 
+0000341096 00000 n 
+0000341162 00000 n 
+0000341226 00000 n 
+0000341290 00000 n 
+0000341355 00000 n 
+0000341420 00000 n 
+0000341484 00000 n 
+0000341549 00000 n 
+0000341614 00000 n 
+0000341678 00000 n 
+0000341742 00000 n 
+0000341806 00000 n 
+0000341870 00000 n 
+0000341933 00000 n 
+0000341997 00000 n 
+0000342063 00000 n 
+0000342127 00000 n 
+0000342191 00000 n 
+0000342256 00000 n 
+0000342321 00000 n 
+0000342385 00000 n 
+0000342450 00000 n 
+0000342515 00000 n 
+0000342579 00000 n 
+0000342644 00000 n 
+0000342709 00000 n 
+0000342772 00000 n 
+0000342837 00000 n 
+0000342902 00000 n 
+0000342966 00000 n 
+0000343030 00000 n 
+0000343095 00000 n 
+0000343160 00000 n 
+0000933927 00000 n 
+0000349409 00000 n 
+0000344927 00000 n 
+0000343335 00000 n 
+0000345053 00000 n 
+0000345117 00000 n 
+0000345183 00000 n 
+0000345249 00000 n 
+0000345313 00000 n 
+0000345379 00000 n 
+0000345445 00000 n 
+0000345509 00000 n 
+0000345575 00000 n 
+0000345641 00000 n 
+0000345705 00000 n 
+0000345771 00000 n 
+0000345837 00000 n 
+0000345901 00000 n 
+0000345967 00000 n 
+0000346033 00000 n 
+0000346097 00000 n 
+0000346163 00000 n 
+0000346229 00000 n 
+0000346293 00000 n 
+0000346359 00000 n 
+0000346425 00000 n 
+0000346489 00000 n 
+0000346555 00000 n 
+0000346621 00000 n 
+0000346685 00000 n 
+0000346751 00000 n 
+0000346817 00000 n 
+0000346881 00000 n 
+0000346947 00000 n 
+0000347013 00000 n 
+0000347077 00000 n 
+0000347143 00000 n 
+0000347209 00000 n 
+0000347273 00000 n 
+0000347339 00000 n 
+0000347405 00000 n 
+0000347469 00000 n 
+0000347535 00000 n 
+0000347601 00000 n 
+0000347665 00000 n 
+0000347731 00000 n 
+0000347797 00000 n 
+0000347862 00000 n 
+0000347927 00000 n 
+0000348119 00000 n 
+0000348183 00000 n 
+0000348249 00000 n 
+0000348313 00000 n 
+0000348376 00000 n 
+0000348442 00000 n 
+0000348506 00000 n 
+0000348570 00000 n 
+0000348634 00000 n 
+0000348700 00000 n 
+0000348764 00000 n 
+0000348828 00000 n 
+0000348892 00000 n 
+0000348955 00000 n 
+0000349021 00000 n 
+0000349087 00000 n 
+0000349151 00000 n 
+0000349215 00000 n 
+0000349280 00000 n 
+0000349345 00000 n 
+0000354952 00000 n 
+0000350883 00000 n 
+0000349521 00000 n 
+0000351009 00000 n 
+0000351073 00000 n 
+0000351138 00000 n 
+0000351203 00000 n 
+0000351267 00000 n 
+0000351332 00000 n 
+0000351397 00000 n 
+0000351462 00000 n 
+0000351528 00000 n 
+0000351594 00000 n 
+0000351658 00000 n 
+0000351724 00000 n 
+0000351790 00000 n 
+0000351854 00000 n 
+0000351920 00000 n 
+0000351986 00000 n 
+0000352050 00000 n 
+0000352116 00000 n 
+0000352182 00000 n 
+0000352246 00000 n 
+0000352310 00000 n 
+0000352374 00000 n 
+0000352568 00000 n 
+0000352632 00000 n 
+0000352698 00000 n 
+0000352762 00000 n 
+0000352826 00000 n 
+0000352892 00000 n 
+0000352956 00000 n 
+0000353020 00000 n 
+0000353084 00000 n 
+0000353150 00000 n 
+0000353214 00000 n 
+0000353278 00000 n 
+0000353342 00000 n 
+0000353406 00000 n 
+0000353472 00000 n 
+0000353538 00000 n 
+0000353601 00000 n 
+0000353664 00000 n 
+0000353729 00000 n 
+0000353794 00000 n 
+0000353857 00000 n 
+0000353921 00000 n 
+0000353985 00000 n 
+0000354049 00000 n 
+0000354114 00000 n 
+0000354179 00000 n 
+0000354244 00000 n 
+0000354310 00000 n 
+0000354376 00000 n 
+0000354440 00000 n 
+0000354504 00000 n 
+0000354567 00000 n 
+0000354630 00000 n 
+0000354694 00000 n 
+0000354759 00000 n 
+0000354824 00000 n 
+0000354888 00000 n 
+0000360056 00000 n 
+0000356361 00000 n 
+0000355064 00000 n 
+0000356487 00000 n 
+0000356551 00000 n 
+0000356615 00000 n 
+0000356681 00000 n 
+0000356747 00000 n 
+0000356811 00000 n 
+0000356877 00000 n 
+0000356943 00000 n 
+0000357007 00000 n 
+0000357073 00000 n 
+0000357139 00000 n 
+0000357203 00000 n 
+0000357269 00000 n 
+0000357335 00000 n 
+0000357399 00000 n 
+0000357465 00000 n 
+0000357531 00000 n 
+0000357595 00000 n 
+0000357661 00000 n 
+0000357727 00000 n 
+0000357791 00000 n 
+0000357857 00000 n 
+0000357923 00000 n 
+0000357987 00000 n 
+0000358053 00000 n 
+0000358119 00000 n 
+0000358184 00000 n 
+0000358249 00000 n 
+0000358314 00000 n 
+0000358378 00000 n 
+0000358442 00000 n 
+0000358506 00000 n 
+0000358699 00000 n 
+0000358763 00000 n 
+0000358829 00000 n 
+0000358893 00000 n 
+0000358957 00000 n 
+0000359023 00000 n 
+0000359087 00000 n 
+0000359151 00000 n 
+0000359215 00000 n 
+0000359279 00000 n 
+0000359345 00000 n 
+0000359409 00000 n 
+0000359473 00000 n 
+0000359537 00000 n 
+0000359601 00000 n 
+0000359667 00000 n 
+0000359733 00000 n 
+0000359797 00000 n 
+0000359861 00000 n 
+0000359926 00000 n 
+0000359991 00000 n 
+0000364264 00000 n 
+0000361230 00000 n 
+0000360168 00000 n 
+0000361356 00000 n 
+0000361420 00000 n 
+0000361484 00000 n 
+0000361550 00000 n 
+0000361616 00000 n 
+0000361680 00000 n 
+0000361744 00000 n 
+0000361938 00000 n 
+0000362002 00000 n 
+0000362068 00000 n 
+0000362132 00000 n 
+0000362196 00000 n 
+0000362262 00000 n 
+0000362326 00000 n 
+0000362390 00000 n 
+0000362454 00000 n 
+0000362518 00000 n 
+0000362584 00000 n 
+0000362648 00000 n 
+0000362712 00000 n 
+0000362776 00000 n 
+0000362840 00000 n 
+0000362906 00000 n 
+0000362972 00000 n 
+0000363036 00000 n 
+0000363100 00000 n 
+0000363164 00000 n 
+0000363228 00000 n 
+0000363293 00000 n 
+0000363359 00000 n 
+0000363425 00000 n 
+0000363489 00000 n 
+0000363553 00000 n 
+0000363618 00000 n 
+0000363682 00000 n 
+0000363746 00000 n 
+0000363811 00000 n 
+0000363877 00000 n 
+0000363943 00000 n 
+0000364007 00000 n 
+0000364071 00000 n 
+0000364135 00000 n 
+0000367943 00000 n 
+0000365300 00000 n 
+0000364376 00000 n 
+0000365426 00000 n 
+0000365490 00000 n 
+0000365619 00000 n 
+0000365683 00000 n 
+0000365749 00000 n 
+0000365813 00000 n 
+0000365877 00000 n 
+0000365941 00000 n 
+0000366007 00000 n 
+0000366071 00000 n 
+0000366135 00000 n 
+0000366199 00000 n 
+0000366263 00000 n 
+0000366329 00000 n 
+0000366395 00000 n 
+0000366459 00000 n 
+0000366523 00000 n 
+0000366588 00000 n 
+0000366653 00000 n 
+0000366718 00000 n 
+0000366783 00000 n 
+0000366848 00000 n 
+0000366912 00000 n 
+0000366976 00000 n 
+0000367041 00000 n 
+0000367105 00000 n 
+0000367170 00000 n 
+0000367234 00000 n 
+0000367298 00000 n 
+0000367362 00000 n 
+0000367555 00000 n 
+0000367619 00000 n 
+0000367685 00000 n 
+0000367749 00000 n 
+0000367813 00000 n 
+0000367879 00000 n 
+0000372232 00000 n 
+0000369135 00000 n 
+0000368055 00000 n 
+0000369261 00000 n 
+0000369325 00000 n 
+0000369389 00000 n 
+0000369453 00000 n 
+0000369519 00000 n 
+0000369583 00000 n 
+0000369647 00000 n 
+0000369711 00000 n 
+0000369775 00000 n 
+0000369841 00000 n 
+0000369907 00000 n 
+0000369971 00000 n 
+0000370035 00000 n 
+0000370100 00000 n 
+0000370165 00000 n 
+0000370230 00000 n 
+0000370296 00000 n 
+0000370362 00000 n 
+0000370424 00000 n 
+0000370488 00000 n 
+0000370552 00000 n 
+0000370746 00000 n 
+0000370810 00000 n 
+0000370876 00000 n 
+0000370940 00000 n 
+0000371004 00000 n 
+0000371069 00000 n 
+0000371133 00000 n 
+0000371197 00000 n 
+0000371261 00000 n 
+0000371327 00000 n 
+0000371391 00000 n 
+0000371455 00000 n 
+0000371519 00000 n 
+0000371581 00000 n 
+0000371647 00000 n 
+0000371713 00000 n 
+0000371777 00000 n 
+0000371841 00000 n 
+0000371906 00000 n 
+0000371971 00000 n 
+0000372036 00000 n 
+0000372102 00000 n 
+0000372168 00000 n 
+0000934052 00000 n 
+0000376827 00000 n 
+0000373539 00000 n 
+0000372344 00000 n 
+0000373665 00000 n 
+0000373729 00000 n 
+0000373795 00000 n 
+0000373861 00000 n 
+0000373925 00000 n 
+0000373989 00000 n 
+0000374054 00000 n 
+0000374118 00000 n 
+0000374183 00000 n 
+0000374247 00000 n 
+0000374311 00000 n 
+0000374375 00000 n 
+0000374569 00000 n 
+0000374633 00000 n 
+0000374698 00000 n 
+0000374762 00000 n 
+0000374826 00000 n 
+0000374892 00000 n 
+0000374956 00000 n 
+0000375020 00000 n 
+0000375084 00000 n 
+0000375150 00000 n 
+0000375214 00000 n 
+0000375278 00000 n 
+0000375342 00000 n 
+0000375406 00000 n 
+0000375472 00000 n 
+0000375538 00000 n 
+0000375602 00000 n 
+0000375666 00000 n 
+0000375730 00000 n 
+0000375794 00000 n 
+0000375859 00000 n 
+0000375925 00000 n 
+0000375991 00000 n 
+0000376055 00000 n 
+0000376121 00000 n 
+0000376187 00000 n 
+0000376250 00000 n 
+0000376313 00000 n 
+0000376377 00000 n 
+0000376441 00000 n 
+0000376506 00000 n 
+0000376570 00000 n 
+0000376634 00000 n 
+0000376698 00000 n 
+0000380619 00000 n 
+0000377911 00000 n 
+0000376939 00000 n 
+0000378037 00000 n 
+0000378101 00000 n 
+0000378230 00000 n 
+0000378294 00000 n 
+0000378359 00000 n 
+0000378423 00000 n 
+0000378487 00000 n 
+0000378553 00000 n 
+0000378617 00000 n 
+0000378681 00000 n 
+0000378747 00000 n 
+0000378811 00000 n 
+0000378875 00000 n 
+0000378939 00000 n 
+0000379003 00000 n 
+0000379069 00000 n 
+0000379135 00000 n 
+0000379199 00000 n 
+0000379263 00000 n 
+0000379328 00000 n 
+0000379393 00000 n 
+0000379458 00000 n 
+0000379524 00000 n 
+0000379590 00000 n 
+0000379653 00000 n 
+0000379717 00000 n 
+0000379781 00000 n 
+0000379974 00000 n 
+0000380038 00000 n 
+0000380104 00000 n 
+0000380168 00000 n 
+0000380232 00000 n 
+0000380297 00000 n 
+0000380361 00000 n 
+0000380425 00000 n 
+0000380489 00000 n 
+0000380553 00000 n 
+0000384914 00000 n 
+0000381753 00000 n 
+0000380731 00000 n 
+0000381879 00000 n 
+0000381943 00000 n 
+0000382007 00000 n 
+0000382071 00000 n 
+0000382135 00000 n 
+0000382201 00000 n 
+0000382267 00000 n 
+0000382330 00000 n 
+0000382393 00000 n 
+0000382458 00000 n 
+0000382523 00000 n 
+0000382588 00000 n 
+0000382654 00000 n 
+0000382720 00000 n 
+0000382784 00000 n 
+0000382848 00000 n 
+0000382912 00000 n 
+0000383106 00000 n 
+0000383170 00000 n 
+0000383236 00000 n 
+0000383300 00000 n 
+0000383364 00000 n 
+0000383430 00000 n 
+0000383494 00000 n 
+0000383558 00000 n 
+0000383622 00000 n 
+0000383686 00000 n 
+0000383752 00000 n 
+0000383816 00000 n 
+0000383880 00000 n 
+0000383944 00000 n 
+0000384008 00000 n 
+0000384074 00000 n 
+0000384140 00000 n 
+0000384204 00000 n 
+0000384268 00000 n 
+0000384333 00000 n 
+0000384398 00000 n 
+0000384463 00000 n 
+0000384529 00000 n 
+0000384595 00000 n 
+0000384658 00000 n 
+0000384722 00000 n 
+0000384786 00000 n 
+0000388515 00000 n 
+0000385937 00000 n 
+0000385026 00000 n 
+0000386063 00000 n 
+0000386192 00000 n 
+0000386256 00000 n 
+0000386322 00000 n 
+0000386386 00000 n 
+0000386450 00000 n 
+0000386516 00000 n 
+0000386580 00000 n 
+0000386644 00000 n 
+0000386708 00000 n 
+0000386774 00000 n 
+0000386838 00000 n 
+0000386902 00000 n 
+0000386966 00000 n 
+0000387030 00000 n 
+0000387096 00000 n 
+0000387162 00000 n 
+0000387226 00000 n 
+0000387290 00000 n 
+0000387355 00000 n 
+0000387420 00000 n 
+0000387485 00000 n 
+0000387550 00000 n 
+0000387615 00000 n 
+0000387679 00000 n 
+0000387743 00000 n 
+0000387807 00000 n 
+0000387999 00000 n 
+0000388063 00000 n 
+0000388129 00000 n 
+0000388193 00000 n 
+0000388257 00000 n 
+0000388323 00000 n 
+0000388387 00000 n 
+0000388451 00000 n 
+0000392875 00000 n 
+0000389586 00000 n 
+0000388627 00000 n 
+0000389712 00000 n 
+0000389839 00000 n 
+0000389903 00000 n 
+0000389969 00000 n 
+0000390033 00000 n 
+0000390097 00000 n 
+0000390161 00000 n 
+0000390225 00000 n 
+0000390291 00000 n 
+0000390357 00000 n 
+0000390421 00000 n 
+0000390485 00000 n 
+0000390550 00000 n 
+0000390615 00000 n 
+0000390680 00000 n 
+0000390746 00000 n 
+0000390812 00000 n 
+0000390876 00000 n 
+0000390940 00000 n 
+0000391004 00000 n 
+0000391198 00000 n 
+0000391262 00000 n 
+0000391328 00000 n 
+0000391392 00000 n 
+0000391456 00000 n 
+0000391522 00000 n 
+0000391586 00000 n 
+0000391649 00000 n 
+0000391713 00000 n 
+0000391777 00000 n 
+0000391843 00000 n 
+0000391907 00000 n 
+0000391971 00000 n 
+0000392035 00000 n 
+0000392098 00000 n 
+0000392164 00000 n 
+0000392230 00000 n 
+0000392294 00000 n 
+0000392358 00000 n 
+0000392423 00000 n 
+0000392488 00000 n 
+0000392552 00000 n 
+0000392618 00000 n 
+0000392684 00000 n 
+0000392748 00000 n 
+0000392811 00000 n 
+0000397033 00000 n 
+0000394064 00000 n 
+0000392987 00000 n 
+0000394190 00000 n 
+0000394254 00000 n 
+0000394318 00000 n 
+0000394449 00000 n 
+0000394513 00000 n 
+0000394579 00000 n 
+0000394643 00000 n 
+0000394706 00000 n 
+0000394772 00000 n 
+0000394836 00000 n 
+0000394900 00000 n 
+0000394964 00000 n 
+0000395030 00000 n 
+0000395094 00000 n 
+0000395158 00000 n 
+0000395222 00000 n 
+0000395285 00000 n 
+0000395351 00000 n 
+0000395417 00000 n 
+0000395481 00000 n 
+0000395545 00000 n 
+0000395610 00000 n 
+0000395675 00000 n 
+0000395739 00000 n 
+0000395805 00000 n 
+0000395871 00000 n 
+0000395935 00000 n 
+0000395999 00000 n 
+0000396064 00000 n 
+0000396128 00000 n 
+0000396193 00000 n 
+0000396258 00000 n 
+0000396324 00000 n 
+0000396390 00000 n 
+0000396454 00000 n 
+0000396518 00000 n 
+0000396583 00000 n 
+0000396647 00000 n 
+0000396712 00000 n 
+0000396776 00000 n 
+0000396840 00000 n 
+0000396904 00000 n 
+0000934177 00000 n 
+0000401018 00000 n 
+0000398182 00000 n 
+0000397145 00000 n 
+0000398308 00000 n 
+0000398372 00000 n 
+0000398501 00000 n 
+0000398565 00000 n 
+0000398630 00000 n 
+0000398694 00000 n 
+0000398758 00000 n 
+0000398822 00000 n 
+0000398886 00000 n 
+0000398952 00000 n 
+0000399016 00000 n 
+0000399080 00000 n 
+0000399144 00000 n 
+0000399208 00000 n 
+0000399274 00000 n 
+0000399340 00000 n 
+0000399403 00000 n 
+0000399466 00000 n 
+0000399531 00000 n 
+0000399596 00000 n 
+0000399660 00000 n 
+0000399726 00000 n 
+0000399792 00000 n 
+0000399856 00000 n 
+0000399920 00000 n 
+0000399985 00000 n 
+0000400048 00000 n 
+0000400113 00000 n 
+0000400177 00000 n 
+0000400243 00000 n 
+0000400309 00000 n 
+0000400373 00000 n 
+0000400436 00000 n 
+0000400500 00000 n 
+0000400694 00000 n 
+0000400758 00000 n 
+0000400824 00000 n 
+0000400888 00000 n 
+0000400952 00000 n 
+0000404862 00000 n 
+0000402159 00000 n 
+0000401130 00000 n 
+0000402285 00000 n 
+0000402349 00000 n 
+0000402413 00000 n 
+0000402477 00000 n 
+0000402541 00000 n 
+0000402607 00000 n 
+0000402671 00000 n 
+0000402734 00000 n 
+0000402798 00000 n 
+0000402862 00000 n 
+0000402928 00000 n 
+0000402994 00000 n 
+0000403058 00000 n 
+0000403122 00000 n 
+0000403186 00000 n 
+0000403250 00000 n 
+0000403315 00000 n 
+0000403381 00000 n 
+0000403447 00000 n 
+0000403511 00000 n 
+0000403575 00000 n 
+0000403640 00000 n 
+0000403704 00000 n 
+0000403768 00000 n 
+0000403831 00000 n 
+0000403894 00000 n 
+0000403958 00000 n 
+0000404152 00000 n 
+0000404216 00000 n 
+0000404282 00000 n 
+0000404346 00000 n 
+0000404410 00000 n 
+0000404476 00000 n 
+0000404540 00000 n 
+0000404604 00000 n 
+0000404668 00000 n 
+0000404732 00000 n 
+0000404798 00000 n 
+0000409480 00000 n 
+0000406070 00000 n 
+0000404974 00000 n 
+0000406196 00000 n 
+0000406323 00000 n 
+0000406387 00000 n 
+0000406451 00000 n 
+0000406515 00000 n 
+0000406581 00000 n 
+0000406647 00000 n 
+0000406711 00000 n 
+0000406775 00000 n 
+0000406840 00000 n 
+0000406905 00000 n 
+0000406970 00000 n 
+0000407035 00000 n 
+0000407100 00000 n 
+0000407164 00000 n 
+0000407228 00000 n 
+0000407292 00000 n 
+0000407485 00000 n 
+0000407549 00000 n 
+0000407615 00000 n 
+0000407679 00000 n 
+0000407743 00000 n 
+0000407809 00000 n 
+0000407873 00000 n 
+0000407937 00000 n 
+0000408000 00000 n 
+0000408063 00000 n 
+0000408129 00000 n 
+0000408192 00000 n 
+0000408256 00000 n 
+0000408318 00000 n 
+0000408382 00000 n 
+0000408448 00000 n 
+0000408514 00000 n 
+0000408578 00000 n 
+0000408642 00000 n 
+0000408707 00000 n 
+0000408772 00000 n 
+0000408837 00000 n 
+0000408903 00000 n 
+0000408969 00000 n 
+0000409032 00000 n 
+0000409095 00000 n 
+0000409160 00000 n 
+0000409224 00000 n 
+0000409289 00000 n 
+0000409353 00000 n 
+0000409417 00000 n 
+0000413070 00000 n 
+0000410488 00000 n 
+0000409592 00000 n 
+0000410614 00000 n 
+0000410678 00000 n 
+0000410742 00000 n 
+0000410873 00000 n 
+0000410937 00000 n 
+0000411003 00000 n 
+0000411067 00000 n 
+0000411130 00000 n 
+0000411196 00000 n 
+0000411260 00000 n 
+0000411323 00000 n 
+0000411387 00000 n 
+0000411451 00000 n 
+0000411517 00000 n 
+0000411581 00000 n 
+0000411645 00000 n 
+0000411709 00000 n 
+0000411773 00000 n 
+0000411839 00000 n 
+0000411905 00000 n 
+0000411969 00000 n 
+0000412033 00000 n 
+0000412098 00000 n 
+0000412163 00000 n 
+0000412228 00000 n 
+0000412294 00000 n 
+0000412360 00000 n 
+0000412424 00000 n 
+0000412488 00000 n 
+0000412552 00000 n 
+0000412746 00000 n 
+0000412810 00000 n 
+0000412876 00000 n 
+0000412940 00000 n 
+0000413004 00000 n 
+0000417346 00000 n 
+0000414321 00000 n 
+0000413182 00000 n 
+0000414447 00000 n 
+0000414511 00000 n 
+0000414575 00000 n 
+0000414639 00000 n 
+0000414705 00000 n 
+0000414769 00000 n 
+0000414833 00000 n 
+0000414897 00000 n 
+0000414961 00000 n 
+0000415026 00000 n 
+0000415091 00000 n 
+0000415155 00000 n 
+0000415219 00000 n 
+0000415284 00000 n 
+0000415349 00000 n 
+0000415414 00000 n 
+0000415480 00000 n 
+0000415546 00000 n 
+0000415609 00000 n 
+0000415672 00000 n 
+0000415736 00000 n 
+0000415800 00000 n 
+0000415865 00000 n 
+0000415929 00000 n 
+0000415993 00000 n 
+0000416057 00000 n 
+0000416251 00000 n 
+0000416315 00000 n 
+0000416381 00000 n 
+0000416445 00000 n 
+0000416509 00000 n 
+0000416575 00000 n 
+0000416638 00000 n 
+0000416702 00000 n 
+0000416766 00000 n 
+0000416832 00000 n 
+0000416896 00000 n 
+0000416960 00000 n 
+0000417024 00000 n 
+0000417088 00000 n 
+0000417154 00000 n 
+0000417220 00000 n 
+0000417283 00000 n 
+0000422093 00000 n 
+0000418673 00000 n 
+0000417458 00000 n 
+0000418799 00000 n 
+0000418863 00000 n 
+0000418928 00000 n 
+0000418993 00000 n 
+0000419058 00000 n 
+0000419124 00000 n 
+0000419190 00000 n 
+0000419254 00000 n 
+0000419318 00000 n 
+0000419383 00000 n 
+0000419447 00000 n 
+0000419512 00000 n 
+0000419577 00000 n 
+0000419643 00000 n 
+0000419709 00000 n 
+0000419773 00000 n 
+0000419837 00000 n 
+0000419902 00000 n 
+0000419966 00000 n 
+0000420031 00000 n 
+0000420095 00000 n 
+0000420159 00000 n 
+0000420223 00000 n 
+0000420417 00000 n 
+0000420481 00000 n 
+0000420547 00000 n 
+0000420610 00000 n 
+0000420674 00000 n 
+0000420740 00000 n 
+0000420804 00000 n 
+0000420868 00000 n 
+0000420932 00000 n 
+0000420998 00000 n 
+0000421062 00000 n 
+0000421125 00000 n 
+0000421189 00000 n 
+0000421253 00000 n 
+0000421319 00000 n 
+0000421385 00000 n 
+0000421449 00000 n 
+0000421513 00000 n 
+0000421578 00000 n 
+0000421643 00000 n 
+0000421708 00000 n 
+0000421772 00000 n 
+0000421836 00000 n 
+0000421900 00000 n 
+0000421964 00000 n 
+0000422029 00000 n 
+0000934302 00000 n 
+0000426344 00000 n 
+0000423377 00000 n 
+0000422205 00000 n 
+0000423503 00000 n 
+0000423567 00000 n 
+0000423632 00000 n 
+0000423697 00000 n 
+0000423763 00000 n 
+0000423829 00000 n 
+0000423893 00000 n 
+0000423957 00000 n 
+0000424022 00000 n 
+0000424086 00000 n 
+0000424151 00000 n 
+0000424215 00000 n 
+0000424279 00000 n 
+0000424343 00000 n 
+0000424537 00000 n 
+0000424601 00000 n 
+0000424667 00000 n 
+0000424730 00000 n 
+0000424794 00000 n 
+0000424860 00000 n 
+0000424924 00000 n 
+0000424988 00000 n 
+0000425052 00000 n 
+0000425116 00000 n 
+0000425182 00000 n 
+0000425246 00000 n 
+0000425310 00000 n 
+0000425374 00000 n 
+0000425438 00000 n 
+0000425504 00000 n 
+0000425570 00000 n 
+0000425634 00000 n 
+0000425698 00000 n 
+0000425762 00000 n 
+0000425826 00000 n 
+0000425891 00000 n 
+0000425957 00000 n 
+0000426023 00000 n 
+0000426087 00000 n 
+0000426151 00000 n 
+0000426216 00000 n 
+0000426280 00000 n 
+0000430911 00000 n 
+0000427622 00000 n 
+0000426456 00000 n 
+0000427748 00000 n 
+0000427812 00000 n 
+0000427876 00000 n 
+0000427940 00000 n 
+0000428004 00000 n 
+0000428068 00000 n 
+0000428261 00000 n 
+0000428325 00000 n 
+0000428391 00000 n 
+0000428455 00000 n 
+0000428519 00000 n 
+0000428585 00000 n 
+0000428649 00000 n 
+0000428712 00000 n 
+0000428776 00000 n 
+0000428840 00000 n 
+0000428906 00000 n 
+0000428970 00000 n 
+0000429034 00000 n 
+0000429098 00000 n 
+0000429162 00000 n 
+0000429228 00000 n 
+0000429294 00000 n 
+0000429358 00000 n 
+0000429422 00000 n 
+0000429487 00000 n 
+0000429552 00000 n 
+0000429617 00000 n 
+0000429683 00000 n 
+0000429749 00000 n 
+0000429813 00000 n 
+0000429877 00000 n 
+0000429942 00000 n 
+0000430006 00000 n 
+0000430071 00000 n 
+0000430136 00000 n 
+0000430202 00000 n 
+0000430268 00000 n 
+0000430332 00000 n 
+0000430396 00000 n 
+0000430461 00000 n 
+0000430525 00000 n 
+0000430590 00000 n 
+0000430654 00000 n 
+0000430718 00000 n 
+0000430782 00000 n 
+0000434673 00000 n 
+0000432030 00000 n 
+0000431023 00000 n 
+0000432156 00000 n 
+0000432220 00000 n 
+0000432349 00000 n 
+0000432413 00000 n 
+0000432479 00000 n 
+0000432543 00000 n 
+0000432607 00000 n 
+0000432671 00000 n 
+0000432735 00000 n 
+0000432801 00000 n 
+0000432865 00000 n 
+0000432929 00000 n 
+0000432993 00000 n 
+0000433055 00000 n 
+0000433121 00000 n 
+0000433187 00000 n 
+0000433251 00000 n 
+0000433315 00000 n 
+0000433380 00000 n 
+0000433445 00000 n 
+0000433510 00000 n 
+0000433576 00000 n 
+0000433642 00000 n 
+0000433706 00000 n 
+0000433770 00000 n 
+0000433835 00000 n 
+0000433899 00000 n 
+0000433964 00000 n 
+0000434028 00000 n 
+0000434092 00000 n 
+0000434156 00000 n 
+0000434350 00000 n 
+0000434414 00000 n 
+0000434480 00000 n 
+0000434543 00000 n 
+0000434607 00000 n 
+0000439083 00000 n 
+0000435924 00000 n 
+0000434785 00000 n 
+0000436050 00000 n 
+0000436114 00000 n 
+0000436178 00000 n 
+0000436242 00000 n 
+0000436308 00000 n 
+0000436372 00000 n 
+0000436435 00000 n 
+0000436499 00000 n 
+0000436563 00000 n 
+0000436629 00000 n 
+0000436695 00000 n 
+0000436759 00000 n 
+0000436823 00000 n 
+0000436888 00000 n 
+0000436953 00000 n 
+0000437017 00000 n 
+0000437082 00000 n 
+0000437147 00000 n 
+0000437211 00000 n 
+0000437275 00000 n 
+0000437339 00000 n 
+0000437533 00000 n 
+0000437597 00000 n 
+0000437663 00000 n 
+0000437727 00000 n 
+0000437791 00000 n 
+0000437856 00000 n 
+0000437920 00000 n 
+0000437984 00000 n 
+0000438048 00000 n 
+0000438114 00000 n 
+0000438178 00000 n 
+0000438242 00000 n 
+0000438306 00000 n 
+0000438368 00000 n 
+0000438434 00000 n 
+0000438500 00000 n 
+0000438564 00000 n 
+0000438628 00000 n 
+0000438693 00000 n 
+0000438758 00000 n 
+0000438823 00000 n 
+0000438889 00000 n 
+0000438955 00000 n 
+0000439019 00000 n 
+0000442959 00000 n 
+0000440316 00000 n 
+0000439195 00000 n 
+0000440442 00000 n 
+0000440506 00000 n 
+0000440570 00000 n 
+0000440635 00000 n 
+0000440699 00000 n 
+0000440764 00000 n 
+0000440828 00000 n 
+0000440892 00000 n 
+0000440956 00000 n 
+0000441149 00000 n 
+0000441213 00000 n 
+0000441279 00000 n 
+0000441343 00000 n 
+0000441407 00000 n 
+0000441473 00000 n 
+0000441537 00000 n 
+0000441601 00000 n 
+0000441665 00000 n 
+0000441729 00000 n 
+0000441795 00000 n 
+0000441859 00000 n 
+0000441923 00000 n 
+0000441987 00000 n 
+0000442051 00000 n 
+0000442117 00000 n 
+0000442183 00000 n 
+0000442247 00000 n 
+0000442311 00000 n 
+0000442376 00000 n 
+0000442441 00000 n 
+0000442506 00000 n 
+0000442572 00000 n 
+0000442638 00000 n 
+0000442702 00000 n 
+0000442766 00000 n 
+0000442830 00000 n 
+0000446731 00000 n 
+0000444095 00000 n 
+0000443071 00000 n 
+0000444221 00000 n 
+0000444285 00000 n 
+0000444414 00000 n 
+0000444478 00000 n 
+0000444543 00000 n 
+0000444607 00000 n 
+0000444669 00000 n 
+0000444732 00000 n 
+0000444798 00000 n 
+0000444861 00000 n 
+0000444925 00000 n 
+0000444988 00000 n 
+0000445052 00000 n 
+0000445118 00000 n 
+0000445184 00000 n 
+0000445248 00000 n 
+0000445312 00000 n 
+0000445377 00000 n 
+0000445442 00000 n 
+0000445507 00000 n 
+0000445573 00000 n 
+0000445639 00000 n 
+0000445702 00000 n 
+0000445765 00000 n 
+0000445830 00000 n 
+0000445894 00000 n 
+0000445959 00000 n 
+0000446023 00000 n 
+0000446087 00000 n 
+0000446150 00000 n 
+0000446344 00000 n 
+0000446408 00000 n 
+0000446474 00000 n 
+0000446538 00000 n 
+0000446601 00000 n 
+0000446667 00000 n 
+0000934427 00000 n 
+0000450913 00000 n 
+0000447944 00000 n 
+0000446843 00000 n 
+0000448070 00000 n 
+0000448134 00000 n 
+0000448198 00000 n 
+0000448262 00000 n 
+0000448326 00000 n 
+0000448390 00000 n 
+0000448454 00000 n 
+0000448520 00000 n 
+0000448586 00000 n 
+0000448650 00000 n 
+0000448714 00000 n 
+0000448779 00000 n 
+0000448844 00000 n 
+0000448909 00000 n 
+0000448975 00000 n 
+0000449041 00000 n 
+0000449105 00000 n 
+0000449169 00000 n 
+0000449234 00000 n 
+0000449298 00000 n 
+0000449363 00000 n 
+0000449428 00000 n 
+0000449494 00000 n 
+0000449560 00000 n 
+0000449624 00000 n 
+0000449688 00000 n 
+0000449753 00000 n 
+0000449817 00000 n 
+0000449882 00000 n 
+0000449946 00000 n 
+0000450010 00000 n 
+0000450074 00000 n 
+0000450268 00000 n 
+0000450332 00000 n 
+0000450398 00000 n 
+0000450462 00000 n 
+0000450526 00000 n 
+0000450592 00000 n 
+0000450656 00000 n 
+0000450720 00000 n 
+0000450783 00000 n 
+0000450847 00000 n 
+0000455289 00000 n 
+0000452132 00000 n 
+0000451025 00000 n 
+0000452258 00000 n 
+0000452322 00000 n 
+0000452386 00000 n 
+0000452450 00000 n 
+0000452514 00000 n 
+0000452580 00000 n 
+0000452646 00000 n 
+0000452709 00000 n 
+0000452772 00000 n 
+0000452837 00000 n 
+0000452902 00000 n 
+0000452967 00000 n 
+0000453033 00000 n 
+0000453099 00000 n 
+0000453163 00000 n 
+0000453227 00000 n 
+0000453291 00000 n 
+0000453485 00000 n 
+0000453549 00000 n 
+0000453615 00000 n 
+0000453679 00000 n 
+0000453743 00000 n 
+0000453809 00000 n 
+0000453873 00000 n 
+0000453937 00000 n 
+0000454000 00000 n 
+0000454063 00000 n 
+0000454129 00000 n 
+0000454191 00000 n 
+0000454255 00000 n 
+0000454318 00000 n 
+0000454382 00000 n 
+0000454448 00000 n 
+0000454514 00000 n 
+0000454578 00000 n 
+0000454642 00000 n 
+0000454707 00000 n 
+0000454772 00000 n 
+0000454837 00000 n 
+0000454903 00000 n 
+0000454969 00000 n 
+0000455032 00000 n 
+0000455095 00000 n 
+0000455160 00000 n 
+0000455224 00000 n 
+0000460613 00000 n 
+0000456739 00000 n 
+0000455401 00000 n 
+0000456865 00000 n 
+0000456929 00000 n 
+0000456993 00000 n 
+0000457057 00000 n 
+0000457121 00000 n 
+0000457315 00000 n 
+0000457379 00000 n 
+0000457445 00000 n 
+0000457509 00000 n 
+0000457573 00000 n 
+0000457639 00000 n 
+0000457703 00000 n 
+0000457767 00000 n 
+0000457833 00000 n 
+0000457897 00000 n 
+0000457961 00000 n 
+0000458025 00000 n 
+0000458089 00000 n 
+0000458154 00000 n 
+0000458219 00000 n 
+0000458283 00000 n 
+0000458347 00000 n 
+0000458412 00000 n 
+0000458477 00000 n 
+0000458542 00000 n 
+0000458608 00000 n 
+0000458674 00000 n 
+0000458736 00000 n 
+0000458798 00000 n 
+0000458862 00000 n 
+0000458926 00000 n 
+0000458991 00000 n 
+0000459055 00000 n 
+0000459119 00000 n 
+0000459185 00000 n 
+0000459251 00000 n 
+0000459315 00000 n 
+0000459379 00000 n 
+0000459445 00000 n 
+0000459508 00000 n 
+0000459573 00000 n 
+0000459638 00000 n 
+0000459704 00000 n 
+0000459770 00000 n 
+0000459834 00000 n 
+0000459898 00000 n 
+0000459964 00000 n 
+0000460028 00000 n 
+0000460093 00000 n 
+0000460158 00000 n 
+0000460224 00000 n 
+0000460290 00000 n 
+0000460354 00000 n 
+0000460418 00000 n 
+0000460484 00000 n 
+0000460548 00000 n 
+0000466764 00000 n 
+0000462036 00000 n 
+0000460725 00000 n 
+0000462162 00000 n 
+0000462226 00000 n 
+0000462291 00000 n 
+0000462357 00000 n 
+0000462423 00000 n 
+0000462487 00000 n 
+0000462551 00000 n 
+0000462617 00000 n 
+0000462681 00000 n 
+0000462747 00000 n 
+0000462812 00000 n 
+0000462878 00000 n 
+0000462944 00000 n 
+0000463008 00000 n 
+0000463072 00000 n 
+0000463138 00000 n 
+0000463202 00000 n 
+0000463268 00000 n 
+0000463333 00000 n 
+0000463399 00000 n 
+0000463465 00000 n 
+0000463529 00000 n 
+0000463593 00000 n 
+0000463659 00000 n 
+0000463723 00000 n 
+0000463789 00000 n 
+0000463854 00000 n 
+0000463920 00000 n 
+0000463986 00000 n 
+0000464050 00000 n 
+0000464114 00000 n 
+0000464180 00000 n 
+0000464244 00000 n 
+0000464310 00000 n 
+0000464375 00000 n 
+0000464441 00000 n 
+0000464507 00000 n 
+0000464571 00000 n 
+0000464635 00000 n 
+0000464701 00000 n 
+0000464765 00000 n 
+0000464831 00000 n 
+0000464896 00000 n 
+0000464962 00000 n 
+0000465028 00000 n 
+0000465092 00000 n 
+0000465156 00000 n 
+0000465221 00000 n 
+0000465285 00000 n 
+0000465349 00000 n 
+0000465413 00000 n 
+0000465479 00000 n 
+0000465543 00000 n 
+0000465607 00000 n 
+0000465671 00000 n 
+0000465735 00000 n 
+0000465799 00000 n 
+0000465864 00000 n 
+0000465929 00000 n 
+0000465993 00000 n 
+0000466058 00000 n 
+0000466123 00000 n 
+0000466187 00000 n 
+0000466252 00000 n 
+0000466317 00000 n 
+0000466381 00000 n 
+0000466445 00000 n 
+0000466509 00000 n 
+0000466573 00000 n 
+0000466637 00000 n 
+0000466701 00000 n 
+0000472037 00000 n 
+0000468224 00000 n 
+0000466863 00000 n 
+0000468350 00000 n 
+0000468414 00000 n 
+0000468479 00000 n 
+0000468544 00000 n 
+0000468608 00000 n 
+0000468672 00000 n 
+0000468738 00000 n 
+0000468803 00000 n 
+0000468868 00000 n 
+0000468933 00000 n 
+0000468997 00000 n 
+0000469062 00000 n 
+0000469127 00000 n 
+0000469191 00000 n 
+0000469256 00000 n 
+0000469321 00000 n 
+0000469385 00000 n 
+0000469449 00000 n 
+0000469643 00000 n 
+0000469707 00000 n 
+0000469773 00000 n 
+0000469837 00000 n 
+0000469900 00000 n 
+0000469966 00000 n 
+0000470030 00000 n 
+0000470094 00000 n 
+0000470160 00000 n 
+0000470224 00000 n 
+0000470288 00000 n 
+0000470352 00000 n 
+0000470415 00000 n 
+0000470481 00000 n 
+0000470547 00000 n 
+0000470611 00000 n 
+0000470675 00000 n 
+0000470740 00000 n 
+0000470805 00000 n 
+0000470870 00000 n 
+0000470936 00000 n 
+0000471002 00000 n 
+0000471066 00000 n 
+0000471130 00000 n 
+0000471195 00000 n 
+0000471259 00000 n 
+0000471323 00000 n 
+0000471389 00000 n 
+0000471453 00000 n 
+0000471519 00000 n 
+0000471584 00000 n 
+0000471649 00000 n 
+0000471713 00000 n 
+0000471777 00000 n 
+0000471843 00000 n 
+0000471909 00000 n 
+0000471973 00000 n 
+0000476736 00000 n 
+0000473310 00000 n 
+0000472149 00000 n 
+0000473436 00000 n 
+0000473500 00000 n 
+0000473566 00000 n 
+0000473630 00000 n 
+0000473696 00000 n 
+0000473761 00000 n 
+0000473827 00000 n 
+0000473893 00000 n 
+0000473957 00000 n 
+0000474021 00000 n 
+0000474087 00000 n 
+0000474151 00000 n 
+0000474217 00000 n 
+0000474282 00000 n 
+0000474348 00000 n 
+0000474414 00000 n 
+0000474478 00000 n 
+0000474542 00000 n 
+0000474608 00000 n 
+0000474672 00000 n 
+0000474738 00000 n 
+0000474803 00000 n 
+0000474869 00000 n 
+0000474935 00000 n 
+0000474999 00000 n 
+0000475063 00000 n 
+0000475128 00000 n 
+0000475192 00000 n 
+0000475256 00000 n 
+0000475320 00000 n 
+0000475386 00000 n 
+0000475450 00000 n 
+0000475514 00000 n 
+0000475579 00000 n 
+0000475644 00000 n 
+0000475708 00000 n 
+0000475773 00000 n 
+0000475838 00000 n 
+0000475900 00000 n 
+0000475964 00000 n 
+0000476154 00000 n 
+0000476218 00000 n 
+0000476284 00000 n 
+0000476348 00000 n 
+0000476412 00000 n 
+0000476478 00000 n 
+0000476542 00000 n 
+0000476606 00000 n 
+0000476672 00000 n 
+0000934552 00000 n 
+0000482064 00000 n 
+0000478186 00000 n 
+0000476848 00000 n 
+0000478312 00000 n 
+0000478376 00000 n 
+0000478440 00000 n 
+0000478504 00000 n 
+0000478568 00000 n 
+0000478634 00000 n 
+0000478700 00000 n 
+0000478764 00000 n 
+0000478828 00000 n 
+0000478893 00000 n 
+0000478958 00000 n 
+0000479022 00000 n 
+0000479086 00000 n 
+0000479150 00000 n 
+0000479343 00000 n 
+0000479407 00000 n 
+0000479473 00000 n 
+0000479537 00000 n 
+0000479601 00000 n 
+0000479667 00000 n 
+0000479731 00000 n 
+0000479795 00000 n 
+0000479861 00000 n 
+0000479925 00000 n 
+0000479989 00000 n 
+0000480053 00000 n 
+0000480116 00000 n 
+0000480182 00000 n 
+0000480248 00000 n 
+0000480312 00000 n 
+0000480376 00000 n 
+0000480441 00000 n 
+0000480506 00000 n 
+0000480571 00000 n 
+0000480637 00000 n 
+0000480703 00000 n 
+0000480767 00000 n 
+0000480831 00000 n 
+0000480896 00000 n 
+0000480960 00000 n 
+0000481025 00000 n 
+0000481089 00000 n 
+0000481153 00000 n 
+0000481219 00000 n 
+0000481285 00000 n 
+0000481349 00000 n 
+0000481413 00000 n 
+0000481479 00000 n 
+0000481543 00000 n 
+0000481609 00000 n 
+0000481674 00000 n 
+0000481740 00000 n 
+0000481806 00000 n 
+0000481870 00000 n 
+0000481934 00000 n 
+0000482000 00000 n 
+0000488431 00000 n 
+0000483686 00000 n 
+0000482176 00000 n 
+0000483812 00000 n 
+0000483876 00000 n 
+0000483942 00000 n 
+0000484007 00000 n 
+0000484073 00000 n 
+0000484139 00000 n 
+0000484203 00000 n 
+0000484267 00000 n 
+0000484333 00000 n 
+0000484397 00000 n 
+0000484463 00000 n 
+0000484528 00000 n 
+0000484594 00000 n 
+0000484660 00000 n 
+0000484724 00000 n 
+0000484788 00000 n 
+0000484854 00000 n 
+0000484918 00000 n 
+0000484984 00000 n 
+0000485049 00000 n 
+0000485115 00000 n 
+0000485181 00000 n 
+0000485245 00000 n 
+0000485309 00000 n 
+0000485375 00000 n 
+0000485439 00000 n 
+0000485505 00000 n 
+0000485570 00000 n 
+0000485636 00000 n 
+0000485702 00000 n 
+0000485766 00000 n 
+0000485830 00000 n 
+0000485896 00000 n 
+0000485960 00000 n 
+0000486026 00000 n 
+0000486091 00000 n 
+0000486157 00000 n 
+0000486223 00000 n 
+0000486287 00000 n 
+0000486351 00000 n 
+0000486417 00000 n 
+0000486481 00000 n 
+0000486547 00000 n 
+0000486612 00000 n 
+0000486678 00000 n 
+0000486744 00000 n 
+0000486808 00000 n 
+0000486872 00000 n 
+0000486938 00000 n 
+0000487002 00000 n 
+0000487068 00000 n 
+0000487133 00000 n 
+0000487199 00000 n 
+0000487265 00000 n 
+0000487329 00000 n 
+0000487393 00000 n 
+0000487459 00000 n 
+0000487523 00000 n 
+0000487589 00000 n 
+0000487654 00000 n 
+0000487720 00000 n 
+0000487786 00000 n 
+0000487850 00000 n 
+0000487914 00000 n 
+0000487980 00000 n 
+0000488044 00000 n 
+0000488110 00000 n 
+0000488175 00000 n 
+0000488240 00000 n 
+0000488305 00000 n 
+0000488368 00000 n 
+0000495340 00000 n 
+0000490297 00000 n 
+0000488530 00000 n 
+0000490423 00000 n 
+0000490487 00000 n 
+0000490553 00000 n 
+0000490617 00000 n 
+0000490683 00000 n 
+0000490748 00000 n 
+0000490814 00000 n 
+0000490880 00000 n 
+0000490944 00000 n 
+0000491008 00000 n 
+0000491074 00000 n 
+0000491138 00000 n 
+0000491204 00000 n 
+0000491269 00000 n 
+0000491335 00000 n 
+0000491401 00000 n 
+0000491465 00000 n 
+0000491529 00000 n 
+0000491595 00000 n 
+0000491659 00000 n 
+0000491725 00000 n 
+0000491790 00000 n 
+0000491856 00000 n 
+0000491922 00000 n 
+0000491986 00000 n 
+0000492050 00000 n 
+0000492116 00000 n 
+0000492180 00000 n 
+0000492246 00000 n 
+0000492311 00000 n 
+0000492377 00000 n 
+0000492443 00000 n 
+0000492507 00000 n 
+0000492571 00000 n 
+0000492636 00000 n 
+0000492700 00000 n 
+0000492764 00000 n 
+0000492828 00000 n 
+0000492894 00000 n 
+0000492958 00000 n 
+0000493022 00000 n 
+0000493087 00000 n 
+0000493152 00000 n 
+0000493216 00000 n 
+0000493281 00000 n 
+0000493346 00000 n 
+0000493410 00000 n 
+0000493474 00000 n 
+0000493538 00000 n 
+0000493602 00000 n 
+0000493667 00000 n 
+0000493732 00000 n 
+0000493796 00000 n 
+0000493861 00000 n 
+0000493926 00000 n 
+0000493989 00000 n 
+0000494054 00000 n 
+0000494119 00000 n 
+0000494183 00000 n 
+0000494247 00000 n 
+0000494311 00000 n 
+0000494375 00000 n 
+0000494440 00000 n 
+0000494505 00000 n 
+0000494569 00000 n 
+0000494634 00000 n 
+0000494699 00000 n 
+0000494763 00000 n 
+0000494828 00000 n 
+0000494893 00000 n 
+0000494957 00000 n 
+0000495021 00000 n 
+0000495085 00000 n 
+0000495149 00000 n 
+0000495213 00000 n 
+0000495277 00000 n 
+0000500802 00000 n 
+0000496920 00000 n 
+0000495439 00000 n 
+0000497046 00000 n 
+0000497110 00000 n 
+0000497175 00000 n 
+0000497240 00000 n 
+0000497304 00000 n 
+0000497369 00000 n 
+0000497562 00000 n 
+0000497626 00000 n 
+0000497692 00000 n 
+0000497756 00000 n 
+0000497820 00000 n 
+0000497886 00000 n 
+0000497950 00000 n 
+0000498014 00000 n 
+0000498079 00000 n 
+0000498143 00000 n 
+0000498207 00000 n 
+0000498271 00000 n 
+0000498335 00000 n 
+0000498400 00000 n 
+0000498465 00000 n 
+0000498529 00000 n 
+0000498593 00000 n 
+0000498658 00000 n 
+0000498723 00000 n 
+0000498788 00000 n 
+0000498854 00000 n 
+0000498920 00000 n 
+0000498984 00000 n 
+0000499048 00000 n 
+0000499113 00000 n 
+0000499177 00000 n 
+0000499242 00000 n 
+0000499306 00000 n 
+0000499370 00000 n 
+0000499436 00000 n 
+0000499502 00000 n 
+0000499566 00000 n 
+0000499630 00000 n 
+0000499696 00000 n 
+0000499760 00000 n 
+0000499826 00000 n 
+0000499891 00000 n 
+0000499957 00000 n 
+0000500023 00000 n 
+0000500087 00000 n 
+0000500151 00000 n 
+0000500217 00000 n 
+0000500281 00000 n 
+0000500347 00000 n 
+0000500412 00000 n 
+0000500478 00000 n 
+0000500544 00000 n 
+0000500608 00000 n 
+0000500672 00000 n 
+0000500738 00000 n 
+0000506680 00000 n 
+0000502387 00000 n 
+0000500914 00000 n 
+0000502513 00000 n 
+0000502577 00000 n 
+0000502643 00000 n 
+0000502708 00000 n 
+0000502774 00000 n 
+0000502840 00000 n 
+0000502904 00000 n 
+0000502968 00000 n 
+0000503034 00000 n 
+0000503098 00000 n 
+0000503164 00000 n 
+0000503229 00000 n 
+0000503295 00000 n 
+0000503361 00000 n 
+0000503425 00000 n 
+0000503489 00000 n 
+0000503555 00000 n 
+0000503619 00000 n 
+0000503685 00000 n 
+0000503750 00000 n 
+0000503816 00000 n 
+0000503882 00000 n 
+0000503946 00000 n 
+0000504010 00000 n 
+0000504076 00000 n 
+0000504140 00000 n 
+0000504206 00000 n 
+0000504271 00000 n 
+0000504337 00000 n 
+0000504403 00000 n 
+0000504467 00000 n 
+0000504531 00000 n 
+0000504597 00000 n 
+0000504661 00000 n 
+0000504727 00000 n 
+0000504792 00000 n 
+0000504858 00000 n 
+0000504924 00000 n 
+0000504988 00000 n 
+0000505052 00000 n 
+0000505118 00000 n 
+0000505182 00000 n 
+0000505248 00000 n 
+0000505313 00000 n 
+0000505379 00000 n 
+0000505445 00000 n 
+0000505509 00000 n 
+0000505573 00000 n 
+0000505639 00000 n 
+0000505703 00000 n 
+0000505769 00000 n 
+0000505834 00000 n 
+0000505900 00000 n 
+0000505966 00000 n 
+0000506030 00000 n 
+0000506094 00000 n 
+0000506160 00000 n 
+0000506224 00000 n 
+0000506290 00000 n 
+0000506355 00000 n 
+0000506421 00000 n 
+0000506487 00000 n 
+0000506551 00000 n 
+0000506615 00000 n 
+0000512591 00000 n 
+0000508406 00000 n 
+0000506779 00000 n 
+0000508532 00000 n 
+0000508596 00000 n 
+0000508660 00000 n 
+0000508724 00000 n 
+0000508788 00000 n 
+0000508854 00000 n 
+0000508918 00000 n 
+0000508982 00000 n 
+0000509047 00000 n 
+0000509112 00000 n 
+0000509175 00000 n 
+0000509240 00000 n 
+0000509305 00000 n 
+0000509369 00000 n 
+0000509433 00000 n 
+0000509497 00000 n 
+0000509561 00000 n 
+0000509626 00000 n 
+0000509691 00000 n 
+0000509755 00000 n 
+0000509819 00000 n 
+0000509885 00000 n 
+0000509950 00000 n 
+0000510014 00000 n 
+0000510078 00000 n 
+0000510142 00000 n 
+0000510207 00000 n 
+0000510272 00000 n 
+0000510336 00000 n 
+0000510401 00000 n 
+0000510466 00000 n 
+0000510530 00000 n 
+0000510595 00000 n 
+0000510660 00000 n 
+0000510724 00000 n 
+0000510787 00000 n 
+0000510850 00000 n 
+0000510914 00000 n 
+0000510979 00000 n 
+0000511044 00000 n 
+0000511108 00000 n 
+0000511173 00000 n 
+0000511366 00000 n 
+0000511430 00000 n 
+0000511496 00000 n 
+0000511560 00000 n 
+0000511624 00000 n 
+0000511690 00000 n 
+0000511754 00000 n 
+0000511818 00000 n 
+0000511882 00000 n 
+0000511947 00000 n 
+0000512011 00000 n 
+0000512075 00000 n 
+0000512139 00000 n 
+0000512203 00000 n 
+0000512269 00000 n 
+0000512335 00000 n 
+0000512399 00000 n 
+0000512463 00000 n 
+0000512527 00000 n 
+0000934677 00000 n 
+0000518554 00000 n 
+0000514071 00000 n 
+0000512703 00000 n 
+0000514197 00000 n 
+0000514261 00000 n 
+0000514326 00000 n 
+0000514392 00000 n 
+0000514458 00000 n 
+0000514522 00000 n 
+0000514586 00000 n 
+0000514651 00000 n 
+0000514715 00000 n 
+0000514779 00000 n 
+0000514845 00000 n 
+0000514910 00000 n 
+0000514975 00000 n 
+0000515039 00000 n 
+0000515103 00000 n 
+0000515169 00000 n 
+0000515235 00000 n 
+0000515299 00000 n 
+0000515363 00000 n 
+0000515429 00000 n 
+0000515493 00000 n 
+0000515559 00000 n 
+0000515624 00000 n 
+0000515690 00000 n 
+0000515756 00000 n 
+0000515820 00000 n 
+0000515884 00000 n 
+0000515950 00000 n 
+0000516014 00000 n 
+0000516080 00000 n 
+0000516145 00000 n 
+0000516211 00000 n 
+0000516277 00000 n 
+0000516341 00000 n 
+0000516405 00000 n 
+0000516471 00000 n 
+0000516535 00000 n 
+0000516601 00000 n 
+0000516666 00000 n 
+0000516732 00000 n 
+0000516798 00000 n 
+0000516862 00000 n 
+0000516926 00000 n 
+0000516992 00000 n 
+0000517056 00000 n 
+0000517122 00000 n 
+0000517187 00000 n 
+0000517253 00000 n 
+0000517319 00000 n 
+0000517383 00000 n 
+0000517447 00000 n 
+0000517513 00000 n 
+0000517577 00000 n 
+0000517643 00000 n 
+0000517708 00000 n 
+0000517774 00000 n 
+0000517840 00000 n 
+0000517904 00000 n 
+0000517968 00000 n 
+0000518034 00000 n 
+0000518098 00000 n 
+0000518164 00000 n 
+0000518229 00000 n 
+0000518295 00000 n 
+0000518361 00000 n 
+0000518425 00000 n 
+0000518489 00000 n 
+0000523354 00000 n 
+0000519811 00000 n 
+0000518653 00000 n 
+0000519937 00000 n 
+0000520001 00000 n 
+0000520065 00000 n 
+0000520129 00000 n 
+0000520193 00000 n 
+0000520259 00000 n 
+0000520323 00000 n 
+0000520387 00000 n 
+0000520452 00000 n 
+0000520517 00000 n 
+0000520581 00000 n 
+0000520646 00000 n 
+0000520711 00000 n 
+0000520774 00000 n 
+0000520838 00000 n 
+0000520902 00000 n 
+0000520966 00000 n 
+0000521031 00000 n 
+0000521096 00000 n 
+0000521160 00000 n 
+0000521225 00000 n 
+0000521290 00000 n 
+0000521354 00000 n 
+0000521419 00000 n 
+0000521612 00000 n 
+0000521676 00000 n 
+0000521742 00000 n 
+0000521806 00000 n 
+0000521870 00000 n 
+0000521935 00000 n 
+0000521999 00000 n 
+0000522063 00000 n 
+0000522129 00000 n 
+0000522193 00000 n 
+0000522256 00000 n 
+0000522320 00000 n 
+0000522384 00000 n 
+0000522450 00000 n 
+0000522516 00000 n 
+0000522580 00000 n 
+0000522644 00000 n 
+0000522709 00000 n 
+0000522774 00000 n 
+0000522838 00000 n 
+0000522902 00000 n 
+0000522966 00000 n 
+0000523160 00000 n 
+0000523224 00000 n 
+0000523290 00000 n 
+0000529023 00000 n 
+0000524878 00000 n 
+0000523466 00000 n 
+0000525004 00000 n 
+0000525068 00000 n 
+0000525132 00000 n 
+0000525198 00000 n 
+0000525262 00000 n 
+0000525325 00000 n 
+0000525391 00000 n 
+0000525454 00000 n 
+0000525518 00000 n 
+0000525581 00000 n 
+0000525645 00000 n 
+0000525711 00000 n 
+0000525777 00000 n 
+0000525841 00000 n 
+0000525905 00000 n 
+0000525970 00000 n 
+0000526035 00000 n 
+0000526100 00000 n 
+0000526166 00000 n 
+0000526232 00000 n 
+0000526296 00000 n 
+0000526360 00000 n 
+0000526425 00000 n 
+0000526489 00000 n 
+0000526554 00000 n 
+0000526618 00000 n 
+0000526682 00000 n 
+0000526748 00000 n 
+0000526814 00000 n 
+0000526878 00000 n 
+0000526942 00000 n 
+0000527008 00000 n 
+0000527072 00000 n 
+0000527138 00000 n 
+0000527203 00000 n 
+0000527269 00000 n 
+0000527335 00000 n 
+0000527399 00000 n 
+0000527463 00000 n 
+0000527529 00000 n 
+0000527592 00000 n 
+0000527658 00000 n 
+0000527723 00000 n 
+0000527789 00000 n 
+0000527855 00000 n 
+0000527919 00000 n 
+0000527983 00000 n 
+0000528049 00000 n 
+0000528112 00000 n 
+0000528178 00000 n 
+0000528243 00000 n 
+0000528309 00000 n 
+0000528375 00000 n 
+0000528439 00000 n 
+0000528503 00000 n 
+0000528569 00000 n 
+0000528632 00000 n 
+0000528698 00000 n 
+0000528763 00000 n 
+0000528829 00000 n 
+0000528895 00000 n 
+0000528959 00000 n 
+0000533167 00000 n 
+0000530139 00000 n 
+0000529122 00000 n 
+0000530265 00000 n 
+0000530329 00000 n 
+0000530393 00000 n 
+0000530458 00000 n 
+0000530522 00000 n 
+0000530586 00000 n 
+0000530650 00000 n 
+0000530716 00000 n 
+0000530779 00000 n 
+0000530842 00000 n 
+0000530907 00000 n 
+0000530972 00000 n 
+0000531036 00000 n 
+0000531101 00000 n 
+0000531166 00000 n 
+0000531230 00000 n 
+0000531295 00000 n 
+0000531360 00000 n 
+0000531424 00000 n 
+0000531489 00000 n 
+0000531682 00000 n 
+0000531746 00000 n 
+0000531812 00000 n 
+0000531876 00000 n 
+0000531940 00000 n 
+0000532006 00000 n 
+0000532070 00000 n 
+0000532134 00000 n 
+0000532200 00000 n 
+0000532264 00000 n 
+0000532328 00000 n 
+0000532392 00000 n 
+0000532456 00000 n 
+0000532522 00000 n 
+0000532588 00000 n 
+0000532652 00000 n 
+0000532716 00000 n 
+0000532781 00000 n 
+0000532846 00000 n 
+0000532910 00000 n 
+0000532974 00000 n 
+0000533038 00000 n 
+0000536921 00000 n 
+0000534280 00000 n 
+0000533279 00000 n 
+0000534406 00000 n 
+0000534535 00000 n 
+0000534599 00000 n 
+0000534664 00000 n 
+0000534728 00000 n 
+0000534790 00000 n 
+0000534856 00000 n 
+0000534920 00000 n 
+0000534984 00000 n 
+0000535048 00000 n 
+0000535112 00000 n 
+0000535178 00000 n 
+0000535244 00000 n 
+0000535308 00000 n 
+0000535372 00000 n 
+0000535437 00000 n 
+0000535502 00000 n 
+0000535566 00000 n 
+0000535630 00000 n 
+0000535694 00000 n 
+0000535887 00000 n 
+0000535951 00000 n 
+0000536017 00000 n 
+0000536081 00000 n 
+0000536145 00000 n 
+0000536211 00000 n 
+0000536275 00000 n 
+0000536339 00000 n 
+0000536405 00000 n 
+0000536469 00000 n 
+0000536533 00000 n 
+0000536597 00000 n 
+0000536661 00000 n 
+0000536727 00000 n 
+0000536793 00000 n 
+0000536857 00000 n 
+0000543122 00000 n 
+0000538459 00000 n 
+0000537033 00000 n 
+0000538585 00000 n 
+0000538649 00000 n 
+0000538714 00000 n 
+0000538779 00000 n 
+0000538844 00000 n 
+0000538910 00000 n 
+0000538976 00000 n 
+0000539040 00000 n 
+0000539104 00000 n 
+0000539169 00000 n 
+0000539233 00000 n 
+0000539297 00000 n 
+0000539363 00000 n 
+0000539427 00000 n 
+0000539493 00000 n 
+0000539558 00000 n 
+0000539623 00000 n 
+0000539687 00000 n 
+0000539751 00000 n 
+0000539817 00000 n 
+0000539883 00000 n 
+0000539947 00000 n 
+0000540011 00000 n 
+0000540077 00000 n 
+0000540141 00000 n 
+0000540207 00000 n 
+0000540272 00000 n 
+0000540338 00000 n 
+0000540404 00000 n 
+0000540468 00000 n 
+0000540532 00000 n 
+0000540598 00000 n 
+0000540662 00000 n 
+0000540728 00000 n 
+0000540793 00000 n 
+0000540859 00000 n 
+0000540925 00000 n 
+0000540989 00000 n 
+0000541053 00000 n 
+0000541119 00000 n 
+0000541183 00000 n 
+0000541249 00000 n 
+0000541314 00000 n 
+0000541380 00000 n 
+0000541446 00000 n 
+0000541510 00000 n 
+0000541574 00000 n 
+0000541639 00000 n 
+0000541703 00000 n 
+0000541767 00000 n 
+0000541831 00000 n 
+0000541897 00000 n 
+0000541961 00000 n 
+0000542025 00000 n 
+0000542090 00000 n 
+0000542155 00000 n 
+0000542219 00000 n 
+0000542283 00000 n 
+0000542348 00000 n 
+0000542413 00000 n 
+0000542478 00000 n 
+0000542543 00000 n 
+0000542607 00000 n 
+0000542672 00000 n 
+0000542737 00000 n 
+0000542801 00000 n 
+0000542865 00000 n 
+0000542929 00000 n 
+0000542993 00000 n 
+0000543057 00000 n 
+0000934802 00000 n 
+0000548418 00000 n 
+0000544665 00000 n 
+0000543221 00000 n 
+0000544791 00000 n 
+0000544855 00000 n 
+0000544920 00000 n 
+0000544985 00000 n 
+0000545178 00000 n 
+0000545242 00000 n 
+0000545308 00000 n 
+0000545372 00000 n 
+0000545436 00000 n 
+0000545502 00000 n 
+0000545566 00000 n 
+0000545630 00000 n 
+0000545695 00000 n 
+0000545759 00000 n 
+0000545823 00000 n 
+0000545887 00000 n 
+0000545951 00000 n 
+0000546016 00000 n 
+0000546081 00000 n 
+0000546145 00000 n 
+0000546209 00000 n 
+0000546274 00000 n 
+0000546339 00000 n 
+0000546404 00000 n 
+0000546470 00000 n 
+0000546536 00000 n 
+0000546600 00000 n 
+0000546664 00000 n 
+0000546729 00000 n 
+0000546793 00000 n 
+0000546858 00000 n 
+0000546922 00000 n 
+0000546986 00000 n 
+0000547052 00000 n 
+0000547118 00000 n 
+0000547182 00000 n 
+0000547246 00000 n 
+0000547312 00000 n 
+0000547376 00000 n 
+0000547442 00000 n 
+0000547507 00000 n 
+0000547573 00000 n 
+0000547639 00000 n 
+0000547703 00000 n 
+0000547767 00000 n 
+0000547833 00000 n 
+0000547897 00000 n 
+0000547963 00000 n 
+0000548028 00000 n 
+0000548094 00000 n 
+0000548160 00000 n 
+0000548224 00000 n 
+0000548288 00000 n 
+0000548354 00000 n 
+0000554717 00000 n 
+0000549972 00000 n 
+0000548530 00000 n 
+0000550098 00000 n 
+0000550162 00000 n 
+0000550228 00000 n 
+0000550293 00000 n 
+0000550359 00000 n 
+0000550425 00000 n 
+0000550489 00000 n 
+0000550553 00000 n 
+0000550619 00000 n 
+0000550683 00000 n 
+0000550749 00000 n 
+0000550814 00000 n 
+0000550880 00000 n 
+0000550946 00000 n 
+0000551010 00000 n 
+0000551074 00000 n 
+0000551140 00000 n 
+0000551204 00000 n 
+0000551270 00000 n 
+0000551335 00000 n 
+0000551401 00000 n 
+0000551467 00000 n 
+0000551531 00000 n 
+0000551595 00000 n 
+0000551661 00000 n 
+0000551725 00000 n 
+0000551791 00000 n 
+0000551856 00000 n 
+0000551922 00000 n 
+0000551988 00000 n 
+0000552052 00000 n 
+0000552116 00000 n 
+0000552182 00000 n 
+0000552246 00000 n 
+0000552312 00000 n 
+0000552377 00000 n 
+0000552443 00000 n 
+0000552509 00000 n 
+0000552573 00000 n 
+0000552637 00000 n 
+0000552703 00000 n 
+0000552767 00000 n 
+0000552833 00000 n 
+0000552898 00000 n 
+0000552964 00000 n 
+0000553030 00000 n 
+0000553094 00000 n 
+0000553158 00000 n 
+0000553224 00000 n 
+0000553288 00000 n 
+0000553354 00000 n 
+0000553419 00000 n 
+0000553485 00000 n 
+0000553551 00000 n 
+0000553615 00000 n 
+0000553679 00000 n 
+0000553745 00000 n 
+0000553809 00000 n 
+0000553875 00000 n 
+0000553940 00000 n 
+0000554006 00000 n 
+0000554072 00000 n 
+0000554136 00000 n 
+0000554200 00000 n 
+0000554266 00000 n 
+0000554330 00000 n 
+0000554396 00000 n 
+0000554461 00000 n 
+0000554526 00000 n 
+0000554591 00000 n 
+0000554654 00000 n 
+0000561445 00000 n 
+0000556402 00000 n 
+0000554816 00000 n 
+0000556528 00000 n 
+0000556592 00000 n 
+0000556658 00000 n 
+0000556722 00000 n 
+0000556788 00000 n 
+0000556853 00000 n 
+0000556919 00000 n 
+0000556985 00000 n 
+0000557049 00000 n 
+0000557113 00000 n 
+0000557179 00000 n 
+0000557243 00000 n 
+0000557309 00000 n 
+0000557374 00000 n 
+0000557440 00000 n 
+0000557506 00000 n 
+0000557570 00000 n 
+0000557634 00000 n 
+0000557700 00000 n 
+0000557764 00000 n 
+0000557830 00000 n 
+0000557895 00000 n 
+0000557961 00000 n 
+0000558027 00000 n 
+0000558091 00000 n 
+0000558155 00000 n 
+0000558221 00000 n 
+0000558285 00000 n 
+0000558351 00000 n 
+0000558416 00000 n 
+0000558482 00000 n 
+0000558548 00000 n 
+0000558612 00000 n 
+0000558676 00000 n 
+0000558741 00000 n 
+0000558805 00000 n 
+0000558869 00000 n 
+0000558933 00000 n 
+0000558999 00000 n 
+0000559063 00000 n 
+0000559127 00000 n 
+0000559192 00000 n 
+0000559257 00000 n 
+0000559321 00000 n 
+0000559386 00000 n 
+0000559451 00000 n 
+0000559515 00000 n 
+0000559579 00000 n 
+0000559643 00000 n 
+0000559707 00000 n 
+0000559772 00000 n 
+0000559837 00000 n 
+0000559901 00000 n 
+0000559966 00000 n 
+0000560031 00000 n 
+0000560095 00000 n 
+0000560160 00000 n 
+0000560225 00000 n 
+0000560289 00000 n 
+0000560353 00000 n 
+0000560417 00000 n 
+0000560481 00000 n 
+0000560546 00000 n 
+0000560611 00000 n 
+0000560675 00000 n 
+0000560740 00000 n 
+0000560805 00000 n 
+0000560868 00000 n 
+0000560933 00000 n 
+0000560998 00000 n 
+0000561062 00000 n 
+0000561126 00000 n 
+0000561190 00000 n 
+0000561254 00000 n 
+0000561318 00000 n 
+0000561382 00000 n 
+0000566839 00000 n 
+0000563033 00000 n 
+0000561544 00000 n 
+0000563159 00000 n 
+0000563223 00000 n 
+0000563288 00000 n 
+0000563353 00000 n 
+0000563417 00000 n 
+0000563482 00000 n 
+0000563547 00000 n 
+0000563611 00000 n 
+0000563676 00000 n 
+0000563869 00000 n 
+0000563933 00000 n 
+0000563999 00000 n 
+0000564063 00000 n 
+0000564126 00000 n 
+0000564192 00000 n 
+0000564255 00000 n 
+0000564319 00000 n 
+0000564382 00000 n 
+0000564448 00000 n 
+0000564512 00000 n 
+0000564576 00000 n 
+0000564640 00000 n 
+0000564704 00000 n 
+0000564770 00000 n 
+0000564836 00000 n 
+0000564900 00000 n 
+0000564964 00000 n 
+0000565029 00000 n 
+0000565094 00000 n 
+0000565159 00000 n 
+0000565225 00000 n 
+0000565291 00000 n 
+0000565355 00000 n 
+0000565419 00000 n 
+0000565484 00000 n 
+0000565548 00000 n 
+0000565612 00000 n 
+0000565678 00000 n 
+0000565742 00000 n 
+0000565808 00000 n 
+0000565873 00000 n 
+0000565938 00000 n 
+0000566002 00000 n 
+0000566066 00000 n 
+0000566132 00000 n 
+0000566198 00000 n 
+0000566261 00000 n 
+0000566324 00000 n 
+0000566390 00000 n 
+0000566454 00000 n 
+0000566520 00000 n 
+0000566585 00000 n 
+0000566650 00000 n 
+0000566715 00000 n 
+0000566777 00000 n 
+0000573019 00000 n 
+0000568401 00000 n 
+0000566951 00000 n 
+0000568527 00000 n 
+0000568591 00000 n 
+0000568657 00000 n 
+0000568721 00000 n 
+0000568787 00000 n 
+0000568852 00000 n 
+0000568918 00000 n 
+0000568984 00000 n 
+0000569048 00000 n 
+0000569112 00000 n 
+0000569178 00000 n 
+0000569242 00000 n 
+0000569308 00000 n 
+0000569373 00000 n 
+0000569439 00000 n 
+0000569505 00000 n 
+0000569569 00000 n 
+0000569633 00000 n 
+0000569699 00000 n 
+0000569763 00000 n 
+0000569829 00000 n 
+0000569894 00000 n 
+0000569960 00000 n 
+0000570026 00000 n 
+0000570090 00000 n 
+0000570154 00000 n 
+0000570220 00000 n 
+0000570284 00000 n 
+0000570350 00000 n 
+0000570415 00000 n 
+0000570481 00000 n 
+0000570547 00000 n 
+0000570611 00000 n 
+0000570675 00000 n 
+0000570741 00000 n 
+0000570805 00000 n 
+0000570871 00000 n 
+0000570936 00000 n 
+0000571002 00000 n 
+0000571068 00000 n 
+0000571132 00000 n 
+0000571196 00000 n 
+0000571262 00000 n 
+0000571326 00000 n 
+0000571392 00000 n 
+0000571457 00000 n 
+0000571523 00000 n 
+0000571589 00000 n 
+0000571653 00000 n 
+0000571717 00000 n 
+0000571783 00000 n 
+0000571847 00000 n 
+0000571913 00000 n 
+0000571978 00000 n 
+0000572044 00000 n 
+0000572110 00000 n 
+0000572174 00000 n 
+0000572238 00000 n 
+0000572304 00000 n 
+0000572368 00000 n 
+0000572434 00000 n 
+0000572499 00000 n 
+0000572565 00000 n 
+0000572631 00000 n 
+0000572695 00000 n 
+0000572759 00000 n 
+0000572825 00000 n 
+0000572889 00000 n 
+0000572955 00000 n 
+0000579297 00000 n 
+0000574634 00000 n 
+0000573118 00000 n 
+0000574760 00000 n 
+0000574824 00000 n 
+0000574890 00000 n 
+0000574956 00000 n 
+0000575020 00000 n 
+0000575084 00000 n 
+0000575150 00000 n 
+0000575214 00000 n 
+0000575280 00000 n 
+0000575345 00000 n 
+0000575411 00000 n 
+0000575477 00000 n 
+0000575541 00000 n 
+0000575605 00000 n 
+0000575671 00000 n 
+0000575735 00000 n 
+0000575801 00000 n 
+0000575866 00000 n 
+0000575932 00000 n 
+0000575998 00000 n 
+0000576062 00000 n 
+0000576126 00000 n 
+0000576192 00000 n 
+0000576256 00000 n 
+0000576322 00000 n 
+0000576387 00000 n 
+0000576453 00000 n 
+0000576519 00000 n 
+0000576583 00000 n 
+0000576647 00000 n 
+0000576713 00000 n 
+0000576777 00000 n 
+0000576843 00000 n 
+0000576908 00000 n 
+0000576974 00000 n 
+0000577040 00000 n 
+0000577104 00000 n 
+0000577168 00000 n 
+0000577233 00000 n 
+0000577297 00000 n 
+0000577361 00000 n 
+0000577425 00000 n 
+0000577491 00000 n 
+0000577555 00000 n 
+0000577619 00000 n 
+0000577684 00000 n 
+0000577749 00000 n 
+0000577813 00000 n 
+0000577877 00000 n 
+0000577941 00000 n 
+0000578005 00000 n 
+0000578069 00000 n 
+0000578135 00000 n 
+0000578200 00000 n 
+0000578265 00000 n 
+0000578330 00000 n 
+0000578394 00000 n 
+0000578458 00000 n 
+0000578523 00000 n 
+0000578588 00000 n 
+0000578653 00000 n 
+0000578718 00000 n 
+0000578782 00000 n 
+0000578847 00000 n 
+0000578912 00000 n 
+0000578976 00000 n 
+0000579040 00000 n 
+0000579104 00000 n 
+0000579168 00000 n 
+0000579232 00000 n 
+0000934927 00000 n 
+0000585134 00000 n 
+0000581064 00000 n 
+0000579396 00000 n 
+0000581190 00000 n 
+0000581254 00000 n 
+0000581319 00000 n 
+0000581384 00000 n 
+0000581449 00000 n 
+0000581513 00000 n 
+0000581578 00000 n 
+0000581643 00000 n 
+0000581707 00000 n 
+0000581772 00000 n 
+0000581837 00000 n 
+0000581901 00000 n 
+0000581966 00000 n 
+0000582031 00000 n 
+0000582095 00000 n 
+0000582160 00000 n 
+0000582225 00000 n 
+0000582289 00000 n 
+0000582353 00000 n 
+0000582419 00000 n 
+0000582484 00000 n 
+0000582549 00000 n 
+0000582614 00000 n 
+0000582678 00000 n 
+0000582742 00000 n 
+0000582808 00000 n 
+0000582873 00000 n 
+0000582938 00000 n 
+0000583003 00000 n 
+0000583067 00000 n 
+0000583132 00000 n 
+0000583197 00000 n 
+0000583261 00000 n 
+0000583326 00000 n 
+0000583391 00000 n 
+0000583455 00000 n 
+0000583520 00000 n 
+0000583585 00000 n 
+0000583649 00000 n 
+0000583714 00000 n 
+0000583779 00000 n 
+0000583843 00000 n 
+0000583908 00000 n 
+0000583973 00000 n 
+0000584037 00000 n 
+0000584102 00000 n 
+0000584167 00000 n 
+0000584231 00000 n 
+0000584295 00000 n 
+0000584361 00000 n 
+0000584426 00000 n 
+0000584491 00000 n 
+0000584684 00000 n 
+0000584748 00000 n 
+0000584814 00000 n 
+0000584878 00000 n 
+0000584942 00000 n 
+0000585008 00000 n 
+0000585072 00000 n 
+0000591375 00000 n 
+0000586636 00000 n 
+0000585246 00000 n 
+0000586762 00000 n 
+0000586826 00000 n 
+0000586890 00000 n 
+0000586956 00000 n 
+0000587020 00000 n 
+0000587084 00000 n 
+0000587148 00000 n 
+0000587212 00000 n 
+0000587278 00000 n 
+0000587344 00000 n 
+0000587408 00000 n 
+0000587472 00000 n 
+0000587537 00000 n 
+0000587602 00000 n 
+0000587667 00000 n 
+0000587733 00000 n 
+0000587799 00000 n 
+0000587863 00000 n 
+0000587927 00000 n 
+0000587992 00000 n 
+0000588056 00000 n 
+0000588121 00000 n 
+0000588185 00000 n 
+0000588249 00000 n 
+0000588315 00000 n 
+0000588381 00000 n 
+0000588445 00000 n 
+0000588509 00000 n 
+0000588575 00000 n 
+0000588639 00000 n 
+0000588705 00000 n 
+0000588770 00000 n 
+0000588836 00000 n 
+0000588902 00000 n 
+0000588966 00000 n 
+0000589030 00000 n 
+0000589096 00000 n 
+0000589160 00000 n 
+0000589226 00000 n 
+0000589291 00000 n 
+0000589357 00000 n 
+0000589423 00000 n 
+0000589487 00000 n 
+0000589551 00000 n 
+0000589617 00000 n 
+0000589681 00000 n 
+0000589747 00000 n 
+0000589812 00000 n 
+0000589878 00000 n 
+0000589944 00000 n 
+0000590008 00000 n 
+0000590072 00000 n 
+0000590138 00000 n 
+0000590202 00000 n 
+0000590268 00000 n 
+0000590333 00000 n 
+0000590399 00000 n 
+0000590465 00000 n 
+0000590529 00000 n 
+0000590593 00000 n 
+0000590659 00000 n 
+0000590723 00000 n 
+0000590789 00000 n 
+0000590854 00000 n 
+0000590920 00000 n 
+0000590986 00000 n 
+0000591050 00000 n 
+0000591114 00000 n 
+0000591180 00000 n 
+0000591244 00000 n 
+0000591310 00000 n 
+0000597924 00000 n 
+0000592949 00000 n 
+0000591474 00000 n 
+0000593075 00000 n 
+0000593202 00000 n 
+0000593268 00000 n 
+0000593334 00000 n 
+0000593398 00000 n 
+0000593462 00000 n 
+0000593528 00000 n 
+0000593592 00000 n 
+0000593658 00000 n 
+0000593723 00000 n 
+0000593789 00000 n 
+0000593855 00000 n 
+0000593919 00000 n 
+0000593983 00000 n 
+0000594049 00000 n 
+0000594113 00000 n 
+0000594179 00000 n 
+0000594244 00000 n 
+0000594310 00000 n 
+0000594376 00000 n 
+0000594440 00000 n 
+0000594504 00000 n 
+0000594570 00000 n 
+0000594634 00000 n 
+0000594700 00000 n 
+0000594765 00000 n 
+0000594831 00000 n 
+0000594897 00000 n 
+0000594961 00000 n 
+0000595025 00000 n 
+0000595090 00000 n 
+0000595154 00000 n 
+0000595218 00000 n 
+0000595282 00000 n 
+0000595348 00000 n 
+0000595412 00000 n 
+0000595476 00000 n 
+0000595541 00000 n 
+0000595606 00000 n 
+0000595668 00000 n 
+0000595732 00000 n 
+0000595796 00000 n 
+0000595860 00000 n 
+0000595925 00000 n 
+0000595990 00000 n 
+0000596054 00000 n 
+0000596118 00000 n 
+0000596184 00000 n 
+0000596249 00000 n 
+0000596313 00000 n 
+0000596377 00000 n 
+0000596441 00000 n 
+0000596506 00000 n 
+0000596571 00000 n 
+0000596635 00000 n 
+0000596700 00000 n 
+0000596765 00000 n 
+0000596829 00000 n 
+0000596894 00000 n 
+0000596959 00000 n 
+0000597023 00000 n 
+0000597087 00000 n 
+0000597151 00000 n 
+0000597215 00000 n 
+0000597279 00000 n 
+0000597345 00000 n 
+0000597410 00000 n 
+0000597475 00000 n 
+0000597540 00000 n 
+0000597604 00000 n 
+0000597668 00000 n 
+0000597732 00000 n 
+0000597796 00000 n 
+0000597860 00000 n 
+0000602577 00000 n 
+0000599230 00000 n 
+0000598023 00000 n 
+0000599356 00000 n 
+0000599485 00000 n 
+0000599549 00000 n 
+0000599615 00000 n 
+0000599679 00000 n 
+0000599743 00000 n 
+0000599809 00000 n 
+0000599873 00000 n 
+0000599937 00000 n 
+0000600001 00000 n 
+0000600067 00000 n 
+0000600129 00000 n 
+0000600193 00000 n 
+0000600256 00000 n 
+0000600320 00000 n 
+0000600386 00000 n 
+0000600452 00000 n 
+0000600516 00000 n 
+0000600580 00000 n 
+0000600645 00000 n 
+0000600710 00000 n 
+0000600774 00000 n 
+0000600838 00000 n 
+0000600902 00000 n 
+0000600968 00000 n 
+0000601031 00000 n 
+0000601094 00000 n 
+0000601159 00000 n 
+0000601224 00000 n 
+0000601287 00000 n 
+0000601350 00000 n 
+0000601415 00000 n 
+0000601480 00000 n 
+0000601545 00000 n 
+0000601610 00000 n 
+0000601674 00000 n 
+0000601738 00000 n 
+0000601804 00000 n 
+0000601868 00000 n 
+0000601933 00000 n 
+0000601998 00000 n 
+0000602062 00000 n 
+0000602126 00000 n 
+0000602192 00000 n 
+0000602257 00000 n 
+0000602320 00000 n 
+0000602383 00000 n 
+0000602447 00000 n 
+0000602511 00000 n 
+0000606440 00000 n 
+0000603667 00000 n 
+0000602689 00000 n 
+0000603793 00000 n 
+0000603857 00000 n 
+0000603922 00000 n 
+0000603987 00000 n 
+0000604052 00000 n 
+0000604116 00000 n 
+0000604180 00000 n 
+0000604246 00000 n 
+0000604311 00000 n 
+0000604376 00000 n 
+0000604569 00000 n 
+0000604633 00000 n 
+0000604699 00000 n 
+0000604763 00000 n 
+0000604827 00000 n 
+0000604892 00000 n 
+0000604956 00000 n 
+0000605020 00000 n 
+0000605086 00000 n 
+0000605150 00000 n 
+0000605213 00000 n 
+0000605277 00000 n 
+0000605341 00000 n 
+0000605407 00000 n 
+0000605473 00000 n 
+0000605537 00000 n 
+0000605601 00000 n 
+0000605666 00000 n 
+0000605731 00000 n 
+0000605795 00000 n 
+0000605859 00000 n 
+0000605923 00000 n 
+0000606116 00000 n 
+0000606180 00000 n 
+0000606246 00000 n 
+0000606310 00000 n 
+0000606374 00000 n 
+0000612505 00000 n 
+0000608034 00000 n 
+0000606552 00000 n 
+0000608160 00000 n 
+0000608224 00000 n 
+0000608288 00000 n 
+0000608352 00000 n 
+0000608418 00000 n 
+0000608482 00000 n 
+0000608546 00000 n 
+0000608610 00000 n 
+0000608674 00000 n 
+0000608740 00000 n 
+0000608806 00000 n 
+0000608870 00000 n 
+0000608934 00000 n 
+0000608999 00000 n 
+0000609064 00000 n 
+0000609129 00000 n 
+0000609195 00000 n 
+0000609261 00000 n 
+0000609325 00000 n 
+0000609389 00000 n 
+0000609454 00000 n 
+0000609518 00000 n 
+0000609582 00000 n 
+0000609648 00000 n 
+0000609712 00000 n 
+0000609778 00000 n 
+0000609843 00000 n 
+0000609908 00000 n 
+0000609972 00000 n 
+0000610036 00000 n 
+0000610102 00000 n 
+0000610168 00000 n 
+0000610232 00000 n 
+0000610296 00000 n 
+0000610362 00000 n 
+0000610425 00000 n 
+0000610491 00000 n 
+0000610556 00000 n 
+0000610622 00000 n 
+0000610688 00000 n 
+0000610752 00000 n 
+0000610816 00000 n 
+0000610882 00000 n 
+0000610944 00000 n 
+0000611010 00000 n 
+0000611075 00000 n 
+0000611141 00000 n 
+0000611207 00000 n 
+0000611271 00000 n 
+0000611335 00000 n 
+0000611401 00000 n 
+0000611465 00000 n 
+0000611531 00000 n 
+0000611596 00000 n 
+0000611662 00000 n 
+0000611728 00000 n 
+0000611792 00000 n 
+0000611856 00000 n 
+0000611922 00000 n 
+0000611985 00000 n 
+0000612051 00000 n 
+0000612116 00000 n 
+0000612182 00000 n 
+0000612248 00000 n 
+0000612312 00000 n 
+0000612376 00000 n 
+0000612442 00000 n 
+0000935052 00000 n 
+0000617832 00000 n 
+0000613835 00000 n 
+0000612604 00000 n 
+0000613961 00000 n 
+0000614025 00000 n 
+0000614089 00000 n 
+0000614155 00000 n 
+0000614220 00000 n 
+0000614286 00000 n 
+0000614352 00000 n 
+0000614416 00000 n 
+0000614480 00000 n 
+0000614545 00000 n 
+0000614609 00000 n 
+0000614673 00000 n 
+0000614737 00000 n 
+0000614803 00000 n 
+0000614867 00000 n 
+0000614931 00000 n 
+0000614996 00000 n 
+0000615061 00000 n 
+0000615125 00000 n 
+0000615189 00000 n 
+0000615255 00000 n 
+0000615320 00000 n 
+0000615384 00000 n 
+0000615448 00000 n 
+0000615512 00000 n 
+0000615576 00000 n 
+0000615642 00000 n 
+0000615707 00000 n 
+0000615772 00000 n 
+0000615837 00000 n 
+0000615900 00000 n 
+0000615963 00000 n 
+0000616028 00000 n 
+0000616093 00000 n 
+0000616158 00000 n 
+0000616223 00000 n 
+0000616287 00000 n 
+0000616352 00000 n 
+0000616417 00000 n 
+0000616479 00000 n 
+0000616543 00000 n 
+0000616607 00000 n 
+0000616671 00000 n 
+0000616735 00000 n 
+0000616801 00000 n 
+0000616866 00000 n 
+0000616931 00000 n 
+0000616996 00000 n 
+0000617060 00000 n 
+0000617124 00000 n 
+0000617188 00000 n 
+0000617252 00000 n 
+0000617317 00000 n 
+0000617382 00000 n 
+0000617446 00000 n 
+0000617510 00000 n 
+0000617576 00000 n 
+0000617641 00000 n 
+0000617705 00000 n 
+0000623072 00000 n 
+0000619388 00000 n 
+0000617931 00000 n 
+0000619514 00000 n 
+0000619643 00000 n 
+0000619707 00000 n 
+0000619772 00000 n 
+0000619836 00000 n 
+0000619900 00000 n 
+0000619964 00000 n 
+0000620030 00000 n 
+0000620094 00000 n 
+0000620158 00000 n 
+0000620222 00000 n 
+0000620286 00000 n 
+0000620352 00000 n 
+0000620418 00000 n 
+0000620482 00000 n 
+0000620546 00000 n 
+0000620611 00000 n 
+0000620676 00000 n 
+0000620741 00000 n 
+0000620806 00000 n 
+0000620871 00000 n 
+0000620935 00000 n 
+0000620999 00000 n 
+0000621064 00000 n 
+0000621128 00000 n 
+0000621192 00000 n 
+0000621258 00000 n 
+0000621322 00000 n 
+0000621388 00000 n 
+0000621452 00000 n 
+0000621517 00000 n 
+0000621581 00000 n 
+0000621645 00000 n 
+0000621711 00000 n 
+0000621777 00000 n 
+0000621841 00000 n 
+0000621905 00000 n 
+0000621971 00000 n 
+0000622035 00000 n 
+0000622099 00000 n 
+0000622164 00000 n 
+0000622230 00000 n 
+0000622296 00000 n 
+0000622360 00000 n 
+0000622424 00000 n 
+0000622490 00000 n 
+0000622554 00000 n 
+0000622619 00000 n 
+0000622684 00000 n 
+0000622750 00000 n 
+0000622816 00000 n 
+0000622880 00000 n 
+0000622944 00000 n 
+0000623009 00000 n 
+0000629348 00000 n 
+0000624603 00000 n 
+0000623184 00000 n 
+0000624729 00000 n 
+0000624793 00000 n 
+0000624859 00000 n 
+0000624924 00000 n 
+0000624990 00000 n 
+0000625056 00000 n 
+0000625120 00000 n 
+0000625184 00000 n 
+0000625250 00000 n 
+0000625314 00000 n 
+0000625380 00000 n 
+0000625445 00000 n 
+0000625511 00000 n 
+0000625577 00000 n 
+0000625641 00000 n 
+0000625705 00000 n 
+0000625771 00000 n 
+0000625835 00000 n 
+0000625901 00000 n 
+0000625966 00000 n 
+0000626032 00000 n 
+0000626098 00000 n 
+0000626162 00000 n 
+0000626226 00000 n 
+0000626292 00000 n 
+0000626356 00000 n 
+0000626422 00000 n 
+0000626487 00000 n 
+0000626553 00000 n 
+0000626619 00000 n 
+0000626683 00000 n 
+0000626747 00000 n 
+0000626813 00000 n 
+0000626877 00000 n 
+0000626943 00000 n 
+0000627008 00000 n 
+0000627074 00000 n 
+0000627140 00000 n 
+0000627204 00000 n 
+0000627268 00000 n 
+0000627334 00000 n 
+0000627398 00000 n 
+0000627464 00000 n 
+0000627529 00000 n 
+0000627595 00000 n 
+0000627661 00000 n 
+0000627725 00000 n 
+0000627789 00000 n 
+0000627855 00000 n 
+0000627919 00000 n 
+0000627985 00000 n 
+0000628050 00000 n 
+0000628116 00000 n 
+0000628182 00000 n 
+0000628246 00000 n 
+0000628310 00000 n 
+0000628376 00000 n 
+0000628440 00000 n 
+0000628506 00000 n 
+0000628571 00000 n 
+0000628637 00000 n 
+0000628703 00000 n 
+0000628767 00000 n 
+0000628831 00000 n 
+0000628897 00000 n 
+0000628961 00000 n 
+0000629027 00000 n 
+0000629092 00000 n 
+0000629157 00000 n 
+0000629222 00000 n 
+0000629285 00000 n 
+0000635524 00000 n 
+0000630925 00000 n 
+0000629447 00000 n 
+0000631051 00000 n 
+0000631115 00000 n 
+0000631181 00000 n 
+0000631245 00000 n 
+0000631311 00000 n 
+0000631376 00000 n 
+0000631442 00000 n 
+0000631508 00000 n 
+0000631572 00000 n 
+0000631636 00000 n 
+0000631702 00000 n 
+0000631766 00000 n 
+0000631832 00000 n 
+0000631897 00000 n 
+0000631963 00000 n 
+0000632029 00000 n 
+0000632093 00000 n 
+0000632157 00000 n 
+0000632223 00000 n 
+0000632287 00000 n 
+0000632353 00000 n 
+0000632418 00000 n 
+0000632484 00000 n 
+0000632550 00000 n 
+0000632614 00000 n 
+0000632678 00000 n 
+0000632744 00000 n 
+0000632808 00000 n 
+0000632874 00000 n 
+0000632939 00000 n 
+0000633005 00000 n 
+0000633071 00000 n 
+0000633135 00000 n 
+0000633199 00000 n 
+0000633265 00000 n 
+0000633329 00000 n 
+0000633395 00000 n 
+0000633460 00000 n 
+0000633526 00000 n 
+0000633592 00000 n 
+0000633656 00000 n 
+0000633720 00000 n 
+0000633785 00000 n 
+0000633849 00000 n 
+0000633913 00000 n 
+0000633977 00000 n 
+0000634043 00000 n 
+0000634107 00000 n 
+0000634171 00000 n 
+0000634236 00000 n 
+0000634301 00000 n 
+0000634365 00000 n 
+0000634430 00000 n 
+0000634495 00000 n 
+0000634559 00000 n 
+0000634623 00000 n 
+0000634687 00000 n 
+0000634751 00000 n 
+0000634816 00000 n 
+0000634881 00000 n 
+0000634945 00000 n 
+0000635010 00000 n 
+0000635075 00000 n 
+0000635139 00000 n 
+0000635203 00000 n 
+0000635269 00000 n 
+0000635333 00000 n 
+0000635397 00000 n 
+0000635461 00000 n 
+0000641092 00000 n 
+0000636958 00000 n 
+0000635623 00000 n 
+0000637084 00000 n 
+0000637148 00000 n 
+0000637213 00000 n 
+0000637278 00000 n 
+0000637342 00000 n 
+0000637407 00000 n 
+0000637472 00000 n 
+0000637536 00000 n 
+0000637600 00000 n 
+0000637666 00000 n 
+0000637731 00000 n 
+0000637796 00000 n 
+0000637861 00000 n 
+0000637925 00000 n 
+0000637990 00000 n 
+0000638055 00000 n 
+0000638119 00000 n 
+0000638183 00000 n 
+0000638249 00000 n 
+0000638314 00000 n 
+0000638379 00000 n 
+0000638444 00000 n 
+0000638508 00000 n 
+0000638573 00000 n 
+0000638638 00000 n 
+0000638702 00000 n 
+0000638767 00000 n 
+0000638832 00000 n 
+0000638896 00000 n 
+0000638960 00000 n 
+0000639026 00000 n 
+0000639091 00000 n 
+0000639156 00000 n 
+0000639221 00000 n 
+0000639285 00000 n 
+0000639350 00000 n 
+0000639415 00000 n 
+0000639479 00000 n 
+0000639544 00000 n 
+0000639609 00000 n 
+0000639673 00000 n 
+0000639737 00000 n 
+0000639803 00000 n 
+0000639868 00000 n 
+0000639933 00000 n 
+0000639998 00000 n 
+0000640062 00000 n 
+0000640127 00000 n 
+0000640319 00000 n 
+0000640383 00000 n 
+0000640449 00000 n 
+0000640513 00000 n 
+0000640577 00000 n 
+0000640643 00000 n 
+0000640707 00000 n 
+0000640771 00000 n 
+0000640836 00000 n 
+0000640900 00000 n 
+0000640964 00000 n 
+0000641028 00000 n 
+0000645373 00000 n 
+0000642214 00000 n 
+0000641204 00000 n 
+0000642340 00000 n 
+0000642404 00000 n 
+0000642470 00000 n 
+0000642536 00000 n 
+0000642600 00000 n 
+0000642664 00000 n 
+0000642729 00000 n 
+0000642794 00000 n 
+0000642858 00000 n 
+0000642922 00000 n 
+0000642986 00000 n 
+0000643052 00000 n 
+0000643116 00000 n 
+0000643180 00000 n 
+0000643245 00000 n 
+0000643310 00000 n 
+0000643374 00000 n 
+0000643439 00000 n 
+0000643632 00000 n 
+0000643696 00000 n 
+0000643762 00000 n 
+0000643825 00000 n 
+0000643889 00000 n 
+0000643955 00000 n 
+0000644019 00000 n 
+0000644083 00000 n 
+0000644149 00000 n 
+0000644212 00000 n 
+0000644276 00000 n 
+0000644339 00000 n 
+0000644403 00000 n 
+0000644469 00000 n 
+0000644535 00000 n 
+0000644599 00000 n 
+0000644663 00000 n 
+0000644728 00000 n 
+0000644793 00000 n 
+0000644857 00000 n 
+0000644921 00000 n 
+0000644985 00000 n 
+0000645179 00000 n 
+0000645243 00000 n 
+0000645309 00000 n 
+0000935177 00000 n 
+0000651540 00000 n 
+0000647065 00000 n 
+0000645485 00000 n 
+0000647191 00000 n 
+0000647255 00000 n 
+0000647319 00000 n 
+0000647385 00000 n 
+0000647449 00000 n 
+0000647513 00000 n 
+0000647579 00000 n 
+0000647643 00000 n 
+0000647707 00000 n 
+0000647771 00000 n 
+0000647834 00000 n 
+0000647900 00000 n 
+0000647966 00000 n 
+0000648030 00000 n 
+0000648094 00000 n 
+0000648159 00000 n 
+0000648224 00000 n 
+0000648289 00000 n 
+0000648355 00000 n 
+0000648421 00000 n 
+0000648485 00000 n 
+0000648549 00000 n 
+0000648614 00000 n 
+0000648678 00000 n 
+0000648742 00000 n 
+0000648808 00000 n 
+0000648872 00000 n 
+0000648938 00000 n 
+0000649003 00000 n 
+0000649068 00000 n 
+0000649132 00000 n 
+0000649196 00000 n 
+0000649262 00000 n 
+0000649328 00000 n 
+0000649392 00000 n 
+0000649456 00000 n 
+0000649522 00000 n 
+0000649586 00000 n 
+0000649652 00000 n 
+0000649717 00000 n 
+0000649783 00000 n 
+0000649849 00000 n 
+0000649913 00000 n 
+0000649977 00000 n 
+0000650043 00000 n 
+0000650107 00000 n 
+0000650173 00000 n 
+0000650238 00000 n 
+0000650304 00000 n 
+0000650370 00000 n 
+0000650434 00000 n 
+0000650498 00000 n 
+0000650564 00000 n 
+0000650628 00000 n 
+0000650694 00000 n 
+0000650759 00000 n 
+0000650825 00000 n 
+0000650891 00000 n 
+0000650955 00000 n 
+0000651019 00000 n 
+0000651085 00000 n 
+0000651149 00000 n 
+0000651215 00000 n 
+0000651280 00000 n 
+0000651346 00000 n 
+0000651412 00000 n 
+0000651476 00000 n 
+0000657750 00000 n 
+0000653132 00000 n 
+0000651639 00000 n 
+0000653258 00000 n 
+0000653322 00000 n 
+0000653388 00000 n 
+0000653452 00000 n 
+0000653518 00000 n 
+0000653583 00000 n 
+0000653649 00000 n 
+0000653715 00000 n 
+0000653779 00000 n 
+0000653843 00000 n 
+0000653909 00000 n 
+0000653973 00000 n 
+0000654039 00000 n 
+0000654104 00000 n 
+0000654170 00000 n 
+0000654236 00000 n 
+0000654300 00000 n 
+0000654364 00000 n 
+0000654430 00000 n 
+0000654494 00000 n 
+0000654560 00000 n 
+0000654625 00000 n 
+0000654691 00000 n 
+0000654757 00000 n 
+0000654821 00000 n 
+0000654885 00000 n 
+0000654951 00000 n 
+0000655015 00000 n 
+0000655081 00000 n 
+0000655146 00000 n 
+0000655212 00000 n 
+0000655278 00000 n 
+0000655342 00000 n 
+0000655406 00000 n 
+0000655472 00000 n 
+0000655536 00000 n 
+0000655602 00000 n 
+0000655667 00000 n 
+0000655733 00000 n 
+0000655799 00000 n 
+0000655863 00000 n 
+0000655927 00000 n 
+0000655993 00000 n 
+0000656057 00000 n 
+0000656123 00000 n 
+0000656188 00000 n 
+0000656254 00000 n 
+0000656320 00000 n 
+0000656384 00000 n 
+0000656448 00000 n 
+0000656514 00000 n 
+0000656578 00000 n 
+0000656644 00000 n 
+0000656709 00000 n 
+0000656775 00000 n 
+0000656841 00000 n 
+0000656905 00000 n 
+0000656969 00000 n 
+0000657035 00000 n 
+0000657099 00000 n 
+0000657165 00000 n 
+0000657230 00000 n 
+0000657296 00000 n 
+0000657362 00000 n 
+0000657426 00000 n 
+0000657490 00000 n 
+0000657556 00000 n 
+0000657620 00000 n 
+0000657686 00000 n 
+0000664348 00000 n 
+0000659440 00000 n 
+0000657849 00000 n 
+0000659566 00000 n 
+0000659630 00000 n 
+0000659696 00000 n 
+0000659762 00000 n 
+0000659826 00000 n 
+0000659890 00000 n 
+0000659956 00000 n 
+0000660020 00000 n 
+0000660086 00000 n 
+0000660151 00000 n 
+0000660217 00000 n 
+0000660283 00000 n 
+0000660347 00000 n 
+0000660411 00000 n 
+0000660477 00000 n 
+0000660541 00000 n 
+0000660607 00000 n 
+0000660672 00000 n 
+0000660738 00000 n 
+0000660804 00000 n 
+0000660868 00000 n 
+0000660932 00000 n 
+0000660997 00000 n 
+0000661061 00000 n 
+0000661125 00000 n 
+0000661189 00000 n 
+0000661255 00000 n 
+0000661319 00000 n 
+0000661383 00000 n 
+0000661448 00000 n 
+0000661513 00000 n 
+0000661576 00000 n 
+0000661639 00000 n 
+0000661704 00000 n 
+0000661769 00000 n 
+0000661834 00000 n 
+0000661899 00000 n 
+0000661963 00000 n 
+0000662027 00000 n 
+0000662093 00000 n 
+0000662157 00000 n 
+0000662222 00000 n 
+0000662287 00000 n 
+0000662351 00000 n 
+0000662416 00000 n 
+0000662481 00000 n 
+0000662545 00000 n 
+0000662610 00000 n 
+0000662675 00000 n 
+0000662739 00000 n 
+0000662803 00000 n 
+0000662868 00000 n 
+0000662933 00000 n 
+0000662998 00000 n 
+0000663063 00000 n 
+0000663127 00000 n 
+0000663192 00000 n 
+0000663257 00000 n 
+0000663321 00000 n 
+0000663385 00000 n 
+0000663449 00000 n 
+0000663513 00000 n 
+0000663577 00000 n 
+0000663643 00000 n 
+0000663708 00000 n 
+0000663773 00000 n 
+0000663838 00000 n 
+0000663902 00000 n 
+0000663966 00000 n 
+0000664030 00000 n 
+0000664094 00000 n 
+0000664158 00000 n 
+0000664222 00000 n 
+0000664285 00000 n 
+0000669834 00000 n 
+0000666156 00000 n 
+0000664447 00000 n 
+0000666282 00000 n 
+0000666346 00000 n 
+0000666412 00000 n 
+0000666477 00000 n 
+0000666542 00000 n 
+0000666607 00000 n 
+0000666671 00000 n 
+0000666736 00000 n 
+0000666801 00000 n 
+0000666865 00000 n 
+0000666930 00000 n 
+0000666995 00000 n 
+0000667059 00000 n 
+0000667124 00000 n 
+0000667189 00000 n 
+0000667253 00000 n 
+0000667318 00000 n 
+0000667383 00000 n 
+0000667447 00000 n 
+0000667512 00000 n 
+0000667577 00000 n 
+0000667641 00000 n 
+0000667706 00000 n 
+0000667771 00000 n 
+0000667835 00000 n 
+0000667900 00000 n 
+0000667965 00000 n 
+0000668029 00000 n 
+0000668094 00000 n 
+0000668287 00000 n 
+0000668351 00000 n 
+0000668417 00000 n 
+0000668481 00000 n 
+0000668544 00000 n 
+0000668610 00000 n 
+0000668673 00000 n 
+0000668737 00000 n 
+0000668801 00000 n 
+0000668867 00000 n 
+0000668931 00000 n 
+0000668995 00000 n 
+0000669059 00000 n 
+0000669123 00000 n 
+0000669188 00000 n 
+0000669253 00000 n 
+0000669317 00000 n 
+0000669381 00000 n 
+0000669446 00000 n 
+0000669511 00000 n 
+0000669576 00000 n 
+0000669642 00000 n 
+0000669708 00000 n 
+0000669771 00000 n 
+0000675983 00000 n 
+0000671368 00000 n 
+0000669946 00000 n 
+0000671494 00000 n 
+0000671558 00000 n 
+0000671623 00000 n 
+0000671687 00000 n 
+0000671752 00000 n 
+0000671816 00000 n 
+0000671880 00000 n 
+0000671946 00000 n 
+0000672012 00000 n 
+0000672076 00000 n 
+0000672140 00000 n 
+0000672206 00000 n 
+0000672270 00000 n 
+0000672336 00000 n 
+0000672401 00000 n 
+0000672467 00000 n 
+0000672533 00000 n 
+0000672597 00000 n 
+0000672661 00000 n 
+0000672727 00000 n 
+0000672791 00000 n 
+0000672857 00000 n 
+0000672922 00000 n 
+0000672988 00000 n 
+0000673054 00000 n 
+0000673118 00000 n 
+0000673182 00000 n 
+0000673248 00000 n 
+0000673312 00000 n 
+0000673378 00000 n 
+0000673443 00000 n 
+0000673509 00000 n 
+0000673575 00000 n 
+0000673639 00000 n 
+0000673703 00000 n 
+0000673769 00000 n 
+0000673833 00000 n 
+0000673899 00000 n 
+0000673964 00000 n 
+0000674030 00000 n 
+0000674096 00000 n 
+0000674160 00000 n 
+0000674224 00000 n 
+0000674290 00000 n 
+0000674354 00000 n 
+0000674420 00000 n 
+0000674485 00000 n 
+0000674551 00000 n 
+0000674617 00000 n 
+0000674681 00000 n 
+0000674745 00000 n 
+0000674811 00000 n 
+0000674875 00000 n 
+0000674941 00000 n 
+0000675006 00000 n 
+0000675072 00000 n 
+0000675138 00000 n 
+0000675202 00000 n 
+0000675266 00000 n 
+0000675332 00000 n 
+0000675396 00000 n 
+0000675462 00000 n 
+0000675527 00000 n 
+0000675593 00000 n 
+0000675659 00000 n 
+0000675723 00000 n 
+0000675787 00000 n 
+0000675853 00000 n 
+0000675917 00000 n 
+0000681340 00000 n 
+0000677532 00000 n 
+0000676082 00000 n 
+0000677658 00000 n 
+0000677722 00000 n 
+0000677787 00000 n 
+0000677853 00000 n 
+0000677919 00000 n 
+0000677983 00000 n 
+0000678047 00000 n 
+0000678112 00000 n 
+0000678176 00000 n 
+0000678240 00000 n 
+0000678304 00000 n 
+0000678370 00000 n 
+0000678434 00000 n 
+0000678498 00000 n 
+0000678563 00000 n 
+0000678628 00000 n 
+0000678692 00000 n 
+0000678757 00000 n 
+0000678822 00000 n 
+0000678886 00000 n 
+0000678951 00000 n 
+0000679016 00000 n 
+0000679080 00000 n 
+0000679145 00000 n 
+0000679210 00000 n 
+0000679274 00000 n 
+0000679339 00000 n 
+0000679404 00000 n 
+0000679468 00000 n 
+0000679533 00000 n 
+0000679598 00000 n 
+0000679662 00000 n 
+0000679726 00000 n 
+0000679790 00000 n 
+0000679854 00000 n 
+0000679919 00000 n 
+0000680112 00000 n 
+0000680176 00000 n 
+0000680242 00000 n 
+0000680306 00000 n 
+0000680370 00000 n 
+0000680436 00000 n 
+0000680500 00000 n 
+0000680564 00000 n 
+0000680630 00000 n 
+0000680694 00000 n 
+0000680757 00000 n 
+0000680821 00000 n 
+0000680885 00000 n 
+0000680951 00000 n 
+0000681017 00000 n 
+0000681081 00000 n 
+0000681145 00000 n 
+0000681210 00000 n 
+0000681275 00000 n 
+0000935302 00000 n 
+0000687479 00000 n 
+0000682878 00000 n 
+0000681452 00000 n 
+0000683004 00000 n 
+0000683068 00000 n 
+0000683134 00000 n 
+0000683200 00000 n 
+0000683264 00000 n 
+0000683328 00000 n 
+0000683393 00000 n 
+0000683457 00000 n 
+0000683521 00000 n 
+0000683587 00000 n 
+0000683651 00000 n 
+0000683717 00000 n 
+0000683782 00000 n 
+0000683847 00000 n 
+0000683911 00000 n 
+0000683975 00000 n 
+0000684041 00000 n 
+0000684107 00000 n 
+0000684171 00000 n 
+0000684235 00000 n 
+0000684301 00000 n 
+0000684365 00000 n 
+0000684431 00000 n 
+0000684496 00000 n 
+0000684562 00000 n 
+0000684628 00000 n 
+0000684692 00000 n 
+0000684756 00000 n 
+0000684822 00000 n 
+0000684886 00000 n 
+0000684952 00000 n 
+0000685017 00000 n 
+0000685083 00000 n 
+0000685149 00000 n 
+0000685213 00000 n 
+0000685277 00000 n 
+0000685343 00000 n 
+0000685407 00000 n 
+0000685473 00000 n 
+0000685538 00000 n 
+0000685604 00000 n 
+0000685670 00000 n 
+0000685734 00000 n 
+0000685798 00000 n 
+0000685864 00000 n 
+0000685928 00000 n 
+0000685994 00000 n 
+0000686059 00000 n 
+0000686125 00000 n 
+0000686191 00000 n 
+0000686255 00000 n 
+0000686319 00000 n 
+0000686384 00000 n 
+0000686448 00000 n 
+0000686512 00000 n 
+0000686576 00000 n 
+0000686641 00000 n 
+0000686705 00000 n 
+0000686769 00000 n 
+0000686834 00000 n 
+0000686899 00000 n 
+0000686963 00000 n 
+0000687028 00000 n 
+0000687093 00000 n 
+0000687157 00000 n 
+0000687222 00000 n 
+0000687287 00000 n 
+0000687351 00000 n 
+0000687415 00000 n 
+0000691151 00000 n 
+0000688644 00000 n 
+0000687578 00000 n 
+0000688770 00000 n 
+0000688962 00000 n 
+0000689026 00000 n 
+0000689091 00000 n 
+0000689155 00000 n 
+0000689219 00000 n 
+0000689285 00000 n 
+0000689349 00000 n 
+0000689411 00000 n 
+0000689477 00000 n 
+0000689541 00000 n 
+0000689605 00000 n 
+0000689669 00000 n 
+0000689733 00000 n 
+0000689799 00000 n 
+0000689865 00000 n 
+0000689929 00000 n 
+0000689993 00000 n 
+0000690058 00000 n 
+0000690123 00000 n 
+0000690187 00000 n 
+0000690251 00000 n 
+0000690315 00000 n 
+0000690506 00000 n 
+0000690569 00000 n 
+0000690635 00000 n 
+0000690699 00000 n 
+0000690763 00000 n 
+0000690829 00000 n 
+0000690893 00000 n 
+0000690957 00000 n 
+0000691021 00000 n 
+0000691087 00000 n 
+0000697603 00000 n 
+0000692744 00000 n 
+0000691263 00000 n 
+0000692870 00000 n 
+0000692934 00000 n 
+0000692998 00000 n 
+0000693062 00000 n 
+0000693126 00000 n 
+0000693192 00000 n 
+0000693258 00000 n 
+0000693322 00000 n 
+0000693386 00000 n 
+0000693451 00000 n 
+0000693516 00000 n 
+0000693581 00000 n 
+0000693646 00000 n 
+0000693711 00000 n 
+0000693775 00000 n 
+0000693839 00000 n 
+0000693904 00000 n 
+0000693968 00000 n 
+0000694032 00000 n 
+0000694098 00000 n 
+0000694161 00000 n 
+0000694227 00000 n 
+0000694291 00000 n 
+0000694356 00000 n 
+0000694420 00000 n 
+0000694484 00000 n 
+0000694550 00000 n 
+0000694616 00000 n 
+0000694680 00000 n 
+0000694744 00000 n 
+0000694810 00000 n 
+0000694874 00000 n 
+0000694938 00000 n 
+0000695003 00000 n 
+0000695069 00000 n 
+0000695135 00000 n 
+0000695199 00000 n 
+0000695263 00000 n 
+0000695329 00000 n 
+0000695393 00000 n 
+0000695458 00000 n 
+0000695523 00000 n 
+0000695589 00000 n 
+0000695655 00000 n 
+0000695719 00000 n 
+0000695783 00000 n 
+0000695849 00000 n 
+0000695913 00000 n 
+0000695978 00000 n 
+0000696043 00000 n 
+0000696109 00000 n 
+0000696175 00000 n 
+0000696239 00000 n 
+0000696303 00000 n 
+0000696369 00000 n 
+0000696433 00000 n 
+0000696498 00000 n 
+0000696563 00000 n 
+0000696629 00000 n 
+0000696695 00000 n 
+0000696759 00000 n 
+0000696823 00000 n 
+0000696889 00000 n 
+0000696953 00000 n 
+0000697018 00000 n 
+0000697083 00000 n 
+0000697149 00000 n 
+0000697215 00000 n 
+0000697279 00000 n 
+0000697343 00000 n 
+0000697409 00000 n 
+0000697473 00000 n 
+0000697538 00000 n 
+0000703896 00000 n 
+0000699229 00000 n 
+0000697702 00000 n 
+0000699355 00000 n 
+0000699419 00000 n 
+0000699485 00000 n 
+0000699551 00000 n 
+0000699615 00000 n 
+0000699679 00000 n 
+0000699745 00000 n 
+0000699809 00000 n 
+0000699875 00000 n 
+0000699940 00000 n 
+0000700006 00000 n 
+0000700072 00000 n 
+0000700136 00000 n 
+0000700200 00000 n 
+0000700266 00000 n 
+0000700330 00000 n 
+0000700396 00000 n 
+0000700461 00000 n 
+0000700527 00000 n 
+0000700593 00000 n 
+0000700657 00000 n 
+0000700721 00000 n 
+0000700787 00000 n 
+0000700851 00000 n 
+0000700917 00000 n 
+0000700982 00000 n 
+0000701048 00000 n 
+0000701114 00000 n 
+0000701178 00000 n 
+0000701242 00000 n 
+0000701308 00000 n 
+0000701372 00000 n 
+0000701438 00000 n 
+0000701503 00000 n 
+0000701569 00000 n 
+0000701635 00000 n 
+0000701699 00000 n 
+0000701763 00000 n 
+0000701829 00000 n 
+0000701893 00000 n 
+0000701959 00000 n 
+0000702024 00000 n 
+0000702090 00000 n 
+0000702156 00000 n 
+0000702220 00000 n 
+0000702284 00000 n 
+0000702350 00000 n 
+0000702414 00000 n 
+0000702480 00000 n 
+0000702545 00000 n 
+0000702611 00000 n 
+0000702677 00000 n 
+0000702741 00000 n 
+0000702805 00000 n 
+0000702870 00000 n 
+0000702934 00000 n 
+0000702998 00000 n 
+0000703062 00000 n 
+0000703128 00000 n 
+0000703192 00000 n 
+0000703256 00000 n 
+0000703321 00000 n 
+0000703386 00000 n 
+0000703450 00000 n 
+0000703514 00000 n 
+0000703578 00000 n 
+0000703642 00000 n 
+0000703706 00000 n 
+0000703770 00000 n 
+0000703833 00000 n 
+0000709361 00000 n 
+0000705678 00000 n 
+0000703995 00000 n 
+0000705804 00000 n 
+0000705868 00000 n 
+0000705932 00000 n 
+0000705998 00000 n 
+0000706063 00000 n 
+0000706128 00000 n 
+0000706193 00000 n 
+0000706257 00000 n 
+0000706322 00000 n 
+0000706387 00000 n 
+0000706451 00000 n 
+0000706516 00000 n 
+0000706581 00000 n 
+0000706645 00000 n 
+0000706710 00000 n 
+0000706775 00000 n 
+0000706839 00000 n 
+0000706904 00000 n 
+0000706969 00000 n 
+0000707033 00000 n 
+0000707098 00000 n 
+0000707163 00000 n 
+0000707227 00000 n 
+0000707291 00000 n 
+0000707357 00000 n 
+0000707422 00000 n 
+0000707487 00000 n 
+0000707552 00000 n 
+0000707616 00000 n 
+0000707681 00000 n 
+0000707746 00000 n 
+0000707810 00000 n 
+0000707875 00000 n 
+0000707940 00000 n 
+0000708004 00000 n 
+0000708069 00000 n 
+0000708134 00000 n 
+0000708198 00000 n 
+0000708262 00000 n 
+0000708328 00000 n 
+0000708393 00000 n 
+0000708458 00000 n 
+0000708523 00000 n 
+0000708587 00000 n 
+0000708652 00000 n 
+0000708845 00000 n 
+0000708909 00000 n 
+0000708975 00000 n 
+0000709039 00000 n 
+0000709103 00000 n 
+0000709169 00000 n 
+0000709233 00000 n 
+0000709297 00000 n 
+0000713690 00000 n 
+0000710725 00000 n 
+0000709473 00000 n 
+0000710851 00000 n 
+0000710915 00000 n 
+0000710979 00000 n 
+0000711043 00000 n 
+0000711107 00000 n 
+0000711171 00000 n 
+0000711237 00000 n 
+0000711303 00000 n 
+0000711367 00000 n 
+0000711431 00000 n 
+0000711496 00000 n 
+0000711561 00000 n 
+0000711626 00000 n 
+0000711692 00000 n 
+0000711758 00000 n 
+0000711822 00000 n 
+0000711886 00000 n 
+0000711951 00000 n 
+0000712015 00000 n 
+0000712080 00000 n 
+0000712144 00000 n 
+0000712208 00000 n 
+0000712272 00000 n 
+0000712466 00000 n 
+0000712530 00000 n 
+0000712595 00000 n 
+0000712659 00000 n 
+0000712723 00000 n 
+0000712789 00000 n 
+0000712853 00000 n 
+0000712917 00000 n 
+0000712981 00000 n 
+0000713047 00000 n 
+0000713111 00000 n 
+0000713175 00000 n 
+0000713239 00000 n 
+0000713302 00000 n 
+0000713368 00000 n 
+0000713434 00000 n 
+0000713498 00000 n 
+0000713562 00000 n 
+0000713626 00000 n 
+0000935427 00000 n 
+0000722160 00000 n 
+0000715874 00000 n 
+0000713802 00000 n 
+0000716000 00000 n 
+0000716064 00000 n 
+0000716129 00000 n 
+0000716195 00000 n 
+0000716261 00000 n 
+0000716325 00000 n 
+0000716389 00000 n 
+0000716454 00000 n 
+0000716518 00000 n 
+0000716583 00000 n 
+0000716647 00000 n 
+0000716711 00000 n 
+0000716775 00000 n 
+0000716841 00000 n 
+0000716904 00000 n 
+0000716967 00000 n 
+0000717032 00000 n 
+0000717097 00000 n 
+0000717160 00000 n 
+0000717225 00000 n 
+0000717290 00000 n 
+0000717354 00000 n 
+0000717419 00000 n 
+0000717484 00000 n 
+0000717548 00000 n 
+0000717612 00000 n 
+0000717678 00000 n 
+0000717744 00000 n 
+0000717808 00000 n 
+0000717874 00000 n 
+0000717940 00000 n 
+0000718003 00000 n 
+0000718068 00000 n 
+0000718133 00000 n 
+0000718197 00000 n 
+0000718263 00000 n 
+0000718329 00000 n 
+0000718393 00000 n 
+0000718459 00000 n 
+0000718525 00000 n 
+0000718588 00000 n 
+0000718654 00000 n 
+0000718720 00000 n 
+0000718783 00000 n 
+0000718848 00000 n 
+0000718913 00000 n 
+0000718977 00000 n 
+0000719043 00000 n 
+0000719109 00000 n 
+0000719173 00000 n 
+0000719239 00000 n 
+0000719305 00000 n 
+0000719369 00000 n 
+0000719435 00000 n 
+0000719501 00000 n 
+0000719563 00000 n 
+0000719628 00000 n 
+0000719693 00000 n 
+0000719757 00000 n 
+0000719823 00000 n 
+0000719889 00000 n 
+0000719953 00000 n 
+0000720019 00000 n 
+0000720085 00000 n 
+0000720149 00000 n 
+0000720215 00000 n 
+0000720281 00000 n 
+0000720345 00000 n 
+0000720410 00000 n 
+0000720475 00000 n 
+0000720539 00000 n 
+0000720604 00000 n 
+0000720669 00000 n 
+0000720733 00000 n 
+0000720798 00000 n 
+0000720863 00000 n 
+0000720927 00000 n 
+0000720991 00000 n 
+0000721056 00000 n 
+0000721121 00000 n 
+0000721185 00000 n 
+0000721251 00000 n 
+0000721317 00000 n 
+0000721381 00000 n 
+0000721447 00000 n 
+0000721513 00000 n 
+0000721577 00000 n 
+0000721643 00000 n 
+0000721709 00000 n 
+0000721773 00000 n 
+0000721838 00000 n 
+0000721903 00000 n 
+0000721967 00000 n 
+0000722032 00000 n 
+0000722097 00000 n 
+0000728586 00000 n 
+0000723835 00000 n 
+0000722259 00000 n 
+0000723961 00000 n 
+0000724025 00000 n 
+0000724089 00000 n 
+0000724155 00000 n 
+0000724221 00000 n 
+0000724285 00000 n 
+0000724351 00000 n 
+0000724417 00000 n 
+0000724481 00000 n 
+0000724547 00000 n 
+0000724613 00000 n 
+0000724677 00000 n 
+0000724743 00000 n 
+0000724809 00000 n 
+0000724873 00000 n 
+0000724939 00000 n 
+0000725005 00000 n 
+0000725069 00000 n 
+0000725135 00000 n 
+0000725201 00000 n 
+0000725265 00000 n 
+0000725331 00000 n 
+0000725397 00000 n 
+0000725461 00000 n 
+0000725527 00000 n 
+0000725593 00000 n 
+0000725657 00000 n 
+0000725723 00000 n 
+0000725789 00000 n 
+0000725854 00000 n 
+0000725919 00000 n 
+0000725984 00000 n 
+0000726048 00000 n 
+0000726112 00000 n 
+0000726178 00000 n 
+0000726244 00000 n 
+0000726308 00000 n 
+0000726374 00000 n 
+0000726440 00000 n 
+0000726504 00000 n 
+0000726570 00000 n 
+0000726636 00000 n 
+0000726700 00000 n 
+0000726766 00000 n 
+0000726832 00000 n 
+0000726896 00000 n 
+0000726960 00000 n 
+0000727026 00000 n 
+0000727092 00000 n 
+0000727156 00000 n 
+0000727222 00000 n 
+0000727288 00000 n 
+0000727353 00000 n 
+0000727419 00000 n 
+0000727485 00000 n 
+0000727549 00000 n 
+0000727615 00000 n 
+0000727681 00000 n 
+0000727745 00000 n 
+0000727809 00000 n 
+0000727875 00000 n 
+0000727941 00000 n 
+0000728005 00000 n 
+0000728071 00000 n 
+0000728264 00000 n 
+0000728328 00000 n 
+0000728394 00000 n 
+0000728458 00000 n 
+0000728520 00000 n 
+0000734666 00000 n 
+0000730201 00000 n 
+0000728698 00000 n 
+0000730327 00000 n 
+0000730391 00000 n 
+0000730455 00000 n 
+0000730519 00000 n 
+0000730585 00000 n 
+0000730649 00000 n 
+0000730713 00000 n 
+0000730777 00000 n 
+0000730841 00000 n 
+0000730906 00000 n 
+0000730971 00000 n 
+0000731035 00000 n 
+0000731099 00000 n 
+0000731164 00000 n 
+0000731229 00000 n 
+0000731294 00000 n 
+0000731360 00000 n 
+0000731426 00000 n 
+0000731489 00000 n 
+0000731552 00000 n 
+0000731616 00000 n 
+0000731680 00000 n 
+0000731744 00000 n 
+0000731810 00000 n 
+0000731874 00000 n 
+0000731940 00000 n 
+0000732005 00000 n 
+0000732069 00000 n 
+0000732133 00000 n 
+0000732197 00000 n 
+0000732263 00000 n 
+0000732329 00000 n 
+0000732393 00000 n 
+0000732457 00000 n 
+0000732523 00000 n 
+0000732587 00000 n 
+0000732653 00000 n 
+0000732717 00000 n 
+0000732783 00000 n 
+0000732849 00000 n 
+0000732913 00000 n 
+0000732977 00000 n 
+0000733043 00000 n 
+0000733107 00000 n 
+0000733173 00000 n 
+0000733236 00000 n 
+0000733302 00000 n 
+0000733368 00000 n 
+0000733432 00000 n 
+0000733496 00000 n 
+0000733562 00000 n 
+0000733626 00000 n 
+0000733692 00000 n 
+0000733756 00000 n 
+0000733822 00000 n 
+0000733888 00000 n 
+0000733952 00000 n 
+0000734016 00000 n 
+0000734082 00000 n 
+0000734146 00000 n 
+0000734212 00000 n 
+0000734276 00000 n 
+0000734342 00000 n 
+0000734408 00000 n 
+0000734472 00000 n 
+0000734536 00000 n 
+0000734602 00000 n 
+0000740935 00000 n 
+0000736190 00000 n 
+0000734765 00000 n 
+0000736316 00000 n 
+0000736380 00000 n 
+0000736446 00000 n 
+0000736511 00000 n 
+0000736577 00000 n 
+0000736643 00000 n 
+0000736707 00000 n 
+0000736771 00000 n 
+0000736837 00000 n 
+0000736901 00000 n 
+0000736967 00000 n 
+0000737032 00000 n 
+0000737098 00000 n 
+0000737164 00000 n 
+0000737228 00000 n 
+0000737292 00000 n 
+0000737358 00000 n 
+0000737422 00000 n 
+0000737488 00000 n 
+0000737553 00000 n 
+0000737619 00000 n 
+0000737685 00000 n 
+0000737749 00000 n 
+0000737813 00000 n 
+0000737879 00000 n 
+0000737943 00000 n 
+0000738009 00000 n 
+0000738074 00000 n 
+0000738140 00000 n 
+0000738206 00000 n 
+0000738270 00000 n 
+0000738334 00000 n 
+0000738400 00000 n 
+0000738464 00000 n 
+0000738530 00000 n 
+0000738595 00000 n 
+0000738661 00000 n 
+0000738727 00000 n 
+0000738791 00000 n 
+0000738855 00000 n 
+0000738921 00000 n 
+0000738985 00000 n 
+0000739051 00000 n 
+0000739116 00000 n 
+0000739182 00000 n 
+0000739248 00000 n 
+0000739312 00000 n 
+0000739376 00000 n 
+0000739442 00000 n 
+0000739506 00000 n 
+0000739572 00000 n 
+0000739637 00000 n 
+0000739703 00000 n 
+0000739769 00000 n 
+0000739833 00000 n 
+0000739897 00000 n 
+0000739963 00000 n 
+0000740027 00000 n 
+0000740093 00000 n 
+0000740158 00000 n 
+0000740224 00000 n 
+0000740290 00000 n 
+0000740354 00000 n 
+0000740418 00000 n 
+0000740484 00000 n 
+0000740548 00000 n 
+0000740614 00000 n 
+0000740679 00000 n 
+0000740744 00000 n 
+0000740809 00000 n 
+0000740872 00000 n 
+0000745226 00000 n 
+0000742312 00000 n 
+0000741034 00000 n 
+0000742438 00000 n 
+0000742502 00000 n 
+0000742568 00000 n 
+0000742632 00000 n 
+0000742698 00000 n 
+0000742763 00000 n 
+0000742829 00000 n 
+0000742895 00000 n 
+0000742959 00000 n 
+0000743023 00000 n 
+0000743089 00000 n 
+0000743153 00000 n 
+0000743219 00000 n 
+0000743284 00000 n 
+0000743350 00000 n 
+0000743416 00000 n 
+0000743480 00000 n 
+0000743544 00000 n 
+0000743610 00000 n 
+0000743674 00000 n 
+0000743740 00000 n 
+0000743805 00000 n 
+0000743871 00000 n 
+0000743937 00000 n 
+0000744001 00000 n 
+0000744067 00000 n 
+0000744133 00000 n 
+0000744197 00000 n 
+0000744261 00000 n 
+0000744325 00000 n 
+0000744518 00000 n 
+0000744581 00000 n 
+0000744647 00000 n 
+0000744711 00000 n 
+0000744775 00000 n 
+0000744841 00000 n 
+0000744905 00000 n 
+0000744969 00000 n 
+0000745033 00000 n 
+0000745097 00000 n 
+0000745162 00000 n 
+0000750074 00000 n 
+0000746465 00000 n 
+0000745338 00000 n 
+0000746591 00000 n 
+0000746718 00000 n 
+0000746782 00000 n 
+0000746846 00000 n 
+0000746910 00000 n 
+0000746976 00000 n 
+0000747042 00000 n 
+0000747106 00000 n 
+0000747170 00000 n 
+0000747235 00000 n 
+0000747300 00000 n 
+0000747365 00000 n 
+0000747430 00000 n 
+0000747495 00000 n 
+0000747559 00000 n 
+0000747623 00000 n 
+0000747688 00000 n 
+0000747752 00000 n 
+0000747817 00000 n 
+0000747881 00000 n 
+0000747945 00000 n 
+0000748009 00000 n 
+0000748202 00000 n 
+0000748266 00000 n 
+0000748332 00000 n 
+0000748396 00000 n 
+0000748459 00000 n 
+0000748525 00000 n 
+0000748589 00000 n 
+0000748653 00000 n 
+0000748719 00000 n 
+0000748783 00000 n 
+0000748845 00000 n 
+0000748909 00000 n 
+0000748973 00000 n 
+0000749039 00000 n 
+0000749105 00000 n 
+0000749169 00000 n 
+0000749233 00000 n 
+0000749298 00000 n 
+0000749363 00000 n 
+0000749428 00000 n 
+0000749494 00000 n 
+0000749560 00000 n 
+0000749624 00000 n 
+0000749688 00000 n 
+0000749753 00000 n 
+0000749817 00000 n 
+0000749882 00000 n 
+0000749946 00000 n 
+0000750010 00000 n 
+0000935552 00000 n 
+0000754439 00000 n 
+0000751531 00000 n 
+0000750186 00000 n 
+0000751657 00000 n 
+0000751721 00000 n 
+0000751785 00000 n 
+0000751916 00000 n 
+0000751980 00000 n 
+0000752046 00000 n 
+0000752110 00000 n 
+0000752173 00000 n 
+0000752239 00000 n 
+0000752303 00000 n 
+0000752367 00000 n 
+0000752431 00000 n 
+0000752495 00000 n 
+0000752561 00000 n 
+0000752625 00000 n 
+0000752689 00000 n 
+0000752753 00000 n 
+0000752817 00000 n 
+0000752883 00000 n 
+0000752949 00000 n 
+0000753013 00000 n 
+0000753077 00000 n 
+0000753142 00000 n 
+0000753207 00000 n 
+0000753272 00000 n 
+0000753338 00000 n 
+0000753404 00000 n 
+0000753468 00000 n 
+0000753532 00000 n 
+0000753597 00000 n 
+0000753661 00000 n 
+0000753726 00000 n 
+0000753791 00000 n 
+0000753857 00000 n 
+0000753923 00000 n 
+0000753987 00000 n 
+0000754053 00000 n 
+0000754119 00000 n 
+0000754183 00000 n 
+0000754247 00000 n 
+0000754311 00000 n 
+0000758619 00000 n 
+0000755724 00000 n 
+0000754551 00000 n 
+0000755850 00000 n 
+0000755979 00000 n 
+0000756043 00000 n 
+0000756108 00000 n 
+0000756172 00000 n 
+0000756234 00000 n 
+0000756298 00000 n 
+0000756364 00000 n 
+0000756427 00000 n 
+0000756491 00000 n 
+0000756554 00000 n 
+0000756618 00000 n 
+0000756684 00000 n 
+0000756750 00000 n 
+0000756814 00000 n 
+0000756878 00000 n 
+0000756943 00000 n 
+0000757008 00000 n 
+0000757073 00000 n 
+0000757139 00000 n 
+0000757205 00000 n 
+0000757268 00000 n 
+0000757331 00000 n 
+0000757396 00000 n 
+0000757460 00000 n 
+0000757525 00000 n 
+0000757590 00000 n 
+0000757656 00000 n 
+0000757722 00000 n 
+0000757785 00000 n 
+0000757848 00000 n 
+0000757913 00000 n 
+0000757977 00000 n 
+0000758042 00000 n 
+0000758106 00000 n 
+0000758170 00000 n 
+0000758232 00000 n 
+0000758426 00000 n 
+0000758489 00000 n 
+0000758555 00000 n 
+0000763865 00000 n 
+0000759990 00000 n 
+0000758731 00000 n 
+0000760116 00000 n 
+0000760180 00000 n 
+0000760244 00000 n 
+0000760308 00000 n 
+0000760374 00000 n 
+0000760438 00000 n 
+0000760502 00000 n 
+0000760566 00000 n 
+0000760630 00000 n 
+0000760696 00000 n 
+0000760760 00000 n 
+0000760824 00000 n 
+0000760888 00000 n 
+0000760952 00000 n 
+0000761018 00000 n 
+0000761084 00000 n 
+0000761148 00000 n 
+0000761212 00000 n 
+0000761277 00000 n 
+0000761342 00000 n 
+0000761407 00000 n 
+0000761473 00000 n 
+0000761539 00000 n 
+0000761603 00000 n 
+0000761669 00000 n 
+0000761735 00000 n 
+0000761799 00000 n 
+0000761863 00000 n 
+0000761928 00000 n 
+0000761993 00000 n 
+0000762057 00000 n 
+0000762122 00000 n 
+0000762187 00000 n 
+0000762251 00000 n 
+0000762316 00000 n 
+0000762381 00000 n 
+0000762445 00000 n 
+0000762510 00000 n 
+0000762575 00000 n 
+0000762638 00000 n 
+0000762703 00000 n 
+0000762768 00000 n 
+0000762832 00000 n 
+0000762897 00000 n 
+0000762962 00000 n 
+0000763026 00000 n 
+0000763091 00000 n 
+0000763156 00000 n 
+0000763220 00000 n 
+0000763284 00000 n 
+0000763348 00000 n 
+0000763542 00000 n 
+0000763606 00000 n 
+0000763672 00000 n 
+0000763736 00000 n 
+0000763799 00000 n 
+0000768364 00000 n 
+0000765135 00000 n 
+0000763977 00000 n 
+0000765261 00000 n 
+0000765325 00000 n 
+0000765389 00000 n 
+0000765453 00000 n 
+0000765517 00000 n 
+0000765583 00000 n 
+0000765647 00000 n 
+0000765711 00000 n 
+0000765775 00000 n 
+0000765839 00000 n 
+0000765905 00000 n 
+0000765971 00000 n 
+0000766035 00000 n 
+0000766099 00000 n 
+0000766164 00000 n 
+0000766229 00000 n 
+0000766294 00000 n 
+0000766360 00000 n 
+0000766426 00000 n 
+0000766490 00000 n 
+0000766554 00000 n 
+0000766619 00000 n 
+0000766683 00000 n 
+0000766748 00000 n 
+0000766813 00000 n 
+0000766879 00000 n 
+0000766945 00000 n 
+0000767009 00000 n 
+0000767073 00000 n 
+0000767138 00000 n 
+0000767203 00000 n 
+0000767267 00000 n 
+0000767332 00000 n 
+0000767397 00000 n 
+0000767461 00000 n 
+0000767525 00000 n 
+0000767589 00000 n 
+0000767783 00000 n 
+0000767847 00000 n 
+0000767913 00000 n 
+0000767977 00000 n 
+0000768040 00000 n 
+0000768106 00000 n 
+0000768170 00000 n 
+0000768234 00000 n 
+0000768298 00000 n 
+0000774299 00000 n 
+0000770046 00000 n 
+0000768476 00000 n 
+0000770172 00000 n 
+0000770236 00000 n 
+0000770300 00000 n 
+0000770364 00000 n 
+0000770428 00000 n 
+0000770492 00000 n 
+0000770558 00000 n 
+0000770624 00000 n 
+0000770687 00000 n 
+0000770750 00000 n 
+0000770815 00000 n 
+0000770880 00000 n 
+0000770945 00000 n 
+0000771011 00000 n 
+0000771077 00000 n 
+0000771141 00000 n 
+0000771207 00000 n 
+0000771273 00000 n 
+0000771337 00000 n 
+0000771401 00000 n 
+0000771466 00000 n 
+0000771531 00000 n 
+0000771594 00000 n 
+0000771659 00000 n 
+0000771724 00000 n 
+0000771788 00000 n 
+0000771853 00000 n 
+0000771918 00000 n 
+0000771982 00000 n 
+0000772047 00000 n 
+0000772112 00000 n 
+0000772176 00000 n 
+0000772241 00000 n 
+0000772306 00000 n 
+0000772369 00000 n 
+0000772433 00000 n 
+0000772497 00000 n 
+0000772561 00000 n 
+0000772626 00000 n 
+0000772691 00000 n 
+0000772755 00000 n 
+0000772820 00000 n 
+0000772885 00000 n 
+0000772949 00000 n 
+0000773014 00000 n 
+0000773079 00000 n 
+0000773142 00000 n 
+0000773206 00000 n 
+0000773270 00000 n 
+0000773334 00000 n 
+0000773399 00000 n 
+0000773464 00000 n 
+0000773528 00000 n 
+0000773592 00000 n 
+0000773655 00000 n 
+0000773849 00000 n 
+0000773912 00000 n 
+0000773978 00000 n 
+0000774042 00000 n 
+0000774106 00000 n 
+0000774172 00000 n 
+0000774235 00000 n 
+0000778785 00000 n 
+0000775491 00000 n 
+0000774411 00000 n 
+0000775617 00000 n 
+0000775681 00000 n 
+0000775745 00000 n 
+0000775809 00000 n 
+0000775873 00000 n 
+0000775937 00000 n 
+0000776003 00000 n 
+0000776069 00000 n 
+0000776133 00000 n 
+0000776197 00000 n 
+0000776262 00000 n 
+0000776327 00000 n 
+0000776392 00000 n 
+0000776458 00000 n 
+0000776524 00000 n 
+0000776588 00000 n 
+0000776654 00000 n 
+0000776720 00000 n 
+0000776784 00000 n 
+0000776848 00000 n 
+0000776913 00000 n 
+0000776978 00000 n 
+0000777042 00000 n 
+0000777107 00000 n 
+0000777172 00000 n 
+0000777236 00000 n 
+0000777300 00000 n 
+0000777364 00000 n 
+0000777557 00000 n 
+0000777621 00000 n 
+0000777687 00000 n 
+0000777751 00000 n 
+0000777815 00000 n 
+0000777881 00000 n 
+0000777945 00000 n 
+0000778009 00000 n 
+0000778073 00000 n 
+0000778139 00000 n 
+0000778203 00000 n 
+0000778267 00000 n 
+0000778331 00000 n 
+0000778395 00000 n 
+0000778461 00000 n 
+0000778527 00000 n 
+0000778591 00000 n 
+0000778655 00000 n 
+0000778720 00000 n 
+0000935677 00000 n 
+0000783994 00000 n 
+0000780116 00000 n 
+0000778897 00000 n 
+0000780242 00000 n 
+0000780306 00000 n 
+0000780370 00000 n 
+0000780435 00000 n 
+0000780501 00000 n 
+0000780567 00000 n 
+0000780631 00000 n 
+0000780697 00000 n 
+0000780763 00000 n 
+0000780827 00000 n 
+0000780891 00000 n 
+0000780956 00000 n 
+0000781021 00000 n 
+0000781085 00000 n 
+0000781150 00000 n 
+0000781215 00000 n 
+0000781279 00000 n 
+0000781343 00000 n 
+0000781407 00000 n 
+0000781601 00000 n 
+0000781665 00000 n 
+0000781731 00000 n 
+0000781794 00000 n 
+0000781858 00000 n 
+0000781924 00000 n 
+0000781988 00000 n 
+0000782052 00000 n 
+0000782116 00000 n 
+0000782182 00000 n 
+0000782246 00000 n 
+0000782310 00000 n 
+0000782374 00000 n 
+0000782438 00000 n 
+0000782504 00000 n 
+0000782570 00000 n 
+0000782633 00000 n 
+0000782696 00000 n 
+0000782761 00000 n 
+0000782826 00000 n 
+0000782891 00000 n 
+0000782957 00000 n 
+0000783023 00000 n 
+0000783087 00000 n 
+0000783151 00000 n 
+0000783216 00000 n 
+0000783280 00000 n 
+0000783345 00000 n 
+0000783410 00000 n 
+0000783476 00000 n 
+0000783542 00000 n 
+0000783606 00000 n 
+0000783670 00000 n 
+0000783735 00000 n 
+0000783800 00000 n 
+0000783864 00000 n 
+0000783929 00000 n 
+0000789066 00000 n 
+0000785583 00000 n 
+0000784106 00000 n 
+0000785709 00000 n 
+0000785773 00000 n 
+0000785837 00000 n 
+0000785901 00000 n 
+0000786094 00000 n 
+0000786158 00000 n 
+0000786224 00000 n 
+0000786288 00000 n 
+0000786352 00000 n 
+0000786418 00000 n 
+0000786482 00000 n 
+0000786546 00000 n 
+0000786610 00000 n 
+0000786674 00000 n 
+0000786740 00000 n 
+0000786804 00000 n 
+0000786868 00000 n 
+0000786932 00000 n 
+0000786996 00000 n 
+0000787062 00000 n 
+0000787128 00000 n 
+0000787192 00000 n 
+0000787256 00000 n 
+0000787321 00000 n 
+0000787386 00000 n 
+0000787451 00000 n 
+0000787517 00000 n 
+0000787583 00000 n 
+0000787647 00000 n 
+0000787713 00000 n 
+0000787779 00000 n 
+0000787843 00000 n 
+0000787907 00000 n 
+0000787972 00000 n 
+0000788037 00000 n 
+0000788100 00000 n 
+0000788165 00000 n 
+0000788230 00000 n 
+0000788294 00000 n 
+0000788359 00000 n 
+0000788424 00000 n 
+0000788488 00000 n 
+0000788553 00000 n 
+0000788618 00000 n 
+0000788682 00000 n 
+0000788747 00000 n 
+0000788812 00000 n 
+0000788875 00000 n 
+0000788939 00000 n 
+0000789003 00000 n 
+0000794312 00000 n 
+0000790636 00000 n 
+0000789178 00000 n 
+0000790762 00000 n 
+0000790826 00000 n 
+0000790891 00000 n 
+0000790956 00000 n 
+0000791020 00000 n 
+0000791085 00000 n 
+0000791150 00000 n 
+0000791214 00000 n 
+0000791279 00000 n 
+0000791344 00000 n 
+0000791408 00000 n 
+0000791473 00000 n 
+0000791538 00000 n 
+0000791602 00000 n 
+0000791667 00000 n 
+0000791732 00000 n 
+0000791796 00000 n 
+0000791861 00000 n 
+0000791926 00000 n 
+0000791990 00000 n 
+0000792055 00000 n 
+0000792120 00000 n 
+0000792184 00000 n 
+0000792248 00000 n 
+0000792312 00000 n 
+0000792506 00000 n 
+0000792570 00000 n 
+0000792635 00000 n 
+0000792699 00000 n 
+0000792763 00000 n 
+0000792829 00000 n 
+0000792893 00000 n 
+0000792956 00000 n 
+0000793020 00000 n 
+0000793084 00000 n 
+0000793150 00000 n 
+0000793214 00000 n 
+0000793278 00000 n 
+0000793342 00000 n 
+0000793406 00000 n 
+0000793472 00000 n 
+0000793538 00000 n 
+0000793602 00000 n 
+0000793666 00000 n 
+0000793731 00000 n 
+0000793796 00000 n 
+0000793861 00000 n 
+0000793926 00000 n 
+0000793991 00000 n 
+0000794055 00000 n 
+0000794119 00000 n 
+0000794184 00000 n 
+0000794248 00000 n 
+0000799513 00000 n 
+0000795768 00000 n 
+0000794424 00000 n 
+0000795894 00000 n 
+0000795958 00000 n 
+0000796023 00000 n 
+0000796089 00000 n 
+0000796155 00000 n 
+0000796219 00000 n 
+0000796283 00000 n 
+0000796348 00000 n 
+0000796413 00000 n 
+0000796477 00000 n 
+0000796542 00000 n 
+0000796607 00000 n 
+0000796671 00000 n 
+0000796736 00000 n 
+0000796801 00000 n 
+0000796865 00000 n 
+0000796930 00000 n 
+0000796995 00000 n 
+0000797059 00000 n 
+0000797124 00000 n 
+0000797189 00000 n 
+0000797253 00000 n 
+0000797318 00000 n 
+0000797383 00000 n 
+0000797447 00000 n 
+0000797512 00000 n 
+0000797577 00000 n 
+0000797641 00000 n 
+0000797705 00000 n 
+0000797769 00000 n 
+0000797963 00000 n 
+0000798027 00000 n 
+0000798093 00000 n 
+0000798156 00000 n 
+0000798220 00000 n 
+0000798286 00000 n 
+0000798350 00000 n 
+0000798414 00000 n 
+0000798478 00000 n 
+0000798542 00000 n 
+0000798608 00000 n 
+0000798672 00000 n 
+0000798736 00000 n 
+0000798800 00000 n 
+0000798864 00000 n 
+0000798929 00000 n 
+0000798994 00000 n 
+0000799058 00000 n 
+0000799122 00000 n 
+0000799187 00000 n 
+0000799252 00000 n 
+0000799317 00000 n 
+0000799383 00000 n 
+0000799449 00000 n 
+0000804976 00000 n 
+0000800972 00000 n 
+0000799625 00000 n 
+0000801098 00000 n 
+0000801162 00000 n 
+0000801228 00000 n 
+0000801294 00000 n 
+0000801358 00000 n 
+0000801422 00000 n 
+0000801487 00000 n 
+0000801552 00000 n 
+0000801616 00000 n 
+0000801681 00000 n 
+0000801746 00000 n 
+0000801810 00000 n 
+0000801875 00000 n 
+0000801940 00000 n 
+0000802004 00000 n 
+0000802068 00000 n 
+0000802134 00000 n 
+0000802199 00000 n 
+0000802264 00000 n 
+0000802329 00000 n 
+0000802393 00000 n 
+0000802458 00000 n 
+0000802523 00000 n 
+0000802587 00000 n 
+0000802652 00000 n 
+0000802717 00000 n 
+0000802781 00000 n 
+0000802846 00000 n 
+0000802911 00000 n 
+0000802975 00000 n 
+0000803040 00000 n 
+0000803105 00000 n 
+0000803169 00000 n 
+0000803234 00000 n 
+0000803299 00000 n 
+0000803363 00000 n 
+0000803427 00000 n 
+0000803493 00000 n 
+0000803557 00000 n 
+0000803621 00000 n 
+0000803685 00000 n 
+0000803878 00000 n 
+0000803942 00000 n 
+0000804008 00000 n 
+0000804072 00000 n 
+0000804136 00000 n 
+0000804202 00000 n 
+0000804266 00000 n 
+0000804330 00000 n 
+0000804394 00000 n 
+0000804460 00000 n 
+0000804524 00000 n 
+0000804588 00000 n 
+0000804652 00000 n 
+0000804716 00000 n 
+0000804782 00000 n 
+0000804848 00000 n 
+0000804912 00000 n 
+0000809946 00000 n 
+0000806398 00000 n 
+0000805088 00000 n 
+0000806524 00000 n 
+0000806588 00000 n 
+0000806653 00000 n 
+0000806718 00000 n 
+0000806783 00000 n 
+0000806849 00000 n 
+0000806915 00000 n 
+0000806979 00000 n 
+0000807043 00000 n 
+0000807108 00000 n 
+0000807172 00000 n 
+0000807237 00000 n 
+0000807302 00000 n 
+0000807368 00000 n 
+0000807434 00000 n 
+0000807498 00000 n 
+0000807562 00000 n 
+0000807627 00000 n 
+0000807692 00000 n 
+0000807756 00000 n 
+0000807821 00000 n 
+0000807886 00000 n 
+0000807950 00000 n 
+0000808015 00000 n 
+0000808080 00000 n 
+0000808144 00000 n 
+0000808209 00000 n 
+0000808274 00000 n 
+0000808338 00000 n 
+0000808402 00000 n 
+0000808466 00000 n 
+0000808659 00000 n 
+0000808723 00000 n 
+0000808788 00000 n 
+0000808852 00000 n 
+0000808916 00000 n 
+0000808982 00000 n 
+0000809046 00000 n 
+0000809109 00000 n 
+0000809173 00000 n 
+0000809237 00000 n 
+0000809303 00000 n 
+0000809367 00000 n 
+0000809431 00000 n 
+0000809495 00000 n 
+0000809558 00000 n 
+0000809624 00000 n 
+0000809690 00000 n 
+0000809753 00000 n 
+0000809816 00000 n 
+0000809881 00000 n 
+0000935802 00000 n 
+0000815279 00000 n 
+0000811468 00000 n 
+0000810058 00000 n 
+0000811594 00000 n 
+0000811658 00000 n 
+0000811723 00000 n 
+0000811789 00000 n 
+0000811855 00000 n 
+0000811919 00000 n 
+0000811983 00000 n 
+0000812048 00000 n 
+0000812112 00000 n 
+0000812177 00000 n 
+0000812242 00000 n 
+0000812308 00000 n 
+0000812374 00000 n 
+0000812438 00000 n 
+0000812502 00000 n 
+0000812567 00000 n 
+0000812632 00000 n 
+0000812696 00000 n 
+0000812761 00000 n 
+0000812826 00000 n 
+0000812890 00000 n 
+0000812955 00000 n 
+0000813020 00000 n 
+0000813084 00000 n 
+0000813149 00000 n 
+0000813214 00000 n 
+0000813278 00000 n 
+0000813343 00000 n 
+0000813408 00000 n 
+0000813472 00000 n 
+0000813537 00000 n 
+0000813602 00000 n 
+0000813666 00000 n 
+0000813731 00000 n 
+0000813796 00000 n 
+0000813860 00000 n 
+0000813925 00000 n 
+0000813990 00000 n 
+0000814054 00000 n 
+0000814119 00000 n 
+0000814184 00000 n 
+0000814248 00000 n 
+0000814312 00000 n 
+0000814376 00000 n 
+0000814570 00000 n 
+0000814634 00000 n 
+0000814700 00000 n 
+0000814764 00000 n 
+0000814828 00000 n 
+0000814894 00000 n 
+0000814958 00000 n 
+0000815021 00000 n 
+0000815085 00000 n 
+0000815149 00000 n 
+0000815215 00000 n 
+0000821122 00000 n 
+0000816870 00000 n 
+0000815391 00000 n 
+0000816996 00000 n 
+0000817060 00000 n 
+0000817124 00000 n 
+0000817188 00000 n 
+0000817252 00000 n 
+0000817318 00000 n 
+0000817384 00000 n 
+0000817448 00000 n 
+0000817512 00000 n 
+0000817577 00000 n 
+0000817642 00000 n 
+0000817707 00000 n 
+0000817772 00000 n 
+0000817837 00000 n 
+0000817901 00000 n 
+0000817965 00000 n 
+0000818030 00000 n 
+0000818094 00000 n 
+0000818159 00000 n 
+0000818224 00000 n 
+0000818289 00000 n 
+0000818354 00000 n 
+0000818417 00000 n 
+0000818480 00000 n 
+0000818545 00000 n 
+0000818610 00000 n 
+0000818674 00000 n 
+0000818739 00000 n 
+0000818804 00000 n 
+0000818868 00000 n 
+0000818933 00000 n 
+0000818998 00000 n 
+0000819062 00000 n 
+0000819125 00000 n 
+0000819188 00000 n 
+0000819252 00000 n 
+0000819317 00000 n 
+0000819382 00000 n 
+0000819446 00000 n 
+0000819511 00000 n 
+0000819576 00000 n 
+0000819639 00000 n 
+0000819704 00000 n 
+0000819769 00000 n 
+0000819833 00000 n 
+0000819897 00000 n 
+0000819961 00000 n 
+0000820025 00000 n 
+0000820090 00000 n 
+0000820155 00000 n 
+0000820219 00000 n 
+0000820284 00000 n 
+0000820349 00000 n 
+0000820413 00000 n 
+0000820477 00000 n 
+0000820541 00000 n 
+0000820734 00000 n 
+0000820798 00000 n 
+0000820864 00000 n 
+0000820928 00000 n 
+0000820992 00000 n 
+0000821058 00000 n 
+0000825500 00000 n 
+0000822339 00000 n 
+0000821234 00000 n 
+0000822465 00000 n 
+0000822529 00000 n 
+0000822593 00000 n 
+0000822657 00000 n 
+0000822721 00000 n 
+0000822787 00000 n 
+0000822851 00000 n 
+0000822915 00000 n 
+0000822979 00000 n 
+0000823043 00000 n 
+0000823109 00000 n 
+0000823175 00000 n 
+0000823239 00000 n 
+0000823303 00000 n 
+0000823367 00000 n 
+0000823431 00000 n 
+0000823496 00000 n 
+0000823562 00000 n 
+0000823628 00000 n 
+0000823690 00000 n 
+0000823756 00000 n 
+0000823822 00000 n 
+0000823886 00000 n 
+0000823950 00000 n 
+0000824014 00000 n 
+0000824207 00000 n 
+0000824271 00000 n 
+0000824337 00000 n 
+0000824401 00000 n 
+0000824465 00000 n 
+0000824531 00000 n 
+0000824595 00000 n 
+0000824659 00000 n 
+0000824723 00000 n 
+0000824789 00000 n 
+0000824853 00000 n 
+0000824917 00000 n 
+0000824981 00000 n 
+0000825045 00000 n 
+0000825111 00000 n 
+0000825177 00000 n 
+0000825241 00000 n 
+0000825305 00000 n 
+0000825370 00000 n 
+0000825435 00000 n 
+0000830193 00000 n 
+0000826965 00000 n 
+0000825612 00000 n 
+0000827091 00000 n 
+0000827155 00000 n 
+0000827221 00000 n 
+0000827287 00000 n 
+0000827351 00000 n 
+0000827415 00000 n 
+0000827480 00000 n 
+0000827544 00000 n 
+0000827609 00000 n 
+0000827674 00000 n 
+0000827740 00000 n 
+0000827806 00000 n 
+0000827870 00000 n 
+0000827934 00000 n 
+0000827999 00000 n 
+0000828064 00000 n 
+0000828128 00000 n 
+0000828193 00000 n 
+0000828258 00000 n 
+0000828322 00000 n 
+0000828387 00000 n 
+0000828452 00000 n 
+0000828516 00000 n 
+0000828580 00000 n 
+0000828644 00000 n 
+0000828837 00000 n 
+0000828901 00000 n 
+0000828967 00000 n 
+0000829031 00000 n 
+0000829095 00000 n 
+0000829161 00000 n 
+0000829225 00000 n 
+0000829289 00000 n 
+0000829353 00000 n 
+0000829417 00000 n 
+0000829481 00000 n 
+0000829547 00000 n 
+0000829611 00000 n 
+0000829675 00000 n 
+0000829739 00000 n 
+0000829803 00000 n 
+0000829869 00000 n 
+0000829935 00000 n 
+0000829999 00000 n 
+0000830063 00000 n 
+0000830128 00000 n 
+0000834915 00000 n 
+0000831818 00000 n 
+0000830305 00000 n 
+0000831944 00000 n 
+0000832008 00000 n 
+0000832073 00000 n 
+0000832139 00000 n 
+0000832205 00000 n 
+0000832269 00000 n 
+0000832333 00000 n 
+0000832398 00000 n 
+0000832462 00000 n 
+0000832527 00000 n 
+0000832592 00000 n 
+0000832658 00000 n 
+0000832724 00000 n 
+0000832788 00000 n 
+0000832852 00000 n 
+0000832917 00000 n 
+0000832982 00000 n 
+0000833046 00000 n 
+0000833111 00000 n 
+0000833176 00000 n 
+0000833240 00000 n 
+0000833305 00000 n 
+0000833370 00000 n 
+0000833434 00000 n 
+0000833499 00000 n 
+0000833564 00000 n 
+0000833628 00000 n 
+0000833693 00000 n 
+0000833758 00000 n 
+0000833822 00000 n 
+0000833886 00000 n 
+0000833950 00000 n 
+0000834144 00000 n 
+0000834208 00000 n 
+0000834273 00000 n 
+0000834337 00000 n 
+0000834401 00000 n 
+0000834467 00000 n 
+0000834531 00000 n 
+0000834594 00000 n 
+0000834658 00000 n 
+0000834721 00000 n 
+0000834785 00000 n 
+0000834851 00000 n 
+0000839440 00000 n 
+0000836152 00000 n 
+0000835027 00000 n 
+0000836278 00000 n 
+0000836342 00000 n 
+0000836406 00000 n 
+0000836470 00000 n 
+0000836534 00000 n 
+0000836598 00000 n 
+0000836664 00000 n 
+0000836730 00000 n 
+0000836794 00000 n 
+0000836858 00000 n 
+0000836923 00000 n 
+0000836988 00000 n 
+0000837053 00000 n 
+0000837118 00000 n 
+0000837183 00000 n 
+0000837247 00000 n 
+0000837311 00000 n 
+0000837376 00000 n 
+0000837440 00000 n 
+0000837505 00000 n 
+0000837570 00000 n 
+0000837635 00000 n 
+0000837700 00000 n 
+0000837764 00000 n 
+0000837830 00000 n 
+0000837896 00000 n 
+0000837960 00000 n 
+0000838023 00000 n 
+0000838087 00000 n 
+0000838279 00000 n 
+0000838343 00000 n 
+0000838409 00000 n 
+0000838473 00000 n 
+0000838537 00000 n 
+0000838603 00000 n 
+0000838667 00000 n 
+0000838731 00000 n 
+0000838797 00000 n 
+0000838861 00000 n 
+0000838925 00000 n 
+0000838989 00000 n 
+0000839053 00000 n 
+0000839119 00000 n 
+0000839183 00000 n 
+0000839247 00000 n 
+0000839311 00000 n 
+0000935927 00000 n 
+0000843207 00000 n 
+0000840438 00000 n 
+0000839552 00000 n 
+0000840564 00000 n 
+0000840756 00000 n 
+0000840820 00000 n 
+0000840886 00000 n 
+0000840950 00000 n 
+0000841014 00000 n 
+0000841080 00000 n 
+0000841144 00000 n 
+0000841208 00000 n 
+0000841271 00000 n 
+0000841335 00000 n 
+0000841401 00000 n 
+0000841467 00000 n 
+0000841530 00000 n 
+0000841594 00000 n 
+0000841658 00000 n 
+0000841851 00000 n 
+0000841915 00000 n 
+0000841981 00000 n 
+0000842045 00000 n 
+0000842109 00000 n 
+0000842174 00000 n 
+0000842238 00000 n 
+0000842302 00000 n 
+0000842368 00000 n 
+0000842432 00000 n 
+0000842496 00000 n 
+0000842560 00000 n 
+0000842624 00000 n 
+0000842690 00000 n 
+0000842756 00000 n 
+0000842820 00000 n 
+0000842884 00000 n 
+0000842948 00000 n 
+0000843014 00000 n 
+0000843078 00000 n 
+0000843142 00000 n 
+0000847362 00000 n 
+0000844459 00000 n 
+0000843319 00000 n 
+0000844585 00000 n 
+0000844713 00000 n 
+0000844777 00000 n 
+0000844843 00000 n 
+0000844907 00000 n 
+0000844970 00000 n 
+0000845036 00000 n 
+0000845100 00000 n 
+0000845164 00000 n 
+0000845228 00000 n 
+0000845292 00000 n 
+0000845356 00000 n 
+0000845420 00000 n 
+0000845486 00000 n 
+0000845550 00000 n 
+0000845614 00000 n 
+0000845678 00000 n 
+0000845742 00000 n 
+0000845808 00000 n 
+0000845874 00000 n 
+0000845938 00000 n 
+0000846002 00000 n 
+0000846067 00000 n 
+0000846132 00000 n 
+0000846196 00000 n 
+0000846261 00000 n 
+0000846326 00000 n 
+0000846390 00000 n 
+0000846454 00000 n 
+0000846518 00000 n 
+0000846584 00000 n 
+0000846648 00000 n 
+0000846712 00000 n 
+0000846777 00000 n 
+0000846841 00000 n 
+0000846906 00000 n 
+0000846970 00000 n 
+0000847034 00000 n 
+0000847100 00000 n 
+0000847166 00000 n 
+0000847230 00000 n 
+0000847296 00000 n 
+0000849207 00000 n 
+0000849182 00000 n 
+0000849301 00000 n 
+0000868305 00000 n 
+0000879887 00000 n 
+0000891458 00000 n 
+0000910693 00000 n 
+0000920854 00000 n 
+0000932910 00000 n 
+0000936025 00000 n 
+0000936149 00000 n 
+0000936275 00000 n 
+0000936401 00000 n 
+0000936518 00000 n 
+0000936610 00000 n 
+0000948149 00000 n 
+0001073075 00000 n 
+0001073116 00000 n 
+0001073156 00000 n 
+0001073290 00000 n 
+trailer
+<<
+/Size 8038
+/Root 8036 0 R
+/Info 8037 0 R
+/ID [<9BCC16D6BBB391552556A07D72BF57B5> <9BCC16D6BBB391552556A07D72BF57B5>]
+>>
+startxref
+1073554
+%%EOF
diff --git a/trunk/doc/PLCAPI.xml b/trunk/doc/PLCAPI.xml
new file mode 100644 (file)
index 0000000..f778525
--- /dev/null
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+    "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+<!ENTITY Methods SYSTEM "Methods.xml">
+]>
+
+<book>
+  <bookinfo>
+    <title>PlanetLab Central API Documentation</title>
+  </bookinfo>
+
+  <chapter id="Introduction">
+    <title>Introduction</title>
+
+    <para>The PlanetLab Central API (PLCAPI) is the interface through
+    which the PlanetLab Central database should be accessed and
+    maintained. The API is used by the website, by nodes, by automated
+    scripts, and by users to access and update information about
+    users, nodes, sites, slices, and other entities maintained by the
+    database.</para>
+
+    <section id="Authentication">
+      <title>Authentication</title>
+
+      <para>The API should be accessed via XML-RPC over HTTPS. The API
+      supports the standard introspection calls <link
+      linkend="system.listMethods">system.listMethods</link>, <link
+      linkend="system.methodSignature">system.methodSignature</link>,
+      and <link linkend="system.methodHelp">system.methodHelp</link>,
+      and the standard batching call <link
+      linkend="system.multicall">system.multicall</link>. With the
+      exception of these calls, all PLCAPI calls take an
+      authentication structure as their first argument. All
+      authentication structures require the specification of
+      <parameter>AuthMethod</parameter>. If the documentation for a
+      call does not further specify the authentication structure, then
+      any of (but only) the following authentication structures may be
+      used:</para>
+
+      <itemizedlist>
+       <listitem>
+         <para>Session authentication. User sessions are typically
+         valid for 24 hours. Node sessions are valid until the next
+         reboot. Obtain a session key with <link
+         linkend="GetSession">GetSession</link> using another form of
+         authentication, such as password or GnuPG
+         authentication.</para>
+         <informaltable frame="none" rules="rows">
+           <tgroup cols="3">
+             <tbody>
+               <row><entry>AuthMethod</entry><entry><literal>session</literal></entry></row>
+               <row><entry>session</entry><entry>Session key</entry></row>
+             </tbody>
+           </tgroup>
+         </informaltable>
+       </listitem>
+       <listitem>
+         <para>Password authentication.</para>
+         <informaltable frame="none" rules="rows">
+           <tgroup cols="3">
+             <tbody>
+               <row><entry>AuthMethod</entry><entry><literal>password</literal></entry></row>
+               <row><entry>Username</entry><entry>Username, typically an e-mail address</entry></row>
+               <row><entry>AuthString</entry><entry>Authentication string, typically a password</entry></row>
+             </tbody>
+           </tgroup>
+         </informaltable>
+       </listitem>
+       <listitem>
+         <para>GnuPG authentication. Users may upload a GPG public key
+         using <link linkend="AddPersonKey">AddPersonKey</link>. Peer
+         GPG keys should be added with <link
+         linkend="AddPeer">AddPeer</link> or <link
+         linkend="UpdatePeer">UpdatePeer</link>.
+         </para>
+         <informaltable frame="none" rules="rows">
+           <tgroup cols="3">
+             <tbody>
+               <row><entry>AuthMethod</entry><entry><literal>gpg</literal></entry></row>
+               <row><entry>name</entry><entry>Peer or user name</entry></row>
+               <row><entry>signature</entry><entry>GnuPG signature of
+               the <ulink
+               url="http://www.w3.org/TR/xml-c14n">canonicalized</ulink>
+               <ulink url="http://www.xmlrpc.com/spec">XML-RPC</ulink>
+               representation of the rest of the arguments to the
+               call.</entry></row>
+             </tbody>
+           </tgroup>
+         </informaltable>
+       </listitem>
+       <listitem>
+         <para>Anonymous authentication.</para>
+         <informaltable frame="none" rules="rows">
+           <tgroup cols="3">
+             <tbody>
+               <row><entry>AuthMethod</entry><entry><literal>anonymous</literal></entry></row>
+             </tbody>
+           </tgroup>
+         </informaltable>
+       </listitem>
+      </itemizedlist>
+    </section>
+
+    <section id="Roles">
+      <title>Roles</title>
+
+      <para>Some functions may only be called by users with certain
+      roles (see <link linkend="GetRoles">GetRoles</link>), and others
+      may return different information to different callers depending
+      on the role(s) of the caller.</para>
+
+      <para>The <literal>node</literal> and
+      <literal>anonymous</literal> roles are pseudo-roles. A function
+      that allows the <literal>node</literal> role may be called by
+      automated scripts running on a node, such as the Boot and Node
+      Managers. A function that allows the
+      <literal>anonymous</literal> role may be called by anyone; an
+      API authentication structure must still be specified (see <xref
+      linkend="Authentication"/>).</para>
+    </section>
+
+    <section id="Filters">
+      <title>Filters</title>
+
+      <para>Most of the <function>Get</function> functions take a
+      filter argument. Filters may be arrays of integer (and sometimes
+      string) identifiers, or a struct representing a filter on the
+      attributes of the entities being queried. For example,</para>
+
+<programlisting>
+# plcsh code fragment (see below)
+GetNodes([1,2,3])
+GetNodes({'node_id': [1,2,3]})
+GetNodes({'node_id': 1}) + GetNodes({'node_id': 2}) + GetNodes({'node_id': 3})
+</programlisting>
+
+      <para>Would all be equivalent queries. Attributes that are
+      themselves arrays (such as <literal>nodenetwork_ids</literal>
+      and <literal>slice_ids</literal> for nodes) cannot be used in
+      filters.</para>
+    </section>
+
+    <section>
+      <title>PlanetLab shell</title>
+
+      <para>A command-line program called <command>plcsh</command>
+      simplifies authentication structure handling, and is useful for
+      scripting. This program is distributed as a Linux RPM called
+      PLCAPI and requires Python &ge;2.4.</para>
+
+      <programlisting>
+usage: plcsh [options]
+
+options:
+  -f CONFIG, --config=CONFIG
+                        PLC configuration file
+  -h URL, --url=URL     API URL
+  -c CACERT, --cacert=CACERT
+                        API SSL certificate
+  -k INSECURE, --insecure=INSECURE
+                        Do not check SSL certificate
+  -m METHOD, --method=METHOD
+                        API authentication method
+  -s SESSION, --session=SESSION
+                        API session key
+  -u USER, --user=USER  API user name
+  -p PASSWORD, --password=PASSWORD
+                        API password
+  -r ROLE, --role=ROLE  API role
+  -x, --xmlrpc          Use XML-RPC interface
+  --help                show this help message and exit
+      </programlisting>
+
+      <para>Specify at least the API URL and your user name:</para>
+
+      <programlisting>
+plcsh --url https://www.planet-lab.org/PLCAPI/ -u user@site.edu
+      </programlisting>
+
+      <para>You will be presented with a prompt. From here, you can
+      invoke API calls and omit the authentication structure, as it will
+      be filled in automatically.</para>
+
+      <programlisting>
+user@site.edu connected using password authentication
+Type "system.listMethods()" or "help(method)" for more information.
+[user@site.edu]>>> AuthCheck()
+1
+[user@site.edu]>>> GetNodes([121], ['node_id', 'hostname'])
+[{'node_id': 121, 'hostname': 'planetlab-1.cs.princeton.edu'}]
+      </programlisting>
+
+      <para>As this program is actually a Python interpreter, you may
+      create variables, execute for loops, import other packages, etc.,
+      directly on the command line as you would using the regular Python
+      shell.</para>
+
+      <para>To use <command>plcsh</command> programmatically, import
+      the <function>PLC.Shell</function> module:</para>
+
+      <programlisting>
+#!/usr/bin/python
+
+import sys
+
+# Default location that the PLCAPI RPM installs the PLC class
+sys.path.append('/usr/share/plc_api')
+
+# Initialize shell environment. Shell() will define all PLCAPI methods
+# in the specified namespace (specifying globals() will define them
+# globally).
+from PLC.Shell import Shell
+plc = Shell(globals(),
+            url = "https://www.planet-lab.org/PLCAPI/",
+            user = "user@site.edu",
+            password = "password")
+
+# Both are equivalent
+nodes = GetNodes([121], ['node_id', 'hostname'])
+nodes = plc.GetNodes([121], ['node_id', 'hostname'])
+      </programlisting>
+    </section>
+  </chapter>
+
+  <chapter id="Methods">
+    <title>PlanetLab API Methods</title>
+    <para></para>
+
+    &Methods;
+  </chapter>
+
+</book>
+
+<!-- LocalWords:  PlanetLab API PLCAPI RPC HTTPS listMethods methodSignature
+-->
+<!-- LocalWords:  methodHelp multicall AuthMethod GetSession GnuPG Username GPG
+-->
+<!-- LocalWords:  AuthString AddPersonKey AddPeer UpdatePeer gpg
+-->
diff --git a/trunk/migrations/001-down-subversion.sql b/trunk/migrations/001-down-subversion.sql
new file mode 100644 (file)
index 0000000..5e3255c
--- /dev/null
@@ -0,0 +1,3 @@
+-- you may also write downgrader scripts, though they are not - yet - supported
+
+ALTER TABLE plc_db_version DROP subversion;
diff --git a/trunk/migrations/001-up-subversion.sql b/trunk/migrations/001-up-subversion.sql
new file mode 100644 (file)
index 0000000..01046a5
--- /dev/null
@@ -0,0 +1,5 @@
+-- Add plc_db_version.subversion field
+ALTER TABLE plc_db_version ADD subversion integer NOT NULL DEFAULT 0;
+
+-- Bump subversion
+UPDATE plc_db_version SET subversion = 1;
diff --git a/trunk/migrations/002-up-slices.sql b/trunk/migrations/002-up-slices.sql
new file mode 100644 (file)
index 0000000..4bf656d
--- /dev/null
@@ -0,0 +1,6 @@
+-- Remove NOT NULL constraint from creator_person_id in case the
+-- creator is deleted.
+ALTER TABLE slices ALTER creator_person_id DROP NOT NULL;
+
+-- Bump subversion
+UPDATE plc_db_version SET subversion = 2;
diff --git a/trunk/migrations/003-down-network-settings.sql b/trunk/migrations/003-down-network-settings.sql
new file mode 100644 (file)
index 0000000..796e4b4
--- /dev/null
@@ -0,0 +1,24 @@
+-- IMPORTANT NOTICE
+--
+-- this down script is provided for convenience only
+-- DO NOT USE on an operational site
+-- the change in migration 003 involves creating 
+-- the new view view_nodenetworks for fetching instances
+-- of NodeNetworks
+-- AND to alter NodeNetworks.py accordingly
+-- so this change cannot be easily undone 
+-- unless you also revert the API itself
+
+DROP VIEW view_nodenetworks;
+
+DROP VIEW view_nodenetwork_settings;
+
+DROP VIEW nodenetwork_settings;
+
+DROP TABLE nodenetwork_setting;
+
+DROP TABLE nodenetwork_setting_types;
+
+-- deflate subversion
+UPDATE plc_db_version SET subversion = 2;
+SELECT subversion from plc_db_version;
diff --git a/trunk/migrations/003-test.py b/trunk/migrations/003-test.py
new file mode 100755 (executable)
index 0000000..aed650b
--- /dev/null
@@ -0,0 +1,60 @@
+#!/usr/bin/env plcsh
+
+nnst = GetNodeNetworkSettingTypes(['interface_name'])
+if nnst:
+    print 'NodeNetworkSettingType interface_name already defined'
+else:
+    AddNodeNetworkSettingType({
+        'category':'general',
+        'min_role_id':30,
+        'name':'interface_name',
+        'description':'allows to specify a custom interface name'
+        })
+nnst_ifname_id = GetNodeNetworkSettingTypes(['interface_name'])[0]['nodenetwork_setting_type_id']
+
+
+nnst = GetNodeNetworkSettingTypes(['ssid'])
+if nnst:
+    print 'NodeNetworkSettingType ssid already defined'
+else:
+    AddNodeNetworkSettingType({
+        'category':'wifi',
+        'min_role_id':30,
+        'name':'ssid',
+        'description':'allows to set ESSID'
+        })
+nnst_ssid_id = GetNodeNetworkSettingTypes(['ssid'])[0]['nodenetwork_setting_type_id']
+
+nodename = 'onelab2.inria.fr'
+
+nodenetwork_id=GetNodes(nodename)[0]['nodenetwork_ids'][0]
+
+#######
+nns_ifname = GetNodeNetworkSettings ({'nodenetwork_id':nodenetwork_id,
+                                      'nodenetwork_setting_type_id':nnst_ifname_id})
+if nns_ifname:
+    print "interface name for %s already set (got %s - cat=%s)" %\
+      (nodename,nns_ifname[0]['value'],nns_ifname[0]['category'])
+else:
+    AddNodeNetworkSetting(nodenetwork_id, 'interface_name', 'custom-eth0')
+    
+nns_ifname_id = GetNodeNetworkSettings ({'nodenetwork_id':nodenetwork_id,
+                                         'nodenetwork_setting_type_id':nnst_ifname_id})[0]['nodenetwork_setting_id']
+#######
+nns_ssid = GetNodeNetworkSettings ({'nodenetwork_id':nodenetwork_id,
+                                    'nodenetwork_setting_type_id':nnst_ssid_id})
+if nns_ssid:
+    print "ssid for %s already set (got %s - cat=%s)" %\
+      (nodename,nns_ifname[0]['value'],nns_ifname[0]['category'])
+else:
+    AddNodeNetworkSetting(nodenetwork_id, 'ssid', 'init-onelab-g')
+    
+nns_ssid_id = GetNodeNetworkSettings ({'nodenetwork_id':nodenetwork_id,
+                                       'nodenetwork_setting_type_id':nnst_ssid_id})[0]['nodenetwork_setting_id']
+
+#######
+
+UpdateNodeNetworkSetting (nns_ssid_id,'onelab-g')
+
+DeleteNodeNetworkSetting (nns_ifname_id)
+
diff --git a/trunk/migrations/003-up-network-settings.sql b/trunk/migrations/003-up-network-settings.sql
new file mode 100644 (file)
index 0000000..64b0ff6
--- /dev/null
@@ -0,0 +1,86 @@
+--
+-- Thierry Parmentelat -- INRIA
+--
+-- migration 003
+-- 
+-- purpose : provide a generic mechanism for assigning 
+-- nodenetworks (read, network interfaces) with 
+-- custom settings
+--
+-- design
+-- mimicks the way slice attributes are being handled, 
+-- not that this design is particularly attractive 
+-- but let's not add confusion here
+-- i.e:
+-- (*) nodenetwork_setting_types (see slice_attribute_types) 
+-- allows to define a new setting
+-- e.g, define one such object for storing wifi SSID
+-- 
+-- (*) nodenetwork_setting (see slice_attribute)
+-- allow to associate a nodenetwork, a nodenetwork_setting_type, and a value
+--
+-- NOTE. with slice_attributes there is a trick that allows to define 
+-- the attribute either on the slice globally or on a particular node only.
+-- of course we do not need such a trick
+
+CREATE TABLE nodenetwork_setting_types (
+    nodenetwork_setting_type_id serial PRIMARY KEY,    
+                                               -- Setting Type Identifier
+    name text UNIQUE NOT NULL,                 -- Setting Name    
+    description text,                          -- Optional Description
+    category text NOT NULL,                    -- Category, e.g. Wifi, or whatever
+    min_role_id integer references roles       -- If set, minimal role required
+) WITH OIDS;
+
+CREATE TABLE nodenetwork_setting (
+    nodenetwork_setting_id serial PRIMARY KEY, -- Nodenetwork Setting Identifier
+    nodenetwork_id integer REFERENCES nodenetworks NOT NULL,
+                                               -- the nodenetwork this applies to
+    nodenetwork_setting_type_id integer REFERENCES nodenetwork_setting_types NOT NULL,
+                                               -- the setting type
+    value text
+) WITH OIDS;
+
+
+CREATE OR REPLACE VIEW nodenetwork_settings AS 
+SELECT nodenetwork_id,
+array_accum(nodenetwork_setting_id) AS nodenetwork_setting_ids
+FROM nodenetwork_setting
+GROUP BY nodenetwork_id;
+
+CREATE OR REPLACE VIEW view_nodenetwork_settings AS
+SELECT
+nodenetwork_setting.nodenetwork_setting_id,
+nodenetwork_setting.nodenetwork_id,
+nodenetwork_setting_types.nodenetwork_setting_type_id,
+nodenetwork_setting_types.name,
+nodenetwork_setting_types.description,
+nodenetwork_setting_types.category,
+nodenetwork_setting_types.min_role_id,
+nodenetwork_setting.value
+FROM nodenetwork_setting
+INNER JOIN nodenetwork_setting_types USING (nodenetwork_setting_type_id);
+
+CREATE VIEW view_nodenetworks AS
+SELECT
+nodenetworks.nodenetwork_id,
+nodenetworks.node_id,
+nodenetworks.is_primary,
+nodenetworks.type,
+nodenetworks.method,
+nodenetworks.ip,
+nodenetworks.mac,
+nodenetworks.gateway,
+nodenetworks.network,
+nodenetworks.broadcast,
+nodenetworks.netmask,
+nodenetworks.dns1,
+nodenetworks.dns2,
+nodenetworks.bwlimit,
+nodenetworks.hostname,
+COALESCE((SELECT nodenetwork_setting_ids FROM nodenetwork_settings WHERE nodenetwork_settings.nodenetwork_id = nodenetworks.nodenetwork_id), '{}') AS nodenetwork_setting_ids
+FROM nodenetworks;
+
+-- Bump subversion
+UPDATE plc_db_version SET subversion = 3;
+SELECT subversion from plc_db_version;
diff --git a/trunk/migrations/004-up-fix-site-nodes.sql b/trunk/migrations/004-up-fix-site-nodes.sql
new file mode 100644 (file)
index 0000000..8bc9c58
--- /dev/null
@@ -0,0 +1,16 @@
+-- 
+-- bugfix
+-- the site_nodes should restrict to nodes where deleted is false
+--
+
+CREATE OR REPLACE VIEW site_nodes AS
+SELECT site_id,
+array_accum(node_id) AS node_ids
+FROM nodes
+WHERE deleted is false
+GROUP BY site_id;
+
+-- Bump subversion
+UPDATE plc_db_version SET subversion = 4;
+SELECT subversion from plc_db_version;
+
diff --git a/trunk/migrations/005-down-import-apr-2007.sql b/trunk/migrations/005-down-import-apr-2007.sql
new file mode 100644 (file)
index 0000000..fa16b12
--- /dev/null
@@ -0,0 +1,112 @@
+-- revert migration 005
+-- 
+-- this is a rather complex example, so for next times, make sure that you
+-- * first restore old columns or tables
+-- * then create or replace views
+-- * and only finally drop new columns and tables
+-- otherwise the columns may refuse to get dropped if they are still used by views
+--
+
+---------- creations 
+
+ALTER TABLE events ADD object_type text NOT NULL Default 'Unknown';
+
+---------- view changes
+
+-- for some reason these views require to be dropped first
+DROP VIEW view_events;
+DROP VIEW event_objects;
+DROP VIEW view_nodes;
+DROP VIEW view_sites;
+
+CREATE OR REPLACE VIEW event_objects AS
+SELECT event_id,
+array_accum(object_id) AS object_ids
+FROM event_object
+GROUP BY event_id;
+
+CREATE OR REPLACE VIEW view_events AS
+SELECT
+events.event_id,
+events.person_id,
+events.node_id,
+events.fault_code,
+events.call_name,
+events.call,
+events.object_type,
+events.message,
+events.runtime,
+CAST(date_part('epoch', events.time) AS bigint) AS time,
+COALESCE((SELECT object_ids FROM event_objects WHERE event_objects.event_id = events.event_id), '{}') AS object_ids
+FROM events;
+
+CREATE OR REPLACE VIEW view_nodes AS
+SELECT
+nodes.node_id,
+nodes.hostname,
+nodes.site_id,
+nodes.boot_state,
+nodes.deleted,
+nodes.model,
+nodes.boot_nonce,
+nodes.version,
+nodes.ssh_rsa_key,
+nodes.key,
+CAST(date_part('epoch', nodes.date_created) AS bigint) AS date_created,
+CAST(date_part('epoch', nodes.last_updated) AS bigint) AS last_updated,
+peer_node.peer_id,
+peer_node.peer_node_id,
+COALESCE((SELECT nodenetwork_ids FROM node_nodenetworks WHERE node_nodenetworks.node_id = nodes.node_id), '{}') AS nodenetwork_ids,
+COALESCE((SELECT nodegroup_ids FROM node_nodegroups WHERE node_nodegroups.node_id = nodes.node_id), '{}') AS nodegroup_ids,
+COALESCE((SELECT slice_ids FROM node_slices WHERE node_slices.node_id = nodes.node_id), '{}') AS slice_ids,
+COALESCE((SELECT pcu_ids FROM node_pcus WHERE node_pcus.node_id = nodes.node_id), '{}') AS pcu_ids,
+COALESCE((SELECT ports FROM node_pcus WHERE node_pcus.node_id = nodes.node_id), '{}') AS ports,
+COALESCE((SELECT conf_file_ids FROM node_conf_files WHERE node_conf_files.node_id = nodes.node_id), '{}') AS conf_file_ids,
+node_session.session_id AS session
+FROM nodes
+LEFT JOIN peer_node USING (node_id)
+LEFT JOIN node_session USING (node_id);
+
+CREATE OR REPLACE VIEW view_sites AS
+SELECT
+sites.site_id,
+sites.login_base,
+sites.name,
+sites.abbreviated_name,
+sites.deleted,
+sites.enabled,
+sites.is_public,
+sites.max_slices,
+sites.max_slivers,
+sites.latitude,
+sites.longitude,
+sites.url,
+CAST(date_part('epoch', sites.date_created) AS bigint) AS date_created,
+CAST(date_part('epoch', sites.last_updated) AS bigint) AS last_updated,
+peer_site.peer_id,
+peer_site.peer_site_id,
+COALESCE((SELECT person_ids FROM site_persons WHERE site_persons.site_id = sites.site_id), '{}') AS person_ids,
+COALESCE((SELECT node_ids FROM site_nodes WHERE site_nodes.site_id = sites.site_id), '{}') AS node_ids,
+COALESCE((SELECT address_ids FROM site_addresses WHERE site_addresses.site_id = sites.site_id), '{}') AS address_ids,
+COALESCE((SELECT slice_ids FROM site_slices WHERE site_slices.site_id = sites.site_id), '{}') AS slice_ids,
+COALESCE((SELECT pcu_ids FROM site_pcus WHERE site_pcus.site_id = sites.site_id), '{}') AS pcu_ids
+FROM sites
+LEFT JOIN peer_site USING (site_id);
+
+---------- deletions
+
+ALTER TABLE sites DROP COLUMN ext_consortium_id;
+
+ALTER TABLE nodes DROP COLUMN last_contact;
+
+DROP INDEX initscripts_name_idx;
+DROP TABLE initscripts;
+
+ALTER TABLE events DROP COLUMN auth_type;
+
+ALTER TABLE event_object DROP COLUMN object_type;
+
+---------- revert subversion
+
+UPDATE plc_db_version SET subversion = 4;
+SELECT subversion from plc_db_version;
diff --git a/trunk/migrations/005-up-import-apr-2007.sql b/trunk/migrations/005-up-import-apr-2007.sql
new file mode 100644 (file)
index 0000000..3a34f25
--- /dev/null
@@ -0,0 +1,154 @@
+--
+-- to apply changes from import done in april 2007 from the
+-- planetlab-4_0-branch tag
+--
+-- this is a rather complex example, so for next times, make sure that you
+-- * first add new columns and new tables
+-- * then create or replace views
+-- * and only finally drop columns
+-- otherwise the columns may refuse to get dropped if they are still used by views
+--
+
+---------- creations 
+
+ALTER TABLE sites ADD ext_consortium_id integer;
+
+ALTER TABLE nodes ADD last_contact timestamp without time zone;
+
+-- Initscripts
+CREATE TABLE initscripts (
+    initscript_id serial PRIMARY KEY, -- Initscript identifier
+    name text NOT NULL, -- Initscript name
+    enabled bool NOT NULL DEFAULT true, -- Initscript is active
+    script text NOT NULL, -- Initscript
+    UNIQUE (name)
+) WITH OIDS;
+CREATE INDEX initscripts_name_idx ON initscripts (name);
+
+-- rather drop the tables altogether, 
+-- ALTER TABLE events ADD auth_type text;
+-- ALTER TABLE event_object ADD COLUMN object_type text NOT NULL Default 'Unknown';
+-- CREATE INDEX event_object_object_type_idx ON event_object (object_type);
+
+-- for some reason these views require to be dropped first
+DROP VIEW view_events;
+DROP VIEW event_objects;
+DROP VIEW view_nodes;
+DROP VIEW view_sites;
+
+----dropping tables must be preceded by dropping views using those tables
+----otherwise  dependency problems
+DROP TABLE event_object;
+DROP TABLE events;
+
+CREATE TABLE events (
+    event_id serial PRIMARY KEY,  -- Event identifier
+    person_id integer REFERENCES persons, -- Person responsible for event, if any
+    node_id integer REFERENCES nodes, -- Node responsible for event, if any
+    auth_type text, -- Type of auth used. i.e. AuthMethod
+    fault_code integer NOT NULL DEFAULT 0, -- Did this event result in error
+    call_name text NOT NULL, -- Call responsible for this event
+    call text NOT NULL, -- Call responsible for this event, including parameters
+    message text, -- High level description of this event
+    runtime float DEFAULT 0, -- Event run time
+    time timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP -- Event timestamp
+) WITH OIDS;
+
+-- Database object(s) that may have been affected by a particular event
+CREATE TABLE event_object (
+    event_id integer REFERENCES events NOT NULL, -- Event identifier
+    object_id integer NOT NULL, -- Object identifier
+    object_type text NOT NULL Default 'Unknown' -- What type of object is this event affecting
+) WITH OIDS;
+CREATE INDEX event_object_event_id_idx ON event_object (event_id);
+CREATE INDEX event_object_object_id_idx ON event_object (object_id);
+CREATE INDEX event_object_object_type_idx ON event_object (object_type);
+
+---------- view changes
+
+CREATE OR REPLACE VIEW event_objects AS
+SELECT event_id,
+array_accum(object_id) AS object_ids,
+array_accum(object_type) AS object_types
+FROM event_object
+GROUP BY event_id;
+
+CREATE OR REPLACE VIEW view_events AS
+SELECT
+events.event_id,
+events.person_id,
+events.node_id,
+events.auth_type,
+events.fault_code,
+events.call_name,
+events.call,
+events.message,
+events.runtime,
+CAST(date_part('epoch', events.time) AS bigint) AS time,
+COALESCE((SELECT object_ids FROM event_objects WHERE event_objects.event_id = events.event_id), '{}') AS object_ids,
+COALESCE((SELECT object_types FROM event_objects WHERE event_objects.event_id = events.event_id), '{}') AS object_types
+FROM events;
+
+CREATE OR REPLACE VIEW view_nodes AS
+SELECT
+nodes.node_id,
+nodes.hostname,
+nodes.site_id,
+nodes.boot_state,
+nodes.deleted,
+nodes.model,
+nodes.boot_nonce,
+nodes.version,
+nodes.ssh_rsa_key,
+nodes.key,
+CAST(date_part('epoch', nodes.date_created) AS bigint) AS date_created,
+CAST(date_part('epoch', nodes.last_updated) AS bigint) AS last_updated,
+CAST(date_part('epoch', nodes.last_contact) AS bigint) AS last_contact,  
+peer_node.peer_id,
+peer_node.peer_node_id,
+COALESCE((SELECT nodenetwork_ids FROM node_nodenetworks WHERE node_nodenetworks.node_id = nodes.node_id), '{}') AS nodenetwork_ids,
+COALESCE((SELECT nodegroup_ids FROM node_nodegroups WHERE node_nodegroups.node_id = nodes.node_id), '{}') AS nodegroup_ids,
+COALESCE((SELECT slice_ids FROM node_slices WHERE node_slices.node_id = nodes.node_id), '{}') AS slice_ids,
+COALESCE((SELECT pcu_ids FROM node_pcus WHERE node_pcus.node_id = nodes.node_id), '{}') AS pcu_ids,
+COALESCE((SELECT ports FROM node_pcus WHERE node_pcus.node_id = nodes.node_id), '{}') AS ports,
+COALESCE((SELECT conf_file_ids FROM node_conf_files WHERE node_conf_files.node_id = nodes.node_id), '{}') AS conf_file_ids,
+node_session.session_id AS session
+FROM nodes
+LEFT JOIN peer_node USING (node_id)
+LEFT JOIN node_session USING (node_id);
+
+CREATE OR REPLACE VIEW view_sites AS
+SELECT
+sites.site_id,
+sites.login_base,
+sites.name,
+sites.abbreviated_name,
+sites.deleted,
+sites.enabled,
+sites.is_public,
+sites.max_slices,
+sites.max_slivers,
+sites.latitude,
+sites.longitude,
+sites.url,
+sites.ext_consortium_id,
+CAST(date_part('epoch', sites.date_created) AS bigint) AS date_created,
+CAST(date_part('epoch', sites.last_updated) AS bigint) AS last_updated,
+peer_site.peer_id,
+peer_site.peer_site_id,
+COALESCE((SELECT person_ids FROM site_persons WHERE site_persons.site_id = sites.site_id), '{}') AS person_ids,
+COALESCE((SELECT node_ids FROM site_nodes WHERE site_nodes.site_id = sites.site_id), '{}') AS node_ids,
+COALESCE((SELECT address_ids FROM site_addresses WHERE site_addresses.site_id = sites.site_id), '{}') AS address_ids,
+COALESCE((SELECT slice_ids FROM site_slices WHERE site_slices.site_id = sites.site_id), '{}') AS slice_ids,
+COALESCE((SELECT pcu_ids FROM site_pcus WHERE site_pcus.site_id = sites.site_id), '{}') AS pcu_ids
+FROM sites
+LEFT JOIN peer_site USING (site_id);
+
+---------- deletions
+--dont need to drop this colum it doesn't exit anymore 
+-----ALTER TABLE events DROP COLUMN object_type;
+
+---------- bump subversion
+
+UPDATE plc_db_version SET subversion = 5;
+SELECT subversion from plc_db_version;
diff --git a/trunk/migrations/006-down-slice-attribute-nodegroup.sql b/trunk/migrations/006-down-slice-attribute-nodegroup.sql
new file mode 100644 (file)
index 0000000..0dc4bae
--- /dev/null
@@ -0,0 +1,25 @@
+---------- view changes
+
+DROP VIEW view_slice_attributes;
+
+CREATE OR REPLACE VIEW view_slice_attributes AS
+SELECT
+slice_attribute.slice_attribute_id,
+slice_attribute.slice_id,
+slice_attribute.node_id,
+slice_attribute_types.attribute_type_id,
+slice_attribute_types.name,
+slice_attribute_types.description,
+slice_attribute_types.min_role_id,
+slice_attribute.value
+FROM slice_attribute
+INNER JOIN slice_attribute_types USING (attribute_type_id);
+
+---------- deletions
+DROP INDEX slice_attribute_nodegroup_id_idx;
+ALTER TABLE slice_attribute DROP COLUMN nodegroup_id;
+
+---------- revert subversion
+
+UPDATE plc_db_version SET subversion = 5;
+SELECT subversion from plc_db_version;
diff --git a/trunk/migrations/006-up-slice-attribute-nodegroup.sql b/trunk/migrations/006-up-slice-attribute-nodegroup.sql
new file mode 100644 (file)
index 0000000..801f2a0
--- /dev/null
@@ -0,0 +1,29 @@
+---------- creations 
+
+ALTER TABLE slice_attribute ADD nodegroup_id integer REFERENCES nodegroups;
+
+CREATE INDEX slice_attribute_nodegroup_id_idx ON slice_attribute (nodegroup_id);
+
+---------- view changes
+
+DROP VIEW view_slice_attributes;
+
+CREATE OR REPLACE VIEW view_slice_attributes AS
+SELECT
+slice_attribute.slice_attribute_id,
+slice_attribute.slice_id,
+slice_attribute.node_id,
+slice_attribute.nodegroup_id,
+slice_attribute_types.attribute_type_id,
+slice_attribute_types.name,
+slice_attribute_types.description,
+slice_attribute_types.min_role_id,
+slice_attribute.value
+FROM slice_attribute
+INNER JOIN slice_attribute_types USING (attribute_type_id);
+
+
+---------- bump subversion
+
+UPDATE plc_db_version SET subversion = 6;
+SELECT subversion from plc_db_version;
diff --git a/trunk/migrations/007-down-event-objects-view.sql b/trunk/migrations/007-down-event-objects-view.sql
new file mode 100644 (file)
index 0000000..09b86f3
--- /dev/null
@@ -0,0 +1,11 @@
+--
+-- migration 007 - revert
+--
+
+DROP VIEW view_event_objects;
+
+---------- revert subversion
+
+UPDATE plc_db_version SET subversion = 6;
+SELECT subversion from plc_db_version;
+
diff --git a/trunk/migrations/007-up-event-objects-view.sql b/trunk/migrations/007-up-event-objects-view.sql
new file mode 100644 (file)
index 0000000..2ed47ee
--- /dev/null
@@ -0,0 +1,26 @@
+--
+-- migration 007
+-- change the way event objects are fetched, use a view for that purpose
+-- 
+
+
+CREATE OR REPLACE VIEW view_event_objects AS 
+SELECT
+events.event_id,
+events.person_id,
+events.node_id,
+events.fault_code,
+events.call_name,
+events.call,
+events.message,
+events.runtime,
+CAST(date_part('epoch', events.time) AS bigint) AS time,
+event_object.object_id,
+event_object.object_type
+FROM events LEFT JOIN event_object USING (event_id);
+
+
+---------- bump subversion
+
+UPDATE plc_db_version SET subversion = 7;
+SELECT subversion from plc_db_version;
diff --git a/trunk/migrations/008-down-import-aug-2007.sql b/trunk/migrations/008-down-import-aug-2007.sql
new file mode 100644 (file)
index 0000000..9a3eaab
--- /dev/null
@@ -0,0 +1,42 @@
+
+DELETE from slice_instantiations WHERE instantiation='nm-controller';
+
+
+
+DROP VIEW view_nodes;
+DROP VIEW node_slices_whitelist;
+DROP TABLE node_slice_whitelist;
+
+CREATE OR REPLACE VIEW view_nodes AS
+SELECT
+nodes.node_id,
+nodes.hostname,
+nodes.site_id,
+nodes.boot_state,
+nodes.deleted,
+nodes.model,
+nodes.boot_nonce,
+nodes.version,
+nodes.ssh_rsa_key,
+nodes.key,
+CAST(date_part('epoch', nodes.date_created) AS bigint) AS date_created,
+CAST(date_part('epoch', nodes.last_updated) AS bigint) AS last_updated,
+CAST(date_part('epoch', nodes.last_contact) AS bigint) AS last_contact,  
+peer_node.peer_id,
+peer_node.peer_node_id,
+COALESCE((SELECT nodenetwork_ids FROM node_nodenetworks WHERE node_nodenetworks.node_id = nodes.node_id), '{}') AS nodenetwork_ids,
+COALESCE((SELECT nodegroup_ids FROM node_nodegroups WHERE node_nodegroups.node_id = nodes.node_id), '{}') AS nodegroup_ids,
+COALESCE((SELECT slice_ids FROM node_slices WHERE node_slices.node_id = nodes.node_id), '{}') AS slice_ids,
+COALESCE((SELECT pcu_ids FROM node_pcus WHERE node_pcus.node_id = nodes.node_id), '{}') AS pcu_ids,
+COALESCE((SELECT ports FROM node_pcus WHERE node_pcus.node_id = nodes.node_id), '{}') AS ports,
+COALESCE((SELECT conf_file_ids FROM node_conf_files WHERE node_conf_files.node_id = nodes.node_id), '{}') AS conf_file_ids,
+node_session.session_id AS session
+FROM nodes
+LEFT JOIN peer_node USING (node_id)
+LEFT JOIN node_session USING (node_id);
+
+
+---------- revert subversion
+
+UPDATE plc_db_version SET subversion = 7;
+SELECT subversion from plc_db_version;
diff --git a/trunk/migrations/008-up-import-aug-2007.sql b/trunk/migrations/008-up-import-aug-2007.sql
new file mode 100644 (file)
index 0000000..2220f8b
--- /dev/null
@@ -0,0 +1,64 @@
+--
+-- migration 008
+-- import from Princeton codebase on august 2007 28
+-- slice instantiation 'nm-controller'
+-- * white lists
+-- 
+
+INSERT INTO slice_instantiations (instantiation) VALUES ('nm-controller'); -- NM Controller
+
+--------------------------------------------------------------------------------
+-- Slice whitelist
+--------------------------------------------------------------------------------
+-- slice whitelist on nodes
+CREATE TABLE node_slice_whitelist (
+    node_id integer REFERENCES nodes NOT NULL, -- Node id of whitelist
+    slice_id integer REFERENCES slices NOT NULL, -- Slice id thats allowd on this node
+    PRIMARY KEY (node_id, slice_id)
+) WITH OIDS;
+CREATE INDEX node_slice_whitelist_node_id_idx ON node_slice_whitelist (node_id);
+CREATE INDEX node_slice_whitelist_slice_id_idx ON node_slice_whitelist (slice_id);
+
+-- Slices on each node
+CREATE VIEW node_slices_whitelist AS
+SELECT node_id,
+array_accum(slice_id) AS slice_ids_whitelist
+FROM node_slice_whitelist
+GROUP BY node_id;
+
+DROP VIEW view_nodes;
+
+
+CREATE OR REPLACE VIEW view_nodes AS
+SELECT
+nodes.node_id,
+nodes.hostname,
+nodes.site_id,
+nodes.boot_state,
+nodes.deleted,
+nodes.model,
+nodes.boot_nonce,
+nodes.version,
+nodes.ssh_rsa_key,
+nodes.key,
+CAST(date_part('epoch', nodes.date_created) AS bigint) AS date_created,
+CAST(date_part('epoch', nodes.last_updated) AS bigint) AS last_updated,
+CAST(date_part('epoch', nodes.last_contact) AS bigint) AS last_contact,  
+peer_node.peer_id,
+peer_node.peer_node_id,
+COALESCE((SELECT nodenetwork_ids FROM node_nodenetworks WHERE node_nodenetworks.node_id = nodes.node_id), '{}') AS nodenetwork_ids,
+COALESCE((SELECT nodegroup_ids FROM node_nodegroups WHERE node_nodegroups.node_id = nodes.node_id), '{}') AS nodegroup_ids,
+COALESCE((SELECT slice_ids FROM node_slices WHERE node_slices.node_id = nodes.node_id), '{}') AS slice_ids,
+COALESCE((SELECT slice_ids_whitelist FROM node_slices_whitelist WHERE node_slices_whitelist.node_id = nodes.node_id), '{}') AS slice_ids_whitelist,
+COALESCE((SELECT pcu_ids FROM node_pcus WHERE node_pcus.node_id = nodes.node_id), '{}') AS pcu_ids,
+COALESCE((SELECT ports FROM node_pcus WHERE node_pcus.node_id = nodes.node_id), '{}') AS ports,
+COALESCE((SELECT conf_file_ids FROM node_conf_files WHERE node_conf_files.node_id = nodes.node_id), '{}') AS conf_file_ids,
+node_session.session_id AS session
+FROM nodes
+LEFT JOIN peer_node USING (node_id)
+LEFT JOIN node_session USING (node_id);
+
+---------- bump subversion
+
+UPDATE plc_db_version SET subversion = 8;
+SELECT subversion from plc_db_version;
diff --git a/trunk/migrations/009-down-pcu-types.sql b/trunk/migrations/009-down-pcu-types.sql
new file mode 100644 (file)
index 0000000..1dbe9d2
--- /dev/null
@@ -0,0 +1,13 @@
+--
+-- 009 revert
+--
+
+DROP VIEW view_pcu_types;
+
+DROP VIEW pcu_type_ports;
+
+DROP TABLE pcu_type_port;
+
+DROP TABLE pcu_types; 
+
+UPDATE plc_db_version SET subversion = 7;
diff --git a/trunk/migrations/009-up-pcu-types.sql b/trunk/migrations/009-up-pcu-types.sql
new file mode 100644 (file)
index 0000000..c7dd7b6
--- /dev/null
@@ -0,0 +1,41 @@
+--
+-- Tony Mack - PlanetLab
+--
+-- migration 009
+--
+-- purpose: provide a means for storing details about pcu models
+--
+--
+
+CREATE TABLE pcu_types (
+    pcu_type_id serial PRIMARY KEY,    
+    model text NOT NULL,               -- PCU model name
+    name text                          -- Full PCU model name
+) WITH OIDS;
+CREATE INDEX pcu_types_model_idx ON pcu_types (model);
+
+CREATE TABLE pcu_protocol_type (
+    pcu_protocol_type_id serial PRIMARY KEY,   
+    pcu_type_id integer REFERENCES pcu_types NOT NULL,         -- PCU type identifier
+    port integer NOT NULL,                             -- PCU port
+    protocol text NOT NULL,                            -- Protocol                 
+    supported boolean NOT NULL DEFAULT True            -- Does PLC support
+) WITH OIDS;
+CREATE INDEX pcu_protocol_type_pcu_type_id ON pcu_protocol_type (pcu_type_id);
+  
+
+CREATE OR REPLACE VIEW pcu_protocol_types AS
+SELECT pcu_type_id,
+array_accum(pcu_protocol_type_id) as pcu_protocol_type_ids
+FROM pcu_protocol_type
+GROUP BY pcu_type_id;
+    
+CREATE OR REPLACE VIEW view_pcu_types AS
+SELECT
+pcu_types.pcu_type_id,
+pcu_types.model,
+pcu_types.name,
+COALESCE((SELECT pcu_protocol_type_ids FROM pcu_protocol_types WHERE pcu_protocol_types.pcu_type_id = pcu_types.pcu_type_id), '{}') AS pcu_protocol_type_ids 
+FROM pcu_types; 
+
+UPDATE plc_db_version SET subversion = 9;
diff --git a/trunk/migrations/README.txt b/trunk/migrations/README.txt
new file mode 100644 (file)
index 0000000..e8570bf
--- /dev/null
@@ -0,0 +1,8 @@
+Store here migration scripts, named
+<nnn>-up-any-text.<ext>
+with contiguous indices starting with 001
+
+if the extension is .sql it is ran on the planetlab4 database
+otherwise it is run as is
+
+See myplc/plc.d/db for how this is used 
diff --git a/trunk/php/.cvsignore b/trunk/php/.cvsignore
new file mode 100644 (file)
index 0000000..dd89eef
--- /dev/null
@@ -0,0 +1,2 @@
+methods.php
+plc_api.php
diff --git a/trunk/php/Makefile b/trunk/php/Makefile
new file mode 100644 (file)
index 0000000..560ff68
--- /dev/null
@@ -0,0 +1,25 @@
+#
+# (Re)builds PHP API. PHP classes must be defined in a single file.
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+all: plc_api.php
+
+methods.php: methods.py ../PLC/__init__.py ../PLC/Methods/__init__.py
+       PYTHONPATH=.. python $< > $@
+        # Indent all lines by a couple of spaces
+       sed -i -e "s/^/  /" $@
+
+plc_api.php: header.php methods.php footer.php
+        # Set timestamp
+       sed -e "s/@DATE@/$$(date)/" header.php > $@
+       cat methods.php footer.php >> $@
+
+clean:
+       rm -f plc_api.php methods.php
+
+.PHONY: all clean
diff --git a/trunk/php/footer.php b/trunk/php/footer.php
new file mode 100644 (file)
index 0000000..6212304
--- /dev/null
@@ -0,0 +1,9 @@
+}
+
+global $adm;
+
+$adm = new PLCAPI(array('AuthMethod' => "capability",
+                       'Username' => PLC_API_MAINTENANCE_USER,
+                       'AuthString' => PLC_API_MAINTENANCE_PASSWORD));
+
+?>
diff --git a/trunk/php/header.php b/trunk/php/header.php
new file mode 100644 (file)
index 0000000..5172894
--- /dev/null
@@ -0,0 +1,202 @@
+<?php
+//
+// PlanetLab Central Slice API (PLCAPI) PHP interface
+//
+// DO NOT EDIT. This file was automatically generated at
+// @DATE@.
+//
+// Mark Huang <mlhuang@cs.princeton.edu>
+// Copyright (C) 2005-2006 The Trustees of Princeton University
+//
+// $Id$
+//
+//
+
+require_once 'plc_config.php';
+
+class PLCAPI
+{
+  var $auth;
+  var $server;
+  var $port;
+  var $path;
+  var $errors;
+  var $trace;
+  var $calls;
+  var $multicall;
+
+  function PLCAPI($auth = NULL,
+                 $server = PLC_API_HOST,
+                 $port = PLC_API_PORT,
+                 $path = PLC_API_PATH,
+                 $cainfo = NULL)
+  {
+    $this->auth = $auth;
+    $this->server = $server;
+    $this->port = $port;
+    $this->path = $path;
+    $this->cainfo = $cainfo;
+    $this->errors = array();
+    $this->trace = array();
+    $this->calls = array();
+    $this->multicall = false;
+  }
+
+  function error_log($error_msg, $backtrace_level = 1)
+  {
+    $backtrace = debug_backtrace();
+    $file = $backtrace[$backtrace_level]['file'];
+    $line = $backtrace[$backtrace_level]['line'];
+
+    $this->errors[] = 'PLCAPI error:  ' . $error_msg . ' in ' . $file . ' on line ' . $line;
+    error_log(end($this->errors));
+  }
+
+  function error()
+  {
+    if (empty($this->trace)) {
+      return NULL;
+    } else {
+      $last_trace = end($this->trace);
+      return implode("\\n", $last_trace['errors']);
+    }
+  }
+
+  function trace()
+  {
+    return $this->trace;
+  }
+
+  function microtime_float()
+  {
+    list($usec, $sec) = explode(" ", microtime());
+    return ((float) $usec + (float) $sec);
+  }
+
+  function call($method, $args = NULL)
+  {
+    if ($this->multicall) {
+      $this->calls[] = array ('methodName' => $method,
+                               'params' => $args);
+      return NULL;
+    } else {
+      return $this->internal_call ($method, $args, 3);
+    }
+  }
+
+  function internal_call($method, $args = NULL, $backtrace_level = 2)
+  {
+    $curl = curl_init();
+
+    // Verify peer certificate if talking over SSL
+    if ($this->port == 443) {
+      curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 2);
+      if (!empty($this->cainfo)) {
+       curl_setopt($curl, CURLOPT_CAINFO, $this->cainfo);
+      } elseif (defined('PLC_API_CA_SSL_CRT')) {
+        curl_setopt($curl, CURLOPT_CAINFO, PLC_API_CA_SSL_CRT);
+      }
+      $url = 'https://';
+    } else {
+      $url = 'http://';
+    }
+
+    // Set the URL for the request
+    $url .= $this->server . ':' . $this->port . '/' . $this->path;
+    curl_setopt($curl, CURLOPT_URL, $url);
+
+    // Marshal the XML-RPC request as a POST variable. <nil/> is an
+    // extension to the XML-RPC spec that is supported in our custom
+    // version of xmlrpc.so via the 'allow_null' output_encoding key.
+    $request = xmlrpc_encode_request($method, $args, array('allow_null' => TRUE));
+    curl_setopt($curl, CURLOPT_POSTFIELDS, $request);
+
+    // Construct the HTTP header
+    $header[] = 'Content-type: text/xml';
+    $header[] = 'Content-length: ' . strlen($request);
+    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
+
+    // Set some miscellaneous options
+    curl_setopt($curl, CURLOPT_TIMEOUT, 30);
+
+    // Get the output of the request
+    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
+    $t0 = $this->microtime_float();
+    $output = curl_exec($curl);
+    $t1 = $this->microtime_float();
+
+    if (curl_errno($curl)) {
+      $this->error_log('curl: ' . curl_error($curl), true);
+      $ret = NULL;
+    } else {
+      $ret = xmlrpc_decode($output);
+      if (is_array($ret) && xmlrpc_is_fault($ret)) {
+        $this->error_log('Fault Code ' . $ret['faultCode'] . ': ' .
+                         $ret['faultString'], $backtrace_level, true);
+       $ret = NULL;
+      }
+    }
+
+    curl_close($curl);
+
+    $this->trace[] = array('method' => $method,
+                           'args' => $args,
+                           'runtime' => $t1 - $t0,
+                           'return' => $ret,
+                           'errors' => $this->errors);
+    $this->errors = array();
+
+    return $ret;
+  }
+
+  function begin()
+  {
+    if (!empty($this->calls)) {
+      $this->error_log ('Warning: multicall already in progress');
+    }
+
+    $this->multicall = true;
+  }
+
+  function commit()
+  {
+    if (!empty ($this->calls)) {
+      $ret = array();
+      $results = $this->internal_call ('system.multicall', array ($this->calls));
+      foreach ($results as $result) {
+        if (is_array($result)) {
+          if (xmlrpc_is_fault($result)) {
+            $this->error_log('Fault Code ' . $result['faultCode'] . ': ' .
+                             $result['faultString'], 1, true);
+            $ret[] = NULL;
+           // Thierry - march 30 2007 
+           // using $adm->error() is broken with begin/commit style 
+           // this is because error() uses last item in trace and checks for ['errors']
+           // when using begin/commit we do run internal_call BUT internal_call checks for 
+           // multicall's result globally, not individual results, so ['errors'] comes empty
+           // I considered hacking internal_call 
+           // to *NOT* maintain this->trace at all when invoked with multicall
+           // but it is too complex to get all values right
+           // so let's go for the hacky way, and just record individual errors at the right place
+            $this->trace[count($this->trace)-1]['errors'][] = end($this->errors);
+          } else {
+            $ret[] = $result[0];
+          }
+        } else {
+          $ret[] = $result;
+        }
+      }
+    } else {
+      $ret = NULL;
+    }
+
+    $this->calls = array();
+    $this->multicall = false;
+
+    return $ret;
+  }
+
+  //
+  // PLCAPI Methods
+  //
+
diff --git a/trunk/php/methods.py b/trunk/php/methods.py
new file mode 100755 (executable)
index 0000000..ca34773
--- /dev/null
@@ -0,0 +1,111 @@
+#!/usr/bin/python
+#
+# Generates the PLCAPI interface for the website PHP code.
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2005 The Trustess of Princeton University
+#
+# $Id$
+#
+
+import os, sys
+import time
+
+from PLC.API import PLCAPI
+from PLC.Method import *
+from PLC.Auth import Auth
+
+try:
+    set
+except NameError:
+    from sets import Set
+    set = Set
+
+def php_cast(value):
+    """
+    Casts Python values to PHP values.
+    """
+    
+    if value is None:
+        return "NULL"
+    elif isinstance(value, (list, tuple, set)):
+        return "array(%s)" % ", ".join([php_cast(v) for v in value])
+    elif isinstance(value, dict):
+        items = ["%s => %s" % (php_cast(k), php_cast(v)) for (k, v) in value.items()]
+        return "array(%s)" % ", ".join(items)
+    elif isinstance(value, (int, long, bool, float)):
+        return str(value)
+    else:
+        unicode_repr = repr(unicode(value))
+        # Truncate the leading 'u' prefix
+        return unicode_repr[1:]
+
+# Class functions
+api = PLCAPI(None)
+
+api.methods.sort()
+for method in api.methods:
+    # Skip system. methods
+    if "system." in method:
+        continue
+
+    function = api.callable(method)
+
+    # Commented documentation
+    lines = ["// " + line.strip() for line in function.__doc__.strip().split("\n")]
+    print "\n".join(lines)
+    print
+
+    # Function declaration
+    print "function " + function.name,
+
+    # PHP function arguments
+    args = []
+    (min_args, max_args, defaults) = function.args()
+    parameters = zip(max_args, function.accepts, defaults)
+
+    for name, expected, default in parameters:
+        # Skip auth structures (added automatically)
+        if isinstance(expected, Auth) or \
+           (isinstance(expected, Mixed) and \
+            filter(lambda sub: isinstance(sub, Auth), expected)):
+            continue
+
+        # Declare parameter
+        arg = "$" + name
+
+        # Set optional parameters to their defaults
+        if name not in min_args:
+            arg += " = " + php_cast(default)
+
+        args.append(arg)
+
+    # Write function declaration
+    print "(" + ", ".join(args) + ")"
+
+    # Begin function body
+    print "{"
+
+    # API function arguments
+    i = 0
+    for name, expected, default in parameters:
+        # Automatically added auth structures
+        if isinstance(expected, Auth) or \
+           (isinstance(expected, Mixed) and \
+            filter(lambda sub: isinstance(sub, Auth), expected)):
+            print "  $args[] = $this->auth;"
+            continue
+
+        print " ",
+        if name not in min_args:
+            print "if (func_num_args() > %d)" % i, 
+        print "$args[] = $%s;" % name
+
+        i += 1
+
+    # Call API function
+    print "  return $this->call('%s', $args);" % method
+
+    # End function body
+    print "}"
+    print
diff --git a/trunk/php/xmlrpc/CREDITS b/trunk/php/xmlrpc/CREDITS
new file mode 100644 (file)
index 0000000..cfb14fa
--- /dev/null
@@ -0,0 +1,2 @@
+xmlrpc
+Dan Libby
diff --git a/trunk/php/xmlrpc/EXPERIMENTAL b/trunk/php/xmlrpc/EXPERIMENTAL
new file mode 100644 (file)
index 0000000..6443e99
--- /dev/null
@@ -0,0 +1,5 @@
+this extension is experimental,
+its functions may change their names 
+or move to extension all together 
+so do not rely to much on them 
+you have been warned!
diff --git a/trunk/php/xmlrpc/Makefile b/trunk/php/xmlrpc/Makefile
new file mode 100644 (file)
index 0000000..40c6887
--- /dev/null
@@ -0,0 +1,26 @@
+#
+# Build xmlrpc.so PHP extension
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+CC := gcc
+CFLAGS := -g -O2 -I. -Ilibxmlrpc -fPIC
+CFLAGS += $(shell php-config --includes)
+CFLAGS += $(shell xml2-config --cflags)
+
+LDFLAGS := -shared --export-dynamic
+LIBS := -lexpat
+
+all: xmlrpc.so
+
+xmlrpc.so: xmlrpc-epi-php.o $(patsubst %.c, %.o, $(wildcard libxmlrpc/*.c))
+       $(LD) $(LDFLAGS) -o $@ $^ $(LIBS)
+
+clean:
+       rm -f *.o libxmlrpc/*.o *.so
+
+.PHONY: all clean
diff --git a/trunk/php/xmlrpc/config.m4 b/trunk/php/xmlrpc/config.m4
new file mode 100644 (file)
index 0000000..54335df
--- /dev/null
@@ -0,0 +1,93 @@
+dnl
+dnl $Id$
+dnl
+
+sinclude(ext/xmlrpc/libxmlrpc/acinclude.m4)
+sinclude(ext/xmlrpc/libxmlrpc/xmlrpc.m4)
+sinclude(libxmlrpc/acinclude.m4)
+sinclude(libxmlrpc/xmlrpc.m4)
+
+PHP_ARG_WITH(xmlrpc, for XMLRPC-EPI support,
+[  --with-xmlrpc[=DIR]     Include XMLRPC-EPI support.])
+
+PHP_ARG_WITH(expat-dir, libexpat dir for XMLRPC-EPI,
+[  --with-expat-dir=DIR      XMLRPC-EPI: libexpat dir for XMLRPC-EPI.],no,no)
+
+PHP_ARG_WITH(iconv-dir, iconv dir for XMLRPC-EPI,
+[  --with-iconv-dir=DIR      XMLRPC-EPI: iconv dir for XMLRPC-EPI.],no,no)
+
+if test "$PHP_XMLRPC" != "no"; then
+
+  PHP_SUBST(XMLRPC_SHARED_LIBADD)
+  AC_DEFINE(HAVE_XMLRPC,1,[ ])
+
+  testval=no
+  for i in $PHP_EXPAT_DIR $XMLRPC_DIR /usr/local /usr; do
+    if test -f $i/$PHP_LIBDIR/libexpat.a -o -f $i/$PHP_LIBDIR/libexpat.$SHLIB_SUFFIX_NAME; then
+      AC_DEFINE(HAVE_LIBEXPAT2,1,[ ])
+      PHP_ADD_LIBRARY_WITH_PATH(expat, $i/$PHP_LIBDIR, XMLRPC_SHARED_LIBADD)
+      PHP_ADD_INCLUDE($i/include)
+      testval=yes
+      break
+    fi
+  done
+
+  if test "$testval" = "no"; then
+    AC_MSG_ERROR(XML-RPC support requires libexpat. Use --with-expat-dir=<DIR>)
+  fi
+
+  if test "$PHP_ICONV_DIR" != "no"; then
+    PHP_ICONV=$PHP_ICONV_DIR
+  fi
+  
+  if test "$PHP_ICONV" = "no"; then
+    PHP_ICONV=yes
+  fi
+  
+  PHP_SETUP_ICONV(XMLRPC_SHARED_LIBADD, [], [
+    AC_MSG_ERROR([iconv not found, in order to build xmlrpc you need the iconv library])
+  ])
+fi
+
+
+if test "$PHP_XMLRPC" = "yes"; then
+  XMLRPC_CHECKS
+  PHP_NEW_EXTENSION(xmlrpc,xmlrpc-epi-php.c libxmlrpc/base64.c \
+          libxmlrpc/simplestring.c libxmlrpc/xml_to_dandarpc.c \
+          libxmlrpc/xmlrpc_introspection.c libxmlrpc/encodings.c \
+          libxmlrpc/system_methods.c libxmlrpc/xml_to_xmlrpc.c \
+          libxmlrpc/queue.c libxmlrpc/xml_element.c libxmlrpc/xmlrpc.c \
+          libxmlrpc/xml_to_soap.c,$ext_shared,,
+          -I@ext_srcdir@/libxmlrpc -DVERSION="0.50")
+  PHP_ADD_BUILD_DIR($ext_builddir/libxmlrpc)
+  XMLRPC_MODULE_TYPE=builtin
+
+elif test "$PHP_XMLRPC" != "no"; then
+
+  if test -r $PHP_XMLRPC/include/xmlrpc.h; then
+    XMLRPC_DIR=$PHP_XMLRPC/include
+  elif test -r $PHP_XMLRPC/include/xmlrpc-epi/xmlrpc.h; then
+dnl some xmlrpc-epi header files have generic file names like
+dnl queue.h or base64.h. Distributions have to create dir
+dnl for xmlrpc-epi because of this.
+    XMLRPC_DIR=$PHP_XMLRPC/include/xmlrpc-epi
+  else
+    AC_MSG_CHECKING(for XMLRPC-EPI in default path)
+    for i in /usr/local /usr; do
+      if test -r $i/include/xmlrpc.h; then
+        XMLRPC_DIR=$i/include
+        AC_MSG_RESULT(found in $i)
+        break
+      fi
+    done
+  fi
+
+  if test -z "$XMLRPC_DIR"; then
+    AC_MSG_RESULT(not found)
+    AC_MSG_ERROR(Please reinstall the XMLRPC-EPI distribution)
+  fi
+
+  PHP_ADD_INCLUDE($XMLRPC_DIR)
+  PHP_ADD_LIBRARY_WITH_PATH(xmlrpc, $XMLRPC_DIR/$PHP_LIBDIR, XMLRPC_SHARED_LIBADD)
+fi
+
diff --git a/trunk/php/xmlrpc/config.m4.lib64 b/trunk/php/xmlrpc/config.m4.lib64
new file mode 100644 (file)
index 0000000..8551f6b
--- /dev/null
@@ -0,0 +1,93 @@
+dnl
+dnl $Id$
+dnl
+
+sinclude(ext/xmlrpc/libxmlrpc/acinclude.m4)
+sinclude(ext/xmlrpc/libxmlrpc/xmlrpc.m4)
+sinclude(libxmlrpc/acinclude.m4)
+sinclude(libxmlrpc/xmlrpc.m4)
+
+PHP_ARG_WITH(xmlrpc, for XMLRPC-EPI support,
+[  --with-xmlrpc[=DIR]     Include XMLRPC-EPI support.])
+
+PHP_ARG_WITH(expat-dir, libexpat dir for XMLRPC-EPI,
+[  --with-expat-dir=DIR      XMLRPC-EPI: libexpat dir for XMLRPC-EPI.],no,no)
+
+PHP_ARG_WITH(iconv-dir, iconv dir for XMLRPC-EPI,
+[  --with-iconv-dir=DIR      XMLRPC-EPI: iconv dir for XMLRPC-EPI.],no,no)
+
+if test "$PHP_XMLRPC" != "no"; then
+
+  PHP_SUBST(XMLRPC_SHARED_LIBADD)
+  AC_DEFINE(HAVE_XMLRPC,1,[ ])
+
+  testval=no
+  for i in $PHP_EXPAT_DIR $XMLRPC_DIR /usr/local /usr; do
+    if test -f $i/lib/libexpat.a -o -f $i/lib/libexpat.$SHLIB_SUFFIX_NAME; then
+      AC_DEFINE(HAVE_LIBEXPAT2,1,[ ])
+      PHP_ADD_LIBRARY_WITH_PATH(expat, $i/lib, XMLRPC_SHARED_LIBADD)
+      PHP_ADD_INCLUDE($i/include)
+      testval=yes
+      break
+    fi
+  done
+
+  if test "$testval" = "no"; then
+    AC_MSG_ERROR(XML-RPC support requires libexpat. Use --with-expat-dir=<DIR>)
+  fi
+
+  if test "$PHP_ICONV_DIR" != "no"; then
+    PHP_ICONV=$PHP_ICONV_DIR
+  fi
+  
+  if test "$PHP_ICONV" = "no"; then
+    PHP_ICONV=yes
+  fi
+  
+  PHP_SETUP_ICONV(XMLRPC_SHARED_LIBADD, [], [
+    AC_MSG_ERROR([iconv not found, in order to build xmlrpc you need the iconv library])
+  ])
+fi
+
+
+if test "$PHP_XMLRPC" = "yes"; then
+  XMLRPC_CHECKS
+  PHP_NEW_EXTENSION(xmlrpc,xmlrpc-epi-php.c libxmlrpc/base64.c \
+          libxmlrpc/simplestring.c libxmlrpc/xml_to_dandarpc.c \
+          libxmlrpc/xmlrpc_introspection.c libxmlrpc/encodings.c \
+          libxmlrpc/system_methods.c libxmlrpc/xml_to_xmlrpc.c \
+          libxmlrpc/queue.c libxmlrpc/xml_element.c libxmlrpc/xmlrpc.c \
+          libxmlrpc/xml_to_soap.c,$ext_shared,,
+          -I@ext_srcdir@/libxmlrpc -DVERSION="0.50")
+  PHP_ADD_BUILD_DIR($ext_builddir/libxmlrpc)
+  XMLRPC_MODULE_TYPE=builtin
+
+elif test "$PHP_XMLRPC" != "no"; then
+
+  if test -r $PHP_XMLRPC/include/xmlrpc.h; then
+    XMLRPC_DIR=$PHP_XMLRPC/include
+  elif test -r $PHP_XMLRPC/include/xmlrpc-epi/xmlrpc.h; then
+dnl some xmlrpc-epi header files have generic file names like
+dnl queue.h or base64.h. Distributions have to create dir
+dnl for xmlrpc-epi because of this.
+    XMLRPC_DIR=$PHP_XMLRPC/include/xmlrpc-epi
+  else
+    AC_MSG_CHECKING(for XMLRPC-EPI in default path)
+    for i in /usr/local /usr; do
+      if test -r $i/include/xmlrpc.h; then
+        XMLRPC_DIR=$i/include
+        AC_MSG_RESULT(found in $i)
+        break
+      fi
+    done
+  fi
+
+  if test -z "$XMLRPC_DIR"; then
+    AC_MSG_RESULT(not found)
+    AC_MSG_ERROR(Please reinstall the XMLRPC-EPI distribution)
+  fi
+
+  PHP_ADD_INCLUDE($XMLRPC_DIR)
+  PHP_ADD_LIBRARY_WITH_PATH(xmlrpc, $XMLRPC_DIR/lib, XMLRPC_SHARED_LIBADD)
+fi
+
diff --git a/trunk/php/xmlrpc/config.w32 b/trunk/php/xmlrpc/config.w32
new file mode 100644 (file)
index 0000000..8c399cd
--- /dev/null
@@ -0,0 +1,14 @@
+// $Id$
+// vim:ft=javascript
+
+ARG_WITH("xmlrpc", "XMLRPC-EPI support", "no");
+
+if (PHP_XMLRPC != "no") {
+       CHECK_HEADER_ADD_INCLUDE("xmlrpc.h", "CFLAGS_XMLRPC", configure_module_dirname + "/libxmlrpc");
+       EXTENSION('xmlrpc', 'xmlrpc-epi-php.c', PHP_XMLRPC_SHARED, "-DVERSION=\"0.50\"");
+       ADD_SOURCES(configure_module_dirname + "/libxmlrpc", "base64.c simplestring.c xml_to_dandarpc.c \
+       xmlrpc_introspection.c encodings.c system_methods.c xml_to_xmlrpc.c \
+       queue.c xml_element.c xmlrpc.c xml_to_soap.c", "xmlrpc");
+       ADD_EXTENSION_DEP('xmlrpc', 'libxml');
+}
+
diff --git a/trunk/php/xmlrpc/libxmlrpc/README b/trunk/php/xmlrpc/libxmlrpc/README
new file mode 100644 (file)
index 0000000..323edfa
--- /dev/null
@@ -0,0 +1,17 @@
+organization of this directory is moving towards this approach:
+
+<module>.h               -- public API and data types
+<module>_private.h       -- protected API and data types
+<module>.c               -- implementation and private API / types
+
+The rules are:
+.c files may include *_private.h.
+.h files may not include *_private.h
+
+This allows us to have a nicely encapsulated C api with opaque data types and private functions
+that are nonetheless shared between source files without redundant extern declarations..
+
+
+
+
+
diff --git a/trunk/php/xmlrpc/libxmlrpc/acinclude.m4 b/trunk/php/xmlrpc/libxmlrpc/acinclude.m4
new file mode 100644 (file)
index 0000000..49b6090
--- /dev/null
@@ -0,0 +1,32 @@
+# Local macros for automake & autoconf
+
+AC_DEFUN([XMLRPC_FUNCTION_CHECKS],[
+
+# Standard XMLRPC list
+AC_CHECK_FUNCS( \
+ strtoul strtoull snprintf \
+ strstr strpbrk strerror\
+ memcpy memmove)
+
+])
+
+AC_DEFUN([XMLRPC_HEADER_CHECKS],[
+AC_HEADER_STDC
+AC_CHECK_HEADERS(xmlparse.h xmltok.h stdlib.h strings.h string.h)
+])
+
+AC_DEFUN([XMLRPC_TYPE_CHECKS],[
+
+AC_REQUIRE([AC_C_CONST])
+AC_REQUIRE([AC_C_INLINE])
+AC_CHECK_SIZEOF(char, 1)
+
+AC_CHECK_SIZEOF(int, 4)
+AC_CHECK_SIZEOF(long, 4)
+AC_CHECK_SIZEOF(long long, 8)
+AC_TYPE_SIZE_T
+AC_HEADER_TIME
+AC_TYPE_UID_T
+
+
+])
diff --git a/trunk/php/xmlrpc/libxmlrpc/base64.c b/trunk/php/xmlrpc/libxmlrpc/base64.c
new file mode 100644 (file)
index 0000000..7788d02
--- /dev/null
@@ -0,0 +1,192 @@
+static const char rcsid[] = "#(@) $Id$";
+
+/*
+
+          Encode or decode file as MIME base64 (RFC 1341)
+
+                           by John Walker
+                      http://www.fourmilab.ch/
+
+               This program is in the public domain.
+
+*/
+#include <stdio.h>
+
+/*  ENCODE  -- Encode binary file into base64.  */
+#include <stdlib.h>
+#include <ctype.h>
+
+#include "base64.h"
+
+static unsigned char dtable[512];
+
+void buffer_new(struct buffer_st *b)
+{
+  b->length = 512;
+  b->data = malloc(sizeof(char)*(b->length));
+  b->data[0] = 0;
+  b->ptr = b->data;
+  b->offset = 0;
+}
+
+void buffer_add(struct buffer_st *b, char c)
+{
+  *(b->ptr++) = c;
+  b->offset++;
+  if (b->offset == b->length) {
+    b->length += 512;
+    b->data = realloc(b->data, b->length);
+    b->ptr = b->data + b->offset;
+  }
+}
+
+void buffer_delete(struct buffer_st *b)
+{
+  free(b->data);
+  b->length = 0;
+  b->offset = 0;
+  b->ptr = NULL;
+  b->data = NULL;
+}
+
+void base64_encode(struct buffer_st *b, const char *source, int length)
+{
+  int i, hiteof = 0;
+  int offset = 0;
+  int olen;
+  
+  olen = 0;
+  
+  buffer_new(b);
+  
+  /*   Fill dtable with character encodings.  */
+  
+  for (i = 0; i < 26; i++) {
+    dtable[i] = 'A' + i;
+    dtable[26 + i] = 'a' + i;
+  }
+  for (i = 0; i < 10; i++) {
+    dtable[52 + i] = '0' + i;
+  }
+  dtable[62] = '+';
+  dtable[63] = '/';
+  
+  while (!hiteof) {
+    unsigned char igroup[3], ogroup[4];
+    int c, n;
+    
+    igroup[0] = igroup[1] = igroup[2] = 0;
+    for (n = 0; n < 3; n++) {
+      c = *(source++);
+      offset++;
+      if (offset > length) {
+       hiteof = 1;
+       break;
+      }
+      igroup[n] = (unsigned char) c;
+    }
+    if (n > 0) {
+      ogroup[0] = dtable[igroup[0] >> 2];
+      ogroup[1] = dtable[((igroup[0] & 3) << 4) | (igroup[1] >> 4)];
+      ogroup[2] = dtable[((igroup[1] & 0xF) << 2) | (igroup[2] >> 6)];
+      ogroup[3] = dtable[igroup[2] & 0x3F];
+      
+      /* Replace characters in output stream with "=" pad
+        characters if fewer than three characters were
+        read from the end of the input stream. */
+      
+      if (n < 3) {
+       ogroup[3] = '=';
+       if (n < 2) {
+         ogroup[2] = '=';
+       }
+      }
+      for (i = 0; i < 4; i++) {
+       buffer_add(b, ogroup[i]);
+       if (!(b->offset % 72)) {
+         /* buffer_add(b, '\r'); */
+         buffer_add(b, '\n');
+       }
+      }
+    }
+  }
+  /* buffer_add(b, '\r'); */
+  buffer_add(b, '\n');
+}
+
+void base64_decode(struct buffer_st *bfr, const char *source, int length)
+{
+    int i;
+    int offset = 0;
+    int endoffile;
+    int count;
+
+    buffer_new(bfr);
+
+    for (i = 0; i < 255; i++) {
+       dtable[i] = 0x80;
+    }
+    for (i = 'A'; i <= 'Z'; i++) {
+        dtable[i] = 0 + (i - 'A');
+    }
+    for (i = 'a'; i <= 'z'; i++) {
+        dtable[i] = 26 + (i - 'a');
+    }
+    for (i = '0'; i <= '9'; i++) {
+        dtable[i] = 52 + (i - '0');
+    }
+    dtable['+'] = 62;
+    dtable['/'] = 63;
+    dtable['='] = 0;
+
+    endoffile = 0;
+
+    /*CONSTANTCONDITION*/
+    while (1) {
+       unsigned char a[4], b[4], o[3];
+
+       for (i = 0; i < 4; i++) {
+           int c;
+           while (1) {
+             c = *(source++);
+             offset++;
+             if (offset > length) endoffile = 1;
+             if (isspace(c) || c == '\n' || c == '\r') continue;
+             break;
+           }
+
+           if (endoffile) {
+             /*
+               if (i > 0) {
+                    fprintf(stderr, "Input file incomplete.\n");
+                   exit(1);
+               }
+             */
+               return;
+           }
+
+           if (dtable[c] & 0x80) {
+             /*
+             fprintf(stderr, "Offset %i length %i\n", offset, length);
+             fprintf(stderr, "character '%c:%x:%c' in input file.\n", c, c, dtable[c]);
+             exit(1);
+             */
+             i--;
+             continue;
+           }
+           a[i] = (unsigned char) c;
+           b[i] = (unsigned char) dtable[c];
+       }
+       o[0] = (b[0] << 2) | (b[1] >> 4);
+       o[1] = (b[1] << 4) | (b[2] >> 2);
+       o[2] = (b[2] << 6) | b[3];
+        i = a[2] == '=' ? 1 : (a[3] == '=' ? 2 : 3);
+       count = 0;
+       while (count < i) {
+         buffer_add(bfr, o[count++]);
+       }
+       if (i < 3) {
+           return;
+       }
+    }
+}
diff --git a/trunk/php/xmlrpc/libxmlrpc/base64.h b/trunk/php/xmlrpc/libxmlrpc/base64.h
new file mode 100644 (file)
index 0000000..4cf156a
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+
+          Encode or decode file as MIME base64 (RFC 1341)
+
+                           by John Walker
+                      http://www.fourmilab.ch/
+
+               This program is in the public domain.
+
+*/
+
+
+struct buffer_st {
+  char *data;
+  int length;
+  char *ptr;
+  int offset;
+};
+
+void buffer_new(struct buffer_st *b);
+void buffer_add(struct buffer_st *b, char c);
+void buffer_delete(struct buffer_st *b);
+
+void base64_encode(struct buffer_st *b, const char *source, int length);
+void base64_decode(struct buffer_st *b, const char *source, int length);
+
+/*
+#define DEBUG_MALLOC
+ */
+
+#ifdef DEBUG_MALLOC
+void *_malloc_real(size_t s, char *file, int line);
+void _free_real(void *p, char *file, int line);
+
+#define malloc(s)      _malloc_real(s,__FILE__,__LINE__)
+#define free(p)                _free_real(p, __FILE__,__LINE__)
+#endif
+
diff --git a/trunk/php/xmlrpc/libxmlrpc/encodings.c b/trunk/php/xmlrpc/libxmlrpc/encodings.c
new file mode 100644 (file)
index 0000000..1637a09
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2000 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifndef PHP_WIN32
+#include <php_config.h>
+#else
+#include <config.w32.h>
+#include <stdlib.h>
+#endif
+
+static const char rcsid[] = "#(@) $Id$";
+
+#include <errno.h>
+
+#ifdef HAVE_GICONV_H
+#include <giconv.h>
+#else
+#include <iconv.h>
+#endif
+
+#include "encodings.h"
+
+static char* convert(const char* src, int src_len, int *new_len, const char* from_enc, const char* to_enc) {
+   char* outbuf = 0;
+
+   if(src && src_len && from_enc && to_enc) {
+      size_t outlenleft = src_len;
+      size_t inlenleft = src_len;
+      int outlen = src_len;
+      iconv_t ic = iconv_open(to_enc, from_enc);
+      char* out_ptr = 0;
+
+      if(ic != (iconv_t)-1) {
+         size_t st;
+         outbuf = (char*)malloc(outlen + 1);
+
+         if(outbuf) {
+            out_ptr = (char*)outbuf;
+            while(inlenleft) {
+               st = iconv(ic, (char**)&src, &inlenleft, &out_ptr, &outlenleft);
+               if(st == -1) {
+                  if(errno == E2BIG) {
+                     int diff = out_ptr - outbuf;
+                     outlen += inlenleft;
+                     outlenleft += inlenleft;
+                     outbuf = (char*)realloc(outbuf, outlen + 1);
+                     if(!outbuf) {
+                        break;
+                     }
+                     out_ptr = outbuf + diff;
+                  }
+                  else {
+                     free(outbuf);
+                     outbuf = 0;
+                     break;
+                  }
+               }
+            }
+         }
+         iconv_close(ic);
+      }
+      outlen -= outlenleft;
+
+      if(new_len) {
+         *new_len = outbuf ? outlen : 0;
+      }
+      if(outbuf) {
+         outbuf[outlen] = 0;
+      }
+   }
+   return outbuf;
+}
+
+/* returns a new string that must be freed */
+char* utf8_encode(const char *s, int len, int *newlen, const char* encoding)
+{
+   return convert(s, len, newlen, encoding, "UTF-8");
+}
+
+/* returns a new string, possibly decoded */
+char* utf8_decode(const char *s, int len, int *newlen, const char* encoding)
+{
+   return convert(s, len, newlen, "UTF-8", encoding);
+}
+
diff --git a/trunk/php/xmlrpc/libxmlrpc/encodings.h b/trunk/php/xmlrpc/libxmlrpc/encodings.h
new file mode 100644 (file)
index 0000000..486360b
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2000 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+
+#ifndef __ENCODINGS__H
+#define __ENCODINGS__H
+
+/* these defines are for legacy purposes. */
+#define encoding_utf_8 "UTF-8"
+typedef const char* ENCODING_ID;
+#define utf8_get_encoding_id_string(desired_enc) ((const char*)desired_enc)
+#define utf8_get_encoding_id_from_string(id_string) ((ENCODING_ID)id_string)
+
+char* utf8_encode(const char *s, int len, int *newlen, ENCODING_ID encoding);
+char* utf8_decode(const char *s, int len, int *newlen, ENCODING_ID encoding);
+
+#endif /* __ENCODINGS__H  */
diff --git a/trunk/php/xmlrpc/libxmlrpc/queue.c b/trunk/php/xmlrpc/libxmlrpc/queue.c
new file mode 100644 (file)
index 0000000..2418738
--- /dev/null
@@ -0,0 +1,982 @@
+static const char rcsid[] = "#(@) $Id$";
+
+/* 
+ * Date last modified: Jan 2001
+ * Modifications by Dan Libby (dan@libby.com), including:
+ *  - various fixes, null checks, etc
+ *  - addition of Q_Iter funcs, macros
+ */
+
+
+/*-**************************************************************
+ *
+ *  File : q.c
+ *
+ *  Author: Peter Yard [1993.01.02] -- 02 Jan 1993
+ *
+ *  Disclaimer: This code is released to the public domain.
+ *
+ *  Description:
+ *      Generic double ended queue (Deque pronounced DEK) for handling
+ *      any data types, with sorting.
+ *
+ *      By use of various functions in this module the caller
+ *      can create stacks, queues, lists, doubly linked lists,
+ *      sorted lists, indexed lists.  All lists are dynamic.
+ *
+ *      It is the responsibility of the caller to malloc and free
+ *      memory for insertion into the queue. A pointer to the object
+ *      is used so that not only can any data be used but various kinds
+ *      of data can be pushed on the same queue if one so wished e.g.
+ *      various length string literals mixed with pointers to structures
+ *      or integers etc.
+ *
+ *  Enhancements:
+ *      A future improvement would be the option of multiple "cursors"
+ *      so that multiple locations could occur in the one queue to allow
+ *      placemarkers and additional flexibility.  Perhaps even use queue
+ *      itself to have a list of cursors.
+ *
+ * Usage:
+ *
+ *          /x init queue x/
+ *          queue  q;
+ *          Q_Init(&q);
+ *
+ *      To create a stack :
+ *
+ *          Q_PushHead(&q, &mydata1); /x push x/
+ *          Q_PushHead(&q, &mydata2);
+ *          .....
+ *          data_ptr = Q_PopHead(&q); /x pop x/
+ *          .....
+ *          data_ptr = Q_Head(&q);   /x top of stack x/
+ *
+ *      To create a FIFO:
+ *
+ *          Q_PushHead(&q, &mydata1);
+ *          .....
+ *          data_ptr = Q_PopTail(&q);
+ *
+ *      To create a double list:
+ *
+ *          data_ptr = Q_Head(&q);
+ *          ....
+ *          data_ptr = Q_Next(&q);
+ *          data_ptr = Q_Tail(&q);
+ *          if (Q_IsEmpty(&q)) ....
+ *          .....
+ *          data_ptr = Q_Previous(&q);
+ *
+ *      To create a sorted list:
+ *
+ *          Q_PushHead(&q, &mydata1); /x push x/
+ *          Q_PushHead(&q, &mydata2);
+ *          .....
+ *          if (!Q_Sort(&q, MyFunction))
+ *              .. error ..
+ *
+ *          /x fill in key field of mydata1.
+ *           * NB: Q_Find does linear search
+ *           x/
+ *
+ *          if (Q_Find(&q, &mydata1, MyFunction))
+ *          {
+ *              /x found it, queue cursor now at correct record x/
+ *              /x can retrieve with x/
+ *              data_ptr = Q_Get(&q);
+ *
+ *              /x alter data , write back with x/
+ *              Q_Put(&q, data_ptr);
+ *          }
+ *
+ *          /x Search with binary search x/
+ *          if (Q_Seek(&q, &mydata, MyFunction))
+ *              /x etc x/
+ *
+ *
+ ****************************************************************/
+
+#ifdef _WIN32
+#include "xmlrpc_win32.h"
+#endif
+#include <stdlib.h>
+#include "queue.h"
+
+
+static void QuickSort(void *list[], int low, int high,
+                      int (*Comp)(const void *, const void *));
+static int  Q_BSearch(queue *q, void *key,
+                      int (*Comp)(const void *, const void *));
+
+/* The index: a pointer to pointers */
+
+static  void        **index;
+static  datanode    **posn_index;
+
+
+/***
+ *
+ ** function    : Q_Init
+ *
+ ** purpose     : Initialise queue object and pointers.
+ *
+ ** parameters  : 'queue' pointer.
+ *
+ ** returns     : True_ if init successful else False_
+ *
+ ** comments    :
+ ***/
+
+int Q_Init(queue  *q)
+{
+   if(q) {
+      q->head = q->tail = NULL;
+      q->cursor = q->head;
+      q->size = 0;
+      q->sorted = False_;
+   }
+
+   return True_;
+}
+
+/***
+ *
+ ** function    : Q_AtHead
+ *
+ ** purpose     : tests if cursor is at head of queue
+ *
+ ** parameters  : 'queue' pointer.
+ *
+ ** returns     : boolean - True_ is at head else False_
+ *
+ ** comments    :
+ *
+ ***/
+
+int Q_AtHead(queue *q)
+{
+   return(q && q->cursor == q->head);
+}
+
+
+/***
+ *
+ ** function    : Q_AtTail
+ *
+ ** purpose     : boolean test if cursor at tail of queue
+ *
+ ** parameters  : 'queue' pointer to test.
+ *
+ ** returns     : True_ or False_
+ *
+ ** comments    :
+ *
+ ***/
+
+int Q_AtTail(queue *q)
+{
+   return(q && q->cursor == q->tail);
+}
+
+
+/***
+ *
+ ** function    : Q_IsEmpty
+ *
+ ** purpose     : test if queue has nothing in it.
+ *
+ ** parameters  : 'queue' pointer
+ *
+ ** returns     : True_ if IsEmpty queue, else False_
+ *
+ ** comments    :
+ *
+ ***/
+
+inline int Q_IsEmpty(queue *q)
+{
+   return(!q || q->size == 0);
+}
+
+/***
+ *
+ ** function    : Q_Size
+ *
+ ** purpose     : return the number of elements in the queue
+ *
+ ** parameters  : queue pointer
+ *
+ ** returns     : number of elements
+ *
+ ** comments    :
+ *
+ ***/
+
+int Q_Size(queue *q)
+{
+   return q ? q->size : 0;
+}
+
+
+/***
+ *
+ ** function    : Q_Head
+ *
+ ** purpose     : position queue cursor to first element (head) of queue.
+ *
+ ** parameters  : 'queue' pointer
+ *
+ ** returns     : pointer to data at head. If queue is IsEmpty returns NULL
+ *
+ ** comments    :
+ *
+ ***/
+
+void *Q_Head(queue *q)
+{
+   if(Q_IsEmpty(q))
+      return NULL;
+
+   q->cursor = q->head;
+
+   return  q->cursor->data;
+}
+
+
+/***
+ *
+ ** function    : Q_Tail
+ *
+ ** purpose     : locate cursor at tail of queue.
+ *
+ ** parameters  : 'queue' pointer
+ *
+ ** returns     : pointer to data at tail , if queue IsEmpty returns NULL
+ *
+ ** comments    :
+ *
+ ***/
+
+void *Q_Tail(queue *q)
+{
+   if(Q_IsEmpty(q))
+      return NULL;
+
+   q->cursor = q->tail;
+
+   return  q->cursor->data;
+}
+
+
+/***
+ *
+ ** function    : Q_PushHead
+ *
+ ** purpose     : put a data pointer at the head of the queue
+ *
+ ** parameters  : 'queue' pointer, void pointer to the data.
+ *
+ ** returns     : True_ if success else False_ if unable to push data.
+ *
+ ** comments    :
+ *
+ ***/
+
+int Q_PushHead(queue *q, void *d)
+{
+   if(q && d) {
+      node    *n;
+      datanode *p;
+
+      p = malloc(sizeof(datanode));
+      if(p == NULL)
+         return False_;
+
+      n = q->head;
+
+      q->head = (node*)p;
+      q->head->prev = NULL;
+
+      if(q->size == 0) {
+         q->head->next = NULL;
+         q->tail = q->head;
+      }
+      else {
+         q->head->next = (datanode*)n;
+         n->prev = q->head;
+      }
+
+      q->head->data = d;
+      q->size++;
+
+      q->cursor = q->head;
+
+      q->sorted = False_;
+
+      return True_;
+   }
+   return False_;
+}
+
+
+
+/***
+ *
+ ** function    : Q_PushTail
+ *
+ ** purpose     : put a data element pointer at the tail of the queue
+ *
+ ** parameters  : queue pointer, pointer to the data
+ *
+ ** returns     : True_ if data pushed, False_ if data not inserted.
+ *
+ ** comments    :
+ *
+ ***/
+
+int Q_PushTail(queue *q, void *d)
+{
+   if(q && d) {
+      node        *p;
+      datanode    *n;
+
+      n = malloc(sizeof(datanode));
+      if(n == NULL)
+         return False_;
+
+      p = q->tail;
+      q->tail = (node *)n;
+
+      if(q->size == 0) {
+         q->tail->prev = NULL;
+         q->head = q->tail;
+      }
+      else {
+         q->tail->prev = (datanode *)p;
+         p->next = q->tail;
+      }
+
+      q->tail->next = NULL;
+
+      q->tail->data =  d;
+      q->cursor = q->tail;
+      q->size++;
+
+      q->sorted = False_;
+
+      return True_;
+   }
+   return False_;
+}
+
+
+
+/***
+ *
+ ** function    : Q_PopHead
+ *
+ ** purpose     : remove and return the top element at the head of the
+ *                queue.
+ *
+ ** parameters  : queue pointer
+ *
+ ** returns     : pointer to data element or NULL if queue is IsEmpty.
+ *
+ ** comments    :
+ *
+ ***/
+
+void *Q_PopHead(queue *q)
+{
+   datanode    *n;
+   void        *d;
+
+   if(Q_IsEmpty(q))
+      return NULL;
+
+   d = q->head->data;
+   n = q->head->next;
+   free(q->head);
+
+   q->size--;
+
+   if(q->size == 0)
+      q->head = q->tail = q->cursor = NULL;
+   else {
+      q->head = (node *)n;
+      q->head->prev = NULL;
+      q->cursor = q->head;
+   }
+
+   q->sorted = False_;
+
+   return d;
+}
+
+
+/***
+ *
+ ** function    : Q_PopTail
+ *
+ ** purpose     : remove element from tail of queue and return data.
+ *
+ ** parameters  : queue pointer
+ *
+ ** returns     : pointer to data element that was at tail. NULL if queue
+ *                IsEmpty.
+ *
+ ** comments    :
+ *
+ ***/
+
+void *Q_PopTail(queue *q)
+{
+   datanode    *p;
+   void        *d;
+
+   if(Q_IsEmpty(q))
+      return NULL;
+
+   d = q->tail->data;
+   p = q->tail->prev;
+   free(q->tail);
+   q->size--;
+
+   if(q->size == 0)
+      q->head = q->tail = q->cursor = NULL;
+   else {
+      q->tail = (node *)p;
+      q->tail->next = NULL;
+      q->cursor = q->tail;
+   }
+
+   q->sorted = False_;
+
+   return d;
+}
+
+
+
+/***
+ *
+ ** function    : Q_Next
+ *
+ ** purpose     : Move to the next element in the queue without popping
+ *
+ ** parameters  : queue pointer.
+ *
+ ** returns     : pointer to data element of new element or NULL if end
+ *                of the queue.
+ *
+ ** comments    : This uses the cursor for the current position. Q_Next
+ *                only moves in the direction from the head of the queue
+ *                to the tail.
+ ***/
+
+void *Q_Next(queue *q)
+{
+   if(!q)
+      return NULL;
+
+   if(!q->cursor || q->cursor->next == NULL)
+      return NULL;
+
+   q->cursor = (node *)q->cursor->next;
+
+   return  q->cursor->data ;
+}
+
+
+
+/***
+ *
+ ** function    : Q_Previous
+ *
+ ** purpose     : Opposite of Q_Next. Move to next element closer to the
+ *                head of the queue.
+ *
+ ** parameters  : pointer to queue
+ *
+ ** returns     : pointer to data of new element else NULL if queue IsEmpty
+ *
+ ** comments    : Makes cursor move towards the head of the queue.
+ *
+ ***/
+
+void *Q_Previous(queue *q)
+{
+   if(!q)
+      return NULL;
+   
+   if(q->cursor->prev == NULL)
+      return NULL;
+
+   q->cursor = (node *)q->cursor->prev;
+
+   return q->cursor->data;
+}
+
+
+void *Q_Iter_Del(queue *q, q_iter iter)
+{
+   void        *d;
+   datanode    *n, *p;
+
+   if(!q)
+      return NULL;
+
+   if(iter == NULL)
+      return NULL;
+
+   if(iter == (q_iter)q->head)
+      return Q_PopHead(q);
+
+   if(iter == (q_iter)q->tail)
+      return Q_PopTail(q);
+
+   n = ((node*)iter)->next;
+   p = ((node*)iter)->prev;
+   d = ((node*)iter)->data;
+
+   free(iter);
+
+   if(p) {
+      p->next = n;
+   }
+   if (q->cursor == (node*)iter) {
+      if (p) {
+         q->cursor = p;
+      } else {
+         q->cursor = n;
+      }
+   }
+
+
+   if (n != NULL) {
+       n->prev = p;
+   }
+
+   q->size--;
+
+   q->sorted = False_;
+
+   return d;
+}
+
+
+
+/***
+ *
+ ** function    : Q_DelCur
+ *
+ ** purpose     : Delete the current queue element as pointed to by
+ *                the cursor.
+ *
+ ** parameters  : queue pointer
+ *
+ ** returns     : pointer to data element.
+ *
+ ** comments    : WARNING! It is the responsibility of the caller to
+ *                free any memory. Queue cannot distinguish between
+ *                pointers to literals and malloced memory.
+ *
+ ***/
+
+void *Q_DelCur(queue* q) {
+   if(q) {
+      return Q_Iter_Del(q, (q_iter)q->cursor);
+   }
+   return 0;
+}
+
+
+/***
+ *
+ ** function    : Q_Destroy
+ *
+ ** purpose     : Free all queue resources
+ *
+ ** parameters  : queue pointer
+ *
+ ** returns     : null.
+ *
+ ** comments    : WARNING! It is the responsibility of the caller to
+ *                free any memory. Queue cannot distinguish between
+ *                pointers to literals and malloced memory.
+ *
+ ***/
+
+void Q_Destroy(queue *q)
+{
+   while(!Q_IsEmpty(q)) {
+      Q_PopHead(q);
+   }
+}
+
+
+/***
+ *
+ ** function    : Q_Get
+ *
+ ** purpose     : get the pointer to the data at the cursor location
+ *
+ ** parameters  : queue pointer
+ *
+ ** returns     : data element pointer
+ *
+ ** comments    :
+ *
+ ***/
+
+void *Q_Get(queue *q)
+{
+   if(!q)
+      return NULL;
+
+   if(q->cursor == NULL)
+      return NULL;
+   return q->cursor->data;
+}
+
+
+
+/***
+ *
+ ** function    : Q_Put
+ *
+ ** purpose     : replace pointer to data with new pointer to data.
+ *
+ ** parameters  : queue pointer, data pointer
+ *
+ ** returns     : boolean- True_ if successful, False_ if cursor at NULL
+ *
+ ** comments    :
+ *
+ ***/
+
+int Q_Put(queue *q, void *data)
+{
+   if(q && data) {
+      if(q->cursor == NULL)
+         return False_;
+
+      q->cursor->data = data;
+      return True_;
+   }
+   return False_;
+}
+
+
+/***
+ *
+ ** function    : Q_Find
+ *
+ ** purpose     : Linear search of queue for match with key in *data
+ *
+ ** parameters  : queue pointer q, data pointer with data containing key
+ *                comparison function here called Comp.
+ *
+ ** returns     : True_ if found , False_ if not in queue.
+ *
+ ** comments    : Useful for small queues that are constantly changing
+ *                and would otherwise need constant sorting with the
+ *                Q_Seek function.
+ *                For description of Comp see Q_Sort.
+ *                Queue cursor left on position found item else at end.
+ *
+ ***/
+
+int Q_Find(queue *q, void *data,
+           int (*Comp)(const void *, const void *))
+{
+   void *d;
+
+   if (q == NULL) {
+       return False_;
+   }
+
+   d = Q_Head(q);
+   do {
+      if(Comp(d, data) == 0)
+         return True_;
+      d = Q_Next(q);
+   } while(!Q_AtTail(q));
+
+   if(Comp(d, data) == 0)
+      return True_;
+
+   return False_;
+}
+
+/*========  Sorted Queue and Index functions   ========= */
+
+
+static void QuickSort(void *list[], int low, int high,
+                      int (*Comp)(const void *, const void *))
+{
+   int     flag = 1, i, j;
+   void    *key, *temp;
+
+   if(low < high) {
+      i = low;
+      j = high + 1;
+
+      key = list[ low ];
+
+      while(flag) {
+         i++;
+         while(Comp(list[i], key) < 0)
+            i++;
+
+         j--;
+         while(Comp(list[j], key) > 0)
+            j--;
+
+         if(i < j) {
+            temp = list[i];
+            list[i] = list[j];
+            list[j] = temp;
+         }
+         else  flag = 0;
+      }
+
+      temp = list[low];
+      list[low] = list[j];
+      list[j] = temp;
+
+      QuickSort(list, low, j-1, Comp);
+      QuickSort(list, j+1, high, Comp);
+   }
+}
+
+
+/***
+ *
+ ** function    : Q_Sort
+ *
+ ** purpose     : sort the queue and allow index style access.
+ *
+ ** parameters  : queue pointer, comparison function compatible with
+ *                with 'qsort'.
+ *
+ ** returns     : True_ if sort succeeded. False_ if error occurred.
+ *
+ ** comments    : Comp function supplied by caller must return
+ *                  -1 if data1  < data2
+ *                   0 if data1 == data2
+ *                  +1 if data1  > data2
+ *
+ *                    for Comp(data1, data2)
+ *
+ *                If queue is already sorted it frees the memory of the
+ *                old index and starts again.
+ *
+ ***/
+
+int Q_Sort(queue *q, int (*Comp)(const void *, const void *))
+{
+   int         i;
+   void        *d;
+   datanode    *dn;
+
+   /* if already sorted free memory for tag array */
+
+   if(q->sorted) {
+      free(index);
+      free(posn_index);
+      q->sorted = False_;
+   }
+
+   /* Now allocate memory of array, array of pointers */
+
+   index = malloc(q->size * sizeof(q->cursor->data));
+   if(index == NULL)
+      return False_;
+
+   posn_index = malloc(q->size * sizeof(q->cursor));
+   if(posn_index == NULL) {
+      free(index);
+      return False_;
+   }
+
+   /* Walk queue putting pointers into array */
+
+   d = Q_Head(q);
+   for(i=0; i < q->size; i++) {
+      index[i] = d;
+      posn_index[i] = q->cursor;
+      d = Q_Next(q);
+   }
+
+   /* Now sort the index */
+
+   QuickSort(index, 0, q->size - 1, Comp);
+
+   /* Rearrange the actual queue into correct order */
+
+   dn = q->head;
+   i = 0;
+   while(dn != NULL) {
+      dn->data = index[i++];
+      dn = dn->next;
+   }
+
+   /* Re-position to original element */
+
+   if(d != NULL)
+      Q_Find(q, d, Comp);
+   else  Q_Head(q);
+
+   q->sorted = True_;
+
+   return True_;
+}
+
+
+/***
+ *
+ ** function    : Q_BSearch
+ *
+ ** purpose     : binary search of queue index for node containing key
+ *
+ ** parameters  : queue pointer 'q', data pointer of key 'key',
+ *                  Comp comparison function.
+ *
+ ** returns     : integer index into array of node pointers,
+ *                or -1 if not found.
+ *
+ ** comments    : see Q_Sort for description of 'Comp' function.
+ *
+ ***/
+
+static int Q_BSearch( queue *q, void *key,
+                      int (*Comp)(const void *, const void*))
+{
+   int low, mid, hi, val;
+
+   low = 0;
+   hi = q->size - 1;
+
+   while(low <= hi) {
+      mid = (low + hi) / 2;
+      val = Comp(key, index[ mid ]);
+
+      if(val < 0)
+         hi = mid - 1;
+
+      else if(val > 0)
+         low = mid + 1;
+
+      else /* Success */
+         return mid;
+   }
+
+   /* Not Found */
+
+   return -1;
+}
+
+
+/***
+ *
+ ** function    : Q_Seek
+ *
+ ** purpose     : use index to locate data according to key in 'data'
+ *
+ ** parameters  : queue pointer 'q', data pointer 'data', Comp comparison
+ *                function.
+ *
+ ** returns     : pointer to data or NULL if could not find it or could
+ *                not sort queue.
+ *
+ ** comments    : see Q_Sort for description of 'Comp' function.
+ *
+ ***/
+
+void *Q_Seek(queue *q, void *data, int (*Comp)(const void *, const void *))
+{
+   int idx;
+
+   if (q == NULL) {
+       return NULL;
+   }
+
+   if(!q->sorted) {
+      if(!Q_Sort(q, Comp))
+         return NULL;
+   }
+
+   idx = Q_BSearch(q, data, Comp);
+
+   if(idx < 0)
+      return NULL;
+
+   q->cursor = posn_index[idx];
+
+   return index[idx];
+}
+
+
+
+/***
+ *
+ ** function    : Q_Insert
+ *
+ ** purpose     : Insert an element into an indexed queue
+ *
+ ** parameters  : queue pointer 'q', data pointer 'data', Comp comparison
+ *                function.
+ *
+ ** returns     : pointer to data or NULL if could not find it or could
+ *                not sort queue.
+ *
+ ** comments    : see Q_Sort for description of 'Comp' function.
+ *                WARNING! This code can be very slow since each new
+ *                element means a new Q_Sort.  Should only be used for
+ *                the insertion of the odd element ,not the piecemeal
+ *                building of an entire queue.
+ ***/
+
+int Q_Insert(queue *q, void *data, int (*Comp)(const void *, const void *))
+{
+   if (q == NULL) {
+       return False_;
+   }
+
+   Q_PushHead(q, data);
+
+   if(!Q_Sort(q, Comp))
+      return False_;
+
+   return True_;
+}
+
+/* read only funcs for iterating through queue. above funcs modify queue */
+q_iter Q_Iter_Head(queue *q) {
+   return q ? (q_iter)q->head : NULL;
+}
+
+q_iter Q_Iter_Tail(queue *q) {
+   return q ? (q_iter)q->tail : NULL;
+}
+
+q_iter Q_Iter_Next(q_iter qi) {
+   return qi ? (q_iter)((node*)qi)->next : NULL;
+}
+
+q_iter Q_Iter_Prev(q_iter qi) {
+   return qi ? (q_iter)((node*)qi)->prev : NULL;
+}
+
+void * Q_Iter_Get(q_iter qi) {
+   return qi ? ((node*)qi)->data : NULL;
+}
+
+int Q_Iter_Put(q_iter qi, void* data) {
+   if(qi) {
+      ((node*)qi)->data = data;
+      return True_;
+   }
+   return False_;
+}
diff --git a/trunk/php/xmlrpc/libxmlrpc/queue.h b/trunk/php/xmlrpc/libxmlrpc/queue.h
new file mode 100644 (file)
index 0000000..be73f6d
--- /dev/null
@@ -0,0 +1,89 @@
+/* 
+ * Date last modified: Jan 2001
+ * Modifications by Dan Libby (dan@libby.com), including:
+ *  - various fixes, null checks, etc
+ *  - addition of Q_Iter funcs, macros
+ */
+
+/*
+ *  File : q.h
+ *
+ *  Peter Yard  02 Jan 1993.
+ *
+ *  Disclaimer: This code is released to the public domain.
+ */
+
+#ifndef Q__H
+#define Q__H
+
+#ifndef False_
+   #define False_ 0
+#endif
+
+#ifndef True_
+   #define True_ 1
+#endif
+
+typedef struct nodeptr datanode;
+
+typedef struct nodeptr {
+   void        *data ;
+   datanode    *prev, *next ;
+} node ;
+
+/* For external use with Q_Iter* funcs */
+typedef struct nodeptr* q_iter;
+
+typedef struct {
+   node        *head, *tail, *cursor;
+   int         size, sorted, item_deleted;
+} queue;
+
+typedef  struct {
+   void        *dataptr;
+   node        *loc ;
+} index_elt ;
+
+
+int    Q_Init(queue  *q);
+void   Q_Destroy(queue *q);
+int    Q_IsEmpty(queue *q);
+int    Q_Size(queue *q);
+int    Q_AtHead(queue *q);
+int    Q_AtTail(queue *q);
+int    Q_PushHead(queue *q, void *d);
+int    Q_PushTail(queue *q, void *d);
+void  *Q_Head(queue *q);
+void  *Q_Tail(queue *q);
+void  *Q_PopHead(queue *q);
+void  *Q_PopTail(queue *q);
+void  *Q_Next(queue *q);
+void  *Q_Previous(queue *q);
+void  *Q_DelCur(queue *q);
+void  *Q_Get(queue *q);
+int    Q_Put(queue *q, void *data);
+int    Q_Sort(queue *q, int (*Comp)(const void *, const void *));
+int    Q_Find(queue *q, void *data,
+              int (*Comp)(const void *, const void *));
+void  *Q_Seek(queue *q, void *data,
+              int (*Comp)(const void *, const void *));
+int    Q_Insert(queue *q, void *data,
+                int (*Comp)(const void *, const void *));
+
+/* read only funcs for iterating through queue. above funcs modify queue */
+q_iter Q_Iter_Head(queue *q);
+q_iter Q_Iter_Tail(queue *q);
+q_iter Q_Iter_Next(q_iter qi);
+q_iter Q_Iter_Prev(q_iter qi);
+void*  Q_Iter_Get(q_iter qi);
+int    Q_Iter_Put(q_iter qi, void* data); /* not read only! here for completeness. */
+void*  Q_Iter_Del(queue *q, q_iter iter); /* not read only! here for completeness. */
+
+/* Fast (macro'd) versions of above */
+#define Q_Iter_Head_F(q) (q ? (q_iter)((queue*)q)->head : NULL)
+#define Q_Iter_Tail_F(q) (q ? (q_iter)((queue*)q)->tail : NULL)
+#define Q_Iter_Next_F(qi) (qi ? (q_iter)((node*)qi)->next : NULL)
+#define Q_Iter_Prev_F(qi) (qi ? (q_iter)((node*)qi)->prev : NULL)
+#define Q_Iter_Get_F(qi) (qi ? ((node*)qi)->data : NULL)
+
+#endif /* Q__H */
diff --git a/trunk/php/xmlrpc/libxmlrpc/simplestring.c b/trunk/php/xmlrpc/libxmlrpc/simplestring.c
new file mode 100644 (file)
index 0000000..be2aba5
--- /dev/null
@@ -0,0 +1,251 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2000 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+
+static const char rcsid[] = "#(@) $Id$";
+
+
+#define SIMPLESTRING_INCR 32
+
+/****h* ABOUT/simplestring
+ * NAME
+ *   simplestring
+ * AUTHOR
+ *   Dan Libby, aka danda  (dan@libby.com)
+ * CREATION DATE
+ *   06/2000
+ * HISTORY
+ *   $Log: simplestring.c,v $
+ *   Revision 1.4  2003/12/16 21:00:21  sniper
+ *   Fix some compile warnings (patch by Joe Orton)
+ *
+ *   Revision 1.3  2002/08/22 01:25:50  sniper
+ *   kill some compile warnings
+ *
+ *   Revision 1.2  2002/07/05 04:43:53  danda
+ *   merged in updates from SF project.  bring php repository up to date with xmlrpc-epi version 0.51
+ *
+ *   Revision 1.4  2002/02/13 20:58:50  danda
+ *   patch to make source more windows friendly, contributed by Jeff Lawson
+ *
+ *   Revision 1.3  2001/09/29 21:58:05  danda
+ *   adding cvs log to history section
+ *
+ *   10/15/2000 -- danda -- adding robodoc documentation
+ * PORTABILITY
+ *   Coded on RedHat Linux 6.2.  Builds on Solaris x86.  Should build on just
+ *   about anything with minor mods.
+ * NOTES
+ *   This code was written primarily for xmlrpc, but has found some other uses.
+ *
+ *   simplestring is, as the name implies, a simple API for dealing with C strings.
+ *   Why would I write yet another string API?  Because I couldn't find any that were
+ *   a) free / GPL, b) simple/lightweight, c) fast, not doing unneccesary strlens all
+ *   over the place.  So.  It is simple, and it seems to work, and it is pretty fast.
+ *
+ *   Oh, and it is also binary safe, ie it can handle strings with embedded NULLs,
+ *   so long as the real length is passed in.
+ *   
+ *   And the masses rejoiced.
+ *
+ * BUGS
+ *   there must be some.
+ ******/
+
+#include <stdlib.h>
+#include <string.h>
+#include "simplestring.h"
+
+#define my_free(thing)  if(thing) {free(thing); thing = 0;}
+
+/*----------------------**
+* Begin String Functions *
+*-----------------------*/
+
+/****f* FUNC/simplestring_init
+ * NAME
+ *   simplestring_init
+ * SYNOPSIS
+ *   void simplestring_init(simplestring* string)
+ * FUNCTION
+ *   initialize string
+ * INPUTS
+ *   string - pointer to a simplestring struct that will be initialized
+ * RESULT
+ *   void
+ * NOTES
+ * SEE ALSO
+ *   simplestring_free ()
+ *   simplestring_clear ()
+ * SOURCE
+ */
+void simplestring_init(simplestring* string) {
+   memset(string, 0, sizeof(simplestring));
+}
+/******/
+
+static void simplestring_init_str(simplestring* string) {
+   string->str = (char*)malloc(SIMPLESTRING_INCR);
+   if(string->str) {
+      string->str[0] = 0;
+      string->len = 0;
+      string->size = SIMPLESTRING_INCR;
+   }
+   else {
+      string->size = 0;
+   }
+}
+
+/****f* FUNC/simplestring_clear
+ * NAME
+ *   simplestring_clear
+ * SYNOPSIS
+ *   void simplestring_clear(simplestring* string)
+ * FUNCTION
+ *   clears contents of a string
+ * INPUTS
+ *   string - the string value to clear
+ * RESULT
+ *   void
+ * NOTES
+ *   This function is very fast as it does not de-allocate any memory.
+ * SEE ALSO
+ * 
+ * SOURCE
+ */
+void simplestring_clear(simplestring* string) {
+   if(string->str) {
+      string->str[0] = 0;
+   }
+   string->len = 0;
+}
+/******/
+
+/****f* FUNC/simplestring_free
+ * NAME
+ *   simplestring_free
+ * SYNOPSIS
+ *   void simplestring_free(simplestring* string)
+ * FUNCTION
+ *   frees contents of a string, if any. Does *not* free the simplestring struct itself.
+ * INPUTS
+ *   string - value containing string to be free'd
+ * RESULT
+ *   void
+ * NOTES
+ *   caller is responsible for allocating and freeing simplestring* struct itself.
+ * SEE ALSO
+ *   simplestring_init ()
+ * SOURCE
+ */
+void simplestring_free(simplestring* string) {
+   if(string && string->str) {
+      my_free(string->str);
+      string->len = 0;
+   }
+}
+/******/
+
+/****f* FUNC/simplestring_addn
+ * NAME
+ *   simplestring_addn
+ * SYNOPSIS
+ *   void simplestring_addn(simplestring* string, const char* add, int add_len)
+ * FUNCTION
+ *   copies n characters from source to target string
+ * INPUTS
+ *   target  - target string
+ *   source  - source string
+ *   add_len - number of characters to copy
+ * RESULT
+ *   void
+ * NOTES
+ * SEE ALSO
+ *   simplestring_add ()
+ * SOURCE
+ */
+void simplestring_addn(simplestring* target, const char* source, int add_len) {
+   if(target && source) {
+      if(!target->str) {
+         simplestring_init_str(target);
+      }
+      if(target->len + add_len + 1 > target->size) {
+         /* newsize is current length + new length */
+         int newsize = target->len + add_len + 1;
+         int incr = target->size * 2;
+
+         /* align to SIMPLESTRING_INCR increments */
+         newsize = newsize - (newsize % incr) + incr;
+         target->str = (char*)realloc(target->str, newsize);
+
+         target->size = target->str ? newsize : 0;
+      }
+
+      if(target->str) {
+         if(add_len) {
+            memcpy(target->str + target->len, source, add_len);
+         }
+         target->len += add_len;
+         target->str[target->len] = 0; /* null terminate */
+      }
+   }
+}
+/******/
+
+/****f* FUNC/simplestring_add
+ * NAME
+ *   simplestring_add
+ * SYNOPSIS
+ *   void simplestring_add(simplestring* string, const char* add)
+ * FUNCTION
+ *   appends a string of unknown length from source to target
+ * INPUTS
+ *   target - the target string to append to
+ *   source - the source string of unknown length
+ * RESULT
+ *   void
+ * NOTES
+ * SEE ALSO
+ *   simplestring_addn ()
+ * SOURCE
+ */
+void simplestring_add(simplestring* target, const char* source) {
+   if(target && source) {
+      simplestring_addn(target, source, strlen(source));
+   }
+}
+/******/
+
+
+/*----------------------
+* End String Functions *
+*--------------------**/
diff --git a/trunk/php/xmlrpc/libxmlrpc/simplestring.h b/trunk/php/xmlrpc/libxmlrpc/simplestring.h
new file mode 100644 (file)
index 0000000..c5d98cf
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2000 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+#ifndef __SIMPLESTRING_H__
+ #define __SIMPLESTRING_H__
+
+/*-********************************
+* begin simplestring header stuff *
+**********************************/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+   /****s* struct/simplestring
+ * NAME
+ *  simplestring
+ * NOTES
+ *   represents a string efficiently for fast appending, etc.
+ * SOURCE
+ */
+typedef struct _simplestring {
+   char* str;         /* string buf               */
+   int len;           /* length of string/buf     */
+   int size;          /* size of allocated buffer */
+} simplestring;
+/******/
+
+#ifndef NULL
+ #define NULL 0
+#endif
+
+void simplestring_init(simplestring* string);
+void simplestring_clear(simplestring* string);
+void simplestring_free(simplestring* string);
+void simplestring_add(simplestring* string, const char* add);
+void simplestring_addn(simplestring* string, const char* add, int add_len);
+
+#ifdef __cplusplus
+}
+#endif
+
+/*-******************************
+* end simplestring header stuff *
+********************************/
+
+#endif /* __SIMPLESTRING_H__ */
diff --git a/trunk/php/xmlrpc/libxmlrpc/system_methods.c b/trunk/php/xmlrpc/libxmlrpc/system_methods.c
new file mode 100644 (file)
index 0000000..c3c2b88
--- /dev/null
@@ -0,0 +1,378 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2001 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+
+/****h* ABOUT/system_methods
+ * AUTHOR
+ *   Dan Libby, aka danda  (dan@libby.com)
+ * HISTORY
+ *   $Log: system_methods.c,v $
+ *   Revision 1.2  2002/07/05 04:43:53  danda
+ *   merged in updates from SF project.  bring php repository up to date with xmlrpc-epi version 0.51
+ *
+ *   Revision 1.7  2001/09/29 21:58:05  danda
+ *   adding cvs log to history section
+ *
+ *   4/28/2001 -- danda -- adding system.multicall and separating out system methods.
+ * TODO
+ * NOTES
+ *******/
+
+
+#include "queue.h"
+#include "xmlrpc.h"
+#include "xmlrpc_private.h"
+#include "xmlrpc_introspection_private.h"
+#include "system_methods_private.h"
+#include <string.h>
+#include <stdlib.h>
+#include <stdarg.h>
+
+
+static const char* xsm_introspection_xml =
+"<?xml version='1.0' ?>"
+
+"<introspection version='1.0'>"
+ "<typeList>"
+
+ "<typeDescription name='system.value' basetype='struct' desc='description of a value'>"
+   "<value type='string' name='name' optional='yes'>value identifier</value>"
+   "<value type='string' name='type'>value&apos;s xmlrpc or user-defined type</value>"
+   "<value type='string' name='description'>value&apos;s textual description</value> "
+   "<value type='boolean' name='optional'>true if value is optional, else it is required</value> "
+   "<value type='any' name='member' optional='yes'>a child of this element. n/a for scalar types</value> "
+ "</typeDescription>"
+
+ "<typeDescription name='system.valueList' basetype='array' desc='list of value descriptions'>"
+   "<value type='system.value'/>"
+ "</typeDescription>"
+
+ "<typeDescription name='system.stringList' basetype='array' desc='list of strings'>"
+   "<value type='string'/>"
+ "</typeDescription>"
+
+
+ "</typeList>"
+
+ "<methodList>"
+
+ "<!-- system.describeMethods -->"
+ "<methodDescription name='system.describeMethods'>"
+  "<author>Dan Libby</author>"
+  "<purpose>fully describes the methods and types implemented by this XML-RPC server.</purpose>"
+  "<version>1.1</version>"
+  "<signatures>"
+   "<signature>"
+    "<params>"
+     "<value type='array' name='methodList' optional='yes' desc='a list of methods to be described. if omitted, all are described.'>"
+      "<value type='string'>a valid method name</value>"
+     "</value>"
+    "</params>"
+    "<returns>"
+     "<value type='struct' desc='contains methods list and types list'>"
+      "<value type='array' name='methodList' desc='a list of methods'>"
+       "<value type='struct' desc='representation of a single method'>"
+        "<value type='string' name='name'>method name</value>"
+        "<value type='string' name='version' optional='yes'>method version</value>"
+        "<value type='string' name='author' optional='yes'>method author</value>"
+        "<value type='string' name='purpose' optional='yes'>method purpose</value>"
+        "<value type='array' name='signatures' desc='list of method signatures'>"
+         "<value type='struct' desc='representation of a single signature'>"
+          "<value type='system.valueList' name='params' optional='yes'>parameter list</value>"
+          "<value type='system.valueList' name='returns' optional='yes'>return value list</value>"
+         "</value>"
+        "</value>"
+        "<value type='system.stringList' name='bugs' optional='yes'>list of known bugs</value>"
+        "<value type='system.stringList' name='errors' optional='yes'>list of possible errors and error codes</value>"
+        "<value type='system.stringList' name='examples' optional='yes'>list of examples</value>"
+        "<value type='system.stringList' name='history' optional='yes'>list of modifications</value>"
+        "<value type='system.stringList' name='notes' optional='yes'>list of notes</value>"
+        "<value type='system.stringList' name='see' optional='yes'>see also.  list of related methods</value>"
+        "<value type='system.stringList' name='todo' optional='yes'>list of unimplemented features</value>"
+       "</value>"
+      "</value>"
+      "<value type='array' name='typeList' desc='a list of type descriptions. Typically used for referencing complex types'>"
+       "<value type='system.value'>a type description</value>"
+      "</value>"
+     "</value>"
+    "</returns>"
+   "</signature>"
+  "</signatures>"
+  "<see>"
+   "<item name='system.listMethods' />"
+   "<item name='system.methodSignature' />"
+   "<item name='system.methodHelp' />"
+  "</see>"
+  "<example/>"
+  "<error/>"
+  "<note/>"
+  "<bug/>"
+  "<todo/>"
+ "</methodDescription>"
+
+ "<!-- system.listMethods -->"
+ "<methodDescription name='system.listMethods'>"
+  "<author>Dan Libby</author>"
+  "<purpose>enumerates the methods implemented by this XML-RPC server.</purpose>"
+  "<version>1.0</version>"
+  "<signatures>"
+   "<signature>"
+    "<returns>"
+     "<value type='array' desc='an array of strings'>"
+      "<value type='string'>name of a method implemented by the server.</value>"
+     "</value>"
+    "</returns>"
+   "</signature>"
+  "</signatures>"
+  "<see>"
+   "<item name='system.describeMethods' />"
+   "<item name='system.methodSignature' />"
+   "<item name='system.methodHelp' />"
+  "</see>"
+  "<example/>"
+  "<error/>"
+  "<note/>"
+  "<bug/>"
+  "<todo/>"
+ "</methodDescription>"
+
+ "<!-- system.methodHelp -->"
+ "<methodDescription name='system.methodHelp'>"
+  "<author>Dan Libby</author>"
+  "<purpose>provides documentation string for a single method</purpose>"
+  "<version>1.0</version>"
+  "<signatures>"
+   "<signature>"
+    "<params>"
+     "<value type='string' name='methodName'>name of the method for which documentation is desired</value>"
+    "</params>"
+    "<returns>"
+     "<value type='string'>help text if defined for the method passed, otherwise an empty string</value>"
+    "</returns>"
+   "</signature>"
+  "</signatures>"
+  "<see>"
+   "<item name='system.listMethods' />"
+   "<item name='system.methodSignature' />"
+   "<item name='system.methodHelp' />"
+  "</see>"
+  "<example/>"
+  "<error/>"
+  "<note/>"
+  "<bug/>"
+  "<todo/>"
+ "</methodDescription>"
+
+ "<!-- system.methodSignature -->"
+ "<methodDescription name='system.methodSignature'>"
+  "<author>Dan Libby</author>"
+  "<purpose>provides 1 or more signatures for a single method</purpose>"
+  "<version>1.0</version>"
+  "<signatures>"
+   "<signature>"
+    "<params>"
+     "<value type='string' name='methodName'>name of the method for which documentation is desired</value>"
+    "</params>"
+    "<returns>"
+     "<value type='array' desc='a list of arrays, each representing a signature'>"
+      "<value type='array' desc='a list of strings. the first element represents the method return value. subsequent elements represent parameters.'>"
+       "<value type='string'>a string indicating the xmlrpc type of a value. one of: string, int, double, base64, datetime, array, struct</value>"
+      "</value>"
+     "</value>"
+    "</returns>"
+   "</signature>"
+  "</signatures>"
+  "<see>"
+   "<item name='system.listMethods' />"
+   "<item name='system.methodHelp' />"
+   "<item name='system.describeMethods' />"
+  "</see>"
+  "<example/>"
+  "<error/>"
+  "<note/>"
+  "<bug/>"
+  "<todo/>"
+ "</methodDescription>"
+
+ "<!-- system.multiCall -->"
+ "<methodDescription name='system.multiCall'>"
+  "<author>Dan Libby</author>"
+  "<purpose>executes multiple methods in sequence and returns the results</purpose>"
+  "<version>1.0</version>"
+  "<signatures>"
+   "<signature>"
+    "<params>"
+     "<value type='array' name='methodList' desc='an array of method call structs'>"
+      "<value type='struct' desc='a struct representing a single method call'>"
+       "<value type='string' name='methodName' desc='name of the method to be executed'/>"
+       "<value type='array' name='params' desc='an array representing the params to a method. sub-elements should match method signature'/>"
+      "</value>"
+     "</value>"
+    "</params>"
+    "<returns>"
+     "<value type='array' desc='an array of method responses'>"
+      "<value type='array' desc='an array containing a single value, which is the method&apos;s response'/>"
+     "</value>"
+    "</returns>"
+   "</signature>"
+  "</signatures>"
+  "<see>"
+   "<item name='system.listMethods' />"
+   "<item name='system.methodHelp' />"
+   "<item name='system.describeMethods' />"
+  "</see>"
+  "<example/>"
+  "<error/>"
+  "<note/>"
+  "<bug/>"
+  "<todo/>"
+ "</methodDescription>"
+
+ "<!-- system.getCapabilities -->"
+ "<methodDescription name='system.getCapabilities'>"
+  "<author>Dan Libby</author>"
+  "<purpose>returns a list of capabilities supported by this server</purpose>"
+  "<version>1.0</version>"
+  "<notes><item>spec url: http://groups.yahoo.com/group/xml-rpc/message/2897</item></notes>"
+  "<signatures>"
+   "<signature>"
+    "<returns>"
+     "<value type='struct' desc='list of capabilities, each with a unique key defined by the capability&apos;s spec'>"
+      "<value type='struct' desc='definition of a single capability'>"
+       "<value type='string' name='specURL'>www address of the specification defining this capability</value>"
+       "<value type='int' name='specVersion'>version of the spec that this server's implementation conforms to</value>"
+      "</value>"
+     "</value>"
+    "</returns>"
+   "</signature>"
+  "</signatures>"
+  "<see>"
+   "<item name='system.listMethods' />"
+   "<item name='system.methodHelp' />"
+   "<item name='system.describeMethods' />"
+  "</see>"
+  "<example/>"
+  "<error/>"
+  "<note/>"
+  "<bug/>"
+  "<todo/>"
+ "</methodDescription>"
+
+ "</methodList>"
+"</introspection>";
+
+
+/* forward declarations for static (non public, non api) funcs */
+static XMLRPC_VALUE xsm_system_multicall_cb(XMLRPC_SERVER server, XMLRPC_REQUEST input, void* userData);
+static XMLRPC_VALUE xsm_system_get_capabilities_cb(XMLRPC_SERVER server, XMLRPC_REQUEST input, void* userData);
+
+/*-*******************
+* System Methods API *
+*********************/
+
+static void xsm_lazy_doc_methods_cb(XMLRPC_SERVER server, void* userData) {
+   XMLRPC_VALUE xDesc = XMLRPC_IntrospectionCreateDescription(xsm_introspection_xml, NULL);
+   XMLRPC_ServerAddIntrospectionData(server, xDesc);
+   XMLRPC_CleanupValue(xDesc);
+}
+
+void xsm_register(XMLRPC_SERVER server) {
+   xi_register_system_methods(server);
+
+   XMLRPC_ServerRegisterMethod(server, xsm_token_system_multicall, xsm_system_multicall_cb);
+   XMLRPC_ServerRegisterMethod(server, xsm_token_system_get_capabilities, xsm_system_get_capabilities_cb);
+
+   /* callback for documentation generation should it be requested */
+   XMLRPC_ServerRegisterIntrospectionCallback(server, xsm_lazy_doc_methods_cb);
+}
+
+XMLRPC_VALUE xsm_system_multicall_cb(XMLRPC_SERVER server, XMLRPC_REQUEST input, void* userData) {
+   XMLRPC_VALUE xArray = XMLRPC_VectorRewind(XMLRPC_RequestGetData(input));
+   XMLRPC_VALUE xReturn = XMLRPC_CreateVector(0, xmlrpc_vector_array);
+
+   if (xArray) {
+      XMLRPC_VALUE xMethodIter = XMLRPC_VectorRewind(xArray);
+
+      while (xMethodIter) {
+         XMLRPC_REQUEST request = XMLRPC_RequestNew();
+         if(request) {
+            const char* methodName = XMLRPC_VectorGetStringWithID(xMethodIter, "methodName");
+            XMLRPC_VALUE params = XMLRPC_VectorGetValueWithID(xMethodIter, "params");
+
+            if(methodName && params) {
+               XMLRPC_VALUE xRandomArray = XMLRPC_CreateVector(0, xmlrpc_vector_array);
+               XMLRPC_RequestSetMethodName(request, methodName);
+               XMLRPC_RequestSetData(request, params);
+               XMLRPC_RequestSetRequestType(request, xmlrpc_request_call);
+
+               XMLRPC_AddValueToVector(xRandomArray, 
+                                       XMLRPC_ServerCallMethod(server, request, userData));
+
+               XMLRPC_AddValueToVector(xReturn, xRandomArray);
+            }
+            XMLRPC_RequestFree(request, 1);
+         }
+         xMethodIter = XMLRPC_VectorNext(xArray);
+      }
+   }
+   return xReturn;
+}
+
+
+XMLRPC_VALUE xsm_system_get_capabilities_cb(XMLRPC_SERVER server, XMLRPC_REQUEST input, void* userData) {
+   XMLRPC_VALUE xReturn = XMLRPC_CreateVector(0, xmlrpc_vector_struct);
+   XMLRPC_VALUE xFaults = XMLRPC_CreateVector("faults_interop", xmlrpc_vector_struct);
+   XMLRPC_VALUE xIntro = XMLRPC_CreateVector("introspection", xmlrpc_vector_struct);
+
+   /* support for fault spec */
+   XMLRPC_VectorAppendString(xFaults, "specURL", "http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php", 0);
+   XMLRPC_VectorAppendInt(xFaults, "specVersion", 20010516);
+
+   /* support for introspection spec */
+   XMLRPC_VectorAppendString(xIntro, "specURL", "http://xmlrpc-epi.sourceforge.net/specs/rfc.introspection.php", 0);
+   XMLRPC_VectorAppendInt(xIntro, "specVersion", 20010516);
+
+   XMLRPC_AddValuesToVector(xReturn,
+                            xFaults,
+                            xIntro,
+                            NULL);
+
+   return xReturn;
+                            
+}
+
+/*-***********************
+* End System Methods API *
+*************************/
+
+
+
diff --git a/trunk/php/xmlrpc/libxmlrpc/system_methods_private.h b/trunk/php/xmlrpc/libxmlrpc/system_methods_private.h
new file mode 100644 (file)
index 0000000..72408fd
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2001 Dan Libby, Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+/* IMPORTANT!
+ *
+ * only non-public things should be in this file.  It is fine for any .c file
+ * in xmlrpc/src to include it, but users of the public API should never
+ * include it, and thus *.h files that are part of the public API should
+ * never include it, or they would break if this file is not present.
+ */
+
+
+#ifndef __SYSTEM_METHODS_PRIVATE_H
+/*
+ * Avoid include redundancy.
+ */
+#define __SYSTEM_METHODS_PRIVATE_H
+
+/*----------------------------------------------------------------------------
+ * system_methods_private.h
+ *
+ * Purpose:
+ *   define non-public system.* methods
+ * Comments:
+ *   xsm = xmlrpc system methods
+ */
+
+/*----------------------------------------------------------------------------
+ * Constants
+ */
+#define xsm_token_system_multicall "system.multiCall"
+#define xsm_token_system_get_capabilities "system.getCapabilities"
+
+
+/*----------------------------------------------------------------------------
+ * Includes
+ */
+
+/*----------------------------------------------------------------------------
+ * Structures
+ */
+/*----------------------------------------------------------------------------
+ * Globals
+ */
+
+/*----------------------------------------------------------------------------
+ * Functions
+ */
+void xsm_register(XMLRPC_SERVER server);
+int xsm_is_system_method(XMLRPC_Callback cb);
+/*----------------------------------------------------------------------------
+ * Macros
+ */
+
+#endif /* __SYSTEM_METHODS_PRIVATE_H */
+
+
+
+
diff --git a/trunk/php/xmlrpc/libxmlrpc/xml_element.c b/trunk/php/xmlrpc/libxmlrpc/xml_element.c
new file mode 100644 (file)
index 0000000..ae30838
--- /dev/null
@@ -0,0 +1,750 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2000 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+
+static const char rcsid[] = "#(@) $Id$";
+
+
+
+/****h* ABOUT/xml_element
+ * NAME
+ *   xml_element
+ * AUTHOR
+ *   Dan Libby, aka danda  (dan@libby.com)
+ * CREATION DATE
+ *   06/2000
+ * HISTORY
+ *   $Log: xml_element.c,v $
+ *   Revision 1.6  2004/06/01 20:16:06  iliaa
+ *   Fixed bug #28597 (xmlrpc_encode_request() incorrectly encodes chars in
+ *   200-210 range).
+ *   Patch by: fernando dot nemec at folha dot com dot br
+ *
+ *   Revision 1.5  2003/12/16 21:00:21  sniper
+ *   Fix some compile warnings (patch by Joe Orton)
+ *
+ *   Revision 1.4  2002/11/26 23:01:16  fmk
+ *   removing unused variables
+ *
+ *   Revision 1.3  2002/07/05 04:43:53  danda
+ *   merged in updates from SF project.  bring php repository up to date with xmlrpc-epi version 0.51
+ *
+ *   Revision 1.9  2002/07/03 20:54:30  danda
+ *   root element should not have a parent. patch from anon SF user
+ *
+ *   Revision 1.8  2002/05/23 17:46:51  danda
+ *   patch from mukund - fix non utf-8 encoding conversions
+ *
+ *   Revision 1.7  2002/02/13 20:58:50  danda
+ *   patch to make source more windows friendly, contributed by Jeff Lawson
+ *
+ *   Revision 1.6  2002/01/08 01:06:55  danda
+ *   enable <?xml version="1.0"?> format for parsers that are very picky.
+ *
+ *   Revision 1.5  2001/09/29 21:58:05  danda
+ *   adding cvs log to history section
+ *
+ *   10/15/2000 -- danda -- adding robodoc documentation
+ * TODO
+ *   Nicer external API. Get rid of macros.  Make opaque types, etc.
+ * PORTABILITY
+ *   Coded on RedHat Linux 6.2.  Builds on Solaris x86.  Should build on just
+ *   about anything with minor mods.
+ * NOTES
+ *   This code incorporates ideas from expat-ensor from http://xml.ensor.org.
+ *  
+ *   It was coded primarily to act as a go-between for expat and xmlrpc. To this
+ *   end, it stores xml elements, their sub-elements, and their attributes in an
+ *   in-memory tree.  When expat is done parsing, the tree can be walked, thus
+ *   retrieving the values.  The code can also be used to build a tree via API then
+ *   write out the tree to a buffer, thus "serializing" the xml.
+ *
+ *   It turns out this is useful for other purposes, such as parsing config files.
+ *   YMMV.
+ *
+ *   Some Features:
+ *     - output option for xml escaping data.  Choices include no escaping, entity escaping,
+ *       or CDATA sections.
+ *     - output option for character encoding.  Defaults to (none) utf-8.
+ *     - output option for verbosity/readability.  ultra-compact, newlines, pretty/level indented. 
+ *
+ * BUGS
+ *   there must be some.
+ ******/
+#ifdef _WIN32
+#include "xmlrpc_win32.h"
+#endif
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+#include "xml_element.h"
+#include "queue.h"
+#include "expat.h"
+#include "encodings.h"
+
+#define my_free(thing)  if(thing) {free(thing); thing = NULL;}
+
+#define XML_DECL_START                 "<?xml"
+#define XML_DECL_START_LEN             sizeof(XML_DECL_START) - 1
+#define XML_DECL_VERSION               "version=\"1.0\""
+#define XML_DECL_VERSION_LEN           sizeof(XML_DECL_VERSION) - 1
+#define XML_DECL_ENCODING_ATTR         "encoding"
+#define XML_DECL_ENCODING_ATTR_LEN     sizeof(XML_DECL_ENCODING_ATTR) - 1
+#define XML_DECL_ENCODING_DEFAULT      "utf-8"
+#define XML_DECL_ENCODING_DEFAULT_LEN  sizeof(XML_DECL_ENCODING_DEFAULT) - 1
+#define XML_DECL_END                   "?>"
+#define XML_DECL_END_LEN               sizeof(XML_DECL_END) - 1
+#define START_TOKEN_BEGIN              "<"
+#define START_TOKEN_BEGIN_LEN          sizeof(START_TOKEN_BEGIN) - 1
+#define START_TOKEN_END                ">"
+#define START_TOKEN_END_LEN            sizeof(START_TOKEN_END) - 1
+#define EMPTY_START_TOKEN_END          "/>"
+#define EMPTY_START_TOKEN_END_LEN      sizeof(EMPTY_START_TOKEN_END) - 1
+#define END_TOKEN_BEGIN                "</"
+#define END_TOKEN_BEGIN_LEN            sizeof(END_TOKEN_BEGIN) - 1
+#define END_TOKEN_END                  ">"
+#define END_TOKEN_END_LEN              sizeof(END_TOKEN_END) - 1
+#define ATTR_DELIMITER                 "\""
+#define ATTR_DELIMITER_LEN             sizeof(ATTR_DELIMITER) - 1
+#define CDATA_BEGIN                    "<![CDATA["
+#define CDATA_BEGIN_LEN                sizeof(CDATA_BEGIN) - 1
+#define CDATA_END                      "]]>"
+#define CDATA_END_LEN                  sizeof(CDATA_END) - 1
+#define EQUALS                         "="
+#define EQUALS_LEN                     sizeof(EQUALS) - 1
+#define WHITESPACE                     " "
+#define WHITESPACE_LEN                 sizeof(WHITESPACE) - 1
+#define NEWLINE                        "\n"
+#define NEWLINE_LEN                    sizeof(NEWLINE) - 1
+#define MAX_VAL_BUF                    144
+#define SCALAR_STR                     "SCALAR"
+#define SCALAR_STR_LEN                 sizeof(SCALAR_STR) - 1
+#define VECTOR_STR                     "VECTOR"
+#define VECTOR_STR_LEN                 sizeof(VECTOR_STR) - 1
+#define RESPONSE_STR                   "RESPONSE"
+#define RESPONSE_STR_LEN               sizeof(RESPONSE_STR) - 1
+
+
+/*-----------------------------
+- Begin xml_element Functions -
+-----------------------------*/
+
+/****f* xml_element/xml_elem_free_non_recurse
+ * NAME
+ *   xml_elem_free_non_recurse
+ * SYNOPSIS
+ *   void xml_elem_free_non_recurse(xml_element* root)
+ * FUNCTION
+ *   free a single xml element.  child elements will not be freed.
+ * INPUTS
+ *   root - the element to free
+ * RESULT
+ *   void
+ * NOTES
+ * SEE ALSO
+ *   xml_elem_free ()
+ *   xml_elem_new ()
+ * SOURCE
+ */
+void xml_elem_free_non_recurse(xml_element* root) {
+   if(root) {
+      xml_element_attr* attrs = Q_Head(&root->attrs);
+      while(attrs) {
+         my_free(attrs->key);
+         my_free(attrs->val);
+         my_free(attrs);
+         attrs = Q_Next(&root->attrs);
+      }
+
+      Q_Destroy(&root->children);
+      Q_Destroy(&root->attrs);
+      if (root->name) {
+          free((char *)root->name);
+          root->name = NULL;
+      }
+      simplestring_free(&root->text);
+      my_free(root);
+   }
+}
+/******/
+
+/****f* xml_element/xml_elem_free
+ * NAME
+ *   xml_elem_free
+ * SYNOPSIS
+ *   void xml_elem_free(xml_element* root)
+ * FUNCTION
+ *   free an xml element and all of its child elements
+ * INPUTS
+ *   root - the root of an xml tree you would like to free
+ * RESULT
+ *   void
+ * NOTES
+ * SEE ALSO
+ *   xml_elem_free_non_recurse ()
+ *   xml_elem_new ()
+ * SOURCE
+ */
+void xml_elem_free(xml_element* root) {
+   if(root) {
+      xml_element* kids = Q_Head(&root->children);
+      while(kids) {
+         xml_elem_free(kids);
+         kids = Q_Next(&root->children);
+      }
+      xml_elem_free_non_recurse(root);
+   }
+}
+/******/
+
+/****f* xml_element/xml_elem_new
+ * NAME
+ *   xml_elem_new
+ * SYNOPSIS
+ *   xml_element* xml_elem_new()
+ * FUNCTION
+ *   allocates and initializes a new xml_element
+ * INPUTS
+ *   none
+ * RESULT
+ *   xml_element* or NULL.  NULL indicates an out-of-memory condition.
+ * NOTES
+ * SEE ALSO
+ *   xml_elem_free ()
+ *   xml_elem_free_non_recurse ()
+ * SOURCE
+ */
+xml_element* xml_elem_new() {
+   xml_element* elem = calloc(1, sizeof(xml_element));
+   if(elem) {
+      Q_Init(&elem->children);
+      Q_Init(&elem->attrs);
+      simplestring_init(&elem->text);
+
+      /* init empty string in case we don't find any char data */
+      simplestring_addn(&elem->text, "", 0);
+   }
+   return elem;
+}
+/******/
+
+static int xml_elem_writefunc(int (*fptr)(void *data, const char *text, int size), const char *text, void *data, int len)
+{
+   return fptr && text ? fptr(data, text, len ? len : strlen(text)) : 0;
+}
+
+
+
+static int create_xml_escape(char *pString, unsigned char c)
+{ 
+  int counter = 0;
+
+  pString[counter++] = '&';
+  pString[counter++] = '#';
+  if(c >= 100) {
+    pString[counter++] = c / 100 + '0';
+    c = c % 100;
+  }
+  pString[counter++] = c / 10 + '0';
+  c = c % 10;
+
+  pString[counter++] = c + '0';
+  pString[counter++] = ';';
+  return counter; 
+}
+
+#define non_ascii(c) (c > 127)
+#define non_print(c) (!isprint(c))
+#define markup(c) (c == '&' || c == '\"' || c == '>' || c == '<')
+#define entity_length(c) ( (c >= 100) ? 3 : ((c >= 10) ? 2 : 1) ) + 3; /* "&#" + c + ";" */
+
+/*
+ * xml_elem_entity_escape
+ *
+ * Purpose:
+ *   escape reserved xml chars and non utf-8 chars as xml entities
+ * Comments:
+ *   The return value may be a new string, or null if no
+ *     conversion was performed. In the latter case, *newlen will
+ *     be 0.
+ * Flags (to escape)
+ *  xml_elem_no_escaping             = 0x000,
+ *  xml_elem_entity_escaping         = 0x002,   // escape xml special chars as entities
+ *  xml_elem_non_ascii_escaping      = 0x008,   // escape chars above 127
+ *  xml_elem_cdata_escaping          = 0x010,   // wrap in cdata
+ */
+static char* xml_elem_entity_escape(const char* buf, int old_len, int *newlen, XML_ELEM_ESCAPING flags) {
+  char *pRetval = 0;
+  int iNewBufLen=0;
+
+#define should_escape(c, flag) ( ((flag & xml_elem_markup_escaping) && markup(c)) || \
+                                 ((flag & xml_elem_non_ascii_escaping) && non_ascii(c)) || \
+                                 ((flag & xml_elem_non_print_escaping) && non_print(c)) )
+
+  if(buf && *buf) {
+    const unsigned char *bufcopy;
+    char *NewBuffer;
+    int ToBeXmlEscaped=0;
+    int iLength;
+    bufcopy = buf;
+    iLength= old_len ? old_len : strlen(buf);
+    while(*bufcopy) {
+      if( should_escape(*bufcopy, flags) ) {
+       /* the length will increase by length of xml escape - the character length */
+       iLength += entity_length(*bufcopy);
+       ToBeXmlEscaped=1;
+      }
+      bufcopy++;
+    }
+
+    if(ToBeXmlEscaped) {
+
+      NewBuffer= malloc(iLength+1);
+      if(NewBuffer) {
+       bufcopy=buf;
+       while(*bufcopy) {
+         if(should_escape(*bufcopy, flags)) {
+           iNewBufLen += create_xml_escape(NewBuffer+iNewBufLen,*bufcopy);
+         }
+         else {
+           NewBuffer[iNewBufLen++]=*bufcopy;
+         }
+         bufcopy++;
+       }
+       NewBuffer[iNewBufLen] = 0;
+       pRetval = NewBuffer;
+      }
+    }
+  }
+
+  if(newlen) {
+     *newlen = iNewBufLen;
+  }
+
+  return pRetval;
+}
+
+
+static void xml_element_serialize(xml_element *el, int (*fptr)(void *data, const char *text, int size), void *data, XML_ELEM_OUTPUT_OPTIONS options, int depth)
+{
+   int i;
+   static STRUCT_XML_ELEM_OUTPUT_OPTIONS default_opts = {xml_elem_pretty, xml_elem_markup_escaping | xml_elem_non_print_escaping, XML_DECL_ENCODING_DEFAULT};
+   static char whitespace[] = "                                                                                               "
+                              "                                                                                               "
+                              "                                                                                               ";
+   depth++;
+
+   if(!el) {
+      fprintf(stderr, "Nothing to write\n");
+      return;
+   }
+   if(!options) {
+      options = &default_opts;
+   }
+
+   /* print xml declaration if at root level */
+   if(depth == 1) {
+      xml_elem_writefunc(fptr, XML_DECL_START, data, XML_DECL_START_LEN);
+      xml_elem_writefunc(fptr, WHITESPACE, data, WHITESPACE_LEN);
+      xml_elem_writefunc(fptr, XML_DECL_VERSION, data, XML_DECL_VERSION_LEN);
+      if(options->encoding && *options->encoding) {
+          xml_elem_writefunc(fptr, WHITESPACE, data, WHITESPACE_LEN);
+          xml_elem_writefunc(fptr, XML_DECL_ENCODING_ATTR, data, XML_DECL_ENCODING_ATTR_LEN);
+          xml_elem_writefunc(fptr, EQUALS, data, EQUALS_LEN);
+          xml_elem_writefunc(fptr, ATTR_DELIMITER, data, ATTR_DELIMITER_LEN);
+          xml_elem_writefunc(fptr, options->encoding, data, 0);
+          xml_elem_writefunc(fptr, ATTR_DELIMITER, data, ATTR_DELIMITER_LEN);
+      }
+      xml_elem_writefunc(fptr, XML_DECL_END, data, XML_DECL_END_LEN);
+      if(options->verbosity != xml_elem_no_white_space) {
+         xml_elem_writefunc(fptr, NEWLINE, data, NEWLINE_LEN);
+      }
+   }
+
+   if(options->verbosity == xml_elem_pretty && depth > 2) {
+         xml_elem_writefunc(fptr, whitespace, data, depth - 2);
+   }
+   /* begin element */
+   xml_elem_writefunc(fptr,START_TOKEN_BEGIN, data, START_TOKEN_BEGIN_LEN);
+   if(el->name) {
+      xml_elem_writefunc(fptr, el->name, data, 0);
+
+      /* write attrs, if any */
+      if(Q_Size(&el->attrs)) {
+         xml_element_attr* iter = Q_Head(&el->attrs);
+         while( iter ) {
+            xml_elem_writefunc(fptr, WHITESPACE, data, WHITESPACE_LEN);
+            xml_elem_writefunc(fptr, iter->key, data, 0);
+            xml_elem_writefunc(fptr, EQUALS, data, EQUALS_LEN);
+            xml_elem_writefunc(fptr, ATTR_DELIMITER, data, ATTR_DELIMITER_LEN);
+            xml_elem_writefunc(fptr, iter->val, data, 0);
+            xml_elem_writefunc(fptr, ATTR_DELIMITER, data, ATTR_DELIMITER_LEN);
+
+            iter = Q_Next(&el->attrs);
+         }
+      }
+   }
+   else {
+      xml_elem_writefunc(fptr, "None", data, 0);
+   }
+   /* if no text and no children, use abbreviated form, eg: <foo/> */
+   if(!el->text.len && !Q_Size(&el->children)) {
+       xml_elem_writefunc(fptr, EMPTY_START_TOKEN_END, data, EMPTY_START_TOKEN_END_LEN);
+   }
+   /* otherwise, print element contents */
+   else {
+       xml_elem_writefunc(fptr, START_TOKEN_END, data, START_TOKEN_END_LEN);
+
+       /* print text, if any */
+       if(el->text.len) {
+          char* escaped_str = el->text.str;
+          int buflen = el->text.len;
+
+          if(options->escaping && options->escaping != xml_elem_cdata_escaping) {
+             escaped_str = xml_elem_entity_escape(el->text.str, buflen, &buflen, options->escaping );
+             if(!escaped_str) {
+                escaped_str = el->text.str;
+             }
+          }
+
+          if(options->escaping & xml_elem_cdata_escaping) {
+             xml_elem_writefunc(fptr, CDATA_BEGIN, data, CDATA_BEGIN_LEN);
+          }
+
+          xml_elem_writefunc(fptr, escaped_str, data, buflen);
+
+          if(escaped_str != el->text.str) {
+             my_free(escaped_str);
+          }
+
+          if(options->escaping & xml_elem_cdata_escaping) {
+             xml_elem_writefunc(fptr, CDATA_END, data, CDATA_END_LEN);
+          }
+       }
+       /* no text, so print child elems */
+       else {
+          xml_element *kids = Q_Head(&el->children);
+          i = 0;
+          while( kids ) {
+             if(i++ == 0) {
+                if(options->verbosity != xml_elem_no_white_space) {
+                   xml_elem_writefunc(fptr, NEWLINE, data, NEWLINE_LEN);
+                }
+             }
+             xml_element_serialize(kids, fptr, data, options, depth);
+             kids = Q_Next(&el->children);
+          }
+          if(i) {
+             if(options->verbosity == xml_elem_pretty && depth > 2) {
+                   xml_elem_writefunc(fptr, whitespace, data, depth - 2);
+             }
+          }
+       }
+
+       xml_elem_writefunc(fptr, END_TOKEN_BEGIN, data, END_TOKEN_BEGIN_LEN);
+       xml_elem_writefunc(fptr,el->name ? el->name : "None", data, 0);
+       xml_elem_writefunc(fptr, END_TOKEN_END, data, END_TOKEN_END_LEN);
+   }
+   if(options->verbosity != xml_elem_no_white_space) {
+      xml_elem_writefunc(fptr, NEWLINE, data, NEWLINE_LEN);
+   }
+}
+
+/* print buf to file */
+static int file_out_fptr(void *f, const char *text, int size)
+{
+   fputs(text, (FILE *)f);
+   return 0;
+}
+
+/* print buf to simplestring */
+static int simplestring_out_fptr(void *f, const char *text, int size)
+{
+   simplestring* buf = (simplestring*)f;
+   if(buf) {
+      simplestring_addn(buf, text, size);
+   }
+   return 0;
+}
+
+/****f* xml_element/xml_elem_serialize_to_string
+ * NAME
+ *   xml_elem_serialize_to_string
+ * SYNOPSIS
+ *   void xml_element_serialize_to_string(xml_element *el, XML_ELEM_OUTPUT_OPTIONS options, int *buf_len)
+ * FUNCTION
+ *   writes element tree as XML into a newly allocated buffer
+ * INPUTS
+ *   el      - root element of tree
+ *   options - options determining how output is written.  see XML_ELEM_OUTPUT_OPTIONS
+ *   buf_len - length of returned buffer, if not null.
+ * RESULT
+ *   char* or NULL. Must be free'd by caller.
+ * NOTES
+ * SEE ALSO
+ *   xml_elem_serialize_to_stream ()
+ *   xml_elem_parse_buf ()
+ * SOURCE
+ */
+char* xml_elem_serialize_to_string(xml_element *el, XML_ELEM_OUTPUT_OPTIONS options, int *buf_len)
+{
+   simplestring buf;
+   simplestring_init(&buf);
+
+   xml_element_serialize(el, simplestring_out_fptr, (void *)&buf, options, 0);
+
+   if(buf_len) {
+      *buf_len = buf.len;
+   }
+
+   return buf.str;
+}
+/******/
+
+/****f* xml_element/xml_elem_serialize_to_stream
+ * NAME
+ *   xml_elem_serialize_to_stream
+ * SYNOPSIS
+ *   void xml_elem_serialize_to_stream(xml_element *el, FILE *output, XML_ELEM_OUTPUT_OPTIONS options)
+ * FUNCTION
+ *   writes element tree as XML into a stream (typically an opened file)
+ * INPUTS
+ *   el      - root element of tree
+ *   output  - stream handle
+ *   options - options determining how output is written.  see XML_ELEM_OUTPUT_OPTIONS
+ * RESULT
+ *   void
+ * NOTES
+ * SEE ALSO
+ *   xml_elem_serialize_to_string ()
+ *   xml_elem_parse_buf ()
+ * SOURCE
+ */
+void xml_elem_serialize_to_stream(xml_element *el, FILE *output, XML_ELEM_OUTPUT_OPTIONS options)
+{
+   xml_element_serialize(el, file_out_fptr, (void *)output, options, 0);
+}
+/******/
+
+/*--------------------------*
+* End xml_element Functions *
+*--------------------------*/
+
+
+/*----------------------
+* Begin Expat Handlers *
+*---------------------*/
+
+typedef struct _xml_elem_data {
+   xml_element*           root;
+   xml_element*           current;
+   XML_ELEM_INPUT_OPTIONS input_options;
+   int                    needs_enc_conversion;
+} xml_elem_data;
+
+
+/* expat start of element handler */
+static void startElement(void *userData, const char *name, const char **attrs)
+{
+   xml_element *c;
+   xml_elem_data* mydata = (xml_elem_data*)userData;
+   const char** p = attrs;
+
+   if(mydata) {
+      c = mydata->current;
+
+      mydata->current = xml_elem_new();
+      mydata->current->name = (char*)strdup(name);
+      mydata->current->parent = c;
+
+      /* init attrs */
+      while(p && *p) {
+         xml_element_attr* attr = malloc(sizeof(xml_element_attr));
+         if(attr) {
+            attr->key = strdup(*p);
+            attr->val = strdup(*(p+1));
+            Q_PushTail(&mydata->current->attrs, attr);
+
+            p += 2;
+         }
+      }
+   }
+}
+
+/* expat end of element handler */
+static void endElement(void *userData, const char *name)
+{
+   xml_elem_data* mydata = (xml_elem_data*)userData;
+
+   if(mydata && mydata->current && mydata->current->parent) {
+      Q_PushTail(&mydata->current->parent->children, mydata->current);
+
+      mydata->current = mydata->current->parent;
+   }
+}
+
+/* expat char data handler */
+static void charHandler(void *userData,
+                        const char *s,
+                        int len)
+{
+   xml_elem_data* mydata = (xml_elem_data*)userData;
+   if(mydata && mydata->current) {
+
+      /* Check if we need to decode utf-8 parser output to another encoding */
+      if(mydata->needs_enc_conversion && mydata->input_options->encoding) {
+         int new_len = 0;
+         char* add_text = utf8_decode(s, len, &new_len, mydata->input_options->encoding);
+         if(add_text) {
+            len = new_len;
+            simplestring_addn(&mydata->current->text, add_text, len);
+            free(add_text);
+            return;
+         }
+      }
+      simplestring_addn(&mydata->current->text, s, len);
+   }
+}
+/******/
+
+/*-------------------*
+* End Expat Handlers *
+*-------------------*/
+
+/*-------------------*
+* xml_elem_parse_buf *
+*-------------------*/
+
+/****f* xml_element/xml_elem_parse_buf
+ * NAME
+ *   xml_elem_parse_buf
+ * SYNOPSIS
+ *   xml_element* xml_elem_parse_buf(const char* in_buf, int len, XML_ELEM_INPUT_OPTIONS options, XML_ELEM_ERROR error)
+ * FUNCTION
+ *   parse a buffer containing XML into an xml_element in-memory tree
+ * INPUTS
+ *   in_buf   - buffer containing XML document
+ *   len      - length of buffer
+ *   options  - input options. optional
+ *   error    - error result data. optional. check if result is null.
+ * RESULT
+ *   void
+ * NOTES
+ *   The returned data must be free'd by caller
+ * SEE ALSO
+ *   xml_elem_serialize_to_string ()
+ *   xml_elem_free ()
+ * SOURCE
+ */
+xml_element* xml_elem_parse_buf(const char* in_buf, int len, XML_ELEM_INPUT_OPTIONS options, XML_ELEM_ERROR error)
+{
+   xml_element* xReturn = NULL;
+   char buf[100] = "";
+   static STRUCT_XML_ELEM_INPUT_OPTIONS default_opts = {encoding_utf_8};
+
+   if(!options) {
+      options = &default_opts;
+   }
+
+   if(in_buf) {
+      XML_Parser parser;
+      xml_elem_data mydata = {0};
+
+      parser = XML_ParserCreate(NULL);
+
+      mydata.root = xml_elem_new();
+      mydata.current = mydata.root;
+      mydata.input_options = options;
+      mydata.needs_enc_conversion = options->encoding && strcmp(options->encoding, encoding_utf_8);
+
+      XML_SetElementHandler(parser, startElement, endElement);
+      XML_SetCharacterDataHandler(parser, charHandler);
+
+      /* pass the xml_elem_data struct along */
+      XML_SetUserData(parser, (void*)&mydata);
+
+      if(!len) {
+         len = strlen(in_buf);
+      }
+
+      /* parse the XML */
+      if(XML_Parse(parser, in_buf, len, 1) == 0) {
+         enum XML_Error err_code = XML_GetErrorCode(parser);
+         int line_num = XML_GetCurrentLineNumber(parser);
+         int col_num = XML_GetCurrentColumnNumber(parser);
+         long byte_idx = XML_GetCurrentByteIndex(parser);
+         int byte_total = XML_GetCurrentByteCount(parser);
+         const char * error_str = XML_ErrorString(err_code);
+         if(byte_idx >= 0) {
+             snprintf(buf, 
+                      sizeof(buf),
+                      "\n\tdata beginning %ld before byte index: %s\n",
+                      byte_idx > 10  ? 10 : byte_idx,
+                      in_buf + (byte_idx > 10 ? byte_idx - 10 : byte_idx));
+         }
+
+         fprintf(stderr, "expat reports error code %i\n"
+                "\tdescription: %s\n"
+                "\tline: %i\n"
+                "\tcolumn: %i\n"
+                "\tbyte index: %ld\n"
+                "\ttotal bytes: %i\n%s ",
+                err_code, error_str, line_num, 
+                col_num, byte_idx, byte_total, buf);
+
+
+          /* error condition */
+          if(error) {
+              error->parser_code = (long)err_code;
+              error->line = line_num;
+              error->column = col_num;
+              error->byte_index = byte_idx;
+              error->parser_error = error_str;
+          }
+      }
+      else {
+         xReturn = (xml_element*)Q_Head(&mydata.root->children);
+         xReturn->parent = NULL;
+      }
+
+      XML_ParserFree(parser);
+
+
+      xml_elem_free_non_recurse(mydata.root);
+   }
+
+   return xReturn;
+}
+
+/******/
diff --git a/trunk/php/xmlrpc/libxmlrpc/xml_element.c.gcc4 b/trunk/php/xmlrpc/libxmlrpc/xml_element.c.gcc4
new file mode 100644 (file)
index 0000000..154f19b
--- /dev/null
@@ -0,0 +1,747 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2000 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+
+static const char rcsid[] = "#(@) $Id$";
+
+
+
+/****h* ABOUT/xml_element
+ * NAME
+ *   xml_element
+ * AUTHOR
+ *   Dan Libby, aka danda  (dan@libby.com)
+ * CREATION DATE
+ *   06/2000
+ * HISTORY
+ *   $Log: xml_element.c,v $
+ *   Revision 1.6  2004/06/01 20:16:06  iliaa
+ *   Fixed bug #28597 (xmlrpc_encode_request() incorrectly encodes chars in
+ *   200-210 range).
+ *   Patch by: fernando dot nemec at folha dot com dot br
+ *
+ *   Revision 1.5  2003/12/16 21:00:21  sniper
+ *   Fix some compile warnings (patch by Joe Orton)
+ *
+ *   Revision 1.4  2002/11/26 23:01:16  fmk
+ *   removing unused variables
+ *
+ *   Revision 1.3  2002/07/05 04:43:53  danda
+ *   merged in updates from SF project.  bring php repository up to date with xmlrpc-epi version 0.51
+ *
+ *   Revision 1.9  2002/07/03 20:54:30  danda
+ *   root element should not have a parent. patch from anon SF user
+ *
+ *   Revision 1.8  2002/05/23 17:46:51  danda
+ *   patch from mukund - fix non utf-8 encoding conversions
+ *
+ *   Revision 1.7  2002/02/13 20:58:50  danda
+ *   patch to make source more windows friendly, contributed by Jeff Lawson
+ *
+ *   Revision 1.6  2002/01/08 01:06:55  danda
+ *   enable <?xml version="1.0"?> format for parsers that are very picky.
+ *
+ *   Revision 1.5  2001/09/29 21:58:05  danda
+ *   adding cvs log to history section
+ *
+ *   10/15/2000 -- danda -- adding robodoc documentation
+ * TODO
+ *   Nicer external API. Get rid of macros.  Make opaque types, etc.
+ * PORTABILITY
+ *   Coded on RedHat Linux 6.2.  Builds on Solaris x86.  Should build on just
+ *   about anything with minor mods.
+ * NOTES
+ *   This code incorporates ideas from expat-ensor from http://xml.ensor.org.
+ *  
+ *   It was coded primarily to act as a go-between for expat and xmlrpc. To this
+ *   end, it stores xml elements, their sub-elements, and their attributes in an
+ *   in-memory tree.  When expat is done parsing, the tree can be walked, thus
+ *   retrieving the values.  The code can also be used to build a tree via API then
+ *   write out the tree to a buffer, thus "serializing" the xml.
+ *
+ *   It turns out this is useful for other purposes, such as parsing config files.
+ *   YMMV.
+ *
+ *   Some Features:
+ *     - output option for xml escaping data.  Choices include no escaping, entity escaping,
+ *       or CDATA sections.
+ *     - output option for character encoding.  Defaults to (none) utf-8.
+ *     - output option for verbosity/readability.  ultra-compact, newlines, pretty/level indented. 
+ *
+ * BUGS
+ *   there must be some.
+ ******/
+#ifdef _WIN32
+#include "xmlrpc_win32.h"
+#endif
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+#include "xml_element.h"
+#include "queue.h"
+#include "expat.h"
+#include "encodings.h"
+
+#define my_free(thing)  if(thing) {free(thing); thing = 0;}
+
+#define XML_DECL_START                 "<?xml"
+#define XML_DECL_START_LEN             sizeof(XML_DECL_START) - 1
+#define XML_DECL_VERSION               "version=\"1.0\""
+#define XML_DECL_VERSION_LEN           sizeof(XML_DECL_VERSION) - 1
+#define XML_DECL_ENCODING_ATTR         "encoding"
+#define XML_DECL_ENCODING_ATTR_LEN     sizeof(XML_DECL_ENCODING_ATTR) - 1
+#define XML_DECL_ENCODING_DEFAULT      "utf-8"
+#define XML_DECL_ENCODING_DEFAULT_LEN  sizeof(XML_DECL_ENCODING_DEFAULT) - 1
+#define XML_DECL_END                   "?>"
+#define XML_DECL_END_LEN               sizeof(XML_DECL_END) - 1
+#define START_TOKEN_BEGIN              "<"
+#define START_TOKEN_BEGIN_LEN          sizeof(START_TOKEN_BEGIN) - 1
+#define START_TOKEN_END                ">"
+#define START_TOKEN_END_LEN            sizeof(START_TOKEN_END) - 1
+#define EMPTY_START_TOKEN_END          "/>"
+#define EMPTY_START_TOKEN_END_LEN      sizeof(EMPTY_START_TOKEN_END) - 1
+#define END_TOKEN_BEGIN                "</"
+#define END_TOKEN_BEGIN_LEN            sizeof(END_TOKEN_BEGIN) - 1
+#define END_TOKEN_END                  ">"
+#define END_TOKEN_END_LEN              sizeof(END_TOKEN_END) - 1
+#define ATTR_DELIMITER                 "\""
+#define ATTR_DELIMITER_LEN             sizeof(ATTR_DELIMITER) - 1
+#define CDATA_BEGIN                    "<![CDATA["
+#define CDATA_BEGIN_LEN                sizeof(CDATA_BEGIN) - 1
+#define CDATA_END                      "]]>"
+#define CDATA_END_LEN                  sizeof(CDATA_END) - 1
+#define EQUALS                         "="
+#define EQUALS_LEN                     sizeof(EQUALS) - 1
+#define WHITESPACE                     " "
+#define WHITESPACE_LEN                 sizeof(WHITESPACE) - 1
+#define NEWLINE                        "\n"
+#define NEWLINE_LEN                    sizeof(NEWLINE) - 1
+#define MAX_VAL_BUF                    144
+#define SCALAR_STR                     "SCALAR"
+#define SCALAR_STR_LEN                 sizeof(SCALAR_STR) - 1
+#define VECTOR_STR                     "VECTOR"
+#define VECTOR_STR_LEN                 sizeof(VECTOR_STR) - 1
+#define RESPONSE_STR                   "RESPONSE"
+#define RESPONSE_STR_LEN               sizeof(RESPONSE_STR) - 1
+
+
+/*-----------------------------
+- Begin xml_element Functions -
+-----------------------------*/
+
+/****f* xml_element/xml_elem_free_non_recurse
+ * NAME
+ *   xml_elem_free_non_recurse
+ * SYNOPSIS
+ *   void xml_elem_free_non_recurse(xml_element* root)
+ * FUNCTION
+ *   free a single xml element.  child elements will not be freed.
+ * INPUTS
+ *   root - the element to free
+ * RESULT
+ *   void
+ * NOTES
+ * SEE ALSO
+ *   xml_elem_free ()
+ *   xml_elem_new ()
+ * SOURCE
+ */
+void xml_elem_free_non_recurse(xml_element* root) {
+   if(root) {
+      xml_element_attr* attrs = Q_Head(&root->attrs);
+      while(attrs) {
+         my_free(attrs->key);
+         my_free(attrs->val);
+         my_free(attrs);
+         attrs = Q_Next(&root->attrs);
+      }
+
+      Q_Destroy(&root->children);
+      Q_Destroy(&root->attrs);
+      my_free((char*)root->name);
+      simplestring_free(&root->text);
+      my_free(root);
+   }
+}
+/******/
+
+/****f* xml_element/xml_elem_free
+ * NAME
+ *   xml_elem_free
+ * SYNOPSIS
+ *   void xml_elem_free(xml_element* root)
+ * FUNCTION
+ *   free an xml element and all of its child elements
+ * INPUTS
+ *   root - the root of an xml tree you would like to free
+ * RESULT
+ *   void
+ * NOTES
+ * SEE ALSO
+ *   xml_elem_free_non_recurse ()
+ *   xml_elem_new ()
+ * SOURCE
+ */
+void xml_elem_free(xml_element* root) {
+   if(root) {
+      xml_element* kids = Q_Head(&root->children);
+      while(kids) {
+         xml_elem_free(kids);
+         kids = Q_Next(&root->children);
+      }
+      xml_elem_free_non_recurse(root);
+   }
+}
+/******/
+
+/****f* xml_element/xml_elem_new
+ * NAME
+ *   xml_elem_new
+ * SYNOPSIS
+ *   xml_element* xml_elem_new()
+ * FUNCTION
+ *   allocates and initializes a new xml_element
+ * INPUTS
+ *   none
+ * RESULT
+ *   xml_element* or NULL.  NULL indicates an out-of-memory condition.
+ * NOTES
+ * SEE ALSO
+ *   xml_elem_free ()
+ *   xml_elem_free_non_recurse ()
+ * SOURCE
+ */
+xml_element* xml_elem_new() {
+   xml_element* elem = calloc(1, sizeof(xml_element));
+   if(elem) {
+      Q_Init(&elem->children);
+      Q_Init(&elem->attrs);
+      simplestring_init(&elem->text);
+
+      /* init empty string in case we don't find any char data */
+      simplestring_addn(&elem->text, "", 0);
+   }
+   return elem;
+}
+/******/
+
+static int xml_elem_writefunc(int (*fptr)(void *data, const char *text, int size), const char *text, void *data, int len)
+{
+   return fptr && text ? fptr(data, text, len ? len : strlen(text)) : 0;
+}
+
+
+
+static int create_xml_escape(char *pString, unsigned char c)
+{ 
+  int counter = 0;
+
+  pString[counter++] = '&';
+  pString[counter++] = '#';
+  if(c >= 100) {
+    pString[counter++] = c / 100 + '0';
+    c = c % 100;
+  }
+  pString[counter++] = c / 10 + '0';
+  c = c % 10;
+
+  pString[counter++] = c + '0';
+  pString[counter++] = ';';
+  return counter; 
+}
+
+#define non_ascii(c) (c > 127)
+#define non_print(c) (!isprint(c))
+#define markup(c) (c == '&' || c == '\"' || c == '>' || c == '<')
+#define entity_length(c) ( (c >= 100) ? 3 : ((c >= 10) ? 2 : 1) ) + 3; /* "&#" + c + ";" */
+
+/*
+ * xml_elem_entity_escape
+ *
+ * Purpose:
+ *   escape reserved xml chars and non utf-8 chars as xml entities
+ * Comments:
+ *   The return value may be a new string, or null if no
+ *     conversion was performed. In the latter case, *newlen will
+ *     be 0.
+ * Flags (to escape)
+ *  xml_elem_no_escaping             = 0x000,
+ *  xml_elem_entity_escaping         = 0x002,   // escape xml special chars as entities
+ *  xml_elem_non_ascii_escaping      = 0x008,   // escape chars above 127
+ *  xml_elem_cdata_escaping          = 0x010,   // wrap in cdata
+ */
+static char* xml_elem_entity_escape(const char* buf, int old_len, int *newlen, XML_ELEM_ESCAPING flags) {
+  char *pRetval = 0;
+  int iNewBufLen=0;
+
+#define should_escape(c, flag) ( ((flag & xml_elem_markup_escaping) && markup(c)) || \
+                                 ((flag & xml_elem_non_ascii_escaping) && non_ascii(c)) || \
+                                 ((flag & xml_elem_non_print_escaping) && non_print(c)) )
+
+  if(buf && *buf) {
+    const unsigned char *bufcopy;
+    char *NewBuffer;
+    int ToBeXmlEscaped=0;
+    int iLength;
+    bufcopy = buf;
+    iLength= old_len ? old_len : strlen(buf);
+    while(*bufcopy) {
+      if( should_escape(*bufcopy, flags) ) {
+       /* the length will increase by length of xml escape - the character length */
+       iLength += entity_length(*bufcopy);
+       ToBeXmlEscaped=1;
+      }
+      bufcopy++;
+    }
+
+    if(ToBeXmlEscaped) {
+
+      NewBuffer= malloc(iLength+1);
+      if(NewBuffer) {
+       bufcopy=buf;
+       while(*bufcopy) {
+         if(should_escape(*bufcopy, flags)) {
+           iNewBufLen += create_xml_escape(NewBuffer+iNewBufLen,*bufcopy);
+         }
+         else {
+           NewBuffer[iNewBufLen++]=*bufcopy;
+         }
+         bufcopy++;
+       }
+       NewBuffer[iNewBufLen] = 0;
+       pRetval = NewBuffer;
+      }
+    }
+  }
+
+  if(newlen) {
+     *newlen = iNewBufLen;
+  }
+
+  return pRetval;
+}
+
+
+static void xml_element_serialize(xml_element *el, int (*fptr)(void *data, const char *text, int size), void *data, XML_ELEM_OUTPUT_OPTIONS options, int depth)
+{
+   int i;
+   static STRUCT_XML_ELEM_OUTPUT_OPTIONS default_opts = {xml_elem_pretty, xml_elem_markup_escaping | xml_elem_non_print_escaping, XML_DECL_ENCODING_DEFAULT};
+   static char whitespace[] = "                                                                                               "
+                              "                                                                                               "
+                              "                                                                                               ";
+   depth++;
+
+   if(!el) {
+      fprintf(stderr, "Nothing to write\n");
+      return;
+   }
+   if(!options) {
+      options = &default_opts;
+   }
+
+   /* print xml declaration if at root level */
+   if(depth == 1) {
+      xml_elem_writefunc(fptr, XML_DECL_START, data, XML_DECL_START_LEN);
+      xml_elem_writefunc(fptr, WHITESPACE, data, WHITESPACE_LEN);
+      xml_elem_writefunc(fptr, XML_DECL_VERSION, data, XML_DECL_VERSION_LEN);
+      if(options->encoding && *options->encoding) {
+          xml_elem_writefunc(fptr, WHITESPACE, data, WHITESPACE_LEN);
+          xml_elem_writefunc(fptr, XML_DECL_ENCODING_ATTR, data, XML_DECL_ENCODING_ATTR_LEN);
+          xml_elem_writefunc(fptr, EQUALS, data, EQUALS_LEN);
+          xml_elem_writefunc(fptr, ATTR_DELIMITER, data, ATTR_DELIMITER_LEN);
+          xml_elem_writefunc(fptr, options->encoding, data, 0);
+          xml_elem_writefunc(fptr, ATTR_DELIMITER, data, ATTR_DELIMITER_LEN);
+      }
+      xml_elem_writefunc(fptr, XML_DECL_END, data, XML_DECL_END_LEN);
+      if(options->verbosity != xml_elem_no_white_space) {
+         xml_elem_writefunc(fptr, NEWLINE, data, NEWLINE_LEN);
+      }
+   }
+
+   if(options->verbosity == xml_elem_pretty && depth > 2) {
+         xml_elem_writefunc(fptr, whitespace, data, depth - 2);
+   }
+   /* begin element */
+   xml_elem_writefunc(fptr,START_TOKEN_BEGIN, data, START_TOKEN_BEGIN_LEN);
+   if(el->name) {
+      xml_elem_writefunc(fptr, el->name, data, 0);
+
+      /* write attrs, if any */
+      if(Q_Size(&el->attrs)) {
+         xml_element_attr* iter = Q_Head(&el->attrs);
+         while( iter ) {
+            xml_elem_writefunc(fptr, WHITESPACE, data, WHITESPACE_LEN);
+            xml_elem_writefunc(fptr, iter->key, data, 0);
+            xml_elem_writefunc(fptr, EQUALS, data, EQUALS_LEN);
+            xml_elem_writefunc(fptr, ATTR_DELIMITER, data, ATTR_DELIMITER_LEN);
+            xml_elem_writefunc(fptr, iter->val, data, 0);
+            xml_elem_writefunc(fptr, ATTR_DELIMITER, data, ATTR_DELIMITER_LEN);
+
+            iter = Q_Next(&el->attrs);
+         }
+      }
+   }
+   else {
+      xml_elem_writefunc(fptr, "None", data, 0);
+   }
+   /* if no text and no children, use abbreviated form, eg: <foo/> */
+   if(!el->text.len && !Q_Size(&el->children)) {
+       xml_elem_writefunc(fptr, EMPTY_START_TOKEN_END, data, EMPTY_START_TOKEN_END_LEN);
+   }
+   /* otherwise, print element contents */
+   else {
+       xml_elem_writefunc(fptr, START_TOKEN_END, data, START_TOKEN_END_LEN);
+
+       /* print text, if any */
+       if(el->text.len) {
+          char* escaped_str = el->text.str;
+          int buflen = el->text.len;
+
+          if(options->escaping && options->escaping != xml_elem_cdata_escaping) {
+             escaped_str = xml_elem_entity_escape(el->text.str, buflen, &buflen, options->escaping );
+             if(!escaped_str) {
+                escaped_str = el->text.str;
+             }
+          }
+
+          if(options->escaping & xml_elem_cdata_escaping) {
+             xml_elem_writefunc(fptr, CDATA_BEGIN, data, CDATA_BEGIN_LEN);
+          }
+
+          xml_elem_writefunc(fptr, escaped_str, data, buflen);
+
+          if(escaped_str != el->text.str) {
+             my_free(escaped_str);
+          }
+
+          if(options->escaping & xml_elem_cdata_escaping) {
+             xml_elem_writefunc(fptr, CDATA_END, data, CDATA_END_LEN);
+          }
+       }
+       /* no text, so print child elems */
+       else {
+          xml_element *kids = Q_Head(&el->children);
+          i = 0;
+          while( kids ) {
+             if(i++ == 0) {
+                if(options->verbosity != xml_elem_no_white_space) {
+                   xml_elem_writefunc(fptr, NEWLINE, data, NEWLINE_LEN);
+                }
+             }
+             xml_element_serialize(kids, fptr, data, options, depth);
+             kids = Q_Next(&el->children);
+          }
+          if(i) {
+             if(options->verbosity == xml_elem_pretty && depth > 2) {
+                   xml_elem_writefunc(fptr, whitespace, data, depth - 2);
+             }
+          }
+       }
+
+       xml_elem_writefunc(fptr, END_TOKEN_BEGIN, data, END_TOKEN_BEGIN_LEN);
+       xml_elem_writefunc(fptr,el->name ? el->name : "None", data, 0);
+       xml_elem_writefunc(fptr, END_TOKEN_END, data, END_TOKEN_END_LEN);
+   }
+   if(options->verbosity != xml_elem_no_white_space) {
+      xml_elem_writefunc(fptr, NEWLINE, data, NEWLINE_LEN);
+   }
+}
+
+/* print buf to file */
+static int file_out_fptr(void *f, const char *text, int size)
+{
+   fputs(text, (FILE *)f);
+   return 0;
+}
+
+/* print buf to simplestring */
+static int simplestring_out_fptr(void *f, const char *text, int size)
+{
+   simplestring* buf = (simplestring*)f;
+   if(buf) {
+      simplestring_addn(buf, text, size);
+   }
+   return 0;
+}
+
+/****f* xml_element/xml_elem_serialize_to_string
+ * NAME
+ *   xml_elem_serialize_to_string
+ * SYNOPSIS
+ *   void xml_element_serialize_to_string(xml_element *el, XML_ELEM_OUTPUT_OPTIONS options, int *buf_len)
+ * FUNCTION
+ *   writes element tree as XML into a newly allocated buffer
+ * INPUTS
+ *   el      - root element of tree
+ *   options - options determining how output is written.  see XML_ELEM_OUTPUT_OPTIONS
+ *   buf_len - length of returned buffer, if not null.
+ * RESULT
+ *   char* or NULL. Must be free'd by caller.
+ * NOTES
+ * SEE ALSO
+ *   xml_elem_serialize_to_stream ()
+ *   xml_elem_parse_buf ()
+ * SOURCE
+ */
+char* xml_elem_serialize_to_string(xml_element *el, XML_ELEM_OUTPUT_OPTIONS options, int *buf_len)
+{
+   simplestring buf;
+   simplestring_init(&buf);
+
+   xml_element_serialize(el, simplestring_out_fptr, (void *)&buf, options, 0);
+
+   if(buf_len) {
+      *buf_len = buf.len;
+   }
+
+   return buf.str;
+}
+/******/
+
+/****f* xml_element/xml_elem_serialize_to_stream
+ * NAME
+ *   xml_elem_serialize_to_stream
+ * SYNOPSIS
+ *   void xml_elem_serialize_to_stream(xml_element *el, FILE *output, XML_ELEM_OUTPUT_OPTIONS options)
+ * FUNCTION
+ *   writes element tree as XML into a stream (typically an opened file)
+ * INPUTS
+ *   el      - root element of tree
+ *   output  - stream handle
+ *   options - options determining how output is written.  see XML_ELEM_OUTPUT_OPTIONS
+ * RESULT
+ *   void
+ * NOTES
+ * SEE ALSO
+ *   xml_elem_serialize_to_string ()
+ *   xml_elem_parse_buf ()
+ * SOURCE
+ */
+void xml_elem_serialize_to_stream(xml_element *el, FILE *output, XML_ELEM_OUTPUT_OPTIONS options)
+{
+   xml_element_serialize(el, file_out_fptr, (void *)output, options, 0);
+}
+/******/
+
+/*--------------------------*
+* End xml_element Functions *
+*--------------------------*/
+
+
+/*----------------------
+* Begin Expat Handlers *
+*---------------------*/
+
+typedef struct _xml_elem_data {
+   xml_element*           root;
+   xml_element*           current;
+   XML_ELEM_INPUT_OPTIONS input_options;
+   int                    needs_enc_conversion;
+} xml_elem_data;
+
+
+/* expat start of element handler */
+static void startElement(void *userData, const char *name, const char **attrs)
+{
+   xml_element *c;
+   xml_elem_data* mydata = (xml_elem_data*)userData;
+   const char** p = attrs;
+
+   if(mydata) {
+      c = mydata->current;
+
+      mydata->current = xml_elem_new();
+      mydata->current->name = (char*)strdup(name);
+      mydata->current->parent = c;
+
+      /* init attrs */
+      while(p && *p) {
+         xml_element_attr* attr = malloc(sizeof(xml_element_attr));
+         if(attr) {
+            attr->key = strdup(*p);
+            attr->val = strdup(*(p+1));
+            Q_PushTail(&mydata->current->attrs, attr);
+
+            p += 2;
+         }
+      }
+   }
+}
+
+/* expat end of element handler */
+static void endElement(void *userData, const char *name)
+{
+   xml_elem_data* mydata = (xml_elem_data*)userData;
+
+   if(mydata && mydata->current && mydata->current->parent) {
+      Q_PushTail(&mydata->current->parent->children, mydata->current);
+
+      mydata->current = mydata->current->parent;
+   }
+}
+
+/* expat char data handler */
+static void charHandler(void *userData,
+                        const char *s,
+                        int len)
+{
+   xml_elem_data* mydata = (xml_elem_data*)userData;
+   if(mydata && mydata->current) {
+
+      /* Check if we need to decode utf-8 parser output to another encoding */
+      if(mydata->needs_enc_conversion && mydata->input_options->encoding) {
+         int new_len = 0;
+         char* add_text = utf8_decode(s, len, &new_len, mydata->input_options->encoding);
+         if(add_text) {
+            len = new_len;
+            simplestring_addn(&mydata->current->text, add_text, len);
+            free(add_text);
+            return;
+         }
+      }
+      simplestring_addn(&mydata->current->text, s, len);
+   }
+}
+/******/
+
+/*-------------------*
+* End Expat Handlers *
+*-------------------*/
+
+/*-------------------*
+* xml_elem_parse_buf *
+*-------------------*/
+
+/****f* xml_element/xml_elem_parse_buf
+ * NAME
+ *   xml_elem_parse_buf
+ * SYNOPSIS
+ *   xml_element* xml_elem_parse_buf(const char* in_buf, int len, XML_ELEM_INPUT_OPTIONS options, XML_ELEM_ERROR error)
+ * FUNCTION
+ *   parse a buffer containing XML into an xml_element in-memory tree
+ * INPUTS
+ *   in_buf   - buffer containing XML document
+ *   len      - length of buffer
+ *   options  - input options. optional
+ *   error    - error result data. optional. check if result is null.
+ * RESULT
+ *   void
+ * NOTES
+ *   The returned data must be free'd by caller
+ * SEE ALSO
+ *   xml_elem_serialize_to_string ()
+ *   xml_elem_free ()
+ * SOURCE
+ */
+xml_element* xml_elem_parse_buf(const char* in_buf, int len, XML_ELEM_INPUT_OPTIONS options, XML_ELEM_ERROR error)
+{
+   xml_element* xReturn = NULL;
+   char buf[100] = "";
+   static STRUCT_XML_ELEM_INPUT_OPTIONS default_opts = {encoding_utf_8};
+
+   if(!options) {
+      options = &default_opts;
+   }
+
+   if(in_buf) {
+      XML_Parser parser;
+      xml_elem_data mydata = {0};
+
+      parser = XML_ParserCreate(NULL);
+
+      mydata.root = xml_elem_new();
+      mydata.current = mydata.root;
+      mydata.input_options = options;
+      mydata.needs_enc_conversion = options->encoding && strcmp(options->encoding, encoding_utf_8);
+
+      XML_SetElementHandler(parser, startElement, endElement);
+      XML_SetCharacterDataHandler(parser, charHandler);
+
+      /* pass the xml_elem_data struct along */
+      XML_SetUserData(parser, (void*)&mydata);
+
+      if(!len) {
+         len = strlen(in_buf);
+      }
+
+      /* parse the XML */
+      if(XML_Parse(parser, in_buf, len, 1) == 0) {
+         enum XML_Error err_code = XML_GetErrorCode(parser);
+         int line_num = XML_GetCurrentLineNumber(parser);
+         int col_num = XML_GetCurrentColumnNumber(parser);
+         long byte_idx = XML_GetCurrentByteIndex(parser);
+         int byte_total = XML_GetCurrentByteCount(parser);
+         const char * error_str = XML_ErrorString(err_code);
+         if(byte_idx >= 0) {
+             snprintf(buf, 
+                      sizeof(buf),
+                      "\n\tdata beginning %ld before byte index: %s\n",
+                      byte_idx > 10  ? 10 : byte_idx,
+                      in_buf + (byte_idx > 10 ? byte_idx - 10 : byte_idx));
+         }
+
+         fprintf(stderr, "expat reports error code %i\n"
+                "\tdescription: %s\n"
+                "\tline: %i\n"
+                "\tcolumn: %i\n"
+                "\tbyte index: %ld\n"
+                "\ttotal bytes: %i\n%s ",
+                err_code, error_str, line_num, 
+                col_num, byte_idx, byte_total, buf);
+
+
+          /* error condition */
+          if(error) {
+              error->parser_code = (long)err_code;
+              error->line = line_num;
+              error->column = col_num;
+              error->byte_index = byte_idx;
+              error->parser_error = error_str;
+          }
+      }
+      else {
+         xReturn = (xml_element*)Q_Head(&mydata.root->children);
+         xReturn->parent = NULL;
+      }
+
+      XML_ParserFree(parser);
+
+
+      xml_elem_free_non_recurse(mydata.root);
+   }
+
+   return xReturn;
+}
+
+/******/
diff --git a/trunk/php/xmlrpc/libxmlrpc/xml_element.h b/trunk/php/xmlrpc/libxmlrpc/xml_element.h
new file mode 100644 (file)
index 0000000..cfe7ca2
--- /dev/null
@@ -0,0 +1,202 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2000 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+#ifndef __XML_ELEMENT_H__
+ #define __XML_ELEMENT_H__
+
+/* includes */
+#include <stdio.h>
+#include "queue.h"
+#include "simplestring.h"
+#include "encodings.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/****d* enum/XML_ELEM_VERBOSITY
+ * NAME
+ *   XML_ELEM_VERBOSITY
+ * NOTES
+ *   verbosity/readability options for generated xml
+ * SEE ALSO
+ *   XML_ELEM_OUTPUT_OPTIONS
+ * SOURCE
+ */
+typedef enum _xml_elem_verbosity {
+   xml_elem_no_white_space,    /* compact xml with no white space            */
+   xml_elem_newlines_only,     /* add newlines for enhanced readability      */
+   xml_elem_pretty             /* add newlines and indent accordint to depth */
+} XML_ELEM_VERBOSITY;
+/******/
+
+
+/****d* enum/XML_ELEM_ESCAPING
+ * NAME
+ *   XML_ELEM_ESCAPING
+ * NOTES
+ * xml escaping options for generated xml
+ * SEE ALSO
+ *   XML_ELEM_OUTPUT_OPTIONS
+ * SOURCE
+ */
+typedef enum _xml_elem_escaping {
+   xml_elem_no_escaping             = 0x000,
+   xml_elem_markup_escaping         = 0x002,   /* entity escape xml special chars         */
+   xml_elem_non_ascii_escaping      = 0x008,   /* entity escape chars above 127           */
+   xml_elem_non_print_escaping      = 0x010,   /* entity escape non print (illegal) chars */
+   xml_elem_cdata_escaping          = 0x020,   /* wrap in cdata section                   */
+} XML_ELEM_ESCAPING;
+/******/
+
+
+/****s* struct/XML_ELEM_OUTPUT_OPTIONS
+ * NAME
+ *   XML_ELEM_OUTPUT_OPTIONS
+ * NOTES
+ *   defines various output options
+ * SOURCE
+ */
+typedef struct _xml_output_options {
+   XML_ELEM_VERBOSITY           verbosity;      /* length/verbosity of xml        */
+   XML_ELEM_ESCAPING            escaping;       /* how to escape special chars    */
+   const char*                  encoding;       /* <?xml encoding="<encoding>" ?> */
+} STRUCT_XML_ELEM_OUTPUT_OPTIONS, *XML_ELEM_OUTPUT_OPTIONS;
+/******/
+
+/****s* struct/XML_ELEM_INPUT_OPTIONS
+ * NAME
+ *   XML_ELEM_INPUT_OPTIONS
+ * NOTES
+ *   defines various input options
+ * SOURCE
+ */
+typedef struct _xml_input_options {
+  ENCODING_ID                  encoding;       /* which encoding to use.       */
+} STRUCT_XML_ELEM_INPUT_OPTIONS, *XML_ELEM_INPUT_OPTIONS;
+/******/
+
+/****s* struct/XML_ELEM_ERROR
+ * NAME
+ *   XML_ELEM_ERROR
+ * NOTES
+ *   defines an xml parser error
+ * SOURCE
+ */
+typedef struct _xml_elem_error {
+  int parser_code;
+  const char* parser_error;
+  long line;
+  long column;
+  long byte_index;
+} STRUCT_XML_ELEM_ERROR, *XML_ELEM_ERROR;
+/******/
+
+
+/*-************************
+* begin xml element stuff *
+**************************/
+
+/****s* struct/xml_elem_attr
+ * NAME
+ *  xml_elem_attr
+ * NOTES
+ *   representation of an xml attribute, foo="bar"
+ * SOURCE
+ */
+typedef struct _xml_element_attr {
+   char* key;        /* attribute key   */
+   char* val;        /* attribute value */
+} xml_element_attr;
+/******/
+
+/****s* struct/xml_elem_attr
+ * NAME
+ *  xml_elem_attr
+ * NOTES
+ *   representation of an xml element, eg <candidate name="Harry Browne" party="Libertarian"/>
+ * SOURCE
+ */
+typedef struct _xml_element {
+   const char*   name;           /* element identifier */
+   simplestring  text;           /* text contained between element begin/end pairs */
+   struct _xml_element* parent;  /* element's parent */
+                                 
+   queue        attrs;           /* attribute list */
+   queue        children;        /* child element list */
+} xml_element;
+/******/
+
+void xml_elem_free(xml_element* root);
+void xml_elem_free_non_recurse(xml_element* root);
+xml_element* xml_elem_new(void);
+char* xml_elem_serialize_to_string(xml_element *el, XML_ELEM_OUTPUT_OPTIONS options, int *buf_len);
+void xml_elem_serialize_to_stream(xml_element *el, FILE *output, XML_ELEM_OUTPUT_OPTIONS options);
+xml_element* xml_elem_parse_buf(const char* in_buf, int len, XML_ELEM_INPUT_OPTIONS options, XML_ELEM_ERROR error);
+
+/*-**********************
+* end xml element stuff *
+************************/
+
+/*-**********************
+* Begin xml_element API *
+************************/
+
+/****d* VALUE/XMLRPC_MACROS
+ * NAME
+ *   Some Helpful Macros
+ * NOTES
+ *   Some macros for making life easier.  Should be self-explanatory.
+ * SEE ALSO
+ *   XMLRPC_AddValueToVector ()
+ *   XMLRPC_VectorGetValueWithID_Case ()
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+#define xml_elem_next_element(el) ((el) ? (xml_element *)Q_Next(&el->children) : NULL)
+#define xml_elem_head_element(el) ((el) ? (xml_element *)Q_Head(&el->children) : NULL)
+#define xml_elem_next_attr(el) ((el) ? (xml_element_attr *)Q_Next(&el->attrs) : NULL)
+#define xml_elem_head_attr(el) ((el) ? (xml_element_attr *)Q_Head(&el->attrs) : NULL)
+#define xml_elem_get_name(el) (char *)((el) ? el->name : NULL)
+#define xml_elem_get_val(el) (char *)((el) ? el->text.str : NULL)
+/******/
+
+
+/*-********************
+* End xml_element API *
+**********************/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __XML_ELEMENT_H__ */
diff --git a/trunk/php/xmlrpc/libxmlrpc/xml_to_dandarpc.c b/trunk/php/xmlrpc/libxmlrpc/xml_to_dandarpc.c
new file mode 100644 (file)
index 0000000..b51d991
--- /dev/null
@@ -0,0 +1,319 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2000 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+#ifdef _WIN32
+#include "xmlrpc_win32.h"
+#endif
+#include <string.h>
+#include <stdlib.h>
+#include "xml_to_dandarpc.h"
+#include "base64.h"
+
+/* list of tokens used in vocab */
+#define ELEM_METHODCALL     "methodCall"
+#define ELEM_METHODNAME     "methodName"
+#define ELEM_METHODRESPONSE "methodResponse"
+#define ELEM_ROOT           "simpleRPC"
+
+#define ATTR_ARRAY          "array"
+#define ATTR_BASE64         "base64"
+#define ATTR_BOOLEAN        "boolean"
+#define ATTR_DATETIME       "dateTime.iso8601"
+#define ATTR_DOUBLE         "double"
+#define ATTR_ID             "id"
+#define ATTR_INT            "int"
+#define ATTR_MIXED          "mixed"
+#define ATTR_SCALAR         "scalar"
+#define ATTR_STRING         "string"
+#define ATTR_STRUCT         "struct"
+#define ATTR_TYPE           "type"
+#define ATTR_VECTOR         "vector"
+#define ATTR_VERSION        "version"
+
+#define VAL_VERSION_0_9     "0.9"
+
+
+XMLRPC_VALUE xml_element_to_DANDARPC_REQUEST_worker(XMLRPC_REQUEST request, XMLRPC_VALUE xCurrent, xml_element* el) {
+   if(!xCurrent) {
+      xCurrent = XMLRPC_CreateValueEmpty();
+   }
+
+   if(el->name) {
+      const char* id = NULL;
+      const char* type = NULL;
+      xml_element_attr* attr_iter = Q_Head(&el->attrs);
+
+      while(attr_iter) {
+         if(!strcmp(attr_iter->key, ATTR_ID)) {
+            id = attr_iter->val;
+         }
+         if(!strcmp(attr_iter->key, ATTR_TYPE)) {
+            type = attr_iter->val;
+         }
+         attr_iter = Q_Next(&el->attrs);
+      }
+
+      if(id) {
+         XMLRPC_SetValueID_Case(xCurrent, id, 0, xmlrpc_case_exact);
+      }
+
+      if(!strcmp(el->name, ATTR_SCALAR)) {
+         if(!type || !strcmp(type, ATTR_STRING)) {
+            XMLRPC_SetValueString(xCurrent, el->text.str, el->text.len);
+         }
+         else if(!strcmp(type, ATTR_INT)) {
+            XMLRPC_SetValueInt(xCurrent, atoi(el->text.str));
+         }
+         else if(!strcmp(type, ATTR_BOOLEAN)) {
+            XMLRPC_SetValueBoolean(xCurrent, atoi(el->text.str));
+         }
+         else if(!strcmp(type, ATTR_DOUBLE)) {
+            XMLRPC_SetValueDouble(xCurrent, atof(el->text.str));
+         }
+         else if(!strcmp(type, ATTR_DATETIME)) {
+            XMLRPC_SetValueDateTime_ISO8601(xCurrent, el->text.str);
+         }
+         else if(!strcmp(type, ATTR_BASE64)) {
+            struct buffer_st buf;
+            base64_decode(&buf, el->text.str, el->text.len);
+            XMLRPC_SetValueBase64(xCurrent, buf.data, buf.offset);
+            buffer_delete(&buf);
+         }
+      }
+      else if(!strcmp(el->name, ATTR_VECTOR)) {
+         xml_element* iter = (xml_element*)Q_Head(&el->children);
+
+         if(!type || !strcmp(type, ATTR_MIXED)) {
+            XMLRPC_SetIsVector(xCurrent, xmlrpc_vector_mixed);
+         }
+         else if(!strcmp(type, ATTR_ARRAY)) {
+                               XMLRPC_SetIsVector(xCurrent, xmlrpc_vector_array);
+         }
+         else if(!strcmp(type, ATTR_STRUCT)) {
+            XMLRPC_SetIsVector(xCurrent, xmlrpc_vector_struct);
+         }
+         while( iter ) {
+            XMLRPC_VALUE xNext = XMLRPC_CreateValueEmpty();
+            xml_element_to_DANDARPC_REQUEST_worker(request, xNext, iter);
+            XMLRPC_AddValueToVector(xCurrent, xNext);
+            iter = (xml_element*)Q_Next(&el->children);
+         }
+      }
+      else {
+         xml_element* iter = (xml_element*)Q_Head(&el->children);
+         while( iter ) {
+            xml_element_to_DANDARPC_REQUEST_worker(request, xCurrent, iter);
+            iter = (xml_element*)Q_Next(&el->children);
+         }
+
+         if(!strcmp(el->name, ELEM_METHODCALL)) {
+            if(request) {
+               XMLRPC_RequestSetRequestType(request, xmlrpc_request_call);
+            }
+         }
+         else if(!strcmp(el->name, ELEM_METHODRESPONSE)) {
+            if(request) {
+               XMLRPC_RequestSetRequestType(request, xmlrpc_request_response);
+            }
+         }
+         else if(!strcmp(el->name, ELEM_METHODNAME)) {
+            if(request) {
+               XMLRPC_RequestSetMethodName(request, el->text.str);
+            }
+         }
+      }
+   }
+   return xCurrent;
+}
+
+XMLRPC_VALUE xml_element_to_DANDARPC_VALUE(xml_element* el)
+{
+   return xml_element_to_DANDARPC_REQUEST_worker(NULL, NULL, el);
+}
+
+XMLRPC_VALUE xml_element_to_DANDARPC_REQUEST(XMLRPC_REQUEST request, xml_element* el)
+{
+   if(request) {
+      return XMLRPC_RequestSetData(request, xml_element_to_DANDARPC_REQUEST_worker(request, NULL, el));
+   }
+   return NULL;
+}
+
+xml_element* DANDARPC_to_xml_element_worker(XMLRPC_REQUEST request, XMLRPC_VALUE node) {
+#define BUF_SIZE 512
+   xml_element* root = NULL;
+   if(node) {
+      char buf[BUF_SIZE];
+      const char* id = XMLRPC_GetValueID(node);
+      XMLRPC_VALUE_TYPE type = XMLRPC_GetValueType(node);
+      XMLRPC_REQUEST_OUTPUT_OPTIONS output = XMLRPC_RequestGetOutputOptions(request);
+      int bNoAddType = (type == xmlrpc_string && request && output && output->xml_elem_opts.verbosity == xml_elem_no_white_space);
+      xml_element* elem_val = xml_elem_new();
+      const char* pAttrType = NULL;
+
+      xml_element_attr* attr_type = bNoAddType ? NULL : malloc(sizeof(xml_element_attr));
+       
+      if(attr_type) {
+         attr_type->key = strdup(ATTR_TYPE);
+         attr_type->val = 0;
+         Q_PushTail(&elem_val->attrs, attr_type);
+      }
+
+      elem_val->name = (type == xmlrpc_vector) ? strdup(ATTR_VECTOR) : strdup(ATTR_SCALAR);
+
+      if(id && *id) {
+         xml_element_attr* attr_id = malloc(sizeof(xml_element_attr));
+         if(attr_id) {
+            attr_id->key = strdup(ATTR_ID);
+            attr_id->val = strdup(id);
+            Q_PushTail(&elem_val->attrs, attr_id);
+         }
+      }
+
+      switch(type) {
+         case xmlrpc_string:
+            pAttrType = ATTR_STRING;
+            simplestring_addn(&elem_val->text, XMLRPC_GetValueString(node), XMLRPC_GetValueStringLen(node));
+            break;
+         case xmlrpc_int:
+            pAttrType = ATTR_INT;
+            snprintf(buf, BUF_SIZE, "%i", XMLRPC_GetValueInt(node));
+            simplestring_add(&elem_val->text, buf);
+            break;
+         case xmlrpc_boolean:
+            pAttrType = ATTR_BOOLEAN;
+            snprintf(buf, BUF_SIZE, "%i", XMLRPC_GetValueBoolean(node));
+            simplestring_add(&elem_val->text, buf);
+            break;
+         case xmlrpc_double:
+            pAttrType = ATTR_DOUBLE;
+            snprintf(buf, BUF_SIZE, "%f", XMLRPC_GetValueDouble(node));
+            simplestring_add(&elem_val->text, buf);
+            break;
+         case xmlrpc_datetime:
+            pAttrType = ATTR_DATETIME;
+            simplestring_add(&elem_val->text, XMLRPC_GetValueDateTime_ISO8601(node));
+            break;
+         case xmlrpc_base64:
+            {
+               struct buffer_st buf;
+               pAttrType = ATTR_BASE64;
+               base64_encode(&buf, XMLRPC_GetValueBase64(node), XMLRPC_GetValueStringLen(node));
+               simplestring_addn(&elem_val->text, buf.data, buf.offset );
+               buffer_delete(&buf);
+            }
+            break;
+         case xmlrpc_vector:
+            {
+               XMLRPC_VECTOR_TYPE my_type = XMLRPC_GetVectorType(node);
+               XMLRPC_VALUE xIter = XMLRPC_VectorRewind(node);
+
+               switch(my_type) {
+                  case xmlrpc_vector_array:
+                     pAttrType = ATTR_ARRAY;
+                     break;
+                  case xmlrpc_vector_mixed:
+                     pAttrType = ATTR_MIXED;
+                     break;
+                  case xmlrpc_vector_struct:
+                     pAttrType = ATTR_STRUCT;
+                     break;
+                  default:
+                     break;
+               }
+
+               /* recurse through sub-elements */
+               while( xIter ) {
+                  xml_element* next_el = DANDARPC_to_xml_element_worker(request, xIter);
+                  if(next_el) {
+                     Q_PushTail(&elem_val->children, next_el);
+                  }
+                  xIter = XMLRPC_VectorNext(node);
+               }
+            }
+            break;
+         default:
+            break;
+      }
+      if(pAttrType && attr_type && !bNoAddType) {
+         attr_type->val = strdup(pAttrType);
+      }
+      root = elem_val;
+   }
+   return root;
+}
+
+xml_element* DANDARPC_VALUE_to_xml_element(XMLRPC_VALUE node) {
+   return DANDARPC_to_xml_element_worker(NULL, node);
+}
+
+xml_element* DANDARPC_REQUEST_to_xml_element(XMLRPC_REQUEST request) {
+   xml_element* wrapper = NULL;
+   xml_element* root = NULL;
+   if(request) {
+      XMLRPC_REQUEST_TYPE request_type = XMLRPC_RequestGetRequestType(request);
+      const char* pStr = NULL;
+      xml_element_attr* version = malloc(sizeof(xml_element_attr));
+      version->key = strdup(ATTR_VERSION);
+      version->val = strdup(VAL_VERSION_0_9);
+      
+      wrapper = xml_elem_new();
+
+      if(request_type == xmlrpc_request_response) {
+         pStr = ELEM_METHODRESPONSE;
+      }
+      else if(request_type == xmlrpc_request_call) {
+         pStr = ELEM_METHODCALL;
+      }
+      if(pStr) {
+         wrapper->name = strdup(pStr);
+      }
+
+      root = xml_elem_new();
+      root->name = strdup(ELEM_ROOT);
+      Q_PushTail(&root->attrs, version);
+      Q_PushTail(&root->children, wrapper);
+
+      pStr = XMLRPC_RequestGetMethodName(request);
+
+      if(pStr) {
+         xml_element* method = xml_elem_new();
+         method->name = strdup(ELEM_METHODNAME);
+         simplestring_add(&method->text, pStr);
+         Q_PushTail(&wrapper->children, method);
+      }
+      Q_PushTail(&wrapper->children, 
+                 DANDARPC_to_xml_element_worker(request, XMLRPC_RequestGetData(request)));
+   }
+   return root;
+}
+
diff --git a/trunk/php/xmlrpc/libxmlrpc/xml_to_dandarpc.h b/trunk/php/xmlrpc/libxmlrpc/xml_to_dandarpc.h
new file mode 100644 (file)
index 0000000..6facb55
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2000 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+#ifndef XML_TO_DANDARPC_H
+ #define XML_TO_DANDARPC_H
+
+#include "time.h" 
+#include "xmlrpc.h"
+
+XMLRPC_VALUE xml_element_to_DANDARPC_VALUE(xml_element* el);
+XMLRPC_VALUE xml_element_to_DANDARPC_REQUEST(XMLRPC_REQUEST request, xml_element* el);
+xml_element* DANDARPC_VALUE_to_xml_element(XMLRPC_VALUE node);
+xml_element* DANDARPC_REQUEST_to_xml_element(XMLRPC_REQUEST request);
+
+#endif /* XML_TO_DANDARPC_H */
diff --git a/trunk/php/xmlrpc/libxmlrpc/xml_to_soap.c b/trunk/php/xmlrpc/libxmlrpc/xml_to_soap.c
new file mode 100644 (file)
index 0000000..8390f06
--- /dev/null
@@ -0,0 +1,670 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+*/
+
+
+/*-**********************************************************************
+* TODO:                                                                 *
+*  - [SOAP-ENC:position] read sparse arrays (and write?)                *
+*  - [SOAP-ENC:offset] read partially transmitted arrays  (and write?)  *
+*  - read "flattened" multi-dimensional arrays. (don't bother writing)  *
+*                                                                       *
+* BUGS:                                                                 *
+*  - does not read schema. thus only knows soap pre-defined types.      *
+*  - references (probably) do not work. untested.                       *
+*  - does not expose SOAP-ENV:Header to application at all.             *
+*  - does not use namespaces correctly, thus:                           *
+*    - namespaces are hard-coded in comparison tokens                   *
+*    - if a sender uses another namespace identifer, it will break      *
+************************************************************************/
+
+
+static const char rcsid[] = "#(@) $Id:";
+
+#ifdef _WIN32
+#include "xmlrpc_win32.h"
+#endif
+#include <string.h>
+#include <stdlib.h>
+#include "xml_to_soap.h"
+#include "base64.h"
+
+/* list of tokens used in vocab */
+#define TOKEN_ANY                               "xsd:ur-type"
+#define TOKEN_ARRAY          "SOAP-ENC:Array"
+#define TOKEN_ARRAY_TYPE     "SOAP-ENC:arrayType"
+#define TOKEN_BASE64         "SOAP-ENC:base64"
+#define TOKEN_BOOLEAN        "xsd:boolean"
+#define TOKEN_DATETIME       "xsd:timeInstant"
+#define TOKEN_DOUBLE         "xsd:double"
+#define TOKEN_FLOAT          "xsd:float"
+#define TOKEN_ID             "id"
+#define TOKEN_INT            "xsd:int"
+#define TOKEN_NULL           "xsi:null"
+#define TOKEN_STRING         "xsd:string"
+#define TOKEN_STRUCT                    "xsd:struct"
+#define TOKEN_TYPE           "xsi:type"
+#define TOKEN_FAULT                     "SOAP-ENV:Fault"
+#define TOKEN_MUSTUNDERSTAND "SOAP-ENV:mustUnderstand"
+#define TOKEN_ACTOR                     "SOAP-ENV:actor"
+#define TOKEN_ACTOR_NEXT                "http://schemas.xmlsoap.org/soap/actor/next"
+
+#define TOKEN_XMLRPC_FAULTCODE   "faultCode"
+#define TOKEN_XMLRPC_FAULTSTRING "faultString"
+#define TOKEN_SOAP_FAULTCODE     "faultcode"
+#define TOKEN_SOAP_FAULTSTRING   "faultstring"
+#define TOKEN_SOAP_FAULTDETAILS  "details"
+#define TOKEN_SOAP_FAULTACTOR    "actor"
+
+
+/* determine if a string represents a soap type, as used in element names */
+static inline int is_soap_type(const char* soap_type) {
+       return(strstr(soap_type, "SOAP-ENC:") || strstr(soap_type, "xsd:")) ? 1 : 0;
+}
+
+/* utility func to generate a new attribute. possibly should be in xml_element.c?? */
+static xml_element_attr* new_attr(const char* key, const char* val) {
+       xml_element_attr* attr = malloc(sizeof(xml_element_attr));
+       if (attr) {
+               attr->key = key ? strdup(key) : NULL;
+               attr->val = val ? strdup(val) : NULL;
+       }
+       return attr;
+}
+
+struct array_info {
+       char          kids_type[30];
+       unsigned long size;
+       /* ... ? */
+};
+
+
+/* parses soap arrayType attribute to generate an array_info structure.
+ * TODO: should deal with sparse, flattened, & multi-dimensional arrays
+ */
+static struct array_info* parse_array_type_info(const char* array_type) {
+       struct array_info* ai = NULL;
+       if (array_type) {
+               ai = (struct array_info*)calloc(1, sizeof(struct array_info));
+               if (ai) {
+                       char buf[128], *p;
+                       snprintf(buf, sizeof(buf), "%s", array_type);
+                       p = strchr(buf, '[');
+                       if (p) {
+                               *p = 0;
+                       }
+                       strcpy(ai->kids_type, buf);
+               }
+       }
+       return ai;
+}
+
+/* performs heuristics on an xmlrpc_vector_array to determine
+ * appropriate soap arrayType string.
+ */
+static const char* get_array_soap_type(XMLRPC_VALUE node) {
+       XMLRPC_VALUE_TYPE_EASY type = xmlrpc_type_none;
+
+       XMLRPC_VALUE xIter = XMLRPC_VectorRewind(node);
+       int loopCount = 0;
+       const char* soapType = TOKEN_ANY;
+
+       type = XMLRPC_GetValueTypeEasy(xIter);
+       xIter = XMLRPC_VectorNext(node);
+
+       while (xIter) {
+               /* 50 seems like a decent # of loops.  That will likely
+                * cover most cases.  Any more and we start to sacrifice
+                * performance.
+                */
+               if ( (XMLRPC_GetValueTypeEasy(xIter) != type) || loopCount >= 50) {
+                       type = xmlrpc_type_none;
+                       break;
+               }
+               loopCount ++;
+
+               xIter = XMLRPC_VectorNext(node);
+       }
+       switch (type) {
+       case xmlrpc_type_none:
+               soapType = TOKEN_ANY;
+               break;
+       case xmlrpc_type_empty:
+               soapType = TOKEN_NULL;
+               break;
+       case xmlrpc_type_int:
+               soapType = TOKEN_INT;
+               break;
+       case xmlrpc_type_double:
+               soapType = TOKEN_DOUBLE;
+               break;
+       case xmlrpc_type_boolean:
+               soapType = TOKEN_BOOLEAN;
+               break;
+       case xmlrpc_type_string:
+               soapType = TOKEN_STRING;
+               break;
+       case xmlrpc_type_base64:
+               soapType = TOKEN_BASE64;
+               break;
+       case xmlrpc_type_datetime:
+               soapType = TOKEN_DATETIME;
+               break;
+       case xmlrpc_type_struct:
+               soapType = TOKEN_STRUCT;
+               break;
+       case xmlrpc_type_array:
+               soapType = TOKEN_ARRAY;
+               break;
+       case xmlrpc_type_mixed:
+               soapType = TOKEN_STRUCT;
+               break;
+       }
+       return soapType;
+}
+
+/* determines wether a node is a fault or not, and of which type:
+ * 0 = not a fault,
+ * 1 = xmlrpc style fault
+ * 2 = soap style fault.
+ */
+static inline int get_fault_type(XMLRPC_VALUE node) {
+       if (XMLRPC_VectorGetValueWithID(node, TOKEN_XMLRPC_FAULTCODE) &&
+                XMLRPC_VectorGetValueWithID(node, TOKEN_XMLRPC_FAULTSTRING)) {
+               return 1;
+       }
+       else if (XMLRPC_VectorGetValueWithID(node, TOKEN_SOAP_FAULTCODE) &&
+                               XMLRPC_VectorGetValueWithID(node, TOKEN_SOAP_FAULTSTRING)) {
+               return 2;
+       }
+       return 0;
+}
+
+/* input: an XMLRPC_VALUE representing a fault struct in xml-rpc style.
+ * output: an XMLRPC_VALUE representing a fault struct in soap style,
+ *  with xmlrpc codes mapped to soap codes, and all other values preserved.
+ *  note that the returned value is a completely new value, and must be freed.
+ *  the input value is untouched.
+ */
+static XMLRPC_VALUE gen_fault_xmlrpc(XMLRPC_VALUE node, xml_element* el_target) {
+       XMLRPC_VALUE xDup = XMLRPC_DupValueNew(node);
+       XMLRPC_VALUE xCode = XMLRPC_VectorGetValueWithID(xDup, TOKEN_XMLRPC_FAULTCODE);
+       XMLRPC_VALUE xStr = XMLRPC_VectorGetValueWithID(xDup, TOKEN_XMLRPC_FAULTSTRING);
+
+       XMLRPC_SetValueID(xCode, TOKEN_SOAP_FAULTCODE, 0);
+       XMLRPC_SetValueID(xStr, TOKEN_SOAP_FAULTSTRING, 0);
+
+       /* rough mapping of xmlrpc fault codes to soap codes */
+       switch (XMLRPC_GetValueInt(xCode)) {
+       case -32700:              /* "parse error. not well formed", */
+       case -32701:              /* "parse error. unsupported encoding" */
+       case -32702:              /* "parse error. invalid character for encoding" */
+       case -32600:              /* "server error. invalid xml-rpc.  not conforming to spec." */
+       case -32601:              /* "server error. requested method not found" */
+       case -32602:              /* "server error. invalid method parameters" */
+               XMLRPC_SetValueString(xCode, "SOAP-ENV:Client", 0);
+               break;
+       case -32603:              /* "server error. internal xml-rpc error" */
+       case -32500:              /* "application error" */
+       case -32400:              /* "system error" */
+       case -32300:              /* "transport error */
+               XMLRPC_SetValueString(xCode, "SOAP-ENV:Server", 0);
+               break;
+       }
+       return xDup;
+}
+
+/* returns a new XMLRPC_VALUE representing a soap fault, comprised of a struct with four keys. */
+static XMLRPC_VALUE gen_soap_fault(const char* fault_code, const char* fault_string, 
+                                                                                         const char* actor, const char* details) {
+       XMLRPC_VALUE xReturn = XMLRPC_CreateVector(TOKEN_FAULT, xmlrpc_vector_struct);
+       XMLRPC_AddValuesToVector(xReturn,
+                                                                        XMLRPC_CreateValueString(TOKEN_SOAP_FAULTCODE, fault_code, 0),
+                                                                        XMLRPC_CreateValueString(TOKEN_SOAP_FAULTSTRING, fault_string, 0),
+                                                                        XMLRPC_CreateValueString(TOKEN_SOAP_FAULTACTOR, actor, 0),
+                                                                        XMLRPC_CreateValueString(TOKEN_SOAP_FAULTDETAILS, details, 0),
+                                                                        NULL);
+       return xReturn;
+}
+
+/* translates xml soap dom to native data structures. recursive. */
+XMLRPC_VALUE xml_element_to_SOAP_REQUEST_worker(XMLRPC_REQUEST request, 
+                                                                                                                               XMLRPC_VALUE xParent,
+                                                                                                                               struct array_info* parent_array,
+                                                                                                                               XMLRPC_VALUE xCurrent, 
+                                                                                                                               xml_element* el, 
+                                                                                                                               int depth) {
+       XMLRPC_REQUEST_TYPE rtype = xmlrpc_request_none;
+
+       /* no current element on first call */
+       if (!xCurrent) {
+               xCurrent = XMLRPC_CreateValueEmpty();
+       }
+
+       /* increment recursion depth guage */
+       depth ++;
+
+       /* safety first. must have a valid element */
+       if (el && el->name) {
+               const char* id = NULL;
+               const char* type = NULL, *arrayType=NULL, *actor = NULL;
+               xml_element_attr* attr_iter = Q_Head(&el->attrs);
+               int b_must_understand = 0;
+               
+               /* in soap, types may be specified in either element name -or- with xsi:type attribute. */
+               if (is_soap_type(el->name)) {
+                       type = el->name;
+               }
+               /* if our parent node, by definition a vector, is not an array, then
+                  our element name must be our key identifier. */
+               else if (XMLRPC_GetVectorType(xParent) != xmlrpc_vector_array) {
+                       id = el->name;
+                       if(!strcmp(id, "item")) {
+                       }
+               }
+
+               /* iterate through element attributes, pick out useful stuff. */
+               while (attr_iter) {
+                       /* element's type */
+                       if (!strcmp(attr_iter->key, TOKEN_TYPE)) {
+                               type = attr_iter->val;
+                       }
+                       /* array type */
+                       else if (!strcmp(attr_iter->key, TOKEN_ARRAY_TYPE)) {
+                               arrayType = attr_iter->val;
+                       }
+                       /* must understand, sometimes present in headers. */
+                       else if (!strcmp(attr_iter->key, TOKEN_MUSTUNDERSTAND)) {
+                               b_must_understand = strchr(attr_iter->val, '1') ? 1 : 0;
+                       }
+                       /* actor, used in conjuction with must understand. */
+                       else if (!strcmp(attr_iter->key, TOKEN_ACTOR)) {
+                               actor = attr_iter->val;
+                       }
+                       attr_iter = Q_Next(&el->attrs);
+               }
+
+               /* check if caller says we must understand something in a header. */
+               if (b_must_understand) {
+                       /* is must understand actually indended for us?
+                          BUG: spec says we should also determine if actor is our URL, but
+                               we do not have that information. */
+                       if (!actor || !strcmp(actor, TOKEN_ACTOR_NEXT)) {
+                               /* TODO: implement callbacks or other mechanism for applications
+                                  to "understand" these headers. For now, we just bail if we
+                                  get a mustUnderstand header intended for us. */
+                               XMLRPC_RequestSetError(request, 
+                                                                                         gen_soap_fault("SOAP-ENV:MustUnderstand",
+                                                                                                                                 "SOAP Must Understand Error",
+                                                                                                                                 "", ""));
+                               return xCurrent;
+                       }
+               }
+
+               /* set id (key) if one was found. */
+               if (id) {
+                       XMLRPC_SetValueID_Case(xCurrent, id, 0, xmlrpc_case_exact);
+               }
+
+               /* according to soap spec, 
+                  depth 1 = Envelope, 2 = Header, Body & Fault, 3 = methodcall or response. */
+               if (depth == 3) {
+                       const char* methodname = el->name;
+                       char* p = NULL;
+
+                       /* BUG: we determine request or response type using presence of "Response" in element name.
+                          According to spec, this is only recommended, not required. Apparently, implementations
+                          are supposed to know the type of action based on state, which strikes me as a bit lame.
+                          Anyway, we don't have that state info, thus we use Response as a heuristic. */
+                       rtype =
+#ifdef strcasestr
+                       strcasestr(el->name, "response") ? xmlrpc_request_response : xmlrpc_request_call;
+#else
+                       strstr(el->name, "esponse") ? xmlrpc_request_response : xmlrpc_request_call;
+#endif
+                       XMLRPC_RequestSetRequestType(request, rtype);
+
+                       /* Get methodname.  strip xml namespace crap. */
+                       p = strchr(el->name, ':');
+                       if (p) {
+                               methodname = p + 1;
+                       }
+                       if (rtype == xmlrpc_request_call) {
+                               XMLRPC_RequestSetMethodName(request, methodname);
+                       }
+               }
+
+
+               /* Next, we begin to convert actual values. if no children, then must be a scalar value. */
+               if (!Q_Size(&el->children)) {
+                       if (!type && parent_array && parent_array->kids_type[0]) {
+                               type = parent_array->kids_type;
+                       }
+                       if (!type || !strcmp(type, TOKEN_STRING)) {
+                               XMLRPC_SetValueString(xCurrent, el->text.str, el->text.len);
+                       }
+                       else if (!strcmp(type, TOKEN_INT)) {
+                               XMLRPC_SetValueInt(xCurrent, atoi(el->text.str));
+                       }
+                       else if (!strcmp(type, TOKEN_BOOLEAN)) {
+                               XMLRPC_SetValueBoolean(xCurrent, atoi(el->text.str));
+                       }
+                       else if (!strcmp(type, TOKEN_DOUBLE) ||
+                                               !strcmp(type, TOKEN_FLOAT)) {
+                               XMLRPC_SetValueDouble(xCurrent, atof(el->text.str));
+                       }
+                       else if (!strcmp(type, TOKEN_NULL)) {
+                               /* already an empty val. do nothing. */
+                       }
+                       else if (!strcmp(type, TOKEN_DATETIME)) {
+                               XMLRPC_SetValueDateTime_ISO8601(xCurrent, el->text.str);
+                       }
+                       else if (!strcmp(type, TOKEN_BASE64)) {
+                               struct buffer_st buf;
+                               base64_decode(&buf, el->text.str, el->text.len);
+                               XMLRPC_SetValueBase64(xCurrent, buf.data, buf.offset);
+                               buffer_delete(&buf);
+                       }
+               }
+               /* Element has children, thus a vector, or "compound type" in soap-speak. */
+               else {
+                       struct array_info* ai = NULL;
+                       xml_element* iter = (xml_element*)Q_Head(&el->children);
+
+                       if (!type || !strcmp(type, TOKEN_STRUCT)) {
+                               XMLRPC_SetIsVector(xCurrent, xmlrpc_vector_struct);
+                       }
+                       else if (!strcmp(type, TOKEN_ARRAY) || arrayType != NULL) {
+                               /* determine magic associated with soap array type.
+                                  this is passed down as we recurse, so our children have access to the info. */
+                               ai = parse_array_type_info(arrayType);  // alloc'ed ai free'd below.
+                               XMLRPC_SetIsVector(xCurrent, xmlrpc_vector_array);
+                       }
+                       else {
+                               /* mixed is probably closest thing we have to compound type. */
+                               XMLRPC_SetIsVector(xCurrent, xmlrpc_vector_mixed);
+                       }
+                       /* Recurse, adding values as we go.  Check for error during recursion
+                          and if found, bail.  this short-circuits us out of the recursion. */
+                       while ( iter && !XMLRPC_RequestGetError(request) ) {
+                               XMLRPC_VALUE xNext = NULL;
+                               /* top level elements don't actually represent values, so we just pass the
+                                  current value along until we are deep enough. */
+                               if ( depth <= 2 ||
+                                         (rtype == xmlrpc_request_response && depth <= 3) ) {
+                                       xml_element_to_SOAP_REQUEST_worker(request, NULL, ai, xCurrent, iter, depth);
+                               }
+                               /* ready to do some actual de-serialization. create a new empty value and
+                                  pass that along to be init'd, then add it to our current vector. */
+                               else {
+                                       xNext = XMLRPC_CreateValueEmpty();
+                                       xml_element_to_SOAP_REQUEST_worker(request, xCurrent, ai, xNext, iter, depth);
+                                       XMLRPC_AddValueToVector(xCurrent, xNext);
+                               }
+                               iter = (xml_element*)Q_Next(&el->children);
+                       }
+                       /* cleanup */
+                       if (ai) {
+                               free(ai);
+                       }
+               }
+       }
+       return xCurrent;
+}
+
+/* Convert soap xml dom to XMLRPC_VALUE, sans request info.  untested. */
+XMLRPC_VALUE xml_element_to_SOAP_VALUE(xml_element* el)
+{
+       return xml_element_to_SOAP_REQUEST_worker(NULL, NULL, NULL, NULL, el, 0);
+}
+
+/* Convert soap xml dom to XMLRPC_REQUEST */
+XMLRPC_VALUE xml_element_to_SOAP_REQUEST(XMLRPC_REQUEST request, xml_element* el)
+{
+       if (request) {
+               return XMLRPC_RequestSetData(request, xml_element_to_SOAP_REQUEST_worker(request, NULL, NULL, NULL, el, 0));
+       }
+       return NULL;
+}
+
+
+/* translates data structures to soap/xml. recursive */
+xml_element* SOAP_to_xml_element_worker(XMLRPC_REQUEST request, XMLRPC_VALUE node) {
+#define BUF_SIZE 128
+       xml_element* elem_val = NULL;
+       if (node) {
+               int bFreeNode = 0;  /* sometimes we may need to free 'node' variable */
+               char buf[BUF_SIZE];
+               XMLRPC_VALUE_TYPE_EASY type = XMLRPC_GetValueTypeEasy(node);
+               char* pName = NULL, *pAttrType = NULL;
+
+               /* create our return value element */
+               elem_val = xml_elem_new();
+
+               switch (type) {
+               case xmlrpc_type_struct:
+               case xmlrpc_type_mixed:
+               case xmlrpc_type_array:
+                       if (type == xmlrpc_type_array) {
+                               /* array's are _very_ special in soap.
+                                  TODO: Should handle sparse/partial arrays here. */
+
+                               /* determine soap array type. */
+                               const char* type = get_array_soap_type(node);
+                               xml_element_attr* attr_array_type = NULL;
+
+                               /* specify array kids type and array size. */
+                               snprintf(buf, sizeof(buf), "%s[%i]", type, XMLRPC_VectorSize(node));
+                               attr_array_type = new_attr(TOKEN_ARRAY_TYPE, buf);
+
+                               Q_PushTail(&elem_val->attrs, attr_array_type);
+
+                               pAttrType = TOKEN_ARRAY;
+                       }
+                       /* check for fault, which is a rather special case. 
+                          (can't these people design anything consistent/simple/elegant?) */
+                       else if (type == xmlrpc_type_struct) {
+                               int fault_type = get_fault_type(node);
+                               if (fault_type) {
+                                       if (fault_type == 1) {
+                                               /* gen fault from xmlrpc style fault codes              
+                                                   notice that we get a new node, which must be freed herein. */
+                                               node = gen_fault_xmlrpc(node, elem_val);
+                                               bFreeNode = 1;
+                                       }
+                                       pName = TOKEN_FAULT;
+                               }
+                       }
+
+                       {
+                               /* recurse through sub-elements */
+                               XMLRPC_VALUE xIter = XMLRPC_VectorRewind(node);
+                               while ( xIter ) {
+                                       xml_element* next_el = SOAP_to_xml_element_worker(request, xIter);
+                                       if (next_el) {
+                                               Q_PushTail(&elem_val->children, next_el);
+                                       }
+                                       xIter = XMLRPC_VectorNext(node);
+                               }
+                       }
+
+                       break;
+
+                       /* handle scalar types */
+               case xmlrpc_type_empty:
+                       pAttrType = TOKEN_NULL;
+                       break;
+               case xmlrpc_type_string:
+                       pAttrType = TOKEN_STRING;
+                       simplestring_addn(&elem_val->text, XMLRPC_GetValueString(node), XMLRPC_GetValueStringLen(node));
+                       break;
+               case xmlrpc_type_int:
+                       pAttrType = TOKEN_INT;
+                       snprintf(buf, BUF_SIZE, "%i", XMLRPC_GetValueInt(node));
+                       simplestring_add(&elem_val->text, buf);
+                       break;
+               case xmlrpc_type_boolean:
+                       pAttrType = TOKEN_BOOLEAN;
+                       snprintf(buf, BUF_SIZE, "%i", XMLRPC_GetValueBoolean(node));
+                       simplestring_add(&elem_val->text, buf);
+                       break;
+               case xmlrpc_type_double:
+                       pAttrType = TOKEN_DOUBLE;
+                       snprintf(buf, BUF_SIZE, "%f", XMLRPC_GetValueDouble(node));
+                       simplestring_add(&elem_val->text, buf);
+                       break;
+               case xmlrpc_type_datetime:
+                       {
+                               time_t tt = XMLRPC_GetValueDateTime(node);
+                               struct tm *tm = localtime (&tt);
+                               pAttrType = TOKEN_DATETIME;
+                               if(strftime (buf, BUF_SIZE, "%Y-%m-%dT%H:%M:%SZ", tm)) {
+                                       simplestring_add(&elem_val->text, buf);
+                               }
+                       }
+                       break;
+               case xmlrpc_type_base64:
+                       {
+                               struct buffer_st buf;
+                               pAttrType = TOKEN_BASE64;
+                               base64_encode(&buf, XMLRPC_GetValueBase64(node), XMLRPC_GetValueStringLen(node));
+                               simplestring_addn(&elem_val->text, buf.data, buf.offset );
+                               buffer_delete(&buf);
+                       }
+                       break;
+                       break;
+               default:
+                       break;
+               }
+
+               /* determining element's name is a bit tricky, due to soap semantics. */
+               if (!pName) {
+                       /* if the value's type is known... */
+                       if (pAttrType) {
+                               /* see if it has an id (key). If so, use that as name, and type as an attribute. */
+                               pName = (char*)XMLRPC_GetValueID(node);
+                               if (pName) {
+                                       Q_PushTail(&elem_val->attrs, new_attr(TOKEN_TYPE, pAttrType));
+                               }
+
+                               /* otherwise, use the type as the name. */
+                               else {
+                                       pName = pAttrType;
+                               }
+                       }
+                       /* if the value's type is not known... (a rare case?) */
+                       else {
+                               /* see if it has an id (key). otherwise, default to generic "item" */
+                               pName = (char*)XMLRPC_GetValueID(node);
+                               if (!pName) {
+                                       pName = "item";
+                               }
+                       }
+               }
+               elem_val->name = strdup(pName);
+
+               /* cleanup */
+               if (bFreeNode) {
+                       XMLRPC_CleanupValue(node);
+               }
+       }
+       return elem_val;
+}
+
+/* convert XMLRPC_VALUE to soap xml dom.  untested. */
+xml_element* SOAP_VALUE_to_xml_element(XMLRPC_VALUE node) {
+       return SOAP_to_xml_element_worker(NULL, node);
+}
+
+/* convert XMLRPC_REQUEST to soap xml dom. */
+xml_element* SOAP_REQUEST_to_xml_element(XMLRPC_REQUEST request) {
+       xml_element* root = xml_elem_new();
+
+       /* safety first. */
+       if (root) {
+               xml_element* body = xml_elem_new();
+               root->name = strdup("SOAP-ENV:Envelope");
+
+               /* silly namespace stuff */
+               Q_PushTail(&root->attrs, new_attr("xmlns:SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/"));
+               Q_PushTail(&root->attrs, new_attr("xmlns:xsi", "http://www.w3.org/1999/XMLSchema-instance"));
+               Q_PushTail(&root->attrs, new_attr("xmlns:xsd", "http://www.w3.org/1999/XMLSchema"));
+               Q_PushTail(&root->attrs, new_attr("xmlns:SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/"));
+               Q_PushTail(&root->attrs, new_attr("xmlns:si", "http://soapinterop.org/xsd"));
+               Q_PushTail(&root->attrs, new_attr("xmlns:ns6", "http://testuri.org"));
+               Q_PushTail(&root->attrs, new_attr("SOAP-ENV:encodingStyle", "http://schemas.xmlsoap.org/soap/encoding/"));
+
+               /* Q_PushHead(&root->attrs, new_attr("xmlns:ks", "http://kitchen.sink.org/soap/everything/under/sun"));
+                      JUST KIDDING!! :-)  ---->                ------------------------------------------------- */
+
+               if (body) {
+                       /* go ahead and serialize first... */
+                       xml_element* el_serialized =  
+                       SOAP_to_xml_element_worker(request, 
+                                                                                               XMLRPC_RequestGetData(request));
+
+                       /* check for fault, in which case, there is no intermediate element */
+                       if (el_serialized && !strcmp(el_serialized->name, TOKEN_FAULT)) {
+                               Q_PushTail(&body->children, el_serialized);
+                       }
+                       /* usual case: not a fault. Add Response element in between. */
+                       else {
+                               xml_element* rpc = xml_elem_new();
+
+                               if (rpc) {
+                                       const char* methodname = XMLRPC_RequestGetMethodName(request);
+                                       XMLRPC_REQUEST_TYPE rtype = XMLRPC_RequestGetRequestType(request);
+
+                                       /* if we are making a request, we want to use the methodname as is. */
+                                       if (rtype == xmlrpc_request_call) {
+                                               if (methodname) {
+                                                       rpc->name = strdup(methodname);
+                                               }
+                                       }
+                                       /* if it's a response, we append "Response". Also, given xmlrpc-epi
+                                          API/architecture, it's likely that we don't have a methodname for
+                                          the response, so we have to check that. */
+                                       else {
+                                               char buf[128];
+                                               snprintf(buf, sizeof(buf), "%s%s", 
+                                                                       methodname ? methodname : "",
+                                                                       "Response");
+
+                                               rpc->name = strdup(buf);
+                                       }
+
+                                       /* add serialized data to method call/response.
+                                          add method call/response to body element */
+                                       if (rpc->name) {
+                                               if(el_serialized) {
+                                                       if(Q_Size(&el_serialized->children) && rtype == xmlrpc_request_call) {
+                                                               xml_element* iter = (xml_element*)Q_Head(&el_serialized->children);
+                                                               while(iter) {
+                                                                       Q_PushTail(&rpc->children, iter);
+                                                                       iter = (xml_element*)Q_Next(&el_serialized->children);
+                                                               }
+                                                               xml_elem_free_non_recurse(el_serialized);
+                                                       }
+                                                       else {
+                                                               Q_PushTail(&rpc->children, el_serialized);
+                                                       }
+                                               }
+
+                                               Q_PushTail(&body->children, rpc);
+                                       }
+                                       else {
+                                               /* no method name?!
+                                                  TODO: fault here...? */
+                                       }
+                               }
+                       }
+                       body->name = strdup("SOAP-ENV:Body");
+                       Q_PushTail(&root->children, body);
+               }
+       }
+
+       return root;
+}
+
diff --git a/trunk/php/xmlrpc/libxmlrpc/xml_to_soap.h b/trunk/php/xmlrpc/libxmlrpc/xml_to_soap.h
new file mode 100644 (file)
index 0000000..9ae9308
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2000 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+
+#ifndef XML_TO_SOAP_H
+ #define XML_TO_SOAP_H
+
+#include "xmlrpc.h"
+
+XMLRPC_VALUE xml_element_to_SOAP_VALUE(xml_element* el);
+XMLRPC_VALUE xml_element_to_SOAP_REQUEST(XMLRPC_REQUEST request, xml_element* el);
+xml_element* SOAP_VALUE_to_xml_element(XMLRPC_VALUE node);
+xml_element* SOAP_REQUEST_to_xml_element(XMLRPC_REQUEST request);
+
+#endif /* XML_TO_XMLRPC_H */
diff --git a/trunk/php/xmlrpc/libxmlrpc/xml_to_xmlrpc.c b/trunk/php/xmlrpc/libxmlrpc/xml_to_xmlrpc.c
new file mode 100644 (file)
index 0000000..c76b00f
--- /dev/null
@@ -0,0 +1,413 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2000 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+
+static const char rcsid[] = "#(@) $Id$";
+
+#ifdef _WIN32
+#include "xmlrpc_win32.h"
+#endif
+#include <string.h>
+#include <stdlib.h>
+#include "xml_to_xmlrpc.h"
+#include "base64.h"
+
+/* list of tokens used in vocab */
+#define ELEM_ARRAY          "array"
+#define ELEM_BASE64         "base64"
+#define ELEM_BOOLEAN        "boolean"
+#define ELEM_DATA           "data"
+#define ELEM_DATETIME       "dateTime.iso8601"
+#define ELEM_DOUBLE         "double"
+#define ELEM_FAULT          "fault"
+#define ELEM_FAULTCODE      "faultCode"
+#define ELEM_FAULTSTRING    "faultString"
+#define ELEM_I4             "i4"
+#define ELEM_INT            "int"
+#define ELEM_MEMBER         "member"
+#define ELEM_METHODCALL     "methodCall"
+#define ELEM_METHODNAME     "methodName"
+#define ELEM_METHODRESPONSE "methodResponse"
+#define ELEM_NAME           "name"
+#define ELEM_NIL            "nil"
+#define ELEM_PARAM          "param"
+#define ELEM_PARAMS         "params"
+#define ELEM_STRING         "string"
+#define ELEM_STRUCT         "struct"
+#define ELEM_VALUE          "value"
+
+
+XMLRPC_VALUE xml_element_to_XMLRPC_REQUEST_worker(XMLRPC_REQUEST request, XMLRPC_VALUE parent_vector, XMLRPC_VALUE current_val, xml_element* el) {
+   if (!current_val) {
+      /* This should only be the case for the first element */
+      current_val = XMLRPC_CreateValueEmpty();
+   }
+
+       if (el->name) {
+
+      /* first, deal with the crazy/stupid fault format */
+      if (!strcmp(el->name, ELEM_FAULT)) {
+                       xml_element* fault_value = (xml_element*)Q_Head(&el->children);
+                       XMLRPC_SetIsVector(current_val, xmlrpc_vector_struct);
+
+         if(fault_value) {
+            xml_element* fault_struct = (xml_element*)Q_Head(&fault_value->children);
+            if(fault_struct) {
+               xml_element* iter = (xml_element*)Q_Head(&fault_struct->children);
+
+               while (iter) {
+                  XMLRPC_VALUE xNextVal = XMLRPC_CreateValueEmpty();
+                  xml_element_to_XMLRPC_REQUEST_worker(request, current_val, xNextVal, iter);
+                  XMLRPC_AddValueToVector(current_val, xNextVal);
+                  iter = (xml_element*)Q_Next(&fault_struct->children);
+               }
+            }
+         }
+      }
+               else if (!strcmp(el->name, ELEM_DATA)   /* should be ELEM_ARRAY, but there is an extra level. weird */
+                        || (!strcmp(el->name, ELEM_PARAMS) && 
+                                 (XMLRPC_RequestGetRequestType(request) == xmlrpc_request_call)) ) {           /* this "PARAMS" concept is silly.  dave?! */
+         xml_element* iter = (xml_element*)Q_Head(&el->children);
+         XMLRPC_SetIsVector(current_val, xmlrpc_vector_array);
+
+         while (iter) {
+            XMLRPC_VALUE xNextVal = XMLRPC_CreateValueEmpty();
+            xml_element_to_XMLRPC_REQUEST_worker(request, current_val, xNextVal, iter);
+            XMLRPC_AddValueToVector(current_val, xNextVal);
+            iter = (xml_element*)Q_Next(&el->children);
+         }
+               }
+               else if (!strcmp(el->name, ELEM_STRUCT)) {
+         xml_element* iter = (xml_element*)Q_Head(&el->children);
+         XMLRPC_SetIsVector(current_val, xmlrpc_vector_struct);
+
+         while ( iter ) {
+            XMLRPC_VALUE xNextVal = XMLRPC_CreateValueEmpty();
+            xml_element_to_XMLRPC_REQUEST_worker(request, current_val, xNextVal, iter);
+            XMLRPC_AddValueToVector(current_val, xNextVal);
+            iter = (xml_element*)Q_Next(&el->children);
+         }
+               }
+               else if (!strcmp(el->name, ELEM_STRING) || 
+                 (!strcmp(el->name, ELEM_VALUE) && Q_Size(&el->children) == 0)) {
+         XMLRPC_SetValueString(current_val, el->text.str, el->text.len);
+               }
+               else if (!strcmp(el->name, ELEM_NAME)) {
+         XMLRPC_SetValueID_Case(current_val, el->text.str, 0, xmlrpc_case_exact);
+               }
+               else if (!strcmp(el->name, ELEM_INT) || !strcmp(el->name, ELEM_I4)) {
+         XMLRPC_SetValueInt(current_val, atoi(el->text.str));
+               }
+               else if (!strcmp(el->name, ELEM_BOOLEAN)) {
+         XMLRPC_SetValueBoolean(current_val, atoi(el->text.str));
+               }
+               else if (!strcmp(el->name, ELEM_DOUBLE)) {
+         XMLRPC_SetValueDouble(current_val, atof(el->text.str));
+               }
+               else if (!strcmp(el->name, ELEM_DATETIME)) {
+         XMLRPC_SetValueDateTime_ISO8601(current_val, el->text.str);
+               }
+               else if (!strcmp(el->name, ELEM_BASE64)) {
+         struct buffer_st buf;
+         base64_decode(&buf, el->text.str, el->text.len);
+         XMLRPC_SetValueBase64(current_val, buf.data, buf.offset);
+         buffer_delete(&buf);
+               }
+               else {
+         xml_element* iter;
+
+         if (!strcmp(el->name, ELEM_METHODCALL)) {
+            if (request) {
+               XMLRPC_RequestSetRequestType(request, xmlrpc_request_call);
+            }
+                       }
+                       else if (!strcmp(el->name, ELEM_METHODRESPONSE)) {
+            if (request) {
+               XMLRPC_RequestSetRequestType(request, xmlrpc_request_response);
+            }
+                       }
+                       else if (!strcmp(el->name, ELEM_METHODNAME)) {
+            if (request) {
+               XMLRPC_RequestSetMethodName(request, el->text.str);
+            }
+         }
+
+         iter = (xml_element*)Q_Head(&el->children);
+         while ( iter ) {
+            xml_element_to_XMLRPC_REQUEST_worker(request, parent_vector, 
+                                                 current_val, iter);
+            iter = (xml_element*)Q_Next(&el->children);
+         }
+      }
+   }
+   return current_val;
+}
+
+XMLRPC_VALUE xml_element_to_XMLRPC_VALUE(xml_element* el)
+{
+   return xml_element_to_XMLRPC_REQUEST_worker(NULL, NULL, NULL, el);
+}
+
+XMLRPC_VALUE xml_element_to_XMLRPC_REQUEST(XMLRPC_REQUEST request, xml_element* el)
+{
+   if (request) {
+      return XMLRPC_RequestSetData(request, xml_element_to_XMLRPC_REQUEST_worker(request, NULL, NULL, el));
+   }
+   return NULL;
+}
+
+xml_element* XMLRPC_to_xml_element_worker(XMLRPC_VALUE current_vector, XMLRPC_VALUE node, 
+                                          XMLRPC_REQUEST_TYPE request_type, int depth) {
+#define BUF_SIZE 512
+   xml_element* root = NULL;
+   if (node) {
+      char buf[BUF_SIZE];
+      XMLRPC_VALUE_TYPE type = XMLRPC_GetValueType(node);
+      XMLRPC_VECTOR_TYPE vtype = XMLRPC_GetVectorType(node);
+      xml_element* elem_val = xml_elem_new();
+
+      /* special case for when root element is not an array */
+      if (depth == 0 && 
+          !(type == xmlrpc_vector && 
+            vtype == xmlrpc_vector_array && 
+            request_type == xmlrpc_request_call) ) {
+         int bIsFault = (vtype == xmlrpc_vector_struct && XMLRPC_VectorGetValueWithID(node, ELEM_FAULTCODE));
+
+         xml_element* next_el = XMLRPC_to_xml_element_worker(NULL, node, request_type, depth + 1);
+         if (next_el) {
+            Q_PushTail(&elem_val->children, next_el);
+         }
+         elem_val->name = strdup(bIsFault ? ELEM_FAULT : ELEM_PARAMS);
+               }
+               else {
+         switch (type) {
+                       case xmlrpc_empty: /*  treat null value as empty string in xmlrpc. */
+         case xmlrpc_nil:
+            elem_val->name = strdup(ELEM_NIL);
+            break;
+         case xmlrpc_string:
+            elem_val->name = strdup(ELEM_STRING);
+            simplestring_addn(&elem_val->text, XMLRPC_GetValueString(node), XMLRPC_GetValueStringLen(node));
+            break;
+         case xmlrpc_int:
+            elem_val->name = strdup(ELEM_INT);
+            snprintf(buf, BUF_SIZE, "%i", XMLRPC_GetValueInt(node));
+            simplestring_add(&elem_val->text, buf);
+            break;
+         case xmlrpc_boolean:
+            elem_val->name = strdup(ELEM_BOOLEAN);
+            snprintf(buf, BUF_SIZE, "%i", XMLRPC_GetValueBoolean(node));
+            simplestring_add(&elem_val->text, buf);
+            break;
+         case xmlrpc_double:
+            elem_val->name = strdup(ELEM_DOUBLE);
+            snprintf(buf, BUF_SIZE, "%f", XMLRPC_GetValueDouble(node));
+            simplestring_add(&elem_val->text, buf);
+            break;
+         case xmlrpc_datetime:
+            elem_val->name = strdup(ELEM_DATETIME);
+            simplestring_add(&elem_val->text, XMLRPC_GetValueDateTime_ISO8601(node));
+            break;
+         case xmlrpc_base64:
+            {
+               struct buffer_st buf;
+               elem_val->name = strdup(ELEM_BASE64);
+               base64_encode(&buf, XMLRPC_GetValueBase64(node), XMLRPC_GetValueStringLen(node));
+               simplestring_addn(&elem_val->text, buf.data, buf.offset );
+               buffer_delete(&buf);
+            }
+            break;
+         case xmlrpc_vector:
+            {
+               XMLRPC_VECTOR_TYPE my_type = XMLRPC_GetVectorType(node);
+               XMLRPC_VALUE xIter = XMLRPC_VectorRewind(node);
+               xml_element* root_vector_elem = elem_val;
+
+               switch (my_type) {
+               case xmlrpc_vector_array:
+                  {
+                      if(depth == 0) {
+                         elem_val->name = strdup(ELEM_PARAMS);
+                      }
+                      else {
+                         /* Hi my name is Dave and I like to make things as confusing
+                          * as possible, thus I will throw in this 'data' element
+                          * where it absolutely does not belong just so that people
+                          * cannot code arrays and structs in a similar and straight
+                          * forward manner. Have a good day.
+                          *
+                          * GRRRRRRRRR!
+                          */
+                         xml_element* data = xml_elem_new();
+                         data->name = strdup(ELEM_DATA);
+    
+                         elem_val->name = strdup(ELEM_ARRAY);
+                         Q_PushTail(&elem_val->children, data);
+                         root_vector_elem = data;
+                      }
+                  }
+                  break;
+               case xmlrpc_vector_mixed:       /* not officially supported */
+               case xmlrpc_vector_struct:
+                  elem_val->name = strdup(ELEM_STRUCT);
+                  break;
+               default:
+                  break;
+               }
+
+               /* recurse through sub-elements */
+               while ( xIter ) {
+                  xml_element* next_el = XMLRPC_to_xml_element_worker(node, xIter, request_type, depth + 1);
+                  if (next_el) {
+                     Q_PushTail(&root_vector_elem->children, next_el);
+                  }
+                  xIter = XMLRPC_VectorNext(node);
+               }
+            }
+            break;
+         default:
+            break;
+         }
+      }
+
+      {
+         XMLRPC_VECTOR_TYPE vtype = XMLRPC_GetVectorType(current_vector);
+
+         if (depth == 1) {
+            xml_element* value = xml_elem_new();
+            value->name = strdup(ELEM_VALUE);
+
+            /* yet another hack for the "fault" crap */
+            if (XMLRPC_VectorGetValueWithID(node, ELEM_FAULTCODE)) {
+               root = value;
+                               }
+                               else {
+               xml_element* param = xml_elem_new();
+               param->name = strdup(ELEM_PARAM);
+
+               Q_PushTail(&param->children, value);
+
+               root = param;
+            }
+            Q_PushTail(&value->children, elem_val);
+                       }
+                       else if (vtype == xmlrpc_vector_struct || vtype == xmlrpc_vector_mixed) {
+            xml_element* member = xml_elem_new();
+            xml_element* name = xml_elem_new();
+            xml_element* value = xml_elem_new();
+
+            member->name = strdup(ELEM_MEMBER);
+            name->name = strdup(ELEM_NAME);
+            value->name = strdup(ELEM_VALUE);
+
+            simplestring_add(&name->text, XMLRPC_GetValueID(node));
+
+            Q_PushTail(&member->children, name);
+            Q_PushTail(&member->children, value);
+            Q_PushTail(&value->children, elem_val);
+
+            root = member;
+                       }
+                       else if (vtype == xmlrpc_vector_array) {
+            xml_element* value = xml_elem_new();
+
+            value->name = strdup(ELEM_VALUE);
+
+            Q_PushTail(&value->children, elem_val);
+
+            root = value;
+                       }
+                       else if (vtype == xmlrpc_vector_none) {
+            /* no parent.  non-op */
+            root = elem_val;
+                       }
+                       else {
+            xml_element* value = xml_elem_new();
+
+            value->name = strdup(ELEM_VALUE);
+
+            Q_PushTail(&value->children, elem_val);
+
+            root = value;
+         }
+      }
+   }
+   return root;
+}
+
+xml_element* XMLRPC_VALUE_to_xml_element(XMLRPC_VALUE node) {
+   return XMLRPC_to_xml_element_worker(NULL, node, xmlrpc_request_none, 0);
+}
+
+xml_element* XMLRPC_REQUEST_to_xml_element(XMLRPC_REQUEST request) {
+   xml_element* wrapper = NULL;
+   if (request) {
+      const char* pStr = NULL;
+      XMLRPC_REQUEST_TYPE request_type = XMLRPC_RequestGetRequestType(request);
+      XMLRPC_VALUE xParams = XMLRPC_RequestGetData(request);
+
+      wrapper = xml_elem_new();
+
+      if (request_type == xmlrpc_request_call) {
+         pStr = ELEM_METHODCALL;
+               }
+               else if (request_type == xmlrpc_request_response) {
+         pStr = ELEM_METHODRESPONSE;
+      }
+      if (pStr) {
+         wrapper->name = strdup(pStr);
+      }
+
+               if(request_type == xmlrpc_request_call) {
+      pStr = XMLRPC_RequestGetMethodName(request);
+
+      if (pStr) {
+         xml_element* method = xml_elem_new();
+         method->name = strdup(ELEM_METHODNAME);
+         simplestring_add(&method->text, pStr);
+         Q_PushTail(&wrapper->children, method);
+      }
+               }
+      if (xParams) {
+         Q_PushTail(&wrapper->children, 
+                    XMLRPC_to_xml_element_worker(NULL, XMLRPC_RequestGetData(request), XMLRPC_RequestGetRequestType(request), 0));
+               }
+               else {
+         /* Despite the spec, the xml-rpc list folk want me to send an empty params element */
+         xml_element* params = xml_elem_new();
+         params->name = strdup(ELEM_PARAMS);
+         Q_PushTail(&wrapper->children, params);
+      }
+   }
+   return wrapper;
+}
+
diff --git a/trunk/php/xmlrpc/libxmlrpc/xml_to_xmlrpc.h b/trunk/php/xmlrpc/libxmlrpc/xml_to_xmlrpc.h
new file mode 100644 (file)
index 0000000..234a153
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2000 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+
+#ifndef XML_TO_XMLRPC_H
+ #define XML_TO_XMLRPC_H
+
+#include "time.h" 
+#include "xmlrpc.h"
+
+XMLRPC_VALUE xml_element_to_XMLRPC_VALUE(xml_element* el);
+XMLRPC_VALUE xml_element_to_XMLRPC_REQUEST(XMLRPC_REQUEST request, xml_element* el);
+xml_element* XMLRPC_VALUE_to_xml_element(XMLRPC_VALUE node);
+xml_element* XMLRPC_REQUEST_to_xml_element(XMLRPC_REQUEST request);
+
+#endif /* XML_TO_XMLRPC_H */
diff --git a/trunk/php/xmlrpc/libxmlrpc/xmlrpc.c b/trunk/php/xmlrpc/libxmlrpc/xmlrpc.c
new file mode 100644 (file)
index 0000000..d5f3f7b
--- /dev/null
@@ -0,0 +1,2963 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2000 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+
+static const char rcsid[] = "#(@) $Id$";
+
+
+/****h* ABOUT/xmlrpc
+ * NAME
+ *   XMLRPC_VALUE
+ * AUTHOR
+ *   Dan Libby, aka danda  (dan@libby.com)
+ * CREATION DATE
+ *   9/1999 - 10/2000
+ * HISTORY
+ *   $Log: xmlrpc.c,v $
+ *   Revision 1.6  2004/04/27 17:33:59  iliaa
+ *   Removed C++ style comments.
+ *
+ *   Revision 1.5  2003/12/16 21:00:21  sniper
+ *   Fix some compile warnings (patch by Joe Orton)
+ *
+ *   Revision 1.4  2002/07/05 04:43:53  danda
+ *   merged in updates from SF project.  bring php repository up to date with xmlrpc-epi version 0.51
+ *
+ *   Revision 1.22  2002/03/09 23:15:44  danda
+ *   add fault interrogation funcs
+ *
+ *   Revision 1.21  2002/03/09 22:27:41  danda
+ *   win32 build patches contributed by Jeff Lawson
+ *
+ *   Revision 1.20  2002/02/13 20:58:50  danda
+ *   patch to make source more windows friendly, contributed by Jeff Lawson
+ *
+ *   Revision 1.19  2001/10/12 23:25:54  danda
+ *   default to writing xmlrpc
+ *
+ *   Revision 1.18  2001/09/29 21:58:05  danda
+ *   adding cvs log to history section
+ *
+ *   10/15/2000 -- danda -- adding robodoc documentation
+ *   08/2000 -- danda -- PHP C extension that uses XMLRPC                     
+ *   08/2000 -- danda -- support for two vocabularies: danda-rpc and xml-rpc
+ *   09/1999 -- danda -- Initial API, before I even knew of standard XMLRPC vocab. Response only.
+ *   07/2000 -- danda -- wrote new implementation to be compatible with xmlrpc standard and
+ *                       incorporated some ideas from ensor, most notably the separation of
+ *                       xml dom from xmlrpc api.
+ *   06/2000 -- danda -- played with expat-ensor from www.ensor.org.  Cool, but some flaws.
+ * TODO
+ * PORTABILITY
+ *   Coded on RedHat Linux 6.2.  Builds on Solaris x86.  Should build on just
+ *   about anything with minor mods.
+ * NOTES
+ *   Welcome to XMLRPC.  For more info on the specification and history, see
+ *   http://www.xmlrpc.org.
+ *
+ *   This code aims to be a full-featured C implementation of XMLRPC.  It does not
+ *   have any networking code.  Rather, it is intended to be plugged into apps
+ *   or libraries with existing networking facilities, eg PHP, apache, perl, mozilla, 
+ *   home-brew application servers, etc.
+ *
+ *   Usage Paradigm:
+ *     The user of this library will typically be implementing either an XMLRPC server,
+ *     an XMLRPC client, or both.  The client will use the library to build an in-memory
+ *     representation of a request, and then serialize (encode) that request into XML. The
+ *     client will then send the XML to the server via external mechanism.  The server will
+ *     de-serialize the XML back into an binary representation, call the appropriate registered
+ *     method -- thereby generating a response.  The response will be serialized into XML and
+ *     sent back to the client.  The client will de-serialize it into memory, and can
+ *     iterate through the results via API.
+ *
+ *     Both the request and the response may consist of arbitrarily long, arbitrarily nested
+ *     values.  The values may be one of several types, as defined by XMLRPC_VALUE_TYPE.
+ *
+ *   Features and Architecture:
+ *     - The XML parsing (xml_element.c) is completely independent of the XMLRPC api. In fact,
+ *       it can be used as a standalone dom implementation.
+ *     - Because of this, the same XMLRPC data can be serialized into multiple xml vocabularies.
+ *       It is simply a matter of writing a transport.  So far, two transports have been defined.
+ *       The default xmlrpc vocab (xml_to_xmlrpc.c), and simple-rpc (xml_to_dandarpc.c) which is 
+ *       proprietary, but imho more readable, and nice for proprietary legacy reasons.
+ *     - Various output options, including: xml escaping via CDATA or entity, case folding,
+ *       vocab version, and character encoding.
+ *     - One to One mapping between C structures and actual values, unlike ensor which forces
+ *       one to understand the arcana of the xmlrpc vocab.
+ *     - support for mixed indexed/keyed vector types, making it more compatible with 
+ *       languages such as PHP.
+ *     - quite speedy compared to implementations written in interpreted languages. Also, uses
+ *       intelligent string handling, so not many strlen() calls, etc.
+ *     - comprehensive API for manipulation of values
+ *******/
+
+
+#ifdef _WIN32
+#include "xmlrpc_win32.h"
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdarg.h>
+#include <time.h>
+#include <ctype.h>
+
+#include "queue.h"
+#include "xmlrpc.h"
+#include "expat.h"
+#include "base64.h"
+
+#include "xml_to_xmlrpc.h"
+#include "xml_to_dandarpc.h"
+#include "xml_to_soap.h"
+#include "xml_element.h"
+#include "xmlrpc_private.h"
+#include "xmlrpc_introspection_private.h"
+#include "system_methods_private.h"
+
+
+
+/*-*********************
+* Begin Time Functions *
+***********************/
+
+static int date_from_ISO8601 (const char *text, time_t * value) {
+   struct tm tm;
+   int n;
+   int i;
+       char buf[18];
+
+       if (strchr (text, '-')) {
+               char *p = (char *) text, *p2 = buf;
+               while (p && *p) {
+                       if (*p != '-') {
+                               *p2 = *p;
+                               p2++;
+                       }
+                       p++;
+               }
+               text = buf;
+       }
+
+
+   tm.tm_isdst = -1;
+
+   if(strlen(text) < 17) {
+      return -1;
+   }
+
+   n = 1000;
+   tm.tm_year = 0;
+   for(i = 0; i < 4; i++) {
+      tm.tm_year += (text[i]-'0')*n;
+      n /= 10;
+   }
+   n = 10;
+   tm.tm_mon = 0;
+   for(i = 0; i < 2; i++) {
+      tm.tm_mon += (text[i+4]-'0')*n;
+      n /= 10;
+   }
+   tm.tm_mon --;
+
+   n = 10;
+   tm.tm_mday = 0;
+   for(i = 0; i < 2; i++) {
+      tm.tm_mday += (text[i+6]-'0')*n;
+      n /= 10;
+   }
+
+   n = 10;
+   tm.tm_hour = 0;
+   for(i = 0; i < 2; i++) {
+      tm.tm_hour += (text[i+9]-'0')*n;
+      n /= 10;
+   }
+
+   n = 10;
+   tm.tm_min = 0;
+   for(i = 0; i < 2; i++) {
+      tm.tm_min += (text[i+12]-'0')*n;
+      n /= 10;
+   }
+
+   n = 10;
+   tm.tm_sec = 0;
+   for(i = 0; i < 2; i++) {
+      tm.tm_sec += (text[i+15]-'0')*n;
+      n /= 10;
+   }
+
+   tm.tm_year -= 1900;
+
+   *value = mktime(&tm);
+
+   return 0;
+
+}
+
+static int date_to_ISO8601 (time_t value, char *buf, int length) {
+   struct tm *tm;
+   tm = localtime(&value);
+#if 0  /* TODO: soap seems to favor this method. xmlrpc the latter. */
+       return strftime (buf, length, "%Y-%m-%dT%H:%M:%SZ", tm);
+#else
+   return strftime(buf, length, "%Y%m%dT%H:%M:%S", tm);
+#endif
+}
+
+/*-*******************
+* End Time Functions *
+*********************/
+
+
+/*-***************************
+* Begin XMLRPC_REQUEST funcs *
+*****************************/
+
+/****f* REQUEST/XMLRPC_RequestNew
+ * NAME
+ *   XMLRPC_RequestNew
+ * SYNOPSIS
+ *   XMLRPC_REQUEST XMLRPC_RequestNew()
+ * FUNCTION
+ *   Creates a new XMLRPC_Request data struct
+ * INPUTS
+ *   none
+ * SEE ALSO
+ *   XMLRPC_RequestFree ()
+ * SOURCE
+ */
+XMLRPC_REQUEST XMLRPC_RequestNew() {
+   XMLRPC_REQUEST xRequest = calloc(1, sizeof(STRUCT_XMLRPC_REQUEST));
+   if(xRequest) {
+      simplestring_init(&xRequest->methodName);
+   }
+   return xRequest;
+}
+
+/*******/
+
+/****f* REQUEST/XMLRPC_RequestFree
+ * NAME
+ *   XMLRPC_RequestFree
+ * SYNOPSIS
+ *   void XMLRPC_RequestFree(XMLRPC_REQUEST request, int bFreeIO)
+ * FUNCTION
+ *   Free XMLRPC Request and all sub-values
+ * INPUTS
+ *   request -- previously allocated request struct
+ *   bFreeIO -- 1 = also free request value data, if any, 0 = ignore.
+ * SEE ALSO
+ *   XMLRPC_RequestNew ()
+ *   XMLRPC_CleanupValue ()
+ * SOURCE
+ */
+void XMLRPC_RequestFree(XMLRPC_REQUEST request, int bFreeIO) {
+   if(request) {
+      simplestring_free(&request->methodName);
+
+      if(request->io && bFreeIO) {
+         XMLRPC_CleanupValue(request->io);
+      }
+      if(request->error) {
+         XMLRPC_CleanupValue(request->error);
+      }
+      my_free(request);
+   }
+}
+
+/*******/
+
+/* Set Method Name to call */
+/****f* REQUEST/XMLRPC_RequestSetMethodName
+ * NAME
+ *   XMLRPC_RequestSetMethodName
+ * SYNOPSIS
+ *   const char* XMLRPC_RequestSetMethodName(XMLRPC_REQUEST request, const char* methodName)
+ * FUNCTION
+ *   Set name of method to call with this request.
+ * INPUTS
+ *   request -- previously allocated request struct
+ *   methodName -- name of method
+ * SEE ALSO
+ *   XMLRPC_RequestNew ()
+ *   XMLRPC_RequestGetMethodName ()
+ *   XMLRPC_RequestFree ()
+ * SOURCE
+ */
+const char* XMLRPC_RequestSetMethodName(XMLRPC_REQUEST request, const char* methodName) {
+   if(request) {
+      simplestring_clear(&request->methodName);
+      simplestring_add(&request->methodName, methodName);
+      return request->methodName.str;
+   }
+   return NULL;
+}
+
+/*******/
+
+/****f* REQUEST/XMLRPC_RequestGetMethodName
+ * NAME
+ *   XMLRPC_RequestGetMethodName
+ * SYNOPSIS
+ *   const char* XMLRPC_RequestGetMethodName(XMLRPC_REQUEST request)
+ * FUNCTION
+ *   Get name of method called by this request
+ * INPUTS
+ *   request -- previously allocated request struct
+ * SEE ALSO
+ *   XMLRPC_RequestNew ()
+ *   XMLRPC_RequestSetMethodName ()
+ *   XMLRPC_RequestFree ()
+ * SOURCE
+ */
+const char* XMLRPC_RequestGetMethodName(XMLRPC_REQUEST request) {
+   return request ? request->methodName.str : NULL;
+}
+
+/*******/
+
+/****f* REQUEST/XMLRPC_RequestSetRequestType
+ * NAME
+ *   XMLRPC_RequestSetRequestType
+ * SYNOPSIS
+ *   XMLRPC_REQUEST_TYPE XMLRPC_RequestSetRequestType(XMLRPC_REQUEST request, XMLRPC_REQUEST_TYPE type)
+ * FUNCTION
+ *   A request struct may be allocated by a caller or by xmlrpc
+ *   in response to a request.  This allows setting the
+ *   request type.
+ * INPUTS
+ *   request -- previously allocated request struct
+ *   type    -- request type [xmlrpc_method_call | xmlrpc_method_response]
+ * SEE ALSO
+ *   XMLRPC_RequestNew ()
+ *   XMLRPC_RequestGetRequestType ()
+ *   XMLRPC_RequestFree ()
+ *   XMLRPC_REQUEST_TYPE
+ * SOURCE
+ */
+XMLRPC_REQUEST_TYPE XMLRPC_RequestSetRequestType (XMLRPC_REQUEST request,
+                                                                                                                                 XMLRPC_REQUEST_TYPE type) {
+   if(request) {
+      request->request_type = type;
+      return request->request_type;
+   }
+   return xmlrpc_request_none;
+}
+
+/*******/
+
+/****f* REQUEST/XMLRPC_RequestGetRequestType
+ * NAME
+ *   XMLRPC_RequestGetRequestType
+ * SYNOPSIS
+ *   XMLRPC_REQUEST_TYPE XMLRPC_RequestGetRequestType(XMLRPC_REQUEST request)
+ * FUNCTION
+ *   A request struct may be allocated by a caller or by xmlrpc
+ *   in response to a request.  This allows setting the
+ *   request type.
+ * INPUTS
+ *   request -- previously allocated request struct
+ * RESULT
+ *   type    -- request type [xmlrpc_method_call | xmlrpc_method_response]
+ * SEE ALSO
+ *   XMLRPC_RequestNew ()
+ *   XMLRPC_RequestSetRequestType ()
+ *   XMLRPC_RequestFree ()
+ *   XMLRPC_REQUEST_TYPE
+ * SOURCE
+ */
+XMLRPC_REQUEST_TYPE XMLRPC_RequestGetRequestType(XMLRPC_REQUEST request) {
+   return request ? request->request_type : xmlrpc_request_none;
+}
+
+/*******/
+
+
+/****f* REQUEST/XMLRPC_RequestSetData
+ * NAME
+ *   XMLRPC_RequestSetData
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_RequestSetData(XMLRPC_REQUEST request, XMLRPC_VALUE data)
+ * FUNCTION
+ *   Associates a block of xmlrpc data with the request.  The
+ *   data is *not* copied.  A pointer is kept.  The caller
+ *   should be careful not to doubly free the data value,
+ *   which may optionally be free'd by XMLRPC_RequestFree().
+ * INPUTS
+ *   request -- previously allocated request struct
+ *   data    -- previously allocated data struct
+ * RESULT
+ *   XMLRPC_VALUE -- pointer to value stored, or NULL
+ * SEE ALSO
+ *   XMLRPC_RequestNew ()
+ *   XMLRPC_RequestGetData ()
+ *   XMLRPC_RequestFree ()
+ *   XMLRPC_REQUEST
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_RequestSetData(XMLRPC_REQUEST request, XMLRPC_VALUE data) {
+   if(request && data) {
+               if (request->io) {
+                       XMLRPC_CleanupValue (request->io);
+               }
+      request->io = XMLRPC_CopyValue(data);
+      return request->io;
+   }
+   return NULL;
+}
+
+/*******/
+
+/****f* REQUEST/XMLRPC_RequestGetData
+ * NAME
+ *   XMLRPC_RequestGetData
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_RequestGetData(XMLRPC_REQUEST request)
+ * FUNCTION
+ *   Returns data associated with request, if any.
+ * INPUTS
+ *   request -- previously allocated request struct
+ * RESULT
+ *   XMLRPC_VALUE -- pointer to value stored, or NULL
+ * SEE ALSO
+ *   XMLRPC_RequestNew ()
+ *   XMLRPC_RequestSetData ()
+ *   XMLRPC_RequestFree ()
+ *   XMLRPC_REQUEST
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_RequestGetData(XMLRPC_REQUEST request) {
+   return request ? request->io : NULL;
+}
+
+/*******/
+
+/****f* REQUEST/XMLRPC_RequestSetError
+ * NAME
+ *   XMLRPC_RequestSetError
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_RequestSetError(XMLRPC_REQUEST request, XMLRPC_VALUE error)
+ * FUNCTION
+ *   Associates a block of xmlrpc data, representing an error
+ *   condition, with the request. 
+ * INPUTS
+ *   request -- previously allocated request struct
+ *   error   -- previously allocated error code or struct
+ * RESULT
+ *   XMLRPC_VALUE -- pointer to value stored, or NULL
+ * NOTES
+ *   This is a private function for usage by internals only.
+ * SEE ALSO
+ *   XMLRPC_RequestGetError ()
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_RequestSetError (XMLRPC_REQUEST request, XMLRPC_VALUE error) {
+       if (request && error) {
+               if (request->error) {
+                       XMLRPC_CleanupValue (request->error);
+               }
+               request->error = XMLRPC_CopyValue (error);
+               return request->error;
+       }
+       return NULL;
+}
+
+/*******/
+
+/****f* REQUEST/XMLRPC_RequestGetError
+ * NAME
+ *   XMLRPC_RequestGetError
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_RequestGetError(XMLRPC_REQUEST request)
+ * FUNCTION
+ *   Returns error data associated with request, if any.
+ * INPUTS
+ *   request -- previously allocated request struct
+ * RESULT
+ *   XMLRPC_VALUE -- pointer to error value stored, or NULL
+ * NOTES
+ *   This is a private function for usage by internals only.
+ * SEE ALSO
+ *   XMLRPC_RequestSetError ()
+ *   XMLRPC_RequestFree ()
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_RequestGetError (XMLRPC_REQUEST request) {
+       return request ? request->error : NULL;
+}
+
+/*******/
+
+
+/****f* REQUEST/XMLRPC_RequestSetOutputOptions
+ * NAME
+ *   XMLRPC_RequestSetOutputOptions
+ * SYNOPSIS
+ *   XMLRPC_REQUEST_OUTPUT_OPTIONS XMLRPC_RequestSetOutputOptions(XMLRPC_REQUEST request, XMLRPC_REQUEST_OUTPUT_OPTIONS output)
+ * FUNCTION
+ *   Sets output options used for generating XML. The output struct
+ *   is copied, and may be freed by the caller.
+ * INPUTS
+ *   request -- previously allocated request struct
+ *   output  -- output options struct initialized by caller
+ * RESULT
+ *   XMLRPC_REQUEST_OUTPUT_OPTIONS -- pointer to value stored, or NULL
+ * SEE ALSO
+ *   XMLRPC_RequestNew ()
+ *   XMLRPC_RequestGetOutputOptions ()
+ *   XMLRPC_RequestFree ()
+ *   XMLRPC_REQUEST
+ *   XMLRPC_REQUEST_OUTPUT_OPTIONS
+ * SOURCE
+ */
+XMLRPC_REQUEST_OUTPUT_OPTIONS XMLRPC_RequestSetOutputOptions(XMLRPC_REQUEST request, XMLRPC_REQUEST_OUTPUT_OPTIONS output) {
+   if(request && output) {
+               memcpy (&request->output, output,
+                                 sizeof (STRUCT_XMLRPC_REQUEST_OUTPUT_OPTIONS));
+      return &request->output;
+   }
+   return NULL;
+}
+
+/*******/
+
+
+/****f* REQUEST/XMLRPC_RequestGetOutputOptions
+ * NAME
+ *   XMLRPC_RequestGetOutputOptions
+ * SYNOPSIS
+ *   XMLRPC_REQUEST_OUTPUT_OPTIONS XMLRPC_RequestGetOutputOptions(XMLRPC_REQUEST request)
+ * FUNCTION
+ *   Gets a pointer to output options used for generating XML.
+ * INPUTS
+ *   request -- previously allocated request struct
+ * RESULT
+ *   XMLRPC_REQUEST_OUTPUT_OPTIONS -- pointer to options stored, or NULL
+ * SEE ALSO
+ *   XMLRPC_RequestNew ()
+ *   XMLRPC_RequestSetOutputOptions ()
+ *   XMLRPC_RequestFree ()
+ *   XMLRPC_REQUEST
+ *   XMLRPC_REQUEST_OUTPUT_OPTIONS
+ * SOURCE
+ */
+XMLRPC_REQUEST_OUTPUT_OPTIONS XMLRPC_RequestGetOutputOptions(XMLRPC_REQUEST request) {
+   return request ? &request->output : NULL;
+}
+
+/*******/
+
+/*-*************************
+* End XMLRPC_REQUEST funcs *
+***************************/
+
+
+/*-***************************
+* Begin Serializiation funcs *
+*****************************/
+
+/****f* SERIALIZE/XMLRPC_VALUE_ToXML
+ * NAME
+ *   XMLRPC_VALUE_ToXML
+ * SYNOPSIS
+ *   char* XMLRPC_VALUE_ToXML(XMLRPC_VALUE val)
+ * FUNCTION
+ *   encode XMLRPC_VALUE into XML buffer.  Note that the generated
+ *   buffer will not contain a methodCall.
+ * INPUTS
+ *   val -- previously allocated XMLRPC_VALUE
+ *   buf_len -- length of returned buffer, if not null
+ * RESULT
+ *   char* -- newly allocated buffer containing XML. 
+ *   It is the caller's responsibility to free it.
+ * SEE ALSO
+ *   XMLRPC_REQUEST_ToXML ()
+ *   XMLRPC_VALUE_FromXML ()
+ *   XMLRPC_Free ()
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+char* XMLRPC_VALUE_ToXML(XMLRPC_VALUE val, int* buf_len) {
+   xml_element *root_elem = XMLRPC_VALUE_to_xml_element(val);
+   char* pRet = NULL;
+
+   if(root_elem) {
+      pRet = xml_elem_serialize_to_string(root_elem, NULL, buf_len);
+      xml_elem_free(root_elem);
+   }
+   return pRet;
+}
+
+/*******/
+
+/****f* SERIALIZE/XMLRPC_REQUEST_ToXML
+ * NAME
+ *   XMLRPC_REQUEST_ToXML
+ * SYNOPSIS
+ *   char* XMLRPC_REQUEST_ToXML(XMLRPC_REQUEST request)
+ * FUNCTION
+ *   encode XMLRPC_REQUEST into XML buffer
+ * INPUTS
+ *   request -- previously allocated XMLRPC_REQUEST
+ *   buf_len -- size of returned buf, if not null
+ * RESULT
+ *   char* -- newly allocated buffer containing XML. 
+ *   It is the caller's responsibility to free it.
+ * SEE ALSO
+ *   XMLRPC_REQUEST_ToXML ()
+ *   XMLRPC_REQUEST_FromXML ()
+ *   XMLRPC_Free ()
+ *   XMLRPC_VALUE_ToXML ()
+ *   XMLRPC_REQUEST
+ * SOURCE
+ */
+char* XMLRPC_REQUEST_ToXML(XMLRPC_REQUEST request, int* buf_len) {
+      char* pRet = NULL;
+       if (request) {
+               xml_element *root_elem = NULL;
+               if (request->output.version == xmlrpc_version_simple) {
+                       root_elem = DANDARPC_REQUEST_to_xml_element (request);
+               }
+               else if (request->output.version == xmlrpc_version_1_0 ||
+                                       request->output.version == xmlrpc_version_none) {
+                       root_elem = XMLRPC_REQUEST_to_xml_element (request);
+               }
+               else if (request->output.version == xmlrpc_version_soap_1_1) {
+                       root_elem = SOAP_REQUEST_to_xml_element (request);
+               }
+
+      if(root_elem) {
+                       pRet =
+                       xml_elem_serialize_to_string (root_elem,
+                                                                                                       &request->output.xml_elem_opts,
+                                                                                                       buf_len);
+         xml_elem_free(root_elem);
+      }
+   }
+       return pRet;
+}
+
+/*******/
+
+/****f* SERIALIZE/XMLRPC_VALUE_FromXML
+ * NAME
+ *   XMLRPC_VALUE_FromXML
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_VALUE_FromXML(const char* in_buf, int le
+ * FUNCTION
+ *   Retrieve XMLRPC_VALUE from XML buffer. Note that this will
+ *   ignore any methodCall.  See XMLRPC_REQUEST_FromXML
+ * INPUTS
+ *   in_buf -- character buffer containing XML
+ *   len    -- length of buffer
+ * RESULT
+ *   XMLRPC_VALUE -- newly allocated data, or NULL if error. Should
+ *   be free'd by caller.
+ * SEE ALSO
+ *   XMLRPC_VALUE_ToXML ()
+ *   XMLRPC_REQUEST_FromXML ()
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_VALUE_FromXML (const char *in_buf, int len, XMLRPC_REQUEST_INPUT_OPTIONS in_options) {
+   XMLRPC_VALUE xResponse = NULL;
+   XMLRPC_REQUEST req = XMLRPC_REQUEST_FromXML(in_buf, len, in_options);
+
+   if(req) {
+      xResponse = req->io;
+      XMLRPC_RequestFree(req, 0);
+   }
+   return xResponse;
+}
+
+/*******/
+
+/* map parser errors to standard xml-rpc errors */
+static XMLRPC_VALUE map_expat_errors(XML_ELEM_ERROR error) {
+   XMLRPC_VALUE xReturn = NULL;
+   if(error) {
+      XMLRPC_ERROR_CODE code;
+      char buf[1024];
+      snprintf(buf, sizeof(buf), 
+               "error occurred at line %ld, column %ld, byte index %ld", 
+                                        error->line, error->column, error->byte_index);
+
+      /* expat specific errors */
+      switch(error->parser_code) {
+      case XML_ERROR_UNKNOWN_ENCODING:
+         code = xmlrpc_error_parse_unknown_encoding;
+         break;
+      case XML_ERROR_INCORRECT_ENCODING:
+         code = xmlrpc_error_parse_bad_encoding;
+         break;
+      default:
+         code = xmlrpc_error_parse_xml_syntax;
+         break;
+      }
+      xReturn = XMLRPC_UtilityCreateFault(code, buf);
+   }
+   return xReturn;
+}
+
+/****f* SERIALIZE/XMLRPC_REQUEST_FromXML
+ * NAME
+ *   XMLRPC_REQUEST_FromXML
+ * SYNOPSIS
+ *   XMLRPC_REQUEST XMLRPC_REQUEST_FromXML(const char* in_buf, int le
+ * FUNCTION
+ *   Retrieve XMLRPC_REQUEST from XML buffer
+ * INPUTS
+ *   in_buf -- character buffer containing XML
+ *   len    -- length of buffer
+ * RESULT
+ *   XMLRPC_REQUEST -- newly allocated data, or NULL if error. Should
+ *   be free'd by caller.
+ * SEE ALSO
+ *   XMLRPC_REQUEST_ToXML ()
+ *   XMLRPC_VALUE_FromXML ()
+ *   XMLRPC_REQUEST
+ * SOURCE
+ */
+XMLRPC_REQUEST XMLRPC_REQUEST_FromXML (const char *in_buf, int len, 
+                                                                                                       XMLRPC_REQUEST_INPUT_OPTIONS in_options) {
+   XMLRPC_REQUEST request = XMLRPC_RequestNew();
+   STRUCT_XML_ELEM_ERROR error = {0};
+
+   if(request) {
+               xml_element *root_elem =
+               xml_elem_parse_buf (in_buf, len,
+                                                                 (in_options ? &in_options->xml_elem_opts : NULL),
+                                                                 &error);
+
+      if(root_elem) {
+         if(!strcmp(root_elem->name, "simpleRPC")) {
+            request->output.version = xmlrpc_version_simple;
+            xml_element_to_DANDARPC_REQUEST(request, root_elem);
+         }
+                       else if (!strcmp (root_elem->name, "SOAP-ENV:Envelope")) {
+                               request->output.version = xmlrpc_version_soap_1_1;
+                               xml_element_to_SOAP_REQUEST (request, root_elem);
+                       }
+         else {
+            request->output.version = xmlrpc_version_1_0;
+            xml_element_to_XMLRPC_REQUEST(request, root_elem);
+         }
+         xml_elem_free(root_elem);
+      }
+      else {
+         if(error.parser_error) {
+                               XMLRPC_RequestSetError (request, map_expat_errors (&error));
+         }
+      }
+   }
+
+   return request;
+}
+
+/*******/
+
+/*-************************
+* End Serialization Funcs *
+**************************/
+
+
+
+/****f* VALUE/XMLRPC_CreateValueEmpty
+ * NAME
+ *   XMLRPC_CreateValueEmpty
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_CreateValueEmpty ()
+ * FUNCTION
+ *   Create an XML value to be used/modified elsewhere.
+ * INPUTS
+ * RESULT
+ *   XMLRPC_VALUE.  The new value, or NULL on failure.
+ * SEE ALSO
+ *   XMLRPC_CleanupValue ()
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_CreateValueEmpty() {
+   XMLRPC_VALUE v = calloc(1, sizeof(STRUCT_XMLRPC_VALUE));
+   if(v) {
+#ifdef XMLRPC_DEBUG_REFCOUNT
+               printf ("calloc'd 0x%x\n", v);
+#endif
+      v->type = xmlrpc_empty;
+      simplestring_init(&v->id);
+      simplestring_init(&v->str);
+   }
+   return v;
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_SetValueID_Case
+ * NAME
+ *   XMLRPC_SetValueID_Case
+ * SYNOPSIS
+ *   const char *XMLRPC_SetValueID_Case(XMLRPC_VALUE value, const char* id, int len, XMLRPC_CASE id_case)
+ * FUNCTION
+ *   Assign an ID (key) to an XMLRPC value.
+ * INPUTS
+ *   value     The xml value who's ID we will set.
+ *   id        The desired new id.
+ *   len       length of id string if known, or 0 if unknown.
+ *   id_case   one of XMLRPC_CASE
+ * RESULT
+ *   const char*  pointer to the newly allocated id string, or NULL
+ * SEE ALSO
+ *   XMLRPC_SetValueID ()
+ *   XMLRPC_GetValueID ()
+ *   XMLRPC_VALUE
+ *   XMLRPC_CASE
+ * SOURCE
+ */
+const char *XMLRPC_SetValueID_Case(XMLRPC_VALUE value, const char* id, int len, XMLRPC_CASE id_case) {
+   const char* pRetval = NULL;
+   if(value) {
+      if(id) {
+         simplestring_clear(&value->id);
+         (len > 0) ? simplestring_addn(&value->id, id, len) :
+                     simplestring_add(&value->id, id);
+
+         /* upper or lower case string in place if required. could be a seperate func. */
+         if(id_case == xmlrpc_case_lower || id_case == xmlrpc_case_upper) {
+            int i;
+            for(i = 0; i < value->id.len; i++) {
+                                       value->id.str[i] =
+                                       (id_case ==
+                                        xmlrpc_case_lower) ? tolower (value->id.
+                                                                                                                        str[i]) : toupper (value->
+                                                                                                                                                                         id.
+                                                                                                                                                                         str[i]);
+            }
+         }
+
+         pRetval = value->id.str;
+
+#ifdef XMLRPC_DEBUG_REFCOUNT
+         printf("set value id: %s\n", pRetval);
+#endif 
+      }
+   }
+
+   return pRetval;
+}
+
+/*******/
+
+
+/****f* VALUE/XMLRPC_SetValueString
+ * NAME
+ *   XMLRPC_SetValueString
+ * SYNOPSIS
+ *   const char *XMLRPC_SetValueString(XMLRPC_VALUE value, const char* val, int len)
+ * FUNCTION
+ *   Assign a string value to an XMLRPC_VALUE, and set it to type xmlrpc_string
+ * INPUTS
+ *   value     The xml value who's ID we will set.
+ *   val        The desired new string val.
+ *   len       length of val string if known, or 0 if unknown.
+ * RESULT
+ *   const char*  pointer to the newly allocated value string, or NULL
+ * SEE ALSO
+ *   XMLRPC_GetValueString ()
+ *   XMLRPC_VALUE
+ *   XMLRPC_VALUE_TYPE
+ * SOURCE
+ */
+const char *XMLRPC_SetValueString(XMLRPC_VALUE value, const char* val, int len) {
+   char *pRetval = NULL;
+   if(value && val) {
+      simplestring_clear(&value->str);
+      (len > 0) ? simplestring_addn(&value->str, val, len) :
+                  simplestring_add(&value->str, val);
+      value->type = xmlrpc_string;
+      pRetval = (char *)value->str.str;
+   }
+
+   return pRetval;
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_SetValueInt
+ * NAME
+ *   XMLRPC_SetValueInt
+ * SYNOPSIS
+ *   void XMLRPC_SetValueInt(XMLRPC_VALUE value, int val)
+ * FUNCTION
+ *   Assign an int value to an XMLRPC_VALUE, and set it to type xmlrpc_int
+ * INPUTS
+ *   value     The xml value who's ID we will set.
+ *   val        The desired new integer value
+ * RESULT
+ * SEE ALSO
+ *   XMLRPC_GetValueInt ()
+ *   XMLRPC_VALUE
+ *   XMLRPC_VALUE_TYPE
+ * SOURCE
+ */
+void XMLRPC_SetValueInt(XMLRPC_VALUE value, int val) {
+   if(value) {
+      value->type = xmlrpc_int;
+      value->i = val;
+   }
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_SetValueBoolean
+ * NAME
+ *   XMLRPC_SetValueBoolean
+ * SYNOPSIS
+ *   void XMLRPC_SetValueBoolean(XMLRPC_VALUE value, int val)
+ * FUNCTION
+ *   Assign a boolean value to an XMLRPC_VALUE, and set it to type xmlrpc_boolean
+ * INPUTS
+ *   value     The xml value who's value we will set.
+ *   val        The desired new boolean value. [0 | 1]
+ * RESULT
+ * SEE ALSO
+ *   XMLRPC_GetValueBoolean ()
+ *   XMLRPC_VALUE
+ *   XMLRPC_VALUE_TYPE
+ * SOURCE
+ */
+void XMLRPC_SetValueBoolean(XMLRPC_VALUE value, int val) {
+   if(value) {
+      value->type = xmlrpc_boolean;
+      value->i = val ? 1 : 0;
+   }
+}
+
+/*******/
+
+
+/****f* VECTOR/XMLRPC_SetIsVector
+ * NAME
+ *   XMLRPC_SetIsVector
+ * SYNOPSIS
+ *   int XMLRPC_SetIsVector(XMLRPC_VALUE value, XMLRPC_VECTOR_TYPE type)
+ * FUNCTION
+ *   Set the XMLRPC_VALUE to be a vector (list) type.  The vector may be one of
+ *   [xmlrpc_array | xmlrpc_struct | xmlrpc_mixed].  An array has only index values.
+ *   A struct has key/val pairs.  Mixed allows both index and key/val combinations. 
+ * INPUTS
+ *   value     The xml value who's vector type we will set
+ *   type      New type of vector as enumerated by XMLRPC_VECTOR_TYPE
+ * RESULT
+ *   int       1 if successful, 0 otherwise
+ * SEE ALSO
+ *   XMLRPC_GetValueType ()
+ *   XMLRPC_GetVectorType ()
+ *   XMLRPC_VALUE
+ *   XMLRPC_VECTOR_TYPE
+ *   XMLRPC_VALUE_TYPE
+ * SOURCE
+ */
+int XMLRPC_SetIsVector(XMLRPC_VALUE value, XMLRPC_VECTOR_TYPE type) {
+   int bSuccess = 0;
+
+       if (value) {
+               /* we can change the type so long as nothing is currently stored. */
+               if(value->type == xmlrpc_vector) {
+                       if(value->v) {
+                               if(!Q_Size(value->v->q)) {
+                                       value->v->type = type;
+                               }
+                       }
+               }
+               else {
+      value->v = calloc(1, sizeof(STRUCT_XMLRPC_VECTOR));
+      if(value->v) {
+         value->v->q = (queue*)malloc(sizeof(queue));
+         if(value->v->q) {
+            Q_Init(value->v->q);
+            value->v->type = type;
+            value->type = xmlrpc_vector;
+            bSuccess = 1;
+         }
+      }
+   }
+       }
+
+   return bSuccess;
+}
+
+/*******/
+
+/****f* VECTOR/XMLRPC_CreateVector
+ * NAME
+ *   XMLRPC_CreateVector
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_CreateVector(const char* id, XMLRPC_VECTOR_TYPE type)
+ * FUNCTION
+ *   Create a new vector and optionally set an id.
+ * INPUTS
+ *   id        The id of the vector, or NULL
+ *   type      New type of vector as enumerated by XMLRPC_VECTOR_TYPE
+ * RESULT
+ *   XMLRPC_VALUE  The new vector, or NULL on failure.
+ * SEE ALSO
+ *   XMLRPC_CreateValueEmpty ()
+ *   XMLRPC_SetIsVector ()
+ *   XMLRPC_GetValueType ()
+ *   XMLRPC_GetVectorType ()
+ *   XMLRPC_VALUE
+ *   XMLRPC_VECTOR_TYPE
+ *   XMLRPC_VALUE_TYPE
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_CreateVector(const char* id, XMLRPC_VECTOR_TYPE type) {
+   XMLRPC_VALUE val = NULL;
+
+   val = XMLRPC_CreateValueEmpty();
+   if(val) {
+      if(XMLRPC_SetIsVector(val, type)) {
+         if(id) {
+            const char *pSVI = NULL;
+
+            pSVI = XMLRPC_SetValueID(val, id, 0);
+            if(NULL == pSVI) {
+               val = NULL;
+            }
+         }
+      }
+      else {
+         val = NULL;
+      }
+   }
+   return val;
+}
+
+/*******/
+
+
+/* Not yet implemented.
+ *
+ * This should use a hash to determine if a given target id has already
+ * been appended.  
+ *
+ * Alternately, it could walk the entire vector, but that could be quite
+ * slow for very large lists.
+ */
+static int isDuplicateEntry(XMLRPC_VALUE target, XMLRPC_VALUE source) {
+   return 0;
+}
+
+/****f* VECTOR/XMLRPC_AddValueToVector
+ * NAME
+ *   XMLRPC_AddValueToVector
+ * SYNOPSIS
+ *   int XMLRPC_AddValueToVector(XMLRPC_VALUE target, XMLRPC_VALUE source)
+ * FUNCTION
+ *   Add (append) an existing XMLRPC_VALUE to a vector.
+ * INPUTS
+ *   target    The target vector
+ *   source    The source value to append
+ * RESULT
+ *   int       1 if successful, else 0
+ * SEE ALSO
+ *   XMLRPC_AddValuesToVector ()
+ *   XMLRPC_VectorGetValueWithID_Case ()
+ *   XMLRPC_VALUE
+ * NOTES
+ *   The function will fail and return 0 if an attempt is made to add
+ *   a value with an ID into a vector of type xmlrpc_vector_array. Such
+ *   values can only be added to xmlrpc_vector_struct.
+ * SOURCE
+ */
+int XMLRPC_AddValueToVector(XMLRPC_VALUE target, XMLRPC_VALUE source) {
+   if(target && source) {
+      if(target->type == xmlrpc_vector && target->v && 
+         target->v->q && target->v->type != xmlrpc_vector_none) {
+
+         /* guard against putting value of unknown type into vector */
+         switch(source->type) {
+            case xmlrpc_empty:
+            case xmlrpc_nil:
+            case xmlrpc_base64:
+            case xmlrpc_boolean:
+            case xmlrpc_datetime:
+            case xmlrpc_double:
+            case xmlrpc_int:
+            case xmlrpc_string:
+            case xmlrpc_vector:
+               /* Guard against putting a key/val pair into an array vector */
+               if( !(source->id.len && target->v->type == xmlrpc_vector_array) ) {
+                                       if (isDuplicateEntry (target, source)
+                                                || Q_PushTail (target->v->q, XMLRPC_CopyValue (source))) {
+                     return 1;
+                  }
+               }
+               else {
+                                       fprintf (stderr,
+                                                               "xmlrpc: attempted to add key/val pair to vector of type array\n");
+               }
+               break;
+            default:
+                               fprintf (stderr,
+                                                       "xmlrpc: attempted to add value of unknown type to vector\n");
+               break;
+         }
+      }
+   }
+   return 0;
+}
+
+/*******/
+
+
+/****f* VECTOR/XMLRPC_AddValuesToVector
+ * NAME
+ *   XMLRPC_AddValuesToVector
+ * SYNOPSIS
+ *   XMLRPC_AddValuesToVector ( target, val1, val2, val3, val(n), 0 )
+ *   XMLRPC_AddValuesToVector( XMLRPC_VALUE, ... )
+ * FUNCTION
+ *   Add (append) a series of existing XMLRPC_VALUE to a vector.
+ * INPUTS
+ *   target    The target vector
+ *   ...       The source value(s) to append.  The last item *must* be 0.
+ * RESULT
+ *   int       1 if successful, else 0
+ * SEE ALSO
+ *   XMLRPC_AddValuesToVector ()
+ *   XMLRPC_VectorGetValueWithID_Case ()
+ *   XMLRPC_VALUE
+ * NOTES
+ *   This function may actually return failure after it has already modified
+ *     or added items to target.  You can not trust the state of target
+ *     if this function returns failure.
+ * SOURCE
+ */
+int XMLRPC_AddValuesToVector(XMLRPC_VALUE target, ...) {
+   int iRetval = 0;
+
+   if(target) {
+      if(target->type == xmlrpc_vector) {
+         XMLRPC_VALUE v = NULL;
+         va_list vl;
+
+         va_start(vl, target);
+
+         do {
+            v = va_arg(vl, XMLRPC_VALUE);
+            if(v) {
+               if(!XMLRPC_AddValueToVector(target, v)) {
+                  iRetval = 0;
+                  break;
+               }
+            }
+                       }
+                       while (v);
+
+         va_end(vl);
+
+         if(NULL == v) {
+            iRetval = 1;
+         }
+      }
+   }
+   return iRetval;
+}
+
+/*******/
+
+
+/****f* VECTOR/XMLRPC_VectorGetValueWithID_Case
+ * NAME
+ *   XMLRPC_VectorGetValueWithID_Case
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_VectorGetValueWithID_Case(XMLRPC_VALUE vector, const char* id, XMLRPC_CASE_COMPARISON id_case)
+ * FUNCTION
+ *   Get value from vector matching id (key)
+ * INPUTS
+ *   vector    The source vector
+ *   id        The key to find
+ *   id_case   Rule for how to match key
+ * RESULT
+ *   int       1 if successful, else 0
+ * SEE ALSO
+ *   XMLRPC_SetValueID_Case ()
+ *   XMLRPC_VALUE
+ *   XMLRPC_CASE_COMPARISON
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_VectorGetValueWithID_Case (XMLRPC_VALUE vector, const char *id,
+                                                                                                                         XMLRPC_CASE_COMPARISON id_case) {
+   if(vector && vector->v && vector->v->q) {
+       q_iter qi = Q_Iter_Head_F(vector->v->q);
+
+       while(qi) {
+          XMLRPC_VALUE xIter = Q_Iter_Get_F(qi);
+          if(xIter && xIter->id.str) {
+             if(id_case == xmlrpc_case_sensitive) {
+                if(!strcmp(xIter->id.str, id)) {
+                   return xIter;
+                }
+             }
+             else if(id_case == xmlrpc_case_insensitive) {
+                if(!strcasecmp(xIter->id.str, id)) {
+                   return xIter;
+                }
+             }
+          }
+          qi = Q_Iter_Next_F(qi);
+       }
+   }
+   return NULL;
+}
+
+/*******/
+
+
+int XMLRPC_VectorRemoveValue(XMLRPC_VALUE vector, XMLRPC_VALUE value) {
+   if(vector && vector->v && vector->v->q && value) {
+       q_iter qi = Q_Iter_Head_F(vector->v->q);
+
+       while(qi) {
+          XMLRPC_VALUE xIter = Q_Iter_Get_F(qi);
+          if(xIter == value) {
+             XMLRPC_CleanupValue(xIter);
+             Q_Iter_Del(vector->v->q, qi);
+             return 1;
+          }
+          qi = Q_Iter_Next_F(qi);
+       }
+   }
+   return 0;
+}
+
+
+/****f* VALUE/XMLRPC_CreateValueString
+ * NAME
+ *   XMLRPC_CreateValueString
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_CreateValueString(const char* id, const char* val, int len)
+ * FUNCTION
+ *   Create an XMLRPC_VALUE, and assign a string to it
+ * INPUTS
+ *   id        The id of the value, or NULL
+ *   val       The desired new string val.
+ *   len       length of val string if known, or 0 if unknown.
+ * RESULT
+ *   newly allocated XMLRPC_VALUE, or NULL
+ * SEE ALSO
+ *   XMLRPC_GetValueString ()
+ *   XMLRPC_CreateValueEmpty ()
+ *   XMLRPC_VALUE
+ *   XMLRPC_VALUE_TYPE
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_CreateValueString(const char* id, const char* val, int len) {
+   XMLRPC_VALUE value = NULL;
+   if(val) {
+      value = XMLRPC_CreateValueEmpty();
+      if(value) {
+         XMLRPC_SetValueString(value, val, len);
+         if(id) {
+            XMLRPC_SetValueID(value, id, 0);
+         }
+      }
+   }
+   return value;
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_CreateValueInt
+ * NAME
+ *   XMLRPC_CreateValueInt
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_CreateValueInt(const char* id, int i)
+ * FUNCTION
+ *   Create an XMLRPC_VALUE, and assign an int to it
+ * INPUTS
+ *   id        The id of the value, or NULL
+ *   i         The desired new int val.
+ * RESULT
+ *   newly allocated XMLRPC_VALUE, or NULL
+ * SEE ALSO
+ *   XMLRPC_GetValueInt ()
+ *   XMLRPC_CreateValueEmpty ()
+ *   XMLRPC_VALUE
+ *   XMLRPC_VALUE_TYPE
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_CreateValueInt(const char* id, int i) {
+   XMLRPC_VALUE val = XMLRPC_CreateValueEmpty();
+   if(val) {
+      XMLRPC_SetValueInt(val, i);
+      if(id) {
+         XMLRPC_SetValueID(val, id, 0);
+      }
+   }
+   return val;
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_CreateValueBoolean
+ * NAME
+ *   XMLRPC_CreateValueBoolean
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_CreateValueBoolean(const char* id, int i)
+ * FUNCTION
+ *   Create an XMLRPC_VALUE, and assign an int to it
+ * INPUTS
+ *   id        The id of the value, or NULL
+ *   i         The desired new int val.
+ * RESULT
+ *   newly allocated XMLRPC_VALUE, or NULL
+ * SEE ALSO
+ *   XMLRPC_GetValueBoolean ()
+ *   XMLRPC_CreateValueEmpty ()
+ *   XMLRPC_VALUE
+ *   XMLRPC_VALUE_TYPE
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_CreateValueBoolean(const char* id, int i) {
+   XMLRPC_VALUE val = XMLRPC_CreateValueEmpty();
+   if(val) {
+      XMLRPC_SetValueBoolean(val, i);
+      if(id) {
+         XMLRPC_SetValueID(val, id, 0);
+      }
+   }
+   return val;
+}
+
+/*******/
+
+
+/****f* VALUE/XMLRPC_CleanupValue
+ * NAME
+ *   XMLRPC_CleanupValue
+ * SYNOPSIS
+ *   void XMLRPC_CleanupValue(XMLRPC_VALUE value)
+ * FUNCTION
+ *   Frees all memory allocated for an XMLRPC_VALUE and any of its children (if a vector)
+ * INPUTS
+ *   value     The id of the value to be cleaned up.
+ * RESULT
+ *   void
+ * NOTES
+ *   Normally this function will be called for the topmost vector, thus free-ing
+ *   all children.  If a child of a vector is free'd first, results are undefined.
+ *   Failure to call this function *will* cause memory leaks.
+ *
+ *   Also, this function is implemented using reference counting.  Thus a value
+ *   may be added and freed from multiple parents so long as a reference is added
+ *   first using XMLRPC_CopyValue()
+ * SEE ALSO
+ *   XMLRPC_RequestFree ()
+ *   XMLRPC_CreateValueEmpty ()
+ *   XMLRPC_CopyValue()
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+void XMLRPC_CleanupValue(XMLRPC_VALUE value) {
+   if(value) {
+      if(value->iRefCount > 0) {
+         value->iRefCount --;
+      }
+
+#ifdef XMLRPC_DEBUG_REFCOUNT
+      if(value->id.str) {
+                       printf ("decremented refcount of %s, now %i\n", value->id.str,
+                                         value->iRefCount);
+      }
+      else {
+                       printf ("decremented refcount of 0x%x, now %i\n", value,
+                                         value->iRefCount);
+      }
+#endif
+
+      if(value->type == xmlrpc_vector) {
+         if(value->v) {
+            if(value->iRefCount == 0) {
+               XMLRPC_VALUE cur = (XMLRPC_VALUE)Q_Head(value->v->q);
+               while( cur ) {
+                  XMLRPC_CleanupValue(cur);
+   
+                  /* Make sure some idiot didn't include a vector as a child of itself
+                   * and thus it would have already free'd these.
+                   */
+                  if(value->v && value->v->q) {
+                     cur = Q_Next(value->v->q);
+                  }
+                  else {
+                     break;
+                  }
+               }
+
+               Q_Destroy(value->v->q);
+               my_free(value->v->q);
+               my_free(value->v);
+            }
+         }
+      }
+
+
+      if(value->iRefCount == 0) {
+
+         /* guard against freeing invalid types */
+         switch(value->type) {
+            case xmlrpc_empty:
+            case xmlrpc_base64:
+            case xmlrpc_boolean:
+            case xmlrpc_datetime:
+            case xmlrpc_double:
+            case xmlrpc_int:
+            case xmlrpc_string:
+            case xmlrpc_vector:
+#ifdef XMLRPC_DEBUG_REFCOUNT
+               if(value->id.str) {
+                  printf("free'd %s\n", value->id.str);
+               }
+               else {
+                  printf("free'd 0x%x\n", value);
+               }
+#endif 
+               simplestring_free(&value->id);
+               simplestring_free(&value->str);
+
+               memset(value, 0, sizeof(STRUCT_XMLRPC_VALUE));
+               my_free(value);
+               break;
+            default:
+                               fprintf (stderr,
+                                                       "xmlrpc: attempted to free value of invalid type\n");
+               break;
+         }
+      }
+   }
+}
+
+/*******/
+
+
+/****f* VALUE/XMLRPC_SetValueDateTime
+ * NAME
+ *   XMLRPC_SetValueDateTime
+ * SYNOPSIS
+ *   void XMLRPC_SetValueDateTime(XMLRPC_VALUE value, time_t time)
+ * FUNCTION
+ *   Assign time value to XMLRPC_VALUE
+ * INPUTS
+ *   value     The target XMLRPC_VALUE
+ *   time      The desired new unix time value (time_t)
+ * RESULT
+ *   void
+ * SEE ALSO
+ *   XMLRPC_GetValueDateTime ()
+ *   XMLRPC_SetValueDateTime_ISO8601 ()
+ *   XMLRPC_CreateValueDateTime ()
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+void XMLRPC_SetValueDateTime(XMLRPC_VALUE value, time_t time) {
+   if(value) {
+      char timeBuf[30];
+      value->type = xmlrpc_datetime;
+      value->i = time;
+
+      timeBuf[0] = 0;
+
+      date_to_ISO8601(time, timeBuf, sizeof(timeBuf));
+
+      if(timeBuf[0]) {
+         simplestring_clear(&value->str);
+         simplestring_add(&value->str, timeBuf);
+      }
+   }
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_CopyValue
+ * NAME
+ *   XMLRPC_CopyValue
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_CopyValue(XMLRPC_VALUE value)
+ * FUNCTION
+ *   Make a copy (reference) of an XMLRPC_VALUE
+ * INPUTS
+ *   value     The target XMLRPC_VALUE
+ * RESULT
+ *   XMLRPC_VALUE -- address of the copy
+ * SEE ALSO
+ *   XMLRPC_CleanupValue ()
+ *   XMLRPC_DupValueNew ()
+ * NOTES
+ *   This function is implemented via reference counting, so the
+ *   returned value is going to be the same as the passed in value.
+ *   The value must be freed the same number of times it is copied
+ *   or there will be a memory leak.
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_CopyValue(XMLRPC_VALUE value) {
+   if(value) {
+      value->iRefCount ++;
+#ifdef XMLRPC_DEBUG_REFCOUNT
+      if(value->id.str) {
+                       printf ("incremented refcount of %s, now %i\n", value->id.str,
+                                         value->iRefCount);
+               }
+               else {
+                       printf ("incremented refcount of 0x%x, now %i\n", value,
+                                         value->iRefCount);
+      }
+#endif
+   }
+   return value;
+}
+
+/*******/
+
+
+/****f* VALUE/XMLRPC_DupValueNew
+ * NAME
+ *   XMLRPC_DupValueNew
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_DupValueNew(XMLRPC_VALUE value)
+ * FUNCTION
+ *   Make a duplicate (non reference) of an XMLRPC_VALUE with newly allocated mem.
+ * INPUTS
+ *   value     The source XMLRPC_VALUE to duplicate
+ * RESULT
+ *   XMLRPC_VALUE -- address of the duplicate value
+ * SEE ALSO
+ *   XMLRPC_CleanupValue ()
+ *   XMLRPC_CopyValue ()
+ * NOTES
+ *   Use this when function when you need to modify the contents of
+ *   the copied value seperately from the original.
+ *   
+ *   this function is recursive, thus the value and all of its children
+ *   (if any) will be duplicated.
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_DupValueNew (XMLRPC_VALUE xSource) {
+       XMLRPC_VALUE xReturn = NULL;
+       if (xSource) {
+               xReturn = XMLRPC_CreateValueEmpty ();
+               if (xSource->id.len) {
+                       XMLRPC_SetValueID (xReturn, xSource->id.str, xSource->id.len);
+               }
+
+               switch (xSource->type) {
+               case xmlrpc_int:
+               case xmlrpc_boolean:
+                       XMLRPC_SetValueInt (xReturn, xSource->i);
+                       break;
+               case xmlrpc_string:
+               case xmlrpc_base64:
+                       XMLRPC_SetValueString (xReturn, xSource->str.str, xSource->str.len);
+                       break;
+               case xmlrpc_datetime:
+                       XMLRPC_SetValueDateTime (xReturn, xSource->i);
+                       break;
+               case xmlrpc_double:
+                       XMLRPC_SetValueDouble (xReturn, xSource->d);
+                       break;
+               case xmlrpc_vector:
+                       {
+                               q_iter qi = Q_Iter_Head_F (xSource->v->q);
+                               XMLRPC_SetIsVector (xReturn, xSource->v->type);
+
+                               while (qi) {
+                                       XMLRPC_VALUE xIter = Q_Iter_Get_F (qi);
+                                       XMLRPC_AddValueToVector (xReturn, XMLRPC_DupValueNew (xIter));
+                                       qi = Q_Iter_Next_F (qi);
+                               }
+                       }
+                       break;
+               default:
+                       break;
+               }
+       }
+       return xReturn;
+}
+
+/*******/
+
+
+
+/****f* VALUE/XMLRPC_CreateValueDateTime
+ * NAME
+ *   XMLRPC_CreateValueDateTime
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_CreateValueDateTime(const char* id, time_t time)
+ * FUNCTION
+ *   Create new datetime value from time_t
+ * INPUTS
+ *   id        id of the new value, or NULL
+ *   time      The desired unix time value (time_t)
+ * RESULT
+ *   void
+ * SEE ALSO
+ *   XMLRPC_GetValueDateTime ()
+ *   XMLRPC_SetValueDateTime ()
+ *   XMLRPC_CreateValueDateTime_ISO8601 ()
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_CreateValueDateTime(const char* id, time_t time) {
+   XMLRPC_VALUE val = XMLRPC_CreateValueEmpty();
+   if(val) {
+      XMLRPC_SetValueDateTime(val, time);
+      if(id) {
+         XMLRPC_SetValueID(val, id, 0);
+      }
+   }
+   return val;
+}
+
+/*******/
+
+
+/****f* VALUE/XMLRPC_SetValueDateTime_ISO8601
+ * NAME
+ *   XMLRPC_SetValueDateTime_ISO8601
+ * SYNOPSIS
+ *   void XMLRPC_SetValueDateTime_ISO8601(XMLRPC_VALUE value, const char* s)
+ * FUNCTION
+ *   Set datetime value from IS08601 encoded string
+ * INPUTS
+ *   value     The target XMLRPC_VALUE
+ *   s         The desired new time value
+ * RESULT
+ *   void                                
+ * BUGS
+ *   This function currently attempts to convert the time string to a valid unix time
+ *   value before passing it. Behavior when the string is invalid or out of range
+ *   is not well defined, but will probably result in Jan 1, 1970 (0) being passed.
+ * SEE ALSO
+ *   XMLRPC_GetValueDateTime_ISO8601 ()
+ *   XMLRPC_CreateValueDateTime_ISO8601 ()
+ *   XMLRPC_CreateValueDateTime ()
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+void XMLRPC_SetValueDateTime_ISO8601(XMLRPC_VALUE value, const char* s) {
+   if(value) {
+      time_t time_val = 0;
+      if(s) {
+         date_from_ISO8601(s, &time_val);
+         XMLRPC_SetValueDateTime(value, time_val);
+      }
+   }
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_CreateValueDateTime_ISO8601
+ * NAME
+ *   XMLRPC_CreateValueDateTime_ISO8601
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_CreateValueDateTime_ISO8601(const char* id, const char *s)
+ * FUNCTION
+ *   Create datetime value from IS08601 encoded string
+ * INPUTS
+ *   id        The id of the new value, or NULL
+ *   s         The desired new time value
+ * RESULT
+ *   newly allocated XMLRPC_VALUE, or NULL if no value created.                                
+ * BUGS
+ *   See XMLRPC_SetValueDateTime_ISO8601 ()
+ * SEE ALSO
+ *   XMLRPC_GetValueDateTime_ISO8601 ()
+ *   XMLRPC_SetValueDateTime_ISO8601 ()
+ *   XMLRPC_CreateValueDateTime ()
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_CreateValueDateTime_ISO8601(const char* id, const char *s) {
+   XMLRPC_VALUE val = XMLRPC_CreateValueEmpty();
+   if(val) {
+      XMLRPC_SetValueDateTime_ISO8601(val, s);
+      if(id) {
+         XMLRPC_SetValueID(val, id, 0);
+      }
+   }
+   return val;
+}
+
+/*******/
+
+
+/****f* VALUE/XMLRPC_SetValueBase64
+ * NAME
+ *   XMLRPC_SetValueBase64
+ * SYNOPSIS
+ *   void XMLRPC_SetValueBase64(XMLRPC_VALUE value, const char* s, int len)
+ * FUNCTION
+ *   Set base64 value.  Base64 is useful for transferring binary data, such as an image.
+ * INPUTS
+ *   value     The target XMLRPC_VALUE
+ *   s         The desired new binary value
+ *   len       The length of s, or NULL. If buffer is not null terminated, len *must* be passed.
+ * RESULT
+ *   void                                
+ * NOTES
+ *   Data is set/stored/retrieved as passed in, but is base64 encoded for XML transfer, and
+ *   decoded on the other side.  This is transparent to the caller.
+ * SEE ALSO
+ *   XMLRPC_GetValueBase64 ()
+ *   XMLRPC_CreateValueBase64 ()
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+void XMLRPC_SetValueBase64(XMLRPC_VALUE value, const char* s, int len) {
+   if(value && s) {
+      simplestring_clear(&value->str);
+      (len > 0) ? simplestring_addn(&value->str, s, len) :
+                  simplestring_add(&value->str, s);
+      value->type = xmlrpc_base64;
+   }
+}
+
+/*******/
+
+
+/****f* VALUE/XMLRPC_CreateValueBase64
+ * NAME
+ *   XMLRPC_CreateValueBase64
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_CreateValueBase64(const char* id, const char* s, int len)
+ * FUNCTION
+ *   Create base64 value.  Base64 is useful for transferring binary data, such as an image.
+ * INPUTS
+ *   id        id of the new value, or NULL
+ *   s         The desired new binary value
+ *   len       The length of s, or NULL. If buffer is not null terminated, len *must* be passed.
+ * RESULT
+ *   newly allocated XMLRPC_VALUE, or NULL if error
+ * NOTES
+ *   See XMLRPC_SetValueBase64 ()
+ * SEE ALSO
+ *   XMLRPC_GetValueBase64 ()
+ *   XMLRPC_SetValueBase64 ()
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_CreateValueBase64(const char* id, const char* s, int len) {
+   XMLRPC_VALUE val = XMLRPC_CreateValueEmpty();
+   if(val) {
+      XMLRPC_SetValueBase64(val, s, len);
+      if(id) {
+         XMLRPC_SetValueID(val, id, 0);
+      }
+   }
+   return val;
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_SetValueDouble
+ * NAME
+ *   XMLRPC_SetValueDouble
+ * SYNOPSIS
+ *   void XMLRPC_SetValueDouble(XMLRPC_VALUE value, double val)
+ * FUNCTION
+ *   Set double (floating point) value.
+ * INPUTS
+ *   value     The target XMLRPC_VALUE
+ *   val       The desired new double value
+ * RESULT
+ *   void                                
+ * SEE ALSO
+ *   XMLRPC_GetValueDouble ()
+ *   XMLRPC_CreateValueDouble ()
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+void XMLRPC_SetValueDouble(XMLRPC_VALUE value, double val) {
+   if(value) {
+      value->type = xmlrpc_double;
+      value->d = val;
+   }
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_CreateValueDouble
+ * NAME
+ *   XMLRPC_CreateValueDouble
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_CreateValueDouble(const char* id, double d)
+ * FUNCTION
+ *   Create double (floating point) value.
+ * INPUTS
+ *   id        id of the newly created value, or NULL
+ *   d         The desired new double value
+ * RESULT
+ *   void                                
+ * SEE ALSO
+ *   XMLRPC_GetValueDouble ()
+ *   XMLRPC_CreateValueDouble ()
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_CreateValueDouble(const char* id, double d) {
+   XMLRPC_VALUE val = XMLRPC_CreateValueEmpty();
+   if(val) {
+      XMLRPC_SetValueDouble(val, d);
+      if(id) {
+         XMLRPC_SetValueID(val, id, 0);
+      }
+   }
+   return val;
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_GetValueString
+ * NAME
+ *   XMLRPC_GetValueString
+ * SYNOPSIS
+ *   const char* XMLRPC_GetValueString(XMLRPC_VALUE value)
+ * FUNCTION
+ *   retrieve string value
+ * INPUTS
+ *   value     source XMLRPC_VALUE of type xmlrpc_string
+ * RESULT
+ *   void                                
+ * SEE ALSO
+ *   XMLRPC_SetValueString ()
+ *   XMLRPC_GetValueType ()
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+const char* XMLRPC_GetValueString(XMLRPC_VALUE value) {
+    return ((value && value->type == xmlrpc_string) ? value->str.str : 0);
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_GetValueStringLen
+ * NAME
+ *   XMLRPC_GetValueStringLen
+ * SYNOPSIS
+ *   int XMLRPC_GetValueStringLen(XMLRPC_VALUE value)
+ * FUNCTION
+ *   determine length of string value
+ * INPUTS
+ *   value     XMLRPC_VALUE of type xmlrpc_string 
+ * RESULT
+ *   length of string, or 0
+ * NOTES
+ * SEE ALSO
+ *   XMLRPC_SetValueString ()
+ *   XMLRPC_GetValueString ()
+ * SOURCE
+ */
+int XMLRPC_GetValueStringLen(XMLRPC_VALUE value) {
+    return ((value) ? value->str.len : 0);
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_GetValueInt
+ * NAME
+ *   XMLRPC_GetValueInt
+ * SYNOPSIS
+ *   int XMLRPC_GetValueInt(XMLRPC_VALUE value)
+ * FUNCTION
+ *   retrieve integer value.
+ * INPUTS
+ *   value     XMLRPC_VALUE of type xmlrpc_int 
+ * RESULT
+ *   integer value or 0 if value is not valid int
+ * NOTES
+ *   use XMLRPC_GetValueType () to be sure if 0 is real return value or not
+ * SEE ALSO
+ *   XMLRPC_SetValueInt ()
+ *   XMLRPC_CreateValueInt ()
+ * SOURCE
+ */
+int XMLRPC_GetValueInt(XMLRPC_VALUE value) {
+    return ((value && value->type == xmlrpc_int) ? value->i : 0);
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_GetValueBoolean
+ * NAME
+ *   XMLRPC_GetValueBoolean
+ * SYNOPSIS
+ *   int XMLRPC_GetValueBoolean(XMLRPC_VALUE value)
+ * FUNCTION
+ *   retrieve boolean value.
+ * INPUTS
+ *   XMLRPC_VALUE of type xmlrpc_boolean
+ * RESULT
+ *   boolean value or 0 if value is not valid boolean
+ * NOTES
+ *   use XMLRPC_GetValueType() to be sure if 0 is real value or not
+ * SEE ALSO
+ *   XMLRPC_SetValueBoolean ()
+ *   XMLRPC_CreateValueBoolean ()
+ * SOURCE
+ */
+int XMLRPC_GetValueBoolean(XMLRPC_VALUE value) {
+    return ((value && value->type == xmlrpc_boolean) ? value->i : 0);
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_GetValueDouble
+ * NAME
+ *   XMLRPC_GetValueDouble
+ * SYNOPSIS
+ *   double XMLRPC_GetValueDouble(XMLRPC_VALUE value)
+ * FUNCTION
+ *   retrieve double value
+ * INPUTS
+ *   XMLRPC_VALUE of type xmlrpc_double
+ * RESULT
+ *   double value or 0 if value is not valid double.
+ * NOTES
+ *   use XMLRPC_GetValueType() to be sure if 0 is real value or not
+ * SEE ALSO
+ *   XMLRPC_SetValueDouble ()
+ *   XMLRPC_CreateValueDouble ()
+ * SOURCE
+ */
+double XMLRPC_GetValueDouble(XMLRPC_VALUE value) {
+    return ((value && value->type == xmlrpc_double) ? value->d : 0);
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_GetValueBase64
+ * NAME
+ *   XMLRPC_GetValueBase64
+ * SYNOPSIS
+ *   const char* XMLRPC_GetValueBase64(XMLRPC_VALUE value)
+ * FUNCTION
+ *   retrieve binary value
+ * INPUTS
+ *   XMLRPC_VALUE of type xmlrpc_base64
+ * RESULT
+ *   pointer to binary value or 0 if value is not valid.
+ * SEE ALSO
+ *   XMLRPC_SetValueBase64 ()
+ *   XMLRPC_CreateValueBase64 ()
+ * NOTES
+ *   Call XMLRPC_GetValueStringLen() to retrieve real length of binary data.  strlen()
+ *   will not be accurate, as returned data may contain embedded nulls.
+ * SOURCE
+ */
+const char* XMLRPC_GetValueBase64(XMLRPC_VALUE value) {
+    return ((value && value->type == xmlrpc_base64) ? value->str.str : 0);
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_GetValueDateTime
+ * NAME
+ *   XMLRPC_GetValueDateTime
+ * SYNOPSIS
+ *   time_t XMLRPC_GetValueDateTime(XMLRPC_VALUE value)
+ * FUNCTION
+ *   retrieve time_t value
+ * INPUTS
+ *   XMLRPC_VALUE of type xmlrpc_datetime
+ * RESULT
+ *   time_t value or 0 if value is not valid datetime.
+ * NOTES
+ *   use XMLRPC_GetValueType() to be sure if 0 is real value or not
+ * SEE ALSO
+ *   XMLRPC_SetValueDateTime ()
+ *   XMLRPC_GetValueDateTime_ISO8601 ()
+ *   XMLRPC_CreateValueDateTime ()
+ * SOURCE
+ */
+time_t XMLRPC_GetValueDateTime(XMLRPC_VALUE value) {
+    return (time_t)((value && value->type == xmlrpc_datetime) ? value->i : 0);
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_GetValueDateTime_IOS8601
+ * NAME
+ *   XMLRPC_GetValueDateTime_IOS8601
+ * SYNOPSIS
+ *   const char* XMLRPC_GetValueDateTime_IOS8601(XMLRPC_VALUE value)
+ * FUNCTION
+ *   retrieve ISO8601 formatted time value
+ * INPUTS
+ *   XMLRPC_VALUE of type xmlrpc_datetime
+ * RESULT
+ *   const char* value or 0 if value is not valid datetime.
+ * SEE ALSO
+ *   XMLRPC_SetValueDateTime_IOS8601 ()
+ *   XMLRPC_GetValueDateTime ()
+ *   XMLRPC_CreateValueDateTime_IOS8601 ()
+ * SOURCE
+ */
+const char* XMLRPC_GetValueDateTime_ISO8601(XMLRPC_VALUE value) {
+    return ((value && value->type == xmlrpc_datetime) ? value->str.str : 0);
+}
+
+/*******/
+
+/* Get ID (key) of value or NULL */
+/****f* VALUE/XMLRPC_GetValueID
+ * NAME
+ *   XMLRPC_GetValueID
+ * SYNOPSIS
+ *   const char* XMLRPC_GetValueID(XMLRPC_VALUE value)
+ * FUNCTION
+ *   retrieve id (key) of value
+ * INPUTS
+ *   XMLRPC_VALUE of any type
+ * RESULT
+ *   const char* pointer to id of value, or NULL
+ * NOTES
+ * SEE ALSO
+ *   XMLRPC_SetValueID()
+ *   XMLRPC_CreateValueEmpty()
+ * SOURCE
+ */
+const char* XMLRPC_GetValueID(XMLRPC_VALUE value) {
+    return (const char*)((value && value->id.len) ? value->id.str : 0);
+}
+
+/*******/
+
+
+/****f* VECTOR/XMLRPC_VectorSize
+ * NAME
+ *   XMLRPC_VectorSize
+ * SYNOPSIS
+ *   int XMLRPC_VectorSize(XMLRPC_VALUE value)
+ * FUNCTION
+ *   retrieve size of vector
+ * INPUTS
+ *   XMLRPC_VALUE of type xmlrpc_vector
+ * RESULT
+ *   count of items in vector
+ * NOTES
+ *   This is a cheap operation even on large vectors.  Vector size is 
+ *   maintained by queue during add/remove ops.
+ * SEE ALSO
+ *   XMLRPC_AddValueToVector ()
+ * SOURCE
+ */
+int XMLRPC_VectorSize(XMLRPC_VALUE value) {
+   int size = 0;
+   if(value && value->type == xmlrpc_vector && value->v) {
+      size = Q_Size(value->v->q);
+   }
+   return size;
+}
+
+/*******/
+
+/****f* VECTOR/XMLRPC_VectorRewind
+ * NAME
+ *   XMLRPC_VectorRewind
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_VectorRewind(XMLRPC_VALUE value)
+ * FUNCTION
+ *   reset vector to first item
+ * INPUTS
+ *   XMLRPC_VALUE of type xmlrpc_vector
+ * RESULT
+ *   first XMLRPC_VALUE in list, or NULL if empty or error.
+ * NOTES
+ *   Be careful to rewind any vector passed in to you if you expect to
+ *   iterate through the entire list.
+ * SEE ALSO
+ *   XMLRPC_VectorNext ()
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_VectorRewind(XMLRPC_VALUE value) {
+   XMLRPC_VALUE xReturn = NULL;
+   if(value && value->type == xmlrpc_vector && value->v) {
+      xReturn = (XMLRPC_VALUE)Q_Head(value->v->q);
+   }
+   return xReturn;
+}
+
+/*******/
+
+/****f* VECTOR/XMLRPC_VectorNext
+ * NAME
+ *   XMLRPC_VectorNext
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_VectorNext(XMLRPC_VALUE value)
+ * FUNCTION
+ *   Iterate vector to next item in list.
+ * INPUTS
+ *   XMLRPC_VALUE of type xmlrpc_vector
+ * RESULT
+ *   Next XMLRPC_VALUE in vector, or NULL if at end.
+ * NOTES
+ * SEE ALSO
+ *   XMLRPC_VectorRewind ()
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_VectorNext(XMLRPC_VALUE value) {
+   XMLRPC_VALUE xReturn = NULL;
+   if(value && value->type == xmlrpc_vector && value->v) {
+      xReturn = (XMLRPC_VALUE)Q_Next(value->v->q);
+   }
+   return xReturn;
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_GetValueType
+ * NAME
+ *   XMLRPC_GetValueType
+ * SYNOPSIS
+ *   XMLRPC_VALUE_TYPE XMLRPC_GetValueType(XMLRPC_VALUE value)
+ * FUNCTION
+ *   determine data type of the XMLRPC_VALUE
+ * INPUTS
+ *   XMLRPC_VALUE target of query
+ * RESULT
+ *   data type of value as enumerated by XMLRPC_VALUE_TYPE
+ * NOTES
+ *   all values are of type xmlrpc_empty until set.
+ *   Deprecated for public use.  See XMLRPC_GetValueTypeEasy
+ * SEE ALSO
+ *   XMLRPC_SetValue*
+ *   XMLRPC_CreateValue*
+ *   XMLRPC_Append*
+ *   XMLRPC_GetValueTypeEasy ()
+ * SOURCE
+ */
+XMLRPC_VALUE_TYPE XMLRPC_GetValueType(XMLRPC_VALUE value) {
+   return value ? value->type : xmlrpc_empty;
+}
+
+/*******/
+
+/* Vector type accessor */
+/****f* VALUE/XMLRPC_GetVectorType
+ * NAME
+ *   XMLRPC_GetVectorType
+ * SYNOPSIS
+ *   XMLRPC_VECTOR_TYPE XMLRPC_GetVectorType(XMLRPC_VALUE value)
+ * FUNCTION
+ *   determine vector type of the XMLRPC_VALUE
+ * INPUTS
+ *   XMLRPC_VALUE of type xmlrpc_vector
+ * RESULT
+ *   vector type of value as enumerated by XMLRPC_VECTOR_TYPE.
+ *   xmlrpc_none if not a value.
+ * NOTES
+ *   xmlrpc_none is returned if value is not a vector
+ *   Deprecated for public use.  See XMLRPC_GetValueTypeEasy
+ * SEE ALSO
+ *   XMLRPC_SetIsVector ()
+ *   XMLRPC_GetValueType ()
+ *   XMLRPC_GetValueTypeEasy ()
+ * SOURCE
+ */
+XMLRPC_VECTOR_TYPE XMLRPC_GetVectorType(XMLRPC_VALUE value) {
+   return(value && value->v) ? value->v->type : xmlrpc_none;
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_GetValueTypeEasy
+ * NAME
+ *   XMLRPC_GetValueTypeEasy
+ * SYNOPSIS
+ *   XMLRPC_VALUE_TYPE_EASY XMLRPC_GetValueTypeEasy(XMLRPC_VALUE value)
+ * FUNCTION
+ *   determine data type of the XMLRPC_VALUE. includes vector types.
+ * INPUTS
+ *   XMLRPC_VALUE target of query
+ * RESULT
+ *   data type of value as enumerated by XMLRPC_VALUE_TYPE_EASY
+ *   xmlrpc_type_none if not a value.
+ * NOTES
+ *   all values are of type xmlrpc_type_empty until set. 
+ * SEE ALSO
+ *   XMLRPC_SetValue*
+ *   XMLRPC_CreateValue*
+ *   XMLRPC_Append*
+ * SOURCE
+ */
+XMLRPC_VALUE_TYPE_EASY XMLRPC_GetValueTypeEasy (XMLRPC_VALUE value) {
+       if (value) {
+               switch (value->type) {
+               case xmlrpc_vector:
+                       switch (value->v->type) {
+                       case xmlrpc_vector_none:
+                               return xmlrpc_type_none;
+                       case xmlrpc_vector_struct:
+                               return xmlrpc_type_struct;
+                       case xmlrpc_vector_mixed:
+                               return xmlrpc_type_mixed;
+                       case xmlrpc_vector_array:
+                               return xmlrpc_type_array;
+                       }
+               default:
+                       /* evil cast, but we know they are the same */
+                       return(XMLRPC_VALUE_TYPE_EASY) value->type;
+               }
+       }
+       return xmlrpc_none;
+}
+
+/*******/
+
+
+
+/*-*******************
+* Begin Server Funcs *
+*********************/
+
+
+/****f* VALUE/XMLRPC_ServerCreate
+ * NAME
+ *   XMLRPC_ServerCreate
+ * SYNOPSIS
+ *   XMLRPC_SERVER XMLRPC_ServerCreate()
+ * FUNCTION
+ *   Allocate/Init XMLRPC Server Resources.
+ * INPUTS
+ *   none
+ * RESULT
+ *   newly allocated XMLRPC_SERVER
+ * NOTES
+ * SEE ALSO
+ *   XMLRPC_ServerDestroy ()
+ *   XMLRPC_GetGlobalServer ()
+ * SOURCE
+ */
+XMLRPC_SERVER XMLRPC_ServerCreate() {
+   XMLRPC_SERVER server = calloc(1, sizeof(STRUCT_XMLRPC_SERVER));
+   if(server) {
+      Q_Init(&server->methodlist);
+      Q_Init(&server->docslist);
+
+      /* register system methods */
+      xsm_register(server);
+   }
+   return server;
+}
+
+/*******/
+
+/* Return global server.  Not locking! Not Thread Safe! */
+/****f* VALUE/XMLRPC_GetGlobalServer
+ * NAME
+ *   XMLRPC_GetGlobalServer
+ * SYNOPSIS
+ *   XMLRPC_SERVER XMLRPC_GetGlobalServer()
+ * FUNCTION
+ *   Allocates a global (process-wide) server, or returns pointer if pre-existing.
+ * INPUTS
+ *   none
+ * RESULT
+ *   pointer to global server, or 0 if error.
+ * NOTES
+ *   ***WARNING*** This function is not thread safe.  It is included only for the very lazy.
+ *   Multi-threaded programs that use this may experience problems.
+ * BUGS
+ *   There is currently no way to cleanup the global server gracefully.
+ * SEE ALSO
+ *   XMLRPC_ServerCreate ()
+ * SOURCE
+ */
+XMLRPC_SERVER XMLRPC_GetGlobalServer() {
+   static XMLRPC_SERVER xsServer = 0;
+   if(!xsServer) {
+      xsServer = XMLRPC_ServerCreate();
+   }
+   return xsServer;
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_ServerDestroy
+ * NAME
+ *   XMLRPC_ServerDestroy
+ * SYNOPSIS
+ *   void XMLRPC_ServerDestroy(XMLRPC_SERVER server)
+ * FUNCTION
+ *   Free Server Resources
+ * INPUTS
+ *   server     The server to be free'd
+ * RESULT
+ *   void
+ * NOTES
+ *   This frees the server struct and any methods that have been added.
+ * SEE ALSO
+ *   XMLRPC_ServerCreate ()
+ * SOURCE
+ */
+void XMLRPC_ServerDestroy(XMLRPC_SERVER server) {
+   if(server) {
+      doc_method* dm = Q_Head(&server->docslist);
+      server_method* sm = Q_Head(&server->methodlist);
+      while( dm ) {
+         my_free(dm);
+         dm = Q_Next(&server->docslist);
+      }
+      while( sm ) {
+         if(sm->name) {
+            my_free(sm->name);
+         }
+         if(sm->desc) {
+            XMLRPC_CleanupValue(sm->desc);
+         }
+         my_free(sm);
+         sm = Q_Next(&server->methodlist);
+      }
+      if(server->xIntrospection) {
+         XMLRPC_CleanupValue(server->xIntrospection);
+      }
+
+      Q_Destroy(&server->methodlist);
+      Q_Destroy(&server->docslist);
+      my_free(server);
+   }
+}
+
+/*******/
+
+
+/****f* VALUE/XMLRPC_ServerRegisterMethod
+ * NAME
+ *   XMLRPC_ServerRegisterMethod
+ * SYNOPSIS
+ *   void XMLRPC_ServerRegisterMethod(XMLRPC_SERVER server, const char *name, XMLRPC_Callback cb)
+ * FUNCTION
+ *   Register new XMLRPC method with server
+ * INPUTS
+ *   server     The XMLRPC_SERVER to register the method with
+ *   name       public name of the method
+ *   cb         C function that implements the method
+ * RESULT
+ *   int  - 1 if success, else 0
+ * NOTES
+ *   A C function must be registered for every "method" that the server recognizes.  The
+ *   method name is equivalent to <methodCall><name> method name </name></methodCall> in the
+ *   XML syntax.
+ * SEE ALSO
+ *   XMLRPC_ServerFindMethod ()
+ *   XMLRPC_ServerCallMethod ()
+ * SOURCE
+ */
+int XMLRPC_ServerRegisterMethod(XMLRPC_SERVER server, const char *name, XMLRPC_Callback cb) {
+   if(server && name && cb) {
+
+      server_method* sm = malloc(sizeof(server_method));
+      
+      if(sm) {
+         sm->name = strdup(name);
+         sm->method = cb;
+         sm->desc = NULL;
+
+         return Q_PushTail(&server->methodlist, sm);
+      }
+   }
+   return 0;
+}
+
+/*******/
+
+server_method* find_method(XMLRPC_SERVER server, const char* name) {
+   server_method* sm;
+
+   q_iter qi = Q_Iter_Head_F(&server->methodlist);
+
+   while( qi ) {
+      sm = Q_Iter_Get_F(qi);
+      if(sm && !strcmp(sm->name, name)) {
+         return sm;
+      }
+      qi = Q_Iter_Next_F(qi);
+   }
+   return NULL;
+}
+
+
+const char* type_to_str(XMLRPC_VALUE_TYPE type, XMLRPC_VECTOR_TYPE vtype) {
+    switch(type) {
+       case xmlrpc_none:
+          return "none";
+       case xmlrpc_empty:
+          return "empty";
+       case xmlrpc_nil:
+          return "nil";
+       case xmlrpc_base64:
+          return "base64";
+       case xmlrpc_boolean:
+          return "boolean";
+       case xmlrpc_datetime:
+          return "datetime";
+       case xmlrpc_double:
+          return "double";
+       case xmlrpc_int:
+          return "int";
+       case xmlrpc_string:
+          return "string";
+       case xmlrpc_vector:
+          switch(vtype) {
+             case xmlrpc_vector_none:
+                return "none";
+             case xmlrpc_vector_array:
+                return "array";
+             case xmlrpc_vector_mixed:
+                return "mixed vector (struct)";
+             case xmlrpc_vector_struct:
+                return "struct";
+          }
+    }
+    return "unknown";
+}
+
+/****f* VALUE/XMLRPC_ServerFindMethod
+ * NAME
+ *   XMLRPC_ServerFindMethod
+ * SYNOPSIS
+ *   XMLRPC_Callback XMLRPC_ServerFindMethod(XMLRPC_SERVER server, const char* callName)
+ * FUNCTION
+ *   retrieve C callback associated with a given method name.
+ * INPUTS       
+ *   server     The XMLRPC_SERVER the method is registered with
+ *   callName   the method to find
+ * RESULT
+ *   previously registered XMLRPC_Callback, or NULL
+ * NOTES
+ *   Typically, this is used to determine if a requested method exists, without actually calling it.
+ * SEE ALSO
+ *   XMLRPC_ServerCallMethod ()
+ *   XMLRPC_ServerRegisterMethod ()
+ * SOURCE
+ */
+XMLRPC_Callback XMLRPC_ServerFindMethod(XMLRPC_SERVER server, const char* callName) {
+   if(server && callName) {
+      q_iter qi = Q_Iter_Head_F(&server->methodlist);
+      while( qi ) {
+         server_method* sm = Q_Iter_Get_F(qi);
+         if(sm && !strcmp(sm->name, callName)) {
+            return sm->method;
+         }
+         qi = Q_Iter_Next_F(qi);
+      }
+   }
+   return NULL;
+}
+
+/*******/
+
+
+/* Call method specified in request */
+/****f* VALUE/XMLRPC_ServerCallMethod
+ * NAME
+ *   XMLRPC_ServerCallMethod
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_ServerCallMethod(XMLRPC_SERVER server, XMLRPC_REQUEST request, void* userData)
+ * FUNCTION
+ *
+ * INPUTS
+ *   server     The XMLRPC_SERVER the method is registered with
+ *   request    the request to handle
+ *   userData   any additional data to pass to the C callback, or NULL
+ * RESULT
+ *   XMLRPC_VALUE allocated by the callback, or NULL
+ * NOTES
+ *   It is typically the caller's responsibility to free the returned value.
+ *
+ *   Often the caller will want to serialize the result as XML, via 
+ *   XMLRPC_VALUE_To_XML () or XMLRPC_REQUEST_To_XML ()
+ * SEE ALSO
+ *   XMLRPC_ServerFindMethod ()
+ *   XMLRPC_ServerRegisterMethod ()
+ *   XMLRPC_CleanupValue ()
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_ServerCallMethod(XMLRPC_SERVER server, XMLRPC_REQUEST request, void* userData) {
+   XMLRPC_VALUE xReturn = NULL;
+
+   /* check for error set during request parsing / generation */
+   if(request && request->error) {
+      xReturn = XMLRPC_CopyValue(request->error);
+   }
+       else if (server && request) {
+               XMLRPC_Callback cb =
+               XMLRPC_ServerFindMethod (server, request->methodName.str);
+      if(cb) {
+         xReturn = cb(server, request, userData);
+      }
+      else {
+                       xReturn =
+                       XMLRPC_UtilityCreateFault (xmlrpc_error_unknown_method,
+                                                                                               request->methodName.str);
+      }
+   }
+   return xReturn;
+}
+
+/*******/
+
+/*-*****************
+* End server funcs *
+*******************/
+
+
+/*-***********************************
+* Begin XMLRPC General Options funcs *
+*************************************/
+
+/* For options used by XMLRPC_VALUE funcs that otherwise do not have
+ * parameters for options.  Kind of gross.  :(
+ */
+typedef struct _xmlrpc_options {
+   XMLRPC_CASE id_case;
+   XMLRPC_CASE_COMPARISON id_case_compare;
+}
+STRUCT_XMLRPC_OPTIONS, *XMLRPC_OPTIONS;
+
+static XMLRPC_OPTIONS XMLRPC_GetDefaultOptions() {
+   static STRUCT_XMLRPC_OPTIONS options = {
+      xmlrpc_case_exact,
+      xmlrpc_case_sensitive
+   };
+   return &options;
+}
+
+/****f* VALUE/XMLRPC_GetDefaultIdCase
+ * NAME
+ *   XMLRPC_GetDefaultIdCase
+ * SYNOPSIS
+ *   XMLRPC_CASE XMLRPC_GetDefaultIdCase()
+ * FUNCTION
+ *   Gets default case options used by XMLRPC_VALUE funcs
+ * INPUTS
+ *   none
+ * RESULT
+ *   XMLRPC_CASE
+ * BUGS
+ *   Nasty and gross.  Should be server specific, but that requires changing all
+ *  the XMLRPC_VALUE api's.
+ * SEE ALSO
+ *   XMLRPC_SetDefaultIdCase ()
+ * SOURCE
+ */
+XMLRPC_CASE XMLRPC_GetDefaultIdCase() {
+   XMLRPC_OPTIONS options = XMLRPC_GetDefaultOptions();
+   return options->id_case;
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_SetDefaultIdCase
+ * NAME
+ *   XMLRPC_SetDefaultIdCase
+ * SYNOPSIS
+ *   XMLRPC_CASE XMLRPC_SetDefaultIdCase(XMLRPC_CASE id_case)
+ * FUNCTION
+ *   Sets default case options used by XMLRPC_VALUE funcs
+ * INPUTS
+ *   id_case   case options as enumerated by XMLRPC_CASE
+ * RESULT
+ *   XMLRPC_CASE -- newly set option
+ * BUGS
+ *   Nasty and gross.  Should be server specific, but that requires changing all
+ *  the XMLRPC_VALUE api's.
+ * SEE ALSO
+ *   XMLRPC_GetDefaultIdCase ()
+ * SOURCE
+ */
+XMLRPC_CASE XMLRPC_SetDefaultIdCase(XMLRPC_CASE id_case) {
+   XMLRPC_OPTIONS options = XMLRPC_GetDefaultOptions();
+   options->id_case = id_case;
+   return options->id_case;
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_GetDefaultIdCaseComparison
+ * NAME
+ *   XMLRPC_GetDefaultIdCaseComparison
+ * SYNOPSIS
+ *   XMLRPC_CASE XMLRPC_GetDefaultIdCaseComparison( )
+ * FUNCTION
+ *   Gets default case comparison options used by XMLRPC_VALUE funcs
+ * INPUTS
+ *   none
+ * RESULT
+ *   XMLRPC_CASE_COMPARISON default
+ * BUGS
+ *   Nasty and gross.  Should be server specific, but that requires changing all
+ *  the XMLRPC_VALUE api's.
+ * SEE ALSO
+ *   XMLRPC_SetDefaultIdCaseComparison ()
+ * SOURCE
+ */
+XMLRPC_CASE_COMPARISON XMLRPC_GetDefaultIdCaseComparison() {
+   XMLRPC_OPTIONS options = XMLRPC_GetDefaultOptions();
+   return options->id_case_compare;
+}
+
+/*******/
+
+/****f* VALUE/XMLRPC_SetDefaultIdCaseComparison
+ * NAME
+ *   XMLRPC_SetDefaultIdCaseComparison
+ * SYNOPSIS
+ *   XMLRPC_CASE XMLRPC_SetDefaultIdCaseComparison( XMLRPC_CASE_COMPARISON id_case_compare )
+ * FUNCTION
+ *   Gets default case comparison options used by XMLRPC_VALUE funcs
+ * INPUTS
+ *   id_case_compare  case comparison rule to set as default
+ * RESULT
+ *   XMLRPC_CASE_COMPARISON newly set default
+ * BUGS
+ *   Nasty and gross.  Should be server specific, but that requires changing all
+ *  the XMLRPC_VALUE api's.
+ * SEE ALSO
+ *   XMLRPC_GetDefaultIdCaseComparison ()
+ * SOURCE
+ */
+XMLRPC_CASE_COMPARISON XMLRPC_SetDefaultIdCaseComparison(XMLRPC_CASE_COMPARISON id_case_compare) {
+   XMLRPC_OPTIONS options = XMLRPC_GetDefaultOptions();
+   options->id_case_compare = id_case_compare;
+   return options->id_case_compare;
+}
+
+/*******/
+
+/*-*********************************
+* End XMLRPC General Options funcs *
+***********************************/
+
+
+/*-******************
+* Fault API funcs   *
+********************/
+
+/****f* UTILITY/XMLRPC_UtilityCreateFault
+ * NAME
+ *   XMLRPC_UtilityCreateFault
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_UtilityCreateFault( int fault_code, const char* fault_string )
+ * FUNCTION
+ *   generates a struct containing a string member with id "faultString" and an int member
+ *   with id "faultCode". When using the xmlrpc xml serialization, these will be translated
+ *   to <fault><value><struct>... format.
+ * INPUTS
+ *   fault_code     application specific error code. can be 0.
+ *   fault_string   application specific error string.  cannot be null.
+ * RESULT
+ *   XMLRPC_VALUE a newly created struct vector representing the error, or null on error.
+ * NOTES
+ *   This is a utility function. xmlrpc "faults" are not directly represented in this xmlrpc
+ *   API or data structures. It is the author's view, that this API is intended for simple
+ *   data types, and a "fault" is a complex data type consisting of multiple simple data
+ *   types.  This function is provided for convenience only, the same result could be
+ *   achieved directly by the application.
+ *
+ *   This function now supports some "standardized" fault codes, as specified at.
+ *   http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php.
+ *   If one of these fault codes is received, the description string will automatically
+ *   be prefixed with a standard error string and 2 newlines.  
+ *
+ *   The actual transformation between this complex type and the xml "<fault>" element takes
+ *   place in the xmlrpc to xml serialization layer.  This step is not performed when using the
+ *   simplerpc serialization, meaning that there will be no "<fault>" element in that
+ *   serialization. There will simply be a standard struct with 2 child elements.  
+ *   imho, the "<fault>" element is unnecessary and/or out of place as part of the standard API.
+ *
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_UtilityCreateFault(int fault_code, const char* fault_string) {
+   XMLRPC_VALUE xOutput = NULL;
+
+   char* string = NULL;
+   simplestring description;
+   simplestring_init(&description);
+
+   switch (fault_code) {
+       case xmlrpc_error_parse_xml_syntax:
+               string = xmlrpc_error_parse_xml_syntax_str;
+               break;
+       case xmlrpc_error_parse_unknown_encoding:
+               string = xmlrpc_error_parse_unknown_encoding_str;
+               break;
+       case xmlrpc_error_parse_bad_encoding:
+               string = xmlrpc_error_parse_bad_encoding_str;
+               break;
+       case xmlrpc_error_invalid_xmlrpc:
+               string = xmlrpc_error_invalid_xmlrpc_str;
+               break;
+       case xmlrpc_error_unknown_method:
+               string = xmlrpc_error_unknown_method_str;
+               break;
+       case xmlrpc_error_invalid_params:
+               string = xmlrpc_error_invalid_params_str;
+               break;
+       case xmlrpc_error_internal_server:
+               string = xmlrpc_error_internal_server_str;
+               break;
+       case xmlrpc_error_application:
+               string = xmlrpc_error_application_str;
+               break;
+       case xmlrpc_error_system:
+               string = xmlrpc_error_system_str;
+               break;
+       case xmlrpc_error_transport:
+               string = xmlrpc_error_transport_str;
+               break;
+   }
+
+   simplestring_add(&description, string);
+
+   if(string && fault_string) {
+      simplestring_add(&description, "\n\n");
+   }
+   simplestring_add(&description, fault_string);
+
+
+   if(description.len) {
+      xOutput = XMLRPC_CreateVector(NULL, xmlrpc_vector_struct);
+
+               XMLRPC_VectorAppendString (xOutput, "faultString", description.str,
+                                                                                       description.len);
+      XMLRPC_VectorAppendInt(xOutput, "faultCode", fault_code);
+   }
+
+   simplestring_free(&description);
+
+   return xOutput;
+}
+
+/*******/
+
+
+/****f* FAULT/XMLRPC_ValueIsFault
+ * NAME
+ *   XMLRPC_ValueIsFault
+ * SYNOPSIS
+ *   int XMLRPC_ValueIsFault (XMLRPC_VALUE value)
+ * FUNCTION
+ *   Determines if a value encapsulates a fault "object"
+ * INPUTS
+ *   value  any XMLRPC_VALUE
+ * RESULT
+ *   1 if it is a fault, else 0
+ * SEE ALSO
+ *   XMLRPC_ResponseIsFault ()
+ * SOURCE
+ */
+int XMLRPC_ValueIsFault (XMLRPC_VALUE value) {
+   if( XMLRPC_VectorGetValueWithID(value, "faultCode") &&
+       XMLRPC_VectorGetValueWithID(value, "faultString") ) {
+      return 1;
+   }
+   return 0;
+}
+/*******/
+
+
+/****f* FAULT/XMLRPC_ResponseIsFault
+ * NAME
+ *   XMLRPC_ResponseIsFault
+ * SYNOPSIS
+ *   int XMLRPC_ResponseIsFault (XMLRPC_REQUEST response)
+ * FUNCTION
+ *   Determines if a response contains an encapsulated fault "object"
+ * INPUTS
+ *   value  any XMLRPC_REQUEST. typically of type xmlrpc_request_response
+ * RESULT
+ *   1 if it contains a fault, else 0
+ * SEE ALSO
+ *   XMLRPC_ValueIsFault ()
+ * SOURCE
+ */
+int XMLRPC_ResponseIsFault(XMLRPC_REQUEST response) {
+   return XMLRPC_ValueIsFault( XMLRPC_RequestGetData(response) );
+}
+
+/*******/
+
+/****f* FAULT/XMLRPC_GetValueFaultCode
+ * NAME
+ *   XMLRPC_GetValueFaultCode
+ * SYNOPSIS
+ *   int XMLRPC_GetValueFaultCode (XMLRPC_VALUE value)
+ * FUNCTION
+ *   returns fault code from a struct, if any
+ * INPUTS
+ *   value  XMLRPC_VALUE of type xmlrpc_vector_struct.
+ * RESULT
+ *   fault code, else 0.
+ * BUGS
+ *   impossible to distinguish faultCode == 0 from faultCode not present.
+ * SEE ALSO
+ *   XMLRPC_GetResponseFaultCode ()
+ * SOURCE
+ */
+int XMLRPC_GetValueFaultCode (XMLRPC_VALUE value) {
+   return XMLRPC_VectorGetIntWithID(value, "faultCode");
+}
+
+/*******/
+
+/****f* FAULT/XMLRPC_GetResponseFaultCode
+ * NAME
+ *   XMLRPC_GetResponseFaultCode
+ * SYNOPSIS
+ *   int XMLRPC_GetResponseFaultCode(XMLRPC_REQUEST response)
+ * FUNCTION
+ *   returns fault code from a response, if any
+ * INPUTS
+ *   response  XMLRPC_REQUEST. typically of type xmlrpc_request_response.
+ * RESULT
+ *   fault code, else 0.
+ * BUGS
+ *   impossible to distinguish faultCode == 0 from faultCode not present.
+ * SEE ALSO
+ *   XMLRPC_GetValueFaultCode ()
+ * SOURCE
+ */
+int XMLRPC_GetResponseFaultCode(XMLRPC_REQUEST response) {
+   return XMLRPC_GetValueFaultCode( XMLRPC_RequestGetData(response) );
+}
+
+/*******/
+
+
+/****f* FAULT/XMLRPC_GetValueFaultString
+ * NAME
+ *   XMLRPC_GetValueFaultString
+ * SYNOPSIS
+ *   const char* XMLRPC_GetValueFaultString (XMLRPC_VALUE value)
+ * FUNCTION
+ *   returns fault string from a struct, if any
+ * INPUTS
+ *   value  XMLRPC_VALUE of type xmlrpc_vector_struct.
+ * RESULT
+ *   fault string, else 0.
+ * SEE ALSO
+ *   XMLRPC_GetResponseFaultString ()
+ * SOURCE
+ */
+const char* XMLRPC_GetValueFaultString (XMLRPC_VALUE value) {
+   return XMLRPC_VectorGetStringWithID(value, "faultString");
+}
+
+/*******/
+
+/****f* FAULT/XMLRPC_GetResponseFaultString
+ * NAME
+ *   XMLRPC_GetResponseFaultString
+ * SYNOPSIS
+ *   const char* XMLRPC_GetResponseFaultString (XMLRPC_REQUEST response)
+ * FUNCTION
+ *   returns fault string from a response, if any
+ * INPUTS
+ *   response  XMLRPC_REQUEST. typically of type xmlrpc_request_response.
+ * RESULT
+ *   fault string, else 0.
+ * SEE ALSO
+ *   XMLRPC_GetValueFaultString ()
+ * SOURCE
+ */
+const char* XMLRPC_GetResponseFaultString (XMLRPC_REQUEST response) {
+   return XMLRPC_GetValueFaultString( XMLRPC_RequestGetData(response) );
+}
+
+/*******/
+
+
+/*-******************
+* Utility API funcs *
+********************/
+
+
+/****f* UTILITY/XMLRPC_Free
+ * NAME
+ *   XMLRPC_Free
+ * SYNOPSIS
+ *   void XMLRPC_Free(void* mem)
+ * FUNCTION
+ *   frees a block of memory allocated by xmlrpc. 
+ * INPUTS
+ *   mem    memory to free
+ * RESULT
+ *   void
+ * NOTES
+ *   Useful for OS's where memory must be free'd
+ *   in the same library in which it is allocated.
+ * SOURCE
+ */
+void XMLRPC_Free(void* mem) {
+   my_free(mem);
+}
+
+/*******/
+
+
+/****f* UTILITY/XMLRPC_GetVersionString
+ * NAME
+ *   XMLRPC_GetVersionString
+ * SYNOPSIS
+ *   const char* XMLRPC_GetVersionString()
+ * FUNCTION
+ *   returns library version string
+ * INPUTS
+ *   
+ * RESULT
+ *   const char* 
+ * NOTES
+ * SOURCE
+ */
+const char*  XMLRPC_GetVersionString() {
+   return XMLRPC_VERSION_STR;
+}
+
+/*******/
+
+
+/*-**********************
+* End Utility API funcs *
+************************/
diff --git a/trunk/php/xmlrpc/libxmlrpc/xmlrpc.h b/trunk/php/xmlrpc/libxmlrpc/xmlrpc.h
new file mode 100644 (file)
index 0000000..eead11c
--- /dev/null
@@ -0,0 +1,455 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2000 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+#ifndef XMLRPC_ALREADY_INCLUDED
+#define XMLRPC_ALREADY_INCLUDED 1
+
+/* includes */
+#include "xml_element.h"
+#include <time.h> /* for time_t */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* allow version to be specified via compile line define */
+#ifndef XMLRPC_LIB_VERSION
+ #define XMLRPC_LIB_VERSION "0.51"
+#endif
+
+/* this number, representing the date, must be increased each time the API changes */
+#define XMLRPC_API_NO 20020623
+
+/* this string should be changed with each packaged release */
+#define XMLRPC_VERSION_STR "xmlrpc-epi v. " XMLRPC_LIB_VERSION
+
+/* where to find more info. shouldn't need to change much */
+#define XMLRPC_HOME_PAGE_STR "http://xmlprc-epi.sourceforge.net/"
+
+
+/****d* VALUE/XMLRPC_VALUE_TYPE
+ * NAME
+ *   XMLRPC_VALUE_TYPE
+ * NOTES
+ *   Defines data types for XMLRPC_VALUE
+ *   Deprecated for public use.  See XMLRPC_VALUE_TYPE_EASY
+ * SEE ALSO
+ *   XMLRPC_VECTOR_TYPE
+ *   XMLRPC_REQUEST_TYPE
+ * SOURCE
+ */
+typedef enum _XMLRPC_VALUE_TYPE {
+   xmlrpc_none,                   /* not a value                    */
+   xmlrpc_empty,                  /* empty value                    */
+   xmlrpc_nil,                    /* null value, eg NULL            */
+   xmlrpc_base64,                 /* base64 value, eg binary data   */
+   xmlrpc_boolean,                /* boolean  [0 | 1]               */
+   xmlrpc_datetime,               /* datetime [ISO8601 | time_t]    */
+   xmlrpc_double,                 /* double / floating point        */
+   xmlrpc_int,                    /* integer                        */
+   xmlrpc_string,                 /* string                         */
+   xmlrpc_vector                  /* vector, aka list, array        */
+} XMLRPC_VALUE_TYPE;
+/*******/
+
+/****d* VALUE/XMLRPC_VECTOR_TYPE
+ * NAME
+ *   XMLRPC_VECTOR_TYPE
+ * NOTES
+ *   Defines data types for XMLRPC_VECTOR.
+ *   Deprecated for public use.  See XMLRPC_VALUE_TYPE_EASY
+ * SEE ALSO
+ *   XMLRPC_VALUE_TYPE
+ *   XMLRPC_REQUEST_TYPE
+ * SOURCE
+ */
+typedef enum _XMLRPC_VECTOR_TYPE {
+   xmlrpc_vector_none,            /* not an array                   */
+   xmlrpc_vector_array,           /* no values may have key names   */
+   xmlrpc_vector_mixed,           /* some values may have key names */
+   xmlrpc_vector_struct           /* all values must have key names */
+} XMLRPC_VECTOR_TYPE;
+/*******/
+
+/****d* VALUE/XMLRPC_VALUE_TYPE_EASY
+ * NAME
+ *   XMLRPC_VALUE_TYPE_EASY
+ * NOTES
+ *   Defines data types for XMLRPC_VALUE, including vector types.
+ * SEE ALSO
+ *   XMLRPC_VECTOR_TYPE
+ *   XMLRPC_REQUEST_TYPE
+ * SOURCE
+ */
+typedef enum _XMLRPC_VALUE_TYPE_EASY {
+   xmlrpc_type_none,               /* not a value                    */
+   xmlrpc_type_empty,              /* empty value, eg NULL           */
+   xmlrpc_type_base64,             /* base64 value, eg binary data   */
+   xmlrpc_type_boolean,            /* boolean  [0 | 1]               */
+   xmlrpc_type_datetime,           /* datetime [ISO8601 | time_t]    */
+   xmlrpc_type_double,             /* double / floating point        */
+   xmlrpc_type_int,                /* integer                        */
+   xmlrpc_type_string,             /* string                         */
+/* -- IMPORTANT: identical to XMLRPC_VALUE_TYPE to this point. --   */
+       xmlrpc_type_array,              /* vector array                   */
+       xmlrpc_type_mixed,              /* vector mixed                   */
+       xmlrpc_type_struct              /* vector struct                  */
+} XMLRPC_VALUE_TYPE_EASY;
+/*******/
+
+
+/****d* VALUE/XMLRPC_REQUEST_TYPE
+ * NAME
+ *   XMLRPC_REQUEST_TYPE
+ * NOTES
+ *   Defines data types for XMLRPC_REQUEST
+ * SEE ALSO
+ *   XMLRPC_VALUE_TYPE
+ *   XMLRPC_VECTOR_TYPE
+ * SOURCE
+ */
+typedef enum _xmlrpc_request_type {
+   xmlrpc_request_none,          /* not a valid request            */
+   xmlrpc_request_call,          /* calling/invoking a method      */
+   xmlrpc_request_response,      /* responding to a method call    */
+} XMLRPC_REQUEST_TYPE;
+/*******/
+
+/****d* VALUE/XMLRPC_ERROR_CODE
+ * NAME
+ *   XMLRPC_ERROR_CODE
+ * NOTES
+ *   All existing error codes
+ * SEE ALSO
+ *   XMLRPC_REQUEST_ERROR
+ * SOURCE
+ */
+typedef enum _xmlrpc_error_code {
+   xmlrpc_error_none                      = 0,              /* not an error                                      */
+   xmlrpc_error_parse_xml_syntax          = -32700,
+   xmlrpc_error_parse_unknown_encoding    = -32701,
+   xmlrpc_error_parse_bad_encoding        = -32702,
+   xmlrpc_error_invalid_xmlrpc            = -32600,
+   xmlrpc_error_unknown_method            = -32601,
+   xmlrpc_error_invalid_params            = -32602,
+   xmlrpc_error_internal_server           = -32603,
+   xmlrpc_error_application               = -32500,
+   xmlrpc_error_system                    = -32400,
+   xmlrpc_error_transport                 = -32300
+} XMLRPC_ERROR_CODE;
+/******/
+
+#define xmlrpc_error_parse_xml_syntax_str       "parse error. not well formed."
+#define xmlrpc_error_parse_unknown_encoding_str "parse error. unknown encoding"
+#define xmlrpc_error_parse_bad_encoding_str     "parse error. invalid character for encoding"
+#define xmlrpc_error_invalid_xmlrpc_str         "server error. xml-rpc not conforming to spec"
+#define xmlrpc_error_unknown_method_str         "server error. method not found."
+#define xmlrpc_error_invalid_params_str         "server error. invalid method parameters"
+#define xmlrpc_error_internal_server_str        "server error. internal xmlrpc library error"
+#define xmlrpc_error_application_str            "application error."
+#define xmlrpc_error_system_str                 "system error."
+#define xmlrpc_error_transport_str              "transport error."
+
+
+
+/****d* VALUE/XMLRPC_VERSION
+ * NAME
+ *   XMLRPC_VERSION
+ * NOTES
+ *   Defines xml vocabulary used for generated xml
+ * SEE ALSO
+ *   XMLRPC_REQUEST_OUTPUT_OPTIONS
+ *   XMLRPC_REQUEST_To_XML ()
+ * SOURCE
+ */
+typedef enum _xmlrpc_version {
+   xmlrpc_version_none = 0,      /* not a recognized vocabulary    */ 
+   xmlrpc_version_1_0 = 1,       /* xmlrpc 1.0 standard vocab      */ 
+   xmlrpc_version_simple = 2,    /* alt more readable vocab        */ 
+   xmlrpc_version_danda = 2,     /* same as simple. legacy         */
+       xmlrpc_version_soap_1_1 = 3     /* SOAP. version 1.1              */
+} XMLRPC_VERSION;
+/******/
+
+/****s* VALUE/XMLRPC_REQUEST_OUTPUT_OPTIONS
+ * NAME
+ *   XMLRPC_REQUEST_OUTPUT_OPTIONS
+ * NOTES
+ *   Defines output options for generated xml
+ * SEE ALSO
+ *   XMLRPC_VERSION
+ *   XML_ELEM_OUTPUT_OPTIONS
+ *   XMLRPC_REQUEST_To_XML ()
+ * SOURCE
+ */
+typedef struct _xmlrpc_request_output_options {
+   STRUCT_XML_ELEM_OUTPUT_OPTIONS xml_elem_opts;  /* xml_element specific output options */
+   XMLRPC_VERSION                 version;        /* xml vocabulary to use               */
+} STRUCT_XMLRPC_REQUEST_OUTPUT_OPTIONS, *XMLRPC_REQUEST_OUTPUT_OPTIONS;
+/******/
+
+/****s* VALUE/XMLRPC_REQUEST_INPUT_OPTIONS
+ * NAME
+ *   XMLRPC_REQUEST_INPUT_OPTIONS
+ * NOTES
+ *   Defines options for reading in xml data
+ * SEE ALSO
+ *   XMLRPC_VERSION
+ *   XML_ELEM_INPUT_OPTIONS
+ *   XMLRPC_REQUEST_From_XML ()
+ * SOURCE
+ */
+typedef struct _xmlrpc_request_input_options {
+   STRUCT_XML_ELEM_INPUT_OPTIONS  xml_elem_opts;  /* xml_element specific output options */
+} STRUCT_XMLRPC_REQUEST_INPUT_OPTIONS, *XMLRPC_REQUEST_INPUT_OPTIONS;
+/******/
+
+/****s* VALUE/XMLRPC_ERROR
+ * NAME
+ *   XMLRPC_ERROR
+ * NOTES
+ *   For the reporting and handling of errors
+ * SOURCE
+ */
+typedef struct _xmlrpc_error {
+   XMLRPC_ERROR_CODE      code;
+   STRUCT_XML_ELEM_ERROR  xml_elem_error;  /* xml_element errors (parser errors) */
+} STRUCT_XMLRPC_ERROR, *XMLRPC_ERROR;
+/******/
+
+
+/****d* VALUE/XMLRPC_CASE_COMPARISON
+ * NAME
+ *   XMLRPC_CASE_COMPARISON
+ * NOTES
+ *   Defines case comparison options for XMLRPC_VALUE/VECTOR API's
+ * SEE ALSO
+ *   XMLRPC_CASE
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+typedef enum _xmlrpc_case_comparison {
+   xmlrpc_case_insensitive,      /* use case-insensitive compare */
+   xmlrpc_case_sensitive         /* use case-sensitive compare   */
+} XMLRPC_CASE_COMPARISON;
+/******/
+
+/****d* VALUE/XMLRPC_CASE
+ * NAME
+ *   XMLRPC_CASE
+ * NOTES
+ *   Defines case behavior when setting IDs in XMLRPC_VALUE API's
+ * SEE ALSO
+ *   XMLRPC_CASE_COMPARISON
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+typedef enum _xmlrpc_case {
+   xmlrpc_case_exact,            /* leave case alone             */
+   xmlrpc_case_lower,            /* lower-case id                */
+   xmlrpc_case_upper             /* upper-case id                */
+} XMLRPC_CASE;
+/******/
+
+/* if you don't like these defaults, you can set them with XMLRPC_SetDefaultIdCase*() */
+#define XMLRPC_DEFAULT_ID_CASE              XMLRPC_GetDefaultIdCase()
+#define XMLRPC_DEFAULT_ID_CASE_SENSITIVITY  XMLRPC_GetDefaultIdCaseComparison()
+
+/* opaque (non-public) types. defined locally in xmlrpc.c */
+typedef struct _xmlrpc_request* XMLRPC_REQUEST;
+typedef struct _xmlrpc_server* XMLRPC_SERVER;
+typedef struct _xmlrpc_value* XMLRPC_VALUE;
+
+/****d* VALUE/XMLRPC_Callback
+ * NAME
+ *   XMLRPC_Callback
+ * NOTES
+ *   Function prototype for user defined method handlers (callbacks).
+ * SEE ALSO
+ *   XMLRPC_ServerRegisterMethod ()
+ *   XMLRPC_ServerCallMethod ()
+ *   XMLRPC_REQUEST
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+typedef XMLRPC_VALUE (*XMLRPC_Callback)(XMLRPC_SERVER server, XMLRPC_REQUEST input, void* userData);
+/******/
+
+/* ID Case Defaults */
+XMLRPC_CASE XMLRPC_GetDefaultIdCase(void);
+XMLRPC_CASE XMLRPC_SetDefaultIdCase(XMLRPC_CASE id_case);
+XMLRPC_CASE_COMPARISON XMLRPC_GetDefaultIdCaseComparison(void);
+XMLRPC_CASE_COMPARISON XMLRPC_SetDefaultIdCaseComparison(XMLRPC_CASE_COMPARISON id_case);
+
+/* Vector manipulation */
+int XMLRPC_VectorSize(XMLRPC_VALUE value);
+XMLRPC_VALUE XMLRPC_VectorRewind(XMLRPC_VALUE value);
+XMLRPC_VALUE XMLRPC_VectorNext(XMLRPC_VALUE value);
+int XMLRPC_SetIsVector(XMLRPC_VALUE value, XMLRPC_VECTOR_TYPE type);
+int XMLRPC_AddValueToVector(XMLRPC_VALUE target, XMLRPC_VALUE source);
+int XMLRPC_AddValuesToVector(XMLRPC_VALUE target, ...);
+int XMLRPC_VectorRemoveValue(XMLRPC_VALUE vector, XMLRPC_VALUE value);
+XMLRPC_VALUE XMLRPC_VectorGetValueWithID_Case(XMLRPC_VALUE vector, const char* id, XMLRPC_CASE_COMPARISON id_case);
+
+
+/* Create values */
+XMLRPC_VALUE XMLRPC_CreateValueBoolean(const char* id, int truth);
+XMLRPC_VALUE XMLRPC_CreateValueBase64(const char* id, const char* s, int len);
+XMLRPC_VALUE XMLRPC_CreateValueDateTime(const char* id, time_t time);
+XMLRPC_VALUE XMLRPC_CreateValueDateTime_ISO8601(const char* id, const char *s);
+XMLRPC_VALUE XMLRPC_CreateValueDouble(const char* id, double f);
+XMLRPC_VALUE XMLRPC_CreateValueInt(const char* id, int i);
+XMLRPC_VALUE XMLRPC_CreateValueString(const char* id, const char* s, int len);
+XMLRPC_VALUE XMLRPC_CreateValueEmpty(void);
+XMLRPC_VALUE XMLRPC_CreateVector(const char* id, XMLRPC_VECTOR_TYPE type);
+
+/* Cleanup values */
+void XMLRPC_CleanupValue(XMLRPC_VALUE value);
+
+/* Request error */
+XMLRPC_VALUE XMLRPC_RequestSetError (XMLRPC_REQUEST request, XMLRPC_VALUE error);
+XMLRPC_VALUE XMLRPC_RequestGetError (XMLRPC_REQUEST request);
+
+/* Copy values */
+XMLRPC_VALUE XMLRPC_CopyValue(XMLRPC_VALUE value);
+XMLRPC_VALUE XMLRPC_DupValueNew(XMLRPC_VALUE xSource);
+
+/* Set Values */
+void XMLRPC_SetValueDateTime(XMLRPC_VALUE value, time_t time);
+void XMLRPC_SetValueDateTime_ISO8601(XMLRPC_VALUE value, const char* s);
+void XMLRPC_SetValueDouble(XMLRPC_VALUE value, double val);
+void XMLRPC_SetValueInt(XMLRPC_VALUE value, int val);
+void XMLRPC_SetValueBoolean(XMLRPC_VALUE value, int val);
+const char *XMLRPC_SetValueString(XMLRPC_VALUE value, const char* s, int len);
+void XMLRPC_SetValueBase64(XMLRPC_VALUE value, const char* s, int len);
+const char *XMLRPC_SetValueID_Case(XMLRPC_VALUE value, const char* id, int len, XMLRPC_CASE id_case);
+#define XMLRPC_SetValueID(value, id, len) XMLRPC_SetValueID_Case(value, id, len, XMLRPC_DEFAULT_ID_CASE)
+
+/* Get Values */
+const char* XMLRPC_GetValueString(XMLRPC_VALUE value);
+int XMLRPC_GetValueStringLen(XMLRPC_VALUE value);
+int XMLRPC_GetValueInt(XMLRPC_VALUE value);
+int XMLRPC_GetValueBoolean(XMLRPC_VALUE value);
+double XMLRPC_GetValueDouble(XMLRPC_VALUE value);
+const char* XMLRPC_GetValueBase64(XMLRPC_VALUE value);
+time_t XMLRPC_GetValueDateTime(XMLRPC_VALUE value);
+const char* XMLRPC_GetValueDateTime_ISO8601(XMLRPC_VALUE value);
+const char* XMLRPC_GetValueID(XMLRPC_VALUE value);
+
+/* Type introspection */
+XMLRPC_VALUE_TYPE XMLRPC_GetValueType(XMLRPC_VALUE v);
+XMLRPC_VALUE_TYPE_EASY XMLRPC_GetValueTypeEasy(XMLRPC_VALUE v);
+XMLRPC_VECTOR_TYPE XMLRPC_GetVectorType(XMLRPC_VALUE v);
+
+/* Parsing and Creating XML */
+XMLRPC_REQUEST XMLRPC_REQUEST_FromXML(const char* in_buf, int len, XMLRPC_REQUEST_INPUT_OPTIONS in_options);
+XMLRPC_VALUE XMLRPC_VALUE_FromXML(const char* in_buf, int len, XMLRPC_REQUEST_INPUT_OPTIONS in_options);
+char* XMLRPC_REQUEST_ToXML(XMLRPC_REQUEST request, int *buf_len);
+char* XMLRPC_VALUE_ToXML(XMLRPC_VALUE val, int* buf_len);
+
+/* Request manipulation funcs */
+const char* XMLRPC_RequestSetMethodName(XMLRPC_REQUEST request, const char* methodName);
+const char* XMLRPC_RequestGetMethodName(XMLRPC_REQUEST request);
+XMLRPC_REQUEST XMLRPC_RequestNew(void);
+void XMLRPC_RequestFree(XMLRPC_REQUEST request, int bFreeIO);
+XMLRPC_REQUEST_OUTPUT_OPTIONS XMLRPC_RequestSetOutputOptions(XMLRPC_REQUEST request, XMLRPC_REQUEST_OUTPUT_OPTIONS output);
+XMLRPC_REQUEST_OUTPUT_OPTIONS XMLRPC_RequestGetOutputOptions(XMLRPC_REQUEST request);
+XMLRPC_VALUE XMLRPC_RequestSetData(XMLRPC_REQUEST request, XMLRPC_VALUE data);
+XMLRPC_VALUE XMLRPC_RequestGetData(XMLRPC_REQUEST request);
+XMLRPC_REQUEST_TYPE XMLRPC_RequestSetRequestType(XMLRPC_REQUEST request, XMLRPC_REQUEST_TYPE type);
+XMLRPC_REQUEST_TYPE XMLRPC_RequestGetRequestType(XMLRPC_REQUEST request);
+
+/* Server Creation/Destruction; Method Registration and Invocation */
+XMLRPC_SERVER XMLRPC_ServerCreate(void);
+XMLRPC_SERVER XMLRPC_GetGlobalServer(void);   /* better to use XMLRPC_ServerCreate if you can */
+void XMLRPC_ServerDestroy(XMLRPC_SERVER server);
+int XMLRPC_ServerRegisterMethod(XMLRPC_SERVER server, const char *name, XMLRPC_Callback cb);
+XMLRPC_Callback XMLRPC_ServerFindMethod(XMLRPC_SERVER server, const char* callName);
+XMLRPC_VALUE XMLRPC_ServerCallMethod(XMLRPC_SERVER server, XMLRPC_REQUEST request, void* userData);
+
+#include "xmlrpc_introspection.h"
+
+/* Fault interrogation funcs */
+int XMLRPC_ValueIsFault (XMLRPC_VALUE value);
+int XMLRPC_ResponseIsFault(XMLRPC_REQUEST response);
+int XMLRPC_GetValueFaultCode (XMLRPC_VALUE value);
+int XMLRPC_GetResponseFaultCode(XMLRPC_REQUEST response);
+const char* XMLRPC_GetValueFaultString (XMLRPC_VALUE value);
+const char* XMLRPC_GetResponseFaultString (XMLRPC_REQUEST response);
+
+
+/* Public Utility funcs */
+XMLRPC_VALUE XMLRPC_UtilityCreateFault(int fault_code, const char* fault_string);
+void XMLRPC_Free(void* mem);
+const char*  XMLRPC_GetVersionString(void);
+
+/****d* VALUE/XMLRPC_MACROS
+ * NAME
+ *   Some Helpful Macros
+ * NOTES
+ *   Some macros for making life easier.  Should be self-explanatory.
+ * SEE ALSO
+ *   XMLRPC_AddValueToVector ()
+ *   XMLRPC_VectorGetValueWithID_Case ()
+ *   XMLRPC_VALUE
+ * SOURCE
+ */
+
+/* Append values to vector */
+#define XMLRPC_VectorAppendString(vector, id, s, len) XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueString(id, s, len))
+#define XMLRPC_VectorAppendBase64(vector, id, s, len) XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueBase64(id, s, len))
+#define XMLRPC_VectorAppendDateTime(vector, id, time) XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueDateTime(id, time))
+#define XMLRPC_VectorAppendDateTime_ISO8601(vector, id, s) XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueDateTime_ISO8601(id, s))
+#define XMLRPC_VectorAppendDouble(vector, id, f) XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueDouble(id, f))
+#define XMLRPC_VectorAppendInt(vector, id, i) XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueInt(id, i))
+#define XMLRPC_VectorAppendBoolean(vector, id, i) XMLRPC_AddValueToVector(vector, XMLRPC_CreateValueBoolean(id, i))
+
+/* Get named values from vector */
+#define XMLRPC_VectorGetValueWithID(vector, id) XMLRPC_VectorGetValueWithID_Case(vector, id, XMLRPC_DEFAULT_ID_CASE_SENSITIVITY)
+#define XMLRPC_VectorGetStringWithID(vector, id) XMLRPC_GetValueString(XMLRPC_VectorGetValueWithID(vector, id))
+#define XMLRPC_VectorGetBase64WithID(vector, id) XMLRPC_GetValueBase64(XMLRPC_VectorGetValueWithID(vector, id))
+#define XMLRPC_VectorGetDateTimeWithID(vector, id) XMLRPC_GetValueDateTime(XMLRPC_VectorGetValueWithID(vector, id))
+#define XMLRPC_VectorGetDoubleWithID(vector, id) XMLRPC_GetValueDouble(XMLRPC_VectorGetValueWithID(vector, id))
+#define XMLRPC_VectorGetIntWithID(vector, id) XMLRPC_GetValueInt(XMLRPC_VectorGetValueWithID(vector, id))
+#define XMLRPC_VectorGetBooleanWithID(vector, id) XMLRPC_GetValueBoolean(XMLRPC_VectorGetValueWithID(vector, id))
+
+/******/
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* not XMLRPC_ALREADY_INCLUDED */
+
+
+
diff --git a/trunk/php/xmlrpc/libxmlrpc/xmlrpc.m4 b/trunk/php/xmlrpc/libxmlrpc/xmlrpc.m4
new file mode 100644 (file)
index 0000000..87da92d
--- /dev/null
@@ -0,0 +1,12 @@
+AC_DEFUN([XMLRPC_CHECKS],[     
+
+AC_REQUIRE([AC_PROG_CC])
+AC_REQUIRE([AC_PROG_LN_S])
+AC_REQUIRE([AC_PROG_RANLIB])
+
+AC_DEFINE(UNDEF_THREADS_HACK,,[ ])
+
+XMLRPC_HEADER_CHECKS
+XMLRPC_TYPE_CHECKS
+XMLRPC_FUNCTION_CHECKS
+])
diff --git a/trunk/php/xmlrpc/libxmlrpc/xmlrpc_introspection.c b/trunk/php/xmlrpc/libxmlrpc/xmlrpc_introspection.c
new file mode 100644 (file)
index 0000000..589ff8e
--- /dev/null
@@ -0,0 +1,604 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2001 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+
+/****h* ABOUT/xmlrpc_introspection
+ * AUTHOR
+ *   Dan Libby, aka danda  (dan@libby.com)
+ * HISTORY
+ *   $Log: xmlrpc_introspection.c,v $
+ *   Revision 1.4  2003/12/16 21:00:21  sniper
+ *   Fix some compile warnings (patch by Joe Orton)
+ *
+ *   Revision 1.3  2002/07/05 04:43:53  danda
+ *   merged in updates from SF project.  bring php repository up to date with xmlrpc-epi version 0.51
+ *
+ *   Revision 1.9  2001/09/29 21:58:05  danda
+ *   adding cvs log to history section
+ *
+ *   4/10/2001 -- danda -- initial introspection support
+ * TODO
+ * NOTES
+ *******/
+
+
+#ifdef _WIN32
+#include "xmlrpc_win32.h"
+#endif
+#include "queue.h"
+#include "xmlrpc.h"
+#include "xmlrpc_private.h"
+#include "xmlrpc_introspection_private.h"
+#include <string.h>
+#include <stdlib.h>
+#include <stdarg.h>
+
+
+/* forward declarations for static (non public, non api) funcs */
+static XMLRPC_VALUE xi_system_describe_methods_cb(XMLRPC_SERVER server, XMLRPC_REQUEST input, void* userData);
+static XMLRPC_VALUE xi_system_list_methods_cb(XMLRPC_SERVER server, XMLRPC_REQUEST input, void* userData);
+static XMLRPC_VALUE xi_system_method_signature_cb(XMLRPC_SERVER server, XMLRPC_REQUEST input, void* userData);
+static XMLRPC_VALUE xi_system_method_help_cb(XMLRPC_SERVER server, XMLRPC_REQUEST input, void* userData);
+
+
+/*-**********************************
+* Introspection Callbacks (methods) *
+************************************/
+
+/* iterates through a list of structs and finds the one with key "name" matching
+ * needle.  slow, would benefit from a struct key hash.
+ */
+inline XMLRPC_VALUE find_named_value(XMLRPC_VALUE list, const char* needle) {
+   XMLRPC_VALUE xIter = XMLRPC_VectorRewind(list);
+   while(xIter) {
+      const char* name = XMLRPC_VectorGetStringWithID(xIter, xi_token_name);
+      if(name && !strcmp(name, needle)) {
+         return xIter;
+      }
+      xIter = XMLRPC_VectorNext(list);
+   }
+   return NULL;
+}
+
+
+/* iterates through docs callbacks and calls any that have not yet been called */
+static void check_docs_loaded(XMLRPC_SERVER server, void* userData) {
+   if(server) {
+      q_iter qi = Q_Iter_Head_F(&server->docslist);
+      while( qi ) {
+         doc_method* dm = Q_Iter_Get_F(qi);
+         if(dm && !dm->b_called) {
+            dm->method(server, userData);
+            dm->b_called = 1;
+         }
+         qi = Q_Iter_Next_F(qi);
+      }
+   }
+}
+
+
+/* utility function for xi_system_describe_methods_cb */
+inline void describe_method(XMLRPC_SERVER server, XMLRPC_VALUE vector, const char* method) {
+   if(method) {
+      server_method* sm = find_method(server, method);
+      if(sm) {
+         XMLRPC_AddValueToVector(vector, sm->desc);
+      }
+   }
+}
+
+
+
+/* system.describeMethods() callback */
+static XMLRPC_VALUE xi_system_describe_methods_cb(XMLRPC_SERVER server, XMLRPC_REQUEST input, void* userData) {
+   XMLRPC_VALUE xParams = XMLRPC_VectorRewind(XMLRPC_RequestGetData(input));
+   XMLRPC_VALUE xResponse = XMLRPC_CreateVector(NULL, xmlrpc_vector_struct);
+   XMLRPC_VALUE xMethodList = XMLRPC_CreateVector("methodList", xmlrpc_vector_array);
+   XMLRPC_VALUE xTypeList = NULL;
+   int bAll = 1;
+
+   /* lazy loading of introspection data */
+   check_docs_loaded(server, userData);
+
+   xTypeList = XMLRPC_VectorGetValueWithID(server->xIntrospection, "typeList");
+
+   XMLRPC_AddValueToVector(xResponse, xTypeList);
+   XMLRPC_AddValueToVector(xResponse, xMethodList);
+
+   /* check if we have any param */
+   if(xParams) {
+      /* check if string or vector (1 or n) */
+      XMLRPC_VALUE_TYPE type = XMLRPC_GetValueType(xParams);
+      if(type == xmlrpc_string) {
+         /* just one.  spit it out. */
+         describe_method(server, xMethodList, XMLRPC_GetValueString(xParams));
+         bAll = 0;
+      }
+      else if(type == xmlrpc_vector) {
+         /* multiple.  spit all out */
+         XMLRPC_VALUE xIter = XMLRPC_VectorRewind(xParams);
+         while(xIter) {
+            describe_method(server, xMethodList, XMLRPC_GetValueString(xIter));
+            xIter = XMLRPC_VectorNext(xParams);
+         }
+         bAll = 0;
+      }
+   }
+
+   /* otherwise, default to sending all methods */
+   if(bAll) {
+      q_iter qi = Q_Iter_Head_F(&server->methodlist);
+      while( qi ) {
+         server_method* sm = Q_Iter_Get_F(qi);
+         if(sm) {
+            XMLRPC_AddValueToVector(xMethodList, sm->desc);
+         }
+         qi = Q_Iter_Next_F(qi);
+      }
+   }
+   
+   return xResponse;
+}
+
+/* this complies with system.listMethods as defined at http://xmlrpc.usefulinc.com/doc/reserved.html */
+static XMLRPC_VALUE xi_system_list_methods_cb(XMLRPC_SERVER server, XMLRPC_REQUEST input, void* userData) {
+   XMLRPC_VALUE xResponse = XMLRPC_CreateVector(NULL, xmlrpc_vector_array);
+
+   q_iter qi = Q_Iter_Head_F(&server->methodlist);
+   while( qi ) {
+      server_method* sm = Q_Iter_Get_F(qi);
+      if(sm) {
+         XMLRPC_VectorAppendString(xResponse, 0, sm->name, 0);
+      }
+      qi = Q_Iter_Next_F(qi);
+   }
+   return xResponse;
+}
+
+/* this complies with system.methodSignature as defined at 
+ * http://xmlrpc.usefulinc.com/doc/sysmethodsig.html 
+ */
+static XMLRPC_VALUE xi_system_method_signature_cb(XMLRPC_SERVER server, XMLRPC_REQUEST input, void* userData) {
+   const char* method = XMLRPC_GetValueString(XMLRPC_VectorRewind(XMLRPC_RequestGetData(input)));
+   XMLRPC_VALUE xResponse = NULL;
+
+   /* lazy loading of introspection data */
+   check_docs_loaded(server, userData);
+
+   if(method) {
+      server_method* sm = find_method(server, method);
+      if(sm && sm->desc) {
+         XMLRPC_VALUE xTypesArray = XMLRPC_CreateVector(NULL, xmlrpc_vector_array);
+         XMLRPC_VALUE xIter, xParams, xSig, xSigIter;
+         const char* type;
+
+         /* array of possible signatures.  */
+         xResponse = XMLRPC_CreateVector(NULL, xmlrpc_vector_array);
+
+         /* find first signature */
+         xSig = XMLRPC_VectorGetValueWithID(sm->desc, xi_token_signatures);
+         xSigIter = XMLRPC_VectorRewind( xSig );
+
+         /* iterate through sigs */
+         while(xSigIter) {
+            /* first type is the return value */
+            type = XMLRPC_VectorGetStringWithID(XMLRPC_VectorRewind(
+                                                 XMLRPC_VectorGetValueWithID(xSigIter, xi_token_returns)), 
+                                                xi_token_type);
+            XMLRPC_AddValueToVector(xTypesArray, 
+                                    XMLRPC_CreateValueString(NULL, 
+                                                             type ? type : type_to_str(xmlrpc_none, 0), 
+                                    0));
+
+            /* the rest are parameters */
+            xParams = XMLRPC_VectorGetValueWithID(xSigIter, xi_token_params);
+            xIter = XMLRPC_VectorRewind(xParams);
+
+            /* iter through params, adding to types array */
+            while(xIter) {
+               XMLRPC_AddValueToVector(xTypesArray,
+                                       XMLRPC_CreateValueString(NULL, 
+                                                                XMLRPC_VectorGetStringWithID(xIter, xi_token_type),
+                                                                0));
+               xIter = XMLRPC_VectorNext(xParams);
+            }
+
+            /* add types for this signature */
+            XMLRPC_AddValueToVector(xResponse, xTypesArray);
+
+            xSigIter = XMLRPC_VectorNext( xSig );
+         }
+      }
+   }
+
+   return xResponse;
+}
+
+/* this complies with system.methodHelp as defined at 
+ * http://xmlrpc.usefulinc.com/doc/sysmethhelp.html 
+ */
+static XMLRPC_VALUE xi_system_method_help_cb(XMLRPC_SERVER server, XMLRPC_REQUEST input, void* userData) {
+   const char* method = XMLRPC_GetValueString(XMLRPC_VectorRewind(XMLRPC_RequestGetData(input)));
+   XMLRPC_VALUE xResponse = NULL;
+
+   /* lazy loading of introspection data */
+   check_docs_loaded(server, userData);
+
+   if(method) {
+      server_method* sm = find_method(server, method);
+      if(sm && sm->desc) {
+         const char* help = XMLRPC_VectorGetStringWithID(sm->desc, xi_token_purpose);
+
+         /* returns a documentation string, or empty string */
+         xResponse = XMLRPC_CreateValueString(NULL, help ? help : xi_token_empty, 0);
+      }
+   }
+
+   return xResponse;
+}
+
+/*-**************************************
+* End Introspection Callbacks (methods) *
+****************************************/
+
+
+/*-************************
+* Introspection Utilities *
+**************************/
+
+/* performs registration of introspection methods */
+void xi_register_system_methods(XMLRPC_SERVER server) {
+   XMLRPC_ServerRegisterMethod(server, xi_token_system_list_methods, xi_system_list_methods_cb);
+   XMLRPC_ServerRegisterMethod(server, xi_token_system_method_help, xi_system_method_help_cb);
+   XMLRPC_ServerRegisterMethod(server, xi_token_system_method_signature, xi_system_method_signature_cb);
+   XMLRPC_ServerRegisterMethod(server, xi_token_system_describe_methods, xi_system_describe_methods_cb);
+}
+
+/* describe a value (param, return, type) */
+static XMLRPC_VALUE describeValue_worker(const char* type, const char* id, const char* desc, int optional, const char* default_val, XMLRPC_VALUE sub_params) {
+   XMLRPC_VALUE xParam = NULL;
+   if(id || desc) {
+      xParam = XMLRPC_CreateVector(NULL, xmlrpc_vector_struct);
+      XMLRPC_VectorAppendString(xParam, xi_token_name, id, 0);
+      XMLRPC_VectorAppendString(xParam, xi_token_type, type, 0);
+      XMLRPC_VectorAppendString(xParam, xi_token_description, desc, 0);
+      if(optional != 2) {
+         XMLRPC_VectorAppendInt(xParam, xi_token_optional, optional);
+      }
+      if(optional == 1 && default_val) {
+         XMLRPC_VectorAppendString(xParam, xi_token_default, default_val, 0);
+      }
+      XMLRPC_AddValueToVector(xParam, sub_params);
+   }
+   return xParam;
+}
+
+
+/* convert an xml tree conforming to spec <url tbd> to  XMLRPC_VALUE
+ * suitable for use with XMLRPC_ServerAddIntrospectionData
+ */
+XMLRPC_VALUE xml_element_to_method_description(xml_element* el, XMLRPC_ERROR err) {
+   XMLRPC_VALUE xReturn = NULL;
+
+   if(el->name) {
+      const char* name = NULL;
+      const char* type = NULL;
+      const char* basetype = NULL;
+      const char* desc = NULL;
+      const char* def = NULL;
+      int optional = 0;
+      xml_element_attr* attr_iter = Q_Head(&el->attrs);
+
+      /* grab element attributes up front to save redundant while loops */
+      while(attr_iter) {
+         if(!strcmp(attr_iter->key, "name")) {
+            name = attr_iter->val;
+         }
+         else if(!strcmp(attr_iter->key, "type")) {
+            type = attr_iter->val;
+         }
+         else if(!strcmp(attr_iter->key, "basetype")) {
+            basetype = attr_iter->val;
+         }
+         else if(!strcmp(attr_iter->key, "desc")) {
+            desc = attr_iter->val;
+         }
+         else if(!strcmp(attr_iter->key, "optional")) {
+            if(attr_iter->val && !strcmp(attr_iter->val, "yes")) {
+               optional = 1;
+            }
+         }
+         else if(!strcmp(attr_iter->key, "default")) {
+            def = attr_iter->val;
+         }
+         attr_iter = Q_Next(&el->attrs);
+      }
+
+      /* value and typeDescription behave about the same */
+      if(!strcmp(el->name, "value") || !strcmp(el->name, "typeDescription")) {
+         XMLRPC_VALUE xSubList = NULL;
+         const char* ptype = !strcmp(el->name, "value") ? type : basetype;
+         if(ptype) {
+            if(Q_Size(&el->children) &&
+               (!strcmp(ptype, "array") || !strcmp(ptype, "struct") || !strcmp(ptype, "mixed"))) {
+               xSubList = XMLRPC_CreateVector("member", xmlrpc_vector_array);
+
+               if(xSubList) {
+                  xml_element* elem_iter = Q_Head(&el->children);
+                  while(elem_iter) {
+                     XMLRPC_AddValueToVector(xSubList, 
+                                             xml_element_to_method_description(elem_iter, err));
+                     elem_iter = Q_Next(&el->children);
+                  }
+               }
+            }
+            xReturn = describeValue_worker(ptype, name, (desc ? desc : (xSubList ? NULL : el->text.str)), optional, def, xSubList);
+         }
+      }
+
+      /* these three kids are about equivalent */
+      else if(!strcmp(el->name, "params") || 
+              !strcmp(el->name, "returns") || 
+              !strcmp(el->name, "signature")) {
+         if(Q_Size(&el->children)) {
+            xml_element* elem_iter = Q_Head(&el->children);
+            xReturn = XMLRPC_CreateVector(!strcmp(el->name, "signature") ? NULL : el->name, xmlrpc_vector_struct);
+
+
+            while(elem_iter) {
+               XMLRPC_AddValueToVector(xReturn, 
+                                       xml_element_to_method_description(elem_iter, err));
+               elem_iter = Q_Next(&el->children);
+            }
+         }
+      }
+
+
+      else if(!strcmp(el->name, "methodDescription")) {
+         xml_element* elem_iter = Q_Head(&el->children);
+         xReturn = XMLRPC_CreateVector(NULL, xmlrpc_vector_struct);
+
+         XMLRPC_VectorAppendString(xReturn, xi_token_name, name, 0);
+
+         while(elem_iter) {
+            XMLRPC_AddValueToVector(xReturn, 
+                                    xml_element_to_method_description(elem_iter, err));
+            elem_iter = Q_Next(&el->children);
+         }
+      }
+
+      /* items are slightly special */
+      else if(!strcmp(el->name, "item")) {
+         xReturn = XMLRPC_CreateValueString(name, el->text.str, el->text.len);
+      }
+
+      /* sure.  we'll let any ol element with children through */
+      else if(Q_Size(&el->children)) {
+         xml_element* elem_iter = Q_Head(&el->children);
+         xReturn = XMLRPC_CreateVector(el->name, xmlrpc_vector_mixed);
+
+         while(elem_iter) {
+            XMLRPC_AddValueToVector(xReturn, 
+                                    xml_element_to_method_description(elem_iter, err));
+            elem_iter = Q_Next(&el->children);
+         }
+      }
+
+      /* or anything at all really, so long as its got some text. 
+       * no reason being all snotty about a spec, right? 
+       */
+      else if(el->name && el->text.len) {
+         xReturn = XMLRPC_CreateValueString(el->name, el->text.str, el->text.len);
+      }
+   }
+
+   return xReturn;
+}
+
+/*-****************************
+* End Introspection Utilities *
+******************************/
+
+
+
+/*-******************
+* Introspection API *
+********************/
+
+
+/****f* VALUE/XMLRPC_IntrospectionCreateDescription
+ * NAME
+ *   XMLRPC_IntrospectionCreateDescription
+ * SYNOPSIS
+ *   XMLRPC_VALUE XMLRPC_IntrospectionCreateDescription(const char* xml, XMLRPC_ERROR err)
+ * FUNCTION
+ *   converts raw xml describing types and methods into an
+ *   XMLRPC_VALUE suitable for use with XMLRPC_ServerAddIntrospectionData()
+ * INPUTS
+ *   xml - xml data conforming to introspection spec at <url tbd>
+ *   err - optional pointer to error struct. filled in if error occurs and not NULL.
+ * RESULT
+ *   XMLRPC_VALUE - newly created value, or NULL if fatal error.
+ * BUGS
+ *   Currently does little or no validation of xml.
+ *   Only parse errors are currently reported in err, not structural errors.
+ * SEE ALSO
+ *   XMLRPC_ServerAddIntrospectionData ()
+ * SOURCE
+ */
+XMLRPC_VALUE XMLRPC_IntrospectionCreateDescription(const char* xml, XMLRPC_ERROR err) {
+   XMLRPC_VALUE xReturn = NULL;
+   xml_element* root = xml_elem_parse_buf(xml, 0, 0, err ? &err->xml_elem_error : NULL);
+
+   if(root) {
+      xReturn = xml_element_to_method_description(root, err);
+
+      xml_elem_free(root);
+   }
+
+   return xReturn;
+
+}
+/*******/
+
+
+/****f* SERVER/XMLRPC_ServerAddIntrospectionData
+ * NAME
+ *   XMLRPC_ServerAddIntrospectionData
+ * SYNOPSIS
+ *   int XMLRPC_ServerAddIntrospectionData(XMLRPC_SERVER server, XMLRPC_VALUE desc)
+ * FUNCTION
+ *   updates server with additional introspection data
+ * INPUTS
+ *   server - target server
+ *   desc - introspection data, should be a struct generated by 
+ *          XMLRPC_IntrospectionCreateDescription ()
+ * RESULT
+ *   int - 1 if success, else 0
+ * NOTES
+ *  - function will fail if neither typeList nor methodList key is present in struct.
+ *  - if method or type already exists, it will be replaced.
+ *  - desc is never freed by the server.  caller is responsible for cleanup.
+ * BUGS
+ *   - horribly slow lookups. prime candidate for hash improvements.
+ *   - uglier and more complex than I like to see for API functions.
+ * SEE ALSO
+ *   XMLRPC_ServerAddIntrospectionData ()
+ *   XMLRPC_ServerRegisterIntrospectionCallback ()
+ *   XMLRPC_CleanupValue ()
+ * SOURCE
+ */
+int XMLRPC_ServerAddIntrospectionData(XMLRPC_SERVER server, XMLRPC_VALUE desc) {
+   int bSuccess = 0;
+   if(server && desc) {
+      XMLRPC_VALUE xNewTypes = XMLRPC_VectorGetValueWithID(desc, "typeList");
+      XMLRPC_VALUE xNewMethods = XMLRPC_VectorGetValueWithID(desc, "methodList");
+      XMLRPC_VALUE xServerTypes = XMLRPC_VectorGetValueWithID(server->xIntrospection, "typeList");
+
+      if(xNewMethods) {
+         XMLRPC_VALUE xMethod = XMLRPC_VectorRewind(xNewMethods);
+
+         while(xMethod) {
+            const char* name = XMLRPC_VectorGetStringWithID(xMethod, xi_token_name);
+            server_method* sm = find_method(server, name);
+
+            if(sm) {
+               if(sm->desc) {
+                  XMLRPC_CleanupValue(sm->desc);
+               }
+               sm->desc = XMLRPC_CopyValue(xMethod);
+               bSuccess = 1;
+            }
+
+            xMethod = XMLRPC_VectorNext(xNewMethods);
+         }
+      }
+      if(xNewTypes) {
+         if(!xServerTypes) {
+            if(!server->xIntrospection) {
+               server->xIntrospection = XMLRPC_CreateVector(NULL, xmlrpc_vector_struct);
+            }
+
+            XMLRPC_AddValueToVector(server->xIntrospection, xNewTypes);
+            bSuccess = 1;
+         }
+         else {
+            XMLRPC_VALUE xIter = XMLRPC_VectorRewind(xNewTypes);
+            while(xIter) {
+               /* get rid of old values */
+               XMLRPC_VALUE xPrev = find_named_value(xServerTypes, XMLRPC_VectorGetStringWithID(xIter, xi_token_name));
+               if(xPrev) {
+                  XMLRPC_VectorRemoveValue(xServerTypes, xPrev);
+               }
+               XMLRPC_AddValueToVector(xServerTypes, xIter);
+               bSuccess = 1;
+               xIter = XMLRPC_VectorNext(xNewTypes);
+            }
+         }
+      }
+   }
+   return bSuccess;
+}
+/*******/
+
+
+/****f* SERVER/XMLRPC_ServerRegisterIntrospectionCallback
+ * NAME
+ *   XMLRPC_ServerRegisterIntrospectionCallback
+ * SYNOPSIS
+ *   int XMLRPC_ServerRegisterIntrospectionCallback(XMLRPC_SERVER server, XMLRPC_IntrospectionCallback cb)
+ * FUNCTION
+ *   registers a callback for lazy generation of introspection data
+ * INPUTS
+ *   server - target server
+ *   cb - callback that will generate introspection data
+ * RESULT
+ *   int - 1 if success, else 0
+ * NOTES
+ *   parsing xml and generating introspection data is fairly expensive, thus a
+ *   server may wish to wait until this data is actually requested before generating
+ *   it. Any number of callbacks may be registered at any time.  A given callback
+ *   will only ever be called once, the first time an introspection request is
+ *   processed after the time of callback registration.
+ * SEE ALSO
+ *   XMLRPC_ServerAddIntrospectionData ()
+ *   XMLRPC_IntrospectionCreateDescription ()
+ * SOURCE
+ */
+int XMLRPC_ServerRegisterIntrospectionCallback(XMLRPC_SERVER server, XMLRPC_IntrospectionCallback cb) {
+   int bSuccess = 0;
+   if(server && cb) {
+
+      doc_method* dm = calloc(1, sizeof(doc_method));
+      
+      if(dm) {
+         dm->method = cb;
+         dm->b_called = 0;
+
+         if(Q_PushTail(&server->docslist, dm)) {
+            bSuccess = 1;
+         }
+         else {
+            my_free(dm);
+         }
+      }
+   }
+   return 0;
+}
+/*******/
+
+/*-**********************
+* End Introspection API *
+************************/
+
+
+
diff --git a/trunk/php/xmlrpc/libxmlrpc/xmlrpc_introspection.h b/trunk/php/xmlrpc/libxmlrpc/xmlrpc_introspection.h
new file mode 100644 (file)
index 0000000..656e441
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2000 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+/* IMPORTANT!
+ *
+ * only public (official API) things should be in this file. Anything else
+ * should go in <group>_private.h, or in the appropriate .c file.
+ */
+
+
+#ifndef __XI_INTROSPECTION_H
+/*
+ * Avoid include redundancy.
+ */
+#define __XI_INTROSPECTION_H
+
+/*----------------------------------------------------------------------------
+ * xmlrpc_introspection.h
+ *
+ * Purpose:
+ *   define public introspection API
+ * Comments:
+ */
+
+/*----------------------------------------------------------------------------
+ * Constants
+ */
+ #define xi_token_params "params"
+ #define xi_token_returns "returns"
+ #define xi_token_related "related"
+ #define xi_token_sub "sub"
+/*----------------------------------------------------------------------------
+ * Includes
+ */
+
+/*----------------------------------------------------------------------------
+ * Structures
+ */
+ /****d* VALUE/XMLRPC_IntrospectionCallback
+ * NAME
+ *   XMLRPC_IntrospectionCallback
+ * NOTES
+ *   Function prototype for lazy documentation generation (not generated until requested).
+ * SOURCE
+ */
+typedef void (*XMLRPC_IntrospectionCallback)(XMLRPC_SERVER server, void* userData);
+/******/
+/*----------------------------------------------------------------------------
+ * Globals
+ */
+
+/*----------------------------------------------------------------------------
+ * Functions
+ */
+XMLRPC_VALUE XMLRPC_IntrospectionCreateDescription(const char* xml, XMLRPC_ERROR error);
+int XMLRPC_ServerAddIntrospectionData(XMLRPC_SERVER server, XMLRPC_VALUE desc);
+int XMLRPC_ServerRegisterIntrospectionCallback(XMLRPC_SERVER server, XMLRPC_IntrospectionCallback cb);
+/*----------------------------------------------------------------------------
+ * Macros
+ */
+
+
+#endif /* __XI_INTROSPECTION_H */
+
+
+
diff --git a/trunk/php/xmlrpc/libxmlrpc/xmlrpc_introspection_private.h b/trunk/php/xmlrpc/libxmlrpc/xmlrpc_introspection_private.h
new file mode 100644 (file)
index 0000000..7b97fa7
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2001 Dan Libby, Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+/* IMPORTANT!
+ *
+ * only non-public things should be in this file.  It is fine for any .c file
+ * in xmlrpc/src to include it, but users of the public API should never
+ * include it, and thus *.h files that are part of the public API should
+ * never include it, or they would break if this file is not present.
+ */
+
+
+#ifndef __XI_INTROSPECTION_PRIVATE_H
+/*
+ * Avoid include redundancy.
+ */
+#define __XI_INTROSPECTION_PRIVATE_H
+
+/*----------------------------------------------------------------------------
+ * xmlrpc_introspection_private.h
+ *
+ * Purpose:
+ *   define non-public introspection routines
+ * Comments:
+ */
+
+/*----------------------------------------------------------------------------
+ * Constants
+ */
+#define xi_token_default                    "default"
+#define xi_token_description                "description"
+#define xi_token_name                       "name"
+#define xi_token_optional                   "optional"
+#define xi_token_params                     "params"
+#define xi_token_purpose                    "purpose"
+#define xi_token_returns                    "returns"
+#define xi_token_signatures                 "signatures"
+#define xi_token_type                       "type"
+#define xi_token_version                    "version"
+#define xi_token_empty                      ""
+#define xi_token_system_describe_methods    "system.describeMethods"
+#define xi_token_system_list_methods        "system.listMethods"
+#define xi_token_system_method_help         "system.methodHelp"
+#define xi_token_system_method_signature    "system.methodSignature"
+
+/*----------------------------------------------------------------------------
+ * Includes
+ */
+
+/*----------------------------------------------------------------------------
+ * Structures
+ */
+typedef struct _doc_method {
+   XMLRPC_IntrospectionCallback         method;
+   int                                  b_called;
+} doc_method; 
+/*----------------------------------------------------------------------------
+ * Globals
+ */
+
+/*----------------------------------------------------------------------------
+ * Functions
+ */
+void xi_register_system_methods(XMLRPC_SERVER server);
+/*----------------------------------------------------------------------------
+ * Macros
+ */
+
+#endif /* __XI_INTROSPECTION_PRIVATE_H */
+
+
+
+
diff --git a/trunk/php/xmlrpc/libxmlrpc/xmlrpc_private.h b/trunk/php/xmlrpc/libxmlrpc/xmlrpc_private.h
new file mode 100644 (file)
index 0000000..65c6b13
--- /dev/null
@@ -0,0 +1,178 @@
+/*
+  This file is part of libXMLRPC - a C library for xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2000 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+/* only non-public things should be in this file.  It is fine for any .c file
+ * in xmlrpc/src to include it, but users of the public API should never
+ * include it, and thus *.h files that are part of the public API should
+ * never include it, or they would break if this file is not present.
+ */
+
+#ifndef XMLRPC_PRIVATE_ALREADY_INCLUDED
+/*
+ * Avoid include redundancy.
+ */
+#define XMLRPC_PRIVATE_ALREADY_INCLUDED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/*----------------------------------------------------------------------------
+ * xmlrpc_private.h
+ *
+ * Purpose:
+ *   define non-public intra-library routines & data
+ * Comments:
+ */
+
+/*----------------------------------------------------------------------------
+ * Constants
+ */
+
+
+/*----------------------------------------------------------------------------
+ * Includes
+ */
+
+/*----------------------------------------------------------------------------
+ * Structures
+ */
+/* Some of these are typedef'd in xmlrpc.h for public use */
+
+typedef struct _xmlrpc_vector* XMLRPC_VECTOR;
+
+/****s* VALUE/XMLRPC_VALUE
+ * NAME
+ *   XMLRPC_VALUE
+ * NOTES
+ *   A value of variable data type. The most important object in this API.  :)
+ *
+ *  This struct is opaque to callers and should be accessed only via accessor functions.
+ * SEE ALSO
+ *   XMLRPC_REQUEST
+ *   XMLRPC_CreateValueEmpty ()
+ *   XMLRPC_CleanupValue ()
+ * SOURCE
+ */
+typedef struct _xmlrpc_value {
+   XMLRPC_VALUE_TYPE type; /* data type of this value                        */
+   XMLRPC_VECTOR v;        /* vector type specific info                      */
+   simplestring str;       /* string value buffer                            */
+   simplestring id;        /* id of this value.  possibly empty.             */
+   int i;                  /* integer value.                                 */
+   double d;               /* double value                                   */
+   int iRefCount;          /* So we know when we can delete the value      . */
+} STRUCT_XMLRPC_VALUE;
+/******/
+
+/****s* VALUE/XMLRPC_REQUEST
+ * NAME
+ *   XMLRPC_REQUEST
+ * NOTES
+ *   Internal representation of an XML request.
+ *
+ *  This struct is opaque to callers and should be accessed only via accessor functions.
+ *  
+ * SEE ALSO
+ *   XMLRPC_VALUE
+ *   XMLRPC_RequestNew ()
+ *   XMLRPC_RequestFree ()
+ * SOURCE
+ */
+typedef struct _xmlrpc_request {
+   XMLRPC_VALUE                         io;           /* data associated with this request */
+   simplestring                         methodName;   /* name of method being called       */
+   XMLRPC_REQUEST_TYPE                  request_type; /* type of request                   */
+   STRUCT_XMLRPC_REQUEST_OUTPUT_OPTIONS output;       /* xml output options                */
+   XMLRPC_VALUE                         error;        /* error codes                       */
+} STRUCT_XMLRPC_REQUEST;
+/******/
+
+/* Vector type. Used by XMLRPC_VALUE.  Never visible to users of the API. */
+typedef struct _xmlrpc_vector {
+   XMLRPC_VECTOR_TYPE type;                           /* vector type                       */
+   queue *q;                                          /* list of child values              */
+} STRUCT_XMLRPC_VECTOR;
+/******/
+
+/****s* VALUE/XMLRPC_SERVER
+ * NAME
+ *   XMLRPC_SERVER
+ * NOTES
+ *   internal representation of an xmlrpc server
+ *
+ *  This struct is opaque to callers and should be accessed only via accessor functions.
+ *  
+ * SEE ALSO
+ *   XMLRPC_ServerCreate ()
+ *   XMLRPC_ServerDestroy ()
+ * SOURCE
+ */
+typedef struct _xmlrpc_server {
+   queue methodlist;                                  /* list of callback methods          */
+   queue docslist;                                    /* list of introspection callbacks   */
+   XMLRPC_VALUE xIntrospection;
+} STRUCT_XMLRPC_SERVER;
+/******/
+
+typedef struct _server_method {
+   char*                   name;
+   XMLRPC_VALUE            desc;
+   XMLRPC_Callback         method;
+} server_method;
+
+
+/*----------------------------------------------------------------------------
+ * Globals
+ */
+
+/*----------------------------------------------------------------------------
+ * Functions
+ */
+server_method* find_method(XMLRPC_SERVER server, const char* name);
+const char* type_to_str(XMLRPC_VALUE_TYPE type, XMLRPC_VECTOR_TYPE vtype);
+/*----------------------------------------------------------------------------
+ * Macros
+ */
+#define my_free(thing)  if(thing) {free(thing); thing = 0;}
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* XMLRPC_PRIVATE_ALREADY_INCLUDED */
+
diff --git a/trunk/php/xmlrpc/libxmlrpc/xmlrpc_win32.h b/trunk/php/xmlrpc/libxmlrpc/xmlrpc_win32.h
new file mode 100644 (file)
index 0000000..58c54bb
--- /dev/null
@@ -0,0 +1,11 @@
+#ifndef _XMLRPC_WIN32_H
+#define _XMLRPC_WIN32_H
+/* just some things needed to compile win32 */
+#include <windows.h>
+#include <stdlib.h>
+#define inline __inline
+#define snprintf _snprintf
+#define strcasecmp(s1, s2) stricmp(s1, s2)
+
+
+#endif
\ No newline at end of file
diff --git a/trunk/php/xmlrpc/php_xmlrpc.h b/trunk/php/xmlrpc/php_xmlrpc.h
new file mode 100644 (file)
index 0000000..98355ba
--- /dev/null
@@ -0,0 +1,132 @@
+/*
+  This file is part of, or distributed with, libXMLRPC - a C library for 
+  xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2001 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+/* auto-generated portions of this file are also subject to the php license */
+
+/*
+   +----------------------------------------------------------------------+
+   | PHP Version 5                                                        |
+   +----------------------------------------------------------------------+
+   | Copyright (c) 1997-2004 The PHP Group                                |
+   +----------------------------------------------------------------------+
+   | This source file is subject to version 3.0 of the PHP license,       |
+   | that is bundled with this package in the file LICENSE, and is        |
+   | available through the world-wide-web at the following url:           |
+   | http://www.php.net/license/3_0.txt.                                  |
+   | If you did not receive a copy of the PHP license and are unable to   |
+   | obtain it through the world-wide-web, please send a note to          |
+   | license@php.net so we can mail you a copy immediately.               |
+   +----------------------------------------------------------------------+
+   | Author: Dan Libby                                                    |
+   +----------------------------------------------------------------------+
+ */
+
+/* $Id$ */
+
+#ifndef _PHP_XMLRPC_H
+#define _PHP_XMLRPC_H
+
+/* You should tweak config.m4 so this symbol (or some else suitable)
+   gets defined.
+*/
+#if 1 /* HAVE_XMLRPC */
+
+extern zend_module_entry xmlrpc_module_entry;
+#define phpext_xmlrpc_ptr &xmlrpc_module_entry
+
+#ifdef PHP_WIN32
+#define PHP_XMLRPC_API __declspec(dllexport)
+#else
+#define PHP_XMLRPC_API
+#endif
+
+PHP_MINIT_FUNCTION(xmlrpc);
+PHP_MSHUTDOWN_FUNCTION(xmlrpc);
+PHP_RINIT_FUNCTION(xmlrpc);
+PHP_RSHUTDOWN_FUNCTION(xmlrpc);
+PHP_MINFO_FUNCTION(xmlrpc);
+
+PHP_FUNCTION(xmlrpc_encode);
+PHP_FUNCTION(xmlrpc_decode);
+PHP_FUNCTION(xmlrpc_decode_request);
+PHP_FUNCTION(xmlrpc_encode_request);
+PHP_FUNCTION(xmlrpc_get_type);
+PHP_FUNCTION(xmlrpc_set_type);
+PHP_FUNCTION(xmlrpc_is_fault);
+PHP_FUNCTION(xmlrpc_server_create);
+PHP_FUNCTION(xmlrpc_server_destroy);
+PHP_FUNCTION(xmlrpc_server_register_method);
+PHP_FUNCTION(xmlrpc_server_call_method);
+PHP_FUNCTION(xmlrpc_parse_method_descriptions);
+PHP_FUNCTION(xmlrpc_server_add_introspection_data);
+PHP_FUNCTION(xmlrpc_server_register_introspection_callback);
+
+/* Fill in this structure and use entries in it
+   for thread safety instead of using true globals.
+*/
+ZEND_BEGIN_MODULE_GLOBALS(xmlrpc)
+       long allow_null;
+ZEND_END_MODULE_GLOBALS(xmlrpc)
+
+/* In every function that needs to use variables in zend_xmlrpc_globals,
+   do call XMLRPCLS_FETCH(); after declaring other variables used by
+   that function, and always refer to them as XMLRPCG(variable).
+   You are encouraged to rename these macros something shorter, see
+   examples in any other php module directory.
+*/
+
+#ifdef ZTS
+#define XMLRPCG(v) TSRMG(xmlrpc_globals_id, zend_xmlrpc_globals *, v)
+#define XMLRPCLS_FETCH() zend_xmlrpc_globals *xmlrpc_globals = ts_resource(xmlrpc_globals_id)
+#else
+#define XMLRPCG(v) (xmlrpc_globals.v)
+#define XMLRPCLS_FETCH()
+#endif
+
+ZEND_EXTERN_MODULE_GLOBALS(xmlrpc)
+
+#else
+
+#define phpext_xmlrpc_ptr NULL
+
+#endif
+
+#endif /* _PHP_XMLRPC_H */
+
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * End:
+ */
diff --git a/trunk/php/xmlrpc/xmlrpc-epi-php.c b/trunk/php/xmlrpc/xmlrpc-epi-php.c
new file mode 100644 (file)
index 0000000..d668067
--- /dev/null
@@ -0,0 +1,1528 @@
+/*
+  This file is part of, or distributed with, libXMLRPC - a C library for 
+  xml-encoded function calls.
+
+  Author: Dan Libby (dan@libby.com)
+  Epinions.com may be contacted at feedback@epinions-inc.com
+*/
+
+/*  
+  Copyright 2001 Epinions, Inc. 
+
+  Subject to the following 3 conditions, Epinions, Inc.  permits you, free 
+  of charge, to (a) use, copy, distribute, modify, perform and display this 
+  software and associated documentation files (the "Software"), and (b) 
+  permit others to whom the Software is furnished to do so as well.  
+
+  1) The above copyright notice and this permission notice shall be included 
+  without modification in all copies or substantial portions of the 
+  Software.  
+
+  2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF 
+  ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY 
+  IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR 
+  PURPOSE OR NONINFRINGEMENT.  
+
+  3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, 
+  SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT 
+  OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING 
+  NEGLIGENCE), EVEN IF EPINIONS, INC.  IS AWARE OF THE POSSIBILITY OF SUCH 
+  DAMAGES.    
+
+*/
+
+/* auto-generated portions of this file are also subject to the php license */
+
+/*
+   +----------------------------------------------------------------------+
+   | PHP Version 5                                                        |
+   +----------------------------------------------------------------------+
+   | Copyright (c) 1997-2004 The PHP Group                                |
+   +----------------------------------------------------------------------+
+   | This source file is subject to version 3.0 of the PHP license,       |
+   | that is bundled with this package in the file LICENSE, and is        |
+   | available through the world-wide-web at the following url:           |
+   | http://www.php.net/license/3_0.txt.                                  |
+   | If you did not receive a copy of the PHP license and are unable to   |
+   | obtain it through the world-wide-web, please send a note to          |
+   | license@php.net so we can mail you a copy immediately.               |
+   +----------------------------------------------------------------------+
+   | Author: Dan Libby                                                    |
+   +----------------------------------------------------------------------+
+ */
+
+/* $Id$ */
+
+/**********************************************************************
+* BUGS:                                                               *
+*  - when calling a php user function, there appears to be no way to  *
+*    distinguish between a return value of null, and no return value  *
+*    at all.  The xml serialization layer(s) will then return a value *
+*    of null, when the right thing may be no value at all. (SOAP)     *
+**********************************************************************/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "php.h"
+#include "ext/standard/info.h"
+#include "php_ini.h"
+#include "php_xmlrpc.h"
+#include "xmlrpc.h"
+
+#define PHP_EXT_VERSION "0.51"
+
+/* You should tweak config.m4 so this symbol (or some else suitable)
+       gets defined.  */
+
+ZEND_DECLARE_MODULE_GLOBALS(xmlrpc)
+
+static int le_xmlrpc_server;
+
+function_entry xmlrpc_functions[] = {
+       PHP_FE(xmlrpc_encode,                                                                   NULL) 
+       PHP_FE(xmlrpc_decode,                                                                   NULL)
+       PHP_FE(xmlrpc_decode_request,                                                   second_arg_force_ref)
+       PHP_FE(xmlrpc_encode_request,                                                   NULL)
+       PHP_FE(xmlrpc_get_type,                                                                 NULL)
+       PHP_FE(xmlrpc_set_type,                                                                 first_arg_force_ref)
+       PHP_FE(xmlrpc_is_fault,                                                                 NULL)
+       PHP_FE(xmlrpc_server_create,                                                    NULL)
+       PHP_FE(xmlrpc_server_destroy,                                                   NULL)
+       PHP_FE(xmlrpc_server_register_method,                                   NULL)
+       PHP_FE(xmlrpc_server_call_method,                                               NULL)
+       PHP_FE(xmlrpc_parse_method_descriptions,                                NULL)
+       PHP_FE(xmlrpc_server_add_introspection_data,                    NULL)
+       PHP_FE(xmlrpc_server_register_introspection_callback,   NULL)
+       {NULL, NULL, NULL}
+};
+
+zend_module_entry xmlrpc_module_entry = {
+       STANDARD_MODULE_HEADER,
+       "xmlrpc",
+       xmlrpc_functions,
+       PHP_MINIT(xmlrpc),
+       PHP_MSHUTDOWN(xmlrpc),
+       PHP_RINIT(xmlrpc),      /* Replace with NULL if there's nothing to do at request start */
+       PHP_RSHUTDOWN(xmlrpc),  /* Replace with NULL if there's nothing to do at request end */
+       PHP_MINFO(xmlrpc),
+       PHP_EXT_VERSION,
+       STANDARD_MODULE_PROPERTIES
+};
+
+#ifdef COMPILE_DL_XMLRPC
+ZEND_GET_MODULE(xmlrpc)
+# ifdef PHP_WIN32
+# include "zend_arg_defs.c"
+# endif
+#endif
+
+PHP_INI_BEGIN()
+STD_PHP_INI_BOOLEAN("xmlrpc.allow_null", "0", PHP_INI_ALL, OnUpdateBool, allow_null, zend_xmlrpc_globals, xmlrpc_globals)
+PHP_INI_END()
+
+static void php_xmlrpc_init_globals(zend_xmlrpc_globals *xmlrpc_globals)
+{
+       memset(xmlrpc_globals, 0, sizeof(zend_xmlrpc_globals));
+}
+
+/*******************************
+* local structures and defines *
+*******************************/
+
+/* per server data */
+typedef struct _xmlrpc_server_data {
+       zval* method_map;
+       zval* introspection_map;
+       XMLRPC_SERVER server_ptr;
+} xmlrpc_server_data;
+
+
+/* how to format output */
+typedef struct _php_output_options {
+       int b_php_out;
+       int b_auto_version;
+       int b_allow_null;
+       STRUCT_XMLRPC_REQUEST_OUTPUT_OPTIONS xmlrpc_out;
+} php_output_options;
+
+/* data passed to C callback */
+typedef struct _xmlrpc_callback_data {
+       zval* xmlrpc_method;
+       zval* php_function;
+       zval* caller_params;
+       zval* return_data;
+       xmlrpc_server_data* server;
+       char php_executed;
+} xmlrpc_callback_data;
+
+/* output options */
+#define OUTPUT_TYPE_KEY       "output_type"
+#define OUTPUT_TYPE_KEY_LEN   (sizeof(OUTPUT_TYPE_KEY) - 1)
+#define OUTPUT_TYPE_VALUE_PHP "php"
+#define OUTPUT_TYPE_VALUE_XML "xml"
+
+#define ALLOW_NULL_KEY     "allow_null"
+#define ALLOW_NULL_KEY_LEN (sizeof(ALLOW_NULL_KEY) - 1)
+
+#define VERBOSITY_KEY                  "verbosity"
+#define VERBOSITY_KEY_LEN              (sizeof(VERBOSITY_KEY) - 1)
+#define VERBOSITY_VALUE_NO_WHITE_SPACE "no_white_space"
+#define VERBOSITY_VALUE_NEWLINES_ONLY  "newlines_only"
+#define VERBOSITY_VALUE_PRETTY         "pretty"
+
+#define ESCAPING_KEY             "escaping"
+#define ESCAPING_KEY_LEN         (sizeof(ESCAPING_KEY) - 1)
+#define ESCAPING_VALUE_CDATA     "cdata"
+#define ESCAPING_VALUE_NON_ASCII "non-ascii"
+#define ESCAPING_VALUE_NON_PRINT "non-print"
+#define ESCAPING_VALUE_MARKUP    "markup"
+
+#define VERSION_KEY          "version"
+#define VERSION_KEY_LEN      (sizeof(VERSION_KEY) - 1)
+#define VERSION_VALUE_SIMPLE "simple"
+#define VERSION_VALUE_XMLRPC "xmlrpc"
+#define VERSION_VALUE_SOAP11 "soap 1.1"
+#define VERSION_VALUE_AUTO   "auto"
+
+#define ENCODING_KEY     "encoding"
+#define ENCODING_KEY_LEN (sizeof(ENCODING_KEY) - 1)
+#define ENCODING_DEFAULT "iso-8859-1"
+
+/* value types */
+#define OBJECT_TYPE_ATTR  "xmlrpc_type"
+#define OBJECT_VALUE_ATTR "scalar"
+#define OBJECT_VALUE_TS_ATTR "timestamp"
+
+/* faults */
+#define FAULT_CODE       "faultCode"
+#define FAULT_CODE_LEN   (sizeof(FAULT_CODE) - 1)
+#define FAULT_STRING     "faultString"
+#define FAULT_STRING_LEN (sizeof(FAULT_STRING) - 1)
+
+/***********************
+* forward declarations *
+***********************/
+XMLRPC_VALUE_TYPE get_zval_xmlrpc_type(php_output_options* out, zval* value, zval** newvalue);
+static void php_xmlrpc_introspection_callback(XMLRPC_SERVER server, void* data);
+int sset_zval_xmlrpc_type(zval* value, XMLRPC_VALUE_TYPE type);
+zval* decode_request_worker(zval* xml_in, zval* encoding_in, zval* method_name_out);
+const char* xmlrpc_type_as_str(XMLRPC_VALUE_TYPE type, XMLRPC_VECTOR_TYPE vtype);
+XMLRPC_VALUE_TYPE xmlrpc_str_as_type(const char* str);
+XMLRPC_VECTOR_TYPE xmlrpc_str_as_vector_type(const char* str);
+int set_zval_xmlrpc_type(zval* value, XMLRPC_VALUE_TYPE type);
+
+/*********************
+* startup / shutdown *
+*********************/
+
+static void destroy_server_data(xmlrpc_server_data *server)
+{
+       if (server) {
+               XMLRPC_ServerDestroy(server->server_ptr);
+
+               zval_dtor(server->method_map);
+               FREE_ZVAL(server->method_map);
+
+               zval_dtor(server->introspection_map);
+               FREE_ZVAL(server->introspection_map);
+
+               efree(server);
+       }
+}
+
+/* called when server is being destructed. either when xmlrpc_server_destroy
+ * is called, or when request ends.  */
+static void xmlrpc_server_destructor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
+{
+       if (rsrc && rsrc->ptr) {
+               destroy_server_data((xmlrpc_server_data*) rsrc->ptr);
+       }
+}
+
+/* module init */
+PHP_MINIT_FUNCTION(xmlrpc)
+{
+       ZEND_INIT_MODULE_GLOBALS(xmlrpc, php_xmlrpc_init_globals, NULL);
+
+       REGISTER_INI_ENTRIES();
+
+       le_xmlrpc_server = zend_register_list_destructors_ex(xmlrpc_server_destructor, NULL, "xmlrpc server", module_number);
+
+       return SUCCESS;
+}
+
+/* module shutdown */
+PHP_MSHUTDOWN_FUNCTION(xmlrpc)
+{
+       return SUCCESS;
+}
+
+/* Remove if there's nothing to do at request start */
+PHP_RINIT_FUNCTION(xmlrpc)
+{
+       return SUCCESS;
+}
+
+/* Remove if there's nothing to do at request end */
+PHP_RSHUTDOWN_FUNCTION(xmlrpc)
+{
+       return SUCCESS;
+}
+
+/* display info in phpinfo() */
+PHP_MINFO_FUNCTION(xmlrpc)
+{
+       php_info_print_table_start();
+       php_info_print_table_row(2, "core library version", XMLRPC_GetVersionString());
+       php_info_print_table_row(2, "php extension version", PHP_EXT_VERSION);
+       php_info_print_table_row(2, "author", "Dan Libby");
+       php_info_print_table_row(2, "homepage", "http://xmlrpc-epi.sourceforge.net");
+       php_info_print_table_row(2, "open sourced by", "Epinions.com");
+       php_info_print_table_end();
+}
+
+/*******************
+* random utilities *
+*******************/
+
+/* Utility functions for adding data types to arrays, with or without key (assoc, non-assoc).
+ * Could easily be further generalized to work with objects.
+ */
+#if 0
+static int add_long(zval* list, char* id, int num) {
+       if(id) return add_assoc_long(list, id, num);
+       else   return add_next_index_long(list, num);
+}
+
+static int add_double(zval* list, char* id, double num) {
+       if(id) return add_assoc_double(list, id, num);
+       else   return add_next_index_double(list, num);
+}
+
+static int add_string(zval* list, char* id, char* string, int duplicate) {
+       if(id) return add_assoc_string(list, id, string, duplicate);
+       else   return add_next_index_string(list, string, duplicate);
+}
+
+static int add_stringl(zval* list, char* id, char* string, uint length, int duplicate) {
+       if(id) return add_assoc_stringl(list, id, string, length, duplicate);
+       else   return add_next_index_stringl(list, string, length, duplicate);
+}
+
+#endif
+
+static int add_zval(zval* list, const char* id, zval** val)
+{
+       if (list && val) {
+               if (id) {
+                       return zend_hash_update(Z_ARRVAL_P(list), (char*) id, strlen(id) + 1, (void *) val, sizeof(zval **), NULL);
+               } else {
+                       return zend_hash_next_index_insert(Z_ARRVAL_P(list), (void *) val, sizeof(zval **), NULL); 
+               }
+       }
+       /* what is the correct return on error? */
+       return 0;
+}
+
+#define my_zend_hash_get_current_key(ht, my_key, num_index) zend_hash_get_current_key(ht, my_key, num_index, 0)
+
+
+/*************************
+* input / output options *
+*************************/
+
+/* parse an array (user input) into output options suitable for use by xmlrpc engine
+ * and determine whether to return data as xml or php vars */
+static void set_output_options(php_output_options* options, zval* output_opts)
+{
+       XMLRPCLS_FETCH();
+
+       if (options) {
+
+               /* defaults */
+               options->b_php_out = 0;
+               options->b_auto_version = 1;
+               options->b_allow_null = 0;
+               options->xmlrpc_out.version = xmlrpc_version_1_0;
+               options->xmlrpc_out.xml_elem_opts.encoding = ENCODING_DEFAULT;
+               options->xmlrpc_out.xml_elem_opts.verbosity = xml_elem_pretty;
+               options->xmlrpc_out.xml_elem_opts.escaping = xml_elem_markup_escaping | xml_elem_non_ascii_escaping | xml_elem_non_print_escaping;
+
+               if (output_opts && Z_TYPE_P(output_opts) == IS_ARRAY) {
+                       zval** val;
+
+                       /* marshal NULL */
+                       if (zend_hash_find(Z_ARRVAL_P(output_opts), ALLOW_NULL_KEY, ALLOW_NULL_KEY_LEN + 1, (void**) &val) == SUCCESS) {
+                               if (Z_TYPE_PP(val) == IS_BOOL) {
+                                       if (Z_LVAL_PP(val)) {
+                                               options->b_allow_null = 1;
+                                       } else {
+                                               options->b_allow_null = 0;
+                                       }
+                               }
+                       }
+
+                       /* type of output (xml/php) */
+                       if (zend_hash_find(Z_ARRVAL_P(output_opts), OUTPUT_TYPE_KEY, OUTPUT_TYPE_KEY_LEN + 1, (void**) &val) == SUCCESS) {
+                               if (Z_TYPE_PP(val) == IS_STRING) {
+                                       if (!strcmp(Z_STRVAL_PP(val), OUTPUT_TYPE_VALUE_PHP)) {
+                                               options->b_php_out = 1;
+                                       } else if (!strcmp(Z_STRVAL_PP(val), OUTPUT_TYPE_VALUE_XML)) {
+                                               options->b_php_out = 0;
+                                       }
+                               }
+                       }
+
+                       /* verbosity of generated xml */
+                       if (zend_hash_find(Z_ARRVAL_P(output_opts), VERBOSITY_KEY, VERBOSITY_KEY_LEN + 1, (void**) &val) == SUCCESS) {
+                               if (Z_TYPE_PP(val) == IS_STRING) {
+                                       if (!strcmp(Z_STRVAL_PP(val), VERBOSITY_VALUE_NO_WHITE_SPACE)) {
+                                               options->xmlrpc_out.xml_elem_opts.verbosity = xml_elem_no_white_space;
+                                       } else if (!strcmp(Z_STRVAL_PP(val), VERBOSITY_VALUE_NEWLINES_ONLY)) {
+                                               options->xmlrpc_out.xml_elem_opts.verbosity = xml_elem_newlines_only;
+                                       } else if (!strcmp(Z_STRVAL_PP(val), VERBOSITY_VALUE_PRETTY)) {
+                                               options->xmlrpc_out.xml_elem_opts.verbosity = xml_elem_pretty;
+                                       }
+                               }
+                       }
+
+                       /* version of xml to output */
+                       if (zend_hash_find(Z_ARRVAL_P(output_opts), VERSION_KEY, VERSION_KEY_LEN + 1, (void**) &val) == SUCCESS) {
+                               if (Z_TYPE_PP(val) == IS_STRING) {
+                                       options->b_auto_version = 0;
+                                       if (!strcmp(Z_STRVAL_PP(val), VERSION_VALUE_XMLRPC)) {
+                                               options->xmlrpc_out.version = xmlrpc_version_1_0;
+                                       } else if (!strcmp(Z_STRVAL_PP(val), VERSION_VALUE_SIMPLE)) {
+                                               options->xmlrpc_out.version = xmlrpc_version_simple;
+                                       } else if (!strcmp((*val)->value.str.val, VERSION_VALUE_SOAP11)) {
+                                                       options->xmlrpc_out.version = xmlrpc_version_soap_1_1;
+                                       } else { /* if(!strcmp((*val)->value.str.val, VERSION_VALUE_AUTO)) { */
+                                                       options->b_auto_version = 1;
+                                       }
+                               }
+                       }
+
+                 /* encoding code set */
+                 if(zend_hash_find(Z_ARRVAL_P(output_opts), 
+                                   ENCODING_KEY, ENCODING_KEY_LEN + 1, 
+                                   (void**)&val) == SUCCESS) {
+                    if(Z_TYPE_PP(val) == IS_STRING) {
+                       options->xmlrpc_out.xml_elem_opts.encoding = estrdup(Z_STRVAL_PP(val));
+                    }
+                 }
+
+                 /* escaping options */
+                 if(zend_hash_find(Z_ARRVAL_P(output_opts), 
+                                   ESCAPING_KEY, ESCAPING_KEY_LEN + 1, 
+                                   (void**)&val) == SUCCESS) {
+                    /* multiple values allowed.  check if array */
+                    if(Z_TYPE_PP(val) == IS_ARRAY) {
+                       zval** iter_val;
+                       zend_hash_internal_pointer_reset(Z_ARRVAL_PP(val));
+                       options->xmlrpc_out.xml_elem_opts.escaping = xml_elem_no_escaping;
+                       while(1) {
+                          if(zend_hash_get_current_data(Z_ARRVAL_PP(val), (void**)&iter_val) == SUCCESS) {
+                             if(Z_TYPE_PP(iter_val) == IS_STRING && Z_STRVAL_PP(iter_val)) {
+                                if(!strcmp(Z_STRVAL_PP(iter_val), ESCAPING_VALUE_CDATA)) {
+                                   options->xmlrpc_out.xml_elem_opts.escaping |= xml_elem_cdata_escaping;
+                                }
+                                else if(!strcmp(Z_STRVAL_PP(iter_val), ESCAPING_VALUE_NON_ASCII)) {
+                                   options->xmlrpc_out.xml_elem_opts.escaping |= xml_elem_non_ascii_escaping;
+                                }
+                                else if(!strcmp(Z_STRVAL_PP(iter_val), ESCAPING_VALUE_NON_PRINT)) {
+                                   options->xmlrpc_out.xml_elem_opts.escaping |= xml_elem_non_print_escaping;
+                                }
+                                else if(!strcmp(Z_STRVAL_PP(iter_val), ESCAPING_VALUE_MARKUP)) {
+                                   options->xmlrpc_out.xml_elem_opts.escaping |= xml_elem_markup_escaping;
+                                }
+                             }
+                          }
+                          else {
+                             break;
+                          }
+
+                          zend_hash_move_forward(Z_ARRVAL_PP(val));
+                       }
+                    }
+                    /* else, check for single value */
+                    else if(Z_TYPE_PP(val) == IS_STRING) {
+                       if(!strcmp(Z_STRVAL_PP(val), ESCAPING_VALUE_CDATA)) {
+                          options->xmlrpc_out.xml_elem_opts.escaping = xml_elem_cdata_escaping;
+                       }
+                       else if(!strcmp(Z_STRVAL_PP(val), ESCAPING_VALUE_NON_ASCII)) {
+                          options->xmlrpc_out.xml_elem_opts.escaping = xml_elem_non_ascii_escaping;
+                       }
+                       else if(!strcmp(Z_STRVAL_PP(val), ESCAPING_VALUE_NON_PRINT)) {
+                          options->xmlrpc_out.xml_elem_opts.escaping = xml_elem_non_print_escaping;
+                       }
+                       else if(!strcmp(Z_STRVAL_PP(val), ESCAPING_VALUE_MARKUP)) {
+                          options->xmlrpc_out.xml_elem_opts.escaping = xml_elem_markup_escaping;
+                       }
+                    }
+                 }
+         }
+       }
+}
+
+
+/******************
+* encode / decode *
+******************/
+
+/* php arrays have no distinction between array and struct types.
+ * they even allow mixed.  Thus, we determine the type by iterating
+ * through the entire array and figuring out each element.
+ * room for some optimation here if we stop after a specific # of elements.
+ */
+static XMLRPC_VECTOR_TYPE determine_vector_type (HashTable *ht)
+{
+    int bArray = 0, bStruct = 0, bMixed = 0;
+    unsigned long num_index;
+    char* my_key;
+
+    zend_hash_internal_pointer_reset(ht);
+    while(1) {
+       int res = my_zend_hash_get_current_key(ht, &my_key, &num_index);
+       if(res == HASH_KEY_IS_LONG) {
+           if(bStruct) {
+               bMixed = 1;
+               break;
+           }
+           bArray = 1;
+       }
+       else if(res == HASH_KEY_NON_EXISTANT) {
+          break;
+       }
+       else if(res == HASH_KEY_IS_STRING) {
+           if(bArray) {
+               bMixed = 1;
+               break;
+           }
+           bStruct = 1;
+       }
+
+       zend_hash_move_forward(ht);
+    }
+    return bMixed ? xmlrpc_vector_mixed : (bStruct ? xmlrpc_vector_struct : xmlrpc_vector_array);
+}
+
+/* recursively convert php values into xmlrpc values */
+static XMLRPC_VALUE PHP_to_XMLRPC_worker (php_output_options* out, const char* key, zval* in_val, int depth)
+{
+   XMLRPC_VALUE xReturn = NULL;
+   if(in_val) {
+      zval* val = NULL;
+      XMLRPC_VALUE_TYPE type = get_zval_xmlrpc_type(out, in_val, &val);
+      if(val) {
+         switch(type) {
+            case xmlrpc_nil:
+               xReturn = XMLRPC_CreateValueEmpty();
+               XMLRPC_SetValueID(xReturn, key, 0);
+               break;
+            case xmlrpc_base64:
+               xReturn = XMLRPC_CreateValueBase64(key, Z_STRVAL_P(val), Z_STRLEN_P(val));
+               break;
+            case xmlrpc_datetime:
+               convert_to_string(val);
+               xReturn = XMLRPC_CreateValueDateTime_ISO8601(key, Z_STRVAL_P(val));
+               break;
+            case xmlrpc_boolean:
+               convert_to_boolean(val);
+               xReturn = XMLRPC_CreateValueBoolean(key, Z_LVAL_P(val));
+               break;
+            case xmlrpc_int:
+               convert_to_long(val);
+               xReturn = XMLRPC_CreateValueInt(key, Z_LVAL_P(val));
+               break;
+            case xmlrpc_double:
+               convert_to_double(val);
+               xReturn = XMLRPC_CreateValueDouble(key, Z_DVAL_P(val));
+               break;
+            case xmlrpc_string:
+               convert_to_string(val);
+               xReturn = XMLRPC_CreateValueString(key, Z_STRVAL_P(val), Z_STRLEN_P(val));
+               break;
+            case xmlrpc_vector:
+               {
+                  unsigned long num_index;
+                  zval** pIter;
+                  char* my_key;
+
+                  convert_to_array(val);
+
+                  xReturn = XMLRPC_CreateVector(key, determine_vector_type(Z_ARRVAL_P(val)));
+
+                  zend_hash_internal_pointer_reset(Z_ARRVAL_P(val));
+                  while(1) {
+                     int res = my_zend_hash_get_current_key(Z_ARRVAL_P(val), &my_key, &num_index);
+                     if(res == HASH_KEY_IS_LONG) {
+                        if(zend_hash_get_current_data(Z_ARRVAL_P(val), (void**)&pIter) == SUCCESS) {
+                           XMLRPC_AddValueToVector(xReturn, PHP_to_XMLRPC_worker(out, 0, *pIter, depth++));
+                        }
+                     }
+                     else if(res == HASH_KEY_NON_EXISTANT) {
+                        break;
+                     }
+                     else if(res == HASH_KEY_IS_STRING) {
+                        if(zend_hash_get_current_data(Z_ARRVAL_P(val), (void**)&pIter) == SUCCESS) {
+                           XMLRPC_AddValueToVector(xReturn, PHP_to_XMLRPC_worker(out, my_key, *pIter, depth++));
+                        }
+                     }
+
+                     zend_hash_move_forward(Z_ARRVAL_P(val));
+                  }
+               }
+               break;
+            default:
+               break;
+         }
+      }
+   }
+   return xReturn;
+}
+
+static XMLRPC_VALUE PHP_to_XMLRPC(php_output_options* out, zval* root_val)
+{
+   return PHP_to_XMLRPC_worker(out, NULL, root_val, 0);
+}
+
+/* recursively convert xmlrpc values into php values */
+static zval* XMLRPC_to_PHP(XMLRPC_VALUE el)
+{
+   zval* elem = NULL;
+   const char* pStr;
+
+   if(el) {
+      XMLRPC_VALUE_TYPE type = XMLRPC_GetValueType(el);
+
+      MAKE_STD_ZVAL(elem); /* init. very important.  spent a frustrating day finding this out. */
+
+      switch(type) {
+         case xmlrpc_empty:
+         case xmlrpc_nil:
+            Z_TYPE_P(elem) = IS_NULL;
+            break;
+         case xmlrpc_string:
+            pStr = XMLRPC_GetValueString(el);
+            if(pStr) {
+               Z_STRLEN_P(elem) = XMLRPC_GetValueStringLen(el);
+               Z_STRVAL_P(elem) = estrndup(pStr, Z_STRLEN_P(elem));
+               Z_TYPE_P(elem) = IS_STRING;
+            }
+            break;
+         case xmlrpc_int:
+            Z_LVAL_P(elem) = XMLRPC_GetValueInt(el);
+            Z_TYPE_P(elem) = IS_LONG;
+            break;
+         case xmlrpc_boolean:
+            Z_LVAL_P(elem) = XMLRPC_GetValueBoolean(el);
+            Z_TYPE_P(elem) = IS_BOOL;
+            break;
+         case xmlrpc_double:
+            Z_DVAL_P(elem) = XMLRPC_GetValueDouble(el);
+            Z_TYPE_P(elem) = IS_DOUBLE;
+            break;
+         case xmlrpc_datetime:
+            Z_STRLEN_P(elem) = XMLRPC_GetValueStringLen(el);
+            Z_STRVAL_P(elem) = estrndup(XMLRPC_GetValueDateTime_ISO8601(el), Z_STRLEN_P(elem));
+            Z_TYPE_P(elem) = IS_STRING;
+            break;
+         case xmlrpc_base64:
+            pStr = XMLRPC_GetValueBase64(el);
+            if(pStr) {
+               Z_STRLEN_P(elem) = XMLRPC_GetValueStringLen(el);
+               Z_STRVAL_P(elem) = estrndup(pStr, Z_STRLEN_P(elem));
+               Z_TYPE_P(elem) = IS_STRING;
+            }
+            break;
+         case xmlrpc_vector:
+               array_init(elem);
+               {
+                       XMLRPC_VALUE xIter = XMLRPC_VectorRewind(el);
+
+                       while( xIter ) {
+                               zval *val = XMLRPC_to_PHP(xIter);
+                               if (val) {
+                                       add_zval(elem, XMLRPC_GetValueID(xIter), &val);
+                               }
+                               xIter = XMLRPC_VectorNext(el);
+                       }
+               }
+               break;
+         default:
+            break;
+      }
+      set_zval_xmlrpc_type(elem, type);
+   }
+   return elem;
+}
+
+/* {{{ proto string xmlrpc_encode_request(string method, mixed params)
+   Generates XML for a method request */
+PHP_FUNCTION(xmlrpc_encode_request)
+{
+       XMLRPC_REQUEST xRequest = NULL;
+       zval **method, **vals, **out_opts;
+       char* outBuf;
+       php_output_options out;
+
+       if (ZEND_NUM_ARGS() < 2 || ZEND_NUM_ARGS() > 3 || (zend_get_parameters_ex(ZEND_NUM_ARGS(), &method, &vals, &out_opts) == FAILURE)) {
+               WRONG_PARAM_COUNT; /* prints/logs a warning and returns */
+       }
+
+       set_output_options(&out, (ZEND_NUM_ARGS() == 3) ? *out_opts : 0);
+
+       if(return_value_used) {
+               xRequest = XMLRPC_RequestNew();
+
+               if(xRequest) {
+                       XMLRPC_RequestSetOutputOptions(xRequest, &out.xmlrpc_out);
+                       if (Z_TYPE_PP(method) == IS_NULL) {
+                               XMLRPC_RequestSetRequestType(xRequest, xmlrpc_request_response);
+                       } else {
+                               XMLRPC_RequestSetMethodName(xRequest, Z_STRVAL_PP(method));
+                               XMLRPC_RequestSetRequestType(xRequest, xmlrpc_request_call);
+                       }
+                       if (Z_TYPE_PP(vals) != IS_NULL) {
+                               XMLRPC_RequestSetData(xRequest, PHP_to_XMLRPC(&out, *vals));
+                       }
+
+                       outBuf = XMLRPC_REQUEST_ToXML(xRequest, 0);
+                       if(outBuf) {
+                               RETVAL_STRING(outBuf, 1);
+                               free(outBuf);
+                       }
+                       XMLRPC_RequestFree(xRequest, 1);
+               }
+       }
+}
+/* }}} */
+
+/* {{{ proto string xmlrpc_encode(mixed value)
+   Generates XML for a PHP value */
+PHP_FUNCTION(xmlrpc_encode)
+{
+       XMLRPC_VALUE xOut = NULL;
+       zval **arg1;
+       char *outBuf;
+
+       if (ZEND_NUM_ARGS() != 1 || (zend_get_parameters_ex(1, &arg1) == FAILURE)) {
+               WRONG_PARAM_COUNT;
+       }
+
+       if( return_value_used ) {
+               /* convert native php type to xmlrpc type */
+               xOut = PHP_to_XMLRPC(NULL, *arg1);
+
+               /* generate raw xml from xmlrpc data */
+               outBuf = XMLRPC_VALUE_ToXML(xOut, 0);
+
+               if(xOut) {
+                       if(outBuf) {
+                               RETVAL_STRING(outBuf, 1);
+                               free(outBuf);
+                       }
+                       /* cleanup */
+                       XMLRPC_CleanupValue(xOut);
+               }
+       }
+}
+/* }}} */
+
+
+zval* decode_request_worker (zval* xml_in, zval* encoding_in, zval* method_name_out)
+{
+   zval* retval = NULL;
+   XMLRPC_REQUEST response;
+   STRUCT_XMLRPC_REQUEST_INPUT_OPTIONS opts = {{0}};
+   opts.xml_elem_opts.encoding = encoding_in ? utf8_get_encoding_id_from_string(Z_STRVAL_P(encoding_in)) : ENCODING_DEFAULT;
+
+   /* generate XMLRPC_REQUEST from raw xml */
+   response = XMLRPC_REQUEST_FromXML(Z_STRVAL_P(xml_in), Z_STRLEN_P(xml_in), &opts);
+   if(response) {
+      /* convert xmlrpc data to native php types */
+      retval = XMLRPC_to_PHP(XMLRPC_RequestGetData(response));
+
+      if(XMLRPC_RequestGetRequestType(response) == xmlrpc_request_call) {
+         if(method_name_out) {
+            convert_to_string(method_name_out);
+            Z_TYPE_P(method_name_out) = IS_STRING;
+            Z_STRVAL_P(method_name_out) = estrdup(XMLRPC_RequestGetMethodName(response));
+            Z_STRLEN_P(method_name_out) = strlen(Z_STRVAL_P(method_name_out));
+         }
+      }
+
+      /* dust, sweep, and mop */
+      XMLRPC_RequestFree(response, 1);
+   }
+   return retval;
+}
+
+/* {{{ proto array xmlrpc_decode_request(string xml, string& method [, string encoding])
+   Decodes XML into native PHP types */
+PHP_FUNCTION(xmlrpc_decode_request)
+{
+       zval **xml, **method, **encoding = NULL;
+       int argc = ZEND_NUM_ARGS();
+
+       if (argc < 2 || argc > 3 || (zend_get_parameters_ex(argc, &xml, &method, &encoding) == FAILURE)) {
+               WRONG_PARAM_COUNT;
+       }
+
+       convert_to_string_ex(xml);
+       convert_to_string_ex(method);
+       if(argc == 3) {
+               convert_to_string_ex(encoding);
+       }
+
+       if(return_value_used) {
+               zval* retval = decode_request_worker(*xml, encoding ? *encoding : NULL, *method);
+               if(retval) {
+                       *return_value = *retval;
+                       FREE_ZVAL(retval);
+               }
+       }
+}
+/* }}} */
+
+
+/* {{{ proto array xmlrpc_decode(string xml [, string encoding])
+   Decodes XML into native PHP types */
+PHP_FUNCTION(xmlrpc_decode)
+{
+       zval **arg1, **arg2 = NULL;
+       int argc = ZEND_NUM_ARGS();
+
+       if (argc < 1 || argc > 2 || (zend_get_parameters_ex(argc, &arg1, &arg2) == FAILURE)) {
+               WRONG_PARAM_COUNT;
+       }
+
+       convert_to_string_ex(arg1);
+       if(argc == 2) {
+               convert_to_string_ex(arg2);
+       }
+
+       if(return_value_used) {
+               zval* retval = decode_request_worker(*arg1, arg2 ? *arg2 : NULL, NULL);
+               if(retval) {
+                       *return_value = *retval;
+                       FREE_ZVAL(retval);
+               }
+       }
+}
+/* }}} */
+
+
+/*************************
+* server related methods *
+*************************/
+
+/* {{{ proto resource xmlrpc_server_create(void)
+   Creates an xmlrpc server */
+PHP_FUNCTION(xmlrpc_server_create)
+{
+       if(ZEND_NUM_ARGS() != 0) {
+               WRONG_PARAM_COUNT;
+       }
+
+       if(return_value_used) {
+               zval *method_map, *introspection_map;
+               xmlrpc_server_data *server = emalloc(sizeof(xmlrpc_server_data));
+               MAKE_STD_ZVAL(method_map);
+               MAKE_STD_ZVAL(introspection_map);
+               
+               array_init(method_map);
+               array_init(introspection_map);
+               
+               /* allocate server data.  free'd in destroy_server_data() */
+               server->method_map = method_map;
+               server->introspection_map = introspection_map;
+               server->server_ptr = XMLRPC_ServerCreate();
+
+               XMLRPC_ServerRegisterIntrospectionCallback(server->server_ptr, php_xmlrpc_introspection_callback);
+
+               /* store for later use */
+               ZEND_REGISTER_RESOURCE(return_value,server, le_xmlrpc_server);
+       }
+}
+/* }}} */
+
+/* {{{ proto int xmlrpc_server_destroy(resource server)
+   Destroys server resources */
+PHP_FUNCTION(xmlrpc_server_destroy)
+{
+       zval **arg1;
+       int bSuccess = FAILURE;
+
+       if (ZEND_NUM_ARGS() != 1 || (zend_get_parameters_ex(1, &arg1) == FAILURE)) {
+               WRONG_PARAM_COUNT;
+       }
+
+       if(Z_TYPE_PP(arg1) == IS_RESOURCE) {
+               int type;
+
+               xmlrpc_server_data *server = zend_list_find(Z_LVAL_PP(arg1), &type);
+
+               if(server && type == le_xmlrpc_server) {
+                       bSuccess = zend_list_delete(Z_LVAL_PP(arg1));
+
+                       /* called by hashtable destructor
+                        * destroy_server_data(server);
+                        */
+               }
+       }
+       RETVAL_LONG(bSuccess == SUCCESS);
+}
+/* }}} */
+
+           
+/* called by xmlrpc C engine as method handler for all registered methods.
+ * it then calls the corresponding PHP function to handle the method.
+ */
+static XMLRPC_VALUE php_xmlrpc_callback(XMLRPC_SERVER server, XMLRPC_REQUEST xRequest, void* data)
+{
+   xmlrpc_callback_data* pData = (xmlrpc_callback_data*)data;
+   zval* xmlrpc_params;
+   zval* callback_params[3];
+   TSRMLS_FETCH();
+   
+   /* convert xmlrpc to native php types */
+   xmlrpc_params = XMLRPC_to_PHP(XMLRPC_RequestGetData(xRequest));
+
+   /* setup data hoojum */
+   callback_params[0] = pData->xmlrpc_method;
+   callback_params[1] = xmlrpc_params;
+   callback_params[2] = pData->caller_params;
+
+   /* Use same C function for all methods */
+
+   /* php func prototype: function user_func($method_name, $xmlrpc_params, $user_params) */
+   call_user_function(CG(function_table), NULL, pData->php_function, pData->return_data, 3, callback_params TSRMLS_CC);
+
+   pData->php_executed = 1;
+
+       zval_dtor(xmlrpc_params);
+       FREE_ZVAL(xmlrpc_params);
+
+       return NULL;
+}
+
+/* called by the C server when it first receives an introspection request.  We pass this on to
+ * our PHP listeners, if any
+ */
+static void php_xmlrpc_introspection_callback(XMLRPC_SERVER server, void* data)
+{
+   zval *retval_ptr, **php_function;
+   zval* callback_params[1];
+   xmlrpc_callback_data* pData = (xmlrpc_callback_data*)data;
+   TSRMLS_FETCH();
+   
+   MAKE_STD_ZVAL(retval_ptr);
+   Z_TYPE_P(retval_ptr) = IS_NULL;
+
+   /* setup data hoojum */
+   callback_params[0] = pData->caller_params;
+
+   /* loop through and call all registered callbacks */
+   zend_hash_internal_pointer_reset(Z_ARRVAL_P(pData->server->introspection_map));
+   while(1) {
+      if(zend_hash_get_current_data(Z_ARRVAL_P(pData->server->introspection_map), 
+                                    (void**)&php_function) == SUCCESS) {
+
+         /* php func prototype: function string user_func($user_params) */
+         if(call_user_function(CG(function_table), NULL, *php_function, 
+                               retval_ptr, 1, callback_params TSRMLS_CC) == SUCCESS) {
+            XMLRPC_VALUE xData;
+            STRUCT_XMLRPC_ERROR err = {0};
+
+            /* return value should be a string */
+            convert_to_string(retval_ptr);
+
+            xData = XMLRPC_IntrospectionCreateDescription(Z_STRVAL_P(retval_ptr), &err);
+
+            if(xData) {
+               if(!XMLRPC_ServerAddIntrospectionData(server, xData)) {
+                  php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to add introspection data returned from %s(), improper element structure", Z_STRVAL_PP(php_function));
+               }
+               XMLRPC_CleanupValue(xData);
+            }
+            else {
+               /* could not create description */
+               if(err.xml_elem_error.parser_code) {
+                  php_error_docref(NULL TSRMLS_CC, E_WARNING, "xml parse error: [line %ld, column %ld, message: %s] Unable to add introspection data returned from %s()", 
+                             err.xml_elem_error.column, err.xml_elem_error.line, err.xml_elem_error.parser_error, Z_STRVAL_PP(php_function));
+               }
+               else {
+                  php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to add introspection data returned from %s()", 
+                             Z_STRVAL_PP(php_function));
+               }
+            }
+         }
+         else {
+            /* user func failed */
+            php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error calling user introspection callback: %s()", Z_STRVAL_PP(php_function));
+         }
+      }
+      else {
+         break;
+      }
+
+      zend_hash_move_forward(Z_ARRVAL_P(pData->server->introspection_map));
+   }
+
+   /* so we don't call the same callbacks ever again */
+   zend_hash_clean(Z_ARRVAL_P(pData->server->introspection_map));
+}
+
+/* {{{ proto bool xmlrpc_server_register_method(resource server, string method_name, string function)
+   Register a PHP function to handle method matching method_name */
+PHP_FUNCTION(xmlrpc_server_register_method)
+{
+       zval **method_key, **method_name, **handle, *method_name_save;
+       int type;
+       xmlrpc_server_data* server;
+
+       if (ZEND_NUM_ARGS() != 3 || (zend_get_parameters_ex(3, &handle, &method_key, &method_name) == FAILURE)) {
+               WRONG_PARAM_COUNT;
+       }
+
+       server = zend_list_find(Z_LVAL_PP(handle), &type);
+
+       if(type == le_xmlrpc_server) {
+               /* register with C engine. every method just calls our standard callback, 
+                * and it then dispatches to php as necessary
+                */
+               if(XMLRPC_ServerRegisterMethod(server->server_ptr, Z_STRVAL_PP(method_key), php_xmlrpc_callback)) {
+                       /* save for later use */
+                       MAKE_STD_ZVAL(method_name_save);
+                       *method_name_save = **method_name;
+                       zval_copy_ctor(method_name_save);
+
+                       /* register our php method */
+                       add_zval(server->method_map, Z_STRVAL_PP(method_key), &method_name_save);
+
+                       RETURN_BOOL(1);
+               }
+       }
+       RETURN_BOOL(0);
+}
+/* }}} */
+
+
+/* {{{ proto bool xmlrpc_server_register_introspection_callback(resource server, string function)
+   Register a PHP function to generate documentation */
+PHP_FUNCTION(xmlrpc_server_register_introspection_callback)
+{
+       zval **method_name, **handle, *method_name_save;
+       int type;
+       xmlrpc_server_data* server;
+
+       if (ZEND_NUM_ARGS() != 2 || (zend_get_parameters_ex(2, &handle, &method_name) == FAILURE)) {
+               WRONG_PARAM_COUNT;
+       }
+
+       server = zend_list_find(Z_LVAL_PP(handle), &type);
+
+       if(type == le_xmlrpc_server) {
+               /* save for later use */
+               MAKE_STD_ZVAL(method_name_save);
+               *method_name_save = **method_name;
+               zval_copy_ctor(method_name_save);
+
+               /* register our php method */
+               add_zval(server->introspection_map, NULL, &method_name_save);
+
+               RETURN_BOOL(1);
+       }
+       RETURN_BOOL(0);
+}
+/* }}} */
+
+
+/* this function is itchin for a re-write */
+
+/* {{{ proto mixed xmlrpc_server_call_method(resource server, string xml, mixed user_data [, array output_options])
+   Parses XML requests and call methods */
+PHP_FUNCTION(xmlrpc_server_call_method)
+{
+       xmlrpc_callback_data data = {0};
+       XMLRPC_REQUEST xRequest;
+       STRUCT_XMLRPC_REQUEST_INPUT_OPTIONS input_opts;
+       xmlrpc_server_data* server;
+       zval **rawxml, **caller_params, **handle, **output_opts = NULL;
+       int type;
+       php_output_options out;
+       int argc =ZEND_NUM_ARGS();
+       
+       if (argc < 3 || argc > 4 || (zend_get_parameters_ex(argc, &handle, &rawxml, &caller_params, &output_opts) != SUCCESS)) {
+               WRONG_PARAM_COUNT;
+       }
+       /* user output options */
+       if (argc == 3) {
+               set_output_options(&out, NULL);
+       }
+       else {
+               set_output_options(&out, *output_opts);
+       }
+
+       server = zend_list_find(Z_LVAL_PP(handle), &type);
+
+       if(type == le_xmlrpc_server) {
+               /* HACK: use output encoding for now */
+               input_opts.xml_elem_opts.encoding = utf8_get_encoding_id_from_string(out.xmlrpc_out.xml_elem_opts.encoding);
+
+               /* generate an XMLRPC_REQUEST from the raw xml input */
+               xRequest = XMLRPC_REQUEST_FromXML(Z_STRVAL_PP(rawxml), Z_STRLEN_PP(rawxml), &input_opts);
+
+               if(xRequest) {
+                       const char* methodname = XMLRPC_RequestGetMethodName(xRequest);
+                       zval **php_function;
+                       XMLRPC_VALUE xAnswer = NULL;
+                       MAKE_STD_ZVAL(data.xmlrpc_method); /* init. very important.  spent a frustrating day finding this out. */
+                       MAKE_STD_ZVAL(data.return_data);
+                       Z_TYPE_P(data.return_data) = IS_NULL;  /* in case value is never init'd, we don't dtor to think it is a string or something */
+                       Z_TYPE_P(data.xmlrpc_method) = IS_NULL;
+
+                       if (!methodname) {
+                               methodname = "";
+                       }
+            
+                       /* setup some data to pass to the callback function */
+                       Z_STRVAL_P(data.xmlrpc_method) = estrdup(methodname);
+                       Z_STRLEN_P(data.xmlrpc_method) = strlen(methodname);
+                       Z_TYPE_P(data.xmlrpc_method) = IS_STRING;
+                       data.caller_params = *caller_params;
+                       data.php_executed = 0;
+                       data.server = server;
+
+                       /* check if the called method has been previous registered */
+                       if(zend_hash_find(Z_ARRVAL_P(server->method_map),
+                              Z_STRVAL_P(data.xmlrpc_method), 
+                              Z_STRLEN_P(data.xmlrpc_method) + 1, 
+                              (void**)&php_function) == SUCCESS) {
+
+                               data.php_function = *php_function;
+                       }
+
+                       /* We could just call the php method directly ourselves at this point, but we do this 
+                        * with a C callback in case the xmlrpc library ever implements some cool usage stats,
+                        * or somesuch.
+                        */
+                       xAnswer = XMLRPC_ServerCallMethod(server->server_ptr, xRequest, &data);
+                       if(xAnswer && out.b_php_out) {
+                               zval_dtor(data.return_data);
+                               FREE_ZVAL(data.return_data);
+                               data.return_data = XMLRPC_to_PHP(xAnswer);
+                       } else if(data.php_executed && !out.b_php_out) {
+                               xAnswer = PHP_to_XMLRPC(&out, data.return_data);
+                       }
+
+                       /* should we return data as xml? */
+                       if(!out.b_php_out) {
+                               XMLRPC_REQUEST xResponse = XMLRPC_RequestNew();
+                               if(xResponse) {
+                                       char *outBuf = 0;
+                                       int buf_len = 0;
+
+                                       /* automagically determine output serialization type from request type */
+                                       if (out.b_auto_version) { 
+                                               XMLRPC_REQUEST_OUTPUT_OPTIONS opts = XMLRPC_RequestGetOutputOptions(xRequest);
+                                               if (opts) {
+                                                       out.xmlrpc_out.version = opts->version;
+                                               }
+                                       }
+                                       /* set some required request hoojum */
+                                       XMLRPC_RequestSetOutputOptions(xResponse, &out.xmlrpc_out);
+                                       XMLRPC_RequestSetRequestType(xResponse, xmlrpc_request_response);
+                                       XMLRPC_RequestSetData(xResponse, xAnswer);
+                                       XMLRPC_RequestSetMethodName(xResponse, methodname);
+
+                                       /* generate xml */
+                                       outBuf = XMLRPC_REQUEST_ToXML(xResponse, &buf_len);
+                                       if(outBuf) {
+                                               RETVAL_STRINGL(outBuf, buf_len, 1);
+                                               free(outBuf);
+                                       }
+                                       /* cleanup after ourselves.  what a sty! */
+                                       XMLRPC_RequestFree(xResponse, 0);
+                               }
+                       } else { /* or as native php types? */
+                               *return_value = *data.return_data;
+                               zval_copy_ctor(return_value);
+                       }
+
+                       /* cleanup after ourselves.  what a sty! */
+                       zval_dtor(data.xmlrpc_method);
+                       FREE_ZVAL(data.xmlrpc_method);
+                       zval_dtor(data.return_data);
+                       FREE_ZVAL(data.return_data);
+
+                       if(xAnswer) {
+                               XMLRPC_CleanupValue(xAnswer);
+                       }
+
+                       XMLRPC_RequestFree(xRequest, 1);
+               }
+       }
+}
+/* }}} */
+
+
+/* {{{ proto int xmlrpc_server_add_introspection_data(resource server, array desc)
+   Adds introspection documentation  */
+PHP_FUNCTION(xmlrpc_server_add_introspection_data)
+{
+       zval **handle, **desc;
+       int type;
+       xmlrpc_server_data* server;
+
+       if (ZEND_NUM_ARGS() != 2 || (zend_get_parameters_ex(2, &handle, &desc) == FAILURE)) {
+               WRONG_PARAM_COUNT;
+       }
+
+       server = zend_list_find(Z_LVAL_PP(handle), &type);
+
+       if (type == le_xmlrpc_server) {
+               XMLRPC_VALUE xDesc = PHP_to_XMLRPC(NULL, *desc);
+               if (xDesc) {
+                       int retval = XMLRPC_ServerAddIntrospectionData(server->server_ptr, xDesc);
+                       XMLRPC_CleanupValue(xDesc);
+                       RETURN_LONG(retval);
+               }
+       }
+       RETURN_LONG(0);
+}
+/* }}} */
+
+
+/* {{{ proto array xmlrpc_parse_method_descriptions(string xml)
+   Decodes XML into a list of method descriptions */
+PHP_FUNCTION(xmlrpc_parse_method_descriptions)
+{
+       zval **arg1, *retval;
+
+       if (ZEND_NUM_ARGS() != 1 || (zend_get_parameters_ex(1, &arg1) == FAILURE)) {
+               WRONG_PARAM_COUNT;
+       }
+
+       convert_to_string_ex(arg1);
+
+       if(return_value_used) {
+               STRUCT_XMLRPC_ERROR err = {0};
+               XMLRPC_VALUE xVal = XMLRPC_IntrospectionCreateDescription(Z_STRVAL_PP(arg1), &err);
+               if(xVal) {
+                       retval = XMLRPC_to_PHP(xVal);
+
+                       if(retval) {
+                               *return_value = *retval;
+                               zval_copy_ctor(return_value);
+                       }
+                       /* dust, sweep, and mop */
+                       XMLRPC_CleanupValue(xVal);
+               } else {
+                       /* could not create description */
+                       if(err.xml_elem_error.parser_code) {
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING, "xml parse error: [line %ld, column %ld, message: %s] Unable to create introspection data", 
+                               err.xml_elem_error.column, err.xml_elem_error.line, err.xml_elem_error.parser_error);
+                       } else {
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid xml structure. Unable to create introspection data");
+                       }
+
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "xml parse error. no method description created");
+               }
+       }
+}
+/* }}} */
+
+
+/************
+* type data *
+************/
+
+#define XMLRPC_TYPE_COUNT 10
+#define XMLRPC_VECTOR_TYPE_COUNT 4
+#define TYPE_STR_MAP_SIZE (XMLRPC_TYPE_COUNT + XMLRPC_VECTOR_TYPE_COUNT)
+
+/* return a string matching a given xmlrpc type */
+static const char** get_type_str_mapping(void)
+{
+   static const char* str_mapping[TYPE_STR_MAP_SIZE];
+   static int first = 1;
+   if (first) {
+      /* warning. do not add/delete without changing size define */
+      str_mapping[xmlrpc_none]     = "none";
+      str_mapping[xmlrpc_empty]    = "empty";
+      str_mapping[xmlrpc_nil]      = "nil";
+      str_mapping[xmlrpc_base64]   = "base64";
+      str_mapping[xmlrpc_boolean]  = "boolean";
+      str_mapping[xmlrpc_datetime] = "datetime";
+      str_mapping[xmlrpc_double]   = "double";
+      str_mapping[xmlrpc_int]      = "int";
+      str_mapping[xmlrpc_string]   = "string";
+      str_mapping[xmlrpc_vector]   = "vector";
+      str_mapping[XMLRPC_TYPE_COUNT + xmlrpc_vector_none]   = "none";
+      str_mapping[XMLRPC_TYPE_COUNT + xmlrpc_vector_array]  = "array";
+      str_mapping[XMLRPC_TYPE_COUNT + xmlrpc_vector_mixed]  = "mixed";
+      str_mapping[XMLRPC_TYPE_COUNT + xmlrpc_vector_struct] = "struct";
+      first = 0;
+   }
+   return (const char**)str_mapping;
+}
+
+/* map an xmlrpc type to a string */
+const char* xmlrpc_type_as_str(XMLRPC_VALUE_TYPE type, XMLRPC_VECTOR_TYPE vtype)
+{
+   const char** str_mapping = get_type_str_mapping();
+
+   if (vtype == xmlrpc_vector_none) {
+      return str_mapping[type];
+   } else {
+      return str_mapping[XMLRPC_TYPE_COUNT + vtype];
+   }
+}
+
+/* map a string to an xmlrpc type */
+XMLRPC_VALUE_TYPE xmlrpc_str_as_type(const char* str)
+{
+   const char** str_mapping = get_type_str_mapping();
+   int i;
+
+   if (str) {
+      for (i = 0; i < XMLRPC_TYPE_COUNT; i++) {
+         if (!strcmp(str_mapping[i], str)) {
+            return (XMLRPC_VALUE_TYPE) i;
+         }
+      }
+   }
+   return xmlrpc_none;
+}
+
+/* map a string to an xmlrpc vector type */
+XMLRPC_VECTOR_TYPE xmlrpc_str_as_vector_type(const char* str)
+{
+   const char** str_mapping = get_type_str_mapping();
+   int i;
+
+   if (str) {
+      for (i = XMLRPC_TYPE_COUNT; i < TYPE_STR_MAP_SIZE; i++) {
+         if (!strcmp(str_mapping[i], str)) {
+            return (XMLRPC_VECTOR_TYPE) (i - XMLRPC_TYPE_COUNT);
+         }
+      }
+   }
+   return xmlrpc_none;
+}
+
+
+/* set a given value to a particular type. 
+ * note: this only works on strings, and only for date and base64,
+ *       which do not have native php types. black magic lies herein.
+ */
+int set_zval_xmlrpc_type(zval* value, XMLRPC_VALUE_TYPE newtype)
+{
+   int bSuccess = FAILURE;
+   TSRMLS_FETCH();
+
+   /* we only really care about strings because they can represent
+    * base64 and datetime.  all other types have corresponding php types
+    */
+   if (Z_TYPE_P(value) == IS_STRING) {
+      if (newtype == xmlrpc_base64 || newtype == xmlrpc_datetime) {
+         const char* typestr = xmlrpc_type_as_str(newtype, xmlrpc_vector_none);
+         zval* type;
+
+         MAKE_STD_ZVAL(type);
+
+         Z_TYPE_P(type) = IS_STRING;
+         Z_STRVAL_P(type) = estrdup(typestr);
+         Z_STRLEN_P(type) = strlen(typestr);
+
+         if(newtype == xmlrpc_datetime) {
+            XMLRPC_VALUE v = XMLRPC_CreateValueDateTime_ISO8601(NULL, value->value.str.val);
+            if(v) {
+               time_t timestamp = XMLRPC_GetValueDateTime(v);
+               if(timestamp) {
+                  pval* ztimestamp;
+
+                  MAKE_STD_ZVAL(ztimestamp);
+
+                  ztimestamp->type = IS_LONG;
+                  ztimestamp->value.lval = timestamp;
+
+                  convert_to_object(value);
+                  if(SUCCESS == zend_hash_update(Z_OBJPROP_P(value), OBJECT_TYPE_ATTR, sizeof(OBJECT_TYPE_ATTR), (void *) &type, sizeof(zval *), NULL)) {
+                     bSuccess = zend_hash_update(Z_OBJPROP_P(value), OBJECT_VALUE_TS_ATTR, sizeof(OBJECT_VALUE_TS_ATTR), (void *) &ztimestamp, sizeof(zval *), NULL);
+                  }
+               }
+               XMLRPC_CleanupValue(v);
+            }
+         }
+         else {
+            convert_to_object(value);
+            bSuccess = zend_hash_update(Z_OBJPROP_P(value), OBJECT_TYPE_ATTR, sizeof(OBJECT_TYPE_ATTR), (void *) &type, sizeof(zval *), NULL);
+         }
+      }
+   }
+   
+   return bSuccess;
+}
+
+/* return xmlrpc type of a php value */
+XMLRPC_VALUE_TYPE get_zval_xmlrpc_type(php_output_options* out, zval* value, zval** newvalue)
+{
+   XMLRPC_VALUE_TYPE type = xmlrpc_none;
+   TSRMLS_FETCH();
+   XMLRPCLS_FETCH();
+
+   if (value) {
+      switch (Z_TYPE_P(value)) {
+         case IS_NULL:
+            if (XMLRPCG(allow_null) || (out && out->b_allow_null)) {
+               type = xmlrpc_nil;
+            } else {
+               type = xmlrpc_string;
+            }
+            break;
+#ifndef BOOL_AS_LONG
+
+   /* Right thing to do, but it breaks some legacy code. */
+         case IS_BOOL:
+            type = xmlrpc_boolean;
+            break;
+#else
+         case IS_BOOL:
+#endif
+         case IS_LONG:
+         case IS_RESOURCE:
+            type = xmlrpc_int;
+            break;
+         case IS_DOUBLE:
+            type = xmlrpc_double;
+            break;
+         case IS_CONSTANT:
+            type = xmlrpc_string;
+            break;
+         case IS_STRING:
+            type = xmlrpc_string;
+            break;
+         case IS_ARRAY:
+         case IS_CONSTANT_ARRAY:
+            type = xmlrpc_vector;
+            break;
+         case IS_OBJECT:
+         {
+            zval** attr;
+            type = xmlrpc_vector;
+
+            if (zend_hash_find(Z_OBJPROP_P(value), OBJECT_TYPE_ATTR, sizeof(OBJECT_TYPE_ATTR), (void**) &attr) == SUCCESS) {
+               if (Z_TYPE_PP(attr) == IS_STRING) {
+                  type = xmlrpc_str_as_type(Z_STRVAL_PP(attr));
+               }
+            }
+            break;
+         }
+      }
+
+               /* if requested, return an unmolested (magic removed) copy of the value */
+               if (newvalue) {
+                       zval** val;
+
+                       if ((type == xmlrpc_base64 && Z_TYPE_P(value) != IS_NULL) || type == xmlrpc_datetime) {
+                               if (zend_hash_find(Z_OBJPROP_P(value), OBJECT_VALUE_ATTR, sizeof(OBJECT_VALUE_ATTR), (void**) &val) == SUCCESS) {
+                                       *newvalue = *val;
+                               }
+                       } else {
+                               *newvalue = value;
+                       }
+               }
+       }
+
+       return type;
+}
+
+
+/* {{{ proto bool xmlrpc_set_type(string value, string type)
+   Sets xmlrpc type, base64 or datetime or nil, for a PHP string value */
+PHP_FUNCTION(xmlrpc_set_type)
+{
+       zval **arg, **type;
+       XMLRPC_VALUE_TYPE vtype;
+
+       if (ZEND_NUM_ARGS() != 2 || (zend_get_parameters_ex(2, &arg, &type) == FAILURE)) {
+               WRONG_PARAM_COUNT;
+       }
+
+       convert_to_string_ex(type);
+       vtype = xmlrpc_str_as_type(Z_STRVAL_PP(type));
+       if (vtype != xmlrpc_none) {
+               if (set_zval_xmlrpc_type(*arg, vtype) == SUCCESS) {
+                       RETURN_TRUE;
+               }
+       } else {
+               zend_error(E_WARNING,"invalid type '%s' passed to xmlrpc_set_type()", Z_STRVAL_PP(type));
+       }
+       RETURN_FALSE;
+}
+/* }}} */
+
+/* {{{ proto string xmlrpc_get_type(mixed value)
+   Gets xmlrpc type for a PHP value. Especially useful for base64 and datetime strings */
+PHP_FUNCTION(xmlrpc_get_type)
+{
+       zval **arg;
+       XMLRPC_VALUE_TYPE type;
+       XMLRPC_VECTOR_TYPE vtype = xmlrpc_vector_none;
+
+       if (ZEND_NUM_ARGS() != 1 || (zend_get_parameters_ex(1, &arg) == FAILURE)) {
+               WRONG_PARAM_COUNT;
+       }
+
+       type = get_zval_xmlrpc_type(NULL, *arg, 0);
+       if (type == xmlrpc_vector) {
+               vtype = determine_vector_type(Z_ARRVAL_PP(arg));
+       }
+   
+       RETURN_STRING((char*) xmlrpc_type_as_str(type, vtype), 1);
+}
+/* }}} */
+
+/* {{{ proto bool xmlrpc_is_fault(array)
+   Determines if an array value represents an XMLRPC fault. */
+PHP_FUNCTION(xmlrpc_is_fault)
+{
+       zval **arg, **val;
+
+       if (ZEND_NUM_ARGS() != 1 || (zend_get_parameters_ex(1, &arg) == FAILURE)) {
+               WRONG_PARAM_COUNT;
+       }
+
+       if (Z_TYPE_PP(arg) != IS_ARRAY) {
+               php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Array argument expected");
+       } else {
+               /* The "correct" way to do this would be to call the xmlrpc
+                * library XMLRPC_ValueIsFault() func.  However, doing that
+                * would require us to create an xmlrpc value from the php
+                * array, which is rather expensive, especially if it was
+                * a big array.  Thus, we resort to this not so clever hackery.
+                */
+               if (zend_hash_find(Z_ARRVAL_PP(arg), FAULT_CODE, FAULT_CODE_LEN + 1, (void**) &val) == SUCCESS && 
+                   zend_hash_find(Z_ARRVAL_PP(arg), FAULT_STRING, FAULT_STRING_LEN + 1, (void**) &val) == SUCCESS) {
+                       RETURN_TRUE;
+               }
+       }
+
+       RETURN_FALSE;
+}
+/* }}} */
+
+
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * End:
+ */
+
diff --git a/trunk/php/xmlrpc/xmlrpc.dsp b/trunk/php/xmlrpc/xmlrpc.dsp
new file mode 100644 (file)
index 0000000..8c455d3
--- /dev/null
@@ -0,0 +1,211 @@
+# Microsoft Developer Studio Project File - Name="xmlrpc" - Package Owner=<4>\r
+# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
+# ** DO NOT EDIT **\r
+\r
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102\r
+\r
+CFG=xmlrpc - Win32 Debug_TS\r
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
+!MESSAGE use the Export Makefile command and run\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "xmlrpc.mak".\r
+!MESSAGE \r
+!MESSAGE You can specify a configuration when running NMAKE\r
+!MESSAGE by defining the macro CFG on the command line. For example:\r
+!MESSAGE \r
+!MESSAGE NMAKE /f "xmlrpc.mak" CFG="xmlrpc - Win32 Debug_TS"\r
+!MESSAGE \r
+!MESSAGE Possible choices for configuration are:\r
+!MESSAGE \r
+!MESSAGE "xmlrpc - Win32 Debug_TS" (based on "Win32 (x86) Dynamic-Link Library")\r
+!MESSAGE "xmlrpc - Win32 Release_TS" (based on "Win32 (x86) Dynamic-Link Library")\r
+!MESSAGE \r
+\r
+# Begin Project\r
+# PROP AllowPerConfigDependencies 0\r
+# PROP Scc_ProjName ""\r
+# PROP Scc_LocalPath ""\r
+CPP=cl.exe\r
+MTL=midl.exe\r
+RSC=rc.exe\r
+\r
+!IF  "$(CFG)" == "xmlrpc - Win32 Debug_TS"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 1\r
+# PROP BASE Output_Dir "Debug_TS"\r
+# PROP BASE Intermediate_Dir "Debug_TS"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 1\r
+# PROP Output_Dir "Debug_TS"\r
+# PROP Intermediate_Dir "Debug_TS"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XMLRPC_EXPORTS" /YX /FD /GZ /c\r
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\main" /I "..\..\Zend" /I "..\..\TSRM" /I "libxmlrpc" /I "..\..\bundle\expat" /D HAVE_XMLRPC=1 /D "ZEND_WIN32" /D "PHP_WIN32" /D ZEND_DEBUG=1 /D ZTS=1 /D COMPILE_DL_XMLRPC=1 /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XMLRPC_EXPORTS" /YX /FD /GZ /c\r
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
+# ADD BASE RSC /l 0x1009 /d "_DEBUG"\r
+# ADD RSC /l 0x1009 /d "_DEBUG"\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept\r
+# ADD LINK32 php5ts_debug.lib expat.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"..\..\Debug_TS/php_xmlrpc.dll" /pdbtype:sept /libpath:"..\..\Debug_TS"\r
+\r
+!ELSEIF  "$(CFG)" == "xmlrpc - Win32 Release_TS"\r
+\r
+# PROP BASE Use_MFC 0\r
+# PROP BASE Use_Debug_Libraries 0\r
+# PROP BASE Output_Dir "Release_TS"\r
+# PROP BASE Intermediate_Dir "Release_TS"\r
+# PROP BASE Target_Dir ""\r
+# PROP Use_MFC 0\r
+# PROP Use_Debug_Libraries 0\r
+# PROP Output_Dir "Release_TS"\r
+# PROP Intermediate_Dir "Release_TS"\r
+# PROP Ignore_Export_Lib 0\r
+# PROP Target_Dir ""\r
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XMLRPC_EXPORTS" /YX /FD /c\r
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\.." /I "..\..\main" /I "..\..\Zend" /I "..\..\TSRM" /I "libxmlrpc" /I "..\..\bundle\expat" /D HAVE_XMLRPC=1 /D "ZEND_WIN32" /D ZEND_DEBUG=0 /D "PHP_WIN32" /D ZTS=1 /D COMPILE_DL_XMLRPC=1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XMLRPC_EXPORTS" /YX /FD /c\r
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
+# ADD BASE RSC /l 0x1009 /d "NDEBUG"\r
+# ADD RSC /l 0x1009 /d "NDEBUG"\r
+BSC32=bscmake.exe\r
+# ADD BASE BSC32 /nologo\r
+# ADD BSC32 /nologo\r
+LINK32=link.exe\r
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386\r
+# ADD LINK32 php5ts.lib expat.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"..\..\Release_TS/php_xmlrpc.dll" /libpath:"..\..\Release_TS"\r
+\r
+!ENDIF \r
+\r
+# Begin Target\r
+\r
+# Name "xmlrpc - Win32 Debug_TS"\r
+# Name "xmlrpc - Win32 Release_TS"\r
+# Begin Group "Source Files"\r
+\r
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
+# Begin Source File\r
+\r
+SOURCE=".\xmlrpc-epi-php.c"\r
+# End Source File\r
+# End Group\r
+# Begin Group "Header Files"\r
+\r
+# PROP Default_Filter "h;hpp;hxx;hm;inl"\r
+# Begin Source File\r
+\r
+SOURCE=.\php_xmlrpc.h\r
+# End Source File\r
+# End Group\r
+# Begin Group "Resource Files"\r
+\r
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
+# End Group\r
+# Begin Group "libxmlrpc"\r
+\r
+# PROP Default_Filter ""\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\base64.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\base64.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\encodings.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\encodings.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\queue.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\queue.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\simplestring.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\simplestring.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\system_methods.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\system_methods_private.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\xml_element.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\xml_element.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\xml_to_dandarpc.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\xml_to_dandarpc.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\xml_to_soap.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\xml_to_soap.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\xml_to_xmlrpc.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\xml_to_xmlrpc.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\xmlrpc.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\xmlrpc.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\xmlrpc_introspection.c\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\xmlrpc_introspection.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\xmlrpc_introspection_private.h\r
+# End Source File\r
+# Begin Source File\r
+\r
+SOURCE=.\libxmlrpc\xmlrpc_private.h\r
+# End Source File\r
+# End Group\r
+# End Target\r
+# End Project\r
diff --git a/trunk/planetlab4.sql b/trunk/planetlab4.sql
new file mode 100644 (file)
index 0000000..8bfb42a
--- /dev/null
@@ -0,0 +1,1152 @@
+--
+-- PlanetLab Central database schema
+-- Version 4, PostgreSQL
+--
+-- Aaron Klingaman <alk@cs.princeton.edu>
+-- Reid Moran <rmoran@cs.princeton.edu>
+-- Mark Huang <mlhuang@cs.princeton.edu>
+-- Tony Mack <tmack@cs.princeton.edu>
+--
+-- Copyright (C) 2006 The Trustees of Princeton University
+--
+-- $Id$
+--
+
+SET client_encoding = 'UNICODE';
+
+--------------------------------------------------------------------------------
+-- Aggregates and store procedures
+--------------------------------------------------------------------------------
+
+-- Like MySQL GROUP_CONCAT(), this function aggregates values into a
+-- PostgreSQL array.
+CREATE AGGREGATE array_accum (
+    sfunc = array_append,
+    basetype = anyelement,
+    stype = anyarray,
+    initcond = '{}'
+);
+
+--------------------------------------------------------------------------------
+-- Version
+--------------------------------------------------------------------------------
+
+-- Database version
+CREATE TABLE plc_db_version (
+    version integer NOT NULL,
+    subversion integer NOT NULL DEFAULT 0
+) WITH OIDS;
+
+INSERT INTO plc_db_version (version, subversion) VALUES (4, 9);
+
+--------------------------------------------------------------------------------
+-- Accounts
+--------------------------------------------------------------------------------
+
+-- Accounts
+CREATE TABLE persons (
+    -- Mandatory
+    person_id serial PRIMARY KEY, -- Account identifier
+    email text NOT NULL, -- E-mail address
+    first_name text NOT NULL, -- First name
+    last_name text NOT NULL, -- Last name
+    deleted boolean NOT NULL DEFAULT false, -- Has been deleted
+    enabled boolean NOT NULL DEFAULT false, -- Has been disabled
+
+    -- Password
+    password text NOT NULL DEFAULT 'nopass', -- Password (md5crypted)
+    verification_key text, -- Reset password key
+    verification_expires timestamp without time zone,
+
+    -- Optional
+    title text, -- Honorific
+    phone text, -- Telephone number
+    url text, -- Home page
+    bio text, -- Biography
+
+    -- Timestamps
+    date_created timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    last_updated timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP
+) WITH OIDS;
+CREATE INDEX persons_email_idx ON persons (email) WHERE deleted IS false;
+
+--------------------------------------------------------------------------------
+-- Sites
+--------------------------------------------------------------------------------
+
+-- Sites
+CREATE TABLE sites (
+    -- Mandatory
+    site_id serial PRIMARY KEY, -- Site identifier
+    login_base text NOT NULL, -- Site slice prefix
+    name text NOT NULL, -- Site name
+    abbreviated_name text NOT NULL, -- Site abbreviated name
+    enabled boolean NOT NULL Default true, -- Is this site enabled
+    deleted boolean NOT NULL DEFAULT false, -- Has been deleted
+    is_public boolean NOT NULL DEFAULT true, -- Shows up in public lists
+    max_slices integer NOT NULL DEFAULT 0, -- Maximum number of slices
+    max_slivers integer NOT NULL DEFAULT 1000, -- Maximum number of instantiated slivers
+
+    -- Optional
+    latitude real,
+    longitude real,
+    url text,
+    ext_consortium_id integer, -- external consortium id
+
+    -- Timestamps
+    date_created timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    last_updated timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP
+) WITH OIDS;
+CREATE INDEX sites_login_base_idx ON sites (login_base) WHERE deleted IS false;
+
+-- Account site membership
+CREATE TABLE person_site (
+    person_id integer REFERENCES persons NOT NULL, -- Account identifier
+    site_id integer REFERENCES sites NOT NULL, -- Site identifier
+    is_primary boolean NOT NULL DEFAULT false, -- Is the primary site for this account
+    PRIMARY KEY (person_id, site_id)
+);
+CREATE INDEX person_site_person_id_idx ON person_site (person_id);
+CREATE INDEX person_site_site_id_idx ON person_site (site_id);
+
+-- Ordered by primary site first
+CREATE VIEW person_site_ordered AS
+SELECT person_id, site_id
+FROM person_site
+ORDER BY is_primary DESC;
+
+-- Sites that each person is a member of
+CREATE VIEW person_sites AS
+SELECT person_id,
+array_accum(site_id) AS site_ids
+FROM person_site_ordered
+GROUP BY person_id;
+
+-- Accounts at each site
+CREATE VIEW site_persons AS
+SELECT site_id,
+array_accum(person_id) AS person_ids
+FROM person_site
+GROUP BY site_id;
+
+--------------------------------------------------------------------------------
+-- Mailing Addresses
+--------------------------------------------------------------------------------
+
+CREATE TABLE address_types (
+    address_type_id serial PRIMARY KEY, -- Address type identifier
+    name text UNIQUE NOT NULL, -- Address type
+    description text -- Address type description
+) WITH OIDS;
+
+INSERT INTO address_types (name) VALUES ('Personal');
+INSERT INTO address_types (name) VALUES ('Shipping');
+-- XXX Used to be Site
+INSERT INTO address_types (name) VALUES ('Billing');
+
+-- Mailing addresses
+CREATE TABLE addresses (
+    address_id serial PRIMARY KEY, -- Address identifier
+    line1 text NOT NULL, -- Address line 1
+    line2 text, -- Address line 2
+    line3 text, -- Address line 3
+    city text NOT NULL, -- City
+    state text NOT NULL, -- State or province
+    postalcode text NOT NULL, -- Postal code
+    country text NOT NULL -- Country
+) WITH OIDS;
+
+-- Each mailing address can be one of several types
+CREATE TABLE address_address_type (
+    address_id integer REFERENCES addresses NOT NULL, -- Address identifier
+    address_type_id integer REFERENCES address_types NOT NULL, -- Address type
+    PRIMARY KEY (address_id, address_type_id)
+) WITH OIDS;
+CREATE INDEX address_address_type_address_id_idx ON address_address_type (address_id);
+CREATE INDEX address_address_type_address_type_id_idx ON address_address_type (address_type_id);
+
+CREATE VIEW address_address_types AS
+SELECT address_id,
+array_accum(address_type_id) AS address_type_ids,
+array_accum(address_types.name) AS address_types
+FROM address_address_type
+LEFT JOIN address_types USING (address_type_id)
+GROUP BY address_id;
+
+CREATE TABLE site_address (
+    site_id integer REFERENCES sites NOT NULL, -- Site identifier
+    address_id integer REFERENCES addresses NOT NULL, -- Address identifier
+    PRIMARY KEY (site_id, address_id)
+) WITH OIDS;
+CREATE INDEX site_address_site_id_idx ON site_address (site_id);
+CREATE INDEX site_address_address_id_idx ON site_address (address_id);
+
+CREATE VIEW site_addresses AS
+SELECT site_id,
+array_accum(address_id) AS address_ids
+FROM site_address
+GROUP BY site_id;
+
+--------------------------------------------------------------------------------
+-- Authentication Keys
+--------------------------------------------------------------------------------
+
+-- Valid key types
+CREATE TABLE key_types (
+    key_type text PRIMARY KEY -- Key type
+) WITH OIDS;
+INSERT INTO key_types (key_type) VALUES ('ssh');
+
+-- Authentication keys
+CREATE TABLE keys (
+    key_id serial PRIMARY KEY, -- Key identifier
+    key_type text REFERENCES key_types NOT NULL, -- Key type
+    key text NOT NULL, -- Key material
+    is_blacklisted boolean NOT NULL DEFAULT false -- Has been blacklisted
+) WITH OIDS;
+
+-- Account authentication key(s)
+CREATE TABLE person_key (
+    key_id integer REFERENCES keys PRIMARY KEY, -- Key identifier
+    person_id integer REFERENCES persons NOT NULL -- Account identifier
+) WITH OIDS;
+CREATE INDEX person_key_person_id_idx ON person_key (person_id);
+
+CREATE VIEW person_keys AS
+SELECT person_id,
+array_accum(key_id) AS key_ids
+FROM person_key
+GROUP BY person_id;
+
+--------------------------------------------------------------------------------
+-- Account roles
+--------------------------------------------------------------------------------
+
+-- Valid account roles
+CREATE TABLE roles (
+    role_id integer PRIMARY KEY, -- Role identifier
+    name text UNIQUE NOT NULL -- Role symbolic name
+) WITH OIDS;
+INSERT INTO roles (role_id, name) VALUES (10, 'admin');
+INSERT INTO roles (role_id, name) VALUES (20, 'pi');
+INSERT INTO roles (role_id, name) VALUES (30, 'user');
+INSERT INTO roles (role_id, name) VALUES (40, 'tech');
+
+CREATE TABLE person_role (
+    person_id integer REFERENCES persons NOT NULL, -- Account identifier
+    role_id integer REFERENCES roles NOT NULL, -- Role identifier
+    PRIMARY KEY (person_id, role_id)
+) WITH OIDS;
+CREATE INDEX person_role_person_id_idx ON person_role (person_id);
+
+-- Account roles
+CREATE VIEW person_roles AS
+SELECT person_id,
+array_accum(role_id) AS role_ids,
+array_accum(roles.name) AS roles
+FROM person_role
+LEFT JOIN roles USING (role_id)
+GROUP BY person_id;
+
+--------------------------------------------------------------------------------
+-- Nodes
+--------------------------------------------------------------------------------
+
+-- Valid node boot states
+CREATE TABLE boot_states (
+    boot_state text PRIMARY KEY
+) WITH OIDS;
+INSERT INTO boot_states (boot_state) VALUES ('boot');
+INSERT INTO boot_states (boot_state) VALUES ('dbg');
+INSERT INTO boot_states (boot_state) VALUES ('inst');
+INSERT INTO boot_states (boot_state) VALUES ('rins');
+INSERT INTO boot_states (boot_state) VALUES ('rcnf');
+INSERT INTO boot_states (boot_state) VALUES ('new');
+
+-- Nodes
+CREATE TABLE nodes (
+    -- Mandatory
+    node_id serial PRIMARY KEY, -- Node identifier
+    hostname text NOT NULL, -- Node hostname
+    site_id integer REFERENCES sites NOT NULL, -- At which site 
+
+    boot_state text REFERENCES boot_states NOT NULL DEFAULT 'inst', -- Node boot state
+    deleted boolean NOT NULL DEFAULT false, -- Is deleted
+
+    -- Optional
+    model text, -- Hardware make and model
+    boot_nonce text, -- Random nonce updated by Boot Manager
+    version text, -- Boot CD version string updated by Boot Manager
+    ssh_rsa_key text, -- SSH host key updated by Boot Manager
+    key text, -- Node key generated by API when configuration file is downloaded
+
+    -- Timestamps
+    date_created timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    last_updated timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    last_contact timestamp without time zone   
+) WITH OIDS;
+CREATE INDEX nodes_hostname_idx ON nodes (hostname) WHERE deleted IS false;
+CREATE INDEX nodes_site_id_idx ON nodes (site_id) WHERE deleted IS false;
+
+-- Nodes at each site
+CREATE VIEW site_nodes AS
+SELECT site_id,
+array_accum(node_id) AS node_ids
+FROM nodes
+WHERE deleted IS false
+GROUP BY site_id;
+
+--------------------------------------------------------------------------------
+-- Node groups
+--------------------------------------------------------------------------------
+
+-- Node groups
+CREATE TABLE nodegroups (
+    nodegroup_id serial PRIMARY KEY, -- Group identifier
+    name text UNIQUE NOT NULL, -- Group name
+    description text -- Group description
+) WITH OIDS;
+
+-- Node group membership
+CREATE TABLE nodegroup_node (
+    nodegroup_id integer REFERENCES nodegroups NOT NULL, -- Group identifier
+    node_id integer REFERENCES nodes NOT NULL, -- Node identifier
+    PRIMARY KEY (nodegroup_id, node_id)
+) WITH OIDS;
+CREATE INDEX nodegroup_node_nodegroup_id_idx ON nodegroup_node (nodegroup_id);
+CREATE INDEX nodegroup_node_node_id_idx ON nodegroup_node (node_id);
+
+-- Nodes in each node group
+CREATE VIEW nodegroup_nodes AS
+SELECT nodegroup_id,
+array_accum(node_id) AS node_ids
+FROM nodegroup_node
+GROUP BY nodegroup_id;
+
+-- Node groups that each node is a member of
+CREATE VIEW node_nodegroups AS
+SELECT node_id,
+array_accum(nodegroup_id) AS nodegroup_ids
+FROM nodegroup_node
+GROUP BY node_id;
+
+--------------------------------------------------------------------------------
+-- Node configuration files
+--------------------------------------------------------------------------------
+
+CREATE TABLE conf_files (
+    conf_file_id serial PRIMARY KEY, -- Configuration file identifier
+    enabled bool NOT NULL DEFAULT true, -- Configuration file is active
+    source text NOT NULL, -- Relative path on the boot server where file can be downloaded
+    dest text NOT NULL, -- Absolute path where file should be installed
+    file_permissions text NOT NULL DEFAULT '0644', -- chmod(1) permissions
+    file_owner text NOT NULL DEFAULT 'root', -- chown(1) owner
+    file_group text NOT NULL DEFAULT 'root', -- chgrp(1) owner
+    preinstall_cmd text, -- Shell command to execute prior to installing
+    postinstall_cmd text, -- Shell command to execute after installing
+    error_cmd text, -- Shell command to execute if any error occurs
+    ignore_cmd_errors bool NOT NULL DEFAULT false, -- Install file anyway even if an error occurs
+    always_update bool NOT NULL DEFAULT false -- Always attempt to install file even if unchanged
+);
+
+CREATE TABLE conf_file_node (
+    conf_file_id integer REFERENCES conf_files NOT NULL, -- Configuration file identifier
+    node_id integer REFERENCES nodes NOT NULL, -- Node identifier
+    PRIMARY KEY (conf_file_id, node_id)
+);
+CREATE INDEX conf_file_node_conf_file_id_idx ON conf_file_node (conf_file_id);
+CREATE INDEX conf_file_node_node_id_idx ON conf_file_node (node_id);
+
+-- Nodes linked to each configuration file
+CREATE VIEW conf_file_nodes AS
+SELECT conf_file_id,
+array_accum(node_id) AS node_ids
+FROM conf_file_node
+GROUP BY conf_file_id;
+
+-- Configuration files linked to each node
+CREATE VIEW node_conf_files AS
+SELECT node_id,
+array_accum(conf_file_id) AS conf_file_ids
+FROM conf_file_node
+GROUP BY node_id;
+
+CREATE TABLE conf_file_nodegroup (
+    conf_file_id integer REFERENCES conf_files NOT NULL, -- Configuration file identifier
+    nodegroup_id integer REFERENCES nodegroups NOT NULL, -- Node group identifier
+    PRIMARY KEY (conf_file_id, nodegroup_id)
+);
+CREATE INDEX conf_file_nodegroup_conf_file_id_idx ON conf_file_nodegroup (conf_file_id);
+CREATE INDEX conf_file_nodegroup_nodegroup_id_idx ON conf_file_nodegroup (nodegroup_id);
+
+-- Node groups linked to each configuration file
+CREATE VIEW conf_file_nodegroups AS
+SELECT conf_file_id,
+array_accum(nodegroup_id) AS nodegroup_ids
+FROM conf_file_nodegroup
+GROUP BY conf_file_id;
+
+-- Configuration files linked to each node group
+CREATE VIEW nodegroup_conf_files AS
+SELECT nodegroup_id,
+array_accum(conf_file_id) AS conf_file_ids
+FROM conf_file_nodegroup
+GROUP BY nodegroup_id;
+
+--------------------------------------------------------------------------------
+-- Node network interfaces
+--------------------------------------------------------------------------------
+
+-- Valid network addressing schemes
+CREATE TABLE network_types (
+    type text PRIMARY KEY -- Addressing scheme
+) WITH OIDS;
+INSERT INTO network_types (type) VALUES ('ipv4');
+
+-- Valid network configuration methods
+CREATE TABLE network_methods (
+    method text PRIMARY KEY -- Configuration method
+) WITH OIDS;
+INSERT INTO network_methods (method) VALUES ('static');
+INSERT INTO network_methods (method) VALUES ('dhcp');
+INSERT INTO network_methods (method) VALUES ('proxy');
+INSERT INTO network_methods (method) VALUES ('tap');
+INSERT INTO network_methods (method) VALUES ('ipmi');
+INSERT INTO network_methods (method) VALUES ('unknown');
+
+-- Node network interfaces
+CREATE TABLE nodenetworks (
+    -- Mandatory
+    nodenetwork_id serial PRIMARY KEY, -- Network interface identifier
+    node_id integer REFERENCES nodes NOT NULL, -- Which node
+    is_primary boolean NOT NULL DEFAULT false, -- Is the primary interface for this node
+    type text REFERENCES network_types NOT NULL, -- Addressing scheme
+    method text REFERENCES network_methods NOT NULL, -- Configuration method
+
+    -- Optional, depending on type and method
+    ip text, -- IP address
+    mac text, -- MAC address
+    gateway text, -- Default gateway address
+    network text, -- Network address
+    broadcast text, -- Network broadcast address
+    netmask text, -- Network mask
+    dns1 text, -- Primary DNS server
+    dns2 text, -- Secondary DNS server
+    bwlimit integer, -- Bandwidth limit in bps
+    hostname text -- Hostname of this interface
+) WITH OIDS;
+CREATE INDEX nodenetworks_node_id_idx ON nodenetworks (node_id);
+
+-- Ordered by primary interface first
+CREATE VIEW nodenetworks_ordered AS
+SELECT node_id, nodenetwork_id
+FROM nodenetworks
+ORDER BY is_primary DESC;
+
+-- Network interfaces on each node
+CREATE VIEW node_nodenetworks AS
+SELECT node_id,
+array_accum(nodenetwork_id) AS nodenetwork_ids
+FROM nodenetworks_ordered
+GROUP BY node_id;
+
+--------------------------------------------------------------------------------
+-- Nodenetwork setting types and nodenetworks settings
+--------------------------------------------------------------------------------
+
+CREATE TABLE nodenetwork_setting_types (
+    nodenetwork_setting_type_id serial PRIMARY KEY,    
+                                               -- Setting Type Identifier
+    name text UNIQUE NOT NULL,                 -- Setting Name    
+    description text,                          -- Optional Description
+    category text NOT NULL,                    -- Category, e.g. Wifi, or whatever
+    min_role_id integer references roles       -- If set, minimal role required
+) WITH OIDS;
+
+CREATE TABLE nodenetwork_setting (
+    nodenetwork_setting_id serial PRIMARY KEY, -- Nodenetwork Setting Identifier
+    nodenetwork_id integer REFERENCES nodenetworks NOT NULL,
+                                               -- the nodenetwork this applies to
+    nodenetwork_setting_type_id integer REFERENCES nodenetwork_setting_types NOT NULL,
+                                               -- the setting type
+    value text
+) WITH OIDS;
+
+CREATE OR REPLACE VIEW nodenetwork_settings AS 
+SELECT nodenetwork_id,
+array_accum(nodenetwork_setting_id) AS nodenetwork_setting_ids
+FROM nodenetwork_setting
+GROUP BY nodenetwork_id;
+
+CREATE OR REPLACE VIEW view_nodenetwork_settings AS
+SELECT
+nodenetwork_setting.nodenetwork_setting_id,
+nodenetwork_setting.nodenetwork_id,
+nodenetwork_setting_types.nodenetwork_setting_type_id,
+nodenetwork_setting_types.name,
+nodenetwork_setting_types.description,
+nodenetwork_setting_types.category,
+nodenetwork_setting_types.min_role_id,
+nodenetwork_setting.value
+FROM nodenetwork_setting
+INNER JOIN nodenetwork_setting_types USING (nodenetwork_setting_type_id);
+
+CREATE OR REPLACE VIEW view_nodenetworks AS
+SELECT
+nodenetworks.nodenetwork_id,
+nodenetworks.node_id,
+nodenetworks.is_primary,
+nodenetworks.type,
+nodenetworks.method,
+nodenetworks.ip,
+nodenetworks.mac,
+nodenetworks.gateway,
+nodenetworks.network,
+nodenetworks.broadcast,
+nodenetworks.netmask,
+nodenetworks.dns1,
+nodenetworks.dns2,
+nodenetworks.bwlimit,
+nodenetworks.hostname,
+COALESCE((SELECT nodenetwork_setting_ids FROM nodenetwork_settings WHERE nodenetwork_settings.nodenetwork_id = nodenetworks.nodenetwork_id), '{}') AS nodenetwork_setting_ids
+FROM nodenetworks;
+
+--------------------------------------------------------------------------------
+-- Power control units (PCUs)
+--------------------------------------------------------------------------------
+
+CREATE TABLE pcus (
+    -- Mandatory
+    pcu_id serial PRIMARY KEY, -- PCU identifier
+    site_id integer REFERENCES sites NOT NULL, -- Site identifier
+    hostname text, -- Hostname, not necessarily unique (multiple logical sites could use the same PCU)
+    ip text NOT NULL, -- IP, not necessarily unique
+
+    -- Optional
+    protocol text, -- Protocol, e.g. ssh or https or telnet
+    username text, -- Username, if applicable
+    "password" text, -- Password, if applicable
+    model text, -- Model, e.g. BayTech or iPal
+    notes text -- Random notes
+) WITH OIDS;
+CREATE INDEX pcus_site_id_idx ON pcus (site_id);
+
+CREATE VIEW site_pcus AS
+SELECT site_id,
+array_accum(pcu_id) AS pcu_ids
+FROM pcus
+GROUP BY site_id;
+
+CREATE TABLE pcu_node (
+    pcu_id integer REFERENCES pcus NOT NULL, -- PCU identifier
+    node_id integer REFERENCES nodes NOT NULL, -- Node identifier
+    port integer NOT NULL, -- Port number
+    PRIMARY KEY (pcu_id, node_id), -- The same node cannot be controlled by different ports
+    UNIQUE (pcu_id, port) -- The same port cannot control multiple nodes
+);
+CREATE INDEX pcu_node_pcu_id_idx ON pcu_node (pcu_id);
+CREATE INDEX pcu_node_node_id_idx ON pcu_node (node_id);
+
+CREATE VIEW node_pcus AS
+SELECT node_id,
+array_accum(pcu_id) AS pcu_ids,
+array_accum(port) AS ports
+FROM pcu_node
+GROUP BY node_id;
+
+CREATE VIEW pcu_nodes AS
+SELECT pcu_id,
+array_accum(node_id) AS node_ids,
+array_accum(port) AS ports
+FROM pcu_node
+GROUP BY pcu_id;
+
+--------------------------------------------------------------------------------
+-- Slices
+--------------------------------------------------------------------------------
+
+CREATE TABLE slice_instantiations (
+    instantiation text PRIMARY KEY
+) WITH OIDS;
+INSERT INTO slice_instantiations (instantiation) VALUES ('not-instantiated'); -- Placeholder slice
+INSERT INTO slice_instantiations (instantiation) VALUES ('plc-instantiated'); -- Instantiated by Node Manager
+INSERT INTO slice_instantiations (instantiation) VALUES ('delegated'); -- Manually instantiated
+INSERT INTO slice_instantiations (instantiation) VALUES ('nm-controller'); -- NM Controller
+
+-- Slices
+CREATE TABLE slices (
+    slice_id serial PRIMARY KEY, -- Slice identifier
+    site_id integer REFERENCES sites NOT NULL, -- Site identifier
+
+    name text NOT NULL, -- Slice name
+    instantiation text REFERENCES slice_instantiations NOT NULL DEFAULT 'plc-instantiated', -- Slice state, e.g. plc-instantiated
+    url text, -- Project URL
+    description text, -- Project description
+
+    max_nodes integer NOT NULL DEFAULT 100, -- Maximum number of nodes that can be assigned to this slice
+
+    creator_person_id integer REFERENCES persons, -- Creator
+    created timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP, -- Creation date
+    expires timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP + '2 weeks', -- Expiration date
+
+    is_deleted boolean NOT NULL DEFAULT false
+) WITH OIDS;
+CREATE INDEX slices_site_id_idx ON slices (site_id) WHERE is_deleted IS false;
+CREATE INDEX slices_name_idx ON slices (name) WHERE is_deleted IS false;
+
+-- Slivers
+CREATE TABLE slice_node (
+    slice_id integer REFERENCES slices NOT NULL, -- Slice identifier
+    node_id integer REFERENCES nodes NOT NULL, -- Node identifier
+    PRIMARY KEY (slice_id, node_id)
+) WITH OIDS;
+CREATE INDEX slice_node_slice_id_idx ON slice_node (slice_id);
+CREATE INDEX slice_node_node_id_idx ON slice_node (node_id);
+
+-- Synonym for slice_node
+CREATE VIEW slivers AS
+SELECT * FROM slice_node;
+
+-- Nodes in each slice
+CREATE VIEW slice_nodes AS
+SELECT slice_id,
+array_accum(node_id) AS node_ids
+FROM slice_node
+GROUP BY slice_id;
+
+-- Slices on each node
+CREATE VIEW node_slices AS
+SELECT node_id,
+array_accum(slice_id) AS slice_ids
+FROM slice_node
+GROUP BY node_id;
+
+-- Slices at each site
+CREATE VIEW site_slices AS
+SELECT site_id,
+array_accum(slice_id) AS slice_ids
+FROM slices
+WHERE is_deleted is false
+GROUP BY site_id;
+
+-- Slice membership
+CREATE TABLE slice_person (
+    slice_id integer REFERENCES slices NOT NULL, -- Slice identifier
+    person_id integer REFERENCES persons NOT NULL, -- Account identifier
+    PRIMARY KEY (slice_id, person_id)
+) WITH OIDS;
+CREATE INDEX slice_person_slice_id_idx ON slice_person (slice_id);
+CREATE INDEX slice_person_person_id_idx ON slice_person (person_id);
+
+-- Members of the slice
+CREATE VIEW slice_persons AS
+SELECT slice_id,
+array_accum(person_id) AS person_ids
+FROM slice_person
+GROUP BY slice_id;
+
+-- Slices of which each person is a member
+CREATE VIEW person_slices AS
+SELECT person_id,
+array_accum(slice_id) AS slice_ids
+FROM slice_person
+GROUP BY person_id;
+
+--------------------------------------------------------------------------------
+-- Slice whitelist
+--------------------------------------------------------------------------------
+-- slice whitelist on nodes
+CREATE TABLE node_slice_whitelist (
+    node_id integer REFERENCES nodes NOT NULL, -- Node id of whitelist
+    slice_id integer REFERENCES slices NOT NULL, -- Slice id thats allowd on this node
+    PRIMARY KEY (node_id, slice_id)
+) WITH OIDS;
+CREATE INDEX node_slice_whitelist_node_id_idx ON node_slice_whitelist (node_id);
+CREATE INDEX node_slice_whitelist_slice_id_idx ON node_slice_whitelist (slice_id);
+
+-- Slices on each node
+CREATE VIEW node_slices_whitelist AS
+SELECT node_id,
+array_accum(slice_id) AS slice_ids_whitelist
+FROM node_slice_whitelist
+GROUP BY node_id;
+
+--------------------------------------------------------------------------------
+-- Slice attributes
+--------------------------------------------------------------------------------
+
+-- Slice attribute types
+CREATE TABLE slice_attribute_types (
+    attribute_type_id serial PRIMARY KEY, -- Attribute type identifier
+    name text UNIQUE NOT NULL, -- Attribute name
+    description text, -- Attribute description
+    min_role_id integer REFERENCES roles DEFAULT 10 -- If set, minimum (least powerful) role that can set or change this attribute
+) WITH OIDS;
+
+-- Slice/sliver attributes
+CREATE TABLE slice_attribute (
+    slice_attribute_id serial PRIMARY KEY, -- Slice attribute identifier
+    slice_id integer REFERENCES slices NOT NULL, -- Slice identifier
+    node_id integer REFERENCES nodes, -- Sliver attribute if set
+    nodegroup_id integer REFERENCES nodegroups, -- Node group attribute if set
+    attribute_type_id integer REFERENCES slice_attribute_types NOT NULL, -- Attribute type identifier
+    value text
+) WITH OIDS;
+CREATE INDEX slice_attribute_slice_id_idx ON slice_attribute (slice_id);
+CREATE INDEX slice_attribute_node_id_idx ON slice_attribute (node_id);
+CREATE INDEX slice_attribute_nodegroup_id_idx ON slice_attribute (nodegroup_id);
+
+CREATE VIEW slice_attributes AS
+SELECT slice_id,
+array_accum(slice_attribute_id) AS slice_attribute_ids
+FROM slice_attribute
+GROUP BY slice_id;
+
+--------------------------------------------------------------------------------
+-- Initscripts
+--------------------------------------------------------------------------------
+
+-- Initscripts
+CREATE TABLE initscripts (
+    initscript_id serial PRIMARY KEY, -- Initscript identifier
+    name text NOT NULL, -- Initscript name
+    enabled bool NOT NULL DEFAULT true, -- Initscript is active
+    script text NOT NULL, -- Initscript
+    UNIQUE (name)
+) WITH OIDS;
+CREATE INDEX initscripts_name_idx ON initscripts (name);
+
+
+--------------------------------------------------------------------------------
+-- Peers
+--------------------------------------------------------------------------------
+
+-- Peers
+CREATE TABLE peers (
+    peer_id serial PRIMARY KEY, -- Peer identifier
+    peername text NOT NULL, -- Peer name
+    peer_url text NOT NULL, -- (HTTPS) URL of the peer PLCAPI interface
+    cacert text, -- (SSL) Public certificate of peer API server
+    key text, -- (GPG) Public key used for authentication
+    deleted boolean NOT NULL DEFAULT false
+) WITH OIDS;
+CREATE INDEX peers_peername_idx ON peers (peername) WHERE deleted IS false;
+
+-- Objects at each peer
+CREATE TABLE peer_site (
+    site_id integer REFERENCES sites PRIMARY KEY, -- Local site identifier
+    peer_id integer REFERENCES peers NOT NULL, -- Peer identifier
+    peer_site_id integer NOT NULL, -- Foreign site identifier at peer
+    UNIQUE (peer_id, peer_site_id) -- The same foreign site should not be cached twice
+) WITH OIDS;
+CREATE INDEX peer_site_peer_id_idx ON peers (peer_id);
+
+CREATE VIEW peer_sites AS
+SELECT peer_id,
+array_accum(site_id) AS site_ids,
+array_accum(peer_site_id) AS peer_site_ids
+FROM peer_site
+GROUP BY peer_id;
+
+CREATE TABLE peer_person (
+    person_id integer REFERENCES persons PRIMARY KEY, -- Local user identifier
+    peer_id integer REFERENCES peers NOT NULL, -- Peer identifier
+    peer_person_id integer NOT NULL, -- Foreign user identifier at peer
+    UNIQUE (peer_id, peer_person_id) -- The same foreign user should not be cached twice
+) WITH OIDS;
+CREATE INDEX peer_person_peer_id_idx ON peer_person (peer_id);
+
+CREATE VIEW peer_persons AS
+SELECT peer_id,
+array_accum(person_id) AS person_ids,
+array_accum(peer_person_id) AS peer_person_ids
+FROM peer_person
+GROUP BY peer_id;
+
+CREATE TABLE peer_key (
+    key_id integer REFERENCES keys PRIMARY KEY, -- Local key identifier
+    peer_id integer REFERENCES peers NOT NULL, -- Peer identifier
+    peer_key_id integer NOT NULL, -- Foreign key identifier at peer
+    UNIQUE (peer_id, peer_key_id) -- The same foreign key should not be cached twice
+) WITH OIDS;
+CREATE INDEX peer_key_peer_id_idx ON peer_key (peer_id);
+
+CREATE VIEW peer_keys AS
+SELECT peer_id,
+array_accum(key_id) AS key_ids,
+array_accum(peer_key_id) AS peer_key_ids
+FROM peer_key
+GROUP BY peer_id;
+
+CREATE TABLE peer_node (
+    node_id integer REFERENCES nodes PRIMARY KEY, -- Local node identifier
+    peer_id integer REFERENCES peers NOT NULL, -- Peer identifier
+    peer_node_id integer NOT NULL, -- Foreign node identifier
+    UNIQUE (peer_id, peer_node_id) -- The same foreign node should not be cached twice
+) WITH OIDS;
+CREATE INDEX peer_node_peer_id_idx ON peer_node (peer_id);
+
+CREATE VIEW peer_nodes AS
+SELECT peer_id,
+array_accum(node_id) AS node_ids,
+array_accum(peer_node_id) AS peer_node_ids
+FROM peer_node
+GROUP BY peer_id;
+
+CREATE TABLE peer_slice (
+    slice_id integer REFERENCES slices PRIMARY KEY, -- Local slice identifier
+    peer_id integer REFERENCES peers NOT NULL, -- Peer identifier
+    peer_slice_id integer NOT NULL, -- Slice identifier at peer
+    UNIQUE (peer_id, peer_slice_id) -- The same foreign slice should not be cached twice
+) WITH OIDS;
+CREATE INDEX peer_slice_peer_id_idx ON peer_slice (peer_id);
+
+CREATE VIEW peer_slices AS
+SELECT peer_id,
+array_accum(slice_id) AS slice_ids,
+array_accum(peer_slice_id) AS peer_slice_ids
+FROM peer_slice
+GROUP BY peer_id;
+
+--------------------------------------------------------------------------------
+-- Authenticated sessions
+--------------------------------------------------------------------------------
+
+-- Authenticated sessions
+CREATE TABLE sessions (
+    session_id text PRIMARY KEY, -- Session identifier
+    expires timestamp without time zone
+) WITH OIDS;
+
+-- People can have multiple sessions
+CREATE TABLE person_session (
+    person_id integer REFERENCES persons NOT NULL, -- Account identifier
+    session_id text REFERENCES sessions NOT NULL, -- Session identifier
+    PRIMARY KEY (person_id, session_id),
+    UNIQUE (session_id) -- Sessions are unique
+) WITH OIDS;
+CREATE INDEX person_session_person_id_idx ON person_session (person_id);
+
+-- Nodes can have only one session
+CREATE TABLE node_session (
+    node_id integer REFERENCES nodes NOT NULL, -- Node identifier
+    session_id text REFERENCES sessions NOT NULL, -- Session identifier
+    UNIQUE (node_id), -- Nodes can have only one session
+    UNIQUE (session_id) -- Sessions are unique
+) WITH OIDS;
+
+
+
+-------------------------------------------------------------------------------
+-- PCU Types
+------------------------------------------------------------------------------
+CREATE TABLE pcu_types (
+    pcu_type_id serial PRIMARY KEY,
+    model text NOT NULL ,               -- PCU model name
+    name text                           -- Full PCU model name
+) WITH OIDS;
+CREATE INDEX pcu_types_model_idx ON pcu_types (model);
+
+CREATE TABLE pcu_protocol_type (
+    pcu_protocol_type_id serial PRIMARY KEY,
+    pcu_type_id integer REFERENCES pcu_types NOT NULL,  -- PCU type identifier
+    port integer NOT NULL,                              -- PCU port
+    protocol text NOT NULL,                             -- Protocol
+    supported boolean NOT NULL DEFAULT True             -- Does PLC support
+) WITH OIDS;
+CREATE INDEX pcu_protocol_type_pcu_type_id ON pcu_protocol_type (pcu_type_id);
+
+
+CREATE OR REPLACE VIEW pcu_protocol_types AS
+SELECT pcu_type_id,
+array_accum(pcu_protocol_type_id) as pcu_protocol_type_ids
+FROM pcu_protocol_type
+GROUP BY pcu_type_id;
+
+--------------------------------------------------------------------------------
+-- Message templates
+--------------------------------------------------------------------------------
+
+CREATE TABLE messages (
+    message_id text PRIMARY KEY, -- Message name
+    subject text, -- Message summary
+    template text, -- Message template
+    enabled bool NOT NULL DEFAULT true -- Whether message is enabled
+) WITH OIDS;
+
+--------------------------------------------------------------------------------
+-- Events
+--------------------------------------------------------------------------------
+
+-- Events
+CREATE TABLE events (
+    event_id serial PRIMARY KEY,  -- Event identifier
+    person_id integer REFERENCES persons, -- Person responsible for event, if any
+    node_id integer REFERENCES nodes, -- Node responsible for event, if any
+    auth_type text, -- Type of auth used. i.e. AuthMethod
+    fault_code integer NOT NULL DEFAULT 0, -- Did this event result in error
+    call_name text NOT NULL, -- Call responsible for this event
+    call text NOT NULL, -- Call responsible for this event, including parameters
+    message text, -- High level description of this event
+    runtime float DEFAULT 0, -- Event run time
+    time timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP -- Event timestamp
+) WITH OIDS;
+
+-- Database object(s) that may have been affected by a particular event
+CREATE TABLE event_object (
+    event_id integer REFERENCES events NOT NULL, -- Event identifier
+    object_id integer NOT NULL, -- Object identifier
+    object_type text NOT NULL Default 'Unknown' -- What type of object is this event affecting
+) WITH OIDS;
+CREATE INDEX event_object_event_id_idx ON event_object (event_id);
+CREATE INDEX event_object_object_id_idx ON event_object (object_id);
+CREATE INDEX event_object_object_type_idx ON event_object (object_type);
+
+CREATE OR REPLACE VIEW event_objects AS
+SELECT event_id,
+array_accum(object_id) AS object_ids,
+array_accum(object_type) AS object_types
+FROM event_object
+GROUP BY event_id;
+
+--------------------------------------------------------------------------------
+-- Useful views
+--------------------------------------------------------------------------------
+CREATE OR REPLACE VIEW view_pcu_types AS
+SELECT
+pcu_types.pcu_type_id,
+pcu_types.model,
+pcu_types.name,
+COALESCE((SELECT pcu_protocol_type_ids FROM pcu_protocol_types WHERE pcu_protocol_types.pcu_type_id = pcu_types.pcu_type_id), '{}') AS pcu_protocol_type_ids
+FROM pcu_types;
+
+CREATE OR REPLACE VIEW view_events AS
+SELECT
+events.event_id,
+events.person_id,
+events.node_id,
+events.auth_type,
+events.fault_code,
+events.call_name,
+events.call,
+events.message,
+events.runtime,
+CAST(date_part('epoch', events.time) AS bigint) AS time,
+COALESCE((SELECT object_ids FROM event_objects WHERE event_objects.event_id = events.event_id), '{}') AS object_ids,
+COALESCE((SELECT object_types FROM event_objects WHERE event_objects.event_id = events.event_id), '{}') AS object_types
+FROM events;
+
+CREATE OR REPLACE VIEW view_event_objects AS 
+SELECT
+events.event_id,
+events.person_id,
+events.node_id,
+events.fault_code,
+events.call_name,
+events.call,
+events.message,
+events.runtime,
+CAST(date_part('epoch', events.time) AS bigint) AS time,
+event_object.object_id,
+event_object.object_type
+FROM events LEFT JOIN event_object USING (event_id);
+
+CREATE OR REPLACE VIEW view_persons AS
+SELECT
+persons.person_id,
+persons.email,
+persons.first_name,
+persons.last_name,
+persons.deleted,
+persons.enabled,
+persons.password,
+persons.verification_key,
+CAST(date_part('epoch', persons.verification_expires) AS bigint) AS verification_expires,
+persons.title,
+persons.phone,
+persons.url,
+persons.bio,
+CAST(date_part('epoch', persons.date_created) AS bigint) AS date_created,
+CAST(date_part('epoch', persons.last_updated) AS bigint) AS last_updated,
+peer_person.peer_id,
+peer_person.peer_person_id,
+COALESCE((SELECT role_ids FROM person_roles WHERE person_roles.person_id = persons.person_id), '{}') AS role_ids,
+COALESCE((SELECT roles FROM person_roles WHERE person_roles.person_id = persons.person_id), '{}') AS roles,
+COALESCE((SELECT site_ids FROM person_sites WHERE person_sites.person_id = persons.person_id), '{}') AS site_ids,
+COALESCE((SELECT key_ids FROM person_keys WHERE person_keys.person_id = persons.person_id), '{}') AS key_ids,
+COALESCE((SELECT slice_ids FROM person_slices WHERE person_slices.person_id = persons.person_id), '{}') AS slice_ids
+FROM persons
+LEFT JOIN peer_person USING (person_id);
+
+CREATE OR REPLACE VIEW view_peers AS
+SELECT 
+peers.*, 
+COALESCE((SELECT site_ids FROM peer_sites WHERE peer_sites.peer_id = peers.peer_id), '{}') AS site_ids,
+COALESCE((SELECT peer_site_ids FROM peer_sites WHERE peer_sites.peer_id = peers.peer_id), '{}') AS peer_site_ids,
+COALESCE((SELECT person_ids FROM peer_persons WHERE peer_persons.peer_id = peers.peer_id), '{}') AS person_ids,
+COALESCE((SELECT peer_person_ids FROM peer_persons WHERE peer_persons.peer_id = peers.peer_id), '{}') AS peer_person_ids,
+COALESCE((SELECT key_ids FROM peer_keys WHERE peer_keys.peer_id = peers.peer_id), '{}') AS key_ids,
+COALESCE((SELECT peer_key_ids FROM peer_keys WHERE peer_keys.peer_id = peers.peer_id), '{}') AS peer_key_ids,
+COALESCE((SELECT node_ids FROM peer_nodes WHERE peer_nodes.peer_id = peers.peer_id), '{}') AS node_ids,
+COALESCE((SELECT peer_node_ids FROM peer_nodes WHERE peer_nodes.peer_id = peers.peer_id), '{}') AS peer_node_ids,
+COALESCE((SELECT slice_ids FROM peer_slices WHERE peer_slices.peer_id = peers.peer_id), '{}') AS slice_ids,
+COALESCE((SELECT peer_slice_ids FROM peer_slices WHERE peer_slices.peer_id = peers.peer_id), '{}') AS peer_slice_ids
+FROM peers;
+
+CREATE OR REPLACE VIEW view_nodes AS
+SELECT
+nodes.node_id,
+nodes.hostname,
+nodes.site_id,
+nodes.boot_state,
+nodes.deleted,
+nodes.model,
+nodes.boot_nonce,
+nodes.version,
+nodes.ssh_rsa_key,
+nodes.key,
+CAST(date_part('epoch', nodes.date_created) AS bigint) AS date_created,
+CAST(date_part('epoch', nodes.last_updated) AS bigint) AS last_updated,
+CAST(date_part('epoch', nodes.last_contact) AS bigint) AS last_contact,  
+peer_node.peer_id,
+peer_node.peer_node_id,
+COALESCE((SELECT nodenetwork_ids FROM node_nodenetworks WHERE node_nodenetworks.node_id = nodes.node_id), '{}') AS nodenetwork_ids,
+COALESCE((SELECT nodegroup_ids FROM node_nodegroups WHERE node_nodegroups.node_id = nodes.node_id), '{}') AS nodegroup_ids,
+COALESCE((SELECT slice_ids FROM node_slices WHERE node_slices.node_id = nodes.node_id), '{}') AS slice_ids,
+COALESCE((SELECT slice_ids_whitelist FROM node_slices_whitelist WHERE node_slices_whitelist.node_id = nodes.node_id), '{}') AS slice_ids_whitelist,
+COALESCE((SELECT pcu_ids FROM node_pcus WHERE node_pcus.node_id = nodes.node_id), '{}') AS pcu_ids,
+COALESCE((SELECT ports FROM node_pcus WHERE node_pcus.node_id = nodes.node_id), '{}') AS ports,
+COALESCE((SELECT conf_file_ids FROM node_conf_files WHERE node_conf_files.node_id = nodes.node_id), '{}') AS conf_file_ids,
+node_session.session_id AS session
+FROM nodes
+LEFT JOIN peer_node USING (node_id)
+LEFT JOIN node_session USING (node_id);
+
+CREATE OR REPLACE VIEW view_nodegroups AS
+SELECT
+nodegroups.*,
+COALESCE((SELECT node_ids FROM nodegroup_nodes WHERE nodegroup_nodes.nodegroup_id = nodegroups.nodegroup_id), '{}') AS node_ids,
+COALESCE((SELECT conf_file_ids FROM nodegroup_conf_files WHERE nodegroup_conf_files.nodegroup_id = nodegroups.nodegroup_id), '{}') AS conf_file_ids
+FROM nodegroups;
+
+CREATE OR REPLACE VIEW view_conf_files AS
+SELECT
+conf_files.*,
+COALESCE((SELECT node_ids FROM conf_file_nodes WHERE conf_file_nodes.conf_file_id = conf_files.conf_file_id), '{}') AS node_ids,
+COALESCE((SELECT nodegroup_ids FROM conf_file_nodegroups WHERE conf_file_nodegroups.conf_file_id = conf_files.conf_file_id), '{}') AS nodegroup_ids
+FROM conf_files;
+
+CREATE OR REPLACE VIEW view_pcus AS
+SELECT
+pcus.*,
+COALESCE((SELECT node_ids FROM pcu_nodes WHERE pcu_nodes.pcu_id = pcus.pcu_id), '{}') AS node_ids,
+COALESCE((SELECT ports FROM pcu_nodes WHERE pcu_nodes.pcu_id = pcus.pcu_id), '{}') AS ports
+FROM pcus;
+
+CREATE OR REPLACE VIEW view_sites AS
+SELECT
+sites.site_id,
+sites.login_base,
+sites.name,
+sites.abbreviated_name,
+sites.deleted,
+sites.enabled,
+sites.is_public,
+sites.max_slices,
+sites.max_slivers,
+sites.latitude,
+sites.longitude,
+sites.url,
+sites.ext_consortium_id,
+CAST(date_part('epoch', sites.date_created) AS bigint) AS date_created,
+CAST(date_part('epoch', sites.last_updated) AS bigint) AS last_updated,
+peer_site.peer_id,
+peer_site.peer_site_id,
+COALESCE((SELECT person_ids FROM site_persons WHERE site_persons.site_id = sites.site_id), '{}') AS person_ids,
+COALESCE((SELECT node_ids FROM site_nodes WHERE site_nodes.site_id = sites.site_id), '{}') AS node_ids,
+COALESCE((SELECT address_ids FROM site_addresses WHERE site_addresses.site_id = sites.site_id), '{}') AS address_ids,
+COALESCE((SELECT slice_ids FROM site_slices WHERE site_slices.site_id = sites.site_id), '{}') AS slice_ids,
+COALESCE((SELECT pcu_ids FROM site_pcus WHERE site_pcus.site_id = sites.site_id), '{}') AS pcu_ids
+FROM sites
+LEFT JOIN peer_site USING (site_id);
+
+CREATE OR REPLACE VIEW view_addresses AS
+SELECT
+addresses.*,
+COALESCE((SELECT address_type_ids FROM address_address_types WHERE address_address_types.address_id = addresses.address_id), '{}') AS address_type_ids,
+COALESCE((SELECT address_types FROM address_address_types WHERE address_address_types.address_id = addresses.address_id), '{}') AS address_types
+FROM addresses;
+
+CREATE OR REPLACE VIEW view_keys AS
+SELECT
+keys.*,
+person_key.person_id,
+peer_key.peer_id,
+peer_key.peer_key_id
+FROM keys
+LEFT JOIN person_key USING (key_id)
+LEFT JOIN peer_key USING (key_id);
+
+CREATE OR REPLACE VIEW view_slices AS
+SELECT
+slices.slice_id,
+slices.site_id,
+slices.name,
+slices.instantiation,
+slices.url,
+slices.description,
+slices.max_nodes,
+slices.creator_person_id,
+slices.is_deleted,
+CAST(date_part('epoch', slices.created) AS bigint) AS created,
+CAST(date_part('epoch', slices.expires) AS bigint) AS expires,
+peer_slice.peer_id,
+peer_slice.peer_slice_id,
+COALESCE((SELECT node_ids FROM slice_nodes WHERE slice_nodes.slice_id = slices.slice_id), '{}') AS node_ids,
+COALESCE((SELECT person_ids FROM slice_persons WHERE slice_persons.slice_id = slices.slice_id), '{}') AS person_ids,
+COALESCE((SELECT slice_attribute_ids FROM slice_attributes WHERE slice_attributes.slice_id = slices.slice_id), '{}') AS slice_attribute_ids
+FROM slices
+LEFT JOIN peer_slice USING (slice_id);
+
+CREATE OR REPLACE VIEW view_slice_attributes AS
+SELECT
+slice_attribute.slice_attribute_id,
+slice_attribute.slice_id,
+slice_attribute.node_id,
+slice_attribute.nodegroup_id,
+slice_attribute_types.attribute_type_id,
+slice_attribute_types.name,
+slice_attribute_types.description,
+slice_attribute_types.min_role_id,
+slice_attribute.value
+FROM slice_attribute
+INNER JOIN slice_attribute_types USING (attribute_type_id);
+
+CREATE OR REPLACE VIEW view_sessions AS
+SELECT
+sessions.session_id,
+CAST(date_part('epoch', sessions.expires) AS bigint) AS expires,
+person_session.person_id,
+node_session.node_id
+FROM sessions
+LEFT JOIN person_session USING (session_id)
+LEFT JOIN node_session USING (session_id);
+
+--------------------------------------------------------------------------------
+-- Built-in maintenance account and default site
+--------------------------------------------------------------------------------
+
+INSERT INTO persons
+(first_name, last_name, email, password, enabled)
+VALUES
+('Maintenance', 'Account', 'maint@localhost.localdomain', 'nopass', true);
+
+INSERT INTO person_role (person_id, role_id) VALUES (1, 10);
+INSERT INTO person_role (person_id, role_id) VALUES (1, 20);
+INSERT INTO person_role (person_id, role_id) VALUES (1, 30);
+INSERT INTO person_role (person_id, role_id) VALUES (1, 40);
+
+INSERT INTO sites
+(login_base, name, abbreviated_name, max_slices)
+VALUES
+('pl', 'PlanetLab Central', 'PLC', 100);
diff --git a/trunk/plcsh b/trunk/plcsh
new file mode 100755 (executable)
index 0000000..209a0e0
--- /dev/null
@@ -0,0 +1,152 @@
+#!/usr/bin/python
+#
+# Interactive shell for testing PLCAPI
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2005 The Trustees of Princeton University
+#
+# $Id$
+#
+
+import os
+import sys
+from socket import gethostname
+from optparse import OptionParser
+from getpass import getpass
+from traceback import print_exc
+
+sys.path.append(os.path.dirname(os.path.realpath(sys.argv[0])))
+from PLC.Shell import Shell
+
+parser = OptionParser(add_help_option = False)
+parser.add_option("-f", "--config", help = "PLC configuration file")
+parser.add_option("-h", "--url", help = "API URL")
+parser.add_option("-c", "--cacert", help = "API SSL certificate")
+parser.add_option("-k", "--insecure", help = "Do not check SSL certificate")
+parser.add_option("-m", "--method", help = "API authentication method")
+parser.add_option("-s", "--session", help = "API session key")
+parser.add_option("-u", "--user", help = "API user name")
+parser.add_option("-p", "--password", help = "API password")
+parser.add_option("-r", "--role", help = "API role")
+parser.add_option("-x", "--xmlrpc", action = "store_true", default = False, help = "Use XML-RPC interface")
+parser.add_option("--help", action = "help", help = "show this help message and exit")
+(options, args) = parser.parse_args()
+
+# If user is specified but password is not
+if options.user is not None and options.password is None:
+    try:
+        options.password = getpass()
+    except (EOFError, KeyboardInterrupt):
+        print
+        sys.exit(0)
+
+# Initialize a single global instance (scripts may re-initialize
+# this instance and/or create additional instances).
+try:
+    shell = Shell(globals = globals(),
+                  config = options.config,
+                  url = options.url, xmlrpc = options.xmlrpc, cacert = options.cacert,
+                  method = options.method, role = options.role,
+                  user = options.user, password = options.password,
+                  session = options.session)
+    # Register a few more globals for backward compatibility
+    auth = shell.auth
+    api = shell.api
+    config = shell.config
+except Exception, err:
+    print_exc()        
+    print "Error:", err
+    print
+    parser.print_help()
+    sys.exit(1)
+
+# If called by a script
+if len(sys.argv) > 1 and os.path.exists(sys.argv[1]):
+    # Pop us off the argument stack
+    sys.argv.pop(0)
+    execfile(sys.argv[0])
+
+# Otherwise, run an interactive shell environment
+else:
+    if shell.server is None:
+        print "PlanetLab Central Direct API Access"
+        prompt = ""
+    elif shell.auth['AuthMethod'] == "anonymous":
+        prompt = "[anonymous]"
+        print "Connected anonymously"
+    elif shell.auth['AuthMethod'] == "session":
+        # XXX No way to tell node and user sessions apart from the
+        # client point of view.
+        prompt = "[%s]" % gethostname()
+        print "%s connected using session authentication" % gethostname()
+    else:
+        prompt = "[%s]" % shell.auth['Username']
+        print "%s connected using %s authentication" % \
+              (shell.auth['Username'], shell.auth['AuthMethod'])
+
+    # Readline and tab completion support
+    import atexit
+    import readline
+    import rlcompleter
+
+    print 'Type "system.listMethods()" or "help(method)" for more information.'
+    # Load command history
+    history_path = os.path.join(os.environ["HOME"], ".plcapi_history")
+    try:
+        file(history_path, 'a').close()
+        readline.read_history_file(history_path)
+        atexit.register(readline.write_history_file, history_path)
+    except IOError:
+        pass
+
+    # Enable tab completion
+    readline.parse_and_bind("tab: complete")
+
+    try:
+        while True:
+            command = ""
+            while True:
+                # Get line
+                try:
+                    if command == "":
+                        sep = ">>> "
+                    else:
+                        sep = "... "
+                    line = raw_input(prompt + sep)
+                # Ctrl-C
+                except KeyboardInterrupt:
+                    command = ""
+                    print
+                    break
+
+                # Build up multi-line command
+                command += line
+
+                # Blank line or first line does not end in :
+                if line == "" or (command == line and line[-1] != ':'):
+                    break
+
+                command += os.linesep
+
+            # Blank line
+            if command == "":
+                continue
+            # Quit
+            elif command in ["q", "quit", "exit"]:
+                break
+
+            try:
+                try:
+                    # Try evaluating as an expression and printing the result
+                    result = eval(command)
+                    if result is not None:
+                        print result
+                except SyntaxError:
+                    # Fall back to executing as a statement
+                    exec command
+            except Exception, err:
+                print_exc()
+
+    except EOFError:
+        print
+        pass
diff --git a/trunk/plctest/TestConfig.py b/trunk/plctest/TestConfig.py
new file mode 100644 (file)
index 0000000..67357a2
--- /dev/null
@@ -0,0 +1,131 @@
+#definition of all structure used by the test_setup.py script
+site1_nodes = {
+'node1' :  {'hostname': 'test1.one-lab.org',
+            'boot_state':'inst',
+            'model':'vmware/minhw',
+            'owned' : 'pi',
+            'network': { 'method':'static',
+                         'type':'ipv4',
+                         'ip':'192.168.132.128',
+                         'gateway':'192.168.132.1',
+                         'network':'192.168.132.0',
+                         'broadcast':'192.168.132.255',
+                         'netmask':'255.255.255.0',
+                         'dns1': '192.168.132.2',
+                         },
+            
+            },
+'node2' :   { 'hostname':'test2.one-lab.org',
+              'boot_state':'inst',
+              'model':'vmware/minhw',
+              'owned' : 'tech',
+              'network': {'method':'static',
+                          'type':'ipv4',
+                          'ip':'192.168.132.130',
+                          'gateway':'192.168.132.1',
+                          'network':'192.168.132.0',
+                          'broadcast':'192.168.132.255',
+                          'netmask':'255.255.255.0',
+                          'dns1': '192.168.132.2',
+                          },
+              
+              },
+}
+site_users= {
+'pi_spec' : {'first_name':'PI',
+              'last_name':'PI',
+              'enabled':'True',
+              'email':'fake-pi1@one-lab.org',
+              'password':'testpi',
+              'roles':['pi'],
+               'auth_meth':'pi',
+              },
+'tech_spec' : {'first_name':'Tech',
+               'last_name':'Tech',
+                'enabled':'true',
+                'email':'fake-tech1@one-lab.org',
+                'password':'testtech',
+                'roles':['tech'],
+                 'auth_meth':'tech',
+                },
+'user_spec' : {'first_name':'User',
+                'last_name':'User',
+                'enabled':'true',
+                'email':'fake-user1@one-lab.org',
+                'password':'testuser',
+                'roles':['user'],
+                 'auth_meth':'user',
+                },
+'tech_user_spec' : {'first_name':'UserTech',
+                'last_name':'UserTech',
+                'enabled':'true',
+                'email':'fake-tech2@one-lab.org',
+                'password':'testusertech',
+                'roles':['tech','user'],
+                 'auth_meth':'techuser',
+                 },
+'pi_tech_spec' : {'first_name':'PiTech',
+                'last_name':'PiTech',
+                'enabled':'true',
+                'email':'fake-pi2@one-lab.org',
+                'password':'testusertech',
+                'roles':['pi','tech'],
+                 'auth_meth':'pitech',
+                  },
+}
+site_spec1 = {
+'site_fields' : {'name':'testsite',
+                'login_base':'ts',
+                'abbreviated_name':'PLanettest',
+                'max_slices':100,
+                'url':'http://onelab-test.inria.fr',
+                },
+'site_address' : {'line1':'route des lucioles',
+                 'city':'sophia',
+                 'state':'fr',
+                 'postalcode':'06600',
+                 'country':'france',
+                 },
+'users': [ site_users['pi_spec'], site_users['tech_spec'], site_users['user_spec'],site_users['tech_user_spec'],site_users['pi_tech_spec']],
+'nodes' :  [ site1_nodes['node1'], site1_nodes['node2']],
+}
+
+    
+site_specs = [ site_spec1 ]
+
+plc_spec1 =  { 
+    'hostname' : 'localhost',
+    'role' : 'root',
+    'PLC_ROOT_USER' : 'root@onelab-test.inria.fr',
+    'PLC_ROOT_PASSWORD' : 'test++',
+    'PLC_NAME' : 'TestLab',
+    'PLC_MAIL_ENABLED':'true',
+    'PLC_MAIL_SUPPORT_ADDRESS' : 'mohamed-amine.chaoui@sophia.inria.fr',
+    'PLC_DB_HOST' : 'onelab-test.inria.fr',
+    'PLC_API_HOST' : 'onelab-test.inria.fr',
+    'PLC_WWW_HOST' : 'onelab-test.inria.fr',
+    'PLC_BOOT_HOST' : 'onelab-test.inria.fr',
+    'PLC_NET_DNS1' : '138.96.0.10',
+    'PLC_NET_DNS2' : '138.96.0.11',
+    'sites' : site_specs,
+    }
+plc_specs = [ plc_spec1 ]
+
+key={'key_type':'ssh',
+     'key':'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA4jNj8yT9ieEc6nSJz/ESu4fui9WrJ2y/MCfqIZ5WcdVKhBFUYyIenmUaeTduMcSqvoYRQ4QnFR1BFdLG8XR9D6FWZ5zTKUgpkew22EVNeqai4IXeWYKyt1Qf3ehaz9E3o1PG/bmQNIM6aQay6TD1Y4lqXI+eTVXVQev4K2fixySjFQpp9RB4UHbeA8c28yoa/cgAYHqCqlvm9uvpGMjgm/Qa4M+ZeO7NdjowfaF/wF4BQIzVFN9YRhvQ/d8WDz84B5Pr0J7pWpaX7EyC4bvdskxl6kmdNIwIRcIe4OcuIiX5Z9oO+7h/chsEVJWF4vqNIYlL9Zvyhnr0hLLhhuk2bw== root@onelab-test.inria.fr'}
+
+
+slice1_spec={
+'slice_spec':{'name':'ts_slicetest1',
+              'instantiation':'plc-instantiated',
+              'url':'http://foo@ffo.com',
+              'description':'testslice the first slice for the site testsite',
+              'max_nodes':1000
+              },
+'slice_users' : [ site_users['pi_spec'], site_users['tech_spec'],site_users['tech_user_spec']],
+'slice_nodes' : [ site1_nodes['node1'], site1_nodes['node2'] ],
+}
+slices_specs= [slice1_spec]
+
+
+
diff --git a/trunk/plctest/TestMain.py b/trunk/plctest/TestMain.py
new file mode 100755 (executable)
index 0000000..498cfbb
--- /dev/null
@@ -0,0 +1,100 @@
+#!/usr/bin/env python
+
+import os, sys, time
+from optparse import OptionParser
+from TestPlc import TestPlc
+from TestSite import TestSite
+from TestNode import TestNode
+import TestConfig
+import threading
+
+class TestMain:
+
+    subversion_id = "$Id$"
+
+    def __init__ (self):
+       self.path=os.path.dirname(sys.argv[0])
+
+    def main (self):
+        try:
+            usage = """usage: %prog [options] MyplcURL"""
+            parser=OptionParser(usage=usage,version=self.subversion_id)
+            # verbosity
+            parser.add_option("-v","--verbose", action="store_true", dest="verbose", default=False, 
+                              help="Run in verbose mode")
+            # debug mode
+            parser.add_option("-g","--debug", action="store", dest="debug", 
+                              help="Run in debug mode for eventual virtual problems")
+            #exporting Display
+            parser.add_option("-d","--display", action="store", dest="Xterm", default='bellami:0.0',
+                              help="export the display on the mentionneted one")
+        
+            (self.options, self.args) = parser.parse_args()
+
+            display=''
+            url=''
+            test_plcs=[]
+            test_nodes=[]
+            pids=[]
+            timset=time.strftime("%H:%M:%S", time.localtime())
+            #test the existence of the URL
+            if (len (self.args)):
+                url=self.args[0]
+                print 'the myplc url is ',url
+            else:
+                print "PLease introduce a right URL for the myplc instal"
+                sys.exit(1)
+            #check where to display Virtual machines
+            if (self.options.Xterm):
+                display=self.options.Xterm
+                print 'the display is', display
+            #the debug option 
+            if (self.options.debug):
+                file=self.path+'/'+self.options.debug+'/My_Virtual_Machine.vmx'
+                if os.path.exists(file):
+                    print 'vmx file is',file
+                    arg='< /dev/null &>/dev/null &'
+                    os.system('DISPLAY=%s vmplayer %s %s '%(display,file,arg))
+                    sys.exit(0)
+                else:
+                    print "no way to find the virtual file"
+                    sys.exit(1)
+            
+            for plc_spec in TestConfig.plc_specs:
+                print '========>Creating plc at '+timset+':',plc_spec
+                test_plc = TestPlc(plc_spec)
+                test_plc.connect()
+                test_plcs.append(test_plc)
+                test_plc.cleanup_plc()
+                print '========>Installing myplc at: ', timset
+                if (len(sys.argv) > 1):
+                    test_plc.install_plc(url)
+                    test_plc.config_plc(plc_spec)
+                else :
+                    print "========>PLease insert a valid url for the myplc install"
+                ##create all the sites under the new plc,and then populate them with
+                ##nodes,persons and slices
+                for site_spec in plc_spec['sites']:
+                    print '========>Creating site at '+timset+ ':',site_spec
+                    test_site = test_plc.init_site(site_spec)
+                    for node_spec in site_spec['nodes']:
+                        print '========>Creating node at  '+ timset+' :',node_spec
+                        test_nodes.append(node_spec)
+                        test_node = test_plc.init_node(test_site,node_spec,self.path)
+                test_node.create_slice ("pi")
+                print 'Runing Checkers and Vmwares for Site nodes at :',timset
+                test_site.run_vmware(test_nodes,display)
+                if(test_site.node_check_status(test_nodes,True)):
+                    test_plc.db_dump()
+                    test_site.slice_access(test_nodes)
+                    print "all is alright"
+                    return 0
+                else :
+                    print "There is something wrong"
+                    sys.exit(1)
+        except Exception, e:
+            print str(e)
+            sys.exit(1)
+           
+if __name__ == "__main__":
+    TestMain().main()
diff --git a/trunk/plctest/TestNode.py b/trunk/plctest/TestNode.py
new file mode 100644 (file)
index 0000000..0ca91ba
--- /dev/null
@@ -0,0 +1,94 @@
+import os
+import sys
+import time
+import base64
+import TestConfig
+import xmlrpclib
+
+class TestNode:
+
+    def __init__ (self,test_plc,test_site,node_spec):
+       self.test_plc=test_plc
+       self.test_site=test_site
+       self.node_spec=node_spec
+        self.timset=time.strftime("%H:%M:%S", time.localtime())
+    def create_node (self,role):
+        auth = self.test_site.anyuser_auth (role)
+        filter={'boot_state':'rins'}
+        try:
+            if (role=='pi' and self.node_spec['owned']=='pi'):
+                self.node_id = self.test_plc.server.AddNode(auth,
+                                                            self.test_site.site_spec['site_fields']['login_base'],
+                                                            self.node_spec)
+                self.test_plc.server.AddNodeNetwork(auth,self.node_id,
+                                                    self.node_spec['network'])
+                self.test_plc.server.UpdateNode(auth, self.node_id, filter)
+                return self.node_id
+            
+            elif (role=='tech' and self.node_spec['owned']=='tech'):
+                self.node_id = self.test_plc.server.AddNode(auth,
+                                                            self.test_site.site_spec['site_fields']['login_base'],
+                                                            self.node_spec)
+                self.test_plc.server.AddNodeNetwork(auth,self.node_id,
+                                                    self.node_spec['network'])
+                self.test_plc.server.UpdateNode(auth, self.node_id, filter)
+                return self.node_id
+        except Exception, e:
+                print str(e)
+
+    def create_slice(self, role):
+        auth = self.test_site.anyuser_auth (role)
+        liste_hosts=[]
+        #for l in liste_nodes_spec :
+        #    liste_hosts.append(l['hostname'])
+        try:
+            for slicespec in TestConfig.slices_specs :
+                print '========>Creating slice at :'+self.timset+' : ',slicespec
+                slice_id=self.test_plc.server.AddSlice(auth,slicespec['slice_spec'])
+                for sliceuser in slicespec['slice_users']:
+                    self.test_plc.server.AddPersonToSlice(auth, sliceuser['email'], slice_id)##affecting person to the slice
+                for slicenode in slicespec['slice_nodes']:
+                    liste_hosts.append(slicenode['hostname'])
+                self.test_plc.server.AddSliceToNodes(auth, slice_id, liste_hosts)##add slice to the spec nodes
+            print 'fin creation slices'
+        except Exception, e:
+            print str(e)
+            sys.exit(1)
+        
+    def conffile(self,image,hostname,path):
+        try:
+            file=path+'/VirtualFile-'+hostname+'/My_Virtual_Machine.vmx'
+            f2=open(file,'w')
+            
+            f1=open(path+'/My-Virtual-Machine-model/My_Virtual_Machine.vmx','r')
+            while 1:
+                txt = f1.readline()
+                if txt=='':
+                    f1.close()
+                    f2.close()
+                    break
+                if txt[0]!='*' :
+                    f2.write(txt)
+                else :
+                    f2.write('ide1:1.fileName = '+'"'+image+'"' '\n')
+          
+            
+        except Exception, e:
+            print str(e)
+
+    def create_boot_cd(self,node_spec,path):
+        try:
+            os.system('mkdir  -p  %s/VirtualFile-%s  &&  cp  %s/My-Virtual-Machine-model/*  %s/VirtualFile-%s'
+                      %(path, node_spec['hostname'], path, path, node_spec['hostname']))
+            link1=self.test_plc.server.GetBootMedium(self.test_plc.auth_root(),
+                                                     node_spec['hostname'], 'node-iso', '')
+            if (link1 == ''):
+                raise Exception, 'boot.iso not found'
+            file1=open(path+'/VirtualFile-'+node_spec['hostname']+'/boot_file.iso','w')
+            file1.write(base64.b64decode(link1))
+            file1.close()
+            print '========> boot cd created for :',self.node_spec['hostname']
+            self.conffile('boot_file.iso',self.node_spec['hostname'], path) #create 2 conf file for the vmware based
+        except Exception, e:
+            print str(e)
+            sys.exit(1)
diff --git a/trunk/plctest/TestPlc.py b/trunk/plctest/TestPlc.py
new file mode 100644 (file)
index 0000000..d183e83
--- /dev/null
@@ -0,0 +1,101 @@
+import os
+import sys
+import xmlrpclib
+import datetime
+from TestSite import TestSite
+from TestNode import TestNode
+
+class TestPlc:
+
+    def __init__ (self,plc_spec):
+       self.plc_spec=plc_spec
+       self.url="https://%s:443/PLCAPI/"%plc_spec['hostname']
+       self.server=xmlrpclib.Server(self.url,allow_none=True)
+       self.path=os.path.dirname(sys.argv[0])
+        
+    def connect (self):
+       # tricky : define les methodes de l'API sur cet object
+       pass
+    
+    def auth_root (self):
+       return {'Username':self.plc_spec['PLC_ROOT_USER'],
+               'AuthMethod':'password',
+               'AuthString':self.plc_spec['PLC_ROOT_PASSWORD'],
+                'Role' : self.plc_spec['role']
+                }
+    def affiche_results(self, test_case_name, status, timers):
+        timers=datetime.datetime.now()
+        fileHandle = open (self.path+'/results.txt', 'a' )
+        fileHandle.write ( str(test_case_name)+'                    ' +str(status)+'                    '+str(timers))
+        fileHandle.close()
+
+        
+
+    def config_plc(self,plc_spec):
+# Thierry 2007-07-05 
+# now plc-config-tty silently creates needed directories
+#        os.system('mkdir -p /etc/planetlab/configs')
+
+        fileconf=open('tty_conf','w')
+        for var in [ 'PLC_NAME',
+                     'PLC_ROOT_PASSWORD',
+                     'PLC_ROOT_USER',
+                     'PLC_MAIL_ENABLED',
+                     'PLC_MAIL_SUPPORT_ADDRESS',
+                     'PLC_DB_HOST',
+                     'PLC_API_HOST',
+                     'PLC_WWW_HOST',
+                     'PLC_BOOT_HOST',
+                     'PLC_NET_DNS1',
+                     'PLC_NET_DNS2']:
+            fileconf.write ('e %s\n%s\n'%(var,plc_spec[var]))
+        fileconf.write('w\n')
+        fileconf.write('q\n')
+        fileconf.close()
+        os.system('set -x ; cat tty_conf')
+        os.system('set -x ; chroot /plc/root  plc-config-tty < tty_conf')
+        os.system('set -x ; service plc start')
+        os.system('set -x; service sendmail stop')
+        os.system('set -x; chroot /plc/root service sendmail restart')
+        
+    def cleanup_plc(self):
+        os.system('service plc safestop')
+        #####detecting the last myplc version installed and remove it
+        os.system('set -x; rpm -e myplc')
+        print "=======================>Remove Myplc DONE!"
+        ##### Clean up the /plc directory
+        os.system('set -x; rm -rf  /plc/data')
+        print "=======================>Clean up  DONE!"
+        
+    def install_plc(self,url):
+        print url
+        os.system('set -x; rpm -ivh '+url)
+        os.system('set -x; service plc mount')
+      
+    def init_site (self,site_spec):
+        test_site = TestSite (self,site_spec)
+        test_site.create_site()
+        for key in site_spec['users']:
+            test_site.create_user(key)
+            test_site.enable_user(key)
+            test_site.add_key_user(key)            
+        return test_site
+
+    def init_node (self,test_site,node_spec,path):
+
+        test_node = TestNode(self, test_site, node_spec)
+        test_node.create_node ("pi")
+        test_node.create_node ("tech")
+        test_node.create_boot_cd(node_spec,path)
+        return test_node
+    
+    def db_dump(self):
+        
+        t=datetime.datetime.now()
+        d=t.date()
+        dump='/var/lib/pgsql/backups/planetlab4-'+str(d)+'-2nodes'
+        os.system('chroot /plc/root pg_dump -U pgsqluser planetlab4 -f '+ dump)
+        print 'dump is done',dump
+        
+
+        
diff --git a/trunk/plctest/TestRestore.py b/trunk/plctest/TestRestore.py
new file mode 100755 (executable)
index 0000000..fa015c8
--- /dev/null
@@ -0,0 +1,109 @@
+#!/usr/bin/env python
+
+import os, sys, time
+from optparse import OptionParser
+import xmlrpclib
+
+class TestRestore:
+
+    subversion_id = "$Id$"
+
+    def __init__ (self):
+        self.url="https://localhost:443/PLCAPI/"
+       self.server=xmlrpclib.Server(self.url,allow_none=True)
+        self.path=os.path.dirname(sys.argv[0])
+
+###################3
+    def auth_root (self):
+       return {'Username':'root@onelab-test.inria.fr',
+               'AuthMethod':'password',
+               'AuthString':'test++',
+                'Role' : 'root'
+                }
+    
+##############check if the db version exsit
+    def check_dir(self,dbname):
+
+        config_file = "/plc/data/var/lib/pgsql/backups/"+dbname
+        if (os.path.isfile (config_file)):
+            print "==>dbversion found "
+            return 1
+        else:
+            print "\n %s  non-existing Bdd version\n" % config_file
+            return 0
+            
+##############restoring one db return list of host nodes
+    def restore_db(self,db,display):
+        try:
+            list_host=[]
+            ##stop httpd service
+            os.system('chroot /plc/root  service httpd stop')
+            ##droping
+            os.system(' echo drop database planetlab4 |chroot /plc/root psql --user=pgsqluser template1')
+            ##creating
+            os.system('chroot /plc/root  createdb -U postgres --encoding=UNICODE --owner=pgsqluser planetlab4')
+            ##populating
+            os.system('chroot /plc/root psql -U pgsqluser planetlab4 -f /var/lib/pgsql/backups/'+db)
+            ##starting httpd service
+            os.system('chroot /plc/root  service httpd start')
+
+            print 'db.restored'
+            hosts=self.server.GetNodes(self.auth_root())
+            for host in hosts:
+                print host['hostname']
+                list_host.append(host['hostname'])
+                
+            for l in list_host :
+                print display
+                os.system('DISPLAY=%s vmplayer %s/VirtualFile-%s/My_Virtual_Machine.vmx &'%(display,self.path,l))
+
+        except Exception, e:
+            print str(e)
+###########################    
+
+
+
+
+    def main (self):
+        try:
+            usage = """usage: %prog [options] BDDversion"""
+            parser=OptionParser(usage=usage,version=self.subversion_id)
+            # verbosity
+            parser.add_option("-v","--verbose", action="store_true", dest="verbose", default=False, 
+                              help="Run in verbose mode")
+            #exporting Display
+            parser.add_option("-d","--display", action="store", dest="Xdisplay", default='bellami:0.0',
+                              help="export the display on the mentionneted one")
+       
+        
+            (self.options, self.args) = parser.parse_args()
+            
+            hosts=[]
+            i=0
+            dirname =''
+            display=''
+           
+            
+            if (self.options.Xdisplay):
+                display=self.options.Xdisplay
+                print 'the display is', display
+       
+                
+            if (len(self.args) == 0 ):
+                parser.print_help()
+                sys.exit(1)
+            else:
+                dirname=self.args[0]    
+               
+            if (not (self.check_dir(dirname))):
+                 parser.print_help()
+                 sys.exit(1)
+                 
+            self.restore_db(dirname,display)
+            
+        except Exception, e:
+            print str(e)
+            
+if __name__ == "__main__":
+    TestRestore().main()       
+     
diff --git a/trunk/plctest/TestSite.py b/trunk/plctest/TestSite.py
new file mode 100644 (file)
index 0000000..f9d4caa
--- /dev/null
@@ -0,0 +1,223 @@
+import os
+import sys
+import datetime
+import time
+from TestConfig import *
+import xmlrpclib
+
+class TestSite:
+
+    def __init__ (self,test_plc,site_spec):
+       self.test_plc=test_plc
+       self.site_spec=site_spec
+        self.timset=time.strftime("%H:%M:%S", time.localtime())
+        
+    def create_site (self):
+        try:
+            print self.test_plc.auth_root()
+            self.site_id = self.test_plc.server.AddSite(self.test_plc.auth_root(),
+                                                       self.site_spec['site_fields'])
+           self.test_plc.server.AddSiteAddress(self.test_plc.auth_root(),self.site_id,
+                                      self.site_spec['site_address'])
+            
+           return self.site_id
+        except Exception, e:
+           print str(e)
+            
+    def site_id(self):
+       return self.site_id()
+
+    def create_user (self, user_spec):
+        try:
+            i=0
+            print '========>Adding user at '+self.timset+ ': ',user_spec
+            self.person_id=self.test_plc.server.AddPerson(self.test_plc.auth_root(),
+                                                          user_spec)
+            self.test_plc.server.UpdatePerson(self.test_plc.auth_root(),
+                                              self.person_id,{'enabled': True})
+            for role in user_spec['roles']:
+                self.test_plc.server.AddRoleToPerson(self.test_plc.auth_root(),
+                                                     role,user_spec['email'])
+            self.test_plc.server.AddPersonToSite(self.test_plc.auth_root(),
+                                                 user_spec['email'],
+                                                 self.site_spec['site_fields']['login_base'])
+        except Exception,e:
+            print str(e)
+            
+    def enable_user (self, user_spec):
+        try:
+            persones=self.test_plc.server.GetPersons(self.test_plc.auth_root())
+            for person in persones:
+                if (person['enabled']!="True"):
+                    self.test_plc.server.UpdatePerson(self.test_plc.auth_root(),
+                                                      person['person_id'],
+                                                      {'enabled': True})
+        except Exception,e:
+            print str(e)
+            
+    def add_key_user(self,user_spec):
+        try:
+            auth=""
+            for userspec in self.site_spec['users']:
+                if(user_spec == userspec):
+                    for role in userspec['roles']:
+                        auth=auth+role
+                    print auth
+                    self.test_plc.server.AddPersonKey(self.anyuser_auth(auth),
+                                                      user_spec['email'], key)
+        except Exception, e:
+            print str(e)
+            
+    def anyuser_auth (self,key):
+        for person in self.site_spec['users']:
+            if person['auth_meth']== key :
+                return {'Username':person['email'],
+                        'AuthMethod':'password',
+                        'AuthString':person['password'],
+                        'Role':person['roles'][0],
+                        }
+
+    def node_check_status(self,liste_nodes,bool):
+        try:
+            ret_value=True    
+            filter=['boot_state']
+            bt={'boot_state':'boot'}
+            dbg={'boot_state':'dbg'}
+            secondes=15
+            start_time = datetime.datetime.now() ##geting the current time
+            dead_time=datetime.datetime.now()+ datetime.timedelta(minutes=10)##adding 10minutes
+            start=time.strftime("%H:%M:%S", time.localtime())
+            print "time in the begining  is :",start
+            
+            for l in liste_nodes :
+                while (bool):
+                    node_status=self.test_plc.server.GetNodes(self.test_plc.auth_root(),
+                                                              l['hostname'], filter)
+                    timset=time.strftime("%H:%M:%S", time.localtime())
+                    print 'the actual status for the node '+l['hostname']+' at '+str(timset)+' is :',node_status
+                    try:
+                        if (node_status[0] == bt):
+                            test_name='\nTest Installation Node hosted: '+l['hostname']
+                            self.test_plc.affiche_results(test_name, 'Successful', '')##printing out the result
+                            break ##for exsiting and renaming virtual file to just installed
+                        elif (node_status[0] ==dbg):
+                            test_name='\nTest Installation Node hosted: '+l['hostname']
+                            self.test_plc.affiche_results(test_name, 'En Debug', '')##printing out the result
+                            bool=False
+                            break ##for exsiting and renaming virtual file to just installed
+                        elif ( start_time  <= dead_time ) :
+                            start_time=datetime.datetime.now()+ datetime.timedelta(minutes=2)
+                            time.sleep(secondes)
+                        else: bool=False
+                    except OSError ,e :
+                        bool=False
+                        str(e)
+                if (bool):
+                    print "Node correctly instaled and booted "
+                else :
+                    print "Node not fully booted "##cheek if configuration file already exist
+                    ret_value=False
+                    test_name='\nTest Installation Node Hosted: ',l['hostname']
+                    self.test_plc.affiche_results(test_name, 'Failure', '')##printing out the result
+            
+            end=time.strftime("%H:%M:%S", time.localtime())
+            print "time at the end is :",end  ##converting time to secondes
+            return ret_value
+        except Exception, e:
+            print str(e)
+            print "vmware killed if problems occur  "
+            time.sleep(10)
+            self.kill_all_vmwares()
+            sys.exit(1)
+            
+    def kill_all_vmwares(self):
+        os.system('pgrep vmware | xargs -r kill')
+        os.system('pgrep vmplayer | xargs -r kill ')
+        os.system('pgrep vmware | xargs -r kill -9')
+        os.system('pgrep vmplayer | xargs -r kill -9')
+        
+    def run_vmware(self,liste_nodes,display):
+        path=os.path.dirname(sys.argv[0])
+        print path
+        print " kill last vmware before any new  installation  "
+        self.kill_all_vmwares()
+        print 'i will be displayed here========>', display
+        arg='< /dev/null &>/dev/null &'
+        for l in liste_nodes :
+            #os.system('set -x; vmplayer  VirtualFile-%s/My_Virtual_Machine.vmx  %s '%(l['hostname'],arg))
+            os.system('set -x; DISPLAY=%s vmplayer %s/VirtualFile-%s/My_Virtual_Machine.vmx %s '%(display,path,l['hostname'],arg))
+
+    def delete_known_hosts(self):
+        try:
+            file1=open('/root/.ssh/known_hosts','r')
+            file2=open('/root/.ssh/known_hosts_temp','w')
+            while 1:
+                txt = file1.readline()
+                if txt=='':
+                    file1.close()
+                    file2.close()
+                    break
+                if txt[0:4]!='test' :
+                    file2.write(txt)
+            
+                
+            os.system('mv -f /root/.ssh/known_hosts_temp  /root/.ssh/known_hosts')
+        except Exception, e:
+            print str(e)
+
+    def slice_access(self,liste_nodes):
+        try:
+            bool=True
+            bool1=True
+            secondes=15
+            self.delete_known_hosts()
+            start_time = datetime.datetime.now()
+            dead_time=start_time + datetime.timedelta(minutes=3)##adding 3minutes
+            for slice in slices_specs:
+                for slicenode in slice['slice_nodes']:
+                    timset=time.strftime("%H:%M:%S", time.localtime())
+                    while(bool):
+                        print '=========>Try to Restart the Node Manager on %s at %s:'%(slicenode['hostname'],str(timset))
+                        access=os.system('set -x; ssh -i /etc/planetlab/root_ssh_key.rsa  root@%s service nm restart'%slicenode['hostname'] )
+                        if (access==0):
+                            print '=========>Node Manager Restarted on %s at %s:'%(slicenode['hostname'] ,str(timset))
+                            while(bool1):
+                                print '=========>Try to connect to the %s@%s at %s '%(slice['slice_spec']['name'],slicenode['hostname'],str(time.strftime("%H:%M:%S", time.localtime())))
+                                Date=os.system('set -x; ssh -i ~/.ssh/slices.rsa %s@%s echo "The Actual Time here is;" date'%(slice['slice_spec']['name'],slicenode['hostname']))
+                                if (Date==0):
+                                    break
+                                elif ( start_time  <= dead_time ) :
+                                    start_time=datetime.datetime.now()+ datetime.timedelta(seconds=30)
+                                    time.sleep(secondes)
+                                else:
+                                    bool1=False
+                            if(bool1):
+                                print '=========>connected to the '+slice['slice_spec']['name']+'@'+slicenode['hostname'] +'--->'
+                            else:
+                                print '=========>access to one slice is denied but last chance'
+                                print '=========>Retry to Restart the Node Manager on %s at %s:'%(slicenode['hostname'],str(timset))
+                                access=os.system('set -x; ssh -i /etc/planetlab/root_ssh_key.rsa  root@%s service nm restart'%slicenode['hostname'] )
+                                if (access==0):
+                                    print '=========>Retry to connect to the %s@%s at %s '%(slice['slice_spec']['name'],slicenode['hostname'],str(time.strftime("%H:%M:%S", time.localtime())))
+                                    Date=os.system('set -x; ssh -i ~/.ssh/slices.rsa %s@%s echo "The Actual Time here is;" date'%(slice['slice_spec']['name'],slicenode['hostname'] ))
+                                    if (Date==0):
+                                        print '=========>connected to the '+slice['slice_spec']['name']+'@'+slicenode['hostname']+'--->'
+                                    else:
+                                        print '=========>the Access is finaly denied'
+                                        sys.exit(1)
+                                else :"=========>Last try failed"
+                            break
+                        elif ( start_time  <= dead_time ) :
+                            start_time=datetime.datetime.now()+ datetime.timedelta(minutes=1)
+                            time.sleep(secondes)
+                        else:
+                            bool=False
+                                
+                    if (not bool):
+                        print 'Node manager problems'
+                        sys.exit(1)
+                    
+        except Exception, e:
+            print str(e)
+            sys.exit(1)
+   
diff --git a/trunk/plctest/tty_conf b/trunk/plctest/tty_conf
new file mode 100644 (file)
index 0000000..1cea152
--- /dev/null
@@ -0,0 +1,24 @@
+e PLC_NAME
+TestLab
+e PLC_ROOT_PASSWORD
+test++
+e PLC_ROOT_USER
+root@onelab-test.inria.fr
+e PLC_MAIL_ENABLED
+true
+e PLC_MAIL_SUPPORT_ADDRESS
+mohamed-amine.chaoui@sophia.inria.fr
+e PLC_DB_HOST
+onelab-test.inria.fr
+e PLC_API_HOST
+onelab-test.inria.fr
+e PLC_WWW_HOST
+onelab-test.inria.fr
+e PLC_BOOT_HOST
+onelab-test.inria.fr
+e PLC_NET_DNS1
+138.96.0.10
+e PLC_NET_DNS2
+138.96.0.11
+w
+q
diff --git a/trunk/psycopg2/AUTHORS b/trunk/psycopg2/AUTHORS
new file mode 100644 (file)
index 0000000..44c77fc
--- /dev/null
@@ -0,0 +1,8 @@
+Main authors:
+  Federico Di Gregorio <fog@debian.org>
+
+For the win32 port:
+  Jason Erickson <jerickso@indian.com> (most of his changes are still in 2.0)
+
+Additional Help:
+  
diff --git a/trunk/psycopg2/ChangeLog b/trunk/psycopg2/ChangeLog
new file mode 100644 (file)
index 0000000..b273e20
--- /dev/null
@@ -0,0 +1,1219 @@
+2006-09-02  Federico Di Gregorio  <fog@initd.org>
+
+       * Release 2.0.5.1.
+
+       * psycopg/cursor_type.c: applied patch from Jason Erickson to
+       build on MSVC and older gcc.
+
+2006-09-01  Federico Di Gregorio  <fog@initd.org>
+
+       * Release 2.0.5.
+
+       * Fixed patch from #119, see tracker for details.
+
+       * Preparing release 2.0.5.
+
+       * psycopg/psycopgmodule.c: fixed filling of connection errors
+       to include OperationalError.
+
+       * setup.py: removed pydatetime option from initialize_options
+       to make sure that the value in setup.cfg is used.
+
+       * psycopg/psycopgmodule.c: applied patch from jdahlin (#120)
+       to have .connect() accept either a string or int as the port
+       parameter.
+
+       * psycopg/adapter_binary.c: applied patch from jdahlin (#119)
+       to fix the segfault on empty binary buffers.
+
+       * psycopg/connection_type.c: added .status attribute to expose
+       the internal status.
+
+       * psycopg/pqpath.c: applied patch from intgr (#117) to fix
+       segfault on null queries.
+
+       * psycopg/cursor_type.c: applied patch from intgr (#116) to
+       fix bad keyword naming and segfault in .executemany().
+
+       * ZPsycopgDA/DA.py: applied ImageFile patch from Charlie
+       Clark.
+
+       * lib/pool.py: applied logging patch from Charlie Clark.
+       It will probably get a makeup and be moved to the top-level
+       module later.
+
+2006-08-02  Federico Di Gregorio  <fog@initd.org>
+
+       * Release 2.0.4.
+
+       * Fixed bug in float conversion (check for NULL string was
+       erroneously removed in 2.0.3!)
+
+2006-07-31  Federico Di Gregorio  <fog@initd.org>
+
+       * Release 2.0.3.
+
+       * psycopg/cursor_type.c: applied patch from jbellis (#113) to
+       allow column selection in .copy_from().
+
+       * psycopg/psycopgmodule.c: fixed memory leak in custom exceptions
+       (applied patch from #114).
+
+2006-07-26  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/adapter_datetime.c (pydatetime_str): fixed error
+       in conversion of microseconds for intervals and better algo
+       (thanks to Mario Frasca.)
+
+2006-06-18  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/adapter_binary.c: same as below.
+
+        * psycopg/adapter_qstring.c: does not segfault anymore if 
+       .getquoted() is called without preparing the qstring with 
+       the connection.
+
+2006-06-15  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/typecast_basic.c: fixed problem with bogus
+       conversion when importing gtk (that was crazy, I didn't
+       understand why it happened but the new code just fixes it.)
+
+       * ZPsycopgDA/db.py: better type analisys, using an hash
+       instead of a series of if (variation on patch from Charlie
+       Clark.)
+
+2006-06-11  Federico Di Gregorio  <fog@initd.org>
+
+       * Release 2.0.2.
+
+       * psycopg/typecast_array.c (typecast_array_cleanup): fixed a
+       problem with typecast_array_cleanup always returning the new
+       string length shorter by 1 (Closes: #93).
+
+       * psycopg/adapter_binary.c: as below.
+
+       * psycopg/adapter_qstring.c: wrapped #warning in #ifdef __GCC__
+       because other compilers don't have it and it will just break
+       compilation (patch from jason, our great win32 builder).
+
+       * psycopg/adapter_list.c: applied patch to adapt an empty list
+       into an empty array and not to NULL (from iGGy, closes: #108).
+
+       * psycopg/cursor_type.c: applied patch from wkv to avoid
+       under-allocating query space when the parameters are not of the
+       right type (Closes: #110).
+
+       * psycopg/connection_int.c: applied patch from wkv to avoid off 
+       by one allocation of connection encoding string (Closes: #109).
+
+2006-06-09  Federico Di Gregorio  <fog@initd.org>
+
+        * Release 2.0.1.
+
+       * Fixed some buglets in ZPsycopgDA (was unable to load due
+       to shorter version number in psycopg module.)
+
+2006-06-08  Federico Di Gregorio  <fog@initd.org>
+       
+       * Release 2.0.
+
+       * ZPsycopgDA/DA.py: removed Browse table for 2.0 release; we'll
+       add it back later.
+
+2006-05-26  Federico Di Gregorio  <fog@initd.org>
+
+       * Applied better PostgreSQL patch from AA.
+
+2006-05-24  Federico Di Gregorio  <fog@initd.org>
+
+       * Enabled 8.1.4 security fix only when the version is >= 8.1.4, fall
+       back to old code otherwise.
+       
+       * psycopg/adapter_qstring.c: now quote using PQescapeStringConn if
+       available. 
+
+       * psycopg/adapter_binary.c: now quote using PQescapeByteaConn if
+       available. 
+
+2006-04-38  Federico Di Gregorio  <fog@initd.org>
+
+       * setup.py: fixed little problem with mx_include_dir as suggested
+       by kvc (this closes #102).
+
+2006-04-24  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/adapter_pboolean.c: added the possibility to format boolean
+       values as "true" and "false" instead of "'t'" and "'f'".
+
+2006-03-08  Federico Di Gregorio  <fog@initd.org>
+
+       * lib/extras.py: added .next() to DictCursot to support iteration.
+
+2006-03-02  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/typecast_array.c (typecast_array_tokenize): removed cast
+       to build without warnings on 64 bit arches.
+
+2006-02-11  Federico Di Gregorio  <fog@initd.org>
+
+       * Release 2.0 beta 8.
+
+       * psycopg/config.h: applied patch from Jason to fix handle leak on
+       win32, as documented in #92.
+
+2006-02-11  Federico Di Gregorio  <fog@initd.org>
+
+       * Release 2.0 beta 7.
+
+       * psycopg/psycopgmodule.c: applied fix for memory overflow in
+       connect() (reported by solt, #91.)
+
+       * setup.py: applied patch from lbruno.
+
+2006-01-11  Federico Di Gregorio  <fog@initd.org>
+
+       * setup.py: does not report an error in pg_config unless the pg_config
+       was explicitly set (allows for building with old options.) 
+
+2006-01-06  Daniele Varrazzo  <daniele.varrazzo@gmail.com>
+
+       * setup.py: libpq.dll not used anymore. win32 setup uses pg_config too.
+
+2006-01-05  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/psycopgmodule.c (psyco_set_error): added function to set extra
+       parameters on ProgrammingError instances. Also modified all occurances of
+       PyErr_SetString(ProgrammingError,...) to psycopg_set_error(). 
+
+       * setup.{cfg,py}: we now use pg_config to locate PostgreSQL libraries
+       and headers (modified patch from lbruno, see #70.)
+
+2006-01-01  Federico Di Gregorio  <fog@initd.org>
+
+       * Preparing release 2 beta 7.
+
+       * MANIFEST.in: we now distrbute pre-built documentation (still need
+       to add to setup.py the code necessary to build docs as part of the
+       build process.)
+
+       * psycopg/connection_int.c: PostgreSQL encoding names are now force
+       uppercase (after all PostgreSQL documentation reports them this way.)
+
+2005-12-11 Federico Di Gregorio <fog@initd.org>
+
+       * psycopg/typecast_array.c (typecast_array_cleanup): added functio
+       to cleanup the "[...]=" part of an array result. This probably will
+       need some more work for nested arrays but it fixed every test I was
+       able to write. (Closes: #80)
+
+2005-12-11  Federico Di Gregorio  <fog@initd.org>
+
+       * setup.py: half-applied patch from Tavis to specify mx_include_dir
+       in setup.cfg.
+
+       * psycopg/typecast.c (typecast_parse_time): cz limit in the while
+       loop is 6, not 5. This solve the problem with "fractionary" time zones
+       and fixes #78. 
+
+2005-12-06  Federico Di Gregorio  <fog@initd.org>
+
+       * lib/extras.py: added .callproc() to DictCursor as suggested
+       by Philip Semanchuk.
+
+2005-11-29  Federico Di Gregorio  <fog@initd.org>
+
+       * MANIFEST.in: added docs/async.txt. (Closes: #75)
+
+2005-11-26  Daniele Varrazzo  <daniele.varrazzo@gmail.com>
+
+       * psycopg/psycopgmodule.c: fixed exceptions refcount.
+
+       * Fixed lots of doctrings and added Epydoc-generated docs support.
+
+2005-11-24  Federico Di Gregorio  <fog@initd.org>
+
+       * sandbox: added all the test and creash-me files to the repository.
+
+       * psycopg/typecast.c (typecast_dealloc): now directly calls
+       PyObject_Del to avoid to segfault.
+
+2005-11-20  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/typecast.c: fixed problem with microseconds conversion by
+       applying slightly modified patch from Ronnie Mackay.
+
+2005-11-19  Federico Di Gregorio  <fog@initd.org>
+
+       * lib/extensions.py: COMMITED -> COMMITTED. (Closes: #73)
+
+       * doc/extensions.rst: included Daniele's work after minor cosmetic changes
+       like using the new constants instead of numbers for transaction isolation
+       levels.
+
+2005-11-17  Federico Di Gregorio  <fog@initd.org>
+
+       * ZPsycopgDA/pool.py: fixed connections leak by using the new name
+       (PersistentConnectionPool) for the old connection pool class.
+
+2005-11-16  Federico Di Gregorio  <fog@initd.org>
+
+       * Preparing release 2.0 beta 6.
+       
+       * psycopg/adapter_mxdatetime.c: fixed all problems with mx conversions.
+       
+       * psycopg/typecast.c: now the timezone is set correctly even if there
+       are no microseconds and/or the offset is 0;
+
+       * examples/encoding.py: fixed example by using python utf8 encoding for
+       the whole file.
+
+       * lib/__init__.py: very nice hack from Harald Armin Massa to allow
+       py2exe and similar tools to do their work without problems.
+
+2005-11-15  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/psycopgmodule.c: now bails out with correct exception when one
+       of the needed modules can't be imported (should fix #32.)
+
+2005-11-14  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/typecast.c: added typecast_parse_date and typecast_parse_time
+       functions to do locale-safe date/time parsing. This would probably also
+       speed-up psycopg a little bit.
+
+2005-11-07  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/pqpath.c: fixed problem with uninitialized value (all this was
+       started by replacing calloc() calls with PyMem_Malloc().)
+
+2005-11-04  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/typecast.c: a lot of changes:
+         - made typecast a new-style type
+         - removed coerce code and implemented the richcompare protocol that
+           allows to compare objects of different types
+         - much better __cmp__ method that allows to compare two typecast
+           objects and returns True if any two of the mapped oids match
+         - any object that can be used as an int works as right-hand operand
+           in __cmp__ operations 
+
+       * psycopg/typecast_datetime.c: now typecast_PYINTERVAL_cast limit the
+       scan to 'len' characters in the string (should fix #65.)
+
+2005-11-03  Federico Di Gregorio  <fog@initd.org>
+
+       * Applied patch from Daniele Varazzo to enable Decimal on Python
+       2.3 when the module is available (run-time check, nice.)
+       
+2005-10-26  Federico Di Gregorio  <fog@initd.org>
+
+       * setup.cfg: added include_dirs line for SUSE 9.3.
+
+2005-10-22  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/cursor_type.c: added support for named cursors:
+         - .fetchXXX() methods now execute a FETCH if the cursor is named
+         - .execute() executes a DECLARE if the cursor is named
+         - .execute() fails if a named cursor is used in autocommit
+         - .executemany() can't be called on named cursors
+         - .scroll() executes a MOVE if the cursor is named
+         - .close() executes a CLOSE if the cursor is named
+         Also, a "transaction mark" was added to both the connection and the
+         cursor and an exception is raised when using a named cursor unless the
+         two marks correspond.
+
+       * psycopg/connection_int.c: snprintf->PyOS_snprintf.
+
+       * psycopg/psycopgmodule.c: snprintf->PyOS_snprintf.
+
+       * psycopg/cursor_type.c: changed self->query type from C string to
+       PyObject* to better manage queries in named cursors.
+
+       * psycopg/psycopgmodule.c: cleaned up exception names (now the errors
+       is printed as psycopg2.Error and not as the confusing
+       psycopg2._psycopg.Error.)
+
+2005-10-20  Federico Di Gregorio  <fog@initd.org>
+
+       * lib/pool.py: renamed ThreadedConnectionPool to PersistentConnectionPool
+       and added a connection pool that allows multiple connections per thread
+       as ThreadedConnectionPool (courtesy of Daniele Varrazzo.)
+
+2005-10-19  Federico Di Gregorio  <fog@initd.org>
+
+       * Releasing 2.0 beta 5.
+       
+       * psycopg/adapter_mxdatetime.c: reverted to old strftime method to format
+       mx.DateTime objects; the new method didn't worked in some corner-cases.
+       This makes impossible to have more than 2 decimal places for seconds but
+       at least we get the time right every time.
+
+2005-10-18  Federico Di Gregorio  <fog@initd.org>
+
+       * NOTIFY is back end working.
+
+       * psycopg/connection_type.c: fixed problem with initialization of
+       notifies list (also fixed small memory leak in connection dealloc.)
+
+       * examples/notify.py: added NOTIFY example.
+
+       * psycopg/cursor_type.c: added per-cursor type-casters dictionaries.
+
+2005-10-18  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/typecast.c: temporary fix to typecasting objects to return
+       False for any comparaison except an integer in self.values (i.e., we
+       don't raise an exception anymore on a coerce error.) Epydoc is now
+       happy.
+
+       * psycopg/config.h: ZETA config.h patch from Charlie Clark.
+
+       * examples/threads.py: fixed small typo: psycopg -> psycopg2.
+
+       * Big cleanup of unsigned chars to tame gcc 4.
+
+       * Big cleanup of module names (i.e., psycopg2._psycopg everywhere.)
+       
+       * psycopg/config.h: added fake localtime_r for platforms missing it
+
+       * psycopg/cursor_type.c: cursors now have a FixedOffsetTimezone
+       tzinfo_factory by default.
+
+       * psycopg/adapter_datetime.c: added tzinfo argument to psycopg2.Time and
+       psycopg2.Timestamp. Also now TimestampFromTicks sets the tzinfo object
+       to psycopg2.tz.LOCAL.
+
+2005-10-17  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/adapter_datetime.c: we now use localtime() instead of gmtime()
+       to accound for the local time-zone in timestamps.
+
+       * psycopg/connection_type.c: fixed docstring for .cursor().
+
+       * psycopg/psycopgmodule.c: added useful docstring for .connect().
+
+2005-10-08  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/connection_type.c: isolation level upper bound set to 2.
+
+       * lib/psycopg1.py: explicitly set isolation level to 2 on .connect()
+       to mimic psycopg 1 behaviour.
+
+       * psycopg/connection_int.c: now set isolation level from
+       default_transaction_isolation backend environment value.
+
+       * psycopg/pqpath.c: removed serialization level 3: now everybody
+       (except me) has to use the mnemonics defined in psycopg2.extensions.
+
+       * lib/extensions.py: Added mnemonics for serialization levels.
+
+2005-10-02  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/cursor_type.c (psyco_curs_callproc): applied callproc
+       patch from Matt Goodall (added a check on _psyco_curs_execute
+       return value and substituted malloc/free with PyMem versions.) 
+
+2005-10-01  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/connection_int.c: fixed segfault by moving PyErr_Format
+       after GIL acquisition (closes: #50).
+
+       * psycopg/connection_type.c: applied patch from Matt Goodall to
+       fix some doc strings.
+
+2005-09-23  Federico Di Gregorio  <fog@debian.org>
+
+       * lib/pool.py: applied patch from piro to avoid the scan of the
+       whole connection array on getconn().
+
+2005-09-12  Federico Di Gregorio  <fog@initd.org>
+
+       * lib/pool.py: Applied psycopg->psycopg2 patch to from bug #35.
+
+       * ZpsycopgDA/db.py: fixed problem with OperationalError that
+       resulted in cryptic message to Zope users ("'OperationalError' is
+       not defined".)
+       
+2005-08-23  Federico Di Gregorio  <fog@debian.org>
+
+       * setup.py: applied patch from Daniele Varrazzo to avoid segfaults
+       when compiling with migw for Python 2.4.x.
+
+       * psycopg/adapter_mxdatetime.c (mxdatetime_str): ported code from 1.1.x
+       to convert mxDateTime object preserving the precision of fractional
+       seconds.
+
+2005-08-22  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/*.py: psycopg -> psycopg2. 
+
+       * setup.py: modified to install the module components under
+       psycopg2 on windows too (thanks to Daniele Varrazzo.)
+
+2005-08-07  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/config.h: added __sun__ to the symbols checked for round()
+
+2005-07-21  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/adapter_datetime.c (psyco_XXXFromTicks): fixed the 1900
+       years offset reported by Jeroen van Dongen (see ticket #33). 
+
+2005-07-17  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 2.0 beta 4.
+
+       * lib/extras.py (DictConnection.cursor): added DictConnection to
+       make easier to retrieve data in DictRows.
+
+2005-06-24  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/typecast_datetime.c (typecast_PYINTERVAL_cast): applied patch
+       from Geert Jansen to fix interval bug due to overflow.
+
+2005-06-18  Federico Di Gregorio  <fog@initd.org>
+
+       * setup.cfg: some clarifications and include_dirs example for Mandrake.
+       
+       * ZPsycopgDA/DA.py: DTMLFile -> HTMLFile everywhere to fix zope
+       cut&paste problems.
+       
+       * MANIFEST.in: added missing files to do bdist_rpm.
+       
+       * lib/psycopg1.py: fixed .dictfetchrow() to return None if fetchone()
+       returns None instead of raising an exception.
+       
+       * ZPsycopgDA/icons: replaced corrupted icons with good ones. 
+
+2005-06-13  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/psycopgmodule.c (psyco_connect): changed the port keyword
+       parameter type to int (instead of string); this should fix #23.
+       
+       * psycopg/cursor_type.c (_psyco_curs_execute): now checks for
+       empty queries and raise a ProgrammingError if appropriate (closes:
+       #24).
+       
+       * setup.py: psycopg module renamed to psycopg2.
+
+2005-06-02  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/cursor_type.c (_psyco_curs_execute): fixed segfault when
+       not passing string or unicode to .execute().
+
+2005-06-01  Federico Di Gregorio  <fog@debian.org>
+
+       * examples/fetch.py: added example about using DECLARE CURSOR.
+
+       * psycopg/adapter_datetime.c (psyco_TimestampFromTicks): "Hmmm,
+       looks like someone forgot that C expects months to start counting
+       from 0, but the Python date routines start counting from 1." That
+       was me: fixed.
+
+2005-05-31  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/cursor_type.c (_psyco_curs_execute): if a
+       UnicodeEncodeError is raised during the converion of a unicode
+       query we let it propagate insead of segfaulting.
+       
+2005-5-27  Federico Di Gregorio,  <fog@lana.initd.org>
+
+       * tests/types_basic.py: fixed float and binary tests.
+
+2005-05-26  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 2.0b3.
+
+       * ZPsycopgDA/db.py (DB.convert_description): isolated description
+       conversion (and fixed the conversion as per #18).
+
+       * ZPsycopgDA/DA.py: fixed again; this time Zope should work for
+       real. :/  Also fixed the type-casters (psycopg 2 added the extra
+       cursor parameter) as reported in #18.
+
+       * psycopg/psycopgmodule.c (init_psycopg): fixed Python 2.2 build. 
+
+2005-05-19  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 2.0b2.
+       
+       * lib/extras.py (DictRow): Some extra methods for DictRow.
+
+       * psycopg/cursor_type.c (_psyco_curs_execute): added explict check
+       to avoid using None as bound variables (very importand for cursor
+       subclasses calling cursor.execute(self, query, None).
+
+2005-05-18  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/DA.py (ALLOWED_PSYCOPG_VERSIONS): updated to work
+       with 2.0b2 only (will support only the exact version untill final
+       2.0 release.)
+
+       * setup.py: Applied combined patch from Daniele Varrazzo and Jason
+       Erickson to build on win32 using MSVC or mingw.
+
+2005-05-15  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/microprotocols.c (microprotocols_adapt): fixed memory
+       leak on None as suggested by gh (closes: #16).
+
+2005-05-10  Federico Di Gregorio  <fog@debian.org>
+
+       * lib/extras.py (DictRow): we now save a reference to the index
+       itself and not to the cursor to avoid problems while accessing
+       DictRow objects after reusing the cursor for a different query
+       (using  Kevin Jacobs db_row would be much better but DictRow is
+       just an example, right?)
+
+2005-05-09  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 2.0 beta 1.
+
+       * psycopg/typecast_datetime.c (typecast_PYDATETIME_cast): fixed a
+       typo (pyDateTimeModuleP->pyDateTimeTypeP) that was causing errors
+       with infinite datetime values.
+
+       * psycopg/adapter_binary.c (binary_str): Py_XINCREF on the buffer
+       that can be NULL on error.
+
+       * psycopg/typecast_binary.*: applied slightly modified
+       chunk/buffer object patch to allow round-trip of buffer objects
+       (BYTEA columns.) 
+
+       * psycopg/cursor_type.c (psyco_curs_executemany): applied slightly
+       fixed patch from wrobell to allow iterators in .executemany().
+
+2005-04-18  Federico Di Gregorio  <fog@debian.org>
+
+       * MANIFEST.in: included debian directory.
+
+2005-04-10  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/adapter_list.*: added list adapter. 
+
+       * psycopg/microprotocols.c (microprotocol_getquoted): moved
+       _mogrify_getquoted into utility function in the microprotocols
+       library.
+
+       * setup.py: Added extensive error message on missing datetime
+       headers.
+
+       * Applied mingw patch from Daniele Varazzo. 
+
+2005-04-03  Federico Di Gregorio  <fog@debian.org>
+
+       * lib/psycopg1.py (connection.autocommit): added compatibility
+       .autocommit() method.
+
+       * psycopg/psycopgmodule.c (psyco_connect): factory ->
+       connection_factory.
+
+       * lib/psycopg1.py: added psycopg 1.1.x compatibility module.
+
+2005-03-29  Federico Di Gregorio  <fog@debian.org>
+
+       * Applied patch to fix tuple count.
+       
+       * psycopg/pqpath.c (pq_is_busy): Staring from bug report from
+       Jason Erickson fixed segfaults due to calling Python function
+       without holding the GIL.
+2005-03-24  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/adapter_binary.c (binary_escape): propagated Andrea's
+       fix to binary adapter.
+
+       * psycopg/adapter_qstring.c (qstring_quote): applied patch from
+       Andrea Arcangeli to fix allocation failures (>4Gb) on 64 bit
+       arches.
+
+       * psycopg/typecast_array.c (typecast_array_tokenize): much better
+       tokenization code.
+
+2005-03-23  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/typecast_basic.c: all the basic casters now respect the
+       passed string length.
+
+       * psycopg/typecast.c (typecast_cast): set curs->caster to self
+       during the type-casting.
+
+       * psycopg/cursor_type.c: added "typecaster" attribute to the
+       cursor (this is safe, cursors can't be shared among threads and
+       the attribute is RO.)
+
+2005-03-22  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/typecast_array.c: added some more structure to implement
+       array typecasting.
+
+       * scripts/buildtypes.py: new version to include array data.
+
+2005-03-15  Federico Di Gregorio  <fog@debian.org>
+
+       * lib/extensions.py: Added AsIs import.
+
+2005-03-12  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/cursor.h: removed "qattr", not used anymore and added
+       "cast", holding the typecaster currently in use.
+
+       * Release 1.99.13.
+
+       * psycopg/cursor_type.c (psyco_curs_executemany): implemented as a
+       wrapper to extract python arguments and then call
+       _psyco_curs_execute().
+
+       * psycopg/cursor_type.c (_psyco_curs_execute): splitted away
+       python argument parsing from the real execute code, to later allow
+       for .executemany().
+
+       * psycopg/cursor_type.c (_psyco_curs_buildrow_fill): modified to
+       call typecast_cast().
+       
+       * psycopg/typecast.c (typecast_call/typecast_cast): modified
+       typecast_call to use the new typecast_cast that avoids one string
+       conversion on every cast.
+
+2005-03-04  Federico Di Gregorio  <fog@initd.org>
+
+       * Release 1.99.12.1.
+
+       * psycopg/adapter_asis.c (asis_str): changed call to PyObject_Repr
+       to PyObject_Str to avoid problems with long integers.
+
+2005-03-03  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/typecast.h: added array casting functions.
+
+       * scripts/maketypes.sh: does not generate pgversion.h anymore. 
+
+       * Updated all examples for the release.
+
+2005-03-02  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.99.12.
+       
+       * psycopg/adapter_*.c: added __conform__ to all adapters.
+       
+       * psycopg/adapter_qstring.c (qstring_quote): we now use
+       PyString_AsStringAndSize() instead of strlen() that would stop at
+       the first embedded \0 (but note that libpq quoting function will
+       truncate the string anyway!)
+       
+       * COPY TO implemented using both old and new (v3) protocol.
+
+       * psycopg/pqpath.c (_pq_copy_out_v3): implemented and working.
+
+       * psycopg/cursor_type.c (psyco_curs_copy_to): added cursor object
+       interface for copy_to.
+
+       * COPY FROM implemented using both old and new (v3) protocol.
+
+       * psycopg/config.h (Dprintf): declaration for asprintf is gone.
+
+       * psycopg/pqpath.c (_pq_copy_in_v3): implemented.
+
+2005-03-01  Federico Di Gregorio  <fog@debian.org>
+
+       * setup.py: now we generate a slighly more verbose version string
+       that embeds some of the compile options, to facilitate users' bug
+       reports.
+
+       * psycopg/cursor_type.c (psyco_curs_copy_from): we now use
+       PyOS_snprintf instead of asprintf. On some platforms this can be
+       bad (win32).. if that's your case, get a better platform. :/
+
+       * psycopg/microprotocols.c (microprotocols_adapt): fixed small
+       typo that made adaptation using __conform__ impossible.
+
+2005-02-28  Federico Di Gregorio  <fog@debian.org>
+
+       * lib/extras.py: removed AsIs adapter (now a built-in); also
+       removed prepare() method from the adapters that don't use it to
+       avoid an extra method call at mogrification time.
+
+       * psycopg/psycopgmodule.c (psyco_adapters_init): added
+       initialization of the AsIs adapter (adapts int, long, float and
+       *wonder* None!)
+
+       * psycopg/cursor_type.c (_mogrify_getquoted): reorganized the code
+       to adapt and then call .getquoted() to obtain the quoted data into
+       this new function.
+
+2005-2-27  Federico Di Gregorio  <fog@initd.org>
+
+       * examples/myfirstrecipe.py: fixed adapter registration. 
+
+2005-2-7  Federico Di Gregorio  <fog@initd.org>
+
+       * setup.py: added patch by Valentino Volonghi to build on MacOS X.
+
+2005-01-29  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/pqpath.c (_pq_fetch_tuples): fixed scale-related
+       segfault (*fourth* mail from Andrea. Another couple like this and
+       psycopg 2 will exit alpha at warp speed.)
+       
+       * psycopg/pqpath.c (pq_fetch): _pq_copy_out_3 -> _pq_copy_out_v3
+       (second and third mail from Andrea. :/)
+
+       * psycopg/cursor_type.c (_psyco_curs_has_write_check): added check
+       on .write() attribute, fixed compilation problems (first mail from
+       Andrea Arcangeli.)
+
+2005-01-20  Federico Di Gregorio  <fog@debian.org>
+
+       * lib/extensions.py (register_adapter): added register_adapter
+       function, exported ISQLQuote in psycopg.extensions.
+
+2005-01-18  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/pqpath.c (_pq_fetch_tuples): ported scale/precision fix
+       from psycopg 1.1.
+
+       * LICENSE: detailed licensing information. Re-licensed some parts
+       under BSD-like to allow integration is pysqlite.
+
+2005-01-13  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/db.py (DB.query
+       ): ported ZPsycopgDA connection fix
+       from psycopg 1.1.
+
+       * lib/*.py: added pydoc-friendly messages.
+
+2005-01-12  Federico Di Gregorio  <fog@debian.org>
+
+       * Added debian directory (thanks to W. Borgert who sent initial
+       patch based on cdbs.)
+
+2004-12-20  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/pqpath.c (pq_execute): removed multiple calls to
+       pq_fetch in syncronous DBAPI compatibility mode to solve rowcount
+       problem.
+
+2004-12-14  Federico Di Gregorio  <fog@debian.org>
+
+       * Mm.. release 1.99.11.
+
+       * psycopg/cursor_type.c (_psyco_curs_prefetch): fixed bug in
+       interaction between the .isready() method and
+       _psyco_curs_prefetch: isready now store away the pgres but leave
+       prefetch do its work.
+
+       * psycopg/*.c: changed the names of most of the psycopg's built-in
+       types to replect their position in the psycopg._psycopg module.
+
+2004-12-10  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/cursor_type.c: now *all* write or async accesses to the
+       connection object are arbitrated using the connection lock.
+       
+       * psycopg/cursor_type.c (psyco_curs_isready): now we reset the
+       current async cursor if it is ready, to allow other cursors to
+       .execute() without raising the "transaction in progress" error.
+
+       * psycopg/pqpath.c (pq_is_busy): gained status of high-level
+       function with its own blocking and locking.
+
+       * psycopg/cursor.h (EXC_IF_CURS_CLOSED): also checks the
+       connection (a closed connection implies a closed cursor.)
+
+       * psycopg/cursor_type.c: cursor's connection is correctly
+       INCREFfed and DECREFfed.
+
+       * psycopg/connection_type.c: removed the cursors list from the
+       connection object. It is not necessary anymore for the connection
+       to know about the cursors and the reference counting will keep the
+       connection alive (but possibly closed) until all cursors are
+       garbage collected.
+
+2004-11-20  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/cursor_type.c (_mogrify): ported %% fix from 1.1.15. 
+
+2004-11-20  Federico Di Gregorio  <fog@initd.org>
+
+       * psycopg/cursor_type.c (psyco_curs_execute): added check to raise an
+       exception if a cursor tries to .execute() while an async query is
+       already in execution froma  different cursor. 
+
+2004-11-20  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/connection_type.c (psyco_conn_cursor): renamed 'cursor'
+       argument to 'cursor_factory'.
+
+2004-11-19  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/cursor_type.c (_psyco_curs_buildrow_fill): now standard
+       tuples are filled using PyTuple_SET_ITEM while extended types
+       (created via row_factory) are filled using PySequence_SetItem.
+       
+       * psycopg/cursor_type.c: changed cursor attribute name from
+       tuple_factory to row_factory.
+
+2004-10-14  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/cursor_type.c (_psyco_curs_buildrow_fill): now we use
+       PySequence_SetItem to avoid problems with containers created from
+       cursor's .tuple_factory attribute.
+
+       * lib/extras.py (DictCursor.execute): fixed stupid bug with cursor
+       setting self.tuplefactory instead of self.tuple_factory.
+
+2004-10-02  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.99.10.
+       
+       * psycopg/cursor_type.c (_psyco_curs_buildrow_*): unified normal
+       and factory code into the _psyco_curs_buildrow_fill function; no
+       more memory leaks here. 
+
+       * psycopg/config.h (round): added check for __FreeBSD__ (that
+       should be defined when compiling with gcc, I hope.)
+
+       * setup.py: removed a lot of code now in setup.cfg.
+
+2004-09-24  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/cursor_type.c (cursor_dealloc): fixed small memory leak
+       due to missing disposal of self->pgres.
+
+2004-9-14  Federico Di Gregorio  <fog@initd.org>
+
+       *  examples/dialtone.py: Added adapt() example by Valentino
+       Volonghi.
+
+2004-09-14  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/microprotocols.c (microprotocols_adapt): lots of changes
+       to the microprotocols layer (it is not micro anymore);
+       implementing almost all the PEP 246. The adapter registry is now
+       indexed by (type, protocol) and not by type alone.
+
+2004-09-13  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/cursor_type.c (_mogrify): and qattr is gone.
+
+2004-09-05  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.99.9 (or, the "twisting by the pool" release).
+
+       * psycopg/pqpath.c (_pq_fetch_tuples): changed to "static void"
+       instead of "static int", no ways for this function to fail.
+
+2004-09-04  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/pqpath.c (_pq_fetch_tuples): ported rowcount fix from
+       1.1.15.
+
+       * ZPsycopgDA/*: ZPsycopgDA back in action, using the new pooling
+       code.
+
+2004-08-29  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/typecast_basic.c (typecast_DECIMAL_cast): added DECIMAL
+       typecaster; it even works :).
+
+       * scripts/buildtypes.py (basic_types): added DECIMAL typecaster
+       for the NUMERIC oid.
+
+       * examples/threads.py: updated threads example to use pooling code. 
+
+       * lib/pool.py: added very simple and thread-safe connection
+       pooling class.
+
+       * psycopg/cursor_type.c (psyco_curs_fetchmany): fixed problem with
+       .fetchall() and .fetchmany() returning None instead of [] on empty
+       result sets.
+
+       * Release 1.99.8.
+
+2004-08-28  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/cursor_type.c (psyco_curs_execute): added processing of
+       unicode queries.
+
+       * examples/encoding.py: much better encoding example, also using
+       the new UNICODE typecaster.
+
+       * psycopg/typecast_basic.c (typecast_UNICODE_cast): added UNICODE
+       typecaster.
+
+       * lib/extensions.py: the encodings dictionary is not available by
+       default but can be accessed from the psycopg.extensions module.
+
+       * psycopg/adapter_qstring.h: remove encoding information from
+       qstring adapter and moved it into psycopg module.
+
+2004-08-26  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/cursor_type.c (_psyco_curs_prefetch): added check for
+       asynchronous fetch by wrong cursor.
+
+       * psycopg/pqpath.c (pq_fetch): fixed backend status message (bug
+       reported by Daniele Varrazzo.)
+
+2004-07-29  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/typecast_basic.c (typecast_BINARY_cast): reverted to
+       using strings instead of buffers when converting postgresql binary
+       objects (should *temporarily* fix corruption bug reported on
+       win32.)
+
+2004-07-21  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/cursor_type.c: removed __iter__ and next methods from
+       object methods and moved them where they do belong (tp_iter and
+       tp_iternext.) Bug reported by Daniele Varrazzo (again!)
+
+2004-07-19  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/typecast_datetime.c (typecast_PYINTERVAL_cast): replaced
+       round() with micro() when rounding seconds (fixes bugs reported by
+       Daniele Varrazzo.)
+
+2004-07-16  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/pqpath.c (pq_set_critical): allow for a custom message
+       insted of the one from PQerrorMessage.
+       (pq_resolve_critical): added argument to specify if connection is
+       to be closed (used to not close it during COPY FROM/TO criticals.)
+
+       * psycopg/cursor_type.c (psyco_curs_fileno, psyco_curs_isready):
+       added extension methods related to async queries. 
+
+2004-07-15  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.99.7.
+
+       * examples/tz.py: added example about time zones.
+
+       * psycopg/typecast_datetime.c (typecast_PYDATETIME_cast): create
+       FixedOffsetTimezone for postgresql "timestamp with time zone"
+       types.
+
+       * lib/tz.py: added (even more than) needed tzinfo classes.
+
+       * psycopg/typecast.c (typecast_call): changed typecast call code
+       to take the additional cursor parameter, needed for
+       cursor-dependent type casting (tzinfo & friends.)
+
+       * psycopg/cursor_type.c (_psyco_curs_buildrow_with_factory): added
+       use of tuple factories to fetcXXX methods.
+
+       * lib/extras.py: little extra goodies for psycopg.
+
+2004-07-14  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.99.6. 
+       
+       * psycopg/connection_type.c: added .dsn attribute to connection
+       objects.
+
+       * psycopg/cursor_type.c (psyco_curs_mogrify): added .mogrify()
+       method.
+
+       * psycopg/adapter_qstring.c: copy the connection encoding only if
+       wrapped object is unicode and added table of encodings.
+
+2004-07-13  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/cursor_type.c (_mogrify): moved Dprintf statement to
+       avoid dereferencing empty pointer (from 1.1.x)
+       (psyco_curs_execute): now we save the query in self->query instead
+       of freeing the memory ASAP.
+       (cursorObject_members): and we finally export the saved query
+       through the cursor members interface. that's all folks.
+
+       * lib/extensions.py: added extensions module to clearly separate
+       psycopg own extensions from DBAPI-2.0
+
+2004-07-10  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/typecast_datetime.c: ported interval fix from 1.1.x.
+
+2004-05-16  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/typecast_datetime.c (typecast_*_cast): fixed Value error
+       when seconds > 59 by setting minutes += 1 and seconds -= 60
+       (reported by Marcel Gsteiger.) 
+
+2004-04-24  Federico Di Gregorio  <fog@debian.org>
+
+       * ported time interval patch by Ross Cohen from 1.1.12.
+
+2004-04-19  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/typecast_datetime.c (typecast_PYDATE_cast): applied
+       patch from Jason Erickson: min and max taken from datetime.Date
+       type.
+       
+2004-04-18  Federico Di Gregorio  <fog@debian.org>
+
+       * Applied changes from Jason Erickson to build on win32; see his
+       (slightly edited) entry below. (Still builds on Linux :)
+
+       * psycopg/*.c: removed inclusion of pthread.h from all files
+       except psycopg/config.h to build on win32 without faking the file.
+
+2004-04-15  Jason Erickson <jerickso@stickpeople.com>
+        * setup.py: Various changes. The critical ones: 
+         - Make an empty pthread.h file so all the code doing an 
+           #include <pthread.h> will find something.
+         - Appended the winsock2 library and the PostgreSQL library to 
+           the library path.
+         - Setup the include path.
+         - Have the PSYCOPG_VERSION macro be included with quotes.
+        * config.h: Added/Cleaned up Win32 includes, defines, stub functions.
+        * typecast.h: Removed ';' after PyObject_HEAD in the
+       typecastObject structure since Microsoft Visual Studio does not
+       like it.
+
+2004-04-15  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.99.5 (bug-fixing and reorganization)
+
+       * setup.py et al.: moved psycopg to psycopg._psycopg to make
+       easier to provide high level python-only utilities (like the
+       promised pooling code). psycopg/__init__.py imports _psycopg and
+       make all the default DBAPI-2.0 stuff available. 
+
+2004-04-14  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/psycopgmodule.c (initpsycopg): wrapped initialization of
+       date/time adapters in #ifdefs to have psycopg compile without mx
+       or builtin datetime.
+
+2004-04-10  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.99.4.
+
+2004-04-09  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/typecast_builtins.c: changed DATE to not include
+       DATETIME types anymore.
+
+       * psycopg/adapter_datetime.c (pydatetime_str): switched from
+       strftime to isoformat to preserve fractional seconds.
+
+2004-04-08  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/psycopgmodule.c (psyco_connect): ported sslmode
+       parameter from 1.1 branch.
+
+       * psycopg/adapter_datetime.*: added python built-in datetime
+       adapters. also added the datetime typecasters (still using mx as
+       default).
+
+       * psycopg/typecast.h: removed aliases, they now live in the right
+       typecast_xxx.c file.
+
+2004-03-08  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.99.3 (alpha 4).
+
+       * examples/lastrowid.py: and the .lastrowid example is in. 
+
+       * psycopg/cursor_type.c (_mogrify): added call to .prepare()
+       method in both dict and sequence path.
+
+       * psycopg/connection_int.c (conn_set_client_encoding): added
+       encoding-change code.
+
+       * psycopg/adapter_qstring.c (qstring_quote): added hard-coded
+       support for utf8 and latin1 encodings.
+
+2004-03-01  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/connection_int.c (conn_close): does not use libpq
+       functions on NULL pgconn (this can happen when conn_close is
+       called after a failed PQconnect.)
+
+2004-02-29  Federico Di Gregorio  <fog@debian.org> 
+
+       * Release 1.99.2 (alpha 3).
+       
+       * psycopg/cursor_type.c: added .rownumber and .connection
+       attributes. Also added .scroll(), .next() and .__iter__() methods
+       (see DBAPI2-.0 extensions on PEP.)
+
+       * psycopg/connection_type.c (psyco_conn_set_isolation_level):
+       added connection method .set_isolation_level(). Also added all
+       error objects to the connection (see DBAPI2-.0 extensions on PEP.)
+
+       * psycopg/connection_int.c (conn_switch_isolation_level): added
+       isolation level switching code.
+
+       * setup.py: removed all references to PSYCOPG_NEWSTYLE: support
+       for python < 2.2 has been dropped.
+
+       * typecast_basic.c (typecast_BINARY_cast): now binary objects are
+       returned as true buffers.
+
+       * adapter_binary.*: added adapter for buffers and binary (bytea)
+       objects.
+
+       * Release 1.99.1 (alpha 2).
+
+       * adapter_mxdatetime.*: added adapters for all mx.DateTime types.
+
+2004-02-28  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor_type.c (_mogrify): complete rework of the mogrification
+       code to use the microprotocols_adapt function.
+
+       * typecast_basic.c (typecast_BOOLEAN_cast): we now return real
+       Py_True and Py_False values.
+
+       * microprotocols.h: added very simple microprotocols
+       implementation to allow for python->postgresql types registry.
+
+2004-01-05  Federico Di Gregorio  <fog@debian.org>
+
+       * connection_int.c (conn_commit/conn_rollback): added code to
+       commit/rollback and connection methods. 
+
+2004-01-04  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor_type.c (psyco_curs_fetchone): added fetchone method.
+
+2004-01-03  Federico Di Gregorio  <fog@debian.org>
+
+       * added (empty) INSTALL file.
+
+       * cursor_type.c (cursor_dealloc): added qattr for custom object
+       quoting using a callable attribute.
+       (_mogrify): ported new, fixed mogrification code from 1.1.12.
+
+2003-08-01  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor_type.c (_mogrify_sequence): added sequence mogrification,
+       can be done better, on the dict model.
+
+2003-07-28  Federico Di Gregorio  <fog@debian.org>
+
+       * typeobj_qstring.c: added quoted strings (can use both own code,
+       like psycopg 1.x or PQescapeString from lipq.)
+
+2003-07-21  Federico Di Gregorio  <fog@debian.org>
+
+       * connection_type.c (psyco_conn_close): added .close()
+       method. wow.
+
+       * cursor_*.c: added basic cursor interface (new-style.)
+
+2003-07-20  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg/*: beginning of new source layout. if you think this
+       changelog is somewhat empty, you're right. look at
+       doc/ChangeLog-1.x for psycopg 1.x changelog just before the
+       branch.
+
+
diff --git a/trunk/psycopg2/INSTALL b/trunk/psycopg2/INSTALL
new file mode 100644 (file)
index 0000000..873dbfa
--- /dev/null
@@ -0,0 +1,48 @@
+Compiling and installing psycopg
+********************************
+
+** Important note: if you plan to use psyopg2 in a multithreaed application
+   make sure that your libpq has been compiled with the --with-thread-safety
+   option. psycopg2 will work correctly even with a non-thread-safe libpq but
+   libpq will leak memory.
+
+While psycopg 1.x used autoconf for its build process psycopg 2 switched to
+the more pythoning setup.py. Currently both psycopg's author and distutils
+have some limitations so the file setup.cfg is almost unused and most build
+options are hidden in setup.py. Before building psycopg look at setup.cfg file
+and change any settings to follow your system (or taste); then:
+
+    python setup.py build
+
+to build in the local directory; and:
+
+    python setup.py install
+    
+to install system-wide.
+
+
+Using setuptools and EasyInstall
+================================
+
+If setuptools are installed on your system you can easily create an egg for
+psycopg and install it. Download the source distribution (if you're reading
+this file you probably already have) and then edit setup.cfg to your taste
+and build from the source distribution top-level directory using:
+
+    easy_install .
+
+
+Compiling under Windows with mingw32
+====================================
+
+You can compile psycopg under Windows platform with mingw32
+(http://www.mingw.org/) compiler. MinGW is also shipped with IDEs such as
+Dev-C++ (http://www.bloodshed.net/devcpp.html) and Code::Blocks
+(http://www.codeblocks.org). gcc binaries should be in your PATH.
+
+You need a PostgreSQL with include and libary files installed. At least v8.0 is required.
+
+First you need to create a libpython2X.a as described in 
+http://starship.python.net/crew/kernr/mingw32/Notes.html. Then run:
+
+    python setup.py build_ext --compiler=mingw32 install
diff --git a/trunk/psycopg2/LICENSE b/trunk/psycopg2/LICENSE
new file mode 100644 (file)
index 0000000..b20b282
--- /dev/null
@@ -0,0 +1,60 @@
+psycopg and the GPL
+===================
+
+psycopg 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. See file COPYING for details.
+
+As a special exception, specific permission is granted for the GPLed
+code in this distribition to be linked to OpenSSL and PostgreSQL libpq
+without invoking GPL clause 2(b).
+
+Note that the GPL was chosen to avoid proprietary adapters based on
+psycopg code. Using psycopg in a proprietary product (even bundling
+psycopg with the proprietary product) is fine as long as:
+
+ 1. psycopg is called from Python only using only the provided API
+    (i.e., no linking with C code and no C modules based on it); and
+
+ 2. all the other points of the GPL are respected (you offer a copy
+    of psycopg's source code, and so on.)
+
+Alternative licenses
+====================
+
+If you prefer you can use the Zope Database Adapter ZPsycopgDA (i.e.,
+every file inside the ZPsycopgDA directory) user the ZPL license as
+published on the Zope web site, http://www.zope.org/Resources/ZPL.
+
+Also, the following BSD-like license applies (at your option) to the
+files following the pattern psycopg/adapter*.{h,c} and
+psycopg/microprotocol*.{h,c}:
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+    claim that you wrote the original software. If you use this
+    software in a product, an acknowledgment in the product documentation
+    would be appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not
+    be misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+psycopg 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.
+
+Proprietary licenses
+====================
+
+A non-exclusive license is available for companies that want to include
+psycopg in their proprietary products without respecting the spirit of the
+GPL. The price of the license is one day of development done by the author,
+at the consulting fee he applies to his usual customers at the day of the
+request.
diff --git a/trunk/psycopg2/MANIFEST b/trunk/psycopg2/MANIFEST
new file mode 100644 (file)
index 0000000..c8538ea
--- /dev/null
@@ -0,0 +1,222 @@
+AUTHORS
+ChangeLog
+INSTALL
+LICENSE
+MANIFEST
+MANIFEST.in
+README
+setup.cfg
+setup.py
+ZPsycopgDA/DA.py
+ZPsycopgDA/__init__.py
+ZPsycopgDA/db.py
+ZPsycopgDA/pool.py
+ZPsycopgDA/dtml/add.dtml
+ZPsycopgDA/dtml/browse.dtml
+ZPsycopgDA/dtml/edit.dtml
+ZPsycopgDA/dtml/table_info.dtml
+ZPsycopgDA/icons/bin.gif
+ZPsycopgDA/icons/date.gif
+ZPsycopgDA/icons/datetime.gif
+ZPsycopgDA/icons/field.gif
+ZPsycopgDA/icons/float.gif
+ZPsycopgDA/icons/int.gif
+ZPsycopgDA/icons/stable.gif
+ZPsycopgDA/icons/table.gif
+ZPsycopgDA/icons/text.gif
+ZPsycopgDA/icons/time.gif
+ZPsycopgDA/icons/view.gif
+ZPsycopgDA/icons/what.gif
+debian/changelog
+debian/control
+debian/copyright
+debian/rules
+doc/ChangeLog-1.x
+doc/HACKING
+doc/SUCCESS
+doc/TODO
+doc/api-screen.css
+doc/async.txt
+doc/extensions.html
+doc/extensions.rst
+doc/api/epydoc.css
+doc/api/index.html
+doc/api/private/__builtin__.list-class.html
+doc/api/private/__builtin__.object-class.html
+doc/api/private/__builtin__.type-class.html
+doc/api/private/datetime.tzinfo-class.html
+doc/api/private/epydoc.css
+doc/api/private/exceptions.Exception-class.html
+doc/api/private/exceptions.StandardError-class.html
+doc/api/private/frames.html
+doc/api/private/help.html
+doc/api/private/index.html
+doc/api/private/indices.html
+doc/api/private/psycopg2-module.html
+doc/api/private/psycopg2.DataError-class.html
+doc/api/private/psycopg2.DatabaseError-class.html
+doc/api/private/psycopg2.Error-class.html
+doc/api/private/psycopg2.IntegrityError-class.html
+doc/api/private/psycopg2.InterfaceError-class.html
+doc/api/private/psycopg2.InternalError-class.html
+doc/api/private/psycopg2.NotSupportedError-class.html
+doc/api/private/psycopg2.OperationalError-class.html
+doc/api/private/psycopg2.ProgrammingError-class.html
+doc/api/private/psycopg2.Warning-class.html
+doc/api/private/psycopg2._psycopg-module.html
+doc/api/private/psycopg2._psycopg.ISQLQuote-class.html
+doc/api/private/psycopg2._psycopg.connection-class.html
+doc/api/private/psycopg2._psycopg.cursor-class.html
+doc/api/private/psycopg2.extensions-module.html
+doc/api/private/psycopg2.extras-module.html
+doc/api/private/psycopg2.extras.DictConnection-class.html
+doc/api/private/psycopg2.extras.DictCursor-class.html
+doc/api/private/psycopg2.extras.DictRow-class.html
+doc/api/private/psycopg2.extras.SQL_IN-class.html
+doc/api/private/psycopg2.pool-module.html
+doc/api/private/psycopg2.pool.AbstractConnectionPool-class.html
+doc/api/private/psycopg2.pool.PersistentConnectionPool-class.html
+doc/api/private/psycopg2.pool.PoolError-class.html
+doc/api/private/psycopg2.pool.SimpleConnectionPool-class.html
+doc/api/private/psycopg2.pool.ThreadedConnectionPool-class.html
+doc/api/private/psycopg2.psycopg1-module.html
+doc/api/private/psycopg2.psycopg1.connection-class.html
+doc/api/private/psycopg2.psycopg1.cursor-class.html
+doc/api/private/psycopg2.tz-module.html
+doc/api/private/psycopg2.tz.FixedOffsetTimezone-class.html
+doc/api/private/psycopg2.tz.LocalTimezone-class.html
+doc/api/private/toc-everything.html
+doc/api/private/toc-psycopg2-module.html
+doc/api/private/toc-psycopg2._psycopg-module.html
+doc/api/private/toc-psycopg2.extensions-module.html
+doc/api/private/toc-psycopg2.extras-module.html
+doc/api/private/toc-psycopg2.pool-module.html
+doc/api/private/toc-psycopg2.psycopg1-module.html
+doc/api/private/toc-psycopg2.tz-module.html
+doc/api/private/toc.html
+doc/api/private/trees.html
+doc/api/public/__builtin__.list-class.html
+doc/api/public/__builtin__.object-class.html
+doc/api/public/__builtin__.type-class.html
+doc/api/public/datetime.tzinfo-class.html
+doc/api/public/epydoc.css
+doc/api/public/exceptions.Exception-class.html
+doc/api/public/exceptions.StandardError-class.html
+doc/api/public/frames.html
+doc/api/public/help.html
+doc/api/public/index.html
+doc/api/public/indices.html
+doc/api/public/psycopg2-module.html
+doc/api/public/psycopg2.DataError-class.html
+doc/api/public/psycopg2.DatabaseError-class.html
+doc/api/public/psycopg2.Error-class.html
+doc/api/public/psycopg2.IntegrityError-class.html
+doc/api/public/psycopg2.InterfaceError-class.html
+doc/api/public/psycopg2.InternalError-class.html
+doc/api/public/psycopg2.NotSupportedError-class.html
+doc/api/public/psycopg2.OperationalError-class.html
+doc/api/public/psycopg2.ProgrammingError-class.html
+doc/api/public/psycopg2.Warning-class.html
+doc/api/public/psycopg2._psycopg-module.html
+doc/api/public/psycopg2.extensions-module.html
+doc/api/public/psycopg2.extras-module.html
+doc/api/public/psycopg2.extras.DictConnection-class.html
+doc/api/public/psycopg2.extras.DictCursor-class.html
+doc/api/public/psycopg2.extras.DictRow-class.html
+doc/api/public/psycopg2.extras.SQL_IN-class.html
+doc/api/public/psycopg2.pool-module.html
+doc/api/public/psycopg2.pool.AbstractConnectionPool-class.html
+doc/api/public/psycopg2.pool.PersistentConnectionPool-class.html
+doc/api/public/psycopg2.pool.PoolError-class.html
+doc/api/public/psycopg2.pool.SimpleConnectionPool-class.html
+doc/api/public/psycopg2.pool.ThreadedConnectionPool-class.html
+doc/api/public/psycopg2.psycopg1-module.html
+doc/api/public/psycopg2.psycopg1.connection-class.html
+doc/api/public/psycopg2.psycopg1.cursor-class.html
+doc/api/public/psycopg2.tz-module.html
+doc/api/public/psycopg2.tz.FixedOffsetTimezone-class.html
+doc/api/public/psycopg2.tz.LocalTimezone-class.html
+doc/api/public/toc-everything.html
+doc/api/public/toc-psycopg2-module.html
+doc/api/public/toc-psycopg2._psycopg-module.html
+doc/api/public/toc-psycopg2.extensions-module.html
+doc/api/public/toc-psycopg2.extras-module.html
+doc/api/public/toc-psycopg2.pool-module.html
+doc/api/public/toc-psycopg2.psycopg1-module.html
+doc/api/public/toc-psycopg2.tz-module.html
+doc/api/public/toc.html
+doc/api/public/trees.html
+examples/binary.py
+examples/copy_from.py
+examples/copy_to.py
+examples/cursor.py
+examples/dialtone.py
+examples/dict.py
+examples/dt.py
+examples/encoding.py
+examples/fetch.py
+examples/lastrowid.py
+examples/mogrify.py
+examples/myfirstrecipe.py
+examples/notify.py
+examples/simple.py
+examples/somehackers.jpg
+examples/threads.py
+examples/tz.py
+examples/usercast.py
+examples/whereareyou.jpg
+lib/__init__.py
+lib/extensions.py
+lib/extras.py
+lib/pool.py
+lib/psycopg1.py
+lib/tz.py
+psycopg/adapter_asis.c
+psycopg/adapter_asis.h
+psycopg/adapter_binary.c
+psycopg/adapter_binary.h
+psycopg/adapter_datetime.c
+psycopg/adapter_datetime.h
+psycopg/adapter_list.c
+psycopg/adapter_list.h
+psycopg/adapter_mxdatetime.c
+psycopg/adapter_mxdatetime.h
+psycopg/adapter_pboolean.c
+psycopg/adapter_pboolean.h
+psycopg/adapter_qstring.c
+psycopg/adapter_qstring.h
+psycopg/config.h
+psycopg/connection.h
+psycopg/connection_int.c
+psycopg/connection_type.c
+psycopg/cursor.h
+psycopg/cursor_int.c
+psycopg/cursor_type.c
+psycopg/microprotocols.c
+psycopg/microprotocols.h
+psycopg/microprotocols_proto.c
+psycopg/microprotocols_proto.h
+psycopg/pgtypes.h
+psycopg/pgversion.h
+psycopg/pqpath.c
+psycopg/pqpath.h
+psycopg/psycopg.h
+psycopg/psycopgmodule.c
+psycopg/python.h
+psycopg/typecast.c
+psycopg/typecast.h
+psycopg/typecast_array.c
+psycopg/typecast_basic.c
+psycopg/typecast_binary.c
+psycopg/typecast_binary.h
+psycopg/typecast_builtins.c
+psycopg/typecast_datetime.c
+psycopg/typecast_mxdatetime.c
+scripts/buildtypes.py
+scripts/ext2html.py
+scripts/makedocs.py
+scripts/maketypes.sh
+tests/dbapi20.py
+tests/extras_dictcursor.py
+tests/test_psycopg2_dbapi20.py
+tests/types_basic.py
diff --git a/trunk/psycopg2/MANIFEST.in b/trunk/psycopg2/MANIFEST.in
new file mode 100644 (file)
index 0000000..457004c
--- /dev/null
@@ -0,0 +1,12 @@
+recursive-include psycopg *.c *.h
+recursive-include lib *.py
+recursive-include tests *.py
+recursive-include ZPsycopgDA *.py *.gif *.dtml
+recursive-include examples *.py somehackers.jpg whereareyou.jpg
+recursive-include debian *
+recursive-include doc TODO HACKING SUCCESS ChangeLog-1.x async.txt
+recursive-include scripts *.py *.sh
+include scripts/maketypes.sh scripts/buildtypes.py
+include AUTHORS README INSTALL LICENSE ChangeLog 
+include PKG-INFO MANIFEST.in MANIFEST setup.py setup.cfg
+recursive-include doc *.rst *.css *.html
diff --git a/trunk/psycopg2/PKG-INFO b/trunk/psycopg2/PKG-INFO
new file mode 100644 (file)
index 0000000..2fab953
--- /dev/null
@@ -0,0 +1,35 @@
+Metadata-Version: 1.0
+Name: psycopg2
+Version: 2.0.5.1
+Summary: Python-PostgreSQL Database Adapter
+Home-page: http://initd.org/tracker/psycopg
+Author: Federico Di Gregorio
+Author-email: fog@initd.org
+License: GPL with exceptions or ZPL
+Download-URL: http://initd.org/pub/software/psycopg2
+Description: psycopg is a PostgreSQL database adapter for the Python programming
+        language. This is version 2, a complete rewrite of the original code to
+        provide new-style classes for connection and cursor objects and other sweet
+        candies. Like the original, psycopg 2 was written with the aim of being
+        very small and fast, and stable as a rock.
+        
+        psycopg is different from the other database adapter because it was
+        designed for heavily multi-threaded applications that create and destroy
+        lots of cursors and make a conspicuous number of concurrent INSERTs or
+        UPDATEs. psycopg 2 also provide full asycronous operations for the really
+        brave programmer.
+        
+Platform: any
+Classifier: Development Status :: 4 - Beta
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: GNU General Public License (GPL)
+Classifier: License :: OSI Approved :: Zope Public License
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: C
+Classifier: Programming Language :: SQL
+Classifier: Topic :: Database
+Classifier: Topic :: Database :: Front-Ends
+Classifier: Topic :: Software Development
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Classifier: Operating System :: Microsoft :: Windows
+Classifier: Operating System :: Unix
diff --git a/trunk/psycopg2/README b/trunk/psycopg2/README
new file mode 100644 (file)
index 0000000..4e4a0e9
--- /dev/null
@@ -0,0 +1,39 @@
+psycopg - Python-PostgreSQL Database Adapter
+********************************************
+
+psycopg is a PostgreSQL database adapter for the Python programming
+language. This is version 2, a complete rewrite of the original code to
+provide new-style classes for connection and cursor objects and other
+sweet candies. Like the original, psycopg 2 was written with the aim of
+being very small and fast, and stable as a rock.
+
+psycopg is different from the other database adapter because it was
+designed for heavily multi-threaded applications that create and destroy
+lots of cursors and make a conspicuous number of concurrent INSERTs or
+UPDATEs. psycopg 2 also provide full asycronous operations for the really
+brave programmer.
+
+There are confirmed reports of psycopg 1.x compiling and running on Linux
+and FreeBSD on i386, Solaris, MacOS X and win32 architectures. psycopg 2
+does not introduce build-wise incompatible changes so it should be able to
+compile on all architectures just as its predecessor did.
+
+Now go read the INSTALL file. More information about psycopg extensions to
+the DBAPI-2.0 is available in the files located in the doc/ direcory.
+
+psycopg is free software ("free as in freedom" but I like beer too.)
+Licensing information is available in the LICENSE file.
+
+
+Contributors
+------------
+
+A short list of contributors to psycopg2 follows (if you feel you belong
+to this list and you can't find yourself here just drop me a mail):
+
+ * Kudos to piro for all the documentation work.
+
+ * Peter Fein contributed a logging connection/cursor class that even if it
+   was not used directly heavily influenced the implementation currently in
+   psycopg2.extras.
+   
diff --git a/trunk/psycopg2/ZPsycopgDA/DA.py b/trunk/psycopg2/ZPsycopgDA/DA.py
new file mode 100644 (file)
index 0000000..2a0f4dd
--- /dev/null
@@ -0,0 +1,375 @@
+# ZPsycopgDA/DA.py - ZPsycopgDA Zope product: Database Connection
+#
+# Copyright (C) 2004 Federico Di Gregorio <fog@initd.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, or (at your option) any later
+# version.
+#
+# Or, at your option this program (ZPsycopgDA) can be distributed under the
+# Zope Public License (ZPL) Version 1.0, as published on the Zope web site,
+# http://www.zope.org/Resources/ZPL.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# See the LICENSE file for details.
+
+
+ALLOWED_PSYCOPG_VERSIONS = ('2.0.1', '2.0.2', '2.0.3', '2.0.4', '2.0.5')
+
+import sys
+import time
+import db
+import re
+
+import Acquisition
+import Shared.DC.ZRDB.Connection
+
+from db import DB
+from Globals import HTMLFile
+from ExtensionClass import Base
+from App.Dialogs import MessageDialog
+from DateTime import DateTime
+
+# Build Zope version in a float for later cheks
+import App
+zope_version = App.version_txt.getZopeVersion()
+zope_version = float("%s.%s" %(zope_version[:2]))
+
+# ImageFile is deprecated in Zope >= 2.9
+if zope_version < 2.9:
+     from ImageFile import ImageFile
+else:
+     from App.ImageFile import ImageFile 
+
+# import psycopg and functions/singletons needed for date/time conversions
+
+import psycopg2
+from psycopg2 import NUMBER, STRING, ROWID, DATETIME
+from psycopg2.extensions import INTEGER, LONGINTEGER, FLOAT, BOOLEAN, DATE
+from psycopg2.extensions import TIME, INTERVAL
+from psycopg2.extensions import new_type, register_type
+
+
+# add a new connection to a folder
+
+manage_addZPsycopgConnectionForm = HTMLFile('dtml/add',globals())
+
+def manage_addZPsycopgConnection(self, id, title, connection_string,
+                                 zdatetime=None, tilevel=2,
+                                 check=None, REQUEST=None):
+    """Add a DB connection to a folder."""
+    self._setObject(id, Connection(id, title, connection_string,
+                                   zdatetime, check, tilevel))
+    if REQUEST is not None: return self.manage_main(self, REQUEST)
+
+
+# the connection object
+
+class Connection(Shared.DC.ZRDB.Connection.Connection):
+    """ZPsycopg Connection."""
+    _isAnSQLConnection = 1
+    
+    id                = 'Psycopg2_database_connection' 
+    database_type     = 'Psycopg2'
+    meta_type = title = 'Z Psycopg 2 Database Connection'
+    icon              = 'misc_/conn'
+
+    def __init__(self, id, title, connection_string,
+                 zdatetime, check=None, tilevel=2, encoding=''):
+        self.zdatetime = zdatetime
+        self.id = str(id)
+        self.edit(title, connection_string, zdatetime,
+                  check=check, tilevel=tilevel, encoding=encoding)
+        
+    def factory(self):
+        return DB
+
+    ## connection parameters editing ##
+    
+    def edit(self, title, connection_string,
+             zdatetime, check=None, tilevel=2, encoding=''):
+        self.title = title
+        self.connection_string = connection_string
+        self.zdatetime = zdatetime
+        self.tilevel = tilevel
+        self.encoding = encoding
+
+        self.set_type_casts()
+        
+        if check: self.connect(self.connection_string)
+
+    manage_properties = HTMLFile('dtml/edit', globals())
+
+    def manage_edit(self, title, connection_string,
+                    zdatetime=None, check=None, tilevel=2, encoding='UTF-8',
+                    REQUEST=None):
+        """Edit the DB connection."""
+        self.edit(title, connection_string, zdatetime,
+                  check=check, tilevel=tilevel, encoding=encoding)
+        if REQUEST is not None:
+            msg = "Connection edited."
+            return self.manage_main(self,REQUEST,manage_tabs_message=msg)
+
+    def connect(self, s):
+        try:
+            self._v_database_connection.close()
+        except:
+            pass
+
+        # check psycopg version and raise exception if does not match
+        if psycopg2.__version__[:5] not in ALLOWED_PSYCOPG_VERSIONS:
+            raise ImportError("psycopg version mismatch (imported %s)" %
+                              psycopg2.__version__)
+
+        self.set_type_casts()
+        self._v_connected = ''
+        dbf = self.factory()
+        
+        # TODO: let the psycopg exception propagate, or not?
+        self._v_database_connection = dbf(
+            self.connection_string, self.tilevel, self.encoding)
+        self._v_database_connection.open()
+        self._v_connected = DateTime()
+
+        return self
+
+    def set_type_casts(self):
+        # note that in both cases order *is* important
+        if self.zdatetime:
+            # use zope internal datetime routines
+            register_type(ZDATETIME)
+            register_type(ZDATE)
+            register_type(ZTIME)
+        else:
+            # use the standard
+            register_type(DATETIME)
+            register_type(DATE)
+            register_type(TIME)
+
+    ## browsing and table/column management ##
+
+    manage_options = Shared.DC.ZRDB.Connection.Connection.manage_options
+    # + (
+    #    {'label': 'Browse', 'action':'manage_browse'},)
+
+    #manage_tables = HTMLFile('dtml/tables', globals())
+    #manage_browse = HTMLFile('dtml/browse', globals())
+
+    info = None
+    
+    def table_info(self):
+        return self._v_database_connection.table_info()
+
+
+    def __getitem__(self, name):
+        if name == 'tableNamed':
+            if not hasattr(self, '_v_tables'): self.tpValues()
+            return self._v_tables.__of__(self)
+        raise KeyError, name
+
+    def tpValues(self):
+        res = []
+        conn = self._v_database_connection
+        for d in conn.tables(rdb=0):
+            try:
+                name = d['TABLE_NAME']
+                b = TableBrowser()
+                b.__name__ = name
+                b._d = d
+                b._c = c
+                try:
+                    b.icon = table_icons[d['TABLE_TYPE']]
+                except:
+                    pass
+                r.append(b)
+            except:
+                pass
+        return res
+
+
+## database connection registration data ##
+
+classes = (Connection,)
+
+meta_types = ({'name':'Z Psycopg 2 Database Connection',
+               'action':'manage_addZPsycopgConnectionForm'},)
+
+folder_methods = {
+    'manage_addZPsycopgConnection': manage_addZPsycopgConnection,
+    'manage_addZPsycopgConnectionForm': manage_addZPsycopgConnectionForm}
+
+__ac_permissions__ = (
+    ('Add Z Psycopg Database Connections',
+     ('manage_addZPsycopgConnectionForm', 'manage_addZPsycopgConnection')),)
+
+# add icons
+
+misc_={'conn': ImageFile('Shared/DC/ZRDB/www/DBAdapterFolder_icon.gif')}
+
+for icon in ('table', 'view', 'stable', 'what', 'field', 'text', 'bin',
+             'int', 'float', 'date', 'time', 'datetime'):
+    misc_[icon] = ImageFile('icons/%s.gif' % icon, globals())
+
+
+## zope-specific psycopg typecasters ##
+
+# convert an ISO timestamp string from postgres to a Zope DateTime object
+def _cast_DateTime(iso, curs):
+    if iso:
+        return DateTime(re.split("GMT\+?|GMT-?", iso)[0])
+       
+    # this will split us into [date, time, GMT/AM/PM(if there)]
+    #    dt = str.split(' ')
+    #    if len(dt) > 1:
+    #        # we now should split out any timezone info
+    #        dt[1] = dt[1].split('-')[0]
+    #        dt[1] = dt[1].split('+')[0]
+    #        return DateTime(' '.join(dt[:2]))
+    #    else:
+    #        return DateTime(dt[0])
+
+# convert an ISO date string from postgres to a Zope DateTime object
+def _cast_Date(iso, curs):
+    if iso:
+        return DateTime(iso)
+
+# Convert a time string from postgres to a Zope DateTime object.
+# NOTE: we set the day as today before feeding to DateTime so
+# that it has the same DST settings.
+def _cast_Time(iso, curs):
+    if iso:
+        return DateTime(time.strftime('%Y-%m-%d %H:%M:%S',
+                                      time.localtime(time.time())[:3]+
+                                      time.strptime(iso[:8], "%H:%M:%S")[3:]))
+
+# NOTE: we don't cast intervals anymore because they are passed
+# untouched to Zope.
+def _cast_Interval(iso, curs):
+    return iso
+
+ZDATETIME = new_type((1184, 1114), "ZDATETIME", _cast_DateTime)
+ZINTERVAL = new_type((1186,), "ZINTERVAL", _cast_Interval)
+ZDATE = new_type((1082,), "ZDATE", _cast_Date)
+ZTIME = new_type((1083,), "ZTIME", _cast_Time)
+
+
+## table browsing helpers ##
+
+class TableBrowserCollection(Acquisition.Implicit):
+    pass
+
+class Browser(Base):
+    def __getattr__(self, name):
+        try:
+            return self._d[name]
+        except KeyError:
+            raise AttributeError, name
+
+class values:
+    def len(self):
+        return 1
+
+    def __getitem__(self, i):
+        try:
+            return self._d[i]
+        except AttributeError:
+            pass
+        self._d = self._f()
+        return self._d[i]
+
+class TableBrowser(Browser, Acquisition.Implicit):
+    icon = 'what'
+    Description = check = ''
+    info = HTMLFile('table_info', globals())
+    menu = HTMLFile('table_menu', globals())
+
+    def tpValues(self):
+        v = values()
+        v._f = self.tpValues_
+        return v
+
+    def tpValues_(self):
+        r=[]
+        tname=self.__name__
+        for d in self._c.columns(tname):
+            b=ColumnBrowser()
+            b._d=d
+            try: b.icon=field_icons[d['Type']]
+            except: pass
+            b.TABLE_NAME=tname
+            r.append(b)
+        return r
+            
+    def tpId(self): return self._d['TABLE_NAME']
+    def tpURL(self): return "Table/%s" % self._d['TABLE_NAME']
+    def Name(self): return self._d['TABLE_NAME']
+    def Type(self): return self._d['TABLE_TYPE']
+
+    manage_designInput=HTMLFile('designInput',globals())
+    def manage_buildInput(self, id, source, default, REQUEST=None):
+        "Create a database method for an input form"
+        args=[]
+        values=[]
+        names=[]
+        columns=self._columns
+        for i in range(len(source)):
+            s=source[i]
+            if s=='Null': continue
+            c=columns[i]
+            d=default[i]
+            t=c['Type']
+            n=c['Name']
+            names.append(n)
+            if s=='Argument':
+                values.append("<dtml-sqlvar %s type=%s>'" %
+                              (n, vartype(t)))
+                a='%s%s' % (n, boboType(t))
+                if d: a="%s=%s" % (a,d)
+                args.append(a)
+            elif s=='Property':
+                values.append("<dtml-sqlvar %s type=%s>'" %
+                              (n, vartype(t)))
+            else:
+                if isStringType(t):
+                    if find(d,"\'") >= 0: d=join(split(d,"\'"),"''")
+                    values.append("'%s'" % d)
+                elif d:
+                    values.append(str(d))
+                else:
+                    raise ValueError, (
+                        'no default was given for <em>%s</em>' % n)
+
+class ColumnBrowser(Browser):
+    icon='field'
+
+    def check(self):
+        return ('\t<input type=checkbox name="%s.%s">' %
+                (self.TABLE_NAME, self._d['Name']))
+    def tpId(self): return self._d['Name']
+    def tpURL(self): return "Column/%s" % self._d['Name']
+    def Description(self):
+        d=self._d
+        if d['Scale']:
+            return " %(Type)s(%(Precision)s,%(Scale)s) %(Nullable)s" % d
+        else:
+            return " %(Type)s(%(Precision)s) %(Nullable)s" % d
+
+table_icons={
+    'TABLE': 'table',
+    'VIEW':'view',
+    'SYSTEM_TABLE': 'stable',
+    }
+
+field_icons={
+    NUMBER.name: 'i',
+    STRING.name: 'text',
+    DATETIME.name: 'date',
+    INTEGER.name: 'int',
+    FLOAT.name: 'float',
+    BOOLEAN.name: 'bin',
+    ROWID.name: 'int'
+    }
diff --git a/trunk/psycopg2/ZPsycopgDA/__init__.py b/trunk/psycopg2/ZPsycopgDA/__init__.py
new file mode 100644 (file)
index 0000000..0af0ceb
--- /dev/null
@@ -0,0 +1,31 @@
+# ZPsycopgDA/__init__.py - ZPsycopgDA Zope product
+#
+# Copyright (C) 2004 Federico Di Gregorio <fog@initd.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, or (at your option) any later
+# version.
+#
+# Or, at your option this program (ZPsycopgDA) can be distributed under the
+# Zope Public License (ZPL) Version 1.0, as published on the Zope web site,
+# http://www.zope.org/Resources/ZPL.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# See the LICENSE file for details.
+
+__doc__ = "ZPsycopg Database Adapter Registration." 
+__version__ = '2.0'
+
+import DA
+
+def initialize(context):
+    context.registerClass(
+        DA.Connection,
+        permission = 'Add Z Psycopg 2 Database Connections',
+        constructors = (DA.manage_addZPsycopgConnectionForm,
+                        DA.manage_addZPsycopgConnection),
+        icon = SOFTWARE_HOME + '/Shared/DC/ZRDB/www/DBAdapterFolder_icon.gif')
diff --git a/trunk/psycopg2/ZPsycopgDA/db.py b/trunk/psycopg2/ZPsycopgDA/db.py
new file mode 100644 (file)
index 0000000..9a0b4b0
--- /dev/null
@@ -0,0 +1,206 @@
+# ZPsycopgDA/db.py - query execution
+#
+# Copyright (C) 2004 Federico Di Gregorio <fog@initd.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, or (at your option) any later
+# version.
+#
+# Or, at your option this program (ZPsycopgDA) can be distributed under the
+# Zope Public License (ZPL) Version 1.0, as published on the Zope web site,
+# http://www.zope.org/Resources/ZPL.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# See the LICENSE file for details.
+
+from Shared.DC.ZRDB.TM import TM
+from Shared.DC.ZRDB import dbi_db
+
+from ZODB.POSException import ConflictError
+
+import site
+import pool
+
+import psycopg2
+from psycopg2.extensions import INTEGER, LONGINTEGER, FLOAT, BOOLEAN, DATE, TIME
+from psycopg2 import NUMBER, STRING, ROWID, DATETIME 
+
+
+# the DB object, managing all the real query work
+
+class DB(TM, dbi_db.DB):
+    
+    _p_oid = _p_changed = _registered = None
+
+    def __init__(self, dsn, tilevel, enc='utf-8'):
+        self.dsn = dsn
+        self.tilevel = tilevel
+        self.encoding = enc
+        self.failures = 0
+        self.calls = 0
+        self.make_mappings()
+
+    def getconn(self, create=True):
+        conn = pool.getconn(self.dsn)
+        conn.set_isolation_level(int(self.tilevel))
+        return conn
+
+    def putconn(self, close=False):
+        try:
+            conn = pool.getconn(self.dsn, False)
+        except AttributeError:
+            pass
+        pool.putconn(self.dsn, conn, close)
+        
+    def getcursor(self):
+        conn = self.getconn()
+        return conn.cursor()
+
+    def _finish(self, *ignored):
+        try:
+            conn = self.getconn(False)
+            conn.commit()
+            self.putconn()
+        except AttributeError:
+            pass
+            
+    def _abort(self, *ignored):
+        try:
+            conn = self.getconn(False)
+            conn.rollback()
+            self.putconn()
+        except AttributeError:
+            pass
+
+    def open(self):
+        # this will create a new pool for our DSN if not already existing,
+        # then get and immediately release a connection
+        self.getconn()
+        self.putconn()
+        
+    def close(self):
+        # FIXME: if this connection is closed we flush all the pool associated
+        # with the current DSN; does this makes sense?
+        pool.flushpool(self.dsn)
+
+    def sortKey(self):
+        return 1
+
+    def make_mappings(self):
+        """Generate the mappings used later by self.convert_description()."""
+        self.type_mappings = {}
+       for t, s in [(INTEGER,'i'), (LONGINTEGER, 'i'), (NUMBER, 'n'),  
+                    (BOOLEAN,'n'), (ROWID, 'i'),
+                    (DATETIME, 'd'), (DATE, 'd'), (TIME, 'd')]:
+            for v in t.values:
+               self.type_mappings[v] = (t, s)
+
+    def convert_description(self, desc, use_psycopg_types=False):
+        """Convert DBAPI-2.0 description field to Zope format."""
+        items = []
+        for name, typ, width, ds, p, scale, null_ok in desc:
+           m = self.type_mappings.get(typ, (STRING, 's'))
+            items.append({
+                'name': name,
+                'type': use_psycopg_types and m[0] or m[1],
+                'width': width,
+                'precision': p,
+                'scale': scale,
+                'null': null_ok,
+                })
+        return items
+
+    ## tables and rows ##
+
+    def tables(self, rdb=0, _care=('TABLE', 'VIEW')):
+        self._register()
+        c = self.getcursor()
+        c.execute(
+            "SELECT t.tablename AS NAME, 'TABLE' AS TYPE "
+            "  FROM pg_tables t WHERE tableowner <> 'postgres' "
+            "UNION SELECT v.viewname AS NAME, 'VIEW' AS TYPE "
+            "  FROM pg_views v WHERE viewowner <> 'postgres' "
+            "UNION SELECT t.tablename AS NAME, 'SYSTEM_TABLE\' AS TYPE "
+            "  FROM pg_tables t WHERE tableowner = 'postgres' "
+            "UNION SELECT v.viewname AS NAME, 'SYSTEM_TABLE' AS TYPE "
+            "FROM pg_views v WHERE viewowner = 'postgres'")
+        res = []
+        for name, typ in c.fetchall():
+            if typ in _care:
+                res.append({'TABLE_NAME': name, 'TABLE_TYPE': typ})
+        self.putconn()
+        return res
+
+    def columns(self, table_name):
+        self._register()
+        c = self.getcursor()
+        try:
+            r = c.execute('SELECT * FROM "%s" WHERE 1=0' % table_name)
+        except:
+            return ()
+        self.putconn()
+        return self.convert_description(c.description, True)
+    
+    ## query execution ##
+
+    def query(self, query_string, max_rows=None, query_data=None):
+        self._register()
+        self.calls = self.calls+1
+
+        desc = ()
+        res = []
+        nselects = 0
+
+        c = self.getcursor()
+
+        try:
+            for qs in [x for x in query_string.split('\0') if x]:
+                if type(qs) == unicode:
+                    if self.encoding:
+                        qs = qs.encode(self.encoding)
+                try:
+                    if query_data:
+                        c.execute(qs, query_data)
+                    else:
+                        c.execute(qs)
+                except psycopg2.OperationalError, e:
+                    try:
+                        self.close()
+                    except:
+                        pass
+                    self.open()
+                    try:
+                        if   query_data:
+                            c.execute(qs, query_data)
+                        else:
+                            c.execute(qs)
+                    except (psycopg2.ProgrammingError,
+                            psycopg2.IntegrityError), e:
+                        if e.args[0].find("concurrent update") > -1:
+                            raise ConflictError
+                        raise e
+                except (psycopg2.ProgrammingError, psycopg2.IntegrityError), e:
+                    if e.args[0].find("concurrent update") > -1:
+                        raise ConflictError
+                    raise e
+                if c.description is not None:
+                    nselects += 1
+                    if c.description != desc and nselects > 1:
+                        raise psycopg2.ProgrammingError(
+                            'multiple selects in single query not allowed')
+                    if max_rows:
+                        res = c.fetchmany(max_rows)
+                    else:
+                        res = c.fetchall()
+                    desc = c.description
+            self.failures = 0
+
+        except StandardError, err:
+            self._abort()
+            raise err
+        
+        return self.convert_description(desc), res
diff --git a/trunk/psycopg2/ZPsycopgDA/dtml/add.dtml b/trunk/psycopg2/ZPsycopgDA/dtml/add.dtml
new file mode 100644 (file)
index 0000000..c718ded
--- /dev/null
@@ -0,0 +1,96 @@
+<dtml-var manage_page_header>
+
+<dtml-var "manage_form_title(this(), _,
+           form_title='Add Z Psycopg 2 Database Connection',
+           help_product='ZPsycopgDA',
+           help_topic='ZPsycopgDA-Method-Add.stx'
+           )">
+
+<p class="form-help">
+A Zope Psycopg 2 Database Connection is used to connect and execute
+queries on a PostgreSQL database.
+</p>
+
+<p class="form-help"> 
+In the form below <em>Connection String</em> (also called the Data Source Name
+or DSN for short) is a string... (TODO: finish docs)
+</p>
+
+<form action="manage_addZPsycopgConnection" method="POST">
+<table cellspacing="0" cellpadding="2" border="0">
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+    Id
+    </div>
+    </td>
+    <td align="left" valign="top">
+    <input type="text" name="id" size="40"
+           value="Psycopg2_database_connection" />
+    </td>
+  </tr>
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-optional">
+    Title
+    </div>
+    </td>
+    <td align="left" valign="top">
+    <input type="text" name="title" size="40"
+        value="Z Psycopg 2 Database Connection"/>
+    </td>
+  </tr>
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+    Connection string
+    </div>
+    </td>
+    <td align="left" valign="top">
+    <input type="text" name="connection_string" size="40" value="" />
+    </td>
+  </tr>
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+    Connect immediately
+    </div>
+    </td>
+    <td align="left" valign="top">
+    <input type="checkbox" name="check" value="YES" checked="YES" />
+    </td>
+  </tr>
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+    Use Zope's internal DateTime
+    </div>
+    </td>
+    <td align="left" valign="top">
+    <input type="checkbox" name="zdatetime" value="YES" checked="YES" />
+    </td>
+  </tr>
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+    Transaction isolation level
+    </div>
+    </td>
+    <td align="left" valign="top">
+      <select name="tilevel:int">
+        <option value="1">Read committed</option>
+        <option value="2" selected="YES">Serializable</option>
+      </select>
+    </td>
+  </tr>
+  <tr>
+    <td align="left" valign="top" colspan="2">
+    <div class="form-element">
+    <input class="form-element" type="submit" name="submit" value=" Add " />
+    </div>
+    </td>
+  </tr>
+</table>
+</form>
+
+<dtml-var manage_page_footer>
diff --git a/trunk/psycopg2/ZPsycopgDA/dtml/browse.dtml b/trunk/psycopg2/ZPsycopgDA/dtml/browse.dtml
new file mode 100644 (file)
index 0000000..deffd0a
--- /dev/null
@@ -0,0 +1,11 @@
+<html>
+  <head><title><dtml-var title_or_id >tables</title></head>
+  <body bgcolor="#FFFFFF" link="#000099" vlink="#555555" alink="#77003B">
+    <dtml-var manage_tabs>
+    <dtml-tree header="info">
+      <IMG SRC="<dtml-var SCRIPT_NAME >/misc_/ZPsycopgDA/<dtml-var icon>"
+       ALT="<dtml-var Type>" BORDER="0">
+      <dtml-var Name><dtml-var Description>
+    </dtml-tree>
+  </body>
+</html>
diff --git a/trunk/psycopg2/ZPsycopgDA/dtml/edit.dtml b/trunk/psycopg2/ZPsycopgDA/dtml/edit.dtml
new file mode 100644 (file)
index 0000000..7cb371f
--- /dev/null
@@ -0,0 +1,67 @@
+<dtml-var manage_page_header>
+<dtml-var manage_tabs>
+
+<form action="manage_edit" method="POST">
+<table cellspacing="0" cellpadding="2" border="0">
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-optional">
+    Title
+    </div>
+    </td>
+    <td align="left" valign="top">
+    <input type="text" name="title" size="40"
+        value="&dtml-title;"/>
+    </td>
+  </tr>
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+    Connection string
+    </div>
+    </td>
+    <td align="left" valign="top">
+    <input type="text" name="connection_string" size="40"
+           value="&dtml-connection_string;" />
+    </td>
+  </tr>
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+    Use Zope's internal DateTime
+    </div>
+    </td>
+    <td align="left" valign="top">
+    <input type="checkbox" name="zdatetime" value="YES"
+      <dtml-if expr="zdatetime">checked="YES"</dtml-if> />
+    </td>
+  </tr>
+  <tr>
+    <td align="left" valign="top">
+    <div class="form-label">
+    Transaction isolation level
+    </div>
+    </td>
+    <td align="left" valign="top">
+      <select name="tilevel:int">
+        <option value="1"
+                <dtml-if expr="tilevel==1">selected="YES"</dtml-if>>
+        Read committed</option>
+        <option value="2"
+                <dtml-if expr="tilevel==2">selected="YES"</dtml-if>>
+        Serializable</option>
+      </select>
+    </td>
+  </tr>
+  <tr>
+    <td align="left" valign="top" colspan="2">
+    <div class="form-element">
+    <input class="form-element" type="submit" name="submit"
+     value=" Save Changes " />
+    </div>
+    </td>
+  </tr>
+</table>
+</form>
+
+<dtml-var manage_page_footer>
diff --git a/trunk/psycopg2/ZPsycopgDA/dtml/table_info.dtml b/trunk/psycopg2/ZPsycopgDA/dtml/table_info.dtml
new file mode 100644 (file)
index 0000000..639c23f
--- /dev/null
@@ -0,0 +1,7 @@
+<dtml-var standard_html_header>
+
+<dtml-var TABLE_TYPE><dtml-if TABLE_OWNER>
+ owned by <dtml-var TABLE_OWNER></dtml-if>
+<dtml-if REMARKS><br><dtml-var REMARKS></dtml-if>
+
+<dtml-var standard_html_footer>
diff --git a/trunk/psycopg2/ZPsycopgDA/icons/bin.gif b/trunk/psycopg2/ZPsycopgDA/icons/bin.gif
new file mode 100644 (file)
index 0000000..e469126
Binary files /dev/null and b/trunk/psycopg2/ZPsycopgDA/icons/bin.gif differ
diff --git a/trunk/psycopg2/ZPsycopgDA/icons/date.gif b/trunk/psycopg2/ZPsycopgDA/icons/date.gif
new file mode 100644 (file)
index 0000000..0d88a57
Binary files /dev/null and b/trunk/psycopg2/ZPsycopgDA/icons/date.gif differ
diff --git a/trunk/psycopg2/ZPsycopgDA/icons/datetime.gif b/trunk/psycopg2/ZPsycopgDA/icons/datetime.gif
new file mode 100644 (file)
index 0000000..faa540b
Binary files /dev/null and b/trunk/psycopg2/ZPsycopgDA/icons/datetime.gif differ
diff --git a/trunk/psycopg2/ZPsycopgDA/icons/field.gif b/trunk/psycopg2/ZPsycopgDA/icons/field.gif
new file mode 100644 (file)
index 0000000..9bf8692
Binary files /dev/null and b/trunk/psycopg2/ZPsycopgDA/icons/field.gif differ
diff --git a/trunk/psycopg2/ZPsycopgDA/icons/float.gif b/trunk/psycopg2/ZPsycopgDA/icons/float.gif
new file mode 100644 (file)
index 0000000..dd42729
Binary files /dev/null and b/trunk/psycopg2/ZPsycopgDA/icons/float.gif differ
diff --git a/trunk/psycopg2/ZPsycopgDA/icons/int.gif b/trunk/psycopg2/ZPsycopgDA/icons/int.gif
new file mode 100644 (file)
index 0000000..ef2c5e3
Binary files /dev/null and b/trunk/psycopg2/ZPsycopgDA/icons/int.gif differ
diff --git a/trunk/psycopg2/ZPsycopgDA/icons/stable.gif b/trunk/psycopg2/ZPsycopgDA/icons/stable.gif
new file mode 100644 (file)
index 0000000..acdd37d
Binary files /dev/null and b/trunk/psycopg2/ZPsycopgDA/icons/stable.gif differ
diff --git a/trunk/psycopg2/ZPsycopgDA/icons/table.gif b/trunk/psycopg2/ZPsycopgDA/icons/table.gif
new file mode 100644 (file)
index 0000000..cce83be
Binary files /dev/null and b/trunk/psycopg2/ZPsycopgDA/icons/table.gif differ
diff --git a/trunk/psycopg2/ZPsycopgDA/icons/text.gif b/trunk/psycopg2/ZPsycopgDA/icons/text.gif
new file mode 100644 (file)
index 0000000..a2e5aab
Binary files /dev/null and b/trunk/psycopg2/ZPsycopgDA/icons/text.gif differ
diff --git a/trunk/psycopg2/ZPsycopgDA/icons/time.gif b/trunk/psycopg2/ZPsycopgDA/icons/time.gif
new file mode 100644 (file)
index 0000000..6d08915
Binary files /dev/null and b/trunk/psycopg2/ZPsycopgDA/icons/time.gif differ
diff --git a/trunk/psycopg2/ZPsycopgDA/icons/view.gif b/trunk/psycopg2/ZPsycopgDA/icons/view.gif
new file mode 100644 (file)
index 0000000..71b30de
Binary files /dev/null and b/trunk/psycopg2/ZPsycopgDA/icons/view.gif differ
diff --git a/trunk/psycopg2/ZPsycopgDA/icons/what.gif b/trunk/psycopg2/ZPsycopgDA/icons/what.gif
new file mode 100644 (file)
index 0000000..8b5516e
Binary files /dev/null and b/trunk/psycopg2/ZPsycopgDA/icons/what.gif differ
diff --git a/trunk/psycopg2/ZPsycopgDA/pool.py b/trunk/psycopg2/ZPsycopgDA/pool.py
new file mode 100644 (file)
index 0000000..05af0a5
--- /dev/null
@@ -0,0 +1,51 @@
+# ZPsycopgDA/pool.py - ZPsycopgDA Zope product: connection pooling
+#
+# Copyright (C) 2004 Federico Di Gregorio <fog@initd.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, or (at your option) any later
+# version.
+#
+# Or, at your option this program (ZPsycopgDA) can be distributed under the
+# Zope Public License (ZPL) Version 1.0, as published on the Zope web site,
+# http://www.zope.org/Resources/ZPL.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# See the LICENSE file for details.
+
+# all the connections are held in a pool of pools, directly accessible by the
+# ZPsycopgDA code in db.py
+
+import threading
+import psycopg2.pool
+
+_connections_pool = {}
+_connections_lock = threading.Lock()
+
+def getpool(dsn, create=True):
+    _connections_lock.acquire()
+    try:
+        if not _connections_pool.has_key(dsn) and create:
+            _connections_pool[dsn] = \
+                psycopg2.pool.PersistentConnectionPool(4, 200, dsn)
+    finally:
+        _connections_lock.release()
+    return _connections_pool[dsn]
+
+def flushpool(dsn):
+    _connections_lock.acquire()
+    try:
+        _connections_pool[dsn].closeall()
+        del _connections_pool[dsn]
+    finally:
+        _connections_lock.release()
+        
+def getconn(dsn, create=True):
+    return getpool(dsn, create=create).getconn()
+
+def putconn(dsn, conn, close=False):
+    getpool(dsn).putconn(conn, close=close)
diff --git a/trunk/psycopg2/debian/changelog b/trunk/psycopg2/debian/changelog
new file mode 100644 (file)
index 0000000..44d83dc
--- /dev/null
@@ -0,0 +1,12 @@
+psycopg2 (1.99.12.1-1) experimental; urgency=low
+
+  * Adapted from patches sent by W. Borgert.
+  * Renamed source package to psycopg2.
+
+ -- Federico Di Gregorio <fog@debian.org>  Fri,  4 Mar 2005 13:11:43 +0100
+
+psycopg2 (1.99.11-0.1) unstable; urgency=low
+  
+  * Experimental package.
+
+ -- W. Borgert <debacle@debian.org>  Sun, 09 Jan 2005 10:14:09 +0000
diff --git a/trunk/psycopg2/debian/control b/trunk/psycopg2/debian/control
new file mode 100644 (file)
index 0000000..9c63676
--- /dev/null
@@ -0,0 +1,51 @@
+Source: psycopg2
+Section: python
+Priority: optional
+Build-depends: postgresql-dev, debhelper (>> 3), python2.3-dev, cdbs
+Maintainer: Federico Di Gregorio <fog@debian.org>
+Standards-Version: 3.6.1.1
+
+Package: python-psycopg2
+Architecture: any
+Section: python
+Depends: python (>= 2.3), python (<< 2.4), python2.3-psycopg2
+Description: Python module for PostgreSQL [dummy package]
+ psycopg is a PostgreSQL database adapter for the Python programming
+ language. It was written from scratch with the aim of being very small
+ and fast, and stable as a rock. The main advantages of psycopg are that
+ it supports the full Python DBAPI-2.0 and being thread safe at level 2.
+ .
+ psycopg 2 is the next generation psycopg, implementing a much better
+ type system and even more DBAPI extensions:
+ .
+ * support for Python datetime and Decimal types;
+ * complete implementation of adapt() from PEP 246 to convert Python
+   types to PostgreSQL ones;
+ * COPY FROM/COPY TO support;
+ * inehritable connection and cursor objects and support for connection
+   and cursor factories;
+ * automatic encoding conversion and support for unicode queries.
+ .
+ This dummy package just depends on the right, default version of Python 
+ and psycopg 2.
+
+Package: python2.3-psycopg2
+Architecture: any
+Section: python
+Depends: ${shlibs:Depends}, python2.3
+Description: Python 2.3 module for PostgreSQL
+ psycopg is a PostgreSQL database adapter for the Python programming
+ language. It was written from scratch with the aim of being very small
+ and fast, and stable as a rock. The main advantages of psycopg are that
+ it supports the full Python DBAPI-2.0 and being thread safe at level 2.
+ .
+ psycopg 2 is the next generation psycopg, implementing a much better
+ type system and even more DBAPI extensions:
+ .
+ * support for Python datetime and Decimal types;
+ * complete implementation of adapt() from PEP 246 to convert Python
+   types to PostgreSQL ones;
+ * COPY FROM/COPY TO support;
+ * inehritable connection and cursor objects and support for connection
+   and cursor factories;
+ * automatic encoding conversion and support for unicode queries.
diff --git a/trunk/psycopg2/debian/copyright b/trunk/psycopg2/debian/copyright
new file mode 100644 (file)
index 0000000..c631915
--- /dev/null
@@ -0,0 +1,10 @@
+psycopg 2 can be downloaded from:
+
+    http://initd.org/pub/software/psycopg/ALPHA/
+
+Copyright (c) 2001-2005 Federico Di Gregorio <fog@debian.org>
+
+This program is distributed under the GNU GPL.
+On Debian GNU/Linux systems, the complete text of the GNU General
+Public License can be found in '/usr/share/common-licenses/GPL'.
diff --git a/trunk/psycopg2/debian/rules b/trunk/psycopg2/debian/rules
new file mode 100755 (executable)
index 0000000..98ad46f
--- /dev/null
@@ -0,0 +1,4 @@
+#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/python-distutils.mk
diff --git a/trunk/psycopg2/doc/ChangeLog-1.x b/trunk/psycopg2/doc/ChangeLog-1.x
new file mode 100644 (file)
index 0000000..dadfc1b
--- /dev/null
@@ -0,0 +1,1744 @@
+2003-07-26  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.1.7.
+
+       * ZPsycopgDA/db.py: added _cursor method that checks for self.db
+       before returning a new cursor. Should fix problem reported with
+       Zope 2.7.  
+
+2003-07-23  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c: applied notify and fileno patch from Vsevolod Lobko.
+
+2003-07-20  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (_mogrify_dict): applied (slightly modofied) patch from
+       Tobias Sargeant: now .execute() accept not only dictionaries but
+       every type that has a __getitem__ method.
+
+2003-07-13  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.1.6.
+
+       * cursor.c (psyco_curs_scroll): added scroll method, patch from
+       Jason D.Hildebrand.
+
+       * typemod.c (new_psyco_quotedstringobject): discard NUL characters
+       (\0) in quoted strings (fix problem reported by Richard Taylor.)
+
+2003-07-10  Federico Di Gregorio  <fog@debian.org>
+
+       * Added python-taylor.txt in doc directory: very nice introduction
+       to DBAPI programming by Richard Taylor.
+
+2003-07-09  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (_psyco_curs_execute): another MT problem exposed and
+       fixed by Sebastien Bigaret (self->keeper->status still LOCKED
+       after a fatal error during PQexec call.)
+
+2003-06-23  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.1.5.1.
+
+       * ZPsycopgDA/db.py (DB.query): stupid error making ZPsycopgDA
+       unusable fixed (else->except).
+
+2003-06-22  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.1.5 candidate.
+
+       * cursor.c (psyco_curs_copy_to): now any object with the write
+       method can be used as a copy_to target.  
+
+2003-06-20  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (psyco_curs_copy_from): applied patch to allow copy_to
+       from any object having a "readline" attribute (patch from Lex
+       Berezhny.) (psyco_curs_copy_from): another patch from Lex to make
+       psycopg raise an error on COPY FROM errors. 
+
+       * ZPsycopgDA/db.py (DB.query): if a query raise an exception,
+       first self._abort() is called to rollback current
+       "sub-transaction".  this is a backward-compatible change for
+       people that think continuing to work in the same zope transaction
+       after an exception is a Good Thing (TM).
+
+       * finally updated check_types.expected. checked by hand the
+       conversions work the right way.
+
+       * doc/examples/work.py: fixed example. note that it is a long time
+       (at least two releases) that psycopg does not END a transaction
+       initiated explicitly by the user while in autocommit mode.
+
+2003-06-19  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (_mogrify_dict): fixed dictionary mogrification (patch
+       by Vsevolod Lobko.) (_psyco_curs_execute): fixed keeper status
+       trashing problem by letting only one thread at time play with
+       keeper->status (as suggested by Sebastien Bigaret.)
+
+2003-05-07  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.1.4.
+
+       * cursor.c: Added "statusmessage" attribute that holds the backend
+       message (modified lots of functions, look for self->status).
+
+2003-05-06  Federico Di Gregorio  <fog@debian.org>
+
+       * typemod.c (new_psyco_datetimeobject): moved Py_INCREF into
+       XXX_FromMx functions, to fix memory leak reported by Jim Crumpler.
+
+2003-04-11  Federico Di Gregorio  <fog@debian.org>
+
+       * module.h (PyObject_TypeCheck): fixed leak in python 2.1
+       (Guido van Rossum).
+
+2003-04-08  Federico Di Gregorio  <fog@debian.org>
+
+       * buildtypes.py (basic_types): removed LXTEXT (never user, does
+       not exists anymore.)
+
+2003-04-07  Federico Di Gregorio  <fog@debian.org>
+
+       * setup.py: added very lame setup.py script.
+
+2003-04-02  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.3. 
+
+       * psycopg.spec: Added (but modified) spec file by William
+       K. Volkman (again, this change was lost somewhere in time...)
+
+2003-04-01  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (_psyco_curs_execute): psycopg was reporting everything
+       as IntegrityError; reported and fix suggested by Amin Abdulghani.
+
+2003-03-21  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (psyco_curs_fetchone): debug statements sometimes made
+       psycopg segfault: fixed by a patch by Ken Simpson.
+
+2003-03-18  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (alloc_keeper): patch from Dieter Maurer to unlock GIL
+       whaile calling PQconnectdb().
+
+2003-03-05  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.1.2.
+
+       * Applied cygwin patch from Hajime Nakagami.
+
+2003-02-25  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.1.2pre1.
+       
+       * cursor.c: added .lastrowid attribute to cursors (lastoid is
+       deprecated and will be removed sometime in the future.)
+
+       * cursor.c (begin_pgconn): implemented various isolation levels
+       (also, in abort_pgconn, commit_pgconn.)
+
+       * Added keyword parameters to psycopg.connect(): all take strings
+       (even port): database, host, port, user, password.
+       
+       * configure.in: fixed test for postgres version > 7.2.
+
+       * cursor.c (_psyco_curs_execute): removed if on pgerr in default
+       case (if we enter default pgerr can't be one of the cased ones.)
+       Also applied slightly modified patch from  William K. Volkman.
+
+2003-02-24  Federico Di Gregorio  <fog@debian.org>
+
+       * Merged in changes from 1.0.15.1 (see below for merged
+       ChangeLog.)
+
+2003-02-14  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0.15.1.
+
+       * cursor.c (_mogrify_fmt): in some cases we where removing one
+       character too much from the format string, resulting in BIG BAD
+       BUG. <g> Fixed.
+
+2003-02-13  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0.15. <g>
+       
+       * connection.c (_psyco_conn_close): now call dispose_pgconn on all
+       cursors, to make sure all phisical connections to the db are
+       closed (problem first reported by Amin Abdulghani.)
+
+       * DBAPI-2.0 fixed mainly due to Stuart Bishop:
+         - cursor.c (psyco_curs_setinputsizes): removed PARSEARGS, as
+           this method does nothing.
+         - cursor.c (psyco_curs_setoutputsize): .setoutputsize was
+           spelled .setoutputsizes! fixed. Also removed PARSEARGS, as this
+           method does nothing.
+
+2003-02-12  Federico Di Gregorio  <fog@debian.org>
+
+       * module.h (Dprintf): check on __APPLE__ to avoid variadic macros
+       on macos x (as reported by Stuart Bishop, btw, why gcc seems to
+       not support them on macos?)
+
+       * cursor.c (_mogrify_fmt): non-alphabetic characters are dropped
+       after the closing ")" until a real alphabetic, formatting one is
+       found. (Fix bug reported by Randall Randall.)
+
+2003-02-05  Federico Di Gregorio  <fog@debian.org>
+
+       * typeobj.c (psyco_INTERVAL_cast): patched again to take into
+       account leading zeroes.
+
+2003-02-02  Federico Di Gregorio  <fog@debian.org>
+
+       * Makefile.pre.in: applied patch from Albert Chin-A-Young to
+       define BLDSHARED.
+
+       * README: added explicit permission to link with OpenSSL.
+
+2003-01-30  Federico Di Gregorio  <fog@debian.org>
+
+       * config.h.in: applied patch from Albert Chin-A-Young to fix
+       asprintf prototype.
+
+2003-01-29  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (_mogrify_seq): fixed little refcount leak, as
+       suggested by Yves Bastide.
+
+2003-01-24  Federico Di Gregorio  <fog@debian.org>
+
+       * Merged-in changes from 1.0.14.2 (emacs diff mode is great..)
+
+       * Release 1.0.14.2.
+
+       * ZPsycopgDA/db.py (DB.query): back to allowing up to 1000 db
+       errors before trying to reopen the connection by ourselves.
+       
+       * ZPsycopgDA/db.py: a false (None preferred, 0 allowed) max_rows
+       value now means "fetch all results".
+
+2003-01-22  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (psyco_curs_fetchone): fixed little memory leak
+       reported by Dieter Maurer.
+
+2003-01-20  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/db.py (DB.tables/columns): added registration with
+       Zope's transaction machinery.
+
+       * Release 1.0.14.1.
+
+       * ZPsycopgDA/db.py: applied some fixes and cleanups by Dieter
+       Maurer (serialization problem were no more correctly detected!)
+
+       * Release 1.0.14.
+       
+       * Merged in 1.0.14.
+
+       * Import of 1.1.1 done.
+       
+       * Moved everything to cvs HEAD.
+
+2003-01-20  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/connectionAdd.dtml: fixed typo (thanks to Andrew
+       Veitch.)
+
+       * typeobj.c (psyco_INTERVAL_cast): applied patch from Karl Putland
+       to fix problems with fractional seconds.
+
+2002-12-03  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0.14-pre2.
+
+       * module.h: added macro for PyObject_TypeCheck if python version <2.2.
+
+       * typeobj.c (psyco_DBAPITypeObject_coerce): added error message to
+       coercion errors.
+
+2002-12-02  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0.14-pre1.
+
+       * ZPsycopgDA/db.py (DB.sortKey): added sortKey().
+       
+       * ZPsycopgDA/DA.py: applied a patch that was lost on hard disk
+       (sic), if you sent me a patch names psycopg-1.0.13.diff modifying
+       DA.py imports and want your name here, send me an email. :)
+       [btw, the patch fix the ImageFile import, getting it from Globals
+       as it is right.]
+
+       * typeobj.c (psyco_DBAPITypeObject_coerce): Fixed coerce segfault
+       by checking explicitly for all the allowed types.
+
+2002-11-25  Federico Di Gregorio  <fog@debian.org>
+
+       * doc/examples/*.py: added .rollback() to all exceptions before
+       deleteing the old table. 
+
+       * cursor.c: Apllied patch from John Goerzen (fix memory leak in
+       executemany).
+
+2002-10-25  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0.13.
+
+       * connection.c (_psyco_conn_close): remove cursors from the list
+       starting from last and moving backward (as suggested by Jeremy
+       Hylton; this is not such a big gain because python lists are
+       *linked* lists, but not removing the element 0 makes the code a
+       little bit clear.)
+
+       * cursor.c (_psyco_curs_execute): now IntegrityError is raised
+       instead of ProgrammingError when adding NULL values to a non-NULL
+       column (suggested by Edmund Lian) and on referential integrity
+       violation (as per debian bug #165791.)
+
+       * typeobj.c (psyco_DATE_cast): now we use 999999 instead of
+       5867440 for very large (both signs) dates. This allow to re-insert
+       the DateTime object into postgresql (suggested by Zahid Malik.) 
+
+2002-09-13  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0.12.
+
+       * Removed code to support COPY FROM/TO, will be added to new 1.1
+       branch to be released next week.
+
+       * cursor.c (_mogrify_seq): Fixed memory leak reported by Menno
+       Smits (values obtained by calling PySequence_GetItem are *new*
+       references!)
+
+2002-09-07  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (_psyco_curs_execute): Added skeleton to support COPY
+       FROM/TO.
+
+2002-09-06  Federico Di Gregorio  <fog@debian.org>
+
+       * configure.in: if libcrypt can't be found we probably are on
+       MacOS X: check for libcrypto, as suggested by Aparajita Fishman.
+
+2002-09-03  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/db.py (DB.columns): Applied patch from Dieter Maurer
+       to allow the DA-browser to work with mixed case table names.
+
+2002-08-30  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/DA.py (cast_DateTime): Applied patch from Yury to fix
+       timestamps (before they were returned with time always set to 0.)
+
+2002-08-26  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0.11.1 (to fix a %&£$"! bug in ZPsycopgDA not
+       accepting psycopg 1.0.11 as a valid version.
+
+       * Release 1.0.11.
+
+2002-08-22  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0.11pre2.
+
+       * cursor.c (_psyco_curs_execute): fixed IntegrityError as reported
+       by Andy Dustman. (psyco_curs_execute): converting TypeError to
+       ProgrammingError on wrong number of % and/or aeguments. 
+
+       * doc/examples/integrity.py: added example and check for
+       IntegrityError.
+
+2002-08-08  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0.11pre1.
+
+2002-08-06  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/DA.py (cast_DateTime): patched as suggested by Tom
+       Jenkins; now it shouldwork with time zones too.
+
+2002-08-01  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/DA.py (cast_DateTime): fixed problem with missing
+       AM/PM, as reported by Tom Jenkins.
+
+2002-07-23  Federico Di Gregorio  <fog@debian.org>
+
+       * Fixed buglets reported by Mike Coleman.
+
+2002-07-22  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0.10.
+
+2002-07-14  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0.10pre2.
+       
+       * typeobj.c (psyco_LONGINTEGER_cast): fixed bad segfault by
+       INCREFfing Py_None when it is the result of a NULL conversion.
+
+2002-07-04  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0.10pre1.
+       
+       * buildtypes.py (basic_types): added TIMESTAMPTZ to the types
+       converted by the DATE builtin.
+       
+       * ZPsycopgDA/DA.py (Connection.connect): Added version check.
+
+2002-07-03  Federico Di Gregorio  <fog@debian.org>
+
+       * typeobj.c (psyco_XXX_cast): fixed bug reported by multiple users
+       by appliying Matt patch. 
+
+2002-06-30  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/DA.py (Connection.set_type_casts): applied patch from
+       Tom Jenkins to parse dates with TZ.
+
+2002-06-20  Federico Di Gregorio  <fog@debian.org>
+
+       * Preparing for release 1.0.9.
+
+       * Makefile.pre.in (dist): now we really include psycopg.spec.
+
+2002-06-17  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/db.py (_finish, _abort): fixed problem with
+       connection left in invalid state by applying Tom Jenkins patch.
+
+2002-06-06  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/db.py (DB._abort): fixed exception raising after an
+       error in execute triggerer deletion of self.db.
+
+2002-05-16  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (psyco_curs_fetchone): None values passed to the
+       internal typecasters. 
+
+       * typeobj.c: added management of None to all the builtin
+       typecasters. 
+
+2002-04-29  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/DA.py (cast_Time): applied 'seconds as a float' patch
+       from Jelle.
+
+2002-04-23  Federico Di Gregorio  <fog@debian.org>
+
+        * Release 1.0.8.
+
+       * Makefile.pre.in: we now include win32 related files in the
+       distribution. 
+       
+       * connection.c (psyco_conn_destroy): fixed segfault reported by
+       Scott Leerssen (we were double calling _psyco_conn_close().)
+
+       * typemod.c (new_psyco_quotedstringobject): fixed memory stomping
+       catched by assert(); thanks to Matt Hoskins for reporting this
+       one.
+
+2002-04-22  Federico Di Gregorio  <fog@debian.org>
+
+       * configure.in: grmpf. we need a VERSION file for windows, we'll
+       use it for configue and debian/rules too. 
+
+       * Integrated win32 changes from Jason Erickson. Moved his
+       Readme.txt to README.win32, removed VERSION and DATE, patched
+       source where required. Renamed HISTORY to ChangeLog.win32, hoping
+       Jason will start adding changes to the real ChangeLog file.
+
+2002-04-07  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0.7.1.
+       
+       * configure.in: fixed little bug as reported by ron.
+
+2002-04-05  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0.7?
+       
+       * typemod.c (new_psyco_bufferobject): fixed encoding problem (0xff
+       now encoded as \377 and not \777.) Also encoding *all* chars as
+       quoted octal values to prevent "Invalid UNICODE character sequence
+       found" errors.
+
+       * Release 1.0.7. (Real this time.) (Ok, it was a joke....)
+
+2002-04-03  Federico Di Gregorio  <fog@debian.org>
+
+       * configure.in: fixed problem with postgres versions in the format
+       7.2.x (sic.)
+
+       * connection.c (psyco_conn_destroy): moved most of the destroy
+       stuff into its own function (_psyco_conn_close) and added a call
+       to it from psyco_conn_close. This should fix the "psycopg does not
+       release postgres connections on .close()" problem.
+
+2002-03-29  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0.7. Delayed.
+       
+       * buildtypes.py (basic_types): added TIMESTAMPTZ postgres type to
+       the list of valid DATETIME types (incredible luck, no changes to
+       the parse are needed!)
+
+       * typeobj.c (psyco_DATE_cast): fixed wrong managment of sign in
+       infinity.
+
+2002-03-27  Federico Di Gregorio  <fog@debian.org>
+       
+       * configure.in (INSTALLOPTS): added AC_PROG_CPP test, now uses
+       AC_TRY_CPP to test for _all_ required mx includes.
+
+2002-03-19  Federico Di Gregorio  <fog@debian.org>
+
+       * configure.in: added check for both pg_config.h and config.h to
+       detect postgres version.
+
+       * cursor.c: now None values are correctly handled when the format
+       string is not %s but %d, etc.
+
+2002-03-08  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/DA.py: added MessageDialog import suggested by
+       Guido.
+
+2002-03-07  Federico Di Gregorio  <fog@debian.org>
+
+       * psycopg.spec: added RPM specs by William K. Volkman.
+
+       * Release 1.0.6.
+       
+       * configure.in: imported changes to allow postgres 7.2 builds from
+       unstable branch.
+
+2002-03-04  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0.5.
+
+       * applied table browser patch from Andy Dustman. 
+
+2002-02-26  Federico Di Gregorio  <fog@debian.org>
+
+       * typeobj.c (psyco_DATE_cast): added management of infinity
+       values, this can be done in a better way, by accessing the
+       MaxDateTime and MinDateTime constants of the mx.DateTime module.
+
+2002-02-20  Federico Di Gregorio  <fog@debian.org>
+
+       * configure.in: Release 1.0.4.
+
+2002-02-12  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/db.py (DB.columns): fixed select to reenable column
+       expansion in table browsing.
+
+       * ZPsycopgDA/__init__.py: removed code that made psycopg think
+       double.  
+
+2002-02-11  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (_mogrify_dict): removed Py_DECREF of Py_None,
+       references returned by PyDict_Next() are borrowed (thanks to
+       Michael Lausch for this one.)
+
+2002-02-08  Federico Di Gregorio  <fog@debian.org>
+
+       * A little bug slipped in ZPsycopgDA, releasing 1.0.3 immediately.
+
+        * Release 1.0.2.
+       
+       * tests/check_types.py (TYPES): added check for hundredths of a
+       second. 
+
+2002-02-07  Federico Di Gregorio  <fog@debian.org>
+
+       * typeobj.c (psyco_INTERVAL_cast): patched to correct wrong
+       interpretation of hundredths of a second (patch from
+       A. R. Beresford, kudos!)
+
+2002-01-31  Federico Di Gregorio  <fog@debian.org>
+
+       * FAQ: added.
+
+2002-01-16  Federico Di Gregorio  <fog@debian.org>
+
+       * Preparing for release 1.0.1.
+       
+       * cursor.c (alloc_keeper): removed ALLOW_THREADS wrapper around
+       PQconnectdb: libpq calls crypt() that is *not* reentrant.
+
+2001-12-19  Federico Di Gregorio  <fog@debian.org>
+
+       * typeobj.c (psyco_DBAPITypeObject_cmp): added check to simply
+       return false when two type objects are compared (type objects are
+       meaned to be compared to integers!)
+
+       * typeobj.c: fixed the memory leak reported by the guys at
+       racemi, for real this time. (added about 5 DECREFS and 2 INCREFS,
+       ouch!)
+       
+2001-12-17  Federico Di Gregorio  <fog@debian.org>
+
+       * typeobj.c (psyco_DBAPITypeObject_cmp): fixed memory leak by
+       using PyTuple_GET_ITEM (we are sure the tuple has at least one
+       element, we built it, after all...) (many thanks to Scott Leerssen
+       for reporting the *exact line* for this one.)
+
+2001-12-13  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c: fixed memory leak due to extra strdup (thanks
+       to Leonardo Rochael Almeida.)
+
+2001-11-14  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 1.0. 
+
+       * doc/README: added explanation about guide work in progess but
+       examples working.
+
+       * debian/*: lots of changes to release 1.0 in debian too.
+
+2001-11-12  Federico Di Gregorio  <fog@debian.org>
+
+       * RELEASE-1.0: added release file, to celebrate 1.0.
+
+       * tests/zope/typecheck.zexp: regression test on types for zope.
+
+2001-11-11  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/DA.py (cast_Interval): removed typecast of interval
+       into zope DateTime. intervals are reported as strings when using
+       zope DateTime and as DateTimeDeltas when using mx.
+
+2001-11-09  Federico Di Gregorio  <fog@debian.org>
+
+       * typeobj.c (psyco_INTERVAL_cast): complete rewrite of the
+       interval parsing code. now we don't use sscanf anymore and all is
+       done with custom code in a very tight and fast loop. 
+
+2001-11-08  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/DA.py (Connection.set_type_casts): added mx INTERVAL
+       type restore.
+
+       * ZPsycopgDA/db.py (DB.query): now we return column names even if
+       there are no rows in the result set. also, cleaned up a little bit
+       the code.
+
+2001-11-7  Federico Di Gregorio,  <fog@debian.org>
+
+       * Makefile.pre.in: fixed small problem with zcat on True64 
+       (thank you stefan.)
+
+2001-11-06  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/db.py (DB.query): added fix for concurrent update
+       from Chris Kratz.
+
+2001-11-05  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c: now we include postgres.h if InvalidOid is still
+       undefined after all other #includes.
+
+       * README: clarified use of configure args related to python
+       versions.
+
+       * aclocal.m4: patched to work with symlinks installations (thanks
+       to Stuart Bishop.)
+
+       * cursor.c (_psyco_curs_execute): now reset the keeper's status to
+       the old value and not to BEGIN (solve problem with autocommit not
+       switching back.)
+
+2001-11-01  Federico Di Gregorio  <fog@debian.org>
+
+       * doc/examples/dt.py: added example on how to use the date and
+       time constructors. 
+
+       * Makefile.pre.in (dist-zope): removed dependencies on GNU install
+       and tar commands. Also a little general cleanup on various targets.
+
+       * ZPsycopgDA/DA.py: fixed mx.DateTime importing. 
+
+2001-10-31  Federico Di Gregorio  <fog@debian.org>
+
+       * typemod.c (psyco_xxxFromMx): fixed bug in argument parsing (we
+       weren't usigng the right type object.) 
+
+       * aclocal.m4: now builds OPT and LDFLAGS on the values of the env
+       variables instead of overwriting them.
+
+       * Makefile.pre.in (CFLAGS): removed -Wall, you can add it back at
+       compile time with OPT="-Wall" ./configure ...
+
+       * Setup.in (OPT): removed -Wall.
+
+2001-10-30  Michele Comitini <mcm@initd.net>
+
+       * module.h: ANSI C compatibility patch from Daniel Plagge.
+       
+2001-10-30  Federico Di Gregorio  <fog@debian.org>
+
+       * README: added common building problems and solutions.
+
+       * configure.in: removed check for install command, already done by
+       james's aclocal.m4 for python. removed install-sh. removed -s from
+       INSTALLOPTS.
+
+2001-10-29  Federico Di Gregorio  <fog@debian.org>
+
+       * Makefile.pre.in (dist): removed examples/ directory from
+       distribution. 
+
+       * merge with cvs head. preparing to fork again on PSYCOPG-1-0 (i
+       admit BRANCH_1_0 was quite a silly name.)
+
+       * doc/examples/usercast.py: now works. 
+
+       * connection.c (curs_rollbackall): fixed little bug (exposed by
+       the deadlock below) by changing KEEPER_READY to KEEPER_READY.
+
+       * doc/examples/commit.py: deadlock problem solved, was the
+       example script, _not_ psycopg. pew... :)
+
+       * examples/*: removed the examples moved to doc/examples/.
+       
+       * doc/examples/commit.py,dictfetch.py: moved from examples/ and
+       changed to work for 1.0. unfortunately commit.py locks psycopg!!!
+
+2001-10-24  Federico Di Gregorio  <fog@debian.org>
+
+       * modified all files neede for the 1.0 release.
+
+       * configure.in (MXFLAGS): removed electric fence support.
+
+       * Makefile.pre.in (dist): now we remove CVS working files before
+       packing the tarball.
+
+        * tests: files in this directory are not coding examples, but
+       regression tests. we need a sufficient number of tests to follow
+       every single code path in psycopg at least once. first test is
+       about datatypes.
+       
+       * doc/examples: moved new example code to examples directory, old
+       tests and code samples will stay in examples/ until the manual will
+       be finished.
+
+2001-10-16  Federico Di Gregorio  <fog@debian.org>
+
+       * typeobj.c (psyco_INTERVAL_cast): completely revised interval
+       casting code. (psyco_TIME_cast): we use the unix epoch when the
+       date is undefined. 
+
+       * cursor.c (psyco_curs_executemany): modified sanity check to
+       accept sequences of tuples too and not just dictionaries.
+
+2001-10-15  Federico Di Gregorio  <fog@debian.org>
+
+       * typeobj.c (psyco_INTERVAL_cast): fixed bug caused by wrong
+       parsing on '1 day' (no hours, minutes and seconds.)
+
+2001-10-15  Michele Comitini  <mcm@initd.net>
+
+       * cursor.c (_execute): use the correct cast functions even on
+       retrival of binary cursors.
+
+2001-10-12  Federico Di Gregorio  <fog@debian.org>
+
+       * typemod.c (new_psyco_bufferobject): space not quoted anymore,
+       smarter formula to calculate realloc size.
+
+       * cursor.c (psyco_curs_fetchone): removed static tuple (using
+       static variable in multithreaded code is *crazy*, why did i do it? 
+       who knows...)
+
+       * typeobj.c (psyco_init_types): exports the binary converter (will
+       be used in cursor.c:_execute.)
+
+       * typeobj.h: added export of psyco_binary_cast object.
+
+2001-10-05  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (_psyco_curs_execute): added missing Py_XDECREF on
+       casts list.
+
+       * Makefile.pre.in (dist): added install-sh file to the
+       distribution. 
+
+       * replaced PyMem_DEL with PyObject_Del where necessary.
+       
+       * connection.c (psyco_conn_destroy): added missing
+       pthread_mutex_destroy on keeper lock.
+
+2001-10-01  Michele Comitini  <mcm@initd.net>
+
+       * typemod.c(new_psyco_bufferobject()): using unsigned char for
+       binary objects to avoid too many chars escaped.  A quick and
+       simple formula to avoid memory wasting and too much reallocating
+       for the converted object.  Needs _testing_, but it is faster.
+
+       * cursor.c: #include <postgres.h>
+
+       * module.h: now debugging should be active only when asked by
+       ./configure --enable-devel
+       
+2001-09-29  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (new_psyco_cursobject): added locking of connection,
+       still unsure if necessary.
+
+2001-09-26  Federico Di Gregorio  <fog@debian.org>
+
+       * configure.in: changed DEBUG into PSYCOTIC_DEBUG, to allow other
+       includes (postgres.h) to use the former. better compiler checks:
+       inline, ansi, gcc specific extensions. removed MXMODULE: we don't
+       need it anymore.
+
+       * general #include cleanup, should compile on MacOS X too.
+
+       * typeobj.c (psyco_DATE_cast): uses sscanf. should be faster too. 
+       (psyco_TIME_cast): dixit.
+
+       * applied patch from Daniel Plagge (SUN cc changes.)
+       
+2001-09-22  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/db.py (DB._finish, DB._begin): fix for the 
+       self.db == None problem.
+
+2001-09-19  Michele Comitini  <mcm@initd.net>
+
+       * typemod.c (new_psyco_bufferobject): better memory managment
+       (now it allocates only needed space dinamically).
+
+       * typeobj.c (psyco_BINARY_cast): ripped a useless check, now
+       it assumes that binary streams come out from the db correctly
+       escaped.  Should be a lot faster.
+
+2001-09-18  Federico Di Gregorio  <fog@debian.org>
+
+       * typeobj.c (psyco_INTERVAL_cast): fixed interval conversion
+       (hours were incorrectly converted into seconds.)
+
+2001-09-17  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (_mogrify_seq, _mogrify_dict): added check for None
+       value and conversion of None -> NULL (fixes bug reported by Hamish
+       Lawson.)
+
+2001-09-12  Federico Di Gregorio  <fog@debian.org>
+
+       * module.c: added handles to new date and time conversion
+       functions (see below.)
+
+       * typemod.c (psyco_XXXFromMx): added conversion functions that
+       simply wrap the mxDateTime objects instead of creating
+       them. DBAPI-2.0 extension, off-curse. 
+
+2001-09-10  Federico Di Gregorio  <fog@debian.org>
+
+       * buildtypes.py: solved hidden bug by changing from dictionary to
+       list, to maintain ordering of types. sometimes (and just
+       sometimes) the type definitions were printed unsorted, resulting
+       is psycopg initializing the type system using the type objects in
+       the wrong order. you were getting float values from an int4
+       column? be happy, this is now fixed... 
+
+       * cursor.c (psyco_curs_lastoid): added method to get oid of the
+       last inserted row (it was sooo easy, it even works...) 
+
+2001-09-08  Federico Di Gregorio  <fog@debian.org>
+
+       * typeobj.c (psyco_INTERVAL_cast): added casting function for the
+       postgres INTERVAL and TINTERVAL types (create a DateTimeDelta
+       object.)  
+
+2001-09-05  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c: moved all calls to begin_pgconn to a single call in
+       _psyco_curs_execute, to leave the connection in a not-idle status
+       after a commit or a rollback. this should free a lot of resources
+       on the backend side. kudos to the webware-discuss mailing list
+       members and to Clark C. Evans who suggested a nice solution.
+       
+       * connection.c (curs_rollbackall, curs_commitall): removed calls
+       to begin_pgconn, see above. 
+
+       * module.c (initpsycopg): cleaned up mxDateTime importing; we now
+       use the right function from mxDateTime.h. Is not necessary anymore
+       to include our own mx headers. This makes psycopg to depend on
+       mxDateTime >= 2.0.0.
+
+2001-09-04  Federico Di Gregorio  <fog@debian.org>
+
+       * doc/*.tex: added documentation directory and skeleton of the
+       psycopg guide. 
+
+2001-09-03  Federico Di Gregorio  <fog@debian.org>
+
+       * merged in changes from HEAD (mostly mcm fixes to binary
+       objects.)
+
+       * preparing for release 0.99.6.
+
+2001-09-03  Michele Comitini  <mcm@initd.net>
+
+       * typemod.c: much faster Binary encoding routine.
+       
+       * typeobj.c: much faster Binary decoding routine.       
+
+2001-08-28  Michele Comitini  <mcm@initd.net>
+
+       * typemod.c: Working binary object to feed data to bytea type
+       fields.
+
+       * typeobj.c: Added BINARY typecast to extract data from
+       bytea type fields.
+
+       * cursor.c: Added handling for SQL binary  cursors.
+
+2001-08-3  Michele Comitini <mcm@initd.net>
+
+       * cursor.c: fixed DATESTYLE problem thanx to Steve Drees.
+
+2001-07-26  Federico Di Gregorio  <fog@debian.org>
+
+       * Makefile.pre.in: applied change suggested by Stefan H. Holek to
+       clobber and distclean targets.
+
+2001-07-23  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/db.py: fixed little bugs exposed by multiple select
+       changes, not we correctly import ListType and we don't override
+       the type() function with a variable. 
+
+2001-07-17  Federico Di Gregorio  <fog@debian.org>
+
+       * configure.in: Release 0.99.5.
+
+2001-07-12  Federico Di Gregorio  <fog@debian.org>
+
+       * debian/* fixed some little packaging problems.
+
+2001-07-11  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c, typeobj.c: removed some Py_INCREF on PyDict_SetItem
+       keys and values to avoid memory leaks.
+
+2001-07-03  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (_mogrify_dict): added dictionary mogrification: all
+       Strings in the dictionary are translated into QuotedStrings. it
+       even works... (_mogrify_seq): added sequence mogrification and
+       code to automagically mogrify all strings passed to .execute(). 
+
+2001-07-02  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 0.99.4.
+
+       * typemod.c: added QuotedString class and methods.
+
+       * module.c: added QuotedString method to module psycopg.
+
+       * typemod.c: changed Binary objects into something usefull. now
+       the buffer object quotes the input by translatin every char into
+       its octal representation. this consumes 4x memory but guarantees
+       that even binary data containing '\0' can go into the Binary
+       object. 
+
+       * typemod.h: added definition of QuotedString object.
+       
+2001-06-28  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/db.py, ZPsycopgDA/DABase.py: applied patch sent by
+       yury to fix little buglet. 
+
+2001-06-22  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 0.99.3.
+       
+       * connection.c (new_psyco_connobject): now we strdup dsn, as a fix
+       for the problem reported by Jack Moffitt.
+
+       * Ok, this will be the stable branch from now on...
+
+       * Merged in stuff from 0.99.3. About to re-branch with a better
+       name (BRANCH_1_0)
+
+2001-06-20  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 0.99.3. Showstoppers for 1.0 are:
+           - documentation
+           - mxDateTime module loading
+           - bug reported by Yury.
+       
+       * Integrated patches from Michele:
+           - searching for libcrypt in configure now works
+           - removed memory leak in asprintf.c
+
+2001-06-15  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/__init__.py (initialize): applied patch from Jelle to
+       resolve problem with Zope 2.4.0a1.
+
+2001-06-14  Federico Di Gregorio  <fog@debian.org>
+
+       * configure.in: added code to check for missing functions (only
+       asprintf at now.)
+
+       * asprintf.c: added compatibility code for oses that does not have
+       the asprintf() function.
+
+2001-06-10  Federico Di Gregorio  <fog@debian.org>
+
+       * Branched PSYCOPG_0_99_3. Development will continue on the cvs
+       HEAD, final adjustements and bugfixing should go to this newly
+       created branch.
+
+2001-06-08  Michele Comitini  <mcm@initd.net>
+
+       * ZPsycopgDA/DA.py: DateTime casts simplified and corrected
+       as suggested by Yury.
+
+2001-06-05  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 0.99.2.
+
+       * Makefile.pre.in (dist): added typemod.h and typemod.c to
+       distribution.
+       
+       * cursor.c (commit_pgconn, abort_pgconn, begin_pgconn): resolved
+       segfault reported by Andre by changing PyErr_SetString invokations
+       into pgconn_set_critical. the problem was that the python
+       interpreter simply segfaults when we touch its internal data (like
+       exception message) inside an ALLOW_THREADS wrapper.
+
+       * now that we are 100% DBAPI-2.0 compliant is time for the
+       one-dot-o release (at last!) Para-pa-pa! This one is tagged
+       PSYCOPG_0_99_1 but you can call it 1.0pre1, if you better like. 
+       (A very long text just to say 'Release 0.99.1')
+
+       * typemod.[ch]: to reach complete DBAPI-2.0 compliance we
+       introduce some new objects returned by the constructors Date(),
+       Time(), Binary(), etc. Those objects are module-to-database only,
+       the type system still takes care of the database-to-python
+       conversion.
+
+2001-06-01  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 0.5.5.
+
+       * module.h: better error message when trying to commit on a
+       cursor derived from serialized connection.
+       
+       * ZPsycopgDA/db.py (DB.close): now self.cursor is set to None when
+       the connection is closed.
+
+       * module.c (initpsycopg): added missing (sic) DBAPI module
+       parameters (paramstyle, apilevel, threadsafety, etc...)
+
+2001-05-24  Michele Comitini  <mcm@initd.net>
+
+       * ZPsycopgDA: Support for Zope's internal DateTime, option
+       to leave mxDateTime is available on the management interface so
+       to switch with little effort :).
+
+       * cursor.c: more aggressive cleanup of postgres results
+       to avoid the risk of memory leaking.
+
+       * typeobj.c, connection.c: deleted some Py_INCREF which
+       wasted memory.
+
+2001-05-18  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 0.5.4.
+
+2001-05-17  Michele Comitini  <mcm@initd.net>
+
+       * ZPsycopgDA/db.py: The connection closed by the management
+       interface of zope now raises error instead of reopening itself.
+
+       * cursor.c (psyco_curs_close):  does not try to free the cursor
+       list, as it caused a segfault on subsequent operations on the same
+       cursor.
+
+2001-05-07  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 0.5.3.
+       
+       * Merged in changes from me and mcm.
+
+2001-05-06  Michele Comitini  <mcm@initd.net>
+
+       * ZPsycopgDA/db.py (DB.close): Fixes a bug report by Andre
+       Shubert, which was still open since there was a tiny typo in
+       method definition.
+
+       * ZPsycopgDA/DA.py (Connection.sql_quote__): overriding standard
+       sql_quote__ method to provide correct quoting (thank to Philip
+       Mayers and Casey Duncan for this bug report).
+
+2001-05-04  Federico Di Gregorio  <fog@debian.org>
+
+       * ZPsycopgDA/db.py: added .close() method (as suffested by Andre
+       Schubert.)
+
+2001-05-04  Michele Comitini  <mcm@initd.net>
+
+       * module.h: working on a closed object now raises an
+       InterfaceError.
+
+       * ZPsycopgDA/db.py: fixed problems with dead connections detection.
+
+       * ZPsycopgDA/__init__.py: corrected SOFTWARE_HOME bug for zope
+       icon.
+
+2001-05-04  Federico Di Gregorio  <fog@debian.org>
+
+       * examples/thread_test.py: now that the serialization bug is
+       fixed, it is clear that thread_test.py is bugged! added a commit()
+       after the creation of the first table to avoid loosing it on the
+       exception raised by the CREATE of an existing table_b.
+
+2001-05-03  Federico Di Gregorio  <fog@debian.org>
+
+       * connection.c (psyco_conn_cursor): reverted to old locking
+       policy, the new caused a nasty deadlock. apparently the multiple
+       connection problem has been solved as a side-effect of the other
+       fixes... (?!)
+
+       * module.h: removes stdkeeper field from connobject, we don't need
+       it anymore.
+
+       * cursor.c (dispose_pgconn): now sets self->keeper to NULL to
+       avoid decrementing the keeper refcnt two times when the cursor is
+       first closed and then destroyed.
+
+       * connection.c (psyco_conn_cursor): fixed little bug in cursor
+       creation: now the connection is locked for the entire duration of
+       the cursor creation, to avoid a new cursor to be created with a
+       new keeper due to a delay in assigning the stdmanager cursor.
+
+       * cursor.c: added calls to pgconn_set_critical() and to
+       EXC_IFCRITICAL() where we expect problems. Still segfaults but at
+       least raise an exception...
+       
+       * cursor.c (psyco_curs_autocommit): added exception if the
+       cursor's keeper is shared between more than 1 cursor.
+
+       * module.h (EXC_IFCRITICAL): added this macro that call
+       pgconn_resolve_critical) on critical errors.
+
+       * cursor.c (alloc_keeper): added check for pgres == NULL. 
+
+       * cursor.c (psyco_curs_destroy): merged psyco_curs_destroy() and
+       psyco_curs_close(): now both call _psyco_curs_close() and destroy
+       does only some extra cleanup.
+
+2001-05-03  Michele Comitini  <mcm@initd.net>
+
+       * ZPsycopgDA/db.py: Some cleanup to bring the zope product up to
+       date with the python module.  Some bugs found thanks to Andre
+       Schubert.  Now the ZDA should rely on the new serialized version
+       of psycopg.
+
+       * cursor.c: while looking for problems in the ZDA some come out
+       here, with the inability to handle dropping connection correctly.
+       This leads to segfaults and is not fixed yet for lack of time.
+       Some problems found in cursors not willing to share the same
+       connection even if they should.  Hopefully it should be fixed
+       soon.
+
+2001-04-26  Federico Di Gregorio  <fog@debian.org>
+
+       * fixed bug reported by Andre Schubert by adding a new cast
+       function for long integers (int8 postgresql type.) at now they are
+       converted to python LongIntegers: not sure f simply convert to
+       floats.
+
+       * michele applied patch from Ivo van der Wijk to make zpsycopgda
+       behave better when INSTANCE_HOME != SOFTWARE_HOME.
+
+       * cursor.c (_psyco_curs_execute): also fill the 'columns' field.
+
+       * module.h: added a 'columns' field to cursobject, to better
+       support the new dictionary fetch functions (dictfetchone(),
+       dictfetchmany(), dictfetchall().)
+
+       * cursor.c: added the afore-mentioned functions (function names
+       are not definitive, they will follow decisions on the DBAPI SIG.)
+
+2001-04-03  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 0.5.1.
+
+       * mcm fixed a nasty bug by correcting a typo in module.h.
+
+2001-03-30  Federico Di Gregorio  <fog@debian.org>
+
+       * module.c (psyco_connect): added `serialized' named argument to
+       the .connect() method (takes 1 or 0 and initialize the connection
+       to the right serialization state.)
+
+       * Makefile.pre.in (dist): fixed little bug, a missing -f argument
+       to rm.
+
+       * examples/thread_test.py: removed all extension cruft.
+
+       * examples/thread_test_x.py: this one uses extensions like the
+       per-cursor commit, autocommit, etc.
+
+       * README (psycopg): added explanation on how .serialize() works. 
+
+       * connection.c (psyco_conn_serialize): added cursor serialization
+       and .serialize() method on the connection object. now we are
+       definitely DBAPI-2.0 compliant.
+
+2001-03-20  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (_psyco_curs_execute): replaced some fields in
+       description with None, as suggested on the DB-SIG ML.
+
+       * something like one hundred of little changes to allow cursors
+       share the same postgres connection. added connkeeper object and
+       pthread mutexes (both in connobject and connkeeper.) apparently it
+       works. this one will be 0.5.0, i think.
+
+2001-03-19  Michele Comitini  <mcm@initd.net>
+
+       * cursor.c: added mutexes, they do not interact well with python
+       threads :(.
+
+2001-03-16  Michele Comitini  <mcm@initd.net>
+
+       * ZPsycopgDA/db.py (ZDA): some fixes in table browsing.
+
+2001-03-16  Federico Di Gregorio  <fog@debian.org>
+
+       * suite/tables.postgresql (TABLE_DESCRIPTIONS): fixed some typos
+       introduced by copying by hand the type values from pg_type.h.
+
+       * suite/*: added some (badly) structured code to test for
+       DBAPI-2.0 compliance.
+       
+       * cursor.c (pgconn_notice_callback): now the NOTICE processor only
+       prints NOTICEs when psycopg has been compiled with the
+       --enable-devel switch. 
+
+       * connection.c: removed 'autocommit' attribute, now is a method as
+       specified in the DBAPI-2.0 document.
+
+2001-03-15  Federico Di Gregorio  <fog@debian.org>
+
+       * connection.c (curs_commitall): splitted for cycle in two to
+       avoid the "bad snapshot" problem.
+
+2001-03-14  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 0.4.6.
+       
+       * cursor.c (_psyco_curs_execute): fixed nasty bug, there was an
+       free(query) left from before the execute/callproc split.
+
+       * Preparing for 0.4.6.
+
+2001-03-13  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (psyco_curs_execute): fixed some memory leaks in
+       argument parsing (the query string was not free()ed.)
+       (psyco_curs_callproc): implemented callproc() method on cursors.
+       (_psyco_curs_execute): this is the function that does the real
+       stuff for callproc() and execute().
+       (pgconn_notice_*): added translation of notices into python
+       exceptions (do we really want that?) 
+
+       * configure.in: removed some cruft (old comments and strncasecmp()
+       check)
+
+2001-03-12  Federico Di Gregorio  <fog@debian.org>
+
+       * examples/thread_test.py: added moronic argument parsing: now you
+       can give the dsn string on the command line... :(
+
+       * Release 0.4.5.
+
+2001-03-10  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (request_pgconn): added code to set datestyle to ISO on
+       new connections (many thanks to Yury <yura@vpcit.ru> for the code,
+       i changed it just a little bit to raise an exception on error.)
+
+2001-03-09  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 0.4.4.
+
+       * ZPsycopgDA/db.py: michele fixed a nasty bug here. 
+
+2001-03-08  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 0.4.3.
+
+2001-03-07  Federico Di Gregorio  <fog@debian.org>
+
+       * Makefile.pre.in (dist): typeobj_builtins.c included for people
+       without pg_type.h. if you encounter type-casting problems like
+       results cast to the wrong type, simply "rm typeobj_builtins.c" and
+       rebuild.
+
+       * typeobj.c (psyco_*_cast): removed RETURNIFNULL() macro from all
+       the builtin casting functions. (psyco_STRING_cast) does not create
+       a new string anymore, simply Py_INCREF its argument and return it.
+
+       * cursor.c (psyco_curs_fetchone): removed strdup() call. added
+       PQgetisnull() test to differentiate between real NULLs and empty
+       strings.
+
+       * Removed cursor.py (mcm, put tests in examples) and fixed some
+       typos in the dtml code.
+
+2001-03-04  Michele Comitini  <mcm@initd.net>
+
+       * examples/commit_test.py: Modifications to test argument passing
+       and string substitution to cursor functions, nothing more.
+
+       * ZPsycopgDA/db.py: now it exploits some of the good features of
+       the psycopg driver, such as connection reusage and type
+       comparison.  Code is smaller although it handles (and
+       reports) errors much better.
+
+       * cursor.c: corrected a bug that left a closed cursor in the
+       cursor list of the connection.  Now cursors are removed from the
+       lists either when they are close or when they are destroyed.
+       Better connection (TCP) error reporting and handling.
+
+
+2001-03-02  Federico Di Gregorio  <fog@debian.org>
+
+       * examples commit_test.py: added code to test autocommit.
+       
+       * examples/thread_test.py (ab_select): modified select thread to
+       test autocommit mode.
+
+       * Release 0.4.1.
+       
+       * module.h, connection.c, cursor.c: added autocommit support.
+
+2001-02-28  Federico Di Gregorio  <fog@debian.org>
+
+       * Release 0.4.
+
+2001-02-27  Michele Comitini  <mcm@initd.net>
+
+       * cursor.py: cut some unuseful code in psyco_curs_fetchmany() and
+       psyco_curs_fetchall() inserted an assert in case someting goes
+       wrong.
+
+2001-02-27  Federico Di Gregorio  <fog@debian.org>
+
+       * debian/*: various changes to build both the python module and
+       the zope db adapter in different packages (respectively
+       python-psycopg and zope-psycopgda.)  
+
+       * examples/type_test.py: better and more modular tests. 
+
+       * typeobj.c: added DATE, TIME, DATETIME, BOOLEAN, BINARY and ROWID
+       types. (RETURNIFNULL) added NULL-test to builtin conversion
+       functions (using the RETURNIFNULL macro.)
+
+2001-02-26  Federico Di Gregorio  <fog@debian.org>
+
+       * releasing 0.3 (added NEWS file.)
+
+2001-02-26  Michele Comitini  <mcm@initd.net>
+
+       * cursor.c: fetchmany() some cleanup done.
+
+       * ZPsycopgDA/db.py, ZPsycopgDA/__init__.py, : fixes to make the
+       ZDA work some way.  WARNING WARNING WARNING the zda is still
+       alpha code, but we need some feed back on it so please give it
+       a try.
+       
+2001-02-26  Federico Di Gregorio  <fog@debian.org>
+
+       * typeobj.c (psyco_STRING_cast): fixed bad bad bad bug. we
+       returned the string without coping it and the type-system was more
+       than happy to Py_DECREF() it and trash the whole system. fixed at
+       last!
+
+       * module.h (Dprintf): added pid to every Dprintf() call, to
+       facilitate multi-threaded debug.
+
+2001-02-26  Michele Comitini  <mcm@initd.net>
+
+       * module.c: added code so that DateTime package need not to be
+       loaded to have mxDateTime.  This should avoid clashing with
+       DateTime from the zope distribution.
+
+       * cursor.c: setting error message in fetchmany when no more tuples
+       are left. This has to be fixed in fetch and fetchall to.
+
+2001-02-26  Federico Di Gregorio  <fog@debian.org>
+
+       * configure.in: stepped up version to 0.3, ready to release
+       tomorrow morning. added check for path to DateTime module. 
+
+       * examples/usercast_test.py: generate some random boxes and
+       points, select the boxes with at least one point inside and print
+       them converting the PostgeSQL output using a user-specified cast
+       object. nice. 
+
+2001-02-24  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (psyco_curs_fetchone): now an error in the python
+       callback when typecasting results raise the correct exception.
+
+       * typeobj.c (psyco_DBAPITypeObject_call): removed extra Py_INCREF().
+
+2001-02-23  Federico Di Gregorio  <fog@debian.org>
+
+       * replaced every single instance of the string 'pgpy' with 'psyco'
+       (this was part of the general cleanup.)
+       
+       * type_test.py: added this little test program to the distribution
+       (use the new_type() method to create new instances of the type
+       objects.)  
+
+       * typeobj.c: general cleanup. fixed some bugs related to
+       refcounting (again!)
+
+       * cursor.c: general cleanup. (request_pgconn) simplified by adding
+       a support function (_extract_pgconn.)
+
+       * connection.c: general cleanup. replaced some ifs with asserts()
+       in utility functions when errors depend on programming errors and
+       not on runtime exceptions. (pgpy_conn_destroy) fixed little bug
+       when deleting available connections from the list.
+
+       * module.h: general cleanup.
+
+       * typeobj.h: general cleanup, better comments, made some function
+       declarations extern. 
+
+       * module.c: general cleanup, double-checked every function for
+       memory leaks. (pgpy_connect) removed unused variable 'connection'.
+
+2001-02-22  Federico Di Gregorio  <fog@debian.org>
+
+       * typeobj.c: fixed lots of bugs, added NUMBER type object. now the
+       basic tests in type_test.py work pretty well.
+
+       * cursor.c (pgpy_curs_fetchmany): fixed little bug, fetchmany()
+       reported one less row than available.
+
+       * fixed lots of bugs in typeobj.c, typeobj.h, cursor.c. apparently
+       now the type system works. it is time to clean up things a little
+       bit.
+
+2001-02-21  Federico Di Gregorio  <fog@debian.org>
+
+       * typeobj.c: separated type objects stuff from module.c
+       
+       * typeobj.h: separated type objects stuff from module.h 
+
+2001-02-19  Federico Di Gregorio  <fog@debian.org>
+
+       * cursor.c (pgpy_curs_fetchmany): now check size and adjust it to
+       be lesser or equal than the nuber of available rows.
+
+2001-02-18  Michele Comitini  <mcm@initd.net>
+
+       * module.c, module.h: added optional args maxconn and minconn to
+       connection functions
+
+       * cursor.c: better error checking in request_pgconn.
+
+       * connection.c: changed new_connect_obj to take as optional args
+       maxconn and minconn. Added the corresponding ro attributes to
+       connection objects.
+
+       * cursor.py: added some code to stress test cursor reusage.
+
+       * cursor.c: some fixes on closed cursors.
+
+       * connection.c: corrections on some assert calls.
+
+2001-02-16  Federico Di Gregorio  <fog@debian.org>
+
+       * configure.in: added --enable-priofile sqitch. changed VERSION to
+       0.2: preparing for a new release.
+
+       * cursor.c: added a couple of asserts.
+
+2001-02-16  Michele Comitini  <mcm@initd.net>
+
+       * cursor.c, connection.c: fixed the assert problem: assert must
+       take just the value to be tested! no assignemente must be done in
+       the argument of assert() otherwise is wiped when NDEBUG is set.
+
+       * module.h: some syntax error fixed.  Error in allocating a tuple
+       corrected in macro DBAPITypeObject_NEW().
+       
+       * module.c: pgpy_DBAPITypeObject_init() is not declared static anymore.
+
+       * cursor.c: executemany() now does not create and destroy tuples
+       for each list item, so it is much faster.
+
+2001-02-14  Michele Comitini  <mcm@initd.net>
+
+       * cursor.c:  added again Py_DECREF on the cpcon after disposing
+       it.  assert() with -DNDEBUG makes the driver segfault while it
+       should not.
+       
+
+2001-02-13  Federico Di Gregorio  <fog@debian.org>
+
+       * some of the memory leak were memprof errors, bleah. resumed some
+       old code, fixed segfault, fixed other bugs, improved speed. almost
+       ready for a new release.
+       
+       * connection.c (pgpy_conn_destroy): replaced some impossible ifs
+       with aseert()s.
+
+       * cursor.c (pgpy_curs_close): added Py_DECREF() to
+       self->descritpion to prevent a memory leak after an execute().
+
+       * connection.c (pgpy_conn_destroy): always access first element of
+       lists inside for cycles because removing items from the list makes
+       higher indices invalid.
+
+       * cursor.c (dispose_pgconn): fixed memory leak, there was a
+       missing Py_DECREF() after the addition of the C object wrapping
+       the postgresql connection to the list of available connections.
+
+       * cursor.c (dispose_pgconn): fixed another memory leak: an
+       orphaned cursor should call PQfinish() on its postgresql
+       connection because it has no python connection to give the
+       postgresql ine back.
+
+       * cursor.c (pgpy_curs_execute): added Py_DECREF() of description
+       tuple after adding it to self->description. this one fixes the
+       execute() memory leak.
+       
+       * cursor.c (pgpy_curs_fetchall): added missing Py_DECREF() on row
+       data (obtained from fetchone().) this fixes the last memory leak.
+       (thread_test.py now runs without leaking memory!)
+
+2001-02-12  Federico Di Gregorio  <fog@debian.org>
+
+       * INSTALL: removed wok cruft from head of this file.
+
+       * debian/rules: debianized the sources. python-psycopg is about to
+       enter debian. mxDateTime header locally included until the
+       maintainer of python-mxdatetime includes them in his package
+       (where they do belong.)
+
+       * autogen.sh: added option --dont-run-configure. 
+
+2001-02-09  Federico Di Gregorio  <fog@debian.org>
+
+       * module.c (initpsycopg): changed name of init function to match
+       new module name (also changed all the exception definitions.)
+
+       * README: updated psycopg description (we have a new name!)
+
+       * Ready for 0.1 release.
+
+2001-02-07  Michele Comitini  <mcm@initd.net>
+
+       * cursor.c: now executemany takes sequences and not just
+       tuples 
+
+2001-02-07  Federico Di Gregorio  <fog@debian.org>
+
+       * Makefile.pre.in: now dist target includes test programs
+       (thread_test.py) and README and INSTALL files. 
+
+       * configure.in: changed --with-devel to --enable-devel. little
+       cosmetical fixes to the option management.
+       
+       * connection.c, module.c, cursor.c, module.h: removed 'postgres/'
+       from #include directive. it is ./configure task to find the right
+       directory.
+
+       * thread_test.py: added thread testing program.
+
+2001-02-07  Michele Comitini  <mcm@initd.net>
+
+       * cursor.c: added code to allow threads during PQexec() calls.
+       
+       * cursor.c: added begin_pgconn to rollback() and commit()
+       so that the cursror is not in autocommit mode.
+
+       * cursor.c: added rollback() and commit() methods to cursor
+       objects.
+
+
+2001-02-07  Federico Di Gregorio  <fog@debian.org>
+
+       * connection.c (pgpy_conn_destroy): always delete item at index
+       0 and not i (because items shift in the list while deleting and
+       accessing items at len(list)/2 segfaults.)
+
+2001-02-07  Michele Comitini  <mcm@initd.net>
+
+       * connection.c: added some more checking to avoid
+       clearing of already cleared pgresults.  Calling curs_closall()
+       in conn_destroy() since cursors have to live even without
+       their parent connection, otherwise explicit deletion of
+       object referencing to those cursors can cause arbitrary code
+       to be executed.
+
+       * cursor.c: some more checking to avoid trying to close
+       already close pgconnections.
+
+2001-02-06  Federico Di Gregorio  <fog@debian.org> 
+
+       * Makefile.pre.in (CFLAGS): added -Wall to catch bad programming
+       habits. 
+
+       * cursor.c, connection.c: lots of fixes to the destroy stuff. now
+       all the cursor are destroyed *before* the connection goes away.
+
+       * cursor.c (request_pgconn): another idiot error done by not
+       replacing dsn with owner_conn->dsn. fixed.
+       (dispose_pgconn): commented if to guarantee that the connection is
+       returned to the pool of available connections.
+
+       * merged changes done by mcm.
+
+       * cursor.c: general cleanup and better debugging/error
+       messages. changed xxx_conn into xxx_pgconn where still
+       missing. some pretty big changes to the way pgconn_request()
+       allocates new connections.
+
+       * connection.c: removed all 'register' integers. obsolete, gcc
+       does a much better job optimizing cycles than a programmer
+       specifying how to use registers. 
+
+       * module.h: some general cleanup and better definition of DPrintf
+       macro. now the DEBUG variable can be specified at configure time by
+       the --with-devel switch to ./configure.
+
+2001-02-02  Michele Comitini  <mcm@initd.net>
+
+       * cursor.c (Repository): Added functions for managing a connection
+       pool. Segfaults.
+
+       * configure.in (Repository): removed check for mxdatetime headers.
+
+2001-01-24  Federico Di Gregorio  <fog@debian.org>
+
+       * first checkout from shinning new init.d cvs.
+
+       * autotoolized build system. note that the mx headers are missing
+       from the cvs, you should get them someplace else (this is the
+       right way to do it, just require the headers in the configure
+       script.)
+
+2001-01-21  Michele Comitini  <mcm@initd.net>
+
+       * cursor.c (Repository): commit, abort, begin functions now check
+       the right exit status of the command.
+
+       * connection.c (Repository): working commit() and rollback()
+       methods.
+
+2001-01-20  Michele Comitini  <mcm@initd.net>
+
+       * module.h (Repository): added member to cursor struct to handle
+       queries without output tuples.
+
+       * cursor.c (Repository): new working methods: executemany,
+       fetchone, fetchmany, fetchall.
+
+2001-01-18  Michele Comitini  <mcm@initd.net>
+
+       * cursor.c (Repository): close working. destroy calling close.
+       close frees pg structures correctly.
+
+       * connection.c (Repository): close method working.  destroy seems
+       working.
+
+2001-01-17  Michele Comitini  <mcm@initd.net>
+
+       * cursor.c (Repository): now each python cursor has its own
+       connection.  Each cursor works in a transaction block.
+
+       * connection.c (Repository): added cursor list to connection
+       object
+
+2001-01-14  Michele Comitini  <mcm@initd.net>
+
+       * cursor.c (Repository): Beginning of code to implement cursor
+       functionalities as specified in DBA API 2.0, through the use of
+       transactions not cursors.
+
+       * connection.c (Repository): Added some error checking code for pg
+       connection (will be moved to cursor?).
+
+2001-01-13  Michele Comitini  <mcm@initd.net>
+
+       * connection.c (Repository): Added error checking in connection
+       code to fail if connection to the db could not be opened.
+
+       * module.h (Repository): New macro to help creating
+       DBAPITypeObjects.
+
+       * module.c (Repository): DBAPITypeObject __cmp__ function is now
+       very simplified using recursion.
+
+       * module.h (Repository): "DBAPIObject" changed to
+       "DBAPITypeObject".
+
+       * module.c (Repository): Fixes for coerce function of DBAPIObjects
+       by Federico Di Gregorio <fog@initd.net>.
+       (Repository): Clean up and better naming for DBAPITypeObjects.
+
+2001-01-08  Michele Comitini  <mcm@initd.net>
+
+       * module.c (Repository): Corrected the exception hierarcy
+
+       * connection.c (Repository): Begun to use the connection objects
+       of libpq
+
+2001-01-07  Michele Comitini  <mcm@initd.net>
+
+       * module.c (Repository): Added the Date/Time functions.
+
+2001-01-06  Michele Comitini  <mcm@initd.net>
+
+       * cursor.c (Repository): Skeleton of cursor interface.  All
+       methods and attributes of cursor objects are now available
+       in python.  They do nothing now.
+
+2001-01-05  Michele Comitini  <mcm@initd.net>
+
+       * module.c (Repository): Test version; module loaded with 
+       exception defined.
+       
+2001-01-05  Michele Comitini  <mcm@initd.net>
+
+       * Setup.in (Repository): Setup file.
+
+       * Makefile.pre.in (Repository): from the python source.
+
+2001-01-05  Michele Comitini  <mcm@initd.net>
+
+       * module.c: Written some code for defining exceptions.
+       
+       * module.h: Static variable for exceptions.
+       
+2001-01-04  Michele Comitini  <mcm@initd.net>
+
+       * Changelog: pre-release just a few prototypes to get started.
+       
+
diff --git a/trunk/psycopg2/doc/HACKING b/trunk/psycopg2/doc/HACKING
new file mode 100644 (file)
index 0000000..f60474c
--- /dev/null
@@ -0,0 +1,43 @@
+General information
+*******************
+
+Some help to people wanting to hack on psycopg. First of all, note that
+*every* function in the psycopg module source code is prefixed by one of the
+following words:
+
+    psyco is used for function directly callable from python (i.e., functions
+        in the psycopg module itself.) the only notable exception is the
+        source code for the module itself, that uses "psyco" even for C-only
+        functions.
+
+    conn is used for functions related to connection objects.
+
+    curs is used for functions related to cursor objects.
+
+    typecast is used for typecasters and utility function related to
+        typecaster creation and registration.
+
+Pythonic definition of types and functions available from python are defined
+in *_type.c files. Internal functions, callable only from C are located in
+*_int.c files and extensions to the DBAPI can be found in the *_ext.c files.
+
+
+Patches
+*******
+
+If you submit a patch, please send a diff generated with the "-u" switch.
+Also note that I don't like that much cosmetic changes (like renaming
+already existing variables) and I will rewrap the patch to 78 columns
+anyway, so it is much better if you do that beforehand.
+
+
+The type system
+***************
+
+Simple types, like integers and strings, are converted to python base types
+(the conversion functions are in typecast_base.c). Complex types are
+converted to ad-hoc types, defined in the typeobj_*.{c,h} files. The
+conversion function are in the other typecast_*.c files. typecast.c defines
+the basic utility functions (available through the psycopg module) used when
+defining new typecasters from C and python.
+
diff --git a/trunk/psycopg2/doc/SUCCESS b/trunk/psycopg2/doc/SUCCESS
new file mode 100644 (file)
index 0000000..9ae91f5
--- /dev/null
@@ -0,0 +1,114 @@
+From:  Jack Moffitt <jack@xiph.org>
+To:    Psycopg Mailing List <psycopg@lists.initd.org>
+Subject:       Re: [Psycopg] preparing for 1.0
+Date:  22 Oct 2001 11:16:21 -0600      
+
+www.vorbis.com is serving from 5-10k pages per day with psycopg serving 
+data for most of that.  
+
+I plan to use it for several of our other sites, so that number will
+increase.
+
+I've never had a single problem (that wasn't my fault) besides those
+segfaults, and those are now gone as well, and I've been using psycopg
+since June (around 0.99.2?).
+
+jack.
+
+
+From:  Yury Don <gercon@vpcit.ru>
+To:    Psycopg Mailing List <psycopg@lists.initd.org>
+Subject:       Re: [Psycopg] preparing for 1.0
+Date:  23 Oct 2001 09:53:11 +0600      
+
+We use psycopg and psycopg zope adapter since fisrt public
+release (it seems version 0.4). Now it works on 3 our sites and in intranet
+applications. We had few problems, but all problems were quckly
+solved. The strong side of psycopg is that it's code is well organized
+and easy to understand. When I found a problem with non-ISO datestyle in first
+version of psycopg, it took for me 15 or 20 minutes to learn code and
+to solve the problem, even thouth my knowledge of c were poor.
+
+BTW, segfault with dictfetchall on particular data set (see [Psycopg]
+dictfetchXXX() problems) disappeared in 0.99.8pre2.
+
+-- 
+Best regards,
+Yury Don
+
+
+From:  Tom Jenkins <tjenkins@devis.com>
+To:    Federico Di Gregorio <fog@debian.org>
+Cc:    Psycopg Mailing List <psycopg@lists.initd.org>
+Subject:       Re: [Psycopg] preparing for 1.0
+Date:  23 Oct 2001 08:25:52 -0400
+       
+The US Govt Department of Labor's Office of Disability Employment
+Policy's DisabilityDirect website is run on zope and zpsycopg.
+
+
+From:  Scott Leerssen <sleerssen@racemi.com>
+To:    Federico Di Gregorio <fog@debian.org>
+Subject:       Re: [Psycopg] preparing for 1.0
+Date:  23 Oct 2001 09:56:10 -0400      
+
+Racemi's load management software infrastructure uses psycopg to handle
+complex server allocation decisions, plus storage and access of
+environmental conditions and accounting records for potentially
+thousands of servers.  Psycopg has, to this point, been the only
+Python/PostGreSQL interface that could handle the scaling required for
+our multithreaded applications.
+
+Scott
+
+
+From:  Andre Schubert <andre.schubert@geyer.kabeljournal.de>
+To:    Federico Di Gregorio <fog@debian.org>
+Cc:    Psycopg Mailing List <psycopg@lists.initd.org>
+Subject:       Re: [Psycopg] preparing for 1.0
+Date:  23 Oct 2001 11:46:07 +0200      
+
+i have changed the psycopg version to 0.99.8pre2 on all devel-machines
+and all segfaults are gone. after my holiday i wil change to 0.99.8pre2 
+or 1.0 on our production-server.
+this server contains several web-sites which are all connected to
+postgres over ZPsycopgDA.
+
+thanks as
+
+
+From:  Fred Wilson Horch <fhorch@ecoaccess.org>
+To:    <psycopg@lists.initd.org>
+Subject:       [Psycopg] Success story for psycopg
+Date:  23 Oct 2001 10:59:17 -0400
+       
+Due to various quirks of PyGreSQL and PoPy, EcoAccess has been looking for
+a reliable, fast and relatively bug-free Python-PostgreSQL interface for
+our project.
+
+Binary support in psycopg, along with the umlimited tuple size in
+PostgreSQL 7.1, allowed us to quickly prototype a database-backed file
+storage web application, which we're using for file sharing among our
+staff and volunteers.  Using a database backend instead of a file system
+allows us to easily enrich the meta-information associated with each file
+and simplifies our data handling routines.
+
+We've been impressed by the responsiveness of the psycopg team to bug
+reports and feature requests, and we're looking forward to using psycopg
+as the Python interface for additional database-backed web applications.
+
+Keep up the good work!
+-- 
+Fred Wilson Horch                       mailto:fhorch@ecoaccess.org
+Executive Director, EcoAccess           http://ecoaccess.org/
+
+
+From:  Damon Fasching <fasching@design.lbl.gov>
+To:    Michele Comitini <mcm@glisco.it>
+Cc:    fog@debian.org
+Subject:       Re: How does one create a database within Python using psycopg?
+Date:  25 Feb 2002 17:39:41 -0800
+
+[snip]
+btw I checked out 4 different Python-PostgreSQL packages.  psycopg is the
+only one which built and imported w/o any trouble!  (At least for me.)
diff --git a/trunk/psycopg2/doc/TODO b/trunk/psycopg2/doc/TODO
new file mode 100644 (file)
index 0000000..b20b276
--- /dev/null
@@ -0,0 +1,33 @@
+TODO list for psycopg 2 or later
+********************************
+
+Move items to the DONE section only after writing a test for the
+implementation. Also add a note on how the item was resolved.
+(Obviously I was joking about the test..)
+
+* Find a better way to compile the type-casting code instead of including it
+   in typecast.c directy. (Including is not that bad, but the need to touch
+   psycopg/typecast.c every time is bad bad bad.)
+
+* executemany() should _not_ take the async flag, remove it and force multiple
+   queries to be synchronous.
+
+* Fix all the docstrings.
+
+* Support the protocols API fully.
+
+* Unify the common code in typecast_datetime.c and typecast_mxdatetime.c.
+
+* Port typecasters to new-style classes.
+
+* Write a complete postgresql<->python encodings table.
+
+* Implement binary typecasters (should be easy, but it will take time.)
+
+DONE
+====
+
+* Convert type-casters to new-style types in Python 2.2+.
+
+* callproc() never worked, fix it or remove it and raise right exception.
+   [Removed callproc code, now an exception is raised.]
diff --git a/trunk/psycopg2/doc/api-screen.css b/trunk/psycopg2/doc/api-screen.css
new file mode 100644 (file)
index 0000000..22e8f7e
--- /dev/null
@@ -0,0 +1,138 @@
+/* Based on the Epydoc "default.css"\r
+** with some missing reST-related classes\r
+** and Python syntax support (from SilverCity)\r
+*/\r
+\r
+/* Body color */ \r
+body               { background: #ffffff; color: #000000; } \r
\r
+/* Tables */ \r
+table.summary, table.details, table.index\r
+                   { background: #e8f0f8; color: #000000; } \r
+tr.summary, tr.details, tr.index\r
+                   { background: #70b0f0; color: #000000;  \r
+                     text-align: left; font-size: 120%; } \r
+tr.group           { background: #c0e0f8; color: #000000;\r
+                     text-align: left; font-size: 120%;\r
+                     font-style: italic; } \r
+\r
+/* Documentation page titles */\r
+h2.module          { margin-top: 0.2em; }\r
+h2.class           { margin-top: 0.2em; }\r
\r
+/* Headings */\r
+h1.heading         { font-size: +140%; font-style: italic;\r
+                     font-weight: bold; }\r
+h2.heading         { font-size: +125%; font-style: italic;\r
+                     font-weight: bold; }\r
+h3.heading         { font-size: +110%; font-style: italic;\r
+                     font-weight: normal; }\r
+                    \r
+/* Base tree */\r
+pre.base-tree      { font-size: 80%; margin: 0; }\r
+\r
+/* TOC */\r
+p.toc { margin: 0; }\r
+\r
+/* Details Sections */\r
+table.func-details { background: #e8f0f8; color: #000000;\r
+                     border: 2px groove #c0d0d0;\r
+                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }\r
+h3.func-detail     { background: transparent; color: #000000;\r
+                     margin: 0 0 1em 0; }\r
+\r
+table.var-details  { background: #e8f0f8; color: #000000;\r
+                     border: 2px groove #c0d0d0;\r
+                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }\r
+h3.var-details     { background: transparent; color: #000000;\r
+                     margin: 0 0 1em 0; }\r
+\r
+/* Function signatures */\r
+.sig               { background: transparent; color: #000000;\r
+                     font-weight: bold; }  \r
+.sig-name          { background: transparent; color: #006080; }  \r
+.sig-arg, .sig-kwarg, .sig-vararg\r
+                   { background: transparent; color: #008060; }  \r
+.sig-default       { background: transparent; color: #602000; }  \r
+.summary-sig       { background: transparent; color: #000000; }  \r
+.summary-sig-name  { background: transparent; color: #204080; }\r
+.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg\r
+                   { background: transparent; color: #008060; }  \r
+\r
+/* Doctest blocks */\r
+.py-src            { background: transparent; color: #000000; }\r
+.py-prompt         { background: transparent; color: #005050;\r
+                     font-weight: bold;}\r
+.py-string         { background: transparent; color: #006030; }\r
+.py-comment        { background: transparent; color: #003060; }\r
+.py-keyword        { background: transparent; color: #600000; }\r
+.py-output         { background: transparent; color: #404040; }\r
+div.code-block,\r
+pre.literal-block,\r
+pre.doctestblock   { background: #f4faff; color: #000000; \r
+                     padding: .5em; margin: 1em;\r
+                     border: 1px solid #708890; }\r
+table pre.doctestblock\r
+                   { background: #dce4ec; color: #000000; \r
+                     padding: .5em; margin: 1em;\r
+                     border: 1px solid #708890; }\r
+div.code-block     { font-family: monospace; }\r
+\r
+/* Variable values */\r
+pre.variable       { background: #dce4ec; color: #000000;\r
+                     padding: .5em; margin: 0;\r
+                     border: 1px solid #708890; }\r
+.variable-linewrap { background: transparent; color: #604000; }\r
+.variable-ellipsis { background: transparent; color: #604000; }\r
+.variable-quote    { background: transparent; color: #604000; }\r
+.re                { background: transparent; color: #000000; }\r
+.re-char           { background: transparent; color: #006030; }\r
+.re-op             { background: transparent; color: #600000; }\r
+.re-group          { background: transparent; color: #003060; }\r
+.re-ref            { background: transparent; color: #404040; }\r
+\r
+/* Navigation bar */ \r
+table.navbar       { background: #a0c0ff; color: #0000ff;\r
+                     border: 2px groove #c0d0d0; }\r
+th.navbar          { background: #a0c0ff; color: #0000ff; } \r
+th.navselect       { background: #70b0ff; color: #000000; } \r
+.nomargin          { margin: 0; }\r
+\r
+/* Links */ \r
+a:link             { background: transparent; color: #0000ff; }  \r
+a:visited          { background: transparent; color: #204080; }  \r
+a.navbar:link      { background: transparent; color: #0000ff; \r
+                     text-decoration: none; }  \r
+a.navbar:visited   { background: transparent; color: #204080; \r
+                     text-decoration: none; }  \r
+\r
+/* Admonitions */\r
+div.warning,\r
+div.note                { background-color: #c0e0f8;\r
+                          border: thin solid black;\r
+                          padding: 1em;\r
+                          margin-left: 1em;\r
+                          margin-right: 1em; }\r
+div.warning .first,\r
+div.note .first      { font-family: sans-serif;\r
+                          font-size: 110%;\r
+                          margin-right: 0.5em; }\r
+\r
+/* Lists */\r
+ul { margin-top: 0; }\r
+\r
+/* Python syntax */\r
+.p_character { color: olive; }\r
+.p_classname { color: blue; font-weight: bold; }\r
+.p_commentblock {color: gray; font-style: italic; }\r
+.p_commentline { color: green; font-style: italic; }\r
+.p_default {}\r
+.p_defname { color: #009999; font-weight: bold; }\r
+.p_identifier { color: black; }\r
+.p_number { color: #009999; }\r
+.p_operator { color: black; }\r
+.p_string { color: #7F007F; }\r
+.p_stringeol { color: #7F007F; }\r
+.p_triple { color: #7F0000; }\r
+.p_tripledouble { color: #7F0000; }\r
+.p_word { color: navy; font-weight: bold; }\r
diff --git a/trunk/psycopg2/doc/api/epydoc.css b/trunk/psycopg2/doc/api/epydoc.css
new file mode 100644 (file)
index 0000000..22e8f7e
--- /dev/null
@@ -0,0 +1,138 @@
+/* Based on the Epydoc "default.css"\r
+** with some missing reST-related classes\r
+** and Python syntax support (from SilverCity)\r
+*/\r
+\r
+/* Body color */ \r
+body               { background: #ffffff; color: #000000; } \r
\r
+/* Tables */ \r
+table.summary, table.details, table.index\r
+                   { background: #e8f0f8; color: #000000; } \r
+tr.summary, tr.details, tr.index\r
+                   { background: #70b0f0; color: #000000;  \r
+                     text-align: left; font-size: 120%; } \r
+tr.group           { background: #c0e0f8; color: #000000;\r
+                     text-align: left; font-size: 120%;\r
+                     font-style: italic; } \r
+\r
+/* Documentation page titles */\r
+h2.module          { margin-top: 0.2em; }\r
+h2.class           { margin-top: 0.2em; }\r
\r
+/* Headings */\r
+h1.heading         { font-size: +140%; font-style: italic;\r
+                     font-weight: bold; }\r
+h2.heading         { font-size: +125%; font-style: italic;\r
+                     font-weight: bold; }\r
+h3.heading         { font-size: +110%; font-style: italic;\r
+                     font-weight: normal; }\r
+                    \r
+/* Base tree */\r
+pre.base-tree      { font-size: 80%; margin: 0; }\r
+\r
+/* TOC */\r
+p.toc { margin: 0; }\r
+\r
+/* Details Sections */\r
+table.func-details { background: #e8f0f8; color: #000000;\r
+                     border: 2px groove #c0d0d0;\r
+                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }\r
+h3.func-detail     { background: transparent; color: #000000;\r
+                     margin: 0 0 1em 0; }\r
+\r
+table.var-details  { background: #e8f0f8; color: #000000;\r
+                     border: 2px groove #c0d0d0;\r
+                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }\r
+h3.var-details     { background: transparent; color: #000000;\r
+                     margin: 0 0 1em 0; }\r
+\r
+/* Function signatures */\r
+.sig               { background: transparent; color: #000000;\r
+                     font-weight: bold; }  \r
+.sig-name          { background: transparent; color: #006080; }  \r
+.sig-arg, .sig-kwarg, .sig-vararg\r
+                   { background: transparent; color: #008060; }  \r
+.sig-default       { background: transparent; color: #602000; }  \r
+.summary-sig       { background: transparent; color: #000000; }  \r
+.summary-sig-name  { background: transparent; color: #204080; }\r
+.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg\r
+                   { background: transparent; color: #008060; }  \r
+\r
+/* Doctest blocks */\r
+.py-src            { background: transparent; color: #000000; }\r
+.py-prompt         { background: transparent; color: #005050;\r
+                     font-weight: bold;}\r
+.py-string         { background: transparent; color: #006030; }\r
+.py-comment        { background: transparent; color: #003060; }\r
+.py-keyword        { background: transparent; color: #600000; }\r
+.py-output         { background: transparent; color: #404040; }\r
+div.code-block,\r
+pre.literal-block,\r
+pre.doctestblock   { background: #f4faff; color: #000000; \r
+                     padding: .5em; margin: 1em;\r
+                     border: 1px solid #708890; }\r
+table pre.doctestblock\r
+                   { background: #dce4ec; color: #000000; \r
+                     padding: .5em; margin: 1em;\r
+                     border: 1px solid #708890; }\r
+div.code-block     { font-family: monospace; }\r
+\r
+/* Variable values */\r
+pre.variable       { background: #dce4ec; color: #000000;\r
+                     padding: .5em; margin: 0;\r
+                     border: 1px solid #708890; }\r
+.variable-linewrap { background: transparent; color: #604000; }\r
+.variable-ellipsis { background: transparent; color: #604000; }\r
+.variable-quote    { background: transparent; color: #604000; }\r
+.re                { background: transparent; color: #000000; }\r
+.re-char           { background: transparent; color: #006030; }\r
+.re-op             { background: transparent; color: #600000; }\r
+.re-group          { background: transparent; color: #003060; }\r
+.re-ref            { background: transparent; color: #404040; }\r
+\r
+/* Navigation bar */ \r
+table.navbar       { background: #a0c0ff; color: #0000ff;\r
+                     border: 2px groove #c0d0d0; }\r
+th.navbar          { background: #a0c0ff; color: #0000ff; } \r
+th.navselect       { background: #70b0ff; color: #000000; } \r
+.nomargin          { margin: 0; }\r
+\r
+/* Links */ \r
+a:link             { background: transparent; color: #0000ff; }  \r
+a:visited          { background: transparent; color: #204080; }  \r
+a.navbar:link      { background: transparent; color: #0000ff; \r
+                     text-decoration: none; }  \r
+a.navbar:visited   { background: transparent; color: #204080; \r
+                     text-decoration: none; }  \r
+\r
+/* Admonitions */\r
+div.warning,\r
+div.note                { background-color: #c0e0f8;\r
+                          border: thin solid black;\r
+                          padding: 1em;\r
+                          margin-left: 1em;\r
+                          margin-right: 1em; }\r
+div.warning .first,\r
+div.note .first      { font-family: sans-serif;\r
+                          font-size: 110%;\r
+                          margin-right: 0.5em; }\r
+\r
+/* Lists */\r
+ul { margin-top: 0; }\r
+\r
+/* Python syntax */\r
+.p_character { color: olive; }\r
+.p_classname { color: blue; font-weight: bold; }\r
+.p_commentblock {color: gray; font-style: italic; }\r
+.p_commentline { color: green; font-style: italic; }\r
+.p_default {}\r
+.p_defname { color: #009999; font-weight: bold; }\r
+.p_identifier { color: black; }\r
+.p_number { color: #009999; }\r
+.p_operator { color: black; }\r
+.p_string { color: #7F007F; }\r
+.p_stringeol { color: #7F007F; }\r
+.p_triple { color: #7F0000; }\r
+.p_tripledouble { color: #7F0000; }\r
+.p_word { color: navy; font-weight: bold; }\r
diff --git a/trunk/psycopg2/doc/api/index.html b/trunk/psycopg2/doc/api/index.html
new file mode 100644 (file)
index 0000000..419bbcf
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"\r
+          "DTD/xhtml1-frameset.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title> API Documentation </title>\r
+</head>\r
+<frameset cols="20%,80%">\r
+  <frameset rows="30%,70%">\r
+    <frame src="public/toc.html" name="moduleListFrame" id="moduleListFrame" />\r
+    <frame src="public/toc-everything.html" name="moduleFrame" id="moduleFrame" />\r
+  </frameset>\r
+  <frame src="public/psycopg2-module.html" name="mainFrame" id="mainFrame" />\r
+</frameset>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/__builtin__.list-class.html b/trunk/psycopg2/doc/api/private/__builtin__.list-class.html
new file mode 100644 (file)
index 0000000..c8217a7
--- /dev/null
@@ -0,0 +1,817 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>__builtin__.list</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        Module&nbsp;__builtin__ ::\r
+        Class&nbsp;list\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/__builtin__.list-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.list-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type list</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
+         |\r
+        <strong class="uidshort">list</strong>\r
+</pre><br />\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="psycopg2.extras.DictRow-class.html"><code>DictRow</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>list() -&gt; new list\r
+list(sequence) -&gt; new list initialized from sequence's items</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__add__"></a><span class="summary-sig"><span class="summary-sig-name">__add__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x+y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__contains__"></a><span class="summary-sig"><span class="summary-sig-name">__contains__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return y in x...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__delitem__"></a><span class="summary-sig"><span class="summary-sig-name">__delitem__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return del x[y]...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__delslice__" class="summary-sig-name"><code>__delslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">i</span>,\r
+          <span class="summary-sig-arg">j</span>)</span></code>\r
+<br />\r
+Use of negative indices is not supported.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__eq__"></a><span class="summary-sig"><span class="summary-sig-name">__eq__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x==y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__ge__"></a><span class="summary-sig"><span class="summary-sig-name">__ge__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x&gt;=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__getitem__"></a><span class="summary-sig"><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x[y]...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__getslice__" class="summary-sig-name"><code>__getslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">i</span>,\r
+          <span class="summary-sig-arg">j</span>)</span></code>\r
+<br />\r
+Use of negative indices is not supported.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__gt__"></a><span class="summary-sig"><span class="summary-sig-name">__gt__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x&gt;y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__hash__"></a><span class="summary-sig"><span class="summary-sig-name">__hash__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__iadd__"></a><span class="summary-sig"><span class="summary-sig-name">__iadd__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x+=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__imul__"></a><span class="summary-sig"><span class="summary-sig-name">__imul__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x*=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__iter__"></a><span class="summary-sig"><span class="summary-sig-name">__iter__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return iter(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__le__"></a><span class="summary-sig"><span class="summary-sig-name">__le__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x&lt;=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__len__"></a><span class="summary-sig"><span class="summary-sig-name">__len__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return len(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__lt__"></a><span class="summary-sig"><span class="summary-sig-name">__lt__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x&lt;y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__mul__"></a><span class="summary-sig"><span class="summary-sig-name">__mul__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">n</span>)</span></code>\r
+<br />\r
+Return x*n...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__ne__"></a><span class="summary-sig"><span class="summary-sig-name">__ne__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x!=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__rmul__"></a><span class="summary-sig"><span class="summary-sig-name">__rmul__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">n</span>)</span></code>\r
+<br />\r
+Return n*x...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__setitem__"></a><span class="summary-sig"><span class="summary-sig-name">__setitem__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">i</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x[i]=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__setslice__" class="summary-sig-name"><code>__setslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">i</span>,\r
+          <span class="summary-sig-arg">j</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Use  of negative indices is not supported.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#append" class="summary-sig-name"><code>append</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">object</span>)</span></code>\r
+<br />\r
+append object to end</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#count" class="summary-sig-name"><code>count</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">value</span>)</span></code>\r
+<br />\r
+return number of occurrences of value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#extend" class="summary-sig-name"><code>extend</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">iterable</span>)</span></code>\r
+<br />\r
+extend list by appending elements from the iterable</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#index" class="summary-sig-name"><code>index</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+L.index(value, [start, [stop]]) -&gt; integer -- return first index of value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#insert" class="summary-sig-name"><code>insert</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">index</span>,\r
+          <span class="summary-sig-arg">object</span>)</span></code>\r
+<br />\r
+insert object before index</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#pop" class="summary-sig-name"><code>pop</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">index</span>)</span></code>\r
+<br />\r
+remove and return item at index (default last)</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#remove" class="summary-sig-name"><code>remove</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">value</span>)</span></code>\r
+<br />\r
+remove first occurrence of value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#reverse" class="summary-sig-name"><code>reverse</code></a>(<span class="summary-sig-arg">L</span>)</span></code>\r
+<br />\r
+reverse <em>IN PLACE</em></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#sort" class="summary-sig-name"><code>sort</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">cmpfunc</span>)</span></code>\r
+<br />\r
+stable sort <em>IN PLACE</em>; cmpfunc(x, y) -&gt; -1, 0, 1</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+<p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__add__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__add__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Addition operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x+y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__contains__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__contains__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(In operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+y in x\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__delitem__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__delitem__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Index deletion operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+del x[y]\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__delslice__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__delslice__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">i</span>,\r
+          <span class="sig-arg">j</span>)</span>\r
+    <br /><em class="fname">(Slice deletion operator)</em>\r
+  </h3>\r
+<p>Use of negative indices is not supported.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+del x[i:j]\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__eq__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__eq__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Equality operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x==y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__ge__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__ge__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Greater-than-or-equals operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x&gt;=y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__getattribute__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>x.__getattribute__('name') &lt;==&gt; x.name</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__getattribute__"><code>__builtin__.object.__getattribute__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__getitem__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__getitem__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Indexing operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x[y]\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__getslice__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__getslice__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">i</span>,\r
+          <span class="sig-arg">j</span>)</span>\r
+    <br /><em class="fname">(Slicling operator)</em>\r
+  </h3>\r
+<p>Use of negative indices is not supported.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x[i:j]\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__gt__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__gt__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Greater-than operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x&gt;y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__hash__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Hashing function)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+hash(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__hash__"><code>__builtin__.object.__hash__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__iadd__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__iadd__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x+=y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__imul__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__imul__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x*=y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__iter__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__iter__</span>(<span class="sig-arg">x</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+iter(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__le__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__le__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Less-than-or-equals operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x&lt;=y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__len__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__len__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Length operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+len(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__lt__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__lt__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Less-than operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x&lt;y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__mul__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__mul__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">n</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x*n\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__ne__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__ne__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Inequality operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x!=y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__new__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
+          <span class="sig-arg">S</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+a new object with type S, a subtype of T\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__repr__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Representation operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+repr(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__rmul__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__rmul__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">n</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+n*x\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__setitem__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__setitem__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">i</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Index assignment operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x[i]=y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__setslice__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__setslice__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">i</span>,\r
+          <span class="sig-arg">j</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Slice assignment operator)</em>\r
+  </h3>\r
+<p>Use  of negative indices is not supported.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x[i:j]=y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="append"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">append</span>(<span class="sig-arg">L</span>,\r
+          <span class="sig-arg">object</span>)</span>\r
+  </h3>\r
+<p>append object to end</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="count"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">count</span>(<span class="sig-arg">L</span>,\r
+          <span class="sig-arg">value</span>)</span>\r
+  </h3>\r
+<p>return number of occurrences of value</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+integer\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="extend"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">extend</span>(<span class="sig-arg">L</span>,\r
+          <span class="sig-arg">iterable</span>)</span>\r
+  </h3>\r
+<p>extend list by appending elements from the iterable</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="index"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">index</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>L.index(value, [start, [stop]]) -&gt; integer -- return first index of value</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="insert"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">insert</span>(<span class="sig-arg">L</span>,\r
+          <span class="sig-arg">index</span>,\r
+          <span class="sig-arg">object</span>)</span>\r
+  </h3>\r
+<p>insert object before index</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="pop"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">pop</span>(<span class="sig-arg">L</span>,\r
+          <span class="sig-arg">index</span>=<span class="sig-default">...</span>)</span>\r
+  </h3>\r
+<p>remove and return item at index (default last)</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+item\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="remove"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">remove</span>(<span class="sig-arg">L</span>,\r
+          <span class="sig-arg">value</span>)</span>\r
+  </h3>\r
+<p>remove first occurrence of value</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="reverse"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">reverse</span>(<span class="sig-arg">L</span>)</span>\r
+  </h3>\r
+<p>reverse <em>IN PLACE</em></p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="sort"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">sort</span>(<span class="sig-arg">L</span>,\r
+          <span class="sig-arg">cmpfunc</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+<p>stable sort <em>IN PLACE</em>; cmpfunc(x, y) -&gt; -1, 0, 1</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:32 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/__builtin__.object-class.html b/trunk/psycopg2/doc/api/private/__builtin__.object-class.html
new file mode 100644 (file)
index 0000000..08d0af6
--- /dev/null
@@ -0,0 +1,270 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>__builtin__.object</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        Module&nbsp;__builtin__ ::\r
+        Class&nbsp;object\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/__builtin__.object-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.object-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type object</h2>\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a>,\r
+    <a href="__builtin__.list-class.html"><code>list</code></a>,\r
+    <a href="psycopg2.extras.SQL_IN-class.html"><code>SQL_IN</code></a>,\r
+    <a href="__builtin__.type-class.html"><code>type</code></a>,\r
+    <a href="datetime.tzinfo-class.html"><code>tzinfo</code></a>,\r
+    <a href="../private/psycopg2._psycopg.connection-class.html"><code>connection</code></a>,\r
+    <a href="../private/psycopg2._psycopg.cursor-class.html"><code>cursor</code></a>,\r
+    <a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>ISQLQuote</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>The most base type</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__hash__"></a><span class="summary-sig"><span class="summary-sig-name">__hash__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Class Variable Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+  <td><a name="__class__"></a><strong><code class="vname">__class__</code></strong> = <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+<p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__delattr__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__delattr__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>x.__delattr__('name') &lt;==&gt; del x.name</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__getattribute__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>x.__getattribute__('name') &lt;==&gt; x.name</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__hash__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Hashing function)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+hash(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__new__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
+          <span class="sig-arg">S</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+a new object with type S, a subtype of T\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__reduce__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__reduce__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>helper for pickle</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__reduce_ex__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__reduce_ex__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>helper for pickle</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__repr__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Representation operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+repr(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__setattr__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>x.__setattr__('name', value) &lt;==&gt; x.name = value</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__str__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Informal representation operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+str(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/__builtin__.type-class.html b/trunk/psycopg2/doc/api/private/__builtin__.type-class.html
new file mode 100644 (file)
index 0000000..b388e76
--- /dev/null
@@ -0,0 +1,384 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>__builtin__.type</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        Module&nbsp;__builtin__ ::\r
+        Class&nbsp;type\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/__builtin__.type-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.type-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type type</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
+         |\r
+        <strong class="uidshort">type</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>type(object) -&gt; the object's type\r
+type(name, bases, dict) -&gt; a new type</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__call__"></a><span class="summary-sig"><span class="summary-sig-name">__call__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return x(...)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__cmp__"></a><span class="summary-sig"><span class="summary-sig-name">__cmp__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return cmp(x,y)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__hash__"></a><span class="summary-sig"><span class="summary-sig-name">__hash__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">list of immediate subclasses</td>\r
+  <td><code><a name="__subclasses__"></a><span class="summary-sig"><span class="summary-sig-name">__subclasses__</span>()</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">list</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#mro" class="summary-sig-name"><code>mro</code></a>()</span></code>\r
+<br />\r
+return a type's method resolution order</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Property Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="__base__"></a><strong><code>__base__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="__basicsize__"></a><strong><code>__basicsize__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="__dictoffset__"></a><strong><code>__dictoffset__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="__flags__"></a><strong><code>__flags__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="__itemsize__"></a><strong><code>__itemsize__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="__mro__"></a><strong><code>__mro__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="__weakrefoffset__"></a><strong><code>__weakrefoffset__</code></strong></td></tr></table><br />\r
+\r
+\r
+<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Class Variable Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>tuple</code></td>\r
+<td><strong><a href="__builtin__.type-class.html#__bases__"><code>__bases__</code></a></strong> = <span title="(&lt;type 'object'&gt;,)"><code>(&lt;type&nbsp;'object'&gt;,)                           </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>str</code></td>\r
+<td><strong><a href="__builtin__.type-class.html#__name__"><code>__name__</code></a></strong> = <span title="'type'"><code><span class="variable-quote">'</span>type<span class="variable-quote">'</span>                                        </code>\r
+</span></td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__call__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__call__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+    <br /><em class="fname">(Call operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x(...)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__cmp__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__cmp__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Comparison operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+cmp(x,y)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__delattr__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__delattr__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>x.__delattr__('name') &lt;==&gt; del x.name</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__delattr__"><code>__builtin__.object.__delattr__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__getattribute__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>x.__getattribute__('name') &lt;==&gt; x.name</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__getattribute__"><code>__builtin__.object.__getattribute__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__hash__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Hashing function)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+hash(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__hash__"><code>__builtin__.object.__hash__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__new__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
+          <span class="sig-arg">S</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+a new object with type S, a subtype of T\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__repr__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Representation operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+repr(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__setattr__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>x.__setattr__('name', value) &lt;==&gt; x.name = value</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__setattr__"><code>__builtin__.object.__setattr__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__subclasses__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__subclasses__</span>()</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+list of immediate subclasses      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="mro"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">mro</span>()</span>\r
+  </h3>\r
+<p>return a type's method resolution order</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+list      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Class Variable Details</th></tr>\r
+</table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="__bases__"></a>\r
+<h3>__bases__</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>tuple</code>\r
+\r
+      </dd>\r
+      <dt title="(&lt;type 'object'&gt;,)">Value:</dt>\r
+      <dd title="(&lt;type 'object'&gt;,)"><table><tr><td>\r
+<pre class="variable">\r
+(&lt;type 'object'&gt;,)                                                     </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="__name__"></a>\r
+<h3>__name__</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>str</code>\r
+\r
+      </dd>\r
+      <dt title="'type'">Value:</dt>\r
+      <dd title="'type'"><table><tr><td>\r
+<pre class="variable">\r
+<span class="variable-quote">'</span>type<span class="variable-quote">'</span>                                                                 </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/datetime.tzinfo-class.html b/trunk/psycopg2/doc/api/private/datetime.tzinfo-class.html
new file mode 100644 (file)
index 0000000..337ac1a
--- /dev/null
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>datetime.tzinfo</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        Module&nbsp;datetime ::\r
+        Class&nbsp;tzinfo\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/datetime.tzinfo-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="datetime.tzinfo-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type tzinfo</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
+         |\r
+        <strong class="uidshort">tzinfo</strong>\r
+</pre><br />\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>FixedOffsetTimezone</code></a>,\r
+    <a href="psycopg2.tz.LocalTimezone-class.html"><code>LocalTimezone</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>Abstract base class for time zone info objects.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+-&gt; (cls, state)</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#dst" class="summary-sig-name"><code>dst</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+datetime -&gt; DST offset in minutes east of UTC.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#fromutc" class="summary-sig-name"><code>fromutc</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+datetime in UTC -&gt; datetime in local time.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#tzname" class="summary-sig-name"><code>tzname</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+datetime -&gt; string name of time zone.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#utcoffset" class="summary-sig-name"><code>utcoffset</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+datetime -&gt; minutes east of UTC (negative for west of UTC).</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__getattribute__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>x.__getattribute__('name') &lt;==&gt; x.name</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__getattribute__"><code>__builtin__.object.__getattribute__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__new__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
+          <span class="sig-arg">S</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+a new object with type S, a subtype of T\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__reduce__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__reduce__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>-&gt; (cls, state)</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__reduce__"><code>__builtin__.object.__reduce__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="dst"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">dst</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>datetime -&gt; DST offset in minutes east of UTC.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="fromutc"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">fromutc</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>datetime in UTC -&gt; datetime in local time.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="tzname"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">tzname</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>datetime -&gt; string name of time zone.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="utcoffset"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">utcoffset</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>datetime -&gt; minutes east of UTC (negative for west of UTC).</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/epydoc.css b/trunk/psycopg2/doc/api/private/epydoc.css
new file mode 100644 (file)
index 0000000..22e8f7e
--- /dev/null
@@ -0,0 +1,138 @@
+/* Based on the Epydoc "default.css"\r
+** with some missing reST-related classes\r
+** and Python syntax support (from SilverCity)\r
+*/\r
+\r
+/* Body color */ \r
+body               { background: #ffffff; color: #000000; } \r
\r
+/* Tables */ \r
+table.summary, table.details, table.index\r
+                   { background: #e8f0f8; color: #000000; } \r
+tr.summary, tr.details, tr.index\r
+                   { background: #70b0f0; color: #000000;  \r
+                     text-align: left; font-size: 120%; } \r
+tr.group           { background: #c0e0f8; color: #000000;\r
+                     text-align: left; font-size: 120%;\r
+                     font-style: italic; } \r
+\r
+/* Documentation page titles */\r
+h2.module          { margin-top: 0.2em; }\r
+h2.class           { margin-top: 0.2em; }\r
\r
+/* Headings */\r
+h1.heading         { font-size: +140%; font-style: italic;\r
+                     font-weight: bold; }\r
+h2.heading         { font-size: +125%; font-style: italic;\r
+                     font-weight: bold; }\r
+h3.heading         { font-size: +110%; font-style: italic;\r
+                     font-weight: normal; }\r
+                    \r
+/* Base tree */\r
+pre.base-tree      { font-size: 80%; margin: 0; }\r
+\r
+/* TOC */\r
+p.toc { margin: 0; }\r
+\r
+/* Details Sections */\r
+table.func-details { background: #e8f0f8; color: #000000;\r
+                     border: 2px groove #c0d0d0;\r
+                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }\r
+h3.func-detail     { background: transparent; color: #000000;\r
+                     margin: 0 0 1em 0; }\r
+\r
+table.var-details  { background: #e8f0f8; color: #000000;\r
+                     border: 2px groove #c0d0d0;\r
+                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }\r
+h3.var-details     { background: transparent; color: #000000;\r
+                     margin: 0 0 1em 0; }\r
+\r
+/* Function signatures */\r
+.sig               { background: transparent; color: #000000;\r
+                     font-weight: bold; }  \r
+.sig-name          { background: transparent; color: #006080; }  \r
+.sig-arg, .sig-kwarg, .sig-vararg\r
+                   { background: transparent; color: #008060; }  \r
+.sig-default       { background: transparent; color: #602000; }  \r
+.summary-sig       { background: transparent; color: #000000; }  \r
+.summary-sig-name  { background: transparent; color: #204080; }\r
+.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg\r
+                   { background: transparent; color: #008060; }  \r
+\r
+/* Doctest blocks */\r
+.py-src            { background: transparent; color: #000000; }\r
+.py-prompt         { background: transparent; color: #005050;\r
+                     font-weight: bold;}\r
+.py-string         { background: transparent; color: #006030; }\r
+.py-comment        { background: transparent; color: #003060; }\r
+.py-keyword        { background: transparent; color: #600000; }\r
+.py-output         { background: transparent; color: #404040; }\r
+div.code-block,\r
+pre.literal-block,\r
+pre.doctestblock   { background: #f4faff; color: #000000; \r
+                     padding: .5em; margin: 1em;\r
+                     border: 1px solid #708890; }\r
+table pre.doctestblock\r
+                   { background: #dce4ec; color: #000000; \r
+                     padding: .5em; margin: 1em;\r
+                     border: 1px solid #708890; }\r
+div.code-block     { font-family: monospace; }\r
+\r
+/* Variable values */\r
+pre.variable       { background: #dce4ec; color: #000000;\r
+                     padding: .5em; margin: 0;\r
+                     border: 1px solid #708890; }\r
+.variable-linewrap { background: transparent; color: #604000; }\r
+.variable-ellipsis { background: transparent; color: #604000; }\r
+.variable-quote    { background: transparent; color: #604000; }\r
+.re                { background: transparent; color: #000000; }\r
+.re-char           { background: transparent; color: #006030; }\r
+.re-op             { background: transparent; color: #600000; }\r
+.re-group          { background: transparent; color: #003060; }\r
+.re-ref            { background: transparent; color: #404040; }\r
+\r
+/* Navigation bar */ \r
+table.navbar       { background: #a0c0ff; color: #0000ff;\r
+                     border: 2px groove #c0d0d0; }\r
+th.navbar          { background: #a0c0ff; color: #0000ff; } \r
+th.navselect       { background: #70b0ff; color: #000000; } \r
+.nomargin          { margin: 0; }\r
+\r
+/* Links */ \r
+a:link             { background: transparent; color: #0000ff; }  \r
+a:visited          { background: transparent; color: #204080; }  \r
+a.navbar:link      { background: transparent; color: #0000ff; \r
+                     text-decoration: none; }  \r
+a.navbar:visited   { background: transparent; color: #204080; \r
+                     text-decoration: none; }  \r
+\r
+/* Admonitions */\r
+div.warning,\r
+div.note                { background-color: #c0e0f8;\r
+                          border: thin solid black;\r
+                          padding: 1em;\r
+                          margin-left: 1em;\r
+                          margin-right: 1em; }\r
+div.warning .first,\r
+div.note .first      { font-family: sans-serif;\r
+                          font-size: 110%;\r
+                          margin-right: 0.5em; }\r
+\r
+/* Lists */\r
+ul { margin-top: 0; }\r
+\r
+/* Python syntax */\r
+.p_character { color: olive; }\r
+.p_classname { color: blue; font-weight: bold; }\r
+.p_commentblock {color: gray; font-style: italic; }\r
+.p_commentline { color: green; font-style: italic; }\r
+.p_default {}\r
+.p_defname { color: #009999; font-weight: bold; }\r
+.p_identifier { color: black; }\r
+.p_number { color: #009999; }\r
+.p_operator { color: black; }\r
+.p_string { color: #7F007F; }\r
+.p_stringeol { color: #7F007F; }\r
+.p_triple { color: #7F0000; }\r
+.p_tripledouble { color: #7F0000; }\r
+.p_word { color: navy; font-weight: bold; }\r
diff --git a/trunk/psycopg2/doc/api/private/exceptions.Exception-class.html b/trunk/psycopg2/doc/api/private/exceptions.Exception-class.html
new file mode 100644 (file)
index 0000000..3064c51
--- /dev/null
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>exceptions.Exception</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        Module&nbsp;exceptions ::\r
+        Class&nbsp;Exception\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/exceptions.Exception-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="exceptions.Exception-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class Exception</h2>\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="exceptions.StandardError-class.html"><code>StandardError</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>Common base class for all exceptions.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__getitem__"></a><span class="summary-sig"><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__getitem__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__getitem__</span>(<span class="sig-vararg">...</span>)</span>\r
+    <br /><em class="fname">(Indexing operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__str__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-vararg">...</span>)</span>\r
+    <br /><em class="fname">(Informal representation operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/exceptions.StandardError-class.html b/trunk/psycopg2/doc/api/private/exceptions.StandardError-class.html
new file mode 100644 (file)
index 0000000..1b491dd
--- /dev/null
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>exceptions.StandardError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        Module&nbsp;exceptions ::\r
+        Class&nbsp;StandardError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/exceptions.StandardError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="exceptions.StandardError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class StandardError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+\r
+            |\r
+           <strong class="uidshort">StandardError</strong>\r
+</pre><br />\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="psycopg2.Error-class.html"><code>Error</code></a>,\r
+    <a href="psycopg2.Warning-class.html"><code>Warning</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>Base class for all standard Python exceptions.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/frames.html b/trunk/psycopg2/doc/api/private/frames.html
new file mode 100644 (file)
index 0000000..ffd6536
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"\r
+          "DTD/xhtml1-frameset.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title> API Documentation </title>\r
+</head>\r
+<frameset cols="20%,80%">\r
+  <frameset rows="30%,70%">\r
+    <frame src="toc.html" name="moduleListFrame" id="moduleListFrame" />\r
+    <frame src="toc-everything.html" name="moduleFrame" id="moduleFrame" />\r
+  </frameset>\r
+  <frame src="psycopg2-module.html" name="mainFrame" id="mainFrame" />\r
+</frameset>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/help.html b/trunk/psycopg2/doc/api/private/help.html
new file mode 100644 (file)
index 0000000..21f2560
--- /dev/null
@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>Help</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/help.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="help.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<h1 class="help"> API Documentation </h1>\r
+\r
+<p> This document contains the API (Application Programming Interface)\r
+documentation for this project.  Documentation for the Python\r
+objects defined by the project is divided into separate pages for each\r
+package, module, and class.  The API documentation also includes two\r
+pages containing information about the project as a whole: a trees\r
+page, and an index page.  </p>\r
+\r
+<h2> Object Documentation </h2>\r
+\r
+  <p>Each <strong>Package Documentation</strong> page contains: </p>\r
+  <ul>\r
+    <li> A description of the package. </li>\r
+    <li> A list of the modules and sub-packages contained by the\r
+    package.  </li>\r
+    <li> A summary of the classes defined by the package. </li>\r
+    <li> A summary of the functions defined by the package. </li>\r
+    <li> A summary of the variables defined by the package. </li>\r
+    <li> A detailed description of each function defined by the\r
+    package. </li>\r
+    <li> A detailed description of each variable defined by the\r
+    package. </li>\r
+  </ul>\r
+  \r
+  <p>Each <strong>Module Documentation</strong> page contains:</p>\r
+  <ul>\r
+    <li> A description of the module. </li>\r
+    <li> A summary of the classes defined by the module. </li>\r
+    <li> A summary of the functions defined by the module. </li>\r
+    <li> A summary of the variables defined by the module. </li>\r
+    <li> A detailed description of each function defined by the\r
+    module. </li>\r
+    <li> A detailed description of each variable defined by the\r
+    module. </li>\r
+  </ul>\r
+  \r
+  <p>Each <strong>Class Documentation</strong> page contains: </p>\r
+  <ul>\r
+    <li> A class inheritance diagram. </li>\r
+    <li> A list of known subclasses. </li>\r
+    <li> A description of the class. </li>\r
+    <li> A summary of the methods defined by the class. </li>\r
+    <li> A summary of the instance variables defined by the class. </li>\r
+    <li> A summary of the class (static) variables defined by the\r
+    class. </li> \r
+    <li> A detailed description of each method defined by the\r
+    class. </li>\r
+    <li> A detailed description of each instance variable defined by the\r
+    class. </li> \r
+    <li> A detailed description of each class (static) variable defined\r
+    by the class. </li> \r
+  </ul>\r
+\r
+<h2> Project Documentation </h2>\r
+\r
+  <p> The <strong>Trees</strong> page contains the module and class hierarchies: </p>\r
+  <ul>\r
+    <li> The <em>module hierarchy</em> lists every package and module, with\r
+    modules grouped into packages.  At the top level, and within each\r
+    package, modules and sub-packages are listed alphabetically. </li>\r
+    <li> The <em>class hierarchy</em> lists every class, grouped by base\r
+    class.  If a class has more than one base class, then it will be\r
+    listed under each base class.  At the top level, and under each base\r
+    class, classes are listed alphabetically. </li>\r
+  </ul>\r
+  \r
+  <p> The <strong>Index</strong> page contains indices of terms and\r
+  identifiers: </p>\r
+  <ul>\r
+    <li> The <em>term index</em> lists every term indexed by any object's\r
+    documentation.  For each term, the index provides links to each\r
+    place where the term is indexed. </li>\r
+    <li> The <em>identifier index</em> lists the (short) name of every package,\r
+    module, class, method, function, variable, and parameter.  For each\r
+    identifier, the index provides a short description, and a link to\r
+    its documentation. </li>\r
+  </ul>\r
+\r
+<h2> The Table of Contents </h2>\r
+\r
+<p> The table of contents occupies the two frames on the left side of\r
+the window.  The upper-left frame displays the <em>project\r
+contents</em>, and the lower-left frame displays the <em>module\r
+contents</em>: </p>\r
+\r
+<table class="help summary" border="1" cellspacing="0" cellpadding="3">\r
+  <tr style="height: 30%">\r
+    <td align="center" style="font-size: small">\r
+       Project<br />Contents<hr />...</td>\r
+    <td align="center" style="font-size: small" rowspan="2" width="70%">\r
+      API<br />Documentation<br />Frame<br /><br /><br />\r
+    </td>\r
+  </tr>\r
+  <tr>\r
+    <td align="center" style="font-size: small">\r
+      Module<br />Contents<hr />&nbsp;<br />...<br />&nbsp;\r
+    </td>\r
+  </tr>\r
+</table><br />\r
+\r
+<p> The <strong>project contents frame</strong> contains a list of all packages\r
+and modules that are defined by the project.  Clicking on an entry\r
+will display its contents in the module contents frame.  Clicking on a\r
+special entry, labeled "Everything," will display the contents of\r
+the entire project. </p>\r
+\r
+<p> The <strong>module contents frame</strong> contains a list of every\r
+submodule, class, type, exception, function, and variable defined by a\r
+module or package.  Clicking on an entry will display its\r
+documentation in the API documentation frame.  Clicking on the name of\r
+the module, at the top of the frame, will display the documentation\r
+for the module itself. </p>\r
+\r
+<p> The "<strong>frames</strong>" and "<strong>no frames</strong>" buttons below the top\r
+navigation bar can be used to control whether the table of contents is\r
+displayed or not. </p>\r
+\r
+<h2> The Navigation Bar </h2>\r
+\r
+<p> A navigation bar is located at the top and bottom of every page.\r
+It indicates what type of page you are currently viewing, and allows\r
+you to go to related pages.  The following table describes the labels\r
+on the navigation bar.  Note that not some labels (such as\r
+[Parent]) are not displayed on all pages. </p>\r
+\r
+<table class="summary" border="1" cellspacing="0" cellpadding="3" width="100%">\r
+<tr class="summary">\r
+  <th>Label</th>\r
+  <th>Highlighted when...</th>\r
+  <th>Links to...</th>\r
+</tr>\r
+  <tr><td valign="top"><strong>[Parent]</strong></td>\r
+      <td valign="top"><em>(never highlighted)</em></td>\r
+      <td valign="top"> the parent of the current package </td></tr>\r
+  <tr><td valign="top"><strong>[Package]</strong></td>\r
+      <td valign="top">viewing a package</td>\r
+      <td valign="top">the package containing the current object\r
+      </td></tr>\r
+  <tr><td valign="top"><strong>[Module]</strong></td>\r
+      <td valign="top">viewing a module</td>\r
+      <td valign="top">the module containing the current object\r
+      </td></tr> \r
+  <tr><td valign="top"><strong>[Class]</strong></td>\r
+      <td valign="top">viewing a class </td>\r
+      <td valign="top">the class containing the current object</td></tr>\r
+  <tr><td valign="top"><strong>[Trees]</strong></td>\r
+      <td valign="top">viewing the trees page</td>\r
+      <td valign="top"> the trees page </td></tr>\r
+  <tr><td valign="top"><strong>[Index]</strong></td>\r
+      <td valign="top">viewing the index page</td>\r
+      <td valign="top"> the index page </td></tr>\r
+  <tr><td valign="top"><strong>[Help]</strong></td>\r
+      <td valign="top">viewing the help page</td>\r
+      <td valign="top"> the help page </td></tr>\r
+</table>\r
+\r
+<p> The "<strong>show private</strong>" and "<strong>hide private</strong>" buttons below\r
+the top navigation bar can be used to control whether documentation\r
+for private objects is displayed.  Private objects are usually defined\r
+as objects whose (short) names begin with a single underscore, but do\r
+not end with an underscore.  For example, "<code>_x</code>",\r
+"<code>__pprint</code>", and "<code>epydoc.epytext._tokenize</code>"\r
+are private objects; but "<code>re.sub</code>",\r
+"<code>__init__</code>", and "<code>type_</code>" are not.  However,\r
+if a module defines the "<code>__all__</code>" variable, then its\r
+contents are used to decide which objects are private. </p>\r
+\r
+<p> A timestamp below the bottom navigation bar indicates when each\r
+page was last updated. </p>\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:37 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/index.html b/trunk/psycopg2/doc/api/private/index.html
new file mode 100644 (file)
index 0000000..ffd6536
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"\r
+          "DTD/xhtml1-frameset.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title> API Documentation </title>\r
+</head>\r
+<frameset cols="20%,80%">\r
+  <frameset rows="30%,70%">\r
+    <frame src="toc.html" name="moduleListFrame" id="moduleListFrame" />\r
+    <frame src="toc-everything.html" name="moduleFrame" id="moduleFrame" />\r
+  </frameset>\r
+  <frame src="psycopg2-module.html" name="mainFrame" id="mainFrame" />\r
+</frameset>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/indices.html b/trunk/psycopg2/doc/api/private/indices.html
new file mode 100644 (file)
index 0000000..6a224a1
--- /dev/null
@@ -0,0 +1,666 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>Index</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/indices.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="indices.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+<br />\r
+\r
+<!-- =========== START OF IDENTIFIER INDEX =========== -->\r
+<table class="index" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="index">\r
+  <th colspan="2">Identifier Index</th></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__add__"><code>__add__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__base__"><code>__base__</code></a></td>\r
+    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__bases__"><code>__bases__</code></a></td>\r
+    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__basicsize__"><code>__basicsize__</code></a></td>\r
+    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2.psycopg1.cursor-class.html#__build_dict"><code>__build_dict</code></a></td>\r
+    <td>Method in class <a href="psycopg2.psycopg1.cursor-class.html"><code>psycopg2.psycopg1.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__call__"><code>__call__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html"><code>type</code></a></td>\r
+    <td>Class in module <code>__builtin__</code></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__cmp__"><code>__cmp__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__contains__"><code>__contains__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__delattr__"><code>__delattr__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__delattr__"><code>__delattr__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__delitem__"><code>__delitem__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__delslice__"><code>__delslice__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__dictoffset__"><code>__dictoffset__</code></a></td>\r
+    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__eq__"><code>__eq__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__flags__"><code>__flags__</code></a></td>\r
+    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__ge__"><code>__ge__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__getattribute__"><code>__getattribute__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__getattribute__"><code>__getattribute__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__getattribute__"><code>__getattribute__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="datetime.tzinfo-class.html#__getattribute__"><code>__getattribute__</code></a></td>\r
+    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__getitem__"><code>__getitem__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="exceptions.Exception-class.html#__getitem__"><code>__getitem__</code></a></td>\r
+    <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#__getitem__"><code>__getitem__</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__getslice__"><code>__getslice__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__gt__"><code>__gt__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__hash__"><code>__hash__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__hash__"><code>__hash__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__hash__"><code>__hash__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__iadd__"><code>__iadd__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__imul__"><code>__imul__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="exceptions.Exception-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>psycopg2._psycopg.ISQLQuote</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.SQL_IN-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.SQL_IN-class.html"><code>psycopg2.extras.SQL_IN</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__itemsize__"><code>__itemsize__</code></a></td>\r
+    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__iter__"><code>__iter__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#__iter__"><code>__iter__</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__le__"><code>__le__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__len__"><code>__len__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__lt__"><code>__lt__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__mro__"><code>__mro__</code></a></td>\r
+    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__mul__"><code>__mul__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__name__"><code>__name__</code></a></td>\r
+    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__ne__"><code>__ne__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__new__"><code>__new__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__new__"><code>__new__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__new__"><code>__new__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="datetime.tzinfo-class.html#__new__"><code>__new__</code></a></td>\r
+    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#__new__"><code>__new__</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>psycopg2._psycopg.ISQLQuote</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#__new__"><code>__new__</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#__new__"><code>__new__</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__reduce__"><code>__reduce__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="datetime.tzinfo-class.html#__reduce__"><code>__reduce__</code></a></td>\r
+    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__reduce_ex__"><code>__reduce_ex__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__repr__"><code>__repr__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__repr__"><code>__repr__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__repr__"><code>__repr__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#__repr__"><code>__repr__</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#__repr__"><code>__repr__</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__rmul__"><code>__rmul__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__setattr__"><code>__setattr__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__setattr__"><code>__setattr__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__setitem__"><code>__setitem__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__setslice__"><code>__setslice__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__str__"><code>__str__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="exceptions.Exception-class.html#__str__"><code>__str__</code></a></td>\r
+    <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#__str__"><code>__str__</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#__str__"><code>__str__</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__subclasses__"><code>__subclasses__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#__version__"><code>__version__</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__weakrefoffset__"><code>__weakrefoffset__</code></a></td>\r
+    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2.extras.DictCursor-class.html#_build_index"><code>_build_index</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#_C_API"><code>_C_API</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_closeall"><code>_closeall</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_connect"><code>_connect</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2.extras.DictCursor-class.html#__query_executed"><code>__query_executed</code></a></td>\r
+    <td>Variable in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getconn"><code>_getconn</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getkey"><code>_getkey</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2.tz.LocalTimezone-class.html#_isdst"><code>_isdst</code></a></td>\r
+    <td>Method in class <a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2.tz.FixedOffsetTimezone-class.html#_name"><code>_name</code></a></td>\r
+    <td>Variable in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2.tz.FixedOffsetTimezone-class.html#_offset"><code>_offset</code></a></td>\r
+    <td>Variable in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html"><code>_psycopg</code></a></td>\r
+    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_putconn"><code>_putconn</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#_wrapped"><code>_wrapped</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>psycopg2._psycopg.ISQLQuote</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a></td>\r
+    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#adapt"><code>adapt</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#adapters"><code>adapters</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#apilevel"><code>apilevel</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#append"><code>append</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#arraysize"><code>arraysize</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#AsIs"><code>AsIs</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1.connection-class.html#autocommit"><code>autocommit</code></a></td>\r
+    <td>Method in class <a href="psycopg2.psycopg1.connection-class.html"><code>psycopg2.psycopg1.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html#Binary"><code>Binary</code></a></td>\r
+    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#BINARY"><code>BINARY</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#binary_types"><code>binary_types</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#binary_types"><code>binary_types</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#BINARYARRAY"><code>BINARYARRAY</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#BOOLEAN"><code>BOOLEAN</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#Boolean"><code>Boolean</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#BOOLEANARRAY"><code>BOOLEANARRAY</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#callproc"><code>callproc</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#callproc"><code>callproc</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#close"><code>close</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#close"><code>close</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html#closeall"><code>closeall</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#closeall"><code>closeall</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#closed"><code>closed</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#commit"><code>commit</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html#connect"><code>connect</code></a></td>\r
+    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1-module.html#connect"><code>connect</code></a></td>\r
+    <td>Function in module <a href="psycopg2.psycopg1-module.html"><code>psycopg2.psycopg1</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html"><code>connection</code></a></td>\r
+    <td>Class in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#connection"><code>connection</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1.connection-class.html"><code>connection</code></a></td>\r
+    <td>Class in module <a href="psycopg2.psycopg1-module.html"><code>psycopg2.psycopg1</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#copy_from"><code>copy_from</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#copy_to"><code>copy_to</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#count"><code>count</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#cursor"><code>cursor</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html"><code>cursor</code></a></td>\r
+    <td>Class in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictConnection-class.html#cursor"><code>cursor</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictConnection-class.html"><code>psycopg2.extras.DictConnection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1.connection-class.html#cursor"><code>cursor</code></a></td>\r
+    <td>Method in class <a href="psycopg2.psycopg1.connection-class.html"><code>psycopg2.psycopg1.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1.cursor-class.html"><code>cursor</code></a></td>\r
+    <td>Class in module <a href="psycopg2.psycopg1-module.html"><code>psycopg2.psycopg1</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#DatabaseError"><code>DatabaseError</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.DataError-class.html"><code>DataError</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#DataError"><code>DataError</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html#Date"><code>Date</code></a></td>\r
+    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#DATE"><code>DATE</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#DATEARRAY"><code>DATEARRAY</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#DateFromPy"><code>DateFromPy</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html#DateFromTicks"><code>DateFromTicks</code></a></td>\r
+    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#DATETIME"><code>DATETIME</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#DATETIMEARRAY"><code>DATETIMEARRAY</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool-module.html#dbg"><code>dbg</code></a></td>\r
+    <td>Function in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#DECIMAL"><code>DECIMAL</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#DECIMALARRAY"><code>DECIMALARRAY</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#description"><code>description</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictConnection-class.html"><code>DictConnection</code></a></td>\r
+    <td>Class in module <a href="psycopg2.extras-module.html"><code>psycopg2.extras</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html"><code>DictCursor</code></a></td>\r
+    <td>Class in module <a href="psycopg2.extras-module.html"><code>psycopg2.extras</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1.cursor-class.html#dictfetchall"><code>dictfetchall</code></a></td>\r
+    <td>Method in class <a href="psycopg2.psycopg1.cursor-class.html"><code>psycopg2.psycopg1.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1.cursor-class.html#dictfetchmany"><code>dictfetchmany</code></a></td>\r
+    <td>Method in class <a href="psycopg2.psycopg1.cursor-class.html"><code>psycopg2.psycopg1.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1.cursor-class.html#dictfetchone"><code>dictfetchone</code></a></td>\r
+    <td>Method in class <a href="psycopg2.psycopg1.cursor-class.html"><code>psycopg2.psycopg1.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html"><code>DictRow</code></a></td>\r
+    <td>Class in module <a href="psycopg2.extras-module.html"><code>psycopg2.extras</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#dsn"><code>dsn</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="datetime.tzinfo-class.html#dst"><code>dst</code></a></td>\r
+    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html#dst"><code>dst</code></a></td>\r
+    <td>Method in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.LocalTimezone-class.html#dst"><code>dst</code></a></td>\r
+    <td>Method in class <a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz-module.html#DSTDIFF"><code>DSTDIFF</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#encoding"><code>encoding</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#encodings"><code>encodings</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.Error-class.html"><code>Error</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#Error"><code>Error</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="exceptions.Exception-class.html"><code>Exception</code></a></td>\r
+    <td>Class in module <code>exceptions</code></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#execute"><code>execute</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#execute"><code>execute</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#executemany"><code>executemany</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#extend"><code>extend</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html"><code>extensions</code></a></td>\r
+    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras-module.html"><code>extras</code></a></td>\r
+    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchall"><code>fetchall</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#fetchall"><code>fetchall</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany"><code>fetchmany</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#fetchmany"><code>fetchmany</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchone"><code>fetchone</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#fetchone"><code>fetchone</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#fileno"><code>fileno</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>FixedOffsetTimezone</code></a></td>\r
+    <td>Class in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#FLOAT"><code>FLOAT</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#FLOATARRAY"><code>FLOATARRAY</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="datetime.tzinfo-class.html#fromutc"><code>fromutc</code></a></td>\r
+    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#get"><code>get</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#getbinary"><code>getbinary</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>psycopg2._psycopg.ISQLQuote</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#getbuffer"><code>getbuffer</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>psycopg2._psycopg.ISQLQuote</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html#getconn"><code>getconn</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#getconn"><code>getconn</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#getquoted"><code>getquoted</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>psycopg2._psycopg.ISQLQuote</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.SQL_IN-class.html#getquoted"><code>getquoted</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.SQL_IN-class.html"><code>psycopg2.extras.SQL_IN</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#has_key"><code>has_key</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#index"><code>index</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#insert"><code>insert</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#INTEGER"><code>INTEGER</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#INTEGERARRAY"><code>INTEGERARRAY</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.IntegrityError-class.html"><code>IntegrityError</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#IntegrityError"><code>IntegrityError</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.InterfaceError-class.html"><code>InterfaceError</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#InterfaceError"><code>InterfaceError</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.InternalError-class.html"><code>InternalError</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#InternalError"><code>InternalError</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#INTERVAL"><code>INTERVAL</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#INTERVALARRAY"><code>INTERVALARRAY</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#IntervalFromPy"><code>IntervalFromPy</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#isolation_level"><code>isolation_level</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT"><code>ISOLATION_LEVEL_AUTOCOMMIT</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_COMMITTED"><code>ISOLATION_LEVEL_READ_COMMITTED</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_UNCOMMITTED"><code>ISOLATION_LEVEL_READ_UNCOMMITTED</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_REPEATABLE_READ"><code>ISOLATION_LEVEL_REPEATABLE_READ</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE"><code>ISOLATION_LEVEL_SERIALIZABLE</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>ISQLQuote</code></a></td>\r
+    <td>Class in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#isready"><code>isready</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#items"><code>items</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#keys"><code>keys</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#lastrowid"><code>lastrowid</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html"><code>list</code></a></td>\r
+    <td>Class in module <code>__builtin__</code></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#List"><code>List</code></a></td>\r
+    <td>Function in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz-module.html#LOCAL"><code>LOCAL</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.LocalTimezone-class.html"><code>LocalTimezone</code></a></td>\r
+    <td>Class in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#LONGINTEGER"><code>LONGINTEGER</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#LONGINTEGERARRAY"><code>LONGINTEGERARRAY</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#mogrify"><code>mogrify</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#mro"><code>mro</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#name"><code>name</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#new_type"><code>new_type</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#next"><code>next</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#nextset"><code>nextset</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#notices"><code>notices</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#notifies"><code>notifies</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.NotSupportedError-class.html"><code>NotSupportedError</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#NotSupportedError"><code>NotSupportedError</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#NUMBER"><code>NUMBER</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html"><code>object</code></a></td>\r
+    <td>Class in module <code>__builtin__</code></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.OperationalError-class.html"><code>OperationalError</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#OperationalError"><code>OperationalError</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#paramstyle"><code>paramstyle</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>PersistentConnectionPool</code></a></td>\r
+    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool-module.html"><code>pool</code></a></td>\r
+    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.PoolError-class.html"><code>PoolError</code></a></td>\r
+    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#pop"><code>pop</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.ProgrammingError-class.html"><code>ProgrammingError</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#ProgrammingError"><code>ProgrammingError</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1-module.html"><code>psycopg1</code></a></td>\r
+    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html"><code>psycopg2</code></a></td>\r
+    <td>Package</td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html#putconn"><code>putconn</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#putconn"><code>putconn</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#PYDATE"><code>PYDATE</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#PYDATETIME"><code>PYDATETIME</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#PYINTERVAL"><code>PYINTERVAL</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#PYTIME"><code>PYTIME</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#query"><code>query</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#QuotedString"><code>QuotedString</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#register_adapter"><code>register_adapter</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#register_type"><code>register_type</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#remove"><code>remove</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#reverse"><code>reverse</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#rollback"><code>rollback</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#row_factory"><code>row_factory</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#rowcount"><code>rowcount</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#ROWID"><code>ROWID</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#ROWIDARRAY"><code>ROWIDARRAY</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#rownumber"><code>rownumber</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#scroll"><code>scroll</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#set_client_encoding"><code>set_client_encoding</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#set_isolation_level"><code>set_isolation_level</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#setinputsizes"><code>setinputsizes</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#setoutputsize"><code>setoutputsize</code></a></td>\r
+    <td>Method in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.SimpleConnectionPool-class.html"><code>SimpleConnectionPool</code></a></td>\r
+    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#sort"><code>sort</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.SQL_IN-class.html"><code>SQL_IN</code></a></td>\r
+    <td>Class in module <a href="psycopg2.extras-module.html"><code>psycopg2.extras</code></a></td></tr>\r
+  <tr><td width="15%"><a href="exceptions.StandardError-class.html"><code>StandardError</code></a></td>\r
+    <td>Class in module <code>exceptions</code></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#statusmessage"><code>statusmessage</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz-module.html#STDOFFSET"><code>STDOFFSET</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#STRING"><code>STRING</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#string_types"><code>string_types</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#string_types"><code>string_types</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#STRINGARRAY"><code>STRINGARRAY</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>ThreadedConnectionPool</code></a></td>\r
+    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#threadsafety"><code>threadsafety</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html#Time"><code>Time</code></a></td>\r
+    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#TIME"><code>TIME</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#TIMEARRAY"><code>TIMEARRAY</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#TimeFromPy"><code>TimeFromPy</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html#TimeFromTicks"><code>TimeFromTicks</code></a></td>\r
+    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html#Timestamp"><code>Timestamp</code></a></td>\r
+    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#TimestampFromPy"><code>TimestampFromPy</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html#TimestampFromTicks"><code>TimestampFromTicks</code></a></td>\r
+    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html"><code>type</code></a></td>\r
+    <td>Class in module <code>__builtin__</code></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#typecaster"><code>typecaster</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz-module.html"><code>tz</code></a></td>\r
+    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="datetime.tzinfo-class.html"><code>tzinfo</code></a></td>\r
+    <td>Class in module <code>datetime</code></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.cursor-class.html#tzinfo_factory"><code>tzinfo_factory</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="datetime.tzinfo-class.html#tzname"><code>tzname</code></a></td>\r
+    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html#tzname"><code>tzname</code></a></td>\r
+    <td>Method in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.LocalTimezone-class.html#tzname"><code>tzname</code></a></td>\r
+    <td>Method in class <a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#UNICODE"><code>UNICODE</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg-module.html#UNICODEARRAY"><code>UNICODEARRAY</code></a></td>\r
+    <td>Variable in module <a href="../private/psycopg2._psycopg-module.html"><code>psycopg2._psycopg</code></a></td></tr>\r
+  <tr><td width="15%"><a href="datetime.tzinfo-class.html#utcoffset"><code>utcoffset</code></a></td>\r
+    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html#utcoffset"><code>utcoffset</code></a></td>\r
+    <td>Method in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.LocalTimezone-class.html#utcoffset"><code>utcoffset</code></a></td>\r
+    <td>Method in class <a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#values"><code>values</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.Warning-class.html"><code>Warning</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="../private/psycopg2._psycopg.connection-class.html#Warning"><code>Warning</code></a></td>\r
+    <td>member_descriptor in class <a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz-module.html#ZERO"><code>ZERO</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
+</table>\r
+<br />\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:37 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2-module.html b/trunk/psycopg2/doc/api/private/psycopg2-module.html
new file mode 100644 (file)
index 0000000..dd7e92d
--- /dev/null
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        Package&nbsp;psycopg2\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2-module.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF PACKAGE DESCRIPTION =========== -->\r
+<h2 class="package">Package psycopg2</h2>\r
+\r
+<p>A Python driver for PostgreSQL</p>\r
+<p>psycopg is a <a class="reference" href="http://www.postgresql.org/">PostgreSQL</a> database adapter for the <a class="reference" href="http://www.python.org/">Python</a> programming\r
+language. This is version 2, a complete rewrite of the original code to\r
+provide new-style classes for connection and cursor objects and other sweet\r
+candies. Like the original, psycopg 2 was written with the aim of being very\r
+small and fast, and stable as a rock.</p>\r
+<p>Homepage: <a class="reference" href="http://initd.org/projects/psycopg2">http://initd.org/projects/psycopg2</a></p>\r
+<hr/>\r
+\r
+<!-- =========== START OF SUBMODULES =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Submodules</th></tr>\r
+  <tr><td><ul>\r
+<li> <strong class="uidlink"><a href="psycopg2.extensions-module.html"><code>extensions</code></a></strong>: <em class="summary">psycopg extensions to the DBAPI-2.0</em></li>\r
+<li> <strong class="uidlink"><a href="psycopg2.extras-module.html"><code>extras</code></a></strong>: <em class="summary">Miscellaneous goodies for psycopg2</em></li>\r
+<li> <strong class="uidlink"><a href="psycopg2.pool-module.html"><code>pool</code></a></strong>: <em class="summary">Connection pooling for psycopg2</em></li>\r
+<li> <strong class="uidlink"><a href="psycopg2.psycopg1-module.html"><code>psycopg1</code></a></strong>: <em class="summary">psycopg 1.1.x compatibility module</em></li>\r
+<li> <strong class="uidlink"><a href="psycopg2.tz-module.html"><code>tz</code></a></strong>: <em class="summary">tzinfo implementations for psycopg2</em></li>\r
+<li> <strong class="uidlink"><a href="../private/psycopg2._psycopg-module.html"><code>_psycopg</code></a></strong>: <em class="summary">psycopg PostgreSQL driver</em></li>\r
+  </ul></td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF EXCEPTIONS =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Exceptions</th></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a></strong></td>\r
+  <td>Error related to the database engine.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.DataError-class.html"><code>DataError</code></a></strong></td>\r
+  <td>Error related to problems with the processed data.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.Error-class.html"><code>Error</code></a></strong></td>\r
+  <td>Base class for error exceptions.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.IntegrityError-class.html"><code>IntegrityError</code></a></strong></td>\r
+  <td>Error related to database integrity.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.InterfaceError-class.html"><code>InterfaceError</code></a></strong></td>\r
+  <td>Error related to the database interface.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.InternalError-class.html"><code>InternalError</code></a></strong></td>\r
+  <td>The database encountered an internal error.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.NotSupportedError-class.html"><code>NotSupportedError</code></a></strong></td>\r
+  <td>A not supported datbase API was called.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.OperationalError-class.html"><code>OperationalError</code></a></strong></td>\r
+  <td>Error related to database operation (disconnect, memory allocation etc).</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.ProgrammingError-class.html"><code>ProgrammingError</code></a></strong></td>\r
+  <td>Error related to database programming (SQL error, table not found etc).</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.Warning-class.html"><code>Warning</code></a></strong></td>\r
+  <td>A database warning.</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Function Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Connections creation</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype"><a href="../private/psycopg2._psycopg.connection-class.html" class="link"><code>extensions.connection</code></a></td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2-module.html#connect" class="summary-sig-name"><code>connect</code></a>(<span class="summary-sig-arg">dsn</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Create a new database connection.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Value objects constructors</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new binary object</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2-module.html#Binary" class="summary-sig-name"><code>Binary</code></a>(<span class="summary-sig-arg">buffer</span>)</span></code>\r
+<br />\r
+Build an object capable to hold a bynary string value.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new date</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2-module.html#Date" class="summary-sig-name"><code>Date</code></a>(<span class="summary-sig-arg">year</span>,\r
+          <span class="summary-sig-arg">month</span>,\r
+          <span class="summary-sig-arg">day</span>)</span></code>\r
+<br />\r
+Build an object holding a date value.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new date</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2-module.html#DateFromTicks" class="summary-sig-name"><code>DateFromTicks</code></a>(<span class="summary-sig-arg">ticks</span>)</span></code>\r
+<br />\r
+Build an object holding a date value from the given ticks value.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new time</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2-module.html#Time" class="summary-sig-name"><code>Time</code></a>(<span class="summary-sig-arg">hour</span>,\r
+          <span class="summary-sig-arg">minutes</span>,\r
+          <span class="summary-sig-arg">seconds</span>,\r
+          <span class="summary-sig-arg">tzinfo</span>)</span></code>\r
+<br />\r
+Build an object holding a time value.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new time</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2-module.html#TimeFromTicks" class="summary-sig-name"><code>TimeFromTicks</code></a>(<span class="summary-sig-arg">ticks</span>)</span></code>\r
+<br />\r
+Build an object holding a time value from the given ticks value.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new timestamp</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2-module.html#Timestamp" class="summary-sig-name"><code>Timestamp</code></a>(<span class="summary-sig-arg">year</span>,\r
+          <span class="summary-sig-arg">month</span>,\r
+          <span class="summary-sig-arg">day</span>,\r
+          <span class="summary-sig-arg">hour</span>,\r
+          <span class="summary-sig-arg">minutes</span>,\r
+          <span class="summary-sig-arg">seconds</span>,\r
+          <span class="summary-sig-arg">tzinfo</span>)</span></code>\r
+<br />\r
+Build an object holding a timestamp value.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new timestamp</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2-module.html#TimestampFromTicks" class="summary-sig-name"><code>TimestampFromTicks</code></a>(<span class="summary-sig-arg">ticks</span>)</span></code>\r
+<br />\r
+Build an object holding a timestamp value from the given ticks value.</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF FUNCTION DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Function Details</th></tr>\r
+</table>\r
+\r
+<a name="connect"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">connect</span>(<span class="sig-arg">dsn</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>Create a new database connection.</p>\r
+<p>This function supports two different but equivalent sets of arguments.\r
+A single data source name or <tt class="docutils literal"><span class="pre">dsn</span></tt> string can be used to specify the\r
+connection parameters, as follows:</p>\r
+<pre class="literal-block">\r
+psycopg2.connect(&quot;dbname=xxx user=xxx ...&quot;)\r
+</pre>\r
+<p>If <tt class="docutils literal"><span class="pre">dsn</span></tt> is not provided it is possible to pass the parameters as\r
+keyword arguments; e.g.:</p>\r
+<pre class="literal-block">\r
+psycopg2.connect(database='xxx', user='xxx', ...)\r
+</pre>\r
+<p>The full list of available parameters is:</p>\r
+<ul class="rst-simple">\r
+<li><tt class="docutils literal"><span class="pre">dbname</span></tt> -- database name (only in 'dsn')</li>\r
+<li><tt class="docutils literal"><span class="pre">database</span></tt> -- database name (only as keyword argument)</li>\r
+<li><tt class="docutils literal"><span class="pre">host</span></tt> -- host address (defaults to UNIX socket if not provided)</li>\r
+<li><tt class="docutils literal"><span class="pre">port</span></tt> -- port number (defaults to 5432 if not provided)</li>\r
+<li><tt class="docutils literal"><span class="pre">user</span></tt> -- user name used to authenticate</li>\r
+<li><tt class="docutils literal"><span class="pre">password</span></tt> -- password used to authenticate</li>\r
+<li><tt class="docutils literal"><span class="pre">sslmode</span></tt> -- SSL mode (see PostgreSQL documentation)</li>\r
+</ul>\r
+<p>If the <tt class="docutils literal"><span class="pre">connection_factory</span></tt> keyword argument is not provided this\r
+function always return an instance of the <code>connection</code> class.\r
+Else the given sub-class of <a href="../private/psycopg2._psycopg.connection-class.html" class="link"><code>extensions.connection</code></a> will be used to\r
+instantiate the connection object.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+New database connection        <br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
+        (type=<a href="../private/psycopg2._psycopg.connection-class.html" class="link"><code>extensions.connection</code></a>)</em>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="Binary"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">Binary</span>(<span class="sig-arg">buffer</span>)</span>\r
+  </h3>\r
+<p>Build an object capable to hold a bynary string value.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new binary object      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="Date"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">Date</span>(<span class="sig-arg">year</span>,\r
+          <span class="sig-arg">month</span>,\r
+          <span class="sig-arg">day</span>)</span>\r
+  </h3>\r
+<p>Build an object holding a date value.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new date      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="DateFromTicks"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">DateFromTicks</span>(<span class="sig-arg">ticks</span>)</span>\r
+  </h3>\r
+<p>Build an object holding a date value from the given ticks value.</p>\r
+<p>Ticks are the number of seconds since the epoch; see the documentation of the standard Python time module for details).</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new date      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="Time"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">Time</span>(<span class="sig-arg">hour</span>,\r
+          <span class="sig-arg">minutes</span>,\r
+          <span class="sig-arg">seconds</span>,\r
+          <span class="sig-arg">tzinfo</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+<p>Build an object holding a time value.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new time      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="TimeFromTicks"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">TimeFromTicks</span>(<span class="sig-arg">ticks</span>)</span>\r
+  </h3>\r
+<p>Build an object holding a time value from the given ticks value.</p>\r
+<p>Ticks are the number of seconds since the epoch; see the documentation of the standard Python time module for details).</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new time      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="Timestamp"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">Timestamp</span>(<span class="sig-arg">year</span>,\r
+          <span class="sig-arg">month</span>,\r
+          <span class="sig-arg">day</span>,\r
+          <span class="sig-arg">hour</span>,\r
+          <span class="sig-arg">minutes</span>,\r
+          <span class="sig-arg">seconds</span>,\r
+          <span class="sig-arg">tzinfo</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+<p>Build an object holding a timestamp value.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new timestamp      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="TimestampFromTicks"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">TimestampFromTicks</span>(<span class="sig-arg">ticks</span>)</span>\r
+  </h3>\r
+<p>Build an object holding a timestamp value from the given ticks value.</p>\r
+<p>Ticks are the number of seconds since the epoch; see the documentation of the standard Python time module for details).</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new timestamp      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.DataError-class.html b/trunk/psycopg2/doc/api/private/psycopg2.DataError-class.html
new file mode 100644 (file)
index 0000000..5805400
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.DataError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;DataError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.DataError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.DataError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class DataError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
+            |            \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
+                |        \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
+                    |    \r
+        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
+                        |\r
+                       <strong class="uidshort">DataError</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Error related to problems with the processed data.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.DatabaseError-class.html b/trunk/psycopg2/doc/api/private/psycopg2.DatabaseError-class.html
new file mode 100644 (file)
index 0000000..adc28d4
--- /dev/null
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.DatabaseError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;DatabaseError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.DatabaseError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.DatabaseError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class DatabaseError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+        \r
+            |        \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+    \r
+                |    \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+\r
+                    |\r
+                   <strong class="uidshort">DatabaseError</strong>\r
+</pre><br />\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="psycopg2.DataError-class.html"><code>DataError</code></a>,\r
+    <a href="psycopg2.IntegrityError-class.html"><code>IntegrityError</code></a>,\r
+    <a href="psycopg2.InternalError-class.html"><code>InternalError</code></a>,\r
+    <a href="psycopg2.NotSupportedError-class.html"><code>NotSupportedError</code></a>,\r
+    <a href="psycopg2.OperationalError-class.html"><code>OperationalError</code></a>,\r
+    <a href="psycopg2.ProgrammingError-class.html"><code>ProgrammingError</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>Error related to the database engine.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.Error-class.html b/trunk/psycopg2/doc/api/private/psycopg2.Error-class.html
new file mode 100644 (file)
index 0000000..33bff57
--- /dev/null
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.Error</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;Error\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.Error-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.Error-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class Error</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+    \r
+            |    \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+\r
+                |\r
+               <strong class="uidshort">Error</strong>\r
+</pre><br />\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a>,\r
+    <a href="psycopg2.InterfaceError-class.html"><code>InterfaceError</code></a>,\r
+    <a href="psycopg2.pool.PoolError-class.html"><code>PoolError</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>Base class for error exceptions.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.IntegrityError-class.html b/trunk/psycopg2/doc/api/private/psycopg2.IntegrityError-class.html
new file mode 100644 (file)
index 0000000..c1804f6
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.IntegrityError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;IntegrityError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.IntegrityError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.IntegrityError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class IntegrityError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
+            |            \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
+                |        \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
+                    |    \r
+        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
+                        |\r
+                       <strong class="uidshort">IntegrityError</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Error related to database integrity.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.InterfaceError-class.html b/trunk/psycopg2/doc/api/private/psycopg2.InterfaceError-class.html
new file mode 100644 (file)
index 0000000..099ee90
--- /dev/null
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.InterfaceError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;InterfaceError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.InterfaceError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.InterfaceError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class InterfaceError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+        \r
+            |        \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+    \r
+                |    \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+\r
+                    |\r
+                   <strong class="uidshort">InterfaceError</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Error related to the database interface.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.InternalError-class.html b/trunk/psycopg2/doc/api/private/psycopg2.InternalError-class.html
new file mode 100644 (file)
index 0000000..5390de5
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.InternalError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;InternalError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.InternalError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.InternalError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class InternalError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
+            |            \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
+                |        \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
+                    |    \r
+        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
+                        |\r
+                       <strong class="uidshort">InternalError</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>The database encountered an internal error.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.NotSupportedError-class.html b/trunk/psycopg2/doc/api/private/psycopg2.NotSupportedError-class.html
new file mode 100644 (file)
index 0000000..c677f5b
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.NotSupportedError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;NotSupportedError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.NotSupportedError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.NotSupportedError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class NotSupportedError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
+            |            \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
+                |        \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
+                    |    \r
+        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
+                        |\r
+                       <strong class="uidshort">NotSupportedError</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>A not supported datbase API was called.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.OperationalError-class.html b/trunk/psycopg2/doc/api/private/psycopg2.OperationalError-class.html
new file mode 100644 (file)
index 0000000..6cca463
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.OperationalError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;OperationalError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.OperationalError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.OperationalError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class OperationalError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
+            |            \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
+                |        \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
+                    |    \r
+        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
+                        |\r
+                       <strong class="uidshort">OperationalError</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Error related to database operation (disconnect, memory allocation etc).</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.ProgrammingError-class.html b/trunk/psycopg2/doc/api/private/psycopg2.ProgrammingError-class.html
new file mode 100644 (file)
index 0000000..9fcd4ef
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.ProgrammingError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;ProgrammingError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.ProgrammingError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.ProgrammingError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class ProgrammingError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
+            |            \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
+                |        \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
+                    |    \r
+        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
+                        |\r
+                       <strong class="uidshort">ProgrammingError</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Error related to database programming (SQL error, table not found etc).</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.Warning-class.html b/trunk/psycopg2/doc/api/private/psycopg2.Warning-class.html
new file mode 100644 (file)
index 0000000..741c9a7
--- /dev/null
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.Warning</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;Warning\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.Warning-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.Warning-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class Warning</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+    \r
+            |    \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+\r
+                |\r
+               <strong class="uidshort">Warning</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>A database warning.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2._psycopg-module.html b/trunk/psycopg2/doc/api/private/psycopg2._psycopg-module.html
new file mode 100644 (file)
index 0000000..6e4cb25
--- /dev/null
@@ -0,0 +1,1072 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2._psycopg</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Module&nbsp;_psycopg\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<strong>show&nbsp;private</strong>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/psycopg2._psycopg-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
+<h2 class="module">Module psycopg2._psycopg</h2>\r
+\r
+<p>psycopg PostgreSQL driver</p>\r
+<hr/>\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Classes</th></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="../private/psycopg2._psycopg.connection-class.html"><code>connection</code></a></strong></td>\r
+  <td>connection(dsn, ...) -&gt; new connection object</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="../private/psycopg2._psycopg.cursor-class.html"><code>cursor</code></a></strong></td>\r
+  <td>A database cursor.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>ISQLQuote</code></a></strong></td>\r
+  <td>Abstract ISQLQuote protocol</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Function Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new quoted list</td>\r
+  <td><code><a name="List"></a><span class="summary-sig"><span class="summary-sig-name">List</span>(<span class="summary-sig-arg">list</span>,\r
+          <span class="summary-sig-arg">enc</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF VARIABLE SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Variable Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>str</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#__version__"><code>__version__</code></a></strong> = <span title="'2.0b7 (dt ext pq3)'"><code><span class="variable-quote">'</span>2.0b7&nbsp;(dt&nbsp;ext&nbsp;pq3)<span class="variable-quote">'</span>                       </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>PyCObject</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#_C_API"><code>_C_API</code></a></strong> = <span title="&lt;PyCObject object at 0x0076A320&gt;"><code>&lt;PyCObject&nbsp;object&nbsp;at&nbsp;0x0076A320&gt;                </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>dict</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#adapters"><code>adapters</code></a></strong> = <span title="{(&lt;type 'bool'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Boolean'&gt;, (&lt;type 'list'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.List'&gt;, (&lt;type 'datetime.datetime'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function TimestampFromPy&gt;, (&lt;type 'buffer'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Binary'&gt;, (&lt;type 'unicode'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.QuotedString'&gt;, (&lt;type 'datetime.date'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function DateFromPy&gt;, (&lt;type 'datetime.time'&gt;, ..."><code>{(&lt;type&nbsp;'bool'&gt;,&nbsp;&lt;type&nbsp;'psycopg2._psycopg.ISQ<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>str</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#apilevel"><code>apilevel</code></a></strong> = <span title="'2.0'"><code><span class="variable-quote">'</span>2.0<span class="variable-quote">'</span>                                         </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#BINARY"><code>BINARY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847A00&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847A00&gt;   </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>dict</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#binary_types"><code>binary_types</code></a></strong> = <span title="{}"><code>{}                                        </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#BINARYARRAY"><code>BINARYARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847CA0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847C<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#BOOLEAN"><code>BOOLEAN</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847880&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847880&gt;  </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#BOOLEANARRAY"><code>BOOLEANARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847BA0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#DATE"><code>DATE</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847960&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847960&gt;     </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#DATEARRAY"><code>DATEARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847C20&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847C20<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#DATETIME"><code>DATETIME</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x008478C0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x008478C0&gt; </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#DATETIMEARRAY"><code>DATETIMEARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847BC0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x0084<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#DECIMAL"><code>DECIMAL</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x008477A0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x008477A0&gt;  </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#DECIMALARRAY"><code>DECIMALARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847B20&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>dict</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#encodings"><code>encodings</code></a></strong> = <span title="{'UTF8': 'utf_8', 'LATIN-1': 'latin_1', 'SQL_ASCII': 'ascii', 'UNICODE': 'utf_8', 'LATIN1': 'latin_1'}"><code>{'UTF8':&nbsp;'utf_8',&nbsp;'LATIN-1':&nbsp;'latin_1',&nbsp;'SQL<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#FLOAT"><code>FLOAT</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847740&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847740&gt;    </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#FLOATARRAY"><code>FLOATARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847AE0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847AE<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#INTEGER"><code>INTEGER</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847700&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847700&gt;  </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#INTEGERARRAY"><code>INTEGERARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847AC0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#INTERVAL"><code>INTERVAL</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x008479A0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x008479A0&gt; </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#INTERVALARRAY"><code>INTERVALARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847C60&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x0084<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#LONGINTEGER"><code>LONGINTEGER</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x008476C0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x008476<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#LONGINTEGERARRAY"><code>LONGINTEGERARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847AA0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x0<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#NUMBER"><code>NUMBER</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847680&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847680&gt;   </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>str</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#paramstyle"><code>paramstyle</code></a></strong> = <span title="'pyformat'"><code><span class="variable-quote">'</span>pyformat<span class="variable-quote">'</span>                                  </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#PYDATE"><code>PYDATE</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847DC0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847DC0&gt;   </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#PYDATETIME"><code>PYDATETIME</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847D20&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847D2<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#PYINTERVAL"><code>PYINTERVAL</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847DE0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847DE<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#PYTIME"><code>PYTIME</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847D60&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847D60&gt;   </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#ROWID"><code>ROWID</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847A60&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847A60&gt;    </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#ROWIDARRAY"><code>ROWIDARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847CC0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847CC<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#STRING"><code>STRING</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847820&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847820&gt;   </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>dict</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#string_types"><code>string_types</code></a></strong> = <span title="{1028: &lt;psycopg2._psycopg.type object at 0x00847CC0&gt;, 1005: &lt;psycopg2._psycopg.type object at 0x00847AC0&gt;, 16: &lt;psycopg2._psycopg.type object at 0x00847880&gt;, 17: &lt;psycopg2._psycopg.type object at 0x00847A00&gt;, 1042: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 1043: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 20: &lt;psycopg2._psycopg.type object at 0x008476C0&gt;, 21: &lt;psycopg2._psycopg.type object at 0x00847700&gt;, 23: &lt;psycopg2._psycopg.type object at 0x00847700&gt;, 25: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 26: &lt;psycopg2._psycopg.type object at 0x00847A60&gt;, 1182: &lt;psycopg2._psycopg.ty..."><code>{1028:&nbsp;&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#STRINGARRAY"><code>STRINGARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847B60&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847B<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#threadsafety"><code>threadsafety</code></a></strong> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#TIME"><code>TIME</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847900&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847900&gt;     </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#TIMEARRAY"><code>TIMEARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847BE0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847BE0<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#UNICODE"><code>UNICODE</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x008477E0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x008477E0&gt;  </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="../private/psycopg2._psycopg-module.html#UNICODEARRAY"><code>UNICODEARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00847B40&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00847<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF FUNCTION DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Function Details</th></tr>\r
+</table>\r
+\r
+<a name="List"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">List</span>(<span class="sig-arg">list</span>,\r
+          <span class="sig-arg">enc</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new quoted list      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF VARIABLE DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Variable Details</th></tr>\r
+</table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="__version__"></a>\r
+<h3>__version__</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>str</code>\r
+\r
+      </dd>\r
+      <dt title="'2.0b7 (dt ext pq3)'">Value:</dt>\r
+      <dd title="'2.0b7 (dt ext pq3)'"><table><tr><td>\r
+<pre class="variable">\r
+<span class="variable-quote">'</span>2.0b7 (dt ext pq3)<span class="variable-quote">'</span>                                                   </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="_C_API"></a>\r
+<h3>_C_API</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>PyCObject</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;PyCObject object at 0x0076A320&gt;">Value:</dt>\r
+      <dd title="&lt;PyCObject object at 0x0076A320&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;PyCObject object at 0x0076A320&gt;                                       </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="adapters"></a>\r
+<h3>adapters</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>dict</code>\r
+\r
+      </dd>\r
+      <dt title="{(&lt;type 'bool'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Boolean'&gt;, (&lt;type 'list'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.List'&gt;, (&lt;type 'datetime.datetime'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function TimestampFromPy&gt;, (&lt;type 'buffer'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Binary'&gt;, (&lt;type 'unicode'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.QuotedString'&gt;, (&lt;type 'datetime.date'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function DateFromPy&gt;, (&lt;type 'datetime.time'&gt;, ...">Value:</dt>\r
+      <dd title="{(&lt;type 'bool'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Boolean'&gt;, (&lt;type 'list'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.List'&gt;, (&lt;type 'datetime.datetime'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function TimestampFromPy&gt;, (&lt;type 'buffer'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Binary'&gt;, (&lt;type 'unicode'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.QuotedString'&gt;, (&lt;type 'datetime.date'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function DateFromPy&gt;, (&lt;type 'datetime.time'&gt;, ..."><table><tr><td>\r
+<pre class="variable">\r
+{(&lt;type 'datetime.timedelta'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): <span class="variable-linewrap">\</span>\r
+&lt;built-in function IntervalFromPy&gt;,\r
+ (&lt;type 'datetime.date'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;buil<span class="variable-linewrap">\</span>\r
+t-in function DateFromPy&gt;,\r
+ (&lt;type 'datetime.time'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;buil<span class="variable-linewrap">\</span>\r
+t-in function TimeFromPy&gt;,\r
+ (&lt;type 'datetime.datetime'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;<span class="variable-linewrap">\</span>\r
+built-in function TimestampFromPy&gt;,\r
+<span class="variable-ellipsis">...</span>                                                                    </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="apilevel"></a>\r
+<h3>apilevel</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>str</code>\r
+\r
+      </dd>\r
+      <dt title="'2.0'">Value:</dt>\r
+      <dd title="'2.0'"><table><tr><td>\r
+<pre class="variable">\r
+<span class="variable-quote">'</span>2.0<span class="variable-quote">'</span>                                                                  </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="BINARY"></a>\r
+<h3>BINARY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847A00&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847A00&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847A00&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="binary_types"></a>\r
+<h3>binary_types</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>dict</code>\r
+\r
+      </dd>\r
+      <dt title="{}">Value:</dt>\r
+      <dd title="{}"><table><tr><td>\r
+<pre class="variable">\r
+{}                                                                     </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="BINARYARRAY"></a>\r
+<h3>BINARYARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847CA0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847CA0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847CA0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="BOOLEAN"></a>\r
+<h3>BOOLEAN</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847880&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847880&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847880&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="BOOLEANARRAY"></a>\r
+<h3>BOOLEANARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847BA0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847BA0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847BA0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="DATE"></a>\r
+<h3>DATE</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847960&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847960&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847960&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="DATEARRAY"></a>\r
+<h3>DATEARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847C20&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847C20&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847C20&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="DATETIME"></a>\r
+<h3>DATETIME</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x008478C0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x008478C0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x008478C0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="DATETIMEARRAY"></a>\r
+<h3>DATETIMEARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847BC0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847BC0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847BC0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="DECIMAL"></a>\r
+<h3>DECIMAL</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x008477A0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x008477A0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x008477A0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="DECIMALARRAY"></a>\r
+<h3>DECIMALARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847B20&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847B20&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847B20&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="encodings"></a>\r
+<h3>encodings</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>dict</code>\r
+\r
+      </dd>\r
+      <dt title="{'UTF8': 'utf_8', 'LATIN-1': 'latin_1', 'SQL_ASCII': 'ascii', 'UNICODE': 'utf_8', 'LATIN1': 'latin_1'}">Value:</dt>\r
+      <dd title="{'UTF8': 'utf_8', 'LATIN-1': 'latin_1', 'SQL_ASCII': 'ascii', 'UNICODE': 'utf_8', 'LATIN1': 'latin_1'}"><table><tr><td>\r
+<pre class="variable">\r
+{'LATIN-1': 'latin_1',\r
+ 'LATIN1': 'latin_1',\r
+ 'SQL_ASCII': 'ascii',\r
+ 'UNICODE': 'utf_8',\r
+ 'UTF8': 'utf_8'}                                                      </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="FLOAT"></a>\r
+<h3>FLOAT</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847740&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847740&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847740&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="FLOATARRAY"></a>\r
+<h3>FLOATARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847AE0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847AE0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847AE0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="INTEGER"></a>\r
+<h3>INTEGER</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847700&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847700&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847700&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="INTEGERARRAY"></a>\r
+<h3>INTEGERARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847AC0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847AC0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847AC0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="INTERVAL"></a>\r
+<h3>INTERVAL</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x008479A0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x008479A0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x008479A0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="INTERVALARRAY"></a>\r
+<h3>INTERVALARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847C60&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847C60&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847C60&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="LONGINTEGER"></a>\r
+<h3>LONGINTEGER</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x008476C0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x008476C0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x008476C0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="LONGINTEGERARRAY"></a>\r
+<h3>LONGINTEGERARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847AA0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847AA0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847AA0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="NUMBER"></a>\r
+<h3>NUMBER</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847680&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847680&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847680&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="paramstyle"></a>\r
+<h3>paramstyle</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>str</code>\r
+\r
+      </dd>\r
+      <dt title="'pyformat'">Value:</dt>\r
+      <dd title="'pyformat'"><table><tr><td>\r
+<pre class="variable">\r
+<span class="variable-quote">'</span>pyformat<span class="variable-quote">'</span>                                                             </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="PYDATE"></a>\r
+<h3>PYDATE</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847DC0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847DC0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847DC0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="PYDATETIME"></a>\r
+<h3>PYDATETIME</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847D20&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847D20&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847D20&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="PYINTERVAL"></a>\r
+<h3>PYINTERVAL</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847DE0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847DE0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847DE0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="PYTIME"></a>\r
+<h3>PYTIME</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847D60&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847D60&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847D60&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="ROWID"></a>\r
+<h3>ROWID</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847A60&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847A60&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847A60&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="ROWIDARRAY"></a>\r
+<h3>ROWIDARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847CC0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847CC0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847CC0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="STRING"></a>\r
+<h3>STRING</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847820&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847820&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847820&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="string_types"></a>\r
+<h3>string_types</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>dict</code>\r
+\r
+      </dd>\r
+      <dt title="{1028: &lt;psycopg2._psycopg.type object at 0x00847CC0&gt;, 1005: &lt;psycopg2._psycopg.type object at 0x00847AC0&gt;, 16: &lt;psycopg2._psycopg.type object at 0x00847880&gt;, 17: &lt;psycopg2._psycopg.type object at 0x00847A00&gt;, 1042: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 1043: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 20: &lt;psycopg2._psycopg.type object at 0x008476C0&gt;, 21: &lt;psycopg2._psycopg.type object at 0x00847700&gt;, 23: &lt;psycopg2._psycopg.type object at 0x00847700&gt;, 25: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 26: &lt;psycopg2._psycopg.type object at 0x00847A60&gt;, 1182: &lt;psycopg2._psycopg.ty...">Value:</dt>\r
+      <dd title="{1028: &lt;psycopg2._psycopg.type object at 0x00847CC0&gt;, 1005: &lt;psycopg2._psycopg.type object at 0x00847AC0&gt;, 16: &lt;psycopg2._psycopg.type object at 0x00847880&gt;, 17: &lt;psycopg2._psycopg.type object at 0x00847A00&gt;, 1042: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 1043: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 20: &lt;psycopg2._psycopg.type object at 0x008476C0&gt;, 21: &lt;psycopg2._psycopg.type object at 0x00847700&gt;, 23: &lt;psycopg2._psycopg.type object at 0x00847700&gt;, 25: &lt;psycopg2._psycopg.type object at 0x00847820&gt;, 26: &lt;psycopg2._psycopg.type object at 0x00847A60&gt;, 1182: &lt;psycopg2._psycopg.ty..."><table><tr><td>\r
+<pre class="variable">\r
+{16: &lt;psycopg2._psycopg.type object at 0x00847880&gt;,\r
+ 17: &lt;psycopg2._psycopg.type object at 0x00847A00&gt;,\r
+ 18: &lt;psycopg2._psycopg.type object at 0x00847820&gt;,\r
+ 19: &lt;psycopg2._psycopg.type object at 0x00847820&gt;,\r
+ 20: &lt;psycopg2._psycopg.type object at 0x008476C0&gt;,\r
+ 21: &lt;psycopg2._psycopg.type object at 0x00847700&gt;,\r
+ 23: &lt;psycopg2._psycopg.type object at 0x00847700&gt;,\r
+ 25: &lt;psycopg2._psycopg.type object at 0x00847820&gt;,\r
+<span class="variable-ellipsis">...</span>                                                                    </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="STRINGARRAY"></a>\r
+<h3>STRINGARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847B60&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847B60&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847B60&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="threadsafety"></a>\r
+<h3>threadsafety</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>int</code>\r
+\r
+      </dd>\r
+      <dt title="2">Value:</dt>\r
+      <dd title="2"><table><tr><td>\r
+<pre class="variable">\r
+2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="TIME"></a>\r
+<h3>TIME</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847900&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847900&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847900&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="TIMEARRAY"></a>\r
+<h3>TIMEARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847BE0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847BE0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847BE0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="UNICODE"></a>\r
+<h3>UNICODE</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x008477E0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x008477E0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x008477E0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="UNICODEARRAY"></a>\r
+<h3>UNICODEARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00847B40&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00847B40&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00847B40&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:33 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2._psycopg.ISQLQuote-class.html b/trunk/psycopg2/doc/api/private/psycopg2._psycopg.ISQLQuote-class.html
new file mode 100644 (file)
index 0000000..3a7db8e
--- /dev/null
@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2._psycopg.ISQLQuote</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="../private/psycopg2._psycopg-module.html">Module&nbsp;_psycopg</a> ::\r
+        Class&nbsp;ISQLQuote\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<strong>show&nbsp;private</strong>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/psycopg2._psycopg.ISQLQuote-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type ISQLQuote</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
+         |\r
+        <strong class="uidshort">ISQLQuote</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Abstract ISQLQuote protocol</p>\r
+<p>An object conform to this protocol should expose a <tt class="docutils literal"><span class="pre">getquoted()</span></tt> method\r
+returning the SQL representation of the object.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#getbinary" class="summary-sig-name"><code>getbinary</code></a>()</span></code>\r
+<br />\r
+return SQL-quoted binary representation of this object</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#getbuffer" class="summary-sig-name"><code>getbuffer</code></a>()</span></code>\r
+<br />\r
+return this object</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html#getquoted" class="summary-sig-name"><code>getquoted</code></a>()</span></code>\r
+<br />\r
+return SQL-quoted representation of this object</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Property Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="_wrapped"></a><strong><code>_wrapped</code></strong></td></tr></table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+<p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__new__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
+          <span class="sig-arg">S</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+a new object with type S, a subtype of T\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="getbinary"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">getbinary</span>()</span>\r
+  </h3>\r
+<p>return SQL-quoted binary representation of this object</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="getbuffer"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">getbuffer</span>()</span>\r
+  </h3>\r
+<p>return this object</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="getquoted"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">getquoted</span>()</span>\r
+  </h3>\r
+<p>return SQL-quoted representation of this object</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2._psycopg.connection-class.html b/trunk/psycopg2/doc/api/private/psycopg2._psycopg.connection-class.html
new file mode 100644 (file)
index 0000000..0b6076e
--- /dev/null
@@ -0,0 +1,405 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2._psycopg.connection</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="../private/psycopg2._psycopg-module.html">Module&nbsp;_psycopg</a> ::\r
+        Class&nbsp;connection\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<strong>show&nbsp;private</strong>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/psycopg2._psycopg.connection-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type connection</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
+         |\r
+        <strong class="uidshort">connection</strong>\r
+</pre><br />\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="psycopg2.psycopg1.connection-class.html"><code>connection</code></a>,\r
+    <a href="psycopg2.extras.DictConnection-class.html"><code>DictConnection</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>connection(dsn, ...) -&gt; new connection object</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#close" class="summary-sig-name"><code>close</code></a>()</span></code>\r
+<br />\r
+Close the connection.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#commit" class="summary-sig-name"><code>commit</code></a>()</span></code>\r
+<br />\r
+Commit all changes to database.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype"><a href="../private/psycopg2._psycopg.cursor-class.html" class="link"><code>extensions.cursor</code></a></td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#cursor" class="summary-sig-name"><code>cursor</code></a>(<span class="summary-sig-arg">cursor_factory</span>)</span></code>\r
+<br />\r
+new cursor</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#rollback" class="summary-sig-name"><code>rollback</code></a>()</span></code>\r
+<br />\r
+Roll back all changes done to database.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#set_client_encoding" class="summary-sig-name"><code>set_client_encoding</code></a>(<span class="summary-sig-arg">encoding</span>)</span></code>\r
+<br />\r
+Set client encoding to <tt class="docutils literal docutils literal"><span class="pre">encoding</span></tt>.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#set_isolation_level" class="summary-sig-name"><code>set_isolation_level</code></a>(<span class="summary-sig-arg">level</span>)</span></code>\r
+<br />\r
+Switch isolation level to <tt class="docutils literal docutils literal"><span class="pre">level</span></tt>.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Property Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#closed"><code>closed</code></a></strong>: True if the connection is closed.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#dsn"><code>dsn</code></a></strong>: The current connection string.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#encoding"><code>encoding</code></a></strong>: The current client encoding.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#isolation_level"><code>isolation_level</code></a></strong>: The current isolation level.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="notices"></a><strong><code>notices</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="notifies"></a><strong><code>notifies</code></strong></td></tr><tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;DBAPI-2.0 errors</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#Error"><code>Error</code></a></strong>: Base class for error exceptions.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#Warning"><code>Warning</code></a></strong>: A database warning.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#InterfaceError"><code>InterfaceError</code></a></strong>: Error related to the database interface.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#DatabaseError"><code>DatabaseError</code></a></strong>: Error related to the database engine.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#InternalError"><code>InternalError</code></a></strong>: The database encountered an internal error.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#OperationalError"><code>OperationalError</code></a></strong>: Error related to database operation (disconnect, memory allocation etc).</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#ProgrammingError"><code>ProgrammingError</code></a></strong>: Error related to database programming (SQL error, table not found etc).</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#IntegrityError"><code>IntegrityError</code></a></strong>: Error related to database integrity.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#DataError"><code>DataError</code></a></strong>: Error related to problems with the processed data.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#NotSupportedError"><code>NotSupportedError</code></a></strong>: A not supported datbase API was called.</td></tr></table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+<p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__new__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
+          <span class="sig-arg">S</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+a new object with type S, a subtype of T\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__repr__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Representation operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+repr(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__str__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Informal representation operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+str(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__str__"><code>__builtin__.object.__str__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="close"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">close</span>()</span>\r
+  </h3>\r
+<p>Close the connection.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="commit"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">commit</span>()</span>\r
+  </h3>\r
+<p>Commit all changes to database.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="cursor"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">cursor</span>(<span class="sig-arg">cursor_factory</span>=<span class="sig-default">extensions.cursor</span>)</span>\r
+  </h3>\r
+<p>new cursor</p>\r
+<p>Return a new cursor.</p>\r
+<p>The <tt class="docutils literal"><span class="pre">cursor_factory</span></tt> argument can be used to\r
+create non-standard cursors by passing a class different from the\r
+default. Note that the new class <em>should</em> be a sub-class of\r
+<a href="../private/psycopg2._psycopg.cursor-class.html" class="link"><code>extensions.cursor</code></a>.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<a href="../private/psycopg2._psycopg.cursor-class.html" class="link"><code>extensions.cursor</code></a>      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="rollback"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">rollback</span>()</span>\r
+  </h3>\r
+<p>Roll back all changes done to database.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="set_client_encoding"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">set_client_encoding</span>(<span class="sig-arg">encoding</span>)</span>\r
+  </h3>\r
+<p>Set client encoding to <tt class="docutils literal docutils literal docutils literal"><span class="pre">encoding</span></tt>.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="set_isolation_level"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">set_isolation_level</span>(<span class="sig-arg">level</span>)</span>\r
+  </h3>\r
+<p>Switch isolation level to <tt class="docutils literal docutils literal docutils literal"><span class="pre">level</span></tt>.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF PROPERTY DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Property Details</th></tr>\r
+</table>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="Error"></a>\r
+<h3>Error</h3>\r
+<p>Base class for error exceptions.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="Warning"></a>\r
+<h3>Warning</h3>\r
+<p>A database warning.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="InterfaceError"></a>\r
+<h3>InterfaceError</h3>\r
+<p>Error related to the database interface.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="DatabaseError"></a>\r
+<h3>DatabaseError</h3>\r
+<p>Error related to the database engine.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="InternalError"></a>\r
+<h3>InternalError</h3>\r
+<p>The database encountered an internal error.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="OperationalError"></a>\r
+<h3>OperationalError</h3>\r
+<p>Error related to database operation (disconnect, memory allocation etc).</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="ProgrammingError"></a>\r
+<h3>ProgrammingError</h3>\r
+<p>Error related to database programming (SQL error, table not found etc).</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="IntegrityError"></a>\r
+<h3>IntegrityError</h3>\r
+<p>Error related to database integrity.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="DataError"></a>\r
+<h3>DataError</h3>\r
+<p>Error related to problems with the processed data.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="NotSupportedError"></a>\r
+<h3>NotSupportedError</h3>\r
+<p>A not supported datbase API was called.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="closed"></a>\r
+<h3>closed</h3>\r
+<p>True if the connection is closed.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="dsn"></a>\r
+<h3>dsn</h3>\r
+<p>The current connection string.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="encoding"></a>\r
+<h3>encoding</h3>\r
+<p>The current client encoding.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="isolation_level"></a>\r
+<h3>isolation_level</h3>\r
+<p>The current isolation level.</p>\r
+</td></tr></table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:31 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2._psycopg.cursor-class.html b/trunk/psycopg2/doc/api/private/psycopg2._psycopg.cursor-class.html
new file mode 100644 (file)
index 0000000..d3947aa
--- /dev/null
@@ -0,0 +1,599 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2._psycopg.cursor</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="../private/psycopg2._psycopg-module.html">Module&nbsp;_psycopg</a> ::\r
+        Class&nbsp;cursor\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<strong>show&nbsp;private</strong>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/psycopg2._psycopg.cursor-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type cursor</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
+         |\r
+        <strong class="uidshort">cursor</strong>\r
+</pre><br />\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="psycopg2.psycopg1.cursor-class.html"><code>cursor</code></a>,\r
+    <a href="psycopg2.extras.DictCursor-class.html"><code>DictCursor</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>A database cursor.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__iter__"></a><span class="summary-sig"><span class="summary-sig-name">__iter__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return iter(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#callproc" class="summary-sig-name"><code>callproc</code></a>(<span class="summary-sig-arg">procname</span>,\r
+          <span class="summary-sig-arg">parameters</span>,\r
+          <span class="summary-sig-arg">async</span>)</span></code>\r
+<br />\r
+Execute stored procedure.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#close" class="summary-sig-name"><code>close</code></a>()</span></code>\r
+<br />\r
+Close the cursor.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#copy_from" class="summary-sig-name"><code>copy_from</code></a>(<span class="summary-sig-arg">file</span>,\r
+          <span class="summary-sig-arg">table</span>,\r
+          <span class="summary-sig-arg">sep</span>,\r
+          <span class="summary-sig-arg">null</span>)</span></code>\r
+<br />\r
+Copy table from file.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#copy_to" class="summary-sig-name"><code>copy_to</code></a>(<span class="summary-sig-arg">file</span>,\r
+          <span class="summary-sig-arg">table</span>,\r
+          <span class="summary-sig-arg">sep</span>,\r
+          <span class="summary-sig-arg">null</span>)</span></code>\r
+<br />\r
+Copy table to file.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#execute" class="summary-sig-name"><code>execute</code></a>(<span class="summary-sig-arg">query</span>,\r
+          <span class="summary-sig-arg">vars</span>,\r
+          <span class="summary-sig-arg">async</span>)</span></code>\r
+<br />\r
+Execute query with bound vars.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#executemany" class="summary-sig-name"><code>executemany</code></a>(<span class="summary-sig-arg">query</span>,\r
+          <span class="summary-sig-arg">vars_list</span>,\r
+          <span class="summary-sig-arg">async</span>)</span></code>\r
+<br />\r
+Execute many queries with bound vars.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">list of tuple</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchall" class="summary-sig-name"><code>fetchall</code></a>()</span></code>\r
+<br />\r
+Return all the remaining rows of a query result set.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">list of tuple</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="summary-sig-name"><code>fetchmany</code></a>(<span class="summary-sig-arg">size</span>)</span></code>\r
+<br />\r
+Return the next <a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="link"><code>size</code></a> rows of a query result set in the form of a list\r
+of tuples (by default) or using the sequence factory previously set in\r
+the <a href="../private/psycopg2._psycopg.cursor-class.html#row_factory" class="link"><code>row_factory</code></a> attribute.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">tuple or None</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchone" class="summary-sig-name"><code>fetchone</code></a>()</span></code>\r
+<br />\r
+Return the next row of a query result set in the form of a tuple (by\r
+default) or using the sequence factory previously set in the\r
+<a href="../private/psycopg2._psycopg.cursor-class.html#row_factory" class="link"><code>row_factory</code></a> attribute.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">int</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fileno" class="summary-sig-name"><code>fileno</code></a>()</span></code>\r
+<br />\r
+Return file descriptor associated to database connection.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">bool</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#isready" class="summary-sig-name"><code>isready</code></a>()</span></code>\r
+<br />\r
+Return True if data is ready after an async query.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">str</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#mogrify" class="summary-sig-name"><code>mogrify</code></a>(<span class="summary-sig-arg">query</span>,\r
+          <span class="summary-sig-arg">vars</span>)</span></code>\r
+<br />\r
+Return query after vars binding.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="next"></a><span class="summary-sig"><span class="summary-sig-name">next</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return the next value, or raise StopIteration...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#nextset" class="summary-sig-name"><code>nextset</code></a>()</span></code>\r
+<br />\r
+Skip to next set of data.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#scroll" class="summary-sig-name"><code>scroll</code></a>(<span class="summary-sig-arg">value</span>,\r
+          <span class="summary-sig-arg">mode</span>)</span></code>\r
+<br />\r
+Scroll to new position according to mode.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#setinputsizes" class="summary-sig-name"><code>setinputsizes</code></a>(<span class="summary-sig-arg">sizes</span>)</span></code>\r
+<br />\r
+Set memory areas before execute.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#setoutputsize" class="summary-sig-name"><code>setoutputsize</code></a>(<span class="summary-sig-arg">size</span>,\r
+          <span class="summary-sig-arg">column</span>)</span></code>\r
+<br />\r
+Set column buffer size.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Property Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#arraysize"><code>arraysize</code></a></strong>: Number of records <a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="link"><code>fetchmany()</code></a> must fetch if not explicitely specified.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="binary_types"></a><strong><code>binary_types</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#connection"><code>connection</code></a></strong>: The connection where the cursor comes from.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#description"><code>description</code></a></strong>: Cursor description as defined in DBAPI-2.0.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#lastrowid"><code>lastrowid</code></a></strong>: The <tt class="docutils literal docutils literal docutils literal"><span class="pre">oid</span></tt> of the last row inserted by the cursor.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="name"></a><strong><code>name</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#query"><code>query</code></a></strong>: The last query text sent to the backend.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="row_factory"></a><strong><code>row_factory</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#rowcount"><code>rowcount</code></a></strong>: Number of rows read from the backend in the last command.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#rownumber"><code>rownumber</code></a></strong>: The current row position.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#statusmessage"><code>statusmessage</code></a></strong>: The return message of the last command.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="string_types"></a><strong><code>string_types</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="typecaster"></a><strong><code>typecaster</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="tzinfo_factory"></a><strong><code>tzinfo_factory</code></strong></td></tr></table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+<p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__iter__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__iter__</span>(<span class="sig-arg">x</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+iter(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__new__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
+          <span class="sig-arg">S</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+a new object with type S, a subtype of T\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__repr__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Representation operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+repr(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__str__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Informal representation operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+str(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__str__"><code>__builtin__.object.__str__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="callproc"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">callproc</span>(<span class="sig-arg">procname</span>,\r
+          <span class="sig-arg">parameters</span>=<span class="sig-default">None</span>,\r
+          <span class="sig-arg">async</span>=<span class="sig-default">0</span>)</span>\r
+  </h3>\r
+<p>Execute stored procedure.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="close"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">close</span>()</span>\r
+  </h3>\r
+<p>Close the cursor.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="copy_from"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">copy_from</span>(<span class="sig-arg">file</span>,\r
+          <span class="sig-arg">table</span>,\r
+          <span class="sig-arg">sep</span>=<span class="sig-default">'\t'</span>,\r
+          <span class="sig-arg">null</span>=<span class="sig-default">'\N'</span>)</span>\r
+  </h3>\r
+<p>Copy table from file.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="copy_to"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">copy_to</span>(<span class="sig-arg">file</span>,\r
+          <span class="sig-arg">table</span>,\r
+          <span class="sig-arg">sep</span>=<span class="sig-default">'\t'</span>,\r
+          <span class="sig-arg">null</span>=<span class="sig-default">'\N'</span>)</span>\r
+  </h3>\r
+<p>Copy table to file.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="execute"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">execute</span>(<span class="sig-arg">query</span>,\r
+          <span class="sig-arg">vars</span>=<span class="sig-default">None</span>,\r
+          <span class="sig-arg">async</span>=<span class="sig-default">0</span>)</span>\r
+  </h3>\r
+<p>Execute query with bound vars.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="executemany"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">executemany</span>(<span class="sig-arg">query</span>,\r
+          <span class="sig-arg">vars_list</span>=<span class="sig-default">()</span>,\r
+          <span class="sig-arg">async</span>=<span class="sig-default">0</span>)</span>\r
+  </h3>\r
+<p>Execute many queries with bound vars.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="fetchall"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">fetchall</span>()</span>\r
+  </h3>\r
+<p>Return all the remaining rows of a query result set.</p>\r
+<p>Rows are returned in the form of a list of tuples (by default) or using\r
+the sequence factory previously set in the <a href="../private/psycopg2._psycopg.cursor-class.html#row_factory" class="link"><code>row_factory</code></a> attribute.\r
+Return <code>None</code> when no more data is available.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+list of tuple      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="fetchmany"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">fetchmany</span>(<span class="sig-arg">size</span>=<span class="sig-default">self.arraysize</span>)</span>\r
+  </h3>\r
+<p>Return the next <a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="link"><code>size</code></a> rows of a query result set in the form of a list\r
+of tuples (by default) or using the sequence factory previously set in\r
+the <a href="../private/psycopg2._psycopg.cursor-class.html#row_factory" class="link"><code>row_factory</code></a> attribute. Return <code>None</code> when no more data is available.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+list of tuple      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="fetchone"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">fetchone</span>()</span>\r
+  </h3>\r
+<p>Return the next row of a query result set in the form of a tuple (by\r
+default) or using the sequence factory previously set in the\r
+<a href="../private/psycopg2._psycopg.cursor-class.html#row_factory" class="link"><code>row_factory</code></a> attribute. Return <code>None</code> when no more data is available.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+tuple or None      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="fileno"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">fileno</span>()</span>\r
+  </h3>\r
+<p>Return file descriptor associated to database connection.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+int      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="isready"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">isready</span>()</span>\r
+  </h3>\r
+<p>Return True if data is ready after an async query.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+bool      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="mogrify"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">mogrify</span>(<span class="sig-arg">query</span>,\r
+          <span class="sig-arg">vars</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+<p>Return query after vars binding.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+str      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="next"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">next</span>(<span class="sig-arg">x</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+the next value, or raise StopIteration\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="nextset"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">nextset</span>()</span>\r
+  </h3>\r
+<p>Skip to next set of data.</p>\r
+<p>This method is not supported (PostgreSQL does not have multiple data \r
+sets) and will raise a NotSupportedError exception.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="scroll"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">scroll</span>(<span class="sig-arg">value</span>,\r
+          <span class="sig-arg">mode</span>=<span class="sig-default">'relative'</span>)</span>\r
+  </h3>\r
+<p>Scroll to new position according to mode.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="setinputsizes"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">setinputsizes</span>(<span class="sig-arg">sizes</span>)</span>\r
+  </h3>\r
+<p>Set memory areas before execute.</p>\r
+<p>This method currently does nothing but it is safe to call it.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="setoutputsize"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">setoutputsize</span>(<span class="sig-arg">size</span>,\r
+          <span class="sig-arg">column</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+<p>Set column buffer size.</p>\r
+<p>This method currently does nothing but it is safe to call it.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF PROPERTY DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Property Details</th></tr>\r
+</table>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="arraysize"></a>\r
+<h3>arraysize</h3>\r
+<p>Number of records <a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="link"><code>fetchmany()</code></a> must fetch if not explicitely specified.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="connection"></a>\r
+<h3>connection</h3>\r
+<p>The connection where the cursor comes from.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="description"></a>\r
+<h3>description</h3>\r
+<p>Cursor description as defined in DBAPI-2.0.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="lastrowid"></a>\r
+<h3>lastrowid</h3>\r
+<p>The <tt class="docutils literal docutils literal docutils literal docutils literal"><span class="pre">oid</span></tt> of the last row inserted by the cursor.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="query"></a>\r
+<h3>query</h3>\r
+<p>The last query text sent to the backend.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="rowcount"></a>\r
+<h3>rowcount</h3>\r
+<p>Number of rows read from the backend in the last command.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="rownumber"></a>\r
+<h3>rownumber</h3>\r
+<p>The current row position.</p>\r
+</td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+\r
+<a name="statusmessage"></a>\r
+<h3>statusmessage</h3>\r
+<p>The return message of the last command.</p>\r
+</td></tr></table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.extensions-module.html b/trunk/psycopg2/doc/api/private/psycopg2.extensions-module.html
new file mode 100644 (file)
index 0000000..a78fd66
--- /dev/null
@@ -0,0 +1,418 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.extensions</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Module&nbsp;extensions\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.extensions-module.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extensions-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
+<h2 class="module">Module psycopg2.extensions</h2>\r
+\r
+<p>psycopg extensions to the DBAPI-2.0</p>\r
+<p>This module holds all the extensions to the DBAPI-2.0 provided by psycopg.</p>\r
+<ul class="rst-simple">\r
+<li><a href="../private/psycopg2._psycopg.connection-class.html" class="link"><code>connection</code></a> -- the new-type inheritable connection class</li>\r
+<li><a href="../private/psycopg2._psycopg.cursor-class.html" class="link"><code>cursor</code></a> -- the new-type inheritable cursor class</li>\r
+<li><a href="psycopg2.extensions-module.html#adapt" class="link"><code>adapt()</code></a> -- exposes the <a class="reference" href="http://www.python.org/peps/pep-0246.html">PEP-246</a> compatible adapting mechanism used\r
+by psycopg to adapt Python types to PostgreSQL ones</li>\r
+</ul>\r
+<hr/>\r
+\r
+<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Function Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">object</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.extensions-module.html#adapt" class="summary-sig-name"><code>adapt</code></a>(<span class="summary-sig-arg">obj</span>,\r
+          <span class="summary-sig-arg">protocol</span>,\r
+          <span class="summary-sig-arg">alternate</span>)</span></code>\r
+<br />\r
+adapt obj to given protocol</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new AsIs wrapper object</td>\r
+  <td><code><a name="AsIs"></a><span class="summary-sig"><span class="summary-sig-name">AsIs</span>(<span class="summary-sig-arg">obj</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new boolean value</td>\r
+  <td><code><a name="Boolean"></a><span class="summary-sig"><span class="summary-sig-name">Boolean</span>(<span class="summary-sig-arg">obj</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new wrapper</td>\r
+  <td><code><a name="DateFromPy"></a><span class="summary-sig"><span class="summary-sig-name">DateFromPy</span>(<span class="summary-sig-arg">datetime.date</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new wrapper</td>\r
+  <td><code><a name="IntervalFromPy"></a><span class="summary-sig"><span class="summary-sig-name">IntervalFromPy</span>(<span class="summary-sig-arg">datetime.timedelta</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new type object</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.extensions-module.html#new_type" class="summary-sig-name"><code>new_type</code></a>(<span class="summary-sig-arg">oids</span>,\r
+          <span class="summary-sig-arg">name</span>,\r
+          <span class="summary-sig-arg">adapter</span>)</span></code>\r
+<br />\r
+Create a new binding object.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new quoted string</td>\r
+  <td><code><a name="QuotedString"></a><span class="summary-sig"><span class="summary-sig-name">QuotedString</span>(<span class="summary-sig-arg">str</span>,\r
+          <span class="summary-sig-arg">enc</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.extensions-module.html#register_adapter" class="summary-sig-name"><code>register_adapter</code></a>(<span class="summary-sig-arg">typ</span>,\r
+          <span class="summary-sig-arg">callable</span>)</span></code>\r
+<br />\r
+Register 'callable' as an ISQLQuote adapter for type 'typ'.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">None</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.extensions-module.html#register_type" class="summary-sig-name"><code>register_type</code></a>(<span class="summary-sig-arg">obj</span>)</span></code>\r
+<br />\r
+register obj with psycopg type system</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new wrapper</td>\r
+  <td><code><a name="TimeFromPy"></a><span class="summary-sig"><span class="summary-sig-name">TimeFromPy</span>(<span class="summary-sig-arg">datetime.time</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new wrapper</td>\r
+  <td><code><a name="TimestampFromPy"></a><span class="summary-sig"><span class="summary-sig-name">TimestampFromPy</span>(<span class="summary-sig-arg">datetime.datetime</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF VARIABLE SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Variable Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
+<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT"><code>ISOLATION_LEVEL_AUTOCOMMIT</code></a></strong> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
+<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_COMMITTED"><code>ISOLATION_LEVEL_READ_COMMITTED</code></a></strong> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
+<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_UNCOMMITTED"><code>ISOLATION_LEVEL_READ_UNCOMMITTED</code></a></strong> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
+<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_REPEATABLE_READ"><code>ISOLATION_LEVEL_REPEATABLE_READ</code></a></strong> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
+<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE"><code>ISOLATION_LEVEL_SERIALIZABLE</code></a></strong> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF FUNCTION DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Function Details</th></tr>\r
+</table>\r
+\r
+<a name="adapt"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">adapt</span>(<span class="sig-arg">obj</span>,\r
+          <span class="sig-arg">protocol</span>,\r
+          <span class="sig-arg">alternate</span>)</span>\r
+  </h3>\r
+<p>adapt obj to given protocol</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+object      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="AsIs"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">AsIs</span>(<span class="sig-arg">obj</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new AsIs wrapper object      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="Boolean"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">Boolean</span>(<span class="sig-arg">obj</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new boolean value      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="DateFromPy"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">DateFromPy</span>(<span class="sig-arg">datetime.date</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new wrapper      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="IntervalFromPy"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">IntervalFromPy</span>(<span class="sig-arg">datetime.timedelta</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new wrapper      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="new_type"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">new_type</span>(<span class="sig-arg">oids</span>,\r
+          <span class="sig-arg">name</span>,\r
+          <span class="sig-arg">adapter</span>)</span>\r
+  </h3>\r
+<p>Create a new binding object. The object can be used with the\r
+<a href="psycopg2.extensions-module.html#register_type" class="link"><code>register_type()</code></a> function to bind PostgreSQL objects to python objects.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Parameters:</dt>\r
+      <dd><code><strong class="pname">oids</strong></code> -\r
+ Tuple of <tt class="docutils literal"><span class="pre">oid</span></tt> of the PostgreSQL types to convert.\r
+      </dd>\r
+      <dd><code><strong class="pname">name</strong></code> -\r
+ Name for the new type\r
+      </dd>\r
+      <dd><code><strong class="pname">adapter</strong></code> -\r
+ Callable to perform type conversion.\r
+It must have the signature <tt class="docutils literal"><span class="pre">fun(value,</span> <span class="pre">cur)</span></tt> where <tt class="docutils literal"><span class="pre">value</span></tt> is\r
+the string representation returned by PostgreSQL (<code>None</code> if <tt class="docutils literal"><span class="pre">NULL</span></tt>)\r
+and <tt class="docutils literal"><span class="pre">cur</span></tt> is the cursor from which data are read.\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new type object      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="QuotedString"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">QuotedString</span>(<span class="sig-arg">str</span>,\r
+          <span class="sig-arg">enc</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new quoted string      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="register_adapter"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">register_adapter</span>(<span class="sig-arg">typ</span>,\r
+          <span class="sig-arg">callable</span>)</span>\r
+  </h3>\r
+<p>Register 'callable' as an ISQLQuote adapter for type 'typ'.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="register_type"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">register_type</span>(<span class="sig-arg">obj</span>)</span>\r
+  </h3>\r
+<p>register obj with psycopg type system</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Parameters:</dt>\r
+      <dd><code><strong class="pname">obj</strong></code> -\r
+ A type adapter created by <a href="psycopg2.extensions-module.html#new_type" class="link"><code>new_type()</code></a>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+None      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="TimeFromPy"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">TimeFromPy</span>(<span class="sig-arg">datetime.time</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new wrapper      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="TimestampFromPy"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">TimestampFromPy</span>(<span class="sig-arg">datetime.datetime</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new wrapper      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF VARIABLE DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Variable Details</th></tr>\r
+</table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="ISOLATION_LEVEL_AUTOCOMMIT"></a>\r
+<h3>ISOLATION_LEVEL_AUTOCOMMIT</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>int</code>\r
+\r
+      </dd>\r
+      <dt title="0">Value:</dt>\r
+      <dd title="0"><table><tr><td>\r
+<pre class="variable">\r
+0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="ISOLATION_LEVEL_READ_COMMITTED"></a>\r
+<h3>ISOLATION_LEVEL_READ_COMMITTED</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>int</code>\r
+\r
+      </dd>\r
+      <dt title="1">Value:</dt>\r
+      <dd title="1"><table><tr><td>\r
+<pre class="variable">\r
+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="ISOLATION_LEVEL_READ_UNCOMMITTED"></a>\r
+<h3>ISOLATION_LEVEL_READ_UNCOMMITTED</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>int</code>\r
+\r
+      </dd>\r
+      <dt title="1">Value:</dt>\r
+      <dd title="1"><table><tr><td>\r
+<pre class="variable">\r
+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="ISOLATION_LEVEL_REPEATABLE_READ"></a>\r
+<h3>ISOLATION_LEVEL_REPEATABLE_READ</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>int</code>\r
+\r
+      </dd>\r
+      <dt title="2">Value:</dt>\r
+      <dd title="2"><table><tr><td>\r
+<pre class="variable">\r
+2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="ISOLATION_LEVEL_SERIALIZABLE"></a>\r
+<h3>ISOLATION_LEVEL_SERIALIZABLE</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>int</code>\r
+\r
+      </dd>\r
+      <dt title="2">Value:</dt>\r
+      <dd title="2"><table><tr><td>\r
+<pre class="variable">\r
+2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:32 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.extras-module.html b/trunk/psycopg2/doc/api/private/psycopg2.extras-module.html
new file mode 100644 (file)
index 0000000..463fc22
--- /dev/null
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.extras</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Module&nbsp;extras\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.extras-module.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
+<h2 class="module">Module psycopg2.extras</h2>\r
+\r
+<p>Miscellaneous goodies for psycopg2</p>\r
+<p>This module is a generic place used to hold little helper functions\r
+and classes untill a better place in the distribution is found.</p>\r
+<hr/>\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Classes</th></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.extras.DictConnection-class.html"><code>DictConnection</code></a></strong></td>\r
+  <td>A connection that uses DictCursor automatically.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.extras.DictCursor-class.html"><code>DictCursor</code></a></strong></td>\r
+  <td>A cursor that keeps a list of column name -&gt; index mappings.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.extras.DictRow-class.html"><code>DictRow</code></a></strong></td>\r
+  <td>A row object that allow by-colun-name access to data.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.extras.SQL_IN-class.html"><code>SQL_IN</code></a></strong></td>\r
+  <td>Adapt any iterable to an SQL quotable object.</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:32 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.extras.DictConnection-class.html b/trunk/psycopg2/doc/api/private/psycopg2.extras.DictConnection-class.html
new file mode 100644 (file)
index 0000000..73989b5
--- /dev/null
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.extras.DictConnection</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.extras-module.html">Module&nbsp;extras</a> ::\r
+        Class&nbsp;DictConnection\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.extras.DictConnection-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras.DictConnection-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type DictConnection</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+         |    \r
+<a href="../private/psycopg2._psycopg.connection-class.html"><code>connection</code></a> --+\r
+             |\r
+            <strong class="uidshort">DictConnection</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>A connection that uses DictCursor automatically.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="cursor"></a><span class="summary-sig"><span class="summary-sig-name">cursor</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from connection</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#close" class="summary-sig-name"><code>close</code></a>()</span></code>\r
+<br />\r
+Close the connection.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#commit" class="summary-sig-name"><code>commit</code></a>()</span></code>\r
+<br />\r
+Commit all changes to database.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#rollback" class="summary-sig-name"><code>rollback</code></a>()</span></code>\r
+<br />\r
+Roll back all changes done to database.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#set_client_encoding" class="summary-sig-name"><code>set_client_encoding</code></a>(<span class="summary-sig-arg">encoding</span>)</span></code>\r
+<br />\r
+Set client encoding to <tt class="docutils literal"><span class="pre">encoding</span></tt>.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#set_isolation_level" class="summary-sig-name"><code>set_isolation_level</code></a>(<span class="summary-sig-arg">level</span>)</span></code>\r
+<br />\r
+Switch isolation level to <tt class="docutils literal"><span class="pre">level</span></tt>.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Property Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from connection</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#closed"><code>closed</code></a></strong>: True if the connection is closed.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#DatabaseError"><code>DatabaseError</code></a></strong>: Error related to the database engine.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#DataError"><code>DataError</code></a></strong>: Error related to problems with the processed data.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#dsn"><code>dsn</code></a></strong>: The current connection string.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#encoding"><code>encoding</code></a></strong>: The current client encoding.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#Error"><code>Error</code></a></strong>: Base class for error exceptions.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#IntegrityError"><code>IntegrityError</code></a></strong>: Error related to database integrity.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#InterfaceError"><code>InterfaceError</code></a></strong>: Error related to the database interface.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#InternalError"><code>InternalError</code></a></strong>: The database encountered an internal error.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#isolation_level"><code>isolation_level</code></a></strong>: The current isolation level.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#notices"><code>notices</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#notifies"><code>notifies</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#NotSupportedError"><code>NotSupportedError</code></a></strong>: A not supported datbase API was called.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#OperationalError"><code>OperationalError</code></a></strong>: Error related to database operation (disconnect, memory allocation etc).</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#ProgrammingError"><code>ProgrammingError</code></a></strong>: Error related to database programming (SQL error, table not found etc).</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#Warning"><code>Warning</code></a></strong>: A database warning.</td></tr></table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="cursor"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">cursor</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="../private/psycopg2._psycopg.connection-class.html#cursor"><code>psycopg2._psycopg.connection.cursor</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:31 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.extras.DictCursor-class.html b/trunk/psycopg2/doc/api/private/psycopg2.extras.DictCursor-class.html
new file mode 100644 (file)
index 0000000..80a05c9
--- /dev/null
@@ -0,0 +1,359 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.extras.DictCursor</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.extras-module.html">Module&nbsp;extras</a> ::\r
+        Class&nbsp;DictCursor\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.extras.DictCursor-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras.DictCursor-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type DictCursor</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+         |    \r
+    <a href="../private/psycopg2._psycopg.cursor-class.html"><code>cursor</code></a> --+\r
+             |\r
+            <strong class="uidshort">DictCursor</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>A cursor that keeps a list of column name -&gt; index mappings.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="callproc"></a><span class="summary-sig"><span class="summary-sig-name">callproc</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">procname</span>,\r
+          <span class="summary-sig-arg">vars</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="execute"></a><span class="summary-sig"><span class="summary-sig-name">execute</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">query</span>,\r
+          <span class="summary-sig-arg">vars</span>,\r
+          <span class="summary-sig-arg">async</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="fetchall"></a><span class="summary-sig"><span class="summary-sig-name">fetchall</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="fetchmany"></a><span class="summary-sig"><span class="summary-sig-name">fetchmany</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">size</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="fetchone"></a><span class="summary-sig"><span class="summary-sig-name">fetchone</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="_build_index"></a><span class="summary-sig"><span class="summary-sig-name">_build_index</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from cursor</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__iter__" class="summary-sig-name"><code>__iter__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return iter(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#close" class="summary-sig-name"><code>close</code></a>()</span></code>\r
+<br />\r
+Close the cursor.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#copy_from" class="summary-sig-name"><code>copy_from</code></a>(<span class="summary-sig-arg">file</span>,\r
+          <span class="summary-sig-arg">table</span>,\r
+          <span class="summary-sig-arg">sep</span>,\r
+          <span class="summary-sig-arg">null</span>)</span></code>\r
+<br />\r
+Copy table from file.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#copy_to" class="summary-sig-name"><code>copy_to</code></a>(<span class="summary-sig-arg">file</span>,\r
+          <span class="summary-sig-arg">table</span>,\r
+          <span class="summary-sig-arg">sep</span>,\r
+          <span class="summary-sig-arg">null</span>)</span></code>\r
+<br />\r
+Copy table to file.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#executemany" class="summary-sig-name"><code>executemany</code></a>(<span class="summary-sig-arg">query</span>,\r
+          <span class="summary-sig-arg">vars_list</span>,\r
+          <span class="summary-sig-arg">async</span>)</span></code>\r
+<br />\r
+Execute many queries with bound vars.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">int</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fileno" class="summary-sig-name"><code>fileno</code></a>()</span></code>\r
+<br />\r
+Return file descriptor associated to database connection.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">bool</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#isready" class="summary-sig-name"><code>isready</code></a>()</span></code>\r
+<br />\r
+Return True if data is ready after an async query.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">str</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#mogrify" class="summary-sig-name"><code>mogrify</code></a>(<span class="summary-sig-arg">query</span>,\r
+          <span class="summary-sig-arg">vars</span>)</span></code>\r
+<br />\r
+Return query after vars binding.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#next" class="summary-sig-name"><code>next</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return the next value, or raise StopIteration...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#nextset" class="summary-sig-name"><code>nextset</code></a>()</span></code>\r
+<br />\r
+Skip to next set of data.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#scroll" class="summary-sig-name"><code>scroll</code></a>(<span class="summary-sig-arg">value</span>,\r
+          <span class="summary-sig-arg">mode</span>)</span></code>\r
+<br />\r
+Scroll to new position according to mode.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#setinputsizes" class="summary-sig-name"><code>setinputsizes</code></a>(<span class="summary-sig-arg">sizes</span>)</span></code>\r
+<br />\r
+Set memory areas before execute.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#setoutputsize" class="summary-sig-name"><code>setoutputsize</code></a>(<span class="summary-sig-arg">size</span>,\r
+          <span class="summary-sig-arg">column</span>)</span></code>\r
+<br />\r
+Set column buffer size.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Property Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from cursor</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#arraysize"><code>arraysize</code></a></strong>: Number of records <a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="link"><code>fetchmany()</code></a> must fetch if not explicitely specified.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#binary_types"><code>binary_types</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#connection"><code>connection</code></a></strong>: The connection where the cursor comes from.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#description"><code>description</code></a></strong>: Cursor description as defined in DBAPI-2.0.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#lastrowid"><code>lastrowid</code></a></strong>: The <tt class="docutils literal"><span class="pre">oid</span></tt> of the last row inserted by the cursor.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#name"><code>name</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#query"><code>query</code></a></strong>: The last query text sent to the backend.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#row_factory"><code>row_factory</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#rowcount"><code>rowcount</code></a></strong>: Number of rows read from the backend in the last command.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#rownumber"><code>rownumber</code></a></strong>: The current row position.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#statusmessage"><code>statusmessage</code></a></strong>: The return message of the last command.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#string_types"><code>string_types</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#typecaster"><code>typecaster</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#tzinfo_factory"><code>tzinfo_factory</code></a></strong></td></tr></table><br />\r
+\r
+\r
+<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Class Variable Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
+<td><strong><a href="../private/psycopg2.extras.DictCursor-class.html#__query_executed"><code>_DictCursor__query_executed</code></a></strong> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="callproc"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">callproc</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">procname</span>,\r
+          <span class="sig-arg">vars</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#callproc"><code>psycopg2._psycopg.cursor.callproc</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="execute"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">execute</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">query</span>,\r
+          <span class="sig-arg">vars</span>=<span class="sig-default">None</span>,\r
+          <span class="sig-arg">async</span>=<span class="sig-default">0</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#execute"><code>psycopg2._psycopg.cursor.execute</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="fetchall"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">fetchall</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#fetchall"><code>psycopg2._psycopg.cursor.fetchall</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="fetchmany"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">fetchmany</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">size</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany"><code>psycopg2._psycopg.cursor.fetchmany</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="fetchone"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">fetchone</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#fetchone"><code>psycopg2._psycopg.cursor.fetchone</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="_build_index"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">_build_index</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Class Variable Details</th></tr>\r
+</table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="_DictCursor__query_executed"></a>\r
+<h3>_DictCursor__query_executed</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>int</code>\r
+\r
+      </dd>\r
+      <dt title="0">Value:</dt>\r
+      <dd title="0"><table><tr><td>\r
+<pre class="variable">\r
+0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:32 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.extras.DictRow-class.html b/trunk/psycopg2/doc/api/private/psycopg2.extras.DictRow-class.html
new file mode 100644 (file)
index 0000000..db74990
--- /dev/null
@@ -0,0 +1,376 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.extras.DictRow</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.extras-module.html">Module&nbsp;extras</a> ::\r
+        Class&nbsp;DictRow\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.extras.DictRow-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras.DictRow-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type DictRow</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+         |    \r
+      <a href="__builtin__.list-class.html"><code>list</code></a> --+\r
+             |\r
+            <strong class="uidshort">DictRow</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>A row object that allow by-colun-name access to data.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">cursor</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__getitem__"></a><span class="summary-sig"><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">x</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="get"></a><span class="summary-sig"><span class="summary-sig-name">get</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">default</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="has_key"></a><span class="summary-sig"><span class="summary-sig-name">has_key</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">x</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="items"></a><span class="summary-sig"><span class="summary-sig-name">items</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="keys"></a><span class="summary-sig"><span class="summary-sig-name">keys</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="values"></a><span class="summary-sig"><span class="summary-sig-name">values</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from list</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__add__" class="summary-sig-name"><code>__add__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x+y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__contains__" class="summary-sig-name"><code>__contains__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return y in x...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__delitem__" class="summary-sig-name"><code>__delitem__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return del x[y]...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__delslice__" class="summary-sig-name"><code>__delslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">i</span>,\r
+          <span class="summary-sig-arg">j</span>)</span></code>\r
+<br />\r
+Use of negative indices is not supported.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__eq__" class="summary-sig-name"><code>__eq__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x==y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__ge__" class="summary-sig-name"><code>__ge__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x&gt;=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__getslice__" class="summary-sig-name"><code>__getslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">i</span>,\r
+          <span class="summary-sig-arg">j</span>)</span></code>\r
+<br />\r
+Use of negative indices is not supported.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__gt__" class="summary-sig-name"><code>__gt__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x&gt;y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__iadd__" class="summary-sig-name"><code>__iadd__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x+=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__imul__" class="summary-sig-name"><code>__imul__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x*=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__iter__" class="summary-sig-name"><code>__iter__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return iter(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__le__" class="summary-sig-name"><code>__le__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x&lt;=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__len__" class="summary-sig-name"><code>__len__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return len(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__lt__" class="summary-sig-name"><code>__lt__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x&lt;y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__mul__" class="summary-sig-name"><code>__mul__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">n</span>)</span></code>\r
+<br />\r
+Return x*n...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__ne__" class="summary-sig-name"><code>__ne__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x!=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__rmul__" class="summary-sig-name"><code>__rmul__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">n</span>)</span></code>\r
+<br />\r
+Return n*x...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__setitem__" class="summary-sig-name"><code>__setitem__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">i</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x[i]=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__setslice__" class="summary-sig-name"><code>__setslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">i</span>,\r
+          <span class="summary-sig-arg">j</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Use  of negative indices is not supported.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#append" class="summary-sig-name"><code>append</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">object</span>)</span></code>\r
+<br />\r
+append object to end</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#count" class="summary-sig-name"><code>count</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">value</span>)</span></code>\r
+<br />\r
+return number of occurrences of value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#extend" class="summary-sig-name"><code>extend</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">iterable</span>)</span></code>\r
+<br />\r
+extend list by appending elements from the iterable</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#index" class="summary-sig-name"><code>index</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+L.index(value, [start, [stop]]) -&gt; integer -- return first index of value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#insert" class="summary-sig-name"><code>insert</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">index</span>,\r
+          <span class="summary-sig-arg">object</span>)</span></code>\r
+<br />\r
+insert object before index</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#pop" class="summary-sig-name"><code>pop</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">index</span>)</span></code>\r
+<br />\r
+remove and return item at index (default last)</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#remove" class="summary-sig-name"><code>remove</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">value</span>)</span></code>\r
+<br />\r
+remove first occurrence of value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#reverse" class="summary-sig-name"><code>reverse</code></a>(<span class="summary-sig-arg">L</span>)</span></code>\r
+<br />\r
+reverse <em>IN PLACE</em></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#sort" class="summary-sig-name"><code>sort</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">cmpfunc</span>)</span></code>\r
+<br />\r
+stable sort <em>IN PLACE</em>; cmpfunc(x, y) -&gt; -1, 0, 1</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">cursor</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.list-class.html#__init__"><code>__builtin__.list.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__getitem__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__getitem__</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Indexing operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.list-class.html#__getitem__"><code>__builtin__.list.__getitem__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="get"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">get</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">x</span>,\r
+          <span class="sig-arg">default</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="has_key"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">has_key</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">x</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="items"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">items</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="keys"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">keys</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="values"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">values</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.extras.SQL_IN-class.html b/trunk/psycopg2/doc/api/private/psycopg2.extras.SQL_IN-class.html
new file mode 100644 (file)
index 0000000..6b7009b
--- /dev/null
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.extras.SQL_IN</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.extras-module.html">Module&nbsp;extras</a> ::\r
+        Class&nbsp;SQL_IN\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.extras.SQL_IN-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras.SQL_IN-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type SQL_IN</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
+         |\r
+        <strong class="uidshort">SQL_IN</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Adapt any iterable to an SQL quotable object.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">seq</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="getquoted"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="getquoted"></a><span class="summary-sig"><span class="summary-sig-name">getquoted</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">seq</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="getquoted"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">self</span>)</span>\r
+    <br /><em class="fname">(Informal representation operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="getquoted"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">getquoted</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.pool-module.html b/trunk/psycopg2/doc/api/private/psycopg2.pool-module.html
new file mode 100644 (file)
index 0000000..64e53c1
--- /dev/null
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.pool</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Module&nbsp;pool\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.pool-module.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
+<h2 class="module">Module psycopg2.pool</h2>\r
+\r
+<p>Connection pooling for psycopg2</p>\r
+<p>This module implements thread-safe (and not) connection pools.</p>\r
+<hr/>\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Classes</th></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a></strong></td>\r
+  <td>Generic key-based pooling code.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>PersistentConnectionPool</code></a></strong></td>\r
+  <td>A pool that assigns persistent connections to different threads.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.pool.SimpleConnectionPool-class.html"><code>SimpleConnectionPool</code></a></strong></td>\r
+  <td>A connection pool that can't be shared across different threads.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>ThreadedConnectionPool</code></a></strong></td>\r
+  <td>A connection pool that works with the threading module.</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF EXCEPTIONS =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Exceptions</th></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.pool.PoolError-class.html"><code>PoolError</code></a></strong></td>\r
+  <td>&nbsp;</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Function Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="dbg"></a><span class="summary-sig"><span class="summary-sig-name">dbg</span>(<span class="summary-sig-vararg">*args</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF FUNCTION DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Function Details</th></tr>\r
+</table>\r
+\r
+<a name="dbg"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">dbg</span>(<span class="sig-vararg">*args</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.pool.AbstractConnectionPool-class.html b/trunk/psycopg2/doc/api/private/psycopg2.pool.AbstractConnectionPool-class.html
new file mode 100644 (file)
index 0000000..be79964
--- /dev/null
@@ -0,0 +1,247 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.pool.AbstractConnectionPool</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
+        Class&nbsp;AbstractConnectionPool\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.pool.AbstractConnectionPool-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.AbstractConnectionPool-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type AbstractConnectionPool</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
+         |\r
+        <strong class="uidshort">AbstractConnectionPool</strong>\r
+</pre><br />\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>PersistentConnectionPool</code></a>,\r
+    <a href="psycopg2.pool.SimpleConnectionPool-class.html"><code>SimpleConnectionPool</code></a>,\r
+    <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>ThreadedConnectionPool</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>Generic key-based pooling code.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">minconn</span>,\r
+          <span class="summary-sig-arg">maxconn</span>,\r
+          <span class="summary-sig-vararg">*args</span>,\r
+          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>\r
+<br />\r
+Initialize the connection pool.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_closeall" class="summary-sig-name"><code>_closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
+<br />\r
+Close all connections.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_connect" class="summary-sig-name"><code>_connect</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">key</span>)</span></code>\r
+<br />\r
+Create a new connection and assign it to 'key' if not None.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getconn" class="summary-sig-name"><code>_getconn</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">key</span>)</span></code>\r
+<br />\r
+Get a free connection and assign it to 'key' if not None.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getkey" class="summary-sig-name"><code>_getkey</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
+<br />\r
+Return a new unique key.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_putconn" class="summary-sig-name"><code>_putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">conn</span>,\r
+          <span class="summary-sig-arg">key</span>,\r
+          <span class="summary-sig-arg">close</span>)</span></code>\r
+<br />\r
+Put away a connection.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">minconn</span>,\r
+          <span class="sig-arg">maxconn</span>,\r
+          <span class="sig-vararg">*args</span>,\r
+          <span class="sig-kwarg">**kwargs</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+<p>Initialize the connection pool.</p>\r
+<p>New 'minconn' connections are created immediately calling 'connfunc'\r
+with given parameters. The connection pool will support a maximum of\r
+about 'maxconn' connections.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="_closeall"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">_closeall</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+<p>Close all connections.</p>\r
+<p>Note that this can lead to some code fail badly when trying to use\r
+an already closed connection. If you call .closeall() make sure\r
+your code can deal with it.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="_connect"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">_connect</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">key</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+<p>Create a new connection and assign it to 'key' if not None.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="_getconn"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">_getconn</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">key</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+<p>Get a free connection and assign it to 'key' if not None.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="_getkey"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">_getkey</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+<p>Return a new unique key.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="_putconn"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">_putconn</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">conn</span>,\r
+          <span class="sig-arg">key</span>=<span class="sig-default">None</span>,\r
+          <span class="sig-arg">close</span>=<span class="sig-default">False</span>)</span>\r
+  </h3>\r
+<p>Put away a connection.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.pool.PersistentConnectionPool-class.html b/trunk/psycopg2/doc/api/private/psycopg2.pool.PersistentConnectionPool-class.html
new file mode 100644 (file)
index 0000000..4656713
--- /dev/null
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.pool.PersistentConnectionPool</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
+        Class&nbsp;PersistentConnectionPool\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.pool.PersistentConnectionPool-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.PersistentConnectionPool-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type PersistentConnectionPool</h2>\r
+\r
+<pre class="base-tree">\r
+            <a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+                     |    \r
+<a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a> --+\r
+                         |\r
+                        <strong class="uidshort">PersistentConnectionPool</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>A pool that assigns persistent connections to different threads.</p>\r
+<p>Note that this connection pool generates by itself the required keys\r
+using the current thread id.  This means that untill a thread put away\r
+a connection it will always get the same connection object by successive\r
+.getconn() calls. This also means that a thread can't use more than one\r
+single connection from the pool.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.PersistentConnectionPool-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">minconn</span>,\r
+          <span class="summary-sig-arg">maxconn</span>,\r
+          <span class="summary-sig-vararg">*args</span>,\r
+          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>\r
+<br />\r
+Initialize the threading lock.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.PersistentConnectionPool-class.html#closeall" class="summary-sig-name"><code>closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
+<br />\r
+Close all connections (even the one currently in use.)</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.PersistentConnectionPool-class.html#getconn" class="summary-sig-name"><code>getconn</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
+<br />\r
+Generate thread id and return a connection.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.PersistentConnectionPool-class.html#putconn" class="summary-sig-name"><code>putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">conn</span>,\r
+          <span class="summary-sig-arg">close</span>)</span></code>\r
+<br />\r
+Put away an unused connection.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from AbstractConnectionPool</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_closeall" class="summary-sig-name"><code>_closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
+<br />\r
+Close all connections.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_connect" class="summary-sig-name"><code>_connect</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">key</span>)</span></code>\r
+<br />\r
+Create a new connection and assign it to 'key' if not None.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getconn" class="summary-sig-name"><code>_getconn</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">key</span>)</span></code>\r
+<br />\r
+Get a free connection and assign it to 'key' if not None.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getkey" class="summary-sig-name"><code>_getkey</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
+<br />\r
+Return a new unique key.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_putconn" class="summary-sig-name"><code>_putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">conn</span>,\r
+          <span class="summary-sig-arg">key</span>,\r
+          <span class="summary-sig-arg">close</span>)</span></code>\r
+<br />\r
+Put away a connection.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">minconn</span>,\r
+          <span class="sig-arg">maxconn</span>,\r
+          <span class="sig-vararg">*args</span>,\r
+          <span class="sig-kwarg">**kwargs</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+<p>Initialize the threading lock.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__"><code>psycopg2.pool.AbstractConnectionPool.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="closeall"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">closeall</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+<p>Close all connections (even the one currently in use.)</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="getconn"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">getconn</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+<p>Generate thread id and return a connection.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="putconn"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">putconn</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">conn</span>=<span class="sig-default">None</span>,\r
+          <span class="sig-arg">close</span>=<span class="sig-default">False</span>)</span>\r
+  </h3>\r
+<p>Put away an unused connection.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.pool.PoolError-class.html b/trunk/psycopg2/doc/api/private/psycopg2.pool.PoolError-class.html
new file mode 100644 (file)
index 0000000..83a85cf
--- /dev/null
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.pool.PoolError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
+        Class&nbsp;PoolError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.pool.PoolError-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.PoolError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class PoolError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+        \r
+            |        \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+    \r
+                |    \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+\r
+                    |\r
+                   <strong class="uidshort">PoolError</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.pool.SimpleConnectionPool-class.html b/trunk/psycopg2/doc/api/private/psycopg2.pool.SimpleConnectionPool-class.html
new file mode 100644 (file)
index 0000000..06c9bb6
--- /dev/null
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.pool.SimpleConnectionPool</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
+        Class&nbsp;SimpleConnectionPool\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.pool.SimpleConnectionPool-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.SimpleConnectionPool-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type SimpleConnectionPool</h2>\r
+\r
+<pre class="base-tree">\r
+            <a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+                     |    \r
+<a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a> --+\r
+                         |\r
+                        <strong class="uidshort">SimpleConnectionPool</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>A connection pool that can't be shared across different threads.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.SimpleConnectionPool-class.html#_closeall" class="summary-sig-name"><code>closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
+<br />\r
+Close all connections.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.SimpleConnectionPool-class.html#_getconn" class="summary-sig-name"><code>getconn</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">key</span>)</span></code>\r
+<br />\r
+Get a free connection and assign it to 'key' if not None.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.SimpleConnectionPool-class.html#_putconn" class="summary-sig-name"><code>putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">conn</span>,\r
+          <span class="summary-sig-arg">key</span>,\r
+          <span class="summary-sig-arg">close</span>)</span></code>\r
+<br />\r
+Put away a connection.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from AbstractConnectionPool</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">minconn</span>,\r
+          <span class="summary-sig-arg">maxconn</span>,\r
+          <span class="summary-sig-vararg">*args</span>,\r
+          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>\r
+<br />\r
+Initialize the connection pool.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_closeall" class="summary-sig-name"><code>_closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
+<br />\r
+Close all connections.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_connect" class="summary-sig-name"><code>_connect</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">key</span>)</span></code>\r
+<br />\r
+Create a new connection and assign it to 'key' if not None.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getconn" class="summary-sig-name"><code>_getconn</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">key</span>)</span></code>\r
+<br />\r
+Get a free connection and assign it to 'key' if not None.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getkey" class="summary-sig-name"><code>_getkey</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
+<br />\r
+Return a new unique key.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_putconn" class="summary-sig-name"><code>_putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">conn</span>,\r
+          <span class="summary-sig-arg">key</span>,\r
+          <span class="summary-sig-arg">close</span>)</span></code>\r
+<br />\r
+Put away a connection.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="_closeall"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">closeall</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+<p>Close all connections.</p>\r
+<p>Note that this can lead to some code fail badly when trying to use\r
+an already closed connection. If you call .closeall() make sure\r
+your code can deal with it.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="_getconn"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">getconn</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">key</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+<p>Get a free connection and assign it to 'key' if not None.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="_putconn"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">putconn</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">conn</span>,\r
+          <span class="sig-arg">key</span>=<span class="sig-default">None</span>,\r
+          <span class="sig-arg">close</span>=<span class="sig-default">False</span>)</span>\r
+  </h3>\r
+<p>Put away a connection.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.pool.ThreadedConnectionPool-class.html b/trunk/psycopg2/doc/api/private/psycopg2.pool.ThreadedConnectionPool-class.html
new file mode 100644 (file)
index 0000000..1ad34cb
--- /dev/null
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.pool.ThreadedConnectionPool</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
+        Class&nbsp;ThreadedConnectionPool\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.pool.ThreadedConnectionPool-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.ThreadedConnectionPool-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type ThreadedConnectionPool</h2>\r
+\r
+<pre class="base-tree">\r
+            <a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+                     |    \r
+<a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a> --+\r
+                         |\r
+                        <strong class="uidshort">ThreadedConnectionPool</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>A connection pool that works with the threading module.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">minconn</span>,\r
+          <span class="summary-sig-arg">maxconn</span>,\r
+          <span class="summary-sig-vararg">*args</span>,\r
+          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>\r
+<br />\r
+Initialize the threading lock.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#closeall" class="summary-sig-name"><code>closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
+<br />\r
+Close all connections (even the one currently in use.)</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#getconn" class="summary-sig-name"><code>getconn</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">key</span>)</span></code>\r
+<br />\r
+Get a free connection and assign it to 'key' if not None.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#putconn" class="summary-sig-name"><code>putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">conn</span>,\r
+          <span class="summary-sig-arg">key</span>,\r
+          <span class="summary-sig-arg">close</span>)</span></code>\r
+<br />\r
+Put away an unused connection.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from AbstractConnectionPool</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_closeall" class="summary-sig-name"><code>_closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
+<br />\r
+Close all connections.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_connect" class="summary-sig-name"><code>_connect</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">key</span>)</span></code>\r
+<br />\r
+Create a new connection and assign it to 'key' if not None.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getconn" class="summary-sig-name"><code>_getconn</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">key</span>)</span></code>\r
+<br />\r
+Get a free connection and assign it to 'key' if not None.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_getkey" class="summary-sig-name"><code>_getkey</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
+<br />\r
+Return a new unique key.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2.pool.AbstractConnectionPool-class.html#_putconn" class="summary-sig-name"><code>_putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">conn</span>,\r
+          <span class="summary-sig-arg">key</span>,\r
+          <span class="summary-sig-arg">close</span>)</span></code>\r
+<br />\r
+Put away a connection.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">minconn</span>,\r
+          <span class="sig-arg">maxconn</span>,\r
+          <span class="sig-vararg">*args</span>,\r
+          <span class="sig-kwarg">**kwargs</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+<p>Initialize the threading lock.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__"><code>psycopg2.pool.AbstractConnectionPool.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="closeall"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">closeall</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+<p>Close all connections (even the one currently in use.)</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="getconn"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">getconn</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">key</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+<p>Get a free connection and assign it to 'key' if not None.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="putconn"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">putconn</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">conn</span>=<span class="sig-default">None</span>,\r
+          <span class="sig-arg">key</span>=<span class="sig-default">None</span>,\r
+          <span class="sig-arg">close</span>=<span class="sig-default">False</span>)</span>\r
+  </h3>\r
+<p>Put away an unused connection.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.psycopg1-module.html b/trunk/psycopg2/doc/api/private/psycopg2.psycopg1-module.html
new file mode 100644 (file)
index 0000000..f535cb9
--- /dev/null
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.psycopg1</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Module&nbsp;psycopg1\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.psycopg1-module.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.psycopg1-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
+<h2 class="module">Module psycopg2.psycopg1</h2>\r
+\r
+<p>psycopg 1.1.x compatibility module</p>\r
+<p>This module uses the new style connection and cursor types to build a psycopg\r
+1.1.1.x compatibility layer. It should be considered a temporary hack to run\r
+old code while porting to psycopg 2. Import it as follows:</p>\r
+<pre class="literal-block">\r
+from psycopg2 import psycopg1 as psycopg\r
+</pre>\r
+<hr/>\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Classes</th></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.psycopg1.connection-class.html"><code>connection</code></a></strong></td>\r
+  <td>psycopg 1.1.x connection.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.psycopg1.cursor-class.html"><code>cursor</code></a></strong></td>\r
+  <td>psycopg 1.1.x cursor.</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Function Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new psycopg 1.1.x compatible connection object</td>\r
+  <td><code><a name="connect"></a><span class="summary-sig"><span class="summary-sig-name">connect</span>(<span class="summary-sig-arg">dsn</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF FUNCTION DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Function Details</th></tr>\r
+</table>\r
+\r
+<a name="connect"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">connect</span>(<span class="sig-arg">dsn</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new psycopg 1.1.x compatible connection object      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.psycopg1.connection-class.html b/trunk/psycopg2/doc/api/private/psycopg2.psycopg1.connection-class.html
new file mode 100644 (file)
index 0000000..6d52ff8
--- /dev/null
@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.psycopg1.connection</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.psycopg1-module.html">Module&nbsp;psycopg1</a> ::\r
+        Class&nbsp;connection\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.psycopg1.connection-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.psycopg1.connection-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type connection</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+         |    \r
+<a href="../private/psycopg2._psycopg.connection-class.html"><code>connection</code></a> --+\r
+             |\r
+            <strong class="uidshort">connection</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>psycopg 1.1.x connection.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">switch autocommit on (1) or off (0)</td>\r
+  <td><code><a name="autocommit"></a><span class="summary-sig"><span class="summary-sig-name">autocommit</span>(<span class="summary-sig-arg">on_off</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new psycopg 1.1.x compatible cursor object</td>\r
+  <td><code><a name="cursor"></a><span class="summary-sig"><span class="summary-sig-name">cursor</span>()</span></code>\r
+</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from connection</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#close" class="summary-sig-name"><code>close</code></a>()</span></code>\r
+<br />\r
+Close the connection.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#commit" class="summary-sig-name"><code>commit</code></a>()</span></code>\r
+<br />\r
+Commit all changes to database.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#rollback" class="summary-sig-name"><code>rollback</code></a>()</span></code>\r
+<br />\r
+Roll back all changes done to database.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#set_client_encoding" class="summary-sig-name"><code>set_client_encoding</code></a>(<span class="summary-sig-arg">encoding</span>)</span></code>\r
+<br />\r
+Set client encoding to <tt class="docutils literal docutils literal docutils literal docutils literal"><span class="pre">encoding</span></tt>.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.connection-class.html#set_isolation_level" class="summary-sig-name"><code>set_isolation_level</code></a>(<span class="summary-sig-arg">level</span>)</span></code>\r
+<br />\r
+Switch isolation level to <tt class="docutils literal docutils literal docutils literal docutils literal"><span class="pre">level</span></tt>.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Property Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from connection</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#closed"><code>closed</code></a></strong>: True if the connection is closed.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#DatabaseError"><code>DatabaseError</code></a></strong>: Error related to the database engine.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#DataError"><code>DataError</code></a></strong>: Error related to problems with the processed data.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#dsn"><code>dsn</code></a></strong>: The current connection string.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#encoding"><code>encoding</code></a></strong>: The current client encoding.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#Error"><code>Error</code></a></strong>: Base class for error exceptions.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#IntegrityError"><code>IntegrityError</code></a></strong>: Error related to database integrity.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#InterfaceError"><code>InterfaceError</code></a></strong>: Error related to the database interface.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#InternalError"><code>InternalError</code></a></strong>: The database encountered an internal error.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#isolation_level"><code>isolation_level</code></a></strong>: The current isolation level.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#notices"><code>notices</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#notifies"><code>notifies</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#NotSupportedError"><code>NotSupportedError</code></a></strong>: A not supported datbase API was called.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#OperationalError"><code>OperationalError</code></a></strong>: Error related to database operation (disconnect, memory allocation etc).</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#ProgrammingError"><code>ProgrammingError</code></a></strong>: Error related to database programming (SQL error, table not found etc).</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.connection-class.html#Warning"><code>Warning</code></a></strong>: A database warning.</td></tr></table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="autocommit"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">autocommit</span>(<span class="sig-arg">on_off</span>=<span class="sig-default">1</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+switch autocommit on (1) or off (0)      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="cursor"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">cursor</span>()</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new psycopg 1.1.x compatible cursor object      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="../private/psycopg2._psycopg.connection-class.html#cursor"><code>psycopg2._psycopg.connection.cursor</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.psycopg1.cursor-class.html b/trunk/psycopg2/doc/api/private/psycopg2.psycopg1.cursor-class.html
new file mode 100644 (file)
index 0000000..17d22e0
--- /dev/null
@@ -0,0 +1,308 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.psycopg1.cursor</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.psycopg1-module.html">Module&nbsp;psycopg1</a> ::\r
+        Class&nbsp;cursor\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.psycopg1.cursor-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.psycopg1.cursor-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type cursor</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+         |    \r
+    <a href="../private/psycopg2._psycopg.cursor-class.html"><code>cursor</code></a> --+\r
+             |\r
+            <strong class="uidshort">cursor</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>psycopg 1.1.x cursor.</p>\r
+<p>Note that this cursor implements the exact procedure used by psycopg 1 to\r
+build dictionaries out of result rows. The DictCursor in the\r
+psycopg.extras modules implements a much better and faster algorithm.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="dictfetchall"></a><span class="summary-sig"><span class="summary-sig-name">dictfetchall</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="dictfetchmany"></a><span class="summary-sig"><span class="summary-sig-name">dictfetchmany</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">size</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="dictfetchone"></a><span class="summary-sig"><span class="summary-sig-name">dictfetchone</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__build_dict"></a><span class="summary-sig"><span class="summary-sig-name">__build_dict</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">row</span>)</span></code>\r
+</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from cursor</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__iter__" class="summary-sig-name"><code>__iter__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return iter(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#callproc" class="summary-sig-name"><code>callproc</code></a>(<span class="summary-sig-arg">procname</span>,\r
+          <span class="summary-sig-arg">parameters</span>,\r
+          <span class="summary-sig-arg">async</span>)</span></code>\r
+<br />\r
+Execute stored procedure.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#close" class="summary-sig-name"><code>close</code></a>()</span></code>\r
+<br />\r
+Close the cursor.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#copy_from" class="summary-sig-name"><code>copy_from</code></a>(<span class="summary-sig-arg">file</span>,\r
+          <span class="summary-sig-arg">table</span>,\r
+          <span class="summary-sig-arg">sep</span>,\r
+          <span class="summary-sig-arg">null</span>)</span></code>\r
+<br />\r
+Copy table from file.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#copy_to" class="summary-sig-name"><code>copy_to</code></a>(<span class="summary-sig-arg">file</span>,\r
+          <span class="summary-sig-arg">table</span>,\r
+          <span class="summary-sig-arg">sep</span>,\r
+          <span class="summary-sig-arg">null</span>)</span></code>\r
+<br />\r
+Copy table to file.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#execute" class="summary-sig-name"><code>execute</code></a>(<span class="summary-sig-arg">query</span>,\r
+          <span class="summary-sig-arg">vars</span>,\r
+          <span class="summary-sig-arg">async</span>)</span></code>\r
+<br />\r
+Execute query with bound vars.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#executemany" class="summary-sig-name"><code>executemany</code></a>(<span class="summary-sig-arg">query</span>,\r
+          <span class="summary-sig-arg">vars_list</span>,\r
+          <span class="summary-sig-arg">async</span>)</span></code>\r
+<br />\r
+Execute many queries with bound vars.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">list of tuple</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchall" class="summary-sig-name"><code>fetchall</code></a>()</span></code>\r
+<br />\r
+Return all the remaining rows of a query result set.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">list of tuple</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="summary-sig-name"><code>fetchmany</code></a>(<span class="summary-sig-arg">size</span>)</span></code>\r
+<br />\r
+Return the next <a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="link"><code>size</code></a> rows of a query result set in the form of a list\r
+of tuples (by default) or using the sequence factory previously set in\r
+the <a href="../private/psycopg2._psycopg.cursor-class.html#row_factory" class="link"><code>row_factory</code></a> attribute.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">tuple or None</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fetchone" class="summary-sig-name"><code>fetchone</code></a>()</span></code>\r
+<br />\r
+Return the next row of a query result set in the form of a tuple (by\r
+default) or using the sequence factory previously set in the\r
+<a href="../private/psycopg2._psycopg.cursor-class.html#row_factory" class="link"><code>row_factory</code></a> attribute.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">int</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#fileno" class="summary-sig-name"><code>fileno</code></a>()</span></code>\r
+<br />\r
+Return file descriptor associated to database connection.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">bool</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#isready" class="summary-sig-name"><code>isready</code></a>()</span></code>\r
+<br />\r
+Return True if data is ready after an async query.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">str</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#mogrify" class="summary-sig-name"><code>mogrify</code></a>(<span class="summary-sig-arg">query</span>,\r
+          <span class="summary-sig-arg">vars</span>)</span></code>\r
+<br />\r
+Return query after vars binding.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#next" class="summary-sig-name"><code>next</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return the next value, or raise StopIteration...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#nextset" class="summary-sig-name"><code>nextset</code></a>()</span></code>\r
+<br />\r
+Skip to next set of data.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#scroll" class="summary-sig-name"><code>scroll</code></a>(<span class="summary-sig-arg">value</span>,\r
+          <span class="summary-sig-arg">mode</span>)</span></code>\r
+<br />\r
+Scroll to new position according to mode.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#setinputsizes" class="summary-sig-name"><code>setinputsizes</code></a>(<span class="summary-sig-arg">sizes</span>)</span></code>\r
+<br />\r
+Set memory areas before execute.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="../private/psycopg2._psycopg.cursor-class.html#setoutputsize" class="summary-sig-name"><code>setoutputsize</code></a>(<span class="summary-sig-arg">size</span>,\r
+          <span class="summary-sig-arg">column</span>)</span></code>\r
+<br />\r
+Set column buffer size.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Property Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from cursor</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#arraysize"><code>arraysize</code></a></strong>: Number of records <a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany" class="link"><code>fetchmany()</code></a> must fetch if not explicitely specified.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#binary_types"><code>binary_types</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#connection"><code>connection</code></a></strong>: The connection where the cursor comes from.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#description"><code>description</code></a></strong>: Cursor description as defined in DBAPI-2.0.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#lastrowid"><code>lastrowid</code></a></strong>: The <tt class="docutils literal docutils literal"><span class="pre">oid</span></tt> of the last row inserted by the cursor.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#name"><code>name</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#query"><code>query</code></a></strong>: The last query text sent to the backend.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#row_factory"><code>row_factory</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#rowcount"><code>rowcount</code></a></strong>: Number of rows read from the backend in the last command.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#rownumber"><code>rownumber</code></a></strong>: The current row position.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#statusmessage"><code>statusmessage</code></a></strong>: The return message of the last command.</td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#string_types"><code>string_types</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#typecaster"><code>typecaster</code></a></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><strong><a href="../private/psycopg2._psycopg.cursor-class.html#tzinfo_factory"><code>tzinfo_factory</code></a></strong></td></tr></table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="dictfetchall"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">dictfetchall</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="dictfetchmany"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">dictfetchmany</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">size</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="dictfetchone"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">dictfetchone</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__build_dict"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__build_dict</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">row</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:33 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.tz-module.html b/trunk/psycopg2/doc/api/private/psycopg2.tz-module.html
new file mode 100644 (file)
index 0000000..9b8244a
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.tz</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Module&nbsp;tz\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.tz-module.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.tz-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
+<h2 class="module">Module psycopg2.tz</h2>\r
+\r
+<p>tzinfo implementations for psycopg2</p>\r
+<p>This module holds two different tzinfo implementations that can be used as\r
+the 'tzinfo' argument to datetime constructors, directly passed to psycopg\r
+functions or used to set the .tzinfo_factory attribute in cursors.</p>\r
+<hr/>\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Classes</th></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>FixedOffsetTimezone</code></a></strong></td>\r
+  <td>Fixed offset in minutes east from UTC.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.tz.LocalTimezone-class.html"><code>LocalTimezone</code></a></strong></td>\r
+  <td>Platform idea of local timezone.</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF VARIABLE SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Variable Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>timedelta</code></td>\r
+<td><strong><a href="psycopg2.tz-module.html#DSTDIFF"><code>DSTDIFF</code></a></strong> = <span title="datetime.timedelta(0, 3600)"><code>datetime.timedelta(0,&nbsp;3600)                    </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>LocalTimezone</code></td>\r
+<td><strong><a href="psycopg2.tz-module.html#LOCAL"><code>LOCAL</code></a></strong> = <span title="&lt;psycopg2.tz.LocalTimezone object at 0x00847090&gt;"><code>&lt;psycopg2.tz.LocalTimezone&nbsp;object&nbsp;at&nbsp;0x00847090&gt; </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>timedelta</code></td>\r
+<td><strong><a href="psycopg2.tz-module.html#STDOFFSET"><code>STDOFFSET</code></a></strong> = <span title="datetime.timedelta(0, 3600)"><code>datetime.timedelta(0,&nbsp;3600)                  </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>timedelta</code></td>\r
+<td><strong><a href="psycopg2.tz-module.html#ZERO"><code>ZERO</code></a></strong> = <span title="datetime.timedelta(0)"><code>datetime.timedelta(0)                             </code>\r
+</span></td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF VARIABLE DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Variable Details</th></tr>\r
+</table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="DSTDIFF"></a>\r
+<h3>DSTDIFF</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>timedelta</code>\r
+\r
+      </dd>\r
+      <dt title="datetime.timedelta(0, 3600)">Value:</dt>\r
+      <dd title="datetime.timedelta(0, 3600)"><table><tr><td>\r
+<pre class="variable">\r
+datetime.timedelta(0, 3600)                                            </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="LOCAL"></a>\r
+<h3>LOCAL</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>LocalTimezone</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2.tz.LocalTimezone object at 0x00847090&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2.tz.LocalTimezone object at 0x00847090&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2.tz.LocalTimezone object at 0x00847090&gt;                       </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="STDOFFSET"></a>\r
+<h3>STDOFFSET</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>timedelta</code>\r
+\r
+      </dd>\r
+      <dt title="datetime.timedelta(0, 3600)">Value:</dt>\r
+      <dd title="datetime.timedelta(0, 3600)"><table><tr><td>\r
+<pre class="variable">\r
+datetime.timedelta(0, 3600)                                            </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="ZERO"></a>\r
+<h3>ZERO</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>timedelta</code>\r
+\r
+      </dd>\r
+      <dt title="datetime.timedelta(0)">Value:</dt>\r
+      <dd title="datetime.timedelta(0)"><table><tr><td>\r
+<pre class="variable">\r
+datetime.timedelta(0)                                                  </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:37 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.tz.FixedOffsetTimezone-class.html b/trunk/psycopg2/doc/api/private/psycopg2.tz.FixedOffsetTimezone-class.html
new file mode 100644 (file)
index 0000000..4e6d658
--- /dev/null
@@ -0,0 +1,273 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.tz.FixedOffsetTimezone</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.tz-module.html">Module&nbsp;tz</a> ::\r
+        Class&nbsp;FixedOffsetTimezone\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.tz.FixedOffsetTimezone-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.tz.FixedOffsetTimezone-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type FixedOffsetTimezone</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+         |    \r
+    <a href="datetime.tzinfo-class.html"><code>tzinfo</code></a> --+\r
+             |\r
+            <strong class="uidshort">FixedOffsetTimezone</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Fixed offset in minutes east from UTC.</p>\r
+<p>This is exactly the implementation found in Python 2.3.x documentation,\r
+with a small change to the __init__ method to allow for pickling and a\r
+default name in the form 'sHH:MM' ('s' is the sign.)</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">offset</span>,\r
+          <span class="summary-sig-arg">name</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="dst"></a><span class="summary-sig"><span class="summary-sig-name">dst</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">dt</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="tzname"></a><span class="summary-sig"><span class="summary-sig-name">tzname</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">dt</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="utcoffset"></a><span class="summary-sig"><span class="summary-sig-name">utcoffset</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">dt</span>)</span></code>\r
+</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from tzinfo</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+-&gt; (cls, state)</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#fromutc" class="summary-sig-name"><code>fromutc</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+datetime in UTC -&gt; datetime in local time.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Class Variable Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>NoneType</code></td>\r
+<td><strong><a href="../private/psycopg2.tz.FixedOffsetTimezone-class.html#_name"><code>_name</code></a></strong> = <span title="None">None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>timedelta</code></td>\r
+<td><strong><a href="../private/psycopg2.tz.FixedOffsetTimezone-class.html#_offset"><code>_offset</code></a></strong> = <span title="datetime.timedelta(0)"><code>datetime.timedelta(0)                          </code>\r
+</span></td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">offset</span>=<span class="sig-default">None</span>,\r
+          <span class="sig-arg">name</span>=<span class="sig-default">None</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="dst"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">dst</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">dt</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="datetime.tzinfo-class.html#dst"><code>datetime.tzinfo.dst</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="tzname"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">tzname</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">dt</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="datetime.tzinfo-class.html#tzname"><code>datetime.tzinfo.tzname</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="utcoffset"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">utcoffset</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">dt</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="datetime.tzinfo-class.html#utcoffset"><code>datetime.tzinfo.utcoffset</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Class Variable Details</th></tr>\r
+</table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="_name"></a>\r
+<h3>_name</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>NoneType</code>\r
+\r
+      </dd>\r
+      <dt title="None">Value:</dt>\r
+      <dd title="None"><table><tr><td>\r
+<pre class="variable">\r
+None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="_offset"></a>\r
+<h3>_offset</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>timedelta</code>\r
+\r
+      </dd>\r
+      <dt title="datetime.timedelta(0)">Value:</dt>\r
+      <dd title="datetime.timedelta(0)"><table><tr><td>\r
+<pre class="variable">\r
+datetime.timedelta(0)                                                  </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/psycopg2.tz.LocalTimezone-class.html b/trunk/psycopg2/doc/api/private/psycopg2.tz.LocalTimezone-class.html
new file mode 100644 (file)
index 0000000..0954549
--- /dev/null
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.tz.LocalTimezone</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.tz-module.html">Module&nbsp;tz</a> ::\r
+        Class&nbsp;LocalTimezone\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/psycopg2.tz.LocalTimezone-class.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.tz.LocalTimezone-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type LocalTimezone</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+         |    \r
+    <a href="datetime.tzinfo-class.html"><code>tzinfo</code></a> --+\r
+             |\r
+            <strong class="uidshort">LocalTimezone</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Platform idea of local timezone.</p>\r
+<p>This is the exact implementation from the Pyhton 2.3 documentation.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="dst"></a><span class="summary-sig"><span class="summary-sig-name">dst</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">dt</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="tzname"></a><span class="summary-sig"><span class="summary-sig-name">tzname</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">dt</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="utcoffset"></a><span class="summary-sig"><span class="summary-sig-name">utcoffset</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">dt</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="_isdst"></a><span class="summary-sig"><span class="summary-sig-name">_isdst</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">dt</span>)</span></code>\r
+</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from tzinfo</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+-&gt; (cls, state)</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#fromutc" class="summary-sig-name"><code>fromutc</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+datetime in UTC -&gt; datetime in local time.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="dst"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">dst</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">dt</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="datetime.tzinfo-class.html#dst"><code>datetime.tzinfo.dst</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="tzname"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">tzname</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">dt</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="datetime.tzinfo-class.html#tzname"><code>datetime.tzinfo.tzname</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="utcoffset"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">utcoffset</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">dt</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="datetime.tzinfo-class.html#utcoffset"><code>datetime.tzinfo.utcoffset</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="_isdst"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">_isdst</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">dt</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/toc-everything.html b/trunk/psycopg2/doc/api/private/toc-everything.html
new file mode 100644 (file)
index 0000000..2b60e36
--- /dev/null
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>Everything</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading">Everything</h1>\r
+<hr />\r
+\r
+<!-- =========== START OF ALL CLASSES =========== -->\r
+<h2 class="tocheading">All&nbsp;Classes</h2>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg.connection-class.html">psycopg2._psycopg.connection</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg.cursor-class.html">psycopg2._psycopg.cursor</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg.ISQLQuote-class.html">psycopg2._psycopg.ISQLQuote</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictConnection-class.html">psycopg2.extras.DictConnection</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictCursor-class.html">psycopg2.extras.DictCursor</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictRow-class.html">psycopg2.extras.DictRow</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras.SQL_IN-class.html">psycopg2.extras.SQL_IN</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.AbstractConnectionPool-class.html">psycopg2.pool.AbstractConnectionPool</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.PersistentConnectionPool-class.html">psycopg2.pool.PersistentConnectionPool</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.SimpleConnectionPool-class.html">psycopg2.pool.SimpleConnectionPool</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.ThreadedConnectionPool-class.html">psycopg2.pool.ThreadedConnectionPool</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1.connection-class.html">psycopg2.psycopg1.connection</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1.cursor-class.html">psycopg2.psycopg1.cursor</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz.FixedOffsetTimezone-class.html">psycopg2.tz.FixedOffsetTimezone</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz.LocalTimezone-class.html">psycopg2.tz.LocalTimezone</a></p>\r
+\r
+<!-- =========== START OF ALL EXCEPTIONS =========== -->\r
+<h2 class="tocheading">All&nbsp;Exceptions</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.DatabaseError-class.html">psycopg2.DatabaseError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.DataError-class.html">psycopg2.DataError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.Error-class.html">psycopg2.Error</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.IntegrityError-class.html">psycopg2.IntegrityError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.InterfaceError-class.html">psycopg2.InterfaceError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.InternalError-class.html">psycopg2.InternalError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.NotSupportedError-class.html">psycopg2.NotSupportedError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.OperationalError-class.html">psycopg2.OperationalError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.PoolError-class.html">psycopg2.pool.PoolError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.ProgrammingError-class.html">psycopg2.ProgrammingError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.Warning-class.html">psycopg2.Warning</a></p>\r
+\r
+<!-- =========== START OF ALL FUNCTIONS =========== -->\r
+<h2 class="tocheading">All&nbsp;Functions</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#adapt">adapt</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#AsIs">AsIs</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Binary">Binary</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#Boolean">Boolean</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#connect">connect</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1-module.html#connect">connect</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Date">Date</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#DateFromPy">DateFromPy</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#DateFromTicks">DateFromTicks</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool-module.html#dbg">dbg</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#IntervalFromPy">IntervalFromPy</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#List">List</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#new_type">new_type</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#QuotedString">QuotedString</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#register_adapter">register_adapter</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#register_type">register_type</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Time">Time</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#TimeFromPy">TimeFromPy</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#TimeFromTicks">TimeFromTicks</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Timestamp">Timestamp</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#TimestampFromPy">TimestampFromPy</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#TimestampFromTicks">TimestampFromTicks</a></p>\r
+\r
+<!-- =========== START OF ALL VARIABLES =========== -->\r
+<h2 class="tocheading">All&nbsp;Variables</h2>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#__version__">__version__</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#_C_API">_C_API</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#adapters">adapters</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#apilevel">apilevel</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#BINARY">BINARY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#binary_types">binary_types</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#BINARYARRAY">BINARYARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#BOOLEAN">BOOLEAN</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#BOOLEANARRAY">BOOLEANARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DATE">DATE</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DATEARRAY">DATEARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DATETIME">DATETIME</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DATETIMEARRAY">DATETIMEARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DECIMAL">DECIMAL</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DECIMALARRAY">DECIMALARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#DSTDIFF">DSTDIFF</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#encodings">encodings</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#FLOAT">FLOAT</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#FLOATARRAY">FLOATARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#INTEGER">INTEGER</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#INTEGERARRAY">INTEGERARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#INTERVAL">INTERVAL</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#INTERVALARRAY">INTERVALARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT">ISOLATION_LEVEL_AUTOCOMMIT</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_COMMITTED">ISOLATION_LEVEL_READ_COMMITTED</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_UNCOMMITTED">ISOLATION_LEVEL_READ_UNCOMMITTED</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_REPEATABLE_READ">ISOLATION_LEVEL_REPEATABLE_READ</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE">ISOLATION_LEVEL_SERIALIZABLE</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#LOCAL">LOCAL</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#LONGINTEGER">LONGINTEGER</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#LONGINTEGERARRAY">LONGINTEGERARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#NUMBER">NUMBER</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#paramstyle">paramstyle</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#PYDATE">PYDATE</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#PYDATETIME">PYDATETIME</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#PYINTERVAL">PYINTERVAL</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#PYTIME">PYTIME</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#ROWID">ROWID</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#ROWIDARRAY">ROWIDARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#STDOFFSET">STDOFFSET</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#STRING">STRING</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#string_types">string_types</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#STRINGARRAY">STRINGARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#threadsafety">threadsafety</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#TIME">TIME</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#TIMEARRAY">TIMEARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#UNICODE">UNICODE</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#UNICODEARRAY">UNICODEARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#ZERO">ZERO</a></p>\r
+\r
+<hr />\r
+<span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-everything.html">hide&nbsp;private</a>]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/toc-psycopg2-module.html b/trunk/psycopg2/doc/api/private/toc-psycopg2-module.html
new file mode 100644 (file)
index 0000000..e07c73c
--- /dev/null
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading"><a target="mainFrame" href="psycopg2-module.html">psycopg2</a></h1>\r
+<hr />\r
+\r
+<!-- =========== START OF MODULES =========== -->\r
+<h2 class="tocheading">Modules</h2>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html">_psycopg</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html">extensions</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras-module.html">extras</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool-module.html">pool</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1-module.html">psycopg1</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html">tz</a></p>\r
+\r
+<!-- =========== START OF EXCEPTIONS =========== -->\r
+<h2 class="tocheading">Exceptions</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.DatabaseError-class.html">DatabaseError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.DataError-class.html">DataError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.Error-class.html">Error</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.IntegrityError-class.html">IntegrityError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.InterfaceError-class.html">InterfaceError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.InternalError-class.html">InternalError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.NotSupportedError-class.html">NotSupportedError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.OperationalError-class.html">OperationalError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.ProgrammingError-class.html">ProgrammingError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.Warning-class.html">Warning</a></p>\r
+\r
+<!-- =========== START OF FUNCTIONS =========== -->\r
+<h2 class="tocheading">Functions</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Binary">Binary</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#connect">connect</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Date">Date</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#DateFromTicks">DateFromTicks</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Time">Time</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#TimeFromTicks">TimeFromTicks</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Timestamp">Timestamp</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#TimestampFromTicks">TimestampFromTicks</a></p>\r
+\r
+<hr />\r
+<span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-psycopg2-module.html">hide&nbsp;private</a>]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/toc-psycopg2._psycopg-module.html b/trunk/psycopg2/doc/api/private/toc-psycopg2._psycopg-module.html
new file mode 100644 (file)
index 0000000..49975f5
--- /dev/null
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2._psycopg</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html">_psycopg</a></h1>\r
+<hr />\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<h2 class="tocheading">Classes</h2>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg.connection-class.html">connection</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg.cursor-class.html">cursor</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg.ISQLQuote-class.html">ISQLQuote</a></p>\r
+\r
+<!-- =========== START OF FUNCTIONS =========== -->\r
+<h2 class="tocheading">Functions</h2>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#List">List</a></p>\r
+\r
+<!-- =========== START OF VARIABLES =========== -->\r
+<h2 class="tocheading">Variables</h2>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#__version__">__version__</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#_C_API">_C_API</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#adapters">adapters</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#apilevel">apilevel</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#BINARY">BINARY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#binary_types">binary_types</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#BINARYARRAY">BINARYARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#BOOLEAN">BOOLEAN</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#BOOLEANARRAY">BOOLEANARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DATE">DATE</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DATEARRAY">DATEARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DATETIME">DATETIME</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DATETIMEARRAY">DATETIMEARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DECIMAL">DECIMAL</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#DECIMALARRAY">DECIMALARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#encodings">encodings</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#FLOAT">FLOAT</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#FLOATARRAY">FLOATARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#INTEGER">INTEGER</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#INTEGERARRAY">INTEGERARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#INTERVAL">INTERVAL</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#INTERVALARRAY">INTERVALARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#LONGINTEGER">LONGINTEGER</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#LONGINTEGERARRAY">LONGINTEGERARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#NUMBER">NUMBER</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#paramstyle">paramstyle</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#PYDATE">PYDATE</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#PYDATETIME">PYDATETIME</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#PYINTERVAL">PYINTERVAL</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#PYTIME">PYTIME</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#ROWID">ROWID</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#ROWIDARRAY">ROWIDARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#STRING">STRING</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#string_types">string_types</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#STRINGARRAY">STRINGARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#threadsafety">threadsafety</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#TIME">TIME</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#TIMEARRAY">TIMEARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#UNICODE">UNICODE</a></p>\r
+<p class="toc"><a target="mainFrame" href="../private/psycopg2._psycopg-module.html#UNICODEARRAY">UNICODEARRAY</a></p>\r
+\r
+<hr />\r
+<span class="options">[<strong>show&nbsp;private</strong>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/toc-psycopg2.extensions-module.html b/trunk/psycopg2/doc/api/private/toc-psycopg2.extensions-module.html
new file mode 100644 (file)
index 0000000..2e7c983
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.extensions</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading"><a target="mainFrame" href="psycopg2.extensions-module.html">extensions</a></h1>\r
+<hr />\r
+\r
+<!-- =========== START OF FUNCTIONS =========== -->\r
+<h2 class="tocheading">Functions</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#adapt">adapt</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#AsIs">AsIs</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#Boolean">Boolean</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#DateFromPy">DateFromPy</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#IntervalFromPy">IntervalFromPy</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#new_type">new_type</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#QuotedString">QuotedString</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#register_adapter">register_adapter</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#register_type">register_type</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#TimeFromPy">TimeFromPy</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#TimestampFromPy">TimestampFromPy</a></p>\r
+\r
+<!-- =========== START OF VARIABLES =========== -->\r
+<h2 class="tocheading">Variables</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT">ISOLATION_LEVEL_AUTOCOMMIT</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_COMMITTED">ISOLATION_LEVEL_READ_COMMITTED</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_UNCOMMITTED">ISOLATION_LEVEL_READ_UNCOMMITTED</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_REPEATABLE_READ">ISOLATION_LEVEL_REPEATABLE_READ</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE">ISOLATION_LEVEL_SERIALIZABLE</a></p>\r
+\r
+<hr />\r
+<span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-psycopg2.extensions-module.html">hide&nbsp;private</a>]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/toc-psycopg2.extras-module.html b/trunk/psycopg2/doc/api/private/toc-psycopg2.extras-module.html
new file mode 100644 (file)
index 0000000..505d1d8
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.extras</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading"><a target="mainFrame" href="psycopg2.extras-module.html">extras</a></h1>\r
+<hr />\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<h2 class="tocheading">Classes</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictConnection-class.html">DictConnection</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictCursor-class.html">DictCursor</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictRow-class.html">DictRow</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras.SQL_IN-class.html">SQL_IN</a></p>\r
+\r
+<hr />\r
+<span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-psycopg2.extras-module.html">hide&nbsp;private</a>]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/toc-psycopg2.pool-module.html b/trunk/psycopg2/doc/api/private/toc-psycopg2.pool-module.html
new file mode 100644 (file)
index 0000000..2b2a8cc
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.pool</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading"><a target="mainFrame" href="psycopg2.pool-module.html">pool</a></h1>\r
+<hr />\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<h2 class="tocheading">Classes</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.AbstractConnectionPool-class.html">AbstractConnectionPool</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.PersistentConnectionPool-class.html">PersistentConnectionPool</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.SimpleConnectionPool-class.html">SimpleConnectionPool</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.ThreadedConnectionPool-class.html">ThreadedConnectionPool</a></p>\r
+\r
+<!-- =========== START OF EXCEPTIONS =========== -->\r
+<h2 class="tocheading">Exceptions</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.PoolError-class.html">PoolError</a></p>\r
+\r
+<!-- =========== START OF FUNCTIONS =========== -->\r
+<h2 class="tocheading">Functions</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool-module.html#dbg">dbg</a></p>\r
+\r
+<hr />\r
+<span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-psycopg2.pool-module.html">hide&nbsp;private</a>]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/toc-psycopg2.psycopg1-module.html b/trunk/psycopg2/doc/api/private/toc-psycopg2.psycopg1-module.html
new file mode 100644 (file)
index 0000000..20971b2
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.psycopg1</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading"><a target="mainFrame" href="psycopg2.psycopg1-module.html">psycopg1</a></h1>\r
+<hr />\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<h2 class="tocheading">Classes</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1.connection-class.html">connection</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1.cursor-class.html">cursor</a></p>\r
+\r
+<!-- =========== START OF FUNCTIONS =========== -->\r
+<h2 class="tocheading">Functions</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1-module.html#connect">connect</a></p>\r
+\r
+<hr />\r
+<span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-psycopg2.psycopg1-module.html">hide&nbsp;private</a>]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/toc-psycopg2.tz-module.html b/trunk/psycopg2/doc/api/private/toc-psycopg2.tz-module.html
new file mode 100644 (file)
index 0000000..fce1191
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.tz</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading"><a target="mainFrame" href="psycopg2.tz-module.html">tz</a></h1>\r
+<hr />\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<h2 class="tocheading">Classes</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz.FixedOffsetTimezone-class.html">FixedOffsetTimezone</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz.LocalTimezone-class.html">LocalTimezone</a></p>\r
+\r
+<!-- =========== START OF VARIABLES =========== -->\r
+<h2 class="tocheading">Variables</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#DSTDIFF">DSTDIFF</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#LOCAL">LOCAL</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#STDOFFSET">STDOFFSET</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#ZERO">ZERO</a></p>\r
+\r
+<hr />\r
+<span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-psycopg2.tz-module.html">hide&nbsp;private</a>]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/toc.html b/trunk/psycopg2/doc/api/private/toc.html
new file mode 100644 (file)
index 0000000..1e31df5
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>Table of Contents</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading">Table&nbsp;of&nbsp;Contents</h1>\r
+<hr />\r
+<p class="toc"><a target="moduleFrame" href="toc-everything.html">Everything</a></p>\r
+\r
+<!-- =========== START OF PACKAGES =========== -->\r
+<h2 class="tocheading">Packages</h2>\r
+<p class="toc"><a target="moduleFrame" href="toc-psycopg2-module.html" onclick="setFrame('toc-psycopg2-module.html', 'psycopg2-module.html');">psycopg2</a></p>\r
+\r
+<!-- =========== START OF MODULES =========== -->\r
+<h2 class="tocheading">Modules</h2>\r
+<p class="toc"><a target="moduleFrame" href="toc-psycopg2._psycopg-module.html" onclick="setFrame('toc-psycopg2._psycopg-module.html', 'psycopg2._psycopg-module.html');">psycopg2._psycopg</a></p>\r
+<p class="toc"><a target="moduleFrame" href="toc-psycopg2.extensions-module.html" onclick="setFrame('toc-psycopg2.extensions-module.html', 'psycopg2.extensions-module.html');">psycopg2.extensions</a></p>\r
+<p class="toc"><a target="moduleFrame" href="toc-psycopg2.extras-module.html" onclick="setFrame('toc-psycopg2.extras-module.html', 'psycopg2.extras-module.html');">psycopg2.extras</a></p>\r
+<p class="toc"><a target="moduleFrame" href="toc-psycopg2.pool-module.html" onclick="setFrame('toc-psycopg2.pool-module.html', 'psycopg2.pool-module.html');">psycopg2.pool</a></p>\r
+<p class="toc"><a target="moduleFrame" href="toc-psycopg2.psycopg1-module.html" onclick="setFrame('toc-psycopg2.psycopg1-module.html', 'psycopg2.psycopg1-module.html');">psycopg2.psycopg1</a></p>\r
+<p class="toc"><a target="moduleFrame" href="toc-psycopg2.tz-module.html" onclick="setFrame('toc-psycopg2.tz-module.html', 'psycopg2.tz-module.html');">psycopg2.tz</a></p>\r
+\r
+<hr />\r
+<span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc.html">hide&nbsp;private</a>]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/private/trees.html b/trunk/psycopg2/doc/api/private/trees.html
new file mode 100644 (file)
index 0000000..5907cfa
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>Module and Class Hierarchies</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/trees.html">hide&nbsp;private</a>]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="trees.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF MODULE HIERARCHY =========== -->\r
+<h2>Module Hierarchy</h2>\r
+<ul>\r
+<li> <strong class="uidlink"><a href="psycopg2-module.html"><code>psycopg2</code></a></strong>: <em class="summary">A Python driver for PostgreSQL</em>  <ul>\r
+    <li> <strong class="uidlink"><a href="../private/psycopg2._psycopg-module.html"><code>_psycopg</code></a></strong>: <em class="summary">psycopg PostgreSQL driver</em></li>\r
+    <li> <strong class="uidlink"><a href="psycopg2.extensions-module.html"><code>extensions</code></a></strong>: <em class="summary">psycopg extensions to the DBAPI-2.0</em></li>\r
+    <li> <strong class="uidlink"><a href="psycopg2.extras-module.html"><code>extras</code></a></strong>: <em class="summary">Miscellaneous goodies for psycopg2</em></li>\r
+    <li> <strong class="uidlink"><a href="psycopg2.pool-module.html"><code>pool</code></a></strong>: <em class="summary">Connection pooling for psycopg2</em></li>\r
+    <li> <strong class="uidlink"><a href="psycopg2.psycopg1-module.html"><code>psycopg1</code></a></strong>: <em class="summary">psycopg 1.1.x compatibility module</em></li>\r
+    <li> <strong class="uidlink"><a href="psycopg2.tz-module.html"><code>tz</code></a></strong>: <em class="summary">tzinfo implementations for psycopg2</em></li>\r
+  </ul>\r
+</li>\r
+</ul>\r
+\r
+<!-- =========== START OF CLASS HIERARCHY =========== -->\r
+<h2>Class Hierarchy</h2>\r
+<ul>\r
+  <li> <strong class="uidlink"><a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></strong>: <em class="summary">\r
+The most base type</em>\r
+   <ul>\r
+    <li> <strong class="uidlink"><a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></strong>: <em class="summary">\r
+Generic key-based pooling code.</em>\r
+     <ul>\r
+      <li> <strong class="uidlink"><a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></strong>: <em class="summary">\r
+A pool that assigns persistent connections to different threads.</em>\r
+      </li>\r
+      <li> <strong class="uidlink"><a href="psycopg2.pool.SimpleConnectionPool-class.html"><code>psycopg2.pool.SimpleConnectionPool</code></a></strong>: <em class="summary">\r
+A connection pool that can't be shared across different threads.</em>\r
+      </li>\r
+      <li> <strong class="uidlink"><a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></strong>: <em class="summary">\r
+A connection pool that works with the threading module.</em>\r
+      </li>\r
+     </ul>\r
+    </li>\r
+    <li> <strong class="uidlink"><a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></strong>: <em class="summary">\r
+list() -&gt; new list\r
+list(sequence) -&gt; new list initialized from sequence's items</em>\r
+     <ul>\r
+      <li> <strong class="uidlink"><a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></strong>: <em class="summary">\r
+A row object that allow by-colun-name access to data.</em>\r
+      </li>\r
+     </ul>\r
+    </li>\r
+    <li> <strong class="uidlink"><a href="psycopg2.extras.SQL_IN-class.html"><code>psycopg2.extras.SQL_IN</code></a></strong>: <em class="summary">\r
+Adapt any iterable to an SQL quotable object.</em>\r
+    </li>\r
+    <li> <strong class="uidlink"><a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></strong>: <em class="summary">\r
+type(object) -&gt; the object's type\r
+type(name, bases, dict) -&gt; a new type</em>\r
+    </li>\r
+    <li> <strong class="uidlink"><a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></strong>: <em class="summary">\r
+Abstract base class for time zone info objects.</em>\r
+     <ul>\r
+      <li> <strong class="uidlink"><a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></strong>: <em class="summary">\r
+Fixed offset in minutes east from UTC.</em>\r
+      </li>\r
+      <li> <strong class="uidlink"><a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></strong>: <em class="summary">\r
+Platform idea of local timezone.</em>\r
+      </li>\r
+     </ul>\r
+    </li>\r
+    <li> <strong class="uidlink"><a href="../private/psycopg2._psycopg.connection-class.html"><code>psycopg2._psycopg.connection</code></a></strong>: <em class="summary">\r
+connection(dsn, ...) -&gt; new connection object</em>\r
+     <ul>\r
+      <li> <strong class="uidlink"><a href="psycopg2.psycopg1.connection-class.html"><code>psycopg2.psycopg1.connection</code></a></strong>: <em class="summary">\r
+psycopg 1.1.x connection.</em>\r
+      </li>\r
+      <li> <strong class="uidlink"><a href="psycopg2.extras.DictConnection-class.html"><code>psycopg2.extras.DictConnection</code></a></strong>: <em class="summary">\r
+A connection that uses DictCursor automatically.</em>\r
+      </li>\r
+     </ul>\r
+    </li>\r
+    <li> <strong class="uidlink"><a href="../private/psycopg2._psycopg.cursor-class.html"><code>psycopg2._psycopg.cursor</code></a></strong>: <em class="summary">\r
+A database cursor.</em>\r
+     <ul>\r
+      <li> <strong class="uidlink"><a href="psycopg2.psycopg1.cursor-class.html"><code>psycopg2.psycopg1.cursor</code></a></strong>: <em class="summary">\r
+psycopg 1.1.x cursor.</em>\r
+      </li>\r
+      <li> <strong class="uidlink"><a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></strong>: <em class="summary">\r
+A cursor that keeps a list of column name -&gt; index mappings.</em>\r
+      </li>\r
+     </ul>\r
+    </li>\r
+    <li> <strong class="uidlink"><a href="../private/psycopg2._psycopg.ISQLQuote-class.html"><code>psycopg2._psycopg.ISQLQuote</code></a></strong>: <em class="summary">\r
+Abstract ISQLQuote protocol</em>\r
+    </li>\r
+   </ul>\r
+  </li>\r
+  <li> <strong class="uidlink"><a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></strong>: <em class="summary">\r
+Common base class for all exceptions.</em>\r
+   <ul>\r
+    <li> <strong class="uidlink"><a href="exceptions.StandardError-class.html"><code>exceptions.StandardError</code></a></strong>: <em class="summary">\r
+Base class for all standard Python exceptions.</em>\r
+     <ul>\r
+      <li> <strong class="uidlink"><a href="psycopg2.Error-class.html"><code>psycopg2.Error</code></a></strong>: <em class="summary">\r
+Base class for error exceptions.</em>\r
+       <ul>\r
+        <li> <strong class="uidlink"><a href="psycopg2.DatabaseError-class.html"><code>psycopg2.DatabaseError</code></a></strong>: <em class="summary">\r
+Error related to the database engine.</em>\r
+         <ul>\r
+          <li> <strong class="uidlink"><a href="psycopg2.DataError-class.html"><code>psycopg2.DataError</code></a></strong>: <em class="summary">\r
+Error related to problems with the processed data.</em>\r
+          </li>\r
+          <li> <strong class="uidlink"><a href="psycopg2.IntegrityError-class.html"><code>psycopg2.IntegrityError</code></a></strong>: <em class="summary">\r
+Error related to database integrity.</em>\r
+          </li>\r
+          <li> <strong class="uidlink"><a href="psycopg2.InternalError-class.html"><code>psycopg2.InternalError</code></a></strong>: <em class="summary">\r
+The database encountered an internal error.</em>\r
+          </li>\r
+          <li> <strong class="uidlink"><a href="psycopg2.NotSupportedError-class.html"><code>psycopg2.NotSupportedError</code></a></strong>: <em class="summary">\r
+A not supported datbase API was called.</em>\r
+          </li>\r
+          <li> <strong class="uidlink"><a href="psycopg2.OperationalError-class.html"><code>psycopg2.OperationalError</code></a></strong>: <em class="summary">\r
+Error related to database operation (disconnect, memory allocation etc).</em>\r
+          </li>\r
+          <li> <strong class="uidlink"><a href="psycopg2.ProgrammingError-class.html"><code>psycopg2.ProgrammingError</code></a></strong>: <em class="summary">\r
+Error related to database programming (SQL error, table not found etc).</em>\r
+          </li>\r
+         </ul>\r
+        </li>\r
+        <li> <strong class="uidlink"><a href="psycopg2.InterfaceError-class.html"><code>psycopg2.InterfaceError</code></a></strong>: <em class="summary">\r
+Error related to the database interface.</em>\r
+        </li>\r
+        <li> <strong class="uidlink"><a href="psycopg2.pool.PoolError-class.html"><code>psycopg2.pool.PoolError</code></a></strong>\r
+        </li>\r
+       </ul>\r
+      </li>\r
+      <li> <strong class="uidlink"><a href="psycopg2.Warning-class.html"><code>psycopg2.Warning</code></a></strong>: <em class="summary">\r
+A database warning.</em>\r
+      </li>\r
+     </ul>\r
+    </li>\r
+   </ul>\r
+  </li>\r
+</ul>\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:37 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/__builtin__.list-class.html b/trunk/psycopg2/doc/api/public/__builtin__.list-class.html
new file mode 100644 (file)
index 0000000..4ede43e
--- /dev/null
@@ -0,0 +1,817 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>__builtin__.list</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        Module&nbsp;__builtin__ ::\r
+        Class&nbsp;list\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/__builtin__.list-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.list-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type list</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
+         |\r
+        <strong class="uidshort">list</strong>\r
+</pre><br />\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="psycopg2.extras.DictRow-class.html"><code>DictRow</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>list() -&gt; new list\r
+list(sequence) -&gt; new list initialized from sequence's items</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__add__"></a><span class="summary-sig"><span class="summary-sig-name">__add__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x+y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__contains__"></a><span class="summary-sig"><span class="summary-sig-name">__contains__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return y in x...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__delitem__"></a><span class="summary-sig"><span class="summary-sig-name">__delitem__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return del x[y]...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__delslice__" class="summary-sig-name"><code>__delslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">i</span>,\r
+          <span class="summary-sig-arg">j</span>)</span></code>\r
+<br />\r
+Use of negative indices is not supported.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__eq__"></a><span class="summary-sig"><span class="summary-sig-name">__eq__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x==y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__ge__"></a><span class="summary-sig"><span class="summary-sig-name">__ge__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x&gt;=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__getitem__"></a><span class="summary-sig"><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x[y]...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__getslice__" class="summary-sig-name"><code>__getslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">i</span>,\r
+          <span class="summary-sig-arg">j</span>)</span></code>\r
+<br />\r
+Use of negative indices is not supported.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__gt__"></a><span class="summary-sig"><span class="summary-sig-name">__gt__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x&gt;y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__hash__"></a><span class="summary-sig"><span class="summary-sig-name">__hash__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__iadd__"></a><span class="summary-sig"><span class="summary-sig-name">__iadd__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x+=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__imul__"></a><span class="summary-sig"><span class="summary-sig-name">__imul__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x*=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__iter__"></a><span class="summary-sig"><span class="summary-sig-name">__iter__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return iter(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__le__"></a><span class="summary-sig"><span class="summary-sig-name">__le__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x&lt;=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__len__"></a><span class="summary-sig"><span class="summary-sig-name">__len__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return len(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__lt__"></a><span class="summary-sig"><span class="summary-sig-name">__lt__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x&lt;y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__mul__"></a><span class="summary-sig"><span class="summary-sig-name">__mul__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">n</span>)</span></code>\r
+<br />\r
+Return x*n...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__ne__"></a><span class="summary-sig"><span class="summary-sig-name">__ne__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x!=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__rmul__"></a><span class="summary-sig"><span class="summary-sig-name">__rmul__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">n</span>)</span></code>\r
+<br />\r
+Return n*x...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__setitem__"></a><span class="summary-sig"><span class="summary-sig-name">__setitem__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">i</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x[i]=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__setslice__" class="summary-sig-name"><code>__setslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">i</span>,\r
+          <span class="summary-sig-arg">j</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Use  of negative indices is not supported.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#append" class="summary-sig-name"><code>append</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">object</span>)</span></code>\r
+<br />\r
+append object to end</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#count" class="summary-sig-name"><code>count</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">value</span>)</span></code>\r
+<br />\r
+return number of occurrences of value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#extend" class="summary-sig-name"><code>extend</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">iterable</span>)</span></code>\r
+<br />\r
+extend list by appending elements from the iterable</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#index" class="summary-sig-name"><code>index</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+L.index(value, [start, [stop]]) -&gt; integer -- return first index of value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#insert" class="summary-sig-name"><code>insert</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">index</span>,\r
+          <span class="summary-sig-arg">object</span>)</span></code>\r
+<br />\r
+insert object before index</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#pop" class="summary-sig-name"><code>pop</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">index</span>)</span></code>\r
+<br />\r
+remove and return item at index (default last)</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#remove" class="summary-sig-name"><code>remove</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">value</span>)</span></code>\r
+<br />\r
+remove first occurrence of value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#reverse" class="summary-sig-name"><code>reverse</code></a>(<span class="summary-sig-arg">L</span>)</span></code>\r
+<br />\r
+reverse <em>IN PLACE</em></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#sort" class="summary-sig-name"><code>sort</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">cmpfunc</span>)</span></code>\r
+<br />\r
+stable sort <em>IN PLACE</em>; cmpfunc(x, y) -&gt; -1, 0, 1</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+<p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__add__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__add__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Addition operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x+y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__contains__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__contains__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(In operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+y in x\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__delitem__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__delitem__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Index deletion operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+del x[y]\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__delslice__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__delslice__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">i</span>,\r
+          <span class="sig-arg">j</span>)</span>\r
+    <br /><em class="fname">(Slice deletion operator)</em>\r
+  </h3>\r
+<p>Use of negative indices is not supported.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+del x[i:j]\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__eq__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__eq__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Equality operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x==y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__ge__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__ge__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Greater-than-or-equals operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x&gt;=y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__getattribute__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>x.__getattribute__('name') &lt;==&gt; x.name</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__getattribute__"><code>__builtin__.object.__getattribute__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__getitem__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__getitem__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Indexing operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x[y]\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__getslice__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__getslice__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">i</span>,\r
+          <span class="sig-arg">j</span>)</span>\r
+    <br /><em class="fname">(Slicling operator)</em>\r
+  </h3>\r
+<p>Use of negative indices is not supported.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x[i:j]\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__gt__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__gt__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Greater-than operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x&gt;y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__hash__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Hashing function)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+hash(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__hash__"><code>__builtin__.object.__hash__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__iadd__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__iadd__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x+=y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__imul__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__imul__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x*=y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__iter__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__iter__</span>(<span class="sig-arg">x</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+iter(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__le__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__le__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Less-than-or-equals operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x&lt;=y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__len__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__len__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Length operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+len(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__lt__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__lt__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Less-than operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x&lt;y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__mul__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__mul__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">n</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x*n\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__ne__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__ne__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Inequality operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x!=y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__new__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
+          <span class="sig-arg">S</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+a new object with type S, a subtype of T\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__repr__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Representation operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+repr(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__rmul__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__rmul__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">n</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+n*x\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__setitem__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__setitem__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">i</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Index assignment operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x[i]=y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__setslice__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__setslice__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">i</span>,\r
+          <span class="sig-arg">j</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Slice assignment operator)</em>\r
+  </h3>\r
+<p>Use  of negative indices is not supported.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x[i:j]=y\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="append"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">append</span>(<span class="sig-arg">L</span>,\r
+          <span class="sig-arg">object</span>)</span>\r
+  </h3>\r
+<p>append object to end</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="count"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">count</span>(<span class="sig-arg">L</span>,\r
+          <span class="sig-arg">value</span>)</span>\r
+  </h3>\r
+<p>return number of occurrences of value</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+integer\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="extend"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">extend</span>(<span class="sig-arg">L</span>,\r
+          <span class="sig-arg">iterable</span>)</span>\r
+  </h3>\r
+<p>extend list by appending elements from the iterable</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="index"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">index</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>L.index(value, [start, [stop]]) -&gt; integer -- return first index of value</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="insert"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">insert</span>(<span class="sig-arg">L</span>,\r
+          <span class="sig-arg">index</span>,\r
+          <span class="sig-arg">object</span>)</span>\r
+  </h3>\r
+<p>insert object before index</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="pop"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">pop</span>(<span class="sig-arg">L</span>,\r
+          <span class="sig-arg">index</span>=<span class="sig-default">...</span>)</span>\r
+  </h3>\r
+<p>remove and return item at index (default last)</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+item\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="remove"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">remove</span>(<span class="sig-arg">L</span>,\r
+          <span class="sig-arg">value</span>)</span>\r
+  </h3>\r
+<p>remove first occurrence of value</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="reverse"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">reverse</span>(<span class="sig-arg">L</span>)</span>\r
+  </h3>\r
+<p>reverse <em>IN PLACE</em></p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="sort"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">sort</span>(<span class="sig-arg">L</span>,\r
+          <span class="sig-arg">cmpfunc</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+<p>stable sort <em>IN PLACE</em>; cmpfunc(x, y) -&gt; -1, 0, 1</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:32 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/__builtin__.object-class.html b/trunk/psycopg2/doc/api/public/__builtin__.object-class.html
new file mode 100644 (file)
index 0000000..e9638da
--- /dev/null
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>__builtin__.object</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        Module&nbsp;__builtin__ ::\r
+        Class&nbsp;object\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/__builtin__.object-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.object-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type object</h2>\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a>,\r
+    <a href="__builtin__.list-class.html"><code>list</code></a>,\r
+    <a href="psycopg2.extras.SQL_IN-class.html"><code>SQL_IN</code></a>,\r
+    <a href="__builtin__.type-class.html"><code>type</code></a>,\r
+    <a href="datetime.tzinfo-class.html"><code>tzinfo</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>The most base type</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__hash__"></a><span class="summary-sig"><span class="summary-sig-name">__hash__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Class Variable Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+  <td><a name="__class__"></a><strong><code class="vname">__class__</code></strong> = <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+<p>x.__init__(...) initializes x; see x.__class__.__doc__ for signature</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__delattr__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__delattr__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>x.__delattr__('name') &lt;==&gt; del x.name</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__getattribute__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>x.__getattribute__('name') &lt;==&gt; x.name</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__hash__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Hashing function)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+hash(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__new__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
+          <span class="sig-arg">S</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+a new object with type S, a subtype of T\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__reduce__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__reduce__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>helper for pickle</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__reduce_ex__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__reduce_ex__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>helper for pickle</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__repr__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Representation operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+repr(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__setattr__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>x.__setattr__('name', value) &lt;==&gt; x.name = value</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__str__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Informal representation operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+str(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/__builtin__.type-class.html b/trunk/psycopg2/doc/api/public/__builtin__.type-class.html
new file mode 100644 (file)
index 0000000..7af340f
--- /dev/null
@@ -0,0 +1,384 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>__builtin__.type</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        Module&nbsp;__builtin__ ::\r
+        Class&nbsp;type\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/__builtin__.type-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.type-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type type</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
+         |\r
+        <strong class="uidshort">type</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>type(object) -&gt; the object's type\r
+type(name, bases, dict) -&gt; a new type</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__call__"></a><span class="summary-sig"><span class="summary-sig-name">__call__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return x(...)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__cmp__"></a><span class="summary-sig"><span class="summary-sig-name">__cmp__</span>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return cmp(x,y)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__hash__"></a><span class="summary-sig"><span class="summary-sig-name">__hash__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">list of immediate subclasses</td>\r
+  <td><code><a name="__subclasses__"></a><span class="summary-sig"><span class="summary-sig-name">__subclasses__</span>()</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">list</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#mro" class="summary-sig-name"><code>mro</code></a>()</span></code>\r
+<br />\r
+return a type's method resolution order</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF PROPERTY SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Property Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="__base__"></a><strong><code>__base__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="__basicsize__"></a><strong><code>__basicsize__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="__dictoffset__"></a><strong><code>__dictoffset__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="__flags__"></a><strong><code>__flags__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="__itemsize__"></a><strong><code>__itemsize__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="__mro__"></a><strong><code>__mro__</code></strong></td></tr><tr><td align="right" valign="top" width="15%" class="ptype">&nbsp;</td>\r
+  <td><a name="__weakrefoffset__"></a><strong><code>__weakrefoffset__</code></strong></td></tr></table><br />\r
+\r
+\r
+<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Class Variable Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>tuple</code></td>\r
+<td><strong><a href="__builtin__.type-class.html#__bases__"><code>__bases__</code></a></strong> = <span title="(&lt;type 'object'&gt;,)"><code>(&lt;type&nbsp;'object'&gt;,)                           </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>str</code></td>\r
+<td><strong><a href="__builtin__.type-class.html#__name__"><code>__name__</code></a></strong> = <span title="'type'"><code><span class="variable-quote">'</span>type<span class="variable-quote">'</span>                                        </code>\r
+</span></td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__call__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__call__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+    <br /><em class="fname">(Call operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+x(...)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__cmp__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__cmp__</span>(<span class="sig-arg">x</span>,\r
+          <span class="sig-arg">y</span>)</span>\r
+    <br /><em class="fname">(Comparison operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+cmp(x,y)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__delattr__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__delattr__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>x.__delattr__('name') &lt;==&gt; del x.name</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__delattr__"><code>__builtin__.object.__delattr__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__getattribute__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>x.__getattribute__('name') &lt;==&gt; x.name</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__getattribute__"><code>__builtin__.object.__getattribute__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__hash__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Hashing function)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+hash(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__hash__"><code>__builtin__.object.__hash__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__new__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
+          <span class="sig-arg">S</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+a new object with type S, a subtype of T\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__repr__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Representation operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+repr(x)\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__setattr__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>x.__setattr__('name', value) &lt;==&gt; x.name = value</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__setattr__"><code>__builtin__.object.__setattr__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__subclasses__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__subclasses__</span>()</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+list of immediate subclasses      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="mro"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">mro</span>()</span>\r
+  </h3>\r
+<p>return a type's method resolution order</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+list      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Class Variable Details</th></tr>\r
+</table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="__bases__"></a>\r
+<h3>__bases__</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>tuple</code>\r
+\r
+      </dd>\r
+      <dt title="(&lt;type 'object'&gt;,)">Value:</dt>\r
+      <dd title="(&lt;type 'object'&gt;,)"><table><tr><td>\r
+<pre class="variable">\r
+(&lt;type 'object'&gt;,)                                                     </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="__name__"></a>\r
+<h3>__name__</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>str</code>\r
+\r
+      </dd>\r
+      <dt title="'type'">Value:</dt>\r
+      <dd title="'type'"><table><tr><td>\r
+<pre class="variable">\r
+<span class="variable-quote">'</span>type<span class="variable-quote">'</span>                                                                 </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/datetime.tzinfo-class.html b/trunk/psycopg2/doc/api/public/datetime.tzinfo-class.html
new file mode 100644 (file)
index 0000000..080afa2
--- /dev/null
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>datetime.tzinfo</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        Module&nbsp;datetime ::\r
+        Class&nbsp;tzinfo\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/datetime.tzinfo-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="datetime.tzinfo-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type tzinfo</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
+         |\r
+        <strong class="uidshort">tzinfo</strong>\r
+</pre><br />\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>FixedOffsetTimezone</code></a>,\r
+    <a href="psycopg2.tz.LocalTimezone-class.html"><code>LocalTimezone</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>Abstract base class for time zone info objects.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__new__"></a><span class="summary-sig"><span class="summary-sig-name">__new__</span>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+-&gt; (cls, state)</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#dst" class="summary-sig-name"><code>dst</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+datetime -&gt; DST offset in minutes east of UTC.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#fromutc" class="summary-sig-name"><code>fromutc</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+datetime in UTC -&gt; datetime in local time.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#tzname" class="summary-sig-name"><code>tzname</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+datetime -&gt; string name of time zone.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#utcoffset" class="summary-sig-name"><code>utcoffset</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+datetime -&gt; minutes east of UTC (negative for west of UTC).</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__getattribute__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>x.__getattribute__('name') &lt;==&gt; x.name</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__getattribute__"><code>__builtin__.object.__getattribute__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__new__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__new__</span>(<span class="sig-arg">T</span>,\r
+          <span class="sig-arg">S</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+<pre class="literalblock">\r
+a new object with type S, a subtype of T\r
+</pre>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__reduce__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__reduce__</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>-&gt; (cls, state)</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__reduce__"><code>__builtin__.object.__reduce__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="dst"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">dst</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>datetime -&gt; DST offset in minutes east of UTC.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="fromutc"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">fromutc</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>datetime in UTC -&gt; datetime in local time.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="tzname"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">tzname</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>datetime -&gt; string name of time zone.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="utcoffset"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">utcoffset</span>(<span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>datetime -&gt; minutes east of UTC (negative for west of UTC).</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/epydoc.css b/trunk/psycopg2/doc/api/public/epydoc.css
new file mode 100644 (file)
index 0000000..22e8f7e
--- /dev/null
@@ -0,0 +1,138 @@
+/* Based on the Epydoc "default.css"\r
+** with some missing reST-related classes\r
+** and Python syntax support (from SilverCity)\r
+*/\r
+\r
+/* Body color */ \r
+body               { background: #ffffff; color: #000000; } \r
\r
+/* Tables */ \r
+table.summary, table.details, table.index\r
+                   { background: #e8f0f8; color: #000000; } \r
+tr.summary, tr.details, tr.index\r
+                   { background: #70b0f0; color: #000000;  \r
+                     text-align: left; font-size: 120%; } \r
+tr.group           { background: #c0e0f8; color: #000000;\r
+                     text-align: left; font-size: 120%;\r
+                     font-style: italic; } \r
+\r
+/* Documentation page titles */\r
+h2.module          { margin-top: 0.2em; }\r
+h2.class           { margin-top: 0.2em; }\r
\r
+/* Headings */\r
+h1.heading         { font-size: +140%; font-style: italic;\r
+                     font-weight: bold; }\r
+h2.heading         { font-size: +125%; font-style: italic;\r
+                     font-weight: bold; }\r
+h3.heading         { font-size: +110%; font-style: italic;\r
+                     font-weight: normal; }\r
+                    \r
+/* Base tree */\r
+pre.base-tree      { font-size: 80%; margin: 0; }\r
+\r
+/* TOC */\r
+p.toc { margin: 0; }\r
+\r
+/* Details Sections */\r
+table.func-details { background: #e8f0f8; color: #000000;\r
+                     border: 2px groove #c0d0d0;\r
+                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }\r
+h3.func-detail     { background: transparent; color: #000000;\r
+                     margin: 0 0 1em 0; }\r
+\r
+table.var-details  { background: #e8f0f8; color: #000000;\r
+                     border: 2px groove #c0d0d0;\r
+                     padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }\r
+h3.var-details     { background: transparent; color: #000000;\r
+                     margin: 0 0 1em 0; }\r
+\r
+/* Function signatures */\r
+.sig               { background: transparent; color: #000000;\r
+                     font-weight: bold; }  \r
+.sig-name          { background: transparent; color: #006080; }  \r
+.sig-arg, .sig-kwarg, .sig-vararg\r
+                   { background: transparent; color: #008060; }  \r
+.sig-default       { background: transparent; color: #602000; }  \r
+.summary-sig       { background: transparent; color: #000000; }  \r
+.summary-sig-name  { background: transparent; color: #204080; }\r
+.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg\r
+                   { background: transparent; color: #008060; }  \r
+\r
+/* Doctest blocks */\r
+.py-src            { background: transparent; color: #000000; }\r
+.py-prompt         { background: transparent; color: #005050;\r
+                     font-weight: bold;}\r
+.py-string         { background: transparent; color: #006030; }\r
+.py-comment        { background: transparent; color: #003060; }\r
+.py-keyword        { background: transparent; color: #600000; }\r
+.py-output         { background: transparent; color: #404040; }\r
+div.code-block,\r
+pre.literal-block,\r
+pre.doctestblock   { background: #f4faff; color: #000000; \r
+                     padding: .5em; margin: 1em;\r
+                     border: 1px solid #708890; }\r
+table pre.doctestblock\r
+                   { background: #dce4ec; color: #000000; \r
+                     padding: .5em; margin: 1em;\r
+                     border: 1px solid #708890; }\r
+div.code-block     { font-family: monospace; }\r
+\r
+/* Variable values */\r
+pre.variable       { background: #dce4ec; color: #000000;\r
+                     padding: .5em; margin: 0;\r
+                     border: 1px solid #708890; }\r
+.variable-linewrap { background: transparent; color: #604000; }\r
+.variable-ellipsis { background: transparent; color: #604000; }\r
+.variable-quote    { background: transparent; color: #604000; }\r
+.re                { background: transparent; color: #000000; }\r
+.re-char           { background: transparent; color: #006030; }\r
+.re-op             { background: transparent; color: #600000; }\r
+.re-group          { background: transparent; color: #003060; }\r
+.re-ref            { background: transparent; color: #404040; }\r
+\r
+/* Navigation bar */ \r
+table.navbar       { background: #a0c0ff; color: #0000ff;\r
+                     border: 2px groove #c0d0d0; }\r
+th.navbar          { background: #a0c0ff; color: #0000ff; } \r
+th.navselect       { background: #70b0ff; color: #000000; } \r
+.nomargin          { margin: 0; }\r
+\r
+/* Links */ \r
+a:link             { background: transparent; color: #0000ff; }  \r
+a:visited          { background: transparent; color: #204080; }  \r
+a.navbar:link      { background: transparent; color: #0000ff; \r
+                     text-decoration: none; }  \r
+a.navbar:visited   { background: transparent; color: #204080; \r
+                     text-decoration: none; }  \r
+\r
+/* Admonitions */\r
+div.warning,\r
+div.note                { background-color: #c0e0f8;\r
+                          border: thin solid black;\r
+                          padding: 1em;\r
+                          margin-left: 1em;\r
+                          margin-right: 1em; }\r
+div.warning .first,\r
+div.note .first      { font-family: sans-serif;\r
+                          font-size: 110%;\r
+                          margin-right: 0.5em; }\r
+\r
+/* Lists */\r
+ul { margin-top: 0; }\r
+\r
+/* Python syntax */\r
+.p_character { color: olive; }\r
+.p_classname { color: blue; font-weight: bold; }\r
+.p_commentblock {color: gray; font-style: italic; }\r
+.p_commentline { color: green; font-style: italic; }\r
+.p_default {}\r
+.p_defname { color: #009999; font-weight: bold; }\r
+.p_identifier { color: black; }\r
+.p_number { color: #009999; }\r
+.p_operator { color: black; }\r
+.p_string { color: #7F007F; }\r
+.p_stringeol { color: #7F007F; }\r
+.p_triple { color: #7F0000; }\r
+.p_tripledouble { color: #7F0000; }\r
+.p_word { color: navy; font-weight: bold; }\r
diff --git a/trunk/psycopg2/doc/api/public/exceptions.Exception-class.html b/trunk/psycopg2/doc/api/public/exceptions.Exception-class.html
new file mode 100644 (file)
index 0000000..d7e7ba4
--- /dev/null
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>exceptions.Exception</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        Module&nbsp;exceptions ::\r
+        Class&nbsp;Exception\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/exceptions.Exception-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="exceptions.Exception-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class Exception</h2>\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="exceptions.StandardError-class.html"><code>StandardError</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>Common base class for all exceptions.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__getitem__"></a><span class="summary-sig"><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__getitem__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__getitem__</span>(<span class="sig-vararg">...</span>)</span>\r
+    <br /><em class="fname">(Indexing operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__str__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-vararg">...</span>)</span>\r
+    <br /><em class="fname">(Informal representation operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/exceptions.StandardError-class.html b/trunk/psycopg2/doc/api/public/exceptions.StandardError-class.html
new file mode 100644 (file)
index 0000000..ab0a1c3
--- /dev/null
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>exceptions.StandardError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        Module&nbsp;exceptions ::\r
+        Class&nbsp;StandardError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/exceptions.StandardError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="exceptions.StandardError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class StandardError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+\r
+            |\r
+           <strong class="uidshort">StandardError</strong>\r
+</pre><br />\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="psycopg2.Error-class.html"><code>Error</code></a>,\r
+    <a href="psycopg2.Warning-class.html"><code>Warning</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>Base class for all standard Python exceptions.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/frames.html b/trunk/psycopg2/doc/api/public/frames.html
new file mode 100644 (file)
index 0000000..ffd6536
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"\r
+          "DTD/xhtml1-frameset.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title> API Documentation </title>\r
+</head>\r
+<frameset cols="20%,80%">\r
+  <frameset rows="30%,70%">\r
+    <frame src="toc.html" name="moduleListFrame" id="moduleListFrame" />\r
+    <frame src="toc-everything.html" name="moduleFrame" id="moduleFrame" />\r
+  </frameset>\r
+  <frame src="psycopg2-module.html" name="mainFrame" id="mainFrame" />\r
+</frameset>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/help.html b/trunk/psycopg2/doc/api/public/help.html
new file mode 100644 (file)
index 0000000..0e9a1cf
--- /dev/null
@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>Help</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/help.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="help.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<h1 class="help"> API Documentation </h1>\r
+\r
+<p> This document contains the API (Application Programming Interface)\r
+documentation for this project.  Documentation for the Python\r
+objects defined by the project is divided into separate pages for each\r
+package, module, and class.  The API documentation also includes two\r
+pages containing information about the project as a whole: a trees\r
+page, and an index page.  </p>\r
+\r
+<h2> Object Documentation </h2>\r
+\r
+  <p>Each <strong>Package Documentation</strong> page contains: </p>\r
+  <ul>\r
+    <li> A description of the package. </li>\r
+    <li> A list of the modules and sub-packages contained by the\r
+    package.  </li>\r
+    <li> A summary of the classes defined by the package. </li>\r
+    <li> A summary of the functions defined by the package. </li>\r
+    <li> A summary of the variables defined by the package. </li>\r
+    <li> A detailed description of each function defined by the\r
+    package. </li>\r
+    <li> A detailed description of each variable defined by the\r
+    package. </li>\r
+  </ul>\r
+  \r
+  <p>Each <strong>Module Documentation</strong> page contains:</p>\r
+  <ul>\r
+    <li> A description of the module. </li>\r
+    <li> A summary of the classes defined by the module. </li>\r
+    <li> A summary of the functions defined by the module. </li>\r
+    <li> A summary of the variables defined by the module. </li>\r
+    <li> A detailed description of each function defined by the\r
+    module. </li>\r
+    <li> A detailed description of each variable defined by the\r
+    module. </li>\r
+  </ul>\r
+  \r
+  <p>Each <strong>Class Documentation</strong> page contains: </p>\r
+  <ul>\r
+    <li> A class inheritance diagram. </li>\r
+    <li> A list of known subclasses. </li>\r
+    <li> A description of the class. </li>\r
+    <li> A summary of the methods defined by the class. </li>\r
+    <li> A summary of the instance variables defined by the class. </li>\r
+    <li> A summary of the class (static) variables defined by the\r
+    class. </li> \r
+    <li> A detailed description of each method defined by the\r
+    class. </li>\r
+    <li> A detailed description of each instance variable defined by the\r
+    class. </li> \r
+    <li> A detailed description of each class (static) variable defined\r
+    by the class. </li> \r
+  </ul>\r
+\r
+<h2> Project Documentation </h2>\r
+\r
+  <p> The <strong>Trees</strong> page contains the module and class hierarchies: </p>\r
+  <ul>\r
+    <li> The <em>module hierarchy</em> lists every package and module, with\r
+    modules grouped into packages.  At the top level, and within each\r
+    package, modules and sub-packages are listed alphabetically. </li>\r
+    <li> The <em>class hierarchy</em> lists every class, grouped by base\r
+    class.  If a class has more than one base class, then it will be\r
+    listed under each base class.  At the top level, and under each base\r
+    class, classes are listed alphabetically. </li>\r
+  </ul>\r
+  \r
+  <p> The <strong>Index</strong> page contains indices of terms and\r
+  identifiers: </p>\r
+  <ul>\r
+    <li> The <em>term index</em> lists every term indexed by any object's\r
+    documentation.  For each term, the index provides links to each\r
+    place where the term is indexed. </li>\r
+    <li> The <em>identifier index</em> lists the (short) name of every package,\r
+    module, class, method, function, variable, and parameter.  For each\r
+    identifier, the index provides a short description, and a link to\r
+    its documentation. </li>\r
+  </ul>\r
+\r
+<h2> The Table of Contents </h2>\r
+\r
+<p> The table of contents occupies the two frames on the left side of\r
+the window.  The upper-left frame displays the <em>project\r
+contents</em>, and the lower-left frame displays the <em>module\r
+contents</em>: </p>\r
+\r
+<table class="help summary" border="1" cellspacing="0" cellpadding="3">\r
+  <tr style="height: 30%">\r
+    <td align="center" style="font-size: small">\r
+       Project<br />Contents<hr />...</td>\r
+    <td align="center" style="font-size: small" rowspan="2" width="70%">\r
+      API<br />Documentation<br />Frame<br /><br /><br />\r
+    </td>\r
+  </tr>\r
+  <tr>\r
+    <td align="center" style="font-size: small">\r
+      Module<br />Contents<hr />&nbsp;<br />...<br />&nbsp;\r
+    </td>\r
+  </tr>\r
+</table><br />\r
+\r
+<p> The <strong>project contents frame</strong> contains a list of all packages\r
+and modules that are defined by the project.  Clicking on an entry\r
+will display its contents in the module contents frame.  Clicking on a\r
+special entry, labeled "Everything," will display the contents of\r
+the entire project. </p>\r
+\r
+<p> The <strong>module contents frame</strong> contains a list of every\r
+submodule, class, type, exception, function, and variable defined by a\r
+module or package.  Clicking on an entry will display its\r
+documentation in the API documentation frame.  Clicking on the name of\r
+the module, at the top of the frame, will display the documentation\r
+for the module itself. </p>\r
+\r
+<p> The "<strong>frames</strong>" and "<strong>no frames</strong>" buttons below the top\r
+navigation bar can be used to control whether the table of contents is\r
+displayed or not. </p>\r
+\r
+<h2> The Navigation Bar </h2>\r
+\r
+<p> A navigation bar is located at the top and bottom of every page.\r
+It indicates what type of page you are currently viewing, and allows\r
+you to go to related pages.  The following table describes the labels\r
+on the navigation bar.  Note that not some labels (such as\r
+[Parent]) are not displayed on all pages. </p>\r
+\r
+<table class="summary" border="1" cellspacing="0" cellpadding="3" width="100%">\r
+<tr class="summary">\r
+  <th>Label</th>\r
+  <th>Highlighted when...</th>\r
+  <th>Links to...</th>\r
+</tr>\r
+  <tr><td valign="top"><strong>[Parent]</strong></td>\r
+      <td valign="top"><em>(never highlighted)</em></td>\r
+      <td valign="top"> the parent of the current package </td></tr>\r
+  <tr><td valign="top"><strong>[Package]</strong></td>\r
+      <td valign="top">viewing a package</td>\r
+      <td valign="top">the package containing the current object\r
+      </td></tr>\r
+  <tr><td valign="top"><strong>[Module]</strong></td>\r
+      <td valign="top">viewing a module</td>\r
+      <td valign="top">the module containing the current object\r
+      </td></tr> \r
+  <tr><td valign="top"><strong>[Class]</strong></td>\r
+      <td valign="top">viewing a class </td>\r
+      <td valign="top">the class containing the current object</td></tr>\r
+  <tr><td valign="top"><strong>[Trees]</strong></td>\r
+      <td valign="top">viewing the trees page</td>\r
+      <td valign="top"> the trees page </td></tr>\r
+  <tr><td valign="top"><strong>[Index]</strong></td>\r
+      <td valign="top">viewing the index page</td>\r
+      <td valign="top"> the index page </td></tr>\r
+  <tr><td valign="top"><strong>[Help]</strong></td>\r
+      <td valign="top">viewing the help page</td>\r
+      <td valign="top"> the help page </td></tr>\r
+</table>\r
+\r
+<p> The "<strong>show private</strong>" and "<strong>hide private</strong>" buttons below\r
+the top navigation bar can be used to control whether documentation\r
+for private objects is displayed.  Private objects are usually defined\r
+as objects whose (short) names begin with a single underscore, but do\r
+not end with an underscore.  For example, "<code>_x</code>",\r
+"<code>__pprint</code>", and "<code>epydoc.epytext._tokenize</code>"\r
+are private objects; but "<code>re.sub</code>",\r
+"<code>__init__</code>", and "<code>type_</code>" are not.  However,\r
+if a module defines the "<code>__all__</code>" variable, then its\r
+contents are used to decide which objects are private. </p>\r
+\r
+<p> A timestamp below the bottom navigation bar indicates when each\r
+page was last updated. </p>\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:37 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/index.html b/trunk/psycopg2/doc/api/public/index.html
new file mode 100644 (file)
index 0000000..ffd6536
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"\r
+          "DTD/xhtml1-frameset.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title> API Documentation </title>\r
+</head>\r
+<frameset cols="20%,80%">\r
+  <frameset rows="30%,70%">\r
+    <frame src="toc.html" name="moduleListFrame" id="moduleListFrame" />\r
+    <frame src="toc-everything.html" name="moduleFrame" id="moduleFrame" />\r
+  </frameset>\r
+  <frame src="psycopg2-module.html" name="mainFrame" id="mainFrame" />\r
+</frameset>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/indices.html b/trunk/psycopg2/doc/api/public/indices.html
new file mode 100644 (file)
index 0000000..a6d0fad
--- /dev/null
@@ -0,0 +1,418 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>Index</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/indices.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="indices.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+<br />\r
+\r
+<!-- =========== START OF IDENTIFIER INDEX =========== -->\r
+<table class="index" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="index">\r
+  <th colspan="2">Identifier Index</th></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__add__"><code>__add__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__base__"><code>__base__</code></a></td>\r
+    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__bases__"><code>__bases__</code></a></td>\r
+    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__basicsize__"><code>__basicsize__</code></a></td>\r
+    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__call__"><code>__call__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html"><code>type</code></a></td>\r
+    <td>Class in module <code>__builtin__</code></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__cmp__"><code>__cmp__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__contains__"><code>__contains__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__delattr__"><code>__delattr__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__delattr__"><code>__delattr__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__delitem__"><code>__delitem__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__delslice__"><code>__delslice__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__dictoffset__"><code>__dictoffset__</code></a></td>\r
+    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__eq__"><code>__eq__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__flags__"><code>__flags__</code></a></td>\r
+    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__ge__"><code>__ge__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__getattribute__"><code>__getattribute__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__getattribute__"><code>__getattribute__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__getattribute__"><code>__getattribute__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="datetime.tzinfo-class.html#__getattribute__"><code>__getattribute__</code></a></td>\r
+    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__getitem__"><code>__getitem__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="exceptions.Exception-class.html#__getitem__"><code>__getitem__</code></a></td>\r
+    <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#__getitem__"><code>__getitem__</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__getslice__"><code>__getslice__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__gt__"><code>__gt__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__hash__"><code>__hash__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__hash__"><code>__hash__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__hash__"><code>__hash__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__iadd__"><code>__iadd__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__imul__"><code>__imul__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="exceptions.Exception-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.SQL_IN-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.SQL_IN-class.html"><code>psycopg2.extras.SQL_IN</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html#__init__"><code>__init__</code></a></td>\r
+    <td>Method in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__itemsize__"><code>__itemsize__</code></a></td>\r
+    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__iter__"><code>__iter__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__le__"><code>__le__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__len__"><code>__len__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__lt__"><code>__lt__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__mro__"><code>__mro__</code></a></td>\r
+    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__mul__"><code>__mul__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__name__"><code>__name__</code></a></td>\r
+    <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__ne__"><code>__ne__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__new__"><code>__new__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__new__"><code>__new__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__new__"><code>__new__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="datetime.tzinfo-class.html#__new__"><code>__new__</code></a></td>\r
+    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__reduce__"><code>__reduce__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="datetime.tzinfo-class.html#__reduce__"><code>__reduce__</code></a></td>\r
+    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__reduce_ex__"><code>__reduce_ex__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__repr__"><code>__repr__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__repr__"><code>__repr__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__repr__"><code>__repr__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__rmul__"><code>__rmul__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__setattr__"><code>__setattr__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__setattr__"><code>__setattr__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__setitem__"><code>__setitem__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#__setslice__"><code>__setslice__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html#__str__"><code>__str__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>\r
+  <tr><td width="15%"><a href="exceptions.Exception-class.html#__str__"><code>__str__</code></a></td>\r
+    <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__subclasses__"><code>__subclasses__</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#__weakrefoffset__"><code>__weakrefoffset__</code></a></td>\r
+    <td>member_descriptor in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a></td>\r
+    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#adapt"><code>adapt</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#append"><code>append</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#AsIs"><code>AsIs</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1.connection-class.html#autocommit"><code>autocommit</code></a></td>\r
+    <td>Method in class <a href="psycopg2.psycopg1.connection-class.html"><code>psycopg2.psycopg1.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html#Binary"><code>Binary</code></a></td>\r
+    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#Boolean"><code>Boolean</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#callproc"><code>callproc</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html#closeall"><code>closeall</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#closeall"><code>closeall</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html#connect"><code>connect</code></a></td>\r
+    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1-module.html#connect"><code>connect</code></a></td>\r
+    <td>Function in module <a href="psycopg2.psycopg1-module.html"><code>psycopg2.psycopg1</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1.connection-class.html"><code>connection</code></a></td>\r
+    <td>Class in module <a href="psycopg2.psycopg1-module.html"><code>psycopg2.psycopg1</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#count"><code>count</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictConnection-class.html#cursor"><code>cursor</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictConnection-class.html"><code>psycopg2.extras.DictConnection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1.connection-class.html#cursor"><code>cursor</code></a></td>\r
+    <td>Method in class <a href="psycopg2.psycopg1.connection-class.html"><code>psycopg2.psycopg1.connection</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1.cursor-class.html"><code>cursor</code></a></td>\r
+    <td>Class in module <a href="psycopg2.psycopg1-module.html"><code>psycopg2.psycopg1</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.DataError-class.html"><code>DataError</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html#Date"><code>Date</code></a></td>\r
+    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#DateFromPy"><code>DateFromPy</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html#DateFromTicks"><code>DateFromTicks</code></a></td>\r
+    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool-module.html#dbg"><code>dbg</code></a></td>\r
+    <td>Function in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictConnection-class.html"><code>DictConnection</code></a></td>\r
+    <td>Class in module <a href="psycopg2.extras-module.html"><code>psycopg2.extras</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html"><code>DictCursor</code></a></td>\r
+    <td>Class in module <a href="psycopg2.extras-module.html"><code>psycopg2.extras</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1.cursor-class.html#dictfetchall"><code>dictfetchall</code></a></td>\r
+    <td>Method in class <a href="psycopg2.psycopg1.cursor-class.html"><code>psycopg2.psycopg1.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1.cursor-class.html#dictfetchmany"><code>dictfetchmany</code></a></td>\r
+    <td>Method in class <a href="psycopg2.psycopg1.cursor-class.html"><code>psycopg2.psycopg1.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1.cursor-class.html#dictfetchone"><code>dictfetchone</code></a></td>\r
+    <td>Method in class <a href="psycopg2.psycopg1.cursor-class.html"><code>psycopg2.psycopg1.cursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html"><code>DictRow</code></a></td>\r
+    <td>Class in module <a href="psycopg2.extras-module.html"><code>psycopg2.extras</code></a></td></tr>\r
+  <tr><td width="15%"><a href="datetime.tzinfo-class.html#dst"><code>dst</code></a></td>\r
+    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html#dst"><code>dst</code></a></td>\r
+    <td>Method in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.LocalTimezone-class.html#dst"><code>dst</code></a></td>\r
+    <td>Method in class <a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz-module.html#DSTDIFF"><code>DSTDIFF</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.Error-class.html"><code>Error</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="exceptions.Exception-class.html"><code>Exception</code></a></td>\r
+    <td>Class in module <code>exceptions</code></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#execute"><code>execute</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#extend"><code>extend</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html"><code>extensions</code></a></td>\r
+    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras-module.html"><code>extras</code></a></td>\r
+    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#fetchall"><code>fetchall</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#fetchmany"><code>fetchmany</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictCursor-class.html#fetchone"><code>fetchone</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictCursor-class.html"><code>psycopg2.extras.DictCursor</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>FixedOffsetTimezone</code></a></td>\r
+    <td>Class in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
+  <tr><td width="15%"><a href="datetime.tzinfo-class.html#fromutc"><code>fromutc</code></a></td>\r
+    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#get"><code>get</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html#getconn"><code>getconn</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#getconn"><code>getconn</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.SQL_IN-class.html#getquoted"><code>getquoted</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.SQL_IN-class.html"><code>psycopg2.extras.SQL_IN</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#has_key"><code>has_key</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#index"><code>index</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#insert"><code>insert</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.IntegrityError-class.html"><code>IntegrityError</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.InterfaceError-class.html"><code>InterfaceError</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.InternalError-class.html"><code>InternalError</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#IntervalFromPy"><code>IntervalFromPy</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT"><code>ISOLATION_LEVEL_AUTOCOMMIT</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_COMMITTED"><code>ISOLATION_LEVEL_READ_COMMITTED</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_UNCOMMITTED"><code>ISOLATION_LEVEL_READ_UNCOMMITTED</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_REPEATABLE_READ"><code>ISOLATION_LEVEL_REPEATABLE_READ</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE"><code>ISOLATION_LEVEL_SERIALIZABLE</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#items"><code>items</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#keys"><code>keys</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html"><code>list</code></a></td>\r
+    <td>Class in module <code>__builtin__</code></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz-module.html#LOCAL"><code>LOCAL</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.LocalTimezone-class.html"><code>LocalTimezone</code></a></td>\r
+    <td>Class in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html#mro"><code>mro</code></a></td>\r
+    <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#new_type"><code>new_type</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.NotSupportedError-class.html"><code>NotSupportedError</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.object-class.html"><code>object</code></a></td>\r
+    <td>Class in module <code>__builtin__</code></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.OperationalError-class.html"><code>OperationalError</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>PersistentConnectionPool</code></a></td>\r
+    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool-module.html"><code>pool</code></a></td>\r
+    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.PoolError-class.html"><code>PoolError</code></a></td>\r
+    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#pop"><code>pop</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.ProgrammingError-class.html"><code>ProgrammingError</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.psycopg1-module.html"><code>psycopg1</code></a></td>\r
+    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html"><code>psycopg2</code></a></td>\r
+    <td>Package</td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.PersistentConnectionPool-class.html#putconn"><code>putconn</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#putconn"><code>putconn</code></a></td>\r
+    <td>Method in class <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#QuotedString"><code>QuotedString</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#register_adapter"><code>register_adapter</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#register_type"><code>register_type</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#remove"><code>remove</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#reverse"><code>reverse</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.SimpleConnectionPool-class.html"><code>SimpleConnectionPool</code></a></td>\r
+    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.list-class.html#sort"><code>sort</code></a></td>\r
+    <td>Method in class <a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.SQL_IN-class.html"><code>SQL_IN</code></a></td>\r
+    <td>Class in module <a href="psycopg2.extras-module.html"><code>psycopg2.extras</code></a></td></tr>\r
+  <tr><td width="15%"><a href="exceptions.StandardError-class.html"><code>StandardError</code></a></td>\r
+    <td>Class in module <code>exceptions</code></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz-module.html#STDOFFSET"><code>STDOFFSET</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>ThreadedConnectionPool</code></a></td>\r
+    <td>Class in module <a href="psycopg2.pool-module.html"><code>psycopg2.pool</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html#Time"><code>Time</code></a></td>\r
+    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#TimeFromPy"><code>TimeFromPy</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html#TimeFromTicks"><code>TimeFromTicks</code></a></td>\r
+    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html#Timestamp"><code>Timestamp</code></a></td>\r
+    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extensions-module.html#TimestampFromPy"><code>TimestampFromPy</code></a></td>\r
+    <td>Function in module <a href="psycopg2.extensions-module.html"><code>psycopg2.extensions</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2-module.html#TimestampFromTicks"><code>TimestampFromTicks</code></a></td>\r
+    <td>Function in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="__builtin__.type-class.html"><code>type</code></a></td>\r
+    <td>Class in module <code>__builtin__</code></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz-module.html"><code>tz</code></a></td>\r
+    <td>Module in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="datetime.tzinfo-class.html"><code>tzinfo</code></a></td>\r
+    <td>Class in module <code>datetime</code></td></tr>\r
+  <tr><td width="15%"><a href="datetime.tzinfo-class.html#tzname"><code>tzname</code></a></td>\r
+    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html#tzname"><code>tzname</code></a></td>\r
+    <td>Method in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.LocalTimezone-class.html#tzname"><code>tzname</code></a></td>\r
+    <td>Method in class <a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="datetime.tzinfo-class.html#utcoffset"><code>utcoffset</code></a></td>\r
+    <td>Method in class <a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.FixedOffsetTimezone-class.html#utcoffset"><code>utcoffset</code></a></td>\r
+    <td>Method in class <a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz.LocalTimezone-class.html#utcoffset"><code>utcoffset</code></a></td>\r
+    <td>Method in class <a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.extras.DictRow-class.html#values"><code>values</code></a></td>\r
+    <td>Method in class <a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.Warning-class.html"><code>Warning</code></a></td>\r
+    <td>Class in package <a href="psycopg2-module.html"><code>psycopg2</code></a></td></tr>\r
+  <tr><td width="15%"><a href="psycopg2.tz-module.html#ZERO"><code>ZERO</code></a></td>\r
+    <td>Variable in module <a href="psycopg2.tz-module.html"><code>psycopg2.tz</code></a></td></tr>\r
+</table>\r
+<br />\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:37 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2-module.html b/trunk/psycopg2/doc/api/public/psycopg2-module.html
new file mode 100644 (file)
index 0000000..052c338
--- /dev/null
@@ -0,0 +1,335 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        Package&nbsp;psycopg2\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF PACKAGE DESCRIPTION =========== -->\r
+<h2 class="package">Package psycopg2</h2>\r
+\r
+<p>A Python driver for PostgreSQL</p>\r
+<p>psycopg is a <a class="reference" href="http://www.postgresql.org/">PostgreSQL</a> database adapter for the <a class="reference" href="http://www.python.org/">Python</a> programming\r
+language. This is version 2, a complete rewrite of the original code to\r
+provide new-style classes for connection and cursor objects and other sweet\r
+candies. Like the original, psycopg 2 was written with the aim of being very\r
+small and fast, and stable as a rock.</p>\r
+<p>Homepage: <a class="reference" href="http://initd.org/projects/psycopg2">http://initd.org/projects/psycopg2</a></p>\r
+<hr/>\r
+\r
+<!-- =========== START OF SUBMODULES =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Submodules</th></tr>\r
+  <tr><td><ul>\r
+<li> <strong class="uidlink"><a href="psycopg2.extensions-module.html"><code>extensions</code></a></strong>: <em class="summary">psycopg extensions to the DBAPI-2.0</em></li>\r
+<li> <strong class="uidlink"><a href="psycopg2.extras-module.html"><code>extras</code></a></strong>: <em class="summary">Miscellaneous goodies for psycopg2</em></li>\r
+<li> <strong class="uidlink"><a href="psycopg2.pool-module.html"><code>pool</code></a></strong>: <em class="summary">Connection pooling for psycopg2</em></li>\r
+<li> <strong class="uidlink"><a href="psycopg2.psycopg1-module.html"><code>psycopg1</code></a></strong>: <em class="summary">psycopg 1.1.x compatibility module</em></li>\r
+<li> <strong class="uidlink"><a href="psycopg2.tz-module.html"><code>tz</code></a></strong>: <em class="summary">tzinfo implementations for psycopg2</em></li>\r
+  </ul></td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF EXCEPTIONS =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Exceptions</th></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a></strong></td>\r
+  <td>Error related to the database engine.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.DataError-class.html"><code>DataError</code></a></strong></td>\r
+  <td>Error related to problems with the processed data.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.Error-class.html"><code>Error</code></a></strong></td>\r
+  <td>Base class for error exceptions.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.IntegrityError-class.html"><code>IntegrityError</code></a></strong></td>\r
+  <td>Error related to database integrity.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.InterfaceError-class.html"><code>InterfaceError</code></a></strong></td>\r
+  <td>Error related to the database interface.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.InternalError-class.html"><code>InternalError</code></a></strong></td>\r
+  <td>The database encountered an internal error.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.NotSupportedError-class.html"><code>NotSupportedError</code></a></strong></td>\r
+  <td>A not supported datbase API was called.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.OperationalError-class.html"><code>OperationalError</code></a></strong></td>\r
+  <td>Error related to database operation (disconnect, memory allocation etc).</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.ProgrammingError-class.html"><code>ProgrammingError</code></a></strong></td>\r
+  <td>Error related to database programming (SQL error, table not found etc).</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.Warning-class.html"><code>Warning</code></a></strong></td>\r
+  <td>A database warning.</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Function Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Connections creation</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype"><a href="../private/psycopg2._psycopg.connection-class.html" class="link"><code>extensions.connection</code></a></td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2-module.html#connect" class="summary-sig-name"><code>connect</code></a>(<span class="summary-sig-arg">dsn</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Create a new database connection.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Value objects constructors</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new binary object</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2-module.html#Binary" class="summary-sig-name"><code>Binary</code></a>(<span class="summary-sig-arg">buffer</span>)</span></code>\r
+<br />\r
+Build an object capable to hold a bynary string value.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new date</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2-module.html#Date" class="summary-sig-name"><code>Date</code></a>(<span class="summary-sig-arg">year</span>,\r
+          <span class="summary-sig-arg">month</span>,\r
+          <span class="summary-sig-arg">day</span>)</span></code>\r
+<br />\r
+Build an object holding a date value.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new date</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2-module.html#DateFromTicks" class="summary-sig-name"><code>DateFromTicks</code></a>(<span class="summary-sig-arg">ticks</span>)</span></code>\r
+<br />\r
+Build an object holding a date value from the given ticks value.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new time</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2-module.html#Time" class="summary-sig-name"><code>Time</code></a>(<span class="summary-sig-arg">hour</span>,\r
+          <span class="summary-sig-arg">minutes</span>,\r
+          <span class="summary-sig-arg">seconds</span>,\r
+          <span class="summary-sig-arg">tzinfo</span>)</span></code>\r
+<br />\r
+Build an object holding a time value.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new time</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2-module.html#TimeFromTicks" class="summary-sig-name"><code>TimeFromTicks</code></a>(<span class="summary-sig-arg">ticks</span>)</span></code>\r
+<br />\r
+Build an object holding a time value from the given ticks value.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new timestamp</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2-module.html#Timestamp" class="summary-sig-name"><code>Timestamp</code></a>(<span class="summary-sig-arg">year</span>,\r
+          <span class="summary-sig-arg">month</span>,\r
+          <span class="summary-sig-arg">day</span>,\r
+          <span class="summary-sig-arg">hour</span>,\r
+          <span class="summary-sig-arg">minutes</span>,\r
+          <span class="summary-sig-arg">seconds</span>,\r
+          <span class="summary-sig-arg">tzinfo</span>)</span></code>\r
+<br />\r
+Build an object holding a timestamp value.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new timestamp</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2-module.html#TimestampFromTicks" class="summary-sig-name"><code>TimestampFromTicks</code></a>(<span class="summary-sig-arg">ticks</span>)</span></code>\r
+<br />\r
+Build an object holding a timestamp value from the given ticks value.</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF FUNCTION DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Function Details</th></tr>\r
+</table>\r
+\r
+<a name="connect"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">connect</span>(<span class="sig-arg">dsn</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+<p>Create a new database connection.</p>\r
+<p>This function supports two different but equivalent sets of arguments.\r
+A single data source name or <tt class="docutils literal"><span class="pre">dsn</span></tt> string can be used to specify the\r
+connection parameters, as follows:</p>\r
+<pre class="literal-block">\r
+psycopg2.connect(&quot;dbname=xxx user=xxx ...&quot;)\r
+</pre>\r
+<p>If <tt class="docutils literal"><span class="pre">dsn</span></tt> is not provided it is possible to pass the parameters as\r
+keyword arguments; e.g.:</p>\r
+<pre class="literal-block">\r
+psycopg2.connect(database='xxx', user='xxx', ...)\r
+</pre>\r
+<p>The full list of available parameters is:</p>\r
+<ul class="rst-simple">\r
+<li><tt class="docutils literal"><span class="pre">dbname</span></tt> -- database name (only in 'dsn')</li>\r
+<li><tt class="docutils literal"><span class="pre">database</span></tt> -- database name (only as keyword argument)</li>\r
+<li><tt class="docutils literal"><span class="pre">host</span></tt> -- host address (defaults to UNIX socket if not provided)</li>\r
+<li><tt class="docutils literal"><span class="pre">port</span></tt> -- port number (defaults to 5432 if not provided)</li>\r
+<li><tt class="docutils literal"><span class="pre">user</span></tt> -- user name used to authenticate</li>\r
+<li><tt class="docutils literal"><span class="pre">password</span></tt> -- password used to authenticate</li>\r
+<li><tt class="docutils literal"><span class="pre">sslmode</span></tt> -- SSL mode (see PostgreSQL documentation)</li>\r
+</ul>\r
+<p>If the <tt class="docutils literal"><span class="pre">connection_factory</span></tt> keyword argument is not provided this\r
+function always return an instance of the <code>connection</code> class.\r
+Else the given sub-class of <a href="../private/psycopg2._psycopg.connection-class.html" class="link"><code>extensions.connection</code></a> will be used to\r
+instantiate the connection object.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+New database connection        <br /><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r
+        (type=<a href="../private/psycopg2._psycopg.connection-class.html" class="link"><code>extensions.connection</code></a>)</em>\r
+      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="Binary"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">Binary</span>(<span class="sig-arg">buffer</span>)</span>\r
+  </h3>\r
+<p>Build an object capable to hold a bynary string value.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new binary object      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="Date"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">Date</span>(<span class="sig-arg">year</span>,\r
+          <span class="sig-arg">month</span>,\r
+          <span class="sig-arg">day</span>)</span>\r
+  </h3>\r
+<p>Build an object holding a date value.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new date      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="DateFromTicks"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">DateFromTicks</span>(<span class="sig-arg">ticks</span>)</span>\r
+  </h3>\r
+<p>Build an object holding a date value from the given ticks value.</p>\r
+<p>Ticks are the number of seconds since the epoch; see the documentation of the standard Python time module for details).</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new date      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="Time"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">Time</span>(<span class="sig-arg">hour</span>,\r
+          <span class="sig-arg">minutes</span>,\r
+          <span class="sig-arg">seconds</span>,\r
+          <span class="sig-arg">tzinfo</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+<p>Build an object holding a time value.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new time      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="TimeFromTicks"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">TimeFromTicks</span>(<span class="sig-arg">ticks</span>)</span>\r
+  </h3>\r
+<p>Build an object holding a time value from the given ticks value.</p>\r
+<p>Ticks are the number of seconds since the epoch; see the documentation of the standard Python time module for details).</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new time      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="Timestamp"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">Timestamp</span>(<span class="sig-arg">year</span>,\r
+          <span class="sig-arg">month</span>,\r
+          <span class="sig-arg">day</span>,\r
+          <span class="sig-arg">hour</span>,\r
+          <span class="sig-arg">minutes</span>,\r
+          <span class="sig-arg">seconds</span>,\r
+          <span class="sig-arg">tzinfo</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+<p>Build an object holding a timestamp value.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new timestamp      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="TimestampFromTicks"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">TimestampFromTicks</span>(<span class="sig-arg">ticks</span>)</span>\r
+  </h3>\r
+<p>Build an object holding a timestamp value from the given ticks value.</p>\r
+<p>Ticks are the number of seconds since the epoch; see the documentation of the standard Python time module for details).</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new timestamp      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.DataError-class.html b/trunk/psycopg2/doc/api/public/psycopg2.DataError-class.html
new file mode 100644 (file)
index 0000000..48749b9
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.DataError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;DataError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.DataError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.DataError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class DataError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
+            |            \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
+                |        \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
+                    |    \r
+        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
+                        |\r
+                       <strong class="uidshort">DataError</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Error related to problems with the processed data.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.DatabaseError-class.html b/trunk/psycopg2/doc/api/public/psycopg2.DatabaseError-class.html
new file mode 100644 (file)
index 0000000..154af85
--- /dev/null
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.DatabaseError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;DatabaseError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.DatabaseError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.DatabaseError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class DatabaseError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+        \r
+            |        \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+    \r
+                |    \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+\r
+                    |\r
+                   <strong class="uidshort">DatabaseError</strong>\r
+</pre><br />\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="psycopg2.DataError-class.html"><code>DataError</code></a>,\r
+    <a href="psycopg2.IntegrityError-class.html"><code>IntegrityError</code></a>,\r
+    <a href="psycopg2.InternalError-class.html"><code>InternalError</code></a>,\r
+    <a href="psycopg2.NotSupportedError-class.html"><code>NotSupportedError</code></a>,\r
+    <a href="psycopg2.OperationalError-class.html"><code>OperationalError</code></a>,\r
+    <a href="psycopg2.ProgrammingError-class.html"><code>ProgrammingError</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>Error related to the database engine.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.Error-class.html b/trunk/psycopg2/doc/api/public/psycopg2.Error-class.html
new file mode 100644 (file)
index 0000000..ed0b9fa
--- /dev/null
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.Error</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;Error\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.Error-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.Error-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class Error</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+    \r
+            |    \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+\r
+                |\r
+               <strong class="uidshort">Error</strong>\r
+</pre><br />\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a>,\r
+    <a href="psycopg2.InterfaceError-class.html"><code>InterfaceError</code></a>,\r
+    <a href="psycopg2.pool.PoolError-class.html"><code>PoolError</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>Base class for error exceptions.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.IntegrityError-class.html b/trunk/psycopg2/doc/api/public/psycopg2.IntegrityError-class.html
new file mode 100644 (file)
index 0000000..f2e2752
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.IntegrityError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;IntegrityError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.IntegrityError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.IntegrityError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class IntegrityError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
+            |            \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
+                |        \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
+                    |    \r
+        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
+                        |\r
+                       <strong class="uidshort">IntegrityError</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Error related to database integrity.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.InterfaceError-class.html b/trunk/psycopg2/doc/api/public/psycopg2.InterfaceError-class.html
new file mode 100644 (file)
index 0000000..40667fa
--- /dev/null
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.InterfaceError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;InterfaceError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.InterfaceError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.InterfaceError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class InterfaceError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+        \r
+            |        \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+    \r
+                |    \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+\r
+                    |\r
+                   <strong class="uidshort">InterfaceError</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Error related to the database interface.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.InternalError-class.html b/trunk/psycopg2/doc/api/public/psycopg2.InternalError-class.html
new file mode 100644 (file)
index 0000000..13290d4
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.InternalError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;InternalError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.InternalError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.InternalError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class InternalError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
+            |            \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
+                |        \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
+                    |    \r
+        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
+                        |\r
+                       <strong class="uidshort">InternalError</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>The database encountered an internal error.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.NotSupportedError-class.html b/trunk/psycopg2/doc/api/public/psycopg2.NotSupportedError-class.html
new file mode 100644 (file)
index 0000000..842c79f
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.NotSupportedError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;NotSupportedError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.NotSupportedError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.NotSupportedError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class NotSupportedError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
+            |            \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
+                |        \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
+                    |    \r
+        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
+                        |\r
+                       <strong class="uidshort">NotSupportedError</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>A not supported datbase API was called.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.OperationalError-class.html b/trunk/psycopg2/doc/api/public/psycopg2.OperationalError-class.html
new file mode 100644 (file)
index 0000000..e52e8b1
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.OperationalError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;OperationalError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.OperationalError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.OperationalError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class OperationalError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
+            |            \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
+                |        \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
+                    |    \r
+        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
+                        |\r
+                       <strong class="uidshort">OperationalError</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Error related to database operation (disconnect, memory allocation etc).</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.ProgrammingError-class.html b/trunk/psycopg2/doc/api/public/psycopg2.ProgrammingError-class.html
new file mode 100644 (file)
index 0000000..ea995a5
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.ProgrammingError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;ProgrammingError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.ProgrammingError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.ProgrammingError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class ProgrammingError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+            \r
+            |            \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+        \r
+                |        \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+    \r
+                    |    \r
+        <a href="psycopg2.DatabaseError-class.html"><code>DatabaseError</code></a> --+\r
+                        |\r
+                       <strong class="uidshort">ProgrammingError</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Error related to database programming (SQL error, table not found etc).</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.Warning-class.html b/trunk/psycopg2/doc/api/public/psycopg2.Warning-class.html
new file mode 100644 (file)
index 0000000..86631fe
--- /dev/null
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.Warning</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Class&nbsp;Warning\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.Warning-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.Warning-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class Warning</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+    \r
+            |    \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+\r
+                |\r
+               <strong class="uidshort">Warning</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>A database warning.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2._psycopg-module.html b/trunk/psycopg2/doc/api/public/psycopg2._psycopg-module.html
new file mode 100644 (file)
index 0000000..034827e
--- /dev/null
@@ -0,0 +1,1001 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2._psycopg</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Module&nbsp;_psycopg\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2._psycopg-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2._psycopg-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
+<h2 class="module">Module psycopg2._psycopg</h2>\r
+\r
+<p>psycopg PostgreSQL driver</p>\r
+<hr/>\r
+\r
+<!-- =========== START OF VARIABLE SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Variable Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>str</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#__version__"><code>__version__</code></a></strong> = <span title="'2.0b7 (dt ext pq3)'"><code><span class="variable-quote">'</span>2.0b7&nbsp;(dt&nbsp;ext&nbsp;pq3)<span class="variable-quote">'</span>                       </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>dict</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#adapters"><code>adapters</code></a></strong> = <span title="{(&lt;type 'bool'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Boolean'&gt;, (&lt;type 'list'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.List'&gt;, (&lt;type 'datetime.datetime'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function TimestampFromPy&gt;, (&lt;type 'buffer'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Binary'&gt;, (&lt;type 'unicode'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.QuotedString'&gt;, (&lt;type 'datetime.date'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function DateFromPy&gt;, (&lt;type 'datetime.time'&gt;, ..."><code>{(&lt;type&nbsp;'bool'&gt;,&nbsp;&lt;type&nbsp;'psycopg2._psycopg.ISQ<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>str</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#apilevel"><code>apilevel</code></a></strong> = <span title="'2.0'"><code><span class="variable-quote">'</span>2.0<span class="variable-quote">'</span>                                         </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#BINARY"><code>BINARY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x009558C0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x009558C0&gt;   </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>dict</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#binary_types"><code>binary_types</code></a></strong> = <span title="{}"><code>{}                                        </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#BINARYARRAY"><code>BINARYARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955B60&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955B<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#BOOLEAN"><code>BOOLEAN</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955760&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955760&gt;  </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#BOOLEANARRAY"><code>BOOLEANARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955A20&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#DATE"><code>DATE</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x009558A0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x009558A0&gt;     </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#DATEARRAY"><code>DATEARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955AA0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955AA0<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#DATETIME"><code>DATETIME</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x009557C0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x009557C0&gt; </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#DATETIMEARRAY"><code>DATETIMEARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955AC0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x0095<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#DECIMAL"><code>DECIMAL</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955680&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955680&gt;  </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#DECIMALARRAY"><code>DECIMALARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955260&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>dict</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#encodings"><code>encodings</code></a></strong> = <span title="{'UTF8': 'utf_8', 'LATIN-1': 'latin_1', 'SQL_ASCII': 'ascii', 'UNICODE': 'utf_8', 'LATIN1': 'latin_1'}"><code>{'UTF8':&nbsp;'utf_8',&nbsp;'LATIN-1':&nbsp;'latin_1',&nbsp;'SQL<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#FLOAT"><code>FLOAT</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955660&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955660&gt;    </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#FLOATARRAY"><code>FLOATARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x009559E0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x009559E<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#INTEGER"><code>INTEGER</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955620&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955620&gt;  </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#INTEGERARRAY"><code>INTEGERARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955A00&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#INTERVAL"><code>INTERVAL</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955860&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955860&gt; </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#INTERVALARRAY"><code>INTERVALARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955BA0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x0095<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#LONGINTEGER"><code>LONGINTEGER</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x009555C0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x009555<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#LONGINTEGERARRAY"><code>LONGINTEGERARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955960&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x0<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#NUMBER"><code>NUMBER</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955540&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955540&gt;   </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>str</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#paramstyle"><code>paramstyle</code></a></strong> = <span title="'pyformat'"><code><span class="variable-quote">'</span>pyformat<span class="variable-quote">'</span>                                  </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#PYDATE"><code>PYDATE</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955D00&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955D00&gt;   </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#PYDATETIME"><code>PYDATETIME</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955C00&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955C0<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#PYINTERVAL"><code>PYINTERVAL</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955CE0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955CE<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#PYTIME"><code>PYTIME</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955C40&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955C40&gt;   </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#ROWID"><code>ROWID</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x009559A0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x009559A0&gt;    </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#ROWIDARRAY"><code>ROWIDARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955BE0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955BE<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#STRING"><code>STRING</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955720&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955720&gt;   </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>dict</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#string_types"><code>string_types</code></a></strong> = <span title="{1028: &lt;psycopg2._psycopg.type object at 0x00955BE0&gt;, 1005: &lt;psycopg2._psycopg.type object at 0x00955A00&gt;, 16: &lt;psycopg2._psycopg.type object at 0x00955760&gt;, 17: &lt;psycopg2._psycopg.type object at 0x009558C0&gt;, 1042: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 1043: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 20: &lt;psycopg2._psycopg.type object at 0x009555C0&gt;, 21: &lt;psycopg2._psycopg.type object at 0x00955620&gt;, 23: &lt;psycopg2._psycopg.type object at 0x00955620&gt;, 25: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 26: &lt;psycopg2._psycopg.type object at 0x009559A0&gt;, 1182: &lt;psycopg2._psycopg.ty..."><code>{1028:&nbsp;&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#STRINGARRAY"><code>STRINGARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955A80&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955A<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#threadsafety"><code>threadsafety</code></a></strong> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#TIME"><code>TIME</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955840&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955840&gt;     </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#TIMEARRAY"><code>TIMEARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955B00&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955B00<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#UNICODE"><code>UNICODE</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x009556C0&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x009556C0&gt;  </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>type</code></td>\r
+<td><strong><a href="psycopg2._psycopg-module.html#UNICODEARRAY"><code>UNICODEARRAY</code></a></strong> = <span title="&lt;psycopg2._psycopg.type object at 0x00955A40&gt;"><code>&lt;psycopg2._psycopg.type&nbsp;object&nbsp;at&nbsp;0x00955<span class="variable-ellipsis">...</span></code>\r
+</span></td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF VARIABLE DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Variable Details</th></tr>\r
+</table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="__version__"></a>\r
+<h3>__version__</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>str</code>\r
+\r
+      </dd>\r
+      <dt title="'2.0b7 (dt ext pq3)'">Value:</dt>\r
+      <dd title="'2.0b7 (dt ext pq3)'"><table><tr><td>\r
+<pre class="variable">\r
+<span class="variable-quote">'</span>2.0b7 (dt ext pq3)<span class="variable-quote">'</span>                                                   </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="adapters"></a>\r
+<h3>adapters</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>dict</code>\r
+\r
+      </dd>\r
+      <dt title="{(&lt;type 'bool'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Boolean'&gt;, (&lt;type 'list'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.List'&gt;, (&lt;type 'datetime.datetime'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function TimestampFromPy&gt;, (&lt;type 'buffer'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Binary'&gt;, (&lt;type 'unicode'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.QuotedString'&gt;, (&lt;type 'datetime.date'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function DateFromPy&gt;, (&lt;type 'datetime.time'&gt;, ...">Value:</dt>\r
+      <dd title="{(&lt;type 'bool'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Boolean'&gt;, (&lt;type 'list'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.List'&gt;, (&lt;type 'datetime.datetime'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function TimestampFromPy&gt;, (&lt;type 'buffer'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.Binary'&gt;, (&lt;type 'unicode'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;type 'psycopg2._psycopg.QuotedString'&gt;, (&lt;type 'datetime.date'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;built-in function DateFromPy&gt;, (&lt;type 'datetime.time'&gt;, ..."><table><tr><td>\r
+<pre class="variable">\r
+{(&lt;type 'datetime.timedelta'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): <span class="variable-linewrap">\</span>\r
+&lt;built-in function IntervalFromPy&gt;,\r
+ (&lt;type 'datetime.date'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;buil<span class="variable-linewrap">\</span>\r
+t-in function DateFromPy&gt;,\r
+ (&lt;type 'datetime.time'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;buil<span class="variable-linewrap">\</span>\r
+t-in function TimeFromPy&gt;,\r
+ (&lt;type 'datetime.datetime'&gt;, &lt;type 'psycopg2._psycopg.ISQLQuote'&gt;): &lt;<span class="variable-linewrap">\</span>\r
+built-in function TimestampFromPy&gt;,\r
+<span class="variable-ellipsis">...</span>                                                                    </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="apilevel"></a>\r
+<h3>apilevel</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>str</code>\r
+\r
+      </dd>\r
+      <dt title="'2.0'">Value:</dt>\r
+      <dd title="'2.0'"><table><tr><td>\r
+<pre class="variable">\r
+<span class="variable-quote">'</span>2.0<span class="variable-quote">'</span>                                                                  </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="BINARY"></a>\r
+<h3>BINARY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x009558C0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x009558C0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x009558C0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="binary_types"></a>\r
+<h3>binary_types</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>dict</code>\r
+\r
+      </dd>\r
+      <dt title="{}">Value:</dt>\r
+      <dd title="{}"><table><tr><td>\r
+<pre class="variable">\r
+{}                                                                     </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="BINARYARRAY"></a>\r
+<h3>BINARYARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955B60&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955B60&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955B60&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="BOOLEAN"></a>\r
+<h3>BOOLEAN</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955760&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955760&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955760&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="BOOLEANARRAY"></a>\r
+<h3>BOOLEANARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955A20&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955A20&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955A20&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="DATE"></a>\r
+<h3>DATE</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x009558A0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x009558A0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x009558A0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="DATEARRAY"></a>\r
+<h3>DATEARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955AA0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955AA0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955AA0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="DATETIME"></a>\r
+<h3>DATETIME</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x009557C0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x009557C0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x009557C0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="DATETIMEARRAY"></a>\r
+<h3>DATETIMEARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955AC0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955AC0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955AC0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="DECIMAL"></a>\r
+<h3>DECIMAL</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955680&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955680&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955680&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="DECIMALARRAY"></a>\r
+<h3>DECIMALARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955260&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955260&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955260&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="encodings"></a>\r
+<h3>encodings</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>dict</code>\r
+\r
+      </dd>\r
+      <dt title="{'UTF8': 'utf_8', 'LATIN-1': 'latin_1', 'SQL_ASCII': 'ascii', 'UNICODE': 'utf_8', 'LATIN1': 'latin_1'}">Value:</dt>\r
+      <dd title="{'UTF8': 'utf_8', 'LATIN-1': 'latin_1', 'SQL_ASCII': 'ascii', 'UNICODE': 'utf_8', 'LATIN1': 'latin_1'}"><table><tr><td>\r
+<pre class="variable">\r
+{'LATIN-1': 'latin_1',\r
+ 'LATIN1': 'latin_1',\r
+ 'SQL_ASCII': 'ascii',\r
+ 'UNICODE': 'utf_8',\r
+ 'UTF8': 'utf_8'}                                                      </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="FLOAT"></a>\r
+<h3>FLOAT</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955660&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955660&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955660&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="FLOATARRAY"></a>\r
+<h3>FLOATARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x009559E0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x009559E0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x009559E0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="INTEGER"></a>\r
+<h3>INTEGER</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955620&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955620&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955620&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="INTEGERARRAY"></a>\r
+<h3>INTEGERARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955A00&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955A00&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955A00&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="INTERVAL"></a>\r
+<h3>INTERVAL</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955860&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955860&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955860&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="INTERVALARRAY"></a>\r
+<h3>INTERVALARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955BA0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955BA0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955BA0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="LONGINTEGER"></a>\r
+<h3>LONGINTEGER</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x009555C0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x009555C0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x009555C0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="LONGINTEGERARRAY"></a>\r
+<h3>LONGINTEGERARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955960&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955960&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955960&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="NUMBER"></a>\r
+<h3>NUMBER</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955540&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955540&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955540&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="paramstyle"></a>\r
+<h3>paramstyle</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>str</code>\r
+\r
+      </dd>\r
+      <dt title="'pyformat'">Value:</dt>\r
+      <dd title="'pyformat'"><table><tr><td>\r
+<pre class="variable">\r
+<span class="variable-quote">'</span>pyformat<span class="variable-quote">'</span>                                                             </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="PYDATE"></a>\r
+<h3>PYDATE</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955D00&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955D00&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955D00&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="PYDATETIME"></a>\r
+<h3>PYDATETIME</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955C00&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955C00&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955C00&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="PYINTERVAL"></a>\r
+<h3>PYINTERVAL</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955CE0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955CE0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955CE0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="PYTIME"></a>\r
+<h3>PYTIME</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955C40&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955C40&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955C40&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="ROWID"></a>\r
+<h3>ROWID</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x009559A0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x009559A0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x009559A0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="ROWIDARRAY"></a>\r
+<h3>ROWIDARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955BE0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955BE0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955BE0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="STRING"></a>\r
+<h3>STRING</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955720&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955720&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955720&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="string_types"></a>\r
+<h3>string_types</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>dict</code>\r
+\r
+      </dd>\r
+      <dt title="{1028: &lt;psycopg2._psycopg.type object at 0x00955BE0&gt;, 1005: &lt;psycopg2._psycopg.type object at 0x00955A00&gt;, 16: &lt;psycopg2._psycopg.type object at 0x00955760&gt;, 17: &lt;psycopg2._psycopg.type object at 0x009558C0&gt;, 1042: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 1043: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 20: &lt;psycopg2._psycopg.type object at 0x009555C0&gt;, 21: &lt;psycopg2._psycopg.type object at 0x00955620&gt;, 23: &lt;psycopg2._psycopg.type object at 0x00955620&gt;, 25: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 26: &lt;psycopg2._psycopg.type object at 0x009559A0&gt;, 1182: &lt;psycopg2._psycopg.ty...">Value:</dt>\r
+      <dd title="{1028: &lt;psycopg2._psycopg.type object at 0x00955BE0&gt;, 1005: &lt;psycopg2._psycopg.type object at 0x00955A00&gt;, 16: &lt;psycopg2._psycopg.type object at 0x00955760&gt;, 17: &lt;psycopg2._psycopg.type object at 0x009558C0&gt;, 1042: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 1043: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 20: &lt;psycopg2._psycopg.type object at 0x009555C0&gt;, 21: &lt;psycopg2._psycopg.type object at 0x00955620&gt;, 23: &lt;psycopg2._psycopg.type object at 0x00955620&gt;, 25: &lt;psycopg2._psycopg.type object at 0x00955720&gt;, 26: &lt;psycopg2._psycopg.type object at 0x009559A0&gt;, 1182: &lt;psycopg2._psycopg.ty..."><table><tr><td>\r
+<pre class="variable">\r
+{16: &lt;psycopg2._psycopg.type object at 0x00955760&gt;,\r
+ 17: &lt;psycopg2._psycopg.type object at 0x009558C0&gt;,\r
+ 18: &lt;psycopg2._psycopg.type object at 0x00955720&gt;,\r
+ 19: &lt;psycopg2._psycopg.type object at 0x00955720&gt;,\r
+ 20: &lt;psycopg2._psycopg.type object at 0x009555C0&gt;,\r
+ 21: &lt;psycopg2._psycopg.type object at 0x00955620&gt;,\r
+ 23: &lt;psycopg2._psycopg.type object at 0x00955620&gt;,\r
+ 25: &lt;psycopg2._psycopg.type object at 0x00955720&gt;,\r
+<span class="variable-ellipsis">...</span>                                                                    </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="STRINGARRAY"></a>\r
+<h3>STRINGARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955A80&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955A80&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955A80&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="threadsafety"></a>\r
+<h3>threadsafety</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>int</code>\r
+\r
+      </dd>\r
+      <dt title="2">Value:</dt>\r
+      <dd title="2"><table><tr><td>\r
+<pre class="variable">\r
+2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="TIME"></a>\r
+<h3>TIME</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955840&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955840&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955840&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="TIMEARRAY"></a>\r
+<h3>TIMEARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955B00&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955B00&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955B00&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="UNICODE"></a>\r
+<h3>UNICODE</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x009556C0&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x009556C0&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x009556C0&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="UNICODEARRAY"></a>\r
+<h3>UNICODEARRAY</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>type</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2._psycopg.type object at 0x00955A40&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2._psycopg.type object at 0x00955A40&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2._psycopg.type object at 0x00955A40&gt;                          </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Fri Jan 13 10:57:06 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.extensions-module.html b/trunk/psycopg2/doc/api/public/psycopg2.extensions-module.html
new file mode 100644 (file)
index 0000000..4e97448
--- /dev/null
@@ -0,0 +1,418 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.extensions</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Module&nbsp;extensions\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.extensions-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extensions-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
+<h2 class="module">Module psycopg2.extensions</h2>\r
+\r
+<p>psycopg extensions to the DBAPI-2.0</p>\r
+<p>This module holds all the extensions to the DBAPI-2.0 provided by psycopg.</p>\r
+<ul class="rst-simple">\r
+<li><a href="../private/psycopg2._psycopg.connection-class.html" class="link"><code>connection</code></a> -- the new-type inheritable connection class</li>\r
+<li><a href="../private/psycopg2._psycopg.cursor-class.html" class="link"><code>cursor</code></a> -- the new-type inheritable cursor class</li>\r
+<li><a href="psycopg2.extensions-module.html#adapt" class="link"><code>adapt()</code></a> -- exposes the <a class="reference" href="http://www.python.org/peps/pep-0246.html">PEP-246</a> compatible adapting mechanism used\r
+by psycopg to adapt Python types to PostgreSQL ones</li>\r
+</ul>\r
+<hr/>\r
+\r
+<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Function Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">object</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.extensions-module.html#adapt" class="summary-sig-name"><code>adapt</code></a>(<span class="summary-sig-arg">obj</span>,\r
+          <span class="summary-sig-arg">protocol</span>,\r
+          <span class="summary-sig-arg">alternate</span>)</span></code>\r
+<br />\r
+adapt obj to given protocol</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new AsIs wrapper object</td>\r
+  <td><code><a name="AsIs"></a><span class="summary-sig"><span class="summary-sig-name">AsIs</span>(<span class="summary-sig-arg">obj</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new boolean value</td>\r
+  <td><code><a name="Boolean"></a><span class="summary-sig"><span class="summary-sig-name">Boolean</span>(<span class="summary-sig-arg">obj</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new wrapper</td>\r
+  <td><code><a name="DateFromPy"></a><span class="summary-sig"><span class="summary-sig-name">DateFromPy</span>(<span class="summary-sig-arg">datetime.date</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new wrapper</td>\r
+  <td><code><a name="IntervalFromPy"></a><span class="summary-sig"><span class="summary-sig-name">IntervalFromPy</span>(<span class="summary-sig-arg">datetime.timedelta</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new type object</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.extensions-module.html#new_type" class="summary-sig-name"><code>new_type</code></a>(<span class="summary-sig-arg">oids</span>,\r
+          <span class="summary-sig-arg">name</span>,\r
+          <span class="summary-sig-arg">adapter</span>)</span></code>\r
+<br />\r
+Create a new binding object.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new quoted string</td>\r
+  <td><code><a name="QuotedString"></a><span class="summary-sig"><span class="summary-sig-name">QuotedString</span>(<span class="summary-sig-arg">str</span>,\r
+          <span class="summary-sig-arg">enc</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.extensions-module.html#register_adapter" class="summary-sig-name"><code>register_adapter</code></a>(<span class="summary-sig-arg">typ</span>,\r
+          <span class="summary-sig-arg">callable</span>)</span></code>\r
+<br />\r
+Register 'callable' as an ISQLQuote adapter for type 'typ'.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">None</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.extensions-module.html#register_type" class="summary-sig-name"><code>register_type</code></a>(<span class="summary-sig-arg">obj</span>)</span></code>\r
+<br />\r
+register obj with psycopg type system</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new wrapper</td>\r
+  <td><code><a name="TimeFromPy"></a><span class="summary-sig"><span class="summary-sig-name">TimeFromPy</span>(<span class="summary-sig-arg">datetime.time</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new wrapper</td>\r
+  <td><code><a name="TimestampFromPy"></a><span class="summary-sig"><span class="summary-sig-name">TimestampFromPy</span>(<span class="summary-sig-arg">datetime.datetime</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF VARIABLE SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Variable Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
+<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT"><code>ISOLATION_LEVEL_AUTOCOMMIT</code></a></strong> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
+<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_COMMITTED"><code>ISOLATION_LEVEL_READ_COMMITTED</code></a></strong> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
+<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_UNCOMMITTED"><code>ISOLATION_LEVEL_READ_UNCOMMITTED</code></a></strong> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
+<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_REPEATABLE_READ"><code>ISOLATION_LEVEL_REPEATABLE_READ</code></a></strong> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>int</code></td>\r
+<td><strong><a href="psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE"><code>ISOLATION_LEVEL_SERIALIZABLE</code></a></strong> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF FUNCTION DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Function Details</th></tr>\r
+</table>\r
+\r
+<a name="adapt"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">adapt</span>(<span class="sig-arg">obj</span>,\r
+          <span class="sig-arg">protocol</span>,\r
+          <span class="sig-arg">alternate</span>)</span>\r
+  </h3>\r
+<p>adapt obj to given protocol</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+object      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="AsIs"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">AsIs</span>(<span class="sig-arg">obj</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new AsIs wrapper object      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="Boolean"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">Boolean</span>(<span class="sig-arg">obj</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new boolean value      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="DateFromPy"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">DateFromPy</span>(<span class="sig-arg">datetime.date</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new wrapper      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="IntervalFromPy"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">IntervalFromPy</span>(<span class="sig-arg">datetime.timedelta</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new wrapper      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="new_type"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">new_type</span>(<span class="sig-arg">oids</span>,\r
+          <span class="sig-arg">name</span>,\r
+          <span class="sig-arg">adapter</span>)</span>\r
+  </h3>\r
+<p>Create a new binding object. The object can be used with the\r
+<a href="psycopg2.extensions-module.html#register_type" class="link"><code>register_type()</code></a> function to bind PostgreSQL objects to python objects.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Parameters:</dt>\r
+      <dd><code><strong class="pname">oids</strong></code> -\r
+ Tuple of <tt class="docutils literal"><span class="pre">oid</span></tt> of the PostgreSQL types to convert.\r
+      </dd>\r
+      <dd><code><strong class="pname">name</strong></code> -\r
+ Name for the new type\r
+      </dd>\r
+      <dd><code><strong class="pname">adapter</strong></code> -\r
+ Callable to perform type conversion.\r
+It must have the signature <tt class="docutils literal"><span class="pre">fun(value,</span> <span class="pre">cur)</span></tt> where <tt class="docutils literal"><span class="pre">value</span></tt> is\r
+the string representation returned by PostgreSQL (<code>None</code> if <tt class="docutils literal"><span class="pre">NULL</span></tt>)\r
+and <tt class="docutils literal"><span class="pre">cur</span></tt> is the cursor from which data are read.\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new type object      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="QuotedString"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">QuotedString</span>(<span class="sig-arg">str</span>,\r
+          <span class="sig-arg">enc</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new quoted string      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="register_adapter"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">register_adapter</span>(<span class="sig-arg">typ</span>,\r
+          <span class="sig-arg">callable</span>)</span>\r
+  </h3>\r
+<p>Register 'callable' as an ISQLQuote adapter for type 'typ'.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="register_type"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">register_type</span>(<span class="sig-arg">obj</span>)</span>\r
+  </h3>\r
+<p>register obj with psycopg type system</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Parameters:</dt>\r
+      <dd><code><strong class="pname">obj</strong></code> -\r
+ A type adapter created by <a href="psycopg2.extensions-module.html#new_type" class="link"><code>new_type()</code></a>\r
+      </dd>\r
+    </dl>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+None      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="TimeFromPy"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">TimeFromPy</span>(<span class="sig-arg">datetime.time</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new wrapper      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="TimestampFromPy"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">TimestampFromPy</span>(<span class="sig-arg">datetime.datetime</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new wrapper      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF VARIABLE DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Variable Details</th></tr>\r
+</table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="ISOLATION_LEVEL_AUTOCOMMIT"></a>\r
+<h3>ISOLATION_LEVEL_AUTOCOMMIT</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>int</code>\r
+\r
+      </dd>\r
+      <dt title="0">Value:</dt>\r
+      <dd title="0"><table><tr><td>\r
+<pre class="variable">\r
+0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="ISOLATION_LEVEL_READ_COMMITTED"></a>\r
+<h3>ISOLATION_LEVEL_READ_COMMITTED</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>int</code>\r
+\r
+      </dd>\r
+      <dt title="1">Value:</dt>\r
+      <dd title="1"><table><tr><td>\r
+<pre class="variable">\r
+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="ISOLATION_LEVEL_READ_UNCOMMITTED"></a>\r
+<h3>ISOLATION_LEVEL_READ_UNCOMMITTED</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>int</code>\r
+\r
+      </dd>\r
+      <dt title="1">Value:</dt>\r
+      <dd title="1"><table><tr><td>\r
+<pre class="variable">\r
+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="ISOLATION_LEVEL_REPEATABLE_READ"></a>\r
+<h3>ISOLATION_LEVEL_REPEATABLE_READ</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>int</code>\r
+\r
+      </dd>\r
+      <dt title="2">Value:</dt>\r
+      <dd title="2"><table><tr><td>\r
+<pre class="variable">\r
+2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="ISOLATION_LEVEL_SERIALIZABLE"></a>\r
+<h3>ISOLATION_LEVEL_SERIALIZABLE</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>int</code>\r
+\r
+      </dd>\r
+      <dt title="2">Value:</dt>\r
+      <dd title="2"><table><tr><td>\r
+<pre class="variable">\r
+2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:32 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.extras-module.html b/trunk/psycopg2/doc/api/public/psycopg2.extras-module.html
new file mode 100644 (file)
index 0000000..c99a0ce
--- /dev/null
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.extras</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Module&nbsp;extras\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.extras-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
+<h2 class="module">Module psycopg2.extras</h2>\r
+\r
+<p>Miscellaneous goodies for psycopg2</p>\r
+<p>This module is a generic place used to hold little helper functions\r
+and classes untill a better place in the distribution is found.</p>\r
+<hr/>\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Classes</th></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.extras.DictConnection-class.html"><code>DictConnection</code></a></strong></td>\r
+  <td>A connection that uses DictCursor automatically.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.extras.DictCursor-class.html"><code>DictCursor</code></a></strong></td>\r
+  <td>A cursor that keeps a list of column name -&gt; index mappings.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.extras.DictRow-class.html"><code>DictRow</code></a></strong></td>\r
+  <td>A row object that allow by-colun-name access to data.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.extras.SQL_IN-class.html"><code>SQL_IN</code></a></strong></td>\r
+  <td>Adapt any iterable to an SQL quotable object.</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:32 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.extras.DictConnection-class.html b/trunk/psycopg2/doc/api/public/psycopg2.extras.DictConnection-class.html
new file mode 100644 (file)
index 0000000..988bd79
--- /dev/null
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.extras.DictConnection</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.extras-module.html">Module&nbsp;extras</a> ::\r
+        Class&nbsp;DictConnection\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.extras.DictConnection-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras.DictConnection-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type DictConnection</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+         |    \r
+<a href="../private/psycopg2._psycopg.connection-class.html"><code>connection</code></a> --+\r
+             |\r
+            <strong class="uidshort">DictConnection</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>A connection that uses DictCursor automatically.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="cursor"></a><span class="summary-sig"><span class="summary-sig-name">cursor</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="cursor"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">cursor</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="../private/psycopg2._psycopg.connection-class.html#cursor"><code>psycopg2._psycopg.connection.cursor</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:31 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.extras.DictCursor-class.html b/trunk/psycopg2/doc/api/public/psycopg2.extras.DictCursor-class.html
new file mode 100644 (file)
index 0000000..d546d3a
--- /dev/null
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.extras.DictCursor</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.extras-module.html">Module&nbsp;extras</a> ::\r
+        Class&nbsp;DictCursor\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.extras.DictCursor-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras.DictCursor-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type DictCursor</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+         |    \r
+    <a href="../private/psycopg2._psycopg.cursor-class.html"><code>cursor</code></a> --+\r
+             |\r
+            <strong class="uidshort">DictCursor</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>A cursor that keeps a list of column name -&gt; index mappings.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="callproc"></a><span class="summary-sig"><span class="summary-sig-name">callproc</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">procname</span>,\r
+          <span class="summary-sig-arg">vars</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="execute"></a><span class="summary-sig"><span class="summary-sig-name">execute</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">query</span>,\r
+          <span class="summary-sig-arg">vars</span>,\r
+          <span class="summary-sig-arg">async</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="fetchall"></a><span class="summary-sig"><span class="summary-sig-name">fetchall</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="fetchmany"></a><span class="summary-sig"><span class="summary-sig-name">fetchmany</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">size</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="fetchone"></a><span class="summary-sig"><span class="summary-sig-name">fetchone</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="callproc"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">callproc</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">procname</span>,\r
+          <span class="sig-arg">vars</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#callproc"><code>psycopg2._psycopg.cursor.callproc</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="execute"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">execute</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">query</span>,\r
+          <span class="sig-arg">vars</span>=<span class="sig-default">None</span>,\r
+          <span class="sig-arg">async</span>=<span class="sig-default">0</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#execute"><code>psycopg2._psycopg.cursor.execute</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="fetchall"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">fetchall</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#fetchall"><code>psycopg2._psycopg.cursor.fetchall</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="fetchmany"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">fetchmany</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">size</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#fetchmany"><code>psycopg2._psycopg.cursor.fetchmany</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="fetchone"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">fetchone</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="../private/psycopg2._psycopg.cursor-class.html#fetchone"><code>psycopg2._psycopg.cursor.fetchone</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:32 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.extras.DictRow-class.html b/trunk/psycopg2/doc/api/public/psycopg2.extras.DictRow-class.html
new file mode 100644 (file)
index 0000000..e278ca3
--- /dev/null
@@ -0,0 +1,376 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.extras.DictRow</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.extras-module.html">Module&nbsp;extras</a> ::\r
+        Class&nbsp;DictRow\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.extras.DictRow-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras.DictRow-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type DictRow</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+         |    \r
+      <a href="__builtin__.list-class.html"><code>list</code></a> --+\r
+             |\r
+            <strong class="uidshort">DictRow</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>A row object that allow by-colun-name access to data.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">cursor</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__getitem__"></a><span class="summary-sig"><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">x</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="get"></a><span class="summary-sig"><span class="summary-sig-name">get</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">default</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="has_key"></a><span class="summary-sig"><span class="summary-sig-name">has_key</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">x</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="items"></a><span class="summary-sig"><span class="summary-sig-name">items</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="keys"></a><span class="summary-sig"><span class="summary-sig-name">keys</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="values"></a><span class="summary-sig"><span class="summary-sig-name">values</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from list</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__add__" class="summary-sig-name"><code>__add__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x+y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__contains__" class="summary-sig-name"><code>__contains__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return y in x...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__delitem__" class="summary-sig-name"><code>__delitem__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return del x[y]...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__delslice__" class="summary-sig-name"><code>__delslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">i</span>,\r
+          <span class="summary-sig-arg">j</span>)</span></code>\r
+<br />\r
+Use of negative indices is not supported.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__eq__" class="summary-sig-name"><code>__eq__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x==y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__ge__" class="summary-sig-name"><code>__ge__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x&gt;=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__getslice__" class="summary-sig-name"><code>__getslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">i</span>,\r
+          <span class="summary-sig-arg">j</span>)</span></code>\r
+<br />\r
+Use of negative indices is not supported.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__gt__" class="summary-sig-name"><code>__gt__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x&gt;y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__iadd__" class="summary-sig-name"><code>__iadd__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x+=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__imul__" class="summary-sig-name"><code>__imul__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x*=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__iter__" class="summary-sig-name"><code>__iter__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return iter(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__le__" class="summary-sig-name"><code>__le__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x&lt;=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__len__" class="summary-sig-name"><code>__len__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return len(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__lt__" class="summary-sig-name"><code>__lt__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x&lt;y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__mul__" class="summary-sig-name"><code>__mul__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">n</span>)</span></code>\r
+<br />\r
+Return x*n...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__ne__" class="summary-sig-name"><code>__ne__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x!=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__rmul__" class="summary-sig-name"><code>__rmul__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">n</span>)</span></code>\r
+<br />\r
+Return n*x...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__setitem__" class="summary-sig-name"><code>__setitem__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">i</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Return x[i]=y...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#__setslice__" class="summary-sig-name"><code>__setslice__</code></a>(<span class="summary-sig-arg">x</span>,\r
+          <span class="summary-sig-arg">i</span>,\r
+          <span class="summary-sig-arg">j</span>,\r
+          <span class="summary-sig-arg">y</span>)</span></code>\r
+<br />\r
+Use  of negative indices is not supported.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#append" class="summary-sig-name"><code>append</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">object</span>)</span></code>\r
+<br />\r
+append object to end</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#count" class="summary-sig-name"><code>count</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">value</span>)</span></code>\r
+<br />\r
+return number of occurrences of value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#extend" class="summary-sig-name"><code>extend</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">iterable</span>)</span></code>\r
+<br />\r
+extend list by appending elements from the iterable</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#index" class="summary-sig-name"><code>index</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+L.index(value, [start, [stop]]) -&gt; integer -- return first index of value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#insert" class="summary-sig-name"><code>insert</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">index</span>,\r
+          <span class="summary-sig-arg">object</span>)</span></code>\r
+<br />\r
+insert object before index</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#pop" class="summary-sig-name"><code>pop</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">index</span>)</span></code>\r
+<br />\r
+remove and return item at index (default last)</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#remove" class="summary-sig-name"><code>remove</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">value</span>)</span></code>\r
+<br />\r
+remove first occurrence of value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#reverse" class="summary-sig-name"><code>reverse</code></a>(<span class="summary-sig-arg">L</span>)</span></code>\r
+<br />\r
+reverse <em>IN PLACE</em></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.list-class.html#sort" class="summary-sig-name"><code>sort</code></a>(<span class="summary-sig-arg">L</span>,\r
+          <span class="summary-sig-arg">cmpfunc</span>)</span></code>\r
+<br />\r
+stable sort <em>IN PLACE</em>; cmpfunc(x, y) -&gt; -1, 0, 1</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">cursor</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.list-class.html#__init__"><code>__builtin__.list.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="__getitem__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__getitem__</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">x</span>)</span>\r
+    <br /><em class="fname">(Indexing operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.list-class.html#__getitem__"><code>__builtin__.list.__getitem__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="get"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">get</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">x</span>,\r
+          <span class="sig-arg">default</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="has_key"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">has_key</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">x</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="items"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">items</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="keys"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">keys</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="values"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">values</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.extras.SQL_IN-class.html b/trunk/psycopg2/doc/api/public/psycopg2.extras.SQL_IN-class.html
new file mode 100644 (file)
index 0000000..0b05cd2
--- /dev/null
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.extras.SQL_IN</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.extras-module.html">Module&nbsp;extras</a> ::\r
+        Class&nbsp;SQL_IN\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.extras.SQL_IN-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.extras.SQL_IN-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type SQL_IN</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
+         |\r
+        <strong class="uidshort">SQL_IN</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Adapt any iterable to an SQL quotable object.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">seq</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="getquoted"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="getquoted"></a><span class="summary-sig"><span class="summary-sig-name">getquoted</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">seq</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="getquoted"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__str__</span>(<span class="sig-arg">self</span>)</span>\r
+    <br /><em class="fname">(Informal representation operator)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="getquoted"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">getquoted</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.pool-module.html b/trunk/psycopg2/doc/api/public/psycopg2.pool-module.html
new file mode 100644 (file)
index 0000000..34fbebd
--- /dev/null
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.pool</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Module&nbsp;pool\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.pool-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
+<h2 class="module">Module psycopg2.pool</h2>\r
+\r
+<p>Connection pooling for psycopg2</p>\r
+<p>This module implements thread-safe (and not) connection pools.</p>\r
+<hr/>\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Classes</th></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a></strong></td>\r
+  <td>Generic key-based pooling code.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>PersistentConnectionPool</code></a></strong></td>\r
+  <td>A pool that assigns persistent connections to different threads.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.pool.SimpleConnectionPool-class.html"><code>SimpleConnectionPool</code></a></strong></td>\r
+  <td>A connection pool that can't be shared across different threads.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>ThreadedConnectionPool</code></a></strong></td>\r
+  <td>A connection pool that works with the threading module.</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF EXCEPTIONS =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Exceptions</th></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.pool.PoolError-class.html"><code>PoolError</code></a></strong></td>\r
+  <td>&nbsp;</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Function Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="dbg"></a><span class="summary-sig"><span class="summary-sig-name">dbg</span>(<span class="summary-sig-vararg">*args</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF FUNCTION DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Function Details</th></tr>\r
+</table>\r
+\r
+<a name="dbg"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">dbg</span>(<span class="sig-vararg">*args</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.pool.AbstractConnectionPool-class.html b/trunk/psycopg2/doc/api/public/psycopg2.pool.AbstractConnectionPool-class.html
new file mode 100644 (file)
index 0000000..41d63b9
--- /dev/null
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.pool.AbstractConnectionPool</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
+        Class&nbsp;AbstractConnectionPool\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.pool.AbstractConnectionPool-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.AbstractConnectionPool-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type AbstractConnectionPool</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+\r
+         |\r
+        <strong class="uidshort">AbstractConnectionPool</strong>\r
+</pre><br />\r
+\r
+<dl><dt>Known Subclasses:</dt>\r
+<dd>\r
+    <a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>PersistentConnectionPool</code></a>,\r
+    <a href="psycopg2.pool.SimpleConnectionPool-class.html"><code>SimpleConnectionPool</code></a>,\r
+    <a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>ThreadedConnectionPool</code></a></dd></dl>\r
+\r
+<hr/>\r
+\r
+<p>Generic key-based pooling code.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">minconn</span>,\r
+          <span class="summary-sig-arg">maxconn</span>,\r
+          <span class="summary-sig-vararg">*args</span>,\r
+          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>\r
+<br />\r
+Initialize the connection pool.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">minconn</span>,\r
+          <span class="sig-arg">maxconn</span>,\r
+          <span class="sig-vararg">*args</span>,\r
+          <span class="sig-kwarg">**kwargs</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+<p>Initialize the connection pool.</p>\r
+<p>New 'minconn' connections are created immediately calling 'connfunc'\r
+with given parameters. The connection pool will support a maximum of\r
+about 'maxconn' connections.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.pool.PersistentConnectionPool-class.html b/trunk/psycopg2/doc/api/public/psycopg2.pool.PersistentConnectionPool-class.html
new file mode 100644 (file)
index 0000000..954b8b5
--- /dev/null
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.pool.PersistentConnectionPool</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
+        Class&nbsp;PersistentConnectionPool\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.pool.PersistentConnectionPool-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.PersistentConnectionPool-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type PersistentConnectionPool</h2>\r
+\r
+<pre class="base-tree">\r
+            <a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+                     |    \r
+<a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a> --+\r
+                         |\r
+                        <strong class="uidshort">PersistentConnectionPool</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>A pool that assigns persistent connections to different threads.</p>\r
+<p>Note that this connection pool generates by itself the required keys\r
+using the current thread id.  This means that untill a thread put away\r
+a connection it will always get the same connection object by successive\r
+.getconn() calls. This also means that a thread can't use more than one\r
+single connection from the pool.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.PersistentConnectionPool-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">minconn</span>,\r
+          <span class="summary-sig-arg">maxconn</span>,\r
+          <span class="summary-sig-vararg">*args</span>,\r
+          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>\r
+<br />\r
+Initialize the threading lock.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.PersistentConnectionPool-class.html#closeall" class="summary-sig-name"><code>closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
+<br />\r
+Close all connections (even the one currently in use.)</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.PersistentConnectionPool-class.html#getconn" class="summary-sig-name"><code>getconn</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
+<br />\r
+Generate thread id and return a connection.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.PersistentConnectionPool-class.html#putconn" class="summary-sig-name"><code>putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">conn</span>,\r
+          <span class="summary-sig-arg">close</span>)</span></code>\r
+<br />\r
+Put away an unused connection.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">minconn</span>,\r
+          <span class="sig-arg">maxconn</span>,\r
+          <span class="sig-vararg">*args</span>,\r
+          <span class="sig-kwarg">**kwargs</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+<p>Initialize the threading lock.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__"><code>psycopg2.pool.AbstractConnectionPool.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="closeall"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">closeall</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+<p>Close all connections (even the one currently in use.)</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="getconn"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">getconn</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+<p>Generate thread id and return a connection.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="putconn"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">putconn</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">conn</span>=<span class="sig-default">None</span>,\r
+          <span class="sig-arg">close</span>=<span class="sig-default">False</span>)</span>\r
+  </h3>\r
+<p>Put away an unused connection.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.pool.PoolError-class.html b/trunk/psycopg2/doc/api/public/psycopg2.pool.PoolError-class.html
new file mode 100644 (file)
index 0000000..89cd4f7
--- /dev/null
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.pool.PoolError</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
+        Class&nbsp;PoolError\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.pool.PoolError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.PoolError-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Class PoolError</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+        \r
+            |        \r
+<a href="exceptions.StandardError-class.html"><code>StandardError</code></a> --+    \r
+                |    \r
+            <a href="psycopg2.Error-class.html"><code>Error</code></a> --+\r
+                    |\r
+                   <strong class="uidshort">PoolError</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.pool.SimpleConnectionPool-class.html b/trunk/psycopg2/doc/api/public/psycopg2.pool.SimpleConnectionPool-class.html
new file mode 100644 (file)
index 0000000..ea8f605
--- /dev/null
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.pool.SimpleConnectionPool</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
+        Class&nbsp;SimpleConnectionPool\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.pool.SimpleConnectionPool-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.SimpleConnectionPool-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type SimpleConnectionPool</h2>\r
+\r
+<pre class="base-tree">\r
+            <a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+                     |    \r
+<a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a> --+\r
+                         |\r
+                        <strong class="uidshort">SimpleConnectionPool</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>A connection pool that can't be shared across different threads.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from AbstractConnectionPool</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">minconn</span>,\r
+          <span class="summary-sig-arg">maxconn</span>,\r
+          <span class="summary-sig-vararg">*args</span>,\r
+          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>\r
+<br />\r
+Initialize the connection pool.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.pool.ThreadedConnectionPool-class.html b/trunk/psycopg2/doc/api/public/psycopg2.pool.ThreadedConnectionPool-class.html
new file mode 100644 (file)
index 0000000..64c95a9
--- /dev/null
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.pool.ThreadedConnectionPool</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.pool-module.html">Module&nbsp;pool</a> ::\r
+        Class&nbsp;ThreadedConnectionPool\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.pool.ThreadedConnectionPool-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.pool.ThreadedConnectionPool-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type ThreadedConnectionPool</h2>\r
+\r
+<pre class="base-tree">\r
+            <a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+                     |    \r
+<a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>AbstractConnectionPool</code></a> --+\r
+                         |\r
+                        <strong class="uidshort">ThreadedConnectionPool</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>A connection pool that works with the threading module.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">minconn</span>,\r
+          <span class="summary-sig-arg">maxconn</span>,\r
+          <span class="summary-sig-vararg">*args</span>,\r
+          <span class="summary-sig-kwarg">**kwargs</span>)</span></code>\r
+<br />\r
+Initialize the threading lock.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#closeall" class="summary-sig-name"><code>closeall</code></a>(<span class="summary-sig-arg">self</span>)</span></code>\r
+<br />\r
+Close all connections (even the one currently in use.)</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#getconn" class="summary-sig-name"><code>getconn</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">key</span>)</span></code>\r
+<br />\r
+Get a free connection and assign it to 'key' if not None.</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="psycopg2.pool.ThreadedConnectionPool-class.html#putconn" class="summary-sig-name"><code>putconn</code></a>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">conn</span>,\r
+          <span class="summary-sig-arg">key</span>,\r
+          <span class="summary-sig-arg">close</span>)</span></code>\r
+<br />\r
+Put away an unused connection.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">minconn</span>,\r
+          <span class="sig-arg">maxconn</span>,\r
+          <span class="sig-vararg">*args</span>,\r
+          <span class="sig-kwarg">**kwargs</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+<p>Initialize the threading lock.</p>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="psycopg2.pool.AbstractConnectionPool-class.html#__init__"><code>psycopg2.pool.AbstractConnectionPool.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="closeall"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">closeall</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+<p>Close all connections (even the one currently in use.)</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="getconn"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">getconn</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">key</span>=<span class="sig-default">None</span>)</span>\r
+  </h3>\r
+<p>Get a free connection and assign it to 'key' if not None.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="putconn"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">putconn</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">conn</span>=<span class="sig-default">None</span>,\r
+          <span class="sig-arg">key</span>=<span class="sig-default">None</span>,\r
+          <span class="sig-arg">close</span>=<span class="sig-default">False</span>)</span>\r
+  </h3>\r
+<p>Put away an unused connection.</p>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:35 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.psycopg1-module.html b/trunk/psycopg2/doc/api/public/psycopg2.psycopg1-module.html
new file mode 100644 (file)
index 0000000..18a9a75
--- /dev/null
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.psycopg1</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Module&nbsp;psycopg1\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.psycopg1-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.psycopg1-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
+<h2 class="module">Module psycopg2.psycopg1</h2>\r
+\r
+<p>psycopg 1.1.x compatibility module</p>\r
+<p>This module uses the new style connection and cursor types to build a psycopg\r
+1.1.1.x compatibility layer. It should be considered a temporary hack to run\r
+old code while porting to psycopg 2. Import it as follows:</p>\r
+<pre class="literal-block">\r
+from psycopg2 import psycopg1 as psycopg\r
+</pre>\r
+<hr/>\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Classes</th></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.psycopg1.connection-class.html"><code>connection</code></a></strong></td>\r
+  <td>psycopg 1.1.x connection.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.psycopg1.cursor-class.html"><code>cursor</code></a></strong></td>\r
+  <td>psycopg 1.1.x cursor.</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF FUNCTION SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Function Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new psycopg 1.1.x compatible connection object</td>\r
+  <td><code><a name="connect"></a><span class="summary-sig"><span class="summary-sig-name">connect</span>(<span class="summary-sig-arg">dsn</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF FUNCTION DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Function Details</th></tr>\r
+</table>\r
+\r
+<a name="connect"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">connect</span>(<span class="sig-arg">dsn</span>,\r
+          <span class="sig-vararg">...</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new psycopg 1.1.x compatible connection object      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.psycopg1.connection-class.html b/trunk/psycopg2/doc/api/public/psycopg2.psycopg1.connection-class.html
new file mode 100644 (file)
index 0000000..9b5b429
--- /dev/null
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.psycopg1.connection</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.psycopg1-module.html">Module&nbsp;psycopg1</a> ::\r
+        Class&nbsp;connection\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.psycopg1.connection-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.psycopg1.connection-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type connection</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+         |    \r
+<a href="../private/psycopg2._psycopg.connection-class.html"><code>connection</code></a> --+\r
+             |\r
+            <strong class="uidshort">connection</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>psycopg 1.1.x connection.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">switch autocommit on (1) or off (0)</td>\r
+  <td><code><a name="autocommit"></a><span class="summary-sig"><span class="summary-sig-name">autocommit</span>(<span class="summary-sig-arg">on_off</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">new psycopg 1.1.x compatible cursor object</td>\r
+  <td><code><a name="cursor"></a><span class="summary-sig"><span class="summary-sig-name">cursor</span>()</span></code>\r
+</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="autocommit"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">autocommit</span>(<span class="sig-arg">on_off</span>=<span class="sig-default">1</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+switch autocommit on (1) or off (0)      </dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="cursor"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">cursor</span>()</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Returns:</dt>\r
+      <dd>\r
+new psycopg 1.1.x compatible cursor object      </dd>\r
+    </dl>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="../private/psycopg2._psycopg.connection-class.html#cursor"><code>psycopg2._psycopg.connection.cursor</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.psycopg1.cursor-class.html b/trunk/psycopg2/doc/api/public/psycopg2.psycopg1.cursor-class.html
new file mode 100644 (file)
index 0000000..f80677d
--- /dev/null
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.psycopg1.cursor</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.psycopg1-module.html">Module&nbsp;psycopg1</a> ::\r
+        Class&nbsp;cursor\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.psycopg1.cursor-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.psycopg1.cursor-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type cursor</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+         |    \r
+    <a href="../private/psycopg2._psycopg.cursor-class.html"><code>cursor</code></a> --+\r
+             |\r
+            <strong class="uidshort">cursor</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>psycopg 1.1.x cursor.</p>\r
+<p>Note that this cursor implements the exact procedure used by psycopg 1 to\r
+build dictionaries out of result rows. The DictCursor in the\r
+psycopg.extras modules implements a much better and faster algorithm.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="dictfetchall"></a><span class="summary-sig"><span class="summary-sig-name">dictfetchall</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="dictfetchmany"></a><span class="summary-sig"><span class="summary-sig-name">dictfetchmany</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">size</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="dictfetchone"></a><span class="summary-sig"><span class="summary-sig-name">dictfetchone</span>(<span class="summary-sig-arg">self</span>)</span></code>\r
+</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="dictfetchall"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">dictfetchall</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="dictfetchmany"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">dictfetchmany</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">size</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="dictfetchone"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">dictfetchone</span>(<span class="sig-arg">self</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:33 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.tz-module.html b/trunk/psycopg2/doc/api/public/psycopg2.tz-module.html
new file mode 100644 (file)
index 0000000..192ac5e
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.tz</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        Module&nbsp;tz\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.tz-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.tz-module.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF MODULE DESCRIPTION =========== -->\r
+<h2 class="module">Module psycopg2.tz</h2>\r
+\r
+<p>tzinfo implementations for psycopg2</p>\r
+<p>This module holds two different tzinfo implementations that can be used as\r
+the 'tzinfo' argument to datetime constructors, directly passed to psycopg\r
+functions or used to set the .tzinfo_factory attribute in cursors.</p>\r
+<hr/>\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Classes</th></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>FixedOffsetTimezone</code></a></strong></td>\r
+  <td>Fixed offset in minutes east from UTC.</td></tr>\r
+<tr><td width="15%">\r
+  <strong><a href="psycopg2.tz.LocalTimezone-class.html"><code>LocalTimezone</code></a></strong></td>\r
+  <td>Platform idea of local timezone.</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF VARIABLE SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Variable Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>timedelta</code></td>\r
+<td><strong><a href="psycopg2.tz-module.html#DSTDIFF"><code>DSTDIFF</code></a></strong> = <span title="datetime.timedelta(0, 3600)"><code>datetime.timedelta(0,&nbsp;3600)                    </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>LocalTimezone</code></td>\r
+<td><strong><a href="psycopg2.tz-module.html#LOCAL"><code>LOCAL</code></a></strong> = <span title="&lt;psycopg2.tz.LocalTimezone object at 0x00847090&gt;"><code>&lt;psycopg2.tz.LocalTimezone&nbsp;object&nbsp;at&nbsp;0x00847090&gt; </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>timedelta</code></td>\r
+<td><strong><a href="psycopg2.tz-module.html#STDOFFSET"><code>STDOFFSET</code></a></strong> = <span title="datetime.timedelta(0, 3600)"><code>datetime.timedelta(0,&nbsp;3600)                  </code>\r
+</span></td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="vtype"><code>timedelta</code></td>\r
+<td><strong><a href="psycopg2.tz-module.html#ZERO"><code>ZERO</code></a></strong> = <span title="datetime.timedelta(0)"><code>datetime.timedelta(0)                             </code>\r
+</span></td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF VARIABLE DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Variable Details</th></tr>\r
+</table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="DSTDIFF"></a>\r
+<h3>DSTDIFF</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>timedelta</code>\r
+\r
+      </dd>\r
+      <dt title="datetime.timedelta(0, 3600)">Value:</dt>\r
+      <dd title="datetime.timedelta(0, 3600)"><table><tr><td>\r
+<pre class="variable">\r
+datetime.timedelta(0, 3600)                                            </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="LOCAL"></a>\r
+<h3>LOCAL</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>LocalTimezone</code>\r
+\r
+      </dd>\r
+      <dt title="&lt;psycopg2.tz.LocalTimezone object at 0x00847090&gt;">Value:</dt>\r
+      <dd title="&lt;psycopg2.tz.LocalTimezone object at 0x00847090&gt;"><table><tr><td>\r
+<pre class="variable">\r
+&lt;psycopg2.tz.LocalTimezone object at 0x00847090&gt;                       </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="STDOFFSET"></a>\r
+<h3>STDOFFSET</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>timedelta</code>\r
+\r
+      </dd>\r
+      <dt title="datetime.timedelta(0, 3600)">Value:</dt>\r
+      <dd title="datetime.timedelta(0, 3600)"><table><tr><td>\r
+<pre class="variable">\r
+datetime.timedelta(0, 3600)                                            </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>\r
+<a name="ZERO"></a>\r
+<h3>ZERO</h3>\r
+<dl>\r
+  <dt></dt>\r
+  <dd>\r
+    <dl>\r
+      <dt>Type:</dt>\r
+      <dd>\r
+          <code>timedelta</code>\r
+\r
+      </dd>\r
+      <dt title="datetime.timedelta(0)">Value:</dt>\r
+      <dd title="datetime.timedelta(0)"><table><tr><td>\r
+<pre class="variable">\r
+datetime.timedelta(0)                                                  </pre>\r
+        </td></tr></table></dd>\r
+    </dl>\r
+  </dd>\r
+</dl></td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:37 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.tz.FixedOffsetTimezone-class.html b/trunk/psycopg2/doc/api/public/psycopg2.tz.FixedOffsetTimezone-class.html
new file mode 100644 (file)
index 0000000..71145dd
--- /dev/null
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.tz.FixedOffsetTimezone</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.tz-module.html">Module&nbsp;tz</a> ::\r
+        Class&nbsp;FixedOffsetTimezone\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.tz.FixedOffsetTimezone-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.tz.FixedOffsetTimezone-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type FixedOffsetTimezone</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+         |    \r
+    <a href="datetime.tzinfo-class.html"><code>tzinfo</code></a> --+\r
+             |\r
+            <strong class="uidshort">FixedOffsetTimezone</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Fixed offset in minutes east from UTC.</p>\r
+<p>This is exactly the implementation found in Python 2.3.x documentation,\r
+with a small change to the __init__ method to allow for pickling and a\r
+default name in the form 'sHH:MM' ('s' is the sign.)</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">offset</span>,\r
+          <span class="summary-sig-arg">name</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="dst"></a><span class="summary-sig"><span class="summary-sig-name">dst</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">dt</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="tzname"></a><span class="summary-sig"><span class="summary-sig-name">tzname</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">dt</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="utcoffset"></a><span class="summary-sig"><span class="summary-sig-name">utcoffset</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">dt</span>)</span></code>\r
+</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from tzinfo</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+-&gt; (cls, state)</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#fromutc" class="summary-sig-name"><code>fromutc</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+datetime in UTC -&gt; datetime in local time.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="__init__"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">offset</span>=<span class="sig-default">None</span>,\r
+          <span class="sig-arg">name</span>=<span class="sig-default">None</span>)</span>\r
+    <br /><em class="fname">(Constructor)</em>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="dst"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">dst</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">dt</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="datetime.tzinfo-class.html#dst"><code>datetime.tzinfo.dst</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="tzname"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">tzname</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">dt</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="datetime.tzinfo-class.html#tzname"><code>datetime.tzinfo.tzname</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="utcoffset"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">utcoffset</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">dt</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="datetime.tzinfo-class.html#utcoffset"><code>datetime.tzinfo.utcoffset</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:36 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/psycopg2.tz.LocalTimezone-class.html b/trunk/psycopg2/doc/api/public/psycopg2.tz.LocalTimezone-class.html
new file mode 100644 (file)
index 0000000..7f95294
--- /dev/null
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.tz.LocalTimezone</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+      <span class="breadcrumbs">\r
+        <a href="psycopg2-module.html">Package&nbsp;psycopg2</a> ::\r
+        <a href="psycopg2.tz-module.html">Module&nbsp;tz</a> ::\r
+        Class&nbsp;LocalTimezone\r
+      </span><br />\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/psycopg2.tz.LocalTimezone-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="psycopg2.tz.LocalTimezone-class.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF CLASS DESCRIPTION =========== -->\r
+<h2 class="class">Type LocalTimezone</h2>\r
+\r
+<pre class="base-tree">\r
+<a href="__builtin__.object-class.html"><code>object</code></a> --+    \r
+         |    \r
+    <a href="datetime.tzinfo-class.html"><code>tzinfo</code></a> --+\r
+             |\r
+            <strong class="uidshort">LocalTimezone</strong>\r
+</pre><br />\r
+\r
+<hr/>\r
+\r
+<p>Platform idea of local timezone.</p>\r
+<p>This is the exact implementation from the Pyhton 2.3 documentation.</p>\r
+<hr/>\r
+\r
+\r
+<!-- =========== START OF METHOD SUMMARY =========== -->\r
+<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="summary">\r
+  <th colspan="2">Method Summary</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="dst"></a><span class="summary-sig"><span class="summary-sig-name">dst</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">dt</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="tzname"></a><span class="summary-sig"><span class="summary-sig-name">tzname</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">dt</span>)</span></code>\r
+</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><a name="utcoffset"></a><span class="summary-sig"><span class="summary-sig-name">utcoffset</span>(<span class="summary-sig-arg">self</span>,\r
+          <span class="summary-sig-arg">dt</span>)</span></code>\r
+</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from tzinfo</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__getattribute__('name') &lt;==&gt; x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class="summary-sig-arg">T</span>,\r
+          <span class="summary-sig-arg">S</span>,\r
+          <span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+Return a new object with type S, a subtype of T...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+-&gt; (cls, state)</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="datetime.tzinfo-class.html#fromutc" class="summary-sig-name"><code>fromutc</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+datetime in UTC -&gt; datetime in local time.</td></tr>\r
+<tr bgcolor="#e8f0f8" class="group">\r
+  <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__init__(...) initializes x; see x.__class__.__doc__ for signature</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__delattr__('name') &lt;==&gt; del x.name</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return hash(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+helper for pickle</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return repr(x)...</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>\r
+<br />\r
+x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>\r
+<tr><td align="right" valign="top" width="15%" class="rtype">&nbsp;</td>\r
+  <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-arg">x</span>)</span></code>\r
+<br />\r
+Return str(x)...</td></tr>\r
+</table><br />\r
+\r
+\r
+<!-- =========== START OF METHOD DETAILS =========== -->\r
+<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">\r
+<tr bgcolor="#70b0f0" class="details">\r
+  <th colspan="2">Method Details</th></tr>\r
+</table>\r
+\r
+<a name="dst"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">dst</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">dt</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="datetime.tzinfo-class.html#dst"><code>datetime.tzinfo.dst</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="tzname"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">tzname</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">dt</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="datetime.tzinfo-class.html#tzname"><code>datetime.tzinfo.tzname</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+\r
+<a name="utcoffset"></a>\r
+<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>\r
+  <h3><span class="sig"><span class="sig-name">utcoffset</span>(<span class="sig-arg">self</span>,\r
+          <span class="sig-arg">dt</span>)</span>\r
+  </h3>\r
+  <dl><dt></dt><dd>\r
+    <dl><dt>Overrides:</dt>\r
+      <dd><a href="datetime.tzinfo-class.html#utcoffset"><code>datetime.tzinfo.utcoffset</code></a></dd>\r
+    </dl>\r
+  </dd></dl>\r
+</td></tr></table>\r
+<br />\r
+\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:34 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/toc-everything.html b/trunk/psycopg2/doc/api/public/toc-everything.html
new file mode 100644 (file)
index 0000000..a13c502
--- /dev/null
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>Everything</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading">Everything</h1>\r
+<hr />\r
+\r
+<!-- =========== START OF ALL CLASSES =========== -->\r
+<h2 class="tocheading">All&nbsp;Classes</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictConnection-class.html">psycopg2.extras.DictConnection</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictCursor-class.html">psycopg2.extras.DictCursor</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictRow-class.html">psycopg2.extras.DictRow</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras.SQL_IN-class.html">psycopg2.extras.SQL_IN</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.AbstractConnectionPool-class.html">psycopg2.pool.AbstractConnectionPool</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.PersistentConnectionPool-class.html">psycopg2.pool.PersistentConnectionPool</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.SimpleConnectionPool-class.html">psycopg2.pool.SimpleConnectionPool</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.ThreadedConnectionPool-class.html">psycopg2.pool.ThreadedConnectionPool</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1.connection-class.html">psycopg2.psycopg1.connection</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1.cursor-class.html">psycopg2.psycopg1.cursor</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz.FixedOffsetTimezone-class.html">psycopg2.tz.FixedOffsetTimezone</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz.LocalTimezone-class.html">psycopg2.tz.LocalTimezone</a></p>\r
+\r
+<!-- =========== START OF ALL EXCEPTIONS =========== -->\r
+<h2 class="tocheading">All&nbsp;Exceptions</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.DatabaseError-class.html">psycopg2.DatabaseError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.DataError-class.html">psycopg2.DataError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.Error-class.html">psycopg2.Error</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.IntegrityError-class.html">psycopg2.IntegrityError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.InterfaceError-class.html">psycopg2.InterfaceError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.InternalError-class.html">psycopg2.InternalError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.NotSupportedError-class.html">psycopg2.NotSupportedError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.OperationalError-class.html">psycopg2.OperationalError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.PoolError-class.html">psycopg2.pool.PoolError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.ProgrammingError-class.html">psycopg2.ProgrammingError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.Warning-class.html">psycopg2.Warning</a></p>\r
+\r
+<!-- =========== START OF ALL FUNCTIONS =========== -->\r
+<h2 class="tocheading">All&nbsp;Functions</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#adapt">adapt</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#AsIs">AsIs</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Binary">Binary</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#Boolean">Boolean</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#connect">connect</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1-module.html#connect">connect</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Date">Date</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#DateFromPy">DateFromPy</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#DateFromTicks">DateFromTicks</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool-module.html#dbg">dbg</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#IntervalFromPy">IntervalFromPy</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#new_type">new_type</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#QuotedString">QuotedString</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#register_adapter">register_adapter</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#register_type">register_type</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Time">Time</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#TimeFromPy">TimeFromPy</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#TimeFromTicks">TimeFromTicks</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Timestamp">Timestamp</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#TimestampFromPy">TimestampFromPy</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#TimestampFromTicks">TimestampFromTicks</a></p>\r
+\r
+<!-- =========== START OF ALL VARIABLES =========== -->\r
+<h2 class="tocheading">All&nbsp;Variables</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#DSTDIFF">DSTDIFF</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT">ISOLATION_LEVEL_AUTOCOMMIT</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_COMMITTED">ISOLATION_LEVEL_READ_COMMITTED</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_UNCOMMITTED">ISOLATION_LEVEL_READ_UNCOMMITTED</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_REPEATABLE_READ">ISOLATION_LEVEL_REPEATABLE_READ</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE">ISOLATION_LEVEL_SERIALIZABLE</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#LOCAL">LOCAL</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#STDOFFSET">STDOFFSET</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#ZERO">ZERO</a></p>\r
+\r
+<hr />\r
+<span class="options">[<a href="../private/toc-everything.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/toc-psycopg2-module.html b/trunk/psycopg2/doc/api/public/toc-psycopg2-module.html
new file mode 100644 (file)
index 0000000..fa15e9b
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading"><a target="mainFrame" href="psycopg2-module.html">psycopg2</a></h1>\r
+<hr />\r
+\r
+<!-- =========== START OF MODULES =========== -->\r
+<h2 class="tocheading">Modules</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html">extensions</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras-module.html">extras</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool-module.html">pool</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1-module.html">psycopg1</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html">tz</a></p>\r
+\r
+<!-- =========== START OF EXCEPTIONS =========== -->\r
+<h2 class="tocheading">Exceptions</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.DatabaseError-class.html">DatabaseError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.DataError-class.html">DataError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.Error-class.html">Error</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.IntegrityError-class.html">IntegrityError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.InterfaceError-class.html">InterfaceError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.InternalError-class.html">InternalError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.NotSupportedError-class.html">NotSupportedError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.OperationalError-class.html">OperationalError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.ProgrammingError-class.html">ProgrammingError</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.Warning-class.html">Warning</a></p>\r
+\r
+<!-- =========== START OF FUNCTIONS =========== -->\r
+<h2 class="tocheading">Functions</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Binary">Binary</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#connect">connect</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Date">Date</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#DateFromTicks">DateFromTicks</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Time">Time</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#TimeFromTicks">TimeFromTicks</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#Timestamp">Timestamp</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2-module.html#TimestampFromTicks">TimestampFromTicks</a></p>\r
+\r
+<hr />\r
+<span class="options">[<a href="../private/toc-psycopg2-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/toc-psycopg2._psycopg-module.html b/trunk/psycopg2/doc/api/public/toc-psycopg2._psycopg-module.html
new file mode 100644 (file)
index 0000000..6e8fa49
--- /dev/null
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2._psycopg</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading"><a target="mainFrame" href="psycopg2._psycopg-module.html">_psycopg</a></h1>\r
+<hr />\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<h2 class="tocheading">Classes</h2>\r
+\r
+<!-- =========== START OF FUNCTIONS =========== -->\r
+<h2 class="tocheading">Functions</h2>\r
+\r
+<!-- =========== START OF VARIABLES =========== -->\r
+<h2 class="tocheading">Variables</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#__version__">__version__</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#adapters">adapters</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#apilevel">apilevel</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#BINARY">BINARY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#binary_types">binary_types</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#BINARYARRAY">BINARYARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#BOOLEAN">BOOLEAN</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#BOOLEANARRAY">BOOLEANARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#DATE">DATE</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#DATEARRAY">DATEARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#DATETIME">DATETIME</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#DATETIMEARRAY">DATETIMEARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#DECIMAL">DECIMAL</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#DECIMALARRAY">DECIMALARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#encodings">encodings</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#FLOAT">FLOAT</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#FLOATARRAY">FLOATARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#INTEGER">INTEGER</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#INTEGERARRAY">INTEGERARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#INTERVAL">INTERVAL</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#INTERVALARRAY">INTERVALARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#LONGINTEGER">LONGINTEGER</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#LONGINTEGERARRAY">LONGINTEGERARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#NUMBER">NUMBER</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#paramstyle">paramstyle</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#PYDATE">PYDATE</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#PYDATETIME">PYDATETIME</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#PYINTERVAL">PYINTERVAL</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#PYTIME">PYTIME</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#ROWID">ROWID</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#ROWIDARRAY">ROWIDARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#STRING">STRING</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#string_types">string_types</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#STRINGARRAY">STRINGARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#threadsafety">threadsafety</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#TIME">TIME</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#TIMEARRAY">TIMEARRAY</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#UNICODE">UNICODE</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2._psycopg-module.html#UNICODEARRAY">UNICODEARRAY</a></p>\r
+\r
+<hr />\r
+<span class="options">[<a href="../private/toc-psycopg2._psycopg-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/toc-psycopg2.extensions-module.html b/trunk/psycopg2/doc/api/public/toc-psycopg2.extensions-module.html
new file mode 100644 (file)
index 0000000..abf93eb
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.extensions</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading"><a target="mainFrame" href="psycopg2.extensions-module.html">extensions</a></h1>\r
+<hr />\r
+\r
+<!-- =========== START OF FUNCTIONS =========== -->\r
+<h2 class="tocheading">Functions</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#adapt">adapt</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#AsIs">AsIs</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#Boolean">Boolean</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#DateFromPy">DateFromPy</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#IntervalFromPy">IntervalFromPy</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#new_type">new_type</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#QuotedString">QuotedString</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#register_adapter">register_adapter</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#register_type">register_type</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#TimeFromPy">TimeFromPy</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#TimestampFromPy">TimestampFromPy</a></p>\r
+\r
+<!-- =========== START OF VARIABLES =========== -->\r
+<h2 class="tocheading">Variables</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT">ISOLATION_LEVEL_AUTOCOMMIT</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_COMMITTED">ISOLATION_LEVEL_READ_COMMITTED</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_READ_UNCOMMITTED">ISOLATION_LEVEL_READ_UNCOMMITTED</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_REPEATABLE_READ">ISOLATION_LEVEL_REPEATABLE_READ</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE">ISOLATION_LEVEL_SERIALIZABLE</a></p>\r
+\r
+<hr />\r
+<span class="options">[<a href="../private/toc-psycopg2.extensions-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/toc-psycopg2.extras-module.html b/trunk/psycopg2/doc/api/public/toc-psycopg2.extras-module.html
new file mode 100644 (file)
index 0000000..f193b47
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.extras</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading"><a target="mainFrame" href="psycopg2.extras-module.html">extras</a></h1>\r
+<hr />\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<h2 class="tocheading">Classes</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictConnection-class.html">DictConnection</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictCursor-class.html">DictCursor</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras.DictRow-class.html">DictRow</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.extras.SQL_IN-class.html">SQL_IN</a></p>\r
+\r
+<hr />\r
+<span class="options">[<a href="../private/toc-psycopg2.extras-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/toc-psycopg2.pool-module.html b/trunk/psycopg2/doc/api/public/toc-psycopg2.pool-module.html
new file mode 100644 (file)
index 0000000..0736019
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.pool</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading"><a target="mainFrame" href="psycopg2.pool-module.html">pool</a></h1>\r
+<hr />\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<h2 class="tocheading">Classes</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.AbstractConnectionPool-class.html">AbstractConnectionPool</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.PersistentConnectionPool-class.html">PersistentConnectionPool</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.SimpleConnectionPool-class.html">SimpleConnectionPool</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.ThreadedConnectionPool-class.html">ThreadedConnectionPool</a></p>\r
+\r
+<!-- =========== START OF EXCEPTIONS =========== -->\r
+<h2 class="tocheading">Exceptions</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool.PoolError-class.html">PoolError</a></p>\r
+\r
+<!-- =========== START OF FUNCTIONS =========== -->\r
+<h2 class="tocheading">Functions</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.pool-module.html#dbg">dbg</a></p>\r
+\r
+<hr />\r
+<span class="options">[<a href="../private/toc-psycopg2.pool-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/toc-psycopg2.psycopg1-module.html b/trunk/psycopg2/doc/api/public/toc-psycopg2.psycopg1-module.html
new file mode 100644 (file)
index 0000000..69b1f79
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.psycopg1</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading"><a target="mainFrame" href="psycopg2.psycopg1-module.html">psycopg1</a></h1>\r
+<hr />\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<h2 class="tocheading">Classes</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1.connection-class.html">connection</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1.cursor-class.html">cursor</a></p>\r
+\r
+<!-- =========== START OF FUNCTIONS =========== -->\r
+<h2 class="tocheading">Functions</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.psycopg1-module.html#connect">connect</a></p>\r
+\r
+<hr />\r
+<span class="options">[<a href="../private/toc-psycopg2.psycopg1-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/toc-psycopg2.tz-module.html b/trunk/psycopg2/doc/api/public/toc-psycopg2.tz-module.html
new file mode 100644 (file)
index 0000000..6f617fe
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>psycopg2.tz</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading"><a target="mainFrame" href="psycopg2.tz-module.html">tz</a></h1>\r
+<hr />\r
+\r
+<!-- =========== START OF CLASSES =========== -->\r
+<h2 class="tocheading">Classes</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz.FixedOffsetTimezone-class.html">FixedOffsetTimezone</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz.LocalTimezone-class.html">LocalTimezone</a></p>\r
+\r
+<!-- =========== START OF VARIABLES =========== -->\r
+<h2 class="tocheading">Variables</h2>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#DSTDIFF">DSTDIFF</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#LOCAL">LOCAL</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#STDOFFSET">STDOFFSET</a></p>\r
+<p class="toc"><a target="mainFrame" href="psycopg2.tz-module.html#ZERO">ZERO</a></p>\r
+\r
+<hr />\r
+<span class="options">[<a href="../private/toc-psycopg2.tz-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/toc.html b/trunk/psycopg2/doc/api/public/toc.html
new file mode 100644 (file)
index 0000000..89021cc
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>Table of Contents</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+<h1 class="tocheading">Table&nbsp;of&nbsp;Contents</h1>\r
+<hr />\r
+<p class="toc"><a target="moduleFrame" href="toc-everything.html">Everything</a></p>\r
+\r
+<!-- =========== START OF PACKAGES =========== -->\r
+<h2 class="tocheading">Packages</h2>\r
+<p class="toc"><a target="moduleFrame" href="toc-psycopg2-module.html" onclick="setFrame('toc-psycopg2-module.html', 'psycopg2-module.html');">psycopg2</a></p>\r
+\r
+<!-- =========== START OF MODULES =========== -->\r
+<h2 class="tocheading">Modules</h2>\r
+<p class="toc"><a target="moduleFrame" href="toc-psycopg2.extensions-module.html" onclick="setFrame('toc-psycopg2.extensions-module.html', 'psycopg2.extensions-module.html');">psycopg2.extensions</a></p>\r
+<p class="toc"><a target="moduleFrame" href="toc-psycopg2.extras-module.html" onclick="setFrame('toc-psycopg2.extras-module.html', 'psycopg2.extras-module.html');">psycopg2.extras</a></p>\r
+<p class="toc"><a target="moduleFrame" href="toc-psycopg2.pool-module.html" onclick="setFrame('toc-psycopg2.pool-module.html', 'psycopg2.pool-module.html');">psycopg2.pool</a></p>\r
+<p class="toc"><a target="moduleFrame" href="toc-psycopg2.psycopg1-module.html" onclick="setFrame('toc-psycopg2.psycopg1-module.html', 'psycopg2.psycopg1-module.html');">psycopg2.psycopg1</a></p>\r
+<p class="toc"><a target="moduleFrame" href="toc-psycopg2.tz-module.html" onclick="setFrame('toc-psycopg2.tz-module.html', 'psycopg2.tz-module.html');">psycopg2.tz</a></p>\r
+\r
+<hr />\r
+<span class="options">[<a href="../private/toc.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/api/public/trees.html b/trunk/psycopg2/doc/api/public/trees.html
new file mode 100644 (file)
index 0000000..44573d9
--- /dev/null
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\r
+          "DTD/xhtml1-transitional.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
+<head>\r
+  <title>Module and Class Hierarchies</title>\r
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />\r
+<script type="text/javascript">\r
+<!--\r
+function setFrame(url1, url2){\r
+    parent.frames[1].location.href = url1;\r
+    parent.frames[2].location.href = url2;\r
+}\r
+-->\r
+</script>\r
+</head>\r
+<body bgcolor="white" text="black" link="blue" vlink="#204080"\r
+      alink="#204080">\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+<table width="100%" cellpadding="0" cellspacing="0">\r
+  <tr valign="top">\r
+    <td width="100%">\r
+    </td>\r
+    <td><table cellpadding="0" cellspacing="0">\r
+      <tr><td align="right"><span class="options">[<a href="../private/trees.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</span></td></tr>\r
+      <tr><td align="right"><span class="options">[<a href="frames.html" target="_top">frames</a>&nbsp;|&nbsp;<a href="trees.html" target="_top">no&nbsp;frames</a>]</span></td></tr>\r
+    </table></td>\r
+</tr></table>\r
+\r
+<!-- =========== START OF MODULE HIERARCHY =========== -->\r
+<h2>Module Hierarchy</h2>\r
+<ul>\r
+<li> <strong class="uidlink"><a href="psycopg2-module.html"><code>psycopg2</code></a></strong>: <em class="summary">A Python driver for PostgreSQL</em>  <ul>\r
+    <li> <strong class="uidlink"><a href="psycopg2.extensions-module.html"><code>extensions</code></a></strong>: <em class="summary">psycopg extensions to the DBAPI-2.0</em></li>\r
+    <li> <strong class="uidlink"><a href="psycopg2.extras-module.html"><code>extras</code></a></strong>: <em class="summary">Miscellaneous goodies for psycopg2</em></li>\r
+    <li> <strong class="uidlink"><a href="psycopg2.pool-module.html"><code>pool</code></a></strong>: <em class="summary">Connection pooling for psycopg2</em></li>\r
+    <li> <strong class="uidlink"><a href="psycopg2.psycopg1-module.html"><code>psycopg1</code></a></strong>: <em class="summary">psycopg 1.1.x compatibility module</em></li>\r
+    <li> <strong class="uidlink"><a href="psycopg2.tz-module.html"><code>tz</code></a></strong>: <em class="summary">tzinfo implementations for psycopg2</em></li>\r
+  </ul>\r
+</li>\r
+</ul>\r
+\r
+<!-- =========== START OF CLASS HIERARCHY =========== -->\r
+<h2>Class Hierarchy</h2>\r
+<ul>\r
+  <li> <strong class="uidlink"><a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></strong>: <em class="summary">\r
+The most base type</em>\r
+   <ul>\r
+    <li> <strong class="uidlink"><a href="psycopg2.pool.AbstractConnectionPool-class.html"><code>psycopg2.pool.AbstractConnectionPool</code></a></strong>: <em class="summary">\r
+Generic key-based pooling code.</em>\r
+     <ul>\r
+      <li> <strong class="uidlink"><a href="psycopg2.pool.PersistentConnectionPool-class.html"><code>psycopg2.pool.PersistentConnectionPool</code></a></strong>: <em class="summary">\r
+A pool that assigns persistent connections to different threads.</em>\r
+      </li>\r
+      <li> <strong class="uidlink"><a href="psycopg2.pool.SimpleConnectionPool-class.html"><code>psycopg2.pool.SimpleConnectionPool</code></a></strong>: <em class="summary">\r
+A connection pool that can't be shared across different threads.</em>\r
+      </li>\r
+      <li> <strong class="uidlink"><a href="psycopg2.pool.ThreadedConnectionPool-class.html"><code>psycopg2.pool.ThreadedConnectionPool</code></a></strong>: <em class="summary">\r
+A connection pool that works with the threading module.</em>\r
+      </li>\r
+     </ul>\r
+    </li>\r
+    <li> <strong class="uidlink"><a href="__builtin__.list-class.html"><code>__builtin__.list</code></a></strong>: <em class="summary">\r
+list() -&gt; new list\r
+list(sequence) -&gt; new list initialized from sequence's items</em>\r
+     <ul>\r
+      <li> <strong class="uidlink"><a href="psycopg2.extras.DictRow-class.html"><code>psycopg2.extras.DictRow</code></a></strong>: <em class="summary">\r
+A row object that allow by-colun-name access to data.</em>\r
+      </li>\r
+     </ul>\r
+    </li>\r
+    <li> <strong class="uidlink"><a href="psycopg2.extras.SQL_IN-class.html"><code>psycopg2.extras.SQL_IN</code></a></strong>: <em class="summary">\r
+Adapt any iterable to an SQL quotable object.</em>\r
+    </li>\r
+    <li> <strong class="uidlink"><a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></strong>: <em class="summary">\r
+type(object) -&gt; the object's type\r
+type(name, bases, dict) -&gt; a new type</em>\r
+    </li>\r
+    <li> <strong class="uidlink"><a href="datetime.tzinfo-class.html"><code>datetime.tzinfo</code></a></strong>: <em class="summary">\r
+Abstract base class for time zone info objects.</em>\r
+     <ul>\r
+      <li> <strong class="uidlink"><a href="psycopg2.tz.FixedOffsetTimezone-class.html"><code>psycopg2.tz.FixedOffsetTimezone</code></a></strong>: <em class="summary">\r
+Fixed offset in minutes east from UTC.</em>\r
+      </li>\r
+      <li> <strong class="uidlink"><a href="psycopg2.tz.LocalTimezone-class.html"><code>psycopg2.tz.LocalTimezone</code></a></strong>: <em class="summary">\r
+Platform idea of local timezone.</em>\r
+      </li>\r
+     </ul>\r
+    </li>\r
+     <ul>\r
+     </ul>\r
+     <ul>\r
+     </ul>\r
+   </ul>\r
+  </li>\r
+  <li> <strong class="uidlink"><a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></strong>: <em class="summary">\r
+Common base class for all exceptions.</em>\r
+   <ul>\r
+    <li> <strong class="uidlink"><a href="exceptions.StandardError-class.html"><code>exceptions.StandardError</code></a></strong>: <em class="summary">\r
+Base class for all standard Python exceptions.</em>\r
+     <ul>\r
+      <li> <strong class="uidlink"><a href="psycopg2.Error-class.html"><code>psycopg2.Error</code></a></strong>: <em class="summary">\r
+Base class for error exceptions.</em>\r
+       <ul>\r
+        <li> <strong class="uidlink"><a href="psycopg2.DatabaseError-class.html"><code>psycopg2.DatabaseError</code></a></strong>: <em class="summary">\r
+Error related to the database engine.</em>\r
+         <ul>\r
+          <li> <strong class="uidlink"><a href="psycopg2.DataError-class.html"><code>psycopg2.DataError</code></a></strong>: <em class="summary">\r
+Error related to problems with the processed data.</em>\r
+          </li>\r
+          <li> <strong class="uidlink"><a href="psycopg2.IntegrityError-class.html"><code>psycopg2.IntegrityError</code></a></strong>: <em class="summary">\r
+Error related to database integrity.</em>\r
+          </li>\r
+          <li> <strong class="uidlink"><a href="psycopg2.InternalError-class.html"><code>psycopg2.InternalError</code></a></strong>: <em class="summary">\r
+The database encountered an internal error.</em>\r
+          </li>\r
+          <li> <strong class="uidlink"><a href="psycopg2.NotSupportedError-class.html"><code>psycopg2.NotSupportedError</code></a></strong>: <em class="summary">\r
+A not supported datbase API was called.</em>\r
+          </li>\r
+          <li> <strong class="uidlink"><a href="psycopg2.OperationalError-class.html"><code>psycopg2.OperationalError</code></a></strong>: <em class="summary">\r
+Error related to database operation (disconnect, memory allocation etc).</em>\r
+          </li>\r
+          <li> <strong class="uidlink"><a href="psycopg2.ProgrammingError-class.html"><code>psycopg2.ProgrammingError</code></a></strong>: <em class="summary">\r
+Error related to database programming (SQL error, table not found etc).</em>\r
+          </li>\r
+         </ul>\r
+        </li>\r
+        <li> <strong class="uidlink"><a href="psycopg2.InterfaceError-class.html"><code>psycopg2.InterfaceError</code></a></strong>: <em class="summary">\r
+Error related to the database interface.</em>\r
+        </li>\r
+        <li> <strong class="uidlink"><a href="psycopg2.pool.PoolError-class.html"><code>psycopg2.pool.PoolError</code></a></strong>\r
+        </li>\r
+       </ul>\r
+      </li>\r
+      <li> <strong class="uidlink"><a href="psycopg2.Warning-class.html"><code>psycopg2.Warning</code></a></strong>: <em class="summary">\r
+A database warning.</em>\r
+      </li>\r
+     </ul>\r
+    </li>\r
+   </ul>\r
+  </li>\r
+</ul>\r
+\r
+<!-- =========== START OF NAVBAR =========== -->\r
+<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">\r
+  <tr valign="middle">\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="psycopg2-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>\r
+    <th class="navbar" width="100%"></th>\r
+  </tr>\r
+</table>\r
+\r
+<table border="0" cellpadding="0" cellspacing="0" width="100%">\r
+  <tr>\r
+    <td align="left" class="footer">Generated by Epydoc 2.1 on Sat Jan 14 01:42:37 2006</td>\r
+    <td align="right" class="footer">\r
+      <a href="http://epydoc.sourceforge.net">http://epydoc.sf.net</a>\r
+    </td>\r
+  </tr>\r
+</table>\r
+</body>\r
+</html>\r
diff --git a/trunk/psycopg2/doc/async.txt b/trunk/psycopg2/doc/async.txt
new file mode 100644 (file)
index 0000000..518d5fe
--- /dev/null
@@ -0,0 +1,67 @@
+psycopg asynchronous API
+************************
+
+** Important: async quaeries are not enabled for 2.0 **
+
+Program code can initiate an asynchronous query by passing an 'async=1' flag
+to the .execute() method. A very simple example, from the connection to the
+query:
+
+    conn = psycopg.connect(database='test')
+    curs = conn.cursor()
+    curs.execute("SEECT * from test WHERE fielda > %s", (1971,), async=1)
+    
+From then on any query on other cursors derived from the same connection is
+doomed to fail (and raise an exception) until the original cursor (the one
+executing the query) complete the asynchronous operation. This can happen in
+a number of different ways:
+
+    1) one of the .fetchXXX() methods is called, effectively blocking untill
+       data has been sent from the backend to the client, terminating the
+       query.
+       
+    2) .cancel() is called. This method tries to abort the current query and
+       will block until the query is aborted or fully executed. The return
+       value is True if the query was successfully aborted or False if it
+       was executed. Query result are discarded in both cases.
+       
+    3) .execute() is called again on the same cursor (.execute() on a
+       different cursor will simply raise an exception.) This waits for the
+       complete execution of the current query, discard any data and execute
+       the new one.
+
+Note that calling .execute() two times in a row will not abort the former
+query and will temporarily go to synchronous mode until the first of the two
+queries is executed.
+
+Cursors now have some extra methods that make them usefull during
+asynchronous queries:
+
+    .fileno()
+      Returns the file descriptor associated with the current connection and
+      make possible to use a cursor in a context where a file object would be
+      expected (like in a select() call.)
+
+    .isbusy()
+      Returns True if the backend is still processing the query or false if
+      data is ready to be fetched (by one of the .fetchXXX() methods.)
+      
+A code snippet that shows how to use the cursor object in a select() call:
+
+    import psycopg
+    import select
+        
+    conn = psycopg.connect(database='test')
+    curs = conn.cursor()
+    curs.execute("SEECT * from test WHERE fielda > %s", (1971,), async=1)
+
+    # wait for input with a maximum timeout of 5 seconds
+    query_ended = False
+    while not query_ended:
+        rread, rwrite, rspec = select([cursor, another_file], [], [], 5)
+       if not cursor.isbusy():
+          query_ended = True
+       # manage input from other sources like other_file, etc.
+    print "Query Results:"
+    for row in cursor:
+        print row
diff --git a/trunk/psycopg2/doc/extensions.html b/trunk/psycopg2/doc/extensions.html
new file mode 100644 (file)
index 0000000..cb71200
--- /dev/null
@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.3.9: http://docutils.sourceforge.net/" />
+<title>psycopg 2 extensions to the DBAPI 2.0</title>
+<link rel="stylesheet" href="default.css" type="text/css" />
+</head>
+<body>
+<div class="document" id="psycopg-2-extensions-to-the-dbapi-2-0">
+<h1 class="title">psycopg 2 extensions to the DBAPI 2.0</h1>
+<p>This document is a short summary of the extensions built in psycopg 2.0.x over
+the standard <a class="reference" href="http://www.python.org/peps/pep-0249.html">Python Database API Specification 2.0</a>, usually called simply
+DBAPI-2.0 or even PEP-249.  Before reading on this document please make sure
+you already know how to program in Python using a DBAPI-2.0 compliant driver:
+basic concepts like opening a connection, executing queries and commiting or
+rolling back a transaction will not be explained but just used.</p>
+<p>Many objects and extension functions are defined in the <a class="reference" href="api/public/psycopg2.extensions-module.html"><tt class="docutils literal"><span class="pre">psycopg2.extensions</span></tt></a>
+module.</p>
+<div class="section" id="connection-and-cursor-factories">
+<h1><a name="connection-and-cursor-factories">Connection and cursor factories</a></h1>
+<p>psycopg 2 exposes two new-style classes that can be sub-classed and expanded to
+adapt them to the needs of the programmer: <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html"><tt class="docutils literal"><span class="pre">cursor</span></tt></a> and <a class="reference" href="api/private/psycopg2._psycopg.connection-class.html"><tt class="docutils literal"><span class="pre">connection</span></tt></a>.  The
+<a class="reference" href="api/private/psycopg2._psycopg.connection-class.html"><tt class="docutils literal"><span class="pre">connection</span></tt></a> class is usually sub-classed only to provide a . <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html"><tt class="docutils literal"><span class="pre">cursor</span></tt></a> is much
+more interesting, because it is the class where query building, execution and
+result type-casting into Python variables happens.</p>
+<div class="section" id="row-factories">
+<h2><a name="row-factories">Row factories</a></h2>
+</div>
+<div class="section" id="tzinfo-factories">
+<h2><a name="tzinfo-factories">tzinfo factories</a></h2>
+</div>
+</div>
+<div class="section" id="setting-transaction-isolation-levels">
+<h1><a name="setting-transaction-isolation-levels">Setting transaction isolation levels</a></h1>
+<p>psycopg2 connection objects hold informations about the PostgreSQL <a class="reference" href="http://www.postgresql.org/docs/8.1/static/transaction-iso.html">transaction
+isolation level</a>.  The current transaction level can be read from the
+<a class="reference" href="api/private/psycopg2._psycopg.connection-class.html#isolation_level"><tt class="docutils literal"><span class="pre">.isolation_level</span></tt></a> attribute.  The default isolation level is <tt class="docutils literal"><span class="pre">READ</span>
+<span class="pre">COMMITTED</span></tt>.  A different isolation level con be set through the
+<a class="reference" href="api/private/psycopg2._psycopg.connection-class.html#set_isolation_level"><tt class="docutils literal"><span class="pre">.set_isolation_level()</span></tt></a> method.  The level can be set to one of the following
+constants, defined in <a class="reference" href="api/public/psycopg2.extensions-module.html"><tt class="docutils literal"><span class="pre">psycopg2.extensions</span></tt></a>:</p>
+<dl class="docutils">
+<dt><a class="reference" href="api/public/psycopg2.extensions-module.html#ISOLATION_LEVEL_AUTOCOMMIT"><tt class="docutils literal"><span class="pre">ISOLATION_LEVEL_AUTOCOMMIT</span></tt></a></dt>
+<dd>No transaction is started when command are issued and no
+<a class="reference" href="api/private/psycopg2._psycopg.connection-class.html#commit"><tt class="docutils literal"><span class="pre">.commit()</span></tt></a>/<a class="reference" href="api/private/psycopg2._psycopg.connection-class.html#rollback"><tt class="docutils literal"><span class="pre">.rollback()</span></tt></a> is required.  Some PostgreSQL command such as
+<tt class="docutils literal"><span class="pre">CREATE</span> <span class="pre">DATABASE</span></tt> can't run into a transaction: to run such command use
+<a class="reference" href="api/private/psycopg2._psycopg.connection-class.html#set_isolation_level"><tt class="docutils literal"><span class="pre">.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)</span></tt></a>.</dd>
+<dt><a href="#id2" name="id3"><span class="problematic" id="id3">`ISOLATION_LEVEL_READ_COMMITTED`</span></a></dt>
+<dd><div class="first system-message" id="id2">
+<p class="system-message-title">System Message: <a name="id2">ERROR/3</a> (<tt class="docutils">../doc/extensions.rst</tt>, line 54); <em><a href="#id3">backlink</a></em></p>
+Can't find 'ISOLATION_LEVEL_READ_COMMITTED' in any provided module.</div>
+<p class="last">This is the default value.  A new transaction is started at the first
+<a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#execute"><tt class="docutils literal"><span class="pre">.execute()</span></tt></a> command on a cursor and at each new <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#execute"><tt class="docutils literal"><span class="pre">.execute()</span></tt></a> after a
+<a class="reference" href="api/private/psycopg2._psycopg.connection-class.html#commit"><tt class="docutils literal"><span class="pre">.commit()</span></tt></a> or a <a class="reference" href="api/private/psycopg2._psycopg.connection-class.html#rollback"><tt class="docutils literal"><span class="pre">.rollback()</span></tt></a>.  The transaction runs in the PostgreSQL
+<tt class="docutils literal"><span class="pre">READ</span> <span class="pre">COMMITTED</span></tt> isolation level.</p>
+</dd>
+<dt><a class="reference" href="api/public/psycopg2.extensions-module.html#ISOLATION_LEVEL_SERIALIZABLE"><tt class="docutils literal"><span class="pre">ISOLATION_LEVEL_SERIALIZABLE</span></tt></a></dt>
+<dd>Transactions are run at a <tt class="docutils literal"><span class="pre">SERIALIZABLE</span></tt> isolation level.</dd>
+</dl>
+</div>
+<div class="section" id="adaptation-of-python-values-to-sql-types">
+<h1><a name="adaptation-of-python-values-to-sql-types">Adaptation of Python values to SQL types</a></h1>
+<p>psycopg2 casts Python variables to SQL literals by type.  Standard Python types
+are already adapted to the proper SQL literal.</p>
+<p>Example: the Python function:</p>
+<pre class="literal-block">
+curs.execute(&quot;&quot;&quot;INSERT INTO atable (anint, adate, astring)
+                 VALUES (%s, %s, %s)&quot;&quot;&quot;,
+             (10, datetime.date(2005, 11, 18), &quot;O'Reilly&quot;))
+</pre>
+<p>is converted into the SQL command:</p>
+<pre class="literal-block">
+INSERT INTO atable (anint, adate, astring)
+ VALUES (10, '2005-11-18', 'O''Reilly');
+</pre>
+<p>Named arguments are supported too with <tt class="docutils literal"><span class="pre">%(name)s</span></tt> placeholders. Notice that:</p>
+<blockquote>
+<ul class="simple">
+<li>The Python string operator <tt class="docutils literal"><span class="pre">%</span></tt> is not used: the <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#execute"><tt class="docutils literal"><span class="pre">.execute()</span></tt></a> function
+accepts the values tuple or dictionary as second parameter.</li>
+<li>The variables placeholder must always be a <tt class="docutils literal"><span class="pre">%s</span></tt>, even if a different
+placeholder (such as a <tt class="docutils literal"><span class="pre">%d</span></tt> for an integer) may look more appropriate.</li>
+<li>For positional variables binding, the second argument must always be a
+tuple, even if it contains a single variable.</li>
+<li>Only variable values should be bound via this method: it shouldn't be used
+to set table or field names. For these elements, ordinary string formatting
+should be used before running <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#execute"><tt class="docutils literal"><span class="pre">.execute()</span></tt></a>.</li>
+</ul>
+</blockquote>
+<div class="section" id="adapting-new-types">
+<h2><a name="adapting-new-types">Adapting new types</a></h2>
+<p>Any Python class or type can be adapted to an SQL string.  Adaptation mechanism
+is similar to the Object Adaptation proposed in the <a class="reference" href="http://www.python.org/peps/pep-0246.html">PEP-246</a> and is exposed
+by the <a class="reference" href="api/private/psycopg2._psycopg-module.html#adapt"><tt class="docutils literal"><span class="pre">adapt()</span></tt></a> function.</p>
+<p>psycopg2 <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#execute"><tt class="docutils literal"><span class="pre">.execute()</span></tt></a> method adapts its <tt class="docutils literal"><span class="pre">vars</span></tt> arguments to the <a class="reference" href="api/private/psycopg2._psycopg.ISQLQuote-class.html"><tt class="docutils literal"><span class="pre">ISQLQuote</span></tt></a>
+protocol.  Objects that conform to this protocol expose a <tt class="docutils literal"><span class="pre">getquoted()</span></tt> method
+returning the SQL representation of the object as a string.</p>
+<p>The easiest way to adapt an object to an SQL string is to register an adapter
+function via the <a class="reference" href="api/public/psycopg2.extensions-module.html#register_adapter"><tt class="docutils literal"><span class="pre">register_adapter()</span></tt></a> function.  The adapter function must take
+the value to be adapted as argument and return a conform object.  A convenient
+object is the <a class="reference" href="api/private/psycopg2._psycopg-module.html#AsIs"><tt class="docutils literal"><span class="pre">AsIs</span></tt></a> wrapper, whose <tt class="docutils literal"><span class="pre">getquoted()</span></tt> result is simply the
+<tt class="docutils literal"><span class="pre">str()</span></tt>ingification of the wrapped object.</p>
+<p>Example: mapping of a <tt class="docutils literal"><span class="pre">Point</span></tt> class into the <tt class="docutils literal"><span class="pre">point</span></tt> PostgreSQL geometric
+type:</p>
+<pre class="literal-block">
+from psycopg2.extensions import adapt, register_adapter, AsIs
+
+class Point(object):
+    def __init__(self, x=0.0, y=0.0):
+        self.x = x
+        self.y = y
+
+def adapt_point(point):
+    return AsIs(&quot;'(%s,%s)'&quot; % (adapt(point.x), adapt(point.y)))
+    
+register_adapter(Point, adapt_point)
+
+curs.execute(&quot;INSERT INTO atable (apoint) VALUES (%s)&quot;, 
+             (Point(1.23, 4.56),))
+</pre>
+<p>The above function call results in the SQL command:</p>
+<pre class="literal-block">
+INSERT INTO atable (apoint) VALUES ((1.23, 4.56));
+</pre>
+</div>
+</div>
+<div class="section" id="type-casting-of-sql-types-into-python-values">
+<h1><a name="type-casting-of-sql-types-into-python-values">Type casting of SQL types into Python values</a></h1>
+<p>PostgreSQL objects read from the database can be adapted to Python objects
+through an user-defined adapting function.  An adapter function takes two
+argments: the object string representation as returned by PostgreSQL and the
+cursor currently being read, and should return a new Python object.  For
+example, the following function parses a PostgreSQL <tt class="docutils literal"><span class="pre">point</span></tt> into the
+previously defined <tt class="docutils literal"><span class="pre">Point</span></tt> class:</p>
+<pre class="literal-block">
+def cast_point(value, curs):
+    if value is not None:
+            # Convert from (f1, f2) syntax using a regular expression.
+        m = re.match(&quot;\((.*),(.*)\)&quot;, value) 
+        if m:
+            return Point(float(m.group(1)), float(m.group(2)))
+</pre>
+<p>To create a mapping from the PostgreSQL type (either standard or user-defined),
+its <tt class="docutils literal"><span class="pre">oid</span></tt> must be known. It can be retrieved either by the second column of
+the cursor description:</p>
+<pre class="literal-block">
+curs.execute(&quot;SELECT NULL::point&quot;)
+point_oid = curs.description[0][1]   # usually returns 600
+</pre>
+<p>or by querying the system catalogs for the type name and namespace (the
+namespace for system objects is <tt class="docutils literal"><span class="pre">pg_catalog</span></tt>):</p>
+<pre class="literal-block">
+curs.execute(&quot;&quot;&quot;
+    SELECT pg_type.oid
+      FROM pg_type JOIN pg_namespace
+             ON typnamespace = pg_namespace.oid
+     WHERE typname = %(typename)s
+       AND nspname = %(namespace)s&quot;&quot;&quot;,
+            {'typename': 'point', 'namespace': 'pg_catalog'})
+    
+point_oid = curs.fetchone()[0]
+</pre>
+<p>After you know the object <tt class="docutils literal"><span class="pre">oid</span></tt>, you must can and register the new type:</p>
+<pre class="literal-block">
+POINT = psycopg2.extensions.new_type((point_oid,), &quot;POINT&quot;, cast_point)
+psycopg2.extensions.register_type(POINT)
+</pre>
+<p>The <a class="reference" href="api/private/psycopg2._psycopg-module.html#new_type"><tt class="docutils literal"><span class="pre">new_type()</span></tt></a> function binds the object oids (more than one can be
+specified) to the adapter function.  <a class="reference" href="api/private/psycopg2._psycopg-module.html#register_type"><tt class="docutils literal"><span class="pre">register_type()</span></tt></a> completes the spell.
+Conversion is automatically performed when a column whose type is a registered
+<tt class="docutils literal"><span class="pre">oid</span></tt> is read:</p>
+<pre class="literal-block">
+curs.execute(&quot;SELECT '(10.2,20.3)'::point&quot;)
+point = curs.fetchone()[0]
+print type(point), point.x, point.y
+# Prints: &quot;&lt;class '__main__.Point'&gt; 10.2 20.3&quot;
+</pre>
+</div>
+<div class="section" id="working-with-times-and-dates">
+<h1><a name="working-with-times-and-dates">Working with times and dates</a></h1>
+</div>
+<div class="section" id="receiving-notifys">
+<h1><a name="receiving-notifys">Receiving NOTIFYs</a></h1>
+</div>
+<div class="section" id="using-copy-to-and-copy-from">
+<h1><a name="using-copy-to-and-copy-from">Using COPY TO and COPY FROM</a></h1>
+<p>psycopg2 <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html"><tt class="docutils literal"><span class="pre">cursor</span></tt></a> object provides an interface to the efficient <a class="reference" href="http://www.postgresql.org/docs/8.1/static/sql-copy.html">PostgreSQL
+COPY command</a> to move data from files to tables and back.</p>
+<p>The <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#copy_to"><tt class="docutils literal"><span class="pre">.copy_to(file,</span> <span class="pre">table)</span></tt></a> method writes the content of the table
+named <tt class="docutils literal"><span class="pre">table</span></tt> <em>to</em> the file-like object <tt class="docutils literal"><span class="pre">file</span></tt>. <tt class="docutils literal"><span class="pre">file</span></tt> must have a
+<tt class="docutils literal"><span class="pre">write()</span></tt> method.</p>
+<p>The <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#copy_from"><tt class="docutils literal"><span class="pre">.copy_from(file,</span> <span class="pre">table)</span></tt></a> reads data <em>from</em> the file-like object
+<tt class="docutils literal"><span class="pre">file</span></tt> appending them to the table named <tt class="docutils literal"><span class="pre">table</span></tt>. <tt class="docutils literal"><span class="pre">file</span></tt> must have both
+<tt class="docutils literal"><span class="pre">read()</span></tt> and <tt class="docutils literal"><span class="pre">readline()</span></tt> method.</p>
+<p>Both methods accept two optional arguments: <tt class="docutils literal"><span class="pre">sep</span></tt> (defaulting to a tab) is
+the columns separator and <tt class="docutils literal"><span class="pre">null</span></tt> (defaulting to <tt class="docutils literal"><span class="pre">\N</span></tt>) represents <tt class="docutils literal"><span class="pre">NULL</span></tt>
+values in the file.</p>
+</div>
+<div class="section" id="postgresql-status-message-and-executed-query">
+<h1><a name="postgresql-status-message-and-executed-query">PostgreSQL status message and executed query</a></h1>
+<p><a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html"><tt class="docutils literal"><span class="pre">cursor</span></tt></a> objects have two special fields related to the last executed query:</p>
+<blockquote>
+<ul class="simple">
+<li><a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#query"><tt class="docutils literal"><span class="pre">.query</span></tt></a> is the textual representation (str or unicode, depending on what
+was passed to <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#execute"><tt class="docutils literal"><span class="pre">.execute()</span></tt></a> as first argument) of the query <em>after</em> argument
+binding and mogrification has been applied. To put it another way, <a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#query"><tt class="docutils literal"><span class="pre">.query</span></tt></a>
+is the <em>exact</em> query that was sent to the PostgreSQL backend.</li>
+<li><a class="reference" href="api/private/psycopg2._psycopg.cursor-class.html#statusmessage"><tt class="docutils literal"><span class="pre">.statusmessage</span></tt></a> is the status message that the backend sent upon query
+execution. It usually contains the basic type of the query (SELECT,
+INSERT, UPDATE, ...) and some additional information like the number of
+rows updated and so on. Refer to the PostgreSQL manual for more
+information.</li>
+</ul>
+</blockquote>
+</div>
+</div>
+</body>
+</html>
diff --git a/trunk/psycopg2/doc/extensions.rst b/trunk/psycopg2/doc/extensions.rst
new file mode 100644 (file)
index 0000000..3bdc680
--- /dev/null
@@ -0,0 +1,260 @@
+=======================================
+ psycopg 2 extensions to the DBAPI 2.0
+=======================================
+
+This document is a short summary of the extensions built in psycopg 2.0.x over
+the standard `Python Database API Specification 2.0`__, usually called simply
+DBAPI-2.0 or even PEP-249.  Before reading on this document please make sure
+you already know how to program in Python using a DBAPI-2.0 compliant driver:
+basic concepts like opening a connection, executing queries and commiting or
+rolling back a transaction will not be explained but just used.
+
+.. __: http://www.python.org/peps/pep-0249.html
+
+Many objects and extension functions are defined in the `psycopg2.extensions`
+module.
+
+
+Connection and cursor factories
+===============================
+
+psycopg 2 exposes two new-style classes that can be sub-classed and expanded to
+adapt them to the needs of the programmer: `cursor` and `connection`.  The
+`connection` class is usually sub-classed only to provide an easy way to create
+customized cursors but other uses are possible. `cursor` is much more
+interesting, because it is the class where query building, execution and result
+type-casting into Python variables happens.
+
+An example of cursor subclass performing logging is::
+
+    import psycopg2
+    import psycopg2.extensions
+    import logging
+
+    class LoggingCursor(psycopg2.extensions.cursor):
+        def execute(self, sql, args=None):
+            logger = logging.getLogger('sql_debug')
+            logger.info(self.mogrify(sql, args))
+
+            try:
+                psycopg2.extensions.cursor.execute(self, sql, args)
+            except Exception, exc:
+                logger.error("%s: %s" % (exc.__class__.__name__, exc))
+                raise
+
+    conn = psycopg2.connect(DSN)
+    curs = conn.cursor(cursor_factory=LoggingCursor)
+    curs.execute("INSERT INTO mytable VALUES (%s, %s, %s);",
+                 (10, 20, 30))
+
+
+Row factories
+-------------
+
+tzinfo factories
+----------------
+
+
+Setting transaction isolation levels
+====================================
+
+psycopg2 connection objects hold informations about the PostgreSQL `transaction
+isolation level`_.  The current transaction level can be read from the
+`.isolation_level` attribute.  The default isolation level is ``READ
+COMMITTED``.  A different isolation level con be set through the
+`.set_isolation_level()` method.  The level can be set to one of the following
+constants, defined in `psycopg2.extensions`:
+
+`ISOLATION_LEVEL_AUTOCOMMIT`
+    No transaction is started when command are issued and no
+    `.commit()`/`.rollback()` is required.  Some PostgreSQL command such as
+    ``CREATE DATABASE`` can't run into a transaction: to run such command use
+    `.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)`.
+    
+`ISOLATION_LEVEL_READ_COMMITTED`
+    This is the default value.  A new transaction is started at the first
+    `.execute()` command on a cursor and at each new `.execute()` after a
+    `.commit()` or a `.rollback()`.  The transaction runs in the PostgreSQL
+    ``READ COMMITTED`` isolation level.
+    
+`ISOLATION_LEVEL_SERIALIZABLE`
+    Transactions are run at a ``SERIALIZABLE`` isolation level.
+
+
+.. _transaction isolation level: 
+   http://www.postgresql.org/docs/8.1/static/transaction-iso.html
+
+
+Adaptation of Python values to SQL types
+========================================
+
+psycopg2 casts Python variables to SQL literals by type.  Standard Python types
+are already adapted to the proper SQL literal.
+
+Example: the Python function::
+
+    curs.execute("""INSERT INTO atable (anint, adate, astring)
+                     VALUES (%s, %s, %s)""",
+                 (10, datetime.date(2005, 11, 18), "O'Reilly"))
+
+is converted into the SQL command::
+
+    INSERT INTO atable (anint, adate, astring)
+     VALUES (10, '2005-11-18', 'O''Reilly');
+
+Named arguments are supported too with ``%(name)s`` placeholders. Notice that:
+
+  - The Python string operator ``%`` is not used: the `.execute()` function
+    accepts the values tuple or dictionary as second parameter.
+
+  - The variables placeholder must always be a ``%s``, even if a different
+    placeholder (such as a ``%d`` for an integer) may look more appropriate.
+
+  - For positional variables binding, the second argument must always be a
+    tuple, even if it contains a single variable.
+
+  - Only variable values should be bound via this method: it shouldn't be used
+    to set table or field names. For these elements, ordinary string formatting
+    should be used before running `.execute()`.
+
+
+Adapting new types
+------------------
+
+Any Python class or type can be adapted to an SQL string.  Adaptation mechanism
+is similar to the Object Adaptation proposed in the `PEP-246`_ and is exposed
+by the `adapt()` function.
+
+psycopg2 `.execute()` method adapts its ``vars`` arguments to the `ISQLQuote`
+protocol.  Objects that conform to this protocol expose a ``getquoted()`` method
+returning the SQL representation of the object as a string.
+
+The easiest way to adapt an object to an SQL string is to register an adapter
+function via the `register_adapter()` function.  The adapter function must take
+the value to be adapted as argument and return a conform object.  A convenient
+object is the `AsIs` wrapper, whose ``getquoted()`` result is simply the
+``str()``\ ingification of the wrapped object.
+
+Example: mapping of a ``Point`` class into the ``point`` PostgreSQL geometric
+type::
+
+    from psycopg2.extensions import adapt, register_adapter, AsIs
+    
+    class Point(object):
+        def __init__(self, x=0.0, y=0.0):
+            self.x = x
+            self.y = y
+    
+    def adapt_point(point):
+        return AsIs("'(%s,%s)'" % (adapt(point.x), adapt(point.y)))
+        
+    register_adapter(Point, adapt_point)
+    
+    curs.execute("INSERT INTO atable (apoint) VALUES (%s)", 
+                 (Point(1.23, 4.56),))
+
+The above function call results in the SQL command::
+
+    INSERT INTO atable (apoint) VALUES ((1.23, 4.56));
+
+
+.. _PEP-246: http://www.python.org/peps/pep-0246.html
+
+
+Type casting of SQL types into Python values
+============================================
+
+PostgreSQL objects read from the database can be adapted to Python objects
+through an user-defined adapting function.  An adapter function takes two
+argments: the object string representation as returned by PostgreSQL and the
+cursor currently being read, and should return a new Python object.  For
+example, the following function parses a PostgreSQL ``point`` into the
+previously defined ``Point`` class::
+
+    def cast_point(value, curs):
+        if value is not None:
+               # Convert from (f1, f2) syntax using a regular expression.
+            m = re.match("\((.*),(.*)\)", value) 
+            if m:
+                return Point(float(m.group(1)), float(m.group(2)))
+                
+To create a mapping from the PostgreSQL type (either standard or user-defined),
+its ``oid`` must be known. It can be retrieved either by the second column of
+the cursor description::
+
+    curs.execute("SELECT NULL::point")
+    point_oid = curs.description[0][1]   # usually returns 600
+
+or by querying the system catalogs for the type name and namespace (the
+namespace for system objects is ``pg_catalog``)::
+
+    curs.execute("""
+        SELECT pg_type.oid
+          FROM pg_type JOIN pg_namespace
+                 ON typnamespace = pg_namespace.oid
+         WHERE typname = %(typename)s
+           AND nspname = %(namespace)s""",
+                {'typename': 'point', 'namespace': 'pg_catalog'})
+        
+    point_oid = curs.fetchone()[0]
+
+After you know the object ``oid``, you must can and register the new type::
+
+    POINT = psycopg2.extensions.new_type((point_oid,), "POINT", cast_point)
+    psycopg2.extensions.register_type(POINT)
+
+The `new_type()` function binds the object oids (more than one can be
+specified) to the adapter function.  `register_type()` completes the spell.
+Conversion is automatically performed when a column whose type is a registered
+``oid`` is read::
+
+    curs.execute("SELECT '(10.2,20.3)'::point")
+    point = curs.fetchone()[0]
+    print type(point), point.x, point.y
+    # Prints: "<class '__main__.Point'> 10.2 20.3"
+
+
+Working with times and dates
+============================
+
+
+Receiving NOTIFYs
+=================
+
+
+Using COPY TO and COPY FROM
+===========================
+
+psycopg2 `cursor` object provides an interface to the efficient `PostgreSQL
+COPY command`__ to move data from files to tables and back.
+
+The `.copy_to(file, table)` method writes the content of the table
+named ``table`` *to* the file-like object ``file``. ``file`` must have a
+``write()`` method.
+
+The `.copy_from(file, table)` reads data *from* the file-like object
+``file`` appending them to the table named ``table``. ``file`` must have both
+``read()`` and ``readline()`` method.
+
+Both methods accept two optional arguments: ``sep`` (defaulting to a tab) is
+the columns separator and ``null`` (defaulting to ``\N``) represents ``NULL``
+values in the file.
+
+.. __: http://www.postgresql.org/docs/8.1/static/sql-copy.html
+
+
+PostgreSQL status message and executed query
+============================================
+
+`cursor` objects have two special fields related to the last executed query:
+
+  - `.query` is the textual representation (str or unicode, depending on what
+    was passed to `.execute()` as first argument) of the query *after* argument
+    binding and mogrification has been applied. To put it another way, `.query`
+    is the *exact* query that was sent to the PostgreSQL backend.
+    
+  - `.statusmessage` is the status message that the backend sent upon query
+    execution. It usually contains the basic type of the query (SELECT,
+    INSERT, UPDATE, ...) and some additional information like the number of
+    rows updated and so on. Refer to the PostgreSQL manual for more
+    information.
diff --git a/trunk/psycopg2/examples/binary.py b/trunk/psycopg2/examples/binary.py
new file mode 100644 (file)
index 0000000..eaa8f1e
--- /dev/null
@@ -0,0 +1,89 @@
+# binary.py - working with binary data
+#
+# Copyright (C) 2001-2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+## put in DSN your DSN string
+
+DSN = 'dbname=test'
+
+## don't modify anything below tis line (except for experimenting)
+
+import sys
+import psycopg2
+
+if len(sys.argv) > 1:
+    DSN = sys.argv[1]
+
+print "Opening connection using dns:", DSN
+conn = psycopg2.connect(DSN)
+print "Encoding for this connection is", conn.encoding
+
+curs = conn.cursor()
+try:
+    curs.execute("CREATE TABLE test_binary (id int4, name text, img bytea)")
+except:
+    conn.rollback()
+    curs.execute("DROP TABLE test_binary")
+    curs.execute("CREATE TABLE test_binary (id int4, name text, img bytea)")
+conn.commit()
+
+# first we try two inserts, one with an explicit Binary call and the other
+# using a buffer on a file object.
+
+data1 = {'id':1, 'name':'somehackers.jpg',
+         'img':psycopg2.Binary(open('somehackers.jpg').read())}
+data2 = {'id':2, 'name':'whereareyou.jpg',
+         'img':buffer(open('whereareyou.jpg').read())}
+
+curs.execute("""INSERT INTO test_binary
+                  VALUES (%(id)s, %(name)s, %(img)s)""", data1)
+curs.execute("""INSERT INTO test_binary
+                  VALUES (%(id)s, %(name)s, %(img)s)""", data2)
+
+# now we try to extract the images as simple text strings
+
+print "Extracting the images as strings..."
+curs.execute("SELECT * FROM test_binary")
+
+for row in curs.fetchall():
+    name, ext = row[1].split('.')
+    new_name = name + '_S.' + ext
+    print "  writing %s to %s ..." % (name+'.'+ext, new_name),
+    open(new_name, 'wb').write(row[2])
+    print "done"
+    print "  python type of image data is", type(row[2])
+    
+# extract exactly the same data but using a binary cursor
+
+print "Extracting the images using a binary cursor:"
+
+curs.execute("""DECLARE zot CURSOR FOR
+                  SELECT img, name FROM test_binary FOR READ ONLY""")
+curs.execute("""FETCH ALL FROM zot""")
+
+for row in curs.fetchall():
+    name, ext = row[1].split('.')
+    new_name = name + '_B.' + ext
+    print "  writing %s to %s ..." % (name+'.'+ext, new_name),
+    open(new_name, 'wb').write(row[0])
+    print "done"
+    print "  python type of image data is", type(row[0])
+    
+# this rollback is requires because we can't drop a table with a binary cusor
+# declared and still open
+conn.rollback()
+
+curs.execute("DROP TABLE test_binary")
+conn.commit()
+
+print "\nNow try to load the new images, to check it worked!"
diff --git a/trunk/psycopg2/examples/copy_from.py b/trunk/psycopg2/examples/copy_from.py
new file mode 100644 (file)
index 0000000..edd3294
--- /dev/null
@@ -0,0 +1,178 @@
+# copy_from.py -- example about copy_from 
+#
+# Copyright (C) 2002 Tom Jenkins <tjenkins@devis.com>
+# Copyright (C) 2005 Federico Di Gregorio <fog@initd.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+#
+
+## put in DSN your DSN string
+
+DSN = 'dbname=test'
+
+## don't modify anything below tis line (except for experimenting)
+
+import sys
+import os
+import StringIO
+import psycopg2
+
+if len(sys.argv) > 1:
+    DSN = sys.argv[1]
+
+print "Opening connection using dns:", DSN
+conn = psycopg2.connect(DSN)
+print "Encoding for this connection is", conn.encoding
+
+curs = conn.cursor()
+try:
+    curs.execute("CREATE TABLE test_copy (fld1 text, fld2 text, fld3 int4)")
+except:
+    conn.rollback()
+    curs.execute("DROP TABLE test_copy")
+    curs.execute("CREATE TABLE test_copy (fld1 text, fld2 text, fld3 int4)")
+conn.commit()
+
+# copy_from with default arguments, from open file
+
+io = open('copy_from.txt', 'wr')
+data = ['Tom\tJenkins\t37\n',
+        'Madonna\t\N\t45\n',
+        'Federico\tDi Gregorio\t\N\n']
+io.writelines(data)
+io.close()
+
+io = open('copy_from.txt', 'r')
+curs.copy_from(io, 'test_copy')
+print "1) Copy %d records from file object " % len(data) + \
+      "using defaults (sep: \\t and null = \\N)"
+io.close()
+
+curs.execute("SELECT * FROM test_copy")
+rows = curs.fetchall()
+print "   Select returned %d rows" % len(rows)
+
+for r in rows:
+    print "    %s %s\t%s" % (r[0], r[1], r[2])
+curs.execute("delete from test_copy")
+conn.commit()
+
+# copy_from using custom separator, from open file
+
+io = open('copy_from.txt', 'wr')
+data = ['Tom:Jenkins:37\n',
+        'Madonna:\N:45\n',
+        'Federico:Di Gregorio:\N\n']
+io.writelines(data)
+io.close()
+
+io = open('copy_from.txt', 'r')
+curs.copy_from(io, 'test_copy', ':')
+print "2) Copy %d records from file object using sep = :" % len(data)
+io.close()
+
+curs.execute("SELECT * FROM test_copy")
+rows = curs.fetchall()
+print "   Select returned %d rows" % len(rows)
+
+for r in rows:
+    print "    %s %s\t%s" % (r[0], r[1], r[2])
+curs.execute("delete from test_copy")
+conn.commit()
+
+# copy_from using custom null identifier, from open file
+
+io = open('copy_from.txt', 'wr')
+data = ['Tom\tJenkins\t37\n',
+        'Madonna\tNULL\t45\n',
+        'Federico\tDi Gregorio\tNULL\n']
+io.writelines(data)
+io.close()
+
+io = open('copy_from.txt', 'r')
+curs.copy_from(io, 'test_copy', null='NULL')
+print "3) Copy %d records from file object using null = NULL" % len(data)
+io.close()
+
+curs.execute("SELECT * FROM test_copy")
+rows = curs.fetchall()
+print "   Select using cursor returned %d rows" % len(rows)
+
+for r in rows:
+    print "    %s %s\t%s" % (r[0], r[1], r[2])
+curs.execute("delete from test_copy")
+conn.commit()
+
+# copy_from using custom separator and null identifier
+
+io = open('copy_from.txt', 'wr')
+data = ['Tom:Jenkins:37\n', 'Madonna:NULL:45\n', 'Federico:Di Gregorio:NULL\n']
+io.writelines(data)
+io.close()
+
+io = open('copy_from.txt', 'r')
+curs.copy_from(io, 'test_copy', ':', 'NULL')
+print "4) Copy %d records from file object " % len(data) + \
+      "using sep = : and null = NULL"
+io.close()
+
+curs.execute("SELECT * FROM test_copy")
+rows = curs.fetchall()
+print "   Select using cursor returned %d rows" % len(rows)
+
+for r in rows:
+    print "    %s %s\t%s" % (r[0], r[1], r[2])
+curs.execute("delete from test_copy")
+conn.commit()
+
+# anything can be used as a file if it has .read() and .readline() methods
+
+data = StringIO.StringIO()
+data.write('\n'.join(['Tom\tJenkins\t37',
+                      'Madonna\t\N\t45',
+                      'Federico\tDi Gregorio\t\N']))
+data.seek(0)
+
+curs.copy_from(data, 'test_copy')
+print "5) Copy 3 records from StringIO object using defaults"
+
+curs.execute("SELECT * FROM test_copy")
+rows = curs.fetchall()
+print "   Select using cursor returned %d rows" % len(rows)
+
+for r in rows:
+    print "    %s %s\t%s" % (r[0], r[1], r[2])
+curs.execute("delete from test_copy")
+conn.commit()
+
+# simple error test
+
+print "6) About to raise an error"
+data = StringIO.StringIO()
+data.write('\n'.join(['Tom\tJenkins\t37',
+                      'Madonna\t\N\t45',
+                      'Federico\tDi Gregorio\taaa']))
+data.seek(0)
+
+try:
+    curs.copy_from(data, 'test_copy')
+except StandardError, err:
+    conn.rollback()
+    print "   Catched error (as expected):\n", err
+
+conn.rollback()
+
+curs.execute("DROP TABLE test_copy")
+os.unlink('copy_from.txt')
+conn.commit()
+
+
+
diff --git a/trunk/psycopg2/examples/copy_to.py b/trunk/psycopg2/examples/copy_to.py
new file mode 100644 (file)
index 0000000..5570fbc
--- /dev/null
@@ -0,0 +1,104 @@
+# copy_to.py -- example about copy_to 
+#
+# Copyright (C) 2002 Tom Jenkins <tjenkins@devis.com>
+# Copyright (C) 2005 Federico Di Gregorio <fog@initd.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+#
+
+## put in DSN your DSN string
+
+DSN = 'dbname=test'
+
+## don't modify anything below tis line (except for experimenting)
+
+import sys
+import os
+import StringIO
+import psycopg2
+
+if len(sys.argv) > 1:
+    DSN = sys.argv[1]
+
+print "Opening connection using dns:", DSN
+conn = psycopg2.connect(DSN)
+print "Encoding for this connection is", conn.encoding
+
+curs = conn.cursor()
+try:
+    curs.execute("CREATE TABLE test_copy (fld1 text, fld2 text, fld3 int4)")
+except:
+    conn.rollback()
+    curs.execute("DROP TABLE test_copy")
+    curs.execute("CREATE TABLE test_copy (fld1 text, fld2 text, fld3 int4)")
+conn.commit()
+
+# demostrate copy_to functionality
+data = [('Tom', 'Jenkins', '37'),
+        ('Madonna', None, '45'),
+        ('Federico', 'Di Gregorio', None)]
+query = "INSERT INTO test_copy VALUES (%s, %s, %s)"
+curs.executemany(query, data)
+conn.commit()
+
+# copy_to using defaults
+io = open('copy_to.txt', 'w')
+curs.copy_to(io, 'test_copy')
+print "1) Copy %d records into file object using defaults: " % len (data) + \
+      "sep = \\t and null = \\N"
+io.close()
+
+rows = open('copy_to.txt', 'r').readlines()
+print "   File has %d rows:" % len(rows)
+
+for r in rows:
+    print "   ", r,
+
+# copy_to using custom separator
+io = open('copy_to.txt', 'w')
+curs.copy_to(io, 'test_copy', ':')
+print "2) Copy %d records into file object using sep = :" % len(data)
+io.close()
+
+rows = open('copy_to.txt', 'r').readlines()
+print "   File has %d rows:" % len(rows)
+
+for r in rows:
+    print "   ", r,
+
+# copy_to using custom null identifier
+io = open('copy_to.txt', 'w')
+curs.copy_to(io, 'test_copy', null='NULL')
+print "3) Copy %d records into file object using null = NULL" % len(data)
+io.close()
+
+rows = open('copy_to.txt', 'r').readlines()
+print "   File has %d rows:" % len(rows)
+
+for r in rows:
+    print "   ", r,
+
+# copy_to using custom separator and null identifier
+io = open('copy_to.txt', 'w')
+curs.copy_to(io, 'test_copy', ':', 'NULL')
+print "4) Copy %d records into file object using sep = : and null ) NULL" % \
+      len(data)
+io.close()
+
+rows = open('copy_to.txt', 'r').readlines()
+print "   File has %d rows:" % len(rows)
+
+for r in rows:
+    print "   ", r,
+
+curs.execute("DROP TABLE test_copy")
+os.unlink('copy_to.txt')
+conn.commit()
diff --git a/trunk/psycopg2/examples/cursor.py b/trunk/psycopg2/examples/cursor.py
new file mode 100644 (file)
index 0000000..54cb5e7
--- /dev/null
@@ -0,0 +1,63 @@
+# cursor.py - how to subclass the cursor type
+#
+# Copyright (C) 2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+## put in DSN your DSN string
+
+DSN = 'dbname=test'
+
+## don't modify anything below this line (except for experimenting)
+
+import sys
+import psycopg2
+import psycopg2.extensions
+
+if len(sys.argv) > 1:
+    DSN = sys.argv[1]
+
+print "Opening connection using dsn:", DSN
+conn = psycopg2.connect(DSN)
+print "Encoding for this connection is", conn.encoding
+
+
+class NoDataError(psycopg2.ProgrammingError):
+    """Exception that will be raised by our cursor."""
+    pass
+
+class Cursor(psycopg2.extensions.cursor):
+    """A custom cursor."""
+
+    def fetchone(self):
+        """Like fetchone but raise an exception if no data is available.
+
+        Note that to have .fetchmany() and .fetchall() to raise the same
+        exception we'll have to override them too; even if internally psycopg
+        uses the same function to fetch rows, the code path from Python is
+        different.
+        """
+        d = psycopg2.extensions.cursor.fetchone(self)
+        if d is None:
+           raise NoDataError("no more data")
+        return d
+    
+curs = conn.cursor(cursor_factory=Cursor)
+curs.execute("SELECT 1 AS foo")
+print "Result of fetchone():", curs.fetchone()
+
+# now let's raise the exception
+try:
+    curs.fetchone()
+except NoDataError, err:
+    print "Exception caugth:", err  
+
+conn.rollback()
diff --git a/trunk/psycopg2/examples/dialtone.py b/trunk/psycopg2/examples/dialtone.py
new file mode 100644 (file)
index 0000000..3a55686
--- /dev/null
@@ -0,0 +1,144 @@
+"""
+This example/recipe has been contributed by Valentino Volonghi (dialtone)
+
+Mapping arbitrary objects to a PostgreSQL database with psycopg2
+
+- Problem
+
+You need to store arbitrary objects in a PostgreSQL database without being
+intrusive for your classes (don't want inheritance from an 'Item' or 
+'Persistent' object).
+
+- Solution
+"""
+
+from datetime import datetime
+import psycopg2
+from psycopg2.extensions import adapt, register_adapter
+
+try:
+    sorted()
+except:
+    def sorted(seq):
+        seq.sort()
+        return seq
+
+# Here is the adapter for every object that we may ever need to 
+# insert in the database. It receives the original object and does
+# its job on that instance
+
+class ObjectMapper(object):
+    def __init__(self, orig, curs=None):
+        self.orig = orig
+        self.tmp = {}
+        self.items, self.fields = self._gatherState()
+    def _gatherState(self):
+        adaptee_name = self.orig.__class__.__name__
+        fields = sorted([(field, getattr(self.orig, field))
+                        for field in persistent_fields[adaptee_name]])
+        items = []
+        for item, value in fields:
+            items.append(item)
+        return items, fields
+    def getTableName(self):
+        return self.orig.__class__.__name__
+    def getMappedValues(self):
+        tmp = []
+        for i in self.items:
+            tmp.append("%%(%s)s"%i)
+        return ", ".join(tmp)
+    def getValuesDict(self):
+        return dict(self.fields)
+    def getFields(self):
+        return self.items
+
+    def generateInsert(self):
+        qry = "INSERT INTO"
+        qry += " " + self.getTableName() + " ("
+        qry += ", ".join(self.getFields()) + ") VALUES ("
+        qry += self.getMappedValues() + ")"
+        return qry, self.getValuesDict()
+
+# Here are the objects
+class Album(object):    
+    id = 0 
+    def __init__(self):
+        self.creation_time = datetime.now()
+        self.album_id = self.id
+        Album.id = Album.id + 1
+        self.binary_data = buffer('12312312312121')
+class Order(object):
+     id = 0
+     def __init__(self):
+        self.items = ['rice','chocolate']
+        self.price = 34
+        self.order_id = self.id
+        Order.id = Order.id + 1
+
+register_adapter(Album, ObjectMapper)
+register_adapter(Order, ObjectMapper)
+    
+# Describe what is needed to save on each object
+# This is actually just configuration, you can use xml with a parser if you
+# like to have plenty of wasted CPU cycles ;P.
+
+persistent_fields = {'Album': ['album_id', 'creation_time', 'binary_data'],
+                              'Order':  ['order_id', 'items', 'price']
+                            }
+print adapt(Album()).generateInsert()
+print adapt(Album()).generateInsert()
+print adapt(Album()).generateInsert()
+print adapt(Order()).generateInsert()
+print adapt(Order()).generateInsert()
+print adapt(Order()).generateInsert()
+
+"""
+- Discussion
+
+Psycopg 2 has a great new feature: adaptation. The big thing about 
+adaptation is that it enable the programmer to glue most of the 
+code out there without many difficulties.
+
+This recipe tries to focus the attention on a way to generate SQL queries to 
+insert  completely new objects inside a database. As you can see objects do 
+not know anything about the code that is handling them. We specify all the 
+fields that we need for each object through the persistent_fields dict.
+
+The most important lines of this recipe are:
+    register_adapter(Album, ObjectMapper)
+    register_adapter(Order, ObjectMapper)
+
+In these line we notify the system that when we call adapt with an Album instance 
+as an argument we want it to istantiate ObjectMapper passing the Album instance  
+as argument (self.orig in the ObjectMapper class).
+
+The output is something like this (for each call to generateInsert):
+    
+('INSERT INTO Album (album_id, binary_data, creation_time) VALUES 
+   (%(album_id)s, %(binary_data)s, %(creation_time)s)', 
+      
+  {'binary_data': <read-only buffer for 0x402de070, ...>, 
+    'creation_time':   datetime.datetime(2004, 9, 10, 20, 48, 29, 633728), 
+    'album_id': 1}
+)
+
+This is a tuple of {SQL_QUERY, FILLING_DICT}, and all the quoting/converting 
+stuff (from python's datetime to postgres s and from python's buffer to 
+postgres' blob) is handled with the same adaptation process hunder the hood 
+by psycopg2.
+
+At last, just notice that ObjectMapper is working for both Album and Order 
+instances without any glitches at all, and both classes could have easily been 
+coming from closed source libraries or C coded ones (which are not easily 
+modified), whereas a common pattern in todays ORMs or OODBs is to provide 
+a basic 'Persistent' object that already knows how to store itself in the 
+database.
+"""
diff --git a/trunk/psycopg2/examples/dict.py b/trunk/psycopg2/examples/dict.py
new file mode 100644 (file)
index 0000000..37dc74a
--- /dev/null
@@ -0,0 +1,45 @@
+# dict.py - using DictCUrsor/DictRow
+#
+# Copyright (C) 2005 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+## put in DSN your DSN string
+
+DSN = 'dbname=test'
+
+## don't modify anything below this line (except for experimenting)
+
+import sys
+import psycopg2
+import psycopg2.extras
+
+if len(sys.argv) > 1:
+    DSN = sys.argv[1]
+
+print "Opening connection using dsn:", DSN
+conn = psycopg2.connect(DSN)
+print "Encoding for this connection is", conn.encoding
+
+    
+curs = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
+curs.execute("SELECT 1 AS foo, 'cip' AS bar, date(now()) as zot")
+
+data = curs.fetchone()
+print "Some data accessed both as tuple and dict:"
+print " ", data['foo'], data['bar'], data['zot']
+print " ", data[0], data[1], data[2]
+
+# execute another query and demostrate we can still access the row
+curs.execute("SELECT 2 AS foo")
+print "Some more data accessed both as tuple and dict:"
+print " ", data['foo'], data['bar'], data['zot']
+print " ", data[0], data[1], data[2]
diff --git a/trunk/psycopg2/examples/dt.py b/trunk/psycopg2/examples/dt.py
new file mode 100644 (file)
index 0000000..76f0c78
--- /dev/null
@@ -0,0 +1,99 @@
+# datetime.py -  example of using date and time types
+#
+# Copyright (C) 2001-2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+## put in DSN your DSN string
+
+DSN = 'dbname=test'
+
+## don't modify anything below tis line (except for experimenting)
+
+import sys
+import psycopg2
+import mx.DateTime
+import datetime
+
+from psycopg2.extensions import adapt
+
+if len(sys.argv) > 1:
+    DSN = sys.argv[1]
+
+print "Opening connection using dns:", DSN
+conn = psycopg2.connect(DSN)
+curs = conn.cursor()
+
+try:
+    curs.execute("""CREATE TABLE test_dt (
+                     k int4, d date, t time, dt timestamp, z interval)""")
+except:
+    conn.rollback()
+    curs.execute("DROP TABLE test_dt")
+    curs.execute("""CREATE TABLE test_dt (
+                     k int4, d date, t time, dt timestamp, z interval)""")
+conn.commit()
+
+# build and insert some data using mx.DateTime
+mx1 = (
+    1,
+    mx.DateTime.Date(2004, 10, 19),
+    mx.DateTime.Time(0, 11, 17.015),
+    mx.DateTime.Timestamp(2004, 10, 19, 0, 11, 17.5),
+    mx.DateTime.DateTimeDelta(13, 15, 17, 59.9))
+
+from psycopg2.extensions import adapt
+import psycopg2.extras
+print adapt(mx1)
+
+print "Inserting mx.DateTime values..."
+curs.execute("INSERT INTO test_dt VALUES (%s, %s, %s, %s, %s)", mx1)
+
+# build and insert some values using the datetime adapters
+dt1 = (
+    2,
+    datetime.date(2004, 10, 19),
+    datetime.time(0, 11, 17, 15000),
+    datetime.datetime(2004, 10, 19, 0, 11, 17, 500000),
+    datetime.timedelta(13, 15*3600+17*60+59, 900000))
+
+print "Inserting Python datetime values..."
+curs.execute("INSERT INTO test_dt VALUES (%s, %s, %s, %s, %s)", dt1)
+
+# now extract the row from database and print them
+print "Extracting values inserted with mx.DateTime wrappers:"
+curs.execute("SELECT d, t, dt, z FROM test_dt WHERE k = 1")
+for n, x in zip(mx1[1:], curs.fetchone()):
+    try:
+        # this will work only is psycopg has been compiled with datetime
+        # as the default typecaster for date/time values
+        s = repr(n) + "\n -> " + str(adapt(n)) + \
+            "\n -> " + repr(x) + "\n -> " + x.isoformat()
+    except:
+        s = repr(n) + "\n -> " + str(adapt(n))  + \
+            "\n -> " + repr(x) + "\n -> " + str(x)
+    print s
+print
+
+print "Extracting values inserted with Python datetime wrappers:"
+curs.execute("SELECT d, t, dt, z FROM test_dt WHERE k = 2")
+for n, x in zip(dt1[1:], curs.fetchone()):
+    try:
+        # this will work only is psycopg has been compiled with datetime
+        # as the default typecaster for date/time values
+        s = repr(n) + "\n -> " +  repr(x) + "\n -> " + x.isoformat()
+    except:
+        s = repr(n) + "\n -> " +  repr(x) + "\n -> " + str(x)
+    print s
+print
+
+curs.execute("DROP TABLE test_dt")
+conn.commit()
diff --git a/trunk/psycopg2/examples/encoding.py b/trunk/psycopg2/examples/encoding.py
new file mode 100644 (file)
index 0000000..da57bcf
--- /dev/null
@@ -0,0 +1,105 @@
+# enkoding.py - show to change client enkoding (and test it works)
+# -*- encoding: utf8 -*-
+#
+# Copyright (C) 2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+## put in DSN your DSN string
+
+DSN = 'dbname=test'
+
+## don't modify anything below this line (except for experimenting)
+
+import sys
+import psycopg2
+import psycopg2.extensions
+
+if len(sys.argv) > 1:
+    DSN = sys.argv[1]
+
+print "Opening connection using dns:", DSN
+conn = psycopg2.connect(DSN)
+print "Initial encoding for this connection is", conn.encoding
+
+print "\n** This example is supposed to be run in a UNICODE terminal! **\n"
+
+print "Available encodings:"
+encs = psycopg2.extensions.encodings.items()
+encs.sort()
+for a, b in encs:
+    print " ", a, "<->", b
+
+print "Using STRING typecaster"    
+print "Setting backend encoding to LATIN1 and executing queries:"
+conn.set_client_encoding('LATIN1')
+curs = conn.cursor()
+curs.execute("SELECT %s::TEXT AS foo", ('àèìòù',))
+x = curs.fetchone()[0]
+print "  ->", unicode(x, 'latin-1').encode('utf-8'), type(x)
+curs.execute("SELECT %s::TEXT AS foo", (u'àèìòù',))
+x = curs.fetchone()[0]
+print "  ->", unicode(x, 'latin-1').encode('utf-8'), type(x)
+
+print "Setting backend encoding to UTF8 and executing queries:"
+conn.set_client_encoding('UNICODE')
+curs = conn.cursor()
+curs.execute("SELECT %s::TEXT AS foo", (u'àèìòù'.encode('utf-8'),))
+x = curs.fetchone()[0]
+print "  ->", x, type(x)
+curs.execute("SELECT %s::TEXT AS foo", (u'àèìòù',))
+x = curs.fetchone()[0]
+print "  ->", x, type(x)
+
+print "Using UNICODE typecaster"
+psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
+
+print "Setting backend encoding to LATIN1 and executing queries:"
+conn.set_client_encoding('LATIN1')
+curs = conn.cursor()
+curs.execute("SELECT %s::TEXT AS foo", ('àèìòù',))
+x = curs.fetchone()[0]
+print "  ->", x.encode('utf-8'), ":", type(x)
+curs.execute("SELECT %s::TEXT AS foo", (u'àèìòù',))
+x = curs.fetchone()[0]
+print "  ->", x.encode('utf-8'), ":", type(x)
+
+print "Setting backend encoding to UTF8 and executing queries:"
+conn.set_client_encoding('UNICODE')
+curs = conn.cursor()
+curs.execute("SELECT %s::TEXT AS foo", (u'àèìòù'.encode('utf-8'),))
+x = curs.fetchone()[0]
+print "  ->", x.encode('utf-8'), ":", type(x)
+curs.execute("SELECT %s::TEXT AS foo", (u'àèìòù',))
+x = curs.fetchone()[0]
+print "  ->", x.encode('utf-8'), ":", type(x)
+
+print "Executing full UNICODE queries"
+
+print "Setting backend encoding to LATIN1 and executing queries:"
+conn.set_client_encoding('LATIN1')
+curs = conn.cursor()
+curs.execute(u"SELECT %s::TEXT AS foo", ('àèìòù',))
+x = curs.fetchone()[0]
+print "  ->", x.encode('utf-8'), ":", type(x)
+curs.execute(u"SELECT %s::TEXT AS foo", (u'àèìòù',))
+x = curs.fetchone()[0]
+print "  ->", x.encode('utf-8'), ":", type(x)
+
+print "Setting backend encoding to UTF8 and executing queries:"
+conn.set_client_encoding('UNICODE')
+curs = conn.cursor()
+curs.execute(u"SELECT %s::TEXT AS foo", (u'àèìòù'.encode('utf-8'),))
+x = curs.fetchone()[0]
+print "  ->", x.encode('utf-8'), ":", type(x)
+curs.execute(u"SELECT %s::TEXT AS foo", (u'àèìòù',))
+x = curs.fetchone()[0]
+print "  ->", x.encode('utf-8'), ":", type(x)
diff --git a/trunk/psycopg2/examples/fetch.py b/trunk/psycopg2/examples/fetch.py
new file mode 100644 (file)
index 0000000..dab0a41
--- /dev/null
@@ -0,0 +1,81 @@
+# fetch.py -- example about declaring cursors
+#
+# Copyright (C) 2001-2005 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+#
+
+## put in DSN your DSN string
+
+DSN = 'dbname=test'
+
+## don't modify anything below tis line (except for experimenting)
+
+import sys
+import psycopg2
+
+if len(sys.argv) > 1:
+    DSN = sys.argv[1]
+
+print "Opening connection using dns:", DSN
+conn = psycopg2.connect(DSN)
+print "Encoding for this connection is", conn.encoding
+
+curs = conn.cursor()
+try:
+    curs.execute("CREATE TABLE test_fetch (val int4)")
+except:
+    conn.rollback()
+    curs.execute("DROP TABLE test_fetch")
+    curs.execute("CREATE TABLE test_fetch (val int4)")
+conn.commit()
+
+# we use this function to format the output
+
+def flatten(l):
+    """Flattens list of tuples l."""
+    return map(lambda x: x[0], l)
+
+# insert 20 rows in the table
+
+for i in range(20):
+    curs.execute("INSERT INTO test_fetch VALUES(%s)", (i,))
+conn.commit()
+
+# does some nice tricks with the transaction and postgres cursors
+# (remember to always commit or rollback before a DECLARE)
+#
+# we don't need to DECLARE ourselves, psycopg now support named
+# cursors (but we leave the code here, comments, as an example of
+# what psycopg is doing under the hood)
+#
+#curs.execute("DECLARE crs CURSOR FOR SELECT * FROM test_fetch")
+#curs.execute("FETCH 10 FROM crs")
+#print "First 10 rows:", flatten(curs.fetchall())
+#curs.execute("MOVE -5 FROM crs")
+#print "Moved back cursor by 5 rows (to row 5.)"
+#curs.execute("FETCH 10 FROM crs")
+#print "Another 10 rows:", flatten(curs.fetchall())
+#curs.execute("FETCH 10 FROM crs")
+#print "The remaining rows:", flatten(curs.fetchall())
+
+ncurs = conn.cursor("crs")
+ncurs.execute("SELECT * FROM test_fetch")
+print "First 10 rows:", flatten(ncurs.fetchmany(10))
+ncurs.scroll(-5)
+print "Moved back cursor by 5 rows (to row 5.)"
+print "Another 10 rows:", flatten(ncurs.fetchmany(10))
+print "Another one:", list(ncurs.fetchone())
+print "The remaining rows:", flatten(ncurs.fetchall())
+conn.rollback()
+
+curs.execute("DROP TABLE test_fetch")
+conn.commit()
diff --git a/trunk/psycopg2/examples/lastrowid.py b/trunk/psycopg2/examples/lastrowid.py
new file mode 100644 (file)
index 0000000..205ef6c
--- /dev/null
@@ -0,0 +1,59 @@
+# lastrowid.py -  example of using .lastrowid attribute
+#
+# Copyright (C) 2001-2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+## put in DSN your DSN string
+
+DSN = 'dbname=test'
+
+## don't modify anything below tis line (except for experimenting)
+
+import sys, psycopg2
+
+if len(sys.argv) > 1:
+    DSN = sys.argv[1]
+
+print "Opening connection using dns:", DSN
+conn = psycopg2.connect(DSN)
+curs = conn.cursor()
+
+try:
+    curs.execute("CREATE TABLE test_oid (name text, surname text)")
+except:
+    conn.rollback()
+    curs.execute("DROP TABLE test_oid")
+    curs.execute("CREATE TABLE test_oid (name text, surname text)")
+conn.commit()
+
+data = ({'name':'Federico', 'surname':'Di Gregorio'},
+        {'name':'Pierluigi', 'surname':'Di Nunzio'})
+
+curs.execute("""INSERT INTO test_oid
+                VALUES (%(name)s, %(surname)s)""", data[0])
+
+foid = curs.lastrowid
+print "Oid for %(name)s %(surname)s" % data[0], "is", foid
+
+curs.execute("""INSERT INTO test_oid
+                VALUES (%(name)s, %(surname)s)""", data[1])
+moid = curs.lastrowid
+print "Oid for %(name)s %(surname)s" % data[1], "is", moid
+
+curs.execute("SELECT * FROM test_oid WHERE oid = %s", (foid,))
+print "Oid", foid, "selected %s %s" % curs.fetchone()
+
+curs.execute("SELECT * FROM test_oid WHERE oid = %s", (moid,))
+print "Oid", moid, "selected %s %s" % curs.fetchone()
+
+curs.execute("DROP TABLE test_oid")
+conn.commit()
diff --git a/trunk/psycopg2/examples/mogrify.py b/trunk/psycopg2/examples/mogrify.py
new file mode 100644 (file)
index 0000000..480c491
--- /dev/null
@@ -0,0 +1,47 @@
+# mogrify.py - test all possible simple type mogrifications
+# -*- encoding: latin1 -*-
+#
+# Copyright (C) 2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+## put in DSN your DSN string
+
+DSN = 'dbname=test'
+
+## don't modify anything below this line (except for experimenting)
+
+import sys, psycopg2
+
+if len(sys.argv) > 1:
+    DSN = sys.argv[1]
+
+print "Opening connection using dns:", DSN
+
+conn = psycopg2.connect(DSN)
+print "Encoding for this connection is", conn.encoding
+
+curs = conn.cursor()
+curs.execute("SELECT %(foo)s AS foo", {'foo':'bar'})
+curs.execute("SELECT %(foo)s AS foo", {'foo':None})
+curs.execute("SELECT %(foo)s AS foo", {'foo':True})
+curs.execute("SELECT %(foo)s AS foo", {'foo':42})
+curs.execute("SELECT %(foo)s AS foo", {'foo':u'yatt�!'})
+curs.execute("SELECT %(foo)s AS foo", {'foo':u'bar'})
+
+print curs.mogrify("SELECT %(foo)s AS foo", {'foo':'bar'})
+print curs.mogrify("SELECT %(foo)s AS foo", {'foo':None})
+print curs.mogrify("SELECT %(foo)s AS foo", {'foo':True})
+print curs.mogrify("SELECT %(foo)s AS foo", {'foo':42})
+print curs.mogrify("SELECT %(foo)s AS foo", {'foo':u'yatt�!'})
+print curs.mogrify("SELECT %(foo)s AS foo", {'foo':u'bar'})
+
+conn.rollback()
diff --git a/trunk/psycopg2/examples/myfirstrecipe.py b/trunk/psycopg2/examples/myfirstrecipe.py
new file mode 100644 (file)
index 0000000..4ddc65e
--- /dev/null
@@ -0,0 +1,122 @@
+"""
+Using a tuple as a bound variable in "SELECT ... IN (...)" clauses
+in PostgreSQL using psycopg 2
+
+Some time ago someone asked on the psycopg mailing list how to have a
+bound variable expand to the right SQL for an SELECT IN clause:
+
+    SELECT * FROM atable WHERE afield IN (value1, value2, value3)
+
+with the values to be used in the IN clause to be passed to the cursor
+.execute() method in a tuple as a bound variable, i.e.:
+
+    in_values = ("value1", "value2", "value3")
+    curs.execute("SELECT ... IN %s", (in_values,))
+
+psycopg 1 does support typecasting from Python to PostgreSQL (and back)
+only for simple types and this problem has no elegant solution (short or
+writing a wrapper class returning the pre-quoted text in an __str__
+method.
+
+But psycopg 2 offers a simple and elegant solution by partially
+implementing the Object Adaptation from PEP 246. psycopg 2 (still in
+beta and currently labeled as 1.99.9) moves the type-casting logic into
+external adapters and a somehow broken adapt() function.
+
+While the original adapt() takes 3 arguments, psycopg's one only takes
+1: the bound variable to be adapted. The result is an object supporting
+a not-yet well defined protocol that we can call IPsycopgSQLQuote:
+
+    class IPsycopgSQLQuote:
+
+        def getquoted(self):
+            "Returns a quoted string representing the bound variable."
+
+       def getbinary(self):
+           "Returns a binary quoted string representing the bound variable."
+           
+       def getbuffer(self):
+            "Returns the wrapped object itself."
+
+        __str__ = getquoted
+
+Then one of the functions (usually .getquoted()) is called by psycopg at
+the right time to obtain the right, sql-quoted representation for the
+corresponding bound variable.
+
+The nice part is that the default, built-in adapters, derived from
+psycopg 1 tyecasting code can be overridden by the programmer, simply
+replacing them in the psycopg.extensions.adapters dictionary.
+
+Then the solution to the original problem is now obvious: write an
+adapter that adapts tuple objects into the right SQL string, by calling
+recursively adapt() on each element.
+
+Note: psycopg 2 adapter code is still very young and will probably move
+to a more 'standard' (3 arguments) implementation for the adapt()
+function; as long as that does not slow down too much query execution.
+
+Psycopg 2 development can be tracked on the psycopg mailing list:
+
+   http://lists.initd.org/mailman/listinfo/psycopg
+
+and on the psycopg 2 wiki:
+
+   http://wiki.initd.org/Projects/Psycopg2
+
+"""
+
+import psycopg2
+import psycopg2.extensions
+from psycopg2.extensions import adapt as psycoadapt
+from psycopg2.extensions import register_adapter
+
+class AsIs(object):
+    """An adapter that just return the object 'as is'.
+
+    psycopg 1.99.9 has some optimizations that make impossible to call
+    adapt() without adding some basic adapters externally. This limitation
+    will be lifted in a future release.
+    """
+    def __init__(self, obj):
+        self.__obj = obj
+    def getquoted(self):
+        return self.__obj
+    
+class SQL_IN(object):
+    """Adapt a tuple to an SQL quotable object."""
+    
+    def __init__(self, seq):
+       self._seq = seq
+
+    def prepare(self, conn):
+        pass
+
+    def getquoted(self):
+        # this is the important line: note how every object in the
+        # list is adapted and then how getquoted() is called on it
+
+       qobjs = [str(psycoadapt(o).getquoted()) for o in self._seq]
+
+       return '(' + ', '.join(qobjs) + ')'
+       
+    __str__ = getquoted
+
+    
+# add our new adapter class to psycopg list of adapters
+register_adapter(tuple, SQL_IN)
+register_adapter(float, AsIs)
+register_adapter(int, AsIs)
+
+# usually we would call:
+#
+#     conn = psycopg.connect("...")
+#     curs = conn.cursor()
+#     curs.execute("SELECT ...", (("this", "is", "the", "tuple"),))
+#     
+# but we have no connection to a database right now, so we just check
+# the SQL_IN class by calling psycopg's adapt() directly:
+
+if __name__ == '__main__':
+    print "Note how the string will be SQL-quoted, but the number will not:"
+    print psycoadapt(("this is an 'sql quoted' str\\ing", 1, 2.0))
diff --git a/trunk/psycopg2/examples/notify.py b/trunk/psycopg2/examples/notify.py
new file mode 100644 (file)
index 0000000..83761b9
--- /dev/null
@@ -0,0 +1,43 @@
+# notify.py - example of getting notifies
+#
+# Copyright (C) 2001-2005 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+## put in DSN your DSN string
+
+DSN = 'dbname=test'
+
+## don't modify anything below tis line (except for experimenting)
+
+import sys
+import psycopg2
+import select
+
+if len(sys.argv) > 1:
+    DSN = sys.argv[1]
+
+print "Opening connection using dns:", DSN
+conn = psycopg2.connect(DSN)
+print "Encoding for this connection is", conn.encoding
+
+conn.set_isolation_level(0)
+curs = conn.cursor()
+
+curs.execute("listen test")
+
+print "Waiting for 'NOTIFY test'"
+while 1:
+    if select.select([curs],[],[],5)==([],[],[]):
+        print "Timeout"
+    else:
+        if curs.isready():
+            print "Got NOTIFY: %s" % str(curs.connection.notifies.pop()) 
diff --git a/trunk/psycopg2/examples/simple.py b/trunk/psycopg2/examples/simple.py
new file mode 100644 (file)
index 0000000..2306be1
--- /dev/null
@@ -0,0 +1,53 @@
+# simple.py - very simple example of plain DBAPI-2.0 usage
+# currently used as test-me-stress-me script for psycopg 2.0
+#
+# Copyright (C) 2001-2003 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+## put in DSN your DSN string
+
+DSN = 'dbname=test'
+
+## don't modify anything below this line (except for experimenting)
+
+class SimpleQuoter(object):
+    def sqlquote(x=None):
+        return "'bar'"
+
+import sys
+import psycopg2
+
+if len(sys.argv) > 1:
+    DSN = sys.argv[1]
+
+print "Opening connection using dns:", DSN
+conn = psycopg2.connect(DSN)
+print "Encoding for this connection is", conn.encoding
+
+curs = conn.cursor()
+curs.execute("SELECT 1 AS foo")
+print curs.fetchone()
+curs.execute("SELECT 1 AS foo")
+print curs.fetchmany()
+curs.execute("SELECT 1 AS foo")
+print curs.fetchall()
+
+conn.rollback()
+
+sys.exit(0)
+
+curs.execute("SELECT 1 AS foo", async=1)
+
+curs.execute("SELECT %(foo)s AS foo", {'foo':'bar'})
+curs.execute("SELECT %(foo)s AS foo", {'foo':None})
+curs.execute("SELECT %(foo)f AS foo", {'foo':42})
+curs.execute("SELECT %(foo)s AS foo", {'foo':SimpleQuoter()})
diff --git a/trunk/psycopg2/examples/somehackers.jpg b/trunk/psycopg2/examples/somehackers.jpg
new file mode 100644 (file)
index 0000000..8bb6e01
Binary files /dev/null and b/trunk/psycopg2/examples/somehackers.jpg differ
diff --git a/trunk/psycopg2/examples/threads.py b/trunk/psycopg2/examples/threads.py
new file mode 100644 (file)
index 0000000..5477aa8
--- /dev/null
@@ -0,0 +1,160 @@
+# threads.py -- example of multiple threads using psycopg
+# -*- encoding: latin1 -*-
+#
+# Copyright (C) 2001-2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+## put in DSN your DSN string
+
+DSN = 'dbname=test'
+
+## some others parameters
+INSERT_THREADS = ('A', 'B', 'C')
+SELECT_THREADS = ('1', '2')
+
+ROWS = 1000
+
+COMMIT_STEP = 20
+SELECT_SIZE = 10000
+SELECT_STEP = 500
+SELECT_DIV  = 250
+
+# the available modes are:
+# 0 - one connection for all insert and one for all select threads
+# 1 - connections generated using the connection pool
+
+MODE = 1
+
+## don't modify anything below tis line (except for experimenting)
+
+import sys, psycopg2, threading
+from psycopg2.pool import ThreadedConnectionPool
+
+if len(sys.argv) > 1:
+    DSN = sys.argv[1]
+if len(sys.argv) > 2:
+    MODE = int(sys.argv[2])
+    
+print "Opening connection using dns:", DSN
+conn = psycopg2.connect(DSN)
+curs = conn.cursor()
+
+try:
+    curs.execute("""CREATE TABLE test_threads (
+                        name text, value1 int4, value2 float)""")
+except:
+    conn.rollback()
+    curs.execute("DROP TABLE test_threads")
+    curs.execute("""CREATE TABLE test_threads (
+                        name text, value1 int4, value2 float)""")
+conn.commit()
+
+
+## this function inserts a big number of rows and creates and destroys
+## a large number of cursors
+
+def insert_func(conn_or_pool, rows):
+    name = threading.currentThread().getName()
+
+    if MODE == 0:
+        conn = conn_or_pool
+    else:
+        conn = conn_or_pool.getconn()
+        
+    for i in range(rows):
+        if divmod(i, COMMIT_STEP)[1] == 0:
+            conn.commit()
+            if MODE == 1:
+                conn_or_pool.putconn(conn)
+            s = name + ": COMMIT STEP " + str(i)
+            print s
+            if MODE == 1:
+                conn = conn_or_pool.getconn()
+        c = conn.cursor()
+        try:
+            c.execute("INSERT INTO test_threads VALUES (%s, %s, %s)",
+                      (str(i), i, float(i)))
+        except psycopg2.ProgrammingError, err:
+            print name, ": an error occurred; skipping this insert"
+            print err
+    conn.commit()
+
+## a nice select function that prints the current number of rows in the
+## database (and transefer them, putting some pressure on the network)
+    
+def select_func(conn_or_pool, z):
+    name = threading.currentThread().getName()
+
+    if MODE == 0:
+        conn = conn_or_pool
+        conn.set_isolation_level(0)
+    
+    for i in range(SELECT_SIZE):
+        if divmod(i, SELECT_STEP)[1] == 0:
+            try:
+                if MODE == 1:
+                    conn = conn_or_pool.getconn()
+                    conn.set_isolation_level(0)
+                c = conn.cursor()
+                c.execute("SELECT * FROM test_threads WHERE value2 < %s",
+                          (int(i/z),))
+                l = c.fetchall()
+                if MODE == 1:
+                    conn_or_pool.putconn(conn)
+                s = name + ": number of rows fetched: " + str(len(l))
+                print s
+            except psycopg2.ProgrammingError, err:
+                print name, ": an error occurred; skipping this select"
+                print err
+
+## create the connection pool or the connections
+if MODE == 0:
+    conn_insert = psycopg2.connect(DSN)
+    conn_select = psycopg2.connect(DSN)
+else:
+    m = len(INSERT_THREADS) + len(SELECT_THREADS)
+    n = m/2
+    conn_insert = conn_select = ThreadedConnectionPool(n, m, DSN)
+    
+## create the threads
+threads = []
+
+print "Creating INSERT threads:"
+for name in INSERT_THREADS:
+    t = threading.Thread(None, insert_func, 'Thread-'+name,
+                         (conn_insert, ROWS))
+    t.setDaemon(0)
+    threads.append(t)
+
+print "Creating SELECT threads:"
+for name in SELECT_THREADS:
+    t = threading.Thread(None, select_func, 'Thread-'+name,
+                         (conn_select, SELECT_DIV))
+    t.setDaemon(0)
+    threads.append(t)
+
+## really start the threads now
+for t in threads:
+    t.start()
+
+# and wait for them to finish
+for t in threads:
+    t.join()
+    print t.getName(), "exited OK"
+
+
+conn.commit()
+curs.execute("SELECT count(name) FROM test_threads")
+print "Inserted", curs.fetchone()[0], "rows."
+
+curs.execute("DROP TABLE test_threads")
+conn.commit()
diff --git a/trunk/psycopg2/examples/tz.py b/trunk/psycopg2/examples/tz.py
new file mode 100644 (file)
index 0000000..c27bf30
--- /dev/null
@@ -0,0 +1,69 @@
+# tz.py - example of datetime objects with time zones
+# -*- encoding: utf8 -*-
+#
+# Copyright (C) 2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+## put in DSN your DSN string
+
+DSN = 'dbname=test'
+
+## don't modify anything below this line (except for experimenting)
+
+import sys
+import psycopg2
+import datetime
+
+from psycopg2.tz import ZERO, LOCAL, FixedOffsetTimezone
+
+if len(sys.argv) > 1:
+    DSN = sys.argv[1]
+
+print "Opening connection using dns:", DSN
+conn = psycopg2.connect(DSN)
+curs = conn.cursor()
+
+try:
+    curs.execute("CREATE TABLE test_tz (t timestamp with time zone)")
+except:
+    conn.rollback()
+    curs.execute("DROP TABLE test_tz")
+    curs.execute("CREATE TABLE test_tz (t timestamp with time zone)")
+conn.commit()
+
+d = datetime.datetime(1971, 10, 19, 22, 30, 0, tzinfo=LOCAL)
+curs.execute("INSERT INTO test_tz VALUES (%s)", (d,))
+print "Inserted timestamp with timezone:", d
+print "Time zone:", d.tzinfo.tzname(d), "offset:", d.tzinfo.utcoffset(d)
+
+tz = FixedOffsetTimezone(-5*60, "EST")
+d = datetime.datetime(1971, 10, 19, 22, 30, 0, tzinfo=tz)
+curs.execute("INSERT INTO test_tz VALUES (%s)", (d,))
+print "Inserted timestamp with timezone:", d
+print "Time zone:", d.tzinfo.tzname(d), "offset:", d.tzinfo.utcoffset(d)
+
+curs.execute("SELECT * FROM test_tz")
+d = curs.fetchone()[0]
+curs.execute("INSERT INTO test_tz VALUES (%s)", (d,))
+print "Inserted SELECTed timestamp:", d
+print "Time zone:", d.tzinfo.tzname(d), "offset:", d.tzinfo.utcoffset(d)
+
+curs.execute("SELECT * FROM test_tz")
+for d in curs:
+    u = d[0].utcoffset() or ZERO
+    print "UTC time:  ", d[0] - u 
+    print "Local time:", d[0]
+    print "Time zone:", d[0].tzinfo.tzname(d[0]), d[0].tzinfo.utcoffset(d[0])
+    
+
+curs.execute("DROP TABLE test_tz")
+conn.commit()
diff --git a/trunk/psycopg2/examples/usercast.py b/trunk/psycopg2/examples/usercast.py
new file mode 100644 (file)
index 0000000..5c8031f
--- /dev/null
@@ -0,0 +1,126 @@
+# usercast.py -- example of user defined typecasters
+# -*- encoding: latin-1 -*-
+#
+# Copyright (C) 2001-2005 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+## put in DSN your DSN string
+
+DSN = 'dbname=test'
+
+## don't modify anything below tis line (except for experimenting)
+
+import sys
+import psycopg2
+import psycopg2.extensions
+import whrandom
+
+# importing psycopg.extras will give us a nice tuple adapter: this is wrong
+# because the adapter is meant to be used in SQL IN clauses while we use
+# tuples to represent points but it works and the example is about Rect, not
+# "Point"
+import psycopg2.extras
+
+if len(sys.argv) > 1:
+    DSN = sys.argv[1]
+
+print "Opening connection using dns:", DSN
+conn = psycopg2.connect(DSN)
+print "Initial encoding for this connection is", conn.encoding
+
+curs = conn.cursor()
+try:
+    curs.execute("CREATE TABLE test_cast (p1 point, p2 point, b box)")
+except:
+    conn.rollback()
+    curs.execute("DROP TABLE test_cast")
+    curs.execute("CREATE TABLE test_cast (p1 point, p2 point, b box)")
+conn.commit()
+
+# this is the callable object we use as a typecast (the typecast is
+# usually a function, but we use a class, just to demonstrate the
+# flexibility of the psycopg casting system
+
+class Rect(object):
+    """Very simple rectangle.
+
+    Note that we use this type as a data holder, as an adapter of itself for
+    the ISQLQuote protocol used by psycopg's adapt() (see __confrom__ below)
+    and eventually as a type-caster for the data extracted from the database
+    (that's why __init__ takes the curs argument.)
+    """
+    
+    def __init__(self, s=None, curs=None):
+        """Init the rectangle from the optional string s."""
+        self.x = self.y = self.width = self.height = 0.0
+        if s: self.from_string(s)
+
+    def __conform__(self, proto):
+        """This is a terrible hack, just ignore proto and return self."""
+        if proto == psycopg2.extensions.ISQLQuote:
+            return self
+    
+    def from_points(self, x0, y0, x1, y1):
+        """Init the rectangle from points."""
+        if x0 > x1: (x0, x1) = (x1, x0)
+        if y0 > y1: (y0, y1) = (y1, y0)
+        self.x = x0
+        self.y = y0
+        self.width = x1 - x0
+        self.height = y1 - y0
+
+    def from_string(self, s):
+        """Init the rectangle from a string."""
+        seq = eval(s)
+        self.from_points(seq[0][0], seq[0][1], seq[1][0], seq[1][1])
+
+    def getquoted(self):
+        """Format self as a string usable by the db to represent a box."""
+        s = "'((%d,%d),(%d,%d))'" % (
+            self.x, self.y, self.x + self.width, self.y + self.height)
+        return s
+
+    def show(self):
+        """Format a description of the box."""
+        s = "X: %d\tY: %d\tWidth: %d\tHeight: %d" % (
+            self.x, self.y, self.width, self.height)
+        return s
+    
+# here we select from the empty table, just to grab the description
+curs.execute("SELECT b FROM test_cast WHERE 0=1")
+boxoid = curs.description[0][1]
+print "Oid for the box datatype is", boxoid
+
+# and build the user cast object
+BOX = psycopg2.extensions.new_type((boxoid,), "BOX", Rect)
+psycopg2.extensions.register_type(BOX)
+
+# now insert 100 random data (2 points and a box in each row)
+for i in range(100):
+    p1 = (whrandom.randint(0,100), whrandom.randint(0,100))
+    p2 = (whrandom.randint(0,100), whrandom.randint(0,100))
+    b = Rect()
+    b.from_points(whrandom.randint(0,100), whrandom.randint(0,100),
+                  whrandom.randint(0,100), whrandom.randint(0,100))
+    curs.execute("INSERT INTO test_cast VALUES ('%(p1)s', '%(p2)s', %(box)s)",
+                 {'box':b, 'p1':p1, 'p2':p2})
+print "Added 100 boxed to the database"
+
+# select and print all boxes with at least one point inside
+curs.execute("SELECT b FROM test_cast WHERE p1 @ b OR p2 @ b")
+boxes = curs.fetchall()
+print "Found %d boxes with at least a point inside:" % len(boxes)
+for box in boxes:
+    print " ", box[0].show()
+
+curs.execute("DROP TABLE test_cast")
+conn.commit()
diff --git a/trunk/psycopg2/examples/whereareyou.jpg b/trunk/psycopg2/examples/whereareyou.jpg
new file mode 100644 (file)
index 0000000..f508c0b
Binary files /dev/null and b/trunk/psycopg2/examples/whereareyou.jpg differ
diff --git a/trunk/psycopg2/lib/__init__.py b/trunk/psycopg2/lib/__init__.py
new file mode 100644 (file)
index 0000000..e40caa3
--- /dev/null
@@ -0,0 +1,72 @@
+"""A Python driver for PostgreSQL
+
+psycopg is a PostgreSQL_ database adapter for the Python_ programming
+language. This is version 2, a complete rewrite of the original code to
+provide new-style classes for connection and cursor objects and other sweet
+candies. Like the original, psycopg 2 was written with the aim of being very
+small and fast, and stable as a rock.
+
+Homepage: http://initd.org/projects/psycopg2
+
+.. _PostgreSQL: http://www.postgresql.org/
+.. _Python: http://www.python.org/
+
+:Groups:
+  * `Connections creation`: connect
+  * `Value objects constructors`: Binary, Date, DateFromTicks, Time,
+    TimeFromTicks, Timestamp, TimestampFromTicks
+"""
+# psycopg/__init__.py - initialization of the psycopg module
+#
+# Copyright (C) 2003-2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+# Import modules needed by _psycopg to allow tools like py2exe to do
+# their work without bothering about the module dependencies.
+# 
+# TODO: we should probably use the Warnings framework to signal a missing
+# module instead of raising an exception (in case we're running a thin
+# embedded Python or something even more devious.)
+
+import sys, warnings
+if sys.version_info[0] >= 2 and sys.version_info[1] >= 3:
+    try:
+        import datetime as _psycopg_needs_datetime
+    except:
+        warnings.warn(
+            "can't import datetime module probably needed by _psycopg",
+            RuntimeWarning)
+if sys.version_info[0] >= 2 and sys.version_info[1] >= 4:
+    try:
+        import decimal as _psycopg_needs_decimal
+    except:
+        warnings.warn(
+            "can't import decimal module probably needed by _psycopg",
+            RuntimeWarning)
+from psycopg2 import tz
+del sys, warnings
+
+# Import the DBAPI-2.0 stuff into top-level module.
+
+from _psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
+
+from _psycopg import Binary, Date, Time, Timestamp
+from _psycopg import DateFromTicks, TimeFromTicks, TimestampFromTicks
+
+from _psycopg import Error, Warning, DataError, DatabaseError, ProgrammingError
+from _psycopg import IntegrityError, InterfaceError, InternalError
+from _psycopg import NotSupportedError, OperationalError
+
+from _psycopg import connect, apilevel, threadsafety, paramstyle
+from _psycopg import __version__
+
+__all__ = [ k for k in locals().keys() if not k.startswith('_') ]
diff --git a/trunk/psycopg2/lib/extensions.py b/trunk/psycopg2/lib/extensions.py
new file mode 100644 (file)
index 0000000..9233d1d
--- /dev/null
@@ -0,0 +1,69 @@
+"""psycopg extensions to the DBAPI-2.0
+
+This module holds all the extensions to the DBAPI-2.0 provided by psycopg.
+
+- `connection` -- the new-type inheritable connection class
+- `cursor` -- the new-type inheritable cursor class
+- `adapt()` -- exposes the PEP-246_ compatible adapting mechanism used
+  by psycopg to adapt Python types to PostgreSQL ones
+  
+.. _PEP-246: http://www.python.org/peps/pep-0246.html
+"""
+# psycopg/extensions.py - DBAPI-2.0 extensions specific to psycopg
+#
+# Copyright (C) 2003-2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+from _psycopg import UNICODE, INTEGER, LONGINTEGER, BOOLEAN, FLOAT
+from _psycopg import TIME, DATE, INTERVAL
+
+from _psycopg import Boolean, QuotedString, AsIs
+try:
+    from _psycopg import DateFromMx, TimeFromMx, TimestampFromMx
+    from _psycopg import IntervalFromMx
+except:
+    pass
+try:
+    from _psycopg import DateFromPy, TimeFromPy, TimestampFromPy
+    from _psycopg import IntervalFromPy
+except:
+    pass
+
+from _psycopg import adapt, adapters, encodings, connection, cursor
+from _psycopg import string_types, binary_types, new_type, register_type
+from _psycopg import ISQLQuote
+
+"""Isolation level values."""
+ISOLATION_LEVEL_AUTOCOMMIT     = 0
+ISOLATION_LEVEL_READ_COMMITTED = 1 
+ISOLATION_LEVEL_SERIALIZABLE   = 2
+
+# PostgreSQL maps the the other standard values to already defined levels
+ISOLATION_LEVEL_REPEATABLE_READ  = ISOLATION_LEVEL_SERIALIZABLE
+ISOLATION_LEVEL_READ_UNCOMMITTED = ISOLATION_LEVEL_READ_COMMITTED
+
+"""Transaction status values."""
+STATUS_SETUP = 0
+STATUS_READY    = 1
+STATUS_BEGIN    = 2
+STATUS_SYNC     = 3
+STATUS_ASYNC    = 4
+
+# This is a usefull mnemonic to check if the connection is in a transaction
+STATUS_IN_TRANSACTION = STATUS_BEGIN
+
+
+def register_adapter(typ, callable):
+    """Register 'callable' as an ISQLQuote adapter for type 'typ'."""
+    adapters[(typ, ISQLQuote)] = callable
+
+__all__ = [ k for k in locals().keys() if not k.startswith('_') ]
diff --git a/trunk/psycopg2/lib/extras.py b/trunk/psycopg2/lib/extras.py
new file mode 100644 (file)
index 0000000..847bdb7
--- /dev/null
@@ -0,0 +1,235 @@
+"""Miscellaneous goodies for psycopg2
+
+This module is a generic place used to hold little helper functions
+and classes untill a better place in the distribution is found.
+"""
+# psycopg/extras.py - miscellaneous extra goodies for psycopg
+#
+# Copyright (C) 2003-2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+import os
+import time
+
+try:
+    import logging
+except:
+    logging = None
+    
+from psycopg2.extensions import cursor as _cursor
+from psycopg2.extensions import connection as _connection
+from psycopg2.extensions import register_adapter as _RA
+from psycopg2.extensions import adapt as _A
+
+
+class DictConnection(_connection):
+    """A connection that uses DictCursor automatically."""
+    def cursor(self):
+        return _connection.cursor(self, cursor_factory=DictCursor)
+
+class DictCursor(_cursor):
+    """A cursor that keeps a list of column name -> index mappings."""
+
+    __query_executed = 0
+    
+    def execute(self, query, vars=None, async=0):
+        self.row_factory = DictRow
+        self.index = {}
+        self.__query_executed = 1
+        return _cursor.execute(self, query, vars, async)
+    
+    def callproc(self, procname, vars=None):
+        self.row_factory = DictRow
+        self.index = {}
+        self.__query_executed = 1
+        return _cursor.callproc(self, procname, vars)   
+
+    def _build_index(self):
+        if self.__query_executed == 1 and self.description:
+            for i in range(len(self.description)):
+                self.index[self.description[i][0]] = i
+            self.__query_executed = 0
+            
+    def fetchone(self):
+        res = _cursor.fetchone(self)
+        if self.__query_executed:
+            self._build_index()
+        return res
+
+    def fetchmany(self, size=None):
+        res = _cursor.fetchmany(self, size)
+        if self.__query_executed:
+            self._build_index()
+        return res
+
+    def fetchall(self):
+        res = _cursor.fetchall(self)
+        if self.__query_executed:
+            self._build_index()
+        return res
+    
+    def next(self):
+        res = _cursor.fetchone(self)
+        if res is None:
+            raise StopIteration()
+        if self.__query_executed:
+            self._build_index()
+        return res
+
+class DictRow(list):
+    """A row object that allow by-colun-name access to data."""
+
+    def __init__(self, cursor):
+        self._index = cursor.index
+        self[:] = [None] * len(cursor.description)
+
+    def __getitem__(self, x):
+        if type(x) != int:
+            x = self._index[x]
+        return list.__getitem__(self, x)
+
+    def items(self):
+        res = []
+        for n, v in self._index.items():
+            res.append((n, list.__getitem__(self, v)))
+        return res
+    
+    def keys(self):
+        return self._index.keys()
+
+    def values(self):
+        return tuple(self[:])
+
+    def has_key(self, x):
+        return self._index.has_key(x)
+
+    def get(self, x, default=None):
+        try:
+            return self[x]
+        except:
+            return default
+
+
+class SQL_IN(object):
+    """Adapt any iterable to an SQL quotable object."""
+    
+    def __init__(self, seq):
+        self._seq = seq
+
+    def prepare(self, conn):
+        self._conn = conn
+    
+    def getquoted(self):
+        # this is the important line: note how every object in the
+        # list is adapted and then how getquoted() is called on it
+        pobjs = [_A(o) for o in self._seq]
+        for obj in pobjs:
+            if hasattr(obj, 'prepare'):
+                obj.prepare(self._conn)
+        qobjs = [str(o.getquoted()) for o in pobjs]
+        return '(' + ', '.join(qobjs) + ')'
+
+    __str__ = getquoted
+    
+_RA(tuple, SQL_IN)
+
+    
+class LoggingConnection(_connection):
+    """A connection that logs all queries to a file or logger object."""
+
+    def initialize(self, logobj):
+        """Initialize the connection to log to `logobj`.
+        
+        The `logobj` parameter can be an open file object or a Logger instance
+        from the standard logging module.
+        """
+        self._logobj = logobj
+        if logging and isinstance(logobj, logging.Logger):
+            self.log = self._logtologger
+        else:
+            self.log = self._logtofile
+    
+    def filter(self, msg, curs):
+        """Filter the query before logging it.
+        
+        This is the method to overwrite to filter unwanted queries out of the
+        log or to add some extra data to the output. The default implementation
+        just does nothing.
+        """
+        return msg
+    
+    def _logtofile(self, msg, curs):
+        msg = self.filter(msg, curs)
+        if msg: self._logobj.write(msg + os.linesep)
+        
+    def _logtologger(self, msg, curs):
+        msg = self.filter(msg, curs)
+        if msg: self._logobj.debug(msg)
+    
+    def _check(self):
+        if not hasattr(self, '_logobj'):
+            raise self.ProgrammingError(
+                "LoggingConnection object has not been initialize()d")
+            
+    def cursor(self):
+        self._check()
+        return _connection.cursor(self, cursor_factory=LoggingCursor)
+    
+class LoggingCursor(_cursor):
+    """A cursor that logs queries using its connection logging facilities."""
+
+    def execute(self, query, vars=None, async=0):
+        try:
+            return _cursor.execute(self, query, vars, async)
+        finally:
+            self.connection.log(self.query, self)
+
+    def callproc(self, procname, vars=None):
+        try:
+            return _cursor.callproc(self, procname, vars)  
+        finally:
+            self.connection.log(self.query, self)
+
+            
+class MinTimeLoggingConnection(LoggingConnection):
+    """A connection that logs queries based on execution time.
+    
+    This is just an example of how to sub-class LoggingConnection to provide
+    some extra filtering for the logged queries. Both the `.inizialize()` and
+    `.filter()` methods are overwritten to make sure that only queries
+    executing for more than `mintime` ms are logged.
+    
+    Note that this connection uses the specialized cursor MinTimeLoggingCursor.
+    """
+    def initialize(self, logobj, mintime=0):
+        LoggingConnection.initialize(self, logobj)
+        self._mintime = mintime
+        
+    def filter(self, msg, curs):
+        t = (time.time() - curs.timestamp) * 1000
+        if t > self._mintime:
+            return msg + os.linesep + "  (execution time: %d ms)" % t
+
+    def cursor(self):
+        self._check()
+        return _connection.cursor(self, cursor_factory=MinTimeLoggingCursor)
+    
+class MinTimeLoggingCursor(LoggingCursor):
+    """The cursor sub-class companion to MinTimeLoggingConnection."""
+
+    def execute(self, query, vars=None, async=0):
+        self.timestamp = time.time()
+        return LoggingCursor.execute(self, query, vars, async)
+    
+    def callproc(self, procname, vars=None):
+        self.timestamp = time.time()
+        return LoggingCursor.execute(self, procname, var)
diff --git a/trunk/psycopg2/lib/pool.py b/trunk/psycopg2/lib/pool.py
new file mode 100644 (file)
index 0000000..0468db6
--- /dev/null
@@ -0,0 +1,236 @@
+"""Connection pooling for psycopg2
+
+This module implements thread-safe (and not) connection pools.
+"""
+# psycopg/pool.py - pooling code for psycopg
+#
+# Copyright (C) 2003-2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+import psycopg2
+
+try:
+    import logging
+    # do basic initialization if the module is not already initialized
+    logging.basicConfig(level=logging.INFO,
+                        format='%(asctime)s %(levelname)s %(message)s')
+    # create logger object for psycopg2 module and sub-modules
+    _logger = logging.getLogger("psycopg2")
+    def dbg(*args):
+        _logger.debug("psycopg2", ' '.join([str(x) for x in args]))
+    try:
+        import App # does this make sure that we're running in Zope?
+        _logger.info("installed. Logging using Python logging module")
+    except:
+        _logger.debug("installed. Logging using Python logging module")
+    
+except ImportError:
+    from zLOG import LOG, DEBUG, INFO
+    def dbg(*args):
+        LOG('ZPsycopgDA',  DEBUG, "",
+            ' '.join([str(x) for x in args])+'\n')
+    LOG('ZPsycopgDA', INFO, "Installed", "Logging using Zope's zLOG\n") 
+
+except:
+    import sys
+    def dbg(*args):
+        sys.stderr.write(' '.join(args)+'\n')
+
+
+class PoolError(psycopg2.Error):
+    pass
+
+
+class AbstractConnectionPool(object):
+    """Generic key-based pooling code."""
+
+    def __init__(self, minconn, maxconn, *args, **kwargs):
+        """Initialize the connection pool.
+
+        New 'minconn' connections are created immediately calling 'connfunc'
+        with given parameters. The connection pool will support a maximum of
+        about 'maxconn' connections.        
+        """
+        self.minconn = minconn
+        self.maxconn = maxconn
+        self.closed = False
+        
+        self._args = args
+        self._kwargs = kwargs
+
+        self._pool = []
+        self._used = {}
+        self._rused = {} # id(conn) -> key map
+        self._keys = 0
+
+        for i in range(self.minconn):
+            self._connect()
+
+    def _connect(self, key=None):
+        """Create a new connection and assign it to 'key' if not None."""
+        conn = psycopg2.connect(*self._args, **self._kwargs)
+        if key is not None:
+            self._used[key] = conn
+            self._rused[id(conn)] = key
+        else:
+            self._pool.append(conn)
+        return conn
+
+    def _getkey(self):
+        """Return a new unique key."""
+        self._keys += 1
+        return self._keys
+            
+    def _getconn(self, key=None):
+        """Get a free connection and assign it to 'key' if not None."""
+        if self.closed: raise PoolError("connection pool is closed")
+        if key is None: key = self._getkey()
+       
+        if self._used.has_key(key):
+            return self._used[key]
+
+        if self._pool:
+            self._used[key] = conn = self._pool.pop()
+            self._rused[id(conn)] = key
+            return conn
+        else:
+            if len(self._used) == self.maxconn:
+                raise PoolError("connection pool exausted")
+            return self._connect(key)
+                
+    def _putconn(self, conn, key=None, close=False):
+        """Put away a connection."""
+        if self.closed: raise PoolError("connection pool is closed")
+        if key is None: key = self._rused[id(conn)]
+
+        if not key:
+            raise PoolError("trying to put unkeyed connection")
+
+        if len(self._pool) < self.minconn and not close:
+            self._pool.append(conn)
+        else:
+            conn.close()
+
+        # here we check for the presence of key because it can happen that a
+        # thread tries to put back a connection after a call to close
+        if not self.closed or key in self._used:
+            del self._used[key]
+            del self._rused[id(conn)]
+
+    def _closeall(self):
+        """Close all connections.
+
+        Note that this can lead to some code fail badly when trying to use
+        an already closed connection. If you call .closeall() make sure
+        your code can deal with it.
+        """
+        if self.closed: raise PoolError("connection pool is closed")
+        for conn in self._pool + list(self._used.values()):
+            try:
+                print "Closing connection", conn
+                conn.close()
+            except:
+                pass
+        self.closed = True
+        
+
+class SimpleConnectionPool(AbstractConnectionPool):
+    """A connection pool that can't be shared across different threads."""
+
+    getconn = AbstractConnectionPool._getconn
+    putconn = AbstractConnectionPool._putconn
+    closeall   = AbstractConnectionPool._closeall
+
+
+class ThreadedConnectionPool(AbstractConnectionPool):
+    """A connection pool that works with the threading module."""
+
+    def __init__(self, minconn, maxconn, *args, **kwargs):
+        """Initialize the threading lock."""
+        import threading
+        AbstractConnectionPool.__init__(
+            self, minconn, maxconn, *args, **kwargs)
+        self._lock = threading.Lock()
+
+    def getconn(self, key=None):
+        """Get a free connection and assign it to 'key' if not None."""
+        self._lock.acquire()
+        try:
+            return self._getconn(key)
+        finally:
+            self._lock.release()
+
+    def putconn(self, conn=None, key=None, close=False):
+        """Put away an unused connection."""
+        self._lock.acquire()
+        try:
+            self._putconn(conn, key, close)
+        finally:
+            self._lock.release()
+
+    def closeall(self):
+        """Close all connections (even the one currently in use.)"""
+        self._lock.acquire()
+        try:
+            self._closeall()
+        finally:
+            self._lock.release()
+
+
+class PersistentConnectionPool(AbstractConnectionPool):
+    """A pool that assigns persistent connections to different threads. 
+
+    Note that this connection pool generates by itself the required keys
+    using the current thread id.  This means that untill a thread put away
+    a connection it will always get the same connection object by successive
+    .getconn() calls. This also means that a thread can't use more than one
+    single connection from the pool.
+    """
+
+    def __init__(self, minconn, maxconn, *args, **kwargs):
+        """Initialize the threading lock."""
+        import threading
+        AbstractConnectionPool.__init__(
+            self, minconn, maxconn, *args, **kwargs)
+        self._lock = threading.Lock()
+
+        # we we'll need the thread module, to determine thread ids, so we
+        # import it here and copy it in an instance variable
+        import thread
+        self.__thread = thread
+
+    def getconn(self):
+        """Generate thread id and return a connection."""
+        key = self.__thread.get_ident()
+        self._lock.acquire()
+        try:
+            return self._getconn(key)
+        finally:
+            self._lock.release()
+
+    def putconn(self, conn=None, close=False):
+        """Put away an unused connection."""
+        key = self.__thread.get_ident()
+        self._lock.acquire()
+        try:
+            if not conn: conn = self._used[key]
+            self._putconn(conn, key, close)
+        finally:
+            self._lock.release()
+
+    def closeall(self):
+        """Close all connections (even the one currently in use.)"""
+        self._lock.acquire()
+        try:
+            self._closeall()
+        finally:
+            self._lock.release()
diff --git a/trunk/psycopg2/lib/psycopg1.py b/trunk/psycopg2/lib/psycopg1.py
new file mode 100644 (file)
index 0000000..d539888
--- /dev/null
@@ -0,0 +1,87 @@
+"""psycopg 1.1.x compatibility module
+
+This module uses the new style connection and cursor types to build a psycopg
+1.1.1.x compatibility layer. It should be considered a temporary hack to run
+old code while porting to psycopg 2. Import it as follows::
+
+    from psycopg2 import psycopg1 as psycopg
+"""
+# psycopg/psycopg1.py - psycopg 1.1.x compatibility module
+#
+# Copyright (C) 2003-2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+import _psycopg as _2psycopg
+from psycopg2.extensions import cursor as _2cursor
+from psycopg2.extensions import connection as _2connection
+
+from psycopg2 import *
+del connect
+
+
+def connect(*args, **kwargs):
+    """connect(dsn, ...) -> new psycopg 1.1.x compatible connection object"""
+    kwargs['connection_factory'] = connection
+    conn = _2psycopg.connect(*args, **kwargs)
+    conn.set_isolation_level(2)
+    return conn
+    
+class connection(_2connection):
+    """psycopg 1.1.x connection."""
+    
+    def cursor(self):
+        """cursor() -> new psycopg 1.1.x compatible cursor object"""
+        return _2connection.cursor(self, cursor_factory=cursor)
+
+    def autocommit(self, on_off=1):
+        """autocommit(on_off=1) -> switch autocommit on (1) or off (0)"""
+        if on_off > 0:
+            self.set_isolation_level(0)
+        else:
+            self.set_isolation_level(2)
+            
+
+class cursor(_2cursor):
+    """psycopg 1.1.x cursor.
+
+    Note that this cursor implements the exact procedure used by psycopg 1 to
+    build dictionaries out of result rows. The DictCursor in the
+    psycopg.extras modules implements a much better and faster algorithm.
+    """
+
+    def __build_dict(self, row):
+        res = {}
+        for i in range(len(self.description)):
+            res[self.description[i][0]] = row[i]
+        return res
+    
+    def dictfetchone(self):
+        row = _2cursor.fetchone(self)
+        if row:
+            return self.__build_dict(row)
+        else:
+            return row
+            
+    def dictfetchmany(self, size):
+        res = []
+        rows = _2cursor.fetchmany(self, size)
+        for row in rows:
+            res.append(self.__build_dict(row))
+        return res
+    
+    def dictfetchall(self):
+        res = []
+        rows = _2cursor.fetchall(self)
+        for row in rows:
+            res.append(self.__build_dict(row))
+        return res
+
diff --git a/trunk/psycopg2/lib/tz.py b/trunk/psycopg2/lib/tz.py
new file mode 100644 (file)
index 0000000..e521b6d
--- /dev/null
@@ -0,0 +1,100 @@
+"""tzinfo implementations for psycopg2
+
+This module holds two different tzinfo implementations that can be used as
+the 'tzinfo' argument to datetime constructors, directly passed to psycopg
+functions or used to set the .tzinfo_factory attribute in cursors. 
+"""
+# psycopg/tz.py - tzinfo implementation
+#
+# Copyright (C) 2003-2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+import datetime
+import time
+
+
+ZERO = datetime.timedelta(0)
+
+class FixedOffsetTimezone(datetime.tzinfo):
+    """Fixed offset in minutes east from UTC.
+
+    This is exactly the implementation found in Python 2.3.x documentation,
+    with a small change to the __init__ method to allow for pickling and a
+    default name in the form 'sHH:MM' ('s' is the sign.)
+    """
+    _name = None
+    _offset = ZERO
+    
+    def __init__(self, offset=None, name=None):
+        if offset is not None:
+            self._offset = datetime.timedelta(minutes = offset)
+        if name is not None:
+            self._name = name
+
+    def utcoffset(self, dt):
+        return self._offset
+
+    def tzname(self, dt):
+        if self._name is not None:
+            return self._name
+        else:
+            seconds = self._offset.seconds + self._offset.days * 86400
+            hours, seconds = divmod(seconds, 3600)
+            minutes = seconds/60
+            if minutes:
+                return "%+03d:%d" % (hours, minutes)
+            else:
+                return "%+03d" % hours
+            
+    def dst(self, dt):
+        return ZERO
+
+
+STDOFFSET = datetime.timedelta(seconds = -time.timezone)
+if time.daylight:
+    DSTOFFSET = datetime.timedelta(seconds = -time.altzone)
+else:
+    DSTOFFSET = STDOFFSET
+DSTDIFF = DSTOFFSET - STDOFFSET
+
+class LocalTimezone(datetime.tzinfo):
+    """Platform idea of local timezone.
+
+    This is the exact implementation from the Pyhton 2.3 documentation.
+    """
+    
+    def utcoffset(self, dt):
+        if self._isdst(dt):
+            return DSTOFFSET
+        else:
+            return STDOFFSET
+
+    def dst(self, dt):
+        if self._isdst(dt):
+            return DSTDIFF
+        else:
+            return ZERO
+
+    def tzname(self, dt):
+        return time.tzname[self._isdst(dt)]
+
+    def _isdst(self, dt):
+        tt = (dt.year, dt.month, dt.day,
+              dt.hour, dt.minute, dt.second,
+              dt.weekday(), 0, -1)
+        stamp = time.mktime(tt)
+        tt = time.localtime(stamp)
+        return tt.tm_isdst > 0
+
+LOCAL = LocalTimezone()
+
+# TODO: pre-generate some interesting time zones?
diff --git a/trunk/psycopg2/psycopg/adapter_asis.c b/trunk/psycopg2/psycopg/adapter_asis.c
new file mode 100644 (file)
index 0000000..75ee0e4
--- /dev/null
@@ -0,0 +1,227 @@
+/* adapter_asis.c - adapt types as they are
+ *
+ * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Python.h>
+#include <structmember.h>
+#include <stringobject.h>
+#include <string.h>
+
+#define PSYCOPG_MODULE
+#include "psycopg/config.h"
+#include "psycopg/python.h"
+#include "psycopg/psycopg.h"
+#include "psycopg/adapter_asis.h"
+#include "psycopg/microprotocols_proto.h"
+
+/** the AsIs object **/
+
+static PyObject *
+asis_str(asisObject *self)
+{
+    if (self->wrapped == Py_None) {
+        return PyString_FromString("NULL");
+    }
+    else {
+        return PyObject_Str(self->wrapped);
+    }
+}
+
+PyObject *
+asis_getquoted(asisObject *self, PyObject *args)
+{
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+    return asis_str(self);
+}
+
+PyObject *
+asis_conform(asisObject *self, PyObject *args)
+{
+    PyObject *res, *proto;
+    
+    if (!PyArg_ParseTuple(args, "O", &proto)) return NULL;
+
+    if (proto == (PyObject*)&isqlquoteType)
+        res = (PyObject*)self;
+    else
+        res = Py_None;
+    
+    Py_INCREF(res);
+    return res;
+}
+
+/** the AsIs object */
+
+/* object member list */
+
+static struct PyMemberDef asisObject_members[] = {
+    {"adapted", T_OBJECT, offsetof(asisObject, wrapped), RO},
+    {NULL}
+};
+
+/* object method table */
+
+static PyMethodDef asisObject_methods[] = {
+    {"getquoted", (PyCFunction)asis_getquoted, METH_VARARGS,
+     "getquoted() -> wrapped object value as SQL-quoted string"},
+    {"__conform__", (PyCFunction)asis_conform, METH_VARARGS, NULL},
+    {NULL}  /* Sentinel */
+};
+
+/* initialization and finalization methods */
+
+static int
+asis_setup(asisObject *self, PyObject *obj)
+{
+    Dprintf("asis_setup: init asis object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+
+    self->wrapped = obj;
+    Py_INCREF(self->wrapped);
+    
+    Dprintf("asis_setup: good asis object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+    return 0;
+}
+
+static void
+asis_dealloc(PyObject* obj)
+{
+    asisObject *self = (asisObject *)obj;
+
+    Py_XDECREF(self->wrapped);
+    
+    Dprintf("asis_dealloc: deleted asis object at %p, refcnt = %d",
+            obj, obj->ob_refcnt);
+    
+    obj->ob_type->tp_free(obj);
+}
+
+static int
+asis_init(PyObject *obj, PyObject *args, PyObject *kwds)
+{
+    PyObject *o;
+    
+    if (!PyArg_ParseTuple(args, "O", &o))
+        return -1;
+
+    return asis_setup((asisObject *)obj, o);
+}
+
+static PyObject *
+asis_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+{    
+    return type->tp_alloc(type, 0);
+}
+
+static void
+asis_del(PyObject* self)
+{
+    PyObject_Del(self);
+}
+
+static PyObject *
+asis_repr(asisObject *self)
+{
+    return PyString_FromFormat("<psycopg2._psycopg.AsIs object at %p>", self);
+}
+
+
+/* object type */
+
+#define asisType_doc \
+"AsIs(str) -> new AsIs adapter object"
+
+PyTypeObject asisType = {
+    PyObject_HEAD_INIT(NULL)
+    0,
+    "psycopg2._psycopg.AsIs",
+    sizeof(asisObject),
+    0,
+    asis_dealloc, /*tp_dealloc*/
+    0,          /*tp_print*/
+
+    0,          /*tp_getattr*/
+    0,          /*tp_setattr*/ 
+
+    0,          /*tp_compare*/
+
+    (reprfunc)asis_repr, /*tp_repr*/
+    0,          /*tp_as_number*/
+    0,          /*tp_as_sequence*/
+    0,          /*tp_as_mapping*/
+    0,          /*tp_hash */
+
+    0,          /*tp_call*/
+    (reprfunc)asis_str, /*tp_str*/
+    
+    0,          /*tp_getattro*/
+    0,          /*tp_setattro*/
+    0,          /*tp_as_buffer*/
+
+    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+    asisType_doc, /*tp_doc*/
+    
+    0,          /*tp_traverse*/
+    0,          /*tp_clear*/
+
+    0,          /*tp_richcompare*/
+    0,          /*tp_weaklistoffset*/
+
+    0,          /*tp_iter*/
+    0,          /*tp_iternext*/
+
+    /* Attribute descriptor and subclassing stuff */
+
+    asisObject_methods, /*tp_methods*/
+    asisObject_members, /*tp_members*/
+    0,          /*tp_getset*/
+    0,          /*tp_base*/
+    0,          /*tp_dict*/
+    
+    0,          /*tp_descr_get*/
+    0,          /*tp_descr_set*/
+    0,          /*tp_dictoffset*/
+    
+    asis_init, /*tp_init*/
+    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
+    asis_new, /*tp_new*/
+    (freefunc)asis_del, /*tp_free  Low-level free-memory routine */
+    0,          /*tp_is_gc For PyObject_IS_GC */
+    0,          /*tp_bases*/
+    0,          /*tp_mro method resolution order */
+    0,          /*tp_cache*/
+    0,          /*tp_subclasses*/
+    0           /*tp_weaklist*/
+};
+
+
+/** module-level functions **/
+
+PyObject *
+psyco_AsIs(PyObject *module, PyObject *args)
+{
+    PyObject *obj;
+     
+    if (!PyArg_ParseTuple(args, "O", &obj))
+        return NULL;
+  
+    return PyObject_CallFunction((PyObject *)&asisType, "O", obj);
+}
diff --git a/trunk/psycopg2/psycopg/adapter_asis.h b/trunk/psycopg2/psycopg/adapter_asis.h
new file mode 100644 (file)
index 0000000..9495c58
--- /dev/null
@@ -0,0 +1,51 @@
+/* adapter_asis.h - definition for the psycopg AsIs type wrapper
+ *
+ * Copyright (C) 2003-2005 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_ASIS_H
+#define PSYCOPG_ASIS_H 1
+
+#include <Python.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern PyTypeObject asisType;
+
+typedef struct {
+    PyObject HEAD;
+
+    /* this is the real object we wrap */
+    PyObject *wrapped;
+
+} asisObject;
+
+/* functions exported to psycopgmodule.c */
+    
+extern PyObject *psyco_AsIs(PyObject *module, PyObject *args);
+#define psyco_AsIs_doc \
+    "AsIs(obj) -> new AsIs wrapper object"
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !defined(PSYCOPG_ASIS_H) */
diff --git a/trunk/psycopg2/psycopg/adapter_binary.c b/trunk/psycopg2/psycopg/adapter_binary.c
new file mode 100644 (file)
index 0000000..0fc8101
--- /dev/null
@@ -0,0 +1,382 @@
+/* adapter_binary.c - Binary objects
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Python.h>
+#include <structmember.h>
+#include <stringobject.h>
+
+#include <libpq-fe.h>
+#include <string.h>
+
+#define PSYCOPG_MODULE
+#include "psycopg/config.h"
+#include "psycopg/python.h"
+#include "psycopg/psycopg.h"
+#include "psycopg/connection.h"
+#include "psycopg/adapter_binary.h"
+#include "psycopg/microprotocols_proto.h"
+
+/** the quoting code */
+
+#ifndef PSYCOPG_OWN_QUOTING
+static unsigned char *
+binary_escape(unsigned char *from, unsigned int from_length,
+               unsigned int *to_length, PGconn *conn)
+{
+#if PG_MAJOR_VERSION > 8 || \
+ (PG_MAJOR_VERSION == 8 && PG_MINOR_VERSION > 1) || \
+ (PG_MAJOR_VERSION == 8 && PG_MINOR_VERSION == 1 && PG_PATCH_VERSION >= 4)
+    if (conn)
+        return PQescapeByteaConn(conn, from, from_length, to_length);
+    else
+#endif
+        return PQescapeBytea(from, from_length, to_length);
+}
+#else
+static unsigned char *
+binary_escape(unsigned char *from, unsigned int from_length,
+               unsigned int *to_length, PGconn *conn)
+{
+    unsigneed char *quoted, *chptr, *newptr;
+    int i, space, new_space;
+
+    space = from_length + 2;
+
+    Py_BEGIN_ALLOW_THREADS;
+
+    quoted = (unsigned char*)calloc(space, sizeof(char));
+    if (quoted == NULL) return NULL;
+
+    chptr = quoted;
+
+    for (i=0; i < len; i++) {
+        if (chptr - quoted > space - 6) {
+            new_space  =  space * ((space) / (i + 1)) + 2 + 6;
+            if (new_space - space < 1024) space += 1024;
+            else space = new_space;
+            newptr = (unsigned char *)realloc(quoted, space);
+            if (newptr == NULL) {
+                free(quoted);
+                return NULL;
+            }
+            /* chptr has to be moved to the new location*/
+            chptr = newptr + (chptr - quoted);
+            quoted = newptr;
+            Dprintf("binary_escape: reallocated %i bytes at %p", space,quoted);
+        }
+        if (from[i]) {
+            if (from[i] >= ' ' && from[i] <= '~') {
+                if (from[i] == '\'') {
+                    *chptr = '\'';
+                    chptr++;
+                    *chptr = '\'';
+                    chptr++;
+                }
+                else if (from[i] == '\\') {
+                    memcpy(chptr, "\\\\\\\\", 4);
+                    chptr += 4;
+                }
+                else {
+                    /* leave it as it is if ascii printable */
+                    *chptr = from[i];
+                    chptr++;
+                }
+            }
+            else {
+                unsigned char c;
+                
+                /* escape to octal notation \nnn */
+                *chptr++ = '\\';
+                *chptr++ = '\\';
+                c = from[i];
+                *chptr = ((c >> 6) & 0x07) + 0x30; chptr++;
+                *chptr = ((c >> 3) & 0x07) + 0x30; chptr++;
+                *chptr = ( c       & 0x07) + 0x30; chptr++;
+            }
+        }
+        else {
+            /* escape null as \\000 */
+            memcpy(chptr, "\\\\000", 5);
+            chptr += 5;
+        }
+    }
+    *chptr = '\0';
+
+    Py_END_ALLOW_THREADS;
+
+    *to_size = chptr - quoted + 1;
+    return quoted;
+}
+#endif
+
+/* binary_quote - do the quote process on plain and unicode strings */
+
+static PyObject *
+binary_quote(binaryObject *self)
+{
+    char *to;
+    const char *buffer;
+    int buffer_len;
+    size_t len = 0;
+
+    /* if we got a plain string or a buffer we escape it and save the buffer */
+    if (PyString_Check(self->wrapped) || PyBuffer_Check(self->wrapped)) {
+        /* escape and build quoted buffer */
+        PyObject_AsCharBuffer(self->wrapped, &buffer, &buffer_len);
+
+        to = (char *)binary_escape((unsigned char*)buffer, buffer_len, &len,
+            self->conn ? ((connectionObject*)self->conn)->pgconn : NULL);
+        if (to == NULL) {
+            PyErr_NoMemory();
+            return NULL;
+        }
+
+       if (len > 0)
+            self->buffer = PyString_FromFormat("'%s'", to);
+       else
+            self->buffer = PyString_FromString("''");
+        PQfreemem(to);
+    }
+    
+    /* if the wrapped object is not a string or a buffer, this is an error */ 
+    else {
+        PyErr_SetString(PyExc_TypeError, "can't escape non-string object");
+        return NULL;
+    }
+    
+    return self->buffer;
+}
+
+/* binary_str, binary_getquoted - return result of quoting */
+
+static PyObject *
+binary_str(binaryObject *self)
+{
+    if (self->buffer == NULL) {
+        binary_quote(self);
+    }
+    Py_XINCREF(self->buffer);
+    return self->buffer;
+}
+
+PyObject *
+binary_getquoted(binaryObject *self, PyObject *args)
+{
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+    return binary_str(self);
+}
+
+PyObject *
+binary_prepare(binaryObject *self, PyObject *args)
+{
+    connectionObject *conn;
+
+    if (!PyArg_ParseTuple(args, "O", &conn))
+        return NULL;
+
+    Py_XDECREF(self->conn);
+    if (conn) {
+        self->conn = (PyObject*)conn;
+        Py_INCREF(self->conn);
+    }
+
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+PyObject *
+binary_conform(binaryObject *self, PyObject *args)
+{
+    PyObject *res, *proto;
+    
+    if (!PyArg_ParseTuple(args, "O", &proto)) return NULL;
+
+    if (proto == (PyObject*)&isqlquoteType)
+        res = (PyObject*)self;
+    else
+        res = Py_None;
+    
+    Py_INCREF(res);
+    return res;
+}
+
+/** the Binary object **/
+
+/* object member list */
+
+static struct PyMemberDef binaryObject_members[] = {
+    {"adapted", T_OBJECT, offsetof(binaryObject, wrapped), RO},
+    {"buffer", T_OBJECT, offsetof(binaryObject, buffer), RO},
+    {NULL}
+};
+
+/* object method table */
+
+static PyMethodDef binaryObject_methods[] = {
+    {"getquoted", (PyCFunction)binary_getquoted, METH_VARARGS,
+     "getquoted() -> wrapped object value as SQL-quoted binary string"},
+    {"prepare", (PyCFunction)binary_prepare, METH_VARARGS,
+     "prepare(conn) -> prepare for binary encoding using conn"},
+    {"__conform__", (PyCFunction)binary_conform, METH_VARARGS, NULL},
+    {NULL}  /* Sentinel */
+};
+
+/* initialization and finalization methods */
+
+static int
+binary_setup(binaryObject *self, PyObject *str)
+{
+    Dprintf("binary_setup: init binary object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+
+    self->buffer = NULL;
+    self->conn = NULL;
+    self->wrapped = str;
+    Py_INCREF(self->wrapped);
+    
+    Dprintf("binary_setup: good binary object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+    return 0;
+}
+
+static void
+binary_dealloc(PyObject* obj)
+{
+    binaryObject *self = (binaryObject *)obj;
+
+    Py_XDECREF(self->wrapped);
+    Py_XDECREF(self->buffer);
+    Py_XDECREF(self->conn);
+    
+    Dprintf("binary_dealloc: deleted binary object at %p, refcnt = %d",
+            obj, obj->ob_refcnt);
+    
+    obj->ob_type->tp_free(obj);
+}
+
+static int
+binary_init(PyObject *obj, PyObject *args, PyObject *kwds)
+{
+    PyObject *str;
+    
+    if (!PyArg_ParseTuple(args, "O", &str))
+        return -1;
+
+    return binary_setup((binaryObject *)obj, str);
+}
+
+static PyObject *
+binary_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+{    
+    return type->tp_alloc(type, 0);
+}
+
+static void
+binary_del(PyObject* self)
+{
+    PyObject_Del(self);
+}
+
+static PyObject *
+binary_repr(binaryObject *self)
+{
+    return PyString_FromFormat("<psycopg2._psycopg.Binary object at %p>", self);
+}
+
+/* object type */
+
+#define binaryType_doc \
+"Binary(buffer) -> new binary object"
+
+PyTypeObject binaryType = {
+    PyObject_HEAD_INIT(NULL)
+    0,
+    "psycopg2._psycopg.Binary",
+    sizeof(binaryObject),
+    0,
+    binary_dealloc, /*tp_dealloc*/
+    0,          /*tp_print*/
+    0,          /*tp_getattr*/
+    0,          /*tp_setattr*/   
+
+    0,          /*tp_compare*/
+    (reprfunc)binary_repr, /*tp_repr*/
+    0,          /*tp_as_number*/
+    0,          /*tp_as_sequence*/
+    0,          /*tp_as_mapping*/
+    0,          /*tp_hash */
+
+    0,          /*tp_call*/
+    (reprfunc)binary_str, /*tp_str*/
+    0,          /*tp_getattro*/
+    0,          /*tp_setattro*/
+    0,          /*tp_as_buffer*/
+
+    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+
+    binaryType_doc, /*tp_doc*/
+    
+    0,          /*tp_traverse*/
+    0,          /*tp_clear*/
+
+    0,          /*tp_richcompare*/
+    0,          /*tp_weaklistoffset*/
+
+    0,          /*tp_iter*/
+    0,          /*tp_iternext*/
+
+    /* Attribute descriptor and subclassing stuff */
+
+    binaryObject_methods, /*tp_methods*/
+    binaryObject_members, /*tp_members*/
+    0,          /*tp_getset*/
+    0,          /*tp_base*/
+    0,          /*tp_dict*/
+    
+    0,          /*tp_descr_get*/
+    0,          /*tp_descr_set*/
+    0,          /*tp_dictoffset*/
+    
+    binary_init, /*tp_init*/
+    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
+    binary_new, /*tp_new*/
+    (freefunc)binary_del, /*tp_free  Low-level free-memory routine */
+    0,          /*tp_is_gc For PyObject_IS_GC */
+    0,          /*tp_bases*/
+    0,          /*tp_mro method resolution order */
+    0,          /*tp_cache*/
+    0,          /*tp_subclasses*/
+    0           /*tp_weaklist*/
+};
+
+
+/** module-level functions **/
+
+PyObject *
+psyco_Binary(PyObject *module, PyObject *args)
+{
+    PyObject *str;
+    
+    if (!PyArg_ParseTuple(args, "O", &str))
+        return NULL;
+  
+    return PyObject_CallFunction((PyObject *)&binaryType, "O", str);
+}
diff --git a/trunk/psycopg2/psycopg/adapter_binary.h b/trunk/psycopg2/psycopg/adapter_binary.h
new file mode 100644 (file)
index 0000000..262a72d
--- /dev/null
@@ -0,0 +1,53 @@
+/* adapter_binary.h - definition for the Binary type
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_BINARY_H
+#define PSYCOPG_BINARY_H 1
+
+#include <Python.h>
+#include <libpq-fe.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern PyTypeObject binaryType;
+
+typedef struct {
+    PyObject HEAD;
+
+    PyObject *wrapped;
+    PyObject *buffer;
+    PyObject *conn;
+} binaryObject;
+
+/* functions exported to psycopgmodule.c */
+    
+extern PyObject *psyco_Binary(PyObject *module, PyObject *args);
+#define psyco_Binary_doc \
+    "Binary(buffer) -> new binary object\n\n" \
+    "Build an object capable to hold a bynary string value."
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !defined(PSYCOPG_BINARY_H) */
diff --git a/trunk/psycopg2/psycopg/adapter_datetime.c b/trunk/psycopg2/psycopg/adapter_datetime.c
new file mode 100644 (file)
index 0000000..6409cef
--- /dev/null
@@ -0,0 +1,461 @@
+/* adapter_datetime.c - python date/time objects
+ *
+ * Copyright (C) 2004 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Python.h>
+#include <structmember.h>
+#include <stringobject.h>
+#include <datetime.h>
+
+#include <time.h>
+#include <string.h>
+
+#define PSYCOPG_MODULE
+#include "psycopg/config.h"
+#include "psycopg/python.h"
+#include "psycopg/psycopg.h"
+#include "psycopg/adapter_datetime.h"
+#include "psycopg/microprotocols_proto.h"
+
+
+/* the pointer to the datetime module API is initialized by the module init
+   code, we just need to grab it */
+extern PyObject* pyDateTimeModuleP;
+extern PyObject *pyDateTypeP;
+extern PyObject *pyTimeTypeP;
+extern PyObject *pyDateTimeTypeP;
+extern PyObject *pyDeltaTypeP;
+
+extern PyObject *pyPsycopgTzModule;
+extern PyObject *pyPsycopgTzLOCAL;
+
+/* datetime_str, datetime_getquoted - return result of quoting */
+
+static PyObject *
+pydatetime_str(pydatetimeObject *self)
+{
+    if (self->type <= PSYCO_DATETIME_TIMESTAMP) {
+        PyObject *res = NULL;
+        PyObject *iso = PyObject_CallMethod(self->wrapped, "isoformat", NULL);
+        if (iso) {
+            res = PyString_FromFormat("'%s'", PyString_AsString(iso));
+            Py_DECREF(iso);
+        }
+        return res;
+    }
+    else {
+        PyDateTime_Delta *obj = (PyDateTime_Delta*)self->wrapped;
+        
+        char buffer[8];
+        int i;
+        int a = obj->microseconds;
+        
+        for (i=0; i < 6 ; i++) {
+            buffer[5-i] = '0' + (a % 10);
+            a /= 10;
+        }
+        buffer[6] = '\0';
+
+        return PyString_FromFormat("'%d days %d.%s seconds'",
+                                   obj->days, obj->seconds, buffer);
+    }
+}
+
+PyObject *
+pydatetime_getquoted(pydatetimeObject *self, PyObject *args)
+{
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+    return pydatetime_str(self);
+}
+
+PyObject *
+pydatetime_conform(pydatetimeObject *self, PyObject *args)
+{
+    PyObject *res, *proto;
+    
+    if (!PyArg_ParseTuple(args, "O", &proto)) return NULL;
+
+    if (proto == (PyObject*)&isqlquoteType)
+        res = (PyObject*)self;
+    else
+        res = Py_None;
+    
+    Py_INCREF(res);
+    return res;
+}
+
+/** the DateTime wrapper object **/
+
+/* object member list */
+
+static struct PyMemberDef pydatetimeObject_members[] = {
+    {"adapted", T_OBJECT, offsetof(pydatetimeObject, wrapped), RO},
+    {"type", T_INT, offsetof(pydatetimeObject, type), RO},
+    {NULL}
+};
+
+/* object method table */
+
+static PyMethodDef pydatetimeObject_methods[] = {
+    {"getquoted", (PyCFunction)pydatetime_getquoted, METH_VARARGS,
+     "getquoted() -> wrapped object value as SQL date/time"},
+    {"__conform__", (PyCFunction)pydatetime_conform, METH_VARARGS, NULL},
+    {NULL}  /* Sentinel */
+};
+
+/* initialization and finalization methods */
+
+static int
+pydatetime_setup(pydatetimeObject *self, PyObject *obj, int type)
+{
+    Dprintf("pydatetime_setup: init datetime object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+
+    self->type = type;
+    self->wrapped = obj;
+    Py_INCREF(self->wrapped);
+    
+    Dprintf("pydatetime_setup: good pydatetime object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+    return 0;
+}
+
+static void
+pydatetime_dealloc(PyObject* obj)
+{
+    pydatetimeObject *self = (pydatetimeObject *)obj;
+
+    Py_XDECREF(self->wrapped);
+    
+    Dprintf("mpydatetime_dealloc: deleted pydatetime object at %p, "
+            "refcnt = %d", obj, obj->ob_refcnt);
+    
+    obj->ob_type->tp_free(obj);
+}
+
+static int
+pydatetime_init(PyObject *obj, PyObject *args, PyObject *kwds)
+{
+    PyObject *dt;
+    int type = -1; /* raise an error if type was not passed! */
+    
+    if (!PyArg_ParseTuple(args, "O|i", &dt, &type))
+        return -1;
+
+    return pydatetime_setup((pydatetimeObject *)obj, dt, type);
+}
+
+static PyObject *
+pydatetime_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+{    
+    return type->tp_alloc(type, 0);
+}
+
+static void
+pydatetime_del(PyObject* self)
+{
+    PyObject_Del(self);
+}
+
+static PyObject *
+pydatetime_repr(pydatetimeObject *self)
+{
+    return PyString_FromFormat("<psycopg2._psycopg.datetime object at %p>",
+                                self);
+}
+
+/* object type */
+
+#define pydatetimeType_doc \
+"datetime(datetime, type) -> new datetime wrapper object"
+
+PyTypeObject pydatetimeType = {
+    PyObject_HEAD_INIT(NULL)
+    0,
+    "psycopg2._psycopg.datetime",
+    sizeof(pydatetimeObject),
+    0,
+    pydatetime_dealloc, /*tp_dealloc*/
+    0,          /*tp_print*/
+    0,          /*tp_getattr*/
+    0,          /*tp_setattr*/   
+
+    0,          /*tp_compare*/
+    (reprfunc)pydatetime_repr, /*tp_repr*/
+    0,          /*tp_as_number*/
+    0,          /*tp_as_sequence*/
+    0,          /*tp_as_mapping*/
+    0,          /*tp_hash */
+
+    0,          /*tp_call*/
+    (reprfunc)pydatetime_str, /*tp_str*/
+    0,          /*tp_getattro*/
+    0,          /*tp_setattro*/
+    0,          /*tp_as_buffer*/
+
+    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+
+    pydatetimeType_doc, /*tp_doc*/
+    
+    0,          /*tp_traverse*/
+    0,          /*tp_clear*/
+
+    0,          /*tp_richcompare*/
+    0,          /*tp_weaklistoffset*/
+
+    0,          /*tp_iter*/
+    0,          /*tp_iternext*/
+
+    /* Attribute descriptor and subclassing stuff */
+
+    pydatetimeObject_methods, /*tp_methods*/
+    pydatetimeObject_members, /*tp_members*/
+    0,          /*tp_getset*/
+    0,          /*tp_base*/
+    0,          /*tp_dict*/
+    
+    0,          /*tp_descr_get*/
+    0,          /*tp_descr_set*/
+    0,          /*tp_dictoffset*/
+    
+    pydatetime_init, /*tp_init*/
+    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
+    pydatetime_new, /*tp_new*/
+    (freefunc)pydatetime_del, /*tp_free  Low-level free-memory routine */
+    0,          /*tp_is_gc For PyObject_IS_GC */
+    0,          /*tp_bases*/
+    0,          /*tp_mro method resolution order */
+    0,          /*tp_cache*/
+    0,          /*tp_subclasses*/
+    0           /*tp_weaklist*/
+};
+
+
+/** module-level functions **/
+
+#ifdef PSYCOPG_DEFAULT_PYDATETIME
+
+PyObject *
+psyco_Date(PyObject *self, PyObject *args) 
+{
+       PyObject *res = NULL;
+       int year, month, day;
+
+    PyObject* obj = NULL;
+    
+       if (!PyArg_ParseTuple(args, "iii", &year, &month, &day))
+           return NULL;
+
+    obj = PyObject_CallFunction(pyDateTypeP, "iii", year, month, day);
+
+    if (obj) {
+        res = PyObject_CallFunction((PyObject *)&pydatetimeType,
+                                    "Oi", obj, PSYCO_DATETIME_DATE);
+        Py_DECREF(obj);
+    }
+
+    return res;
+}
+
+PyObject *
+psyco_Time(PyObject *self, PyObject *args) 
+{
+       PyObject *res = NULL;
+    PyObject *tzinfo = NULL;
+    int hours, minutes=0;
+       double micro, seconds=0.0;
+    
+    PyObject* obj = NULL;
+
+    if (!PyArg_ParseTuple(args, "iid|O", &hours, &minutes, &seconds,
+                          &tzinfo))
+           return NULL;
+
+    micro = (seconds - floor(seconds)) * 1000000.0;
+    
+    if (tzinfo == NULL)
+       obj = PyObject_CallFunction(pyTimeTypeP, "iiii",
+            hours, minutes, (int)round(seconds), (int)round(micro));
+    else
+       obj = PyObject_CallFunction(pyTimeTypeP, "iiiiO",
+            hours, minutes, (int)round(seconds), (int)round(micro), tzinfo);
+    
+    if (obj) {
+        res = PyObject_CallFunction((PyObject *)&pydatetimeType,
+                                    "Oi", obj, PSYCO_DATETIME_TIME);
+        Py_DECREF(obj);
+    }
+
+    return res;
+}
+
+PyObject *
+psyco_Timestamp(PyObject *self, PyObject *args) 
+{
+       PyObject *res = NULL;
+    PyObject *tzinfo = NULL;
+    int year, month, day;
+       int hour=0, minute=0; /* default to midnight */
+       double micro, second=0.0;
+
+    PyObject* obj = NULL;
+    
+    if (!PyArg_ParseTuple(args, "lii|iidO", &year, &month, &day,
+                          &hour, &minute, &second, &tzinfo))
+           return NULL;
+
+    micro = (second - floor(second)) * 1000000.0;
+    
+    if (tzinfo == NULL)
+        obj = PyObject_CallFunction(pyDateTimeTypeP, "iiiiiii",
+            year, month, day, hour, minute, (int)round(second),
+            (int)round(micro));
+    else
+        obj = PyObject_CallFunction(pyDateTimeTypeP, "iiiiiiiO",
+            year, month, day, hour, minute, (int)round(second),
+            (int)round(micro), tzinfo);
+    
+    if (obj) {
+        res = PyObject_CallFunction((PyObject *)&pydatetimeType,
+                                    "Oi", obj, PSYCO_DATETIME_TIMESTAMP);
+        Py_DECREF(obj);
+    }
+    
+    return res;
+}
+
+PyObject *
+psyco_DateFromTicks(PyObject *self, PyObject *args)
+{
+    PyObject *res = NULL;
+    struct tm tm;
+    time_t t;
+    double ticks;
+
+    if (!PyArg_ParseTuple(args, "d", &ticks))
+        return NULL;
+
+    t = (time_t)round(ticks);
+    if (localtime_r(&t, &tm)) {
+        args = Py_BuildValue("iii", tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday);
+        if (args) {
+            res = psyco_Date(self, args);
+            Py_DECREF(args);
+        }
+    }    
+    return res; 
+}
+
+PyObject *
+psyco_TimeFromTicks(PyObject *self, PyObject *args)
+{
+    PyObject *res = NULL;
+    struct tm tm;
+    time_t t;
+    double ticks;
+
+    if (!PyArg_ParseTuple(args,"d", &ticks))
+        return NULL;
+
+    t = (time_t)round(ticks);
+    if (localtime_r(&t, &tm)) {
+        args = Py_BuildValue("iid", tm.tm_hour, tm.tm_min, (double)tm.tm_sec);
+        if (args) {
+            res = psyco_Time(self, args);
+            Py_DECREF(args);
+        }
+    } 
+    return res; 
+}
+
+PyObject *
+psyco_TimestampFromTicks(PyObject *self, PyObject *args)
+{
+    PyObject *res = NULL;
+    struct tm tm;
+    time_t t;
+    double ticks;
+
+    if (!PyArg_ParseTuple(args,"d", &ticks))
+        return NULL;
+    
+    t = (time_t)round(ticks);
+    if (localtime_r(&t, &tm)) {
+        args = Py_BuildValue("iiiiidO",
+                             tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday,
+                             tm.tm_hour, tm.tm_min, (double)tm.tm_sec,
+                             pyPsycopgTzLOCAL);
+        if (args) {
+            res = psyco_Timestamp(self, args);
+            Py_DECREF(args);
+        }
+    } 
+    return res; 
+}
+
+#endif
+
+PyObject *
+psyco_DateFromPy(PyObject *self, PyObject *args)
+{
+    PyObject *obj;
+
+    if (!PyArg_ParseTuple(args, "O!", pyDateTypeP, &obj))
+        return NULL;
+    
+    return PyObject_CallFunction((PyObject *)&pydatetimeType, "Oi", obj,
+                                 PSYCO_DATETIME_DATE);
+}
+
+PyObject *
+psyco_TimeFromPy(PyObject *self, PyObject *args)
+{
+    PyObject *obj;
+
+    if (!PyArg_ParseTuple(args, "O!", pyTimeTypeP, &obj))
+        return NULL;
+    
+    return PyObject_CallFunction((PyObject *)&pydatetimeType, "Oi", obj,
+                                 PSYCO_DATETIME_TIME);
+}
+
+PyObject *
+psyco_TimestampFromPy(PyObject *self, PyObject *args)
+{
+    PyObject *obj;
+
+    if (!PyArg_ParseTuple(args, "O!", pyDateTimeTypeP, &obj))
+        return NULL;
+    
+    return PyObject_CallFunction((PyObject *)&pydatetimeType, "Oi", obj,
+                                 PSYCO_DATETIME_TIMESTAMP);
+}
+
+PyObject *
+psyco_IntervalFromPy(PyObject *self, PyObject *args)
+{
+    PyObject *obj;
+
+    if (!PyArg_ParseTuple(args, "O!", pyDeltaTypeP, &obj))
+        return NULL;
+    
+    return PyObject_CallFunction((PyObject *)&pydatetimeType, "Oi", obj,
+                                 PSYCO_DATETIME_INTERVAL);
+}
diff --git a/trunk/psycopg2/psycopg/adapter_datetime.h b/trunk/psycopg2/psycopg/adapter_datetime.h
new file mode 100644 (file)
index 0000000..a32bb8d
--- /dev/null
@@ -0,0 +1,107 @@
+/* adapter_datetime.h - definition for the python date/time types
+ *
+ * Copyright (C) 2004 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_DATETIME_H
+#define PSYCOPG_DATETIME_H 1
+
+#include <Python.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern PyTypeObject pydatetimeType;
+
+typedef struct {
+    PyObject HEAD;
+
+    PyObject *wrapped;
+    int       type;
+#define       PSYCO_DATETIME_TIME       0
+#define       PSYCO_DATETIME_DATE       1
+#define       PSYCO_DATETIME_TIMESTAMP  2
+#define       PSYCO_DATETIME_INTERVAL   3    
+    
+} pydatetimeObject;
+    
+    
+/* functions exported to psycopgmodule.c */
+#ifdef PSYCOPG_DEFAULT_PYDATETIME
+    
+extern PyObject *psyco_Date(PyObject *module, PyObject *args);
+#define psyco_Date_doc \
+    "Date(year, month, day) -> new date\n\n" \
+    "Build an object holding a date value."
+
+extern PyObject *psyco_Time(PyObject *module, PyObject *args);
+#define psyco_Time_doc \
+    "Time(hour, minutes, seconds, tzinfo=None) -> new time\n\n" \
+    "Build an object holding a time value."
+
+extern PyObject *psyco_Timestamp(PyObject *module, PyObject *args);
+#define psyco_Timestamp_doc \
+    "Timestamp(year, month, day, hour, minutes, seconds, tzinfo=None) -> new timestamp\n\n" \
+    "Build an object holding a timestamp value."
+
+extern PyObject *psyco_DateFromTicks(PyObject *module, PyObject *args);
+#define psyco_DateFromTicks_doc \
+    "DateFromTicks(ticks) -> new date\n\n" \
+    "Build an object holding a date value from the given ticks value.\n\n" \
+    "Ticks are the number of seconds since the epoch; see the documentation " \
+    "of the standard Python time module for details)."
+
+extern PyObject *psyco_TimeFromTicks(PyObject *module, PyObject *args);
+#define psyco_TimeFromTicks_doc \
+    "TimeFromTicks(ticks) -> new time\n\n" \
+    "Build an object holding a time value from the given ticks value.\n\n" \
+    "Ticks are the number of seconds since the epoch; see the documentation " \
+    "of the standard Python time module for details)."
+
+extern PyObject *psyco_TimestampFromTicks(PyObject *module, PyObject *args);
+#define psyco_TimestampFromTicks_doc \
+    "TimestampFromTicks(ticks) -> new timestamp\n\n" \
+    "Build an object holding a timestamp value from the given ticks value.\n\n" \
+    "Ticks are the number of seconds since the epoch; see the documentation " \
+    "of the standard Python time module for details)."
+
+#endif /* PSYCOPG_DEFAULT_PYDATETIME */
+
+extern PyObject *psyco_DateFromPy(PyObject *module, PyObject *args);
+#define psyco_DateFromPy_doc \
+    "DateFromPy(datetime.date) -> new wrapper"
+
+extern PyObject *psyco_TimeFromPy(PyObject *module, PyObject *args);
+#define psyco_TimeFromPy_doc \
+    "TimeFromPy(datetime.time) -> new wrapper"
+
+extern PyObject *psyco_TimestampFromPy(PyObject *module, PyObject *args);
+#define psyco_TimestampFromPy_doc \
+    "TimestampFromPy(datetime.datetime) -> new wrapper"
+
+extern PyObject *psyco_IntervalFromPy(PyObject *module, PyObject *args);
+#define psyco_IntervalFromPy_doc \
+    "IntervalFromPy(datetime.timedelta) -> new wrapper"
+    
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !defined(PSYCOPG_DATETIME_H) */
diff --git a/trunk/psycopg2/psycopg/adapter_list.c b/trunk/psycopg2/psycopg/adapter_list.c
new file mode 100644 (file)
index 0000000..29ef116
--- /dev/null
@@ -0,0 +1,297 @@
+/* adapter_list.c - python list objects
+ *
+ * Copyright (C) 2004-2005 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Python.h>
+#include <structmember.h>
+#include <stringobject.h>
+
+#define PSYCOPG_MODULE
+#include "psycopg/config.h"
+#include "psycopg/python.h"
+#include "psycopg/psycopg.h"
+#include "psycopg/adapter_list.h"
+#include "psycopg/microprotocols.h"
+#include "psycopg/microprotocols_proto.h"
+
+
+/* list_str, list_getquoted - return result of quoting */
+
+static PyObject *
+list_quote(listObject *self)
+{
+    /*  adapt the list by calling adapt() recursively and then wrapping
+        everything into "ARRAY[]" */
+    PyObject *tmp = NULL, *str = NULL, *joined = NULL, *res = NULL;
+    int i, len;
+
+    len = PyList_GET_SIZE(self->wrapped);
+    
+    /* empty arrays are converted to NULLs (still searching for a way to
+       insert an empty array in postgresql */
+    if (len == 0) return PyString_FromString("'{}'");
+    
+    tmp = PyTuple_New(len);
+    
+    for (i=0; i<len; i++) {
+        PyObject *quoted =
+            microprotocol_getquoted(PyList_GET_ITEM(self->wrapped, i),
+                                    (connectionObject*)self->connection);
+        if (quoted == NULL) goto error;
+
+        /* here we don't loose a refcnt: SET_ITEM does not change the
+           reference count and we are just transferring ownership of the tmp
+           object to the tuple */
+        PyTuple_SET_ITEM(tmp, i, quoted);
+    }
+
+    /* now that we have a tuple of adapted objects we just need to join them
+       and put "ARRAY[] around the result */
+    str = PyString_FromString(", ");
+    joined = PyObject_CallMethod(str, "join", "(O)", tmp);
+    if (joined == NULL) goto error;
+
+    res = PyString_FromFormat("ARRAY[%s]", PyString_AsString(joined));
+    
+ error:
+    Py_XDECREF(tmp);
+    Py_XDECREF(str);
+    Py_XDECREF(joined);
+    return res;
+}
+
+PyObject *
+list_str(listObject *self, PyObject *args)
+{
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+    return list_quote(self);
+}
+
+PyObject *
+list_getquoted(listObject *self, PyObject *args)
+{
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+    return list_quote(self);
+}
+
+PyObject *
+list_prepare(listObject *self, PyObject *args)
+{
+    connectionObject *conn;
+
+    if (!PyArg_ParseTuple(args, "O", &conn))
+        return NULL;
+
+    /* note that we don't copy the encoding from the connection, but take a
+       reference to it; we'll need it during the recursive adapt() call (the
+       encoding is here for a future expansion that will make .getquoted()
+       work even without a connection to the backend. */
+    Py_XDECREF(self->connection);
+    self->connection = (PyObject*)conn;
+    Py_INCREF(self->connection);
+    
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+PyObject *
+list_conform(listObject *self, PyObject *args)
+{
+    PyObject *res, *proto;
+    
+    if (!PyArg_ParseTuple(args, "O", &proto)) return NULL;
+
+    if (proto == (PyObject*)&isqlquoteType)
+        res = (PyObject*)self;
+    else
+        res = Py_None;
+    
+    Py_INCREF(res);
+    return res;
+}
+
+/** the DateTime wrapper object **/
+
+/* object member list */
+
+static struct PyMemberDef listObject_members[] = {
+    {"adapted", T_OBJECT, offsetof(listObject, wrapped), RO},
+    {NULL}
+};
+
+/* object method table */
+
+static PyMethodDef listObject_methods[] = {
+    {"getquoted", (PyCFunction)list_getquoted, METH_VARARGS,
+     "getquoted() -> wrapped object value as SQL date/time"},
+    {"prepare", (PyCFunction)list_prepare, METH_VARARGS,
+     "prepare(conn) -> set encoding to conn->encoding"},    
+    {"__conform__", (PyCFunction)list_conform, METH_VARARGS, NULL},
+    {NULL}  /* Sentinel */
+};
+
+/* initialization and finalization methods */
+
+static int
+list_setup(listObject *self, PyObject *obj, char *enc)
+{
+    Dprintf("list_setup: init list object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+
+    if (!PyList_Check(obj))
+        return -1;
+
+    /* FIXME: remove this orrible strdup */
+    if (enc) self->encoding = strdup(enc);
+
+    self->connection = NULL;
+    self->wrapped = obj;
+    Py_INCREF(self->wrapped);
+    
+    Dprintf("list_setup: good list object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+    return 0;
+}
+
+static void
+list_dealloc(PyObject* obj)
+{
+    listObject *self = (listObject *)obj;
+
+    Py_XDECREF(self->wrapped);
+    Py_XDECREF(self->connection);
+    if (self->encoding) free(self->encoding);
+    
+    Dprintf("list_dealloc: deleted list object at %p, "
+            "refcnt = %d", obj, obj->ob_refcnt);
+    
+    obj->ob_type->tp_free(obj);
+}
+
+static int
+list_init(PyObject *obj, PyObject *args, PyObject *kwds)
+{
+    PyObject *l;
+    char *enc = "latin-1"; /* default encoding as in Python */
+    
+    if (!PyArg_ParseTuple(args, "O|s", &l, &enc))
+        return -1;
+
+    return list_setup((listObject *)obj, l, enc);
+}
+
+static PyObject *
+list_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+{    
+    return type->tp_alloc(type, 0);
+}
+
+static void
+list_del(PyObject* self)
+{
+    PyObject_Del(self);
+}
+
+static PyObject *
+list_repr(listObject *self)
+{
+    return PyString_FromFormat("<psycopg2._psycopg.List object at %p>", self);
+}
+
+/* object type */
+
+#define listType_doc \
+"List(list) -> new list wrapper object"
+
+PyTypeObject listType = {
+    PyObject_HEAD_INIT(NULL)
+    0,
+    "psycopg2._psycopg.List",
+    sizeof(listObject),
+    0,
+    list_dealloc, /*tp_dealloc*/
+    0,          /*tp_print*/
+    0,          /*tp_getattr*/
+    0,          /*tp_setattr*/   
+
+    0,          /*tp_compare*/
+    (reprfunc)list_repr, /*tp_repr*/
+    0,          /*tp_as_number*/
+    0,          /*tp_as_sequence*/
+    0,          /*tp_as_mapping*/
+    0,          /*tp_hash */
+
+    0,          /*tp_call*/
+    (reprfunc)list_str, /*tp_str*/
+    0,          /*tp_getattro*/
+    0,          /*tp_setattro*/
+    0,          /*tp_as_buffer*/
+
+    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+
+    listType_doc, /*tp_doc*/
+    
+    0,          /*tp_traverse*/
+    0,          /*tp_clear*/
+
+    0,          /*tp_richcompare*/
+    0,          /*tp_weaklistoffset*/
+
+    0,          /*tp_iter*/
+    0,          /*tp_iternext*/
+
+    /* Attribute descriptor and subclassing stuff */
+
+    listObject_methods, /*tp_methods*/
+    listObject_members, /*tp_members*/
+    0,          /*tp_getset*/
+    0,          /*tp_base*/
+    0,          /*tp_dict*/
+    
+    0,          /*tp_descr_get*/
+    0,          /*tp_descr_set*/
+    0,          /*tp_dictoffset*/
+    
+    list_init, /*tp_init*/
+    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
+    list_new, /*tp_new*/
+    (freefunc)list_del, /*tp_free  Low-level free-memory routine */
+    0,          /*tp_is_gc For PyObject_IS_GC */
+    0,          /*tp_bases*/
+    0,          /*tp_mro method resolution order */
+    0,          /*tp_cache*/
+    0,          /*tp_subclasses*/
+    0           /*tp_weaklist*/
+};
+
+
+/** module-level functions **/
+
+PyObject *
+psyco_List(PyObject *module, PyObject *args)
+{
+    PyObject *str;
+    char *enc = "latin-1"; /* default encoding as in Python */
+    
+    if (!PyArg_ParseTuple(args, "O|s", &str, &enc))
+        return NULL;
+  
+    return PyObject_CallFunction((PyObject *)&listType, "Os", str, enc);
+}
diff --git a/trunk/psycopg2/psycopg/adapter_list.h b/trunk/psycopg2/psycopg/adapter_list.h
new file mode 100644 (file)
index 0000000..71b4286
--- /dev/null
@@ -0,0 +1,49 @@
+/* adapter_list.h - definition for the python list types
+ *
+ * Copyright (C) 2004-2005 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_LIST_H
+#define PSYCOPG_LIST_H 1
+
+#include <Python.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern PyTypeObject listType;
+
+typedef struct {
+    PyObject HEAD;
+
+    PyObject *wrapped;
+    PyObject *connection;
+    char     *encoding;
+} listObject;
+
+extern PyObject *psyco_List(PyObject *module, PyObject *args);
+#define psyco_List_doc \
+    "List(list, enc) -> new quoted list"
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !defined(PSYCOPG_LIST_H) */
diff --git a/trunk/psycopg2/psycopg/adapter_mxdatetime.c b/trunk/psycopg2/psycopg/adapter_mxdatetime.c
new file mode 100644 (file)
index 0000000..3b23148
--- /dev/null
@@ -0,0 +1,446 @@
+/* adapter_mxdatetime.c - mx date/time objects
+ *
+ * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Python.h>
+#include <structmember.h>
+#include <stringobject.h>
+#include <mxDateTime.h>
+#include <string.h>
+
+#define PSYCOPG_MODULE
+#include "psycopg/config.h"
+#include "psycopg/python.h"
+#include "psycopg/psycopg.h"
+#include "psycopg/adapter_mxdatetime.h"
+#include "psycopg/microprotocols_proto.h"
+
+/* the pointer to the mxDateTime API is initialized by the module init code,
+   we just need to grab it */
+extern mxDateTimeModule_APIObject *mxDateTimeP;
+
+
+/* mxdatetime_str, mxdatetime_getquoted - return result of quoting */
+
+static PyObject *
+mxdatetime_str(mxdatetimeObject *self)
+{
+    PyObject *str = NULL, *res = NULL;
+    
+    switch (self->type) {
+
+    case PSYCO_MXDATETIME_DATE:
+    case PSYCO_MXDATETIME_TIMESTAMP:
+        str = PyObject_Str(self->wrapped);
+        
+        /* given the limitation of the mx.DateTime module that uses the same
+           type for both date and timestamp values we need to do some black
+           magic and make sure we're not using an adapt()ed timestamp as a
+           simple date */
+        if (strncmp(&(PyString_AsString(str)[11]), "00:00:00.000", 12) == 0) {
+            PyObject *tmp = 
+                PyString_FromStringAndSize(PyString_AsString(str), 10);
+            Py_DECREF(str);
+            str = tmp; 
+        }
+        break;
+
+    case PSYCO_MXDATETIME_TIME:
+    case PSYCO_MXDATETIME_INTERVAL:
+        str = PyObject_Str(self->wrapped);
+
+        /* given the limitation of the mx.DateTime module that uses the same
+           type for both time and delta values we need to do some black magic
+           and make sure we're not using an adapt()ed interval as a simple
+           time */                    
+        if (PyString_Size(str) > 8 && PyString_AsString(str)[8] == ':') {
+            mxDateTimeDeltaObject *obj = (mxDateTimeDeltaObject*)self->wrapped;
+        
+            char buffer[8];
+            int i, j, x;
+            
+            double ss = obj->hour*3600.0 + obj->minute*60.0 + obj->second;
+            int us = (int)((ss - floor(ss))*1000000);
+                
+            for (i=1000000, j=0; i > 0 ; i /= 10) {
+                x = us/i;
+                us -= x*i;
+                buffer[j++] = '0'+x;
+            }
+            buffer[j] = '\0';
+            
+            res = PyString_FromFormat("'%ld days %d.%s seconds'",
+                obj->day, (int)round(ss), buffer);
+        }
+        break;
+    }
+
+    if (str != NULL && res == NULL) {
+        res = PyString_FromFormat("'%s'", PyString_AsString(str));
+    }
+    Py_XDECREF(str);   
+
+    return res;
+}
+
+PyObject *
+mxdatetime_getquoted(mxdatetimeObject *self, PyObject *args)
+{
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+    return mxdatetime_str(self);
+}
+
+PyObject *
+mxdatetime_conform(mxdatetimeObject *self, PyObject *args)
+{
+    PyObject *res, *proto;
+    
+    if (!PyArg_ParseTuple(args, "O", &proto)) return NULL;
+
+    if (proto == (PyObject*)&isqlquoteType)
+        res = (PyObject*)self;
+    else
+        res = Py_None;
+    
+    Py_INCREF(res);
+    return res;
+}
+
+/** the MxDateTime object **/
+
+/* object member list */
+
+static struct PyMemberDef mxdatetimeObject_members[] = {
+    {"adapted", T_OBJECT, offsetof(mxdatetimeObject, wrapped), RO},
+    {"type", T_INT, offsetof(mxdatetimeObject, type), RO},
+    {NULL}
+};
+
+/* object method table */
+
+static PyMethodDef mxdatetimeObject_methods[] = {
+    {"getquoted", (PyCFunction)mxdatetime_getquoted, METH_VARARGS,
+     "getquoted() -> wrapped object value as SQL date/time"},
+    {"__conform__", (PyCFunction)mxdatetime_conform, METH_VARARGS, NULL},
+    {NULL}  /* Sentinel */
+};
+
+/* initialization and finalization methods */
+
+static int
+mxdatetime_setup(mxdatetimeObject *self, PyObject *obj, int type)
+{
+    Dprintf("mxdatetime_setup: init mxdatetime object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+
+    self->type = type;
+    self->wrapped = obj;
+    Py_INCREF(self->wrapped);
+    
+    Dprintf("mxdatetime_setup: good mxdatetime object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+    return 0;
+}
+
+static void
+mxdatetime_dealloc(PyObject* obj)
+{
+    mxdatetimeObject *self = (mxdatetimeObject *)obj;
+
+    Py_XDECREF(self->wrapped);
+    
+    Dprintf("mxdatetime_dealloc: deleted mxdatetime object at %p, refcnt = %d",
+            obj, obj->ob_refcnt);
+    
+    obj->ob_type->tp_free(obj);
+}
+
+static int
+mxdatetime_init(PyObject *obj, PyObject *args, PyObject *kwds)
+{
+    PyObject *mx;
+    int type = -1; /* raise an error if type was not passed! */
+    
+    if (!PyArg_ParseTuple(args, "O|i", &mx, &type))
+        return -1;
+
+    return mxdatetime_setup((mxdatetimeObject *)obj, mx, type);
+}
+
+static PyObject *
+mxdatetime_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+{    
+    return type->tp_alloc(type, 0);
+}
+
+static void
+mxdatetime_del(PyObject* self)
+{
+    PyObject_Del(self);
+}
+
+static PyObject *
+mxdatetime_repr(mxdatetimeObject *self)
+{
+    return PyString_FromFormat("<psycopg2._psycopg.MxDateTime object at %p>",
+                                self);
+}
+
+/* object type */
+
+#define mxdatetimeType_doc \
+"MxDateTime(mx, type) -> new mx.DateTime wrapper object"
+
+PyTypeObject mxdatetimeType = {
+    PyObject_HEAD_INIT(NULL)
+    0,
+    "psycopg2._psycopg.MxDateTime",
+    sizeof(mxdatetimeObject),
+    0,
+    mxdatetime_dealloc, /*tp_dealloc*/
+    0,          /*tp_print*/
+    0,          /*tp_getattr*/
+    0,          /*tp_setattr*/   
+
+    0,          /*tp_compare*/
+    (reprfunc)mxdatetime_repr, /*tp_repr*/
+    0,          /*tp_as_number*/
+    0,          /*tp_as_sequence*/
+    0,          /*tp_as_mapping*/
+    0,          /*tp_hash */
+
+    0,          /*tp_call*/
+    (reprfunc)mxdatetime_str, /*tp_str*/
+    0,          /*tp_getattro*/
+    0,          /*tp_setattro*/
+    0,          /*tp_as_buffer*/
+
+    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+
+    mxdatetimeType_doc, /*tp_doc*/
+    
+    0,          /*tp_traverse*/
+    0,          /*tp_clear*/
+
+    0,          /*tp_richcompare*/
+    0,          /*tp_weaklistoffset*/
+
+    0,          /*tp_iter*/
+    0,          /*tp_iternext*/
+
+    /* Attribute descriptor and subclassing stuff */
+
+    mxdatetimeObject_methods, /*tp_methods*/
+    mxdatetimeObject_members, /*tp_members*/
+    0,          /*tp_getset*/
+    0,          /*tp_base*/
+    0,          /*tp_dict*/
+    
+    0,          /*tp_descr_get*/
+    0,          /*tp_descr_set*/
+    0,          /*tp_dictoffset*/
+    
+    mxdatetime_init, /*tp_init*/
+    PyType_GenericAlloc, /*tp_alloc*/
+    mxdatetime_new, /*tp_new*/
+    (freefunc)mxdatetime_del, /*tp_free  Low-level free-memory routine */
+    0,          /*tp_is_gc For PyObject_IS_GC */
+    0,          /*tp_bases*/
+    0,          /*tp_mro method resolution order */
+    0,          /*tp_cache*/
+    0,          /*tp_subclasses*/
+    0           /*tp_weaklist*/
+};
+
+
+/** module-level functions **/
+
+#ifdef PSYCOPG_DEFAULT_MXDATETIME
+
+PyObject *
+psyco_Date(PyObject *self, PyObject *args) 
+{
+       PyObject *res, *mx;
+       int year, month, day;
+       
+       if (!PyArg_ParseTuple(args, "iii", &year, &month, &day))
+           return NULL;
+                                        
+       mx = mxDateTimeP->DateTime_FromDateAndTime(year, month, day, 0, 0, 0.0);
+    if (mx == NULL) return NULL;
+
+    res = PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
+                                PSYCO_MXDATETIME_DATE);
+    Py_DECREF(mx);
+    return res;
+}
+
+PyObject *
+psyco_Time(PyObject *self, PyObject *args) 
+{
+       PyObject *res, *mx;
+    int hours, minutes=0;
+       double seconds=0.0;
+
+    if (!PyArg_ParseTuple(args, "iid", &hours, &minutes, &seconds))
+           return NULL;
+                                        
+       mx = mxDateTimeP->DateTimeDelta_FromTime(hours, minutes, seconds);
+    if (mx == NULL) return NULL;
+
+    res = PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
+                                PSYCO_MXDATETIME_TIME);
+    Py_DECREF(mx);
+    return res;    
+}
+
+PyObject *
+psyco_Timestamp(PyObject *self, PyObject *args) 
+{
+       PyObject *res, *mx;
+    int year, month, day;
+       int hour=0, minute=0; /* default to midnight */
+       double second=0.0;
+    
+    if (!PyArg_ParseTuple(args, "lii|iid", &year, &month, &day,
+                          &hour, &minute, &second))
+           return NULL;
+
+    mx = mxDateTimeP->DateTime_FromDateAndTime(year, month, day,
+                                               hour, minute, second);
+    if (mx == NULL) return NULL;
+
+    res = PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
+                                PSYCO_MXDATETIME_TIMESTAMP);
+    Py_DECREF(mx);
+    return res;     
+}
+
+PyObject *
+psyco_DateFromTicks(PyObject *self, PyObject *args)
+{
+    PyObject *res, *mx;
+    double ticks;
+
+    if (!PyArg_ParseTuple(args,"d", &ticks))
+        return NULL;
+                                        
+    if (!(mx = mxDateTimeP->DateTime_FromTicks(ticks)))
+        return NULL;
+    
+    res = PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
+                                PSYCO_MXDATETIME_DATE);
+    Py_DECREF(mx);
+    return res; 
+}
+
+PyObject *
+psyco_TimeFromTicks(PyObject *self, PyObject *args)
+{
+    PyObject *res, *mx, *dt;
+    double ticks;
+
+    if (!PyArg_ParseTuple(args,"d", &ticks))
+        return NULL;
+                                        
+    if (!(dt = mxDateTimeP->DateTime_FromTicks(ticks)))
+        return NULL;
+
+    if (!(mx = mxDateTimeP->DateTimeDelta_FromDaysAndSeconds(
+            0, ((mxDateTimeObject*)dt)->abstime)))
+    {
+        Py_DECREF(dt);
+        return NULL;
+    }
+
+    Py_DECREF(dt);
+    res = PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
+                                PSYCO_MXDATETIME_TIME);
+    Py_DECREF(mx);
+    return res; 
+}
+
+PyObject *
+psyco_TimestampFromTicks(PyObject *self, PyObject *args)
+{
+    PyObject *mx, *res;
+    double ticks;
+
+    if (!PyArg_ParseTuple(args, "d", &ticks))
+        return NULL;
+                                        
+    if (!(mx = mxDateTimeP->DateTime_FromTicks(ticks)))
+        return NULL;
+
+    res = PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
+                                 PSYCO_MXDATETIME_TIMESTAMP);
+    Py_DECREF(mx);
+    return res; 
+}
+
+#endif
+
+PyObject *
+psyco_DateFromMx(PyObject *self, PyObject *args)
+{
+    PyObject *mx;
+
+    if (!PyArg_ParseTuple(args, "O!", mxDateTimeP->DateTime_Type, &mx))
+        return NULL;
+    
+    return PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
+                                 PSYCO_MXDATETIME_DATE);
+}
+
+PyObject *
+psyco_TimeFromMx(PyObject *self, PyObject *args)
+{
+    PyObject *mx;
+
+    if (!PyArg_ParseTuple(args, "O!", mxDateTimeP->DateTimeDelta_Type, &mx))
+        return NULL;
+    
+    return PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
+                                 PSYCO_MXDATETIME_TIME);
+}
+
+PyObject *
+psyco_TimestampFromMx(PyObject *self, PyObject *args)
+{
+    PyObject *mx;
+
+    if (!PyArg_ParseTuple(args, "O!", mxDateTimeP->DateTime_Type, &mx))
+        return NULL;
+    
+    return PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
+                                 PSYCO_MXDATETIME_TIMESTAMP);
+}
+
+PyObject *
+psyco_IntervalFromMx(PyObject *self, PyObject *args)
+{
+    PyObject *mx;
+
+    if (!PyArg_ParseTuple(args, "O!", mxDateTimeP->DateTime_Type, &mx))
+        return NULL;
+    
+    return PyObject_CallFunction((PyObject *)&mxdatetimeType, "Oi", mx,
+                                 PSYCO_MXDATETIME_INTERVAL);
+}
diff --git a/trunk/psycopg2/psycopg/adapter_mxdatetime.h b/trunk/psycopg2/psycopg/adapter_mxdatetime.h
new file mode 100644 (file)
index 0000000..c485707
--- /dev/null
@@ -0,0 +1,94 @@
+/* adapter_mxdatetime.h - definition for the mx date/time types
+ *
+ * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_MXDATETIME_H
+#define PSYCOPG_MXDATETIME_H 1
+
+#include <Python.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern PyTypeObject mxdatetimeType;
+
+typedef struct {
+    PyObject HEAD;
+
+    PyObject *wrapped;
+    int       type;
+#define       PSYCO_MXDATETIME_TIME       0
+#define       PSYCO_MXDATETIME_DATE       1
+#define       PSYCO_MXDATETIME_TIMESTAMP  2
+#define       PSYCO_MXDATETIME_INTERVAL   3   
+    
+} mxdatetimeObject;
+    
+/* functions exported to psycopgmodule.c */
+#ifdef PSYCOPG_DEFAULT_MXDATETIME
+    
+extern PyObject *psyco_Date(PyObject *module, PyObject *args);
+#define psyco_Date_doc \
+    "Date(year, month, day) -> new date"
+
+extern PyObject *psyco_Time(PyObject *module, PyObject *args);
+#define psyco_Time_doc \
+    "Time(hour, minutes, seconds) -> new time"
+
+extern PyObject *psyco_Timestamp(PyObject *module, PyObject *args);
+#define psyco_Timestamp_doc \
+    "Time(year, month, day, hour, minutes, seconds) -> new timestamp"
+    
+extern PyObject *psyco_DateFromTicks(PyObject *module, PyObject *args);
+#define psyco_DateFromTicks_doc \
+    "DateFromTicks(ticks) -> new date"
+
+extern PyObject *psyco_TimeFromTicks(PyObject *module, PyObject *args);
+#define psyco_TimeFromTicks_doc \
+    "TimeFromTicks(ticks) -> new time"
+
+extern PyObject *psyco_TimestampFromTicks(PyObject *module, PyObject *args);
+#define psyco_TimestampFromTicks_doc \
+    "TimestampFromTicks(ticks) -> new timestamp"
+
+#endif /* PSYCOPG_DEFAULT_MXDATETIME */
+
+extern PyObject *psyco_DateFromMx(PyObject *module, PyObject *args);
+#define psyco_DateFromMx_doc \
+    "DateFromMx(mx) -> new date"
+
+extern PyObject *psyco_TimeFromMx(PyObject *module, PyObject *args);
+#define psyco_TimeFromMx_doc \
+    "TimeFromMx(mx) -> new time"
+
+extern PyObject *psyco_TimestampFromMx(PyObject *module, PyObject *args);
+#define psyco_TimestampFromMx_doc \
+    "TimestampFromMx(mx) -> new timestamp"
+
+extern PyObject *psyco_IntervalFromMx(PyObject *module, PyObject *args);
+#define psyco_IntervalFromMx_doc \
+    "IntervalFromMx(mx) -> new interval"
+    
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !defined(PSYCOPG_MXDATETIME_H) */
diff --git a/trunk/psycopg2/psycopg/adapter_pboolean.c b/trunk/psycopg2/psycopg/adapter_pboolean.c
new file mode 100644 (file)
index 0000000..fa70ad0
--- /dev/null
@@ -0,0 +1,238 @@
+/* adapter_pboolean.c - psycopg boolean type wrapper implementation
+ *
+ * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Python.h>
+#include <structmember.h>
+#include <stringobject.h>
+#include <string.h>
+
+#define PSYCOPG_MODULE
+#include "psycopg/config.h"
+#include "psycopg/python.h"
+#include "psycopg/psycopg.h"
+#include "psycopg/adapter_pboolean.h"
+#include "psycopg/microprotocols_proto.h"
+
+
+/** the Boolean object **/
+
+static PyObject *
+pboolean_str(pbooleanObject *self)
+{
+#ifdef PSYCOPG_NEW_BOOLEAN
+    if (PyObject_IsTrue(self->wrapped)) {
+        return PyString_FromString("true");
+    }
+    else {
+        return PyString_FromString("false");
+    }
+#else
+    if (PyObject_IsTrue(self->wrapped)) {
+        return PyString_FromString("'t'");
+    }
+    else {
+        return PyString_FromString("'f'");
+    }
+#endif
+}
+
+PyObject *
+pboolean_getquoted(pbooleanObject *self, PyObject *args)
+{
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+    return pboolean_str(self);
+}
+
+PyObject *
+pboolean_conform(pbooleanObject *self, PyObject *args)
+{
+    PyObject *res, *proto;
+    
+    if (!PyArg_ParseTuple(args, "O", &proto)) return NULL;
+
+    if (proto == (PyObject*)&isqlquoteType)
+        res = (PyObject*)self;
+    else
+        res = Py_None;
+    
+    Py_INCREF(res);
+    return res;
+}
+
+/** the Boolean object */
+
+/* object member list */
+
+static struct PyMemberDef pbooleanObject_members[] = {
+    {"adapted", T_OBJECT, offsetof(pbooleanObject, wrapped), RO},
+    {NULL}
+};
+
+/* object method table */
+
+static PyMethodDef pbooleanObject_methods[] = {
+    {"getquoted", (PyCFunction)pboolean_getquoted, METH_VARARGS,
+     "getquoted() -> wrapped object value as SQL-quoted string"},
+    {"__conform__", (PyCFunction)pboolean_conform, METH_VARARGS, NULL},
+    {NULL}  /* Sentinel */
+};
+
+/* initialization and finalization methods */
+
+static int
+pboolean_setup(pbooleanObject *self, PyObject *obj)
+{
+    Dprintf("pboolean_setup: init pboolean object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+
+    self->wrapped = obj;
+    Py_INCREF(self->wrapped);
+    
+    Dprintf("pboolean_setup: good pboolean object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+    return 0;
+}
+
+static void
+pboolean_dealloc(PyObject* obj)
+{
+    pbooleanObject *self = (pbooleanObject *)obj;
+
+    Py_XDECREF(self->wrapped);
+    
+    Dprintf("pboolean_dealloc: deleted pboolean object at %p, refcnt = %d",
+            obj, obj->ob_refcnt);
+    
+    obj->ob_type->tp_free(obj);
+}
+
+static int
+pboolean_init(PyObject *obj, PyObject *args, PyObject *kwds)
+{
+    PyObject *o;
+    
+    if (!PyArg_ParseTuple(args, "O", &o))
+        return -1;
+
+    return pboolean_setup((pbooleanObject *)obj, o);
+}
+
+static PyObject *
+pboolean_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+{    
+    return type->tp_alloc(type, 0);
+}
+
+static void
+pboolean_del(PyObject* self)
+{
+    PyObject_Del(self);
+}
+
+static PyObject *
+pboolean_repr(pbooleanObject *self)
+{
+    return PyString_FromFormat("<psycopg2._psycopg.Boolean object at %p>",
+                                self);
+}
+
+
+/* object type */
+
+#define pbooleanType_doc \
+"Boolean(str) -> new Boolean adapter object"
+
+PyTypeObject pbooleanType = {
+    PyObject_HEAD_INIT(NULL)
+    0,
+    "psycopg2._psycopg.Boolean",
+    sizeof(pbooleanObject),
+    0,
+    pboolean_dealloc, /*tp_dealloc*/
+    0,          /*tp_print*/
+
+    0,          /*tp_getattr*/
+    0,          /*tp_setattr*/ 
+
+    0,          /*tp_compare*/
+
+    (reprfunc)pboolean_repr, /*tp_repr*/
+    0,          /*tp_as_number*/
+    0,          /*tp_as_sequence*/
+    0,          /*tp_as_mapping*/
+    0,          /*tp_hash */
+
+    0,          /*tp_call*/
+    (reprfunc)pboolean_str, /*tp_str*/
+    
+    0,          /*tp_getattro*/
+    0,          /*tp_setattro*/
+    0,          /*tp_as_buffer*/
+
+    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+    pbooleanType_doc, /*tp_doc*/
+    
+    0,          /*tp_traverse*/
+    0,          /*tp_clear*/
+
+    0,          /*tp_richcompare*/
+    0,          /*tp_weaklistoffset*/
+
+    0,          /*tp_iter*/
+    0,          /*tp_iternext*/
+
+    /* Attribute descriptor and subclassing stuff */
+
+    pbooleanObject_methods, /*tp_methods*/
+    pbooleanObject_members, /*tp_members*/
+    0,          /*tp_getset*/
+    0,          /*tp_base*/
+    0,          /*tp_dict*/
+    
+    0,          /*tp_descr_get*/
+    0,          /*tp_descr_set*/
+    0,          /*tp_dictoffset*/
+    
+    pboolean_init, /*tp_init*/
+    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
+    pboolean_new, /*tp_new*/
+    (freefunc)pboolean_del, /*tp_free  Low-level free-memory routine */
+    0,          /*tp_is_gc For PyObject_IS_GC */
+    0,          /*tp_bases*/
+    0,          /*tp_mro method resolution order */
+    0,          /*tp_cache*/
+    0,          /*tp_subclasses*/
+    0           /*tp_weaklist*/
+};
+
+
+/** module-level functions **/
+
+PyObject *
+psyco_Boolean(PyObject *module, PyObject *args)
+{
+    PyObject *obj;
+     
+    if (!PyArg_ParseTuple(args, "O", &obj))
+        return NULL;
+  
+    return PyObject_CallFunction((PyObject *)&pbooleanType, "O", obj);
+}
diff --git a/trunk/psycopg2/psycopg/adapter_pboolean.h b/trunk/psycopg2/psycopg/adapter_pboolean.h
new file mode 100644 (file)
index 0000000..efdfe56
--- /dev/null
@@ -0,0 +1,51 @@
+/* adapter_pboolean.h - definition for the psycopg boolean type wrapper
+ *
+ * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_PBOOLEAN_H
+#define PSYCOPG_PBOOLEAN_H 1
+
+#include <Python.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern PyTypeObject pbooleanType;
+
+typedef struct {
+    PyObject HEAD;
+
+    /* this is the real object we wrap */
+    PyObject *wrapped;
+
+} pbooleanObject;
+
+/* functions exported to psycopgmodule.c */
+    
+extern PyObject *psyco_Boolean(PyObject *module, PyObject *args);
+#define psyco_Boolean_doc \
+    "Boolean(obj) -> new boolean value"
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !defined(PSYCOPG_PBOOLEAN_H) */
diff --git a/trunk/psycopg2/psycopg/adapter_qstring.c b/trunk/psycopg2/psycopg/adapter_qstring.c
new file mode 100644 (file)
index 0000000..2eaf7f3
--- /dev/null
@@ -0,0 +1,393 @@
+/* adapter_qstring.c - QuotedString objects
+ *
+ * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Python.h>
+#include <structmember.h>
+#include <stringobject.h>
+
+#include <libpq-fe.h>
+#include <string.h>
+
+#define PSYCOPG_MODULE
+#include "psycopg/config.h"
+#include "psycopg/python.h"
+#include "psycopg/psycopg.h"
+#include "psycopg/connection.h"
+#include "psycopg/adapter_qstring.h"
+#include "psycopg/microprotocols_proto.h"
+
+
+/** the quoting code */
+
+#ifndef PSYCOPG_OWN_QUOTING
+static size_t
+qstring_escape(char *to, char *from, size_t len, PGconn *conn)
+{
+#if PG_MAJOR_VERSION > 8 || \
+ (PG_MAJOR_VERSION == 8 && PG_MINOR_VERSION > 1) || \
+ (PG_MAJOR_VERSION == 8 && PG_MINOR_VERSION == 1 && PG_PATCH_VERSION >= 4)
+    int err;
+    if (conn)
+        return PQescapeStringConn(conn, to, from, len, &err);
+    else
+#endif
+        return PQescapeString(to, from, len);
+}
+#else
+static size_t
+qstring_escape(char *to, char *from, size_t len, PGconn *conn)
+{
+    int i, j;
+
+    for (i=0, j=0; i<len; i++) {
+        switch(from[i]) {
+
+        case '\'':
+            to[j++] = '\'';
+            to[j++] = '\'';
+            break;
+
+        case '\\':
+            to[j++] = '\\';
+            to[j++] = '\\';
+            break;
+
+        case '\0':
+            /* do nothing, embedded \0 are discarded */
+            break;
+
+        default:
+            to[j++] = from[i];
+        }
+    }
+    to[j] = '\0';
+
+    Dprintf("qstring_quote: to = %s", to);
+    return strlen(to);
+}
+#endif
+
+/* qstring_quote - do the quote process on plain and unicode strings */
+
+static PyObject *
+qstring_quote(qstringObject *self)
+{
+    PyObject *str;
+    char *s, *buffer;
+    int len;
+
+    /* if the wrapped object is an unicode object we can encode it to match
+       self->encoding but if the encoding is not specified we don't know what
+       to do and we raise an exception */
+
+    /* TODO: we need a real translation table from postgres encoding names to
+           python ones here */
+    
+    if (PyUnicode_Check(self->wrapped) && self->encoding) {
+        PyObject *enc = PyDict_GetItemString(psycoEncodings, self->encoding);
+        /* note that pgenc is a borrowed reference */
+
+        if (enc) {
+            char *s = PyString_AsString(enc);
+            Dprintf("qstring_quote: encoding unicode object to %s", s);
+            str = PyUnicode_AsEncodedString(self->wrapped, s, NULL);
+            Dprintf("qstring_quote: got encoded object at %p", str);
+            if (str == NULL) return NULL;
+        }
+        else {
+            /* can't find the right encoder, raise exception */
+            PyErr_Format(InterfaceError,
+                         "can't encode unicode string to %s", self->encoding);
+            return NULL;
+        }
+    }
+
+    /* if the wrapped object is a simple string, we don't know how to
+       (re)encode it, so we pass it as-is */
+    else if (PyString_Check(self->wrapped)) {
+        str = self->wrapped;
+        /* INCREF to make it ref-wise identical to unicode one */
+        Py_INCREF(str);
+    }
+    
+    /* if the wrapped object is not a string, this is an error */ 
+    else {
+        PyErr_SetString(PyExc_TypeError,
+                        "can't quote non-string object (or missing encoding)");
+        return NULL;
+    }
+
+    /* encode the string into buffer */
+    PyString_AsStringAndSize(str, &s, &len);
+        
+    buffer = (char *)PyMem_Malloc((len*2+3) * sizeof(char));
+    if (buffer == NULL) {
+        Py_DECREF(str);
+        PyErr_NoMemory();
+        return NULL;
+    }
+
+    Py_BEGIN_ALLOW_THREADS;
+    len = qstring_escape(buffer+1, s, len,
+        self->conn ? ((connectionObject*)self->conn)->pgconn : NULL);
+    buffer[0] = '\'' ; buffer[len+1] = '\'';
+    Py_END_ALLOW_THREADS;
+    
+    self->buffer = PyString_FromStringAndSize(buffer, len+2);
+    PyMem_Free(buffer);
+    Py_DECREF(str);
+        
+    return self->buffer;
+}
+
+/* qstring_str, qstring_getquoted - return result of quoting */
+
+static PyObject *
+qstring_str(qstringObject *self)
+{
+    if (self->buffer == NULL) {
+        qstring_quote(self);
+    }
+    Py_XINCREF(self->buffer);
+    return self->buffer;
+}
+
+PyObject *
+qstring_getquoted(qstringObject *self, PyObject *args)
+{
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+    return qstring_str(self);
+}
+
+PyObject *
+qstring_prepare(qstringObject *self, PyObject *args)
+{
+    connectionObject *conn;
+
+    if (!PyArg_ParseTuple(args, "O", &conn))
+        return NULL;
+
+    /* we bother copying the encoding only if the wrapped string is unicode,
+       we don't need the encoding if that's not the case */
+    if (PyUnicode_Check(self->wrapped)) {
+        if (self->encoding) free(self->encoding);
+        self->encoding = strdup(conn->encoding);
+        Dprintf("qstring_prepare: set encoding to %s", conn->encoding);
+    }
+
+    Py_XDECREF(self->conn);
+    if (conn) {
+        self->conn = (PyObject*)conn;
+        Py_INCREF(self->conn);
+    }
+
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+    
+PyObject *
+qstring_conform(qstringObject *self, PyObject *args)
+{
+    PyObject *res, *proto;
+    
+    if (!PyArg_ParseTuple(args, "O", &proto)) return NULL;
+
+    if (proto == (PyObject*)&isqlquoteType)
+        res = (PyObject*)self;
+    else
+        res = Py_None;
+    
+    Py_INCREF(res);
+    return res;
+}
+
+/** the QuotedString object **/
+
+/* object member list */
+
+static struct PyMemberDef qstringObject_members[] = {
+    {"adapted", T_OBJECT, offsetof(qstringObject, wrapped), RO},
+    {"buffer", T_OBJECT, offsetof(qstringObject, buffer), RO},
+    {"encoding", T_STRING, offsetof(qstringObject, encoding), RO},
+    {NULL}
+};
+
+/* object method table */
+
+static PyMethodDef qstringObject_methods[] = {
+    {"getquoted", (PyCFunction)qstring_getquoted, METH_VARARGS,
+     "getquoted() -> wrapped object value as SQL-quoted string"},
+    {"prepare", (PyCFunction)qstring_prepare, METH_VARARGS,
+     "prepare(conn) -> set encoding to conn->encoding and store conn"},
+    {"__conform__", (PyCFunction)qstring_conform, METH_VARARGS, NULL},
+    {NULL}  /* Sentinel */
+};
+
+/* initialization and finalization methods */
+
+static int
+qstring_setup(qstringObject *self, PyObject *str, char *enc)
+{
+    Dprintf("qstring_setup: init qstring object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+
+    self->buffer = NULL;
+    self->conn = NULL;
+
+    /* FIXME: remove this orrible strdup */
+    if (enc) self->encoding = strdup(enc);
+    
+    self->wrapped = str;
+    Py_INCREF(self->wrapped);
+    
+    Dprintf("qstring_setup: good qstring object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+    return 0;
+}
+
+static void
+qstring_dealloc(PyObject* obj)
+{
+    qstringObject *self = (qstringObject *)obj;
+
+    Py_XDECREF(self->wrapped);
+    Py_XDECREF(self->buffer);
+    Py_XDECREF(self->conn);
+
+    if (self->encoding) free(self->encoding);
+    
+    Dprintf("qstring_dealloc: deleted qstring object at %p, refcnt = %d",
+            obj, obj->ob_refcnt);
+    
+    obj->ob_type->tp_free(obj);
+}
+
+static int
+qstring_init(PyObject *obj, PyObject *args, PyObject *kwds)
+{
+    PyObject *str;
+    char *enc = "latin-1"; /* default encoding as in Python */
+    
+    if (!PyArg_ParseTuple(args, "O|s", &str, &enc))
+        return -1;
+
+    return qstring_setup((qstringObject *)obj, str, enc);
+}
+
+static PyObject *
+qstring_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+{    
+    return type->tp_alloc(type, 0);
+}
+
+static void
+qstring_del(PyObject* self)
+{
+    PyObject_Del(self);
+}
+
+static PyObject *
+qstring_repr(qstringObject *self)
+{
+    return PyString_FromFormat("<psycopg2._psycopg.QuotedString object at %p>", 
+                                self);
+}
+
+/* object type */
+
+#define qstringType_doc \
+"QuotedString(str, enc) -> new quoted object with 'enc' encoding"
+
+PyTypeObject qstringType = {
+    PyObject_HEAD_INIT(NULL)
+    0,
+    "psycopg2._psycopg.QuotedString",
+    sizeof(qstringObject),
+    0,
+    qstring_dealloc, /*tp_dealloc*/
+    0,          /*tp_print*/
+    0,          /*tp_getattr*/
+    0,          /*tp_setattr*/   
+
+    0,          /*tp_compare*/
+    (reprfunc)qstring_repr, /*tp_repr*/
+    0,          /*tp_as_number*/
+    0,          /*tp_as_sequence*/
+    0,          /*tp_as_mapping*/
+    0,          /*tp_hash */
+
+    0,          /*tp_call*/
+    (reprfunc)qstring_str, /*tp_str*/
+    0,          /*tp_getattro*/
+    0,          /*tp_setattro*/
+    0,          /*tp_as_buffer*/
+
+    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+
+    qstringType_doc, /*tp_doc*/
+    
+    0,          /*tp_traverse*/
+    0,          /*tp_clear*/
+
+    0,          /*tp_richcompare*/
+    0,          /*tp_weaklistoffset*/
+
+    0,          /*tp_iter*/
+    0,          /*tp_iternext*/
+
+    /* Attribute descriptor and subclassing stuff */
+
+    qstringObject_methods, /*tp_methods*/
+    qstringObject_members, /*tp_members*/
+    0,          /*tp_getset*/
+    0,          /*tp_base*/
+    0,          /*tp_dict*/
+    
+    0,          /*tp_descr_get*/
+    0,          /*tp_descr_set*/
+    0,          /*tp_dictoffset*/
+    
+    qstring_init, /*tp_init*/
+    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
+    qstring_new, /*tp_new*/
+    (freefunc)qstring_del, /*tp_free  Low-level free-memory routine */
+    0,          /*tp_is_gc For PyObject_IS_GC */
+    0,          /*tp_bases*/
+    0,          /*tp_mro method resolution order */
+    0,          /*tp_cache*/
+    0,          /*tp_subclasses*/
+    0           /*tp_weaklist*/
+};
+
+
+/** module-level functions **/
+
+PyObject *
+psyco_QuotedString(PyObject *module, PyObject *args)
+{
+    PyObject *str;
+    char *enc = "latin-1"; /* default encoding as in Python */
+    
+    if (!PyArg_ParseTuple(args, "O|s", &str, &enc))
+        return NULL;
+  
+    return PyObject_CallFunction((PyObject *)&qstringType, "Os", str, enc);
+}
diff --git a/trunk/psycopg2/psycopg/adapter_qstring.h b/trunk/psycopg2/psycopg/adapter_qstring.h
new file mode 100644 (file)
index 0000000..544b32b
--- /dev/null
@@ -0,0 +1,53 @@
+/* adapter_qstring.h - definition for the QuotedString type
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_QSTRING_H
+#define PSYCOPG_QSTRING_H 1
+
+#include <Python.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern PyTypeObject qstringType;
+
+typedef struct {
+    PyObject HEAD;
+
+    PyObject *wrapped;
+    PyObject *buffer;
+    char     *encoding;
+
+    PyObject *conn;
+} qstringObject;
+    
+/* functions exported to psycopgmodule.c */
+    
+extern PyObject *psyco_QuotedString(PyObject *module, PyObject *args);
+#define psyco_QuotedString_doc \
+    "QuotedString(str, enc) -> new quoted string"
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !defined(PSYCOPG_QSTRING_H) */
diff --git a/trunk/psycopg2/psycopg/config.h b/trunk/psycopg2/psycopg/config.h
new file mode 100644 (file)
index 0000000..649fee8
--- /dev/null
@@ -0,0 +1,118 @@
+/* config.h - general config and Dprintf macro
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_CONFIG_H
+#define PSYCOPG_CONFIG_H 1
+
+/* debug printf-like function */
+#if defined( __GNUC__) && !defined(__APPLE__)
+#ifdef PSYCOPG_DEBUG
+#include <sys/types.h>
+#include <unistd.h>
+#define Dprintf(fmt, args...) \
+    fprintf(stderr, "[%d] " fmt "\n", getpid() , ## args)
+#else
+#define Dprintf(fmt, args...)
+#endif
+#else /* !__GNUC__ or __APPLE__ */
+#ifdef PSYCOPG_DEBUG
+#include <stdarg.h>
+static void Dprintf(const char *fmt, ...)
+{
+    va_list ap;
+    va_start(ap, fmt);
+    vprintf(fmt, ap);
+    va_end(ap);
+    printf("\n");
+}
+#else
+static void Dprintf(const char *fmt, ...) {}
+#endif
+#endif
+
+/* pthreads work-arounds for mutilated operating systems */
+#if defined(_WIN32) || defined(__BEOS__)
+
+#ifdef _WIN32
+#include <winsock2.h>
+#define pthread_mutex_t HANDLE
+#define pthread_condvar_t HANDLE
+#define pthread_mutex_lock(object) WaitForSingleObject(object, INFINITE)
+#define pthread_mutex_unlock(object) ReleaseMutex(object)
+#define pthread_mutex_destroy(ref) (CloseHandle(*(ref)))
+/* convert pthread mutex to native mutex */
+static int pthread_mutex_init(pthread_mutex_t *mutex, void* fake)
+{
+  *mutex = CreateMutex(NULL, FALSE, NULL);
+  return 0;
+}
+#endif /* _WIN32 */
+
+#ifdef __BEOS__
+#include <OS.h>
+#define pthread_mutex_t sem_id
+#define pthread_mutex_lock(object) acquire_sem(object)
+#define pthread_mutex_unlock(object) release_sem(object)
+#define pthread_mutex_destroy(ref) delete_sem(*ref)
+static int pthread_mutex_init(pthread_mutex_t *mutex, void* fake)
+{
+        *mutex = create_sem(1, "psycopg_mutex");
+        if (*mutex < B_OK)
+                return *mutex;
+        return 0;
+}
+#endif /* __BEOS__ */
+
+#else /* pthread is available */
+#include <pthread.h>
+#endif
+
+/* to work around the fact that Windows does not have a gmtime_r function, or
+   a proper gmtime function */
+#ifdef _WIN32
+static struct tm *gmtime_r(time_t *t, struct tm *tm)
+{
+  tm = gmtime(t);
+  return tm;
+}
+static struct tm *localtime_r(time_t *t, struct tm *tm)
+{
+  tm = localtime(t);
+  return tm;
+}
+/* remove the inline keyword, since it doesn't work unless C++ file */
+#define inline
+#endif
+
+#if defined(__FreeBSD__) || defined(_WIN32) || defined(__sun__)
+/* what's this, we have no round function either? */
+static double round(double num)
+{
+  return (num >= 0) ? floor(num + 0.5) : ceil(num - 0.5);
+}
+#endif
+
+/* postgresql < 7.4 does not have PQfreemem */
+#ifndef HAVE_PQFREEMEM
+#define PQfreemem free
+#endif
+
+#endif /* !defined(PSYCOPG_CONFIG_H) */
diff --git a/trunk/psycopg2/psycopg/connection.h b/trunk/psycopg2/psycopg/connection.h
new file mode 100644 (file)
index 0000000..7010120
--- /dev/null
@@ -0,0 +1,97 @@
+/* connection.h - definition for the psycopg connection type
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_CONNECTION_H
+#define PSYCOPG_CONNECTION_H 1
+
+#include <Python.h>
+#include <libpq-fe.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* connection status */
+#define CONN_STATUS_READY 1
+#define CONN_STATUS_BEGIN 2
+#define CONN_STATUS_SYNC  3
+#define CONN_STATUS_ASYNC 4
+    
+extern PyTypeObject connectionType;
+
+typedef struct {
+    PyObject HEAD;
+
+    pthread_mutex_t lock;   /* the global connection lock */
+
+    char *dsn;              /* data source name */
+    char *critical;         /* critical error on this connection */
+    char *encoding;         /* current backend encoding */
+    
+    long int closed;          /* 2 means connection has been closed */
+    long int isolation_level; /* isolation level for this connection */
+    long int mark;            /* number of commits/rollbacks done so far */ 
+    int status;               /* status of the connection */
+    int protocol;             /* protocol version */
+    
+    PGconn *pgconn;         /* the postgresql connection */
+
+    PyObject *async_cursor;
+    
+    /* notice processing */
+    PyObject *notice_list;
+    PyObject *notice_filter;
+
+    /* notifies */
+    PyObject *notifies;
+
+    /* errors (DBAPI-2.0 extension) */
+    PyObject *exc_Error;
+    PyObject *exc_Warning;
+    PyObject *exc_InterfaceError;
+    PyObject *exc_DatabaseError;
+    PyObject *exc_InternalError;
+    PyObject *exc_OperationalError;
+    PyObject *exc_ProgrammingError;
+    PyObject *exc_IntegrityError;
+    PyObject *exc_DataError;
+    PyObject *exc_NotSupportedError;
+    
+} connectionObject;
+    
+/* C-callable functions in connection_int.c and connection_ext.c */
+extern int  conn_connect(connectionObject *self);
+extern void conn_close(connectionObject *self);
+extern int  conn_commit(connectionObject *self);
+extern int  conn_rollback(connectionObject *self);
+extern int  conn_switch_isolation_level(connectionObject *self, int level);
+extern int  conn_set_client_encoding(connectionObject *self, char *enc); 
+
+/* exception-raising macros */
+#define EXC_IF_CONN_CLOSED(self) if ((self)->closed > 0) { \
+    PyErr_SetString(InterfaceError, "connection already closed"); \
+    return NULL; }
+    
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !defined(PSYCOPG_CONNECTION_H) */
diff --git a/trunk/psycopg2/psycopg/connection_int.c b/trunk/psycopg2/psycopg/connection_int.c
new file mode 100644 (file)
index 0000000..3e61ddf
--- /dev/null
@@ -0,0 +1,303 @@
+/* connection_int.c - code used by the connection object
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Python.h>
+#include <string.h>
+
+#define PSYCOPG_MODULE
+#include "psycopg/config.h"
+#include "psycopg/psycopg.h"
+#include "psycopg/connection.h"
+#include "psycopg/cursor.h"
+#include "psycopg/pqpath.h"
+
+/* conn_notice_callback - process notices */
+
+void
+conn_notice_callback(void *args, const char *message)
+{
+    connectionObject *self = (connectionObject *)args;
+
+    Dprintf("conn_notice_callback: %s", message);
+
+    /* unfortunately the old protocl return COPY FROM errors only as notices,
+       so we need to filter them looking for such errors */
+    if (strncmp(message, "ERROR", 5) == 0)
+        pq_set_critical(self, message);
+    else
+        PyList_Append(self->notice_list, PyString_FromString(message));
+}
+
+/* conn_connect - execute a connection to the dataabase */
+
+int
+conn_connect(connectionObject *self)
+{
+    PGconn *pgconn;
+    PGresult *pgres;
+    char *data, *tmp;
+    int i;
+    
+    /* we need the initial date style to be ISO, for typecasters; if the user
+       later change it, she must know what she's doing... */
+    const char *datestyle = "SET DATESTYLE TO 'ISO'";
+    const char *encoding  = "SHOW client_encoding";
+    const char *isolevel  = "SHOW default_transaction_isolation";
+    
+    const char *lvl1a = "read uncommitted";
+    const char *lvl1b = "read committed";
+    const char *lvl2a = "repeatable read";
+    const char *lvl2b = "serializable";
+    
+    Py_BEGIN_ALLOW_THREADS;
+    pgconn = PQconnectdb(self->dsn);
+    Py_END_ALLOW_THREADS;
+    
+    Dprintf("conn_connect: new postgresql connection at %p", pgconn);
+
+    if (pgconn == NULL)
+    {
+        Dprintf("conn_connect: PQconnectdb(%s) FAILED", self->dsn);
+        PyErr_SetString(OperationalError, "PQconnectdb() failed");
+        return -1;
+    }
+    else if (PQstatus(pgconn) == CONNECTION_BAD)
+    {
+        Dprintf("conn_connect: PQconnectdb(%s) returned BAD", self->dsn);
+        PyErr_SetString(OperationalError, PQerrorMessage(pgconn));
+        PQfinish(pgconn);
+        return -1;
+    }
+
+    PQsetNoticeProcessor(pgconn, conn_notice_callback, (void*)self);
+
+    Py_BEGIN_ALLOW_THREADS;
+    pgres = PQexec(pgconn, datestyle);
+    Py_END_ALLOW_THREADS;
+
+    if (pgres == NULL || PQresultStatus(pgres) != PGRES_COMMAND_OK ) {
+        PyErr_SetString(OperationalError, "can't set datestyle to ISO");
+        PQfinish(pgconn);
+        IFCLEARPGRES(pgres);
+        return -1;
+    }
+    CLEARPGRES(pgres);
+
+    Py_BEGIN_ALLOW_THREADS;
+    pgres = PQexec(pgconn, encoding);
+    Py_END_ALLOW_THREADS;
+
+    if (pgres == NULL || PQresultStatus(pgres) != PGRES_TUPLES_OK) {
+        PyErr_SetString(OperationalError, "can't fetch client_encoding");
+        PQfinish(pgconn);
+        IFCLEARPGRES(pgres);
+        return -1;
+    }
+    tmp = PQgetvalue(pgres, 0, 0);
+    self->encoding = PyMem_Malloc(strlen(tmp)+1);
+    if (self->encoding == NULL) {
+        /* exception already set by PyMem_Malloc() */
+        PQfinish(pgconn);
+        IFCLEARPGRES(pgres);
+        return -1;
+    }  
+    for (i=0 ; i < strlen(tmp) ; i++)
+        self->encoding[i] = toupper(tmp[i]);
+    self->encoding[i] = '\0';
+    CLEARPGRES(pgres);
+    
+    Py_BEGIN_ALLOW_THREADS;
+    pgres = PQexec(pgconn, isolevel);
+    Py_END_ALLOW_THREADS;
+
+    if (pgres == NULL || PQresultStatus(pgres) != PGRES_TUPLES_OK) {
+        PyErr_SetString(OperationalError,
+                         "can't fetch default_isolation_level");
+        PQfinish(pgconn);
+        IFCLEARPGRES(pgres);
+        return -1;
+    }
+    data = PQgetvalue(pgres, 0, 0);
+    if ((strncmp(lvl1a, data, strlen(lvl1a)) == 0)
+        || (strncmp(lvl1b, data, strlen(lvl1b)) == 0))
+        self->isolation_level = 1;
+    else if ((strncmp(lvl2a, data, strlen(lvl2a)) == 0)
+        || (strncmp(lvl2b, data, strlen(lvl2b)) == 0))
+        self->isolation_level = 2;
+    else
+        self->isolation_level = 2;
+    CLEARPGRES(pgres);
+
+    if (PQsetnonblocking(pgconn, 1) != 0) {
+        Dprintf("conn_connect: PQsetnonblocking() FAILED");
+        PyErr_SetString(OperationalError, "PQsetnonblocking() failed");
+        PQfinish(pgconn);
+        return -1;
+    }
+
+#ifdef HAVE_PQPROTOCOL3
+    self->protocol = PQprotocolVersion(pgconn);
+#else
+    self->protocol = 2;
+#endif
+    Dprintf("conn_connect: using protocol %d", self->protocol);
+    
+    self->pgconn = pgconn;
+    return 0;
+}
+
+/* conn_close - do anything needed to shut down the connection */
+
+void
+conn_close(connectionObject *self)
+{
+    /* sets this connection as closed even for other threads; also note that
+       we need to check the value of pgconn, because we get called even when
+       the connection fails! */
+    Py_BEGIN_ALLOW_THREADS;
+    pthread_mutex_lock(&self->lock);
+
+    self->closed = 1;
+
+    /* execute a forced rollback on the connection (but don't check the
+       result, we're going to close the pq connection anyway */    
+    if (self->pgconn) {
+        pq_abort(self);
+        PQfinish(self->pgconn);
+        Dprintf("conn_close: PQfinish called");
+        self->pgconn = NULL;
+    }
+
+    pthread_mutex_unlock(&self->lock);
+    Py_END_ALLOW_THREADS;
+
+}
+
+/* conn_commit - commit on a connection */
+
+int
+conn_commit(connectionObject *self)
+{
+    int res;
+
+    Py_BEGIN_ALLOW_THREADS;
+    pthread_mutex_lock(&self->lock);
+
+    res = pq_commit(self);
+    self->mark++;
+    
+    pthread_mutex_unlock(&self->lock);
+    Py_END_ALLOW_THREADS;
+
+    return res;
+}
+
+/* conn_rollback - rollback a connection */
+
+int
+conn_rollback(connectionObject *self)
+{
+    int res;
+
+    Py_BEGIN_ALLOW_THREADS;
+    pthread_mutex_lock(&self->lock);
+
+    res = pq_abort(self);
+    self->mark++;
+    
+    pthread_mutex_unlock(&self->lock);
+    Py_END_ALLOW_THREADS;
+
+    return res;
+}
+
+/* conn_switch_isolation_level - switch isolation level on the connection */
+
+int
+conn_switch_isolation_level(connectionObject *self, int level)
+{
+    int res = 0;
+
+    Py_BEGIN_ALLOW_THREADS;
+    pthread_mutex_lock(&self->lock);
+    
+    /* if the current isolation level is > 0 we need to abort the current
+       transaction before changing; that all folks! */
+    if (self->isolation_level != level && self->isolation_level > 0) {
+        res = pq_abort(self);
+    }
+    self->isolation_level = level;
+    self->mark++;
+    
+    Dprintf("conn_switch_isolation_level: switched to level %d", level);
+    
+    pthread_mutex_unlock(&self->lock);
+    Py_END_ALLOW_THREADS;
+
+    return res;   
+}
+
+/* conn_set_client_encoding - switch client encoding on connection */
+
+int
+conn_set_client_encoding(connectionObject *self, char *enc)
+{
+    PGresult *pgres;
+    char query[48];
+    int res = 0;
+    
+    /* TODO: check for async query here and raise error if necessary */
+    
+    Py_BEGIN_ALLOW_THREADS;
+    pthread_mutex_lock(&self->lock);
+    
+    /* set encoding, no encoding string is longer than 24 bytes */
+    PyOS_snprintf(query, 47, "SET client_encoding = '%s'", enc);
+
+    /* abort the current transaction, to set the encoding ouside of
+       transactions */
+    res = pq_abort(self);
+
+    if (res == 0) {
+        pgres = PQexec(self->pgconn, query);
+
+        if (pgres == NULL || PQresultStatus(pgres) != PGRES_COMMAND_OK ) {
+            res = -1;
+        }
+        else {
+            /* no error, we can proceeed and store the new encoding */
+            if (self->encoding) free(self->encoding);
+            self->encoding = strdup(enc);
+        }
+
+        IFCLEARPGRES(pgres);
+    }
+    
+    Dprintf("conn_set_client_encoding: set encoding to %s", self->encoding);
+    
+    pthread_mutex_unlock(&self->lock);
+    Py_END_ALLOW_THREADS;
+
+    if (res == -1)
+        PyErr_Format(OperationalError, "can't set encoding to %s", enc);
+        
+    return res;   
+}
diff --git a/trunk/psycopg2/psycopg/connection_type.c b/trunk/psycopg2/psycopg/connection_type.c
new file mode 100644 (file)
index 0000000..f8cbd80
--- /dev/null
@@ -0,0 +1,422 @@
+/* connection_type.c - python interface to connection objects
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Python.h>
+#include <structmember.h>
+#include <stringobject.h>
+
+#include <string.h>
+
+#define PSYCOPG_MODULE
+#include "psycopg/config.h"
+#include "psycopg/python.h"
+#include "psycopg/psycopg.h"
+#include "psycopg/connection.h"
+#include "psycopg/cursor.h"
+
+/** DBAPI methods **/
+
+/* cursor method - allocate a new cursor */
+
+#define psyco_conn_cursor_doc \
+"cursor(cursor_factory=extensions.cursor) -- new cursor\n\n"                \
+"Return a new cursor.\n\nThe ``cursor_factory`` argument can be used to\n"  \
+"create non-standard cursors by passing a class different from the\n"       \
+"default. Note that the new class *should* be a sub-class of\n"             \
+"`extensions.cursor`.\n\n"                                                  \
+":rtype: `extensions.cursor`"
+
+static PyObject *
+psyco_conn_cursor(connectionObject *self, PyObject *args, PyObject *keywds)
+{
+    char *name = NULL;
+    PyObject *obj, *factory = NULL;
+
+    static char *kwlist[] = {"name", "cursor_factory", NULL};
+    
+    if (!PyArg_ParseTupleAndKeywords(args, keywds, "|sO", kwlist,
+                                     &name, &factory)) {
+        return NULL;
+    }
+
+    EXC_IF_CONN_CLOSED(self);
+
+    Dprintf("psyco_conn_cursor: new cursor for connection at %p", self);
+    Dprintf("psyco_conn_cursor:     parameters: name = %s", name);
+    
+    if (factory == NULL) factory = (PyObject *)&cursorType;
+    if (name)
+        obj = PyObject_CallFunction(factory, "Os", self, name);    
+    else
+        obj = PyObject_CallFunction(factory, "O", self);
+
+    if (obj == NULL) return NULL;
+    if (PyObject_IsInstance(obj, (PyObject *)&cursorType) == 0) {
+        PyErr_SetString(PyExc_TypeError,
+            "cursor factory must be subclass of psycopg2._psycopg.cursor");
+        Py_DECREF(obj);
+        return NULL;
+    }
+    
+    Dprintf("psyco_conn_cursor: new cursor at %p: refcnt = %d",
+            obj, obj->ob_refcnt);
+    return obj;
+}
+
+
+/* close method - close the connection and all related cursors */
+
+#define psyco_conn_close_doc "close() -- Close the connection."
+
+static PyObject *
+psyco_conn_close(connectionObject *self, PyObject *args)
+{
+    EXC_IF_CONN_CLOSED(self);
+
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+                                     
+    Dprintf("psyco_conn_close: closing connection at %p", self);
+    conn_close(self);
+    Dprintf("psyco_conn_close: connection at %p closed", self);
+
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+/* commit method - commit all changes to the database */
+
+#define psyco_conn_commit_doc "commit() -- Commit all changes to database."
+
+static PyObject *
+psyco_conn_commit(connectionObject *self, PyObject *args)
+{
+    EXC_IF_CONN_CLOSED(self);
+
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+
+    /* FIXME: check return status? */
+    conn_commit(self);
+
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+/* rollback method - roll back all changes done to the database */
+
+#define psyco_conn_rollback_doc \
+"rollback() -- Roll back all changes done to database."
+
+static PyObject *
+psyco_conn_rollback(connectionObject *self, PyObject *args)
+{
+    EXC_IF_CONN_CLOSED(self);
+
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+
+    /* FIXME: check return status? */
+    conn_rollback(self);
+
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+#ifdef PSYCOPG_EXTENSIONS
+/* set_isolation_level method - switch connection isolation level */
+
+#define psyco_conn_set_isolation_level_doc \
+"set_isolation_level(level) -- Switch isolation level to ``level``."
+
+static PyObject *
+psyco_conn_set_isolation_level(connectionObject *self, PyObject *args)
+{
+    int level = 1;
+    
+    EXC_IF_CONN_CLOSED(self);
+
+    if (!PyArg_ParseTuple(args, "i", &level)) return NULL;
+
+    if (level < 0 || level > 2) {
+        PyErr_SetString(PyExc_ValueError,
+                        "isolation level out of bounds (0,3)");
+        return NULL;
+    }
+    
+    /* FIXME: check return status? */
+    conn_switch_isolation_level(self, level);
+
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+\f
+
+/* set_isolation_level method - switch connection isolation level */
+
+#define psyco_conn_set_client_encoding_doc \
+"set_client_encoding(encoding) -- Set client encoding to ``encoding``."
+
+static PyObject *
+psyco_conn_set_client_encoding(connectionObject *self, PyObject *args)
+{
+    char *enc = NULL;
+    
+    EXC_IF_CONN_CLOSED(self);
+
+    if (!PyArg_ParseTuple(args, "s", &enc)) return NULL;
+    
+    if (conn_set_client_encoding(self, enc) == 0) {
+        Py_INCREF(Py_None);
+        return Py_None;
+    }
+    else {
+        return NULL;
+    }
+}
+#endif
+
+
+/** the connection object **/
+
+
+/* object method list */
+
+static struct PyMethodDef connectionObject_methods[] = {
+    {"cursor", (PyCFunction)psyco_conn_cursor,
+     METH_VARARGS|METH_KEYWORDS, psyco_conn_cursor_doc},
+    {"close", (PyCFunction)psyco_conn_close,
+     METH_VARARGS, psyco_conn_close_doc},
+    {"commit", (PyCFunction)psyco_conn_commit,
+     METH_VARARGS, psyco_conn_commit_doc},
+    {"rollback", (PyCFunction)psyco_conn_rollback,
+     METH_VARARGS, psyco_conn_rollback_doc},
+#ifdef PSYCOPG_EXTENSIONS
+    {"set_isolation_level", (PyCFunction)psyco_conn_set_isolation_level,
+     METH_VARARGS, psyco_conn_set_isolation_level_doc},
+    {"set_client_encoding", (PyCFunction)psyco_conn_set_client_encoding,
+     METH_VARARGS, psyco_conn_set_client_encoding_doc},    
+#endif    
+    {NULL}
+};
+
+/* object member list */
+
+static struct PyMemberDef connectionObject_members[] = {
+    /* DBAPI-2.0 extensions (exception objects) */
+    {"Error", T_OBJECT, 
+        offsetof(connectionObject, exc_Error), RO, Error_doc},
+    {"Warning", 
+        T_OBJECT, offsetof(connectionObject, exc_Warning), RO, Warning_doc},
+    {"InterfaceError", T_OBJECT,
+        offsetof(connectionObject, exc_InterfaceError), RO,
+        InterfaceError_doc},
+    {"DatabaseError", T_OBJECT,
+        offsetof(connectionObject, exc_DatabaseError), RO, DatabaseError_doc},
+    {"InternalError", T_OBJECT,
+        offsetof(connectionObject, exc_InternalError), RO, InternalError_doc},
+    {"OperationalError", T_OBJECT,
+        offsetof(connectionObject, exc_OperationalError), RO,
+        OperationalError_doc},
+    {"ProgrammingError", T_OBJECT,
+        offsetof(connectionObject, exc_ProgrammingError), RO,
+        ProgrammingError_doc},
+    {"IntegrityError", T_OBJECT,
+        offsetof(connectionObject, exc_IntegrityError), RO,
+        IntegrityError_doc},
+    {"DataError", T_OBJECT,
+        offsetof(connectionObject, exc_DataError), RO, DataError_doc},
+    {"NotSupportedError", T_OBJECT,
+        offsetof(connectionObject, exc_NotSupportedError), RO,
+        NotSupportedError_doc},
+#ifdef PSYCOPG_EXTENSIONS    
+    {"closed", T_LONG, offsetof(connectionObject, closed), RO,
+        "True if the connection is closed."},
+    {"isolation_level", T_LONG,
+        offsetof(connectionObject, isolation_level), RO,
+        "The current isolation level."},
+    {"encoding", T_STRING, offsetof(connectionObject, encoding), RO,
+        "The current client encoding."},
+    {"notices", T_OBJECT, offsetof(connectionObject, notice_list), RO},
+    {"notifies", T_OBJECT, offsetof(connectionObject, notifies), RO},
+    {"dsn", T_STRING, offsetof(connectionObject, dsn), RO,
+        "The current connection string."},
+    {"status", T_LONG,
+        offsetof(connectionObject, status), RO,
+       "The current transaction status."},
+#endif    
+    {NULL}
+};
+
+/* initialization and finalization methods */
+
+static int
+connection_setup(connectionObject *self, char *dsn)
+{
+    Dprintf("connection_setup: init connection object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+    
+    self->dsn = strdup(dsn);
+    self->notice_list = PyList_New(0);
+    self->notifies = PyList_New(0);
+    self->closed = 0;
+    self->status = CONN_STATUS_READY;
+    self->critical = NULL;
+    self->async_cursor = NULL;
+    self->pgconn = NULL;
+    self->mark = 0;
+    
+    pthread_mutex_init(&(self->lock), NULL);
+    if (conn_connect(self) != 0) {
+        pthread_mutex_destroy(&(self->lock));
+        Dprintf("connection_init: FAILED");
+        return -1;
+    }
+    Dprintf("connection_setup: good connection object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+    return 0;
+}
+
+static void
+connection_dealloc(PyObject* obj)
+{
+    connectionObject *self = (connectionObject *)obj;
+
+    if (self->closed == 0) conn_close(self);
+    
+    if (self->dsn) free(self->dsn);
+    if (self->encoding) PyMem_Free(self->encoding);
+    if (self->critical) free(self->critical);
+    
+    Py_XDECREF(self->notice_list);
+    Py_XDECREF(self->notifies);
+    Py_XDECREF(self->async_cursor);
+    
+    pthread_mutex_destroy(&(self->lock));
+
+    Dprintf("connection_dealloc: deleted connection object at %p, refcnt = %d",
+            obj, obj->ob_refcnt);
+
+    obj->ob_type->tp_free(obj);
+}
+
+static int
+connection_init(PyObject *obj, PyObject *args, PyObject *kwds)
+{
+    char *dsn;
+
+    if (!PyArg_ParseTuple(args, "s", &dsn))
+        return -1;
+
+    return connection_setup((connectionObject *)obj, dsn);
+}
+
+static PyObject *
+connection_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+{
+    return type->tp_alloc(type, 0);
+}
+
+static void
+connection_del(PyObject* self)
+{
+    PyObject_Del(self);
+}
+
+static PyObject *
+connection_repr(connectionObject *self)
+{
+    return PyString_FromFormat(
+        "<connection object at %p; dsn: '%s', closed: %ld>",
+        self, self->dsn, self->closed);
+}
+
+
+/* object type */
+
+#define connectionType_doc \
+"connection(dsn, ...) -> new connection object\n\n" \
+":Groups:\n" \
+"  * `DBAPI-2.0 errors`: Error, Warning, InterfaceError,\n" \
+"    DatabaseError, InternalError, OperationalError,\n" \
+"    ProgrammingError, IntegrityError, DataError, NotSupportedError"
+
+PyTypeObject connectionType = {
+    PyObject_HEAD_INIT(NULL)
+    0,
+    "psycopg2._psycopg.connection",
+    sizeof(connectionObject),
+    0,
+    connection_dealloc, /*tp_dealloc*/
+    0,          /*tp_print*/ 
+    0,          /*tp_getattr*/
+    0,          /*tp_setattr*/
+    0,          /*tp_compare*/
+    (reprfunc)connection_repr, /*tp_repr*/
+    0,          /*tp_as_number*/
+    0,          /*tp_as_sequence*/
+    0,          /*tp_as_mapping*/
+    0,          /*tp_hash */
+
+    0,          /*tp_call*/
+    (reprfunc)connection_repr, /*tp_str*/
+    0,          /*tp_getattro*/
+    0,          /*tp_setattro*/
+    0,          /*tp_as_buffer*/
+
+    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+    connectionType_doc, /*tp_doc*/
+    
+    0,          /*tp_traverse*/
+    0,          /*tp_clear*/
+
+    0,          /*tp_richcompare*/
+    0,          /*tp_weaklistoffset*/
+
+    0,          /*tp_iter*/
+    0,          /*tp_iternext*/
+
+    /* Attribute descriptor and subclassing stuff */
+
+    connectionObject_methods, /*tp_methods*/
+    connectionObject_members, /*tp_members*/
+    0,          /*tp_getset*/
+    0,          /*tp_base*/
+    0,          /*tp_dict*/
+    
+    0,          /*tp_descr_get*/
+    0,          /*tp_descr_set*/
+    0,          /*tp_dictoffset*/
+    
+    connection_init, /*tp_init*/
+    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
+    connection_new, /*tp_new*/
+    (freefunc)connection_del, /*tp_free  Low-level free-memory routine */
+    0,          /*tp_is_gc For PyObject_IS_GC */
+    0,          /*tp_bases*/
+    0,          /*tp_mro method resolution order */
+    0,          /*tp_cache*/
+    0,          /*tp_subclasses*/
+    0           /*tp_weaklist*/
+};
diff --git a/trunk/psycopg2/psycopg/cursor.h b/trunk/psycopg2/psycopg/cursor.h
new file mode 100644 (file)
index 0000000..5aab172
--- /dev/null
@@ -0,0 +1,103 @@
+/* cursor.h - definition for the psycopg cursor type
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_CURSOR_H
+#define PSYCOPG_CURSOR_H 1
+
+#include <Python.h>
+#include <libpq-fe.h>
+
+#include "psycopg/connection.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern PyTypeObject cursorType;
+
+typedef struct {
+    PyObject HEAD;
+
+    connectionObject *conn; /* connection owning the cursor */
+
+    int closed:1;            /* 1 if the cursor is closed */
+    int notuples:1;          /* 1 if the command was not a SELECT query */
+    int needsfetch:1;        /* 1 if a call to pq_fetch is pending */
+    
+    long int rowcount;       /* number of rows affected by last execute */
+    long int columns;        /* number of columns fetched from the db */
+    long int arraysize;      /* how many rows should fetchmany() return */
+    long int row;            /* the row counter for fetch*() operations */
+    long int mark;           /* transaction marker, copied from conn */
+
+    PyObject *description;   /* read-only attribute: sequence of 7-item
+                                sequences.*/
+
+    /* postgres connection stuff */
+    PGresult   *pgres;     /* result of last query */
+    PyObject   *pgstatus;  /* last message from the server after an execute */
+    Oid         lastoid;   /* last oid from an insert or InvalidOid */
+
+    PyObject *casts;      /* an array (tuple) of typecast functions */
+    PyObject *caster;     /* the current typecaster object */
+    
+    PyObject *copyfile;   /* file-like used during COPY TO/FROM ops */
+    long int  copysize;   /* size of the copy buffer during COPY TO/FROM ops */
+#define DEFAULT_COPYSIZE 16384
+    
+    PyObject *tuple_factory;    /* factory for result tuples */
+    PyObject *tzinfo_factory;   /* factory for tzinfo objects */
+    
+    PyObject *query;      /* last query executed */
+    
+    char *qattr;          /* quoting attr, used when quoting strings */
+    char *notice;         /* a notice from the backend */
+    char *name;           /* this cursor name */
+    
+    PyObject *string_types;   /* a set of typecasters for string types */
+    PyObject *binary_types;   /* a set of typecasters for binary types */
+
+} cursorObject;
+    
+/* C-callable functions in cursor_int.c and cursor_ext.c */
+extern void curs_reset(cursorObject *self);
+    
+/* exception-raising macros */
+#define EXC_IF_CURS_CLOSED(self) \
+if ((self)->closed || ((self)->conn && (self)->conn->closed)) { \
+    PyErr_SetString(InterfaceError, "cursor already closed");   \
+    return NULL; }
+
+#define EXC_IF_NO_TUPLES(self) \
+if ((self)->notuples && (self)->name == NULL) {               \
+    PyErr_SetString(ProgrammingError, "no results to fetch"); \
+    return NULL; }
+    
+#define EXC_IF_NO_MARK(self) \
+if ((self)->mark != (self)->conn->mark) {                                  \
+    PyErr_SetString(ProgrammingError, "named cursor isn't valid anymore"); \
+    return NULL; }
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !defined(PSYCOPG_CURSOR_H) */
diff --git a/trunk/psycopg2/psycopg/cursor_int.c b/trunk/psycopg2/psycopg/cursor_int.c
new file mode 100644 (file)
index 0000000..8036268
--- /dev/null
@@ -0,0 +1,47 @@
+/* cursor_int.c - code used by the cursor object
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Python.h>
+#include <string.h>
+
+#define PSYCOPG_MODULE
+#include "psycopg/config.h"
+#include "psycopg/psycopg.h"
+#include "psycopg/cursor.h"
+#include "psycopg/pqpath.h"
+
+/* curs_reset - reset the cursor to a clean state */
+
+void
+curs_reset(cursorObject *self)
+{
+    /* initialize some variables to default values */
+    self->notuples = 1;
+    self->rowcount = -1;
+    self->row = 0;
+
+    Py_XDECREF(self->description);
+    Py_INCREF(Py_None);
+    self->description = Py_None;
+
+    Py_XDECREF(self->casts);
+    self->casts = NULL;
+}
diff --git a/trunk/psycopg2/psycopg/cursor_type.c b/trunk/psycopg2/psycopg/cursor_type.c
new file mode 100644 (file)
index 0000000..73e4de6
--- /dev/null
@@ -0,0 +1,1553 @@
+/* cursor_type.c - python interface to cursor objects
+ *
+ * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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 Likcense
+ * along with this program; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Python.h>
+#include <structmember.h>
+#include <string.h>
+
+#define PSYCOPG_MODULE
+#include "psycopg/config.h"
+#include "psycopg/python.h"
+#include "psycopg/psycopg.h"
+#include "psycopg/cursor.h"
+#include "psycopg/connection.h"
+#include "psycopg/pqpath.h"
+#include "psycopg/typecast.h"
+#include "psycopg/microprotocols.h"
+#include "psycopg/microprotocols_proto.h"
+#include "pgversion.h"
+
+extern PyObject *pyPsycopgTzFixedOffsetTimezone;
+
+
+/** DBAPI methods **/
+
+/* close method - close the cursor */
+
+#define psyco_curs_close_doc \
+"close() -- Close the cursor."
+
+static PyObject *
+psyco_curs_close(cursorObject *self, PyObject *args)
+{
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+    
+    EXC_IF_CURS_CLOSED(self);
+    
+    if (self->name != NULL) {
+        char buffer[128];
+        
+        EXC_IF_NO_MARK(self);
+        PyOS_snprintf(buffer, 127, "CLOSE %s", self->name);
+        if (pq_execute(self, buffer, 0) == -1) return NULL;
+    }
+
+    self->closed = 1;
+    Dprintf("psyco_curs_close: cursor at %p closed", self);
+
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+/* execute method - executes a query */
+
+/* mogrify a query string and build argument array or dict */
+
+static int
+_mogrify(PyObject *var, PyObject *fmt, connectionObject *conn, PyObject **new)
+{
+    PyObject *key, *value, *n, *item;
+    char *d, *c;
+    int index = 0, force = 0;
+
+    /* from now on we'll use n and replace its value in *new only at the end,
+       just before returning. we also init *new to NULL to exit with an error
+       if we can't complete the mogrification */
+    n = *new = NULL;
+    c = PyString_AsString(fmt);
+
+    while(*c) {
+        /* handle plain percent symbol in format string */
+        if (c[0] == '%' && c[1] == '%') {
+            c+=2; force = 1;
+        }
+        
+        /* if we find '%(' then this is a dictionary, we:
+           1/ find the matching ')' and extract the key name
+           2/ locate the value in the dictionary (or return an error)
+           3/ mogrify the value into something usefull (quoting)...
+           4/ ...and add it to the new dictionary to be used as argument
+        */
+        else if (c[0] == '%' && c[1] == '(') {
+
+            /* let's have d point the end of the argument */
+            for (d = c + 2; *d && *d != ')'; d++);
+
+            if (*d == ')') {
+                key = PyString_FromStringAndSize(c+2, d-c-2);
+                value = PyObject_GetItem(var, key);
+                /* key has refcnt 1, value the original value + 1 */
+                
+                /*  if value is NULL we did not find the key (or this is not a
+                    dictionary): let python raise a KeyError */
+                if (value == NULL) {
+                    Py_DECREF(key); /* destroy key */
+                    Py_XDECREF(n);  /* destroy n */
+                    return -1;
+                }
+
+                Dprintf("_mogrify: value refcnt: %d (+1)", value->ob_refcnt);
+                
+                if (n == NULL) {
+                    n = PyDict_New();
+                }
+                
+                if ((item = PyObject_GetItem(n, key)) == NULL) {
+                    PyObject *t = NULL;
+
+                    PyErr_Clear();
+
+                    /* None is always converted to NULL; this is an
+                       optimization over the adapting code and can go away in
+                       the future if somebody finds a None adapter usefull. */
+                    if (value == Py_None) {
+                        t = PyString_FromString("NULL");
+                        PyDict_SetItem(n, key, t);
+                        /* t is a new object, refcnt = 1, key is at 2 */
+                        
+                        /* if the value is None we need to substitute the
+                           formatting char with 's' (FIXME: this should not be
+                           necessary if we drop support for formats other than
+                           %s!) */
+                        while (*d && !isalpha(*d)) d++;
+                        if (*d) *d = 's';
+                    }
+                    else {
+                        t = microprotocol_getquoted(value, conn);
+
+                        if (t != NULL) {
+                            PyDict_SetItem(n, key, t);
+                            /* both key and t refcnt +1, key is at 2 now */
+                        }
+                        else {
+                            /* no adapter found, raise a BIG exception */
+                            Py_XDECREF(value); 
+                            Py_DECREF(n);
+                            return -1;
+                        }
+                    }
+
+                    Py_XDECREF(t); /* t dies here */
+                    /* after the DECREF value has the original refcnt plus 1
+                       if it was added to the dictionary directly; good */
+                    Py_XDECREF(value); 
+                }
+                else {
+                    /* we have an item with one extra refcnt here, zap! */
+                    Py_DECREF(item);
+                }
+                Py_DECREF(key); /* key has the original refcnt now */
+                Dprintf("_mogrify: after value refcnt: %d",value->ob_refcnt);
+            }
+            c = d;
+        }
+        
+        else if (c[0] == '%' && c[1] != '(') {
+            /* this is a format that expects a tuple; it is much easier,
+               because we don't need to check the old/new dictionary for
+               keys */
+            
+            value = PySequence_GetItem(var, index);
+            /* value has refcnt inc'ed by 1 here */
+            
+            /*  if value is NULL this is not a sequence or the index is wrong;
+                anyway we let python set its own exception */
+            if (value == NULL) {
+                Py_XDECREF(n);
+                return -1;
+            }
+
+            if (n == NULL) {
+                n = PyTuple_New(PyObject_Length(var));
+            }
+            
+            /* let's have d point just after the '%' */
+            d = c+1;
+            
+            if (value == Py_None) {
+                PyTuple_SET_ITEM(n, index, PyString_FromString("NULL"));
+                while (*d && !isalpha(*d)) d++;
+                if (*d) *d = 's';
+                Py_DECREF(value);
+            }
+            else {
+                PyObject *t = microprotocol_getquoted(value, conn);
+
+                if (t != NULL) {
+                    PyTuple_SET_ITEM(n, index, t);
+                    Py_DECREF(value);
+                }
+                else {
+                    Py_DECREF(n);
+                    Py_DECREF(value);
+                    return -1;
+                }
+            }
+            c = d;
+            index += 1;
+        }
+        else {
+            c++;
+        }
+    }
+
+    if (force && n == NULL)
+        n = PyTuple_New(0);
+    *new = n;
+    
+    return 0;
+}
+    
+#define psyco_curs_execute_doc \
+"execute(query, vars=None, async=0) -- Execute query with bound vars."
+
+static int
+_psyco_curs_execute(cursorObject *self,
+                    PyObject *operation, PyObject *vars, long int async)
+{
+    int res;
+    PyObject *fquery, *cvt = NULL, *uoperation = NULL;
+    
+    pthread_mutex_lock(&(self->conn->lock));
+    if (self->conn->async_cursor != NULL
+        && self->conn->async_cursor != (PyObject*)self) {
+        pthread_mutex_unlock(&(self->conn->lock));
+        psyco_set_error(ProgrammingError, (PyObject*)self,
+                         "asynchronous query already in execution", NULL, NULL);
+        return 0;
+    }
+    pthread_mutex_unlock(&(self->conn->lock));
+    
+    if (!PyObject_IsTrue(operation)) {
+        psyco_set_error(ProgrammingError, (PyObject*)self,
+                         "can't execute an empty query", NULL, NULL);
+       return 0;
+    }
+    
+    if (PyUnicode_Check(operation)) {
+        PyObject *enc = PyDict_GetItemString(psycoEncodings,
+                                             self->conn->encoding);
+        /* enc is a borrowed reference, we won't decref it */
+        
+        if (enc) {
+            operation = PyUnicode_AsEncodedString(
+                operation, PyString_AsString(enc), NULL);
+
+            /* if there was an error during the encoding from unicode to the
+               target encoding we just let the exception propagate */
+            if (operation == NULL) return 0;
+
+            /* we clone operation in uoperation to be sure to free it later */ 
+            uoperation = operation;
+        }
+        else {
+            PyErr_Format(InterfaceError, "can't encode unicode query to %s",
+                         self->conn->encoding);
+            return 0;
+        }
+    }
+    else if (!PyString_Check(operation)) {
+        /* the operation is not unicode or string, raise an error */
+        PyErr_SetString(PyExc_TypeError,
+                        "argument 1 must be a string or unicode object");
+        return 0;
+    }
+    
+    IFCLEARPGRES(self->pgres);
+
+    if (self->query) {
+        Py_DECREF(self->query);
+        self->query = NULL;
+    }
+    
+    Dprintf("psyco_curs_execute: starting execution of new query");
+
+    /* here we are, and we have a sequence or a dictionary filled with
+       objects to be substituted (bound variables). we try to be smart and do
+       the right thing (i.e., what the user expects) */
+    
+    if (vars && vars != Py_None)
+    {
+        if(_mogrify(vars, operation, self->conn, &cvt) == -1) {
+            Py_XDECREF(uoperation);
+            return 0;
+        }
+    }
+
+    if (vars && cvt) {
+        /* if PyString_Format() return NULL an error occured: if the error is
+           a TypeError we need to check the exception.args[0] string for the
+           values:
+
+               "not enough arguments for format string"
+               "not all arguments converted"
+
+           and return the appropriate ProgrammingError. we do that by grabbing
+           the curren exception (we will later restore it if the type or the
+           strings do not match.) */
+        
+        if (!(fquery = PyString_Format(operation, cvt))) {
+            PyObject *err, *arg, *trace;
+            int pe = 0;
+
+            PyErr_Fetch(&err, &arg, &trace);
+            
+            if (err && PyErr_GivenExceptionMatches(err, PyExc_TypeError)) {
+                Dprintf("psyco_curs_execute: TypeError exception catched");
+                PyErr_NormalizeException(&err, &arg, &trace);
+
+                if (PyObject_HasAttrString(arg, "args")) {
+                    PyObject *args = PyObject_GetAttrString(arg, "args");
+                    PyObject *str = PySequence_GetItem(args, 0);
+                    char *s = PyString_AS_STRING(str);
+
+                    Dprintf("psyco_curs_execute:     -> %s", s);
+
+                    if (!strcmp(s, "not enough arguments for format string")
+                      || !strcmp(s, "not all arguments converted")) {
+                        Dprintf("psyco_curs_execute:     -> got a match");
+                        psyco_set_error(ProgrammingError, (PyObject*)self,
+                                         s, NULL, NULL);
+                        pe = 1;
+                    }
+
+                    Py_DECREF(args);
+                    Py_DECREF(str);
+                }
+            }
+
+            /* if we did not manage our own exception, restore old one */
+            if (pe == 1) {
+                Py_XDECREF(err); Py_XDECREF(arg); Py_XDECREF(trace);
+            }
+            else {
+                PyErr_Restore(err, arg, trace);
+            }
+            Py_XDECREF(uoperation);
+            return 0;
+        }
+        
+        if (self->name != NULL) {
+            self->query = PyString_FromFormat(
+                "DECLARE %s CURSOR WITHOUT HOLD FOR %s",
+                self->name, PyString_AS_STRING(fquery));
+            Py_DECREF(fquery);
+        }
+        else {
+            self->query = fquery;
+        }
+        
+        Dprintf("psyco_curs_execute: cvt->refcnt = %d", cvt->ob_refcnt);
+        Py_DECREF(cvt);
+    }
+    else {
+        if (self->name != NULL) {
+            self->query = PyString_FromFormat(
+                "DECLARE %s CURSOR WITHOUT HOLD FOR %s",
+                self->name, PyString_AS_STRING(operation));
+        }
+        else {
+            Py_INCREF(operation);
+            self->query = operation;
+        }
+    }
+    
+    res = pq_execute(self, PyString_AS_STRING(self->query), async);
+    
+    Dprintf("psyco_curs_execute: res = %d, pgres = %p", res, self->pgres);
+
+    Py_XDECREF(uoperation);
+    
+    return res == -1 ? 0 : 1;
+}
+
+static PyObject *
+psyco_curs_execute(cursorObject *self, PyObject *args, PyObject *kwargs)
+{   
+    long int async = 0;
+    PyObject *vars = NULL, *operation = NULL;
+    
+    static char *kwlist[] = {"query", "vars", "async", NULL};
+
+    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|Oi", kwlist,
+                                     &operation, &vars, &async)) {
+        return NULL;
+    }
+
+    if (self->name != NULL) {
+        if (self->query != Py_None) {
+            psyco_set_error(ProgrammingError, (PyObject*)self,
+                "can't call .execute() on named cursors more than once",
+                NULL, NULL);
+            return NULL;
+        }
+        if (self->conn->isolation_level == 0) {
+            psyco_set_error(ProgrammingError, (PyObject*)self,
+                "can't use a named cursor outside of transactions", NULL, NULL);
+            return NULL;          
+        }
+        if (self->conn->mark != self->mark) {
+            psyco_set_error(ProgrammingError, (PyObject*)self,
+                "named cursor isn't valid anymore", NULL, NULL);
+            return NULL;
+        }
+    }
+
+    EXC_IF_CURS_CLOSED(self);
+    
+    if (_psyco_curs_execute(self, operation, vars, async)) {
+        Py_INCREF(Py_None);
+        return Py_None;
+    }
+    else {
+        return NULL;
+    }
+}
+
+#define psyco_curs_executemany_doc \
+"executemany(query, vars_list) -- Execute many queries with bound vars."
+
+static PyObject *
+psyco_curs_executemany(cursorObject *self, PyObject *args, PyObject *kwargs)
+{
+    PyObject *operation = NULL, *vars = NULL;
+    PyObject *v, *iter = NULL;
+    
+    static char *kwlist[] = {"query", "vars_list", NULL};
+
+    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO", kwlist,
+                                     &operation, &vars)) {
+        return NULL;
+    }
+
+    EXC_IF_CURS_CLOSED(self);
+    
+    if (self->name != NULL) {
+        psyco_set_error(ProgrammingError, (PyObject*)self,
+                "can't call .executemany() on named cursors", NULL, NULL);
+        return NULL;
+    } 
+
+    if (!PyIter_Check(vars)) {
+        vars = iter = PyObject_GetIter(vars);
+        if (iter == NULL) return NULL;
+    }
+    
+    while ((v = PyIter_Next(vars)) != NULL) {
+        if (_psyco_curs_execute(self, operation, v, 0) == 0) {
+            Py_DECREF(v);
+            return NULL;
+        }
+        else {
+            Py_DECREF(v);
+        }
+    }
+    Py_XDECREF(iter);
+    
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+#ifdef PSYCOPG_EXTENSIONS
+#define psyco_curs_mogrify_doc \
+"mogrify(query, vars=None) -> str -- Return query after vars binding."
+
+static PyObject *
+psyco_curs_mogrify(cursorObject *self, PyObject *args, PyObject *kwargs)
+{   
+    PyObject *vars = NULL, *cvt = NULL, *operation = NULL;
+    PyObject *fquery;
+    
+    static char *kwlist[] = {"query", "vars", NULL};
+
+    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O", kwlist,
+                                     &operation, &vars)) {
+        return NULL;
+    }
+
+    if (PyUnicode_Check(operation)) {
+        PyErr_SetString(NotSupportedError,
+                        "unicode queries not yet supported");
+        return NULL;
+    }
+    
+    EXC_IF_CURS_CLOSED(self);
+    IFCLEARPGRES(self->pgres);
+
+    /* note that we don't overwrite the last query executed on the cursor, we
+       just *return* the new query with bound variables
+
+       TODO: refactor the common mogrification code (see psycopg_curs_execute
+       for comments, the code is amost identical) */
+
+    if (vars)
+    {
+        if(_mogrify(vars, operation, self->conn, &cvt) == -1) return NULL;
+    }
+
+    if (vars && cvt) {        
+        if (!(fquery = PyString_Format(operation, cvt))) {
+            PyObject *err, *arg, *trace;
+            int pe = 0;
+
+            PyErr_Fetch(&err, &arg, &trace);
+            
+            if (err && PyErr_GivenExceptionMatches(err, PyExc_TypeError)) {
+                Dprintf("psyco_curs_execute: TypeError exception catched");
+                PyErr_NormalizeException(&err, &arg, &trace);
+
+                if (PyObject_HasAttrString(arg, "args")) {
+                    PyObject *args = PyObject_GetAttrString(arg, "args");
+                    PyObject *str = PySequence_GetItem(args, 0);
+                    char *s = PyString_AS_STRING(str);
+
+                    Dprintf("psyco_curs_execute:     -> %s", s);
+
+                    if (!strcmp(s, "not enough arguments for format string")
+                      || !strcmp(s, "not all arguments converted")) {
+                        Dprintf("psyco_curs_execute:     -> got a match");
+                        psyco_set_error(ProgrammingError, (PyObject*)self,
+                                         s, NULL, NULL);
+                        pe = 1;
+                    }
+
+                    Py_DECREF(args);
+                    Py_DECREF(str);
+                }
+            }
+
+            /* if we did not manage our own exception, restore old one */
+            if (pe == 1) {
+                Py_XDECREF(err); Py_XDECREF(arg); Py_XDECREF(trace);
+            }
+            else {
+                PyErr_Restore(err, arg, trace);
+            }
+            return NULL;
+        }
+
+        Dprintf("psyco_curs_execute: cvt->refcnt = %d, fquery->refcnt = %d",
+                cvt->ob_refcnt, fquery->ob_refcnt);
+        Py_DECREF(cvt);
+    }
+    else {
+        fquery = operation;
+        Py_INCREF(operation);
+    }
+
+    return fquery;
+}
+#endif
+
+
+/* fetchone method - fetch one row of results */
+
+#define psyco_curs_fetchone_doc \
+"fetchone() -> tuple or None\n\n" \
+"Return the next row of a query result set in the form of a tuple (by\n" \
+"default) or using the sequence factory previously set in the\n" \
+"`row_factory` attribute. Return `None` when no more data is available.\n"
+
+static int
+_psyco_curs_prefetch(cursorObject *self)
+{
+    int i = 0;
+    
+    /* check if the fetching cursor is the one that did the asynchronous query
+       and raise an exception if not */
+    pthread_mutex_lock(&(self->conn->lock));
+    if (self->conn->async_cursor != NULL
+        && self->conn->async_cursor != (PyObject*)self) {
+        pthread_mutex_unlock(&(self->conn->lock));
+        psyco_set_error(ProgrammingError, (PyObject*)self,
+                         "asynchronous fetch by wrong cursor", NULL, NULL);
+        return -2;
+    }
+    pthread_mutex_unlock(&(self->conn->lock));
+    
+    if (self->pgres == NULL || self->needsfetch) {
+        self->needsfetch = 0;
+        Dprintf("_psyco_curs_prefetch: trying to fetch data");
+        do {
+            i = pq_fetch(self);
+            Dprintf("_psycopg_curs_prefetch: result = %d", i);
+        } while(i == 1);
+    }
+
+    Dprintf("_psyco_curs_prefetch: result = %d", i);
+    return i;
+}
+
+static PyObject *
+_psyco_curs_buildrow_fill(cursorObject *self, PyObject *res,
+                          int row, int n, int istuple)
+{
+    int i, len;
+    unsigned char *str;
+    PyObject *val;
+    
+    for (i=0; i < n; i++) {
+        if (PQgetisnull(self->pgres, row, i)) {
+            str = NULL;
+            len = 0;
+        }
+        else {
+            str = (unsigned char*)PQgetvalue(self->pgres, row, i);
+            len = PQgetlength(self->pgres, row, i);
+        }
+
+        Dprintf("_psyco_curs_buildrow: row %ld, element %d, len %i",
+                self->row, i, len);
+
+        val = typecast_cast(PyTuple_GET_ITEM(self->casts, i), (char*)str, len,
+                            (PyObject*)self);
+
+        if (val) {
+            Dprintf("_psyco_curs_buildrow: val->refcnt = %d", val->ob_refcnt);
+            if (istuple) {
+                PyTuple_SET_ITEM(res, i, val);
+            }
+            else {
+                PySequence_SetItem(res, i, val);
+                Py_DECREF(val);
+            }
+        }
+        else {
+            /* an error occurred in the type system, we return NULL to raise
+               an exception. the typecast code should already have set the
+               exception type and text */
+            Py_DECREF(res);
+            res = NULL;
+            break;
+        }
+    }
+    return res;
+}
+
+static PyObject *
+_psyco_curs_buildrow(cursorObject *self, int row)
+{
+    int n;
+    
+    n = PQnfields(self->pgres);
+    return _psyco_curs_buildrow_fill(self, PyTuple_New(n), row, n, 1);
+}
+
+static PyObject *
+_psyco_curs_buildrow_with_factory(cursorObject *self, int row)
+{
+    int n;
+    PyObject *res;
+
+    n = PQnfields(self->pgres);
+    if ((res = PyObject_CallFunction(self->tuple_factory, "O", self))== NULL)
+        return NULL;
+
+    return _psyco_curs_buildrow_fill(self, res, row, n, 0);
+}
+
+PyObject *
+psyco_curs_fetchone(cursorObject *self, PyObject *args)
+{
+    PyObject *res;
+    
+    if (args && !PyArg_ParseTuple(args, "")) return NULL;
+    
+    EXC_IF_CURS_CLOSED(self)
+    if (_psyco_curs_prefetch(self) < 0) return NULL;
+    EXC_IF_NO_TUPLES(self);
+    
+    if (self->name != NULL) {
+        char buffer[128];
+        
+        EXC_IF_NO_MARK(self);
+        PyOS_snprintf(buffer, 127, "FETCH FORWARD 1 FROM %s", self->name);
+        if (pq_execute(self, buffer, 0) == -1) return NULL;
+        if (_psyco_curs_prefetch(self) < 0) return NULL;
+    }
+    
+    Dprintf("psyco_curs_fetchone: fetching row %ld", self->row);
+    Dprintf("psyco_curs_fetchone: rowcount = %ld", self->rowcount); 
+
+    if (self->row >= self->rowcount) {
+        /* we exausted available data: return None */
+        Py_INCREF(Py_None);
+        return Py_None;
+    }
+
+    if (self->tuple_factory == Py_None)
+        res = _psyco_curs_buildrow(self, self->row);
+    else
+        res = _psyco_curs_buildrow_with_factory(self, self->row);
+    
+    self->row++; /* move the counter to next line */
+
+    /* if the query was async aggresively free pgres, to allow
+       successive requests to reallocate it */
+    if (self->row >= self->rowcount
+        && self->conn->async_cursor == (PyObject*)self)
+        IFCLEARPGRES(self->pgres);
+
+    return res;
+}
+
+
+/* fetch many - fetch some results */
+
+#define psyco_curs_fetchmany_doc \
+"fetchmany(size=self.arraysize) -> list of tuple\n\n" \
+"Return the next `size` rows of a query result set in the form of a list\n" \
+"of tuples (by default) or using the sequence factory previously set in\n" \
+"the `row_factory` attribute. Return `None` when no more data is available.\n"
+
+PyObject *
+psyco_curs_fetchmany(cursorObject *self, PyObject *args, PyObject *kwords)
+{
+    int i;
+    PyObject *list, *res;
+    
+    long int size = self->arraysize;
+    static char *kwlist[] = {"size", NULL};
+    
+    if (!PyArg_ParseTupleAndKeywords(args, kwords, "|l", kwlist, &size)) {
+        return NULL;
+    }
+
+    EXC_IF_CURS_CLOSED(self);
+    if (_psyco_curs_prefetch(self) < 0) return NULL;
+    EXC_IF_NO_TUPLES(self);
+
+    if (self->name != NULL) {
+        char buffer[128];
+        
+        EXC_IF_NO_MARK(self);
+        PyOS_snprintf(buffer, 127, "FETCH FORWARD %d FROM %s",
+            (int)size, self->name);
+        if (pq_execute(self, buffer, 0) == -1) return NULL;
+        if (_psyco_curs_prefetch(self) < 0) return NULL;
+    }
+
+    /* make sure size is not > than the available number of rows */
+    if (size > self->rowcount - self->row || size < 0) {
+        size = self->rowcount - self->row;
+    }
+
+    Dprintf("psyco_curs_fetchmany: size = %ld", size);
+    
+    if (size <= 0) {
+        return PyList_New(0);
+    }
+    
+    list = PyList_New(size);
+    
+    for (i = 0; i < size; i++) {
+        if (self->tuple_factory == Py_None)
+            res = _psyco_curs_buildrow(self, self->row);
+        else
+            res = _psyco_curs_buildrow_with_factory(self, self->row);
+        
+        self->row++;
+
+        if (res == NULL) {
+            Py_DECREF(list);
+            return NULL;
+        }
+
+        PyList_SET_ITEM(list, i, res);
+    }
+
+    /* if the query was async aggresively free pgres, to allow
+       successive requests to reallocate it */
+    if (self->row >= self->rowcount
+        && self->conn->async_cursor == (PyObject*)self)
+        IFCLEARPGRES(self->pgres);
+    
+    return list;
+}
+
+
+/* fetch all - fetch all results */
+
+#define psyco_curs_fetchall_doc \
+"fetchall() -> list of tuple\n\n" \
+"Return all the remaining rows of a query result set.\n\n" \
+"Rows are returned in the form of a list of tuples (by default) or using\n" \
+"the sequence factory previously set in the `row_factory` attribute.\n" \
+"Return `None` when no more data is available.\n"
+
+PyObject *
+psyco_curs_fetchall(cursorObject *self, PyObject *args)
+{
+    int i, size;
+    PyObject *list, *res;
+
+    if (!PyArg_ParseTuple(args, "")) {
+        return NULL;
+    }
+
+    EXC_IF_CURS_CLOSED(self);
+    if (_psyco_curs_prefetch(self) < 0) return NULL;
+    EXC_IF_NO_TUPLES(self);
+    
+    if (self->name != NULL) {
+        char buffer[128];
+        
+        EXC_IF_NO_MARK(self);
+        PyOS_snprintf(buffer, 127, "FETCH FORWARD ALL FROM %s", self->name);
+        if (pq_execute(self, buffer, 0) == -1) return NULL;
+        if (_psyco_curs_prefetch(self) < 0) return NULL;
+    }
+
+    size = self->rowcount - self->row;
+    
+    if (size <= 0) {
+        return PyList_New(0);
+    }
+    
+    list = PyList_New(size);
+    
+    for (i = 0; i < size; i++) {
+        if (self->tuple_factory == Py_None)
+            res = _psyco_curs_buildrow(self, self->row);
+        else
+            res = _psyco_curs_buildrow_with_factory(self, self->row);
+        
+        self->row++;
+
+        if (res == NULL) {
+            Py_DECREF(list);
+            return NULL;
+        }
+
+        PyList_SET_ITEM(list, i, res);
+    }
+
+    /* if the query was async aggresively free pgres, to allow
+       successive requests to reallocate it */
+    if (self->row >= self->rowcount
+        && self->conn->async_cursor == (PyObject*)self)
+        IFCLEARPGRES(self->pgres);
+    
+    return list;
+}
+
+
+/* callproc method - execute a stored procedure */
+
+#define psyco_curs_callproc_doc \
+"callproc(procname, parameters=None, async=0) -- Execute stored procedure."
+
+static PyObject *
+psyco_curs_callproc(cursorObject *self, PyObject *args, PyObject *kwargs)
+{
+    char *procname = NULL, *sql = NULL;
+    long int async = 0;
+    int i, nparameters = 0, sl = 0;
+    PyObject *parameters = NULL;
+    PyObject *operation = NULL;
+    PyObject *res = NULL;
+
+    if (!PyArg_ParseTuple(args, "s|Oi", &procname, &parameters, &async)) {
+        return NULL;
+    }
+
+    EXC_IF_CURS_CLOSED(self);
+
+    if (self->name != NULL) {
+        psyco_set_error(ProgrammingError, (PyObject*)self,
+                         "can't call .callproc() on named cursors", NULL, NULL);
+        return NULL;
+    } 
+
+    if(parameters && parameters != Py_None) {
+        nparameters = PyObject_Length(parameters);
+       if (nparameters < 0) nparameters = 0;
+    }
+
+    /* allocate some memory, build the SQL and create a PyString from it */
+    sl = strlen(procname) + 10 + nparameters*3 - (nparameters ? 1 : 0);
+    sql = (char*)PyMem_Malloc(sl);
+    if (sql == NULL) return NULL;
+    
+    sprintf(sql, "SELECT %s(", procname);
+    for(i=0; i<nparameters; i++) {
+        strcat(sql, "%s,");
+    }
+    sql[sl-2] = ')';
+    sql[sl-1] = '\0';
+    
+    operation = PyString_FromString(sql);
+    PyMem_Free((void*)sql);
+    
+    if (_psyco_curs_execute(self, operation, parameters, async)) {
+        Py_INCREF(Py_None);
+        res = Py_None;
+    }
+
+    Py_DECREF(operation);
+    return res;
+}
+
+
+/* nextset method - return the next set of data (not supported) */
+
+#define psyco_curs_nextset_doc \
+"nextset() -- Skip to next set of data.\n\n" \
+"This method is not supported (PostgreSQL does not have multiple data \n" \
+"sets) and will raise a NotSupportedError exception."
+
+static PyObject *
+psyco_curs_nextset(cursorObject *self, PyObject *args)
+{
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+    
+    EXC_IF_CURS_CLOSED(self);
+
+    PyErr_SetString(NotSupportedError, "not supported by PostgreSQL");
+    return NULL;
+}
+
+
+/* setinputsizes - predefine memory areas for execute (does nothing) */
+
+#define psyco_curs_setinputsizes_doc \
+"setinputsizes(sizes) -- Set memory areas before execute.\n\n" \
+"This method currently does nothing but it is safe to call it."
+
+static PyObject *
+psyco_curs_setinputsizes(cursorObject *self, PyObject *args)
+{
+    PyObject *sizes;
+    
+    if (!PyArg_ParseTuple(args, "O", &sizes))
+        return NULL;
+    
+    EXC_IF_CURS_CLOSED(self);
+
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+/* setoutputsize - predefine memory areas for execute (does nothing) */
+
+#define psyco_curs_setoutputsize_doc \
+"setoutputsize(size, column=None) -- Set column buffer size.\n\n" \
+"This method currently does nothing but it is safe to call it."
+
+static PyObject *
+psyco_curs_setoutputsize(cursorObject *self, PyObject *args)
+{
+    long int size, column;
+    
+    if (!PyArg_ParseTuple(args, "l|l", &size, &column))
+        return NULL;
+    
+    EXC_IF_CURS_CLOSED(self);
+
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+/* scroll - scroll position in result list */
+
+#define psyco_curs_scroll_doc \
+"scroll(value, mode='relative') -- Scroll to new position according to mode." 
+
+static PyObject *
+psyco_curs_scroll(cursorObject *self, PyObject *args, PyObject *kwargs)
+{
+    int value, newpos;
+    char *mode = "relative";
+
+    static char *kwlist[] = {"value", "mode", NULL};
+
+    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i|s",
+                                     kwlist, &value, &mode))
+        return NULL;
+    
+    EXC_IF_CURS_CLOSED(self);
+
+    /* if the cursor is not named we have the full result set and we can do
+       our own calculations to scroll; else we just delegate the scrolling
+       to the MOVE SQL statement */
+    if (self->name == NULL) {
+        if (strcmp(mode, "relative") == 0) {
+            newpos = self->row + value;
+        } else if (strcmp( mode, "absolute") == 0) {
+            newpos = value;
+        } else {
+            psyco_set_error(ProgrammingError, (PyObject*)self,
+                "scroll mode must be 'relative' or 'absolute'", NULL, NULL);
+            return NULL;
+        }
+    
+        if (newpos < 0 || newpos >= self->rowcount ) {
+            psyco_set_error(ProgrammingError, (PyObject*)self,
+                             "scroll destination out of bounds", NULL, NULL);
+            return NULL;
+        }
+        
+        self->row = newpos;
+    }
+    
+    else {
+        char buffer[128];
+        
+        EXC_IF_NO_MARK(self);
+        
+        if (strcmp(mode, "absolute") == 0) {
+            PyOS_snprintf(buffer, 127, "MOVE ABSOLUTE %d FROM %s",
+                value, self->name);
+        }
+        else {
+            PyOS_snprintf(buffer, 127, "MOVE %d FROM %s", value, self->name);
+        }
+        if (pq_execute(self, buffer, 0) == -1) return NULL;
+        if (_psyco_curs_prefetch(self) < 0) return NULL;
+    }
+
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+#ifdef PSYCOPG_EXTENSIONS
+
+/* extension: copy_from - implements COPY FROM */
+
+#define psyco_curs_copy_from_doc \
+"copy_from(file, table, sep='\\t', null='\\N', columns=None) -- Copy table from file."
+
+static int
+_psyco_curs_has_read_check(PyObject* o, void* var)
+{
+    if (PyObject_HasAttrString(o, "readline")
+        && PyObject_HasAttrString(o, "read")) {
+        Py_INCREF(o);
+        *((PyObject**)var) = o;
+        return 1;
+    }
+    else {
+        PyErr_SetString(PyExc_TypeError,
+            "argument 1 must have both .read() and .readline() methods");
+        return 0;
+    }   
+}
+
+static PyObject *
+psyco_curs_copy_from(cursorObject *self, PyObject *args, PyObject *kwargs)
+{
+    char query[1024];
+    char *table_name;
+    char *sep = "\t", *null = NULL;
+    long int bufsize = DEFAULT_COPYSIZE;
+    PyObject *file, *columns = NULL, *res = NULL;
+    char columnlist[1024] = "";
+
+    static char *kwlist[] = {"file", "table", "sep", "null", "size", 
+                             "columns", NULL};
+
+    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&s|ssiO", kwlist,
+                                     _psyco_curs_has_read_check, &file,
+                                     &table_name, &sep, &null, &bufsize,
+                                     &columns)) {
+        return NULL;
+    }
+    
+    if (columns != NULL && columns != Py_None) {
+        PyObject* collistiter = PyObject_GetIter(columns);
+        PyObject* col;
+        int collistlen = 2;
+        int colitemlen;
+        char* colname;
+        if (collistiter == NULL) {
+            return NULL;
+        }
+        strcpy(columnlist, " (");
+        while ((col = PyIter_Next(collistiter)) != NULL) {
+            if (!PyString_Check(col)) {
+                Py_DECREF(col);
+                Py_DECREF(collistiter);
+                PyErr_SetString(PyExc_ValueError,
+                   "Elements in column list must be strings");
+                return NULL;
+            }
+            PyString_AsStringAndSize(col, &colname, &colitemlen);
+            if (collistlen + colitemlen > 1022) {
+                Py_DECREF(col);
+                Py_DECREF(collistiter);
+                PyErr_SetString(PyExc_ValueError, "Column list too long");
+                return NULL;
+            }
+            strncpy(&columnlist[collistlen], colname, colitemlen);
+            collistlen += colitemlen;
+            columnlist[collistlen++] = ',';
+            Py_DECREF(col);
+        }
+        Py_DECREF(collistiter);
+
+        if (collistlen == 2) {  /* empty list; we printed no comma */
+            collistlen++;
+        }
+
+        columnlist[collistlen - 1] = ')';
+        columnlist[collistlen] = '\0';
+    }
+
+    if (PyErr_Occurred()) {
+        return NULL;
+    }
+
+    EXC_IF_CURS_CLOSED(self);
+
+    if (null) {
+        PyOS_snprintf(query, 1023, "COPY %s%s FROM stdin USING DELIMITERS '%s'"
+                      " WITH NULL AS '%s'", table_name, columnlist, sep, null);
+    }
+    else {
+        PyOS_snprintf(query, 1023, "COPY %s%s FROM stdin USING DELIMITERS '%s'",
+                      table_name, columnlist, sep);
+    }
+    Dprintf("psyco_curs_copy_from: query = %s", query);
+
+    self->copysize = bufsize;
+    self->copyfile = file;
+
+    if (pq_execute(self, query, 0) == 1) {
+        res = Py_None;
+        Py_INCREF(Py_None);
+    }
+
+    self->copyfile =NULL;
+    
+    return res;
+}
+
+#define psyco_curs_copy_to_doc \
+"copy_to(file, table, sep='\\t', null='\\N') -- Copy table to file."
+
+static int
+_psyco_curs_has_write_check(PyObject* o, void* var)
+{
+    if (PyObject_HasAttrString(o, "write")) {
+        Py_INCREF(o);
+        *((PyObject**)var) = o;
+        return 1;
+    }
+    else {
+        PyErr_SetString(PyExc_TypeError,
+                        "argument 1 must have a .write() method");
+        return 0;
+    }   
+}
+
+static PyObject *
+psyco_curs_copy_to(cursorObject *self, PyObject *args, PyObject *kwargs)
+{
+    char query[256];
+    char *table_name;
+    char *sep = "\t", *null = NULL;
+    PyObject *file, *res = NULL;
+
+    static char *kwlist[] = {"file", "table", "sep", "null", NULL};
+
+    if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&s|ss", kwlist,
+                                     _psyco_curs_has_write_check, &file,
+                                     &table_name, &sep, &null)) {
+        return NULL;
+    }
+    
+    EXC_IF_CURS_CLOSED(self);
+
+    if (null) {
+        PyOS_snprintf(query, 255, "COPY %s TO stdout USING DELIMITERS '%s'"
+                      " WITH NULL AS '%s'", table_name, sep, null);
+    }
+    else {
+        PyOS_snprintf(query, 255, "COPY %s TO stdout USING DELIMITERS '%s'",
+                      table_name, sep);
+    }
+
+    self->copysize = 0;
+    self->copyfile = file;
+
+    if (pq_execute(self, query, 0) == 1) {
+        res = Py_None;
+        Py_INCREF(Py_None);   
+    }
+    
+    self->copyfile = NULL;
+    
+    return res;
+}   
+/* extension: fileno - return the file descripor of the connection */
+
+#define psyco_curs_fileno_doc \
+"fileno() -> int -- Return file descriptor associated to database connection."
+
+static PyObject *
+psyco_curs_fileno(cursorObject *self, PyObject *args)
+{
+    long int socket;
+    
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+    EXC_IF_CURS_CLOSED(self);
+
+    /* note how we call PQflush() to make sure the user will use
+       select() in the safe way! */
+    pthread_mutex_lock(&(self->conn->lock));
+    Py_BEGIN_ALLOW_THREADS;
+    PQflush(self->conn->pgconn);
+    socket = (long int)PQsocket(self->conn->pgconn);
+    Py_END_ALLOW_THREADS;
+    pthread_mutex_unlock(&(self->conn->lock));
+
+    return PyInt_FromLong(socket);
+}
+
+/* extension: isready - return true if data from async execute is ready */
+
+#define psyco_curs_isready_doc \
+"isready() -> bool -- Return True if data is ready after an async query."
+
+static PyObject *
+psyco_curs_isready(cursorObject *self, PyObject *args)
+{
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+    EXC_IF_CURS_CLOSED(self);
+
+    /* pq_is_busy does its own locking, we don't need anything special but if
+       the cursor is ready we need to fetch the result and free the connection
+       for the next query. */
+    
+    if (pq_is_busy(self->conn)) {
+        Py_INCREF(Py_False);
+        return Py_False;
+    }
+    else {
+        IFCLEARPGRES(self->pgres);
+        pthread_mutex_lock(&(self->conn->lock));
+        self->pgres = PQgetResult(self->conn->pgconn);
+        self->conn->async_cursor = NULL;
+        pthread_mutex_unlock(&(self->conn->lock));
+        self->needsfetch = 1;
+        Py_INCREF(Py_True);
+        return Py_True;
+    }
+}
+
+#endif
+
+
+/** the cursor object **/
+
+/* iterator protocol */
+
+static PyObject *
+cursor_iter(PyObject *self)
+{
+    EXC_IF_CURS_CLOSED((cursorObject*)self);
+    Py_INCREF(self);
+    return self;
+}
+
+static PyObject *
+cursor_next(PyObject *self)
+{
+    PyObject *res;
+
+    /* we don't parse arguments: psyco_curs_fetchone will do that for us */
+    res = psyco_curs_fetchone((cursorObject*)self, NULL);
+
+    /* convert a None to NULL to signal the end of iteration */
+    if (res && res == Py_None) {
+        Py_DECREF(res);
+        res = NULL;
+    }
+    return res;
+}
+
+/* object method list */
+
+static struct PyMethodDef cursorObject_methods[] = {
+    /* DBAPI-2.0 core */
+    {"close", (PyCFunction)psyco_curs_close,
+     METH_VARARGS, psyco_curs_close_doc},
+    {"execute", (PyCFunction)psyco_curs_execute,
+     METH_VARARGS|METH_KEYWORDS, psyco_curs_execute_doc},
+    {"executemany", (PyCFunction)psyco_curs_executemany,
+     METH_VARARGS|METH_KEYWORDS, psyco_curs_executemany_doc},
+    {"fetchone", (PyCFunction)psyco_curs_fetchone,
+     METH_VARARGS, psyco_curs_fetchone_doc},
+    {"fetchmany", (PyCFunction)psyco_curs_fetchmany,
+     METH_VARARGS|METH_KEYWORDS, psyco_curs_fetchmany_doc},
+    {"fetchall", (PyCFunction)psyco_curs_fetchall,
+     METH_VARARGS, psyco_curs_fetchall_doc},
+    {"callproc", (PyCFunction)psyco_curs_callproc,
+     METH_VARARGS, psyco_curs_callproc_doc},
+    {"nextset", (PyCFunction)psyco_curs_nextset,
+     METH_VARARGS, psyco_curs_nextset_doc},
+    {"setinputsizes", (PyCFunction)psyco_curs_setinputsizes,
+     METH_VARARGS, psyco_curs_setinputsizes_doc},
+    {"setoutputsize", (PyCFunction)psyco_curs_setoutputsize,
+     METH_VARARGS, psyco_curs_setoutputsize_doc},
+    /* DBAPI-2.0 extensions */
+    {"scroll", (PyCFunction)psyco_curs_scroll,
+     METH_VARARGS|METH_KEYWORDS, psyco_curs_scroll_doc},
+    /* psycopg extensions */
+#ifdef PSYCOPG_EXTENSIONS
+    {"mogrify", (PyCFunction)psyco_curs_mogrify,
+     METH_VARARGS|METH_KEYWORDS, psyco_curs_mogrify_doc},
+    {"fileno", (PyCFunction)psyco_curs_fileno,
+     METH_VARARGS, psyco_curs_fileno_doc},
+    {"isready", (PyCFunction)psyco_curs_isready,
+     METH_VARARGS, psyco_curs_isready_doc},
+    {"copy_from", (PyCFunction)psyco_curs_copy_from,
+     METH_VARARGS|METH_KEYWORDS, psyco_curs_copy_from_doc},
+    {"copy_to", (PyCFunction)psyco_curs_copy_to,
+     METH_VARARGS|METH_KEYWORDS, psyco_curs_copy_to_doc},
+#endif
+    {NULL}
+};
+
+/* object member list */
+
+#define OFFSETOF(x) offsetof(cursorObject, x)
+
+static struct PyMemberDef cursorObject_members[] = {
+    /* DBAPI-2.0 basics */
+    {"rowcount", T_LONG, OFFSETOF(rowcount), RO,
+        "Number of rows read from the backend in the last command."},
+    {"arraysize", T_LONG, OFFSETOF(arraysize), 0, 
+        "Number of records `fetchmany()` must fetch if not explicitely " \
+        "specified."},
+    {"description", T_OBJECT, OFFSETOF(description), RO,
+        "Cursor description as defined in DBAPI-2.0."},
+    {"lastrowid", T_LONG, OFFSETOF(lastoid), RO,
+        "The ``oid`` of the last row inserted by the cursor."},
+    /* DBAPI-2.0 extensions */
+    {"rownumber", T_LONG, OFFSETOF(row), RO,
+        "The current row position."},
+    {"connection", T_OBJECT, OFFSETOF(conn), RO, 
+        "The connection where the cursor comes from."},
+#ifdef PSYCOPG_EXTENSIONS
+    {"name", T_STRING, OFFSETOF(name), RO},
+    {"statusmessage", T_OBJECT, OFFSETOF(pgstatus), RO,
+        "The return message of the last command."},
+    {"query", T_OBJECT, OFFSETOF(query), RO,
+        "The last query text sent to the backend."},
+    {"row_factory", T_OBJECT, OFFSETOF(tuple_factory), 0},
+    {"tzinfo_factory", T_OBJECT, OFFSETOF(tzinfo_factory), 0},
+    {"typecaster", T_OBJECT, OFFSETOF(caster), RO},
+    {"string_types", T_OBJECT, OFFSETOF(string_types), 0},
+    {"binary_types", T_OBJECT, OFFSETOF(binary_types), 0},
+#endif
+    {NULL}
+};
+
+/* initialization and finalization methods */
+
+static int
+cursor_setup(cursorObject *self, connectionObject *conn, char *name)
+{
+    Dprintf("cursor_setup: init cursor object at %p", self);
+    Dprintf("cursor_setup:     parameters: name = %s, conn = %p", name, conn);
+    
+    if (name) {
+        self->name = PyMem_Malloc(strlen(name)+1);
+        if (self->name == NULL) return 1;
+        strncpy(self->name, name, strlen(name)+1);
+    }
+
+    /* FIXME: why does this raise an excpetion on the _next_ line of code?
+    if (PyObject_IsInstance((PyObject*)conn,
+                             (PyObject *)&connectionType) == 0) {
+        PyErr_SetString(PyExc_TypeError,
+            "argument 1 must be subclass of psycopg2._psycopg.connection");
+        return 1;
+    } */
+    self->conn = conn;
+    Py_INCREF((PyObject*)self->conn);
+    
+    self->closed = 0;
+    self->mark = conn->mark;
+    self->pgres = NULL; 
+    self->notuples = 1;
+    self->arraysize = 1;
+    self->rowcount = -1;
+    self->lastoid = InvalidOid;
+    
+    self->casts = NULL;
+    self->notice = NULL;
+    
+    self->string_types = NULL;
+    self->binary_types = NULL;
+    
+    self->description = Py_None;
+    Py_INCREF(Py_None);
+    self->pgstatus = Py_None;
+    Py_INCREF(Py_None);
+    self->tuple_factory = Py_None;
+    Py_INCREF(Py_None);
+    self->query = Py_None;
+    Py_INCREF(Py_None);
+    
+    /* default tzinfo factory */
+    self->tzinfo_factory = pyPsycopgTzFixedOffsetTimezone;
+    Py_INCREF(self->tzinfo_factory);
+    
+    Dprintf("cursor_setup: good cursor object at %p, refcnt = %d",
+            self, ((PyObject *)self)->ob_refcnt);
+    return 0;
+}
+
+static void
+cursor_dealloc(PyObject* obj)
+{
+    cursorObject *self = (cursorObject *)obj;
+
+    if (self->name) PyMem_Free(self->name);
+    
+    Py_XDECREF((PyObject*)self->conn);
+    Py_XDECREF(self->casts);
+    Py_XDECREF(self->description);
+    Py_XDECREF(self->pgstatus);
+    Py_XDECREF(self->tuple_factory);
+    Py_XDECREF(self->tzinfo_factory);
+    Py_XDECREF(self->query);
+
+    IFCLEARPGRES(self->pgres);
+    
+    Dprintf("cursor_dealloc: deleted cursor object at %p, refcnt = %d",
+            obj, obj->ob_refcnt);
+
+    obj->ob_type->tp_free(obj);
+}
+
+static int
+cursor_init(PyObject *obj, PyObject *args, PyObject *kwds)
+{
+    char *name = NULL;
+    PyObject *conn;
+    
+    if (!PyArg_ParseTuple(args, "O|s", &conn, &name))
+        return -1;
+
+    return cursor_setup((cursorObject *)obj, (connectionObject *)conn, name);
+}
+
+static PyObject *
+cursor_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+{
+    return type->tp_alloc(type, 0);
+}
+
+static void
+cursor_del(PyObject* self)
+{
+    PyObject_Del(self);
+}
+
+static PyObject *
+cursor_repr(cursorObject *self)
+{
+    return PyString_FromFormat(
+        "<cursor object at %p; closed: %d>", self, self->closed);
+}
+
+
+/* object type */
+
+#define cursorType_doc \
+"A database cursor."
+
+PyTypeObject cursorType = {
+    PyObject_HEAD_INIT(NULL)
+    0,
+    "psycopg2._psycopg.cursor",
+    sizeof(cursorObject),
+    0,
+    cursor_dealloc, /*tp_dealloc*/
+    0,          /*tp_print*/  
+    0,          /*tp_getattr*/
+    0,          /*tp_setattr*/
+    0,          /*tp_compare*/
+    (reprfunc)cursor_repr, /*tp_repr*/
+    0,          /*tp_as_number*/
+    0,          /*tp_as_sequence*/
+    0,          /*tp_as_mapping*/
+    0,          /*tp_hash */
+
+    0,          /*tp_call*/
+    (reprfunc)cursor_repr, /*tp_str*/
+    0,          /*tp_getattro*/
+    0,          /*tp_setattro*/
+    0,          /*tp_as_buffer*/
+
+    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_ITER, /*tp_flags*/
+    cursorType_doc, /*tp_doc*/
+    
+    0,          /*tp_traverse*/
+    0,          /*tp_clear*/
+
+    0,          /*tp_richcompare*/
+    0,          /*tp_weaklistoffset*/
+
+    cursor_iter, /*tp_iter*/
+    cursor_next, /*tp_iternext*/
+
+    /* Attribute descriptor and subclassing stuff */
+
+    cursorObject_methods, /*tp_methods*/
+    cursorObject_members, /*tp_members*/
+    0,          /*tp_getset*/
+    0,          /*tp_base*/
+    0,          /*tp_dict*/
+    
+    0,          /*tp_descr_get*/
+    0,          /*tp_descr_set*/
+    0,          /*tp_dictoffset*/
+    
+    cursor_init, /*tp_init*/
+    0, /*tp_alloc  Will be set to PyType_GenericAlloc in module init*/
+    cursor_new, /*tp_new*/
+    (freefunc)cursor_del, /*tp_free  Low-level free-memory routine */
+    0,          /*tp_is_gc For PyObject_IS_GC */
+    0,          /*tp_bases*/
+    0,          /*tp_mro method resolution order */
+    0,          /*tp_cache*/
+    0,          /*tp_subclasses*/
+    0           /*tp_weaklist*/
+};
diff --git a/trunk/psycopg2/psycopg/microprotocols.c b/trunk/psycopg2/psycopg/microprotocols.c
new file mode 100644 (file)
index 0000000..73abbfc
--- /dev/null
@@ -0,0 +1,161 @@
+/* microprotocols.c - minimalist and non-validating protocols implementation
+ *
+ * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Python.h>
+#include <structmember.h>
+
+#define PSYCOPG_MODULE
+#include "psycopg/config.h"
+#include "psycopg/python.h"
+#include "psycopg/psycopg.h"
+#include "psycopg/cursor.h"
+#include "psycopg/connection.h"
+#include "psycopg/microprotocols.h"
+#include "psycopg/microprotocols_proto.h"
+
+
+/** the adapters registry **/
+
+PyObject *psyco_adapters;
+
+/* microprotocols_init - initialize the adapters dictionary */
+
+int
+microprotocols_init(PyObject *dict)
+{
+    /* create adapters dictionary and put it in module namespace */
+    if ((psyco_adapters = PyDict_New()) == NULL) {
+        return -1;
+    }                         
+
+    PyDict_SetItemString(dict, "adapters", psyco_adapters);
+    
+    return 0;
+}
+
+
+/* microprotocols_add - add a reverse type-caster to the dictionary */
+
+int
+microprotocols_add(PyTypeObject *type, PyObject *proto, PyObject *cast)
+{
+    if (proto == NULL) proto = (PyObject*)&isqlquoteType;
+
+    Dprintf("microprotocols_add: cast %p for (%s, ?)", cast, type->tp_name);
+
+    PyDict_SetItem(psyco_adapters,
+                   Py_BuildValue("(OO)", (PyObject*)type, proto),
+                   cast);
+    return 0;
+}
+
+/* microprotocols_adapt - adapt an object to the built-in protocol */
+
+PyObject *
+microprotocols_adapt(PyObject *obj, PyObject *proto, PyObject *alt)
+{
+    PyObject *adapter, *key;
+
+    /* we don't check for exact type conformance as specified in PEP 246
+       because the ISQLQuote type is abstract and there is no way to get a
+       quotable object to be its instance */
+
+    Dprintf("microprotocols_adapt: trying to adapt %s", obj->ob_type->tp_name);
+    
+    /* look for an adapter in the registry */
+    key = Py_BuildValue("(OO)", (PyObject*)obj->ob_type, proto);
+    adapter = PyDict_GetItem(psyco_adapters, key);
+    Py_DECREF(key);
+    if (adapter) {
+        PyObject *adapted = PyObject_CallFunctionObjArgs(adapter, obj, NULL);
+        return adapted;
+    }
+
+    /* try to have the protocol adapt this object*/
+    if (PyObject_HasAttrString(proto, "__adapt__")) {
+        PyObject *adapted = PyObject_CallMethod(proto, "__adapt__", "O", obj);
+        if (adapted && adapted != Py_None) return adapted;
+        Py_XDECREF(adapted);
+        if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError))
+            return NULL;
+    }
+
+    /* and finally try to have the object adapt itself */   
+    if (PyObject_HasAttrString(obj, "__conform__")) {
+        PyObject *adapted = PyObject_CallMethod(obj, "__conform__","O", proto);
+        if (adapted && adapted != Py_None) return adapted;
+        Py_XDECREF(adapted);
+        if (PyErr_Occurred() && !PyErr_ExceptionMatches(PyExc_TypeError))
+            return NULL;
+    }
+    
+    /* else set the right exception and return NULL */
+    psyco_set_error(ProgrammingError, NULL, "can't adapt", NULL, NULL);
+    return NULL;
+}
+
+/* microprotocol_getquoted - utility function that adapt and call getquoted */
+
+PyObject *
+microprotocol_getquoted(PyObject *obj, connectionObject *conn)
+{
+    PyObject *res = NULL;
+    PyObject *tmp = microprotocols_adapt(
+        obj, (PyObject*)&isqlquoteType, NULL);
+    
+    if (tmp != NULL) {
+        Dprintf("microprotocol_getquoted: adapted to %s",
+                tmp->ob_type->tp_name);
+
+        /* if requested prepare the object passing it the connection */
+        if (PyObject_HasAttrString(tmp, "prepare") && conn) {
+            res = PyObject_CallMethod(tmp, "prepare", "O", (PyObject*)conn);
+            if (res == NULL) {
+                Py_DECREF(tmp);
+                return NULL;
+            }
+            else {
+                Py_DECREF(res);
+            }
+        }
+
+        /* call the getquoted method on tmp (that should exist because we
+           adapted to the right protocol) */
+        res = PyObject_CallMethod(tmp, "getquoted", NULL);
+        Py_DECREF(tmp);
+    }
+
+    /* we return res with one extra reference, the caller shall free it */
+    return res;
+}
+
+
+/** module-level functions **/
+
+PyObject *
+psyco_microprotocols_adapt(cursorObject *self, PyObject *args)
+{
+    PyObject *obj, *alt = NULL;
+    PyObject *proto = (PyObject*)&isqlquoteType;
+
+    if (!PyArg_ParseTuple(args, "O|OO", &obj, &proto, &alt)) return NULL;
+    return microprotocols_adapt(obj, proto, alt);
+}
diff --git a/trunk/psycopg2/psycopg/microprotocols.h b/trunk/psycopg2/psycopg/microprotocols.h
new file mode 100644 (file)
index 0000000..5501a7c
--- /dev/null
@@ -0,0 +1,60 @@
+/* microprotocols.c - definitions for minimalist and non-validating protocols
+ *
+ * Copyright (C) 2003-2004 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_MICROPROTOCOLS_H
+#define PSYCOPG_MICROPROTOCOLS_H 1
+
+#include <Python.h>
+#include "psycopg/connection.h"
+#include "psycopg/cursor.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** adapters registry **/
+
+extern PyObject *psyco_adapters;
+
+/** the names of the three mandatory methods **/
+
+#define MICROPROTOCOLS_GETQUOTED_NAME "getquoted"
+#define MICROPROTOCOLS_GETSTRING_NAME "getstring"
+#define MICROPROTOCOLS_GETBINARY_NAME "getbinary"
+
+/** exported functions **/
+
+/* used by module.c to init the microprotocols system */
+extern int microprotocols_init(PyObject *dict);
+extern int microprotocols_add(
+    PyTypeObject *type, PyObject *proto, PyObject *cast);
+    
+extern PyObject *microprotocols_adapt(
+    PyObject *obj, PyObject *proto, PyObject *alt);
+extern PyObject *microprotocol_getquoted(
+    PyObject *obj, connectionObject *conn);
+    
+extern PyObject *
+    psyco_microprotocols_adapt(cursorObject *self, PyObject *args);   
+#define psyco_microprotocols_adapt_doc \
+    "adapt(obj, protocol, alternate) -> object -- adapt obj to given protocol"
+    
+#endif /* !defined(PSYCOPG_MICROPROTOCOLS_H) */
diff --git a/trunk/psycopg2/psycopg/microprotocols_proto.c b/trunk/psycopg2/psycopg/microprotocols_proto.c
new file mode 100644 (file)
index 0000000..72c3a7e
--- /dev/null
@@ -0,0 +1,216 @@
+/* microprotocol_proto.c - psycopg protocols
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Python.h>
+#include <structmember.h>
+#include <stringobject.h>
+
+#include <string.h>
+
+#define PSYCOPG_MODULE
+#include "psycopg/config.h"
+#include "psycopg/python.h"
+#include "psycopg/psycopg.h"
+#include "psycopg/microprotocols_proto.h"
+
+
+/** void protocol implementation **/
+
+
+/* getquoted - return quoted representation for object */
+
+#define psyco_isqlquote_getquoted_doc \
+"getquoted() -- return SQL-quoted representation of this object"
+
+static PyObject *
+psyco_isqlquote_getquoted(isqlquoteObject *self, PyObject *args)
+{
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+    
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+/* getbinary - return quoted representation for object */
+
+#define psyco_isqlquote_getbinary_doc \
+"getbinary() -- return SQL-quoted binary representation of this object"
+
+static PyObject *
+psyco_isqlquote_getbinary(isqlquoteObject *self, PyObject *args)
+{
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+    
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+/* getbuffer - return quoted representation for object */
+
+#define psyco_isqlquote_getbuffer_doc \
+"getbuffer() -- return this object"
+
+static PyObject *
+psyco_isqlquote_getbuffer(isqlquoteObject *self, PyObject *args)
+{
+    if (!PyArg_ParseTuple(args, "")) return NULL;
+    
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+\f
+
+/** the ISQLQuote object **/
+
+
+/* object method list */
+
+static struct PyMethodDef isqlquoteObject_methods[] = {
+    {"getquoted", (PyCFunction)psyco_isqlquote_getquoted,
+     METH_VARARGS, psyco_isqlquote_getquoted_doc},
+    {"getbinary", (PyCFunction)psyco_isqlquote_getbinary,
+     METH_VARARGS, psyco_isqlquote_getbinary_doc},
+    {"getbuffer", (PyCFunction)psyco_isqlquote_getbuffer,
+     METH_VARARGS, psyco_isqlquote_getbuffer_doc},
+    /*    {"prepare", (PyCFunction)psyco_isqlquote_prepare,
+          METH_VARARGS, psyco_isqlquote_prepare_doc}, */
+    {NULL}
+};
+
+/* object member list */
+
+static struct PyMemberDef isqlquoteObject_members[] = {
+    /* DBAPI-2.0 extensions (exception objects) */
+    {"_wrapped", T_OBJECT, offsetof(isqlquoteObject, wrapped), RO},
+    {NULL}
+};
+
+/* initialization and finalization methods */
+
+static int
+isqlquote_setup(isqlquoteObject *self, PyObject *wrapped)
+{
+    self->wrapped = wrapped;
+    Py_INCREF(wrapped);
+
+    return 0;
+}
+
+static void
+isqlquote_dealloc(PyObject* obj)
+{
+    isqlquoteObject *self = (isqlquoteObject *)obj;
+    
+    Py_XDECREF(self->wrapped);
+    
+    obj->ob_type->tp_free(obj);
+}
+
+static int
+isqlquote_init(PyObject *obj, PyObject *args, PyObject *kwds)
+{
+    PyObject *wrapped = NULL;
+
+    if (!PyArg_ParseTuple(args, "O", &wrapped))
+        return -1;
+
+    return isqlquote_setup((isqlquoteObject *)obj, wrapped);
+}
+
+static PyObject *
+isqlquote_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
+{
+    return type->tp_alloc(type, 0);
+}
+
+static void
+isqlquote_del(PyObject* self)
+{
+    PyObject_Del(self);
+}
+
+
+/* object type */
+
+#define isqlquoteType_doc \
+"Abstract ISQLQuote protocol\n\n" \
+"An object conform to this protocol should expose a ``getquoted()`` method\n" \
+"returning the SQL representation of the object.\n\n"
+
+PyTypeObject isqlquoteType = {
+    PyObject_HEAD_INIT(NULL)
+    0,
+    "psycopg2._psycopg.ISQLQuote",
+    sizeof(isqlquoteObject),
+    0,
+    isqlquote_dealloc, /*tp_dealloc*/
+    0,          /*tp_print*/ 
+    0,          /*tp_getattr*/
+    0,          /*tp_setattr*/
+    0,          /*tp_compare*/
+    0,          /*tp_repr*/
+    0,          /*tp_as_number*/
+    0,          /*tp_as_sequence*/
+    0,          /*tp_as_mapping*/
+    0,          /*tp_hash */
+
+    0,          /*tp_call*/
+    0,          /*tp_str*/
+    0,          /*tp_getattro*/
+    0,          /*tp_setattro*/
+    0,          /*tp_as_buffer*/
+
+    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /*tp_flags*/
+    isqlquoteType_doc, /*tp_doc*/
+    
+    0,          /*tp_traverse*/
+    0,          /*tp_clear*/
+
+    0,          /*tp_richcompare*/
+    0,          /*tp_weaklistoffset*/
+
+    0,          /*tp_iter*/
+    0,          /*tp_iternext*/
+
+    /* Attribute descriptor and subclassing stuff */
+
+    isqlquoteObject_methods, /*tp_methods*/
+    isqlquoteObject_members, /*tp_members*/
+    0,          /*tp_getset*/
+    0,          /*tp_base*/
+    0,          /*tp_dict*/
+    
+    0,          /*tp_descr_get*/
+    0,          /*tp_descr_set*/
+    0,          /*tp_dictoffset*/
+    
+    isqlquote_init, /*tp_init*/
+    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
+    isqlquote_new, /*tp_new*/
+    (freefunc)isqlquote_del, /*tp_free  Low-level free-memory routine */
+    0,          /*tp_is_gc For PyObject_IS_GC */
+    0,          /*tp_bases*/
+    0,          /*tp_mro method resolution order */
+    0,          /*tp_cache*/
+    0,          /*tp_subclasses*/
+    0           /*tp_weaklist*/
+};
diff --git a/trunk/psycopg2/psycopg/microprotocols_proto.h b/trunk/psycopg2/psycopg/microprotocols_proto.h
new file mode 100644 (file)
index 0000000..c671264
--- /dev/null
@@ -0,0 +1,45 @@
+/* microporotocols_proto.h - definiton for psycopg's protocols
+ *
+ * Copyright (C) 2004 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_ISQLQUOTE_H
+#define PSYCOPG_ISQLQUOTE_H 1
+
+#include <Python.h>
+#include <libpq-fe.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+    
+extern PyTypeObject isqlquoteType;
+
+typedef struct {
+    PyObject HEAD;
+
+    PyObject *wrapped;
+    
+} isqlquoteObject;
+    
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !defined(PSYCOPG_ISQLQUOTE_H) */
diff --git a/trunk/psycopg2/psycopg/pgtypes.h b/trunk/psycopg2/psycopg/pgtypes.h
new file mode 100644 (file)
index 0000000..1fdbda9
--- /dev/null
@@ -0,0 +1,65 @@
+#define BOOLOID 16
+#define BYTEAOID 17
+#define CHAROID 18
+#define NAMEOID 19
+#define INT8OID 20
+#define INT2OID 21
+#define INT2VECTOROID 22
+#define INT4OID 23
+#define REGPROCOID 24
+#define TEXTOID 25
+#define OIDOID 26
+#define TIDOID 27
+#define XIDOID 28
+#define CIDOID 29
+#define OIDVECTOROID 30
+#define PG_TYPE_RELTYPE_OID 71
+#define PG_ATTRIBUTE_RELTYPE_OID 75
+#define PG_PROC_RELTYPE_OID 81
+#define PG_CLASS_RELTYPE_OID 83
+#define POINTOID 600
+#define LSEGOID 601
+#define PATHOID 602
+#define BOXOID 603
+#define POLYGONOID 604
+#define LINEOID 628
+#define FLOAT4OID 700
+#define FLOAT8OID 701
+#define ABSTIMEOID 702
+#define RELTIMEOID 703
+#define TINTERVALOID 704
+#define UNKNOWNOID 705
+#define CIRCLEOID 718
+#define CASHOID 790
+#define MACADDROID 829
+#define INETOID 869
+#define CIDROID 650
+#define INT4ARRAYOID 1007
+#define ACLITEMOID 1033
+#define BPCHAROID 1042
+#define VARCHAROID 1043
+#define DATEOID 1082
+#define TIMEOID 1083
+#define TIMESTAMPOID 1114
+#define TIMESTAMPTZOID 1184
+#define INTERVALOID 1186
+#define TIMETZOID 1266
+#define BITOID 1560
+#define VARBITOID 1562
+#define NUMERICOID 1700
+#define REFCURSOROID 1790
+#define REGPROCEDUREOID 2202
+#define REGOPEROID 2203
+#define REGOPERATOROID 2204
+#define REGCLASSOID 2205
+#define REGTYPEOID 2206
+#define RECORDOID 2249
+#define CSTRINGOID 2275
+#define ANYOID 2276
+#define ANYARRAYOID 2277
+#define VOIDOID 2278
+#define TRIGGEROID 2279
+#define LANGUAGE_HANDLEROID 2280
+#define INTERNALOID 2281
+#define OPAQUEOID 2282
+#define ANYELEMENTOID 2283
diff --git a/trunk/psycopg2/psycopg/pgversion.h b/trunk/psycopg2/psycopg/pgversion.h
new file mode 100644 (file)
index 0000000..f874a9a
--- /dev/null
@@ -0,0 +1,2 @@
+#define PG_VERSION_MAJOR 7
+#define PG_VERSION_MINOR 4
diff --git a/trunk/psycopg2/psycopg/pqpath.c b/trunk/psycopg2/psycopg/pqpath.c
new file mode 100644 (file)
index 0000000..1ebb569
--- /dev/null
@@ -0,0 +1,883 @@
+/* pqpath.c - single path into libpq
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/* IMPORTANT NOTE: no function in this file do its own connection locking
+   except for pg_execute and pq_fetch (that are somehow high-level. This means
+   that all the othe functions should be called while holding a lock to the
+   connection.
+*/
+
+#include <Python.h>
+#include <string.h>
+
+#define PSYCOPG_MODULE
+#include "psycopg/config.h"
+#include "psycopg/python.h"
+#include "psycopg/psycopg.h"
+#include "psycopg/pqpath.h"
+#include "psycopg/connection.h"
+#include "psycopg/cursor.h"
+#include "psycopg/typecast.h"
+#include "psycopg/pgtypes.h"
+#include "psycopg/pgversion.h"
+
+/* pq_raise - raise a python exception of the right kind
+
+   This function should be called while holding the GIL. */
+
+void
+pq_raise(connectionObject *conn, cursorObject *curs, PyObject *exc, char *msg)
+{
+    PyObject *pgc = (PyObject*)curs;
+    
+    char *err = NULL;
+    char *err2 = NULL;
+    char *code = NULL;
+    char *buf = NULL;
+    
+    if ((conn == NULL && curs == NULL) || (curs != NULL && conn == NULL)) {
+        PyErr_SetString(Error, "psycopg went psycotic and raised a null error");
+        return;
+    }
+    
+    if (curs && curs->pgres) {
+        err = PQresultErrorMessage(curs->pgres);
+#ifdef HAVE_PQPROTOCOL3
+        if (err != NULL && conn->protocol == 3) {
+            code = PQresultErrorField(curs->pgres, PG_DIAG_SQLSTATE);
+        }
+#endif
+    }
+    if (err == NULL)
+        err = PQerrorMessage(conn->pgconn);
+
+    /* if the is no error message we probably called pq_raise without reason:
+       we need to set an exception anyway because the caller will probably
+       raise and a meaningful message is better than an empty one */
+    if (err == NULL) {
+        PyErr_SetString(Error, "psycopg went psycotic without error set");
+        return;
+    }
+    
+    /* if exc is NULL, analyze the message and try to deduce the right
+       exception kind (only if we have a pgres, obviously) */
+    if (exc == NULL) {
+        if (curs && curs->pgres) {
+            if (conn->protocol == 3) {
+#ifdef HAVE_PQPROTOCOL3
+                char *pgstate =
+                    PQresultErrorField(curs->pgres, PG_DIAG_SQLSTATE);
+                if (pgstate != NULL && !strncmp(pgstate, "23", 2))
+                    exc = IntegrityError;
+                else
+                    exc = ProgrammingError;
+#endif
+            }
+        }
+    }
+    
+    /* if exc is still NULL psycopg was not built with HAVE_PQPROTOCOL3 or the
+       connection is using protocol 2: in both cases we default to comparing
+       error messages */
+    if (exc == NULL) {
+        if (!strncmp(err, "ERROR:  Cannot insert a duplicate key", 37)
+            || !strncmp(err, "ERROR:  ExecAppend: Fail to add null", 36)
+            || strstr(err, "referential integrity violation"))
+            exc = IntegrityError;
+        else
+            exc = ProgrammingError;
+    }
+    
+    /* try to remove the initial "ERROR: " part from the postgresql error */
+    if (err && strlen(err) > 8) err2 = &(err[8]);
+    else err2 = err;
+
+    /* if msg is not NULL, add it to the error message, after a '\n' */
+    if (msg && code) {
+        int len = strlen(code) + strlen(err) + strlen(msg) + 5;
+        if ((buf = PyMem_Malloc(len))) {
+            snprintf(buf, len, "[%s] %s\n%s", code, err2, msg);
+            psyco_set_error(exc, pgc, buf, err, code);
+        }
+    }
+    else if (msg) {
+        int len = strlen(err) + strlen(msg) + 2;
+        if ((buf = PyMem_Malloc(len))) {
+            snprintf(buf, len, "%s\n%s", err2, msg);
+            psyco_set_error(exc, pgc, buf, err, code);
+        }
+    }
+    else {
+        psyco_set_error(exc, pgc, err2, err, code);        
+    }
+    
+    if (buf != NULL) PyMem_Free(buf);
+}
+
+/* pq_set_critical, pq_resolve_critical - manage critical errors
+
+   this function is invoked when a PQexec() call returns NULL, meaning a
+   critical condition like out of memory or lost connection. it save the error
+   message and mark the connection as 'wanting cleanup'.
+
+   both functions do not call any Py_*_ALLOW_THREADS macros.
+   pq_resolve_critical should be called while holding the GIL. */
+
+void
+pq_set_critical(connectionObject *conn, const char *msg)
+{
+    if (msg == NULL) 
+        msg = PQerrorMessage(conn->pgconn);
+    if (conn->critical) free(conn->critical);
+    if (msg && msg[0] != '\0') conn->critical = strdup(msg);
+    else conn->critical = NULL;
+}
+
+PyObject *
+pq_resolve_critical(connectionObject *conn, int close)
+{
+    Dprintf("pq_resolve_critical: resolving %s", conn->critical);
+    
+    if (conn->critical) {
+        char *msg = &(conn->critical[6]);
+        Dprintf("pq_resolve_critical: error = %s", msg);
+        /* we can't use pq_raise because the error has already been cleared
+           from the connection, so we just raise an OperationalError with the
+           critical message */
+        PyErr_SetString(OperationalError, msg);
+        
+        /* we don't want to destroy this connection but just close it */
+        if (close == 1) conn_close(conn);
+    }
+    return NULL;
+}
+
+/* pq_clear_async - clear the effects of a previous async query
+
+   note that this function does block because it needs to wait for the full
+   result sets of the previous query to clear them.
+
+   
+   this function does not call any Py_*_ALLOW_THREADS macros */
+
+void
+pq_clear_async(connectionObject *conn)
+{
+    PGresult *pgres;
+
+    do {
+        pgres = PQgetResult(conn->pgconn);
+        Dprintf("pq_clear_async: clearing PGresult at %p", pgres);
+        IFCLEARPGRES(pgres);
+    } while (pgres != NULL);
+}
+
+/* pq_begin - send a BEGIN WORK, if necessary
+
+   this function does not call any Py_*_ALLOW_THREADS macros */
+
+int
+pq_begin(connectionObject *conn)
+{
+    const char *query[] = {
+        NULL,
+        "BEGIN; SET TRANSACTION ISOLATION LEVEL READ COMMITTED",
+        "BEGIN; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE"};
+    
+    int pgstatus, retvalue = -1;
+    PGresult *pgres = NULL;
+
+    Dprintf("pq_begin: pgconn = %p, isolevel = %ld, status = %d",
+            conn->pgconn, conn->isolation_level, conn->status);
+
+    if (conn->isolation_level == 0 || conn->status != CONN_STATUS_READY) {
+        Dprintf("pq_begin: transaction in progress");
+        return 0;
+    }
+
+    pq_clear_async(conn);
+    pgres = PQexec(conn->pgconn, query[conn->isolation_level]);
+    if (pgres == NULL) {
+        Dprintf("pq_begin: PQexec() failed");
+        pq_set_critical(conn, NULL);
+        goto cleanup;
+    }
+
+    pgstatus = PQresultStatus(pgres);
+    if (pgstatus != PGRES_COMMAND_OK ) {
+        Dprintf("pq_begin: result is NOT OK");
+        pq_set_critical(conn, NULL);
+        goto cleanup;
+    }
+    Dprintf("pq_begin: issued '%s' command", query[conn->isolation_level]);
+
+    retvalue = 0;
+    conn->status = CONN_STATUS_BEGIN;
+
+ cleanup:
+    IFCLEARPGRES(pgres);
+    return retvalue;
+}
+
+/* pq_commit - send an END, if necessary
+
+   this function does not call any Py_*_ALLOW_THREADS macros */
+
+int
+pq_commit(connectionObject *conn)
+{
+    const char *query = "END";
+    int pgstatus, retvalue = -1;
+    PGresult *pgres = NULL;
+
+    Dprintf("pq_commit: pgconn = %p, isolevel = %ld, status = %d",
+            conn->pgconn, conn->isolation_level, conn->status);
+
+    if (conn->isolation_level == 0 || conn->status != CONN_STATUS_BEGIN) {
+        Dprintf("pq_commit: no transaction to commit");
+        return 0;
+    }
+
+    pq_clear_async(conn);
+    pgres = PQexec(conn->pgconn, query);
+    if (pgres == NULL) {
+        Dprintf("pq_commit: PQexec() failed");
+        pq_set_critical(conn, NULL);
+        goto cleanup;
+    }
+
+    pgstatus = PQresultStatus(pgres);
+    if (pgstatus != PGRES_COMMAND_OK ) {
+        Dprintf("pq_commit: result is NOT OK");
+        pq_set_critical(conn, NULL);
+        goto cleanup;
+    }
+    Dprintf("pq_commit: issued '%s' command", query);
+
+    retvalue = 0;
+    conn->status = CONN_STATUS_READY;
+
+ cleanup:
+    IFCLEARPGRES(pgres);
+    return retvalue;
+}
+
+/* pq_abort - send an ABORT, if necessary
+
+   this function does not call any Py_*_ALLOW_THREADS macros */
+
+int
+pq_abort(connectionObject *conn)
+{
+    const char *query = "ABORT";
+    int pgstatus, retvalue = -1;
+    PGresult *pgres = NULL;
+
+    Dprintf("pq_abort: pgconn = %p, isolevel = %ld, status = %d",
+            conn->pgconn, conn->isolation_level, conn->status);
+
+    if (conn->isolation_level == 0 || conn->status != CONN_STATUS_BEGIN) {
+        Dprintf("pq_abort: no transaction to abort");
+        return 0;
+    }
+
+    pq_clear_async(conn);
+    pgres = PQexec(conn->pgconn, query);
+    if (pgres == NULL) {
+        Dprintf("pq_abort: PQexec() failed");
+        pq_set_critical(conn, NULL);
+        goto cleanup;
+    }
+
+    pgstatus = PQresultStatus(pgres);
+    if (pgstatus != PGRES_COMMAND_OK ) {
+        Dprintf("pq_abort: result is NOT OK");
+        pq_set_critical(conn, NULL);
+        goto cleanup;
+    }
+    Dprintf("pq_abort: issued '%s' command", query);
+
+    retvalue = 0;
+    conn->status = CONN_STATUS_READY;
+
+ cleanup:
+    IFCLEARPGRES(pgres);
+    return retvalue;
+}
+
+/* pq_is_busy - consume input and return connection status
+   a status of 1 means that a call to pq_fetch will block, while a status of 0
+   means that there is data available to be collected. -1 means an error, the
+   exception will be set accordingly.
+
+   this fucntion locks the connection object
+   this function call Py_*_ALLOW_THREADS macros */
+
+int
+pq_is_busy(connectionObject *conn)
+{
+    PGnotify *pgn;
+    
+    Dprintf("pq_is_busy: consuming input");
+
+    Py_BEGIN_ALLOW_THREADS;
+    pthread_mutex_lock(&(conn->lock));
+
+    if (PQconsumeInput(conn->pgconn) == 0) {
+        Dprintf("pq_is_busy: PQconsumeInput() failed");
+        pthread_mutex_unlock(&(conn->lock));
+        Py_BLOCK_THREADS;
+        PyErr_SetString(OperationalError, PQerrorMessage(conn->pgconn));
+        return -1;
+    }
+
+    pthread_mutex_unlock(&(conn->lock));
+    Py_END_ALLOW_THREADS;
+    
+    /* now check for notifies */
+    while ((pgn = PQnotifies(conn->pgconn)) != NULL) {
+        PyObject *notify;
+        
+        Dprintf("curs_is_busy: got NOTIFY from pid %d, msg = %s",
+                pgn->be_pid, pgn->relname);
+
+        notify = PyTuple_New(2);
+        PyTuple_SET_ITEM(notify, 0, PyInt_FromLong((long)pgn->be_pid));
+        PyTuple_SET_ITEM(notify, 1, PyString_FromString(pgn->relname));
+        PyList_Append(conn->notifies, notify);
+        free(pgn);
+    }
+    
+    return PQisBusy(conn->pgconn);
+}
+
+/* pq_execute - execute a query, possibly asyncronously
+
+   this fucntion locks the connection object
+   this function call Py_*_ALLOW_THREADS macros */
+
+int
+pq_execute(cursorObject *curs, const char *query, int async)
+{
+    /* if the status of the connection is critical raise an exception and
+       definitely close the connection */
+    if (curs->conn->critical) {
+        pq_resolve_critical(curs->conn, 1);
+        return -1;
+    }
+
+    /* check status of connection, raise error if not OK */
+    if (PQstatus(curs->conn->pgconn) != CONNECTION_OK) {
+        Dprintf("pq_execute: connection NOT OK");
+        PyErr_SetString(OperationalError, PQerrorMessage(curs->conn->pgconn));
+        return -1;
+    }
+    Dprintf("curs_execute: pg connection at %p OK", curs->conn->pgconn);
+
+    Py_BEGIN_ALLOW_THREADS;
+    pthread_mutex_lock(&(curs->conn->lock));
+
+    pq_begin(curs->conn);
+
+    if (async == 0) {
+        IFCLEARPGRES(curs->pgres);
+        Dprintf("pq_execute: executing SYNC query:");
+        Dprintf("    %-.200s", query);
+        curs->pgres = PQexec(curs->conn->pgconn, query);
+    }
+
+    else if (async == 1) {
+        /* first of all, let see if the previous query has already ended, if
+           not what should we do? just block and discard data or execute
+           another query? */
+        pq_clear_async(curs->conn);
+        
+        Dprintf("pq_execute: executing ASYNC query:");
+        Dprintf("    %-.200s", query);
+        
+        /* then we can go on and send a new query without fear */
+        IFCLEARPGRES(curs->pgres);
+        if (PQsendQuery(curs->conn->pgconn, query) == 0) {
+            pthread_mutex_unlock(&(curs->conn->lock));
+            Py_BLOCK_THREADS;
+            PyErr_SetString(OperationalError,
+                            PQerrorMessage(curs->conn->pgconn));
+            return -1;
+        }
+        Dprintf("pq_execute: async query sent to backend");
+    }
+    
+    pthread_mutex_unlock(&(curs->conn->lock));
+    Py_END_ALLOW_THREADS;
+    
+    /* if the execute was sync, we call pq_fetch() immediately,
+       to respect the old DBAPI-2.0 compatible behaviour */
+    if (async == 0) {
+        Dprintf("pq_execute: entering syncronous DBAPI compatibility mode");
+        if (pq_fetch(curs) == -1) return -1;
+    }
+    else {
+        curs->conn->async_cursor = (PyObject*)curs;
+    }
+    
+    return 1-async;
+}
+
+
+/* pq_fetch - fetch data after a query
+
+   this fucntion locks the connection object
+   this function call Py_*_ALLOW_THREADS macros
+
+   return value:
+     -1 - some error occurred while calling libpq
+      0 - no result from the backend but no libpq errors
+      1 - result from backend (possibly data is ready)
+*/
+
+static void
+_pq_fetch_tuples(cursorObject *curs)
+{
+    int i, *dsize = NULL;
+
+    int pgnfields = PQnfields(curs->pgres);
+    int pgbintuples = PQbinaryTuples(curs->pgres);
+
+    curs->notuples = 0;
+
+    /* create the tuple for description and typecasting */
+    Py_XDECREF(curs->description);
+    Py_XDECREF(curs->casts);
+    curs->description = PyTuple_New(pgnfields);
+    curs->casts = PyTuple_New(pgnfields);
+    curs->columns = pgnfields;
+    
+    /* calculate the display size for each column (cpu intensive, can be
+       switched off at configuration time) */
+#ifdef PSYCOPG_DISPLAY_SIZE
+    dsize = (int *)PyMem_Malloc(pgnfields * sizeof(int));
+    if (dsize != NULL) {
+        int j, len;
+        for (i=0; i < pgnfields; i++) {
+            dsize[i] = -1;
+        }
+        for (j = 0; j < curs->rowcount; j++) {
+            for (i = 0; i < pgnfields; i++) {
+                len = PQgetlength(curs->pgres, j, i);
+                if (len > dsize[i]) dsize[i] = len;
+            }
+        }
+    }
+#endif
+
+    /* calculate various parameters and typecasters */
+    for (i = 0; i < pgnfields; i++) {
+        Oid ftype = PQftype(curs->pgres, i);
+        int fsize = PQfsize(curs->pgres, i);
+        int fmod =  PQfmod(curs->pgres, i);
+        
+        PyObject *dtitem = PyTuple_New(7);
+        PyObject *type = PyInt_FromLong(ftype);
+        PyObject *cast = NULL;
+        
+        PyTuple_SET_ITEM(curs->description, i, dtitem);
+        
+        /* fill the right cast function by accessing the global dictionary of
+           casting objects.  if we got no defined cast use the default
+           one */
+        if (!(cast = PyDict_GetItem(curs->casts, type))) {
+            Dprintf("_pq_fetch_tuples: cast %d not in per-cursor dict", ftype);
+            if (!(cast = PyDict_GetItem(psyco_types, type))) {
+                Dprintf("_pq_fetch_tuples: cast %d not found, using default",
+                        PQftype(curs->pgres,i));
+                cast = psyco_default_cast;
+            }
+        }
+        /* else if we got binary tuples and if we got a field that
+           is binary use the default cast
+           FIXME: what the hell am I trying to do here? This just can't work..
+        */
+        else if (pgbintuples && cast == psyco_default_binary_cast) {
+            Dprintf("_pq_fetch_tuples: Binary cursor and "
+                    "binary field: %i using default cast",
+                    PQftype(curs->pgres,i));
+            cast = psyco_default_cast;
+        }
+        Dprintf("_pq_fetch_tuples: using cast at %p (%s) for type %d",
+                cast, PyString_AS_STRING(((typecastObject*)cast)->name),
+                PQftype(curs->pgres,i));
+        Py_INCREF(cast);
+        PyTuple_SET_ITEM(curs->casts, i, cast);
+    
+
+        /* 1/ fill the other fields */
+        PyTuple_SET_ITEM(dtitem, 0,
+                         PyString_FromString(PQfname(curs->pgres, i)));
+        PyTuple_SET_ITEM(dtitem, 1, type);
+
+        /* 2/ display size is the maximum size of this field result tuples. */
+        if (dsize && dsize[i] >= 0) {
+            PyTuple_SET_ITEM(dtitem, 2, PyInt_FromLong(dsize[i]));
+        }
+        else {
+            Py_INCREF(Py_None);
+            PyTuple_SET_ITEM(dtitem, 2, Py_None);
+        }
+
+        /* 3/ size on the backend */
+        if (fmod > 0) fmod = fmod - sizeof(int);
+        if (fsize == -1) {
+            if (ftype == NUMERICOID) {
+                PyTuple_SET_ITEM(dtitem, 3,
+                                 PyInt_FromLong((fmod >> 16) & 0xFFFF));
+            }
+            else { /* If variable length record, return maximum size */
+                PyTuple_SET_ITEM(dtitem, 3, PyInt_FromLong(fmod));
+            }
+        }
+        else {
+            PyTuple_SET_ITEM(dtitem, 3, PyInt_FromLong(fsize));
+        }
+
+        /* 4,5/ scale and precision */
+        if (ftype == NUMERICOID) {
+            PyTuple_SET_ITEM(dtitem, 4, PyInt_FromLong((fmod >> 16) & 0xFFFF));
+            PyTuple_SET_ITEM(dtitem, 5, PyInt_FromLong((fmod & 0xFFFF) - 4));
+        }
+        else {
+            Py_INCREF(Py_None);
+            PyTuple_SET_ITEM(dtitem, 4, Py_None);
+            Py_INCREF(Py_None);
+            PyTuple_SET_ITEM(dtitem, 5, Py_None);
+        }
+
+        /* 6/ FIXME: null_ok??? */
+        Py_INCREF(Py_None);
+        PyTuple_SET_ITEM(dtitem, 6, Py_None);
+    }
+    
+    if (dsize) PyMem_Free(dsize);
+}
+
+#ifdef HAVE_PQPROTOCOL3
+static int
+_pq_copy_in_v3(cursorObject *curs)
+{
+    /* COPY FROM implementation when protocol 3 is available: this function
+       uses the new PQputCopyData() and can detect errors and set the correct
+       exception */
+    PyObject *o;
+    int length = 0, error = 0;
+    
+    while (1) {
+        o = PyObject_CallMethod(curs->copyfile, "read", "i", curs->copysize);
+        if (!o || !PyString_Check(o) || (length = PyString_Size(o)) == -1) {
+            error = 1;
+        }
+        if (length == 0 || error == 1) break;
+        
+        Py_BEGIN_ALLOW_THREADS;
+        if (PQputCopyData(curs->conn->pgconn,
+                          PyString_AS_STRING(o), length) == -1) {
+            error = 2;
+        }
+        Py_END_ALLOW_THREADS;
+
+        if (error == 2) break;
+        
+        Py_DECREF(o);
+    }
+    
+    Py_XDECREF(o);
+    
+    if (error == 0 || error == 2)
+        /* 0 means that the copy went well, 2 that there was an error on the
+           backend: in both cases we'll get the error message from the
+           PQresult */
+        PQputCopyEnd(curs->conn->pgconn, NULL);
+    else
+        PQputCopyEnd(curs->conn->pgconn, "error during .read() call");
+
+    /* and finally we grab the operation result from the backend */
+    IFCLEARPGRES(curs->pgres);
+    while ((curs->pgres = PQgetResult(curs->conn->pgconn)) != NULL) {
+        if (PQresultStatus(curs->pgres) == PGRES_FATAL_ERROR)
+            pq_raise(curs->conn, curs, NULL, NULL);
+        IFCLEARPGRES(curs->pgres);
+    }
+
+    return 1;
+}
+#endif
+static int
+_pq_copy_in(cursorObject *curs)
+{
+    /* COPY FROM implementation when protocol 3 is not available: this
+       function can't fail but the backend will send an ERROR notice that will
+       be catched by our notice collector */
+    PyObject *o;
+
+    while (1) {
+        o = PyObject_CallMethod(curs->copyfile, "readline", NULL);
+        if (!o || o == Py_None || PyString_GET_SIZE(o) == 0) break;
+        if (PQputline(curs->conn->pgconn, PyString_AS_STRING(o)) != 0) {
+            Py_DECREF(o);
+            return -1;
+        }
+        Py_DECREF(o);
+    }
+    Py_XDECREF(o);
+    PQputline(curs->conn->pgconn, "\\.\n");
+    PQendcopy(curs->conn->pgconn);
+
+    /* if for some reason we're using a protocol 3 libpq to connect to a
+       protocol 2 backend we still need to cycle on the result set */
+    IFCLEARPGRES(curs->pgres);
+    while ((curs->pgres = PQgetResult(curs->conn->pgconn)) != NULL) {
+        if (PQresultStatus(curs->pgres) == PGRES_FATAL_ERROR)
+            pq_raise(curs->conn, curs, NULL, NULL);
+        IFCLEARPGRES(curs->pgres);
+    }
+
+    return 1;
+}
+
+#ifdef HAVE_PQPROTOCOL3
+static int
+_pq_copy_out_v3(cursorObject *curs)
+{
+    char *buffer;
+    int len;
+    
+    while (1) {
+        Py_BEGIN_ALLOW_THREADS;
+        len = PQgetCopyData(curs->conn->pgconn, &buffer, 0);
+        Py_END_ALLOW_THREADS;
+            
+        if (len > 0 && buffer) {
+            PyObject_CallMethod(curs->copyfile, "write", "s#", buffer, len);
+            PQfreemem(buffer);
+        }
+        /* we break on len == 0 but note that that should *not* happen,
+           because we are not doing an async call (if it happens blame
+           postgresql authors :/) */
+        else if (len <= 0) break;
+    }
+    
+    if (len == -2) {
+        pq_raise(curs->conn, NULL, NULL, NULL);
+        return -1;
+    }
+
+    /* and finally we grab the operation result from the backend */
+    IFCLEARPGRES(curs->pgres);
+    while ((curs->pgres = PQgetResult(curs->conn->pgconn)) != NULL) {
+        if (PQresultStatus(curs->pgres) == PGRES_FATAL_ERROR)
+            pq_raise(curs->conn, curs, NULL, NULL);
+        IFCLEARPGRES(curs->pgres);
+    }
+    return 1;
+}
+#endif
+
+static int
+_pq_copy_out(cursorObject *curs)
+{
+    char buffer[4096];
+    int status, len;
+
+    while (1) {
+        Py_BEGIN_ALLOW_THREADS;
+        status = PQgetline(curs->conn->pgconn, buffer, 4096);
+        Py_END_ALLOW_THREADS;
+        if (status == 0) {
+            if (buffer[0] == '\\' && buffer[1] == '.') break;
+
+            len = strlen(buffer);
+            buffer[len++] = '\n';
+        }
+        else if (status == 1) {
+            len = 4096-1;
+        }
+        else {
+            return -1;
+        }
+        
+        PyObject_CallMethod(curs->copyfile, "write", "s#", buffer, len);
+    }
+
+    status = 1;
+    if (PQendcopy(curs->conn->pgconn) != 0)
+        status = -1;
+    
+    /* if for some reason we're using a protocol 3 libpq to connect to a
+       protocol 2 backend we still need to cycle on the result set */
+    IFCLEARPGRES(curs->pgres);
+    while ((curs->pgres = PQgetResult(curs->conn->pgconn)) != NULL) {
+        if (PQresultStatus(curs->pgres) == PGRES_FATAL_ERROR)
+            pq_raise(curs->conn, curs, NULL, NULL);
+        IFCLEARPGRES(curs->pgres);
+    }
+
+    return status;
+}
+
+int
+pq_fetch(cursorObject *curs)
+{
+    int pgstatus, ex = -1;
+
+    /* even if we fail, we remove any information about the previous query */
+    curs_reset(curs);
+    
+    /* we check the result from the previous execute; if the result is not
+       already there, we need to consume some input and go to sleep until we
+       get something edible to eat */
+    if (!curs->pgres) {
+        
+        Dprintf("pq_fetch: no data: entering polling loop");
+        
+        while (pq_is_busy(curs->conn) > 0) {
+            fd_set rfds;
+            struct timeval tv;
+            int sval, sock;
+
+            Py_BEGIN_ALLOW_THREADS;
+            pthread_mutex_lock(&(curs->conn->lock));
+
+            sock = PQsocket(curs->conn->pgconn);
+            FD_ZERO(&rfds);
+            FD_SET(sock, &rfds);
+
+            /* set a default timeout of 5 seconds
+               TODO: make use of the timeout, maybe allowing the user to
+               make a non-blocking (timeouted) call to fetchXXX */
+            tv.tv_sec = 5;
+            tv.tv_usec = 0;
+
+            Dprintf("pq_fetch: entering PDflush() loop");
+            while (PQflush(curs->conn->pgconn) != 0);
+            sval = select(sock+1, &rfds, NULL, NULL, &tv);
+
+            pthread_mutex_unlock(&(curs->conn->lock));
+            Py_END_ALLOW_THREADS;
+        }
+
+        Dprintf("pq_fetch: data is probably ready");
+        IFCLEARPGRES(curs->pgres);
+        curs->pgres = PQgetResult(curs->conn->pgconn);
+    }
+
+    /* check for PGRES_FATAL_ERROR result */
+    /* FIXME: I am not sure we need to check for critical error here.
+    if (curs->pgres == NULL) {
+        Dprintf("pq_fetch: got a NULL pgres, checking for critical");
+        pq_set_critical(curs->conn);
+        if (curs->conn->critical) {
+            pq_resolve_critical(curs->conn);
+            return -1;
+        }
+        else {
+            return 0;
+        }
+    }
+    */
+    
+    if (curs->pgres == NULL) return 0;
+    
+    pgstatus = PQresultStatus(curs->pgres);
+    Dprintf("pq_fetch: pgstatus = %s", PQresStatus(pgstatus));
+
+    /* backend status message */
+    Py_XDECREF(curs->pgstatus);
+    curs->pgstatus = PyString_FromString(PQcmdStatus(curs->pgres));
+
+    switch(pgstatus) {
+
+    case PGRES_COMMAND_OK:
+        Dprintf("pq_fetch: command returned OK (no tuples)");
+        curs->rowcount = atoi(PQcmdTuples(curs->pgres));
+        curs->lastoid = PQoidValue(curs->pgres);
+        CLEARPGRES(curs->pgres);
+        ex = 1;
+        break;
+
+    case PGRES_COPY_OUT:
+        Dprintf("pq_fetch: data from a COPY TO (no tuples)");
+#ifdef HAVE_PQPROTOCOL3
+        if (curs->conn->protocol == 3)
+            ex = _pq_copy_out_v3(curs);
+        else
+#endif
+            ex = _pq_copy_out(curs);
+        curs->rowcount = -1;
+        /* error caught by out glorious notice handler */
+        if (PyErr_Occurred()) ex = -1;
+        IFCLEARPGRES(curs->pgres);
+        break;
+        
+    case PGRES_COPY_IN:
+        Dprintf("pq_fetch: data from a COPY FROM (no tuples)");
+#ifdef HAVE_PQPROTOCOL3
+        if (curs->conn->protocol == 3)        
+            ex = _pq_copy_in_v3(curs);
+        else
+#endif
+            ex = _pq_copy_in(curs);
+        curs->rowcount = -1;
+        /* error caught by out glorious notice handler */
+        if (PyErr_Occurred()) ex = -1;
+        IFCLEARPGRES(curs->pgres);
+        break;
+        
+    case PGRES_TUPLES_OK:
+        Dprintf("pq_fetch: data from a SELECT (got tuples)");
+        curs->rowcount = PQntuples(curs->pgres);
+        _pq_fetch_tuples(curs); ex = 0;
+        /* don't clear curs->pgres, because it contains the results! */
+        break;
+        
+    default:
+        Dprintf("pq_fetch: uh-oh, something FAILED");
+        pq_raise(curs->conn, curs, NULL, NULL);
+        IFCLEARPGRES(curs->pgres);
+        ex = -1;
+        break;
+    }
+
+    Dprintf("pq_fetch: fetching done; check for critical errors");
+    
+    /* error checking, close the connection if necessary (some critical errors
+       are not really critical, like a COPY FROM error: if that's the case we
+       raise the exception but we avoid to close the connection) */
+    if (curs->conn->critical) {
+        if (ex == -1) {
+            pq_resolve_critical(curs->conn, 1);
+        }
+        else {
+            pq_resolve_critical(curs->conn, 0);
+        }
+        return -1;
+    }
+    
+    return ex;
+}
diff --git a/trunk/psycopg2/psycopg/pqpath.h b/trunk/psycopg2/psycopg/pqpath.h
new file mode 100644 (file)
index 0000000..64d113e
--- /dev/null
@@ -0,0 +1,41 @@
+/* pqpath.h - definitions for pqpath.c
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_PQPATH_H
+#define PSYCOPG_PQPATH_H 1
+
+#include "psycopg/cursor.h"
+#include "psycopg/connection.h"
+
+/* macros to clean the pg result */
+#define IFCLEARPGRES(pgres)  if (pgres) {PQclear(pgres); pgres = NULL;}
+#define CLEARPGRES(pgres)    PQclear(pgres); pgres = NULL
+
+/* exported functions */
+extern int pq_fetch(cursorObject *curs);
+extern int pq_execute(cursorObject *curs, const char *query, int async);
+extern int pq_begin(connectionObject *conn);
+extern int pq_commit(connectionObject *conn);
+extern int pq_abort(connectionObject *conn);
+extern int pq_is_busy(connectionObject *conn);
+extern void pq_set_critical(connectionObject *conn, const char *msg);
+
+#endif /* !defined(PSYCOPG_PQPATH_H) */
diff --git a/trunk/psycopg2/psycopg/psycopg.h b/trunk/psycopg2/psycopg/psycopg.h
new file mode 100644 (file)
index 0000000..a689ea4
--- /dev/null
@@ -0,0 +1,142 @@
+/* psycopg.h - definitions for the psycopg python module 
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_H
+#define PSYCOPG_H 1
+
+#include <Python.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* DBAPI compliance parameters */
+#define APILEVEL "2.0"
+#define THREADSAFETY 2
+#define PARAMSTYLE "pyformat"
+    
+/* C API functions */
+#define psyco_errors_fill_NUM 0
+#define psyco_errors_fill_RETURN void
+#define psyco_errors_fill_PROTO (PyObject *dict)   
+#define psyco_errors_set_NUM 1
+#define psyco_errors_set_RETURN void
+#define psyco_errors_set_PROTO (PyObject *type)
+    
+/* Total number of C API pointers */
+#define PSYCOPG_API_pointers 2
+    
+#ifdef PSYCOPG_MODULE
+    /** This section is used when compiling psycopgmodule.c & co. **/
+extern psyco_errors_fill_RETURN psyco_errors_fill psyco_errors_fill_PROTO;
+extern psyco_errors_set_RETURN psyco_errors_set psyco_errors_set_PROTO;
+
+/* global excpetions */
+extern PyObject *Error, *Warning, *InterfaceError, *DatabaseError,
+    *InternalError, *OperationalError, *ProgrammingError,
+    *IntegrityError, *DataError, *NotSupportedError;
+
+/* python versions and compatibility stuff */
+#ifndef PyMODINIT_FUNC
+#define PyMODINIT_FUNC void
+#endif
+    
+#else
+    /** This section is used in modules that use psycopg's C API **/
+
+static void **PSYCOPG_API;
+
+#define psyco_errors_fill \
+ (*(psyco_errors_fill_RETURN (*)psyco_errors_fill_PROTO) \
+  PSYCOPG_API[psyco_errors_fill_NUM])
+#define psyco_errors_set \
+ (*(psyco_errors_set_RETURN (*)psyco_errors_set_PROTO) \
+  PSYCOPG_API[psyco_errors_set_NUM])
+    
+/* Return -1 and set exception on error, 0 on success. */
+static int
+import_psycopg(void)
+{
+    PyObject *module = PyImport_ImportModule("psycopg");
+
+    if (module != NULL) {
+        PyObject *c_api_object = PyObject_GetAttrString(module, "_C_API");
+        if (c_api_object == NULL) return -1;
+        if (PyCObject_Check(c_api_object))
+            PSYCOPG_API = (void **)PyCObject_AsVoidPtr(c_api_object);
+        Py_DECREF(c_api_object);
+    }
+    return 0;
+}
+
+#endif
+
+/* postgresql<->python encoding map */
+extern PyObject *psycoEncodings;
+    
+typedef struct {
+    char *pgenc;
+    char *pyenc;
+} encodingPair;
+
+/* the Decimal type, used by the DECIMAL typecaster */    
+extern PyObject *decimalType;
+
+/* some utility functions */
+extern void psyco_set_error(PyObject *exc, PyObject *curs,  char *msg, 
+                             char *pgerror, char *pgcode);
+                                  
+/* Exceptions docstrings */
+#define Error_doc \
+"Base class for error exceptions."
+
+#define Warning_doc \
+"A database warning."
+
+#define InterfaceError_doc \
+"Error related to the database interface."
+
+#define DatabaseError_doc \
+"Error related to the database engine."
+
+#define InternalError_doc \
+"The database encountered an internal error."
+
+#define OperationalError_doc \
+"Error related to database operation (disconnect, memory allocation etc)."
+
+#define ProgrammingError_doc \
+"Error related to database programming (SQL error, table not found etc)."
+
+#define IntegrityError_doc \
+"Error related to database integrity."
+
+#define DataError_doc \
+"Error related to problems with the processed data."
+
+#define NotSupportedError_doc \
+"A not supported datbase API was called."
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !defined(PSYCOPG_H) */
diff --git a/trunk/psycopg2/psycopg/psycopgmodule.c b/trunk/psycopg2/psycopg/psycopgmodule.c
new file mode 100644 (file)
index 0000000..426fb27
--- /dev/null
@@ -0,0 +1,672 @@
+/* psycopgmodule.c - psycopg module (will import other C classes)
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Python.h>
+
+#define PSYCOPG_MODULE
+#include "psycopg/config.h"
+#include "psycopg/python.h"
+#include "psycopg/psycopg.h"
+#include "psycopg/connection.h"
+#include "psycopg/cursor.h"
+#include "psycopg/typecast.h"
+#include "psycopg/microprotocols.h"
+#include "psycopg/microprotocols_proto.h"
+
+#include "psycopg/adapter_qstring.h"
+#include "psycopg/adapter_binary.h"
+#include "psycopg/adapter_pboolean.h"
+#include "psycopg/adapter_asis.h"
+#include "psycopg/adapter_list.h"
+#include "psycopg/typecast_binary.h"
+
+#ifdef HAVE_MXDATETIME
+#include <mxDateTime.h>
+#include "psycopg/adapter_mxdatetime.h"
+mxDateTimeModule_APIObject *mxDateTimeP = NULL;
+#endif
+
+/* some module-level variables, like the datetime module */
+#ifdef HAVE_PYDATETIME
+#include <datetime.h>
+#include "psycopg/adapter_datetime.h"
+PyObject *pyDateTimeModuleP = NULL;
+PyObject *pyDateTypeP = NULL;
+PyObject *pyTimeTypeP = NULL;
+PyObject *pyDateTimeTypeP = NULL;
+PyObject *pyDeltaTypeP = NULL;
+#endif
+
+/* pointers to the psycopg.tz classes */
+PyObject *pyPsycopgTzModule = NULL;
+PyObject *pyPsycopgTzLOCAL = NULL;
+PyObject *pyPsycopgTzFixedOffsetTimezone = NULL;
+
+PyObject *psycoEncodings = NULL;
+PyObject *decimalType = NULL;
+
+/** connect module-level function **/
+#define psyco_connect_doc \
+"connect(dsn, ...) -- Create a new database connection.\n\n"               \
+"This function supports two different but equivalent sets of arguments.\n" \
+"A single data source name or ``dsn`` string can be used to specify the\n" \
+"connection parameters, as follows::\n\n"                                  \
+"    psycopg2.connect(\"dbname=xxx user=xxx ...\")\n\n"   \
+"If ``dsn`` is not provided it is possible to pass the parameters as\n"    \
+"keyword arguments; e.g.::\n\n"                                            \
+"    psycopg2.connect(database='xxx', user='xxx', ...)\n\n"                \
+"The full list of available parameters is:\n\n"                            \
+"- ``dbname`` -- database name (only in 'dsn')\n"                          \
+"- ``database`` -- database name (only as keyword argument)\n"             \
+"- ``host`` -- host address (defaults to UNIX socket if not provided)\n"   \
+"- ``port`` -- port number (defaults to 5432 if not provided)\n"           \
+"- ``user`` -- user name used to authenticate\n"                           \
+"- ``password`` -- password used to authenticate\n"                        \
+"- ``sslmode`` -- SSL mode (see PostgreSQL documentation)\n\n"             \
+"If the ``connection_factory`` keyword argument is not provided this\n"    \
+"function always return an instance of the `connection` class.\n"          \
+"Else the given sub-class of `extensions.connection` will be used to\n"    \
+"instantiate the connection object.\n\n"                                   \
+":return: New database connection\n"                                         \
+":rtype: `extensions.connection`"
+
+static int
+_psyco_connect_fill_dsn(char *dsn, char *kw, char *v, int i)
+{
+    strcpy(&dsn[i], kw); i += strlen(kw);
+    strcpy(&dsn[i], v); i += strlen(v);
+    return i;
+}
+
+static void
+_psyco_connect_fill_exc(connectionObject *conn)
+{
+    /* fill the connection object with the exceptions */
+    conn->exc_Error = Error;
+    Py_INCREF(Error);
+    conn->exc_Warning = Warning;
+    Py_INCREF(Warning);
+    conn->exc_InterfaceError = InterfaceError;
+    Py_INCREF(InterfaceError);
+    conn->exc_DatabaseError = DatabaseError;
+    Py_INCREF(DatabaseError);
+    conn->exc_InternalError = InternalError;
+    Py_INCREF(InternalError);
+    conn->exc_ProgrammingError = ProgrammingError;
+    Py_INCREF(ProgrammingError);
+    conn->exc_IntegrityError = IntegrityError;
+    Py_INCREF(IntegrityError);
+    conn->exc_DataError = DataError;
+    Py_INCREF(DataError);
+    conn->exc_NotSupportedError = NotSupportedError;
+    Py_INCREF(NotSupportedError);
+    conn->exc_OperationalError = OperationalError;
+    Py_INCREF(OperationalError);
+}
+
+static PyObject *
+psyco_connect(PyObject *self, PyObject *args, PyObject *keywds)
+{
+    PyObject *conn, *factory = NULL;
+    PyObject *pyport = NULL;
+    
+    int idsn=-1, iport=-1;
+    char *dsn=NULL, *database=NULL, *user=NULL, *password=NULL;
+    char *host=NULL, *sslmode=NULL;
+    char port[16];
+    
+    static char *kwlist[] = {"dsn", "database", "host", "port",
+                             "user", "password", "sslmode",
+                             "connection_factory", NULL};
+    
+    if (!PyArg_ParseTupleAndKeywords(args, keywds, "|sssOsssO", kwlist,
+                                     &dsn, &database, &host, &pyport,
+                                     &user, &password, &sslmode, &factory)) {
+        return NULL;
+    }
+
+    if (pyport && PyString_Check(pyport)) {
+       PyObject *pyint = PyInt_FromString(PyString_AsString(pyport), NULL, 10);
+       if (!pyint) return NULL;
+       iport = PyInt_AsLong(pyint);
+    }
+    else if (pyport && PyInt_Check(pyport)) {
+       iport = PyInt_AsLong(pyport);
+    }
+    else if (pyport != NULL) {
+       PyErr_SetString(PyExc_TypeError, "port must be a string or int");
+       return NULL;
+    }
+
+    if (iport > 0)
+      PyOS_snprintf(port, 16, "%d", iport);
+
+    if (dsn == NULL) {
+        int l = 45;  /* len("dbname= user= password= host= port= sslmode=\0") */
+
+        if (database) l += strlen(database);
+        if (host) l += strlen(host);
+        if (iport > 0) l += strlen(port);
+        if (user) l += strlen(user);
+        if (password) l += strlen(password);
+        if (sslmode) l += strlen(sslmode);
+        
+        dsn = malloc(l*sizeof(char));
+        if (dsn == NULL) {
+            PyErr_SetString(InterfaceError, "dynamic dsn allocation failed");
+            return NULL;
+        }
+
+        idsn = 0;
+        if (database)
+            idsn = _psyco_connect_fill_dsn(dsn, " dbname=", database, idsn);
+        if (host)
+            idsn = _psyco_connect_fill_dsn(dsn, " host=", host, idsn);
+        if (iport > 0)
+            idsn = _psyco_connect_fill_dsn(dsn, " port=", port, idsn);
+        if (user)
+            idsn = _psyco_connect_fill_dsn(dsn, " user=", user, idsn);
+        if (password)
+            idsn = _psyco_connect_fill_dsn(dsn, " password=", password, idsn);
+        if (sslmode)
+            idsn = _psyco_connect_fill_dsn(dsn, " sslmode=", sslmode, idsn);
+        
+        if (idsn > 0) {
+            dsn[idsn] = '\0';
+            memmove(dsn, &dsn[1], idsn);
+        }
+        else {
+            free(dsn);
+            PyErr_SetString(InterfaceError, "missing dsn and no parameters");
+            return NULL;
+        }
+    }
+
+    Dprintf("psyco_connect: dsn = '%s'", dsn);
+
+    /* allocate connection, fill with errors and return it */
+    if (factory == NULL) factory = (PyObject *)&connectionType;
+    conn = PyObject_CallFunction(factory, "s", dsn);
+    if (conn) _psyco_connect_fill_exc((connectionObject*)conn);
+    
+    return conn;
+}
+
+/** type registration **/
+#define psyco_register_type_doc \
+"register_type(obj) -> None -- register obj with psycopg type system\n\n" \
+":Parameters:\n" \
+"  * `obj`: A type adapter created by `new_type()`"
+
+#define typecast_from_python_doc \
+"new_type(oids, name, adapter) -> new type object\n\n" \
+"Create a new binding object. The object can be used with the\n" \
+"`register_type()` function to bind PostgreSQL objects to python objects.\n\n" \
+":Parameters:\n" \
+"  * `oids`: Tuple of ``oid`` of the PostgreSQL types to convert.\n" \
+"  * `name`: Name for the new type\n" \
+"  * `adapter`: Callable to perform type conversion.\n" \
+"    It must have the signature ``fun(value, cur)`` where ``value`` is\n" \
+"    the string representation returned by PostgreSQL (`None` if ``NULL``)\n" \
+"    and ``cur`` is the cursor from which data are read."
+
+static PyObject *
+psyco_register_type(PyObject *self, PyObject *args)
+{
+    PyObject *type;
+
+    if (!PyArg_ParseTuple(args, "O!", &typecastType, &type)) {
+        return NULL;
+    }
+
+    typecast_add(type, 0);
+    
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+/* default adapters */
+
+static void
+psyco_adapters_init(PyObject *mod)
+{
+    PyObject *call;
+    
+    microprotocols_add(&PyFloat_Type, NULL, (PyObject*)&asisType);
+    microprotocols_add(&PyInt_Type, NULL, (PyObject*)&asisType);
+    microprotocols_add(&PyLong_Type, NULL, (PyObject*)&asisType);
+    
+    microprotocols_add(&PyString_Type, NULL, (PyObject*)&qstringType);
+    microprotocols_add(&PyUnicode_Type, NULL, (PyObject*)&qstringType);
+    microprotocols_add(&PyBuffer_Type, NULL, (PyObject*)&binaryType);
+    microprotocols_add(&PyList_Type, NULL, (PyObject*)&listType);
+                       
+#ifdef HAVE_MXDATETIME
+    /* the module has already been initialized, so we can obtain the callable
+       objects directly from its dictionary :) */
+    call = PyMapping_GetItemString(mod, "TimestampFromMx");
+    microprotocols_add(mxDateTimeP->DateTime_Type, NULL, call);
+    call = PyMapping_GetItemString(mod, "TimeFromMx");
+    microprotocols_add(mxDateTimeP->DateTimeDelta_Type, NULL, call);
+#endif
+
+#ifdef HAVE_PYDATETIME
+    /* as above, we use the callable objects from the psycopg module */
+    call = PyMapping_GetItemString(mod, "DateFromPy");
+    microprotocols_add((PyTypeObject*)pyDateTypeP, NULL, call);
+    call = PyMapping_GetItemString(mod, "TimeFromPy");
+    microprotocols_add((PyTypeObject*)pyTimeTypeP, NULL, call);
+    call = PyMapping_GetItemString(mod, "TimestampFromPy");
+    microprotocols_add((PyTypeObject*)pyDateTimeTypeP, NULL, call);
+    call = PyMapping_GetItemString(mod, "IntervalFromPy");
+    microprotocols_add((PyTypeObject*)pyDeltaTypeP, NULL, call);
+#endif
+    
+#ifdef HAVE_PYBOOL
+    microprotocols_add(&PyBool_Type, NULL, (PyObject*)&pbooleanType);
+#endif
+
+#ifdef HAVE_DECIMAL
+    microprotocols_add((PyTypeObject*)decimalType, NULL, (PyObject*)&asisType);
+#endif
+}
+
+/* psyco_encodings_fill
+   
+   Fill the module's postgresql<->python encoding table */
+
+static encodingPair encodings[] = {
+    {"SQL_ASCII",    "ascii"},
+    {"LATIN1",       "latin_1"},
+    {"UNICODE",      "utf_8"},
+    {"UTF8",         "utf_8"},
+    
+    /* some compatibility stuff */
+    {"LATIN-1",      "latin_1"},
+    
+    {NULL, NULL}
+};
+static void psyco_encodings_fill(PyObject *dict)
+{
+    encodingPair *enc;
+
+    for (enc = encodings; enc->pgenc != NULL; enc++) {
+        PyObject *value = PyString_FromString(enc->pyenc);
+        PyDict_SetItemString(dict, enc->pgenc, value);
+        Py_DECREF(value);
+    }
+}
+
+/* psyco_errors_init, psyco_errors_fill (callable from C)
+
+   Initialize the module's exceptions and after that a dictionary with a full
+   set of exceptions. */
+
+PyObject *Error, *Warning, *InterfaceError, *DatabaseError,
+    *InternalError, *OperationalError, *ProgrammingError,
+    *IntegrityError, *DataError, *NotSupportedError;
+
+/* mapping between exception names and their PyObject */
+static struct {
+    char *name;
+    PyObject **exc;
+    PyObject **base;
+    char *docstr;
+} exctable[] = {
+    { "psycopg2.Error", &Error, 0, Error_doc },
+    { "psycopg2.Warning", &Warning, 0, Warning_doc },
+    { "psycopg2.InterfaceError", &InterfaceError, &Error, InterfaceError_doc },
+    { "psycopg2.DatabaseError", &DatabaseError, &Error, DatabaseError_doc },
+    { "psycopg2.InternalError", &InternalError, &DatabaseError, InternalError_doc },
+    { "psycopg2.OperationalError", &OperationalError, &DatabaseError, 
+        OperationalError_doc },
+    { "psycopg2.ProgrammingError", &ProgrammingError, &DatabaseError, 
+        ProgrammingError_doc },
+    { "psycopg2.IntegrityError", &IntegrityError, &DatabaseError, 
+        IntegrityError_doc },
+    { "psycopg2.DataError", &DataError, &DatabaseError, DataError_doc },
+    { "psycopg2.NotSupportedError", &NotSupportedError, &DatabaseError, 
+        NotSupportedError_doc },
+    {NULL}  /* Sentinel */
+};
+
+static void
+psyco_errors_init(void)
+{
+    /* the names of the exceptions here reflect the oranization of the
+       psycopg2 module and not the fact the the original error objects
+       live in _psycopg */
+       
+    int i;
+    PyObject *dict;
+    PyObject *base;
+    PyObject *str;
+
+    for (i=0; exctable[i].name; i++) {
+        dict = PyDict_New();
+
+        if (exctable[i].docstr) {
+            str = PyString_FromString(exctable[i].docstr);
+            PyDict_SetItemString(dict, "__doc__", str);
+        }
+
+        if (exctable[i].base == 0)
+            base = PyExc_StandardError;
+        else
+            base = *exctable[i].base;
+
+        *exctable[i].exc = PyErr_NewException(exctable[i].name, base, dict);
+    }
+}
+
+void
+psyco_errors_fill(PyObject *dict)
+{
+    PyDict_SetItemString(dict, "Error", Error);
+    PyDict_SetItemString(dict, "Warning", Warning);
+    PyDict_SetItemString(dict, "InterfaceError", InterfaceError);
+    PyDict_SetItemString(dict, "DatabaseError", DatabaseError);
+    PyDict_SetItemString(dict, "InternalError", InternalError);
+    PyDict_SetItemString(dict, "OperationalError", OperationalError);
+    PyDict_SetItemString(dict, "ProgrammingError", ProgrammingError);
+    PyDict_SetItemString(dict, "IntegrityError", IntegrityError);
+    PyDict_SetItemString(dict, "DataError", DataError);
+    PyDict_SetItemString(dict, "NotSupportedError", NotSupportedError);    
+}
+
+void
+psyco_errors_set(PyObject *type)
+{
+    PyObject_SetAttrString(type, "Error", Error);
+    PyObject_SetAttrString(type, "Warning", Warning);
+    PyObject_SetAttrString(type, "InterfaceError", InterfaceError);
+    PyObject_SetAttrString(type, "DatabaseError", DatabaseError);
+    PyObject_SetAttrString(type, "InternalError", InternalError);
+    PyObject_SetAttrString(type, "OperationalError", OperationalError);
+    PyObject_SetAttrString(type, "ProgrammingError", ProgrammingError);
+    PyObject_SetAttrString(type, "IntegrityError", IntegrityError);
+    PyObject_SetAttrString(type, "DataError", DataError);
+    PyObject_SetAttrString(type, "NotSupportedError", NotSupportedError);
+}
+
+/* psyco_error_new
+  
+   Create a new error of the given type with extra attributes. */
+   
+void
+psyco_set_error(PyObject *exc, PyObject *curs, char *msg, 
+                 char *pgerror, char *pgcode)
+{
+    PyObject *t;
+    
+    PyObject *err = PyObject_CallFunction(exc, "s", msg);
+  
+    if (err) {
+        if (pgerror) {
+            t = PyString_FromString(pgerror);
+        }
+        else {
+            t = Py_None ; Py_INCREF(t);
+        }
+        PyObject_SetAttrString(err, "pgerror", t);
+        Py_DECREF(t);
+
+        if (pgcode) {
+            t = PyString_FromString(pgcode);
+        }
+        else {
+            t = Py_None ; Py_INCREF(t);
+        }
+        PyObject_SetAttrString(err, "pgcode", t);
+        Py_DECREF(t);
+        
+        if (curs)
+            PyObject_SetAttrString(err, "cursor", curs);
+        else
+            PyObject_SetAttrString(err, "cursor", Py_None);
+
+        PyErr_SetObject(exc, err);
+       Py_DECREF(err);
+    }
+} 
+
+/* psyco_decimal_init
+
+   Initialize the module's pointer to the decimal type. */
+
+void
+psyco_decimal_init(void)
+{
+#ifdef HAVE_DECIMAL
+    PyObject *decimal = PyImport_ImportModule("decimal");
+    if (decimal) {
+        decimalType = PyObject_GetAttrString(decimal, "Decimal");
+    }
+    else {
+        PyErr_Clear();
+        decimalType = (PyObject *)&PyFloat_Type;
+        Py_INCREF(decimalType);
+    }
+#endif
+}
+
+
+/** method table and module initialization **/
+
+static PyMethodDef psycopgMethods[] = {
+    {"connect",  (PyCFunction)psyco_connect,
+     METH_VARARGS|METH_KEYWORDS, psyco_connect_doc},
+    {"adapt",  (PyCFunction)psyco_microprotocols_adapt,
+     METH_VARARGS, psyco_microprotocols_adapt_doc},
+
+    {"register_type", (PyCFunction)psyco_register_type,
+     METH_VARARGS, psyco_register_type_doc},
+    {"new_type", (PyCFunction)typecast_from_python,
+     METH_VARARGS|METH_KEYWORDS, typecast_from_python_doc},
+
+    {"AsIs",  (PyCFunction)psyco_AsIs,
+     METH_VARARGS, psyco_AsIs_doc},
+    {"QuotedString",  (PyCFunction)psyco_QuotedString,
+     METH_VARARGS, psyco_QuotedString_doc},
+    {"Boolean",  (PyCFunction)psyco_Boolean,
+     METH_VARARGS, psyco_Boolean_doc},
+    {"Binary",  (PyCFunction)psyco_Binary,
+     METH_VARARGS, psyco_Binary_doc},
+    {"Date",  (PyCFunction)psyco_Date,
+     METH_VARARGS, psyco_Date_doc},
+    {"Time",  (PyCFunction)psyco_Time,
+     METH_VARARGS, psyco_Time_doc},
+    {"Timestamp",  (PyCFunction)psyco_Timestamp,
+     METH_VARARGS, psyco_Timestamp_doc},
+    {"DateFromTicks",  (PyCFunction)psyco_DateFromTicks,
+     METH_VARARGS, psyco_DateFromTicks_doc},
+    {"TimeFromTicks",  (PyCFunction)psyco_TimeFromTicks,
+     METH_VARARGS, psyco_TimeFromTicks_doc},
+    {"TimestampFromTicks",  (PyCFunction)psyco_TimestampFromTicks,
+     METH_VARARGS, psyco_TimestampFromTicks_doc},
+    {"List",  (PyCFunction)psyco_List,
+     METH_VARARGS, psyco_List_doc},
+    
+#ifdef HAVE_MXDATETIME
+    {"DateFromMx",  (PyCFunction)psyco_DateFromMx,
+     METH_VARARGS, psyco_DateFromMx_doc},
+    {"TimeFromMx",  (PyCFunction)psyco_TimeFromMx,
+     METH_VARARGS, psyco_TimeFromMx_doc},
+    {"TimestampFromMx",  (PyCFunction)psyco_TimestampFromMx,
+     METH_VARARGS, psyco_TimestampFromMx_doc},
+    {"IntervalFromMx",  (PyCFunction)psyco_IntervalFromMx,
+     METH_VARARGS, psyco_IntervalFromMx_doc}, 
+#endif
+
+#ifdef HAVE_PYDATETIME
+    {"DateFromPy",  (PyCFunction)psyco_DateFromPy,
+     METH_VARARGS, psyco_DateFromPy_doc},
+    {"TimeFromPy",  (PyCFunction)psyco_TimeFromPy,
+     METH_VARARGS, psyco_TimeFromPy_doc},
+    {"TimestampFromPy",  (PyCFunction)psyco_TimestampFromPy,
+     METH_VARARGS, psyco_TimestampFromPy_doc},
+    {"IntervalFromPy",  (PyCFunction)psyco_IntervalFromPy,
+     METH_VARARGS, psyco_IntervalFromPy_doc},     
+#endif
+
+    {NULL, NULL, 0, NULL}        /* Sentinel */
+};
+
+PyMODINIT_FUNC
+init_psycopg(void)
+{
+    static void *PSYCOPG_API[PSYCOPG_API_pointers];
+    
+    PyObject *module, *dict;
+    PyObject *c_api_object;
+
+    Dprintf("initpsycopg: initializing psycopg %s", PSYCOPG_VERSION);
+
+    /* initialize all the new types and then the module */
+    connectionType.ob_type = &PyType_Type;
+    cursorType.ob_type     = &PyType_Type;
+    typecastType.ob_type   = &PyType_Type;
+    qstringType.ob_type    = &PyType_Type;
+    binaryType.ob_type     = &PyType_Type;
+    isqlquoteType.ob_type  = &PyType_Type;
+    asisType.ob_type       = &PyType_Type;
+    listType.ob_type       = &PyType_Type;
+    chunkType.ob_type      = &PyType_Type;
+    
+    if (PyType_Ready(&connectionType) == -1) return;
+    if (PyType_Ready(&cursorType) == -1) return;
+    if (PyType_Ready(&typecastType) == -1) return;
+    if (PyType_Ready(&qstringType) == -1) return;
+    if (PyType_Ready(&binaryType) == -1) return;
+    if (PyType_Ready(&isqlquoteType) == -1) return;
+    if (PyType_Ready(&asisType) == -1) return;
+    if (PyType_Ready(&listType) == -1) return;
+    if (PyType_Ready(&chunkType) == -1) return;
+    
+#ifdef HAVE_PYBOOL
+    pbooleanType.ob_type   = &PyType_Type;
+    if (PyType_Ready(&pbooleanType) == -1) return;
+#endif
+    
+    /* import mx.DateTime module, if necessary */
+#ifdef HAVE_MXDATETIME
+    mxdatetimeType.ob_type = &PyType_Type;
+    if (PyType_Ready(&mxdatetimeType) == -1) return;
+    if (mxDateTime_ImportModuleAndAPI() != 0) {
+        Dprintf("initpsycopg: why marc hide mx.DateTime again?!"); 
+        PyErr_SetString(PyExc_ImportError, "can't import mx.DateTime module");
+        return;
+    }
+    mxDateTimeP = &mxDateTime;
+#endif
+
+    /* import python builtin datetime module, if available */
+#ifdef HAVE_PYDATETIME
+    pyDateTimeModuleP = PyImport_ImportModule("datetime");
+    if (pyDateTimeModuleP == NULL) {
+        Dprintf("initpsycopg: can't import datetime module"); 
+        PyErr_SetString(PyExc_ImportError, "can't import datetime module");
+        return;
+    }
+    pydatetimeType.ob_type = &PyType_Type;
+    if (PyType_Ready(&pydatetimeType) == -1) return;
+
+    /* now we define the datetime types, this is crazy because python should
+       be doing that, not us! */
+    pyDateTypeP = PyObject_GetAttrString(pyDateTimeModuleP, "date");
+    pyTimeTypeP = PyObject_GetAttrString(pyDateTimeModuleP, "time");
+    pyDateTimeTypeP = PyObject_GetAttrString(pyDateTimeModuleP, "datetime");
+    pyDeltaTypeP = PyObject_GetAttrString(pyDateTimeModuleP, "timedelta");
+#endif    
+
+    /* import psycopg2.tz anyway (TODO: replace with C-level module?) */
+    pyPsycopgTzModule = PyImport_ImportModule("psycopg2.tz");
+    if (pyPsycopgTzModule == NULL) {
+        Dprintf("initpsycopg: can't import psycopg2.tz module"); 
+        PyErr_SetString(PyExc_ImportError, "can't import psycopg2.tz module");
+        return;        
+    }
+    pyPsycopgTzLOCAL = 
+        PyObject_GetAttrString(pyPsycopgTzModule, "LOCAL"); 
+    pyPsycopgTzFixedOffsetTimezone = 
+        PyObject_GetAttrString(pyPsycopgTzModule, "FixedOffsetTimezone");
+        
+    /* initialize the module and grab module's dictionary */
+    module = Py_InitModule("_psycopg", psycopgMethods);
+    dict = PyModule_GetDict(module);
+
+    /* initialize all the module's exported functions */
+    /* PyBoxer_API[PyBoxer_Fake_NUM] = (void *)PyBoxer_Fake; */
+
+    /* Create a CObject containing the API pointer array's address */
+    c_api_object = PyCObject_FromVoidPtr((void *)PSYCOPG_API, NULL);
+    if (c_api_object != NULL)
+        PyModule_AddObject(module, "_C_API", c_api_object);
+
+    /* other mixed initializations of module-level variables */
+    psycoEncodings = PyDict_New();
+    psyco_encodings_fill(psycoEncodings);
+    psyco_decimal_init();
+    
+    /* set some module's parameters */
+    PyModule_AddStringConstant(module, "__version__", PSYCOPG_VERSION);
+    PyModule_AddStringConstant(module, "__doc__", "psycopg PostgreSQL driver");
+    PyModule_AddObject(module, "apilevel", PyString_FromString(APILEVEL));
+    PyModule_AddObject(module, "threadsafety", PyInt_FromLong(THREADSAFETY));
+    PyModule_AddObject(module, "paramstyle", PyString_FromString(PARAMSTYLE));
+    
+    /* put new types in module dictionary */
+    PyModule_AddObject(module, "connection", (PyObject*)&connectionType);
+    PyModule_AddObject(module, "cursor", (PyObject*)&cursorType);
+    PyModule_AddObject(module, "ISQLQuote", (PyObject*)&isqlquoteType);
+    
+    /* encodings dictionary in module dictionary */
+    PyModule_AddObject(module, "encodings", psycoEncodings);
+    
+    /* initialize default set of typecasters */
+    typecast_init(dict);
+
+    /* initialize microprotocols layer */
+    microprotocols_init(dict);
+    psyco_adapters_init(dict);
+    
+    /* create a standard set of exceptions and add them to the module's dict */
+    psyco_errors_init();
+    psyco_errors_fill(dict);
+    
+    /* Solve win32 build issue about non-constant initializer element */
+    cursorType.tp_alloc = PyType_GenericAlloc;
+    binaryType.tp_alloc = PyType_GenericAlloc;
+    isqlquoteType.tp_alloc = PyType_GenericAlloc;
+    pbooleanType.tp_alloc = PyType_GenericAlloc;
+    connectionType.tp_alloc = PyType_GenericAlloc;
+    asisType.tp_alloc = PyType_GenericAlloc;
+    qstringType.tp_alloc = PyType_GenericAlloc;
+    listType.tp_alloc = PyType_GenericAlloc;
+    chunkType.tp_alloc = PyType_GenericAlloc;
+    
+#ifdef HAVE_PYDATETIME
+    pydatetimeType.tp_alloc = PyType_GenericAlloc;
+#endif
+    
+    Dprintf("initpsycopg: module initialization complete");
+}
diff --git a/trunk/psycopg2/psycopg/python.h b/trunk/psycopg2/psycopg/python.h
new file mode 100644 (file)
index 0000000..1c2b96d
--- /dev/null
@@ -0,0 +1,43 @@
+/* python.h - python version compatibility stuff
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_PYTHON_H
+#define PSYCOPG_PYTHON_H 1
+
+#include <Python.h>
+#include <structmember.h>
+
+/* python < 2.2 does not have PyMemeberDef */
+#if PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION < 2
+#define PyMemberDef memberlist 
+#endif
+
+/* PyObject_TypeCheck introduced in 2.2 */
+#ifndef PyObject_TypeCheck
+#define PyObject_TypeCheck(o, t) ((o)->ob_type == (t))
+#endif
+
+/* python 2.2 does not have freefunc (it has destructor instead) */
+#if PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION < 3
+#define freefunc destructor
+#endif
+
+#endif /* !defined(PSYCOPG_PYTHON_H) */
diff --git a/trunk/psycopg2/psycopg/typecast.c b/trunk/psycopg2/psycopg/typecast.c
new file mode 100644 (file)
index 0000000..ef91bfd
--- /dev/null
@@ -0,0 +1,563 @@
+/* typecast.c - basic utility functions related to typecasting
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Python.h>
+#include <structmember.h>
+
+#define PSYCOPG_MODULE
+#include "psycopg/config.h"
+#include "psycopg/psycopg.h"
+#include "psycopg/python.h"
+#include "psycopg/typecast.h"
+#include "psycopg/cursor.h"
+
+/* usefull function used by some typecasters */
+
+static char *
+skip_until_space(char *s)
+{
+    while (*s && *s != ' ') s++;
+    return s;
+}
+
+static char *
+skip_until_space2(char *s, int *len)
+{
+    while (*len > 0 && *s && *s != ' ') {
+        s++; (*len)--;
+    }
+    return s;
+}
+
+static int
+typecast_parse_date(char* s, char** t, int* len,
+                     int* year, int* month, int* day)
+{
+    int acc = -1, cz = 0;
+    
+    Dprintf("typecast_parse_date: len = %d, s = %s", *len, s);
+     
+    while (cz < 3 && *len > 0 && *s) {
+        switch (*s) {
+        case '-':
+        case ' ':
+        case 'T':
+            if (cz == 0) *year = acc;
+            else if (cz == 1) *month = acc;
+            else if (cz == 2) *day = acc;
+            acc = -1; cz++;
+            break;
+        default:
+            acc = (acc == -1 ? 0 : acc*10) + ((int)*s - (int)'0');
+            break;            
+        }
+
+        s++; (*len)--;
+    }
+
+    if (acc != -1) {
+        *day = acc;
+        cz += 1;
+    }
+    if (t != NULL) *t = s;    
+
+    return cz;
+}
+
+static int
+typecast_parse_time(char* s, char** t, int* len,
+                     int* hh, int* mm, int* ss, int* us, int* tz)
+{
+    int acc = -1, cz = 0;
+    int tzs = 1, tzhh = 0, tzmm = 0;
+    int usd = 0;
+    
+    /* sets microseconds and timezone to 0 because they may be missing */
+    *us = *tz = 0;
+    
+    Dprintf("typecast_parse_time: len = %d, s = %s", *len, s);
+     
+    while (cz < 6 && *len > 0 && *s) {
+        switch (*s) {
+        case ':':
+            if (cz == 0) *hh = acc;
+            else if (cz == 1) *mm = acc;
+            else if (cz == 2) *ss = acc;
+            else if (cz == 3) *us = acc;
+            else if (cz == 4) tzhh = acc;
+            acc = -1; cz++;
+            break;
+        case '.':
+            /* we expect seconds and if we don't get them we return an error */
+            if (cz != 2) return -1;
+            *ss = acc;
+            acc = -1; cz++;
+            break;
+        case '+':
+        case '-':
+            /* seconds or microseconds here, anything else is an error */
+            if (cz < 2 || cz > 3) return -1;
+            if (*s == '-') tzs = -1;
+            if      (cz == 2) *ss = acc;
+            else if (cz == 3) *us = acc;
+            acc = -1; cz = 4;
+            break;
+        default:
+            acc = (acc == -1 ? 0 : acc*10) + ((int)*s - (int)'0');
+            if (cz == 3) usd += 1;
+            break;            
+        }
+
+        s++; (*len)--;
+    }
+
+    if (acc != -1) {
+        if (cz == 2)      { *ss = acc; cz += 1; }
+        else if (cz == 3) { *us = acc; cz += 1; }
+        else if (cz == 4) { tzhh = acc; cz += 1; }
+        else if (cz == 5)   tzmm = acc;
+    }
+    if (t != NULL) *t = s;
+    
+    *tz = tzs * tzhh*60 + tzmm;
+    
+    if (*us != 0.0) {
+        while (usd++ < 6) *us *= 10.0;
+    }
+    
+    return cz;
+}
+
+/** include casting objects **/
+#include "psycopg/typecast_basic.c"
+#include "psycopg/typecast_binary.c"
+
+#ifdef HAVE_MXDATETIME
+#include "psycopg/typecast_mxdatetime.c"
+#endif
+
+#ifdef HAVE_PYDATETIME
+#include "psycopg/typecast_datetime.c"
+#endif
+
+#include "psycopg/typecast_array.c"
+#include "psycopg/typecast_builtins.c"
+
+
+/* a list of initializers, used to make the typecasters accessible anyway */
+#ifdef HAVE_PYDATETIME
+typecastObject_initlist typecast_pydatetime[] = {
+    {"PYDATETIME", typecast_DATETIME_types, typecast_PYDATETIME_cast},
+    {"PYTIME", typecast_TIME_types, typecast_PYTIME_cast},
+    {"PYDATE", typecast_DATE_types, typecast_PYDATE_cast},
+    {"PYINTERVAL", typecast_INTERVAL_types, typecast_PYINTERVAL_cast},    
+    {NULL, NULL, NULL}
+};
+#endif
+
+/* a list of initializers, used to make the typecasters accessible anyway */
+#ifdef HAVE_MXDATETIME
+typecastObject_initlist typecast_mxdatetime[] = {
+    {"MXDATETIME", typecast_DATETIME_types, typecast_MXDATE_cast},
+    {"MXTIME", typecast_TIME_types, typecast_MXTIME_cast},
+    {"MXDATE", typecast_DATE_types, typecast_MXDATE_cast},
+    {"MXINTERVAL", typecast_INTERVAL_types, typecast_MXINTERVAL_cast},    
+    {NULL, NULL, NULL}
+};
+#endif
+
+
+/** the type dictionary and associated functions **/
+
+PyObject *psyco_types;
+PyObject *psyco_default_cast;
+PyObject *psyco_binary_types;
+PyObject *psyco_default_binary_cast;
+
+static long int typecast_default_DEFAULT[] = {0};
+static typecastObject_initlist typecast_default = {
+    "DEFAULT", typecast_default_DEFAULT, typecast_STRING_cast};
+
+
+/* typecast_init - initialize the dictionary and create default types */
+
+int
+typecast_init(PyObject *dict)
+{
+    int i;
+    
+    /* create type dictionary and put it in module namespace */
+    psyco_types = PyDict_New();
+    psyco_binary_types = PyDict_New();
+    
+    if (!psyco_types || !psyco_binary_types) {
+        Py_XDECREF(psyco_types);
+        Py_XDECREF(psyco_binary_types);
+        return -1;
+    }                         
+
+    PyDict_SetItemString(dict, "string_types", psyco_types);
+    PyDict_SetItemString(dict, "binary_types", psyco_binary_types);
+    
+    /* insert the cast types into the 'types' dictionary and register them in
+       the module dictionary */
+    for (i = 0; typecast_builtins[i].name != NULL; i++) {
+        typecastObject *t;
+
+        Dprintf("typecast_init: initializing %s", typecast_builtins[i].name);
+
+        t = (typecastObject *)typecast_from_c(&(typecast_builtins[i]), dict);
+        if (t == NULL) return -1;
+        if (typecast_add((PyObject *)t, 0) != 0) return -1;
+
+        PyDict_SetItem(dict, t->name, (PyObject *)t);
+
+        /* export binary object */
+        if (typecast_builtins[i].values == typecast_BINARY_types) {
+            psyco_default_binary_cast = (PyObject *)t;
+        }
+    }
+    
+    /* create and save a default cast object (but does not register it) */
+    psyco_default_cast = typecast_from_c(&typecast_default, dict);
+
+    /* register the date/time typecasters with their original names */
+#ifdef HAVE_MXDATETIME
+    for (i = 0; typecast_mxdatetime[i].name != NULL; i++) {
+        typecastObject *t;
+        Dprintf("typecast_init: initializing %s", typecast_mxdatetime[i].name);
+        t = (typecastObject *)typecast_from_c(&(typecast_mxdatetime[i]), dict);
+        if (t == NULL) return -1;
+        PyDict_SetItem(dict, t->name, (PyObject *)t);
+    }
+#endif
+#ifdef HAVE_PYDATETIME
+    for (i = 0; typecast_pydatetime[i].name != NULL; i++) {
+        typecastObject *t;
+        Dprintf("typecast_init: initializing %s", typecast_pydatetime[i].name);
+        t = (typecastObject *)typecast_from_c(&(typecast_pydatetime[i]), dict);
+        if (t == NULL) return -1;
+        PyDict_SetItem(dict, t->name, (PyObject *)t);
+    }
+#endif
+    
+    return 0;
+}
+
+/* typecast_add - add a type object to the dictionary */
+int
+typecast_add(PyObject *obj, int binary)
+{
+    PyObject *val;
+    int len, i;
+
+    typecastObject *type = (typecastObject *)obj;
+    
+    Dprintf("typecast_add: object at %p, values refcnt = %d",
+            obj, type->values->ob_refcnt);
+
+    len = PyTuple_Size(type->values);
+    for (i = 0; i < len; i++) {
+        val = PyTuple_GetItem(type->values, i);
+        Dprintf("typecast_add:     adding val: %ld", PyInt_AsLong(val));
+        if (binary) {
+            PyDict_SetItem(psyco_binary_types, val, obj);
+        }
+        else {
+            PyDict_SetItem(psyco_types, val, obj);
+        }
+    }
+
+    Dprintf("typecast_add:     base caster: %p", type->bcast);
+
+    return 0;
+}
+
+
+/** typecast type **/
+
+#define OFFSETOF(x) offsetof(typecastObject, x)
+
+static int
+typecast_cmp(PyObject *obj1, PyObject* obj2)
+{
+    typecastObject *self = (typecastObject*)obj1;
+    typecastObject *other = NULL;
+    PyObject *number = NULL;
+    int i, j, res = -1;
+    
+    if (PyObject_TypeCheck(obj2, &typecastType)) {
+        other = (typecastObject*)obj2;
+    }
+    else {
+        number = PyNumber_Int(obj2);
+    }
+
+    Dprintf("typecast_cmp: other = %p, number = %p", other, number);
+    
+    for (i=0; i < PyObject_Length(self->values) && res == -1; i++) {
+        long int val = PyInt_AsLong(PyTuple_GET_ITEM(self->values, i));
+        
+        if (other != NULL) {
+            for (j=0; j < PyObject_Length(other->values); j++) {
+                if (PyInt_AsLong(PyTuple_GET_ITEM(other->values, j)) == val) {
+                    res = 0; break;   
+                }
+            }
+        }
+        
+        else if (number != NULL) {
+            if (PyInt_AsLong(number) == val) {
+                res = 0; break;
+            }
+        }
+    }
+    
+    Py_XDECREF(number);
+    return res;
+}
+
+static PyObject*
+typecast_richcompare(PyObject *obj1, PyObject* obj2, int opid)
+{
+    PyObject *result = NULL;
+    int res = typecast_cmp(obj1, obj2);
+    
+    if (PyErr_Occurred()) return NULL;
+    
+    if ((opid == Py_EQ && res == 0) || (opid != Py_EQ && res != 0))
+        result = Py_True;
+    else
+        result = Py_False;
+    
+    Py_INCREF(result);
+    return result;
+}
+     
+static struct PyMemberDef typecastObject_members[] = {
+    {"name", T_OBJECT, OFFSETOF(name), RO},
+    {"values", T_OBJECT, OFFSETOF(values), RO},
+    {NULL}
+};
+    
+static void
+typecast_dealloc(PyObject *obj)
+{
+    typecastObject *self = (typecastObject*)obj;
+    
+    Py_XDECREF(self->values);
+    Py_XDECREF(self->name);
+    Py_XDECREF(self->pcast);
+
+    PyObject_Del(self);
+}
+
+static PyObject *
+typecast_call(PyObject *obj, PyObject *args, PyObject *kwargs)
+{   
+    PyObject *string, *cursor;
+    
+    if (!PyArg_ParseTuple(args, "OO", &string, &cursor)) {
+        return NULL;
+    }
+
+    return typecast_cast(obj,
+                         PyString_AsString(string), PyString_Size(string),
+                         cursor);
+}
+
+PyTypeObject typecastType = {
+    PyObject_HEAD_INIT(NULL)
+    0,
+    "psycopg2._psycopg.type",
+    sizeof(typecastObject),
+    0,
+    
+    typecast_dealloc, /*tp_dealloc*/
+    0,          /*tp_print*/ 
+    0,          /*tp_getattr*/
+    0,          /*tp_setattr*/
+    typecast_cmp, /*tp_compare*/
+    0,          /*tp_repr*/
+    0,          /*tp_as_number*/
+    0,          /*tp_as_sequence*/
+    0,          /*tp_as_mapping*/
+    0,          /*tp_hash */
+
+    typecast_call, /*tp_call*/
+    0,          /*tp_str*/
+    0,          /*tp_getattro*/
+    0,          /*tp_setattro*/
+    0,          /*tp_as_buffer*/
+
+    Py_TPFLAGS_HAVE_RICHCOMPARE, /*tp_flags*/
+    "psycopg type-casting object", /*tp_doc*/
+    
+    0,          /*tp_traverse*/
+    0,          /*tp_clear*/
+
+    typecast_richcompare, /*tp_richcompare*/
+    0,          /*tp_weaklistoffset*/
+
+    0,          /*tp_iter*/
+    0,          /*tp_iternext*/
+
+    /* Attribute descriptor and subclassing stuff */
+
+    0, /*tp_methods*/
+    typecastObject_members, /*tp_members*/
+    0,          /*tp_getset*/
+    0,          /*tp_base*/
+    0,          /*tp_dict*/
+    
+    0,          /*tp_descr_get*/
+    0,          /*tp_descr_set*/
+    0,          /*tp_dictoffset*/
+    
+    0, /*tp_init*/
+    0, /*tp_alloc  will be set to PyType_GenericAlloc in module init*/
+    0, /*tp_new*/
+    0, /*tp_free  Low-level free-memory routine */
+    0,          /*tp_is_gc For PyObject_IS_GC */
+    0,          /*tp_bases*/
+    0,          /*tp_mro method resolution order */
+    0,          /*tp_cache*/
+    0,          /*tp_subclasses*/
+    0           /*tp_weaklist*/
+};
+
+static PyObject *
+typecast_new(PyObject *name, PyObject *values, PyObject *cast, PyObject *base)
+{
+    typecastObject *obj;
+
+    obj = PyObject_NEW(typecastObject, &typecastType);
+    if (obj == NULL) return NULL;
+
+    Dprintf("typecast_new: new type at = %p, refcnt = %d", obj, obj->ob_refcnt);
+             
+    Py_INCREF(values);
+    obj->values = values;
+    
+    if (name) {
+        Py_INCREF(name);
+        obj->name = name;
+    }
+    else {
+        Py_INCREF(Py_None);
+        obj->name = Py_None;
+    }
+
+    obj->pcast = NULL;
+    obj->ccast = NULL;
+    obj->bcast = base;
+
+    if (obj->bcast) Py_INCREF(obj->bcast);
+
+    /* FIXME: raise an exception when None is passed as Python caster */
+    if (cast && cast != Py_None) {
+        Py_INCREF(cast);
+        obj->pcast = cast;
+    }
+    
+    Dprintf("typecast_new: typecast object created at %p", obj);
+    
+    return (PyObject *)obj;
+}
+
+PyObject *
+typecast_from_python(PyObject *self, PyObject *args, PyObject *keywds)
+{
+    PyObject *v, *name, *cast = NULL, *base = NULL;
+
+    static char *kwlist[] = {"values", "name", "castobj", "baseobj", NULL};
+    
+    if (!PyArg_ParseTupleAndKeywords(args, keywds, "O!|O!OO", kwlist, 
+                                     &PyTuple_Type, &v,
+                                     &PyString_Type, &name,
+                                     &cast, &base)) {
+        return NULL;
+    }
+    
+    return typecast_new(name, v, cast, base);
+}
+
+PyObject *
+typecast_from_c(typecastObject_initlist *type, PyObject *dict)
+{
+    PyObject *tuple, *base = NULL;
+    typecastObject *obj;
+    int i, len = 0;
+
+    /* before doing anything else we look for the base */
+    if (type->base) {
+        /* NOTE: base is a borrowed reference! */
+        base = PyDict_GetItemString(dict, type->base);
+        if (!base) {
+            PyErr_Format(Error, "typecast base not found: %s", type->base);
+            return NULL;
+        }
+    }
+
+    while (type->values[len] != 0) len++;
+    
+    tuple = PyTuple_New(len);
+    if (!tuple) return NULL;
+    
+    for (i = 0; i < len ; i++) {
+        PyTuple_SET_ITEM(tuple, i, PyInt_FromLong(type->values[i]));
+    }
+
+        
+    obj = (typecastObject *)
+        typecast_new(PyString_FromString(type->name), tuple, NULL, base);
+    
+    if (obj) {
+        obj->ccast = type->cast;
+        obj->pcast = NULL;
+    }
+    return (PyObject *)obj;
+}
+
+PyObject *
+typecast_cast(PyObject *obj, char *str, int len, PyObject *curs)
+{
+    PyObject *old, *res = NULL;
+    typecastObject *self = (typecastObject *)obj;
+
+    /* we don't incref, the caster *can't* die at this point */
+    old = ((cursorObject*)curs)->caster;
+    ((cursorObject*)curs)->caster = obj;
+    
+    if (self->ccast) {
+        res = self->ccast(str, len, curs);
+    }
+    else if (self->pcast) {
+        res = PyObject_CallFunction(self->pcast, "s#O", str, len, curs);
+    }
+    else {
+        PyErr_SetString(Error, "internal error: no casting function found");
+    }
+
+    ((cursorObject*)curs)->caster = old;
+
+    return res;
+}
diff --git a/trunk/psycopg2/psycopg/typecast.h b/trunk/psycopg2/psycopg/typecast.h
new file mode 100644 (file)
index 0000000..ec77e5c
--- /dev/null
@@ -0,0 +1,85 @@
+/* typecast.h - definitions for typecasters
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_TYPECAST_H
+#define PSYCOPG_TYPECAST_H 1
+
+#include <Python.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* type of type-casting functions (both C and Python) */
+typedef PyObject *(*typecast_function)(char *, int len, PyObject *);
+
+/** typecast type **/
+
+extern PyTypeObject typecastType;
+
+typedef struct {
+    PyObject_HEAD
+
+    PyObject *name;    /* the name of this type */
+    PyObject *values;  /* the different types this instance can match */
+
+    typecast_function  ccast;  /* the C casting function */
+    PyObject          *pcast;  /* the python casting function */
+    PyObject          *bcast;  /* base cast, used by array typecasters */
+} typecastObject;
+
+/* the initialization values are stored here */
+
+typedef struct {
+    char *name;
+    long int *values;
+    typecast_function cast;
+
+    /* base is the base typecaster for arrays */
+    char *base;
+} typecastObject_initlist;
+
+/* the type dictionary, much faster to access it globally */
+extern PyObject *psyco_types;
+extern PyObject *psyco_binary_types;
+    
+/* the default casting objects, used when no other objects are available */
+extern PyObject *psyco_default_cast;
+extern PyObject *psyco_default_binary_cast;
+
+/** exported functions **/
+
+/* used by module.c to init the type system and register types */
+extern int typecast_init(PyObject *dict);
+extern int typecast_add(PyObject *obj, int binary);
+
+/* the C callable typecastObject creator function */
+extern PyObject *typecast_from_c(typecastObject_initlist *type, PyObject *d);
+
+/* the python callable typecast creator function */
+extern PyObject *typecast_from_python(
+    PyObject *self, PyObject *args, PyObject *keywds);
+
+/* the function used to dispatch typecasting calls */
+extern PyObject *typecast_cast(
+    PyObject *self, char *str, int len, PyObject *curs);
+    
+#endif /* !defined(PSYCOPG_TYPECAST_H) */
diff --git a/trunk/psycopg2/psycopg/typecast_array.c b/trunk/psycopg2/psycopg/typecast_array.c
new file mode 100644 (file)
index 0000000..7dcb3a3
--- /dev/null
@@ -0,0 +1,258 @@
+/* typecast_array.c - array typecasters
+ *
+ * Copyright (C) 2005 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of the psycopg module.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#define MAX_DIMENSIONS 16
+
+/** typecast_array_cleanup - remove the horrible [...]= stuff **/
+
+static int
+typecast_array_cleanup(char **str, int *len)
+{
+    int i, depth = 1;
+    
+    if ((*str)[0] != '[') return -1;
+    
+    for (i=1 ; depth > 0 && i < *len ; i++) {
+        if ((*str)[i] == '[')
+            depth += 1;
+        else if ((*str)[i] == ']')
+            depth -= 1;
+    }
+    if ((*str)[i] != '=') return -1;
+    
+    *str = &((*str)[i+1]);
+    *len = *len - i - 1;
+    return 0;
+}
+
+/** typecast_array_scan - scan a string looking for array items **/
+
+#define ASCAN_ERROR -1
+#define ASCAN_EOF    0
+#define ASCAN_BEGIN  1
+#define ASCAN_END    2
+#define ASCAN_TOKEN  3
+#define ASCAN_QUOTED 4
+
+static int
+typecast_array_tokenize(char *str, int strlength,
+                        int *pos, char** token, int *length)
+{
+    /* FORTRAN glory */
+    int i, j, q, b, l, res;
+
+    Dprintf("typecast_array_tokenize: '%s', %d/%d",
+            &str[*pos], *pos, strlength);
+
+    /* we always get called with pos pointing at the start of a token, so a
+       fast check is enough for ASCAN_EOF, ASCAN_BEGIN and ASCAN_END */
+    if (*pos == strlength) {
+        return ASCAN_EOF;
+    }
+    else if (str[*pos] == '{') {
+        *pos += 1;
+        return ASCAN_BEGIN;
+    }
+    else if (str[*pos] == '}') {
+        *pos += 1;
+        if (str[*pos] == ',')
+            *pos += 1;
+        return ASCAN_END;
+    }
+
+    /* now we start looking for the first unquoted ',' or '}', the only two
+       tokens that can limit an array element */
+    q = 0; /* if q is odd we're inside quotes */
+    b = 0; /* if b is 1 we just encountered a backslash */
+    res = ASCAN_TOKEN;
+    
+    for (i = *pos ; i < strlength ; i++) {
+        switch (str[i]) {
+        case '"':
+            if (b == 0)
+                q += 1;
+            else
+                b = 0;
+            break;
+
+        case '\\':
+            res = ASCAN_QUOTED;
+            if (b == 0)
+                b = 1;
+            else
+                /* we're backslashing a backslash */
+                b = 0;
+            break;
+
+        case '}':
+        case ',':
+            if (b == 0 && ((q&1) == 0))
+                goto tokenize;
+            break;
+
+        default:
+            /* reset the backslash counter */
+            b = 0;
+            break;
+        }
+    }
+
+ tokenize:
+    /* remove initial quoting character and calculate raw length */
+    l = i - *pos;
+    if (str[*pos] == '"') {
+        *pos += 1;
+        l -= 2;
+    }
+
+    if (res == ASCAN_QUOTED) { 
+        char *buffer = PyMem_Malloc(l+1);
+        if (buffer == NULL) return ASCAN_ERROR;
+
+        *token = buffer;
+        
+        for (j = *pos; j < *pos+l; j++) {
+            if (str[j] != '\\'
+                || (j > *pos && str[j-1] == '\\'))
+                *(buffer++) = str[j];
+        }
+        
+        *buffer = '\0';
+        *length = buffer - *token;
+    }
+    else {
+        *token = &str[*pos];
+        *length = l;
+    }
+
+    *pos = i;
+    
+    /* skip the comma and set position to the start of next token */
+    if (str[i] == ',') *pos += 1;
+
+    return res;
+}
+
+static int
+typecast_array_scan(char *str, int strlength,
+                    PyObject *curs, PyObject *base, PyObject *array)
+{
+    int state, length = 0, pos = 0;
+    char *token;
+
+    PyObject *stack[MAX_DIMENSIONS];
+    int stack_index = 0;
+    
+    while (1) {
+        token = NULL;
+        state = typecast_array_tokenize(str, strlength, &pos, &token, &length);
+        Dprintf("typecast_array_scan: state = %d, length = %d, token = '%s'",
+                state, length, token);
+        if (state == ASCAN_TOKEN || state == ASCAN_QUOTED) {
+            PyObject *obj = typecast_cast(base, token, length, curs);
+
+            /* before anything else we free the memory */
+            if (state == ASCAN_QUOTED) PyMem_Free(token);
+            if (obj == NULL) return 0;
+
+            PyList_Append(array, obj);
+            Py_DECREF(obj);
+        }
+
+        else if (state == ASCAN_BEGIN) {
+            PyObject *sub = PyList_New(0);            
+            if (sub == NULL) return 0;
+
+            PyList_Append(array, sub);
+            Py_DECREF(sub);
+
+            if (stack_index == MAX_DIMENSIONS)
+                return 0;
+
+            stack[stack_index++] = array;
+            array = sub;
+        }
+        
+        else if (state == ASCAN_ERROR) {
+            return 0;
+        }
+
+        else if (state == ASCAN_END) {
+            if (--stack_index < 0)
+                return 0;
+            array = stack[stack_index];
+        }
+
+        else if (state ==  ASCAN_EOF)
+            break;
+    }
+
+    return 1;
+}
+
+
+/** GENERIC - a generic typecaster that can be used when no special actions
+    have to be taken on the single items **/
+   
+static PyObject *
+typecast_GENERIC_ARRAY_cast(char *str, int len, PyObject *curs)
+{
+    PyObject *obj = NULL;
+    PyObject *base = ((typecastObject*)((cursorObject*)curs)->caster)->bcast;
+   
+    Dprintf("typecast_GENERIC_ARRAY_cast: str = '%s', len = %d", str, len);
+
+    if (str == NULL) {Py_INCREF(Py_None); return Py_None;}
+    if (str[0] == '[')
+        typecast_array_cleanup(&str, &len);
+    if (str[0] != '{') {
+        PyErr_SetString(Error, "array does not start with '{'");
+        return NULL;
+    }
+
+    Dprintf("typecast_GENERIC_ARRAY_cast: str = '%s', len = %d", str, len);
+    
+    obj = PyList_New(0);
+
+    /* scan the array skipping the first level of {} */
+    if (typecast_array_scan(&str[1], len-2, curs, base, obj) == 0) {
+        Py_DECREF(obj);
+        obj = NULL;
+    }
+    
+    return obj;
+}
+
+/** almost all the basic array typecasters are derived from GENERIC **/
+
+#define typecast_LONGINTEGERARRAY_cast typecast_GENERIC_ARRAY_cast
+#define typecast_INTEGERARRAY_cast typecast_GENERIC_ARRAY_cast
+#define typecast_FLOATARRAY_cast typecast_GENERIC_ARRAY_cast
+#define typecast_DECIMALARRAY_cast typecast_GENERIC_ARRAY_cast
+#define typecast_STRINGARRAY_cast typecast_GENERIC_ARRAY_cast
+#define typecast_UNICODEARRAY_cast typecast_GENERIC_ARRAY_cast
+#define typecast_BOOLEANARRAY_cast typecast_GENERIC_ARRAY_cast
+#define typecast_DATETIMEARRAY_cast typecast_GENERIC_ARRAY_cast
+#define typecast_DATEARRAY_cast typecast_GENERIC_ARRAY_cast
+#define typecast_TIMEARRAY_cast typecast_GENERIC_ARRAY_cast
+#define typecast_INTERVALARRAY_cast typecast_GENERIC_ARRAY_cast
+#define typecast_BINARYARRAY_cast typecast_GENERIC_ARRAY_cast
+#define typecast_ROWIDARRAY_cast typecast_GENERIC_ARRAY_cast
diff --git a/trunk/psycopg2/psycopg/typecast_basic.c b/trunk/psycopg2/psycopg/typecast_basic.c
new file mode 100644 (file)
index 0000000..e9ac7f4
--- /dev/null
@@ -0,0 +1,141 @@
+/* pgcasts_basic.c - basic typecasting functions to python types
+ *
+ * Copyright (C) 2001-2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of the psycopg module.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/** INTEGER - cast normal integers (4 bytes) to python int **/
+
+static PyObject *
+typecast_INTEGER_cast(char *s, int len, PyObject *curs)
+{
+    char buffer[12];
+    
+    if (s == NULL) {Py_INCREF(Py_None); return Py_None;}
+    if (s[len] != '\0') {
+        strncpy(buffer, s, len); buffer[len] = '\0';
+        s = buffer;
+    }
+    return PyInt_FromString(s, NULL, 0);
+}
+
+/** LONGINTEGER - cast long integers (8 bytes) to python long **/
+
+static PyObject *
+typecast_LONGINTEGER_cast(char *s, int len, PyObject *curs)
+{
+    char buffer[24];
+    
+    if (s == NULL) {Py_INCREF(Py_None); return Py_None;}
+    if (s[len] != '\0') {
+        strncpy(buffer, s, len); buffer[len] = '\0';
+        s = buffer;
+    }
+    return PyLong_FromString(s, NULL, 0);
+}
+
+/** FLOAT - cast floating point numbers to python float **/
+
+static PyObject *
+typecast_FLOAT_cast(char *s, int len, PyObject *curs)
+{
+    PyObject *str = NULL, *flo = NULL;
+    char *pend;
+    
+    if (s == NULL) {Py_INCREF(Py_None); return Py_None;}
+    str = PyString_FromStringAndSize(s, len);
+    flo = PyFloat_FromString(str, &pend);
+    Py_DECREF(str);
+    return flo;
+}
+
+/** STRING - cast strings of any type to python string **/
+
+static PyObject *
+typecast_STRING_cast(char *s, int len, PyObject *curs)
+{
+    if (s == NULL) {Py_INCREF(Py_None); return Py_None;}
+    return PyString_FromStringAndSize(s, len);
+}
+
+/** UNICODE - cast strings of any type to a python unicode object **/
+
+static PyObject *
+typecast_UNICODE_cast(char *s, int len, PyObject *curs)
+{
+    PyObject *enc;
+
+    if (s == NULL) {Py_INCREF(Py_None); return Py_None;}
+
+    enc = PyDict_GetItemString(psycoEncodings,
+                               ((cursorObject*)curs)->conn->encoding);
+    if (enc) {
+        return PyUnicode_Decode(s, len, PyString_AsString(enc), NULL);
+    }
+    else {
+       PyErr_Format(InterfaceError,
+                    "can't decode into unicode string from %s",
+                    ((cursorObject*)curs)->conn->encoding);
+       return NULL; 
+    }
+}
+
+/** BOOLEAN - cast boolean value into right python object **/
+
+static PyObject *
+typecast_BOOLEAN_cast(char *s, int len, PyObject *curs)
+{
+    PyObject *res;
+
+    if (s == NULL) {Py_INCREF(Py_None); return Py_None;}
+
+    if (s[0] == 't')
+        res = Py_True;
+    else
+        res = Py_False;
+
+    Py_INCREF(res);
+    return res;
+}
+
+/** DECIMAL - cast any kind of number into a Python Decimal object **/
+
+#ifdef HAVE_DECIMAL
+static PyObject *
+typecast_DECIMAL_cast(char *s, int len, PyObject *curs)
+{
+    PyObject *res = NULL;
+    char *buffer;
+    
+    if (s == NULL) {Py_INCREF(Py_None); return Py_None;}
+
+    if ((buffer = PyMem_Malloc(len+1)) == NULL)
+        PyErr_NoMemory();
+    strncpy(buffer, s, len); buffer[len] = '\0';
+    res = PyObject_CallFunction(decimalType, "s", buffer);
+    PyMem_Free(buffer);
+
+    return res;
+}
+#else
+#define typecast_DECIMAL_cast  typecast_FLOAT_cast
+#endif
+     
+/* some needed aliases */
+#define typecast_NUMBER_cast   typecast_FLOAT_cast
+#define typecast_ROWID_cast    typecast_INTEGER_cast
diff --git a/trunk/psycopg2/psycopg/typecast_binary.c b/trunk/psycopg2/psycopg/typecast_binary.c
new file mode 100644 (file)
index 0000000..d490bc7
--- /dev/null
@@ -0,0 +1,191 @@
+/* typecast_binary.c - binary typecasting functions to python types
+ *
+ * Copyright (C) 2001-2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of the psycopg module.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "typecast_binary.h"
+
+#include <libpq-fe.h>
+#include <stdlib.h>
+
+
+/* Python object holding a memory chunk. The memory is deallocated when
+   the object is destroyed. This type is used to let users directly access
+   memory chunks holding unescaped binary data through the buffer interface.
+ */
+
+static void
+chunk_dealloc(chunkObject *self)
+{
+    Dprintf("chunk_dealloc: deallocating memory at %p, size %d",
+            self->base, self->len);
+    free(self->base);
+    self->ob_type->tp_free((PyObject *) self);
+}
+
+static PyObject *
+chunk_repr(chunkObject *self)
+{
+    return PyString_FromFormat("<memory chunk at %p size %d>",
+                               self->base, self->len);
+}
+
+static int
+chunk_getreadbuffer(chunkObject *self, int segment, void **ptr)
+{
+    if (segment != 0)
+    {
+        PyErr_SetString(PyExc_SystemError,
+                        "acessing non-existant buffer segment");
+        return -1;
+    }
+    *ptr = self->base;
+    return self->len;
+}
+
+static int
+chunk_getsegcount(chunkObject *self, int *lenp)
+{
+    if (lenp != NULL)
+        *lenp = self->len;
+    return 1;
+}
+
+static PyBufferProcs chunk_as_buffer =
+{
+    (getreadbufferproc) chunk_getreadbuffer,
+    (getwritebufferproc) NULL,
+    (getsegcountproc) chunk_getsegcount,
+    (getcharbufferproc) NULL
+};
+
+#define chunk_doc "memory chunk"
+
+PyTypeObject chunkType = {
+    PyObject_HEAD_INIT(NULL)
+    0,                          /* ob_size */
+    "psycopg2._psycopg.chunk",   /* tp_name */
+    sizeof(chunkObject),        /* tp_basicsize */
+    0,                          /* tp_itemsize */
+    (destructor) chunk_dealloc, /* tp_dealloc*/
+    0,                          /* tp_print */
+    0,                          /* tp_getattr */
+    0,                          /* tp_setattr */
+    0,                          /* tp_compare */
+    (reprfunc) chunk_repr,      /* tp_repr */
+    0,                          /* tp_as_number */
+    0,                          /* tp_as_sequence */
+    0,                          /* tp_as_mapping */
+    0,                          /* tp_hash */
+    0,                          /* tp_call */
+    0,                          /* tp_str */
+    0,                          /* tp_getattro */
+    0,                          /* tp_setattro */
+    &chunk_as_buffer,           /* tp_as_buffer */
+    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
+    chunk_doc                   /* tp_doc */
+};
+
+/* the function typecast_BINARY_cast_unescape is used when libpq does not
+   provide PQunescapeBytea: it convert all the \xxx octal sequences to the
+   proper byte value */
+
+#ifdef PSYCOPG_OWN_QUOTING
+static unsigned char *
+typecast_BINARY_cast_unescape(unsigned char *str, size_t *to_length)
+{
+    char *dstptr, *dststr;
+    int len, i;
+
+    len = strlen(str);
+    dststr = (char*)calloc(len, sizeof(char));
+    dstptr = dststr;
+
+    if (dststr == NULL) return NULL;
+
+    Py_BEGIN_ALLOW_THREADS;
+   
+    for (i = 0; i < len; i++) {
+        if (str[i] == '\\') {
+            if ( ++i < len) {
+                if (str[i] == '\\') {
+                    *dstptr = '\\';
+                }
+                else {
+                    *dstptr = 0;
+                    *dstptr |= (str[i++] & 7) << 6;
+                    *dstptr |= (str[i++] & 7) << 3;
+                    *dstptr |= (str[i] & 7);
+                }
+            }
+        }
+        else {
+            *dstptr = str[i];
+        }
+        dstptr++;
+    }
+    
+    Py_END_ALLOW_THREADS;
+
+    *to_length = (size_t)(dstptr-dststr);
+    
+    return dststr;
+}
+
+#define PQunescapeBytea typecast_BINARY_cast_unescape
+#endif
+    
+static PyObject *
+typecast_BINARY_cast(char *s, int l, PyObject *curs)
+{
+    chunkObject *chunk;
+    PyObject *res;
+    char *str, *buffer = NULL;
+    size_t len;
+
+    if (s == NULL) {Py_INCREF(Py_None); return Py_None;}
+
+    /* PQunescapeBytea absolutely wants a 0-terminated string and we don't
+       want to copy the whole buffer, right? Wrong, but there isn't any other
+       way <g> */
+    if (s[l] != '\0') {
+        if ((buffer = PyMem_Malloc(l+1)) == NULL)
+            PyErr_NoMemory();
+        strncpy(buffer, s, l);
+        buffer[l] = '\0';
+        s = buffer;
+    }
+    str = (char*)PQunescapeBytea((unsigned char*)s, &len);
+    Dprintf("typecast_BINARY_cast: unescaped %d bytes", len);
+    if (buffer) PyMem_Free(buffer);
+
+    chunk = (chunkObject *) PyObject_New(chunkObject, &chunkType);
+    if (chunk == NULL) return NULL;
+    
+    chunk->base = str;
+    chunk->len = len;
+    if ((res = PyBuffer_FromObject((PyObject *)chunk, 0, len)) == NULL)
+        return NULL;
+
+    /* PyBuffer_FromObject() created a new reference. Release our reference so
+       that the memory can be freed once the buffer is garbage collected. */
+    Py_DECREF(chunk);
+
+    return res;
+}
diff --git a/trunk/psycopg2/psycopg/typecast_binary.h b/trunk/psycopg2/psycopg/typecast_binary.h
new file mode 100644 (file)
index 0000000..cf985bb
--- /dev/null
@@ -0,0 +1,47 @@
+/* typecast_binary.h - definitions for binary typecaster
+ *
+ * Copyright (C) 2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of psycopg.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PSYCOPG_TYPECAST_BINARY_H
+#define PSYCOPG_TYPECAST_BINARY_H 1
+
+#include <Python.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** chunk type **/
+
+extern PyTypeObject chunkType;
+
+typedef struct {
+    PyObject_HEAD
+
+    void *base;     /* Pointer to the memory chunk. */
+    int len;        /* Size in bytes of the memory chunk. */
+
+} chunkObject;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !defined(PSYCOPG_TYPECAST_BINARY_H) */
diff --git a/trunk/psycopg2/psycopg/typecast_builtins.c b/trunk/psycopg2/psycopg/typecast_builtins.c
new file mode 100644 (file)
index 0000000..0fc109d
--- /dev/null
@@ -0,0 +1,60 @@
+static long int typecast_NUMBER_types[] = {20, 23, 21, 701, 700, 1700, 0};
+static long int typecast_LONGINTEGER_types[] = {20, 0};
+static long int typecast_INTEGER_types[] = {23, 21, 0};
+static long int typecast_FLOAT_types[] = {701, 700, 0};
+static long int typecast_DECIMAL_types[] = {1700, 0};
+static long int typecast_UNICODE_types[] = {19, 18, 25, 1042, 1043, 0};
+static long int typecast_STRING_types[] = {19, 18, 25, 1042, 1043, 0};
+static long int typecast_BOOLEAN_types[] = {16, 0};
+static long int typecast_DATETIME_types[] = {1114, 1184, 704, 1186, 0};
+static long int typecast_TIME_types[] = {1083, 1266, 0};
+static long int typecast_DATE_types[] = {1082, 0};
+static long int typecast_INTERVAL_types[] = {704, 1186, 0};
+static long int typecast_BINARY_types[] = {17, 0};
+static long int typecast_ROWID_types[] = {26, 0};
+static long int typecast_LONGINTEGERARRAY_types[] = {1016, 0};
+static long int typecast_INTEGERARRAY_types[] = {1005, 1006, 1007, 0};
+static long int typecast_FLOATARRAY_types[] = {1017, 1021, 1022, 0};
+static long int typecast_DECIMALARRAY_types[] = {1231, 0};
+static long int typecast_UNICODEARRAY_types[] = {1002, 1003, 1009, 1014, 1015, 0};
+static long int typecast_STRINGARRAY_types[] = {1002, 1003, 1009, 1014, 1015, 0};
+static long int typecast_BOOLEANARRAY_types[] = {1000, 0};
+static long int typecast_DATETIMEARRAY_types[] = {1115, 1185, 0};
+static long int typecast_TIMEARRAY_types[] = {1183, 1270, 0};
+static long int typecast_DATEARRAY_types[] = {1182, 0};
+static long int typecast_INTERVALARRAY_types[] = {1187, 0};
+static long int typecast_BINARYARRAY_types[] = {1001, 0};
+static long int typecast_ROWIDARRAY_types[] = {1028, 1013, 0};
+
+
+typecastObject_initlist typecast_builtins[] = {
+  {"NUMBER", typecast_NUMBER_types, typecast_NUMBER_cast, NULL},
+  {"LONGINTEGER", typecast_LONGINTEGER_types, typecast_LONGINTEGER_cast, NULL},
+  {"INTEGER", typecast_INTEGER_types, typecast_INTEGER_cast, NULL},
+  {"FLOAT", typecast_FLOAT_types, typecast_FLOAT_cast, NULL},
+  {"DECIMAL", typecast_DECIMAL_types, typecast_DECIMAL_cast, NULL},
+  {"UNICODE", typecast_UNICODE_types, typecast_UNICODE_cast, NULL},
+  {"STRING", typecast_STRING_types, typecast_STRING_cast, NULL},
+  {"BOOLEAN", typecast_BOOLEAN_types, typecast_BOOLEAN_cast, NULL},
+  {"DATETIME", typecast_DATETIME_types, typecast_DATETIME_cast, NULL},
+  {"TIME", typecast_TIME_types, typecast_TIME_cast, NULL},
+  {"DATE", typecast_DATE_types, typecast_DATE_cast, NULL},
+  {"INTERVAL", typecast_INTERVAL_types, typecast_INTERVAL_cast, NULL},
+  {"BINARY", typecast_BINARY_types, typecast_BINARY_cast, NULL},
+  {"ROWID", typecast_ROWID_types, typecast_ROWID_cast, NULL},
+  {"LONGINTEGERARRAY", typecast_LONGINTEGERARRAY_types, typecast_LONGINTEGERARRAY_cast, "LONGINTEGER"},
+  {"INTEGERARRAY", typecast_INTEGERARRAY_types, typecast_INTEGERARRAY_cast, "INTEGER"},
+  {"FLOATARRAY", typecast_FLOATARRAY_types, typecast_FLOATARRAY_cast, "FLOAT"},
+  {"DECIMALARRAY", typecast_DECIMALARRAY_types, typecast_DECIMALARRAY_cast, "DECIMAL"},
+  {"UNICODEARRAY", typecast_UNICODEARRAY_types, typecast_UNICODEARRAY_cast, "UNICODE"},
+  {"STRINGARRAY", typecast_STRINGARRAY_types, typecast_STRINGARRAY_cast, "STRING"},
+  {"BOOLEANARRAY", typecast_BOOLEANARRAY_types, typecast_BOOLEANARRAY_cast, "BOOLEAN"},
+  {"DATETIMEARRAY", typecast_DATETIMEARRAY_types, typecast_DATETIMEARRAY_cast, "DATETIME"},
+  {"TIMEARRAY", typecast_TIMEARRAY_types, typecast_TIMEARRAY_cast, "TIME"},
+  {"DATEARRAY", typecast_DATEARRAY_types, typecast_DATEARRAY_cast, "DATE"},
+  {"INTERVALARRAY", typecast_INTERVALARRAY_types, typecast_INTERVALARRAY_cast, "INTERVAL"},
+  {"BINARYARRAY", typecast_BINARYARRAY_types, typecast_BINARYARRAY_cast, "BINARY"},
+  {"ROWIDARRAY", typecast_ROWIDARRAY_types, typecast_ROWIDARRAY_cast, "ROWID"},
+    {NULL, NULL, NULL, NULL}
+};
+
diff --git a/trunk/psycopg2/psycopg/typecast_datetime.c b/trunk/psycopg2/psycopg/typecast_datetime.c
new file mode 100644 (file)
index 0000000..3a09f07
--- /dev/null
@@ -0,0 +1,279 @@
+/* typecast_datetime.c - date and time typecasting functions to python types
+ *
+ * Copyright (C) 2001-2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of the psycopg module.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <math.h>
+#include "datetime.h"
+
+
+/* the pointer to the datetime module API is initialized by the module init
+   code, we just need to grab it */
+extern PyObject* pyDateTimeModuleP;
+extern PyObject *pyDateTypeP;
+extern PyObject *pyTimeTypeP;
+extern PyObject *pyDateTimeTypeP;
+extern PyObject *pyDeltaTypeP;
+
+/** DATE - cast a date into a date python object **/
+
+static PyObject *
+typecast_PYDATE_cast(char *str, int len, PyObject *curs)
+{
+    PyObject* obj = NULL;
+    int n, y=0, m=0, d=0;
+     
+    if (str == NULL) {Py_INCREF(Py_None); return Py_None;}
+    
+    if (!strcmp(str, "infinity") || !strcmp(str, "-infinity")) {
+        if (str[0] == '-') {
+            obj = PyObject_GetAttrString(pyDateTypeP, "min");
+        }
+        else {
+            obj = PyObject_GetAttrString(pyDateTypeP, "max");
+        }
+    }
+
+    else {
+        n = typecast_parse_date(str, NULL, &len, &y, &m, &d);
+        Dprintf("typecast_PYDATE_cast: "
+                "n = %d, len = %d, y = %d, m = %d, d = %d",
+                 n, len, y, m, d);
+        if (n != 3) {
+            PyErr_SetString(DataError, "unable to parse date");
+        }
+        else {
+            obj = PyObject_CallFunction(pyDateTypeP, "iii", y, m, d);
+        }
+    }
+    return obj;
+}
+
+/** DATETIME - cast a timestamp into a datetime python object **/
+
+static PyObject *
+typecast_PYDATETIME_cast(char *str, int len, PyObject *curs)
+{
+    PyObject* obj = NULL;
+    int n, y=0, m=0, d=0;
+    int hh=0, mm=0, ss=0, us=0, tz=0;
+    char *tp = NULL;
+    
+    if (str == NULL) {Py_INCREF(Py_None); return Py_None;}
+    
+    /* check for infinity */
+    if (!strcmp(str, "infinity") || !strcmp(str, "-infinity")) {
+        if (str[0] == '-') {
+            obj = PyObject_GetAttrString(pyDateTimeTypeP, "min");
+        }
+        else {
+            obj = PyObject_GetAttrString(pyDateTimeTypeP, "max");
+        }
+    }
+
+    else {
+        Dprintf("typecast_PYDATETIME_cast: s = %s", str);
+        n = typecast_parse_date(str, &tp, &len, &y, &m, &d);
+        Dprintf("typecast_PYDATE_cast: tp = %p "
+                "n = %d, len = %d, y = %d, m = %d, d = %d",
+                 tp, n, len, y, m, d);        
+        if (n != 3) {
+            PyErr_SetString(DataError, "unable to parse date");
+        }
+        
+        if (len > 0) {
+            n = typecast_parse_time(tp, NULL, &len, &hh, &mm, &ss, &us, &tz);
+            Dprintf("typecast_PYDATETIME_cast: n = %d, len = %d, "
+                "hh = %d, mm = %d, ss = %d, us = %d, tz = %d",
+                n, len, hh, mm, ss, us, tz);
+            if (n < 3 || n > 5) {
+                PyErr_SetString(DataError, "unable to parse time");
+            }
+        }
+        
+        if (ss > 59) {
+            mm += 1;
+            ss -= 60;
+        }
+        
+        if (n == 5 && ((cursorObject*)curs)->tzinfo_factory != Py_None) {
+            /* we have a time zone, calculate minutes and create
+               appropriate tzinfo object calling the factory */
+            PyObject *tzinfo;
+            Dprintf("typecast_PYDATETIME_cast: UTC offset = %dm", tz);
+            tzinfo = PyObject_CallFunction(
+                ((cursorObject*)curs)->tzinfo_factory, "i", tz);
+            obj = PyObject_CallFunction(pyDateTimeTypeP, "iiiiiiiO",
+                 y, m, d, hh, mm, ss, us, tzinfo);
+            Dprintf("typecast_PYDATETIME_cast: tzinfo: %p, refcnt = %d",
+                    tzinfo, tzinfo->ob_refcnt);
+            Py_XDECREF(tzinfo);
+        }
+        else {
+            obj = PyObject_CallFunction(pyDateTimeTypeP, "iiiiiii",
+                 y, m, d, hh, mm, ss, us);
+        }
+    }
+    return obj;
+}
+
+/** TIME - parse time into a time object **/
+
+static PyObject *
+typecast_PYTIME_cast(char *str, int len, PyObject *curs)
+{
+    PyObject* obj = NULL;
+    int n, hh=0, mm=0, ss=0, us=0, tz=0;
+    
+    if (str == NULL) {Py_INCREF(Py_None); return Py_None;}
+        
+    n = typecast_parse_time(str, NULL, &len, &hh, &mm, &ss, &us, &tz);
+    Dprintf("typecast_PYTIME_cast: n = %d, len = %d, "
+            "hh = %d, mm = %d, ss = %d, us = %d, tz = %d",
+            n, len, hh, mm, ss, us, tz);
+                
+    if (n < 3 || n > 5) {
+        PyErr_SetString(DataError, "unable to parse time");
+    }
+    else {
+        if (ss > 59) {
+            mm += 1;
+            ss -= 60;
+        }
+        obj = PyObject_CallFunction(pyTimeTypeP, "iiii", hh, mm, ss, us);
+    }
+    return obj;          
+}
+
+/** INTERVAL - parse an interval into a timedelta object **/
+
+static PyObject *
+typecast_PYINTERVAL_cast(char *str, int len, PyObject *curs)
+{
+    long years = 0, months = 0, days = 0;
+    double hours = 0.0, minutes = 0.0, seconds = 0.0, hundredths = 0.0;
+    double v = 0.0, sign = 1.0, denominator = 1.0;
+    int part = 0, sec;
+    double micro;
+
+    if (str == NULL) {Py_INCREF(Py_None); return Py_None;}
+
+    Dprintf("typecast_PYINTERVAL_cast: s = %s", str);
+    
+    while (len-- > 0 && *str) {
+        switch (*str) {
+
+        case '-':
+            sign = -1.0;
+            break;
+
+        case '0': case '1': case '2': case '3': case '4':
+        case '5': case '6': case '7': case '8': case '9':
+            v = v*10 + (double)*str - (double)'0';
+            if (part == 6){
+                denominator *= 10;
+            }
+            break;
+
+        case 'y':
+            if (part == 0) {
+                years = (long)(v*sign);
+                str = skip_until_space2(str, &len);
+                v = 0.0; sign = 1.0; part = 1;
+            }
+            break;
+
+        case 'm':
+            if (part <= 1) {
+                months = (long)(v*sign);
+                str = skip_until_space2(str, &len);
+                v = 0.0; sign = 1.0; part = 2;
+            }
+            break;
+
+        case 'd':
+            if (part <= 2) {
+                days = (long)(v*sign);
+                str = skip_until_space2(str, &len);
+                v = 0.0; sign = 1.0; part = 3;
+            }
+            break;
+
+        case ':':
+            if (part <= 3) {
+                hours = v;
+                v = 0.0; part = 4;
+            }
+            else if (part == 4) {
+                minutes = v;
+                v = 0.0; part = 5;
+            }
+            break;
+
+        case '.':
+            if (part == 5) {
+                seconds = v;
+                v = 0.0; part = 6;
+            }
+            break;   
+
+        default:
+            break;
+        }
+        
+        str++;
+    }
+
+    /* manage last value, be it minutes or seconds or hundredths of a second */
+    if (part == 4) {
+        minutes = v;
+    }
+    else if (part == 5) {
+        seconds = v;
+    }
+    else if (part == 6) {
+        hundredths = v;
+        hundredths = hundredths/denominator;
+    }
+    
+    /* calculates seconds */
+    if (sign < 0.0) {
+        seconds = - (hundredths + seconds + minutes*60 + hours*3600);
+    }
+    else {
+        seconds += hundredths + minutes*60 + hours*3600;
+    }
+
+    /* calculates days */ 
+    days += years*365 + months*30;
+
+    micro = (seconds - floor(seconds)) * 1000000.0;
+    sec = (int)floor(seconds);
+    return PyObject_CallFunction(pyDeltaTypeP, "iii",
+                                 days, sec, (int)round(micro));
+}
+
+/* psycopg defaults to using python datetime types */
+
+#ifdef PSYCOPG_DEFAULT_PYDATETIME 
+#define typecast_DATE_cast typecast_PYDATE_cast
+#define typecast_TIME_cast typecast_PYTIME_cast
+#define typecast_INTERVAL_cast typecast_PYINTERVAL_cast
+#define typecast_DATETIME_cast typecast_PYDATETIME_cast
+#endif
diff --git a/trunk/psycopg2/psycopg/typecast_mxdatetime.c b/trunk/psycopg2/psycopg/typecast_mxdatetime.c
new file mode 100644 (file)
index 0000000..52b1ce7
--- /dev/null
@@ -0,0 +1,231 @@
+/* typecast_mxdatetime.c - date and time typecasting functions to mx types
+ *
+ * Copyright (C) 2001-2003 Federico Di Gregorio <fog@debian.org>
+ *
+ * This file is part of the psycopg module.
+ *
+ * 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,
+ * 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; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "mxDateTime.h"
+
+/* the pointer to the mxDateTime API is initialized by the module init code,
+   we just need to grab it */
+extern mxDateTimeModule_APIObject *mxDateTimeP;
+
+/** DATE - cast a date into mx.DateTime python object **/
+
+static PyObject *
+typecast_MXDATE_cast(char *str, int len, PyObject *curs)
+{
+    int n, y=0, m=0, d=0;
+    int hh=0, mm=0, ss=0, us=0, tz=0;
+    char *tp = NULL;
+    
+    if (str == NULL) {Py_INCREF(Py_None); return Py_None;}
+    Dprintf("typecast_MXDATE_cast: s = %s", str);
+    
+    /* check for infinity */
+    if (!strcmp(str, "infinity") || !strcmp(str, "-infinity")) {
+        if (str[0] == '-') {
+            return mxDateTimeP->DateTime_FromDateAndTime(-999998,1,1, 0,0,0);
+        }
+        else {
+            return mxDateTimeP->DateTime_FromDateAndTime(999999,12,31, 0,0,0);
+        }
+    }
+    
+    n = typecast_parse_date(str, &tp, &len, &y, &m, &d);
+    Dprintf("typecast_MXDATE_cast: tp = %p n = %d, len = %d, "
+             "y = %d, m = %d, d = %d", tp, n, len, y, m, d);        
+    if (n != 3) {
+        PyErr_SetString(DataError, "unable to parse date");
+    }
+    
+    if (len > 0) {
+        n = typecast_parse_time(tp, NULL, &len, &hh, &mm, &ss, &us, &tz);
+        Dprintf("typecast_MXDATE_cast: n = %d, len = %d, "
+            "hh = %d, mm = %d, ss = %d, us = %d, tz = %d",
+            n, len, hh, mm, ss, us, tz);
+        if (n < 3 || n > 5) {
+            PyErr_SetString(DataError, "unable to parse time");
+        }
+    }    
+    
+    Dprintf("typecast_MXDATE_cast: fractionary seconds: %lf",
+        (double)ss + (double)us/(double)1000000.0);
+    return mxDateTimeP->DateTime_FromDateAndTime(y, m, d, hh, mm,
+        (double)ss + (double)us/(double)1000000.0);
+}
+
+/** TIME - parse time into an mx.DateTime object **/
+
+static PyObject *
+typecast_MXTIME_cast(char *str, int len, PyObject *curs)
+{
+    int n, hh=0, mm=0, ss=0, us=0, tz=0;
+
+    if (str == NULL) {Py_INCREF(Py_None); return Py_None;}
+    
+    Dprintf("typecast_MXTIME_cast: s = %s", str);
+    
+    n = typecast_parse_time(str, NULL, &len, &hh, &mm, &ss, &us, &tz);
+    Dprintf("typecast_MXTIME_cast: time parsed, %d components", n);
+    Dprintf("typecast_MXTIME_cast: hh = %d, mm = %d, ss = %d, us = %d",
+             hh, mm, ss, us);
+    
+    if (n < 3 || n > 5) {
+        PyErr_SetString(DataError, "unable to parse time");
+        return NULL;
+    }
+
+    Dprintf("typecast_MXTIME_cast: fractionary seconds: %lf",
+        (double)ss + (double)us/(double)1000000.0);
+    return mxDateTimeP->DateTimeDelta_FromTime(hh, mm,
+        (double)ss + (double)us/(double)1000000.0);
+}
+
+/** INTERVAL - parse an interval into an mx.DateTimeDelta **/
+
+static PyObject *
+typecast_MXINTERVAL_cast(char *str, int len, PyObject *curs)
+{
+    long years = 0, months = 0, days = 0, denominator = 1;
+    double hours = 0.0, minutes = 0.0, seconds = 0.0, hundredths = 0.0;
+    double v = 0.0, sign = 1.0;
+    int part = 0;
+
+    if (str == NULL) {Py_INCREF(Py_None); return Py_None;}
+    
+    Dprintf("typecast_MXINTERVAL_cast: s = %s", str);
+    
+    while (*str) {
+        switch (*str) {
+
+        case '-':
+            sign = -1.0;
+            break;
+
+        case '0': case '1': case '2': case '3': case '4':
+        case '5': case '6': case '7': case '8': case '9':
+            v = v*10 + (double)*str - (double)'0';
+            Dprintf("typecast_MXINTERVAL_cast: v = %f", v);
+            if (part == 6){
+                denominator *= 10;
+                Dprintf("typecast_MXINTERVAL_cast: denominator = %ld",
+                        denominator);
+            }
+            break;
+
+        case 'y':
+            if (part == 0) {
+                years = (long)(v*sign);
+                str = skip_until_space(str);
+                Dprintf("typecast_MXINTERVAL_cast: years = %ld, rest = %s",
+                        years, str);
+                v = 0.0; sign = 1.0; part = 1;
+            }
+            break;
+
+        case 'm':
+            if (part <= 1) {
+                months = (long)(v*sign);
+                str = skip_until_space(str);
+                Dprintf("typecast_MXINTERVAL_cast: months = %ld, rest = %s",
+                        months, str);
+                v = 0.0; sign = 1.0; part = 2;
+            }
+            break;
+
+        case 'd':
+            if (part <= 2) {
+                days = (long)(v*sign);
+                str = skip_until_space(str);
+                Dprintf("typecast_MXINTERVAL_cast: days = %ld, rest = %s",
+                        days, str);
+                v = 0.0; sign = 1.0; part = 3;
+            }
+            break;
+
+        case ':':
+            if (part <= 3) {
+                hours = v;
+                Dprintf("typecast_MXINTERVAL_cast: hours = %f", hours);
+                v = 0.0; part = 4;
+            }
+            else if (part == 4) {
+                minutes = v;
+                Dprintf("typecast_MXINTERVAL_cast: minutes = %f", minutes);
+                v = 0.0; part = 5;
+            }
+            break;
+
+        case '.':
+            if (part == 5) {
+                seconds = v;
+                Dprintf("typecast_MXINTERVAL_cast: seconds = %f", seconds);
+                v = 0.0; part = 6;
+            }
+            break;   
+
+        default:
+            break;
+        }
+        
+        str++;
+    }
+
+    /* manage last value, be it minutes or seconds or hundredths of a second */
+    if (part == 4) {
+        minutes = v;
+        Dprintf("typecast_MXINTERVAL_cast: minutes = %f", minutes);
+    }
+    else if (part == 5) {
+        seconds = v;
+        Dprintf("typecast_MXINTERVAL_cast: seconds = %f", seconds);
+    }
+    else if (part == 6) {
+        hundredths = v;
+        Dprintf("typecast_MXINTERVAL_cast: hundredths = %f", hundredths);
+        hundredths = hundredths/denominator;
+        Dprintf("typecast_MXINTERVAL_cast: fractions = %.20f", hundredths);
+    }
+    
+    /* calculates seconds */
+    if (sign < 0.0) {
+        seconds = - (hundredths + seconds + minutes*60 + hours*3600);
+    }
+    else {
+        seconds += hundredths + minutes*60 + hours*3600;
+    }
+
+    /* calculates days */
+    days += years*365 + months*30;
+    
+    Dprintf("typecast_MXINTERVAL_cast: days = %ld, seconds = %f",
+            days, seconds);
+    return mxDateTimeP->DateTimeDelta_FromDaysAndSeconds(days, seconds);
+}
+
+/* psycopg defaults to using mx types */
+
+#ifdef PSYCOPG_DEFAULT_MXDATETIME 
+#define typecast_DATE_cast typecast_MXDATE_cast
+#define typecast_TIME_cast typecast_MXTIME_cast
+#define typecast_INTERVAL_cast typecast_MXINTERVAL_cast
+#define typecast_DATETIME_cast typecast_MXDATE_cast
+#endif
+
diff --git a/trunk/psycopg2/scripts/buildtypes.py b/trunk/psycopg2/scripts/buildtypes.py
new file mode 100644 (file)
index 0000000..197272f
--- /dev/null
@@ -0,0 +1,124 @@
+# -*- python -*-
+#
+# Copyright (C) 2001-2003 Federico Di Gregorio <fog@debian.org>
+#
+# This file is part of the psycopg module.
+#
+# 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,
+# 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; if not, write to the Free Software
+# Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# this a little script that analyze a file with (TYPE, NUMBER) tuples
+# and write out C code ready for inclusion in psycopg. the generated
+# code defines the DBAPITypeObject fundamental types and warns for
+# undefined types.
+
+import sys, os, string, copy
+from string import split, join, strip
+
+
+# here is the list of the foundamental types we want to import from
+# postgresql header files
+
+basic_types = (['NUMBER', ['INT8', 'INT4', 'INT2', 'FLOAT8', 'FLOAT4',
+                           'NUMERIC']],
+               ['LONGINTEGER', ['INT8']],
+               ['INTEGER', ['INT4', 'INT2']],
+               ['FLOAT', ['FLOAT8', 'FLOAT4']],
+               ['DECIMAL', ['NUMERIC']],
+               ['UNICODE', ['NAME', 'CHAR', 'TEXT', 'BPCHAR',
+                            'VARCHAR']],
+               ['STRING', ['NAME', 'CHAR', 'TEXT', 'BPCHAR',
+                           'VARCHAR']],
+               ['BOOLEAN', ['BOOL']],
+               ['DATETIME', ['TIMESTAMP', 'TIMESTAMPTZ', 
+                             'TINTERVAL', 'INTERVAL']],
+               ['TIME', ['TIME', 'TIMETZ']],
+               ['DATE', ['DATE']],
+               ['INTERVAL', ['TINTERVAL', 'INTERVAL']],
+               ['BINARY', ['BYTEA']],
+               ['ROWID', ['OID']])
+
+# unfortunately we don't have a nice way to extract array information
+# from postgresql headers; we'll have to do it hard-coding :/
+array_types = (['LONGINTEGER', [1016]],
+               ['INTEGER', [1005, 1006, 1007]],
+               ['FLOAT', [1017, 1021, 1022]],
+               ['DECIMAL', [1231]],
+               ['UNICODE', [1002, 1003, 1009, 1014, 1015]],
+               ['STRING', [1002, 1003, 1009, 1014, 1015]],
+               ['BOOLEAN', [1000]],
+               ['DATETIME', [1115, 1185]],
+               ['TIME', [1183, 1270]],
+               ['DATE', [1182]],
+               ['INTERVAL', [1187]],
+               ['BINARY', [1001]],
+               ['ROWID', [1028, 1013]])
+
+# this is the header used to compile the data in the C module
+HEADER = """
+typecastObject_initlist typecast_builtins[] = {
+"""
+
+# then comes the footer
+FOOTER = """    {NULL, NULL, NULL, NULL}\n};\n"""
+
+
+# usefull error reporting function
+def error(msg):
+    """Report an error on stderr."""
+    sys.stderr.write(msg+'\n')
+    
+
+# read couples from stdin and build list
+read_types = []
+for l in sys.stdin.readlines():
+    oid, val = split(l)
+    read_types.append((strip(oid)[:-3], strip(val)))
+
+# look for the wanted types in the read touples
+found_types = {}
+
+for t in basic_types:
+    k = t[0]
+    found_types[k] = []
+    for v in t[1]:
+        found = filter(lambda x, y=v: x[0] == y, read_types)
+        if len(found) == 0:
+            error(v+': value not found')
+        elif len(found) > 1:
+            error(v+': too many values')
+        else:
+            found_types[k].append(int(found[0][1]))
+
+# now outputs to stdout the right C-style definitions
+stypes = "" ; sstruct = ""
+for t in basic_types:
+    k = t[0]
+    s = str(found_types[k])
+    s = '{' + s[1:-1] + ', 0}'
+    stypes = stypes + ('static long int typecast_%s_types[] = %s;\n' % (k, s))
+    sstruct += ('  {"%s", typecast_%s_types, typecast_%s_cast, NULL},\n'
+                % (k, k, k))
+for t in array_types:
+    kt = t[0]
+    ka = t[0]+'ARRAY'
+    s = str(t[1])
+    s = '{' + s[1:-1] + ', 0}'
+    stypes = stypes + ('static long int typecast_%s_types[] = %s;\n' % (ka, s))
+    sstruct += ('  {"%s", typecast_%s_types, typecast_%s_cast, "%s"},\n'
+                % (ka, ka, ka, kt))
+sstruct = HEADER + sstruct + FOOTER
+
+print stypes
+print sstruct
diff --git a/trunk/psycopg2/scripts/ext2html.py b/trunk/psycopg2/scripts/ext2html.py
new file mode 100755 (executable)
index 0000000..488e97f
--- /dev/null
@@ -0,0 +1,169 @@
+#!/usr/bin/env python\r
+\r
+# Author: Daniele Varrazzo\r
+# Contact: daniele dot varrazzo at gmail dot com\r
+# Revision: $Revision$\r
+# Date: $Date$\r
+# Copyright: This module has been placed in the public domain.\r
+\r
+"""\r
+A minimal front end to the Docutils Publisher, producing HTML.\r
+\r
+Output can refer to Epydoc-generated APIs through the iterpreted text role\r
+"api".\r
+"""\r
+\r
+import types\r
+import sys\r
+\r
+# The url fragment where the api "index.html" resides w.r.t. the generated docs\r
+api_root = "api/"\r
+\r
+try:\r
+    import locale\r
+    locale.setlocale(locale.LC_ALL, '')\r
+except:\r
+    pass\r
+\r
+from docutils.core import publish_cmdline, default_description\r
+from docutils.parsers.rst.roles import register_canonical_role\r
+from docutils import nodes, utils\r
+\r
+# api references are searched for in these modules\r
+api_modules = [\r
+    'psycopg2',\r
+    'psycopg2._psycopg',\r
+    'psycopg2.extensions',\r
+]\r
+\r
+# name starting with a dot are looking as those objects attributes.
+searched_objects = [
+    # module_name, object_name
+    ('psycopg2.extensions', 'connection'),
+    ('psycopg2.extensions', 'cursor'),
+]
+
+# import all the referenced modules\r
+for modname in api_modules:\r
+    __import__(modname)\r
+    \r
+class EpydocTarget:
+    """Representation of an element language."""\r
+    def __init__(self, name, element):\r
+        self.name = name\r
+        \r
+        # The python object described\r
+        self.element = element\r
+    \r
+        # The base name of the page\r
+        self.page = None\r
+        \r
+        # The url fragment\r
+        self.fragment = None\r
+        \r
+    def get_url(self):\r
+        # is it a private element?\r
+        components = self.page.split('.')\r
+        if self.fragment: components.append(self.fragment)\r
+            \r
+        for component in components:\r
+            if component.startswith('_'):\r
+                private = True\r
+                break\r
+        else:\r
+            private = False\r
+            \r
+        ref = api_root + (private and "private/" or "public/") \\r
+            + self.page + "-" + self.get_type() + ".html"\r
+        if self.fragment:\r
+            ref = ref + "#" + self.fragment\r
+        \r
+        return ref\r
+\r
+    def get_type(self):\r
+        # detect the element type\r
+        if isinstance(self.element, types.TypeType):\r
+            return 'class'\r
+        elif isinstance(self.element, types.ModuleType):\r
+            return 'module'\r
+        else:\r
+            raise ValueError("Can't choose a type for '%s'." % self.name)\r
+            \r
+def filter_par(name):\r
+    """Filter parenthesis away from a name."""\r
+    if name.endswith(")"):\r
+        return name.split("(")[0]\r
+    else:\r
+        return name\r
+        \r
+def get_element_target(name):\r
+    """Return the life, the death, the miracles about a package element."""\r
+    \r
+    name = filter_par(name)\r
+    
+    if name.startswith('.'):
+        for modname, objname in searched_objects:
+            if hasattr(getattr(sys.modules[modname], objname), name[1:]):
+                name = objname + name
+                break
+        \r
+    # is the element a module?\r
+    if name in api_modules:\r
+        out = EpydocTarget(name, sys.modules[name])\r
+        out.page = name\r
+        return out\r
+        \r
+    # look for the element in some module\r
+    for modname in api_modules:\r
+        element = getattr(sys.modules[modname], name, None)\r
+        if element is not None:\r
+            \r
+            # Check if it is a function defined in a module\r
+            if isinstance(element, \r
+                    (int, types.FunctionType, types.BuiltinFunctionType)):\r
+                out = EpydocTarget(name, sys.modules[modname])\r
+                out.page = modname\r
+                out.fragment = name\r
+            else:\r
+                out = EpydocTarget(name, element)\r
+                out.page = modname + '.' + name\r
+                \r
+            return out\r
+    \r
+    # maybe a qualified name?\r
+    if '.' in name:\r
+        out = get_element_target('.'.join(name.split('.')[:-1]))\r
+        if out is not None:\r
+            out.fragment = filter_par(name.split('.')[-1])\r
+            return out\r
+                \r
+    raise ValueError("Can't find '%s' in any provided module." % name)\r
+    \r
+def api_role(role, rawtext, text, lineno, inliner,
+                       options={}, content=[]):\r
+    try:\r
+        target = get_element_target(text)\r
+    except Exception, exc:\r
+        msg = inliner.reporter.error(str(exc), line=lineno)
+        prb = inliner.problematic(rawtext, rawtext, msg)
+        return [prb], [msg]
+        \r
+    ref = target.get_url()\r
+    node2 = nodes.literal(rawtext, utils.unescape(text))
+    node = nodes.reference(rawtext, '', node2, refuri=ref,\r
+                           **options)\r
+    return [node], []
+\r
+
+register_canonical_role('api', api_role)
+\r
+# Register the 'api' role as canonical role
+from docutils.parsers.rst import roles 
+roles.DEFAULT_INTERPRETED_ROLE = 'api'
+\r
+
+description = ('Generates (X)HTML documents from standalone reStructuredText '\r
+               'sources with links to Epydoc API.  ' + default_description)\r
+\r
+
+publish_cmdline(writer_name='html', description=description)\r
diff --git a/trunk/psycopg2/scripts/makedocs.py b/trunk/psycopg2/scripts/makedocs.py
new file mode 100755 (executable)
index 0000000..dcaa940
--- /dev/null
@@ -0,0 +1,15 @@
+#!/usr/bin/env python\r
+"""Build documentation and api."""\r
+\r
+import os\r
+\r
+EPYDOC = "python c:/programmi/python23/scripts/epydoc.py"\r
+PSYCOPG = "c:/programmi/python23/lib/site-packages/psycopg2"\r
+\r
+os.system("python ext2html.py ../doc/extensions.rst > ../doc/extensions.html")\r
+os.system("%s "\r
+          "-o ../doc/api "\r
+          "--css ../doc/api-screen.css "\r
+          "--docformat restructuredtext " \r
+          "%s"\r
+    % (EPYDOC,PSYCOPG,))\r
diff --git a/trunk/psycopg2/scripts/maketypes.sh b/trunk/psycopg2/scripts/maketypes.sh
new file mode 100755 (executable)
index 0000000..ab133c1
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+SCRIPTSDIR="`dirname $0`"
+SRCDIR="`dirname $SCRIPTSDIR`/psycopg"
+
+if [ -z "$1" ] ; then
+    echo Usage: $0 '<postgresql include directory>'
+    exit 1
+fi
+
+echo -n checking for pg_type.h ...
+if [ -f "$1/catalog/pg_type.h" ] ; then
+    PGTYPE="$1/catalog/pg_type.h"
+else
+    if [ -f "$1/server/catalog/pg_type.h" ] ; then
+        PGTYPE="$1/server/catalog/pg_type.h"
+    else
+       echo
+        echo "error: can't find pg_type.h under $1"
+       exit 2
+    fi
+fi
+echo " found"
+
+PGVERSION="`sed -n -e 's/.*PG_VERSION \"\([0-9]\.[0-9]\).*\"/\1/p' $1/pg_config.h`"
+PGMAJOR="`echo $PGVERSION | cut -d. -f1`"
+PGMINOR="`echo $PGVERSION | cut -d. -f2`"
+
+echo checking for postgresql major: $PGMAJOR
+echo checking for postgresql minor: $PGMINOR
+    
+echo -n generating pgtypes.h ...
+awk '/#define .+OID/ {print "#define " $2 " " $3}' "$PGTYPE" \
+    > $SRCDIR/pgtypes.h
+echo " done"
+echo -n generating typecast_builtins.c ...
+awk '/#define .+OID/ {print $2 " " $3}' "$PGTYPE" | \
+    python $SCRIPTSDIR/buildtypes.py >$SRCDIR/typecast_builtins.c
+echo " done"
+
+
diff --git a/trunk/psycopg2/setup.cfg b/trunk/psycopg2/setup.cfg
new file mode 100644 (file)
index 0000000..9c32951
--- /dev/null
@@ -0,0 +1,46 @@
+[build_ext]
+define=PSYCOPG_EXTENSIONS,PSYCOPG_DISPLAY_SIZE,PSYCOPG_NEW_BOOLEAN,HAVE_PQFREEMEM,HAVE_PQPROTOCOL3
+# PSYCOPG_EXTENSIONS enables extensions to PEP-249 (you really want this)
+# PSYCOPG_DISPLAY_SIZE enable display size calculation (a little slower)
+# HAVE_PQFREEMEM should be defined on PostgreSQL >= 7.3
+# HAVE_PQPROTOCOL3 should be defined on PostgreSQL >= 7.4
+# PSYCOPG_DEBUG can be added to enable verbose debug information
+# PSYCOPG_OWN_QUOTING can be added, but it is deprecated (will go away in 2.1)
+# PSYCOPG_NEW_BOOLEAN to format booleans as true/false vs 't'/'f'
+
+# Set to 1 to use Python datatime objects for default date/time representation
+use_pydatetime=1
+
+# Set to 1 if you want to enable "Decimal" type on python 2.3. 
+# If the "decimal" module is found in the PYTHONPATH it will be used, else
+# fall back on the float type (this is disabled by default to be compatible
+# with old versions of psycopg 1 and pre-beta versions of psycopg 2.)
+use_decimal=0
+
+# If the build system does not find the mx.DateTime headers, try 
+# uncommenting the following line and setting its value to the right path.
+#mx_include_dir=
+
+# "pg_config" is the preferred method to locate PostgreSQL headers and
+# libraries needed to build psycopg2. If pg_config is not in the path or
+# is installed under a different name uncomment the following option and
+# set it to the pg_config full path.
+#pg_config=
+
+# If "pg_config" is not available, "include_dirs" can be used to locate 
+# postgresql headers and libraries. Some extra checks on sys.platform will
+# still be done in setup.py.
+# The next line is the default as used on psycopg author Debian laptop:
+#include_dirs=/usr/include/postgresql:/usr/include/postgresql/server
+
+# Uncomment next line on Mandrake 10.x (and comment previous ones):
+#include_dirs=/usr/include/pgsql/8.0:/usr/include/pgsql/8.0/server 
+
+# Uncomment next line on SUSE 9.3 (and comment previous ones):
+#include_dirs=/usr/include/pgsql:/usr/include/pgsql/server
+
+# If postgresql is installed somewhere weird (i.e., not in your runtime library
+# path like /usr/lib), just add the right path in "library_dirs" and any extra
+# libraries required to link in "libraries".
+#library_dirs=
+#libraries=
diff --git a/trunk/psycopg2/setup.py b/trunk/psycopg2/setup.py
new file mode 100644 (file)
index 0000000..45daed7
--- /dev/null
@@ -0,0 +1,293 @@
+# setup.py - distutils packaging
+#
+# Copyright (C) 2003-2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+"""Python-PostgreSQL Database Adapter
+psycopg is a PostgreSQL database adapter for the Python programming
+language. This is version 2, a complete rewrite of the original code to
+provide new-style classes for connection and cursor objects and other sweet
+candies. Like the original, psycopg 2 was written with the aim of being
+very small and fast, and stable as a rock.
+psycopg is different from the other database adapter because it was
+designed for heavily multi-threaded applications that create and destroy
+lots of cursors and make a conspicuous number of concurrent INSERTs or
+UPDATEs. psycopg 2 also provide full asycronous operations for the really
+brave programmer.
+"""
+
+classifiers = """\
+Development Status :: 4 - Beta
+Intended Audience :: Developers
+License :: OSI Approved :: GNU General Public License (GPL)
+License :: OSI Approved :: Zope Public License
+Programming Language :: Python
+Programming Language :: C
+Programming Language :: SQL
+Topic :: Database
+Topic :: Database :: Front-Ends
+Topic :: Software Development
+Topic :: Software Development :: Libraries :: Python Modules
+Operating System :: Microsoft :: Windows
+Operating System :: Unix
+"""
+
+import os
+import sys
+import popen2
+from distutils.core import setup, Extension
+from distutils.errors import DistutilsFileError
+from distutils.command.build_ext import build_ext
+from distutils.sysconfig import get_python_inc
+from distutils.ccompiler import get_default_compiler
+
+PSYCOPG_VERSION = '2.0.5.1'
+version_flags   = []
+
+# to work around older distutil limitations
+if sys.version < '2.2.3':
+    from distutils.dist import DistributionMetadata
+    DistributionMetadata.classifiers = None
+    DistributionMetadata.download_url = None
+
+def get_pg_config(kind, pg_config="pg_config"):
+    p = popen2.popen3(pg_config + " --" + kind)
+    r = p[0].readline().strip()
+    if not r:
+        raise Warning(p[2].readline())
+    return r
+    
+class psycopg_build_ext(build_ext):
+    """Conditionally complement the setup.cfg options file.
+    
+    This class configures the include_dirs, libray_dirs, libraries
+    options as required by the system. Most of the configuration happens
+    in finalize_options() method.
+    
+    If you want to set up the build step for a peculiar platform, add a
+    method finalize_PLAT(), where PLAT matches your sys.platform.
+    """
+    user_options = build_ext.user_options[:]
+    user_options.extend([
+        ('use-pydatetime', None,
+         "Use Python datatime objects for date and time representation."),    
+        ('pg-config=', None,
+          "The name of the pg_config binary and/or full path to find it"),
+        ('use-decimal', None,
+         "Use Decimal type even on Python 2.3 if the module is provided."),
+    ])
+    
+    boolean_options = build_ext.boolean_options[:]
+    boolean_options.extend(('use-pydatetime', 'use-decimal'))
+    
+    DEFAULT_PG_CONFIG = "pg_config"
+    
+    def initialize_options(self):
+        build_ext.initialize_options(self)
+        self.use_pg_dll = 1
+        self.pgdir = None
+        self.pg_config = self.DEFAULT_PG_CONFIG
+        self.mx_include_dir = None
+    
+    def get_compiler(self):
+        """Return the c compiler to compile extensions.
+
+        If a compiler was not explicitely set (on the command line, for
+        example), fall back on the default compiler.
+        """
+        return self.compiler or get_default_compiler()
+
+    def get_pg_config(self, kind):
+        return get_pg_config(kind, self.pg_config)
+
+    def build_extensions(self):
+        # Linking against this library causes psycopg2 to crash 
+        # on Python >= 2.4. Maybe related to strdup calls, cfr.
+        # http://mail.python.org/pipermail/distutils-sig/2005-April/004433.html
+        if self.get_compiler().compiler_type == "mingw32" \
+            and 'msvcr71' in self.compiler.dll_libraries:
+            self.compiler.dll_libraries.remove('msvcr71')
+
+        build_ext.build_extensions(self)
+        
+    def finalize_win32(self):
+        """Finalize build system configuration on win32 platform."""
+        self.libraries.append("ws2_32")
+        self.libraries.append("advapi32")
+        if self.get_compiler() == "msvc":
+            # MSVC requires an explicit "libpq"
+            self.libraries.remove("pq")
+            self.libraries.append("libpq")
+            self.libraries.append("shfolder")
+            for path in self.library_dirs: 
+                if os.path.isfile(os.path.join(path, "ms", "libpq.lib")): 
+                    self.library_dirs.append(os.path.join(path, "ms")) 
+                    break
+    def finalize_darwin(self):
+        """Finalize build system configuration on darwin platform."""
+        self.libraries.append('ssl')
+        self.libraries.append('crypto')
+        
+    def finalize_options(self):
+        """Complete the build system configuation."""
+        build_ext.finalize_options(self)
+
+        self.include_dirs.append(".")        
+        self.libraries.append("pq")
+        
+        try:
+            self.library_dirs.append(self.get_pg_config("libdir"))
+            self.include_dirs.append(self.get_pg_config("includedir"))
+            self.include_dirs.append(self.get_pg_config("includedir-server"))
+            try:
+                # Here we take a conservative approach: we suppose that
+                # *at least* PostgreSQL 7.4 is available (this is the only
+                # 7.x series supported by psycopg 2)
+                pgversion = self.get_pg_config("version").split()[1]
+                pgmajor, pgminor, pgpatch = pgversion.split('.')
+            except:
+                pgmajor, pgminor, pgpatch = 7, 4, 0
+            define_macros.append(("PG_MAJOR_VERSION", pgmajor))
+            define_macros.append(("PG_MINOR_VERSION", pgminor))
+            define_macros.append(("PG_PATCH_VERSION", pgpatch))
+        except Warning, w:
+            if self.pg_config == self.DEFAULT_PG_CONFIG:
+                sys.stderr.write("Warning: %s" % str(w))
+            else:
+                sys.stderr.write("Error: %s" % str(w))
+                sys.exit(1)
+            
+        if hasattr(self, "finalize_" + sys.platform):
+            getattr(self, "finalize_" + sys.platform)()
+            
+# let's start with macro definitions (the ones not already in setup.cfg)
+define_macros = []
+include_dirs = []
+
+# python version
+define_macros.append(('PY_MAJOR_VERSION', str(sys.version_info[0])))
+define_macros.append(('PY_MINOR_VERSION', str(sys.version_info[1])))
+
+# some macros related to python versions and features
+if sys.version_info[0] >= 2 and sys.version_info[1] >= 3:
+    define_macros.append(('HAVE_PYBOOL','1'))
+    
+# gather information to build the extension module
+ext = [] ; data_files = []
+
+# sources
+
+sources = [
+    'psycopgmodule.c', 'pqpath.c',  'typecast.c',
+    'microprotocols.c', 'microprotocols_proto.c', 
+    'connection_type.c', 'connection_int.c', 'cursor_type.c', 'cursor_int.c',
+    'adapter_qstring.c', 'adapter_pboolean.c', 'adapter_binary.c',
+    'adapter_asis.c', 'adapter_list.c']
+
+from ConfigParser import ConfigParser
+parser = ConfigParser()
+parser.read('setup.cfg')
+
+# Choose if to use Decimal type
+use_decimal = int(parser.get('build_ext', 'use_decimal'))
+if sys.version_info[0] >= 2 and (
+    sys.version_info[1] >= 4 or (sys.version_info[1] == 3 and use_decimal)):
+    define_macros.append(('HAVE_DECIMAL','1'))
+    version_flags.append('dec')
+
+# Choose a datetime module
+have_pydatetime = False
+have_mxdatetime = False
+use_pydatetime  = int(parser.get('build_ext', 'use_pydatetime'))
+
+# check for mx package
+if parser.has_option('build_ext', 'mx_include_dir'):
+    mxincludedir = parser.get('build_ext', 'mx_include_dir')
+else:
+    mxincludedir = os.path.join(get_python_inc(plat_specific=1), "mx")
+if os.path.exists(mxincludedir):
+    include_dirs.append(mxincludedir)
+    define_macros.append(('HAVE_MXDATETIME','1'))
+    sources.append('adapter_mxdatetime.c')
+    have_mxdatetime = True
+    version_flags.append('mx')
+
+# check for python datetime package
+if os.path.exists(os.path.join(get_python_inc(plat_specific=1),"datetime.h")):
+    define_macros.append(('HAVE_PYDATETIME','1'))
+    sources.append('adapter_datetime.c')
+    have_pydatetime = True
+    version_flags.append('dt')
+    
+# now decide which package will be the default for date/time typecasts
+if have_pydatetime and use_pydatetime \
+       or have_pydatetime and not have_mxdatetime:
+    define_macros.append(('PSYCOPG_DEFAULT_PYDATETIME','1'))
+elif have_mxdatetime:
+    define_macros.append(('PSYCOPG_DEFAULT_MXDATETIME','1'))
+else:
+    def e(msg):
+        sys.stderr.write("error: " + msg + "\n")
+    e("psycopg requires a datetime module:")
+    e("    mx.DateTime module not found")
+    e("    python datetime module not found")
+    e("Note that psycopg needs the module headers and not just the module")
+    e("itself. If you installed Python or mx.DateTime from a binary package")
+    e("you probably need to install its companion -dev or -devel package.")
+    sys.exit(1)
+
+# generate a nice version string to avoid confusion when users report bugs
+for have in parser.get('build_ext', 'define').split(','):
+    if have == 'PSYCOPG_EXTENSIONS':
+        version_flags.append('ext')
+    elif have == 'HAVE_PQPROTOCOL3':
+        version_flags.append('pq3')
+if version_flags:
+    PSYCOPG_VERSION_EX = PSYCOPG_VERSION + " (%s)" % ' '.join(version_flags)
+else:
+    PSYCOPG_VERSION_EX = PSYCOPG_VERSION
+    
+if sys.platform != 'win32':
+    define_macros.append(('PSYCOPG_VERSION', '"'+PSYCOPG_VERSION_EX+'"'))
+else:
+    define_macros.append(('PSYCOPG_VERSION', '\\"'+PSYCOPG_VERSION_EX+'\\"'))
+
+# build the extension
+
+sources = map(lambda x: os.path.join('psycopg', x), sources)
+
+ext.append(Extension("psycopg2._psycopg", sources,
+                     define_macros=define_macros,
+                     include_dirs=include_dirs,
+                     undef_macros=[]))
+
+setup(name="psycopg2",
+      version=PSYCOPG_VERSION,
+      maintainer="Federico Di Gregorio",
+      maintainer_email="fog@initd.org",
+      author="Federico Di Gregorio",
+      author_email="fog@initd.org",
+      url="http://initd.org/tracker/psycopg",
+      download_url = "http://initd.org/pub/software/psycopg2",
+      license="GPL with exceptions or ZPL",
+      platforms = ["any"],
+      description=__doc__.split("\n")[0],
+      long_description="\n".join(__doc__.split("\n")[2:]),
+      classifiers=filter(None, classifiers.split("\n")),
+      data_files=data_files,
+      package_dir={'psycopg2':'lib'},
+      packages=['psycopg2'],
+      cmdclass={ 'build_ext': psycopg_build_ext },
+      ext_modules=ext)
diff --git a/trunk/psycopg2/tests/dbapi20.py b/trunk/psycopg2/tests/dbapi20.py
new file mode 100644 (file)
index 0000000..21f15b9
--- /dev/null
@@ -0,0 +1,850 @@
+#!/usr/bin/env python
+''' Python DB API 2.0 driver compliance unit test suite. 
+    
+    This software is Public Domain and may be used without restrictions.
+
+ "Now we have booze and barflies entering the discussion, plus rumours of
+  DBAs on drugs... and I won't tell you what flashes through my mind each
+  time I read the subject line with 'Anal Compliance' in it.  All around
+  this is turning out to be a thoroughly unwholesome unit test."
+
+    -- Ian Bicking
+'''
+
+__rcs_id__  = '$Id$'
+__version__ = '$Revision$'[11:-2]
+__author__ = 'Stuart Bishop <zen@shangri-la.dropbear.id.au>'
+
+import unittest
+import time
+
+# $Log: dbapi20.py,v $
+# Revision 1.10  2003/10/09 03:14:14  zenzen
+# Add test for DB API 2.0 optional extension, where database exceptions
+# are exposed as attributes on the Connection object.
+#
+# Revision 1.9  2003/08/13 01:16:36  zenzen
+# Minor tweak from Stefan Fleiter
+#
+# Revision 1.8  2003/04/10 00:13:25  zenzen
+# Changes, as per suggestions by M.-A. Lemburg
+# - Add a table prefix, to ensure namespace collisions can always be avoided
+#
+# Revision 1.7  2003/02/26 23:33:37  zenzen
+# Break out DDL into helper functions, as per request by David Rushby
+#
+# Revision 1.6  2003/02/21 03:04:33  zenzen
+# Stuff from Henrik Ekelund:
+#     added test_None
+#     added test_nextset & hooks
+#
+# Revision 1.5  2003/02/17 22:08:43  zenzen
+# Implement suggestions and code from Henrik Eklund - test that cursor.arraysize
+# defaults to 1 & generic cursor.callproc test added
+#
+# Revision 1.4  2003/02/15 00:16:33  zenzen
+# Changes, as per suggestions and bug reports by M.-A. Lemburg,
+# Matthew T. Kromer, Federico Di Gregorio and Daniel Dittmar
+# - Class renamed
+# - Now a subclass of TestCase, to avoid requiring the driver stub
+#   to use multiple inheritance
+# - Reversed the polarity of buggy test in test_description
+# - Test exception heirarchy correctly
+# - self.populate is now self._populate(), so if a driver stub
+#   overrides self.ddl1 this change propogates
+# - VARCHAR columns now have a width, which will hopefully make the
+#   DDL even more portible (this will be reversed if it causes more problems)
+# - cursor.rowcount being checked after various execute and fetchXXX methods
+# - Check for fetchall and fetchmany returning empty lists after results
+#   are exhausted (already checking for empty lists if select retrieved
+#   nothing
+# - Fix bugs in test_setoutputsize_basic and test_setinputsizes
+#
+
+class DatabaseAPI20Test(unittest.TestCase):
+    ''' Test a database self.driver for DB API 2.0 compatibility.
+        This implementation tests Gadfly, but the TestCase
+        is structured so that other self.drivers can subclass this 
+        test case to ensure compiliance with the DB-API. It is 
+        expected that this TestCase may be expanded in the future
+        if ambiguities or edge conditions are discovered.
+
+        The 'Optional Extensions' are not yet being tested.
+
+        self.drivers should subclass this test, overriding setUp, tearDown,
+        self.driver, connect_args and connect_kw_args. Class specification
+        should be as follows:
+
+        import dbapi20 
+        class mytest(dbapi20.DatabaseAPI20Test):
+           [...] 
+
+        Don't 'import DatabaseAPI20Test from dbapi20', or you will
+        confuse the unit tester - just 'import dbapi20'.
+    '''
+
+    # The self.driver module. This should be the module where the 'connect'
+    # method is to be found
+    driver = None
+    connect_args = () # List of arguments to pass to connect
+    connect_kw_args = {} # Keyword arguments for connect
+    table_prefix = 'dbapi20test_' # If you need to specify a prefix for tables
+
+    ddl1 = 'create table %sbooze (name varchar(20))' % table_prefix
+    ddl2 = 'create table %sbarflys (name varchar(20))' % table_prefix
+    xddl1 = 'drop table %sbooze' % table_prefix
+    xddl2 = 'drop table %sbarflys' % table_prefix
+
+    lowerfunc = 'lower' # Name of stored procedure to convert string->lowercase
+        
+    # Some drivers may need to override these helpers, for example adding
+    # a 'commit' after the execute.
+    def executeDDL1(self,cursor):
+        cursor.execute(self.ddl1)
+
+    def executeDDL2(self,cursor):
+        cursor.execute(self.ddl2)
+
+    def setUp(self):
+        ''' self.drivers should override this method to perform required setup
+            if any is necessary, such as creating the database.
+        '''
+        pass
+
+    def tearDown(self):
+        ''' self.drivers should override this method to perform required cleanup
+            if any is necessary, such as deleting the test database.
+            The default drops the tables that may be created.
+        '''
+        con = self._connect()
+        try:
+            cur = con.cursor()
+            for ddl in (self.xddl1,self.xddl2):
+                try: 
+                    cur.execute(ddl)
+                    con.commit()
+                except self.driver.Error: 
+                    # Assume table didn't exist. Other tests will check if
+                    # execute is busted.
+                    pass
+        finally:
+            con.close()
+
+    def _connect(self):
+        try:
+            return self.driver.connect(
+                *self.connect_args,**self.connect_kw_args
+                )
+        except AttributeError:
+            self.fail("No connect method found in self.driver module")
+
+    def test_connect(self):
+        con = self._connect()
+        con.close()
+
+    def test_apilevel(self):
+        try:
+            # Must exist
+            apilevel = self.driver.apilevel
+            # Must equal 2.0
+            self.assertEqual(apilevel,'2.0')
+        except AttributeError:
+            self.fail("Driver doesn't define apilevel")
+
+    def test_threadsafety(self):
+        try:
+            # Must exist
+            threadsafety = self.driver.threadsafety
+            # Must be a valid value
+            self.failUnless(threadsafety in (0,1,2,3))
+        except AttributeError:
+            self.fail("Driver doesn't define threadsafety")
+
+    def test_paramstyle(self):
+        try:
+            # Must exist
+            paramstyle = self.driver.paramstyle
+            # Must be a valid value
+            self.failUnless(paramstyle in (
+                'qmark','numeric','named','format','pyformat'
+                ))
+        except AttributeError:
+            self.fail("Driver doesn't define paramstyle")
+
+    def test_Exceptions(self):
+        # Make sure required exceptions exist, and are in the
+        # defined heirarchy.
+        self.failUnless(issubclass(self.driver.Warning,StandardError))
+        self.failUnless(issubclass(self.driver.Error,StandardError))
+        self.failUnless(
+            issubclass(self.driver.InterfaceError,self.driver.Error)
+            )
+        self.failUnless(
+            issubclass(self.driver.DatabaseError,self.driver.Error)
+            )
+        self.failUnless(
+            issubclass(self.driver.OperationalError,self.driver.Error)
+            )
+        self.failUnless(
+            issubclass(self.driver.IntegrityError,self.driver.Error)
+            )
+        self.failUnless(
+            issubclass(self.driver.InternalError,self.driver.Error)
+            )
+        self.failUnless(
+            issubclass(self.driver.ProgrammingError,self.driver.Error)
+            )
+        self.failUnless(
+            issubclass(self.driver.NotSupportedError,self.driver.Error)
+            )
+
+    def test_ExceptionsAsConnectionAttributes(self):
+        # OPTIONAL EXTENSION
+        # Test for the optional DB API 2.0 extension, where the exceptions
+        # are exposed as attributes on the Connection object
+        # I figure this optional extension will be implemented by any
+        # driver author who is using this test suite, so it is enabled
+        # by default.
+        con = self._connect()
+        drv = self.driver
+        self.failUnless(con.Warning is drv.Warning)
+        self.failUnless(con.Error is drv.Error)
+        self.failUnless(con.InterfaceError is drv.InterfaceError)
+        self.failUnless(con.DatabaseError is drv.DatabaseError)
+        self.failUnless(con.OperationalError is drv.OperationalError)
+        self.failUnless(con.IntegrityError is drv.IntegrityError)
+        self.failUnless(con.InternalError is drv.InternalError)
+        self.failUnless(con.ProgrammingError is drv.ProgrammingError)
+        self.failUnless(con.NotSupportedError is drv.NotSupportedError)
+
+
+    def test_commit(self):
+        con = self._connect()
+        try:
+            # Commit must work, even if it doesn't do anything
+            con.commit()
+        finally:
+            con.close()
+
+    def test_rollback(self):
+        con = self._connect()
+        # If rollback is defined, it should either work or throw
+        # the documented exception
+        if hasattr(con,'rollback'):
+            try:
+                con.rollback()
+            except self.driver.NotSupportedError:
+                pass
+    
+    def test_cursor(self):
+        con = self._connect()
+        try:
+            cur = con.cursor()
+        finally:
+            con.close()
+
+    def test_cursor_isolation(self):
+        con = self._connect()
+        try:
+            # Make sure cursors created from the same connection have
+            # the documented transaction isolation level
+            cur1 = con.cursor()
+            cur2 = con.cursor()
+            self.executeDDL1(cur1)
+            cur1.execute("insert into %sbooze values ('Victoria Bitter')" % (
+                self.table_prefix
+                ))
+            cur2.execute("select name from %sbooze" % self.table_prefix)
+            booze = cur2.fetchall()
+            self.assertEqual(len(booze),1)
+            self.assertEqual(len(booze[0]),1)
+            self.assertEqual(booze[0][0],'Victoria Bitter')
+        finally:
+            con.close()
+
+    def test_description(self):
+        con = self._connect()
+        try:
+            cur = con.cursor()
+            self.executeDDL1(cur)
+            self.assertEqual(cur.description,None,
+                'cursor.description should be none after executing a '
+                'statement that can return no rows (such as DDL)'
+                )
+            cur.execute('select name from %sbooze' % self.table_prefix)
+            self.assertEqual(len(cur.description),1,
+                'cursor.description describes too many columns'
+                )
+            self.assertEqual(len(cur.description[0]),7,
+                'cursor.description[x] tuples must have 7 elements'
+                )
+            self.assertEqual(cur.description[0][0].lower(),'name',
+                'cursor.description[x][0] must return column name'
+                )
+            self.assertEqual(cur.description[0][1],self.driver.STRING,
+                'cursor.description[x][1] must return column type. Got %r'
+                    % cur.description[0][1]
+                )
+
+            # Make sure self.description gets reset
+            self.executeDDL2(cur)
+            self.assertEqual(cur.description,None,
+                'cursor.description not being set to None when executing '
+                'no-result statements (eg. DDL)'
+                )
+        finally:
+            con.close()
+
+    def test_rowcount(self):
+        con = self._connect()
+        try:
+            cur = con.cursor()
+            self.executeDDL1(cur)
+            self.assertEqual(cur.rowcount,-1,
+                'cursor.rowcount should be -1 after executing no-result '
+                'statements'
+                )
+            cur.execute("insert into %sbooze values ('Victoria Bitter')" % (
+                self.table_prefix
+                ))
+            self.failUnless(cur.rowcount in (-1,1),
+                'cursor.rowcount should == number or rows inserted, or '
+                'set to -1 after executing an insert statement'
+                )
+            cur.execute("select name from %sbooze" % self.table_prefix)
+            self.failUnless(cur.rowcount in (-1,1),
+                'cursor.rowcount should == number of rows returned, or '
+                'set to -1 after executing a select statement'
+                )
+            self.executeDDL2(cur)
+            self.assertEqual(cur.rowcount,-1,
+                'cursor.rowcount not being reset to -1 after executing '
+                'no-result statements'
+                )
+        finally:
+            con.close()
+
+    lower_func = 'lower'
+    def test_callproc(self):
+        con = self._connect()
+        try:
+            cur = con.cursor()
+            if self.lower_func and hasattr(cur,'callproc'):
+                r = cur.callproc(self.lower_func,('FOO',))
+                self.assertEqual(len(r),1)
+                self.assertEqual(r[0],'FOO')
+                r = cur.fetchall()
+                self.assertEqual(len(r),1,'callproc produced no result set')
+                self.assertEqual(len(r[0]),1,
+                    'callproc produced invalid result set'
+                    )
+                self.assertEqual(r[0][0],'foo',
+                    'callproc produced invalid results'
+                    )
+        finally:
+            con.close()
+
+    def test_close(self):
+        con = self._connect()
+        try:
+            cur = con.cursor()
+        finally:
+            con.close()
+
+        # cursor.execute should raise an Error if called after connection
+        # closed
+        self.assertRaises(self.driver.Error,self.executeDDL1,cur)
+
+        # connection.commit should raise an Error if called after connection'
+        # closed.'
+        self.assertRaises(self.driver.Error,con.commit)
+
+        # connection.close should raise an Error if called more than once
+        self.assertRaises(self.driver.Error,con.close)
+
+    def test_execute(self):
+        con = self._connect()
+        try:
+            cur = con.cursor()
+            self._paraminsert(cur)
+        finally:
+            con.close()
+
+    def _paraminsert(self,cur):
+        self.executeDDL1(cur)
+        cur.execute("insert into %sbooze values ('Victoria Bitter')" % (
+            self.table_prefix
+            ))
+        self.failUnless(cur.rowcount in (-1,1))
+
+        if self.driver.paramstyle == 'qmark':
+            cur.execute(
+                'insert into %sbooze values (?)' % self.table_prefix,
+                ("Cooper's",)
+                )
+        elif self.driver.paramstyle == 'numeric':
+            cur.execute(
+                'insert into %sbooze values (:1)' % self.table_prefix,
+                ("Cooper's",)
+                )
+        elif self.driver.paramstyle == 'named':
+            cur.execute(
+                'insert into %sbooze values (:beer)' % self.table_prefix, 
+                {'beer':"Cooper's"}
+                )
+        elif self.driver.paramstyle == 'format':
+            cur.execute(
+                'insert into %sbooze values (%%s)' % self.table_prefix,
+                ("Cooper's",)
+                )
+        elif self.driver.paramstyle == 'pyformat':
+            cur.execute(
+                'insert into %sbooze values (%%(beer)s)' % self.table_prefix,
+                {'beer':"Cooper's"}
+                )
+        else:
+            self.fail('Invalid paramstyle')
+        self.failUnless(cur.rowcount in (-1,1))
+
+        cur.execute('select name from %sbooze' % self.table_prefix)
+        res = cur.fetchall()
+        self.assertEqual(len(res),2,'cursor.fetchall returned too few rows')
+        beers = [res[0][0],res[1][0]]
+        beers.sort()
+        self.assertEqual(beers[0],"Cooper's",
+            'cursor.fetchall retrieved incorrect data, or data inserted '
+            'incorrectly'
+            )
+        self.assertEqual(beers[1],"Victoria Bitter",
+            'cursor.fetchall retrieved incorrect data, or data inserted '
+            'incorrectly'
+            )
+
+    def test_executemany(self):
+        con = self._connect()
+        try:
+            cur = con.cursor()
+            self.executeDDL1(cur)
+            largs = [ ("Cooper's",) , ("Boag's",) ]
+            margs = [ {'beer': "Cooper's"}, {'beer': "Boag's"} ]
+            if self.driver.paramstyle == 'qmark':
+                cur.executemany(
+                    'insert into %sbooze values (?)' % self.table_prefix,
+                    largs
+                    )
+            elif self.driver.paramstyle == 'numeric':
+                cur.executemany(
+                    'insert into %sbooze values (:1)' % self.table_prefix,
+                    largs
+                    )
+            elif self.driver.paramstyle == 'named':
+                cur.executemany(
+                    'insert into %sbooze values (:beer)' % self.table_prefix,
+                    margs
+                    )
+            elif self.driver.paramstyle == 'format':
+                cur.executemany(
+                    'insert into %sbooze values (%%s)' % self.table_prefix,
+                    largs
+                    )
+            elif self.driver.paramstyle == 'pyformat':
+                cur.executemany(
+                    'insert into %sbooze values (%%(beer)s)' % (
+                        self.table_prefix
+                        ),
+                    margs
+                    )
+            else:
+                self.fail('Unknown paramstyle')
+            self.failUnless(cur.rowcount in (-1,2),
+                'insert using cursor.executemany set cursor.rowcount to '
+                'incorrect value %r' % cur.rowcount
+                )
+            cur.execute('select name from %sbooze' % self.table_prefix)
+            res = cur.fetchall()
+            self.assertEqual(len(res),2,
+                'cursor.fetchall retrieved incorrect number of rows'
+                )
+            beers = [res[0][0],res[1][0]]
+            beers.sort()
+            self.assertEqual(beers[0],"Boag's",'incorrect data retrieved')
+            self.assertEqual(beers[1],"Cooper's",'incorrect data retrieved')
+        finally:
+            con.close()
+
+    def test_fetchone(self):
+        con = self._connect()
+        try:
+            cur = con.cursor()
+
+            # cursor.fetchone should raise an Error if called before
+            # executing a select-type query
+            self.assertRaises(self.driver.Error,cur.fetchone)
+
+            # cursor.fetchone should raise an Error if called after
+            # executing a query that cannnot return rows
+            self.executeDDL1(cur)
+            self.assertRaises(self.driver.Error,cur.fetchone)
+
+            cur.execute('select name from %sbooze' % self.table_prefix)
+            self.assertEqual(cur.fetchone(),None,
+                'cursor.fetchone should return None if a query retrieves '
+                'no rows'
+                )
+            self.failUnless(cur.rowcount in (-1,0))
+
+            # cursor.fetchone should raise an Error if called after
+            # executing a query that cannnot return rows
+            cur.execute("insert into %sbooze values ('Victoria Bitter')" % (
+                self.table_prefix
+                ))
+            self.assertRaises(self.driver.Error,cur.fetchone)
+
+            cur.execute('select name from %sbooze' % self.table_prefix)
+            r = cur.fetchone()
+            self.assertEqual(len(r),1,
+                'cursor.fetchone should have retrieved a single row'
+                )
+            self.assertEqual(r[0],'Victoria Bitter',
+                'cursor.fetchone retrieved incorrect data'
+                )
+            self.assertEqual(cur.fetchone(),None,
+                'cursor.fetchone should return None if no more rows available'
+                )
+            self.failUnless(cur.rowcount in (-1,1))
+        finally:
+            con.close()
+
+    samples = [
+        'Carlton Cold',
+        'Carlton Draft',
+        'Mountain Goat',
+        'Redback',
+        'Victoria Bitter',
+        'XXXX'
+        ]
+
+    def _populate(self):
+        ''' Return a list of sql commands to setup the DB for the fetch
+            tests.
+        '''
+        populate = [
+            "insert into %sbooze values ('%s')" % (self.table_prefix,s) 
+                for s in self.samples
+            ]
+        return populate
+
+    def test_fetchmany(self):
+        con = self._connect()
+        try:
+            cur = con.cursor()
+
+            # cursor.fetchmany should raise an Error if called without
+            #issuing a query
+            self.assertRaises(self.driver.Error,cur.fetchmany,4)
+
+            self.executeDDL1(cur)
+            for sql in self._populate():
+                cur.execute(sql)
+
+            cur.execute('select name from %sbooze' % self.table_prefix)
+            r = cur.fetchmany()
+            self.assertEqual(len(r),1,
+                'cursor.fetchmany retrieved incorrect number of rows, '
+                'default of arraysize is one.'
+                )
+            cur.arraysize=10
+            r = cur.fetchmany(3) # Should get 3 rows
+            self.assertEqual(len(r),3,
+                'cursor.fetchmany retrieved incorrect number of rows'
+                )
+            r = cur.fetchmany(4) # Should get 2 more
+            self.assertEqual(len(r),2,
+                'cursor.fetchmany retrieved incorrect number of rows'
+                )
+            r = cur.fetchmany(4) # Should be an empty sequence
+            self.assertEqual(len(r),0,
+                'cursor.fetchmany should return an empty sequence after '
+                'results are exhausted'
+            )
+            self.failUnless(cur.rowcount in (-1,6))
+
+            # Same as above, using cursor.arraysize
+            cur.arraysize=4
+            cur.execute('select name from %sbooze' % self.table_prefix)
+            r = cur.fetchmany() # Should get 4 rows
+            self.assertEqual(len(r),4,
+                'cursor.arraysize not being honoured by fetchmany'
+                )
+            r = cur.fetchmany() # Should get 2 more
+            self.assertEqual(len(r),2)
+            r = cur.fetchmany() # Should be an empty sequence
+            self.assertEqual(len(r),0)
+            self.failUnless(cur.rowcount in (-1,6))
+
+            cur.arraysize=6
+            cur.execute('select name from %sbooze' % self.table_prefix)
+            rows = cur.fetchmany() # Should get all rows
+            self.failUnless(cur.rowcount in (-1,6))
+            self.assertEqual(len(rows),6)
+            self.assertEqual(len(rows),6)
+            rows = [r[0] for r in rows]
+            rows.sort()
+          
+            # Make sure we get the right data back out
+            for i in range(0,6):
+                self.assertEqual(rows[i],self.samples[i],
+                    'incorrect data retrieved by cursor.fetchmany'
+                    )
+
+            rows = cur.fetchmany() # Should return an empty list
+            self.assertEqual(len(rows),0,
+                'cursor.fetchmany should return an empty sequence if '
+                'called after the whole result set has been fetched'
+                )
+            self.failUnless(cur.rowcount in (-1,6))
+
+            self.executeDDL2(cur)
+            cur.execute('select name from %sbarflys' % self.table_prefix)
+            r = cur.fetchmany() # Should get empty sequence
+            self.assertEqual(len(r),0,
+                'cursor.fetchmany should return an empty sequence if '
+                'query retrieved no rows'
+                )
+            self.failUnless(cur.rowcount in (-1,0))
+
+        finally:
+            con.close()
+
+    def test_fetchall(self):
+        con = self._connect()
+        try:
+            cur = con.cursor()
+            # cursor.fetchall should raise an Error if called
+            # without executing a query that may return rows (such
+            # as a select)
+            self.assertRaises(self.driver.Error, cur.fetchall)
+
+            self.executeDDL1(cur)
+            for sql in self._populate():
+                cur.execute(sql)
+
+            # cursor.fetchall should raise an Error if called
+            # after executing a a statement that cannot return rows
+            self.assertRaises(self.driver.Error,cur.fetchall)
+
+            cur.execute('select name from %sbooze' % self.table_prefix)
+            rows = cur.fetchall()
+            self.failUnless(cur.rowcount in (-1,len(self.samples)))
+            self.assertEqual(len(rows),len(self.samples),
+                'cursor.fetchall did not retrieve all rows'
+                )
+            rows = [r[0] for r in rows]
+            rows.sort()
+            for i in range(0,len(self.samples)):
+                self.assertEqual(rows[i],self.samples[i],
+                'cursor.fetchall retrieved incorrect rows'
+                )
+            rows = cur.fetchall()
+            self.assertEqual(
+                len(rows),0,
+                'cursor.fetchall should return an empty list if called '
+                'after the whole result set has been fetched'
+                )
+            self.failUnless(cur.rowcount in (-1,len(self.samples)))
+
+            self.executeDDL2(cur)
+            cur.execute('select name from %sbarflys' % self.table_prefix)
+            rows = cur.fetchall()
+            self.failUnless(cur.rowcount in (-1,0))
+            self.assertEqual(len(rows),0,
+                'cursor.fetchall should return an empty list if '
+                'a select query returns no rows'
+                )
+            
+        finally:
+            con.close()
+    
+    def test_mixedfetch(self):
+        con = self._connect()
+        try:
+            cur = con.cursor()
+            self.executeDDL1(cur)
+            for sql in self._populate():
+                cur.execute(sql)
+
+            cur.execute('select name from %sbooze' % self.table_prefix)
+            rows1  = cur.fetchone()
+            rows23 = cur.fetchmany(2)
+            rows4  = cur.fetchone()
+            rows56 = cur.fetchall()
+            self.failUnless(cur.rowcount in (-1,6))
+            self.assertEqual(len(rows23),2,
+                'fetchmany returned incorrect number of rows'
+                )
+            self.assertEqual(len(rows56),2,
+                'fetchall returned incorrect number of rows'
+                )
+
+            rows = [rows1[0]]
+            rows.extend([rows23[0][0],rows23[1][0]])
+            rows.append(rows4[0])
+            rows.extend([rows56[0][0],rows56[1][0]])
+            rows.sort()
+            for i in range(0,len(self.samples)):
+                self.assertEqual(rows[i],self.samples[i],
+                    'incorrect data retrieved or inserted'
+                    )
+        finally:
+            con.close()
+
+    def help_nextset_setUp(self,cur):
+        ''' Should create a procedure called deleteme
+            that returns two result sets, first the 
+           number of rows in booze then "name from booze"
+        '''
+        raise NotImplementedError,'Helper not implemented'
+        #sql="""
+        #    create procedure deleteme as
+        #    begin
+        #        select count(*) from booze
+        #        select name from booze
+        #    end
+        #"""
+        #cur.execute(sql)
+
+    def help_nextset_tearDown(self,cur):
+        'If cleaning up is needed after nextSetTest'
+        raise NotImplementedError,'Helper not implemented'
+        #cur.execute("drop procedure deleteme")
+
+    def test_nextset(self):
+        con = self._connect()
+        try:
+            cur = con.cursor()
+            if not hasattr(cur,'nextset'):
+                return
+
+            try:
+                self.executeDDL1(cur)
+                sql=self._populate()
+                for sql in self._populate():
+                    cur.execute(sql)
+
+                self.help_nextset_setUp(cur)
+
+                cur.callproc('deleteme')
+                numberofrows=cur.fetchone()
+                assert numberofrows[0]== len(self.samples)
+                assert cur.nextset()
+                names=cur.fetchall()
+                assert len(names) == len(self.samples)
+                s=cur.nextset()
+                assert s == None,'No more return sets, should return None'
+            finally:
+                self.help_nextset_tearDown(cur)
+
+        finally:
+            con.close()
+
+    def test_nextset(self):
+        raise NotImplementedError,'Drivers need to override this test'
+
+    def test_arraysize(self):
+        # Not much here - rest of the tests for this are in test_fetchmany
+        con = self._connect()
+        try:
+            cur = con.cursor()
+            self.failUnless(hasattr(cur,'arraysize'),
+                'cursor.arraysize must be defined'
+                )
+        finally:
+            con.close()
+
+    def test_setinputsizes(self):
+        con = self._connect()
+        try:
+            cur = con.cursor()
+            cur.setinputsizes( (25,) )
+            self._paraminsert(cur) # Make sure cursor still works
+        finally:
+            con.close()
+
+    def test_setoutputsize_basic(self):
+        # Basic test is to make sure setoutputsize doesn't blow up
+        con = self._connect()
+        try:
+            cur = con.cursor()
+            cur.setoutputsize(1000)
+            cur.setoutputsize(2000,0)
+            self._paraminsert(cur) # Make sure the cursor still works
+        finally:
+            con.close()
+
+    def test_setoutputsize(self):
+        # Real test for setoutputsize is driver dependant
+        raise NotImplementedError,'Driver need to override this test'
+
+    def test_None(self):
+        con = self._connect()
+        try:
+            cur = con.cursor()
+            self.executeDDL1(cur)
+            cur.execute('insert into %sbooze values (NULL)' % self.table_prefix)
+            cur.execute('select name from %sbooze' % self.table_prefix)
+            r = cur.fetchall()
+            self.assertEqual(len(r),1)
+            self.assertEqual(len(r[0]),1)
+            self.assertEqual(r[0][0],None,'NULL value not returned as None')
+        finally:
+            con.close()
+
+    def test_Date(self):
+        d1 = self.driver.Date(2002,12,25)
+        d2 = self.driver.DateFromTicks(time.mktime((2002,12,25,0,0,0,0,0,0)))
+        # Can we assume this? API doesn't specify, but it seems implied
+        # self.assertEqual(str(d1),str(d2))
+
+    def test_Time(self):
+        t1 = self.driver.Time(13,45,30)
+        t2 = self.driver.TimeFromTicks(time.mktime((2001,1,1,13,45,30,0,0,0)))
+        # Can we assume this? API doesn't specify, but it seems implied
+        # self.assertEqual(str(t1),str(t2))
+
+    def test_Timestamp(self):
+        t1 = self.driver.Timestamp(2002,12,25,13,45,30)
+        t2 = self.driver.TimestampFromTicks(
+            time.mktime((2002,12,25,13,45,30,0,0,0))
+            )
+        # Can we assume this? API doesn't specify, but it seems implied
+        # self.assertEqual(str(t1),str(t2))
+
+    def test_Binary(self):
+        b = self.driver.Binary('Something')
+        b = self.driver.Binary('')
+
+    def test_STRING(self):
+        self.failUnless(hasattr(self.driver,'STRING'),
+            'module.STRING must be defined'
+            )
+
+    def test_BINARY(self):
+        self.failUnless(hasattr(self.driver,'BINARY'),
+            'module.BINARY must be defined.'
+            )
+
+    def test_NUMBER(self):
+        self.failUnless(hasattr(self.driver,'NUMBER'),
+            'module.NUMBER must be defined.'
+            )
+
+    def test_DATETIME(self):
+        self.failUnless(hasattr(self.driver,'DATETIME'),
+            'module.DATETIME must be defined.'
+            )
+
+    def test_ROWID(self):
+        self.failUnless(hasattr(self.driver,'ROWID'),
+            'module.ROWID must be defined.'
+            )
+
diff --git a/trunk/psycopg2/tests/extras_dictcursor.py b/trunk/psycopg2/tests/extras_dictcursor.py
new file mode 100644 (file)
index 0000000..270d37f
--- /dev/null
@@ -0,0 +1,47 @@
+# extras_dictcursor - test if DictCursor extension class works
+#
+# Copyright (C) 2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+import psycopg2
+import psycopg2.extras
+from unittest import TestCase, TestSuite, main
+
+
+class ExtrasDictCursorTests(TestCase):
+    """Test if DictCursor extension class works."""
+
+    def setUp(self):
+        self.conn = psycopg2.connect("dbname=test")
+        curs = self.conn.cursor()
+        curs.execute("CREATE TABLE ExtrasDictCursorTests (foo text)")
+    
+    def testDictCursor(self):
+        curs = self.conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
+        curs.execute("INSERT INTO ExtrasDictCursorTests VALUES ('bar')")
+        curs.execute("SELECT * FROM ExtrasDictCursorTests")
+        row = curs.fetchone()
+        self.failUnless(row['foo'] == 'bar')
+        self.failUnless(row[0] == 'bar')
+
+class ExtrasDictCursorSuite(TestSuite):
+    """Build a suite of all tests."""
+
+    def __init__(self):
+        """Build a list of tests."""
+        self.tests = [x for x in dir(ExtrasDictCursorTests)
+                                         if x.startswith('test')]
+        TestSuite.__init__(self, map(TestModule, self.tests))
+
+
+if __name__ == "__main__":
+    main()
diff --git a/trunk/psycopg2/tests/test_psycopg2_dbapi20.py b/trunk/psycopg2/tests/test_psycopg2_dbapi20.py
new file mode 100644 (file)
index 0000000..028b718
--- /dev/null
@@ -0,0 +1,35 @@
+#!/usr/bin/env python
+import dbapi20
+import unittest
+import psycopg2
+import popen2
+
+class test_Psycopg(dbapi20.DatabaseAPI20Test):
+    driver = psycopg2
+    connect_args = ()
+    connect_kw_args = {'dsn': 'dbname=dbapi20_test'}
+
+    lower_func = 'lower' # For stored procedure test
+
+    def setUp(self):
+        # Call superclass setUp In case this does something in the
+        # future
+        dbapi20.DatabaseAPI20Test.setUp(self) 
+
+        try:
+            con = self._connect()
+            con.close()
+        except:
+            cmd = "psql -c 'create database dbapi20_test' template1"
+            cout,cin = popen2.popen2(cmd)
+            cin.close()
+            cout.read()
+
+    def tearDown(self):
+        dbapi20.DatabaseAPI20Test.tearDown(self)
+
+    def test_nextset(self): pass
+    def test_setoutputsize(self): pass
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/trunk/psycopg2/tests/types_basic.py b/trunk/psycopg2/tests/types_basic.py
new file mode 100644 (file)
index 0000000..446ad15
--- /dev/null
@@ -0,0 +1,87 @@
+# types_basic.py - tests for basic types conversions
+#
+# Copyright (C) 2004 Federico Di Gregorio  <fog@debian.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, 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 MERCHANTIBILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+
+import sys
+try:
+    import decimal
+except:
+    pass
+import psycopg2
+from unittest import TestCase, TestSuite, main
+
+
+class TypesBasicTests(TestCase):
+    """Test presence of mandatory attributes and methods."""
+
+    def setUp(self):
+        self.conn = psycopg2.connect("dbname=test")
+
+    def execute(self, *args):
+        curs = self.conn.cursor()
+        curs.execute(*args)
+        return curs.fetchone()[0]
+    
+    def testQuoting(self):
+        s = "Quote'this\\! ''ok?''"
+        self.failUnless(self.execute("SELECT %s AS foo", (s,)) == s,
+                        "wrong quoting: " + s)
+
+    def testUnicode(self):
+        s = u"Quote'this\\! ''ok?''"
+        self.failUnless(self.execute("SELECT %s AS foo", (s,)) == s,
+                        "wrong unicode quoting: " + s)
+
+    def testNumber(self):
+        s = self.execute("SELECT %s AS foo", (1971,))
+        self.failUnless(s == 1971, "wrong integer quoting: " + str(s))
+        s = self.execute("SELECT %s AS foo", (1971L,))
+        self.failUnless(s == 1971L, "wrong integer quoting: " + str(s))
+        # Python 2.4 defaults to Decimal?
+        if sys.version_info[0] >= 2 and sys.version_info[1] >= 4:
+            s = self.execute("SELECT %s AS foo", (19.10,))
+            self.failUnless(s - decimal.Decimal("19.10") == 0,
+                            "wrong decimal quoting: " + str(s))
+        else:
+            s = self.execute("SELECT %s AS foo", (19.10,))
+            self.failUnless(abs(s - 19.10) < 0.001,
+                            "wrong float quoting: " + str(s))
+
+    def testBinary(self):
+        s = ''.join([chr(x) for x in range(256)])
+        b = psycopg2.Binary(s)
+       r = str(self.execute("SELECT %s::bytea AS foo", (b,)))
+        self.failUnless(r == s, "wrong binary quoting")
+        # test to make sure an empty Binary is converted to an empty string
+        b = psycopg2.Binary('')
+        self.assertEqual(str(b), "''")
+
+    def testArray(self):
+       s = self.execute("SELECT %s AS foo", ([[1,2],[3,4]],))
+       self.failUnless(s == [[1,2],[3,4]], "wrong array quoting " + str(s))
+       s = self.execute("SELECT %s AS foo", (['one', 'two', 'three'],))
+       self.failUnless(s == ['one', 'two', 'three'], 
+                       "wrong array quoting " + str(s))
+       
+       
+class TypesBasicSuite(TestSuite):
+    """Build a suite of all tests."""
+
+    def __init__(self):
+        """Build a list of tests."""
+        self.tests = [x for x in dir(TypesBasicTests) if x.startswith('test')]
+        TestSuite.__init__(self, map(TestModule, self.tests))
+
+
+if __name__ == "__main__":
+    main()
diff --git a/trunk/pycurl/COPYING b/trunk/pycurl/COPYING
new file mode 100644 (file)
index 0000000..99dce33
--- /dev/null
@@ -0,0 +1,504 @@
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+\f
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+\f
+                  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+\f
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+\f
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+\f
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+\f
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+\f
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+\f
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                            NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+\f
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This 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.
+
+    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
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/trunk/pycurl/ChangeLog b/trunk/pycurl/ChangeLog
new file mode 100644 (file)
index 0000000..0e5ae7e
--- /dev/null
@@ -0,0 +1,759 @@
+Version 7.13.1 [requires libcurl-7.13.1 or better]
+--------------
+
+2005-03-04  Kjetil Jacobsen  <kjetilja>
+
+        * Use METH_NOARGS where appropriate.
+
+2005-03-03  Kjetil Jacobsen  <kjetilja>
+
+        * Added support for CURLFORM API with HTTPPOST: Supports a
+          a tuple with pairs of options and values instead of just
+          supporting string contents.  See tests/test_post2.py
+          for example usage.  Options are FORM_CONTENTS, FORM_FILE and
+          FORM_CONTENTTYPE, corresponding to the CURLFORM_* options,
+          and values are strings.
+
+2005-02-13  Markus F.X.J. Oberhumer <mfx>
+
+        * Read callbacks (pycurl.READFUNCTION) can now return
+          pycurl.READFUNC_ABORT to immediately abort the current transfer.
+
+        * The INFILESIZE, MAXFILESIZE, POSTFIELDSIZE and RESUME_FROM
+          options now automatically use the largefile version to handle
+          files > 2GB.
+
+        * Added missing pycurl.PORT constant.
+
+
+Version 7.13.0
+--------------
+
+2005-02-10  Kjetil Jacobsen  <kjetilja>
+
+        * Added file_upload.py to examples, shows how to upload
+          a file.
+
+        * Added CURLOPT_IOCTLFUNCTION/DATA.
+
+        * Added options from libcurl 7.13.0: FTP_ACCOUNT, SOURCE_URL,
+          SOURCE_QUOTE.
+
+        * Obsoleted options: SOURCE_HOST, SOURCE_PATH, SOURCE_PORT,
+          PASV_HOST.
+
+
+Version 7.12.3
+--------------
+
+2004-12-22  Markus F.X.J. Oberhumer <mfx>
+
+        * Added CURLINFO_NUM_CONNECTS and CURLINFO_SSL_ENGINES.
+
+        * Added some other missing constants.
+
+        * Updated pycurl.version_info() to return a 12-tuple
+          instead of a 9-tuple.
+
+
+Version 7.12.2
+--------------
+
+2004-10-15  Kjetil Jacobsen  <kjetilja>
+
+        * Added CURLOPT_FTPSSLAUTH (and CURLFTPAUTH_*).
+
+        * Added CURLINFO_OS_ERRNO.
+
+2004-08-17 Kjetil Jacobsen <kjetilja>
+
+        * Use LONG_LONG instead of PY_LONG_LONG to make pycurl compile
+          on Python versions < 2.3 (fix from Domenico Andreoli
+          <cavok at libero.it>).
+
+
+Version 7.12.1
+--------------
+
+2004-08-02  Kjetil Jacobsen  <kjetilja>
+
+        * Added INFOTYPE_SSL_DATA_IN/OUT.
+
+2004-07-16  Markus F.X.J. Oberhumer <mfx>
+
+        * WARNING: removed deprecated PROXY_, TIMECOND_ and non-prefixed
+          INFOTYPE constant names. See ChangeLog entry 2003-06-10.
+
+2004-06-21  Kjetil Jacobsen  <kjetilja>
+
+        * Added test program for HTTP post using the read callback (see
+          tests/test_post3.py for details).
+
+        * Use the new CURL_READFUNC_ABORT return code where appropriate
+          to avoid hanging in perform() when read callbacks are used.
+
+        * Added support for libcurl 7.12.1 CURLOPT features:
+          SOURCE_HOST, SOURCE_USERPWD, SOURCE_PATH, SOURCE_PORT,
+          PASV_HOST, SOURCE_PREQUOTE, SOURCE_POSTQUOTE.
+
+2004-06-08  Markus F.X.J. Oberhumer <mfx>
+
+        * Setting CURLOPT_POSTFIELDS now allows binary data and
+          automatically sets CURLOPT_POSTFIELDSIZE for you. If you really
+          want a different size you have to manually set POSTFIELDSIZE
+          after setting POSTFIELDS.
+          (Based on a patch by Martin Muenstermann).
+
+2004-06-05  Markus F.X.J. Oberhumer <mfx>
+
+        * Added stricter checks within the callback handlers.
+
+        * Unify the behaviour of int and long parameters where appropriate.
+
+
+Version 7.12
+------------
+
+2004-05-18  Kjetil Jacobsen  <kjetilja>
+
+        * WARNING: To simplify code maintenance pycurl now requires
+          libcurl 7.11.2 and Python 2.2 or newer to work.
+
+        * GC support is now always enabled.
+
+
+Version 7.11.3
+--------------
+
+2004-04-30  Kjetil Jacobsen  <kjetilja>
+
+        * Do not use the deprecated curl_formparse function.
+          API CHANGE: HTTPPOST now takes a list of tuples where each
+          tuple contains a form name and a form value, both strings
+          (see test/test_post2.py for example usage).
+
+        * Found a possible reference count bug in the multithreading
+          code which may have contributed to the long-standing GC
+          segfault which has haunted pycurl.  Fingers crossed.
+
+
+Version 7.11.2
+--------------
+
+2004-04-21  Kjetil Jacobsen  <kjetilja>
+
+        * Added support for libcurl 7.11.2 CURLOPT features:
+          CURLOPT_TCP_NODELAY.
+
+2004-03-25 Kjetil Jacobsen   <kjetilja>
+
+        * Store Python longs in off_t with PyLong_AsLongLong instead
+          of PyLong_AsLong.  Should make the options which deal
+          with large files behave a little better.  Note that this
+          requires the long long support in Python 2.2 or newer to
+          work properly.
+
+
+Version 7.11.1
+--------------
+
+2004-03-16  Kjetil Jacobsen  <kjetilja>
+
+        * WARNING: Removed support for the PASSWDFUNCTION callback, which
+          is no longer supported by libcurl.
+
+2004-03-15  Kjetil Jacobsen  <kjetilja>
+
+        * Added support for libcurl 7.11.1 CURLOPT features:
+          CURLOPT_POSTFIELDSIZE_LARGE.
+
+
+Version 7.11.0
+--------------
+
+2004-02-11  Kjetil Jacobsen  <kjetilja>
+
+        * Added support for libcurl 7.11.0 CURLOPT features:
+          INFILESIZE_LARGE, RESUME_FROM_LARGE, MAXFILESIZE_LARGE
+          and FTP_SSL.
+
+        * Circular garbage collection support can now be enabled or
+          disabled by passing the '--use-gc=[1|0]' parameter to setup.py
+          when building pycurl.
+
+        * HTTP_VERSION options are known as CURL_HTTP_VERSION_NONE,
+          CURL_HTTP_VERSION_1_0, CURL_HTTP_VERSION_1_1 and
+          CURL_HTTP_VERSION_LAST.
+
+2003-11-16  Markus F.X.J. Oberhumer <mfx>
+
+        * Added support for these new libcurl 7.11.0 features:
+          CURLOPT_NETRC_FILE.
+
+
+Version 7.10.8
+--------------
+
+2003-11-04  Markus F.X.J. Oberhumer <mfx>
+
+        * Added support for these new libcurl 7.10.8 features:
+          CURLOPT_FTP_RESPONSE_TIMEOUT, CURLOPT_IPRESOLVE,
+          CURLOPT_MAXFILESIZE,
+          CURLINFO_HTTPAUTH_AVAIL, CURLINFO_PROXYAUTH_AVAIL,
+          CURL_IPRESOLVE_* constants.
+
+        * Added support for these new libcurl 7.10.7 features:
+          CURLOPT_FTP_CREATE_MISSING_DIRS, CURLOPT_PROXYAUTH,
+          CURLINFO_HTTP_CONNECTCODE.
+
+
+2003-10-28  Kjetil Jacobsen  <kjetilja>
+
+        * Added missing CURLOPT_ENCODING option (patch by Martijn
+          Boerwinkel <xim@xs4all.nl>)
+
+
+Version 7.10.6
+--------------
+
+2003-07-29  Markus F.X.J. Oberhumer <mfx>
+
+        * Started working on support for CURLOPT_SSL_CTX_FUNCTION and
+          CURLOPT_SSL_CTX_DATA (libcurl-7.10.6) - not yet finished.
+
+2003-06-10  Markus F.X.J. Oberhumer <mfx>
+
+        * Added support for CURLOPT_HTTPAUTH (libcurl-7.10.6), including
+          the new HTTPAUTH_BASIC, HTTPAUTH_DIGEST, HTTPAUTH_GSSNEGOTIATE
+          and HTTPAUTH_NTML constants.
+
+        * Some constants were renamed for consistency:
+
+          All curl_infotype constants are now prefixed with "INFOTYPE_",
+          all curl_proxytype constants are prefixed with "PROXYTYPE_" instead
+          of "PROXY_", and all curl_TimeCond constants are now prefixed
+          with "TIMECONDITION_" instead of "TIMECOND_".
+
+          (The old names are still available but will get removed
+          in a future release.)
+
+        * WARNING: Removed the deprecated pycurl.init() and pycurl.multi_init()
+          names - use pycurl.Curl() and pycurl.CurlMulti() instead.
+
+        * WARNING: Removed the deprecated Curl.cleanup() and
+          CurlMulti.cleanup() methods - use Curl.close() and
+          CurlMulti.close() instead.
+
+
+Version 7.10.5
+--------------
+
+2003-05-15  Markus F.X.J. Oberhumer <mfx>
+
+        * Added support for CURLOPT_FTP_USE_EPRT (libcurl-7.10.5).
+
+        * Documentation updates.
+
+2003-05-07  Eric S. Raymond  <esr@snark.thyrsus.com>
+
+        * Lifted all HTML docs to clean XHTML, verified by tidy.
+
+2003-05-02  Markus F.X.J. Oberhumer <mfx>
+
+        * Fixed some `int' vs. `long' mismatches that affected 64-bit systems.
+
+        * Fixed wrong pycurl.CAPATH constant.
+
+2003-05-01  Markus F.X.J. Oberhumer <mfx>
+
+        * Added new method Curl.errstr() which returns the internal
+        libcurl error buffer string of the handle.
+
+
+Version 7.10.4.2
+----------------
+
+2003-04-15  Markus F.X.J. Oberhumer <mfx>
+
+        * Allow compilation against the libcurl-7.10.3 release - some
+        recent Linux distributions (e.g. Mandrake 9.1) ship with 7.10.3,
+        and apart from the new CURLOPT_UNRESTRICTED_AUTH option there is
+        no need that we require libcurl-7.10.4.
+
+
+Version 7.10.4
+--------------
+
+2003-04-01  Kjetil Jacobsen  <kjetilja>
+
+        * Markus added CURLOPT_UNRESTRICTED_AUTH (libcurl-7.10.4).
+
+2003-02-25  Kjetil Jacobsen  <kjetilja>
+
+        * Fixed some broken test code and removed the fileupload test
+        since it didn't work properly.
+
+2003-01-28  Kjetil Jacobsen  <kjetilja>
+
+        * Some documentation updates by Markus and me.
+
+2003-01-22  Kjetil Jacobsen  <kjetilja>
+
+        * API CHANGE: the CurlMulti.info_read() method now returns
+        a separate array with handles that failed.  Each entry in this array
+        is a tuple with (curl object, error number, error message).
+        This addition makes it simpler to do error checking of individual
+        curl objects when using the multi interface.
+
+
+Version 7.10.3
+--------------
+
+2003-01-13  Kjetil Jacobsen  <kjetilja>
+
+        * PycURL memory usage has been reduced.
+
+2003-01-10  Kjetil Jacobsen  <kjetilja>
+
+        * Added 'examples/retriever-multi.py' which shows how to retrieve
+        a set of URLs concurrently using the multi interface.
+
+2003-01-09  Kjetil Jacobsen  <kjetilja>
+
+        * Added support for CURLOPT_HTTP200ALIASES.
+
+2002-11-22  Kjetil Jacobsen  <kjetilja>
+
+        * Updated pycurl documentation in the 'doc' directory.
+
+2002-11-21  Kjetil Jacobsen  <kjetilja>
+
+        * Updated and improved 'examples/curl.py'.
+
+        * Added 'tests/test_multi6.py' which shows how to use the
+        info_read method with CurlMulti.
+
+2002-11-19  Kjetil Jacobsen  <kjetilja>
+
+        * Added new method CurlMulti.info_read().
+
+
+Version 7.10.2
+--------------
+
+2002-11-14  Kjetil Jacobsen <kjetilja>
+
+        * Free options set with setopt after cleanup is called, as cleanup
+        assumes that options are still valid when invoked.  This fixes the
+        bug with COOKIEJAR reported by Bastiaan Naber
+        <bastiaan@ricardis.tudelft.nl>.
+
+2002-11-06  Markus F.X.J. Oberhumer <mfx>
+
+        * Install documentation under /usr/share/doc instead of /usr/doc.
+        Also, start shipping the (unfinished) HTML docs and some
+        basic test scripts.
+
+2002-10-30  Markus F.X.J. Oberhumer <mfx>
+
+        * API CHANGE: For integral values, Curl.getinfo() now returns a
+        Python-int instead of a Python-long.
+
+
+Version 7.10.1
+--------------
+
+2002-10-03  Markus F.X.J. Oberhumer <mfx>
+
+        * Added new module-level function version_info() from
+        libcurl-7.10.
+
+
+Version 7.10
+------------
+
+2002-09-13  Kjetil Jacobsen  <kjetilja>
+
+        * Added commandline options to setup.py for specifying the path to
+        'curl-config' (non-windows) and the curl installation directory
+        (windows).  See the 'INSTALL' file for details.
+
+        * Added CURLOPT_ENCODING, CURLOPT_NOSIGNAL and CURLOPT_BUFFERSIZE
+        from libcurl-7.10 (by Markus Oberhumer).
+
+
+Version 7.9.8.4
+---------------
+
+2002-08-28  Kjetil Jacobsen  <kjetilja>
+
+        * Added a simple web-browser example based on gtkhtml and pycurl.
+        See the file 'examples/gtkhtml_demo.py' for details.  The example
+        requires a working installation of gnome-python with gtkhtml
+        bindings enabled (pass --with-gtkhtml to gnome-python configure).
+
+2002-08-14  Kjetil Jacobsen  <kjetilja>
+
+        * Added new method 'select' on CurlMulti objects.  Example usage
+        in 'tests/test_multi5.py'.  This method is just an optimization of
+        the combined use of fdset and select.
+
+2002-08-12  Kjetil Jacobsen  <kjetilja>
+
+        * Added support for curl_multi_fdset.  See the file
+        'tests/test_multi4.py' for example usage.  Contributed by Conrad
+        Steenberg <conrad@hep.caltech.edu>.
+
+        * perform() on multi objects now returns a tuple (result, number
+        of handles) like the libcurl interface does.
+
+2002-08-08  Kjetil Jacobsen  <kjetilja>
+
+        * Added the 'sfquery' script which retrieves a SourceForge XML
+        export object for a given project.  See the file 'examples/sfquery.py'
+        for details and usage.  'sfquery' was contributed by Eric
+        S. Raymond <esr@thyrsus.com>.
+
+2002-07-20  Markus F.X.J. Oberhumer <mfx>
+
+        * API enhancements: added Curl() and CurlMulti() as aliases for
+        init() and multi_init(), and added close() methods as aliases
+        for the cleanup() methods. The new names much better match
+        the actual intended use of the objects, and they also nicely
+        correspond to Python's file object.
+
+        * Also, all constants for Curl.setopt() and Curl.getinfo() are now
+        visible from within Curl objects.
+
+        All changes are fully backward-compatible.
+
+
+Version 7.9.8.3
+---------------
+
+2002-07-16  Markus F.X.J. Oberhumer <mfx>
+
+        * Under Python 2.2 or better, Curl and CurlMulti objects now
+        automatically participate in cyclic garbarge collection
+        (using the gc module).
+
+
+Version 7.9.8.2
+---------------
+
+2002-07-05  Markus F.X.J. Oberhumer <mfx>
+
+        * Curl and CurlMulti objects now support standard Python attributes.
+        See tests/test_multi2.py for an example.
+
+2002-07-02  Kjetil Jacobsen  <kjetilja>
+
+        * Added support for the multi-interface.
+
+
+Version 7.9.8.1
+---------------
+
+2002-06-25  Markus F.X.J. Oberhumer <mfx>
+
+        * Fixed a couple of `int' vs. `size_t' mismatches in callbacks
+        and Py_BuildValue() calls.
+
+2002-06-25  Kjetil Jacobsen  <kjetilja>
+
+        * Use 'double' type instead of 'size_t' for progress callbacks
+        (by Conrad Steenberg <conrad@hep.caltech.edu>).  Also cleaned up
+        some other type mismatches in the callback interfaces.
+
+2002-06-24  Kjetil Jacobsen  <kjetilja>
+
+        * Added example code on how to upload a file using HTTPPOST in
+        pycurl (code by Amit Mongia <amit_mongia@hotmail.com>).  See the
+        file 'test_fileupload.py' for details.
+
+
+Version 7.9.8
+-------------
+
+2002-06-24  Kjetil Jacobsen  <kjetilja>
+
+        * Resolved some build problems on Windows (by Markus Oberhumer).
+
+2002-06-19  Kjetil Jacobsen  <kjetilja>
+
+        * Added CURLOPT_CAPATH.
+
+        * Added option constants for CURLOPT_NETRC: CURL_NETRC_OPTIONAL,
+        CURL_NETRC_IGNORED and CURL_NETRC_REQUIRED.
+
+        * Added option constants for CURLOPT_TIMECONDITION:
+        TIMECOND_IFMODSINCE and TIMECOND_IFUNMODSINCE.
+
+        * Added an simple example crawler, which downloads documents
+        listed in a file with a configurable number of worker threads.
+        See the file 'crawler.py' in the 'tests' directory for details.
+
+        * Removed the redundant 'test_xmlrpc2.py' test script.
+
+        * Disallow recursive callback invocations (by Markus Oberhumer).
+
+2002-06-18  Kjetil Jacobsen  <kjetilja>
+
+        * Made some changes to setup.py which should fix the build
+        problems on RedHat 7.3 (suggested by Benji <benji@kioza.net>).
+
+        * Use CURLOPT_READDATA instead of CURLOPT_INFILE, and
+        CURLOPT_WRITEDATA instead of CURLOPT_FILE.  Also fixed some
+        reference counting bugs with file objects.
+
+        * CURLOPT_FILETIME and CURLINFO_FILETIME had a namespace clash
+        which caused them not to work.  Use OPT_FILETIME for setopt() and
+        INFO_FILETIME for getinfo().  See example usage in
+        'test_getinfo.py' for details.
+
+
+Version 7.9.7
+-------------
+
+2002-05-20  Kjetil Jacobsen  <kjetilja>
+
+        * New versioning scheme.  Pycurl now has the same version number
+        as the libcurl version it was built with.  The pycurl version
+        number thus indicates which version of libcurl is required to run.
+
+2002-05-17  Kjetil Jacobsen  <kjetilja>
+
+        * Added CURLINFO_REDIRECT_TIME and CURLINFO_REDIRECT_COUNT.
+
+2002-04-27  Kjetil Jacobsen  <kjetilja>
+
+        * Fixed potential memory leak and thread race (by Markus
+        Oberhumer).
+
+
+Version 0.4.9
+-------------
+
+2002-04-15  Kjetil Jacobsen  <kjetilja>
+
+        * Added CURLOPT_DEBUGFUNCTION to allow debug callbacks to be
+        specified (see the file 'test_debug.py' for details on how to use
+        debug callbacks).
+
+        * Added CURLOPT_DNS_USE_GLOBAL_CACHE and
+        CURLOPT_DNS_CACHE_TIMEOUT.
+
+        * Fixed a segfault when finalizing curl objects in Python 1.5.2.
+
+        * Now requires libcurl 7.9.6 or greater.
+
+2002-04-12  Kjetil Jacobsen  <kjetilja>
+
+        * Added 'test_post2.py' file which is another example on how to
+        issue POST requests.
+
+2002-04-11  Markus F.X.J. Oberhumer <mfx>
+
+        * Added the 'test_post.py' file which demonstrates the use of
+        POST requests.
+
+
+Version 0.4.8
+-------------
+
+2002-03-07  Kjetil Jacobsen  <kjetilja>
+
+        * Added CURLOPT_PREQUOTE.
+
+        * Now requires libcurl 7.9.5 or greater.
+
+        * Other minor code cleanups and bugfixes.
+
+2002-03-05  Kjetil Jacobsen  <kjetilja>
+
+        * Do not allow WRITEFUNCTION and WRITEHEADER on the same handle.
+
+
+Version 0.4.7
+-------------
+
+2002-02-27  Kjetil Jacobsen  <kjetilja>
+
+        * Abort callback if the thread state of the calling thread cannot
+        be determined.
+
+        * Check that the installed version of libcurl matches the
+        requirements of pycurl.
+
+2002-02-26  Kjetil Jacobsen  <kjetilja>
+
+        * Clarence Garnder <clarence@silcom.com> found a bug where string
+        arguments to setopt sometimes were prematurely deallocated, this
+        should now be fixed.
+
+2002-02-21  Kjetil Jacobsen  <kjetilja>
+
+        * Added the 'xmlrpc_curl.py' file which implements a transport
+        for xmlrpclib (xmlrpclib is part of Python 2.2).
+
+        * Added CURLINFO_CONTENT_TYPE.
+
+        * Added CURLOPT_SSLCERTTYPE, CURLOPT_SSLKEY, CURLOPT_SSLKEYTYPE,
+        CURLOPT_SSLKEYPASSWD, CURLOPT_SSLENGINE and
+        CURLOPT_SSLENGINE_DEFAULT.
+
+        * When thrown, the pycurl.error exception is now a tuple consisting
+        of the curl error code and the error message.
+
+        * Now requires libcurl 7.9.4 or greater.
+
+2002-02-19  Kjetil Jacobsen  <kjetilja>
+
+        * Fixed docstring for getopt() function.
+
+2001-12-18  Kjetil Jacobsen  <kjetilja>
+
+        * Updated the INSTALL information for Win32.
+
+2001-12-12  Kjetil Jacobsen  <kjetilja>
+
+        * Added missing link flag to make pycurl build on MacOS X (by Matt
+        King <matt@gnik.com>).
+
+2001-12-06  Kjetil Jacobsen  <kjetilja>
+
+        * Added CURLINFO_STARTTRANSFER_TIME and CURLOPT_FTP_USE_EPSV from
+        libcurl 7.9.2.
+
+2001-12-01  Markus F.X.J. Oberhumer <mfx>
+
+        * Added the 'test_stringio.py' file which demonstrates the use of
+        StringIO objects as callback.
+
+2001-12-01  Markus F.X.J. Oberhumer <mfx>
+
+        * setup.py: Do not remove entries from a list while iterating
+        over it.
+
+2001-11-29  Kjetil Jacobsen  <kjetilja>
+
+        * Added code in setup.py to install on Windows.  Requires some
+        manual configuration (by Tino Lange <Tino.Lange@gmx.de>).
+
+2001-11-27  Kjetil Jacobsen  <kjetilja>
+
+        * Improved detection of where libcurl is installed in setup.py.
+        Should make it easier to install pycurl when libcurl is not
+        located in regular lib/include paths.
+
+2001-11-05  Kjetil Jacobsen  <kjetilja>
+
+        * Some of the newer options to setopt were missing, this should
+        now be fixed.
+
+2001-11-04  Kjetil Jacobsen  <kjetilja>
+
+        * Exception handling has been improved and should no longer throw
+        spurious exceptions (by Markus F.X.J. Oberhumer
+        <markus@oberhumer.com>).
+
+2001-10-15  Kjetil Jacobsen  <kjetilja>
+
+        * Refactored the test_gtk.py script to avoid global variables.
+
+2001-10-12  Kjetil Jacobsen  <kjetilja>
+
+        * Added module docstrings, terse perhaps, but better than nothing.
+
+        * Added the 'basicfirst.py' file which is a Python version of the
+        corresponding Perl script by Daniel.
+
+        * PycURL now works properly under Python 1.5 and 1.6 (by Markus
+        F.X.J. Oberhumer <markus@oberhumer.com>).
+
+        * Allow C-functions and Python methods as callbacks (by Markus
+        F.X.J. Oberhumer <markus@oberhumer.com>).
+
+        * Allow None as success result of write, header and progress
+        callback invocations (by Markus F.X.J. Oberhumer
+        <markus@oberhumer.com>).
+
+        * Added the 'basicfirst2.py' file which demonstrates the use of a
+        class method as callback instead of just a function.
+
+2001-08-21  Kjetil Jacobsen  <kjetilja>
+
+        * Cleaned up the script with GNOME/PycURL integration.
+
+2001-08-20  Kjetil Jacobsen  <kjetilja>
+
+        * Added another test script for shipping XML-RPC requests which
+        uses py-xmlrpc to encode the arguments (tests/test_xmlrpc2.py).
+
+2001-08-20  Kjetil Jacobsen  <kjetilja>
+
+        * Added test script for using PycURL and GNOME (tests/test_gtk.py).
+
+2001-08-20  Kjetil Jacobsen  <kjetilja>
+
+        * Added test script for using XML-RPC (tests/test_xmlrpc.py).
+
+        * Added more comments to the test sources.
+
+2001-08-06  Kjetil Jacobsen  <kjetilja>
+
+        * Renamed module namespace to pycurl instead of curl.
+
+2001-08-06  Kjetil Jacobsen  <kjetilja>
+
+        * Set CURLOPT_VERBOSE to 0 by default.
+
+2001-06-29  Kjetil Jacobsen  <kjetilja>
+
+        * Updated INSTALL, curl version 7.8 or greater is now mandatory to
+        use pycurl.
+
+2001-06-13  Kjetil Jacobsen  <kjetilja>
+
+        * Set NOPROGRESS to 1 by default.
+
+2001-06-07  Kjetil Jacobsen  <kjetilja>
+
+        * Added global_init/cleanup.
+
+2001-06-06  Kjetil Jacobsen  <kjetilja>
+
+        * Added HEADER/PROGRESSFUNCTION callbacks (see files in tests/).
+
+        * Added PASSWDFUNCTION callback (untested).
+
+        * Added READFUNCTION callback (untested).
+
+2001-06-05  Kjetil Jacobsen  <kjetilja>
+
+        * WRITEFUNCTION callbacks now work (see tests/test_cb.py for details).
+
+        * Preliminary distutils installation.
+
+        * Added CLOSEPOLICY constants to module namespace.
+
+2001-06-04  Kjetil Jacobsen  <kjetilja>
+
+        * Return -1 on error from Python callback in WRITEFUNCTION callback.
+
+2001-06-01  Kjetil Jacobsen  <kjetilja>
+
+        * Moved source to src and tests to tests directory.
+
+2001-05-31  Kjetil Jacobsen  <kjetilja>
+
+        * Added better type checking for setopt.
+
+2001-05-30  Kjetil Jacobsen  <kjetilja>
+
+        * Moved code to sourceforge.
+
+        * Added getinfo support.
+
+
+# vi:ts=8:et
diff --git a/trunk/pycurl/INSTALL b/trunk/pycurl/INSTALL
new file mode 100644 (file)
index 0000000..ef42cf6
--- /dev/null
@@ -0,0 +1,44 @@
+NOTE: You need Python and libcurl installed on your system to use or
+build pycurl.  Some RPM distributions of curl/libcurl do not include
+everything necessary to build pycurl, in which case you need to
+install the developer specific RPM which is usually called curl-dev.
+
+
+Distutils
+---------
+
+Assuming that distutils is installed (which it is by default on Python
+versions greater than 1.5.2) build and install pycurl with the
+following commands:
+
+    (if necessary, become root)
+    tar -zxvf pycurl-$VER.tar.gz
+    cd pycurl-$VER
+    python setup.py install
+
+$VER should be substituted with the version number, e.g. 7.10.5.
+
+Note that the installation script assumes that 'curl-config' can be
+located in your path setting.  If curl-config is installed outside
+your path or you want to force installation to use a particular
+version of curl-config, use the '--curl-config' commandline option to
+specify the location of curl-config.  Example:
+
+    python setup.py install --curl-config=/usr/local/bin/curl-config
+
+If libcurl is linked dynamically with pycurl, you may have to alter the
+LD_LIBRARY_PATH environment variable accordingly.  This normally
+applies only if there is more than one version of libcurl installed,
+e.g. one in /usr/lib and one in /usr/local/lib.
+
+
+Windows
+-------
+
+When installing on Windows, you need to manually configure the path to
+the curl source tree, specified with the CURL_DIR variable in the file
+'setup.py'.  The CURL_DIR variable can also be set using the
+commandline option '--curl-dir' when invoking setup.py:
+
+    python setup.py install --curl-dir=c:\curl-7.10.5
+
diff --git a/trunk/pycurl/MANIFEST.in b/trunk/pycurl/MANIFEST.in
new file mode 100644 (file)
index 0000000..f4e3837
--- /dev/null
@@ -0,0 +1,22 @@
+#
+# MANIFEST.in
+# Manifest template for creating the source distribution.
+#
+
+include ChangeLog
+include COPYING
+include INSTALL
+include Makefile
+include README
+include TODO
+include MANIFEST.in
+include src/Makefile
+include src/pycurl.c
+include python/curl/*.py
+include examples/*.py
+include tests/*.py
+include doc/*.html
+include setup_win32_ssl.py
+
+# exclude unfinished test scripts
+#exclude tests/test_multi_vs_thread.py
diff --git a/trunk/pycurl/Makefile b/trunk/pycurl/Makefile
new file mode 100644 (file)
index 0000000..9b2369d
--- /dev/null
@@ -0,0 +1,60 @@
+#
+# to use a specific python version call
+#   `make PYTHON=python2.2'
+#
+
+SHELL = /bin/sh
+
+PYTHON = python2.3
+PYTHON = python
+
+all build:
+       $(PYTHON) setup.py build
+
+build-7.10.8:
+       $(PYTHON) setup.py build --curl-config=/home/hosts/localhost/packages/curl-7.10.8/bin/curl-config
+
+test: build
+       $(PYTHON) tests/test_internals.py -q
+
+# (needs GNU binutils)
+strip: build
+       strip -p --strip-unneeded build/lib*/*.so
+       chmod -x build/lib*/*.so
+
+install install_lib:
+       $(PYTHON) setup.py $@
+
+clean:
+       -rm -rf build dist
+       -rm -f *.pyc *.pyo */*.pyc */*.pyo */*/*.pyc */*/*.pyo
+       -rm -f MANIFEST
+       cd src && $(MAKE) clean
+
+distclean: clean
+
+maintainer-clean: distclean
+
+dist sdist: distclean
+       $(PYTHON) setup.py sdist
+
+# target for maintainer
+windist: distclean
+       rm -rf build
+       python2.2 setup.py bdist_wininst
+       rm -rf build
+       python2.3 setup.py bdist_wininst
+       rm -rf build
+       python2.4 setup.py bdist_wininst
+       rm -rf build
+       python2.2 setup_win32_ssl.py bdist_wininst
+       rm -rf build
+       python2.3 setup_win32_ssl.py bdist_wininst
+       rm -rf build
+       python2.4 setup_win32_ssl.py bdist_wininst
+       rm -rf build
+
+
+.PHONY: all build test strip install install_lib clean distclean maintainer-clean dist sdist windist
+
+.NOEXPORT:
diff --git a/trunk/pycurl/PKG-INFO b/trunk/pycurl/PKG-INFO
new file mode 100644 (file)
index 0000000..f0c0e97
--- /dev/null
@@ -0,0 +1,11 @@
+Metadata-Version: 1.0
+Name: pycurl
+Version: 7.13.1
+Summary: PycURL -- cURL library module for Python
+Home-page: http://pycurl.sourceforge.net/
+Author: Kjetil Jacobsen, Markus F.X.J. Oberhumer
+Author-email: kjetilja@cs.uit.no, markus@oberhumer.com
+License: GNU Lesser General Public License (LGPL)
+Description: 
+        This module provides Python bindings for the cURL library.
+Platform: All
diff --git a/trunk/pycurl/README b/trunk/pycurl/README
new file mode 100644 (file)
index 0000000..bd04ab6
--- /dev/null
@@ -0,0 +1,12 @@
+LICENSE
+-------
+
+Copyright (C) 2001-2005 by Kjetil Jacobsen <kjetilja@cs.uit.no>
+Copyright (C) 2001-2005 by Markus F.X.J. Oberhumer <markus@oberhumer.com>
+
+PycURL 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.
+
+A full copy of the LGPL license is included in the file COPYING.
diff --git a/trunk/pycurl/TODO b/trunk/pycurl/TODO
new file mode 100644 (file)
index 0000000..ed4afdf
--- /dev/null
@@ -0,0 +1,27 @@
+# $Id$
+# vi:ts=4:et
+
+If you want to hack on pycurl, here's our list of unresolved issues:
+
+
+NEW FEATURES/IMPROVEMENTS:
+
+    * Add docs to the high-level interface.
+
+    * Add more options to the undocumented and currently mostly useless
+      Curl.unsetopt() method. Have to carefully check the libcurl source
+      code for each option we want to support.
+
+    * curl_easy_reset() should probably be supported.  But we have to be
+      careful since curl_easy_reset() e.g. modifies callbacks and other
+      pointers which could leave pycurl and libcurl out of sync.
+
+
+DEFICIENICES:
+
+    * Using certain invalid options, it may be possible to cause a crash.
+      This is un-Pythonic behaviour, but you somewhere have to draw a line
+      between efficiency (and feature completeness) and safety.
+      There _are_ quite a number of internal error checks, but tracking and
+      catching all possible (deliberate) misuses is not a goal (and probably
+      impossible anyway, due to the complexity of libcurl).
diff --git a/trunk/pycurl/doc/callbacks.html b/trunk/pycurl/doc/callbacks.html
new file mode 100644 (file)
index 0000000..b98e0a9
--- /dev/null
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <title>PyCurl: Callbacks</title>
+  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
+  <meta name="revisit-after" content="30 days" />
+  <meta name="robots" content="noarchive, index, follow" />
+</head>
+<body>
+
+<h1>Callbacks</h1>
+
+<p>For more fine-grained control, libcurl allows a
+number of callbacks to be associated with each connection. In
+pycurl, callbacks are defined using the <code>setopt()</code> method for
+Curl objects with options WRITEFUNCTION, READFUNCTION, HEADERFUNCTION,
+PROGRESSFUNCTION, IOCTLFUNCTION, or DEBUGFUNCTION. These options
+correspond to the libcurl options with CURLOPT_* prefix removed.  A
+callback in pycurl must be either a regular Python function, a class
+method or an extension type function.</p>
+
+<p>There are some limitations to some of the options which can be used
+concurrently with the pycurl callbacks compared to the libcurl callbacks.
+This is to allow different callback functions to be associated with
+different Curl objects.  More specifically, WRITEDATA cannot
+be used with WRITEFUNCTION, READDATA cannot be used with READFUNCTION,
+WRITEHEADER cannot be used with HEADERFUNCTION, PROGRESSDATA cannot be
+used with PROGRESSFUNCTION, IOCTLDATA cannot be used with IOCTLFUNCTION,
+and DEBUGDATA cannot be used with DEBUGFUNCTION.
+In practice, these limitations can be overcome by having a callback
+function be a class instance method and rather use the class instance
+attributes to store per object data such as files used in the callbacks.
+</p>
+
+The signature of each callback used in pycurl is as follows:<br/>
+<br/>
+<code>WRITEFUNCTION(</code><em>string</em><code>) </code><em>-&gt; number of characters written<br/>
+</em>
+<br/>
+<code>READFUNCTION(</code><em>number of characters to read</em><code>)</code><em>-&gt;
+string</em><br/>
+<br/>
+<code>HEADERFUNCTION(</code><em>string</em><code>)</code><em> -&gt; number of characters written<br/>
+</em><br/>
+<code>PROGRESSFUNCTION(</code><em>download total, downloaded, upload total, uploaded</em><code>) </code><em>-&gt; status</em><br/>
+<br/>
+<code>DEBUGFUNCTION(</code><em>debug message type, debug message string</em><code>)</code>
+<em>-&gt; None<br/></em>
+<br/>
+<code>IOCTLFUNCTION(</code><em>ioctl cmd</em><code>)</code>
+<em>-&gt; status<br/></em>
+<br/>
+<hr/>
+
+<h2>Example: Callbacks for document header and body</h2>
+
+<p>This example prints the header data to stderr and the body data to
+stdout.  Also note that neither callback returns the number of bytes
+written.  For WRITEFUNCTION and HEADERFUNCTION callbacks, returning
+None implies that all bytes where written.</p>
+
+<pre>
+    ## Callback function invoked when body data is ready
+    def body(buf):
+        # Print body data to stdout
+        import sys
+        sys.stdout.write(buf)
+        # Returning None implies that all bytes were written
+
+    ## Callback function invoked when header data is ready
+    def header(buf):
+        # Print header data to stderr
+        import sys
+        sys.stderr.write(buf)
+        # Returning None implies that all bytes were written
+
+    c = pycurl.Curl()
+    c.setopt(pycurl.URL, "http://www.python.org/")
+    c.setopt(pycurl.WRITEFUNCTION, body)
+    c.setopt(pycurl.HEADERFUNCTION, header)
+    c.perform()
+</pre>
+
+<h2>Example: Download/upload progress callback</h2>
+
+<p>This example shows how to use the progress callback.  When downloading
+a document, the arguments related to uploads are zero, and vice versa.</p>
+
+<pre>
+    ## Callback function invoked when download/upload has progress
+    def progress(download_t, download_d, upload_t, upload_d):
+        print "Total to download", download_t
+        print "Total downloaded", download_d
+        print "Total to upload", upload_t
+        print "Total uploaded", upload_d
+
+    c.setopt(c.URL, "http://slashdot.org/")
+    c.setopt(c.NOPROGRESS, 0)
+    c.setopt(c.PROGRESSFUNCTION, progress)
+    c.perform()
+</pre>
+
+<h2>Example: Debug callbacks</h2>
+
+<p>This example shows how to use the debug callback.  The debug message
+type is an integer indicating the type of debug message.  The
+VERBOSE option must be enabled for this callback to be invoked.</p>
+
+<pre>
+    def test(debug_type, debug_msg):
+        print "debug(%d): %s" % (debug_type, debug_msg)
+
+    c = pycurl.Curl()
+    c.setopt(pycurl.URL, "http://curl.haxx.se/")
+    c.setopt(pycurl.VERBOSE, 1)
+    c.setopt(pycurl.DEBUGFUNCTION, test)
+    c.perform()
+</pre>
+
+<h2>Other examples</h2>
+The pycurl distribution also contains a number of test scripts and
+examples which show how to use the various callbacks in libcurl.
+For instance, the file 'examples/file_upload.py' in the distribution contains
+example code for using READFUNCTION, 'tests/test_cb.py' shows
+WRITEFUNCTION and HEADERFUNCTION, 'tests/test_debug.py' shows DEBUGFUNCTION,
+and 'tests/test_getinfo.py' shows PROGRESSFUNCTION.</p>
+
+
+<hr />
+<p>
+  <a href="http://validator.w3.org/check/referer"><img align="right"
+     src="http://www.w3.org/Icons/valid-xhtml10"
+     alt="Valid XHTML 1.0!" height="31" width="88" border="0" /></a>
+  $Id$
+</p>
+
+</body>
+</html>
diff --git a/trunk/pycurl/doc/curlmultiobject.html b/trunk/pycurl/doc/curlmultiobject.html
new file mode 100644 (file)
index 0000000..f944b18
--- /dev/null
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <title>PycURL: CurlMulti Objects</title>
+  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
+  <meta name="revisit-after" content="30 days" />
+  <meta name="robots" content="noarchive, index, follow" />
+</head>
+<body>
+
+<h1>CurlMulti Object</h1>
+
+<p>CurlMulti objects have the following methods: </p>
+
+<dl>
+<dt><code>close()</code> -&gt; <em>None</em></dt>
+<dd>
+<p>Corresponds to
+<a href="http://curl.haxx.se/libcurl/c/curl_multi_cleanup.html"><code>curl_multi_cleanup()</code></a> in libcurl.
+This method is automatically called by pycurl when a CurlMulti object no
+longer has any references to it, but can also be called
+explicitly.</p>
+</dd>
+
+<dt><code>perform()</code> -&gt; <em>tuple of status and the number of active Curl objects</em></dt>
+<dd>
+<p>Corresponds to
+<a href="http://curl.haxx.se/libcurl/c/curl_multi_perform.html"><code>curl_multi_perform()</code></a> in libcurl.</p>
+</dd>
+
+<dt><code> add_handle(</code><em>Curl object</em><code>) </code>-&gt; <em>None</em></dt>
+<dd>
+<p>Corresponds to
+<a href="http://curl.haxx.se/libcurl/c/curl_multi_add_handle.html"><code>curl_multi_add_handle()</code></a> in libcurl.
+This method  adds an existing and valid Curl object to the CurlMulti
+object.</p>
+
+<p>IMPORTANT NOTE: add_handle does not implicitly add a Python reference
+to the Curl object (and thus does not increase the reference count on the Curl
+object).</p>
+</dd>
+
+<dt><code>remove_handle(</code><em>Curl object</em><code>)</code> -&gt; <em>None</em></dt>
+<dd>
+<p>Corresponds to
+<a href="http://curl.haxx.se/libcurl/c/curl_multi_remove_handle.html"><code>curl_multi_remove_handle()</code></a> in libcurl.
+This method removes an existing and valid Curl object from the CurlMulti
+object.</p>
+
+<p>IMPORTANT NOTE: remove_handle does not implicitly remove a Python reference
+from the Curl object (and thus does not decrease the reference count on the Curl
+object).</p>
+</dd>
+
+<dt><code>fdset()</code> -&gt;
+<em>triple of lists with active file descriptors,
+readable,  writeable, exceptions.</em></dt>
+<dd>
+<p>Corresponds to
+<a href="http://curl.haxx.se/libcurl/c/curl_multi_fdset.html"><code>curl_multi_fdset()</code></a> in libcurl.
+This method extracts  the file descriptor information from a CurlMulti object.
+The returned  lists can be used with the <code>select</code> module to
+poll for events.</p>
+
+<p>Example usage:</p>
+
+<pre>
+import pycurl
+c = pycurl.Curl()
+c.setopt(pycurl.URL, "http://curl.haxx.se")
+m = pycurl.CurlMulti()
+m.add_handle(c)
+while 1:
+    ret, num_handles = m.perform()
+    if ret != pycurl.E_CALL_MULTI_PERFORM: break
+while num_handles:
+    apply(select.select, m.fdset() + (1,))
+    while 1:
+        ret, num_handles = m.perform()
+        if ret != pycurl.E_CALL_MULTI_PERFORM: break
+</pre>
+</dd>
+
+<dt><code>select(</code><em>[timeout]</em><code>)</code> -&gt;
+<em>number of ready file descriptors or -1 on timeout</em></dt>
+<dd>
+<p>This is a convenience function which simplifies the combined
+use of <code>fdset()</code> and the <code>select</code> module.</p>
+
+<p>Example usage:</p>
+
+<pre>import pycurl
+c = pycurl.Curl()
+c.setopt(pycurl.URL, "http://curl.haxx.se")
+m = pycurl.CurlMulti()
+m.add_handle(c)
+while 1:
+    ret, num_handles = m.perform()
+    if ret != pycurl.E_CALL_MULTI_PERFORM: break
+while num_handles:
+    ret = m.select()
+    if ret == -1:  continue
+    while 1:
+        ret, num_handles = m.perform()
+        if ret != pycurl.E_CALL_MULTI_PERFORM: break
+</pre>
+</dd>
+
+<dt><code>info_read(</code><em>[max]</em><code>)</code> -&gt;
+<em>numberof queued messages, a list of successful objects, a list of
+failed objects</em></dt>
+<dd>
+<p>Corresponds to the
+<a href="http://curl.haxx.se/libcurl/c/curl_multi_info_read.html"><code>curl_multi_info_read()</code></a> function in libcurl.
+This method extracts at most <em>max</em> messages
+from the multi stack and returns them in two lists. The first
+list contains the handles which completed successfully and the second
+list contains a tuple <em>&lt;curl object, curl error number, curl
+error message&gt;</em> for each failed curl object. The number
+of queued messages after this method has been called is also
+returned.</p>
+</dd>
+</dl>
+
+<hr />
+<p>
+  <a href="http://validator.w3.org/check/referer"><img align="right"
+     src="http://www.w3.org/Icons/valid-xhtml10"
+     alt="Valid XHTML 1.0!" height="31" width="88" border="0" /></a>
+  $Id$
+</p>
+
+</body>
+</html>
diff --git a/trunk/pycurl/doc/curlobject.html b/trunk/pycurl/doc/curlobject.html
new file mode 100644 (file)
index 0000000..53497f6
--- /dev/null
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <title>PycURL: Curl Objects</title>
+  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
+  <meta name="revisit-after" content="30 days" />
+  <meta name="robots" content="noarchive, index, follow" />
+</head>
+<body>
+
+<h1>Curl Object</h1>
+
+<p>Curl objects have the following methods:</p>
+
+<dl>
+<dt><code>close()</code> -&gt; <em>None</em></dt>
+<dd>
+<p>Corresponds to
+<a href="http://curl.haxx.se/libcurl/c/curl_easy_cleanup.html"><code>curl_easy_cleanup</code></a> in libcurl.
+This method is automatically called by pycurl when a Curl object no longer has
+any references to it, but can also be called explicitly.</p>
+</dd>
+
+<dt><code>perform()</code> -&gt; <em>None</em></dt>
+<dd>
+<p>Corresponds to
+<a href="http://curl.haxx.se/libcurl/c/curl_easy_perform.html"><code>curl_easy_perform</code></a> in libcurl.</p>
+</dd>
+
+<dt><code>setopt(</code><em>option, value</em><code>)</code> -&gt; <em>None</em></dt>
+<dd>
+
+<p>Corresponds to
+<a href="http://curl.haxx.se/libcurl/c/curl_easy_setopt.html"><code>curl_easy_setopt</code></a> in libcurl, where
+<em>option</em> is specified with the CURLOPT_* constants in libcurl,
+except that the CURLOPT_ prefix has been removed. The type for
+<em>value</em> depends on the option, and can be either a string,
+integer, long integer, file objects, lists, or functions.</p>
+
+<p>Example usage:</p>
+
+<pre>
+import pycurl
+c = pycurl.Curl()
+c.setopt(pycurl.URL, "http://www.python.org/")
+c.setopt(pycurl.HTTPHEADER, ["Accept:"])
+import StringIO
+b = StringIO.StringIO()
+c.setopt(pycurl.WRITEFUNCTION, b.write)
+c.setopt(pycurl.FOLLOWLOCATION, 1)
+c.setopt(pycurl.MAXREDIRS, 5)
+c.perform()
+print b.getvalue()
+...
+</pre>
+</dd>
+
+<dt><code>getinfo(</code><em>option</em><code>) </code>-&gt; <em>Result</em></dt>
+<dd>
+
+<p>Corresponds to
+<a href="http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html"><code>curl_easy_getinfo</code></a> in libcurl, where
+<em>option</em> is the same as the CURLINFO_* constants in libcurl,
+except that the CURLINFO_ prefix has been removed.
+<em>Result</em> contains an integer, float or string, depending on
+which option is given. The <code>getinfo</code> method should
+not be called unless <code>perform</code> has been called and
+finished.</p>
+
+<p>Example usage:</p>
+
+<pre>
+import pycurl
+c = pycurl.Curl()
+c.setopt(pycurl.URL, "http://sf.net")
+c.setopt(pycurl.FOLLOWLOCATION, 1)
+c.perform()
+print c.getinfo(pycurl.HTTP_CODE), c.getinfo(pycurl.EFFECTIVE_URL)
+...
+--&gt; 200 "http://sourceforge.net/"
+</pre>
+</dd>
+
+<dt><code>errstr()</code> -&gt; <em>String</em></dt>
+<dd>
+<p>Returns the internal libcurl error buffer of this handle as a string.</p>
+</dd>
+</dl>
+
+
+<hr />
+<p>
+  <a href="http://validator.w3.org/check/referer"><img align="right"
+     src="http://www.w3.org/Icons/valid-xhtml10"
+     alt="Valid XHTML 1.0!" height="31" width="88" border="0" /></a>
+  $Id$
+</p>
+
+</body>
+</html>
diff --git a/trunk/pycurl/doc/pycurl.html b/trunk/pycurl/doc/pycurl.html
new file mode 100644 (file)
index 0000000..f1db42a
--- /dev/null
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <title>PycURL Documentation</title>
+  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
+  <meta name="revisit-after" content="30 days" />
+  <meta name="robots" content="noarchive, index, follow" />
+</head>
+<body>
+
+<h1><tt>pycurl</tt> &mdash; A Python interface to the cURL library</h1>
+
+<p>The pycurl package is a Python interface to libcurl (<a
+href="http://curl.haxx.se/libcurl/">http://curl.haxx.se/libcurl/</a>). pycurl
+has been successfully built and tested with Python versions from
+2.2 to the current 2.4.x releases.</p>
+
+<p>libcurl is a client-side URL transfer library supporting FTP, FTPS,
+HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP.  libcurl
+also supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploads, proxies,
+cookies, basic authentication, file transfer resume of FTP sessions, HTTP
+proxy tunneling and more.</p>
+
+<p>All the functionality provided by libcurl can used through the
+pycurl interface. The following subsections describe how to use the
+pycurl interface, and assume familiarity with how libcurl works.  For
+information on how libcurl works, please consult the curl library web pages
+(<a href="http://curl.haxx.se/libcurl/c/">http://curl.haxx.se/libcurl/c/</a>).</p>
+
+<hr/>
+
+<h1>Module Functionality</h1>
+
+<dl>
+<dt><code>pycurl.global_init(</code><em>option</em><code>)</code> -&gt;<em>None</em></dt>
+
+<dd><p><em>option</em> is one of the constants
+pycurl.GLOBAL_SSL, pycurl.GLOBAL_WIN32, pycurl.GLOBAL_ALL,
+pycurl.GLOBAL_NOTHING, pycurl.GLOBAL_DEFAULT.  Corresponds to
+<a href="http://curl.haxx.se/libcurl/c/curl_global_init.html"><code>curl_global_init()</code></a> in libcurl.</p>
+</dd>
+
+<dt><code>pycurl.global_cleanup()</code> -&gt; <em>None</em></dt>
+<dd>
+<p>Corresponds to
+<a href="http://curl.haxx.se/libcurl/c/curl_global_cleanup.html"><code>curl_global_cleanup()</code></a> in libcurl.</p>
+</dd>
+
+<dt><code>pycurl.version</code></dt>
+
+<dd><p>This is a string with version information on libcurl,
+corresponding to
+<a href="http://curl.haxx.se/libcurl/c/curl_version.html"><code>curl_version()</code></a> in libcurl.</p>
+
+<p>Example usage:</p>
+<pre>
+>>> import pycurl
+>>> pycurl.version
+'libcurl/7.12.3 OpenSSL/0.9.7e zlib/1.2.2.1 libidn/0.5.12'
+</pre>
+</dd>
+
+<dt><code>pycurl.version_info()</code> -&gt; <em>Tuple</em></dt>
+<dd>
+<p>Corresponds to
+<a href="http://curl.haxx.se/libcurl/c/curl_version_info.html"><code>curl_version_info()</code></a> in libcurl.
+Returns a tuple of information which is similar to the
+<code>curl_version_info_data</code> struct returned by
+<code>curl_version_info()</code> in libcurl.</p>
+
+<p>Example usage:</p>
+<pre>
+>>> import pycurl
+>>> pycurl.version_info()
+(2, '7.12.3', 461827, 'i586-pc-linux-gnu', 1565, 'OpenSSL/0.9.7e', 9465951,
+'1.2.2.1', ('ftp', 'gopher', 'telnet', 'dict', 'ldap', 'http', 'file',
+'https', 'ftps'), None, 0, '0.5.12')
+</pre>
+</dd>
+
+<dt><code>pycurl.Curl()</code> -&gt; <em>Curl object</em></dt>
+<dd>
+<p>This function creates a new
+<a href="curlobject.html">Curl object</a> which corresponds to a
+<code>CURL</code> handle in libcurl. Curl objects automatically
+set CURLOPT_VERBOSE to 0, CURLOPT_NOPROGRESS to 1,
+provide a default CURLOPT_USERAGENT and setup
+CURLOPT_ERRORBUFFER to point to a private error buffer.</p>
+</dd>
+
+<dt><code>pycurl.CurlMulti()</code> -&gt; <em>CurlMulti object</em></dt>
+<dd>
+<p>This function creates a new
+<a href="curlmultiobject.html">CurlMulti object</a> which corresponds to
+a <code>CURLM</code> handle in libcurl.</p>
+</dd>
+</dl>
+
+<hr/>
+
+<h1>Subsections</h1>
+
+<ul>
+  <li><a href="curlobject.html">Curl objects</a></li>
+  <li><a href="curlmultiobject.html">CurlMulti objects</a></li>
+  <li><a href="callbacks.html">Callbacks</a></li>
+</ul>
+
+<hr />
+<p>
+  <a href="http://validator.w3.org/check/referer"><img align="right"
+     src="http://www.w3.org/Icons/valid-xhtml10"
+     alt="Valid XHTML 1.0!" height="31" width="88" border="0" /></a>
+  $Id$
+</p>
+
+</body>
+</html>
diff --git a/trunk/pycurl/examples/basicfirst.py b/trunk/pycurl/examples/basicfirst.py
new file mode 100644 (file)
index 0000000..af59405
--- /dev/null
@@ -0,0 +1,25 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import sys
+import pycurl
+
+class Test:
+    def __init__(self):
+        self.contents = ''
+
+    def body_callback(self, buf):
+        self.contents = self.contents + buf
+
+print >>sys.stderr, 'Testing', pycurl.version
+
+t = Test()
+c = pycurl.Curl()
+c.setopt(c.URL, 'http://curl.haxx.se/dev/')
+c.setopt(c.WRITEFUNCTION, t.body_callback)
+c.perform()
+c.close()
+
+print t.contents
diff --git a/trunk/pycurl/examples/file_upload.py b/trunk/pycurl/examples/file_upload.py
new file mode 100644 (file)
index 0000000..a514c1c
--- /dev/null
@@ -0,0 +1,46 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import os, sys
+import pycurl
+
+# Class which holds a file reference and the read callback
+class FileReader:
+    def __init__(self, fp):
+        self.fp = fp
+    def read_callback(self, size):
+        return self.fp.read(size)
+
+# Check commandline arguments
+if len(sys.argv) < 3:
+    print "Usage: %s <url> <file to upload>" % sys.argv[0]
+    raise SystemExit
+url = sys.argv[1]
+filename = sys.argv[2]
+
+if not os.path.exists(filename):
+    print "Error: the file '%s' does not exist" % filename
+    raise SystemExit
+
+# Initialize pycurl
+c = pycurl.Curl()
+c.setopt(pycurl.URL, url)
+c.setopt(pycurl.UPLOAD, 1)
+
+# Two versions with the same semantics here, but the filereader version
+# is useful when you have to process the data which is read before returning
+if 1:
+    c.setopt(pycurl.READFUNCTION, FileReader(open(filename, 'rb')).read_callback)
+else:
+    c.setopt(pycurl.READFUNCTION, open(filename, 'rb').read)
+
+# Set size of file to be uploaded.
+filesize = os.path.getsize(filename)
+c.setopt(pycurl.INFILESIZE, filesize)
+
+# Start transfer
+print 'Uploading file %s to url %s' % (filename, url)
+c.perform()
+c.close()
diff --git a/trunk/pycurl/examples/linksys.py b/trunk/pycurl/examples/linksys.py
new file mode 100755 (executable)
index 0000000..a60eba1
--- /dev/null
@@ -0,0 +1,563 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+#
+# linksys.py -- program settings on a Linkys router
+#
+# This tool is designed to help you recover from the occasional episodes
+# of catatonia that afflict Linksys boxes. It allows you to batch-program
+# them rather than manually entering values to the Web interface.  Commands
+# are taken from the command line first, then standard input.
+#
+# The somewhat spotty coverage of status queries is because I only did the
+# ones that were either (a) easy, or (b) necessary.  If you want to know the
+# status of the box, look at the web interface.
+#
+# This code has been tested against the following hardware:
+#
+#   Hardware    Firmware
+#   ----------  ---------------------
+#   BEFW11S4v2  1.44.2.1, Dec 20 2002
+#
+# The code is, of course, sensitive to changes in the names of CGI pages
+# and field names.
+#
+# Note: to make the no-arguments form work, you'll need to have the following
+# entry in your ~/.netrc file.  If you have changed the router IP address or
+# name/password, modify accordingly.
+#
+# machine 192.168.1.1
+#   login ""
+#   password admin
+#
+# By Eric S. Raymond, August April 2003.  All rites reversed.
+
+import sys, re, copy, curl, exceptions
+
+class LinksysError(exceptions.Exception):
+    def __init__(self, *args):
+        self.args = args
+
+class LinksysSession:
+    months = 'Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec'
+
+    WAN_CONNECT_AUTO = '1'
+    WAN_CONNECT_STATIC = '2'
+    WAN_CONNECT_PPOE = '3'
+    WAN_CONNECT_RAS = '4'
+    WAN_CONNECT_PPTP = '5'
+    WAN_CONNECT_HEARTBEAT = '6'
+
+    # Substrings to check for on each page load.
+    # This may enable us to detect when a firmware change has hosed us.
+    check_strings = {
+        "":           "basic setup functions",
+        "Passwd.htm": "For security reasons,",
+        "DHCP.html":  "You can configure the router to act as a DHCP",
+        "Log.html":   "There are some log settings and lists in this page.",
+        "Forward.htm":"Port forwarding can be used to set up public services",
+        }
+
+    def __init__(self):
+        self.actions = []
+        self.host = "http://192.168.1.1"
+        self.verbosity = False
+        self.pagecache = {}
+
+    def set_verbosity(self, flag):
+        self.verbosity = flag
+
+    # This is not a performance hack -- we need the page cache to do
+    # sanity checks at configure time.
+    def cache_load(self, page):
+        if page not in self.pagecache:
+            fetch = curl.Curl(self.host)
+            fetch.set_verbosity(self.verbosity)
+            fetch.get(page)
+            self.pagecache[page] = fetch.body()
+            if fetch.answered("401"):
+                raise LinksysError("authorization failure.", True)
+            elif not fetch.answered(LinksysSession.check_strings[page]):
+                del self.pagecache[page]
+                raise LinksysError("check string for page %s missing!" % os.path.join(self.host, page), False)
+            fetch.close()
+    def cache_flush(self):
+        self.pagecache = {}
+
+    # Primitives
+    def screen_scrape(self, page, template):
+        self.cache_load(page)
+        match = re.compile(template).search(self.pagecache[page])
+        if match:
+            result = match.group(1)
+        else:
+            result = None
+        return result
+    def get_MAC_address(self, page, prefix):
+        return self.screen_scrape("", prefix+r":[^M]*\(MAC Address: *([^)]*)")
+    def set_flag(page, flag, value):
+        if value:
+            self.actions.append(page, flag, "1")
+        else:
+            self.actions.append(page, flag, "0")
+    def set_IP_address(self, page, cgi, role, ip):
+        ind = 0
+        for octet in ip.split("."):
+            self.actions.append(("", "F1", role + `ind+1`, octet))
+            ind += 1
+
+    # Scrape configuration data off the main page
+    def get_firmware_version(self):
+        # This is fragile.  There is no distinguishing tag before the firmware
+        # version, so we have to key off the pattern of the version number.
+        # Our model is ">1.44.2.1, Dec 20 2002<"
+        return self.screen_scrape("", ">([0-9.v]*, (" + \
+                                  LinksysSession.months + ")[^<]*)<", )
+    def get_LAN_MAC(self):
+        return self.get_MAC_address("", r"LAN IP Address")
+    def get_Wireless_MAC(self):
+        return self.get_MAC_address("", r"Wireless")
+    def get_WAN_MAC(self):
+        return self.get_MAC_address("", r"WAN Connection Type")
+
+    # Set configuration data on the main page
+    def set_host_name(self, name):
+        self.actions.append(("", "hostName", name))
+    def set_domain_name(self, name):
+        self.actions.append(("", "DomainName", name))
+    def set_LAN_IP(self, ip):
+        self.set_IP_address("", "ipAddr", ip)
+    def set_LAN_netmask(self, ip):
+        if not ip.startswith("255.255.255."):
+            raise ValueError
+        lastquad = ip.split(".")[-1]
+        if lastquad not in ("0", "128", "192", "240", "252"):
+            raise ValueError
+        self.actions.append("", "netMask", lastquad)
+    def set_wireless(self, flag):
+        self.set_flag("", "wirelessStatus")
+    def set_SSID(self, ssid):
+        self.actions.append(("", "wirelessESSID", ssid))
+    def set_SSID_broadcast(self, flag):
+        self.set_flag("", "broadcastSSID")
+    def set_channel(self, channel):
+        self.actions.append(("", "wirelessChannel", channel))
+    def set_WEP(self, flag):
+        self.set_flag("", "WepType")
+    # FIXME: Add support for setting WEP keys
+    def set_connection_type(self, type):
+        self.actions.append(("", "WANConnectionType", type))
+    def set_WAN_IP(self, ip):
+        self.set_IP_address("", "aliasIP", ip)
+    def set_WAN_netmask(self, ip):
+        self.set_IP_address("", "aliasMaskIP", ip)
+    def set_WAN_gateway_address(self, ip):
+        self.set_IP_address("", "routerIP", ip)
+    def set_DNS_server(self, index, ip):
+        self.set_IP_address("", "dns" + "ABC"[index], ip)
+
+    # Set configuration data on the password page
+    def set_password(self, str):
+        self.actions.append("Passwd.htm","sysPasswd", str)
+        self.actions.append("Passwd.htm","sysPasswdConfirm", str)
+    def set_UPnP(self, flag):
+        self.set_flag("Passwd.htm", "UPnP_Work")
+    def reset(self):
+        self.actions.append("Passwd.htm", "FactoryDefaults")
+
+    # DHCP features
+    def set_DHCP(self, flag):
+        if flag:
+            self.actions.append("DHCP.htm","dhcpStatus","Enable")
+        else:
+            self.actions.append("DHCP.htm","dhcpStatus","Disable")
+    def set_DHCP_starting_IP(self, val):
+        self.actions.append("DHCP.htm","dhcpS4", str(val))
+    def set_DHCP_users(self, val):
+        self.actions.append("DHCP.htm","dhcpLen", str(val))
+    def set_DHCP_lease_time(self, val):
+        self.actions.append("DHCP.htm","leaseTime", str(val))
+    def set_DHCP_DNS_server(self, index, ip):
+        self.set_IP_address("DHCP.htm", "dns" + "ABC"[index], ip)
+    # FIXME: add support for setting WINS key
+
+    # Logging features
+    def set_logging(self, flag):
+        if flag:
+            self.actions.append("Log.htm", "rLog", "Enable")
+        else:
+            self.actions.append("Log.htm", "rLog", "Disable")
+    def set_log_address(self, val):
+        self.actions.append("DHCP.htm","trapAddr3", str(val))
+
+    # The AOL parental control flag is not supported by design.
+
+    # FIXME: add Filters and other advanced features
+
+    def configure(self):
+        "Write configuration changes to the Linksys."
+        if self.actions:
+            fields = []
+            self.cache_flush()
+            for (page, field, value) in self.actions:
+                self.cache_load(page)
+                if self.pagecache[page].find(field) == -1:
+                    print >>sys.stderr, "linksys: field %s not found where expected in page %s!" % (field, os.path.join(self.host, page))
+                    continue
+                else:
+                    fields.append((field, value))
+            # Clearing the action list before fieldsping is deliberate.
+            # Otherwise we could get permanently wedged by a 401.
+            self.actions = []
+            transaction = curl.Curl(self.host)
+            transaction.set_verbosity(self.verbosity)
+            transaction.get("Gozila.cgi", tuple(fields))
+            transaction.close()
+
+if __name__ == "__main__":
+    import os, cmd
+
+    class LinksysInterpreter(cmd.Cmd):
+        """Interpret commands to perform LinkSys programming actions."""
+        def __init__(self):
+            self.session = LinksysSession()
+            if os.isatty(0):
+                import readline
+                print "Type ? or `help' for help."
+                self.prompt = self.session.host + ": "
+            else:
+                self.prompt = ""
+                print "Bar1"
+
+        def flag_command(self, func):
+            if line.strip() in ("on", "enable", "yes"):
+                func(True)
+            elif line.strip() in ("off", "disable", "no"):
+                func(False)
+            else:
+                print >>sys.stderr, "linksys: unknown switch value"
+            return 0
+
+        def do_connect(self, line):
+            newhost = line.strip()
+            if newhost:
+                self.session.host = newhost
+                self.session.cache_flush()
+                self.prompt = self.session.host + ": "
+            else:
+                print self.session.host
+            return 0
+        def help_connect(self):
+            print "Usage: connect [<hostname-or-IP>]"
+            print "Connect to a Linksys by name or IP address."
+            print "If no argument is given, print the current host."
+
+        def do_status(self, line):
+            self.session.cache_load("")
+            if "" in self.session.pagecache:
+                print "Firmware:", self.session.get_firmware_version()
+                print "LAN MAC:", self.session.get_LAN_MAC()
+                print "Wireless MAC:", self.session.get_Wireless_MAC()
+                print "WAN MAC:", self.session.get_WAN_MAC()
+                print "."
+            return 0
+        def help_status(self):
+            print "Usage: status"
+            print "The status command shows the status of the Linksys."
+            print "It is mainly useful as a sanity check to make sure"
+            print "the box is responding correctly."
+
+        def do_verbose(self, line):
+            self.flag_command(self.session.set_verbosity)
+        def help_verbose(self):
+            print "Usage: verbose {on|off|enable|disable|yes|no}"
+            print "Enables display of HTTP requests."
+
+        def do_host(self, line):
+            self.session.set_host_name(line)
+            return 0
+        def help_host(self):
+            print "Usage: host <hostname>"
+            print "Sets the Host field to be queried by the ISP."
+
+        def do_domain(self, line):
+            print "Usage: host <domainname>"
+            self.session.set_domain_name(line)
+            return 0
+        def help_domain(self):
+            print "Sets the Domain field to be queried by the ISP."
+
+        def do_lan_address(self, line):
+            self.session.set_LAN_IP(line)
+            return 0
+        def help_lan_address(self):
+            print "Usage: lan_address <ip-address>"
+            print "Sets the LAN IP address."
+
+        def do_lan_netmask(self, line):
+            self.session.set_LAN_netmask(line)
+            return 0
+        def help_lan_netmask(self):
+            print "Usage: lan_netmask <ip-mask>"
+            print "Sets the LAN subnetwork mask."
+
+        def do_wireless(self, line):
+            self.flag_command(self.session.set_wireless)
+            return 0
+        def help_wireless(self):
+            print "Usage: wireless {on|off|enable|disable|yes|no}"
+            print "Switch to enable or disable wireless features."
+
+        def do_ssid(self, line):
+            self.session.set_SSID(line)
+            return 0
+        def help_ssid(self):
+            print "Usage: ssid <string>"
+            print "Sets the SSID used to control wireless access."
+
+        def do_ssid_broadcast(self, line):
+            self.flag_command(self.session.set_SSID_broadcast)
+            return 0
+        def help_ssid_broadcast(self):
+            print "Usage: ssid_broadcast {on|off|enable|disable|yes|no}"
+            print "Switch to enable or disable SSID broadcast."
+
+        def do_channel(self, line):
+            self.session.set_channel(line)
+            return 0
+        def help_channel(self):
+            print "Usage: channel <number>"
+            print "Sets the wireless channel."
+
+        def do_wep(self, line):
+            self.flag_command(self.session.set_WEP)
+            return 0
+        def help_wep(self):
+            print "Usage: wep {on|off|enable|disable|yes|no}"
+            print "Switch to enable or disable WEP security."
+
+        def do_wan_type(self, line):
+            try:
+                type=eval("LinksysSession.WAN_CONNECT_"+line.strip().upper())
+                self.session.set_connection_type(type)
+            except ValueError:
+                print >>sys.stderr, "linksys: unknown connection type."
+            return 0
+        def help_wan_type(self):
+            print "Usage: wan_type {auto|static|ppoe|ras|pptp|heartbeat}"
+            print "Set the WAN connection type."
+
+        def do_wan_address(self, line):
+            self.session.set_WAN_IP(line)
+            return 0
+        def help_wan_address(self):
+            print "Usage: wan_address <ip-address>"
+            print "Sets the WAN IP address."
+
+        def do_wan_netmask(self, line):
+            self.session.set_WAN_netmask(line)
+            return 0
+        def help_wan_netmask(self):
+            print "Usage: wan_netmask <ip-mask>"
+            print "Sets the WAN subnetwork mask."
+
+        def do_wan_gateway(self, line):
+            self.session.set_WAN_gateway(line)
+            return 0
+        def help_wan_gateway(self):
+            print "Usage: wan_gateway <ip-address>"
+            print "Sets the LAN subnetwork mask."
+
+        def do_dns(self, line):
+            (index, address) = line.split()
+            if index in ("1", "2", "3"):
+                self.session.set_DNS_server(eval(index), address)
+            else:
+                print >>sys.stderr, "linksys: server index out of bounds."
+            return 0
+        def help_dns(self):
+            print "Usage: dns {1|2|3} <ip-mask>"
+            print "Sets a primary, secondary, or tertiary DNS server address."
+
+        def do_password(self, line):
+            self.session.set_password(line)
+            return 0
+        def help_password(self):
+            print "Usage: password <string>"
+            print "Sets the router password."
+
+        def do_upnp(self, line):
+            self.flag_command(self.session.set_UPnP)
+            return 0
+        def help_upnp(self):
+            print "Usage: upnp {on|off|enable|disable|yes|no}"
+            print "Switch to enable or disable Universal Plug and Play."
+
+        def do_reset(self, line):
+            self.session.reset()
+        def help_reset(self):
+            print "Usage: reset"
+            print "Reset Linksys settings to factory defaults."
+
+        def do_dhcp(self, line):
+            self.flag_command(self.session.set_DHCP)
+        def help_dhcp(self):
+            print "Usage: dhcp {on|off|enable|disable|yes|no}"
+            print "Switch to enable or disable DHCP features."
+
+        def do_dhcp_start(self, line):
+            self.session.set_DHCP_starting_IP(line)
+        def help_dhcp_start(self):
+            print "Usage: dhcp_start <number>"
+            print "Set the start address of the DHCP pool."
+
+        def do_dhcp_users(self, line):
+            self.session.set_DHCP_users(line)
+        def help_dhcp_users(self):
+            print "Usage: dhcp_users <number>"
+            print "Set number of address slots to allocate in the DHCP pool."
+
+        def do_dhcp_lease(self, line):
+            self.session.set_DHCP_lease(line)
+        def help_dhcp_lease(self):
+            print "Usage: dhcp_lease <number>"
+            print "Set number of address slots to allocate in the DHCP pool."
+
+        def do_dhcp_dns(self, line):
+            (index, address) = line.split()
+            if index in ("1", "2", "3"):
+                self.session.set_DHCP_DNS_server(eval(index), address)
+            else:
+                print >>sys.stderr, "linksys: server index out of bounds."
+            return 0
+        def help_dhcp_dns(self):
+            print "Usage: dhcp_dns {1|2|3} <ip-mask>"
+            print "Sets primary, secondary, or tertiary DNS server address."
+
+        def do_logging(self, line):
+            self.flag_command(self.session.set_logging)
+        def help_logging(self):
+            print "Usage: logging {on|off|enable|disable|yes|no}"
+            print "Switch to enable or disable session logging."
+
+        def do_log_address(self, line):
+            self.session.set_Log_address(line)
+        def help_log_address(self):
+            print "Usage: log_address <number>"
+            print "Set the last quad of the address to which to log."
+
+        def do_configure(self, line):
+            self.session.configure()
+            return 0
+        def help_configure(self):
+            print "Usage: configure"
+            print "Writes the configuration to the Linksys."
+
+        def do_cache(self, line):
+            print self.session.pagecache
+        def help_cache(self):
+            print "Usage: cache"
+            print "Display the page cache."
+
+        def do_quit(self, line):
+            return 1
+        def help_quit(self, line):
+            print "The quit command ends your linksys session without"
+            print "writing configuration changes to the Linksys."
+        def do_EOF(self, line):
+            print ""
+            self.session.configure()
+            return 1
+        def help_EOF(self):
+            print "The EOF command writes the configuration to the linksys"
+            print "and ends your session."
+
+        def default(self, line):
+            """Pass the command through to be executed by the shell."""
+            os.system(line)
+            return 0
+
+        def help_help(self):
+            print "On-line help is available through this command."
+            print "? is a convenience alias for help."
+
+        def help_introduction(self):
+            print """\
+
+This program supports changing the settings on Linksys blue-box routers.  This
+capability may come in handy when they freeze up and have to be reset.  Though
+it can be used interactively (and will command-prompt when standard input is a
+terminal) it is really designed to be used in batch mode. Commands are taken
+from the command line first, then standard input.
+
+By default, it is assumed that the Linksys is at http://192.168.1.1, the
+default LAN address.  You can connect to a different address or IP with the
+'connect' command.  Note that your .netrc must contain correct user/password
+credentials for the router.  The entry corresponding to the defaults is:
+
+machine 192.168.1.1
+    login ""
+    password admin
+
+Most commands queue up changes but don't actually send them to the Linksys.
+You can force pending changes to be written with 'configure'.  Otherwise, they
+will be shipped to the Linksys at the end of session (e.g.  when the program
+running in batch mode encounters end-of-file or you type a control-D).  If you
+end the session with `quit', pending changes will be discarded.
+
+For more help, read the topics 'wan', 'lan', and 'wireless'."""
+
+        def help_lan(self):
+            print """\
+The `lan_address' and `lan_netmask' commands let you set the IP location of
+the Linksys on your LAN, or inside.  Normally you'll want to leave these
+untouched."""
+
+        def help_wan(self):
+            print """\
+The WAN commands become significant if you are using the BEFSR41 or any of
+the other Linksys boxes designed as DSL or cable-modem gateways.  You will
+need to use `wan_type' to declare how you expect to get your address.
+
+If your ISP has issued you a static address, you'll need to use the
+`wan_address', `wan_netmask', and `wan_gateway' commands to set the address
+of the router as seen from the WAN, the outside. In this case you will also
+need to use the `dns' command to declare which remote servers your DNS
+requests should be forwarded to.
+
+Some ISPs may require you to set host and domain for use with dynamic-address
+allocation."""
+
+        def help_wireless(self):
+            print """\
+The channel, ssid, ssid_broadcast, wep, and wireless commands control
+wireless routing."""
+
+        def help_switches(self):
+            print "Switches may be turned on with 'on', 'enable', or 'yes'."
+            print "Switches may be turned off with 'off', 'disable', or 'no'."
+            print "Switch commands include: wireless, ssid_broadcast."
+
+        def help_addresses(self):
+            print "An address argument must be a valid IP address;"
+            print "four decimal numbers separated by dots, each "
+            print "between 0 and 255."
+
+        def emptyline(self):
+            pass
+
+    interpreter = LinksysInterpreter()
+    for arg in sys.argv[1:]:
+        interpreter.onecmd(arg)
+    fatal = False
+    while not fatal:
+        try:
+            interpreter.cmdloop()
+            fatal = True
+        except LinksysError, (message, fatal):
+            print "linksys:", message
+
+# The following sets edit modes for GNU EMACS
+# Local Variables:
+# mode:python
+# End:
diff --git a/trunk/pycurl/examples/retriever-multi.py b/trunk/pycurl/examples/retriever-multi.py
new file mode 100644 (file)
index 0000000..2ec3f9a
--- /dev/null
@@ -0,0 +1,122 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+#
+# Usage: python retriever-multi.py <file with URLs to fetch> [<# of
+#          concurrent connections>]
+#
+
+import sys
+import pycurl
+
+# We should ignore SIGPIPE when using pycurl.NOSIGNAL - see
+# the libcurl tutorial for more info.
+try:
+    import signal
+    from signal import SIGPIPE, SIG_IGN
+    signal.signal(signal.SIGPIPE, signal.SIG_IGN)
+except ImportError:
+    pass
+
+
+# Get args
+num_conn = 10
+try:
+    if sys.argv[1] == "-":
+        urls = sys.stdin.readlines()
+    else:
+        urls = open(sys.argv[1]).readlines()
+    if len(sys.argv) >= 3:
+        num_conn = int(sys.argv[2])
+except:
+    print "Usage: %s <file with URLs to fetch> [<# of concurrent connections>]" % sys.argv[0]
+    raise SystemExit
+
+
+# Make a queue with (url, filename) tuples
+queue = []
+for url in urls:
+    url = url.strip()
+    if not url or url[0] == "#":
+        continue
+    filename = "doc_%03d.dat" % (len(queue) + 1)
+    queue.append((url, filename))
+
+
+# Check args
+assert queue, "no URLs given"
+num_urls = len(queue)
+num_conn = min(num_conn, num_urls)
+assert 1 <= num_conn <= 10000, "invalid number of concurrent connections"
+print "PycURL %s (compiled against 0x%x)" % (pycurl.version, pycurl.COMPILE_LIBCURL_VERSION_NUM)
+print "----- Getting", num_urls, "URLs using", num_conn, "connections -----"
+
+
+# Pre-allocate a list of curl objects
+m = pycurl.CurlMulti()
+m.handles = []
+for i in range(num_conn):
+    c = pycurl.Curl()
+    c.fp = None
+    c.setopt(pycurl.FOLLOWLOCATION, 1)
+    c.setopt(pycurl.MAXREDIRS, 5)
+    c.setopt(pycurl.CONNECTTIMEOUT, 30)
+    c.setopt(pycurl.TIMEOUT, 300)
+    c.setopt(pycurl.NOSIGNAL, 1)
+    m.handles.append(c)
+
+
+# Main loop
+freelist = m.handles[:]
+num_processed = 0
+while num_processed < num_urls:
+    # If there is an url to process and a free curl object, add to multi stack
+    while queue and freelist:
+        url, filename = queue.pop(0)
+        c = freelist.pop()
+        c.fp = open(filename, "wb")
+        c.setopt(pycurl.URL, url)
+        c.setopt(pycurl.WRITEDATA, c.fp)
+        m.add_handle(c)
+        # store some info
+        c.filename = filename
+        c.url = url
+    # Run the internal curl state machine for the multi stack
+    while 1:
+        ret, num_handles = m.perform()
+        if ret != pycurl.E_CALL_MULTI_PERFORM:
+            break
+    # Check for curl objects which have terminated, and add them to the freelist
+    while 1:
+        num_q, ok_list, err_list = m.info_read()
+        for c in ok_list:
+            c.fp.close()
+            c.fp = None
+            m.remove_handle(c)
+            print "Success:", c.filename, c.url, c.getinfo(pycurl.EFFECTIVE_URL)
+            freelist.append(c)
+        for c, errno, errmsg in err_list:
+            c.fp.close()
+            c.fp = None
+            m.remove_handle(c)
+            print "Failed: ", c.filename, c.url, errno, errmsg
+            freelist.append(c)
+        num_processed = num_processed + len(ok_list) + len(err_list)
+        if num_q == 0:
+            break
+    # Currently no more I/O is pending, could do something in the meantime
+    # (display a progress bar, etc.).
+    # We just call select() to sleep until some more data is available.
+    m.select()
+
+
+# Cleanup
+for c in m.handles:
+    if c.fp is not None:
+        c.fp.close()
+        c.fp = None
+    c.close()
+m.close()
+
diff --git a/trunk/pycurl/examples/retriever.py b/trunk/pycurl/examples/retriever.py
new file mode 100644 (file)
index 0000000..2c91d07
--- /dev/null
@@ -0,0 +1,99 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+#
+# Usage: python retriever.py <file with URLs to fetch> [<# of
+#          concurrent connections>]
+#
+
+import sys, threading, Queue
+import pycurl
+
+# We should ignore SIGPIPE when using pycurl.NOSIGNAL - see
+# the libcurl tutorial for more info.
+try:
+    import signal
+    from signal import SIGPIPE, SIG_IGN
+    signal.signal(signal.SIGPIPE, signal.SIG_IGN)
+except ImportError:
+    pass
+
+
+# Get args
+num_conn = 10
+try:
+    if sys.argv[1] == "-":
+        urls = sys.stdin.readlines()
+    else:
+        urls = open(sys.argv[1]).readlines()
+    if len(sys.argv) >= 3:
+        num_conn = int(sys.argv[2])
+except:
+    print "Usage: %s <file with URLs to fetch> [<# of concurrent connections>]" % sys.argv[0]
+    raise SystemExit
+
+
+# Make a queue with (url, filename) tuples
+queue = Queue.Queue()
+for url in urls:
+    url = url.strip()
+    if not url or url[0] == "#":
+        continue
+    filename = "doc_%03d.dat" % (len(queue.queue) + 1)
+    queue.put((url, filename))
+
+
+# Check args
+assert queue.queue, "no URLs given"
+num_urls = len(queue.queue)
+num_conn = min(num_conn, num_urls)
+assert 1 <= num_conn <= 10000, "invalid number of concurrent connections"
+print "PycURL %s (compiled against 0x%x)" % (pycurl.version, pycurl.COMPILE_LIBCURL_VERSION_NUM)
+print "----- Getting", num_urls, "URLs using", num_conn, "connections -----"
+
+
+class WorkerThread(threading.Thread):
+    def __init__(self, queue):
+        threading.Thread.__init__(self)
+        self.queue = queue
+
+    def run(self):
+        while 1:
+            try:
+                url, filename = self.queue.get_nowait()
+            except Queue.Empty:
+                raise SystemExit
+            fp = open(filename, "wb")
+            curl = pycurl.Curl()
+            curl.setopt(pycurl.URL, url)
+            curl.setopt(pycurl.FOLLOWLOCATION, 1)
+            curl.setopt(pycurl.MAXREDIRS, 5)
+            curl.setopt(pycurl.CONNECTTIMEOUT, 30)
+            curl.setopt(pycurl.TIMEOUT, 300)
+            curl.setopt(pycurl.NOSIGNAL, 1)
+            curl.setopt(pycurl.WRITEDATA, fp)
+            try:
+                curl.perform()
+            except:
+                import traceback
+                traceback.print_exc(file=sys.stderr)
+                sys.stderr.flush()
+            curl.close()
+            fp.close()
+            sys.stdout.write(".")
+            sys.stdout.flush()
+
+
+# Start a bunch of threads
+threads = []
+for dummy in range(num_conn):
+    t = WorkerThread(queue)
+    t.start()
+    threads.append(t)
+
+
+# Wait for all threads to finish
+for thread in threads:
+    thread.join()
diff --git a/trunk/pycurl/examples/sfquery.py b/trunk/pycurl/examples/sfquery.py
new file mode 100644 (file)
index 0000000..0c63f61
--- /dev/null
@@ -0,0 +1,64 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+#
+# sfquery -- Source Forge query script using the ClientCGI high-level interface
+#
+# Retrieves a SourceForge XML export object for a given project.
+# Specify the *numeric* project ID. the user name, and the password,
+# as arguments. If you have a valid ~/.netrc entry for sourceforge.net,
+# you can just give the project ID.
+#
+# By Eric S. Raymond, August 2002.  All rites reversed.
+
+import os, sys, netrc
+import curl
+
+assert sys.version[:3] >= "2.2", "requires Python 2.2 or better"
+
+class SourceForgeUserSession(curl.Curl):
+    # SourceForge-specific methods.  Sensitive to changes in site design.
+    def login(self, name, password):
+        "Establish a login session."
+        self.post("account/login.php", (("form_loginname", name),
+                                        ("form_pw", password),
+                                        ("return_to", ""),
+                                        ("stay_in_ssl", "1"),
+                                        ("login", "Login With SSL")))
+    def logout(self):
+        "Log out of SourceForge."
+        self.get("account/logout.php")
+    def fetch_xml(self, numid):
+        self.get("export/xml_export.php?group_id=%s" % numid)
+
+if __name__ == "__main__":
+    if len(sys.argv) == 1:
+        project_id = '28236'    # PyCurl project ID
+    else:
+        project_id = sys.argv[1]
+    # Try to grab authenticators out of your .netrc
+    try:
+        auth = netrc.netrc().authenticators("sourceforge.net")
+        name, account, password = auth
+    except:
+        name = sys.argv[2]
+        password = sys.argv[3]
+    session = SourceForgeUserSession("https://sourceforge.net/")
+    session.set_verbosity(0)
+    session.login(name, password)
+    # Login could fail.
+    if session.answered("Invalid Password or User Name"):
+        sys.stderr.write("Login/password not accepted (%d bytes)\n" % len(session.body()))
+        sys.exit(1)
+    # We'll see this if we get the right thing.
+    elif session.answered("Personal Page For: " + name):
+        session.fetch_xml(project_id)
+        sys.stdout.write(session.body())
+        session.logout()
+        sys.exit(0)
+    # Or maybe SourceForge has changed its site design so our check strings
+    # are no longer valid.
+    else:
+        sys.stderr.write("Unexpected page (%d bytes)\n"%len(session.body()))
+        sys.exit(1)
+
diff --git a/trunk/pycurl/examples/xmlrpc_curl.py b/trunk/pycurl/examples/xmlrpc_curl.py
new file mode 100644 (file)
index 0000000..462bc97
--- /dev/null
@@ -0,0 +1,61 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+# We should ignore SIGPIPE when using pycurl.NOSIGNAL - see
+# the libcurl tutorial for more info.
+try:
+    import signal
+    from signal import SIGPIPE, SIG_IGN
+    signal.signal(signal.SIGPIPE, signal.SIG_IGN)
+except ImportError:
+    pass
+try:
+    from cStringIO import StringIO
+except ImportError:
+    from StringIO import StringIO
+import xmlrpclib, pycurl
+
+
+class CURLTransport(xmlrpclib.Transport):
+    """Handles a cURL HTTP transaction to an XML-RPC server."""
+
+    xmlrpc_h = [ "Content-Type: text/xml" ]
+
+    def __init__(self, username=None, password=None):
+        self.c = pycurl.Curl()
+        self.c.setopt(pycurl.POST, 1)
+        self.c.setopt(pycurl.NOSIGNAL, 1)
+        self.c.setopt(pycurl.CONNECTTIMEOUT, 30)
+        self.c.setopt(pycurl.HTTPHEADER, self.xmlrpc_h)
+        if username != None and password != None:
+            self.c.setopt(pycurl.USERPWD, '%s:%s' % (username, password))
+
+    def request(self, host, handler, request_body, verbose=0):
+        b = StringIO()
+        self.c.setopt(pycurl.URL, 'http://%s%s' % (host, handler))
+        self.c.setopt(pycurl.POSTFIELDS, request_body)
+        self.c.setopt(pycurl.WRITEFUNCTION, b.write)
+        self.c.setopt(pycurl.VERBOSE, verbose)
+        self.verbose = verbose
+        try:
+           self.c.perform()
+        except pycurl.error, v:
+            raise xmlrpclib.ProtocolError(
+                host + handler,
+                v[0], v[1], None
+                )
+        b.seek(0)
+        return self.parse_response(b)
+
+
+if __name__ == "__main__":
+    ## Test
+    server = xmlrpclib.ServerProxy("http://betty.userland.com",
+                                   transport=CURLTransport())
+    print server
+    try:
+        print server.examples.getStateName(41)
+    except xmlrpclib.Error, v:
+        print "ERROR", v
diff --git a/trunk/pycurl/python/curl/__init__.py b/trunk/pycurl/python/curl/__init__.py
new file mode 100644 (file)
index 0000000..8fecb4d
--- /dev/null
@@ -0,0 +1,146 @@
+# A high-level interface to the pycurl extension
+#
+# ** mfx NOTE: the CGI class uses "black magic" using COOKIEFILE in
+#    combination with a non-existant file name. See the libcurl docs
+#    for more info.
+#
+# If you want thread-safe operation, you'll have to set the NOSIGNAL option
+# yourself.
+#
+# By Eric S. Raymond, April 2003.
+
+import os, sys, urllib, exceptions, mimetools, pycurl
+try:
+    from cStringIO import StringIO
+except ImportError:
+    from StringIO import StringIO
+
+
+class Curl:
+    "High-level interface to cURL functions."
+    def __init__(self, base_url="", fakeheaders=[]):
+        self.handle = pycurl.Curl()
+        # These members might be set.
+        self.set_url(base_url)
+        self.verbosity = 0
+        self.fakeheaders = fakeheaders
+        # Nothing past here should be modified by the caller.
+        self.payload = ""
+        self.header = StringIO()
+        # Verify that we've got the right site; harmless on a non-SSL connect.
+        self.set_option(pycurl.SSL_VERIFYHOST, 2)
+        # Follow redirects in case it wants to take us to a CGI...
+        self.set_option(pycurl.FOLLOWLOCATION, 1)
+        self.set_option(pycurl.MAXREDIRS, 5)
+        # Setting this option with even a nonexistent file makes libcurl
+        # handle cookie capture and playback automatically.
+        self.set_option(pycurl.COOKIEFILE, "/dev/null")
+        # Set timeouts to avoid hanging too long
+        self.set_timeout(30)
+        # Use password identification from .netrc automatically
+        self.set_option(pycurl.NETRC, 1)
+        # Set up a callback to capture the payload
+        def payload_callback(x):
+            self.payload += x
+        self.set_option(pycurl.WRITEFUNCTION, payload_callback)
+        def header_callback(x):
+            self.header.write(x)
+        self.set_option(pycurl.HEADERFUNCTION, header_callback)
+
+    def set_timeout(self, timeout):
+        "Set timeout for connect and object retrieval (applies for both)"
+        self.set_option(pycurl.CONNECTTIMEOUT, timeout)
+        self.set_option(pycurl.TIMEOUT, timeout)
+
+    def set_url(self, url):
+        "Set the base URL to be retrieved."
+        self.base_url = url
+        self.set_option(pycurl.URL, self.base_url)
+
+    def set_option(self, *args):
+        "Set an option on the retrieval,"
+        apply(self.handle.setopt, args)
+
+    def set_verbosity(self, level):
+        "Set verbosity to 1 to see transactions."
+        self.set_option(pycurl.VERBOSE, level)
+
+    def __request(self, relative_url=None):
+        "Perform the pending request."
+        if self.fakeheaders:
+            self.set_option(pycurl.HTTPHEADER, self.fakeheaders)
+        if relative_url:
+            self.set_option(pycurl.URL,os.path.join(self.base_url,relative_url))
+        self.header.seek(0,0)
+        self.payload = ""
+        self.handle.perform()
+        return self.payload
+
+    def get(self, url="", params=None):
+        "Ship a GET request for a specified URL, capture the response."
+        if params:
+            url += "?" + urllib.urlencode(params)
+        self.set_option(pycurl.HTTPGET, 1)
+        return self.__request(url)
+
+    def post(self, cgi, params):
+        "Ship a POST request to a specified CGI, capture the response."
+        self.set_option(pycurl.POST, 1)
+        self.set_option(pycurl.POSTFIELDS, urllib.urlencode(params))
+        return self.__request(cgi)
+
+    def body(self):
+        "Return the body from the last response."
+        return self.payload
+
+    def info(self):
+        "Return an RFC822 object with info on the page."
+        self.header.seek(0,0)
+        url = self.handle.getinfo(pycurl.EFFECTIVE_URL)
+        if url[:5] == 'http:':
+            self.header.readline()
+            m = mimetools.Message(self.header)
+        else:
+            m = mimetools.Message(StringIO())
+        m['effective-url'] = url
+        m['http-code'] = str(self.handle.getinfo(pycurl.HTTP_CODE))
+        m['total-time'] = str(self.handle.getinfo(pycurl.TOTAL_TIME))
+        m['namelookup-time'] = str(self.handle.getinfo(pycurl.NAMELOOKUP_TIME))
+        m['connect-time'] = str(self.handle.getinfo(pycurl.CONNECT_TIME))
+        m['pretransfer-time'] = str(self.handle.getinfo(pycurl.PRETRANSFER_TIME))
+        m['redirect-time'] = str(self.handle.getinfo(pycurl.REDIRECT_TIME))
+        m['redirect-count'] = str(self.handle.getinfo(pycurl.REDIRECT_COUNT))
+        m['size-upload'] = str(self.handle.getinfo(pycurl.SIZE_UPLOAD))
+        m['size-download'] = str(self.handle.getinfo(pycurl.SIZE_DOWNLOAD))
+        m['speed-upload'] = str(self.handle.getinfo(pycurl.SPEED_UPLOAD))
+        m['header-size'] = str(self.handle.getinfo(pycurl.HEADER_SIZE))
+        m['request-size'] = str(self.handle.getinfo(pycurl.REQUEST_SIZE))
+        m['content-length-download'] = str(self.handle.getinfo(pycurl.CONTENT_LENGTH_DOWNLOAD))
+        m['content-length-upload'] = str(self.handle.getinfo(pycurl.CONTENT_LENGTH_UPLOAD))
+        m['content-type'] = (self.handle.getinfo(pycurl.CONTENT_TYPE) or '').strip(';')
+        return m
+
+    def answered(self, check):
+        "Did a given check string occur in the last payload?"
+        return self.payload.find(check) >= 0
+
+    def close(self):
+        "Close a session, freeing resources."
+        self.handle.close()
+        self.header.close()
+
+    def __del__(self):
+        self.close()
+
+
+if __name__ == "__main__":
+    if len(sys.argv) < 2:
+        url = 'http://curl.haxx.se'
+    else:
+        url = sys.argv[1]
+    c = Curl()
+    c.get(url)
+    print c.body()
+    print '='*74 + '\n'
+    print c.info()
+    c.close()
diff --git a/trunk/pycurl/setup.py b/trunk/pycurl/setup.py
new file mode 100644 (file)
index 0000000..841ff19
--- /dev/null
@@ -0,0 +1,199 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+"""Setup script for the PycURL module distribution."""
+
+PACKAGE = "pycurl"
+PY_PACKAGE = "curl"
+VERSION = "7.13.1"
+
+import glob, os, re, sys, string
+import distutils
+from distutils.core import setup
+from distutils.extension import Extension
+from distutils.util import split_quoted
+from distutils.version import LooseVersion
+
+include_dirs = []
+define_macros = []
+library_dirs = []
+libraries = []
+runtime_library_dirs = []
+extra_objects = []
+extra_compile_args = []
+extra_link_args = []
+
+
+def scan_argv(s, default):
+    p = default
+    i = 1
+    while i < len(sys.argv):
+        arg = sys.argv[i]
+        if string.find(arg, s) == 0:
+            p = arg[len(s):]
+            assert p, arg
+            del sys.argv[i]
+        else:
+            i = i + 1
+    ##print sys.argv
+    return p
+
+
+# append contents of an environment variable to library_dirs[]
+def add_libdirs(envvar, sep, fatal=0):
+    v = os.environ.get(envvar)
+    if not v:
+        return
+    for dir in string.split(v, sep):
+        dir = string.strip(dir)
+        if not dir:
+            continue
+        dir = os.path.normpath(dir)
+        if os.path.isdir(dir):
+            if not dir in library_dirs:
+                library_dirs.append(dir)
+        elif fatal:
+            print "FATAL: bad directory %s in environment variable %s" % (dir, envvar)
+            sys.exit(1)
+
+
+if sys.platform == "win32":
+    # Windows users have to configure the CURL_DIR path parameter to match
+    # their cURL source installation.  The path set here is just an example
+    # and thus unlikely to match your installation.
+    CURL_DIR = r"c:\src\build\pycurl\curl-7.13.1"
+    CURL_DIR = scan_argv("--curl-dir=", CURL_DIR)
+    print "Using curl directory:", CURL_DIR
+    assert os.path.isdir(CURL_DIR), "please check CURL_DIR in setup.py"
+    include_dirs.append(os.path.join(CURL_DIR, "include"))
+    extra_objects.append(os.path.join(CURL_DIR, "lib", "libcurl.lib"))
+    extra_link_args.extend(["gdi32.lib", "winmm.lib", "ws2_32.lib",])
+    add_libdirs("LIB", ";")
+    if string.find(sys.version, "MSC") >= 0:
+        extra_compile_args.append("-O2")
+        extra_compile_args.append("-GF")        # enable read-only string pooling
+        extra_compile_args.append("-WX")        # treat warnings as errors
+        extra_link_args.append("/opt:nowin98")  # use small section alignment
+else:
+    # Find out the rest the hard way
+    CURL_CONFIG = "curl-config"
+    CURL_CONFIG = scan_argv("--curl-config=", CURL_CONFIG)
+    d = os.popen("'%s' --version" % CURL_CONFIG).read()
+    if d:
+        d = string.strip(d)
+    if not d:
+        raise Exception, ("`%s' not found -- please install the libcurl development files" % CURL_CONFIG)
+    print "Using %s (%s)" % (CURL_CONFIG, d)
+    for e in split_quoted(os.popen("'%s' --cflags" % CURL_CONFIG).read()):
+        if e[:2] == "-I":
+            # do not add /usr/include
+            if not re.search(r"^\/+usr\/+include\/*$", e[2:]):
+                include_dirs.append(e[2:])
+        else:
+            extra_compile_args.append(e)
+    for e in split_quoted(os.popen("'%s' --libs" % CURL_CONFIG).read()):
+        if e[:2] == "-l":
+            libraries.append(e[2:])
+        elif e[:2] == "-L":
+            library_dirs.append(e[2:])
+        else:
+            extra_link_args.append(e)
+    if not libraries:
+        libraries.append("curl")
+    # Add extra compile flag for MacOS X
+    if sys.platform[:-1] == "darwin":
+        extra_link_args.append("-flat_namespace")
+
+
+###############################################################################
+
+def get_kw(**kw): return kw
+
+ext = Extension(
+    name=PACKAGE,
+    sources=[
+        os.path.join("src", "pycurl.c"),
+    ],
+    include_dirs=include_dirs,
+    define_macros=define_macros,
+    library_dirs=library_dirs,
+    libraries=libraries,
+    runtime_library_dirs=runtime_library_dirs,
+    extra_objects=extra_objects,
+    extra_compile_args=extra_compile_args,
+    extra_link_args=extra_link_args,
+)
+##print ext.__dict__; sys.exit(1)
+
+
+###############################################################################
+
+# prepare data_files
+
+def get_data_files():
+    # a list of tuples with (path to install to, a list of local files)
+    data_files = []
+    if sys.platform == "win32":
+        datadir = os.path.join("doc", PACKAGE)
+    else:
+        datadir = os.path.join("share", "doc", PACKAGE)
+    #
+    files = ["ChangeLog", "COPYING", "INSTALL", "README", "TODO",]
+    if files:
+        data_files.append((os.path.join(datadir), files))
+    files = glob.glob(os.path.join("doc", "*.html"))
+    if files:
+        data_files.append((os.path.join(datadir, "html"), files))
+    files = glob.glob(os.path.join("examples", "*.py"))
+    if files:
+        data_files.append((os.path.join(datadir, "examples"), files))
+    files = glob.glob(os.path.join("tests", "*.py"))
+    if files:
+        data_files.append((os.path.join(datadir, "tests"), files))
+    #
+    assert data_files
+    for install_dir, files in data_files:
+        assert files
+        for f in files:
+            assert os.path.isfile(f), (f, install_dir)
+    return data_files
+
+##print get_data_files(); sys.exit(1)
+
+
+###############################################################################
+
+setup_args = get_kw(
+    name=PACKAGE,
+    version=VERSION,
+    description="PycURL -- cURL library module for Python",
+    author="Kjetil Jacobsen, Markus F.X.J. Oberhumer",
+    author_email="kjetilja@cs.uit.no, markus@oberhumer.com",
+    maintainer="Kjetil Jacobsen, Markus F.X.J. Oberhumer",
+    maintainer_email="kjetilja@cs.uit.no, markus@oberhumer.com",
+    url="http://pycurl.sourceforge.net/",
+    license="GNU Lesser General Public License (LGPL)",
+    data_files=get_data_files(),
+    ext_modules=[ext],
+    long_description="""
+This module provides Python bindings for the cURL library.""",
+)
+
+if sys.version >= "2.2":
+    setup_args["packages"] = [PY_PACKAGE]
+    setup_args["package_dir"] = { PY_PACKAGE: os.path.join('python', 'curl') }
+
+
+##print distutils.__version__
+if LooseVersion(distutils.__version__) > LooseVersion("1.0.1"):
+    setup_args["platforms"] = "All"
+if LooseVersion(distutils.__version__) < LooseVersion("1.0.3"):
+    setup_args["licence"] = setup_args["license"]
+
+if __name__ == "__main__":
+    for o in ext.extra_objects:
+        assert os.path.isfile(o), o
+    # We can live with the deprecationwarning for a while
+    apply(setup, (), setup_args)
diff --git a/trunk/pycurl/setup_win32_ssl.py b/trunk/pycurl/setup_win32_ssl.py
new file mode 100644 (file)
index 0000000..1226ac1
--- /dev/null
@@ -0,0 +1,34 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import os, sys, string
+assert sys.platform == "win32", "Only for building on Win32 with SSL and zlib"
+
+
+CURL_DIR = r"c:\src\build\pycurl\curl-7.13.1-ssl"
+OPENSSL_DIR = r"c:\src\build\pycurl\openssl-0.9.7e"
+sys.argv.insert(1, "--curl-dir=" + CURL_DIR)
+
+from setup import *
+
+setup_args["name"] = "pycurl-ssl"
+
+
+for l in ("libeay32.lib", "ssleay32.lib",):
+    ext.extra_objects.append(os.path.join(OPENSSL_DIR, "out32", l))
+
+pool = "\\" + r"pool\win32\vc6" + "\\"
+if string.find(sys.version, "MSC v.1310") >= 0:
+    pool = "\\" + r"pool\win32\vc71" + "\\"
+ext.extra_objects.append(r"c:\src\pool\zlib-1.2.2" + pool + "zlib.lib")
+ext.extra_objects.append(r"c:\src\pool\c-ares-20041212" + pool + "ares.lib")
+ext.extra_objects.append(r"c:\src\pool\libidn-0.5.13" + pool + "idn.lib")
+
+
+if __name__ == "__main__":
+    for o in ext.extra_objects:
+        assert os.path.isfile(o), o
+    apply(setup, (), setup_args)
+
diff --git a/trunk/pycurl/src/Makefile b/trunk/pycurl/src/Makefile
new file mode 100644 (file)
index 0000000..a4828d3
--- /dev/null
@@ -0,0 +1,19 @@
+CC=gcc
+RM=rm
+CP=cp
+PYINCLUDE=/usr/include/python2.2
+CURLINCLUDE=/usr/include/curl
+INCLUDE=-I$(PYINCLUDE) -I$(CURLINCLUDE)
+LIBS=-L/usr/lib -lcurl
+LDOPTS=-shared
+CCOPTS=-g -O2 -Wall -Wstrict-prototypes -fPIC
+
+all:
+       $(CC) $(INCLUDE) $(CCOPTS) -c pycurl.c -o pycurl.o
+       $(CC) $(LIBS) $(LDOPTS) -lcurl pycurl.o -o pycurl.so
+
+install: all
+       $(CP) pycurl.so /usr/lib/python2.2/site-packages
+
+clean:
+       $(RM) -f *~ *.o *obj *.so
diff --git a/trunk/pycurl/src/pycurl.c b/trunk/pycurl/src/pycurl.c
new file mode 100644 (file)
index 0000000..25f9d61
--- /dev/null
@@ -0,0 +1,2828 @@
+/* $Id$ */
+
+/* PycURL -- cURL Python module
+ *
+ * Authors:
+ *  Copyright (C) 2001-2005 by Kjetil Jacobsen <kjetilja at cs.uit.no>
+ *  Copyright (C) 2001-2005 by Markus F.X.J. Oberhumer <markus at oberhumer.com>
+ *
+ * Contributions:
+ *  Tino Lange <Tino.Lange at gmx.de>
+ *  Matt King <matt at gnik.com>
+ *  Conrad Steenberg <conrad at hep.caltech.edu>
+ *  Amit Mongia <amit_mongia at hotmail.com>
+ *  Eric S. Raymond <esr at thyrsus.com>
+ *  Martin Muenstermann <mamuema at sourceforge.net>
+ *  Domenico Andreoli <cavok at libero.it>
+ *
+ * See file COPYING for license information.
+ *
+ * Some quick info on Python's refcount:
+ *   Py_BuildValue          does incref the item(s)
+ *   PyArg_ParseTuple       does NOT incref the item
+ *   PyList_Append          does incref the item
+ *   PyTuple_SET_ITEM       does NOT incref the item
+ *   PyTuple_SetItem        does NOT incref the item
+ *   PyXXX_GetItem          returns a borrowed reference
+ */
+
+#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
+#  define WIN32 1
+#endif
+#if defined(WIN32)
+#  define CURL_STATICLIB 1
+#endif
+#include <Python.h>
+#include <sys/types.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <limits.h>
+#include <curl/curl.h>
+#include <curl/multi.h>
+#undef NDEBUG
+#include <assert.h>
+
+/* Ensure we have updated versions */
+#if !defined(PY_VERSION_HEX) || (PY_VERSION_HEX < 0x02020000)
+#  error "Need Python version 2.2 or greater to compile pycurl."
+#endif
+#if !defined(LIBCURL_VERSION_NUM) || (LIBCURL_VERSION_NUM < 0x070d01)
+#  error "Need libcurl version 7.13.1 or greater to compile pycurl."
+#endif
+
+#undef UNUSED
+#define UNUSED(var)     ((void)&var)
+
+#undef COMPILE_TIME_ASSERT
+#define COMPILE_TIME_ASSERT(expr) \
+     { typedef int compile_time_assert_fail__[1 - 2 * !(expr)]; }
+
+
+/* Calculate the number of OBJECTPOINT options we need to store */
+#define OPTIONS_SIZE    ((int)CURLOPT_LASTENTRY % 10000)
+static int OPT_INDEX(int o)
+{
+    assert(o >= CURLOPTTYPE_OBJECTPOINT);
+    assert(o < CURLOPTTYPE_OBJECTPOINT + OPTIONS_SIZE);
+    return o - CURLOPTTYPE_OBJECTPOINT;
+}
+
+
+static PyObject *ErrorObject = NULL;
+static PyTypeObject *p_Curl_Type = NULL;
+static PyTypeObject *p_CurlMulti_Type = NULL;
+
+typedef struct {
+    PyObject_HEAD
+    PyObject *dict;                 /* Python attributes dictionary */
+    CURLM *multi_handle;
+    PyThreadState *state;
+    fd_set read_fd_set;
+    fd_set write_fd_set;
+    fd_set exc_fd_set;
+} CurlMultiObject;
+
+typedef struct {
+    PyObject_HEAD
+    PyObject *dict;                 /* Python attributes dictionary */
+    CURL *handle;
+    PyThreadState *state;
+    CurlMultiObject *multi_stack;
+    struct curl_httppost *httppost;
+    struct curl_slist *httpheader;
+    struct curl_slist *http200aliases;
+    struct curl_slist *quote;
+    struct curl_slist *postquote;
+    struct curl_slist *prequote;
+    struct curl_slist *source_prequote;
+    struct curl_slist *source_postquote;
+    /* callbacks */
+    PyObject *w_cb;
+    PyObject *h_cb;
+    PyObject *r_cb;
+    PyObject *pro_cb;
+    PyObject *debug_cb;
+    PyObject *ioctl_cb;
+    /* file objects */
+    PyObject *readdata_fp;
+    PyObject *writedata_fp;
+    PyObject *writeheader_fp;
+    /* misc */
+    void *options[OPTIONS_SIZE];    /* for OBJECTPOINT options */
+    char error[CURL_ERROR_SIZE+1];
+} CurlObject;
+
+/* Throw exception based on return value `res' and `self->error' */
+#define CURLERROR_RETVAL() do {\
+    PyObject *v; \
+    self->error[sizeof(self->error) - 1] = 0; \
+    v = Py_BuildValue("(is)", (int) (res), self->error); \
+    if (v != NULL) { PyErr_SetObject(ErrorObject, v); Py_DECREF(v); } \
+    return NULL; \
+} while (0)
+
+/* Throw exception based on return value `res' and custom message */
+#define CURLERROR_MSG(msg) do {\
+    PyObject *v; const char *m = (msg); \
+    v = Py_BuildValue("(is)", (int) (res), (m)); \
+    if (v != NULL) { PyErr_SetObject(ErrorObject, v); Py_DECREF(v); } \
+    return NULL; \
+} while (0)
+
+
+/* Safe XDECREF for object states that handles nested deallocations */
+#define ZAP(v) do {\
+    PyObject *tmp = (PyObject *)(v); \
+    (v) = NULL; \
+    Py_XDECREF(tmp); \
+} while (0)
+
+
+/*************************************************************************
+// python utility functions
+**************************************************************************/
+
+#if (PY_VERSION_HEX < 0x02030000) && !defined(PY_LONG_LONG)
+#  define PY_LONG_LONG LONG_LONG
+#endif
+
+/* Like PyString_AsString(), but set an exception if the string contains
+ * embedded NULs. Actually PyString_AsStringAndSize() already does that for
+ * us if the `len' parameter is NULL - see Objects/stringobject.c.
+ */
+
+static char *PyString_AsString_NoNUL(PyObject *obj)
+{
+    char *s = NULL;
+    int r;
+    r = PyString_AsStringAndSize(obj, &s, NULL);
+    if (r != 0)
+        return NULL;    /* exception already set */
+    assert(s != NULL);
+    return s;
+}
+
+
+/* Convert a curl slist (a list of strings) to a Python list.
+ * In case of error return NULL with an exception set.
+ */
+static PyObject *convert_slist(struct curl_slist *slist, int free_flags)
+{
+    PyObject *ret = NULL;
+
+    ret = PyList_New(0);
+    if (ret == NULL) goto error;
+
+    for ( ; slist != NULL; slist = slist->next) {
+        PyObject *v = NULL;
+
+        if (slist->data != NULL) {
+            v = PyString_FromString(slist->data);
+            if (v == NULL || PyList_Append(ret, v) != 0) {
+                Py_XDECREF(v);
+                goto error;
+            }
+            Py_DECREF(v);
+        }
+    }
+
+    if ((free_flags & 1) && slist)
+        curl_slist_free_all(slist);
+    return ret;
+
+error:
+    Py_XDECREF(ret);
+    if ((free_flags & 2) && slist)
+        curl_slist_free_all(slist);
+    return NULL;
+}
+
+
+/*************************************************************************
+// static utility functions
+**************************************************************************/
+
+static PyThreadState *
+get_thread_state(const CurlObject *self)
+{
+    /* Get the thread state for callbacks to run in.
+     * This is either `self->state' when running inside perform() or
+     * `self->multi_stack->state' when running inside multi_perform().
+     * When the result is != NULL we also implicitly assert
+     * a valid `self->handle'.
+     */
+    if (self == NULL)
+        return NULL;
+    assert(self->ob_type == p_Curl_Type);
+    if (self->state != NULL)
+    {
+        /* inside perform() */
+        assert(self->handle != NULL);
+        if (self->multi_stack != NULL) {
+            assert(self->multi_stack->state == NULL);
+        }
+        return self->state;
+    }
+    if (self->multi_stack != NULL && self->multi_stack->state != NULL)
+    {
+        /* inside multi_perform() */
+        assert(self->handle != NULL);
+        assert(self->multi_stack->multi_handle != NULL);
+        assert(self->state == NULL);
+        return self->multi_stack->state;
+    }
+    return NULL;
+}
+
+
+/* assert some CurlObject invariants */
+static void
+assert_curl_state(const CurlObject *self)
+{
+    assert(self != NULL);
+    assert(self->ob_type == p_Curl_Type);
+    (void) get_thread_state(self);
+}
+
+
+/* assert some CurlMultiObject invariants */
+static void
+assert_multi_state(const CurlMultiObject *self)
+{
+    assert(self != NULL);
+    assert(self->ob_type == p_CurlMulti_Type);
+    if (self->state != NULL) {
+        assert(self->multi_handle != NULL);
+    }
+}
+
+
+/* check state for methods */
+static int
+check_curl_state(const CurlObject *self, int flags, const char *name)
+{
+    assert_curl_state(self);
+    if ((flags & 1) && self->handle == NULL) {
+        PyErr_Format(ErrorObject, "cannot invoke %s() - no curl handle", name);
+        return -1;
+    }
+    if ((flags & 2) && get_thread_state(self) != NULL) {
+        PyErr_Format(ErrorObject, "cannot invoke %s() - perform() is currently running", name);
+        return -1;
+    }
+    return 0;
+}
+
+static int
+check_multi_state(const CurlMultiObject *self, int flags, const char *name)
+{
+    assert_multi_state(self);
+    if ((flags & 1) && self->multi_handle == NULL) {
+        PyErr_Format(ErrorObject, "cannot invoke %s() - no multi handle", name);
+        return -1;
+    }
+    if ((flags & 2) && self->state != NULL) {
+        PyErr_Format(ErrorObject, "cannot invoke %s() - multi_perform() is currently running", name);
+        return -1;
+    }
+    return 0;
+}
+
+
+/*************************************************************************
+// CurlObject
+**************************************************************************/
+
+/* --------------- construct/destruct (i.e. open/close) --------------- */
+
+/* Allocate a new python curl object */
+static CurlObject *
+util_curl_new(void)
+{
+    CurlObject *self;
+
+    self = (CurlObject *) PyObject_GC_New(CurlObject, p_Curl_Type);
+    if (self == NULL)
+        return NULL;
+    PyObject_GC_Track(self);
+
+    /* Set python curl object initial values */
+    self->dict = NULL;
+    self->handle = NULL;
+    self->state = NULL;
+    self->multi_stack = NULL;
+    self->httppost = NULL;
+    self->httpheader = NULL;
+    self->http200aliases = NULL;
+    self->quote = NULL;
+    self->postquote = NULL;
+    self->prequote = NULL;
+    self->source_postquote = NULL;
+    self->source_prequote = NULL;
+
+    /* Set callback pointers to NULL by default */
+    self->w_cb = NULL;
+    self->h_cb = NULL;
+    self->r_cb = NULL;
+    self->pro_cb = NULL;
+    self->debug_cb = NULL;
+    self->ioctl_cb = NULL;
+
+    /* Set file object pointers to NULL by default */
+    self->readdata_fp = NULL;
+    self->writedata_fp = NULL;
+    self->writeheader_fp = NULL;
+
+    /* Zero string pointer memory buffer used by setopt */
+    memset(self->options, 0, sizeof(self->options));
+    memset(self->error, 0, sizeof(self->error));
+
+    return self;
+}
+
+
+/* constructor - this is a module-level function returning a new instance */
+static CurlObject *
+do_curl_new(PyObject *dummy)
+{
+    CurlObject *self = NULL;
+    int res;
+    char *s = NULL;
+
+    UNUSED(dummy);
+
+    /* Allocate python curl object */
+    self = util_curl_new();
+    if (self == NULL)
+        return NULL;
+
+    /* Initialize curl handle */
+    self->handle = curl_easy_init();
+    if (self->handle == NULL)
+        goto error;
+
+    /* Set curl error buffer and zero it */
+    res = curl_easy_setopt(self->handle, CURLOPT_ERRORBUFFER, self->error);
+    if (res != CURLE_OK)
+        goto error;
+    memset(self->error, 0, sizeof(self->error));
+
+    /* Set backreference */
+    res = curl_easy_setopt(self->handle, CURLOPT_PRIVATE, (char *) self);
+    if (res != CURLE_OK)
+        goto error;
+
+    /* Enable NOPROGRESS by default, i.e. no progress output */
+    res = curl_easy_setopt(self->handle, CURLOPT_NOPROGRESS, (long)1);
+    if (res != CURLE_OK)
+        goto error;
+
+    /* Disable VERBOSE by default, i.e. no verbose output */
+    res = curl_easy_setopt(self->handle, CURLOPT_VERBOSE, (long)0);
+    if (res != CURLE_OK)
+        goto error;
+
+    /* Set FTP_ACCOUNT to NULL by default */
+    res = curl_easy_setopt(self->handle, CURLOPT_FTP_ACCOUNT, NULL);
+    if (res != CURLE_OK)
+        goto error;
+
+    /* Set default USERAGENT */
+    s = (char *) malloc(7 + strlen(LIBCURL_VERSION) + 1);
+    if (s == NULL)
+        goto error;
+    strcpy(s, "PycURL/"); strcpy(s+7, LIBCURL_VERSION);
+    res = curl_easy_setopt(self->handle, CURLOPT_USERAGENT, (char *) s);
+    if (res != CURLE_OK) {
+        free(s);
+        goto error;
+    }
+    self->options[ OPT_INDEX(CURLOPT_USERAGENT) ] = s; s = NULL;
+
+    /* Success - return new object */
+    return self;
+
+error:
+    Py_DECREF(self);    /* this also closes self->handle */
+    PyErr_SetString(ErrorObject, "initializing curl failed");
+    return NULL;
+}
+
+
+/* util function shared by close() and clear() */
+static void
+util_curl_xdecref(CurlObject *self, int flags, CURL *handle)
+{
+    if (flags & 1) {
+        /* Decrement refcount for attributes dictionary. */
+        ZAP(self->dict);
+    }
+
+    if (flags & 2) {
+        /* Decrement refcount for multi_stack. */
+        if (self->multi_stack != NULL) {
+            CurlMultiObject *multi_stack = self->multi_stack;
+            self->multi_stack = NULL;
+            if (multi_stack->multi_handle != NULL && handle != NULL) {
+                (void) curl_multi_remove_handle(multi_stack->multi_handle, handle);
+            }
+            Py_DECREF(multi_stack);
+        }
+    }
+
+    if (flags & 4) {
+        /* Decrement refcount for python callbacks. */
+        ZAP(self->w_cb);
+        ZAP(self->h_cb);
+        ZAP(self->r_cb);
+        ZAP(self->pro_cb);
+        ZAP(self->debug_cb);
+        ZAP(self->ioctl_cb);
+    }
+
+    if (flags & 8) {
+        /* Decrement refcount for python file objects. */
+        ZAP(self->readdata_fp);
+        ZAP(self->writedata_fp);
+        ZAP(self->writeheader_fp);
+    }
+}
+
+
+static void
+util_curl_close(CurlObject *self)
+{
+    CURL *handle;
+    int i;
+
+    /* Zero handle and thread-state to disallow any operations to be run
+     * from now on */
+    assert(self != NULL);
+    assert(self->ob_type == p_Curl_Type);
+    handle = self->handle;
+    self->handle = NULL;
+    if (handle == NULL) {
+        /* Some paranoia assertions just to make sure the object
+         * deallocation problem is finally really fixed... */
+        assert(self->state == NULL);
+        assert(self->multi_stack == NULL);
+        return;             /* already closed */
+    }
+    self->state = NULL;
+
+    /* Decref multi stuff which uses this handle */
+    util_curl_xdecref(self, 2, handle);
+
+    /* Cleanup curl handle - must be done without the gil */
+    Py_BEGIN_ALLOW_THREADS
+    curl_easy_cleanup(handle);
+    Py_END_ALLOW_THREADS
+    handle = NULL;
+
+    /* Decref callbacks and file handles */
+    util_curl_xdecref(self, 4 | 8, handle);
+
+    /* Free all variables allocated by setopt */
+#undef SFREE
+#define SFREE(v)   if ((v) != NULL) (curl_formfree(v), (v) = NULL)
+    SFREE(self->httppost);
+#undef SFREE
+#define SFREE(v)   if ((v) != NULL) (curl_slist_free_all(v), (v) = NULL)
+    SFREE(self->httpheader);
+    SFREE(self->http200aliases);
+    SFREE(self->quote);
+    SFREE(self->postquote);
+    SFREE(self->prequote);
+    SFREE(self->source_postquote);
+    SFREE(self->source_prequote);
+#undef SFREE
+
+    /* Last, free the options.  This must be done after the curl handle
+     * is closed since libcurl assumes that some options are valid when
+     * invoking curl_easy_cleanup(). */
+    for (i = 0; i < OPTIONS_SIZE; i++) {
+        if (self->options[i] != NULL) {
+            free(self->options[i]);
+            self->options[i] = NULL;
+        }
+    }
+}
+
+
+static void
+do_curl_dealloc(CurlObject *self)
+{
+    PyObject_GC_UnTrack(self);
+    Py_TRASHCAN_SAFE_BEGIN(self)
+
+    ZAP(self->dict);
+    util_curl_close(self);
+
+    PyObject_GC_Del(self);
+    Py_TRASHCAN_SAFE_END(self)
+}
+
+
+static PyObject *
+do_curl_close(CurlObject *self)
+{
+    if (check_curl_state(self, 2, "close") != 0) {
+        return NULL;
+    }
+    util_curl_close(self);
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+static PyObject *
+do_curl_errstr(CurlObject *self)
+{
+    if (check_curl_state(self, 1 | 2, "errstr") != 0) {
+        return NULL;
+    }
+    self->error[sizeof(self->error) - 1] = 0;
+    return PyString_FromString(self->error);
+}
+
+
+/* --------------- GC support --------------- */
+
+/* Drop references that may have created reference cycles. */
+static int
+do_curl_clear(CurlObject *self)
+{
+    assert(get_thread_state(self) == NULL);
+    util_curl_xdecref(self, 1 | 2 | 4 | 8, self->handle);
+    return 0;
+}
+
+/* Traverse all refcounted objects. */
+static int
+do_curl_traverse(CurlObject *self, visitproc visit, void *arg)
+{
+    int err;
+#undef VISIT
+#define VISIT(v)    if ((v) != NULL && ((err = visit(v, arg)) != 0)) return err
+
+    VISIT(self->dict);
+    VISIT((PyObject *) self->multi_stack);
+
+    VISIT(self->w_cb);
+    VISIT(self->h_cb);
+    VISIT(self->r_cb);
+    VISIT(self->pro_cb);
+    VISIT(self->debug_cb);
+    VISIT(self->ioctl_cb);
+
+    VISIT(self->readdata_fp);
+    VISIT(self->writedata_fp);
+    VISIT(self->writeheader_fp);
+
+    return 0;
+#undef VISIT
+}
+
+
+/* --------------- perform --------------- */
+
+static PyObject *
+do_curl_perform(CurlObject *self)
+{
+    int res;
+
+    if (check_curl_state(self, 1 | 2, "perform") != 0) {
+        return NULL;
+    }
+
+    /* Save handle to current thread (used as context for python callbacks) */
+    self->state = PyThreadState_Get();
+    assert(self->state != NULL);
+
+    /* Release global lock and start */
+    Py_BEGIN_ALLOW_THREADS
+    res = curl_easy_perform(self->handle);
+    Py_END_ALLOW_THREADS
+
+    /* Zero thread-state to disallow callbacks to be run from now on */
+    self->state = NULL;
+
+    if (res != CURLE_OK) {
+        CURLERROR_RETVAL();
+    }
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+/* --------------- callback handlers --------------- */
+
+/* IMPORTANT NOTE: due to threading issues, we cannot call _any_ Python
+ * function without acquiring the thread state in the callback handlers.
+ */
+
+static size_t
+util_write_callback(int flags, char *ptr, size_t size, size_t nmemb, void *stream)
+{
+    CurlObject *self;
+    PyThreadState *tmp_state;
+    PyObject *arglist;
+    PyObject *result = NULL;
+    size_t ret = 0;     /* assume error */
+    PyObject *cb;
+    int total_size;
+
+    /* acquire thread */
+    self = (CurlObject *)stream;
+    tmp_state = get_thread_state(self);
+    if (tmp_state == NULL)
+        return ret;
+    PyEval_AcquireThread(tmp_state);
+
+    /* check args */
+    cb = flags ? self->h_cb : self->w_cb;
+    if (cb == NULL)
+        goto silent_error;
+    if (size <= 0 || nmemb <= 0)
+        goto done;
+    total_size = (int)(size * nmemb);
+    if (total_size < 0 || (size_t)total_size / size != nmemb) {
+        PyErr_SetString(ErrorObject, "integer overflow in write callback");
+        goto verbose_error;
+    }
+
+    /* run callback */
+    arglist = Py_BuildValue("(s#)", ptr, total_size);
+    if (arglist == NULL)
+        goto verbose_error;
+    result = PyEval_CallObject(cb, arglist);
+    Py_DECREF(arglist);
+    if (result == NULL)
+        goto verbose_error;
+
+    /* handle result */
+    if (result == Py_None) {
+        ret = total_size;           /* None means success */
+    }
+    else if (PyInt_Check(result)) {
+        long obj_size = PyInt_AsLong(result);
+        if (obj_size < 0 || obj_size > total_size) {
+            PyErr_Format(ErrorObject, "invalid return value for write callback %ld %ld", (long)obj_size, (long)total_size);
+            goto verbose_error;
+        }
+        ret = (size_t) obj_size;    /* success */
+    }
+    else if (PyLong_Check(result)) {
+        long obj_size = PyLong_AsLong(result);
+        if (obj_size < 0 || obj_size > total_size) {
+            PyErr_Format(ErrorObject, "invalid return value for write callback %ld %ld", (long)obj_size, (long)total_size);
+            goto verbose_error;
+        }
+        ret = (size_t) obj_size;    /* success */
+    }
+    else {
+        PyErr_SetString(ErrorObject, "write callback must return int or None");
+        goto verbose_error;
+    }
+
+done:
+silent_error:
+    Py_XDECREF(result);
+    PyEval_ReleaseThread(tmp_state);
+    return ret;
+verbose_error:
+    PyErr_Print();
+    goto silent_error;
+}
+
+
+static size_t
+write_callback(char *ptr, size_t size, size_t nmemb, void *stream)
+{
+    return util_write_callback(0, ptr, size, nmemb, stream);
+}
+
+static size_t
+header_callback(char *ptr, size_t size, size_t nmemb, void *stream)
+{
+    return util_write_callback(1, ptr, size, nmemb, stream);
+}
+
+
+static size_t
+read_callback(char *ptr, size_t size, size_t nmemb, void *stream)
+{
+    CurlObject *self;
+    PyThreadState *tmp_state;
+    PyObject *arglist;
+    PyObject *result = NULL;
+
+    size_t ret = CURL_READFUNC_ABORT;     /* assume error, this actually works */
+    int total_size;
+
+    /* acquire thread */
+    self = (CurlObject *)stream;
+    tmp_state = get_thread_state(self);
+    if (tmp_state == NULL)
+        return ret;
+    PyEval_AcquireThread(tmp_state);
+
+    /* check args */
+    if (self->r_cb == NULL)
+        goto silent_error;
+    if (size <= 0 || nmemb <= 0)
+        goto done;
+    total_size = (int)(size * nmemb);
+    if (total_size < 0 || (size_t)total_size / size != nmemb) {
+        PyErr_SetString(ErrorObject, "integer overflow in read callback");
+        goto verbose_error;
+    }
+
+    /* run callback */
+    arglist = Py_BuildValue("(i)", total_size);
+    if (arglist == NULL)
+        goto verbose_error;
+    result = PyEval_CallObject(self->r_cb, arglist);
+    Py_DECREF(arglist);
+    if (result == NULL)
+        goto verbose_error;
+
+    /* handle result */
+    if (PyString_Check(result)) {
+        char *buf = NULL;
+        int obj_size = -1;
+        int r;
+        r = PyString_AsStringAndSize(result, &buf, &obj_size);
+        if (r != 0 || obj_size < 0 || obj_size > total_size) {
+            PyErr_Format(ErrorObject, "invalid return value for read callback %ld %ld", (long)obj_size, (long)total_size);
+            goto verbose_error;
+        }
+        memcpy(ptr, buf, obj_size);
+        ret = obj_size;             /* success */
+    }
+    else if (PyInt_Check(result)) {
+        long r = PyInt_AsLong(result);
+        if (r != CURL_READFUNC_ABORT) {
+            goto type_error;
+        }
+        /* ret is CURL_READUNC_ABORT */
+    }
+    else if (PyLong_Check(result)) {
+        long r = PyLong_AsLong(result);
+        if (r != CURL_READFUNC_ABORT) {
+            goto type_error;
+        }
+        /* ret is CURL_READUNC_ABORT */
+    }
+    else {
+    type_error:
+        PyErr_SetString(ErrorObject, "read callback must return string");
+        goto verbose_error;
+    }
+
+done:
+silent_error:
+    Py_XDECREF(result);
+    PyEval_ReleaseThread(tmp_state);
+    return ret;
+verbose_error:
+    PyErr_Print();
+    goto silent_error;
+}
+
+
+static int
+progress_callback(void *stream,
+                  double dltotal, double dlnow, double ultotal, double ulnow)
+{
+    CurlObject *self;
+    PyThreadState *tmp_state;
+    PyObject *arglist;
+    PyObject *result = NULL;
+    int ret = 1;       /* assume error */
+
+    /* acquire thread */
+    self = (CurlObject *)stream;
+    tmp_state = get_thread_state(self);
+    if (tmp_state == NULL)
+        return ret;
+    PyEval_AcquireThread(tmp_state);
+
+    /* check args */
+    if (self->pro_cb == NULL)
+        goto silent_error;
+
+    /* run callback */
+    arglist = Py_BuildValue("(dddd)", dltotal, dlnow, ultotal, ulnow);
+    if (arglist == NULL)
+        goto verbose_error;
+    result = PyEval_CallObject(self->pro_cb, arglist);
+    Py_DECREF(arglist);
+    if (result == NULL)
+        goto verbose_error;
+
+    /* handle result */
+    if (result == Py_None) {
+        ret = 0;        /* None means success */
+    }
+    else if (PyInt_Check(result)) {
+        ret = (int) PyInt_AsLong(result);
+    }
+    else {
+        ret = PyObject_IsTrue(result);  /* FIXME ??? */
+    }
+
+silent_error:
+    Py_XDECREF(result);
+    PyEval_ReleaseThread(tmp_state);
+    return ret;
+verbose_error:
+    PyErr_Print();
+    goto silent_error;
+}
+
+
+static int
+debug_callback(CURL *curlobj, curl_infotype type,
+               char *buffer, size_t total_size, void *stream)
+{
+    CurlObject *self;
+    PyThreadState *tmp_state;
+    PyObject *arglist;
+    PyObject *result = NULL;
+    int ret = 0;       /* always success */
+
+    UNUSED(curlobj);
+
+    /* acquire thread */
+    self = (CurlObject *)stream;
+    tmp_state = get_thread_state(self);
+    if (tmp_state == NULL)
+        return ret;
+    PyEval_AcquireThread(tmp_state);
+
+    /* check args */
+    if (self->debug_cb == NULL)
+        goto silent_error;
+    if ((int)total_size < 0 || (size_t)((int)total_size) != total_size) {
+        PyErr_SetString(ErrorObject, "integer overflow in debug callback");
+        goto verbose_error;
+    }
+
+    /* run callback */
+    arglist = Py_BuildValue("(is#)", (int)type, buffer, (int)total_size);
+    if (arglist == NULL)
+        goto verbose_error;
+    result = PyEval_CallObject(self->debug_cb, arglist);
+    Py_DECREF(arglist);
+    if (result == NULL)
+        goto verbose_error;
+
+    /* return values from debug callbacks should be ignored */
+
+silent_error:
+    Py_XDECREF(result);
+    PyEval_ReleaseThread(tmp_state);
+    return ret;
+verbose_error:
+    PyErr_Print();
+    goto silent_error;
+}
+
+
+static curlioerr
+ioctl_callback(CURL *curlobj, int cmd, void *stream)
+{
+    CurlObject *self;
+    PyThreadState *tmp_state;
+    PyObject *arglist;
+    PyObject *result = NULL;
+    int ret = CURLIOE_FAILRESTART;       /* assume error */
+
+    UNUSED(curlobj);
+
+    /* acquire thread */
+    self = (CurlObject *)stream;
+    tmp_state = get_thread_state(self);
+    if (tmp_state == NULL)
+        return (curlioerr) ret;
+    PyEval_AcquireThread(tmp_state);
+
+    /* check args */
+    if (self->ioctl_cb == NULL)
+        goto silent_error;
+
+    /* run callback */
+    arglist = Py_BuildValue("(i)", (int)cmd);
+    if (arglist == NULL)
+        goto verbose_error;
+    result = PyEval_CallObject(self->ioctl_cb, arglist);
+    Py_DECREF(arglist);
+    if (result == NULL)
+        goto verbose_error;
+
+    /* handle result */
+    if (result == Py_None) {
+        ret = CURLIOE_OK;        /* None means success */
+    }
+    else if (PyInt_Check(result)) {
+        ret = (int) PyInt_AsLong(result);
+        if (ret >= CURLIOE_LAST || ret < 0) {
+            PyErr_SetString(ErrorObject, "ioctl callback returned invalid value");
+            goto verbose_error;
+        }
+    }
+
+silent_error:
+    Py_XDECREF(result);
+    PyEval_ReleaseThread(tmp_state);
+    return (curlioerr) ret;
+verbose_error:
+    PyErr_Print();
+    goto silent_error;
+}
+
+
+/* --------------- unsetopt/setopt/getinfo --------------- */
+
+static PyObject *
+util_curl_unsetopt(CurlObject *self, int option)
+{
+    int res;
+    int opt_index = -1;
+
+#define SETOPT2(o,x) \
+    if ((res = curl_easy_setopt(self->handle, (o), (x))) != CURLE_OK) goto error
+#define SETOPT(x)   SETOPT2((CURLoption)option, (x))
+
+    /* FIXME: implement more options. Have to carefully check lib/url.c in the
+     *   libcurl source code to see if it's actually safe to simply
+     *   unset the option. */
+    switch (option)
+    {
+    case CURLOPT_HTTPPOST:
+        SETOPT((void *) 0);
+        curl_formfree(self->httppost);
+        self->httppost = NULL;
+        /* FIXME: what about data->set.httpreq ?? */
+        break;
+    case CURLOPT_INFILESIZE:
+        SETOPT((long) -1);
+        break;
+    case CURLOPT_WRITEHEADER:
+        SETOPT((void *) 0);
+        ZAP(self->writeheader_fp);
+        break;
+    case CURLOPT_CAINFO:
+    case CURLOPT_CAPATH:
+    case CURLOPT_COOKIE:
+    case CURLOPT_COOKIEJAR:
+    case CURLOPT_CUSTOMREQUEST:
+    case CURLOPT_EGDSOCKET:
+    case CURLOPT_FTPPORT:
+    case CURLOPT_PROXYUSERPWD:
+    case CURLOPT_RANDOM_FILE:
+    case CURLOPT_SSL_CIPHER_LIST:
+    case CURLOPT_USERPWD:
+        SETOPT((char *) 0);
+        opt_index = OPT_INDEX(option);
+        break;
+
+    /* info: we explicitly list unsupported options here */
+    case CURLOPT_COOKIEFILE:
+    default:
+        PyErr_SetString(PyExc_TypeError, "unsetopt() is not supported for this option");
+        return NULL;
+    }
+
+    if (opt_index >= 0 && self->options[opt_index] != NULL) {
+        free(self->options[opt_index]);
+        self->options[opt_index] = NULL;
+    }
+
+    Py_INCREF(Py_None);
+    return Py_None;
+
+error:
+    CURLERROR_RETVAL();
+
+#undef SETOPT
+#undef SETOPT2
+}
+
+
+static PyObject *
+do_curl_unsetopt(CurlObject *self, PyObject *args)
+{
+    int option;
+
+    if (!PyArg_ParseTuple(args, "i:unsetopt", &option)) {
+        return NULL;
+    }
+    if (check_curl_state(self, 1 | 2, "unsetopt") != 0) {
+        return NULL;
+    }
+
+    /* early checks of option value */
+    if (option <= 0)
+        goto error;
+    if (option >= (int)CURLOPTTYPE_OFF_T + OPTIONS_SIZE)
+        goto error;
+    if (option % 10000 >= OPTIONS_SIZE)
+        goto error;
+
+    return util_curl_unsetopt(self, option);
+
+error:
+    PyErr_SetString(PyExc_TypeError, "invalid arguments to unsetopt");
+    return NULL;
+}
+
+
+static PyObject *
+do_curl_setopt(CurlObject *self, PyObject *args)
+{
+    int option;
+    PyObject *obj;
+    int res;
+
+    if (!PyArg_ParseTuple(args, "iO:setopt", &option, &obj))
+        return NULL;
+    if (check_curl_state(self, 1 | 2, "setopt") != 0)
+        return NULL;
+
+    /* early checks of option value */
+    if (option <= 0)
+        goto error;
+    if (option >= (int)CURLOPTTYPE_OFF_T + OPTIONS_SIZE)
+        goto error;
+    if (option % 10000 >= OPTIONS_SIZE)
+        goto error;
+
+#if 0 /* XXX - should we ??? */
+    /* Handle the case of None */
+    if (obj == Py_None) {
+        return util_curl_unsetopt(self, option);
+    }
+#endif
+
+    /* Handle the case of string arguments */
+    if (PyString_Check(obj)) {
+        char *str = NULL;
+        int len = -1;
+        char *buf;
+        int opt_index;
+
+        /* Check that the option specified a string as well as the input */
+        switch (option) {
+        case CURLOPT_CAINFO:
+        case CURLOPT_CAPATH:
+        case CURLOPT_COOKIE:
+        case CURLOPT_COOKIEFILE:
+        case CURLOPT_COOKIEJAR:
+        case CURLOPT_CUSTOMREQUEST:
+        case CURLOPT_EGDSOCKET:
+        case CURLOPT_ENCODING:
+        case CURLOPT_FTPPORT:
+        case CURLOPT_INTERFACE:
+        case CURLOPT_KRB4LEVEL:
+        case CURLOPT_NETRC_FILE:
+        case CURLOPT_PROXY:
+        case CURLOPT_PROXYUSERPWD:
+        case CURLOPT_RANDOM_FILE:
+        case CURLOPT_RANGE:
+        case CURLOPT_REFERER:
+        case CURLOPT_SSLCERT:
+        case CURLOPT_SSLCERTTYPE:
+        case CURLOPT_SSLENGINE:
+        case CURLOPT_SSLKEY:
+        case CURLOPT_SSLKEYPASSWD:
+        case CURLOPT_SSLKEYTYPE:
+        case CURLOPT_SSL_CIPHER_LIST:
+        case CURLOPT_URL:
+        case CURLOPT_USERAGENT:
+        case CURLOPT_USERPWD:
+        case CURLOPT_SOURCE_HOST:
+        case CURLOPT_SOURCE_USERPWD:
+        case CURLOPT_SOURCE_PATH:
+/* FIXME: check if more of these options allow binary data */
+            str = PyString_AsString_NoNUL(obj);
+            if (str == NULL)
+                return NULL;
+            break;
+        case CURLOPT_POSTFIELDS:
+            if (PyString_AsStringAndSize(obj, &str, &len) != 0)
+                return NULL;
+            /* automatically set POSTFIELDSIZE */
+            res = curl_easy_setopt(self->handle, CURLOPT_POSTFIELDSIZE, (long)len);
+            if (res != CURLE_OK) {
+                CURLERROR_RETVAL();
+            }
+            break;
+        default:
+            PyErr_SetString(PyExc_TypeError, "strings are not supported for this option");
+            return NULL;
+        }
+        /* Allocate memory to hold the string */
+        assert(str != NULL);
+        if (len <= 0)
+            buf = strdup(str);
+        else {
+            buf = (char *) malloc(len);
+            if (buf) memcpy(buf, str, len);
+        }
+        if (buf == NULL)
+            return PyErr_NoMemory();
+        /* Call setopt */
+        res = curl_easy_setopt(self->handle, (CURLoption)option, buf);
+        /* Check for errors */
+        if (res != CURLE_OK) {
+            free(buf);
+            CURLERROR_RETVAL();
+        }
+        /* Save allocated option buffer */
+        opt_index = OPT_INDEX(option);
+        if (self->options[opt_index] != NULL) {
+            free(self->options[opt_index]);
+            self->options[opt_index] = NULL;
+        }
+        self->options[opt_index] = buf;
+        Py_INCREF(Py_None);
+        return Py_None;
+    }
+
+#define IS_LONG_OPTION(o)   (o < CURLOPTTYPE_OBJECTPOINT)
+#define IS_OFF_T_OPTION(o)  (o >= CURLOPTTYPE_OFF_T)
+
+    /* Handle the case of integer arguments */
+    if (PyInt_Check(obj)) {
+        long d = PyInt_AsLong(obj);
+
+        if (IS_LONG_OPTION(option))
+            res = curl_easy_setopt(self->handle, (CURLoption)option, (long)d);
+        else if (IS_OFF_T_OPTION(option))
+            res = curl_easy_setopt(self->handle, (CURLoption)option, (curl_off_t)d);
+        else {
+            PyErr_SetString(PyExc_TypeError, "integers are not supported for this option");
+            return NULL;
+        }
+        if (res != CURLE_OK) {
+            CURLERROR_RETVAL();
+        }
+        Py_INCREF(Py_None);
+        return Py_None;
+    }
+
+    /* Handle the case of long arguments (used by *_LARGE options) */
+    if (PyLong_Check(obj)) {
+        PY_LONG_LONG d = PyLong_AsLongLong(obj);
+        if (d == -1 && PyErr_Occurred())
+            return NULL;
+
+        if (IS_LONG_OPTION(option) && (long)d == d)
+            res = curl_easy_setopt(self->handle, (CURLoption)option, (long)d);
+        else if (IS_OFF_T_OPTION(option) && (curl_off_t)d == d)
+            res = curl_easy_setopt(self->handle, (CURLoption)option, (curl_off_t)d);
+        else {
+            PyErr_SetString(PyExc_TypeError, "longs are not supported for this option");
+            return NULL;
+        }
+        if (res != CURLE_OK) {
+            CURLERROR_RETVAL();
+        }
+        Py_INCREF(Py_None);
+        return Py_None;
+    }
+
+#undef IS_LONG_OPTION
+#undef IS_OFF_T_OPTION
+
+    /* Handle the case of file objects */
+    if (PyFile_Check(obj)) {
+        FILE *fp;
+
+        /* Ensure the option specified a file as well as the input */
+        switch (option) {
+        case CURLOPT_READDATA:
+        case CURLOPT_WRITEDATA:
+            break;
+        case CURLOPT_WRITEHEADER:
+            if (self->w_cb != NULL) {
+                PyErr_SetString(ErrorObject, "cannot combine WRITEHEADER with WRITEFUNCTION.");
+                return NULL;
+            }
+            break;
+        default:
+            PyErr_SetString(PyExc_TypeError, "files are not supported for this option");
+            return NULL;
+        }
+
+        fp = PyFile_AsFile(obj);
+        if (fp == NULL) {
+            PyErr_SetString(PyExc_TypeError, "second argument must be open file");
+            return NULL;
+        }
+        res = curl_easy_setopt(self->handle, (CURLoption)option, fp);
+        if (res != CURLE_OK) {
+            CURLERROR_RETVAL();
+        }
+        Py_INCREF(obj);
+
+        switch (option) {
+        case CURLOPT_READDATA:
+            ZAP(self->readdata_fp);
+            self->readdata_fp = obj;
+            break;
+        case CURLOPT_WRITEDATA:
+            ZAP(self->writedata_fp);
+            self->writedata_fp = obj;
+            break;
+        case CURLOPT_WRITEHEADER:
+            ZAP(self->writeheader_fp);
+            self->writeheader_fp = obj;
+            break;
+        default:
+            assert(0);
+            break;
+        }
+        /* Return success */
+        Py_INCREF(Py_None);
+        return Py_None;
+    }
+
+    /* Handle the case of list objects */
+    if (PyList_Check(obj)) {
+        struct curl_slist **old_slist = NULL;
+        struct curl_slist *slist = NULL;
+        int i, len;
+
+        switch (option) {
+        case CURLOPT_HTTP200ALIASES:
+            old_slist = &self->http200aliases;
+            break;
+        case CURLOPT_HTTPHEADER:
+            old_slist = &self->httpheader;
+            break;
+        case CURLOPT_QUOTE:
+            old_slist = &self->quote;
+            break;
+        case CURLOPT_POSTQUOTE:
+            old_slist = &self->postquote;
+            break;
+        case CURLOPT_PREQUOTE:
+            old_slist = &self->prequote;
+            break;
+        case CURLOPT_SOURCE_PREQUOTE:
+            old_slist = &self->source_prequote;
+            break;
+        case CURLOPT_SOURCE_POSTQUOTE:
+            old_slist = &self->source_postquote;
+            break;
+        case CURLOPT_HTTPPOST:
+            break;
+        default:
+            /* None of the list options were recognized, throw exception */
+            PyErr_SetString(PyExc_TypeError, "lists are not supported for this option");
+            return NULL;
+        }
+
+        len = PyList_Size(obj);
+        if (len == 0) {
+            /* Empty list - do nothing */
+            Py_INCREF(Py_None);
+            return Py_None;
+        }
+
+        /* Handle HTTPPOST different since we construct a HttpPost form struct */
+        if (option == CURLOPT_HTTPPOST) {
+            struct curl_httppost *post = NULL;
+            struct curl_httppost *last = NULL;
+
+            for (i = 0; i < len; i++) {
+                char *nstr = NULL, *cstr = NULL;
+                int nlen = -1, clen = -1;
+                PyObject *listitem = PyList_GetItem(obj, i);
+
+                if (!PyTuple_Check(listitem)) {
+                    curl_formfree(post);
+                    PyErr_SetString(PyExc_TypeError, "list items must be tuple objects");
+                    return NULL;
+                }
+                if (PyTuple_GET_SIZE(listitem) != 2) {
+                    curl_formfree(post);
+                    PyErr_SetString(PyExc_TypeError, "tuple must contain two elements (name, value)");
+                    return NULL;
+                }
+                if (PyString_AsStringAndSize(PyTuple_GET_ITEM(listitem, 0), &nstr, &nlen) != 0) {
+                    curl_formfree(post);
+                    PyErr_SetString(PyExc_TypeError, "tuple must contain string as first element");
+                    return NULL;
+                }
+                if (PyString_Check(PyTuple_GET_ITEM(listitem, 1))) {
+                    /* Handle strings as second argument for backwards compatibility */
+                    PyString_AsStringAndSize(PyTuple_GET_ITEM(listitem, 1), &cstr, &clen);
+                    /* INFO: curl_formadd() internally does memdup() the data, so
+                     * embedded NUL characters _are_ allowed here. */
+                    res = curl_formadd(&post, &last,
+                                       CURLFORM_COPYNAME, nstr,
+                                       CURLFORM_NAMELENGTH, (long) nlen,
+                                       CURLFORM_COPYCONTENTS, cstr,
+                                       CURLFORM_CONTENTSLENGTH, (long) clen,
+                                       CURLFORM_END);
+                    if (res != CURLE_OK) {
+                        curl_formfree(post);
+                        CURLERROR_RETVAL();
+                    }
+                }
+                else if (PyTuple_Check(PyTuple_GET_ITEM(listitem, 1))) {
+                    /* Supports content, file and content-type */
+                    PyObject *t = PyTuple_GET_ITEM(listitem, 1);
+                    int tlen = PyTuple_Size(t);
+                    int j, k, l;
+                    struct curl_forms *forms = NULL;
+
+                    /* Sanity check that there are at least two tuple items */
+                    if (tlen < 2) {
+                        curl_formfree(post);
+                        PyErr_SetString(PyExc_TypeError, "tuple must contain at least one option and one value");
+                        return NULL;
+                    }
+
+                    /* Allocate enough space to accommodate length options for content */
+                    forms = PyMem_Malloc(sizeof(struct curl_forms) * ((tlen*2) + 1));
+                    if (forms == NULL) {
+                        curl_formfree(post);
+                        PyErr_NoMemory();
+                        return NULL;
+                    }
+
+                    /* Iterate all the tuple members pairwise */
+                    for (j = 0, k = 0, l = 0; j < tlen; j += 2, l++) {
+                        char *ostr;
+                        int olen, val;
+
+                        if (j == (tlen-1)) {
+                            PyErr_SetString(PyExc_TypeError, "expected value");
+                            PyMem_Free(forms);
+                            curl_formfree(post);
+                            return NULL;
+                        }
+                        if (!PyInt_Check(PyTuple_GET_ITEM(t, j))) {
+                            PyErr_SetString(PyExc_TypeError, "option must be long");
+                            PyMem_Free(forms);
+                            curl_formfree(post);
+                            return NULL;
+                        }
+                        if (!PyString_Check(PyTuple_GET_ITEM(t, j+1))) {
+                            PyErr_SetString(PyExc_TypeError, "value must be string");
+                            PyMem_Free(forms);
+                            curl_formfree(post);
+                            return NULL;
+                        }
+
+                        val = PyLong_AsLong(PyTuple_GET_ITEM(t, j));
+                        if (val != CURLFORM_COPYCONTENTS &&
+                            val != CURLFORM_FILE &&
+                            val != CURLFORM_CONTENTTYPE)
+                        {
+                            PyErr_SetString(PyExc_TypeError, "unsupported option");
+                            PyMem_Free(forms);
+                            curl_formfree(post);
+                            return NULL;
+                        }
+                        PyString_AsStringAndSize(PyTuple_GET_ITEM(t, j+1), &ostr, &olen);
+                        forms[k].option = val;
+                        forms[k].value = ostr;
+                        ++k;
+                        if (val == CURLFORM_COPYCONTENTS) {
+                            /* Contents can contain \0 bytes so we specify the length */
+                            forms[k].option = CURLFORM_CONTENTSLENGTH;
+                            forms[k].value = (char *)olen;
+                            ++k;
+                        }
+                    }
+                    forms[k].option = CURLFORM_END;
+                    res = curl_formadd(&post, &last,
+                                       CURLFORM_COPYNAME, nstr,
+                                       CURLFORM_NAMELENGTH, (long) nlen,
+                                       CURLFORM_ARRAY, forms,
+                                       CURLFORM_END);
+                    PyMem_Free(forms);
+                    if (res != CURLE_OK) {
+                        curl_formfree(post);
+                        CURLERROR_RETVAL();
+                    }
+                } else {
+                    /* Some other type was given, ignore */
+                    curl_formfree(post);
+                    PyErr_SetString(PyExc_TypeError, "unsupported second type in tuple");
+                    return NULL;
+                }
+            }
+            res = curl_easy_setopt(self->handle, CURLOPT_HTTPPOST, post);
+            /* Check for errors */
+            if (res != CURLE_OK) {
+                curl_formfree(post);
+                CURLERROR_RETVAL();
+            }
+            /* Finally, free previously allocated httppost and update */
+            curl_formfree(self->httppost);
+            self->httppost = post;
+
+            Py_INCREF(Py_None);
+            return Py_None;
+        }
+
+        /* Just to be sure we do not bug off here */
+        assert(old_slist != NULL && slist == NULL);
+
+        /* Handle regular list operations on the other options */
+        for (i = 0; i < len; i++) {
+            PyObject *listitem = PyList_GetItem(obj, i);
+            struct curl_slist *nlist;
+            char *str;
+
+            if (!PyString_Check(listitem)) {
+                curl_slist_free_all(slist);
+                PyErr_SetString(PyExc_TypeError, "list items must be string objects");
+                return NULL;
+            }
+            /* INFO: curl_slist_append() internally does strdup() the data, so
+             * no embedded NUL characters allowed here. */
+            str = PyString_AsString_NoNUL(listitem);
+            if (str == NULL) {
+                curl_slist_free_all(slist);
+                return NULL;
+            }
+            nlist = curl_slist_append(slist, str);
+            if (nlist == NULL || nlist->data == NULL) {
+                curl_slist_free_all(slist);
+                return PyErr_NoMemory();
+            }
+            slist = nlist;
+        }
+        res = curl_easy_setopt(self->handle, (CURLoption)option, slist);
+        /* Check for errors */
+        if (res != CURLE_OK) {
+            curl_slist_free_all(slist);
+            CURLERROR_RETVAL();
+        }
+        /* Finally, free previously allocated list and update */
+        curl_slist_free_all(*old_slist);
+        *old_slist = slist;
+
+        Py_INCREF(Py_None);
+        return Py_None;
+    }
+
+    /* Handle the case of function objects for callbacks */
+    if (PyFunction_Check(obj) || PyCFunction_Check(obj) || PyMethod_Check(obj)) {
+        /* We use function types here to make sure that our callback
+         * definitions exactly match the <curl/curl.h> interface.
+         */
+        const curl_write_callback w_cb = write_callback;
+        const curl_write_callback h_cb = header_callback;
+        const curl_read_callback r_cb = read_callback;
+        const curl_progress_callback pro_cb = progress_callback;
+        const curl_debug_callback debug_cb = debug_callback;
+        const curl_ioctl_callback ioctl_cb = ioctl_callback;
+
+        switch(option) {
+        case CURLOPT_WRITEFUNCTION:
+            if (self->writeheader_fp != NULL) {
+                PyErr_SetString(ErrorObject, "cannot combine WRITEFUNCTION with WRITEHEADER option.");
+                return NULL;
+            }
+            Py_INCREF(obj);
+            ZAP(self->writedata_fp);
+            ZAP(self->w_cb);
+            self->w_cb = obj;
+            curl_easy_setopt(self->handle, CURLOPT_WRITEFUNCTION, w_cb);
+            curl_easy_setopt(self->handle, CURLOPT_WRITEDATA, self);
+            break;
+        case CURLOPT_HEADERFUNCTION:
+            Py_INCREF(obj);
+            ZAP(self->h_cb);
+            self->h_cb = obj;
+            curl_easy_setopt(self->handle, CURLOPT_HEADERFUNCTION, h_cb);
+            curl_easy_setopt(self->handle, CURLOPT_WRITEHEADER, self);
+            break;
+        case CURLOPT_READFUNCTION:
+            Py_INCREF(obj);
+            ZAP(self->readdata_fp);
+            ZAP(self->r_cb);
+            self->r_cb = obj;
+            curl_easy_setopt(self->handle, CURLOPT_READFUNCTION, r_cb);
+            curl_easy_setopt(self->handle, CURLOPT_READDATA, self);
+            break;
+        case CURLOPT_PROGRESSFUNCTION:
+            Py_INCREF(obj);
+            ZAP(self->pro_cb);
+            self->pro_cb = obj;
+            curl_easy_setopt(self->handle, CURLOPT_PROGRESSFUNCTION, pro_cb);
+            curl_easy_setopt(self->handle, CURLOPT_PROGRESSDATA, self);
+            break;
+        case CURLOPT_DEBUGFUNCTION:
+            Py_INCREF(obj);
+            ZAP(self->debug_cb);
+            self->debug_cb = obj;
+            curl_easy_setopt(self->handle, CURLOPT_DEBUGFUNCTION, debug_cb);
+            curl_easy_setopt(self->handle, CURLOPT_DEBUGDATA, self);
+            break;
+        case CURLOPT_IOCTLFUNCTION:
+            Py_INCREF(obj);
+            ZAP(self->ioctl_cb);
+            self->ioctl_cb = obj;
+            curl_easy_setopt(self->handle, CURLOPT_IOCTLFUNCTION, ioctl_cb);
+            curl_easy_setopt(self->handle, CURLOPT_IOCTLDATA, self);
+            break;
+
+        default:
+            /* None of the function options were recognized, throw exception */
+            PyErr_SetString(PyExc_TypeError, "functions are not supported for this option");
+            return NULL;
+        }
+        Py_INCREF(Py_None);
+        return Py_None;
+    }
+
+    /* Failed to match any of the function signatures -- return error */
+error:
+    PyErr_SetString(PyExc_TypeError, "invalid arguments to setopt");
+    return NULL;
+}
+
+
+static PyObject *
+do_curl_getinfo(CurlObject *self, PyObject *args)
+{
+    int option;
+    int res;
+
+    if (!PyArg_ParseTuple(args, "i:getinfo", &option)) {
+        return NULL;
+    }
+    if (check_curl_state(self, 1 | 2, "getinfo") != 0) {
+        return NULL;
+    }
+
+    switch (option) {
+    case CURLINFO_FILETIME:
+    case CURLINFO_HEADER_SIZE:
+    case CURLINFO_HTTP_CODE:
+    case CURLINFO_REDIRECT_COUNT:
+    case CURLINFO_REQUEST_SIZE:
+    case CURLINFO_SSL_VERIFYRESULT:
+    case CURLINFO_HTTP_CONNECTCODE:
+    case CURLINFO_HTTPAUTH_AVAIL:
+    case CURLINFO_PROXYAUTH_AVAIL:
+    case CURLINFO_OS_ERRNO:
+    case CURLINFO_NUM_CONNECTS:
+        {
+            /* Return PyInt as result */
+            long l_res = -1;
+
+            res = curl_easy_getinfo(self->handle, (CURLINFO)option, &l_res);
+            /* Check for errors and return result */
+            if (res != CURLE_OK) {
+                CURLERROR_RETVAL();
+            }
+            return PyInt_FromLong(l_res);
+        }
+
+    case CURLINFO_CONTENT_TYPE:
+    case CURLINFO_EFFECTIVE_URL:
+        {
+            /* Return PyString as result */
+            char *s_res = NULL;
+
+            res = curl_easy_getinfo(self->handle, (CURLINFO)option, &s_res);
+            if (res != CURLE_OK) {
+                CURLERROR_RETVAL();
+            }
+            /* If the resulting string is NULL, return None */
+            if (s_res == NULL) {
+                Py_INCREF(Py_None);
+                return Py_None;
+            }
+            return PyString_FromString(s_res);
+        }
+
+    case CURLINFO_CONNECT_TIME:
+    case CURLINFO_CONTENT_LENGTH_DOWNLOAD:
+    case CURLINFO_CONTENT_LENGTH_UPLOAD:
+    case CURLINFO_NAMELOOKUP_TIME:
+    case CURLINFO_PRETRANSFER_TIME:
+    case CURLINFO_REDIRECT_TIME:
+    case CURLINFO_SIZE_DOWNLOAD:
+    case CURLINFO_SIZE_UPLOAD:
+    case CURLINFO_SPEED_DOWNLOAD:
+    case CURLINFO_SPEED_UPLOAD:
+    case CURLINFO_STARTTRANSFER_TIME:
+    case CURLINFO_TOTAL_TIME:
+        {
+            /* Return PyFloat as result */
+            double d_res = 0.0;
+
+            res = curl_easy_getinfo(self->handle, (CURLINFO)option, &d_res);
+            if (res != CURLE_OK) {
+                CURLERROR_RETVAL();
+            }
+            return PyFloat_FromDouble(d_res);
+        }
+
+    case CURLINFO_SSL_ENGINES:
+        {
+            /* Return a list of strings */
+            struct curl_slist *slist = NULL;
+
+            res = curl_easy_getinfo(self->handle, (CURLINFO)option, &slist);
+            if (res != CURLE_OK) {
+                CURLERROR_RETVAL();
+            }
+            return convert_slist(slist, 1 | 2);
+        }
+    }
+
+    /* Got wrong option on the method call */
+    PyErr_SetString(PyExc_ValueError, "invalid argument to getinfo");
+    return NULL;
+}
+
+
+/*************************************************************************
+// CurlMultiObject
+**************************************************************************/
+
+/* --------------- construct/destruct (i.e. open/close) --------------- */
+
+/* constructor - this is a module-level function returning a new instance */
+static CurlMultiObject *
+do_multi_new(PyObject *dummy)
+{
+    CurlMultiObject *self;
+
+    UNUSED(dummy);
+
+    /* Allocate python curl-multi object */
+    self = (CurlMultiObject *) PyObject_GC_New(CurlMultiObject, p_CurlMulti_Type);
+    if (self) {
+        PyObject_GC_Track(self);
+    }
+    else {
+        return NULL;
+    }
+
+    /* Initialize object attributes */
+    self->dict = NULL;
+    self->state = NULL;
+
+    /* Allocate libcurl multi handle */
+    self->multi_handle = curl_multi_init();
+    if (self->multi_handle == NULL) {
+        Py_DECREF(self);
+        PyErr_SetString(ErrorObject, "initializing curl-multi failed");
+        return NULL;
+    }
+    return self;
+}
+
+
+static void
+util_multi_close(CurlMultiObject *self)
+{
+    assert(self != NULL);
+    self->state = NULL;
+    if (self->multi_handle != NULL) {
+        CURLM *multi_handle = self->multi_handle;
+        self->multi_handle = NULL;
+        curl_multi_cleanup(multi_handle);
+    }
+}
+
+
+static void
+do_multi_dealloc(CurlMultiObject *self)
+{
+    PyObject_GC_UnTrack(self);
+    Py_TRASHCAN_SAFE_BEGIN(self)
+
+    ZAP(self->dict);
+    util_multi_close(self);
+
+    PyObject_GC_Del(self);
+    Py_TRASHCAN_SAFE_END(self)
+}
+
+
+static PyObject *
+do_multi_close(CurlMultiObject *self)
+{
+    if (check_multi_state(self, 2, "close") != 0) {
+        return NULL;
+    }
+    util_multi_close(self);
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+/* --------------- GC support --------------- */
+
+/* Drop references that may have created reference cycles. */
+static int
+do_multi_clear(CurlMultiObject *self)
+{
+    ZAP(self->dict);
+    return 0;
+}
+
+static int
+do_multi_traverse(CurlMultiObject *self, visitproc visit, void *arg)
+{
+    int err;
+#undef VISIT
+#define VISIT(v)    if ((v) != NULL && ((err = visit(v, arg)) != 0)) return err
+
+    VISIT(self->dict);
+
+    return 0;
+#undef VISIT
+}
+
+/* --------------- perform --------------- */
+
+
+static PyObject *
+do_multi_perform(CurlMultiObject *self)
+{
+    CURLMcode res;
+    int running = -1;
+
+    if (check_multi_state(self, 1 | 2, "perform") != 0) {
+        return NULL;
+    }
+
+    /* Release global lock and start */
+    self->state = PyThreadState_Get();
+    assert(self->state != NULL);
+    Py_BEGIN_ALLOW_THREADS
+    res = curl_multi_perform(self->multi_handle, &running);
+    Py_END_ALLOW_THREADS
+    self->state = NULL;
+
+    /* We assume these errors are ok, otherwise throw exception */
+    if (res != CURLM_OK && res != CURLM_CALL_MULTI_PERFORM) {
+        CURLERROR_MSG("perform failed");
+    }
+
+    /* Return a tuple with the result and the number of running handles */
+    return Py_BuildValue("(ii)", (int)res, running);
+}
+
+
+/* --------------- add_handle/remove_handle --------------- */
+
+/* static utility function */
+static int
+check_multi_add_remove(const CurlMultiObject *self, const CurlObject *obj)
+{
+    /* check CurlMultiObject status */
+    assert_multi_state(self);
+    if (self->multi_handle == NULL) {
+        PyErr_SetString(ErrorObject, "cannot add/remove handle - multi-stack is closed");
+        return -1;
+    }
+    if (self->state != NULL) {
+        PyErr_SetString(ErrorObject, "cannot add/remove handle - multi_perform() already running");
+        return -1;
+    }
+    /* check CurlObject status */
+    assert_curl_state(obj);
+    if (obj->state != NULL) {
+        PyErr_SetString(ErrorObject, "cannot add/remove handle - perform() of curl object already running");
+        return -1;
+    }
+    if (obj->multi_stack != NULL && obj->multi_stack != self) {
+        PyErr_SetString(ErrorObject, "cannot add/remove handle - curl object already on another multi-stack");
+        return -1;
+    }
+    return 0;
+}
+
+
+static PyObject *
+do_multi_add_handle(CurlMultiObject *self, PyObject *args)
+{
+    CurlObject *obj;
+    CURLMcode res;
+
+    if (!PyArg_ParseTuple(args, "O!:add_handle", p_Curl_Type, &obj)) {
+        return NULL;
+    }
+    if (check_multi_add_remove(self, obj) != 0) {
+        return NULL;
+    }
+    if (obj->handle == NULL) {
+        PyErr_SetString(ErrorObject, "curl object already closed");
+        return NULL;
+    }
+    if (obj->multi_stack == self) {
+        PyErr_SetString(ErrorObject, "curl object already on this multi-stack");
+        return NULL;
+    }
+    assert(obj->multi_stack == NULL);
+    res = curl_multi_add_handle(self->multi_handle, obj->handle);
+    if (res != CURLM_OK) {
+        CURLERROR_MSG("curl_multi_add_handle() failed due to internal errors");
+    }
+    obj->multi_stack = self;
+    Py_INCREF(self);
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+static PyObject *
+do_multi_remove_handle(CurlMultiObject *self, PyObject *args)
+{
+    CurlObject *obj;
+    CURLMcode res;
+
+    if (!PyArg_ParseTuple(args, "O!:remove_handle", p_Curl_Type, &obj)) {
+        return NULL;
+    }
+    if (check_multi_add_remove(self, obj) != 0) {
+        return NULL;
+    }
+    if (obj->handle == NULL) {
+        /* CurlObject handle already closed -- ignore */
+        goto done;
+    }
+    if (obj->multi_stack != self) {
+        PyErr_SetString(ErrorObject, "curl object not on this multi-stack");
+        return NULL;
+    }
+    res = curl_multi_remove_handle(self->multi_handle, obj->handle);
+    if (res != CURLM_OK) {
+        CURLERROR_MSG("curl_multi_remove_handle() failed due to internal errors");
+    }
+    assert(obj->multi_stack == self);
+    obj->multi_stack = NULL;
+    Py_DECREF(self);
+done:
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+/* --------------- fdset ---------------------- */
+
+static PyObject *
+do_multi_fdset(CurlMultiObject *self)
+{
+    CURLMcode res;
+    int max_fd = -1, fd;
+    PyObject *ret = NULL;
+    PyObject *read_list = NULL, *write_list = NULL, *except_list = NULL;
+    PyObject *py_fd = NULL;
+
+    if (check_multi_state(self, 1 | 2, "fdset") != 0) {
+        return NULL;
+    }
+
+    /* Clear file descriptor sets */
+    FD_ZERO(&self->read_fd_set);
+    FD_ZERO(&self->write_fd_set);
+    FD_ZERO(&self->exc_fd_set);
+
+    /* Don't bother releasing the gil as this is just a data structure operation */
+    res = curl_multi_fdset(self->multi_handle, &self->read_fd_set,
+                           &self->write_fd_set, &self->exc_fd_set, &max_fd);
+    if (res != CURLM_OK || max_fd < 0) {
+        CURLERROR_MSG("curl_multi_fdset() failed due to internal errors");
+    }
+
+    /* Allocate lists. */
+    if ((read_list = PyList_New(0)) == NULL) goto error;
+    if ((write_list = PyList_New(0)) == NULL) goto error;
+    if ((except_list = PyList_New(0)) == NULL) goto error;
+
+    /* Populate lists */
+    for (fd = 0; fd < max_fd + 1; fd++) {
+        if (FD_ISSET(fd, &self->read_fd_set)) {
+            if ((py_fd = PyInt_FromLong((long)fd)) == NULL) goto error;
+            if (PyList_Append(read_list, py_fd) != 0) goto error;
+            Py_DECREF(py_fd);
+            py_fd = NULL;
+        }
+        if (FD_ISSET(fd, &self->write_fd_set)) {
+            if ((py_fd = PyInt_FromLong((long)fd)) == NULL) goto error;
+            if (PyList_Append(write_list, py_fd) != 0) goto error;
+            Py_DECREF(py_fd);
+            py_fd = NULL;
+        }
+        if (FD_ISSET(fd, &self->exc_fd_set)) {
+            if ((py_fd = PyInt_FromLong((long)fd)) == NULL) goto error;
+            if (PyList_Append(except_list, py_fd) != 0) goto error;
+            Py_DECREF(py_fd);
+            py_fd = NULL;
+        }
+    }
+
+    /* Return a tuple with the 3 lists */
+    ret = Py_BuildValue("(OOO)", read_list, write_list, except_list);
+error:
+    Py_XDECREF(py_fd);
+    Py_XDECREF(except_list);
+    Py_XDECREF(write_list);
+    Py_XDECREF(read_list);
+    return ret;
+}
+
+
+/* --------------- info_read --------------- */
+
+static PyObject *
+do_multi_info_read(CurlMultiObject *self, PyObject *args)
+{
+    PyObject *ret = NULL;
+    PyObject *ok_list = NULL, *err_list = NULL;
+    CURLMsg *msg;
+    int in_queue = 0, num_results = INT_MAX;
+
+    /* Sanity checks */
+    if (!PyArg_ParseTuple(args, "|i:info_read", &num_results)) {
+        return NULL;
+    }
+    if (num_results <= 0) {
+        PyErr_SetString(ErrorObject, "argument to info_read must be greater than zero");
+        return NULL;
+    }
+    if (check_multi_state(self, 1 | 2, "info_read") != 0) {
+        return NULL;
+    }
+
+    if ((ok_list = PyList_New(0)) == NULL) goto error;
+    if ((err_list = PyList_New(0)) == NULL) goto error;
+
+    /* Loop through all messages */
+    while ((msg = curl_multi_info_read(self->multi_handle, &in_queue)) != NULL) {
+        CURLcode res;
+        CurlObject *co = NULL;
+
+        /* Check for termination as specified by the user */
+        if (num_results-- <= 0) {
+            break;
+        }
+
+        /* Fetch the curl object that corresponds to the curl handle in the message */
+        res = curl_easy_getinfo(msg->easy_handle, CURLINFO_PRIVATE, &co);
+        if (res != CURLE_OK || co == NULL) {
+            Py_DECREF(err_list);
+            Py_DECREF(ok_list);
+            CURLERROR_MSG("Unable to fetch curl handle from curl object");
+        }
+        assert(co->ob_type == p_Curl_Type);
+        if (msg->msg != CURLMSG_DONE) {
+            /* FIXME: what does this mean ??? */
+        }
+        if (msg->data.result == CURLE_OK) {
+            /* Append curl object to list of objects which succeeded */
+            if (PyList_Append(ok_list, (PyObject *)co) != 0) {
+                goto error;
+            }
+        }
+        else {
+            /* Create a result tuple that will get added to err_list. */
+            PyObject *v = Py_BuildValue("(Ois)", (PyObject *)co, (int)msg->data.result, co->error);
+            /* Append curl object to list of objects which failed */
+            if (v == NULL || PyList_Append(err_list, v) != 0) {
+                Py_XDECREF(v);
+                goto error;
+            }
+            Py_DECREF(v);
+        }
+    }
+    /* Return (number of queued messages, [ok_objects], [error_objects]) */
+    ret = Py_BuildValue("(iOO)", in_queue, ok_list, err_list);
+error:
+    Py_XDECREF(err_list);
+    Py_XDECREF(ok_list);
+    return ret;
+}
+
+
+/* --------------- select --------------- */
+
+static PyObject *
+do_multi_select(CurlMultiObject *self, PyObject *args)
+{
+    int max_fd = -1, n;
+    double timeout = -1.0;
+    struct timeval tv, *tvp;
+    CURLMcode res;
+
+    if (!PyArg_ParseTuple(args, "|d:select", &timeout)) {
+        return NULL;
+    }
+    if (check_multi_state(self, 1 | 2, "select") != 0) {
+        return NULL;
+    }
+
+   if (timeout == -1.0) {
+        /* no timeout given - wait forever */
+        tvp = NULL;
+   } else if (timeout < 0 || timeout >= 365 * 24 * 60 * 60) {
+        PyErr_SetString(PyExc_OverflowError, "invalid timeout period");
+        return NULL;
+   } else {
+        long seconds = (long)timeout;
+        timeout = timeout - (double)seconds;
+        assert(timeout >= 0.0); assert(timeout < 1.0);
+        tv.tv_sec = seconds;
+        tv.tv_usec = (long)(timeout*1000000.0);
+        tvp = &tv;
+    }
+
+    FD_ZERO(&self->read_fd_set);
+    FD_ZERO(&self->write_fd_set);
+    FD_ZERO(&self->exc_fd_set);
+
+    res = curl_multi_fdset(self->multi_handle, &self->read_fd_set,
+                           &self->write_fd_set, &self->exc_fd_set, &max_fd);
+    if (res != CURLM_OK) {
+        CURLERROR_MSG("multi_fdset failed");
+    }
+
+    if (max_fd < 0) {
+        n = 0;
+    }
+    else {
+        Py_BEGIN_ALLOW_THREADS
+        n = select(max_fd + 1, &self->read_fd_set, &self->write_fd_set, &self->exc_fd_set, tvp);
+        Py_END_ALLOW_THREADS
+        /* info: like Python's socketmodule.c we do not raise an exception
+         *       if select() fails - we'll leave it to the actual libcurl
+         *       socket code to report any errors.
+         */
+    }
+
+    return PyInt_FromLong(n);
+}
+
+
+/*************************************************************************
+// type definitions
+**************************************************************************/
+
+/* --------------- methods --------------- */
+
+static char co_close_doc [] = "close() -> None.  Close handle and end curl session.\n";
+static char co_errstr_doc [] = "errstr() -> String.  Return the internal libcurl error buffer string.\n";
+static char co_getinfo_doc [] = "getinfo(info) -> Res.  Extract and return information from a curl session.  Throws pycurl.error exception upon failure.\n";
+static char co_perform_doc [] = "perform() -> None.  Perform a file transfer.  Throws pycurl.error exception upon failure.\n";
+static char co_setopt_doc [] = "setopt(option, parameter) -> None.  Set curl session option.  Throws pycurl.error exception upon failure.\n";
+static char co_unsetopt_doc [] = "unsetopt(option) -> None.  Reset curl session option to default value.  Throws pycurl.error exception upon failure.\n";
+
+static char co_multi_fdset_doc [] = "fdset() -> Tuple.  Returns a tuple of three lists that can be passed to the select.select() method .\n";
+static char co_multi_info_read_doc [] = "info_read([max_objects]) -> Tuple. Returns a tuple (number of queued handles, [curl objects]).\n";
+static char co_multi_select_doc [] = "select([timeout]) -> Int.  Returns result from doing a select() on the curl multi file descriptor with the given timeout.\n";
+
+static PyMethodDef curlobject_methods[] = {
+    {"close", (PyCFunction)do_curl_close, METH_NOARGS, co_close_doc},
+    {"errstr", (PyCFunction)do_curl_errstr, METH_NOARGS, co_errstr_doc},
+    {"getinfo", (PyCFunction)do_curl_getinfo, METH_VARARGS, co_getinfo_doc},
+    {"perform", (PyCFunction)do_curl_perform, METH_NOARGS, co_perform_doc},
+    {"setopt", (PyCFunction)do_curl_setopt, METH_VARARGS, co_setopt_doc},
+    {"unsetopt", (PyCFunction)do_curl_unsetopt, METH_VARARGS, co_unsetopt_doc},
+    {NULL, NULL, 0, NULL}
+};
+
+static PyMethodDef curlmultiobject_methods[] = {
+    {"add_handle", (PyCFunction)do_multi_add_handle, METH_VARARGS, NULL},
+    {"close", (PyCFunction)do_multi_close, METH_NOARGS, NULL},
+    {"fdset", (PyCFunction)do_multi_fdset, METH_NOARGS, co_multi_fdset_doc},
+    {"info_read", (PyCFunction)do_multi_info_read, METH_VARARGS, co_multi_info_read_doc},
+    {"perform", (PyCFunction)do_multi_perform, METH_NOARGS, NULL},
+    {"remove_handle", (PyCFunction)do_multi_remove_handle, METH_VARARGS, NULL},
+    {"select", (PyCFunction)do_multi_select, METH_VARARGS, co_multi_select_doc},
+    {NULL, NULL, 0, NULL}
+};
+
+
+/* --------------- setattr/getattr --------------- */
+
+static PyObject *curlobject_constants = NULL;
+static PyObject *curlmultiobject_constants = NULL;
+
+static int
+my_setattr(PyObject **dict, char *name, PyObject *v)
+{
+    if (v == NULL) {
+        int rv = -1;
+        if (*dict != NULL)
+            rv = PyDict_DelItemString(*dict, name);
+        if (rv < 0)
+            PyErr_SetString(PyExc_AttributeError, "delete non-existing attribute");
+        return rv;
+    }
+    if (*dict == NULL) {
+        *dict = PyDict_New();
+        if (*dict == NULL)
+            return -1;
+    }
+    return PyDict_SetItemString(*dict, name, v);
+}
+
+static PyObject *
+my_getattr(PyObject *co, char *name, PyObject *dict1, PyObject *dict2, PyMethodDef *m)
+{
+    PyObject *v = NULL;
+    if (v == NULL && dict1 != NULL)
+        v = PyDict_GetItemString(dict1, name);
+    if (v == NULL && dict2 != NULL)
+        v = PyDict_GetItemString(dict2, name);
+    if (v != NULL) {
+        Py_INCREF(v);
+        return v;
+    }
+    return Py_FindMethod(m, co, name);
+}
+
+static int
+do_curl_setattr(CurlObject *co, char *name, PyObject *v)
+{
+    assert_curl_state(co);
+    return my_setattr(&co->dict, name, v);
+}
+
+static int
+do_multi_setattr(CurlMultiObject *co, char *name, PyObject *v)
+{
+    assert_multi_state(co);
+    return my_setattr(&co->dict, name, v);
+}
+
+static PyObject *
+do_curl_getattr(CurlObject *co, char *name)
+{
+    assert_curl_state(co);
+    return my_getattr((PyObject *)co, name, co->dict,
+                      curlobject_constants, curlobject_methods);
+}
+
+static PyObject *
+do_multi_getattr(CurlMultiObject *co, char *name)
+{
+    assert_multi_state(co);
+    return my_getattr((PyObject *)co, name, co->dict,
+                      curlmultiobject_constants, curlmultiobject_methods);
+}
+
+
+/* --------------- actual type definitions --------------- */
+
+static PyTypeObject Curl_Type = {
+    PyObject_HEAD_INIT(NULL)
+    0,                          /* ob_size */
+    "pycurl.Curl",              /* tp_name */
+    sizeof(CurlObject),         /* tp_basicsize */
+    0,                          /* tp_itemsize */
+    /* Methods */
+    (destructor)do_curl_dealloc,   /* tp_dealloc */
+    0,                          /* tp_print */
+    (getattrfunc)do_curl_getattr,  /* tp_getattr */
+    (setattrfunc)do_curl_setattr,  /* tp_setattr */
+    0,                          /* tp_compare */
+    0,                          /* tp_repr */
+    0,                          /* tp_as_number */
+    0,                          /* tp_as_sequence */
+    0,                          /* tp_as_mapping */
+    0,                          /* tp_hash */
+    0,                          /* tp_call */
+    0,                          /* tp_str */
+    0,                          /* tp_getattro */
+    0,                          /* tp_setattro */
+    0,                          /* tp_as_buffer */
+    Py_TPFLAGS_HAVE_GC,         /* tp_flags */
+    0,                          /* tp_doc */
+    (traverseproc)do_curl_traverse, /* tp_traverse */
+    (inquiry)do_curl_clear      /* tp_clear */
+    /* More fields follow here, depending on your Python version. You can
+     * safely ignore any compiler warnings about missing initializers.
+     */
+};
+
+static PyTypeObject CurlMulti_Type = {
+    PyObject_HEAD_INIT(NULL)
+    0,                          /* ob_size */
+    "pycurl.CurlMulti",         /* tp_name */
+    sizeof(CurlMultiObject),    /* tp_basicsize */
+    0,                          /* tp_itemsize */
+    /* Methods */
+    (destructor)do_multi_dealloc,   /* tp_dealloc */
+    0,                          /* tp_print */
+    (getattrfunc)do_multi_getattr,  /* tp_getattr */
+    (setattrfunc)do_multi_setattr,  /* tp_setattr */
+    0,                          /* tp_compare */
+    0,                          /* tp_repr */
+    0,                          /* tp_as_number */
+    0,                          /* tp_as_sequence */
+    0,                          /* tp_as_mapping */
+    0,                          /* tp_hash */
+    0,                          /* tp_call */
+    0,                          /* tp_str */
+    0,                          /* tp_getattro */
+    0,                          /* tp_setattro */
+    0,                          /* tp_as_buffer */
+    Py_TPFLAGS_HAVE_GC,         /* tp_flags */
+    0,                          /* tp_doc */
+    (traverseproc)do_multi_traverse, /* tp_traverse */
+    (inquiry)do_multi_clear     /* tp_clear */
+    /* More fields follow here, depending on your Python version. You can
+     * safely ignore any compiler warnings about missing initializers.
+     */
+};
+
+
+/*************************************************************************
+// module level
+// Note that the object constructors (do_curl_new, do_multi_new)
+// are module-level functions as well.
+**************************************************************************/
+
+static PyObject *
+do_global_init(PyObject *dummy, PyObject *args)
+{
+    int res, option;
+
+    UNUSED(dummy);
+    if (!PyArg_ParseTuple(args, "i:global_init", &option)) {
+        return NULL;
+    }
+
+    if (!(option == CURL_GLOBAL_SSL ||
+          option == CURL_GLOBAL_WIN32 ||
+          option == CURL_GLOBAL_ALL ||
+          option == CURL_GLOBAL_NOTHING)) {
+        PyErr_SetString(PyExc_ValueError, "invalid option to global_init");
+        return NULL;
+    }
+
+    res = curl_global_init(option);
+    if (res != CURLE_OK) {
+        PyErr_SetString(ErrorObject, "unable to set global option");
+        return NULL;
+    }
+
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+static PyObject *
+do_global_cleanup(PyObject *dummy)
+{
+    UNUSED(dummy);
+    curl_global_cleanup();
+    Py_INCREF(Py_None);
+    return Py_None;
+}
+
+
+
+static PyObject *vi_str(const char *s)
+{
+    if (s == NULL) {
+        Py_INCREF(Py_None);
+        return Py_None;
+    }
+    while (*s == ' ' || *s == '\t')
+        s++;
+    return PyString_FromString(s);
+}
+
+static PyObject *
+do_version_info(PyObject *dummy, PyObject *args)
+{
+    const curl_version_info_data *vi;
+    PyObject *ret = NULL;
+    PyObject *protocols = NULL;
+    PyObject *tmp;
+    int i;
+    int stamp = CURLVERSION_NOW;
+
+    UNUSED(dummy);
+    if (!PyArg_ParseTuple(args, "|i:version_info", &stamp)) {
+        return NULL;
+    }
+    vi = curl_version_info((CURLversion) stamp);
+    if (vi == NULL) {
+        PyErr_SetString(ErrorObject, "unable to get version info");
+        return NULL;
+    }
+
+    /* Note: actually libcurl in lib/version.c does ignore
+     * the "stamp" parm, and so do we */
+
+    for (i = 0; vi->protocols[i] != NULL; )
+        i++;
+    protocols = PyTuple_New(i);
+    if (protocols == NULL)
+        goto error;
+    for (i = 0; vi->protocols[i] != NULL; i++) {
+        tmp = vi_str(vi->protocols[i]);
+        if (tmp == NULL)
+            goto error;
+        PyTuple_SET_ITEM(protocols, i, tmp);
+    }
+    ret = PyTuple_New(12);
+    if (ret == NULL)
+        goto error;
+
+#define SET(i, v) \
+        tmp = (v); if (tmp == NULL) goto error; PyTuple_SET_ITEM(ret, i, tmp)
+    SET(0, PyInt_FromLong((long) vi->age));
+    SET(1, vi_str(vi->version));
+    SET(2, PyInt_FromLong(vi->version_num));
+    SET(3, vi_str(vi->host));
+    SET(4, PyInt_FromLong(vi->features));
+    SET(5, vi_str(vi->ssl_version));
+    SET(6, PyInt_FromLong(vi->ssl_version_num));
+    SET(7, vi_str(vi->libz_version));
+    SET(8, protocols);
+    SET(9, vi_str(vi->ares));
+    SET(10, PyInt_FromLong(vi->ares_num));
+    SET(11, vi_str(vi->libidn));
+#undef SET
+    return ret;
+
+error:
+    Py_XDECREF(ret);
+    Py_XDECREF(protocols);
+    return NULL;
+}
+
+
+/* Per function docstrings */
+static char pycurl_global_init_doc [] =
+"global_init(option) -> None.  Initialize curl environment.\n";
+
+static char pycurl_global_cleanup_doc [] =
+"global_cleanup() -> None.  Cleanup curl environment.\n";
+
+static char pycurl_version_info_doc [] =
+"version_info() -> tuple.  Returns a 12-tuple with the version info.\n";
+
+static char pycurl_curl_new_doc [] =
+"Curl() -> New curl object.  Implicitly calls global_init() if not called.\n";
+
+static char pycurl_multi_new_doc [] =
+"CurlMulti() -> New curl multi-object.\n";
+
+
+/* List of functions defined in this module */
+static PyMethodDef curl_methods[] = {
+    {"global_init", (PyCFunction)do_global_init, METH_VARARGS, pycurl_global_init_doc},
+    {"global_cleanup", (PyCFunction)do_global_cleanup, METH_NOARGS, pycurl_global_cleanup_doc},
+    {"version_info", (PyCFunction)do_version_info, METH_VARARGS, pycurl_version_info_doc},
+    {"Curl", (PyCFunction)do_curl_new, METH_NOARGS, pycurl_curl_new_doc},
+    {"CurlMulti", (PyCFunction)do_multi_new, METH_NOARGS, pycurl_multi_new_doc},
+    {NULL, NULL, 0, NULL}
+};
+
+
+/* Module docstring */
+static char module_doc [] =
+"This module implements an interface to the cURL library.\n"
+"\n"
+"Types:\n"
+"\n"
+"Curl() -> New object.  Create a new curl object.\n"
+"CurlMulti() -> New object.  Create a new curl multi-object.\n"
+"\n"
+"Functions:\n"
+"\n"
+"global_init(option) -> None.  Initialize curl environment.\n"
+"global_cleanup() -> None.  Cleanup curl environment.\n"
+"version_info() -> tuple.  Return version information.\n"
+;
+
+
+/* Helper functions for inserting constants into the module namespace */
+
+static void
+insobj2(PyObject *dict1, PyObject *dict2, char *name, PyObject *value)
+{
+    /* Insert an object into one or two dicts. Eats a reference to value.
+     * See also the implementation of PyDict_SetItemString(). */
+    PyObject *key = NULL;
+
+    if (dict1 == NULL && dict2 == NULL)
+        goto error;
+    if (value == NULL)
+        goto error;
+    key = PyString_FromString(name);
+    if (key == NULL)
+        goto error;
+#if 0
+    PyString_InternInPlace(&key);   /* XXX Should we really? */
+#endif
+    if (dict1 != NULL) {
+        assert(PyDict_GetItem(dict1, key) == NULL);
+        if (PyDict_SetItem(dict1, key, value) != 0)
+            goto error;
+    }
+    if (dict2 != NULL && dict2 != dict1) {
+        assert(PyDict_GetItem(dict2, key) == NULL);
+        if (PyDict_SetItem(dict2, key, value) != 0)
+            goto error;
+    }
+    Py_DECREF(key);
+    Py_DECREF(value);
+    return;
+error:
+    Py_FatalError("pycurl: FATAL: insobj2() failed");
+    assert(0);
+}
+
+static void
+insstr(PyObject *d, char *name, char *value)
+{
+    PyObject *v = PyString_FromString(value);
+    insobj2(d, NULL, name, v);
+}
+
+static void
+insint(PyObject *d, char *name, long value)
+{
+    PyObject *v = PyInt_FromLong(value);
+    insobj2(d, NULL, name, v);
+}
+
+static void
+insint_c(PyObject *d, char *name, long value)
+{
+    PyObject *v = PyInt_FromLong(value);
+    insobj2(d, curlobject_constants, name, v);
+}
+
+static void
+insint_m(PyObject *d, char *name, long value)
+{
+    PyObject *v = PyInt_FromLong(value);
+    insobj2(d, curlmultiobject_constants, name, v);
+}
+
+
+/* Initialization function for the module */
+#if defined(PyMODINIT_FUNC)
+PyMODINIT_FUNC
+#else
+#if defined(__cplusplus)
+extern "C"
+#endif
+DL_EXPORT(void)
+#endif
+initpycurl(void)
+{
+    PyObject *m, *d;
+    const curl_version_info_data *vi;
+
+    /* Initialize the type of the new type objects here; doing it here
+     * is required for portability to Windows without requiring C++. */
+    p_Curl_Type = &Curl_Type;
+    p_CurlMulti_Type = &CurlMulti_Type;
+    Curl_Type.ob_type = &PyType_Type;
+    CurlMulti_Type.ob_type = &PyType_Type;
+
+    /* Create the module and add the functions */
+    m = Py_InitModule3("pycurl", curl_methods, module_doc);
+    assert(m != NULL && PyModule_Check(m));
+
+    /* Add error object to the module */
+    d = PyModule_GetDict(m);
+    assert(d != NULL);
+    ErrorObject = PyErr_NewException("pycurl.error", NULL, NULL);
+    assert(ErrorObject != NULL);
+    PyDict_SetItemString(d, "error", ErrorObject);
+
+    curlobject_constants = PyDict_New();
+    assert(curlobject_constants != NULL);
+
+    /* Add version strings to the module */
+    insstr(d, "version", curl_version());
+    insstr(d, "COMPILE_DATE", __DATE__ " " __TIME__);
+    insint(d, "COMPILE_PY_VERSION_HEX", PY_VERSION_HEX);
+    insint(d, "COMPILE_LIBCURL_VERSION_NUM", LIBCURL_VERSION_NUM);
+
+    /**
+     ** the order of these constants mostly follows <curl/curl.h>
+     **/
+
+    /* Abort curl_read_callback(). */
+    insint_c(d, "READFUNC_ABORT", CURL_READFUNC_ABORT);
+
+    /* constants for ioctl callback return values */
+    insint_c(d, "IOE_OK", CURLIOE_OK);
+    insint_c(d, "IOE_UNKNOWNCMD", CURLIOE_UNKNOWNCMD);
+    insint_c(d, "IOE_FAILRESTART", CURLIOE_FAILRESTART);
+
+    /* curl_infotype: the kind of data that is passed to information_callback */
+/* XXX do we actually need curl_infotype in pycurl ??? */
+    insint_c(d, "INFOTYPE_TEXT", CURLINFO_TEXT);
+    insint_c(d, "INFOTYPE_HEADER_IN", CURLINFO_HEADER_IN);
+    insint_c(d, "INFOTYPE_HEADER_OUT", CURLINFO_HEADER_OUT);
+    insint_c(d, "INFOTYPE_DATA_IN", CURLINFO_DATA_IN);
+    insint_c(d, "INFOTYPE_DATA_OUT", CURLINFO_DATA_OUT);
+    insint_c(d, "INFOTYPE_SSL_DATA_IN", CURLINFO_SSL_DATA_IN);
+    insint_c(d, "INFOTYPE_SSL_DATA_OUT", CURLINFO_SSL_DATA_OUT);
+
+    /* CURLcode: error codes */
+/* FIXME: lots of error codes are missing */
+    insint_c(d, "E_OK", CURLE_OK);
+    insint_c(d, "E_UNSUPPORTED_PROTOCOL", CURLE_UNSUPPORTED_PROTOCOL);
+
+    /* curl_proxytype: constants for setopt(PROXYTYPE, x) */
+    insint_c(d, "PROXYTYPE_HTTP", CURLPROXY_HTTP);
+    insint_c(d, "PROXYTYPE_SOCKS4", CURLPROXY_SOCKS4);
+    insint_c(d, "PROXYTYPE_SOCKS5", CURLPROXY_SOCKS5);
+
+    /* curl_httpauth: constants for setopt(HTTPAUTH, x) */
+    insint_c(d, "HTTPAUTH_NONE", CURLAUTH_NONE);
+    insint_c(d, "HTTPAUTH_BASIC", CURLAUTH_BASIC);
+    insint_c(d, "HTTPAUTH_DIGEST", CURLAUTH_DIGEST);
+    insint_c(d, "HTTPAUTH_GSSNEGOTIATE", CURLAUTH_GSSNEGOTIATE);
+    insint_c(d, "HTTPAUTH_NTLM", CURLAUTH_NTLM);
+    insint_c(d, "HTTPAUTH_ANY", CURLAUTH_ANY);
+    insint_c(d, "HTTPAUTH_ANYSAFE", CURLAUTH_ANYSAFE);
+
+    /* curl_ftpssl: constants for setopt(FTP_SSL, x) */
+    insint_c(d, "FTPSSL_NONE", CURLFTPSSL_NONE);
+    insint_c(d, "FTPSSL_TRY", CURLFTPSSL_TRY);
+    insint_c(d, "FTPSSL_CONTROL", CURLFTPSSL_CONTROL);
+    insint_c(d, "FTPSSL_ALL", CURLFTPSSL_ALL);
+
+    /* curl_ftpauth: constants for setopt(FTPSSLAUTH, x) */
+    insint_c(d, "FTPAUTH_DEFAULT", CURLFTPAUTH_DEFAULT);
+    insint_c(d, "FTPAUTH_SSL", CURLFTPAUTH_SSL);
+    insint_c(d, "FTPAUTH_TLS", CURLFTPAUTH_TLS);
+
+    /* curl_ftpauth: constants for setopt(FTPSSLAUTH, x) */
+    insint_c(d, "FORM_CONTENTS", CURLFORM_COPYCONTENTS);
+    insint_c(d, "FORM_FILE", CURLFORM_FILE);
+    insint_c(d, "FORM_CONTENTTYPE", CURLFORM_CONTENTTYPE);
+
+    /* CURLoption: symbolic constants for setopt() */
+/* FIXME: reorder these to match <curl/curl.h> */
+    insint_c(d, "FILE", CURLOPT_WRITEDATA);
+    insint_c(d, "URL", CURLOPT_URL);
+    insint_c(d, "PORT", CURLOPT_PORT);
+    insint_c(d, "PROXY", CURLOPT_PROXY);
+    insint_c(d, "USERPWD", CURLOPT_USERPWD);
+    insint_c(d, "PROXYUSERPWD", CURLOPT_PROXYUSERPWD);
+    insint_c(d, "RANGE", CURLOPT_RANGE);
+    insint_c(d, "INFILE", CURLOPT_READDATA);
+    /* ERRORBUFFER is not supported */
+    insint_c(d, "WRITEFUNCTION", CURLOPT_WRITEFUNCTION);
+    insint_c(d, "READFUNCTION", CURLOPT_READFUNCTION);
+    insint_c(d, "TIMEOUT", CURLOPT_TIMEOUT);
+    insint_c(d, "INFILESIZE", CURLOPT_INFILESIZE_LARGE);    /* _LARGE ! */
+    insint_c(d, "POSTFIELDS", CURLOPT_POSTFIELDS);
+    insint_c(d, "REFERER", CURLOPT_REFERER);
+    insint_c(d, "FTPPORT", CURLOPT_FTPPORT);
+    insint_c(d, "USERAGENT", CURLOPT_USERAGENT);
+    insint_c(d, "LOW_SPEED_LIMIT", CURLOPT_LOW_SPEED_LIMIT);
+    insint_c(d, "LOW_SPEED_TIME", CURLOPT_LOW_SPEED_TIME);
+    insint_c(d, "RESUME_FROM", CURLOPT_RESUME_FROM_LARGE);  /* _LARGE ! */
+    insint_c(d, "WRITEDATA", CURLOPT_WRITEDATA);
+    insint_c(d, "READDATA", CURLOPT_READDATA);
+    insint_c(d, "PROXYPORT", CURLOPT_PROXYPORT);
+    insint_c(d, "HTTPPROXYTUNNEL", CURLOPT_HTTPPROXYTUNNEL);
+    insint_c(d, "VERBOSE", CURLOPT_VERBOSE);
+    insint_c(d, "HEADER", CURLOPT_HEADER);
+    insint_c(d, "NOPROGRESS", CURLOPT_NOPROGRESS);
+    insint_c(d, "NOBODY", CURLOPT_NOBODY);
+    insint_c(d, "FAILONERROR", CURLOPT_FAILONERROR);
+    insint_c(d, "UPLOAD", CURLOPT_UPLOAD);
+    insint_c(d, "POST", CURLOPT_POST);
+    insint_c(d, "FTPLISTONLY", CURLOPT_FTPLISTONLY);
+    insint_c(d, "FTPAPPEND", CURLOPT_FTPAPPEND);
+    insint_c(d, "NETRC", CURLOPT_NETRC);
+    insint_c(d, "FOLLOWLOCATION", CURLOPT_FOLLOWLOCATION);
+    insint_c(d, "TRANSFERTEXT", CURLOPT_TRANSFERTEXT);
+    insint_c(d, "PUT", CURLOPT_PUT);
+    insint_c(d, "POSTFIELDSIZE", CURLOPT_POSTFIELDSIZE_LARGE);  /* _LARGE ! */
+    insint_c(d, "COOKIE", CURLOPT_COOKIE);
+    insint_c(d, "HTTPHEADER", CURLOPT_HTTPHEADER);
+    insint_c(d, "HTTPPOST", CURLOPT_HTTPPOST);
+    insint_c(d, "SSLCERT", CURLOPT_SSLCERT);
+    insint_c(d, "SSLCERTPASSWD", CURLOPT_SSLCERTPASSWD);
+    insint_c(d, "CRLF", CURLOPT_CRLF);
+    insint_c(d, "QUOTE", CURLOPT_QUOTE);
+    insint_c(d, "POSTQUOTE", CURLOPT_POSTQUOTE);
+    insint_c(d, "PREQUOTE", CURLOPT_PREQUOTE);
+    insint_c(d, "WRITEHEADER", CURLOPT_WRITEHEADER);
+    insint_c(d, "HEADERFUNCTION", CURLOPT_HEADERFUNCTION);
+    insint_c(d, "COOKIEFILE", CURLOPT_COOKIEFILE);
+    insint_c(d, "SSLVERSION", CURLOPT_SSLVERSION);
+    insint_c(d, "TIMECONDITION", CURLOPT_TIMECONDITION);
+    insint_c(d, "TIMEVALUE", CURLOPT_TIMEVALUE);
+    insint_c(d, "CUSTOMREQUEST", CURLOPT_CUSTOMREQUEST);
+    insint_c(d, "STDERR", CURLOPT_STDERR);
+    insint_c(d, "INTERFACE", CURLOPT_INTERFACE);
+    insint_c(d, "KRB4LEVEL", CURLOPT_KRB4LEVEL);
+    insint_c(d, "PROGRESSFUNCTION", CURLOPT_PROGRESSFUNCTION);
+    insint_c(d, "SSL_VERIFYPEER", CURLOPT_SSL_VERIFYPEER);
+    insint_c(d, "CAPATH", CURLOPT_CAPATH);
+    insint_c(d, "CAINFO", CURLOPT_CAINFO);
+    insint_c(d, "OPT_FILETIME", CURLOPT_FILETIME);
+    insint_c(d, "MAXREDIRS", CURLOPT_MAXREDIRS);
+    insint_c(d, "MAXCONNECTS", CURLOPT_MAXCONNECTS);
+    insint_c(d, "CLOSEPOLICY", CURLOPT_CLOSEPOLICY);
+    insint_c(d, "FRESH_CONNECT", CURLOPT_FRESH_CONNECT);
+    insint_c(d, "FORBID_REUSE", CURLOPT_FORBID_REUSE);
+    insint_c(d, "RANDOM_FILE", CURLOPT_RANDOM_FILE);
+    insint_c(d, "EGDSOCKET", CURLOPT_EGDSOCKET);
+    insint_c(d, "CONNECTTIMEOUT", CURLOPT_CONNECTTIMEOUT);
+    insint_c(d, "HTTPGET", CURLOPT_HTTPGET);
+    insint_c(d, "SSL_VERIFYHOST", CURLOPT_SSL_VERIFYHOST);
+    insint_c(d, "COOKIEJAR", CURLOPT_COOKIEJAR);
+    insint_c(d, "SSL_CIPHER_LIST", CURLOPT_SSL_CIPHER_LIST);
+    insint_c(d, "HTTP_VERSION", CURLOPT_HTTP_VERSION);
+    insint_c(d, "FTP_USE_EPSV", CURLOPT_FTP_USE_EPSV);
+    insint_c(d, "SSLCERTTYPE", CURLOPT_SSLCERTTYPE);
+    insint_c(d, "SSLKEY", CURLOPT_SSLKEY);
+    insint_c(d, "SSLKEYTYPE", CURLOPT_SSLKEYTYPE);
+    insint_c(d, "SSLKEYPASSWD", CURLOPT_SSLKEYPASSWD);
+    insint_c(d, "SSLENGINE", CURLOPT_SSLENGINE);
+    insint_c(d, "SSLENGINE_DEFAULT", CURLOPT_SSLENGINE_DEFAULT);
+    insint_c(d, "DNS_CACHE_TIMEOUT", CURLOPT_DNS_CACHE_TIMEOUT);
+    insint_c(d, "DNS_USE_GLOBAL_CACHE", CURLOPT_DNS_USE_GLOBAL_CACHE);
+    insint_c(d, "DEBUGFUNCTION", CURLOPT_DEBUGFUNCTION);
+    insint_c(d, "BUFFERSIZE", CURLOPT_BUFFERSIZE);
+    insint_c(d, "NOSIGNAL", CURLOPT_NOSIGNAL);
+    insint_c(d, "SHARE", CURLOPT_SHARE);
+    insint_c(d, "PROXYTYPE", CURLOPT_PROXYTYPE);
+    insint_c(d, "ENCODING", CURLOPT_ENCODING);
+    insint_c(d, "HTTP200ALIASES", CURLOPT_HTTP200ALIASES);
+    insint_c(d, "UNRESTRICTED_AUTH", CURLOPT_UNRESTRICTED_AUTH);
+    insint_c(d, "FTP_USE_EPRT", CURLOPT_FTP_USE_EPRT);
+    insint_c(d, "HTTPAUTH", CURLOPT_HTTPAUTH);
+    insint_c(d, "FTP_CREATE_MISSING_DIRS", CURLOPT_FTP_CREATE_MISSING_DIRS);
+    insint_c(d, "PROXYAUTH", CURLOPT_PROXYAUTH);
+    insint_c(d, "FTP_RESPONSE_TIMEOUT", CURLOPT_FTP_RESPONSE_TIMEOUT);
+    insint_c(d, "IPRESOLVE", CURLOPT_IPRESOLVE);
+    insint_c(d, "MAXFILESIZE", CURLOPT_MAXFILESIZE_LARGE);  /* _LARGE ! */
+    insint_c(d, "INFILESIZE_LARGE", CURLOPT_INFILESIZE_LARGE);
+    insint_c(d, "RESUME_FROM_LARGE", CURLOPT_RESUME_FROM_LARGE);
+    insint_c(d, "MAXFILESIZE_LARGE", CURLOPT_MAXFILESIZE_LARGE);
+    insint_c(d, "NETRC_FILE", CURLOPT_NETRC_FILE);
+    insint_c(d, "FTP_SSL", CURLOPT_FTP_SSL);
+    insint_c(d, "POSTFIELDSIZE_LARGE", CURLOPT_POSTFIELDSIZE_LARGE);
+    insint_c(d, "TCP_NODELAY", CURLOPT_TCP_NODELAY);
+    insint_c(d, "SOURCE_USERPWD", CURLOPT_SOURCE_USERPWD);
+    insint_c(d, "SOURCE_PREQUOTE", CURLOPT_SOURCE_PREQUOTE);
+    insint_c(d, "SOURCE_POSTQUOTE", CURLOPT_SOURCE_POSTQUOTE);
+    insint_c(d, "FTPSSLAUTH", CURLOPT_FTPSSLAUTH);
+    insint_c(d, "IOCTLFUNCTION", CURLOPT_IOCTLFUNCTION);
+    insint_c(d, "IOCTLDATA", CURLOPT_IOCTLDATA);
+    insint_c(d, "SOURCE_URL", CURLOPT_SOURCE_URL);
+    insint_c(d, "SOURCE_QUOTE", CURLOPT_SOURCE_QUOTE);
+    insint_c(d, "FTP_ACCOUNT", CURLOPT_FTP_ACCOUNT);
+
+    /* constants for setopt(IPRESOLVE, x) */
+    insint_c(d, "IPRESOLVE_WHATEVER", CURL_IPRESOLVE_WHATEVER);
+    insint_c(d, "IPRESOLVE_V4", CURL_IPRESOLVE_V4);
+    insint_c(d, "IPRESOLVE_V6", CURL_IPRESOLVE_V6);
+
+    /* constants for setopt(HTTP_VERSION, x) */
+    insint_c(d, "CURL_HTTP_VERSION_NONE", CURL_HTTP_VERSION_NONE);
+    insint_c(d, "CURL_HTTP_VERSION_1_0", CURL_HTTP_VERSION_1_0);
+    insint_c(d, "CURL_HTTP_VERSION_1_1", CURL_HTTP_VERSION_1_1);
+    insint_c(d, "CURL_HTTP_VERSION_LAST", CURL_HTTP_VERSION_LAST);
+
+    /* CURL_NETRC_OPTION: constants for setopt(NETRC, x) */
+    insint_c(d, "NETRC_OPTIONAL", CURL_NETRC_OPTIONAL);
+    insint_c(d, "NETRC_IGNORED", CURL_NETRC_IGNORED);
+    insint_c(d, "NETRC_REQUIRED", CURL_NETRC_REQUIRED);
+
+    /* constants for setopt(SSLVERSION, x) */
+    insint_c(d, "SSLVERSION_DEFAULT", CURL_SSLVERSION_DEFAULT);
+    insint_c(d, "SSLVERSION_TLSv1", CURL_SSLVERSION_TLSv1);
+    insint_c(d, "SSLVERSION_SSLv2", CURL_SSLVERSION_SSLv2);
+    insint_c(d, "SSLVERSION_SSLv3", CURL_SSLVERSION_SSLv3);
+
+    /* curl_TimeCond: constants for setopt(TIMECONDITION, x) */
+    insint_c(d, "TIMECONDITION_NONE", CURL_TIMECOND_NONE);
+    insint_c(d, "TIMECONDITION_IFMODSINCE", CURL_TIMECOND_IFMODSINCE);
+    insint_c(d, "TIMECONDITION_IFUNMODSINCE", CURL_TIMECOND_IFUNMODSINCE);
+    insint_c(d, "TIMECONDITION_LASTMOD", CURL_TIMECOND_LASTMOD);
+
+    /* CURLINFO: symbolic constants for getinfo(x) */
+    insint_c(d, "EFFECTIVE_URL", CURLINFO_EFFECTIVE_URL);
+    insint_c(d, "HTTP_CODE", CURLINFO_HTTP_CODE);
+    insint_c(d, "RESPONSE_CODE", CURLINFO_HTTP_CODE);
+    insint_c(d, "TOTAL_TIME", CURLINFO_TOTAL_TIME);
+    insint_c(d, "NAMELOOKUP_TIME", CURLINFO_NAMELOOKUP_TIME);
+    insint_c(d, "CONNECT_TIME", CURLINFO_CONNECT_TIME);
+    insint_c(d, "PRETRANSFER_TIME", CURLINFO_PRETRANSFER_TIME);
+    insint_c(d, "SIZE_UPLOAD", CURLINFO_SIZE_UPLOAD);
+    insint_c(d, "SIZE_DOWNLOAD", CURLINFO_SIZE_DOWNLOAD);
+    insint_c(d, "SPEED_DOWNLOAD", CURLINFO_SPEED_DOWNLOAD);
+    insint_c(d, "SPEED_UPLOAD", CURLINFO_SPEED_UPLOAD);
+    insint_c(d, "HEADER_SIZE", CURLINFO_HEADER_SIZE);
+    insint_c(d, "REQUEST_SIZE", CURLINFO_REQUEST_SIZE);
+    insint_c(d, "SSL_VERIFYRESULT", CURLINFO_SSL_VERIFYRESULT);
+    insint_c(d, "INFO_FILETIME", CURLINFO_FILETIME);
+    insint_c(d, "CONTENT_LENGTH_DOWNLOAD", CURLINFO_CONTENT_LENGTH_DOWNLOAD);
+    insint_c(d, "CONTENT_LENGTH_UPLOAD", CURLINFO_CONTENT_LENGTH_UPLOAD);
+    insint_c(d, "STARTTRANSFER_TIME", CURLINFO_STARTTRANSFER_TIME);
+    insint_c(d, "CONTENT_TYPE", CURLINFO_CONTENT_TYPE);
+    insint_c(d, "REDIRECT_TIME", CURLINFO_REDIRECT_TIME);
+    insint_c(d, "REDIRECT_COUNT", CURLINFO_REDIRECT_COUNT);
+    insint_c(d, "HTTP_CONNECTCODE", CURLINFO_HTTP_CONNECTCODE);
+    insint_c(d, "HTTPAUTH_AVAIL", CURLINFO_HTTPAUTH_AVAIL);
+    insint_c(d, "PROXYAUTH_AVAIL", CURLINFO_PROXYAUTH_AVAIL);
+    insint_c(d, "OS_ERRNO", CURLINFO_OS_ERRNO);
+    insint_c(d, "NUM_CONNECTS", CURLINFO_NUM_CONNECTS);
+    insint_c(d, "SSL_ENGINES", CURLINFO_SSL_ENGINES);
+
+    /* curl_closepolicy: constants for setopt(CLOSEPOLICY, x) */
+    insint_c(d, "CLOSEPOLICY_OLDEST", CURLCLOSEPOLICY_OLDEST);
+    insint_c(d, "CLOSEPOLICY_LEAST_RECENTLY_USED", CURLCLOSEPOLICY_LEAST_RECENTLY_USED);
+    insint_c(d, "CLOSEPOLICY_LEAST_TRAFFIC", CURLCLOSEPOLICY_LEAST_TRAFFIC);
+    insint_c(d, "CLOSEPOLICY_SLOWEST", CURLCLOSEPOLICY_SLOWEST);
+    insint_c(d, "CLOSEPOLICY_CALLBACK", CURLCLOSEPOLICY_CALLBACK);
+
+    /* options for global_init() */
+    insint(d, "GLOBAL_SSL", CURL_GLOBAL_SSL);
+    insint(d, "GLOBAL_WIN32", CURL_GLOBAL_WIN32);
+    insint(d, "GLOBAL_ALL", CURL_GLOBAL_ALL);
+    insint(d, "GLOBAL_NOTHING", CURL_GLOBAL_NOTHING);
+    insint(d, "GLOBAL_DEFAULT", CURL_GLOBAL_DEFAULT);
+
+    /* curl_lock_data: XXX do we need this in pycurl ??? */
+    /* curl_lock_access: XXX do we need this in pycurl ??? */
+    /* CURLSHcode: XXX do we need this in pycurl ??? */
+    /* CURLSHoption: XXX do we need this in pycurl ??? */
+
+    /* CURLversion: constants for curl_version_info(x) */
+#if 0
+    /* XXX - do we need these ?? */
+    insint(d, "VERSION_FIRST", CURLVERSION_FIRST);
+    insint(d, "VERSION_SECOND", CURLVERSION_SECOND);
+    insint(d, "VERSION_THIRD", CURLVERSION_THIRD);
+    insint(d, "VERSION_NOW", CURLVERSION_NOW);
+#endif
+
+    /* version features - bitmasks for curl_version_info_data.features */
+#if 0
+    /* XXX - do we need these ?? */
+    /* XXX - should we really rename these ?? */
+    insint(d, "VERSION_FEATURE_IPV6", CURL_VERSION_IPV6);
+    insint(d, "VERSION_FEATURE_KERBEROS4", CURL_VERSION_KERBEROS4);
+    insint(d, "VERSION_FEATURE_SSL", CURL_VERSION_SSL);
+    insint(d, "VERSION_FEATURE_LIBZ", CURL_VERSION_LIBZ);
+    insint(d, "VERSION_FEATURE_NTLM", CURL_VERSION_NTLM);
+    insint(d, "VERSION_FEATURE_GSSNEGOTIATE", CURL_VERSION_GSSNEGOTIATE);
+    insint(d, "VERSION_FEATURE_DEBUG", CURL_VERSION_DEBUG);
+    insint(d, "VERSION_FEATURE_ASYNCHDNS", CURL_VERSION_ASYNCHDNS);
+    insint(d, "VERSION_FEATURE_SPNEGO", CURL_VERSION_SPNEGO);
+    insint(d, "VERSION_FEATURE_LARGEFILE", CURL_VERSION_LARGEFILE);
+    insint(d, "VERSION_FEATURE_IDN", CURL_VERSION_IDN);
+#endif
+
+    /**
+     ** the order of these constants mostly follows <curl/multi.h>
+     **/
+
+    /* CURLMcode: multi error codes */
+    insint_m(d, "E_CALL_MULTI_PERFORM", CURLM_CALL_MULTI_PERFORM);
+    insint_m(d, "E_MULTI_OK", CURLM_OK);
+    insint_m(d, "E_MULTI_BAD_HANDLE", CURLM_BAD_HANDLE);
+    insint_m(d, "E_MULTI_BAD_EASY_HANDLE", CURLM_BAD_EASY_HANDLE);
+    insint_m(d, "E_MULTI_OUT_OF_MEMORY", CURLM_OUT_OF_MEMORY);
+    insint_m(d, "E_MULTI_INTERNAL_ERROR", CURLM_INTERNAL_ERROR);
+
+    /* Check the version, as this has caused nasty problems in
+     * some cases. */
+    vi = curl_version_info(CURLVERSION_NOW);
+    if (vi == NULL) {
+        Py_FatalError("pycurl: FATAL: curl_version_info() failed");
+        assert(0);
+    }
+    if (vi->version_num < LIBCURL_VERSION_NUM) {
+        Py_FatalError("pycurl: FATAL: libcurl link-time version is older than compile-time version");
+        assert(0);
+    }
+
+    /* Finally initialize global interpreter lock */
+    PyEval_InitThreads();
+}
+
+/* vi:ts=4:et:nowrap
+ */
diff --git a/trunk/pycurl/tests/test.py b/trunk/pycurl/tests/test.py
new file mode 100644 (file)
index 0000000..743c311
--- /dev/null
@@ -0,0 +1,74 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import sys, threading, time
+import pycurl
+
+# We should ignore SIGPIPE when using pycurl.NOSIGNAL - see
+# the libcurl tutorial for more info.
+try:
+    import signal
+    from signal import SIGPIPE, SIG_IGN
+    signal.signal(signal.SIGPIPE, signal.SIG_IGN)
+except ImportError:
+    pass
+
+
+class Test(threading.Thread):
+    def __init__(self, url, ofile):
+        threading.Thread.__init__(self)
+        self.curl = pycurl.Curl()
+        self.curl.setopt(pycurl.URL, url)
+        self.curl.setopt(pycurl.WRITEDATA, ofile)
+        self.curl.setopt(pycurl.FOLLOWLOCATION, 1)
+        self.curl.setopt(pycurl.MAXREDIRS, 5)
+        self.curl.setopt(pycurl.NOSIGNAL, 1)
+
+    def run(self):
+        self.curl.perform()
+        self.curl.close()
+        sys.stdout.write(".")
+        sys.stdout.flush()
+
+
+# Read list of URIs from file specified on commandline
+try:
+    urls = open(sys.argv[1]).readlines()
+except IndexError:
+    # No file was specified, show usage string
+    print "Usage: %s <file with uris to fetch>" % sys.argv[0]
+    raise SystemExit
+
+# Initialize thread array and the file number
+threads = []
+fileno = 0
+
+# Start one thread per URI in parallel
+t1 = time.time()
+for url in urls:
+    f = open(str(fileno), "wb")
+    t = Test(url, f)
+    t.start()
+    threads.append((t, f))
+    fileno = fileno + 1
+# Wait for all threads to finish
+for thread, file in threads:
+    thread.join()
+    file.close()
+t2 = time.time()
+print "\n** Multithreading, %d seconds elapsed for %d uris" % (int(t2-t1), len(urls))
+
+# Start one thread per URI in sequence
+fileno = 0
+t1 = time.time()
+for url in urls:
+    f = open(str(fileno), "wb")
+    t = Test(url, f)
+    t.start()
+    fileno = fileno + 1
+    t.join()
+    f.close()
+t2 = time.time()
+print "\n** Singlethreading, %d seconds elapsed for %d uris" % (int(t2-t1), len(urls))
diff --git a/trunk/pycurl/tests/test_cb.py b/trunk/pycurl/tests/test_cb.py
new file mode 100644 (file)
index 0000000..1be305c
--- /dev/null
@@ -0,0 +1,28 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import sys
+import pycurl
+
+## Callback function invoked when body data is ready
+def body(buf):
+    # Print body data to stdout
+    sys.stdout.write(buf)
+
+## Callback function invoked when header data is ready
+def header(buf):
+    # Print header data to stderr
+    sys.stderr.write(buf)
+
+c = pycurl.Curl()
+c.setopt(pycurl.URL, 'http://www.python.org/')
+c.setopt(pycurl.WRITEFUNCTION, body)
+c.setopt(pycurl.HEADERFUNCTION, header)
+c.setopt(pycurl.FOLLOWLOCATION, 1)
+c.setopt(pycurl.MAXREDIRS, 5)
+c.perform()
+c.setopt(pycurl.URL, 'http://curl.haxx.se/')
+c.perform()
+c.close()
diff --git a/trunk/pycurl/tests/test_debug.py b/trunk/pycurl/tests/test_debug.py
new file mode 100644 (file)
index 0000000..d439b16
--- /dev/null
@@ -0,0 +1,16 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import pycurl
+
+def test(t, b):
+    print "debug(%d): %s" % (t, b)
+
+c = pycurl.Curl()
+c.setopt(pycurl.URL, 'http://curl.haxx.se/')
+c.setopt(pycurl.VERBOSE, 1)
+c.setopt(pycurl.DEBUGFUNCTION, test)
+c.perform()
+c.close()
diff --git a/trunk/pycurl/tests/test_getinfo.py b/trunk/pycurl/tests/test_getinfo.py
new file mode 100644 (file)
index 0000000..ed64594
--- /dev/null
@@ -0,0 +1,49 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import time
+import pycurl
+
+
+## Callback function invoked when progress information is updated
+def progress(download_t, download_d, upload_t, upload_d):
+    print "Total to download %d bytes, have %d bytes so far" % \
+          (download_t, download_d)
+
+url = "http://www.cnn.com"
+
+print "Starting downloading", url
+print
+f = open("body", "wb")
+h = open("header", "wb")
+c = pycurl.Curl()
+c.setopt(c.URL, url)
+c.setopt(c.WRITEDATA, f)
+c.setopt(c.NOPROGRESS, 0)
+c.setopt(c.PROGRESSFUNCTION, progress)
+c.setopt(c.FOLLOWLOCATION, 1)
+c.setopt(c.MAXREDIRS, 5)
+c.setopt(c.WRITEHEADER, h)
+c.setopt(c.OPT_FILETIME, 1)
+c.perform()
+
+print
+print "HTTP-code:", c.getinfo(c.HTTP_CODE)
+print "Total-time:", c.getinfo(c.TOTAL_TIME)
+print "Download speed: %.2f bytes/second" % c.getinfo(c.SPEED_DOWNLOAD)
+print "Document size: %d bytes" % c.getinfo(c.SIZE_DOWNLOAD)
+print "Effective URL:", c.getinfo(c.EFFECTIVE_URL)
+print "Content-type:", c.getinfo(c.CONTENT_TYPE)
+print "Namelookup-time:", c.getinfo(c.NAMELOOKUP_TIME)
+print "Redirect-time:", c.getinfo(c.REDIRECT_TIME)
+print "Redirect-count:", c.getinfo(c.REDIRECT_COUNT)
+epoch = c.getinfo(c.INFO_FILETIME)
+print "Filetime: %d (%s)" % (epoch, time.ctime(epoch))
+print
+print "Header is in file 'header', body is in file 'body'"
+
+c.close()
+f.close()
+h.close()
diff --git a/trunk/pycurl/tests/test_gtk.py b/trunk/pycurl/tests/test_gtk.py
new file mode 100644 (file)
index 0000000..9626310
--- /dev/null
@@ -0,0 +1,93 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import sys, threading
+from gtk import *
+import pycurl
+
+# We should ignore SIGPIPE when using pycurl.NOSIGNAL - see
+# the libcurl tutorial for more info.
+try:
+    import signal
+    from signal import SIGPIPE, SIG_IGN
+    signal.signal(signal.SIGPIPE, signal.SIG_IGN)
+except ImportError:
+    pass
+
+
+class ProgressBar:
+    def __init__(self, uri):
+        self.round = 0.0
+        win = GtkDialog()
+        win.set_title("PycURL progress")
+        win.show()
+        vbox = GtkVBox(spacing=5)
+        vbox.set_border_width(10)
+        win.vbox.pack_start(vbox)
+        win.set_default_size(200, 20)
+        vbox.show()
+        label = GtkLabel("Downloading %s" % uri)
+        label.set_alignment(0, 0.5)
+        vbox.pack_start(label, expand=FALSE)
+        label.show()
+        pbar = GtkProgressBar()
+        pbar.show()
+        self.pbar = pbar
+        vbox.pack_start(pbar)
+        win.connect("destroy", self.close_app)
+        win.connect("delete_event", self.close_app)
+
+    def progress(self, download_t, download_d, upload_t, upload_d):
+        threads_enter()
+        if download_t == 0:
+            self.round = self.round + 0.1
+            if self.round >= 1.0:  self.round = 0.0
+        else:
+            self.round = float(download_d) / float(download_t)
+        self.pbar.update(self.round)
+        threads_leave()
+
+    def mainloop(self):
+        threads_enter()
+        mainloop()
+        threads_leave()
+
+    def close_app(self, *args):
+        args[0].destroy()
+        mainquit()
+
+
+class Test(threading.Thread):
+    def __init__(self, url, target_file, progress):
+        threading.Thread.__init__(self)
+        self.target_file = target_file
+        self.progress = progress
+        self.curl = pycurl.Curl()
+        self.curl.setopt(pycurl.URL, url)
+        self.curl.setopt(pycurl.WRITEDATA, self.target_file)
+        self.curl.setopt(pycurl.FOLLOWLOCATION, 1)
+        self.curl.setopt(pycurl.NOPROGRESS, 0)
+        self.curl.setopt(pycurl.PROGRESSFUNCTION, self.progress)
+        self.curl.setopt(pycurl.MAXREDIRS, 5)
+        self.curl.setopt(pycurl.NOSIGNAL, 1)
+
+    def run(self):
+        self.curl.perform()
+        self.curl.close()
+        self.target_file.close()
+        self.progress(1.0, 1.0, 0, 0)
+
+
+# Check command line args
+if len(sys.argv) < 3:
+    print "Usage: %s <URL> <filename>" % sys.argv[0]
+    raise SystemExit
+
+# Make a progress bar window
+p = ProgressBar(sys.argv[1])
+# Start thread for fetching url
+Test(sys.argv[1], open(sys.argv[2], 'wb'), p.progress).start()
+# Enter the GTK mainloop
+p.mainloop()
diff --git a/trunk/pycurl/tests/test_internals.py b/trunk/pycurl/tests/test_internals.py
new file mode 100644 (file)
index 0000000..a1a6533
--- /dev/null
@@ -0,0 +1,253 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+#
+# a simple self-test
+#
+
+try:
+    # need Python 2.2 or better for garbage collection
+    from gc import get_objects
+    import gc
+    del get_objects
+    gc.enable()
+except ImportError:
+    gc = None
+import copy, os, sys
+from StringIO import StringIO
+try:
+    import cPickle
+except ImportError:
+    cPickle = None
+try:
+    import pickle
+except ImportError:
+    pickle = None
+
+# update sys.path when running in the build directory
+from util import get_sys_path
+sys.path = get_sys_path()
+
+import pycurl
+from pycurl import Curl, CurlMulti
+
+
+class opts:
+    verbose = 1
+
+if "-q" in sys.argv:
+    opts.verbose = opts.verbose - 1
+
+
+print "Python", sys.version
+print "PycURL %s (compiled against 0x%x)" % (pycurl.version, pycurl.COMPILE_LIBCURL_VERSION_NUM)
+print "PycURL version info", pycurl.version_info()
+print "  %s, compiled %s" % (pycurl.__file__, pycurl.COMPILE_DATE)
+
+
+# /***********************************************************************
+# // test misc
+# ************************************************************************/
+
+if 1:
+    c = Curl()
+    assert c.URL is pycurl.URL
+    del c
+
+
+# /***********************************************************************
+# // test handles
+# ************************************************************************/
+
+# remove an invalid handle: this should fail
+if 1:
+    m = CurlMulti()
+    c = Curl()
+    try:
+        m.remove_handle(c)
+    except pycurl.error:
+        pass
+    else:
+        assert 0, "internal error"
+    del m, c
+
+
+# remove an invalid but closed handle
+if 1:
+    m = CurlMulti()
+    c = Curl()
+    c.close()
+    m.remove_handle(c)
+    del m, c
+
+
+# add a closed handle: this should fail
+if 1:
+    m = CurlMulti()
+    c = Curl()
+    c.close()
+    try:
+        m.add_handle(c)
+    except pycurl.error:
+        pass
+    else:
+        assert 0, "internal error"
+    m.close()
+    del m, c
+
+
+# add a handle twice: this should fail
+if 1:
+    m = CurlMulti()
+    c = Curl()
+    m.add_handle(c)
+    try:
+        m.add_handle(c)
+    except pycurl.error:
+        pass
+    else:
+        assert 0, "internal error"
+    del m, c
+
+
+# add a handle on multiple stacks: this should fail
+if 1:
+    m1 = CurlMulti()
+    m2 = CurlMulti()
+    c = Curl()
+    m1.add_handle(c)
+    try:
+        m2.add_handle(c)
+    except pycurl.error:
+        pass
+    else:
+        assert 0, "internal error"
+    del m1, m2, c
+
+
+# move a handle
+if 1:
+    m1 = CurlMulti()
+    m2 = CurlMulti()
+    c = Curl()
+    m1.add_handle(c)
+    m1.remove_handle(c)
+    m2.add_handle(c)
+    del m1, m2, c
+
+
+# /***********************************************************************
+# // test copying and pickling - copying and pickling of
+# // instances of Curl and CurlMulti is not allowed
+# ************************************************************************/
+
+if 1 and copy:
+    c = Curl()
+    m = CurlMulti()
+    try:
+        copy.copy(c)
+    except copy.Error:
+        pass
+    else:
+        assert 0, "internal error - copying should fail"
+    try:
+        copy.copy(m)
+    except copy.Error:
+        pass
+    else:
+        assert 0, "internal error - copying should fail"
+
+if 1 and pickle:
+    c = Curl()
+    m = CurlMulti()
+    fp = StringIO()
+    p = pickle.Pickler(fp, 1)
+    try:
+        p.dump(c)
+    except pickle.PicklingError:
+        pass
+    else:
+        assert 0, "internal error - pickling should fail"
+    try:
+        p.dump(m)
+    except pickle.PicklingError:
+        pass
+    else:
+        assert 0, "internal error - pickling should fail"
+    del c, m, fp, p
+
+if 1 and cPickle:
+    c = Curl()
+    m = CurlMulti()
+    fp = StringIO()
+    p = cPickle.Pickler(fp, 1)
+    try:
+        p.dump(c)
+    except cPickle.PicklingError:
+        pass
+    else:
+        assert 0, "internal error - pickling should fail"
+    try:
+        p.dump(m)
+    except cPickle.PicklingError:
+        pass
+    else:
+        assert 0, "internal error - pickling should fail"
+    del c, m, fp, p
+
+
+# /***********************************************************************
+# // test refcounts
+# ************************************************************************/
+
+# basic check of reference counting (use a memory checker like valgrind)
+if 1:
+    c = Curl()
+    m = CurlMulti()
+    m.add_handle(c)
+    del m
+    m = CurlMulti()
+    c.close()
+    del m, c
+
+# basic check of cyclic garbage collection
+if 1 and gc:
+    gc.collect()
+    c = Curl()
+    c.m = CurlMulti()
+    c.m.add_handle(c)
+    # create some nasty cyclic references
+    c.c = c
+    c.c.c1 = c
+    c.c.c2 = c
+    c.c.c3 = c.c
+    c.c.c4 = c.m
+    c.m.c = c
+    c.m.m = c.m
+    c.m.c = c
+    # delete
+    gc.collect()
+    flags = gc.DEBUG_COLLECTABLE | gc.DEBUG_UNCOLLECTABLE | gc.DEBUG_OBJECTS
+    if opts.verbose >= 1:
+        flags = flags | gc.DEBUG_STATS
+    gc.set_debug(flags)
+    gc.collect()
+    ##print gc.get_referrers(c)
+    ##print gc.get_objects()
+    if opts.verbose >= 1:
+        print "Tracked objects:", len(gc.get_objects())
+    # The `del' below should delete these 4 objects:
+    #   Curl + internal dict, CurlMulti + internal dict
+    del c
+    gc.collect()
+    if opts.verbose >= 1:
+        print "Tracked objects:", len(gc.get_objects())
+
+
+# /***********************************************************************
+# // done
+# ************************************************************************/
+
+print "All tests passed."
diff --git a/trunk/pycurl/tests/test_memleak.py b/trunk/pycurl/tests/test_memleak.py
new file mode 100644 (file)
index 0000000..8577b97
--- /dev/null
@@ -0,0 +1,53 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+#
+# just a simple self-test
+# need Python 2.2 or better for garbage collection
+#
+
+import gc, pycurl, sys
+gc.enable()
+
+
+print "Python", sys.version
+print "PycURL %s (compiled against 0x%x)" % (pycurl.version, pycurl.COMPILE_LIBCURL_VERSION_NUM)
+##print "PycURL version info", pycurl.version_info()
+print "  %s, compiled %s" % (pycurl.__file__, pycurl.COMPILE_DATE)
+
+
+gc.collect()
+flags = gc.DEBUG_COLLECTABLE | gc.DEBUG_UNCOLLECTABLE | gc.DEBUG_OBJECTS
+if 1:
+    flags = flags | gc.DEBUG_STATS
+gc.set_debug(flags)
+gc.collect()
+
+print "Tracked objects:", len(gc.get_objects())
+
+multi = pycurl.CurlMulti()
+t = []
+for a in range(100):
+    curl = pycurl.Curl()
+    multi.add_handle(curl)
+    t.append(curl)
+
+print "Tracked objects:", len(gc.get_objects())
+
+for curl in t:
+    curl.close()
+    multi.remove_handle(curl)
+
+print "Tracked objects:", len(gc.get_objects())
+
+del curl
+del t
+del multi
+
+print "Tracked objects:", len(gc.get_objects())
+gc.collect()
+print "Tracked objects:", len(gc.get_objects())
+
+
diff --git a/trunk/pycurl/tests/test_multi.py b/trunk/pycurl/tests/test_multi.py
new file mode 100644 (file)
index 0000000..01312be
--- /dev/null
@@ -0,0 +1,33 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import pycurl
+
+m = pycurl.CurlMulti()
+m.handles = []
+c1 = pycurl.Curl()
+c2 = pycurl.Curl()
+c1.setopt(c1.URL, 'http://curl.haxx.se')
+c2.setopt(c2.URL, 'http://cnn.com')
+c2.setopt(c2.FOLLOWLOCATION, 1)
+m.add_handle(c1)
+m.add_handle(c2)
+m.handles.append(c1)
+m.handles.append(c2)
+
+num_handles = len(m.handles)
+while num_handles:
+    while 1:
+        ret, num_handles = m.perform()
+        if ret != pycurl.E_CALL_MULTI_PERFORM:
+            break
+    m.select()
+
+m.remove_handle(c2)
+m.remove_handle(c1)
+del m.handles
+m.close()
+c1.close()
+c2.close()
diff --git a/trunk/pycurl/tests/test_multi2.py b/trunk/pycurl/tests/test_multi2.py
new file mode 100644 (file)
index 0000000..182e0dc
--- /dev/null
@@ -0,0 +1,72 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import os, sys
+try:
+    from cStringIO import StringIO
+except ImportError:
+    from StringIO import StringIO
+import pycurl
+
+
+urls = (
+    "http://curl.haxx.se",
+    "http://www.python.org",
+    "http://pycurl.sourceforge.net",
+    "http://pycurl.sourceforge.net/tests/403_FORBIDDEN",  # that actually exists ;-)
+    "http://pycurl.sourceforge.net/tests/404_NOT_FOUND",
+)
+
+# Read list of URIs from file specified on commandline
+try:
+    urls = open(sys.argv[1], "rb").readlines()
+except IndexError:
+    # No file was specified
+    pass
+
+# init
+m = pycurl.CurlMulti()
+m.handles = []
+for url in urls:
+    c = pycurl.Curl()
+    # save info in standard Python attributes
+    c.url = url
+    c.body = StringIO()
+    c.http_code = -1
+    m.handles.append(c)
+    # pycurl API calls
+    c.setopt(c.URL, c.url)
+    c.setopt(c.WRITEFUNCTION, c.body.write)
+    m.add_handle(c)
+
+# get data
+num_handles = len(m.handles)
+while num_handles:
+     while 1:
+         ret, num_handles = m.perform()
+         if ret != pycurl.E_CALL_MULTI_PERFORM:
+             break
+     # currently no more I/O is pending, could do something in the meantime
+     # (display a progress bar, etc.)
+     m.select()
+
+# close handles
+for c in m.handles:
+    # save info in standard Python attributes
+    c.http_code = c.getinfo(c.HTTP_CODE)
+    # pycurl API calls
+    m.remove_handle(c)
+    c.close()
+m.close()
+
+# print result
+for c in m.handles:
+    data = c.body.getvalue()
+    if 0:
+        print "**********", c.url, "**********"
+        print data
+    else:
+        print "%-53s http_code %3d, %6d bytes" % (c.url, c.http_code, len(data))
+
diff --git a/trunk/pycurl/tests/test_multi3.py b/trunk/pycurl/tests/test_multi3.py
new file mode 100644 (file)
index 0000000..0ef514a
--- /dev/null
@@ -0,0 +1,87 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+# same as test_multi2.py, but enforce some debugging and strange API-calls
+
+import os, sys
+try:
+    from cStringIO import StringIO
+except ImportError:
+    from StringIO import StringIO
+import pycurl
+
+
+urls = (
+    "http://curl.haxx.se",
+    "http://www.python.org",
+    "http://pycurl.sourceforge.net",
+    "http://pycurl.sourceforge.net/THIS_HANDLE_IS_CLOSED",
+)
+
+# init
+m = pycurl.CurlMulti()
+m.handles = []
+for url in urls:
+    c = pycurl.Curl()
+    # save info in standard Python attributes
+    c.url = url
+    c.body = StringIO()
+    c.http_code = -1
+    c.debug = 0
+    m.handles.append(c)
+    # pycurl API calls
+    c.setopt(c.URL, c.url)
+    c.setopt(c.WRITEFUNCTION, c.body.write)
+    m.add_handle(c)
+
+# debug - close a handle
+if 1:
+    c = m.handles[3]
+    c.debug = 1
+    c.close()
+
+# get data
+num_handles = len(m.handles)
+while num_handles:
+    while 1:
+        ret, num_handles = m.perform()
+        if ret != pycurl.E_CALL_MULTI_PERFORM:
+            break
+    # currently no more I/O is pending, could do something in the meantime
+    # (display a progress bar, etc.)
+    m.select()
+
+# close handles
+for c in m.handles:
+    # save info in standard Python attributes
+    try:
+        c.http_code = c.getinfo(c.HTTP_CODE)
+    except pycurl.error:
+        # handle already closed - see debug above
+        assert c.debug
+        c.http_code = -1
+    # pycurl API calls
+    if 0:
+        m.remove_handle(c)
+        c.close()
+    elif 0:
+        # in the C API this is the wrong calling order, but pycurl
+        # handles this automatically
+        c.close()
+        m.remove_handle(c)
+    else:
+        # actually, remove_handle is called automatically on close
+        c.close()
+m.close()
+
+# print result
+for c in m.handles:
+    data = c.body.getvalue()
+    if 0:
+        print "**********", c.url, "**********"
+        print data
+    else:
+        print "%-53s http_code %3d, %6d bytes" % (c.url, c.http_code, len(data))
+
diff --git a/trunk/pycurl/tests/test_multi4.py b/trunk/pycurl/tests/test_multi4.py
new file mode 100644 (file)
index 0000000..0c024a4
--- /dev/null
@@ -0,0 +1,57 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import sys, select, time
+import pycurl
+
+c1 = pycurl.Curl()
+c2 = pycurl.Curl()
+c3 = pycurl.Curl()
+c1.setopt(c1.URL, "http://www.python.org")
+c2.setopt(c2.URL, "http://curl.haxx.se")
+c3.setopt(c3.URL, "http://slashdot.org")
+c1.body = open("doc1", "wb")
+c2.body = open("doc2", "wb")
+c3.body = open("doc3", "wb")
+c1.setopt(c1.WRITEFUNCTION, c1.body.write)
+c2.setopt(c2.WRITEFUNCTION, c2.body.write)
+c3.setopt(c3.WRITEFUNCTION, c3.body.write)
+
+m = pycurl.CurlMulti()
+m.add_handle(c1)
+m.add_handle(c2)
+m.add_handle(c3)
+
+# Number of seconds to wait for a timeout to happen
+SELECT_TIMEOUT = 10
+
+# Stir the state machine into action
+while 1:
+    ret, num_handles = m.perform()
+    if ret != pycurl.E_CALL_MULTI_PERFORM:
+        break
+
+# Keep going until all the connections have terminated
+while num_handles:
+    apply(select.select, m.fdset() + (SELECT_TIMEOUT,))
+    while 1:
+        ret, num_handles = m.perform()
+        if ret != pycurl.E_CALL_MULTI_PERFORM:
+            break
+
+# Cleanup
+m.remove_handle(c3)
+m.remove_handle(c2)
+m.remove_handle(c1)
+m.close()
+c1.body.close()
+c2.body.close()
+c3.body.close()
+c1.close()
+c2.close()
+c3.close()
+print "http://www.python.org is in file doc1"
+print "http://curl.haxx.se is in file doc2"
+print "http://slashdot.org is in file doc3"
diff --git a/trunk/pycurl/tests/test_multi5.py b/trunk/pycurl/tests/test_multi5.py
new file mode 100644 (file)
index 0000000..b55dd7e
--- /dev/null
@@ -0,0 +1,60 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import sys, select, time
+import pycurl
+
+c1 = pycurl.Curl()
+c2 = pycurl.Curl()
+c3 = pycurl.Curl()
+c1.setopt(c1.URL, "http://www.python.org")
+c2.setopt(c2.URL, "http://curl.haxx.se")
+c3.setopt(c3.URL, "http://slashdot.org")
+c1.body = open("doc1", "wb")
+c2.body = open("doc2", "wb")
+c3.body = open("doc3", "wb")
+c1.setopt(c1.WRITEFUNCTION, c1.body.write)
+c2.setopt(c2.WRITEFUNCTION, c2.body.write)
+c3.setopt(c3.WRITEFUNCTION, c3.body.write)
+
+m = pycurl.CurlMulti()
+m.add_handle(c1)
+m.add_handle(c2)
+m.add_handle(c3)
+
+# Number of seconds to wait for a timeout to happen
+SELECT_TIMEOUT = 10
+
+# Stir the state machine into action
+while 1:
+    ret, num_handles = m.perform()
+    if ret != pycurl.E_CALL_MULTI_PERFORM:
+        break
+
+# Keep going until all the connections have terminated
+while num_handles:
+    # The select method uses fdset internally to determine which file descriptors
+    # to check.
+    m.select(SELECT_TIMEOUT)
+    while 1:
+        ret, num_handles = m.perform()
+        if ret != pycurl.E_CALL_MULTI_PERFORM:
+            break
+
+# Cleanup
+m.remove_handle(c3)
+m.remove_handle(c2)
+m.remove_handle(c1)
+m.close()
+c1.body.close()
+c2.body.close()
+c3.body.close()
+c1.close()
+c2.close()
+c3.close()
+print "http://www.python.org is in file doc1"
+print "http://curl.haxx.se is in file doc2"
+print "http://slashdot.org is in file doc3"
+
diff --git a/trunk/pycurl/tests/test_multi6.py b/trunk/pycurl/tests/test_multi6.py
new file mode 100644 (file)
index 0000000..6ff8e92
--- /dev/null
@@ -0,0 +1,62 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import sys, select, time
+import pycurl
+
+c1 = pycurl.Curl()
+c2 = pycurl.Curl()
+c3 = pycurl.Curl()
+c1.setopt(c1.URL, "http://www.python.org")
+c2.setopt(c2.URL, "http://curl.haxx.se")
+c3.setopt(c3.URL, "http://slashdot.org")
+c1.body = open("doc1", "wb")
+c2.body = open("doc2", "wb")
+c3.body = open("doc3", "wb")
+c1.setopt(c1.WRITEFUNCTION, c1.body.write)
+c2.setopt(c2.WRITEFUNCTION, c2.body.write)
+c3.setopt(c3.WRITEFUNCTION, c3.body.write)
+
+m = pycurl.CurlMulti()
+m.add_handle(c1)
+m.add_handle(c2)
+m.add_handle(c3)
+
+# Number of seconds to wait for a timeout to happen
+SELECT_TIMEOUT = 10
+
+# Stir the state machine into action
+while 1:
+    ret, num_handles = m.perform()
+    if ret != pycurl.E_CALL_MULTI_PERFORM:
+        break
+
+# Keep going until all the connections have terminated
+while num_handles:
+    # The select method uses fdset internally to determine which file descriptors
+    # to check.
+    m.select(SELECT_TIMEOUT)
+    while 1:
+        ret, num_handles = m.perform()
+        # Print the message, if any
+        print m.info_read(1)
+        if ret != pycurl.E_CALL_MULTI_PERFORM:
+            break
+
+# Cleanup
+m.remove_handle(c3)
+m.remove_handle(c2)
+m.remove_handle(c1)
+m.close()
+c1.body.close()
+c2.body.close()
+c3.body.close()
+c1.close()
+c2.close()
+c3.close()
+print "http://www.python.org is in file doc1"
+print "http://curl.haxx.se is in file doc2"
+print "http://slashdot.org is in file doc3"
+
diff --git a/trunk/pycurl/tests/test_multi_vs_thread.py b/trunk/pycurl/tests/test_multi_vs_thread.py
new file mode 100644 (file)
index 0000000..c242d30
--- /dev/null
@@ -0,0 +1,262 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import os, sys, time
+from threading import Thread, RLock
+try:
+    from cStringIO import StringIO
+except ImportError:
+    from StringIO import StringIO
+import pycurl
+
+# We should ignore SIGPIPE when using pycurl.NOSIGNAL - see
+# the libcurl tutorial for more info.
+try:
+    import signal
+    from signal import SIGPIPE, SIG_IGN
+    signal.signal(signal.SIGPIPE, signal.SIG_IGN)
+except ImportError:
+    pass
+
+# The conclusion is: the multi interface is fastest!
+
+NUM_PAGES = 30
+NUM_THREADS = 10
+assert NUM_PAGES % NUM_THREADS == 0
+
+##URL = "http://pycurl.sourceforge.net/tests/testgetvars.php?%d"
+URL = "http://pycurl.sourceforge.net/tests/teststaticpage.html?%d"
+
+
+#
+# util
+#
+
+class Curl:
+    def __init__(self, url):
+        self.url = url
+        self.body = StringIO()
+        self.http_code = -1
+        # pycurl API calls
+        self._curl = pycurl.Curl()
+        self._curl.setopt(pycurl.URL, self.url)
+        self._curl.setopt(pycurl.WRITEFUNCTION, self.body.write)
+        self._curl.setopt(pycurl.NOSIGNAL, 1)
+
+    def perform(self):
+        self._curl.perform()
+
+    def close(self):
+        self.http_code = self._curl.getinfo(pycurl.HTTP_CODE)
+        self._curl.close()
+
+
+def print_result(items):
+    return  # DO NOTHING
+    #
+    for c in items:
+        data = c.body.getvalue()
+        if 0:
+            print "**********", c.url, "**********"
+            print data
+        elif 1:
+            print "%-60s   %3d   %6d" % (c.url, c.http_code, len(data))
+
+
+###
+### 1) multi
+###
+
+def test_multi():
+    clock1 = time.time()
+
+    # init
+    handles = []
+    m = pycurl.CurlMulti()
+    for i in range(NUM_PAGES):
+        c = Curl(URL %i)
+        m.add_handle(c._curl)
+        handles.append(c)
+
+    clock2 = time.time()
+
+    # stir state machine into action
+    while 1:
+        ret, num_handles = m.perform()
+        if ret != pycurl.E_CALL_MULTI_PERFORM:
+            break
+
+    # get data
+    while num_handles:
+        m.select()
+        while 1:
+            ret, num_handles = m.perform()
+            if ret != pycurl.E_CALL_MULTI_PERFORM:
+                break
+
+    clock3 = time.time()
+
+    # close handles
+    for c in handles:
+        c.close()
+    m.close()
+
+    clock4 = time.time()
+    print "multi  interface:        %d pages: perform %5.2f secs, total %5.2f secs" % (NUM_PAGES, clock3 - clock2, clock4 - clock1)
+
+    # print result
+    print_result(handles)
+
+
+
+###
+### 2) thread
+###
+
+class Test(Thread):
+    def __init__(self, lock=None):
+        Thread.__init__(self)
+        self.lock = lock
+        self.items = []
+
+    def run(self):
+        if self.lock:
+            self.lock.acquire()
+            self.lock.release()
+        for c in self.items:
+            c.perform()
+
+
+def test_threads(lock=None):
+    clock1 = time.time()
+
+    # create and start threads, but block them
+    if lock:
+        lock.acquire()
+
+    # init (FIXME - this is ugly)
+    threads = []
+    handles = []
+    t = None
+    for i in range(NUM_PAGES):
+        if i % (NUM_PAGES / NUM_THREADS) == 0:
+            t = Test(lock)
+            if lock:
+                t.start()
+            threads.append(t)
+        c = Curl(URL % i)
+        t.items.append(c)
+        handles.append(c)
+    assert len(handles) == NUM_PAGES
+    assert len(threads) == NUM_THREADS
+
+    clock2 = time.time()
+
+    #
+    if lock:
+        # release lock to let the blocked threads run
+        lock.release()
+    else:
+        # start threads
+        for t in threads:
+            t.start()
+    # wait for threads to finish
+    for t in threads:
+        t.join()
+
+    clock3 = time.time()
+
+    # close handles
+    for c in handles:
+        c.close()
+
+    clock4 = time.time()
+    if lock:
+        print "thread interface [lock]: %d pages: perform %5.2f secs, total %5.2f secs" % (NUM_PAGES, clock3 - clock2, clock4 - clock1)
+    else:
+        print "thread interface:        %d pages: perform %5.2f secs, total %5.2f secs" % (NUM_PAGES, clock3 - clock2, clock4 - clock1)
+
+    # print result
+    print_result(handles)
+
+
+
+###
+### 3) thread - threads grab curl objects on demand from a shared pool
+###
+
+class TestPool(Thread):
+    def __init__(self, lock, pool):
+        Thread.__init__(self)
+        self.lock = lock
+        self.pool = pool
+
+    def run(self):
+        while 1:
+            self.lock.acquire()
+            c = None
+            if self.pool:
+                c = self.pool.pop()
+            self.lock.release()
+            if c is None:
+                break
+            c.perform()
+
+
+def test_thread_pool(lock):
+    clock1 = time.time()
+
+    # init
+    handles = []
+    for i in range(NUM_PAGES):
+        c = Curl(URL %i)
+        handles.append(c)
+
+    # create and start threads, but block them
+    lock.acquire()
+    threads = []
+    pool = handles[:]   # shallow copy of the list, shared for pop()
+    for i in range(NUM_THREADS):
+        t = TestPool(lock, pool)
+        t.start()
+        threads.append(t)
+    assert len(pool) == NUM_PAGES
+    assert len(threads) == NUM_THREADS
+
+    clock2 = time.time()
+
+    # release lock to let the blocked threads run
+    lock.release()
+
+    # wait for threads to finish
+    for t in threads:
+        t.join()
+
+    clock3 = time.time()
+
+    # close handles
+    for c in handles:
+        c.close()
+
+    clock4 = time.time()
+    print "thread interface [pool]: %d pages: perform %5.2f secs, total %5.2f secs" % (NUM_PAGES, clock3 - clock2, clock4 - clock1)
+
+    # print result
+    print_result(handles)
+
+
+
+lock = RLock()
+if 1:
+    test_multi()
+    test_threads()
+    test_threads(lock)
+    test_thread_pool(lock)
+else:
+    test_thread_pool(lock)
+    test_threads(lock)
+    test_threads()
+    test_multi()
+
diff --git a/trunk/pycurl/tests/test_post.py b/trunk/pycurl/tests/test_post.py
new file mode 100644 (file)
index 0000000..f0a8ad0
--- /dev/null
@@ -0,0 +1,24 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import urllib
+import pycurl
+
+# simple
+pf = {'field1': 'value1'}
+
+# multiple fields
+pf = {'field1':'value1', 'field2':'value2 with blanks', 'field3':'value3'}
+
+# multiple fields with & in field
+pf = {'field1':'value1', 'field2':'value2 with blanks and & chars',
+      'field3':'value3'}
+
+c = pycurl.Curl()
+c.setopt(c.URL, 'http://pycurl.sourceforge.net/tests/testpostvars.php')
+c.setopt(c.POSTFIELDS, urllib.urlencode(pf))
+c.setopt(c.VERBOSE, 1)
+c.perform()
+c.close()
diff --git a/trunk/pycurl/tests/test_post2.py b/trunk/pycurl/tests/test_post2.py
new file mode 100644 (file)
index 0000000..74a6eca
--- /dev/null
@@ -0,0 +1,18 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import pycurl
+
+pf = [('field1', 'this is a test using httppost & stuff'),
+      ('field2', (pycurl.FORM_FILE, 'test_post.py', pycurl.FORM_FILE, 'test_post2.py')),
+      ('field3', (pycurl.FORM_CONTENTS, 'this is wei\000rd, but null-bytes are okay'))
+     ]
+
+c = pycurl.Curl()
+c.setopt(c.URL, 'http://www.contactor.se/~dast/postit.cgi')
+c.setopt(c.HTTPPOST, pf)
+c.setopt(c.VERBOSE, 1)
+c.perform()
+c.close()
diff --git a/trunk/pycurl/tests/test_post3.py b/trunk/pycurl/tests/test_post3.py
new file mode 100644 (file)
index 0000000..617eba2
--- /dev/null
@@ -0,0 +1,32 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import urllib
+POSTSTRING = urllib.urlencode({'field1':'value1', 'field2':'value2 with blanks', 'field3':'value3'})
+
+class test:
+
+    def __init__(self):
+        self.finished = False
+
+    def read_cb(self, size):
+        assert len(POSTSTRING) <= size
+        if not self.finished:
+            self.finished = True
+            return POSTSTRING
+        else:
+            # Nothing more to read
+            return ""
+
+import pycurl
+c = pycurl.Curl()
+t = test()
+c.setopt(c.URL, 'http://pycurl.sourceforge.net/tests/testpostvars.php')
+c.setopt(c.POST, 1)
+c.setopt(c.POSTFIELDSIZE, len(POSTSTRING))
+c.setopt(c.READFUNCTION, t.read_cb)
+c.setopt(c.VERBOSE, 1)
+c.perform()
+c.close()
diff --git a/trunk/pycurl/tests/test_stringio.py b/trunk/pycurl/tests/test_stringio.py
new file mode 100644 (file)
index 0000000..25e639b
--- /dev/null
@@ -0,0 +1,25 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import sys
+try:
+    from cStringIO import StringIO
+except ImportError:
+    from StringIO import StringIO
+import pycurl
+
+url = "http://curl.haxx.se/dev/"
+
+print "Testing", pycurl.version
+
+body = StringIO()
+c = pycurl.Curl()
+c.setopt(c.URL, url)
+c.setopt(c.WRITEFUNCTION, body.write)
+c.perform()
+c.close()
+
+contents = body.getvalue()
+print contents
diff --git a/trunk/pycurl/tests/test_xmlrpc.py b/trunk/pycurl/tests/test_xmlrpc.py
new file mode 100644 (file)
index 0000000..bc5953e
--- /dev/null
@@ -0,0 +1,29 @@
+#! /usr/bin/env python
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+## XML-RPC lib included in python2.2
+import xmlrpclib
+import pycurl
+
+# Header fields passed in request
+xmlrpc_header = [
+    "User-Agent: PycURL XML-RPC Test", "Content-Type: text/xml"
+    ]
+
+# XML-RPC request template
+xmlrpc_template = """
+<?xml version='1.0'?><methodCall><methodName>%s</methodName>%s</methodCall>
+"""
+
+# Engage
+c = pycurl.Curl()
+c.setopt(c.URL, 'http://betty.userland.com/RPC2')
+c.setopt(c.POST, 1)
+c.setopt(c.HTTPHEADER, xmlrpc_header)
+c.setopt(c.POSTFIELDS, xmlrpc_template % ("examples.getStateName", xmlrpclib.dumps((5,))))
+
+print 'Response from http://betty.userland.com/'
+c.perform()
+c.close()
diff --git a/trunk/pycurl/tests/util.py b/trunk/pycurl/tests/util.py
new file mode 100644 (file)
index 0000000..a1a9978
--- /dev/null
@@ -0,0 +1,38 @@
+# -*- coding: iso-8859-1 -*-
+# vi:ts=4:et
+# $Id$
+
+import os, sys
+
+#
+# prepare sys.path in case we are still in the build directory
+# see also: distutils/command/build.py (build_platlib)
+#
+
+def get_sys_path(p=None):
+    if p is None: p = sys.path
+    p = p[:]
+    try:
+        from distutils.util import get_platform
+    except ImportError:
+        return p
+    p0 = ""
+    if p: p0 = p[0]
+    #
+    plat = get_platform()
+    plat_specifier = "%s-%s" % (plat, sys.version[:3])
+    ##print plat, plat_specifier
+    #
+    for prefix in (p0, os.curdir, os.pardir,):
+        if not prefix:
+            continue
+        d = os.path.join(prefix, "build")
+        for subdir in ("lib", "lib." + plat_specifier, "lib." + plat):
+            dir = os.path.normpath(os.path.join(d, subdir))
+            if os.path.isdir(dir):
+                if dir not in p:
+                    p.insert(1, dir)
+    #
+    return p
+
+
diff --git a/trunk/refresh-peer.py b/trunk/refresh-peer.py
new file mode 100644 (file)
index 0000000..7c55224
--- /dev/null
@@ -0,0 +1,38 @@
+#!/usr/bin/env plcsh
+# $Id$
+
+import sys,os,time
+
+def Run (peername):
+    timestring=time.strftime("%Y-%m-%d-%H-%M-%S")
+    print 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',peername
+    print 'RefreshPeer on %s - starting on %s'%(peername,timestring)
+    print 'xxxxxxxxxx'
+    sys.stdout.flush()
+    start=time.time()
+    result=RefreshPeer(peername)
+    finish=time.time()
+
+    print 'Total duration',finish-start
+    print 'xxxxxxxxxx timers:'
+    keys=result.keys()
+    keys.sort()
+    for key in keys:
+        print key,result[key]
+    sys.stdout.flush()
+    sys.stderr.flush()
+
+def RunInLog (peername):
+    logname="/var/log/refresh-peer-%s.log"%(peername)
+    sys.stdout=open(logname,'a')
+    sys.stderr=sys.stdout
+    Run(peername)
+    sys.stderr.close()
+    sys.stdout.close()
+
+if __name__ == "__main__":
+    
+    for peername in sys.argv[1:]:
+        RunInLog (peername)
+
+
diff --git a/trunk/setup.py b/trunk/setup.py
new file mode 100755 (executable)
index 0000000..7206a9e
--- /dev/null
@@ -0,0 +1,20 @@
+#!/usr/bin/python
+#
+# Setup script for PLCAPI
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+from distutils.core import setup
+from glob import glob
+
+setup(py_modules = ['ModPython'],
+      packages = ['PLC', 'PLC/Methods', 'PLC/Methods/system'],
+      scripts = ['plcsh', 'Server.py'],
+      data_files = [('', ['planetlab4.sql']),
+                    ('php', ['php/plc_api.php']),
+                    ('migrations', ['migrations/README.txt'] + glob('migrations/[0-9][0-9][0-9]*')),
+                    ])
diff --git a/trunk/tests/Makefile b/trunk/tests/Makefile
new file mode 100644 (file)
index 0000000..788861a
--- /dev/null
@@ -0,0 +1,436 @@
+### -*-Makefile-*-
+# $Id$
+PLC1=plc1.inria.fr
+PLC2=plc2.inria.fr
+
+CHROOTJAIL=/plc/root
+CHROOT=chroot $(CHROOTJAIL)
+PORT=5432
+SITEDIR=/etc/planetlab/configs
+SITE=site.xml
+APIDIR=/usr/share/plc_api
+ROOTAPIDIR=/plc/root$(APIDIR)
+WORKDIR=new_plc_api/tests
+
+PLC1SSH=root@$(PLC1)
+PLC2SSH=root@$(PLC2)
+
+PY=python -u
+
+PLCS=-1 -2
+SIZES=-m -n -b -h
+
+all:help
+
+# if make is invoked with -n, run rsync, but with --dry-run
+RSYNC_EXCLUDES         := --exclude .svn --exclude '*~' --exclude '*.pyc'
+RSYNC_CMD              := rsync
+RSYNC_COND_DRY_RUN     := $(if $(findstring n,$(MAKEFLAGS)),--dry-run,)
+RSYNC_ARGS             += $(RSYNC_COND_DRY_RUN) $(RSYNC_EXCLUDES)
+RSYNC                  := $(RSYNC_CMD) $(RSYNC_ARGS)
+
+#################### remote invokation and chroot hops
+# rule to invoke a target within the chroot context
+%.chroot: target=$(subst .chroot,,$@)
+%.chroot:
+       $(CHROOT) $(MAKE) -C $(APIDIR)/tests INCHROOT=true $(target)
+       -cp $(ROOTAPIDIR)/tests/$(target) .
+
+# generic rules to ssh and make
+# need to explicitly export MAKEFLAGS that cannot be exported by make through ssh
+%.1: prefix=$(subst .1,,$@)
+%.1: output=$(subst .chroot,,$(prefix))
+%.1:
+       @echo ">>>>>>>> entering ssh $(PLC1SSH)"
+       ssh $(PLC1SSH) $(MAKE) MAKEFLAGS=$(MAKEFLAGS) -C $(WORKDIR) PLCEND=1 $(prefix) 
+       @echo "<<<<<<<< exiting  ssh $(PLC1SSH)"
+       -scp $(PLC1SSH):$(WORKDIR)/$(output) . 2> /dev/null
+%.2: prefix=$(subst .2,,$@)
+%.2: output=$(subst .chroot,,$(prefix))
+%.2:
+       @echo ">>>>>>>> entering ssh $(PLC2SSH)"
+       ssh $(PLC2SSH) $(MAKE) MAKEFLAGS=$(MAKEFLAGS) -C $(WORKDIR) PLCEND=2 $(prefix) 
+       @echo "<<<<<<<< exiting  ssh $(PLC2SSH)"
+       -scp $(PLC2SSH):$(WORKDIR)/$(output) . 2> /dev/null
+
+# cannot just depend on .1 and .2 because they are phony
+%.3: prefix=$(subst .3,,$@)
+%.3: 
+       $(MAKE) $(prefix).1 $(prefix).2
+
+%.both: prefix=$(subst .both,,$@)
+%.both:
+       $(MAKE) $(prefix).chroot.1 $(prefix).chroot.2
+
+####################
+# phony targets MUST NOT try to get their result through scp
+# usage: ssh_phony_target <target>
+define ssh_phony_target
+$(1).chroot:
+       $(CHROOT) $(MAKE) -C $(APIDIR)/tests INCHROOT=true $(1)
+$(1).1:
+       @echo ">>>>>>>> entering ssh $(PLC1SSH)"
+       ssh $(PLC1SSH) $(MAKE) MAKEFLAGS=$(MAKEFLAGS) -C $(WORKDIR) PLCEND=1 $(1)
+       @echo "<<<<<<<< exiting  ssh $(PLC1SSH)"
+$(1).2:
+       @echo ">>>>>>>> entering ssh $(PLC2SSH)"
+       ssh $(PLC2SSH) $(MAKE) MAKEFLAGS=$(MAKEFLAGS) -C $(WORKDIR) PLCEND=2 $(1)
+       @echo "<<<<<<<< exiting  ssh $(PLC2SSH)"
+endef
+
+####################
+define here_and_proceed_target
+PHONIES += $(1)
+ifdef INCHROOT
+$(1): 
+       $(2)
+else
+ifdef PLCEND
+$(1): $(1).chroot
+       $(2)
+else
+$(1): $(1).3
+       $(2)
+endif
+endif
+endef
+
+####################
+####################
+####################
+PLC-PUSHS=  ../PLC ../planetlab4.sql ../migrations ../plcsh ../tests
+
+PUSH += pclean
+pclean:
+       -find .. '(' -name '*.pyc' -o -name '*~' ')' | xargs rm
+PUSH += proot1
+proot1:
+       +$(RSYNC) -a -v -C ../ root@$(PLC1):new_plc_api/
+PUSH += pchroot1
+pchroot1:
+       +$(RSYNC) -a -v -C $(PLC-PUSHS) root@$(PLC1):$(CHROOTJAIL)$(APIDIR)/
+PUSH += proot2
+proot2:
+       +$(RSYNC) -a -v -C ../ root@$(PLC2):new_plc_api/
+PUSH += pchroot2
+pchroot2:
+       +$(RSYNC) -a -v -C $(PLC-PUSHS) root@$(PLC2):$(CHROOTJAIL)$(APIDIR)/
+
+push: $(PUSH)
+push.1: proot1 pchroot1
+push.2: proot2 pchroot2
+# DONT! mention this in PHONIES
+.PHONY: push push.1 push.2
+
+PHONIES += $(PUSH)
+
+####################
+PEERS += peer-gpg-1
+peer-gpg-1:
+       ssh $(PLC1SSH) "gpg --homedir=/etc/planetlab --export --armor > /etc/planetlab/gpg_plc1.pub"
+PEERS += peer-gpg-2
+peer-gpg-2:
+       ssh $(PLC2SSH) "gpg --homedir=/etc/planetlab --export --armor > /etc/planetlab/gpg_plc2.pub"
+# directly scp'ing from one url to the other does not work, looks like
+# first host tries to connect the second one
+PEERS += peer-push-gpg-1
+peer-push-gpg-1:
+       scp $(PLC1SSH):/etc/planetlab/gpg_plc1.pub ./
+       scp ./gpg_plc1.pub $(PLC2SSH):/etc/planetlab/
+PEERS += peer-push-gpg-2
+peer-push-gpg-2:
+       scp $(PLC2SSH):/etc/planetlab/gpg_plc2.pub ./
+       scp ./gpg_plc2.pub $(PLC1SSH):/etc/planetlab/
+PEERS += peer-push-cacert-1
+peer-push-cacert-1:
+       scp $(PLC1SSH):/etc/planetlab/api_ca_ssl.crt ./api_plc1.crt
+       scp ./api_plc1.crt $(PLC2SSH):/etc/planetlab/
+       scp ./api_plc1.crt $(PLC1SSH):/etc/planetlab/
+PEERS += peer-push-cacert-2
+peer-push-cacert-2:
+       scp $(PLC2SSH):/etc/planetlab/api_ca_ssl.crt ./api_plc2.crt
+       scp ./api_plc2.crt $(PLC1SSH):/etc/planetlab/
+       scp ./api_plc2.crt $(PLC2SSH):/etc/planetlab/
+
+PHONIES += $(PEERS)
+
+PHONIES += peers
+peers: $(PEERS)
+
+PHONIES += peers-clean
+peers-clean:
+       rm -f /etc/planetlab/*plc[12]*
+
+HELP += peers-clean.3
+####################
+# upgrade : install the most recent myplc rpm found in /root/$(WORKDIR)
+RPM=$(shell ls -rt /root/$(WORKDIR)/myplc*rpm | tail -1)
+HELP += rpm
+PHONIES += rpm
+rpm:
+       @echo upgrade would install latest rpm : $(RPM)
+HELP += version
+PHONIES += version
+version:
+       rpm -q myplc
+
+#### how to upgrade
+UPGRADE += plc-stop
+plc-stop:
+       -$(CHROOT) service plc safestop
+UPGRADE += plc-preserve
+plc-preserve:
+       cp $(SITEDIR)/$(SITE) .
+UPGRADE += plc-uninstall
+plc-uninstall:
+       rpm -e myplc
+UPGRADE += plc-clean
+plc-clean:
+       -rm -rf /plc/root /plc/data
+UPGRADE += plc-install
+plc-install:
+       rpm -i $(RPM)
+UPGRADE += plc-reconfig
+plc-reconfig:
+       service plc mount
+       mkdir -p $(SITEDIR)
+       cp $(SITE) $(SITEDIR)
+       (echo w; echo q) | $(CHROOT) plc-config-tty
+UPGRADE += plc-start
+plc-start:
+       $(CHROOT) service plc start
+
+PHONIES += $(UPGRADE)
+
+PHONIES += upgrade
+upgrade: $(UPGRADE)
+
+####################
+# cleaning the database
+
+DB += db-drop
+db-drop:
+       $(CHROOT) psql -U postgres --port $(PORT) template1 -c 'drop database planetlab4'
+DB += db-restart
+db-restart:
+       service plc stop db postgresql httpd
+       service plc start httpd postgresql db 
+DB += db-clean-save
+db-clean-save:
+       $(CHROOT) pg_dump -c -U pgsqluser planetlab4 > test-clean.sql
+DB += db-safeclean
+db-safeclean: db-drop db-restart db-clean-save
+
+DB += db-clean
+db-clean:
+       $(CHROOT) psql -U pgsqluser --port $(PORT) -d planetlab4 < test-clean.sql &> test-clean.restore 
+
+PHONIES += $(DB)
+
+####################
+# TestPeers options :
+# -m -b -h : allow to select test size (mini, normal, big, huge)
+# -l 1|2       required for running -p locally from a given end for performance
+# -1 | -2      shorthands for -l 1 and -l 2 - for integration with this Makefile
+### the idea is:
+# first clean off dbs
+# run populate separately on both ends
+# optionally save database at this point
+# then run end of script locally
+####################
+
+### for a given 'targetname' like, e.g. 'e-n', we define the following targets
+# testpeers.<targetname>.out -- for running the test
+# testpeers.<targetname>.diff -- to compute the difference with expected result
+# testpeers.<targetname>.adopt -- phony target for adopting new result - no commit done
+
+###
+# generic rule for running TestPeers
+# make testpeers.-option.some.stuff.out
+# => python -u ./TestPeers.py -option some stuff > testpeers.-option.some.stuff.out 2>&1
+testpeers.%.out: prefix=$(subst .out,,$@)
+testpeers.%.out: dotargs=$(subst testpeers.,,$(prefix))
+testpeers.%.out: args=$(subst ., ,$(dotargs))
+testpeers.%.out:
+       $(PY) ./TestPeers.py $(args) > $@ 2>&1 ; if [ "$$?" != 0 ] ; then mv $@ $@.fail ; exit 1; fi
+
+### generic rule for computing differences -- 
+# xxx this requires changes in TestPeers due to the new return code of RefreshPeers
+# remove time/delay dependent output
+normalize      = egrep -v "'expires':|^+++.*ellapsed"
+%.nout: %.out
+       $(normalize) $*.out > $@
+%.nref: %.ref
+       $(normalize) $*.ref > $@
+
+testpeers.%.diff: out=$(subst .diff,.out,$@)
+testpeers.%.diff: nout=$(subst .diff,.nout,$@)
+testpeers.%.diff: ref=$(subst .diff,.ref,$@)
+testpeers.%.diff: nref=$(subst .diff,.nref,$@)
+testpeers.%.diff: 
+       @if [ ! -f $(out) ] ; then echo "Could not locate $(out)" ; exit 1 ; fi
+       @if [ ! -f $(ref) ] ; then echo "Could not locate $(ref)" ; exit 1 ; fi
+       $(MAKE) $(nref) $(nout)
+       diff $(nref) $(nout) > $@
+
+### generic rule for adopting current result 
+testpeers.%.ckp: prefix=$(subst .ckp,,$@)
+testpeers.%.ckp: out=$(subst .ckp,.out,$@)
+testpeers.%.ckp: ref=$(subst .ckp,.ref,$@)
+testpeers.%.ckp:
+       @if [ ! -f $(out) ] ; then echo "Could not locate $(out)" ; exit 1 ; fi
+       cp $(out) $(ref)
+       rm -f $(prefix).{diff,nout,nref}
+
+testpeers.%.clean: prefix=$(subst .clean,,$@)
+testpeers.%.clean: 
+       rm -f $(prefix).{out,nout,nref,diff}
+
+
+HELP += testpeers-clean
+$(eval $(call here_and_proceed_target,testpeers-clean,rm -f testpeers*.nref testpeers*.nout))
+
+HELP += testpeers-distclean
+$(eval $(call here_and_proceed_target,testpeers-distclean,rm -f testpeers*.out testpeers*.sql testpeers*.nref testpeers*.nout))
+
+HELP += clean 
+clean: testpeers-clean
+HELP += sqlclean
+$(eval $(call here_and_proceed_target,sqlclean,rm test*.sql))
+HELP += distclean
+distclean: testpeers-distclean
+PHONIES += clean distclean
+
+HELP += sql-clean
+$(eval $(call here_and_proceed_target,sql-clean,rm testpeers.*.sql))
+
+##############################
+# creating a snapshot of the databases
+# for efficiency this is done from a Direct API method, thus under a chroot
+
+define snapshot_and_restore_size_plc
+testpeers.$(1).$(2).sql: testpeers.$(1).$(2).out
+       pg_dump -c -U pgsqluser planetlab4 > testpeers.$(1).$(2).sql
+
+testpeers.$(1).$(2).restore: testpeers.$(1).$(2).sql
+       echo Restoring testpeers.$(1).$(2).sql
+       psql -U pgsqluser --port $(PORT) -d planetlab4 -f testpeers.$(1).$(2).sql &> testpeers.$(1).$(2).restore
+DB-SQL += testpeers.$(1).$(2).sql 
+DB-RESTORE += testpeers.$(1).$(2).restore
+endef
+
+define snapshot_and_restore_size
+$(foreach plc,$(PLCS),$(eval $(call snapshot_and_restore_size_plc,$(1),$(plc).populate)))
+endef
+
+$(foreach size,$(SIZES),$(eval $(call snapshot_and_restore_size,$(size))))
+
+define populate_shortcut
+ifndef PLCEND
+populate$(1): populate$(1).init populate$(1).run
+populate$(1).all: db-clean.3 populate$(1).clean populate$(1).init populate$(1).run
+populate$(1).init: testpeers.$(1).-1.populate.out.chroot.1 testpeers.$(1).-1.populate.sql.chroot.1 
+populate$(1).init: testpeers.$(1).-2.populate.out.chroot.2 testpeers.$(1).-2.populate.sql.chroot.2 
+populate$(1).restore: testpeers.$(1).-1.populate.restore.chroot.1 testpeers.$(1).-2.populate.restore.chroot.2
+populate$(1).run: testpeers.$(1).populate_end.out
+populate$(1).diff: testpeers.$(1).-1.populate.diff testpeers.$(1).-2.populate.diff testpeers.$(1).populate_end.diff 
+populate$(1).ckp: testpeers.$(1).-1.populate.ckp testpeers.$(1).-2.populate.ckp testpeers.$(1).populate_end.ckp 
+$(eval $(call here_and_proceed_target,populate$(1).clean,rm -f testpeers.$(1)*populate*.out testpeers.$(1)*populate*.restore))
+$(eval $(call here_and_proceed_target,populate$(1).sqlclean,rm -f testpeers.$(1)*populate*.sql))
+endif
+endef
+
+$(foreach size,$(SIZES),$(eval $(call populate_shortcut,$(size))))
+
+populate.help:
+       @echo "===================="
+       @echo "populate test targets"   
+       @echo -e "populate-n\t\truns .init and .run"
+       @echo -e "populate-b.init\t\texpects a clean db, populates only and dumps"
+       @echo -e "populate-b.all\t\tcleans the db and former test results, runs the full test"
+       @echo -e "populate-m.run\t\truns the actual test after both plcs were inited"
+       @echo -e "populate-h.restore\t\trestores both plcs as if just inited"
+       @echo -e "populate-n.ckp\t\tcheckpoints out files as references"
+       @echo -e "populate-n.diff\t\tcompares out files against reference"
+
+####################
+define testpeers_shortcut
+ifndef PLCEND
+testpeers$(1).run: testpeers.$(1).test_all.out
+testpeers$(1).all: db-clean.3 testpeers.$(1).test_all.out
+testpeers$(1).diff: testpeers.$(1).test_all.diff
+testpeers$(1).ckp: testpeers.$(1).test_all.ckp
+endif
+endef
+
+$(foreach size,$(SIZES),$(eval $(call testpeers_shortcut,$(size))))
+
+testpeers.help:
+       @echo "Available sizes" $(SIZES)
+       @echo "testpeers targets"       
+       @echo -e "testpeers-n.run\t\truns the test"
+       @echo -e "testpeers-b.all\t\tcleans the db and former test results, runs the full test"
+       @echo -e "testpeers-m.run\t\truns the actual test after both plcs were inited"
+       @echo -e "testpeers-h.restore\t\trestores both plcs as if just inited"
+       @echo -e "testpeers-n.ckp\t\tcheckpoints out files as references"
+       @echo -e "testpeers-n.diff\t\tcompares out files against reference"
+
+
+####################
+RUN += api
+api:
+       $(CHROOT) /usr/bin/plcsh
+RUN += sql
+sql:
+       $(CHROOT) psql -U pgsqluser planetlab4
+RUN += log
+log:
+       emacs /plc/data/var/log/httpd/error_log /plc/data/var/log/boot.log
+
+PHONIES += $(RUN)
+
+
+$(foreach phony,$(PHONIES),$(eval $(call ssh_phony_target,$(phony))))
+
+#######
+help: testpeers.help populate.help 
+       @echo "===================="
+       @echo "other known targets:"
+       @echo "db family:" $(DB) 
+       @echo -e "e.g.\tmake db-clean.3"
+       @echo "push:" $(PUSH) 
+       @echo "peers:" $(PEERS)
+       @echo "===================="
+       @echo "For running on plc1, on plc2, or both:"
+       @echo -e "\t make <target>.1 <target>.2 <target.3>"
+       @echo "For running in a chroot jail"
+       @echo -e "\t make <target>.chroot"
+       @echo "So for running on both nodes chroots"
+       @echo -e "\t make <target>.chroot.3"
+       @echo "for running TestPeers : testpeers=<args separated by +>.out"
+       @echo -e "\t e.g. make testpeers.-m.test_all"
+       @echo -e "\t e.g. make testpeers.-h.-1.populate"
+       @echo "comparing run with reference : testpeers.<args separated by .>.diff"
+       @echo "adopt run as reference : testpeers.<args separated by .>.ckp"
+       @echo -e "\t e.g. make testpeers.-m.test_all"
+       @echo -e "\t e.g. make testpeers.-h.-1.populate"
+       @echo "===================="
+       @echo "Supported size variants:" $(SIZES)
+       @echo "Supported plc ids:" $(PLCS)
+       @echo "snapshotting the DB : " $(DB-SQL) $(DB-RESTORE)
+       @echo "===================="
+       @echo "upgrade:" $(UPGRADE)
+       @echo "run family (convenience):" $(RUN)
+       @echo "OTHERS:" $(HELP)
+
+
+#################### convenience, for debugging only
+# make +foo : prints the value of $(foo)
+# make ++foo : idem but verbose, i.e. foo=$(foo)
+++%: varname=$(subst +,,$@)
+++%:
+       @echo "$(varname)=$($(varname))"
++%: varname=$(subst +,,$@)
++%:
+       @echo "$($(varname))"
+
diff --git a/trunk/tests/Test.py b/trunk/tests/Test.py
new file mode 100755 (executable)
index 0000000..8ff3ad2
--- /dev/null
@@ -0,0 +1,281 @@
+#!/usr/bin/python
+#
+# Test script for peer caching
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+"""
+Test script for peer caching. Intended for testing multiple PLCs
+running on the same machine in different chroots. Here is how I set
+things up after installing and configuring MyPLC:
+
+# Shut down MyPLC
+service plc stop
+
+# Copy to /plc2
+cp -ra /plc /plc2
+ln -sf plc /etc/init.d/plc2
+echo 'PLC_ROOT=/plc2/root' > /etc/sysconfig/plc2
+echo 'PLC_DATA=/plc2/data' >> /etc/sysconfig/plc2
+
+# Edit /plc2/data/etc/planetlab/plc_config.xml and change at least the
+# following so that they do not conflict with the defaults:
+#
+# PLC_NAME (e.g., PlanetLab Two)
+# PLC_SLICE_PREFIX (e.g., two)
+# PLC_ROOT_USER (e.g., root@planetlab.two)
+# PLC_API_MAINTENANCE_USER (e.g., maint@planetlab.two)
+# PLC_DB_PORT (e.g., 5433)
+# PLC_WWW_PORT (e.g., 81)
+# PLC_WWW_SSL_PORT (e.g., 444)
+# PLC_API_PORT (must be the same as PLC_WWW_SSL_PORT, e.g., 444)
+# PLC_BOOT_SSL_PORT (must be the same as PLC_WWW_SSL_PORT, e.g., 444)
+# PLC_BOOT_PORT (may be the same as PLC_WWW_PORT, e.g., 81)
+
+# Start up both MyPLC instances
+service plc start
+service plc2 start
+
+# Run test
+./Test.py -f /etc/planetlab/plc_config -f /plc2/data/etc/planetlab/plc_config
+
+# If the test fails and your databases are corrupt and/or you want to
+# start over, you can always just blow the databases away.
+service plc stop
+rm -rf /plc/data/var/lib/pgsql/data
+service plc start
+
+service plc2 stop
+rm -rf /plc2/data/var/lib/pgsql/data
+service plc2 start
+"""
+
+import re
+from optparse import OptionParser
+
+from PLC.Config import Config
+from PLC.GPG import gpg_export
+from PLC.Shell import Shell
+from PLC.Test import Test
+
+def todict(list_of_dicts, key):
+    """
+    Turn a list of dicts into a dict keyed on key.
+    """
+
+    return dict([(d[key], d) for d in list_of_dicts])
+
+def RefreshPeers(plcs):
+    """
+    Refresh each peer with each other.
+    """
+
+    for plc in plcs:
+        for peer in plcs:
+            if peer == plc:
+                continue
+
+            print plc.config.PLC_NAME, "refreshing", peer.config.PLC_NAME
+            plc.RefreshPeer(peer.config.PLC_NAME)
+
+            peer_id = plc.GetPeers([peer.config.PLC_NAME])[0]['peer_id']
+
+            peer_sites = todict(plc.GetSites({'peer_id': peer_id}), 'site_id')
+            sites_at_peer = todict(peer.GetSites(), 'site_id')
+
+            peer_keys = todict(plc.GetKeys({'peer_id': peer_id}), 'key_id')
+            keys_at_peer = todict(peer.GetKeys(), 'key_id')
+
+            peer_persons = todict(plc.GetPersons({'peer_id': peer_id}), 'person_id')
+            persons_at_peer = todict(peer.GetPersons(), 'person_id')
+
+            peer_nodes = todict(plc.GetNodes({'peer_id': peer_id}), 'node_id')
+            nodes_at_peer = todict(peer.GetNodes(), 'node_id')
+
+            our_nodes = todict(plc.GetNodes({'peer_id': None}), 'node_id')
+            our_peer_id_at_peer = peer.GetPeers([plc.config.PLC_NAME])[0]['peer_id']
+            our_nodes_at_peer = todict(peer.GetNodes({'peer_id': our_peer_id_at_peer,
+                                                      'peer_node_id': our_nodes.keys()}), 'peer_node_id')
+
+            peer_slices = todict(plc.GetSlices({'peer_id': peer_id}), 'peer_slice_id')
+            slices_at_peer = todict(peer.GetSlices(), 'slice_id')
+            for site_id, site in peer_sites.iteritems():
+                # Verify that this site exists at the peer
+                peer_site_id = site['peer_site_id']
+                assert peer_site_id in sites_at_peer
+                peer_site = sites_at_peer[peer_site_id]
+
+                # And is the same
+                for field in ['name', 'abbreviated_name', 'login_base', 'is_public',
+                              'latitude', 'longitude', 'url',
+                              'max_slices', 'max_slivers',]:
+                    assert site[field] == peer_site[field]
+
+            for key_id, key in peer_keys.iteritems():
+                # Verify that this key exists at the peer
+                peer_key_id = key['peer_key_id']
+                assert peer_key_id in keys_at_peer
+                peer_key = keys_at_peer[peer_key_id]
+
+                # And is the same
+                for field in ['key_type', 'key']:
+                    assert key[field] == peer_key[field]
+
+            for person_id, person in peer_persons.iteritems():
+                # Verify that this user exists at the peer
+                peer_person_id = person['peer_person_id']
+                assert peer_person_id in persons_at_peer
+                peer_person = persons_at_peer[peer_person_id]
+
+                # And is the same
+                for field in ['first_name', 'last_name', 'title', 'email', 'phone',
+                              'url', 'bio', 'enabled']:
+                    assert person[field] == peer_person[field]
+
+                for key_id in person['key_ids']:
+                    # Verify that the user is not associated with any local keys
+                    assert key_id in peer_keys
+                    key = peer_keys[key_id]
+                    peer_key_id = key['peer_key_id']
+
+                    # Verify that this key exists at the peer
+                    assert peer_key_id in keys_at_peer
+                    peer_key = keys_at_peer[peer_key_id]
+
+                    # And is related to the same user at the peer
+                    assert peer_key['key_id'] in peer_person['key_ids']
+
+            for node_id, node in peer_nodes.iteritems():
+                # Verify that this node exists at the peer
+                peer_node_id = node['peer_node_id']
+                assert peer_node_id in nodes_at_peer
+                peer_node = nodes_at_peer[peer_node_id]
+
+                # And is the same
+                for field in ['boot_state', 'ssh_rsa_key', 'hostname',
+                              'version', 'model']:
+                    assert node[field] == peer_node[field]
+
+                # Verify that the node is not associated with any local sites
+                assert node['site_id'] in peer_sites
+                site = peer_sites[node['site_id']]
+
+                # Verify that this site exists at the peer
+                peer_site_id = site['peer_site_id']
+                assert peer_site_id in sites_at_peer
+                peer_site = sites_at_peer[peer_site_id]
+
+                # And is related to the same node at the peer
+                assert peer_site['site_id'] == peer_node['site_id']
+
+            for slice_id, slice in peer_slices.iteritems():
+                # Verify that this slice exists at the peer
+                peer_slice_id = slice['peer_slice_id']
+                assert peer_slice_id in slices_at_peer
+                peer_slice = slices_at_peer[peer_slice_id]
+
+                # And is the same
+                for field in ['name', 'instantiation', 'url', 'description',
+                              'max_nodes', 'expires']:
+                    assert slice[field] == peer_slice[field]
+
+                for node_id in slice['node_ids']:
+                    # Verify that the slice is associated only with
+                    # the peer's own nodes, or with our nodes as
+                    # last cached by the peer.
+                    assert node_id in peer_nodes or node_id in our_nodes_at_peer
+                    if node_id in peer_nodes:
+                        node = peer_nodes[node_id]
+                        peer_node_id = node['peer_node_id']
+                    elif node_id in our_nodes_at_peer:
+                        peer_node = our_nodes_at_peer[node_id]
+                        peer_node_id = peer_node['node_id']
+
+                    # Verify that this node exists at the peer
+                    assert peer_node_id in nodes_at_peer
+
+                    # And is related to the same slice at the peer
+                    assert peer_node_id in peer_slice['node_ids']
+
+def TestPeers(plcs, check = True, verbose = True, tiny = False):
+    # Register each peer with each other
+    for plc in plcs:
+        for peer in plcs:
+            if peer == plc:
+                continue
+
+            key = gpg_export(peer.chroot + peer.config.PLC_ROOT_GPG_KEY_PUB)
+            cacert = file(peer.chroot + peer.config.PLC_API_CA_SSL_CRT).read()
+
+            if plc.GetPeers([peer.config.PLC_NAME]):
+                print plc.config.PLC_NAME, "updating peer", peer.config.PLC_NAME
+                plc.UpdatePeer(peer.config.PLC_NAME,
+                               {'peer_url': peer.url, 'key': key, 'cacert': cacert})
+            else:
+                print plc.config.PLC_NAME, "adding peer", peer.config.PLC_NAME
+                plc.AddPeer({'peername': peer.config.PLC_NAME,
+                             'peer_url': peer.url, 'key': key, 'cacert': cacert})
+
+        # Populate the DB
+        plc.test = Test(api = plc, check = check, verbose = verbose)
+
+        if tiny:
+            params = Test.tiny
+        else:
+            params = Test.default
+
+        print "Populating", plc.config.PLC_NAME
+        plc.test.Add(**params)
+
+    # Refresh each other
+    RefreshPeers(plcs)
+
+    # Change some things
+    for plc in plcs:
+        print "Updating", plc.config.PLC_NAME
+        plc.test.Update()
+
+    # Refresh each other again
+    RefreshPeers(plcs)
+
+def main():
+    parser = OptionParser()
+    parser.add_option("-f", "--config", dest = "configs", action = "append", default = [], help = "Configuration file (default: %default)")
+    parser.add_option("-c", "--check", action = "store_true", default = False, help = "Verify actions (default: %default)")
+    parser.add_option("-q", "--quiet", action = "store_true", default = False, help = "Be quiet (default: %default)")
+    parser.add_option("-t", "--tiny", action = "store_true", default = False, help = "Run a tiny test (default: %default)")
+    (options, args) = parser.parse_args()
+
+    # Test single peer by default
+    if not options.configs:
+        options.configs = ["/etc/planetlab/plc_config"]
+
+    plcs = []
+    for path in options.configs:
+        # Load configuration file
+        config = Config(path)
+
+        # Determine path to chroot
+        m = re.match(r'(.*)/etc/planetlab', path)
+        if m is not None:
+            chroot = m.group(1)
+        else:
+            chroot = ""
+
+        # Fix up path to SSL certificate
+        cacert = chroot + config.PLC_API_CA_SSL_CRT
+
+        # Always connect with XML-RPC
+        plc = Shell(config = path, cacert = cacert, xmlrpc = True)
+        plc.chroot = chroot
+        plcs.append(plc)
+
+    TestPeers(plcs, check = options.check, verbose = not options.quiet, tiny = options.tiny)
+
+if __name__ == "__main__":
+    main()
diff --git a/trunk/tests/TestCases.py b/trunk/tests/TestCases.py
new file mode 100755 (executable)
index 0000000..c46e12f
--- /dev/null
@@ -0,0 +1,70 @@
+#!/usr/bin/env python
+import sys
+
+class TestCases:
+
+    def __init__ (self):
+       pass
+
+    def initialize (self):
+       print "Performing : initialize"
+       print "current options",self.options
+       print "e.g. verbose=",self.options.verbose
+
+    def cleanup (self):
+       print "Cleaning up"
+
+    def testcase_1 (self):
+       print "\tRunning testcase 1"
+
+    def testcase_2 (self):
+       print "\tRunning testcase 2"
+
+    def testcase_3 (self):
+       print "\tRunning testcase 3"
+
+    def testcase_standard (self):
+       print "\tRunning testcase standard"
+
+    def main (self):
+
+       from optparse import OptionParser
+       usage="""Usage: %prog [options] steps
+steps can include + like in %prog 1 2+3"""
+       parser = OptionParser (usage=usage)
+       parser.add_option ("-v","--verbose",action="store_true",
+                          dest="verbose",default=False,
+                          help="run in verbose mode")
+       parser.add_option ("-a","--all",action="store_true",
+                          dest="all",default=False,
+                          help="Run all known testcases")
+       (self.options, args)=parser.parse_args()
+       
+       ### get the list of steps to run
+       steps=[]
+       if self.options.all:
+           # locates all local methods starting with "testcase_"
+           for method_name in dir(self):
+               # does it start with testcase_
+               if (method_name.find('testcase_',0,len('testcase_'))==0):
+                   print 'considering method',method_name
+                   steps+=[method_name]
+       else:
+           for arg in args:
+               # support for the 2+3 syntax
+               steplist=arg.split("+")
+               for step in steplist:
+                   steps += [ 'testcase_'+step]
+
+       ### run them
+       # args contains the steps to run
+       for method_name in steps:
+           method=getattr(self,method_name)
+           if method:
+               print '============================== TestCases mainloop'
+               self.initialize()
+               method()
+               self.cleanup()
+
+if __name__ == "__main__":
+    TestCases().main()
diff --git a/trunk/tests/TestPeers.py b/trunk/tests/TestPeers.py
new file mode 100755 (executable)
index 0000000..5013317
--- /dev/null
@@ -0,0 +1,1205 @@
+#!/usr/bin/env python
+###
+##############################
+###
+### preparation / requirements
+###
+### two separate instances of myplc
+### for now they are located on the same box on lurch
+###
+### requirements :
+### your myplcs should more or less come out of the box, 
+### I prefer not to alter the default PLC_ROOT_USER value,
+### instead we create a PI account on the site_id=1
+###
+##############################
+
+subversion_id="$Id$"
+
+import sys
+import time
+import os
+
+sys.path.append("..")
+
+from PLC.Shell import Shell
+import PLC.Methods
+
+####################
+
+## try to support reload
+try:
+    globals()['plc']
+except:
+    plc=[None,None,None]
+try:
+    globals()['s']
+except:
+    s=[None,None,None]
+    
+####################
+plc[1]={ 'plcname':'FederationTestPlc1',
+         'hostname':'plc1.inria.fr',
+         'url-format':'https://%s:443/PLCAPI/',
+         'builtin-admin-id':'root@plc1.inria.fr',
+         'builtin-admin-password':'root',
+         'peer-admin-name':'peer1@planet-lab.eu',
+         'peer-admin-password':'peer',
+         'node-format':'n1-%03d.plc1.org',
+         'plainname' : 'one',
+         'site-format':'one%s',
+         'person-format' : 'user-%d@plc.org',
+         'key-format':'ssh-rsa somekey4plctestbed user%d-key%d',
+         'person-password' : 'password1',
+        'gpg-keyring':'gpg_plc2.pub',
+        'api-cacert':'api_plc2.crt',
+       }
+plc[2]={ 'plcname':'FederationTestPlc2',
+         'hostname':'plc2.inria.fr',
+         'url-format':'https://%s:443/PLCAPI/',
+         'builtin-admin-id':'root@plc2.inria.fr',
+         'builtin-admin-password':'root',
+         'peer-admin-name':'peer2@planet-lab.eu',
+         'peer-admin-password':'peer',
+         'node-format':'n2-%03d.plc2.org',
+         'plainname' : 'two',
+         'site-format':'two%s',
+         'person-format' : 'user-%d@plc.org',
+         'key-format':'ssh-rsa somekey4plctestbed user%d-key%d',
+         'person-password' : 'password2',
+        'gpg-keyring':'gpg_plc1.pub',
+        'api-cacert':'api_plc1.crt',
+       }
+
+####################
+# when running locally, we might wish to run only our local stuff
+dummy_print_methods = [ 'RefreshPeer' ]
+class DummyShell:
+    class Callable:
+        def __init__(self,method,index):
+            self.method=method
+            self.index=index
+            self.printed=False
+        def __call__ (self, *args, **kwds):
+            if not self.printed or self.method in dummy_print_methods:
+                print "Dummy method %s on remote peer %d skipped"%(self.method,self.index)
+                self.printed=True
+            return 0
+    def __init__(self,index):
+        self.index=index
+        for method in PLC.Methods.methods:
+            # ignore path-defined methods for now
+            if "." not in method:
+                setattr(self,method,DummyShell.Callable(method,self.index))
+        
+####################
+# predefined stuff
+# number of 'system' persons
+# builtin maint, local root, 1 person for the peering
+system_persons = 3
+# among that, 1 gets refreshed - other ones are considered 'system'
+system_persons_cross = 1
+
+system_slices_ids = (1,)
+def system_slices ():
+    return len(system_slices_ids)
+def total_slices ():
+    return number_slices+system_slices()
+
+def system_slivers ():
+    return len(system_slices_ids)
+
+# too tedious to do the maths : how many slices attached to node 1
+expected_slivers=None
+def total_slivers ():
+    global expected_slivers
+    if expected_slivers is None:
+        expected_slivers=0
+        actual_nodes_per_slice = min (number_nodes,number_nodes_per_slice)
+        for ns in myrange(number_slices):
+            slice_range = [ map_on_node (n+ns) for n in range(actual_nodes_per_slice)]
+            if 1 in slice_range:
+                expected_slivers += 1
+    return expected_slivers+system_slivers()
+
+####################
+# set initial conditions
+# actual persons_per_slice is min(number_persons,number_persons_per_slice)
+# actual nodes_per_slice is min(number_nodes,number_nodes_per_slice)
+# this is to prevent quadractic test times on big tests
+def define_test (sites,persons,nodes,slices,
+                 keys_per_person,nodes_per_slice,persons_per_slice,fast_mode=None):
+    global number_sites, number_persons, number_nodes, number_slices
+    global number_keys_per_person, number_nodes_per_slice, number_persons_per_slice, fast_flag
+    number_sites = sites
+    number_persons=persons
+    number_nodes=nodes
+    number_slices=slices
+    number_keys_per_person=keys_per_person
+    number_nodes_per_slice=nodes_per_slice
+    number_persons_per_slice=persons_per_slice
+    if fast_mode is not None:
+        fast_flag=fast_mode
+
+# when we run locally on a given peer
+local_peer=None
+
+def show_test():
+    print '%d sites, %d persons, %d nodes & %d slices'%(
+        number_sites,number_persons,number_nodes,number_slices)
+    print '%d keys/person, %d nodes/slice & %d persons/slice'%(
+        number_keys_per_person,number_nodes_per_slice,number_persons_per_slice)
+    print 'fast_flag',fast_flag
+    if local_peer is not None:
+        print 'Running locally on index %d'%local_peer
+
+def mini():
+    define_test(1,1,1,1,1,1,1,True)
+    
+def normal():
+    define_test (sites=4,persons=4,nodes=5,slices=4,
+                 keys_per_person=2,nodes_per_slice=3,persons_per_slice=6,fast_mode=False)
+
+def apply_factor (factor):
+    global number_sites, number_persons, number_nodes, number_slices
+    [number_sites, number_persons, number_nodes, number_slices] = \
+                   [factor*x for x in     [number_sites, number_persons, number_nodes, number_slices]]
+                                                                   
+
+# use only 1 key in this case
+big_factor=4
+def big():
+    global number_sites, number_persons, number_nodes, number_slices
+    number_sites=200
+    number_persons=500
+    number_nodes=350
+    number_slices=500
+    global nodes_per_slice
+    nodes_per_slice=3
+    global number_keys_per_person
+    number_keys_per_person=1
+    global number_persons_per_slice
+    number_persons_per_slice=3
+
+#huge_factor=1000
+def huge():
+    global number_sites, number_persons, number_nodes, number_slices
+    number_sites=1000
+    number_persons=2000
+    number_nodes=3000
+    number_slices=2000
+    global nodes_per_slice
+    nodes_per_slice=3
+    global number_keys_per_person
+    number_keys_per_person=1
+    global number_persons_per_slice
+    number_persons_per_slice=3
+
+# use mini test by default in interactive mode
+mini()
+#normal()
+
+####################
+# argh, for login_name that doesn't accept digits
+plain_numbers=['zero','one','two','three','four','five','six','seven','eight','nine','ten',
+              'eleven','twelve','thirteen','fourteen','fifteen','sixteen','seventeen','eighteen','nineteen','twenty']
+plain_digits=['a','b','c','d','e','f','g','h','i','j']
+####################
+def peer_index(i):
+    return 3-i
+
+def plc_name (i):
+    return plc[i]['plcname']
+
+def site_name (i,n):
+    x=site_login_base(i,n)
+    return 'Site fullname '+x
+
+def site_login_base (i,n):
+    # for huge
+    if number_sites<len(plain_numbers):
+        return plc[i]['site-format']%plain_numbers[n]
+    else:
+        string=''
+        while True:
+            quo=n/10
+            rem=n%10
+            string=plain_digits[rem]+string
+            if quo == 0:
+                break
+            else:
+                n=quo
+        return plc[i]['site-format']%string
+
+def person_name (i,n):
+    return plc[i]['person-format']%n
+
+def key_name (i,n,k):
+    return plc[i]['key-format']%(n,k)
+
+def node_name (i,n):
+    return plc[i]['node-format']%n
+
+def slice_name (i,n):
+    site_index=map_on_site(n)
+    return "%s_slice%d"%(site_login_base(i,site_index),n)
+
+def sat_name (i):
+    return 'sat_%d'%i
+
+# to have indexes start at 1
+def map_on (n,max):
+    result=(n%max)
+    if result==0:
+        result=max
+    return result
+
+def myrange (n):
+    return range (1,n+1,1)
+
+def map_on_site (n):
+    return map_on (n,number_sites)
+
+def map_on_person (n):
+    return map_on (n,number_persons)
+
+def map_on_node (n):
+    return map_on (n,number_nodes)
+
+def message (*args):
+    print "====================",
+    print args
+    
+##########
+def timer_start ():
+    global epoch,last_time
+    epoch = time.time()
+    last_time=epoch
+    print '+++ timer start'
+
+def timer_show ():
+    global last_time
+    now=time.time()
+    print '+++ %.02f seconds ellapsed (%.02f)'%(now-epoch,now-last_time)
+    last_time=now
+
+####################
+errors=0
+def myassert (message,boolean):
+    if not boolean:
+        print 'ASSERTION FAILED',message
+        global errors
+        errors +=1
+
+def epilogue ():
+    if errors != 0:
+        print 'TEST FAILED with %d errors'%errors
+        assert errors == 0
+        
+####################
+# init
+def test00_init (args=[1,2],builtin_person=False):
+    timer_start()
+    for i in args:
+        url=plc[i]['url-format']%plc[i]['hostname']
+        plc[i]['url']=url
+        if local_peer is None:
+            # the regular remote mode
+            print 'initializing s[%d]=>%s'%(i,url),
+            if builtin_person:
+                user=plc[i]['builtin-admin-id']
+                password=plc[i]['builtin-admin-password']
+            else:
+                user=plc[i]['peer-admin-name']
+                password=plc[i]['peer-admin-password']
+            s[i]=Shell(url=url,
+                       user=user,
+                       password=password)
+            print 'user=',user
+        elif local_peer == i:
+            # local mode - use Shell's Direct mode - use /etc/planetlab/plc_config
+            s[i]=Shell()
+        else:
+            # remote peer in local mode : use dummy shell instead
+            s[i]=DummyShell(i)
+
+# use new person's account
+
+def test00_print (args=[1,2]):
+    for i in args:
+        print '==================== s[%d]'%i
+#        s[i].show_config()
+        print 'show_config obsoleted'
+    print '===================='
+
+def check_nodes (el,ef,args=[1,2]):
+    for i in args:
+        # use a single request and sort afterwards for efficiency
+        # could have used GetNodes's scope as well
+        all_nodes = s[i].GetNodes()
+        n = len ([ x for x in all_nodes if x['peer_id'] is None])
+        f = len ([ x for x in all_nodes if x['peer_id'] is not None])
+        print '%02d: Checking nodes: got %d local (e=%d) & %d foreign (e=%d)'%(i,n,el,f,ef)
+        myassert ('local nodes',n==el)
+        myassert ('foreign nodes',f==ef)
+
+def check_keys (el,ef,args=[1,2]):
+    for i in args:
+        # use a single request and sort afterwards for efficiency
+        # could have used GetKeys's scope as well
+        all_keys = s[i].GetKeys()
+        n = len ([ x for x in all_keys if x['peer_id'] is None])
+        f = len ([ x for x in all_keys if x['peer_id'] is not None])
+        print '%02d: Checking keys: got %d local (e=%d) & %d foreign (e=%d)'%(i,n,el,f,ef)
+        myassert ('local keys',n==el)
+        myassert ('foreign_keys',f==ef)
+
+def check_persons (el,ef,args=[1,2]):
+    for i in args:
+        # use a single request and sort afterwards for efficiency
+        # could have used GetPersons's scope as well
+        all_persons = s[i].GetPersons()
+        n = len ([ x for x in all_persons if x['peer_id'] is None])
+        f = len ([ x for x in all_persons if x['peer_id'] is not None])
+        print '%02d: Checking persons: got %d local (e=%d) & %d foreign (e=%d)'%(i,n,el,f,ef)
+        myassert ('local persons',n==el)
+        myassert ('foreign persons',f==ef)
+
+# expected : local slices, foreign slices
+def check_slices (els,efs,args=[1,2]):
+    for i in args:
+        ls=len(s[i].GetSlices({'peer_id':None}))
+        fs=len(s[i].GetSlices({'~peer_id':None}))
+        print '%02d: Checking slices: got %d local (e=%d) & %d foreign (e=%d)'%(i,ls,els,fs,efs)
+        myassert ('local slices',els==ls)
+        myassert ('foreign slices',efs==fs)
+
+def show_nodes (i,node_ids):
+    # same as above
+    all_nodes = s[i].GetNodes(node_ids)
+    loc_nodes = filter (lambda n: n['peer_id'] is None, all_nodes)
+    for_nodes = filter (lambda n: n['peer_id'] is not None, all_nodes)
+
+    for message,nodes in [ ['LOC',loc_nodes], ['FOR',for_nodes] ] :
+        if nodes:
+            print '[%s:%d] : '%(message,len(nodes)),
+            for node in nodes:
+                print node['hostname']+' ',
+            print ''
+
+def check_slice_nodes (expected_nodes, is_local_slice, args=[1,2]):
+    for ns in myrange(number_slices):
+       check_slice_nodes_n (ns,expected_nodes, is_local_slice, args)
+
+def check_slice_nodes_n (ns,expected_nodes, is_local_slice, args=[1,2]):
+    for i in args:
+        peer=peer_index(i)
+        if is_local_slice:
+            sname=slice_name(i,ns)
+            slice=s[i].GetSlices({'name':[sname],'peer_id':None})[0]
+            message='local'
+        else:
+            sname=slice_name(peer,ns)
+            slice=s[i].GetSlices({'name':[sname],'~peer_id':None})[0]
+            message='foreign'
+        print '%02d: %s slice %s (e=%d) '%(i,message,sname,expected_nodes),
+        slice_node_ids=slice['node_ids']
+        print 'on nodes ',slice_node_ids
+        show_nodes (i,slice_node_ids)
+        myassert ('slice nodes',len(slice_node_ids)>=expected_nodes)
+       if len(slice_node_ids) != expected_nodes:
+           print 'TEMPORARY'
+
+# expected : nodes on local slice
+def check_local_slice_nodes (expected, args=[1,2]):
+    check_slice_nodes(expected,True,args)
+
+# expected : nodes on foreign slice
+def check_foreign_slice_nodes (expected, args=[1,2]):
+    check_slice_nodes(expected,False,args)
+
+def check_conf_files (args=[1,2]):
+    for nn in myrange(number_nodes):
+       check_conf_files_n (nn,args)
+
+def check_conf_files_n (nn,args=[1,2]):
+    for i in args:
+        nodename=node_name(i,nn)
+        ndict= s[i].GetSlivers([nodename])[0]
+        myassert ('conf files',ndict['hostname'] == nodename)
+        conf_files = ndict['conf_files']
+        print '%02d: %d conf_files in GetSlivers for node %s'%(i,len(conf_files),nodename)
+        for conf_file in conf_files:
+            print 'source=',conf_file['source'],'|',
+            print 'dest=',conf_file['dest'],'|',
+            print 'enabled=',conf_file['enabled'],'|',
+            print ''
+
+import pprint
+pp = pprint.PrettyPrinter(indent=3)
+
+def check_slivers (esn,args=[1,2]):
+    for nn in myrange(number_nodes):
+       check_slivers_n (nn,esn,args)
+
+# too verbose to check all nodes, let's check only the first one
+def check_slivers_1 (esn,args=[1,2]):
+    check_slivers_n (1,esn,args)
+
+def check_slivers_n (nn,esn,args=[1,2]):
+    for i in args:
+        nodename=node_name(i,nn)
+        ndict= s[i].GetSlivers(nodename)
+        myassert ('slivers hostname',ndict['hostname'] == nodename)
+        slivers = ndict['slivers']
+        print '%02d: %d slivers (exp. %d) in GetSlivers for node %s'\
+              %(i,len(slivers),esn,nodename)
+        for sliver in slivers:
+            print '>>slivername = ',sliver['name']
+            pretty_printer.pprint(sliver)
+        myassert ('slivers count',len(slivers) == esn)
+                
+
+####################
+def test00_admin_person (args=[1,2]):
+    global plc
+    for i in args:
+        email = plc[i]['peer-admin-name']
+        try:
+            p=s[i].GetPersons([email])[0]
+            plc[i]['peer-admin-id']=p['person_id']
+        except:
+            person_id=s[i].AddPerson({'first_name':'Local', 
+                                      'last_name':'PeerPoint', 
+                                      'role_ids':[10],
+                                      'email':email,
+                                      'password':plc[i]['peer-admin-password']})
+            if person_id:
+                print '%02d:== created peer admin account %d, %s - %s'%(
+                    i, person_id,plc[i]['peer-admin-name'],plc[i]['peer-admin-password'])
+            plc[i]['peer-admin-id']=person_id
+
+def test00_admin_enable (args=[1,2]):
+    for i in args:
+        if s[i].AdmSetPersonEnabled(plc[i]['peer-admin-id'],True):
+            s[i].AddRoleToPerson('admin',plc[i]['peer-admin-id'])
+            print '%02d:== enabled+admin on account %d:%s'%(i,plc[i]['peer-admin-id'],plc[i]['peer-admin-name'])
+
+####################
+def locate_key (filename):
+     " tries to locate a key file, either in . or in /etc/planetlab"
+     try:
+         return file("./"+filename).read()
+     except:
+         try:
+             return file("/etc/planetlab/"+filename).read()
+         except:
+             raise Exception,"Could not locate key %s"%filename
+             
+
+def test00_peer (args=[1,2]):
+    global plc
+    for i in args:
+        peer=peer_index(i)
+        peername = plc_name(peer)
+        try:
+            p=s[i].GetPeers ( [peername])[0]
+        except:
+            try:
+                keyringname=plc[i]['gpg-keyring']
+                cacertname=plc[i]['api-cacert']
+                print 'Trying to locate keys for peer on plc[%d]'%i,
+                print 'in %s and %s'%(keyringname,cacertname)
+
+                keyring=locate_key(keyringname)
+                cacert=locate_key(cacertname)
+                peer_id=s[i].AddPeer ( {'peername':peername,
+                                        'peer_url':plc[peer]['url'],
+                                        'key':keyring,
+                                        'cacert': cacert,
+                                        })
+                print '%02d:Created peer %d'%(i,peer_id)
+            except Exception,e:
+                print 'Could not create peer,',e
+    
+# this one gets cached 
+def get_peer_id (i):
+    try:
+        return plc[i]['peer_id']
+    except:
+        peername = plc_name (peer_index(i))
+        peer_id = s[i].GetPeers([peername])[0]['peer_id']
+        plc[i]['peer_id'] = peer_id
+        return peer_id
+
+##############################
+def test00_refresh (message,args=[1,2]):
+    print '=== refresh',message
+    timer_show()
+    for i in args:
+        print '%02d:== Refreshing peer'%(i)
+        timers=s[i].RefreshPeer(get_peer_id(i))
+        print "+++ ellapsed: {",
+        keys=timers.keys()
+        keys.sort()
+        for key in keys:
+            print key,timers[key],
+        print "}"
+       timer_show()
+
+####################
+def test01_site (args=[1,2]):
+    for ns in myrange(number_sites):
+       test01_site_n (ns,True,args)
+
+def test01_del_site (args=[1,2]):
+    for ns in myrange(number_sites):
+       test01_site_n (ns,False,args)
+
+def test01_site_n (ns,add_if_true,args=[1,2]):
+    for i in args:
+       login_base = site_login_base (i,ns)
+        try:
+           site_id = s[i].GetSites([login_base])[0]['site_id']
+           if not add_if_true:
+                if s[i].DeleteSite(site_id):
+                    print "%02d:== deleted site_id %d"%(i,site_id)
+        except:
+           if add_if_true:
+               sitename=site_name(i,ns)
+               abbrev_name="abbr"+str(i)
+               max_slices = number_slices
+               site_id=s[i].AddSite ( {'name':plc_name(i),
+                                        'abbreviated_name': abbrev_name,
+                                        'login_base': login_base,
+                                        'is_public': True,
+                                        'url': 'http://%s.com/'%abbrev_name,
+                                        'max_slices':max_slices})
+                ### max_slices does not seem taken into account at that stage
+                if site_id:
+                    s[i].UpdateSite(site_id,{'max_slices':max_slices})
+                    print '%02d:== Created site %d with max_slices=%d'%(i,site_id,max_slices)
+
+####################
+def test02_person (args=[1,2]):
+    for np in myrange(number_persons):
+       test02_person_n (np,True,args)
+
+def test02_del_person (args=[1,2]):
+    for np in myrange(number_persons):
+       test02_person_n (np,False,args)
+
+def test02_person_n (np,add_if_true,args=[1,2]):
+    test02_person_n_ks (np, myrange(number_keys_per_person),add_if_true,args)
+
+def test02_person_n_ks (np,nks,add_if_true,args=[1,2]):
+    for i in args:
+        email = person_name(i,np)
+        try:
+            person_id=s[i].GetPersons([email])[0]['person_id']
+           if not add_if_true:
+                if s[i].DeletePerson(person_id):
+                    print "%02d:== deleted person_id %d"%(i,person_id)
+        except:
+           if add_if_true:
+               password = plc[i]['person-password']
+               person_id=s[i].AddPerson({'first_name':'Your average', 
+                                              'last_name':'User%d'%np, 
+                                              'role_ids':[30],
+                                              'email':email,
+                                              'password': password })
+                if person_id:
+                    print '%02d:== created user account %d, %s - %s'%(i, person_id,email,password)
+                    for nk in nks:
+                        key=key_name(i,np,nk)
+                        s[i].AddPersonKey(email,{'key_type':'ssh', 'key':key})
+                        print '%02d:== added key %s to person %s'%(i,key,email)
+
+####################
+# retrieves node_id from hostname - checks for local nodes only
+def get_local_node_id(i,nodename):
+    return s[i].GetNodes({'hostname':nodename,'peer_id':None})[0]['node_id']
+
+# clean all local nodes - foreign nodes are not supposed to be cleaned up manually
+def clean_all_nodes (args=[1,2]):
+    for i in args:
+        print '%02d:== Cleaning all nodes'%i
+        local_nodes = s[i].GetNodes({'peer_id':None})
+        if local_nodes:
+            for node in local_nodes:
+                print '%02d:==== Cleaning node %d'%(i,node['node_id'])
+                s[i].DeleteNode(node['node_id'])
+
+def test03_node (args=[1,2]):
+    for nn in myrange(number_nodes):
+       test03_node_n (nn,args)
+
+def test03_node_n (nn,args=[1,2]):
+    for i in args:
+        nodename = node_name(i,nn)
+        try:
+            get_local_node_id(i,nodename)
+        except:
+           login_base=site_login_base(i,map_on_site(nn))
+            n=s[i].AddNode(login_base,{'hostname': nodename})
+            if n:
+                print '%02d:== Added node %d %s'%(i,n,node_name(i,nn))
+
+def test02_delnode (args=[1,2]):
+    for nn in myrange(number_nodes):
+       test02_delnode_n (nn,args)
+
+def test02_delnode_n (nn,args=[1,2]):
+    for i in args:
+        nodename = node_name(i,nn)
+        node_id = get_local_node_id (i,nodename)
+        retcod=s[i].DeleteNode(nodename)
+        if retcod:
+            print '%02d:== Deleted node %d, returns %s'%(i,node_id,retcod)
+
+####################
+def clean_all_slices (args=[1,2]):
+    for i in args:
+        print '%02d:== Cleaning all slices'%i
+        for slice in s[i].GetSlices({'peer_id':None}):
+            slice_id = slice['slice_id']
+            if slice_id not in system_slices_ids:
+                if s[i].DeleteSlice(slice_id):
+                    print '%02d:==== Cleaned slice %d'%(i,slice_id)
+
+def test04_slice (args=[1,2]):
+    for n in myrange(number_slices):
+       test04_slice_n (n,args)
+
+def test04_slice_n (ns,args=[1,2]):
+    for i in args:
+        peer=peer_index(i)
+        plcname=plc_name(i)
+        slicename=slice_name(i,ns)
+        max_nodes=number_nodes
+        try:
+            s[i].GetSlices([slicename])[0]
+        except:
+            slice_id=s[i].AddSlice ({'name':slicename,
+                                     'description':'slice %s on %s'%(slicename,plcname),
+                                     'url':'http://planet-lab.org/%s'%slicename,
+                                     'max_nodes':max_nodes,
+                                     'instanciation':'plc-instantiated',
+                                     })
+            if slice_id:
+                print '%02d:== created slice %d - max nodes=%d'%(i,slice_id,max_nodes)
+                actual_persons_per_slice = min (number_persons,number_persons_per_slice)
+                person_indexes=[map_on_person (p+ns) for p in range(actual_persons_per_slice)]
+                for np in person_indexes:
+                    email = person_name (i,np)
+                    retcod = s[i].AddPersonToSlice (email, slicename)
+                    print '%02d:== Attached person %s to slice %s'%(i,email,slicename)
+        
+
+def test04_node_slice (is_local, add_if_true, args=[1,2]):
+    for ns in myrange(number_slices):
+       test04_node_slice_ns (ns,is_local, add_if_true, args)
+
+def test04_node_slice_ns (ns,is_local, add_if_true, args=[1,2]):
+    actual_nodes_per_slice = min (number_nodes,number_nodes_per_slice)
+    node_indexes = [ map_on_node (n+ns) for n in range(actual_nodes_per_slice)]
+    test04_node_slice_nl_n (node_indexes,ns,is_local, add_if_true, args)
+
+def test04_node_slice_nl_n (nnl,ns,is_local, add_if_true, args=[1,2]):
+    for i in args:
+        peer=peer_index(i)
+        sname = slice_name (i,ns)
+        
+        if is_local:
+            hostnames=[node_name(i,nn) for nn in nnl]
+            nodetype='local'
+        else:
+            hostnames=[node_name(peer,nn) for nn in nnl]
+            nodetype='foreign'
+        if add_if_true:
+            res=s[i].AddSliceToNodes (sname,hostnames)
+            message="added"
+        else:
+            res=s[i].DeleteSliceFromNodes (sname,hostnames)
+            message="deleted"
+        if res:
+            print '%02d:== %s in slice %s %s '%(i,message,sname,nodetype),
+            print hostnames
+
+def test04_slice_add_lnode (args=[1,2]):
+    test04_node_slice (True,True,args)
+
+def test04_slice_add_fnode (args=[1,2]):
+    test04_node_slice (False,True,args)
+
+def test04_slice_del_lnode (args=[1,2]):
+    test04_node_slice (True,False,args)
+
+def test04_slice_del_fnode (args=[1,2]):
+    test04_node_slice (False,False,args)
+
+####################
+def test05_sat (args=[1,2]):
+    for i in args:
+        name = sat_name(i)
+        try:
+            sat_id=s[i].GetSliceAttributeTypes ([name])[0]
+        except:
+            description="custom sat on plc%d"%i
+            min_role_id=10
+            sat_id=s[i].AddSliceAttributeType ({ 'name':name,
+                                                 'description': description,
+                                                 'min_role_id' : min_role_id})
+            if sat_id:
+                print '%02d:== created SliceAttributeType = %d'%(i,sat_id)
+
+# for test, we create 4 slice_attributes
+# on slice1 - sat=custom_made (see above) - all nodes
+# on slice1 - sat=custom_made (see above) - node=n1
+# on slice1 - sat='net_max' - all nodes
+# on slice1 - sat='net_max' - node=n1
+
+def test05_sa_atom (slice_name,sat_name,value,node,i):
+    sa_id=s[i].GetSliceAttributes({'name':sat_name,
+                                   'value':value})
+    if not sa_id:
+        if node:
+            sa_id=s[i].AddSliceAttribute(slice_name,
+                                         sat_name,
+                                         value,
+                                         node)
+        else:
+            print 'slice_name',slice_name,'sat_name',sat_name
+            sa_id=s[i].AddSliceAttribute(slice_name,
+                                         sat_name,
+                                         value)
+        if sa_id:
+            print '%02d:== created SliceAttribute = %d'%(i,sa_id),
+            print 'On slice',slice_name,'and node',node
+        
+def test05_sa (args=[1,2]):
+    for i in args:
+        test05_sa_atom (slice_name(i,1),sat_name(i),'custom sat/all nodes',None,i)
+        test05_sa_atom (slice_name(i,1),sat_name(i),'custom sat/node1',node_name(i,1),i)
+        test05_sa_atom (slice_name(i,1),'vref','predefined sat/all nodes',None,i)
+        test05_sa_atom (slice_name(i,1),'vref','predefined sat/node1',node_name(i,1),i)
+        
+##############################
+# readable dumps
+##############################
+def p_site (s):
+    print s['site_id'],s['peer_id'],s['login_base'],s['name'],s['node_ids']
+
+def p_key (k):
+    print  k['key_id'],k['peer_id'],k['key']
+    
+def p_person (p):
+    print  p['person_id'],p['peer_id'],p['email'],'keys:',p['key_ids'],'sites:',p['site_ids']
+
+def p_node(n):
+    print n['node_id'],n['peer_id'],n['hostname'],'sls=',n['slice_ids'],'site=',n['site_id']
+
+def p_slice(s):
+    print 'name: %-12s'%s['name'],'id: %02d'%s['slice_id'],'peer:',s['peer_id'],'nodes=',s['node_ids'],'persons=',s['person_ids']
+    print '---','sa_ids=',s['slice_attribute_ids'],'creator: %03r'%s['creator_person_id']
+    print "--- 'expires':",s['expires']
+
+def p_sat(sat):
+    print 'sat_id: %02d'%sat['attribute_type_id'], 'min_role_id:',sat['min_role_id'],
+    print 'name:', sat['name'],'<',sat['description'],'>'
+
+def p_sa (sa):
+        print 'name: %-12s'%sa['name'], 
+        print 'sa_id: %02d'%sa['slice_attribute_id'],'sat_id: %02d'%sa['attribute_type_id'],
+        print 'sl=%02d'%sa['slice_id'],'v=',sa['value'],'n=',sa['node_id']
+
+import pprint
+pretty_printer=pprint.PrettyPrinter(5)
+
+def p_sliver (margin,x):
+    print margin,'SLIVERS for : hostname',x['hostname']
+    print margin,'%d config files'%len(x['conf_files'])
+    for sv in x['slivers']:
+        p_sliver_slice(margin,sv,x['hostname'])
+
+def p_sliver_slice(margin,sliver,hostname):
+    print margin,'SLIVER on hostname %s, s='%hostname,sliver['name']
+    print margin,'KEYS',
+    pretty_printer.pprint(sliver['keys'])
+    print margin,'ATTRIBUTES',
+    pretty_printer.pprint(sliver['attributes'])
+
+def dump (args=[1,2]):
+    for i in args:
+        print '%02d:============================== DUMPING'%i
+        print '%02d: SITES'%i
+        [p_site(x) for x in s[i].GetSites()]
+        print '%02d: KEYS'%i
+        [p_key(x) for x in s[i].GetKeys()]
+        print '%02d: PERSONS'%i
+        [p_person(x) for x in s[i].GetPersons()]
+        print '%02d: NODES'%i
+        [p_node(x) for x in s[i].GetNodes()]
+        print '%02d: SLICES'%i
+        [p_slice(x) for x in s[i].GetSlices()]
+        print '%02d: Slice Attribute Types'%i
+        [p_sat(x) for x in s[i].GetSliceAttributeTypes()]
+        print '%02d: Slice Attributes'%i
+        [p_sa(x) for x in s[i].GetSliceAttributes()]
+        timer_show()
+        snodes=min(3,number_nodes)
+        print '%02d: SLIVERS for first %d nodes'%(i,snodes)
+        print 'WARNING - GetSlivers needs fix'
+#        for id in myrange(snodes):
+#            p_sliver('%02d:'%i,s[i].GetSlivers(id))
+
+        print '%02d:============================== END DUMP'%i
+    
+
+## for usage under the api
+def pt ():
+    for x in GetSites():
+        p_site(x)
+        
+def pk ():
+    for x in GetKeys():
+        print  (x['key_id'],x['peer_id'],x['key']) 
+
+def pp ():
+    for x in GetPersons():
+        p_person(x)
+
+def pn ():
+    for x in GetNodes():
+        p_node(x)
+
+def ps ():
+    for x in GetSlices():
+        p_slice(x)
+
+def psat():
+    for x in GetSliceAttributeTypes():
+        p_sat(x)
+        
+def psa():
+    for x in GetSliceAttributes():
+        p_sa(x)
+        
+def pv ():
+    for s in GetSlivers():
+        p_sliver('',s)
+
+def all():
+    print 'SITES'
+    pt()
+    print 'KEYS'
+    pk()
+    print 'PERSONS'
+    pp()
+    print 'NODES'
+    pn()
+    print 'SLICES'
+    ps()
+    print 'SLICE ATTR TYPES'
+    psat()
+    print 'SLICE ATTRS'
+    psa()
+    print 'SLIVERS'
+    pv()
+
+
+####################
+def test_all_init ():
+    message ("INIT")
+    test00_init (builtin_person=True)
+    test00_print ()
+    test00_admin_person ()
+    test00_admin_enable ()
+    test00_init (builtin_person=False)
+# required before we can add peers
+# use make -f peers-test.mk peers instead    
+#    test00_push_public_peer_material()
+    test00_peer ()
+
+def test_all_sites ():
+    test01_site ()
+    test00_refresh ('after site creation')
+
+def test_all_persons ():
+    test02_del_person()
+    test00_refresh ('before persons&keys creation')
+    check_keys(0,0)
+    check_persons(system_persons,system_persons_cross)
+    message ("Creating persons&keys")
+    test02_person ()
+    if not fast_flag:
+       message ("1 extra del/add cycle for unique indexes")
+       test02_del_person([2])
+       test02_person([2])
+    check_keys(number_persons*number_keys_per_person,0)
+    check_persons(system_persons+number_persons,system_persons_cross)
+    test00_refresh ('after persons&keys creation')
+    check_keys(number_persons*number_keys_per_person,number_persons*number_keys_per_person)
+    check_persons(system_persons+number_persons,system_persons_cross+number_persons)
+
+def test_all_nodes ():
+
+    message ("RESETTING NODES")
+    clean_all_nodes ()
+    test00_refresh ('cleaned nodes')
+    check_nodes(0,0)
+
+    # create one node on each site
+    message ("CREATING NODES")
+    test03_node ()
+    check_nodes(number_nodes,0)
+    test00_refresh ('after node creation')
+    check_nodes(number_nodes,number_nodes)
+    test02_delnode([2])
+    if not fast_flag:
+       message ("2 extra del/add cycles on plc2 for different indexes")
+       test03_node ([2])
+       test02_delnode([2])
+       test03_node ([2])
+       test02_delnode([2])
+    check_nodes(0,number_nodes,[2])
+    test00_refresh('after deletion on plc2')
+    check_nodes(number_nodes,0,[1])
+    check_nodes(0,number_nodes,[2])
+    message ("ADD on plc2 for different indexes")
+    test03_node ([2])
+    check_nodes (number_nodes,0,[1])
+    check_nodes (number_nodes,number_nodes,[2])
+    test00_refresh('after re-creation on plc2')
+    check_nodes (number_nodes,number_nodes,)
+
+def test_all_addslices ():
+
+    # reset
+    message ("RESETTING SLICES TEST")
+    clean_all_nodes ()
+    test03_node ()
+    clean_all_slices ()
+    test00_refresh ("After slices init")
+
+    # create slices on plc1
+    message ("CREATING SLICES on plc1")
+    test04_slice ([1])
+
+    check_slices (total_slices(),0,[1])
+    check_slices (system_slices(),0,[2])
+    test00_refresh ("after slice created on plc1")
+    check_slices (total_slices(),0,[1])
+    check_slices (system_slices(),number_slices,[2])
+    # no slice has any node yet
+    check_local_slice_nodes(0,[1])
+    check_foreign_slice_nodes(0,[2])
+
+    # insert local nodes in local slice on plc1
+    message ("ADDING LOCAL NODES IN SLICES")
+    test04_slice_add_lnode ([1])
+    # of course the change is only local
+    check_local_slice_nodes (number_nodes_per_slice,[1])
+    check_foreign_slice_nodes(0,[2])
+
+    # refreshing
+    test00_refresh ("After local nodes were added on plc1")
+    check_local_slice_nodes (number_nodes_per_slice,[1])
+    check_foreign_slice_nodes (number_nodes_per_slice,[2])
+
+    # now we add foreign nodes into local slice
+    message ("ADDING FOREIGN NODES IN SLICES")
+    test04_slice_add_fnode ([1])
+    check_local_slice_nodes (2*number_nodes_per_slice,[1])
+    check_foreign_slice_nodes (number_nodes_per_slice,[2])
+
+    # refreshing
+    test00_refresh ("After foreign nodes were added in plc1")
+    # remember that foreign slices only know about LOCAL nodes
+    # so this does not do anything
+    check_local_slice_nodes (2*number_nodes_per_slice,[1])
+    check_foreign_slice_nodes (2*number_nodes_per_slice,[2])
+
+    check_slivers_1(total_slivers())
+
+def test_all_delslices ():
+
+    message ("DELETING FOREIGN NODES FROM SLICES")
+    test04_slice_del_fnode([1])
+    check_local_slice_nodes (number_nodes_per_slice,[1])
+    check_foreign_slice_nodes (2*number_nodes_per_slice,[2])
+    # mmh?
+    check_slivers_1(total_slivers(),[1])
+
+    test00_refresh ("After foreign nodes were removed on plc1")
+    check_local_slice_nodes (number_nodes_per_slice,[1])
+    check_foreign_slice_nodes (number_nodes_per_slice,[2])
+    
+    message ("DELETING LOCAL NODES FROM SLICES")
+    test04_slice_del_lnode([1])
+    check_local_slice_nodes (0,[1])
+    check_foreign_slice_nodes (number_nodes_per_slice,[2])
+
+    test00_refresh ("After local nodes were removed on plc1")
+    check_local_slice_nodes (0,[1])
+    check_foreign_slice_nodes (0,[2])
+
+    message ("CHECKING SLICES CLEAN UP")
+    clean_all_slices([1])
+    check_slices (system_slices(),0,[1])
+    check_slices (system_slices(),number_slices,[2])
+    test00_refresh ("After slices clenaup")
+    check_slices(system_slices(),0)
+
+def test_all_slices ():
+    test_all_addslices ()
+    test_all_delslices ()
+    
+def test_all_sats ():
+    test05_sat ()
+    test00_refresh("after SliceAttributeType creation")                   
+
+def test_all ():
+    test_all_init ()
+    timer_show()
+    test_all_sites ()
+    timer_show()
+    test_all_persons ()
+    timer_show()
+    test_all_nodes ()
+    timer_show()
+    test_all_slices ()
+    timer_show()
+    test_all_sats ()
+    timer_show()
+    dump()
+    timer_show()
+    message("END")
+
+### ad hoc test sequences
+# we just create objects here so we can dump the DB
+def populate ():
+    timer_start()
+    test_all_init()
+    timer_show()
+    test01_site()
+    timer_show()
+    test02_person()
+    timer_show()
+    test03_node()
+    timer_show()
+    test04_slice([1])
+    timer_show()
+    test04_slice_add_lnode([1])
+    timer_show()
+    test05_sat()
+    timer_show()
+    test05_sa([1])
+    timer_show()
+    message("END")
+
+def populate_end():
+    test00_init(builtin_person=False)
+    test00_refresh ("Peer 1 for publishing foreign nodes from 2",[1])
+    timer_show()
+    test04_slice_add_fnode([1])
+    timer_show()
+    test00_refresh("populate: refresh all")
+    timer_show()
+    test00_refresh("empty refresh")
+    dump()
+    timer_show()
+    message("END")
+
+# temporary - scratch as needed
+def test_now ():
+    test_all_init()
+
+#    populate()
+#    test00_refresh('peer 1 gets plc2 nodes',[1])
+#    test04_slice_add_fnode([1])
+#    test00_refresh('final',[1])
+#    
+#    test_all_sites ()
+#    clean_all_nodes()
+#    clean_all_slices()
+#    populate()
+
+from optparse import OptionParser
+def main ():
+    usage = "Usage: %prog [options] [ [function1] .. fn]"
+
+    parser=OptionParser(usage=usage,version="%prog "+subversion_id)
+    parser.add_option("-m","--mini",action="store_const", const="mini",dest="size", 
+                     help="run in mini mode (1 instance of each class)")
+    parser.add_option("-n","--normal",action="store_const", const="normal",dest="size", 
+                     default="normal",
+                     help="performs big run")
+    parser.add_option("-b","--big",action="store_const", const="big",dest="size", 
+                     help="performs big run")
+    parser.add_option("-H","--huge",action="store_const", const="huge",dest="size", 
+                     help="performs huge run")
+    parser.add_option("-f","--factor",action="store", dest="factor",default=1,
+                     help="multiply size by FACTOR")
+
+    parser.add_option("-l","--local",action="store", dest="local_peer",
+                     help="tester runs locally for peer LOCAL_PEER, rather than through xmlrpc")
+    parser.add_option("-1",action="store_const", const=1, dest="local_peer",
+                     help="shortcut for -l 1")
+    parser.add_option("-2",action="store_const", const=2, dest="local_peer",
+                     help="shortcut for -l 2")
+
+    parser.add_option("--plc1",action="store",dest="plc1", default="",
+                     help="specifies plc1 hostname")
+    parser.add_option("--plc2",action="store",dest="plc2", default="",
+                     help="specifies plc2 hostname")
+
+    parser.add_option("-d","--debug",dest="debug",action="store_true",default=False,
+                     help="Just shows what would be done")
+
+    (options,args) = parser.parse_args()
+
+    print 'options',options,'args',args
+
+    steps = []
+    if len(args) > 0:
+       steps=args
+    else:
+       steps = [ 'test_all']
+
+    # perform size initialisation
+    size_func=globals()[options.size]
+    size_func()
+    # apply factor
+    apply_factor(int(options.factor))
+    
+    # support for the --plc options
+    global plc
+    if options.plc1:
+       plc[1]['hostname']=options.plc1
+    if options.plc2:
+       plc[2]['hostname']=options.plc2
+
+    # update global local_peer
+    global local_peer
+    local_peer=options.local_peer
+    
+    show_test()
+               
+    for funcname in steps:
+       print 'funcname',funcname
+       print 'dir()',dir()
+       if funcname not in globals():
+           print 'Unknown step',funcname,'skipped'
+       else:
+           if options.debug:
+               print "Would invoke function",funcname
+           else:
+               func = globals()[funcname]
+               func()
+               timer_show()
+               epilogue()
+
+if __name__ == '__main__':
+    main()
+    
diff --git a/trunk/tests/readme.txt b/trunk/tests/readme.txt
new file mode 100644 (file)
index 0000000..43ed829
--- /dev/null
@@ -0,0 +1,149 @@
+==== requirements
+you need to have 
+(*) one master test machine (abbreved 'test') - this is where you
+trigger everything from
+(*) two servers with myplc installed (abbreved 'plc1' and 'plc2')
+at this stage the myplc configuration needs to be done by hand
+you also need root ssh access from the test box to the two plc boxes in both boxes
+
+-- configuring the plc servers:
+(*) set their names in the Makefile (PLC1 and PLC2) 
+(*) edit TestPeers.py too -- xxx should be improved
+
+To some extent this stuff can be ran to control a single plc.
+
+==== concepts
+right now, 4 tests sizes are supported, they are named
+* m (minimal)     1 object of each kind is created
+* n (normal)      a few of each kind
+* b (big)                 a few hundreds
+* h (huge)        a few thousands
+
+two modes are supported:
+
+(1) single run mode: everything is ran from the 'test' box
+this is a convenient, but very slow mode, especially for large sizes
+because each individual object is created in a single xmlrpc command 
+>>> xxx btw, I did not know about begin/commit at that time, but I do not
+       think it can speed up to the point where the second mode does
+In this mode, both DB's are populated together, and various checks can
+be done on the fly
+
+(2) populate-and-run mode
+where the DB populating parts are done beforehand, and separately,
+from each plc's chroot jail for direct access to the DB
+This mode allows for dump&restore of the populated DB
+
+==== preparation
+
+(*) manually install both myplc, do the configs manually (once and for
+good, see upgrades below)
+
+(*) initial setup
+- check Makefile and TestPeers.py for correct identification of 
+
+(*) push the stuff
+$ make push
+so the local repository gets synced on all nodes.
+
+(*) get and push peers information
+$ make peers 
+(at least once) so the gpg and other authentication materials get pushed to both nodes
+
+==== use cases
+
+IMPORTANT:  for cleaning up previous tests if needed
+
+$ make db-clean.3
+=> cleans up both databases if needed
+<<< xxx this uses the initscripts to perform the job, it's a bit slow on
+old boxes, could probably be improved by snapshotting the db right
+after plc gets started>>>
+
+(1) 
+
+$ make testpeers.help
+
+$ make testpeers-m.run
+assumes the dbs are clean, and runs the test locally
+
+$ make testpeers-b.all
+cleans both dbs and runs .run
+
+$ make testpeers-m.diff
+checks the output agaist the .ref file that chould be under subversion
+
+$ make testpeers-m.ckp
+adopts the current .out as a reference for that test - does *not*
+commit under subversion, just copies the .out into .ref
+
+(2)
+
+$ make populate.help
+
+$ make populate-m.all
+cleans both dbs, cleans any former result, then runs .init and .run
+
+$ make populate-b.init
+assumes both dbs are clean, populates both databases and dumps database in the .sql files
+
+$ make populate-b.run
+performs the populate_end part of the test from the populated database
+
+$ make populate-b.restore
+restores the database from the stage where it just populated
+
+$ make populate-b.clean
+cleans everything except the sql files
+
+$ make populate-b.sqlclean
+cleans the .sql files
+
+==== various utilities
+
+(*) upgrading both plcs (xxx could be improved):
+- log as root on both plc servers and manually curl the myplc rpm you
+want, in /root/new_plc_api/tests
+- back to the server node:
+$ make upgrade.3
+
+if you want to upgrade only one, of course just use targets upgrade.1
+or upgrade.2
+
+(*) cleaning the database
+$ make db-clean.1 (or .2 or .3)
+
+
+
+==== implementation notes
+I've designed this thing so everything can be invoked from the test
+server, even when things need to be actually triggered from a chroot
+
+For this reason the same pieces of code (namely Makefile and
+TestPeers.py) needs to be accessible from
+(*) the test server
+(*) root's homedir on both plc's, namely in /root/new_plc_api/tests
+(*) chroot jail on both plc's, namely in /plc/root/usr/share/plc_api/tests
+
+This is where the 'push' target comes in
+xxx at this stage the push target pushes the whole API, because I used this 
+to test the code that I was patching on the test node. this can be improved
+
+TARGET structure
+
+If you need to invoke something on a given plc, append '.1' or '.2' to the target name
+$ make db-clean.1
+Will run the 'db-clean' target on the plc1 node
+
+for convenience:
+$ make db-clean.3
+will run db-clean on both plc's
+
+When something needs to be ran in the chroot jail, run
+$ make sometarget.chroot
+that will make sometarget from the chroot jail
+
+So from the test server
+$ make sometarget.chroot.3
+runs in both chroot jails
+
diff --git a/trunk/tests/regrtests.cron b/trunk/tests/regrtests.cron
new file mode 100644 (file)
index 0000000..0712923
--- /dev/null
@@ -0,0 +1,26 @@
+PL_PATH = "/u/jbagdis/planetlab/tests"
+
+# update plots
+*/3 *          * * *   cd $PL_PATH; python -c 'import tests; tests.make_plots()'
+
+# fill/empty slice
+0 */6          * * *   cd $PL_PATH; python -c 'import tests; tests.empty_slice("princeton_jbagdis")'
+0 3-23/6       * * *   cd $PL_PATH; python -c 'import tests; tests.fill_slice("princeton_jbagdis")'
+0 */4          * * *   cd $PL_PATH; python -c 'import tests; tests.empty_slice("princeton_bagdis2")'
+5 */4          * * *   cd $PL_PATH; python -c 'import tests; tests.fill_slice("princeton_bagdis2")'
+0 1-23/4       * * *   cd $PL_PATH; python -c 'import tests; tests.add_key("key1")'
+0 2-23/4       * * *   cd $PL_PATH; python -c 'import tests; tests.update_key("key1", "key2")'
+0 3-23/4       * * *   cd $PL_PATH; python -c 'import tests; tests.delete_key("key2")'
+
+
+
+# count nodes
+* *            * * *   cd $PL_PATH; python -c 'import tests; tests.count_nodes_in_slice_by_api("princeton_jbagdis")' >> $PL_PATH/data/nodes_in_slice
+* *            * * *   cd $PL_PATH; python -c 'import tests; tests.count_nodes_in_slice_by_api("princeton_bagdis2")' >> $PL_PATH/data/nodes_in_slice2
+* *            * * *   cd $PL_PATH; python -c 'import tests; tests.count_nodes_by_api()' >> $PL_PATH/data/nodes
+* *            * * *   cd $PL_PATH; python -c 'import tests; tests.count_nodes_can_ssh("princeton_jbagdis", "key0")' >> $PL_PATH/data/nodes_can_ssh
+* *            * * *   cd $PL_PATH; python -c 'import tests; tests.count_nodes_good_by_comon()' >> $PL_PATH/data/nodes_good
+* *            * * *   cd $PL_PATH; python -c 'import tests; tests.count_nodes_can_ssh("princeton_bagdis2", "key0")' >> $PL_PATH/data/nodes_can_ssh2_key0
+* *            * * *   cd $PL_PATH; python -c 'import tests; tests.count_nodes_can_ssh("princeton_bagdis2", "key1")' >> $PL_PATH/data/nodes_can_ssh2_key1
+* *            * * *   cd $PL_PATH; python -c 'import tests; tests.count_nodes_can_ssh("princeton_bagdis2", "key2")' >> $PL_PATH/data/nodes_can_ssh2_key2
+
diff --git a/trunk/tests/regrtests.py b/trunk/tests/regrtests.py
new file mode 100644 (file)
index 0000000..602a145
--- /dev/null
@@ -0,0 +1,308 @@
+#!/usr/bin/python
+
+import time, sys, urllib, os, tempfile, random
+
+# set up the api
+import xmlrpclib
+api = xmlrpclib.Server('https://www.planet-lab.org/PLCAPI/')
+
+# create auth struct
+auth = {}
+auth['Username'] = "USERNAME GOES HERE"
+auth['AuthMethod'] = "password"
+auth['AuthString'] = "PASSWORD GOES HERE"
+auth['Role'] = "user"
+
+multiquery_path = "PATH/TO/CODEPLOY/multiquery"
+gnuplot_path = "/PATH/TO/gnuplot"
+
+# create plots
+def make_plots():
+       plot_fill_empty()
+       plot_keys()
+       #os.system("cp plots/*.png ~/public_html/planetlab/tests")
+
+
+# get formatted tic string for gnuplot
+def getTimeTicString(t1, t2, step):
+       first_hour = list(time.localtime(t1))
+       if not first_hour[4] == first_hour[5] == 0:
+               first_hour[4] = 0
+               first_hour[5] = 0
+       
+       first_hour_time = int(time.mktime(first_hour))
+       first_hour_time += 3600
+       
+       backsteps = (first_hour_time - t1)
+       backsteps /= step
+       start = first_hour_time - backsteps * step
+       
+       tics = []
+       thistime = start
+       while thistime < t2:
+               tics.append("\"%s\" %d" % \
+                       (time.strftime("%H:%M", time.localtime(thistime)), thistime))
+               thistime += step
+       
+       ticstr = ", ".join(tics)
+       return ticstr
+
+
+# count total number of nodes in PlanetLab, according to the api
+def count_nodes_by_api():
+       all_nodes = [row['node_id'] for row in api.GetNodes(auth, {}, ['node_id'])]
+       print "%d\t%d" % (round(time.time()), len(all_nodes))
+
+
+# count total number of nodes in slice, according to the api
+def count_nodes_in_slice_by_api(slice=None):
+       if slice is None:
+               return
+       
+       slice_id = [row['slice_id'] for row in \
+               api.GetSlices(auth, {'name': slice}, ['slice_id'])][0]
+               
+       all_nodes = [row['node_id'] for row in \
+               api.GetNodes(auth, {}, ['node_id', 'slice_ids']) \
+               if slice_id in row['slice_ids']]
+       
+       print "%d\t%d" % (round(time.time()), len(all_nodes))
+
+
+# count total number of "good" nodes, according to CoMon
+def count_nodes_good_by_comon():
+       comon = urllib.urlopen("http://summer.cs.princeton.edu/status/tabulator.cgi?table=table_nodeviewshort&format=nameonly&select='resptime%20%3E%200%20&&%20((drift%20%3E%201m%20||%20(dns1udp%20%3E%2080%20&&%20dns2udp%20%3E%2080)%20||%20gbfree%20%3C%205%20||%20sshstatus%20%3E%202h)%20==%200)'")
+       good_nodes = comon.readlines()
+
+       print "%d\t%d" % (round(time.time()), len(good_nodes))
+       
+# estimate total number of nodes reachable by ssh
+def count_nodes_can_ssh(slice=None, key=None):
+       if slice is None:
+               return
+       if key is None:
+               return
+               
+       pollnum = 20
+       
+       all_nodes = ["%s\n" % row['hostname'] for row in \
+               api.GetNodes(auth, {}, ['hostname'])]
+
+       rand_nodes = []
+       for i in range(pollnum):
+               rand_nodes.append(all_nodes[random.randint(0,len(all_nodes)-1)])
+
+       tmpfilename = tempfile.mktemp()
+       tmpfile = open(tmpfilename, 'w')
+       tmpfile.writelines(rand_nodes)
+       tmpfile.close()
+       
+       tmpfilename2 = tempfile.mktemp()
+       tmpfile2 = open(tmpfilename2, 'w')
+       tmpfile2.writelines("""
+       export MQ_SLICE="$1"
+       export MQ_NODES="$2"
+       
+       eval `ssh-agent` >/dev/null 2>&1
+       trap "kill $SSH_AGENT_PID" 0
+       ssh-add ./keys/$3 >/dev/null 2>&1
+       
+       %s 'uname' 2>/dev/null |
+       grep "bytes" |
+       grep -v ": 0 bytes" |
+       wc -l   
+       """ % multiquery_path)
+       tmpfile2.close()
+       
+       ssh_result = os.popen("bash %s %s %s %s 2>/dev/null" % (tmpfilename2, slice, tmpfilename, key)).readlines()
+       if len(ssh_result) > 0:
+               ssh_count = float(ssh_result[0].strip()) * len(all_nodes) / pollnum
+               print "%d\t%d" % (round(time.time()), round(ssh_count))
+       
+       if os.path.exists(tmpfilename):
+               os.unlink(tmpfilename)
+
+       
+       
+       
+# remove all nodes from a slice
+def empty_slice(slice=None):
+       if slice is None:
+               return
+       
+       all_nodes = [row['node_id'] for row in api.GetNodes(auth, {}, ['node_id'])]
+       api.DeleteSliceFromNodes(auth, slice, all_nodes)
+
+       
+# add all nodes to a slice
+def fill_slice(slice=None):
+       all_nodes = [row['node_id'] for row in api.GetNodes(auth, {}, ['node_id'])]
+       api.AddSliceToNodes(auth, slice, all_nodes)
+
+       
+# add a key to a user
+def add_key(key=None):
+       if key is None:
+               return
+       
+       key_value = open("keys/%s.pub" % key).readline()
+               
+       api.AddPersonKey(auth, auth['Username'], {'key_type': 'ssh', 'key': key_value})
+
+       
+# update a user's key
+def update_key(oldkey=None, newkey=None):
+       if oldkey is None:
+               return
+       if newkey is None:
+               return
+       
+       oldkeyval = open("keys/%s.pub" % oldkey).readline()
+       newkeyval = open("keys/%s.pub" % newkey).readline()
+       keyid = [row['key_id'] for row in api.GetKeys(auth) if row['key'] == oldkeyval]
+       if len(keyid) == 0:
+               return
+       keyid = keyid[0]
+       api.UpdateKey(auth, keyid, {'key_type': 'ssh', 'key': newkeyval})       
+
+
+# delete a key from the user
+def delete_key(delkey=None):
+       if delkey is None:
+               return
+       
+       delkeyval = open("keys/%s.pub" % delkey).readline()
+       delkeyid = [row['key_id'] for row in api.GetKeys(auth) if row['key'] == delkeyval]
+       if len(delkeyid) == 0:
+               return
+       delkeyid = delkeyid[0]
+       api.DeleteKey(auth, delkeyid)
+
+       
+# create the fill/empty plot
+def plot_fill_empty():
+       #ticstep = 3600 # 1 hour
+       #plotlength = 36000 # 10 hours
+       ticstep = 1800
+       plotlength = 10800
+       
+       tmpfilename = tempfile.mktemp()
+       tmpfile = open(tmpfilename, 'w')
+       
+       starttime = -1
+       stoptime = -1
+       for datafilename in ['data/nodes', 'data/nodes_in_slice', \
+                       'data/nodes_can_ssh', 'data/nodes_good']:
+               datafile = open(datafilename, 'r')
+               line1 = datafile.readline()
+               datafile.seek(-32,2)
+               line2 = datafile.readlines().pop()
+               thisstarttime = int(line1.split("\t")[0])
+               if starttime == -1 or thisstarttime < starttime:
+                       starttime = thisstarttime
+               thisstoptime = int(line2.split("\t")[0])
+               if stoptime == -1 or thisstoptime > stoptime:
+                       stoptime = thisstoptime
+       
+       stopx = stoptime
+       startx = max(starttime, stopx - plotlength)
+       starttime = startx
+       
+       tics = getTimeTicString(starttime, stoptime, ticstep)
+       
+       startdate = time.strftime("%b %m, %Y - %H:%M", time.localtime(startx))
+       stopdate = time.strftime("%H:%M", time.localtime(stopx))
+       
+       tmpfile.write("""
+       set term png
+       set output "plots/fill_empty.png"
+       
+       set title "Number of Nodes / Time - %s to %s"
+       set xlabel "Time"
+       set ylabel "Number of Nodes"
+       
+       set xtics (%s)
+       set xrange[%d:%d]
+       set yrange[0:950]
+       
+       plot "data/nodes" u 1:2 w lines title "Total Nodes", \
+               "data/nodes_in_slice" u 1:2 w lines title "Nodes in Slice", \
+               "data/nodes_good" u 1:2 w lines title \
+                       "Healthy Nodes (according to CoMon)", \
+               "data/nodes_can_ssh" u 1:2 w lines title "Nodes Reachable by SSH"
+       
+       """ % (startdate, stopdate, tics, startx, stopx))
+       
+       tmpfile.close()
+       
+       os.system("%s %s" % (gnuplot_path, tmpfilename))
+       
+       if os.path.exists(tmpfilename):
+               os.unlink(tmpfilename)
+
+
+
+# create the keys plot
+def plot_keys():
+       #ticstep = 3600 # 1 hour
+       #plotlength = 36000 # 10 hours
+       ticstep = 1800
+       plotlength = 10800
+       
+       tmpfilename = tempfile.mktemp()
+       tmpfile = open(tmpfilename, 'w')
+
+       starttime = -1
+       stoptime = -1
+       for datafilename in ['data/nodes', 'data/nodes_in_slice2', \
+                       'data/nodes_good', 'data/nodes_can_ssh2_key0', 'data/nodes_can_ssh2_key1', \
+                       'data/nodes_can_ssh2_key2']:
+               datafile = open(datafilename, 'r')
+               line1 = datafile.readline()
+               datafile.seek(-32,2)
+               line2 = datafile.readlines().pop()
+               thisstarttime = int(line1.split("\t")[0])
+               if starttime == -1 or thisstarttime < starttime:
+                       starttime = thisstarttime
+               thisstoptime = int(line2.split("\t")[0])
+               if stoptime == -1 or thisstoptime > stoptime:
+                       stoptime = thisstoptime
+
+       stopx = stoptime
+       startx = max(starttime, stopx - plotlength)
+       starttime = startx
+
+       tics = getTimeTicString(starttime, stoptime, ticstep)
+
+       startdate = time.strftime("%b %m, %Y - %H:%M", time.localtime(startx))
+       stopdate = time.strftime("%H:%M", time.localtime(stopx))
+
+       tmpfile.write("""
+       set term png
+       set output "plots/keys.png"
+
+       set title "Number of Nodes / Time - %s to %s"
+       set xlabel "Time"
+       set ylabel "Number of Nodes"
+
+       set xtics (%s)
+       set xrange[%d:%d]
+       set yrange[0:1000]
+
+       plot "data/nodes" u 1:2 w lines title "Total Nodes", \
+               "data/nodes_in_slice2" u 1:2 w lines title "Nodes in Slice", \
+               "data/nodes_good" u 1:2 w lines title \
+                       "Healthy Nodes (according to CoMon)", \
+               "data/nodes_can_ssh2_key0" u 1:2 w lines title "Nodes Accepting Key 0", \
+               "data/nodes_can_ssh2_key1" u 1:2 w lines title "Nodes Accepting Key 1", \
+               "data/nodes_can_ssh2_key2" u 1:2 w lines title "Nodes Accepting Key 2"
+
+       """ % (startdate, stopdate, tics, startx, stopx))
+
+       tmpfile.close()
+
+       os.system("%s %s" % (gnuplot_path, tmpfilename))
+       
+       if os.path.exists(tmpfilename):
+               os.unlink(tmpfilename)
+       
diff --git a/trunk/tests/testpeers.-b.-1.populate.ref b/trunk/tests/testpeers.-b.-1.populate.ref
new file mode 100644 (file)
index 0000000..87ccb6e
--- /dev/null
@@ -0,0 +1,4102 @@
+options {'local_peer': 1, 'plc1': '', 'plc2': '', 'factor': 1, 'debug': False, 'size': 'big'} args ['populate']
+200 sites, 500 persons, 350 nodes & 500 slices
+1 keys/person, 1 nodes/slice & 3 persons/slice
+fast_flag True
+Running locally on index 1
+funcname populate
+dir() ['args', 'funcname', 'options', 'parser', 'size_func', 'steps', 'usage']
++++ timer start
+==================== ('INIT',)
++++ timer start
+==================== s[1]
+show_config obsoleted
+==================== s[2]
+show_config obsoleted
+====================
+01:== created peer admin account 3, peer1@planet-lab.org - peer
+Dummy method GetPersons on remote peer 2 skipped
+Dummy method AddPerson on remote peer 2 skipped
+01:== enabled+admin on account 3:peer1@planet-lab.org
+Dummy method AdmSetPersonEnabled on remote peer 2 skipped
++++ timer start
+Trying to locate keys for peer on plc[1] in gpg_plc2.pub and api_plc2.crt
+01:Created peer 1
+Dummy method GetPeers on remote peer 2 skipped
+Trying to locate keys for peer on plc[2] in gpg_plc1.pub and api_plc1.crt
+Dummy method AddPeer on remote peer 2 skipped
+02:Created peer 0
++++ 0.35 seconds ellapsed (0.35)
+01:== Created site 2 with max_slices=500
+Dummy method GetSites on remote peer 2 skipped
+Dummy method AddSite on remote peer 2 skipped
+01:== Created site 3 with max_slices=500
+01:== Created site 4 with max_slices=500
+01:== Created site 5 with max_slices=500
+01:== Created site 6 with max_slices=500
+01:== Created site 7 with max_slices=500
+01:== Created site 8 with max_slices=500
+01:== Created site 9 with max_slices=500
+01:== Created site 10 with max_slices=500
+01:== Created site 11 with max_slices=500
+01:== Created site 12 with max_slices=500
+01:== Created site 13 with max_slices=500
+01:== Created site 14 with max_slices=500
+01:== Created site 15 with max_slices=500
+01:== Created site 16 with max_slices=500
+01:== Created site 17 with max_slices=500
+01:== Created site 18 with max_slices=500
+01:== Created site 19 with max_slices=500
+01:== Created site 20 with max_slices=500
+01:== Created site 21 with max_slices=500
+01:== Created site 22 with max_slices=500
+01:== Created site 23 with max_slices=500
+01:== Created site 24 with max_slices=500
+01:== Created site 25 with max_slices=500
+01:== Created site 26 with max_slices=500
+01:== Created site 27 with max_slices=500
+01:== Created site 28 with max_slices=500
+01:== Created site 29 with max_slices=500
+01:== Created site 30 with max_slices=500
+01:== Created site 31 with max_slices=500
+01:== Created site 32 with max_slices=500
+01:== Created site 33 with max_slices=500
+01:== Created site 34 with max_slices=500
+01:== Created site 35 with max_slices=500
+01:== Created site 36 with max_slices=500
+01:== Created site 37 with max_slices=500
+01:== Created site 38 with max_slices=500
+01:== Created site 39 with max_slices=500
+01:== Created site 40 with max_slices=500
+01:== Created site 41 with max_slices=500
+01:== Created site 42 with max_slices=500
+01:== Created site 43 with max_slices=500
+01:== Created site 44 with max_slices=500
+01:== Created site 45 with max_slices=500
+01:== Created site 46 with max_slices=500
+01:== Created site 47 with max_slices=500
+01:== Created site 48 with max_slices=500
+01:== Created site 49 with max_slices=500
+01:== Created site 50 with max_slices=500
+01:== Created site 51 with max_slices=500
+01:== Created site 52 with max_slices=500
+01:== Created site 53 with max_slices=500
+01:== Created site 54 with max_slices=500
+01:== Created site 55 with max_slices=500
+01:== Created site 56 with max_slices=500
+01:== Created site 57 with max_slices=500
+01:== Created site 58 with max_slices=500
+01:== Created site 59 with max_slices=500
+01:== Created site 60 with max_slices=500
+01:== Created site 61 with max_slices=500
+01:== Created site 62 with max_slices=500
+01:== Created site 63 with max_slices=500
+01:== Created site 64 with max_slices=500
+01:== Created site 65 with max_slices=500
+01:== Created site 66 with max_slices=500
+01:== Created site 67 with max_slices=500
+01:== Created site 68 with max_slices=500
+01:== Created site 69 with max_slices=500
+01:== Created site 70 with max_slices=500
+01:== Created site 71 with max_slices=500
+01:== Created site 72 with max_slices=500
+01:== Created site 73 with max_slices=500
+01:== Created site 74 with max_slices=500
+01:== Created site 75 with max_slices=500
+01:== Created site 76 with max_slices=500
+01:== Created site 77 with max_slices=500
+01:== Created site 78 with max_slices=500
+01:== Created site 79 with max_slices=500
+01:== Created site 80 with max_slices=500
+01:== Created site 81 with max_slices=500
+01:== Created site 82 with max_slices=500
+01:== Created site 83 with max_slices=500
+01:== Created site 84 with max_slices=500
+01:== Created site 85 with max_slices=500
+01:== Created site 86 with max_slices=500
+01:== Created site 87 with max_slices=500
+01:== Created site 88 with max_slices=500
+01:== Created site 89 with max_slices=500
+01:== Created site 90 with max_slices=500
+01:== Created site 91 with max_slices=500
+01:== Created site 92 with max_slices=500
+01:== Created site 93 with max_slices=500
+01:== Created site 94 with max_slices=500
+01:== Created site 95 with max_slices=500
+01:== Created site 96 with max_slices=500
+01:== Created site 97 with max_slices=500
+01:== Created site 98 with max_slices=500
+01:== Created site 99 with max_slices=500
+01:== Created site 100 with max_slices=500
+01:== Created site 101 with max_slices=500
+01:== Created site 102 with max_slices=500
+01:== Created site 103 with max_slices=500
+01:== Created site 104 with max_slices=500
+01:== Created site 105 with max_slices=500
+01:== Created site 106 with max_slices=500
+01:== Created site 107 with max_slices=500
+01:== Created site 108 with max_slices=500
+01:== Created site 109 with max_slices=500
+01:== Created site 110 with max_slices=500
+01:== Created site 111 with max_slices=500
+01:== Created site 112 with max_slices=500
+01:== Created site 113 with max_slices=500
+01:== Created site 114 with max_slices=500
+01:== Created site 115 with max_slices=500
+01:== Created site 116 with max_slices=500
+01:== Created site 117 with max_slices=500
+01:== Created site 118 with max_slices=500
+01:== Created site 119 with max_slices=500
+01:== Created site 120 with max_slices=500
+01:== Created site 121 with max_slices=500
+01:== Created site 122 with max_slices=500
+01:== Created site 123 with max_slices=500
+01:== Created site 124 with max_slices=500
+01:== Created site 125 with max_slices=500
+01:== Created site 126 with max_slices=500
+01:== Created site 127 with max_slices=500
+01:== Created site 128 with max_slices=500
+01:== Created site 129 with max_slices=500
+01:== Created site 130 with max_slices=500
+01:== Created site 131 with max_slices=500
+01:== Created site 132 with max_slices=500
+01:== Created site 133 with max_slices=500
+01:== Created site 134 with max_slices=500
+01:== Created site 135 with max_slices=500
+01:== Created site 136 with max_slices=500
+01:== Created site 137 with max_slices=500
+01:== Created site 138 with max_slices=500
+01:== Created site 139 with max_slices=500
+01:== Created site 140 with max_slices=500
+01:== Created site 141 with max_slices=500
+01:== Created site 142 with max_slices=500
+01:== Created site 143 with max_slices=500
+01:== Created site 144 with max_slices=500
+01:== Created site 145 with max_slices=500
+01:== Created site 146 with max_slices=500
+01:== Created site 147 with max_slices=500
+01:== Created site 148 with max_slices=500
+01:== Created site 149 with max_slices=500
+01:== Created site 150 with max_slices=500
+01:== Created site 151 with max_slices=500
+01:== Created site 152 with max_slices=500
+01:== Created site 153 with max_slices=500
+01:== Created site 154 with max_slices=500
+01:== Created site 155 with max_slices=500
+01:== Created site 156 with max_slices=500
+01:== Created site 157 with max_slices=500
+01:== Created site 158 with max_slices=500
+01:== Created site 159 with max_slices=500
+01:== Created site 160 with max_slices=500
+01:== Created site 161 with max_slices=500
+01:== Created site 162 with max_slices=500
+01:== Created site 163 with max_slices=500
+01:== Created site 164 with max_slices=500
+01:== Created site 165 with max_slices=500
+01:== Created site 166 with max_slices=500
+01:== Created site 167 with max_slices=500
+01:== Created site 168 with max_slices=500
+01:== Created site 169 with max_slices=500
+01:== Created site 170 with max_slices=500
+01:== Created site 171 with max_slices=500
+01:== Created site 172 with max_slices=500
+01:== Created site 173 with max_slices=500
+01:== Created site 174 with max_slices=500
+01:== Created site 175 with max_slices=500
+01:== Created site 176 with max_slices=500
+01:== Created site 177 with max_slices=500
+01:== Created site 178 with max_slices=500
+01:== Created site 179 with max_slices=500
+01:== Created site 180 with max_slices=500
+01:== Created site 181 with max_slices=500
+01:== Created site 182 with max_slices=500
+01:== Created site 183 with max_slices=500
+01:== Created site 184 with max_slices=500
+01:== Created site 185 with max_slices=500
+01:== Created site 186 with max_slices=500
+01:== Created site 187 with max_slices=500
+01:== Created site 188 with max_slices=500
+01:== Created site 189 with max_slices=500
+01:== Created site 190 with max_slices=500
+01:== Created site 191 with max_slices=500
+01:== Created site 192 with max_slices=500
+01:== Created site 193 with max_slices=500
+01:== Created site 194 with max_slices=500
+01:== Created site 195 with max_slices=500
+01:== Created site 196 with max_slices=500
+01:== Created site 197 with max_slices=500
+01:== Created site 198 with max_slices=500
+01:== Created site 199 with max_slices=500
+01:== Created site 200 with max_slices=500
+01:== Created site 201 with max_slices=500
++++ 16.31 seconds ellapsed (15.96)
+01:== created user account 4, user-1@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user1-key1 to person user-1@plc.org
+Dummy method GetPersons on remote peer 2 skipped
+Dummy method AddPerson on remote peer 2 skipped
+01:== created user account 5, user-2@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user2-key1 to person user-2@plc.org
+01:== created user account 6, user-3@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user3-key1 to person user-3@plc.org
+01:== created user account 7, user-4@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user4-key1 to person user-4@plc.org
+01:== created user account 8, user-5@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user5-key1 to person user-5@plc.org
+01:== created user account 9, user-6@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user6-key1 to person user-6@plc.org
+01:== created user account 10, user-7@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user7-key1 to person user-7@plc.org
+01:== created user account 11, user-8@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user8-key1 to person user-8@plc.org
+01:== created user account 12, user-9@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user9-key1 to person user-9@plc.org
+01:== created user account 13, user-10@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user10-key1 to person user-10@plc.org
+01:== created user account 14, user-11@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user11-key1 to person user-11@plc.org
+01:== created user account 15, user-12@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user12-key1 to person user-12@plc.org
+01:== created user account 16, user-13@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user13-key1 to person user-13@plc.org
+01:== created user account 17, user-14@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user14-key1 to person user-14@plc.org
+01:== created user account 18, user-15@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user15-key1 to person user-15@plc.org
+01:== created user account 19, user-16@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user16-key1 to person user-16@plc.org
+01:== created user account 20, user-17@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user17-key1 to person user-17@plc.org
+01:== created user account 21, user-18@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user18-key1 to person user-18@plc.org
+01:== created user account 22, user-19@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user19-key1 to person user-19@plc.org
+01:== created user account 23, user-20@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user20-key1 to person user-20@plc.org
+01:== created user account 24, user-21@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user21-key1 to person user-21@plc.org
+01:== created user account 25, user-22@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user22-key1 to person user-22@plc.org
+01:== created user account 26, user-23@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user23-key1 to person user-23@plc.org
+01:== created user account 27, user-24@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user24-key1 to person user-24@plc.org
+01:== created user account 28, user-25@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user25-key1 to person user-25@plc.org
+01:== created user account 29, user-26@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user26-key1 to person user-26@plc.org
+01:== created user account 30, user-27@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user27-key1 to person user-27@plc.org
+01:== created user account 31, user-28@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user28-key1 to person user-28@plc.org
+01:== created user account 32, user-29@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user29-key1 to person user-29@plc.org
+01:== created user account 33, user-30@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user30-key1 to person user-30@plc.org
+01:== created user account 34, user-31@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user31-key1 to person user-31@plc.org
+01:== created user account 35, user-32@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user32-key1 to person user-32@plc.org
+01:== created user account 36, user-33@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user33-key1 to person user-33@plc.org
+01:== created user account 37, user-34@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user34-key1 to person user-34@plc.org
+01:== created user account 38, user-35@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user35-key1 to person user-35@plc.org
+01:== created user account 39, user-36@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user36-key1 to person user-36@plc.org
+01:== created user account 40, user-37@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user37-key1 to person user-37@plc.org
+01:== created user account 41, user-38@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user38-key1 to person user-38@plc.org
+01:== created user account 42, user-39@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user39-key1 to person user-39@plc.org
+01:== created user account 43, user-40@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user40-key1 to person user-40@plc.org
+01:== created user account 44, user-41@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user41-key1 to person user-41@plc.org
+01:== created user account 45, user-42@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user42-key1 to person user-42@plc.org
+01:== created user account 46, user-43@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user43-key1 to person user-43@plc.org
+01:== created user account 47, user-44@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user44-key1 to person user-44@plc.org
+01:== created user account 48, user-45@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user45-key1 to person user-45@plc.org
+01:== created user account 49, user-46@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user46-key1 to person user-46@plc.org
+01:== created user account 50, user-47@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user47-key1 to person user-47@plc.org
+01:== created user account 51, user-48@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user48-key1 to person user-48@plc.org
+01:== created user account 52, user-49@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user49-key1 to person user-49@plc.org
+01:== created user account 53, user-50@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user50-key1 to person user-50@plc.org
+01:== created user account 54, user-51@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user51-key1 to person user-51@plc.org
+01:== created user account 55, user-52@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user52-key1 to person user-52@plc.org
+01:== created user account 56, user-53@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user53-key1 to person user-53@plc.org
+01:== created user account 57, user-54@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user54-key1 to person user-54@plc.org
+01:== created user account 58, user-55@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user55-key1 to person user-55@plc.org
+01:== created user account 59, user-56@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user56-key1 to person user-56@plc.org
+01:== created user account 60, user-57@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user57-key1 to person user-57@plc.org
+01:== created user account 61, user-58@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user58-key1 to person user-58@plc.org
+01:== created user account 62, user-59@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user59-key1 to person user-59@plc.org
+01:== created user account 63, user-60@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user60-key1 to person user-60@plc.org
+01:== created user account 64, user-61@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user61-key1 to person user-61@plc.org
+01:== created user account 65, user-62@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user62-key1 to person user-62@plc.org
+01:== created user account 66, user-63@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user63-key1 to person user-63@plc.org
+01:== created user account 67, user-64@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user64-key1 to person user-64@plc.org
+01:== created user account 68, user-65@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user65-key1 to person user-65@plc.org
+01:== created user account 69, user-66@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user66-key1 to person user-66@plc.org
+01:== created user account 70, user-67@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user67-key1 to person user-67@plc.org
+01:== created user account 71, user-68@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user68-key1 to person user-68@plc.org
+01:== created user account 72, user-69@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user69-key1 to person user-69@plc.org
+01:== created user account 73, user-70@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user70-key1 to person user-70@plc.org
+01:== created user account 74, user-71@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user71-key1 to person user-71@plc.org
+01:== created user account 75, user-72@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user72-key1 to person user-72@plc.org
+01:== created user account 76, user-73@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user73-key1 to person user-73@plc.org
+01:== created user account 77, user-74@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user74-key1 to person user-74@plc.org
+01:== created user account 78, user-75@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user75-key1 to person user-75@plc.org
+01:== created user account 79, user-76@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user76-key1 to person user-76@plc.org
+01:== created user account 80, user-77@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user77-key1 to person user-77@plc.org
+01:== created user account 81, user-78@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user78-key1 to person user-78@plc.org
+01:== created user account 82, user-79@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user79-key1 to person user-79@plc.org
+01:== created user account 83, user-80@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user80-key1 to person user-80@plc.org
+01:== created user account 84, user-81@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user81-key1 to person user-81@plc.org
+01:== created user account 85, user-82@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user82-key1 to person user-82@plc.org
+01:== created user account 86, user-83@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user83-key1 to person user-83@plc.org
+01:== created user account 87, user-84@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user84-key1 to person user-84@plc.org
+01:== created user account 88, user-85@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user85-key1 to person user-85@plc.org
+01:== created user account 89, user-86@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user86-key1 to person user-86@plc.org
+01:== created user account 90, user-87@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user87-key1 to person user-87@plc.org
+01:== created user account 91, user-88@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user88-key1 to person user-88@plc.org
+01:== created user account 92, user-89@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user89-key1 to person user-89@plc.org
+01:== created user account 93, user-90@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user90-key1 to person user-90@plc.org
+01:== created user account 94, user-91@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user91-key1 to person user-91@plc.org
+01:== created user account 95, user-92@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user92-key1 to person user-92@plc.org
+01:== created user account 96, user-93@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user93-key1 to person user-93@plc.org
+01:== created user account 97, user-94@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user94-key1 to person user-94@plc.org
+01:== created user account 98, user-95@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user95-key1 to person user-95@plc.org
+01:== created user account 99, user-96@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user96-key1 to person user-96@plc.org
+01:== created user account 100, user-97@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user97-key1 to person user-97@plc.org
+01:== created user account 101, user-98@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user98-key1 to person user-98@plc.org
+01:== created user account 102, user-99@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user99-key1 to person user-99@plc.org
+01:== created user account 103, user-100@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user100-key1 to person user-100@plc.org
+01:== created user account 104, user-101@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user101-key1 to person user-101@plc.org
+01:== created user account 105, user-102@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user102-key1 to person user-102@plc.org
+01:== created user account 106, user-103@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user103-key1 to person user-103@plc.org
+01:== created user account 107, user-104@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user104-key1 to person user-104@plc.org
+01:== created user account 108, user-105@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user105-key1 to person user-105@plc.org
+01:== created user account 109, user-106@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user106-key1 to person user-106@plc.org
+01:== created user account 110, user-107@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user107-key1 to person user-107@plc.org
+01:== created user account 111, user-108@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user108-key1 to person user-108@plc.org
+01:== created user account 112, user-109@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user109-key1 to person user-109@plc.org
+01:== created user account 113, user-110@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user110-key1 to person user-110@plc.org
+01:== created user account 114, user-111@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user111-key1 to person user-111@plc.org
+01:== created user account 115, user-112@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user112-key1 to person user-112@plc.org
+01:== created user account 116, user-113@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user113-key1 to person user-113@plc.org
+01:== created user account 117, user-114@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user114-key1 to person user-114@plc.org
+01:== created user account 118, user-115@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user115-key1 to person user-115@plc.org
+01:== created user account 119, user-116@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user116-key1 to person user-116@plc.org
+01:== created user account 120, user-117@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user117-key1 to person user-117@plc.org
+01:== created user account 121, user-118@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user118-key1 to person user-118@plc.org
+01:== created user account 122, user-119@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user119-key1 to person user-119@plc.org
+01:== created user account 123, user-120@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user120-key1 to person user-120@plc.org
+01:== created user account 124, user-121@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user121-key1 to person user-121@plc.org
+01:== created user account 125, user-122@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user122-key1 to person user-122@plc.org
+01:== created user account 126, user-123@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user123-key1 to person user-123@plc.org
+01:== created user account 127, user-124@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user124-key1 to person user-124@plc.org
+01:== created user account 128, user-125@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user125-key1 to person user-125@plc.org
+01:== created user account 129, user-126@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user126-key1 to person user-126@plc.org
+01:== created user account 130, user-127@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user127-key1 to person user-127@plc.org
+01:== created user account 131, user-128@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user128-key1 to person user-128@plc.org
+01:== created user account 132, user-129@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user129-key1 to person user-129@plc.org
+01:== created user account 133, user-130@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user130-key1 to person user-130@plc.org
+01:== created user account 134, user-131@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user131-key1 to person user-131@plc.org
+01:== created user account 135, user-132@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user132-key1 to person user-132@plc.org
+01:== created user account 136, user-133@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user133-key1 to person user-133@plc.org
+01:== created user account 137, user-134@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user134-key1 to person user-134@plc.org
+01:== created user account 138, user-135@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user135-key1 to person user-135@plc.org
+01:== created user account 139, user-136@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user136-key1 to person user-136@plc.org
+01:== created user account 140, user-137@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user137-key1 to person user-137@plc.org
+01:== created user account 141, user-138@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user138-key1 to person user-138@plc.org
+01:== created user account 142, user-139@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user139-key1 to person user-139@plc.org
+01:== created user account 143, user-140@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user140-key1 to person user-140@plc.org
+01:== created user account 144, user-141@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user141-key1 to person user-141@plc.org
+01:== created user account 145, user-142@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user142-key1 to person user-142@plc.org
+01:== created user account 146, user-143@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user143-key1 to person user-143@plc.org
+01:== created user account 147, user-144@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user144-key1 to person user-144@plc.org
+01:== created user account 148, user-145@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user145-key1 to person user-145@plc.org
+01:== created user account 149, user-146@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user146-key1 to person user-146@plc.org
+01:== created user account 150, user-147@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user147-key1 to person user-147@plc.org
+01:== created user account 151, user-148@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user148-key1 to person user-148@plc.org
+01:== created user account 152, user-149@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user149-key1 to person user-149@plc.org
+01:== created user account 153, user-150@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user150-key1 to person user-150@plc.org
+01:== created user account 154, user-151@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user151-key1 to person user-151@plc.org
+01:== created user account 155, user-152@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user152-key1 to person user-152@plc.org
+01:== created user account 156, user-153@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user153-key1 to person user-153@plc.org
+01:== created user account 157, user-154@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user154-key1 to person user-154@plc.org
+01:== created user account 158, user-155@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user155-key1 to person user-155@plc.org
+01:== created user account 159, user-156@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user156-key1 to person user-156@plc.org
+01:== created user account 160, user-157@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user157-key1 to person user-157@plc.org
+01:== created user account 161, user-158@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user158-key1 to person user-158@plc.org
+01:== created user account 162, user-159@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user159-key1 to person user-159@plc.org
+01:== created user account 163, user-160@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user160-key1 to person user-160@plc.org
+01:== created user account 164, user-161@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user161-key1 to person user-161@plc.org
+01:== created user account 165, user-162@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user162-key1 to person user-162@plc.org
+01:== created user account 166, user-163@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user163-key1 to person user-163@plc.org
+01:== created user account 167, user-164@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user164-key1 to person user-164@plc.org
+01:== created user account 168, user-165@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user165-key1 to person user-165@plc.org
+01:== created user account 169, user-166@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user166-key1 to person user-166@plc.org
+01:== created user account 170, user-167@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user167-key1 to person user-167@plc.org
+01:== created user account 171, user-168@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user168-key1 to person user-168@plc.org
+01:== created user account 172, user-169@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user169-key1 to person user-169@plc.org
+01:== created user account 173, user-170@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user170-key1 to person user-170@plc.org
+01:== created user account 174, user-171@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user171-key1 to person user-171@plc.org
+01:== created user account 175, user-172@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user172-key1 to person user-172@plc.org
+01:== created user account 176, user-173@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user173-key1 to person user-173@plc.org
+01:== created user account 177, user-174@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user174-key1 to person user-174@plc.org
+01:== created user account 178, user-175@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user175-key1 to person user-175@plc.org
+01:== created user account 179, user-176@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user176-key1 to person user-176@plc.org
+01:== created user account 180, user-177@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user177-key1 to person user-177@plc.org
+01:== created user account 181, user-178@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user178-key1 to person user-178@plc.org
+01:== created user account 182, user-179@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user179-key1 to person user-179@plc.org
+01:== created user account 183, user-180@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user180-key1 to person user-180@plc.org
+01:== created user account 184, user-181@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user181-key1 to person user-181@plc.org
+01:== created user account 185, user-182@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user182-key1 to person user-182@plc.org
+01:== created user account 186, user-183@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user183-key1 to person user-183@plc.org
+01:== created user account 187, user-184@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user184-key1 to person user-184@plc.org
+01:== created user account 188, user-185@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user185-key1 to person user-185@plc.org
+01:== created user account 189, user-186@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user186-key1 to person user-186@plc.org
+01:== created user account 190, user-187@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user187-key1 to person user-187@plc.org
+01:== created user account 191, user-188@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user188-key1 to person user-188@plc.org
+01:== created user account 192, user-189@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user189-key1 to person user-189@plc.org
+01:== created user account 193, user-190@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user190-key1 to person user-190@plc.org
+01:== created user account 194, user-191@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user191-key1 to person user-191@plc.org
+01:== created user account 195, user-192@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user192-key1 to person user-192@plc.org
+01:== created user account 196, user-193@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user193-key1 to person user-193@plc.org
+01:== created user account 197, user-194@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user194-key1 to person user-194@plc.org
+01:== created user account 198, user-195@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user195-key1 to person user-195@plc.org
+01:== created user account 199, user-196@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user196-key1 to person user-196@plc.org
+01:== created user account 200, user-197@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user197-key1 to person user-197@plc.org
+01:== created user account 201, user-198@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user198-key1 to person user-198@plc.org
+01:== created user account 202, user-199@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user199-key1 to person user-199@plc.org
+01:== created user account 203, user-200@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user200-key1 to person user-200@plc.org
+01:== created user account 204, user-201@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user201-key1 to person user-201@plc.org
+01:== created user account 205, user-202@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user202-key1 to person user-202@plc.org
+01:== created user account 206, user-203@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user203-key1 to person user-203@plc.org
+01:== created user account 207, user-204@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user204-key1 to person user-204@plc.org
+01:== created user account 208, user-205@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user205-key1 to person user-205@plc.org
+01:== created user account 209, user-206@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user206-key1 to person user-206@plc.org
+01:== created user account 210, user-207@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user207-key1 to person user-207@plc.org
+01:== created user account 211, user-208@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user208-key1 to person user-208@plc.org
+01:== created user account 212, user-209@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user209-key1 to person user-209@plc.org
+01:== created user account 213, user-210@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user210-key1 to person user-210@plc.org
+01:== created user account 214, user-211@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user211-key1 to person user-211@plc.org
+01:== created user account 215, user-212@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user212-key1 to person user-212@plc.org
+01:== created user account 216, user-213@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user213-key1 to person user-213@plc.org
+01:== created user account 217, user-214@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user214-key1 to person user-214@plc.org
+01:== created user account 218, user-215@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user215-key1 to person user-215@plc.org
+01:== created user account 219, user-216@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user216-key1 to person user-216@plc.org
+01:== created user account 220, user-217@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user217-key1 to person user-217@plc.org
+01:== created user account 221, user-218@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user218-key1 to person user-218@plc.org
+01:== created user account 222, user-219@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user219-key1 to person user-219@plc.org
+01:== created user account 223, user-220@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user220-key1 to person user-220@plc.org
+01:== created user account 224, user-221@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user221-key1 to person user-221@plc.org
+01:== created user account 225, user-222@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user222-key1 to person user-222@plc.org
+01:== created user account 226, user-223@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user223-key1 to person user-223@plc.org
+01:== created user account 227, user-224@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user224-key1 to person user-224@plc.org
+01:== created user account 228, user-225@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user225-key1 to person user-225@plc.org
+01:== created user account 229, user-226@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user226-key1 to person user-226@plc.org
+01:== created user account 230, user-227@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user227-key1 to person user-227@plc.org
+01:== created user account 231, user-228@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user228-key1 to person user-228@plc.org
+01:== created user account 232, user-229@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user229-key1 to person user-229@plc.org
+01:== created user account 233, user-230@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user230-key1 to person user-230@plc.org
+01:== created user account 234, user-231@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user231-key1 to person user-231@plc.org
+01:== created user account 235, user-232@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user232-key1 to person user-232@plc.org
+01:== created user account 236, user-233@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user233-key1 to person user-233@plc.org
+01:== created user account 237, user-234@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user234-key1 to person user-234@plc.org
+01:== created user account 238, user-235@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user235-key1 to person user-235@plc.org
+01:== created user account 239, user-236@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user236-key1 to person user-236@plc.org
+01:== created user account 240, user-237@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user237-key1 to person user-237@plc.org
+01:== created user account 241, user-238@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user238-key1 to person user-238@plc.org
+01:== created user account 242, user-239@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user239-key1 to person user-239@plc.org
+01:== created user account 243, user-240@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user240-key1 to person user-240@plc.org
+01:== created user account 244, user-241@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user241-key1 to person user-241@plc.org
+01:== created user account 245, user-242@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user242-key1 to person user-242@plc.org
+01:== created user account 246, user-243@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user243-key1 to person user-243@plc.org
+01:== created user account 247, user-244@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user244-key1 to person user-244@plc.org
+01:== created user account 248, user-245@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user245-key1 to person user-245@plc.org
+01:== created user account 249, user-246@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user246-key1 to person user-246@plc.org
+01:== created user account 250, user-247@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user247-key1 to person user-247@plc.org
+01:== created user account 251, user-248@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user248-key1 to person user-248@plc.org
+01:== created user account 252, user-249@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user249-key1 to person user-249@plc.org
+01:== created user account 253, user-250@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user250-key1 to person user-250@plc.org
+01:== created user account 254, user-251@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user251-key1 to person user-251@plc.org
+01:== created user account 255, user-252@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user252-key1 to person user-252@plc.org
+01:== created user account 256, user-253@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user253-key1 to person user-253@plc.org
+01:== created user account 257, user-254@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user254-key1 to person user-254@plc.org
+01:== created user account 258, user-255@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user255-key1 to person user-255@plc.org
+01:== created user account 259, user-256@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user256-key1 to person user-256@plc.org
+01:== created user account 260, user-257@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user257-key1 to person user-257@plc.org
+01:== created user account 261, user-258@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user258-key1 to person user-258@plc.org
+01:== created user account 262, user-259@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user259-key1 to person user-259@plc.org
+01:== created user account 263, user-260@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user260-key1 to person user-260@plc.org
+01:== created user account 264, user-261@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user261-key1 to person user-261@plc.org
+01:== created user account 265, user-262@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user262-key1 to person user-262@plc.org
+01:== created user account 266, user-263@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user263-key1 to person user-263@plc.org
+01:== created user account 267, user-264@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user264-key1 to person user-264@plc.org
+01:== created user account 268, user-265@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user265-key1 to person user-265@plc.org
+01:== created user account 269, user-266@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user266-key1 to person user-266@plc.org
+01:== created user account 270, user-267@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user267-key1 to person user-267@plc.org
+01:== created user account 271, user-268@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user268-key1 to person user-268@plc.org
+01:== created user account 272, user-269@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user269-key1 to person user-269@plc.org
+01:== created user account 273, user-270@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user270-key1 to person user-270@plc.org
+01:== created user account 274, user-271@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user271-key1 to person user-271@plc.org
+01:== created user account 275, user-272@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user272-key1 to person user-272@plc.org
+01:== created user account 276, user-273@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user273-key1 to person user-273@plc.org
+01:== created user account 277, user-274@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user274-key1 to person user-274@plc.org
+01:== created user account 278, user-275@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user275-key1 to person user-275@plc.org
+01:== created user account 279, user-276@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user276-key1 to person user-276@plc.org
+01:== created user account 280, user-277@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user277-key1 to person user-277@plc.org
+01:== created user account 281, user-278@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user278-key1 to person user-278@plc.org
+01:== created user account 282, user-279@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user279-key1 to person user-279@plc.org
+01:== created user account 283, user-280@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user280-key1 to person user-280@plc.org
+01:== created user account 284, user-281@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user281-key1 to person user-281@plc.org
+01:== created user account 285, user-282@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user282-key1 to person user-282@plc.org
+01:== created user account 286, user-283@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user283-key1 to person user-283@plc.org
+01:== created user account 287, user-284@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user284-key1 to person user-284@plc.org
+01:== created user account 288, user-285@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user285-key1 to person user-285@plc.org
+01:== created user account 289, user-286@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user286-key1 to person user-286@plc.org
+01:== created user account 290, user-287@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user287-key1 to person user-287@plc.org
+01:== created user account 291, user-288@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user288-key1 to person user-288@plc.org
+01:== created user account 292, user-289@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user289-key1 to person user-289@plc.org
+01:== created user account 293, user-290@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user290-key1 to person user-290@plc.org
+01:== created user account 294, user-291@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user291-key1 to person user-291@plc.org
+01:== created user account 295, user-292@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user292-key1 to person user-292@plc.org
+01:== created user account 296, user-293@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user293-key1 to person user-293@plc.org
+01:== created user account 297, user-294@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user294-key1 to person user-294@plc.org
+01:== created user account 298, user-295@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user295-key1 to person user-295@plc.org
+01:== created user account 299, user-296@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user296-key1 to person user-296@plc.org
+01:== created user account 300, user-297@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user297-key1 to person user-297@plc.org
+01:== created user account 301, user-298@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user298-key1 to person user-298@plc.org
+01:== created user account 302, user-299@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user299-key1 to person user-299@plc.org
+01:== created user account 303, user-300@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user300-key1 to person user-300@plc.org
+01:== created user account 304, user-301@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user301-key1 to person user-301@plc.org
+01:== created user account 305, user-302@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user302-key1 to person user-302@plc.org
+01:== created user account 306, user-303@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user303-key1 to person user-303@plc.org
+01:== created user account 307, user-304@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user304-key1 to person user-304@plc.org
+01:== created user account 308, user-305@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user305-key1 to person user-305@plc.org
+01:== created user account 309, user-306@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user306-key1 to person user-306@plc.org
+01:== created user account 310, user-307@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user307-key1 to person user-307@plc.org
+01:== created user account 311, user-308@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user308-key1 to person user-308@plc.org
+01:== created user account 312, user-309@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user309-key1 to person user-309@plc.org
+01:== created user account 313, user-310@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user310-key1 to person user-310@plc.org
+01:== created user account 314, user-311@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user311-key1 to person user-311@plc.org
+01:== created user account 315, user-312@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user312-key1 to person user-312@plc.org
+01:== created user account 316, user-313@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user313-key1 to person user-313@plc.org
+01:== created user account 317, user-314@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user314-key1 to person user-314@plc.org
+01:== created user account 318, user-315@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user315-key1 to person user-315@plc.org
+01:== created user account 319, user-316@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user316-key1 to person user-316@plc.org
+01:== created user account 320, user-317@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user317-key1 to person user-317@plc.org
+01:== created user account 321, user-318@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user318-key1 to person user-318@plc.org
+01:== created user account 322, user-319@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user319-key1 to person user-319@plc.org
+01:== created user account 323, user-320@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user320-key1 to person user-320@plc.org
+01:== created user account 324, user-321@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user321-key1 to person user-321@plc.org
+01:== created user account 325, user-322@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user322-key1 to person user-322@plc.org
+01:== created user account 326, user-323@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user323-key1 to person user-323@plc.org
+01:== created user account 327, user-324@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user324-key1 to person user-324@plc.org
+01:== created user account 328, user-325@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user325-key1 to person user-325@plc.org
+01:== created user account 329, user-326@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user326-key1 to person user-326@plc.org
+01:== created user account 330, user-327@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user327-key1 to person user-327@plc.org
+01:== created user account 331, user-328@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user328-key1 to person user-328@plc.org
+01:== created user account 332, user-329@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user329-key1 to person user-329@plc.org
+01:== created user account 333, user-330@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user330-key1 to person user-330@plc.org
+01:== created user account 334, user-331@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user331-key1 to person user-331@plc.org
+01:== created user account 335, user-332@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user332-key1 to person user-332@plc.org
+01:== created user account 336, user-333@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user333-key1 to person user-333@plc.org
+01:== created user account 337, user-334@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user334-key1 to person user-334@plc.org
+01:== created user account 338, user-335@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user335-key1 to person user-335@plc.org
+01:== created user account 339, user-336@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user336-key1 to person user-336@plc.org
+01:== created user account 340, user-337@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user337-key1 to person user-337@plc.org
+01:== created user account 341, user-338@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user338-key1 to person user-338@plc.org
+01:== created user account 342, user-339@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user339-key1 to person user-339@plc.org
+01:== created user account 343, user-340@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user340-key1 to person user-340@plc.org
+01:== created user account 344, user-341@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user341-key1 to person user-341@plc.org
+01:== created user account 345, user-342@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user342-key1 to person user-342@plc.org
+01:== created user account 346, user-343@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user343-key1 to person user-343@plc.org
+01:== created user account 347, user-344@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user344-key1 to person user-344@plc.org
+01:== created user account 348, user-345@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user345-key1 to person user-345@plc.org
+01:== created user account 349, user-346@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user346-key1 to person user-346@plc.org
+01:== created user account 350, user-347@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user347-key1 to person user-347@plc.org
+01:== created user account 351, user-348@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user348-key1 to person user-348@plc.org
+01:== created user account 352, user-349@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user349-key1 to person user-349@plc.org
+01:== created user account 353, user-350@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user350-key1 to person user-350@plc.org
+01:== created user account 354, user-351@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user351-key1 to person user-351@plc.org
+01:== created user account 355, user-352@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user352-key1 to person user-352@plc.org
+01:== created user account 356, user-353@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user353-key1 to person user-353@plc.org
+01:== created user account 357, user-354@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user354-key1 to person user-354@plc.org
+01:== created user account 358, user-355@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user355-key1 to person user-355@plc.org
+01:== created user account 359, user-356@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user356-key1 to person user-356@plc.org
+01:== created user account 360, user-357@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user357-key1 to person user-357@plc.org
+01:== created user account 361, user-358@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user358-key1 to person user-358@plc.org
+01:== created user account 362, user-359@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user359-key1 to person user-359@plc.org
+01:== created user account 363, user-360@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user360-key1 to person user-360@plc.org
+01:== created user account 364, user-361@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user361-key1 to person user-361@plc.org
+01:== created user account 365, user-362@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user362-key1 to person user-362@plc.org
+01:== created user account 366, user-363@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user363-key1 to person user-363@plc.org
+01:== created user account 367, user-364@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user364-key1 to person user-364@plc.org
+01:== created user account 368, user-365@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user365-key1 to person user-365@plc.org
+01:== created user account 369, user-366@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user366-key1 to person user-366@plc.org
+01:== created user account 370, user-367@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user367-key1 to person user-367@plc.org
+01:== created user account 371, user-368@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user368-key1 to person user-368@plc.org
+01:== created user account 372, user-369@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user369-key1 to person user-369@plc.org
+01:== created user account 373, user-370@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user370-key1 to person user-370@plc.org
+01:== created user account 374, user-371@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user371-key1 to person user-371@plc.org
+01:== created user account 375, user-372@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user372-key1 to person user-372@plc.org
+01:== created user account 376, user-373@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user373-key1 to person user-373@plc.org
+01:== created user account 377, user-374@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user374-key1 to person user-374@plc.org
+01:== created user account 378, user-375@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user375-key1 to person user-375@plc.org
+01:== created user account 379, user-376@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user376-key1 to person user-376@plc.org
+01:== created user account 380, user-377@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user377-key1 to person user-377@plc.org
+01:== created user account 381, user-378@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user378-key1 to person user-378@plc.org
+01:== created user account 382, user-379@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user379-key1 to person user-379@plc.org
+01:== created user account 383, user-380@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user380-key1 to person user-380@plc.org
+01:== created user account 384, user-381@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user381-key1 to person user-381@plc.org
+01:== created user account 385, user-382@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user382-key1 to person user-382@plc.org
+01:== created user account 386, user-383@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user383-key1 to person user-383@plc.org
+01:== created user account 387, user-384@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user384-key1 to person user-384@plc.org
+01:== created user account 388, user-385@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user385-key1 to person user-385@plc.org
+01:== created user account 389, user-386@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user386-key1 to person user-386@plc.org
+01:== created user account 390, user-387@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user387-key1 to person user-387@plc.org
+01:== created user account 391, user-388@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user388-key1 to person user-388@plc.org
+01:== created user account 392, user-389@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user389-key1 to person user-389@plc.org
+01:== created user account 393, user-390@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user390-key1 to person user-390@plc.org
+01:== created user account 394, user-391@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user391-key1 to person user-391@plc.org
+01:== created user account 395, user-392@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user392-key1 to person user-392@plc.org
+01:== created user account 396, user-393@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user393-key1 to person user-393@plc.org
+01:== created user account 397, user-394@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user394-key1 to person user-394@plc.org
+01:== created user account 398, user-395@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user395-key1 to person user-395@plc.org
+01:== created user account 399, user-396@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user396-key1 to person user-396@plc.org
+01:== created user account 400, user-397@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user397-key1 to person user-397@plc.org
+01:== created user account 401, user-398@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user398-key1 to person user-398@plc.org
+01:== created user account 402, user-399@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user399-key1 to person user-399@plc.org
+01:== created user account 403, user-400@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user400-key1 to person user-400@plc.org
+01:== created user account 404, user-401@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user401-key1 to person user-401@plc.org
+01:== created user account 405, user-402@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user402-key1 to person user-402@plc.org
+01:== created user account 406, user-403@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user403-key1 to person user-403@plc.org
+01:== created user account 407, user-404@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user404-key1 to person user-404@plc.org
+01:== created user account 408, user-405@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user405-key1 to person user-405@plc.org
+01:== created user account 409, user-406@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user406-key1 to person user-406@plc.org
+01:== created user account 410, user-407@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user407-key1 to person user-407@plc.org
+01:== created user account 411, user-408@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user408-key1 to person user-408@plc.org
+01:== created user account 412, user-409@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user409-key1 to person user-409@plc.org
+01:== created user account 413, user-410@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user410-key1 to person user-410@plc.org
+01:== created user account 414, user-411@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user411-key1 to person user-411@plc.org
+01:== created user account 415, user-412@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user412-key1 to person user-412@plc.org
+01:== created user account 416, user-413@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user413-key1 to person user-413@plc.org
+01:== created user account 417, user-414@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user414-key1 to person user-414@plc.org
+01:== created user account 418, user-415@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user415-key1 to person user-415@plc.org
+01:== created user account 419, user-416@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user416-key1 to person user-416@plc.org
+01:== created user account 420, user-417@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user417-key1 to person user-417@plc.org
+01:== created user account 421, user-418@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user418-key1 to person user-418@plc.org
+01:== created user account 422, user-419@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user419-key1 to person user-419@plc.org
+01:== created user account 423, user-420@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user420-key1 to person user-420@plc.org
+01:== created user account 424, user-421@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user421-key1 to person user-421@plc.org
+01:== created user account 425, user-422@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user422-key1 to person user-422@plc.org
+01:== created user account 426, user-423@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user423-key1 to person user-423@plc.org
+01:== created user account 427, user-424@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user424-key1 to person user-424@plc.org
+01:== created user account 428, user-425@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user425-key1 to person user-425@plc.org
+01:== created user account 429, user-426@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user426-key1 to person user-426@plc.org
+01:== created user account 430, user-427@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user427-key1 to person user-427@plc.org
+01:== created user account 431, user-428@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user428-key1 to person user-428@plc.org
+01:== created user account 432, user-429@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user429-key1 to person user-429@plc.org
+01:== created user account 433, user-430@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user430-key1 to person user-430@plc.org
+01:== created user account 434, user-431@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user431-key1 to person user-431@plc.org
+01:== created user account 435, user-432@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user432-key1 to person user-432@plc.org
+01:== created user account 436, user-433@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user433-key1 to person user-433@plc.org
+01:== created user account 437, user-434@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user434-key1 to person user-434@plc.org
+01:== created user account 438, user-435@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user435-key1 to person user-435@plc.org
+01:== created user account 439, user-436@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user436-key1 to person user-436@plc.org
+01:== created user account 440, user-437@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user437-key1 to person user-437@plc.org
+01:== created user account 441, user-438@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user438-key1 to person user-438@plc.org
+01:== created user account 442, user-439@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user439-key1 to person user-439@plc.org
+01:== created user account 443, user-440@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user440-key1 to person user-440@plc.org
+01:== created user account 444, user-441@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user441-key1 to person user-441@plc.org
+01:== created user account 445, user-442@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user442-key1 to person user-442@plc.org
+01:== created user account 446, user-443@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user443-key1 to person user-443@plc.org
+01:== created user account 447, user-444@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user444-key1 to person user-444@plc.org
+01:== created user account 448, user-445@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user445-key1 to person user-445@plc.org
+01:== created user account 449, user-446@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user446-key1 to person user-446@plc.org
+01:== created user account 450, user-447@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user447-key1 to person user-447@plc.org
+01:== created user account 451, user-448@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user448-key1 to person user-448@plc.org
+01:== created user account 452, user-449@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user449-key1 to person user-449@plc.org
+01:== created user account 453, user-450@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user450-key1 to person user-450@plc.org
+01:== created user account 454, user-451@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user451-key1 to person user-451@plc.org
+01:== created user account 455, user-452@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user452-key1 to person user-452@plc.org
+01:== created user account 456, user-453@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user453-key1 to person user-453@plc.org
+01:== created user account 457, user-454@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user454-key1 to person user-454@plc.org
+01:== created user account 458, user-455@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user455-key1 to person user-455@plc.org
+01:== created user account 459, user-456@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user456-key1 to person user-456@plc.org
+01:== created user account 460, user-457@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user457-key1 to person user-457@plc.org
+01:== created user account 461, user-458@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user458-key1 to person user-458@plc.org
+01:== created user account 462, user-459@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user459-key1 to person user-459@plc.org
+01:== created user account 463, user-460@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user460-key1 to person user-460@plc.org
+01:== created user account 464, user-461@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user461-key1 to person user-461@plc.org
+01:== created user account 465, user-462@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user462-key1 to person user-462@plc.org
+01:== created user account 466, user-463@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user463-key1 to person user-463@plc.org
+01:== created user account 467, user-464@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user464-key1 to person user-464@plc.org
+01:== created user account 468, user-465@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user465-key1 to person user-465@plc.org
+01:== created user account 469, user-466@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user466-key1 to person user-466@plc.org
+01:== created user account 470, user-467@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user467-key1 to person user-467@plc.org
+01:== created user account 471, user-468@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user468-key1 to person user-468@plc.org
+01:== created user account 472, user-469@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user469-key1 to person user-469@plc.org
+01:== created user account 473, user-470@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user470-key1 to person user-470@plc.org
+01:== created user account 474, user-471@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user471-key1 to person user-471@plc.org
+01:== created user account 475, user-472@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user472-key1 to person user-472@plc.org
+01:== created user account 476, user-473@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user473-key1 to person user-473@plc.org
+01:== created user account 477, user-474@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user474-key1 to person user-474@plc.org
+01:== created user account 478, user-475@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user475-key1 to person user-475@plc.org
+01:== created user account 479, user-476@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user476-key1 to person user-476@plc.org
+01:== created user account 480, user-477@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user477-key1 to person user-477@plc.org
+01:== created user account 481, user-478@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user478-key1 to person user-478@plc.org
+01:== created user account 482, user-479@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user479-key1 to person user-479@plc.org
+01:== created user account 483, user-480@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user480-key1 to person user-480@plc.org
+01:== created user account 484, user-481@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user481-key1 to person user-481@plc.org
+01:== created user account 485, user-482@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user482-key1 to person user-482@plc.org
+01:== created user account 486, user-483@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user483-key1 to person user-483@plc.org
+01:== created user account 487, user-484@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user484-key1 to person user-484@plc.org
+01:== created user account 488, user-485@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user485-key1 to person user-485@plc.org
+01:== created user account 489, user-486@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user486-key1 to person user-486@plc.org
+01:== created user account 490, user-487@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user487-key1 to person user-487@plc.org
+01:== created user account 491, user-488@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user488-key1 to person user-488@plc.org
+01:== created user account 492, user-489@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user489-key1 to person user-489@plc.org
+01:== created user account 493, user-490@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user490-key1 to person user-490@plc.org
+01:== created user account 494, user-491@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user491-key1 to person user-491@plc.org
+01:== created user account 495, user-492@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user492-key1 to person user-492@plc.org
+01:== created user account 496, user-493@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user493-key1 to person user-493@plc.org
+01:== created user account 497, user-494@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user494-key1 to person user-494@plc.org
+01:== created user account 498, user-495@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user495-key1 to person user-495@plc.org
+01:== created user account 499, user-496@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user496-key1 to person user-496@plc.org
+01:== created user account 500, user-497@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user497-key1 to person user-497@plc.org
+01:== created user account 501, user-498@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user498-key1 to person user-498@plc.org
+01:== created user account 502, user-499@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user499-key1 to person user-499@plc.org
+01:== created user account 503, user-500@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user500-key1 to person user-500@plc.org
++++ 60.11 seconds ellapsed (43.79)
+01:== Added node 1 n1-001.plc1.org
+Dummy method GetNodes on remote peer 2 skipped
+Dummy method AddNode on remote peer 2 skipped
+01:== Added node 2 n1-002.plc1.org
+01:== Added node 3 n1-003.plc1.org
+01:== Added node 4 n1-004.plc1.org
+01:== Added node 5 n1-005.plc1.org
+01:== Added node 6 n1-006.plc1.org
+01:== Added node 7 n1-007.plc1.org
+01:== Added node 8 n1-008.plc1.org
+01:== Added node 9 n1-009.plc1.org
+01:== Added node 10 n1-010.plc1.org
+01:== Added node 11 n1-011.plc1.org
+01:== Added node 12 n1-012.plc1.org
+01:== Added node 13 n1-013.plc1.org
+01:== Added node 14 n1-014.plc1.org
+01:== Added node 15 n1-015.plc1.org
+01:== Added node 16 n1-016.plc1.org
+01:== Added node 17 n1-017.plc1.org
+01:== Added node 18 n1-018.plc1.org
+01:== Added node 19 n1-019.plc1.org
+01:== Added node 20 n1-020.plc1.org
+01:== Added node 21 n1-021.plc1.org
+01:== Added node 22 n1-022.plc1.org
+01:== Added node 23 n1-023.plc1.org
+01:== Added node 24 n1-024.plc1.org
+01:== Added node 25 n1-025.plc1.org
+01:== Added node 26 n1-026.plc1.org
+01:== Added node 27 n1-027.plc1.org
+01:== Added node 28 n1-028.plc1.org
+01:== Added node 29 n1-029.plc1.org
+01:== Added node 30 n1-030.plc1.org
+01:== Added node 31 n1-031.plc1.org
+01:== Added node 32 n1-032.plc1.org
+01:== Added node 33 n1-033.plc1.org
+01:== Added node 34 n1-034.plc1.org
+01:== Added node 35 n1-035.plc1.org
+01:== Added node 36 n1-036.plc1.org
+01:== Added node 37 n1-037.plc1.org
+01:== Added node 38 n1-038.plc1.org
+01:== Added node 39 n1-039.plc1.org
+01:== Added node 40 n1-040.plc1.org
+01:== Added node 41 n1-041.plc1.org
+01:== Added node 42 n1-042.plc1.org
+01:== Added node 43 n1-043.plc1.org
+01:== Added node 44 n1-044.plc1.org
+01:== Added node 45 n1-045.plc1.org
+01:== Added node 46 n1-046.plc1.org
+01:== Added node 47 n1-047.plc1.org
+01:== Added node 48 n1-048.plc1.org
+01:== Added node 49 n1-049.plc1.org
+01:== Added node 50 n1-050.plc1.org
+01:== Added node 51 n1-051.plc1.org
+01:== Added node 52 n1-052.plc1.org
+01:== Added node 53 n1-053.plc1.org
+01:== Added node 54 n1-054.plc1.org
+01:== Added node 55 n1-055.plc1.org
+01:== Added node 56 n1-056.plc1.org
+01:== Added node 57 n1-057.plc1.org
+01:== Added node 58 n1-058.plc1.org
+01:== Added node 59 n1-059.plc1.org
+01:== Added node 60 n1-060.plc1.org
+01:== Added node 61 n1-061.plc1.org
+01:== Added node 62 n1-062.plc1.org
+01:== Added node 63 n1-063.plc1.org
+01:== Added node 64 n1-064.plc1.org
+01:== Added node 65 n1-065.plc1.org
+01:== Added node 66 n1-066.plc1.org
+01:== Added node 67 n1-067.plc1.org
+01:== Added node 68 n1-068.plc1.org
+01:== Added node 69 n1-069.plc1.org
+01:== Added node 70 n1-070.plc1.org
+01:== Added node 71 n1-071.plc1.org
+01:== Added node 72 n1-072.plc1.org
+01:== Added node 73 n1-073.plc1.org
+01:== Added node 74 n1-074.plc1.org
+01:== Added node 75 n1-075.plc1.org
+01:== Added node 76 n1-076.plc1.org
+01:== Added node 77 n1-077.plc1.org
+01:== Added node 78 n1-078.plc1.org
+01:== Added node 79 n1-079.plc1.org
+01:== Added node 80 n1-080.plc1.org
+01:== Added node 81 n1-081.plc1.org
+01:== Added node 82 n1-082.plc1.org
+01:== Added node 83 n1-083.plc1.org
+01:== Added node 84 n1-084.plc1.org
+01:== Added node 85 n1-085.plc1.org
+01:== Added node 86 n1-086.plc1.org
+01:== Added node 87 n1-087.plc1.org
+01:== Added node 88 n1-088.plc1.org
+01:== Added node 89 n1-089.plc1.org
+01:== Added node 90 n1-090.plc1.org
+01:== Added node 91 n1-091.plc1.org
+01:== Added node 92 n1-092.plc1.org
+01:== Added node 93 n1-093.plc1.org
+01:== Added node 94 n1-094.plc1.org
+01:== Added node 95 n1-095.plc1.org
+01:== Added node 96 n1-096.plc1.org
+01:== Added node 97 n1-097.plc1.org
+01:== Added node 98 n1-098.plc1.org
+01:== Added node 99 n1-099.plc1.org
+01:== Added node 100 n1-100.plc1.org
+01:== Added node 101 n1-101.plc1.org
+01:== Added node 102 n1-102.plc1.org
+01:== Added node 103 n1-103.plc1.org
+01:== Added node 104 n1-104.plc1.org
+01:== Added node 105 n1-105.plc1.org
+01:== Added node 106 n1-106.plc1.org
+01:== Added node 107 n1-107.plc1.org
+01:== Added node 108 n1-108.plc1.org
+01:== Added node 109 n1-109.plc1.org
+01:== Added node 110 n1-110.plc1.org
+01:== Added node 111 n1-111.plc1.org
+01:== Added node 112 n1-112.plc1.org
+01:== Added node 113 n1-113.plc1.org
+01:== Added node 114 n1-114.plc1.org
+01:== Added node 115 n1-115.plc1.org
+01:== Added node 116 n1-116.plc1.org
+01:== Added node 117 n1-117.plc1.org
+01:== Added node 118 n1-118.plc1.org
+01:== Added node 119 n1-119.plc1.org
+01:== Added node 120 n1-120.plc1.org
+01:== Added node 121 n1-121.plc1.org
+01:== Added node 122 n1-122.plc1.org
+01:== Added node 123 n1-123.plc1.org
+01:== Added node 124 n1-124.plc1.org
+01:== Added node 125 n1-125.plc1.org
+01:== Added node 126 n1-126.plc1.org
+01:== Added node 127 n1-127.plc1.org
+01:== Added node 128 n1-128.plc1.org
+01:== Added node 129 n1-129.plc1.org
+01:== Added node 130 n1-130.plc1.org
+01:== Added node 131 n1-131.plc1.org
+01:== Added node 132 n1-132.plc1.org
+01:== Added node 133 n1-133.plc1.org
+01:== Added node 134 n1-134.plc1.org
+01:== Added node 135 n1-135.plc1.org
+01:== Added node 136 n1-136.plc1.org
+01:== Added node 137 n1-137.plc1.org
+01:== Added node 138 n1-138.plc1.org
+01:== Added node 139 n1-139.plc1.org
+01:== Added node 140 n1-140.plc1.org
+01:== Added node 141 n1-141.plc1.org
+01:== Added node 142 n1-142.plc1.org
+01:== Added node 143 n1-143.plc1.org
+01:== Added node 144 n1-144.plc1.org
+01:== Added node 145 n1-145.plc1.org
+01:== Added node 146 n1-146.plc1.org
+01:== Added node 147 n1-147.plc1.org
+01:== Added node 148 n1-148.plc1.org
+01:== Added node 149 n1-149.plc1.org
+01:== Added node 150 n1-150.plc1.org
+01:== Added node 151 n1-151.plc1.org
+01:== Added node 152 n1-152.plc1.org
+01:== Added node 153 n1-153.plc1.org
+01:== Added node 154 n1-154.plc1.org
+01:== Added node 155 n1-155.plc1.org
+01:== Added node 156 n1-156.plc1.org
+01:== Added node 157 n1-157.plc1.org
+01:== Added node 158 n1-158.plc1.org
+01:== Added node 159 n1-159.plc1.org
+01:== Added node 160 n1-160.plc1.org
+01:== Added node 161 n1-161.plc1.org
+01:== Added node 162 n1-162.plc1.org
+01:== Added node 163 n1-163.plc1.org
+01:== Added node 164 n1-164.plc1.org
+01:== Added node 165 n1-165.plc1.org
+01:== Added node 166 n1-166.plc1.org
+01:== Added node 167 n1-167.plc1.org
+01:== Added node 168 n1-168.plc1.org
+01:== Added node 169 n1-169.plc1.org
+01:== Added node 170 n1-170.plc1.org
+01:== Added node 171 n1-171.plc1.org
+01:== Added node 172 n1-172.plc1.org
+01:== Added node 173 n1-173.plc1.org
+01:== Added node 174 n1-174.plc1.org
+01:== Added node 175 n1-175.plc1.org
+01:== Added node 176 n1-176.plc1.org
+01:== Added node 177 n1-177.plc1.org
+01:== Added node 178 n1-178.plc1.org
+01:== Added node 179 n1-179.plc1.org
+01:== Added node 180 n1-180.plc1.org
+01:== Added node 181 n1-181.plc1.org
+01:== Added node 182 n1-182.plc1.org
+01:== Added node 183 n1-183.plc1.org
+01:== Added node 184 n1-184.plc1.org
+01:== Added node 185 n1-185.plc1.org
+01:== Added node 186 n1-186.plc1.org
+01:== Added node 187 n1-187.plc1.org
+01:== Added node 188 n1-188.plc1.org
+01:== Added node 189 n1-189.plc1.org
+01:== Added node 190 n1-190.plc1.org
+01:== Added node 191 n1-191.plc1.org
+01:== Added node 192 n1-192.plc1.org
+01:== Added node 193 n1-193.plc1.org
+01:== Added node 194 n1-194.plc1.org
+01:== Added node 195 n1-195.plc1.org
+01:== Added node 196 n1-196.plc1.org
+01:== Added node 197 n1-197.plc1.org
+01:== Added node 198 n1-198.plc1.org
+01:== Added node 199 n1-199.plc1.org
+01:== Added node 200 n1-200.plc1.org
+01:== Added node 201 n1-201.plc1.org
+01:== Added node 202 n1-202.plc1.org
+01:== Added node 203 n1-203.plc1.org
+01:== Added node 204 n1-204.plc1.org
+01:== Added node 205 n1-205.plc1.org
+01:== Added node 206 n1-206.plc1.org
+01:== Added node 207 n1-207.plc1.org
+01:== Added node 208 n1-208.plc1.org
+01:== Added node 209 n1-209.plc1.org
+01:== Added node 210 n1-210.plc1.org
+01:== Added node 211 n1-211.plc1.org
+01:== Added node 212 n1-212.plc1.org
+01:== Added node 213 n1-213.plc1.org
+01:== Added node 214 n1-214.plc1.org
+01:== Added node 215 n1-215.plc1.org
+01:== Added node 216 n1-216.plc1.org
+01:== Added node 217 n1-217.plc1.org
+01:== Added node 218 n1-218.plc1.org
+01:== Added node 219 n1-219.plc1.org
+01:== Added node 220 n1-220.plc1.org
+01:== Added node 221 n1-221.plc1.org
+01:== Added node 222 n1-222.plc1.org
+01:== Added node 223 n1-223.plc1.org
+01:== Added node 224 n1-224.plc1.org
+01:== Added node 225 n1-225.plc1.org
+01:== Added node 226 n1-226.plc1.org
+01:== Added node 227 n1-227.plc1.org
+01:== Added node 228 n1-228.plc1.org
+01:== Added node 229 n1-229.plc1.org
+01:== Added node 230 n1-230.plc1.org
+01:== Added node 231 n1-231.plc1.org
+01:== Added node 232 n1-232.plc1.org
+01:== Added node 233 n1-233.plc1.org
+01:== Added node 234 n1-234.plc1.org
+01:== Added node 235 n1-235.plc1.org
+01:== Added node 236 n1-236.plc1.org
+01:== Added node 237 n1-237.plc1.org
+01:== Added node 238 n1-238.plc1.org
+01:== Added node 239 n1-239.plc1.org
+01:== Added node 240 n1-240.plc1.org
+01:== Added node 241 n1-241.plc1.org
+01:== Added node 242 n1-242.plc1.org
+01:== Added node 243 n1-243.plc1.org
+01:== Added node 244 n1-244.plc1.org
+01:== Added node 245 n1-245.plc1.org
+01:== Added node 246 n1-246.plc1.org
+01:== Added node 247 n1-247.plc1.org
+01:== Added node 248 n1-248.plc1.org
+01:== Added node 249 n1-249.plc1.org
+01:== Added node 250 n1-250.plc1.org
+01:== Added node 251 n1-251.plc1.org
+01:== Added node 252 n1-252.plc1.org
+01:== Added node 253 n1-253.plc1.org
+01:== Added node 254 n1-254.plc1.org
+01:== Added node 255 n1-255.plc1.org
+01:== Added node 256 n1-256.plc1.org
+01:== Added node 257 n1-257.plc1.org
+01:== Added node 258 n1-258.plc1.org
+01:== Added node 259 n1-259.plc1.org
+01:== Added node 260 n1-260.plc1.org
+01:== Added node 261 n1-261.plc1.org
+01:== Added node 262 n1-262.plc1.org
+01:== Added node 263 n1-263.plc1.org
+01:== Added node 264 n1-264.plc1.org
+01:== Added node 265 n1-265.plc1.org
+01:== Added node 266 n1-266.plc1.org
+01:== Added node 267 n1-267.plc1.org
+01:== Added node 268 n1-268.plc1.org
+01:== Added node 269 n1-269.plc1.org
+01:== Added node 270 n1-270.plc1.org
+01:== Added node 271 n1-271.plc1.org
+01:== Added node 272 n1-272.plc1.org
+01:== Added node 273 n1-273.plc1.org
+01:== Added node 274 n1-274.plc1.org
+01:== Added node 275 n1-275.plc1.org
+01:== Added node 276 n1-276.plc1.org
+01:== Added node 277 n1-277.plc1.org
+01:== Added node 278 n1-278.plc1.org
+01:== Added node 279 n1-279.plc1.org
+01:== Added node 280 n1-280.plc1.org
+01:== Added node 281 n1-281.plc1.org
+01:== Added node 282 n1-282.plc1.org
+01:== Added node 283 n1-283.plc1.org
+01:== Added node 284 n1-284.plc1.org
+01:== Added node 285 n1-285.plc1.org
+01:== Added node 286 n1-286.plc1.org
+01:== Added node 287 n1-287.plc1.org
+01:== Added node 288 n1-288.plc1.org
+01:== Added node 289 n1-289.plc1.org
+01:== Added node 290 n1-290.plc1.org
+01:== Added node 291 n1-291.plc1.org
+01:== Added node 292 n1-292.plc1.org
+01:== Added node 293 n1-293.plc1.org
+01:== Added node 294 n1-294.plc1.org
+01:== Added node 295 n1-295.plc1.org
+01:== Added node 296 n1-296.plc1.org
+01:== Added node 297 n1-297.plc1.org
+01:== Added node 298 n1-298.plc1.org
+01:== Added node 299 n1-299.plc1.org
+01:== Added node 300 n1-300.plc1.org
+01:== Added node 301 n1-301.plc1.org
+01:== Added node 302 n1-302.plc1.org
+01:== Added node 303 n1-303.plc1.org
+01:== Added node 304 n1-304.plc1.org
+01:== Added node 305 n1-305.plc1.org
+01:== Added node 306 n1-306.plc1.org
+01:== Added node 307 n1-307.plc1.org
+01:== Added node 308 n1-308.plc1.org
+01:== Added node 309 n1-309.plc1.org
+01:== Added node 310 n1-310.plc1.org
+01:== Added node 311 n1-311.plc1.org
+01:== Added node 312 n1-312.plc1.org
+01:== Added node 313 n1-313.plc1.org
+01:== Added node 314 n1-314.plc1.org
+01:== Added node 315 n1-315.plc1.org
+01:== Added node 316 n1-316.plc1.org
+01:== Added node 317 n1-317.plc1.org
+01:== Added node 318 n1-318.plc1.org
+01:== Added node 319 n1-319.plc1.org
+01:== Added node 320 n1-320.plc1.org
+01:== Added node 321 n1-321.plc1.org
+01:== Added node 322 n1-322.plc1.org
+01:== Added node 323 n1-323.plc1.org
+01:== Added node 324 n1-324.plc1.org
+01:== Added node 325 n1-325.plc1.org
+01:== Added node 326 n1-326.plc1.org
+01:== Added node 327 n1-327.plc1.org
+01:== Added node 328 n1-328.plc1.org
+01:== Added node 329 n1-329.plc1.org
+01:== Added node 330 n1-330.plc1.org
+01:== Added node 331 n1-331.plc1.org
+01:== Added node 332 n1-332.plc1.org
+01:== Added node 333 n1-333.plc1.org
+01:== Added node 334 n1-334.plc1.org
+01:== Added node 335 n1-335.plc1.org
+01:== Added node 336 n1-336.plc1.org
+01:== Added node 337 n1-337.plc1.org
+01:== Added node 338 n1-338.plc1.org
+01:== Added node 339 n1-339.plc1.org
+01:== Added node 340 n1-340.plc1.org
+01:== Added node 341 n1-341.plc1.org
+01:== Added node 342 n1-342.plc1.org
+01:== Added node 343 n1-343.plc1.org
+01:== Added node 344 n1-344.plc1.org
+01:== Added node 345 n1-345.plc1.org
+01:== Added node 346 n1-346.plc1.org
+01:== Added node 347 n1-347.plc1.org
+01:== Added node 348 n1-348.plc1.org
+01:== Added node 349 n1-349.plc1.org
+01:== Added node 350 n1-350.plc1.org
++++ 81.72 seconds ellapsed (21.62)
+01:== created slice 2 - max nodes=350
+01:== Attached person user-1@plc.org to slice oneb_slice1
+01:== Attached person user-2@plc.org to slice oneb_slice1
+01:== Attached person user-3@plc.org to slice oneb_slice1
+01:== created slice 3 - max nodes=350
+01:== Attached person user-2@plc.org to slice onec_slice2
+01:== Attached person user-3@plc.org to slice onec_slice2
+01:== Attached person user-4@plc.org to slice onec_slice2
+01:== created slice 4 - max nodes=350
+01:== Attached person user-3@plc.org to slice oned_slice3
+01:== Attached person user-4@plc.org to slice oned_slice3
+01:== Attached person user-5@plc.org to slice oned_slice3
+01:== created slice 5 - max nodes=350
+01:== Attached person user-4@plc.org to slice onee_slice4
+01:== Attached person user-5@plc.org to slice onee_slice4
+01:== Attached person user-6@plc.org to slice onee_slice4
+01:== created slice 6 - max nodes=350
+01:== Attached person user-5@plc.org to slice onef_slice5
+01:== Attached person user-6@plc.org to slice onef_slice5
+01:== Attached person user-7@plc.org to slice onef_slice5
+01:== created slice 7 - max nodes=350
+01:== Attached person user-6@plc.org to slice oneg_slice6
+01:== Attached person user-7@plc.org to slice oneg_slice6
+01:== Attached person user-8@plc.org to slice oneg_slice6
+01:== created slice 8 - max nodes=350
+01:== Attached person user-7@plc.org to slice oneh_slice7
+01:== Attached person user-8@plc.org to slice oneh_slice7
+01:== Attached person user-9@plc.org to slice oneh_slice7
+01:== created slice 9 - max nodes=350
+01:== Attached person user-8@plc.org to slice onei_slice8
+01:== Attached person user-9@plc.org to slice onei_slice8
+01:== Attached person user-10@plc.org to slice onei_slice8
+01:== created slice 10 - max nodes=350
+01:== Attached person user-9@plc.org to slice onej_slice9
+01:== Attached person user-10@plc.org to slice onej_slice9
+01:== Attached person user-11@plc.org to slice onej_slice9
+01:== created slice 11 - max nodes=350
+01:== Attached person user-10@plc.org to slice oneba_slice10
+01:== Attached person user-11@plc.org to slice oneba_slice10
+01:== Attached person user-12@plc.org to slice oneba_slice10
+01:== created slice 12 - max nodes=350
+01:== Attached person user-11@plc.org to slice onebb_slice11
+01:== Attached person user-12@plc.org to slice onebb_slice11
+01:== Attached person user-13@plc.org to slice onebb_slice11
+01:== created slice 13 - max nodes=350
+01:== Attached person user-12@plc.org to slice onebc_slice12
+01:== Attached person user-13@plc.org to slice onebc_slice12
+01:== Attached person user-14@plc.org to slice onebc_slice12
+01:== created slice 14 - max nodes=350
+01:== Attached person user-13@plc.org to slice onebd_slice13
+01:== Attached person user-14@plc.org to slice onebd_slice13
+01:== Attached person user-15@plc.org to slice onebd_slice13
+01:== created slice 15 - max nodes=350
+01:== Attached person user-14@plc.org to slice onebe_slice14
+01:== Attached person user-15@plc.org to slice onebe_slice14
+01:== Attached person user-16@plc.org to slice onebe_slice14
+01:== created slice 16 - max nodes=350
+01:== Attached person user-15@plc.org to slice onebf_slice15
+01:== Attached person user-16@plc.org to slice onebf_slice15
+01:== Attached person user-17@plc.org to slice onebf_slice15
+01:== created slice 17 - max nodes=350
+01:== Attached person user-16@plc.org to slice onebg_slice16
+01:== Attached person user-17@plc.org to slice onebg_slice16
+01:== Attached person user-18@plc.org to slice onebg_slice16
+01:== created slice 18 - max nodes=350
+01:== Attached person user-17@plc.org to slice onebh_slice17
+01:== Attached person user-18@plc.org to slice onebh_slice17
+01:== Attached person user-19@plc.org to slice onebh_slice17
+01:== created slice 19 - max nodes=350
+01:== Attached person user-18@plc.org to slice onebi_slice18
+01:== Attached person user-19@plc.org to slice onebi_slice18
+01:== Attached person user-20@plc.org to slice onebi_slice18
+01:== created slice 20 - max nodes=350
+01:== Attached person user-19@plc.org to slice onebj_slice19
+01:== Attached person user-20@plc.org to slice onebj_slice19
+01:== Attached person user-21@plc.org to slice onebj_slice19
+01:== created slice 21 - max nodes=350
+01:== Attached person user-20@plc.org to slice oneca_slice20
+01:== Attached person user-21@plc.org to slice oneca_slice20
+01:== Attached person user-22@plc.org to slice oneca_slice20
+01:== created slice 22 - max nodes=350
+01:== Attached person user-21@plc.org to slice onecb_slice21
+01:== Attached person user-22@plc.org to slice onecb_slice21
+01:== Attached person user-23@plc.org to slice onecb_slice21
+01:== created slice 23 - max nodes=350
+01:== Attached person user-22@plc.org to slice onecc_slice22
+01:== Attached person user-23@plc.org to slice onecc_slice22
+01:== Attached person user-24@plc.org to slice onecc_slice22
+01:== created slice 24 - max nodes=350
+01:== Attached person user-23@plc.org to slice onecd_slice23
+01:== Attached person user-24@plc.org to slice onecd_slice23
+01:== Attached person user-25@plc.org to slice onecd_slice23
+01:== created slice 25 - max nodes=350
+01:== Attached person user-24@plc.org to slice onece_slice24
+01:== Attached person user-25@plc.org to slice onece_slice24
+01:== Attached person user-26@plc.org to slice onece_slice24
+01:== created slice 26 - max nodes=350
+01:== Attached person user-25@plc.org to slice onecf_slice25
+01:== Attached person user-26@plc.org to slice onecf_slice25
+01:== Attached person user-27@plc.org to slice onecf_slice25
+01:== created slice 27 - max nodes=350
+01:== Attached person user-26@plc.org to slice onecg_slice26
+01:== Attached person user-27@plc.org to slice onecg_slice26
+01:== Attached person user-28@plc.org to slice onecg_slice26
+01:== created slice 28 - max nodes=350
+01:== Attached person user-27@plc.org to slice onech_slice27
+01:== Attached person user-28@plc.org to slice onech_slice27
+01:== Attached person user-29@plc.org to slice onech_slice27
+01:== created slice 29 - max nodes=350
+01:== Attached person user-28@plc.org to slice oneci_slice28
+01:== Attached person user-29@plc.org to slice oneci_slice28
+01:== Attached person user-30@plc.org to slice oneci_slice28
+01:== created slice 30 - max nodes=350
+01:== Attached person user-29@plc.org to slice onecj_slice29
+01:== Attached person user-30@plc.org to slice onecj_slice29
+01:== Attached person user-31@plc.org to slice onecj_slice29
+01:== created slice 31 - max nodes=350
+01:== Attached person user-30@plc.org to slice oneda_slice30
+01:== Attached person user-31@plc.org to slice oneda_slice30
+01:== Attached person user-32@plc.org to slice oneda_slice30
+01:== created slice 32 - max nodes=350
+01:== Attached person user-31@plc.org to slice onedb_slice31
+01:== Attached person user-32@plc.org to slice onedb_slice31
+01:== Attached person user-33@plc.org to slice onedb_slice31
+01:== created slice 33 - max nodes=350
+01:== Attached person user-32@plc.org to slice onedc_slice32
+01:== Attached person user-33@plc.org to slice onedc_slice32
+01:== Attached person user-34@plc.org to slice onedc_slice32
+01:== created slice 34 - max nodes=350
+01:== Attached person user-33@plc.org to slice onedd_slice33
+01:== Attached person user-34@plc.org to slice onedd_slice33
+01:== Attached person user-35@plc.org to slice onedd_slice33
+01:== created slice 35 - max nodes=350
+01:== Attached person user-34@plc.org to slice onede_slice34
+01:== Attached person user-35@plc.org to slice onede_slice34
+01:== Attached person user-36@plc.org to slice onede_slice34
+01:== created slice 36 - max nodes=350
+01:== Attached person user-35@plc.org to slice onedf_slice35
+01:== Attached person user-36@plc.org to slice onedf_slice35
+01:== Attached person user-37@plc.org to slice onedf_slice35
+01:== created slice 37 - max nodes=350
+01:== Attached person user-36@plc.org to slice onedg_slice36
+01:== Attached person user-37@plc.org to slice onedg_slice36
+01:== Attached person user-38@plc.org to slice onedg_slice36
+01:== created slice 38 - max nodes=350
+01:== Attached person user-37@plc.org to slice onedh_slice37
+01:== Attached person user-38@plc.org to slice onedh_slice37
+01:== Attached person user-39@plc.org to slice onedh_slice37
+01:== created slice 39 - max nodes=350
+01:== Attached person user-38@plc.org to slice onedi_slice38
+01:== Attached person user-39@plc.org to slice onedi_slice38
+01:== Attached person user-40@plc.org to slice onedi_slice38
+01:== created slice 40 - max nodes=350
+01:== Attached person user-39@plc.org to slice onedj_slice39
+01:== Attached person user-40@plc.org to slice onedj_slice39
+01:== Attached person user-41@plc.org to slice onedj_slice39
+01:== created slice 41 - max nodes=350
+01:== Attached person user-40@plc.org to slice oneea_slice40
+01:== Attached person user-41@plc.org to slice oneea_slice40
+01:== Attached person user-42@plc.org to slice oneea_slice40
+01:== created slice 42 - max nodes=350
+01:== Attached person user-41@plc.org to slice oneeb_slice41
+01:== Attached person user-42@plc.org to slice oneeb_slice41
+01:== Attached person user-43@plc.org to slice oneeb_slice41
+01:== created slice 43 - max nodes=350
+01:== Attached person user-42@plc.org to slice oneec_slice42
+01:== Attached person user-43@plc.org to slice oneec_slice42
+01:== Attached person user-44@plc.org to slice oneec_slice42
+01:== created slice 44 - max nodes=350
+01:== Attached person user-43@plc.org to slice oneed_slice43
+01:== Attached person user-44@plc.org to slice oneed_slice43
+01:== Attached person user-45@plc.org to slice oneed_slice43
+01:== created slice 45 - max nodes=350
+01:== Attached person user-44@plc.org to slice oneee_slice44
+01:== Attached person user-45@plc.org to slice oneee_slice44
+01:== Attached person user-46@plc.org to slice oneee_slice44
+01:== created slice 46 - max nodes=350
+01:== Attached person user-45@plc.org to slice oneef_slice45
+01:== Attached person user-46@plc.org to slice oneef_slice45
+01:== Attached person user-47@plc.org to slice oneef_slice45
+01:== created slice 47 - max nodes=350
+01:== Attached person user-46@plc.org to slice oneeg_slice46
+01:== Attached person user-47@plc.org to slice oneeg_slice46
+01:== Attached person user-48@plc.org to slice oneeg_slice46
+01:== created slice 48 - max nodes=350
+01:== Attached person user-47@plc.org to slice oneeh_slice47
+01:== Attached person user-48@plc.org to slice oneeh_slice47
+01:== Attached person user-49@plc.org to slice oneeh_slice47
+01:== created slice 49 - max nodes=350
+01:== Attached person user-48@plc.org to slice oneei_slice48
+01:== Attached person user-49@plc.org to slice oneei_slice48
+01:== Attached person user-50@plc.org to slice oneei_slice48
+01:== created slice 50 - max nodes=350
+01:== Attached person user-49@plc.org to slice oneej_slice49
+01:== Attached person user-50@plc.org to slice oneej_slice49
+01:== Attached person user-51@plc.org to slice oneej_slice49
+01:== created slice 51 - max nodes=350
+01:== Attached person user-50@plc.org to slice onefa_slice50
+01:== Attached person user-51@plc.org to slice onefa_slice50
+01:== Attached person user-52@plc.org to slice onefa_slice50
+01:== created slice 52 - max nodes=350
+01:== Attached person user-51@plc.org to slice onefb_slice51
+01:== Attached person user-52@plc.org to slice onefb_slice51
+01:== Attached person user-53@plc.org to slice onefb_slice51
+01:== created slice 53 - max nodes=350
+01:== Attached person user-52@plc.org to slice onefc_slice52
+01:== Attached person user-53@plc.org to slice onefc_slice52
+01:== Attached person user-54@plc.org to slice onefc_slice52
+01:== created slice 54 - max nodes=350
+01:== Attached person user-53@plc.org to slice onefd_slice53
+01:== Attached person user-54@plc.org to slice onefd_slice53
+01:== Attached person user-55@plc.org to slice onefd_slice53
+01:== created slice 55 - max nodes=350
+01:== Attached person user-54@plc.org to slice onefe_slice54
+01:== Attached person user-55@plc.org to slice onefe_slice54
+01:== Attached person user-56@plc.org to slice onefe_slice54
+01:== created slice 56 - max nodes=350
+01:== Attached person user-55@plc.org to slice oneff_slice55
+01:== Attached person user-56@plc.org to slice oneff_slice55
+01:== Attached person user-57@plc.org to slice oneff_slice55
+01:== created slice 57 - max nodes=350
+01:== Attached person user-56@plc.org to slice onefg_slice56
+01:== Attached person user-57@plc.org to slice onefg_slice56
+01:== Attached person user-58@plc.org to slice onefg_slice56
+01:== created slice 58 - max nodes=350
+01:== Attached person user-57@plc.org to slice onefh_slice57
+01:== Attached person user-58@plc.org to slice onefh_slice57
+01:== Attached person user-59@plc.org to slice onefh_slice57
+01:== created slice 59 - max nodes=350
+01:== Attached person user-58@plc.org to slice onefi_slice58
+01:== Attached person user-59@plc.org to slice onefi_slice58
+01:== Attached person user-60@plc.org to slice onefi_slice58
+01:== created slice 60 - max nodes=350
+01:== Attached person user-59@plc.org to slice onefj_slice59
+01:== Attached person user-60@plc.org to slice onefj_slice59
+01:== Attached person user-61@plc.org to slice onefj_slice59
+01:== created slice 61 - max nodes=350
+01:== Attached person user-60@plc.org to slice onega_slice60
+01:== Attached person user-61@plc.org to slice onega_slice60
+01:== Attached person user-62@plc.org to slice onega_slice60
+01:== created slice 62 - max nodes=350
+01:== Attached person user-61@plc.org to slice onegb_slice61
+01:== Attached person user-62@plc.org to slice onegb_slice61
+01:== Attached person user-63@plc.org to slice onegb_slice61
+01:== created slice 63 - max nodes=350
+01:== Attached person user-62@plc.org to slice onegc_slice62
+01:== Attached person user-63@plc.org to slice onegc_slice62
+01:== Attached person user-64@plc.org to slice onegc_slice62
+01:== created slice 64 - max nodes=350
+01:== Attached person user-63@plc.org to slice onegd_slice63
+01:== Attached person user-64@plc.org to slice onegd_slice63
+01:== Attached person user-65@plc.org to slice onegd_slice63
+01:== created slice 65 - max nodes=350
+01:== Attached person user-64@plc.org to slice onege_slice64
+01:== Attached person user-65@plc.org to slice onege_slice64
+01:== Attached person user-66@plc.org to slice onege_slice64
+01:== created slice 66 - max nodes=350
+01:== Attached person user-65@plc.org to slice onegf_slice65
+01:== Attached person user-66@plc.org to slice onegf_slice65
+01:== Attached person user-67@plc.org to slice onegf_slice65
+01:== created slice 67 - max nodes=350
+01:== Attached person user-66@plc.org to slice onegg_slice66
+01:== Attached person user-67@plc.org to slice onegg_slice66
+01:== Attached person user-68@plc.org to slice onegg_slice66
+01:== created slice 68 - max nodes=350
+01:== Attached person user-67@plc.org to slice onegh_slice67
+01:== Attached person user-68@plc.org to slice onegh_slice67
+01:== Attached person user-69@plc.org to slice onegh_slice67
+01:== created slice 69 - max nodes=350
+01:== Attached person user-68@plc.org to slice onegi_slice68
+01:== Attached person user-69@plc.org to slice onegi_slice68
+01:== Attached person user-70@plc.org to slice onegi_slice68
+01:== created slice 70 - max nodes=350
+01:== Attached person user-69@plc.org to slice onegj_slice69
+01:== Attached person user-70@plc.org to slice onegj_slice69
+01:== Attached person user-71@plc.org to slice onegj_slice69
+01:== created slice 71 - max nodes=350
+01:== Attached person user-70@plc.org to slice oneha_slice70
+01:== Attached person user-71@plc.org to slice oneha_slice70
+01:== Attached person user-72@plc.org to slice oneha_slice70
+01:== created slice 72 - max nodes=350
+01:== Attached person user-71@plc.org to slice onehb_slice71
+01:== Attached person user-72@plc.org to slice onehb_slice71
+01:== Attached person user-73@plc.org to slice onehb_slice71
+01:== created slice 73 - max nodes=350
+01:== Attached person user-72@plc.org to slice onehc_slice72
+01:== Attached person user-73@plc.org to slice onehc_slice72
+01:== Attached person user-74@plc.org to slice onehc_slice72
+01:== created slice 74 - max nodes=350
+01:== Attached person user-73@plc.org to slice onehd_slice73
+01:== Attached person user-74@plc.org to slice onehd_slice73
+01:== Attached person user-75@plc.org to slice onehd_slice73
+01:== created slice 75 - max nodes=350
+01:== Attached person user-74@plc.org to slice onehe_slice74
+01:== Attached person user-75@plc.org to slice onehe_slice74
+01:== Attached person user-76@plc.org to slice onehe_slice74
+01:== created slice 76 - max nodes=350
+01:== Attached person user-75@plc.org to slice onehf_slice75
+01:== Attached person user-76@plc.org to slice onehf_slice75
+01:== Attached person user-77@plc.org to slice onehf_slice75
+01:== created slice 77 - max nodes=350
+01:== Attached person user-76@plc.org to slice onehg_slice76
+01:== Attached person user-77@plc.org to slice onehg_slice76
+01:== Attached person user-78@plc.org to slice onehg_slice76
+01:== created slice 78 - max nodes=350
+01:== Attached person user-77@plc.org to slice onehh_slice77
+01:== Attached person user-78@plc.org to slice onehh_slice77
+01:== Attached person user-79@plc.org to slice onehh_slice77
+01:== created slice 79 - max nodes=350
+01:== Attached person user-78@plc.org to slice onehi_slice78
+01:== Attached person user-79@plc.org to slice onehi_slice78
+01:== Attached person user-80@plc.org to slice onehi_slice78
+01:== created slice 80 - max nodes=350
+01:== Attached person user-79@plc.org to slice onehj_slice79
+01:== Attached person user-80@plc.org to slice onehj_slice79
+01:== Attached person user-81@plc.org to slice onehj_slice79
+01:== created slice 81 - max nodes=350
+01:== Attached person user-80@plc.org to slice oneia_slice80
+01:== Attached person user-81@plc.org to slice oneia_slice80
+01:== Attached person user-82@plc.org to slice oneia_slice80
+01:== created slice 82 - max nodes=350
+01:== Attached person user-81@plc.org to slice oneib_slice81
+01:== Attached person user-82@plc.org to slice oneib_slice81
+01:== Attached person user-83@plc.org to slice oneib_slice81
+01:== created slice 83 - max nodes=350
+01:== Attached person user-82@plc.org to slice oneic_slice82
+01:== Attached person user-83@plc.org to slice oneic_slice82
+01:== Attached person user-84@plc.org to slice oneic_slice82
+01:== created slice 84 - max nodes=350
+01:== Attached person user-83@plc.org to slice oneid_slice83
+01:== Attached person user-84@plc.org to slice oneid_slice83
+01:== Attached person user-85@plc.org to slice oneid_slice83
+01:== created slice 85 - max nodes=350
+01:== Attached person user-84@plc.org to slice oneie_slice84
+01:== Attached person user-85@plc.org to slice oneie_slice84
+01:== Attached person user-86@plc.org to slice oneie_slice84
+01:== created slice 86 - max nodes=350
+01:== Attached person user-85@plc.org to slice oneif_slice85
+01:== Attached person user-86@plc.org to slice oneif_slice85
+01:== Attached person user-87@plc.org to slice oneif_slice85
+01:== created slice 87 - max nodes=350
+01:== Attached person user-86@plc.org to slice oneig_slice86
+01:== Attached person user-87@plc.org to slice oneig_slice86
+01:== Attached person user-88@plc.org to slice oneig_slice86
+01:== created slice 88 - max nodes=350
+01:== Attached person user-87@plc.org to slice oneih_slice87
+01:== Attached person user-88@plc.org to slice oneih_slice87
+01:== Attached person user-89@plc.org to slice oneih_slice87
+01:== created slice 89 - max nodes=350
+01:== Attached person user-88@plc.org to slice oneii_slice88
+01:== Attached person user-89@plc.org to slice oneii_slice88
+01:== Attached person user-90@plc.org to slice oneii_slice88
+01:== created slice 90 - max nodes=350
+01:== Attached person user-89@plc.org to slice oneij_slice89
+01:== Attached person user-90@plc.org to slice oneij_slice89
+01:== Attached person user-91@plc.org to slice oneij_slice89
+01:== created slice 91 - max nodes=350
+01:== Attached person user-90@plc.org to slice oneja_slice90
+01:== Attached person user-91@plc.org to slice oneja_slice90
+01:== Attached person user-92@plc.org to slice oneja_slice90
+01:== created slice 92 - max nodes=350
+01:== Attached person user-91@plc.org to slice onejb_slice91
+01:== Attached person user-92@plc.org to slice onejb_slice91
+01:== Attached person user-93@plc.org to slice onejb_slice91
+01:== created slice 93 - max nodes=350
+01:== Attached person user-92@plc.org to slice onejc_slice92
+01:== Attached person user-93@plc.org to slice onejc_slice92
+01:== Attached person user-94@plc.org to slice onejc_slice92
+01:== created slice 94 - max nodes=350
+01:== Attached person user-93@plc.org to slice onejd_slice93
+01:== Attached person user-94@plc.org to slice onejd_slice93
+01:== Attached person user-95@plc.org to slice onejd_slice93
+01:== created slice 95 - max nodes=350
+01:== Attached person user-94@plc.org to slice oneje_slice94
+01:== Attached person user-95@plc.org to slice oneje_slice94
+01:== Attached person user-96@plc.org to slice oneje_slice94
+01:== created slice 96 - max nodes=350
+01:== Attached person user-95@plc.org to slice onejf_slice95
+01:== Attached person user-96@plc.org to slice onejf_slice95
+01:== Attached person user-97@plc.org to slice onejf_slice95
+01:== created slice 97 - max nodes=350
+01:== Attached person user-96@plc.org to slice onejg_slice96
+01:== Attached person user-97@plc.org to slice onejg_slice96
+01:== Attached person user-98@plc.org to slice onejg_slice96
+01:== created slice 98 - max nodes=350
+01:== Attached person user-97@plc.org to slice onejh_slice97
+01:== Attached person user-98@plc.org to slice onejh_slice97
+01:== Attached person user-99@plc.org to slice onejh_slice97
+01:== created slice 99 - max nodes=350
+01:== Attached person user-98@plc.org to slice oneji_slice98
+01:== Attached person user-99@plc.org to slice oneji_slice98
+01:== Attached person user-100@plc.org to slice oneji_slice98
+01:== created slice 100 - max nodes=350
+01:== Attached person user-99@plc.org to slice onejj_slice99
+01:== Attached person user-100@plc.org to slice onejj_slice99
+01:== Attached person user-101@plc.org to slice onejj_slice99
+01:== created slice 101 - max nodes=350
+01:== Attached person user-100@plc.org to slice onebaa_slice100
+01:== Attached person user-101@plc.org to slice onebaa_slice100
+01:== Attached person user-102@plc.org to slice onebaa_slice100
+01:== created slice 102 - max nodes=350
+01:== Attached person user-101@plc.org to slice onebab_slice101
+01:== Attached person user-102@plc.org to slice onebab_slice101
+01:== Attached person user-103@plc.org to slice onebab_slice101
+01:== created slice 103 - max nodes=350
+01:== Attached person user-102@plc.org to slice onebac_slice102
+01:== Attached person user-103@plc.org to slice onebac_slice102
+01:== Attached person user-104@plc.org to slice onebac_slice102
+01:== created slice 104 - max nodes=350
+01:== Attached person user-103@plc.org to slice onebad_slice103
+01:== Attached person user-104@plc.org to slice onebad_slice103
+01:== Attached person user-105@plc.org to slice onebad_slice103
+01:== created slice 105 - max nodes=350
+01:== Attached person user-104@plc.org to slice onebae_slice104
+01:== Attached person user-105@plc.org to slice onebae_slice104
+01:== Attached person user-106@plc.org to slice onebae_slice104
+01:== created slice 106 - max nodes=350
+01:== Attached person user-105@plc.org to slice onebaf_slice105
+01:== Attached person user-106@plc.org to slice onebaf_slice105
+01:== Attached person user-107@plc.org to slice onebaf_slice105
+01:== created slice 107 - max nodes=350
+01:== Attached person user-106@plc.org to slice onebag_slice106
+01:== Attached person user-107@plc.org to slice onebag_slice106
+01:== Attached person user-108@plc.org to slice onebag_slice106
+01:== created slice 108 - max nodes=350
+01:== Attached person user-107@plc.org to slice onebah_slice107
+01:== Attached person user-108@plc.org to slice onebah_slice107
+01:== Attached person user-109@plc.org to slice onebah_slice107
+01:== created slice 109 - max nodes=350
+01:== Attached person user-108@plc.org to slice onebai_slice108
+01:== Attached person user-109@plc.org to slice onebai_slice108
+01:== Attached person user-110@plc.org to slice onebai_slice108
+01:== created slice 110 - max nodes=350
+01:== Attached person user-109@plc.org to slice onebaj_slice109
+01:== Attached person user-110@plc.org to slice onebaj_slice109
+01:== Attached person user-111@plc.org to slice onebaj_slice109
+01:== created slice 111 - max nodes=350
+01:== Attached person user-110@plc.org to slice onebba_slice110
+01:== Attached person user-111@plc.org to slice onebba_slice110
+01:== Attached person user-112@plc.org to slice onebba_slice110
+01:== created slice 112 - max nodes=350
+01:== Attached person user-111@plc.org to slice onebbb_slice111
+01:== Attached person user-112@plc.org to slice onebbb_slice111
+01:== Attached person user-113@plc.org to slice onebbb_slice111
+01:== created slice 113 - max nodes=350
+01:== Attached person user-112@plc.org to slice onebbc_slice112
+01:== Attached person user-113@plc.org to slice onebbc_slice112
+01:== Attached person user-114@plc.org to slice onebbc_slice112
+01:== created slice 114 - max nodes=350
+01:== Attached person user-113@plc.org to slice onebbd_slice113
+01:== Attached person user-114@plc.org to slice onebbd_slice113
+01:== Attached person user-115@plc.org to slice onebbd_slice113
+01:== created slice 115 - max nodes=350
+01:== Attached person user-114@plc.org to slice onebbe_slice114
+01:== Attached person user-115@plc.org to slice onebbe_slice114
+01:== Attached person user-116@plc.org to slice onebbe_slice114
+01:== created slice 116 - max nodes=350
+01:== Attached person user-115@plc.org to slice onebbf_slice115
+01:== Attached person user-116@plc.org to slice onebbf_slice115
+01:== Attached person user-117@plc.org to slice onebbf_slice115
+01:== created slice 117 - max nodes=350
+01:== Attached person user-116@plc.org to slice onebbg_slice116
+01:== Attached person user-117@plc.org to slice onebbg_slice116
+01:== Attached person user-118@plc.org to slice onebbg_slice116
+01:== created slice 118 - max nodes=350
+01:== Attached person user-117@plc.org to slice onebbh_slice117
+01:== Attached person user-118@plc.org to slice onebbh_slice117
+01:== Attached person user-119@plc.org to slice onebbh_slice117
+01:== created slice 119 - max nodes=350
+01:== Attached person user-118@plc.org to slice onebbi_slice118
+01:== Attached person user-119@plc.org to slice onebbi_slice118
+01:== Attached person user-120@plc.org to slice onebbi_slice118
+01:== created slice 120 - max nodes=350
+01:== Attached person user-119@plc.org to slice onebbj_slice119
+01:== Attached person user-120@plc.org to slice onebbj_slice119
+01:== Attached person user-121@plc.org to slice onebbj_slice119
+01:== created slice 121 - max nodes=350
+01:== Attached person user-120@plc.org to slice onebca_slice120
+01:== Attached person user-121@plc.org to slice onebca_slice120
+01:== Attached person user-122@plc.org to slice onebca_slice120
+01:== created slice 122 - max nodes=350
+01:== Attached person user-121@plc.org to slice onebcb_slice121
+01:== Attached person user-122@plc.org to slice onebcb_slice121
+01:== Attached person user-123@plc.org to slice onebcb_slice121
+01:== created slice 123 - max nodes=350
+01:== Attached person user-122@plc.org to slice onebcc_slice122
+01:== Attached person user-123@plc.org to slice onebcc_slice122
+01:== Attached person user-124@plc.org to slice onebcc_slice122
+01:== created slice 124 - max nodes=350
+01:== Attached person user-123@plc.org to slice onebcd_slice123
+01:== Attached person user-124@plc.org to slice onebcd_slice123
+01:== Attached person user-125@plc.org to slice onebcd_slice123
+01:== created slice 125 - max nodes=350
+01:== Attached person user-124@plc.org to slice onebce_slice124
+01:== Attached person user-125@plc.org to slice onebce_slice124
+01:== Attached person user-126@plc.org to slice onebce_slice124
+01:== created slice 126 - max nodes=350
+01:== Attached person user-125@plc.org to slice onebcf_slice125
+01:== Attached person user-126@plc.org to slice onebcf_slice125
+01:== Attached person user-127@plc.org to slice onebcf_slice125
+01:== created slice 127 - max nodes=350
+01:== Attached person user-126@plc.org to slice onebcg_slice126
+01:== Attached person user-127@plc.org to slice onebcg_slice126
+01:== Attached person user-128@plc.org to slice onebcg_slice126
+01:== created slice 128 - max nodes=350
+01:== Attached person user-127@plc.org to slice onebch_slice127
+01:== Attached person user-128@plc.org to slice onebch_slice127
+01:== Attached person user-129@plc.org to slice onebch_slice127
+01:== created slice 129 - max nodes=350
+01:== Attached person user-128@plc.org to slice onebci_slice128
+01:== Attached person user-129@plc.org to slice onebci_slice128
+01:== Attached person user-130@plc.org to slice onebci_slice128
+01:== created slice 130 - max nodes=350
+01:== Attached person user-129@plc.org to slice onebcj_slice129
+01:== Attached person user-130@plc.org to slice onebcj_slice129
+01:== Attached person user-131@plc.org to slice onebcj_slice129
+01:== created slice 131 - max nodes=350
+01:== Attached person user-130@plc.org to slice onebda_slice130
+01:== Attached person user-131@plc.org to slice onebda_slice130
+01:== Attached person user-132@plc.org to slice onebda_slice130
+01:== created slice 132 - max nodes=350
+01:== Attached person user-131@plc.org to slice onebdb_slice131
+01:== Attached person user-132@plc.org to slice onebdb_slice131
+01:== Attached person user-133@plc.org to slice onebdb_slice131
+01:== created slice 133 - max nodes=350
+01:== Attached person user-132@plc.org to slice onebdc_slice132
+01:== Attached person user-133@plc.org to slice onebdc_slice132
+01:== Attached person user-134@plc.org to slice onebdc_slice132
+01:== created slice 134 - max nodes=350
+01:== Attached person user-133@plc.org to slice onebdd_slice133
+01:== Attached person user-134@plc.org to slice onebdd_slice133
+01:== Attached person user-135@plc.org to slice onebdd_slice133
+01:== created slice 135 - max nodes=350
+01:== Attached person user-134@plc.org to slice onebde_slice134
+01:== Attached person user-135@plc.org to slice onebde_slice134
+01:== Attached person user-136@plc.org to slice onebde_slice134
+01:== created slice 136 - max nodes=350
+01:== Attached person user-135@plc.org to slice onebdf_slice135
+01:== Attached person user-136@plc.org to slice onebdf_slice135
+01:== Attached person user-137@plc.org to slice onebdf_slice135
+01:== created slice 137 - max nodes=350
+01:== Attached person user-136@plc.org to slice onebdg_slice136
+01:== Attached person user-137@plc.org to slice onebdg_slice136
+01:== Attached person user-138@plc.org to slice onebdg_slice136
+01:== created slice 138 - max nodes=350
+01:== Attached person user-137@plc.org to slice onebdh_slice137
+01:== Attached person user-138@plc.org to slice onebdh_slice137
+01:== Attached person user-139@plc.org to slice onebdh_slice137
+01:== created slice 139 - max nodes=350
+01:== Attached person user-138@plc.org to slice onebdi_slice138
+01:== Attached person user-139@plc.org to slice onebdi_slice138
+01:== Attached person user-140@plc.org to slice onebdi_slice138
+01:== created slice 140 - max nodes=350
+01:== Attached person user-139@plc.org to slice onebdj_slice139
+01:== Attached person user-140@plc.org to slice onebdj_slice139
+01:== Attached person user-141@plc.org to slice onebdj_slice139
+01:== created slice 141 - max nodes=350
+01:== Attached person user-140@plc.org to slice onebea_slice140
+01:== Attached person user-141@plc.org to slice onebea_slice140
+01:== Attached person user-142@plc.org to slice onebea_slice140
+01:== created slice 142 - max nodes=350
+01:== Attached person user-141@plc.org to slice onebeb_slice141
+01:== Attached person user-142@plc.org to slice onebeb_slice141
+01:== Attached person user-143@plc.org to slice onebeb_slice141
+01:== created slice 143 - max nodes=350
+01:== Attached person user-142@plc.org to slice onebec_slice142
+01:== Attached person user-143@plc.org to slice onebec_slice142
+01:== Attached person user-144@plc.org to slice onebec_slice142
+01:== created slice 144 - max nodes=350
+01:== Attached person user-143@plc.org to slice onebed_slice143
+01:== Attached person user-144@plc.org to slice onebed_slice143
+01:== Attached person user-145@plc.org to slice onebed_slice143
+01:== created slice 145 - max nodes=350
+01:== Attached person user-144@plc.org to slice onebee_slice144
+01:== Attached person user-145@plc.org to slice onebee_slice144
+01:== Attached person user-146@plc.org to slice onebee_slice144
+01:== created slice 146 - max nodes=350
+01:== Attached person user-145@plc.org to slice onebef_slice145
+01:== Attached person user-146@plc.org to slice onebef_slice145
+01:== Attached person user-147@plc.org to slice onebef_slice145
+01:== created slice 147 - max nodes=350
+01:== Attached person user-146@plc.org to slice onebeg_slice146
+01:== Attached person user-147@plc.org to slice onebeg_slice146
+01:== Attached person user-148@plc.org to slice onebeg_slice146
+01:== created slice 148 - max nodes=350
+01:== Attached person user-147@plc.org to slice onebeh_slice147
+01:== Attached person user-148@plc.org to slice onebeh_slice147
+01:== Attached person user-149@plc.org to slice onebeh_slice147
+01:== created slice 149 - max nodes=350
+01:== Attached person user-148@plc.org to slice onebei_slice148
+01:== Attached person user-149@plc.org to slice onebei_slice148
+01:== Attached person user-150@plc.org to slice onebei_slice148
+01:== created slice 150 - max nodes=350
+01:== Attached person user-149@plc.org to slice onebej_slice149
+01:== Attached person user-150@plc.org to slice onebej_slice149
+01:== Attached person user-151@plc.org to slice onebej_slice149
+01:== created slice 151 - max nodes=350
+01:== Attached person user-150@plc.org to slice onebfa_slice150
+01:== Attached person user-151@plc.org to slice onebfa_slice150
+01:== Attached person user-152@plc.org to slice onebfa_slice150
+01:== created slice 152 - max nodes=350
+01:== Attached person user-151@plc.org to slice onebfb_slice151
+01:== Attached person user-152@plc.org to slice onebfb_slice151
+01:== Attached person user-153@plc.org to slice onebfb_slice151
+01:== created slice 153 - max nodes=350
+01:== Attached person user-152@plc.org to slice onebfc_slice152
+01:== Attached person user-153@plc.org to slice onebfc_slice152
+01:== Attached person user-154@plc.org to slice onebfc_slice152
+01:== created slice 154 - max nodes=350
+01:== Attached person user-153@plc.org to slice onebfd_slice153
+01:== Attached person user-154@plc.org to slice onebfd_slice153
+01:== Attached person user-155@plc.org to slice onebfd_slice153
+01:== created slice 155 - max nodes=350
+01:== Attached person user-154@plc.org to slice onebfe_slice154
+01:== Attached person user-155@plc.org to slice onebfe_slice154
+01:== Attached person user-156@plc.org to slice onebfe_slice154
+01:== created slice 156 - max nodes=350
+01:== Attached person user-155@plc.org to slice onebff_slice155
+01:== Attached person user-156@plc.org to slice onebff_slice155
+01:== Attached person user-157@plc.org to slice onebff_slice155
+01:== created slice 157 - max nodes=350
+01:== Attached person user-156@plc.org to slice onebfg_slice156
+01:== Attached person user-157@plc.org to slice onebfg_slice156
+01:== Attached person user-158@plc.org to slice onebfg_slice156
+01:== created slice 158 - max nodes=350
+01:== Attached person user-157@plc.org to slice onebfh_slice157
+01:== Attached person user-158@plc.org to slice onebfh_slice157
+01:== Attached person user-159@plc.org to slice onebfh_slice157
+01:== created slice 159 - max nodes=350
+01:== Attached person user-158@plc.org to slice onebfi_slice158
+01:== Attached person user-159@plc.org to slice onebfi_slice158
+01:== Attached person user-160@plc.org to slice onebfi_slice158
+01:== created slice 160 - max nodes=350
+01:== Attached person user-159@plc.org to slice onebfj_slice159
+01:== Attached person user-160@plc.org to slice onebfj_slice159
+01:== Attached person user-161@plc.org to slice onebfj_slice159
+01:== created slice 161 - max nodes=350
+01:== Attached person user-160@plc.org to slice onebga_slice160
+01:== Attached person user-161@plc.org to slice onebga_slice160
+01:== Attached person user-162@plc.org to slice onebga_slice160
+01:== created slice 162 - max nodes=350
+01:== Attached person user-161@plc.org to slice onebgb_slice161
+01:== Attached person user-162@plc.org to slice onebgb_slice161
+01:== Attached person user-163@plc.org to slice onebgb_slice161
+01:== created slice 163 - max nodes=350
+01:== Attached person user-162@plc.org to slice onebgc_slice162
+01:== Attached person user-163@plc.org to slice onebgc_slice162
+01:== Attached person user-164@plc.org to slice onebgc_slice162
+01:== created slice 164 - max nodes=350
+01:== Attached person user-163@plc.org to slice onebgd_slice163
+01:== Attached person user-164@plc.org to slice onebgd_slice163
+01:== Attached person user-165@plc.org to slice onebgd_slice163
+01:== created slice 165 - max nodes=350
+01:== Attached person user-164@plc.org to slice onebge_slice164
+01:== Attached person user-165@plc.org to slice onebge_slice164
+01:== Attached person user-166@plc.org to slice onebge_slice164
+01:== created slice 166 - max nodes=350
+01:== Attached person user-165@plc.org to slice onebgf_slice165
+01:== Attached person user-166@plc.org to slice onebgf_slice165
+01:== Attached person user-167@plc.org to slice onebgf_slice165
+01:== created slice 167 - max nodes=350
+01:== Attached person user-166@plc.org to slice onebgg_slice166
+01:== Attached person user-167@plc.org to slice onebgg_slice166
+01:== Attached person user-168@plc.org to slice onebgg_slice166
+01:== created slice 168 - max nodes=350
+01:== Attached person user-167@plc.org to slice onebgh_slice167
+01:== Attached person user-168@plc.org to slice onebgh_slice167
+01:== Attached person user-169@plc.org to slice onebgh_slice167
+01:== created slice 169 - max nodes=350
+01:== Attached person user-168@plc.org to slice onebgi_slice168
+01:== Attached person user-169@plc.org to slice onebgi_slice168
+01:== Attached person user-170@plc.org to slice onebgi_slice168
+01:== created slice 170 - max nodes=350
+01:== Attached person user-169@plc.org to slice onebgj_slice169
+01:== Attached person user-170@plc.org to slice onebgj_slice169
+01:== Attached person user-171@plc.org to slice onebgj_slice169
+01:== created slice 171 - max nodes=350
+01:== Attached person user-170@plc.org to slice onebha_slice170
+01:== Attached person user-171@plc.org to slice onebha_slice170
+01:== Attached person user-172@plc.org to slice onebha_slice170
+01:== created slice 172 - max nodes=350
+01:== Attached person user-171@plc.org to slice onebhb_slice171
+01:== Attached person user-172@plc.org to slice onebhb_slice171
+01:== Attached person user-173@plc.org to slice onebhb_slice171
+01:== created slice 173 - max nodes=350
+01:== Attached person user-172@plc.org to slice onebhc_slice172
+01:== Attached person user-173@plc.org to slice onebhc_slice172
+01:== Attached person user-174@plc.org to slice onebhc_slice172
+01:== created slice 174 - max nodes=350
+01:== Attached person user-173@plc.org to slice onebhd_slice173
+01:== Attached person user-174@plc.org to slice onebhd_slice173
+01:== Attached person user-175@plc.org to slice onebhd_slice173
+01:== created slice 175 - max nodes=350
+01:== Attached person user-174@plc.org to slice onebhe_slice174
+01:== Attached person user-175@plc.org to slice onebhe_slice174
+01:== Attached person user-176@plc.org to slice onebhe_slice174
+01:== created slice 176 - max nodes=350
+01:== Attached person user-175@plc.org to slice onebhf_slice175
+01:== Attached person user-176@plc.org to slice onebhf_slice175
+01:== Attached person user-177@plc.org to slice onebhf_slice175
+01:== created slice 177 - max nodes=350
+01:== Attached person user-176@plc.org to slice onebhg_slice176
+01:== Attached person user-177@plc.org to slice onebhg_slice176
+01:== Attached person user-178@plc.org to slice onebhg_slice176
+01:== created slice 178 - max nodes=350
+01:== Attached person user-177@plc.org to slice onebhh_slice177
+01:== Attached person user-178@plc.org to slice onebhh_slice177
+01:== Attached person user-179@plc.org to slice onebhh_slice177
+01:== created slice 179 - max nodes=350
+01:== Attached person user-178@plc.org to slice onebhi_slice178
+01:== Attached person user-179@plc.org to slice onebhi_slice178
+01:== Attached person user-180@plc.org to slice onebhi_slice178
+01:== created slice 180 - max nodes=350
+01:== Attached person user-179@plc.org to slice onebhj_slice179
+01:== Attached person user-180@plc.org to slice onebhj_slice179
+01:== Attached person user-181@plc.org to slice onebhj_slice179
+01:== created slice 181 - max nodes=350
+01:== Attached person user-180@plc.org to slice onebia_slice180
+01:== Attached person user-181@plc.org to slice onebia_slice180
+01:== Attached person user-182@plc.org to slice onebia_slice180
+01:== created slice 182 - max nodes=350
+01:== Attached person user-181@plc.org to slice onebib_slice181
+01:== Attached person user-182@plc.org to slice onebib_slice181
+01:== Attached person user-183@plc.org to slice onebib_slice181
+01:== created slice 183 - max nodes=350
+01:== Attached person user-182@plc.org to slice onebic_slice182
+01:== Attached person user-183@plc.org to slice onebic_slice182
+01:== Attached person user-184@plc.org to slice onebic_slice182
+01:== created slice 184 - max nodes=350
+01:== Attached person user-183@plc.org to slice onebid_slice183
+01:== Attached person user-184@plc.org to slice onebid_slice183
+01:== Attached person user-185@plc.org to slice onebid_slice183
+01:== created slice 185 - max nodes=350
+01:== Attached person user-184@plc.org to slice onebie_slice184
+01:== Attached person user-185@plc.org to slice onebie_slice184
+01:== Attached person user-186@plc.org to slice onebie_slice184
+01:== created slice 186 - max nodes=350
+01:== Attached person user-185@plc.org to slice onebif_slice185
+01:== Attached person user-186@plc.org to slice onebif_slice185
+01:== Attached person user-187@plc.org to slice onebif_slice185
+01:== created slice 187 - max nodes=350
+01:== Attached person user-186@plc.org to slice onebig_slice186
+01:== Attached person user-187@plc.org to slice onebig_slice186
+01:== Attached person user-188@plc.org to slice onebig_slice186
+01:== created slice 188 - max nodes=350
+01:== Attached person user-187@plc.org to slice onebih_slice187
+01:== Attached person user-188@plc.org to slice onebih_slice187
+01:== Attached person user-189@plc.org to slice onebih_slice187
+01:== created slice 189 - max nodes=350
+01:== Attached person user-188@plc.org to slice onebii_slice188
+01:== Attached person user-189@plc.org to slice onebii_slice188
+01:== Attached person user-190@plc.org to slice onebii_slice188
+01:== created slice 190 - max nodes=350
+01:== Attached person user-189@plc.org to slice onebij_slice189
+01:== Attached person user-190@plc.org to slice onebij_slice189
+01:== Attached person user-191@plc.org to slice onebij_slice189
+01:== created slice 191 - max nodes=350
+01:== Attached person user-190@plc.org to slice onebja_slice190
+01:== Attached person user-191@plc.org to slice onebja_slice190
+01:== Attached person user-192@plc.org to slice onebja_slice190
+01:== created slice 192 - max nodes=350
+01:== Attached person user-191@plc.org to slice onebjb_slice191
+01:== Attached person user-192@plc.org to slice onebjb_slice191
+01:== Attached person user-193@plc.org to slice onebjb_slice191
+01:== created slice 193 - max nodes=350
+01:== Attached person user-192@plc.org to slice onebjc_slice192
+01:== Attached person user-193@plc.org to slice onebjc_slice192
+01:== Attached person user-194@plc.org to slice onebjc_slice192
+01:== created slice 194 - max nodes=350
+01:== Attached person user-193@plc.org to slice onebjd_slice193
+01:== Attached person user-194@plc.org to slice onebjd_slice193
+01:== Attached person user-195@plc.org to slice onebjd_slice193
+01:== created slice 195 - max nodes=350
+01:== Attached person user-194@plc.org to slice onebje_slice194
+01:== Attached person user-195@plc.org to slice onebje_slice194
+01:== Attached person user-196@plc.org to slice onebje_slice194
+01:== created slice 196 - max nodes=350
+01:== Attached person user-195@plc.org to slice onebjf_slice195
+01:== Attached person user-196@plc.org to slice onebjf_slice195
+01:== Attached person user-197@plc.org to slice onebjf_slice195
+01:== created slice 197 - max nodes=350
+01:== Attached person user-196@plc.org to slice onebjg_slice196
+01:== Attached person user-197@plc.org to slice onebjg_slice196
+01:== Attached person user-198@plc.org to slice onebjg_slice196
+01:== created slice 198 - max nodes=350
+01:== Attached person user-197@plc.org to slice onebjh_slice197
+01:== Attached person user-198@plc.org to slice onebjh_slice197
+01:== Attached person user-199@plc.org to slice onebjh_slice197
+01:== created slice 199 - max nodes=350
+01:== Attached person user-198@plc.org to slice onebji_slice198
+01:== Attached person user-199@plc.org to slice onebji_slice198
+01:== Attached person user-200@plc.org to slice onebji_slice198
+01:== created slice 200 - max nodes=350
+01:== Attached person user-199@plc.org to slice onebjj_slice199
+01:== Attached person user-200@plc.org to slice onebjj_slice199
+01:== Attached person user-201@plc.org to slice onebjj_slice199
+01:== created slice 201 - max nodes=350
+01:== Attached person user-200@plc.org to slice onecaa_slice200
+01:== Attached person user-201@plc.org to slice onecaa_slice200
+01:== Attached person user-202@plc.org to slice onecaa_slice200
+01:== created slice 202 - max nodes=350
+01:== Attached person user-201@plc.org to slice oneb_slice201
+01:== Attached person user-202@plc.org to slice oneb_slice201
+01:== Attached person user-203@plc.org to slice oneb_slice201
+01:== created slice 203 - max nodes=350
+01:== Attached person user-202@plc.org to slice onec_slice202
+01:== Attached person user-203@plc.org to slice onec_slice202
+01:== Attached person user-204@plc.org to slice onec_slice202
+01:== created slice 204 - max nodes=350
+01:== Attached person user-203@plc.org to slice oned_slice203
+01:== Attached person user-204@plc.org to slice oned_slice203
+01:== Attached person user-205@plc.org to slice oned_slice203
+01:== created slice 205 - max nodes=350
+01:== Attached person user-204@plc.org to slice onee_slice204
+01:== Attached person user-205@plc.org to slice onee_slice204
+01:== Attached person user-206@plc.org to slice onee_slice204
+01:== created slice 206 - max nodes=350
+01:== Attached person user-205@plc.org to slice onef_slice205
+01:== Attached person user-206@plc.org to slice onef_slice205
+01:== Attached person user-207@plc.org to slice onef_slice205
+01:== created slice 207 - max nodes=350
+01:== Attached person user-206@plc.org to slice oneg_slice206
+01:== Attached person user-207@plc.org to slice oneg_slice206
+01:== Attached person user-208@plc.org to slice oneg_slice206
+01:== created slice 208 - max nodes=350
+01:== Attached person user-207@plc.org to slice oneh_slice207
+01:== Attached person user-208@plc.org to slice oneh_slice207
+01:== Attached person user-209@plc.org to slice oneh_slice207
+01:== created slice 209 - max nodes=350
+01:== Attached person user-208@plc.org to slice onei_slice208
+01:== Attached person user-209@plc.org to slice onei_slice208
+01:== Attached person user-210@plc.org to slice onei_slice208
+01:== created slice 210 - max nodes=350
+01:== Attached person user-209@plc.org to slice onej_slice209
+01:== Attached person user-210@plc.org to slice onej_slice209
+01:== Attached person user-211@plc.org to slice onej_slice209
+01:== created slice 211 - max nodes=350
+01:== Attached person user-210@plc.org to slice oneba_slice210
+01:== Attached person user-211@plc.org to slice oneba_slice210
+01:== Attached person user-212@plc.org to slice oneba_slice210
+01:== created slice 212 - max nodes=350
+01:== Attached person user-211@plc.org to slice onebb_slice211
+01:== Attached person user-212@plc.org to slice onebb_slice211
+01:== Attached person user-213@plc.org to slice onebb_slice211
+01:== created slice 213 - max nodes=350
+01:== Attached person user-212@plc.org to slice onebc_slice212
+01:== Attached person user-213@plc.org to slice onebc_slice212
+01:== Attached person user-214@plc.org to slice onebc_slice212
+01:== created slice 214 - max nodes=350
+01:== Attached person user-213@plc.org to slice onebd_slice213
+01:== Attached person user-214@plc.org to slice onebd_slice213
+01:== Attached person user-215@plc.org to slice onebd_slice213
+01:== created slice 215 - max nodes=350
+01:== Attached person user-214@plc.org to slice onebe_slice214
+01:== Attached person user-215@plc.org to slice onebe_slice214
+01:== Attached person user-216@plc.org to slice onebe_slice214
+01:== created slice 216 - max nodes=350
+01:== Attached person user-215@plc.org to slice onebf_slice215
+01:== Attached person user-216@plc.org to slice onebf_slice215
+01:== Attached person user-217@plc.org to slice onebf_slice215
+01:== created slice 217 - max nodes=350
+01:== Attached person user-216@plc.org to slice onebg_slice216
+01:== Attached person user-217@plc.org to slice onebg_slice216
+01:== Attached person user-218@plc.org to slice onebg_slice216
+01:== created slice 218 - max nodes=350
+01:== Attached person user-217@plc.org to slice onebh_slice217
+01:== Attached person user-218@plc.org to slice onebh_slice217
+01:== Attached person user-219@plc.org to slice onebh_slice217
+01:== created slice 219 - max nodes=350
+01:== Attached person user-218@plc.org to slice onebi_slice218
+01:== Attached person user-219@plc.org to slice onebi_slice218
+01:== Attached person user-220@plc.org to slice onebi_slice218
+01:== created slice 220 - max nodes=350
+01:== Attached person user-219@plc.org to slice onebj_slice219
+01:== Attached person user-220@plc.org to slice onebj_slice219
+01:== Attached person user-221@plc.org to slice onebj_slice219
+01:== created slice 221 - max nodes=350
+01:== Attached person user-220@plc.org to slice oneca_slice220
+01:== Attached person user-221@plc.org to slice oneca_slice220
+01:== Attached person user-222@plc.org to slice oneca_slice220
+01:== created slice 222 - max nodes=350
+01:== Attached person user-221@plc.org to slice onecb_slice221
+01:== Attached person user-222@plc.org to slice onecb_slice221
+01:== Attached person user-223@plc.org to slice onecb_slice221
+01:== created slice 223 - max nodes=350
+01:== Attached person user-222@plc.org to slice onecc_slice222
+01:== Attached person user-223@plc.org to slice onecc_slice222
+01:== Attached person user-224@plc.org to slice onecc_slice222
+01:== created slice 224 - max nodes=350
+01:== Attached person user-223@plc.org to slice onecd_slice223
+01:== Attached person user-224@plc.org to slice onecd_slice223
+01:== Attached person user-225@plc.org to slice onecd_slice223
+01:== created slice 225 - max nodes=350
+01:== Attached person user-224@plc.org to slice onece_slice224
+01:== Attached person user-225@plc.org to slice onece_slice224
+01:== Attached person user-226@plc.org to slice onece_slice224
+01:== created slice 226 - max nodes=350
+01:== Attached person user-225@plc.org to slice onecf_slice225
+01:== Attached person user-226@plc.org to slice onecf_slice225
+01:== Attached person user-227@plc.org to slice onecf_slice225
+01:== created slice 227 - max nodes=350
+01:== Attached person user-226@plc.org to slice onecg_slice226
+01:== Attached person user-227@plc.org to slice onecg_slice226
+01:== Attached person user-228@plc.org to slice onecg_slice226
+01:== created slice 228 - max nodes=350
+01:== Attached person user-227@plc.org to slice onech_slice227
+01:== Attached person user-228@plc.org to slice onech_slice227
+01:== Attached person user-229@plc.org to slice onech_slice227
+01:== created slice 229 - max nodes=350
+01:== Attached person user-228@plc.org to slice oneci_slice228
+01:== Attached person user-229@plc.org to slice oneci_slice228
+01:== Attached person user-230@plc.org to slice oneci_slice228
+01:== created slice 230 - max nodes=350
+01:== Attached person user-229@plc.org to slice onecj_slice229
+01:== Attached person user-230@plc.org to slice onecj_slice229
+01:== Attached person user-231@plc.org to slice onecj_slice229
+01:== created slice 231 - max nodes=350
+01:== Attached person user-230@plc.org to slice oneda_slice230
+01:== Attached person user-231@plc.org to slice oneda_slice230
+01:== Attached person user-232@plc.org to slice oneda_slice230
+01:== created slice 232 - max nodes=350
+01:== Attached person user-231@plc.org to slice onedb_slice231
+01:== Attached person user-232@plc.org to slice onedb_slice231
+01:== Attached person user-233@plc.org to slice onedb_slice231
+01:== created slice 233 - max nodes=350
+01:== Attached person user-232@plc.org to slice onedc_slice232
+01:== Attached person user-233@plc.org to slice onedc_slice232
+01:== Attached person user-234@plc.org to slice onedc_slice232
+01:== created slice 234 - max nodes=350
+01:== Attached person user-233@plc.org to slice onedd_slice233
+01:== Attached person user-234@plc.org to slice onedd_slice233
+01:== Attached person user-235@plc.org to slice onedd_slice233
+01:== created slice 235 - max nodes=350
+01:== Attached person user-234@plc.org to slice onede_slice234
+01:== Attached person user-235@plc.org to slice onede_slice234
+01:== Attached person user-236@plc.org to slice onede_slice234
+01:== created slice 236 - max nodes=350
+01:== Attached person user-235@plc.org to slice onedf_slice235
+01:== Attached person user-236@plc.org to slice onedf_slice235
+01:== Attached person user-237@plc.org to slice onedf_slice235
+01:== created slice 237 - max nodes=350
+01:== Attached person user-236@plc.org to slice onedg_slice236
+01:== Attached person user-237@plc.org to slice onedg_slice236
+01:== Attached person user-238@plc.org to slice onedg_slice236
+01:== created slice 238 - max nodes=350
+01:== Attached person user-237@plc.org to slice onedh_slice237
+01:== Attached person user-238@plc.org to slice onedh_slice237
+01:== Attached person user-239@plc.org to slice onedh_slice237
+01:== created slice 239 - max nodes=350
+01:== Attached person user-238@plc.org to slice onedi_slice238
+01:== Attached person user-239@plc.org to slice onedi_slice238
+01:== Attached person user-240@plc.org to slice onedi_slice238
+01:== created slice 240 - max nodes=350
+01:== Attached person user-239@plc.org to slice onedj_slice239
+01:== Attached person user-240@plc.org to slice onedj_slice239
+01:== Attached person user-241@plc.org to slice onedj_slice239
+01:== created slice 241 - max nodes=350
+01:== Attached person user-240@plc.org to slice oneea_slice240
+01:== Attached person user-241@plc.org to slice oneea_slice240
+01:== Attached person user-242@plc.org to slice oneea_slice240
+01:== created slice 242 - max nodes=350
+01:== Attached person user-241@plc.org to slice oneeb_slice241
+01:== Attached person user-242@plc.org to slice oneeb_slice241
+01:== Attached person user-243@plc.org to slice oneeb_slice241
+01:== created slice 243 - max nodes=350
+01:== Attached person user-242@plc.org to slice oneec_slice242
+01:== Attached person user-243@plc.org to slice oneec_slice242
+01:== Attached person user-244@plc.org to slice oneec_slice242
+01:== created slice 244 - max nodes=350
+01:== Attached person user-243@plc.org to slice oneed_slice243
+01:== Attached person user-244@plc.org to slice oneed_slice243
+01:== Attached person user-245@plc.org to slice oneed_slice243
+01:== created slice 245 - max nodes=350
+01:== Attached person user-244@plc.org to slice oneee_slice244
+01:== Attached person user-245@plc.org to slice oneee_slice244
+01:== Attached person user-246@plc.org to slice oneee_slice244
+01:== created slice 246 - max nodes=350
+01:== Attached person user-245@plc.org to slice oneef_slice245
+01:== Attached person user-246@plc.org to slice oneef_slice245
+01:== Attached person user-247@plc.org to slice oneef_slice245
+01:== created slice 247 - max nodes=350
+01:== Attached person user-246@plc.org to slice oneeg_slice246
+01:== Attached person user-247@plc.org to slice oneeg_slice246
+01:== Attached person user-248@plc.org to slice oneeg_slice246
+01:== created slice 248 - max nodes=350
+01:== Attached person user-247@plc.org to slice oneeh_slice247
+01:== Attached person user-248@plc.org to slice oneeh_slice247
+01:== Attached person user-249@plc.org to slice oneeh_slice247
+01:== created slice 249 - max nodes=350
+01:== Attached person user-248@plc.org to slice oneei_slice248
+01:== Attached person user-249@plc.org to slice oneei_slice248
+01:== Attached person user-250@plc.org to slice oneei_slice248
+01:== created slice 250 - max nodes=350
+01:== Attached person user-249@plc.org to slice oneej_slice249
+01:== Attached person user-250@plc.org to slice oneej_slice249
+01:== Attached person user-251@plc.org to slice oneej_slice249
+01:== created slice 251 - max nodes=350
+01:== Attached person user-250@plc.org to slice onefa_slice250
+01:== Attached person user-251@plc.org to slice onefa_slice250
+01:== Attached person user-252@plc.org to slice onefa_slice250
+01:== created slice 252 - max nodes=350
+01:== Attached person user-251@plc.org to slice onefb_slice251
+01:== Attached person user-252@plc.org to slice onefb_slice251
+01:== Attached person user-253@plc.org to slice onefb_slice251
+01:== created slice 253 - max nodes=350
+01:== Attached person user-252@plc.org to slice onefc_slice252
+01:== Attached person user-253@plc.org to slice onefc_slice252
+01:== Attached person user-254@plc.org to slice onefc_slice252
+01:== created slice 254 - max nodes=350
+01:== Attached person user-253@plc.org to slice onefd_slice253
+01:== Attached person user-254@plc.org to slice onefd_slice253
+01:== Attached person user-255@plc.org to slice onefd_slice253
+01:== created slice 255 - max nodes=350
+01:== Attached person user-254@plc.org to slice onefe_slice254
+01:== Attached person user-255@plc.org to slice onefe_slice254
+01:== Attached person user-256@plc.org to slice onefe_slice254
+01:== created slice 256 - max nodes=350
+01:== Attached person user-255@plc.org to slice oneff_slice255
+01:== Attached person user-256@plc.org to slice oneff_slice255
+01:== Attached person user-257@plc.org to slice oneff_slice255
+01:== created slice 257 - max nodes=350
+01:== Attached person user-256@plc.org to slice onefg_slice256
+01:== Attached person user-257@plc.org to slice onefg_slice256
+01:== Attached person user-258@plc.org to slice onefg_slice256
+01:== created slice 258 - max nodes=350
+01:== Attached person user-257@plc.org to slice onefh_slice257
+01:== Attached person user-258@plc.org to slice onefh_slice257
+01:== Attached person user-259@plc.org to slice onefh_slice257
+01:== created slice 259 - max nodes=350
+01:== Attached person user-258@plc.org to slice onefi_slice258
+01:== Attached person user-259@plc.org to slice onefi_slice258
+01:== Attached person user-260@plc.org to slice onefi_slice258
+01:== created slice 260 - max nodes=350
+01:== Attached person user-259@plc.org to slice onefj_slice259
+01:== Attached person user-260@plc.org to slice onefj_slice259
+01:== Attached person user-261@plc.org to slice onefj_slice259
+01:== created slice 261 - max nodes=350
+01:== Attached person user-260@plc.org to slice onega_slice260
+01:== Attached person user-261@plc.org to slice onega_slice260
+01:== Attached person user-262@plc.org to slice onega_slice260
+01:== created slice 262 - max nodes=350
+01:== Attached person user-261@plc.org to slice onegb_slice261
+01:== Attached person user-262@plc.org to slice onegb_slice261
+01:== Attached person user-263@plc.org to slice onegb_slice261
+01:== created slice 263 - max nodes=350
+01:== Attached person user-262@plc.org to slice onegc_slice262
+01:== Attached person user-263@plc.org to slice onegc_slice262
+01:== Attached person user-264@plc.org to slice onegc_slice262
+01:== created slice 264 - max nodes=350
+01:== Attached person user-263@plc.org to slice onegd_slice263
+01:== Attached person user-264@plc.org to slice onegd_slice263
+01:== Attached person user-265@plc.org to slice onegd_slice263
+01:== created slice 265 - max nodes=350
+01:== Attached person user-264@plc.org to slice onege_slice264
+01:== Attached person user-265@plc.org to slice onege_slice264
+01:== Attached person user-266@plc.org to slice onege_slice264
+01:== created slice 266 - max nodes=350
+01:== Attached person user-265@plc.org to slice onegf_slice265
+01:== Attached person user-266@plc.org to slice onegf_slice265
+01:== Attached person user-267@plc.org to slice onegf_slice265
+01:== created slice 267 - max nodes=350
+01:== Attached person user-266@plc.org to slice onegg_slice266
+01:== Attached person user-267@plc.org to slice onegg_slice266
+01:== Attached person user-268@plc.org to slice onegg_slice266
+01:== created slice 268 - max nodes=350
+01:== Attached person user-267@plc.org to slice onegh_slice267
+01:== Attached person user-268@plc.org to slice onegh_slice267
+01:== Attached person user-269@plc.org to slice onegh_slice267
+01:== created slice 269 - max nodes=350
+01:== Attached person user-268@plc.org to slice onegi_slice268
+01:== Attached person user-269@plc.org to slice onegi_slice268
+01:== Attached person user-270@plc.org to slice onegi_slice268
+01:== created slice 270 - max nodes=350
+01:== Attached person user-269@plc.org to slice onegj_slice269
+01:== Attached person user-270@plc.org to slice onegj_slice269
+01:== Attached person user-271@plc.org to slice onegj_slice269
+01:== created slice 271 - max nodes=350
+01:== Attached person user-270@plc.org to slice oneha_slice270
+01:== Attached person user-271@plc.org to slice oneha_slice270
+01:== Attached person user-272@plc.org to slice oneha_slice270
+01:== created slice 272 - max nodes=350
+01:== Attached person user-271@plc.org to slice onehb_slice271
+01:== Attached person user-272@plc.org to slice onehb_slice271
+01:== Attached person user-273@plc.org to slice onehb_slice271
+01:== created slice 273 - max nodes=350
+01:== Attached person user-272@plc.org to slice onehc_slice272
+01:== Attached person user-273@plc.org to slice onehc_slice272
+01:== Attached person user-274@plc.org to slice onehc_slice272
+01:== created slice 274 - max nodes=350
+01:== Attached person user-273@plc.org to slice onehd_slice273
+01:== Attached person user-274@plc.org to slice onehd_slice273
+01:== Attached person user-275@plc.org to slice onehd_slice273
+01:== created slice 275 - max nodes=350
+01:== Attached person user-274@plc.org to slice onehe_slice274
+01:== Attached person user-275@plc.org to slice onehe_slice274
+01:== Attached person user-276@plc.org to slice onehe_slice274
+01:== created slice 276 - max nodes=350
+01:== Attached person user-275@plc.org to slice onehf_slice275
+01:== Attached person user-276@plc.org to slice onehf_slice275
+01:== Attached person user-277@plc.org to slice onehf_slice275
+01:== created slice 277 - max nodes=350
+01:== Attached person user-276@plc.org to slice onehg_slice276
+01:== Attached person user-277@plc.org to slice onehg_slice276
+01:== Attached person user-278@plc.org to slice onehg_slice276
+01:== created slice 278 - max nodes=350
+01:== Attached person user-277@plc.org to slice onehh_slice277
+01:== Attached person user-278@plc.org to slice onehh_slice277
+01:== Attached person user-279@plc.org to slice onehh_slice277
+01:== created slice 279 - max nodes=350
+01:== Attached person user-278@plc.org to slice onehi_slice278
+01:== Attached person user-279@plc.org to slice onehi_slice278
+01:== Attached person user-280@plc.org to slice onehi_slice278
+01:== created slice 280 - max nodes=350
+01:== Attached person user-279@plc.org to slice onehj_slice279
+01:== Attached person user-280@plc.org to slice onehj_slice279
+01:== Attached person user-281@plc.org to slice onehj_slice279
+01:== created slice 281 - max nodes=350
+01:== Attached person user-280@plc.org to slice oneia_slice280
+01:== Attached person user-281@plc.org to slice oneia_slice280
+01:== Attached person user-282@plc.org to slice oneia_slice280
+01:== created slice 282 - max nodes=350
+01:== Attached person user-281@plc.org to slice oneib_slice281
+01:== Attached person user-282@plc.org to slice oneib_slice281
+01:== Attached person user-283@plc.org to slice oneib_slice281
+01:== created slice 283 - max nodes=350
+01:== Attached person user-282@plc.org to slice oneic_slice282
+01:== Attached person user-283@plc.org to slice oneic_slice282
+01:== Attached person user-284@plc.org to slice oneic_slice282
+01:== created slice 284 - max nodes=350
+01:== Attached person user-283@plc.org to slice oneid_slice283
+01:== Attached person user-284@plc.org to slice oneid_slice283
+01:== Attached person user-285@plc.org to slice oneid_slice283
+01:== created slice 285 - max nodes=350
+01:== Attached person user-284@plc.org to slice oneie_slice284
+01:== Attached person user-285@plc.org to slice oneie_slice284
+01:== Attached person user-286@plc.org to slice oneie_slice284
+01:== created slice 286 - max nodes=350
+01:== Attached person user-285@plc.org to slice oneif_slice285
+01:== Attached person user-286@plc.org to slice oneif_slice285
+01:== Attached person user-287@plc.org to slice oneif_slice285
+01:== created slice 287 - max nodes=350
+01:== Attached person user-286@plc.org to slice oneig_slice286
+01:== Attached person user-287@plc.org to slice oneig_slice286
+01:== Attached person user-288@plc.org to slice oneig_slice286
+01:== created slice 288 - max nodes=350
+01:== Attached person user-287@plc.org to slice oneih_slice287
+01:== Attached person user-288@plc.org to slice oneih_slice287
+01:== Attached person user-289@plc.org to slice oneih_slice287
+01:== created slice 289 - max nodes=350
+01:== Attached person user-288@plc.org to slice oneii_slice288
+01:== Attached person user-289@plc.org to slice oneii_slice288
+01:== Attached person user-290@plc.org to slice oneii_slice288
+01:== created slice 290 - max nodes=350
+01:== Attached person user-289@plc.org to slice oneij_slice289
+01:== Attached person user-290@plc.org to slice oneij_slice289
+01:== Attached person user-291@plc.org to slice oneij_slice289
+01:== created slice 291 - max nodes=350
+01:== Attached person user-290@plc.org to slice oneja_slice290
+01:== Attached person user-291@plc.org to slice oneja_slice290
+01:== Attached person user-292@plc.org to slice oneja_slice290
+01:== created slice 292 - max nodes=350
+01:== Attached person user-291@plc.org to slice onejb_slice291
+01:== Attached person user-292@plc.org to slice onejb_slice291
+01:== Attached person user-293@plc.org to slice onejb_slice291
+01:== created slice 293 - max nodes=350
+01:== Attached person user-292@plc.org to slice onejc_slice292
+01:== Attached person user-293@plc.org to slice onejc_slice292
+01:== Attached person user-294@plc.org to slice onejc_slice292
+01:== created slice 294 - max nodes=350
+01:== Attached person user-293@plc.org to slice onejd_slice293
+01:== Attached person user-294@plc.org to slice onejd_slice293
+01:== Attached person user-295@plc.org to slice onejd_slice293
+01:== created slice 295 - max nodes=350
+01:== Attached person user-294@plc.org to slice oneje_slice294
+01:== Attached person user-295@plc.org to slice oneje_slice294
+01:== Attached person user-296@plc.org to slice oneje_slice294
+01:== created slice 296 - max nodes=350
+01:== Attached person user-295@plc.org to slice onejf_slice295
+01:== Attached person user-296@plc.org to slice onejf_slice295
+01:== Attached person user-297@plc.org to slice onejf_slice295
+01:== created slice 297 - max nodes=350
+01:== Attached person user-296@plc.org to slice onejg_slice296
+01:== Attached person user-297@plc.org to slice onejg_slice296
+01:== Attached person user-298@plc.org to slice onejg_slice296
+01:== created slice 298 - max nodes=350
+01:== Attached person user-297@plc.org to slice onejh_slice297
+01:== Attached person user-298@plc.org to slice onejh_slice297
+01:== Attached person user-299@plc.org to slice onejh_slice297
+01:== created slice 299 - max nodes=350
+01:== Attached person user-298@plc.org to slice oneji_slice298
+01:== Attached person user-299@plc.org to slice oneji_slice298
+01:== Attached person user-300@plc.org to slice oneji_slice298
+01:== created slice 300 - max nodes=350
+01:== Attached person user-299@plc.org to slice onejj_slice299
+01:== Attached person user-300@plc.org to slice onejj_slice299
+01:== Attached person user-301@plc.org to slice onejj_slice299
+01:== created slice 301 - max nodes=350
+01:== Attached person user-300@plc.org to slice onebaa_slice300
+01:== Attached person user-301@plc.org to slice onebaa_slice300
+01:== Attached person user-302@plc.org to slice onebaa_slice300
+01:== created slice 302 - max nodes=350
+01:== Attached person user-301@plc.org to slice onebab_slice301
+01:== Attached person user-302@plc.org to slice onebab_slice301
+01:== Attached person user-303@plc.org to slice onebab_slice301
+01:== created slice 303 - max nodes=350
+01:== Attached person user-302@plc.org to slice onebac_slice302
+01:== Attached person user-303@plc.org to slice onebac_slice302
+01:== Attached person user-304@plc.org to slice onebac_slice302
+01:== created slice 304 - max nodes=350
+01:== Attached person user-303@plc.org to slice onebad_slice303
+01:== Attached person user-304@plc.org to slice onebad_slice303
+01:== Attached person user-305@plc.org to slice onebad_slice303
+01:== created slice 305 - max nodes=350
+01:== Attached person user-304@plc.org to slice onebae_slice304
+01:== Attached person user-305@plc.org to slice onebae_slice304
+01:== Attached person user-306@plc.org to slice onebae_slice304
+01:== created slice 306 - max nodes=350
+01:== Attached person user-305@plc.org to slice onebaf_slice305
+01:== Attached person user-306@plc.org to slice onebaf_slice305
+01:== Attached person user-307@plc.org to slice onebaf_slice305
+01:== created slice 307 - max nodes=350
+01:== Attached person user-306@plc.org to slice onebag_slice306
+01:== Attached person user-307@plc.org to slice onebag_slice306
+01:== Attached person user-308@plc.org to slice onebag_slice306
+01:== created slice 308 - max nodes=350
+01:== Attached person user-307@plc.org to slice onebah_slice307
+01:== Attached person user-308@plc.org to slice onebah_slice307
+01:== Attached person user-309@plc.org to slice onebah_slice307
+01:== created slice 309 - max nodes=350
+01:== Attached person user-308@plc.org to slice onebai_slice308
+01:== Attached person user-309@plc.org to slice onebai_slice308
+01:== Attached person user-310@plc.org to slice onebai_slice308
+01:== created slice 310 - max nodes=350
+01:== Attached person user-309@plc.org to slice onebaj_slice309
+01:== Attached person user-310@plc.org to slice onebaj_slice309
+01:== Attached person user-311@plc.org to slice onebaj_slice309
+01:== created slice 311 - max nodes=350
+01:== Attached person user-310@plc.org to slice onebba_slice310
+01:== Attached person user-311@plc.org to slice onebba_slice310
+01:== Attached person user-312@plc.org to slice onebba_slice310
+01:== created slice 312 - max nodes=350
+01:== Attached person user-311@plc.org to slice onebbb_slice311
+01:== Attached person user-312@plc.org to slice onebbb_slice311
+01:== Attached person user-313@plc.org to slice onebbb_slice311
+01:== created slice 313 - max nodes=350
+01:== Attached person user-312@plc.org to slice onebbc_slice312
+01:== Attached person user-313@plc.org to slice onebbc_slice312
+01:== Attached person user-314@plc.org to slice onebbc_slice312
+01:== created slice 314 - max nodes=350
+01:== Attached person user-313@plc.org to slice onebbd_slice313
+01:== Attached person user-314@plc.org to slice onebbd_slice313
+01:== Attached person user-315@plc.org to slice onebbd_slice313
+01:== created slice 315 - max nodes=350
+01:== Attached person user-314@plc.org to slice onebbe_slice314
+01:== Attached person user-315@plc.org to slice onebbe_slice314
+01:== Attached person user-316@plc.org to slice onebbe_slice314
+01:== created slice 316 - max nodes=350
+01:== Attached person user-315@plc.org to slice onebbf_slice315
+01:== Attached person user-316@plc.org to slice onebbf_slice315
+01:== Attached person user-317@plc.org to slice onebbf_slice315
+01:== created slice 317 - max nodes=350
+01:== Attached person user-316@plc.org to slice onebbg_slice316
+01:== Attached person user-317@plc.org to slice onebbg_slice316
+01:== Attached person user-318@plc.org to slice onebbg_slice316
+01:== created slice 318 - max nodes=350
+01:== Attached person user-317@plc.org to slice onebbh_slice317
+01:== Attached person user-318@plc.org to slice onebbh_slice317
+01:== Attached person user-319@plc.org to slice onebbh_slice317
+01:== created slice 319 - max nodes=350
+01:== Attached person user-318@plc.org to slice onebbi_slice318
+01:== Attached person user-319@plc.org to slice onebbi_slice318
+01:== Attached person user-320@plc.org to slice onebbi_slice318
+01:== created slice 320 - max nodes=350
+01:== Attached person user-319@plc.org to slice onebbj_slice319
+01:== Attached person user-320@plc.org to slice onebbj_slice319
+01:== Attached person user-321@plc.org to slice onebbj_slice319
+01:== created slice 321 - max nodes=350
+01:== Attached person user-320@plc.org to slice onebca_slice320
+01:== Attached person user-321@plc.org to slice onebca_slice320
+01:== Attached person user-322@plc.org to slice onebca_slice320
+01:== created slice 322 - max nodes=350
+01:== Attached person user-321@plc.org to slice onebcb_slice321
+01:== Attached person user-322@plc.org to slice onebcb_slice321
+01:== Attached person user-323@plc.org to slice onebcb_slice321
+01:== created slice 323 - max nodes=350
+01:== Attached person user-322@plc.org to slice onebcc_slice322
+01:== Attached person user-323@plc.org to slice onebcc_slice322
+01:== Attached person user-324@plc.org to slice onebcc_slice322
+01:== created slice 324 - max nodes=350
+01:== Attached person user-323@plc.org to slice onebcd_slice323
+01:== Attached person user-324@plc.org to slice onebcd_slice323
+01:== Attached person user-325@plc.org to slice onebcd_slice323
+01:== created slice 325 - max nodes=350
+01:== Attached person user-324@plc.org to slice onebce_slice324
+01:== Attached person user-325@plc.org to slice onebce_slice324
+01:== Attached person user-326@plc.org to slice onebce_slice324
+01:== created slice 326 - max nodes=350
+01:== Attached person user-325@plc.org to slice onebcf_slice325
+01:== Attached person user-326@plc.org to slice onebcf_slice325
+01:== Attached person user-327@plc.org to slice onebcf_slice325
+01:== created slice 327 - max nodes=350
+01:== Attached person user-326@plc.org to slice onebcg_slice326
+01:== Attached person user-327@plc.org to slice onebcg_slice326
+01:== Attached person user-328@plc.org to slice onebcg_slice326
+01:== created slice 328 - max nodes=350
+01:== Attached person user-327@plc.org to slice onebch_slice327
+01:== Attached person user-328@plc.org to slice onebch_slice327
+01:== Attached person user-329@plc.org to slice onebch_slice327
+01:== created slice 329 - max nodes=350
+01:== Attached person user-328@plc.org to slice onebci_slice328
+01:== Attached person user-329@plc.org to slice onebci_slice328
+01:== Attached person user-330@plc.org to slice onebci_slice328
+01:== created slice 330 - max nodes=350
+01:== Attached person user-329@plc.org to slice onebcj_slice329
+01:== Attached person user-330@plc.org to slice onebcj_slice329
+01:== Attached person user-331@plc.org to slice onebcj_slice329
+01:== created slice 331 - max nodes=350
+01:== Attached person user-330@plc.org to slice onebda_slice330
+01:== Attached person user-331@plc.org to slice onebda_slice330
+01:== Attached person user-332@plc.org to slice onebda_slice330
+01:== created slice 332 - max nodes=350
+01:== Attached person user-331@plc.org to slice onebdb_slice331
+01:== Attached person user-332@plc.org to slice onebdb_slice331
+01:== Attached person user-333@plc.org to slice onebdb_slice331
+01:== created slice 333 - max nodes=350
+01:== Attached person user-332@plc.org to slice onebdc_slice332
+01:== Attached person user-333@plc.org to slice onebdc_slice332
+01:== Attached person user-334@plc.org to slice onebdc_slice332
+01:== created slice 334 - max nodes=350
+01:== Attached person user-333@plc.org to slice onebdd_slice333
+01:== Attached person user-334@plc.org to slice onebdd_slice333
+01:== Attached person user-335@plc.org to slice onebdd_slice333
+01:== created slice 335 - max nodes=350
+01:== Attached person user-334@plc.org to slice onebde_slice334
+01:== Attached person user-335@plc.org to slice onebde_slice334
+01:== Attached person user-336@plc.org to slice onebde_slice334
+01:== created slice 336 - max nodes=350
+01:== Attached person user-335@plc.org to slice onebdf_slice335
+01:== Attached person user-336@plc.org to slice onebdf_slice335
+01:== Attached person user-337@plc.org to slice onebdf_slice335
+01:== created slice 337 - max nodes=350
+01:== Attached person user-336@plc.org to slice onebdg_slice336
+01:== Attached person user-337@plc.org to slice onebdg_slice336
+01:== Attached person user-338@plc.org to slice onebdg_slice336
+01:== created slice 338 - max nodes=350
+01:== Attached person user-337@plc.org to slice onebdh_slice337
+01:== Attached person user-338@plc.org to slice onebdh_slice337
+01:== Attached person user-339@plc.org to slice onebdh_slice337
+01:== created slice 339 - max nodes=350
+01:== Attached person user-338@plc.org to slice onebdi_slice338
+01:== Attached person user-339@plc.org to slice onebdi_slice338
+01:== Attached person user-340@plc.org to slice onebdi_slice338
+01:== created slice 340 - max nodes=350
+01:== Attached person user-339@plc.org to slice onebdj_slice339
+01:== Attached person user-340@plc.org to slice onebdj_slice339
+01:== Attached person user-341@plc.org to slice onebdj_slice339
+01:== created slice 341 - max nodes=350
+01:== Attached person user-340@plc.org to slice onebea_slice340
+01:== Attached person user-341@plc.org to slice onebea_slice340
+01:== Attached person user-342@plc.org to slice onebea_slice340
+01:== created slice 342 - max nodes=350
+01:== Attached person user-341@plc.org to slice onebeb_slice341
+01:== Attached person user-342@plc.org to slice onebeb_slice341
+01:== Attached person user-343@plc.org to slice onebeb_slice341
+01:== created slice 343 - max nodes=350
+01:== Attached person user-342@plc.org to slice onebec_slice342
+01:== Attached person user-343@plc.org to slice onebec_slice342
+01:== Attached person user-344@plc.org to slice onebec_slice342
+01:== created slice 344 - max nodes=350
+01:== Attached person user-343@plc.org to slice onebed_slice343
+01:== Attached person user-344@plc.org to slice onebed_slice343
+01:== Attached person user-345@plc.org to slice onebed_slice343
+01:== created slice 345 - max nodes=350
+01:== Attached person user-344@plc.org to slice onebee_slice344
+01:== Attached person user-345@plc.org to slice onebee_slice344
+01:== Attached person user-346@plc.org to slice onebee_slice344
+01:== created slice 346 - max nodes=350
+01:== Attached person user-345@plc.org to slice onebef_slice345
+01:== Attached person user-346@plc.org to slice onebef_slice345
+01:== Attached person user-347@plc.org to slice onebef_slice345
+01:== created slice 347 - max nodes=350
+01:== Attached person user-346@plc.org to slice onebeg_slice346
+01:== Attached person user-347@plc.org to slice onebeg_slice346
+01:== Attached person user-348@plc.org to slice onebeg_slice346
+01:== created slice 348 - max nodes=350
+01:== Attached person user-347@plc.org to slice onebeh_slice347
+01:== Attached person user-348@plc.org to slice onebeh_slice347
+01:== Attached person user-349@plc.org to slice onebeh_slice347
+01:== created slice 349 - max nodes=350
+01:== Attached person user-348@plc.org to slice onebei_slice348
+01:== Attached person user-349@plc.org to slice onebei_slice348
+01:== Attached person user-350@plc.org to slice onebei_slice348
+01:== created slice 350 - max nodes=350
+01:== Attached person user-349@plc.org to slice onebej_slice349
+01:== Attached person user-350@plc.org to slice onebej_slice349
+01:== Attached person user-351@plc.org to slice onebej_slice349
+01:== created slice 351 - max nodes=350
+01:== Attached person user-350@plc.org to slice onebfa_slice350
+01:== Attached person user-351@plc.org to slice onebfa_slice350
+01:== Attached person user-352@plc.org to slice onebfa_slice350
+01:== created slice 352 - max nodes=350
+01:== Attached person user-351@plc.org to slice onebfb_slice351
+01:== Attached person user-352@plc.org to slice onebfb_slice351
+01:== Attached person user-353@plc.org to slice onebfb_slice351
+01:== created slice 353 - max nodes=350
+01:== Attached person user-352@plc.org to slice onebfc_slice352
+01:== Attached person user-353@plc.org to slice onebfc_slice352
+01:== Attached person user-354@plc.org to slice onebfc_slice352
+01:== created slice 354 - max nodes=350
+01:== Attached person user-353@plc.org to slice onebfd_slice353
+01:== Attached person user-354@plc.org to slice onebfd_slice353
+01:== Attached person user-355@plc.org to slice onebfd_slice353
+01:== created slice 355 - max nodes=350
+01:== Attached person user-354@plc.org to slice onebfe_slice354
+01:== Attached person user-355@plc.org to slice onebfe_slice354
+01:== Attached person user-356@plc.org to slice onebfe_slice354
+01:== created slice 356 - max nodes=350
+01:== Attached person user-355@plc.org to slice onebff_slice355
+01:== Attached person user-356@plc.org to slice onebff_slice355
+01:== Attached person user-357@plc.org to slice onebff_slice355
+01:== created slice 357 - max nodes=350
+01:== Attached person user-356@plc.org to slice onebfg_slice356
+01:== Attached person user-357@plc.org to slice onebfg_slice356
+01:== Attached person user-358@plc.org to slice onebfg_slice356
+01:== created slice 358 - max nodes=350
+01:== Attached person user-357@plc.org to slice onebfh_slice357
+01:== Attached person user-358@plc.org to slice onebfh_slice357
+01:== Attached person user-359@plc.org to slice onebfh_slice357
+01:== created slice 359 - max nodes=350
+01:== Attached person user-358@plc.org to slice onebfi_slice358
+01:== Attached person user-359@plc.org to slice onebfi_slice358
+01:== Attached person user-360@plc.org to slice onebfi_slice358
+01:== created slice 360 - max nodes=350
+01:== Attached person user-359@plc.org to slice onebfj_slice359
+01:== Attached person user-360@plc.org to slice onebfj_slice359
+01:== Attached person user-361@plc.org to slice onebfj_slice359
+01:== created slice 361 - max nodes=350
+01:== Attached person user-360@plc.org to slice onebga_slice360
+01:== Attached person user-361@plc.org to slice onebga_slice360
+01:== Attached person user-362@plc.org to slice onebga_slice360
+01:== created slice 362 - max nodes=350
+01:== Attached person user-361@plc.org to slice onebgb_slice361
+01:== Attached person user-362@plc.org to slice onebgb_slice361
+01:== Attached person user-363@plc.org to slice onebgb_slice361
+01:== created slice 363 - max nodes=350
+01:== Attached person user-362@plc.org to slice onebgc_slice362
+01:== Attached person user-363@plc.org to slice onebgc_slice362
+01:== Attached person user-364@plc.org to slice onebgc_slice362
+01:== created slice 364 - max nodes=350
+01:== Attached person user-363@plc.org to slice onebgd_slice363
+01:== Attached person user-364@plc.org to slice onebgd_slice363
+01:== Attached person user-365@plc.org to slice onebgd_slice363
+01:== created slice 365 - max nodes=350
+01:== Attached person user-364@plc.org to slice onebge_slice364
+01:== Attached person user-365@plc.org to slice onebge_slice364
+01:== Attached person user-366@plc.org to slice onebge_slice364
+01:== created slice 366 - max nodes=350
+01:== Attached person user-365@plc.org to slice onebgf_slice365
+01:== Attached person user-366@plc.org to slice onebgf_slice365
+01:== Attached person user-367@plc.org to slice onebgf_slice365
+01:== created slice 367 - max nodes=350
+01:== Attached person user-366@plc.org to slice onebgg_slice366
+01:== Attached person user-367@plc.org to slice onebgg_slice366
+01:== Attached person user-368@plc.org to slice onebgg_slice366
+01:== created slice 368 - max nodes=350
+01:== Attached person user-367@plc.org to slice onebgh_slice367
+01:== Attached person user-368@plc.org to slice onebgh_slice367
+01:== Attached person user-369@plc.org to slice onebgh_slice367
+01:== created slice 369 - max nodes=350
+01:== Attached person user-368@plc.org to slice onebgi_slice368
+01:== Attached person user-369@plc.org to slice onebgi_slice368
+01:== Attached person user-370@plc.org to slice onebgi_slice368
+01:== created slice 370 - max nodes=350
+01:== Attached person user-369@plc.org to slice onebgj_slice369
+01:== Attached person user-370@plc.org to slice onebgj_slice369
+01:== Attached person user-371@plc.org to slice onebgj_slice369
+01:== created slice 371 - max nodes=350
+01:== Attached person user-370@plc.org to slice onebha_slice370
+01:== Attached person user-371@plc.org to slice onebha_slice370
+01:== Attached person user-372@plc.org to slice onebha_slice370
+01:== created slice 372 - max nodes=350
+01:== Attached person user-371@plc.org to slice onebhb_slice371
+01:== Attached person user-372@plc.org to slice onebhb_slice371
+01:== Attached person user-373@plc.org to slice onebhb_slice371
+01:== created slice 373 - max nodes=350
+01:== Attached person user-372@plc.org to slice onebhc_slice372
+01:== Attached person user-373@plc.org to slice onebhc_slice372
+01:== Attached person user-374@plc.org to slice onebhc_slice372
+01:== created slice 374 - max nodes=350
+01:== Attached person user-373@plc.org to slice onebhd_slice373
+01:== Attached person user-374@plc.org to slice onebhd_slice373
+01:== Attached person user-375@plc.org to slice onebhd_slice373
+01:== created slice 375 - max nodes=350
+01:== Attached person user-374@plc.org to slice onebhe_slice374
+01:== Attached person user-375@plc.org to slice onebhe_slice374
+01:== Attached person user-376@plc.org to slice onebhe_slice374
+01:== created slice 376 - max nodes=350
+01:== Attached person user-375@plc.org to slice onebhf_slice375
+01:== Attached person user-376@plc.org to slice onebhf_slice375
+01:== Attached person user-377@plc.org to slice onebhf_slice375
+01:== created slice 377 - max nodes=350
+01:== Attached person user-376@plc.org to slice onebhg_slice376
+01:== Attached person user-377@plc.org to slice onebhg_slice376
+01:== Attached person user-378@plc.org to slice onebhg_slice376
+01:== created slice 378 - max nodes=350
+01:== Attached person user-377@plc.org to slice onebhh_slice377
+01:== Attached person user-378@plc.org to slice onebhh_slice377
+01:== Attached person user-379@plc.org to slice onebhh_slice377
+01:== created slice 379 - max nodes=350
+01:== Attached person user-378@plc.org to slice onebhi_slice378
+01:== Attached person user-379@plc.org to slice onebhi_slice378
+01:== Attached person user-380@plc.org to slice onebhi_slice378
+01:== created slice 380 - max nodes=350
+01:== Attached person user-379@plc.org to slice onebhj_slice379
+01:== Attached person user-380@plc.org to slice onebhj_slice379
+01:== Attached person user-381@plc.org to slice onebhj_slice379
+01:== created slice 381 - max nodes=350
+01:== Attached person user-380@plc.org to slice onebia_slice380
+01:== Attached person user-381@plc.org to slice onebia_slice380
+01:== Attached person user-382@plc.org to slice onebia_slice380
+01:== created slice 382 - max nodes=350
+01:== Attached person user-381@plc.org to slice onebib_slice381
+01:== Attached person user-382@plc.org to slice onebib_slice381
+01:== Attached person user-383@plc.org to slice onebib_slice381
+01:== created slice 383 - max nodes=350
+01:== Attached person user-382@plc.org to slice onebic_slice382
+01:== Attached person user-383@plc.org to slice onebic_slice382
+01:== Attached person user-384@plc.org to slice onebic_slice382
+01:== created slice 384 - max nodes=350
+01:== Attached person user-383@plc.org to slice onebid_slice383
+01:== Attached person user-384@plc.org to slice onebid_slice383
+01:== Attached person user-385@plc.org to slice onebid_slice383
+01:== created slice 385 - max nodes=350
+01:== Attached person user-384@plc.org to slice onebie_slice384
+01:== Attached person user-385@plc.org to slice onebie_slice384
+01:== Attached person user-386@plc.org to slice onebie_slice384
+01:== created slice 386 - max nodes=350
+01:== Attached person user-385@plc.org to slice onebif_slice385
+01:== Attached person user-386@plc.org to slice onebif_slice385
+01:== Attached person user-387@plc.org to slice onebif_slice385
+01:== created slice 387 - max nodes=350
+01:== Attached person user-386@plc.org to slice onebig_slice386
+01:== Attached person user-387@plc.org to slice onebig_slice386
+01:== Attached person user-388@plc.org to slice onebig_slice386
+01:== created slice 388 - max nodes=350
+01:== Attached person user-387@plc.org to slice onebih_slice387
+01:== Attached person user-388@plc.org to slice onebih_slice387
+01:== Attached person user-389@plc.org to slice onebih_slice387
+01:== created slice 389 - max nodes=350
+01:== Attached person user-388@plc.org to slice onebii_slice388
+01:== Attached person user-389@plc.org to slice onebii_slice388
+01:== Attached person user-390@plc.org to slice onebii_slice388
+01:== created slice 390 - max nodes=350
+01:== Attached person user-389@plc.org to slice onebij_slice389
+01:== Attached person user-390@plc.org to slice onebij_slice389
+01:== Attached person user-391@plc.org to slice onebij_slice389
+01:== created slice 391 - max nodes=350
+01:== Attached person user-390@plc.org to slice onebja_slice390
+01:== Attached person user-391@plc.org to slice onebja_slice390
+01:== Attached person user-392@plc.org to slice onebja_slice390
+01:== created slice 392 - max nodes=350
+01:== Attached person user-391@plc.org to slice onebjb_slice391
+01:== Attached person user-392@plc.org to slice onebjb_slice391
+01:== Attached person user-393@plc.org to slice onebjb_slice391
+01:== created slice 393 - max nodes=350
+01:== Attached person user-392@plc.org to slice onebjc_slice392
+01:== Attached person user-393@plc.org to slice onebjc_slice392
+01:== Attached person user-394@plc.org to slice onebjc_slice392
+01:== created slice 394 - max nodes=350
+01:== Attached person user-393@plc.org to slice onebjd_slice393
+01:== Attached person user-394@plc.org to slice onebjd_slice393
+01:== Attached person user-395@plc.org to slice onebjd_slice393
+01:== created slice 395 - max nodes=350
+01:== Attached person user-394@plc.org to slice onebje_slice394
+01:== Attached person user-395@plc.org to slice onebje_slice394
+01:== Attached person user-396@plc.org to slice onebje_slice394
+01:== created slice 396 - max nodes=350
+01:== Attached person user-395@plc.org to slice onebjf_slice395
+01:== Attached person user-396@plc.org to slice onebjf_slice395
+01:== Attached person user-397@plc.org to slice onebjf_slice395
+01:== created slice 397 - max nodes=350
+01:== Attached person user-396@plc.org to slice onebjg_slice396
+01:== Attached person user-397@plc.org to slice onebjg_slice396
+01:== Attached person user-398@plc.org to slice onebjg_slice396
+01:== created slice 398 - max nodes=350
+01:== Attached person user-397@plc.org to slice onebjh_slice397
+01:== Attached person user-398@plc.org to slice onebjh_slice397
+01:== Attached person user-399@plc.org to slice onebjh_slice397
+01:== created slice 399 - max nodes=350
+01:== Attached person user-398@plc.org to slice onebji_slice398
+01:== Attached person user-399@plc.org to slice onebji_slice398
+01:== Attached person user-400@plc.org to slice onebji_slice398
+01:== created slice 400 - max nodes=350
+01:== Attached person user-399@plc.org to slice onebjj_slice399
+01:== Attached person user-400@plc.org to slice onebjj_slice399
+01:== Attached person user-401@plc.org to slice onebjj_slice399
+01:== created slice 401 - max nodes=350
+01:== Attached person user-400@plc.org to slice onecaa_slice400
+01:== Attached person user-401@plc.org to slice onecaa_slice400
+01:== Attached person user-402@plc.org to slice onecaa_slice400
+01:== created slice 402 - max nodes=350
+01:== Attached person user-401@plc.org to slice oneb_slice401
+01:== Attached person user-402@plc.org to slice oneb_slice401
+01:== Attached person user-403@plc.org to slice oneb_slice401
+01:== created slice 403 - max nodes=350
+01:== Attached person user-402@plc.org to slice onec_slice402
+01:== Attached person user-403@plc.org to slice onec_slice402
+01:== Attached person user-404@plc.org to slice onec_slice402
+01:== created slice 404 - max nodes=350
+01:== Attached person user-403@plc.org to slice oned_slice403
+01:== Attached person user-404@plc.org to slice oned_slice403
+01:== Attached person user-405@plc.org to slice oned_slice403
+01:== created slice 405 - max nodes=350
+01:== Attached person user-404@plc.org to slice onee_slice404
+01:== Attached person user-405@plc.org to slice onee_slice404
+01:== Attached person user-406@plc.org to slice onee_slice404
+01:== created slice 406 - max nodes=350
+01:== Attached person user-405@plc.org to slice onef_slice405
+01:== Attached person user-406@plc.org to slice onef_slice405
+01:== Attached person user-407@plc.org to slice onef_slice405
+01:== created slice 407 - max nodes=350
+01:== Attached person user-406@plc.org to slice oneg_slice406
+01:== Attached person user-407@plc.org to slice oneg_slice406
+01:== Attached person user-408@plc.org to slice oneg_slice406
+01:== created slice 408 - max nodes=350
+01:== Attached person user-407@plc.org to slice oneh_slice407
+01:== Attached person user-408@plc.org to slice oneh_slice407
+01:== Attached person user-409@plc.org to slice oneh_slice407
+01:== created slice 409 - max nodes=350
+01:== Attached person user-408@plc.org to slice onei_slice408
+01:== Attached person user-409@plc.org to slice onei_slice408
+01:== Attached person user-410@plc.org to slice onei_slice408
+01:== created slice 410 - max nodes=350
+01:== Attached person user-409@plc.org to slice onej_slice409
+01:== Attached person user-410@plc.org to slice onej_slice409
+01:== Attached person user-411@plc.org to slice onej_slice409
+01:== created slice 411 - max nodes=350
+01:== Attached person user-410@plc.org to slice oneba_slice410
+01:== Attached person user-411@plc.org to slice oneba_slice410
+01:== Attached person user-412@plc.org to slice oneba_slice410
+01:== created slice 412 - max nodes=350
+01:== Attached person user-411@plc.org to slice onebb_slice411
+01:== Attached person user-412@plc.org to slice onebb_slice411
+01:== Attached person user-413@plc.org to slice onebb_slice411
+01:== created slice 413 - max nodes=350
+01:== Attached person user-412@plc.org to slice onebc_slice412
+01:== Attached person user-413@plc.org to slice onebc_slice412
+01:== Attached person user-414@plc.org to slice onebc_slice412
+01:== created slice 414 - max nodes=350
+01:== Attached person user-413@plc.org to slice onebd_slice413
+01:== Attached person user-414@plc.org to slice onebd_slice413
+01:== Attached person user-415@plc.org to slice onebd_slice413
+01:== created slice 415 - max nodes=350
+01:== Attached person user-414@plc.org to slice onebe_slice414
+01:== Attached person user-415@plc.org to slice onebe_slice414
+01:== Attached person user-416@plc.org to slice onebe_slice414
+01:== created slice 416 - max nodes=350
+01:== Attached person user-415@plc.org to slice onebf_slice415
+01:== Attached person user-416@plc.org to slice onebf_slice415
+01:== Attached person user-417@plc.org to slice onebf_slice415
+01:== created slice 417 - max nodes=350
+01:== Attached person user-416@plc.org to slice onebg_slice416
+01:== Attached person user-417@plc.org to slice onebg_slice416
+01:== Attached person user-418@plc.org to slice onebg_slice416
+01:== created slice 418 - max nodes=350
+01:== Attached person user-417@plc.org to slice onebh_slice417
+01:== Attached person user-418@plc.org to slice onebh_slice417
+01:== Attached person user-419@plc.org to slice onebh_slice417
+01:== created slice 419 - max nodes=350
+01:== Attached person user-418@plc.org to slice onebi_slice418
+01:== Attached person user-419@plc.org to slice onebi_slice418
+01:== Attached person user-420@plc.org to slice onebi_slice418
+01:== created slice 420 - max nodes=350
+01:== Attached person user-419@plc.org to slice onebj_slice419
+01:== Attached person user-420@plc.org to slice onebj_slice419
+01:== Attached person user-421@plc.org to slice onebj_slice419
+01:== created slice 421 - max nodes=350
+01:== Attached person user-420@plc.org to slice oneca_slice420
+01:== Attached person user-421@plc.org to slice oneca_slice420
+01:== Attached person user-422@plc.org to slice oneca_slice420
+01:== created slice 422 - max nodes=350
+01:== Attached person user-421@plc.org to slice onecb_slice421
+01:== Attached person user-422@plc.org to slice onecb_slice421
+01:== Attached person user-423@plc.org to slice onecb_slice421
+01:== created slice 423 - max nodes=350
+01:== Attached person user-422@plc.org to slice onecc_slice422
+01:== Attached person user-423@plc.org to slice onecc_slice422
+01:== Attached person user-424@plc.org to slice onecc_slice422
+01:== created slice 424 - max nodes=350
+01:== Attached person user-423@plc.org to slice onecd_slice423
+01:== Attached person user-424@plc.org to slice onecd_slice423
+01:== Attached person user-425@plc.org to slice onecd_slice423
+01:== created slice 425 - max nodes=350
+01:== Attached person user-424@plc.org to slice onece_slice424
+01:== Attached person user-425@plc.org to slice onece_slice424
+01:== Attached person user-426@plc.org to slice onece_slice424
+01:== created slice 426 - max nodes=350
+01:== Attached person user-425@plc.org to slice onecf_slice425
+01:== Attached person user-426@plc.org to slice onecf_slice425
+01:== Attached person user-427@plc.org to slice onecf_slice425
+01:== created slice 427 - max nodes=350
+01:== Attached person user-426@plc.org to slice onecg_slice426
+01:== Attached person user-427@plc.org to slice onecg_slice426
+01:== Attached person user-428@plc.org to slice onecg_slice426
+01:== created slice 428 - max nodes=350
+01:== Attached person user-427@plc.org to slice onech_slice427
+01:== Attached person user-428@plc.org to slice onech_slice427
+01:== Attached person user-429@plc.org to slice onech_slice427
+01:== created slice 429 - max nodes=350
+01:== Attached person user-428@plc.org to slice oneci_slice428
+01:== Attached person user-429@plc.org to slice oneci_slice428
+01:== Attached person user-430@plc.org to slice oneci_slice428
+01:== created slice 430 - max nodes=350
+01:== Attached person user-429@plc.org to slice onecj_slice429
+01:== Attached person user-430@plc.org to slice onecj_slice429
+01:== Attached person user-431@plc.org to slice onecj_slice429
+01:== created slice 431 - max nodes=350
+01:== Attached person user-430@plc.org to slice oneda_slice430
+01:== Attached person user-431@plc.org to slice oneda_slice430
+01:== Attached person user-432@plc.org to slice oneda_slice430
+01:== created slice 432 - max nodes=350
+01:== Attached person user-431@plc.org to slice onedb_slice431
+01:== Attached person user-432@plc.org to slice onedb_slice431
+01:== Attached person user-433@plc.org to slice onedb_slice431
+01:== created slice 433 - max nodes=350
+01:== Attached person user-432@plc.org to slice onedc_slice432
+01:== Attached person user-433@plc.org to slice onedc_slice432
+01:== Attached person user-434@plc.org to slice onedc_slice432
+01:== created slice 434 - max nodes=350
+01:== Attached person user-433@plc.org to slice onedd_slice433
+01:== Attached person user-434@plc.org to slice onedd_slice433
+01:== Attached person user-435@plc.org to slice onedd_slice433
+01:== created slice 435 - max nodes=350
+01:== Attached person user-434@plc.org to slice onede_slice434
+01:== Attached person user-435@plc.org to slice onede_slice434
+01:== Attached person user-436@plc.org to slice onede_slice434
+01:== created slice 436 - max nodes=350
+01:== Attached person user-435@plc.org to slice onedf_slice435
+01:== Attached person user-436@plc.org to slice onedf_slice435
+01:== Attached person user-437@plc.org to slice onedf_slice435
+01:== created slice 437 - max nodes=350
+01:== Attached person user-436@plc.org to slice onedg_slice436
+01:== Attached person user-437@plc.org to slice onedg_slice436
+01:== Attached person user-438@plc.org to slice onedg_slice436
+01:== created slice 438 - max nodes=350
+01:== Attached person user-437@plc.org to slice onedh_slice437
+01:== Attached person user-438@plc.org to slice onedh_slice437
+01:== Attached person user-439@plc.org to slice onedh_slice437
+01:== created slice 439 - max nodes=350
+01:== Attached person user-438@plc.org to slice onedi_slice438
+01:== Attached person user-439@plc.org to slice onedi_slice438
+01:== Attached person user-440@plc.org to slice onedi_slice438
+01:== created slice 440 - max nodes=350
+01:== Attached person user-439@plc.org to slice onedj_slice439
+01:== Attached person user-440@plc.org to slice onedj_slice439
+01:== Attached person user-441@plc.org to slice onedj_slice439
+01:== created slice 441 - max nodes=350
+01:== Attached person user-440@plc.org to slice oneea_slice440
+01:== Attached person user-441@plc.org to slice oneea_slice440
+01:== Attached person user-442@plc.org to slice oneea_slice440
+01:== created slice 442 - max nodes=350
+01:== Attached person user-441@plc.org to slice oneeb_slice441
+01:== Attached person user-442@plc.org to slice oneeb_slice441
+01:== Attached person user-443@plc.org to slice oneeb_slice441
+01:== created slice 443 - max nodes=350
+01:== Attached person user-442@plc.org to slice oneec_slice442
+01:== Attached person user-443@plc.org to slice oneec_slice442
+01:== Attached person user-444@plc.org to slice oneec_slice442
+01:== created slice 444 - max nodes=350
+01:== Attached person user-443@plc.org to slice oneed_slice443
+01:== Attached person user-444@plc.org to slice oneed_slice443
+01:== Attached person user-445@plc.org to slice oneed_slice443
+01:== created slice 445 - max nodes=350
+01:== Attached person user-444@plc.org to slice oneee_slice444
+01:== Attached person user-445@plc.org to slice oneee_slice444
+01:== Attached person user-446@plc.org to slice oneee_slice444
+01:== created slice 446 - max nodes=350
+01:== Attached person user-445@plc.org to slice oneef_slice445
+01:== Attached person user-446@plc.org to slice oneef_slice445
+01:== Attached person user-447@plc.org to slice oneef_slice445
+01:== created slice 447 - max nodes=350
+01:== Attached person user-446@plc.org to slice oneeg_slice446
+01:== Attached person user-447@plc.org to slice oneeg_slice446
+01:== Attached person user-448@plc.org to slice oneeg_slice446
+01:== created slice 448 - max nodes=350
+01:== Attached person user-447@plc.org to slice oneeh_slice447
+01:== Attached person user-448@plc.org to slice oneeh_slice447
+01:== Attached person user-449@plc.org to slice oneeh_slice447
+01:== created slice 449 - max nodes=350
+01:== Attached person user-448@plc.org to slice oneei_slice448
+01:== Attached person user-449@plc.org to slice oneei_slice448
+01:== Attached person user-450@plc.org to slice oneei_slice448
+01:== created slice 450 - max nodes=350
+01:== Attached person user-449@plc.org to slice oneej_slice449
+01:== Attached person user-450@plc.org to slice oneej_slice449
+01:== Attached person user-451@plc.org to slice oneej_slice449
+01:== created slice 451 - max nodes=350
+01:== Attached person user-450@plc.org to slice onefa_slice450
+01:== Attached person user-451@plc.org to slice onefa_slice450
+01:== Attached person user-452@plc.org to slice onefa_slice450
+01:== created slice 452 - max nodes=350
+01:== Attached person user-451@plc.org to slice onefb_slice451
+01:== Attached person user-452@plc.org to slice onefb_slice451
+01:== Attached person user-453@plc.org to slice onefb_slice451
+01:== created slice 453 - max nodes=350
+01:== Attached person user-452@plc.org to slice onefc_slice452
+01:== Attached person user-453@plc.org to slice onefc_slice452
+01:== Attached person user-454@plc.org to slice onefc_slice452
+01:== created slice 454 - max nodes=350
+01:== Attached person user-453@plc.org to slice onefd_slice453
+01:== Attached person user-454@plc.org to slice onefd_slice453
+01:== Attached person user-455@plc.org to slice onefd_slice453
+01:== created slice 455 - max nodes=350
+01:== Attached person user-454@plc.org to slice onefe_slice454
+01:== Attached person user-455@plc.org to slice onefe_slice454
+01:== Attached person user-456@plc.org to slice onefe_slice454
+01:== created slice 456 - max nodes=350
+01:== Attached person user-455@plc.org to slice oneff_slice455
+01:== Attached person user-456@plc.org to slice oneff_slice455
+01:== Attached person user-457@plc.org to slice oneff_slice455
+01:== created slice 457 - max nodes=350
+01:== Attached person user-456@plc.org to slice onefg_slice456
+01:== Attached person user-457@plc.org to slice onefg_slice456
+01:== Attached person user-458@plc.org to slice onefg_slice456
+01:== created slice 458 - max nodes=350
+01:== Attached person user-457@plc.org to slice onefh_slice457
+01:== Attached person user-458@plc.org to slice onefh_slice457
+01:== Attached person user-459@plc.org to slice onefh_slice457
+01:== created slice 459 - max nodes=350
+01:== Attached person user-458@plc.org to slice onefi_slice458
+01:== Attached person user-459@plc.org to slice onefi_slice458
+01:== Attached person user-460@plc.org to slice onefi_slice458
+01:== created slice 460 - max nodes=350
+01:== Attached person user-459@plc.org to slice onefj_slice459
+01:== Attached person user-460@plc.org to slice onefj_slice459
+01:== Attached person user-461@plc.org to slice onefj_slice459
+01:== created slice 461 - max nodes=350
+01:== Attached person user-460@plc.org to slice onega_slice460
+01:== Attached person user-461@plc.org to slice onega_slice460
+01:== Attached person user-462@plc.org to slice onega_slice460
+01:== created slice 462 - max nodes=350
+01:== Attached person user-461@plc.org to slice onegb_slice461
+01:== Attached person user-462@plc.org to slice onegb_slice461
+01:== Attached person user-463@plc.org to slice onegb_slice461
+01:== created slice 463 - max nodes=350
+01:== Attached person user-462@plc.org to slice onegc_slice462
+01:== Attached person user-463@plc.org to slice onegc_slice462
+01:== Attached person user-464@plc.org to slice onegc_slice462
+01:== created slice 464 - max nodes=350
+01:== Attached person user-463@plc.org to slice onegd_slice463
+01:== Attached person user-464@plc.org to slice onegd_slice463
+01:== Attached person user-465@plc.org to slice onegd_slice463
+01:== created slice 465 - max nodes=350
+01:== Attached person user-464@plc.org to slice onege_slice464
+01:== Attached person user-465@plc.org to slice onege_slice464
+01:== Attached person user-466@plc.org to slice onege_slice464
+01:== created slice 466 - max nodes=350
+01:== Attached person user-465@plc.org to slice onegf_slice465
+01:== Attached person user-466@plc.org to slice onegf_slice465
+01:== Attached person user-467@plc.org to slice onegf_slice465
+01:== created slice 467 - max nodes=350
+01:== Attached person user-466@plc.org to slice onegg_slice466
+01:== Attached person user-467@plc.org to slice onegg_slice466
+01:== Attached person user-468@plc.org to slice onegg_slice466
+01:== created slice 468 - max nodes=350
+01:== Attached person user-467@plc.org to slice onegh_slice467
+01:== Attached person user-468@plc.org to slice onegh_slice467
+01:== Attached person user-469@plc.org to slice onegh_slice467
+01:== created slice 469 - max nodes=350
+01:== Attached person user-468@plc.org to slice onegi_slice468
+01:== Attached person user-469@plc.org to slice onegi_slice468
+01:== Attached person user-470@plc.org to slice onegi_slice468
+01:== created slice 470 - max nodes=350
+01:== Attached person user-469@plc.org to slice onegj_slice469
+01:== Attached person user-470@plc.org to slice onegj_slice469
+01:== Attached person user-471@plc.org to slice onegj_slice469
+01:== created slice 471 - max nodes=350
+01:== Attached person user-470@plc.org to slice oneha_slice470
+01:== Attached person user-471@plc.org to slice oneha_slice470
+01:== Attached person user-472@plc.org to slice oneha_slice470
+01:== created slice 472 - max nodes=350
+01:== Attached person user-471@plc.org to slice onehb_slice471
+01:== Attached person user-472@plc.org to slice onehb_slice471
+01:== Attached person user-473@plc.org to slice onehb_slice471
+01:== created slice 473 - max nodes=350
+01:== Attached person user-472@plc.org to slice onehc_slice472
+01:== Attached person user-473@plc.org to slice onehc_slice472
+01:== Attached person user-474@plc.org to slice onehc_slice472
+01:== created slice 474 - max nodes=350
+01:== Attached person user-473@plc.org to slice onehd_slice473
+01:== Attached person user-474@plc.org to slice onehd_slice473
+01:== Attached person user-475@plc.org to slice onehd_slice473
+01:== created slice 475 - max nodes=350
+01:== Attached person user-474@plc.org to slice onehe_slice474
+01:== Attached person user-475@plc.org to slice onehe_slice474
+01:== Attached person user-476@plc.org to slice onehe_slice474
+01:== created slice 476 - max nodes=350
+01:== Attached person user-475@plc.org to slice onehf_slice475
+01:== Attached person user-476@plc.org to slice onehf_slice475
+01:== Attached person user-477@plc.org to slice onehf_slice475
+01:== created slice 477 - max nodes=350
+01:== Attached person user-476@plc.org to slice onehg_slice476
+01:== Attached person user-477@plc.org to slice onehg_slice476
+01:== Attached person user-478@plc.org to slice onehg_slice476
+01:== created slice 478 - max nodes=350
+01:== Attached person user-477@plc.org to slice onehh_slice477
+01:== Attached person user-478@plc.org to slice onehh_slice477
+01:== Attached person user-479@plc.org to slice onehh_slice477
+01:== created slice 479 - max nodes=350
+01:== Attached person user-478@plc.org to slice onehi_slice478
+01:== Attached person user-479@plc.org to slice onehi_slice478
+01:== Attached person user-480@plc.org to slice onehi_slice478
+01:== created slice 480 - max nodes=350
+01:== Attached person user-479@plc.org to slice onehj_slice479
+01:== Attached person user-480@plc.org to slice onehj_slice479
+01:== Attached person user-481@plc.org to slice onehj_slice479
+01:== created slice 481 - max nodes=350
+01:== Attached person user-480@plc.org to slice oneia_slice480
+01:== Attached person user-481@plc.org to slice oneia_slice480
+01:== Attached person user-482@plc.org to slice oneia_slice480
+01:== created slice 482 - max nodes=350
+01:== Attached person user-481@plc.org to slice oneib_slice481
+01:== Attached person user-482@plc.org to slice oneib_slice481
+01:== Attached person user-483@plc.org to slice oneib_slice481
+01:== created slice 483 - max nodes=350
+01:== Attached person user-482@plc.org to slice oneic_slice482
+01:== Attached person user-483@plc.org to slice oneic_slice482
+01:== Attached person user-484@plc.org to slice oneic_slice482
+01:== created slice 484 - max nodes=350
+01:== Attached person user-483@plc.org to slice oneid_slice483
+01:== Attached person user-484@plc.org to slice oneid_slice483
+01:== Attached person user-485@plc.org to slice oneid_slice483
+01:== created slice 485 - max nodes=350
+01:== Attached person user-484@plc.org to slice oneie_slice484
+01:== Attached person user-485@plc.org to slice oneie_slice484
+01:== Attached person user-486@plc.org to slice oneie_slice484
+01:== created slice 486 - max nodes=350
+01:== Attached person user-485@plc.org to slice oneif_slice485
+01:== Attached person user-486@plc.org to slice oneif_slice485
+01:== Attached person user-487@plc.org to slice oneif_slice485
+01:== created slice 487 - max nodes=350
+01:== Attached person user-486@plc.org to slice oneig_slice486
+01:== Attached person user-487@plc.org to slice oneig_slice486
+01:== Attached person user-488@plc.org to slice oneig_slice486
+01:== created slice 488 - max nodes=350
+01:== Attached person user-487@plc.org to slice oneih_slice487
+01:== Attached person user-488@plc.org to slice oneih_slice487
+01:== Attached person user-489@plc.org to slice oneih_slice487
+01:== created slice 489 - max nodes=350
+01:== Attached person user-488@plc.org to slice oneii_slice488
+01:== Attached person user-489@plc.org to slice oneii_slice488
+01:== Attached person user-490@plc.org to slice oneii_slice488
+01:== created slice 490 - max nodes=350
+01:== Attached person user-489@plc.org to slice oneij_slice489
+01:== Attached person user-490@plc.org to slice oneij_slice489
+01:== Attached person user-491@plc.org to slice oneij_slice489
+01:== created slice 491 - max nodes=350
+01:== Attached person user-490@plc.org to slice oneja_slice490
+01:== Attached person user-491@plc.org to slice oneja_slice490
+01:== Attached person user-492@plc.org to slice oneja_slice490
+01:== created slice 492 - max nodes=350
+01:== Attached person user-491@plc.org to slice onejb_slice491
+01:== Attached person user-492@plc.org to slice onejb_slice491
+01:== Attached person user-493@plc.org to slice onejb_slice491
+01:== created slice 493 - max nodes=350
+01:== Attached person user-492@plc.org to slice onejc_slice492
+01:== Attached person user-493@plc.org to slice onejc_slice492
+01:== Attached person user-494@plc.org to slice onejc_slice492
+01:== created slice 494 - max nodes=350
+01:== Attached person user-493@plc.org to slice onejd_slice493
+01:== Attached person user-494@plc.org to slice onejd_slice493
+01:== Attached person user-495@plc.org to slice onejd_slice493
+01:== created slice 495 - max nodes=350
+01:== Attached person user-494@plc.org to slice oneje_slice494
+01:== Attached person user-495@plc.org to slice oneje_slice494
+01:== Attached person user-496@plc.org to slice oneje_slice494
+01:== created slice 496 - max nodes=350
+01:== Attached person user-495@plc.org to slice onejf_slice495
+01:== Attached person user-496@plc.org to slice onejf_slice495
+01:== Attached person user-497@plc.org to slice onejf_slice495
+01:== created slice 497 - max nodes=350
+01:== Attached person user-496@plc.org to slice onejg_slice496
+01:== Attached person user-497@plc.org to slice onejg_slice496
+01:== Attached person user-498@plc.org to slice onejg_slice496
+01:== created slice 498 - max nodes=350
+01:== Attached person user-497@plc.org to slice onejh_slice497
+01:== Attached person user-498@plc.org to slice onejh_slice497
+01:== Attached person user-499@plc.org to slice onejh_slice497
+01:== created slice 499 - max nodes=350
+01:== Attached person user-498@plc.org to slice oneji_slice498
+01:== Attached person user-499@plc.org to slice oneji_slice498
+01:== Attached person user-500@plc.org to slice oneji_slice498
+01:== created slice 500 - max nodes=350
+01:== Attached person user-499@plc.org to slice onejj_slice499
+01:== Attached person user-500@plc.org to slice onejj_slice499
+01:== Attached person user-1@plc.org to slice onejj_slice499
+01:== created slice 501 - max nodes=350
+01:== Attached person user-500@plc.org to slice onebaa_slice500
+01:== Attached person user-1@plc.org to slice onebaa_slice500
+01:== Attached person user-2@plc.org to slice onebaa_slice500
++++ 147.48 seconds ellapsed (65.76)
+01:== added in slice oneb_slice1 local  ['n1-001.plc1.org']
+01:== added in slice onec_slice2 local  ['n1-002.plc1.org']
+01:== added in slice oned_slice3 local  ['n1-003.plc1.org']
+01:== added in slice onee_slice4 local  ['n1-004.plc1.org']
+01:== added in slice onef_slice5 local  ['n1-005.plc1.org']
+01:== added in slice oneg_slice6 local  ['n1-006.plc1.org']
+01:== added in slice oneh_slice7 local  ['n1-007.plc1.org']
+01:== added in slice onei_slice8 local  ['n1-008.plc1.org']
+01:== added in slice onej_slice9 local  ['n1-009.plc1.org']
+01:== added in slice oneba_slice10 local  ['n1-010.plc1.org']
+01:== added in slice onebb_slice11 local  ['n1-011.plc1.org']
+01:== added in slice onebc_slice12 local  ['n1-012.plc1.org']
+01:== added in slice onebd_slice13 local  ['n1-013.plc1.org']
+01:== added in slice onebe_slice14 local  ['n1-014.plc1.org']
+01:== added in slice onebf_slice15 local  ['n1-015.plc1.org']
+01:== added in slice onebg_slice16 local  ['n1-016.plc1.org']
+01:== added in slice onebh_slice17 local  ['n1-017.plc1.org']
+01:== added in slice onebi_slice18 local  ['n1-018.plc1.org']
+01:== added in slice onebj_slice19 local  ['n1-019.plc1.org']
+01:== added in slice oneca_slice20 local  ['n1-020.plc1.org']
+01:== added in slice onecb_slice21 local  ['n1-021.plc1.org']
+01:== added in slice onecc_slice22 local  ['n1-022.plc1.org']
+01:== added in slice onecd_slice23 local  ['n1-023.plc1.org']
+01:== added in slice onece_slice24 local  ['n1-024.plc1.org']
+01:== added in slice onecf_slice25 local  ['n1-025.plc1.org']
+01:== added in slice onecg_slice26 local  ['n1-026.plc1.org']
+01:== added in slice onech_slice27 local  ['n1-027.plc1.org']
+01:== added in slice oneci_slice28 local  ['n1-028.plc1.org']
+01:== added in slice onecj_slice29 local  ['n1-029.plc1.org']
+01:== added in slice oneda_slice30 local  ['n1-030.plc1.org']
+01:== added in slice onedb_slice31 local  ['n1-031.plc1.org']
+01:== added in slice onedc_slice32 local  ['n1-032.plc1.org']
+01:== added in slice onedd_slice33 local  ['n1-033.plc1.org']
+01:== added in slice onede_slice34 local  ['n1-034.plc1.org']
+01:== added in slice onedf_slice35 local  ['n1-035.plc1.org']
+01:== added in slice onedg_slice36 local  ['n1-036.plc1.org']
+01:== added in slice onedh_slice37 local  ['n1-037.plc1.org']
+01:== added in slice onedi_slice38 local  ['n1-038.plc1.org']
+01:== added in slice onedj_slice39 local  ['n1-039.plc1.org']
+01:== added in slice oneea_slice40 local  ['n1-040.plc1.org']
+01:== added in slice oneeb_slice41 local  ['n1-041.plc1.org']
+01:== added in slice oneec_slice42 local  ['n1-042.plc1.org']
+01:== added in slice oneed_slice43 local  ['n1-043.plc1.org']
+01:== added in slice oneee_slice44 local  ['n1-044.plc1.org']
+01:== added in slice oneef_slice45 local  ['n1-045.plc1.org']
+01:== added in slice oneeg_slice46 local  ['n1-046.plc1.org']
+01:== added in slice oneeh_slice47 local  ['n1-047.plc1.org']
+01:== added in slice oneei_slice48 local  ['n1-048.plc1.org']
+01:== added in slice oneej_slice49 local  ['n1-049.plc1.org']
+01:== added in slice onefa_slice50 local  ['n1-050.plc1.org']
+01:== added in slice onefb_slice51 local  ['n1-051.plc1.org']
+01:== added in slice onefc_slice52 local  ['n1-052.plc1.org']
+01:== added in slice onefd_slice53 local  ['n1-053.plc1.org']
+01:== added in slice onefe_slice54 local  ['n1-054.plc1.org']
+01:== added in slice oneff_slice55 local  ['n1-055.plc1.org']
+01:== added in slice onefg_slice56 local  ['n1-056.plc1.org']
+01:== added in slice onefh_slice57 local  ['n1-057.plc1.org']
+01:== added in slice onefi_slice58 local  ['n1-058.plc1.org']
+01:== added in slice onefj_slice59 local  ['n1-059.plc1.org']
+01:== added in slice onega_slice60 local  ['n1-060.plc1.org']
+01:== added in slice onegb_slice61 local  ['n1-061.plc1.org']
+01:== added in slice onegc_slice62 local  ['n1-062.plc1.org']
+01:== added in slice onegd_slice63 local  ['n1-063.plc1.org']
+01:== added in slice onege_slice64 local  ['n1-064.plc1.org']
+01:== added in slice onegf_slice65 local  ['n1-065.plc1.org']
+01:== added in slice onegg_slice66 local  ['n1-066.plc1.org']
+01:== added in slice onegh_slice67 local  ['n1-067.plc1.org']
+01:== added in slice onegi_slice68 local  ['n1-068.plc1.org']
+01:== added in slice onegj_slice69 local  ['n1-069.plc1.org']
+01:== added in slice oneha_slice70 local  ['n1-070.plc1.org']
+01:== added in slice onehb_slice71 local  ['n1-071.plc1.org']
+01:== added in slice onehc_slice72 local  ['n1-072.plc1.org']
+01:== added in slice onehd_slice73 local  ['n1-073.plc1.org']
+01:== added in slice onehe_slice74 local  ['n1-074.plc1.org']
+01:== added in slice onehf_slice75 local  ['n1-075.plc1.org']
+01:== added in slice onehg_slice76 local  ['n1-076.plc1.org']
+01:== added in slice onehh_slice77 local  ['n1-077.plc1.org']
+01:== added in slice onehi_slice78 local  ['n1-078.plc1.org']
+01:== added in slice onehj_slice79 local  ['n1-079.plc1.org']
+01:== added in slice oneia_slice80 local  ['n1-080.plc1.org']
+01:== added in slice oneib_slice81 local  ['n1-081.plc1.org']
+01:== added in slice oneic_slice82 local  ['n1-082.plc1.org']
+01:== added in slice oneid_slice83 local  ['n1-083.plc1.org']
+01:== added in slice oneie_slice84 local  ['n1-084.plc1.org']
+01:== added in slice oneif_slice85 local  ['n1-085.plc1.org']
+01:== added in slice oneig_slice86 local  ['n1-086.plc1.org']
+01:== added in slice oneih_slice87 local  ['n1-087.plc1.org']
+01:== added in slice oneii_slice88 local  ['n1-088.plc1.org']
+01:== added in slice oneij_slice89 local  ['n1-089.plc1.org']
+01:== added in slice oneja_slice90 local  ['n1-090.plc1.org']
+01:== added in slice onejb_slice91 local  ['n1-091.plc1.org']
+01:== added in slice onejc_slice92 local  ['n1-092.plc1.org']
+01:== added in slice onejd_slice93 local  ['n1-093.plc1.org']
+01:== added in slice oneje_slice94 local  ['n1-094.plc1.org']
+01:== added in slice onejf_slice95 local  ['n1-095.plc1.org']
+01:== added in slice onejg_slice96 local  ['n1-096.plc1.org']
+01:== added in slice onejh_slice97 local  ['n1-097.plc1.org']
+01:== added in slice oneji_slice98 local  ['n1-098.plc1.org']
+01:== added in slice onejj_slice99 local  ['n1-099.plc1.org']
+01:== added in slice onebaa_slice100 local  ['n1-100.plc1.org']
+01:== added in slice onebab_slice101 local  ['n1-101.plc1.org']
+01:== added in slice onebac_slice102 local  ['n1-102.plc1.org']
+01:== added in slice onebad_slice103 local  ['n1-103.plc1.org']
+01:== added in slice onebae_slice104 local  ['n1-104.plc1.org']
+01:== added in slice onebaf_slice105 local  ['n1-105.plc1.org']
+01:== added in slice onebag_slice106 local  ['n1-106.plc1.org']
+01:== added in slice onebah_slice107 local  ['n1-107.plc1.org']
+01:== added in slice onebai_slice108 local  ['n1-108.plc1.org']
+01:== added in slice onebaj_slice109 local  ['n1-109.plc1.org']
+01:== added in slice onebba_slice110 local  ['n1-110.plc1.org']
+01:== added in slice onebbb_slice111 local  ['n1-111.plc1.org']
+01:== added in slice onebbc_slice112 local  ['n1-112.plc1.org']
+01:== added in slice onebbd_slice113 local  ['n1-113.plc1.org']
+01:== added in slice onebbe_slice114 local  ['n1-114.plc1.org']
+01:== added in slice onebbf_slice115 local  ['n1-115.plc1.org']
+01:== added in slice onebbg_slice116 local  ['n1-116.plc1.org']
+01:== added in slice onebbh_slice117 local  ['n1-117.plc1.org']
+01:== added in slice onebbi_slice118 local  ['n1-118.plc1.org']
+01:== added in slice onebbj_slice119 local  ['n1-119.plc1.org']
+01:== added in slice onebca_slice120 local  ['n1-120.plc1.org']
+01:== added in slice onebcb_slice121 local  ['n1-121.plc1.org']
+01:== added in slice onebcc_slice122 local  ['n1-122.plc1.org']
+01:== added in slice onebcd_slice123 local  ['n1-123.plc1.org']
+01:== added in slice onebce_slice124 local  ['n1-124.plc1.org']
+01:== added in slice onebcf_slice125 local  ['n1-125.plc1.org']
+01:== added in slice onebcg_slice126 local  ['n1-126.plc1.org']
+01:== added in slice onebch_slice127 local  ['n1-127.plc1.org']
+01:== added in slice onebci_slice128 local  ['n1-128.plc1.org']
+01:== added in slice onebcj_slice129 local  ['n1-129.plc1.org']
+01:== added in slice onebda_slice130 local  ['n1-130.plc1.org']
+01:== added in slice onebdb_slice131 local  ['n1-131.plc1.org']
+01:== added in slice onebdc_slice132 local  ['n1-132.plc1.org']
+01:== added in slice onebdd_slice133 local  ['n1-133.plc1.org']
+01:== added in slice onebde_slice134 local  ['n1-134.plc1.org']
+01:== added in slice onebdf_slice135 local  ['n1-135.plc1.org']
+01:== added in slice onebdg_slice136 local  ['n1-136.plc1.org']
+01:== added in slice onebdh_slice137 local  ['n1-137.plc1.org']
+01:== added in slice onebdi_slice138 local  ['n1-138.plc1.org']
+01:== added in slice onebdj_slice139 local  ['n1-139.plc1.org']
+01:== added in slice onebea_slice140 local  ['n1-140.plc1.org']
+01:== added in slice onebeb_slice141 local  ['n1-141.plc1.org']
+01:== added in slice onebec_slice142 local  ['n1-142.plc1.org']
+01:== added in slice onebed_slice143 local  ['n1-143.plc1.org']
+01:== added in slice onebee_slice144 local  ['n1-144.plc1.org']
+01:== added in slice onebef_slice145 local  ['n1-145.plc1.org']
+01:== added in slice onebeg_slice146 local  ['n1-146.plc1.org']
+01:== added in slice onebeh_slice147 local  ['n1-147.plc1.org']
+01:== added in slice onebei_slice148 local  ['n1-148.plc1.org']
+01:== added in slice onebej_slice149 local  ['n1-149.plc1.org']
+01:== added in slice onebfa_slice150 local  ['n1-150.plc1.org']
+01:== added in slice onebfb_slice151 local  ['n1-151.plc1.org']
+01:== added in slice onebfc_slice152 local  ['n1-152.plc1.org']
+01:== added in slice onebfd_slice153 local  ['n1-153.plc1.org']
+01:== added in slice onebfe_slice154 local  ['n1-154.plc1.org']
+01:== added in slice onebff_slice155 local  ['n1-155.plc1.org']
+01:== added in slice onebfg_slice156 local  ['n1-156.plc1.org']
+01:== added in slice onebfh_slice157 local  ['n1-157.plc1.org']
+01:== added in slice onebfi_slice158 local  ['n1-158.plc1.org']
+01:== added in slice onebfj_slice159 local  ['n1-159.plc1.org']
+01:== added in slice onebga_slice160 local  ['n1-160.plc1.org']
+01:== added in slice onebgb_slice161 local  ['n1-161.plc1.org']
+01:== added in slice onebgc_slice162 local  ['n1-162.plc1.org']
+01:== added in slice onebgd_slice163 local  ['n1-163.plc1.org']
+01:== added in slice onebge_slice164 local  ['n1-164.plc1.org']
+01:== added in slice onebgf_slice165 local  ['n1-165.plc1.org']
+01:== added in slice onebgg_slice166 local  ['n1-166.plc1.org']
+01:== added in slice onebgh_slice167 local  ['n1-167.plc1.org']
+01:== added in slice onebgi_slice168 local  ['n1-168.plc1.org']
+01:== added in slice onebgj_slice169 local  ['n1-169.plc1.org']
+01:== added in slice onebha_slice170 local  ['n1-170.plc1.org']
+01:== added in slice onebhb_slice171 local  ['n1-171.plc1.org']
+01:== added in slice onebhc_slice172 local  ['n1-172.plc1.org']
+01:== added in slice onebhd_slice173 local  ['n1-173.plc1.org']
+01:== added in slice onebhe_slice174 local  ['n1-174.plc1.org']
+01:== added in slice onebhf_slice175 local  ['n1-175.plc1.org']
+01:== added in slice onebhg_slice176 local  ['n1-176.plc1.org']
+01:== added in slice onebhh_slice177 local  ['n1-177.plc1.org']
+01:== added in slice onebhi_slice178 local  ['n1-178.plc1.org']
+01:== added in slice onebhj_slice179 local  ['n1-179.plc1.org']
+01:== added in slice onebia_slice180 local  ['n1-180.plc1.org']
+01:== added in slice onebib_slice181 local  ['n1-181.plc1.org']
+01:== added in slice onebic_slice182 local  ['n1-182.plc1.org']
+01:== added in slice onebid_slice183 local  ['n1-183.plc1.org']
+01:== added in slice onebie_slice184 local  ['n1-184.plc1.org']
+01:== added in slice onebif_slice185 local  ['n1-185.plc1.org']
+01:== added in slice onebig_slice186 local  ['n1-186.plc1.org']
+01:== added in slice onebih_slice187 local  ['n1-187.plc1.org']
+01:== added in slice onebii_slice188 local  ['n1-188.plc1.org']
+01:== added in slice onebij_slice189 local  ['n1-189.plc1.org']
+01:== added in slice onebja_slice190 local  ['n1-190.plc1.org']
+01:== added in slice onebjb_slice191 local  ['n1-191.plc1.org']
+01:== added in slice onebjc_slice192 local  ['n1-192.plc1.org']
+01:== added in slice onebjd_slice193 local  ['n1-193.plc1.org']
+01:== added in slice onebje_slice194 local  ['n1-194.plc1.org']
+01:== added in slice onebjf_slice195 local  ['n1-195.plc1.org']
+01:== added in slice onebjg_slice196 local  ['n1-196.plc1.org']
+01:== added in slice onebjh_slice197 local  ['n1-197.plc1.org']
+01:== added in slice onebji_slice198 local  ['n1-198.plc1.org']
+01:== added in slice onebjj_slice199 local  ['n1-199.plc1.org']
+01:== added in slice onecaa_slice200 local  ['n1-200.plc1.org']
+01:== added in slice oneb_slice201 local  ['n1-201.plc1.org']
+01:== added in slice onec_slice202 local  ['n1-202.plc1.org']
+01:== added in slice oned_slice203 local  ['n1-203.plc1.org']
+01:== added in slice onee_slice204 local  ['n1-204.plc1.org']
+01:== added in slice onef_slice205 local  ['n1-205.plc1.org']
+01:== added in slice oneg_slice206 local  ['n1-206.plc1.org']
+01:== added in slice oneh_slice207 local  ['n1-207.plc1.org']
+01:== added in slice onei_slice208 local  ['n1-208.plc1.org']
+01:== added in slice onej_slice209 local  ['n1-209.plc1.org']
+01:== added in slice oneba_slice210 local  ['n1-210.plc1.org']
+01:== added in slice onebb_slice211 local  ['n1-211.plc1.org']
+01:== added in slice onebc_slice212 local  ['n1-212.plc1.org']
+01:== added in slice onebd_slice213 local  ['n1-213.plc1.org']
+01:== added in slice onebe_slice214 local  ['n1-214.plc1.org']
+01:== added in slice onebf_slice215 local  ['n1-215.plc1.org']
+01:== added in slice onebg_slice216 local  ['n1-216.plc1.org']
+01:== added in slice onebh_slice217 local  ['n1-217.plc1.org']
+01:== added in slice onebi_slice218 local  ['n1-218.plc1.org']
+01:== added in slice onebj_slice219 local  ['n1-219.plc1.org']
+01:== added in slice oneca_slice220 local  ['n1-220.plc1.org']
+01:== added in slice onecb_slice221 local  ['n1-221.plc1.org']
+01:== added in slice onecc_slice222 local  ['n1-222.plc1.org']
+01:== added in slice onecd_slice223 local  ['n1-223.plc1.org']
+01:== added in slice onece_slice224 local  ['n1-224.plc1.org']
+01:== added in slice onecf_slice225 local  ['n1-225.plc1.org']
+01:== added in slice onecg_slice226 local  ['n1-226.plc1.org']
+01:== added in slice onech_slice227 local  ['n1-227.plc1.org']
+01:== added in slice oneci_slice228 local  ['n1-228.plc1.org']
+01:== added in slice onecj_slice229 local  ['n1-229.plc1.org']
+01:== added in slice oneda_slice230 local  ['n1-230.plc1.org']
+01:== added in slice onedb_slice231 local  ['n1-231.plc1.org']
+01:== added in slice onedc_slice232 local  ['n1-232.plc1.org']
+01:== added in slice onedd_slice233 local  ['n1-233.plc1.org']
+01:== added in slice onede_slice234 local  ['n1-234.plc1.org']
+01:== added in slice onedf_slice235 local  ['n1-235.plc1.org']
+01:== added in slice onedg_slice236 local  ['n1-236.plc1.org']
+01:== added in slice onedh_slice237 local  ['n1-237.plc1.org']
+01:== added in slice onedi_slice238 local  ['n1-238.plc1.org']
+01:== added in slice onedj_slice239 local  ['n1-239.plc1.org']
+01:== added in slice oneea_slice240 local  ['n1-240.plc1.org']
+01:== added in slice oneeb_slice241 local  ['n1-241.plc1.org']
+01:== added in slice oneec_slice242 local  ['n1-242.plc1.org']
+01:== added in slice oneed_slice243 local  ['n1-243.plc1.org']
+01:== added in slice oneee_slice244 local  ['n1-244.plc1.org']
+01:== added in slice oneef_slice245 local  ['n1-245.plc1.org']
+01:== added in slice oneeg_slice246 local  ['n1-246.plc1.org']
+01:== added in slice oneeh_slice247 local  ['n1-247.plc1.org']
+01:== added in slice oneei_slice248 local  ['n1-248.plc1.org']
+01:== added in slice oneej_slice249 local  ['n1-249.plc1.org']
+01:== added in slice onefa_slice250 local  ['n1-250.plc1.org']
+01:== added in slice onefb_slice251 local  ['n1-251.plc1.org']
+01:== added in slice onefc_slice252 local  ['n1-252.plc1.org']
+01:== added in slice onefd_slice253 local  ['n1-253.plc1.org']
+01:== added in slice onefe_slice254 local  ['n1-254.plc1.org']
+01:== added in slice oneff_slice255 local  ['n1-255.plc1.org']
+01:== added in slice onefg_slice256 local  ['n1-256.plc1.org']
+01:== added in slice onefh_slice257 local  ['n1-257.plc1.org']
+01:== added in slice onefi_slice258 local  ['n1-258.plc1.org']
+01:== added in slice onefj_slice259 local  ['n1-259.plc1.org']
+01:== added in slice onega_slice260 local  ['n1-260.plc1.org']
+01:== added in slice onegb_slice261 local  ['n1-261.plc1.org']
+01:== added in slice onegc_slice262 local  ['n1-262.plc1.org']
+01:== added in slice onegd_slice263 local  ['n1-263.plc1.org']
+01:== added in slice onege_slice264 local  ['n1-264.plc1.org']
+01:== added in slice onegf_slice265 local  ['n1-265.plc1.org']
+01:== added in slice onegg_slice266 local  ['n1-266.plc1.org']
+01:== added in slice onegh_slice267 local  ['n1-267.plc1.org']
+01:== added in slice onegi_slice268 local  ['n1-268.plc1.org']
+01:== added in slice onegj_slice269 local  ['n1-269.plc1.org']
+01:== added in slice oneha_slice270 local  ['n1-270.plc1.org']
+01:== added in slice onehb_slice271 local  ['n1-271.plc1.org']
+01:== added in slice onehc_slice272 local  ['n1-272.plc1.org']
+01:== added in slice onehd_slice273 local  ['n1-273.plc1.org']
+01:== added in slice onehe_slice274 local  ['n1-274.plc1.org']
+01:== added in slice onehf_slice275 local  ['n1-275.plc1.org']
+01:== added in slice onehg_slice276 local  ['n1-276.plc1.org']
+01:== added in slice onehh_slice277 local  ['n1-277.plc1.org']
+01:== added in slice onehi_slice278 local  ['n1-278.plc1.org']
+01:== added in slice onehj_slice279 local  ['n1-279.plc1.org']
+01:== added in slice oneia_slice280 local  ['n1-280.plc1.org']
+01:== added in slice oneib_slice281 local  ['n1-281.plc1.org']
+01:== added in slice oneic_slice282 local  ['n1-282.plc1.org']
+01:== added in slice oneid_slice283 local  ['n1-283.plc1.org']
+01:== added in slice oneie_slice284 local  ['n1-284.plc1.org']
+01:== added in slice oneif_slice285 local  ['n1-285.plc1.org']
+01:== added in slice oneig_slice286 local  ['n1-286.plc1.org']
+01:== added in slice oneih_slice287 local  ['n1-287.plc1.org']
+01:== added in slice oneii_slice288 local  ['n1-288.plc1.org']
+01:== added in slice oneij_slice289 local  ['n1-289.plc1.org']
+01:== added in slice oneja_slice290 local  ['n1-290.plc1.org']
+01:== added in slice onejb_slice291 local  ['n1-291.plc1.org']
+01:== added in slice onejc_slice292 local  ['n1-292.plc1.org']
+01:== added in slice onejd_slice293 local  ['n1-293.plc1.org']
+01:== added in slice oneje_slice294 local  ['n1-294.plc1.org']
+01:== added in slice onejf_slice295 local  ['n1-295.plc1.org']
+01:== added in slice onejg_slice296 local  ['n1-296.plc1.org']
+01:== added in slice onejh_slice297 local  ['n1-297.plc1.org']
+01:== added in slice oneji_slice298 local  ['n1-298.plc1.org']
+01:== added in slice onejj_slice299 local  ['n1-299.plc1.org']
+01:== added in slice onebaa_slice300 local  ['n1-300.plc1.org']
+01:== added in slice onebab_slice301 local  ['n1-301.plc1.org']
+01:== added in slice onebac_slice302 local  ['n1-302.plc1.org']
+01:== added in slice onebad_slice303 local  ['n1-303.plc1.org']
+01:== added in slice onebae_slice304 local  ['n1-304.plc1.org']
+01:== added in slice onebaf_slice305 local  ['n1-305.plc1.org']
+01:== added in slice onebag_slice306 local  ['n1-306.plc1.org']
+01:== added in slice onebah_slice307 local  ['n1-307.plc1.org']
+01:== added in slice onebai_slice308 local  ['n1-308.plc1.org']
+01:== added in slice onebaj_slice309 local  ['n1-309.plc1.org']
+01:== added in slice onebba_slice310 local  ['n1-310.plc1.org']
+01:== added in slice onebbb_slice311 local  ['n1-311.plc1.org']
+01:== added in slice onebbc_slice312 local  ['n1-312.plc1.org']
+01:== added in slice onebbd_slice313 local  ['n1-313.plc1.org']
+01:== added in slice onebbe_slice314 local  ['n1-314.plc1.org']
+01:== added in slice onebbf_slice315 local  ['n1-315.plc1.org']
+01:== added in slice onebbg_slice316 local  ['n1-316.plc1.org']
+01:== added in slice onebbh_slice317 local  ['n1-317.plc1.org']
+01:== added in slice onebbi_slice318 local  ['n1-318.plc1.org']
+01:== added in slice onebbj_slice319 local  ['n1-319.plc1.org']
+01:== added in slice onebca_slice320 local  ['n1-320.plc1.org']
+01:== added in slice onebcb_slice321 local  ['n1-321.plc1.org']
+01:== added in slice onebcc_slice322 local  ['n1-322.plc1.org']
+01:== added in slice onebcd_slice323 local  ['n1-323.plc1.org']
+01:== added in slice onebce_slice324 local  ['n1-324.plc1.org']
+01:== added in slice onebcf_slice325 local  ['n1-325.plc1.org']
+01:== added in slice onebcg_slice326 local  ['n1-326.plc1.org']
+01:== added in slice onebch_slice327 local  ['n1-327.plc1.org']
+01:== added in slice onebci_slice328 local  ['n1-328.plc1.org']
+01:== added in slice onebcj_slice329 local  ['n1-329.plc1.org']
+01:== added in slice onebda_slice330 local  ['n1-330.plc1.org']
+01:== added in slice onebdb_slice331 local  ['n1-331.plc1.org']
+01:== added in slice onebdc_slice332 local  ['n1-332.plc1.org']
+01:== added in slice onebdd_slice333 local  ['n1-333.plc1.org']
+01:== added in slice onebde_slice334 local  ['n1-334.plc1.org']
+01:== added in slice onebdf_slice335 local  ['n1-335.plc1.org']
+01:== added in slice onebdg_slice336 local  ['n1-336.plc1.org']
+01:== added in slice onebdh_slice337 local  ['n1-337.plc1.org']
+01:== added in slice onebdi_slice338 local  ['n1-338.plc1.org']
+01:== added in slice onebdj_slice339 local  ['n1-339.plc1.org']
+01:== added in slice onebea_slice340 local  ['n1-340.plc1.org']
+01:== added in slice onebeb_slice341 local  ['n1-341.plc1.org']
+01:== added in slice onebec_slice342 local  ['n1-342.plc1.org']
+01:== added in slice onebed_slice343 local  ['n1-343.plc1.org']
+01:== added in slice onebee_slice344 local  ['n1-344.plc1.org']
+01:== added in slice onebef_slice345 local  ['n1-345.plc1.org']
+01:== added in slice onebeg_slice346 local  ['n1-346.plc1.org']
+01:== added in slice onebeh_slice347 local  ['n1-347.plc1.org']
+01:== added in slice onebei_slice348 local  ['n1-348.plc1.org']
+01:== added in slice onebej_slice349 local  ['n1-349.plc1.org']
+01:== added in slice onebfa_slice350 local  ['n1-350.plc1.org']
+01:== added in slice onebfb_slice351 local  ['n1-001.plc1.org']
+01:== added in slice onebfc_slice352 local  ['n1-002.plc1.org']
+01:== added in slice onebfd_slice353 local  ['n1-003.plc1.org']
+01:== added in slice onebfe_slice354 local  ['n1-004.plc1.org']
+01:== added in slice onebff_slice355 local  ['n1-005.plc1.org']
+01:== added in slice onebfg_slice356 local  ['n1-006.plc1.org']
+01:== added in slice onebfh_slice357 local  ['n1-007.plc1.org']
+01:== added in slice onebfi_slice358 local  ['n1-008.plc1.org']
+01:== added in slice onebfj_slice359 local  ['n1-009.plc1.org']
+01:== added in slice onebga_slice360 local  ['n1-010.plc1.org']
+01:== added in slice onebgb_slice361 local  ['n1-011.plc1.org']
+01:== added in slice onebgc_slice362 local  ['n1-012.plc1.org']
+01:== added in slice onebgd_slice363 local  ['n1-013.plc1.org']
+01:== added in slice onebge_slice364 local  ['n1-014.plc1.org']
+01:== added in slice onebgf_slice365 local  ['n1-015.plc1.org']
+01:== added in slice onebgg_slice366 local  ['n1-016.plc1.org']
+01:== added in slice onebgh_slice367 local  ['n1-017.plc1.org']
+01:== added in slice onebgi_slice368 local  ['n1-018.plc1.org']
+01:== added in slice onebgj_slice369 local  ['n1-019.plc1.org']
+01:== added in slice onebha_slice370 local  ['n1-020.plc1.org']
+01:== added in slice onebhb_slice371 local  ['n1-021.plc1.org']
+01:== added in slice onebhc_slice372 local  ['n1-022.plc1.org']
+01:== added in slice onebhd_slice373 local  ['n1-023.plc1.org']
+01:== added in slice onebhe_slice374 local  ['n1-024.plc1.org']
+01:== added in slice onebhf_slice375 local  ['n1-025.plc1.org']
+01:== added in slice onebhg_slice376 local  ['n1-026.plc1.org']
+01:== added in slice onebhh_slice377 local  ['n1-027.plc1.org']
+01:== added in slice onebhi_slice378 local  ['n1-028.plc1.org']
+01:== added in slice onebhj_slice379 local  ['n1-029.plc1.org']
+01:== added in slice onebia_slice380 local  ['n1-030.plc1.org']
+01:== added in slice onebib_slice381 local  ['n1-031.plc1.org']
+01:== added in slice onebic_slice382 local  ['n1-032.plc1.org']
+01:== added in slice onebid_slice383 local  ['n1-033.plc1.org']
+01:== added in slice onebie_slice384 local  ['n1-034.plc1.org']
+01:== added in slice onebif_slice385 local  ['n1-035.plc1.org']
+01:== added in slice onebig_slice386 local  ['n1-036.plc1.org']
+01:== added in slice onebih_slice387 local  ['n1-037.plc1.org']
+01:== added in slice onebii_slice388 local  ['n1-038.plc1.org']
+01:== added in slice onebij_slice389 local  ['n1-039.plc1.org']
+01:== added in slice onebja_slice390 local  ['n1-040.plc1.org']
+01:== added in slice onebjb_slice391 local  ['n1-041.plc1.org']
+01:== added in slice onebjc_slice392 local  ['n1-042.plc1.org']
+01:== added in slice onebjd_slice393 local  ['n1-043.plc1.org']
+01:== added in slice onebje_slice394 local  ['n1-044.plc1.org']
+01:== added in slice onebjf_slice395 local  ['n1-045.plc1.org']
+01:== added in slice onebjg_slice396 local  ['n1-046.plc1.org']
+01:== added in slice onebjh_slice397 local  ['n1-047.plc1.org']
+01:== added in slice onebji_slice398 local  ['n1-048.plc1.org']
+01:== added in slice onebjj_slice399 local  ['n1-049.plc1.org']
+01:== added in slice onecaa_slice400 local  ['n1-050.plc1.org']
+01:== added in slice oneb_slice401 local  ['n1-051.plc1.org']
+01:== added in slice onec_slice402 local  ['n1-052.plc1.org']
+01:== added in slice oned_slice403 local  ['n1-053.plc1.org']
+01:== added in slice onee_slice404 local  ['n1-054.plc1.org']
+01:== added in slice onef_slice405 local  ['n1-055.plc1.org']
+01:== added in slice oneg_slice406 local  ['n1-056.plc1.org']
+01:== added in slice oneh_slice407 local  ['n1-057.plc1.org']
+01:== added in slice onei_slice408 local  ['n1-058.plc1.org']
+01:== added in slice onej_slice409 local  ['n1-059.plc1.org']
+01:== added in slice oneba_slice410 local  ['n1-060.plc1.org']
+01:== added in slice onebb_slice411 local  ['n1-061.plc1.org']
+01:== added in slice onebc_slice412 local  ['n1-062.plc1.org']
+01:== added in slice onebd_slice413 local  ['n1-063.plc1.org']
+01:== added in slice onebe_slice414 local  ['n1-064.plc1.org']
+01:== added in slice onebf_slice415 local  ['n1-065.plc1.org']
+01:== added in slice onebg_slice416 local  ['n1-066.plc1.org']
+01:== added in slice onebh_slice417 local  ['n1-067.plc1.org']
+01:== added in slice onebi_slice418 local  ['n1-068.plc1.org']
+01:== added in slice onebj_slice419 local  ['n1-069.plc1.org']
+01:== added in slice oneca_slice420 local  ['n1-070.plc1.org']
+01:== added in slice onecb_slice421 local  ['n1-071.plc1.org']
+01:== added in slice onecc_slice422 local  ['n1-072.plc1.org']
+01:== added in slice onecd_slice423 local  ['n1-073.plc1.org']
+01:== added in slice onece_slice424 local  ['n1-074.plc1.org']
+01:== added in slice onecf_slice425 local  ['n1-075.plc1.org']
+01:== added in slice onecg_slice426 local  ['n1-076.plc1.org']
+01:== added in slice onech_slice427 local  ['n1-077.plc1.org']
+01:== added in slice oneci_slice428 local  ['n1-078.plc1.org']
+01:== added in slice onecj_slice429 local  ['n1-079.plc1.org']
+01:== added in slice oneda_slice430 local  ['n1-080.plc1.org']
+01:== added in slice onedb_slice431 local  ['n1-081.plc1.org']
+01:== added in slice onedc_slice432 local  ['n1-082.plc1.org']
+01:== added in slice onedd_slice433 local  ['n1-083.plc1.org']
+01:== added in slice onede_slice434 local  ['n1-084.plc1.org']
+01:== added in slice onedf_slice435 local  ['n1-085.plc1.org']
+01:== added in slice onedg_slice436 local  ['n1-086.plc1.org']
+01:== added in slice onedh_slice437 local  ['n1-087.plc1.org']
+01:== added in slice onedi_slice438 local  ['n1-088.plc1.org']
+01:== added in slice onedj_slice439 local  ['n1-089.plc1.org']
+01:== added in slice oneea_slice440 local  ['n1-090.plc1.org']
+01:== added in slice oneeb_slice441 local  ['n1-091.plc1.org']
+01:== added in slice oneec_slice442 local  ['n1-092.plc1.org']
+01:== added in slice oneed_slice443 local  ['n1-093.plc1.org']
+01:== added in slice oneee_slice444 local  ['n1-094.plc1.org']
+01:== added in slice oneef_slice445 local  ['n1-095.plc1.org']
+01:== added in slice oneeg_slice446 local  ['n1-096.plc1.org']
+01:== added in slice oneeh_slice447 local  ['n1-097.plc1.org']
+01:== added in slice oneei_slice448 local  ['n1-098.plc1.org']
+01:== added in slice oneej_slice449 local  ['n1-099.plc1.org']
+01:== added in slice onefa_slice450 local  ['n1-100.plc1.org']
+01:== added in slice onefb_slice451 local  ['n1-101.plc1.org']
+01:== added in slice onefc_slice452 local  ['n1-102.plc1.org']
+01:== added in slice onefd_slice453 local  ['n1-103.plc1.org']
+01:== added in slice onefe_slice454 local  ['n1-104.plc1.org']
+01:== added in slice oneff_slice455 local  ['n1-105.plc1.org']
+01:== added in slice onefg_slice456 local  ['n1-106.plc1.org']
+01:== added in slice onefh_slice457 local  ['n1-107.plc1.org']
+01:== added in slice onefi_slice458 local  ['n1-108.plc1.org']
+01:== added in slice onefj_slice459 local  ['n1-109.plc1.org']
+01:== added in slice onega_slice460 local  ['n1-110.plc1.org']
+01:== added in slice onegb_slice461 local  ['n1-111.plc1.org']
+01:== added in slice onegc_slice462 local  ['n1-112.plc1.org']
+01:== added in slice onegd_slice463 local  ['n1-113.plc1.org']
+01:== added in slice onege_slice464 local  ['n1-114.plc1.org']
+01:== added in slice onegf_slice465 local  ['n1-115.plc1.org']
+01:== added in slice onegg_slice466 local  ['n1-116.plc1.org']
+01:== added in slice onegh_slice467 local  ['n1-117.plc1.org']
+01:== added in slice onegi_slice468 local  ['n1-118.plc1.org']
+01:== added in slice onegj_slice469 local  ['n1-119.plc1.org']
+01:== added in slice oneha_slice470 local  ['n1-120.plc1.org']
+01:== added in slice onehb_slice471 local  ['n1-121.plc1.org']
+01:== added in slice onehc_slice472 local  ['n1-122.plc1.org']
+01:== added in slice onehd_slice473 local  ['n1-123.plc1.org']
+01:== added in slice onehe_slice474 local  ['n1-124.plc1.org']
+01:== added in slice onehf_slice475 local  ['n1-125.plc1.org']
+01:== added in slice onehg_slice476 local  ['n1-126.plc1.org']
+01:== added in slice onehh_slice477 local  ['n1-127.plc1.org']
+01:== added in slice onehi_slice478 local  ['n1-128.plc1.org']
+01:== added in slice onehj_slice479 local  ['n1-129.plc1.org']
+01:== added in slice oneia_slice480 local  ['n1-130.plc1.org']
+01:== added in slice oneib_slice481 local  ['n1-131.plc1.org']
+01:== added in slice oneic_slice482 local  ['n1-132.plc1.org']
+01:== added in slice oneid_slice483 local  ['n1-133.plc1.org']
+01:== added in slice oneie_slice484 local  ['n1-134.plc1.org']
+01:== added in slice oneif_slice485 local  ['n1-135.plc1.org']
+01:== added in slice oneig_slice486 local  ['n1-136.plc1.org']
+01:== added in slice oneih_slice487 local  ['n1-137.plc1.org']
+01:== added in slice oneii_slice488 local  ['n1-138.plc1.org']
+01:== added in slice oneij_slice489 local  ['n1-139.plc1.org']
+01:== added in slice oneja_slice490 local  ['n1-140.plc1.org']
+01:== added in slice onejb_slice491 local  ['n1-141.plc1.org']
+01:== added in slice onejc_slice492 local  ['n1-142.plc1.org']
+01:== added in slice onejd_slice493 local  ['n1-143.plc1.org']
+01:== added in slice oneje_slice494 local  ['n1-144.plc1.org']
+01:== added in slice onejf_slice495 local  ['n1-145.plc1.org']
+01:== added in slice onejg_slice496 local  ['n1-146.plc1.org']
+01:== added in slice onejh_slice497 local  ['n1-147.plc1.org']
+01:== added in slice oneji_slice498 local  ['n1-148.plc1.org']
+01:== added in slice onejj_slice499 local  ['n1-149.plc1.org']
+01:== added in slice onebaa_slice500 local  ['n1-150.plc1.org']
++++ 168.23 seconds ellapsed (20.75)
+01:== created SliceAttributeType = 23
+Dummy method GetSliceAttributeTypes on remote peer 2 skipped
+Dummy method AddSliceAttributeType on remote peer 2 skipped
++++ 168.26 seconds ellapsed (0.03)
+slice_name oneb_slice1 sat_name sat_1
+01:== created SliceAttribute = 6 On slice oneb_slice1 and node None
+01:== created SliceAttribute = 7 On slice oneb_slice1 and node n1-001.plc1.org
+slice_name oneb_slice1 sat_name vref
+01:== created SliceAttribute = 8 On slice oneb_slice1 and node None
+01:== created SliceAttribute = 9 On slice oneb_slice1 and node n1-001.plc1.org
++++ 168.43 seconds ellapsed (0.17)
+==================== ('END',)
++++ 168.43 seconds ellapsed (0.00)
diff --git a/trunk/tests/testpeers.-b.-2.populate.ref b/trunk/tests/testpeers.-b.-2.populate.ref
new file mode 100644 (file)
index 0000000..d0bcff7
--- /dev/null
@@ -0,0 +1,1603 @@
+options {'local_peer': 2, 'plc1': '', 'plc2': '', 'factor': 1, 'debug': False, 'size': 'big'} args ['populate']
+200 sites, 500 persons, 350 nodes & 500 slices
+1 keys/person, 1 nodes/slice & 3 persons/slice
+fast_flag True
+Running locally on index 2
+funcname populate
+dir() ['args', 'funcname', 'options', 'parser', 'size_func', 'steps', 'usage']
++++ timer start
+==================== ('INIT',)
++++ timer start
+==================== s[1]
+show_config obsoleted
+==================== s[2]
+show_config obsoleted
+====================
+Dummy method GetPersons on remote peer 1 skipped
+Dummy method AddPerson on remote peer 1 skipped
+02:== created peer admin account 3, peer2@planet-lab.org - peer
+Dummy method AdmSetPersonEnabled on remote peer 1 skipped
+02:== enabled+admin on account 3:peer2@planet-lab.org
++++ timer start
+Dummy method GetPeers on remote peer 1 skipped
+Trying to locate keys for peer on plc[1] in gpg_plc2.pub and api_plc2.crt
+Dummy method AddPeer on remote peer 1 skipped
+01:Created peer 0
+Trying to locate keys for peer on plc[2] in gpg_plc1.pub and api_plc1.crt
+02:Created peer 1
++++ 0.35 seconds ellapsed (0.35)
+Dummy method GetSites on remote peer 1 skipped
+Dummy method AddSite on remote peer 1 skipped
+02:== Created site 2 with max_slices=500
+02:== Created site 3 with max_slices=500
+02:== Created site 4 with max_slices=500
+02:== Created site 5 with max_slices=500
+02:== Created site 6 with max_slices=500
+02:== Created site 7 with max_slices=500
+02:== Created site 8 with max_slices=500
+02:== Created site 9 with max_slices=500
+02:== Created site 10 with max_slices=500
+02:== Created site 11 with max_slices=500
+02:== Created site 12 with max_slices=500
+02:== Created site 13 with max_slices=500
+02:== Created site 14 with max_slices=500
+02:== Created site 15 with max_slices=500
+02:== Created site 16 with max_slices=500
+02:== Created site 17 with max_slices=500
+02:== Created site 18 with max_slices=500
+02:== Created site 19 with max_slices=500
+02:== Created site 20 with max_slices=500
+02:== Created site 21 with max_slices=500
+02:== Created site 22 with max_slices=500
+02:== Created site 23 with max_slices=500
+02:== Created site 24 with max_slices=500
+02:== Created site 25 with max_slices=500
+02:== Created site 26 with max_slices=500
+02:== Created site 27 with max_slices=500
+02:== Created site 28 with max_slices=500
+02:== Created site 29 with max_slices=500
+02:== Created site 30 with max_slices=500
+02:== Created site 31 with max_slices=500
+02:== Created site 32 with max_slices=500
+02:== Created site 33 with max_slices=500
+02:== Created site 34 with max_slices=500
+02:== Created site 35 with max_slices=500
+02:== Created site 36 with max_slices=500
+02:== Created site 37 with max_slices=500
+02:== Created site 38 with max_slices=500
+02:== Created site 39 with max_slices=500
+02:== Created site 40 with max_slices=500
+02:== Created site 41 with max_slices=500
+02:== Created site 42 with max_slices=500
+02:== Created site 43 with max_slices=500
+02:== Created site 44 with max_slices=500
+02:== Created site 45 with max_slices=500
+02:== Created site 46 with max_slices=500
+02:== Created site 47 with max_slices=500
+02:== Created site 48 with max_slices=500
+02:== Created site 49 with max_slices=500
+02:== Created site 50 with max_slices=500
+02:== Created site 51 with max_slices=500
+02:== Created site 52 with max_slices=500
+02:== Created site 53 with max_slices=500
+02:== Created site 54 with max_slices=500
+02:== Created site 55 with max_slices=500
+02:== Created site 56 with max_slices=500
+02:== Created site 57 with max_slices=500
+02:== Created site 58 with max_slices=500
+02:== Created site 59 with max_slices=500
+02:== Created site 60 with max_slices=500
+02:== Created site 61 with max_slices=500
+02:== Created site 62 with max_slices=500
+02:== Created site 63 with max_slices=500
+02:== Created site 64 with max_slices=500
+02:== Created site 65 with max_slices=500
+02:== Created site 66 with max_slices=500
+02:== Created site 67 with max_slices=500
+02:== Created site 68 with max_slices=500
+02:== Created site 69 with max_slices=500
+02:== Created site 70 with max_slices=500
+02:== Created site 71 with max_slices=500
+02:== Created site 72 with max_slices=500
+02:== Created site 73 with max_slices=500
+02:== Created site 74 with max_slices=500
+02:== Created site 75 with max_slices=500
+02:== Created site 76 with max_slices=500
+02:== Created site 77 with max_slices=500
+02:== Created site 78 with max_slices=500
+02:== Created site 79 with max_slices=500
+02:== Created site 80 with max_slices=500
+02:== Created site 81 with max_slices=500
+02:== Created site 82 with max_slices=500
+02:== Created site 83 with max_slices=500
+02:== Created site 84 with max_slices=500
+02:== Created site 85 with max_slices=500
+02:== Created site 86 with max_slices=500
+02:== Created site 87 with max_slices=500
+02:== Created site 88 with max_slices=500
+02:== Created site 89 with max_slices=500
+02:== Created site 90 with max_slices=500
+02:== Created site 91 with max_slices=500
+02:== Created site 92 with max_slices=500
+02:== Created site 93 with max_slices=500
+02:== Created site 94 with max_slices=500
+02:== Created site 95 with max_slices=500
+02:== Created site 96 with max_slices=500
+02:== Created site 97 with max_slices=500
+02:== Created site 98 with max_slices=500
+02:== Created site 99 with max_slices=500
+02:== Created site 100 with max_slices=500
+02:== Created site 101 with max_slices=500
+02:== Created site 102 with max_slices=500
+02:== Created site 103 with max_slices=500
+02:== Created site 104 with max_slices=500
+02:== Created site 105 with max_slices=500
+02:== Created site 106 with max_slices=500
+02:== Created site 107 with max_slices=500
+02:== Created site 108 with max_slices=500
+02:== Created site 109 with max_slices=500
+02:== Created site 110 with max_slices=500
+02:== Created site 111 with max_slices=500
+02:== Created site 112 with max_slices=500
+02:== Created site 113 with max_slices=500
+02:== Created site 114 with max_slices=500
+02:== Created site 115 with max_slices=500
+02:== Created site 116 with max_slices=500
+02:== Created site 117 with max_slices=500
+02:== Created site 118 with max_slices=500
+02:== Created site 119 with max_slices=500
+02:== Created site 120 with max_slices=500
+02:== Created site 121 with max_slices=500
+02:== Created site 122 with max_slices=500
+02:== Created site 123 with max_slices=500
+02:== Created site 124 with max_slices=500
+02:== Created site 125 with max_slices=500
+02:== Created site 126 with max_slices=500
+02:== Created site 127 with max_slices=500
+02:== Created site 128 with max_slices=500
+02:== Created site 129 with max_slices=500
+02:== Created site 130 with max_slices=500
+02:== Created site 131 with max_slices=500
+02:== Created site 132 with max_slices=500
+02:== Created site 133 with max_slices=500
+02:== Created site 134 with max_slices=500
+02:== Created site 135 with max_slices=500
+02:== Created site 136 with max_slices=500
+02:== Created site 137 with max_slices=500
+02:== Created site 138 with max_slices=500
+02:== Created site 139 with max_slices=500
+02:== Created site 140 with max_slices=500
+02:== Created site 141 with max_slices=500
+02:== Created site 142 with max_slices=500
+02:== Created site 143 with max_slices=500
+02:== Created site 144 with max_slices=500
+02:== Created site 145 with max_slices=500
+02:== Created site 146 with max_slices=500
+02:== Created site 147 with max_slices=500
+02:== Created site 148 with max_slices=500
+02:== Created site 149 with max_slices=500
+02:== Created site 150 with max_slices=500
+02:== Created site 151 with max_slices=500
+02:== Created site 152 with max_slices=500
+02:== Created site 153 with max_slices=500
+02:== Created site 154 with max_slices=500
+02:== Created site 155 with max_slices=500
+02:== Created site 156 with max_slices=500
+02:== Created site 157 with max_slices=500
+02:== Created site 158 with max_slices=500
+02:== Created site 159 with max_slices=500
+02:== Created site 160 with max_slices=500
+02:== Created site 161 with max_slices=500
+02:== Created site 162 with max_slices=500
+02:== Created site 163 with max_slices=500
+02:== Created site 164 with max_slices=500
+02:== Created site 165 with max_slices=500
+02:== Created site 166 with max_slices=500
+02:== Created site 167 with max_slices=500
+02:== Created site 168 with max_slices=500
+02:== Created site 169 with max_slices=500
+02:== Created site 170 with max_slices=500
+02:== Created site 171 with max_slices=500
+02:== Created site 172 with max_slices=500
+02:== Created site 173 with max_slices=500
+02:== Created site 174 with max_slices=500
+02:== Created site 175 with max_slices=500
+02:== Created site 176 with max_slices=500
+02:== Created site 177 with max_slices=500
+02:== Created site 178 with max_slices=500
+02:== Created site 179 with max_slices=500
+02:== Created site 180 with max_slices=500
+02:== Created site 181 with max_slices=500
+02:== Created site 182 with max_slices=500
+02:== Created site 183 with max_slices=500
+02:== Created site 184 with max_slices=500
+02:== Created site 185 with max_slices=500
+02:== Created site 186 with max_slices=500
+02:== Created site 187 with max_slices=500
+02:== Created site 188 with max_slices=500
+02:== Created site 189 with max_slices=500
+02:== Created site 190 with max_slices=500
+02:== Created site 191 with max_slices=500
+02:== Created site 192 with max_slices=500
+02:== Created site 193 with max_slices=500
+02:== Created site 194 with max_slices=500
+02:== Created site 195 with max_slices=500
+02:== Created site 196 with max_slices=500
+02:== Created site 197 with max_slices=500
+02:== Created site 198 with max_slices=500
+02:== Created site 199 with max_slices=500
+02:== Created site 200 with max_slices=500
+02:== Created site 201 with max_slices=500
++++ 16.43 seconds ellapsed (16.08)
+Dummy method GetPersons on remote peer 1 skipped
+Dummy method AddPerson on remote peer 1 skipped
+02:== created user account 4, user-1@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user1-key1 to person user-1@plc.org
+02:== created user account 5, user-2@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user2-key1 to person user-2@plc.org
+02:== created user account 6, user-3@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user3-key1 to person user-3@plc.org
+02:== created user account 7, user-4@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user4-key1 to person user-4@plc.org
+02:== created user account 8, user-5@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user5-key1 to person user-5@plc.org
+02:== created user account 9, user-6@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user6-key1 to person user-6@plc.org
+02:== created user account 10, user-7@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user7-key1 to person user-7@plc.org
+02:== created user account 11, user-8@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user8-key1 to person user-8@plc.org
+02:== created user account 12, user-9@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user9-key1 to person user-9@plc.org
+02:== created user account 13, user-10@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user10-key1 to person user-10@plc.org
+02:== created user account 14, user-11@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user11-key1 to person user-11@plc.org
+02:== created user account 15, user-12@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user12-key1 to person user-12@plc.org
+02:== created user account 16, user-13@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user13-key1 to person user-13@plc.org
+02:== created user account 17, user-14@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user14-key1 to person user-14@plc.org
+02:== created user account 18, user-15@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user15-key1 to person user-15@plc.org
+02:== created user account 19, user-16@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user16-key1 to person user-16@plc.org
+02:== created user account 20, user-17@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user17-key1 to person user-17@plc.org
+02:== created user account 21, user-18@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user18-key1 to person user-18@plc.org
+02:== created user account 22, user-19@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user19-key1 to person user-19@plc.org
+02:== created user account 23, user-20@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user20-key1 to person user-20@plc.org
+02:== created user account 24, user-21@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user21-key1 to person user-21@plc.org
+02:== created user account 25, user-22@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user22-key1 to person user-22@plc.org
+02:== created user account 26, user-23@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user23-key1 to person user-23@plc.org
+02:== created user account 27, user-24@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user24-key1 to person user-24@plc.org
+02:== created user account 28, user-25@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user25-key1 to person user-25@plc.org
+02:== created user account 29, user-26@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user26-key1 to person user-26@plc.org
+02:== created user account 30, user-27@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user27-key1 to person user-27@plc.org
+02:== created user account 31, user-28@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user28-key1 to person user-28@plc.org
+02:== created user account 32, user-29@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user29-key1 to person user-29@plc.org
+02:== created user account 33, user-30@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user30-key1 to person user-30@plc.org
+02:== created user account 34, user-31@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user31-key1 to person user-31@plc.org
+02:== created user account 35, user-32@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user32-key1 to person user-32@plc.org
+02:== created user account 36, user-33@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user33-key1 to person user-33@plc.org
+02:== created user account 37, user-34@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user34-key1 to person user-34@plc.org
+02:== created user account 38, user-35@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user35-key1 to person user-35@plc.org
+02:== created user account 39, user-36@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user36-key1 to person user-36@plc.org
+02:== created user account 40, user-37@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user37-key1 to person user-37@plc.org
+02:== created user account 41, user-38@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user38-key1 to person user-38@plc.org
+02:== created user account 42, user-39@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user39-key1 to person user-39@plc.org
+02:== created user account 43, user-40@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user40-key1 to person user-40@plc.org
+02:== created user account 44, user-41@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user41-key1 to person user-41@plc.org
+02:== created user account 45, user-42@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user42-key1 to person user-42@plc.org
+02:== created user account 46, user-43@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user43-key1 to person user-43@plc.org
+02:== created user account 47, user-44@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user44-key1 to person user-44@plc.org
+02:== created user account 48, user-45@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user45-key1 to person user-45@plc.org
+02:== created user account 49, user-46@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user46-key1 to person user-46@plc.org
+02:== created user account 50, user-47@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user47-key1 to person user-47@plc.org
+02:== created user account 51, user-48@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user48-key1 to person user-48@plc.org
+02:== created user account 52, user-49@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user49-key1 to person user-49@plc.org
+02:== created user account 53, user-50@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user50-key1 to person user-50@plc.org
+02:== created user account 54, user-51@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user51-key1 to person user-51@plc.org
+02:== created user account 55, user-52@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user52-key1 to person user-52@plc.org
+02:== created user account 56, user-53@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user53-key1 to person user-53@plc.org
+02:== created user account 57, user-54@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user54-key1 to person user-54@plc.org
+02:== created user account 58, user-55@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user55-key1 to person user-55@plc.org
+02:== created user account 59, user-56@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user56-key1 to person user-56@plc.org
+02:== created user account 60, user-57@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user57-key1 to person user-57@plc.org
+02:== created user account 61, user-58@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user58-key1 to person user-58@plc.org
+02:== created user account 62, user-59@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user59-key1 to person user-59@plc.org
+02:== created user account 63, user-60@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user60-key1 to person user-60@plc.org
+02:== created user account 64, user-61@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user61-key1 to person user-61@plc.org
+02:== created user account 65, user-62@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user62-key1 to person user-62@plc.org
+02:== created user account 66, user-63@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user63-key1 to person user-63@plc.org
+02:== created user account 67, user-64@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user64-key1 to person user-64@plc.org
+02:== created user account 68, user-65@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user65-key1 to person user-65@plc.org
+02:== created user account 69, user-66@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user66-key1 to person user-66@plc.org
+02:== created user account 70, user-67@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user67-key1 to person user-67@plc.org
+02:== created user account 71, user-68@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user68-key1 to person user-68@plc.org
+02:== created user account 72, user-69@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user69-key1 to person user-69@plc.org
+02:== created user account 73, user-70@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user70-key1 to person user-70@plc.org
+02:== created user account 74, user-71@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user71-key1 to person user-71@plc.org
+02:== created user account 75, user-72@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user72-key1 to person user-72@plc.org
+02:== created user account 76, user-73@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user73-key1 to person user-73@plc.org
+02:== created user account 77, user-74@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user74-key1 to person user-74@plc.org
+02:== created user account 78, user-75@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user75-key1 to person user-75@plc.org
+02:== created user account 79, user-76@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user76-key1 to person user-76@plc.org
+02:== created user account 80, user-77@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user77-key1 to person user-77@plc.org
+02:== created user account 81, user-78@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user78-key1 to person user-78@plc.org
+02:== created user account 82, user-79@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user79-key1 to person user-79@plc.org
+02:== created user account 83, user-80@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user80-key1 to person user-80@plc.org
+02:== created user account 84, user-81@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user81-key1 to person user-81@plc.org
+02:== created user account 85, user-82@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user82-key1 to person user-82@plc.org
+02:== created user account 86, user-83@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user83-key1 to person user-83@plc.org
+02:== created user account 87, user-84@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user84-key1 to person user-84@plc.org
+02:== created user account 88, user-85@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user85-key1 to person user-85@plc.org
+02:== created user account 89, user-86@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user86-key1 to person user-86@plc.org
+02:== created user account 90, user-87@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user87-key1 to person user-87@plc.org
+02:== created user account 91, user-88@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user88-key1 to person user-88@plc.org
+02:== created user account 92, user-89@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user89-key1 to person user-89@plc.org
+02:== created user account 93, user-90@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user90-key1 to person user-90@plc.org
+02:== created user account 94, user-91@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user91-key1 to person user-91@plc.org
+02:== created user account 95, user-92@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user92-key1 to person user-92@plc.org
+02:== created user account 96, user-93@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user93-key1 to person user-93@plc.org
+02:== created user account 97, user-94@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user94-key1 to person user-94@plc.org
+02:== created user account 98, user-95@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user95-key1 to person user-95@plc.org
+02:== created user account 99, user-96@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user96-key1 to person user-96@plc.org
+02:== created user account 100, user-97@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user97-key1 to person user-97@plc.org
+02:== created user account 101, user-98@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user98-key1 to person user-98@plc.org
+02:== created user account 102, user-99@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user99-key1 to person user-99@plc.org
+02:== created user account 103, user-100@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user100-key1 to person user-100@plc.org
+02:== created user account 104, user-101@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user101-key1 to person user-101@plc.org
+02:== created user account 105, user-102@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user102-key1 to person user-102@plc.org
+02:== created user account 106, user-103@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user103-key1 to person user-103@plc.org
+02:== created user account 107, user-104@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user104-key1 to person user-104@plc.org
+02:== created user account 108, user-105@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user105-key1 to person user-105@plc.org
+02:== created user account 109, user-106@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user106-key1 to person user-106@plc.org
+02:== created user account 110, user-107@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user107-key1 to person user-107@plc.org
+02:== created user account 111, user-108@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user108-key1 to person user-108@plc.org
+02:== created user account 112, user-109@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user109-key1 to person user-109@plc.org
+02:== created user account 113, user-110@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user110-key1 to person user-110@plc.org
+02:== created user account 114, user-111@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user111-key1 to person user-111@plc.org
+02:== created user account 115, user-112@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user112-key1 to person user-112@plc.org
+02:== created user account 116, user-113@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user113-key1 to person user-113@plc.org
+02:== created user account 117, user-114@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user114-key1 to person user-114@plc.org
+02:== created user account 118, user-115@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user115-key1 to person user-115@plc.org
+02:== created user account 119, user-116@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user116-key1 to person user-116@plc.org
+02:== created user account 120, user-117@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user117-key1 to person user-117@plc.org
+02:== created user account 121, user-118@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user118-key1 to person user-118@plc.org
+02:== created user account 122, user-119@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user119-key1 to person user-119@plc.org
+02:== created user account 123, user-120@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user120-key1 to person user-120@plc.org
+02:== created user account 124, user-121@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user121-key1 to person user-121@plc.org
+02:== created user account 125, user-122@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user122-key1 to person user-122@plc.org
+02:== created user account 126, user-123@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user123-key1 to person user-123@plc.org
+02:== created user account 127, user-124@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user124-key1 to person user-124@plc.org
+02:== created user account 128, user-125@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user125-key1 to person user-125@plc.org
+02:== created user account 129, user-126@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user126-key1 to person user-126@plc.org
+02:== created user account 130, user-127@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user127-key1 to person user-127@plc.org
+02:== created user account 131, user-128@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user128-key1 to person user-128@plc.org
+02:== created user account 132, user-129@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user129-key1 to person user-129@plc.org
+02:== created user account 133, user-130@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user130-key1 to person user-130@plc.org
+02:== created user account 134, user-131@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user131-key1 to person user-131@plc.org
+02:== created user account 135, user-132@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user132-key1 to person user-132@plc.org
+02:== created user account 136, user-133@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user133-key1 to person user-133@plc.org
+02:== created user account 137, user-134@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user134-key1 to person user-134@plc.org
+02:== created user account 138, user-135@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user135-key1 to person user-135@plc.org
+02:== created user account 139, user-136@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user136-key1 to person user-136@plc.org
+02:== created user account 140, user-137@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user137-key1 to person user-137@plc.org
+02:== created user account 141, user-138@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user138-key1 to person user-138@plc.org
+02:== created user account 142, user-139@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user139-key1 to person user-139@plc.org
+02:== created user account 143, user-140@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user140-key1 to person user-140@plc.org
+02:== created user account 144, user-141@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user141-key1 to person user-141@plc.org
+02:== created user account 145, user-142@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user142-key1 to person user-142@plc.org
+02:== created user account 146, user-143@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user143-key1 to person user-143@plc.org
+02:== created user account 147, user-144@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user144-key1 to person user-144@plc.org
+02:== created user account 148, user-145@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user145-key1 to person user-145@plc.org
+02:== created user account 149, user-146@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user146-key1 to person user-146@plc.org
+02:== created user account 150, user-147@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user147-key1 to person user-147@plc.org
+02:== created user account 151, user-148@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user148-key1 to person user-148@plc.org
+02:== created user account 152, user-149@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user149-key1 to person user-149@plc.org
+02:== created user account 153, user-150@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user150-key1 to person user-150@plc.org
+02:== created user account 154, user-151@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user151-key1 to person user-151@plc.org
+02:== created user account 155, user-152@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user152-key1 to person user-152@plc.org
+02:== created user account 156, user-153@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user153-key1 to person user-153@plc.org
+02:== created user account 157, user-154@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user154-key1 to person user-154@plc.org
+02:== created user account 158, user-155@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user155-key1 to person user-155@plc.org
+02:== created user account 159, user-156@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user156-key1 to person user-156@plc.org
+02:== created user account 160, user-157@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user157-key1 to person user-157@plc.org
+02:== created user account 161, user-158@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user158-key1 to person user-158@plc.org
+02:== created user account 162, user-159@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user159-key1 to person user-159@plc.org
+02:== created user account 163, user-160@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user160-key1 to person user-160@plc.org
+02:== created user account 164, user-161@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user161-key1 to person user-161@plc.org
+02:== created user account 165, user-162@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user162-key1 to person user-162@plc.org
+02:== created user account 166, user-163@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user163-key1 to person user-163@plc.org
+02:== created user account 167, user-164@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user164-key1 to person user-164@plc.org
+02:== created user account 168, user-165@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user165-key1 to person user-165@plc.org
+02:== created user account 169, user-166@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user166-key1 to person user-166@plc.org
+02:== created user account 170, user-167@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user167-key1 to person user-167@plc.org
+02:== created user account 171, user-168@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user168-key1 to person user-168@plc.org
+02:== created user account 172, user-169@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user169-key1 to person user-169@plc.org
+02:== created user account 173, user-170@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user170-key1 to person user-170@plc.org
+02:== created user account 174, user-171@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user171-key1 to person user-171@plc.org
+02:== created user account 175, user-172@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user172-key1 to person user-172@plc.org
+02:== created user account 176, user-173@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user173-key1 to person user-173@plc.org
+02:== created user account 177, user-174@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user174-key1 to person user-174@plc.org
+02:== created user account 178, user-175@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user175-key1 to person user-175@plc.org
+02:== created user account 179, user-176@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user176-key1 to person user-176@plc.org
+02:== created user account 180, user-177@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user177-key1 to person user-177@plc.org
+02:== created user account 181, user-178@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user178-key1 to person user-178@plc.org
+02:== created user account 182, user-179@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user179-key1 to person user-179@plc.org
+02:== created user account 183, user-180@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user180-key1 to person user-180@plc.org
+02:== created user account 184, user-181@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user181-key1 to person user-181@plc.org
+02:== created user account 185, user-182@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user182-key1 to person user-182@plc.org
+02:== created user account 186, user-183@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user183-key1 to person user-183@plc.org
+02:== created user account 187, user-184@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user184-key1 to person user-184@plc.org
+02:== created user account 188, user-185@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user185-key1 to person user-185@plc.org
+02:== created user account 189, user-186@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user186-key1 to person user-186@plc.org
+02:== created user account 190, user-187@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user187-key1 to person user-187@plc.org
+02:== created user account 191, user-188@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user188-key1 to person user-188@plc.org
+02:== created user account 192, user-189@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user189-key1 to person user-189@plc.org
+02:== created user account 193, user-190@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user190-key1 to person user-190@plc.org
+02:== created user account 194, user-191@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user191-key1 to person user-191@plc.org
+02:== created user account 195, user-192@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user192-key1 to person user-192@plc.org
+02:== created user account 196, user-193@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user193-key1 to person user-193@plc.org
+02:== created user account 197, user-194@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user194-key1 to person user-194@plc.org
+02:== created user account 198, user-195@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user195-key1 to person user-195@plc.org
+02:== created user account 199, user-196@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user196-key1 to person user-196@plc.org
+02:== created user account 200, user-197@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user197-key1 to person user-197@plc.org
+02:== created user account 201, user-198@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user198-key1 to person user-198@plc.org
+02:== created user account 202, user-199@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user199-key1 to person user-199@plc.org
+02:== created user account 203, user-200@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user200-key1 to person user-200@plc.org
+02:== created user account 204, user-201@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user201-key1 to person user-201@plc.org
+02:== created user account 205, user-202@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user202-key1 to person user-202@plc.org
+02:== created user account 206, user-203@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user203-key1 to person user-203@plc.org
+02:== created user account 207, user-204@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user204-key1 to person user-204@plc.org
+02:== created user account 208, user-205@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user205-key1 to person user-205@plc.org
+02:== created user account 209, user-206@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user206-key1 to person user-206@plc.org
+02:== created user account 210, user-207@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user207-key1 to person user-207@plc.org
+02:== created user account 211, user-208@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user208-key1 to person user-208@plc.org
+02:== created user account 212, user-209@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user209-key1 to person user-209@plc.org
+02:== created user account 213, user-210@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user210-key1 to person user-210@plc.org
+02:== created user account 214, user-211@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user211-key1 to person user-211@plc.org
+02:== created user account 215, user-212@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user212-key1 to person user-212@plc.org
+02:== created user account 216, user-213@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user213-key1 to person user-213@plc.org
+02:== created user account 217, user-214@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user214-key1 to person user-214@plc.org
+02:== created user account 218, user-215@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user215-key1 to person user-215@plc.org
+02:== created user account 219, user-216@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user216-key1 to person user-216@plc.org
+02:== created user account 220, user-217@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user217-key1 to person user-217@plc.org
+02:== created user account 221, user-218@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user218-key1 to person user-218@plc.org
+02:== created user account 222, user-219@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user219-key1 to person user-219@plc.org
+02:== created user account 223, user-220@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user220-key1 to person user-220@plc.org
+02:== created user account 224, user-221@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user221-key1 to person user-221@plc.org
+02:== created user account 225, user-222@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user222-key1 to person user-222@plc.org
+02:== created user account 226, user-223@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user223-key1 to person user-223@plc.org
+02:== created user account 227, user-224@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user224-key1 to person user-224@plc.org
+02:== created user account 228, user-225@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user225-key1 to person user-225@plc.org
+02:== created user account 229, user-226@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user226-key1 to person user-226@plc.org
+02:== created user account 230, user-227@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user227-key1 to person user-227@plc.org
+02:== created user account 231, user-228@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user228-key1 to person user-228@plc.org
+02:== created user account 232, user-229@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user229-key1 to person user-229@plc.org
+02:== created user account 233, user-230@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user230-key1 to person user-230@plc.org
+02:== created user account 234, user-231@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user231-key1 to person user-231@plc.org
+02:== created user account 235, user-232@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user232-key1 to person user-232@plc.org
+02:== created user account 236, user-233@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user233-key1 to person user-233@plc.org
+02:== created user account 237, user-234@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user234-key1 to person user-234@plc.org
+02:== created user account 238, user-235@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user235-key1 to person user-235@plc.org
+02:== created user account 239, user-236@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user236-key1 to person user-236@plc.org
+02:== created user account 240, user-237@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user237-key1 to person user-237@plc.org
+02:== created user account 241, user-238@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user238-key1 to person user-238@plc.org
+02:== created user account 242, user-239@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user239-key1 to person user-239@plc.org
+02:== created user account 243, user-240@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user240-key1 to person user-240@plc.org
+02:== created user account 244, user-241@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user241-key1 to person user-241@plc.org
+02:== created user account 245, user-242@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user242-key1 to person user-242@plc.org
+02:== created user account 246, user-243@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user243-key1 to person user-243@plc.org
+02:== created user account 247, user-244@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user244-key1 to person user-244@plc.org
+02:== created user account 248, user-245@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user245-key1 to person user-245@plc.org
+02:== created user account 249, user-246@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user246-key1 to person user-246@plc.org
+02:== created user account 250, user-247@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user247-key1 to person user-247@plc.org
+02:== created user account 251, user-248@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user248-key1 to person user-248@plc.org
+02:== created user account 252, user-249@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user249-key1 to person user-249@plc.org
+02:== created user account 253, user-250@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user250-key1 to person user-250@plc.org
+02:== created user account 254, user-251@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user251-key1 to person user-251@plc.org
+02:== created user account 255, user-252@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user252-key1 to person user-252@plc.org
+02:== created user account 256, user-253@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user253-key1 to person user-253@plc.org
+02:== created user account 257, user-254@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user254-key1 to person user-254@plc.org
+02:== created user account 258, user-255@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user255-key1 to person user-255@plc.org
+02:== created user account 259, user-256@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user256-key1 to person user-256@plc.org
+02:== created user account 260, user-257@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user257-key1 to person user-257@plc.org
+02:== created user account 261, user-258@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user258-key1 to person user-258@plc.org
+02:== created user account 262, user-259@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user259-key1 to person user-259@plc.org
+02:== created user account 263, user-260@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user260-key1 to person user-260@plc.org
+02:== created user account 264, user-261@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user261-key1 to person user-261@plc.org
+02:== created user account 265, user-262@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user262-key1 to person user-262@plc.org
+02:== created user account 266, user-263@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user263-key1 to person user-263@plc.org
+02:== created user account 267, user-264@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user264-key1 to person user-264@plc.org
+02:== created user account 268, user-265@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user265-key1 to person user-265@plc.org
+02:== created user account 269, user-266@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user266-key1 to person user-266@plc.org
+02:== created user account 270, user-267@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user267-key1 to person user-267@plc.org
+02:== created user account 271, user-268@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user268-key1 to person user-268@plc.org
+02:== created user account 272, user-269@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user269-key1 to person user-269@plc.org
+02:== created user account 273, user-270@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user270-key1 to person user-270@plc.org
+02:== created user account 274, user-271@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user271-key1 to person user-271@plc.org
+02:== created user account 275, user-272@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user272-key1 to person user-272@plc.org
+02:== created user account 276, user-273@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user273-key1 to person user-273@plc.org
+02:== created user account 277, user-274@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user274-key1 to person user-274@plc.org
+02:== created user account 278, user-275@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user275-key1 to person user-275@plc.org
+02:== created user account 279, user-276@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user276-key1 to person user-276@plc.org
+02:== created user account 280, user-277@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user277-key1 to person user-277@plc.org
+02:== created user account 281, user-278@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user278-key1 to person user-278@plc.org
+02:== created user account 282, user-279@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user279-key1 to person user-279@plc.org
+02:== created user account 283, user-280@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user280-key1 to person user-280@plc.org
+02:== created user account 284, user-281@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user281-key1 to person user-281@plc.org
+02:== created user account 285, user-282@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user282-key1 to person user-282@plc.org
+02:== created user account 286, user-283@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user283-key1 to person user-283@plc.org
+02:== created user account 287, user-284@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user284-key1 to person user-284@plc.org
+02:== created user account 288, user-285@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user285-key1 to person user-285@plc.org
+02:== created user account 289, user-286@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user286-key1 to person user-286@plc.org
+02:== created user account 290, user-287@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user287-key1 to person user-287@plc.org
+02:== created user account 291, user-288@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user288-key1 to person user-288@plc.org
+02:== created user account 292, user-289@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user289-key1 to person user-289@plc.org
+02:== created user account 293, user-290@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user290-key1 to person user-290@plc.org
+02:== created user account 294, user-291@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user291-key1 to person user-291@plc.org
+02:== created user account 295, user-292@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user292-key1 to person user-292@plc.org
+02:== created user account 296, user-293@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user293-key1 to person user-293@plc.org
+02:== created user account 297, user-294@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user294-key1 to person user-294@plc.org
+02:== created user account 298, user-295@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user295-key1 to person user-295@plc.org
+02:== created user account 299, user-296@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user296-key1 to person user-296@plc.org
+02:== created user account 300, user-297@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user297-key1 to person user-297@plc.org
+02:== created user account 301, user-298@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user298-key1 to person user-298@plc.org
+02:== created user account 302, user-299@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user299-key1 to person user-299@plc.org
+02:== created user account 303, user-300@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user300-key1 to person user-300@plc.org
+02:== created user account 304, user-301@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user301-key1 to person user-301@plc.org
+02:== created user account 305, user-302@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user302-key1 to person user-302@plc.org
+02:== created user account 306, user-303@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user303-key1 to person user-303@plc.org
+02:== created user account 307, user-304@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user304-key1 to person user-304@plc.org
+02:== created user account 308, user-305@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user305-key1 to person user-305@plc.org
+02:== created user account 309, user-306@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user306-key1 to person user-306@plc.org
+02:== created user account 310, user-307@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user307-key1 to person user-307@plc.org
+02:== created user account 311, user-308@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user308-key1 to person user-308@plc.org
+02:== created user account 312, user-309@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user309-key1 to person user-309@plc.org
+02:== created user account 313, user-310@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user310-key1 to person user-310@plc.org
+02:== created user account 314, user-311@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user311-key1 to person user-311@plc.org
+02:== created user account 315, user-312@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user312-key1 to person user-312@plc.org
+02:== created user account 316, user-313@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user313-key1 to person user-313@plc.org
+02:== created user account 317, user-314@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user314-key1 to person user-314@plc.org
+02:== created user account 318, user-315@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user315-key1 to person user-315@plc.org
+02:== created user account 319, user-316@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user316-key1 to person user-316@plc.org
+02:== created user account 320, user-317@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user317-key1 to person user-317@plc.org
+02:== created user account 321, user-318@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user318-key1 to person user-318@plc.org
+02:== created user account 322, user-319@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user319-key1 to person user-319@plc.org
+02:== created user account 323, user-320@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user320-key1 to person user-320@plc.org
+02:== created user account 324, user-321@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user321-key1 to person user-321@plc.org
+02:== created user account 325, user-322@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user322-key1 to person user-322@plc.org
+02:== created user account 326, user-323@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user323-key1 to person user-323@plc.org
+02:== created user account 327, user-324@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user324-key1 to person user-324@plc.org
+02:== created user account 328, user-325@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user325-key1 to person user-325@plc.org
+02:== created user account 329, user-326@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user326-key1 to person user-326@plc.org
+02:== created user account 330, user-327@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user327-key1 to person user-327@plc.org
+02:== created user account 331, user-328@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user328-key1 to person user-328@plc.org
+02:== created user account 332, user-329@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user329-key1 to person user-329@plc.org
+02:== created user account 333, user-330@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user330-key1 to person user-330@plc.org
+02:== created user account 334, user-331@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user331-key1 to person user-331@plc.org
+02:== created user account 335, user-332@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user332-key1 to person user-332@plc.org
+02:== created user account 336, user-333@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user333-key1 to person user-333@plc.org
+02:== created user account 337, user-334@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user334-key1 to person user-334@plc.org
+02:== created user account 338, user-335@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user335-key1 to person user-335@plc.org
+02:== created user account 339, user-336@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user336-key1 to person user-336@plc.org
+02:== created user account 340, user-337@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user337-key1 to person user-337@plc.org
+02:== created user account 341, user-338@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user338-key1 to person user-338@plc.org
+02:== created user account 342, user-339@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user339-key1 to person user-339@plc.org
+02:== created user account 343, user-340@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user340-key1 to person user-340@plc.org
+02:== created user account 344, user-341@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user341-key1 to person user-341@plc.org
+02:== created user account 345, user-342@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user342-key1 to person user-342@plc.org
+02:== created user account 346, user-343@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user343-key1 to person user-343@plc.org
+02:== created user account 347, user-344@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user344-key1 to person user-344@plc.org
+02:== created user account 348, user-345@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user345-key1 to person user-345@plc.org
+02:== created user account 349, user-346@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user346-key1 to person user-346@plc.org
+02:== created user account 350, user-347@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user347-key1 to person user-347@plc.org
+02:== created user account 351, user-348@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user348-key1 to person user-348@plc.org
+02:== created user account 352, user-349@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user349-key1 to person user-349@plc.org
+02:== created user account 353, user-350@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user350-key1 to person user-350@plc.org
+02:== created user account 354, user-351@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user351-key1 to person user-351@plc.org
+02:== created user account 355, user-352@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user352-key1 to person user-352@plc.org
+02:== created user account 356, user-353@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user353-key1 to person user-353@plc.org
+02:== created user account 357, user-354@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user354-key1 to person user-354@plc.org
+02:== created user account 358, user-355@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user355-key1 to person user-355@plc.org
+02:== created user account 359, user-356@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user356-key1 to person user-356@plc.org
+02:== created user account 360, user-357@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user357-key1 to person user-357@plc.org
+02:== created user account 361, user-358@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user358-key1 to person user-358@plc.org
+02:== created user account 362, user-359@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user359-key1 to person user-359@plc.org
+02:== created user account 363, user-360@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user360-key1 to person user-360@plc.org
+02:== created user account 364, user-361@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user361-key1 to person user-361@plc.org
+02:== created user account 365, user-362@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user362-key1 to person user-362@plc.org
+02:== created user account 366, user-363@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user363-key1 to person user-363@plc.org
+02:== created user account 367, user-364@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user364-key1 to person user-364@plc.org
+02:== created user account 368, user-365@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user365-key1 to person user-365@plc.org
+02:== created user account 369, user-366@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user366-key1 to person user-366@plc.org
+02:== created user account 370, user-367@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user367-key1 to person user-367@plc.org
+02:== created user account 371, user-368@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user368-key1 to person user-368@plc.org
+02:== created user account 372, user-369@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user369-key1 to person user-369@plc.org
+02:== created user account 373, user-370@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user370-key1 to person user-370@plc.org
+02:== created user account 374, user-371@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user371-key1 to person user-371@plc.org
+02:== created user account 375, user-372@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user372-key1 to person user-372@plc.org
+02:== created user account 376, user-373@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user373-key1 to person user-373@plc.org
+02:== created user account 377, user-374@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user374-key1 to person user-374@plc.org
+02:== created user account 378, user-375@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user375-key1 to person user-375@plc.org
+02:== created user account 379, user-376@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user376-key1 to person user-376@plc.org
+02:== created user account 380, user-377@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user377-key1 to person user-377@plc.org
+02:== created user account 381, user-378@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user378-key1 to person user-378@plc.org
+02:== created user account 382, user-379@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user379-key1 to person user-379@plc.org
+02:== created user account 383, user-380@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user380-key1 to person user-380@plc.org
+02:== created user account 384, user-381@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user381-key1 to person user-381@plc.org
+02:== created user account 385, user-382@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user382-key1 to person user-382@plc.org
+02:== created user account 386, user-383@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user383-key1 to person user-383@plc.org
+02:== created user account 387, user-384@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user384-key1 to person user-384@plc.org
+02:== created user account 388, user-385@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user385-key1 to person user-385@plc.org
+02:== created user account 389, user-386@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user386-key1 to person user-386@plc.org
+02:== created user account 390, user-387@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user387-key1 to person user-387@plc.org
+02:== created user account 391, user-388@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user388-key1 to person user-388@plc.org
+02:== created user account 392, user-389@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user389-key1 to person user-389@plc.org
+02:== created user account 393, user-390@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user390-key1 to person user-390@plc.org
+02:== created user account 394, user-391@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user391-key1 to person user-391@plc.org
+02:== created user account 395, user-392@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user392-key1 to person user-392@plc.org
+02:== created user account 396, user-393@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user393-key1 to person user-393@plc.org
+02:== created user account 397, user-394@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user394-key1 to person user-394@plc.org
+02:== created user account 398, user-395@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user395-key1 to person user-395@plc.org
+02:== created user account 399, user-396@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user396-key1 to person user-396@plc.org
+02:== created user account 400, user-397@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user397-key1 to person user-397@plc.org
+02:== created user account 401, user-398@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user398-key1 to person user-398@plc.org
+02:== created user account 402, user-399@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user399-key1 to person user-399@plc.org
+02:== created user account 403, user-400@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user400-key1 to person user-400@plc.org
+02:== created user account 404, user-401@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user401-key1 to person user-401@plc.org
+02:== created user account 405, user-402@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user402-key1 to person user-402@plc.org
+02:== created user account 406, user-403@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user403-key1 to person user-403@plc.org
+02:== created user account 407, user-404@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user404-key1 to person user-404@plc.org
+02:== created user account 408, user-405@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user405-key1 to person user-405@plc.org
+02:== created user account 409, user-406@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user406-key1 to person user-406@plc.org
+02:== created user account 410, user-407@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user407-key1 to person user-407@plc.org
+02:== created user account 411, user-408@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user408-key1 to person user-408@plc.org
+02:== created user account 412, user-409@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user409-key1 to person user-409@plc.org
+02:== created user account 413, user-410@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user410-key1 to person user-410@plc.org
+02:== created user account 414, user-411@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user411-key1 to person user-411@plc.org
+02:== created user account 415, user-412@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user412-key1 to person user-412@plc.org
+02:== created user account 416, user-413@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user413-key1 to person user-413@plc.org
+02:== created user account 417, user-414@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user414-key1 to person user-414@plc.org
+02:== created user account 418, user-415@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user415-key1 to person user-415@plc.org
+02:== created user account 419, user-416@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user416-key1 to person user-416@plc.org
+02:== created user account 420, user-417@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user417-key1 to person user-417@plc.org
+02:== created user account 421, user-418@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user418-key1 to person user-418@plc.org
+02:== created user account 422, user-419@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user419-key1 to person user-419@plc.org
+02:== created user account 423, user-420@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user420-key1 to person user-420@plc.org
+02:== created user account 424, user-421@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user421-key1 to person user-421@plc.org
+02:== created user account 425, user-422@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user422-key1 to person user-422@plc.org
+02:== created user account 426, user-423@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user423-key1 to person user-423@plc.org
+02:== created user account 427, user-424@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user424-key1 to person user-424@plc.org
+02:== created user account 428, user-425@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user425-key1 to person user-425@plc.org
+02:== created user account 429, user-426@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user426-key1 to person user-426@plc.org
+02:== created user account 430, user-427@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user427-key1 to person user-427@plc.org
+02:== created user account 431, user-428@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user428-key1 to person user-428@plc.org
+02:== created user account 432, user-429@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user429-key1 to person user-429@plc.org
+02:== created user account 433, user-430@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user430-key1 to person user-430@plc.org
+02:== created user account 434, user-431@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user431-key1 to person user-431@plc.org
+02:== created user account 435, user-432@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user432-key1 to person user-432@plc.org
+02:== created user account 436, user-433@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user433-key1 to person user-433@plc.org
+02:== created user account 437, user-434@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user434-key1 to person user-434@plc.org
+02:== created user account 438, user-435@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user435-key1 to person user-435@plc.org
+02:== created user account 439, user-436@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user436-key1 to person user-436@plc.org
+02:== created user account 440, user-437@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user437-key1 to person user-437@plc.org
+02:== created user account 441, user-438@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user438-key1 to person user-438@plc.org
+02:== created user account 442, user-439@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user439-key1 to person user-439@plc.org
+02:== created user account 443, user-440@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user440-key1 to person user-440@plc.org
+02:== created user account 444, user-441@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user441-key1 to person user-441@plc.org
+02:== created user account 445, user-442@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user442-key1 to person user-442@plc.org
+02:== created user account 446, user-443@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user443-key1 to person user-443@plc.org
+02:== created user account 447, user-444@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user444-key1 to person user-444@plc.org
+02:== created user account 448, user-445@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user445-key1 to person user-445@plc.org
+02:== created user account 449, user-446@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user446-key1 to person user-446@plc.org
+02:== created user account 450, user-447@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user447-key1 to person user-447@plc.org
+02:== created user account 451, user-448@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user448-key1 to person user-448@plc.org
+02:== created user account 452, user-449@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user449-key1 to person user-449@plc.org
+02:== created user account 453, user-450@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user450-key1 to person user-450@plc.org
+02:== created user account 454, user-451@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user451-key1 to person user-451@plc.org
+02:== created user account 455, user-452@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user452-key1 to person user-452@plc.org
+02:== created user account 456, user-453@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user453-key1 to person user-453@plc.org
+02:== created user account 457, user-454@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user454-key1 to person user-454@plc.org
+02:== created user account 458, user-455@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user455-key1 to person user-455@plc.org
+02:== created user account 459, user-456@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user456-key1 to person user-456@plc.org
+02:== created user account 460, user-457@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user457-key1 to person user-457@plc.org
+02:== created user account 461, user-458@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user458-key1 to person user-458@plc.org
+02:== created user account 462, user-459@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user459-key1 to person user-459@plc.org
+02:== created user account 463, user-460@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user460-key1 to person user-460@plc.org
+02:== created user account 464, user-461@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user461-key1 to person user-461@plc.org
+02:== created user account 465, user-462@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user462-key1 to person user-462@plc.org
+02:== created user account 466, user-463@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user463-key1 to person user-463@plc.org
+02:== created user account 467, user-464@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user464-key1 to person user-464@plc.org
+02:== created user account 468, user-465@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user465-key1 to person user-465@plc.org
+02:== created user account 469, user-466@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user466-key1 to person user-466@plc.org
+02:== created user account 470, user-467@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user467-key1 to person user-467@plc.org
+02:== created user account 471, user-468@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user468-key1 to person user-468@plc.org
+02:== created user account 472, user-469@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user469-key1 to person user-469@plc.org
+02:== created user account 473, user-470@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user470-key1 to person user-470@plc.org
+02:== created user account 474, user-471@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user471-key1 to person user-471@plc.org
+02:== created user account 475, user-472@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user472-key1 to person user-472@plc.org
+02:== created user account 476, user-473@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user473-key1 to person user-473@plc.org
+02:== created user account 477, user-474@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user474-key1 to person user-474@plc.org
+02:== created user account 478, user-475@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user475-key1 to person user-475@plc.org
+02:== created user account 479, user-476@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user476-key1 to person user-476@plc.org
+02:== created user account 480, user-477@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user477-key1 to person user-477@plc.org
+02:== created user account 481, user-478@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user478-key1 to person user-478@plc.org
+02:== created user account 482, user-479@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user479-key1 to person user-479@plc.org
+02:== created user account 483, user-480@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user480-key1 to person user-480@plc.org
+02:== created user account 484, user-481@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user481-key1 to person user-481@plc.org
+02:== created user account 485, user-482@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user482-key1 to person user-482@plc.org
+02:== created user account 486, user-483@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user483-key1 to person user-483@plc.org
+02:== created user account 487, user-484@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user484-key1 to person user-484@plc.org
+02:== created user account 488, user-485@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user485-key1 to person user-485@plc.org
+02:== created user account 489, user-486@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user486-key1 to person user-486@plc.org
+02:== created user account 490, user-487@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user487-key1 to person user-487@plc.org
+02:== created user account 491, user-488@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user488-key1 to person user-488@plc.org
+02:== created user account 492, user-489@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user489-key1 to person user-489@plc.org
+02:== created user account 493, user-490@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user490-key1 to person user-490@plc.org
+02:== created user account 494, user-491@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user491-key1 to person user-491@plc.org
+02:== created user account 495, user-492@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user492-key1 to person user-492@plc.org
+02:== created user account 496, user-493@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user493-key1 to person user-493@plc.org
+02:== created user account 497, user-494@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user494-key1 to person user-494@plc.org
+02:== created user account 498, user-495@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user495-key1 to person user-495@plc.org
+02:== created user account 499, user-496@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user496-key1 to person user-496@plc.org
+02:== created user account 500, user-497@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user497-key1 to person user-497@plc.org
+02:== created user account 501, user-498@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user498-key1 to person user-498@plc.org
+02:== created user account 502, user-499@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user499-key1 to person user-499@plc.org
+02:== created user account 503, user-500@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user500-key1 to person user-500@plc.org
++++ 60.48 seconds ellapsed (44.05)
+Dummy method GetNodes on remote peer 1 skipped
+Dummy method AddNode on remote peer 1 skipped
+02:== Added node 1 n2-001.plc2.org
+02:== Added node 2 n2-002.plc2.org
+02:== Added node 3 n2-003.plc2.org
+02:== Added node 4 n2-004.plc2.org
+02:== Added node 5 n2-005.plc2.org
+02:== Added node 6 n2-006.plc2.org
+02:== Added node 7 n2-007.plc2.org
+02:== Added node 8 n2-008.plc2.org
+02:== Added node 9 n2-009.plc2.org
+02:== Added node 10 n2-010.plc2.org
+02:== Added node 11 n2-011.plc2.org
+02:== Added node 12 n2-012.plc2.org
+02:== Added node 13 n2-013.plc2.org
+02:== Added node 14 n2-014.plc2.org
+02:== Added node 15 n2-015.plc2.org
+02:== Added node 16 n2-016.plc2.org
+02:== Added node 17 n2-017.plc2.org
+02:== Added node 18 n2-018.plc2.org
+02:== Added node 19 n2-019.plc2.org
+02:== Added node 20 n2-020.plc2.org
+02:== Added node 21 n2-021.plc2.org
+02:== Added node 22 n2-022.plc2.org
+02:== Added node 23 n2-023.plc2.org
+02:== Added node 24 n2-024.plc2.org
+02:== Added node 25 n2-025.plc2.org
+02:== Added node 26 n2-026.plc2.org
+02:== Added node 27 n2-027.plc2.org
+02:== Added node 28 n2-028.plc2.org
+02:== Added node 29 n2-029.plc2.org
+02:== Added node 30 n2-030.plc2.org
+02:== Added node 31 n2-031.plc2.org
+02:== Added node 32 n2-032.plc2.org
+02:== Added node 33 n2-033.plc2.org
+02:== Added node 34 n2-034.plc2.org
+02:== Added node 35 n2-035.plc2.org
+02:== Added node 36 n2-036.plc2.org
+02:== Added node 37 n2-037.plc2.org
+02:== Added node 38 n2-038.plc2.org
+02:== Added node 39 n2-039.plc2.org
+02:== Added node 40 n2-040.plc2.org
+02:== Added node 41 n2-041.plc2.org
+02:== Added node 42 n2-042.plc2.org
+02:== Added node 43 n2-043.plc2.org
+02:== Added node 44 n2-044.plc2.org
+02:== Added node 45 n2-045.plc2.org
+02:== Added node 46 n2-046.plc2.org
+02:== Added node 47 n2-047.plc2.org
+02:== Added node 48 n2-048.plc2.org
+02:== Added node 49 n2-049.plc2.org
+02:== Added node 50 n2-050.plc2.org
+02:== Added node 51 n2-051.plc2.org
+02:== Added node 52 n2-052.plc2.org
+02:== Added node 53 n2-053.plc2.org
+02:== Added node 54 n2-054.plc2.org
+02:== Added node 55 n2-055.plc2.org
+02:== Added node 56 n2-056.plc2.org
+02:== Added node 57 n2-057.plc2.org
+02:== Added node 58 n2-058.plc2.org
+02:== Added node 59 n2-059.plc2.org
+02:== Added node 60 n2-060.plc2.org
+02:== Added node 61 n2-061.plc2.org
+02:== Added node 62 n2-062.plc2.org
+02:== Added node 63 n2-063.plc2.org
+02:== Added node 64 n2-064.plc2.org
+02:== Added node 65 n2-065.plc2.org
+02:== Added node 66 n2-066.plc2.org
+02:== Added node 67 n2-067.plc2.org
+02:== Added node 68 n2-068.plc2.org
+02:== Added node 69 n2-069.plc2.org
+02:== Added node 70 n2-070.plc2.org
+02:== Added node 71 n2-071.plc2.org
+02:== Added node 72 n2-072.plc2.org
+02:== Added node 73 n2-073.plc2.org
+02:== Added node 74 n2-074.plc2.org
+02:== Added node 75 n2-075.plc2.org
+02:== Added node 76 n2-076.plc2.org
+02:== Added node 77 n2-077.plc2.org
+02:== Added node 78 n2-078.plc2.org
+02:== Added node 79 n2-079.plc2.org
+02:== Added node 80 n2-080.plc2.org
+02:== Added node 81 n2-081.plc2.org
+02:== Added node 82 n2-082.plc2.org
+02:== Added node 83 n2-083.plc2.org
+02:== Added node 84 n2-084.plc2.org
+02:== Added node 85 n2-085.plc2.org
+02:== Added node 86 n2-086.plc2.org
+02:== Added node 87 n2-087.plc2.org
+02:== Added node 88 n2-088.plc2.org
+02:== Added node 89 n2-089.plc2.org
+02:== Added node 90 n2-090.plc2.org
+02:== Added node 91 n2-091.plc2.org
+02:== Added node 92 n2-092.plc2.org
+02:== Added node 93 n2-093.plc2.org
+02:== Added node 94 n2-094.plc2.org
+02:== Added node 95 n2-095.plc2.org
+02:== Added node 96 n2-096.plc2.org
+02:== Added node 97 n2-097.plc2.org
+02:== Added node 98 n2-098.plc2.org
+02:== Added node 99 n2-099.plc2.org
+02:== Added node 100 n2-100.plc2.org
+02:== Added node 101 n2-101.plc2.org
+02:== Added node 102 n2-102.plc2.org
+02:== Added node 103 n2-103.plc2.org
+02:== Added node 104 n2-104.plc2.org
+02:== Added node 105 n2-105.plc2.org
+02:== Added node 106 n2-106.plc2.org
+02:== Added node 107 n2-107.plc2.org
+02:== Added node 108 n2-108.plc2.org
+02:== Added node 109 n2-109.plc2.org
+02:== Added node 110 n2-110.plc2.org
+02:== Added node 111 n2-111.plc2.org
+02:== Added node 112 n2-112.plc2.org
+02:== Added node 113 n2-113.plc2.org
+02:== Added node 114 n2-114.plc2.org
+02:== Added node 115 n2-115.plc2.org
+02:== Added node 116 n2-116.plc2.org
+02:== Added node 117 n2-117.plc2.org
+02:== Added node 118 n2-118.plc2.org
+02:== Added node 119 n2-119.plc2.org
+02:== Added node 120 n2-120.plc2.org
+02:== Added node 121 n2-121.plc2.org
+02:== Added node 122 n2-122.plc2.org
+02:== Added node 123 n2-123.plc2.org
+02:== Added node 124 n2-124.plc2.org
+02:== Added node 125 n2-125.plc2.org
+02:== Added node 126 n2-126.plc2.org
+02:== Added node 127 n2-127.plc2.org
+02:== Added node 128 n2-128.plc2.org
+02:== Added node 129 n2-129.plc2.org
+02:== Added node 130 n2-130.plc2.org
+02:== Added node 131 n2-131.plc2.org
+02:== Added node 132 n2-132.plc2.org
+02:== Added node 133 n2-133.plc2.org
+02:== Added node 134 n2-134.plc2.org
+02:== Added node 135 n2-135.plc2.org
+02:== Added node 136 n2-136.plc2.org
+02:== Added node 137 n2-137.plc2.org
+02:== Added node 138 n2-138.plc2.org
+02:== Added node 139 n2-139.plc2.org
+02:== Added node 140 n2-140.plc2.org
+02:== Added node 141 n2-141.plc2.org
+02:== Added node 142 n2-142.plc2.org
+02:== Added node 143 n2-143.plc2.org
+02:== Added node 144 n2-144.plc2.org
+02:== Added node 145 n2-145.plc2.org
+02:== Added node 146 n2-146.plc2.org
+02:== Added node 147 n2-147.plc2.org
+02:== Added node 148 n2-148.plc2.org
+02:== Added node 149 n2-149.plc2.org
+02:== Added node 150 n2-150.plc2.org
+02:== Added node 151 n2-151.plc2.org
+02:== Added node 152 n2-152.plc2.org
+02:== Added node 153 n2-153.plc2.org
+02:== Added node 154 n2-154.plc2.org
+02:== Added node 155 n2-155.plc2.org
+02:== Added node 156 n2-156.plc2.org
+02:== Added node 157 n2-157.plc2.org
+02:== Added node 158 n2-158.plc2.org
+02:== Added node 159 n2-159.plc2.org
+02:== Added node 160 n2-160.plc2.org
+02:== Added node 161 n2-161.plc2.org
+02:== Added node 162 n2-162.plc2.org
+02:== Added node 163 n2-163.plc2.org
+02:== Added node 164 n2-164.plc2.org
+02:== Added node 165 n2-165.plc2.org
+02:== Added node 166 n2-166.plc2.org
+02:== Added node 167 n2-167.plc2.org
+02:== Added node 168 n2-168.plc2.org
+02:== Added node 169 n2-169.plc2.org
+02:== Added node 170 n2-170.plc2.org
+02:== Added node 171 n2-171.plc2.org
+02:== Added node 172 n2-172.plc2.org
+02:== Added node 173 n2-173.plc2.org
+02:== Added node 174 n2-174.plc2.org
+02:== Added node 175 n2-175.plc2.org
+02:== Added node 176 n2-176.plc2.org
+02:== Added node 177 n2-177.plc2.org
+02:== Added node 178 n2-178.plc2.org
+02:== Added node 179 n2-179.plc2.org
+02:== Added node 180 n2-180.plc2.org
+02:== Added node 181 n2-181.plc2.org
+02:== Added node 182 n2-182.plc2.org
+02:== Added node 183 n2-183.plc2.org
+02:== Added node 184 n2-184.plc2.org
+02:== Added node 185 n2-185.plc2.org
+02:== Added node 186 n2-186.plc2.org
+02:== Added node 187 n2-187.plc2.org
+02:== Added node 188 n2-188.plc2.org
+02:== Added node 189 n2-189.plc2.org
+02:== Added node 190 n2-190.plc2.org
+02:== Added node 191 n2-191.plc2.org
+02:== Added node 192 n2-192.plc2.org
+02:== Added node 193 n2-193.plc2.org
+02:== Added node 194 n2-194.plc2.org
+02:== Added node 195 n2-195.plc2.org
+02:== Added node 196 n2-196.plc2.org
+02:== Added node 197 n2-197.plc2.org
+02:== Added node 198 n2-198.plc2.org
+02:== Added node 199 n2-199.plc2.org
+02:== Added node 200 n2-200.plc2.org
+02:== Added node 201 n2-201.plc2.org
+02:== Added node 202 n2-202.plc2.org
+02:== Added node 203 n2-203.plc2.org
+02:== Added node 204 n2-204.plc2.org
+02:== Added node 205 n2-205.plc2.org
+02:== Added node 206 n2-206.plc2.org
+02:== Added node 207 n2-207.plc2.org
+02:== Added node 208 n2-208.plc2.org
+02:== Added node 209 n2-209.plc2.org
+02:== Added node 210 n2-210.plc2.org
+02:== Added node 211 n2-211.plc2.org
+02:== Added node 212 n2-212.plc2.org
+02:== Added node 213 n2-213.plc2.org
+02:== Added node 214 n2-214.plc2.org
+02:== Added node 215 n2-215.plc2.org
+02:== Added node 216 n2-216.plc2.org
+02:== Added node 217 n2-217.plc2.org
+02:== Added node 218 n2-218.plc2.org
+02:== Added node 219 n2-219.plc2.org
+02:== Added node 220 n2-220.plc2.org
+02:== Added node 221 n2-221.plc2.org
+02:== Added node 222 n2-222.plc2.org
+02:== Added node 223 n2-223.plc2.org
+02:== Added node 224 n2-224.plc2.org
+02:== Added node 225 n2-225.plc2.org
+02:== Added node 226 n2-226.plc2.org
+02:== Added node 227 n2-227.plc2.org
+02:== Added node 228 n2-228.plc2.org
+02:== Added node 229 n2-229.plc2.org
+02:== Added node 230 n2-230.plc2.org
+02:== Added node 231 n2-231.plc2.org
+02:== Added node 232 n2-232.plc2.org
+02:== Added node 233 n2-233.plc2.org
+02:== Added node 234 n2-234.plc2.org
+02:== Added node 235 n2-235.plc2.org
+02:== Added node 236 n2-236.plc2.org
+02:== Added node 237 n2-237.plc2.org
+02:== Added node 238 n2-238.plc2.org
+02:== Added node 239 n2-239.plc2.org
+02:== Added node 240 n2-240.plc2.org
+02:== Added node 241 n2-241.plc2.org
+02:== Added node 242 n2-242.plc2.org
+02:== Added node 243 n2-243.plc2.org
+02:== Added node 244 n2-244.plc2.org
+02:== Added node 245 n2-245.plc2.org
+02:== Added node 246 n2-246.plc2.org
+02:== Added node 247 n2-247.plc2.org
+02:== Added node 248 n2-248.plc2.org
+02:== Added node 249 n2-249.plc2.org
+02:== Added node 250 n2-250.plc2.org
+02:== Added node 251 n2-251.plc2.org
+02:== Added node 252 n2-252.plc2.org
+02:== Added node 253 n2-253.plc2.org
+02:== Added node 254 n2-254.plc2.org
+02:== Added node 255 n2-255.plc2.org
+02:== Added node 256 n2-256.plc2.org
+02:== Added node 257 n2-257.plc2.org
+02:== Added node 258 n2-258.plc2.org
+02:== Added node 259 n2-259.plc2.org
+02:== Added node 260 n2-260.plc2.org
+02:== Added node 261 n2-261.plc2.org
+02:== Added node 262 n2-262.plc2.org
+02:== Added node 263 n2-263.plc2.org
+02:== Added node 264 n2-264.plc2.org
+02:== Added node 265 n2-265.plc2.org
+02:== Added node 266 n2-266.plc2.org
+02:== Added node 267 n2-267.plc2.org
+02:== Added node 268 n2-268.plc2.org
+02:== Added node 269 n2-269.plc2.org
+02:== Added node 270 n2-270.plc2.org
+02:== Added node 271 n2-271.plc2.org
+02:== Added node 272 n2-272.plc2.org
+02:== Added node 273 n2-273.plc2.org
+02:== Added node 274 n2-274.plc2.org
+02:== Added node 275 n2-275.plc2.org
+02:== Added node 276 n2-276.plc2.org
+02:== Added node 277 n2-277.plc2.org
+02:== Added node 278 n2-278.plc2.org
+02:== Added node 279 n2-279.plc2.org
+02:== Added node 280 n2-280.plc2.org
+02:== Added node 281 n2-281.plc2.org
+02:== Added node 282 n2-282.plc2.org
+02:== Added node 283 n2-283.plc2.org
+02:== Added node 284 n2-284.plc2.org
+02:== Added node 285 n2-285.plc2.org
+02:== Added node 286 n2-286.plc2.org
+02:== Added node 287 n2-287.plc2.org
+02:== Added node 288 n2-288.plc2.org
+02:== Added node 289 n2-289.plc2.org
+02:== Added node 290 n2-290.plc2.org
+02:== Added node 291 n2-291.plc2.org
+02:== Added node 292 n2-292.plc2.org
+02:== Added node 293 n2-293.plc2.org
+02:== Added node 294 n2-294.plc2.org
+02:== Added node 295 n2-295.plc2.org
+02:== Added node 296 n2-296.plc2.org
+02:== Added node 297 n2-297.plc2.org
+02:== Added node 298 n2-298.plc2.org
+02:== Added node 299 n2-299.plc2.org
+02:== Added node 300 n2-300.plc2.org
+02:== Added node 301 n2-301.plc2.org
+02:== Added node 302 n2-302.plc2.org
+02:== Added node 303 n2-303.plc2.org
+02:== Added node 304 n2-304.plc2.org
+02:== Added node 305 n2-305.plc2.org
+02:== Added node 306 n2-306.plc2.org
+02:== Added node 307 n2-307.plc2.org
+02:== Added node 308 n2-308.plc2.org
+02:== Added node 309 n2-309.plc2.org
+02:== Added node 310 n2-310.plc2.org
+02:== Added node 311 n2-311.plc2.org
+02:== Added node 312 n2-312.plc2.org
+02:== Added node 313 n2-313.plc2.org
+02:== Added node 314 n2-314.plc2.org
+02:== Added node 315 n2-315.plc2.org
+02:== Added node 316 n2-316.plc2.org
+02:== Added node 317 n2-317.plc2.org
+02:== Added node 318 n2-318.plc2.org
+02:== Added node 319 n2-319.plc2.org
+02:== Added node 320 n2-320.plc2.org
+02:== Added node 321 n2-321.plc2.org
+02:== Added node 322 n2-322.plc2.org
+02:== Added node 323 n2-323.plc2.org
+02:== Added node 324 n2-324.plc2.org
+02:== Added node 325 n2-325.plc2.org
+02:== Added node 326 n2-326.plc2.org
+02:== Added node 327 n2-327.plc2.org
+02:== Added node 328 n2-328.plc2.org
+02:== Added node 329 n2-329.plc2.org
+02:== Added node 330 n2-330.plc2.org
+02:== Added node 331 n2-331.plc2.org
+02:== Added node 332 n2-332.plc2.org
+02:== Added node 333 n2-333.plc2.org
+02:== Added node 334 n2-334.plc2.org
+02:== Added node 335 n2-335.plc2.org
+02:== Added node 336 n2-336.plc2.org
+02:== Added node 337 n2-337.plc2.org
+02:== Added node 338 n2-338.plc2.org
+02:== Added node 339 n2-339.plc2.org
+02:== Added node 340 n2-340.plc2.org
+02:== Added node 341 n2-341.plc2.org
+02:== Added node 342 n2-342.plc2.org
+02:== Added node 343 n2-343.plc2.org
+02:== Added node 344 n2-344.plc2.org
+02:== Added node 345 n2-345.plc2.org
+02:== Added node 346 n2-346.plc2.org
+02:== Added node 347 n2-347.plc2.org
+02:== Added node 348 n2-348.plc2.org
+02:== Added node 349 n2-349.plc2.org
+02:== Added node 350 n2-350.plc2.org
++++ 82.48 seconds ellapsed (22.00)
+Dummy method GetSlices on remote peer 1 skipped
+Dummy method AddSlice on remote peer 1 skipped
++++ 82.52 seconds ellapsed (0.04)
+Dummy method AddSliceToNodes on remote peer 1 skipped
++++ 82.55 seconds ellapsed (0.03)
+Dummy method GetSliceAttributeTypes on remote peer 1 skipped
+Dummy method AddSliceAttributeType on remote peer 1 skipped
+02:== created SliceAttributeType = 23
++++ 82.59 seconds ellapsed (0.04)
+Dummy method GetSliceAttributes on remote peer 1 skipped
+slice_name oneb_slice1 sat_name sat_1
+Dummy method AddSliceAttribute on remote peer 1 skipped
+slice_name oneb_slice1 sat_name vref
++++ 82.59 seconds ellapsed (0.00)
+==================== ('END',)
++++ 82.59 seconds ellapsed (0.00)
diff --git a/trunk/tests/testpeers.-b.populate_end.ref b/trunk/tests/testpeers.-b.populate_end.ref
new file mode 100644 (file)
index 0000000..5828012
--- /dev/null
@@ -0,0 +1,9838 @@
+options {'local_peer': None, 'plc1': '', 'plc2': '', 'factor': 1, 'debug': False, 'size': 'big'} args ['populate_end']
+200 sites, 500 persons, 350 nodes & 500 slices
+1 keys/person, 1 nodes/slice & 3 persons/slice
+fast_flag True
+funcname populate_end
+dir() ['args', 'funcname', 'options', 'parser', 'size_func', 'steps', 'usage']
++++ timer start
+initializing s[1]=>https://caicol.inria.fr:443/PLCAPI/ user= peer1@planet-lab.org
+initializing s[2]=>https://jamaica.inria.fr:443/PLCAPI/ user= peer2@planet-lab.org
+=== refresh Peer 1 for publishing foreign nodes from 2
++++ 0.23 seconds ellapsed (0.23)
+01:== Refreshing peer
++++ ellapsed: { keys 3.86614894867 local_nodes 0.370403051376 nodes 5.45698714256 peer_db 0.487825870514 persons 7.62666392326 site 2.57800078392 slices 0.0184271335602 transport 8.18339824677 }
++++ 31.18 seconds ellapsed (30.95)
++++ 31.18 seconds ellapsed (0.00)
+01:== added in slice oneb_slice1 foreign  ['n2-001.plc2.org']
+01:== added in slice onec_slice2 foreign  ['n2-002.plc2.org']
+01:== added in slice oned_slice3 foreign  ['n2-003.plc2.org']
+01:== added in slice onee_slice4 foreign  ['n2-004.plc2.org']
+01:== added in slice onef_slice5 foreign  ['n2-005.plc2.org']
+01:== added in slice oneg_slice6 foreign  ['n2-006.plc2.org']
+01:== added in slice oneh_slice7 foreign  ['n2-007.plc2.org']
+01:== added in slice onei_slice8 foreign  ['n2-008.plc2.org']
+01:== added in slice onej_slice9 foreign  ['n2-009.plc2.org']
+01:== added in slice oneba_slice10 foreign  ['n2-010.plc2.org']
+01:== added in slice onebb_slice11 foreign  ['n2-011.plc2.org']
+01:== added in slice onebc_slice12 foreign  ['n2-012.plc2.org']
+01:== added in slice onebd_slice13 foreign  ['n2-013.plc2.org']
+01:== added in slice onebe_slice14 foreign  ['n2-014.plc2.org']
+01:== added in slice onebf_slice15 foreign  ['n2-015.plc2.org']
+01:== added in slice onebg_slice16 foreign  ['n2-016.plc2.org']
+01:== added in slice onebh_slice17 foreign  ['n2-017.plc2.org']
+01:== added in slice onebi_slice18 foreign  ['n2-018.plc2.org']
+01:== added in slice onebj_slice19 foreign  ['n2-019.plc2.org']
+01:== added in slice oneca_slice20 foreign  ['n2-020.plc2.org']
+01:== added in slice onecb_slice21 foreign  ['n2-021.plc2.org']
+01:== added in slice onecc_slice22 foreign  ['n2-022.plc2.org']
+01:== added in slice onecd_slice23 foreign  ['n2-023.plc2.org']
+01:== added in slice onece_slice24 foreign  ['n2-024.plc2.org']
+01:== added in slice onecf_slice25 foreign  ['n2-025.plc2.org']
+01:== added in slice onecg_slice26 foreign  ['n2-026.plc2.org']
+01:== added in slice onech_slice27 foreign  ['n2-027.plc2.org']
+01:== added in slice oneci_slice28 foreign  ['n2-028.plc2.org']
+01:== added in slice onecj_slice29 foreign  ['n2-029.plc2.org']
+01:== added in slice oneda_slice30 foreign  ['n2-030.plc2.org']
+01:== added in slice onedb_slice31 foreign  ['n2-031.plc2.org']
+01:== added in slice onedc_slice32 foreign  ['n2-032.plc2.org']
+01:== added in slice onedd_slice33 foreign  ['n2-033.plc2.org']
+01:== added in slice onede_slice34 foreign  ['n2-034.plc2.org']
+01:== added in slice onedf_slice35 foreign  ['n2-035.plc2.org']
+01:== added in slice onedg_slice36 foreign  ['n2-036.plc2.org']
+01:== added in slice onedh_slice37 foreign  ['n2-037.plc2.org']
+01:== added in slice onedi_slice38 foreign  ['n2-038.plc2.org']
+01:== added in slice onedj_slice39 foreign  ['n2-039.plc2.org']
+01:== added in slice oneea_slice40 foreign  ['n2-040.plc2.org']
+01:== added in slice oneeb_slice41 foreign  ['n2-041.plc2.org']
+01:== added in slice oneec_slice42 foreign  ['n2-042.plc2.org']
+01:== added in slice oneed_slice43 foreign  ['n2-043.plc2.org']
+01:== added in slice oneee_slice44 foreign  ['n2-044.plc2.org']
+01:== added in slice oneef_slice45 foreign  ['n2-045.plc2.org']
+01:== added in slice oneeg_slice46 foreign  ['n2-046.plc2.org']
+01:== added in slice oneeh_slice47 foreign  ['n2-047.plc2.org']
+01:== added in slice oneei_slice48 foreign  ['n2-048.plc2.org']
+01:== added in slice oneej_slice49 foreign  ['n2-049.plc2.org']
+01:== added in slice onefa_slice50 foreign  ['n2-050.plc2.org']
+01:== added in slice onefb_slice51 foreign  ['n2-051.plc2.org']
+01:== added in slice onefc_slice52 foreign  ['n2-052.plc2.org']
+01:== added in slice onefd_slice53 foreign  ['n2-053.plc2.org']
+01:== added in slice onefe_slice54 foreign  ['n2-054.plc2.org']
+01:== added in slice oneff_slice55 foreign  ['n2-055.plc2.org']
+01:== added in slice onefg_slice56 foreign  ['n2-056.plc2.org']
+01:== added in slice onefh_slice57 foreign  ['n2-057.plc2.org']
+01:== added in slice onefi_slice58 foreign  ['n2-058.plc2.org']
+01:== added in slice onefj_slice59 foreign  ['n2-059.plc2.org']
+01:== added in slice onega_slice60 foreign  ['n2-060.plc2.org']
+01:== added in slice onegb_slice61 foreign  ['n2-061.plc2.org']
+01:== added in slice onegc_slice62 foreign  ['n2-062.plc2.org']
+01:== added in slice onegd_slice63 foreign  ['n2-063.plc2.org']
+01:== added in slice onege_slice64 foreign  ['n2-064.plc2.org']
+01:== added in slice onegf_slice65 foreign  ['n2-065.plc2.org']
+01:== added in slice onegg_slice66 foreign  ['n2-066.plc2.org']
+01:== added in slice onegh_slice67 foreign  ['n2-067.plc2.org']
+01:== added in slice onegi_slice68 foreign  ['n2-068.plc2.org']
+01:== added in slice onegj_slice69 foreign  ['n2-069.plc2.org']
+01:== added in slice oneha_slice70 foreign  ['n2-070.plc2.org']
+01:== added in slice onehb_slice71 foreign  ['n2-071.plc2.org']
+01:== added in slice onehc_slice72 foreign  ['n2-072.plc2.org']
+01:== added in slice onehd_slice73 foreign  ['n2-073.plc2.org']
+01:== added in slice onehe_slice74 foreign  ['n2-074.plc2.org']
+01:== added in slice onehf_slice75 foreign  ['n2-075.plc2.org']
+01:== added in slice onehg_slice76 foreign  ['n2-076.plc2.org']
+01:== added in slice onehh_slice77 foreign  ['n2-077.plc2.org']
+01:== added in slice onehi_slice78 foreign  ['n2-078.plc2.org']
+01:== added in slice onehj_slice79 foreign  ['n2-079.plc2.org']
+01:== added in slice oneia_slice80 foreign  ['n2-080.plc2.org']
+01:== added in slice oneib_slice81 foreign  ['n2-081.plc2.org']
+01:== added in slice oneic_slice82 foreign  ['n2-082.plc2.org']
+01:== added in slice oneid_slice83 foreign  ['n2-083.plc2.org']
+01:== added in slice oneie_slice84 foreign  ['n2-084.plc2.org']
+01:== added in slice oneif_slice85 foreign  ['n2-085.plc2.org']
+01:== added in slice oneig_slice86 foreign  ['n2-086.plc2.org']
+01:== added in slice oneih_slice87 foreign  ['n2-087.plc2.org']
+01:== added in slice oneii_slice88 foreign  ['n2-088.plc2.org']
+01:== added in slice oneij_slice89 foreign  ['n2-089.plc2.org']
+01:== added in slice oneja_slice90 foreign  ['n2-090.plc2.org']
+01:== added in slice onejb_slice91 foreign  ['n2-091.plc2.org']
+01:== added in slice onejc_slice92 foreign  ['n2-092.plc2.org']
+01:== added in slice onejd_slice93 foreign  ['n2-093.plc2.org']
+01:== added in slice oneje_slice94 foreign  ['n2-094.plc2.org']
+01:== added in slice onejf_slice95 foreign  ['n2-095.plc2.org']
+01:== added in slice onejg_slice96 foreign  ['n2-096.plc2.org']
+01:== added in slice onejh_slice97 foreign  ['n2-097.plc2.org']
+01:== added in slice oneji_slice98 foreign  ['n2-098.plc2.org']
+01:== added in slice onejj_slice99 foreign  ['n2-099.plc2.org']
+01:== added in slice onebaa_slice100 foreign  ['n2-100.plc2.org']
+01:== added in slice onebab_slice101 foreign  ['n2-101.plc2.org']
+01:== added in slice onebac_slice102 foreign  ['n2-102.plc2.org']
+01:== added in slice onebad_slice103 foreign  ['n2-103.plc2.org']
+01:== added in slice onebae_slice104 foreign  ['n2-104.plc2.org']
+01:== added in slice onebaf_slice105 foreign  ['n2-105.plc2.org']
+01:== added in slice onebag_slice106 foreign  ['n2-106.plc2.org']
+01:== added in slice onebah_slice107 foreign  ['n2-107.plc2.org']
+01:== added in slice onebai_slice108 foreign  ['n2-108.plc2.org']
+01:== added in slice onebaj_slice109 foreign  ['n2-109.plc2.org']
+01:== added in slice onebba_slice110 foreign  ['n2-110.plc2.org']
+01:== added in slice onebbb_slice111 foreign  ['n2-111.plc2.org']
+01:== added in slice onebbc_slice112 foreign  ['n2-112.plc2.org']
+01:== added in slice onebbd_slice113 foreign  ['n2-113.plc2.org']
+01:== added in slice onebbe_slice114 foreign  ['n2-114.plc2.org']
+01:== added in slice onebbf_slice115 foreign  ['n2-115.plc2.org']
+01:== added in slice onebbg_slice116 foreign  ['n2-116.plc2.org']
+01:== added in slice onebbh_slice117 foreign  ['n2-117.plc2.org']
+01:== added in slice onebbi_slice118 foreign  ['n2-118.plc2.org']
+01:== added in slice onebbj_slice119 foreign  ['n2-119.plc2.org']
+01:== added in slice onebca_slice120 foreign  ['n2-120.plc2.org']
+01:== added in slice onebcb_slice121 foreign  ['n2-121.plc2.org']
+01:== added in slice onebcc_slice122 foreign  ['n2-122.plc2.org']
+01:== added in slice onebcd_slice123 foreign  ['n2-123.plc2.org']
+01:== added in slice onebce_slice124 foreign  ['n2-124.plc2.org']
+01:== added in slice onebcf_slice125 foreign  ['n2-125.plc2.org']
+01:== added in slice onebcg_slice126 foreign  ['n2-126.plc2.org']
+01:== added in slice onebch_slice127 foreign  ['n2-127.plc2.org']
+01:== added in slice onebci_slice128 foreign  ['n2-128.plc2.org']
+01:== added in slice onebcj_slice129 foreign  ['n2-129.plc2.org']
+01:== added in slice onebda_slice130 foreign  ['n2-130.plc2.org']
+01:== added in slice onebdb_slice131 foreign  ['n2-131.plc2.org']
+01:== added in slice onebdc_slice132 foreign  ['n2-132.plc2.org']
+01:== added in slice onebdd_slice133 foreign  ['n2-133.plc2.org']
+01:== added in slice onebde_slice134 foreign  ['n2-134.plc2.org']
+01:== added in slice onebdf_slice135 foreign  ['n2-135.plc2.org']
+01:== added in slice onebdg_slice136 foreign  ['n2-136.plc2.org']
+01:== added in slice onebdh_slice137 foreign  ['n2-137.plc2.org']
+01:== added in slice onebdi_slice138 foreign  ['n2-138.plc2.org']
+01:== added in slice onebdj_slice139 foreign  ['n2-139.plc2.org']
+01:== added in slice onebea_slice140 foreign  ['n2-140.plc2.org']
+01:== added in slice onebeb_slice141 foreign  ['n2-141.plc2.org']
+01:== added in slice onebec_slice142 foreign  ['n2-142.plc2.org']
+01:== added in slice onebed_slice143 foreign  ['n2-143.plc2.org']
+01:== added in slice onebee_slice144 foreign  ['n2-144.plc2.org']
+01:== added in slice onebef_slice145 foreign  ['n2-145.plc2.org']
+01:== added in slice onebeg_slice146 foreign  ['n2-146.plc2.org']
+01:== added in slice onebeh_slice147 foreign  ['n2-147.plc2.org']
+01:== added in slice onebei_slice148 foreign  ['n2-148.plc2.org']
+01:== added in slice onebej_slice149 foreign  ['n2-149.plc2.org']
+01:== added in slice onebfa_slice150 foreign  ['n2-150.plc2.org']
+01:== added in slice onebfb_slice151 foreign  ['n2-151.plc2.org']
+01:== added in slice onebfc_slice152 foreign  ['n2-152.plc2.org']
+01:== added in slice onebfd_slice153 foreign  ['n2-153.plc2.org']
+01:== added in slice onebfe_slice154 foreign  ['n2-154.plc2.org']
+01:== added in slice onebff_slice155 foreign  ['n2-155.plc2.org']
+01:== added in slice onebfg_slice156 foreign  ['n2-156.plc2.org']
+01:== added in slice onebfh_slice157 foreign  ['n2-157.plc2.org']
+01:== added in slice onebfi_slice158 foreign  ['n2-158.plc2.org']
+01:== added in slice onebfj_slice159 foreign  ['n2-159.plc2.org']
+01:== added in slice onebga_slice160 foreign  ['n2-160.plc2.org']
+01:== added in slice onebgb_slice161 foreign  ['n2-161.plc2.org']
+01:== added in slice onebgc_slice162 foreign  ['n2-162.plc2.org']
+01:== added in slice onebgd_slice163 foreign  ['n2-163.plc2.org']
+01:== added in slice onebge_slice164 foreign  ['n2-164.plc2.org']
+01:== added in slice onebgf_slice165 foreign  ['n2-165.plc2.org']
+01:== added in slice onebgg_slice166 foreign  ['n2-166.plc2.org']
+01:== added in slice onebgh_slice167 foreign  ['n2-167.plc2.org']
+01:== added in slice onebgi_slice168 foreign  ['n2-168.plc2.org']
+01:== added in slice onebgj_slice169 foreign  ['n2-169.plc2.org']
+01:== added in slice onebha_slice170 foreign  ['n2-170.plc2.org']
+01:== added in slice onebhb_slice171 foreign  ['n2-171.plc2.org']
+01:== added in slice onebhc_slice172 foreign  ['n2-172.plc2.org']
+01:== added in slice onebhd_slice173 foreign  ['n2-173.plc2.org']
+01:== added in slice onebhe_slice174 foreign  ['n2-174.plc2.org']
+01:== added in slice onebhf_slice175 foreign  ['n2-175.plc2.org']
+01:== added in slice onebhg_slice176 foreign  ['n2-176.plc2.org']
+01:== added in slice onebhh_slice177 foreign  ['n2-177.plc2.org']
+01:== added in slice onebhi_slice178 foreign  ['n2-178.plc2.org']
+01:== added in slice onebhj_slice179 foreign  ['n2-179.plc2.org']
+01:== added in slice onebia_slice180 foreign  ['n2-180.plc2.org']
+01:== added in slice onebib_slice181 foreign  ['n2-181.plc2.org']
+01:== added in slice onebic_slice182 foreign  ['n2-182.plc2.org']
+01:== added in slice onebid_slice183 foreign  ['n2-183.plc2.org']
+01:== added in slice onebie_slice184 foreign  ['n2-184.plc2.org']
+01:== added in slice onebif_slice185 foreign  ['n2-185.plc2.org']
+01:== added in slice onebig_slice186 foreign  ['n2-186.plc2.org']
+01:== added in slice onebih_slice187 foreign  ['n2-187.plc2.org']
+01:== added in slice onebii_slice188 foreign  ['n2-188.plc2.org']
+01:== added in slice onebij_slice189 foreign  ['n2-189.plc2.org']
+01:== added in slice onebja_slice190 foreign  ['n2-190.plc2.org']
+01:== added in slice onebjb_slice191 foreign  ['n2-191.plc2.org']
+01:== added in slice onebjc_slice192 foreign  ['n2-192.plc2.org']
+01:== added in slice onebjd_slice193 foreign  ['n2-193.plc2.org']
+01:== added in slice onebje_slice194 foreign  ['n2-194.plc2.org']
+01:== added in slice onebjf_slice195 foreign  ['n2-195.plc2.org']
+01:== added in slice onebjg_slice196 foreign  ['n2-196.plc2.org']
+01:== added in slice onebjh_slice197 foreign  ['n2-197.plc2.org']
+01:== added in slice onebji_slice198 foreign  ['n2-198.plc2.org']
+01:== added in slice onebjj_slice199 foreign  ['n2-199.plc2.org']
+01:== added in slice onecaa_slice200 foreign  ['n2-200.plc2.org']
+01:== added in slice oneb_slice201 foreign  ['n2-201.plc2.org']
+01:== added in slice onec_slice202 foreign  ['n2-202.plc2.org']
+01:== added in slice oned_slice203 foreign  ['n2-203.plc2.org']
+01:== added in slice onee_slice204 foreign  ['n2-204.plc2.org']
+01:== added in slice onef_slice205 foreign  ['n2-205.plc2.org']
+01:== added in slice oneg_slice206 foreign  ['n2-206.plc2.org']
+01:== added in slice oneh_slice207 foreign  ['n2-207.plc2.org']
+01:== added in slice onei_slice208 foreign  ['n2-208.plc2.org']
+01:== added in slice onej_slice209 foreign  ['n2-209.plc2.org']
+01:== added in slice oneba_slice210 foreign  ['n2-210.plc2.org']
+01:== added in slice onebb_slice211 foreign  ['n2-211.plc2.org']
+01:== added in slice onebc_slice212 foreign  ['n2-212.plc2.org']
+01:== added in slice onebd_slice213 foreign  ['n2-213.plc2.org']
+01:== added in slice onebe_slice214 foreign  ['n2-214.plc2.org']
+01:== added in slice onebf_slice215 foreign  ['n2-215.plc2.org']
+01:== added in slice onebg_slice216 foreign  ['n2-216.plc2.org']
+01:== added in slice onebh_slice217 foreign  ['n2-217.plc2.org']
+01:== added in slice onebi_slice218 foreign  ['n2-218.plc2.org']
+01:== added in slice onebj_slice219 foreign  ['n2-219.plc2.org']
+01:== added in slice oneca_slice220 foreign  ['n2-220.plc2.org']
+01:== added in slice onecb_slice221 foreign  ['n2-221.plc2.org']
+01:== added in slice onecc_slice222 foreign  ['n2-222.plc2.org']
+01:== added in slice onecd_slice223 foreign  ['n2-223.plc2.org']
+01:== added in slice onece_slice224 foreign  ['n2-224.plc2.org']
+01:== added in slice onecf_slice225 foreign  ['n2-225.plc2.org']
+01:== added in slice onecg_slice226 foreign  ['n2-226.plc2.org']
+01:== added in slice onech_slice227 foreign  ['n2-227.plc2.org']
+01:== added in slice oneci_slice228 foreign  ['n2-228.plc2.org']
+01:== added in slice onecj_slice229 foreign  ['n2-229.plc2.org']
+01:== added in slice oneda_slice230 foreign  ['n2-230.plc2.org']
+01:== added in slice onedb_slice231 foreign  ['n2-231.plc2.org']
+01:== added in slice onedc_slice232 foreign  ['n2-232.plc2.org']
+01:== added in slice onedd_slice233 foreign  ['n2-233.plc2.org']
+01:== added in slice onede_slice234 foreign  ['n2-234.plc2.org']
+01:== added in slice onedf_slice235 foreign  ['n2-235.plc2.org']
+01:== added in slice onedg_slice236 foreign  ['n2-236.plc2.org']
+01:== added in slice onedh_slice237 foreign  ['n2-237.plc2.org']
+01:== added in slice onedi_slice238 foreign  ['n2-238.plc2.org']
+01:== added in slice onedj_slice239 foreign  ['n2-239.plc2.org']
+01:== added in slice oneea_slice240 foreign  ['n2-240.plc2.org']
+01:== added in slice oneeb_slice241 foreign  ['n2-241.plc2.org']
+01:== added in slice oneec_slice242 foreign  ['n2-242.plc2.org']
+01:== added in slice oneed_slice243 foreign  ['n2-243.plc2.org']
+01:== added in slice oneee_slice244 foreign  ['n2-244.plc2.org']
+01:== added in slice oneef_slice245 foreign  ['n2-245.plc2.org']
+01:== added in slice oneeg_slice246 foreign  ['n2-246.plc2.org']
+01:== added in slice oneeh_slice247 foreign  ['n2-247.plc2.org']
+01:== added in slice oneei_slice248 foreign  ['n2-248.plc2.org']
+01:== added in slice oneej_slice249 foreign  ['n2-249.plc2.org']
+01:== added in slice onefa_slice250 foreign  ['n2-250.plc2.org']
+01:== added in slice onefb_slice251 foreign  ['n2-251.plc2.org']
+01:== added in slice onefc_slice252 foreign  ['n2-252.plc2.org']
+01:== added in slice onefd_slice253 foreign  ['n2-253.plc2.org']
+01:== added in slice onefe_slice254 foreign  ['n2-254.plc2.org']
+01:== added in slice oneff_slice255 foreign  ['n2-255.plc2.org']
+01:== added in slice onefg_slice256 foreign  ['n2-256.plc2.org']
+01:== added in slice onefh_slice257 foreign  ['n2-257.plc2.org']
+01:== added in slice onefi_slice258 foreign  ['n2-258.plc2.org']
+01:== added in slice onefj_slice259 foreign  ['n2-259.plc2.org']
+01:== added in slice onega_slice260 foreign  ['n2-260.plc2.org']
+01:== added in slice onegb_slice261 foreign  ['n2-261.plc2.org']
+01:== added in slice onegc_slice262 foreign  ['n2-262.plc2.org']
+01:== added in slice onegd_slice263 foreign  ['n2-263.plc2.org']
+01:== added in slice onege_slice264 foreign  ['n2-264.plc2.org']
+01:== added in slice onegf_slice265 foreign  ['n2-265.plc2.org']
+01:== added in slice onegg_slice266 foreign  ['n2-266.plc2.org']
+01:== added in slice onegh_slice267 foreign  ['n2-267.plc2.org']
+01:== added in slice onegi_slice268 foreign  ['n2-268.plc2.org']
+01:== added in slice onegj_slice269 foreign  ['n2-269.plc2.org']
+01:== added in slice oneha_slice270 foreign  ['n2-270.plc2.org']
+01:== added in slice onehb_slice271 foreign  ['n2-271.plc2.org']
+01:== added in slice onehc_slice272 foreign  ['n2-272.plc2.org']
+01:== added in slice onehd_slice273 foreign  ['n2-273.plc2.org']
+01:== added in slice onehe_slice274 foreign  ['n2-274.plc2.org']
+01:== added in slice onehf_slice275 foreign  ['n2-275.plc2.org']
+01:== added in slice onehg_slice276 foreign  ['n2-276.plc2.org']
+01:== added in slice onehh_slice277 foreign  ['n2-277.plc2.org']
+01:== added in slice onehi_slice278 foreign  ['n2-278.plc2.org']
+01:== added in slice onehj_slice279 foreign  ['n2-279.plc2.org']
+01:== added in slice oneia_slice280 foreign  ['n2-280.plc2.org']
+01:== added in slice oneib_slice281 foreign  ['n2-281.plc2.org']
+01:== added in slice oneic_slice282 foreign  ['n2-282.plc2.org']
+01:== added in slice oneid_slice283 foreign  ['n2-283.plc2.org']
+01:== added in slice oneie_slice284 foreign  ['n2-284.plc2.org']
+01:== added in slice oneif_slice285 foreign  ['n2-285.plc2.org']
+01:== added in slice oneig_slice286 foreign  ['n2-286.plc2.org']
+01:== added in slice oneih_slice287 foreign  ['n2-287.plc2.org']
+01:== added in slice oneii_slice288 foreign  ['n2-288.plc2.org']
+01:== added in slice oneij_slice289 foreign  ['n2-289.plc2.org']
+01:== added in slice oneja_slice290 foreign  ['n2-290.plc2.org']
+01:== added in slice onejb_slice291 foreign  ['n2-291.plc2.org']
+01:== added in slice onejc_slice292 foreign  ['n2-292.plc2.org']
+01:== added in slice onejd_slice293 foreign  ['n2-293.plc2.org']
+01:== added in slice oneje_slice294 foreign  ['n2-294.plc2.org']
+01:== added in slice onejf_slice295 foreign  ['n2-295.plc2.org']
+01:== added in slice onejg_slice296 foreign  ['n2-296.plc2.org']
+01:== added in slice onejh_slice297 foreign  ['n2-297.plc2.org']
+01:== added in slice oneji_slice298 foreign  ['n2-298.plc2.org']
+01:== added in slice onejj_slice299 foreign  ['n2-299.plc2.org']
+01:== added in slice onebaa_slice300 foreign  ['n2-300.plc2.org']
+01:== added in slice onebab_slice301 foreign  ['n2-301.plc2.org']
+01:== added in slice onebac_slice302 foreign  ['n2-302.plc2.org']
+01:== added in slice onebad_slice303 foreign  ['n2-303.plc2.org']
+01:== added in slice onebae_slice304 foreign  ['n2-304.plc2.org']
+01:== added in slice onebaf_slice305 foreign  ['n2-305.plc2.org']
+01:== added in slice onebag_slice306 foreign  ['n2-306.plc2.org']
+01:== added in slice onebah_slice307 foreign  ['n2-307.plc2.org']
+01:== added in slice onebai_slice308 foreign  ['n2-308.plc2.org']
+01:== added in slice onebaj_slice309 foreign  ['n2-309.plc2.org']
+01:== added in slice onebba_slice310 foreign  ['n2-310.plc2.org']
+01:== added in slice onebbb_slice311 foreign  ['n2-311.plc2.org']
+01:== added in slice onebbc_slice312 foreign  ['n2-312.plc2.org']
+01:== added in slice onebbd_slice313 foreign  ['n2-313.plc2.org']
+01:== added in slice onebbe_slice314 foreign  ['n2-314.plc2.org']
+01:== added in slice onebbf_slice315 foreign  ['n2-315.plc2.org']
+01:== added in slice onebbg_slice316 foreign  ['n2-316.plc2.org']
+01:== added in slice onebbh_slice317 foreign  ['n2-317.plc2.org']
+01:== added in slice onebbi_slice318 foreign  ['n2-318.plc2.org']
+01:== added in slice onebbj_slice319 foreign  ['n2-319.plc2.org']
+01:== added in slice onebca_slice320 foreign  ['n2-320.plc2.org']
+01:== added in slice onebcb_slice321 foreign  ['n2-321.plc2.org']
+01:== added in slice onebcc_slice322 foreign  ['n2-322.plc2.org']
+01:== added in slice onebcd_slice323 foreign  ['n2-323.plc2.org']
+01:== added in slice onebce_slice324 foreign  ['n2-324.plc2.org']
+01:== added in slice onebcf_slice325 foreign  ['n2-325.plc2.org']
+01:== added in slice onebcg_slice326 foreign  ['n2-326.plc2.org']
+01:== added in slice onebch_slice327 foreign  ['n2-327.plc2.org']
+01:== added in slice onebci_slice328 foreign  ['n2-328.plc2.org']
+01:== added in slice onebcj_slice329 foreign  ['n2-329.plc2.org']
+01:== added in slice onebda_slice330 foreign  ['n2-330.plc2.org']
+01:== added in slice onebdb_slice331 foreign  ['n2-331.plc2.org']
+01:== added in slice onebdc_slice332 foreign  ['n2-332.plc2.org']
+01:== added in slice onebdd_slice333 foreign  ['n2-333.plc2.org']
+01:== added in slice onebde_slice334 foreign  ['n2-334.plc2.org']
+01:== added in slice onebdf_slice335 foreign  ['n2-335.plc2.org']
+01:== added in slice onebdg_slice336 foreign  ['n2-336.plc2.org']
+01:== added in slice onebdh_slice337 foreign  ['n2-337.plc2.org']
+01:== added in slice onebdi_slice338 foreign  ['n2-338.plc2.org']
+01:== added in slice onebdj_slice339 foreign  ['n2-339.plc2.org']
+01:== added in slice onebea_slice340 foreign  ['n2-340.plc2.org']
+01:== added in slice onebeb_slice341 foreign  ['n2-341.plc2.org']
+01:== added in slice onebec_slice342 foreign  ['n2-342.plc2.org']
+01:== added in slice onebed_slice343 foreign  ['n2-343.plc2.org']
+01:== added in slice onebee_slice344 foreign  ['n2-344.plc2.org']
+01:== added in slice onebef_slice345 foreign  ['n2-345.plc2.org']
+01:== added in slice onebeg_slice346 foreign  ['n2-346.plc2.org']
+01:== added in slice onebeh_slice347 foreign  ['n2-347.plc2.org']
+01:== added in slice onebei_slice348 foreign  ['n2-348.plc2.org']
+01:== added in slice onebej_slice349 foreign  ['n2-349.plc2.org']
+01:== added in slice onebfa_slice350 foreign  ['n2-350.plc2.org']
+01:== added in slice onebfb_slice351 foreign  ['n2-001.plc2.org']
+01:== added in slice onebfc_slice352 foreign  ['n2-002.plc2.org']
+01:== added in slice onebfd_slice353 foreign  ['n2-003.plc2.org']
+01:== added in slice onebfe_slice354 foreign  ['n2-004.plc2.org']
+01:== added in slice onebff_slice355 foreign  ['n2-005.plc2.org']
+01:== added in slice onebfg_slice356 foreign  ['n2-006.plc2.org']
+01:== added in slice onebfh_slice357 foreign  ['n2-007.plc2.org']
+01:== added in slice onebfi_slice358 foreign  ['n2-008.plc2.org']
+01:== added in slice onebfj_slice359 foreign  ['n2-009.plc2.org']
+01:== added in slice onebga_slice360 foreign  ['n2-010.plc2.org']
+01:== added in slice onebgb_slice361 foreign  ['n2-011.plc2.org']
+01:== added in slice onebgc_slice362 foreign  ['n2-012.plc2.org']
+01:== added in slice onebgd_slice363 foreign  ['n2-013.plc2.org']
+01:== added in slice onebge_slice364 foreign  ['n2-014.plc2.org']
+01:== added in slice onebgf_slice365 foreign  ['n2-015.plc2.org']
+01:== added in slice onebgg_slice366 foreign  ['n2-016.plc2.org']
+01:== added in slice onebgh_slice367 foreign  ['n2-017.plc2.org']
+01:== added in slice onebgi_slice368 foreign  ['n2-018.plc2.org']
+01:== added in slice onebgj_slice369 foreign  ['n2-019.plc2.org']
+01:== added in slice onebha_slice370 foreign  ['n2-020.plc2.org']
+01:== added in slice onebhb_slice371 foreign  ['n2-021.plc2.org']
+01:== added in slice onebhc_slice372 foreign  ['n2-022.plc2.org']
+01:== added in slice onebhd_slice373 foreign  ['n2-023.plc2.org']
+01:== added in slice onebhe_slice374 foreign  ['n2-024.plc2.org']
+01:== added in slice onebhf_slice375 foreign  ['n2-025.plc2.org']
+01:== added in slice onebhg_slice376 foreign  ['n2-026.plc2.org']
+01:== added in slice onebhh_slice377 foreign  ['n2-027.plc2.org']
+01:== added in slice onebhi_slice378 foreign  ['n2-028.plc2.org']
+01:== added in slice onebhj_slice379 foreign  ['n2-029.plc2.org']
+01:== added in slice onebia_slice380 foreign  ['n2-030.plc2.org']
+01:== added in slice onebib_slice381 foreign  ['n2-031.plc2.org']
+01:== added in slice onebic_slice382 foreign  ['n2-032.plc2.org']
+01:== added in slice onebid_slice383 foreign  ['n2-033.plc2.org']
+01:== added in slice onebie_slice384 foreign  ['n2-034.plc2.org']
+01:== added in slice onebif_slice385 foreign  ['n2-035.plc2.org']
+01:== added in slice onebig_slice386 foreign  ['n2-036.plc2.org']
+01:== added in slice onebih_slice387 foreign  ['n2-037.plc2.org']
+01:== added in slice onebii_slice388 foreign  ['n2-038.plc2.org']
+01:== added in slice onebij_slice389 foreign  ['n2-039.plc2.org']
+01:== added in slice onebja_slice390 foreign  ['n2-040.plc2.org']
+01:== added in slice onebjb_slice391 foreign  ['n2-041.plc2.org']
+01:== added in slice onebjc_slice392 foreign  ['n2-042.plc2.org']
+01:== added in slice onebjd_slice393 foreign  ['n2-043.plc2.org']
+01:== added in slice onebje_slice394 foreign  ['n2-044.plc2.org']
+01:== added in slice onebjf_slice395 foreign  ['n2-045.plc2.org']
+01:== added in slice onebjg_slice396 foreign  ['n2-046.plc2.org']
+01:== added in slice onebjh_slice397 foreign  ['n2-047.plc2.org']
+01:== added in slice onebji_slice398 foreign  ['n2-048.plc2.org']
+01:== added in slice onebjj_slice399 foreign  ['n2-049.plc2.org']
+01:== added in slice onecaa_slice400 foreign  ['n2-050.plc2.org']
+01:== added in slice oneb_slice401 foreign  ['n2-051.plc2.org']
+01:== added in slice onec_slice402 foreign  ['n2-052.plc2.org']
+01:== added in slice oned_slice403 foreign  ['n2-053.plc2.org']
+01:== added in slice onee_slice404 foreign  ['n2-054.plc2.org']
+01:== added in slice onef_slice405 foreign  ['n2-055.plc2.org']
+01:== added in slice oneg_slice406 foreign  ['n2-056.plc2.org']
+01:== added in slice oneh_slice407 foreign  ['n2-057.plc2.org']
+01:== added in slice onei_slice408 foreign  ['n2-058.plc2.org']
+01:== added in slice onej_slice409 foreign  ['n2-059.plc2.org']
+01:== added in slice oneba_slice410 foreign  ['n2-060.plc2.org']
+01:== added in slice onebb_slice411 foreign  ['n2-061.plc2.org']
+01:== added in slice onebc_slice412 foreign  ['n2-062.plc2.org']
+01:== added in slice onebd_slice413 foreign  ['n2-063.plc2.org']
+01:== added in slice onebe_slice414 foreign  ['n2-064.plc2.org']
+01:== added in slice onebf_slice415 foreign  ['n2-065.plc2.org']
+01:== added in slice onebg_slice416 foreign  ['n2-066.plc2.org']
+01:== added in slice onebh_slice417 foreign  ['n2-067.plc2.org']
+01:== added in slice onebi_slice418 foreign  ['n2-068.plc2.org']
+01:== added in slice onebj_slice419 foreign  ['n2-069.plc2.org']
+01:== added in slice oneca_slice420 foreign  ['n2-070.plc2.org']
+01:== added in slice onecb_slice421 foreign  ['n2-071.plc2.org']
+01:== added in slice onecc_slice422 foreign  ['n2-072.plc2.org']
+01:== added in slice onecd_slice423 foreign  ['n2-073.plc2.org']
+01:== added in slice onece_slice424 foreign  ['n2-074.plc2.org']
+01:== added in slice onecf_slice425 foreign  ['n2-075.plc2.org']
+01:== added in slice onecg_slice426 foreign  ['n2-076.plc2.org']
+01:== added in slice onech_slice427 foreign  ['n2-077.plc2.org']
+01:== added in slice oneci_slice428 foreign  ['n2-078.plc2.org']
+01:== added in slice onecj_slice429 foreign  ['n2-079.plc2.org']
+01:== added in slice oneda_slice430 foreign  ['n2-080.plc2.org']
+01:== added in slice onedb_slice431 foreign  ['n2-081.plc2.org']
+01:== added in slice onedc_slice432 foreign  ['n2-082.plc2.org']
+01:== added in slice onedd_slice433 foreign  ['n2-083.plc2.org']
+01:== added in slice onede_slice434 foreign  ['n2-084.plc2.org']
+01:== added in slice onedf_slice435 foreign  ['n2-085.plc2.org']
+01:== added in slice onedg_slice436 foreign  ['n2-086.plc2.org']
+01:== added in slice onedh_slice437 foreign  ['n2-087.plc2.org']
+01:== added in slice onedi_slice438 foreign  ['n2-088.plc2.org']
+01:== added in slice onedj_slice439 foreign  ['n2-089.plc2.org']
+01:== added in slice oneea_slice440 foreign  ['n2-090.plc2.org']
+01:== added in slice oneeb_slice441 foreign  ['n2-091.plc2.org']
+01:== added in slice oneec_slice442 foreign  ['n2-092.plc2.org']
+01:== added in slice oneed_slice443 foreign  ['n2-093.plc2.org']
+01:== added in slice oneee_slice444 foreign  ['n2-094.plc2.org']
+01:== added in slice oneef_slice445 foreign  ['n2-095.plc2.org']
+01:== added in slice oneeg_slice446 foreign  ['n2-096.plc2.org']
+01:== added in slice oneeh_slice447 foreign  ['n2-097.plc2.org']
+01:== added in slice oneei_slice448 foreign  ['n2-098.plc2.org']
+01:== added in slice oneej_slice449 foreign  ['n2-099.plc2.org']
+01:== added in slice onefa_slice450 foreign  ['n2-100.plc2.org']
+01:== added in slice onefb_slice451 foreign  ['n2-101.plc2.org']
+01:== added in slice onefc_slice452 foreign  ['n2-102.plc2.org']
+01:== added in slice onefd_slice453 foreign  ['n2-103.plc2.org']
+01:== added in slice onefe_slice454 foreign  ['n2-104.plc2.org']
+01:== added in slice oneff_slice455 foreign  ['n2-105.plc2.org']
+01:== added in slice onefg_slice456 foreign  ['n2-106.plc2.org']
+01:== added in slice onefh_slice457 foreign  ['n2-107.plc2.org']
+01:== added in slice onefi_slice458 foreign  ['n2-108.plc2.org']
+01:== added in slice onefj_slice459 foreign  ['n2-109.plc2.org']
+01:== added in slice onega_slice460 foreign  ['n2-110.plc2.org']
+01:== added in slice onegb_slice461 foreign  ['n2-111.plc2.org']
+01:== added in slice onegc_slice462 foreign  ['n2-112.plc2.org']
+01:== added in slice onegd_slice463 foreign  ['n2-113.plc2.org']
+01:== added in slice onege_slice464 foreign  ['n2-114.plc2.org']
+01:== added in slice onegf_slice465 foreign  ['n2-115.plc2.org']
+01:== added in slice onegg_slice466 foreign  ['n2-116.plc2.org']
+01:== added in slice onegh_slice467 foreign  ['n2-117.plc2.org']
+01:== added in slice onegi_slice468 foreign  ['n2-118.plc2.org']
+01:== added in slice onegj_slice469 foreign  ['n2-119.plc2.org']
+01:== added in slice oneha_slice470 foreign  ['n2-120.plc2.org']
+01:== added in slice onehb_slice471 foreign  ['n2-121.plc2.org']
+01:== added in slice onehc_slice472 foreign  ['n2-122.plc2.org']
+01:== added in slice onehd_slice473 foreign  ['n2-123.plc2.org']
+01:== added in slice onehe_slice474 foreign  ['n2-124.plc2.org']
+01:== added in slice onehf_slice475 foreign  ['n2-125.plc2.org']
+01:== added in slice onehg_slice476 foreign  ['n2-126.plc2.org']
+01:== added in slice onehh_slice477 foreign  ['n2-127.plc2.org']
+01:== added in slice onehi_slice478 foreign  ['n2-128.plc2.org']
+01:== added in slice onehj_slice479 foreign  ['n2-129.plc2.org']
+01:== added in slice oneia_slice480 foreign  ['n2-130.plc2.org']
+01:== added in slice oneib_slice481 foreign  ['n2-131.plc2.org']
+01:== added in slice oneic_slice482 foreign  ['n2-132.plc2.org']
+01:== added in slice oneid_slice483 foreign  ['n2-133.plc2.org']
+01:== added in slice oneie_slice484 foreign  ['n2-134.plc2.org']
+01:== added in slice oneif_slice485 foreign  ['n2-135.plc2.org']
+01:== added in slice oneig_slice486 foreign  ['n2-136.plc2.org']
+01:== added in slice oneih_slice487 foreign  ['n2-137.plc2.org']
+01:== added in slice oneii_slice488 foreign  ['n2-138.plc2.org']
+01:== added in slice oneij_slice489 foreign  ['n2-139.plc2.org']
+01:== added in slice oneja_slice490 foreign  ['n2-140.plc2.org']
+01:== added in slice onejb_slice491 foreign  ['n2-141.plc2.org']
+01:== added in slice onejc_slice492 foreign  ['n2-142.plc2.org']
+01:== added in slice onejd_slice493 foreign  ['n2-143.plc2.org']
+01:== added in slice oneje_slice494 foreign  ['n2-144.plc2.org']
+01:== added in slice onejf_slice495 foreign  ['n2-145.plc2.org']
+01:== added in slice onejg_slice496 foreign  ['n2-146.plc2.org']
+01:== added in slice onejh_slice497 foreign  ['n2-147.plc2.org']
+01:== added in slice oneji_slice498 foreign  ['n2-148.plc2.org']
+01:== added in slice onejj_slice499 foreign  ['n2-149.plc2.org']
+01:== added in slice onebaa_slice500 foreign  ['n2-150.plc2.org']
++++ 134.55 seconds ellapsed (103.37)
+=== refresh populate: refresh all
++++ 134.55 seconds ellapsed (0.00)
+01:== Refreshing peer
++++ ellapsed: { keys 0.189713001251 local_nodes 0.345396995544 nodes 0.457951068878 peer_db 0.482037067413 persons 0.598115921021 site 0.326417922974 slices 0.0121240615845 transport 8.19845294952 }
++++ 146.52 seconds ellapsed (11.97)
+02:== Refreshing peer
++++ ellapsed: { keys 4.21245408058 local_nodes 0.361541986465 nodes 5.58370709419 peer_db 1.05979800224 persons 7.13460898399 site 2.56579399109 slices 13.3192181587 transport 13.8261630535 }
++++ 197.10 seconds ellapsed (50.58)
++++ 197.10 seconds ellapsed (0.00)
+=== refresh empty refresh
++++ 197.10 seconds ellapsed (0.00)
+01:== Refreshing peer
++++ ellapsed: { keys 0.188363790512 local_nodes 0.366487979889 nodes 0.43279004097 peer_db 0.65917801857 persons 0.625756025314 site 0.302524089813 slices 0.0138368606567 transport 10.787113905 }
++++ 211.93 seconds ellapsed (14.83)
+02:== Refreshing peer
++++ ellapsed: { keys 0.18791103363 local_nodes 0.379804849625 nodes 0.428311109543 peer_db 1.13953304291 persons 0.818680047989 site 0.309503793716 slices 0.593018054962 transport 13.9470081329 }
++++ 231.62 seconds ellapsed (19.69)
+01:============================== DUMPING
+01: SITES
+1 None plc1 FederationTestPlc1 Central []
+2 None oneb FederationTestPlc1 [201, 1]
+3 None onec FederationTestPlc1 [202, 2]
+4 None oned FederationTestPlc1 [203, 3]
+5 None onee FederationTestPlc1 [204, 4]
+6 None onef FederationTestPlc1 [205, 5]
+7 None oneg FederationTestPlc1 [206, 6]
+8 None oneh FederationTestPlc1 [207, 7]
+9 None onei FederationTestPlc1 [208, 8]
+10 None onej FederationTestPlc1 [209, 9]
+11 None oneba FederationTestPlc1 [210, 10]
+12 None onebb FederationTestPlc1 [211, 11]
+13 None onebc FederationTestPlc1 [212, 12]
+14 None onebd FederationTestPlc1 [213, 13]
+15 None onebe FederationTestPlc1 [214, 14]
+16 None onebf FederationTestPlc1 [215, 15]
+17 None onebg FederationTestPlc1 [216, 16]
+18 None onebh FederationTestPlc1 [217, 17]
+19 None onebi FederationTestPlc1 [218, 18]
+20 None onebj FederationTestPlc1 [219, 19]
+21 None oneca FederationTestPlc1 [220, 20]
+22 None onecb FederationTestPlc1 [221, 21]
+23 None onecc FederationTestPlc1 [222, 22]
+24 None onecd FederationTestPlc1 [223, 23]
+25 None onece FederationTestPlc1 [224, 24]
+26 None onecf FederationTestPlc1 [225, 25]
+27 None onecg FederationTestPlc1 [226, 26]
+28 None onech FederationTestPlc1 [227, 27]
+29 None oneci FederationTestPlc1 [228, 28]
+30 None onecj FederationTestPlc1 [229, 29]
+31 None oneda FederationTestPlc1 [230, 30]
+32 None onedb FederationTestPlc1 [231, 31]
+33 None onedc FederationTestPlc1 [232, 32]
+34 None onedd FederationTestPlc1 [233, 33]
+35 None onede FederationTestPlc1 [234, 34]
+36 None onedf FederationTestPlc1 [235, 35]
+37 None onedg FederationTestPlc1 [236, 36]
+38 None onedh FederationTestPlc1 [237, 37]
+39 None onedi FederationTestPlc1 [238, 38]
+40 None onedj FederationTestPlc1 [239, 39]
+41 None oneea FederationTestPlc1 [240, 40]
+42 None oneeb FederationTestPlc1 [241, 41]
+43 None oneec FederationTestPlc1 [242, 42]
+44 None oneed FederationTestPlc1 [243, 43]
+45 None oneee FederationTestPlc1 [244, 44]
+46 None oneef FederationTestPlc1 [245, 45]
+47 None oneeg FederationTestPlc1 [246, 46]
+48 None oneeh FederationTestPlc1 [247, 47]
+49 None oneei FederationTestPlc1 [248, 48]
+50 None oneej FederationTestPlc1 [249, 49]
+51 None onefa FederationTestPlc1 [250, 50]
+52 None onefb FederationTestPlc1 [251, 51]
+53 None onefc FederationTestPlc1 [252, 52]
+54 None onefd FederationTestPlc1 [253, 53]
+55 None onefe FederationTestPlc1 [254, 54]
+56 None oneff FederationTestPlc1 [255, 55]
+57 None onefg FederationTestPlc1 [256, 56]
+58 None onefh FederationTestPlc1 [257, 57]
+59 None onefi FederationTestPlc1 [258, 58]
+60 None onefj FederationTestPlc1 [259, 59]
+61 None onega FederationTestPlc1 [260, 60]
+62 None onegb FederationTestPlc1 [261, 61]
+63 None onegc FederationTestPlc1 [262, 62]
+64 None onegd FederationTestPlc1 [263, 63]
+65 None onege FederationTestPlc1 [264, 64]
+66 None onegf FederationTestPlc1 [265, 65]
+67 None onegg FederationTestPlc1 [266, 66]
+68 None onegh FederationTestPlc1 [267, 67]
+69 None onegi FederationTestPlc1 [268, 68]
+70 None onegj FederationTestPlc1 [269, 69]
+71 None oneha FederationTestPlc1 [270, 70]
+72 None onehb FederationTestPlc1 [271, 71]
+73 None onehc FederationTestPlc1 [272, 72]
+74 None onehd FederationTestPlc1 [273, 73]
+75 None onehe FederationTestPlc1 [274, 74]
+76 None onehf FederationTestPlc1 [275, 75]
+77 None onehg FederationTestPlc1 [276, 76]
+78 None onehh FederationTestPlc1 [277, 77]
+79 None onehi FederationTestPlc1 [278, 78]
+80 None onehj FederationTestPlc1 [279, 79]
+81 None oneia FederationTestPlc1 [280, 80]
+82 None oneib FederationTestPlc1 [281, 81]
+83 None oneic FederationTestPlc1 [282, 82]
+84 None oneid FederationTestPlc1 [283, 83]
+85 None oneie FederationTestPlc1 [284, 84]
+86 None oneif FederationTestPlc1 [285, 85]
+87 None oneig FederationTestPlc1 [286, 86]
+88 None oneih FederationTestPlc1 [287, 87]
+89 None oneii FederationTestPlc1 [288, 88]
+90 None oneij FederationTestPlc1 [289, 89]
+91 None oneja FederationTestPlc1 [290, 90]
+92 None onejb FederationTestPlc1 [291, 91]
+93 None onejc FederationTestPlc1 [292, 92]
+94 None onejd FederationTestPlc1 [293, 93]
+95 None oneje FederationTestPlc1 [294, 94]
+96 None onejf FederationTestPlc1 [295, 95]
+97 None onejg FederationTestPlc1 [296, 96]
+98 None onejh FederationTestPlc1 [297, 97]
+99 None oneji FederationTestPlc1 [298, 98]
+100 None onejj FederationTestPlc1 [299, 99]
+101 None onebaa FederationTestPlc1 [300, 100]
+102 None onebab FederationTestPlc1 [301, 101]
+103 None onebac FederationTestPlc1 [302, 102]
+104 None onebad FederationTestPlc1 [303, 103]
+105 None onebae FederationTestPlc1 [304, 104]
+106 None onebaf FederationTestPlc1 [305, 105]
+107 None onebag FederationTestPlc1 [306, 106]
+108 None onebah FederationTestPlc1 [307, 107]
+109 None onebai FederationTestPlc1 [308, 108]
+110 None onebaj FederationTestPlc1 [309, 109]
+111 None onebba FederationTestPlc1 [310, 110]
+112 None onebbb FederationTestPlc1 [311, 111]
+113 None onebbc FederationTestPlc1 [312, 112]
+114 None onebbd FederationTestPlc1 [313, 113]
+115 None onebbe FederationTestPlc1 [314, 114]
+116 None onebbf FederationTestPlc1 [315, 115]
+117 None onebbg FederationTestPlc1 [316, 116]
+118 None onebbh FederationTestPlc1 [317, 117]
+119 None onebbi FederationTestPlc1 [318, 118]
+120 None onebbj FederationTestPlc1 [319, 119]
+121 None onebca FederationTestPlc1 [320, 120]
+122 None onebcb FederationTestPlc1 [321, 121]
+123 None onebcc FederationTestPlc1 [322, 122]
+124 None onebcd FederationTestPlc1 [323, 123]
+125 None onebce FederationTestPlc1 [324, 124]
+126 None onebcf FederationTestPlc1 [325, 125]
+127 None onebcg FederationTestPlc1 [326, 126]
+128 None onebch FederationTestPlc1 [327, 127]
+129 None onebci FederationTestPlc1 [328, 128]
+130 None onebcj FederationTestPlc1 [329, 129]
+131 None onebda FederationTestPlc1 [330, 130]
+132 None onebdb FederationTestPlc1 [331, 131]
+133 None onebdc FederationTestPlc1 [332, 132]
+134 None onebdd FederationTestPlc1 [333, 133]
+135 None onebde FederationTestPlc1 [334, 134]
+136 None onebdf FederationTestPlc1 [335, 135]
+137 None onebdg FederationTestPlc1 [336, 136]
+138 None onebdh FederationTestPlc1 [337, 137]
+139 None onebdi FederationTestPlc1 [338, 138]
+140 None onebdj FederationTestPlc1 [339, 139]
+141 None onebea FederationTestPlc1 [340, 140]
+142 None onebeb FederationTestPlc1 [341, 141]
+143 None onebec FederationTestPlc1 [342, 142]
+144 None onebed FederationTestPlc1 [343, 143]
+145 None onebee FederationTestPlc1 [344, 144]
+146 None onebef FederationTestPlc1 [345, 145]
+147 None onebeg FederationTestPlc1 [346, 146]
+148 None onebeh FederationTestPlc1 [347, 147]
+149 None onebei FederationTestPlc1 [348, 148]
+150 None onebej FederationTestPlc1 [349, 149]
+151 None onebfa FederationTestPlc1 [350, 150]
+152 None onebfb FederationTestPlc1 [151]
+153 None onebfc FederationTestPlc1 [152]
+154 None onebfd FederationTestPlc1 [153]
+155 None onebfe FederationTestPlc1 [154]
+156 None onebff FederationTestPlc1 [155]
+157 None onebfg FederationTestPlc1 [156]
+158 None onebfh FederationTestPlc1 [157]
+159 None onebfi FederationTestPlc1 [158]
+160 None onebfj FederationTestPlc1 [159]
+161 None onebga FederationTestPlc1 [160]
+162 None onebgb FederationTestPlc1 [161]
+163 None onebgc FederationTestPlc1 [162]
+164 None onebgd FederationTestPlc1 [163]
+165 None onebge FederationTestPlc1 [164]
+166 None onebgf FederationTestPlc1 [165]
+167 None onebgg FederationTestPlc1 [166]
+168 None onebgh FederationTestPlc1 [167]
+169 None onebgi FederationTestPlc1 [168]
+170 None onebgj FederationTestPlc1 [169]
+171 None onebha FederationTestPlc1 [170]
+172 None onebhb FederationTestPlc1 [171]
+173 None onebhc FederationTestPlc1 [172]
+174 None onebhd FederationTestPlc1 [173]
+175 None onebhe FederationTestPlc1 [174]
+176 None onebhf FederationTestPlc1 [175]
+177 None onebhg FederationTestPlc1 [176]
+178 None onebhh FederationTestPlc1 [177]
+179 None onebhi FederationTestPlc1 [178]
+180 None onebhj FederationTestPlc1 [179]
+181 None onebia FederationTestPlc1 [180]
+182 None onebib FederationTestPlc1 [181]
+183 None onebic FederationTestPlc1 [182]
+184 None onebid FederationTestPlc1 [183]
+185 None onebie FederationTestPlc1 [184]
+186 None onebif FederationTestPlc1 [185]
+187 None onebig FederationTestPlc1 [186]
+188 None onebih FederationTestPlc1 [187]
+189 None onebii FederationTestPlc1 [188]
+190 None onebij FederationTestPlc1 [189]
+191 None onebja FederationTestPlc1 [190]
+192 None onebjb FederationTestPlc1 [191]
+193 None onebjc FederationTestPlc1 [192]
+194 None onebjd FederationTestPlc1 [193]
+195 None onebje FederationTestPlc1 [194]
+196 None onebjf FederationTestPlc1 [195]
+197 None onebjg FederationTestPlc1 [196]
+198 None onebjh FederationTestPlc1 [197]
+199 None onebji FederationTestPlc1 [198]
+200 None onebjj FederationTestPlc1 [199]
+201 None onecaa FederationTestPlc1 [200]
+202 1 plc2 FederationTestPlc2 Central []
+203 1 twob FederationTestPlc2 [551, 351]
+204 1 twoc FederationTestPlc2 [552, 352]
+205 1 twod FederationTestPlc2 [553, 353]
+206 1 twoe FederationTestPlc2 [554, 354]
+207 1 twof FederationTestPlc2 [555, 355]
+208 1 twog FederationTestPlc2 [556, 356]
+209 1 twoh FederationTestPlc2 [557, 357]
+210 1 twoi FederationTestPlc2 [558, 358]
+211 1 twoj FederationTestPlc2 [559, 359]
+212 1 twoba FederationTestPlc2 [560, 360]
+213 1 twobb FederationTestPlc2 [561, 361]
+214 1 twobc FederationTestPlc2 [562, 362]
+215 1 twobd FederationTestPlc2 [563, 363]
+216 1 twobe FederationTestPlc2 [564, 364]
+217 1 twobf FederationTestPlc2 [565, 365]
+218 1 twobg FederationTestPlc2 [566, 366]
+219 1 twobh FederationTestPlc2 [567, 367]
+220 1 twobi FederationTestPlc2 [568, 368]
+221 1 twobj FederationTestPlc2 [569, 369]
+222 1 twoca FederationTestPlc2 [570, 370]
+223 1 twocb FederationTestPlc2 [571, 371]
+224 1 twocc FederationTestPlc2 [572, 372]
+225 1 twocd FederationTestPlc2 [573, 373]
+226 1 twoce FederationTestPlc2 [574, 374]
+227 1 twocf FederationTestPlc2 [575, 375]
+228 1 twocg FederationTestPlc2 [576, 376]
+229 1 twoch FederationTestPlc2 [577, 377]
+230 1 twoci FederationTestPlc2 [578, 378]
+231 1 twocj FederationTestPlc2 [579, 379]
+232 1 twoda FederationTestPlc2 [580, 380]
+233 1 twodb FederationTestPlc2 [581, 381]
+234 1 twodc FederationTestPlc2 [582, 382]
+235 1 twodd FederationTestPlc2 [583, 383]
+236 1 twode FederationTestPlc2 [584, 384]
+237 1 twodf FederationTestPlc2 [585, 385]
+238 1 twodg FederationTestPlc2 [586, 386]
+239 1 twodh FederationTestPlc2 [587, 387]
+240 1 twodi FederationTestPlc2 [588, 388]
+241 1 twodj FederationTestPlc2 [589, 389]
+242 1 twoea FederationTestPlc2 [590, 390]
+243 1 twoeb FederationTestPlc2 [591, 391]
+244 1 twoec FederationTestPlc2 [592, 392]
+245 1 twoed FederationTestPlc2 [593, 393]
+246 1 twoee FederationTestPlc2 [594, 394]
+247 1 twoef FederationTestPlc2 [595, 395]
+248 1 twoeg FederationTestPlc2 [596, 396]
+249 1 twoeh FederationTestPlc2 [597, 397]
+250 1 twoei FederationTestPlc2 [598, 398]
+251 1 twoej FederationTestPlc2 [599, 399]
+252 1 twofa FederationTestPlc2 [600, 400]
+253 1 twofb FederationTestPlc2 [601, 401]
+254 1 twofc FederationTestPlc2 [602, 402]
+255 1 twofd FederationTestPlc2 [603, 403]
+256 1 twofe FederationTestPlc2 [604, 404]
+257 1 twoff FederationTestPlc2 [605, 405]
+258 1 twofg FederationTestPlc2 [606, 406]
+259 1 twofh FederationTestPlc2 [607, 407]
+260 1 twofi FederationTestPlc2 [608, 408]
+261 1 twofj FederationTestPlc2 [609, 409]
+262 1 twoga FederationTestPlc2 [610, 410]
+263 1 twogb FederationTestPlc2 [611, 411]
+264 1 twogc FederationTestPlc2 [612, 412]
+265 1 twogd FederationTestPlc2 [613, 413]
+266 1 twoge FederationTestPlc2 [614, 414]
+267 1 twogf FederationTestPlc2 [615, 415]
+268 1 twogg FederationTestPlc2 [616, 416]
+269 1 twogh FederationTestPlc2 [617, 417]
+270 1 twogi FederationTestPlc2 [618, 418]
+271 1 twogj FederationTestPlc2 [619, 419]
+272 1 twoha FederationTestPlc2 [620, 420]
+273 1 twohb FederationTestPlc2 [621, 421]
+274 1 twohc FederationTestPlc2 [622, 422]
+275 1 twohd FederationTestPlc2 [623, 423]
+276 1 twohe FederationTestPlc2 [624, 424]
+277 1 twohf FederationTestPlc2 [625, 425]
+278 1 twohg FederationTestPlc2 [626, 426]
+279 1 twohh FederationTestPlc2 [627, 427]
+280 1 twohi FederationTestPlc2 [628, 428]
+281 1 twohj FederationTestPlc2 [629, 429]
+282 1 twoia FederationTestPlc2 [630, 430]
+283 1 twoib FederationTestPlc2 [631, 431]
+284 1 twoic FederationTestPlc2 [632, 432]
+285 1 twoid FederationTestPlc2 [633, 433]
+286 1 twoie FederationTestPlc2 [634, 434]
+287 1 twoif FederationTestPlc2 [635, 435]
+288 1 twoig FederationTestPlc2 [636, 436]
+289 1 twoih FederationTestPlc2 [637, 437]
+290 1 twoii FederationTestPlc2 [638, 438]
+291 1 twoij FederationTestPlc2 [639, 439]
+292 1 twoja FederationTestPlc2 [640, 440]
+293 1 twojb FederationTestPlc2 [641, 441]
+294 1 twojc FederationTestPlc2 [642, 442]
+295 1 twojd FederationTestPlc2 [643, 443]
+296 1 twoje FederationTestPlc2 [644, 444]
+297 1 twojf FederationTestPlc2 [645, 445]
+298 1 twojg FederationTestPlc2 [646, 446]
+299 1 twojh FederationTestPlc2 [647, 447]
+300 1 twoji FederationTestPlc2 [648, 448]
+301 1 twojj FederationTestPlc2 [649, 449]
+302 1 twobaa FederationTestPlc2 [650, 450]
+303 1 twobab FederationTestPlc2 [651, 451]
+304 1 twobac FederationTestPlc2 [652, 452]
+305 1 twobad FederationTestPlc2 [653, 453]
+306 1 twobae FederationTestPlc2 [654, 454]
+307 1 twobaf FederationTestPlc2 [655, 455]
+308 1 twobag FederationTestPlc2 [656, 456]
+309 1 twobah FederationTestPlc2 [657, 457]
+310 1 twobai FederationTestPlc2 [658, 458]
+311 1 twobaj FederationTestPlc2 [659, 459]
+312 1 twobba FederationTestPlc2 [660, 460]
+313 1 twobbb FederationTestPlc2 [661, 461]
+314 1 twobbc FederationTestPlc2 [662, 462]
+315 1 twobbd FederationTestPlc2 [663, 463]
+316 1 twobbe FederationTestPlc2 [664, 464]
+317 1 twobbf FederationTestPlc2 [665, 465]
+318 1 twobbg FederationTestPlc2 [666, 466]
+319 1 twobbh FederationTestPlc2 [667, 467]
+320 1 twobbi FederationTestPlc2 [668, 468]
+321 1 twobbj FederationTestPlc2 [669, 469]
+322 1 twobca FederationTestPlc2 [670, 470]
+323 1 twobcb FederationTestPlc2 [671, 471]
+324 1 twobcc FederationTestPlc2 [672, 472]
+325 1 twobcd FederationTestPlc2 [673, 473]
+326 1 twobce FederationTestPlc2 [674, 474]
+327 1 twobcf FederationTestPlc2 [675, 475]
+328 1 twobcg FederationTestPlc2 [676, 476]
+329 1 twobch FederationTestPlc2 [677, 477]
+330 1 twobci FederationTestPlc2 [678, 478]
+331 1 twobcj FederationTestPlc2 [679, 479]
+332 1 twobda FederationTestPlc2 [680, 480]
+333 1 twobdb FederationTestPlc2 [681, 481]
+334 1 twobdc FederationTestPlc2 [682, 482]
+335 1 twobdd FederationTestPlc2 [683, 483]
+336 1 twobde FederationTestPlc2 [684, 484]
+337 1 twobdf FederationTestPlc2 [685, 485]
+338 1 twobdg FederationTestPlc2 [686, 486]
+339 1 twobdh FederationTestPlc2 [687, 487]
+340 1 twobdi FederationTestPlc2 [688, 488]
+341 1 twobdj FederationTestPlc2 [689, 489]
+342 1 twobea FederationTestPlc2 [690, 490]
+343 1 twobeb FederationTestPlc2 [691, 491]
+344 1 twobec FederationTestPlc2 [692, 492]
+345 1 twobed FederationTestPlc2 [693, 493]
+346 1 twobee FederationTestPlc2 [694, 494]
+347 1 twobef FederationTestPlc2 [695, 495]
+348 1 twobeg FederationTestPlc2 [696, 496]
+349 1 twobeh FederationTestPlc2 [697, 497]
+350 1 twobei FederationTestPlc2 [698, 498]
+351 1 twobej FederationTestPlc2 [699, 499]
+352 1 twobfa FederationTestPlc2 [700, 500]
+353 1 twobfb FederationTestPlc2 [501]
+354 1 twobfc FederationTestPlc2 [502]
+355 1 twobfd FederationTestPlc2 [503]
+356 1 twobfe FederationTestPlc2 [504]
+357 1 twobff FederationTestPlc2 [505]
+358 1 twobfg FederationTestPlc2 [506]
+359 1 twobfh FederationTestPlc2 [507]
+360 1 twobfi FederationTestPlc2 [508]
+361 1 twobfj FederationTestPlc2 [509]
+362 1 twobga FederationTestPlc2 [510]
+363 1 twobgb FederationTestPlc2 [511]
+364 1 twobgc FederationTestPlc2 [512]
+365 1 twobgd FederationTestPlc2 [513]
+366 1 twobge FederationTestPlc2 [514]
+367 1 twobgf FederationTestPlc2 [515]
+368 1 twobgg FederationTestPlc2 [516]
+369 1 twobgh FederationTestPlc2 [517]
+370 1 twobgi FederationTestPlc2 [518]
+371 1 twobgj FederationTestPlc2 [519]
+372 1 twobha FederationTestPlc2 [520]
+373 1 twobhb FederationTestPlc2 [521]
+374 1 twobhc FederationTestPlc2 [522]
+375 1 twobhd FederationTestPlc2 [523]
+376 1 twobhe FederationTestPlc2 [524]
+377 1 twobhf FederationTestPlc2 [525]
+378 1 twobhg FederationTestPlc2 [526]
+379 1 twobhh FederationTestPlc2 [527]
+380 1 twobhi FederationTestPlc2 [528]
+381 1 twobhj FederationTestPlc2 [529]
+382 1 twobia FederationTestPlc2 [530]
+383 1 twobib FederationTestPlc2 [531]
+384 1 twobic FederationTestPlc2 [532]
+385 1 twobid FederationTestPlc2 [533]
+386 1 twobie FederationTestPlc2 [534]
+387 1 twobif FederationTestPlc2 [535]
+388 1 twobig FederationTestPlc2 [536]
+389 1 twobih FederationTestPlc2 [537]
+390 1 twobii FederationTestPlc2 [538]
+391 1 twobij FederationTestPlc2 [539]
+392 1 twobja FederationTestPlc2 [540]
+393 1 twobjb FederationTestPlc2 [541]
+394 1 twobjc FederationTestPlc2 [542]
+395 1 twobjd FederationTestPlc2 [543]
+396 1 twobje FederationTestPlc2 [544]
+397 1 twobjf FederationTestPlc2 [545]
+398 1 twobjg FederationTestPlc2 [546]
+399 1 twobjh FederationTestPlc2 [547]
+400 1 twobji FederationTestPlc2 [548]
+401 1 twobjj FederationTestPlc2 [549]
+402 1 twocaa FederationTestPlc2 [550]
+01: KEYS
+1 None ssh-rsa somekey4plctestbed user1-key1
+2 None ssh-rsa somekey4plctestbed user2-key1
+3 None ssh-rsa somekey4plctestbed user3-key1
+4 None ssh-rsa somekey4plctestbed user4-key1
+5 None ssh-rsa somekey4plctestbed user5-key1
+6 None ssh-rsa somekey4plctestbed user6-key1
+7 None ssh-rsa somekey4plctestbed user7-key1
+8 None ssh-rsa somekey4plctestbed user8-key1
+9 None ssh-rsa somekey4plctestbed user9-key1
+10 None ssh-rsa somekey4plctestbed user10-key1
+11 None ssh-rsa somekey4plctestbed user11-key1
+12 None ssh-rsa somekey4plctestbed user12-key1
+13 None ssh-rsa somekey4plctestbed user13-key1
+14 None ssh-rsa somekey4plctestbed user14-key1
+15 None ssh-rsa somekey4plctestbed user15-key1
+16 None ssh-rsa somekey4plctestbed user16-key1
+17 None ssh-rsa somekey4plctestbed user17-key1
+18 None ssh-rsa somekey4plctestbed user18-key1
+19 None ssh-rsa somekey4plctestbed user19-key1
+20 None ssh-rsa somekey4plctestbed user20-key1
+21 None ssh-rsa somekey4plctestbed user21-key1
+22 None ssh-rsa somekey4plctestbed user22-key1
+23 None ssh-rsa somekey4plctestbed user23-key1
+24 None ssh-rsa somekey4plctestbed user24-key1
+25 None ssh-rsa somekey4plctestbed user25-key1
+26 None ssh-rsa somekey4plctestbed user26-key1
+27 None ssh-rsa somekey4plctestbed user27-key1
+28 None ssh-rsa somekey4plctestbed user28-key1
+29 None ssh-rsa somekey4plctestbed user29-key1
+30 None ssh-rsa somekey4plctestbed user30-key1
+31 None ssh-rsa somekey4plctestbed user31-key1
+32 None ssh-rsa somekey4plctestbed user32-key1
+33 None ssh-rsa somekey4plctestbed user33-key1
+34 None ssh-rsa somekey4plctestbed user34-key1
+35 None ssh-rsa somekey4plctestbed user35-key1
+36 None ssh-rsa somekey4plctestbed user36-key1
+37 None ssh-rsa somekey4plctestbed user37-key1
+38 None ssh-rsa somekey4plctestbed user38-key1
+39 None ssh-rsa somekey4plctestbed user39-key1
+40 None ssh-rsa somekey4plctestbed user40-key1
+41 None ssh-rsa somekey4plctestbed user41-key1
+42 None ssh-rsa somekey4plctestbed user42-key1
+43 None ssh-rsa somekey4plctestbed user43-key1
+44 None ssh-rsa somekey4plctestbed user44-key1
+45 None ssh-rsa somekey4plctestbed user45-key1
+46 None ssh-rsa somekey4plctestbed user46-key1
+47 None ssh-rsa somekey4plctestbed user47-key1
+48 None ssh-rsa somekey4plctestbed user48-key1
+49 None ssh-rsa somekey4plctestbed user49-key1
+50 None ssh-rsa somekey4plctestbed user50-key1
+51 None ssh-rsa somekey4plctestbed user51-key1
+52 None ssh-rsa somekey4plctestbed user52-key1
+53 None ssh-rsa somekey4plctestbed user53-key1
+54 None ssh-rsa somekey4plctestbed user54-key1
+55 None ssh-rsa somekey4plctestbed user55-key1
+56 None ssh-rsa somekey4plctestbed user56-key1
+57 None ssh-rsa somekey4plctestbed user57-key1
+58 None ssh-rsa somekey4plctestbed user58-key1
+59 None ssh-rsa somekey4plctestbed user59-key1
+60 None ssh-rsa somekey4plctestbed user60-key1
+61 None ssh-rsa somekey4plctestbed user61-key1
+62 None ssh-rsa somekey4plctestbed user62-key1
+63 None ssh-rsa somekey4plctestbed user63-key1
+64 None ssh-rsa somekey4plctestbed user64-key1
+65 None ssh-rsa somekey4plctestbed user65-key1
+66 None ssh-rsa somekey4plctestbed user66-key1
+67 None ssh-rsa somekey4plctestbed user67-key1
+68 None ssh-rsa somekey4plctestbed user68-key1
+69 None ssh-rsa somekey4plctestbed user69-key1
+70 None ssh-rsa somekey4plctestbed user70-key1
+71 None ssh-rsa somekey4plctestbed user71-key1
+72 None ssh-rsa somekey4plctestbed user72-key1
+73 None ssh-rsa somekey4plctestbed user73-key1
+74 None ssh-rsa somekey4plctestbed user74-key1
+75 None ssh-rsa somekey4plctestbed user75-key1
+76 None ssh-rsa somekey4plctestbed user76-key1
+77 None ssh-rsa somekey4plctestbed user77-key1
+78 None ssh-rsa somekey4plctestbed user78-key1
+79 None ssh-rsa somekey4plctestbed user79-key1
+80 None ssh-rsa somekey4plctestbed user80-key1
+81 None ssh-rsa somekey4plctestbed user81-key1
+82 None ssh-rsa somekey4plctestbed user82-key1
+83 None ssh-rsa somekey4plctestbed user83-key1
+84 None ssh-rsa somekey4plctestbed user84-key1
+85 None ssh-rsa somekey4plctestbed user85-key1
+86 None ssh-rsa somekey4plctestbed user86-key1
+87 None ssh-rsa somekey4plctestbed user87-key1
+88 None ssh-rsa somekey4plctestbed user88-key1
+89 None ssh-rsa somekey4plctestbed user89-key1
+90 None ssh-rsa somekey4plctestbed user90-key1
+91 None ssh-rsa somekey4plctestbed user91-key1
+92 None ssh-rsa somekey4plctestbed user92-key1
+93 None ssh-rsa somekey4plctestbed user93-key1
+94 None ssh-rsa somekey4plctestbed user94-key1
+95 None ssh-rsa somekey4plctestbed user95-key1
+96 None ssh-rsa somekey4plctestbed user96-key1
+97 None ssh-rsa somekey4plctestbed user97-key1
+98 None ssh-rsa somekey4plctestbed user98-key1
+99 None ssh-rsa somekey4plctestbed user99-key1
+100 None ssh-rsa somekey4plctestbed user100-key1
+101 None ssh-rsa somekey4plctestbed user101-key1
+102 None ssh-rsa somekey4plctestbed user102-key1
+103 None ssh-rsa somekey4plctestbed user103-key1
+104 None ssh-rsa somekey4plctestbed user104-key1
+105 None ssh-rsa somekey4plctestbed user105-key1
+106 None ssh-rsa somekey4plctestbed user106-key1
+107 None ssh-rsa somekey4plctestbed user107-key1
+108 None ssh-rsa somekey4plctestbed user108-key1
+109 None ssh-rsa somekey4plctestbed user109-key1
+110 None ssh-rsa somekey4plctestbed user110-key1
+111 None ssh-rsa somekey4plctestbed user111-key1
+112 None ssh-rsa somekey4plctestbed user112-key1
+113 None ssh-rsa somekey4plctestbed user113-key1
+114 None ssh-rsa somekey4plctestbed user114-key1
+115 None ssh-rsa somekey4plctestbed user115-key1
+116 None ssh-rsa somekey4plctestbed user116-key1
+117 None ssh-rsa somekey4plctestbed user117-key1
+118 None ssh-rsa somekey4plctestbed user118-key1
+119 None ssh-rsa somekey4plctestbed user119-key1
+120 None ssh-rsa somekey4plctestbed user120-key1
+121 None ssh-rsa somekey4plctestbed user121-key1
+122 None ssh-rsa somekey4plctestbed user122-key1
+123 None ssh-rsa somekey4plctestbed user123-key1
+124 None ssh-rsa somekey4plctestbed user124-key1
+125 None ssh-rsa somekey4plctestbed user125-key1
+126 None ssh-rsa somekey4plctestbed user126-key1
+127 None ssh-rsa somekey4plctestbed user127-key1
+128 None ssh-rsa somekey4plctestbed user128-key1
+129 None ssh-rsa somekey4plctestbed user129-key1
+130 None ssh-rsa somekey4plctestbed user130-key1
+131 None ssh-rsa somekey4plctestbed user131-key1
+132 None ssh-rsa somekey4plctestbed user132-key1
+133 None ssh-rsa somekey4plctestbed user133-key1
+134 None ssh-rsa somekey4plctestbed user134-key1
+135 None ssh-rsa somekey4plctestbed user135-key1
+136 None ssh-rsa somekey4plctestbed user136-key1
+137 None ssh-rsa somekey4plctestbed user137-key1
+138 None ssh-rsa somekey4plctestbed user138-key1
+139 None ssh-rsa somekey4plctestbed user139-key1
+140 None ssh-rsa somekey4plctestbed user140-key1
+141 None ssh-rsa somekey4plctestbed user141-key1
+142 None ssh-rsa somekey4plctestbed user142-key1
+143 None ssh-rsa somekey4plctestbed user143-key1
+144 None ssh-rsa somekey4plctestbed user144-key1
+145 None ssh-rsa somekey4plctestbed user145-key1
+146 None ssh-rsa somekey4plctestbed user146-key1
+147 None ssh-rsa somekey4plctestbed user147-key1
+148 None ssh-rsa somekey4plctestbed user148-key1
+149 None ssh-rsa somekey4plctestbed user149-key1
+150 None ssh-rsa somekey4plctestbed user150-key1
+151 None ssh-rsa somekey4plctestbed user151-key1
+152 None ssh-rsa somekey4plctestbed user152-key1
+153 None ssh-rsa somekey4plctestbed user153-key1
+154 None ssh-rsa somekey4plctestbed user154-key1
+155 None ssh-rsa somekey4plctestbed user155-key1
+156 None ssh-rsa somekey4plctestbed user156-key1
+157 None ssh-rsa somekey4plctestbed user157-key1
+158 None ssh-rsa somekey4plctestbed user158-key1
+159 None ssh-rsa somekey4plctestbed user159-key1
+160 None ssh-rsa somekey4plctestbed user160-key1
+161 None ssh-rsa somekey4plctestbed user161-key1
+162 None ssh-rsa somekey4plctestbed user162-key1
+163 None ssh-rsa somekey4plctestbed user163-key1
+164 None ssh-rsa somekey4plctestbed user164-key1
+165 None ssh-rsa somekey4plctestbed user165-key1
+166 None ssh-rsa somekey4plctestbed user166-key1
+167 None ssh-rsa somekey4plctestbed user167-key1
+168 None ssh-rsa somekey4plctestbed user168-key1
+169 None ssh-rsa somekey4plctestbed user169-key1
+170 None ssh-rsa somekey4plctestbed user170-key1
+171 None ssh-rsa somekey4plctestbed user171-key1
+172 None ssh-rsa somekey4plctestbed user172-key1
+173 None ssh-rsa somekey4plctestbed user173-key1
+174 None ssh-rsa somekey4plctestbed user174-key1
+175 None ssh-rsa somekey4plctestbed user175-key1
+176 None ssh-rsa somekey4plctestbed user176-key1
+177 None ssh-rsa somekey4plctestbed user177-key1
+178 None ssh-rsa somekey4plctestbed user178-key1
+179 None ssh-rsa somekey4plctestbed user179-key1
+180 None ssh-rsa somekey4plctestbed user180-key1
+181 None ssh-rsa somekey4plctestbed user181-key1
+182 None ssh-rsa somekey4plctestbed user182-key1
+183 None ssh-rsa somekey4plctestbed user183-key1
+184 None ssh-rsa somekey4plctestbed user184-key1
+185 None ssh-rsa somekey4plctestbed user185-key1
+186 None ssh-rsa somekey4plctestbed user186-key1
+187 None ssh-rsa somekey4plctestbed user187-key1
+188 None ssh-rsa somekey4plctestbed user188-key1
+189 None ssh-rsa somekey4plctestbed user189-key1
+190 None ssh-rsa somekey4plctestbed user190-key1
+191 None ssh-rsa somekey4plctestbed user191-key1
+192 None ssh-rsa somekey4plctestbed user192-key1
+193 None ssh-rsa somekey4plctestbed user193-key1
+194 None ssh-rsa somekey4plctestbed user194-key1
+195 None ssh-rsa somekey4plctestbed user195-key1
+196 None ssh-rsa somekey4plctestbed user196-key1
+197 None ssh-rsa somekey4plctestbed user197-key1
+198 None ssh-rsa somekey4plctestbed user198-key1
+199 None ssh-rsa somekey4plctestbed user199-key1
+200 None ssh-rsa somekey4plctestbed user200-key1
+201 None ssh-rsa somekey4plctestbed user201-key1
+202 None ssh-rsa somekey4plctestbed user202-key1
+203 None ssh-rsa somekey4plctestbed user203-key1
+204 None ssh-rsa somekey4plctestbed user204-key1
+205 None ssh-rsa somekey4plctestbed user205-key1
+206 None ssh-rsa somekey4plctestbed user206-key1
+207 None ssh-rsa somekey4plctestbed user207-key1
+208 None ssh-rsa somekey4plctestbed user208-key1
+209 None ssh-rsa somekey4plctestbed user209-key1
+210 None ssh-rsa somekey4plctestbed user210-key1
+211 None ssh-rsa somekey4plctestbed user211-key1
+212 None ssh-rsa somekey4plctestbed user212-key1
+213 None ssh-rsa somekey4plctestbed user213-key1
+214 None ssh-rsa somekey4plctestbed user214-key1
+215 None ssh-rsa somekey4plctestbed user215-key1
+216 None ssh-rsa somekey4plctestbed user216-key1
+217 None ssh-rsa somekey4plctestbed user217-key1
+218 None ssh-rsa somekey4plctestbed user218-key1
+219 None ssh-rsa somekey4plctestbed user219-key1
+220 None ssh-rsa somekey4plctestbed user220-key1
+221 None ssh-rsa somekey4plctestbed user221-key1
+222 None ssh-rsa somekey4plctestbed user222-key1
+223 None ssh-rsa somekey4plctestbed user223-key1
+224 None ssh-rsa somekey4plctestbed user224-key1
+225 None ssh-rsa somekey4plctestbed user225-key1
+226 None ssh-rsa somekey4plctestbed user226-key1
+227 None ssh-rsa somekey4plctestbed user227-key1
+228 None ssh-rsa somekey4plctestbed user228-key1
+229 None ssh-rsa somekey4plctestbed user229-key1
+230 None ssh-rsa somekey4plctestbed user230-key1
+231 None ssh-rsa somekey4plctestbed user231-key1
+232 None ssh-rsa somekey4plctestbed user232-key1
+233 None ssh-rsa somekey4plctestbed user233-key1
+234 None ssh-rsa somekey4plctestbed user234-key1
+235 None ssh-rsa somekey4plctestbed user235-key1
+236 None ssh-rsa somekey4plctestbed user236-key1
+237 None ssh-rsa somekey4plctestbed user237-key1
+238 None ssh-rsa somekey4plctestbed user238-key1
+239 None ssh-rsa somekey4plctestbed user239-key1
+240 None ssh-rsa somekey4plctestbed user240-key1
+241 None ssh-rsa somekey4plctestbed user241-key1
+242 None ssh-rsa somekey4plctestbed user242-key1
+243 None ssh-rsa somekey4plctestbed user243-key1
+244 None ssh-rsa somekey4plctestbed user244-key1
+245 None ssh-rsa somekey4plctestbed user245-key1
+246 None ssh-rsa somekey4plctestbed user246-key1
+247 None ssh-rsa somekey4plctestbed user247-key1
+248 None ssh-rsa somekey4plctestbed user248-key1
+249 None ssh-rsa somekey4plctestbed user249-key1
+250 None ssh-rsa somekey4plctestbed user250-key1
+251 None ssh-rsa somekey4plctestbed user251-key1
+252 None ssh-rsa somekey4plctestbed user252-key1
+253 None ssh-rsa somekey4plctestbed user253-key1
+254 None ssh-rsa somekey4plctestbed user254-key1
+255 None ssh-rsa somekey4plctestbed user255-key1
+256 None ssh-rsa somekey4plctestbed user256-key1
+257 None ssh-rsa somekey4plctestbed user257-key1
+258 None ssh-rsa somekey4plctestbed user258-key1
+259 None ssh-rsa somekey4plctestbed user259-key1
+260 None ssh-rsa somekey4plctestbed user260-key1
+261 None ssh-rsa somekey4plctestbed user261-key1
+262 None ssh-rsa somekey4plctestbed user262-key1
+263 None ssh-rsa somekey4plctestbed user263-key1
+264 None ssh-rsa somekey4plctestbed user264-key1
+265 None ssh-rsa somekey4plctestbed user265-key1
+266 None ssh-rsa somekey4plctestbed user266-key1
+267 None ssh-rsa somekey4plctestbed user267-key1
+268 None ssh-rsa somekey4plctestbed user268-key1
+269 None ssh-rsa somekey4plctestbed user269-key1
+270 None ssh-rsa somekey4plctestbed user270-key1
+271 None ssh-rsa somekey4plctestbed user271-key1
+272 None ssh-rsa somekey4plctestbed user272-key1
+273 None ssh-rsa somekey4plctestbed user273-key1
+274 None ssh-rsa somekey4plctestbed user274-key1
+275 None ssh-rsa somekey4plctestbed user275-key1
+276 None ssh-rsa somekey4plctestbed user276-key1
+277 None ssh-rsa somekey4plctestbed user277-key1
+278 None ssh-rsa somekey4plctestbed user278-key1
+279 None ssh-rsa somekey4plctestbed user279-key1
+280 None ssh-rsa somekey4plctestbed user280-key1
+281 None ssh-rsa somekey4plctestbed user281-key1
+282 None ssh-rsa somekey4plctestbed user282-key1
+283 None ssh-rsa somekey4plctestbed user283-key1
+284 None ssh-rsa somekey4plctestbed user284-key1
+285 None ssh-rsa somekey4plctestbed user285-key1
+286 None ssh-rsa somekey4plctestbed user286-key1
+287 None ssh-rsa somekey4plctestbed user287-key1
+288 None ssh-rsa somekey4plctestbed user288-key1
+289 None ssh-rsa somekey4plctestbed user289-key1
+290 None ssh-rsa somekey4plctestbed user290-key1
+291 None ssh-rsa somekey4plctestbed user291-key1
+292 None ssh-rsa somekey4plctestbed user292-key1
+293 None ssh-rsa somekey4plctestbed user293-key1
+294 None ssh-rsa somekey4plctestbed user294-key1
+295 None ssh-rsa somekey4plctestbed user295-key1
+296 None ssh-rsa somekey4plctestbed user296-key1
+297 None ssh-rsa somekey4plctestbed user297-key1
+298 None ssh-rsa somekey4plctestbed user298-key1
+299 None ssh-rsa somekey4plctestbed user299-key1
+300 None ssh-rsa somekey4plctestbed user300-key1
+301 None ssh-rsa somekey4plctestbed user301-key1
+302 None ssh-rsa somekey4plctestbed user302-key1
+303 None ssh-rsa somekey4plctestbed user303-key1
+304 None ssh-rsa somekey4plctestbed user304-key1
+305 None ssh-rsa somekey4plctestbed user305-key1
+306 None ssh-rsa somekey4plctestbed user306-key1
+307 None ssh-rsa somekey4plctestbed user307-key1
+308 None ssh-rsa somekey4plctestbed user308-key1
+309 None ssh-rsa somekey4plctestbed user309-key1
+310 None ssh-rsa somekey4plctestbed user310-key1
+311 None ssh-rsa somekey4plctestbed user311-key1
+312 None ssh-rsa somekey4plctestbed user312-key1
+313 None ssh-rsa somekey4plctestbed user313-key1
+314 None ssh-rsa somekey4plctestbed user314-key1
+315 None ssh-rsa somekey4plctestbed user315-key1
+316 None ssh-rsa somekey4plctestbed user316-key1
+317 None ssh-rsa somekey4plctestbed user317-key1
+318 None ssh-rsa somekey4plctestbed user318-key1
+319 None ssh-rsa somekey4plctestbed user319-key1
+320 None ssh-rsa somekey4plctestbed user320-key1
+321 None ssh-rsa somekey4plctestbed user321-key1
+322 None ssh-rsa somekey4plctestbed user322-key1
+323 None ssh-rsa somekey4plctestbed user323-key1
+324 None ssh-rsa somekey4plctestbed user324-key1
+325 None ssh-rsa somekey4plctestbed user325-key1
+326 None ssh-rsa somekey4plctestbed user326-key1
+327 None ssh-rsa somekey4plctestbed user327-key1
+328 None ssh-rsa somekey4plctestbed user328-key1
+329 None ssh-rsa somekey4plctestbed user329-key1
+330 None ssh-rsa somekey4plctestbed user330-key1
+331 None ssh-rsa somekey4plctestbed user331-key1
+332 None ssh-rsa somekey4plctestbed user332-key1
+333 None ssh-rsa somekey4plctestbed user333-key1
+334 None ssh-rsa somekey4plctestbed user334-key1
+335 None ssh-rsa somekey4plctestbed user335-key1
+336 None ssh-rsa somekey4plctestbed user336-key1
+337 None ssh-rsa somekey4plctestbed user337-key1
+338 None ssh-rsa somekey4plctestbed user338-key1
+339 None ssh-rsa somekey4plctestbed user339-key1
+340 None ssh-rsa somekey4plctestbed user340-key1
+341 None ssh-rsa somekey4plctestbed user341-key1
+342 None ssh-rsa somekey4plctestbed user342-key1
+343 None ssh-rsa somekey4plctestbed user343-key1
+344 None ssh-rsa somekey4plctestbed user344-key1
+345 None ssh-rsa somekey4plctestbed user345-key1
+346 None ssh-rsa somekey4plctestbed user346-key1
+347 None ssh-rsa somekey4plctestbed user347-key1
+348 None ssh-rsa somekey4plctestbed user348-key1
+349 None ssh-rsa somekey4plctestbed user349-key1
+350 None ssh-rsa somekey4plctestbed user350-key1
+351 None ssh-rsa somekey4plctestbed user351-key1
+352 None ssh-rsa somekey4plctestbed user352-key1
+353 None ssh-rsa somekey4plctestbed user353-key1
+354 None ssh-rsa somekey4plctestbed user354-key1
+355 None ssh-rsa somekey4plctestbed user355-key1
+356 None ssh-rsa somekey4plctestbed user356-key1
+357 None ssh-rsa somekey4plctestbed user357-key1
+358 None ssh-rsa somekey4plctestbed user358-key1
+359 None ssh-rsa somekey4plctestbed user359-key1
+360 None ssh-rsa somekey4plctestbed user360-key1
+361 None ssh-rsa somekey4plctestbed user361-key1
+362 None ssh-rsa somekey4plctestbed user362-key1
+363 None ssh-rsa somekey4plctestbed user363-key1
+364 None ssh-rsa somekey4plctestbed user364-key1
+365 None ssh-rsa somekey4plctestbed user365-key1
+366 None ssh-rsa somekey4plctestbed user366-key1
+367 None ssh-rsa somekey4plctestbed user367-key1
+368 None ssh-rsa somekey4plctestbed user368-key1
+369 None ssh-rsa somekey4plctestbed user369-key1
+370 None ssh-rsa somekey4plctestbed user370-key1
+371 None ssh-rsa somekey4plctestbed user371-key1
+372 None ssh-rsa somekey4plctestbed user372-key1
+373 None ssh-rsa somekey4plctestbed user373-key1
+374 None ssh-rsa somekey4plctestbed user374-key1
+375 None ssh-rsa somekey4plctestbed user375-key1
+376 None ssh-rsa somekey4plctestbed user376-key1
+377 None ssh-rsa somekey4plctestbed user377-key1
+378 None ssh-rsa somekey4plctestbed user378-key1
+379 None ssh-rsa somekey4plctestbed user379-key1
+380 None ssh-rsa somekey4plctestbed user380-key1
+381 None ssh-rsa somekey4plctestbed user381-key1
+382 None ssh-rsa somekey4plctestbed user382-key1
+383 None ssh-rsa somekey4plctestbed user383-key1
+384 None ssh-rsa somekey4plctestbed user384-key1
+385 None ssh-rsa somekey4plctestbed user385-key1
+386 None ssh-rsa somekey4plctestbed user386-key1
+387 None ssh-rsa somekey4plctestbed user387-key1
+388 None ssh-rsa somekey4plctestbed user388-key1
+389 None ssh-rsa somekey4plctestbed user389-key1
+390 None ssh-rsa somekey4plctestbed user390-key1
+391 None ssh-rsa somekey4plctestbed user391-key1
+392 None ssh-rsa somekey4plctestbed user392-key1
+393 None ssh-rsa somekey4plctestbed user393-key1
+394 None ssh-rsa somekey4plctestbed user394-key1
+395 None ssh-rsa somekey4plctestbed user395-key1
+396 None ssh-rsa somekey4plctestbed user396-key1
+397 None ssh-rsa somekey4plctestbed user397-key1
+398 None ssh-rsa somekey4plctestbed user398-key1
+399 None ssh-rsa somekey4plctestbed user399-key1
+400 None ssh-rsa somekey4plctestbed user400-key1
+401 None ssh-rsa somekey4plctestbed user401-key1
+402 None ssh-rsa somekey4plctestbed user402-key1
+403 None ssh-rsa somekey4plctestbed user403-key1
+404 None ssh-rsa somekey4plctestbed user404-key1
+405 None ssh-rsa somekey4plctestbed user405-key1
+406 None ssh-rsa somekey4plctestbed user406-key1
+407 None ssh-rsa somekey4plctestbed user407-key1
+408 None ssh-rsa somekey4plctestbed user408-key1
+409 None ssh-rsa somekey4plctestbed user409-key1
+410 None ssh-rsa somekey4plctestbed user410-key1
+411 None ssh-rsa somekey4plctestbed user411-key1
+412 None ssh-rsa somekey4plctestbed user412-key1
+413 None ssh-rsa somekey4plctestbed user413-key1
+414 None ssh-rsa somekey4plctestbed user414-key1
+415 None ssh-rsa somekey4plctestbed user415-key1
+416 None ssh-rsa somekey4plctestbed user416-key1
+417 None ssh-rsa somekey4plctestbed user417-key1
+418 None ssh-rsa somekey4plctestbed user418-key1
+419 None ssh-rsa somekey4plctestbed user419-key1
+420 None ssh-rsa somekey4plctestbed user420-key1
+421 None ssh-rsa somekey4plctestbed user421-key1
+422 None ssh-rsa somekey4plctestbed user422-key1
+423 None ssh-rsa somekey4plctestbed user423-key1
+424 None ssh-rsa somekey4plctestbed user424-key1
+425 None ssh-rsa somekey4plctestbed user425-key1
+426 None ssh-rsa somekey4plctestbed user426-key1
+427 None ssh-rsa somekey4plctestbed user427-key1
+428 None ssh-rsa somekey4plctestbed user428-key1
+429 None ssh-rsa somekey4plctestbed user429-key1
+430 None ssh-rsa somekey4plctestbed user430-key1
+431 None ssh-rsa somekey4plctestbed user431-key1
+432 None ssh-rsa somekey4plctestbed user432-key1
+433 None ssh-rsa somekey4plctestbed user433-key1
+434 None ssh-rsa somekey4plctestbed user434-key1
+435 None ssh-rsa somekey4plctestbed user435-key1
+436 None ssh-rsa somekey4plctestbed user436-key1
+437 None ssh-rsa somekey4plctestbed user437-key1
+438 None ssh-rsa somekey4plctestbed user438-key1
+439 None ssh-rsa somekey4plctestbed user439-key1
+440 None ssh-rsa somekey4plctestbed user440-key1
+441 None ssh-rsa somekey4plctestbed user441-key1
+442 None ssh-rsa somekey4plctestbed user442-key1
+443 None ssh-rsa somekey4plctestbed user443-key1
+444 None ssh-rsa somekey4plctestbed user444-key1
+445 None ssh-rsa somekey4plctestbed user445-key1
+446 None ssh-rsa somekey4plctestbed user446-key1
+447 None ssh-rsa somekey4plctestbed user447-key1
+448 None ssh-rsa somekey4plctestbed user448-key1
+449 None ssh-rsa somekey4plctestbed user449-key1
+450 None ssh-rsa somekey4plctestbed user450-key1
+451 None ssh-rsa somekey4plctestbed user451-key1
+452 None ssh-rsa somekey4plctestbed user452-key1
+453 None ssh-rsa somekey4plctestbed user453-key1
+454 None ssh-rsa somekey4plctestbed user454-key1
+455 None ssh-rsa somekey4plctestbed user455-key1
+456 None ssh-rsa somekey4plctestbed user456-key1
+457 None ssh-rsa somekey4plctestbed user457-key1
+458 None ssh-rsa somekey4plctestbed user458-key1
+459 None ssh-rsa somekey4plctestbed user459-key1
+460 None ssh-rsa somekey4plctestbed user460-key1
+461 None ssh-rsa somekey4plctestbed user461-key1
+462 None ssh-rsa somekey4plctestbed user462-key1
+463 None ssh-rsa somekey4plctestbed user463-key1
+464 None ssh-rsa somekey4plctestbed user464-key1
+465 None ssh-rsa somekey4plctestbed user465-key1
+466 None ssh-rsa somekey4plctestbed user466-key1
+467 None ssh-rsa somekey4plctestbed user467-key1
+468 None ssh-rsa somekey4plctestbed user468-key1
+469 None ssh-rsa somekey4plctestbed user469-key1
+470 None ssh-rsa somekey4plctestbed user470-key1
+471 None ssh-rsa somekey4plctestbed user471-key1
+472 None ssh-rsa somekey4plctestbed user472-key1
+473 None ssh-rsa somekey4plctestbed user473-key1
+474 None ssh-rsa somekey4plctestbed user474-key1
+475 None ssh-rsa somekey4plctestbed user475-key1
+476 None ssh-rsa somekey4plctestbed user476-key1
+477 None ssh-rsa somekey4plctestbed user477-key1
+478 None ssh-rsa somekey4plctestbed user478-key1
+479 None ssh-rsa somekey4plctestbed user479-key1
+480 None ssh-rsa somekey4plctestbed user480-key1
+481 None ssh-rsa somekey4plctestbed user481-key1
+482 None ssh-rsa somekey4plctestbed user482-key1
+483 None ssh-rsa somekey4plctestbed user483-key1
+484 None ssh-rsa somekey4plctestbed user484-key1
+485 None ssh-rsa somekey4plctestbed user485-key1
+486 None ssh-rsa somekey4plctestbed user486-key1
+487 None ssh-rsa somekey4plctestbed user487-key1
+488 None ssh-rsa somekey4plctestbed user488-key1
+489 None ssh-rsa somekey4plctestbed user489-key1
+490 None ssh-rsa somekey4plctestbed user490-key1
+491 None ssh-rsa somekey4plctestbed user491-key1
+492 None ssh-rsa somekey4plctestbed user492-key1
+493 None ssh-rsa somekey4plctestbed user493-key1
+494 None ssh-rsa somekey4plctestbed user494-key1
+495 None ssh-rsa somekey4plctestbed user495-key1
+496 None ssh-rsa somekey4plctestbed user496-key1
+497 None ssh-rsa somekey4plctestbed user497-key1
+498 None ssh-rsa somekey4plctestbed user498-key1
+499 None ssh-rsa somekey4plctestbed user499-key1
+500 None ssh-rsa somekey4plctestbed user500-key1
+501 1 ssh-rsa somekey4plctestbed user1-key1
+502 1 ssh-rsa somekey4plctestbed user2-key1
+503 1 ssh-rsa somekey4plctestbed user3-key1
+504 1 ssh-rsa somekey4plctestbed user4-key1
+505 1 ssh-rsa somekey4plctestbed user5-key1
+506 1 ssh-rsa somekey4plctestbed user6-key1
+507 1 ssh-rsa somekey4plctestbed user7-key1
+508 1 ssh-rsa somekey4plctestbed user8-key1
+509 1 ssh-rsa somekey4plctestbed user9-key1
+510 1 ssh-rsa somekey4plctestbed user10-key1
+511 1 ssh-rsa somekey4plctestbed user11-key1
+512 1 ssh-rsa somekey4plctestbed user12-key1
+513 1 ssh-rsa somekey4plctestbed user13-key1
+514 1 ssh-rsa somekey4plctestbed user14-key1
+515 1 ssh-rsa somekey4plctestbed user15-key1
+516 1 ssh-rsa somekey4plctestbed user16-key1
+517 1 ssh-rsa somekey4plctestbed user17-key1
+518 1 ssh-rsa somekey4plctestbed user18-key1
+519 1 ssh-rsa somekey4plctestbed user19-key1
+520 1 ssh-rsa somekey4plctestbed user20-key1
+521 1 ssh-rsa somekey4plctestbed user21-key1
+522 1 ssh-rsa somekey4plctestbed user22-key1
+523 1 ssh-rsa somekey4plctestbed user23-key1
+524 1 ssh-rsa somekey4plctestbed user24-key1
+525 1 ssh-rsa somekey4plctestbed user25-key1
+526 1 ssh-rsa somekey4plctestbed user26-key1
+527 1 ssh-rsa somekey4plctestbed user27-key1
+528 1 ssh-rsa somekey4plctestbed user28-key1
+529 1 ssh-rsa somekey4plctestbed user29-key1
+530 1 ssh-rsa somekey4plctestbed user30-key1
+531 1 ssh-rsa somekey4plctestbed user31-key1
+532 1 ssh-rsa somekey4plctestbed user32-key1
+533 1 ssh-rsa somekey4plctestbed user33-key1
+534 1 ssh-rsa somekey4plctestbed user34-key1
+535 1 ssh-rsa somekey4plctestbed user35-key1
+536 1 ssh-rsa somekey4plctestbed user36-key1
+537 1 ssh-rsa somekey4plctestbed user37-key1
+538 1 ssh-rsa somekey4plctestbed user38-key1
+539 1 ssh-rsa somekey4plctestbed user39-key1
+540 1 ssh-rsa somekey4plctestbed user40-key1
+541 1 ssh-rsa somekey4plctestbed user41-key1
+542 1 ssh-rsa somekey4plctestbed user42-key1
+543 1 ssh-rsa somekey4plctestbed user43-key1
+544 1 ssh-rsa somekey4plctestbed user44-key1
+545 1 ssh-rsa somekey4plctestbed user45-key1
+546 1 ssh-rsa somekey4plctestbed user46-key1
+547 1 ssh-rsa somekey4plctestbed user47-key1
+548 1 ssh-rsa somekey4plctestbed user48-key1
+549 1 ssh-rsa somekey4plctestbed user49-key1
+550 1 ssh-rsa somekey4plctestbed user50-key1
+551 1 ssh-rsa somekey4plctestbed user51-key1
+552 1 ssh-rsa somekey4plctestbed user52-key1
+553 1 ssh-rsa somekey4plctestbed user53-key1
+554 1 ssh-rsa somekey4plctestbed user54-key1
+555 1 ssh-rsa somekey4plctestbed user55-key1
+556 1 ssh-rsa somekey4plctestbed user56-key1
+557 1 ssh-rsa somekey4plctestbed user57-key1
+558 1 ssh-rsa somekey4plctestbed user58-key1
+559 1 ssh-rsa somekey4plctestbed user59-key1
+560 1 ssh-rsa somekey4plctestbed user60-key1
+561 1 ssh-rsa somekey4plctestbed user61-key1
+562 1 ssh-rsa somekey4plctestbed user62-key1
+563 1 ssh-rsa somekey4plctestbed user63-key1
+564 1 ssh-rsa somekey4plctestbed user64-key1
+565 1 ssh-rsa somekey4plctestbed user65-key1
+566 1 ssh-rsa somekey4plctestbed user66-key1
+567 1 ssh-rsa somekey4plctestbed user67-key1
+568 1 ssh-rsa somekey4plctestbed user68-key1
+569 1 ssh-rsa somekey4plctestbed user69-key1
+570 1 ssh-rsa somekey4plctestbed user70-key1
+571 1 ssh-rsa somekey4plctestbed user71-key1
+572 1 ssh-rsa somekey4plctestbed user72-key1
+573 1 ssh-rsa somekey4plctestbed user73-key1
+574 1 ssh-rsa somekey4plctestbed user74-key1
+575 1 ssh-rsa somekey4plctestbed user75-key1
+576 1 ssh-rsa somekey4plctestbed user76-key1
+577 1 ssh-rsa somekey4plctestbed user77-key1
+578 1 ssh-rsa somekey4plctestbed user78-key1
+579 1 ssh-rsa somekey4plctestbed user79-key1
+580 1 ssh-rsa somekey4plctestbed user80-key1
+581 1 ssh-rsa somekey4plctestbed user81-key1
+582 1 ssh-rsa somekey4plctestbed user82-key1
+583 1 ssh-rsa somekey4plctestbed user83-key1
+584 1 ssh-rsa somekey4plctestbed user84-key1
+585 1 ssh-rsa somekey4plctestbed user85-key1
+586 1 ssh-rsa somekey4plctestbed user86-key1
+587 1 ssh-rsa somekey4plctestbed user87-key1
+588 1 ssh-rsa somekey4plctestbed user88-key1
+589 1 ssh-rsa somekey4plctestbed user89-key1
+590 1 ssh-rsa somekey4plctestbed user90-key1
+591 1 ssh-rsa somekey4plctestbed user91-key1
+592 1 ssh-rsa somekey4plctestbed user92-key1
+593 1 ssh-rsa somekey4plctestbed user93-key1
+594 1 ssh-rsa somekey4plctestbed user94-key1
+595 1 ssh-rsa somekey4plctestbed user95-key1
+596 1 ssh-rsa somekey4plctestbed user96-key1
+597 1 ssh-rsa somekey4plctestbed user97-key1
+598 1 ssh-rsa somekey4plctestbed user98-key1
+599 1 ssh-rsa somekey4plctestbed user99-key1
+600 1 ssh-rsa somekey4plctestbed user100-key1
+601 1 ssh-rsa somekey4plctestbed user101-key1
+602 1 ssh-rsa somekey4plctestbed user102-key1
+603 1 ssh-rsa somekey4plctestbed user103-key1
+604 1 ssh-rsa somekey4plctestbed user104-key1
+605 1 ssh-rsa somekey4plctestbed user105-key1
+606 1 ssh-rsa somekey4plctestbed user106-key1
+607 1 ssh-rsa somekey4plctestbed user107-key1
+608 1 ssh-rsa somekey4plctestbed user108-key1
+609 1 ssh-rsa somekey4plctestbed user109-key1
+610 1 ssh-rsa somekey4plctestbed user110-key1
+611 1 ssh-rsa somekey4plctestbed user111-key1
+612 1 ssh-rsa somekey4plctestbed user112-key1
+613 1 ssh-rsa somekey4plctestbed user113-key1
+614 1 ssh-rsa somekey4plctestbed user114-key1
+615 1 ssh-rsa somekey4plctestbed user115-key1
+616 1 ssh-rsa somekey4plctestbed user116-key1
+617 1 ssh-rsa somekey4plctestbed user117-key1
+618 1 ssh-rsa somekey4plctestbed user118-key1
+619 1 ssh-rsa somekey4plctestbed user119-key1
+620 1 ssh-rsa somekey4plctestbed user120-key1
+621 1 ssh-rsa somekey4plctestbed user121-key1
+622 1 ssh-rsa somekey4plctestbed user122-key1
+623 1 ssh-rsa somekey4plctestbed user123-key1
+624 1 ssh-rsa somekey4plctestbed user124-key1
+625 1 ssh-rsa somekey4plctestbed user125-key1
+626 1 ssh-rsa somekey4plctestbed user126-key1
+627 1 ssh-rsa somekey4plctestbed user127-key1
+628 1 ssh-rsa somekey4plctestbed user128-key1
+629 1 ssh-rsa somekey4plctestbed user129-key1
+630 1 ssh-rsa somekey4plctestbed user130-key1
+631 1 ssh-rsa somekey4plctestbed user131-key1
+632 1 ssh-rsa somekey4plctestbed user132-key1
+633 1 ssh-rsa somekey4plctestbed user133-key1
+634 1 ssh-rsa somekey4plctestbed user134-key1
+635 1 ssh-rsa somekey4plctestbed user135-key1
+636 1 ssh-rsa somekey4plctestbed user136-key1
+637 1 ssh-rsa somekey4plctestbed user137-key1
+638 1 ssh-rsa somekey4plctestbed user138-key1
+639 1 ssh-rsa somekey4plctestbed user139-key1
+640 1 ssh-rsa somekey4plctestbed user140-key1
+641 1 ssh-rsa somekey4plctestbed user141-key1
+642 1 ssh-rsa somekey4plctestbed user142-key1
+643 1 ssh-rsa somekey4plctestbed user143-key1
+644 1 ssh-rsa somekey4plctestbed user144-key1
+645 1 ssh-rsa somekey4plctestbed user145-key1
+646 1 ssh-rsa somekey4plctestbed user146-key1
+647 1 ssh-rsa somekey4plctestbed user147-key1
+648 1 ssh-rsa somekey4plctestbed user148-key1
+649 1 ssh-rsa somekey4plctestbed user149-key1
+650 1 ssh-rsa somekey4plctestbed user150-key1
+651 1 ssh-rsa somekey4plctestbed user151-key1
+652 1 ssh-rsa somekey4plctestbed user152-key1
+653 1 ssh-rsa somekey4plctestbed user153-key1
+654 1 ssh-rsa somekey4plctestbed user154-key1
+655 1 ssh-rsa somekey4plctestbed user155-key1
+656 1 ssh-rsa somekey4plctestbed user156-key1
+657 1 ssh-rsa somekey4plctestbed user157-key1
+658 1 ssh-rsa somekey4plctestbed user158-key1
+659 1 ssh-rsa somekey4plctestbed user159-key1
+660 1 ssh-rsa somekey4plctestbed user160-key1
+661 1 ssh-rsa somekey4plctestbed user161-key1
+662 1 ssh-rsa somekey4plctestbed user162-key1
+663 1 ssh-rsa somekey4plctestbed user163-key1
+664 1 ssh-rsa somekey4plctestbed user164-key1
+665 1 ssh-rsa somekey4plctestbed user165-key1
+666 1 ssh-rsa somekey4plctestbed user166-key1
+667 1 ssh-rsa somekey4plctestbed user167-key1
+668 1 ssh-rsa somekey4plctestbed user168-key1
+669 1 ssh-rsa somekey4plctestbed user169-key1
+670 1 ssh-rsa somekey4plctestbed user170-key1
+671 1 ssh-rsa somekey4plctestbed user171-key1
+672 1 ssh-rsa somekey4plctestbed user172-key1
+673 1 ssh-rsa somekey4plctestbed user173-key1
+674 1 ssh-rsa somekey4plctestbed user174-key1
+675 1 ssh-rsa somekey4plctestbed user175-key1
+676 1 ssh-rsa somekey4plctestbed user176-key1
+677 1 ssh-rsa somekey4plctestbed user177-key1
+678 1 ssh-rsa somekey4plctestbed user178-key1
+679 1 ssh-rsa somekey4plctestbed user179-key1
+680 1 ssh-rsa somekey4plctestbed user180-key1
+681 1 ssh-rsa somekey4plctestbed user181-key1
+682 1 ssh-rsa somekey4plctestbed user182-key1
+683 1 ssh-rsa somekey4plctestbed user183-key1
+684 1 ssh-rsa somekey4plctestbed user184-key1
+685 1 ssh-rsa somekey4plctestbed user185-key1
+686 1 ssh-rsa somekey4plctestbed user186-key1
+687 1 ssh-rsa somekey4plctestbed user187-key1
+688 1 ssh-rsa somekey4plctestbed user188-key1
+689 1 ssh-rsa somekey4plctestbed user189-key1
+690 1 ssh-rsa somekey4plctestbed user190-key1
+691 1 ssh-rsa somekey4plctestbed user191-key1
+692 1 ssh-rsa somekey4plctestbed user192-key1
+693 1 ssh-rsa somekey4plctestbed user193-key1
+694 1 ssh-rsa somekey4plctestbed user194-key1
+695 1 ssh-rsa somekey4plctestbed user195-key1
+696 1 ssh-rsa somekey4plctestbed user196-key1
+697 1 ssh-rsa somekey4plctestbed user197-key1
+698 1 ssh-rsa somekey4plctestbed user198-key1
+699 1 ssh-rsa somekey4plctestbed user199-key1
+700 1 ssh-rsa somekey4plctestbed user200-key1
+701 1 ssh-rsa somekey4plctestbed user201-key1
+702 1 ssh-rsa somekey4plctestbed user202-key1
+703 1 ssh-rsa somekey4plctestbed user203-key1
+704 1 ssh-rsa somekey4plctestbed user204-key1
+705 1 ssh-rsa somekey4plctestbed user205-key1
+706 1 ssh-rsa somekey4plctestbed user206-key1
+707 1 ssh-rsa somekey4plctestbed user207-key1
+708 1 ssh-rsa somekey4plctestbed user208-key1
+709 1 ssh-rsa somekey4plctestbed user209-key1
+710 1 ssh-rsa somekey4plctestbed user210-key1
+711 1 ssh-rsa somekey4plctestbed user211-key1
+712 1 ssh-rsa somekey4plctestbed user212-key1
+713 1 ssh-rsa somekey4plctestbed user213-key1
+714 1 ssh-rsa somekey4plctestbed user214-key1
+715 1 ssh-rsa somekey4plctestbed user215-key1
+716 1 ssh-rsa somekey4plctestbed user216-key1
+717 1 ssh-rsa somekey4plctestbed user217-key1
+718 1 ssh-rsa somekey4plctestbed user218-key1
+719 1 ssh-rsa somekey4plctestbed user219-key1
+720 1 ssh-rsa somekey4plctestbed user220-key1
+721 1 ssh-rsa somekey4plctestbed user221-key1
+722 1 ssh-rsa somekey4plctestbed user222-key1
+723 1 ssh-rsa somekey4plctestbed user223-key1
+724 1 ssh-rsa somekey4plctestbed user224-key1
+725 1 ssh-rsa somekey4plctestbed user225-key1
+726 1 ssh-rsa somekey4plctestbed user226-key1
+727 1 ssh-rsa somekey4plctestbed user227-key1
+728 1 ssh-rsa somekey4plctestbed user228-key1
+729 1 ssh-rsa somekey4plctestbed user229-key1
+730 1 ssh-rsa somekey4plctestbed user230-key1
+731 1 ssh-rsa somekey4plctestbed user231-key1
+732 1 ssh-rsa somekey4plctestbed user232-key1
+733 1 ssh-rsa somekey4plctestbed user233-key1
+734 1 ssh-rsa somekey4plctestbed user234-key1
+735 1 ssh-rsa somekey4plctestbed user235-key1
+736 1 ssh-rsa somekey4plctestbed user236-key1
+737 1 ssh-rsa somekey4plctestbed user237-key1
+738 1 ssh-rsa somekey4plctestbed user238-key1
+739 1 ssh-rsa somekey4plctestbed user239-key1
+740 1 ssh-rsa somekey4plctestbed user240-key1
+741 1 ssh-rsa somekey4plctestbed user241-key1
+742 1 ssh-rsa somekey4plctestbed user242-key1
+743 1 ssh-rsa somekey4plctestbed user243-key1
+744 1 ssh-rsa somekey4plctestbed user244-key1
+745 1 ssh-rsa somekey4plctestbed user245-key1
+746 1 ssh-rsa somekey4plctestbed user246-key1
+747 1 ssh-rsa somekey4plctestbed user247-key1
+748 1 ssh-rsa somekey4plctestbed user248-key1
+749 1 ssh-rsa somekey4plctestbed user249-key1
+750 1 ssh-rsa somekey4plctestbed user250-key1
+751 1 ssh-rsa somekey4plctestbed user251-key1
+752 1 ssh-rsa somekey4plctestbed user252-key1
+753 1 ssh-rsa somekey4plctestbed user253-key1
+754 1 ssh-rsa somekey4plctestbed user254-key1
+755 1 ssh-rsa somekey4plctestbed user255-key1
+756 1 ssh-rsa somekey4plctestbed user256-key1
+757 1 ssh-rsa somekey4plctestbed user257-key1
+758 1 ssh-rsa somekey4plctestbed user258-key1
+759 1 ssh-rsa somekey4plctestbed user259-key1
+760 1 ssh-rsa somekey4plctestbed user260-key1
+761 1 ssh-rsa somekey4plctestbed user261-key1
+762 1 ssh-rsa somekey4plctestbed user262-key1
+763 1 ssh-rsa somekey4plctestbed user263-key1
+764 1 ssh-rsa somekey4plctestbed user264-key1
+765 1 ssh-rsa somekey4plctestbed user265-key1
+766 1 ssh-rsa somekey4plctestbed user266-key1
+767 1 ssh-rsa somekey4plctestbed user267-key1
+768 1 ssh-rsa somekey4plctestbed user268-key1
+769 1 ssh-rsa somekey4plctestbed user269-key1
+770 1 ssh-rsa somekey4plctestbed user270-key1
+771 1 ssh-rsa somekey4plctestbed user271-key1
+772 1 ssh-rsa somekey4plctestbed user272-key1
+773 1 ssh-rsa somekey4plctestbed user273-key1
+774 1 ssh-rsa somekey4plctestbed user274-key1
+775 1 ssh-rsa somekey4plctestbed user275-key1
+776 1 ssh-rsa somekey4plctestbed user276-key1
+777 1 ssh-rsa somekey4plctestbed user277-key1
+778 1 ssh-rsa somekey4plctestbed user278-key1
+779 1 ssh-rsa somekey4plctestbed user279-key1
+780 1 ssh-rsa somekey4plctestbed user280-key1
+781 1 ssh-rsa somekey4plctestbed user281-key1
+782 1 ssh-rsa somekey4plctestbed user282-key1
+783 1 ssh-rsa somekey4plctestbed user283-key1
+784 1 ssh-rsa somekey4plctestbed user284-key1
+785 1 ssh-rsa somekey4plctestbed user285-key1
+786 1 ssh-rsa somekey4plctestbed user286-key1
+787 1 ssh-rsa somekey4plctestbed user287-key1
+788 1 ssh-rsa somekey4plctestbed user288-key1
+789 1 ssh-rsa somekey4plctestbed user289-key1
+790 1 ssh-rsa somekey4plctestbed user290-key1
+791 1 ssh-rsa somekey4plctestbed user291-key1
+792 1 ssh-rsa somekey4plctestbed user292-key1
+793 1 ssh-rsa somekey4plctestbed user293-key1
+794 1 ssh-rsa somekey4plctestbed user294-key1
+795 1 ssh-rsa somekey4plctestbed user295-key1
+796 1 ssh-rsa somekey4plctestbed user296-key1
+797 1 ssh-rsa somekey4plctestbed user297-key1
+798 1 ssh-rsa somekey4plctestbed user298-key1
+799 1 ssh-rsa somekey4plctestbed user299-key1
+800 1 ssh-rsa somekey4plctestbed user300-key1
+801 1 ssh-rsa somekey4plctestbed user301-key1
+802 1 ssh-rsa somekey4plctestbed user302-key1
+803 1 ssh-rsa somekey4plctestbed user303-key1
+804 1 ssh-rsa somekey4plctestbed user304-key1
+805 1 ssh-rsa somekey4plctestbed user305-key1
+806 1 ssh-rsa somekey4plctestbed user306-key1
+807 1 ssh-rsa somekey4plctestbed user307-key1
+808 1 ssh-rsa somekey4plctestbed user308-key1
+809 1 ssh-rsa somekey4plctestbed user309-key1
+810 1 ssh-rsa somekey4plctestbed user310-key1
+811 1 ssh-rsa somekey4plctestbed user311-key1
+812 1 ssh-rsa somekey4plctestbed user312-key1
+813 1 ssh-rsa somekey4plctestbed user313-key1
+814 1 ssh-rsa somekey4plctestbed user314-key1
+815 1 ssh-rsa somekey4plctestbed user315-key1
+816 1 ssh-rsa somekey4plctestbed user316-key1
+817 1 ssh-rsa somekey4plctestbed user317-key1
+818 1 ssh-rsa somekey4plctestbed user318-key1
+819 1 ssh-rsa somekey4plctestbed user319-key1
+820 1 ssh-rsa somekey4plctestbed user320-key1
+821 1 ssh-rsa somekey4plctestbed user321-key1
+822 1 ssh-rsa somekey4plctestbed user322-key1
+823 1 ssh-rsa somekey4plctestbed user323-key1
+824 1 ssh-rsa somekey4plctestbed user324-key1
+825 1 ssh-rsa somekey4plctestbed user325-key1
+826 1 ssh-rsa somekey4plctestbed user326-key1
+827 1 ssh-rsa somekey4plctestbed user327-key1
+828 1 ssh-rsa somekey4plctestbed user328-key1
+829 1 ssh-rsa somekey4plctestbed user329-key1
+830 1 ssh-rsa somekey4plctestbed user330-key1
+831 1 ssh-rsa somekey4plctestbed user331-key1
+832 1 ssh-rsa somekey4plctestbed user332-key1
+833 1 ssh-rsa somekey4plctestbed user333-key1
+834 1 ssh-rsa somekey4plctestbed user334-key1
+835 1 ssh-rsa somekey4plctestbed user335-key1
+836 1 ssh-rsa somekey4plctestbed user336-key1
+837 1 ssh-rsa somekey4plctestbed user337-key1
+838 1 ssh-rsa somekey4plctestbed user338-key1
+839 1 ssh-rsa somekey4plctestbed user339-key1
+840 1 ssh-rsa somekey4plctestbed user340-key1
+841 1 ssh-rsa somekey4plctestbed user341-key1
+842 1 ssh-rsa somekey4plctestbed user342-key1
+843 1 ssh-rsa somekey4plctestbed user343-key1
+844 1 ssh-rsa somekey4plctestbed user344-key1
+845 1 ssh-rsa somekey4plctestbed user345-key1
+846 1 ssh-rsa somekey4plctestbed user346-key1
+847 1 ssh-rsa somekey4plctestbed user347-key1
+848 1 ssh-rsa somekey4plctestbed user348-key1
+849 1 ssh-rsa somekey4plctestbed user349-key1
+850 1 ssh-rsa somekey4plctestbed user350-key1
+851 1 ssh-rsa somekey4plctestbed user351-key1
+852 1 ssh-rsa somekey4plctestbed user352-key1
+853 1 ssh-rsa somekey4plctestbed user353-key1
+854 1 ssh-rsa somekey4plctestbed user354-key1
+855 1 ssh-rsa somekey4plctestbed user355-key1
+856 1 ssh-rsa somekey4plctestbed user356-key1
+857 1 ssh-rsa somekey4plctestbed user357-key1
+858 1 ssh-rsa somekey4plctestbed user358-key1
+859 1 ssh-rsa somekey4plctestbed user359-key1
+860 1 ssh-rsa somekey4plctestbed user360-key1
+861 1 ssh-rsa somekey4plctestbed user361-key1
+862 1 ssh-rsa somekey4plctestbed user362-key1
+863 1 ssh-rsa somekey4plctestbed user363-key1
+864 1 ssh-rsa somekey4plctestbed user364-key1
+865 1 ssh-rsa somekey4plctestbed user365-key1
+866 1 ssh-rsa somekey4plctestbed user366-key1
+867 1 ssh-rsa somekey4plctestbed user367-key1
+868 1 ssh-rsa somekey4plctestbed user368-key1
+869 1 ssh-rsa somekey4plctestbed user369-key1
+870 1 ssh-rsa somekey4plctestbed user370-key1
+871 1 ssh-rsa somekey4plctestbed user371-key1
+872 1 ssh-rsa somekey4plctestbed user372-key1
+873 1 ssh-rsa somekey4plctestbed user373-key1
+874 1 ssh-rsa somekey4plctestbed user374-key1
+875 1 ssh-rsa somekey4plctestbed user375-key1
+876 1 ssh-rsa somekey4plctestbed user376-key1
+877 1 ssh-rsa somekey4plctestbed user377-key1
+878 1 ssh-rsa somekey4plctestbed user378-key1
+879 1 ssh-rsa somekey4plctestbed user379-key1
+880 1 ssh-rsa somekey4plctestbed user380-key1
+881 1 ssh-rsa somekey4plctestbed user381-key1
+882 1 ssh-rsa somekey4plctestbed user382-key1
+883 1 ssh-rsa somekey4plctestbed user383-key1
+884 1 ssh-rsa somekey4plctestbed user384-key1
+885 1 ssh-rsa somekey4plctestbed user385-key1
+886 1 ssh-rsa somekey4plctestbed user386-key1
+887 1 ssh-rsa somekey4plctestbed user387-key1
+888 1 ssh-rsa somekey4plctestbed user388-key1
+889 1 ssh-rsa somekey4plctestbed user389-key1
+890 1 ssh-rsa somekey4plctestbed user390-key1
+891 1 ssh-rsa somekey4plctestbed user391-key1
+892 1 ssh-rsa somekey4plctestbed user392-key1
+893 1 ssh-rsa somekey4plctestbed user393-key1
+894 1 ssh-rsa somekey4plctestbed user394-key1
+895 1 ssh-rsa somekey4plctestbed user395-key1
+896 1 ssh-rsa somekey4plctestbed user396-key1
+897 1 ssh-rsa somekey4plctestbed user397-key1
+898 1 ssh-rsa somekey4plctestbed user398-key1
+899 1 ssh-rsa somekey4plctestbed user399-key1
+900 1 ssh-rsa somekey4plctestbed user400-key1
+901 1 ssh-rsa somekey4plctestbed user401-key1
+902 1 ssh-rsa somekey4plctestbed user402-key1
+903 1 ssh-rsa somekey4plctestbed user403-key1
+904 1 ssh-rsa somekey4plctestbed user404-key1
+905 1 ssh-rsa somekey4plctestbed user405-key1
+906 1 ssh-rsa somekey4plctestbed user406-key1
+907 1 ssh-rsa somekey4plctestbed user407-key1
+908 1 ssh-rsa somekey4plctestbed user408-key1
+909 1 ssh-rsa somekey4plctestbed user409-key1
+910 1 ssh-rsa somekey4plctestbed user410-key1
+911 1 ssh-rsa somekey4plctestbed user411-key1
+912 1 ssh-rsa somekey4plctestbed user412-key1
+913 1 ssh-rsa somekey4plctestbed user413-key1
+914 1 ssh-rsa somekey4plctestbed user414-key1
+915 1 ssh-rsa somekey4plctestbed user415-key1
+916 1 ssh-rsa somekey4plctestbed user416-key1
+917 1 ssh-rsa somekey4plctestbed user417-key1
+918 1 ssh-rsa somekey4plctestbed user418-key1
+919 1 ssh-rsa somekey4plctestbed user419-key1
+920 1 ssh-rsa somekey4plctestbed user420-key1
+921 1 ssh-rsa somekey4plctestbed user421-key1
+922 1 ssh-rsa somekey4plctestbed user422-key1
+923 1 ssh-rsa somekey4plctestbed user423-key1
+924 1 ssh-rsa somekey4plctestbed user424-key1
+925 1 ssh-rsa somekey4plctestbed user425-key1
+926 1 ssh-rsa somekey4plctestbed user426-key1
+927 1 ssh-rsa somekey4plctestbed user427-key1
+928 1 ssh-rsa somekey4plctestbed user428-key1
+929 1 ssh-rsa somekey4plctestbed user429-key1
+930 1 ssh-rsa somekey4plctestbed user430-key1
+931 1 ssh-rsa somekey4plctestbed user431-key1
+932 1 ssh-rsa somekey4plctestbed user432-key1
+933 1 ssh-rsa somekey4plctestbed user433-key1
+934 1 ssh-rsa somekey4plctestbed user434-key1
+935 1 ssh-rsa somekey4plctestbed user435-key1
+936 1 ssh-rsa somekey4plctestbed user436-key1
+937 1 ssh-rsa somekey4plctestbed user437-key1
+938 1 ssh-rsa somekey4plctestbed user438-key1
+939 1 ssh-rsa somekey4plctestbed user439-key1
+940 1 ssh-rsa somekey4plctestbed user440-key1
+941 1 ssh-rsa somekey4plctestbed user441-key1
+942 1 ssh-rsa somekey4plctestbed user442-key1
+943 1 ssh-rsa somekey4plctestbed user443-key1
+944 1 ssh-rsa somekey4plctestbed user444-key1
+945 1 ssh-rsa somekey4plctestbed user445-key1
+946 1 ssh-rsa somekey4plctestbed user446-key1
+947 1 ssh-rsa somekey4plctestbed user447-key1
+948 1 ssh-rsa somekey4plctestbed user448-key1
+949 1 ssh-rsa somekey4plctestbed user449-key1
+950 1 ssh-rsa somekey4plctestbed user450-key1
+951 1 ssh-rsa somekey4plctestbed user451-key1
+952 1 ssh-rsa somekey4plctestbed user452-key1
+953 1 ssh-rsa somekey4plctestbed user453-key1
+954 1 ssh-rsa somekey4plctestbed user454-key1
+955 1 ssh-rsa somekey4plctestbed user455-key1
+956 1 ssh-rsa somekey4plctestbed user456-key1
+957 1 ssh-rsa somekey4plctestbed user457-key1
+958 1 ssh-rsa somekey4plctestbed user458-key1
+959 1 ssh-rsa somekey4plctestbed user459-key1
+960 1 ssh-rsa somekey4plctestbed user460-key1
+961 1 ssh-rsa somekey4plctestbed user461-key1
+962 1 ssh-rsa somekey4plctestbed user462-key1
+963 1 ssh-rsa somekey4plctestbed user463-key1
+964 1 ssh-rsa somekey4plctestbed user464-key1
+965 1 ssh-rsa somekey4plctestbed user465-key1
+966 1 ssh-rsa somekey4plctestbed user466-key1
+967 1 ssh-rsa somekey4plctestbed user467-key1
+968 1 ssh-rsa somekey4plctestbed user468-key1
+969 1 ssh-rsa somekey4plctestbed user469-key1
+970 1 ssh-rsa somekey4plctestbed user470-key1
+971 1 ssh-rsa somekey4plctestbed user471-key1
+972 1 ssh-rsa somekey4plctestbed user472-key1
+973 1 ssh-rsa somekey4plctestbed user473-key1
+974 1 ssh-rsa somekey4plctestbed user474-key1
+975 1 ssh-rsa somekey4plctestbed user475-key1
+976 1 ssh-rsa somekey4plctestbed user476-key1
+977 1 ssh-rsa somekey4plctestbed user477-key1
+978 1 ssh-rsa somekey4plctestbed user478-key1
+979 1 ssh-rsa somekey4plctestbed user479-key1
+980 1 ssh-rsa somekey4plctestbed user480-key1
+981 1 ssh-rsa somekey4plctestbed user481-key1
+982 1 ssh-rsa somekey4plctestbed user482-key1
+983 1 ssh-rsa somekey4plctestbed user483-key1
+984 1 ssh-rsa somekey4plctestbed user484-key1
+985 1 ssh-rsa somekey4plctestbed user485-key1
+986 1 ssh-rsa somekey4plctestbed user486-key1
+987 1 ssh-rsa somekey4plctestbed user487-key1
+988 1 ssh-rsa somekey4plctestbed user488-key1
+989 1 ssh-rsa somekey4plctestbed user489-key1
+990 1 ssh-rsa somekey4plctestbed user490-key1
+991 1 ssh-rsa somekey4plctestbed user491-key1
+992 1 ssh-rsa somekey4plctestbed user492-key1
+993 1 ssh-rsa somekey4plctestbed user493-key1
+994 1 ssh-rsa somekey4plctestbed user494-key1
+995 1 ssh-rsa somekey4plctestbed user495-key1
+996 1 ssh-rsa somekey4plctestbed user496-key1
+997 1 ssh-rsa somekey4plctestbed user497-key1
+998 1 ssh-rsa somekey4plctestbed user498-key1
+999 1 ssh-rsa somekey4plctestbed user499-key1
+1000 1 ssh-rsa somekey4plctestbed user500-key1
+01: PERSONS
+1 None maint@localhost.localdomain keys: [] sites: []
+2 None root@plc1.inria.fr keys: [] sites: [1]
+3 None peer1@planet-lab.org keys: [] sites: []
+4 None user-1@plc.org keys: [1] sites: []
+5 None user-2@plc.org keys: [2] sites: []
+6 None user-3@plc.org keys: [3] sites: []
+7 None user-4@plc.org keys: [4] sites: []
+8 None user-5@plc.org keys: [5] sites: []
+9 None user-6@plc.org keys: [6] sites: []
+10 None user-7@plc.org keys: [7] sites: []
+11 None user-8@plc.org keys: [8] sites: []
+12 None user-9@plc.org keys: [9] sites: []
+13 None user-10@plc.org keys: [10] sites: []
+14 None user-11@plc.org keys: [11] sites: []
+15 None user-12@plc.org keys: [12] sites: []
+16 None user-13@plc.org keys: [13] sites: []
+17 None user-14@plc.org keys: [14] sites: []
+18 None user-15@plc.org keys: [15] sites: []
+19 None user-16@plc.org keys: [16] sites: []
+20 None user-17@plc.org keys: [17] sites: []
+21 None user-18@plc.org keys: [18] sites: []
+22 None user-19@plc.org keys: [19] sites: []
+23 None user-20@plc.org keys: [20] sites: []
+24 None user-21@plc.org keys: [21] sites: []
+25 None user-22@plc.org keys: [22] sites: []
+26 None user-23@plc.org keys: [23] sites: []
+27 None user-24@plc.org keys: [24] sites: []
+28 None user-25@plc.org keys: [25] sites: []
+29 None user-26@plc.org keys: [26] sites: []
+30 None user-27@plc.org keys: [27] sites: []
+31 None user-28@plc.org keys: [28] sites: []
+32 None user-29@plc.org keys: [29] sites: []
+33 None user-30@plc.org keys: [30] sites: []
+34 None user-31@plc.org keys: [31] sites: []
+35 None user-32@plc.org keys: [32] sites: []
+36 None user-33@plc.org keys: [33] sites: []
+37 None user-34@plc.org keys: [34] sites: []
+38 None user-35@plc.org keys: [35] sites: []
+39 None user-36@plc.org keys: [36] sites: []
+40 None user-37@plc.org keys: [37] sites: []
+41 None user-38@plc.org keys: [38] sites: []
+42 None user-39@plc.org keys: [39] sites: []
+43 None user-40@plc.org keys: [40] sites: []
+44 None user-41@plc.org keys: [41] sites: []
+45 None user-42@plc.org keys: [42] sites: []
+46 None user-43@plc.org keys: [43] sites: []
+47 None user-44@plc.org keys: [44] sites: []
+48 None user-45@plc.org keys: [45] sites: []
+49 None user-46@plc.org keys: [46] sites: []
+50 None user-47@plc.org keys: [47] sites: []
+51 None user-48@plc.org keys: [48] sites: []
+52 None user-49@plc.org keys: [49] sites: []
+53 None user-50@plc.org keys: [50] sites: []
+54 None user-51@plc.org keys: [51] sites: []
+55 None user-52@plc.org keys: [52] sites: []
+56 None user-53@plc.org keys: [53] sites: []
+57 None user-54@plc.org keys: [54] sites: []
+58 None user-55@plc.org keys: [55] sites: []
+59 None user-56@plc.org keys: [56] sites: []
+60 None user-57@plc.org keys: [57] sites: []
+61 None user-58@plc.org keys: [58] sites: []
+62 None user-59@plc.org keys: [59] sites: []
+63 None user-60@plc.org keys: [60] sites: []
+64 None user-61@plc.org keys: [61] sites: []
+65 None user-62@plc.org keys: [62] sites: []
+66 None user-63@plc.org keys: [63] sites: []
+67 None user-64@plc.org keys: [64] sites: []
+68 None user-65@plc.org keys: [65] sites: []
+69 None user-66@plc.org keys: [66] sites: []
+70 None user-67@plc.org keys: [67] sites: []
+71 None user-68@plc.org keys: [68] sites: []
+72 None user-69@plc.org keys: [69] sites: []
+73 None user-70@plc.org keys: [70] sites: []
+74 None user-71@plc.org keys: [71] sites: []
+75 None user-72@plc.org keys: [72] sites: []
+76 None user-73@plc.org keys: [73] sites: []
+77 None user-74@plc.org keys: [74] sites: []
+78 None user-75@plc.org keys: [75] sites: []
+79 None user-76@plc.org keys: [76] sites: []
+80 None user-77@plc.org keys: [77] sites: []
+81 None user-78@plc.org keys: [78] sites: []
+82 None user-79@plc.org keys: [79] sites: []
+83 None user-80@plc.org keys: [80] sites: []
+84 None user-81@plc.org keys: [81] sites: []
+85 None user-82@plc.org keys: [82] sites: []
+86 None user-83@plc.org keys: [83] sites: []
+87 None user-84@plc.org keys: [84] sites: []
+88 None user-85@plc.org keys: [85] sites: []
+89 None user-86@plc.org keys: [86] sites: []
+90 None user-87@plc.org keys: [87] sites: []
+91 None user-88@plc.org keys: [88] sites: []
+92 None user-89@plc.org keys: [89] sites: []
+93 None user-90@plc.org keys: [90] sites: []
+94 None user-91@plc.org keys: [91] sites: []
+95 None user-92@plc.org keys: [92] sites: []
+96 None user-93@plc.org keys: [93] sites: []
+97 None user-94@plc.org keys: [94] sites: []
+98 None user-95@plc.org keys: [95] sites: []
+99 None user-96@plc.org keys: [96] sites: []
+100 None user-97@plc.org keys: [97] sites: []
+101 None user-98@plc.org keys: [98] sites: []
+102 None user-99@plc.org keys: [99] sites: []
+103 None user-100@plc.org keys: [100] sites: []
+104 None user-101@plc.org keys: [101] sites: []
+105 None user-102@plc.org keys: [102] sites: []
+106 None user-103@plc.org keys: [103] sites: []
+107 None user-104@plc.org keys: [104] sites: []
+108 None user-105@plc.org keys: [105] sites: []
+109 None user-106@plc.org keys: [106] sites: []
+110 None user-107@plc.org keys: [107] sites: []
+111 None user-108@plc.org keys: [108] sites: []
+112 None user-109@plc.org keys: [109] sites: []
+113 None user-110@plc.org keys: [110] sites: []
+114 None user-111@plc.org keys: [111] sites: []
+115 None user-112@plc.org keys: [112] sites: []
+116 None user-113@plc.org keys: [113] sites: []
+117 None user-114@plc.org keys: [114] sites: []
+118 None user-115@plc.org keys: [115] sites: []
+119 None user-116@plc.org keys: [116] sites: []
+120 None user-117@plc.org keys: [117] sites: []
+121 None user-118@plc.org keys: [118] sites: []
+122 None user-119@plc.org keys: [119] sites: []
+123 None user-120@plc.org keys: [120] sites: []
+124 None user-121@plc.org keys: [121] sites: []
+125 None user-122@plc.org keys: [122] sites: []
+126 None user-123@plc.org keys: [123] sites: []
+127 None user-124@plc.org keys: [124] sites: []
+128 None user-125@plc.org keys: [125] sites: []
+129 None user-126@plc.org keys: [126] sites: []
+130 None user-127@plc.org keys: [127] sites: []
+131 None user-128@plc.org keys: [128] sites: []
+132 None user-129@plc.org keys: [129] sites: []
+133 None user-130@plc.org keys: [130] sites: []
+134 None user-131@plc.org keys: [131] sites: []
+135 None user-132@plc.org keys: [132] sites: []
+136 None user-133@plc.org keys: [133] sites: []
+137 None user-134@plc.org keys: [134] sites: []
+138 None user-135@plc.org keys: [135] sites: []
+139 None user-136@plc.org keys: [136] sites: []
+140 None user-137@plc.org keys: [137] sites: []
+141 None user-138@plc.org keys: [138] sites: []
+142 None user-139@plc.org keys: [139] sites: []
+143 None user-140@plc.org keys: [140] sites: []
+144 None user-141@plc.org keys: [141] sites: []
+145 None user-142@plc.org keys: [142] sites: []
+146 None user-143@plc.org keys: [143] sites: []
+147 None user-144@plc.org keys: [144] sites: []
+148 None user-145@plc.org keys: [145] sites: []
+149 None user-146@plc.org keys: [146] sites: []
+150 None user-147@plc.org keys: [147] sites: []
+151 None user-148@plc.org keys: [148] sites: []
+152 None user-149@plc.org keys: [149] sites: []
+153 None user-150@plc.org keys: [150] sites: []
+154 None user-151@plc.org keys: [151] sites: []
+155 None user-152@plc.org keys: [152] sites: []
+156 None user-153@plc.org keys: [153] sites: []
+157 None user-154@plc.org keys: [154] sites: []
+158 None user-155@plc.org keys: [155] sites: []
+159 None user-156@plc.org keys: [156] sites: []
+160 None user-157@plc.org keys: [157] sites: []
+161 None user-158@plc.org keys: [158] sites: []
+162 None user-159@plc.org keys: [159] sites: []
+163 None user-160@plc.org keys: [160] sites: []
+164 None user-161@plc.org keys: [161] sites: []
+165 None user-162@plc.org keys: [162] sites: []
+166 None user-163@plc.org keys: [163] sites: []
+167 None user-164@plc.org keys: [164] sites: []
+168 None user-165@plc.org keys: [165] sites: []
+169 None user-166@plc.org keys: [166] sites: []
+170 None user-167@plc.org keys: [167] sites: []
+171 None user-168@plc.org keys: [168] sites: []
+172 None user-169@plc.org keys: [169] sites: []
+173 None user-170@plc.org keys: [170] sites: []
+174 None user-171@plc.org keys: [171] sites: []
+175 None user-172@plc.org keys: [172] sites: []
+176 None user-173@plc.org keys: [173] sites: []
+177 None user-174@plc.org keys: [174] sites: []
+178 None user-175@plc.org keys: [175] sites: []
+179 None user-176@plc.org keys: [176] sites: []
+180 None user-177@plc.org keys: [177] sites: []
+181 None user-178@plc.org keys: [178] sites: []
+182 None user-179@plc.org keys: [179] sites: []
+183 None user-180@plc.org keys: [180] sites: []
+184 None user-181@plc.org keys: [181] sites: []
+185 None user-182@plc.org keys: [182] sites: []
+186 None user-183@plc.org keys: [183] sites: []
+187 None user-184@plc.org keys: [184] sites: []
+188 None user-185@plc.org keys: [185] sites: []
+189 None user-186@plc.org keys: [186] sites: []
+190 None user-187@plc.org keys: [187] sites: []
+191 None user-188@plc.org keys: [188] sites: []
+192 None user-189@plc.org keys: [189] sites: []
+193 None user-190@plc.org keys: [190] sites: []
+194 None user-191@plc.org keys: [191] sites: []
+195 None user-192@plc.org keys: [192] sites: []
+196 None user-193@plc.org keys: [193] sites: []
+197 None user-194@plc.org keys: [194] sites: []
+198 None user-195@plc.org keys: [195] sites: []
+199 None user-196@plc.org keys: [196] sites: []
+200 None user-197@plc.org keys: [197] sites: []
+201 None user-198@plc.org keys: [198] sites: []
+202 None user-199@plc.org keys: [199] sites: []
+203 None user-200@plc.org keys: [200] sites: []
+204 None user-201@plc.org keys: [201] sites: []
+205 None user-202@plc.org keys: [202] sites: []
+206 None user-203@plc.org keys: [203] sites: []
+207 None user-204@plc.org keys: [204] sites: []
+208 None user-205@plc.org keys: [205] sites: []
+209 None user-206@plc.org keys: [206] sites: []
+210 None user-207@plc.org keys: [207] sites: []
+211 None user-208@plc.org keys: [208] sites: []
+212 None user-209@plc.org keys: [209] sites: []
+213 None user-210@plc.org keys: [210] sites: []
+214 None user-211@plc.org keys: [211] sites: []
+215 None user-212@plc.org keys: [212] sites: []
+216 None user-213@plc.org keys: [213] sites: []
+217 None user-214@plc.org keys: [214] sites: []
+218 None user-215@plc.org keys: [215] sites: []
+219 None user-216@plc.org keys: [216] sites: []
+220 None user-217@plc.org keys: [217] sites: []
+221 None user-218@plc.org keys: [218] sites: []
+222 None user-219@plc.org keys: [219] sites: []
+223 None user-220@plc.org keys: [220] sites: []
+224 None user-221@plc.org keys: [221] sites: []
+225 None user-222@plc.org keys: [222] sites: []
+226 None user-223@plc.org keys: [223] sites: []
+227 None user-224@plc.org keys: [224] sites: []
+228 None user-225@plc.org keys: [225] sites: []
+229 None user-226@plc.org keys: [226] sites: []
+230 None user-227@plc.org keys: [227] sites: []
+231 None user-228@plc.org keys: [228] sites: []
+232 None user-229@plc.org keys: [229] sites: []
+233 None user-230@plc.org keys: [230] sites: []
+234 None user-231@plc.org keys: [231] sites: []
+235 None user-232@plc.org keys: [232] sites: []
+236 None user-233@plc.org keys: [233] sites: []
+237 None user-234@plc.org keys: [234] sites: []
+238 None user-235@plc.org keys: [235] sites: []
+239 None user-236@plc.org keys: [236] sites: []
+240 None user-237@plc.org keys: [237] sites: []
+241 None user-238@plc.org keys: [238] sites: []
+242 None user-239@plc.org keys: [239] sites: []
+243 None user-240@plc.org keys: [240] sites: []
+244 None user-241@plc.org keys: [241] sites: []
+245 None user-242@plc.org keys: [242] sites: []
+246 None user-243@plc.org keys: [243] sites: []
+247 None user-244@plc.org keys: [244] sites: []
+248 None user-245@plc.org keys: [245] sites: []
+249 None user-246@plc.org keys: [246] sites: []
+250 None user-247@plc.org keys: [247] sites: []
+251 None user-248@plc.org keys: [248] sites: []
+252 None user-249@plc.org keys: [249] sites: []
+253 None user-250@plc.org keys: [250] sites: []
+254 None user-251@plc.org keys: [251] sites: []
+255 None user-252@plc.org keys: [252] sites: []
+256 None user-253@plc.org keys: [253] sites: []
+257 None user-254@plc.org keys: [254] sites: []
+258 None user-255@plc.org keys: [255] sites: []
+259 None user-256@plc.org keys: [256] sites: []
+260 None user-257@plc.org keys: [257] sites: []
+261 None user-258@plc.org keys: [258] sites: []
+262 None user-259@plc.org keys: [259] sites: []
+263 None user-260@plc.org keys: [260] sites: []
+264 None user-261@plc.org keys: [261] sites: []
+265 None user-262@plc.org keys: [262] sites: []
+266 None user-263@plc.org keys: [263] sites: []
+267 None user-264@plc.org keys: [264] sites: []
+268 None user-265@plc.org keys: [265] sites: []
+269 None user-266@plc.org keys: [266] sites: []
+270 None user-267@plc.org keys: [267] sites: []
+271 None user-268@plc.org keys: [268] sites: []
+272 None user-269@plc.org keys: [269] sites: []
+273 None user-270@plc.org keys: [270] sites: []
+274 None user-271@plc.org keys: [271] sites: []
+275 None user-272@plc.org keys: [272] sites: []
+276 None user-273@plc.org keys: [273] sites: []
+277 None user-274@plc.org keys: [274] sites: []
+278 None user-275@plc.org keys: [275] sites: []
+279 None user-276@plc.org keys: [276] sites: []
+280 None user-277@plc.org keys: [277] sites: []
+281 None user-278@plc.org keys: [278] sites: []
+282 None user-279@plc.org keys: [279] sites: []
+283 None user-280@plc.org keys: [280] sites: []
+284 None user-281@plc.org keys: [281] sites: []
+285 None user-282@plc.org keys: [282] sites: []
+286 None user-283@plc.org keys: [283] sites: []
+287 None user-284@plc.org keys: [284] sites: []
+288 None user-285@plc.org keys: [285] sites: []
+289 None user-286@plc.org keys: [286] sites: []
+290 None user-287@plc.org keys: [287] sites: []
+291 None user-288@plc.org keys: [288] sites: []
+292 None user-289@plc.org keys: [289] sites: []
+293 None user-290@plc.org keys: [290] sites: []
+294 None user-291@plc.org keys: [291] sites: []
+295 None user-292@plc.org keys: [292] sites: []
+296 None user-293@plc.org keys: [293] sites: []
+297 None user-294@plc.org keys: [294] sites: []
+298 None user-295@plc.org keys: [295] sites: []
+299 None user-296@plc.org keys: [296] sites: []
+300 None user-297@plc.org keys: [297] sites: []
+301 None user-298@plc.org keys: [298] sites: []
+302 None user-299@plc.org keys: [299] sites: []
+303 None user-300@plc.org keys: [300] sites: []
+304 None user-301@plc.org keys: [301] sites: []
+305 None user-302@plc.org keys: [302] sites: []
+306 None user-303@plc.org keys: [303] sites: []
+307 None user-304@plc.org keys: [304] sites: []
+308 None user-305@plc.org keys: [305] sites: []
+309 None user-306@plc.org keys: [306] sites: []
+310 None user-307@plc.org keys: [307] sites: []
+311 None user-308@plc.org keys: [308] sites: []
+312 None user-309@plc.org keys: [309] sites: []
+313 None user-310@plc.org keys: [310] sites: []
+314 None user-311@plc.org keys: [311] sites: []
+315 None user-312@plc.org keys: [312] sites: []
+316 None user-313@plc.org keys: [313] sites: []
+317 None user-314@plc.org keys: [314] sites: []
+318 None user-315@plc.org keys: [315] sites: []
+319 None user-316@plc.org keys: [316] sites: []
+320 None user-317@plc.org keys: [317] sites: []
+321 None user-318@plc.org keys: [318] sites: []
+322 None user-319@plc.org keys: [319] sites: []
+323 None user-320@plc.org keys: [320] sites: []
+324 None user-321@plc.org keys: [321] sites: []
+325 None user-322@plc.org keys: [322] sites: []
+326 None user-323@plc.org keys: [323] sites: []
+327 None user-324@plc.org keys: [324] sites: []
+328 None user-325@plc.org keys: [325] sites: []
+329 None user-326@plc.org keys: [326] sites: []
+330 None user-327@plc.org keys: [327] sites: []
+331 None user-328@plc.org keys: [328] sites: []
+332 None user-329@plc.org keys: [329] sites: []
+333 None user-330@plc.org keys: [330] sites: []
+334 None user-331@plc.org keys: [331] sites: []
+335 None user-332@plc.org keys: [332] sites: []
+336 None user-333@plc.org keys: [333] sites: []
+337 None user-334@plc.org keys: [334] sites: []
+338 None user-335@plc.org keys: [335] sites: []
+339 None user-336@plc.org keys: [336] sites: []
+340 None user-337@plc.org keys: [337] sites: []
+341 None user-338@plc.org keys: [338] sites: []
+342 None user-339@plc.org keys: [339] sites: []
+343 None user-340@plc.org keys: [340] sites: []
+344 None user-341@plc.org keys: [341] sites: []
+345 None user-342@plc.org keys: [342] sites: []
+346 None user-343@plc.org keys: [343] sites: []
+347 None user-344@plc.org keys: [344] sites: []
+348 None user-345@plc.org keys: [345] sites: []
+349 None user-346@plc.org keys: [346] sites: []
+350 None user-347@plc.org keys: [347] sites: []
+351 None user-348@plc.org keys: [348] sites: []
+352 None user-349@plc.org keys: [349] sites: []
+353 None user-350@plc.org keys: [350] sites: []
+354 None user-351@plc.org keys: [351] sites: []
+355 None user-352@plc.org keys: [352] sites: []
+356 None user-353@plc.org keys: [353] sites: []
+357 None user-354@plc.org keys: [354] sites: []
+358 None user-355@plc.org keys: [355] sites: []
+359 None user-356@plc.org keys: [356] sites: []
+360 None user-357@plc.org keys: [357] sites: []
+361 None user-358@plc.org keys: [358] sites: []
+362 None user-359@plc.org keys: [359] sites: []
+363 None user-360@plc.org keys: [360] sites: []
+364 None user-361@plc.org keys: [361] sites: []
+365 None user-362@plc.org keys: [362] sites: []
+366 None user-363@plc.org keys: [363] sites: []
+367 None user-364@plc.org keys: [364] sites: []
+368 None user-365@plc.org keys: [365] sites: []
+369 None user-366@plc.org keys: [366] sites: []
+370 None user-367@plc.org keys: [367] sites: []
+371 None user-368@plc.org keys: [368] sites: []
+372 None user-369@plc.org keys: [369] sites: []
+373 None user-370@plc.org keys: [370] sites: []
+374 None user-371@plc.org keys: [371] sites: []
+375 None user-372@plc.org keys: [372] sites: []
+376 None user-373@plc.org keys: [373] sites: []
+377 None user-374@plc.org keys: [374] sites: []
+378 None user-375@plc.org keys: [375] sites: []
+379 None user-376@plc.org keys: [376] sites: []
+380 None user-377@plc.org keys: [377] sites: []
+381 None user-378@plc.org keys: [378] sites: []
+382 None user-379@plc.org keys: [379] sites: []
+383 None user-380@plc.org keys: [380] sites: []
+384 None user-381@plc.org keys: [381] sites: []
+385 None user-382@plc.org keys: [382] sites: []
+386 None user-383@plc.org keys: [383] sites: []
+387 None user-384@plc.org keys: [384] sites: []
+388 None user-385@plc.org keys: [385] sites: []
+389 None user-386@plc.org keys: [386] sites: []
+390 None user-387@plc.org keys: [387] sites: []
+391 None user-388@plc.org keys: [388] sites: []
+392 None user-389@plc.org keys: [389] sites: []
+393 None user-390@plc.org keys: [390] sites: []
+394 None user-391@plc.org keys: [391] sites: []
+395 None user-392@plc.org keys: [392] sites: []
+396 None user-393@plc.org keys: [393] sites: []
+397 None user-394@plc.org keys: [394] sites: []
+398 None user-395@plc.org keys: [395] sites: []
+399 None user-396@plc.org keys: [396] sites: []
+400 None user-397@plc.org keys: [397] sites: []
+401 None user-398@plc.org keys: [398] sites: []
+402 None user-399@plc.org keys: [399] sites: []
+403 None user-400@plc.org keys: [400] sites: []
+404 None user-401@plc.org keys: [401] sites: []
+405 None user-402@plc.org keys: [402] sites: []
+406 None user-403@plc.org keys: [403] sites: []
+407 None user-404@plc.org keys: [404] sites: []
+408 None user-405@plc.org keys: [405] sites: []
+409 None user-406@plc.org keys: [406] sites: []
+410 None user-407@plc.org keys: [407] sites: []
+411 None user-408@plc.org keys: [408] sites: []
+412 None user-409@plc.org keys: [409] sites: []
+413 None user-410@plc.org keys: [410] sites: []
+414 None user-411@plc.org keys: [411] sites: []
+415 None user-412@plc.org keys: [412] sites: []
+416 None user-413@plc.org keys: [413] sites: []
+417 None user-414@plc.org keys: [414] sites: []
+418 None user-415@plc.org keys: [415] sites: []
+419 None user-416@plc.org keys: [416] sites: []
+420 None user-417@plc.org keys: [417] sites: []
+421 None user-418@plc.org keys: [418] sites: []
+422 None user-419@plc.org keys: [419] sites: []
+423 None user-420@plc.org keys: [420] sites: []
+424 None user-421@plc.org keys: [421] sites: []
+425 None user-422@plc.org keys: [422] sites: []
+426 None user-423@plc.org keys: [423] sites: []
+427 None user-424@plc.org keys: [424] sites: []
+428 None user-425@plc.org keys: [425] sites: []
+429 None user-426@plc.org keys: [426] sites: []
+430 None user-427@plc.org keys: [427] sites: []
+431 None user-428@plc.org keys: [428] sites: []
+432 None user-429@plc.org keys: [429] sites: []
+433 None user-430@plc.org keys: [430] sites: []
+434 None user-431@plc.org keys: [431] sites: []
+435 None user-432@plc.org keys: [432] sites: []
+436 None user-433@plc.org keys: [433] sites: []
+437 None user-434@plc.org keys: [434] sites: []
+438 None user-435@plc.org keys: [435] sites: []
+439 None user-436@plc.org keys: [436] sites: []
+440 None user-437@plc.org keys: [437] sites: []
+441 None user-438@plc.org keys: [438] sites: []
+442 None user-439@plc.org keys: [439] sites: []
+443 None user-440@plc.org keys: [440] sites: []
+444 None user-441@plc.org keys: [441] sites: []
+445 None user-442@plc.org keys: [442] sites: []
+446 None user-443@plc.org keys: [443] sites: []
+447 None user-444@plc.org keys: [444] sites: []
+448 None user-445@plc.org keys: [445] sites: []
+449 None user-446@plc.org keys: [446] sites: []
+450 None user-447@plc.org keys: [447] sites: []
+451 None user-448@plc.org keys: [448] sites: []
+452 None user-449@plc.org keys: [449] sites: []
+453 None user-450@plc.org keys: [450] sites: []
+454 None user-451@plc.org keys: [451] sites: []
+455 None user-452@plc.org keys: [452] sites: []
+456 None user-453@plc.org keys: [453] sites: []
+457 None user-454@plc.org keys: [454] sites: []
+458 None user-455@plc.org keys: [455] sites: []
+459 None user-456@plc.org keys: [456] sites: []
+460 None user-457@plc.org keys: [457] sites: []
+461 None user-458@plc.org keys: [458] sites: []
+462 None user-459@plc.org keys: [459] sites: []
+463 None user-460@plc.org keys: [460] sites: []
+464 None user-461@plc.org keys: [461] sites: []
+465 None user-462@plc.org keys: [462] sites: []
+466 None user-463@plc.org keys: [463] sites: []
+467 None user-464@plc.org keys: [464] sites: []
+468 None user-465@plc.org keys: [465] sites: []
+469 None user-466@plc.org keys: [466] sites: []
+470 None user-467@plc.org keys: [467] sites: []
+471 None user-468@plc.org keys: [468] sites: []
+472 None user-469@plc.org keys: [469] sites: []
+473 None user-470@plc.org keys: [470] sites: []
+474 None user-471@plc.org keys: [471] sites: []
+475 None user-472@plc.org keys: [472] sites: []
+476 None user-473@plc.org keys: [473] sites: []
+477 None user-474@plc.org keys: [474] sites: []
+478 None user-475@plc.org keys: [475] sites: []
+479 None user-476@plc.org keys: [476] sites: []
+480 None user-477@plc.org keys: [477] sites: []
+481 None user-478@plc.org keys: [478] sites: []
+482 None user-479@plc.org keys: [479] sites: []
+483 None user-480@plc.org keys: [480] sites: []
+484 None user-481@plc.org keys: [481] sites: []
+485 None user-482@plc.org keys: [482] sites: []
+486 None user-483@plc.org keys: [483] sites: []
+487 None user-484@plc.org keys: [484] sites: []
+488 None user-485@plc.org keys: [485] sites: []
+489 None user-486@plc.org keys: [486] sites: []
+490 None user-487@plc.org keys: [487] sites: []
+491 None user-488@plc.org keys: [488] sites: []
+492 None user-489@plc.org keys: [489] sites: []
+493 None user-490@plc.org keys: [490] sites: []
+494 None user-491@plc.org keys: [491] sites: []
+495 None user-492@plc.org keys: [492] sites: []
+496 None user-493@plc.org keys: [493] sites: []
+497 None user-494@plc.org keys: [494] sites: []
+498 None user-495@plc.org keys: [495] sites: []
+499 None user-496@plc.org keys: [496] sites: []
+500 None user-497@plc.org keys: [497] sites: []
+501 None user-498@plc.org keys: [498] sites: []
+502 None user-499@plc.org keys: [499] sites: []
+503 None user-500@plc.org keys: [500] sites: []
+504 1 peer2@planet-lab.org keys: [] sites: []
+505 1 user-1@plc.org keys: [501] sites: []
+506 1 user-2@plc.org keys: [502] sites: []
+507 1 user-3@plc.org keys: [503] sites: []
+508 1 user-4@plc.org keys: [504] sites: []
+509 1 user-5@plc.org keys: [505] sites: []
+510 1 user-6@plc.org keys: [506] sites: []
+511 1 user-7@plc.org keys: [507] sites: []
+512 1 user-8@plc.org keys: [508] sites: []
+513 1 user-9@plc.org keys: [509] sites: []
+514 1 user-10@plc.org keys: [510] sites: []
+515 1 user-11@plc.org keys: [511] sites: []
+516 1 user-12@plc.org keys: [512] sites: []
+517 1 user-13@plc.org keys: [513] sites: []
+518 1 user-14@plc.org keys: [514] sites: []
+519 1 user-15@plc.org keys: [515] sites: []
+520 1 user-16@plc.org keys: [516] sites: []
+521 1 user-17@plc.org keys: [517] sites: []
+522 1 user-18@plc.org keys: [518] sites: []
+523 1 user-19@plc.org keys: [519] sites: []
+524 1 user-20@plc.org keys: [520] sites: []
+525 1 user-21@plc.org keys: [521] sites: []
+526 1 user-22@plc.org keys: [522] sites: []
+527 1 user-23@plc.org keys: [523] sites: []
+528 1 user-24@plc.org keys: [524] sites: []
+529 1 user-25@plc.org keys: [525] sites: []
+530 1 user-26@plc.org keys: [526] sites: []
+531 1 user-27@plc.org keys: [527] sites: []
+532 1 user-28@plc.org keys: [528] sites: []
+533 1 user-29@plc.org keys: [529] sites: []
+534 1 user-30@plc.org keys: [530] sites: []
+535 1 user-31@plc.org keys: [531] sites: []
+536 1 user-32@plc.org keys: [532] sites: []
+537 1 user-33@plc.org keys: [533] sites: []
+538 1 user-34@plc.org keys: [534] sites: []
+539 1 user-35@plc.org keys: [535] sites: []
+540 1 user-36@plc.org keys: [536] sites: []
+541 1 user-37@plc.org keys: [537] sites: []
+542 1 user-38@plc.org keys: [538] sites: []
+543 1 user-39@plc.org keys: [539] sites: []
+544 1 user-40@plc.org keys: [540] sites: []
+545 1 user-41@plc.org keys: [541] sites: []
+546 1 user-42@plc.org keys: [542] sites: []
+547 1 user-43@plc.org keys: [543] sites: []
+548 1 user-44@plc.org keys: [544] sites: []
+549 1 user-45@plc.org keys: [545] sites: []
+550 1 user-46@plc.org keys: [546] sites: []
+551 1 user-47@plc.org keys: [547] sites: []
+552 1 user-48@plc.org keys: [548] sites: []
+553 1 user-49@plc.org keys: [549] sites: []
+554 1 user-50@plc.org keys: [550] sites: []
+555 1 user-51@plc.org keys: [551] sites: []
+556 1 user-52@plc.org keys: [552] sites: []
+557 1 user-53@plc.org keys: [553] sites: []
+558 1 user-54@plc.org keys: [554] sites: []
+559 1 user-55@plc.org keys: [555] sites: []
+560 1 user-56@plc.org keys: [556] sites: []
+561 1 user-57@plc.org keys: [557] sites: []
+562 1 user-58@plc.org keys: [558] sites: []
+563 1 user-59@plc.org keys: [559] sites: []
+564 1 user-60@plc.org keys: [560] sites: []
+565 1 user-61@plc.org keys: [561] sites: []
+566 1 user-62@plc.org keys: [562] sites: []
+567 1 user-63@plc.org keys: [563] sites: []
+568 1 user-64@plc.org keys: [564] sites: []
+569 1 user-65@plc.org keys: [565] sites: []
+570 1 user-66@plc.org keys: [566] sites: []
+571 1 user-67@plc.org keys: [567] sites: []
+572 1 user-68@plc.org keys: [568] sites: []
+573 1 user-69@plc.org keys: [569] sites: []
+574 1 user-70@plc.org keys: [570] sites: []
+575 1 user-71@plc.org keys: [571] sites: []
+576 1 user-72@plc.org keys: [572] sites: []
+577 1 user-73@plc.org keys: [573] sites: []
+578 1 user-74@plc.org keys: [574] sites: []
+579 1 user-75@plc.org keys: [575] sites: []
+580 1 user-76@plc.org keys: [576] sites: []
+581 1 user-77@plc.org keys: [577] sites: []
+582 1 user-78@plc.org keys: [578] sites: []
+583 1 user-79@plc.org keys: [579] sites: []
+584 1 user-80@plc.org keys: [580] sites: []
+585 1 user-81@plc.org keys: [581] sites: []
+586 1 user-82@plc.org keys: [582] sites: []
+587 1 user-83@plc.org keys: [583] sites: []
+588 1 user-84@plc.org keys: [584] sites: []
+589 1 user-85@plc.org keys: [585] sites: []
+590 1 user-86@plc.org keys: [586] sites: []
+591 1 user-87@plc.org keys: [587] sites: []
+592 1 user-88@plc.org keys: [588] sites: []
+593 1 user-89@plc.org keys: [589] sites: []
+594 1 user-90@plc.org keys: [590] sites: []
+595 1 user-91@plc.org keys: [591] sites: []
+596 1 user-92@plc.org keys: [592] sites: []
+597 1 user-93@plc.org keys: [593] sites: []
+598 1 user-94@plc.org keys: [594] sites: []
+599 1 user-95@plc.org keys: [595] sites: []
+600 1 user-96@plc.org keys: [596] sites: []
+601 1 user-97@plc.org keys: [597] sites: []
+602 1 user-98@plc.org keys: [598] sites: []
+603 1 user-99@plc.org keys: [599] sites: []
+604 1 user-100@plc.org keys: [600] sites: []
+605 1 user-101@plc.org keys: [601] sites: []
+606 1 user-102@plc.org keys: [602] sites: []
+607 1 user-103@plc.org keys: [603] sites: []
+608 1 user-104@plc.org keys: [604] sites: []
+609 1 user-105@plc.org keys: [605] sites: []
+610 1 user-106@plc.org keys: [606] sites: []
+611 1 user-107@plc.org keys: [607] sites: []
+612 1 user-108@plc.org keys: [608] sites: []
+613 1 user-109@plc.org keys: [609] sites: []
+614 1 user-110@plc.org keys: [610] sites: []
+615 1 user-111@plc.org keys: [611] sites: []
+616 1 user-112@plc.org keys: [612] sites: []
+617 1 user-113@plc.org keys: [613] sites: []
+618 1 user-114@plc.org keys: [614] sites: []
+619 1 user-115@plc.org keys: [615] sites: []
+620 1 user-116@plc.org keys: [616] sites: []
+621 1 user-117@plc.org keys: [617] sites: []
+622 1 user-118@plc.org keys: [618] sites: []
+623 1 user-119@plc.org keys: [619] sites: []
+624 1 user-120@plc.org keys: [620] sites: []
+625 1 user-121@plc.org keys: [621] sites: []
+626 1 user-122@plc.org keys: [622] sites: []
+627 1 user-123@plc.org keys: [623] sites: []
+628 1 user-124@plc.org keys: [624] sites: []
+629 1 user-125@plc.org keys: [625] sites: []
+630 1 user-126@plc.org keys: [626] sites: []
+631 1 user-127@plc.org keys: [627] sites: []
+632 1 user-128@plc.org keys: [628] sites: []
+633 1 user-129@plc.org keys: [629] sites: []
+634 1 user-130@plc.org keys: [630] sites: []
+635 1 user-131@plc.org keys: [631] sites: []
+636 1 user-132@plc.org keys: [632] sites: []
+637 1 user-133@plc.org keys: [633] sites: []
+638 1 user-134@plc.org keys: [634] sites: []
+639 1 user-135@plc.org keys: [635] sites: []
+640 1 user-136@plc.org keys: [636] sites: []
+641 1 user-137@plc.org keys: [637] sites: []
+642 1 user-138@plc.org keys: [638] sites: []
+643 1 user-139@plc.org keys: [639] sites: []
+644 1 user-140@plc.org keys: [640] sites: []
+645 1 user-141@plc.org keys: [641] sites: []
+646 1 user-142@plc.org keys: [642] sites: []
+647 1 user-143@plc.org keys: [643] sites: []
+648 1 user-144@plc.org keys: [644] sites: []
+649 1 user-145@plc.org keys: [645] sites: []
+650 1 user-146@plc.org keys: [646] sites: []
+651 1 user-147@plc.org keys: [647] sites: []
+652 1 user-148@plc.org keys: [648] sites: []
+653 1 user-149@plc.org keys: [649] sites: []
+654 1 user-150@plc.org keys: [650] sites: []
+655 1 user-151@plc.org keys: [651] sites: []
+656 1 user-152@plc.org keys: [652] sites: []
+657 1 user-153@plc.org keys: [653] sites: []
+658 1 user-154@plc.org keys: [654] sites: []
+659 1 user-155@plc.org keys: [655] sites: []
+660 1 user-156@plc.org keys: [656] sites: []
+661 1 user-157@plc.org keys: [657] sites: []
+662 1 user-158@plc.org keys: [658] sites: []
+663 1 user-159@plc.org keys: [659] sites: []
+664 1 user-160@plc.org keys: [660] sites: []
+665 1 user-161@plc.org keys: [661] sites: []
+666 1 user-162@plc.org keys: [662] sites: []
+667 1 user-163@plc.org keys: [663] sites: []
+668 1 user-164@plc.org keys: [664] sites: []
+669 1 user-165@plc.org keys: [665] sites: []
+670 1 user-166@plc.org keys: [666] sites: []
+671 1 user-167@plc.org keys: [667] sites: []
+672 1 user-168@plc.org keys: [668] sites: []
+673 1 user-169@plc.org keys: [669] sites: []
+674 1 user-170@plc.org keys: [670] sites: []
+675 1 user-171@plc.org keys: [671] sites: []
+676 1 user-172@plc.org keys: [672] sites: []
+677 1 user-173@plc.org keys: [673] sites: []
+678 1 user-174@plc.org keys: [674] sites: []
+679 1 user-175@plc.org keys: [675] sites: []
+680 1 user-176@plc.org keys: [676] sites: []
+681 1 user-177@plc.org keys: [677] sites: []
+682 1 user-178@plc.org keys: [678] sites: []
+683 1 user-179@plc.org keys: [679] sites: []
+684 1 user-180@plc.org keys: [680] sites: []
+685 1 user-181@plc.org keys: [681] sites: []
+686 1 user-182@plc.org keys: [682] sites: []
+687 1 user-183@plc.org keys: [683] sites: []
+688 1 user-184@plc.org keys: [684] sites: []
+689 1 user-185@plc.org keys: [685] sites: []
+690 1 user-186@plc.org keys: [686] sites: []
+691 1 user-187@plc.org keys: [687] sites: []
+692 1 user-188@plc.org keys: [688] sites: []
+693 1 user-189@plc.org keys: [689] sites: []
+694 1 user-190@plc.org keys: [690] sites: []
+695 1 user-191@plc.org keys: [691] sites: []
+696 1 user-192@plc.org keys: [692] sites: []
+697 1 user-193@plc.org keys: [693] sites: []
+698 1 user-194@plc.org keys: [694] sites: []
+699 1 user-195@plc.org keys: [695] sites: []
+700 1 user-196@plc.org keys: [696] sites: []
+701 1 user-197@plc.org keys: [697] sites: []
+702 1 user-198@plc.org keys: [698] sites: []
+703 1 user-199@plc.org keys: [699] sites: []
+704 1 user-200@plc.org keys: [700] sites: []
+705 1 user-201@plc.org keys: [701] sites: []
+706 1 user-202@plc.org keys: [702] sites: []
+707 1 user-203@plc.org keys: [703] sites: []
+708 1 user-204@plc.org keys: [704] sites: []
+709 1 user-205@plc.org keys: [705] sites: []
+710 1 user-206@plc.org keys: [706] sites: []
+711 1 user-207@plc.org keys: [707] sites: []
+712 1 user-208@plc.org keys: [708] sites: []
+713 1 user-209@plc.org keys: [709] sites: []
+714 1 user-210@plc.org keys: [710] sites: []
+715 1 user-211@plc.org keys: [711] sites: []
+716 1 user-212@plc.org keys: [712] sites: []
+717 1 user-213@plc.org keys: [713] sites: []
+718 1 user-214@plc.org keys: [714] sites: []
+719 1 user-215@plc.org keys: [715] sites: []
+720 1 user-216@plc.org keys: [716] sites: []
+721 1 user-217@plc.org keys: [717] sites: []
+722 1 user-218@plc.org keys: [718] sites: []
+723 1 user-219@plc.org keys: [719] sites: []
+724 1 user-220@plc.org keys: [720] sites: []
+725 1 user-221@plc.org keys: [721] sites: []
+726 1 user-222@plc.org keys: [722] sites: []
+727 1 user-223@plc.org keys: [723] sites: []
+728 1 user-224@plc.org keys: [724] sites: []
+729 1 user-225@plc.org keys: [725] sites: []
+730 1 user-226@plc.org keys: [726] sites: []
+731 1 user-227@plc.org keys: [727] sites: []
+732 1 user-228@plc.org keys: [728] sites: []
+733 1 user-229@plc.org keys: [729] sites: []
+734 1 user-230@plc.org keys: [730] sites: []
+735 1 user-231@plc.org keys: [731] sites: []
+736 1 user-232@plc.org keys: [732] sites: []
+737 1 user-233@plc.org keys: [733] sites: []
+738 1 user-234@plc.org keys: [734] sites: []
+739 1 user-235@plc.org keys: [735] sites: []
+740 1 user-236@plc.org keys: [736] sites: []
+741 1 user-237@plc.org keys: [737] sites: []
+742 1 user-238@plc.org keys: [738] sites: []
+743 1 user-239@plc.org keys: [739] sites: []
+744 1 user-240@plc.org keys: [740] sites: []
+745 1 user-241@plc.org keys: [741] sites: []
+746 1 user-242@plc.org keys: [742] sites: []
+747 1 user-243@plc.org keys: [743] sites: []
+748 1 user-244@plc.org keys: [744] sites: []
+749 1 user-245@plc.org keys: [745] sites: []
+750 1 user-246@plc.org keys: [746] sites: []
+751 1 user-247@plc.org keys: [747] sites: []
+752 1 user-248@plc.org keys: [748] sites: []
+753 1 user-249@plc.org keys: [749] sites: []
+754 1 user-250@plc.org keys: [750] sites: []
+755 1 user-251@plc.org keys: [751] sites: []
+756 1 user-252@plc.org keys: [752] sites: []
+757 1 user-253@plc.org keys: [753] sites: []
+758 1 user-254@plc.org keys: [754] sites: []
+759 1 user-255@plc.org keys: [755] sites: []
+760 1 user-256@plc.org keys: [756] sites: []
+761 1 user-257@plc.org keys: [757] sites: []
+762 1 user-258@plc.org keys: [758] sites: []
+763 1 user-259@plc.org keys: [759] sites: []
+764 1 user-260@plc.org keys: [760] sites: []
+765 1 user-261@plc.org keys: [761] sites: []
+766 1 user-262@plc.org keys: [762] sites: []
+767 1 user-263@plc.org keys: [763] sites: []
+768 1 user-264@plc.org keys: [764] sites: []
+769 1 user-265@plc.org keys: [765] sites: []
+770 1 user-266@plc.org keys: [766] sites: []
+771 1 user-267@plc.org keys: [767] sites: []
+772 1 user-268@plc.org keys: [768] sites: []
+773 1 user-269@plc.org keys: [769] sites: []
+774 1 user-270@plc.org keys: [770] sites: []
+775 1 user-271@plc.org keys: [771] sites: []
+776 1 user-272@plc.org keys: [772] sites: []
+777 1 user-273@plc.org keys: [773] sites: []
+778 1 user-274@plc.org keys: [774] sites: []
+779 1 user-275@plc.org keys: [775] sites: []
+780 1 user-276@plc.org keys: [776] sites: []
+781 1 user-277@plc.org keys: [777] sites: []
+782 1 user-278@plc.org keys: [778] sites: []
+783 1 user-279@plc.org keys: [779] sites: []
+784 1 user-280@plc.org keys: [780] sites: []
+785 1 user-281@plc.org keys: [781] sites: []
+786 1 user-282@plc.org keys: [782] sites: []
+787 1 user-283@plc.org keys: [783] sites: []
+788 1 user-284@plc.org keys: [784] sites: []
+789 1 user-285@plc.org keys: [785] sites: []
+790 1 user-286@plc.org keys: [786] sites: []
+791 1 user-287@plc.org keys: [787] sites: []
+792 1 user-288@plc.org keys: [788] sites: []
+793 1 user-289@plc.org keys: [789] sites: []
+794 1 user-290@plc.org keys: [790] sites: []
+795 1 user-291@plc.org keys: [791] sites: []
+796 1 user-292@plc.org keys: [792] sites: []
+797 1 user-293@plc.org keys: [793] sites: []
+798 1 user-294@plc.org keys: [794] sites: []
+799 1 user-295@plc.org keys: [795] sites: []
+800 1 user-296@plc.org keys: [796] sites: []
+801 1 user-297@plc.org keys: [797] sites: []
+802 1 user-298@plc.org keys: [798] sites: []
+803 1 user-299@plc.org keys: [799] sites: []
+804 1 user-300@plc.org keys: [800] sites: []
+805 1 user-301@plc.org keys: [801] sites: []
+806 1 user-302@plc.org keys: [802] sites: []
+807 1 user-303@plc.org keys: [803] sites: []
+808 1 user-304@plc.org keys: [804] sites: []
+809 1 user-305@plc.org keys: [805] sites: []
+810 1 user-306@plc.org keys: [806] sites: []
+811 1 user-307@plc.org keys: [807] sites: []
+812 1 user-308@plc.org keys: [808] sites: []
+813 1 user-309@plc.org keys: [809] sites: []
+814 1 user-310@plc.org keys: [810] sites: []
+815 1 user-311@plc.org keys: [811] sites: []
+816 1 user-312@plc.org keys: [812] sites: []
+817 1 user-313@plc.org keys: [813] sites: []
+818 1 user-314@plc.org keys: [814] sites: []
+819 1 user-315@plc.org keys: [815] sites: []
+820 1 user-316@plc.org keys: [816] sites: []
+821 1 user-317@plc.org keys: [817] sites: []
+822 1 user-318@plc.org keys: [818] sites: []
+823 1 user-319@plc.org keys: [819] sites: []
+824 1 user-320@plc.org keys: [820] sites: []
+825 1 user-321@plc.org keys: [821] sites: []
+826 1 user-322@plc.org keys: [822] sites: []
+827 1 user-323@plc.org keys: [823] sites: []
+828 1 user-324@plc.org keys: [824] sites: []
+829 1 user-325@plc.org keys: [825] sites: []
+830 1 user-326@plc.org keys: [826] sites: []
+831 1 user-327@plc.org keys: [827] sites: []
+832 1 user-328@plc.org keys: [828] sites: []
+833 1 user-329@plc.org keys: [829] sites: []
+834 1 user-330@plc.org keys: [830] sites: []
+835 1 user-331@plc.org keys: [831] sites: []
+836 1 user-332@plc.org keys: [832] sites: []
+837 1 user-333@plc.org keys: [833] sites: []
+838 1 user-334@plc.org keys: [834] sites: []
+839 1 user-335@plc.org keys: [835] sites: []
+840 1 user-336@plc.org keys: [836] sites: []
+841 1 user-337@plc.org keys: [837] sites: []
+842 1 user-338@plc.org keys: [838] sites: []
+843 1 user-339@plc.org keys: [839] sites: []
+844 1 user-340@plc.org keys: [840] sites: []
+845 1 user-341@plc.org keys: [841] sites: []
+846 1 user-342@plc.org keys: [842] sites: []
+847 1 user-343@plc.org keys: [843] sites: []
+848 1 user-344@plc.org keys: [844] sites: []
+849 1 user-345@plc.org keys: [845] sites: []
+850 1 user-346@plc.org keys: [846] sites: []
+851 1 user-347@plc.org keys: [847] sites: []
+852 1 user-348@plc.org keys: [848] sites: []
+853 1 user-349@plc.org keys: [849] sites: []
+854 1 user-350@plc.org keys: [850] sites: []
+855 1 user-351@plc.org keys: [851] sites: []
+856 1 user-352@plc.org keys: [852] sites: []
+857 1 user-353@plc.org keys: [853] sites: []
+858 1 user-354@plc.org keys: [854] sites: []
+859 1 user-355@plc.org keys: [855] sites: []
+860 1 user-356@plc.org keys: [856] sites: []
+861 1 user-357@plc.org keys: [857] sites: []
+862 1 user-358@plc.org keys: [858] sites: []
+863 1 user-359@plc.org keys: [859] sites: []
+864 1 user-360@plc.org keys: [860] sites: []
+865 1 user-361@plc.org keys: [861] sites: []
+866 1 user-362@plc.org keys: [862] sites: []
+867 1 user-363@plc.org keys: [863] sites: []
+868 1 user-364@plc.org keys: [864] sites: []
+869 1 user-365@plc.org keys: [865] sites: []
+870 1 user-366@plc.org keys: [866] sites: []
+871 1 user-367@plc.org keys: [867] sites: []
+872 1 user-368@plc.org keys: [868] sites: []
+873 1 user-369@plc.org keys: [869] sites: []
+874 1 user-370@plc.org keys: [870] sites: []
+875 1 user-371@plc.org keys: [871] sites: []
+876 1 user-372@plc.org keys: [872] sites: []
+877 1 user-373@plc.org keys: [873] sites: []
+878 1 user-374@plc.org keys: [874] sites: []
+879 1 user-375@plc.org keys: [875] sites: []
+880 1 user-376@plc.org keys: [876] sites: []
+881 1 user-377@plc.org keys: [877] sites: []
+882 1 user-378@plc.org keys: [878] sites: []
+883 1 user-379@plc.org keys: [879] sites: []
+884 1 user-380@plc.org keys: [880] sites: []
+885 1 user-381@plc.org keys: [881] sites: []
+886 1 user-382@plc.org keys: [882] sites: []
+887 1 user-383@plc.org keys: [883] sites: []
+888 1 user-384@plc.org keys: [884] sites: []
+889 1 user-385@plc.org keys: [885] sites: []
+890 1 user-386@plc.org keys: [886] sites: []
+891 1 user-387@plc.org keys: [887] sites: []
+892 1 user-388@plc.org keys: [888] sites: []
+893 1 user-389@plc.org keys: [889] sites: []
+894 1 user-390@plc.org keys: [890] sites: []
+895 1 user-391@plc.org keys: [891] sites: []
+896 1 user-392@plc.org keys: [892] sites: []
+897 1 user-393@plc.org keys: [893] sites: []
+898 1 user-394@plc.org keys: [894] sites: []
+899 1 user-395@plc.org keys: [895] sites: []
+900 1 user-396@plc.org keys: [896] sites: []
+901 1 user-397@plc.org keys: [897] sites: []
+902 1 user-398@plc.org keys: [898] sites: []
+903 1 user-399@plc.org keys: [899] sites: []
+904 1 user-400@plc.org keys: [900] sites: []
+905 1 user-401@plc.org keys: [901] sites: []
+906 1 user-402@plc.org keys: [902] sites: []
+907 1 user-403@plc.org keys: [903] sites: []
+908 1 user-404@plc.org keys: [904] sites: []
+909 1 user-405@plc.org keys: [905] sites: []
+910 1 user-406@plc.org keys: [906] sites: []
+911 1 user-407@plc.org keys: [907] sites: []
+912 1 user-408@plc.org keys: [908] sites: []
+913 1 user-409@plc.org keys: [909] sites: []
+914 1 user-410@plc.org keys: [910] sites: []
+915 1 user-411@plc.org keys: [911] sites: []
+916 1 user-412@plc.org keys: [912] sites: []
+917 1 user-413@plc.org keys: [913] sites: []
+918 1 user-414@plc.org keys: [914] sites: []
+919 1 user-415@plc.org keys: [915] sites: []
+920 1 user-416@plc.org keys: [916] sites: []
+921 1 user-417@plc.org keys: [917] sites: []
+922 1 user-418@plc.org keys: [918] sites: []
+923 1 user-419@plc.org keys: [919] sites: []
+924 1 user-420@plc.org keys: [920] sites: []
+925 1 user-421@plc.org keys: [921] sites: []
+926 1 user-422@plc.org keys: [922] sites: []
+927 1 user-423@plc.org keys: [923] sites: []
+928 1 user-424@plc.org keys: [924] sites: []
+929 1 user-425@plc.org keys: [925] sites: []
+930 1 user-426@plc.org keys: [926] sites: []
+931 1 user-427@plc.org keys: [927] sites: []
+932 1 user-428@plc.org keys: [928] sites: []
+933 1 user-429@plc.org keys: [929] sites: []
+934 1 user-430@plc.org keys: [930] sites: []
+935 1 user-431@plc.org keys: [931] sites: []
+936 1 user-432@plc.org keys: [932] sites: []
+937 1 user-433@plc.org keys: [933] sites: []
+938 1 user-434@plc.org keys: [934] sites: []
+939 1 user-435@plc.org keys: [935] sites: []
+940 1 user-436@plc.org keys: [936] sites: []
+941 1 user-437@plc.org keys: [937] sites: []
+942 1 user-438@plc.org keys: [938] sites: []
+943 1 user-439@plc.org keys: [939] sites: []
+944 1 user-440@plc.org keys: [940] sites: []
+945 1 user-441@plc.org keys: [941] sites: []
+946 1 user-442@plc.org keys: [942] sites: []
+947 1 user-443@plc.org keys: [943] sites: []
+948 1 user-444@plc.org keys: [944] sites: []
+949 1 user-445@plc.org keys: [945] sites: []
+950 1 user-446@plc.org keys: [946] sites: []
+951 1 user-447@plc.org keys: [947] sites: []
+952 1 user-448@plc.org keys: [948] sites: []
+953 1 user-449@plc.org keys: [949] sites: []
+954 1 user-450@plc.org keys: [950] sites: []
+955 1 user-451@plc.org keys: [951] sites: []
+956 1 user-452@plc.org keys: [952] sites: []
+957 1 user-453@plc.org keys: [953] sites: []
+958 1 user-454@plc.org keys: [954] sites: []
+959 1 user-455@plc.org keys: [955] sites: []
+960 1 user-456@plc.org keys: [956] sites: []
+961 1 user-457@plc.org keys: [957] sites: []
+962 1 user-458@plc.org keys: [958] sites: []
+963 1 user-459@plc.org keys: [959] sites: []
+964 1 user-460@plc.org keys: [960] sites: []
+965 1 user-461@plc.org keys: [961] sites: []
+966 1 user-462@plc.org keys: [962] sites: []
+967 1 user-463@plc.org keys: [963] sites: []
+968 1 user-464@plc.org keys: [964] sites: []
+969 1 user-465@plc.org keys: [965] sites: []
+970 1 user-466@plc.org keys: [966] sites: []
+971 1 user-467@plc.org keys: [967] sites: []
+972 1 user-468@plc.org keys: [968] sites: []
+973 1 user-469@plc.org keys: [969] sites: []
+974 1 user-470@plc.org keys: [970] sites: []
+975 1 user-471@plc.org keys: [971] sites: []
+976 1 user-472@plc.org keys: [972] sites: []
+977 1 user-473@plc.org keys: [973] sites: []
+978 1 user-474@plc.org keys: [974] sites: []
+979 1 user-475@plc.org keys: [975] sites: []
+980 1 user-476@plc.org keys: [976] sites: []
+981 1 user-477@plc.org keys: [977] sites: []
+982 1 user-478@plc.org keys: [978] sites: []
+983 1 user-479@plc.org keys: [979] sites: []
+984 1 user-480@plc.org keys: [980] sites: []
+985 1 user-481@plc.org keys: [981] sites: []
+986 1 user-482@plc.org keys: [982] sites: []
+987 1 user-483@plc.org keys: [983] sites: []
+988 1 user-484@plc.org keys: [984] sites: []
+989 1 user-485@plc.org keys: [985] sites: []
+990 1 user-486@plc.org keys: [986] sites: []
+991 1 user-487@plc.org keys: [987] sites: []
+992 1 user-488@plc.org keys: [988] sites: []
+993 1 user-489@plc.org keys: [989] sites: []
+994 1 user-490@plc.org keys: [990] sites: []
+995 1 user-491@plc.org keys: [991] sites: []
+996 1 user-492@plc.org keys: [992] sites: []
+997 1 user-493@plc.org keys: [993] sites: []
+998 1 user-494@plc.org keys: [994] sites: []
+999 1 user-495@plc.org keys: [995] sites: []
+1000 1 user-496@plc.org keys: [996] sites: []
+1001 1 user-497@plc.org keys: [997] sites: []
+1002 1 user-498@plc.org keys: [998] sites: []
+1003 1 user-499@plc.org keys: [999] sites: []
+1004 1 user-500@plc.org keys: [1000] sites: []
+01: NODES
+1 None n1-001.plc1.org sls= [352, 2] site= 2
+2 None n1-002.plc1.org sls= [353, 3] site= 3
+3 None n1-003.plc1.org sls= [354, 4] site= 4
+4 None n1-004.plc1.org sls= [355, 5] site= 5
+5 None n1-005.plc1.org sls= [356, 6] site= 6
+6 None n1-006.plc1.org sls= [357, 7] site= 7
+7 None n1-007.plc1.org sls= [358, 8] site= 8
+8 None n1-008.plc1.org sls= [359, 9] site= 9
+9 None n1-009.plc1.org sls= [360, 10] site= 10
+10 None n1-010.plc1.org sls= [361, 11] site= 11
+11 None n1-011.plc1.org sls= [362, 12] site= 12
+12 None n1-012.plc1.org sls= [363, 13] site= 13
+13 None n1-013.plc1.org sls= [364, 14] site= 14
+14 None n1-014.plc1.org sls= [365, 15] site= 15
+15 None n1-015.plc1.org sls= [366, 16] site= 16
+16 None n1-016.plc1.org sls= [367, 17] site= 17
+17 None n1-017.plc1.org sls= [368, 18] site= 18
+18 None n1-018.plc1.org sls= [369, 19] site= 19
+19 None n1-019.plc1.org sls= [370, 20] site= 20
+20 None n1-020.plc1.org sls= [371, 21] site= 21
+21 None n1-021.plc1.org sls= [372, 22] site= 22
+22 None n1-022.plc1.org sls= [373, 23] site= 23
+23 None n1-023.plc1.org sls= [374, 24] site= 24
+24 None n1-024.plc1.org sls= [375, 25] site= 25
+25 None n1-025.plc1.org sls= [376, 26] site= 26
+26 None n1-026.plc1.org sls= [377, 27] site= 27
+27 None n1-027.plc1.org sls= [378, 28] site= 28
+28 None n1-028.plc1.org sls= [379, 29] site= 29
+29 None n1-029.plc1.org sls= [380, 30] site= 30
+30 None n1-030.plc1.org sls= [381, 31] site= 31
+31 None n1-031.plc1.org sls= [382, 32] site= 32
+32 None n1-032.plc1.org sls= [383, 33] site= 33
+33 None n1-033.plc1.org sls= [384, 34] site= 34
+34 None n1-034.plc1.org sls= [385, 35] site= 35
+35 None n1-035.plc1.org sls= [386, 36] site= 36
+36 None n1-036.plc1.org sls= [387, 37] site= 37
+37 None n1-037.plc1.org sls= [388, 38] site= 38
+38 None n1-038.plc1.org sls= [389, 39] site= 39
+39 None n1-039.plc1.org sls= [390, 40] site= 40
+40 None n1-040.plc1.org sls= [391, 41] site= 41
+41 None n1-041.plc1.org sls= [392, 42] site= 42
+42 None n1-042.plc1.org sls= [393, 43] site= 43
+43 None n1-043.plc1.org sls= [394, 44] site= 44
+44 None n1-044.plc1.org sls= [395, 45] site= 45
+45 None n1-045.plc1.org sls= [396, 46] site= 46
+46 None n1-046.plc1.org sls= [397, 47] site= 47
+47 None n1-047.plc1.org sls= [398, 48] site= 48
+48 None n1-048.plc1.org sls= [399, 49] site= 49
+49 None n1-049.plc1.org sls= [400, 50] site= 50
+50 None n1-050.plc1.org sls= [401, 51] site= 51
+51 None n1-051.plc1.org sls= [402, 52] site= 52
+52 None n1-052.plc1.org sls= [403, 53] site= 53
+53 None n1-053.plc1.org sls= [404, 54] site= 54
+54 None n1-054.plc1.org sls= [405, 55] site= 55
+55 None n1-055.plc1.org sls= [406, 56] site= 56
+56 None n1-056.plc1.org sls= [407, 57] site= 57
+57 None n1-057.plc1.org sls= [408, 58] site= 58
+58 None n1-058.plc1.org sls= [409, 59] site= 59
+59 None n1-059.plc1.org sls= [410, 60] site= 60
+60 None n1-060.plc1.org sls= [411, 61] site= 61
+61 None n1-061.plc1.org sls= [412, 62] site= 62
+62 None n1-062.plc1.org sls= [413, 63] site= 63
+63 None n1-063.plc1.org sls= [414, 64] site= 64
+64 None n1-064.plc1.org sls= [415, 65] site= 65
+65 None n1-065.plc1.org sls= [416, 66] site= 66
+66 None n1-066.plc1.org sls= [417, 67] site= 67
+67 None n1-067.plc1.org sls= [418, 68] site= 68
+68 None n1-068.plc1.org sls= [419, 69] site= 69
+69 None n1-069.plc1.org sls= [420, 70] site= 70
+70 None n1-070.plc1.org sls= [421, 71] site= 71
+71 None n1-071.plc1.org sls= [422, 72] site= 72
+72 None n1-072.plc1.org sls= [423, 73] site= 73
+73 None n1-073.plc1.org sls= [424, 74] site= 74
+74 None n1-074.plc1.org sls= [425, 75] site= 75
+75 None n1-075.plc1.org sls= [426, 76] site= 76
+76 None n1-076.plc1.org sls= [427, 77] site= 77
+77 None n1-077.plc1.org sls= [428, 78] site= 78
+78 None n1-078.plc1.org sls= [429, 79] site= 79
+79 None n1-079.plc1.org sls= [430, 80] site= 80
+80 None n1-080.plc1.org sls= [431, 81] site= 81
+81 None n1-081.plc1.org sls= [432, 82] site= 82
+82 None n1-082.plc1.org sls= [433, 83] site= 83
+83 None n1-083.plc1.org sls= [434, 84] site= 84
+84 None n1-084.plc1.org sls= [435, 85] site= 85
+85 None n1-085.plc1.org sls= [436, 86] site= 86
+86 None n1-086.plc1.org sls= [437, 87] site= 87
+87 None n1-087.plc1.org sls= [438, 88] site= 88
+88 None n1-088.plc1.org sls= [439, 89] site= 89
+89 None n1-089.plc1.org sls= [440, 90] site= 90
+90 None n1-090.plc1.org sls= [441, 91] site= 91
+91 None n1-091.plc1.org sls= [442, 92] site= 92
+92 None n1-092.plc1.org sls= [443, 93] site= 93
+93 None n1-093.plc1.org sls= [444, 94] site= 94
+94 None n1-094.plc1.org sls= [445, 95] site= 95
+95 None n1-095.plc1.org sls= [446, 96] site= 96
+96 None n1-096.plc1.org sls= [447, 97] site= 97
+97 None n1-097.plc1.org sls= [448, 98] site= 98
+98 None n1-098.plc1.org sls= [449, 99] site= 99
+99 None n1-099.plc1.org sls= [450, 100] site= 100
+100 None n1-100.plc1.org sls= [451, 101] site= 101
+101 None n1-101.plc1.org sls= [452, 102] site= 102
+102 None n1-102.plc1.org sls= [453, 103] site= 103
+103 None n1-103.plc1.org sls= [454, 104] site= 104
+104 None n1-104.plc1.org sls= [455, 105] site= 105
+105 None n1-105.plc1.org sls= [456, 106] site= 106
+106 None n1-106.plc1.org sls= [457, 107] site= 107
+107 None n1-107.plc1.org sls= [458, 108] site= 108
+108 None n1-108.plc1.org sls= [459, 109] site= 109
+109 None n1-109.plc1.org sls= [460, 110] site= 110
+110 None n1-110.plc1.org sls= [461, 111] site= 111
+111 None n1-111.plc1.org sls= [462, 112] site= 112
+112 None n1-112.plc1.org sls= [463, 113] site= 113
+113 None n1-113.plc1.org sls= [464, 114] site= 114
+114 None n1-114.plc1.org sls= [465, 115] site= 115
+115 None n1-115.plc1.org sls= [466, 116] site= 116
+116 None n1-116.plc1.org sls= [467, 117] site= 117
+117 None n1-117.plc1.org sls= [468, 118] site= 118
+118 None n1-118.plc1.org sls= [469, 119] site= 119
+119 None n1-119.plc1.org sls= [470, 120] site= 120
+120 None n1-120.plc1.org sls= [471, 121] site= 121
+121 None n1-121.plc1.org sls= [472, 122] site= 122
+122 None n1-122.plc1.org sls= [473, 123] site= 123
+123 None n1-123.plc1.org sls= [474, 124] site= 124
+124 None n1-124.plc1.org sls= [475, 125] site= 125
+125 None n1-125.plc1.org sls= [476, 126] site= 126
+126 None n1-126.plc1.org sls= [477, 127] site= 127
+127 None n1-127.plc1.org sls= [478, 128] site= 128
+128 None n1-128.plc1.org sls= [479, 129] site= 129
+129 None n1-129.plc1.org sls= [480, 130] site= 130
+130 None n1-130.plc1.org sls= [481, 131] site= 131
+131 None n1-131.plc1.org sls= [482, 132] site= 132
+132 None n1-132.plc1.org sls= [483, 133] site= 133
+133 None n1-133.plc1.org sls= [484, 134] site= 134
+134 None n1-134.plc1.org sls= [485, 135] site= 135
+135 None n1-135.plc1.org sls= [486, 136] site= 136
+136 None n1-136.plc1.org sls= [487, 137] site= 137
+137 None n1-137.plc1.org sls= [488, 138] site= 138
+138 None n1-138.plc1.org sls= [489, 139] site= 139
+139 None n1-139.plc1.org sls= [490, 140] site= 140
+140 None n1-140.plc1.org sls= [491, 141] site= 141
+141 None n1-141.plc1.org sls= [492, 142] site= 142
+142 None n1-142.plc1.org sls= [493, 143] site= 143
+143 None n1-143.plc1.org sls= [494, 144] site= 144
+144 None n1-144.plc1.org sls= [495, 145] site= 145
+145 None n1-145.plc1.org sls= [496, 146] site= 146
+146 None n1-146.plc1.org sls= [497, 147] site= 147
+147 None n1-147.plc1.org sls= [498, 148] site= 148
+148 None n1-148.plc1.org sls= [499, 149] site= 149
+149 None n1-149.plc1.org sls= [500, 150] site= 150
+150 None n1-150.plc1.org sls= [501, 151] site= 151
+151 None n1-151.plc1.org sls= [152] site= 152
+152 None n1-152.plc1.org sls= [153] site= 153
+153 None n1-153.plc1.org sls= [154] site= 154
+154 None n1-154.plc1.org sls= [155] site= 155
+155 None n1-155.plc1.org sls= [156] site= 156
+156 None n1-156.plc1.org sls= [157] site= 157
+157 None n1-157.plc1.org sls= [158] site= 158
+158 None n1-158.plc1.org sls= [159] site= 159
+159 None n1-159.plc1.org sls= [160] site= 160
+160 None n1-160.plc1.org sls= [161] site= 161
+161 None n1-161.plc1.org sls= [162] site= 162
+162 None n1-162.plc1.org sls= [163] site= 163
+163 None n1-163.plc1.org sls= [164] site= 164
+164 None n1-164.plc1.org sls= [165] site= 165
+165 None n1-165.plc1.org sls= [166] site= 166
+166 None n1-166.plc1.org sls= [167] site= 167
+167 None n1-167.plc1.org sls= [168] site= 168
+168 None n1-168.plc1.org sls= [169] site= 169
+169 None n1-169.plc1.org sls= [170] site= 170
+170 None n1-170.plc1.org sls= [171] site= 171
+171 None n1-171.plc1.org sls= [172] site= 172
+172 None n1-172.plc1.org sls= [173] site= 173
+173 None n1-173.plc1.org sls= [174] site= 174
+174 None n1-174.plc1.org sls= [175] site= 175
+175 None n1-175.plc1.org sls= [176] site= 176
+176 None n1-176.plc1.org sls= [177] site= 177
+177 None n1-177.plc1.org sls= [178] site= 178
+178 None n1-178.plc1.org sls= [179] site= 179
+179 None n1-179.plc1.org sls= [180] site= 180
+180 None n1-180.plc1.org sls= [181] site= 181
+181 None n1-181.plc1.org sls= [182] site= 182
+182 None n1-182.plc1.org sls= [183] site= 183
+183 None n1-183.plc1.org sls= [184] site= 184
+184 None n1-184.plc1.org sls= [185] site= 185
+185 None n1-185.plc1.org sls= [186] site= 186
+186 None n1-186.plc1.org sls= [187] site= 187
+187 None n1-187.plc1.org sls= [188] site= 188
+188 None n1-188.plc1.org sls= [189] site= 189
+189 None n1-189.plc1.org sls= [190] site= 190
+190 None n1-190.plc1.org sls= [191] site= 191
+191 None n1-191.plc1.org sls= [192] site= 192
+192 None n1-192.plc1.org sls= [193] site= 193
+193 None n1-193.plc1.org sls= [194] site= 194
+194 None n1-194.plc1.org sls= [195] site= 195
+195 None n1-195.plc1.org sls= [196] site= 196
+196 None n1-196.plc1.org sls= [197] site= 197
+197 None n1-197.plc1.org sls= [198] site= 198
+198 None n1-198.plc1.org sls= [199] site= 199
+199 None n1-199.plc1.org sls= [200] site= 200
+200 None n1-200.plc1.org sls= [201] site= 201
+201 None n1-201.plc1.org sls= [202] site= 2
+202 None n1-202.plc1.org sls= [203] site= 3
+203 None n1-203.plc1.org sls= [204] site= 4
+204 None n1-204.plc1.org sls= [205] site= 5
+205 None n1-205.plc1.org sls= [206] site= 6
+206 None n1-206.plc1.org sls= [207] site= 7
+207 None n1-207.plc1.org sls= [208] site= 8
+208 None n1-208.plc1.org sls= [209] site= 9
+209 None n1-209.plc1.org sls= [210] site= 10
+210 None n1-210.plc1.org sls= [211] site= 11
+211 None n1-211.plc1.org sls= [212] site= 12
+212 None n1-212.plc1.org sls= [213] site= 13
+213 None n1-213.plc1.org sls= [214] site= 14
+214 None n1-214.plc1.org sls= [215] site= 15
+215 None n1-215.plc1.org sls= [216] site= 16
+216 None n1-216.plc1.org sls= [217] site= 17
+217 None n1-217.plc1.org sls= [218] site= 18
+218 None n1-218.plc1.org sls= [219] site= 19
+219 None n1-219.plc1.org sls= [220] site= 20
+220 None n1-220.plc1.org sls= [221] site= 21
+221 None n1-221.plc1.org sls= [222] site= 22
+222 None n1-222.plc1.org sls= [223] site= 23
+223 None n1-223.plc1.org sls= [224] site= 24
+224 None n1-224.plc1.org sls= [225] site= 25
+225 None n1-225.plc1.org sls= [226] site= 26
+226 None n1-226.plc1.org sls= [227] site= 27
+227 None n1-227.plc1.org sls= [228] site= 28
+228 None n1-228.plc1.org sls= [229] site= 29
+229 None n1-229.plc1.org sls= [230] site= 30
+230 None n1-230.plc1.org sls= [231] site= 31
+231 None n1-231.plc1.org sls= [232] site= 32
+232 None n1-232.plc1.org sls= [233] site= 33
+233 None n1-233.plc1.org sls= [234] site= 34
+234 None n1-234.plc1.org sls= [235] site= 35
+235 None n1-235.plc1.org sls= [236] site= 36
+236 None n1-236.plc1.org sls= [237] site= 37
+237 None n1-237.plc1.org sls= [238] site= 38
+238 None n1-238.plc1.org sls= [239] site= 39
+239 None n1-239.plc1.org sls= [240] site= 40
+240 None n1-240.plc1.org sls= [241] site= 41
+241 None n1-241.plc1.org sls= [242] site= 42
+242 None n1-242.plc1.org sls= [243] site= 43
+243 None n1-243.plc1.org sls= [244] site= 44
+244 None n1-244.plc1.org sls= [245] site= 45
+245 None n1-245.plc1.org sls= [246] site= 46
+246 None n1-246.plc1.org sls= [247] site= 47
+247 None n1-247.plc1.org sls= [248] site= 48
+248 None n1-248.plc1.org sls= [249] site= 49
+249 None n1-249.plc1.org sls= [250] site= 50
+250 None n1-250.plc1.org sls= [251] site= 51
+251 None n1-251.plc1.org sls= [252] site= 52
+252 None n1-252.plc1.org sls= [253] site= 53
+253 None n1-253.plc1.org sls= [254] site= 54
+254 None n1-254.plc1.org sls= [255] site= 55
+255 None n1-255.plc1.org sls= [256] site= 56
+256 None n1-256.plc1.org sls= [257] site= 57
+257 None n1-257.plc1.org sls= [258] site= 58
+258 None n1-258.plc1.org sls= [259] site= 59
+259 None n1-259.plc1.org sls= [260] site= 60
+260 None n1-260.plc1.org sls= [261] site= 61
+261 None n1-261.plc1.org sls= [262] site= 62
+262 None n1-262.plc1.org sls= [263] site= 63
+263 None n1-263.plc1.org sls= [264] site= 64
+264 None n1-264.plc1.org sls= [265] site= 65
+265 None n1-265.plc1.org sls= [266] site= 66
+266 None n1-266.plc1.org sls= [267] site= 67
+267 None n1-267.plc1.org sls= [268] site= 68
+268 None n1-268.plc1.org sls= [269] site= 69
+269 None n1-269.plc1.org sls= [270] site= 70
+270 None n1-270.plc1.org sls= [271] site= 71
+271 None n1-271.plc1.org sls= [272] site= 72
+272 None n1-272.plc1.org sls= [273] site= 73
+273 None n1-273.plc1.org sls= [274] site= 74
+274 None n1-274.plc1.org sls= [275] site= 75
+275 None n1-275.plc1.org sls= [276] site= 76
+276 None n1-276.plc1.org sls= [277] site= 77
+277 None n1-277.plc1.org sls= [278] site= 78
+278 None n1-278.plc1.org sls= [279] site= 79
+279 None n1-279.plc1.org sls= [280] site= 80
+280 None n1-280.plc1.org sls= [281] site= 81
+281 None n1-281.plc1.org sls= [282] site= 82
+282 None n1-282.plc1.org sls= [283] site= 83
+283 None n1-283.plc1.org sls= [284] site= 84
+284 None n1-284.plc1.org sls= [285] site= 85
+285 None n1-285.plc1.org sls= [286] site= 86
+286 None n1-286.plc1.org sls= [287] site= 87
+287 None n1-287.plc1.org sls= [288] site= 88
+288 None n1-288.plc1.org sls= [289] site= 89
+289 None n1-289.plc1.org sls= [290] site= 90
+290 None n1-290.plc1.org sls= [291] site= 91
+291 None n1-291.plc1.org sls= [292] site= 92
+292 None n1-292.plc1.org sls= [293] site= 93
+293 None n1-293.plc1.org sls= [294] site= 94
+294 None n1-294.plc1.org sls= [295] site= 95
+295 None n1-295.plc1.org sls= [296] site= 96
+296 None n1-296.plc1.org sls= [297] site= 97
+297 None n1-297.plc1.org sls= [298] site= 98
+298 None n1-298.plc1.org sls= [299] site= 99
+299 None n1-299.plc1.org sls= [300] site= 100
+300 None n1-300.plc1.org sls= [301] site= 101
+301 None n1-301.plc1.org sls= [302] site= 102
+302 None n1-302.plc1.org sls= [303] site= 103
+303 None n1-303.plc1.org sls= [304] site= 104
+304 None n1-304.plc1.org sls= [305] site= 105
+305 None n1-305.plc1.org sls= [306] site= 106
+306 None n1-306.plc1.org sls= [307] site= 107
+307 None n1-307.plc1.org sls= [308] site= 108
+308 None n1-308.plc1.org sls= [309] site= 109
+309 None n1-309.plc1.org sls= [310] site= 110
+310 None n1-310.plc1.org sls= [311] site= 111
+311 None n1-311.plc1.org sls= [312] site= 112
+312 None n1-312.plc1.org sls= [313] site= 113
+313 None n1-313.plc1.org sls= [314] site= 114
+314 None n1-314.plc1.org sls= [315] site= 115
+315 None n1-315.plc1.org sls= [316] site= 116
+316 None n1-316.plc1.org sls= [317] site= 117
+317 None n1-317.plc1.org sls= [318] site= 118
+318 None n1-318.plc1.org sls= [319] site= 119
+319 None n1-319.plc1.org sls= [320] site= 120
+320 None n1-320.plc1.org sls= [321] site= 121
+321 None n1-321.plc1.org sls= [322] site= 122
+322 None n1-322.plc1.org sls= [323] site= 123
+323 None n1-323.plc1.org sls= [324] site= 124
+324 None n1-324.plc1.org sls= [325] site= 125
+325 None n1-325.plc1.org sls= [326] site= 126
+326 None n1-326.plc1.org sls= [327] site= 127
+327 None n1-327.plc1.org sls= [328] site= 128
+328 None n1-328.plc1.org sls= [329] site= 129
+329 None n1-329.plc1.org sls= [330] site= 130
+330 None n1-330.plc1.org sls= [331] site= 131
+331 None n1-331.plc1.org sls= [332] site= 132
+332 None n1-332.plc1.org sls= [333] site= 133
+333 None n1-333.plc1.org sls= [334] site= 134
+334 None n1-334.plc1.org sls= [335] site= 135
+335 None n1-335.plc1.org sls= [336] site= 136
+336 None n1-336.plc1.org sls= [337] site= 137
+337 None n1-337.plc1.org sls= [338] site= 138
+338 None n1-338.plc1.org sls= [339] site= 139
+339 None n1-339.plc1.org sls= [340] site= 140
+340 None n1-340.plc1.org sls= [341] site= 141
+341 None n1-341.plc1.org sls= [342] site= 142
+342 None n1-342.plc1.org sls= [343] site= 143
+343 None n1-343.plc1.org sls= [344] site= 144
+344 None n1-344.plc1.org sls= [345] site= 145
+345 None n1-345.plc1.org sls= [346] site= 146
+346 None n1-346.plc1.org sls= [347] site= 147
+347 None n1-347.plc1.org sls= [348] site= 148
+348 None n1-348.plc1.org sls= [349] site= 149
+349 None n1-349.plc1.org sls= [350] site= 150
+350 None n1-350.plc1.org sls= [351] site= 151
+351 1 n2-001.plc2.org sls= [352, 2] site= 203
+352 1 n2-002.plc2.org sls= [353, 3] site= 204
+353 1 n2-003.plc2.org sls= [354, 4] site= 205
+354 1 n2-004.plc2.org sls= [355, 5] site= 206
+355 1 n2-005.plc2.org sls= [356, 6] site= 207
+356 1 n2-006.plc2.org sls= [357, 7] site= 208
+357 1 n2-007.plc2.org sls= [358, 8] site= 209
+358 1 n2-008.plc2.org sls= [359, 9] site= 210
+359 1 n2-009.plc2.org sls= [360, 10] site= 211
+360 1 n2-010.plc2.org sls= [361, 11] site= 212
+361 1 n2-011.plc2.org sls= [362, 12] site= 213
+362 1 n2-012.plc2.org sls= [363, 13] site= 214
+363 1 n2-013.plc2.org sls= [364, 14] site= 215
+364 1 n2-014.plc2.org sls= [365, 15] site= 216
+365 1 n2-015.plc2.org sls= [366, 16] site= 217
+366 1 n2-016.plc2.org sls= [367, 17] site= 218
+367 1 n2-017.plc2.org sls= [368, 18] site= 219
+368 1 n2-018.plc2.org sls= [369, 19] site= 220
+369 1 n2-019.plc2.org sls= [370, 20] site= 221
+370 1 n2-020.plc2.org sls= [371, 21] site= 222
+371 1 n2-021.plc2.org sls= [372, 22] site= 223
+372 1 n2-022.plc2.org sls= [373, 23] site= 224
+373 1 n2-023.plc2.org sls= [374, 24] site= 225
+374 1 n2-024.plc2.org sls= [375, 25] site= 226
+375 1 n2-025.plc2.org sls= [376, 26] site= 227
+376 1 n2-026.plc2.org sls= [377, 27] site= 228
+377 1 n2-027.plc2.org sls= [378, 28] site= 229
+378 1 n2-028.plc2.org sls= [379, 29] site= 230
+379 1 n2-029.plc2.org sls= [380, 30] site= 231
+380 1 n2-030.plc2.org sls= [381, 31] site= 232
+381 1 n2-031.plc2.org sls= [382, 32] site= 233
+382 1 n2-032.plc2.org sls= [383, 33] site= 234
+383 1 n2-033.plc2.org sls= [384, 34] site= 235
+384 1 n2-034.plc2.org sls= [385, 35] site= 236
+385 1 n2-035.plc2.org sls= [386, 36] site= 237
+386 1 n2-036.plc2.org sls= [387, 37] site= 238
+387 1 n2-037.plc2.org sls= [388, 38] site= 239
+388 1 n2-038.plc2.org sls= [389, 39] site= 240
+389 1 n2-039.plc2.org sls= [390, 40] site= 241
+390 1 n2-040.plc2.org sls= [391, 41] site= 242
+391 1 n2-041.plc2.org sls= [392, 42] site= 243
+392 1 n2-042.plc2.org sls= [393, 43] site= 244
+393 1 n2-043.plc2.org sls= [394, 44] site= 245
+394 1 n2-044.plc2.org sls= [395, 45] site= 246
+395 1 n2-045.plc2.org sls= [396, 46] site= 247
+396 1 n2-046.plc2.org sls= [397, 47] site= 248
+397 1 n2-047.plc2.org sls= [398, 48] site= 249
+398 1 n2-048.plc2.org sls= [399, 49] site= 250
+399 1 n2-049.plc2.org sls= [400, 50] site= 251
+400 1 n2-050.plc2.org sls= [401, 51] site= 252
+401 1 n2-051.plc2.org sls= [402, 52] site= 253
+402 1 n2-052.plc2.org sls= [403, 53] site= 254
+403 1 n2-053.plc2.org sls= [404, 54] site= 255
+404 1 n2-054.plc2.org sls= [405, 55] site= 256
+405 1 n2-055.plc2.org sls= [406, 56] site= 257
+406 1 n2-056.plc2.org sls= [407, 57] site= 258
+407 1 n2-057.plc2.org sls= [408, 58] site= 259
+408 1 n2-058.plc2.org sls= [409, 59] site= 260
+409 1 n2-059.plc2.org sls= [410, 60] site= 261
+410 1 n2-060.plc2.org sls= [411, 61] site= 262
+411 1 n2-061.plc2.org sls= [412, 62] site= 263
+412 1 n2-062.plc2.org sls= [413, 63] site= 264
+413 1 n2-063.plc2.org sls= [414, 64] site= 265
+414 1 n2-064.plc2.org sls= [415, 65] site= 266
+415 1 n2-065.plc2.org sls= [416, 66] site= 267
+416 1 n2-066.plc2.org sls= [417, 67] site= 268
+417 1 n2-067.plc2.org sls= [418, 68] site= 269
+418 1 n2-068.plc2.org sls= [419, 69] site= 270
+419 1 n2-069.plc2.org sls= [420, 70] site= 271
+420 1 n2-070.plc2.org sls= [421, 71] site= 272
+421 1 n2-071.plc2.org sls= [422, 72] site= 273
+422 1 n2-072.plc2.org sls= [423, 73] site= 274
+423 1 n2-073.plc2.org sls= [424, 74] site= 275
+424 1 n2-074.plc2.org sls= [425, 75] site= 276
+425 1 n2-075.plc2.org sls= [426, 76] site= 277
+426 1 n2-076.plc2.org sls= [427, 77] site= 278
+427 1 n2-077.plc2.org sls= [428, 78] site= 279
+428 1 n2-078.plc2.org sls= [429, 79] site= 280
+429 1 n2-079.plc2.org sls= [430, 80] site= 281
+430 1 n2-080.plc2.org sls= [431, 81] site= 282
+431 1 n2-081.plc2.org sls= [432, 82] site= 283
+432 1 n2-082.plc2.org sls= [433, 83] site= 284
+433 1 n2-083.plc2.org sls= [434, 84] site= 285
+434 1 n2-084.plc2.org sls= [435, 85] site= 286
+435 1 n2-085.plc2.org sls= [436, 86] site= 287
+436 1 n2-086.plc2.org sls= [437, 87] site= 288
+437 1 n2-087.plc2.org sls= [438, 88] site= 289
+438 1 n2-088.plc2.org sls= [439, 89] site= 290
+439 1 n2-089.plc2.org sls= [440, 90] site= 291
+440 1 n2-090.plc2.org sls= [441, 91] site= 292
+441 1 n2-091.plc2.org sls= [442, 92] site= 293
+442 1 n2-092.plc2.org sls= [443, 93] site= 294
+443 1 n2-093.plc2.org sls= [444, 94] site= 295
+444 1 n2-094.plc2.org sls= [445, 95] site= 296
+445 1 n2-095.plc2.org sls= [446, 96] site= 297
+446 1 n2-096.plc2.org sls= [447, 97] site= 298
+447 1 n2-097.plc2.org sls= [448, 98] site= 299
+448 1 n2-098.plc2.org sls= [449, 99] site= 300
+449 1 n2-099.plc2.org sls= [450, 100] site= 301
+450 1 n2-100.plc2.org sls= [451, 101] site= 302
+451 1 n2-101.plc2.org sls= [452, 102] site= 303
+452 1 n2-102.plc2.org sls= [453, 103] site= 304
+453 1 n2-103.plc2.org sls= [454, 104] site= 305
+454 1 n2-104.plc2.org sls= [455, 105] site= 306
+455 1 n2-105.plc2.org sls= [456, 106] site= 307
+456 1 n2-106.plc2.org sls= [457, 107] site= 308
+457 1 n2-107.plc2.org sls= [458, 108] site= 309
+458 1 n2-108.plc2.org sls= [459, 109] site= 310
+459 1 n2-109.plc2.org sls= [460, 110] site= 311
+460 1 n2-110.plc2.org sls= [461, 111] site= 312
+461 1 n2-111.plc2.org sls= [462, 112] site= 313
+462 1 n2-112.plc2.org sls= [463, 113] site= 314
+463 1 n2-113.plc2.org sls= [464, 114] site= 315
+464 1 n2-114.plc2.org sls= [465, 115] site= 316
+465 1 n2-115.plc2.org sls= [466, 116] site= 317
+466 1 n2-116.plc2.org sls= [467, 117] site= 318
+467 1 n2-117.plc2.org sls= [468, 118] site= 319
+468 1 n2-118.plc2.org sls= [469, 119] site= 320
+469 1 n2-119.plc2.org sls= [470, 120] site= 321
+470 1 n2-120.plc2.org sls= [471, 121] site= 322
+471 1 n2-121.plc2.org sls= [472, 122] site= 323
+472 1 n2-122.plc2.org sls= [473, 123] site= 324
+473 1 n2-123.plc2.org sls= [474, 124] site= 325
+474 1 n2-124.plc2.org sls= [475, 125] site= 326
+475 1 n2-125.plc2.org sls= [476, 126] site= 327
+476 1 n2-126.plc2.org sls= [477, 127] site= 328
+477 1 n2-127.plc2.org sls= [478, 128] site= 329
+478 1 n2-128.plc2.org sls= [479, 129] site= 330
+479 1 n2-129.plc2.org sls= [480, 130] site= 331
+480 1 n2-130.plc2.org sls= [481, 131] site= 332
+481 1 n2-131.plc2.org sls= [482, 132] site= 333
+482 1 n2-132.plc2.org sls= [483, 133] site= 334
+483 1 n2-133.plc2.org sls= [484, 134] site= 335
+484 1 n2-134.plc2.org sls= [485, 135] site= 336
+485 1 n2-135.plc2.org sls= [486, 136] site= 337
+486 1 n2-136.plc2.org sls= [487, 137] site= 338
+487 1 n2-137.plc2.org sls= [488, 138] site= 339
+488 1 n2-138.plc2.org sls= [489, 139] site= 340
+489 1 n2-139.plc2.org sls= [490, 140] site= 341
+490 1 n2-140.plc2.org sls= [491, 141] site= 342
+491 1 n2-141.plc2.org sls= [492, 142] site= 343
+492 1 n2-142.plc2.org sls= [493, 143] site= 344
+493 1 n2-143.plc2.org sls= [494, 144] site= 345
+494 1 n2-144.plc2.org sls= [495, 145] site= 346
+495 1 n2-145.plc2.org sls= [496, 146] site= 347
+496 1 n2-146.plc2.org sls= [497, 147] site= 348
+497 1 n2-147.plc2.org sls= [498, 148] site= 349
+498 1 n2-148.plc2.org sls= [499, 149] site= 350
+499 1 n2-149.plc2.org sls= [500, 150] site= 351
+500 1 n2-150.plc2.org sls= [501, 151] site= 352
+501 1 n2-151.plc2.org sls= [152] site= 353
+502 1 n2-152.plc2.org sls= [153] site= 354
+503 1 n2-153.plc2.org sls= [154] site= 355
+504 1 n2-154.plc2.org sls= [155] site= 356
+505 1 n2-155.plc2.org sls= [156] site= 357
+506 1 n2-156.plc2.org sls= [157] site= 358
+507 1 n2-157.plc2.org sls= [158] site= 359
+508 1 n2-158.plc2.org sls= [159] site= 360
+509 1 n2-159.plc2.org sls= [160] site= 361
+510 1 n2-160.plc2.org sls= [161] site= 362
+511 1 n2-161.plc2.org sls= [162] site= 363
+512 1 n2-162.plc2.org sls= [163] site= 364
+513 1 n2-163.plc2.org sls= [164] site= 365
+514 1 n2-164.plc2.org sls= [165] site= 366
+515 1 n2-165.plc2.org sls= [166] site= 367
+516 1 n2-166.plc2.org sls= [167] site= 368
+517 1 n2-167.plc2.org sls= [168] site= 369
+518 1 n2-168.plc2.org sls= [169] site= 370
+519 1 n2-169.plc2.org sls= [170] site= 371
+520 1 n2-170.plc2.org sls= [171] site= 372
+521 1 n2-171.plc2.org sls= [172] site= 373
+522 1 n2-172.plc2.org sls= [173] site= 374
+523 1 n2-173.plc2.org sls= [174] site= 375
+524 1 n2-174.plc2.org sls= [175] site= 376
+525 1 n2-175.plc2.org sls= [176] site= 377
+526 1 n2-176.plc2.org sls= [177] site= 378
+527 1 n2-177.plc2.org sls= [178] site= 379
+528 1 n2-178.plc2.org sls= [179] site= 380
+529 1 n2-179.plc2.org sls= [180] site= 381
+530 1 n2-180.plc2.org sls= [181] site= 382
+531 1 n2-181.plc2.org sls= [182] site= 383
+532 1 n2-182.plc2.org sls= [183] site= 384
+533 1 n2-183.plc2.org sls= [184] site= 385
+534 1 n2-184.plc2.org sls= [185] site= 386
+535 1 n2-185.plc2.org sls= [186] site= 387
+536 1 n2-186.plc2.org sls= [187] site= 388
+537 1 n2-187.plc2.org sls= [188] site= 389
+538 1 n2-188.plc2.org sls= [189] site= 390
+539 1 n2-189.plc2.org sls= [190] site= 391
+540 1 n2-190.plc2.org sls= [191] site= 392
+541 1 n2-191.plc2.org sls= [192] site= 393
+542 1 n2-192.plc2.org sls= [193] site= 394
+543 1 n2-193.plc2.org sls= [194] site= 395
+544 1 n2-194.plc2.org sls= [195] site= 396
+545 1 n2-195.plc2.org sls= [196] site= 397
+546 1 n2-196.plc2.org sls= [197] site= 398
+547 1 n2-197.plc2.org sls= [198] site= 399
+548 1 n2-198.plc2.org sls= [199] site= 400
+549 1 n2-199.plc2.org sls= [200] site= 401
+550 1 n2-200.plc2.org sls= [201] site= 402
+551 1 n2-201.plc2.org sls= [202] site= 203
+552 1 n2-202.plc2.org sls= [203] site= 204
+553 1 n2-203.plc2.org sls= [204] site= 205
+554 1 n2-204.plc2.org sls= [205] site= 206
+555 1 n2-205.plc2.org sls= [206] site= 207
+556 1 n2-206.plc2.org sls= [207] site= 208
+557 1 n2-207.plc2.org sls= [208] site= 209
+558 1 n2-208.plc2.org sls= [209] site= 210
+559 1 n2-209.plc2.org sls= [210] site= 211
+560 1 n2-210.plc2.org sls= [211] site= 212
+561 1 n2-211.plc2.org sls= [212] site= 213
+562 1 n2-212.plc2.org sls= [213] site= 214
+563 1 n2-213.plc2.org sls= [214] site= 215
+564 1 n2-214.plc2.org sls= [215] site= 216
+565 1 n2-215.plc2.org sls= [216] site= 217
+566 1 n2-216.plc2.org sls= [217] site= 218
+567 1 n2-217.plc2.org sls= [218] site= 219
+568 1 n2-218.plc2.org sls= [219] site= 220
+569 1 n2-219.plc2.org sls= [220] site= 221
+570 1 n2-220.plc2.org sls= [221] site= 222
+571 1 n2-221.plc2.org sls= [222] site= 223
+572 1 n2-222.plc2.org sls= [223] site= 224
+573 1 n2-223.plc2.org sls= [224] site= 225
+574 1 n2-224.plc2.org sls= [225] site= 226
+575 1 n2-225.plc2.org sls= [226] site= 227
+576 1 n2-226.plc2.org sls= [227] site= 228
+577 1 n2-227.plc2.org sls= [228] site= 229
+578 1 n2-228.plc2.org sls= [229] site= 230
+579 1 n2-229.plc2.org sls= [230] site= 231
+580 1 n2-230.plc2.org sls= [231] site= 232
+581 1 n2-231.plc2.org sls= [232] site= 233
+582 1 n2-232.plc2.org sls= [233] site= 234
+583 1 n2-233.plc2.org sls= [234] site= 235
+584 1 n2-234.plc2.org sls= [235] site= 236
+585 1 n2-235.plc2.org sls= [236] site= 237
+586 1 n2-236.plc2.org sls= [237] site= 238
+587 1 n2-237.plc2.org sls= [238] site= 239
+588 1 n2-238.plc2.org sls= [239] site= 240
+589 1 n2-239.plc2.org sls= [240] site= 241
+590 1 n2-240.plc2.org sls= [241] site= 242
+591 1 n2-241.plc2.org sls= [242] site= 243
+592 1 n2-242.plc2.org sls= [243] site= 244
+593 1 n2-243.plc2.org sls= [244] site= 245
+594 1 n2-244.plc2.org sls= [245] site= 246
+595 1 n2-245.plc2.org sls= [246] site= 247
+596 1 n2-246.plc2.org sls= [247] site= 248
+597 1 n2-247.plc2.org sls= [248] site= 249
+598 1 n2-248.plc2.org sls= [249] site= 250
+599 1 n2-249.plc2.org sls= [250] site= 251
+600 1 n2-250.plc2.org sls= [251] site= 252
+601 1 n2-251.plc2.org sls= [252] site= 253
+602 1 n2-252.plc2.org sls= [253] site= 254
+603 1 n2-253.plc2.org sls= [254] site= 255
+604 1 n2-254.plc2.org sls= [255] site= 256
+605 1 n2-255.plc2.org sls= [256] site= 257
+606 1 n2-256.plc2.org sls= [257] site= 258
+607 1 n2-257.plc2.org sls= [258] site= 259
+608 1 n2-258.plc2.org sls= [259] site= 260
+609 1 n2-259.plc2.org sls= [260] site= 261
+610 1 n2-260.plc2.org sls= [261] site= 262
+611 1 n2-261.plc2.org sls= [262] site= 263
+612 1 n2-262.plc2.org sls= [263] site= 264
+613 1 n2-263.plc2.org sls= [264] site= 265
+614 1 n2-264.plc2.org sls= [265] site= 266
+615 1 n2-265.plc2.org sls= [266] site= 267
+616 1 n2-266.plc2.org sls= [267] site= 268
+617 1 n2-267.plc2.org sls= [268] site= 269
+618 1 n2-268.plc2.org sls= [269] site= 270
+619 1 n2-269.plc2.org sls= [270] site= 271
+620 1 n2-270.plc2.org sls= [271] site= 272
+621 1 n2-271.plc2.org sls= [272] site= 273
+622 1 n2-272.plc2.org sls= [273] site= 274
+623 1 n2-273.plc2.org sls= [274] site= 275
+624 1 n2-274.plc2.org sls= [275] site= 276
+625 1 n2-275.plc2.org sls= [276] site= 277
+626 1 n2-276.plc2.org sls= [277] site= 278
+627 1 n2-277.plc2.org sls= [278] site= 279
+628 1 n2-278.plc2.org sls= [279] site= 280
+629 1 n2-279.plc2.org sls= [280] site= 281
+630 1 n2-280.plc2.org sls= [281] site= 282
+631 1 n2-281.plc2.org sls= [282] site= 283
+632 1 n2-282.plc2.org sls= [283] site= 284
+633 1 n2-283.plc2.org sls= [284] site= 285
+634 1 n2-284.plc2.org sls= [285] site= 286
+635 1 n2-285.plc2.org sls= [286] site= 287
+636 1 n2-286.plc2.org sls= [287] site= 288
+637 1 n2-287.plc2.org sls= [288] site= 289
+638 1 n2-288.plc2.org sls= [289] site= 290
+639 1 n2-289.plc2.org sls= [290] site= 291
+640 1 n2-290.plc2.org sls= [291] site= 292
+641 1 n2-291.plc2.org sls= [292] site= 293
+642 1 n2-292.plc2.org sls= [293] site= 294
+643 1 n2-293.plc2.org sls= [294] site= 295
+644 1 n2-294.plc2.org sls= [295] site= 296
+645 1 n2-295.plc2.org sls= [296] site= 297
+646 1 n2-296.plc2.org sls= [297] site= 298
+647 1 n2-297.plc2.org sls= [298] site= 299
+648 1 n2-298.plc2.org sls= [299] site= 300
+649 1 n2-299.plc2.org sls= [300] site= 301
+650 1 n2-300.plc2.org sls= [301] site= 302
+651 1 n2-301.plc2.org sls= [302] site= 303
+652 1 n2-302.plc2.org sls= [303] site= 304
+653 1 n2-303.plc2.org sls= [304] site= 305
+654 1 n2-304.plc2.org sls= [305] site= 306
+655 1 n2-305.plc2.org sls= [306] site= 307
+656 1 n2-306.plc2.org sls= [307] site= 308
+657 1 n2-307.plc2.org sls= [308] site= 309
+658 1 n2-308.plc2.org sls= [309] site= 310
+659 1 n2-309.plc2.org sls= [310] site= 311
+660 1 n2-310.plc2.org sls= [311] site= 312
+661 1 n2-311.plc2.org sls= [312] site= 313
+662 1 n2-312.plc2.org sls= [313] site= 314
+663 1 n2-313.plc2.org sls= [314] site= 315
+664 1 n2-314.plc2.org sls= [315] site= 316
+665 1 n2-315.plc2.org sls= [316] site= 317
+666 1 n2-316.plc2.org sls= [317] site= 318
+667 1 n2-317.plc2.org sls= [318] site= 319
+668 1 n2-318.plc2.org sls= [319] site= 320
+669 1 n2-319.plc2.org sls= [320] site= 321
+670 1 n2-320.plc2.org sls= [321] site= 322
+671 1 n2-321.plc2.org sls= [322] site= 323
+672 1 n2-322.plc2.org sls= [323] site= 324
+673 1 n2-323.plc2.org sls= [324] site= 325
+674 1 n2-324.plc2.org sls= [325] site= 326
+675 1 n2-325.plc2.org sls= [326] site= 327
+676 1 n2-326.plc2.org sls= [327] site= 328
+677 1 n2-327.plc2.org sls= [328] site= 329
+678 1 n2-328.plc2.org sls= [329] site= 330
+679 1 n2-329.plc2.org sls= [330] site= 331
+680 1 n2-330.plc2.org sls= [331] site= 332
+681 1 n2-331.plc2.org sls= [332] site= 333
+682 1 n2-332.plc2.org sls= [333] site= 334
+683 1 n2-333.plc2.org sls= [334] site= 335
+684 1 n2-334.plc2.org sls= [335] site= 336
+685 1 n2-335.plc2.org sls= [336] site= 337
+686 1 n2-336.plc2.org sls= [337] site= 338
+687 1 n2-337.plc2.org sls= [338] site= 339
+688 1 n2-338.plc2.org sls= [339] site= 340
+689 1 n2-339.plc2.org sls= [340] site= 341
+690 1 n2-340.plc2.org sls= [341] site= 342
+691 1 n2-341.plc2.org sls= [342] site= 343
+692 1 n2-342.plc2.org sls= [343] site= 344
+693 1 n2-343.plc2.org sls= [344] site= 345
+694 1 n2-344.plc2.org sls= [345] site= 346
+695 1 n2-345.plc2.org sls= [346] site= 347
+696 1 n2-346.plc2.org sls= [347] site= 348
+697 1 n2-347.plc2.org sls= [348] site= 349
+698 1 n2-348.plc2.org sls= [349] site= 350
+699 1 n2-349.plc2.org sls= [350] site= 351
+700 1 n2-350.plc2.org sls= [351] site= 352
+01: SLICES
+name: plc1_netflow id: 01 peer: None nodes= [] persons= []
+--- sa_ids= [1, 2, 3, 4, 5] creator:   1
+--- 'expires': 1183553992
+name: oneb_slice1  id: 02 peer: None nodes= [351, 1] persons= [6, 5, 4]
+--- sa_ids= [6, 7, 8, 9] creator:   1
+--- 'expires': 1183554314
+name: onec_slice2  id: 03 peer: None nodes= [352, 2] persons= [7, 6, 5]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554314
+name: oned_slice3  id: 04 peer: None nodes= [353, 3] persons= [8, 7, 6]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554314
+name: onee_slice4  id: 05 peer: None nodes= [354, 4] persons= [9, 8, 7]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554314
+name: onef_slice5  id: 06 peer: None nodes= [355, 5] persons= [10, 9, 8]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554314
+name: oneg_slice6  id: 07 peer: None nodes= [356, 6] persons= [11, 10, 9]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554315
+name: oneh_slice7  id: 08 peer: None nodes= [357, 7] persons= [12, 11, 10]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554315
+name: onei_slice8  id: 09 peer: None nodes= [358, 8] persons= [13, 12, 11]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554315
+name: onej_slice9  id: 10 peer: None nodes= [359, 9] persons= [14, 13, 12]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554315
+name: oneba_slice10 id: 11 peer: None nodes= [360, 10] persons= [15, 14, 13]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554315
+name: onebb_slice11 id: 12 peer: None nodes= [361, 11] persons= [16, 15, 14]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554315
+name: onebc_slice12 id: 13 peer: None nodes= [362, 12] persons= [17, 16, 15]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554315
+name: onebd_slice13 id: 14 peer: None nodes= [363, 13] persons= [18, 17, 16]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554315
+name: onebe_slice14 id: 15 peer: None nodes= [364, 14] persons= [19, 18, 17]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554315
+name: onebf_slice15 id: 16 peer: None nodes= [365, 15] persons= [20, 19, 18]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554316
+name: onebg_slice16 id: 17 peer: None nodes= [366, 16] persons= [21, 20, 19]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554316
+name: onebh_slice17 id: 18 peer: None nodes= [367, 17] persons= [22, 21, 20]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554316
+name: onebi_slice18 id: 19 peer: None nodes= [368, 18] persons= [23, 22, 21]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554316
+name: onebj_slice19 id: 20 peer: None nodes= [369, 19] persons= [24, 23, 22]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554316
+name: oneca_slice20 id: 21 peer: None nodes= [370, 20] persons= [25, 24, 23]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554316
+name: onecb_slice21 id: 22 peer: None nodes= [371, 21] persons= [26, 25, 24]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554316
+name: onecc_slice22 id: 23 peer: None nodes= [372, 22] persons= [27, 26, 25]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554316
+name: onecd_slice23 id: 24 peer: None nodes= [373, 23] persons= [28, 27, 26]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554316
+name: onece_slice24 id: 25 peer: None nodes= [374, 24] persons= [29, 28, 27]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554317
+name: onecf_slice25 id: 26 peer: None nodes= [375, 25] persons= [30, 29, 28]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554317
+name: onecg_slice26 id: 27 peer: None nodes= [376, 26] persons= [31, 30, 29]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554317
+name: onech_slice27 id: 28 peer: None nodes= [377, 27] persons= [32, 31, 30]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554317
+name: oneci_slice28 id: 29 peer: None nodes= [378, 28] persons= [33, 32, 31]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554317
+name: onecj_slice29 id: 30 peer: None nodes= [379, 29] persons= [34, 33, 32]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554317
+name: oneda_slice30 id: 31 peer: None nodes= [380, 30] persons= [35, 34, 33]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554317
+name: onedb_slice31 id: 32 peer: None nodes= [381, 31] persons= [36, 35, 34]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554317
+name: onedc_slice32 id: 33 peer: None nodes= [382, 32] persons= [37, 36, 35]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554318
+name: onedd_slice33 id: 34 peer: None nodes= [383, 33] persons= [38, 37, 36]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554318
+name: onede_slice34 id: 35 peer: None nodes= [384, 34] persons= [39, 38, 37]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554318
+name: onedf_slice35 id: 36 peer: None nodes= [385, 35] persons= [40, 39, 38]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554318
+name: onedg_slice36 id: 37 peer: None nodes= [386, 36] persons= [41, 40, 39]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554318
+name: onedh_slice37 id: 38 peer: None nodes= [387, 37] persons= [42, 41, 40]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554318
+name: onedi_slice38 id: 39 peer: None nodes= [388, 38] persons= [43, 42, 41]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554318
+name: onedj_slice39 id: 40 peer: None nodes= [389, 39] persons= [44, 43, 42]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554318
+name: oneea_slice40 id: 41 peer: None nodes= [390, 40] persons= [45, 44, 43]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554318
+name: oneeb_slice41 id: 42 peer: None nodes= [391, 41] persons= [46, 45, 44]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554319
+name: oneec_slice42 id: 43 peer: None nodes= [392, 42] persons= [47, 46, 45]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554319
+name: oneed_slice43 id: 44 peer: None nodes= [393, 43] persons= [48, 47, 46]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554319
+name: oneee_slice44 id: 45 peer: None nodes= [394, 44] persons= [49, 48, 47]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554319
+name: oneef_slice45 id: 46 peer: None nodes= [395, 45] persons= [50, 49, 48]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554319
+name: oneeg_slice46 id: 47 peer: None nodes= [396, 46] persons= [51, 50, 49]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554319
+name: oneeh_slice47 id: 48 peer: None nodes= [397, 47] persons= [52, 51, 50]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554319
+name: oneei_slice48 id: 49 peer: None nodes= [398, 48] persons= [53, 52, 51]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554319
+name: oneej_slice49 id: 50 peer: None nodes= [399, 49] persons= [54, 53, 52]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554319
+name: onefa_slice50 id: 51 peer: None nodes= [400, 50] persons= [55, 54, 53]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554320
+name: onefb_slice51 id: 52 peer: None nodes= [401, 51] persons= [56, 55, 54]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554320
+name: onefc_slice52 id: 53 peer: None nodes= [402, 52] persons= [57, 56, 55]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554320
+name: onefd_slice53 id: 54 peer: None nodes= [403, 53] persons= [58, 57, 56]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554320
+name: onefe_slice54 id: 55 peer: None nodes= [404, 54] persons= [59, 58, 57]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554320
+name: oneff_slice55 id: 56 peer: None nodes= [405, 55] persons= [60, 59, 58]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554320
+name: onefg_slice56 id: 57 peer: None nodes= [406, 56] persons= [61, 60, 59]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554320
+name: onefh_slice57 id: 58 peer: None nodes= [407, 57] persons= [62, 61, 60]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554320
+name: onefi_slice58 id: 59 peer: None nodes= [408, 58] persons= [63, 62, 61]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554321
+name: onefj_slice59 id: 60 peer: None nodes= [409, 59] persons= [64, 63, 62]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554321
+name: onega_slice60 id: 61 peer: None nodes= [410, 60] persons= [65, 64, 63]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554321
+name: onegb_slice61 id: 62 peer: None nodes= [411, 61] persons= [66, 65, 64]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554321
+name: onegc_slice62 id: 63 peer: None nodes= [412, 62] persons= [67, 66, 65]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554321
+name: onegd_slice63 id: 64 peer: None nodes= [413, 63] persons= [68, 67, 66]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554321
+name: onege_slice64 id: 65 peer: None nodes= [414, 64] persons= [69, 68, 67]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554321
+name: onegf_slice65 id: 66 peer: None nodes= [415, 65] persons= [70, 69, 68]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554321
+name: onegg_slice66 id: 67 peer: None nodes= [416, 66] persons= [71, 70, 69]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554321
+name: onegh_slice67 id: 68 peer: None nodes= [417, 67] persons= [72, 71, 70]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554322
+name: onegi_slice68 id: 69 peer: None nodes= [418, 68] persons= [73, 72, 71]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554322
+name: onegj_slice69 id: 70 peer: None nodes= [419, 69] persons= [74, 73, 72]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554322
+name: oneha_slice70 id: 71 peer: None nodes= [420, 70] persons= [75, 74, 73]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554322
+name: onehb_slice71 id: 72 peer: None nodes= [421, 71] persons= [76, 75, 74]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554322
+name: onehc_slice72 id: 73 peer: None nodes= [422, 72] persons= [77, 76, 75]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554322
+name: onehd_slice73 id: 74 peer: None nodes= [423, 73] persons= [78, 77, 76]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554322
+name: onehe_slice74 id: 75 peer: None nodes= [424, 74] persons= [79, 78, 77]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554322
+name: onehf_slice75 id: 76 peer: None nodes= [425, 75] persons= [80, 79, 78]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554323
+name: onehg_slice76 id: 77 peer: None nodes= [426, 76] persons= [81, 80, 79]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554323
+name: onehh_slice77 id: 78 peer: None nodes= [427, 77] persons= [82, 81, 80]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554323
+name: onehi_slice78 id: 79 peer: None nodes= [428, 78] persons= [83, 82, 81]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554323
+name: onehj_slice79 id: 80 peer: None nodes= [429, 79] persons= [84, 83, 82]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554323
+name: oneia_slice80 id: 81 peer: None nodes= [430, 80] persons= [85, 84, 83]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554323
+name: oneib_slice81 id: 82 peer: None nodes= [431, 81] persons= [86, 85, 84]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554323
+name: oneic_slice82 id: 83 peer: None nodes= [432, 82] persons= [87, 86, 85]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554323
+name: oneid_slice83 id: 84 peer: None nodes= [433, 83] persons= [88, 87, 86]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554324
+name: oneie_slice84 id: 85 peer: None nodes= [434, 84] persons= [89, 88, 87]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554324
+name: oneif_slice85 id: 86 peer: None nodes= [435, 85] persons= [90, 89, 88]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554324
+name: oneig_slice86 id: 87 peer: None nodes= [436, 86] persons= [91, 90, 89]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554324
+name: oneih_slice87 id: 88 peer: None nodes= [437, 87] persons= [92, 91, 90]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554324
+name: oneii_slice88 id: 89 peer: None nodes= [438, 88] persons= [93, 92, 91]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554324
+name: oneij_slice89 id: 90 peer: None nodes= [439, 89] persons= [94, 93, 92]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554324
+name: oneja_slice90 id: 91 peer: None nodes= [440, 90] persons= [95, 94, 93]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554324
+name: onejb_slice91 id: 92 peer: None nodes= [441, 91] persons= [96, 95, 94]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554324
+name: onejc_slice92 id: 93 peer: None nodes= [442, 92] persons= [97, 96, 95]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554325
+name: onejd_slice93 id: 94 peer: None nodes= [443, 93] persons= [98, 97, 96]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554325
+name: oneje_slice94 id: 95 peer: None nodes= [444, 94] persons= [99, 98, 97]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554325
+name: onejf_slice95 id: 96 peer: None nodes= [445, 95] persons= [100, 99, 98]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554325
+name: onejg_slice96 id: 97 peer: None nodes= [446, 96] persons= [101, 100, 99]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554325
+name: onejh_slice97 id: 98 peer: None nodes= [447, 97] persons= [102, 101, 100]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554325
+name: oneji_slice98 id: 99 peer: None nodes= [448, 98] persons= [103, 102, 101]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554325
+name: onejj_slice99 id: 100 peer: None nodes= [449, 99] persons= [104, 103, 102]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554325
+name: onebaa_slice100 id: 101 peer: None nodes= [450, 100] persons= [105, 104, 103]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554326
+name: onebab_slice101 id: 102 peer: None nodes= [451, 101] persons= [106, 105, 104]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554326
+name: onebac_slice102 id: 103 peer: None nodes= [452, 102] persons= [107, 106, 105]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554326
+name: onebad_slice103 id: 104 peer: None nodes= [453, 103] persons= [108, 107, 106]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554326
+name: onebae_slice104 id: 105 peer: None nodes= [454, 104] persons= [109, 108, 107]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554326
+name: onebaf_slice105 id: 106 peer: None nodes= [455, 105] persons= [110, 109, 108]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554326
+name: onebag_slice106 id: 107 peer: None nodes= [456, 106] persons= [111, 110, 109]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554326
+name: onebah_slice107 id: 108 peer: None nodes= [457, 107] persons= [112, 111, 110]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554326
+name: onebai_slice108 id: 109 peer: None nodes= [458, 108] persons= [113, 112, 111]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554327
+name: onebaj_slice109 id: 110 peer: None nodes= [459, 109] persons= [114, 113, 112]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554327
+name: onebba_slice110 id: 111 peer: None nodes= [460, 110] persons= [115, 114, 113]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554327
+name: onebbb_slice111 id: 112 peer: None nodes= [461, 111] persons= [116, 115, 114]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554327
+name: onebbc_slice112 id: 113 peer: None nodes= [462, 112] persons= [117, 116, 115]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554327
+name: onebbd_slice113 id: 114 peer: None nodes= [463, 113] persons= [118, 117, 116]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554327
+name: onebbe_slice114 id: 115 peer: None nodes= [464, 114] persons= [119, 118, 117]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554327
+name: onebbf_slice115 id: 116 peer: None nodes= [465, 115] persons= [120, 119, 118]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554327
+name: onebbg_slice116 id: 117 peer: None nodes= [466, 116] persons= [121, 120, 119]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554327
+name: onebbh_slice117 id: 118 peer: None nodes= [467, 117] persons= [122, 121, 120]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554328
+name: onebbi_slice118 id: 119 peer: None nodes= [468, 118] persons= [123, 122, 121]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554328
+name: onebbj_slice119 id: 120 peer: None nodes= [469, 119] persons= [124, 123, 122]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554328
+name: onebca_slice120 id: 121 peer: None nodes= [470, 120] persons= [125, 124, 123]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554328
+name: onebcb_slice121 id: 122 peer: None nodes= [471, 121] persons= [126, 125, 124]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554328
+name: onebcc_slice122 id: 123 peer: None nodes= [472, 122] persons= [127, 126, 125]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554328
+name: onebcd_slice123 id: 124 peer: None nodes= [473, 123] persons= [128, 127, 126]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554328
+name: onebce_slice124 id: 125 peer: None nodes= [474, 124] persons= [129, 128, 127]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554328
+name: onebcf_slice125 id: 126 peer: None nodes= [475, 125] persons= [130, 129, 128]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554329
+name: onebcg_slice126 id: 127 peer: None nodes= [476, 126] persons= [131, 130, 129]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554329
+name: onebch_slice127 id: 128 peer: None nodes= [477, 127] persons= [132, 131, 130]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554329
+name: onebci_slice128 id: 129 peer: None nodes= [478, 128] persons= [133, 132, 131]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554329
+name: onebcj_slice129 id: 130 peer: None nodes= [479, 129] persons= [134, 133, 132]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554329
+name: onebda_slice130 id: 131 peer: None nodes= [480, 130] persons= [135, 134, 133]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554329
+name: onebdb_slice131 id: 132 peer: None nodes= [481, 131] persons= [136, 135, 134]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554329
+name: onebdc_slice132 id: 133 peer: None nodes= [482, 132] persons= [137, 136, 135]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554329
+name: onebdd_slice133 id: 134 peer: None nodes= [483, 133] persons= [138, 137, 136]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554330
+name: onebde_slice134 id: 135 peer: None nodes= [484, 134] persons= [139, 138, 137]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554330
+name: onebdf_slice135 id: 136 peer: None nodes= [485, 135] persons= [140, 139, 138]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554330
+name: onebdg_slice136 id: 137 peer: None nodes= [486, 136] persons= [141, 140, 139]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554330
+name: onebdh_slice137 id: 138 peer: None nodes= [487, 137] persons= [142, 141, 140]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554330
+name: onebdi_slice138 id: 139 peer: None nodes= [488, 138] persons= [143, 142, 141]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554330
+name: onebdj_slice139 id: 140 peer: None nodes= [489, 139] persons= [144, 143, 142]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554330
+name: onebea_slice140 id: 141 peer: None nodes= [490, 140] persons= [145, 144, 143]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554330
+name: onebeb_slice141 id: 142 peer: None nodes= [491, 141] persons= [146, 145, 144]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554331
+name: onebec_slice142 id: 143 peer: None nodes= [492, 142] persons= [147, 146, 145]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554331
+name: onebed_slice143 id: 144 peer: None nodes= [493, 143] persons= [148, 147, 146]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554331
+name: onebee_slice144 id: 145 peer: None nodes= [494, 144] persons= [149, 148, 147]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554331
+name: onebef_slice145 id: 146 peer: None nodes= [495, 145] persons= [150, 149, 148]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554331
+name: onebeg_slice146 id: 147 peer: None nodes= [496, 146] persons= [151, 150, 149]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554331
+name: onebeh_slice147 id: 148 peer: None nodes= [497, 147] persons= [152, 151, 150]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554331
+name: onebei_slice148 id: 149 peer: None nodes= [498, 148] persons= [153, 152, 151]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554331
+name: onebej_slice149 id: 150 peer: None nodes= [499, 149] persons= [154, 153, 152]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554332
+name: onebfa_slice150 id: 151 peer: None nodes= [500, 150] persons= [155, 154, 153]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554332
+name: onebfb_slice151 id: 152 peer: None nodes= [501, 151] persons= [156, 155, 154]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554332
+name: onebfc_slice152 id: 153 peer: None nodes= [502, 152] persons= [157, 156, 155]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554332
+name: onebfd_slice153 id: 154 peer: None nodes= [503, 153] persons= [158, 157, 156]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554332
+name: onebfe_slice154 id: 155 peer: None nodes= [504, 154] persons= [159, 158, 157]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554332
+name: onebff_slice155 id: 156 peer: None nodes= [505, 155] persons= [160, 159, 158]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554332
+name: onebfg_slice156 id: 157 peer: None nodes= [506, 156] persons= [161, 160, 159]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554332
+name: onebfh_slice157 id: 158 peer: None nodes= [507, 157] persons= [162, 161, 160]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554333
+name: onebfi_slice158 id: 159 peer: None nodes= [508, 158] persons= [163, 162, 161]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554333
+name: onebfj_slice159 id: 160 peer: None nodes= [509, 159] persons= [164, 163, 162]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554333
+name: onebga_slice160 id: 161 peer: None nodes= [510, 160] persons= [165, 164, 163]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554333
+name: onebgb_slice161 id: 162 peer: None nodes= [511, 161] persons= [166, 165, 164]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554333
+name: onebgc_slice162 id: 163 peer: None nodes= [512, 162] persons= [167, 166, 165]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554333
+name: onebgd_slice163 id: 164 peer: None nodes= [513, 163] persons= [168, 167, 166]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554333
+name: onebge_slice164 id: 165 peer: None nodes= [514, 164] persons= [169, 168, 167]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554333
+name: onebgf_slice165 id: 166 peer: None nodes= [515, 165] persons= [170, 169, 168]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554334
+name: onebgg_slice166 id: 167 peer: None nodes= [516, 166] persons= [171, 170, 169]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554334
+name: onebgh_slice167 id: 168 peer: None nodes= [517, 167] persons= [172, 171, 170]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554334
+name: onebgi_slice168 id: 169 peer: None nodes= [518, 168] persons= [173, 172, 171]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554334
+name: onebgj_slice169 id: 170 peer: None nodes= [519, 169] persons= [174, 173, 172]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554334
+name: onebha_slice170 id: 171 peer: None nodes= [520, 170] persons= [175, 174, 173]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554334
+name: onebhb_slice171 id: 172 peer: None nodes= [521, 171] persons= [176, 175, 174]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554334
+name: onebhc_slice172 id: 173 peer: None nodes= [522, 172] persons= [177, 176, 175]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554334
+name: onebhd_slice173 id: 174 peer: None nodes= [523, 173] persons= [178, 177, 176]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554335
+name: onebhe_slice174 id: 175 peer: None nodes= [524, 174] persons= [179, 178, 177]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554335
+name: onebhf_slice175 id: 176 peer: None nodes= [525, 175] persons= [180, 179, 178]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554335
+name: onebhg_slice176 id: 177 peer: None nodes= [526, 176] persons= [181, 180, 179]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554335
+name: onebhh_slice177 id: 178 peer: None nodes= [527, 177] persons= [182, 181, 180]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554335
+name: onebhi_slice178 id: 179 peer: None nodes= [528, 178] persons= [183, 182, 181]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554335
+name: onebhj_slice179 id: 180 peer: None nodes= [529, 179] persons= [184, 183, 182]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554335
+name: onebia_slice180 id: 181 peer: None nodes= [530, 180] persons= [185, 184, 183]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554335
+name: onebib_slice181 id: 182 peer: None nodes= [531, 181] persons= [186, 185, 184]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554336
+name: onebic_slice182 id: 183 peer: None nodes= [532, 182] persons= [187, 186, 185]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554336
+name: onebid_slice183 id: 184 peer: None nodes= [533, 183] persons= [188, 187, 186]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554336
+name: onebie_slice184 id: 185 peer: None nodes= [534, 184] persons= [189, 188, 187]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554336
+name: onebif_slice185 id: 186 peer: None nodes= [535, 185] persons= [190, 189, 188]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554336
+name: onebig_slice186 id: 187 peer: None nodes= [536, 186] persons= [191, 190, 189]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554336
+name: onebih_slice187 id: 188 peer: None nodes= [537, 187] persons= [192, 191, 190]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554336
+name: onebii_slice188 id: 189 peer: None nodes= [538, 188] persons= [193, 192, 191]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554336
+name: onebij_slice189 id: 190 peer: None nodes= [539, 189] persons= [194, 193, 192]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554337
+name: onebja_slice190 id: 191 peer: None nodes= [540, 190] persons= [195, 194, 193]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554337
+name: onebjb_slice191 id: 192 peer: None nodes= [541, 191] persons= [196, 195, 194]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554337
+name: onebjc_slice192 id: 193 peer: None nodes= [542, 192] persons= [197, 196, 195]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554337
+name: onebjd_slice193 id: 194 peer: None nodes= [543, 193] persons= [198, 197, 196]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554337
+name: onebje_slice194 id: 195 peer: None nodes= [544, 194] persons= [199, 198, 197]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554337
+name: onebjf_slice195 id: 196 peer: None nodes= [545, 195] persons= [200, 199, 198]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554337
+name: onebjg_slice196 id: 197 peer: None nodes= [546, 196] persons= [201, 200, 199]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554337
+name: onebjh_slice197 id: 198 peer: None nodes= [547, 197] persons= [202, 201, 200]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554338
+name: onebji_slice198 id: 199 peer: None nodes= [548, 198] persons= [203, 202, 201]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554338
+name: onebjj_slice199 id: 200 peer: None nodes= [549, 199] persons= [204, 203, 202]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554338
+name: onecaa_slice200 id: 201 peer: None nodes= [550, 200] persons= [205, 204, 203]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554338
+name: oneb_slice201 id: 202 peer: None nodes= [551, 201] persons= [206, 205, 204]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554338
+name: onec_slice202 id: 203 peer: None nodes= [552, 202] persons= [207, 206, 205]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554338
+name: oned_slice203 id: 204 peer: None nodes= [553, 203] persons= [208, 207, 206]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554338
+name: onee_slice204 id: 205 peer: None nodes= [554, 204] persons= [209, 208, 207]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554339
+name: onef_slice205 id: 206 peer: None nodes= [555, 205] persons= [210, 209, 208]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554339
+name: oneg_slice206 id: 207 peer: None nodes= [556, 206] persons= [211, 210, 209]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554339
+name: oneh_slice207 id: 208 peer: None nodes= [557, 207] persons= [212, 211, 210]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554339
+name: onei_slice208 id: 209 peer: None nodes= [558, 208] persons= [213, 212, 211]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554339
+name: onej_slice209 id: 210 peer: None nodes= [559, 209] persons= [214, 213, 212]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554339
+name: oneba_slice210 id: 211 peer: None nodes= [560, 210] persons= [215, 214, 213]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554339
+name: onebb_slice211 id: 212 peer: None nodes= [561, 211] persons= [216, 215, 214]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554339
+name: onebc_slice212 id: 213 peer: None nodes= [562, 212] persons= [217, 216, 215]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554340
+name: onebd_slice213 id: 214 peer: None nodes= [563, 213] persons= [218, 217, 216]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554340
+name: onebe_slice214 id: 215 peer: None nodes= [564, 214] persons= [219, 218, 217]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554340
+name: onebf_slice215 id: 216 peer: None nodes= [565, 215] persons= [220, 219, 218]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554340
+name: onebg_slice216 id: 217 peer: None nodes= [566, 216] persons= [221, 220, 219]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554340
+name: onebh_slice217 id: 218 peer: None nodes= [567, 217] persons= [222, 221, 220]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554340
+name: onebi_slice218 id: 219 peer: None nodes= [568, 218] persons= [223, 222, 221]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554340
+name: onebj_slice219 id: 220 peer: None nodes= [569, 219] persons= [224, 223, 222]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554340
+name: oneca_slice220 id: 221 peer: None nodes= [570, 220] persons= [225, 224, 223]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554341
+name: onecb_slice221 id: 222 peer: None nodes= [571, 221] persons= [226, 225, 224]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554341
+name: onecc_slice222 id: 223 peer: None nodes= [572, 222] persons= [227, 226, 225]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554341
+name: onecd_slice223 id: 224 peer: None nodes= [573, 223] persons= [228, 227, 226]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554341
+name: onece_slice224 id: 225 peer: None nodes= [574, 224] persons= [229, 228, 227]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554341
+name: onecf_slice225 id: 226 peer: None nodes= [575, 225] persons= [230, 229, 228]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554341
+name: onecg_slice226 id: 227 peer: None nodes= [576, 226] persons= [231, 230, 229]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554341
+name: onech_slice227 id: 228 peer: None nodes= [577, 227] persons= [232, 231, 230]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554341
+name: oneci_slice228 id: 229 peer: None nodes= [578, 228] persons= [233, 232, 231]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554342
+name: onecj_slice229 id: 230 peer: None nodes= [579, 229] persons= [234, 233, 232]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554342
+name: oneda_slice230 id: 231 peer: None nodes= [580, 230] persons= [235, 234, 233]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554342
+name: onedb_slice231 id: 232 peer: None nodes= [581, 231] persons= [236, 235, 234]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554342
+name: onedc_slice232 id: 233 peer: None nodes= [582, 232] persons= [237, 236, 235]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554342
+name: onedd_slice233 id: 234 peer: None nodes= [583, 233] persons= [238, 237, 236]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554342
+name: onede_slice234 id: 235 peer: None nodes= [584, 234] persons= [239, 238, 237]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554342
+name: onedf_slice235 id: 236 peer: None nodes= [585, 235] persons= [240, 239, 238]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554343
+name: onedg_slice236 id: 237 peer: None nodes= [586, 236] persons= [241, 240, 239]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554343
+name: onedh_slice237 id: 238 peer: None nodes= [587, 237] persons= [242, 241, 240]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554343
+name: onedi_slice238 id: 239 peer: None nodes= [588, 238] persons= [243, 242, 241]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554343
+name: onedj_slice239 id: 240 peer: None nodes= [589, 239] persons= [244, 243, 242]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554343
+name: oneea_slice240 id: 241 peer: None nodes= [590, 240] persons= [245, 244, 243]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554343
+name: oneeb_slice241 id: 242 peer: None nodes= [591, 241] persons= [246, 245, 244]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554343
+name: oneec_slice242 id: 243 peer: None nodes= [592, 242] persons= [247, 246, 245]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554343
+name: oneed_slice243 id: 244 peer: None nodes= [593, 243] persons= [248, 247, 246]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554344
+name: oneee_slice244 id: 245 peer: None nodes= [594, 244] persons= [249, 248, 247]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554344
+name: oneef_slice245 id: 246 peer: None nodes= [595, 245] persons= [250, 249, 248]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554344
+name: oneeg_slice246 id: 247 peer: None nodes= [596, 246] persons= [251, 250, 249]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554344
+name: oneeh_slice247 id: 248 peer: None nodes= [597, 247] persons= [252, 251, 250]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554344
+name: oneei_slice248 id: 249 peer: None nodes= [598, 248] persons= [253, 252, 251]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554344
+name: oneej_slice249 id: 250 peer: None nodes= [599, 249] persons= [254, 253, 252]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554344
+name: onefa_slice250 id: 251 peer: None nodes= [600, 250] persons= [255, 254, 253]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554344
+name: onefb_slice251 id: 252 peer: None nodes= [601, 251] persons= [256, 255, 254]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554345
+name: onefc_slice252 id: 253 peer: None nodes= [602, 252] persons= [257, 256, 255]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554345
+name: onefd_slice253 id: 254 peer: None nodes= [603, 253] persons= [258, 257, 256]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554345
+name: onefe_slice254 id: 255 peer: None nodes= [604, 254] persons= [259, 258, 257]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554345
+name: oneff_slice255 id: 256 peer: None nodes= [605, 255] persons= [260, 259, 258]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554345
+name: onefg_slice256 id: 257 peer: None nodes= [606, 256] persons= [261, 260, 259]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554345
+name: onefh_slice257 id: 258 peer: None nodes= [607, 257] persons= [262, 261, 260]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554345
+name: onefi_slice258 id: 259 peer: None nodes= [608, 258] persons= [263, 262, 261]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554346
+name: onefj_slice259 id: 260 peer: None nodes= [609, 259] persons= [264, 263, 262]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554346
+name: onega_slice260 id: 261 peer: None nodes= [610, 260] persons= [265, 264, 263]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554346
+name: onegb_slice261 id: 262 peer: None nodes= [611, 261] persons= [266, 265, 264]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554346
+name: onegc_slice262 id: 263 peer: None nodes= [612, 262] persons= [267, 266, 265]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554346
+name: onegd_slice263 id: 264 peer: None nodes= [613, 263] persons= [268, 267, 266]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554346
+name: onege_slice264 id: 265 peer: None nodes= [614, 264] persons= [269, 268, 267]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554346
+name: onegf_slice265 id: 266 peer: None nodes= [615, 265] persons= [270, 269, 268]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554346
+name: onegg_slice266 id: 267 peer: None nodes= [616, 266] persons= [271, 270, 269]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554347
+name: onegh_slice267 id: 268 peer: None nodes= [617, 267] persons= [272, 271, 270]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554347
+name: onegi_slice268 id: 269 peer: None nodes= [618, 268] persons= [273, 272, 271]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554347
+name: onegj_slice269 id: 270 peer: None nodes= [619, 269] persons= [274, 273, 272]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554347
+name: oneha_slice270 id: 271 peer: None nodes= [620, 270] persons= [275, 274, 273]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554347
+name: onehb_slice271 id: 272 peer: None nodes= [621, 271] persons= [276, 275, 274]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554347
+name: onehc_slice272 id: 273 peer: None nodes= [622, 272] persons= [277, 276, 275]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554347
+name: onehd_slice273 id: 274 peer: None nodes= [623, 273] persons= [278, 277, 276]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554348
+name: onehe_slice274 id: 275 peer: None nodes= [624, 274] persons= [279, 278, 277]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554348
+name: onehf_slice275 id: 276 peer: None nodes= [625, 275] persons= [280, 279, 278]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554348
+name: onehg_slice276 id: 277 peer: None nodes= [626, 276] persons= [281, 280, 279]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554348
+name: onehh_slice277 id: 278 peer: None nodes= [627, 277] persons= [282, 281, 280]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554348
+name: onehi_slice278 id: 279 peer: None nodes= [628, 278] persons= [283, 282, 281]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554348
+name: onehj_slice279 id: 280 peer: None nodes= [629, 279] persons= [284, 283, 282]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554348
+name: oneia_slice280 id: 281 peer: None nodes= [630, 280] persons= [285, 284, 283]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554348
+name: oneib_slice281 id: 282 peer: None nodes= [631, 281] persons= [286, 285, 284]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554349
+name: oneic_slice282 id: 283 peer: None nodes= [632, 282] persons= [287, 286, 285]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554349
+name: oneid_slice283 id: 284 peer: None nodes= [633, 283] persons= [288, 287, 286]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554349
+name: oneie_slice284 id: 285 peer: None nodes= [634, 284] persons= [289, 288, 287]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554349
+name: oneif_slice285 id: 286 peer: None nodes= [635, 285] persons= [290, 289, 288]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554349
+name: oneig_slice286 id: 287 peer: None nodes= [636, 286] persons= [291, 290, 289]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554349
+name: oneih_slice287 id: 288 peer: None nodes= [637, 287] persons= [292, 291, 290]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554349
+name: oneii_slice288 id: 289 peer: None nodes= [638, 288] persons= [293, 292, 291]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554350
+name: oneij_slice289 id: 290 peer: None nodes= [639, 289] persons= [294, 293, 292]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554350
+name: oneja_slice290 id: 291 peer: None nodes= [640, 290] persons= [295, 294, 293]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554350
+name: onejb_slice291 id: 292 peer: None nodes= [641, 291] persons= [296, 295, 294]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554350
+name: onejc_slice292 id: 293 peer: None nodes= [642, 292] persons= [297, 296, 295]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554350
+name: onejd_slice293 id: 294 peer: None nodes= [643, 293] persons= [298, 297, 296]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554350
+name: oneje_slice294 id: 295 peer: None nodes= [644, 294] persons= [299, 298, 297]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554350
+name: onejf_slice295 id: 296 peer: None nodes= [645, 295] persons= [300, 299, 298]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554351
+name: onejg_slice296 id: 297 peer: None nodes= [646, 296] persons= [301, 300, 299]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554351
+name: onejh_slice297 id: 298 peer: None nodes= [647, 297] persons= [302, 301, 300]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554351
+name: oneji_slice298 id: 299 peer: None nodes= [648, 298] persons= [303, 302, 301]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554351
+name: onejj_slice299 id: 300 peer: None nodes= [649, 299] persons= [304, 303, 302]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554351
+name: onebaa_slice300 id: 301 peer: None nodes= [650, 300] persons= [305, 304, 303]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554351
+name: onebab_slice301 id: 302 peer: None nodes= [651, 301] persons= [306, 305, 304]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554351
+name: onebac_slice302 id: 303 peer: None nodes= [652, 302] persons= [307, 306, 305]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554351
+name: onebad_slice303 id: 304 peer: None nodes= [653, 303] persons= [308, 307, 306]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554352
+name: onebae_slice304 id: 305 peer: None nodes= [654, 304] persons= [309, 308, 307]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554352
+name: onebaf_slice305 id: 306 peer: None nodes= [655, 305] persons= [310, 309, 308]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554352
+name: onebag_slice306 id: 307 peer: None nodes= [656, 306] persons= [311, 310, 309]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554352
+name: onebah_slice307 id: 308 peer: None nodes= [657, 307] persons= [312, 311, 310]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554352
+name: onebai_slice308 id: 309 peer: None nodes= [658, 308] persons= [313, 312, 311]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554352
+name: onebaj_slice309 id: 310 peer: None nodes= [659, 309] persons= [314, 313, 312]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554352
+name: onebba_slice310 id: 311 peer: None nodes= [660, 310] persons= [315, 314, 313]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554353
+name: onebbb_slice311 id: 312 peer: None nodes= [661, 311] persons= [316, 315, 314]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554353
+name: onebbc_slice312 id: 313 peer: None nodes= [662, 312] persons= [317, 316, 315]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554353
+name: onebbd_slice313 id: 314 peer: None nodes= [663, 313] persons= [318, 317, 316]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554353
+name: onebbe_slice314 id: 315 peer: None nodes= [664, 314] persons= [319, 318, 317]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554353
+name: onebbf_slice315 id: 316 peer: None nodes= [665, 315] persons= [320, 319, 318]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554353
+name: onebbg_slice316 id: 317 peer: None nodes= [666, 316] persons= [321, 320, 319]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554353
+name: onebbh_slice317 id: 318 peer: None nodes= [667, 317] persons= [322, 321, 320]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554353
+name: onebbi_slice318 id: 319 peer: None nodes= [668, 318] persons= [323, 322, 321]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554354
+name: onebbj_slice319 id: 320 peer: None nodes= [669, 319] persons= [324, 323, 322]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554354
+name: onebca_slice320 id: 321 peer: None nodes= [670, 320] persons= [325, 324, 323]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554354
+name: onebcb_slice321 id: 322 peer: None nodes= [671, 321] persons= [326, 325, 324]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554354
+name: onebcc_slice322 id: 323 peer: None nodes= [672, 322] persons= [327, 326, 325]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554354
+name: onebcd_slice323 id: 324 peer: None nodes= [673, 323] persons= [328, 327, 326]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554354
+name: onebce_slice324 id: 325 peer: None nodes= [674, 324] persons= [329, 328, 327]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554354
+name: onebcf_slice325 id: 326 peer: None nodes= [675, 325] persons= [330, 329, 328]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554355
+name: onebcg_slice326 id: 327 peer: None nodes= [676, 326] persons= [331, 330, 329]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554355
+name: onebch_slice327 id: 328 peer: None nodes= [677, 327] persons= [332, 331, 330]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554355
+name: onebci_slice328 id: 329 peer: None nodes= [678, 328] persons= [333, 332, 331]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554355
+name: onebcj_slice329 id: 330 peer: None nodes= [679, 329] persons= [334, 333, 332]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554355
+name: onebda_slice330 id: 331 peer: None nodes= [680, 330] persons= [335, 334, 333]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554355
+name: onebdb_slice331 id: 332 peer: None nodes= [681, 331] persons= [336, 335, 334]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554355
+name: onebdc_slice332 id: 333 peer: None nodes= [682, 332] persons= [337, 336, 335]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554356
+name: onebdd_slice333 id: 334 peer: None nodes= [683, 333] persons= [338, 337, 336]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554356
+name: onebde_slice334 id: 335 peer: None nodes= [684, 334] persons= [339, 338, 337]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554356
+name: onebdf_slice335 id: 336 peer: None nodes= [685, 335] persons= [340, 339, 338]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554356
+name: onebdg_slice336 id: 337 peer: None nodes= [686, 336] persons= [341, 340, 339]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554356
+name: onebdh_slice337 id: 338 peer: None nodes= [687, 337] persons= [342, 341, 340]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554356
+name: onebdi_slice338 id: 339 peer: None nodes= [688, 338] persons= [343, 342, 341]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554356
+name: onebdj_slice339 id: 340 peer: None nodes= [689, 339] persons= [344, 343, 342]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554356
+name: onebea_slice340 id: 341 peer: None nodes= [690, 340] persons= [345, 344, 343]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554357
+name: onebeb_slice341 id: 342 peer: None nodes= [691, 341] persons= [346, 345, 344]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554357
+name: onebec_slice342 id: 343 peer: None nodes= [692, 342] persons= [347, 346, 345]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554357
+name: onebed_slice343 id: 344 peer: None nodes= [693, 343] persons= [348, 347, 346]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554357
+name: onebee_slice344 id: 345 peer: None nodes= [694, 344] persons= [349, 348, 347]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554357
+name: onebef_slice345 id: 346 peer: None nodes= [695, 345] persons= [350, 349, 348]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554357
+name: onebeg_slice346 id: 347 peer: None nodes= [696, 346] persons= [351, 350, 349]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554357
+name: onebeh_slice347 id: 348 peer: None nodes= [697, 347] persons= [352, 351, 350]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554358
+name: onebei_slice348 id: 349 peer: None nodes= [698, 348] persons= [353, 352, 351]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554358
+name: onebej_slice349 id: 350 peer: None nodes= [699, 349] persons= [354, 353, 352]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554358
+name: onebfa_slice350 id: 351 peer: None nodes= [700, 350] persons= [355, 354, 353]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554358
+name: onebfb_slice351 id: 352 peer: None nodes= [351, 1] persons= [356, 355, 354]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554358
+name: onebfc_slice352 id: 353 peer: None nodes= [352, 2] persons= [357, 356, 355]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554358
+name: onebfd_slice353 id: 354 peer: None nodes= [353, 3] persons= [358, 357, 356]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554358
+name: onebfe_slice354 id: 355 peer: None nodes= [354, 4] persons= [359, 358, 357]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554359
+name: onebff_slice355 id: 356 peer: None nodes= [355, 5] persons= [360, 359, 358]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554359
+name: onebfg_slice356 id: 357 peer: None nodes= [356, 6] persons= [361, 360, 359]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554359
+name: onebfh_slice357 id: 358 peer: None nodes= [357, 7] persons= [362, 361, 360]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554359
+name: onebfi_slice358 id: 359 peer: None nodes= [358, 8] persons= [363, 362, 361]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554359
+name: onebfj_slice359 id: 360 peer: None nodes= [359, 9] persons= [364, 363, 362]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554359
+name: onebga_slice360 id: 361 peer: None nodes= [360, 10] persons= [365, 364, 363]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554359
+name: onebgb_slice361 id: 362 peer: None nodes= [361, 11] persons= [366, 365, 364]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554360
+name: onebgc_slice362 id: 363 peer: None nodes= [362, 12] persons= [367, 366, 365]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554360
+name: onebgd_slice363 id: 364 peer: None nodes= [363, 13] persons= [368, 367, 366]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554360
+name: onebge_slice364 id: 365 peer: None nodes= [364, 14] persons= [369, 368, 367]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554360
+name: onebgf_slice365 id: 366 peer: None nodes= [365, 15] persons= [370, 369, 368]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554360
+name: onebgg_slice366 id: 367 peer: None nodes= [366, 16] persons= [371, 370, 369]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554360
+name: onebgh_slice367 id: 368 peer: None nodes= [367, 17] persons= [372, 371, 370]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554360
+name: onebgi_slice368 id: 369 peer: None nodes= [368, 18] persons= [373, 372, 371]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554361
+name: onebgj_slice369 id: 370 peer: None nodes= [369, 19] persons= [374, 373, 372]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554361
+name: onebha_slice370 id: 371 peer: None nodes= [370, 20] persons= [375, 374, 373]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554361
+name: onebhb_slice371 id: 372 peer: None nodes= [371, 21] persons= [376, 375, 374]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554361
+name: onebhc_slice372 id: 373 peer: None nodes= [372, 22] persons= [377, 376, 375]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554361
+name: onebhd_slice373 id: 374 peer: None nodes= [373, 23] persons= [378, 377, 376]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554361
+name: onebhe_slice374 id: 375 peer: None nodes= [374, 24] persons= [379, 378, 377]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554361
+name: onebhf_slice375 id: 376 peer: None nodes= [375, 25] persons= [380, 379, 378]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554361
+name: onebhg_slice376 id: 377 peer: None nodes= [376, 26] persons= [381, 380, 379]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554362
+name: onebhh_slice377 id: 378 peer: None nodes= [377, 27] persons= [382, 381, 380]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554362
+name: onebhi_slice378 id: 379 peer: None nodes= [378, 28] persons= [383, 382, 381]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554362
+name: onebhj_slice379 id: 380 peer: None nodes= [379, 29] persons= [384, 383, 382]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554362
+name: onebia_slice380 id: 381 peer: None nodes= [380, 30] persons= [385, 384, 383]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554362
+name: onebib_slice381 id: 382 peer: None nodes= [381, 31] persons= [386, 385, 384]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554362
+name: onebic_slice382 id: 383 peer: None nodes= [382, 32] persons= [387, 386, 385]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554362
+name: onebid_slice383 id: 384 peer: None nodes= [383, 33] persons= [388, 387, 386]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554363
+name: onebie_slice384 id: 385 peer: None nodes= [384, 34] persons= [389, 388, 387]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554363
+name: onebif_slice385 id: 386 peer: None nodes= [385, 35] persons= [390, 389, 388]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554363
+name: onebig_slice386 id: 387 peer: None nodes= [386, 36] persons= [391, 390, 389]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554363
+name: onebih_slice387 id: 388 peer: None nodes= [387, 37] persons= [392, 391, 390]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554363
+name: onebii_slice388 id: 389 peer: None nodes= [388, 38] persons= [393, 392, 391]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554363
+name: onebij_slice389 id: 390 peer: None nodes= [389, 39] persons= [394, 393, 392]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554363
+name: onebja_slice390 id: 391 peer: None nodes= [390, 40] persons= [395, 394, 393]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554364
+name: onebjb_slice391 id: 392 peer: None nodes= [391, 41] persons= [396, 395, 394]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554364
+name: onebjc_slice392 id: 393 peer: None nodes= [392, 42] persons= [397, 396, 395]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554364
+name: onebjd_slice393 id: 394 peer: None nodes= [393, 43] persons= [398, 397, 396]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554364
+name: onebje_slice394 id: 395 peer: None nodes= [394, 44] persons= [399, 398, 397]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554364
+name: onebjf_slice395 id: 396 peer: None nodes= [395, 45] persons= [400, 399, 398]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554364
+name: onebjg_slice396 id: 397 peer: None nodes= [396, 46] persons= [401, 400, 399]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554364
+name: onebjh_slice397 id: 398 peer: None nodes= [397, 47] persons= [402, 401, 400]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554365
+name: onebji_slice398 id: 399 peer: None nodes= [398, 48] persons= [403, 402, 401]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554365
+name: onebjj_slice399 id: 400 peer: None nodes= [399, 49] persons= [404, 403, 402]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554365
+name: onecaa_slice400 id: 401 peer: None nodes= [400, 50] persons= [405, 404, 403]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554365
+name: oneb_slice401 id: 402 peer: None nodes= [401, 51] persons= [406, 405, 404]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554365
+name: onec_slice402 id: 403 peer: None nodes= [402, 52] persons= [407, 406, 405]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554365
+name: oned_slice403 id: 404 peer: None nodes= [403, 53] persons= [408, 407, 406]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554365
+name: onee_slice404 id: 405 peer: None nodes= [404, 54] persons= [409, 408, 407]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554366
+name: onef_slice405 id: 406 peer: None nodes= [405, 55] persons= [410, 409, 408]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554366
+name: oneg_slice406 id: 407 peer: None nodes= [406, 56] persons= [411, 410, 409]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554366
+name: oneh_slice407 id: 408 peer: None nodes= [407, 57] persons= [412, 411, 410]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554366
+name: onei_slice408 id: 409 peer: None nodes= [408, 58] persons= [413, 412, 411]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554366
+name: onej_slice409 id: 410 peer: None nodes= [409, 59] persons= [414, 413, 412]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554366
+name: oneba_slice410 id: 411 peer: None nodes= [410, 60] persons= [415, 414, 413]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554366
+name: onebb_slice411 id: 412 peer: None nodes= [411, 61] persons= [416, 415, 414]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554367
+name: onebc_slice412 id: 413 peer: None nodes= [412, 62] persons= [417, 416, 415]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554367
+name: onebd_slice413 id: 414 peer: None nodes= [413, 63] persons= [418, 417, 416]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554367
+name: onebe_slice414 id: 415 peer: None nodes= [414, 64] persons= [419, 418, 417]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554367
+name: onebf_slice415 id: 416 peer: None nodes= [415, 65] persons= [420, 419, 418]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554367
+name: onebg_slice416 id: 417 peer: None nodes= [416, 66] persons= [421, 420, 419]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554367
+name: onebh_slice417 id: 418 peer: None nodes= [417, 67] persons= [422, 421, 420]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554367
+name: onebi_slice418 id: 419 peer: None nodes= [418, 68] persons= [423, 422, 421]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554368
+name: onebj_slice419 id: 420 peer: None nodes= [419, 69] persons= [424, 423, 422]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554368
+name: oneca_slice420 id: 421 peer: None nodes= [420, 70] persons= [425, 424, 423]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554368
+name: onecb_slice421 id: 422 peer: None nodes= [421, 71] persons= [426, 425, 424]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554368
+name: onecc_slice422 id: 423 peer: None nodes= [422, 72] persons= [427, 426, 425]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554368
+name: onecd_slice423 id: 424 peer: None nodes= [423, 73] persons= [428, 427, 426]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554368
+name: onece_slice424 id: 425 peer: None nodes= [424, 74] persons= [429, 428, 427]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554368
+name: onecf_slice425 id: 426 peer: None nodes= [425, 75] persons= [430, 429, 428]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554369
+name: onecg_slice426 id: 427 peer: None nodes= [426, 76] persons= [431, 430, 429]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554369
+name: onech_slice427 id: 428 peer: None nodes= [427, 77] persons= [432, 431, 430]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554369
+name: oneci_slice428 id: 429 peer: None nodes= [428, 78] persons= [433, 432, 431]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554369
+name: onecj_slice429 id: 430 peer: None nodes= [429, 79] persons= [434, 433, 432]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554369
+name: oneda_slice430 id: 431 peer: None nodes= [430, 80] persons= [435, 434, 433]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554369
+name: onedb_slice431 id: 432 peer: None nodes= [431, 81] persons= [436, 435, 434]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554369
+name: onedc_slice432 id: 433 peer: None nodes= [432, 82] persons= [437, 436, 435]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554370
+name: onedd_slice433 id: 434 peer: None nodes= [433, 83] persons= [438, 437, 436]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554370
+name: onede_slice434 id: 435 peer: None nodes= [434, 84] persons= [439, 438, 437]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554370
+name: onedf_slice435 id: 436 peer: None nodes= [435, 85] persons= [440, 439, 438]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554370
+name: onedg_slice436 id: 437 peer: None nodes= [436, 86] persons= [441, 440, 439]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554370
+name: onedh_slice437 id: 438 peer: None nodes= [437, 87] persons= [442, 441, 440]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554370
+name: onedi_slice438 id: 439 peer: None nodes= [438, 88] persons= [443, 442, 441]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554370
+name: onedj_slice439 id: 440 peer: None nodes= [439, 89] persons= [444, 443, 442]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554371
+name: oneea_slice440 id: 441 peer: None nodes= [440, 90] persons= [445, 444, 443]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554371
+name: oneeb_slice441 id: 442 peer: None nodes= [441, 91] persons= [446, 445, 444]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554371
+name: oneec_slice442 id: 443 peer: None nodes= [442, 92] persons= [447, 446, 445]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554371
+name: oneed_slice443 id: 444 peer: None nodes= [443, 93] persons= [448, 447, 446]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554371
+name: oneee_slice444 id: 445 peer: None nodes= [444, 94] persons= [449, 448, 447]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554371
+name: oneef_slice445 id: 446 peer: None nodes= [445, 95] persons= [450, 449, 448]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554371
+name: oneeg_slice446 id: 447 peer: None nodes= [446, 96] persons= [451, 450, 449]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554372
+name: oneeh_slice447 id: 448 peer: None nodes= [447, 97] persons= [452, 451, 450]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554372
+name: oneei_slice448 id: 449 peer: None nodes= [448, 98] persons= [453, 452, 451]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554372
+name: oneej_slice449 id: 450 peer: None nodes= [449, 99] persons= [454, 453, 452]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554372
+name: onefa_slice450 id: 451 peer: None nodes= [450, 100] persons= [455, 454, 453]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554372
+name: onefb_slice451 id: 452 peer: None nodes= [451, 101] persons= [456, 455, 454]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554372
+name: onefc_slice452 id: 453 peer: None nodes= [452, 102] persons= [457, 456, 455]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554373
+name: onefd_slice453 id: 454 peer: None nodes= [453, 103] persons= [458, 457, 456]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554373
+name: onefe_slice454 id: 455 peer: None nodes= [454, 104] persons= [459, 458, 457]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554373
+name: oneff_slice455 id: 456 peer: None nodes= [455, 105] persons= [460, 459, 458]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554373
+name: onefg_slice456 id: 457 peer: None nodes= [456, 106] persons= [461, 460, 459]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554373
+name: onefh_slice457 id: 458 peer: None nodes= [457, 107] persons= [462, 461, 460]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554373
+name: onefi_slice458 id: 459 peer: None nodes= [458, 108] persons= [463, 462, 461]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554373
+name: onefj_slice459 id: 460 peer: None nodes= [459, 109] persons= [464, 463, 462]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554374
+name: onega_slice460 id: 461 peer: None nodes= [460, 110] persons= [465, 464, 463]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554374
+name: onegb_slice461 id: 462 peer: None nodes= [461, 111] persons= [466, 465, 464]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554374
+name: onegc_slice462 id: 463 peer: None nodes= [462, 112] persons= [467, 466, 465]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554374
+name: onegd_slice463 id: 464 peer: None nodes= [463, 113] persons= [468, 467, 466]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554374
+name: onege_slice464 id: 465 peer: None nodes= [464, 114] persons= [469, 468, 467]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554374
+name: onegf_slice465 id: 466 peer: None nodes= [465, 115] persons= [470, 469, 468]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554374
+name: onegg_slice466 id: 467 peer: None nodes= [466, 116] persons= [471, 470, 469]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554375
+name: onegh_slice467 id: 468 peer: None nodes= [467, 117] persons= [472, 471, 470]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554375
+name: onegi_slice468 id: 469 peer: None nodes= [468, 118] persons= [473, 472, 471]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554375
+name: onegj_slice469 id: 470 peer: None nodes= [469, 119] persons= [474, 473, 472]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554375
+name: oneha_slice470 id: 471 peer: None nodes= [470, 120] persons= [475, 474, 473]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554375
+name: onehb_slice471 id: 472 peer: None nodes= [471, 121] persons= [476, 475, 474]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554375
+name: onehc_slice472 id: 473 peer: None nodes= [472, 122] persons= [477, 476, 475]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554375
+name: onehd_slice473 id: 474 peer: None nodes= [473, 123] persons= [478, 477, 476]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554376
+name: onehe_slice474 id: 475 peer: None nodes= [474, 124] persons= [479, 478, 477]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554376
+name: onehf_slice475 id: 476 peer: None nodes= [475, 125] persons= [480, 479, 478]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554376
+name: onehg_slice476 id: 477 peer: None nodes= [476, 126] persons= [481, 480, 479]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554376
+name: onehh_slice477 id: 478 peer: None nodes= [477, 127] persons= [482, 481, 480]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554376
+name: onehi_slice478 id: 479 peer: None nodes= [478, 128] persons= [483, 482, 481]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554376
+name: onehj_slice479 id: 480 peer: None nodes= [479, 129] persons= [484, 483, 482]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554376
+name: oneia_slice480 id: 481 peer: None nodes= [480, 130] persons= [485, 484, 483]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554377
+name: oneib_slice481 id: 482 peer: None nodes= [481, 131] persons= [486, 485, 484]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554377
+name: oneic_slice482 id: 483 peer: None nodes= [482, 132] persons= [487, 486, 485]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554377
+name: oneid_slice483 id: 484 peer: None nodes= [483, 133] persons= [488, 487, 486]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554377
+name: oneie_slice484 id: 485 peer: None nodes= [484, 134] persons= [489, 488, 487]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554377
+name: oneif_slice485 id: 486 peer: None nodes= [485, 135] persons= [490, 489, 488]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554377
+name: oneig_slice486 id: 487 peer: None nodes= [486, 136] persons= [491, 490, 489]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554377
+name: oneih_slice487 id: 488 peer: None nodes= [487, 137] persons= [492, 491, 490]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554378
+name: oneii_slice488 id: 489 peer: None nodes= [488, 138] persons= [493, 492, 491]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554378
+name: oneij_slice489 id: 490 peer: None nodes= [489, 139] persons= [494, 493, 492]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554378
+name: oneja_slice490 id: 491 peer: None nodes= [490, 140] persons= [495, 494, 493]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554378
+name: onejb_slice491 id: 492 peer: None nodes= [491, 141] persons= [496, 495, 494]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554378
+name: onejc_slice492 id: 493 peer: None nodes= [492, 142] persons= [497, 496, 495]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554378
+name: onejd_slice493 id: 494 peer: None nodes= [493, 143] persons= [498, 497, 496]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554379
+name: oneje_slice494 id: 495 peer: None nodes= [494, 144] persons= [499, 498, 497]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554379
+name: onejf_slice495 id: 496 peer: None nodes= [495, 145] persons= [500, 499, 498]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554379
+name: onejg_slice496 id: 497 peer: None nodes= [496, 146] persons= [501, 500, 499]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554379
+name: onejh_slice497 id: 498 peer: None nodes= [497, 147] persons= [502, 501, 500]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554379
+name: oneji_slice498 id: 499 peer: None nodes= [498, 148] persons= [503, 502, 501]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554379
+name: onejj_slice499 id: 500 peer: None nodes= [499, 149] persons= [4, 503, 502]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554379
+name: onebaa_slice500 id: 501 peer: None nodes= [500, 150] persons= [5, 4, 503]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183554380
+01: Slice Attribute Types
+sat_id: 01 min_role_id: 20 name: type < Type of slice (e.g. vserver) >
+sat_id: 02 min_role_id: 10 name: system < Is a default system slice (1) or not (0 or unset) >
+sat_id: 03 min_role_id: 10 name: enabled < Slice enabled (1 or unset) or suspended (0) >
+sat_id: 04 min_role_id: 30 name: vref < Reference image >
+sat_id: 05 min_role_id: 10 name: initscript < Slice initialization script >
+sat_id: 06 min_role_id: 10 name: cpu_min < Minimum CPU share (ms/s) >
+sat_id: 07 min_role_id: 10 name: cpu_share < Number of CPU shares >
+sat_id: 08 min_role_id: 10 name: net_min_rate < Minimum bandwidth (kbps) >
+sat_id: 09 min_role_id: 10 name: net_max_rate < Maximum bandwidth (kbps) >
+sat_id: 10 min_role_id: 10 name: net_i2_min_rate < Minimum bandwidth over I2 routes (kbps) >
+sat_id: 11 min_role_id: 10 name: net_i2_max_rate < Maximum bandwidth over I2 routes (kbps) >
+sat_id: 12 min_role_id: 10 name: net_max_kbyte < Maximum daily network Tx KByte limit. >
+sat_id: 13 min_role_id: 10 name: net_thresh_kbyte < KByte limit before warning and throttling. >
+sat_id: 14 min_role_id: 10 name: net_i2_max_kbyte < Maximum daily network Tx KByte limit to I2 hosts. >
+sat_id: 15 min_role_id: 10 name: net_i2_thresh_kbyte < KByte limit to I2 hosts before warning and throttling. >
+sat_id: 16 min_role_id: 10 name: net_share < Number of bandwidth shares >
+sat_id: 17 min_role_id: 10 name: net_i2_share < Number of bandwidth shares over I2 routes >
+sat_id: 18 min_role_id: 10 name: disk_max < Disk quota (1k disk blocks) >
+sat_id: 19 min_role_id: 10 name: proper_op < Proper operation (e.g. bind_socket) >
+sat_id: 20 min_role_id: 20 name: plc_slice_type < Type of slice rspec to be created >
+sat_id: 21 min_role_id: 10 name: plc_agent_version < Version of PLC agent (slice creation service) software to be deployed >
+sat_id: 22 min_role_id: 10 name: plc_ticket_pubkey < Public key used to verify PLC-signed tickets >
+sat_id: 23 min_role_id: 10 name: sat_1 < custom sat on plc1 >
+01: Slice Attributes
+name: system       sa_id: 01 sat_id: 02 sl=01 v= 1 n= None
+name: vref         sa_id: 09 sat_id: 04 sl=02 v= predefined sat/node1 n= 1
+name: vref         sa_id: 08 sat_id: 04 sl=02 v= predefined sat/all nodes n= None
+name: vref         sa_id: 02 sat_id: 04 sl=01 v= planetflow n= None
+name: proper_op    sa_id: 05 sat_id: 19 sl=01 v= bind_socket n= None
+name: proper_op    sa_id: 04 sat_id: 19 sl=01 v= create_socket n= None
+name: proper_op    sa_id: 03 sat_id: 19 sl=01 v= open file=/etc/passwd, flags=r n= None
+name: sat_1        sa_id: 07 sat_id: 23 sl=02 v= custom sat/node1 n= 1
+name: sat_1        sa_id: 06 sat_id: 23 sl=02 v= custom sat/all nodes n= None
++++ 241.24 seconds ellapsed (9.62)
+01: SLIVERS for first 3 nodes
+WARNING - GetSlivers needs fix
+01:============================== END DUMP
+02:============================== DUMPING
+02: SITES
+1 None plc2 FederationTestPlc2 Central []
+2 None twob FederationTestPlc2 [201, 1]
+3 None twoc FederationTestPlc2 [202, 2]
+4 None twod FederationTestPlc2 [203, 3]
+5 None twoe FederationTestPlc2 [204, 4]
+6 None twof FederationTestPlc2 [205, 5]
+7 None twog FederationTestPlc2 [206, 6]
+8 None twoh FederationTestPlc2 [207, 7]
+9 None twoi FederationTestPlc2 [208, 8]
+10 None twoj FederationTestPlc2 [209, 9]
+11 None twoba FederationTestPlc2 [210, 10]
+12 None twobb FederationTestPlc2 [211, 11]
+13 None twobc FederationTestPlc2 [212, 12]
+14 None twobd FederationTestPlc2 [213, 13]
+15 None twobe FederationTestPlc2 [214, 14]
+16 None twobf FederationTestPlc2 [215, 15]
+17 None twobg FederationTestPlc2 [216, 16]
+18 None twobh FederationTestPlc2 [217, 17]
+19 None twobi FederationTestPlc2 [218, 18]
+20 None twobj FederationTestPlc2 [219, 19]
+21 None twoca FederationTestPlc2 [220, 20]
+22 None twocb FederationTestPlc2 [221, 21]
+23 None twocc FederationTestPlc2 [222, 22]
+24 None twocd FederationTestPlc2 [223, 23]
+25 None twoce FederationTestPlc2 [224, 24]
+26 None twocf FederationTestPlc2 [225, 25]
+27 None twocg FederationTestPlc2 [226, 26]
+28 None twoch FederationTestPlc2 [227, 27]
+29 None twoci FederationTestPlc2 [228, 28]
+30 None twocj FederationTestPlc2 [229, 29]
+31 None twoda FederationTestPlc2 [230, 30]
+32 None twodb FederationTestPlc2 [231, 31]
+33 None twodc FederationTestPlc2 [232, 32]
+34 None twodd FederationTestPlc2 [233, 33]
+35 None twode FederationTestPlc2 [234, 34]
+36 None twodf FederationTestPlc2 [235, 35]
+37 None twodg FederationTestPlc2 [236, 36]
+38 None twodh FederationTestPlc2 [237, 37]
+39 None twodi FederationTestPlc2 [238, 38]
+40 None twodj FederationTestPlc2 [239, 39]
+41 None twoea FederationTestPlc2 [240, 40]
+42 None twoeb FederationTestPlc2 [241, 41]
+43 None twoec FederationTestPlc2 [242, 42]
+44 None twoed FederationTestPlc2 [243, 43]
+45 None twoee FederationTestPlc2 [244, 44]
+46 None twoef FederationTestPlc2 [245, 45]
+47 None twoeg FederationTestPlc2 [246, 46]
+48 None twoeh FederationTestPlc2 [247, 47]
+49 None twoei FederationTestPlc2 [248, 48]
+50 None twoej FederationTestPlc2 [249, 49]
+51 None twofa FederationTestPlc2 [250, 50]
+52 None twofb FederationTestPlc2 [251, 51]
+53 None twofc FederationTestPlc2 [252, 52]
+54 None twofd FederationTestPlc2 [253, 53]
+55 None twofe FederationTestPlc2 [254, 54]
+56 None twoff FederationTestPlc2 [255, 55]
+57 None twofg FederationTestPlc2 [256, 56]
+58 None twofh FederationTestPlc2 [257, 57]
+59 None twofi FederationTestPlc2 [258, 58]
+60 None twofj FederationTestPlc2 [259, 59]
+61 None twoga FederationTestPlc2 [260, 60]
+62 None twogb FederationTestPlc2 [261, 61]
+63 None twogc FederationTestPlc2 [262, 62]
+64 None twogd FederationTestPlc2 [263, 63]
+65 None twoge FederationTestPlc2 [264, 64]
+66 None twogf FederationTestPlc2 [265, 65]
+67 None twogg FederationTestPlc2 [266, 66]
+68 None twogh FederationTestPlc2 [267, 67]
+69 None twogi FederationTestPlc2 [268, 68]
+70 None twogj FederationTestPlc2 [269, 69]
+71 None twoha FederationTestPlc2 [270, 70]
+72 None twohb FederationTestPlc2 [271, 71]
+73 None twohc FederationTestPlc2 [272, 72]
+74 None twohd FederationTestPlc2 [273, 73]
+75 None twohe FederationTestPlc2 [274, 74]
+76 None twohf FederationTestPlc2 [275, 75]
+77 None twohg FederationTestPlc2 [276, 76]
+78 None twohh FederationTestPlc2 [277, 77]
+79 None twohi FederationTestPlc2 [278, 78]
+80 None twohj FederationTestPlc2 [279, 79]
+81 None twoia FederationTestPlc2 [280, 80]
+82 None twoib FederationTestPlc2 [281, 81]
+83 None twoic FederationTestPlc2 [282, 82]
+84 None twoid FederationTestPlc2 [283, 83]
+85 None twoie FederationTestPlc2 [284, 84]
+86 None twoif FederationTestPlc2 [285, 85]
+87 None twoig FederationTestPlc2 [286, 86]
+88 None twoih FederationTestPlc2 [287, 87]
+89 None twoii FederationTestPlc2 [288, 88]
+90 None twoij FederationTestPlc2 [289, 89]
+91 None twoja FederationTestPlc2 [290, 90]
+92 None twojb FederationTestPlc2 [291, 91]
+93 None twojc FederationTestPlc2 [292, 92]
+94 None twojd FederationTestPlc2 [293, 93]
+95 None twoje FederationTestPlc2 [294, 94]
+96 None twojf FederationTestPlc2 [295, 95]
+97 None twojg FederationTestPlc2 [296, 96]
+98 None twojh FederationTestPlc2 [297, 97]
+99 None twoji FederationTestPlc2 [298, 98]
+100 None twojj FederationTestPlc2 [299, 99]
+101 None twobaa FederationTestPlc2 [300, 100]
+102 None twobab FederationTestPlc2 [301, 101]
+103 None twobac FederationTestPlc2 [302, 102]
+104 None twobad FederationTestPlc2 [303, 103]
+105 None twobae FederationTestPlc2 [304, 104]
+106 None twobaf FederationTestPlc2 [305, 105]
+107 None twobag FederationTestPlc2 [306, 106]
+108 None twobah FederationTestPlc2 [307, 107]
+109 None twobai FederationTestPlc2 [308, 108]
+110 None twobaj FederationTestPlc2 [309, 109]
+111 None twobba FederationTestPlc2 [310, 110]
+112 None twobbb FederationTestPlc2 [311, 111]
+113 None twobbc FederationTestPlc2 [312, 112]
+114 None twobbd FederationTestPlc2 [313, 113]
+115 None twobbe FederationTestPlc2 [314, 114]
+116 None twobbf FederationTestPlc2 [315, 115]
+117 None twobbg FederationTestPlc2 [316, 116]
+118 None twobbh FederationTestPlc2 [317, 117]
+119 None twobbi FederationTestPlc2 [318, 118]
+120 None twobbj FederationTestPlc2 [319, 119]
+121 None twobca FederationTestPlc2 [320, 120]
+122 None twobcb FederationTestPlc2 [321, 121]
+123 None twobcc FederationTestPlc2 [322, 122]
+124 None twobcd FederationTestPlc2 [323, 123]
+125 None twobce FederationTestPlc2 [324, 124]
+126 None twobcf FederationTestPlc2 [325, 125]
+127 None twobcg FederationTestPlc2 [326, 126]
+128 None twobch FederationTestPlc2 [327, 127]
+129 None twobci FederationTestPlc2 [328, 128]
+130 None twobcj FederationTestPlc2 [329, 129]
+131 None twobda FederationTestPlc2 [330, 130]
+132 None twobdb FederationTestPlc2 [331, 131]
+133 None twobdc FederationTestPlc2 [332, 132]
+134 None twobdd FederationTestPlc2 [333, 133]
+135 None twobde FederationTestPlc2 [334, 134]
+136 None twobdf FederationTestPlc2 [335, 135]
+137 None twobdg FederationTestPlc2 [336, 136]
+138 None twobdh FederationTestPlc2 [337, 137]
+139 None twobdi FederationTestPlc2 [338, 138]
+140 None twobdj FederationTestPlc2 [339, 139]
+141 None twobea FederationTestPlc2 [340, 140]
+142 None twobeb FederationTestPlc2 [341, 141]
+143 None twobec FederationTestPlc2 [342, 142]
+144 None twobed FederationTestPlc2 [343, 143]
+145 None twobee FederationTestPlc2 [344, 144]
+146 None twobef FederationTestPlc2 [345, 145]
+147 None twobeg FederationTestPlc2 [346, 146]
+148 None twobeh FederationTestPlc2 [347, 147]
+149 None twobei FederationTestPlc2 [348, 148]
+150 None twobej FederationTestPlc2 [349, 149]
+151 None twobfa FederationTestPlc2 [350, 150]
+152 None twobfb FederationTestPlc2 [151]
+153 None twobfc FederationTestPlc2 [152]
+154 None twobfd FederationTestPlc2 [153]
+155 None twobfe FederationTestPlc2 [154]
+156 None twobff FederationTestPlc2 [155]
+157 None twobfg FederationTestPlc2 [156]
+158 None twobfh FederationTestPlc2 [157]
+159 None twobfi FederationTestPlc2 [158]
+160 None twobfj FederationTestPlc2 [159]
+161 None twobga FederationTestPlc2 [160]
+162 None twobgb FederationTestPlc2 [161]
+163 None twobgc FederationTestPlc2 [162]
+164 None twobgd FederationTestPlc2 [163]
+165 None twobge FederationTestPlc2 [164]
+166 None twobgf FederationTestPlc2 [165]
+167 None twobgg FederationTestPlc2 [166]
+168 None twobgh FederationTestPlc2 [167]
+169 None twobgi FederationTestPlc2 [168]
+170 None twobgj FederationTestPlc2 [169]
+171 None twobha FederationTestPlc2 [170]
+172 None twobhb FederationTestPlc2 [171]
+173 None twobhc FederationTestPlc2 [172]
+174 None twobhd FederationTestPlc2 [173]
+175 None twobhe FederationTestPlc2 [174]
+176 None twobhf FederationTestPlc2 [175]
+177 None twobhg FederationTestPlc2 [176]
+178 None twobhh FederationTestPlc2 [177]
+179 None twobhi FederationTestPlc2 [178]
+180 None twobhj FederationTestPlc2 [179]
+181 None twobia FederationTestPlc2 [180]
+182 None twobib FederationTestPlc2 [181]
+183 None twobic FederationTestPlc2 [182]
+184 None twobid FederationTestPlc2 [183]
+185 None twobie FederationTestPlc2 [184]
+186 None twobif FederationTestPlc2 [185]
+187 None twobig FederationTestPlc2 [186]
+188 None twobih FederationTestPlc2 [187]
+189 None twobii FederationTestPlc2 [188]
+190 None twobij FederationTestPlc2 [189]
+191 None twobja FederationTestPlc2 [190]
+192 None twobjb FederationTestPlc2 [191]
+193 None twobjc FederationTestPlc2 [192]
+194 None twobjd FederationTestPlc2 [193]
+195 None twobje FederationTestPlc2 [194]
+196 None twobjf FederationTestPlc2 [195]
+197 None twobjg FederationTestPlc2 [196]
+198 None twobjh FederationTestPlc2 [197]
+199 None twobji FederationTestPlc2 [198]
+200 None twobjj FederationTestPlc2 [199]
+201 None twocaa FederationTestPlc2 [200]
+202 1 plc1 FederationTestPlc1 Central []
+203 1 oneb FederationTestPlc1 [551, 351]
+204 1 onec FederationTestPlc1 [552, 352]
+205 1 oned FederationTestPlc1 [553, 353]
+206 1 onee FederationTestPlc1 [554, 354]
+207 1 onef FederationTestPlc1 [555, 355]
+208 1 oneg FederationTestPlc1 [556, 356]
+209 1 oneh FederationTestPlc1 [557, 357]
+210 1 onei FederationTestPlc1 [558, 358]
+211 1 onej FederationTestPlc1 [559, 359]
+212 1 oneba FederationTestPlc1 [560, 360]
+213 1 onebb FederationTestPlc1 [561, 361]
+214 1 onebc FederationTestPlc1 [562, 362]
+215 1 onebd FederationTestPlc1 [563, 363]
+216 1 onebe FederationTestPlc1 [564, 364]
+217 1 onebf FederationTestPlc1 [565, 365]
+218 1 onebg FederationTestPlc1 [566, 366]
+219 1 onebh FederationTestPlc1 [567, 367]
+220 1 onebi FederationTestPlc1 [568, 368]
+221 1 onebj FederationTestPlc1 [569, 369]
+222 1 oneca FederationTestPlc1 [570, 370]
+223 1 onecb FederationTestPlc1 [571, 371]
+224 1 onecc FederationTestPlc1 [572, 372]
+225 1 onecd FederationTestPlc1 [573, 373]
+226 1 onece FederationTestPlc1 [574, 374]
+227 1 onecf FederationTestPlc1 [575, 375]
+228 1 onecg FederationTestPlc1 [576, 376]
+229 1 onech FederationTestPlc1 [577, 377]
+230 1 oneci FederationTestPlc1 [578, 378]
+231 1 onecj FederationTestPlc1 [579, 379]
+232 1 oneda FederationTestPlc1 [580, 380]
+233 1 onedb FederationTestPlc1 [581, 381]
+234 1 onedc FederationTestPlc1 [582, 382]
+235 1 onedd FederationTestPlc1 [583, 383]
+236 1 onede FederationTestPlc1 [584, 384]
+237 1 onedf FederationTestPlc1 [585, 385]
+238 1 onedg FederationTestPlc1 [586, 386]
+239 1 onedh FederationTestPlc1 [587, 387]
+240 1 onedi FederationTestPlc1 [588, 388]
+241 1 onedj FederationTestPlc1 [589, 389]
+242 1 oneea FederationTestPlc1 [590, 390]
+243 1 oneeb FederationTestPlc1 [591, 391]
+244 1 oneec FederationTestPlc1 [592, 392]
+245 1 oneed FederationTestPlc1 [593, 393]
+246 1 oneee FederationTestPlc1 [594, 394]
+247 1 oneef FederationTestPlc1 [595, 395]
+248 1 oneeg FederationTestPlc1 [596, 396]
+249 1 oneeh FederationTestPlc1 [597, 397]
+250 1 oneei FederationTestPlc1 [598, 398]
+251 1 oneej FederationTestPlc1 [599, 399]
+252 1 onefa FederationTestPlc1 [600, 400]
+253 1 onefb FederationTestPlc1 [601, 401]
+254 1 onefc FederationTestPlc1 [602, 402]
+255 1 onefd FederationTestPlc1 [603, 403]
+256 1 onefe FederationTestPlc1 [604, 404]
+257 1 oneff FederationTestPlc1 [605, 405]
+258 1 onefg FederationTestPlc1 [606, 406]
+259 1 onefh FederationTestPlc1 [607, 407]
+260 1 onefi FederationTestPlc1 [608, 408]
+261 1 onefj FederationTestPlc1 [609, 409]
+262 1 onega FederationTestPlc1 [610, 410]
+263 1 onegb FederationTestPlc1 [611, 411]
+264 1 onegc FederationTestPlc1 [612, 412]
+265 1 onegd FederationTestPlc1 [613, 413]
+266 1 onege FederationTestPlc1 [614, 414]
+267 1 onegf FederationTestPlc1 [615, 415]
+268 1 onegg FederationTestPlc1 [616, 416]
+269 1 onegh FederationTestPlc1 [617, 417]
+270 1 onegi FederationTestPlc1 [618, 418]
+271 1 onegj FederationTestPlc1 [619, 419]
+272 1 oneha FederationTestPlc1 [620, 420]
+273 1 onehb FederationTestPlc1 [621, 421]
+274 1 onehc FederationTestPlc1 [622, 422]
+275 1 onehd FederationTestPlc1 [623, 423]
+276 1 onehe FederationTestPlc1 [624, 424]
+277 1 onehf FederationTestPlc1 [625, 425]
+278 1 onehg FederationTestPlc1 [626, 426]
+279 1 onehh FederationTestPlc1 [627, 427]
+280 1 onehi FederationTestPlc1 [628, 428]
+281 1 onehj FederationTestPlc1 [629, 429]
+282 1 oneia FederationTestPlc1 [630, 430]
+283 1 oneib FederationTestPlc1 [631, 431]
+284 1 oneic FederationTestPlc1 [632, 432]
+285 1 oneid FederationTestPlc1 [633, 433]
+286 1 oneie FederationTestPlc1 [634, 434]
+287 1 oneif FederationTestPlc1 [635, 435]
+288 1 oneig FederationTestPlc1 [636, 436]
+289 1 oneih FederationTestPlc1 [637, 437]
+290 1 oneii FederationTestPlc1 [638, 438]
+291 1 oneij FederationTestPlc1 [639, 439]
+292 1 oneja FederationTestPlc1 [640, 440]
+293 1 onejb FederationTestPlc1 [641, 441]
+294 1 onejc FederationTestPlc1 [642, 442]
+295 1 onejd FederationTestPlc1 [643, 443]
+296 1 oneje FederationTestPlc1 [644, 444]
+297 1 onejf FederationTestPlc1 [645, 445]
+298 1 onejg FederationTestPlc1 [646, 446]
+299 1 onejh FederationTestPlc1 [647, 447]
+300 1 oneji FederationTestPlc1 [648, 448]
+301 1 onejj FederationTestPlc1 [649, 449]
+302 1 onebaa FederationTestPlc1 [650, 450]
+303 1 onebab FederationTestPlc1 [651, 451]
+304 1 onebac FederationTestPlc1 [652, 452]
+305 1 onebad FederationTestPlc1 [653, 453]
+306 1 onebae FederationTestPlc1 [654, 454]
+307 1 onebaf FederationTestPlc1 [655, 455]
+308 1 onebag FederationTestPlc1 [656, 456]
+309 1 onebah FederationTestPlc1 [657, 457]
+310 1 onebai FederationTestPlc1 [658, 458]
+311 1 onebaj FederationTestPlc1 [659, 459]
+312 1 onebba FederationTestPlc1 [660, 460]
+313 1 onebbb FederationTestPlc1 [661, 461]
+314 1 onebbc FederationTestPlc1 [662, 462]
+315 1 onebbd FederationTestPlc1 [663, 463]
+316 1 onebbe FederationTestPlc1 [664, 464]
+317 1 onebbf FederationTestPlc1 [665, 465]
+318 1 onebbg FederationTestPlc1 [666, 466]
+319 1 onebbh FederationTestPlc1 [667, 467]
+320 1 onebbi FederationTestPlc1 [668, 468]
+321 1 onebbj FederationTestPlc1 [669, 469]
+322 1 onebca FederationTestPlc1 [670, 470]
+323 1 onebcb FederationTestPlc1 [671, 471]
+324 1 onebcc FederationTestPlc1 [672, 472]
+325 1 onebcd FederationTestPlc1 [673, 473]
+326 1 onebce FederationTestPlc1 [674, 474]
+327 1 onebcf FederationTestPlc1 [675, 475]
+328 1 onebcg FederationTestPlc1 [676, 476]
+329 1 onebch FederationTestPlc1 [677, 477]
+330 1 onebci FederationTestPlc1 [678, 478]
+331 1 onebcj FederationTestPlc1 [679, 479]
+332 1 onebda FederationTestPlc1 [680, 480]
+333 1 onebdb FederationTestPlc1 [681, 481]
+334 1 onebdc FederationTestPlc1 [682, 482]
+335 1 onebdd FederationTestPlc1 [683, 483]
+336 1 onebde FederationTestPlc1 [684, 484]
+337 1 onebdf FederationTestPlc1 [685, 485]
+338 1 onebdg FederationTestPlc1 [686, 486]
+339 1 onebdh FederationTestPlc1 [687, 487]
+340 1 onebdi FederationTestPlc1 [688, 488]
+341 1 onebdj FederationTestPlc1 [689, 489]
+342 1 onebea FederationTestPlc1 [690, 490]
+343 1 onebeb FederationTestPlc1 [691, 491]
+344 1 onebec FederationTestPlc1 [692, 492]
+345 1 onebed FederationTestPlc1 [693, 493]
+346 1 onebee FederationTestPlc1 [694, 494]
+347 1 onebef FederationTestPlc1 [695, 495]
+348 1 onebeg FederationTestPlc1 [696, 496]
+349 1 onebeh FederationTestPlc1 [697, 497]
+350 1 onebei FederationTestPlc1 [698, 498]
+351 1 onebej FederationTestPlc1 [699, 499]
+352 1 onebfa FederationTestPlc1 [700, 500]
+353 1 onebfb FederationTestPlc1 [501]
+354 1 onebfc FederationTestPlc1 [502]
+355 1 onebfd FederationTestPlc1 [503]
+356 1 onebfe FederationTestPlc1 [504]
+357 1 onebff FederationTestPlc1 [505]
+358 1 onebfg FederationTestPlc1 [506]
+359 1 onebfh FederationTestPlc1 [507]
+360 1 onebfi FederationTestPlc1 [508]
+361 1 onebfj FederationTestPlc1 [509]
+362 1 onebga FederationTestPlc1 [510]
+363 1 onebgb FederationTestPlc1 [511]
+364 1 onebgc FederationTestPlc1 [512]
+365 1 onebgd FederationTestPlc1 [513]
+366 1 onebge FederationTestPlc1 [514]
+367 1 onebgf FederationTestPlc1 [515]
+368 1 onebgg FederationTestPlc1 [516]
+369 1 onebgh FederationTestPlc1 [517]
+370 1 onebgi FederationTestPlc1 [518]
+371 1 onebgj FederationTestPlc1 [519]
+372 1 onebha FederationTestPlc1 [520]
+373 1 onebhb FederationTestPlc1 [521]
+374 1 onebhc FederationTestPlc1 [522]
+375 1 onebhd FederationTestPlc1 [523]
+376 1 onebhe FederationTestPlc1 [524]
+377 1 onebhf FederationTestPlc1 [525]
+378 1 onebhg FederationTestPlc1 [526]
+379 1 onebhh FederationTestPlc1 [527]
+380 1 onebhi FederationTestPlc1 [528]
+381 1 onebhj FederationTestPlc1 [529]
+382 1 onebia FederationTestPlc1 [530]
+383 1 onebib FederationTestPlc1 [531]
+384 1 onebic FederationTestPlc1 [532]
+385 1 onebid FederationTestPlc1 [533]
+386 1 onebie FederationTestPlc1 [534]
+387 1 onebif FederationTestPlc1 [535]
+388 1 onebig FederationTestPlc1 [536]
+389 1 onebih FederationTestPlc1 [537]
+390 1 onebii FederationTestPlc1 [538]
+391 1 onebij FederationTestPlc1 [539]
+392 1 onebja FederationTestPlc1 [540]
+393 1 onebjb FederationTestPlc1 [541]
+394 1 onebjc FederationTestPlc1 [542]
+395 1 onebjd FederationTestPlc1 [543]
+396 1 onebje FederationTestPlc1 [544]
+397 1 onebjf FederationTestPlc1 [545]
+398 1 onebjg FederationTestPlc1 [546]
+399 1 onebjh FederationTestPlc1 [547]
+400 1 onebji FederationTestPlc1 [548]
+401 1 onebjj FederationTestPlc1 [549]
+402 1 onecaa FederationTestPlc1 [550]
+02: KEYS
+1 None ssh-rsa somekey4plctestbed user1-key1
+2 None ssh-rsa somekey4plctestbed user2-key1
+3 None ssh-rsa somekey4plctestbed user3-key1
+4 None ssh-rsa somekey4plctestbed user4-key1
+5 None ssh-rsa somekey4plctestbed user5-key1
+6 None ssh-rsa somekey4plctestbed user6-key1
+7 None ssh-rsa somekey4plctestbed user7-key1
+8 None ssh-rsa somekey4plctestbed user8-key1
+9 None ssh-rsa somekey4plctestbed user9-key1
+10 None ssh-rsa somekey4plctestbed user10-key1
+11 None ssh-rsa somekey4plctestbed user11-key1
+12 None ssh-rsa somekey4plctestbed user12-key1
+13 None ssh-rsa somekey4plctestbed user13-key1
+14 None ssh-rsa somekey4plctestbed user14-key1
+15 None ssh-rsa somekey4plctestbed user15-key1
+16 None ssh-rsa somekey4plctestbed user16-key1
+17 None ssh-rsa somekey4plctestbed user17-key1
+18 None ssh-rsa somekey4plctestbed user18-key1
+19 None ssh-rsa somekey4plctestbed user19-key1
+20 None ssh-rsa somekey4plctestbed user20-key1
+21 None ssh-rsa somekey4plctestbed user21-key1
+22 None ssh-rsa somekey4plctestbed user22-key1
+23 None ssh-rsa somekey4plctestbed user23-key1
+24 None ssh-rsa somekey4plctestbed user24-key1
+25 None ssh-rsa somekey4plctestbed user25-key1
+26 None ssh-rsa somekey4plctestbed user26-key1
+27 None ssh-rsa somekey4plctestbed user27-key1
+28 None ssh-rsa somekey4plctestbed user28-key1
+29 None ssh-rsa somekey4plctestbed user29-key1
+30 None ssh-rsa somekey4plctestbed user30-key1
+31 None ssh-rsa somekey4plctestbed user31-key1
+32 None ssh-rsa somekey4plctestbed user32-key1
+33 None ssh-rsa somekey4plctestbed user33-key1
+34 None ssh-rsa somekey4plctestbed user34-key1
+35 None ssh-rsa somekey4plctestbed user35-key1
+36 None ssh-rsa somekey4plctestbed user36-key1
+37 None ssh-rsa somekey4plctestbed user37-key1
+38 None ssh-rsa somekey4plctestbed user38-key1
+39 None ssh-rsa somekey4plctestbed user39-key1
+40 None ssh-rsa somekey4plctestbed user40-key1
+41 None ssh-rsa somekey4plctestbed user41-key1
+42 None ssh-rsa somekey4plctestbed user42-key1
+43 None ssh-rsa somekey4plctestbed user43-key1
+44 None ssh-rsa somekey4plctestbed user44-key1
+45 None ssh-rsa somekey4plctestbed user45-key1
+46 None ssh-rsa somekey4plctestbed user46-key1
+47 None ssh-rsa somekey4plctestbed user47-key1
+48 None ssh-rsa somekey4plctestbed user48-key1
+49 None ssh-rsa somekey4plctestbed user49-key1
+50 None ssh-rsa somekey4plctestbed user50-key1
+51 None ssh-rsa somekey4plctestbed user51-key1
+52 None ssh-rsa somekey4plctestbed user52-key1
+53 None ssh-rsa somekey4plctestbed user53-key1
+54 None ssh-rsa somekey4plctestbed user54-key1
+55 None ssh-rsa somekey4plctestbed user55-key1
+56 None ssh-rsa somekey4plctestbed user56-key1
+57 None ssh-rsa somekey4plctestbed user57-key1
+58 None ssh-rsa somekey4plctestbed user58-key1
+59 None ssh-rsa somekey4plctestbed user59-key1
+60 None ssh-rsa somekey4plctestbed user60-key1
+61 None ssh-rsa somekey4plctestbed user61-key1
+62 None ssh-rsa somekey4plctestbed user62-key1
+63 None ssh-rsa somekey4plctestbed user63-key1
+64 None ssh-rsa somekey4plctestbed user64-key1
+65 None ssh-rsa somekey4plctestbed user65-key1
+66 None ssh-rsa somekey4plctestbed user66-key1
+67 None ssh-rsa somekey4plctestbed user67-key1
+68 None ssh-rsa somekey4plctestbed user68-key1
+69 None ssh-rsa somekey4plctestbed user69-key1
+70 None ssh-rsa somekey4plctestbed user70-key1
+71 None ssh-rsa somekey4plctestbed user71-key1
+72 None ssh-rsa somekey4plctestbed user72-key1
+73 None ssh-rsa somekey4plctestbed user73-key1
+74 None ssh-rsa somekey4plctestbed user74-key1
+75 None ssh-rsa somekey4plctestbed user75-key1
+76 None ssh-rsa somekey4plctestbed user76-key1
+77 None ssh-rsa somekey4plctestbed user77-key1
+78 None ssh-rsa somekey4plctestbed user78-key1
+79 None ssh-rsa somekey4plctestbed user79-key1
+80 None ssh-rsa somekey4plctestbed user80-key1
+81 None ssh-rsa somekey4plctestbed user81-key1
+82 None ssh-rsa somekey4plctestbed user82-key1
+83 None ssh-rsa somekey4plctestbed user83-key1
+84 None ssh-rsa somekey4plctestbed user84-key1
+85 None ssh-rsa somekey4plctestbed user85-key1
+86 None ssh-rsa somekey4plctestbed user86-key1
+87 None ssh-rsa somekey4plctestbed user87-key1
+88 None ssh-rsa somekey4plctestbed user88-key1
+89 None ssh-rsa somekey4plctestbed user89-key1
+90 None ssh-rsa somekey4plctestbed user90-key1
+91 None ssh-rsa somekey4plctestbed user91-key1
+92 None ssh-rsa somekey4plctestbed user92-key1
+93 None ssh-rsa somekey4plctestbed user93-key1
+94 None ssh-rsa somekey4plctestbed user94-key1
+95 None ssh-rsa somekey4plctestbed user95-key1
+96 None ssh-rsa somekey4plctestbed user96-key1
+97 None ssh-rsa somekey4plctestbed user97-key1
+98 None ssh-rsa somekey4plctestbed user98-key1
+99 None ssh-rsa somekey4plctestbed user99-key1
+100 None ssh-rsa somekey4plctestbed user100-key1
+101 None ssh-rsa somekey4plctestbed user101-key1
+102 None ssh-rsa somekey4plctestbed user102-key1
+103 None ssh-rsa somekey4plctestbed user103-key1
+104 None ssh-rsa somekey4plctestbed user104-key1
+105 None ssh-rsa somekey4plctestbed user105-key1
+106 None ssh-rsa somekey4plctestbed user106-key1
+107 None ssh-rsa somekey4plctestbed user107-key1
+108 None ssh-rsa somekey4plctestbed user108-key1
+109 None ssh-rsa somekey4plctestbed user109-key1
+110 None ssh-rsa somekey4plctestbed user110-key1
+111 None ssh-rsa somekey4plctestbed user111-key1
+112 None ssh-rsa somekey4plctestbed user112-key1
+113 None ssh-rsa somekey4plctestbed user113-key1
+114 None ssh-rsa somekey4plctestbed user114-key1
+115 None ssh-rsa somekey4plctestbed user115-key1
+116 None ssh-rsa somekey4plctestbed user116-key1
+117 None ssh-rsa somekey4plctestbed user117-key1
+118 None ssh-rsa somekey4plctestbed user118-key1
+119 None ssh-rsa somekey4plctestbed user119-key1
+120 None ssh-rsa somekey4plctestbed user120-key1
+121 None ssh-rsa somekey4plctestbed user121-key1
+122 None ssh-rsa somekey4plctestbed user122-key1
+123 None ssh-rsa somekey4plctestbed user123-key1
+124 None ssh-rsa somekey4plctestbed user124-key1
+125 None ssh-rsa somekey4plctestbed user125-key1
+126 None ssh-rsa somekey4plctestbed user126-key1
+127 None ssh-rsa somekey4plctestbed user127-key1
+128 None ssh-rsa somekey4plctestbed user128-key1
+129 None ssh-rsa somekey4plctestbed user129-key1
+130 None ssh-rsa somekey4plctestbed user130-key1
+131 None ssh-rsa somekey4plctestbed user131-key1
+132 None ssh-rsa somekey4plctestbed user132-key1
+133 None ssh-rsa somekey4plctestbed user133-key1
+134 None ssh-rsa somekey4plctestbed user134-key1
+135 None ssh-rsa somekey4plctestbed user135-key1
+136 None ssh-rsa somekey4plctestbed user136-key1
+137 None ssh-rsa somekey4plctestbed user137-key1
+138 None ssh-rsa somekey4plctestbed user138-key1
+139 None ssh-rsa somekey4plctestbed user139-key1
+140 None ssh-rsa somekey4plctestbed user140-key1
+141 None ssh-rsa somekey4plctestbed user141-key1
+142 None ssh-rsa somekey4plctestbed user142-key1
+143 None ssh-rsa somekey4plctestbed user143-key1
+144 None ssh-rsa somekey4plctestbed user144-key1
+145 None ssh-rsa somekey4plctestbed user145-key1
+146 None ssh-rsa somekey4plctestbed user146-key1
+147 None ssh-rsa somekey4plctestbed user147-key1
+148 None ssh-rsa somekey4plctestbed user148-key1
+149 None ssh-rsa somekey4plctestbed user149-key1
+150 None ssh-rsa somekey4plctestbed user150-key1
+151 None ssh-rsa somekey4plctestbed user151-key1
+152 None ssh-rsa somekey4plctestbed user152-key1
+153 None ssh-rsa somekey4plctestbed user153-key1
+154 None ssh-rsa somekey4plctestbed user154-key1
+155 None ssh-rsa somekey4plctestbed user155-key1
+156 None ssh-rsa somekey4plctestbed user156-key1
+157 None ssh-rsa somekey4plctestbed user157-key1
+158 None ssh-rsa somekey4plctestbed user158-key1
+159 None ssh-rsa somekey4plctestbed user159-key1
+160 None ssh-rsa somekey4plctestbed user160-key1
+161 None ssh-rsa somekey4plctestbed user161-key1
+162 None ssh-rsa somekey4plctestbed user162-key1
+163 None ssh-rsa somekey4plctestbed user163-key1
+164 None ssh-rsa somekey4plctestbed user164-key1
+165 None ssh-rsa somekey4plctestbed user165-key1
+166 None ssh-rsa somekey4plctestbed user166-key1
+167 None ssh-rsa somekey4plctestbed user167-key1
+168 None ssh-rsa somekey4plctestbed user168-key1
+169 None ssh-rsa somekey4plctestbed user169-key1
+170 None ssh-rsa somekey4plctestbed user170-key1
+171 None ssh-rsa somekey4plctestbed user171-key1
+172 None ssh-rsa somekey4plctestbed user172-key1
+173 None ssh-rsa somekey4plctestbed user173-key1
+174 None ssh-rsa somekey4plctestbed user174-key1
+175 None ssh-rsa somekey4plctestbed user175-key1
+176 None ssh-rsa somekey4plctestbed user176-key1
+177 None ssh-rsa somekey4plctestbed user177-key1
+178 None ssh-rsa somekey4plctestbed user178-key1
+179 None ssh-rsa somekey4plctestbed user179-key1
+180 None ssh-rsa somekey4plctestbed user180-key1
+181 None ssh-rsa somekey4plctestbed user181-key1
+182 None ssh-rsa somekey4plctestbed user182-key1
+183 None ssh-rsa somekey4plctestbed user183-key1
+184 None ssh-rsa somekey4plctestbed user184-key1
+185 None ssh-rsa somekey4plctestbed user185-key1
+186 None ssh-rsa somekey4plctestbed user186-key1
+187 None ssh-rsa somekey4plctestbed user187-key1
+188 None ssh-rsa somekey4plctestbed user188-key1
+189 None ssh-rsa somekey4plctestbed user189-key1
+190 None ssh-rsa somekey4plctestbed user190-key1
+191 None ssh-rsa somekey4plctestbed user191-key1
+192 None ssh-rsa somekey4plctestbed user192-key1
+193 None ssh-rsa somekey4plctestbed user193-key1
+194 None ssh-rsa somekey4plctestbed user194-key1
+195 None ssh-rsa somekey4plctestbed user195-key1
+196 None ssh-rsa somekey4plctestbed user196-key1
+197 None ssh-rsa somekey4plctestbed user197-key1
+198 None ssh-rsa somekey4plctestbed user198-key1
+199 None ssh-rsa somekey4plctestbed user199-key1
+200 None ssh-rsa somekey4plctestbed user200-key1
+201 None ssh-rsa somekey4plctestbed user201-key1
+202 None ssh-rsa somekey4plctestbed user202-key1
+203 None ssh-rsa somekey4plctestbed user203-key1
+204 None ssh-rsa somekey4plctestbed user204-key1
+205 None ssh-rsa somekey4plctestbed user205-key1
+206 None ssh-rsa somekey4plctestbed user206-key1
+207 None ssh-rsa somekey4plctestbed user207-key1
+208 None ssh-rsa somekey4plctestbed user208-key1
+209 None ssh-rsa somekey4plctestbed user209-key1
+210 None ssh-rsa somekey4plctestbed user210-key1
+211 None ssh-rsa somekey4plctestbed user211-key1
+212 None ssh-rsa somekey4plctestbed user212-key1
+213 None ssh-rsa somekey4plctestbed user213-key1
+214 None ssh-rsa somekey4plctestbed user214-key1
+215 None ssh-rsa somekey4plctestbed user215-key1
+216 None ssh-rsa somekey4plctestbed user216-key1
+217 None ssh-rsa somekey4plctestbed user217-key1
+218 None ssh-rsa somekey4plctestbed user218-key1
+219 None ssh-rsa somekey4plctestbed user219-key1
+220 None ssh-rsa somekey4plctestbed user220-key1
+221 None ssh-rsa somekey4plctestbed user221-key1
+222 None ssh-rsa somekey4plctestbed user222-key1
+223 None ssh-rsa somekey4plctestbed user223-key1
+224 None ssh-rsa somekey4plctestbed user224-key1
+225 None ssh-rsa somekey4plctestbed user225-key1
+226 None ssh-rsa somekey4plctestbed user226-key1
+227 None ssh-rsa somekey4plctestbed user227-key1
+228 None ssh-rsa somekey4plctestbed user228-key1
+229 None ssh-rsa somekey4plctestbed user229-key1
+230 None ssh-rsa somekey4plctestbed user230-key1
+231 None ssh-rsa somekey4plctestbed user231-key1
+232 None ssh-rsa somekey4plctestbed user232-key1
+233 None ssh-rsa somekey4plctestbed user233-key1
+234 None ssh-rsa somekey4plctestbed user234-key1
+235 None ssh-rsa somekey4plctestbed user235-key1
+236 None ssh-rsa somekey4plctestbed user236-key1
+237 None ssh-rsa somekey4plctestbed user237-key1
+238 None ssh-rsa somekey4plctestbed user238-key1
+239 None ssh-rsa somekey4plctestbed user239-key1
+240 None ssh-rsa somekey4plctestbed user240-key1
+241 None ssh-rsa somekey4plctestbed user241-key1
+242 None ssh-rsa somekey4plctestbed user242-key1
+243 None ssh-rsa somekey4plctestbed user243-key1
+244 None ssh-rsa somekey4plctestbed user244-key1
+245 None ssh-rsa somekey4plctestbed user245-key1
+246 None ssh-rsa somekey4plctestbed user246-key1
+247 None ssh-rsa somekey4plctestbed user247-key1
+248 None ssh-rsa somekey4plctestbed user248-key1
+249 None ssh-rsa somekey4plctestbed user249-key1
+250 None ssh-rsa somekey4plctestbed user250-key1
+251 None ssh-rsa somekey4plctestbed user251-key1
+252 None ssh-rsa somekey4plctestbed user252-key1
+253 None ssh-rsa somekey4plctestbed user253-key1
+254 None ssh-rsa somekey4plctestbed user254-key1
+255 None ssh-rsa somekey4plctestbed user255-key1
+256 None ssh-rsa somekey4plctestbed user256-key1
+257 None ssh-rsa somekey4plctestbed user257-key1
+258 None ssh-rsa somekey4plctestbed user258-key1
+259 None ssh-rsa somekey4plctestbed user259-key1
+260 None ssh-rsa somekey4plctestbed user260-key1
+261 None ssh-rsa somekey4plctestbed user261-key1
+262 None ssh-rsa somekey4plctestbed user262-key1
+263 None ssh-rsa somekey4plctestbed user263-key1
+264 None ssh-rsa somekey4plctestbed user264-key1
+265 None ssh-rsa somekey4plctestbed user265-key1
+266 None ssh-rsa somekey4plctestbed user266-key1
+267 None ssh-rsa somekey4plctestbed user267-key1
+268 None ssh-rsa somekey4plctestbed user268-key1
+269 None ssh-rsa somekey4plctestbed user269-key1
+270 None ssh-rsa somekey4plctestbed user270-key1
+271 None ssh-rsa somekey4plctestbed user271-key1
+272 None ssh-rsa somekey4plctestbed user272-key1
+273 None ssh-rsa somekey4plctestbed user273-key1
+274 None ssh-rsa somekey4plctestbed user274-key1
+275 None ssh-rsa somekey4plctestbed user275-key1
+276 None ssh-rsa somekey4plctestbed user276-key1
+277 None ssh-rsa somekey4plctestbed user277-key1
+278 None ssh-rsa somekey4plctestbed user278-key1
+279 None ssh-rsa somekey4plctestbed user279-key1
+280 None ssh-rsa somekey4plctestbed user280-key1
+281 None ssh-rsa somekey4plctestbed user281-key1
+282 None ssh-rsa somekey4plctestbed user282-key1
+283 None ssh-rsa somekey4plctestbed user283-key1
+284 None ssh-rsa somekey4plctestbed user284-key1
+285 None ssh-rsa somekey4plctestbed user285-key1
+286 None ssh-rsa somekey4plctestbed user286-key1
+287 None ssh-rsa somekey4plctestbed user287-key1
+288 None ssh-rsa somekey4plctestbed user288-key1
+289 None ssh-rsa somekey4plctestbed user289-key1
+290 None ssh-rsa somekey4plctestbed user290-key1
+291 None ssh-rsa somekey4plctestbed user291-key1
+292 None ssh-rsa somekey4plctestbed user292-key1
+293 None ssh-rsa somekey4plctestbed user293-key1
+294 None ssh-rsa somekey4plctestbed user294-key1
+295 None ssh-rsa somekey4plctestbed user295-key1
+296 None ssh-rsa somekey4plctestbed user296-key1
+297 None ssh-rsa somekey4plctestbed user297-key1
+298 None ssh-rsa somekey4plctestbed user298-key1
+299 None ssh-rsa somekey4plctestbed user299-key1
+300 None ssh-rsa somekey4plctestbed user300-key1
+301 None ssh-rsa somekey4plctestbed user301-key1
+302 None ssh-rsa somekey4plctestbed user302-key1
+303 None ssh-rsa somekey4plctestbed user303-key1
+304 None ssh-rsa somekey4plctestbed user304-key1
+305 None ssh-rsa somekey4plctestbed user305-key1
+306 None ssh-rsa somekey4plctestbed user306-key1
+307 None ssh-rsa somekey4plctestbed user307-key1
+308 None ssh-rsa somekey4plctestbed user308-key1
+309 None ssh-rsa somekey4plctestbed user309-key1
+310 None ssh-rsa somekey4plctestbed user310-key1
+311 None ssh-rsa somekey4plctestbed user311-key1
+312 None ssh-rsa somekey4plctestbed user312-key1
+313 None ssh-rsa somekey4plctestbed user313-key1
+314 None ssh-rsa somekey4plctestbed user314-key1
+315 None ssh-rsa somekey4plctestbed user315-key1
+316 None ssh-rsa somekey4plctestbed user316-key1
+317 None ssh-rsa somekey4plctestbed user317-key1
+318 None ssh-rsa somekey4plctestbed user318-key1
+319 None ssh-rsa somekey4plctestbed user319-key1
+320 None ssh-rsa somekey4plctestbed user320-key1
+321 None ssh-rsa somekey4plctestbed user321-key1
+322 None ssh-rsa somekey4plctestbed user322-key1
+323 None ssh-rsa somekey4plctestbed user323-key1
+324 None ssh-rsa somekey4plctestbed user324-key1
+325 None ssh-rsa somekey4plctestbed user325-key1
+326 None ssh-rsa somekey4plctestbed user326-key1
+327 None ssh-rsa somekey4plctestbed user327-key1
+328 None ssh-rsa somekey4plctestbed user328-key1
+329 None ssh-rsa somekey4plctestbed user329-key1
+330 None ssh-rsa somekey4plctestbed user330-key1
+331 None ssh-rsa somekey4plctestbed user331-key1
+332 None ssh-rsa somekey4plctestbed user332-key1
+333 None ssh-rsa somekey4plctestbed user333-key1
+334 None ssh-rsa somekey4plctestbed user334-key1
+335 None ssh-rsa somekey4plctestbed user335-key1
+336 None ssh-rsa somekey4plctestbed user336-key1
+337 None ssh-rsa somekey4plctestbed user337-key1
+338 None ssh-rsa somekey4plctestbed user338-key1
+339 None ssh-rsa somekey4plctestbed user339-key1
+340 None ssh-rsa somekey4plctestbed user340-key1
+341 None ssh-rsa somekey4plctestbed user341-key1
+342 None ssh-rsa somekey4plctestbed user342-key1
+343 None ssh-rsa somekey4plctestbed user343-key1
+344 None ssh-rsa somekey4plctestbed user344-key1
+345 None ssh-rsa somekey4plctestbed user345-key1
+346 None ssh-rsa somekey4plctestbed user346-key1
+347 None ssh-rsa somekey4plctestbed user347-key1
+348 None ssh-rsa somekey4plctestbed user348-key1
+349 None ssh-rsa somekey4plctestbed user349-key1
+350 None ssh-rsa somekey4plctestbed user350-key1
+351 None ssh-rsa somekey4plctestbed user351-key1
+352 None ssh-rsa somekey4plctestbed user352-key1
+353 None ssh-rsa somekey4plctestbed user353-key1
+354 None ssh-rsa somekey4plctestbed user354-key1
+355 None ssh-rsa somekey4plctestbed user355-key1
+356 None ssh-rsa somekey4plctestbed user356-key1
+357 None ssh-rsa somekey4plctestbed user357-key1
+358 None ssh-rsa somekey4plctestbed user358-key1
+359 None ssh-rsa somekey4plctestbed user359-key1
+360 None ssh-rsa somekey4plctestbed user360-key1
+361 None ssh-rsa somekey4plctestbed user361-key1
+362 None ssh-rsa somekey4plctestbed user362-key1
+363 None ssh-rsa somekey4plctestbed user363-key1
+364 None ssh-rsa somekey4plctestbed user364-key1
+365 None ssh-rsa somekey4plctestbed user365-key1
+366 None ssh-rsa somekey4plctestbed user366-key1
+367 None ssh-rsa somekey4plctestbed user367-key1
+368 None ssh-rsa somekey4plctestbed user368-key1
+369 None ssh-rsa somekey4plctestbed user369-key1
+370 None ssh-rsa somekey4plctestbed user370-key1
+371 None ssh-rsa somekey4plctestbed user371-key1
+372 None ssh-rsa somekey4plctestbed user372-key1
+373 None ssh-rsa somekey4plctestbed user373-key1
+374 None ssh-rsa somekey4plctestbed user374-key1
+375 None ssh-rsa somekey4plctestbed user375-key1
+376 None ssh-rsa somekey4plctestbed user376-key1
+377 None ssh-rsa somekey4plctestbed user377-key1
+378 None ssh-rsa somekey4plctestbed user378-key1
+379 None ssh-rsa somekey4plctestbed user379-key1
+380 None ssh-rsa somekey4plctestbed user380-key1
+381 None ssh-rsa somekey4plctestbed user381-key1
+382 None ssh-rsa somekey4plctestbed user382-key1
+383 None ssh-rsa somekey4plctestbed user383-key1
+384 None ssh-rsa somekey4plctestbed user384-key1
+385 None ssh-rsa somekey4plctestbed user385-key1
+386 None ssh-rsa somekey4plctestbed user386-key1
+387 None ssh-rsa somekey4plctestbed user387-key1
+388 None ssh-rsa somekey4plctestbed user388-key1
+389 None ssh-rsa somekey4plctestbed user389-key1
+390 None ssh-rsa somekey4plctestbed user390-key1
+391 None ssh-rsa somekey4plctestbed user391-key1
+392 None ssh-rsa somekey4plctestbed user392-key1
+393 None ssh-rsa somekey4plctestbed user393-key1
+394 None ssh-rsa somekey4plctestbed user394-key1
+395 None ssh-rsa somekey4plctestbed user395-key1
+396 None ssh-rsa somekey4plctestbed user396-key1
+397 None ssh-rsa somekey4plctestbed user397-key1
+398 None ssh-rsa somekey4plctestbed user398-key1
+399 None ssh-rsa somekey4plctestbed user399-key1
+400 None ssh-rsa somekey4plctestbed user400-key1
+401 None ssh-rsa somekey4plctestbed user401-key1
+402 None ssh-rsa somekey4plctestbed user402-key1
+403 None ssh-rsa somekey4plctestbed user403-key1
+404 None ssh-rsa somekey4plctestbed user404-key1
+405 None ssh-rsa somekey4plctestbed user405-key1
+406 None ssh-rsa somekey4plctestbed user406-key1
+407 None ssh-rsa somekey4plctestbed user407-key1
+408 None ssh-rsa somekey4plctestbed user408-key1
+409 None ssh-rsa somekey4plctestbed user409-key1
+410 None ssh-rsa somekey4plctestbed user410-key1
+411 None ssh-rsa somekey4plctestbed user411-key1
+412 None ssh-rsa somekey4plctestbed user412-key1
+413 None ssh-rsa somekey4plctestbed user413-key1
+414 None ssh-rsa somekey4plctestbed user414-key1
+415 None ssh-rsa somekey4plctestbed user415-key1
+416 None ssh-rsa somekey4plctestbed user416-key1
+417 None ssh-rsa somekey4plctestbed user417-key1
+418 None ssh-rsa somekey4plctestbed user418-key1
+419 None ssh-rsa somekey4plctestbed user419-key1
+420 None ssh-rsa somekey4plctestbed user420-key1
+421 None ssh-rsa somekey4plctestbed user421-key1
+422 None ssh-rsa somekey4plctestbed user422-key1
+423 None ssh-rsa somekey4plctestbed user423-key1
+424 None ssh-rsa somekey4plctestbed user424-key1
+425 None ssh-rsa somekey4plctestbed user425-key1
+426 None ssh-rsa somekey4plctestbed user426-key1
+427 None ssh-rsa somekey4plctestbed user427-key1
+428 None ssh-rsa somekey4plctestbed user428-key1
+429 None ssh-rsa somekey4plctestbed user429-key1
+430 None ssh-rsa somekey4plctestbed user430-key1
+431 None ssh-rsa somekey4plctestbed user431-key1
+432 None ssh-rsa somekey4plctestbed user432-key1
+433 None ssh-rsa somekey4plctestbed user433-key1
+434 None ssh-rsa somekey4plctestbed user434-key1
+435 None ssh-rsa somekey4plctestbed user435-key1
+436 None ssh-rsa somekey4plctestbed user436-key1
+437 None ssh-rsa somekey4plctestbed user437-key1
+438 None ssh-rsa somekey4plctestbed user438-key1
+439 None ssh-rsa somekey4plctestbed user439-key1
+440 None ssh-rsa somekey4plctestbed user440-key1
+441 None ssh-rsa somekey4plctestbed user441-key1
+442 None ssh-rsa somekey4plctestbed user442-key1
+443 None ssh-rsa somekey4plctestbed user443-key1
+444 None ssh-rsa somekey4plctestbed user444-key1
+445 None ssh-rsa somekey4plctestbed user445-key1
+446 None ssh-rsa somekey4plctestbed user446-key1
+447 None ssh-rsa somekey4plctestbed user447-key1
+448 None ssh-rsa somekey4plctestbed user448-key1
+449 None ssh-rsa somekey4plctestbed user449-key1
+450 None ssh-rsa somekey4plctestbed user450-key1
+451 None ssh-rsa somekey4plctestbed user451-key1
+452 None ssh-rsa somekey4plctestbed user452-key1
+453 None ssh-rsa somekey4plctestbed user453-key1
+454 None ssh-rsa somekey4plctestbed user454-key1
+455 None ssh-rsa somekey4plctestbed user455-key1
+456 None ssh-rsa somekey4plctestbed user456-key1
+457 None ssh-rsa somekey4plctestbed user457-key1
+458 None ssh-rsa somekey4plctestbed user458-key1
+459 None ssh-rsa somekey4plctestbed user459-key1
+460 None ssh-rsa somekey4plctestbed user460-key1
+461 None ssh-rsa somekey4plctestbed user461-key1
+462 None ssh-rsa somekey4plctestbed user462-key1
+463 None ssh-rsa somekey4plctestbed user463-key1
+464 None ssh-rsa somekey4plctestbed user464-key1
+465 None ssh-rsa somekey4plctestbed user465-key1
+466 None ssh-rsa somekey4plctestbed user466-key1
+467 None ssh-rsa somekey4plctestbed user467-key1
+468 None ssh-rsa somekey4plctestbed user468-key1
+469 None ssh-rsa somekey4plctestbed user469-key1
+470 None ssh-rsa somekey4plctestbed user470-key1
+471 None ssh-rsa somekey4plctestbed user471-key1
+472 None ssh-rsa somekey4plctestbed user472-key1
+473 None ssh-rsa somekey4plctestbed user473-key1
+474 None ssh-rsa somekey4plctestbed user474-key1
+475 None ssh-rsa somekey4plctestbed user475-key1
+476 None ssh-rsa somekey4plctestbed user476-key1
+477 None ssh-rsa somekey4plctestbed user477-key1
+478 None ssh-rsa somekey4plctestbed user478-key1
+479 None ssh-rsa somekey4plctestbed user479-key1
+480 None ssh-rsa somekey4plctestbed user480-key1
+481 None ssh-rsa somekey4plctestbed user481-key1
+482 None ssh-rsa somekey4plctestbed user482-key1
+483 None ssh-rsa somekey4plctestbed user483-key1
+484 None ssh-rsa somekey4plctestbed user484-key1
+485 None ssh-rsa somekey4plctestbed user485-key1
+486 None ssh-rsa somekey4plctestbed user486-key1
+487 None ssh-rsa somekey4plctestbed user487-key1
+488 None ssh-rsa somekey4plctestbed user488-key1
+489 None ssh-rsa somekey4plctestbed user489-key1
+490 None ssh-rsa somekey4plctestbed user490-key1
+491 None ssh-rsa somekey4plctestbed user491-key1
+492 None ssh-rsa somekey4plctestbed user492-key1
+493 None ssh-rsa somekey4plctestbed user493-key1
+494 None ssh-rsa somekey4plctestbed user494-key1
+495 None ssh-rsa somekey4plctestbed user495-key1
+496 None ssh-rsa somekey4plctestbed user496-key1
+497 None ssh-rsa somekey4plctestbed user497-key1
+498 None ssh-rsa somekey4plctestbed user498-key1
+499 None ssh-rsa somekey4plctestbed user499-key1
+500 None ssh-rsa somekey4plctestbed user500-key1
+501 1 ssh-rsa somekey4plctestbed user1-key1
+502 1 ssh-rsa somekey4plctestbed user2-key1
+503 1 ssh-rsa somekey4plctestbed user3-key1
+504 1 ssh-rsa somekey4plctestbed user4-key1
+505 1 ssh-rsa somekey4plctestbed user5-key1
+506 1 ssh-rsa somekey4plctestbed user6-key1
+507 1 ssh-rsa somekey4plctestbed user7-key1
+508 1 ssh-rsa somekey4plctestbed user8-key1
+509 1 ssh-rsa somekey4plctestbed user9-key1
+510 1 ssh-rsa somekey4plctestbed user10-key1
+511 1 ssh-rsa somekey4plctestbed user11-key1
+512 1 ssh-rsa somekey4plctestbed user12-key1
+513 1 ssh-rsa somekey4plctestbed user13-key1
+514 1 ssh-rsa somekey4plctestbed user14-key1
+515 1 ssh-rsa somekey4plctestbed user15-key1
+516 1 ssh-rsa somekey4plctestbed user16-key1
+517 1 ssh-rsa somekey4plctestbed user17-key1
+518 1 ssh-rsa somekey4plctestbed user18-key1
+519 1 ssh-rsa somekey4plctestbed user19-key1
+520 1 ssh-rsa somekey4plctestbed user20-key1
+521 1 ssh-rsa somekey4plctestbed user21-key1
+522 1 ssh-rsa somekey4plctestbed user22-key1
+523 1 ssh-rsa somekey4plctestbed user23-key1
+524 1 ssh-rsa somekey4plctestbed user24-key1
+525 1 ssh-rsa somekey4plctestbed user25-key1
+526 1 ssh-rsa somekey4plctestbed user26-key1
+527 1 ssh-rsa somekey4plctestbed user27-key1
+528 1 ssh-rsa somekey4plctestbed user28-key1
+529 1 ssh-rsa somekey4plctestbed user29-key1
+530 1 ssh-rsa somekey4plctestbed user30-key1
+531 1 ssh-rsa somekey4plctestbed user31-key1
+532 1 ssh-rsa somekey4plctestbed user32-key1
+533 1 ssh-rsa somekey4plctestbed user33-key1
+534 1 ssh-rsa somekey4plctestbed user34-key1
+535 1 ssh-rsa somekey4plctestbed user35-key1
+536 1 ssh-rsa somekey4plctestbed user36-key1
+537 1 ssh-rsa somekey4plctestbed user37-key1
+538 1 ssh-rsa somekey4plctestbed user38-key1
+539 1 ssh-rsa somekey4plctestbed user39-key1
+540 1 ssh-rsa somekey4plctestbed user40-key1
+541 1 ssh-rsa somekey4plctestbed user41-key1
+542 1 ssh-rsa somekey4plctestbed user42-key1
+543 1 ssh-rsa somekey4plctestbed user43-key1
+544 1 ssh-rsa somekey4plctestbed user44-key1
+545 1 ssh-rsa somekey4plctestbed user45-key1
+546 1 ssh-rsa somekey4plctestbed user46-key1
+547 1 ssh-rsa somekey4plctestbed user47-key1
+548 1 ssh-rsa somekey4plctestbed user48-key1
+549 1 ssh-rsa somekey4plctestbed user49-key1
+550 1 ssh-rsa somekey4plctestbed user50-key1
+551 1 ssh-rsa somekey4plctestbed user51-key1
+552 1 ssh-rsa somekey4plctestbed user52-key1
+553 1 ssh-rsa somekey4plctestbed user53-key1
+554 1 ssh-rsa somekey4plctestbed user54-key1
+555 1 ssh-rsa somekey4plctestbed user55-key1
+556 1 ssh-rsa somekey4plctestbed user56-key1
+557 1 ssh-rsa somekey4plctestbed user57-key1
+558 1 ssh-rsa somekey4plctestbed user58-key1
+559 1 ssh-rsa somekey4plctestbed user59-key1
+560 1 ssh-rsa somekey4plctestbed user60-key1
+561 1 ssh-rsa somekey4plctestbed user61-key1
+562 1 ssh-rsa somekey4plctestbed user62-key1
+563 1 ssh-rsa somekey4plctestbed user63-key1
+564 1 ssh-rsa somekey4plctestbed user64-key1
+565 1 ssh-rsa somekey4plctestbed user65-key1
+566 1 ssh-rsa somekey4plctestbed user66-key1
+567 1 ssh-rsa somekey4plctestbed user67-key1
+568 1 ssh-rsa somekey4plctestbed user68-key1
+569 1 ssh-rsa somekey4plctestbed user69-key1
+570 1 ssh-rsa somekey4plctestbed user70-key1
+571 1 ssh-rsa somekey4plctestbed user71-key1
+572 1 ssh-rsa somekey4plctestbed user72-key1
+573 1 ssh-rsa somekey4plctestbed user73-key1
+574 1 ssh-rsa somekey4plctestbed user74-key1
+575 1 ssh-rsa somekey4plctestbed user75-key1
+576 1 ssh-rsa somekey4plctestbed user76-key1
+577 1 ssh-rsa somekey4plctestbed user77-key1
+578 1 ssh-rsa somekey4plctestbed user78-key1
+579 1 ssh-rsa somekey4plctestbed user79-key1
+580 1 ssh-rsa somekey4plctestbed user80-key1
+581 1 ssh-rsa somekey4plctestbed user81-key1
+582 1 ssh-rsa somekey4plctestbed user82-key1
+583 1 ssh-rsa somekey4plctestbed user83-key1
+584 1 ssh-rsa somekey4plctestbed user84-key1
+585 1 ssh-rsa somekey4plctestbed user85-key1
+586 1 ssh-rsa somekey4plctestbed user86-key1
+587 1 ssh-rsa somekey4plctestbed user87-key1
+588 1 ssh-rsa somekey4plctestbed user88-key1
+589 1 ssh-rsa somekey4plctestbed user89-key1
+590 1 ssh-rsa somekey4plctestbed user90-key1
+591 1 ssh-rsa somekey4plctestbed user91-key1
+592 1 ssh-rsa somekey4plctestbed user92-key1
+593 1 ssh-rsa somekey4plctestbed user93-key1
+594 1 ssh-rsa somekey4plctestbed user94-key1
+595 1 ssh-rsa somekey4plctestbed user95-key1
+596 1 ssh-rsa somekey4plctestbed user96-key1
+597 1 ssh-rsa somekey4plctestbed user97-key1
+598 1 ssh-rsa somekey4plctestbed user98-key1
+599 1 ssh-rsa somekey4plctestbed user99-key1
+600 1 ssh-rsa somekey4plctestbed user100-key1
+601 1 ssh-rsa somekey4plctestbed user101-key1
+602 1 ssh-rsa somekey4plctestbed user102-key1
+603 1 ssh-rsa somekey4plctestbed user103-key1
+604 1 ssh-rsa somekey4plctestbed user104-key1
+605 1 ssh-rsa somekey4plctestbed user105-key1
+606 1 ssh-rsa somekey4plctestbed user106-key1
+607 1 ssh-rsa somekey4plctestbed user107-key1
+608 1 ssh-rsa somekey4plctestbed user108-key1
+609 1 ssh-rsa somekey4plctestbed user109-key1
+610 1 ssh-rsa somekey4plctestbed user110-key1
+611 1 ssh-rsa somekey4plctestbed user111-key1
+612 1 ssh-rsa somekey4plctestbed user112-key1
+613 1 ssh-rsa somekey4plctestbed user113-key1
+614 1 ssh-rsa somekey4plctestbed user114-key1
+615 1 ssh-rsa somekey4plctestbed user115-key1
+616 1 ssh-rsa somekey4plctestbed user116-key1
+617 1 ssh-rsa somekey4plctestbed user117-key1
+618 1 ssh-rsa somekey4plctestbed user118-key1
+619 1 ssh-rsa somekey4plctestbed user119-key1
+620 1 ssh-rsa somekey4plctestbed user120-key1
+621 1 ssh-rsa somekey4plctestbed user121-key1
+622 1 ssh-rsa somekey4plctestbed user122-key1
+623 1 ssh-rsa somekey4plctestbed user123-key1
+624 1 ssh-rsa somekey4plctestbed user124-key1
+625 1 ssh-rsa somekey4plctestbed user125-key1
+626 1 ssh-rsa somekey4plctestbed user126-key1
+627 1 ssh-rsa somekey4plctestbed user127-key1
+628 1 ssh-rsa somekey4plctestbed user128-key1
+629 1 ssh-rsa somekey4plctestbed user129-key1
+630 1 ssh-rsa somekey4plctestbed user130-key1
+631 1 ssh-rsa somekey4plctestbed user131-key1
+632 1 ssh-rsa somekey4plctestbed user132-key1
+633 1 ssh-rsa somekey4plctestbed user133-key1
+634 1 ssh-rsa somekey4plctestbed user134-key1
+635 1 ssh-rsa somekey4plctestbed user135-key1
+636 1 ssh-rsa somekey4plctestbed user136-key1
+637 1 ssh-rsa somekey4plctestbed user137-key1
+638 1 ssh-rsa somekey4plctestbed user138-key1
+639 1 ssh-rsa somekey4plctestbed user139-key1
+640 1 ssh-rsa somekey4plctestbed user140-key1
+641 1 ssh-rsa somekey4plctestbed user141-key1
+642 1 ssh-rsa somekey4plctestbed user142-key1
+643 1 ssh-rsa somekey4plctestbed user143-key1
+644 1 ssh-rsa somekey4plctestbed user144-key1
+645 1 ssh-rsa somekey4plctestbed user145-key1
+646 1 ssh-rsa somekey4plctestbed user146-key1
+647 1 ssh-rsa somekey4plctestbed user147-key1
+648 1 ssh-rsa somekey4plctestbed user148-key1
+649 1 ssh-rsa somekey4plctestbed user149-key1
+650 1 ssh-rsa somekey4plctestbed user150-key1
+651 1 ssh-rsa somekey4plctestbed user151-key1
+652 1 ssh-rsa somekey4plctestbed user152-key1
+653 1 ssh-rsa somekey4plctestbed user153-key1
+654 1 ssh-rsa somekey4plctestbed user154-key1
+655 1 ssh-rsa somekey4plctestbed user155-key1
+656 1 ssh-rsa somekey4plctestbed user156-key1
+657 1 ssh-rsa somekey4plctestbed user157-key1
+658 1 ssh-rsa somekey4plctestbed user158-key1
+659 1 ssh-rsa somekey4plctestbed user159-key1
+660 1 ssh-rsa somekey4plctestbed user160-key1
+661 1 ssh-rsa somekey4plctestbed user161-key1
+662 1 ssh-rsa somekey4plctestbed user162-key1
+663 1 ssh-rsa somekey4plctestbed user163-key1
+664 1 ssh-rsa somekey4plctestbed user164-key1
+665 1 ssh-rsa somekey4plctestbed user165-key1
+666 1 ssh-rsa somekey4plctestbed user166-key1
+667 1 ssh-rsa somekey4plctestbed user167-key1
+668 1 ssh-rsa somekey4plctestbed user168-key1
+669 1 ssh-rsa somekey4plctestbed user169-key1
+670 1 ssh-rsa somekey4plctestbed user170-key1
+671 1 ssh-rsa somekey4plctestbed user171-key1
+672 1 ssh-rsa somekey4plctestbed user172-key1
+673 1 ssh-rsa somekey4plctestbed user173-key1
+674 1 ssh-rsa somekey4plctestbed user174-key1
+675 1 ssh-rsa somekey4plctestbed user175-key1
+676 1 ssh-rsa somekey4plctestbed user176-key1
+677 1 ssh-rsa somekey4plctestbed user177-key1
+678 1 ssh-rsa somekey4plctestbed user178-key1
+679 1 ssh-rsa somekey4plctestbed user179-key1
+680 1 ssh-rsa somekey4plctestbed user180-key1
+681 1 ssh-rsa somekey4plctestbed user181-key1
+682 1 ssh-rsa somekey4plctestbed user182-key1
+683 1 ssh-rsa somekey4plctestbed user183-key1
+684 1 ssh-rsa somekey4plctestbed user184-key1
+685 1 ssh-rsa somekey4plctestbed user185-key1
+686 1 ssh-rsa somekey4plctestbed user186-key1
+687 1 ssh-rsa somekey4plctestbed user187-key1
+688 1 ssh-rsa somekey4plctestbed user188-key1
+689 1 ssh-rsa somekey4plctestbed user189-key1
+690 1 ssh-rsa somekey4plctestbed user190-key1
+691 1 ssh-rsa somekey4plctestbed user191-key1
+692 1 ssh-rsa somekey4plctestbed user192-key1
+693 1 ssh-rsa somekey4plctestbed user193-key1
+694 1 ssh-rsa somekey4plctestbed user194-key1
+695 1 ssh-rsa somekey4plctestbed user195-key1
+696 1 ssh-rsa somekey4plctestbed user196-key1
+697 1 ssh-rsa somekey4plctestbed user197-key1
+698 1 ssh-rsa somekey4plctestbed user198-key1
+699 1 ssh-rsa somekey4plctestbed user199-key1
+700 1 ssh-rsa somekey4plctestbed user200-key1
+701 1 ssh-rsa somekey4plctestbed user201-key1
+702 1 ssh-rsa somekey4plctestbed user202-key1
+703 1 ssh-rsa somekey4plctestbed user203-key1
+704 1 ssh-rsa somekey4plctestbed user204-key1
+705 1 ssh-rsa somekey4plctestbed user205-key1
+706 1 ssh-rsa somekey4plctestbed user206-key1
+707 1 ssh-rsa somekey4plctestbed user207-key1
+708 1 ssh-rsa somekey4plctestbed user208-key1
+709 1 ssh-rsa somekey4plctestbed user209-key1
+710 1 ssh-rsa somekey4plctestbed user210-key1
+711 1 ssh-rsa somekey4plctestbed user211-key1
+712 1 ssh-rsa somekey4plctestbed user212-key1
+713 1 ssh-rsa somekey4plctestbed user213-key1
+714 1 ssh-rsa somekey4plctestbed user214-key1
+715 1 ssh-rsa somekey4plctestbed user215-key1
+716 1 ssh-rsa somekey4plctestbed user216-key1
+717 1 ssh-rsa somekey4plctestbed user217-key1
+718 1 ssh-rsa somekey4plctestbed user218-key1
+719 1 ssh-rsa somekey4plctestbed user219-key1
+720 1 ssh-rsa somekey4plctestbed user220-key1
+721 1 ssh-rsa somekey4plctestbed user221-key1
+722 1 ssh-rsa somekey4plctestbed user222-key1
+723 1 ssh-rsa somekey4plctestbed user223-key1
+724 1 ssh-rsa somekey4plctestbed user224-key1
+725 1 ssh-rsa somekey4plctestbed user225-key1
+726 1 ssh-rsa somekey4plctestbed user226-key1
+727 1 ssh-rsa somekey4plctestbed user227-key1
+728 1 ssh-rsa somekey4plctestbed user228-key1
+729 1 ssh-rsa somekey4plctestbed user229-key1
+730 1 ssh-rsa somekey4plctestbed user230-key1
+731 1 ssh-rsa somekey4plctestbed user231-key1
+732 1 ssh-rsa somekey4plctestbed user232-key1
+733 1 ssh-rsa somekey4plctestbed user233-key1
+734 1 ssh-rsa somekey4plctestbed user234-key1
+735 1 ssh-rsa somekey4plctestbed user235-key1
+736 1 ssh-rsa somekey4plctestbed user236-key1
+737 1 ssh-rsa somekey4plctestbed user237-key1
+738 1 ssh-rsa somekey4plctestbed user238-key1
+739 1 ssh-rsa somekey4plctestbed user239-key1
+740 1 ssh-rsa somekey4plctestbed user240-key1
+741 1 ssh-rsa somekey4plctestbed user241-key1
+742 1 ssh-rsa somekey4plctestbed user242-key1
+743 1 ssh-rsa somekey4plctestbed user243-key1
+744 1 ssh-rsa somekey4plctestbed user244-key1
+745 1 ssh-rsa somekey4plctestbed user245-key1
+746 1 ssh-rsa somekey4plctestbed user246-key1
+747 1 ssh-rsa somekey4plctestbed user247-key1
+748 1 ssh-rsa somekey4plctestbed user248-key1
+749 1 ssh-rsa somekey4plctestbed user249-key1
+750 1 ssh-rsa somekey4plctestbed user250-key1
+751 1 ssh-rsa somekey4plctestbed user251-key1
+752 1 ssh-rsa somekey4plctestbed user252-key1
+753 1 ssh-rsa somekey4plctestbed user253-key1
+754 1 ssh-rsa somekey4plctestbed user254-key1
+755 1 ssh-rsa somekey4plctestbed user255-key1
+756 1 ssh-rsa somekey4plctestbed user256-key1
+757 1 ssh-rsa somekey4plctestbed user257-key1
+758 1 ssh-rsa somekey4plctestbed user258-key1
+759 1 ssh-rsa somekey4plctestbed user259-key1
+760 1 ssh-rsa somekey4plctestbed user260-key1
+761 1 ssh-rsa somekey4plctestbed user261-key1
+762 1 ssh-rsa somekey4plctestbed user262-key1
+763 1 ssh-rsa somekey4plctestbed user263-key1
+764 1 ssh-rsa somekey4plctestbed user264-key1
+765 1 ssh-rsa somekey4plctestbed user265-key1
+766 1 ssh-rsa somekey4plctestbed user266-key1
+767 1 ssh-rsa somekey4plctestbed user267-key1
+768 1 ssh-rsa somekey4plctestbed user268-key1
+769 1 ssh-rsa somekey4plctestbed user269-key1
+770 1 ssh-rsa somekey4plctestbed user270-key1
+771 1 ssh-rsa somekey4plctestbed user271-key1
+772 1 ssh-rsa somekey4plctestbed user272-key1
+773 1 ssh-rsa somekey4plctestbed user273-key1
+774 1 ssh-rsa somekey4plctestbed user274-key1
+775 1 ssh-rsa somekey4plctestbed user275-key1
+776 1 ssh-rsa somekey4plctestbed user276-key1
+777 1 ssh-rsa somekey4plctestbed user277-key1
+778 1 ssh-rsa somekey4plctestbed user278-key1
+779 1 ssh-rsa somekey4plctestbed user279-key1
+780 1 ssh-rsa somekey4plctestbed user280-key1
+781 1 ssh-rsa somekey4plctestbed user281-key1
+782 1 ssh-rsa somekey4plctestbed user282-key1
+783 1 ssh-rsa somekey4plctestbed user283-key1
+784 1 ssh-rsa somekey4plctestbed user284-key1
+785 1 ssh-rsa somekey4plctestbed user285-key1
+786 1 ssh-rsa somekey4plctestbed user286-key1
+787 1 ssh-rsa somekey4plctestbed user287-key1
+788 1 ssh-rsa somekey4plctestbed user288-key1
+789 1 ssh-rsa somekey4plctestbed user289-key1
+790 1 ssh-rsa somekey4plctestbed user290-key1
+791 1 ssh-rsa somekey4plctestbed user291-key1
+792 1 ssh-rsa somekey4plctestbed user292-key1
+793 1 ssh-rsa somekey4plctestbed user293-key1
+794 1 ssh-rsa somekey4plctestbed user294-key1
+795 1 ssh-rsa somekey4plctestbed user295-key1
+796 1 ssh-rsa somekey4plctestbed user296-key1
+797 1 ssh-rsa somekey4plctestbed user297-key1
+798 1 ssh-rsa somekey4plctestbed user298-key1
+799 1 ssh-rsa somekey4plctestbed user299-key1
+800 1 ssh-rsa somekey4plctestbed user300-key1
+801 1 ssh-rsa somekey4plctestbed user301-key1
+802 1 ssh-rsa somekey4plctestbed user302-key1
+803 1 ssh-rsa somekey4plctestbed user303-key1
+804 1 ssh-rsa somekey4plctestbed user304-key1
+805 1 ssh-rsa somekey4plctestbed user305-key1
+806 1 ssh-rsa somekey4plctestbed user306-key1
+807 1 ssh-rsa somekey4plctestbed user307-key1
+808 1 ssh-rsa somekey4plctestbed user308-key1
+809 1 ssh-rsa somekey4plctestbed user309-key1
+810 1 ssh-rsa somekey4plctestbed user310-key1
+811 1 ssh-rsa somekey4plctestbed user311-key1
+812 1 ssh-rsa somekey4plctestbed user312-key1
+813 1 ssh-rsa somekey4plctestbed user313-key1
+814 1 ssh-rsa somekey4plctestbed user314-key1
+815 1 ssh-rsa somekey4plctestbed user315-key1
+816 1 ssh-rsa somekey4plctestbed user316-key1
+817 1 ssh-rsa somekey4plctestbed user317-key1
+818 1 ssh-rsa somekey4plctestbed user318-key1
+819 1 ssh-rsa somekey4plctestbed user319-key1
+820 1 ssh-rsa somekey4plctestbed user320-key1
+821 1 ssh-rsa somekey4plctestbed user321-key1
+822 1 ssh-rsa somekey4plctestbed user322-key1
+823 1 ssh-rsa somekey4plctestbed user323-key1
+824 1 ssh-rsa somekey4plctestbed user324-key1
+825 1 ssh-rsa somekey4plctestbed user325-key1
+826 1 ssh-rsa somekey4plctestbed user326-key1
+827 1 ssh-rsa somekey4plctestbed user327-key1
+828 1 ssh-rsa somekey4plctestbed user328-key1
+829 1 ssh-rsa somekey4plctestbed user329-key1
+830 1 ssh-rsa somekey4plctestbed user330-key1
+831 1 ssh-rsa somekey4plctestbed user331-key1
+832 1 ssh-rsa somekey4plctestbed user332-key1
+833 1 ssh-rsa somekey4plctestbed user333-key1
+834 1 ssh-rsa somekey4plctestbed user334-key1
+835 1 ssh-rsa somekey4plctestbed user335-key1
+836 1 ssh-rsa somekey4plctestbed user336-key1
+837 1 ssh-rsa somekey4plctestbed user337-key1
+838 1 ssh-rsa somekey4plctestbed user338-key1
+839 1 ssh-rsa somekey4plctestbed user339-key1
+840 1 ssh-rsa somekey4plctestbed user340-key1
+841 1 ssh-rsa somekey4plctestbed user341-key1
+842 1 ssh-rsa somekey4plctestbed user342-key1
+843 1 ssh-rsa somekey4plctestbed user343-key1
+844 1 ssh-rsa somekey4plctestbed user344-key1
+845 1 ssh-rsa somekey4plctestbed user345-key1
+846 1 ssh-rsa somekey4plctestbed user346-key1
+847 1 ssh-rsa somekey4plctestbed user347-key1
+848 1 ssh-rsa somekey4plctestbed user348-key1
+849 1 ssh-rsa somekey4plctestbed user349-key1
+850 1 ssh-rsa somekey4plctestbed user350-key1
+851 1 ssh-rsa somekey4plctestbed user351-key1
+852 1 ssh-rsa somekey4plctestbed user352-key1
+853 1 ssh-rsa somekey4plctestbed user353-key1
+854 1 ssh-rsa somekey4plctestbed user354-key1
+855 1 ssh-rsa somekey4plctestbed user355-key1
+856 1 ssh-rsa somekey4plctestbed user356-key1
+857 1 ssh-rsa somekey4plctestbed user357-key1
+858 1 ssh-rsa somekey4plctestbed user358-key1
+859 1 ssh-rsa somekey4plctestbed user359-key1
+860 1 ssh-rsa somekey4plctestbed user360-key1
+861 1 ssh-rsa somekey4plctestbed user361-key1
+862 1 ssh-rsa somekey4plctestbed user362-key1
+863 1 ssh-rsa somekey4plctestbed user363-key1
+864 1 ssh-rsa somekey4plctestbed user364-key1
+865 1 ssh-rsa somekey4plctestbed user365-key1
+866 1 ssh-rsa somekey4plctestbed user366-key1
+867 1 ssh-rsa somekey4plctestbed user367-key1
+868 1 ssh-rsa somekey4plctestbed user368-key1
+869 1 ssh-rsa somekey4plctestbed user369-key1
+870 1 ssh-rsa somekey4plctestbed user370-key1
+871 1 ssh-rsa somekey4plctestbed user371-key1
+872 1 ssh-rsa somekey4plctestbed user372-key1
+873 1 ssh-rsa somekey4plctestbed user373-key1
+874 1 ssh-rsa somekey4plctestbed user374-key1
+875 1 ssh-rsa somekey4plctestbed user375-key1
+876 1 ssh-rsa somekey4plctestbed user376-key1
+877 1 ssh-rsa somekey4plctestbed user377-key1
+878 1 ssh-rsa somekey4plctestbed user378-key1
+879 1 ssh-rsa somekey4plctestbed user379-key1
+880 1 ssh-rsa somekey4plctestbed user380-key1
+881 1 ssh-rsa somekey4plctestbed user381-key1
+882 1 ssh-rsa somekey4plctestbed user382-key1
+883 1 ssh-rsa somekey4plctestbed user383-key1
+884 1 ssh-rsa somekey4plctestbed user384-key1
+885 1 ssh-rsa somekey4plctestbed user385-key1
+886 1 ssh-rsa somekey4plctestbed user386-key1
+887 1 ssh-rsa somekey4plctestbed user387-key1
+888 1 ssh-rsa somekey4plctestbed user388-key1
+889 1 ssh-rsa somekey4plctestbed user389-key1
+890 1 ssh-rsa somekey4plctestbed user390-key1
+891 1 ssh-rsa somekey4plctestbed user391-key1
+892 1 ssh-rsa somekey4plctestbed user392-key1
+893 1 ssh-rsa somekey4plctestbed user393-key1
+894 1 ssh-rsa somekey4plctestbed user394-key1
+895 1 ssh-rsa somekey4plctestbed user395-key1
+896 1 ssh-rsa somekey4plctestbed user396-key1
+897 1 ssh-rsa somekey4plctestbed user397-key1
+898 1 ssh-rsa somekey4plctestbed user398-key1
+899 1 ssh-rsa somekey4plctestbed user399-key1
+900 1 ssh-rsa somekey4plctestbed user400-key1
+901 1 ssh-rsa somekey4plctestbed user401-key1
+902 1 ssh-rsa somekey4plctestbed user402-key1
+903 1 ssh-rsa somekey4plctestbed user403-key1
+904 1 ssh-rsa somekey4plctestbed user404-key1
+905 1 ssh-rsa somekey4plctestbed user405-key1
+906 1 ssh-rsa somekey4plctestbed user406-key1
+907 1 ssh-rsa somekey4plctestbed user407-key1
+908 1 ssh-rsa somekey4plctestbed user408-key1
+909 1 ssh-rsa somekey4plctestbed user409-key1
+910 1 ssh-rsa somekey4plctestbed user410-key1
+911 1 ssh-rsa somekey4plctestbed user411-key1
+912 1 ssh-rsa somekey4plctestbed user412-key1
+913 1 ssh-rsa somekey4plctestbed user413-key1
+914 1 ssh-rsa somekey4plctestbed user414-key1
+915 1 ssh-rsa somekey4plctestbed user415-key1
+916 1 ssh-rsa somekey4plctestbed user416-key1
+917 1 ssh-rsa somekey4plctestbed user417-key1
+918 1 ssh-rsa somekey4plctestbed user418-key1
+919 1 ssh-rsa somekey4plctestbed user419-key1
+920 1 ssh-rsa somekey4plctestbed user420-key1
+921 1 ssh-rsa somekey4plctestbed user421-key1
+922 1 ssh-rsa somekey4plctestbed user422-key1
+923 1 ssh-rsa somekey4plctestbed user423-key1
+924 1 ssh-rsa somekey4plctestbed user424-key1
+925 1 ssh-rsa somekey4plctestbed user425-key1
+926 1 ssh-rsa somekey4plctestbed user426-key1
+927 1 ssh-rsa somekey4plctestbed user427-key1
+928 1 ssh-rsa somekey4plctestbed user428-key1
+929 1 ssh-rsa somekey4plctestbed user429-key1
+930 1 ssh-rsa somekey4plctestbed user430-key1
+931 1 ssh-rsa somekey4plctestbed user431-key1
+932 1 ssh-rsa somekey4plctestbed user432-key1
+933 1 ssh-rsa somekey4plctestbed user433-key1
+934 1 ssh-rsa somekey4plctestbed user434-key1
+935 1 ssh-rsa somekey4plctestbed user435-key1
+936 1 ssh-rsa somekey4plctestbed user436-key1
+937 1 ssh-rsa somekey4plctestbed user437-key1
+938 1 ssh-rsa somekey4plctestbed user438-key1
+939 1 ssh-rsa somekey4plctestbed user439-key1
+940 1 ssh-rsa somekey4plctestbed user440-key1
+941 1 ssh-rsa somekey4plctestbed user441-key1
+942 1 ssh-rsa somekey4plctestbed user442-key1
+943 1 ssh-rsa somekey4plctestbed user443-key1
+944 1 ssh-rsa somekey4plctestbed user444-key1
+945 1 ssh-rsa somekey4plctestbed user445-key1
+946 1 ssh-rsa somekey4plctestbed user446-key1
+947 1 ssh-rsa somekey4plctestbed user447-key1
+948 1 ssh-rsa somekey4plctestbed user448-key1
+949 1 ssh-rsa somekey4plctestbed user449-key1
+950 1 ssh-rsa somekey4plctestbed user450-key1
+951 1 ssh-rsa somekey4plctestbed user451-key1
+952 1 ssh-rsa somekey4plctestbed user452-key1
+953 1 ssh-rsa somekey4plctestbed user453-key1
+954 1 ssh-rsa somekey4plctestbed user454-key1
+955 1 ssh-rsa somekey4plctestbed user455-key1
+956 1 ssh-rsa somekey4plctestbed user456-key1
+957 1 ssh-rsa somekey4plctestbed user457-key1
+958 1 ssh-rsa somekey4plctestbed user458-key1
+959 1 ssh-rsa somekey4plctestbed user459-key1
+960 1 ssh-rsa somekey4plctestbed user460-key1
+961 1 ssh-rsa somekey4plctestbed user461-key1
+962 1 ssh-rsa somekey4plctestbed user462-key1
+963 1 ssh-rsa somekey4plctestbed user463-key1
+964 1 ssh-rsa somekey4plctestbed user464-key1
+965 1 ssh-rsa somekey4plctestbed user465-key1
+966 1 ssh-rsa somekey4plctestbed user466-key1
+967 1 ssh-rsa somekey4plctestbed user467-key1
+968 1 ssh-rsa somekey4plctestbed user468-key1
+969 1 ssh-rsa somekey4plctestbed user469-key1
+970 1 ssh-rsa somekey4plctestbed user470-key1
+971 1 ssh-rsa somekey4plctestbed user471-key1
+972 1 ssh-rsa somekey4plctestbed user472-key1
+973 1 ssh-rsa somekey4plctestbed user473-key1
+974 1 ssh-rsa somekey4plctestbed user474-key1
+975 1 ssh-rsa somekey4plctestbed user475-key1
+976 1 ssh-rsa somekey4plctestbed user476-key1
+977 1 ssh-rsa somekey4plctestbed user477-key1
+978 1 ssh-rsa somekey4plctestbed user478-key1
+979 1 ssh-rsa somekey4plctestbed user479-key1
+980 1 ssh-rsa somekey4plctestbed user480-key1
+981 1 ssh-rsa somekey4plctestbed user481-key1
+982 1 ssh-rsa somekey4plctestbed user482-key1
+983 1 ssh-rsa somekey4plctestbed user483-key1
+984 1 ssh-rsa somekey4plctestbed user484-key1
+985 1 ssh-rsa somekey4plctestbed user485-key1
+986 1 ssh-rsa somekey4plctestbed user486-key1
+987 1 ssh-rsa somekey4plctestbed user487-key1
+988 1 ssh-rsa somekey4plctestbed user488-key1
+989 1 ssh-rsa somekey4plctestbed user489-key1
+990 1 ssh-rsa somekey4plctestbed user490-key1
+991 1 ssh-rsa somekey4plctestbed user491-key1
+992 1 ssh-rsa somekey4plctestbed user492-key1
+993 1 ssh-rsa somekey4plctestbed user493-key1
+994 1 ssh-rsa somekey4plctestbed user494-key1
+995 1 ssh-rsa somekey4plctestbed user495-key1
+996 1 ssh-rsa somekey4plctestbed user496-key1
+997 1 ssh-rsa somekey4plctestbed user497-key1
+998 1 ssh-rsa somekey4plctestbed user498-key1
+999 1 ssh-rsa somekey4plctestbed user499-key1
+1000 1 ssh-rsa somekey4plctestbed user500-key1
+02: PERSONS
+1 None maint@localhost.localdomain keys: [] sites: []
+2 None root@plc2.inria.fr keys: [] sites: [1]
+3 None peer2@planet-lab.org keys: [] sites: []
+4 None user-1@plc.org keys: [1] sites: []
+5 None user-2@plc.org keys: [2] sites: []
+6 None user-3@plc.org keys: [3] sites: []
+7 None user-4@plc.org keys: [4] sites: []
+8 None user-5@plc.org keys: [5] sites: []
+9 None user-6@plc.org keys: [6] sites: []
+10 None user-7@plc.org keys: [7] sites: []
+11 None user-8@plc.org keys: [8] sites: []
+12 None user-9@plc.org keys: [9] sites: []
+13 None user-10@plc.org keys: [10] sites: []
+14 None user-11@plc.org keys: [11] sites: []
+15 None user-12@plc.org keys: [12] sites: []
+16 None user-13@plc.org keys: [13] sites: []
+17 None user-14@plc.org keys: [14] sites: []
+18 None user-15@plc.org keys: [15] sites: []
+19 None user-16@plc.org keys: [16] sites: []
+20 None user-17@plc.org keys: [17] sites: []
+21 None user-18@plc.org keys: [18] sites: []
+22 None user-19@plc.org keys: [19] sites: []
+23 None user-20@plc.org keys: [20] sites: []
+24 None user-21@plc.org keys: [21] sites: []
+25 None user-22@plc.org keys: [22] sites: []
+26 None user-23@plc.org keys: [23] sites: []
+27 None user-24@plc.org keys: [24] sites: []
+28 None user-25@plc.org keys: [25] sites: []
+29 None user-26@plc.org keys: [26] sites: []
+30 None user-27@plc.org keys: [27] sites: []
+31 None user-28@plc.org keys: [28] sites: []
+32 None user-29@plc.org keys: [29] sites: []
+33 None user-30@plc.org keys: [30] sites: []
+34 None user-31@plc.org keys: [31] sites: []
+35 None user-32@plc.org keys: [32] sites: []
+36 None user-33@plc.org keys: [33] sites: []
+37 None user-34@plc.org keys: [34] sites: []
+38 None user-35@plc.org keys: [35] sites: []
+39 None user-36@plc.org keys: [36] sites: []
+40 None user-37@plc.org keys: [37] sites: []
+41 None user-38@plc.org keys: [38] sites: []
+42 None user-39@plc.org keys: [39] sites: []
+43 None user-40@plc.org keys: [40] sites: []
+44 None user-41@plc.org keys: [41] sites: []
+45 None user-42@plc.org keys: [42] sites: []
+46 None user-43@plc.org keys: [43] sites: []
+47 None user-44@plc.org keys: [44] sites: []
+48 None user-45@plc.org keys: [45] sites: []
+49 None user-46@plc.org keys: [46] sites: []
+50 None user-47@plc.org keys: [47] sites: []
+51 None user-48@plc.org keys: [48] sites: []
+52 None user-49@plc.org keys: [49] sites: []
+53 None user-50@plc.org keys: [50] sites: []
+54 None user-51@plc.org keys: [51] sites: []
+55 None user-52@plc.org keys: [52] sites: []
+56 None user-53@plc.org keys: [53] sites: []
+57 None user-54@plc.org keys: [54] sites: []
+58 None user-55@plc.org keys: [55] sites: []
+59 None user-56@plc.org keys: [56] sites: []
+60 None user-57@plc.org keys: [57] sites: []
+61 None user-58@plc.org keys: [58] sites: []
+62 None user-59@plc.org keys: [59] sites: []
+63 None user-60@plc.org keys: [60] sites: []
+64 None user-61@plc.org keys: [61] sites: []
+65 None user-62@plc.org keys: [62] sites: []
+66 None user-63@plc.org keys: [63] sites: []
+67 None user-64@plc.org keys: [64] sites: []
+68 None user-65@plc.org keys: [65] sites: []
+69 None user-66@plc.org keys: [66] sites: []
+70 None user-67@plc.org keys: [67] sites: []
+71 None user-68@plc.org keys: [68] sites: []
+72 None user-69@plc.org keys: [69] sites: []
+73 None user-70@plc.org keys: [70] sites: []
+74 None user-71@plc.org keys: [71] sites: []
+75 None user-72@plc.org keys: [72] sites: []
+76 None user-73@plc.org keys: [73] sites: []
+77 None user-74@plc.org keys: [74] sites: []
+78 None user-75@plc.org keys: [75] sites: []
+79 None user-76@plc.org keys: [76] sites: []
+80 None user-77@plc.org keys: [77] sites: []
+81 None user-78@plc.org keys: [78] sites: []
+82 None user-79@plc.org keys: [79] sites: []
+83 None user-80@plc.org keys: [80] sites: []
+84 None user-81@plc.org keys: [81] sites: []
+85 None user-82@plc.org keys: [82] sites: []
+86 None user-83@plc.org keys: [83] sites: []
+87 None user-84@plc.org keys: [84] sites: []
+88 None user-85@plc.org keys: [85] sites: []
+89 None user-86@plc.org keys: [86] sites: []
+90 None user-87@plc.org keys: [87] sites: []
+91 None user-88@plc.org keys: [88] sites: []
+92 None user-89@plc.org keys: [89] sites: []
+93 None user-90@plc.org keys: [90] sites: []
+94 None user-91@plc.org keys: [91] sites: []
+95 None user-92@plc.org keys: [92] sites: []
+96 None user-93@plc.org keys: [93] sites: []
+97 None user-94@plc.org keys: [94] sites: []
+98 None user-95@plc.org keys: [95] sites: []
+99 None user-96@plc.org keys: [96] sites: []
+100 None user-97@plc.org keys: [97] sites: []
+101 None user-98@plc.org keys: [98] sites: []
+102 None user-99@plc.org keys: [99] sites: []
+103 None user-100@plc.org keys: [100] sites: []
+104 None user-101@plc.org keys: [101] sites: []
+105 None user-102@plc.org keys: [102] sites: []
+106 None user-103@plc.org keys: [103] sites: []
+107 None user-104@plc.org keys: [104] sites: []
+108 None user-105@plc.org keys: [105] sites: []
+109 None user-106@plc.org keys: [106] sites: []
+110 None user-107@plc.org keys: [107] sites: []
+111 None user-108@plc.org keys: [108] sites: []
+112 None user-109@plc.org keys: [109] sites: []
+113 None user-110@plc.org keys: [110] sites: []
+114 None user-111@plc.org keys: [111] sites: []
+115 None user-112@plc.org keys: [112] sites: []
+116 None user-113@plc.org keys: [113] sites: []
+117 None user-114@plc.org keys: [114] sites: []
+118 None user-115@plc.org keys: [115] sites: []
+119 None user-116@plc.org keys: [116] sites: []
+120 None user-117@plc.org keys: [117] sites: []
+121 None user-118@plc.org keys: [118] sites: []
+122 None user-119@plc.org keys: [119] sites: []
+123 None user-120@plc.org keys: [120] sites: []
+124 None user-121@plc.org keys: [121] sites: []
+125 None user-122@plc.org keys: [122] sites: []
+126 None user-123@plc.org keys: [123] sites: []
+127 None user-124@plc.org keys: [124] sites: []
+128 None user-125@plc.org keys: [125] sites: []
+129 None user-126@plc.org keys: [126] sites: []
+130 None user-127@plc.org keys: [127] sites: []
+131 None user-128@plc.org keys: [128] sites: []
+132 None user-129@plc.org keys: [129] sites: []
+133 None user-130@plc.org keys: [130] sites: []
+134 None user-131@plc.org keys: [131] sites: []
+135 None user-132@plc.org keys: [132] sites: []
+136 None user-133@plc.org keys: [133] sites: []
+137 None user-134@plc.org keys: [134] sites: []
+138 None user-135@plc.org keys: [135] sites: []
+139 None user-136@plc.org keys: [136] sites: []
+140 None user-137@plc.org keys: [137] sites: []
+141 None user-138@plc.org keys: [138] sites: []
+142 None user-139@plc.org keys: [139] sites: []
+143 None user-140@plc.org keys: [140] sites: []
+144 None user-141@plc.org keys: [141] sites: []
+145 None user-142@plc.org keys: [142] sites: []
+146 None user-143@plc.org keys: [143] sites: []
+147 None user-144@plc.org keys: [144] sites: []
+148 None user-145@plc.org keys: [145] sites: []
+149 None user-146@plc.org keys: [146] sites: []
+150 None user-147@plc.org keys: [147] sites: []
+151 None user-148@plc.org keys: [148] sites: []
+152 None user-149@plc.org keys: [149] sites: []
+153 None user-150@plc.org keys: [150] sites: []
+154 None user-151@plc.org keys: [151] sites: []
+155 None user-152@plc.org keys: [152] sites: []
+156 None user-153@plc.org keys: [153] sites: []
+157 None user-154@plc.org keys: [154] sites: []
+158 None user-155@plc.org keys: [155] sites: []
+159 None user-156@plc.org keys: [156] sites: []
+160 None user-157@plc.org keys: [157] sites: []
+161 None user-158@plc.org keys: [158] sites: []
+162 None user-159@plc.org keys: [159] sites: []
+163 None user-160@plc.org keys: [160] sites: []
+164 None user-161@plc.org keys: [161] sites: []
+165 None user-162@plc.org keys: [162] sites: []
+166 None user-163@plc.org keys: [163] sites: []
+167 None user-164@plc.org keys: [164] sites: []
+168 None user-165@plc.org keys: [165] sites: []
+169 None user-166@plc.org keys: [166] sites: []
+170 None user-167@plc.org keys: [167] sites: []
+171 None user-168@plc.org keys: [168] sites: []
+172 None user-169@plc.org keys: [169] sites: []
+173 None user-170@plc.org keys: [170] sites: []
+174 None user-171@plc.org keys: [171] sites: []
+175 None user-172@plc.org keys: [172] sites: []
+176 None user-173@plc.org keys: [173] sites: []
+177 None user-174@plc.org keys: [174] sites: []
+178 None user-175@plc.org keys: [175] sites: []
+179 None user-176@plc.org keys: [176] sites: []
+180 None user-177@plc.org keys: [177] sites: []
+181 None user-178@plc.org keys: [178] sites: []
+182 None user-179@plc.org keys: [179] sites: []
+183 None user-180@plc.org keys: [180] sites: []
+184 None user-181@plc.org keys: [181] sites: []
+185 None user-182@plc.org keys: [182] sites: []
+186 None user-183@plc.org keys: [183] sites: []
+187 None user-184@plc.org keys: [184] sites: []
+188 None user-185@plc.org keys: [185] sites: []
+189 None user-186@plc.org keys: [186] sites: []
+190 None user-187@plc.org keys: [187] sites: []
+191 None user-188@plc.org keys: [188] sites: []
+192 None user-189@plc.org keys: [189] sites: []
+193 None user-190@plc.org keys: [190] sites: []
+194 None user-191@plc.org keys: [191] sites: []
+195 None user-192@plc.org keys: [192] sites: []
+196 None user-193@plc.org keys: [193] sites: []
+197 None user-194@plc.org keys: [194] sites: []
+198 None user-195@plc.org keys: [195] sites: []
+199 None user-196@plc.org keys: [196] sites: []
+200 None user-197@plc.org keys: [197] sites: []
+201 None user-198@plc.org keys: [198] sites: []
+202 None user-199@plc.org keys: [199] sites: []
+203 None user-200@plc.org keys: [200] sites: []
+204 None user-201@plc.org keys: [201] sites: []
+205 None user-202@plc.org keys: [202] sites: []
+206 None user-203@plc.org keys: [203] sites: []
+207 None user-204@plc.org keys: [204] sites: []
+208 None user-205@plc.org keys: [205] sites: []
+209 None user-206@plc.org keys: [206] sites: []
+210 None user-207@plc.org keys: [207] sites: []
+211 None user-208@plc.org keys: [208] sites: []
+212 None user-209@plc.org keys: [209] sites: []
+213 None user-210@plc.org keys: [210] sites: []
+214 None user-211@plc.org keys: [211] sites: []
+215 None user-212@plc.org keys: [212] sites: []
+216 None user-213@plc.org keys: [213] sites: []
+217 None user-214@plc.org keys: [214] sites: []
+218 None user-215@plc.org keys: [215] sites: []
+219 None user-216@plc.org keys: [216] sites: []
+220 None user-217@plc.org keys: [217] sites: []
+221 None user-218@plc.org keys: [218] sites: []
+222 None user-219@plc.org keys: [219] sites: []
+223 None user-220@plc.org keys: [220] sites: []
+224 None user-221@plc.org keys: [221] sites: []
+225 None user-222@plc.org keys: [222] sites: []
+226 None user-223@plc.org keys: [223] sites: []
+227 None user-224@plc.org keys: [224] sites: []
+228 None user-225@plc.org keys: [225] sites: []
+229 None user-226@plc.org keys: [226] sites: []
+230 None user-227@plc.org keys: [227] sites: []
+231 None user-228@plc.org keys: [228] sites: []
+232 None user-229@plc.org keys: [229] sites: []
+233 None user-230@plc.org keys: [230] sites: []
+234 None user-231@plc.org keys: [231] sites: []
+235 None user-232@plc.org keys: [232] sites: []
+236 None user-233@plc.org keys: [233] sites: []
+237 None user-234@plc.org keys: [234] sites: []
+238 None user-235@plc.org keys: [235] sites: []
+239 None user-236@plc.org keys: [236] sites: []
+240 None user-237@plc.org keys: [237] sites: []
+241 None user-238@plc.org keys: [238] sites: []
+242 None user-239@plc.org keys: [239] sites: []
+243 None user-240@plc.org keys: [240] sites: []
+244 None user-241@plc.org keys: [241] sites: []
+245 None user-242@plc.org keys: [242] sites: []
+246 None user-243@plc.org keys: [243] sites: []
+247 None user-244@plc.org keys: [244] sites: []
+248 None user-245@plc.org keys: [245] sites: []
+249 None user-246@plc.org keys: [246] sites: []
+250 None user-247@plc.org keys: [247] sites: []
+251 None user-248@plc.org keys: [248] sites: []
+252 None user-249@plc.org keys: [249] sites: []
+253 None user-250@plc.org keys: [250] sites: []
+254 None user-251@plc.org keys: [251] sites: []
+255 None user-252@plc.org keys: [252] sites: []
+256 None user-253@plc.org keys: [253] sites: []
+257 None user-254@plc.org keys: [254] sites: []
+258 None user-255@plc.org keys: [255] sites: []
+259 None user-256@plc.org keys: [256] sites: []
+260 None user-257@plc.org keys: [257] sites: []
+261 None user-258@plc.org keys: [258] sites: []
+262 None user-259@plc.org keys: [259] sites: []
+263 None user-260@plc.org keys: [260] sites: []
+264 None user-261@plc.org keys: [261] sites: []
+265 None user-262@plc.org keys: [262] sites: []
+266 None user-263@plc.org keys: [263] sites: []
+267 None user-264@plc.org keys: [264] sites: []
+268 None user-265@plc.org keys: [265] sites: []
+269 None user-266@plc.org keys: [266] sites: []
+270 None user-267@plc.org keys: [267] sites: []
+271 None user-268@plc.org keys: [268] sites: []
+272 None user-269@plc.org keys: [269] sites: []
+273 None user-270@plc.org keys: [270] sites: []
+274 None user-271@plc.org keys: [271] sites: []
+275 None user-272@plc.org keys: [272] sites: []
+276 None user-273@plc.org keys: [273] sites: []
+277 None user-274@plc.org keys: [274] sites: []
+278 None user-275@plc.org keys: [275] sites: []
+279 None user-276@plc.org keys: [276] sites: []
+280 None user-277@plc.org keys: [277] sites: []
+281 None user-278@plc.org keys: [278] sites: []
+282 None user-279@plc.org keys: [279] sites: []
+283 None user-280@plc.org keys: [280] sites: []
+284 None user-281@plc.org keys: [281] sites: []
+285 None user-282@plc.org keys: [282] sites: []
+286 None user-283@plc.org keys: [283] sites: []
+287 None user-284@plc.org keys: [284] sites: []
+288 None user-285@plc.org keys: [285] sites: []
+289 None user-286@plc.org keys: [286] sites: []
+290 None user-287@plc.org keys: [287] sites: []
+291 None user-288@plc.org keys: [288] sites: []
+292 None user-289@plc.org keys: [289] sites: []
+293 None user-290@plc.org keys: [290] sites: []
+294 None user-291@plc.org keys: [291] sites: []
+295 None user-292@plc.org keys: [292] sites: []
+296 None user-293@plc.org keys: [293] sites: []
+297 None user-294@plc.org keys: [294] sites: []
+298 None user-295@plc.org keys: [295] sites: []
+299 None user-296@plc.org keys: [296] sites: []
+300 None user-297@plc.org keys: [297] sites: []
+301 None user-298@plc.org keys: [298] sites: []
+302 None user-299@plc.org keys: [299] sites: []
+303 None user-300@plc.org keys: [300] sites: []
+304 None user-301@plc.org keys: [301] sites: []
+305 None user-302@plc.org keys: [302] sites: []
+306 None user-303@plc.org keys: [303] sites: []
+307 None user-304@plc.org keys: [304] sites: []
+308 None user-305@plc.org keys: [305] sites: []
+309 None user-306@plc.org keys: [306] sites: []
+310 None user-307@plc.org keys: [307] sites: []
+311 None user-308@plc.org keys: [308] sites: []
+312 None user-309@plc.org keys: [309] sites: []
+313 None user-310@plc.org keys: [310] sites: []
+314 None user-311@plc.org keys: [311] sites: []
+315 None user-312@plc.org keys: [312] sites: []
+316 None user-313@plc.org keys: [313] sites: []
+317 None user-314@plc.org keys: [314] sites: []
+318 None user-315@plc.org keys: [315] sites: []
+319 None user-316@plc.org keys: [316] sites: []
+320 None user-317@plc.org keys: [317] sites: []
+321 None user-318@plc.org keys: [318] sites: []
+322 None user-319@plc.org keys: [319] sites: []
+323 None user-320@plc.org keys: [320] sites: []
+324 None user-321@plc.org keys: [321] sites: []
+325 None user-322@plc.org keys: [322] sites: []
+326 None user-323@plc.org keys: [323] sites: []
+327 None user-324@plc.org keys: [324] sites: []
+328 None user-325@plc.org keys: [325] sites: []
+329 None user-326@plc.org keys: [326] sites: []
+330 None user-327@plc.org keys: [327] sites: []
+331 None user-328@plc.org keys: [328] sites: []
+332 None user-329@plc.org keys: [329] sites: []
+333 None user-330@plc.org keys: [330] sites: []
+334 None user-331@plc.org keys: [331] sites: []
+335 None user-332@plc.org keys: [332] sites: []
+336 None user-333@plc.org keys: [333] sites: []
+337 None user-334@plc.org keys: [334] sites: []
+338 None user-335@plc.org keys: [335] sites: []
+339 None user-336@plc.org keys: [336] sites: []
+340 None user-337@plc.org keys: [337] sites: []
+341 None user-338@plc.org keys: [338] sites: []
+342 None user-339@plc.org keys: [339] sites: []
+343 None user-340@plc.org keys: [340] sites: []
+344 None user-341@plc.org keys: [341] sites: []
+345 None user-342@plc.org keys: [342] sites: []
+346 None user-343@plc.org keys: [343] sites: []
+347 None user-344@plc.org keys: [344] sites: []
+348 None user-345@plc.org keys: [345] sites: []
+349 None user-346@plc.org keys: [346] sites: []
+350 None user-347@plc.org keys: [347] sites: []
+351 None user-348@plc.org keys: [348] sites: []
+352 None user-349@plc.org keys: [349] sites: []
+353 None user-350@plc.org keys: [350] sites: []
+354 None user-351@plc.org keys: [351] sites: []
+355 None user-352@plc.org keys: [352] sites: []
+356 None user-353@plc.org keys: [353] sites: []
+357 None user-354@plc.org keys: [354] sites: []
+358 None user-355@plc.org keys: [355] sites: []
+359 None user-356@plc.org keys: [356] sites: []
+360 None user-357@plc.org keys: [357] sites: []
+361 None user-358@plc.org keys: [358] sites: []
+362 None user-359@plc.org keys: [359] sites: []
+363 None user-360@plc.org keys: [360] sites: []
+364 None user-361@plc.org keys: [361] sites: []
+365 None user-362@plc.org keys: [362] sites: []
+366 None user-363@plc.org keys: [363] sites: []
+367 None user-364@plc.org keys: [364] sites: []
+368 None user-365@plc.org keys: [365] sites: []
+369 None user-366@plc.org keys: [366] sites: []
+370 None user-367@plc.org keys: [367] sites: []
+371 None user-368@plc.org keys: [368] sites: []
+372 None user-369@plc.org keys: [369] sites: []
+373 None user-370@plc.org keys: [370] sites: []
+374 None user-371@plc.org keys: [371] sites: []
+375 None user-372@plc.org keys: [372] sites: []
+376 None user-373@plc.org keys: [373] sites: []
+377 None user-374@plc.org keys: [374] sites: []
+378 None user-375@plc.org keys: [375] sites: []
+379 None user-376@plc.org keys: [376] sites: []
+380 None user-377@plc.org keys: [377] sites: []
+381 None user-378@plc.org keys: [378] sites: []
+382 None user-379@plc.org keys: [379] sites: []
+383 None user-380@plc.org keys: [380] sites: []
+384 None user-381@plc.org keys: [381] sites: []
+385 None user-382@plc.org keys: [382] sites: []
+386 None user-383@plc.org keys: [383] sites: []
+387 None user-384@plc.org keys: [384] sites: []
+388 None user-385@plc.org keys: [385] sites: []
+389 None user-386@plc.org keys: [386] sites: []
+390 None user-387@plc.org keys: [387] sites: []
+391 None user-388@plc.org keys: [388] sites: []
+392 None user-389@plc.org keys: [389] sites: []
+393 None user-390@plc.org keys: [390] sites: []
+394 None user-391@plc.org keys: [391] sites: []
+395 None user-392@plc.org keys: [392] sites: []
+396 None user-393@plc.org keys: [393] sites: []
+397 None user-394@plc.org keys: [394] sites: []
+398 None user-395@plc.org keys: [395] sites: []
+399 None user-396@plc.org keys: [396] sites: []
+400 None user-397@plc.org keys: [397] sites: []
+401 None user-398@plc.org keys: [398] sites: []
+402 None user-399@plc.org keys: [399] sites: []
+403 None user-400@plc.org keys: [400] sites: []
+404 None user-401@plc.org keys: [401] sites: []
+405 None user-402@plc.org keys: [402] sites: []
+406 None user-403@plc.org keys: [403] sites: []
+407 None user-404@plc.org keys: [404] sites: []
+408 None user-405@plc.org keys: [405] sites: []
+409 None user-406@plc.org keys: [406] sites: []
+410 None user-407@plc.org keys: [407] sites: []
+411 None user-408@plc.org keys: [408] sites: []
+412 None user-409@plc.org keys: [409] sites: []
+413 None user-410@plc.org keys: [410] sites: []
+414 None user-411@plc.org keys: [411] sites: []
+415 None user-412@plc.org keys: [412] sites: []
+416 None user-413@plc.org keys: [413] sites: []
+417 None user-414@plc.org keys: [414] sites: []
+418 None user-415@plc.org keys: [415] sites: []
+419 None user-416@plc.org keys: [416] sites: []
+420 None user-417@plc.org keys: [417] sites: []
+421 None user-418@plc.org keys: [418] sites: []
+422 None user-419@plc.org keys: [419] sites: []
+423 None user-420@plc.org keys: [420] sites: []
+424 None user-421@plc.org keys: [421] sites: []
+425 None user-422@plc.org keys: [422] sites: []
+426 None user-423@plc.org keys: [423] sites: []
+427 None user-424@plc.org keys: [424] sites: []
+428 None user-425@plc.org keys: [425] sites: []
+429 None user-426@plc.org keys: [426] sites: []
+430 None user-427@plc.org keys: [427] sites: []
+431 None user-428@plc.org keys: [428] sites: []
+432 None user-429@plc.org keys: [429] sites: []
+433 None user-430@plc.org keys: [430] sites: []
+434 None user-431@plc.org keys: [431] sites: []
+435 None user-432@plc.org keys: [432] sites: []
+436 None user-433@plc.org keys: [433] sites: []
+437 None user-434@plc.org keys: [434] sites: []
+438 None user-435@plc.org keys: [435] sites: []
+439 None user-436@plc.org keys: [436] sites: []
+440 None user-437@plc.org keys: [437] sites: []
+441 None user-438@plc.org keys: [438] sites: []
+442 None user-439@plc.org keys: [439] sites: []
+443 None user-440@plc.org keys: [440] sites: []
+444 None user-441@plc.org keys: [441] sites: []
+445 None user-442@plc.org keys: [442] sites: []
+446 None user-443@plc.org keys: [443] sites: []
+447 None user-444@plc.org keys: [444] sites: []
+448 None user-445@plc.org keys: [445] sites: []
+449 None user-446@plc.org keys: [446] sites: []
+450 None user-447@plc.org keys: [447] sites: []
+451 None user-448@plc.org keys: [448] sites: []
+452 None user-449@plc.org keys: [449] sites: []
+453 None user-450@plc.org keys: [450] sites: []
+454 None user-451@plc.org keys: [451] sites: []
+455 None user-452@plc.org keys: [452] sites: []
+456 None user-453@plc.org keys: [453] sites: []
+457 None user-454@plc.org keys: [454] sites: []
+458 None user-455@plc.org keys: [455] sites: []
+459 None user-456@plc.org keys: [456] sites: []
+460 None user-457@plc.org keys: [457] sites: []
+461 None user-458@plc.org keys: [458] sites: []
+462 None user-459@plc.org keys: [459] sites: []
+463 None user-460@plc.org keys: [460] sites: []
+464 None user-461@plc.org keys: [461] sites: []
+465 None user-462@plc.org keys: [462] sites: []
+466 None user-463@plc.org keys: [463] sites: []
+467 None user-464@plc.org keys: [464] sites: []
+468 None user-465@plc.org keys: [465] sites: []
+469 None user-466@plc.org keys: [466] sites: []
+470 None user-467@plc.org keys: [467] sites: []
+471 None user-468@plc.org keys: [468] sites: []
+472 None user-469@plc.org keys: [469] sites: []
+473 None user-470@plc.org keys: [470] sites: []
+474 None user-471@plc.org keys: [471] sites: []
+475 None user-472@plc.org keys: [472] sites: []
+476 None user-473@plc.org keys: [473] sites: []
+477 None user-474@plc.org keys: [474] sites: []
+478 None user-475@plc.org keys: [475] sites: []
+479 None user-476@plc.org keys: [476] sites: []
+480 None user-477@plc.org keys: [477] sites: []
+481 None user-478@plc.org keys: [478] sites: []
+482 None user-479@plc.org keys: [479] sites: []
+483 None user-480@plc.org keys: [480] sites: []
+484 None user-481@plc.org keys: [481] sites: []
+485 None user-482@plc.org keys: [482] sites: []
+486 None user-483@plc.org keys: [483] sites: []
+487 None user-484@plc.org keys: [484] sites: []
+488 None user-485@plc.org keys: [485] sites: []
+489 None user-486@plc.org keys: [486] sites: []
+490 None user-487@plc.org keys: [487] sites: []
+491 None user-488@plc.org keys: [488] sites: []
+492 None user-489@plc.org keys: [489] sites: []
+493 None user-490@plc.org keys: [490] sites: []
+494 None user-491@plc.org keys: [491] sites: []
+495 None user-492@plc.org keys: [492] sites: []
+496 None user-493@plc.org keys: [493] sites: []
+497 None user-494@plc.org keys: [494] sites: []
+498 None user-495@plc.org keys: [495] sites: []
+499 None user-496@plc.org keys: [496] sites: []
+500 None user-497@plc.org keys: [497] sites: []
+501 None user-498@plc.org keys: [498] sites: []
+502 None user-499@plc.org keys: [499] sites: []
+503 None user-500@plc.org keys: [500] sites: []
+504 1 peer1@planet-lab.org keys: [] sites: []
+505 1 user-1@plc.org keys: [501] sites: []
+506 1 user-2@plc.org keys: [502] sites: []
+507 1 user-3@plc.org keys: [503] sites: []
+508 1 user-4@plc.org keys: [504] sites: []
+509 1 user-5@plc.org keys: [505] sites: []
+510 1 user-6@plc.org keys: [506] sites: []
+511 1 user-7@plc.org keys: [507] sites: []
+512 1 user-8@plc.org keys: [508] sites: []
+513 1 user-9@plc.org keys: [509] sites: []
+514 1 user-10@plc.org keys: [510] sites: []
+515 1 user-11@plc.org keys: [511] sites: []
+516 1 user-12@plc.org keys: [512] sites: []
+517 1 user-13@plc.org keys: [513] sites: []
+518 1 user-14@plc.org keys: [514] sites: []
+519 1 user-15@plc.org keys: [515] sites: []
+520 1 user-16@plc.org keys: [516] sites: []
+521 1 user-17@plc.org keys: [517] sites: []
+522 1 user-18@plc.org keys: [518] sites: []
+523 1 user-19@plc.org keys: [519] sites: []
+524 1 user-20@plc.org keys: [520] sites: []
+525 1 user-21@plc.org keys: [521] sites: []
+526 1 user-22@plc.org keys: [522] sites: []
+527 1 user-23@plc.org keys: [523] sites: []
+528 1 user-24@plc.org keys: [524] sites: []
+529 1 user-25@plc.org keys: [525] sites: []
+530 1 user-26@plc.org keys: [526] sites: []
+531 1 user-27@plc.org keys: [527] sites: []
+532 1 user-28@plc.org keys: [528] sites: []
+533 1 user-29@plc.org keys: [529] sites: []
+534 1 user-30@plc.org keys: [530] sites: []
+535 1 user-31@plc.org keys: [531] sites: []
+536 1 user-32@plc.org keys: [532] sites: []
+537 1 user-33@plc.org keys: [533] sites: []
+538 1 user-34@plc.org keys: [534] sites: []
+539 1 user-35@plc.org keys: [535] sites: []
+540 1 user-36@plc.org keys: [536] sites: []
+541 1 user-37@plc.org keys: [537] sites: []
+542 1 user-38@plc.org keys: [538] sites: []
+543 1 user-39@plc.org keys: [539] sites: []
+544 1 user-40@plc.org keys: [540] sites: []
+545 1 user-41@plc.org keys: [541] sites: []
+546 1 user-42@plc.org keys: [542] sites: []
+547 1 user-43@plc.org keys: [543] sites: []
+548 1 user-44@plc.org keys: [544] sites: []
+549 1 user-45@plc.org keys: [545] sites: []
+550 1 user-46@plc.org keys: [546] sites: []
+551 1 user-47@plc.org keys: [547] sites: []
+552 1 user-48@plc.org keys: [548] sites: []
+553 1 user-49@plc.org keys: [549] sites: []
+554 1 user-50@plc.org keys: [550] sites: []
+555 1 user-51@plc.org keys: [551] sites: []
+556 1 user-52@plc.org keys: [552] sites: []
+557 1 user-53@plc.org keys: [553] sites: []
+558 1 user-54@plc.org keys: [554] sites: []
+559 1 user-55@plc.org keys: [555] sites: []
+560 1 user-56@plc.org keys: [556] sites: []
+561 1 user-57@plc.org keys: [557] sites: []
+562 1 user-58@plc.org keys: [558] sites: []
+563 1 user-59@plc.org keys: [559] sites: []
+564 1 user-60@plc.org keys: [560] sites: []
+565 1 user-61@plc.org keys: [561] sites: []
+566 1 user-62@plc.org keys: [562] sites: []
+567 1 user-63@plc.org keys: [563] sites: []
+568 1 user-64@plc.org keys: [564] sites: []
+569 1 user-65@plc.org keys: [565] sites: []
+570 1 user-66@plc.org keys: [566] sites: []
+571 1 user-67@plc.org keys: [567] sites: []
+572 1 user-68@plc.org keys: [568] sites: []
+573 1 user-69@plc.org keys: [569] sites: []
+574 1 user-70@plc.org keys: [570] sites: []
+575 1 user-71@plc.org keys: [571] sites: []
+576 1 user-72@plc.org keys: [572] sites: []
+577 1 user-73@plc.org keys: [573] sites: []
+578 1 user-74@plc.org keys: [574] sites: []
+579 1 user-75@plc.org keys: [575] sites: []
+580 1 user-76@plc.org keys: [576] sites: []
+581 1 user-77@plc.org keys: [577] sites: []
+582 1 user-78@plc.org keys: [578] sites: []
+583 1 user-79@plc.org keys: [579] sites: []
+584 1 user-80@plc.org keys: [580] sites: []
+585 1 user-81@plc.org keys: [581] sites: []
+586 1 user-82@plc.org keys: [582] sites: []
+587 1 user-83@plc.org keys: [583] sites: []
+588 1 user-84@plc.org keys: [584] sites: []
+589 1 user-85@plc.org keys: [585] sites: []
+590 1 user-86@plc.org keys: [586] sites: []
+591 1 user-87@plc.org keys: [587] sites: []
+592 1 user-88@plc.org keys: [588] sites: []
+593 1 user-89@plc.org keys: [589] sites: []
+594 1 user-90@plc.org keys: [590] sites: []
+595 1 user-91@plc.org keys: [591] sites: []
+596 1 user-92@plc.org keys: [592] sites: []
+597 1 user-93@plc.org keys: [593] sites: []
+598 1 user-94@plc.org keys: [594] sites: []
+599 1 user-95@plc.org keys: [595] sites: []
+600 1 user-96@plc.org keys: [596] sites: []
+601 1 user-97@plc.org keys: [597] sites: []
+602 1 user-98@plc.org keys: [598] sites: []
+603 1 user-99@plc.org keys: [599] sites: []
+604 1 user-100@plc.org keys: [600] sites: []
+605 1 user-101@plc.org keys: [601] sites: []
+606 1 user-102@plc.org keys: [602] sites: []
+607 1 user-103@plc.org keys: [603] sites: []
+608 1 user-104@plc.org keys: [604] sites: []
+609 1 user-105@plc.org keys: [605] sites: []
+610 1 user-106@plc.org keys: [606] sites: []
+611 1 user-107@plc.org keys: [607] sites: []
+612 1 user-108@plc.org keys: [608] sites: []
+613 1 user-109@plc.org keys: [609] sites: []
+614 1 user-110@plc.org keys: [610] sites: []
+615 1 user-111@plc.org keys: [611] sites: []
+616 1 user-112@plc.org keys: [612] sites: []
+617 1 user-113@plc.org keys: [613] sites: []
+618 1 user-114@plc.org keys: [614] sites: []
+619 1 user-115@plc.org keys: [615] sites: []
+620 1 user-116@plc.org keys: [616] sites: []
+621 1 user-117@plc.org keys: [617] sites: []
+622 1 user-118@plc.org keys: [618] sites: []
+623 1 user-119@plc.org keys: [619] sites: []
+624 1 user-120@plc.org keys: [620] sites: []
+625 1 user-121@plc.org keys: [621] sites: []
+626 1 user-122@plc.org keys: [622] sites: []
+627 1 user-123@plc.org keys: [623] sites: []
+628 1 user-124@plc.org keys: [624] sites: []
+629 1 user-125@plc.org keys: [625] sites: []
+630 1 user-126@plc.org keys: [626] sites: []
+631 1 user-127@plc.org keys: [627] sites: []
+632 1 user-128@plc.org keys: [628] sites: []
+633 1 user-129@plc.org keys: [629] sites: []
+634 1 user-130@plc.org keys: [630] sites: []
+635 1 user-131@plc.org keys: [631] sites: []
+636 1 user-132@plc.org keys: [632] sites: []
+637 1 user-133@plc.org keys: [633] sites: []
+638 1 user-134@plc.org keys: [634] sites: []
+639 1 user-135@plc.org keys: [635] sites: []
+640 1 user-136@plc.org keys: [636] sites: []
+641 1 user-137@plc.org keys: [637] sites: []
+642 1 user-138@plc.org keys: [638] sites: []
+643 1 user-139@plc.org keys: [639] sites: []
+644 1 user-140@plc.org keys: [640] sites: []
+645 1 user-141@plc.org keys: [641] sites: []
+646 1 user-142@plc.org keys: [642] sites: []
+647 1 user-143@plc.org keys: [643] sites: []
+648 1 user-144@plc.org keys: [644] sites: []
+649 1 user-145@plc.org keys: [645] sites: []
+650 1 user-146@plc.org keys: [646] sites: []
+651 1 user-147@plc.org keys: [647] sites: []
+652 1 user-148@plc.org keys: [648] sites: []
+653 1 user-149@plc.org keys: [649] sites: []
+654 1 user-150@plc.org keys: [650] sites: []
+655 1 user-151@plc.org keys: [651] sites: []
+656 1 user-152@plc.org keys: [652] sites: []
+657 1 user-153@plc.org keys: [653] sites: []
+658 1 user-154@plc.org keys: [654] sites: []
+659 1 user-155@plc.org keys: [655] sites: []
+660 1 user-156@plc.org keys: [656] sites: []
+661 1 user-157@plc.org keys: [657] sites: []
+662 1 user-158@plc.org keys: [658] sites: []
+663 1 user-159@plc.org keys: [659] sites: []
+664 1 user-160@plc.org keys: [660] sites: []
+665 1 user-161@plc.org keys: [661] sites: []
+666 1 user-162@plc.org keys: [662] sites: []
+667 1 user-163@plc.org keys: [663] sites: []
+668 1 user-164@plc.org keys: [664] sites: []
+669 1 user-165@plc.org keys: [665] sites: []
+670 1 user-166@plc.org keys: [666] sites: []
+671 1 user-167@plc.org keys: [667] sites: []
+672 1 user-168@plc.org keys: [668] sites: []
+673 1 user-169@plc.org keys: [669] sites: []
+674 1 user-170@plc.org keys: [670] sites: []
+675 1 user-171@plc.org keys: [671] sites: []
+676 1 user-172@plc.org keys: [672] sites: []
+677 1 user-173@plc.org keys: [673] sites: []
+678 1 user-174@plc.org keys: [674] sites: []
+679 1 user-175@plc.org keys: [675] sites: []
+680 1 user-176@plc.org keys: [676] sites: []
+681 1 user-177@plc.org keys: [677] sites: []
+682 1 user-178@plc.org keys: [678] sites: []
+683 1 user-179@plc.org keys: [679] sites: []
+684 1 user-180@plc.org keys: [680] sites: []
+685 1 user-181@plc.org keys: [681] sites: []
+686 1 user-182@plc.org keys: [682] sites: []
+687 1 user-183@plc.org keys: [683] sites: []
+688 1 user-184@plc.org keys: [684] sites: []
+689 1 user-185@plc.org keys: [685] sites: []
+690 1 user-186@plc.org keys: [686] sites: []
+691 1 user-187@plc.org keys: [687] sites: []
+692 1 user-188@plc.org keys: [688] sites: []
+693 1 user-189@plc.org keys: [689] sites: []
+694 1 user-190@plc.org keys: [690] sites: []
+695 1 user-191@plc.org keys: [691] sites: []
+696 1 user-192@plc.org keys: [692] sites: []
+697 1 user-193@plc.org keys: [693] sites: []
+698 1 user-194@plc.org keys: [694] sites: []
+699 1 user-195@plc.org keys: [695] sites: []
+700 1 user-196@plc.org keys: [696] sites: []
+701 1 user-197@plc.org keys: [697] sites: []
+702 1 user-198@plc.org keys: [698] sites: []
+703 1 user-199@plc.org keys: [699] sites: []
+704 1 user-200@plc.org keys: [700] sites: []
+705 1 user-201@plc.org keys: [701] sites: []
+706 1 user-202@plc.org keys: [702] sites: []
+707 1 user-203@plc.org keys: [703] sites: []
+708 1 user-204@plc.org keys: [704] sites: []
+709 1 user-205@plc.org keys: [705] sites: []
+710 1 user-206@plc.org keys: [706] sites: []
+711 1 user-207@plc.org keys: [707] sites: []
+712 1 user-208@plc.org keys: [708] sites: []
+713 1 user-209@plc.org keys: [709] sites: []
+714 1 user-210@plc.org keys: [710] sites: []
+715 1 user-211@plc.org keys: [711] sites: []
+716 1 user-212@plc.org keys: [712] sites: []
+717 1 user-213@plc.org keys: [713] sites: []
+718 1 user-214@plc.org keys: [714] sites: []
+719 1 user-215@plc.org keys: [715] sites: []
+720 1 user-216@plc.org keys: [716] sites: []
+721 1 user-217@plc.org keys: [717] sites: []
+722 1 user-218@plc.org keys: [718] sites: []
+723 1 user-219@plc.org keys: [719] sites: []
+724 1 user-220@plc.org keys: [720] sites: []
+725 1 user-221@plc.org keys: [721] sites: []
+726 1 user-222@plc.org keys: [722] sites: []
+727 1 user-223@plc.org keys: [723] sites: []
+728 1 user-224@plc.org keys: [724] sites: []
+729 1 user-225@plc.org keys: [725] sites: []
+730 1 user-226@plc.org keys: [726] sites: []
+731 1 user-227@plc.org keys: [727] sites: []
+732 1 user-228@plc.org keys: [728] sites: []
+733 1 user-229@plc.org keys: [729] sites: []
+734 1 user-230@plc.org keys: [730] sites: []
+735 1 user-231@plc.org keys: [731] sites: []
+736 1 user-232@plc.org keys: [732] sites: []
+737 1 user-233@plc.org keys: [733] sites: []
+738 1 user-234@plc.org keys: [734] sites: []
+739 1 user-235@plc.org keys: [735] sites: []
+740 1 user-236@plc.org keys: [736] sites: []
+741 1 user-237@plc.org keys: [737] sites: []
+742 1 user-238@plc.org keys: [738] sites: []
+743 1 user-239@plc.org keys: [739] sites: []
+744 1 user-240@plc.org keys: [740] sites: []
+745 1 user-241@plc.org keys: [741] sites: []
+746 1 user-242@plc.org keys: [742] sites: []
+747 1 user-243@plc.org keys: [743] sites: []
+748 1 user-244@plc.org keys: [744] sites: []
+749 1 user-245@plc.org keys: [745] sites: []
+750 1 user-246@plc.org keys: [746] sites: []
+751 1 user-247@plc.org keys: [747] sites: []
+752 1 user-248@plc.org keys: [748] sites: []
+753 1 user-249@plc.org keys: [749] sites: []
+754 1 user-250@plc.org keys: [750] sites: []
+755 1 user-251@plc.org keys: [751] sites: []
+756 1 user-252@plc.org keys: [752] sites: []
+757 1 user-253@plc.org keys: [753] sites: []
+758 1 user-254@plc.org keys: [754] sites: []
+759 1 user-255@plc.org keys: [755] sites: []
+760 1 user-256@plc.org keys: [756] sites: []
+761 1 user-257@plc.org keys: [757] sites: []
+762 1 user-258@plc.org keys: [758] sites: []
+763 1 user-259@plc.org keys: [759] sites: []
+764 1 user-260@plc.org keys: [760] sites: []
+765 1 user-261@plc.org keys: [761] sites: []
+766 1 user-262@plc.org keys: [762] sites: []
+767 1 user-263@plc.org keys: [763] sites: []
+768 1 user-264@plc.org keys: [764] sites: []
+769 1 user-265@plc.org keys: [765] sites: []
+770 1 user-266@plc.org keys: [766] sites: []
+771 1 user-267@plc.org keys: [767] sites: []
+772 1 user-268@plc.org keys: [768] sites: []
+773 1 user-269@plc.org keys: [769] sites: []
+774 1 user-270@plc.org keys: [770] sites: []
+775 1 user-271@plc.org keys: [771] sites: []
+776 1 user-272@plc.org keys: [772] sites: []
+777 1 user-273@plc.org keys: [773] sites: []
+778 1 user-274@plc.org keys: [774] sites: []
+779 1 user-275@plc.org keys: [775] sites: []
+780 1 user-276@plc.org keys: [776] sites: []
+781 1 user-277@plc.org keys: [777] sites: []
+782 1 user-278@plc.org keys: [778] sites: []
+783 1 user-279@plc.org keys: [779] sites: []
+784 1 user-280@plc.org keys: [780] sites: []
+785 1 user-281@plc.org keys: [781] sites: []
+786 1 user-282@plc.org keys: [782] sites: []
+787 1 user-283@plc.org keys: [783] sites: []
+788 1 user-284@plc.org keys: [784] sites: []
+789 1 user-285@plc.org keys: [785] sites: []
+790 1 user-286@plc.org keys: [786] sites: []
+791 1 user-287@plc.org keys: [787] sites: []
+792 1 user-288@plc.org keys: [788] sites: []
+793 1 user-289@plc.org keys: [789] sites: []
+794 1 user-290@plc.org keys: [790] sites: []
+795 1 user-291@plc.org keys: [791] sites: []
+796 1 user-292@plc.org keys: [792] sites: []
+797 1 user-293@plc.org keys: [793] sites: []
+798 1 user-294@plc.org keys: [794] sites: []
+799 1 user-295@plc.org keys: [795] sites: []
+800 1 user-296@plc.org keys: [796] sites: []
+801 1 user-297@plc.org keys: [797] sites: []
+802 1 user-298@plc.org keys: [798] sites: []
+803 1 user-299@plc.org keys: [799] sites: []
+804 1 user-300@plc.org keys: [800] sites: []
+805 1 user-301@plc.org keys: [801] sites: []
+806 1 user-302@plc.org keys: [802] sites: []
+807 1 user-303@plc.org keys: [803] sites: []
+808 1 user-304@plc.org keys: [804] sites: []
+809 1 user-305@plc.org keys: [805] sites: []
+810 1 user-306@plc.org keys: [806] sites: []
+811 1 user-307@plc.org keys: [807] sites: []
+812 1 user-308@plc.org keys: [808] sites: []
+813 1 user-309@plc.org keys: [809] sites: []
+814 1 user-310@plc.org keys: [810] sites: []
+815 1 user-311@plc.org keys: [811] sites: []
+816 1 user-312@plc.org keys: [812] sites: []
+817 1 user-313@plc.org keys: [813] sites: []
+818 1 user-314@plc.org keys: [814] sites: []
+819 1 user-315@plc.org keys: [815] sites: []
+820 1 user-316@plc.org keys: [816] sites: []
+821 1 user-317@plc.org keys: [817] sites: []
+822 1 user-318@plc.org keys: [818] sites: []
+823 1 user-319@plc.org keys: [819] sites: []
+824 1 user-320@plc.org keys: [820] sites: []
+825 1 user-321@plc.org keys: [821] sites: []
+826 1 user-322@plc.org keys: [822] sites: []
+827 1 user-323@plc.org keys: [823] sites: []
+828 1 user-324@plc.org keys: [824] sites: []
+829 1 user-325@plc.org keys: [825] sites: []
+830 1 user-326@plc.org keys: [826] sites: []
+831 1 user-327@plc.org keys: [827] sites: []
+832 1 user-328@plc.org keys: [828] sites: []
+833 1 user-329@plc.org keys: [829] sites: []
+834 1 user-330@plc.org keys: [830] sites: []
+835 1 user-331@plc.org keys: [831] sites: []
+836 1 user-332@plc.org keys: [832] sites: []
+837 1 user-333@plc.org keys: [833] sites: []
+838 1 user-334@plc.org keys: [834] sites: []
+839 1 user-335@plc.org keys: [835] sites: []
+840 1 user-336@plc.org keys: [836] sites: []
+841 1 user-337@plc.org keys: [837] sites: []
+842 1 user-338@plc.org keys: [838] sites: []
+843 1 user-339@plc.org keys: [839] sites: []
+844 1 user-340@plc.org keys: [840] sites: []
+845 1 user-341@plc.org keys: [841] sites: []
+846 1 user-342@plc.org keys: [842] sites: []
+847 1 user-343@plc.org keys: [843] sites: []
+848 1 user-344@plc.org keys: [844] sites: []
+849 1 user-345@plc.org keys: [845] sites: []
+850 1 user-346@plc.org keys: [846] sites: []
+851 1 user-347@plc.org keys: [847] sites: []
+852 1 user-348@plc.org keys: [848] sites: []
+853 1 user-349@plc.org keys: [849] sites: []
+854 1 user-350@plc.org keys: [850] sites: []
+855 1 user-351@plc.org keys: [851] sites: []
+856 1 user-352@plc.org keys: [852] sites: []
+857 1 user-353@plc.org keys: [853] sites: []
+858 1 user-354@plc.org keys: [854] sites: []
+859 1 user-355@plc.org keys: [855] sites: []
+860 1 user-356@plc.org keys: [856] sites: []
+861 1 user-357@plc.org keys: [857] sites: []
+862 1 user-358@plc.org keys: [858] sites: []
+863 1 user-359@plc.org keys: [859] sites: []
+864 1 user-360@plc.org keys: [860] sites: []
+865 1 user-361@plc.org keys: [861] sites: []
+866 1 user-362@plc.org keys: [862] sites: []
+867 1 user-363@plc.org keys: [863] sites: []
+868 1 user-364@plc.org keys: [864] sites: []
+869 1 user-365@plc.org keys: [865] sites: []
+870 1 user-366@plc.org keys: [866] sites: []
+871 1 user-367@plc.org keys: [867] sites: []
+872 1 user-368@plc.org keys: [868] sites: []
+873 1 user-369@plc.org keys: [869] sites: []
+874 1 user-370@plc.org keys: [870] sites: []
+875 1 user-371@plc.org keys: [871] sites: []
+876 1 user-372@plc.org keys: [872] sites: []
+877 1 user-373@plc.org keys: [873] sites: []
+878 1 user-374@plc.org keys: [874] sites: []
+879 1 user-375@plc.org keys: [875] sites: []
+880 1 user-376@plc.org keys: [876] sites: []
+881 1 user-377@plc.org keys: [877] sites: []
+882 1 user-378@plc.org keys: [878] sites: []
+883 1 user-379@plc.org keys: [879] sites: []
+884 1 user-380@plc.org keys: [880] sites: []
+885 1 user-381@plc.org keys: [881] sites: []
+886 1 user-382@plc.org keys: [882] sites: []
+887 1 user-383@plc.org keys: [883] sites: []
+888 1 user-384@plc.org keys: [884] sites: []
+889 1 user-385@plc.org keys: [885] sites: []
+890 1 user-386@plc.org keys: [886] sites: []
+891 1 user-387@plc.org keys: [887] sites: []
+892 1 user-388@plc.org keys: [888] sites: []
+893 1 user-389@plc.org keys: [889] sites: []
+894 1 user-390@plc.org keys: [890] sites: []
+895 1 user-391@plc.org keys: [891] sites: []
+896 1 user-392@plc.org keys: [892] sites: []
+897 1 user-393@plc.org keys: [893] sites: []
+898 1 user-394@plc.org keys: [894] sites: []
+899 1 user-395@plc.org keys: [895] sites: []
+900 1 user-396@plc.org keys: [896] sites: []
+901 1 user-397@plc.org keys: [897] sites: []
+902 1 user-398@plc.org keys: [898] sites: []
+903 1 user-399@plc.org keys: [899] sites: []
+904 1 user-400@plc.org keys: [900] sites: []
+905 1 user-401@plc.org keys: [901] sites: []
+906 1 user-402@plc.org keys: [902] sites: []
+907 1 user-403@plc.org keys: [903] sites: []
+908 1 user-404@plc.org keys: [904] sites: []
+909 1 user-405@plc.org keys: [905] sites: []
+910 1 user-406@plc.org keys: [906] sites: []
+911 1 user-407@plc.org keys: [907] sites: []
+912 1 user-408@plc.org keys: [908] sites: []
+913 1 user-409@plc.org keys: [909] sites: []
+914 1 user-410@plc.org keys: [910] sites: []
+915 1 user-411@plc.org keys: [911] sites: []
+916 1 user-412@plc.org keys: [912] sites: []
+917 1 user-413@plc.org keys: [913] sites: []
+918 1 user-414@plc.org keys: [914] sites: []
+919 1 user-415@plc.org keys: [915] sites: []
+920 1 user-416@plc.org keys: [916] sites: []
+921 1 user-417@plc.org keys: [917] sites: []
+922 1 user-418@plc.org keys: [918] sites: []
+923 1 user-419@plc.org keys: [919] sites: []
+924 1 user-420@plc.org keys: [920] sites: []
+925 1 user-421@plc.org keys: [921] sites: []
+926 1 user-422@plc.org keys: [922] sites: []
+927 1 user-423@plc.org keys: [923] sites: []
+928 1 user-424@plc.org keys: [924] sites: []
+929 1 user-425@plc.org keys: [925] sites: []
+930 1 user-426@plc.org keys: [926] sites: []
+931 1 user-427@plc.org keys: [927] sites: []
+932 1 user-428@plc.org keys: [928] sites: []
+933 1 user-429@plc.org keys: [929] sites: []
+934 1 user-430@plc.org keys: [930] sites: []
+935 1 user-431@plc.org keys: [931] sites: []
+936 1 user-432@plc.org keys: [932] sites: []
+937 1 user-433@plc.org keys: [933] sites: []
+938 1 user-434@plc.org keys: [934] sites: []
+939 1 user-435@plc.org keys: [935] sites: []
+940 1 user-436@plc.org keys: [936] sites: []
+941 1 user-437@plc.org keys: [937] sites: []
+942 1 user-438@plc.org keys: [938] sites: []
+943 1 user-439@plc.org keys: [939] sites: []
+944 1 user-440@plc.org keys: [940] sites: []
+945 1 user-441@plc.org keys: [941] sites: []
+946 1 user-442@plc.org keys: [942] sites: []
+947 1 user-443@plc.org keys: [943] sites: []
+948 1 user-444@plc.org keys: [944] sites: []
+949 1 user-445@plc.org keys: [945] sites: []
+950 1 user-446@plc.org keys: [946] sites: []
+951 1 user-447@plc.org keys: [947] sites: []
+952 1 user-448@plc.org keys: [948] sites: []
+953 1 user-449@plc.org keys: [949] sites: []
+954 1 user-450@plc.org keys: [950] sites: []
+955 1 user-451@plc.org keys: [951] sites: []
+956 1 user-452@plc.org keys: [952] sites: []
+957 1 user-453@plc.org keys: [953] sites: []
+958 1 user-454@plc.org keys: [954] sites: []
+959 1 user-455@plc.org keys: [955] sites: []
+960 1 user-456@plc.org keys: [956] sites: []
+961 1 user-457@plc.org keys: [957] sites: []
+962 1 user-458@plc.org keys: [958] sites: []
+963 1 user-459@plc.org keys: [959] sites: []
+964 1 user-460@plc.org keys: [960] sites: []
+965 1 user-461@plc.org keys: [961] sites: []
+966 1 user-462@plc.org keys: [962] sites: []
+967 1 user-463@plc.org keys: [963] sites: []
+968 1 user-464@plc.org keys: [964] sites: []
+969 1 user-465@plc.org keys: [965] sites: []
+970 1 user-466@plc.org keys: [966] sites: []
+971 1 user-467@plc.org keys: [967] sites: []
+972 1 user-468@plc.org keys: [968] sites: []
+973 1 user-469@plc.org keys: [969] sites: []
+974 1 user-470@plc.org keys: [970] sites: []
+975 1 user-471@plc.org keys: [971] sites: []
+976 1 user-472@plc.org keys: [972] sites: []
+977 1 user-473@plc.org keys: [973] sites: []
+978 1 user-474@plc.org keys: [974] sites: []
+979 1 user-475@plc.org keys: [975] sites: []
+980 1 user-476@plc.org keys: [976] sites: []
+981 1 user-477@plc.org keys: [977] sites: []
+982 1 user-478@plc.org keys: [978] sites: []
+983 1 user-479@plc.org keys: [979] sites: []
+984 1 user-480@plc.org keys: [980] sites: []
+985 1 user-481@plc.org keys: [981] sites: []
+986 1 user-482@plc.org keys: [982] sites: []
+987 1 user-483@plc.org keys: [983] sites: []
+988 1 user-484@plc.org keys: [984] sites: []
+989 1 user-485@plc.org keys: [985] sites: []
+990 1 user-486@plc.org keys: [986] sites: []
+991 1 user-487@plc.org keys: [987] sites: []
+992 1 user-488@plc.org keys: [988] sites: []
+993 1 user-489@plc.org keys: [989] sites: []
+994 1 user-490@plc.org keys: [990] sites: []
+995 1 user-491@plc.org keys: [991] sites: []
+996 1 user-492@plc.org keys: [992] sites: []
+997 1 user-493@plc.org keys: [993] sites: []
+998 1 user-494@plc.org keys: [994] sites: []
+999 1 user-495@plc.org keys: [995] sites: []
+1000 1 user-496@plc.org keys: [996] sites: []
+1001 1 user-497@plc.org keys: [997] sites: []
+1002 1 user-498@plc.org keys: [998] sites: []
+1003 1 user-499@plc.org keys: [999] sites: []
+1004 1 user-500@plc.org keys: [1000] sites: []
+02: NODES
+1 None n2-001.plc2.org sls= [352, 2] site= 2
+2 None n2-002.plc2.org sls= [353, 3] site= 3
+3 None n2-003.plc2.org sls= [354, 4] site= 4
+4 None n2-004.plc2.org sls= [355, 5] site= 5
+5 None n2-005.plc2.org sls= [356, 6] site= 6
+6 None n2-006.plc2.org sls= [357, 7] site= 7
+7 None n2-007.plc2.org sls= [358, 8] site= 8
+8 None n2-008.plc2.org sls= [359, 9] site= 9
+9 None n2-009.plc2.org sls= [360, 10] site= 10
+10 None n2-010.plc2.org sls= [361, 11] site= 11
+11 None n2-011.plc2.org sls= [362, 12] site= 12
+12 None n2-012.plc2.org sls= [363, 13] site= 13
+13 None n2-013.plc2.org sls= [364, 14] site= 14
+14 None n2-014.plc2.org sls= [365, 15] site= 15
+15 None n2-015.plc2.org sls= [366, 16] site= 16
+16 None n2-016.plc2.org sls= [367, 17] site= 17
+17 None n2-017.plc2.org sls= [368, 18] site= 18
+18 None n2-018.plc2.org sls= [369, 19] site= 19
+19 None n2-019.plc2.org sls= [370, 20] site= 20
+20 None n2-020.plc2.org sls= [371, 21] site= 21
+21 None n2-021.plc2.org sls= [372, 22] site= 22
+22 None n2-022.plc2.org sls= [373, 23] site= 23
+23 None n2-023.plc2.org sls= [374, 24] site= 24
+24 None n2-024.plc2.org sls= [375, 25] site= 25
+25 None n2-025.plc2.org sls= [376, 26] site= 26
+26 None n2-026.plc2.org sls= [377, 27] site= 27
+27 None n2-027.plc2.org sls= [378, 28] site= 28
+28 None n2-028.plc2.org sls= [379, 29] site= 29
+29 None n2-029.plc2.org sls= [380, 30] site= 30
+30 None n2-030.plc2.org sls= [381, 31] site= 31
+31 None n2-031.plc2.org sls= [382, 32] site= 32
+32 None n2-032.plc2.org sls= [383, 33] site= 33
+33 None n2-033.plc2.org sls= [384, 34] site= 34
+34 None n2-034.plc2.org sls= [385, 35] site= 35
+35 None n2-035.plc2.org sls= [386, 36] site= 36
+36 None n2-036.plc2.org sls= [387, 37] site= 37
+37 None n2-037.plc2.org sls= [388, 38] site= 38
+38 None n2-038.plc2.org sls= [389, 39] site= 39
+39 None n2-039.plc2.org sls= [390, 40] site= 40
+40 None n2-040.plc2.org sls= [391, 41] site= 41
+41 None n2-041.plc2.org sls= [392, 42] site= 42
+42 None n2-042.plc2.org sls= [393, 43] site= 43
+43 None n2-043.plc2.org sls= [394, 44] site= 44
+44 None n2-044.plc2.org sls= [395, 45] site= 45
+45 None n2-045.plc2.org sls= [396, 46] site= 46
+46 None n2-046.plc2.org sls= [397, 47] site= 47
+47 None n2-047.plc2.org sls= [398, 48] site= 48
+48 None n2-048.plc2.org sls= [399, 49] site= 49
+49 None n2-049.plc2.org sls= [400, 50] site= 50
+50 None n2-050.plc2.org sls= [401, 51] site= 51
+51 None n2-051.plc2.org sls= [402, 52] site= 52
+52 None n2-052.plc2.org sls= [403, 53] site= 53
+53 None n2-053.plc2.org sls= [404, 54] site= 54
+54 None n2-054.plc2.org sls= [405, 55] site= 55
+55 None n2-055.plc2.org sls= [406, 56] site= 56
+56 None n2-056.plc2.org sls= [407, 57] site= 57
+57 None n2-057.plc2.org sls= [408, 58] site= 58
+58 None n2-058.plc2.org sls= [409, 59] site= 59
+59 None n2-059.plc2.org sls= [410, 60] site= 60
+60 None n2-060.plc2.org sls= [411, 61] site= 61
+61 None n2-061.plc2.org sls= [412, 62] site= 62
+62 None n2-062.plc2.org sls= [413, 63] site= 63
+63 None n2-063.plc2.org sls= [414, 64] site= 64
+64 None n2-064.plc2.org sls= [415, 65] site= 65
+65 None n2-065.plc2.org sls= [416, 66] site= 66
+66 None n2-066.plc2.org sls= [417, 67] site= 67
+67 None n2-067.plc2.org sls= [418, 68] site= 68
+68 None n2-068.plc2.org sls= [419, 69] site= 69
+69 None n2-069.plc2.org sls= [420, 70] site= 70
+70 None n2-070.plc2.org sls= [421, 71] site= 71
+71 None n2-071.plc2.org sls= [422, 72] site= 72
+72 None n2-072.plc2.org sls= [423, 73] site= 73
+73 None n2-073.plc2.org sls= [424, 74] site= 74
+74 None n2-074.plc2.org sls= [425, 75] site= 75
+75 None n2-075.plc2.org sls= [426, 76] site= 76
+76 None n2-076.plc2.org sls= [427, 77] site= 77
+77 None n2-077.plc2.org sls= [428, 78] site= 78
+78 None n2-078.plc2.org sls= [429, 79] site= 79
+79 None n2-079.plc2.org sls= [430, 80] site= 80
+80 None n2-080.plc2.org sls= [431, 81] site= 81
+81 None n2-081.plc2.org sls= [432, 82] site= 82
+82 None n2-082.plc2.org sls= [433, 83] site= 83
+83 None n2-083.plc2.org sls= [434, 84] site= 84
+84 None n2-084.plc2.org sls= [435, 85] site= 85
+85 None n2-085.plc2.org sls= [436, 86] site= 86
+86 None n2-086.plc2.org sls= [437, 87] site= 87
+87 None n2-087.plc2.org sls= [438, 88] site= 88
+88 None n2-088.plc2.org sls= [439, 89] site= 89
+89 None n2-089.plc2.org sls= [440, 90] site= 90
+90 None n2-090.plc2.org sls= [441, 91] site= 91
+91 None n2-091.plc2.org sls= [442, 92] site= 92
+92 None n2-092.plc2.org sls= [443, 93] site= 93
+93 None n2-093.plc2.org sls= [444, 94] site= 94
+94 None n2-094.plc2.org sls= [445, 95] site= 95
+95 None n2-095.plc2.org sls= [446, 96] site= 96
+96 None n2-096.plc2.org sls= [447, 97] site= 97
+97 None n2-097.plc2.org sls= [448, 98] site= 98
+98 None n2-098.plc2.org sls= [449, 99] site= 99
+99 None n2-099.plc2.org sls= [450, 100] site= 100
+100 None n2-100.plc2.org sls= [451, 101] site= 101
+101 None n2-101.plc2.org sls= [452, 102] site= 102
+102 None n2-102.plc2.org sls= [453, 103] site= 103
+103 None n2-103.plc2.org sls= [454, 104] site= 104
+104 None n2-104.plc2.org sls= [455, 105] site= 105
+105 None n2-105.plc2.org sls= [456, 106] site= 106
+106 None n2-106.plc2.org sls= [457, 107] site= 107
+107 None n2-107.plc2.org sls= [458, 108] site= 108
+108 None n2-108.plc2.org sls= [459, 109] site= 109
+109 None n2-109.plc2.org sls= [460, 110] site= 110
+110 None n2-110.plc2.org sls= [461, 111] site= 111
+111 None n2-111.plc2.org sls= [462, 112] site= 112
+112 None n2-112.plc2.org sls= [463, 113] site= 113
+113 None n2-113.plc2.org sls= [464, 114] site= 114
+114 None n2-114.plc2.org sls= [465, 115] site= 115
+115 None n2-115.plc2.org sls= [466, 116] site= 116
+116 None n2-116.plc2.org sls= [467, 117] site= 117
+117 None n2-117.plc2.org sls= [468, 118] site= 118
+118 None n2-118.plc2.org sls= [469, 119] site= 119
+119 None n2-119.plc2.org sls= [470, 120] site= 120
+120 None n2-120.plc2.org sls= [471, 121] site= 121
+121 None n2-121.plc2.org sls= [472, 122] site= 122
+122 None n2-122.plc2.org sls= [473, 123] site= 123
+123 None n2-123.plc2.org sls= [474, 124] site= 124
+124 None n2-124.plc2.org sls= [475, 125] site= 125
+125 None n2-125.plc2.org sls= [476, 126] site= 126
+126 None n2-126.plc2.org sls= [477, 127] site= 127
+127 None n2-127.plc2.org sls= [478, 128] site= 128
+128 None n2-128.plc2.org sls= [479, 129] site= 129
+129 None n2-129.plc2.org sls= [480, 130] site= 130
+130 None n2-130.plc2.org sls= [481, 131] site= 131
+131 None n2-131.plc2.org sls= [482, 132] site= 132
+132 None n2-132.plc2.org sls= [483, 133] site= 133
+133 None n2-133.plc2.org sls= [484, 134] site= 134
+134 None n2-134.plc2.org sls= [485, 135] site= 135
+135 None n2-135.plc2.org sls= [486, 136] site= 136
+136 None n2-136.plc2.org sls= [487, 137] site= 137
+137 None n2-137.plc2.org sls= [488, 138] site= 138
+138 None n2-138.plc2.org sls= [489, 139] site= 139
+139 None n2-139.plc2.org sls= [490, 140] site= 140
+140 None n2-140.plc2.org sls= [491, 141] site= 141
+141 None n2-141.plc2.org sls= [492, 142] site= 142
+142 None n2-142.plc2.org sls= [493, 143] site= 143
+143 None n2-143.plc2.org sls= [494, 144] site= 144
+144 None n2-144.plc2.org sls= [495, 145] site= 145
+145 None n2-145.plc2.org sls= [496, 146] site= 146
+146 None n2-146.plc2.org sls= [497, 147] site= 147
+147 None n2-147.plc2.org sls= [498, 148] site= 148
+148 None n2-148.plc2.org sls= [499, 149] site= 149
+149 None n2-149.plc2.org sls= [500, 150] site= 150
+150 None n2-150.plc2.org sls= [501, 151] site= 151
+151 None n2-151.plc2.org sls= [152] site= 152
+152 None n2-152.plc2.org sls= [153] site= 153
+153 None n2-153.plc2.org sls= [154] site= 154
+154 None n2-154.plc2.org sls= [155] site= 155
+155 None n2-155.plc2.org sls= [156] site= 156
+156 None n2-156.plc2.org sls= [157] site= 157
+157 None n2-157.plc2.org sls= [158] site= 158
+158 None n2-158.plc2.org sls= [159] site= 159
+159 None n2-159.plc2.org sls= [160] site= 160
+160 None n2-160.plc2.org sls= [161] site= 161
+161 None n2-161.plc2.org sls= [162] site= 162
+162 None n2-162.plc2.org sls= [163] site= 163
+163 None n2-163.plc2.org sls= [164] site= 164
+164 None n2-164.plc2.org sls= [165] site= 165
+165 None n2-165.plc2.org sls= [166] site= 166
+166 None n2-166.plc2.org sls= [167] site= 167
+167 None n2-167.plc2.org sls= [168] site= 168
+168 None n2-168.plc2.org sls= [169] site= 169
+169 None n2-169.plc2.org sls= [170] site= 170
+170 None n2-170.plc2.org sls= [171] site= 171
+171 None n2-171.plc2.org sls= [172] site= 172
+172 None n2-172.plc2.org sls= [173] site= 173
+173 None n2-173.plc2.org sls= [174] site= 174
+174 None n2-174.plc2.org sls= [175] site= 175
+175 None n2-175.plc2.org sls= [176] site= 176
+176 None n2-176.plc2.org sls= [177] site= 177
+177 None n2-177.plc2.org sls= [178] site= 178
+178 None n2-178.plc2.org sls= [179] site= 179
+179 None n2-179.plc2.org sls= [180] site= 180
+180 None n2-180.plc2.org sls= [181] site= 181
+181 None n2-181.plc2.org sls= [182] site= 182
+182 None n2-182.plc2.org sls= [183] site= 183
+183 None n2-183.plc2.org sls= [184] site= 184
+184 None n2-184.plc2.org sls= [185] site= 185
+185 None n2-185.plc2.org sls= [186] site= 186
+186 None n2-186.plc2.org sls= [187] site= 187
+187 None n2-187.plc2.org sls= [188] site= 188
+188 None n2-188.plc2.org sls= [189] site= 189
+189 None n2-189.plc2.org sls= [190] site= 190
+190 None n2-190.plc2.org sls= [191] site= 191
+191 None n2-191.plc2.org sls= [192] site= 192
+192 None n2-192.plc2.org sls= [193] site= 193
+193 None n2-193.plc2.org sls= [194] site= 194
+194 None n2-194.plc2.org sls= [195] site= 195
+195 None n2-195.plc2.org sls= [196] site= 196
+196 None n2-196.plc2.org sls= [197] site= 197
+197 None n2-197.plc2.org sls= [198] site= 198
+198 None n2-198.plc2.org sls= [199] site= 199
+199 None n2-199.plc2.org sls= [200] site= 200
+200 None n2-200.plc2.org sls= [201] site= 201
+201 None n2-201.plc2.org sls= [202] site= 2
+202 None n2-202.plc2.org sls= [203] site= 3
+203 None n2-203.plc2.org sls= [204] site= 4
+204 None n2-204.plc2.org sls= [205] site= 5
+205 None n2-205.plc2.org sls= [206] site= 6
+206 None n2-206.plc2.org sls= [207] site= 7
+207 None n2-207.plc2.org sls= [208] site= 8
+208 None n2-208.plc2.org sls= [209] site= 9
+209 None n2-209.plc2.org sls= [210] site= 10
+210 None n2-210.plc2.org sls= [211] site= 11
+211 None n2-211.plc2.org sls= [212] site= 12
+212 None n2-212.plc2.org sls= [213] site= 13
+213 None n2-213.plc2.org sls= [214] site= 14
+214 None n2-214.plc2.org sls= [215] site= 15
+215 None n2-215.plc2.org sls= [216] site= 16
+216 None n2-216.plc2.org sls= [217] site= 17
+217 None n2-217.plc2.org sls= [218] site= 18
+218 None n2-218.plc2.org sls= [219] site= 19
+219 None n2-219.plc2.org sls= [220] site= 20
+220 None n2-220.plc2.org sls= [221] site= 21
+221 None n2-221.plc2.org sls= [222] site= 22
+222 None n2-222.plc2.org sls= [223] site= 23
+223 None n2-223.plc2.org sls= [224] site= 24
+224 None n2-224.plc2.org sls= [225] site= 25
+225 None n2-225.plc2.org sls= [226] site= 26
+226 None n2-226.plc2.org sls= [227] site= 27
+227 None n2-227.plc2.org sls= [228] site= 28
+228 None n2-228.plc2.org sls= [229] site= 29
+229 None n2-229.plc2.org sls= [230] site= 30
+230 None n2-230.plc2.org sls= [231] site= 31
+231 None n2-231.plc2.org sls= [232] site= 32
+232 None n2-232.plc2.org sls= [233] site= 33
+233 None n2-233.plc2.org sls= [234] site= 34
+234 None n2-234.plc2.org sls= [235] site= 35
+235 None n2-235.plc2.org sls= [236] site= 36
+236 None n2-236.plc2.org sls= [237] site= 37
+237 None n2-237.plc2.org sls= [238] site= 38
+238 None n2-238.plc2.org sls= [239] site= 39
+239 None n2-239.plc2.org sls= [240] site= 40
+240 None n2-240.plc2.org sls= [241] site= 41
+241 None n2-241.plc2.org sls= [242] site= 42
+242 None n2-242.plc2.org sls= [243] site= 43
+243 None n2-243.plc2.org sls= [244] site= 44
+244 None n2-244.plc2.org sls= [245] site= 45
+245 None n2-245.plc2.org sls= [246] site= 46
+246 None n2-246.plc2.org sls= [247] site= 47
+247 None n2-247.plc2.org sls= [248] site= 48
+248 None n2-248.plc2.org sls= [249] site= 49
+249 None n2-249.plc2.org sls= [250] site= 50
+250 None n2-250.plc2.org sls= [251] site= 51
+251 None n2-251.plc2.org sls= [252] site= 52
+252 None n2-252.plc2.org sls= [253] site= 53
+253 None n2-253.plc2.org sls= [254] site= 54
+254 None n2-254.plc2.org sls= [255] site= 55
+255 None n2-255.plc2.org sls= [256] site= 56
+256 None n2-256.plc2.org sls= [257] site= 57
+257 None n2-257.plc2.org sls= [258] site= 58
+258 None n2-258.plc2.org sls= [259] site= 59
+259 None n2-259.plc2.org sls= [260] site= 60
+260 None n2-260.plc2.org sls= [261] site= 61
+261 None n2-261.plc2.org sls= [262] site= 62
+262 None n2-262.plc2.org sls= [263] site= 63
+263 None n2-263.plc2.org sls= [264] site= 64
+264 None n2-264.plc2.org sls= [265] site= 65
+265 None n2-265.plc2.org sls= [266] site= 66
+266 None n2-266.plc2.org sls= [267] site= 67
+267 None n2-267.plc2.org sls= [268] site= 68
+268 None n2-268.plc2.org sls= [269] site= 69
+269 None n2-269.plc2.org sls= [270] site= 70
+270 None n2-270.plc2.org sls= [271] site= 71
+271 None n2-271.plc2.org sls= [272] site= 72
+272 None n2-272.plc2.org sls= [273] site= 73
+273 None n2-273.plc2.org sls= [274] site= 74
+274 None n2-274.plc2.org sls= [275] site= 75
+275 None n2-275.plc2.org sls= [276] site= 76
+276 None n2-276.plc2.org sls= [277] site= 77
+277 None n2-277.plc2.org sls= [278] site= 78
+278 None n2-278.plc2.org sls= [279] site= 79
+279 None n2-279.plc2.org sls= [280] site= 80
+280 None n2-280.plc2.org sls= [281] site= 81
+281 None n2-281.plc2.org sls= [282] site= 82
+282 None n2-282.plc2.org sls= [283] site= 83
+283 None n2-283.plc2.org sls= [284] site= 84
+284 None n2-284.plc2.org sls= [285] site= 85
+285 None n2-285.plc2.org sls= [286] site= 86
+286 None n2-286.plc2.org sls= [287] site= 87
+287 None n2-287.plc2.org sls= [288] site= 88
+288 None n2-288.plc2.org sls= [289] site= 89
+289 None n2-289.plc2.org sls= [290] site= 90
+290 None n2-290.plc2.org sls= [291] site= 91
+291 None n2-291.plc2.org sls= [292] site= 92
+292 None n2-292.plc2.org sls= [293] site= 93
+293 None n2-293.plc2.org sls= [294] site= 94
+294 None n2-294.plc2.org sls= [295] site= 95
+295 None n2-295.plc2.org sls= [296] site= 96
+296 None n2-296.plc2.org sls= [297] site= 97
+297 None n2-297.plc2.org sls= [298] site= 98
+298 None n2-298.plc2.org sls= [299] site= 99
+299 None n2-299.plc2.org sls= [300] site= 100
+300 None n2-300.plc2.org sls= [301] site= 101
+301 None n2-301.plc2.org sls= [302] site= 102
+302 None n2-302.plc2.org sls= [303] site= 103
+303 None n2-303.plc2.org sls= [304] site= 104
+304 None n2-304.plc2.org sls= [305] site= 105
+305 None n2-305.plc2.org sls= [306] site= 106
+306 None n2-306.plc2.org sls= [307] site= 107
+307 None n2-307.plc2.org sls= [308] site= 108
+308 None n2-308.plc2.org sls= [309] site= 109
+309 None n2-309.plc2.org sls= [310] site= 110
+310 None n2-310.plc2.org sls= [311] site= 111
+311 None n2-311.plc2.org sls= [312] site= 112
+312 None n2-312.plc2.org sls= [313] site= 113
+313 None n2-313.plc2.org sls= [314] site= 114
+314 None n2-314.plc2.org sls= [315] site= 115
+315 None n2-315.plc2.org sls= [316] site= 116
+316 None n2-316.plc2.org sls= [317] site= 117
+317 None n2-317.plc2.org sls= [318] site= 118
+318 None n2-318.plc2.org sls= [319] site= 119
+319 None n2-319.plc2.org sls= [320] site= 120
+320 None n2-320.plc2.org sls= [321] site= 121
+321 None n2-321.plc2.org sls= [322] site= 122
+322 None n2-322.plc2.org sls= [323] site= 123
+323 None n2-323.plc2.org sls= [324] site= 124
+324 None n2-324.plc2.org sls= [325] site= 125
+325 None n2-325.plc2.org sls= [326] site= 126
+326 None n2-326.plc2.org sls= [327] site= 127
+327 None n2-327.plc2.org sls= [328] site= 128
+328 None n2-328.plc2.org sls= [329] site= 129
+329 None n2-329.plc2.org sls= [330] site= 130
+330 None n2-330.plc2.org sls= [331] site= 131
+331 None n2-331.plc2.org sls= [332] site= 132
+332 None n2-332.plc2.org sls= [333] site= 133
+333 None n2-333.plc2.org sls= [334] site= 134
+334 None n2-334.plc2.org sls= [335] site= 135
+335 None n2-335.plc2.org sls= [336] site= 136
+336 None n2-336.plc2.org sls= [337] site= 137
+337 None n2-337.plc2.org sls= [338] site= 138
+338 None n2-338.plc2.org sls= [339] site= 139
+339 None n2-339.plc2.org sls= [340] site= 140
+340 None n2-340.plc2.org sls= [341] site= 141
+341 None n2-341.plc2.org sls= [342] site= 142
+342 None n2-342.plc2.org sls= [343] site= 143
+343 None n2-343.plc2.org sls= [344] site= 144
+344 None n2-344.plc2.org sls= [345] site= 145
+345 None n2-345.plc2.org sls= [346] site= 146
+346 None n2-346.plc2.org sls= [347] site= 147
+347 None n2-347.plc2.org sls= [348] site= 148
+348 None n2-348.plc2.org sls= [349] site= 149
+349 None n2-349.plc2.org sls= [350] site= 150
+350 None n2-350.plc2.org sls= [351] site= 151
+351 1 n1-001.plc1.org sls= [352, 2] site= 203
+352 1 n1-002.plc1.org sls= [353, 3] site= 204
+353 1 n1-003.plc1.org sls= [354, 4] site= 205
+354 1 n1-004.plc1.org sls= [355, 5] site= 206
+355 1 n1-005.plc1.org sls= [356, 6] site= 207
+356 1 n1-006.plc1.org sls= [357, 7] site= 208
+357 1 n1-007.plc1.org sls= [358, 8] site= 209
+358 1 n1-008.plc1.org sls= [359, 9] site= 210
+359 1 n1-009.plc1.org sls= [360, 10] site= 211
+360 1 n1-010.plc1.org sls= [361, 11] site= 212
+361 1 n1-011.plc1.org sls= [362, 12] site= 213
+362 1 n1-012.plc1.org sls= [363, 13] site= 214
+363 1 n1-013.plc1.org sls= [364, 14] site= 215
+364 1 n1-014.plc1.org sls= [365, 15] site= 216
+365 1 n1-015.plc1.org sls= [366, 16] site= 217
+366 1 n1-016.plc1.org sls= [367, 17] site= 218
+367 1 n1-017.plc1.org sls= [368, 18] site= 219
+368 1 n1-018.plc1.org sls= [369, 19] site= 220
+369 1 n1-019.plc1.org sls= [370, 20] site= 221
+370 1 n1-020.plc1.org sls= [371, 21] site= 222
+371 1 n1-021.plc1.org sls= [372, 22] site= 223
+372 1 n1-022.plc1.org sls= [373, 23] site= 224
+373 1 n1-023.plc1.org sls= [374, 24] site= 225
+374 1 n1-024.plc1.org sls= [375, 25] site= 226
+375 1 n1-025.plc1.org sls= [376, 26] site= 227
+376 1 n1-026.plc1.org sls= [377, 27] site= 228
+377 1 n1-027.plc1.org sls= [378, 28] site= 229
+378 1 n1-028.plc1.org sls= [379, 29] site= 230
+379 1 n1-029.plc1.org sls= [380, 30] site= 231
+380 1 n1-030.plc1.org sls= [381, 31] site= 232
+381 1 n1-031.plc1.org sls= [382, 32] site= 233
+382 1 n1-032.plc1.org sls= [383, 33] site= 234
+383 1 n1-033.plc1.org sls= [384, 34] site= 235
+384 1 n1-034.plc1.org sls= [385, 35] site= 236
+385 1 n1-035.plc1.org sls= [386, 36] site= 237
+386 1 n1-036.plc1.org sls= [387, 37] site= 238
+387 1 n1-037.plc1.org sls= [388, 38] site= 239
+388 1 n1-038.plc1.org sls= [389, 39] site= 240
+389 1 n1-039.plc1.org sls= [390, 40] site= 241
+390 1 n1-040.plc1.org sls= [391, 41] site= 242
+391 1 n1-041.plc1.org sls= [392, 42] site= 243
+392 1 n1-042.plc1.org sls= [393, 43] site= 244
+393 1 n1-043.plc1.org sls= [394, 44] site= 245
+394 1 n1-044.plc1.org sls= [395, 45] site= 246
+395 1 n1-045.plc1.org sls= [396, 46] site= 247
+396 1 n1-046.plc1.org sls= [397, 47] site= 248
+397 1 n1-047.plc1.org sls= [398, 48] site= 249
+398 1 n1-048.plc1.org sls= [399, 49] site= 250
+399 1 n1-049.plc1.org sls= [400, 50] site= 251
+400 1 n1-050.plc1.org sls= [401, 51] site= 252
+401 1 n1-051.plc1.org sls= [402, 52] site= 253
+402 1 n1-052.plc1.org sls= [403, 53] site= 254
+403 1 n1-053.plc1.org sls= [404, 54] site= 255
+404 1 n1-054.plc1.org sls= [405, 55] site= 256
+405 1 n1-055.plc1.org sls= [406, 56] site= 257
+406 1 n1-056.plc1.org sls= [407, 57] site= 258
+407 1 n1-057.plc1.org sls= [408, 58] site= 259
+408 1 n1-058.plc1.org sls= [409, 59] site= 260
+409 1 n1-059.plc1.org sls= [410, 60] site= 261
+410 1 n1-060.plc1.org sls= [411, 61] site= 262
+411 1 n1-061.plc1.org sls= [412, 62] site= 263
+412 1 n1-062.plc1.org sls= [413, 63] site= 264
+413 1 n1-063.plc1.org sls= [414, 64] site= 265
+414 1 n1-064.plc1.org sls= [415, 65] site= 266
+415 1 n1-065.plc1.org sls= [416, 66] site= 267
+416 1 n1-066.plc1.org sls= [417, 67] site= 268
+417 1 n1-067.plc1.org sls= [418, 68] site= 269
+418 1 n1-068.plc1.org sls= [419, 69] site= 270
+419 1 n1-069.plc1.org sls= [420, 70] site= 271
+420 1 n1-070.plc1.org sls= [421, 71] site= 272
+421 1 n1-071.plc1.org sls= [422, 72] site= 273
+422 1 n1-072.plc1.org sls= [423, 73] site= 274
+423 1 n1-073.plc1.org sls= [424, 74] site= 275
+424 1 n1-074.plc1.org sls= [425, 75] site= 276
+425 1 n1-075.plc1.org sls= [426, 76] site= 277
+426 1 n1-076.plc1.org sls= [427, 77] site= 278
+427 1 n1-077.plc1.org sls= [428, 78] site= 279
+428 1 n1-078.plc1.org sls= [429, 79] site= 280
+429 1 n1-079.plc1.org sls= [430, 80] site= 281
+430 1 n1-080.plc1.org sls= [431, 81] site= 282
+431 1 n1-081.plc1.org sls= [432, 82] site= 283
+432 1 n1-082.plc1.org sls= [433, 83] site= 284
+433 1 n1-083.plc1.org sls= [434, 84] site= 285
+434 1 n1-084.plc1.org sls= [435, 85] site= 286
+435 1 n1-085.plc1.org sls= [436, 86] site= 287
+436 1 n1-086.plc1.org sls= [437, 87] site= 288
+437 1 n1-087.plc1.org sls= [438, 88] site= 289
+438 1 n1-088.plc1.org sls= [439, 89] site= 290
+439 1 n1-089.plc1.org sls= [440, 90] site= 291
+440 1 n1-090.plc1.org sls= [441, 91] site= 292
+441 1 n1-091.plc1.org sls= [442, 92] site= 293
+442 1 n1-092.plc1.org sls= [443, 93] site= 294
+443 1 n1-093.plc1.org sls= [444, 94] site= 295
+444 1 n1-094.plc1.org sls= [445, 95] site= 296
+445 1 n1-095.plc1.org sls= [446, 96] site= 297
+446 1 n1-096.plc1.org sls= [447, 97] site= 298
+447 1 n1-097.plc1.org sls= [448, 98] site= 299
+448 1 n1-098.plc1.org sls= [449, 99] site= 300
+449 1 n1-099.plc1.org sls= [450, 100] site= 301
+450 1 n1-100.plc1.org sls= [451, 101] site= 302
+451 1 n1-101.plc1.org sls= [452, 102] site= 303
+452 1 n1-102.plc1.org sls= [453, 103] site= 304
+453 1 n1-103.plc1.org sls= [454, 104] site= 305
+454 1 n1-104.plc1.org sls= [455, 105] site= 306
+455 1 n1-105.plc1.org sls= [456, 106] site= 307
+456 1 n1-106.plc1.org sls= [457, 107] site= 308
+457 1 n1-107.plc1.org sls= [458, 108] site= 309
+458 1 n1-108.plc1.org sls= [459, 109] site= 310
+459 1 n1-109.plc1.org sls= [460, 110] site= 311
+460 1 n1-110.plc1.org sls= [461, 111] site= 312
+461 1 n1-111.plc1.org sls= [462, 112] site= 313
+462 1 n1-112.plc1.org sls= [463, 113] site= 314
+463 1 n1-113.plc1.org sls= [464, 114] site= 315
+464 1 n1-114.plc1.org sls= [465, 115] site= 316
+465 1 n1-115.plc1.org sls= [466, 116] site= 317
+466 1 n1-116.plc1.org sls= [467, 117] site= 318
+467 1 n1-117.plc1.org sls= [468, 118] site= 319
+468 1 n1-118.plc1.org sls= [469, 119] site= 320
+469 1 n1-119.plc1.org sls= [470, 120] site= 321
+470 1 n1-120.plc1.org sls= [471, 121] site= 322
+471 1 n1-121.plc1.org sls= [472, 122] site= 323
+472 1 n1-122.plc1.org sls= [473, 123] site= 324
+473 1 n1-123.plc1.org sls= [474, 124] site= 325
+474 1 n1-124.plc1.org sls= [475, 125] site= 326
+475 1 n1-125.plc1.org sls= [476, 126] site= 327
+476 1 n1-126.plc1.org sls= [477, 127] site= 328
+477 1 n1-127.plc1.org sls= [478, 128] site= 329
+478 1 n1-128.plc1.org sls= [479, 129] site= 330
+479 1 n1-129.plc1.org sls= [480, 130] site= 331
+480 1 n1-130.plc1.org sls= [481, 131] site= 332
+481 1 n1-131.plc1.org sls= [482, 132] site= 333
+482 1 n1-132.plc1.org sls= [483, 133] site= 334
+483 1 n1-133.plc1.org sls= [484, 134] site= 335
+484 1 n1-134.plc1.org sls= [485, 135] site= 336
+485 1 n1-135.plc1.org sls= [486, 136] site= 337
+486 1 n1-136.plc1.org sls= [487, 137] site= 338
+487 1 n1-137.plc1.org sls= [488, 138] site= 339
+488 1 n1-138.plc1.org sls= [489, 139] site= 340
+489 1 n1-139.plc1.org sls= [490, 140] site= 341
+490 1 n1-140.plc1.org sls= [491, 141] site= 342
+491 1 n1-141.plc1.org sls= [492, 142] site= 343
+492 1 n1-142.plc1.org sls= [493, 143] site= 344
+493 1 n1-143.plc1.org sls= [494, 144] site= 345
+494 1 n1-144.plc1.org sls= [495, 145] site= 346
+495 1 n1-145.plc1.org sls= [496, 146] site= 347
+496 1 n1-146.plc1.org sls= [497, 147] site= 348
+497 1 n1-147.plc1.org sls= [498, 148] site= 349
+498 1 n1-148.plc1.org sls= [499, 149] site= 350
+499 1 n1-149.plc1.org sls= [500, 150] site= 351
+500 1 n1-150.plc1.org sls= [501, 151] site= 352
+501 1 n1-151.plc1.org sls= [152] site= 353
+502 1 n1-152.plc1.org sls= [153] site= 354
+503 1 n1-153.plc1.org sls= [154] site= 355
+504 1 n1-154.plc1.org sls= [155] site= 356
+505 1 n1-155.plc1.org sls= [156] site= 357
+506 1 n1-156.plc1.org sls= [157] site= 358
+507 1 n1-157.plc1.org sls= [158] site= 359
+508 1 n1-158.plc1.org sls= [159] site= 360
+509 1 n1-159.plc1.org sls= [160] site= 361
+510 1 n1-160.plc1.org sls= [161] site= 362
+511 1 n1-161.plc1.org sls= [162] site= 363
+512 1 n1-162.plc1.org sls= [163] site= 364
+513 1 n1-163.plc1.org sls= [164] site= 365
+514 1 n1-164.plc1.org sls= [165] site= 366
+515 1 n1-165.plc1.org sls= [166] site= 367
+516 1 n1-166.plc1.org sls= [167] site= 368
+517 1 n1-167.plc1.org sls= [168] site= 369
+518 1 n1-168.plc1.org sls= [169] site= 370
+519 1 n1-169.plc1.org sls= [170] site= 371
+520 1 n1-170.plc1.org sls= [171] site= 372
+521 1 n1-171.plc1.org sls= [172] site= 373
+522 1 n1-172.plc1.org sls= [173] site= 374
+523 1 n1-173.plc1.org sls= [174] site= 375
+524 1 n1-174.plc1.org sls= [175] site= 376
+525 1 n1-175.plc1.org sls= [176] site= 377
+526 1 n1-176.plc1.org sls= [177] site= 378
+527 1 n1-177.plc1.org sls= [178] site= 379
+528 1 n1-178.plc1.org sls= [179] site= 380
+529 1 n1-179.plc1.org sls= [180] site= 381
+530 1 n1-180.plc1.org sls= [181] site= 382
+531 1 n1-181.plc1.org sls= [182] site= 383
+532 1 n1-182.plc1.org sls= [183] site= 384
+533 1 n1-183.plc1.org sls= [184] site= 385
+534 1 n1-184.plc1.org sls= [185] site= 386
+535 1 n1-185.plc1.org sls= [186] site= 387
+536 1 n1-186.plc1.org sls= [187] site= 388
+537 1 n1-187.plc1.org sls= [188] site= 389
+538 1 n1-188.plc1.org sls= [189] site= 390
+539 1 n1-189.plc1.org sls= [190] site= 391
+540 1 n1-190.plc1.org sls= [191] site= 392
+541 1 n1-191.plc1.org sls= [192] site= 393
+542 1 n1-192.plc1.org sls= [193] site= 394
+543 1 n1-193.plc1.org sls= [194] site= 395
+544 1 n1-194.plc1.org sls= [195] site= 396
+545 1 n1-195.plc1.org sls= [196] site= 397
+546 1 n1-196.plc1.org sls= [197] site= 398
+547 1 n1-197.plc1.org sls= [198] site= 399
+548 1 n1-198.plc1.org sls= [199] site= 400
+549 1 n1-199.plc1.org sls= [200] site= 401
+550 1 n1-200.plc1.org sls= [201] site= 402
+551 1 n1-201.plc1.org sls= [202] site= 203
+552 1 n1-202.plc1.org sls= [203] site= 204
+553 1 n1-203.plc1.org sls= [204] site= 205
+554 1 n1-204.plc1.org sls= [205] site= 206
+555 1 n1-205.plc1.org sls= [206] site= 207
+556 1 n1-206.plc1.org sls= [207] site= 208
+557 1 n1-207.plc1.org sls= [208] site= 209
+558 1 n1-208.plc1.org sls= [209] site= 210
+559 1 n1-209.plc1.org sls= [210] site= 211
+560 1 n1-210.plc1.org sls= [211] site= 212
+561 1 n1-211.plc1.org sls= [212] site= 213
+562 1 n1-212.plc1.org sls= [213] site= 214
+563 1 n1-213.plc1.org sls= [214] site= 215
+564 1 n1-214.plc1.org sls= [215] site= 216
+565 1 n1-215.plc1.org sls= [216] site= 217
+566 1 n1-216.plc1.org sls= [217] site= 218
+567 1 n1-217.plc1.org sls= [218] site= 219
+568 1 n1-218.plc1.org sls= [219] site= 220
+569 1 n1-219.plc1.org sls= [220] site= 221
+570 1 n1-220.plc1.org sls= [221] site= 222
+571 1 n1-221.plc1.org sls= [222] site= 223
+572 1 n1-222.plc1.org sls= [223] site= 224
+573 1 n1-223.plc1.org sls= [224] site= 225
+574 1 n1-224.plc1.org sls= [225] site= 226
+575 1 n1-225.plc1.org sls= [226] site= 227
+576 1 n1-226.plc1.org sls= [227] site= 228
+577 1 n1-227.plc1.org sls= [228] site= 229
+578 1 n1-228.plc1.org sls= [229] site= 230
+579 1 n1-229.plc1.org sls= [230] site= 231
+580 1 n1-230.plc1.org sls= [231] site= 232
+581 1 n1-231.plc1.org sls= [232] site= 233
+582 1 n1-232.plc1.org sls= [233] site= 234
+583 1 n1-233.plc1.org sls= [234] site= 235
+584 1 n1-234.plc1.org sls= [235] site= 236
+585 1 n1-235.plc1.org sls= [236] site= 237
+586 1 n1-236.plc1.org sls= [237] site= 238
+587 1 n1-237.plc1.org sls= [238] site= 239
+588 1 n1-238.plc1.org sls= [239] site= 240
+589 1 n1-239.plc1.org sls= [240] site= 241
+590 1 n1-240.plc1.org sls= [241] site= 242
+591 1 n1-241.plc1.org sls= [242] site= 243
+592 1 n1-242.plc1.org sls= [243] site= 244
+593 1 n1-243.plc1.org sls= [244] site= 245
+594 1 n1-244.plc1.org sls= [245] site= 246
+595 1 n1-245.plc1.org sls= [246] site= 247
+596 1 n1-246.plc1.org sls= [247] site= 248
+597 1 n1-247.plc1.org sls= [248] site= 249
+598 1 n1-248.plc1.org sls= [249] site= 250
+599 1 n1-249.plc1.org sls= [250] site= 251
+600 1 n1-250.plc1.org sls= [251] site= 252
+601 1 n1-251.plc1.org sls= [252] site= 253
+602 1 n1-252.plc1.org sls= [253] site= 254
+603 1 n1-253.plc1.org sls= [254] site= 255
+604 1 n1-254.plc1.org sls= [255] site= 256
+605 1 n1-255.plc1.org sls= [256] site= 257
+606 1 n1-256.plc1.org sls= [257] site= 258
+607 1 n1-257.plc1.org sls= [258] site= 259
+608 1 n1-258.plc1.org sls= [259] site= 260
+609 1 n1-259.plc1.org sls= [260] site= 261
+610 1 n1-260.plc1.org sls= [261] site= 262
+611 1 n1-261.plc1.org sls= [262] site= 263
+612 1 n1-262.plc1.org sls= [263] site= 264
+613 1 n1-263.plc1.org sls= [264] site= 265
+614 1 n1-264.plc1.org sls= [265] site= 266
+615 1 n1-265.plc1.org sls= [266] site= 267
+616 1 n1-266.plc1.org sls= [267] site= 268
+617 1 n1-267.plc1.org sls= [268] site= 269
+618 1 n1-268.plc1.org sls= [269] site= 270
+619 1 n1-269.plc1.org sls= [270] site= 271
+620 1 n1-270.plc1.org sls= [271] site= 272
+621 1 n1-271.plc1.org sls= [272] site= 273
+622 1 n1-272.plc1.org sls= [273] site= 274
+623 1 n1-273.plc1.org sls= [274] site= 275
+624 1 n1-274.plc1.org sls= [275] site= 276
+625 1 n1-275.plc1.org sls= [276] site= 277
+626 1 n1-276.plc1.org sls= [277] site= 278
+627 1 n1-277.plc1.org sls= [278] site= 279
+628 1 n1-278.plc1.org sls= [279] site= 280
+629 1 n1-279.plc1.org sls= [280] site= 281
+630 1 n1-280.plc1.org sls= [281] site= 282
+631 1 n1-281.plc1.org sls= [282] site= 283
+632 1 n1-282.plc1.org sls= [283] site= 284
+633 1 n1-283.plc1.org sls= [284] site= 285
+634 1 n1-284.plc1.org sls= [285] site= 286
+635 1 n1-285.plc1.org sls= [286] site= 287
+636 1 n1-286.plc1.org sls= [287] site= 288
+637 1 n1-287.plc1.org sls= [288] site= 289
+638 1 n1-288.plc1.org sls= [289] site= 290
+639 1 n1-289.plc1.org sls= [290] site= 291
+640 1 n1-290.plc1.org sls= [291] site= 292
+641 1 n1-291.plc1.org sls= [292] site= 293
+642 1 n1-292.plc1.org sls= [293] site= 294
+643 1 n1-293.plc1.org sls= [294] site= 295
+644 1 n1-294.plc1.org sls= [295] site= 296
+645 1 n1-295.plc1.org sls= [296] site= 297
+646 1 n1-296.plc1.org sls= [297] site= 298
+647 1 n1-297.plc1.org sls= [298] site= 299
+648 1 n1-298.plc1.org sls= [299] site= 300
+649 1 n1-299.plc1.org sls= [300] site= 301
+650 1 n1-300.plc1.org sls= [301] site= 302
+651 1 n1-301.plc1.org sls= [302] site= 303
+652 1 n1-302.plc1.org sls= [303] site= 304
+653 1 n1-303.plc1.org sls= [304] site= 305
+654 1 n1-304.plc1.org sls= [305] site= 306
+655 1 n1-305.plc1.org sls= [306] site= 307
+656 1 n1-306.plc1.org sls= [307] site= 308
+657 1 n1-307.plc1.org sls= [308] site= 309
+658 1 n1-308.plc1.org sls= [309] site= 310
+659 1 n1-309.plc1.org sls= [310] site= 311
+660 1 n1-310.plc1.org sls= [311] site= 312
+661 1 n1-311.plc1.org sls= [312] site= 313
+662 1 n1-312.plc1.org sls= [313] site= 314
+663 1 n1-313.plc1.org sls= [314] site= 315
+664 1 n1-314.plc1.org sls= [315] site= 316
+665 1 n1-315.plc1.org sls= [316] site= 317
+666 1 n1-316.plc1.org sls= [317] site= 318
+667 1 n1-317.plc1.org sls= [318] site= 319
+668 1 n1-318.plc1.org sls= [319] site= 320
+669 1 n1-319.plc1.org sls= [320] site= 321
+670 1 n1-320.plc1.org sls= [321] site= 322
+671 1 n1-321.plc1.org sls= [322] site= 323
+672 1 n1-322.plc1.org sls= [323] site= 324
+673 1 n1-323.plc1.org sls= [324] site= 325
+674 1 n1-324.plc1.org sls= [325] site= 326
+675 1 n1-325.plc1.org sls= [326] site= 327
+676 1 n1-326.plc1.org sls= [327] site= 328
+677 1 n1-327.plc1.org sls= [328] site= 329
+678 1 n1-328.plc1.org sls= [329] site= 330
+679 1 n1-329.plc1.org sls= [330] site= 331
+680 1 n1-330.plc1.org sls= [331] site= 332
+681 1 n1-331.plc1.org sls= [332] site= 333
+682 1 n1-332.plc1.org sls= [333] site= 334
+683 1 n1-333.plc1.org sls= [334] site= 335
+684 1 n1-334.plc1.org sls= [335] site= 336
+685 1 n1-335.plc1.org sls= [336] site= 337
+686 1 n1-336.plc1.org sls= [337] site= 338
+687 1 n1-337.plc1.org sls= [338] site= 339
+688 1 n1-338.plc1.org sls= [339] site= 340
+689 1 n1-339.plc1.org sls= [340] site= 341
+690 1 n1-340.plc1.org sls= [341] site= 342
+691 1 n1-341.plc1.org sls= [342] site= 343
+692 1 n1-342.plc1.org sls= [343] site= 344
+693 1 n1-343.plc1.org sls= [344] site= 345
+694 1 n1-344.plc1.org sls= [345] site= 346
+695 1 n1-345.plc1.org sls= [346] site= 347
+696 1 n1-346.plc1.org sls= [347] site= 348
+697 1 n1-347.plc1.org sls= [348] site= 349
+698 1 n1-348.plc1.org sls= [349] site= 350
+699 1 n1-349.plc1.org sls= [350] site= 351
+700 1 n1-350.plc1.org sls= [351] site= 352
+02: SLICES
+name: plc2_netflow id: 01 peer: None nodes= [] persons= []
+--- sa_ids= [1, 2, 3, 4, 5] creator:   1
+--- 'expires': 1183554012
+name: oneb_slice1  id: 02 peer: 1 nodes= [1, 351] persons= [507, 506, 505]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554314
+name: onec_slice2  id: 03 peer: 1 nodes= [352, 2] persons= [508, 507, 506]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554314
+name: oned_slice3  id: 04 peer: 1 nodes= [353, 3] persons= [508, 507, 509]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554314
+name: onee_slice4  id: 05 peer: 1 nodes= [354, 4] persons= [508, 510, 509]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554314
+name: onef_slice5  id: 06 peer: 1 nodes= [355, 5] persons= [511, 510, 509]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554314
+name: oneg_slice6  id: 07 peer: 1 nodes= [356, 6] persons= [512, 511, 510]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554315
+name: oneh_slice7  id: 08 peer: 1 nodes= [357, 7] persons= [513, 512, 511]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554315
+name: onei_slice8  id: 09 peer: 1 nodes= [8, 358] persons= [514, 513, 512]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554315
+name: onej_slice9  id: 10 peer: 1 nodes= [9, 359] persons= [515, 514, 513]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554315
+name: oneba_slice10 id: 11 peer: 1 nodes= [360, 10] persons= [516, 515, 514]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554315
+name: onebb_slice11 id: 12 peer: 1 nodes= [361, 11] persons= [516, 515, 517]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554315
+name: onebc_slice12 id: 13 peer: 1 nodes= [362, 12] persons= [516, 518, 517]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554315
+name: onebd_slice13 id: 14 peer: 1 nodes= [363, 13] persons= [519, 518, 517]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554315
+name: onebe_slice14 id: 15 peer: 1 nodes= [364, 14] persons= [520, 519, 518]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554315
+name: onebf_slice15 id: 16 peer: 1 nodes= [365, 15] persons= [521, 520, 519]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554316
+name: onebg_slice16 id: 17 peer: 1 nodes= [16, 366] persons= [522, 521, 520]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554316
+name: onebh_slice17 id: 18 peer: 1 nodes= [17, 367] persons= [523, 522, 521]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554316
+name: onebi_slice18 id: 19 peer: 1 nodes= [368, 18] persons= [524, 523, 522]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554316
+name: onebj_slice19 id: 20 peer: 1 nodes= [369, 19] persons= [524, 523, 525]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554316
+name: oneca_slice20 id: 21 peer: 1 nodes= [370, 20] persons= [524, 526, 525]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554316
+name: onecb_slice21 id: 22 peer: 1 nodes= [371, 21] persons= [527, 526, 525]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554316
+name: onecc_slice22 id: 23 peer: 1 nodes= [372, 22] persons= [528, 527, 526]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554316
+name: onecd_slice23 id: 24 peer: 1 nodes= [373, 23] persons= [529, 528, 527]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554316
+name: onece_slice24 id: 25 peer: 1 nodes= [24, 374] persons= [530, 529, 528]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554317
+name: onecf_slice25 id: 26 peer: 1 nodes= [25, 375] persons= [531, 530, 529]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554317
+name: onecg_slice26 id: 27 peer: 1 nodes= [376, 26] persons= [532, 531, 530]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554317
+name: onech_slice27 id: 28 peer: 1 nodes= [377, 27] persons= [532, 531, 533]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554317
+name: oneci_slice28 id: 29 peer: 1 nodes= [378, 28] persons= [532, 534, 533]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554317
+name: onecj_slice29 id: 30 peer: 1 nodes= [379, 29] persons= [535, 534, 533]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554317
+name: oneda_slice30 id: 31 peer: 1 nodes= [380, 30] persons= [536, 535, 534]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554317
+name: onedb_slice31 id: 32 peer: 1 nodes= [381, 31] persons= [537, 536, 535]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554317
+name: onedc_slice32 id: 33 peer: 1 nodes= [32, 382] persons= [538, 537, 536]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554318
+name: onedd_slice33 id: 34 peer: 1 nodes= [33, 383] persons= [539, 538, 537]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554318
+name: onede_slice34 id: 35 peer: 1 nodes= [384, 34] persons= [540, 539, 538]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554318
+name: onedf_slice35 id: 36 peer: 1 nodes= [385, 35] persons= [540, 539, 541]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554318
+name: onedg_slice36 id: 37 peer: 1 nodes= [386, 36] persons= [540, 542, 541]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554318
+name: onedh_slice37 id: 38 peer: 1 nodes= [387, 37] persons= [543, 542, 541]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554318
+name: onedi_slice38 id: 39 peer: 1 nodes= [388, 38] persons= [544, 543, 542]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554318
+name: onedj_slice39 id: 40 peer: 1 nodes= [389, 39] persons= [545, 544, 543]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554318
+name: oneea_slice40 id: 41 peer: 1 nodes= [40, 390] persons= [546, 545, 544]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554318
+name: oneeb_slice41 id: 42 peer: 1 nodes= [41, 391] persons= [547, 546, 545]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554319
+name: oneec_slice42 id: 43 peer: 1 nodes= [392, 42] persons= [548, 547, 546]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554319
+name: oneed_slice43 id: 44 peer: 1 nodes= [393, 43] persons= [548, 547, 549]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554319
+name: oneee_slice44 id: 45 peer: 1 nodes= [394, 44] persons= [548, 550, 549]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554319
+name: oneef_slice45 id: 46 peer: 1 nodes= [395, 45] persons= [551, 550, 549]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554319
+name: oneeg_slice46 id: 47 peer: 1 nodes= [396, 46] persons= [552, 551, 550]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554319
+name: oneeh_slice47 id: 48 peer: 1 nodes= [397, 47] persons= [553, 552, 551]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554319
+name: oneei_slice48 id: 49 peer: 1 nodes= [48, 398] persons= [554, 553, 552]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554319
+name: oneej_slice49 id: 50 peer: 1 nodes= [49, 399] persons= [555, 554, 553]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554319
+name: onefa_slice50 id: 51 peer: 1 nodes= [400, 50] persons= [556, 555, 554]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554320
+name: onefb_slice51 id: 52 peer: 1 nodes= [401, 51] persons= [556, 555, 557]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554320
+name: onefc_slice52 id: 53 peer: 1 nodes= [402, 52] persons= [556, 558, 557]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554320
+name: onefd_slice53 id: 54 peer: 1 nodes= [403, 53] persons= [559, 558, 557]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554320
+name: onefe_slice54 id: 55 peer: 1 nodes= [404, 54] persons= [560, 559, 558]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554320
+name: oneff_slice55 id: 56 peer: 1 nodes= [405, 55] persons= [561, 560, 559]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554320
+name: onefg_slice56 id: 57 peer: 1 nodes= [56, 406] persons= [562, 561, 560]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554320
+name: onefh_slice57 id: 58 peer: 1 nodes= [57, 407] persons= [563, 562, 561]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554320
+name: onefi_slice58 id: 59 peer: 1 nodes= [408, 58] persons= [564, 563, 562]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554321
+name: onefj_slice59 id: 60 peer: 1 nodes= [409, 59] persons= [564, 563, 565]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554321
+name: onega_slice60 id: 61 peer: 1 nodes= [410, 60] persons= [564, 566, 565]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554321
+name: onegb_slice61 id: 62 peer: 1 nodes= [411, 61] persons= [567, 566, 565]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554321
+name: onegc_slice62 id: 63 peer: 1 nodes= [412, 62] persons= [568, 567, 566]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554321
+name: onegd_slice63 id: 64 peer: 1 nodes= [413, 63] persons= [569, 568, 567]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554321
+name: onege_slice64 id: 65 peer: 1 nodes= [64, 414] persons= [570, 569, 568]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554321
+name: onegf_slice65 id: 66 peer: 1 nodes= [65, 415] persons= [571, 570, 569]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554321
+name: onegg_slice66 id: 67 peer: 1 nodes= [416, 66] persons= [572, 571, 570]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554321
+name: onegh_slice67 id: 68 peer: 1 nodes= [417, 67] persons= [572, 571, 573]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554322
+name: onegi_slice68 id: 69 peer: 1 nodes= [418, 68] persons= [572, 574, 573]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554322
+name: onegj_slice69 id: 70 peer: 1 nodes= [419, 69] persons= [575, 574, 573]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554322
+name: oneha_slice70 id: 71 peer: 1 nodes= [420, 70] persons= [576, 575, 574]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554322
+name: onehb_slice71 id: 72 peer: 1 nodes= [421, 71] persons= [577, 576, 575]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554322
+name: onehc_slice72 id: 73 peer: 1 nodes= [72, 422] persons= [578, 577, 576]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554322
+name: onehd_slice73 id: 74 peer: 1 nodes= [73, 423] persons= [579, 578, 577]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554322
+name: onehe_slice74 id: 75 peer: 1 nodes= [424, 74] persons= [580, 579, 578]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554322
+name: onehf_slice75 id: 76 peer: 1 nodes= [425, 75] persons= [580, 579, 581]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554323
+name: onehg_slice76 id: 77 peer: 1 nodes= [426, 76] persons= [580, 582, 581]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554323
+name: onehh_slice77 id: 78 peer: 1 nodes= [427, 77] persons= [583, 582, 581]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554323
+name: onehi_slice78 id: 79 peer: 1 nodes= [428, 78] persons= [584, 583, 582]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554323
+name: onehj_slice79 id: 80 peer: 1 nodes= [429, 79] persons= [585, 584, 583]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554323
+name: oneia_slice80 id: 81 peer: 1 nodes= [80, 430] persons= [586, 585, 584]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554323
+name: oneib_slice81 id: 82 peer: 1 nodes= [81, 431] persons= [587, 586, 585]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554323
+name: oneic_slice82 id: 83 peer: 1 nodes= [432, 82] persons= [588, 587, 586]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554323
+name: oneid_slice83 id: 84 peer: 1 nodes= [433, 83] persons= [588, 587, 589]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554324
+name: oneie_slice84 id: 85 peer: 1 nodes= [434, 84] persons= [588, 590, 589]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554324
+name: oneif_slice85 id: 86 peer: 1 nodes= [435, 85] persons= [591, 590, 589]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554324
+name: oneig_slice86 id: 87 peer: 1 nodes= [436, 86] persons= [592, 591, 590]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554324
+name: oneih_slice87 id: 88 peer: 1 nodes= [437, 87] persons= [593, 592, 591]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554324
+name: oneii_slice88 id: 89 peer: 1 nodes= [88, 438] persons= [594, 593, 592]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554324
+name: oneij_slice89 id: 90 peer: 1 nodes= [89, 439] persons= [595, 594, 593]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554324
+name: oneja_slice90 id: 91 peer: 1 nodes= [440, 90] persons= [596, 595, 594]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554324
+name: onejb_slice91 id: 92 peer: 1 nodes= [441, 91] persons= [596, 595, 597]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554324
+name: onejc_slice92 id: 93 peer: 1 nodes= [442, 92] persons= [596, 598, 597]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554325
+name: onejd_slice93 id: 94 peer: 1 nodes= [443, 93] persons= [599, 598, 597]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554325
+name: oneje_slice94 id: 95 peer: 1 nodes= [444, 94] persons= [600, 599, 598]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554325
+name: onejf_slice95 id: 96 peer: 1 nodes= [445, 95] persons= [601, 600, 599]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554325
+name: onejg_slice96 id: 97 peer: 1 nodes= [96, 446] persons= [602, 601, 600]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554325
+name: onejh_slice97 id: 98 peer: 1 nodes= [97, 447] persons= [603, 602, 601]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554325
+name: oneji_slice98 id: 99 peer: 1 nodes= [448, 98] persons= [604, 603, 602]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554325
+name: onejj_slice99 id: 100 peer: 1 nodes= [449, 99] persons= [604, 603, 605]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554325
+name: onebaa_slice100 id: 101 peer: 1 nodes= [450, 100] persons= [604, 606, 605]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554326
+name: onebab_slice101 id: 102 peer: 1 nodes= [451, 101] persons= [607, 606, 605]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554326
+name: onebac_slice102 id: 103 peer: 1 nodes= [452, 102] persons= [608, 607, 606]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554326
+name: onebad_slice103 id: 104 peer: 1 nodes= [453, 103] persons= [609, 608, 607]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554326
+name: onebae_slice104 id: 105 peer: 1 nodes= [104, 454] persons= [610, 609, 608]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554326
+name: onebaf_slice105 id: 106 peer: 1 nodes= [105, 455] persons= [611, 610, 609]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554326
+name: onebag_slice106 id: 107 peer: 1 nodes= [456, 106] persons= [612, 611, 610]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554326
+name: onebah_slice107 id: 108 peer: 1 nodes= [457, 107] persons= [612, 611, 613]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554326
+name: onebai_slice108 id: 109 peer: 1 nodes= [458, 108] persons= [612, 614, 613]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554327
+name: onebaj_slice109 id: 110 peer: 1 nodes= [459, 109] persons= [615, 614, 613]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554327
+name: onebba_slice110 id: 111 peer: 1 nodes= [460, 110] persons= [616, 615, 614]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554327
+name: onebbb_slice111 id: 112 peer: 1 nodes= [461, 111] persons= [617, 616, 615]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554327
+name: onebbc_slice112 id: 113 peer: 1 nodes= [112, 462] persons= [618, 617, 616]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554327
+name: onebbd_slice113 id: 114 peer: 1 nodes= [113, 463] persons= [619, 618, 617]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554327
+name: onebbe_slice114 id: 115 peer: 1 nodes= [464, 114] persons= [620, 619, 618]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554327
+name: onebbf_slice115 id: 116 peer: 1 nodes= [465, 115] persons= [620, 619, 621]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554327
+name: onebbg_slice116 id: 117 peer: 1 nodes= [466, 116] persons= [620, 622, 621]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554327
+name: onebbh_slice117 id: 118 peer: 1 nodes= [467, 117] persons= [623, 622, 621]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554328
+name: onebbi_slice118 id: 119 peer: 1 nodes= [468, 118] persons= [624, 623, 622]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554328
+name: onebbj_slice119 id: 120 peer: 1 nodes= [469, 119] persons= [625, 624, 623]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554328
+name: onebca_slice120 id: 121 peer: 1 nodes= [120, 470] persons= [626, 625, 624]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554328
+name: onebcb_slice121 id: 122 peer: 1 nodes= [121, 471] persons= [627, 626, 625]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554328
+name: onebcc_slice122 id: 123 peer: 1 nodes= [472, 122] persons= [628, 627, 626]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554328
+name: onebcd_slice123 id: 124 peer: 1 nodes= [473, 123] persons= [628, 627, 629]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554328
+name: onebce_slice124 id: 125 peer: 1 nodes= [474, 124] persons= [628, 630, 629]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554328
+name: onebcf_slice125 id: 126 peer: 1 nodes= [475, 125] persons= [631, 630, 629]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554329
+name: onebcg_slice126 id: 127 peer: 1 nodes= [476, 126] persons= [632, 631, 630]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554329
+name: onebch_slice127 id: 128 peer: 1 nodes= [477, 127] persons= [633, 632, 631]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554329
+name: onebci_slice128 id: 129 peer: 1 nodes= [128, 478] persons= [634, 633, 632]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554329
+name: onebcj_slice129 id: 130 peer: 1 nodes= [129, 479] persons= [635, 634, 633]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554329
+name: onebda_slice130 id: 131 peer: 1 nodes= [480, 130] persons= [636, 635, 634]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554329
+name: onebdb_slice131 id: 132 peer: 1 nodes= [481, 131] persons= [636, 635, 637]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554329
+name: onebdc_slice132 id: 133 peer: 1 nodes= [482, 132] persons= [636, 638, 637]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554329
+name: onebdd_slice133 id: 134 peer: 1 nodes= [483, 133] persons= [639, 638, 637]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554330
+name: onebde_slice134 id: 135 peer: 1 nodes= [484, 134] persons= [640, 639, 638]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554330
+name: onebdf_slice135 id: 136 peer: 1 nodes= [485, 135] persons= [641, 640, 639]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554330
+name: onebdg_slice136 id: 137 peer: 1 nodes= [136, 486] persons= [642, 641, 640]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554330
+name: onebdh_slice137 id: 138 peer: 1 nodes= [137, 487] persons= [643, 642, 641]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554330
+name: onebdi_slice138 id: 139 peer: 1 nodes= [488, 138] persons= [644, 643, 642]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554330
+name: onebdj_slice139 id: 140 peer: 1 nodes= [489, 139] persons= [644, 643, 645]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554330
+name: onebea_slice140 id: 141 peer: 1 nodes= [490, 140] persons= [644, 646, 645]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554330
+name: onebeb_slice141 id: 142 peer: 1 nodes= [491, 141] persons= [647, 646, 645]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554331
+name: onebec_slice142 id: 143 peer: 1 nodes= [492, 142] persons= [648, 647, 646]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554331
+name: onebed_slice143 id: 144 peer: 1 nodes= [493, 143] persons= [649, 648, 647]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554331
+name: onebee_slice144 id: 145 peer: 1 nodes= [144, 494] persons= [650, 649, 648]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554331
+name: onebef_slice145 id: 146 peer: 1 nodes= [145, 495] persons= [651, 650, 649]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554331
+name: onebeg_slice146 id: 147 peer: 1 nodes= [496, 146] persons= [652, 651, 650]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554331
+name: onebeh_slice147 id: 148 peer: 1 nodes= [497, 147] persons= [652, 651, 653]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554331
+name: onebei_slice148 id: 149 peer: 1 nodes= [498, 148] persons= [652, 654, 653]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554331
+name: onebej_slice149 id: 150 peer: 1 nodes= [499, 149] persons= [655, 654, 653]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554332
+name: onebfa_slice150 id: 151 peer: 1 nodes= [500, 150] persons= [656, 655, 654]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554332
+name: onebfb_slice151 id: 152 peer: 1 nodes= [501, 151] persons= [657, 656, 655]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554332
+name: onebfc_slice152 id: 153 peer: 1 nodes= [152, 502] persons= [658, 657, 656]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554332
+name: onebfd_slice153 id: 154 peer: 1 nodes= [153, 503] persons= [659, 658, 657]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554332
+name: onebfe_slice154 id: 155 peer: 1 nodes= [504, 154] persons= [660, 659, 658]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554332
+name: onebff_slice155 id: 156 peer: 1 nodes= [505, 155] persons= [660, 659, 661]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554332
+name: onebfg_slice156 id: 157 peer: 1 nodes= [506, 156] persons= [660, 662, 661]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554332
+name: onebfh_slice157 id: 158 peer: 1 nodes= [507, 157] persons= [663, 662, 661]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554333
+name: onebfi_slice158 id: 159 peer: 1 nodes= [508, 158] persons= [664, 663, 662]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554333
+name: onebfj_slice159 id: 160 peer: 1 nodes= [509, 159] persons= [665, 664, 663]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554333
+name: onebga_slice160 id: 161 peer: 1 nodes= [160, 510] persons= [666, 665, 664]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554333
+name: onebgb_slice161 id: 162 peer: 1 nodes= [161, 511] persons= [667, 666, 665]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554333
+name: onebgc_slice162 id: 163 peer: 1 nodes= [512, 162] persons= [668, 667, 666]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554333
+name: onebgd_slice163 id: 164 peer: 1 nodes= [513, 163] persons= [668, 667, 669]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554333
+name: onebge_slice164 id: 165 peer: 1 nodes= [514, 164] persons= [668, 670, 669]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554333
+name: onebgf_slice165 id: 166 peer: 1 nodes= [515, 165] persons= [671, 670, 669]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554334
+name: onebgg_slice166 id: 167 peer: 1 nodes= [516, 166] persons= [672, 671, 670]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554334
+name: onebgh_slice167 id: 168 peer: 1 nodes= [517, 167] persons= [673, 672, 671]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554334
+name: onebgi_slice168 id: 169 peer: 1 nodes= [168, 518] persons= [674, 673, 672]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554334
+name: onebgj_slice169 id: 170 peer: 1 nodes= [169, 519] persons= [675, 674, 673]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554334
+name: onebha_slice170 id: 171 peer: 1 nodes= [520, 170] persons= [676, 675, 674]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554334
+name: onebhb_slice171 id: 172 peer: 1 nodes= [521, 171] persons= [676, 675, 677]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554334
+name: onebhc_slice172 id: 173 peer: 1 nodes= [522, 172] persons= [676, 678, 677]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554334
+name: onebhd_slice173 id: 174 peer: 1 nodes= [523, 173] persons= [679, 678, 677]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554335
+name: onebhe_slice174 id: 175 peer: 1 nodes= [524, 174] persons= [680, 679, 678]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554335
+name: onebhf_slice175 id: 176 peer: 1 nodes= [525, 175] persons= [681, 680, 679]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554335
+name: onebhg_slice176 id: 177 peer: 1 nodes= [176, 526] persons= [682, 681, 680]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554335
+name: onebhh_slice177 id: 178 peer: 1 nodes= [177, 527] persons= [683, 682, 681]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554335
+name: onebhi_slice178 id: 179 peer: 1 nodes= [528, 178] persons= [684, 683, 682]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554335
+name: onebhj_slice179 id: 180 peer: 1 nodes= [529, 179] persons= [684, 683, 685]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554335
+name: onebia_slice180 id: 181 peer: 1 nodes= [530, 180] persons= [684, 686, 685]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554335
+name: onebib_slice181 id: 182 peer: 1 nodes= [531, 181] persons= [687, 686, 685]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554336
+name: onebic_slice182 id: 183 peer: 1 nodes= [532, 182] persons= [688, 687, 686]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554336
+name: onebid_slice183 id: 184 peer: 1 nodes= [533, 183] persons= [689, 688, 687]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554336
+name: onebie_slice184 id: 185 peer: 1 nodes= [184, 534] persons= [690, 689, 688]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554336
+name: onebif_slice185 id: 186 peer: 1 nodes= [185, 535] persons= [691, 690, 689]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554336
+name: onebig_slice186 id: 187 peer: 1 nodes= [536, 186] persons= [692, 691, 690]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554336
+name: onebih_slice187 id: 188 peer: 1 nodes= [537, 187] persons= [692, 691, 693]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554336
+name: onebii_slice188 id: 189 peer: 1 nodes= [538, 188] persons= [692, 694, 693]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554336
+name: onebij_slice189 id: 190 peer: 1 nodes= [539, 189] persons= [695, 694, 693]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554337
+name: onebja_slice190 id: 191 peer: 1 nodes= [540, 190] persons= [696, 695, 694]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554337
+name: onebjb_slice191 id: 192 peer: 1 nodes= [541, 191] persons= [697, 696, 695]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554337
+name: onebjc_slice192 id: 193 peer: 1 nodes= [192, 542] persons= [698, 697, 696]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554337
+name: onebjd_slice193 id: 194 peer: 1 nodes= [193, 543] persons= [699, 698, 697]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554337
+name: onebje_slice194 id: 195 peer: 1 nodes= [544, 194] persons= [700, 699, 698]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554337
+name: onebjf_slice195 id: 196 peer: 1 nodes= [545, 195] persons= [700, 699, 701]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554337
+name: onebjg_slice196 id: 197 peer: 1 nodes= [546, 196] persons= [700, 702, 701]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554337
+name: onebjh_slice197 id: 198 peer: 1 nodes= [547, 197] persons= [703, 702, 701]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554338
+name: onebji_slice198 id: 199 peer: 1 nodes= [548, 198] persons= [704, 703, 702]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554338
+name: onebjj_slice199 id: 200 peer: 1 nodes= [549, 199] persons= [705, 704, 703]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554338
+name: onecaa_slice200 id: 201 peer: 1 nodes= [200, 550] persons= [706, 705, 704]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554338
+name: oneb_slice201 id: 202 peer: 1 nodes= [201, 551] persons= [707, 706, 705]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554338
+name: onec_slice202 id: 203 peer: 1 nodes= [552, 202] persons= [708, 707, 706]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554338
+name: oned_slice203 id: 204 peer: 1 nodes= [553, 203] persons= [708, 707, 709]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554338
+name: onee_slice204 id: 205 peer: 1 nodes= [554, 204] persons= [708, 710, 709]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554339
+name: onef_slice205 id: 206 peer: 1 nodes= [555, 205] persons= [711, 710, 709]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554339
+name: oneg_slice206 id: 207 peer: 1 nodes= [556, 206] persons= [712, 711, 710]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554339
+name: oneh_slice207 id: 208 peer: 1 nodes= [557, 207] persons= [713, 712, 711]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554339
+name: onei_slice208 id: 209 peer: 1 nodes= [208, 558] persons= [714, 713, 712]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554339
+name: onej_slice209 id: 210 peer: 1 nodes= [209, 559] persons= [715, 714, 713]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554339
+name: oneba_slice210 id: 211 peer: 1 nodes= [560, 210] persons= [716, 715, 714]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554339
+name: onebb_slice211 id: 212 peer: 1 nodes= [561, 211] persons= [716, 715, 717]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554339
+name: onebc_slice212 id: 213 peer: 1 nodes= [562, 212] persons= [716, 718, 717]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554340
+name: onebd_slice213 id: 214 peer: 1 nodes= [563, 213] persons= [719, 718, 717]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554340
+name: onebe_slice214 id: 215 peer: 1 nodes= [564, 214] persons= [720, 719, 718]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554340
+name: onebf_slice215 id: 216 peer: 1 nodes= [565, 215] persons= [721, 720, 719]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554340
+name: onebg_slice216 id: 217 peer: 1 nodes= [216, 566] persons= [722, 721, 720]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554340
+name: onebh_slice217 id: 218 peer: 1 nodes= [217, 567] persons= [723, 722, 721]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554340
+name: onebi_slice218 id: 219 peer: 1 nodes= [568, 218] persons= [724, 723, 722]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554340
+name: onebj_slice219 id: 220 peer: 1 nodes= [569, 219] persons= [724, 723, 725]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554340
+name: oneca_slice220 id: 221 peer: 1 nodes= [570, 220] persons= [724, 726, 725]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554341
+name: onecb_slice221 id: 222 peer: 1 nodes= [571, 221] persons= [727, 726, 725]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554341
+name: onecc_slice222 id: 223 peer: 1 nodes= [572, 222] persons= [728, 727, 726]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554341
+name: onecd_slice223 id: 224 peer: 1 nodes= [573, 223] persons= [729, 728, 727]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554341
+name: onece_slice224 id: 225 peer: 1 nodes= [224, 574] persons= [730, 729, 728]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554341
+name: onecf_slice225 id: 226 peer: 1 nodes= [225, 575] persons= [731, 730, 729]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554341
+name: onecg_slice226 id: 227 peer: 1 nodes= [576, 226] persons= [732, 731, 730]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554341
+name: onech_slice227 id: 228 peer: 1 nodes= [577, 227] persons= [732, 731, 733]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554341
+name: oneci_slice228 id: 229 peer: 1 nodes= [578, 228] persons= [732, 734, 733]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554342
+name: onecj_slice229 id: 230 peer: 1 nodes= [579, 229] persons= [735, 734, 733]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554342
+name: oneda_slice230 id: 231 peer: 1 nodes= [580, 230] persons= [736, 735, 734]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554342
+name: onedb_slice231 id: 232 peer: 1 nodes= [581, 231] persons= [737, 736, 735]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554342
+name: onedc_slice232 id: 233 peer: 1 nodes= [232, 582] persons= [738, 737, 736]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554342
+name: onedd_slice233 id: 234 peer: 1 nodes= [233, 583] persons= [739, 738, 737]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554342
+name: onede_slice234 id: 235 peer: 1 nodes= [584, 234] persons= [740, 739, 738]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554342
+name: onedf_slice235 id: 236 peer: 1 nodes= [585, 235] persons= [740, 739, 741]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554343
+name: onedg_slice236 id: 237 peer: 1 nodes= [586, 236] persons= [740, 742, 741]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554343
+name: onedh_slice237 id: 238 peer: 1 nodes= [587, 237] persons= [743, 742, 741]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554343
+name: onedi_slice238 id: 239 peer: 1 nodes= [588, 238] persons= [744, 743, 742]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554343
+name: onedj_slice239 id: 240 peer: 1 nodes= [589, 239] persons= [745, 744, 743]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554343
+name: oneea_slice240 id: 241 peer: 1 nodes= [240, 590] persons= [746, 745, 744]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554343
+name: oneeb_slice241 id: 242 peer: 1 nodes= [241, 591] persons= [747, 746, 745]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554343
+name: oneec_slice242 id: 243 peer: 1 nodes= [592, 242] persons= [748, 747, 746]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554343
+name: oneed_slice243 id: 244 peer: 1 nodes= [593, 243] persons= [748, 747, 749]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554344
+name: oneee_slice244 id: 245 peer: 1 nodes= [594, 244] persons= [748, 750, 749]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554344
+name: oneef_slice245 id: 246 peer: 1 nodes= [595, 245] persons= [751, 750, 749]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554344
+name: oneeg_slice246 id: 247 peer: 1 nodes= [596, 246] persons= [752, 751, 750]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554344
+name: oneeh_slice247 id: 248 peer: 1 nodes= [597, 247] persons= [753, 752, 751]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554344
+name: oneei_slice248 id: 249 peer: 1 nodes= [248, 598] persons= [754, 753, 752]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554344
+name: oneej_slice249 id: 250 peer: 1 nodes= [249, 599] persons= [755, 754, 753]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554344
+name: onefa_slice250 id: 251 peer: 1 nodes= [600, 250] persons= [756, 755, 754]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554344
+name: onefb_slice251 id: 252 peer: 1 nodes= [601, 251] persons= [756, 755, 757]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554345
+name: onefc_slice252 id: 253 peer: 1 nodes= [602, 252] persons= [756, 758, 757]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554345
+name: onefd_slice253 id: 254 peer: 1 nodes= [603, 253] persons= [759, 758, 757]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554345
+name: onefe_slice254 id: 255 peer: 1 nodes= [604, 254] persons= [760, 759, 758]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554345
+name: oneff_slice255 id: 256 peer: 1 nodes= [605, 255] persons= [761, 760, 759]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554345
+name: onefg_slice256 id: 257 peer: 1 nodes= [256, 606] persons= [762, 761, 760]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554345
+name: onefh_slice257 id: 258 peer: 1 nodes= [257, 607] persons= [763, 762, 761]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554345
+name: onefi_slice258 id: 259 peer: 1 nodes= [608, 258] persons= [764, 763, 762]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554346
+name: onefj_slice259 id: 260 peer: 1 nodes= [609, 259] persons= [764, 763, 765]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554346
+name: onega_slice260 id: 261 peer: 1 nodes= [610, 260] persons= [764, 766, 765]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554346
+name: onegb_slice261 id: 262 peer: 1 nodes= [611, 261] persons= [767, 766, 765]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554346
+name: onegc_slice262 id: 263 peer: 1 nodes= [612, 262] persons= [768, 767, 766]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554346
+name: onegd_slice263 id: 264 peer: 1 nodes= [613, 263] persons= [769, 768, 767]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554346
+name: onege_slice264 id: 265 peer: 1 nodes= [264, 614] persons= [770, 769, 768]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554346
+name: onegf_slice265 id: 266 peer: 1 nodes= [265, 615] persons= [771, 770, 769]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554346
+name: onegg_slice266 id: 267 peer: 1 nodes= [616, 266] persons= [772, 771, 770]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554347
+name: onegh_slice267 id: 268 peer: 1 nodes= [617, 267] persons= [772, 771, 773]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554347
+name: onegi_slice268 id: 269 peer: 1 nodes= [618, 268] persons= [772, 774, 773]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554347
+name: onegj_slice269 id: 270 peer: 1 nodes= [619, 269] persons= [775, 774, 773]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554347
+name: oneha_slice270 id: 271 peer: 1 nodes= [620, 270] persons= [776, 775, 774]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554347
+name: onehb_slice271 id: 272 peer: 1 nodes= [621, 271] persons= [777, 776, 775]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554347
+name: onehc_slice272 id: 273 peer: 1 nodes= [272, 622] persons= [778, 777, 776]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554347
+name: onehd_slice273 id: 274 peer: 1 nodes= [273, 623] persons= [779, 778, 777]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554348
+name: onehe_slice274 id: 275 peer: 1 nodes= [624, 274] persons= [780, 779, 778]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554348
+name: onehf_slice275 id: 276 peer: 1 nodes= [625, 275] persons= [780, 779, 781]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554348
+name: onehg_slice276 id: 277 peer: 1 nodes= [626, 276] persons= [780, 782, 781]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554348
+name: onehh_slice277 id: 278 peer: 1 nodes= [627, 277] persons= [783, 782, 781]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554348
+name: onehi_slice278 id: 279 peer: 1 nodes= [628, 278] persons= [784, 783, 782]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554348
+name: onehj_slice279 id: 280 peer: 1 nodes= [629, 279] persons= [785, 784, 783]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554348
+name: oneia_slice280 id: 281 peer: 1 nodes= [280, 630] persons= [786, 785, 784]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554348
+name: oneib_slice281 id: 282 peer: 1 nodes= [281, 631] persons= [787, 786, 785]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554349
+name: oneic_slice282 id: 283 peer: 1 nodes= [632, 282] persons= [788, 787, 786]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554349
+name: oneid_slice283 id: 284 peer: 1 nodes= [633, 283] persons= [788, 787, 789]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554349
+name: oneie_slice284 id: 285 peer: 1 nodes= [634, 284] persons= [788, 790, 789]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554349
+name: oneif_slice285 id: 286 peer: 1 nodes= [635, 285] persons= [791, 790, 789]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554349
+name: oneig_slice286 id: 287 peer: 1 nodes= [636, 286] persons= [792, 791, 790]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554349
+name: oneih_slice287 id: 288 peer: 1 nodes= [637, 287] persons= [793, 792, 791]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554349
+name: oneii_slice288 id: 289 peer: 1 nodes= [288, 638] persons= [794, 793, 792]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554350
+name: oneij_slice289 id: 290 peer: 1 nodes= [289, 639] persons= [795, 794, 793]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554350
+name: oneja_slice290 id: 291 peer: 1 nodes= [640, 290] persons= [796, 795, 794]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554350
+name: onejb_slice291 id: 292 peer: 1 nodes= [641, 291] persons= [796, 795, 797]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554350
+name: onejc_slice292 id: 293 peer: 1 nodes= [642, 292] persons= [796, 798, 797]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554350
+name: onejd_slice293 id: 294 peer: 1 nodes= [643, 293] persons= [799, 798, 797]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554350
+name: oneje_slice294 id: 295 peer: 1 nodes= [644, 294] persons= [800, 799, 798]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554350
+name: onejf_slice295 id: 296 peer: 1 nodes= [645, 295] persons= [801, 800, 799]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554351
+name: onejg_slice296 id: 297 peer: 1 nodes= [296, 646] persons= [802, 801, 800]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554351
+name: onejh_slice297 id: 298 peer: 1 nodes= [297, 647] persons= [803, 802, 801]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554351
+name: oneji_slice298 id: 299 peer: 1 nodes= [648, 298] persons= [804, 803, 802]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554351
+name: onejj_slice299 id: 300 peer: 1 nodes= [649, 299] persons= [804, 803, 805]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554351
+name: onebaa_slice300 id: 301 peer: 1 nodes= [650, 300] persons= [804, 806, 805]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554351
+name: onebab_slice301 id: 302 peer: 1 nodes= [651, 301] persons= [807, 806, 805]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554351
+name: onebac_slice302 id: 303 peer: 1 nodes= [652, 302] persons= [808, 807, 806]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554351
+name: onebad_slice303 id: 304 peer: 1 nodes= [653, 303] persons= [809, 808, 807]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554352
+name: onebae_slice304 id: 305 peer: 1 nodes= [304, 654] persons= [810, 809, 808]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554352
+name: onebaf_slice305 id: 306 peer: 1 nodes= [305, 655] persons= [811, 810, 809]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554352
+name: onebag_slice306 id: 307 peer: 1 nodes= [656, 306] persons= [812, 811, 810]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554352
+name: onebah_slice307 id: 308 peer: 1 nodes= [657, 307] persons= [812, 811, 813]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554352
+name: onebai_slice308 id: 309 peer: 1 nodes= [658, 308] persons= [812, 814, 813]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554352
+name: onebaj_slice309 id: 310 peer: 1 nodes= [659, 309] persons= [815, 814, 813]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554352
+name: onebba_slice310 id: 311 peer: 1 nodes= [660, 310] persons= [816, 815, 814]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554353
+name: onebbb_slice311 id: 312 peer: 1 nodes= [661, 311] persons= [817, 816, 815]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554353
+name: onebbc_slice312 id: 313 peer: 1 nodes= [312, 662] persons= [818, 817, 816]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554353
+name: onebbd_slice313 id: 314 peer: 1 nodes= [313, 663] persons= [819, 818, 817]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554353
+name: onebbe_slice314 id: 315 peer: 1 nodes= [664, 314] persons= [820, 819, 818]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554353
+name: onebbf_slice315 id: 316 peer: 1 nodes= [665, 315] persons= [820, 819, 821]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554353
+name: onebbg_slice316 id: 317 peer: 1 nodes= [666, 316] persons= [820, 822, 821]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554353
+name: onebbh_slice317 id: 318 peer: 1 nodes= [667, 317] persons= [823, 822, 821]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554353
+name: onebbi_slice318 id: 319 peer: 1 nodes= [668, 318] persons= [824, 823, 822]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554354
+name: onebbj_slice319 id: 320 peer: 1 nodes= [669, 319] persons= [825, 824, 823]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554354
+name: onebca_slice320 id: 321 peer: 1 nodes= [320, 670] persons= [826, 825, 824]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554354
+name: onebcb_slice321 id: 322 peer: 1 nodes= [321, 671] persons= [827, 826, 825]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554354
+name: onebcc_slice322 id: 323 peer: 1 nodes= [672, 322] persons= [828, 827, 826]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554354
+name: onebcd_slice323 id: 324 peer: 1 nodes= [673, 323] persons= [828, 827, 829]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554354
+name: onebce_slice324 id: 325 peer: 1 nodes= [674, 324] persons= [828, 830, 829]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554354
+name: onebcf_slice325 id: 326 peer: 1 nodes= [675, 325] persons= [831, 830, 829]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554355
+name: onebcg_slice326 id: 327 peer: 1 nodes= [676, 326] persons= [832, 831, 830]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554355
+name: onebch_slice327 id: 328 peer: 1 nodes= [677, 327] persons= [833, 832, 831]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554355
+name: onebci_slice328 id: 329 peer: 1 nodes= [328, 678] persons= [834, 833, 832]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554355
+name: onebcj_slice329 id: 330 peer: 1 nodes= [329, 679] persons= [835, 834, 833]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554355
+name: onebda_slice330 id: 331 peer: 1 nodes= [680, 330] persons= [836, 835, 834]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554355
+name: onebdb_slice331 id: 332 peer: 1 nodes= [681, 331] persons= [836, 835, 837]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554355
+name: onebdc_slice332 id: 333 peer: 1 nodes= [682, 332] persons= [836, 838, 837]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554356
+name: onebdd_slice333 id: 334 peer: 1 nodes= [683, 333] persons= [839, 838, 837]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554356
+name: onebde_slice334 id: 335 peer: 1 nodes= [684, 334] persons= [840, 839, 838]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554356
+name: onebdf_slice335 id: 336 peer: 1 nodes= [685, 335] persons= [841, 840, 839]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554356
+name: onebdg_slice336 id: 337 peer: 1 nodes= [336, 686] persons= [842, 841, 840]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554356
+name: onebdh_slice337 id: 338 peer: 1 nodes= [337, 687] persons= [843, 842, 841]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554356
+name: onebdi_slice338 id: 339 peer: 1 nodes= [688, 338] persons= [844, 843, 842]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554356
+name: onebdj_slice339 id: 340 peer: 1 nodes= [689, 339] persons= [844, 843, 845]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554356
+name: onebea_slice340 id: 341 peer: 1 nodes= [690, 340] persons= [844, 846, 845]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554357
+name: onebeb_slice341 id: 342 peer: 1 nodes= [691, 341] persons= [847, 846, 845]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554357
+name: onebec_slice342 id: 343 peer: 1 nodes= [692, 342] persons= [848, 847, 846]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554357
+name: onebed_slice343 id: 344 peer: 1 nodes= [693, 343] persons= [849, 848, 847]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554357
+name: onebee_slice344 id: 345 peer: 1 nodes= [344, 694] persons= [850, 849, 848]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554357
+name: onebef_slice345 id: 346 peer: 1 nodes= [345, 695] persons= [851, 850, 849]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554357
+name: onebeg_slice346 id: 347 peer: 1 nodes= [696, 346] persons= [852, 851, 850]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554357
+name: onebeh_slice347 id: 348 peer: 1 nodes= [697, 347] persons= [852, 851, 853]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554358
+name: onebei_slice348 id: 349 peer: 1 nodes= [698, 348] persons= [852, 854, 853]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554358
+name: onebej_slice349 id: 350 peer: 1 nodes= [699, 349] persons= [855, 854, 853]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554358
+name: onebfa_slice350 id: 351 peer: 1 nodes= [700, 350] persons= [856, 855, 854]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554358
+name: onebfb_slice351 id: 352 peer: 1 nodes= [1, 351] persons= [857, 856, 855]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554358
+name: onebfc_slice352 id: 353 peer: 1 nodes= [352, 2] persons= [858, 857, 856]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554358
+name: onebfd_slice353 id: 354 peer: 1 nodes= [353, 3] persons= [859, 858, 857]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554358
+name: onebfe_slice354 id: 355 peer: 1 nodes= [354, 4] persons= [860, 859, 858]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554359
+name: onebff_slice355 id: 356 peer: 1 nodes= [355, 5] persons= [860, 859, 861]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554359
+name: onebfg_slice356 id: 357 peer: 1 nodes= [356, 6] persons= [860, 862, 861]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554359
+name: onebfh_slice357 id: 358 peer: 1 nodes= [357, 7] persons= [863, 862, 861]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554359
+name: onebfi_slice358 id: 359 peer: 1 nodes= [8, 358] persons= [864, 863, 862]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554359
+name: onebfj_slice359 id: 360 peer: 1 nodes= [9, 359] persons= [865, 864, 863]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554359
+name: onebga_slice360 id: 361 peer: 1 nodes= [360, 10] persons= [866, 865, 864]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554359
+name: onebgb_slice361 id: 362 peer: 1 nodes= [361, 11] persons= [867, 866, 865]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554360
+name: onebgc_slice362 id: 363 peer: 1 nodes= [362, 12] persons= [868, 867, 866]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554360
+name: onebgd_slice363 id: 364 peer: 1 nodes= [363, 13] persons= [868, 867, 869]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554360
+name: onebge_slice364 id: 365 peer: 1 nodes= [364, 14] persons= [868, 870, 869]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554360
+name: onebgf_slice365 id: 366 peer: 1 nodes= [365, 15] persons= [871, 870, 869]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554360
+name: onebgg_slice366 id: 367 peer: 1 nodes= [16, 366] persons= [872, 871, 870]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554360
+name: onebgh_slice367 id: 368 peer: 1 nodes= [17, 367] persons= [873, 872, 871]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554360
+name: onebgi_slice368 id: 369 peer: 1 nodes= [368, 18] persons= [874, 873, 872]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554361
+name: onebgj_slice369 id: 370 peer: 1 nodes= [369, 19] persons= [875, 874, 873]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554361
+name: onebha_slice370 id: 371 peer: 1 nodes= [370, 20] persons= [876, 875, 874]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554361
+name: onebhb_slice371 id: 372 peer: 1 nodes= [371, 21] persons= [876, 875, 877]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554361
+name: onebhc_slice372 id: 373 peer: 1 nodes= [372, 22] persons= [876, 878, 877]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554361
+name: onebhd_slice373 id: 374 peer: 1 nodes= [373, 23] persons= [879, 878, 877]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554361
+name: onebhe_slice374 id: 375 peer: 1 nodes= [24, 374] persons= [880, 879, 878]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554361
+name: onebhf_slice375 id: 376 peer: 1 nodes= [25, 375] persons= [881, 880, 879]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554361
+name: onebhg_slice376 id: 377 peer: 1 nodes= [376, 26] persons= [882, 881, 880]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554362
+name: onebhh_slice377 id: 378 peer: 1 nodes= [377, 27] persons= [883, 882, 881]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554362
+name: onebhi_slice378 id: 379 peer: 1 nodes= [378, 28] persons= [884, 883, 882]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554362
+name: onebhj_slice379 id: 380 peer: 1 nodes= [379, 29] persons= [884, 883, 885]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554362
+name: onebia_slice380 id: 381 peer: 1 nodes= [380, 30] persons= [884, 886, 885]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554362
+name: onebib_slice381 id: 382 peer: 1 nodes= [381, 31] persons= [887, 886, 885]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554362
+name: onebic_slice382 id: 383 peer: 1 nodes= [32, 382] persons= [888, 887, 886]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554362
+name: onebid_slice383 id: 384 peer: 1 nodes= [33, 383] persons= [889, 888, 887]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554363
+name: onebie_slice384 id: 385 peer: 1 nodes= [384, 34] persons= [890, 889, 888]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554363
+name: onebif_slice385 id: 386 peer: 1 nodes= [385, 35] persons= [891, 890, 889]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554363
+name: onebig_slice386 id: 387 peer: 1 nodes= [386, 36] persons= [892, 891, 890]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554363
+name: onebih_slice387 id: 388 peer: 1 nodes= [387, 37] persons= [892, 891, 893]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554363
+name: onebii_slice388 id: 389 peer: 1 nodes= [388, 38] persons= [892, 894, 893]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554363
+name: onebij_slice389 id: 390 peer: 1 nodes= [389, 39] persons= [895, 894, 893]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554363
+name: onebja_slice390 id: 391 peer: 1 nodes= [40, 390] persons= [896, 895, 894]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554364
+name: onebjb_slice391 id: 392 peer: 1 nodes= [41, 391] persons= [897, 896, 895]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554364
+name: onebjc_slice392 id: 393 peer: 1 nodes= [392, 42] persons= [898, 897, 896]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554364
+name: onebjd_slice393 id: 394 peer: 1 nodes= [393, 43] persons= [899, 898, 897]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554364
+name: onebje_slice394 id: 395 peer: 1 nodes= [394, 44] persons= [900, 899, 898]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554364
+name: onebjf_slice395 id: 396 peer: 1 nodes= [395, 45] persons= [900, 899, 901]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554364
+name: onebjg_slice396 id: 397 peer: 1 nodes= [396, 46] persons= [900, 902, 901]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554364
+name: onebjh_slice397 id: 398 peer: 1 nodes= [397, 47] persons= [903, 902, 901]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554365
+name: onebji_slice398 id: 399 peer: 1 nodes= [48, 398] persons= [904, 903, 902]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554365
+name: onebjj_slice399 id: 400 peer: 1 nodes= [49, 399] persons= [905, 904, 903]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554365
+name: onecaa_slice400 id: 401 peer: 1 nodes= [400, 50] persons= [906, 905, 904]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554365
+name: oneb_slice401 id: 402 peer: 1 nodes= [401, 51] persons= [907, 906, 905]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554365
+name: onec_slice402 id: 403 peer: 1 nodes= [402, 52] persons= [908, 907, 906]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554365
+name: oned_slice403 id: 404 peer: 1 nodes= [403, 53] persons= [908, 907, 909]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554365
+name: onee_slice404 id: 405 peer: 1 nodes= [404, 54] persons= [908, 910, 909]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554366
+name: onef_slice405 id: 406 peer: 1 nodes= [405, 55] persons= [911, 910, 909]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554366
+name: oneg_slice406 id: 407 peer: 1 nodes= [56, 406] persons= [912, 911, 910]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554366
+name: oneh_slice407 id: 408 peer: 1 nodes= [57, 407] persons= [913, 912, 911]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554366
+name: onei_slice408 id: 409 peer: 1 nodes= [408, 58] persons= [914, 913, 912]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554366
+name: onej_slice409 id: 410 peer: 1 nodes= [409, 59] persons= [915, 914, 913]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554366
+name: oneba_slice410 id: 411 peer: 1 nodes= [410, 60] persons= [916, 915, 914]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554366
+name: onebb_slice411 id: 412 peer: 1 nodes= [411, 61] persons= [916, 915, 917]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554367
+name: onebc_slice412 id: 413 peer: 1 nodes= [412, 62] persons= [916, 918, 917]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554367
+name: onebd_slice413 id: 414 peer: 1 nodes= [413, 63] persons= [919, 918, 917]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554367
+name: onebe_slice414 id: 415 peer: 1 nodes= [64, 414] persons= [920, 919, 918]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554367
+name: onebf_slice415 id: 416 peer: 1 nodes= [65, 415] persons= [921, 920, 919]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554367
+name: onebg_slice416 id: 417 peer: 1 nodes= [416, 66] persons= [922, 921, 920]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554367
+name: onebh_slice417 id: 418 peer: 1 nodes= [417, 67] persons= [923, 922, 921]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554367
+name: onebi_slice418 id: 419 peer: 1 nodes= [418, 68] persons= [924, 923, 922]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554368
+name: onebj_slice419 id: 420 peer: 1 nodes= [419, 69] persons= [924, 923, 925]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554368
+name: oneca_slice420 id: 421 peer: 1 nodes= [420, 70] persons= [924, 926, 925]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554368
+name: onecb_slice421 id: 422 peer: 1 nodes= [421, 71] persons= [927, 926, 925]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554368
+name: onecc_slice422 id: 423 peer: 1 nodes= [72, 422] persons= [928, 927, 926]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554368
+name: onecd_slice423 id: 424 peer: 1 nodes= [73, 423] persons= [929, 928, 927]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554368
+name: onece_slice424 id: 425 peer: 1 nodes= [424, 74] persons= [930, 929, 928]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554368
+name: onecf_slice425 id: 426 peer: 1 nodes= [425, 75] persons= [931, 930, 929]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554369
+name: onecg_slice426 id: 427 peer: 1 nodes= [426, 76] persons= [932, 931, 930]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554369
+name: onech_slice427 id: 428 peer: 1 nodes= [427, 77] persons= [932, 931, 933]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554369
+name: oneci_slice428 id: 429 peer: 1 nodes= [428, 78] persons= [932, 934, 933]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554369
+name: onecj_slice429 id: 430 peer: 1 nodes= [429, 79] persons= [935, 934, 933]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554369
+name: oneda_slice430 id: 431 peer: 1 nodes= [80, 430] persons= [936, 935, 934]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554369
+name: onedb_slice431 id: 432 peer: 1 nodes= [81, 431] persons= [937, 936, 935]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554369
+name: onedc_slice432 id: 433 peer: 1 nodes= [432, 82] persons= [938, 937, 936]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554370
+name: onedd_slice433 id: 434 peer: 1 nodes= [433, 83] persons= [939, 938, 937]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554370
+name: onede_slice434 id: 435 peer: 1 nodes= [434, 84] persons= [940, 939, 938]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554370
+name: onedf_slice435 id: 436 peer: 1 nodes= [435, 85] persons= [940, 939, 941]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554370
+name: onedg_slice436 id: 437 peer: 1 nodes= [436, 86] persons= [940, 942, 941]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554370
+name: onedh_slice437 id: 438 peer: 1 nodes= [437, 87] persons= [943, 942, 941]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554370
+name: onedi_slice438 id: 439 peer: 1 nodes= [88, 438] persons= [944, 943, 942]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554370
+name: onedj_slice439 id: 440 peer: 1 nodes= [89, 439] persons= [945, 944, 943]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554371
+name: oneea_slice440 id: 441 peer: 1 nodes= [440, 90] persons= [946, 945, 944]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554371
+name: oneeb_slice441 id: 442 peer: 1 nodes= [441, 91] persons= [947, 946, 945]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554371
+name: oneec_slice442 id: 443 peer: 1 nodes= [442, 92] persons= [948, 947, 946]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554371
+name: oneed_slice443 id: 444 peer: 1 nodes= [443, 93] persons= [948, 947, 949]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554371
+name: oneee_slice444 id: 445 peer: 1 nodes= [444, 94] persons= [948, 950, 949]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554371
+name: oneef_slice445 id: 446 peer: 1 nodes= [445, 95] persons= [951, 950, 949]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554371
+name: oneeg_slice446 id: 447 peer: 1 nodes= [96, 446] persons= [952, 951, 950]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554372
+name: oneeh_slice447 id: 448 peer: 1 nodes= [97, 447] persons= [953, 952, 951]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554372
+name: oneei_slice448 id: 449 peer: 1 nodes= [448, 98] persons= [954, 953, 952]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554372
+name: oneej_slice449 id: 450 peer: 1 nodes= [449, 99] persons= [955, 954, 953]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554372
+name: onefa_slice450 id: 451 peer: 1 nodes= [450, 100] persons= [956, 955, 954]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554372
+name: onefb_slice451 id: 452 peer: 1 nodes= [451, 101] persons= [956, 955, 957]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554372
+name: onefc_slice452 id: 453 peer: 1 nodes= [452, 102] persons= [956, 958, 957]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554373
+name: onefd_slice453 id: 454 peer: 1 nodes= [453, 103] persons= [959, 958, 957]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554373
+name: onefe_slice454 id: 455 peer: 1 nodes= [104, 454] persons= [960, 959, 958]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554373
+name: oneff_slice455 id: 456 peer: 1 nodes= [105, 455] persons= [961, 960, 959]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554373
+name: onefg_slice456 id: 457 peer: 1 nodes= [456, 106] persons= [962, 961, 960]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554373
+name: onefh_slice457 id: 458 peer: 1 nodes= [457, 107] persons= [963, 962, 961]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554373
+name: onefi_slice458 id: 459 peer: 1 nodes= [458, 108] persons= [964, 963, 962]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554373
+name: onefj_slice459 id: 460 peer: 1 nodes= [459, 109] persons= [964, 963, 965]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554374
+name: onega_slice460 id: 461 peer: 1 nodes= [460, 110] persons= [964, 966, 965]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554374
+name: onegb_slice461 id: 462 peer: 1 nodes= [461, 111] persons= [967, 966, 965]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554374
+name: onegc_slice462 id: 463 peer: 1 nodes= [112, 462] persons= [968, 967, 966]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554374
+name: onegd_slice463 id: 464 peer: 1 nodes= [113, 463] persons= [969, 968, 967]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554374
+name: onege_slice464 id: 465 peer: 1 nodes= [464, 114] persons= [970, 969, 968]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554374
+name: onegf_slice465 id: 466 peer: 1 nodes= [465, 115] persons= [971, 970, 969]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554374
+name: onegg_slice466 id: 467 peer: 1 nodes= [466, 116] persons= [972, 971, 970]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554375
+name: onegh_slice467 id: 468 peer: 1 nodes= [467, 117] persons= [972, 971, 973]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554375
+name: onegi_slice468 id: 469 peer: 1 nodes= [468, 118] persons= [972, 974, 973]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554375
+name: onegj_slice469 id: 470 peer: 1 nodes= [469, 119] persons= [975, 974, 973]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554375
+name: oneha_slice470 id: 471 peer: 1 nodes= [120, 470] persons= [976, 975, 974]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554375
+name: onehb_slice471 id: 472 peer: 1 nodes= [121, 471] persons= [977, 976, 975]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554375
+name: onehc_slice472 id: 473 peer: 1 nodes= [472, 122] persons= [978, 977, 976]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554375
+name: onehd_slice473 id: 474 peer: 1 nodes= [473, 123] persons= [979, 978, 977]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554376
+name: onehe_slice474 id: 475 peer: 1 nodes= [474, 124] persons= [980, 979, 978]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554376
+name: onehf_slice475 id: 476 peer: 1 nodes= [475, 125] persons= [980, 979, 981]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554376
+name: onehg_slice476 id: 477 peer: 1 nodes= [476, 126] persons= [980, 982, 981]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554376
+name: onehh_slice477 id: 478 peer: 1 nodes= [477, 127] persons= [983, 982, 981]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554376
+name: onehi_slice478 id: 479 peer: 1 nodes= [128, 478] persons= [984, 983, 982]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554376
+name: onehj_slice479 id: 480 peer: 1 nodes= [129, 479] persons= [985, 984, 983]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554376
+name: oneia_slice480 id: 481 peer: 1 nodes= [480, 130] persons= [986, 985, 984]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554377
+name: oneib_slice481 id: 482 peer: 1 nodes= [481, 131] persons= [987, 986, 985]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554377
+name: oneic_slice482 id: 483 peer: 1 nodes= [482, 132] persons= [988, 987, 986]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554377
+name: oneid_slice483 id: 484 peer: 1 nodes= [483, 133] persons= [988, 987, 989]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554377
+name: oneie_slice484 id: 485 peer: 1 nodes= [484, 134] persons= [988, 990, 989]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554377
+name: oneif_slice485 id: 486 peer: 1 nodes= [485, 135] persons= [991, 990, 989]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554377
+name: oneig_slice486 id: 487 peer: 1 nodes= [136, 486] persons= [992, 991, 990]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554377
+name: oneih_slice487 id: 488 peer: 1 nodes= [137, 487] persons= [993, 992, 991]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554378
+name: oneii_slice488 id: 489 peer: 1 nodes= [488, 138] persons= [994, 993, 992]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554378
+name: oneij_slice489 id: 490 peer: 1 nodes= [489, 139] persons= [995, 994, 993]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554378
+name: oneja_slice490 id: 491 peer: 1 nodes= [490, 140] persons= [996, 995, 994]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554378
+name: onejb_slice491 id: 492 peer: 1 nodes= [491, 141] persons= [996, 995, 997]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554378
+name: onejc_slice492 id: 493 peer: 1 nodes= [492, 142] persons= [996, 998, 997]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554378
+name: onejd_slice493 id: 494 peer: 1 nodes= [493, 143] persons= [999, 998, 997]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554379
+name: oneje_slice494 id: 495 peer: 1 nodes= [144, 494] persons= [1000, 999, 998]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554379
+name: onejf_slice495 id: 496 peer: 1 nodes= [145, 495] persons= [1001, 1000, 999]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554379
+name: onejg_slice496 id: 497 peer: 1 nodes= [496, 146] persons= [1002, 1001, 1000]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554379
+name: onejh_slice497 id: 498 peer: 1 nodes= [497, 147] persons= [1003, 1002, 1001]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554379
+name: oneji_slice498 id: 499 peer: 1 nodes= [498, 148] persons= [1004, 1003, 1002]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554379
+name: onejj_slice499 id: 500 peer: 1 nodes= [499, 149] persons= [1004, 1003, 505]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554379
+name: onebaa_slice500 id: 501 peer: 1 nodes= [500, 150] persons= [1004, 506, 505]
+--- sa_ids= [] creator: None
+--- 'expires': 1183554380
+02: Slice Attribute Types
+sat_id: 01 min_role_id: 20 name: type < Type of slice (e.g. vserver) >
+sat_id: 02 min_role_id: 10 name: system < Is a default system slice (1) or not (0 or unset) >
+sat_id: 03 min_role_id: 10 name: enabled < Slice enabled (1 or unset) or suspended (0) >
+sat_id: 04 min_role_id: 30 name: vref < Reference image >
+sat_id: 05 min_role_id: 10 name: initscript < Slice initialization script >
+sat_id: 06 min_role_id: 10 name: cpu_min < Minimum CPU share (ms/s) >
+sat_id: 07 min_role_id: 10 name: cpu_share < Number of CPU shares >
+sat_id: 08 min_role_id: 10 name: net_min_rate < Minimum bandwidth (kbps) >
+sat_id: 09 min_role_id: 10 name: net_max_rate < Maximum bandwidth (kbps) >
+sat_id: 10 min_role_id: 10 name: net_i2_min_rate < Minimum bandwidth over I2 routes (kbps) >
+sat_id: 11 min_role_id: 10 name: net_i2_max_rate < Maximum bandwidth over I2 routes (kbps) >
+sat_id: 12 min_role_id: 10 name: net_max_kbyte < Maximum daily network Tx KByte limit. >
+sat_id: 13 min_role_id: 10 name: net_thresh_kbyte < KByte limit before warning and throttling. >
+sat_id: 14 min_role_id: 10 name: net_i2_max_kbyte < Maximum daily network Tx KByte limit to I2 hosts. >
+sat_id: 15 min_role_id: 10 name: net_i2_thresh_kbyte < KByte limit to I2 hosts before warning and throttling. >
+sat_id: 16 min_role_id: 10 name: net_share < Number of bandwidth shares >
+sat_id: 17 min_role_id: 10 name: net_i2_share < Number of bandwidth shares over I2 routes >
+sat_id: 18 min_role_id: 10 name: disk_max < Disk quota (1k disk blocks) >
+sat_id: 19 min_role_id: 10 name: proper_op < Proper operation (e.g. bind_socket) >
+sat_id: 20 min_role_id: 20 name: plc_slice_type < Type of slice rspec to be created >
+sat_id: 21 min_role_id: 10 name: plc_agent_version < Version of PLC agent (slice creation service) software to be deployed >
+sat_id: 22 min_role_id: 10 name: plc_ticket_pubkey < Public key used to verify PLC-signed tickets >
+sat_id: 23 min_role_id: 10 name: sat_2 < custom sat on plc2 >
+02: Slice Attributes
+name: system       sa_id: 01 sat_id: 02 sl=01 v= 1 n= None
+name: vref         sa_id: 02 sat_id: 04 sl=01 v= planetflow n= None
+name: proper_op    sa_id: 05 sat_id: 19 sl=01 v= bind_socket n= None
+name: proper_op    sa_id: 04 sat_id: 19 sl=01 v= create_socket n= None
+name: proper_op    sa_id: 03 sat_id: 19 sl=01 v= open file=/etc/passwd, flags=r n= None
++++ 251.90 seconds ellapsed (10.67)
+02: SLIVERS for first 3 nodes
+WARNING - GetSlivers needs fix
+02:============================== END DUMP
++++ 251.90 seconds ellapsed (0.00)
+==================== ('END',)
++++ 251.90 seconds ellapsed (0.00)
diff --git a/trunk/tests/testpeers.-h.populate_end.ref b/trunk/tests/testpeers.-h.populate_end.ref
new file mode 100644 (file)
index 0000000..6b90268
--- /dev/null
@@ -0,0 +1,46281 @@
+Running populate_end
+1000 sites, 2000 persons, 3000 nodes & 2000 slices
+1 keys/person, 3 nodes/slice & 3 persons/slice
+fast_flag False
++++ timer start
+initializing s[1]=>https://planetlab-devbox.inria.fr:443/PLCAPI/
+initializing s[2]=>https://lurch.cs.princeton.edu:443/PLCAPI/
+=== refresh Peer 1 for publishing foreign nodes from 2
++++ 0.45 seconds ellapsed (0.45)
+01:== Refreshing peer Result: { new_keys 2000 new_nodes 3000 new_persons 2001 new_sites 1001 new_slice_attribute_types 1 new_slice_attributes 5 new_slices 1 peername Thierry plc2 }
++++ ellapsed: { process-keys 24.5056829453 process-nodes 246.490015984 process-persons 82.4104459286 process-sa 1.37920308113 process-sat 0.0163571834564 process-sites 24.8073971272 process-slices 3.42446088791 time_all 407.676270008 time_gather 0.733674049377 time_process 383.033581972 time_transmit 23.9090139866 }
++++ 410.11 seconds ellapsed (409.66)
++++ 410.11 seconds ellapsed (0.00)
+01:== added in slice oneb_slice1 foreign  ['n2-001.plc2.org', 'n2-002.plc2.org', 'n2-003.plc2.org']
+01:== added in slice onec_slice2 foreign  ['n2-002.plc2.org', 'n2-003.plc2.org', 'n2-004.plc2.org']
+01:== added in slice oned_slice3 foreign  ['n2-003.plc2.org', 'n2-004.plc2.org', 'n2-005.plc2.org']
+01:== added in slice onee_slice4 foreign  ['n2-004.plc2.org', 'n2-005.plc2.org', 'n2-006.plc2.org']
+01:== added in slice onef_slice5 foreign  ['n2-005.plc2.org', 'n2-006.plc2.org', 'n2-007.plc2.org']
+01:== added in slice oneg_slice6 foreign  ['n2-006.plc2.org', 'n2-007.plc2.org', 'n2-008.plc2.org']
+01:== added in slice oneh_slice7 foreign  ['n2-007.plc2.org', 'n2-008.plc2.org', 'n2-009.plc2.org']
+01:== added in slice onei_slice8 foreign  ['n2-008.plc2.org', 'n2-009.plc2.org', 'n2-010.plc2.org']
+01:== added in slice onej_slice9 foreign  ['n2-009.plc2.org', 'n2-010.plc2.org', 'n2-011.plc2.org']
+01:== added in slice oneba_slice10 foreign  ['n2-010.plc2.org', 'n2-011.plc2.org', 'n2-012.plc2.org']
+01:== added in slice onebb_slice11 foreign  ['n2-011.plc2.org', 'n2-012.plc2.org', 'n2-013.plc2.org']
+01:== added in slice onebc_slice12 foreign  ['n2-012.plc2.org', 'n2-013.plc2.org', 'n2-014.plc2.org']
+01:== added in slice onebd_slice13 foreign  ['n2-013.plc2.org', 'n2-014.plc2.org', 'n2-015.plc2.org']
+01:== added in slice onebe_slice14 foreign  ['n2-014.plc2.org', 'n2-015.plc2.org', 'n2-016.plc2.org']
+01:== added in slice onebf_slice15 foreign  ['n2-015.plc2.org', 'n2-016.plc2.org', 'n2-017.plc2.org']
+01:== added in slice onebg_slice16 foreign  ['n2-016.plc2.org', 'n2-017.plc2.org', 'n2-018.plc2.org']
+01:== added in slice onebh_slice17 foreign  ['n2-017.plc2.org', 'n2-018.plc2.org', 'n2-019.plc2.org']
+01:== added in slice onebi_slice18 foreign  ['n2-018.plc2.org', 'n2-019.plc2.org', 'n2-020.plc2.org']
+01:== added in slice onebj_slice19 foreign  ['n2-019.plc2.org', 'n2-020.plc2.org', 'n2-021.plc2.org']
+01:== added in slice oneca_slice20 foreign  ['n2-020.plc2.org', 'n2-021.plc2.org', 'n2-022.plc2.org']
+01:== added in slice onecb_slice21 foreign  ['n2-021.plc2.org', 'n2-022.plc2.org', 'n2-023.plc2.org']
+01:== added in slice onecc_slice22 foreign  ['n2-022.plc2.org', 'n2-023.plc2.org', 'n2-024.plc2.org']
+01:== added in slice onecd_slice23 foreign  ['n2-023.plc2.org', 'n2-024.plc2.org', 'n2-025.plc2.org']
+01:== added in slice onece_slice24 foreign  ['n2-024.plc2.org', 'n2-025.plc2.org', 'n2-026.plc2.org']
+01:== added in slice onecf_slice25 foreign  ['n2-025.plc2.org', 'n2-026.plc2.org', 'n2-027.plc2.org']
+01:== added in slice onecg_slice26 foreign  ['n2-026.plc2.org', 'n2-027.plc2.org', 'n2-028.plc2.org']
+01:== added in slice onech_slice27 foreign  ['n2-027.plc2.org', 'n2-028.plc2.org', 'n2-029.plc2.org']
+01:== added in slice oneci_slice28 foreign  ['n2-028.plc2.org', 'n2-029.plc2.org', 'n2-030.plc2.org']
+01:== added in slice onecj_slice29 foreign  ['n2-029.plc2.org', 'n2-030.plc2.org', 'n2-031.plc2.org']
+01:== added in slice oneda_slice30 foreign  ['n2-030.plc2.org', 'n2-031.plc2.org', 'n2-032.plc2.org']
+01:== added in slice onedb_slice31 foreign  ['n2-031.plc2.org', 'n2-032.plc2.org', 'n2-033.plc2.org']
+01:== added in slice onedc_slice32 foreign  ['n2-032.plc2.org', 'n2-033.plc2.org', 'n2-034.plc2.org']
+01:== added in slice onedd_slice33 foreign  ['n2-033.plc2.org', 'n2-034.plc2.org', 'n2-035.plc2.org']
+01:== added in slice onede_slice34 foreign  ['n2-034.plc2.org', 'n2-035.plc2.org', 'n2-036.plc2.org']
+01:== added in slice onedf_slice35 foreign  ['n2-035.plc2.org', 'n2-036.plc2.org', 'n2-037.plc2.org']
+01:== added in slice onedg_slice36 foreign  ['n2-036.plc2.org', 'n2-037.plc2.org', 'n2-038.plc2.org']
+01:== added in slice onedh_slice37 foreign  ['n2-037.plc2.org', 'n2-038.plc2.org', 'n2-039.plc2.org']
+01:== added in slice onedi_slice38 foreign  ['n2-038.plc2.org', 'n2-039.plc2.org', 'n2-040.plc2.org']
+01:== added in slice onedj_slice39 foreign  ['n2-039.plc2.org', 'n2-040.plc2.org', 'n2-041.plc2.org']
+01:== added in slice oneea_slice40 foreign  ['n2-040.plc2.org', 'n2-041.plc2.org', 'n2-042.plc2.org']
+01:== added in slice oneeb_slice41 foreign  ['n2-041.plc2.org', 'n2-042.plc2.org', 'n2-043.plc2.org']
+01:== added in slice oneec_slice42 foreign  ['n2-042.plc2.org', 'n2-043.plc2.org', 'n2-044.plc2.org']
+01:== added in slice oneed_slice43 foreign  ['n2-043.plc2.org', 'n2-044.plc2.org', 'n2-045.plc2.org']
+01:== added in slice oneee_slice44 foreign  ['n2-044.plc2.org', 'n2-045.plc2.org', 'n2-046.plc2.org']
+01:== added in slice oneef_slice45 foreign  ['n2-045.plc2.org', 'n2-046.plc2.org', 'n2-047.plc2.org']
+01:== added in slice oneeg_slice46 foreign  ['n2-046.plc2.org', 'n2-047.plc2.org', 'n2-048.plc2.org']
+01:== added in slice oneeh_slice47 foreign  ['n2-047.plc2.org', 'n2-048.plc2.org', 'n2-049.plc2.org']
+01:== added in slice oneei_slice48 foreign  ['n2-048.plc2.org', 'n2-049.plc2.org', 'n2-050.plc2.org']
+01:== added in slice oneej_slice49 foreign  ['n2-049.plc2.org', 'n2-050.plc2.org', 'n2-051.plc2.org']
+01:== added in slice onefa_slice50 foreign  ['n2-050.plc2.org', 'n2-051.plc2.org', 'n2-052.plc2.org']
+01:== added in slice onefb_slice51 foreign  ['n2-051.plc2.org', 'n2-052.plc2.org', 'n2-053.plc2.org']
+01:== added in slice onefc_slice52 foreign  ['n2-052.plc2.org', 'n2-053.plc2.org', 'n2-054.plc2.org']
+01:== added in slice onefd_slice53 foreign  ['n2-053.plc2.org', 'n2-054.plc2.org', 'n2-055.plc2.org']
+01:== added in slice onefe_slice54 foreign  ['n2-054.plc2.org', 'n2-055.plc2.org', 'n2-056.plc2.org']
+01:== added in slice oneff_slice55 foreign  ['n2-055.plc2.org', 'n2-056.plc2.org', 'n2-057.plc2.org']
+01:== added in slice onefg_slice56 foreign  ['n2-056.plc2.org', 'n2-057.plc2.org', 'n2-058.plc2.org']
+01:== added in slice onefh_slice57 foreign  ['n2-057.plc2.org', 'n2-058.plc2.org', 'n2-059.plc2.org']
+01:== added in slice onefi_slice58 foreign  ['n2-058.plc2.org', 'n2-059.plc2.org', 'n2-060.plc2.org']
+01:== added in slice onefj_slice59 foreign  ['n2-059.plc2.org', 'n2-060.plc2.org', 'n2-061.plc2.org']
+01:== added in slice onega_slice60 foreign  ['n2-060.plc2.org', 'n2-061.plc2.org', 'n2-062.plc2.org']
+01:== added in slice onegb_slice61 foreign  ['n2-061.plc2.org', 'n2-062.plc2.org', 'n2-063.plc2.org']
+01:== added in slice onegc_slice62 foreign  ['n2-062.plc2.org', 'n2-063.plc2.org', 'n2-064.plc2.org']
+01:== added in slice onegd_slice63 foreign  ['n2-063.plc2.org', 'n2-064.plc2.org', 'n2-065.plc2.org']
+01:== added in slice onege_slice64 foreign  ['n2-064.plc2.org', 'n2-065.plc2.org', 'n2-066.plc2.org']
+01:== added in slice onegf_slice65 foreign  ['n2-065.plc2.org', 'n2-066.plc2.org', 'n2-067.plc2.org']
+01:== added in slice onegg_slice66 foreign  ['n2-066.plc2.org', 'n2-067.plc2.org', 'n2-068.plc2.org']
+01:== added in slice onegh_slice67 foreign  ['n2-067.plc2.org', 'n2-068.plc2.org', 'n2-069.plc2.org']
+01:== added in slice onegi_slice68 foreign  ['n2-068.plc2.org', 'n2-069.plc2.org', 'n2-070.plc2.org']
+01:== added in slice onegj_slice69 foreign  ['n2-069.plc2.org', 'n2-070.plc2.org', 'n2-071.plc2.org']
+01:== added in slice oneha_slice70 foreign  ['n2-070.plc2.org', 'n2-071.plc2.org', 'n2-072.plc2.org']
+01:== added in slice onehb_slice71 foreign  ['n2-071.plc2.org', 'n2-072.plc2.org', 'n2-073.plc2.org']
+01:== added in slice onehc_slice72 foreign  ['n2-072.plc2.org', 'n2-073.plc2.org', 'n2-074.plc2.org']
+01:== added in slice onehd_slice73 foreign  ['n2-073.plc2.org', 'n2-074.plc2.org', 'n2-075.plc2.org']
+01:== added in slice onehe_slice74 foreign  ['n2-074.plc2.org', 'n2-075.plc2.org', 'n2-076.plc2.org']
+01:== added in slice onehf_slice75 foreign  ['n2-075.plc2.org', 'n2-076.plc2.org', 'n2-077.plc2.org']
+01:== added in slice onehg_slice76 foreign  ['n2-076.plc2.org', 'n2-077.plc2.org', 'n2-078.plc2.org']
+01:== added in slice onehh_slice77 foreign  ['n2-077.plc2.org', 'n2-078.plc2.org', 'n2-079.plc2.org']
+01:== added in slice onehi_slice78 foreign  ['n2-078.plc2.org', 'n2-079.plc2.org', 'n2-080.plc2.org']
+01:== added in slice onehj_slice79 foreign  ['n2-079.plc2.org', 'n2-080.plc2.org', 'n2-081.plc2.org']
+01:== added in slice oneia_slice80 foreign  ['n2-080.plc2.org', 'n2-081.plc2.org', 'n2-082.plc2.org']
+01:== added in slice oneib_slice81 foreign  ['n2-081.plc2.org', 'n2-082.plc2.org', 'n2-083.plc2.org']
+01:== added in slice oneic_slice82 foreign  ['n2-082.plc2.org', 'n2-083.plc2.org', 'n2-084.plc2.org']
+01:== added in slice oneid_slice83 foreign  ['n2-083.plc2.org', 'n2-084.plc2.org', 'n2-085.plc2.org']
+01:== added in slice oneie_slice84 foreign  ['n2-084.plc2.org', 'n2-085.plc2.org', 'n2-086.plc2.org']
+01:== added in slice oneif_slice85 foreign  ['n2-085.plc2.org', 'n2-086.plc2.org', 'n2-087.plc2.org']
+01:== added in slice oneig_slice86 foreign  ['n2-086.plc2.org', 'n2-087.plc2.org', 'n2-088.plc2.org']
+01:== added in slice oneih_slice87 foreign  ['n2-087.plc2.org', 'n2-088.plc2.org', 'n2-089.plc2.org']
+01:== added in slice oneii_slice88 foreign  ['n2-088.plc2.org', 'n2-089.plc2.org', 'n2-090.plc2.org']
+01:== added in slice oneij_slice89 foreign  ['n2-089.plc2.org', 'n2-090.plc2.org', 'n2-091.plc2.org']
+01:== added in slice oneja_slice90 foreign  ['n2-090.plc2.org', 'n2-091.plc2.org', 'n2-092.plc2.org']
+01:== added in slice onejb_slice91 foreign  ['n2-091.plc2.org', 'n2-092.plc2.org', 'n2-093.plc2.org']
+01:== added in slice onejc_slice92 foreign  ['n2-092.plc2.org', 'n2-093.plc2.org', 'n2-094.plc2.org']
+01:== added in slice onejd_slice93 foreign  ['n2-093.plc2.org', 'n2-094.plc2.org', 'n2-095.plc2.org']
+01:== added in slice oneje_slice94 foreign  ['n2-094.plc2.org', 'n2-095.plc2.org', 'n2-096.plc2.org']
+01:== added in slice onejf_slice95 foreign  ['n2-095.plc2.org', 'n2-096.plc2.org', 'n2-097.plc2.org']
+01:== added in slice onejg_slice96 foreign  ['n2-096.plc2.org', 'n2-097.plc2.org', 'n2-098.plc2.org']
+01:== added in slice onejh_slice97 foreign  ['n2-097.plc2.org', 'n2-098.plc2.org', 'n2-099.plc2.org']
+01:== added in slice oneji_slice98 foreign  ['n2-098.plc2.org', 'n2-099.plc2.org', 'n2-100.plc2.org']
+01:== added in slice onejj_slice99 foreign  ['n2-099.plc2.org', 'n2-100.plc2.org', 'n2-101.plc2.org']
+01:== added in slice onebaa_slice100 foreign  ['n2-100.plc2.org', 'n2-101.plc2.org', 'n2-102.plc2.org']
+01:== added in slice onebab_slice101 foreign  ['n2-101.plc2.org', 'n2-102.plc2.org', 'n2-103.plc2.org']
+01:== added in slice onebac_slice102 foreign  ['n2-102.plc2.org', 'n2-103.plc2.org', 'n2-104.plc2.org']
+01:== added in slice onebad_slice103 foreign  ['n2-103.plc2.org', 'n2-104.plc2.org', 'n2-105.plc2.org']
+01:== added in slice onebae_slice104 foreign  ['n2-104.plc2.org', 'n2-105.plc2.org', 'n2-106.plc2.org']
+01:== added in slice onebaf_slice105 foreign  ['n2-105.plc2.org', 'n2-106.plc2.org', 'n2-107.plc2.org']
+01:== added in slice onebag_slice106 foreign  ['n2-106.plc2.org', 'n2-107.plc2.org', 'n2-108.plc2.org']
+01:== added in slice onebah_slice107 foreign  ['n2-107.plc2.org', 'n2-108.plc2.org', 'n2-109.plc2.org']
+01:== added in slice onebai_slice108 foreign  ['n2-108.plc2.org', 'n2-109.plc2.org', 'n2-110.plc2.org']
+01:== added in slice onebaj_slice109 foreign  ['n2-109.plc2.org', 'n2-110.plc2.org', 'n2-111.plc2.org']
+01:== added in slice onebba_slice110 foreign  ['n2-110.plc2.org', 'n2-111.plc2.org', 'n2-112.plc2.org']
+01:== added in slice onebbb_slice111 foreign  ['n2-111.plc2.org', 'n2-112.plc2.org', 'n2-113.plc2.org']
+01:== added in slice onebbc_slice112 foreign  ['n2-112.plc2.org', 'n2-113.plc2.org', 'n2-114.plc2.org']
+01:== added in slice onebbd_slice113 foreign  ['n2-113.plc2.org', 'n2-114.plc2.org', 'n2-115.plc2.org']
+01:== added in slice onebbe_slice114 foreign  ['n2-114.plc2.org', 'n2-115.plc2.org', 'n2-116.plc2.org']
+01:== added in slice onebbf_slice115 foreign  ['n2-115.plc2.org', 'n2-116.plc2.org', 'n2-117.plc2.org']
+01:== added in slice onebbg_slice116 foreign  ['n2-116.plc2.org', 'n2-117.plc2.org', 'n2-118.plc2.org']
+01:== added in slice onebbh_slice117 foreign  ['n2-117.plc2.org', 'n2-118.plc2.org', 'n2-119.plc2.org']
+01:== added in slice onebbi_slice118 foreign  ['n2-118.plc2.org', 'n2-119.plc2.org', 'n2-120.plc2.org']
+01:== added in slice onebbj_slice119 foreign  ['n2-119.plc2.org', 'n2-120.plc2.org', 'n2-121.plc2.org']
+01:== added in slice onebca_slice120 foreign  ['n2-120.plc2.org', 'n2-121.plc2.org', 'n2-122.plc2.org']
+01:== added in slice onebcb_slice121 foreign  ['n2-121.plc2.org', 'n2-122.plc2.org', 'n2-123.plc2.org']
+01:== added in slice onebcc_slice122 foreign  ['n2-122.plc2.org', 'n2-123.plc2.org', 'n2-124.plc2.org']
+01:== added in slice onebcd_slice123 foreign  ['n2-123.plc2.org', 'n2-124.plc2.org', 'n2-125.plc2.org']
+01:== added in slice onebce_slice124 foreign  ['n2-124.plc2.org', 'n2-125.plc2.org', 'n2-126.plc2.org']
+01:== added in slice onebcf_slice125 foreign  ['n2-125.plc2.org', 'n2-126.plc2.org', 'n2-127.plc2.org']
+01:== added in slice onebcg_slice126 foreign  ['n2-126.plc2.org', 'n2-127.plc2.org', 'n2-128.plc2.org']
+01:== added in slice onebch_slice127 foreign  ['n2-127.plc2.org', 'n2-128.plc2.org', 'n2-129.plc2.org']
+01:== added in slice onebci_slice128 foreign  ['n2-128.plc2.org', 'n2-129.plc2.org', 'n2-130.plc2.org']
+01:== added in slice onebcj_slice129 foreign  ['n2-129.plc2.org', 'n2-130.plc2.org', 'n2-131.plc2.org']
+01:== added in slice onebda_slice130 foreign  ['n2-130.plc2.org', 'n2-131.plc2.org', 'n2-132.plc2.org']
+01:== added in slice onebdb_slice131 foreign  ['n2-131.plc2.org', 'n2-132.plc2.org', 'n2-133.plc2.org']
+01:== added in slice onebdc_slice132 foreign  ['n2-132.plc2.org', 'n2-133.plc2.org', 'n2-134.plc2.org']
+01:== added in slice onebdd_slice133 foreign  ['n2-133.plc2.org', 'n2-134.plc2.org', 'n2-135.plc2.org']
+01:== added in slice onebde_slice134 foreign  ['n2-134.plc2.org', 'n2-135.plc2.org', 'n2-136.plc2.org']
+01:== added in slice onebdf_slice135 foreign  ['n2-135.plc2.org', 'n2-136.plc2.org', 'n2-137.plc2.org']
+01:== added in slice onebdg_slice136 foreign  ['n2-136.plc2.org', 'n2-137.plc2.org', 'n2-138.plc2.org']
+01:== added in slice onebdh_slice137 foreign  ['n2-137.plc2.org', 'n2-138.plc2.org', 'n2-139.plc2.org']
+01:== added in slice onebdi_slice138 foreign  ['n2-138.plc2.org', 'n2-139.plc2.org', 'n2-140.plc2.org']
+01:== added in slice onebdj_slice139 foreign  ['n2-139.plc2.org', 'n2-140.plc2.org', 'n2-141.plc2.org']
+01:== added in slice onebea_slice140 foreign  ['n2-140.plc2.org', 'n2-141.plc2.org', 'n2-142.plc2.org']
+01:== added in slice onebeb_slice141 foreign  ['n2-141.plc2.org', 'n2-142.plc2.org', 'n2-143.plc2.org']
+01:== added in slice onebec_slice142 foreign  ['n2-142.plc2.org', 'n2-143.plc2.org', 'n2-144.plc2.org']
+01:== added in slice onebed_slice143 foreign  ['n2-143.plc2.org', 'n2-144.plc2.org', 'n2-145.plc2.org']
+01:== added in slice onebee_slice144 foreign  ['n2-144.plc2.org', 'n2-145.plc2.org', 'n2-146.plc2.org']
+01:== added in slice onebef_slice145 foreign  ['n2-145.plc2.org', 'n2-146.plc2.org', 'n2-147.plc2.org']
+01:== added in slice onebeg_slice146 foreign  ['n2-146.plc2.org', 'n2-147.plc2.org', 'n2-148.plc2.org']
+01:== added in slice onebeh_slice147 foreign  ['n2-147.plc2.org', 'n2-148.plc2.org', 'n2-149.plc2.org']
+01:== added in slice onebei_slice148 foreign  ['n2-148.plc2.org', 'n2-149.plc2.org', 'n2-150.plc2.org']
+01:== added in slice onebej_slice149 foreign  ['n2-149.plc2.org', 'n2-150.plc2.org', 'n2-151.plc2.org']
+01:== added in slice onebfa_slice150 foreign  ['n2-150.plc2.org', 'n2-151.plc2.org', 'n2-152.plc2.org']
+01:== added in slice onebfb_slice151 foreign  ['n2-151.plc2.org', 'n2-152.plc2.org', 'n2-153.plc2.org']
+01:== added in slice onebfc_slice152 foreign  ['n2-152.plc2.org', 'n2-153.plc2.org', 'n2-154.plc2.org']
+01:== added in slice onebfd_slice153 foreign  ['n2-153.plc2.org', 'n2-154.plc2.org', 'n2-155.plc2.org']
+01:== added in slice onebfe_slice154 foreign  ['n2-154.plc2.org', 'n2-155.plc2.org', 'n2-156.plc2.org']
+01:== added in slice onebff_slice155 foreign  ['n2-155.plc2.org', 'n2-156.plc2.org', 'n2-157.plc2.org']
+01:== added in slice onebfg_slice156 foreign  ['n2-156.plc2.org', 'n2-157.plc2.org', 'n2-158.plc2.org']
+01:== added in slice onebfh_slice157 foreign  ['n2-157.plc2.org', 'n2-158.plc2.org', 'n2-159.plc2.org']
+01:== added in slice onebfi_slice158 foreign  ['n2-158.plc2.org', 'n2-159.plc2.org', 'n2-160.plc2.org']
+01:== added in slice onebfj_slice159 foreign  ['n2-159.plc2.org', 'n2-160.plc2.org', 'n2-161.plc2.org']
+01:== added in slice onebga_slice160 foreign  ['n2-160.plc2.org', 'n2-161.plc2.org', 'n2-162.plc2.org']
+01:== added in slice onebgb_slice161 foreign  ['n2-161.plc2.org', 'n2-162.plc2.org', 'n2-163.plc2.org']
+01:== added in slice onebgc_slice162 foreign  ['n2-162.plc2.org', 'n2-163.plc2.org', 'n2-164.plc2.org']
+01:== added in slice onebgd_slice163 foreign  ['n2-163.plc2.org', 'n2-164.plc2.org', 'n2-165.plc2.org']
+01:== added in slice onebge_slice164 foreign  ['n2-164.plc2.org', 'n2-165.plc2.org', 'n2-166.plc2.org']
+01:== added in slice onebgf_slice165 foreign  ['n2-165.plc2.org', 'n2-166.plc2.org', 'n2-167.plc2.org']
+01:== added in slice onebgg_slice166 foreign  ['n2-166.plc2.org', 'n2-167.plc2.org', 'n2-168.plc2.org']
+01:== added in slice onebgh_slice167 foreign  ['n2-167.plc2.org', 'n2-168.plc2.org', 'n2-169.plc2.org']
+01:== added in slice onebgi_slice168 foreign  ['n2-168.plc2.org', 'n2-169.plc2.org', 'n2-170.plc2.org']
+01:== added in slice onebgj_slice169 foreign  ['n2-169.plc2.org', 'n2-170.plc2.org', 'n2-171.plc2.org']
+01:== added in slice onebha_slice170 foreign  ['n2-170.plc2.org', 'n2-171.plc2.org', 'n2-172.plc2.org']
+01:== added in slice onebhb_slice171 foreign  ['n2-171.plc2.org', 'n2-172.plc2.org', 'n2-173.plc2.org']
+01:== added in slice onebhc_slice172 foreign  ['n2-172.plc2.org', 'n2-173.plc2.org', 'n2-174.plc2.org']
+01:== added in slice onebhd_slice173 foreign  ['n2-173.plc2.org', 'n2-174.plc2.org', 'n2-175.plc2.org']
+01:== added in slice onebhe_slice174 foreign  ['n2-174.plc2.org', 'n2-175.plc2.org', 'n2-176.plc2.org']
+01:== added in slice onebhf_slice175 foreign  ['n2-175.plc2.org', 'n2-176.plc2.org', 'n2-177.plc2.org']
+01:== added in slice onebhg_slice176 foreign  ['n2-176.plc2.org', 'n2-177.plc2.org', 'n2-178.plc2.org']
+01:== added in slice onebhh_slice177 foreign  ['n2-177.plc2.org', 'n2-178.plc2.org', 'n2-179.plc2.org']
+01:== added in slice onebhi_slice178 foreign  ['n2-178.plc2.org', 'n2-179.plc2.org', 'n2-180.plc2.org']
+01:== added in slice onebhj_slice179 foreign  ['n2-179.plc2.org', 'n2-180.plc2.org', 'n2-181.plc2.org']
+01:== added in slice onebia_slice180 foreign  ['n2-180.plc2.org', 'n2-181.plc2.org', 'n2-182.plc2.org']
+01:== added in slice onebib_slice181 foreign  ['n2-181.plc2.org', 'n2-182.plc2.org', 'n2-183.plc2.org']
+01:== added in slice onebic_slice182 foreign  ['n2-182.plc2.org', 'n2-183.plc2.org', 'n2-184.plc2.org']
+01:== added in slice onebid_slice183 foreign  ['n2-183.plc2.org', 'n2-184.plc2.org', 'n2-185.plc2.org']
+01:== added in slice onebie_slice184 foreign  ['n2-184.plc2.org', 'n2-185.plc2.org', 'n2-186.plc2.org']
+01:== added in slice onebif_slice185 foreign  ['n2-185.plc2.org', 'n2-186.plc2.org', 'n2-187.plc2.org']
+01:== added in slice onebig_slice186 foreign  ['n2-186.plc2.org', 'n2-187.plc2.org', 'n2-188.plc2.org']
+01:== added in slice onebih_slice187 foreign  ['n2-187.plc2.org', 'n2-188.plc2.org', 'n2-189.plc2.org']
+01:== added in slice onebii_slice188 foreign  ['n2-188.plc2.org', 'n2-189.plc2.org', 'n2-190.plc2.org']
+01:== added in slice onebij_slice189 foreign  ['n2-189.plc2.org', 'n2-190.plc2.org', 'n2-191.plc2.org']
+01:== added in slice onebja_slice190 foreign  ['n2-190.plc2.org', 'n2-191.plc2.org', 'n2-192.plc2.org']
+01:== added in slice onebjb_slice191 foreign  ['n2-191.plc2.org', 'n2-192.plc2.org', 'n2-193.plc2.org']
+01:== added in slice onebjc_slice192 foreign  ['n2-192.plc2.org', 'n2-193.plc2.org', 'n2-194.plc2.org']
+01:== added in slice onebjd_slice193 foreign  ['n2-193.plc2.org', 'n2-194.plc2.org', 'n2-195.plc2.org']
+01:== added in slice onebje_slice194 foreign  ['n2-194.plc2.org', 'n2-195.plc2.org', 'n2-196.plc2.org']
+01:== added in slice onebjf_slice195 foreign  ['n2-195.plc2.org', 'n2-196.plc2.org', 'n2-197.plc2.org']
+01:== added in slice onebjg_slice196 foreign  ['n2-196.plc2.org', 'n2-197.plc2.org', 'n2-198.plc2.org']
+01:== added in slice onebjh_slice197 foreign  ['n2-197.plc2.org', 'n2-198.plc2.org', 'n2-199.plc2.org']
+01:== added in slice onebji_slice198 foreign  ['n2-198.plc2.org', 'n2-199.plc2.org', 'n2-200.plc2.org']
+01:== added in slice onebjj_slice199 foreign  ['n2-199.plc2.org', 'n2-200.plc2.org', 'n2-201.plc2.org']
+01:== added in slice onecaa_slice200 foreign  ['n2-200.plc2.org', 'n2-201.plc2.org', 'n2-202.plc2.org']
+01:== added in slice onecab_slice201 foreign  ['n2-201.plc2.org', 'n2-202.plc2.org', 'n2-203.plc2.org']
+01:== added in slice onecac_slice202 foreign  ['n2-202.plc2.org', 'n2-203.plc2.org', 'n2-204.plc2.org']
+01:== added in slice onecad_slice203 foreign  ['n2-203.plc2.org', 'n2-204.plc2.org', 'n2-205.plc2.org']
+01:== added in slice onecae_slice204 foreign  ['n2-204.plc2.org', 'n2-205.plc2.org', 'n2-206.plc2.org']
+01:== added in slice onecaf_slice205 foreign  ['n2-205.plc2.org', 'n2-206.plc2.org', 'n2-207.plc2.org']
+01:== added in slice onecag_slice206 foreign  ['n2-206.plc2.org', 'n2-207.plc2.org', 'n2-208.plc2.org']
+01:== added in slice onecah_slice207 foreign  ['n2-207.plc2.org', 'n2-208.plc2.org', 'n2-209.plc2.org']
+01:== added in slice onecai_slice208 foreign  ['n2-208.plc2.org', 'n2-209.plc2.org', 'n2-210.plc2.org']
+01:== added in slice onecaj_slice209 foreign  ['n2-209.plc2.org', 'n2-210.plc2.org', 'n2-211.plc2.org']
+01:== added in slice onecba_slice210 foreign  ['n2-210.plc2.org', 'n2-211.plc2.org', 'n2-212.plc2.org']
+01:== added in slice onecbb_slice211 foreign  ['n2-211.plc2.org', 'n2-212.plc2.org', 'n2-213.plc2.org']
+01:== added in slice onecbc_slice212 foreign  ['n2-212.plc2.org', 'n2-213.plc2.org', 'n2-214.plc2.org']
+01:== added in slice onecbd_slice213 foreign  ['n2-213.plc2.org', 'n2-214.plc2.org', 'n2-215.plc2.org']
+01:== added in slice onecbe_slice214 foreign  ['n2-214.plc2.org', 'n2-215.plc2.org', 'n2-216.plc2.org']
+01:== added in slice onecbf_slice215 foreign  ['n2-215.plc2.org', 'n2-216.plc2.org', 'n2-217.plc2.org']
+01:== added in slice onecbg_slice216 foreign  ['n2-216.plc2.org', 'n2-217.plc2.org', 'n2-218.plc2.org']
+01:== added in slice onecbh_slice217 foreign  ['n2-217.plc2.org', 'n2-218.plc2.org', 'n2-219.plc2.org']
+01:== added in slice onecbi_slice218 foreign  ['n2-218.plc2.org', 'n2-219.plc2.org', 'n2-220.plc2.org']
+01:== added in slice onecbj_slice219 foreign  ['n2-219.plc2.org', 'n2-220.plc2.org', 'n2-221.plc2.org']
+01:== added in slice onecca_slice220 foreign  ['n2-220.plc2.org', 'n2-221.plc2.org', 'n2-222.plc2.org']
+01:== added in slice oneccb_slice221 foreign  ['n2-221.plc2.org', 'n2-222.plc2.org', 'n2-223.plc2.org']
+01:== added in slice oneccc_slice222 foreign  ['n2-222.plc2.org', 'n2-223.plc2.org', 'n2-224.plc2.org']
+01:== added in slice oneccd_slice223 foreign  ['n2-223.plc2.org', 'n2-224.plc2.org', 'n2-225.plc2.org']
+01:== added in slice onecce_slice224 foreign  ['n2-224.plc2.org', 'n2-225.plc2.org', 'n2-226.plc2.org']
+01:== added in slice oneccf_slice225 foreign  ['n2-225.plc2.org', 'n2-226.plc2.org', 'n2-227.plc2.org']
+01:== added in slice oneccg_slice226 foreign  ['n2-226.plc2.org', 'n2-227.plc2.org', 'n2-228.plc2.org']
+01:== added in slice onecch_slice227 foreign  ['n2-227.plc2.org', 'n2-228.plc2.org', 'n2-229.plc2.org']
+01:== added in slice onecci_slice228 foreign  ['n2-228.plc2.org', 'n2-229.plc2.org', 'n2-230.plc2.org']
+01:== added in slice oneccj_slice229 foreign  ['n2-229.plc2.org', 'n2-230.plc2.org', 'n2-231.plc2.org']
+01:== added in slice onecda_slice230 foreign  ['n2-230.plc2.org', 'n2-231.plc2.org', 'n2-232.plc2.org']
+01:== added in slice onecdb_slice231 foreign  ['n2-231.plc2.org', 'n2-232.plc2.org', 'n2-233.plc2.org']
+01:== added in slice onecdc_slice232 foreign  ['n2-232.plc2.org', 'n2-233.plc2.org', 'n2-234.plc2.org']
+01:== added in slice onecdd_slice233 foreign  ['n2-233.plc2.org', 'n2-234.plc2.org', 'n2-235.plc2.org']
+01:== added in slice onecde_slice234 foreign  ['n2-234.plc2.org', 'n2-235.plc2.org', 'n2-236.plc2.org']
+01:== added in slice onecdf_slice235 foreign  ['n2-235.plc2.org', 'n2-236.plc2.org', 'n2-237.plc2.org']
+01:== added in slice onecdg_slice236 foreign  ['n2-236.plc2.org', 'n2-237.plc2.org', 'n2-238.plc2.org']
+01:== added in slice onecdh_slice237 foreign  ['n2-237.plc2.org', 'n2-238.plc2.org', 'n2-239.plc2.org']
+01:== added in slice onecdi_slice238 foreign  ['n2-238.plc2.org', 'n2-239.plc2.org', 'n2-240.plc2.org']
+01:== added in slice onecdj_slice239 foreign  ['n2-239.plc2.org', 'n2-240.plc2.org', 'n2-241.plc2.org']
+01:== added in slice onecea_slice240 foreign  ['n2-240.plc2.org', 'n2-241.plc2.org', 'n2-242.plc2.org']
+01:== added in slice oneceb_slice241 foreign  ['n2-241.plc2.org', 'n2-242.plc2.org', 'n2-243.plc2.org']
+01:== added in slice onecec_slice242 foreign  ['n2-242.plc2.org', 'n2-243.plc2.org', 'n2-244.plc2.org']
+01:== added in slice oneced_slice243 foreign  ['n2-243.plc2.org', 'n2-244.plc2.org', 'n2-245.plc2.org']
+01:== added in slice onecee_slice244 foreign  ['n2-244.plc2.org', 'n2-245.plc2.org', 'n2-246.plc2.org']
+01:== added in slice onecef_slice245 foreign  ['n2-245.plc2.org', 'n2-246.plc2.org', 'n2-247.plc2.org']
+01:== added in slice oneceg_slice246 foreign  ['n2-246.plc2.org', 'n2-247.plc2.org', 'n2-248.plc2.org']
+01:== added in slice oneceh_slice247 foreign  ['n2-247.plc2.org', 'n2-248.plc2.org', 'n2-249.plc2.org']
+01:== added in slice onecei_slice248 foreign  ['n2-248.plc2.org', 'n2-249.plc2.org', 'n2-250.plc2.org']
+01:== added in slice onecej_slice249 foreign  ['n2-249.plc2.org', 'n2-250.plc2.org', 'n2-251.plc2.org']
+01:== added in slice onecfa_slice250 foreign  ['n2-250.plc2.org', 'n2-251.plc2.org', 'n2-252.plc2.org']
+01:== added in slice onecfb_slice251 foreign  ['n2-251.plc2.org', 'n2-252.plc2.org', 'n2-253.plc2.org']
+01:== added in slice onecfc_slice252 foreign  ['n2-252.plc2.org', 'n2-253.plc2.org', 'n2-254.plc2.org']
+01:== added in slice onecfd_slice253 foreign  ['n2-253.plc2.org', 'n2-254.plc2.org', 'n2-255.plc2.org']
+01:== added in slice onecfe_slice254 foreign  ['n2-254.plc2.org', 'n2-255.plc2.org', 'n2-256.plc2.org']
+01:== added in slice onecff_slice255 foreign  ['n2-255.plc2.org', 'n2-256.plc2.org', 'n2-257.plc2.org']
+01:== added in slice onecfg_slice256 foreign  ['n2-256.plc2.org', 'n2-257.plc2.org', 'n2-258.plc2.org']
+01:== added in slice onecfh_slice257 foreign  ['n2-257.plc2.org', 'n2-258.plc2.org', 'n2-259.plc2.org']
+01:== added in slice onecfi_slice258 foreign  ['n2-258.plc2.org', 'n2-259.plc2.org', 'n2-260.plc2.org']
+01:== added in slice onecfj_slice259 foreign  ['n2-259.plc2.org', 'n2-260.plc2.org', 'n2-261.plc2.org']
+01:== added in slice onecga_slice260 foreign  ['n2-260.plc2.org', 'n2-261.plc2.org', 'n2-262.plc2.org']
+01:== added in slice onecgb_slice261 foreign  ['n2-261.plc2.org', 'n2-262.plc2.org', 'n2-263.plc2.org']
+01:== added in slice onecgc_slice262 foreign  ['n2-262.plc2.org', 'n2-263.plc2.org', 'n2-264.plc2.org']
+01:== added in slice onecgd_slice263 foreign  ['n2-263.plc2.org', 'n2-264.plc2.org', 'n2-265.plc2.org']
+01:== added in slice onecge_slice264 foreign  ['n2-264.plc2.org', 'n2-265.plc2.org', 'n2-266.plc2.org']
+01:== added in slice onecgf_slice265 foreign  ['n2-265.plc2.org', 'n2-266.plc2.org', 'n2-267.plc2.org']
+01:== added in slice onecgg_slice266 foreign  ['n2-266.plc2.org', 'n2-267.plc2.org', 'n2-268.plc2.org']
+01:== added in slice onecgh_slice267 foreign  ['n2-267.plc2.org', 'n2-268.plc2.org', 'n2-269.plc2.org']
+01:== added in slice onecgi_slice268 foreign  ['n2-268.plc2.org', 'n2-269.plc2.org', 'n2-270.plc2.org']
+01:== added in slice onecgj_slice269 foreign  ['n2-269.plc2.org', 'n2-270.plc2.org', 'n2-271.plc2.org']
+01:== added in slice onecha_slice270 foreign  ['n2-270.plc2.org', 'n2-271.plc2.org', 'n2-272.plc2.org']
+01:== added in slice onechb_slice271 foreign  ['n2-271.plc2.org', 'n2-272.plc2.org', 'n2-273.plc2.org']
+01:== added in slice onechc_slice272 foreign  ['n2-272.plc2.org', 'n2-273.plc2.org', 'n2-274.plc2.org']
+01:== added in slice onechd_slice273 foreign  ['n2-273.plc2.org', 'n2-274.plc2.org', 'n2-275.plc2.org']
+01:== added in slice oneche_slice274 foreign  ['n2-274.plc2.org', 'n2-275.plc2.org', 'n2-276.plc2.org']
+01:== added in slice onechf_slice275 foreign  ['n2-275.plc2.org', 'n2-276.plc2.org', 'n2-277.plc2.org']
+01:== added in slice onechg_slice276 foreign  ['n2-276.plc2.org', 'n2-277.plc2.org', 'n2-278.plc2.org']
+01:== added in slice onechh_slice277 foreign  ['n2-277.plc2.org', 'n2-278.plc2.org', 'n2-279.plc2.org']
+01:== added in slice onechi_slice278 foreign  ['n2-278.plc2.org', 'n2-279.plc2.org', 'n2-280.plc2.org']
+01:== added in slice onechj_slice279 foreign  ['n2-279.plc2.org', 'n2-280.plc2.org', 'n2-281.plc2.org']
+01:== added in slice onecia_slice280 foreign  ['n2-280.plc2.org', 'n2-281.plc2.org', 'n2-282.plc2.org']
+01:== added in slice onecib_slice281 foreign  ['n2-281.plc2.org', 'n2-282.plc2.org', 'n2-283.plc2.org']
+01:== added in slice onecic_slice282 foreign  ['n2-282.plc2.org', 'n2-283.plc2.org', 'n2-284.plc2.org']
+01:== added in slice onecid_slice283 foreign  ['n2-283.plc2.org', 'n2-284.plc2.org', 'n2-285.plc2.org']
+01:== added in slice onecie_slice284 foreign  ['n2-284.plc2.org', 'n2-285.plc2.org', 'n2-286.plc2.org']
+01:== added in slice onecif_slice285 foreign  ['n2-285.plc2.org', 'n2-286.plc2.org', 'n2-287.plc2.org']
+01:== added in slice onecig_slice286 foreign  ['n2-286.plc2.org', 'n2-287.plc2.org', 'n2-288.plc2.org']
+01:== added in slice onecih_slice287 foreign  ['n2-287.plc2.org', 'n2-288.plc2.org', 'n2-289.plc2.org']
+01:== added in slice onecii_slice288 foreign  ['n2-288.plc2.org', 'n2-289.plc2.org', 'n2-290.plc2.org']
+01:== added in slice onecij_slice289 foreign  ['n2-289.plc2.org', 'n2-290.plc2.org', 'n2-291.plc2.org']
+01:== added in slice onecja_slice290 foreign  ['n2-290.plc2.org', 'n2-291.plc2.org', 'n2-292.plc2.org']
+01:== added in slice onecjb_slice291 foreign  ['n2-291.plc2.org', 'n2-292.plc2.org', 'n2-293.plc2.org']
+01:== added in slice onecjc_slice292 foreign  ['n2-292.plc2.org', 'n2-293.plc2.org', 'n2-294.plc2.org']
+01:== added in slice onecjd_slice293 foreign  ['n2-293.plc2.org', 'n2-294.plc2.org', 'n2-295.plc2.org']
+01:== added in slice onecje_slice294 foreign  ['n2-294.plc2.org', 'n2-295.plc2.org', 'n2-296.plc2.org']
+01:== added in slice onecjf_slice295 foreign  ['n2-295.plc2.org', 'n2-296.plc2.org', 'n2-297.plc2.org']
+01:== added in slice onecjg_slice296 foreign  ['n2-296.plc2.org', 'n2-297.plc2.org', 'n2-298.plc2.org']
+01:== added in slice onecjh_slice297 foreign  ['n2-297.plc2.org', 'n2-298.plc2.org', 'n2-299.plc2.org']
+01:== added in slice onecji_slice298 foreign  ['n2-298.plc2.org', 'n2-299.plc2.org', 'n2-300.plc2.org']
+01:== added in slice onecjj_slice299 foreign  ['n2-299.plc2.org', 'n2-300.plc2.org', 'n2-301.plc2.org']
+01:== added in slice onedaa_slice300 foreign  ['n2-300.plc2.org', 'n2-301.plc2.org', 'n2-302.plc2.org']
+01:== added in slice onedab_slice301 foreign  ['n2-301.plc2.org', 'n2-302.plc2.org', 'n2-303.plc2.org']
+01:== added in slice onedac_slice302 foreign  ['n2-302.plc2.org', 'n2-303.plc2.org', 'n2-304.plc2.org']
+01:== added in slice onedad_slice303 foreign  ['n2-303.plc2.org', 'n2-304.plc2.org', 'n2-305.plc2.org']
+01:== added in slice onedae_slice304 foreign  ['n2-304.plc2.org', 'n2-305.plc2.org', 'n2-306.plc2.org']
+01:== added in slice onedaf_slice305 foreign  ['n2-305.plc2.org', 'n2-306.plc2.org', 'n2-307.plc2.org']
+01:== added in slice onedag_slice306 foreign  ['n2-306.plc2.org', 'n2-307.plc2.org', 'n2-308.plc2.org']
+01:== added in slice onedah_slice307 foreign  ['n2-307.plc2.org', 'n2-308.plc2.org', 'n2-309.plc2.org']
+01:== added in slice onedai_slice308 foreign  ['n2-308.plc2.org', 'n2-309.plc2.org', 'n2-310.plc2.org']
+01:== added in slice onedaj_slice309 foreign  ['n2-309.plc2.org', 'n2-310.plc2.org', 'n2-311.plc2.org']
+01:== added in slice onedba_slice310 foreign  ['n2-310.plc2.org', 'n2-311.plc2.org', 'n2-312.plc2.org']
+01:== added in slice onedbb_slice311 foreign  ['n2-311.plc2.org', 'n2-312.plc2.org', 'n2-313.plc2.org']
+01:== added in slice onedbc_slice312 foreign  ['n2-312.plc2.org', 'n2-313.plc2.org', 'n2-314.plc2.org']
+01:== added in slice onedbd_slice313 foreign  ['n2-313.plc2.org', 'n2-314.plc2.org', 'n2-315.plc2.org']
+01:== added in slice onedbe_slice314 foreign  ['n2-314.plc2.org', 'n2-315.plc2.org', 'n2-316.plc2.org']
+01:== added in slice onedbf_slice315 foreign  ['n2-315.plc2.org', 'n2-316.plc2.org', 'n2-317.plc2.org']
+01:== added in slice onedbg_slice316 foreign  ['n2-316.plc2.org', 'n2-317.plc2.org', 'n2-318.plc2.org']
+01:== added in slice onedbh_slice317 foreign  ['n2-317.plc2.org', 'n2-318.plc2.org', 'n2-319.plc2.org']
+01:== added in slice onedbi_slice318 foreign  ['n2-318.plc2.org', 'n2-319.plc2.org', 'n2-320.plc2.org']
+01:== added in slice onedbj_slice319 foreign  ['n2-319.plc2.org', 'n2-320.plc2.org', 'n2-321.plc2.org']
+01:== added in slice onedca_slice320 foreign  ['n2-320.plc2.org', 'n2-321.plc2.org', 'n2-322.plc2.org']
+01:== added in slice onedcb_slice321 foreign  ['n2-321.plc2.org', 'n2-322.plc2.org', 'n2-323.plc2.org']
+01:== added in slice onedcc_slice322 foreign  ['n2-322.plc2.org', 'n2-323.plc2.org', 'n2-324.plc2.org']
+01:== added in slice onedcd_slice323 foreign  ['n2-323.plc2.org', 'n2-324.plc2.org', 'n2-325.plc2.org']
+01:== added in slice onedce_slice324 foreign  ['n2-324.plc2.org', 'n2-325.plc2.org', 'n2-326.plc2.org']
+01:== added in slice onedcf_slice325 foreign  ['n2-325.plc2.org', 'n2-326.plc2.org', 'n2-327.plc2.org']
+01:== added in slice onedcg_slice326 foreign  ['n2-326.plc2.org', 'n2-327.plc2.org', 'n2-328.plc2.org']
+01:== added in slice onedch_slice327 foreign  ['n2-327.plc2.org', 'n2-328.plc2.org', 'n2-329.plc2.org']
+01:== added in slice onedci_slice328 foreign  ['n2-328.plc2.org', 'n2-329.plc2.org', 'n2-330.plc2.org']
+01:== added in slice onedcj_slice329 foreign  ['n2-329.plc2.org', 'n2-330.plc2.org', 'n2-331.plc2.org']
+01:== added in slice onedda_slice330 foreign  ['n2-330.plc2.org', 'n2-331.plc2.org', 'n2-332.plc2.org']
+01:== added in slice oneddb_slice331 foreign  ['n2-331.plc2.org', 'n2-332.plc2.org', 'n2-333.plc2.org']
+01:== added in slice oneddc_slice332 foreign  ['n2-332.plc2.org', 'n2-333.plc2.org', 'n2-334.plc2.org']
+01:== added in slice oneddd_slice333 foreign  ['n2-333.plc2.org', 'n2-334.plc2.org', 'n2-335.plc2.org']
+01:== added in slice onedde_slice334 foreign  ['n2-334.plc2.org', 'n2-335.plc2.org', 'n2-336.plc2.org']
+01:== added in slice oneddf_slice335 foreign  ['n2-335.plc2.org', 'n2-336.plc2.org', 'n2-337.plc2.org']
+01:== added in slice oneddg_slice336 foreign  ['n2-336.plc2.org', 'n2-337.plc2.org', 'n2-338.plc2.org']
+01:== added in slice oneddh_slice337 foreign  ['n2-337.plc2.org', 'n2-338.plc2.org', 'n2-339.plc2.org']
+01:== added in slice oneddi_slice338 foreign  ['n2-338.plc2.org', 'n2-339.plc2.org', 'n2-340.plc2.org']
+01:== added in slice oneddj_slice339 foreign  ['n2-339.plc2.org', 'n2-340.plc2.org', 'n2-341.plc2.org']
+01:== added in slice onedea_slice340 foreign  ['n2-340.plc2.org', 'n2-341.plc2.org', 'n2-342.plc2.org']
+01:== added in slice onedeb_slice341 foreign  ['n2-341.plc2.org', 'n2-342.plc2.org', 'n2-343.plc2.org']
+01:== added in slice onedec_slice342 foreign  ['n2-342.plc2.org', 'n2-343.plc2.org', 'n2-344.plc2.org']
+01:== added in slice oneded_slice343 foreign  ['n2-343.plc2.org', 'n2-344.plc2.org', 'n2-345.plc2.org']
+01:== added in slice onedee_slice344 foreign  ['n2-344.plc2.org', 'n2-345.plc2.org', 'n2-346.plc2.org']
+01:== added in slice onedef_slice345 foreign  ['n2-345.plc2.org', 'n2-346.plc2.org', 'n2-347.plc2.org']
+01:== added in slice onedeg_slice346 foreign  ['n2-346.plc2.org', 'n2-347.plc2.org', 'n2-348.plc2.org']
+01:== added in slice onedeh_slice347 foreign  ['n2-347.plc2.org', 'n2-348.plc2.org', 'n2-349.plc2.org']
+01:== added in slice onedei_slice348 foreign  ['n2-348.plc2.org', 'n2-349.plc2.org', 'n2-350.plc2.org']
+01:== added in slice onedej_slice349 foreign  ['n2-349.plc2.org', 'n2-350.plc2.org', 'n2-351.plc2.org']
+01:== added in slice onedfa_slice350 foreign  ['n2-350.plc2.org', 'n2-351.plc2.org', 'n2-352.plc2.org']
+01:== added in slice onedfb_slice351 foreign  ['n2-351.plc2.org', 'n2-352.plc2.org', 'n2-353.plc2.org']
+01:== added in slice onedfc_slice352 foreign  ['n2-352.plc2.org', 'n2-353.plc2.org', 'n2-354.plc2.org']
+01:== added in slice onedfd_slice353 foreign  ['n2-353.plc2.org', 'n2-354.plc2.org', 'n2-355.plc2.org']
+01:== added in slice onedfe_slice354 foreign  ['n2-354.plc2.org', 'n2-355.plc2.org', 'n2-356.plc2.org']
+01:== added in slice onedff_slice355 foreign  ['n2-355.plc2.org', 'n2-356.plc2.org', 'n2-357.plc2.org']
+01:== added in slice onedfg_slice356 foreign  ['n2-356.plc2.org', 'n2-357.plc2.org', 'n2-358.plc2.org']
+01:== added in slice onedfh_slice357 foreign  ['n2-357.plc2.org', 'n2-358.plc2.org', 'n2-359.plc2.org']
+01:== added in slice onedfi_slice358 foreign  ['n2-358.plc2.org', 'n2-359.plc2.org', 'n2-360.plc2.org']
+01:== added in slice onedfj_slice359 foreign  ['n2-359.plc2.org', 'n2-360.plc2.org', 'n2-361.plc2.org']
+01:== added in slice onedga_slice360 foreign  ['n2-360.plc2.org', 'n2-361.plc2.org', 'n2-362.plc2.org']
+01:== added in slice onedgb_slice361 foreign  ['n2-361.plc2.org', 'n2-362.plc2.org', 'n2-363.plc2.org']
+01:== added in slice onedgc_slice362 foreign  ['n2-362.plc2.org', 'n2-363.plc2.org', 'n2-364.plc2.org']
+01:== added in slice onedgd_slice363 foreign  ['n2-363.plc2.org', 'n2-364.plc2.org', 'n2-365.plc2.org']
+01:== added in slice onedge_slice364 foreign  ['n2-364.plc2.org', 'n2-365.plc2.org', 'n2-366.plc2.org']
+01:== added in slice onedgf_slice365 foreign  ['n2-365.plc2.org', 'n2-366.plc2.org', 'n2-367.plc2.org']
+01:== added in slice onedgg_slice366 foreign  ['n2-366.plc2.org', 'n2-367.plc2.org', 'n2-368.plc2.org']
+01:== added in slice onedgh_slice367 foreign  ['n2-367.plc2.org', 'n2-368.plc2.org', 'n2-369.plc2.org']
+01:== added in slice onedgi_slice368 foreign  ['n2-368.plc2.org', 'n2-369.plc2.org', 'n2-370.plc2.org']
+01:== added in slice onedgj_slice369 foreign  ['n2-369.plc2.org', 'n2-370.plc2.org', 'n2-371.plc2.org']
+01:== added in slice onedha_slice370 foreign  ['n2-370.plc2.org', 'n2-371.plc2.org', 'n2-372.plc2.org']
+01:== added in slice onedhb_slice371 foreign  ['n2-371.plc2.org', 'n2-372.plc2.org', 'n2-373.plc2.org']
+01:== added in slice onedhc_slice372 foreign  ['n2-372.plc2.org', 'n2-373.plc2.org', 'n2-374.plc2.org']
+01:== added in slice onedhd_slice373 foreign  ['n2-373.plc2.org', 'n2-374.plc2.org', 'n2-375.plc2.org']
+01:== added in slice onedhe_slice374 foreign  ['n2-374.plc2.org', 'n2-375.plc2.org', 'n2-376.plc2.org']
+01:== added in slice onedhf_slice375 foreign  ['n2-375.plc2.org', 'n2-376.plc2.org', 'n2-377.plc2.org']
+01:== added in slice onedhg_slice376 foreign  ['n2-376.plc2.org', 'n2-377.plc2.org', 'n2-378.plc2.org']
+01:== added in slice onedhh_slice377 foreign  ['n2-377.plc2.org', 'n2-378.plc2.org', 'n2-379.plc2.org']
+01:== added in slice onedhi_slice378 foreign  ['n2-378.plc2.org', 'n2-379.plc2.org', 'n2-380.plc2.org']
+01:== added in slice onedhj_slice379 foreign  ['n2-379.plc2.org', 'n2-380.plc2.org', 'n2-381.plc2.org']
+01:== added in slice onedia_slice380 foreign  ['n2-380.plc2.org', 'n2-381.plc2.org', 'n2-382.plc2.org']
+01:== added in slice onedib_slice381 foreign  ['n2-381.plc2.org', 'n2-382.plc2.org', 'n2-383.plc2.org']
+01:== added in slice onedic_slice382 foreign  ['n2-382.plc2.org', 'n2-383.plc2.org', 'n2-384.plc2.org']
+01:== added in slice onedid_slice383 foreign  ['n2-383.plc2.org', 'n2-384.plc2.org', 'n2-385.plc2.org']
+01:== added in slice onedie_slice384 foreign  ['n2-384.plc2.org', 'n2-385.plc2.org', 'n2-386.plc2.org']
+01:== added in slice onedif_slice385 foreign  ['n2-385.plc2.org', 'n2-386.plc2.org', 'n2-387.plc2.org']
+01:== added in slice onedig_slice386 foreign  ['n2-386.plc2.org', 'n2-387.plc2.org', 'n2-388.plc2.org']
+01:== added in slice onedih_slice387 foreign  ['n2-387.plc2.org', 'n2-388.plc2.org', 'n2-389.plc2.org']
+01:== added in slice onedii_slice388 foreign  ['n2-388.plc2.org', 'n2-389.plc2.org', 'n2-390.plc2.org']
+01:== added in slice onedij_slice389 foreign  ['n2-389.plc2.org', 'n2-390.plc2.org', 'n2-391.plc2.org']
+01:== added in slice onedja_slice390 foreign  ['n2-390.plc2.org', 'n2-391.plc2.org', 'n2-392.plc2.org']
+01:== added in slice onedjb_slice391 foreign  ['n2-391.plc2.org', 'n2-392.plc2.org', 'n2-393.plc2.org']
+01:== added in slice onedjc_slice392 foreign  ['n2-392.plc2.org', 'n2-393.plc2.org', 'n2-394.plc2.org']
+01:== added in slice onedjd_slice393 foreign  ['n2-393.plc2.org', 'n2-394.plc2.org', 'n2-395.plc2.org']
+01:== added in slice onedje_slice394 foreign  ['n2-394.plc2.org', 'n2-395.plc2.org', 'n2-396.plc2.org']
+01:== added in slice onedjf_slice395 foreign  ['n2-395.plc2.org', 'n2-396.plc2.org', 'n2-397.plc2.org']
+01:== added in slice onedjg_slice396 foreign  ['n2-396.plc2.org', 'n2-397.plc2.org', 'n2-398.plc2.org']
+01:== added in slice onedjh_slice397 foreign  ['n2-397.plc2.org', 'n2-398.plc2.org', 'n2-399.plc2.org']
+01:== added in slice onedji_slice398 foreign  ['n2-398.plc2.org', 'n2-399.plc2.org', 'n2-400.plc2.org']
+01:== added in slice onedjj_slice399 foreign  ['n2-399.plc2.org', 'n2-400.plc2.org', 'n2-401.plc2.org']
+01:== added in slice oneeaa_slice400 foreign  ['n2-400.plc2.org', 'n2-401.plc2.org', 'n2-402.plc2.org']
+01:== added in slice oneeab_slice401 foreign  ['n2-401.plc2.org', 'n2-402.plc2.org', 'n2-403.plc2.org']
+01:== added in slice oneeac_slice402 foreign  ['n2-402.plc2.org', 'n2-403.plc2.org', 'n2-404.plc2.org']
+01:== added in slice oneead_slice403 foreign  ['n2-403.plc2.org', 'n2-404.plc2.org', 'n2-405.plc2.org']
+01:== added in slice oneeae_slice404 foreign  ['n2-404.plc2.org', 'n2-405.plc2.org', 'n2-406.plc2.org']
+01:== added in slice oneeaf_slice405 foreign  ['n2-405.plc2.org', 'n2-406.plc2.org', 'n2-407.plc2.org']
+01:== added in slice oneeag_slice406 foreign  ['n2-406.plc2.org', 'n2-407.plc2.org', 'n2-408.plc2.org']
+01:== added in slice oneeah_slice407 foreign  ['n2-407.plc2.org', 'n2-408.plc2.org', 'n2-409.plc2.org']
+01:== added in slice oneeai_slice408 foreign  ['n2-408.plc2.org', 'n2-409.plc2.org', 'n2-410.plc2.org']
+01:== added in slice oneeaj_slice409 foreign  ['n2-409.plc2.org', 'n2-410.plc2.org', 'n2-411.plc2.org']
+01:== added in slice oneeba_slice410 foreign  ['n2-410.plc2.org', 'n2-411.plc2.org', 'n2-412.plc2.org']
+01:== added in slice oneebb_slice411 foreign  ['n2-411.plc2.org', 'n2-412.plc2.org', 'n2-413.plc2.org']
+01:== added in slice oneebc_slice412 foreign  ['n2-412.plc2.org', 'n2-413.plc2.org', 'n2-414.plc2.org']
+01:== added in slice oneebd_slice413 foreign  ['n2-413.plc2.org', 'n2-414.plc2.org', 'n2-415.plc2.org']
+01:== added in slice oneebe_slice414 foreign  ['n2-414.plc2.org', 'n2-415.plc2.org', 'n2-416.plc2.org']
+01:== added in slice oneebf_slice415 foreign  ['n2-415.plc2.org', 'n2-416.plc2.org', 'n2-417.plc2.org']
+01:== added in slice oneebg_slice416 foreign  ['n2-416.plc2.org', 'n2-417.plc2.org', 'n2-418.plc2.org']
+01:== added in slice oneebh_slice417 foreign  ['n2-417.plc2.org', 'n2-418.plc2.org', 'n2-419.plc2.org']
+01:== added in slice oneebi_slice418 foreign  ['n2-418.plc2.org', 'n2-419.plc2.org', 'n2-420.plc2.org']
+01:== added in slice oneebj_slice419 foreign  ['n2-419.plc2.org', 'n2-420.plc2.org', 'n2-421.plc2.org']
+01:== added in slice oneeca_slice420 foreign  ['n2-420.plc2.org', 'n2-421.plc2.org', 'n2-422.plc2.org']
+01:== added in slice oneecb_slice421 foreign  ['n2-421.plc2.org', 'n2-422.plc2.org', 'n2-423.plc2.org']
+01:== added in slice oneecc_slice422 foreign  ['n2-422.plc2.org', 'n2-423.plc2.org', 'n2-424.plc2.org']
+01:== added in slice oneecd_slice423 foreign  ['n2-423.plc2.org', 'n2-424.plc2.org', 'n2-425.plc2.org']
+01:== added in slice oneece_slice424 foreign  ['n2-424.plc2.org', 'n2-425.plc2.org', 'n2-426.plc2.org']
+01:== added in slice oneecf_slice425 foreign  ['n2-425.plc2.org', 'n2-426.plc2.org', 'n2-427.plc2.org']
+01:== added in slice oneecg_slice426 foreign  ['n2-426.plc2.org', 'n2-427.plc2.org', 'n2-428.plc2.org']
+01:== added in slice oneech_slice427 foreign  ['n2-427.plc2.org', 'n2-428.plc2.org', 'n2-429.plc2.org']
+01:== added in slice oneeci_slice428 foreign  ['n2-428.plc2.org', 'n2-429.plc2.org', 'n2-430.plc2.org']
+01:== added in slice oneecj_slice429 foreign  ['n2-429.plc2.org', 'n2-430.plc2.org', 'n2-431.plc2.org']
+01:== added in slice oneeda_slice430 foreign  ['n2-430.plc2.org', 'n2-431.plc2.org', 'n2-432.plc2.org']
+01:== added in slice oneedb_slice431 foreign  ['n2-431.plc2.org', 'n2-432.plc2.org', 'n2-433.plc2.org']
+01:== added in slice oneedc_slice432 foreign  ['n2-432.plc2.org', 'n2-433.plc2.org', 'n2-434.plc2.org']
+01:== added in slice oneedd_slice433 foreign  ['n2-433.plc2.org', 'n2-434.plc2.org', 'n2-435.plc2.org']
+01:== added in slice oneede_slice434 foreign  ['n2-434.plc2.org', 'n2-435.plc2.org', 'n2-436.plc2.org']
+01:== added in slice oneedf_slice435 foreign  ['n2-435.plc2.org', 'n2-436.plc2.org', 'n2-437.plc2.org']
+01:== added in slice oneedg_slice436 foreign  ['n2-436.plc2.org', 'n2-437.plc2.org', 'n2-438.plc2.org']
+01:== added in slice oneedh_slice437 foreign  ['n2-437.plc2.org', 'n2-438.plc2.org', 'n2-439.plc2.org']
+01:== added in slice oneedi_slice438 foreign  ['n2-438.plc2.org', 'n2-439.plc2.org', 'n2-440.plc2.org']
+01:== added in slice oneedj_slice439 foreign  ['n2-439.plc2.org', 'n2-440.plc2.org', 'n2-441.plc2.org']
+01:== added in slice oneeea_slice440 foreign  ['n2-440.plc2.org', 'n2-441.plc2.org', 'n2-442.plc2.org']
+01:== added in slice oneeeb_slice441 foreign  ['n2-441.plc2.org', 'n2-442.plc2.org', 'n2-443.plc2.org']
+01:== added in slice oneeec_slice442 foreign  ['n2-442.plc2.org', 'n2-443.plc2.org', 'n2-444.plc2.org']
+01:== added in slice oneeed_slice443 foreign  ['n2-443.plc2.org', 'n2-444.plc2.org', 'n2-445.plc2.org']
+01:== added in slice oneeee_slice444 foreign  ['n2-444.plc2.org', 'n2-445.plc2.org', 'n2-446.plc2.org']
+01:== added in slice oneeef_slice445 foreign  ['n2-445.plc2.org', 'n2-446.plc2.org', 'n2-447.plc2.org']
+01:== added in slice oneeeg_slice446 foreign  ['n2-446.plc2.org', 'n2-447.plc2.org', 'n2-448.plc2.org']
+01:== added in slice oneeeh_slice447 foreign  ['n2-447.plc2.org', 'n2-448.plc2.org', 'n2-449.plc2.org']
+01:== added in slice oneeei_slice448 foreign  ['n2-448.plc2.org', 'n2-449.plc2.org', 'n2-450.plc2.org']
+01:== added in slice oneeej_slice449 foreign  ['n2-449.plc2.org', 'n2-450.plc2.org', 'n2-451.plc2.org']
+01:== added in slice oneefa_slice450 foreign  ['n2-450.plc2.org', 'n2-451.plc2.org', 'n2-452.plc2.org']
+01:== added in slice oneefb_slice451 foreign  ['n2-451.plc2.org', 'n2-452.plc2.org', 'n2-453.plc2.org']
+01:== added in slice oneefc_slice452 foreign  ['n2-452.plc2.org', 'n2-453.plc2.org', 'n2-454.plc2.org']
+01:== added in slice oneefd_slice453 foreign  ['n2-453.plc2.org', 'n2-454.plc2.org', 'n2-455.plc2.org']
+01:== added in slice oneefe_slice454 foreign  ['n2-454.plc2.org', 'n2-455.plc2.org', 'n2-456.plc2.org']
+01:== added in slice oneeff_slice455 foreign  ['n2-455.plc2.org', 'n2-456.plc2.org', 'n2-457.plc2.org']
+01:== added in slice oneefg_slice456 foreign  ['n2-456.plc2.org', 'n2-457.plc2.org', 'n2-458.plc2.org']
+01:== added in slice oneefh_slice457 foreign  ['n2-457.plc2.org', 'n2-458.plc2.org', 'n2-459.plc2.org']
+01:== added in slice oneefi_slice458 foreign  ['n2-458.plc2.org', 'n2-459.plc2.org', 'n2-460.plc2.org']
+01:== added in slice oneefj_slice459 foreign  ['n2-459.plc2.org', 'n2-460.plc2.org', 'n2-461.plc2.org']
+01:== added in slice oneega_slice460 foreign  ['n2-460.plc2.org', 'n2-461.plc2.org', 'n2-462.plc2.org']
+01:== added in slice oneegb_slice461 foreign  ['n2-461.plc2.org', 'n2-462.plc2.org', 'n2-463.plc2.org']
+01:== added in slice oneegc_slice462 foreign  ['n2-462.plc2.org', 'n2-463.plc2.org', 'n2-464.plc2.org']
+01:== added in slice oneegd_slice463 foreign  ['n2-463.plc2.org', 'n2-464.plc2.org', 'n2-465.plc2.org']
+01:== added in slice oneege_slice464 foreign  ['n2-464.plc2.org', 'n2-465.plc2.org', 'n2-466.plc2.org']
+01:== added in slice oneegf_slice465 foreign  ['n2-465.plc2.org', 'n2-466.plc2.org', 'n2-467.plc2.org']
+01:== added in slice oneegg_slice466 foreign  ['n2-466.plc2.org', 'n2-467.plc2.org', 'n2-468.plc2.org']
+01:== added in slice oneegh_slice467 foreign  ['n2-467.plc2.org', 'n2-468.plc2.org', 'n2-469.plc2.org']
+01:== added in slice oneegi_slice468 foreign  ['n2-468.plc2.org', 'n2-469.plc2.org', 'n2-470.plc2.org']
+01:== added in slice oneegj_slice469 foreign  ['n2-469.plc2.org', 'n2-470.plc2.org', 'n2-471.plc2.org']
+01:== added in slice oneeha_slice470 foreign  ['n2-470.plc2.org', 'n2-471.plc2.org', 'n2-472.plc2.org']
+01:== added in slice oneehb_slice471 foreign  ['n2-471.plc2.org', 'n2-472.plc2.org', 'n2-473.plc2.org']
+01:== added in slice oneehc_slice472 foreign  ['n2-472.plc2.org', 'n2-473.plc2.org', 'n2-474.plc2.org']
+01:== added in slice oneehd_slice473 foreign  ['n2-473.plc2.org', 'n2-474.plc2.org', 'n2-475.plc2.org']
+01:== added in slice oneehe_slice474 foreign  ['n2-474.plc2.org', 'n2-475.plc2.org', 'n2-476.plc2.org']
+01:== added in slice oneehf_slice475 foreign  ['n2-475.plc2.org', 'n2-476.plc2.org', 'n2-477.plc2.org']
+01:== added in slice oneehg_slice476 foreign  ['n2-476.plc2.org', 'n2-477.plc2.org', 'n2-478.plc2.org']
+01:== added in slice oneehh_slice477 foreign  ['n2-477.plc2.org', 'n2-478.plc2.org', 'n2-479.plc2.org']
+01:== added in slice oneehi_slice478 foreign  ['n2-478.plc2.org', 'n2-479.plc2.org', 'n2-480.plc2.org']
+01:== added in slice oneehj_slice479 foreign  ['n2-479.plc2.org', 'n2-480.plc2.org', 'n2-481.plc2.org']
+01:== added in slice oneeia_slice480 foreign  ['n2-480.plc2.org', 'n2-481.plc2.org', 'n2-482.plc2.org']
+01:== added in slice oneeib_slice481 foreign  ['n2-481.plc2.org', 'n2-482.plc2.org', 'n2-483.plc2.org']
+01:== added in slice oneeic_slice482 foreign  ['n2-482.plc2.org', 'n2-483.plc2.org', 'n2-484.plc2.org']
+01:== added in slice oneeid_slice483 foreign  ['n2-483.plc2.org', 'n2-484.plc2.org', 'n2-485.plc2.org']
+01:== added in slice oneeie_slice484 foreign  ['n2-484.plc2.org', 'n2-485.plc2.org', 'n2-486.plc2.org']
+01:== added in slice oneeif_slice485 foreign  ['n2-485.plc2.org', 'n2-486.plc2.org', 'n2-487.plc2.org']
+01:== added in slice oneeig_slice486 foreign  ['n2-486.plc2.org', 'n2-487.plc2.org', 'n2-488.plc2.org']
+01:== added in slice oneeih_slice487 foreign  ['n2-487.plc2.org', 'n2-488.plc2.org', 'n2-489.plc2.org']
+01:== added in slice oneeii_slice488 foreign  ['n2-488.plc2.org', 'n2-489.plc2.org', 'n2-490.plc2.org']
+01:== added in slice oneeij_slice489 foreign  ['n2-489.plc2.org', 'n2-490.plc2.org', 'n2-491.plc2.org']
+01:== added in slice oneeja_slice490 foreign  ['n2-490.plc2.org', 'n2-491.plc2.org', 'n2-492.plc2.org']
+01:== added in slice oneejb_slice491 foreign  ['n2-491.plc2.org', 'n2-492.plc2.org', 'n2-493.plc2.org']
+01:== added in slice oneejc_slice492 foreign  ['n2-492.plc2.org', 'n2-493.plc2.org', 'n2-494.plc2.org']
+01:== added in slice oneejd_slice493 foreign  ['n2-493.plc2.org', 'n2-494.plc2.org', 'n2-495.plc2.org']
+01:== added in slice oneeje_slice494 foreign  ['n2-494.plc2.org', 'n2-495.plc2.org', 'n2-496.plc2.org']
+01:== added in slice oneejf_slice495 foreign  ['n2-495.plc2.org', 'n2-496.plc2.org', 'n2-497.plc2.org']
+01:== added in slice oneejg_slice496 foreign  ['n2-496.plc2.org', 'n2-497.plc2.org', 'n2-498.plc2.org']
+01:== added in slice oneejh_slice497 foreign  ['n2-497.plc2.org', 'n2-498.plc2.org', 'n2-499.plc2.org']
+01:== added in slice oneeji_slice498 foreign  ['n2-498.plc2.org', 'n2-499.plc2.org', 'n2-500.plc2.org']
+01:== added in slice oneejj_slice499 foreign  ['n2-499.plc2.org', 'n2-500.plc2.org', 'n2-501.plc2.org']
+01:== added in slice onefaa_slice500 foreign  ['n2-500.plc2.org', 'n2-501.plc2.org', 'n2-502.plc2.org']
+01:== added in slice onefab_slice501 foreign  ['n2-501.plc2.org', 'n2-502.plc2.org', 'n2-503.plc2.org']
+01:== added in slice onefac_slice502 foreign  ['n2-502.plc2.org', 'n2-503.plc2.org', 'n2-504.plc2.org']
+01:== added in slice onefad_slice503 foreign  ['n2-503.plc2.org', 'n2-504.plc2.org', 'n2-505.plc2.org']
+01:== added in slice onefae_slice504 foreign  ['n2-504.plc2.org', 'n2-505.plc2.org', 'n2-506.plc2.org']
+01:== added in slice onefaf_slice505 foreign  ['n2-505.plc2.org', 'n2-506.plc2.org', 'n2-507.plc2.org']
+01:== added in slice onefag_slice506 foreign  ['n2-506.plc2.org', 'n2-507.plc2.org', 'n2-508.plc2.org']
+01:== added in slice onefah_slice507 foreign  ['n2-507.plc2.org', 'n2-508.plc2.org', 'n2-509.plc2.org']
+01:== added in slice onefai_slice508 foreign  ['n2-508.plc2.org', 'n2-509.plc2.org', 'n2-510.plc2.org']
+01:== added in slice onefaj_slice509 foreign  ['n2-509.plc2.org', 'n2-510.plc2.org', 'n2-511.plc2.org']
+01:== added in slice onefba_slice510 foreign  ['n2-510.plc2.org', 'n2-511.plc2.org', 'n2-512.plc2.org']
+01:== added in slice onefbb_slice511 foreign  ['n2-511.plc2.org', 'n2-512.plc2.org', 'n2-513.plc2.org']
+01:== added in slice onefbc_slice512 foreign  ['n2-512.plc2.org', 'n2-513.plc2.org', 'n2-514.plc2.org']
+01:== added in slice onefbd_slice513 foreign  ['n2-513.plc2.org', 'n2-514.plc2.org', 'n2-515.plc2.org']
+01:== added in slice onefbe_slice514 foreign  ['n2-514.plc2.org', 'n2-515.plc2.org', 'n2-516.plc2.org']
+01:== added in slice onefbf_slice515 foreign  ['n2-515.plc2.org', 'n2-516.plc2.org', 'n2-517.plc2.org']
+01:== added in slice onefbg_slice516 foreign  ['n2-516.plc2.org', 'n2-517.plc2.org', 'n2-518.plc2.org']
+01:== added in slice onefbh_slice517 foreign  ['n2-517.plc2.org', 'n2-518.plc2.org', 'n2-519.plc2.org']
+01:== added in slice onefbi_slice518 foreign  ['n2-518.plc2.org', 'n2-519.plc2.org', 'n2-520.plc2.org']
+01:== added in slice onefbj_slice519 foreign  ['n2-519.plc2.org', 'n2-520.plc2.org', 'n2-521.plc2.org']
+01:== added in slice onefca_slice520 foreign  ['n2-520.plc2.org', 'n2-521.plc2.org', 'n2-522.plc2.org']
+01:== added in slice onefcb_slice521 foreign  ['n2-521.plc2.org', 'n2-522.plc2.org', 'n2-523.plc2.org']
+01:== added in slice onefcc_slice522 foreign  ['n2-522.plc2.org', 'n2-523.plc2.org', 'n2-524.plc2.org']
+01:== added in slice onefcd_slice523 foreign  ['n2-523.plc2.org', 'n2-524.plc2.org', 'n2-525.plc2.org']
+01:== added in slice onefce_slice524 foreign  ['n2-524.plc2.org', 'n2-525.plc2.org', 'n2-526.plc2.org']
+01:== added in slice onefcf_slice525 foreign  ['n2-525.plc2.org', 'n2-526.plc2.org', 'n2-527.plc2.org']
+01:== added in slice onefcg_slice526 foreign  ['n2-526.plc2.org', 'n2-527.plc2.org', 'n2-528.plc2.org']
+01:== added in slice onefch_slice527 foreign  ['n2-527.plc2.org', 'n2-528.plc2.org', 'n2-529.plc2.org']
+01:== added in slice onefci_slice528 foreign  ['n2-528.plc2.org', 'n2-529.plc2.org', 'n2-530.plc2.org']
+01:== added in slice onefcj_slice529 foreign  ['n2-529.plc2.org', 'n2-530.plc2.org', 'n2-531.plc2.org']
+01:== added in slice onefda_slice530 foreign  ['n2-530.plc2.org', 'n2-531.plc2.org', 'n2-532.plc2.org']
+01:== added in slice onefdb_slice531 foreign  ['n2-531.plc2.org', 'n2-532.plc2.org', 'n2-533.plc2.org']
+01:== added in slice onefdc_slice532 foreign  ['n2-532.plc2.org', 'n2-533.plc2.org', 'n2-534.plc2.org']
+01:== added in slice onefdd_slice533 foreign  ['n2-533.plc2.org', 'n2-534.plc2.org', 'n2-535.plc2.org']
+01:== added in slice onefde_slice534 foreign  ['n2-534.plc2.org', 'n2-535.plc2.org', 'n2-536.plc2.org']
+01:== added in slice onefdf_slice535 foreign  ['n2-535.plc2.org', 'n2-536.plc2.org', 'n2-537.plc2.org']
+01:== added in slice onefdg_slice536 foreign  ['n2-536.plc2.org', 'n2-537.plc2.org', 'n2-538.plc2.org']
+01:== added in slice onefdh_slice537 foreign  ['n2-537.plc2.org', 'n2-538.plc2.org', 'n2-539.plc2.org']
+01:== added in slice onefdi_slice538 foreign  ['n2-538.plc2.org', 'n2-539.plc2.org', 'n2-540.plc2.org']
+01:== added in slice onefdj_slice539 foreign  ['n2-539.plc2.org', 'n2-540.plc2.org', 'n2-541.plc2.org']
+01:== added in slice onefea_slice540 foreign  ['n2-540.plc2.org', 'n2-541.plc2.org', 'n2-542.plc2.org']
+01:== added in slice onefeb_slice541 foreign  ['n2-541.plc2.org', 'n2-542.plc2.org', 'n2-543.plc2.org']
+01:== added in slice onefec_slice542 foreign  ['n2-542.plc2.org', 'n2-543.plc2.org', 'n2-544.plc2.org']
+01:== added in slice onefed_slice543 foreign  ['n2-543.plc2.org', 'n2-544.plc2.org', 'n2-545.plc2.org']
+01:== added in slice onefee_slice544 foreign  ['n2-544.plc2.org', 'n2-545.plc2.org', 'n2-546.plc2.org']
+01:== added in slice onefef_slice545 foreign  ['n2-545.plc2.org', 'n2-546.plc2.org', 'n2-547.plc2.org']
+01:== added in slice onefeg_slice546 foreign  ['n2-546.plc2.org', 'n2-547.plc2.org', 'n2-548.plc2.org']
+01:== added in slice onefeh_slice547 foreign  ['n2-547.plc2.org', 'n2-548.plc2.org', 'n2-549.plc2.org']
+01:== added in slice onefei_slice548 foreign  ['n2-548.plc2.org', 'n2-549.plc2.org', 'n2-550.plc2.org']
+01:== added in slice onefej_slice549 foreign  ['n2-549.plc2.org', 'n2-550.plc2.org', 'n2-551.plc2.org']
+01:== added in slice oneffa_slice550 foreign  ['n2-550.plc2.org', 'n2-551.plc2.org', 'n2-552.plc2.org']
+01:== added in slice oneffb_slice551 foreign  ['n2-551.plc2.org', 'n2-552.plc2.org', 'n2-553.plc2.org']
+01:== added in slice oneffc_slice552 foreign  ['n2-552.plc2.org', 'n2-553.plc2.org', 'n2-554.plc2.org']
+01:== added in slice oneffd_slice553 foreign  ['n2-553.plc2.org', 'n2-554.plc2.org', 'n2-555.plc2.org']
+01:== added in slice oneffe_slice554 foreign  ['n2-554.plc2.org', 'n2-555.plc2.org', 'n2-556.plc2.org']
+01:== added in slice onefff_slice555 foreign  ['n2-555.plc2.org', 'n2-556.plc2.org', 'n2-557.plc2.org']
+01:== added in slice oneffg_slice556 foreign  ['n2-556.plc2.org', 'n2-557.plc2.org', 'n2-558.plc2.org']
+01:== added in slice oneffh_slice557 foreign  ['n2-557.plc2.org', 'n2-558.plc2.org', 'n2-559.plc2.org']
+01:== added in slice oneffi_slice558 foreign  ['n2-558.plc2.org', 'n2-559.plc2.org', 'n2-560.plc2.org']
+01:== added in slice oneffj_slice559 foreign  ['n2-559.plc2.org', 'n2-560.plc2.org', 'n2-561.plc2.org']
+01:== added in slice onefga_slice560 foreign  ['n2-560.plc2.org', 'n2-561.plc2.org', 'n2-562.plc2.org']
+01:== added in slice onefgb_slice561 foreign  ['n2-561.plc2.org', 'n2-562.plc2.org', 'n2-563.plc2.org']
+01:== added in slice onefgc_slice562 foreign  ['n2-562.plc2.org', 'n2-563.plc2.org', 'n2-564.plc2.org']
+01:== added in slice onefgd_slice563 foreign  ['n2-563.plc2.org', 'n2-564.plc2.org', 'n2-565.plc2.org']
+01:== added in slice onefge_slice564 foreign  ['n2-564.plc2.org', 'n2-565.plc2.org', 'n2-566.plc2.org']
+01:== added in slice onefgf_slice565 foreign  ['n2-565.plc2.org', 'n2-566.plc2.org', 'n2-567.plc2.org']
+01:== added in slice onefgg_slice566 foreign  ['n2-566.plc2.org', 'n2-567.plc2.org', 'n2-568.plc2.org']
+01:== added in slice onefgh_slice567 foreign  ['n2-567.plc2.org', 'n2-568.plc2.org', 'n2-569.plc2.org']
+01:== added in slice onefgi_slice568 foreign  ['n2-568.plc2.org', 'n2-569.plc2.org', 'n2-570.plc2.org']
+01:== added in slice onefgj_slice569 foreign  ['n2-569.plc2.org', 'n2-570.plc2.org', 'n2-571.plc2.org']
+01:== added in slice onefha_slice570 foreign  ['n2-570.plc2.org', 'n2-571.plc2.org', 'n2-572.plc2.org']
+01:== added in slice onefhb_slice571 foreign  ['n2-571.plc2.org', 'n2-572.plc2.org', 'n2-573.plc2.org']
+01:== added in slice onefhc_slice572 foreign  ['n2-572.plc2.org', 'n2-573.plc2.org', 'n2-574.plc2.org']
+01:== added in slice onefhd_slice573 foreign  ['n2-573.plc2.org', 'n2-574.plc2.org', 'n2-575.plc2.org']
+01:== added in slice onefhe_slice574 foreign  ['n2-574.plc2.org', 'n2-575.plc2.org', 'n2-576.plc2.org']
+01:== added in slice onefhf_slice575 foreign  ['n2-575.plc2.org', 'n2-576.plc2.org', 'n2-577.plc2.org']
+01:== added in slice onefhg_slice576 foreign  ['n2-576.plc2.org', 'n2-577.plc2.org', 'n2-578.plc2.org']
+01:== added in slice onefhh_slice577 foreign  ['n2-577.plc2.org', 'n2-578.plc2.org', 'n2-579.plc2.org']
+01:== added in slice onefhi_slice578 foreign  ['n2-578.plc2.org', 'n2-579.plc2.org', 'n2-580.plc2.org']
+01:== added in slice onefhj_slice579 foreign  ['n2-579.plc2.org', 'n2-580.plc2.org', 'n2-581.plc2.org']
+01:== added in slice onefia_slice580 foreign  ['n2-580.plc2.org', 'n2-581.plc2.org', 'n2-582.plc2.org']
+01:== added in slice onefib_slice581 foreign  ['n2-581.plc2.org', 'n2-582.plc2.org', 'n2-583.plc2.org']
+01:== added in slice onefic_slice582 foreign  ['n2-582.plc2.org', 'n2-583.plc2.org', 'n2-584.plc2.org']
+01:== added in slice onefid_slice583 foreign  ['n2-583.plc2.org', 'n2-584.plc2.org', 'n2-585.plc2.org']
+01:== added in slice onefie_slice584 foreign  ['n2-584.plc2.org', 'n2-585.plc2.org', 'n2-586.plc2.org']
+01:== added in slice onefif_slice585 foreign  ['n2-585.plc2.org', 'n2-586.plc2.org', 'n2-587.plc2.org']
+01:== added in slice onefig_slice586 foreign  ['n2-586.plc2.org', 'n2-587.plc2.org', 'n2-588.plc2.org']
+01:== added in slice onefih_slice587 foreign  ['n2-587.plc2.org', 'n2-588.plc2.org', 'n2-589.plc2.org']
+01:== added in slice onefii_slice588 foreign  ['n2-588.plc2.org', 'n2-589.plc2.org', 'n2-590.plc2.org']
+01:== added in slice onefij_slice589 foreign  ['n2-589.plc2.org', 'n2-590.plc2.org', 'n2-591.plc2.org']
+01:== added in slice onefja_slice590 foreign  ['n2-590.plc2.org', 'n2-591.plc2.org', 'n2-592.plc2.org']
+01:== added in slice onefjb_slice591 foreign  ['n2-591.plc2.org', 'n2-592.plc2.org', 'n2-593.plc2.org']
+01:== added in slice onefjc_slice592 foreign  ['n2-592.plc2.org', 'n2-593.plc2.org', 'n2-594.plc2.org']
+01:== added in slice onefjd_slice593 foreign  ['n2-593.plc2.org', 'n2-594.plc2.org', 'n2-595.plc2.org']
+01:== added in slice onefje_slice594 foreign  ['n2-594.plc2.org', 'n2-595.plc2.org', 'n2-596.plc2.org']
+01:== added in slice onefjf_slice595 foreign  ['n2-595.plc2.org', 'n2-596.plc2.org', 'n2-597.plc2.org']
+01:== added in slice onefjg_slice596 foreign  ['n2-596.plc2.org', 'n2-597.plc2.org', 'n2-598.plc2.org']
+01:== added in slice onefjh_slice597 foreign  ['n2-597.plc2.org', 'n2-598.plc2.org', 'n2-599.plc2.org']
+01:== added in slice onefji_slice598 foreign  ['n2-598.plc2.org', 'n2-599.plc2.org', 'n2-600.plc2.org']
+01:== added in slice onefjj_slice599 foreign  ['n2-599.plc2.org', 'n2-600.plc2.org', 'n2-601.plc2.org']
+01:== added in slice onegaa_slice600 foreign  ['n2-600.plc2.org', 'n2-601.plc2.org', 'n2-602.plc2.org']
+01:== added in slice onegab_slice601 foreign  ['n2-601.plc2.org', 'n2-602.plc2.org', 'n2-603.plc2.org']
+01:== added in slice onegac_slice602 foreign  ['n2-602.plc2.org', 'n2-603.plc2.org', 'n2-604.plc2.org']
+01:== added in slice onegad_slice603 foreign  ['n2-603.plc2.org', 'n2-604.plc2.org', 'n2-605.plc2.org']
+01:== added in slice onegae_slice604 foreign  ['n2-604.plc2.org', 'n2-605.plc2.org', 'n2-606.plc2.org']
+01:== added in slice onegaf_slice605 foreign  ['n2-605.plc2.org', 'n2-606.plc2.org', 'n2-607.plc2.org']
+01:== added in slice onegag_slice606 foreign  ['n2-606.plc2.org', 'n2-607.plc2.org', 'n2-608.plc2.org']
+01:== added in slice onegah_slice607 foreign  ['n2-607.plc2.org', 'n2-608.plc2.org', 'n2-609.plc2.org']
+01:== added in slice onegai_slice608 foreign  ['n2-608.plc2.org', 'n2-609.plc2.org', 'n2-610.plc2.org']
+01:== added in slice onegaj_slice609 foreign  ['n2-609.plc2.org', 'n2-610.plc2.org', 'n2-611.plc2.org']
+01:== added in slice onegba_slice610 foreign  ['n2-610.plc2.org', 'n2-611.plc2.org', 'n2-612.plc2.org']
+01:== added in slice onegbb_slice611 foreign  ['n2-611.plc2.org', 'n2-612.plc2.org', 'n2-613.plc2.org']
+01:== added in slice onegbc_slice612 foreign  ['n2-612.plc2.org', 'n2-613.plc2.org', 'n2-614.plc2.org']
+01:== added in slice onegbd_slice613 foreign  ['n2-613.plc2.org', 'n2-614.plc2.org', 'n2-615.plc2.org']
+01:== added in slice onegbe_slice614 foreign  ['n2-614.plc2.org', 'n2-615.plc2.org', 'n2-616.plc2.org']
+01:== added in slice onegbf_slice615 foreign  ['n2-615.plc2.org', 'n2-616.plc2.org', 'n2-617.plc2.org']
+01:== added in slice onegbg_slice616 foreign  ['n2-616.plc2.org', 'n2-617.plc2.org', 'n2-618.plc2.org']
+01:== added in slice onegbh_slice617 foreign  ['n2-617.plc2.org', 'n2-618.plc2.org', 'n2-619.plc2.org']
+01:== added in slice onegbi_slice618 foreign  ['n2-618.plc2.org', 'n2-619.plc2.org', 'n2-620.plc2.org']
+01:== added in slice onegbj_slice619 foreign  ['n2-619.plc2.org', 'n2-620.plc2.org', 'n2-621.plc2.org']
+01:== added in slice onegca_slice620 foreign  ['n2-620.plc2.org', 'n2-621.plc2.org', 'n2-622.plc2.org']
+01:== added in slice onegcb_slice621 foreign  ['n2-621.plc2.org', 'n2-622.plc2.org', 'n2-623.plc2.org']
+01:== added in slice onegcc_slice622 foreign  ['n2-622.plc2.org', 'n2-623.plc2.org', 'n2-624.plc2.org']
+01:== added in slice onegcd_slice623 foreign  ['n2-623.plc2.org', 'n2-624.plc2.org', 'n2-625.plc2.org']
+01:== added in slice onegce_slice624 foreign  ['n2-624.plc2.org', 'n2-625.plc2.org', 'n2-626.plc2.org']
+01:== added in slice onegcf_slice625 foreign  ['n2-625.plc2.org', 'n2-626.plc2.org', 'n2-627.plc2.org']
+01:== added in slice onegcg_slice626 foreign  ['n2-626.plc2.org', 'n2-627.plc2.org', 'n2-628.plc2.org']
+01:== added in slice onegch_slice627 foreign  ['n2-627.plc2.org', 'n2-628.plc2.org', 'n2-629.plc2.org']
+01:== added in slice onegci_slice628 foreign  ['n2-628.plc2.org', 'n2-629.plc2.org', 'n2-630.plc2.org']
+01:== added in slice onegcj_slice629 foreign  ['n2-629.plc2.org', 'n2-630.plc2.org', 'n2-631.plc2.org']
+01:== added in slice onegda_slice630 foreign  ['n2-630.plc2.org', 'n2-631.plc2.org', 'n2-632.plc2.org']
+01:== added in slice onegdb_slice631 foreign  ['n2-631.plc2.org', 'n2-632.plc2.org', 'n2-633.plc2.org']
+01:== added in slice onegdc_slice632 foreign  ['n2-632.plc2.org', 'n2-633.plc2.org', 'n2-634.plc2.org']
+01:== added in slice onegdd_slice633 foreign  ['n2-633.plc2.org', 'n2-634.plc2.org', 'n2-635.plc2.org']
+01:== added in slice onegde_slice634 foreign  ['n2-634.plc2.org', 'n2-635.plc2.org', 'n2-636.plc2.org']
+01:== added in slice onegdf_slice635 foreign  ['n2-635.plc2.org', 'n2-636.plc2.org', 'n2-637.plc2.org']
+01:== added in slice onegdg_slice636 foreign  ['n2-636.plc2.org', 'n2-637.plc2.org', 'n2-638.plc2.org']
+01:== added in slice onegdh_slice637 foreign  ['n2-637.plc2.org', 'n2-638.plc2.org', 'n2-639.plc2.org']
+01:== added in slice onegdi_slice638 foreign  ['n2-638.plc2.org', 'n2-639.plc2.org', 'n2-640.plc2.org']
+01:== added in slice onegdj_slice639 foreign  ['n2-639.plc2.org', 'n2-640.plc2.org', 'n2-641.plc2.org']
+01:== added in slice onegea_slice640 foreign  ['n2-640.plc2.org', 'n2-641.plc2.org', 'n2-642.plc2.org']
+01:== added in slice onegeb_slice641 foreign  ['n2-641.plc2.org', 'n2-642.plc2.org', 'n2-643.plc2.org']
+01:== added in slice onegec_slice642 foreign  ['n2-642.plc2.org', 'n2-643.plc2.org', 'n2-644.plc2.org']
+01:== added in slice oneged_slice643 foreign  ['n2-643.plc2.org', 'n2-644.plc2.org', 'n2-645.plc2.org']
+01:== added in slice onegee_slice644 foreign  ['n2-644.plc2.org', 'n2-645.plc2.org', 'n2-646.plc2.org']
+01:== added in slice onegef_slice645 foreign  ['n2-645.plc2.org', 'n2-646.plc2.org', 'n2-647.plc2.org']
+01:== added in slice onegeg_slice646 foreign  ['n2-646.plc2.org', 'n2-647.plc2.org', 'n2-648.plc2.org']
+01:== added in slice onegeh_slice647 foreign  ['n2-647.plc2.org', 'n2-648.plc2.org', 'n2-649.plc2.org']
+01:== added in slice onegei_slice648 foreign  ['n2-648.plc2.org', 'n2-649.plc2.org', 'n2-650.plc2.org']
+01:== added in slice onegej_slice649 foreign  ['n2-649.plc2.org', 'n2-650.plc2.org', 'n2-651.plc2.org']
+01:== added in slice onegfa_slice650 foreign  ['n2-650.plc2.org', 'n2-651.plc2.org', 'n2-652.plc2.org']
+01:== added in slice onegfb_slice651 foreign  ['n2-651.plc2.org', 'n2-652.plc2.org', 'n2-653.plc2.org']
+01:== added in slice onegfc_slice652 foreign  ['n2-652.plc2.org', 'n2-653.plc2.org', 'n2-654.plc2.org']
+01:== added in slice onegfd_slice653 foreign  ['n2-653.plc2.org', 'n2-654.plc2.org', 'n2-655.plc2.org']
+01:== added in slice onegfe_slice654 foreign  ['n2-654.plc2.org', 'n2-655.plc2.org', 'n2-656.plc2.org']
+01:== added in slice onegff_slice655 foreign  ['n2-655.plc2.org', 'n2-656.plc2.org', 'n2-657.plc2.org']
+01:== added in slice onegfg_slice656 foreign  ['n2-656.plc2.org', 'n2-657.plc2.org', 'n2-658.plc2.org']
+01:== added in slice onegfh_slice657 foreign  ['n2-657.plc2.org', 'n2-658.plc2.org', 'n2-659.plc2.org']
+01:== added in slice onegfi_slice658 foreign  ['n2-658.plc2.org', 'n2-659.plc2.org', 'n2-660.plc2.org']
+01:== added in slice onegfj_slice659 foreign  ['n2-659.plc2.org', 'n2-660.plc2.org', 'n2-661.plc2.org']
+01:== added in slice onegga_slice660 foreign  ['n2-660.plc2.org', 'n2-661.plc2.org', 'n2-662.plc2.org']
+01:== added in slice oneggb_slice661 foreign  ['n2-661.plc2.org', 'n2-662.plc2.org', 'n2-663.plc2.org']
+01:== added in slice oneggc_slice662 foreign  ['n2-662.plc2.org', 'n2-663.plc2.org', 'n2-664.plc2.org']
+01:== added in slice oneggd_slice663 foreign  ['n2-663.plc2.org', 'n2-664.plc2.org', 'n2-665.plc2.org']
+01:== added in slice onegge_slice664 foreign  ['n2-664.plc2.org', 'n2-665.plc2.org', 'n2-666.plc2.org']
+01:== added in slice oneggf_slice665 foreign  ['n2-665.plc2.org', 'n2-666.plc2.org', 'n2-667.plc2.org']
+01:== added in slice oneggg_slice666 foreign  ['n2-666.plc2.org', 'n2-667.plc2.org', 'n2-668.plc2.org']
+01:== added in slice oneggh_slice667 foreign  ['n2-667.plc2.org', 'n2-668.plc2.org', 'n2-669.plc2.org']
+01:== added in slice oneggi_slice668 foreign  ['n2-668.plc2.org', 'n2-669.plc2.org', 'n2-670.plc2.org']
+01:== added in slice oneggj_slice669 foreign  ['n2-669.plc2.org', 'n2-670.plc2.org', 'n2-671.plc2.org']
+01:== added in slice onegha_slice670 foreign  ['n2-670.plc2.org', 'n2-671.plc2.org', 'n2-672.plc2.org']
+01:== added in slice oneghb_slice671 foreign  ['n2-671.plc2.org', 'n2-672.plc2.org', 'n2-673.plc2.org']
+01:== added in slice oneghc_slice672 foreign  ['n2-672.plc2.org', 'n2-673.plc2.org', 'n2-674.plc2.org']
+01:== added in slice oneghd_slice673 foreign  ['n2-673.plc2.org', 'n2-674.plc2.org', 'n2-675.plc2.org']
+01:== added in slice oneghe_slice674 foreign  ['n2-674.plc2.org', 'n2-675.plc2.org', 'n2-676.plc2.org']
+01:== added in slice oneghf_slice675 foreign  ['n2-675.plc2.org', 'n2-676.plc2.org', 'n2-677.plc2.org']
+01:== added in slice oneghg_slice676 foreign  ['n2-676.plc2.org', 'n2-677.plc2.org', 'n2-678.plc2.org']
+01:== added in slice oneghh_slice677 foreign  ['n2-677.plc2.org', 'n2-678.plc2.org', 'n2-679.plc2.org']
+01:== added in slice oneghi_slice678 foreign  ['n2-678.plc2.org', 'n2-679.plc2.org', 'n2-680.plc2.org']
+01:== added in slice oneghj_slice679 foreign  ['n2-679.plc2.org', 'n2-680.plc2.org', 'n2-681.plc2.org']
+01:== added in slice onegia_slice680 foreign  ['n2-680.plc2.org', 'n2-681.plc2.org', 'n2-682.plc2.org']
+01:== added in slice onegib_slice681 foreign  ['n2-681.plc2.org', 'n2-682.plc2.org', 'n2-683.plc2.org']
+01:== added in slice onegic_slice682 foreign  ['n2-682.plc2.org', 'n2-683.plc2.org', 'n2-684.plc2.org']
+01:== added in slice onegid_slice683 foreign  ['n2-683.plc2.org', 'n2-684.plc2.org', 'n2-685.plc2.org']
+01:== added in slice onegie_slice684 foreign  ['n2-684.plc2.org', 'n2-685.plc2.org', 'n2-686.plc2.org']
+01:== added in slice onegif_slice685 foreign  ['n2-685.plc2.org', 'n2-686.plc2.org', 'n2-687.plc2.org']
+01:== added in slice onegig_slice686 foreign  ['n2-686.plc2.org', 'n2-687.plc2.org', 'n2-688.plc2.org']
+01:== added in slice onegih_slice687 foreign  ['n2-687.plc2.org', 'n2-688.plc2.org', 'n2-689.plc2.org']
+01:== added in slice onegii_slice688 foreign  ['n2-688.plc2.org', 'n2-689.plc2.org', 'n2-690.plc2.org']
+01:== added in slice onegij_slice689 foreign  ['n2-689.plc2.org', 'n2-690.plc2.org', 'n2-691.plc2.org']
+01:== added in slice onegja_slice690 foreign  ['n2-690.plc2.org', 'n2-691.plc2.org', 'n2-692.plc2.org']
+01:== added in slice onegjb_slice691 foreign  ['n2-691.plc2.org', 'n2-692.plc2.org', 'n2-693.plc2.org']
+01:== added in slice onegjc_slice692 foreign  ['n2-692.plc2.org', 'n2-693.plc2.org', 'n2-694.plc2.org']
+01:== added in slice onegjd_slice693 foreign  ['n2-693.plc2.org', 'n2-694.plc2.org', 'n2-695.plc2.org']
+01:== added in slice onegje_slice694 foreign  ['n2-694.plc2.org', 'n2-695.plc2.org', 'n2-696.plc2.org']
+01:== added in slice onegjf_slice695 foreign  ['n2-695.plc2.org', 'n2-696.plc2.org', 'n2-697.plc2.org']
+01:== added in slice onegjg_slice696 foreign  ['n2-696.plc2.org', 'n2-697.plc2.org', 'n2-698.plc2.org']
+01:== added in slice onegjh_slice697 foreign  ['n2-697.plc2.org', 'n2-698.plc2.org', 'n2-699.plc2.org']
+01:== added in slice onegji_slice698 foreign  ['n2-698.plc2.org', 'n2-699.plc2.org', 'n2-700.plc2.org']
+01:== added in slice onegjj_slice699 foreign  ['n2-699.plc2.org', 'n2-700.plc2.org', 'n2-701.plc2.org']
+01:== added in slice onehaa_slice700 foreign  ['n2-700.plc2.org', 'n2-701.plc2.org', 'n2-702.plc2.org']
+01:== added in slice onehab_slice701 foreign  ['n2-701.plc2.org', 'n2-702.plc2.org', 'n2-703.plc2.org']
+01:== added in slice onehac_slice702 foreign  ['n2-702.plc2.org', 'n2-703.plc2.org', 'n2-704.plc2.org']
+01:== added in slice onehad_slice703 foreign  ['n2-703.plc2.org', 'n2-704.plc2.org', 'n2-705.plc2.org']
+01:== added in slice onehae_slice704 foreign  ['n2-704.plc2.org', 'n2-705.plc2.org', 'n2-706.plc2.org']
+01:== added in slice onehaf_slice705 foreign  ['n2-705.plc2.org', 'n2-706.plc2.org', 'n2-707.plc2.org']
+01:== added in slice onehag_slice706 foreign  ['n2-706.plc2.org', 'n2-707.plc2.org', 'n2-708.plc2.org']
+01:== added in slice onehah_slice707 foreign  ['n2-707.plc2.org', 'n2-708.plc2.org', 'n2-709.plc2.org']
+01:== added in slice onehai_slice708 foreign  ['n2-708.plc2.org', 'n2-709.plc2.org', 'n2-710.plc2.org']
+01:== added in slice onehaj_slice709 foreign  ['n2-709.plc2.org', 'n2-710.plc2.org', 'n2-711.plc2.org']
+01:== added in slice onehba_slice710 foreign  ['n2-710.plc2.org', 'n2-711.plc2.org', 'n2-712.plc2.org']
+01:== added in slice onehbb_slice711 foreign  ['n2-711.plc2.org', 'n2-712.plc2.org', 'n2-713.plc2.org']
+01:== added in slice onehbc_slice712 foreign  ['n2-712.plc2.org', 'n2-713.plc2.org', 'n2-714.plc2.org']
+01:== added in slice onehbd_slice713 foreign  ['n2-713.plc2.org', 'n2-714.plc2.org', 'n2-715.plc2.org']
+01:== added in slice onehbe_slice714 foreign  ['n2-714.plc2.org', 'n2-715.plc2.org', 'n2-716.plc2.org']
+01:== added in slice onehbf_slice715 foreign  ['n2-715.plc2.org', 'n2-716.plc2.org', 'n2-717.plc2.org']
+01:== added in slice onehbg_slice716 foreign  ['n2-716.plc2.org', 'n2-717.plc2.org', 'n2-718.plc2.org']
+01:== added in slice onehbh_slice717 foreign  ['n2-717.plc2.org', 'n2-718.plc2.org', 'n2-719.plc2.org']
+01:== added in slice onehbi_slice718 foreign  ['n2-718.plc2.org', 'n2-719.plc2.org', 'n2-720.plc2.org']
+01:== added in slice onehbj_slice719 foreign  ['n2-719.plc2.org', 'n2-720.plc2.org', 'n2-721.plc2.org']
+01:== added in slice onehca_slice720 foreign  ['n2-720.plc2.org', 'n2-721.plc2.org', 'n2-722.plc2.org']
+01:== added in slice onehcb_slice721 foreign  ['n2-721.plc2.org', 'n2-722.plc2.org', 'n2-723.plc2.org']
+01:== added in slice onehcc_slice722 foreign  ['n2-722.plc2.org', 'n2-723.plc2.org', 'n2-724.plc2.org']
+01:== added in slice onehcd_slice723 foreign  ['n2-723.plc2.org', 'n2-724.plc2.org', 'n2-725.plc2.org']
+01:== added in slice onehce_slice724 foreign  ['n2-724.plc2.org', 'n2-725.plc2.org', 'n2-726.plc2.org']
+01:== added in slice onehcf_slice725 foreign  ['n2-725.plc2.org', 'n2-726.plc2.org', 'n2-727.plc2.org']
+01:== added in slice onehcg_slice726 foreign  ['n2-726.plc2.org', 'n2-727.plc2.org', 'n2-728.plc2.org']
+01:== added in slice onehch_slice727 foreign  ['n2-727.plc2.org', 'n2-728.plc2.org', 'n2-729.plc2.org']
+01:== added in slice onehci_slice728 foreign  ['n2-728.plc2.org', 'n2-729.plc2.org', 'n2-730.plc2.org']
+01:== added in slice onehcj_slice729 foreign  ['n2-729.plc2.org', 'n2-730.plc2.org', 'n2-731.plc2.org']
+01:== added in slice onehda_slice730 foreign  ['n2-730.plc2.org', 'n2-731.plc2.org', 'n2-732.plc2.org']
+01:== added in slice onehdb_slice731 foreign  ['n2-731.plc2.org', 'n2-732.plc2.org', 'n2-733.plc2.org']
+01:== added in slice onehdc_slice732 foreign  ['n2-732.plc2.org', 'n2-733.plc2.org', 'n2-734.plc2.org']
+01:== added in slice onehdd_slice733 foreign  ['n2-733.plc2.org', 'n2-734.plc2.org', 'n2-735.plc2.org']
+01:== added in slice onehde_slice734 foreign  ['n2-734.plc2.org', 'n2-735.plc2.org', 'n2-736.plc2.org']
+01:== added in slice onehdf_slice735 foreign  ['n2-735.plc2.org', 'n2-736.plc2.org', 'n2-737.plc2.org']
+01:== added in slice onehdg_slice736 foreign  ['n2-736.plc2.org', 'n2-737.plc2.org', 'n2-738.plc2.org']
+01:== added in slice onehdh_slice737 foreign  ['n2-737.plc2.org', 'n2-738.plc2.org', 'n2-739.plc2.org']
+01:== added in slice onehdi_slice738 foreign  ['n2-738.plc2.org', 'n2-739.plc2.org', 'n2-740.plc2.org']
+01:== added in slice onehdj_slice739 foreign  ['n2-739.plc2.org', 'n2-740.plc2.org', 'n2-741.plc2.org']
+01:== added in slice onehea_slice740 foreign  ['n2-740.plc2.org', 'n2-741.plc2.org', 'n2-742.plc2.org']
+01:== added in slice oneheb_slice741 foreign  ['n2-741.plc2.org', 'n2-742.plc2.org', 'n2-743.plc2.org']
+01:== added in slice onehec_slice742 foreign  ['n2-742.plc2.org', 'n2-743.plc2.org', 'n2-744.plc2.org']
+01:== added in slice onehed_slice743 foreign  ['n2-743.plc2.org', 'n2-744.plc2.org', 'n2-745.plc2.org']
+01:== added in slice onehee_slice744 foreign  ['n2-744.plc2.org', 'n2-745.plc2.org', 'n2-746.plc2.org']
+01:== added in slice onehef_slice745 foreign  ['n2-745.plc2.org', 'n2-746.plc2.org', 'n2-747.plc2.org']
+01:== added in slice oneheg_slice746 foreign  ['n2-746.plc2.org', 'n2-747.plc2.org', 'n2-748.plc2.org']
+01:== added in slice oneheh_slice747 foreign  ['n2-747.plc2.org', 'n2-748.plc2.org', 'n2-749.plc2.org']
+01:== added in slice onehei_slice748 foreign  ['n2-748.plc2.org', 'n2-749.plc2.org', 'n2-750.plc2.org']
+01:== added in slice onehej_slice749 foreign  ['n2-749.plc2.org', 'n2-750.plc2.org', 'n2-751.plc2.org']
+01:== added in slice onehfa_slice750 foreign  ['n2-750.plc2.org', 'n2-751.plc2.org', 'n2-752.plc2.org']
+01:== added in slice onehfb_slice751 foreign  ['n2-751.plc2.org', 'n2-752.plc2.org', 'n2-753.plc2.org']
+01:== added in slice onehfc_slice752 foreign  ['n2-752.plc2.org', 'n2-753.plc2.org', 'n2-754.plc2.org']
+01:== added in slice onehfd_slice753 foreign  ['n2-753.plc2.org', 'n2-754.plc2.org', 'n2-755.plc2.org']
+01:== added in slice onehfe_slice754 foreign  ['n2-754.plc2.org', 'n2-755.plc2.org', 'n2-756.plc2.org']
+01:== added in slice onehff_slice755 foreign  ['n2-755.plc2.org', 'n2-756.plc2.org', 'n2-757.plc2.org']
+01:== added in slice onehfg_slice756 foreign  ['n2-756.plc2.org', 'n2-757.plc2.org', 'n2-758.plc2.org']
+01:== added in slice onehfh_slice757 foreign  ['n2-757.plc2.org', 'n2-758.plc2.org', 'n2-759.plc2.org']
+01:== added in slice onehfi_slice758 foreign  ['n2-758.plc2.org', 'n2-759.plc2.org', 'n2-760.plc2.org']
+01:== added in slice onehfj_slice759 foreign  ['n2-759.plc2.org', 'n2-760.plc2.org', 'n2-761.plc2.org']
+01:== added in slice onehga_slice760 foreign  ['n2-760.plc2.org', 'n2-761.plc2.org', 'n2-762.plc2.org']
+01:== added in slice onehgb_slice761 foreign  ['n2-761.plc2.org', 'n2-762.plc2.org', 'n2-763.plc2.org']
+01:== added in slice onehgc_slice762 foreign  ['n2-762.plc2.org', 'n2-763.plc2.org', 'n2-764.plc2.org']
+01:== added in slice onehgd_slice763 foreign  ['n2-763.plc2.org', 'n2-764.plc2.org', 'n2-765.plc2.org']
+01:== added in slice onehge_slice764 foreign  ['n2-764.plc2.org', 'n2-765.plc2.org', 'n2-766.plc2.org']
+01:== added in slice onehgf_slice765 foreign  ['n2-765.plc2.org', 'n2-766.plc2.org', 'n2-767.plc2.org']
+01:== added in slice onehgg_slice766 foreign  ['n2-766.plc2.org', 'n2-767.plc2.org', 'n2-768.plc2.org']
+01:== added in slice onehgh_slice767 foreign  ['n2-767.plc2.org', 'n2-768.plc2.org', 'n2-769.plc2.org']
+01:== added in slice onehgi_slice768 foreign  ['n2-768.plc2.org', 'n2-769.plc2.org', 'n2-770.plc2.org']
+01:== added in slice onehgj_slice769 foreign  ['n2-769.plc2.org', 'n2-770.plc2.org', 'n2-771.plc2.org']
+01:== added in slice onehha_slice770 foreign  ['n2-770.plc2.org', 'n2-771.plc2.org', 'n2-772.plc2.org']
+01:== added in slice onehhb_slice771 foreign  ['n2-771.plc2.org', 'n2-772.plc2.org', 'n2-773.plc2.org']
+01:== added in slice onehhc_slice772 foreign  ['n2-772.plc2.org', 'n2-773.plc2.org', 'n2-774.plc2.org']
+01:== added in slice onehhd_slice773 foreign  ['n2-773.plc2.org', 'n2-774.plc2.org', 'n2-775.plc2.org']
+01:== added in slice onehhe_slice774 foreign  ['n2-774.plc2.org', 'n2-775.plc2.org', 'n2-776.plc2.org']
+01:== added in slice onehhf_slice775 foreign  ['n2-775.plc2.org', 'n2-776.plc2.org', 'n2-777.plc2.org']
+01:== added in slice onehhg_slice776 foreign  ['n2-776.plc2.org', 'n2-777.plc2.org', 'n2-778.plc2.org']
+01:== added in slice onehhh_slice777 foreign  ['n2-777.plc2.org', 'n2-778.plc2.org', 'n2-779.plc2.org']
+01:== added in slice onehhi_slice778 foreign  ['n2-778.plc2.org', 'n2-779.plc2.org', 'n2-780.plc2.org']
+01:== added in slice onehhj_slice779 foreign  ['n2-779.plc2.org', 'n2-780.plc2.org', 'n2-781.plc2.org']
+01:== added in slice onehia_slice780 foreign  ['n2-780.plc2.org', 'n2-781.plc2.org', 'n2-782.plc2.org']
+01:== added in slice onehib_slice781 foreign  ['n2-781.plc2.org', 'n2-782.plc2.org', 'n2-783.plc2.org']
+01:== added in slice onehic_slice782 foreign  ['n2-782.plc2.org', 'n2-783.plc2.org', 'n2-784.plc2.org']
+01:== added in slice onehid_slice783 foreign  ['n2-783.plc2.org', 'n2-784.plc2.org', 'n2-785.plc2.org']
+01:== added in slice onehie_slice784 foreign  ['n2-784.plc2.org', 'n2-785.plc2.org', 'n2-786.plc2.org']
+01:== added in slice onehif_slice785 foreign  ['n2-785.plc2.org', 'n2-786.plc2.org', 'n2-787.plc2.org']
+01:== added in slice onehig_slice786 foreign  ['n2-786.plc2.org', 'n2-787.plc2.org', 'n2-788.plc2.org']
+01:== added in slice onehih_slice787 foreign  ['n2-787.plc2.org', 'n2-788.plc2.org', 'n2-789.plc2.org']
+01:== added in slice onehii_slice788 foreign  ['n2-788.plc2.org', 'n2-789.plc2.org', 'n2-790.plc2.org']
+01:== added in slice onehij_slice789 foreign  ['n2-789.plc2.org', 'n2-790.plc2.org', 'n2-791.plc2.org']
+01:== added in slice onehja_slice790 foreign  ['n2-790.plc2.org', 'n2-791.plc2.org', 'n2-792.plc2.org']
+01:== added in slice onehjb_slice791 foreign  ['n2-791.plc2.org', 'n2-792.plc2.org', 'n2-793.plc2.org']
+01:== added in slice onehjc_slice792 foreign  ['n2-792.plc2.org', 'n2-793.plc2.org', 'n2-794.plc2.org']
+01:== added in slice onehjd_slice793 foreign  ['n2-793.plc2.org', 'n2-794.plc2.org', 'n2-795.plc2.org']
+01:== added in slice onehje_slice794 foreign  ['n2-794.plc2.org', 'n2-795.plc2.org', 'n2-796.plc2.org']
+01:== added in slice onehjf_slice795 foreign  ['n2-795.plc2.org', 'n2-796.plc2.org', 'n2-797.plc2.org']
+01:== added in slice onehjg_slice796 foreign  ['n2-796.plc2.org', 'n2-797.plc2.org', 'n2-798.plc2.org']
+01:== added in slice onehjh_slice797 foreign  ['n2-797.plc2.org', 'n2-798.plc2.org', 'n2-799.plc2.org']
+01:== added in slice onehji_slice798 foreign  ['n2-798.plc2.org', 'n2-799.plc2.org', 'n2-800.plc2.org']
+01:== added in slice onehjj_slice799 foreign  ['n2-799.plc2.org', 'n2-800.plc2.org', 'n2-801.plc2.org']
+01:== added in slice oneiaa_slice800 foreign  ['n2-800.plc2.org', 'n2-801.plc2.org', 'n2-802.plc2.org']
+01:== added in slice oneiab_slice801 foreign  ['n2-801.plc2.org', 'n2-802.plc2.org', 'n2-803.plc2.org']
+01:== added in slice oneiac_slice802 foreign  ['n2-802.plc2.org', 'n2-803.plc2.org', 'n2-804.plc2.org']
+01:== added in slice oneiad_slice803 foreign  ['n2-803.plc2.org', 'n2-804.plc2.org', 'n2-805.plc2.org']
+01:== added in slice oneiae_slice804 foreign  ['n2-804.plc2.org', 'n2-805.plc2.org', 'n2-806.plc2.org']
+01:== added in slice oneiaf_slice805 foreign  ['n2-805.plc2.org', 'n2-806.plc2.org', 'n2-807.plc2.org']
+01:== added in slice oneiag_slice806 foreign  ['n2-806.plc2.org', 'n2-807.plc2.org', 'n2-808.plc2.org']
+01:== added in slice oneiah_slice807 foreign  ['n2-807.plc2.org', 'n2-808.plc2.org', 'n2-809.plc2.org']
+01:== added in slice oneiai_slice808 foreign  ['n2-808.plc2.org', 'n2-809.plc2.org', 'n2-810.plc2.org']
+01:== added in slice oneiaj_slice809 foreign  ['n2-809.plc2.org', 'n2-810.plc2.org', 'n2-811.plc2.org']
+01:== added in slice oneiba_slice810 foreign  ['n2-810.plc2.org', 'n2-811.plc2.org', 'n2-812.plc2.org']
+01:== added in slice oneibb_slice811 foreign  ['n2-811.plc2.org', 'n2-812.plc2.org', 'n2-813.plc2.org']
+01:== added in slice oneibc_slice812 foreign  ['n2-812.plc2.org', 'n2-813.plc2.org', 'n2-814.plc2.org']
+01:== added in slice oneibd_slice813 foreign  ['n2-813.plc2.org', 'n2-814.plc2.org', 'n2-815.plc2.org']
+01:== added in slice oneibe_slice814 foreign  ['n2-814.plc2.org', 'n2-815.plc2.org', 'n2-816.plc2.org']
+01:== added in slice oneibf_slice815 foreign  ['n2-815.plc2.org', 'n2-816.plc2.org', 'n2-817.plc2.org']
+01:== added in slice oneibg_slice816 foreign  ['n2-816.plc2.org', 'n2-817.plc2.org', 'n2-818.plc2.org']
+01:== added in slice oneibh_slice817 foreign  ['n2-817.plc2.org', 'n2-818.plc2.org', 'n2-819.plc2.org']
+01:== added in slice oneibi_slice818 foreign  ['n2-818.plc2.org', 'n2-819.plc2.org', 'n2-820.plc2.org']
+01:== added in slice oneibj_slice819 foreign  ['n2-819.plc2.org', 'n2-820.plc2.org', 'n2-821.plc2.org']
+01:== added in slice oneica_slice820 foreign  ['n2-820.plc2.org', 'n2-821.plc2.org', 'n2-822.plc2.org']
+01:== added in slice oneicb_slice821 foreign  ['n2-821.plc2.org', 'n2-822.plc2.org', 'n2-823.plc2.org']
+01:== added in slice oneicc_slice822 foreign  ['n2-822.plc2.org', 'n2-823.plc2.org', 'n2-824.plc2.org']
+01:== added in slice oneicd_slice823 foreign  ['n2-823.plc2.org', 'n2-824.plc2.org', 'n2-825.plc2.org']
+01:== added in slice oneice_slice824 foreign  ['n2-824.plc2.org', 'n2-825.plc2.org', 'n2-826.plc2.org']
+01:== added in slice oneicf_slice825 foreign  ['n2-825.plc2.org', 'n2-826.plc2.org', 'n2-827.plc2.org']
+01:== added in slice oneicg_slice826 foreign  ['n2-826.plc2.org', 'n2-827.plc2.org', 'n2-828.plc2.org']
+01:== added in slice oneich_slice827 foreign  ['n2-827.plc2.org', 'n2-828.plc2.org', 'n2-829.plc2.org']
+01:== added in slice oneici_slice828 foreign  ['n2-828.plc2.org', 'n2-829.plc2.org', 'n2-830.plc2.org']
+01:== added in slice oneicj_slice829 foreign  ['n2-829.plc2.org', 'n2-830.plc2.org', 'n2-831.plc2.org']
+01:== added in slice oneida_slice830 foreign  ['n2-830.plc2.org', 'n2-831.plc2.org', 'n2-832.plc2.org']
+01:== added in slice oneidb_slice831 foreign  ['n2-831.plc2.org', 'n2-832.plc2.org', 'n2-833.plc2.org']
+01:== added in slice oneidc_slice832 foreign  ['n2-832.plc2.org', 'n2-833.plc2.org', 'n2-834.plc2.org']
+01:== added in slice oneidd_slice833 foreign  ['n2-833.plc2.org', 'n2-834.plc2.org', 'n2-835.plc2.org']
+01:== added in slice oneide_slice834 foreign  ['n2-834.plc2.org', 'n2-835.plc2.org', 'n2-836.plc2.org']
+01:== added in slice oneidf_slice835 foreign  ['n2-835.plc2.org', 'n2-836.plc2.org', 'n2-837.plc2.org']
+01:== added in slice oneidg_slice836 foreign  ['n2-836.plc2.org', 'n2-837.plc2.org', 'n2-838.plc2.org']
+01:== added in slice oneidh_slice837 foreign  ['n2-837.plc2.org', 'n2-838.plc2.org', 'n2-839.plc2.org']
+01:== added in slice oneidi_slice838 foreign  ['n2-838.plc2.org', 'n2-839.plc2.org', 'n2-840.plc2.org']
+01:== added in slice oneidj_slice839 foreign  ['n2-839.plc2.org', 'n2-840.plc2.org', 'n2-841.plc2.org']
+01:== added in slice oneiea_slice840 foreign  ['n2-840.plc2.org', 'n2-841.plc2.org', 'n2-842.plc2.org']
+01:== added in slice oneieb_slice841 foreign  ['n2-841.plc2.org', 'n2-842.plc2.org', 'n2-843.plc2.org']
+01:== added in slice oneiec_slice842 foreign  ['n2-842.plc2.org', 'n2-843.plc2.org', 'n2-844.plc2.org']
+01:== added in slice oneied_slice843 foreign  ['n2-843.plc2.org', 'n2-844.plc2.org', 'n2-845.plc2.org']
+01:== added in slice oneiee_slice844 foreign  ['n2-844.plc2.org', 'n2-845.plc2.org', 'n2-846.plc2.org']
+01:== added in slice oneief_slice845 foreign  ['n2-845.plc2.org', 'n2-846.plc2.org', 'n2-847.plc2.org']
+01:== added in slice oneieg_slice846 foreign  ['n2-846.plc2.org', 'n2-847.plc2.org', 'n2-848.plc2.org']
+01:== added in slice oneieh_slice847 foreign  ['n2-847.plc2.org', 'n2-848.plc2.org', 'n2-849.plc2.org']
+01:== added in slice oneiei_slice848 foreign  ['n2-848.plc2.org', 'n2-849.plc2.org', 'n2-850.plc2.org']
+01:== added in slice oneiej_slice849 foreign  ['n2-849.plc2.org', 'n2-850.plc2.org', 'n2-851.plc2.org']
+01:== added in slice oneifa_slice850 foreign  ['n2-850.plc2.org', 'n2-851.plc2.org', 'n2-852.plc2.org']
+01:== added in slice oneifb_slice851 foreign  ['n2-851.plc2.org', 'n2-852.plc2.org', 'n2-853.plc2.org']
+01:== added in slice oneifc_slice852 foreign  ['n2-852.plc2.org', 'n2-853.plc2.org', 'n2-854.plc2.org']
+01:== added in slice oneifd_slice853 foreign  ['n2-853.plc2.org', 'n2-854.plc2.org', 'n2-855.plc2.org']
+01:== added in slice oneife_slice854 foreign  ['n2-854.plc2.org', 'n2-855.plc2.org', 'n2-856.plc2.org']
+01:== added in slice oneiff_slice855 foreign  ['n2-855.plc2.org', 'n2-856.plc2.org', 'n2-857.plc2.org']
+01:== added in slice oneifg_slice856 foreign  ['n2-856.plc2.org', 'n2-857.plc2.org', 'n2-858.plc2.org']
+01:== added in slice oneifh_slice857 foreign  ['n2-857.plc2.org', 'n2-858.plc2.org', 'n2-859.plc2.org']
+01:== added in slice oneifi_slice858 foreign  ['n2-858.plc2.org', 'n2-859.plc2.org', 'n2-860.plc2.org']
+01:== added in slice oneifj_slice859 foreign  ['n2-859.plc2.org', 'n2-860.plc2.org', 'n2-861.plc2.org']
+01:== added in slice oneiga_slice860 foreign  ['n2-860.plc2.org', 'n2-861.plc2.org', 'n2-862.plc2.org']
+01:== added in slice oneigb_slice861 foreign  ['n2-861.plc2.org', 'n2-862.plc2.org', 'n2-863.plc2.org']
+01:== added in slice oneigc_slice862 foreign  ['n2-862.plc2.org', 'n2-863.plc2.org', 'n2-864.plc2.org']
+01:== added in slice oneigd_slice863 foreign  ['n2-863.plc2.org', 'n2-864.plc2.org', 'n2-865.plc2.org']
+01:== added in slice oneige_slice864 foreign  ['n2-864.plc2.org', 'n2-865.plc2.org', 'n2-866.plc2.org']
+01:== added in slice oneigf_slice865 foreign  ['n2-865.plc2.org', 'n2-866.plc2.org', 'n2-867.plc2.org']
+01:== added in slice oneigg_slice866 foreign  ['n2-866.plc2.org', 'n2-867.plc2.org', 'n2-868.plc2.org']
+01:== added in slice oneigh_slice867 foreign  ['n2-867.plc2.org', 'n2-868.plc2.org', 'n2-869.plc2.org']
+01:== added in slice oneigi_slice868 foreign  ['n2-868.plc2.org', 'n2-869.plc2.org', 'n2-870.plc2.org']
+01:== added in slice oneigj_slice869 foreign  ['n2-869.plc2.org', 'n2-870.plc2.org', 'n2-871.plc2.org']
+01:== added in slice oneiha_slice870 foreign  ['n2-870.plc2.org', 'n2-871.plc2.org', 'n2-872.plc2.org']
+01:== added in slice oneihb_slice871 foreign  ['n2-871.plc2.org', 'n2-872.plc2.org', 'n2-873.plc2.org']
+01:== added in slice oneihc_slice872 foreign  ['n2-872.plc2.org', 'n2-873.plc2.org', 'n2-874.plc2.org']
+01:== added in slice oneihd_slice873 foreign  ['n2-873.plc2.org', 'n2-874.plc2.org', 'n2-875.plc2.org']
+01:== added in slice oneihe_slice874 foreign  ['n2-874.plc2.org', 'n2-875.plc2.org', 'n2-876.plc2.org']
+01:== added in slice oneihf_slice875 foreign  ['n2-875.plc2.org', 'n2-876.plc2.org', 'n2-877.plc2.org']
+01:== added in slice oneihg_slice876 foreign  ['n2-876.plc2.org', 'n2-877.plc2.org', 'n2-878.plc2.org']
+01:== added in slice oneihh_slice877 foreign  ['n2-877.plc2.org', 'n2-878.plc2.org', 'n2-879.plc2.org']
+01:== added in slice oneihi_slice878 foreign  ['n2-878.plc2.org', 'n2-879.plc2.org', 'n2-880.plc2.org']
+01:== added in slice oneihj_slice879 foreign  ['n2-879.plc2.org', 'n2-880.plc2.org', 'n2-881.plc2.org']
+01:== added in slice oneiia_slice880 foreign  ['n2-880.plc2.org', 'n2-881.plc2.org', 'n2-882.plc2.org']
+01:== added in slice oneiib_slice881 foreign  ['n2-881.plc2.org', 'n2-882.plc2.org', 'n2-883.plc2.org']
+01:== added in slice oneiic_slice882 foreign  ['n2-882.plc2.org', 'n2-883.plc2.org', 'n2-884.plc2.org']
+01:== added in slice oneiid_slice883 foreign  ['n2-883.plc2.org', 'n2-884.plc2.org', 'n2-885.plc2.org']
+01:== added in slice oneiie_slice884 foreign  ['n2-884.plc2.org', 'n2-885.plc2.org', 'n2-886.plc2.org']
+01:== added in slice oneiif_slice885 foreign  ['n2-885.plc2.org', 'n2-886.plc2.org', 'n2-887.plc2.org']
+01:== added in slice oneiig_slice886 foreign  ['n2-886.plc2.org', 'n2-887.plc2.org', 'n2-888.plc2.org']
+01:== added in slice oneiih_slice887 foreign  ['n2-887.plc2.org', 'n2-888.plc2.org', 'n2-889.plc2.org']
+01:== added in slice oneiii_slice888 foreign  ['n2-888.plc2.org', 'n2-889.plc2.org', 'n2-890.plc2.org']
+01:== added in slice oneiij_slice889 foreign  ['n2-889.plc2.org', 'n2-890.plc2.org', 'n2-891.plc2.org']
+01:== added in slice oneija_slice890 foreign  ['n2-890.plc2.org', 'n2-891.plc2.org', 'n2-892.plc2.org']
+01:== added in slice oneijb_slice891 foreign  ['n2-891.plc2.org', 'n2-892.plc2.org', 'n2-893.plc2.org']
+01:== added in slice oneijc_slice892 foreign  ['n2-892.plc2.org', 'n2-893.plc2.org', 'n2-894.plc2.org']
+01:== added in slice oneijd_slice893 foreign  ['n2-893.plc2.org', 'n2-894.plc2.org', 'n2-895.plc2.org']
+01:== added in slice oneije_slice894 foreign  ['n2-894.plc2.org', 'n2-895.plc2.org', 'n2-896.plc2.org']
+01:== added in slice oneijf_slice895 foreign  ['n2-895.plc2.org', 'n2-896.plc2.org', 'n2-897.plc2.org']
+01:== added in slice oneijg_slice896 foreign  ['n2-896.plc2.org', 'n2-897.plc2.org', 'n2-898.plc2.org']
+01:== added in slice oneijh_slice897 foreign  ['n2-897.plc2.org', 'n2-898.plc2.org', 'n2-899.plc2.org']
+01:== added in slice oneiji_slice898 foreign  ['n2-898.plc2.org', 'n2-899.plc2.org', 'n2-900.plc2.org']
+01:== added in slice oneijj_slice899 foreign  ['n2-899.plc2.org', 'n2-900.plc2.org', 'n2-901.plc2.org']
+01:== added in slice onejaa_slice900 foreign  ['n2-900.plc2.org', 'n2-901.plc2.org', 'n2-902.plc2.org']
+01:== added in slice onejab_slice901 foreign  ['n2-901.plc2.org', 'n2-902.plc2.org', 'n2-903.plc2.org']
+01:== added in slice onejac_slice902 foreign  ['n2-902.plc2.org', 'n2-903.plc2.org', 'n2-904.plc2.org']
+01:== added in slice onejad_slice903 foreign  ['n2-903.plc2.org', 'n2-904.plc2.org', 'n2-905.plc2.org']
+01:== added in slice onejae_slice904 foreign  ['n2-904.plc2.org', 'n2-905.plc2.org', 'n2-906.plc2.org']
+01:== added in slice onejaf_slice905 foreign  ['n2-905.plc2.org', 'n2-906.plc2.org', 'n2-907.plc2.org']
+01:== added in slice onejag_slice906 foreign  ['n2-906.plc2.org', 'n2-907.plc2.org', 'n2-908.plc2.org']
+01:== added in slice onejah_slice907 foreign  ['n2-907.plc2.org', 'n2-908.plc2.org', 'n2-909.plc2.org']
+01:== added in slice onejai_slice908 foreign  ['n2-908.plc2.org', 'n2-909.plc2.org', 'n2-910.plc2.org']
+01:== added in slice onejaj_slice909 foreign  ['n2-909.plc2.org', 'n2-910.plc2.org', 'n2-911.plc2.org']
+01:== added in slice onejba_slice910 foreign  ['n2-910.plc2.org', 'n2-911.plc2.org', 'n2-912.plc2.org']
+01:== added in slice onejbb_slice911 foreign  ['n2-911.plc2.org', 'n2-912.plc2.org', 'n2-913.plc2.org']
+01:== added in slice onejbc_slice912 foreign  ['n2-912.plc2.org', 'n2-913.plc2.org', 'n2-914.plc2.org']
+01:== added in slice onejbd_slice913 foreign  ['n2-913.plc2.org', 'n2-914.plc2.org', 'n2-915.plc2.org']
+01:== added in slice onejbe_slice914 foreign  ['n2-914.plc2.org', 'n2-915.plc2.org', 'n2-916.plc2.org']
+01:== added in slice onejbf_slice915 foreign  ['n2-915.plc2.org', 'n2-916.plc2.org', 'n2-917.plc2.org']
+01:== added in slice onejbg_slice916 foreign  ['n2-916.plc2.org', 'n2-917.plc2.org', 'n2-918.plc2.org']
+01:== added in slice onejbh_slice917 foreign  ['n2-917.plc2.org', 'n2-918.plc2.org', 'n2-919.plc2.org']
+01:== added in slice onejbi_slice918 foreign  ['n2-918.plc2.org', 'n2-919.plc2.org', 'n2-920.plc2.org']
+01:== added in slice onejbj_slice919 foreign  ['n2-919.plc2.org', 'n2-920.plc2.org', 'n2-921.plc2.org']
+01:== added in slice onejca_slice920 foreign  ['n2-920.plc2.org', 'n2-921.plc2.org', 'n2-922.plc2.org']
+01:== added in slice onejcb_slice921 foreign  ['n2-921.plc2.org', 'n2-922.plc2.org', 'n2-923.plc2.org']
+01:== added in slice onejcc_slice922 foreign  ['n2-922.plc2.org', 'n2-923.plc2.org', 'n2-924.plc2.org']
+01:== added in slice onejcd_slice923 foreign  ['n2-923.plc2.org', 'n2-924.plc2.org', 'n2-925.plc2.org']
+01:== added in slice onejce_slice924 foreign  ['n2-924.plc2.org', 'n2-925.plc2.org', 'n2-926.plc2.org']
+01:== added in slice onejcf_slice925 foreign  ['n2-925.plc2.org', 'n2-926.plc2.org', 'n2-927.plc2.org']
+01:== added in slice onejcg_slice926 foreign  ['n2-926.plc2.org', 'n2-927.plc2.org', 'n2-928.plc2.org']
+01:== added in slice onejch_slice927 foreign  ['n2-927.plc2.org', 'n2-928.plc2.org', 'n2-929.plc2.org']
+01:== added in slice onejci_slice928 foreign  ['n2-928.plc2.org', 'n2-929.plc2.org', 'n2-930.plc2.org']
+01:== added in slice onejcj_slice929 foreign  ['n2-929.plc2.org', 'n2-930.plc2.org', 'n2-931.plc2.org']
+01:== added in slice onejda_slice930 foreign  ['n2-930.plc2.org', 'n2-931.plc2.org', 'n2-932.plc2.org']
+01:== added in slice onejdb_slice931 foreign  ['n2-931.plc2.org', 'n2-932.plc2.org', 'n2-933.plc2.org']
+01:== added in slice onejdc_slice932 foreign  ['n2-932.plc2.org', 'n2-933.plc2.org', 'n2-934.plc2.org']
+01:== added in slice onejdd_slice933 foreign  ['n2-933.plc2.org', 'n2-934.plc2.org', 'n2-935.plc2.org']
+01:== added in slice onejde_slice934 foreign  ['n2-934.plc2.org', 'n2-935.plc2.org', 'n2-936.plc2.org']
+01:== added in slice onejdf_slice935 foreign  ['n2-935.plc2.org', 'n2-936.plc2.org', 'n2-937.plc2.org']
+01:== added in slice onejdg_slice936 foreign  ['n2-936.plc2.org', 'n2-937.plc2.org', 'n2-938.plc2.org']
+01:== added in slice onejdh_slice937 foreign  ['n2-937.plc2.org', 'n2-938.plc2.org', 'n2-939.plc2.org']
+01:== added in slice onejdi_slice938 foreign  ['n2-938.plc2.org', 'n2-939.plc2.org', 'n2-940.plc2.org']
+01:== added in slice onejdj_slice939 foreign  ['n2-939.plc2.org', 'n2-940.plc2.org', 'n2-941.plc2.org']
+01:== added in slice onejea_slice940 foreign  ['n2-940.plc2.org', 'n2-941.plc2.org', 'n2-942.plc2.org']
+01:== added in slice onejeb_slice941 foreign  ['n2-941.plc2.org', 'n2-942.plc2.org', 'n2-943.plc2.org']
+01:== added in slice onejec_slice942 foreign  ['n2-942.plc2.org', 'n2-943.plc2.org', 'n2-944.plc2.org']
+01:== added in slice onejed_slice943 foreign  ['n2-943.plc2.org', 'n2-944.plc2.org', 'n2-945.plc2.org']
+01:== added in slice onejee_slice944 foreign  ['n2-944.plc2.org', 'n2-945.plc2.org', 'n2-946.plc2.org']
+01:== added in slice onejef_slice945 foreign  ['n2-945.plc2.org', 'n2-946.plc2.org', 'n2-947.plc2.org']
+01:== added in slice onejeg_slice946 foreign  ['n2-946.plc2.org', 'n2-947.plc2.org', 'n2-948.plc2.org']
+01:== added in slice onejeh_slice947 foreign  ['n2-947.plc2.org', 'n2-948.plc2.org', 'n2-949.plc2.org']
+01:== added in slice onejei_slice948 foreign  ['n2-948.plc2.org', 'n2-949.plc2.org', 'n2-950.plc2.org']
+01:== added in slice onejej_slice949 foreign  ['n2-949.plc2.org', 'n2-950.plc2.org', 'n2-951.plc2.org']
+01:== added in slice onejfa_slice950 foreign  ['n2-950.plc2.org', 'n2-951.plc2.org', 'n2-952.plc2.org']
+01:== added in slice onejfb_slice951 foreign  ['n2-951.plc2.org', 'n2-952.plc2.org', 'n2-953.plc2.org']
+01:== added in slice onejfc_slice952 foreign  ['n2-952.plc2.org', 'n2-953.plc2.org', 'n2-954.plc2.org']
+01:== added in slice onejfd_slice953 foreign  ['n2-953.plc2.org', 'n2-954.plc2.org', 'n2-955.plc2.org']
+01:== added in slice onejfe_slice954 foreign  ['n2-954.plc2.org', 'n2-955.plc2.org', 'n2-956.plc2.org']
+01:== added in slice onejff_slice955 foreign  ['n2-955.plc2.org', 'n2-956.plc2.org', 'n2-957.plc2.org']
+01:== added in slice onejfg_slice956 foreign  ['n2-956.plc2.org', 'n2-957.plc2.org', 'n2-958.plc2.org']
+01:== added in slice onejfh_slice957 foreign  ['n2-957.plc2.org', 'n2-958.plc2.org', 'n2-959.plc2.org']
+01:== added in slice onejfi_slice958 foreign  ['n2-958.plc2.org', 'n2-959.plc2.org', 'n2-960.plc2.org']
+01:== added in slice onejfj_slice959 foreign  ['n2-959.plc2.org', 'n2-960.plc2.org', 'n2-961.plc2.org']
+01:== added in slice onejga_slice960 foreign  ['n2-960.plc2.org', 'n2-961.plc2.org', 'n2-962.plc2.org']
+01:== added in slice onejgb_slice961 foreign  ['n2-961.plc2.org', 'n2-962.plc2.org', 'n2-963.plc2.org']
+01:== added in slice onejgc_slice962 foreign  ['n2-962.plc2.org', 'n2-963.plc2.org', 'n2-964.plc2.org']
+01:== added in slice onejgd_slice963 foreign  ['n2-963.plc2.org', 'n2-964.plc2.org', 'n2-965.plc2.org']
+01:== added in slice onejge_slice964 foreign  ['n2-964.plc2.org', 'n2-965.plc2.org', 'n2-966.plc2.org']
+01:== added in slice onejgf_slice965 foreign  ['n2-965.plc2.org', 'n2-966.plc2.org', 'n2-967.plc2.org']
+01:== added in slice onejgg_slice966 foreign  ['n2-966.plc2.org', 'n2-967.plc2.org', 'n2-968.plc2.org']
+01:== added in slice onejgh_slice967 foreign  ['n2-967.plc2.org', 'n2-968.plc2.org', 'n2-969.plc2.org']
+01:== added in slice onejgi_slice968 foreign  ['n2-968.plc2.org', 'n2-969.plc2.org', 'n2-970.plc2.org']
+01:== added in slice onejgj_slice969 foreign  ['n2-969.plc2.org', 'n2-970.plc2.org', 'n2-971.plc2.org']
+01:== added in slice onejha_slice970 foreign  ['n2-970.plc2.org', 'n2-971.plc2.org', 'n2-972.plc2.org']
+01:== added in slice onejhb_slice971 foreign  ['n2-971.plc2.org', 'n2-972.plc2.org', 'n2-973.plc2.org']
+01:== added in slice onejhc_slice972 foreign  ['n2-972.plc2.org', 'n2-973.plc2.org', 'n2-974.plc2.org']
+01:== added in slice onejhd_slice973 foreign  ['n2-973.plc2.org', 'n2-974.plc2.org', 'n2-975.plc2.org']
+01:== added in slice onejhe_slice974 foreign  ['n2-974.plc2.org', 'n2-975.plc2.org', 'n2-976.plc2.org']
+01:== added in slice onejhf_slice975 foreign  ['n2-975.plc2.org', 'n2-976.plc2.org', 'n2-977.plc2.org']
+01:== added in slice onejhg_slice976 foreign  ['n2-976.plc2.org', 'n2-977.plc2.org', 'n2-978.plc2.org']
+01:== added in slice onejhh_slice977 foreign  ['n2-977.plc2.org', 'n2-978.plc2.org', 'n2-979.plc2.org']
+01:== added in slice onejhi_slice978 foreign  ['n2-978.plc2.org', 'n2-979.plc2.org', 'n2-980.plc2.org']
+01:== added in slice onejhj_slice979 foreign  ['n2-979.plc2.org', 'n2-980.plc2.org', 'n2-981.plc2.org']
+01:== added in slice onejia_slice980 foreign  ['n2-980.plc2.org', 'n2-981.plc2.org', 'n2-982.plc2.org']
+01:== added in slice onejib_slice981 foreign  ['n2-981.plc2.org', 'n2-982.plc2.org', 'n2-983.plc2.org']
+01:== added in slice onejic_slice982 foreign  ['n2-982.plc2.org', 'n2-983.plc2.org', 'n2-984.plc2.org']
+01:== added in slice onejid_slice983 foreign  ['n2-983.plc2.org', 'n2-984.plc2.org', 'n2-985.plc2.org']
+01:== added in slice onejie_slice984 foreign  ['n2-984.plc2.org', 'n2-985.plc2.org', 'n2-986.plc2.org']
+01:== added in slice onejif_slice985 foreign  ['n2-985.plc2.org', 'n2-986.plc2.org', 'n2-987.plc2.org']
+01:== added in slice onejig_slice986 foreign  ['n2-986.plc2.org', 'n2-987.plc2.org', 'n2-988.plc2.org']
+01:== added in slice onejih_slice987 foreign  ['n2-987.plc2.org', 'n2-988.plc2.org', 'n2-989.plc2.org']
+01:== added in slice onejii_slice988 foreign  ['n2-988.plc2.org', 'n2-989.plc2.org', 'n2-990.plc2.org']
+01:== added in slice onejij_slice989 foreign  ['n2-989.plc2.org', 'n2-990.plc2.org', 'n2-991.plc2.org']
+01:== added in slice onejja_slice990 foreign  ['n2-990.plc2.org', 'n2-991.plc2.org', 'n2-992.plc2.org']
+01:== added in slice onejjb_slice991 foreign  ['n2-991.plc2.org', 'n2-992.plc2.org', 'n2-993.plc2.org']
+01:== added in slice onejjc_slice992 foreign  ['n2-992.plc2.org', 'n2-993.plc2.org', 'n2-994.plc2.org']
+01:== added in slice onejjd_slice993 foreign  ['n2-993.plc2.org', 'n2-994.plc2.org', 'n2-995.plc2.org']
+01:== added in slice onejje_slice994 foreign  ['n2-994.plc2.org', 'n2-995.plc2.org', 'n2-996.plc2.org']
+01:== added in slice onejjf_slice995 foreign  ['n2-995.plc2.org', 'n2-996.plc2.org', 'n2-997.plc2.org']
+01:== added in slice onejjg_slice996 foreign  ['n2-996.plc2.org', 'n2-997.plc2.org', 'n2-998.plc2.org']
+01:== added in slice onejjh_slice997 foreign  ['n2-997.plc2.org', 'n2-998.plc2.org', 'n2-999.plc2.org']
+01:== added in slice onejji_slice998 foreign  ['n2-998.plc2.org', 'n2-999.plc2.org', 'n2-1000.plc2.org']
+01:== added in slice onejjj_slice999 foreign  ['n2-999.plc2.org', 'n2-1000.plc2.org', 'n2-1001.plc2.org']
+01:== added in slice onebaaa_slice1000 foreign  ['n2-1000.plc2.org', 'n2-1001.plc2.org', 'n2-1002.plc2.org']
+01:== added in slice oneb_slice1001 foreign  ['n2-1001.plc2.org', 'n2-1002.plc2.org', 'n2-1003.plc2.org']
+01:== added in slice onec_slice1002 foreign  ['n2-1002.plc2.org', 'n2-1003.plc2.org', 'n2-1004.plc2.org']
+01:== added in slice oned_slice1003 foreign  ['n2-1003.plc2.org', 'n2-1004.plc2.org', 'n2-1005.plc2.org']
+01:== added in slice onee_slice1004 foreign  ['n2-1004.plc2.org', 'n2-1005.plc2.org', 'n2-1006.plc2.org']
+01:== added in slice onef_slice1005 foreign  ['n2-1005.plc2.org', 'n2-1006.plc2.org', 'n2-1007.plc2.org']
+01:== added in slice oneg_slice1006 foreign  ['n2-1006.plc2.org', 'n2-1007.plc2.org', 'n2-1008.plc2.org']
+01:== added in slice oneh_slice1007 foreign  ['n2-1007.plc2.org', 'n2-1008.plc2.org', 'n2-1009.plc2.org']
+01:== added in slice onei_slice1008 foreign  ['n2-1008.plc2.org', 'n2-1009.plc2.org', 'n2-1010.plc2.org']
+01:== added in slice onej_slice1009 foreign  ['n2-1009.plc2.org', 'n2-1010.plc2.org', 'n2-1011.plc2.org']
+01:== added in slice oneba_slice1010 foreign  ['n2-1010.plc2.org', 'n2-1011.plc2.org', 'n2-1012.plc2.org']
+01:== added in slice onebb_slice1011 foreign  ['n2-1011.plc2.org', 'n2-1012.plc2.org', 'n2-1013.plc2.org']
+01:== added in slice onebc_slice1012 foreign  ['n2-1012.plc2.org', 'n2-1013.plc2.org', 'n2-1014.plc2.org']
+01:== added in slice onebd_slice1013 foreign  ['n2-1013.plc2.org', 'n2-1014.plc2.org', 'n2-1015.plc2.org']
+01:== added in slice onebe_slice1014 foreign  ['n2-1014.plc2.org', 'n2-1015.plc2.org', 'n2-1016.plc2.org']
+01:== added in slice onebf_slice1015 foreign  ['n2-1015.plc2.org', 'n2-1016.plc2.org', 'n2-1017.plc2.org']
+01:== added in slice onebg_slice1016 foreign  ['n2-1016.plc2.org', 'n2-1017.plc2.org', 'n2-1018.plc2.org']
+01:== added in slice onebh_slice1017 foreign  ['n2-1017.plc2.org', 'n2-1018.plc2.org', 'n2-1019.plc2.org']
+01:== added in slice onebi_slice1018 foreign  ['n2-1018.plc2.org', 'n2-1019.plc2.org', 'n2-1020.plc2.org']
+01:== added in slice onebj_slice1019 foreign  ['n2-1019.plc2.org', 'n2-1020.plc2.org', 'n2-1021.plc2.org']
+01:== added in slice oneca_slice1020 foreign  ['n2-1020.plc2.org', 'n2-1021.plc2.org', 'n2-1022.plc2.org']
+01:== added in slice onecb_slice1021 foreign  ['n2-1021.plc2.org', 'n2-1022.plc2.org', 'n2-1023.plc2.org']
+01:== added in slice onecc_slice1022 foreign  ['n2-1022.plc2.org', 'n2-1023.plc2.org', 'n2-1024.plc2.org']
+01:== added in slice onecd_slice1023 foreign  ['n2-1023.plc2.org', 'n2-1024.plc2.org', 'n2-1025.plc2.org']
+01:== added in slice onece_slice1024 foreign  ['n2-1024.plc2.org', 'n2-1025.plc2.org', 'n2-1026.plc2.org']
+01:== added in slice onecf_slice1025 foreign  ['n2-1025.plc2.org', 'n2-1026.plc2.org', 'n2-1027.plc2.org']
+01:== added in slice onecg_slice1026 foreign  ['n2-1026.plc2.org', 'n2-1027.plc2.org', 'n2-1028.plc2.org']
+01:== added in slice onech_slice1027 foreign  ['n2-1027.plc2.org', 'n2-1028.plc2.org', 'n2-1029.plc2.org']
+01:== added in slice oneci_slice1028 foreign  ['n2-1028.plc2.org', 'n2-1029.plc2.org', 'n2-1030.plc2.org']
+01:== added in slice onecj_slice1029 foreign  ['n2-1029.plc2.org', 'n2-1030.plc2.org', 'n2-1031.plc2.org']
+01:== added in slice oneda_slice1030 foreign  ['n2-1030.plc2.org', 'n2-1031.plc2.org', 'n2-1032.plc2.org']
+01:== added in slice onedb_slice1031 foreign  ['n2-1031.plc2.org', 'n2-1032.plc2.org', 'n2-1033.plc2.org']
+01:== added in slice onedc_slice1032 foreign  ['n2-1032.plc2.org', 'n2-1033.plc2.org', 'n2-1034.plc2.org']
+01:== added in slice onedd_slice1033 foreign  ['n2-1033.plc2.org', 'n2-1034.plc2.org', 'n2-1035.plc2.org']
+01:== added in slice onede_slice1034 foreign  ['n2-1034.plc2.org', 'n2-1035.plc2.org', 'n2-1036.plc2.org']
+01:== added in slice onedf_slice1035 foreign  ['n2-1035.plc2.org', 'n2-1036.plc2.org', 'n2-1037.plc2.org']
+01:== added in slice onedg_slice1036 foreign  ['n2-1036.plc2.org', 'n2-1037.plc2.org', 'n2-1038.plc2.org']
+01:== added in slice onedh_slice1037 foreign  ['n2-1037.plc2.org', 'n2-1038.plc2.org', 'n2-1039.plc2.org']
+01:== added in slice onedi_slice1038 foreign  ['n2-1038.plc2.org', 'n2-1039.plc2.org', 'n2-1040.plc2.org']
+01:== added in slice onedj_slice1039 foreign  ['n2-1039.plc2.org', 'n2-1040.plc2.org', 'n2-1041.plc2.org']
+01:== added in slice oneea_slice1040 foreign  ['n2-1040.plc2.org', 'n2-1041.plc2.org', 'n2-1042.plc2.org']
+01:== added in slice oneeb_slice1041 foreign  ['n2-1041.plc2.org', 'n2-1042.plc2.org', 'n2-1043.plc2.org']
+01:== added in slice oneec_slice1042 foreign  ['n2-1042.plc2.org', 'n2-1043.plc2.org', 'n2-1044.plc2.org']
+01:== added in slice oneed_slice1043 foreign  ['n2-1043.plc2.org', 'n2-1044.plc2.org', 'n2-1045.plc2.org']
+01:== added in slice oneee_slice1044 foreign  ['n2-1044.plc2.org', 'n2-1045.plc2.org', 'n2-1046.plc2.org']
+01:== added in slice oneef_slice1045 foreign  ['n2-1045.plc2.org', 'n2-1046.plc2.org', 'n2-1047.plc2.org']
+01:== added in slice oneeg_slice1046 foreign  ['n2-1046.plc2.org', 'n2-1047.plc2.org', 'n2-1048.plc2.org']
+01:== added in slice oneeh_slice1047 foreign  ['n2-1047.plc2.org', 'n2-1048.plc2.org', 'n2-1049.plc2.org']
+01:== added in slice oneei_slice1048 foreign  ['n2-1048.plc2.org', 'n2-1049.plc2.org', 'n2-1050.plc2.org']
+01:== added in slice oneej_slice1049 foreign  ['n2-1049.plc2.org', 'n2-1050.plc2.org', 'n2-1051.plc2.org']
+01:== added in slice onefa_slice1050 foreign  ['n2-1050.plc2.org', 'n2-1051.plc2.org', 'n2-1052.plc2.org']
+01:== added in slice onefb_slice1051 foreign  ['n2-1051.plc2.org', 'n2-1052.plc2.org', 'n2-1053.plc2.org']
+01:== added in slice onefc_slice1052 foreign  ['n2-1052.plc2.org', 'n2-1053.plc2.org', 'n2-1054.plc2.org']
+01:== added in slice onefd_slice1053 foreign  ['n2-1053.plc2.org', 'n2-1054.plc2.org', 'n2-1055.plc2.org']
+01:== added in slice onefe_slice1054 foreign  ['n2-1054.plc2.org', 'n2-1055.plc2.org', 'n2-1056.plc2.org']
+01:== added in slice oneff_slice1055 foreign  ['n2-1055.plc2.org', 'n2-1056.plc2.org', 'n2-1057.plc2.org']
+01:== added in slice onefg_slice1056 foreign  ['n2-1056.plc2.org', 'n2-1057.plc2.org', 'n2-1058.plc2.org']
+01:== added in slice onefh_slice1057 foreign  ['n2-1057.plc2.org', 'n2-1058.plc2.org', 'n2-1059.plc2.org']
+01:== added in slice onefi_slice1058 foreign  ['n2-1058.plc2.org', 'n2-1059.plc2.org', 'n2-1060.plc2.org']
+01:== added in slice onefj_slice1059 foreign  ['n2-1059.plc2.org', 'n2-1060.plc2.org', 'n2-1061.plc2.org']
+01:== added in slice onega_slice1060 foreign  ['n2-1060.plc2.org', 'n2-1061.plc2.org', 'n2-1062.plc2.org']
+01:== added in slice onegb_slice1061 foreign  ['n2-1061.plc2.org', 'n2-1062.plc2.org', 'n2-1063.plc2.org']
+01:== added in slice onegc_slice1062 foreign  ['n2-1062.plc2.org', 'n2-1063.plc2.org', 'n2-1064.plc2.org']
+01:== added in slice onegd_slice1063 foreign  ['n2-1063.plc2.org', 'n2-1064.plc2.org', 'n2-1065.plc2.org']
+01:== added in slice onege_slice1064 foreign  ['n2-1064.plc2.org', 'n2-1065.plc2.org', 'n2-1066.plc2.org']
+01:== added in slice onegf_slice1065 foreign  ['n2-1065.plc2.org', 'n2-1066.plc2.org', 'n2-1067.plc2.org']
+01:== added in slice onegg_slice1066 foreign  ['n2-1066.plc2.org', 'n2-1067.plc2.org', 'n2-1068.plc2.org']
+01:== added in slice onegh_slice1067 foreign  ['n2-1067.plc2.org', 'n2-1068.plc2.org', 'n2-1069.plc2.org']
+01:== added in slice onegi_slice1068 foreign  ['n2-1068.plc2.org', 'n2-1069.plc2.org', 'n2-1070.plc2.org']
+01:== added in slice onegj_slice1069 foreign  ['n2-1069.plc2.org', 'n2-1070.plc2.org', 'n2-1071.plc2.org']
+01:== added in slice oneha_slice1070 foreign  ['n2-1070.plc2.org', 'n2-1071.plc2.org', 'n2-1072.plc2.org']
+01:== added in slice onehb_slice1071 foreign  ['n2-1071.plc2.org', 'n2-1072.plc2.org', 'n2-1073.plc2.org']
+01:== added in slice onehc_slice1072 foreign  ['n2-1072.plc2.org', 'n2-1073.plc2.org', 'n2-1074.plc2.org']
+01:== added in slice onehd_slice1073 foreign  ['n2-1073.plc2.org', 'n2-1074.plc2.org', 'n2-1075.plc2.org']
+01:== added in slice onehe_slice1074 foreign  ['n2-1074.plc2.org', 'n2-1075.plc2.org', 'n2-1076.plc2.org']
+01:== added in slice onehf_slice1075 foreign  ['n2-1075.plc2.org', 'n2-1076.plc2.org', 'n2-1077.plc2.org']
+01:== added in slice onehg_slice1076 foreign  ['n2-1076.plc2.org', 'n2-1077.plc2.org', 'n2-1078.plc2.org']
+01:== added in slice onehh_slice1077 foreign  ['n2-1077.plc2.org', 'n2-1078.plc2.org', 'n2-1079.plc2.org']
+01:== added in slice onehi_slice1078 foreign  ['n2-1078.plc2.org', 'n2-1079.plc2.org', 'n2-1080.plc2.org']
+01:== added in slice onehj_slice1079 foreign  ['n2-1079.plc2.org', 'n2-1080.plc2.org', 'n2-1081.plc2.org']
+01:== added in slice oneia_slice1080 foreign  ['n2-1080.plc2.org', 'n2-1081.plc2.org', 'n2-1082.plc2.org']
+01:== added in slice oneib_slice1081 foreign  ['n2-1081.plc2.org', 'n2-1082.plc2.org', 'n2-1083.plc2.org']
+01:== added in slice oneic_slice1082 foreign  ['n2-1082.plc2.org', 'n2-1083.plc2.org', 'n2-1084.plc2.org']
+01:== added in slice oneid_slice1083 foreign  ['n2-1083.plc2.org', 'n2-1084.plc2.org', 'n2-1085.plc2.org']
+01:== added in slice oneie_slice1084 foreign  ['n2-1084.plc2.org', 'n2-1085.plc2.org', 'n2-1086.plc2.org']
+01:== added in slice oneif_slice1085 foreign  ['n2-1085.plc2.org', 'n2-1086.plc2.org', 'n2-1087.plc2.org']
+01:== added in slice oneig_slice1086 foreign  ['n2-1086.plc2.org', 'n2-1087.plc2.org', 'n2-1088.plc2.org']
+01:== added in slice oneih_slice1087 foreign  ['n2-1087.plc2.org', 'n2-1088.plc2.org', 'n2-1089.plc2.org']
+01:== added in slice oneii_slice1088 foreign  ['n2-1088.plc2.org', 'n2-1089.plc2.org', 'n2-1090.plc2.org']
+01:== added in slice oneij_slice1089 foreign  ['n2-1089.plc2.org', 'n2-1090.plc2.org', 'n2-1091.plc2.org']
+01:== added in slice oneja_slice1090 foreign  ['n2-1090.plc2.org', 'n2-1091.plc2.org', 'n2-1092.plc2.org']
+01:== added in slice onejb_slice1091 foreign  ['n2-1091.plc2.org', 'n2-1092.plc2.org', 'n2-1093.plc2.org']
+01:== added in slice onejc_slice1092 foreign  ['n2-1092.plc2.org', 'n2-1093.plc2.org', 'n2-1094.plc2.org']
+01:== added in slice onejd_slice1093 foreign  ['n2-1093.plc2.org', 'n2-1094.plc2.org', 'n2-1095.plc2.org']
+01:== added in slice oneje_slice1094 foreign  ['n2-1094.plc2.org', 'n2-1095.plc2.org', 'n2-1096.plc2.org']
+01:== added in slice onejf_slice1095 foreign  ['n2-1095.plc2.org', 'n2-1096.plc2.org', 'n2-1097.plc2.org']
+01:== added in slice onejg_slice1096 foreign  ['n2-1096.plc2.org', 'n2-1097.plc2.org', 'n2-1098.plc2.org']
+01:== added in slice onejh_slice1097 foreign  ['n2-1097.plc2.org', 'n2-1098.plc2.org', 'n2-1099.plc2.org']
+01:== added in slice oneji_slice1098 foreign  ['n2-1098.plc2.org', 'n2-1099.plc2.org', 'n2-1100.plc2.org']
+01:== added in slice onejj_slice1099 foreign  ['n2-1099.plc2.org', 'n2-1100.plc2.org', 'n2-1101.plc2.org']
+01:== added in slice onebaa_slice1100 foreign  ['n2-1100.plc2.org', 'n2-1101.plc2.org', 'n2-1102.plc2.org']
+01:== added in slice onebab_slice1101 foreign  ['n2-1101.plc2.org', 'n2-1102.plc2.org', 'n2-1103.plc2.org']
+01:== added in slice onebac_slice1102 foreign  ['n2-1102.plc2.org', 'n2-1103.plc2.org', 'n2-1104.plc2.org']
+01:== added in slice onebad_slice1103 foreign  ['n2-1103.plc2.org', 'n2-1104.plc2.org', 'n2-1105.plc2.org']
+01:== added in slice onebae_slice1104 foreign  ['n2-1104.plc2.org', 'n2-1105.plc2.org', 'n2-1106.plc2.org']
+01:== added in slice onebaf_slice1105 foreign  ['n2-1105.plc2.org', 'n2-1106.plc2.org', 'n2-1107.plc2.org']
+01:== added in slice onebag_slice1106 foreign  ['n2-1106.plc2.org', 'n2-1107.plc2.org', 'n2-1108.plc2.org']
+01:== added in slice onebah_slice1107 foreign  ['n2-1107.plc2.org', 'n2-1108.plc2.org', 'n2-1109.plc2.org']
+01:== added in slice onebai_slice1108 foreign  ['n2-1108.plc2.org', 'n2-1109.plc2.org', 'n2-1110.plc2.org']
+01:== added in slice onebaj_slice1109 foreign  ['n2-1109.plc2.org', 'n2-1110.plc2.org', 'n2-1111.plc2.org']
+01:== added in slice onebba_slice1110 foreign  ['n2-1110.plc2.org', 'n2-1111.plc2.org', 'n2-1112.plc2.org']
+01:== added in slice onebbb_slice1111 foreign  ['n2-1111.plc2.org', 'n2-1112.plc2.org', 'n2-1113.plc2.org']
+01:== added in slice onebbc_slice1112 foreign  ['n2-1112.plc2.org', 'n2-1113.plc2.org', 'n2-1114.plc2.org']
+01:== added in slice onebbd_slice1113 foreign  ['n2-1113.plc2.org', 'n2-1114.plc2.org', 'n2-1115.plc2.org']
+01:== added in slice onebbe_slice1114 foreign  ['n2-1114.plc2.org', 'n2-1115.plc2.org', 'n2-1116.plc2.org']
+01:== added in slice onebbf_slice1115 foreign  ['n2-1115.plc2.org', 'n2-1116.plc2.org', 'n2-1117.plc2.org']
+01:== added in slice onebbg_slice1116 foreign  ['n2-1116.plc2.org', 'n2-1117.plc2.org', 'n2-1118.plc2.org']
+01:== added in slice onebbh_slice1117 foreign  ['n2-1117.plc2.org', 'n2-1118.plc2.org', 'n2-1119.plc2.org']
+01:== added in slice onebbi_slice1118 foreign  ['n2-1118.plc2.org', 'n2-1119.plc2.org', 'n2-1120.plc2.org']
+01:== added in slice onebbj_slice1119 foreign  ['n2-1119.plc2.org', 'n2-1120.plc2.org', 'n2-1121.plc2.org']
+01:== added in slice onebca_slice1120 foreign  ['n2-1120.plc2.org', 'n2-1121.plc2.org', 'n2-1122.plc2.org']
+01:== added in slice onebcb_slice1121 foreign  ['n2-1121.plc2.org', 'n2-1122.plc2.org', 'n2-1123.plc2.org']
+01:== added in slice onebcc_slice1122 foreign  ['n2-1122.plc2.org', 'n2-1123.plc2.org', 'n2-1124.plc2.org']
+01:== added in slice onebcd_slice1123 foreign  ['n2-1123.plc2.org', 'n2-1124.plc2.org', 'n2-1125.plc2.org']
+01:== added in slice onebce_slice1124 foreign  ['n2-1124.plc2.org', 'n2-1125.plc2.org', 'n2-1126.plc2.org']
+01:== added in slice onebcf_slice1125 foreign  ['n2-1125.plc2.org', 'n2-1126.plc2.org', 'n2-1127.plc2.org']
+01:== added in slice onebcg_slice1126 foreign  ['n2-1126.plc2.org', 'n2-1127.plc2.org', 'n2-1128.plc2.org']
+01:== added in slice onebch_slice1127 foreign  ['n2-1127.plc2.org', 'n2-1128.plc2.org', 'n2-1129.plc2.org']
+01:== added in slice onebci_slice1128 foreign  ['n2-1128.plc2.org', 'n2-1129.plc2.org', 'n2-1130.plc2.org']
+01:== added in slice onebcj_slice1129 foreign  ['n2-1129.plc2.org', 'n2-1130.plc2.org', 'n2-1131.plc2.org']
+01:== added in slice onebda_slice1130 foreign  ['n2-1130.plc2.org', 'n2-1131.plc2.org', 'n2-1132.plc2.org']
+01:== added in slice onebdb_slice1131 foreign  ['n2-1131.plc2.org', 'n2-1132.plc2.org', 'n2-1133.plc2.org']
+01:== added in slice onebdc_slice1132 foreign  ['n2-1132.plc2.org', 'n2-1133.plc2.org', 'n2-1134.plc2.org']
+01:== added in slice onebdd_slice1133 foreign  ['n2-1133.plc2.org', 'n2-1134.plc2.org', 'n2-1135.plc2.org']
+01:== added in slice onebde_slice1134 foreign  ['n2-1134.plc2.org', 'n2-1135.plc2.org', 'n2-1136.plc2.org']
+01:== added in slice onebdf_slice1135 foreign  ['n2-1135.plc2.org', 'n2-1136.plc2.org', 'n2-1137.plc2.org']
+01:== added in slice onebdg_slice1136 foreign  ['n2-1136.plc2.org', 'n2-1137.plc2.org', 'n2-1138.plc2.org']
+01:== added in slice onebdh_slice1137 foreign  ['n2-1137.plc2.org', 'n2-1138.plc2.org', 'n2-1139.plc2.org']
+01:== added in slice onebdi_slice1138 foreign  ['n2-1138.plc2.org', 'n2-1139.plc2.org', 'n2-1140.plc2.org']
+01:== added in slice onebdj_slice1139 foreign  ['n2-1139.plc2.org', 'n2-1140.plc2.org', 'n2-1141.plc2.org']
+01:== added in slice onebea_slice1140 foreign  ['n2-1140.plc2.org', 'n2-1141.plc2.org', 'n2-1142.plc2.org']
+01:== added in slice onebeb_slice1141 foreign  ['n2-1141.plc2.org', 'n2-1142.plc2.org', 'n2-1143.plc2.org']
+01:== added in slice onebec_slice1142 foreign  ['n2-1142.plc2.org', 'n2-1143.plc2.org', 'n2-1144.plc2.org']
+01:== added in slice onebed_slice1143 foreign  ['n2-1143.plc2.org', 'n2-1144.plc2.org', 'n2-1145.plc2.org']
+01:== added in slice onebee_slice1144 foreign  ['n2-1144.plc2.org', 'n2-1145.plc2.org', 'n2-1146.plc2.org']
+01:== added in slice onebef_slice1145 foreign  ['n2-1145.plc2.org', 'n2-1146.plc2.org', 'n2-1147.plc2.org']
+01:== added in slice onebeg_slice1146 foreign  ['n2-1146.plc2.org', 'n2-1147.plc2.org', 'n2-1148.plc2.org']
+01:== added in slice onebeh_slice1147 foreign  ['n2-1147.plc2.org', 'n2-1148.plc2.org', 'n2-1149.plc2.org']
+01:== added in slice onebei_slice1148 foreign  ['n2-1148.plc2.org', 'n2-1149.plc2.org', 'n2-1150.plc2.org']
+01:== added in slice onebej_slice1149 foreign  ['n2-1149.plc2.org', 'n2-1150.plc2.org', 'n2-1151.plc2.org']
+01:== added in slice onebfa_slice1150 foreign  ['n2-1150.plc2.org', 'n2-1151.plc2.org', 'n2-1152.plc2.org']
+01:== added in slice onebfb_slice1151 foreign  ['n2-1151.plc2.org', 'n2-1152.plc2.org', 'n2-1153.plc2.org']
+01:== added in slice onebfc_slice1152 foreign  ['n2-1152.plc2.org', 'n2-1153.plc2.org', 'n2-1154.plc2.org']
+01:== added in slice onebfd_slice1153 foreign  ['n2-1153.plc2.org', 'n2-1154.plc2.org', 'n2-1155.plc2.org']
+01:== added in slice onebfe_slice1154 foreign  ['n2-1154.plc2.org', 'n2-1155.plc2.org', 'n2-1156.plc2.org']
+01:== added in slice onebff_slice1155 foreign  ['n2-1155.plc2.org', 'n2-1156.plc2.org', 'n2-1157.plc2.org']
+01:== added in slice onebfg_slice1156 foreign  ['n2-1156.plc2.org', 'n2-1157.plc2.org', 'n2-1158.plc2.org']
+01:== added in slice onebfh_slice1157 foreign  ['n2-1157.plc2.org', 'n2-1158.plc2.org', 'n2-1159.plc2.org']
+01:== added in slice onebfi_slice1158 foreign  ['n2-1158.plc2.org', 'n2-1159.plc2.org', 'n2-1160.plc2.org']
+01:== added in slice onebfj_slice1159 foreign  ['n2-1159.plc2.org', 'n2-1160.plc2.org', 'n2-1161.plc2.org']
+01:== added in slice onebga_slice1160 foreign  ['n2-1160.plc2.org', 'n2-1161.plc2.org', 'n2-1162.plc2.org']
+01:== added in slice onebgb_slice1161 foreign  ['n2-1161.plc2.org', 'n2-1162.plc2.org', 'n2-1163.plc2.org']
+01:== added in slice onebgc_slice1162 foreign  ['n2-1162.plc2.org', 'n2-1163.plc2.org', 'n2-1164.plc2.org']
+01:== added in slice onebgd_slice1163 foreign  ['n2-1163.plc2.org', 'n2-1164.plc2.org', 'n2-1165.plc2.org']
+01:== added in slice onebge_slice1164 foreign  ['n2-1164.plc2.org', 'n2-1165.plc2.org', 'n2-1166.plc2.org']
+01:== added in slice onebgf_slice1165 foreign  ['n2-1165.plc2.org', 'n2-1166.plc2.org', 'n2-1167.plc2.org']
+01:== added in slice onebgg_slice1166 foreign  ['n2-1166.plc2.org', 'n2-1167.plc2.org', 'n2-1168.plc2.org']
+01:== added in slice onebgh_slice1167 foreign  ['n2-1167.plc2.org', 'n2-1168.plc2.org', 'n2-1169.plc2.org']
+01:== added in slice onebgi_slice1168 foreign  ['n2-1168.plc2.org', 'n2-1169.plc2.org', 'n2-1170.plc2.org']
+01:== added in slice onebgj_slice1169 foreign  ['n2-1169.plc2.org', 'n2-1170.plc2.org', 'n2-1171.plc2.org']
+01:== added in slice onebha_slice1170 foreign  ['n2-1170.plc2.org', 'n2-1171.plc2.org', 'n2-1172.plc2.org']
+01:== added in slice onebhb_slice1171 foreign  ['n2-1171.plc2.org', 'n2-1172.plc2.org', 'n2-1173.plc2.org']
+01:== added in slice onebhc_slice1172 foreign  ['n2-1172.plc2.org', 'n2-1173.plc2.org', 'n2-1174.plc2.org']
+01:== added in slice onebhd_slice1173 foreign  ['n2-1173.plc2.org', 'n2-1174.plc2.org', 'n2-1175.plc2.org']
+01:== added in slice onebhe_slice1174 foreign  ['n2-1174.plc2.org', 'n2-1175.plc2.org', 'n2-1176.plc2.org']
+01:== added in slice onebhf_slice1175 foreign  ['n2-1175.plc2.org', 'n2-1176.plc2.org', 'n2-1177.plc2.org']
+01:== added in slice onebhg_slice1176 foreign  ['n2-1176.plc2.org', 'n2-1177.plc2.org', 'n2-1178.plc2.org']
+01:== added in slice onebhh_slice1177 foreign  ['n2-1177.plc2.org', 'n2-1178.plc2.org', 'n2-1179.plc2.org']
+01:== added in slice onebhi_slice1178 foreign  ['n2-1178.plc2.org', 'n2-1179.plc2.org', 'n2-1180.plc2.org']
+01:== added in slice onebhj_slice1179 foreign  ['n2-1179.plc2.org', 'n2-1180.plc2.org', 'n2-1181.plc2.org']
+01:== added in slice onebia_slice1180 foreign  ['n2-1180.plc2.org', 'n2-1181.plc2.org', 'n2-1182.plc2.org']
+01:== added in slice onebib_slice1181 foreign  ['n2-1181.plc2.org', 'n2-1182.plc2.org', 'n2-1183.plc2.org']
+01:== added in slice onebic_slice1182 foreign  ['n2-1182.plc2.org', 'n2-1183.plc2.org', 'n2-1184.plc2.org']
+01:== added in slice onebid_slice1183 foreign  ['n2-1183.plc2.org', 'n2-1184.plc2.org', 'n2-1185.plc2.org']
+01:== added in slice onebie_slice1184 foreign  ['n2-1184.plc2.org', 'n2-1185.plc2.org', 'n2-1186.plc2.org']
+01:== added in slice onebif_slice1185 foreign  ['n2-1185.plc2.org', 'n2-1186.plc2.org', 'n2-1187.plc2.org']
+01:== added in slice onebig_slice1186 foreign  ['n2-1186.plc2.org', 'n2-1187.plc2.org', 'n2-1188.plc2.org']
+01:== added in slice onebih_slice1187 foreign  ['n2-1187.plc2.org', 'n2-1188.plc2.org', 'n2-1189.plc2.org']
+01:== added in slice onebii_slice1188 foreign  ['n2-1188.plc2.org', 'n2-1189.plc2.org', 'n2-1190.plc2.org']
+01:== added in slice onebij_slice1189 foreign  ['n2-1189.plc2.org', 'n2-1190.plc2.org', 'n2-1191.plc2.org']
+01:== added in slice onebja_slice1190 foreign  ['n2-1190.plc2.org', 'n2-1191.plc2.org', 'n2-1192.plc2.org']
+01:== added in slice onebjb_slice1191 foreign  ['n2-1191.plc2.org', 'n2-1192.plc2.org', 'n2-1193.plc2.org']
+01:== added in slice onebjc_slice1192 foreign  ['n2-1192.plc2.org', 'n2-1193.plc2.org', 'n2-1194.plc2.org']
+01:== added in slice onebjd_slice1193 foreign  ['n2-1193.plc2.org', 'n2-1194.plc2.org', 'n2-1195.plc2.org']
+01:== added in slice onebje_slice1194 foreign  ['n2-1194.plc2.org', 'n2-1195.plc2.org', 'n2-1196.plc2.org']
+01:== added in slice onebjf_slice1195 foreign  ['n2-1195.plc2.org', 'n2-1196.plc2.org', 'n2-1197.plc2.org']
+01:== added in slice onebjg_slice1196 foreign  ['n2-1196.plc2.org', 'n2-1197.plc2.org', 'n2-1198.plc2.org']
+01:== added in slice onebjh_slice1197 foreign  ['n2-1197.plc2.org', 'n2-1198.plc2.org', 'n2-1199.plc2.org']
+01:== added in slice onebji_slice1198 foreign  ['n2-1198.plc2.org', 'n2-1199.plc2.org', 'n2-1200.plc2.org']
+01:== added in slice onebjj_slice1199 foreign  ['n2-1199.plc2.org', 'n2-1200.plc2.org', 'n2-1201.plc2.org']
+01:== added in slice onecaa_slice1200 foreign  ['n2-1200.plc2.org', 'n2-1201.plc2.org', 'n2-1202.plc2.org']
+01:== added in slice onecab_slice1201 foreign  ['n2-1201.plc2.org', 'n2-1202.plc2.org', 'n2-1203.plc2.org']
+01:== added in slice onecac_slice1202 foreign  ['n2-1202.plc2.org', 'n2-1203.plc2.org', 'n2-1204.plc2.org']
+01:== added in slice onecad_slice1203 foreign  ['n2-1203.plc2.org', 'n2-1204.plc2.org', 'n2-1205.plc2.org']
+01:== added in slice onecae_slice1204 foreign  ['n2-1204.plc2.org', 'n2-1205.plc2.org', 'n2-1206.plc2.org']
+01:== added in slice onecaf_slice1205 foreign  ['n2-1205.plc2.org', 'n2-1206.plc2.org', 'n2-1207.plc2.org']
+01:== added in slice onecag_slice1206 foreign  ['n2-1206.plc2.org', 'n2-1207.plc2.org', 'n2-1208.plc2.org']
+01:== added in slice onecah_slice1207 foreign  ['n2-1207.plc2.org', 'n2-1208.plc2.org', 'n2-1209.plc2.org']
+01:== added in slice onecai_slice1208 foreign  ['n2-1208.plc2.org', 'n2-1209.plc2.org', 'n2-1210.plc2.org']
+01:== added in slice onecaj_slice1209 foreign  ['n2-1209.plc2.org', 'n2-1210.plc2.org', 'n2-1211.plc2.org']
+01:== added in slice onecba_slice1210 foreign  ['n2-1210.plc2.org', 'n2-1211.plc2.org', 'n2-1212.plc2.org']
+01:== added in slice onecbb_slice1211 foreign  ['n2-1211.plc2.org', 'n2-1212.plc2.org', 'n2-1213.plc2.org']
+01:== added in slice onecbc_slice1212 foreign  ['n2-1212.plc2.org', 'n2-1213.plc2.org', 'n2-1214.plc2.org']
+01:== added in slice onecbd_slice1213 foreign  ['n2-1213.plc2.org', 'n2-1214.plc2.org', 'n2-1215.plc2.org']
+01:== added in slice onecbe_slice1214 foreign  ['n2-1214.plc2.org', 'n2-1215.plc2.org', 'n2-1216.plc2.org']
+01:== added in slice onecbf_slice1215 foreign  ['n2-1215.plc2.org', 'n2-1216.plc2.org', 'n2-1217.plc2.org']
+01:== added in slice onecbg_slice1216 foreign  ['n2-1216.plc2.org', 'n2-1217.plc2.org', 'n2-1218.plc2.org']
+01:== added in slice onecbh_slice1217 foreign  ['n2-1217.plc2.org', 'n2-1218.plc2.org', 'n2-1219.plc2.org']
+01:== added in slice onecbi_slice1218 foreign  ['n2-1218.plc2.org', 'n2-1219.plc2.org', 'n2-1220.plc2.org']
+01:== added in slice onecbj_slice1219 foreign  ['n2-1219.plc2.org', 'n2-1220.plc2.org', 'n2-1221.plc2.org']
+01:== added in slice onecca_slice1220 foreign  ['n2-1220.plc2.org', 'n2-1221.plc2.org', 'n2-1222.plc2.org']
+01:== added in slice oneccb_slice1221 foreign  ['n2-1221.plc2.org', 'n2-1222.plc2.org', 'n2-1223.plc2.org']
+01:== added in slice oneccc_slice1222 foreign  ['n2-1222.plc2.org', 'n2-1223.plc2.org', 'n2-1224.plc2.org']
+01:== added in slice oneccd_slice1223 foreign  ['n2-1223.plc2.org', 'n2-1224.plc2.org', 'n2-1225.plc2.org']
+01:== added in slice onecce_slice1224 foreign  ['n2-1224.plc2.org', 'n2-1225.plc2.org', 'n2-1226.plc2.org']
+01:== added in slice oneccf_slice1225 foreign  ['n2-1225.plc2.org', 'n2-1226.plc2.org', 'n2-1227.plc2.org']
+01:== added in slice oneccg_slice1226 foreign  ['n2-1226.plc2.org', 'n2-1227.plc2.org', 'n2-1228.plc2.org']
+01:== added in slice onecch_slice1227 foreign  ['n2-1227.plc2.org', 'n2-1228.plc2.org', 'n2-1229.plc2.org']
+01:== added in slice onecci_slice1228 foreign  ['n2-1228.plc2.org', 'n2-1229.plc2.org', 'n2-1230.plc2.org']
+01:== added in slice oneccj_slice1229 foreign  ['n2-1229.plc2.org', 'n2-1230.plc2.org', 'n2-1231.plc2.org']
+01:== added in slice onecda_slice1230 foreign  ['n2-1230.plc2.org', 'n2-1231.plc2.org', 'n2-1232.plc2.org']
+01:== added in slice onecdb_slice1231 foreign  ['n2-1231.plc2.org', 'n2-1232.plc2.org', 'n2-1233.plc2.org']
+01:== added in slice onecdc_slice1232 foreign  ['n2-1232.plc2.org', 'n2-1233.plc2.org', 'n2-1234.plc2.org']
+01:== added in slice onecdd_slice1233 foreign  ['n2-1233.plc2.org', 'n2-1234.plc2.org', 'n2-1235.plc2.org']
+01:== added in slice onecde_slice1234 foreign  ['n2-1234.plc2.org', 'n2-1235.plc2.org', 'n2-1236.plc2.org']
+01:== added in slice onecdf_slice1235 foreign  ['n2-1235.plc2.org', 'n2-1236.plc2.org', 'n2-1237.plc2.org']
+01:== added in slice onecdg_slice1236 foreign  ['n2-1236.plc2.org', 'n2-1237.plc2.org', 'n2-1238.plc2.org']
+01:== added in slice onecdh_slice1237 foreign  ['n2-1237.plc2.org', 'n2-1238.plc2.org', 'n2-1239.plc2.org']
+01:== added in slice onecdi_slice1238 foreign  ['n2-1238.plc2.org', 'n2-1239.plc2.org', 'n2-1240.plc2.org']
+01:== added in slice onecdj_slice1239 foreign  ['n2-1239.plc2.org', 'n2-1240.plc2.org', 'n2-1241.plc2.org']
+01:== added in slice onecea_slice1240 foreign  ['n2-1240.plc2.org', 'n2-1241.plc2.org', 'n2-1242.plc2.org']
+01:== added in slice oneceb_slice1241 foreign  ['n2-1241.plc2.org', 'n2-1242.plc2.org', 'n2-1243.plc2.org']
+01:== added in slice onecec_slice1242 foreign  ['n2-1242.plc2.org', 'n2-1243.plc2.org', 'n2-1244.plc2.org']
+01:== added in slice oneced_slice1243 foreign  ['n2-1243.plc2.org', 'n2-1244.plc2.org', 'n2-1245.plc2.org']
+01:== added in slice onecee_slice1244 foreign  ['n2-1244.plc2.org', 'n2-1245.plc2.org', 'n2-1246.plc2.org']
+01:== added in slice onecef_slice1245 foreign  ['n2-1245.plc2.org', 'n2-1246.plc2.org', 'n2-1247.plc2.org']
+01:== added in slice oneceg_slice1246 foreign  ['n2-1246.plc2.org', 'n2-1247.plc2.org', 'n2-1248.plc2.org']
+01:== added in slice oneceh_slice1247 foreign  ['n2-1247.plc2.org', 'n2-1248.plc2.org', 'n2-1249.plc2.org']
+01:== added in slice onecei_slice1248 foreign  ['n2-1248.plc2.org', 'n2-1249.plc2.org', 'n2-1250.plc2.org']
+01:== added in slice onecej_slice1249 foreign  ['n2-1249.plc2.org', 'n2-1250.plc2.org', 'n2-1251.plc2.org']
+01:== added in slice onecfa_slice1250 foreign  ['n2-1250.plc2.org', 'n2-1251.plc2.org', 'n2-1252.plc2.org']
+01:== added in slice onecfb_slice1251 foreign  ['n2-1251.plc2.org', 'n2-1252.plc2.org', 'n2-1253.plc2.org']
+01:== added in slice onecfc_slice1252 foreign  ['n2-1252.plc2.org', 'n2-1253.plc2.org', 'n2-1254.plc2.org']
+01:== added in slice onecfd_slice1253 foreign  ['n2-1253.plc2.org', 'n2-1254.plc2.org', 'n2-1255.plc2.org']
+01:== added in slice onecfe_slice1254 foreign  ['n2-1254.plc2.org', 'n2-1255.plc2.org', 'n2-1256.plc2.org']
+01:== added in slice onecff_slice1255 foreign  ['n2-1255.plc2.org', 'n2-1256.plc2.org', 'n2-1257.plc2.org']
+01:== added in slice onecfg_slice1256 foreign  ['n2-1256.plc2.org', 'n2-1257.plc2.org', 'n2-1258.plc2.org']
+01:== added in slice onecfh_slice1257 foreign  ['n2-1257.plc2.org', 'n2-1258.plc2.org', 'n2-1259.plc2.org']
+01:== added in slice onecfi_slice1258 foreign  ['n2-1258.plc2.org', 'n2-1259.plc2.org', 'n2-1260.plc2.org']
+01:== added in slice onecfj_slice1259 foreign  ['n2-1259.plc2.org', 'n2-1260.plc2.org', 'n2-1261.plc2.org']
+01:== added in slice onecga_slice1260 foreign  ['n2-1260.plc2.org', 'n2-1261.plc2.org', 'n2-1262.plc2.org']
+01:== added in slice onecgb_slice1261 foreign  ['n2-1261.plc2.org', 'n2-1262.plc2.org', 'n2-1263.plc2.org']
+01:== added in slice onecgc_slice1262 foreign  ['n2-1262.plc2.org', 'n2-1263.plc2.org', 'n2-1264.plc2.org']
+01:== added in slice onecgd_slice1263 foreign  ['n2-1263.plc2.org', 'n2-1264.plc2.org', 'n2-1265.plc2.org']
+01:== added in slice onecge_slice1264 foreign  ['n2-1264.plc2.org', 'n2-1265.plc2.org', 'n2-1266.plc2.org']
+01:== added in slice onecgf_slice1265 foreign  ['n2-1265.plc2.org', 'n2-1266.plc2.org', 'n2-1267.plc2.org']
+01:== added in slice onecgg_slice1266 foreign  ['n2-1266.plc2.org', 'n2-1267.plc2.org', 'n2-1268.plc2.org']
+01:== added in slice onecgh_slice1267 foreign  ['n2-1267.plc2.org', 'n2-1268.plc2.org', 'n2-1269.plc2.org']
+01:== added in slice onecgi_slice1268 foreign  ['n2-1268.plc2.org', 'n2-1269.plc2.org', 'n2-1270.plc2.org']
+01:== added in slice onecgj_slice1269 foreign  ['n2-1269.plc2.org', 'n2-1270.plc2.org', 'n2-1271.plc2.org']
+01:== added in slice onecha_slice1270 foreign  ['n2-1270.plc2.org', 'n2-1271.plc2.org', 'n2-1272.plc2.org']
+01:== added in slice onechb_slice1271 foreign  ['n2-1271.plc2.org', 'n2-1272.plc2.org', 'n2-1273.plc2.org']
+01:== added in slice onechc_slice1272 foreign  ['n2-1272.plc2.org', 'n2-1273.plc2.org', 'n2-1274.plc2.org']
+01:== added in slice onechd_slice1273 foreign  ['n2-1273.plc2.org', 'n2-1274.plc2.org', 'n2-1275.plc2.org']
+01:== added in slice oneche_slice1274 foreign  ['n2-1274.plc2.org', 'n2-1275.plc2.org', 'n2-1276.plc2.org']
+01:== added in slice onechf_slice1275 foreign  ['n2-1275.plc2.org', 'n2-1276.plc2.org', 'n2-1277.plc2.org']
+01:== added in slice onechg_slice1276 foreign  ['n2-1276.plc2.org', 'n2-1277.plc2.org', 'n2-1278.plc2.org']
+01:== added in slice onechh_slice1277 foreign  ['n2-1277.plc2.org', 'n2-1278.plc2.org', 'n2-1279.plc2.org']
+01:== added in slice onechi_slice1278 foreign  ['n2-1278.plc2.org', 'n2-1279.plc2.org', 'n2-1280.plc2.org']
+01:== added in slice onechj_slice1279 foreign  ['n2-1279.plc2.org', 'n2-1280.plc2.org', 'n2-1281.plc2.org']
+01:== added in slice onecia_slice1280 foreign  ['n2-1280.plc2.org', 'n2-1281.plc2.org', 'n2-1282.plc2.org']
+01:== added in slice onecib_slice1281 foreign  ['n2-1281.plc2.org', 'n2-1282.plc2.org', 'n2-1283.plc2.org']
+01:== added in slice onecic_slice1282 foreign  ['n2-1282.plc2.org', 'n2-1283.plc2.org', 'n2-1284.plc2.org']
+01:== added in slice onecid_slice1283 foreign  ['n2-1283.plc2.org', 'n2-1284.plc2.org', 'n2-1285.plc2.org']
+01:== added in slice onecie_slice1284 foreign  ['n2-1284.plc2.org', 'n2-1285.plc2.org', 'n2-1286.plc2.org']
+01:== added in slice onecif_slice1285 foreign  ['n2-1285.plc2.org', 'n2-1286.plc2.org', 'n2-1287.plc2.org']
+01:== added in slice onecig_slice1286 foreign  ['n2-1286.plc2.org', 'n2-1287.plc2.org', 'n2-1288.plc2.org']
+01:== added in slice onecih_slice1287 foreign  ['n2-1287.plc2.org', 'n2-1288.plc2.org', 'n2-1289.plc2.org']
+01:== added in slice onecii_slice1288 foreign  ['n2-1288.plc2.org', 'n2-1289.plc2.org', 'n2-1290.plc2.org']
+01:== added in slice onecij_slice1289 foreign  ['n2-1289.plc2.org', 'n2-1290.plc2.org', 'n2-1291.plc2.org']
+01:== added in slice onecja_slice1290 foreign  ['n2-1290.plc2.org', 'n2-1291.plc2.org', 'n2-1292.plc2.org']
+01:== added in slice onecjb_slice1291 foreign  ['n2-1291.plc2.org', 'n2-1292.plc2.org', 'n2-1293.plc2.org']
+01:== added in slice onecjc_slice1292 foreign  ['n2-1292.plc2.org', 'n2-1293.plc2.org', 'n2-1294.plc2.org']
+01:== added in slice onecjd_slice1293 foreign  ['n2-1293.plc2.org', 'n2-1294.plc2.org', 'n2-1295.plc2.org']
+01:== added in slice onecje_slice1294 foreign  ['n2-1294.plc2.org', 'n2-1295.plc2.org', 'n2-1296.plc2.org']
+01:== added in slice onecjf_slice1295 foreign  ['n2-1295.plc2.org', 'n2-1296.plc2.org', 'n2-1297.plc2.org']
+01:== added in slice onecjg_slice1296 foreign  ['n2-1296.plc2.org', 'n2-1297.plc2.org', 'n2-1298.plc2.org']
+01:== added in slice onecjh_slice1297 foreign  ['n2-1297.plc2.org', 'n2-1298.plc2.org', 'n2-1299.plc2.org']
+01:== added in slice onecji_slice1298 foreign  ['n2-1298.plc2.org', 'n2-1299.plc2.org', 'n2-1300.plc2.org']
+01:== added in slice onecjj_slice1299 foreign  ['n2-1299.plc2.org', 'n2-1300.plc2.org', 'n2-1301.plc2.org']
+01:== added in slice onedaa_slice1300 foreign  ['n2-1300.plc2.org', 'n2-1301.plc2.org', 'n2-1302.plc2.org']
+01:== added in slice onedab_slice1301 foreign  ['n2-1301.plc2.org', 'n2-1302.plc2.org', 'n2-1303.plc2.org']
+01:== added in slice onedac_slice1302 foreign  ['n2-1302.plc2.org', 'n2-1303.plc2.org', 'n2-1304.plc2.org']
+01:== added in slice onedad_slice1303 foreign  ['n2-1303.plc2.org', 'n2-1304.plc2.org', 'n2-1305.plc2.org']
+01:== added in slice onedae_slice1304 foreign  ['n2-1304.plc2.org', 'n2-1305.plc2.org', 'n2-1306.plc2.org']
+01:== added in slice onedaf_slice1305 foreign  ['n2-1305.plc2.org', 'n2-1306.plc2.org', 'n2-1307.plc2.org']
+01:== added in slice onedag_slice1306 foreign  ['n2-1306.plc2.org', 'n2-1307.plc2.org', 'n2-1308.plc2.org']
+01:== added in slice onedah_slice1307 foreign  ['n2-1307.plc2.org', 'n2-1308.plc2.org', 'n2-1309.plc2.org']
+01:== added in slice onedai_slice1308 foreign  ['n2-1308.plc2.org', 'n2-1309.plc2.org', 'n2-1310.plc2.org']
+01:== added in slice onedaj_slice1309 foreign  ['n2-1309.plc2.org', 'n2-1310.plc2.org', 'n2-1311.plc2.org']
+01:== added in slice onedba_slice1310 foreign  ['n2-1310.plc2.org', 'n2-1311.plc2.org', 'n2-1312.plc2.org']
+01:== added in slice onedbb_slice1311 foreign  ['n2-1311.plc2.org', 'n2-1312.plc2.org', 'n2-1313.plc2.org']
+01:== added in slice onedbc_slice1312 foreign  ['n2-1312.plc2.org', 'n2-1313.plc2.org', 'n2-1314.plc2.org']
+01:== added in slice onedbd_slice1313 foreign  ['n2-1313.plc2.org', 'n2-1314.plc2.org', 'n2-1315.plc2.org']
+01:== added in slice onedbe_slice1314 foreign  ['n2-1314.plc2.org', 'n2-1315.plc2.org', 'n2-1316.plc2.org']
+01:== added in slice onedbf_slice1315 foreign  ['n2-1315.plc2.org', 'n2-1316.plc2.org', 'n2-1317.plc2.org']
+01:== added in slice onedbg_slice1316 foreign  ['n2-1316.plc2.org', 'n2-1317.plc2.org', 'n2-1318.plc2.org']
+01:== added in slice onedbh_slice1317 foreign  ['n2-1317.plc2.org', 'n2-1318.plc2.org', 'n2-1319.plc2.org']
+01:== added in slice onedbi_slice1318 foreign  ['n2-1318.plc2.org', 'n2-1319.plc2.org', 'n2-1320.plc2.org']
+01:== added in slice onedbj_slice1319 foreign  ['n2-1319.plc2.org', 'n2-1320.plc2.org', 'n2-1321.plc2.org']
+01:== added in slice onedca_slice1320 foreign  ['n2-1320.plc2.org', 'n2-1321.plc2.org', 'n2-1322.plc2.org']
+01:== added in slice onedcb_slice1321 foreign  ['n2-1321.plc2.org', 'n2-1322.plc2.org', 'n2-1323.plc2.org']
+01:== added in slice onedcc_slice1322 foreign  ['n2-1322.plc2.org', 'n2-1323.plc2.org', 'n2-1324.plc2.org']
+01:== added in slice onedcd_slice1323 foreign  ['n2-1323.plc2.org', 'n2-1324.plc2.org', 'n2-1325.plc2.org']
+01:== added in slice onedce_slice1324 foreign  ['n2-1324.plc2.org', 'n2-1325.plc2.org', 'n2-1326.plc2.org']
+01:== added in slice onedcf_slice1325 foreign  ['n2-1325.plc2.org', 'n2-1326.plc2.org', 'n2-1327.plc2.org']
+01:== added in slice onedcg_slice1326 foreign  ['n2-1326.plc2.org', 'n2-1327.plc2.org', 'n2-1328.plc2.org']
+01:== added in slice onedch_slice1327 foreign  ['n2-1327.plc2.org', 'n2-1328.plc2.org', 'n2-1329.plc2.org']
+01:== added in slice onedci_slice1328 foreign  ['n2-1328.plc2.org', 'n2-1329.plc2.org', 'n2-1330.plc2.org']
+01:== added in slice onedcj_slice1329 foreign  ['n2-1329.plc2.org', 'n2-1330.plc2.org', 'n2-1331.plc2.org']
+01:== added in slice onedda_slice1330 foreign  ['n2-1330.plc2.org', 'n2-1331.plc2.org', 'n2-1332.plc2.org']
+01:== added in slice oneddb_slice1331 foreign  ['n2-1331.plc2.org', 'n2-1332.plc2.org', 'n2-1333.plc2.org']
+01:== added in slice oneddc_slice1332 foreign  ['n2-1332.plc2.org', 'n2-1333.plc2.org', 'n2-1334.plc2.org']
+01:== added in slice oneddd_slice1333 foreign  ['n2-1333.plc2.org', 'n2-1334.plc2.org', 'n2-1335.plc2.org']
+01:== added in slice onedde_slice1334 foreign  ['n2-1334.plc2.org', 'n2-1335.plc2.org', 'n2-1336.plc2.org']
+01:== added in slice oneddf_slice1335 foreign  ['n2-1335.plc2.org', 'n2-1336.plc2.org', 'n2-1337.plc2.org']
+01:== added in slice oneddg_slice1336 foreign  ['n2-1336.plc2.org', 'n2-1337.plc2.org', 'n2-1338.plc2.org']
+01:== added in slice oneddh_slice1337 foreign  ['n2-1337.plc2.org', 'n2-1338.plc2.org', 'n2-1339.plc2.org']
+01:== added in slice oneddi_slice1338 foreign  ['n2-1338.plc2.org', 'n2-1339.plc2.org', 'n2-1340.plc2.org']
+01:== added in slice oneddj_slice1339 foreign  ['n2-1339.plc2.org', 'n2-1340.plc2.org', 'n2-1341.plc2.org']
+01:== added in slice onedea_slice1340 foreign  ['n2-1340.plc2.org', 'n2-1341.plc2.org', 'n2-1342.plc2.org']
+01:== added in slice onedeb_slice1341 foreign  ['n2-1341.plc2.org', 'n2-1342.plc2.org', 'n2-1343.plc2.org']
+01:== added in slice onedec_slice1342 foreign  ['n2-1342.plc2.org', 'n2-1343.plc2.org', 'n2-1344.plc2.org']
+01:== added in slice oneded_slice1343 foreign  ['n2-1343.plc2.org', 'n2-1344.plc2.org', 'n2-1345.plc2.org']
+01:== added in slice onedee_slice1344 foreign  ['n2-1344.plc2.org', 'n2-1345.plc2.org', 'n2-1346.plc2.org']
+01:== added in slice onedef_slice1345 foreign  ['n2-1345.plc2.org', 'n2-1346.plc2.org', 'n2-1347.plc2.org']
+01:== added in slice onedeg_slice1346 foreign  ['n2-1346.plc2.org', 'n2-1347.plc2.org', 'n2-1348.plc2.org']
+01:== added in slice onedeh_slice1347 foreign  ['n2-1347.plc2.org', 'n2-1348.plc2.org', 'n2-1349.plc2.org']
+01:== added in slice onedei_slice1348 foreign  ['n2-1348.plc2.org', 'n2-1349.plc2.org', 'n2-1350.plc2.org']
+01:== added in slice onedej_slice1349 foreign  ['n2-1349.plc2.org', 'n2-1350.plc2.org', 'n2-1351.plc2.org']
+01:== added in slice onedfa_slice1350 foreign  ['n2-1350.plc2.org', 'n2-1351.plc2.org', 'n2-1352.plc2.org']
+01:== added in slice onedfb_slice1351 foreign  ['n2-1351.plc2.org', 'n2-1352.plc2.org', 'n2-1353.plc2.org']
+01:== added in slice onedfc_slice1352 foreign  ['n2-1352.plc2.org', 'n2-1353.plc2.org', 'n2-1354.plc2.org']
+01:== added in slice onedfd_slice1353 foreign  ['n2-1353.plc2.org', 'n2-1354.plc2.org', 'n2-1355.plc2.org']
+01:== added in slice onedfe_slice1354 foreign  ['n2-1354.plc2.org', 'n2-1355.plc2.org', 'n2-1356.plc2.org']
+01:== added in slice onedff_slice1355 foreign  ['n2-1355.plc2.org', 'n2-1356.plc2.org', 'n2-1357.plc2.org']
+01:== added in slice onedfg_slice1356 foreign  ['n2-1356.plc2.org', 'n2-1357.plc2.org', 'n2-1358.plc2.org']
+01:== added in slice onedfh_slice1357 foreign  ['n2-1357.plc2.org', 'n2-1358.plc2.org', 'n2-1359.plc2.org']
+01:== added in slice onedfi_slice1358 foreign  ['n2-1358.plc2.org', 'n2-1359.plc2.org', 'n2-1360.plc2.org']
+01:== added in slice onedfj_slice1359 foreign  ['n2-1359.plc2.org', 'n2-1360.plc2.org', 'n2-1361.plc2.org']
+01:== added in slice onedga_slice1360 foreign  ['n2-1360.plc2.org', 'n2-1361.plc2.org', 'n2-1362.plc2.org']
+01:== added in slice onedgb_slice1361 foreign  ['n2-1361.plc2.org', 'n2-1362.plc2.org', 'n2-1363.plc2.org']
+01:== added in slice onedgc_slice1362 foreign  ['n2-1362.plc2.org', 'n2-1363.plc2.org', 'n2-1364.plc2.org']
+01:== added in slice onedgd_slice1363 foreign  ['n2-1363.plc2.org', 'n2-1364.plc2.org', 'n2-1365.plc2.org']
+01:== added in slice onedge_slice1364 foreign  ['n2-1364.plc2.org', 'n2-1365.plc2.org', 'n2-1366.plc2.org']
+01:== added in slice onedgf_slice1365 foreign  ['n2-1365.plc2.org', 'n2-1366.plc2.org', 'n2-1367.plc2.org']
+01:== added in slice onedgg_slice1366 foreign  ['n2-1366.plc2.org', 'n2-1367.plc2.org', 'n2-1368.plc2.org']
+01:== added in slice onedgh_slice1367 foreign  ['n2-1367.plc2.org', 'n2-1368.plc2.org', 'n2-1369.plc2.org']
+01:== added in slice onedgi_slice1368 foreign  ['n2-1368.plc2.org', 'n2-1369.plc2.org', 'n2-1370.plc2.org']
+01:== added in slice onedgj_slice1369 foreign  ['n2-1369.plc2.org', 'n2-1370.plc2.org', 'n2-1371.plc2.org']
+01:== added in slice onedha_slice1370 foreign  ['n2-1370.plc2.org', 'n2-1371.plc2.org', 'n2-1372.plc2.org']
+01:== added in slice onedhb_slice1371 foreign  ['n2-1371.plc2.org', 'n2-1372.plc2.org', 'n2-1373.plc2.org']
+01:== added in slice onedhc_slice1372 foreign  ['n2-1372.plc2.org', 'n2-1373.plc2.org', 'n2-1374.plc2.org']
+01:== added in slice onedhd_slice1373 foreign  ['n2-1373.plc2.org', 'n2-1374.plc2.org', 'n2-1375.plc2.org']
+01:== added in slice onedhe_slice1374 foreign  ['n2-1374.plc2.org', 'n2-1375.plc2.org', 'n2-1376.plc2.org']
+01:== added in slice onedhf_slice1375 foreign  ['n2-1375.plc2.org', 'n2-1376.plc2.org', 'n2-1377.plc2.org']
+01:== added in slice onedhg_slice1376 foreign  ['n2-1376.plc2.org', 'n2-1377.plc2.org', 'n2-1378.plc2.org']
+01:== added in slice onedhh_slice1377 foreign  ['n2-1377.plc2.org', 'n2-1378.plc2.org', 'n2-1379.plc2.org']
+01:== added in slice onedhi_slice1378 foreign  ['n2-1378.plc2.org', 'n2-1379.plc2.org', 'n2-1380.plc2.org']
+01:== added in slice onedhj_slice1379 foreign  ['n2-1379.plc2.org', 'n2-1380.plc2.org', 'n2-1381.plc2.org']
+01:== added in slice onedia_slice1380 foreign  ['n2-1380.plc2.org', 'n2-1381.plc2.org', 'n2-1382.plc2.org']
+01:== added in slice onedib_slice1381 foreign  ['n2-1381.plc2.org', 'n2-1382.plc2.org', 'n2-1383.plc2.org']
+01:== added in slice onedic_slice1382 foreign  ['n2-1382.plc2.org', 'n2-1383.plc2.org', 'n2-1384.plc2.org']
+01:== added in slice onedid_slice1383 foreign  ['n2-1383.plc2.org', 'n2-1384.plc2.org', 'n2-1385.plc2.org']
+01:== added in slice onedie_slice1384 foreign  ['n2-1384.plc2.org', 'n2-1385.plc2.org', 'n2-1386.plc2.org']
+01:== added in slice onedif_slice1385 foreign  ['n2-1385.plc2.org', 'n2-1386.plc2.org', 'n2-1387.plc2.org']
+01:== added in slice onedig_slice1386 foreign  ['n2-1386.plc2.org', 'n2-1387.plc2.org', 'n2-1388.plc2.org']
+01:== added in slice onedih_slice1387 foreign  ['n2-1387.plc2.org', 'n2-1388.plc2.org', 'n2-1389.plc2.org']
+01:== added in slice onedii_slice1388 foreign  ['n2-1388.plc2.org', 'n2-1389.plc2.org', 'n2-1390.plc2.org']
+01:== added in slice onedij_slice1389 foreign  ['n2-1389.plc2.org', 'n2-1390.plc2.org', 'n2-1391.plc2.org']
+01:== added in slice onedja_slice1390 foreign  ['n2-1390.plc2.org', 'n2-1391.plc2.org', 'n2-1392.plc2.org']
+01:== added in slice onedjb_slice1391 foreign  ['n2-1391.plc2.org', 'n2-1392.plc2.org', 'n2-1393.plc2.org']
+01:== added in slice onedjc_slice1392 foreign  ['n2-1392.plc2.org', 'n2-1393.plc2.org', 'n2-1394.plc2.org']
+01:== added in slice onedjd_slice1393 foreign  ['n2-1393.plc2.org', 'n2-1394.plc2.org', 'n2-1395.plc2.org']
+01:== added in slice onedje_slice1394 foreign  ['n2-1394.plc2.org', 'n2-1395.plc2.org', 'n2-1396.plc2.org']
+01:== added in slice onedjf_slice1395 foreign  ['n2-1395.plc2.org', 'n2-1396.plc2.org', 'n2-1397.plc2.org']
+01:== added in slice onedjg_slice1396 foreign  ['n2-1396.plc2.org', 'n2-1397.plc2.org', 'n2-1398.plc2.org']
+01:== added in slice onedjh_slice1397 foreign  ['n2-1397.plc2.org', 'n2-1398.plc2.org', 'n2-1399.plc2.org']
+01:== added in slice onedji_slice1398 foreign  ['n2-1398.plc2.org', 'n2-1399.plc2.org', 'n2-1400.plc2.org']
+01:== added in slice onedjj_slice1399 foreign  ['n2-1399.plc2.org', 'n2-1400.plc2.org', 'n2-1401.plc2.org']
+01:== added in slice oneeaa_slice1400 foreign  ['n2-1400.plc2.org', 'n2-1401.plc2.org', 'n2-1402.plc2.org']
+01:== added in slice oneeab_slice1401 foreign  ['n2-1401.plc2.org', 'n2-1402.plc2.org', 'n2-1403.plc2.org']
+01:== added in slice oneeac_slice1402 foreign  ['n2-1402.plc2.org', 'n2-1403.plc2.org', 'n2-1404.plc2.org']
+01:== added in slice oneead_slice1403 foreign  ['n2-1403.plc2.org', 'n2-1404.plc2.org', 'n2-1405.plc2.org']
+01:== added in slice oneeae_slice1404 foreign  ['n2-1404.plc2.org', 'n2-1405.plc2.org', 'n2-1406.plc2.org']
+01:== added in slice oneeaf_slice1405 foreign  ['n2-1405.plc2.org', 'n2-1406.plc2.org', 'n2-1407.plc2.org']
+01:== added in slice oneeag_slice1406 foreign  ['n2-1406.plc2.org', 'n2-1407.plc2.org', 'n2-1408.plc2.org']
+01:== added in slice oneeah_slice1407 foreign  ['n2-1407.plc2.org', 'n2-1408.plc2.org', 'n2-1409.plc2.org']
+01:== added in slice oneeai_slice1408 foreign  ['n2-1408.plc2.org', 'n2-1409.plc2.org', 'n2-1410.plc2.org']
+01:== added in slice oneeaj_slice1409 foreign  ['n2-1409.plc2.org', 'n2-1410.plc2.org', 'n2-1411.plc2.org']
+01:== added in slice oneeba_slice1410 foreign  ['n2-1410.plc2.org', 'n2-1411.plc2.org', 'n2-1412.plc2.org']
+01:== added in slice oneebb_slice1411 foreign  ['n2-1411.plc2.org', 'n2-1412.plc2.org', 'n2-1413.plc2.org']
+01:== added in slice oneebc_slice1412 foreign  ['n2-1412.plc2.org', 'n2-1413.plc2.org', 'n2-1414.plc2.org']
+01:== added in slice oneebd_slice1413 foreign  ['n2-1413.plc2.org', 'n2-1414.plc2.org', 'n2-1415.plc2.org']
+01:== added in slice oneebe_slice1414 foreign  ['n2-1414.plc2.org', 'n2-1415.plc2.org', 'n2-1416.plc2.org']
+01:== added in slice oneebf_slice1415 foreign  ['n2-1415.plc2.org', 'n2-1416.plc2.org', 'n2-1417.plc2.org']
+01:== added in slice oneebg_slice1416 foreign  ['n2-1416.plc2.org', 'n2-1417.plc2.org', 'n2-1418.plc2.org']
+01:== added in slice oneebh_slice1417 foreign  ['n2-1417.plc2.org', 'n2-1418.plc2.org', 'n2-1419.plc2.org']
+01:== added in slice oneebi_slice1418 foreign  ['n2-1418.plc2.org', 'n2-1419.plc2.org', 'n2-1420.plc2.org']
+01:== added in slice oneebj_slice1419 foreign  ['n2-1419.plc2.org', 'n2-1420.plc2.org', 'n2-1421.plc2.org']
+01:== added in slice oneeca_slice1420 foreign  ['n2-1420.plc2.org', 'n2-1421.plc2.org', 'n2-1422.plc2.org']
+01:== added in slice oneecb_slice1421 foreign  ['n2-1421.plc2.org', 'n2-1422.plc2.org', 'n2-1423.plc2.org']
+01:== added in slice oneecc_slice1422 foreign  ['n2-1422.plc2.org', 'n2-1423.plc2.org', 'n2-1424.plc2.org']
+01:== added in slice oneecd_slice1423 foreign  ['n2-1423.plc2.org', 'n2-1424.plc2.org', 'n2-1425.plc2.org']
+01:== added in slice oneece_slice1424 foreign  ['n2-1424.plc2.org', 'n2-1425.plc2.org', 'n2-1426.plc2.org']
+01:== added in slice oneecf_slice1425 foreign  ['n2-1425.plc2.org', 'n2-1426.plc2.org', 'n2-1427.plc2.org']
+01:== added in slice oneecg_slice1426 foreign  ['n2-1426.plc2.org', 'n2-1427.plc2.org', 'n2-1428.plc2.org']
+01:== added in slice oneech_slice1427 foreign  ['n2-1427.plc2.org', 'n2-1428.plc2.org', 'n2-1429.plc2.org']
+01:== added in slice oneeci_slice1428 foreign  ['n2-1428.plc2.org', 'n2-1429.plc2.org', 'n2-1430.plc2.org']
+01:== added in slice oneecj_slice1429 foreign  ['n2-1429.plc2.org', 'n2-1430.plc2.org', 'n2-1431.plc2.org']
+01:== added in slice oneeda_slice1430 foreign  ['n2-1430.plc2.org', 'n2-1431.plc2.org', 'n2-1432.plc2.org']
+01:== added in slice oneedb_slice1431 foreign  ['n2-1431.plc2.org', 'n2-1432.plc2.org', 'n2-1433.plc2.org']
+01:== added in slice oneedc_slice1432 foreign  ['n2-1432.plc2.org', 'n2-1433.plc2.org', 'n2-1434.plc2.org']
+01:== added in slice oneedd_slice1433 foreign  ['n2-1433.plc2.org', 'n2-1434.plc2.org', 'n2-1435.plc2.org']
+01:== added in slice oneede_slice1434 foreign  ['n2-1434.plc2.org', 'n2-1435.plc2.org', 'n2-1436.plc2.org']
+01:== added in slice oneedf_slice1435 foreign  ['n2-1435.plc2.org', 'n2-1436.plc2.org', 'n2-1437.plc2.org']
+01:== added in slice oneedg_slice1436 foreign  ['n2-1436.plc2.org', 'n2-1437.plc2.org', 'n2-1438.plc2.org']
+01:== added in slice oneedh_slice1437 foreign  ['n2-1437.plc2.org', 'n2-1438.plc2.org', 'n2-1439.plc2.org']
+01:== added in slice oneedi_slice1438 foreign  ['n2-1438.plc2.org', 'n2-1439.plc2.org', 'n2-1440.plc2.org']
+01:== added in slice oneedj_slice1439 foreign  ['n2-1439.plc2.org', 'n2-1440.plc2.org', 'n2-1441.plc2.org']
+01:== added in slice oneeea_slice1440 foreign  ['n2-1440.plc2.org', 'n2-1441.plc2.org', 'n2-1442.plc2.org']
+01:== added in slice oneeeb_slice1441 foreign  ['n2-1441.plc2.org', 'n2-1442.plc2.org', 'n2-1443.plc2.org']
+01:== added in slice oneeec_slice1442 foreign  ['n2-1442.plc2.org', 'n2-1443.plc2.org', 'n2-1444.plc2.org']
+01:== added in slice oneeed_slice1443 foreign  ['n2-1443.plc2.org', 'n2-1444.plc2.org', 'n2-1445.plc2.org']
+01:== added in slice oneeee_slice1444 foreign  ['n2-1444.plc2.org', 'n2-1445.plc2.org', 'n2-1446.plc2.org']
+01:== added in slice oneeef_slice1445 foreign  ['n2-1445.plc2.org', 'n2-1446.plc2.org', 'n2-1447.plc2.org']
+01:== added in slice oneeeg_slice1446 foreign  ['n2-1446.plc2.org', 'n2-1447.plc2.org', 'n2-1448.plc2.org']
+01:== added in slice oneeeh_slice1447 foreign  ['n2-1447.plc2.org', 'n2-1448.plc2.org', 'n2-1449.plc2.org']
+01:== added in slice oneeei_slice1448 foreign  ['n2-1448.plc2.org', 'n2-1449.plc2.org', 'n2-1450.plc2.org']
+01:== added in slice oneeej_slice1449 foreign  ['n2-1449.plc2.org', 'n2-1450.plc2.org', 'n2-1451.plc2.org']
+01:== added in slice oneefa_slice1450 foreign  ['n2-1450.plc2.org', 'n2-1451.plc2.org', 'n2-1452.plc2.org']
+01:== added in slice oneefb_slice1451 foreign  ['n2-1451.plc2.org', 'n2-1452.plc2.org', 'n2-1453.plc2.org']
+01:== added in slice oneefc_slice1452 foreign  ['n2-1452.plc2.org', 'n2-1453.plc2.org', 'n2-1454.plc2.org']
+01:== added in slice oneefd_slice1453 foreign  ['n2-1453.plc2.org', 'n2-1454.plc2.org', 'n2-1455.plc2.org']
+01:== added in slice oneefe_slice1454 foreign  ['n2-1454.plc2.org', 'n2-1455.plc2.org', 'n2-1456.plc2.org']
+01:== added in slice oneeff_slice1455 foreign  ['n2-1455.plc2.org', 'n2-1456.plc2.org', 'n2-1457.plc2.org']
+01:== added in slice oneefg_slice1456 foreign  ['n2-1456.plc2.org', 'n2-1457.plc2.org', 'n2-1458.plc2.org']
+01:== added in slice oneefh_slice1457 foreign  ['n2-1457.plc2.org', 'n2-1458.plc2.org', 'n2-1459.plc2.org']
+01:== added in slice oneefi_slice1458 foreign  ['n2-1458.plc2.org', 'n2-1459.plc2.org', 'n2-1460.plc2.org']
+01:== added in slice oneefj_slice1459 foreign  ['n2-1459.plc2.org', 'n2-1460.plc2.org', 'n2-1461.plc2.org']
+01:== added in slice oneega_slice1460 foreign  ['n2-1460.plc2.org', 'n2-1461.plc2.org', 'n2-1462.plc2.org']
+01:== added in slice oneegb_slice1461 foreign  ['n2-1461.plc2.org', 'n2-1462.plc2.org', 'n2-1463.plc2.org']
+01:== added in slice oneegc_slice1462 foreign  ['n2-1462.plc2.org', 'n2-1463.plc2.org', 'n2-1464.plc2.org']
+01:== added in slice oneegd_slice1463 foreign  ['n2-1463.plc2.org', 'n2-1464.plc2.org', 'n2-1465.plc2.org']
+01:== added in slice oneege_slice1464 foreign  ['n2-1464.plc2.org', 'n2-1465.plc2.org', 'n2-1466.plc2.org']
+01:== added in slice oneegf_slice1465 foreign  ['n2-1465.plc2.org', 'n2-1466.plc2.org', 'n2-1467.plc2.org']
+01:== added in slice oneegg_slice1466 foreign  ['n2-1466.plc2.org', 'n2-1467.plc2.org', 'n2-1468.plc2.org']
+01:== added in slice oneegh_slice1467 foreign  ['n2-1467.plc2.org', 'n2-1468.plc2.org', 'n2-1469.plc2.org']
+01:== added in slice oneegi_slice1468 foreign  ['n2-1468.plc2.org', 'n2-1469.plc2.org', 'n2-1470.plc2.org']
+01:== added in slice oneegj_slice1469 foreign  ['n2-1469.plc2.org', 'n2-1470.plc2.org', 'n2-1471.plc2.org']
+01:== added in slice oneeha_slice1470 foreign  ['n2-1470.plc2.org', 'n2-1471.plc2.org', 'n2-1472.plc2.org']
+01:== added in slice oneehb_slice1471 foreign  ['n2-1471.plc2.org', 'n2-1472.plc2.org', 'n2-1473.plc2.org']
+01:== added in slice oneehc_slice1472 foreign  ['n2-1472.plc2.org', 'n2-1473.plc2.org', 'n2-1474.plc2.org']
+01:== added in slice oneehd_slice1473 foreign  ['n2-1473.plc2.org', 'n2-1474.plc2.org', 'n2-1475.plc2.org']
+01:== added in slice oneehe_slice1474 foreign  ['n2-1474.plc2.org', 'n2-1475.plc2.org', 'n2-1476.plc2.org']
+01:== added in slice oneehf_slice1475 foreign  ['n2-1475.plc2.org', 'n2-1476.plc2.org', 'n2-1477.plc2.org']
+01:== added in slice oneehg_slice1476 foreign  ['n2-1476.plc2.org', 'n2-1477.plc2.org', 'n2-1478.plc2.org']
+01:== added in slice oneehh_slice1477 foreign  ['n2-1477.plc2.org', 'n2-1478.plc2.org', 'n2-1479.plc2.org']
+01:== added in slice oneehi_slice1478 foreign  ['n2-1478.plc2.org', 'n2-1479.plc2.org', 'n2-1480.plc2.org']
+01:== added in slice oneehj_slice1479 foreign  ['n2-1479.plc2.org', 'n2-1480.plc2.org', 'n2-1481.plc2.org']
+01:== added in slice oneeia_slice1480 foreign  ['n2-1480.plc2.org', 'n2-1481.plc2.org', 'n2-1482.plc2.org']
+01:== added in slice oneeib_slice1481 foreign  ['n2-1481.plc2.org', 'n2-1482.plc2.org', 'n2-1483.plc2.org']
+01:== added in slice oneeic_slice1482 foreign  ['n2-1482.plc2.org', 'n2-1483.plc2.org', 'n2-1484.plc2.org']
+01:== added in slice oneeid_slice1483 foreign  ['n2-1483.plc2.org', 'n2-1484.plc2.org', 'n2-1485.plc2.org']
+01:== added in slice oneeie_slice1484 foreign  ['n2-1484.plc2.org', 'n2-1485.plc2.org', 'n2-1486.plc2.org']
+01:== added in slice oneeif_slice1485 foreign  ['n2-1485.plc2.org', 'n2-1486.plc2.org', 'n2-1487.plc2.org']
+01:== added in slice oneeig_slice1486 foreign  ['n2-1486.plc2.org', 'n2-1487.plc2.org', 'n2-1488.plc2.org']
+01:== added in slice oneeih_slice1487 foreign  ['n2-1487.plc2.org', 'n2-1488.plc2.org', 'n2-1489.plc2.org']
+01:== added in slice oneeii_slice1488 foreign  ['n2-1488.plc2.org', 'n2-1489.plc2.org', 'n2-1490.plc2.org']
+01:== added in slice oneeij_slice1489 foreign  ['n2-1489.plc2.org', 'n2-1490.plc2.org', 'n2-1491.plc2.org']
+01:== added in slice oneeja_slice1490 foreign  ['n2-1490.plc2.org', 'n2-1491.plc2.org', 'n2-1492.plc2.org']
+01:== added in slice oneejb_slice1491 foreign  ['n2-1491.plc2.org', 'n2-1492.plc2.org', 'n2-1493.plc2.org']
+01:== added in slice oneejc_slice1492 foreign  ['n2-1492.plc2.org', 'n2-1493.plc2.org', 'n2-1494.plc2.org']
+01:== added in slice oneejd_slice1493 foreign  ['n2-1493.plc2.org', 'n2-1494.plc2.org', 'n2-1495.plc2.org']
+01:== added in slice oneeje_slice1494 foreign  ['n2-1494.plc2.org', 'n2-1495.plc2.org', 'n2-1496.plc2.org']
+01:== added in slice oneejf_slice1495 foreign  ['n2-1495.plc2.org', 'n2-1496.plc2.org', 'n2-1497.plc2.org']
+01:== added in slice oneejg_slice1496 foreign  ['n2-1496.plc2.org', 'n2-1497.plc2.org', 'n2-1498.plc2.org']
+01:== added in slice oneejh_slice1497 foreign  ['n2-1497.plc2.org', 'n2-1498.plc2.org', 'n2-1499.plc2.org']
+01:== added in slice oneeji_slice1498 foreign  ['n2-1498.plc2.org', 'n2-1499.plc2.org', 'n2-1500.plc2.org']
+01:== added in slice oneejj_slice1499 foreign  ['n2-1499.plc2.org', 'n2-1500.plc2.org', 'n2-1501.plc2.org']
+01:== added in slice onefaa_slice1500 foreign  ['n2-1500.plc2.org', 'n2-1501.plc2.org', 'n2-1502.plc2.org']
+01:== added in slice onefab_slice1501 foreign  ['n2-1501.plc2.org', 'n2-1502.plc2.org', 'n2-1503.plc2.org']
+01:== added in slice onefac_slice1502 foreign  ['n2-1502.plc2.org', 'n2-1503.plc2.org', 'n2-1504.plc2.org']
+01:== added in slice onefad_slice1503 foreign  ['n2-1503.plc2.org', 'n2-1504.plc2.org', 'n2-1505.plc2.org']
+01:== added in slice onefae_slice1504 foreign  ['n2-1504.plc2.org', 'n2-1505.plc2.org', 'n2-1506.plc2.org']
+01:== added in slice onefaf_slice1505 foreign  ['n2-1505.plc2.org', 'n2-1506.plc2.org', 'n2-1507.plc2.org']
+01:== added in slice onefag_slice1506 foreign  ['n2-1506.plc2.org', 'n2-1507.plc2.org', 'n2-1508.plc2.org']
+01:== added in slice onefah_slice1507 foreign  ['n2-1507.plc2.org', 'n2-1508.plc2.org', 'n2-1509.plc2.org']
+01:== added in slice onefai_slice1508 foreign  ['n2-1508.plc2.org', 'n2-1509.plc2.org', 'n2-1510.plc2.org']
+01:== added in slice onefaj_slice1509 foreign  ['n2-1509.plc2.org', 'n2-1510.plc2.org', 'n2-1511.plc2.org']
+01:== added in slice onefba_slice1510 foreign  ['n2-1510.plc2.org', 'n2-1511.plc2.org', 'n2-1512.plc2.org']
+01:== added in slice onefbb_slice1511 foreign  ['n2-1511.plc2.org', 'n2-1512.plc2.org', 'n2-1513.plc2.org']
+01:== added in slice onefbc_slice1512 foreign  ['n2-1512.plc2.org', 'n2-1513.plc2.org', 'n2-1514.plc2.org']
+01:== added in slice onefbd_slice1513 foreign  ['n2-1513.plc2.org', 'n2-1514.plc2.org', 'n2-1515.plc2.org']
+01:== added in slice onefbe_slice1514 foreign  ['n2-1514.plc2.org', 'n2-1515.plc2.org', 'n2-1516.plc2.org']
+01:== added in slice onefbf_slice1515 foreign  ['n2-1515.plc2.org', 'n2-1516.plc2.org', 'n2-1517.plc2.org']
+01:== added in slice onefbg_slice1516 foreign  ['n2-1516.plc2.org', 'n2-1517.plc2.org', 'n2-1518.plc2.org']
+01:== added in slice onefbh_slice1517 foreign  ['n2-1517.plc2.org', 'n2-1518.plc2.org', 'n2-1519.plc2.org']
+01:== added in slice onefbi_slice1518 foreign  ['n2-1518.plc2.org', 'n2-1519.plc2.org', 'n2-1520.plc2.org']
+01:== added in slice onefbj_slice1519 foreign  ['n2-1519.plc2.org', 'n2-1520.plc2.org', 'n2-1521.plc2.org']
+01:== added in slice onefca_slice1520 foreign  ['n2-1520.plc2.org', 'n2-1521.plc2.org', 'n2-1522.plc2.org']
+01:== added in slice onefcb_slice1521 foreign  ['n2-1521.plc2.org', 'n2-1522.plc2.org', 'n2-1523.plc2.org']
+01:== added in slice onefcc_slice1522 foreign  ['n2-1522.plc2.org', 'n2-1523.plc2.org', 'n2-1524.plc2.org']
+01:== added in slice onefcd_slice1523 foreign  ['n2-1523.plc2.org', 'n2-1524.plc2.org', 'n2-1525.plc2.org']
+01:== added in slice onefce_slice1524 foreign  ['n2-1524.plc2.org', 'n2-1525.plc2.org', 'n2-1526.plc2.org']
+01:== added in slice onefcf_slice1525 foreign  ['n2-1525.plc2.org', 'n2-1526.plc2.org', 'n2-1527.plc2.org']
+01:== added in slice onefcg_slice1526 foreign  ['n2-1526.plc2.org', 'n2-1527.plc2.org', 'n2-1528.plc2.org']
+01:== added in slice onefch_slice1527 foreign  ['n2-1527.plc2.org', 'n2-1528.plc2.org', 'n2-1529.plc2.org']
+01:== added in slice onefci_slice1528 foreign  ['n2-1528.plc2.org', 'n2-1529.plc2.org', 'n2-1530.plc2.org']
+01:== added in slice onefcj_slice1529 foreign  ['n2-1529.plc2.org', 'n2-1530.plc2.org', 'n2-1531.plc2.org']
+01:== added in slice onefda_slice1530 foreign  ['n2-1530.plc2.org', 'n2-1531.plc2.org', 'n2-1532.plc2.org']
+01:== added in slice onefdb_slice1531 foreign  ['n2-1531.plc2.org', 'n2-1532.plc2.org', 'n2-1533.plc2.org']
+01:== added in slice onefdc_slice1532 foreign  ['n2-1532.plc2.org', 'n2-1533.plc2.org', 'n2-1534.plc2.org']
+01:== added in slice onefdd_slice1533 foreign  ['n2-1533.plc2.org', 'n2-1534.plc2.org', 'n2-1535.plc2.org']
+01:== added in slice onefde_slice1534 foreign  ['n2-1534.plc2.org', 'n2-1535.plc2.org', 'n2-1536.plc2.org']
+01:== added in slice onefdf_slice1535 foreign  ['n2-1535.plc2.org', 'n2-1536.plc2.org', 'n2-1537.plc2.org']
+01:== added in slice onefdg_slice1536 foreign  ['n2-1536.plc2.org', 'n2-1537.plc2.org', 'n2-1538.plc2.org']
+01:== added in slice onefdh_slice1537 foreign  ['n2-1537.plc2.org', 'n2-1538.plc2.org', 'n2-1539.plc2.org']
+01:== added in slice onefdi_slice1538 foreign  ['n2-1538.plc2.org', 'n2-1539.plc2.org', 'n2-1540.plc2.org']
+01:== added in slice onefdj_slice1539 foreign  ['n2-1539.plc2.org', 'n2-1540.plc2.org', 'n2-1541.plc2.org']
+01:== added in slice onefea_slice1540 foreign  ['n2-1540.plc2.org', 'n2-1541.plc2.org', 'n2-1542.plc2.org']
+01:== added in slice onefeb_slice1541 foreign  ['n2-1541.plc2.org', 'n2-1542.plc2.org', 'n2-1543.plc2.org']
+01:== added in slice onefec_slice1542 foreign  ['n2-1542.plc2.org', 'n2-1543.plc2.org', 'n2-1544.plc2.org']
+01:== added in slice onefed_slice1543 foreign  ['n2-1543.plc2.org', 'n2-1544.plc2.org', 'n2-1545.plc2.org']
+01:== added in slice onefee_slice1544 foreign  ['n2-1544.plc2.org', 'n2-1545.plc2.org', 'n2-1546.plc2.org']
+01:== added in slice onefef_slice1545 foreign  ['n2-1545.plc2.org', 'n2-1546.plc2.org', 'n2-1547.plc2.org']
+01:== added in slice onefeg_slice1546 foreign  ['n2-1546.plc2.org', 'n2-1547.plc2.org', 'n2-1548.plc2.org']
+01:== added in slice onefeh_slice1547 foreign  ['n2-1547.plc2.org', 'n2-1548.plc2.org', 'n2-1549.plc2.org']
+01:== added in slice onefei_slice1548 foreign  ['n2-1548.plc2.org', 'n2-1549.plc2.org', 'n2-1550.plc2.org']
+01:== added in slice onefej_slice1549 foreign  ['n2-1549.plc2.org', 'n2-1550.plc2.org', 'n2-1551.plc2.org']
+01:== added in slice oneffa_slice1550 foreign  ['n2-1550.plc2.org', 'n2-1551.plc2.org', 'n2-1552.plc2.org']
+01:== added in slice oneffb_slice1551 foreign  ['n2-1551.plc2.org', 'n2-1552.plc2.org', 'n2-1553.plc2.org']
+01:== added in slice oneffc_slice1552 foreign  ['n2-1552.plc2.org', 'n2-1553.plc2.org', 'n2-1554.plc2.org']
+01:== added in slice oneffd_slice1553 foreign  ['n2-1553.plc2.org', 'n2-1554.plc2.org', 'n2-1555.plc2.org']
+01:== added in slice oneffe_slice1554 foreign  ['n2-1554.plc2.org', 'n2-1555.plc2.org', 'n2-1556.plc2.org']
+01:== added in slice onefff_slice1555 foreign  ['n2-1555.plc2.org', 'n2-1556.plc2.org', 'n2-1557.plc2.org']
+01:== added in slice oneffg_slice1556 foreign  ['n2-1556.plc2.org', 'n2-1557.plc2.org', 'n2-1558.plc2.org']
+01:== added in slice oneffh_slice1557 foreign  ['n2-1557.plc2.org', 'n2-1558.plc2.org', 'n2-1559.plc2.org']
+01:== added in slice oneffi_slice1558 foreign  ['n2-1558.plc2.org', 'n2-1559.plc2.org', 'n2-1560.plc2.org']
+01:== added in slice oneffj_slice1559 foreign  ['n2-1559.plc2.org', 'n2-1560.plc2.org', 'n2-1561.plc2.org']
+01:== added in slice onefga_slice1560 foreign  ['n2-1560.plc2.org', 'n2-1561.plc2.org', 'n2-1562.plc2.org']
+01:== added in slice onefgb_slice1561 foreign  ['n2-1561.plc2.org', 'n2-1562.plc2.org', 'n2-1563.plc2.org']
+01:== added in slice onefgc_slice1562 foreign  ['n2-1562.plc2.org', 'n2-1563.plc2.org', 'n2-1564.plc2.org']
+01:== added in slice onefgd_slice1563 foreign  ['n2-1563.plc2.org', 'n2-1564.plc2.org', 'n2-1565.plc2.org']
+01:== added in slice onefge_slice1564 foreign  ['n2-1564.plc2.org', 'n2-1565.plc2.org', 'n2-1566.plc2.org']
+01:== added in slice onefgf_slice1565 foreign  ['n2-1565.plc2.org', 'n2-1566.plc2.org', 'n2-1567.plc2.org']
+01:== added in slice onefgg_slice1566 foreign  ['n2-1566.plc2.org', 'n2-1567.plc2.org', 'n2-1568.plc2.org']
+01:== added in slice onefgh_slice1567 foreign  ['n2-1567.plc2.org', 'n2-1568.plc2.org', 'n2-1569.plc2.org']
+01:== added in slice onefgi_slice1568 foreign  ['n2-1568.plc2.org', 'n2-1569.plc2.org', 'n2-1570.plc2.org']
+01:== added in slice onefgj_slice1569 foreign  ['n2-1569.plc2.org', 'n2-1570.plc2.org', 'n2-1571.plc2.org']
+01:== added in slice onefha_slice1570 foreign  ['n2-1570.plc2.org', 'n2-1571.plc2.org', 'n2-1572.plc2.org']
+01:== added in slice onefhb_slice1571 foreign  ['n2-1571.plc2.org', 'n2-1572.plc2.org', 'n2-1573.plc2.org']
+01:== added in slice onefhc_slice1572 foreign  ['n2-1572.plc2.org', 'n2-1573.plc2.org', 'n2-1574.plc2.org']
+01:== added in slice onefhd_slice1573 foreign  ['n2-1573.plc2.org', 'n2-1574.plc2.org', 'n2-1575.plc2.org']
+01:== added in slice onefhe_slice1574 foreign  ['n2-1574.plc2.org', 'n2-1575.plc2.org', 'n2-1576.plc2.org']
+01:== added in slice onefhf_slice1575 foreign  ['n2-1575.plc2.org', 'n2-1576.plc2.org', 'n2-1577.plc2.org']
+01:== added in slice onefhg_slice1576 foreign  ['n2-1576.plc2.org', 'n2-1577.plc2.org', 'n2-1578.plc2.org']
+01:== added in slice onefhh_slice1577 foreign  ['n2-1577.plc2.org', 'n2-1578.plc2.org', 'n2-1579.plc2.org']
+01:== added in slice onefhi_slice1578 foreign  ['n2-1578.plc2.org', 'n2-1579.plc2.org', 'n2-1580.plc2.org']
+01:== added in slice onefhj_slice1579 foreign  ['n2-1579.plc2.org', 'n2-1580.plc2.org', 'n2-1581.plc2.org']
+01:== added in slice onefia_slice1580 foreign  ['n2-1580.plc2.org', 'n2-1581.plc2.org', 'n2-1582.plc2.org']
+01:== added in slice onefib_slice1581 foreign  ['n2-1581.plc2.org', 'n2-1582.plc2.org', 'n2-1583.plc2.org']
+01:== added in slice onefic_slice1582 foreign  ['n2-1582.plc2.org', 'n2-1583.plc2.org', 'n2-1584.plc2.org']
+01:== added in slice onefid_slice1583 foreign  ['n2-1583.plc2.org', 'n2-1584.plc2.org', 'n2-1585.plc2.org']
+01:== added in slice onefie_slice1584 foreign  ['n2-1584.plc2.org', 'n2-1585.plc2.org', 'n2-1586.plc2.org']
+01:== added in slice onefif_slice1585 foreign  ['n2-1585.plc2.org', 'n2-1586.plc2.org', 'n2-1587.plc2.org']
+01:== added in slice onefig_slice1586 foreign  ['n2-1586.plc2.org', 'n2-1587.plc2.org', 'n2-1588.plc2.org']
+01:== added in slice onefih_slice1587 foreign  ['n2-1587.plc2.org', 'n2-1588.plc2.org', 'n2-1589.plc2.org']
+01:== added in slice onefii_slice1588 foreign  ['n2-1588.plc2.org', 'n2-1589.plc2.org', 'n2-1590.plc2.org']
+01:== added in slice onefij_slice1589 foreign  ['n2-1589.plc2.org', 'n2-1590.plc2.org', 'n2-1591.plc2.org']
+01:== added in slice onefja_slice1590 foreign  ['n2-1590.plc2.org', 'n2-1591.plc2.org', 'n2-1592.plc2.org']
+01:== added in slice onefjb_slice1591 foreign  ['n2-1591.plc2.org', 'n2-1592.plc2.org', 'n2-1593.plc2.org']
+01:== added in slice onefjc_slice1592 foreign  ['n2-1592.plc2.org', 'n2-1593.plc2.org', 'n2-1594.plc2.org']
+01:== added in slice onefjd_slice1593 foreign  ['n2-1593.plc2.org', 'n2-1594.plc2.org', 'n2-1595.plc2.org']
+01:== added in slice onefje_slice1594 foreign  ['n2-1594.plc2.org', 'n2-1595.plc2.org', 'n2-1596.plc2.org']
+01:== added in slice onefjf_slice1595 foreign  ['n2-1595.plc2.org', 'n2-1596.plc2.org', 'n2-1597.plc2.org']
+01:== added in slice onefjg_slice1596 foreign  ['n2-1596.plc2.org', 'n2-1597.plc2.org', 'n2-1598.plc2.org']
+01:== added in slice onefjh_slice1597 foreign  ['n2-1597.plc2.org', 'n2-1598.plc2.org', 'n2-1599.plc2.org']
+01:== added in slice onefji_slice1598 foreign  ['n2-1598.plc2.org', 'n2-1599.plc2.org', 'n2-1600.plc2.org']
+01:== added in slice onefjj_slice1599 foreign  ['n2-1599.plc2.org', 'n2-1600.plc2.org', 'n2-1601.plc2.org']
+01:== added in slice onegaa_slice1600 foreign  ['n2-1600.plc2.org', 'n2-1601.plc2.org', 'n2-1602.plc2.org']
+01:== added in slice onegab_slice1601 foreign  ['n2-1601.plc2.org', 'n2-1602.plc2.org', 'n2-1603.plc2.org']
+01:== added in slice onegac_slice1602 foreign  ['n2-1602.plc2.org', 'n2-1603.plc2.org', 'n2-1604.plc2.org']
+01:== added in slice onegad_slice1603 foreign  ['n2-1603.plc2.org', 'n2-1604.plc2.org', 'n2-1605.plc2.org']
+01:== added in slice onegae_slice1604 foreign  ['n2-1604.plc2.org', 'n2-1605.plc2.org', 'n2-1606.plc2.org']
+01:== added in slice onegaf_slice1605 foreign  ['n2-1605.plc2.org', 'n2-1606.plc2.org', 'n2-1607.plc2.org']
+01:== added in slice onegag_slice1606 foreign  ['n2-1606.plc2.org', 'n2-1607.plc2.org', 'n2-1608.plc2.org']
+01:== added in slice onegah_slice1607 foreign  ['n2-1607.plc2.org', 'n2-1608.plc2.org', 'n2-1609.plc2.org']
+01:== added in slice onegai_slice1608 foreign  ['n2-1608.plc2.org', 'n2-1609.plc2.org', 'n2-1610.plc2.org']
+01:== added in slice onegaj_slice1609 foreign  ['n2-1609.plc2.org', 'n2-1610.plc2.org', 'n2-1611.plc2.org']
+01:== added in slice onegba_slice1610 foreign  ['n2-1610.plc2.org', 'n2-1611.plc2.org', 'n2-1612.plc2.org']
+01:== added in slice onegbb_slice1611 foreign  ['n2-1611.plc2.org', 'n2-1612.plc2.org', 'n2-1613.plc2.org']
+01:== added in slice onegbc_slice1612 foreign  ['n2-1612.plc2.org', 'n2-1613.plc2.org', 'n2-1614.plc2.org']
+01:== added in slice onegbd_slice1613 foreign  ['n2-1613.plc2.org', 'n2-1614.plc2.org', 'n2-1615.plc2.org']
+01:== added in slice onegbe_slice1614 foreign  ['n2-1614.plc2.org', 'n2-1615.plc2.org', 'n2-1616.plc2.org']
+01:== added in slice onegbf_slice1615 foreign  ['n2-1615.plc2.org', 'n2-1616.plc2.org', 'n2-1617.plc2.org']
+01:== added in slice onegbg_slice1616 foreign  ['n2-1616.plc2.org', 'n2-1617.plc2.org', 'n2-1618.plc2.org']
+01:== added in slice onegbh_slice1617 foreign  ['n2-1617.plc2.org', 'n2-1618.plc2.org', 'n2-1619.plc2.org']
+01:== added in slice onegbi_slice1618 foreign  ['n2-1618.plc2.org', 'n2-1619.plc2.org', 'n2-1620.plc2.org']
+01:== added in slice onegbj_slice1619 foreign  ['n2-1619.plc2.org', 'n2-1620.plc2.org', 'n2-1621.plc2.org']
+01:== added in slice onegca_slice1620 foreign  ['n2-1620.plc2.org', 'n2-1621.plc2.org', 'n2-1622.plc2.org']
+01:== added in slice onegcb_slice1621 foreign  ['n2-1621.plc2.org', 'n2-1622.plc2.org', 'n2-1623.plc2.org']
+01:== added in slice onegcc_slice1622 foreign  ['n2-1622.plc2.org', 'n2-1623.plc2.org', 'n2-1624.plc2.org']
+01:== added in slice onegcd_slice1623 foreign  ['n2-1623.plc2.org', 'n2-1624.plc2.org', 'n2-1625.plc2.org']
+01:== added in slice onegce_slice1624 foreign  ['n2-1624.plc2.org', 'n2-1625.plc2.org', 'n2-1626.plc2.org']
+01:== added in slice onegcf_slice1625 foreign  ['n2-1625.plc2.org', 'n2-1626.plc2.org', 'n2-1627.plc2.org']
+01:== added in slice onegcg_slice1626 foreign  ['n2-1626.plc2.org', 'n2-1627.plc2.org', 'n2-1628.plc2.org']
+01:== added in slice onegch_slice1627 foreign  ['n2-1627.plc2.org', 'n2-1628.plc2.org', 'n2-1629.plc2.org']
+01:== added in slice onegci_slice1628 foreign  ['n2-1628.plc2.org', 'n2-1629.plc2.org', 'n2-1630.plc2.org']
+01:== added in slice onegcj_slice1629 foreign  ['n2-1629.plc2.org', 'n2-1630.plc2.org', 'n2-1631.plc2.org']
+01:== added in slice onegda_slice1630 foreign  ['n2-1630.plc2.org', 'n2-1631.plc2.org', 'n2-1632.plc2.org']
+01:== added in slice onegdb_slice1631 foreign  ['n2-1631.plc2.org', 'n2-1632.plc2.org', 'n2-1633.plc2.org']
+01:== added in slice onegdc_slice1632 foreign  ['n2-1632.plc2.org', 'n2-1633.plc2.org', 'n2-1634.plc2.org']
+01:== added in slice onegdd_slice1633 foreign  ['n2-1633.plc2.org', 'n2-1634.plc2.org', 'n2-1635.plc2.org']
+01:== added in slice onegde_slice1634 foreign  ['n2-1634.plc2.org', 'n2-1635.plc2.org', 'n2-1636.plc2.org']
+01:== added in slice onegdf_slice1635 foreign  ['n2-1635.plc2.org', 'n2-1636.plc2.org', 'n2-1637.plc2.org']
+01:== added in slice onegdg_slice1636 foreign  ['n2-1636.plc2.org', 'n2-1637.plc2.org', 'n2-1638.plc2.org']
+01:== added in slice onegdh_slice1637 foreign  ['n2-1637.plc2.org', 'n2-1638.plc2.org', 'n2-1639.plc2.org']
+01:== added in slice onegdi_slice1638 foreign  ['n2-1638.plc2.org', 'n2-1639.plc2.org', 'n2-1640.plc2.org']
+01:== added in slice onegdj_slice1639 foreign  ['n2-1639.plc2.org', 'n2-1640.plc2.org', 'n2-1641.plc2.org']
+01:== added in slice onegea_slice1640 foreign  ['n2-1640.plc2.org', 'n2-1641.plc2.org', 'n2-1642.plc2.org']
+01:== added in slice onegeb_slice1641 foreign  ['n2-1641.plc2.org', 'n2-1642.plc2.org', 'n2-1643.plc2.org']
+01:== added in slice onegec_slice1642 foreign  ['n2-1642.plc2.org', 'n2-1643.plc2.org', 'n2-1644.plc2.org']
+01:== added in slice oneged_slice1643 foreign  ['n2-1643.plc2.org', 'n2-1644.plc2.org', 'n2-1645.plc2.org']
+01:== added in slice onegee_slice1644 foreign  ['n2-1644.plc2.org', 'n2-1645.plc2.org', 'n2-1646.plc2.org']
+01:== added in slice onegef_slice1645 foreign  ['n2-1645.plc2.org', 'n2-1646.plc2.org', 'n2-1647.plc2.org']
+01:== added in slice onegeg_slice1646 foreign  ['n2-1646.plc2.org', 'n2-1647.plc2.org', 'n2-1648.plc2.org']
+01:== added in slice onegeh_slice1647 foreign  ['n2-1647.plc2.org', 'n2-1648.plc2.org', 'n2-1649.plc2.org']
+01:== added in slice onegei_slice1648 foreign  ['n2-1648.plc2.org', 'n2-1649.plc2.org', 'n2-1650.plc2.org']
+01:== added in slice onegej_slice1649 foreign  ['n2-1649.plc2.org', 'n2-1650.plc2.org', 'n2-1651.plc2.org']
+01:== added in slice onegfa_slice1650 foreign  ['n2-1650.plc2.org', 'n2-1651.plc2.org', 'n2-1652.plc2.org']
+01:== added in slice onegfb_slice1651 foreign  ['n2-1651.plc2.org', 'n2-1652.plc2.org', 'n2-1653.plc2.org']
+01:== added in slice onegfc_slice1652 foreign  ['n2-1652.plc2.org', 'n2-1653.plc2.org', 'n2-1654.plc2.org']
+01:== added in slice onegfd_slice1653 foreign  ['n2-1653.plc2.org', 'n2-1654.plc2.org', 'n2-1655.plc2.org']
+01:== added in slice onegfe_slice1654 foreign  ['n2-1654.plc2.org', 'n2-1655.plc2.org', 'n2-1656.plc2.org']
+01:== added in slice onegff_slice1655 foreign  ['n2-1655.plc2.org', 'n2-1656.plc2.org', 'n2-1657.plc2.org']
+01:== added in slice onegfg_slice1656 foreign  ['n2-1656.plc2.org', 'n2-1657.plc2.org', 'n2-1658.plc2.org']
+01:== added in slice onegfh_slice1657 foreign  ['n2-1657.plc2.org', 'n2-1658.plc2.org', 'n2-1659.plc2.org']
+01:== added in slice onegfi_slice1658 foreign  ['n2-1658.plc2.org', 'n2-1659.plc2.org', 'n2-1660.plc2.org']
+01:== added in slice onegfj_slice1659 foreign  ['n2-1659.plc2.org', 'n2-1660.plc2.org', 'n2-1661.plc2.org']
+01:== added in slice onegga_slice1660 foreign  ['n2-1660.plc2.org', 'n2-1661.plc2.org', 'n2-1662.plc2.org']
+01:== added in slice oneggb_slice1661 foreign  ['n2-1661.plc2.org', 'n2-1662.plc2.org', 'n2-1663.plc2.org']
+01:== added in slice oneggc_slice1662 foreign  ['n2-1662.plc2.org', 'n2-1663.plc2.org', 'n2-1664.plc2.org']
+01:== added in slice oneggd_slice1663 foreign  ['n2-1663.plc2.org', 'n2-1664.plc2.org', 'n2-1665.plc2.org']
+01:== added in slice onegge_slice1664 foreign  ['n2-1664.plc2.org', 'n2-1665.plc2.org', 'n2-1666.plc2.org']
+01:== added in slice oneggf_slice1665 foreign  ['n2-1665.plc2.org', 'n2-1666.plc2.org', 'n2-1667.plc2.org']
+01:== added in slice oneggg_slice1666 foreign  ['n2-1666.plc2.org', 'n2-1667.plc2.org', 'n2-1668.plc2.org']
+01:== added in slice oneggh_slice1667 foreign  ['n2-1667.plc2.org', 'n2-1668.plc2.org', 'n2-1669.plc2.org']
+01:== added in slice oneggi_slice1668 foreign  ['n2-1668.plc2.org', 'n2-1669.plc2.org', 'n2-1670.plc2.org']
+01:== added in slice oneggj_slice1669 foreign  ['n2-1669.plc2.org', 'n2-1670.plc2.org', 'n2-1671.plc2.org']
+01:== added in slice onegha_slice1670 foreign  ['n2-1670.plc2.org', 'n2-1671.plc2.org', 'n2-1672.plc2.org']
+01:== added in slice oneghb_slice1671 foreign  ['n2-1671.plc2.org', 'n2-1672.plc2.org', 'n2-1673.plc2.org']
+01:== added in slice oneghc_slice1672 foreign  ['n2-1672.plc2.org', 'n2-1673.plc2.org', 'n2-1674.plc2.org']
+01:== added in slice oneghd_slice1673 foreign  ['n2-1673.plc2.org', 'n2-1674.plc2.org', 'n2-1675.plc2.org']
+01:== added in slice oneghe_slice1674 foreign  ['n2-1674.plc2.org', 'n2-1675.plc2.org', 'n2-1676.plc2.org']
+01:== added in slice oneghf_slice1675 foreign  ['n2-1675.plc2.org', 'n2-1676.plc2.org', 'n2-1677.plc2.org']
+01:== added in slice oneghg_slice1676 foreign  ['n2-1676.plc2.org', 'n2-1677.plc2.org', 'n2-1678.plc2.org']
+01:== added in slice oneghh_slice1677 foreign  ['n2-1677.plc2.org', 'n2-1678.plc2.org', 'n2-1679.plc2.org']
+01:== added in slice oneghi_slice1678 foreign  ['n2-1678.plc2.org', 'n2-1679.plc2.org', 'n2-1680.plc2.org']
+01:== added in slice oneghj_slice1679 foreign  ['n2-1679.plc2.org', 'n2-1680.plc2.org', 'n2-1681.plc2.org']
+01:== added in slice onegia_slice1680 foreign  ['n2-1680.plc2.org', 'n2-1681.plc2.org', 'n2-1682.plc2.org']
+01:== added in slice onegib_slice1681 foreign  ['n2-1681.plc2.org', 'n2-1682.plc2.org', 'n2-1683.plc2.org']
+01:== added in slice onegic_slice1682 foreign  ['n2-1682.plc2.org', 'n2-1683.plc2.org', 'n2-1684.plc2.org']
+01:== added in slice onegid_slice1683 foreign  ['n2-1683.plc2.org', 'n2-1684.plc2.org', 'n2-1685.plc2.org']
+01:== added in slice onegie_slice1684 foreign  ['n2-1684.plc2.org', 'n2-1685.plc2.org', 'n2-1686.plc2.org']
+01:== added in slice onegif_slice1685 foreign  ['n2-1685.plc2.org', 'n2-1686.plc2.org', 'n2-1687.plc2.org']
+01:== added in slice onegig_slice1686 foreign  ['n2-1686.plc2.org', 'n2-1687.plc2.org', 'n2-1688.plc2.org']
+01:== added in slice onegih_slice1687 foreign  ['n2-1687.plc2.org', 'n2-1688.plc2.org', 'n2-1689.plc2.org']
+01:== added in slice onegii_slice1688 foreign  ['n2-1688.plc2.org', 'n2-1689.plc2.org', 'n2-1690.plc2.org']
+01:== added in slice onegij_slice1689 foreign  ['n2-1689.plc2.org', 'n2-1690.plc2.org', 'n2-1691.plc2.org']
+01:== added in slice onegja_slice1690 foreign  ['n2-1690.plc2.org', 'n2-1691.plc2.org', 'n2-1692.plc2.org']
+01:== added in slice onegjb_slice1691 foreign  ['n2-1691.plc2.org', 'n2-1692.plc2.org', 'n2-1693.plc2.org']
+01:== added in slice onegjc_slice1692 foreign  ['n2-1692.plc2.org', 'n2-1693.plc2.org', 'n2-1694.plc2.org']
+01:== added in slice onegjd_slice1693 foreign  ['n2-1693.plc2.org', 'n2-1694.plc2.org', 'n2-1695.plc2.org']
+01:== added in slice onegje_slice1694 foreign  ['n2-1694.plc2.org', 'n2-1695.plc2.org', 'n2-1696.plc2.org']
+01:== added in slice onegjf_slice1695 foreign  ['n2-1695.plc2.org', 'n2-1696.plc2.org', 'n2-1697.plc2.org']
+01:== added in slice onegjg_slice1696 foreign  ['n2-1696.plc2.org', 'n2-1697.plc2.org', 'n2-1698.plc2.org']
+01:== added in slice onegjh_slice1697 foreign  ['n2-1697.plc2.org', 'n2-1698.plc2.org', 'n2-1699.plc2.org']
+01:== added in slice onegji_slice1698 foreign  ['n2-1698.plc2.org', 'n2-1699.plc2.org', 'n2-1700.plc2.org']
+01:== added in slice onegjj_slice1699 foreign  ['n2-1699.plc2.org', 'n2-1700.plc2.org', 'n2-1701.plc2.org']
+01:== added in slice onehaa_slice1700 foreign  ['n2-1700.plc2.org', 'n2-1701.plc2.org', 'n2-1702.plc2.org']
+01:== added in slice onehab_slice1701 foreign  ['n2-1701.plc2.org', 'n2-1702.plc2.org', 'n2-1703.plc2.org']
+01:== added in slice onehac_slice1702 foreign  ['n2-1702.plc2.org', 'n2-1703.plc2.org', 'n2-1704.plc2.org']
+01:== added in slice onehad_slice1703 foreign  ['n2-1703.plc2.org', 'n2-1704.plc2.org', 'n2-1705.plc2.org']
+01:== added in slice onehae_slice1704 foreign  ['n2-1704.plc2.org', 'n2-1705.plc2.org', 'n2-1706.plc2.org']
+01:== added in slice onehaf_slice1705 foreign  ['n2-1705.plc2.org', 'n2-1706.plc2.org', 'n2-1707.plc2.org']
+01:== added in slice onehag_slice1706 foreign  ['n2-1706.plc2.org', 'n2-1707.plc2.org', 'n2-1708.plc2.org']
+01:== added in slice onehah_slice1707 foreign  ['n2-1707.plc2.org', 'n2-1708.plc2.org', 'n2-1709.plc2.org']
+01:== added in slice onehai_slice1708 foreign  ['n2-1708.plc2.org', 'n2-1709.plc2.org', 'n2-1710.plc2.org']
+01:== added in slice onehaj_slice1709 foreign  ['n2-1709.plc2.org', 'n2-1710.plc2.org', 'n2-1711.plc2.org']
+01:== added in slice onehba_slice1710 foreign  ['n2-1710.plc2.org', 'n2-1711.plc2.org', 'n2-1712.plc2.org']
+01:== added in slice onehbb_slice1711 foreign  ['n2-1711.plc2.org', 'n2-1712.plc2.org', 'n2-1713.plc2.org']
+01:== added in slice onehbc_slice1712 foreign  ['n2-1712.plc2.org', 'n2-1713.plc2.org', 'n2-1714.plc2.org']
+01:== added in slice onehbd_slice1713 foreign  ['n2-1713.plc2.org', 'n2-1714.plc2.org', 'n2-1715.plc2.org']
+01:== added in slice onehbe_slice1714 foreign  ['n2-1714.plc2.org', 'n2-1715.plc2.org', 'n2-1716.plc2.org']
+01:== added in slice onehbf_slice1715 foreign  ['n2-1715.plc2.org', 'n2-1716.plc2.org', 'n2-1717.plc2.org']
+01:== added in slice onehbg_slice1716 foreign  ['n2-1716.plc2.org', 'n2-1717.plc2.org', 'n2-1718.plc2.org']
+01:== added in slice onehbh_slice1717 foreign  ['n2-1717.plc2.org', 'n2-1718.plc2.org', 'n2-1719.plc2.org']
+01:== added in slice onehbi_slice1718 foreign  ['n2-1718.plc2.org', 'n2-1719.plc2.org', 'n2-1720.plc2.org']
+01:== added in slice onehbj_slice1719 foreign  ['n2-1719.plc2.org', 'n2-1720.plc2.org', 'n2-1721.plc2.org']
+01:== added in slice onehca_slice1720 foreign  ['n2-1720.plc2.org', 'n2-1721.plc2.org', 'n2-1722.plc2.org']
+01:== added in slice onehcb_slice1721 foreign  ['n2-1721.plc2.org', 'n2-1722.plc2.org', 'n2-1723.plc2.org']
+01:== added in slice onehcc_slice1722 foreign  ['n2-1722.plc2.org', 'n2-1723.plc2.org', 'n2-1724.plc2.org']
+01:== added in slice onehcd_slice1723 foreign  ['n2-1723.plc2.org', 'n2-1724.plc2.org', 'n2-1725.plc2.org']
+01:== added in slice onehce_slice1724 foreign  ['n2-1724.plc2.org', 'n2-1725.plc2.org', 'n2-1726.plc2.org']
+01:== added in slice onehcf_slice1725 foreign  ['n2-1725.plc2.org', 'n2-1726.plc2.org', 'n2-1727.plc2.org']
+01:== added in slice onehcg_slice1726 foreign  ['n2-1726.plc2.org', 'n2-1727.plc2.org', 'n2-1728.plc2.org']
+01:== added in slice onehch_slice1727 foreign  ['n2-1727.plc2.org', 'n2-1728.plc2.org', 'n2-1729.plc2.org']
+01:== added in slice onehci_slice1728 foreign  ['n2-1728.plc2.org', 'n2-1729.plc2.org', 'n2-1730.plc2.org']
+01:== added in slice onehcj_slice1729 foreign  ['n2-1729.plc2.org', 'n2-1730.plc2.org', 'n2-1731.plc2.org']
+01:== added in slice onehda_slice1730 foreign  ['n2-1730.plc2.org', 'n2-1731.plc2.org', 'n2-1732.plc2.org']
+01:== added in slice onehdb_slice1731 foreign  ['n2-1731.plc2.org', 'n2-1732.plc2.org', 'n2-1733.plc2.org']
+01:== added in slice onehdc_slice1732 foreign  ['n2-1732.plc2.org', 'n2-1733.plc2.org', 'n2-1734.plc2.org']
+01:== added in slice onehdd_slice1733 foreign  ['n2-1733.plc2.org', 'n2-1734.plc2.org', 'n2-1735.plc2.org']
+01:== added in slice onehde_slice1734 foreign  ['n2-1734.plc2.org', 'n2-1735.plc2.org', 'n2-1736.plc2.org']
+01:== added in slice onehdf_slice1735 foreign  ['n2-1735.plc2.org', 'n2-1736.plc2.org', 'n2-1737.plc2.org']
+01:== added in slice onehdg_slice1736 foreign  ['n2-1736.plc2.org', 'n2-1737.plc2.org', 'n2-1738.plc2.org']
+01:== added in slice onehdh_slice1737 foreign  ['n2-1737.plc2.org', 'n2-1738.plc2.org', 'n2-1739.plc2.org']
+01:== added in slice onehdi_slice1738 foreign  ['n2-1738.plc2.org', 'n2-1739.plc2.org', 'n2-1740.plc2.org']
+01:== added in slice onehdj_slice1739 foreign  ['n2-1739.plc2.org', 'n2-1740.plc2.org', 'n2-1741.plc2.org']
+01:== added in slice onehea_slice1740 foreign  ['n2-1740.plc2.org', 'n2-1741.plc2.org', 'n2-1742.plc2.org']
+01:== added in slice oneheb_slice1741 foreign  ['n2-1741.plc2.org', 'n2-1742.plc2.org', 'n2-1743.plc2.org']
+01:== added in slice onehec_slice1742 foreign  ['n2-1742.plc2.org', 'n2-1743.plc2.org', 'n2-1744.plc2.org']
+01:== added in slice onehed_slice1743 foreign  ['n2-1743.plc2.org', 'n2-1744.plc2.org', 'n2-1745.plc2.org']
+01:== added in slice onehee_slice1744 foreign  ['n2-1744.plc2.org', 'n2-1745.plc2.org', 'n2-1746.plc2.org']
+01:== added in slice onehef_slice1745 foreign  ['n2-1745.plc2.org', 'n2-1746.plc2.org', 'n2-1747.plc2.org']
+01:== added in slice oneheg_slice1746 foreign  ['n2-1746.plc2.org', 'n2-1747.plc2.org', 'n2-1748.plc2.org']
+01:== added in slice oneheh_slice1747 foreign  ['n2-1747.plc2.org', 'n2-1748.plc2.org', 'n2-1749.plc2.org']
+01:== added in slice onehei_slice1748 foreign  ['n2-1748.plc2.org', 'n2-1749.plc2.org', 'n2-1750.plc2.org']
+01:== added in slice onehej_slice1749 foreign  ['n2-1749.plc2.org', 'n2-1750.plc2.org', 'n2-1751.plc2.org']
+01:== added in slice onehfa_slice1750 foreign  ['n2-1750.plc2.org', 'n2-1751.plc2.org', 'n2-1752.plc2.org']
+01:== added in slice onehfb_slice1751 foreign  ['n2-1751.plc2.org', 'n2-1752.plc2.org', 'n2-1753.plc2.org']
+01:== added in slice onehfc_slice1752 foreign  ['n2-1752.plc2.org', 'n2-1753.plc2.org', 'n2-1754.plc2.org']
+01:== added in slice onehfd_slice1753 foreign  ['n2-1753.plc2.org', 'n2-1754.plc2.org', 'n2-1755.plc2.org']
+01:== added in slice onehfe_slice1754 foreign  ['n2-1754.plc2.org', 'n2-1755.plc2.org', 'n2-1756.plc2.org']
+01:== added in slice onehff_slice1755 foreign  ['n2-1755.plc2.org', 'n2-1756.plc2.org', 'n2-1757.plc2.org']
+01:== added in slice onehfg_slice1756 foreign  ['n2-1756.plc2.org', 'n2-1757.plc2.org', 'n2-1758.plc2.org']
+01:== added in slice onehfh_slice1757 foreign  ['n2-1757.plc2.org', 'n2-1758.plc2.org', 'n2-1759.plc2.org']
+01:== added in slice onehfi_slice1758 foreign  ['n2-1758.plc2.org', 'n2-1759.plc2.org', 'n2-1760.plc2.org']
+01:== added in slice onehfj_slice1759 foreign  ['n2-1759.plc2.org', 'n2-1760.plc2.org', 'n2-1761.plc2.org']
+01:== added in slice onehga_slice1760 foreign  ['n2-1760.plc2.org', 'n2-1761.plc2.org', 'n2-1762.plc2.org']
+01:== added in slice onehgb_slice1761 foreign  ['n2-1761.plc2.org', 'n2-1762.plc2.org', 'n2-1763.plc2.org']
+01:== added in slice onehgc_slice1762 foreign  ['n2-1762.plc2.org', 'n2-1763.plc2.org', 'n2-1764.plc2.org']
+01:== added in slice onehgd_slice1763 foreign  ['n2-1763.plc2.org', 'n2-1764.plc2.org', 'n2-1765.plc2.org']
+01:== added in slice onehge_slice1764 foreign  ['n2-1764.plc2.org', 'n2-1765.plc2.org', 'n2-1766.plc2.org']
+01:== added in slice onehgf_slice1765 foreign  ['n2-1765.plc2.org', 'n2-1766.plc2.org', 'n2-1767.plc2.org']
+01:== added in slice onehgg_slice1766 foreign  ['n2-1766.plc2.org', 'n2-1767.plc2.org', 'n2-1768.plc2.org']
+01:== added in slice onehgh_slice1767 foreign  ['n2-1767.plc2.org', 'n2-1768.plc2.org', 'n2-1769.plc2.org']
+01:== added in slice onehgi_slice1768 foreign  ['n2-1768.plc2.org', 'n2-1769.plc2.org', 'n2-1770.plc2.org']
+01:== added in slice onehgj_slice1769 foreign  ['n2-1769.plc2.org', 'n2-1770.plc2.org', 'n2-1771.plc2.org']
+01:== added in slice onehha_slice1770 foreign  ['n2-1770.plc2.org', 'n2-1771.plc2.org', 'n2-1772.plc2.org']
+01:== added in slice onehhb_slice1771 foreign  ['n2-1771.plc2.org', 'n2-1772.plc2.org', 'n2-1773.plc2.org']
+01:== added in slice onehhc_slice1772 foreign  ['n2-1772.plc2.org', 'n2-1773.plc2.org', 'n2-1774.plc2.org']
+01:== added in slice onehhd_slice1773 foreign  ['n2-1773.plc2.org', 'n2-1774.plc2.org', 'n2-1775.plc2.org']
+01:== added in slice onehhe_slice1774 foreign  ['n2-1774.plc2.org', 'n2-1775.plc2.org', 'n2-1776.plc2.org']
+01:== added in slice onehhf_slice1775 foreign  ['n2-1775.plc2.org', 'n2-1776.plc2.org', 'n2-1777.plc2.org']
+01:== added in slice onehhg_slice1776 foreign  ['n2-1776.plc2.org', 'n2-1777.plc2.org', 'n2-1778.plc2.org']
+01:== added in slice onehhh_slice1777 foreign  ['n2-1777.plc2.org', 'n2-1778.plc2.org', 'n2-1779.plc2.org']
+01:== added in slice onehhi_slice1778 foreign  ['n2-1778.plc2.org', 'n2-1779.plc2.org', 'n2-1780.plc2.org']
+01:== added in slice onehhj_slice1779 foreign  ['n2-1779.plc2.org', 'n2-1780.plc2.org', 'n2-1781.plc2.org']
+01:== added in slice onehia_slice1780 foreign  ['n2-1780.plc2.org', 'n2-1781.plc2.org', 'n2-1782.plc2.org']
+01:== added in slice onehib_slice1781 foreign  ['n2-1781.plc2.org', 'n2-1782.plc2.org', 'n2-1783.plc2.org']
+01:== added in slice onehic_slice1782 foreign  ['n2-1782.plc2.org', 'n2-1783.plc2.org', 'n2-1784.plc2.org']
+01:== added in slice onehid_slice1783 foreign  ['n2-1783.plc2.org', 'n2-1784.plc2.org', 'n2-1785.plc2.org']
+01:== added in slice onehie_slice1784 foreign  ['n2-1784.plc2.org', 'n2-1785.plc2.org', 'n2-1786.plc2.org']
+01:== added in slice onehif_slice1785 foreign  ['n2-1785.plc2.org', 'n2-1786.plc2.org', 'n2-1787.plc2.org']
+01:== added in slice onehig_slice1786 foreign  ['n2-1786.plc2.org', 'n2-1787.plc2.org', 'n2-1788.plc2.org']
+01:== added in slice onehih_slice1787 foreign  ['n2-1787.plc2.org', 'n2-1788.plc2.org', 'n2-1789.plc2.org']
+01:== added in slice onehii_slice1788 foreign  ['n2-1788.plc2.org', 'n2-1789.plc2.org', 'n2-1790.plc2.org']
+01:== added in slice onehij_slice1789 foreign  ['n2-1789.plc2.org', 'n2-1790.plc2.org', 'n2-1791.plc2.org']
+01:== added in slice onehja_slice1790 foreign  ['n2-1790.plc2.org', 'n2-1791.plc2.org', 'n2-1792.plc2.org']
+01:== added in slice onehjb_slice1791 foreign  ['n2-1791.plc2.org', 'n2-1792.plc2.org', 'n2-1793.plc2.org']
+01:== added in slice onehjc_slice1792 foreign  ['n2-1792.plc2.org', 'n2-1793.plc2.org', 'n2-1794.plc2.org']
+01:== added in slice onehjd_slice1793 foreign  ['n2-1793.plc2.org', 'n2-1794.plc2.org', 'n2-1795.plc2.org']
+01:== added in slice onehje_slice1794 foreign  ['n2-1794.plc2.org', 'n2-1795.plc2.org', 'n2-1796.plc2.org']
+01:== added in slice onehjf_slice1795 foreign  ['n2-1795.plc2.org', 'n2-1796.plc2.org', 'n2-1797.plc2.org']
+01:== added in slice onehjg_slice1796 foreign  ['n2-1796.plc2.org', 'n2-1797.plc2.org', 'n2-1798.plc2.org']
+01:== added in slice onehjh_slice1797 foreign  ['n2-1797.plc2.org', 'n2-1798.plc2.org', 'n2-1799.plc2.org']
+01:== added in slice onehji_slice1798 foreign  ['n2-1798.plc2.org', 'n2-1799.plc2.org', 'n2-1800.plc2.org']
+01:== added in slice onehjj_slice1799 foreign  ['n2-1799.plc2.org', 'n2-1800.plc2.org', 'n2-1801.plc2.org']
+01:== added in slice oneiaa_slice1800 foreign  ['n2-1800.plc2.org', 'n2-1801.plc2.org', 'n2-1802.plc2.org']
+01:== added in slice oneiab_slice1801 foreign  ['n2-1801.plc2.org', 'n2-1802.plc2.org', 'n2-1803.plc2.org']
+01:== added in slice oneiac_slice1802 foreign  ['n2-1802.plc2.org', 'n2-1803.plc2.org', 'n2-1804.plc2.org']
+01:== added in slice oneiad_slice1803 foreign  ['n2-1803.plc2.org', 'n2-1804.plc2.org', 'n2-1805.plc2.org']
+01:== added in slice oneiae_slice1804 foreign  ['n2-1804.plc2.org', 'n2-1805.plc2.org', 'n2-1806.plc2.org']
+01:== added in slice oneiaf_slice1805 foreign  ['n2-1805.plc2.org', 'n2-1806.plc2.org', 'n2-1807.plc2.org']
+01:== added in slice oneiag_slice1806 foreign  ['n2-1806.plc2.org', 'n2-1807.plc2.org', 'n2-1808.plc2.org']
+01:== added in slice oneiah_slice1807 foreign  ['n2-1807.plc2.org', 'n2-1808.plc2.org', 'n2-1809.plc2.org']
+01:== added in slice oneiai_slice1808 foreign  ['n2-1808.plc2.org', 'n2-1809.plc2.org', 'n2-1810.plc2.org']
+01:== added in slice oneiaj_slice1809 foreign  ['n2-1809.plc2.org', 'n2-1810.plc2.org', 'n2-1811.plc2.org']
+01:== added in slice oneiba_slice1810 foreign  ['n2-1810.plc2.org', 'n2-1811.plc2.org', 'n2-1812.plc2.org']
+01:== added in slice oneibb_slice1811 foreign  ['n2-1811.plc2.org', 'n2-1812.plc2.org', 'n2-1813.plc2.org']
+01:== added in slice oneibc_slice1812 foreign  ['n2-1812.plc2.org', 'n2-1813.plc2.org', 'n2-1814.plc2.org']
+01:== added in slice oneibd_slice1813 foreign  ['n2-1813.plc2.org', 'n2-1814.plc2.org', 'n2-1815.plc2.org']
+01:== added in slice oneibe_slice1814 foreign  ['n2-1814.plc2.org', 'n2-1815.plc2.org', 'n2-1816.plc2.org']
+01:== added in slice oneibf_slice1815 foreign  ['n2-1815.plc2.org', 'n2-1816.plc2.org', 'n2-1817.plc2.org']
+01:== added in slice oneibg_slice1816 foreign  ['n2-1816.plc2.org', 'n2-1817.plc2.org', 'n2-1818.plc2.org']
+01:== added in slice oneibh_slice1817 foreign  ['n2-1817.plc2.org', 'n2-1818.plc2.org', 'n2-1819.plc2.org']
+01:== added in slice oneibi_slice1818 foreign  ['n2-1818.plc2.org', 'n2-1819.plc2.org', 'n2-1820.plc2.org']
+01:== added in slice oneibj_slice1819 foreign  ['n2-1819.plc2.org', 'n2-1820.plc2.org', 'n2-1821.plc2.org']
+01:== added in slice oneica_slice1820 foreign  ['n2-1820.plc2.org', 'n2-1821.plc2.org', 'n2-1822.plc2.org']
+01:== added in slice oneicb_slice1821 foreign  ['n2-1821.plc2.org', 'n2-1822.plc2.org', 'n2-1823.plc2.org']
+01:== added in slice oneicc_slice1822 foreign  ['n2-1822.plc2.org', 'n2-1823.plc2.org', 'n2-1824.plc2.org']
+01:== added in slice oneicd_slice1823 foreign  ['n2-1823.plc2.org', 'n2-1824.plc2.org', 'n2-1825.plc2.org']
+01:== added in slice oneice_slice1824 foreign  ['n2-1824.plc2.org', 'n2-1825.plc2.org', 'n2-1826.plc2.org']
+01:== added in slice oneicf_slice1825 foreign  ['n2-1825.plc2.org', 'n2-1826.plc2.org', 'n2-1827.plc2.org']
+01:== added in slice oneicg_slice1826 foreign  ['n2-1826.plc2.org', 'n2-1827.plc2.org', 'n2-1828.plc2.org']
+01:== added in slice oneich_slice1827 foreign  ['n2-1827.plc2.org', 'n2-1828.plc2.org', 'n2-1829.plc2.org']
+01:== added in slice oneici_slice1828 foreign  ['n2-1828.plc2.org', 'n2-1829.plc2.org', 'n2-1830.plc2.org']
+01:== added in slice oneicj_slice1829 foreign  ['n2-1829.plc2.org', 'n2-1830.plc2.org', 'n2-1831.plc2.org']
+01:== added in slice oneida_slice1830 foreign  ['n2-1830.plc2.org', 'n2-1831.plc2.org', 'n2-1832.plc2.org']
+01:== added in slice oneidb_slice1831 foreign  ['n2-1831.plc2.org', 'n2-1832.plc2.org', 'n2-1833.plc2.org']
+01:== added in slice oneidc_slice1832 foreign  ['n2-1832.plc2.org', 'n2-1833.plc2.org', 'n2-1834.plc2.org']
+01:== added in slice oneidd_slice1833 foreign  ['n2-1833.plc2.org', 'n2-1834.plc2.org', 'n2-1835.plc2.org']
+01:== added in slice oneide_slice1834 foreign  ['n2-1834.plc2.org', 'n2-1835.plc2.org', 'n2-1836.plc2.org']
+01:== added in slice oneidf_slice1835 foreign  ['n2-1835.plc2.org', 'n2-1836.plc2.org', 'n2-1837.plc2.org']
+01:== added in slice oneidg_slice1836 foreign  ['n2-1836.plc2.org', 'n2-1837.plc2.org', 'n2-1838.plc2.org']
+01:== added in slice oneidh_slice1837 foreign  ['n2-1837.plc2.org', 'n2-1838.plc2.org', 'n2-1839.plc2.org']
+01:== added in slice oneidi_slice1838 foreign  ['n2-1838.plc2.org', 'n2-1839.plc2.org', 'n2-1840.plc2.org']
+01:== added in slice oneidj_slice1839 foreign  ['n2-1839.plc2.org', 'n2-1840.plc2.org', 'n2-1841.plc2.org']
+01:== added in slice oneiea_slice1840 foreign  ['n2-1840.plc2.org', 'n2-1841.plc2.org', 'n2-1842.plc2.org']
+01:== added in slice oneieb_slice1841 foreign  ['n2-1841.plc2.org', 'n2-1842.plc2.org', 'n2-1843.plc2.org']
+01:== added in slice oneiec_slice1842 foreign  ['n2-1842.plc2.org', 'n2-1843.plc2.org', 'n2-1844.plc2.org']
+01:== added in slice oneied_slice1843 foreign  ['n2-1843.plc2.org', 'n2-1844.plc2.org', 'n2-1845.plc2.org']
+01:== added in slice oneiee_slice1844 foreign  ['n2-1844.plc2.org', 'n2-1845.plc2.org', 'n2-1846.plc2.org']
+01:== added in slice oneief_slice1845 foreign  ['n2-1845.plc2.org', 'n2-1846.plc2.org', 'n2-1847.plc2.org']
+01:== added in slice oneieg_slice1846 foreign  ['n2-1846.plc2.org', 'n2-1847.plc2.org', 'n2-1848.plc2.org']
+01:== added in slice oneieh_slice1847 foreign  ['n2-1847.plc2.org', 'n2-1848.plc2.org', 'n2-1849.plc2.org']
+01:== added in slice oneiei_slice1848 foreign  ['n2-1848.plc2.org', 'n2-1849.plc2.org', 'n2-1850.plc2.org']
+01:== added in slice oneiej_slice1849 foreign  ['n2-1849.plc2.org', 'n2-1850.plc2.org', 'n2-1851.plc2.org']
+01:== added in slice oneifa_slice1850 foreign  ['n2-1850.plc2.org', 'n2-1851.plc2.org', 'n2-1852.plc2.org']
+01:== added in slice oneifb_slice1851 foreign  ['n2-1851.plc2.org', 'n2-1852.plc2.org', 'n2-1853.plc2.org']
+01:== added in slice oneifc_slice1852 foreign  ['n2-1852.plc2.org', 'n2-1853.plc2.org', 'n2-1854.plc2.org']
+01:== added in slice oneifd_slice1853 foreign  ['n2-1853.plc2.org', 'n2-1854.plc2.org', 'n2-1855.plc2.org']
+01:== added in slice oneife_slice1854 foreign  ['n2-1854.plc2.org', 'n2-1855.plc2.org', 'n2-1856.plc2.org']
+01:== added in slice oneiff_slice1855 foreign  ['n2-1855.plc2.org', 'n2-1856.plc2.org', 'n2-1857.plc2.org']
+01:== added in slice oneifg_slice1856 foreign  ['n2-1856.plc2.org', 'n2-1857.plc2.org', 'n2-1858.plc2.org']
+01:== added in slice oneifh_slice1857 foreign  ['n2-1857.plc2.org', 'n2-1858.plc2.org', 'n2-1859.plc2.org']
+01:== added in slice oneifi_slice1858 foreign  ['n2-1858.plc2.org', 'n2-1859.plc2.org', 'n2-1860.plc2.org']
+01:== added in slice oneifj_slice1859 foreign  ['n2-1859.plc2.org', 'n2-1860.plc2.org', 'n2-1861.plc2.org']
+01:== added in slice oneiga_slice1860 foreign  ['n2-1860.plc2.org', 'n2-1861.plc2.org', 'n2-1862.plc2.org']
+01:== added in slice oneigb_slice1861 foreign  ['n2-1861.plc2.org', 'n2-1862.plc2.org', 'n2-1863.plc2.org']
+01:== added in slice oneigc_slice1862 foreign  ['n2-1862.plc2.org', 'n2-1863.plc2.org', 'n2-1864.plc2.org']
+01:== added in slice oneigd_slice1863 foreign  ['n2-1863.plc2.org', 'n2-1864.plc2.org', 'n2-1865.plc2.org']
+01:== added in slice oneige_slice1864 foreign  ['n2-1864.plc2.org', 'n2-1865.plc2.org', 'n2-1866.plc2.org']
+01:== added in slice oneigf_slice1865 foreign  ['n2-1865.plc2.org', 'n2-1866.plc2.org', 'n2-1867.plc2.org']
+01:== added in slice oneigg_slice1866 foreign  ['n2-1866.plc2.org', 'n2-1867.plc2.org', 'n2-1868.plc2.org']
+01:== added in slice oneigh_slice1867 foreign  ['n2-1867.plc2.org', 'n2-1868.plc2.org', 'n2-1869.plc2.org']
+01:== added in slice oneigi_slice1868 foreign  ['n2-1868.plc2.org', 'n2-1869.plc2.org', 'n2-1870.plc2.org']
+01:== added in slice oneigj_slice1869 foreign  ['n2-1869.plc2.org', 'n2-1870.plc2.org', 'n2-1871.plc2.org']
+01:== added in slice oneiha_slice1870 foreign  ['n2-1870.plc2.org', 'n2-1871.plc2.org', 'n2-1872.plc2.org']
+01:== added in slice oneihb_slice1871 foreign  ['n2-1871.plc2.org', 'n2-1872.plc2.org', 'n2-1873.plc2.org']
+01:== added in slice oneihc_slice1872 foreign  ['n2-1872.plc2.org', 'n2-1873.plc2.org', 'n2-1874.plc2.org']
+01:== added in slice oneihd_slice1873 foreign  ['n2-1873.plc2.org', 'n2-1874.plc2.org', 'n2-1875.plc2.org']
+01:== added in slice oneihe_slice1874 foreign  ['n2-1874.plc2.org', 'n2-1875.plc2.org', 'n2-1876.plc2.org']
+01:== added in slice oneihf_slice1875 foreign  ['n2-1875.plc2.org', 'n2-1876.plc2.org', 'n2-1877.plc2.org']
+01:== added in slice oneihg_slice1876 foreign  ['n2-1876.plc2.org', 'n2-1877.plc2.org', 'n2-1878.plc2.org']
+01:== added in slice oneihh_slice1877 foreign  ['n2-1877.plc2.org', 'n2-1878.plc2.org', 'n2-1879.plc2.org']
+01:== added in slice oneihi_slice1878 foreign  ['n2-1878.plc2.org', 'n2-1879.plc2.org', 'n2-1880.plc2.org']
+01:== added in slice oneihj_slice1879 foreign  ['n2-1879.plc2.org', 'n2-1880.plc2.org', 'n2-1881.plc2.org']
+01:== added in slice oneiia_slice1880 foreign  ['n2-1880.plc2.org', 'n2-1881.plc2.org', 'n2-1882.plc2.org']
+01:== added in slice oneiib_slice1881 foreign  ['n2-1881.plc2.org', 'n2-1882.plc2.org', 'n2-1883.plc2.org']
+01:== added in slice oneiic_slice1882 foreign  ['n2-1882.plc2.org', 'n2-1883.plc2.org', 'n2-1884.plc2.org']
+01:== added in slice oneiid_slice1883 foreign  ['n2-1883.plc2.org', 'n2-1884.plc2.org', 'n2-1885.plc2.org']
+01:== added in slice oneiie_slice1884 foreign  ['n2-1884.plc2.org', 'n2-1885.plc2.org', 'n2-1886.plc2.org']
+01:== added in slice oneiif_slice1885 foreign  ['n2-1885.plc2.org', 'n2-1886.plc2.org', 'n2-1887.plc2.org']
+01:== added in slice oneiig_slice1886 foreign  ['n2-1886.plc2.org', 'n2-1887.plc2.org', 'n2-1888.plc2.org']
+01:== added in slice oneiih_slice1887 foreign  ['n2-1887.plc2.org', 'n2-1888.plc2.org', 'n2-1889.plc2.org']
+01:== added in slice oneiii_slice1888 foreign  ['n2-1888.plc2.org', 'n2-1889.plc2.org', 'n2-1890.plc2.org']
+01:== added in slice oneiij_slice1889 foreign  ['n2-1889.plc2.org', 'n2-1890.plc2.org', 'n2-1891.plc2.org']
+01:== added in slice oneija_slice1890 foreign  ['n2-1890.plc2.org', 'n2-1891.plc2.org', 'n2-1892.plc2.org']
+01:== added in slice oneijb_slice1891 foreign  ['n2-1891.plc2.org', 'n2-1892.plc2.org', 'n2-1893.plc2.org']
+01:== added in slice oneijc_slice1892 foreign  ['n2-1892.plc2.org', 'n2-1893.plc2.org', 'n2-1894.plc2.org']
+01:== added in slice oneijd_slice1893 foreign  ['n2-1893.plc2.org', 'n2-1894.plc2.org', 'n2-1895.plc2.org']
+01:== added in slice oneije_slice1894 foreign  ['n2-1894.plc2.org', 'n2-1895.plc2.org', 'n2-1896.plc2.org']
+01:== added in slice oneijf_slice1895 foreign  ['n2-1895.plc2.org', 'n2-1896.plc2.org', 'n2-1897.plc2.org']
+01:== added in slice oneijg_slice1896 foreign  ['n2-1896.plc2.org', 'n2-1897.plc2.org', 'n2-1898.plc2.org']
+01:== added in slice oneijh_slice1897 foreign  ['n2-1897.plc2.org', 'n2-1898.plc2.org', 'n2-1899.plc2.org']
+01:== added in slice oneiji_slice1898 foreign  ['n2-1898.plc2.org', 'n2-1899.plc2.org', 'n2-1900.plc2.org']
+01:== added in slice oneijj_slice1899 foreign  ['n2-1899.plc2.org', 'n2-1900.plc2.org', 'n2-1901.plc2.org']
+01:== added in slice onejaa_slice1900 foreign  ['n2-1900.plc2.org', 'n2-1901.plc2.org', 'n2-1902.plc2.org']
+01:== added in slice onejab_slice1901 foreign  ['n2-1901.plc2.org', 'n2-1902.plc2.org', 'n2-1903.plc2.org']
+01:== added in slice onejac_slice1902 foreign  ['n2-1902.plc2.org', 'n2-1903.plc2.org', 'n2-1904.plc2.org']
+01:== added in slice onejad_slice1903 foreign  ['n2-1903.plc2.org', 'n2-1904.plc2.org', 'n2-1905.plc2.org']
+01:== added in slice onejae_slice1904 foreign  ['n2-1904.plc2.org', 'n2-1905.plc2.org', 'n2-1906.plc2.org']
+01:== added in slice onejaf_slice1905 foreign  ['n2-1905.plc2.org', 'n2-1906.plc2.org', 'n2-1907.plc2.org']
+01:== added in slice onejag_slice1906 foreign  ['n2-1906.plc2.org', 'n2-1907.plc2.org', 'n2-1908.plc2.org']
+01:== added in slice onejah_slice1907 foreign  ['n2-1907.plc2.org', 'n2-1908.plc2.org', 'n2-1909.plc2.org']
+01:== added in slice onejai_slice1908 foreign  ['n2-1908.plc2.org', 'n2-1909.plc2.org', 'n2-1910.plc2.org']
+01:== added in slice onejaj_slice1909 foreign  ['n2-1909.plc2.org', 'n2-1910.plc2.org', 'n2-1911.plc2.org']
+01:== added in slice onejba_slice1910 foreign  ['n2-1910.plc2.org', 'n2-1911.plc2.org', 'n2-1912.plc2.org']
+01:== added in slice onejbb_slice1911 foreign  ['n2-1911.plc2.org', 'n2-1912.plc2.org', 'n2-1913.plc2.org']
+01:== added in slice onejbc_slice1912 foreign  ['n2-1912.plc2.org', 'n2-1913.plc2.org', 'n2-1914.plc2.org']
+01:== added in slice onejbd_slice1913 foreign  ['n2-1913.plc2.org', 'n2-1914.plc2.org', 'n2-1915.plc2.org']
+01:== added in slice onejbe_slice1914 foreign  ['n2-1914.plc2.org', 'n2-1915.plc2.org', 'n2-1916.plc2.org']
+01:== added in slice onejbf_slice1915 foreign  ['n2-1915.plc2.org', 'n2-1916.plc2.org', 'n2-1917.plc2.org']
+01:== added in slice onejbg_slice1916 foreign  ['n2-1916.plc2.org', 'n2-1917.plc2.org', 'n2-1918.plc2.org']
+01:== added in slice onejbh_slice1917 foreign  ['n2-1917.plc2.org', 'n2-1918.plc2.org', 'n2-1919.plc2.org']
+01:== added in slice onejbi_slice1918 foreign  ['n2-1918.plc2.org', 'n2-1919.plc2.org', 'n2-1920.plc2.org']
+01:== added in slice onejbj_slice1919 foreign  ['n2-1919.plc2.org', 'n2-1920.plc2.org', 'n2-1921.plc2.org']
+01:== added in slice onejca_slice1920 foreign  ['n2-1920.plc2.org', 'n2-1921.plc2.org', 'n2-1922.plc2.org']
+01:== added in slice onejcb_slice1921 foreign  ['n2-1921.plc2.org', 'n2-1922.plc2.org', 'n2-1923.plc2.org']
+01:== added in slice onejcc_slice1922 foreign  ['n2-1922.plc2.org', 'n2-1923.plc2.org', 'n2-1924.plc2.org']
+01:== added in slice onejcd_slice1923 foreign  ['n2-1923.plc2.org', 'n2-1924.plc2.org', 'n2-1925.plc2.org']
+01:== added in slice onejce_slice1924 foreign  ['n2-1924.plc2.org', 'n2-1925.plc2.org', 'n2-1926.plc2.org']
+01:== added in slice onejcf_slice1925 foreign  ['n2-1925.plc2.org', 'n2-1926.plc2.org', 'n2-1927.plc2.org']
+01:== added in slice onejcg_slice1926 foreign  ['n2-1926.plc2.org', 'n2-1927.plc2.org', 'n2-1928.plc2.org']
+01:== added in slice onejch_slice1927 foreign  ['n2-1927.plc2.org', 'n2-1928.plc2.org', 'n2-1929.plc2.org']
+01:== added in slice onejci_slice1928 foreign  ['n2-1928.plc2.org', 'n2-1929.plc2.org', 'n2-1930.plc2.org']
+01:== added in slice onejcj_slice1929 foreign  ['n2-1929.plc2.org', 'n2-1930.plc2.org', 'n2-1931.plc2.org']
+01:== added in slice onejda_slice1930 foreign  ['n2-1930.plc2.org', 'n2-1931.plc2.org', 'n2-1932.plc2.org']
+01:== added in slice onejdb_slice1931 foreign  ['n2-1931.plc2.org', 'n2-1932.plc2.org', 'n2-1933.plc2.org']
+01:== added in slice onejdc_slice1932 foreign  ['n2-1932.plc2.org', 'n2-1933.plc2.org', 'n2-1934.plc2.org']
+01:== added in slice onejdd_slice1933 foreign  ['n2-1933.plc2.org', 'n2-1934.plc2.org', 'n2-1935.plc2.org']
+01:== added in slice onejde_slice1934 foreign  ['n2-1934.plc2.org', 'n2-1935.plc2.org', 'n2-1936.plc2.org']
+01:== added in slice onejdf_slice1935 foreign  ['n2-1935.plc2.org', 'n2-1936.plc2.org', 'n2-1937.plc2.org']
+01:== added in slice onejdg_slice1936 foreign  ['n2-1936.plc2.org', 'n2-1937.plc2.org', 'n2-1938.plc2.org']
+01:== added in slice onejdh_slice1937 foreign  ['n2-1937.plc2.org', 'n2-1938.plc2.org', 'n2-1939.plc2.org']
+01:== added in slice onejdi_slice1938 foreign  ['n2-1938.plc2.org', 'n2-1939.plc2.org', 'n2-1940.plc2.org']
+01:== added in slice onejdj_slice1939 foreign  ['n2-1939.plc2.org', 'n2-1940.plc2.org', 'n2-1941.plc2.org']
+01:== added in slice onejea_slice1940 foreign  ['n2-1940.plc2.org', 'n2-1941.plc2.org', 'n2-1942.plc2.org']
+01:== added in slice onejeb_slice1941 foreign  ['n2-1941.plc2.org', 'n2-1942.plc2.org', 'n2-1943.plc2.org']
+01:== added in slice onejec_slice1942 foreign  ['n2-1942.plc2.org', 'n2-1943.plc2.org', 'n2-1944.plc2.org']
+01:== added in slice onejed_slice1943 foreign  ['n2-1943.plc2.org', 'n2-1944.plc2.org', 'n2-1945.plc2.org']
+01:== added in slice onejee_slice1944 foreign  ['n2-1944.plc2.org', 'n2-1945.plc2.org', 'n2-1946.plc2.org']
+01:== added in slice onejef_slice1945 foreign  ['n2-1945.plc2.org', 'n2-1946.plc2.org', 'n2-1947.plc2.org']
+01:== added in slice onejeg_slice1946 foreign  ['n2-1946.plc2.org', 'n2-1947.plc2.org', 'n2-1948.plc2.org']
+01:== added in slice onejeh_slice1947 foreign  ['n2-1947.plc2.org', 'n2-1948.plc2.org', 'n2-1949.plc2.org']
+01:== added in slice onejei_slice1948 foreign  ['n2-1948.plc2.org', 'n2-1949.plc2.org', 'n2-1950.plc2.org']
+01:== added in slice onejej_slice1949 foreign  ['n2-1949.plc2.org', 'n2-1950.plc2.org', 'n2-1951.plc2.org']
+01:== added in slice onejfa_slice1950 foreign  ['n2-1950.plc2.org', 'n2-1951.plc2.org', 'n2-1952.plc2.org']
+01:== added in slice onejfb_slice1951 foreign  ['n2-1951.plc2.org', 'n2-1952.plc2.org', 'n2-1953.plc2.org']
+01:== added in slice onejfc_slice1952 foreign  ['n2-1952.plc2.org', 'n2-1953.plc2.org', 'n2-1954.plc2.org']
+01:== added in slice onejfd_slice1953 foreign  ['n2-1953.plc2.org', 'n2-1954.plc2.org', 'n2-1955.plc2.org']
+01:== added in slice onejfe_slice1954 foreign  ['n2-1954.plc2.org', 'n2-1955.plc2.org', 'n2-1956.plc2.org']
+01:== added in slice onejff_slice1955 foreign  ['n2-1955.plc2.org', 'n2-1956.plc2.org', 'n2-1957.plc2.org']
+01:== added in slice onejfg_slice1956 foreign  ['n2-1956.plc2.org', 'n2-1957.plc2.org', 'n2-1958.plc2.org']
+01:== added in slice onejfh_slice1957 foreign  ['n2-1957.plc2.org', 'n2-1958.plc2.org', 'n2-1959.plc2.org']
+01:== added in slice onejfi_slice1958 foreign  ['n2-1958.plc2.org', 'n2-1959.plc2.org', 'n2-1960.plc2.org']
+01:== added in slice onejfj_slice1959 foreign  ['n2-1959.plc2.org', 'n2-1960.plc2.org', 'n2-1961.plc2.org']
+01:== added in slice onejga_slice1960 foreign  ['n2-1960.plc2.org', 'n2-1961.plc2.org', 'n2-1962.plc2.org']
+01:== added in slice onejgb_slice1961 foreign  ['n2-1961.plc2.org', 'n2-1962.plc2.org', 'n2-1963.plc2.org']
+01:== added in slice onejgc_slice1962 foreign  ['n2-1962.plc2.org', 'n2-1963.plc2.org', 'n2-1964.plc2.org']
+01:== added in slice onejgd_slice1963 foreign  ['n2-1963.plc2.org', 'n2-1964.plc2.org', 'n2-1965.plc2.org']
+01:== added in slice onejge_slice1964 foreign  ['n2-1964.plc2.org', 'n2-1965.plc2.org', 'n2-1966.plc2.org']
+01:== added in slice onejgf_slice1965 foreign  ['n2-1965.plc2.org', 'n2-1966.plc2.org', 'n2-1967.plc2.org']
+01:== added in slice onejgg_slice1966 foreign  ['n2-1966.plc2.org', 'n2-1967.plc2.org', 'n2-1968.plc2.org']
+01:== added in slice onejgh_slice1967 foreign  ['n2-1967.plc2.org', 'n2-1968.plc2.org', 'n2-1969.plc2.org']
+01:== added in slice onejgi_slice1968 foreign  ['n2-1968.plc2.org', 'n2-1969.plc2.org', 'n2-1970.plc2.org']
+01:== added in slice onejgj_slice1969 foreign  ['n2-1969.plc2.org', 'n2-1970.plc2.org', 'n2-1971.plc2.org']
+01:== added in slice onejha_slice1970 foreign  ['n2-1970.plc2.org', 'n2-1971.plc2.org', 'n2-1972.plc2.org']
+01:== added in slice onejhb_slice1971 foreign  ['n2-1971.plc2.org', 'n2-1972.plc2.org', 'n2-1973.plc2.org']
+01:== added in slice onejhc_slice1972 foreign  ['n2-1972.plc2.org', 'n2-1973.plc2.org', 'n2-1974.plc2.org']
+01:== added in slice onejhd_slice1973 foreign  ['n2-1973.plc2.org', 'n2-1974.plc2.org', 'n2-1975.plc2.org']
+01:== added in slice onejhe_slice1974 foreign  ['n2-1974.plc2.org', 'n2-1975.plc2.org', 'n2-1976.plc2.org']
+01:== added in slice onejhf_slice1975 foreign  ['n2-1975.plc2.org', 'n2-1976.plc2.org', 'n2-1977.plc2.org']
+01:== added in slice onejhg_slice1976 foreign  ['n2-1976.plc2.org', 'n2-1977.plc2.org', 'n2-1978.plc2.org']
+01:== added in slice onejhh_slice1977 foreign  ['n2-1977.plc2.org', 'n2-1978.plc2.org', 'n2-1979.plc2.org']
+01:== added in slice onejhi_slice1978 foreign  ['n2-1978.plc2.org', 'n2-1979.plc2.org', 'n2-1980.plc2.org']
+01:== added in slice onejhj_slice1979 foreign  ['n2-1979.plc2.org', 'n2-1980.plc2.org', 'n2-1981.plc2.org']
+01:== added in slice onejia_slice1980 foreign  ['n2-1980.plc2.org', 'n2-1981.plc2.org', 'n2-1982.plc2.org']
+01:== added in slice onejib_slice1981 foreign  ['n2-1981.plc2.org', 'n2-1982.plc2.org', 'n2-1983.plc2.org']
+01:== added in slice onejic_slice1982 foreign  ['n2-1982.plc2.org', 'n2-1983.plc2.org', 'n2-1984.plc2.org']
+01:== added in slice onejid_slice1983 foreign  ['n2-1983.plc2.org', 'n2-1984.plc2.org', 'n2-1985.plc2.org']
+01:== added in slice onejie_slice1984 foreign  ['n2-1984.plc2.org', 'n2-1985.plc2.org', 'n2-1986.plc2.org']
+01:== added in slice onejif_slice1985 foreign  ['n2-1985.plc2.org', 'n2-1986.plc2.org', 'n2-1987.plc2.org']
+01:== added in slice onejig_slice1986 foreign  ['n2-1986.plc2.org', 'n2-1987.plc2.org', 'n2-1988.plc2.org']
+01:== added in slice onejih_slice1987 foreign  ['n2-1987.plc2.org', 'n2-1988.plc2.org', 'n2-1989.plc2.org']
+01:== added in slice onejii_slice1988 foreign  ['n2-1988.plc2.org', 'n2-1989.plc2.org', 'n2-1990.plc2.org']
+01:== added in slice onejij_slice1989 foreign  ['n2-1989.plc2.org', 'n2-1990.plc2.org', 'n2-1991.plc2.org']
+01:== added in slice onejja_slice1990 foreign  ['n2-1990.plc2.org', 'n2-1991.plc2.org', 'n2-1992.plc2.org']
+01:== added in slice onejjb_slice1991 foreign  ['n2-1991.plc2.org', 'n2-1992.plc2.org', 'n2-1993.plc2.org']
+01:== added in slice onejjc_slice1992 foreign  ['n2-1992.plc2.org', 'n2-1993.plc2.org', 'n2-1994.plc2.org']
+01:== added in slice onejjd_slice1993 foreign  ['n2-1993.plc2.org', 'n2-1994.plc2.org', 'n2-1995.plc2.org']
+01:== added in slice onejje_slice1994 foreign  ['n2-1994.plc2.org', 'n2-1995.plc2.org', 'n2-1996.plc2.org']
+01:== added in slice onejjf_slice1995 foreign  ['n2-1995.plc2.org', 'n2-1996.plc2.org', 'n2-1997.plc2.org']
+01:== added in slice onejjg_slice1996 foreign  ['n2-1996.plc2.org', 'n2-1997.plc2.org', 'n2-1998.plc2.org']
+01:== added in slice onejjh_slice1997 foreign  ['n2-1997.plc2.org', 'n2-1998.plc2.org', 'n2-1999.plc2.org']
+01:== added in slice onejji_slice1998 foreign  ['n2-1998.plc2.org', 'n2-1999.plc2.org', 'n2-2000.plc2.org']
+01:== added in slice onejjj_slice1999 foreign  ['n2-1999.plc2.org', 'n2-2000.plc2.org', 'n2-2001.plc2.org']
+01:== added in slice onebaaa_slice2000 foreign  ['n2-2000.plc2.org', 'n2-2001.plc2.org', 'n2-2002.plc2.org']
++++ 1119.90 seconds ellapsed (709.79)
+=== refresh populate: refresh all
++++ 1119.90 seconds ellapsed (0.00)
+01:== Refreshing peer Result: { new_keys 0 new_nodes 0 new_persons 0 new_sites 0 new_slice_attribute_types 0 new_slice_attributes 2 new_slices 0 peername Thierry plc2 }
++++ ellapsed: { process-keys 0.365176916122 process-nodes 1.5574119091 process-persons 1.64435815811 process-sa 9.34812998772 process-sat 0.00666284561157 process-sites 0.464575052261 process-slices 4.07847309113 time_all 42.5785849094 time_gather 0.733295202255 time_process 17.4648058414 time_transmit 24.3804838657 }
++++ 1163.73 seconds ellapsed (43.83)
+02:== Refreshing peer Result: { new_keys 2000 new_nodes 3000 new_persons 2001 new_sites 1001 new_slice_attribute_types 1 new_slice_attributes 9 new_slices 2001 peername Thierry plc1 }
++++ ellapsed: { process-keys 18.9454190731 process-nodes 85.7590579987 process-persons 46.2589879036 process-sa 1.086550951 process-sat 0.0137100219727 process-sites 18.8839168549 process-slices 206.782188177 time_all 449.22248888 time_gather 2.65623903275 time_process 377.729847908 time_transmit 68.8364019394 }
++++ 1615.68 seconds ellapsed (451.95)
++++ 1615.68 seconds ellapsed (0.00)
+=== refresh empty refresh
++++ 1615.68 seconds ellapsed (0.00)
+01:== Refreshing peer Result: { new_keys 0 new_nodes 0 new_persons 0 new_sites 0 new_slice_attribute_types 0 new_slice_attributes 5 new_slices 0 peername Thierry plc2 }
++++ ellapsed: { process-keys 0.28697514534 process-nodes 1.7382979393 process-persons 1.75849199295 process-sa 1.54591608047 process-sat 0.00726008415222 process-sites 0.45644402504 process-slices 3.34001088142 time_all 67.3552000523 time_gather 2.00459694862 time_process 9.13341403008 time_transmit 56.2171890736 }
++++ 1684.36 seconds ellapsed (68.69)
+02:== Refreshing peer Result: { new_keys 0 new_nodes 0 new_persons 0 new_sites 0 new_slice_attribute_types 0 new_slice_attributes 2 new_slices 0 peername Thierry plc1 }
++++ ellapsed: { process-keys 0.210376024246 process-nodes 1.34099602699 process-persons 1.33594107628 process-sa 1.20864582062 process-sat 0.00609683990479 process-sites 0.341688871384 process-slices 2.97055220604 time_all 66.6665620804 time_gather 2.66325616837 time_process 7.41431498528 time_transmit 56.5889909267 }
++++ 1752.90 seconds ellapsed (68.54)
+01:============================== DUMPING
+01: SITES
+1 None thone Thierry plc1 Central []
+2 None oneb Thierry plc1 [1, 1001, 2001]
+3 None onec Thierry plc1 [2, 1002, 2002]
+4 None oned Thierry plc1 [3, 1003, 2003]
+5 None onee Thierry plc1 [4, 1004, 2004]
+6 None onef Thierry plc1 [5, 1005, 2005]
+7 None oneg Thierry plc1 [6, 1006, 2006]
+8 None oneh Thierry plc1 [7, 1007, 2007]
+9 None onei Thierry plc1 [8, 1008, 2008]
+10 None onej Thierry plc1 [9, 1009, 2009]
+11 None oneba Thierry plc1 [10, 1010, 2010]
+12 None onebb Thierry plc1 [11, 1011, 2011]
+13 None onebc Thierry plc1 [12, 1012, 2012]
+14 None onebd Thierry plc1 [13, 1013, 2013]
+15 None onebe Thierry plc1 [14, 1014, 2014]
+16 None onebf Thierry plc1 [15, 1015, 2015]
+17 None onebg Thierry plc1 [16, 1016, 2016]
+18 None onebh Thierry plc1 [17, 1017, 2017]
+19 None onebi Thierry plc1 [18, 1018, 2018]
+20 None onebj Thierry plc1 [19, 1019, 2019]
+21 None oneca Thierry plc1 [20, 1020, 2020]
+22 None onecb Thierry plc1 [21, 1021, 2021]
+23 None onecc Thierry plc1 [22, 1022, 2022]
+24 None onecd Thierry plc1 [23, 1023, 2023]
+25 None onece Thierry plc1 [24, 1024, 2024]
+26 None onecf Thierry plc1 [25, 1025, 2025]
+27 None onecg Thierry plc1 [26, 1026, 2026]
+28 None onech Thierry plc1 [27, 1027, 2027]
+29 None oneci Thierry plc1 [28, 1028, 2028]
+30 None onecj Thierry plc1 [29, 1029, 2029]
+31 None oneda Thierry plc1 [30, 1030, 2030]
+32 None onedb Thierry plc1 [31, 1031, 2031]
+33 None onedc Thierry plc1 [32, 1032, 2032]
+34 None onedd Thierry plc1 [33, 1033, 2033]
+35 None onede Thierry plc1 [34, 1034, 2034]
+36 None onedf Thierry plc1 [35, 1035, 2035]
+37 None onedg Thierry plc1 [36, 1036, 2036]
+38 None onedh Thierry plc1 [37, 1037, 2037]
+39 None onedi Thierry plc1 [38, 1038, 2038]
+40 None onedj Thierry plc1 [39, 1039, 2039]
+41 None oneea Thierry plc1 [40, 1040, 2040]
+42 None oneeb Thierry plc1 [41, 1041, 2041]
+43 None oneec Thierry plc1 [42, 1042, 2042]
+44 None oneed Thierry plc1 [43, 1043, 2043]
+45 None oneee Thierry plc1 [44, 1044, 2044]
+46 None oneef Thierry plc1 [45, 1045, 2045]
+47 None oneeg Thierry plc1 [46, 1046, 2046]
+48 None oneeh Thierry plc1 [47, 1047, 2047]
+49 None oneei Thierry plc1 [48, 1048, 2048]
+50 None oneej Thierry plc1 [49, 1049, 2049]
+51 None onefa Thierry plc1 [50, 1050, 2050]
+52 None onefb Thierry plc1 [51, 1051, 2051]
+53 None onefc Thierry plc1 [52, 1052, 2052]
+54 None onefd Thierry plc1 [53, 1053, 2053]
+55 None onefe Thierry plc1 [54, 1054, 2054]
+56 None oneff Thierry plc1 [55, 1055, 2055]
+57 None onefg Thierry plc1 [56, 1056, 2056]
+58 None onefh Thierry plc1 [57, 1057, 2057]
+59 None onefi Thierry plc1 [58, 1058, 2058]
+60 None onefj Thierry plc1 [59, 1059, 2059]
+61 None onega Thierry plc1 [60, 1060, 2060]
+62 None onegb Thierry plc1 [61, 1061, 2061]
+63 None onegc Thierry plc1 [62, 1062, 2062]
+64 None onegd Thierry plc1 [63, 1063, 2063]
+65 None onege Thierry plc1 [64, 1064, 2064]
+66 None onegf Thierry plc1 [65, 1065, 2065]
+67 None onegg Thierry plc1 [66, 1066, 2066]
+68 None onegh Thierry plc1 [67, 1067, 2067]
+69 None onegi Thierry plc1 [68, 1068, 2068]
+70 None onegj Thierry plc1 [69, 1069, 2069]
+71 None oneha Thierry plc1 [70, 1070, 2070]
+72 None onehb Thierry plc1 [71, 1071, 2071]
+73 None onehc Thierry plc1 [72, 1072, 2072]
+74 None onehd Thierry plc1 [73, 1073, 2073]
+75 None onehe Thierry plc1 [74, 1074, 2074]
+76 None onehf Thierry plc1 [75, 1075, 2075]
+77 None onehg Thierry plc1 [76, 1076, 2076]
+78 None onehh Thierry plc1 [77, 1077, 2077]
+79 None onehi Thierry plc1 [78, 1078, 2078]
+80 None onehj Thierry plc1 [79, 1079, 2079]
+81 None oneia Thierry plc1 [80, 1080, 2080]
+82 None oneib Thierry plc1 [81, 1081, 2081]
+83 None oneic Thierry plc1 [82, 1082, 2082]
+84 None oneid Thierry plc1 [83, 1083, 2083]
+85 None oneie Thierry plc1 [84, 1084, 2084]
+86 None oneif Thierry plc1 [85, 1085, 2085]
+87 None oneig Thierry plc1 [86, 1086, 2086]
+88 None oneih Thierry plc1 [87, 1087, 2087]
+89 None oneii Thierry plc1 [88, 1088, 2088]
+90 None oneij Thierry plc1 [89, 1089, 2089]
+91 None oneja Thierry plc1 [90, 1090, 2090]
+92 None onejb Thierry plc1 [91, 1091, 2091]
+93 None onejc Thierry plc1 [92, 1092, 2092]
+94 None onejd Thierry plc1 [93, 1093, 2093]
+95 None oneje Thierry plc1 [94, 1094, 2094]
+96 None onejf Thierry plc1 [95, 1095, 2095]
+97 None onejg Thierry plc1 [96, 1096, 2096]
+98 None onejh Thierry plc1 [97, 1097, 2097]
+99 None oneji Thierry plc1 [98, 1098, 2098]
+100 None onejj Thierry plc1 [99, 1099, 2099]
+101 None onebaa Thierry plc1 [100, 1100, 2100]
+102 None onebab Thierry plc1 [101, 1101, 2101]
+103 None onebac Thierry plc1 [102, 1102, 2102]
+104 None onebad Thierry plc1 [103, 1103, 2103]
+105 None onebae Thierry plc1 [104, 1104, 2104]
+106 None onebaf Thierry plc1 [105, 1105, 2105]
+107 None onebag Thierry plc1 [106, 1106, 2106]
+108 None onebah Thierry plc1 [107, 1107, 2107]
+109 None onebai Thierry plc1 [108, 1108, 2108]
+110 None onebaj Thierry plc1 [109, 1109, 2109]
+111 None onebba Thierry plc1 [110, 1110, 2110]
+112 None onebbb Thierry plc1 [111, 1111, 2111]
+113 None onebbc Thierry plc1 [112, 1112, 2112]
+114 None onebbd Thierry plc1 [113, 1113, 2113]
+115 None onebbe Thierry plc1 [114, 1114, 2114]
+116 None onebbf Thierry plc1 [115, 1115, 2115]
+117 None onebbg Thierry plc1 [116, 1116, 2116]
+118 None onebbh Thierry plc1 [117, 1117, 2117]
+119 None onebbi Thierry plc1 [118, 1118, 2118]
+120 None onebbj Thierry plc1 [119, 1119, 2119]
+121 None onebca Thierry plc1 [120, 1120, 2120]
+122 None onebcb Thierry plc1 [121, 1121, 2121]
+123 None onebcc Thierry plc1 [122, 1122, 2122]
+124 None onebcd Thierry plc1 [123, 1123, 2123]
+125 None onebce Thierry plc1 [124, 1124, 2124]
+126 None onebcf Thierry plc1 [125, 1125, 2125]
+127 None onebcg Thierry plc1 [126, 1126, 2126]
+128 None onebch Thierry plc1 [127, 1127, 2127]
+129 None onebci Thierry plc1 [128, 1128, 2128]
+130 None onebcj Thierry plc1 [129, 1129, 2129]
+131 None onebda Thierry plc1 [130, 1130, 2130]
+132 None onebdb Thierry plc1 [131, 1131, 2131]
+133 None onebdc Thierry plc1 [132, 1132, 2132]
+134 None onebdd Thierry plc1 [133, 1133, 2133]
+135 None onebde Thierry plc1 [134, 1134, 2134]
+136 None onebdf Thierry plc1 [135, 1135, 2135]
+137 None onebdg Thierry plc1 [136, 1136, 2136]
+138 None onebdh Thierry plc1 [137, 1137, 2137]
+139 None onebdi Thierry plc1 [138, 1138, 2138]
+140 None onebdj Thierry plc1 [139, 1139, 2139]
+141 None onebea Thierry plc1 [140, 1140, 2140]
+142 None onebeb Thierry plc1 [141, 1141, 2141]
+143 None onebec Thierry plc1 [142, 1142, 2142]
+144 None onebed Thierry plc1 [143, 1143, 2143]
+145 None onebee Thierry plc1 [144, 1144, 2144]
+146 None onebef Thierry plc1 [145, 1145, 2145]
+147 None onebeg Thierry plc1 [146, 1146, 2146]
+148 None onebeh Thierry plc1 [147, 1147, 2147]
+149 None onebei Thierry plc1 [148, 1148, 2148]
+150 None onebej Thierry plc1 [149, 1149, 2149]
+151 None onebfa Thierry plc1 [150, 1150, 2150]
+152 None onebfb Thierry plc1 [151, 1151, 2151]
+153 None onebfc Thierry plc1 [152, 1152, 2152]
+154 None onebfd Thierry plc1 [153, 1153, 2153]
+155 None onebfe Thierry plc1 [154, 1154, 2154]
+156 None onebff Thierry plc1 [155, 1155, 2155]
+157 None onebfg Thierry plc1 [156, 1156, 2156]
+158 None onebfh Thierry plc1 [157, 1157, 2157]
+159 None onebfi Thierry plc1 [158, 1158, 2158]
+160 None onebfj Thierry plc1 [159, 1159, 2159]
+161 None onebga Thierry plc1 [160, 1160, 2160]
+162 None onebgb Thierry plc1 [161, 1161, 2161]
+163 None onebgc Thierry plc1 [162, 1162, 2162]
+164 None onebgd Thierry plc1 [163, 1163, 2163]
+165 None onebge Thierry plc1 [164, 1164, 2164]
+166 None onebgf Thierry plc1 [165, 1165, 2165]
+167 None onebgg Thierry plc1 [166, 1166, 2166]
+168 None onebgh Thierry plc1 [167, 1167, 2167]
+169 None onebgi Thierry plc1 [168, 1168, 2168]
+170 None onebgj Thierry plc1 [169, 1169, 2169]
+171 None onebha Thierry plc1 [170, 1170, 2170]
+172 None onebhb Thierry plc1 [171, 1171, 2171]
+173 None onebhc Thierry plc1 [172, 1172, 2172]
+174 None onebhd Thierry plc1 [173, 1173, 2173]
+175 None onebhe Thierry plc1 [174, 1174, 2174]
+176 None onebhf Thierry plc1 [175, 1175, 2175]
+177 None onebhg Thierry plc1 [176, 1176, 2176]
+178 None onebhh Thierry plc1 [177, 1177, 2177]
+179 None onebhi Thierry plc1 [178, 1178, 2178]
+180 None onebhj Thierry plc1 [179, 1179, 2179]
+181 None onebia Thierry plc1 [180, 1180, 2180]
+182 None onebib Thierry plc1 [181, 1181, 2181]
+183 None onebic Thierry plc1 [182, 1182, 2182]
+184 None onebid Thierry plc1 [183, 1183, 2183]
+185 None onebie Thierry plc1 [184, 1184, 2184]
+186 None onebif Thierry plc1 [185, 1185, 2185]
+187 None onebig Thierry plc1 [186, 1186, 2186]
+188 None onebih Thierry plc1 [187, 1187, 2187]
+189 None onebii Thierry plc1 [188, 1188, 2188]
+190 None onebij Thierry plc1 [189, 1189, 2189]
+191 None onebja Thierry plc1 [190, 1190, 2190]
+192 None onebjb Thierry plc1 [191, 1191, 2191]
+193 None onebjc Thierry plc1 [192, 1192, 2192]
+194 None onebjd Thierry plc1 [193, 1193, 2193]
+195 None onebje Thierry plc1 [194, 1194, 2194]
+196 None onebjf Thierry plc1 [195, 1195, 2195]
+197 None onebjg Thierry plc1 [196, 1196, 2196]
+198 None onebjh Thierry plc1 [197, 1197, 2197]
+199 None onebji Thierry plc1 [198, 1198, 2198]
+200 None onebjj Thierry plc1 [199, 1199, 2199]
+201 None onecaa Thierry plc1 [200, 1200, 2200]
+202 None onecab Thierry plc1 [201, 1201, 2201]
+203 None onecac Thierry plc1 [202, 1202, 2202]
+204 None onecad Thierry plc1 [203, 1203, 2203]
+205 None onecae Thierry plc1 [204, 1204, 2204]
+206 None onecaf Thierry plc1 [205, 1205, 2205]
+207 None onecag Thierry plc1 [206, 1206, 2206]
+208 None onecah Thierry plc1 [207, 1207, 2207]
+209 None onecai Thierry plc1 [208, 1208, 2208]
+210 None onecaj Thierry plc1 [209, 1209, 2209]
+211 None onecba Thierry plc1 [210, 1210, 2210]
+212 None onecbb Thierry plc1 [211, 1211, 2211]
+213 None onecbc Thierry plc1 [212, 1212, 2212]
+214 None onecbd Thierry plc1 [213, 1213, 2213]
+215 None onecbe Thierry plc1 [214, 1214, 2214]
+216 None onecbf Thierry plc1 [215, 1215, 2215]
+217 None onecbg Thierry plc1 [216, 1216, 2216]
+218 None onecbh Thierry plc1 [217, 1217, 2217]
+219 None onecbi Thierry plc1 [218, 1218, 2218]
+220 None onecbj Thierry plc1 [219, 1219, 2219]
+221 None onecca Thierry plc1 [220, 1220, 2220]
+222 None oneccb Thierry plc1 [221, 1221, 2221]
+223 None oneccc Thierry plc1 [222, 1222, 2222]
+224 None oneccd Thierry plc1 [223, 1223, 2223]
+225 None onecce Thierry plc1 [224, 1224, 2224]
+226 None oneccf Thierry plc1 [225, 1225, 2225]
+227 None oneccg Thierry plc1 [226, 1226, 2226]
+228 None onecch Thierry plc1 [227, 1227, 2227]
+229 None onecci Thierry plc1 [228, 1228, 2228]
+230 None oneccj Thierry plc1 [229, 1229, 2229]
+231 None onecda Thierry plc1 [230, 1230, 2230]
+232 None onecdb Thierry plc1 [231, 1231, 2231]
+233 None onecdc Thierry plc1 [232, 1232, 2232]
+234 None onecdd Thierry plc1 [233, 1233, 2233]
+235 None onecde Thierry plc1 [234, 1234, 2234]
+236 None onecdf Thierry plc1 [235, 1235, 2235]
+237 None onecdg Thierry plc1 [236, 1236, 2236]
+238 None onecdh Thierry plc1 [237, 1237, 2237]
+239 None onecdi Thierry plc1 [238, 1238, 2238]
+240 None onecdj Thierry plc1 [239, 1239, 2239]
+241 None onecea Thierry plc1 [240, 1240, 2240]
+242 None oneceb Thierry plc1 [241, 1241, 2241]
+243 None onecec Thierry plc1 [242, 1242, 2242]
+244 None oneced Thierry plc1 [243, 1243, 2243]
+245 None onecee Thierry plc1 [244, 1244, 2244]
+246 None onecef Thierry plc1 [245, 1245, 2245]
+247 None oneceg Thierry plc1 [246, 1246, 2246]
+248 None oneceh Thierry plc1 [247, 1247, 2247]
+249 None onecei Thierry plc1 [248, 1248, 2248]
+250 None onecej Thierry plc1 [249, 1249, 2249]
+251 None onecfa Thierry plc1 [250, 1250, 2250]
+252 None onecfb Thierry plc1 [251, 1251, 2251]
+253 None onecfc Thierry plc1 [252, 1252, 2252]
+254 None onecfd Thierry plc1 [253, 1253, 2253]
+255 None onecfe Thierry plc1 [254, 1254, 2254]
+256 None onecff Thierry plc1 [255, 1255, 2255]
+257 None onecfg Thierry plc1 [256, 1256, 2256]
+258 None onecfh Thierry plc1 [257, 1257, 2257]
+259 None onecfi Thierry plc1 [258, 1258, 2258]
+260 None onecfj Thierry plc1 [259, 1259, 2259]
+261 None onecga Thierry plc1 [260, 1260, 2260]
+262 None onecgb Thierry plc1 [261, 1261, 2261]
+263 None onecgc Thierry plc1 [262, 1262, 2262]
+264 None onecgd Thierry plc1 [263, 1263, 2263]
+265 None onecge Thierry plc1 [264, 1264, 2264]
+266 None onecgf Thierry plc1 [265, 1265, 2265]
+267 None onecgg Thierry plc1 [266, 1266, 2266]
+268 None onecgh Thierry plc1 [267, 1267, 2267]
+269 None onecgi Thierry plc1 [268, 1268, 2268]
+270 None onecgj Thierry plc1 [269, 1269, 2269]
+271 None onecha Thierry plc1 [270, 1270, 2270]
+272 None onechb Thierry plc1 [271, 1271, 2271]
+273 None onechc Thierry plc1 [272, 1272, 2272]
+274 None onechd Thierry plc1 [273, 1273, 2273]
+275 None oneche Thierry plc1 [274, 1274, 2274]
+276 None onechf Thierry plc1 [275, 1275, 2275]
+277 None onechg Thierry plc1 [276, 1276, 2276]
+278 None onechh Thierry plc1 [277, 1277, 2277]
+279 None onechi Thierry plc1 [278, 1278, 2278]
+280 None onechj Thierry plc1 [279, 1279, 2279]
+281 None onecia Thierry plc1 [280, 1280, 2280]
+282 None onecib Thierry plc1 [281, 1281, 2281]
+283 None onecic Thierry plc1 [282, 1282, 2282]
+284 None onecid Thierry plc1 [283, 1283, 2283]
+285 None onecie Thierry plc1 [284, 1284, 2284]
+286 None onecif Thierry plc1 [285, 1285, 2285]
+287 None onecig Thierry plc1 [286, 1286, 2286]
+288 None onecih Thierry plc1 [287, 1287, 2287]
+289 None onecii Thierry plc1 [288, 1288, 2288]
+290 None onecij Thierry plc1 [289, 1289, 2289]
+291 None onecja Thierry plc1 [290, 1290, 2290]
+292 None onecjb Thierry plc1 [291, 1291, 2291]
+293 None onecjc Thierry plc1 [292, 1292, 2292]
+294 None onecjd Thierry plc1 [293, 1293, 2293]
+295 None onecje Thierry plc1 [294, 1294, 2294]
+296 None onecjf Thierry plc1 [295, 1295, 2295]
+297 None onecjg Thierry plc1 [296, 1296, 2296]
+298 None onecjh Thierry plc1 [297, 1297, 2297]
+299 None onecji Thierry plc1 [298, 1298, 2298]
+300 None onecjj Thierry plc1 [299, 1299, 2299]
+301 None onedaa Thierry plc1 [300, 1300, 2300]
+302 None onedab Thierry plc1 [301, 1301, 2301]
+303 None onedac Thierry plc1 [302, 1302, 2302]
+304 None onedad Thierry plc1 [303, 1303, 2303]
+305 None onedae Thierry plc1 [304, 1304, 2304]
+306 None onedaf Thierry plc1 [305, 1305, 2305]
+307 None onedag Thierry plc1 [306, 1306, 2306]
+308 None onedah Thierry plc1 [307, 1307, 2307]
+309 None onedai Thierry plc1 [308, 1308, 2308]
+310 None onedaj Thierry plc1 [309, 1309, 2309]
+311 None onedba Thierry plc1 [310, 1310, 2310]
+312 None onedbb Thierry plc1 [311, 1311, 2311]
+313 None onedbc Thierry plc1 [312, 1312, 2312]
+314 None onedbd Thierry plc1 [313, 1313, 2313]
+315 None onedbe Thierry plc1 [314, 1314, 2314]
+316 None onedbf Thierry plc1 [315, 1315, 2315]
+317 None onedbg Thierry plc1 [316, 1316, 2316]
+318 None onedbh Thierry plc1 [317, 1317, 2317]
+319 None onedbi Thierry plc1 [318, 1318, 2318]
+320 None onedbj Thierry plc1 [319, 1319, 2319]
+321 None onedca Thierry plc1 [320, 1320, 2320]
+322 None onedcb Thierry plc1 [321, 1321, 2321]
+323 None onedcc Thierry plc1 [322, 1322, 2322]
+324 None onedcd Thierry plc1 [323, 1323, 2323]
+325 None onedce Thierry plc1 [324, 1324, 2324]
+326 None onedcf Thierry plc1 [325, 1325, 2325]
+327 None onedcg Thierry plc1 [326, 1326, 2326]
+328 None onedch Thierry plc1 [327, 1327, 2327]
+329 None onedci Thierry plc1 [328, 1328, 2328]
+330 None onedcj Thierry plc1 [329, 1329, 2329]
+331 None onedda Thierry plc1 [330, 1330, 2330]
+332 None oneddb Thierry plc1 [331, 1331, 2331]
+333 None oneddc Thierry plc1 [332, 1332, 2332]
+334 None oneddd Thierry plc1 [333, 1333, 2333]
+335 None onedde Thierry plc1 [334, 1334, 2334]
+336 None oneddf Thierry plc1 [335, 1335, 2335]
+337 None oneddg Thierry plc1 [336, 1336, 2336]
+338 None oneddh Thierry plc1 [337, 1337, 2337]
+339 None oneddi Thierry plc1 [338, 1338, 2338]
+340 None oneddj Thierry plc1 [339, 1339, 2339]
+341 None onedea Thierry plc1 [340, 1340, 2340]
+342 None onedeb Thierry plc1 [341, 1341, 2341]
+343 None onedec Thierry plc1 [342, 1342, 2342]
+344 None oneded Thierry plc1 [343, 1343, 2343]
+345 None onedee Thierry plc1 [344, 1344, 2344]
+346 None onedef Thierry plc1 [345, 1345, 2345]
+347 None onedeg Thierry plc1 [346, 1346, 2346]
+348 None onedeh Thierry plc1 [347, 1347, 2347]
+349 None onedei Thierry plc1 [348, 1348, 2348]
+350 None onedej Thierry plc1 [349, 1349, 2349]
+351 None onedfa Thierry plc1 [350, 1350, 2350]
+352 None onedfb Thierry plc1 [351, 1351, 2351]
+353 None onedfc Thierry plc1 [352, 1352, 2352]
+354 None onedfd Thierry plc1 [353, 1353, 2353]
+355 None onedfe Thierry plc1 [354, 1354, 2354]
+356 None onedff Thierry plc1 [355, 1355, 2355]
+357 None onedfg Thierry plc1 [356, 1356, 2356]
+358 None onedfh Thierry plc1 [357, 1357, 2357]
+359 None onedfi Thierry plc1 [358, 1358, 2358]
+360 None onedfj Thierry plc1 [359, 1359, 2359]
+361 None onedga Thierry plc1 [360, 1360, 2360]
+362 None onedgb Thierry plc1 [361, 1361, 2361]
+363 None onedgc Thierry plc1 [362, 1362, 2362]
+364 None onedgd Thierry plc1 [363, 1363, 2363]
+365 None onedge Thierry plc1 [364, 1364, 2364]
+366 None onedgf Thierry plc1 [365, 1365, 2365]
+367 None onedgg Thierry plc1 [366, 1366, 2366]
+368 None onedgh Thierry plc1 [367, 1367, 2367]
+369 None onedgi Thierry plc1 [368, 1368, 2368]
+370 None onedgj Thierry plc1 [369, 1369, 2369]
+371 None onedha Thierry plc1 [370, 1370, 2370]
+372 None onedhb Thierry plc1 [371, 1371, 2371]
+373 None onedhc Thierry plc1 [372, 1372, 2372]
+374 None onedhd Thierry plc1 [373, 1373, 2373]
+375 None onedhe Thierry plc1 [374, 1374, 2374]
+376 None onedhf Thierry plc1 [375, 1375, 2375]
+377 None onedhg Thierry plc1 [376, 1376, 2376]
+378 None onedhh Thierry plc1 [377, 1377, 2377]
+379 None onedhi Thierry plc1 [378, 1378, 2378]
+380 None onedhj Thierry plc1 [379, 1379, 2379]
+381 None onedia Thierry plc1 [380, 1380, 2380]
+382 None onedib Thierry plc1 [381, 1381, 2381]
+383 None onedic Thierry plc1 [382, 1382, 2382]
+384 None onedid Thierry plc1 [383, 1383, 2383]
+385 None onedie Thierry plc1 [384, 1384, 2384]
+386 None onedif Thierry plc1 [385, 1385, 2385]
+387 None onedig Thierry plc1 [386, 1386, 2386]
+388 None onedih Thierry plc1 [387, 1387, 2387]
+389 None onedii Thierry plc1 [388, 1388, 2388]
+390 None onedij Thierry plc1 [389, 1389, 2389]
+391 None onedja Thierry plc1 [390, 1390, 2390]
+392 None onedjb Thierry plc1 [391, 1391, 2391]
+393 None onedjc Thierry plc1 [392, 1392, 2392]
+394 None onedjd Thierry plc1 [393, 1393, 2393]
+395 None onedje Thierry plc1 [394, 1394, 2394]
+396 None onedjf Thierry plc1 [395, 1395, 2395]
+397 None onedjg Thierry plc1 [396, 1396, 2396]
+398 None onedjh Thierry plc1 [397, 1397, 2397]
+399 None onedji Thierry plc1 [398, 1398, 2398]
+400 None onedjj Thierry plc1 [399, 1399, 2399]
+401 None oneeaa Thierry plc1 [400, 1400, 2400]
+402 None oneeab Thierry plc1 [401, 1401, 2401]
+403 None oneeac Thierry plc1 [402, 1402, 2402]
+404 None oneead Thierry plc1 [403, 1403, 2403]
+405 None oneeae Thierry plc1 [404, 1404, 2404]
+406 None oneeaf Thierry plc1 [405, 1405, 2405]
+407 None oneeag Thierry plc1 [406, 1406, 2406]
+408 None oneeah Thierry plc1 [407, 1407, 2407]
+409 None oneeai Thierry plc1 [408, 1408, 2408]
+410 None oneeaj Thierry plc1 [409, 1409, 2409]
+411 None oneeba Thierry plc1 [410, 1410, 2410]
+412 None oneebb Thierry plc1 [411, 1411, 2411]
+413 None oneebc Thierry plc1 [412, 1412, 2412]
+414 None oneebd Thierry plc1 [413, 1413, 2413]
+415 None oneebe Thierry plc1 [414, 1414, 2414]
+416 None oneebf Thierry plc1 [415, 1415, 2415]
+417 None oneebg Thierry plc1 [416, 1416, 2416]
+418 None oneebh Thierry plc1 [417, 1417, 2417]
+419 None oneebi Thierry plc1 [418, 1418, 2418]
+420 None oneebj Thierry plc1 [419, 1419, 2419]
+421 None oneeca Thierry plc1 [420, 1420, 2420]
+422 None oneecb Thierry plc1 [421, 1421, 2421]
+423 None oneecc Thierry plc1 [422, 1422, 2422]
+424 None oneecd Thierry plc1 [423, 1423, 2423]
+425 None oneece Thierry plc1 [424, 1424, 2424]
+426 None oneecf Thierry plc1 [425, 1425, 2425]
+427 None oneecg Thierry plc1 [426, 1426, 2426]
+428 None oneech Thierry plc1 [427, 1427, 2427]
+429 None oneeci Thierry plc1 [428, 1428, 2428]
+430 None oneecj Thierry plc1 [429, 1429, 2429]
+431 None oneeda Thierry plc1 [430, 1430, 2430]
+432 None oneedb Thierry plc1 [431, 1431, 2431]
+433 None oneedc Thierry plc1 [432, 1432, 2432]
+434 None oneedd Thierry plc1 [433, 1433, 2433]
+435 None oneede Thierry plc1 [434, 1434, 2434]
+436 None oneedf Thierry plc1 [435, 1435, 2435]
+437 None oneedg Thierry plc1 [436, 1436, 2436]
+438 None oneedh Thierry plc1 [437, 1437, 2437]
+439 None oneedi Thierry plc1 [438, 1438, 2438]
+440 None oneedj Thierry plc1 [439, 1439, 2439]
+441 None oneeea Thierry plc1 [440, 1440, 2440]
+442 None oneeeb Thierry plc1 [441, 1441, 2441]
+443 None oneeec Thierry plc1 [442, 1442, 2442]
+444 None oneeed Thierry plc1 [443, 1443, 2443]
+445 None oneeee Thierry plc1 [444, 1444, 2444]
+446 None oneeef Thierry plc1 [445, 1445, 2445]
+447 None oneeeg Thierry plc1 [446, 1446, 2446]
+448 None oneeeh Thierry plc1 [447, 1447, 2447]
+449 None oneeei Thierry plc1 [448, 1448, 2448]
+450 None oneeej Thierry plc1 [449, 1449, 2449]
+451 None oneefa Thierry plc1 [450, 1450, 2450]
+452 None oneefb Thierry plc1 [451, 1451, 2451]
+453 None oneefc Thierry plc1 [452, 1452, 2452]
+454 None oneefd Thierry plc1 [453, 1453, 2453]
+455 None oneefe Thierry plc1 [454, 1454, 2454]
+456 None oneeff Thierry plc1 [455, 1455, 2455]
+457 None oneefg Thierry plc1 [456, 1456, 2456]
+458 None oneefh Thierry plc1 [457, 1457, 2457]
+459 None oneefi Thierry plc1 [458, 1458, 2458]
+460 None oneefj Thierry plc1 [459, 1459, 2459]
+461 None oneega Thierry plc1 [460, 1460, 2460]
+462 None oneegb Thierry plc1 [461, 1461, 2461]
+463 None oneegc Thierry plc1 [462, 1462, 2462]
+464 None oneegd Thierry plc1 [463, 1463, 2463]
+465 None oneege Thierry plc1 [464, 1464, 2464]
+466 None oneegf Thierry plc1 [465, 1465, 2465]
+467 None oneegg Thierry plc1 [466, 1466, 2466]
+468 None oneegh Thierry plc1 [467, 1467, 2467]
+469 None oneegi Thierry plc1 [468, 1468, 2468]
+470 None oneegj Thierry plc1 [469, 1469, 2469]
+471 None oneeha Thierry plc1 [470, 1470, 2470]
+472 None oneehb Thierry plc1 [471, 1471, 2471]
+473 None oneehc Thierry plc1 [472, 1472, 2472]
+474 None oneehd Thierry plc1 [473, 1473, 2473]
+475 None oneehe Thierry plc1 [474, 1474, 2474]
+476 None oneehf Thierry plc1 [475, 1475, 2475]
+477 None oneehg Thierry plc1 [476, 1476, 2476]
+478 None oneehh Thierry plc1 [477, 1477, 2477]
+479 None oneehi Thierry plc1 [478, 1478, 2478]
+480 None oneehj Thierry plc1 [479, 1479, 2479]
+481 None oneeia Thierry plc1 [480, 1480, 2480]
+482 None oneeib Thierry plc1 [481, 1481, 2481]
+483 None oneeic Thierry plc1 [482, 1482, 2482]
+484 None oneeid Thierry plc1 [483, 1483, 2483]
+485 None oneeie Thierry plc1 [484, 1484, 2484]
+486 None oneeif Thierry plc1 [485, 1485, 2485]
+487 None oneeig Thierry plc1 [486, 1486, 2486]
+488 None oneeih Thierry plc1 [487, 1487, 2487]
+489 None oneeii Thierry plc1 [488, 1488, 2488]
+490 None oneeij Thierry plc1 [489, 1489, 2489]
+491 None oneeja Thierry plc1 [490, 1490, 2490]
+492 None oneejb Thierry plc1 [491, 1491, 2491]
+493 None oneejc Thierry plc1 [492, 1492, 2492]
+494 None oneejd Thierry plc1 [493, 1493, 2493]
+495 None oneeje Thierry plc1 [494, 1494, 2494]
+496 None oneejf Thierry plc1 [495, 1495, 2495]
+497 None oneejg Thierry plc1 [496, 1496, 2496]
+498 None oneejh Thierry plc1 [497, 1497, 2497]
+499 None oneeji Thierry plc1 [498, 1498, 2498]
+500 None oneejj Thierry plc1 [499, 1499, 2499]
+501 None onefaa Thierry plc1 [500, 1500, 2500]
+502 None onefab Thierry plc1 [501, 1501, 2501]
+503 None onefac Thierry plc1 [502, 1502, 2502]
+504 None onefad Thierry plc1 [503, 1503, 2503]
+505 None onefae Thierry plc1 [504, 1504, 2504]
+506 None onefaf Thierry plc1 [505, 1505, 2505]
+507 None onefag Thierry plc1 [506, 1506, 2506]
+508 None onefah Thierry plc1 [507, 1507, 2507]
+509 None onefai Thierry plc1 [508, 1508, 2508]
+510 None onefaj Thierry plc1 [509, 1509, 2509]
+511 None onefba Thierry plc1 [510, 1510, 2510]
+512 None onefbb Thierry plc1 [511, 1511, 2511]
+513 None onefbc Thierry plc1 [512, 1512, 2512]
+514 None onefbd Thierry plc1 [513, 1513, 2513]
+515 None onefbe Thierry plc1 [514, 1514, 2514]
+516 None onefbf Thierry plc1 [515, 1515, 2515]
+517 None onefbg Thierry plc1 [516, 1516, 2516]
+518 None onefbh Thierry plc1 [517, 1517, 2517]
+519 None onefbi Thierry plc1 [518, 1518, 2518]
+520 None onefbj Thierry plc1 [519, 1519, 2519]
+521 None onefca Thierry plc1 [520, 1520, 2520]
+522 None onefcb Thierry plc1 [521, 1521, 2521]
+523 None onefcc Thierry plc1 [522, 1522, 2522]
+524 None onefcd Thierry plc1 [523, 1523, 2523]
+525 None onefce Thierry plc1 [524, 1524, 2524]
+526 None onefcf Thierry plc1 [525, 1525, 2525]
+527 None onefcg Thierry plc1 [526, 1526, 2526]
+528 None onefch Thierry plc1 [527, 1527, 2527]
+529 None onefci Thierry plc1 [528, 1528, 2528]
+530 None onefcj Thierry plc1 [529, 1529, 2529]
+531 None onefda Thierry plc1 [530, 1530, 2530]
+532 None onefdb Thierry plc1 [531, 1531, 2531]
+533 None onefdc Thierry plc1 [532, 1532, 2532]
+534 None onefdd Thierry plc1 [533, 1533, 2533]
+535 None onefde Thierry plc1 [534, 1534, 2534]
+536 None onefdf Thierry plc1 [535, 1535, 2535]
+537 None onefdg Thierry plc1 [536, 1536, 2536]
+538 None onefdh Thierry plc1 [537, 1537, 2537]
+539 None onefdi Thierry plc1 [538, 1538, 2538]
+540 None onefdj Thierry plc1 [539, 1539, 2539]
+541 None onefea Thierry plc1 [540, 1540, 2540]
+542 None onefeb Thierry plc1 [541, 1541, 2541]
+543 None onefec Thierry plc1 [542, 1542, 2542]
+544 None onefed Thierry plc1 [543, 1543, 2543]
+545 None onefee Thierry plc1 [544, 1544, 2544]
+546 None onefef Thierry plc1 [545, 1545, 2545]
+547 None onefeg Thierry plc1 [546, 1546, 2546]
+548 None onefeh Thierry plc1 [547, 1547, 2547]
+549 None onefei Thierry plc1 [548, 1548, 2548]
+550 None onefej Thierry plc1 [549, 1549, 2549]
+551 None oneffa Thierry plc1 [550, 1550, 2550]
+552 None oneffb Thierry plc1 [551, 1551, 2551]
+553 None oneffc Thierry plc1 [552, 1552, 2552]
+554 None oneffd Thierry plc1 [553, 1553, 2553]
+555 None oneffe Thierry plc1 [554, 1554, 2554]
+556 None onefff Thierry plc1 [555, 1555, 2555]
+557 None oneffg Thierry plc1 [556, 1556, 2556]
+558 None oneffh Thierry plc1 [557, 1557, 2557]
+559 None oneffi Thierry plc1 [558, 1558, 2558]
+560 None oneffj Thierry plc1 [559, 1559, 2559]
+561 None onefga Thierry plc1 [560, 1560, 2560]
+562 None onefgb Thierry plc1 [561, 1561, 2561]
+563 None onefgc Thierry plc1 [562, 1562, 2562]
+564 None onefgd Thierry plc1 [563, 1563, 2563]
+565 None onefge Thierry plc1 [564, 1564, 2564]
+566 None onefgf Thierry plc1 [565, 1565, 2565]
+567 None onefgg Thierry plc1 [566, 1566, 2566]
+568 None onefgh Thierry plc1 [567, 1567, 2567]
+569 None onefgi Thierry plc1 [568, 1568, 2568]
+570 None onefgj Thierry plc1 [569, 1569, 2569]
+571 None onefha Thierry plc1 [570, 1570, 2570]
+572 None onefhb Thierry plc1 [571, 1571, 2571]
+573 None onefhc Thierry plc1 [572, 1572, 2572]
+574 None onefhd Thierry plc1 [573, 1573, 2573]
+575 None onefhe Thierry plc1 [574, 1574, 2574]
+576 None onefhf Thierry plc1 [575, 1575, 2575]
+577 None onefhg Thierry plc1 [576, 1576, 2576]
+578 None onefhh Thierry plc1 [577, 1577, 2577]
+579 None onefhi Thierry plc1 [578, 1578, 2578]
+580 None onefhj Thierry plc1 [579, 1579, 2579]
+581 None onefia Thierry plc1 [580, 1580, 2580]
+582 None onefib Thierry plc1 [581, 1581, 2581]
+583 None onefic Thierry plc1 [582, 1582, 2582]
+584 None onefid Thierry plc1 [583, 1583, 2583]
+585 None onefie Thierry plc1 [584, 1584, 2584]
+586 None onefif Thierry plc1 [585, 1585, 2585]
+587 None onefig Thierry plc1 [586, 1586, 2586]
+588 None onefih Thierry plc1 [587, 1587, 2587]
+589 None onefii Thierry plc1 [588, 1588, 2588]
+590 None onefij Thierry plc1 [589, 1589, 2589]
+591 None onefja Thierry plc1 [590, 1590, 2590]
+592 None onefjb Thierry plc1 [591, 1591, 2591]
+593 None onefjc Thierry plc1 [592, 1592, 2592]
+594 None onefjd Thierry plc1 [593, 1593, 2593]
+595 None onefje Thierry plc1 [594, 1594, 2594]
+596 None onefjf Thierry plc1 [595, 1595, 2595]
+597 None onefjg Thierry plc1 [596, 1596, 2596]
+598 None onefjh Thierry plc1 [597, 1597, 2597]
+599 None onefji Thierry plc1 [598, 1598, 2598]
+600 None onefjj Thierry plc1 [599, 1599, 2599]
+601 None onegaa Thierry plc1 [600, 1600, 2600]
+602 None onegab Thierry plc1 [601, 1601, 2601]
+603 None onegac Thierry plc1 [602, 1602, 2602]
+604 None onegad Thierry plc1 [603, 1603, 2603]
+605 None onegae Thierry plc1 [604, 1604, 2604]
+606 None onegaf Thierry plc1 [605, 1605, 2605]
+607 None onegag Thierry plc1 [606, 1606, 2606]
+608 None onegah Thierry plc1 [607, 1607, 2607]
+609 None onegai Thierry plc1 [608, 1608, 2608]
+610 None onegaj Thierry plc1 [609, 1609, 2609]
+611 None onegba Thierry plc1 [610, 1610, 2610]
+612 None onegbb Thierry plc1 [611, 1611, 2611]
+613 None onegbc Thierry plc1 [612, 1612, 2612]
+614 None onegbd Thierry plc1 [613, 1613, 2613]
+615 None onegbe Thierry plc1 [614, 1614, 2614]
+616 None onegbf Thierry plc1 [615, 1615, 2615]
+617 None onegbg Thierry plc1 [616, 1616, 2616]
+618 None onegbh Thierry plc1 [617, 1617, 2617]
+619 None onegbi Thierry plc1 [618, 1618, 2618]
+620 None onegbj Thierry plc1 [619, 1619, 2619]
+621 None onegca Thierry plc1 [620, 1620, 2620]
+622 None onegcb Thierry plc1 [621, 1621, 2621]
+623 None onegcc Thierry plc1 [622, 1622, 2622]
+624 None onegcd Thierry plc1 [623, 1623, 2623]
+625 None onegce Thierry plc1 [624, 1624, 2624]
+626 None onegcf Thierry plc1 [625, 1625, 2625]
+627 None onegcg Thierry plc1 [626, 1626, 2626]
+628 None onegch Thierry plc1 [627, 1627, 2627]
+629 None onegci Thierry plc1 [628, 1628, 2628]
+630 None onegcj Thierry plc1 [629, 1629, 2629]
+631 None onegda Thierry plc1 [630, 1630, 2630]
+632 None onegdb Thierry plc1 [631, 1631, 2631]
+633 None onegdc Thierry plc1 [632, 1632, 2632]
+634 None onegdd Thierry plc1 [633, 1633, 2633]
+635 None onegde Thierry plc1 [634, 1634, 2634]
+636 None onegdf Thierry plc1 [635, 1635, 2635]
+637 None onegdg Thierry plc1 [636, 1636, 2636]
+638 None onegdh Thierry plc1 [637, 1637, 2637]
+639 None onegdi Thierry plc1 [638, 1638, 2638]
+640 None onegdj Thierry plc1 [639, 1639, 2639]
+641 None onegea Thierry plc1 [640, 1640, 2640]
+642 None onegeb Thierry plc1 [641, 1641, 2641]
+643 None onegec Thierry plc1 [642, 1642, 2642]
+644 None oneged Thierry plc1 [643, 1643, 2643]
+645 None onegee Thierry plc1 [644, 1644, 2644]
+646 None onegef Thierry plc1 [645, 1645, 2645]
+647 None onegeg Thierry plc1 [646, 1646, 2646]
+648 None onegeh Thierry plc1 [647, 1647, 2647]
+649 None onegei Thierry plc1 [648, 1648, 2648]
+650 None onegej Thierry plc1 [649, 1649, 2649]
+651 None onegfa Thierry plc1 [650, 1650, 2650]
+652 None onegfb Thierry plc1 [651, 1651, 2651]
+653 None onegfc Thierry plc1 [652, 1652, 2652]
+654 None onegfd Thierry plc1 [653, 1653, 2653]
+655 None onegfe Thierry plc1 [654, 1654, 2654]
+656 None onegff Thierry plc1 [655, 1655, 2655]
+657 None onegfg Thierry plc1 [656, 1656, 2656]
+658 None onegfh Thierry plc1 [657, 1657, 2657]
+659 None onegfi Thierry plc1 [658, 1658, 2658]
+660 None onegfj Thierry plc1 [659, 1659, 2659]
+661 None onegga Thierry plc1 [660, 1660, 2660]
+662 None oneggb Thierry plc1 [661, 1661, 2661]
+663 None oneggc Thierry plc1 [662, 1662, 2662]
+664 None oneggd Thierry plc1 [663, 1663, 2663]
+665 None onegge Thierry plc1 [664, 1664, 2664]
+666 None oneggf Thierry plc1 [665, 1665, 2665]
+667 None oneggg Thierry plc1 [666, 1666, 2666]
+668 None oneggh Thierry plc1 [667, 1667, 2667]
+669 None oneggi Thierry plc1 [668, 1668, 2668]
+670 None oneggj Thierry plc1 [669, 1669, 2669]
+671 None onegha Thierry plc1 [670, 1670, 2670]
+672 None oneghb Thierry plc1 [671, 1671, 2671]
+673 None oneghc Thierry plc1 [672, 1672, 2672]
+674 None oneghd Thierry plc1 [673, 1673, 2673]
+675 None oneghe Thierry plc1 [674, 1674, 2674]
+676 None oneghf Thierry plc1 [675, 1675, 2675]
+677 None oneghg Thierry plc1 [676, 1676, 2676]
+678 None oneghh Thierry plc1 [677, 1677, 2677]
+679 None oneghi Thierry plc1 [678, 1678, 2678]
+680 None oneghj Thierry plc1 [679, 1679, 2679]
+681 None onegia Thierry plc1 [680, 1680, 2680]
+682 None onegib Thierry plc1 [681, 1681, 2681]
+683 None onegic Thierry plc1 [682, 1682, 2682]
+684 None onegid Thierry plc1 [683, 1683, 2683]
+685 None onegie Thierry plc1 [684, 1684, 2684]
+686 None onegif Thierry plc1 [685, 1685, 2685]
+687 None onegig Thierry plc1 [686, 1686, 2686]
+688 None onegih Thierry plc1 [687, 1687, 2687]
+689 None onegii Thierry plc1 [688, 1688, 2688]
+690 None onegij Thierry plc1 [689, 1689, 2689]
+691 None onegja Thierry plc1 [690, 1690, 2690]
+692 None onegjb Thierry plc1 [691, 1691, 2691]
+693 None onegjc Thierry plc1 [692, 1692, 2692]
+694 None onegjd Thierry plc1 [693, 1693, 2693]
+695 None onegje Thierry plc1 [694, 1694, 2694]
+696 None onegjf Thierry plc1 [695, 1695, 2695]
+697 None onegjg Thierry plc1 [696, 1696, 2696]
+698 None onegjh Thierry plc1 [697, 1697, 2697]
+699 None onegji Thierry plc1 [698, 1698, 2698]
+700 None onegjj Thierry plc1 [699, 1699, 2699]
+701 None onehaa Thierry plc1 [700, 1700, 2700]
+702 None onehab Thierry plc1 [701, 1701, 2701]
+703 None onehac Thierry plc1 [702, 1702, 2702]
+704 None onehad Thierry plc1 [703, 1703, 2703]
+705 None onehae Thierry plc1 [704, 1704, 2704]
+706 None onehaf Thierry plc1 [705, 1705, 2705]
+707 None onehag Thierry plc1 [706, 1706, 2706]
+708 None onehah Thierry plc1 [707, 1707, 2707]
+709 None onehai Thierry plc1 [708, 1708, 2708]
+710 None onehaj Thierry plc1 [709, 1709, 2709]
+711 None onehba Thierry plc1 [710, 1710, 2710]
+712 None onehbb Thierry plc1 [711, 1711, 2711]
+713 None onehbc Thierry plc1 [712, 1712, 2712]
+714 None onehbd Thierry plc1 [713, 1713, 2713]
+715 None onehbe Thierry plc1 [714, 1714, 2714]
+716 None onehbf Thierry plc1 [715, 1715, 2715]
+717 None onehbg Thierry plc1 [716, 1716, 2716]
+718 None onehbh Thierry plc1 [717, 1717, 2717]
+719 None onehbi Thierry plc1 [718, 1718, 2718]
+720 None onehbj Thierry plc1 [719, 1719, 2719]
+721 None onehca Thierry plc1 [720, 1720, 2720]
+722 None onehcb Thierry plc1 [721, 1721, 2721]
+723 None onehcc Thierry plc1 [722, 1722, 2722]
+724 None onehcd Thierry plc1 [723, 1723, 2723]
+725 None onehce Thierry plc1 [724, 1724, 2724]
+726 None onehcf Thierry plc1 [725, 1725, 2725]
+727 None onehcg Thierry plc1 [726, 1726, 2726]
+728 None onehch Thierry plc1 [727, 1727, 2727]
+729 None onehci Thierry plc1 [728, 1728, 2728]
+730 None onehcj Thierry plc1 [729, 1729, 2729]
+731 None onehda Thierry plc1 [730, 1730, 2730]
+732 None onehdb Thierry plc1 [731, 1731, 2731]
+733 None onehdc Thierry plc1 [732, 1732, 2732]
+734 None onehdd Thierry plc1 [733, 1733, 2733]
+735 None onehde Thierry plc1 [734, 1734, 2734]
+736 None onehdf Thierry plc1 [735, 1735, 2735]
+737 None onehdg Thierry plc1 [736, 1736, 2736]
+738 None onehdh Thierry plc1 [737, 1737, 2737]
+739 None onehdi Thierry plc1 [738, 1738, 2738]
+740 None onehdj Thierry plc1 [739, 1739, 2739]
+741 None onehea Thierry plc1 [740, 1740, 2740]
+742 None oneheb Thierry plc1 [741, 1741, 2741]
+743 None onehec Thierry plc1 [742, 1742, 2742]
+744 None onehed Thierry plc1 [743, 1743, 2743]
+745 None onehee Thierry plc1 [744, 1744, 2744]
+746 None onehef Thierry plc1 [745, 1745, 2745]
+747 None oneheg Thierry plc1 [746, 1746, 2746]
+748 None oneheh Thierry plc1 [747, 1747, 2747]
+749 None onehei Thierry plc1 [748, 1748, 2748]
+750 None onehej Thierry plc1 [749, 1749, 2749]
+751 None onehfa Thierry plc1 [750, 1750, 2750]
+752 None onehfb Thierry plc1 [751, 1751, 2751]
+753 None onehfc Thierry plc1 [752, 1752, 2752]
+754 None onehfd Thierry plc1 [753, 1753, 2753]
+755 None onehfe Thierry plc1 [754, 1754, 2754]
+756 None onehff Thierry plc1 [755, 1755, 2755]
+757 None onehfg Thierry plc1 [756, 1756, 2756]
+758 None onehfh Thierry plc1 [757, 1757, 2757]
+759 None onehfi Thierry plc1 [758, 1758, 2758]
+760 None onehfj Thierry plc1 [759, 1759, 2759]
+761 None onehga Thierry plc1 [760, 1760, 2760]
+762 None onehgb Thierry plc1 [761, 1761, 2761]
+763 None onehgc Thierry plc1 [762, 1762, 2762]
+764 None onehgd Thierry plc1 [763, 1763, 2763]
+765 None onehge Thierry plc1 [764, 1764, 2764]
+766 None onehgf Thierry plc1 [765, 1765, 2765]
+767 None onehgg Thierry plc1 [766, 1766, 2766]
+768 None onehgh Thierry plc1 [767, 1767, 2767]
+769 None onehgi Thierry plc1 [768, 1768, 2768]
+770 None onehgj Thierry plc1 [769, 1769, 2769]
+771 None onehha Thierry plc1 [770, 1770, 2770]
+772 None onehhb Thierry plc1 [771, 1771, 2771]
+773 None onehhc Thierry plc1 [772, 1772, 2772]
+774 None onehhd Thierry plc1 [773, 1773, 2773]
+775 None onehhe Thierry plc1 [774, 1774, 2774]
+776 None onehhf Thierry plc1 [775, 1775, 2775]
+777 None onehhg Thierry plc1 [776, 1776, 2776]
+778 None onehhh Thierry plc1 [777, 1777, 2777]
+779 None onehhi Thierry plc1 [778, 1778, 2778]
+780 None onehhj Thierry plc1 [779, 1779, 2779]
+781 None onehia Thierry plc1 [780, 1780, 2780]
+782 None onehib Thierry plc1 [781, 1781, 2781]
+783 None onehic Thierry plc1 [782, 1782, 2782]
+784 None onehid Thierry plc1 [783, 1783, 2783]
+785 None onehie Thierry plc1 [784, 1784, 2784]
+786 None onehif Thierry plc1 [785, 1785, 2785]
+787 None onehig Thierry plc1 [786, 1786, 2786]
+788 None onehih Thierry plc1 [787, 1787, 2787]
+789 None onehii Thierry plc1 [788, 1788, 2788]
+790 None onehij Thierry plc1 [789, 1789, 2789]
+791 None onehja Thierry plc1 [790, 1790, 2790]
+792 None onehjb Thierry plc1 [791, 1791, 2791]
+793 None onehjc Thierry plc1 [792, 1792, 2792]
+794 None onehjd Thierry plc1 [793, 1793, 2793]
+795 None onehje Thierry plc1 [794, 1794, 2794]
+796 None onehjf Thierry plc1 [795, 1795, 2795]
+797 None onehjg Thierry plc1 [796, 1796, 2796]
+798 None onehjh Thierry plc1 [797, 1797, 2797]
+799 None onehji Thierry plc1 [798, 1798, 2798]
+800 None onehjj Thierry plc1 [799, 1799, 2799]
+801 None oneiaa Thierry plc1 [800, 1800, 2800]
+802 None oneiab Thierry plc1 [801, 1801, 2801]
+803 None oneiac Thierry plc1 [802, 1802, 2802]
+804 None oneiad Thierry plc1 [803, 1803, 2803]
+805 None oneiae Thierry plc1 [804, 1804, 2804]
+806 None oneiaf Thierry plc1 [805, 1805, 2805]
+807 None oneiag Thierry plc1 [806, 1806, 2806]
+808 None oneiah Thierry plc1 [807, 1807, 2807]
+809 None oneiai Thierry plc1 [808, 1808, 2808]
+810 None oneiaj Thierry plc1 [809, 1809, 2809]
+811 None oneiba Thierry plc1 [810, 1810, 2810]
+812 None oneibb Thierry plc1 [811, 1811, 2811]
+813 None oneibc Thierry plc1 [812, 1812, 2812]
+814 None oneibd Thierry plc1 [813, 1813, 2813]
+815 None oneibe Thierry plc1 [814, 1814, 2814]
+816 None oneibf Thierry plc1 [815, 1815, 2815]
+817 None oneibg Thierry plc1 [816, 1816, 2816]
+818 None oneibh Thierry plc1 [817, 1817, 2817]
+819 None oneibi Thierry plc1 [818, 1818, 2818]
+820 None oneibj Thierry plc1 [819, 1819, 2819]
+821 None oneica Thierry plc1 [820, 1820, 2820]
+822 None oneicb Thierry plc1 [821, 1821, 2821]
+823 None oneicc Thierry plc1 [822, 1822, 2822]
+824 None oneicd Thierry plc1 [823, 1823, 2823]
+825 None oneice Thierry plc1 [824, 1824, 2824]
+826 None oneicf Thierry plc1 [825, 1825, 2825]
+827 None oneicg Thierry plc1 [826, 1826, 2826]
+828 None oneich Thierry plc1 [827, 1827, 2827]
+829 None oneici Thierry plc1 [828, 1828, 2828]
+830 None oneicj Thierry plc1 [829, 1829, 2829]
+831 None oneida Thierry plc1 [830, 1830, 2830]
+832 None oneidb Thierry plc1 [831, 1831, 2831]
+833 None oneidc Thierry plc1 [832, 1832, 2832]
+834 None oneidd Thierry plc1 [833, 1833, 2833]
+835 None oneide Thierry plc1 [834, 1834, 2834]
+836 None oneidf Thierry plc1 [835, 1835, 2835]
+837 None oneidg Thierry plc1 [836, 1836, 2836]
+838 None oneidh Thierry plc1 [837, 1837, 2837]
+839 None oneidi Thierry plc1 [838, 1838, 2838]
+840 None oneidj Thierry plc1 [839, 1839, 2839]
+841 None oneiea Thierry plc1 [840, 1840, 2840]
+842 None oneieb Thierry plc1 [841, 1841, 2841]
+843 None oneiec Thierry plc1 [842, 1842, 2842]
+844 None oneied Thierry plc1 [843, 1843, 2843]
+845 None oneiee Thierry plc1 [844, 1844, 2844]
+846 None oneief Thierry plc1 [845, 1845, 2845]
+847 None oneieg Thierry plc1 [846, 1846, 2846]
+848 None oneieh Thierry plc1 [847, 1847, 2847]
+849 None oneiei Thierry plc1 [848, 1848, 2848]
+850 None oneiej Thierry plc1 [849, 1849, 2849]
+851 None oneifa Thierry plc1 [850, 1850, 2850]
+852 None oneifb Thierry plc1 [851, 1851, 2851]
+853 None oneifc Thierry plc1 [852, 1852, 2852]
+854 None oneifd Thierry plc1 [853, 1853, 2853]
+855 None oneife Thierry plc1 [854, 1854, 2854]
+856 None oneiff Thierry plc1 [855, 1855, 2855]
+857 None oneifg Thierry plc1 [856, 1856, 2856]
+858 None oneifh Thierry plc1 [857, 1857, 2857]
+859 None oneifi Thierry plc1 [858, 1858, 2858]
+860 None oneifj Thierry plc1 [859, 1859, 2859]
+861 None oneiga Thierry plc1 [860, 1860, 2860]
+862 None oneigb Thierry plc1 [861, 1861, 2861]
+863 None oneigc Thierry plc1 [862, 1862, 2862]
+864 None oneigd Thierry plc1 [863, 1863, 2863]
+865 None oneige Thierry plc1 [864, 1864, 2864]
+866 None oneigf Thierry plc1 [865, 1865, 2865]
+867 None oneigg Thierry plc1 [866, 1866, 2866]
+868 None oneigh Thierry plc1 [867, 1867, 2867]
+869 None oneigi Thierry plc1 [868, 1868, 2868]
+870 None oneigj Thierry plc1 [869, 1869, 2869]
+871 None oneiha Thierry plc1 [870, 1870, 2870]
+872 None oneihb Thierry plc1 [871, 1871, 2871]
+873 None oneihc Thierry plc1 [872, 1872, 2872]
+874 None oneihd Thierry plc1 [873, 1873, 2873]
+875 None oneihe Thierry plc1 [874, 1874, 2874]
+876 None oneihf Thierry plc1 [875, 1875, 2875]
+877 None oneihg Thierry plc1 [876, 1876, 2876]
+878 None oneihh Thierry plc1 [877, 1877, 2877]
+879 None oneihi Thierry plc1 [878, 1878, 2878]
+880 None oneihj Thierry plc1 [879, 1879, 2879]
+881 None oneiia Thierry plc1 [880, 1880, 2880]
+882 None oneiib Thierry plc1 [881, 1881, 2881]
+883 None oneiic Thierry plc1 [882, 1882, 2882]
+884 None oneiid Thierry plc1 [883, 1883, 2883]
+885 None oneiie Thierry plc1 [884, 1884, 2884]
+886 None oneiif Thierry plc1 [885, 1885, 2885]
+887 None oneiig Thierry plc1 [886, 1886, 2886]
+888 None oneiih Thierry plc1 [887, 1887, 2887]
+889 None oneiii Thierry plc1 [888, 1888, 2888]
+890 None oneiij Thierry plc1 [889, 1889, 2889]
+891 None oneija Thierry plc1 [890, 1890, 2890]
+892 None oneijb Thierry plc1 [891, 1891, 2891]
+893 None oneijc Thierry plc1 [892, 1892, 2892]
+894 None oneijd Thierry plc1 [893, 1893, 2893]
+895 None oneije Thierry plc1 [894, 1894, 2894]
+896 None oneijf Thierry plc1 [895, 1895, 2895]
+897 None oneijg Thierry plc1 [896, 1896, 2896]
+898 None oneijh Thierry plc1 [897, 1897, 2897]
+899 None oneiji Thierry plc1 [898, 1898, 2898]
+900 None oneijj Thierry plc1 [899, 1899, 2899]
+901 None onejaa Thierry plc1 [900, 1900, 2900]
+902 None onejab Thierry plc1 [901, 1901, 2901]
+903 None onejac Thierry plc1 [902, 1902, 2902]
+904 None onejad Thierry plc1 [903, 1903, 2903]
+905 None onejae Thierry plc1 [904, 1904, 2904]
+906 None onejaf Thierry plc1 [905, 1905, 2905]
+907 None onejag Thierry plc1 [906, 1906, 2906]
+908 None onejah Thierry plc1 [907, 1907, 2907]
+909 None onejai Thierry plc1 [908, 1908, 2908]
+910 None onejaj Thierry plc1 [909, 1909, 2909]
+911 None onejba Thierry plc1 [910, 1910, 2910]
+912 None onejbb Thierry plc1 [911, 1911, 2911]
+913 None onejbc Thierry plc1 [912, 1912, 2912]
+914 None onejbd Thierry plc1 [913, 1913, 2913]
+915 None onejbe Thierry plc1 [914, 1914, 2914]
+916 None onejbf Thierry plc1 [915, 1915, 2915]
+917 None onejbg Thierry plc1 [916, 1916, 2916]
+918 None onejbh Thierry plc1 [917, 1917, 2917]
+919 None onejbi Thierry plc1 [918, 1918, 2918]
+920 None onejbj Thierry plc1 [919, 1919, 2919]
+921 None onejca Thierry plc1 [920, 1920, 2920]
+922 None onejcb Thierry plc1 [921, 1921, 2921]
+923 None onejcc Thierry plc1 [922, 1922, 2922]
+924 None onejcd Thierry plc1 [923, 1923, 2923]
+925 None onejce Thierry plc1 [924, 1924, 2924]
+926 None onejcf Thierry plc1 [925, 1925, 2925]
+927 None onejcg Thierry plc1 [926, 1926, 2926]
+928 None onejch Thierry plc1 [927, 1927, 2927]
+929 None onejci Thierry plc1 [928, 1928, 2928]
+930 None onejcj Thierry plc1 [929, 1929, 2929]
+931 None onejda Thierry plc1 [930, 1930, 2930]
+932 None onejdb Thierry plc1 [931, 1931, 2931]
+933 None onejdc Thierry plc1 [932, 1932, 2932]
+934 None onejdd Thierry plc1 [933, 1933, 2933]
+935 None onejde Thierry plc1 [934, 1934, 2934]
+936 None onejdf Thierry plc1 [935, 1935, 2935]
+937 None onejdg Thierry plc1 [936, 1936, 2936]
+938 None onejdh Thierry plc1 [937, 1937, 2937]
+939 None onejdi Thierry plc1 [938, 1938, 2938]
+940 None onejdj Thierry plc1 [939, 1939, 2939]
+941 None onejea Thierry plc1 [940, 1940, 2940]
+942 None onejeb Thierry plc1 [941, 1941, 2941]
+943 None onejec Thierry plc1 [942, 1942, 2942]
+944 None onejed Thierry plc1 [943, 1943, 2943]
+945 None onejee Thierry plc1 [944, 1944, 2944]
+946 None onejef Thierry plc1 [945, 1945, 2945]
+947 None onejeg Thierry plc1 [946, 1946, 2946]
+948 None onejeh Thierry plc1 [947, 1947, 2947]
+949 None onejei Thierry plc1 [948, 1948, 2948]
+950 None onejej Thierry plc1 [949, 1949, 2949]
+951 None onejfa Thierry plc1 [950, 1950, 2950]
+952 None onejfb Thierry plc1 [951, 1951, 2951]
+953 None onejfc Thierry plc1 [952, 1952, 2952]
+954 None onejfd Thierry plc1 [953, 1953, 2953]
+955 None onejfe Thierry plc1 [954, 1954, 2954]
+956 None onejff Thierry plc1 [955, 1955, 2955]
+957 None onejfg Thierry plc1 [956, 1956, 2956]
+958 None onejfh Thierry plc1 [957, 1957, 2957]
+959 None onejfi Thierry plc1 [958, 1958, 2958]
+960 None onejfj Thierry plc1 [959, 1959, 2959]
+961 None onejga Thierry plc1 [960, 1960, 2960]
+962 None onejgb Thierry plc1 [961, 1961, 2961]
+963 None onejgc Thierry plc1 [962, 1962, 2962]
+964 None onejgd Thierry plc1 [963, 1963, 2963]
+965 None onejge Thierry plc1 [964, 1964, 2964]
+966 None onejgf Thierry plc1 [965, 1965, 2965]
+967 None onejgg Thierry plc1 [966, 1966, 2966]
+968 None onejgh Thierry plc1 [967, 1967, 2967]
+969 None onejgi Thierry plc1 [968, 1968, 2968]
+970 None onejgj Thierry plc1 [969, 1969, 2969]
+971 None onejha Thierry plc1 [970, 1970, 2970]
+972 None onejhb Thierry plc1 [971, 1971, 2971]
+973 None onejhc Thierry plc1 [972, 1972, 2972]
+974 None onejhd Thierry plc1 [973, 1973, 2973]
+975 None onejhe Thierry plc1 [974, 1974, 2974]
+976 None onejhf Thierry plc1 [975, 1975, 2975]
+977 None onejhg Thierry plc1 [976, 1976, 2976]
+978 None onejhh Thierry plc1 [977, 1977, 2977]
+979 None onejhi Thierry plc1 [978, 1978, 2978]
+980 None onejhj Thierry plc1 [979, 1979, 2979]
+981 None onejia Thierry plc1 [980, 1980, 2980]
+982 None onejib Thierry plc1 [981, 1981, 2981]
+983 None onejic Thierry plc1 [982, 1982, 2982]
+984 None onejid Thierry plc1 [983, 1983, 2983]
+985 None onejie Thierry plc1 [984, 1984, 2984]
+986 None onejif Thierry plc1 [985, 1985, 2985]
+987 None onejig Thierry plc1 [986, 1986, 2986]
+988 None onejih Thierry plc1 [987, 1987, 2987]
+989 None onejii Thierry plc1 [988, 1988, 2988]
+990 None onejij Thierry plc1 [989, 1989, 2989]
+991 None onejja Thierry plc1 [990, 1990, 2990]
+992 None onejjb Thierry plc1 [991, 1991, 2991]
+993 None onejjc Thierry plc1 [992, 1992, 2992]
+994 None onejjd Thierry plc1 [993, 1993, 2993]
+995 None onejje Thierry plc1 [994, 1994, 2994]
+996 None onejjf Thierry plc1 [995, 1995, 2995]
+997 None onejjg Thierry plc1 [996, 1996, 2996]
+998 None onejjh Thierry plc1 [997, 1997, 2997]
+999 None onejji Thierry plc1 [998, 1998, 2998]
+1000 None onejjj Thierry plc1 [999, 1999, 2999]
+1001 None onebaaa Thierry plc1 [1000, 2000, 3000]
+1002 1 thtwo Thierry plc2 Central []
+1003 1 twob Thierry plc2 [3001, 4001, 5001]
+1004 1 twoc Thierry plc2 [3002, 4002, 5002]
+1005 1 twod Thierry plc2 [3003, 4003, 5003]
+1006 1 twoe Thierry plc2 [3004, 4004, 5004]
+1007 1 twof Thierry plc2 [3005, 4005, 5005]
+1008 1 twog Thierry plc2 [3006, 4006, 5006]
+1009 1 twoh Thierry plc2 [3007, 4007, 5007]
+1010 1 twoi Thierry plc2 [3008, 4008, 5008]
+1011 1 twoj Thierry plc2 [3009, 4009, 5009]
+1012 1 twoba Thierry plc2 [3010, 4010, 5010]
+1013 1 twobb Thierry plc2 [3011, 4011, 5011]
+1014 1 twobc Thierry plc2 [3012, 4012, 5012]
+1015 1 twobd Thierry plc2 [3013, 4013, 5013]
+1016 1 twobe Thierry plc2 [3014, 4014, 5014]
+1017 1 twobf Thierry plc2 [3015, 4015, 5015]
+1018 1 twobg Thierry plc2 [3016, 4016, 5016]
+1019 1 twobh Thierry plc2 [3017, 4017, 5017]
+1020 1 twobi Thierry plc2 [3018, 4018, 5018]
+1021 1 twobj Thierry plc2 [3019, 4019, 5019]
+1022 1 twoca Thierry plc2 [3020, 4020, 5020]
+1023 1 twocb Thierry plc2 [3021, 4021, 5021]
+1024 1 twocc Thierry plc2 [3022, 4022, 5022]
+1025 1 twocd Thierry plc2 [3023, 4023, 5023]
+1026 1 twoce Thierry plc2 [3024, 4024, 5024]
+1027 1 twocf Thierry plc2 [3025, 4025, 5025]
+1028 1 twocg Thierry plc2 [3026, 4026, 5026]
+1029 1 twoch Thierry plc2 [3027, 4027, 5027]
+1030 1 twoci Thierry plc2 [3028, 4028, 5028]
+1031 1 twocj Thierry plc2 [3029, 4029, 5029]
+1032 1 twoda Thierry plc2 [3030, 4030, 5030]
+1033 1 twodb Thierry plc2 [3031, 4031, 5031]
+1034 1 twodc Thierry plc2 [3032, 4032, 5032]
+1035 1 twodd Thierry plc2 [3033, 4033, 5033]
+1036 1 twode Thierry plc2 [3034, 4034, 5034]
+1037 1 twodf Thierry plc2 [3035, 4035, 5035]
+1038 1 twodg Thierry plc2 [3036, 4036, 5036]
+1039 1 twodh Thierry plc2 [3037, 4037, 5037]
+1040 1 twodi Thierry plc2 [3038, 4038, 5038]
+1041 1 twodj Thierry plc2 [3039, 4039, 5039]
+1042 1 twoea Thierry plc2 [3040, 4040, 5040]
+1043 1 twoeb Thierry plc2 [3041, 4041, 5041]
+1044 1 twoec Thierry plc2 [3042, 4042, 5042]
+1045 1 twoed Thierry plc2 [3043, 4043, 5043]
+1046 1 twoee Thierry plc2 [3044, 4044, 5044]
+1047 1 twoef Thierry plc2 [3045, 4045, 5045]
+1048 1 twoeg Thierry plc2 [3046, 4046, 5046]
+1049 1 twoeh Thierry plc2 [3047, 4047, 5047]
+1050 1 twoei Thierry plc2 [3048, 4048, 5048]
+1051 1 twoej Thierry plc2 [3049, 4049, 5049]
+1052 1 twofa Thierry plc2 [3050, 4050, 5050]
+1053 1 twofb Thierry plc2 [3051, 4051, 5051]
+1054 1 twofc Thierry plc2 [3052, 4052, 5052]
+1055 1 twofd Thierry plc2 [3053, 4053, 5053]
+1056 1 twofe Thierry plc2 [3054, 4054, 5054]
+1057 1 twoff Thierry plc2 [3055, 4055, 5055]
+1058 1 twofg Thierry plc2 [3056, 4056, 5056]
+1059 1 twofh Thierry plc2 [3057, 4057, 5057]
+1060 1 twofi Thierry plc2 [3058, 4058, 5058]
+1061 1 twofj Thierry plc2 [3059, 4059, 5059]
+1062 1 twoga Thierry plc2 [3060, 4060, 5060]
+1063 1 twogb Thierry plc2 [3061, 4061, 5061]
+1064 1 twogc Thierry plc2 [3062, 4062, 5062]
+1065 1 twogd Thierry plc2 [3063, 4063, 5063]
+1066 1 twoge Thierry plc2 [3064, 4064, 5064]
+1067 1 twogf Thierry plc2 [3065, 4065, 5065]
+1068 1 twogg Thierry plc2 [3066, 4066, 5066]
+1069 1 twogh Thierry plc2 [3067, 4067, 5067]
+1070 1 twogi Thierry plc2 [3068, 4068, 5068]
+1071 1 twogj Thierry plc2 [3069, 4069, 5069]
+1072 1 twoha Thierry plc2 [3070, 4070, 5070]
+1073 1 twohb Thierry plc2 [3071, 4071, 5071]
+1074 1 twohc Thierry plc2 [3072, 4072, 5072]
+1075 1 twohd Thierry plc2 [3073, 4073, 5073]
+1076 1 twohe Thierry plc2 [3074, 4074, 5074]
+1077 1 twohf Thierry plc2 [3075, 4075, 5075]
+1078 1 twohg Thierry plc2 [3076, 4076, 5076]
+1079 1 twohh Thierry plc2 [3077, 4077, 5077]
+1080 1 twohi Thierry plc2 [3078, 4078, 5078]
+1081 1 twohj Thierry plc2 [3079, 4079, 5079]
+1082 1 twoia Thierry plc2 [3080, 4080, 5080]
+1083 1 twoib Thierry plc2 [3081, 4081, 5081]
+1084 1 twoic Thierry plc2 [3082, 4082, 5082]
+1085 1 twoid Thierry plc2 [3083, 4083, 5083]
+1086 1 twoie Thierry plc2 [3084, 4084, 5084]
+1087 1 twoif Thierry plc2 [3085, 4085, 5085]
+1088 1 twoig Thierry plc2 [3086, 4086, 5086]
+1089 1 twoih Thierry plc2 [3087, 4087, 5087]
+1090 1 twoii Thierry plc2 [3088, 4088, 5088]
+1091 1 twoij Thierry plc2 [3089, 4089, 5089]
+1092 1 twoja Thierry plc2 [3090, 4090, 5090]
+1093 1 twojb Thierry plc2 [3091, 4091, 5091]
+1094 1 twojc Thierry plc2 [3092, 4092, 5092]
+1095 1 twojd Thierry plc2 [3093, 4093, 5093]
+1096 1 twoje Thierry plc2 [3094, 4094, 5094]
+1097 1 twojf Thierry plc2 [3095, 4095, 5095]
+1098 1 twojg Thierry plc2 [3096, 4096, 5096]
+1099 1 twojh Thierry plc2 [3097, 4097, 5097]
+1100 1 twoji Thierry plc2 [3098, 4098, 5098]
+1101 1 twojj Thierry plc2 [3099, 4099, 5099]
+1102 1 twobaa Thierry plc2 [3100, 4100, 5100]
+1103 1 twobab Thierry plc2 [3101, 4101, 5101]
+1104 1 twobac Thierry plc2 [3102, 4102, 5102]
+1105 1 twobad Thierry plc2 [3103, 4103, 5103]
+1106 1 twobae Thierry plc2 [3104, 4104, 5104]
+1107 1 twobaf Thierry plc2 [3105, 4105, 5105]
+1108 1 twobag Thierry plc2 [3106, 4106, 5106]
+1109 1 twobah Thierry plc2 [3107, 4107, 5107]
+1110 1 twobai Thierry plc2 [3108, 4108, 5108]
+1111 1 twobaj Thierry plc2 [3109, 4109, 5109]
+1112 1 twobba Thierry plc2 [3110, 4110, 5110]
+1113 1 twobbb Thierry plc2 [3111, 4111, 5111]
+1114 1 twobbc Thierry plc2 [3112, 4112, 5112]
+1115 1 twobbd Thierry plc2 [3113, 4113, 5113]
+1116 1 twobbe Thierry plc2 [3114, 4114, 5114]
+1117 1 twobbf Thierry plc2 [3115, 4115, 5115]
+1118 1 twobbg Thierry plc2 [3116, 4116, 5116]
+1119 1 twobbh Thierry plc2 [3117, 4117, 5117]
+1120 1 twobbi Thierry plc2 [3118, 4118, 5118]
+1121 1 twobbj Thierry plc2 [3119, 4119, 5119]
+1122 1 twobca Thierry plc2 [3120, 4120, 5120]
+1123 1 twobcb Thierry plc2 [3121, 4121, 5121]
+1124 1 twobcc Thierry plc2 [3122, 4122, 5122]
+1125 1 twobcd Thierry plc2 [3123, 4123, 5123]
+1126 1 twobce Thierry plc2 [3124, 4124, 5124]
+1127 1 twobcf Thierry plc2 [3125, 4125, 5125]
+1128 1 twobcg Thierry plc2 [3126, 4126, 5126]
+1129 1 twobch Thierry plc2 [3127, 4127, 5127]
+1130 1 twobci Thierry plc2 [3128, 4128, 5128]
+1131 1 twobcj Thierry plc2 [3129, 4129, 5129]
+1132 1 twobda Thierry plc2 [3130, 4130, 5130]
+1133 1 twobdb Thierry plc2 [3131, 4131, 5131]
+1134 1 twobdc Thierry plc2 [3132, 4132, 5132]
+1135 1 twobdd Thierry plc2 [3133, 4133, 5133]
+1136 1 twobde Thierry plc2 [3134, 4134, 5134]
+1137 1 twobdf Thierry plc2 [3135, 4135, 5135]
+1138 1 twobdg Thierry plc2 [3136, 4136, 5136]
+1139 1 twobdh Thierry plc2 [3137, 4137, 5137]
+1140 1 twobdi Thierry plc2 [3138, 4138, 5138]
+1141 1 twobdj Thierry plc2 [3139, 4139, 5139]
+1142 1 twobea Thierry plc2 [3140, 4140, 5140]
+1143 1 twobeb Thierry plc2 [3141, 4141, 5141]
+1144 1 twobec Thierry plc2 [3142, 4142, 5142]
+1145 1 twobed Thierry plc2 [3143, 4143, 5143]
+1146 1 twobee Thierry plc2 [3144, 4144, 5144]
+1147 1 twobef Thierry plc2 [3145, 4145, 5145]
+1148 1 twobeg Thierry plc2 [3146, 4146, 5146]
+1149 1 twobeh Thierry plc2 [3147, 4147, 5147]
+1150 1 twobei Thierry plc2 [3148, 4148, 5148]
+1151 1 twobej Thierry plc2 [3149, 4149, 5149]
+1152 1 twobfa Thierry plc2 [3150, 4150, 5150]
+1153 1 twobfb Thierry plc2 [3151, 4151, 5151]
+1154 1 twobfc Thierry plc2 [3152, 4152, 5152]
+1155 1 twobfd Thierry plc2 [3153, 4153, 5153]
+1156 1 twobfe Thierry plc2 [3154, 4154, 5154]
+1157 1 twobff Thierry plc2 [3155, 4155, 5155]
+1158 1 twobfg Thierry plc2 [3156, 4156, 5156]
+1159 1 twobfh Thierry plc2 [3157, 4157, 5157]
+1160 1 twobfi Thierry plc2 [3158, 4158, 5158]
+1161 1 twobfj Thierry plc2 [3159, 4159, 5159]
+1162 1 twobga Thierry plc2 [3160, 4160, 5160]
+1163 1 twobgb Thierry plc2 [3161, 4161, 5161]
+1164 1 twobgc Thierry plc2 [3162, 4162, 5162]
+1165 1 twobgd Thierry plc2 [3163, 4163, 5163]
+1166 1 twobge Thierry plc2 [3164, 4164, 5164]
+1167 1 twobgf Thierry plc2 [3165, 4165, 5165]
+1168 1 twobgg Thierry plc2 [3166, 4166, 5166]
+1169 1 twobgh Thierry plc2 [3167, 4167, 5167]
+1170 1 twobgi Thierry plc2 [3168, 4168, 5168]
+1171 1 twobgj Thierry plc2 [3169, 4169, 5169]
+1172 1 twobha Thierry plc2 [3170, 4170, 5170]
+1173 1 twobhb Thierry plc2 [3171, 4171, 5171]
+1174 1 twobhc Thierry plc2 [3172, 4172, 5172]
+1175 1 twobhd Thierry plc2 [3173, 4173, 5173]
+1176 1 twobhe Thierry plc2 [3174, 4174, 5174]
+1177 1 twobhf Thierry plc2 [3175, 4175, 5175]
+1178 1 twobhg Thierry plc2 [3176, 4176, 5176]
+1179 1 twobhh Thierry plc2 [3177, 4177, 5177]
+1180 1 twobhi Thierry plc2 [3178, 4178, 5178]
+1181 1 twobhj Thierry plc2 [3179, 4179, 5179]
+1182 1 twobia Thierry plc2 [3180, 4180, 5180]
+1183 1 twobib Thierry plc2 [3181, 4181, 5181]
+1184 1 twobic Thierry plc2 [3182, 4182, 5182]
+1185 1 twobid Thierry plc2 [3183, 4183, 5183]
+1186 1 twobie Thierry plc2 [3184, 4184, 5184]
+1187 1 twobif Thierry plc2 [3185, 4185, 5185]
+1188 1 twobig Thierry plc2 [3186, 4186, 5186]
+1189 1 twobih Thierry plc2 [3187, 4187, 5187]
+1190 1 twobii Thierry plc2 [3188, 4188, 5188]
+1191 1 twobij Thierry plc2 [3189, 4189, 5189]
+1192 1 twobja Thierry plc2 [3190, 4190, 5190]
+1193 1 twobjb Thierry plc2 [3191, 4191, 5191]
+1194 1 twobjc Thierry plc2 [3192, 4192, 5192]
+1195 1 twobjd Thierry plc2 [3193, 4193, 5193]
+1196 1 twobje Thierry plc2 [3194, 4194, 5194]
+1197 1 twobjf Thierry plc2 [3195, 4195, 5195]
+1198 1 twobjg Thierry plc2 [3196, 4196, 5196]
+1199 1 twobjh Thierry plc2 [3197, 4197, 5197]
+1200 1 twobji Thierry plc2 [3198, 4198, 5198]
+1201 1 twobjj Thierry plc2 [3199, 4199, 5199]
+1202 1 twocaa Thierry plc2 [3200, 4200, 5200]
+1203 1 twocab Thierry plc2 [3201, 4201, 5201]
+1204 1 twocac Thierry plc2 [3202, 4202, 5202]
+1205 1 twocad Thierry plc2 [3203, 4203, 5203]
+1206 1 twocae Thierry plc2 [3204, 4204, 5204]
+1207 1 twocaf Thierry plc2 [3205, 4205, 5205]
+1208 1 twocag Thierry plc2 [3206, 4206, 5206]
+1209 1 twocah Thierry plc2 [3207, 4207, 5207]
+1210 1 twocai Thierry plc2 [3208, 4208, 5208]
+1211 1 twocaj Thierry plc2 [3209, 4209, 5209]
+1212 1 twocba Thierry plc2 [3210, 4210, 5210]
+1213 1 twocbb Thierry plc2 [3211, 4211, 5211]
+1214 1 twocbc Thierry plc2 [3212, 4212, 5212]
+1215 1 twocbd Thierry plc2 [3213, 4213, 5213]
+1216 1 twocbe Thierry plc2 [3214, 4214, 5214]
+1217 1 twocbf Thierry plc2 [3215, 4215, 5215]
+1218 1 twocbg Thierry plc2 [3216, 4216, 5216]
+1219 1 twocbh Thierry plc2 [3217, 4217, 5217]
+1220 1 twocbi Thierry plc2 [3218, 4218, 5218]
+1221 1 twocbj Thierry plc2 [3219, 4219, 5219]
+1222 1 twocca Thierry plc2 [3220, 4220, 5220]
+1223 1 twoccb Thierry plc2 [3221, 4221, 5221]
+1224 1 twoccc Thierry plc2 [3222, 4222, 5222]
+1225 1 twoccd Thierry plc2 [3223, 4223, 5223]
+1226 1 twocce Thierry plc2 [3224, 4224, 5224]
+1227 1 twoccf Thierry plc2 [3225, 4225, 5225]
+1228 1 twoccg Thierry plc2 [3226, 4226, 5226]
+1229 1 twocch Thierry plc2 [3227, 4227, 5227]
+1230 1 twocci Thierry plc2 [3228, 4228, 5228]
+1231 1 twoccj Thierry plc2 [3229, 4229, 5229]
+1232 1 twocda Thierry plc2 [3230, 4230, 5230]
+1233 1 twocdb Thierry plc2 [3231, 4231, 5231]
+1234 1 twocdc Thierry plc2 [3232, 4232, 5232]
+1235 1 twocdd Thierry plc2 [3233, 4233, 5233]
+1236 1 twocde Thierry plc2 [3234, 4234, 5234]
+1237 1 twocdf Thierry plc2 [3235, 4235, 5235]
+1238 1 twocdg Thierry plc2 [3236, 4236, 5236]
+1239 1 twocdh Thierry plc2 [3237, 4237, 5237]
+1240 1 twocdi Thierry plc2 [3238, 4238, 5238]
+1241 1 twocdj Thierry plc2 [3239, 4239, 5239]
+1242 1 twocea Thierry plc2 [3240, 4240, 5240]
+1243 1 twoceb Thierry plc2 [3241, 4241, 5241]
+1244 1 twocec Thierry plc2 [3242, 4242, 5242]
+1245 1 twoced Thierry plc2 [3243, 4243, 5243]
+1246 1 twocee Thierry plc2 [3244, 4244, 5244]
+1247 1 twocef Thierry plc2 [3245, 4245, 5245]
+1248 1 twoceg Thierry plc2 [3246, 4246, 5246]
+1249 1 twoceh Thierry plc2 [3247, 4247, 5247]
+1250 1 twocei Thierry plc2 [3248, 4248, 5248]
+1251 1 twocej Thierry plc2 [3249, 4249, 5249]
+1252 1 twocfa Thierry plc2 [3250, 4250, 5250]
+1253 1 twocfb Thierry plc2 [3251, 4251, 5251]
+1254 1 twocfc Thierry plc2 [3252, 4252, 5252]
+1255 1 twocfd Thierry plc2 [3253, 4253, 5253]
+1256 1 twocfe Thierry plc2 [3254, 4254, 5254]
+1257 1 twocff Thierry plc2 [3255, 4255, 5255]
+1258 1 twocfg Thierry plc2 [3256, 4256, 5256]
+1259 1 twocfh Thierry plc2 [3257, 4257, 5257]
+1260 1 twocfi Thierry plc2 [3258, 4258, 5258]
+1261 1 twocfj Thierry plc2 [3259, 4259, 5259]
+1262 1 twocga Thierry plc2 [3260, 4260, 5260]
+1263 1 twocgb Thierry plc2 [3261, 4261, 5261]
+1264 1 twocgc Thierry plc2 [3262, 4262, 5262]
+1265 1 twocgd Thierry plc2 [3263, 4263, 5263]
+1266 1 twocge Thierry plc2 [3264, 4264, 5264]
+1267 1 twocgf Thierry plc2 [3265, 4265, 5265]
+1268 1 twocgg Thierry plc2 [3266, 4266, 5266]
+1269 1 twocgh Thierry plc2 [3267, 4267, 5267]
+1270 1 twocgi Thierry plc2 [3268, 4268, 5268]
+1271 1 twocgj Thierry plc2 [3269, 4269, 5269]
+1272 1 twocha Thierry plc2 [3270, 4270, 5270]
+1273 1 twochb Thierry plc2 [3271, 4271, 5271]
+1274 1 twochc Thierry plc2 [3272, 4272, 5272]
+1275 1 twochd Thierry plc2 [3273, 4273, 5273]
+1276 1 twoche Thierry plc2 [3274, 4274, 5274]
+1277 1 twochf Thierry plc2 [3275, 4275, 5275]
+1278 1 twochg Thierry plc2 [3276, 4276, 5276]
+1279 1 twochh Thierry plc2 [3277, 4277, 5277]
+1280 1 twochi Thierry plc2 [3278, 4278, 5278]
+1281 1 twochj Thierry plc2 [3279, 4279, 5279]
+1282 1 twocia Thierry plc2 [3280, 4280, 5280]
+1283 1 twocib Thierry plc2 [3281, 4281, 5281]
+1284 1 twocic Thierry plc2 [3282, 4282, 5282]
+1285 1 twocid Thierry plc2 [3283, 4283, 5283]
+1286 1 twocie Thierry plc2 [3284, 4284, 5284]
+1287 1 twocif Thierry plc2 [3285, 4285, 5285]
+1288 1 twocig Thierry plc2 [3286, 4286, 5286]
+1289 1 twocih Thierry plc2 [3287, 4287, 5287]
+1290 1 twocii Thierry plc2 [3288, 4288, 5288]
+1291 1 twocij Thierry plc2 [3289, 4289, 5289]
+1292 1 twocja Thierry plc2 [3290, 4290, 5290]
+1293 1 twocjb Thierry plc2 [3291, 4291, 5291]
+1294 1 twocjc Thierry plc2 [3292, 4292, 5292]
+1295 1 twocjd Thierry plc2 [3293, 4293, 5293]
+1296 1 twocje Thierry plc2 [3294, 4294, 5294]
+1297 1 twocjf Thierry plc2 [3295, 4295, 5295]
+1298 1 twocjg Thierry plc2 [3296, 4296, 5296]
+1299 1 twocjh Thierry plc2 [3297, 4297, 5297]
+1300 1 twocji Thierry plc2 [3298, 4298, 5298]
+1301 1 twocjj Thierry plc2 [3299, 4299, 5299]
+1302 1 twodaa Thierry plc2 [3300, 4300, 5300]
+1303 1 twodab Thierry plc2 [3301, 4301, 5301]
+1304 1 twodac Thierry plc2 [3302, 4302, 5302]
+1305 1 twodad Thierry plc2 [3303, 4303, 5303]
+1306 1 twodae Thierry plc2 [3304, 4304, 5304]
+1307 1 twodaf Thierry plc2 [3305, 4305, 5305]
+1308 1 twodag Thierry plc2 [3306, 4306, 5306]
+1309 1 twodah Thierry plc2 [3307, 4307, 5307]
+1310 1 twodai Thierry plc2 [3308, 4308, 5308]
+1311 1 twodaj Thierry plc2 [3309, 4309, 5309]
+1312 1 twodba Thierry plc2 [3310, 4310, 5310]
+1313 1 twodbb Thierry plc2 [3311, 4311, 5311]
+1314 1 twodbc Thierry plc2 [3312, 4312, 5312]
+1315 1 twodbd Thierry plc2 [3313, 4313, 5313]
+1316 1 twodbe Thierry plc2 [3314, 4314, 5314]
+1317 1 twodbf Thierry plc2 [3315, 4315, 5315]
+1318 1 twodbg Thierry plc2 [3316, 4316, 5316]
+1319 1 twodbh Thierry plc2 [3317, 4317, 5317]
+1320 1 twodbi Thierry plc2 [3318, 4318, 5318]
+1321 1 twodbj Thierry plc2 [3319, 4319, 5319]
+1322 1 twodca Thierry plc2 [3320, 4320, 5320]
+1323 1 twodcb Thierry plc2 [3321, 4321, 5321]
+1324 1 twodcc Thierry plc2 [3322, 4322, 5322]
+1325 1 twodcd Thierry plc2 [3323, 4323, 5323]
+1326 1 twodce Thierry plc2 [3324, 4324, 5324]
+1327 1 twodcf Thierry plc2 [3325, 4325, 5325]
+1328 1 twodcg Thierry plc2 [3326, 4326, 5326]
+1329 1 twodch Thierry plc2 [3327, 4327, 5327]
+1330 1 twodci Thierry plc2 [3328, 4328, 5328]
+1331 1 twodcj Thierry plc2 [3329, 4329, 5329]
+1332 1 twodda Thierry plc2 [3330, 4330, 5330]
+1333 1 twoddb Thierry plc2 [3331, 4331, 5331]
+1334 1 twoddc Thierry plc2 [3332, 4332, 5332]
+1335 1 twoddd Thierry plc2 [3333, 4333, 5333]
+1336 1 twodde Thierry plc2 [3334, 4334, 5334]
+1337 1 twoddf Thierry plc2 [3335, 4335, 5335]
+1338 1 twoddg Thierry plc2 [3336, 4336, 5336]
+1339 1 twoddh Thierry plc2 [3337, 4337, 5337]
+1340 1 twoddi Thierry plc2 [3338, 4338, 5338]
+1341 1 twoddj Thierry plc2 [3339, 4339, 5339]
+1342 1 twodea Thierry plc2 [3340, 4340, 5340]
+1343 1 twodeb Thierry plc2 [3341, 4341, 5341]
+1344 1 twodec Thierry plc2 [3342, 4342, 5342]
+1345 1 twoded Thierry plc2 [3343, 4343, 5343]
+1346 1 twodee Thierry plc2 [3344, 4344, 5344]
+1347 1 twodef Thierry plc2 [3345, 4345, 5345]
+1348 1 twodeg Thierry plc2 [3346, 4346, 5346]
+1349 1 twodeh Thierry plc2 [3347, 4347, 5347]
+1350 1 twodei Thierry plc2 [3348, 4348, 5348]
+1351 1 twodej Thierry plc2 [3349, 4349, 5349]
+1352 1 twodfa Thierry plc2 [3350, 4350, 5350]
+1353 1 twodfb Thierry plc2 [3351, 4351, 5351]
+1354 1 twodfc Thierry plc2 [3352, 4352, 5352]
+1355 1 twodfd Thierry plc2 [3353, 4353, 5353]
+1356 1 twodfe Thierry plc2 [3354, 4354, 5354]
+1357 1 twodff Thierry plc2 [3355, 4355, 5355]
+1358 1 twodfg Thierry plc2 [3356, 4356, 5356]
+1359 1 twodfh Thierry plc2 [3357, 4357, 5357]
+1360 1 twodfi Thierry plc2 [3358, 4358, 5358]
+1361 1 twodfj Thierry plc2 [3359, 4359, 5359]
+1362 1 twodga Thierry plc2 [3360, 4360, 5360]
+1363 1 twodgb Thierry plc2 [3361, 4361, 5361]
+1364 1 twodgc Thierry plc2 [3362, 4362, 5362]
+1365 1 twodgd Thierry plc2 [3363, 4363, 5363]
+1366 1 twodge Thierry plc2 [3364, 4364, 5364]
+1367 1 twodgf Thierry plc2 [3365, 4365, 5365]
+1368 1 twodgg Thierry plc2 [3366, 4366, 5366]
+1369 1 twodgh Thierry plc2 [3367, 4367, 5367]
+1370 1 twodgi Thierry plc2 [3368, 4368, 5368]
+1371 1 twodgj Thierry plc2 [3369, 4369, 5369]
+1372 1 twodha Thierry plc2 [3370, 4370, 5370]
+1373 1 twodhb Thierry plc2 [3371, 4371, 5371]
+1374 1 twodhc Thierry plc2 [3372, 4372, 5372]
+1375 1 twodhd Thierry plc2 [3373, 4373, 5373]
+1376 1 twodhe Thierry plc2 [3374, 4374, 5374]
+1377 1 twodhf Thierry plc2 [3375, 4375, 5375]
+1378 1 twodhg Thierry plc2 [3376, 4376, 5376]
+1379 1 twodhh Thierry plc2 [3377, 4377, 5377]
+1380 1 twodhi Thierry plc2 [3378, 4378, 5378]
+1381 1 twodhj Thierry plc2 [3379, 4379, 5379]
+1382 1 twodia Thierry plc2 [3380, 4380, 5380]
+1383 1 twodib Thierry plc2 [3381, 4381, 5381]
+1384 1 twodic Thierry plc2 [3382, 4382, 5382]
+1385 1 twodid Thierry plc2 [3383, 4383, 5383]
+1386 1 twodie Thierry plc2 [3384, 4384, 5384]
+1387 1 twodif Thierry plc2 [3385, 4385, 5385]
+1388 1 twodig Thierry plc2 [3386, 4386, 5386]
+1389 1 twodih Thierry plc2 [3387, 4387, 5387]
+1390 1 twodii Thierry plc2 [3388, 4388, 5388]
+1391 1 twodij Thierry plc2 [3389, 4389, 5389]
+1392 1 twodja Thierry plc2 [3390, 4390, 5390]
+1393 1 twodjb Thierry plc2 [3391, 4391, 5391]
+1394 1 twodjc Thierry plc2 [3392, 4392, 5392]
+1395 1 twodjd Thierry plc2 [3393, 4393, 5393]
+1396 1 twodje Thierry plc2 [3394, 4394, 5394]
+1397 1 twodjf Thierry plc2 [3395, 4395, 5395]
+1398 1 twodjg Thierry plc2 [3396, 4396, 5396]
+1399 1 twodjh Thierry plc2 [3397, 4397, 5397]
+1400 1 twodji Thierry plc2 [3398, 4398, 5398]
+1401 1 twodjj Thierry plc2 [3399, 4399, 5399]
+1402 1 twoeaa Thierry plc2 [3400, 4400, 5400]
+1403 1 twoeab Thierry plc2 [3401, 4401, 5401]
+1404 1 twoeac Thierry plc2 [3402, 4402, 5402]
+1405 1 twoead Thierry plc2 [3403, 4403, 5403]
+1406 1 twoeae Thierry plc2 [3404, 4404, 5404]
+1407 1 twoeaf Thierry plc2 [3405, 4405, 5405]
+1408 1 twoeag Thierry plc2 [3406, 4406, 5406]
+1409 1 twoeah Thierry plc2 [3407, 4407, 5407]
+1410 1 twoeai Thierry plc2 [3408, 4408, 5408]
+1411 1 twoeaj Thierry plc2 [3409, 4409, 5409]
+1412 1 twoeba Thierry plc2 [3410, 4410, 5410]
+1413 1 twoebb Thierry plc2 [3411, 4411, 5411]
+1414 1 twoebc Thierry plc2 [3412, 4412, 5412]
+1415 1 twoebd Thierry plc2 [3413, 4413, 5413]
+1416 1 twoebe Thierry plc2 [3414, 4414, 5414]
+1417 1 twoebf Thierry plc2 [3415, 4415, 5415]
+1418 1 twoebg Thierry plc2 [3416, 4416, 5416]
+1419 1 twoebh Thierry plc2 [3417, 4417, 5417]
+1420 1 twoebi Thierry plc2 [3418, 4418, 5418]
+1421 1 twoebj Thierry plc2 [3419, 4419, 5419]
+1422 1 twoeca Thierry plc2 [3420, 4420, 5420]
+1423 1 twoecb Thierry plc2 [3421, 4421, 5421]
+1424 1 twoecc Thierry plc2 [3422, 4422, 5422]
+1425 1 twoecd Thierry plc2 [3423, 4423, 5423]
+1426 1 twoece Thierry plc2 [3424, 4424, 5424]
+1427 1 twoecf Thierry plc2 [3425, 4425, 5425]
+1428 1 twoecg Thierry plc2 [3426, 4426, 5426]
+1429 1 twoech Thierry plc2 [3427, 4427, 5427]
+1430 1 twoeci Thierry plc2 [3428, 4428, 5428]
+1431 1 twoecj Thierry plc2 [3429, 4429, 5429]
+1432 1 twoeda Thierry plc2 [3430, 4430, 5430]
+1433 1 twoedb Thierry plc2 [3431, 4431, 5431]
+1434 1 twoedc Thierry plc2 [3432, 4432, 5432]
+1435 1 twoedd Thierry plc2 [3433, 4433, 5433]
+1436 1 twoede Thierry plc2 [3434, 4434, 5434]
+1437 1 twoedf Thierry plc2 [3435, 4435, 5435]
+1438 1 twoedg Thierry plc2 [3436, 4436, 5436]
+1439 1 twoedh Thierry plc2 [3437, 4437, 5437]
+1440 1 twoedi Thierry plc2 [3438, 4438, 5438]
+1441 1 twoedj Thierry plc2 [3439, 4439, 5439]
+1442 1 twoeea Thierry plc2 [3440, 4440, 5440]
+1443 1 twoeeb Thierry plc2 [3441, 4441, 5441]
+1444 1 twoeec Thierry plc2 [3442, 4442, 5442]
+1445 1 twoeed Thierry plc2 [3443, 4443, 5443]
+1446 1 twoeee Thierry plc2 [3444, 4444, 5444]
+1447 1 twoeef Thierry plc2 [3445, 4445, 5445]
+1448 1 twoeeg Thierry plc2 [3446, 4446, 5446]
+1449 1 twoeeh Thierry plc2 [3447, 4447, 5447]
+1450 1 twoeei Thierry plc2 [3448, 4448, 5448]
+1451 1 twoeej Thierry plc2 [3449, 4449, 5449]
+1452 1 twoefa Thierry plc2 [3450, 4450, 5450]
+1453 1 twoefb Thierry plc2 [3451, 4451, 5451]
+1454 1 twoefc Thierry plc2 [3452, 4452, 5452]
+1455 1 twoefd Thierry plc2 [3453, 4453, 5453]
+1456 1 twoefe Thierry plc2 [3454, 4454, 5454]
+1457 1 twoeff Thierry plc2 [3455, 4455, 5455]
+1458 1 twoefg Thierry plc2 [3456, 4456, 5456]
+1459 1 twoefh Thierry plc2 [3457, 4457, 5457]
+1460 1 twoefi Thierry plc2 [3458, 4458, 5458]
+1461 1 twoefj Thierry plc2 [3459, 4459, 5459]
+1462 1 twoega Thierry plc2 [3460, 4460, 5460]
+1463 1 twoegb Thierry plc2 [3461, 4461, 5461]
+1464 1 twoegc Thierry plc2 [3462, 4462, 5462]
+1465 1 twoegd Thierry plc2 [3463, 4463, 5463]
+1466 1 twoege Thierry plc2 [3464, 4464, 5464]
+1467 1 twoegf Thierry plc2 [3465, 4465, 5465]
+1468 1 twoegg Thierry plc2 [3466, 4466, 5466]
+1469 1 twoegh Thierry plc2 [3467, 4467, 5467]
+1470 1 twoegi Thierry plc2 [3468, 4468, 5468]
+1471 1 twoegj Thierry plc2 [3469, 4469, 5469]
+1472 1 twoeha Thierry plc2 [3470, 4470, 5470]
+1473 1 twoehb Thierry plc2 [3471, 4471, 5471]
+1474 1 twoehc Thierry plc2 [3472, 4472, 5472]
+1475 1 twoehd Thierry plc2 [3473, 4473, 5473]
+1476 1 twoehe Thierry plc2 [3474, 4474, 5474]
+1477 1 twoehf Thierry plc2 [3475, 4475, 5475]
+1478 1 twoehg Thierry plc2 [3476, 4476, 5476]
+1479 1 twoehh Thierry plc2 [3477, 4477, 5477]
+1480 1 twoehi Thierry plc2 [3478, 4478, 5478]
+1481 1 twoehj Thierry plc2 [3479, 4479, 5479]
+1482 1 twoeia Thierry plc2 [3480, 4480, 5480]
+1483 1 twoeib Thierry plc2 [3481, 4481, 5481]
+1484 1 twoeic Thierry plc2 [3482, 4482, 5482]
+1485 1 twoeid Thierry plc2 [3483, 4483, 5483]
+1486 1 twoeie Thierry plc2 [3484, 4484, 5484]
+1487 1 twoeif Thierry plc2 [3485, 4485, 5485]
+1488 1 twoeig Thierry plc2 [3486, 4486, 5486]
+1489 1 twoeih Thierry plc2 [3487, 4487, 5487]
+1490 1 twoeii Thierry plc2 [3488, 4488, 5488]
+1491 1 twoeij Thierry plc2 [3489, 4489, 5489]
+1492 1 twoeja Thierry plc2 [3490, 4490, 5490]
+1493 1 twoejb Thierry plc2 [3491, 4491, 5491]
+1494 1 twoejc Thierry plc2 [3492, 4492, 5492]
+1495 1 twoejd Thierry plc2 [3493, 4493, 5493]
+1496 1 twoeje Thierry plc2 [3494, 4494, 5494]
+1497 1 twoejf Thierry plc2 [3495, 4495, 5495]
+1498 1 twoejg Thierry plc2 [3496, 4496, 5496]
+1499 1 twoejh Thierry plc2 [3497, 4497, 5497]
+1500 1 twoeji Thierry plc2 [3498, 4498, 5498]
+1501 1 twoejj Thierry plc2 [3499, 4499, 5499]
+1502 1 twofaa Thierry plc2 [3500, 4500, 5500]
+1503 1 twofab Thierry plc2 [3501, 4501, 5501]
+1504 1 twofac Thierry plc2 [3502, 4502, 5502]
+1505 1 twofad Thierry plc2 [3503, 4503, 5503]
+1506 1 twofae Thierry plc2 [3504, 4504, 5504]
+1507 1 twofaf Thierry plc2 [3505, 4505, 5505]
+1508 1 twofag Thierry plc2 [3506, 4506, 5506]
+1509 1 twofah Thierry plc2 [3507, 4507, 5507]
+1510 1 twofai Thierry plc2 [3508, 4508, 5508]
+1511 1 twofaj Thierry plc2 [3509, 4509, 5509]
+1512 1 twofba Thierry plc2 [3510, 4510, 5510]
+1513 1 twofbb Thierry plc2 [3511, 4511, 5511]
+1514 1 twofbc Thierry plc2 [3512, 4512, 5512]
+1515 1 twofbd Thierry plc2 [3513, 4513, 5513]
+1516 1 twofbe Thierry plc2 [3514, 4514, 5514]
+1517 1 twofbf Thierry plc2 [3515, 4515, 5515]
+1518 1 twofbg Thierry plc2 [3516, 4516, 5516]
+1519 1 twofbh Thierry plc2 [3517, 4517, 5517]
+1520 1 twofbi Thierry plc2 [3518, 4518, 5518]
+1521 1 twofbj Thierry plc2 [3519, 4519, 5519]
+1522 1 twofca Thierry plc2 [3520, 4520, 5520]
+1523 1 twofcb Thierry plc2 [3521, 4521, 5521]
+1524 1 twofcc Thierry plc2 [3522, 4522, 5522]
+1525 1 twofcd Thierry plc2 [3523, 4523, 5523]
+1526 1 twofce Thierry plc2 [3524, 4524, 5524]
+1527 1 twofcf Thierry plc2 [3525, 4525, 5525]
+1528 1 twofcg Thierry plc2 [3526, 4526, 5526]
+1529 1 twofch Thierry plc2 [3527, 4527, 5527]
+1530 1 twofci Thierry plc2 [3528, 4528, 5528]
+1531 1 twofcj Thierry plc2 [3529, 4529, 5529]
+1532 1 twofda Thierry plc2 [3530, 4530, 5530]
+1533 1 twofdb Thierry plc2 [3531, 4531, 5531]
+1534 1 twofdc Thierry plc2 [3532, 4532, 5532]
+1535 1 twofdd Thierry plc2 [3533, 4533, 5533]
+1536 1 twofde Thierry plc2 [3534, 4534, 5534]
+1537 1 twofdf Thierry plc2 [3535, 4535, 5535]
+1538 1 twofdg Thierry plc2 [3536, 4536, 5536]
+1539 1 twofdh Thierry plc2 [3537, 4537, 5537]
+1540 1 twofdi Thierry plc2 [3538, 4538, 5538]
+1541 1 twofdj Thierry plc2 [3539, 4539, 5539]
+1542 1 twofea Thierry plc2 [3540, 4540, 5540]
+1543 1 twofeb Thierry plc2 [3541, 4541, 5541]
+1544 1 twofec Thierry plc2 [3542, 4542, 5542]
+1545 1 twofed Thierry plc2 [3543, 4543, 5543]
+1546 1 twofee Thierry plc2 [3544, 4544, 5544]
+1547 1 twofef Thierry plc2 [3545, 4545, 5545]
+1548 1 twofeg Thierry plc2 [3546, 4546, 5546]
+1549 1 twofeh Thierry plc2 [3547, 4547, 5547]
+1550 1 twofei Thierry plc2 [3548, 4548, 5548]
+1551 1 twofej Thierry plc2 [3549, 4549, 5549]
+1552 1 twoffa Thierry plc2 [3550, 4550, 5550]
+1553 1 twoffb Thierry plc2 [3551, 4551, 5551]
+1554 1 twoffc Thierry plc2 [3552, 4552, 5552]
+1555 1 twoffd Thierry plc2 [3553, 4553, 5553]
+1556 1 twoffe Thierry plc2 [3554, 4554, 5554]
+1557 1 twofff Thierry plc2 [3555, 4555, 5555]
+1558 1 twoffg Thierry plc2 [3556, 4556, 5556]
+1559 1 twoffh Thierry plc2 [3557, 4557, 5557]
+1560 1 twoffi Thierry plc2 [3558, 4558, 5558]
+1561 1 twoffj Thierry plc2 [3559, 4559, 5559]
+1562 1 twofga Thierry plc2 [3560, 4560, 5560]
+1563 1 twofgb Thierry plc2 [3561, 4561, 5561]
+1564 1 twofgc Thierry plc2 [3562, 4562, 5562]
+1565 1 twofgd Thierry plc2 [3563, 4563, 5563]
+1566 1 twofge Thierry plc2 [3564, 4564, 5564]
+1567 1 twofgf Thierry plc2 [3565, 4565, 5565]
+1568 1 twofgg Thierry plc2 [3566, 4566, 5566]
+1569 1 twofgh Thierry plc2 [3567, 4567, 5567]
+1570 1 twofgi Thierry plc2 [3568, 4568, 5568]
+1571 1 twofgj Thierry plc2 [3569, 4569, 5569]
+1572 1 twofha Thierry plc2 [3570, 4570, 5570]
+1573 1 twofhb Thierry plc2 [3571, 4571, 5571]
+1574 1 twofhc Thierry plc2 [3572, 4572, 5572]
+1575 1 twofhd Thierry plc2 [3573, 4573, 5573]
+1576 1 twofhe Thierry plc2 [3574, 4574, 5574]
+1577 1 twofhf Thierry plc2 [3575, 4575, 5575]
+1578 1 twofhg Thierry plc2 [3576, 4576, 5576]
+1579 1 twofhh Thierry plc2 [3577, 4577, 5577]
+1580 1 twofhi Thierry plc2 [3578, 4578, 5578]
+1581 1 twofhj Thierry plc2 [3579, 4579, 5579]
+1582 1 twofia Thierry plc2 [3580, 4580, 5580]
+1583 1 twofib Thierry plc2 [3581, 4581, 5581]
+1584 1 twofic Thierry plc2 [3582, 4582, 5582]
+1585 1 twofid Thierry plc2 [3583, 4583, 5583]
+1586 1 twofie Thierry plc2 [3584, 4584, 5584]
+1587 1 twofif Thierry plc2 [3585, 4585, 5585]
+1588 1 twofig Thierry plc2 [3586, 4586, 5586]
+1589 1 twofih Thierry plc2 [3587, 4587, 5587]
+1590 1 twofii Thierry plc2 [3588, 4588, 5588]
+1591 1 twofij Thierry plc2 [3589, 4589, 5589]
+1592 1 twofja Thierry plc2 [3590, 4590, 5590]
+1593 1 twofjb Thierry plc2 [3591, 4591, 5591]
+1594 1 twofjc Thierry plc2 [3592, 4592, 5592]
+1595 1 twofjd Thierry plc2 [3593, 4593, 5593]
+1596 1 twofje Thierry plc2 [3594, 4594, 5594]
+1597 1 twofjf Thierry plc2 [3595, 4595, 5595]
+1598 1 twofjg Thierry plc2 [3596, 4596, 5596]
+1599 1 twofjh Thierry plc2 [3597, 4597, 5597]
+1600 1 twofji Thierry plc2 [3598, 4598, 5598]
+1601 1 twofjj Thierry plc2 [3599, 4599, 5599]
+1602 1 twogaa Thierry plc2 [3600, 4600, 5600]
+1603 1 twogab Thierry plc2 [3601, 4601, 5601]
+1604 1 twogac Thierry plc2 [3602, 4602, 5602]
+1605 1 twogad Thierry plc2 [3603, 4603, 5603]
+1606 1 twogae Thierry plc2 [3604, 4604, 5604]
+1607 1 twogaf Thierry plc2 [3605, 4605, 5605]
+1608 1 twogag Thierry plc2 [3606, 4606, 5606]
+1609 1 twogah Thierry plc2 [3607, 4607, 5607]
+1610 1 twogai Thierry plc2 [3608, 4608, 5608]
+1611 1 twogaj Thierry plc2 [3609, 4609, 5609]
+1612 1 twogba Thierry plc2 [3610, 4610, 5610]
+1613 1 twogbb Thierry plc2 [3611, 4611, 5611]
+1614 1 twogbc Thierry plc2 [3612, 4612, 5612]
+1615 1 twogbd Thierry plc2 [3613, 4613, 5613]
+1616 1 twogbe Thierry plc2 [3614, 4614, 5614]
+1617 1 twogbf Thierry plc2 [3615, 4615, 5615]
+1618 1 twogbg Thierry plc2 [3616, 4616, 5616]
+1619 1 twogbh Thierry plc2 [3617, 4617, 5617]
+1620 1 twogbi Thierry plc2 [3618, 4618, 5618]
+1621 1 twogbj Thierry plc2 [3619, 4619, 5619]
+1622 1 twogca Thierry plc2 [3620, 4620, 5620]
+1623 1 twogcb Thierry plc2 [3621, 4621, 5621]
+1624 1 twogcc Thierry plc2 [3622, 4622, 5622]
+1625 1 twogcd Thierry plc2 [3623, 4623, 5623]
+1626 1 twogce Thierry plc2 [3624, 4624, 5624]
+1627 1 twogcf Thierry plc2 [3625, 4625, 5625]
+1628 1 twogcg Thierry plc2 [3626, 4626, 5626]
+1629 1 twogch Thierry plc2 [3627, 4627, 5627]
+1630 1 twogci Thierry plc2 [3628, 4628, 5628]
+1631 1 twogcj Thierry plc2 [3629, 4629, 5629]
+1632 1 twogda Thierry plc2 [3630, 4630, 5630]
+1633 1 twogdb Thierry plc2 [3631, 4631, 5631]
+1634 1 twogdc Thierry plc2 [3632, 4632, 5632]
+1635 1 twogdd Thierry plc2 [3633, 4633, 5633]
+1636 1 twogde Thierry plc2 [3634, 4634, 5634]
+1637 1 twogdf Thierry plc2 [3635, 4635, 5635]
+1638 1 twogdg Thierry plc2 [3636, 4636, 5636]
+1639 1 twogdh Thierry plc2 [3637, 4637, 5637]
+1640 1 twogdi Thierry plc2 [3638, 4638, 5638]
+1641 1 twogdj Thierry plc2 [3639, 4639, 5639]
+1642 1 twogea Thierry plc2 [3640, 4640, 5640]
+1643 1 twogeb Thierry plc2 [3641, 4641, 5641]
+1644 1 twogec Thierry plc2 [3642, 4642, 5642]
+1645 1 twoged Thierry plc2 [3643, 4643, 5643]
+1646 1 twogee Thierry plc2 [3644, 4644, 5644]
+1647 1 twogef Thierry plc2 [3645, 4645, 5645]
+1648 1 twogeg Thierry plc2 [3646, 4646, 5646]
+1649 1 twogeh Thierry plc2 [3647, 4647, 5647]
+1650 1 twogei Thierry plc2 [3648, 4648, 5648]
+1651 1 twogej Thierry plc2 [3649, 4649, 5649]
+1652 1 twogfa Thierry plc2 [3650, 4650, 5650]
+1653 1 twogfb Thierry plc2 [3651, 4651, 5651]
+1654 1 twogfc Thierry plc2 [3652, 4652, 5652]
+1655 1 twogfd Thierry plc2 [3653, 4653, 5653]
+1656 1 twogfe Thierry plc2 [3654, 4654, 5654]
+1657 1 twogff Thierry plc2 [3655, 4655, 5655]
+1658 1 twogfg Thierry plc2 [3656, 4656, 5656]
+1659 1 twogfh Thierry plc2 [3657, 4657, 5657]
+1660 1 twogfi Thierry plc2 [3658, 4658, 5658]
+1661 1 twogfj Thierry plc2 [3659, 4659, 5659]
+1662 1 twogga Thierry plc2 [3660, 4660, 5660]
+1663 1 twoggb Thierry plc2 [3661, 4661, 5661]
+1664 1 twoggc Thierry plc2 [3662, 4662, 5662]
+1665 1 twoggd Thierry plc2 [3663, 4663, 5663]
+1666 1 twogge Thierry plc2 [3664, 4664, 5664]
+1667 1 twoggf Thierry plc2 [3665, 4665, 5665]
+1668 1 twoggg Thierry plc2 [3666, 4666, 5666]
+1669 1 twoggh Thierry plc2 [3667, 4667, 5667]
+1670 1 twoggi Thierry plc2 [3668, 4668, 5668]
+1671 1 twoggj Thierry plc2 [3669, 4669, 5669]
+1672 1 twogha Thierry plc2 [3670, 4670, 5670]
+1673 1 twoghb Thierry plc2 [3671, 4671, 5671]
+1674 1 twoghc Thierry plc2 [3672, 4672, 5672]
+1675 1 twoghd Thierry plc2 [3673, 4673, 5673]
+1676 1 twoghe Thierry plc2 [3674, 4674, 5674]
+1677 1 twoghf Thierry plc2 [3675, 4675, 5675]
+1678 1 twoghg Thierry plc2 [3676, 4676, 5676]
+1679 1 twoghh Thierry plc2 [3677, 4677, 5677]
+1680 1 twoghi Thierry plc2 [3678, 4678, 5678]
+1681 1 twoghj Thierry plc2 [3679, 4679, 5679]
+1682 1 twogia Thierry plc2 [3680, 4680, 5680]
+1683 1 twogib Thierry plc2 [3681, 4681, 5681]
+1684 1 twogic Thierry plc2 [3682, 4682, 5682]
+1685 1 twogid Thierry plc2 [3683, 4683, 5683]
+1686 1 twogie Thierry plc2 [3684, 4684, 5684]
+1687 1 twogif Thierry plc2 [3685, 4685, 5685]
+1688 1 twogig Thierry plc2 [3686, 4686, 5686]
+1689 1 twogih Thierry plc2 [3687, 4687, 5687]
+1690 1 twogii Thierry plc2 [3688, 4688, 5688]
+1691 1 twogij Thierry plc2 [3689, 4689, 5689]
+1692 1 twogja Thierry plc2 [3690, 4690, 5690]
+1693 1 twogjb Thierry plc2 [3691, 4691, 5691]
+1694 1 twogjc Thierry plc2 [3692, 4692, 5692]
+1695 1 twogjd Thierry plc2 [3693, 4693, 5693]
+1696 1 twogje Thierry plc2 [3694, 4694, 5694]
+1697 1 twogjf Thierry plc2 [3695, 4695, 5695]
+1698 1 twogjg Thierry plc2 [3696, 4696, 5696]
+1699 1 twogjh Thierry plc2 [3697, 4697, 5697]
+1700 1 twogji Thierry plc2 [3698, 4698, 5698]
+1701 1 twogjj Thierry plc2 [3699, 4699, 5699]
+1702 1 twohaa Thierry plc2 [3700, 4700, 5700]
+1703 1 twohab Thierry plc2 [3701, 4701, 5701]
+1704 1 twohac Thierry plc2 [3702, 4702, 5702]
+1705 1 twohad Thierry plc2 [3703, 4703, 5703]
+1706 1 twohae Thierry plc2 [3704, 4704, 5704]
+1707 1 twohaf Thierry plc2 [3705, 4705, 5705]
+1708 1 twohag Thierry plc2 [3706, 4706, 5706]
+1709 1 twohah Thierry plc2 [3707, 4707, 5707]
+1710 1 twohai Thierry plc2 [3708, 4708, 5708]
+1711 1 twohaj Thierry plc2 [3709, 4709, 5709]
+1712 1 twohba Thierry plc2 [3710, 4710, 5710]
+1713 1 twohbb Thierry plc2 [3711, 4711, 5711]
+1714 1 twohbc Thierry plc2 [3712, 4712, 5712]
+1715 1 twohbd Thierry plc2 [3713, 4713, 5713]
+1716 1 twohbe Thierry plc2 [3714, 4714, 5714]
+1717 1 twohbf Thierry plc2 [3715, 4715, 5715]
+1718 1 twohbg Thierry plc2 [3716, 4716, 5716]
+1719 1 twohbh Thierry plc2 [3717, 4717, 5717]
+1720 1 twohbi Thierry plc2 [3718, 4718, 5718]
+1721 1 twohbj Thierry plc2 [3719, 4719, 5719]
+1722 1 twohca Thierry plc2 [3720, 4720, 5720]
+1723 1 twohcb Thierry plc2 [3721, 4721, 5721]
+1724 1 twohcc Thierry plc2 [3722, 4722, 5722]
+1725 1 twohcd Thierry plc2 [3723, 4723, 5723]
+1726 1 twohce Thierry plc2 [3724, 4724, 5724]
+1727 1 twohcf Thierry plc2 [3725, 4725, 5725]
+1728 1 twohcg Thierry plc2 [3726, 4726, 5726]
+1729 1 twohch Thierry plc2 [3727, 4727, 5727]
+1730 1 twohci Thierry plc2 [3728, 4728, 5728]
+1731 1 twohcj Thierry plc2 [3729, 4729, 5729]
+1732 1 twohda Thierry plc2 [3730, 4730, 5730]
+1733 1 twohdb Thierry plc2 [3731, 4731, 5731]
+1734 1 twohdc Thierry plc2 [3732, 4732, 5732]
+1735 1 twohdd Thierry plc2 [3733, 4733, 5733]
+1736 1 twohde Thierry plc2 [3734, 4734, 5734]
+1737 1 twohdf Thierry plc2 [3735, 4735, 5735]
+1738 1 twohdg Thierry plc2 [3736, 4736, 5736]
+1739 1 twohdh Thierry plc2 [3737, 4737, 5737]
+1740 1 twohdi Thierry plc2 [3738, 4738, 5738]
+1741 1 twohdj Thierry plc2 [3739, 4739, 5739]
+1742 1 twohea Thierry plc2 [3740, 4740, 5740]
+1743 1 twoheb Thierry plc2 [3741, 4741, 5741]
+1744 1 twohec Thierry plc2 [3742, 4742, 5742]
+1745 1 twohed Thierry plc2 [3743, 4743, 5743]
+1746 1 twohee Thierry plc2 [3744, 4744, 5744]
+1747 1 twohef Thierry plc2 [3745, 4745, 5745]
+1748 1 twoheg Thierry plc2 [3746, 4746, 5746]
+1749 1 twoheh Thierry plc2 [3747, 4747, 5747]
+1750 1 twohei Thierry plc2 [3748, 4748, 5748]
+1751 1 twohej Thierry plc2 [3749, 4749, 5749]
+1752 1 twohfa Thierry plc2 [3750, 4750, 5750]
+1753 1 twohfb Thierry plc2 [3751, 4751, 5751]
+1754 1 twohfc Thierry plc2 [3752, 4752, 5752]
+1755 1 twohfd Thierry plc2 [3753, 4753, 5753]
+1756 1 twohfe Thierry plc2 [3754, 4754, 5754]
+1757 1 twohff Thierry plc2 [3755, 4755, 5755]
+1758 1 twohfg Thierry plc2 [3756, 4756, 5756]
+1759 1 twohfh Thierry plc2 [3757, 4757, 5757]
+1760 1 twohfi Thierry plc2 [3758, 4758, 5758]
+1761 1 twohfj Thierry plc2 [3759, 4759, 5759]
+1762 1 twohga Thierry plc2 [3760, 4760, 5760]
+1763 1 twohgb Thierry plc2 [3761, 4761, 5761]
+1764 1 twohgc Thierry plc2 [3762, 4762, 5762]
+1765 1 twohgd Thierry plc2 [3763, 4763, 5763]
+1766 1 twohge Thierry plc2 [3764, 4764, 5764]
+1767 1 twohgf Thierry plc2 [3765, 4765, 5765]
+1768 1 twohgg Thierry plc2 [3766, 4766, 5766]
+1769 1 twohgh Thierry plc2 [3767, 4767, 5767]
+1770 1 twohgi Thierry plc2 [3768, 4768, 5768]
+1771 1 twohgj Thierry plc2 [3769, 4769, 5769]
+1772 1 twohha Thierry plc2 [3770, 4770, 5770]
+1773 1 twohhb Thierry plc2 [3771, 4771, 5771]
+1774 1 twohhc Thierry plc2 [3772, 4772, 5772]
+1775 1 twohhd Thierry plc2 [3773, 4773, 5773]
+1776 1 twohhe Thierry plc2 [3774, 4774, 5774]
+1777 1 twohhf Thierry plc2 [3775, 4775, 5775]
+1778 1 twohhg Thierry plc2 [3776, 4776, 5776]
+1779 1 twohhh Thierry plc2 [3777, 4777, 5777]
+1780 1 twohhi Thierry plc2 [3778, 4778, 5778]
+1781 1 twohhj Thierry plc2 [3779, 4779, 5779]
+1782 1 twohia Thierry plc2 [3780, 4780, 5780]
+1783 1 twohib Thierry plc2 [3781, 4781, 5781]
+1784 1 twohic Thierry plc2 [3782, 4782, 5782]
+1785 1 twohid Thierry plc2 [3783, 4783, 5783]
+1786 1 twohie Thierry plc2 [3784, 4784, 5784]
+1787 1 twohif Thierry plc2 [3785, 4785, 5785]
+1788 1 twohig Thierry plc2 [3786, 4786, 5786]
+1789 1 twohih Thierry plc2 [3787, 4787, 5787]
+1790 1 twohii Thierry plc2 [3788, 4788, 5788]
+1791 1 twohij Thierry plc2 [3789, 4789, 5789]
+1792 1 twohja Thierry plc2 [3790, 4790, 5790]
+1793 1 twohjb Thierry plc2 [3791, 4791, 5791]
+1794 1 twohjc Thierry plc2 [3792, 4792, 5792]
+1795 1 twohjd Thierry plc2 [3793, 4793, 5793]
+1796 1 twohje Thierry plc2 [3794, 4794, 5794]
+1797 1 twohjf Thierry plc2 [3795, 4795, 5795]
+1798 1 twohjg Thierry plc2 [3796, 4796, 5796]
+1799 1 twohjh Thierry plc2 [3797, 4797, 5797]
+1800 1 twohji Thierry plc2 [3798, 4798, 5798]
+1801 1 twohjj Thierry plc2 [3799, 4799, 5799]
+1802 1 twoiaa Thierry plc2 [3800, 4800, 5800]
+1803 1 twoiab Thierry plc2 [3801, 4801, 5801]
+1804 1 twoiac Thierry plc2 [3802, 4802, 5802]
+1805 1 twoiad Thierry plc2 [3803, 4803, 5803]
+1806 1 twoiae Thierry plc2 [3804, 4804, 5804]
+1807 1 twoiaf Thierry plc2 [3805, 4805, 5805]
+1808 1 twoiag Thierry plc2 [3806, 4806, 5806]
+1809 1 twoiah Thierry plc2 [3807, 4807, 5807]
+1810 1 twoiai Thierry plc2 [3808, 4808, 5808]
+1811 1 twoiaj Thierry plc2 [3809, 4809, 5809]
+1812 1 twoiba Thierry plc2 [3810, 4810, 5810]
+1813 1 twoibb Thierry plc2 [3811, 4811, 5811]
+1814 1 twoibc Thierry plc2 [3812, 4812, 5812]
+1815 1 twoibd Thierry plc2 [3813, 4813, 5813]
+1816 1 twoibe Thierry plc2 [3814, 4814, 5814]
+1817 1 twoibf Thierry plc2 [3815, 4815, 5815]
+1818 1 twoibg Thierry plc2 [3816, 4816, 5816]
+1819 1 twoibh Thierry plc2 [3817, 4817, 5817]
+1820 1 twoibi Thierry plc2 [3818, 4818, 5818]
+1821 1 twoibj Thierry plc2 [3819, 4819, 5819]
+1822 1 twoica Thierry plc2 [3820, 4820, 5820]
+1823 1 twoicb Thierry plc2 [3821, 4821, 5821]
+1824 1 twoicc Thierry plc2 [3822, 4822, 5822]
+1825 1 twoicd Thierry plc2 [3823, 4823, 5823]
+1826 1 twoice Thierry plc2 [3824, 4824, 5824]
+1827 1 twoicf Thierry plc2 [3825, 4825, 5825]
+1828 1 twoicg Thierry plc2 [3826, 4826, 5826]
+1829 1 twoich Thierry plc2 [3827, 4827, 5827]
+1830 1 twoici Thierry plc2 [3828, 4828, 5828]
+1831 1 twoicj Thierry plc2 [3829, 4829, 5829]
+1832 1 twoida Thierry plc2 [3830, 4830, 5830]
+1833 1 twoidb Thierry plc2 [3831, 4831, 5831]
+1834 1 twoidc Thierry plc2 [3832, 4832, 5832]
+1835 1 twoidd Thierry plc2 [3833, 4833, 5833]
+1836 1 twoide Thierry plc2 [3834, 4834, 5834]
+1837 1 twoidf Thierry plc2 [3835, 4835, 5835]
+1838 1 twoidg Thierry plc2 [3836, 4836, 5836]
+1839 1 twoidh Thierry plc2 [3837, 4837, 5837]
+1840 1 twoidi Thierry plc2 [3838, 4838, 5838]
+1841 1 twoidj Thierry plc2 [3839, 4839, 5839]
+1842 1 twoiea Thierry plc2 [3840, 4840, 5840]
+1843 1 twoieb Thierry plc2 [3841, 4841, 5841]
+1844 1 twoiec Thierry plc2 [3842, 4842, 5842]
+1845 1 twoied Thierry plc2 [3843, 4843, 5843]
+1846 1 twoiee Thierry plc2 [3844, 4844, 5844]
+1847 1 twoief Thierry plc2 [3845, 4845, 5845]
+1848 1 twoieg Thierry plc2 [3846, 4846, 5846]
+1849 1 twoieh Thierry plc2 [3847, 4847, 5847]
+1850 1 twoiei Thierry plc2 [3848, 4848, 5848]
+1851 1 twoiej Thierry plc2 [3849, 4849, 5849]
+1852 1 twoifa Thierry plc2 [3850, 4850, 5850]
+1853 1 twoifb Thierry plc2 [3851, 4851, 5851]
+1854 1 twoifc Thierry plc2 [3852, 4852, 5852]
+1855 1 twoifd Thierry plc2 [3853, 4853, 5853]
+1856 1 twoife Thierry plc2 [3854, 4854, 5854]
+1857 1 twoiff Thierry plc2 [3855, 4855, 5855]
+1858 1 twoifg Thierry plc2 [3856, 4856, 5856]
+1859 1 twoifh Thierry plc2 [3857, 4857, 5857]
+1860 1 twoifi Thierry plc2 [3858, 4858, 5858]
+1861 1 twoifj Thierry plc2 [3859, 4859, 5859]
+1862 1 twoiga Thierry plc2 [3860, 4860, 5860]
+1863 1 twoigb Thierry plc2 [3861, 4861, 5861]
+1864 1 twoigc Thierry plc2 [3862, 4862, 5862]
+1865 1 twoigd Thierry plc2 [3863, 4863, 5863]
+1866 1 twoige Thierry plc2 [3864, 4864, 5864]
+1867 1 twoigf Thierry plc2 [3865, 4865, 5865]
+1868 1 twoigg Thierry plc2 [3866, 4866, 5866]
+1869 1 twoigh Thierry plc2 [3867, 4867, 5867]
+1870 1 twoigi Thierry plc2 [3868, 4868, 5868]
+1871 1 twoigj Thierry plc2 [3869, 4869, 5869]
+1872 1 twoiha Thierry plc2 [3870, 4870, 5870]
+1873 1 twoihb Thierry plc2 [3871, 4871, 5871]
+1874 1 twoihc Thierry plc2 [3872, 4872, 5872]
+1875 1 twoihd Thierry plc2 [3873, 4873, 5873]
+1876 1 twoihe Thierry plc2 [3874, 4874, 5874]
+1877 1 twoihf Thierry plc2 [3875, 4875, 5875]
+1878 1 twoihg Thierry plc2 [3876, 4876, 5876]
+1879 1 twoihh Thierry plc2 [3877, 4877, 5877]
+1880 1 twoihi Thierry plc2 [3878, 4878, 5878]
+1881 1 twoihj Thierry plc2 [3879, 4879, 5879]
+1882 1 twoiia Thierry plc2 [3880, 4880, 5880]
+1883 1 twoiib Thierry plc2 [3881, 4881, 5881]
+1884 1 twoiic Thierry plc2 [3882, 4882, 5882]
+1885 1 twoiid Thierry plc2 [3883, 4883, 5883]
+1886 1 twoiie Thierry plc2 [3884, 4884, 5884]
+1887 1 twoiif Thierry plc2 [3885, 4885, 5885]
+1888 1 twoiig Thierry plc2 [3886, 4886, 5886]
+1889 1 twoiih Thierry plc2 [3887, 4887, 5887]
+1890 1 twoiii Thierry plc2 [3888, 4888, 5888]
+1891 1 twoiij Thierry plc2 [3889, 4889, 5889]
+1892 1 twoija Thierry plc2 [3890, 4890, 5890]
+1893 1 twoijb Thierry plc2 [3891, 4891, 5891]
+1894 1 twoijc Thierry plc2 [3892, 4892, 5892]
+1895 1 twoijd Thierry plc2 [3893, 4893, 5893]
+1896 1 twoije Thierry plc2 [3894, 4894, 5894]
+1897 1 twoijf Thierry plc2 [3895, 4895, 5895]
+1898 1 twoijg Thierry plc2 [3896, 4896, 5896]
+1899 1 twoijh Thierry plc2 [3897, 4897, 5897]
+1900 1 twoiji Thierry plc2 [3898, 4898, 5898]
+1901 1 twoijj Thierry plc2 [3899, 4899, 5899]
+1902 1 twojaa Thierry plc2 [3900, 4900, 5900]
+1903 1 twojab Thierry plc2 [3901, 4901, 5901]
+1904 1 twojac Thierry plc2 [3902, 4902, 5902]
+1905 1 twojad Thierry plc2 [3903, 4903, 5903]
+1906 1 twojae Thierry plc2 [3904, 4904, 5904]
+1907 1 twojaf Thierry plc2 [3905, 4905, 5905]
+1908 1 twojag Thierry plc2 [3906, 4906, 5906]
+1909 1 twojah Thierry plc2 [3907, 4907, 5907]
+1910 1 twojai Thierry plc2 [3908, 4908, 5908]
+1911 1 twojaj Thierry plc2 [3909, 4909, 5909]
+1912 1 twojba Thierry plc2 [3910, 4910, 5910]
+1913 1 twojbb Thierry plc2 [3911, 4911, 5911]
+1914 1 twojbc Thierry plc2 [3912, 4912, 5912]
+1915 1 twojbd Thierry plc2 [3913, 4913, 5913]
+1916 1 twojbe Thierry plc2 [3914, 4914, 5914]
+1917 1 twojbf Thierry plc2 [3915, 4915, 5915]
+1918 1 twojbg Thierry plc2 [3916, 4916, 5916]
+1919 1 twojbh Thierry plc2 [3917, 4917, 5917]
+1920 1 twojbi Thierry plc2 [3918, 4918, 5918]
+1921 1 twojbj Thierry plc2 [3919, 4919, 5919]
+1922 1 twojca Thierry plc2 [3920, 4920, 5920]
+1923 1 twojcb Thierry plc2 [3921, 4921, 5921]
+1924 1 twojcc Thierry plc2 [3922, 4922, 5922]
+1925 1 twojcd Thierry plc2 [3923, 4923, 5923]
+1926 1 twojce Thierry plc2 [3924, 4924, 5924]
+1927 1 twojcf Thierry plc2 [3925, 4925, 5925]
+1928 1 twojcg Thierry plc2 [3926, 4926, 5926]
+1929 1 twojch Thierry plc2 [3927, 4927, 5927]
+1930 1 twojci Thierry plc2 [3928, 4928, 5928]
+1931 1 twojcj Thierry plc2 [3929, 4929, 5929]
+1932 1 twojda Thierry plc2 [3930, 4930, 5930]
+1933 1 twojdb Thierry plc2 [3931, 4931, 5931]
+1934 1 twojdc Thierry plc2 [3932, 4932, 5932]
+1935 1 twojdd Thierry plc2 [3933, 4933, 5933]
+1936 1 twojde Thierry plc2 [3934, 4934, 5934]
+1937 1 twojdf Thierry plc2 [3935, 4935, 5935]
+1938 1 twojdg Thierry plc2 [3936, 4936, 5936]
+1939 1 twojdh Thierry plc2 [3937, 4937, 5937]
+1940 1 twojdi Thierry plc2 [3938, 4938, 5938]
+1941 1 twojdj Thierry plc2 [3939, 4939, 5939]
+1942 1 twojea Thierry plc2 [3940, 4940, 5940]
+1943 1 twojeb Thierry plc2 [3941, 4941, 5941]
+1944 1 twojec Thierry plc2 [3942, 4942, 5942]
+1945 1 twojed Thierry plc2 [3943, 4943, 5943]
+1946 1 twojee Thierry plc2 [3944, 4944, 5944]
+1947 1 twojef Thierry plc2 [3945, 4945, 5945]
+1948 1 twojeg Thierry plc2 [3946, 4946, 5946]
+1949 1 twojeh Thierry plc2 [3947, 4947, 5947]
+1950 1 twojei Thierry plc2 [3948, 4948, 5948]
+1951 1 twojej Thierry plc2 [3949, 4949, 5949]
+1952 1 twojfa Thierry plc2 [3950, 4950, 5950]
+1953 1 twojfb Thierry plc2 [3951, 4951, 5951]
+1954 1 twojfc Thierry plc2 [3952, 4952, 5952]
+1955 1 twojfd Thierry plc2 [3953, 4953, 5953]
+1956 1 twojfe Thierry plc2 [3954, 4954, 5954]
+1957 1 twojff Thierry plc2 [3955, 4955, 5955]
+1958 1 twojfg Thierry plc2 [3956, 4956, 5956]
+1959 1 twojfh Thierry plc2 [3957, 4957, 5957]
+1960 1 twojfi Thierry plc2 [3958, 4958, 5958]
+1961 1 twojfj Thierry plc2 [3959, 4959, 5959]
+1962 1 twojga Thierry plc2 [3960, 4960, 5960]
+1963 1 twojgb Thierry plc2 [3961, 4961, 5961]
+1964 1 twojgc Thierry plc2 [3962, 4962, 5962]
+1965 1 twojgd Thierry plc2 [3963, 4963, 5963]
+1966 1 twojge Thierry plc2 [3964, 4964, 5964]
+1967 1 twojgf Thierry plc2 [3965, 4965, 5965]
+1968 1 twojgg Thierry plc2 [3966, 4966, 5966]
+1969 1 twojgh Thierry plc2 [3967, 4967, 5967]
+1970 1 twojgi Thierry plc2 [3968, 4968, 5968]
+1971 1 twojgj Thierry plc2 [3969, 4969, 5969]
+1972 1 twojha Thierry plc2 [3970, 4970, 5970]
+1973 1 twojhb Thierry plc2 [3971, 4971, 5971]
+1974 1 twojhc Thierry plc2 [3972, 4972, 5972]
+1975 1 twojhd Thierry plc2 [3973, 4973, 5973]
+1976 1 twojhe Thierry plc2 [3974, 4974, 5974]
+1977 1 twojhf Thierry plc2 [3975, 4975, 5975]
+1978 1 twojhg Thierry plc2 [3976, 4976, 5976]
+1979 1 twojhh Thierry plc2 [3977, 4977, 5977]
+1980 1 twojhi Thierry plc2 [3978, 4978, 5978]
+1981 1 twojhj Thierry plc2 [3979, 4979, 5979]
+1982 1 twojia Thierry plc2 [3980, 4980, 5980]
+1983 1 twojib Thierry plc2 [3981, 4981, 5981]
+1984 1 twojic Thierry plc2 [3982, 4982, 5982]
+1985 1 twojid Thierry plc2 [3983, 4983, 5983]
+1986 1 twojie Thierry plc2 [3984, 4984, 5984]
+1987 1 twojif Thierry plc2 [3985, 4985, 5985]
+1988 1 twojig Thierry plc2 [3986, 4986, 5986]
+1989 1 twojih Thierry plc2 [3987, 4987, 5987]
+1990 1 twojii Thierry plc2 [3988, 4988, 5988]
+1991 1 twojij Thierry plc2 [3989, 4989, 5989]
+1992 1 twojja Thierry plc2 [3990, 4990, 5990]
+1993 1 twojjb Thierry plc2 [3991, 4991, 5991]
+1994 1 twojjc Thierry plc2 [3992, 4992, 5992]
+1995 1 twojjd Thierry plc2 [3993, 4993, 5993]
+1996 1 twojje Thierry plc2 [3994, 4994, 5994]
+1997 1 twojjf Thierry plc2 [3995, 4995, 5995]
+1998 1 twojjg Thierry plc2 [3996, 4996, 5996]
+1999 1 twojjh Thierry plc2 [3997, 4997, 5997]
+2000 1 twojji Thierry plc2 [3998, 4998, 5998]
+2001 1 twojjj Thierry plc2 [3999, 4999, 5999]
+2002 1 twobaaa Thierry plc2 [4000, 5000, 6000]
+01: KEYS
+1 None ssh-rsa 11key4plc11 user1-key1
+2 None ssh-rsa 11key4plc11 user2-key1
+3 None ssh-rsa 11key4plc11 user3-key1
+4 None ssh-rsa 11key4plc11 user4-key1
+5 None ssh-rsa 11key4plc11 user5-key1
+6 None ssh-rsa 11key4plc11 user6-key1
+7 None ssh-rsa 11key4plc11 user7-key1
+8 None ssh-rsa 11key4plc11 user8-key1
+9 None ssh-rsa 11key4plc11 user9-key1
+10 None ssh-rsa 11key4plc11 user10-key1
+11 None ssh-rsa 11key4plc11 user11-key1
+12 None ssh-rsa 11key4plc11 user12-key1
+13 None ssh-rsa 11key4plc11 user13-key1
+14 None ssh-rsa 11key4plc11 user14-key1
+15 None ssh-rsa 11key4plc11 user15-key1
+16 None ssh-rsa 11key4plc11 user16-key1
+17 None ssh-rsa 11key4plc11 user17-key1
+18 None ssh-rsa 11key4plc11 user18-key1
+19 None ssh-rsa 11key4plc11 user19-key1
+20 None ssh-rsa 11key4plc11 user20-key1
+21 None ssh-rsa 11key4plc11 user21-key1
+22 None ssh-rsa 11key4plc11 user22-key1
+23 None ssh-rsa 11key4plc11 user23-key1
+24 None ssh-rsa 11key4plc11 user24-key1
+25 None ssh-rsa 11key4plc11 user25-key1
+26 None ssh-rsa 11key4plc11 user26-key1
+27 None ssh-rsa 11key4plc11 user27-key1
+28 None ssh-rsa 11key4plc11 user28-key1
+29 None ssh-rsa 11key4plc11 user29-key1
+30 None ssh-rsa 11key4plc11 user30-key1
+31 None ssh-rsa 11key4plc11 user31-key1
+32 None ssh-rsa 11key4plc11 user32-key1
+33 None ssh-rsa 11key4plc11 user33-key1
+34 None ssh-rsa 11key4plc11 user34-key1
+35 None ssh-rsa 11key4plc11 user35-key1
+36 None ssh-rsa 11key4plc11 user36-key1
+37 None ssh-rsa 11key4plc11 user37-key1
+38 None ssh-rsa 11key4plc11 user38-key1
+39 None ssh-rsa 11key4plc11 user39-key1
+40 None ssh-rsa 11key4plc11 user40-key1
+41 None ssh-rsa 11key4plc11 user41-key1
+42 None ssh-rsa 11key4plc11 user42-key1
+43 None ssh-rsa 11key4plc11 user43-key1
+44 None ssh-rsa 11key4plc11 user44-key1
+45 None ssh-rsa 11key4plc11 user45-key1
+46 None ssh-rsa 11key4plc11 user46-key1
+47 None ssh-rsa 11key4plc11 user47-key1
+48 None ssh-rsa 11key4plc11 user48-key1
+49 None ssh-rsa 11key4plc11 user49-key1
+50 None ssh-rsa 11key4plc11 user50-key1
+51 None ssh-rsa 11key4plc11 user51-key1
+52 None ssh-rsa 11key4plc11 user52-key1
+53 None ssh-rsa 11key4plc11 user53-key1
+54 None ssh-rsa 11key4plc11 user54-key1
+55 None ssh-rsa 11key4plc11 user55-key1
+56 None ssh-rsa 11key4plc11 user56-key1
+57 None ssh-rsa 11key4plc11 user57-key1
+58 None ssh-rsa 11key4plc11 user58-key1
+59 None ssh-rsa 11key4plc11 user59-key1
+60 None ssh-rsa 11key4plc11 user60-key1
+61 None ssh-rsa 11key4plc11 user61-key1
+62 None ssh-rsa 11key4plc11 user62-key1
+63 None ssh-rsa 11key4plc11 user63-key1
+64 None ssh-rsa 11key4plc11 user64-key1
+65 None ssh-rsa 11key4plc11 user65-key1
+66 None ssh-rsa 11key4plc11 user66-key1
+67 None ssh-rsa 11key4plc11 user67-key1
+68 None ssh-rsa 11key4plc11 user68-key1
+69 None ssh-rsa 11key4plc11 user69-key1
+70 None ssh-rsa 11key4plc11 user70-key1
+71 None ssh-rsa 11key4plc11 user71-key1
+72 None ssh-rsa 11key4plc11 user72-key1
+73 None ssh-rsa 11key4plc11 user73-key1
+74 None ssh-rsa 11key4plc11 user74-key1
+75 None ssh-rsa 11key4plc11 user75-key1
+76 None ssh-rsa 11key4plc11 user76-key1
+77 None ssh-rsa 11key4plc11 user77-key1
+78 None ssh-rsa 11key4plc11 user78-key1
+79 None ssh-rsa 11key4plc11 user79-key1
+80 None ssh-rsa 11key4plc11 user80-key1
+81 None ssh-rsa 11key4plc11 user81-key1
+82 None ssh-rsa 11key4plc11 user82-key1
+83 None ssh-rsa 11key4plc11 user83-key1
+84 None ssh-rsa 11key4plc11 user84-key1
+85 None ssh-rsa 11key4plc11 user85-key1
+86 None ssh-rsa 11key4plc11 user86-key1
+87 None ssh-rsa 11key4plc11 user87-key1
+88 None ssh-rsa 11key4plc11 user88-key1
+89 None ssh-rsa 11key4plc11 user89-key1
+90 None ssh-rsa 11key4plc11 user90-key1
+91 None ssh-rsa 11key4plc11 user91-key1
+92 None ssh-rsa 11key4plc11 user92-key1
+93 None ssh-rsa 11key4plc11 user93-key1
+94 None ssh-rsa 11key4plc11 user94-key1
+95 None ssh-rsa 11key4plc11 user95-key1
+96 None ssh-rsa 11key4plc11 user96-key1
+97 None ssh-rsa 11key4plc11 user97-key1
+98 None ssh-rsa 11key4plc11 user98-key1
+99 None ssh-rsa 11key4plc11 user99-key1
+100 None ssh-rsa 11key4plc11 user100-key1
+101 None ssh-rsa 11key4plc11 user101-key1
+102 None ssh-rsa 11key4plc11 user102-key1
+103 None ssh-rsa 11key4plc11 user103-key1
+104 None ssh-rsa 11key4plc11 user104-key1
+105 None ssh-rsa 11key4plc11 user105-key1
+106 None ssh-rsa 11key4plc11 user106-key1
+107 None ssh-rsa 11key4plc11 user107-key1
+108 None ssh-rsa 11key4plc11 user108-key1
+109 None ssh-rsa 11key4plc11 user109-key1
+110 None ssh-rsa 11key4plc11 user110-key1
+111 None ssh-rsa 11key4plc11 user111-key1
+112 None ssh-rsa 11key4plc11 user112-key1
+113 None ssh-rsa 11key4plc11 user113-key1
+114 None ssh-rsa 11key4plc11 user114-key1
+115 None ssh-rsa 11key4plc11 user115-key1
+116 None ssh-rsa 11key4plc11 user116-key1
+117 None ssh-rsa 11key4plc11 user117-key1
+118 None ssh-rsa 11key4plc11 user118-key1
+119 None ssh-rsa 11key4plc11 user119-key1
+120 None ssh-rsa 11key4plc11 user120-key1
+121 None ssh-rsa 11key4plc11 user121-key1
+122 None ssh-rsa 11key4plc11 user122-key1
+123 None ssh-rsa 11key4plc11 user123-key1
+124 None ssh-rsa 11key4plc11 user124-key1
+125 None ssh-rsa 11key4plc11 user125-key1
+126 None ssh-rsa 11key4plc11 user126-key1
+127 None ssh-rsa 11key4plc11 user127-key1
+128 None ssh-rsa 11key4plc11 user128-key1
+129 None ssh-rsa 11key4plc11 user129-key1
+130 None ssh-rsa 11key4plc11 user130-key1
+131 None ssh-rsa 11key4plc11 user131-key1
+132 None ssh-rsa 11key4plc11 user132-key1
+133 None ssh-rsa 11key4plc11 user133-key1
+134 None ssh-rsa 11key4plc11 user134-key1
+135 None ssh-rsa 11key4plc11 user135-key1
+136 None ssh-rsa 11key4plc11 user136-key1
+137 None ssh-rsa 11key4plc11 user137-key1
+138 None ssh-rsa 11key4plc11 user138-key1
+139 None ssh-rsa 11key4plc11 user139-key1
+140 None ssh-rsa 11key4plc11 user140-key1
+141 None ssh-rsa 11key4plc11 user141-key1
+142 None ssh-rsa 11key4plc11 user142-key1
+143 None ssh-rsa 11key4plc11 user143-key1
+144 None ssh-rsa 11key4plc11 user144-key1
+145 None ssh-rsa 11key4plc11 user145-key1
+146 None ssh-rsa 11key4plc11 user146-key1
+147 None ssh-rsa 11key4plc11 user147-key1
+148 None ssh-rsa 11key4plc11 user148-key1
+149 None ssh-rsa 11key4plc11 user149-key1
+150 None ssh-rsa 11key4plc11 user150-key1
+151 None ssh-rsa 11key4plc11 user151-key1
+152 None ssh-rsa 11key4plc11 user152-key1
+153 None ssh-rsa 11key4plc11 user153-key1
+154 None ssh-rsa 11key4plc11 user154-key1
+155 None ssh-rsa 11key4plc11 user155-key1
+156 None ssh-rsa 11key4plc11 user156-key1
+157 None ssh-rsa 11key4plc11 user157-key1
+158 None ssh-rsa 11key4plc11 user158-key1
+159 None ssh-rsa 11key4plc11 user159-key1
+160 None ssh-rsa 11key4plc11 user160-key1
+161 None ssh-rsa 11key4plc11 user161-key1
+162 None ssh-rsa 11key4plc11 user162-key1
+163 None ssh-rsa 11key4plc11 user163-key1
+164 None ssh-rsa 11key4plc11 user164-key1
+165 None ssh-rsa 11key4plc11 user165-key1
+166 None ssh-rsa 11key4plc11 user166-key1
+167 None ssh-rsa 11key4plc11 user167-key1
+168 None ssh-rsa 11key4plc11 user168-key1
+169 None ssh-rsa 11key4plc11 user169-key1
+170 None ssh-rsa 11key4plc11 user170-key1
+171 None ssh-rsa 11key4plc11 user171-key1
+172 None ssh-rsa 11key4plc11 user172-key1
+173 None ssh-rsa 11key4plc11 user173-key1
+174 None ssh-rsa 11key4plc11 user174-key1
+175 None ssh-rsa 11key4plc11 user175-key1
+176 None ssh-rsa 11key4plc11 user176-key1
+177 None ssh-rsa 11key4plc11 user177-key1
+178 None ssh-rsa 11key4plc11 user178-key1
+179 None ssh-rsa 11key4plc11 user179-key1
+180 None ssh-rsa 11key4plc11 user180-key1
+181 None ssh-rsa 11key4plc11 user181-key1
+182 None ssh-rsa 11key4plc11 user182-key1
+183 None ssh-rsa 11key4plc11 user183-key1
+184 None ssh-rsa 11key4plc11 user184-key1
+185 None ssh-rsa 11key4plc11 user185-key1
+186 None ssh-rsa 11key4plc11 user186-key1
+187 None ssh-rsa 11key4plc11 user187-key1
+188 None ssh-rsa 11key4plc11 user188-key1
+189 None ssh-rsa 11key4plc11 user189-key1
+190 None ssh-rsa 11key4plc11 user190-key1
+191 None ssh-rsa 11key4plc11 user191-key1
+192 None ssh-rsa 11key4plc11 user192-key1
+193 None ssh-rsa 11key4plc11 user193-key1
+194 None ssh-rsa 11key4plc11 user194-key1
+195 None ssh-rsa 11key4plc11 user195-key1
+196 None ssh-rsa 11key4plc11 user196-key1
+197 None ssh-rsa 11key4plc11 user197-key1
+198 None ssh-rsa 11key4plc11 user198-key1
+199 None ssh-rsa 11key4plc11 user199-key1
+200 None ssh-rsa 11key4plc11 user200-key1
+201 None ssh-rsa 11key4plc11 user201-key1
+202 None ssh-rsa 11key4plc11 user202-key1
+203 None ssh-rsa 11key4plc11 user203-key1
+204 None ssh-rsa 11key4plc11 user204-key1
+205 None ssh-rsa 11key4plc11 user205-key1
+206 None ssh-rsa 11key4plc11 user206-key1
+207 None ssh-rsa 11key4plc11 user207-key1
+208 None ssh-rsa 11key4plc11 user208-key1
+209 None ssh-rsa 11key4plc11 user209-key1
+210 None ssh-rsa 11key4plc11 user210-key1
+211 None ssh-rsa 11key4plc11 user211-key1
+212 None ssh-rsa 11key4plc11 user212-key1
+213 None ssh-rsa 11key4plc11 user213-key1
+214 None ssh-rsa 11key4plc11 user214-key1
+215 None ssh-rsa 11key4plc11 user215-key1
+216 None ssh-rsa 11key4plc11 user216-key1
+217 None ssh-rsa 11key4plc11 user217-key1
+218 None ssh-rsa 11key4plc11 user218-key1
+219 None ssh-rsa 11key4plc11 user219-key1
+220 None ssh-rsa 11key4plc11 user220-key1
+221 None ssh-rsa 11key4plc11 user221-key1
+222 None ssh-rsa 11key4plc11 user222-key1
+223 None ssh-rsa 11key4plc11 user223-key1
+224 None ssh-rsa 11key4plc11 user224-key1
+225 None ssh-rsa 11key4plc11 user225-key1
+226 None ssh-rsa 11key4plc11 user226-key1
+227 None ssh-rsa 11key4plc11 user227-key1
+228 None ssh-rsa 11key4plc11 user228-key1
+229 None ssh-rsa 11key4plc11 user229-key1
+230 None ssh-rsa 11key4plc11 user230-key1
+231 None ssh-rsa 11key4plc11 user231-key1
+232 None ssh-rsa 11key4plc11 user232-key1
+233 None ssh-rsa 11key4plc11 user233-key1
+234 None ssh-rsa 11key4plc11 user234-key1
+235 None ssh-rsa 11key4plc11 user235-key1
+236 None ssh-rsa 11key4plc11 user236-key1
+237 None ssh-rsa 11key4plc11 user237-key1
+238 None ssh-rsa 11key4plc11 user238-key1
+239 None ssh-rsa 11key4plc11 user239-key1
+240 None ssh-rsa 11key4plc11 user240-key1
+241 None ssh-rsa 11key4plc11 user241-key1
+242 None ssh-rsa 11key4plc11 user242-key1
+243 None ssh-rsa 11key4plc11 user243-key1
+244 None ssh-rsa 11key4plc11 user244-key1
+245 None ssh-rsa 11key4plc11 user245-key1
+246 None ssh-rsa 11key4plc11 user246-key1
+247 None ssh-rsa 11key4plc11 user247-key1
+248 None ssh-rsa 11key4plc11 user248-key1
+249 None ssh-rsa 11key4plc11 user249-key1
+250 None ssh-rsa 11key4plc11 user250-key1
+251 None ssh-rsa 11key4plc11 user251-key1
+252 None ssh-rsa 11key4plc11 user252-key1
+253 None ssh-rsa 11key4plc11 user253-key1
+254 None ssh-rsa 11key4plc11 user254-key1
+255 None ssh-rsa 11key4plc11 user255-key1
+256 None ssh-rsa 11key4plc11 user256-key1
+257 None ssh-rsa 11key4plc11 user257-key1
+258 None ssh-rsa 11key4plc11 user258-key1
+259 None ssh-rsa 11key4plc11 user259-key1
+260 None ssh-rsa 11key4plc11 user260-key1
+261 None ssh-rsa 11key4plc11 user261-key1
+262 None ssh-rsa 11key4plc11 user262-key1
+263 None ssh-rsa 11key4plc11 user263-key1
+264 None ssh-rsa 11key4plc11 user264-key1
+265 None ssh-rsa 11key4plc11 user265-key1
+266 None ssh-rsa 11key4plc11 user266-key1
+267 None ssh-rsa 11key4plc11 user267-key1
+268 None ssh-rsa 11key4plc11 user268-key1
+269 None ssh-rsa 11key4plc11 user269-key1
+270 None ssh-rsa 11key4plc11 user270-key1
+271 None ssh-rsa 11key4plc11 user271-key1
+272 None ssh-rsa 11key4plc11 user272-key1
+273 None ssh-rsa 11key4plc11 user273-key1
+274 None ssh-rsa 11key4plc11 user274-key1
+275 None ssh-rsa 11key4plc11 user275-key1
+276 None ssh-rsa 11key4plc11 user276-key1
+277 None ssh-rsa 11key4plc11 user277-key1
+278 None ssh-rsa 11key4plc11 user278-key1
+279 None ssh-rsa 11key4plc11 user279-key1
+280 None ssh-rsa 11key4plc11 user280-key1
+281 None ssh-rsa 11key4plc11 user281-key1
+282 None ssh-rsa 11key4plc11 user282-key1
+283 None ssh-rsa 11key4plc11 user283-key1
+284 None ssh-rsa 11key4plc11 user284-key1
+285 None ssh-rsa 11key4plc11 user285-key1
+286 None ssh-rsa 11key4plc11 user286-key1
+287 None ssh-rsa 11key4plc11 user287-key1
+288 None ssh-rsa 11key4plc11 user288-key1
+289 None ssh-rsa 11key4plc11 user289-key1
+290 None ssh-rsa 11key4plc11 user290-key1
+291 None ssh-rsa 11key4plc11 user291-key1
+292 None ssh-rsa 11key4plc11 user292-key1
+293 None ssh-rsa 11key4plc11 user293-key1
+294 None ssh-rsa 11key4plc11 user294-key1
+295 None ssh-rsa 11key4plc11 user295-key1
+296 None ssh-rsa 11key4plc11 user296-key1
+297 None ssh-rsa 11key4plc11 user297-key1
+298 None ssh-rsa 11key4plc11 user298-key1
+299 None ssh-rsa 11key4plc11 user299-key1
+300 None ssh-rsa 11key4plc11 user300-key1
+301 None ssh-rsa 11key4plc11 user301-key1
+302 None ssh-rsa 11key4plc11 user302-key1
+303 None ssh-rsa 11key4plc11 user303-key1
+304 None ssh-rsa 11key4plc11 user304-key1
+305 None ssh-rsa 11key4plc11 user305-key1
+306 None ssh-rsa 11key4plc11 user306-key1
+307 None ssh-rsa 11key4plc11 user307-key1
+308 None ssh-rsa 11key4plc11 user308-key1
+309 None ssh-rsa 11key4plc11 user309-key1
+310 None ssh-rsa 11key4plc11 user310-key1
+311 None ssh-rsa 11key4plc11 user311-key1
+312 None ssh-rsa 11key4plc11 user312-key1
+313 None ssh-rsa 11key4plc11 user313-key1
+314 None ssh-rsa 11key4plc11 user314-key1
+315 None ssh-rsa 11key4plc11 user315-key1
+316 None ssh-rsa 11key4plc11 user316-key1
+317 None ssh-rsa 11key4plc11 user317-key1
+318 None ssh-rsa 11key4plc11 user318-key1
+319 None ssh-rsa 11key4plc11 user319-key1
+320 None ssh-rsa 11key4plc11 user320-key1
+321 None ssh-rsa 11key4plc11 user321-key1
+322 None ssh-rsa 11key4plc11 user322-key1
+323 None ssh-rsa 11key4plc11 user323-key1
+324 None ssh-rsa 11key4plc11 user324-key1
+325 None ssh-rsa 11key4plc11 user325-key1
+326 None ssh-rsa 11key4plc11 user326-key1
+327 None ssh-rsa 11key4plc11 user327-key1
+328 None ssh-rsa 11key4plc11 user328-key1
+329 None ssh-rsa 11key4plc11 user329-key1
+330 None ssh-rsa 11key4plc11 user330-key1
+331 None ssh-rsa 11key4plc11 user331-key1
+332 None ssh-rsa 11key4plc11 user332-key1
+333 None ssh-rsa 11key4plc11 user333-key1
+334 None ssh-rsa 11key4plc11 user334-key1
+335 None ssh-rsa 11key4plc11 user335-key1
+336 None ssh-rsa 11key4plc11 user336-key1
+337 None ssh-rsa 11key4plc11 user337-key1
+338 None ssh-rsa 11key4plc11 user338-key1
+339 None ssh-rsa 11key4plc11 user339-key1
+340 None ssh-rsa 11key4plc11 user340-key1
+341 None ssh-rsa 11key4plc11 user341-key1
+342 None ssh-rsa 11key4plc11 user342-key1
+343 None ssh-rsa 11key4plc11 user343-key1
+344 None ssh-rsa 11key4plc11 user344-key1
+345 None ssh-rsa 11key4plc11 user345-key1
+346 None ssh-rsa 11key4plc11 user346-key1
+347 None ssh-rsa 11key4plc11 user347-key1
+348 None ssh-rsa 11key4plc11 user348-key1
+349 None ssh-rsa 11key4plc11 user349-key1
+350 None ssh-rsa 11key4plc11 user350-key1
+351 None ssh-rsa 11key4plc11 user351-key1
+352 None ssh-rsa 11key4plc11 user352-key1
+353 None ssh-rsa 11key4plc11 user353-key1
+354 None ssh-rsa 11key4plc11 user354-key1
+355 None ssh-rsa 11key4plc11 user355-key1
+356 None ssh-rsa 11key4plc11 user356-key1
+357 None ssh-rsa 11key4plc11 user357-key1
+358 None ssh-rsa 11key4plc11 user358-key1
+359 None ssh-rsa 11key4plc11 user359-key1
+360 None ssh-rsa 11key4plc11 user360-key1
+361 None ssh-rsa 11key4plc11 user361-key1
+362 None ssh-rsa 11key4plc11 user362-key1
+363 None ssh-rsa 11key4plc11 user363-key1
+364 None ssh-rsa 11key4plc11 user364-key1
+365 None ssh-rsa 11key4plc11 user365-key1
+366 None ssh-rsa 11key4plc11 user366-key1
+367 None ssh-rsa 11key4plc11 user367-key1
+368 None ssh-rsa 11key4plc11 user368-key1
+369 None ssh-rsa 11key4plc11 user369-key1
+370 None ssh-rsa 11key4plc11 user370-key1
+371 None ssh-rsa 11key4plc11 user371-key1
+372 None ssh-rsa 11key4plc11 user372-key1
+373 None ssh-rsa 11key4plc11 user373-key1
+374 None ssh-rsa 11key4plc11 user374-key1
+375 None ssh-rsa 11key4plc11 user375-key1
+376 None ssh-rsa 11key4plc11 user376-key1
+377 None ssh-rsa 11key4plc11 user377-key1
+378 None ssh-rsa 11key4plc11 user378-key1
+379 None ssh-rsa 11key4plc11 user379-key1
+380 None ssh-rsa 11key4plc11 user380-key1
+381 None ssh-rsa 11key4plc11 user381-key1
+382 None ssh-rsa 11key4plc11 user382-key1
+383 None ssh-rsa 11key4plc11 user383-key1
+384 None ssh-rsa 11key4plc11 user384-key1
+385 None ssh-rsa 11key4plc11 user385-key1
+386 None ssh-rsa 11key4plc11 user386-key1
+387 None ssh-rsa 11key4plc11 user387-key1
+388 None ssh-rsa 11key4plc11 user388-key1
+389 None ssh-rsa 11key4plc11 user389-key1
+390 None ssh-rsa 11key4plc11 user390-key1
+391 None ssh-rsa 11key4plc11 user391-key1
+392 None ssh-rsa 11key4plc11 user392-key1
+393 None ssh-rsa 11key4plc11 user393-key1
+394 None ssh-rsa 11key4plc11 user394-key1
+395 None ssh-rsa 11key4plc11 user395-key1
+396 None ssh-rsa 11key4plc11 user396-key1
+397 None ssh-rsa 11key4plc11 user397-key1
+398 None ssh-rsa 11key4plc11 user398-key1
+399 None ssh-rsa 11key4plc11 user399-key1
+400 None ssh-rsa 11key4plc11 user400-key1
+401 None ssh-rsa 11key4plc11 user401-key1
+402 None ssh-rsa 11key4plc11 user402-key1
+403 None ssh-rsa 11key4plc11 user403-key1
+404 None ssh-rsa 11key4plc11 user404-key1
+405 None ssh-rsa 11key4plc11 user405-key1
+406 None ssh-rsa 11key4plc11 user406-key1
+407 None ssh-rsa 11key4plc11 user407-key1
+408 None ssh-rsa 11key4plc11 user408-key1
+409 None ssh-rsa 11key4plc11 user409-key1
+410 None ssh-rsa 11key4plc11 user410-key1
+411 None ssh-rsa 11key4plc11 user411-key1
+412 None ssh-rsa 11key4plc11 user412-key1
+413 None ssh-rsa 11key4plc11 user413-key1
+414 None ssh-rsa 11key4plc11 user414-key1
+415 None ssh-rsa 11key4plc11 user415-key1
+416 None ssh-rsa 11key4plc11 user416-key1
+417 None ssh-rsa 11key4plc11 user417-key1
+418 None ssh-rsa 11key4plc11 user418-key1
+419 None ssh-rsa 11key4plc11 user419-key1
+420 None ssh-rsa 11key4plc11 user420-key1
+421 None ssh-rsa 11key4plc11 user421-key1
+422 None ssh-rsa 11key4plc11 user422-key1
+423 None ssh-rsa 11key4plc11 user423-key1
+424 None ssh-rsa 11key4plc11 user424-key1
+425 None ssh-rsa 11key4plc11 user425-key1
+426 None ssh-rsa 11key4plc11 user426-key1
+427 None ssh-rsa 11key4plc11 user427-key1
+428 None ssh-rsa 11key4plc11 user428-key1
+429 None ssh-rsa 11key4plc11 user429-key1
+430 None ssh-rsa 11key4plc11 user430-key1
+431 None ssh-rsa 11key4plc11 user431-key1
+432 None ssh-rsa 11key4plc11 user432-key1
+433 None ssh-rsa 11key4plc11 user433-key1
+434 None ssh-rsa 11key4plc11 user434-key1
+435 None ssh-rsa 11key4plc11 user435-key1
+436 None ssh-rsa 11key4plc11 user436-key1
+437 None ssh-rsa 11key4plc11 user437-key1
+438 None ssh-rsa 11key4plc11 user438-key1
+439 None ssh-rsa 11key4plc11 user439-key1
+440 None ssh-rsa 11key4plc11 user440-key1
+441 None ssh-rsa 11key4plc11 user441-key1
+442 None ssh-rsa 11key4plc11 user442-key1
+443 None ssh-rsa 11key4plc11 user443-key1
+444 None ssh-rsa 11key4plc11 user444-key1
+445 None ssh-rsa 11key4plc11 user445-key1
+446 None ssh-rsa 11key4plc11 user446-key1
+447 None ssh-rsa 11key4plc11 user447-key1
+448 None ssh-rsa 11key4plc11 user448-key1
+449 None ssh-rsa 11key4plc11 user449-key1
+450 None ssh-rsa 11key4plc11 user450-key1
+451 None ssh-rsa 11key4plc11 user451-key1
+452 None ssh-rsa 11key4plc11 user452-key1
+453 None ssh-rsa 11key4plc11 user453-key1
+454 None ssh-rsa 11key4plc11 user454-key1
+455 None ssh-rsa 11key4plc11 user455-key1
+456 None ssh-rsa 11key4plc11 user456-key1
+457 None ssh-rsa 11key4plc11 user457-key1
+458 None ssh-rsa 11key4plc11 user458-key1
+459 None ssh-rsa 11key4plc11 user459-key1
+460 None ssh-rsa 11key4plc11 user460-key1
+461 None ssh-rsa 11key4plc11 user461-key1
+462 None ssh-rsa 11key4plc11 user462-key1
+463 None ssh-rsa 11key4plc11 user463-key1
+464 None ssh-rsa 11key4plc11 user464-key1
+465 None ssh-rsa 11key4plc11 user465-key1
+466 None ssh-rsa 11key4plc11 user466-key1
+467 None ssh-rsa 11key4plc11 user467-key1
+468 None ssh-rsa 11key4plc11 user468-key1
+469 None ssh-rsa 11key4plc11 user469-key1
+470 None ssh-rsa 11key4plc11 user470-key1
+471 None ssh-rsa 11key4plc11 user471-key1
+472 None ssh-rsa 11key4plc11 user472-key1
+473 None ssh-rsa 11key4plc11 user473-key1
+474 None ssh-rsa 11key4plc11 user474-key1
+475 None ssh-rsa 11key4plc11 user475-key1
+476 None ssh-rsa 11key4plc11 user476-key1
+477 None ssh-rsa 11key4plc11 user477-key1
+478 None ssh-rsa 11key4plc11 user478-key1
+479 None ssh-rsa 11key4plc11 user479-key1
+480 None ssh-rsa 11key4plc11 user480-key1
+481 None ssh-rsa 11key4plc11 user481-key1
+482 None ssh-rsa 11key4plc11 user482-key1
+483 None ssh-rsa 11key4plc11 user483-key1
+484 None ssh-rsa 11key4plc11 user484-key1
+485 None ssh-rsa 11key4plc11 user485-key1
+486 None ssh-rsa 11key4plc11 user486-key1
+487 None ssh-rsa 11key4plc11 user487-key1
+488 None ssh-rsa 11key4plc11 user488-key1
+489 None ssh-rsa 11key4plc11 user489-key1
+490 None ssh-rsa 11key4plc11 user490-key1
+491 None ssh-rsa 11key4plc11 user491-key1
+492 None ssh-rsa 11key4plc11 user492-key1
+493 None ssh-rsa 11key4plc11 user493-key1
+494 None ssh-rsa 11key4plc11 user494-key1
+495 None ssh-rsa 11key4plc11 user495-key1
+496 None ssh-rsa 11key4plc11 user496-key1
+497 None ssh-rsa 11key4plc11 user497-key1
+498 None ssh-rsa 11key4plc11 user498-key1
+499 None ssh-rsa 11key4plc11 user499-key1
+500 None ssh-rsa 11key4plc11 user500-key1
+501 None ssh-rsa 11key4plc11 user501-key1
+502 None ssh-rsa 11key4plc11 user502-key1
+503 None ssh-rsa 11key4plc11 user503-key1
+504 None ssh-rsa 11key4plc11 user504-key1
+505 None ssh-rsa 11key4plc11 user505-key1
+506 None ssh-rsa 11key4plc11 user506-key1
+507 None ssh-rsa 11key4plc11 user507-key1
+508 None ssh-rsa 11key4plc11 user508-key1
+509 None ssh-rsa 11key4plc11 user509-key1
+510 None ssh-rsa 11key4plc11 user510-key1
+511 None ssh-rsa 11key4plc11 user511-key1
+512 None ssh-rsa 11key4plc11 user512-key1
+513 None ssh-rsa 11key4plc11 user513-key1
+514 None ssh-rsa 11key4plc11 user514-key1
+515 None ssh-rsa 11key4plc11 user515-key1
+516 None ssh-rsa 11key4plc11 user516-key1
+517 None ssh-rsa 11key4plc11 user517-key1
+518 None ssh-rsa 11key4plc11 user518-key1
+519 None ssh-rsa 11key4plc11 user519-key1
+520 None ssh-rsa 11key4plc11 user520-key1
+521 None ssh-rsa 11key4plc11 user521-key1
+522 None ssh-rsa 11key4plc11 user522-key1
+523 None ssh-rsa 11key4plc11 user523-key1
+524 None ssh-rsa 11key4plc11 user524-key1
+525 None ssh-rsa 11key4plc11 user525-key1
+526 None ssh-rsa 11key4plc11 user526-key1
+527 None ssh-rsa 11key4plc11 user527-key1
+528 None ssh-rsa 11key4plc11 user528-key1
+529 None ssh-rsa 11key4plc11 user529-key1
+530 None ssh-rsa 11key4plc11 user530-key1
+531 None ssh-rsa 11key4plc11 user531-key1
+532 None ssh-rsa 11key4plc11 user532-key1
+533 None ssh-rsa 11key4plc11 user533-key1
+534 None ssh-rsa 11key4plc11 user534-key1
+535 None ssh-rsa 11key4plc11 user535-key1
+536 None ssh-rsa 11key4plc11 user536-key1
+537 None ssh-rsa 11key4plc11 user537-key1
+538 None ssh-rsa 11key4plc11 user538-key1
+539 None ssh-rsa 11key4plc11 user539-key1
+540 None ssh-rsa 11key4plc11 user540-key1
+541 None ssh-rsa 11key4plc11 user541-key1
+542 None ssh-rsa 11key4plc11 user542-key1
+543 None ssh-rsa 11key4plc11 user543-key1
+544 None ssh-rsa 11key4plc11 user544-key1
+545 None ssh-rsa 11key4plc11 user545-key1
+546 None ssh-rsa 11key4plc11 user546-key1
+547 None ssh-rsa 11key4plc11 user547-key1
+548 None ssh-rsa 11key4plc11 user548-key1
+549 None ssh-rsa 11key4plc11 user549-key1
+550 None ssh-rsa 11key4plc11 user550-key1
+551 None ssh-rsa 11key4plc11 user551-key1
+552 None ssh-rsa 11key4plc11 user552-key1
+553 None ssh-rsa 11key4plc11 user553-key1
+554 None ssh-rsa 11key4plc11 user554-key1
+555 None ssh-rsa 11key4plc11 user555-key1
+556 None ssh-rsa 11key4plc11 user556-key1
+557 None ssh-rsa 11key4plc11 user557-key1
+558 None ssh-rsa 11key4plc11 user558-key1
+559 None ssh-rsa 11key4plc11 user559-key1
+560 None ssh-rsa 11key4plc11 user560-key1
+561 None ssh-rsa 11key4plc11 user561-key1
+562 None ssh-rsa 11key4plc11 user562-key1
+563 None ssh-rsa 11key4plc11 user563-key1
+564 None ssh-rsa 11key4plc11 user564-key1
+565 None ssh-rsa 11key4plc11 user565-key1
+566 None ssh-rsa 11key4plc11 user566-key1
+567 None ssh-rsa 11key4plc11 user567-key1
+568 None ssh-rsa 11key4plc11 user568-key1
+569 None ssh-rsa 11key4plc11 user569-key1
+570 None ssh-rsa 11key4plc11 user570-key1
+571 None ssh-rsa 11key4plc11 user571-key1
+572 None ssh-rsa 11key4plc11 user572-key1
+573 None ssh-rsa 11key4plc11 user573-key1
+574 None ssh-rsa 11key4plc11 user574-key1
+575 None ssh-rsa 11key4plc11 user575-key1
+576 None ssh-rsa 11key4plc11 user576-key1
+577 None ssh-rsa 11key4plc11 user577-key1
+578 None ssh-rsa 11key4plc11 user578-key1
+579 None ssh-rsa 11key4plc11 user579-key1
+580 None ssh-rsa 11key4plc11 user580-key1
+581 None ssh-rsa 11key4plc11 user581-key1
+582 None ssh-rsa 11key4plc11 user582-key1
+583 None ssh-rsa 11key4plc11 user583-key1
+584 None ssh-rsa 11key4plc11 user584-key1
+585 None ssh-rsa 11key4plc11 user585-key1
+586 None ssh-rsa 11key4plc11 user586-key1
+587 None ssh-rsa 11key4plc11 user587-key1
+588 None ssh-rsa 11key4plc11 user588-key1
+589 None ssh-rsa 11key4plc11 user589-key1
+590 None ssh-rsa 11key4plc11 user590-key1
+591 None ssh-rsa 11key4plc11 user591-key1
+592 None ssh-rsa 11key4plc11 user592-key1
+593 None ssh-rsa 11key4plc11 user593-key1
+594 None ssh-rsa 11key4plc11 user594-key1
+595 None ssh-rsa 11key4plc11 user595-key1
+596 None ssh-rsa 11key4plc11 user596-key1
+597 None ssh-rsa 11key4plc11 user597-key1
+598 None ssh-rsa 11key4plc11 user598-key1
+599 None ssh-rsa 11key4plc11 user599-key1
+600 None ssh-rsa 11key4plc11 user600-key1
+601 None ssh-rsa 11key4plc11 user601-key1
+602 None ssh-rsa 11key4plc11 user602-key1
+603 None ssh-rsa 11key4plc11 user603-key1
+604 None ssh-rsa 11key4plc11 user604-key1
+605 None ssh-rsa 11key4plc11 user605-key1
+606 None ssh-rsa 11key4plc11 user606-key1
+607 None ssh-rsa 11key4plc11 user607-key1
+608 None ssh-rsa 11key4plc11 user608-key1
+609 None ssh-rsa 11key4plc11 user609-key1
+610 None ssh-rsa 11key4plc11 user610-key1
+611 None ssh-rsa 11key4plc11 user611-key1
+612 None ssh-rsa 11key4plc11 user612-key1
+613 None ssh-rsa 11key4plc11 user613-key1
+614 None ssh-rsa 11key4plc11 user614-key1
+615 None ssh-rsa 11key4plc11 user615-key1
+616 None ssh-rsa 11key4plc11 user616-key1
+617 None ssh-rsa 11key4plc11 user617-key1
+618 None ssh-rsa 11key4plc11 user618-key1
+619 None ssh-rsa 11key4plc11 user619-key1
+620 None ssh-rsa 11key4plc11 user620-key1
+621 None ssh-rsa 11key4plc11 user621-key1
+622 None ssh-rsa 11key4plc11 user622-key1
+623 None ssh-rsa 11key4plc11 user623-key1
+624 None ssh-rsa 11key4plc11 user624-key1
+625 None ssh-rsa 11key4plc11 user625-key1
+626 None ssh-rsa 11key4plc11 user626-key1
+627 None ssh-rsa 11key4plc11 user627-key1
+628 None ssh-rsa 11key4plc11 user628-key1
+629 None ssh-rsa 11key4plc11 user629-key1
+630 None ssh-rsa 11key4plc11 user630-key1
+631 None ssh-rsa 11key4plc11 user631-key1
+632 None ssh-rsa 11key4plc11 user632-key1
+633 None ssh-rsa 11key4plc11 user633-key1
+634 None ssh-rsa 11key4plc11 user634-key1
+635 None ssh-rsa 11key4plc11 user635-key1
+636 None ssh-rsa 11key4plc11 user636-key1
+637 None ssh-rsa 11key4plc11 user637-key1
+638 None ssh-rsa 11key4plc11 user638-key1
+639 None ssh-rsa 11key4plc11 user639-key1
+640 None ssh-rsa 11key4plc11 user640-key1
+641 None ssh-rsa 11key4plc11 user641-key1
+642 None ssh-rsa 11key4plc11 user642-key1
+643 None ssh-rsa 11key4plc11 user643-key1
+644 None ssh-rsa 11key4plc11 user644-key1
+645 None ssh-rsa 11key4plc11 user645-key1
+646 None ssh-rsa 11key4plc11 user646-key1
+647 None ssh-rsa 11key4plc11 user647-key1
+648 None ssh-rsa 11key4plc11 user648-key1
+649 None ssh-rsa 11key4plc11 user649-key1
+650 None ssh-rsa 11key4plc11 user650-key1
+651 None ssh-rsa 11key4plc11 user651-key1
+652 None ssh-rsa 11key4plc11 user652-key1
+653 None ssh-rsa 11key4plc11 user653-key1
+654 None ssh-rsa 11key4plc11 user654-key1
+655 None ssh-rsa 11key4plc11 user655-key1
+656 None ssh-rsa 11key4plc11 user656-key1
+657 None ssh-rsa 11key4plc11 user657-key1
+658 None ssh-rsa 11key4plc11 user658-key1
+659 None ssh-rsa 11key4plc11 user659-key1
+660 None ssh-rsa 11key4plc11 user660-key1
+661 None ssh-rsa 11key4plc11 user661-key1
+662 None ssh-rsa 11key4plc11 user662-key1
+663 None ssh-rsa 11key4plc11 user663-key1
+664 None ssh-rsa 11key4plc11 user664-key1
+665 None ssh-rsa 11key4plc11 user665-key1
+666 None ssh-rsa 11key4plc11 user666-key1
+667 None ssh-rsa 11key4plc11 user667-key1
+668 None ssh-rsa 11key4plc11 user668-key1
+669 None ssh-rsa 11key4plc11 user669-key1
+670 None ssh-rsa 11key4plc11 user670-key1
+671 None ssh-rsa 11key4plc11 user671-key1
+672 None ssh-rsa 11key4plc11 user672-key1
+673 None ssh-rsa 11key4plc11 user673-key1
+674 None ssh-rsa 11key4plc11 user674-key1
+675 None ssh-rsa 11key4plc11 user675-key1
+676 None ssh-rsa 11key4plc11 user676-key1
+677 None ssh-rsa 11key4plc11 user677-key1
+678 None ssh-rsa 11key4plc11 user678-key1
+679 None ssh-rsa 11key4plc11 user679-key1
+680 None ssh-rsa 11key4plc11 user680-key1
+681 None ssh-rsa 11key4plc11 user681-key1
+682 None ssh-rsa 11key4plc11 user682-key1
+683 None ssh-rsa 11key4plc11 user683-key1
+684 None ssh-rsa 11key4plc11 user684-key1
+685 None ssh-rsa 11key4plc11 user685-key1
+686 None ssh-rsa 11key4plc11 user686-key1
+687 None ssh-rsa 11key4plc11 user687-key1
+688 None ssh-rsa 11key4plc11 user688-key1
+689 None ssh-rsa 11key4plc11 user689-key1
+690 None ssh-rsa 11key4plc11 user690-key1
+691 None ssh-rsa 11key4plc11 user691-key1
+692 None ssh-rsa 11key4plc11 user692-key1
+693 None ssh-rsa 11key4plc11 user693-key1
+694 None ssh-rsa 11key4plc11 user694-key1
+695 None ssh-rsa 11key4plc11 user695-key1
+696 None ssh-rsa 11key4plc11 user696-key1
+697 None ssh-rsa 11key4plc11 user697-key1
+698 None ssh-rsa 11key4plc11 user698-key1
+699 None ssh-rsa 11key4plc11 user699-key1
+700 None ssh-rsa 11key4plc11 user700-key1
+701 None ssh-rsa 11key4plc11 user701-key1
+702 None ssh-rsa 11key4plc11 user702-key1
+703 None ssh-rsa 11key4plc11 user703-key1
+704 None ssh-rsa 11key4plc11 user704-key1
+705 None ssh-rsa 11key4plc11 user705-key1
+706 None ssh-rsa 11key4plc11 user706-key1
+707 None ssh-rsa 11key4plc11 user707-key1
+708 None ssh-rsa 11key4plc11 user708-key1
+709 None ssh-rsa 11key4plc11 user709-key1
+710 None ssh-rsa 11key4plc11 user710-key1
+711 None ssh-rsa 11key4plc11 user711-key1
+712 None ssh-rsa 11key4plc11 user712-key1
+713 None ssh-rsa 11key4plc11 user713-key1
+714 None ssh-rsa 11key4plc11 user714-key1
+715 None ssh-rsa 11key4plc11 user715-key1
+716 None ssh-rsa 11key4plc11 user716-key1
+717 None ssh-rsa 11key4plc11 user717-key1
+718 None ssh-rsa 11key4plc11 user718-key1
+719 None ssh-rsa 11key4plc11 user719-key1
+720 None ssh-rsa 11key4plc11 user720-key1
+721 None ssh-rsa 11key4plc11 user721-key1
+722 None ssh-rsa 11key4plc11 user722-key1
+723 None ssh-rsa 11key4plc11 user723-key1
+724 None ssh-rsa 11key4plc11 user724-key1
+725 None ssh-rsa 11key4plc11 user725-key1
+726 None ssh-rsa 11key4plc11 user726-key1
+727 None ssh-rsa 11key4plc11 user727-key1
+728 None ssh-rsa 11key4plc11 user728-key1
+729 None ssh-rsa 11key4plc11 user729-key1
+730 None ssh-rsa 11key4plc11 user730-key1
+731 None ssh-rsa 11key4plc11 user731-key1
+732 None ssh-rsa 11key4plc11 user732-key1
+733 None ssh-rsa 11key4plc11 user733-key1
+734 None ssh-rsa 11key4plc11 user734-key1
+735 None ssh-rsa 11key4plc11 user735-key1
+736 None ssh-rsa 11key4plc11 user736-key1
+737 None ssh-rsa 11key4plc11 user737-key1
+738 None ssh-rsa 11key4plc11 user738-key1
+739 None ssh-rsa 11key4plc11 user739-key1
+740 None ssh-rsa 11key4plc11 user740-key1
+741 None ssh-rsa 11key4plc11 user741-key1
+742 None ssh-rsa 11key4plc11 user742-key1
+743 None ssh-rsa 11key4plc11 user743-key1
+744 None ssh-rsa 11key4plc11 user744-key1
+745 None ssh-rsa 11key4plc11 user745-key1
+746 None ssh-rsa 11key4plc11 user746-key1
+747 None ssh-rsa 11key4plc11 user747-key1
+748 None ssh-rsa 11key4plc11 user748-key1
+749 None ssh-rsa 11key4plc11 user749-key1
+750 None ssh-rsa 11key4plc11 user750-key1
+751 None ssh-rsa 11key4plc11 user751-key1
+752 None ssh-rsa 11key4plc11 user752-key1
+753 None ssh-rsa 11key4plc11 user753-key1
+754 None ssh-rsa 11key4plc11 user754-key1
+755 None ssh-rsa 11key4plc11 user755-key1
+756 None ssh-rsa 11key4plc11 user756-key1
+757 None ssh-rsa 11key4plc11 user757-key1
+758 None ssh-rsa 11key4plc11 user758-key1
+759 None ssh-rsa 11key4plc11 user759-key1
+760 None ssh-rsa 11key4plc11 user760-key1
+761 None ssh-rsa 11key4plc11 user761-key1
+762 None ssh-rsa 11key4plc11 user762-key1
+763 None ssh-rsa 11key4plc11 user763-key1
+764 None ssh-rsa 11key4plc11 user764-key1
+765 None ssh-rsa 11key4plc11 user765-key1
+766 None ssh-rsa 11key4plc11 user766-key1
+767 None ssh-rsa 11key4plc11 user767-key1
+768 None ssh-rsa 11key4plc11 user768-key1
+769 None ssh-rsa 11key4plc11 user769-key1
+770 None ssh-rsa 11key4plc11 user770-key1
+771 None ssh-rsa 11key4plc11 user771-key1
+772 None ssh-rsa 11key4plc11 user772-key1
+773 None ssh-rsa 11key4plc11 user773-key1
+774 None ssh-rsa 11key4plc11 user774-key1
+775 None ssh-rsa 11key4plc11 user775-key1
+776 None ssh-rsa 11key4plc11 user776-key1
+777 None ssh-rsa 11key4plc11 user777-key1
+778 None ssh-rsa 11key4plc11 user778-key1
+779 None ssh-rsa 11key4plc11 user779-key1
+780 None ssh-rsa 11key4plc11 user780-key1
+781 None ssh-rsa 11key4plc11 user781-key1
+782 None ssh-rsa 11key4plc11 user782-key1
+783 None ssh-rsa 11key4plc11 user783-key1
+784 None ssh-rsa 11key4plc11 user784-key1
+785 None ssh-rsa 11key4plc11 user785-key1
+786 None ssh-rsa 11key4plc11 user786-key1
+787 None ssh-rsa 11key4plc11 user787-key1
+788 None ssh-rsa 11key4plc11 user788-key1
+789 None ssh-rsa 11key4plc11 user789-key1
+790 None ssh-rsa 11key4plc11 user790-key1
+791 None ssh-rsa 11key4plc11 user791-key1
+792 None ssh-rsa 11key4plc11 user792-key1
+793 None ssh-rsa 11key4plc11 user793-key1
+794 None ssh-rsa 11key4plc11 user794-key1
+795 None ssh-rsa 11key4plc11 user795-key1
+796 None ssh-rsa 11key4plc11 user796-key1
+797 None ssh-rsa 11key4plc11 user797-key1
+798 None ssh-rsa 11key4plc11 user798-key1
+799 None ssh-rsa 11key4plc11 user799-key1
+800 None ssh-rsa 11key4plc11 user800-key1
+801 None ssh-rsa 11key4plc11 user801-key1
+802 None ssh-rsa 11key4plc11 user802-key1
+803 None ssh-rsa 11key4plc11 user803-key1
+804 None ssh-rsa 11key4plc11 user804-key1
+805 None ssh-rsa 11key4plc11 user805-key1
+806 None ssh-rsa 11key4plc11 user806-key1
+807 None ssh-rsa 11key4plc11 user807-key1
+808 None ssh-rsa 11key4plc11 user808-key1
+809 None ssh-rsa 11key4plc11 user809-key1
+810 None ssh-rsa 11key4plc11 user810-key1
+811 None ssh-rsa 11key4plc11 user811-key1
+812 None ssh-rsa 11key4plc11 user812-key1
+813 None ssh-rsa 11key4plc11 user813-key1
+814 None ssh-rsa 11key4plc11 user814-key1
+815 None ssh-rsa 11key4plc11 user815-key1
+816 None ssh-rsa 11key4plc11 user816-key1
+817 None ssh-rsa 11key4plc11 user817-key1
+818 None ssh-rsa 11key4plc11 user818-key1
+819 None ssh-rsa 11key4plc11 user819-key1
+820 None ssh-rsa 11key4plc11 user820-key1
+821 None ssh-rsa 11key4plc11 user821-key1
+822 None ssh-rsa 11key4plc11 user822-key1
+823 None ssh-rsa 11key4plc11 user823-key1
+824 None ssh-rsa 11key4plc11 user824-key1
+825 None ssh-rsa 11key4plc11 user825-key1
+826 None ssh-rsa 11key4plc11 user826-key1
+827 None ssh-rsa 11key4plc11 user827-key1
+828 None ssh-rsa 11key4plc11 user828-key1
+829 None ssh-rsa 11key4plc11 user829-key1
+830 None ssh-rsa 11key4plc11 user830-key1
+831 None ssh-rsa 11key4plc11 user831-key1
+832 None ssh-rsa 11key4plc11 user832-key1
+833 None ssh-rsa 11key4plc11 user833-key1
+834 None ssh-rsa 11key4plc11 user834-key1
+835 None ssh-rsa 11key4plc11 user835-key1
+836 None ssh-rsa 11key4plc11 user836-key1
+837 None ssh-rsa 11key4plc11 user837-key1
+838 None ssh-rsa 11key4plc11 user838-key1
+839 None ssh-rsa 11key4plc11 user839-key1
+840 None ssh-rsa 11key4plc11 user840-key1
+841 None ssh-rsa 11key4plc11 user841-key1
+842 None ssh-rsa 11key4plc11 user842-key1
+843 None ssh-rsa 11key4plc11 user843-key1
+844 None ssh-rsa 11key4plc11 user844-key1
+845 None ssh-rsa 11key4plc11 user845-key1
+846 None ssh-rsa 11key4plc11 user846-key1
+847 None ssh-rsa 11key4plc11 user847-key1
+848 None ssh-rsa 11key4plc11 user848-key1
+849 None ssh-rsa 11key4plc11 user849-key1
+850 None ssh-rsa 11key4plc11 user850-key1
+851 None ssh-rsa 11key4plc11 user851-key1
+852 None ssh-rsa 11key4plc11 user852-key1
+853 None ssh-rsa 11key4plc11 user853-key1
+854 None ssh-rsa 11key4plc11 user854-key1
+855 None ssh-rsa 11key4plc11 user855-key1
+856 None ssh-rsa 11key4plc11 user856-key1
+857 None ssh-rsa 11key4plc11 user857-key1
+858 None ssh-rsa 11key4plc11 user858-key1
+859 None ssh-rsa 11key4plc11 user859-key1
+860 None ssh-rsa 11key4plc11 user860-key1
+861 None ssh-rsa 11key4plc11 user861-key1
+862 None ssh-rsa 11key4plc11 user862-key1
+863 None ssh-rsa 11key4plc11 user863-key1
+864 None ssh-rsa 11key4plc11 user864-key1
+865 None ssh-rsa 11key4plc11 user865-key1
+866 None ssh-rsa 11key4plc11 user866-key1
+867 None ssh-rsa 11key4plc11 user867-key1
+868 None ssh-rsa 11key4plc11 user868-key1
+869 None ssh-rsa 11key4plc11 user869-key1
+870 None ssh-rsa 11key4plc11 user870-key1
+871 None ssh-rsa 11key4plc11 user871-key1
+872 None ssh-rsa 11key4plc11 user872-key1
+873 None ssh-rsa 11key4plc11 user873-key1
+874 None ssh-rsa 11key4plc11 user874-key1
+875 None ssh-rsa 11key4plc11 user875-key1
+876 None ssh-rsa 11key4plc11 user876-key1
+877 None ssh-rsa 11key4plc11 user877-key1
+878 None ssh-rsa 11key4plc11 user878-key1
+879 None ssh-rsa 11key4plc11 user879-key1
+880 None ssh-rsa 11key4plc11 user880-key1
+881 None ssh-rsa 11key4plc11 user881-key1
+882 None ssh-rsa 11key4plc11 user882-key1
+883 None ssh-rsa 11key4plc11 user883-key1
+884 None ssh-rsa 11key4plc11 user884-key1
+885 None ssh-rsa 11key4plc11 user885-key1
+886 None ssh-rsa 11key4plc11 user886-key1
+887 None ssh-rsa 11key4plc11 user887-key1
+888 None ssh-rsa 11key4plc11 user888-key1
+889 None ssh-rsa 11key4plc11 user889-key1
+890 None ssh-rsa 11key4plc11 user890-key1
+891 None ssh-rsa 11key4plc11 user891-key1
+892 None ssh-rsa 11key4plc11 user892-key1
+893 None ssh-rsa 11key4plc11 user893-key1
+894 None ssh-rsa 11key4plc11 user894-key1
+895 None ssh-rsa 11key4plc11 user895-key1
+896 None ssh-rsa 11key4plc11 user896-key1
+897 None ssh-rsa 11key4plc11 user897-key1
+898 None ssh-rsa 11key4plc11 user898-key1
+899 None ssh-rsa 11key4plc11 user899-key1
+900 None ssh-rsa 11key4plc11 user900-key1
+901 None ssh-rsa 11key4plc11 user901-key1
+902 None ssh-rsa 11key4plc11 user902-key1
+903 None ssh-rsa 11key4plc11 user903-key1
+904 None ssh-rsa 11key4plc11 user904-key1
+905 None ssh-rsa 11key4plc11 user905-key1
+906 None ssh-rsa 11key4plc11 user906-key1
+907 None ssh-rsa 11key4plc11 user907-key1
+908 None ssh-rsa 11key4plc11 user908-key1
+909 None ssh-rsa 11key4plc11 user909-key1
+910 None ssh-rsa 11key4plc11 user910-key1
+911 None ssh-rsa 11key4plc11 user911-key1
+912 None ssh-rsa 11key4plc11 user912-key1
+913 None ssh-rsa 11key4plc11 user913-key1
+914 None ssh-rsa 11key4plc11 user914-key1
+915 None ssh-rsa 11key4plc11 user915-key1
+916 None ssh-rsa 11key4plc11 user916-key1
+917 None ssh-rsa 11key4plc11 user917-key1
+918 None ssh-rsa 11key4plc11 user918-key1
+919 None ssh-rsa 11key4plc11 user919-key1
+920 None ssh-rsa 11key4plc11 user920-key1
+921 None ssh-rsa 11key4plc11 user921-key1
+922 None ssh-rsa 11key4plc11 user922-key1
+923 None ssh-rsa 11key4plc11 user923-key1
+924 None ssh-rsa 11key4plc11 user924-key1
+925 None ssh-rsa 11key4plc11 user925-key1
+926 None ssh-rsa 11key4plc11 user926-key1
+927 None ssh-rsa 11key4plc11 user927-key1
+928 None ssh-rsa 11key4plc11 user928-key1
+929 None ssh-rsa 11key4plc11 user929-key1
+930 None ssh-rsa 11key4plc11 user930-key1
+931 None ssh-rsa 11key4plc11 user931-key1
+932 None ssh-rsa 11key4plc11 user932-key1
+933 None ssh-rsa 11key4plc11 user933-key1
+934 None ssh-rsa 11key4plc11 user934-key1
+935 None ssh-rsa 11key4plc11 user935-key1
+936 None ssh-rsa 11key4plc11 user936-key1
+937 None ssh-rsa 11key4plc11 user937-key1
+938 None ssh-rsa 11key4plc11 user938-key1
+939 None ssh-rsa 11key4plc11 user939-key1
+940 None ssh-rsa 11key4plc11 user940-key1
+941 None ssh-rsa 11key4plc11 user941-key1
+942 None ssh-rsa 11key4plc11 user942-key1
+943 None ssh-rsa 11key4plc11 user943-key1
+944 None ssh-rsa 11key4plc11 user944-key1
+945 None ssh-rsa 11key4plc11 user945-key1
+946 None ssh-rsa 11key4plc11 user946-key1
+947 None ssh-rsa 11key4plc11 user947-key1
+948 None ssh-rsa 11key4plc11 user948-key1
+949 None ssh-rsa 11key4plc11 user949-key1
+950 None ssh-rsa 11key4plc11 user950-key1
+951 None ssh-rsa 11key4plc11 user951-key1
+952 None ssh-rsa 11key4plc11 user952-key1
+953 None ssh-rsa 11key4plc11 user953-key1
+954 None ssh-rsa 11key4plc11 user954-key1
+955 None ssh-rsa 11key4plc11 user955-key1
+956 None ssh-rsa 11key4plc11 user956-key1
+957 None ssh-rsa 11key4plc11 user957-key1
+958 None ssh-rsa 11key4plc11 user958-key1
+959 None ssh-rsa 11key4plc11 user959-key1
+960 None ssh-rsa 11key4plc11 user960-key1
+961 None ssh-rsa 11key4plc11 user961-key1
+962 None ssh-rsa 11key4plc11 user962-key1
+963 None ssh-rsa 11key4plc11 user963-key1
+964 None ssh-rsa 11key4plc11 user964-key1
+965 None ssh-rsa 11key4plc11 user965-key1
+966 None ssh-rsa 11key4plc11 user966-key1
+967 None ssh-rsa 11key4plc11 user967-key1
+968 None ssh-rsa 11key4plc11 user968-key1
+969 None ssh-rsa 11key4plc11 user969-key1
+970 None ssh-rsa 11key4plc11 user970-key1
+971 None ssh-rsa 11key4plc11 user971-key1
+972 None ssh-rsa 11key4plc11 user972-key1
+973 None ssh-rsa 11key4plc11 user973-key1
+974 None ssh-rsa 11key4plc11 user974-key1
+975 None ssh-rsa 11key4plc11 user975-key1
+976 None ssh-rsa 11key4plc11 user976-key1
+977 None ssh-rsa 11key4plc11 user977-key1
+978 None ssh-rsa 11key4plc11 user978-key1
+979 None ssh-rsa 11key4plc11 user979-key1
+980 None ssh-rsa 11key4plc11 user980-key1
+981 None ssh-rsa 11key4plc11 user981-key1
+982 None ssh-rsa 11key4plc11 user982-key1
+983 None ssh-rsa 11key4plc11 user983-key1
+984 None ssh-rsa 11key4plc11 user984-key1
+985 None ssh-rsa 11key4plc11 user985-key1
+986 None ssh-rsa 11key4plc11 user986-key1
+987 None ssh-rsa 11key4plc11 user987-key1
+988 None ssh-rsa 11key4plc11 user988-key1
+989 None ssh-rsa 11key4plc11 user989-key1
+990 None ssh-rsa 11key4plc11 user990-key1
+991 None ssh-rsa 11key4plc11 user991-key1
+992 None ssh-rsa 11key4plc11 user992-key1
+993 None ssh-rsa 11key4plc11 user993-key1
+994 None ssh-rsa 11key4plc11 user994-key1
+995 None ssh-rsa 11key4plc11 user995-key1
+996 None ssh-rsa 11key4plc11 user996-key1
+997 None ssh-rsa 11key4plc11 user997-key1
+998 None ssh-rsa 11key4plc11 user998-key1
+999 None ssh-rsa 11key4plc11 user999-key1
+1000 None ssh-rsa 11key4plc11 user1000-key1
+1001 None ssh-rsa 11key4plc11 user1001-key1
+1002 None ssh-rsa 11key4plc11 user1002-key1
+1003 None ssh-rsa 11key4plc11 user1003-key1
+1004 None ssh-rsa 11key4plc11 user1004-key1
+1005 None ssh-rsa 11key4plc11 user1005-key1
+1006 None ssh-rsa 11key4plc11 user1006-key1
+1007 None ssh-rsa 11key4plc11 user1007-key1
+1008 None ssh-rsa 11key4plc11 user1008-key1
+1009 None ssh-rsa 11key4plc11 user1009-key1
+1010 None ssh-rsa 11key4plc11 user1010-key1
+1011 None ssh-rsa 11key4plc11 user1011-key1
+1012 None ssh-rsa 11key4plc11 user1012-key1
+1013 None ssh-rsa 11key4plc11 user1013-key1
+1014 None ssh-rsa 11key4plc11 user1014-key1
+1015 None ssh-rsa 11key4plc11 user1015-key1
+1016 None ssh-rsa 11key4plc11 user1016-key1
+1017 None ssh-rsa 11key4plc11 user1017-key1
+1018 None ssh-rsa 11key4plc11 user1018-key1
+1019 None ssh-rsa 11key4plc11 user1019-key1
+1020 None ssh-rsa 11key4plc11 user1020-key1
+1021 None ssh-rsa 11key4plc11 user1021-key1
+1022 None ssh-rsa 11key4plc11 user1022-key1
+1023 None ssh-rsa 11key4plc11 user1023-key1
+1024 None ssh-rsa 11key4plc11 user1024-key1
+1025 None ssh-rsa 11key4plc11 user1025-key1
+1026 None ssh-rsa 11key4plc11 user1026-key1
+1027 None ssh-rsa 11key4plc11 user1027-key1
+1028 None ssh-rsa 11key4plc11 user1028-key1
+1029 None ssh-rsa 11key4plc11 user1029-key1
+1030 None ssh-rsa 11key4plc11 user1030-key1
+1031 None ssh-rsa 11key4plc11 user1031-key1
+1032 None ssh-rsa 11key4plc11 user1032-key1
+1033 None ssh-rsa 11key4plc11 user1033-key1
+1034 None ssh-rsa 11key4plc11 user1034-key1
+1035 None ssh-rsa 11key4plc11 user1035-key1
+1036 None ssh-rsa 11key4plc11 user1036-key1
+1037 None ssh-rsa 11key4plc11 user1037-key1
+1038 None ssh-rsa 11key4plc11 user1038-key1
+1039 None ssh-rsa 11key4plc11 user1039-key1
+1040 None ssh-rsa 11key4plc11 user1040-key1
+1041 None ssh-rsa 11key4plc11 user1041-key1
+1042 None ssh-rsa 11key4plc11 user1042-key1
+1043 None ssh-rsa 11key4plc11 user1043-key1
+1044 None ssh-rsa 11key4plc11 user1044-key1
+1045 None ssh-rsa 11key4plc11 user1045-key1
+1046 None ssh-rsa 11key4plc11 user1046-key1
+1047 None ssh-rsa 11key4plc11 user1047-key1
+1048 None ssh-rsa 11key4plc11 user1048-key1
+1049 None ssh-rsa 11key4plc11 user1049-key1
+1050 None ssh-rsa 11key4plc11 user1050-key1
+1051 None ssh-rsa 11key4plc11 user1051-key1
+1052 None ssh-rsa 11key4plc11 user1052-key1
+1053 None ssh-rsa 11key4plc11 user1053-key1
+1054 None ssh-rsa 11key4plc11 user1054-key1
+1055 None ssh-rsa 11key4plc11 user1055-key1
+1056 None ssh-rsa 11key4plc11 user1056-key1
+1057 None ssh-rsa 11key4plc11 user1057-key1
+1058 None ssh-rsa 11key4plc11 user1058-key1
+1059 None ssh-rsa 11key4plc11 user1059-key1
+1060 None ssh-rsa 11key4plc11 user1060-key1
+1061 None ssh-rsa 11key4plc11 user1061-key1
+1062 None ssh-rsa 11key4plc11 user1062-key1
+1063 None ssh-rsa 11key4plc11 user1063-key1
+1064 None ssh-rsa 11key4plc11 user1064-key1
+1065 None ssh-rsa 11key4plc11 user1065-key1
+1066 None ssh-rsa 11key4plc11 user1066-key1
+1067 None ssh-rsa 11key4plc11 user1067-key1
+1068 None ssh-rsa 11key4plc11 user1068-key1
+1069 None ssh-rsa 11key4plc11 user1069-key1
+1070 None ssh-rsa 11key4plc11 user1070-key1
+1071 None ssh-rsa 11key4plc11 user1071-key1
+1072 None ssh-rsa 11key4plc11 user1072-key1
+1073 None ssh-rsa 11key4plc11 user1073-key1
+1074 None ssh-rsa 11key4plc11 user1074-key1
+1075 None ssh-rsa 11key4plc11 user1075-key1
+1076 None ssh-rsa 11key4plc11 user1076-key1
+1077 None ssh-rsa 11key4plc11 user1077-key1
+1078 None ssh-rsa 11key4plc11 user1078-key1
+1079 None ssh-rsa 11key4plc11 user1079-key1
+1080 None ssh-rsa 11key4plc11 user1080-key1
+1081 None ssh-rsa 11key4plc11 user1081-key1
+1082 None ssh-rsa 11key4plc11 user1082-key1
+1083 None ssh-rsa 11key4plc11 user1083-key1
+1084 None ssh-rsa 11key4plc11 user1084-key1
+1085 None ssh-rsa 11key4plc11 user1085-key1
+1086 None ssh-rsa 11key4plc11 user1086-key1
+1087 None ssh-rsa 11key4plc11 user1087-key1
+1088 None ssh-rsa 11key4plc11 user1088-key1
+1089 None ssh-rsa 11key4plc11 user1089-key1
+1090 None ssh-rsa 11key4plc11 user1090-key1
+1091 None ssh-rsa 11key4plc11 user1091-key1
+1092 None ssh-rsa 11key4plc11 user1092-key1
+1093 None ssh-rsa 11key4plc11 user1093-key1
+1094 None ssh-rsa 11key4plc11 user1094-key1
+1095 None ssh-rsa 11key4plc11 user1095-key1
+1096 None ssh-rsa 11key4plc11 user1096-key1
+1097 None ssh-rsa 11key4plc11 user1097-key1
+1098 None ssh-rsa 11key4plc11 user1098-key1
+1099 None ssh-rsa 11key4plc11 user1099-key1
+1100 None ssh-rsa 11key4plc11 user1100-key1
+1101 None ssh-rsa 11key4plc11 user1101-key1
+1102 None ssh-rsa 11key4plc11 user1102-key1
+1103 None ssh-rsa 11key4plc11 user1103-key1
+1104 None ssh-rsa 11key4plc11 user1104-key1
+1105 None ssh-rsa 11key4plc11 user1105-key1
+1106 None ssh-rsa 11key4plc11 user1106-key1
+1107 None ssh-rsa 11key4plc11 user1107-key1
+1108 None ssh-rsa 11key4plc11 user1108-key1
+1109 None ssh-rsa 11key4plc11 user1109-key1
+1110 None ssh-rsa 11key4plc11 user1110-key1
+1111 None ssh-rsa 11key4plc11 user1111-key1
+1112 None ssh-rsa 11key4plc11 user1112-key1
+1113 None ssh-rsa 11key4plc11 user1113-key1
+1114 None ssh-rsa 11key4plc11 user1114-key1
+1115 None ssh-rsa 11key4plc11 user1115-key1
+1116 None ssh-rsa 11key4plc11 user1116-key1
+1117 None ssh-rsa 11key4plc11 user1117-key1
+1118 None ssh-rsa 11key4plc11 user1118-key1
+1119 None ssh-rsa 11key4plc11 user1119-key1
+1120 None ssh-rsa 11key4plc11 user1120-key1
+1121 None ssh-rsa 11key4plc11 user1121-key1
+1122 None ssh-rsa 11key4plc11 user1122-key1
+1123 None ssh-rsa 11key4plc11 user1123-key1
+1124 None ssh-rsa 11key4plc11 user1124-key1
+1125 None ssh-rsa 11key4plc11 user1125-key1
+1126 None ssh-rsa 11key4plc11 user1126-key1
+1127 None ssh-rsa 11key4plc11 user1127-key1
+1128 None ssh-rsa 11key4plc11 user1128-key1
+1129 None ssh-rsa 11key4plc11 user1129-key1
+1130 None ssh-rsa 11key4plc11 user1130-key1
+1131 None ssh-rsa 11key4plc11 user1131-key1
+1132 None ssh-rsa 11key4plc11 user1132-key1
+1133 None ssh-rsa 11key4plc11 user1133-key1
+1134 None ssh-rsa 11key4plc11 user1134-key1
+1135 None ssh-rsa 11key4plc11 user1135-key1
+1136 None ssh-rsa 11key4plc11 user1136-key1
+1137 None ssh-rsa 11key4plc11 user1137-key1
+1138 None ssh-rsa 11key4plc11 user1138-key1
+1139 None ssh-rsa 11key4plc11 user1139-key1
+1140 None ssh-rsa 11key4plc11 user1140-key1
+1141 None ssh-rsa 11key4plc11 user1141-key1
+1142 None ssh-rsa 11key4plc11 user1142-key1
+1143 None ssh-rsa 11key4plc11 user1143-key1
+1144 None ssh-rsa 11key4plc11 user1144-key1
+1145 None ssh-rsa 11key4plc11 user1145-key1
+1146 None ssh-rsa 11key4plc11 user1146-key1
+1147 None ssh-rsa 11key4plc11 user1147-key1
+1148 None ssh-rsa 11key4plc11 user1148-key1
+1149 None ssh-rsa 11key4plc11 user1149-key1
+1150 None ssh-rsa 11key4plc11 user1150-key1
+1151 None ssh-rsa 11key4plc11 user1151-key1
+1152 None ssh-rsa 11key4plc11 user1152-key1
+1153 None ssh-rsa 11key4plc11 user1153-key1
+1154 None ssh-rsa 11key4plc11 user1154-key1
+1155 None ssh-rsa 11key4plc11 user1155-key1
+1156 None ssh-rsa 11key4plc11 user1156-key1
+1157 None ssh-rsa 11key4plc11 user1157-key1
+1158 None ssh-rsa 11key4plc11 user1158-key1
+1159 None ssh-rsa 11key4plc11 user1159-key1
+1160 None ssh-rsa 11key4plc11 user1160-key1
+1161 None ssh-rsa 11key4plc11 user1161-key1
+1162 None ssh-rsa 11key4plc11 user1162-key1
+1163 None ssh-rsa 11key4plc11 user1163-key1
+1164 None ssh-rsa 11key4plc11 user1164-key1
+1165 None ssh-rsa 11key4plc11 user1165-key1
+1166 None ssh-rsa 11key4plc11 user1166-key1
+1167 None ssh-rsa 11key4plc11 user1167-key1
+1168 None ssh-rsa 11key4plc11 user1168-key1
+1169 None ssh-rsa 11key4plc11 user1169-key1
+1170 None ssh-rsa 11key4plc11 user1170-key1
+1171 None ssh-rsa 11key4plc11 user1171-key1
+1172 None ssh-rsa 11key4plc11 user1172-key1
+1173 None ssh-rsa 11key4plc11 user1173-key1
+1174 None ssh-rsa 11key4plc11 user1174-key1
+1175 None ssh-rsa 11key4plc11 user1175-key1
+1176 None ssh-rsa 11key4plc11 user1176-key1
+1177 None ssh-rsa 11key4plc11 user1177-key1
+1178 None ssh-rsa 11key4plc11 user1178-key1
+1179 None ssh-rsa 11key4plc11 user1179-key1
+1180 None ssh-rsa 11key4plc11 user1180-key1
+1181 None ssh-rsa 11key4plc11 user1181-key1
+1182 None ssh-rsa 11key4plc11 user1182-key1
+1183 None ssh-rsa 11key4plc11 user1183-key1
+1184 None ssh-rsa 11key4plc11 user1184-key1
+1185 None ssh-rsa 11key4plc11 user1185-key1
+1186 None ssh-rsa 11key4plc11 user1186-key1
+1187 None ssh-rsa 11key4plc11 user1187-key1
+1188 None ssh-rsa 11key4plc11 user1188-key1
+1189 None ssh-rsa 11key4plc11 user1189-key1
+1190 None ssh-rsa 11key4plc11 user1190-key1
+1191 None ssh-rsa 11key4plc11 user1191-key1
+1192 None ssh-rsa 11key4plc11 user1192-key1
+1193 None ssh-rsa 11key4plc11 user1193-key1
+1194 None ssh-rsa 11key4plc11 user1194-key1
+1195 None ssh-rsa 11key4plc11 user1195-key1
+1196 None ssh-rsa 11key4plc11 user1196-key1
+1197 None ssh-rsa 11key4plc11 user1197-key1
+1198 None ssh-rsa 11key4plc11 user1198-key1
+1199 None ssh-rsa 11key4plc11 user1199-key1
+1200 None ssh-rsa 11key4plc11 user1200-key1
+1201 None ssh-rsa 11key4plc11 user1201-key1
+1202 None ssh-rsa 11key4plc11 user1202-key1
+1203 None ssh-rsa 11key4plc11 user1203-key1
+1204 None ssh-rsa 11key4plc11 user1204-key1
+1205 None ssh-rsa 11key4plc11 user1205-key1
+1206 None ssh-rsa 11key4plc11 user1206-key1
+1207 None ssh-rsa 11key4plc11 user1207-key1
+1208 None ssh-rsa 11key4plc11 user1208-key1
+1209 None ssh-rsa 11key4plc11 user1209-key1
+1210 None ssh-rsa 11key4plc11 user1210-key1
+1211 None ssh-rsa 11key4plc11 user1211-key1
+1212 None ssh-rsa 11key4plc11 user1212-key1
+1213 None ssh-rsa 11key4plc11 user1213-key1
+1214 None ssh-rsa 11key4plc11 user1214-key1
+1215 None ssh-rsa 11key4plc11 user1215-key1
+1216 None ssh-rsa 11key4plc11 user1216-key1
+1217 None ssh-rsa 11key4plc11 user1217-key1
+1218 None ssh-rsa 11key4plc11 user1218-key1
+1219 None ssh-rsa 11key4plc11 user1219-key1
+1220 None ssh-rsa 11key4plc11 user1220-key1
+1221 None ssh-rsa 11key4plc11 user1221-key1
+1222 None ssh-rsa 11key4plc11 user1222-key1
+1223 None ssh-rsa 11key4plc11 user1223-key1
+1224 None ssh-rsa 11key4plc11 user1224-key1
+1225 None ssh-rsa 11key4plc11 user1225-key1
+1226 None ssh-rsa 11key4plc11 user1226-key1
+1227 None ssh-rsa 11key4plc11 user1227-key1
+1228 None ssh-rsa 11key4plc11 user1228-key1
+1229 None ssh-rsa 11key4plc11 user1229-key1
+1230 None ssh-rsa 11key4plc11 user1230-key1
+1231 None ssh-rsa 11key4plc11 user1231-key1
+1232 None ssh-rsa 11key4plc11 user1232-key1
+1233 None ssh-rsa 11key4plc11 user1233-key1
+1234 None ssh-rsa 11key4plc11 user1234-key1
+1235 None ssh-rsa 11key4plc11 user1235-key1
+1236 None ssh-rsa 11key4plc11 user1236-key1
+1237 None ssh-rsa 11key4plc11 user1237-key1
+1238 None ssh-rsa 11key4plc11 user1238-key1
+1239 None ssh-rsa 11key4plc11 user1239-key1
+1240 None ssh-rsa 11key4plc11 user1240-key1
+1241 None ssh-rsa 11key4plc11 user1241-key1
+1242 None ssh-rsa 11key4plc11 user1242-key1
+1243 None ssh-rsa 11key4plc11 user1243-key1
+1244 None ssh-rsa 11key4plc11 user1244-key1
+1245 None ssh-rsa 11key4plc11 user1245-key1
+1246 None ssh-rsa 11key4plc11 user1246-key1
+1247 None ssh-rsa 11key4plc11 user1247-key1
+1248 None ssh-rsa 11key4plc11 user1248-key1
+1249 None ssh-rsa 11key4plc11 user1249-key1
+1250 None ssh-rsa 11key4plc11 user1250-key1
+1251 None ssh-rsa 11key4plc11 user1251-key1
+1252 None ssh-rsa 11key4plc11 user1252-key1
+1253 None ssh-rsa 11key4plc11 user1253-key1
+1254 None ssh-rsa 11key4plc11 user1254-key1
+1255 None ssh-rsa 11key4plc11 user1255-key1
+1256 None ssh-rsa 11key4plc11 user1256-key1
+1257 None ssh-rsa 11key4plc11 user1257-key1
+1258 None ssh-rsa 11key4plc11 user1258-key1
+1259 None ssh-rsa 11key4plc11 user1259-key1
+1260 None ssh-rsa 11key4plc11 user1260-key1
+1261 None ssh-rsa 11key4plc11 user1261-key1
+1262 None ssh-rsa 11key4plc11 user1262-key1
+1263 None ssh-rsa 11key4plc11 user1263-key1
+1264 None ssh-rsa 11key4plc11 user1264-key1
+1265 None ssh-rsa 11key4plc11 user1265-key1
+1266 None ssh-rsa 11key4plc11 user1266-key1
+1267 None ssh-rsa 11key4plc11 user1267-key1
+1268 None ssh-rsa 11key4plc11 user1268-key1
+1269 None ssh-rsa 11key4plc11 user1269-key1
+1270 None ssh-rsa 11key4plc11 user1270-key1
+1271 None ssh-rsa 11key4plc11 user1271-key1
+1272 None ssh-rsa 11key4plc11 user1272-key1
+1273 None ssh-rsa 11key4plc11 user1273-key1
+1274 None ssh-rsa 11key4plc11 user1274-key1
+1275 None ssh-rsa 11key4plc11 user1275-key1
+1276 None ssh-rsa 11key4plc11 user1276-key1
+1277 None ssh-rsa 11key4plc11 user1277-key1
+1278 None ssh-rsa 11key4plc11 user1278-key1
+1279 None ssh-rsa 11key4plc11 user1279-key1
+1280 None ssh-rsa 11key4plc11 user1280-key1
+1281 None ssh-rsa 11key4plc11 user1281-key1
+1282 None ssh-rsa 11key4plc11 user1282-key1
+1283 None ssh-rsa 11key4plc11 user1283-key1
+1284 None ssh-rsa 11key4plc11 user1284-key1
+1285 None ssh-rsa 11key4plc11 user1285-key1
+1286 None ssh-rsa 11key4plc11 user1286-key1
+1287 None ssh-rsa 11key4plc11 user1287-key1
+1288 None ssh-rsa 11key4plc11 user1288-key1
+1289 None ssh-rsa 11key4plc11 user1289-key1
+1290 None ssh-rsa 11key4plc11 user1290-key1
+1291 None ssh-rsa 11key4plc11 user1291-key1
+1292 None ssh-rsa 11key4plc11 user1292-key1
+1293 None ssh-rsa 11key4plc11 user1293-key1
+1294 None ssh-rsa 11key4plc11 user1294-key1
+1295 None ssh-rsa 11key4plc11 user1295-key1
+1296 None ssh-rsa 11key4plc11 user1296-key1
+1297 None ssh-rsa 11key4plc11 user1297-key1
+1298 None ssh-rsa 11key4plc11 user1298-key1
+1299 None ssh-rsa 11key4plc11 user1299-key1
+1300 None ssh-rsa 11key4plc11 user1300-key1
+1301 None ssh-rsa 11key4plc11 user1301-key1
+1302 None ssh-rsa 11key4plc11 user1302-key1
+1303 None ssh-rsa 11key4plc11 user1303-key1
+1304 None ssh-rsa 11key4plc11 user1304-key1
+1305 None ssh-rsa 11key4plc11 user1305-key1
+1306 None ssh-rsa 11key4plc11 user1306-key1
+1307 None ssh-rsa 11key4plc11 user1307-key1
+1308 None ssh-rsa 11key4plc11 user1308-key1
+1309 None ssh-rsa 11key4plc11 user1309-key1
+1310 None ssh-rsa 11key4plc11 user1310-key1
+1311 None ssh-rsa 11key4plc11 user1311-key1
+1312 None ssh-rsa 11key4plc11 user1312-key1
+1313 None ssh-rsa 11key4plc11 user1313-key1
+1314 None ssh-rsa 11key4plc11 user1314-key1
+1315 None ssh-rsa 11key4plc11 user1315-key1
+1316 None ssh-rsa 11key4plc11 user1316-key1
+1317 None ssh-rsa 11key4plc11 user1317-key1
+1318 None ssh-rsa 11key4plc11 user1318-key1
+1319 None ssh-rsa 11key4plc11 user1319-key1
+1320 None ssh-rsa 11key4plc11 user1320-key1
+1321 None ssh-rsa 11key4plc11 user1321-key1
+1322 None ssh-rsa 11key4plc11 user1322-key1
+1323 None ssh-rsa 11key4plc11 user1323-key1
+1324 None ssh-rsa 11key4plc11 user1324-key1
+1325 None ssh-rsa 11key4plc11 user1325-key1
+1326 None ssh-rsa 11key4plc11 user1326-key1
+1327 None ssh-rsa 11key4plc11 user1327-key1
+1328 None ssh-rsa 11key4plc11 user1328-key1
+1329 None ssh-rsa 11key4plc11 user1329-key1
+1330 None ssh-rsa 11key4plc11 user1330-key1
+1331 None ssh-rsa 11key4plc11 user1331-key1
+1332 None ssh-rsa 11key4plc11 user1332-key1
+1333 None ssh-rsa 11key4plc11 user1333-key1
+1334 None ssh-rsa 11key4plc11 user1334-key1
+1335 None ssh-rsa 11key4plc11 user1335-key1
+1336 None ssh-rsa 11key4plc11 user1336-key1
+1337 None ssh-rsa 11key4plc11 user1337-key1
+1338 None ssh-rsa 11key4plc11 user1338-key1
+1339 None ssh-rsa 11key4plc11 user1339-key1
+1340 None ssh-rsa 11key4plc11 user1340-key1
+1341 None ssh-rsa 11key4plc11 user1341-key1
+1342 None ssh-rsa 11key4plc11 user1342-key1
+1343 None ssh-rsa 11key4plc11 user1343-key1
+1344 None ssh-rsa 11key4plc11 user1344-key1
+1345 None ssh-rsa 11key4plc11 user1345-key1
+1346 None ssh-rsa 11key4plc11 user1346-key1
+1347 None ssh-rsa 11key4plc11 user1347-key1
+1348 None ssh-rsa 11key4plc11 user1348-key1
+1349 None ssh-rsa 11key4plc11 user1349-key1
+1350 None ssh-rsa 11key4plc11 user1350-key1
+1351 None ssh-rsa 11key4plc11 user1351-key1
+1352 None ssh-rsa 11key4plc11 user1352-key1
+1353 None ssh-rsa 11key4plc11 user1353-key1
+1354 None ssh-rsa 11key4plc11 user1354-key1
+1355 None ssh-rsa 11key4plc11 user1355-key1
+1356 None ssh-rsa 11key4plc11 user1356-key1
+1357 None ssh-rsa 11key4plc11 user1357-key1
+1358 None ssh-rsa 11key4plc11 user1358-key1
+1359 None ssh-rsa 11key4plc11 user1359-key1
+1360 None ssh-rsa 11key4plc11 user1360-key1
+1361 None ssh-rsa 11key4plc11 user1361-key1
+1362 None ssh-rsa 11key4plc11 user1362-key1
+1363 None ssh-rsa 11key4plc11 user1363-key1
+1364 None ssh-rsa 11key4plc11 user1364-key1
+1365 None ssh-rsa 11key4plc11 user1365-key1
+1366 None ssh-rsa 11key4plc11 user1366-key1
+1367 None ssh-rsa 11key4plc11 user1367-key1
+1368 None ssh-rsa 11key4plc11 user1368-key1
+1369 None ssh-rsa 11key4plc11 user1369-key1
+1370 None ssh-rsa 11key4plc11 user1370-key1
+1371 None ssh-rsa 11key4plc11 user1371-key1
+1372 None ssh-rsa 11key4plc11 user1372-key1
+1373 None ssh-rsa 11key4plc11 user1373-key1
+1374 None ssh-rsa 11key4plc11 user1374-key1
+1375 None ssh-rsa 11key4plc11 user1375-key1
+1376 None ssh-rsa 11key4plc11 user1376-key1
+1377 None ssh-rsa 11key4plc11 user1377-key1
+1378 None ssh-rsa 11key4plc11 user1378-key1
+1379 None ssh-rsa 11key4plc11 user1379-key1
+1380 None ssh-rsa 11key4plc11 user1380-key1
+1381 None ssh-rsa 11key4plc11 user1381-key1
+1382 None ssh-rsa 11key4plc11 user1382-key1
+1383 None ssh-rsa 11key4plc11 user1383-key1
+1384 None ssh-rsa 11key4plc11 user1384-key1
+1385 None ssh-rsa 11key4plc11 user1385-key1
+1386 None ssh-rsa 11key4plc11 user1386-key1
+1387 None ssh-rsa 11key4plc11 user1387-key1
+1388 None ssh-rsa 11key4plc11 user1388-key1
+1389 None ssh-rsa 11key4plc11 user1389-key1
+1390 None ssh-rsa 11key4plc11 user1390-key1
+1391 None ssh-rsa 11key4plc11 user1391-key1
+1392 None ssh-rsa 11key4plc11 user1392-key1
+1393 None ssh-rsa 11key4plc11 user1393-key1
+1394 None ssh-rsa 11key4plc11 user1394-key1
+1395 None ssh-rsa 11key4plc11 user1395-key1
+1396 None ssh-rsa 11key4plc11 user1396-key1
+1397 None ssh-rsa 11key4plc11 user1397-key1
+1398 None ssh-rsa 11key4plc11 user1398-key1
+1399 None ssh-rsa 11key4plc11 user1399-key1
+1400 None ssh-rsa 11key4plc11 user1400-key1
+1401 None ssh-rsa 11key4plc11 user1401-key1
+1402 None ssh-rsa 11key4plc11 user1402-key1
+1403 None ssh-rsa 11key4plc11 user1403-key1
+1404 None ssh-rsa 11key4plc11 user1404-key1
+1405 None ssh-rsa 11key4plc11 user1405-key1
+1406 None ssh-rsa 11key4plc11 user1406-key1
+1407 None ssh-rsa 11key4plc11 user1407-key1
+1408 None ssh-rsa 11key4plc11 user1408-key1
+1409 None ssh-rsa 11key4plc11 user1409-key1
+1410 None ssh-rsa 11key4plc11 user1410-key1
+1411 None ssh-rsa 11key4plc11 user1411-key1
+1412 None ssh-rsa 11key4plc11 user1412-key1
+1413 None ssh-rsa 11key4plc11 user1413-key1
+1414 None ssh-rsa 11key4plc11 user1414-key1
+1415 None ssh-rsa 11key4plc11 user1415-key1
+1416 None ssh-rsa 11key4plc11 user1416-key1
+1417 None ssh-rsa 11key4plc11 user1417-key1
+1418 None ssh-rsa 11key4plc11 user1418-key1
+1419 None ssh-rsa 11key4plc11 user1419-key1
+1420 None ssh-rsa 11key4plc11 user1420-key1
+1421 None ssh-rsa 11key4plc11 user1421-key1
+1422 None ssh-rsa 11key4plc11 user1422-key1
+1423 None ssh-rsa 11key4plc11 user1423-key1
+1424 None ssh-rsa 11key4plc11 user1424-key1
+1425 None ssh-rsa 11key4plc11 user1425-key1
+1426 None ssh-rsa 11key4plc11 user1426-key1
+1427 None ssh-rsa 11key4plc11 user1427-key1
+1428 None ssh-rsa 11key4plc11 user1428-key1
+1429 None ssh-rsa 11key4plc11 user1429-key1
+1430 None ssh-rsa 11key4plc11 user1430-key1
+1431 None ssh-rsa 11key4plc11 user1431-key1
+1432 None ssh-rsa 11key4plc11 user1432-key1
+1433 None ssh-rsa 11key4plc11 user1433-key1
+1434 None ssh-rsa 11key4plc11 user1434-key1
+1435 None ssh-rsa 11key4plc11 user1435-key1
+1436 None ssh-rsa 11key4plc11 user1436-key1
+1437 None ssh-rsa 11key4plc11 user1437-key1
+1438 None ssh-rsa 11key4plc11 user1438-key1
+1439 None ssh-rsa 11key4plc11 user1439-key1
+1440 None ssh-rsa 11key4plc11 user1440-key1
+1441 None ssh-rsa 11key4plc11 user1441-key1
+1442 None ssh-rsa 11key4plc11 user1442-key1
+1443 None ssh-rsa 11key4plc11 user1443-key1
+1444 None ssh-rsa 11key4plc11 user1444-key1
+1445 None ssh-rsa 11key4plc11 user1445-key1
+1446 None ssh-rsa 11key4plc11 user1446-key1
+1447 None ssh-rsa 11key4plc11 user1447-key1
+1448 None ssh-rsa 11key4plc11 user1448-key1
+1449 None ssh-rsa 11key4plc11 user1449-key1
+1450 None ssh-rsa 11key4plc11 user1450-key1
+1451 None ssh-rsa 11key4plc11 user1451-key1
+1452 None ssh-rsa 11key4plc11 user1452-key1
+1453 None ssh-rsa 11key4plc11 user1453-key1
+1454 None ssh-rsa 11key4plc11 user1454-key1
+1455 None ssh-rsa 11key4plc11 user1455-key1
+1456 None ssh-rsa 11key4plc11 user1456-key1
+1457 None ssh-rsa 11key4plc11 user1457-key1
+1458 None ssh-rsa 11key4plc11 user1458-key1
+1459 None ssh-rsa 11key4plc11 user1459-key1
+1460 None ssh-rsa 11key4plc11 user1460-key1
+1461 None ssh-rsa 11key4plc11 user1461-key1
+1462 None ssh-rsa 11key4plc11 user1462-key1
+1463 None ssh-rsa 11key4plc11 user1463-key1
+1464 None ssh-rsa 11key4plc11 user1464-key1
+1465 None ssh-rsa 11key4plc11 user1465-key1
+1466 None ssh-rsa 11key4plc11 user1466-key1
+1467 None ssh-rsa 11key4plc11 user1467-key1
+1468 None ssh-rsa 11key4plc11 user1468-key1
+1469 None ssh-rsa 11key4plc11 user1469-key1
+1470 None ssh-rsa 11key4plc11 user1470-key1
+1471 None ssh-rsa 11key4plc11 user1471-key1
+1472 None ssh-rsa 11key4plc11 user1472-key1
+1473 None ssh-rsa 11key4plc11 user1473-key1
+1474 None ssh-rsa 11key4plc11 user1474-key1
+1475 None ssh-rsa 11key4plc11 user1475-key1
+1476 None ssh-rsa 11key4plc11 user1476-key1
+1477 None ssh-rsa 11key4plc11 user1477-key1
+1478 None ssh-rsa 11key4plc11 user1478-key1
+1479 None ssh-rsa 11key4plc11 user1479-key1
+1480 None ssh-rsa 11key4plc11 user1480-key1
+1481 None ssh-rsa 11key4plc11 user1481-key1
+1482 None ssh-rsa 11key4plc11 user1482-key1
+1483 None ssh-rsa 11key4plc11 user1483-key1
+1484 None ssh-rsa 11key4plc11 user1484-key1
+1485 None ssh-rsa 11key4plc11 user1485-key1
+1486 None ssh-rsa 11key4plc11 user1486-key1
+1487 None ssh-rsa 11key4plc11 user1487-key1
+1488 None ssh-rsa 11key4plc11 user1488-key1
+1489 None ssh-rsa 11key4plc11 user1489-key1
+1490 None ssh-rsa 11key4plc11 user1490-key1
+1491 None ssh-rsa 11key4plc11 user1491-key1
+1492 None ssh-rsa 11key4plc11 user1492-key1
+1493 None ssh-rsa 11key4plc11 user1493-key1
+1494 None ssh-rsa 11key4plc11 user1494-key1
+1495 None ssh-rsa 11key4plc11 user1495-key1
+1496 None ssh-rsa 11key4plc11 user1496-key1
+1497 None ssh-rsa 11key4plc11 user1497-key1
+1498 None ssh-rsa 11key4plc11 user1498-key1
+1499 None ssh-rsa 11key4plc11 user1499-key1
+1500 None ssh-rsa 11key4plc11 user1500-key1
+1501 None ssh-rsa 11key4plc11 user1501-key1
+1502 None ssh-rsa 11key4plc11 user1502-key1
+1503 None ssh-rsa 11key4plc11 user1503-key1
+1504 None ssh-rsa 11key4plc11 user1504-key1
+1505 None ssh-rsa 11key4plc11 user1505-key1
+1506 None ssh-rsa 11key4plc11 user1506-key1
+1507 None ssh-rsa 11key4plc11 user1507-key1
+1508 None ssh-rsa 11key4plc11 user1508-key1
+1509 None ssh-rsa 11key4plc11 user1509-key1
+1510 None ssh-rsa 11key4plc11 user1510-key1
+1511 None ssh-rsa 11key4plc11 user1511-key1
+1512 None ssh-rsa 11key4plc11 user1512-key1
+1513 None ssh-rsa 11key4plc11 user1513-key1
+1514 None ssh-rsa 11key4plc11 user1514-key1
+1515 None ssh-rsa 11key4plc11 user1515-key1
+1516 None ssh-rsa 11key4plc11 user1516-key1
+1517 None ssh-rsa 11key4plc11 user1517-key1
+1518 None ssh-rsa 11key4plc11 user1518-key1
+1519 None ssh-rsa 11key4plc11 user1519-key1
+1520 None ssh-rsa 11key4plc11 user1520-key1
+1521 None ssh-rsa 11key4plc11 user1521-key1
+1522 None ssh-rsa 11key4plc11 user1522-key1
+1523 None ssh-rsa 11key4plc11 user1523-key1
+1524 None ssh-rsa 11key4plc11 user1524-key1
+1525 None ssh-rsa 11key4plc11 user1525-key1
+1526 None ssh-rsa 11key4plc11 user1526-key1
+1527 None ssh-rsa 11key4plc11 user1527-key1
+1528 None ssh-rsa 11key4plc11 user1528-key1
+1529 None ssh-rsa 11key4plc11 user1529-key1
+1530 None ssh-rsa 11key4plc11 user1530-key1
+1531 None ssh-rsa 11key4plc11 user1531-key1
+1532 None ssh-rsa 11key4plc11 user1532-key1
+1533 None ssh-rsa 11key4plc11 user1533-key1
+1534 None ssh-rsa 11key4plc11 user1534-key1
+1535 None ssh-rsa 11key4plc11 user1535-key1
+1536 None ssh-rsa 11key4plc11 user1536-key1
+1537 None ssh-rsa 11key4plc11 user1537-key1
+1538 None ssh-rsa 11key4plc11 user1538-key1
+1539 None ssh-rsa 11key4plc11 user1539-key1
+1540 None ssh-rsa 11key4plc11 user1540-key1
+1541 None ssh-rsa 11key4plc11 user1541-key1
+1542 None ssh-rsa 11key4plc11 user1542-key1
+1543 None ssh-rsa 11key4plc11 user1543-key1
+1544 None ssh-rsa 11key4plc11 user1544-key1
+1545 None ssh-rsa 11key4plc11 user1545-key1
+1546 None ssh-rsa 11key4plc11 user1546-key1
+1547 None ssh-rsa 11key4plc11 user1547-key1
+1548 None ssh-rsa 11key4plc11 user1548-key1
+1549 None ssh-rsa 11key4plc11 user1549-key1
+1550 None ssh-rsa 11key4plc11 user1550-key1
+1551 None ssh-rsa 11key4plc11 user1551-key1
+1552 None ssh-rsa 11key4plc11 user1552-key1
+1553 None ssh-rsa 11key4plc11 user1553-key1
+1554 None ssh-rsa 11key4plc11 user1554-key1
+1555 None ssh-rsa 11key4plc11 user1555-key1
+1556 None ssh-rsa 11key4plc11 user1556-key1
+1557 None ssh-rsa 11key4plc11 user1557-key1
+1558 None ssh-rsa 11key4plc11 user1558-key1
+1559 None ssh-rsa 11key4plc11 user1559-key1
+1560 None ssh-rsa 11key4plc11 user1560-key1
+1561 None ssh-rsa 11key4plc11 user1561-key1
+1562 None ssh-rsa 11key4plc11 user1562-key1
+1563 None ssh-rsa 11key4plc11 user1563-key1
+1564 None ssh-rsa 11key4plc11 user1564-key1
+1565 None ssh-rsa 11key4plc11 user1565-key1
+1566 None ssh-rsa 11key4plc11 user1566-key1
+1567 None ssh-rsa 11key4plc11 user1567-key1
+1568 None ssh-rsa 11key4plc11 user1568-key1
+1569 None ssh-rsa 11key4plc11 user1569-key1
+1570 None ssh-rsa 11key4plc11 user1570-key1
+1571 None ssh-rsa 11key4plc11 user1571-key1
+1572 None ssh-rsa 11key4plc11 user1572-key1
+1573 None ssh-rsa 11key4plc11 user1573-key1
+1574 None ssh-rsa 11key4plc11 user1574-key1
+1575 None ssh-rsa 11key4plc11 user1575-key1
+1576 None ssh-rsa 11key4plc11 user1576-key1
+1577 None ssh-rsa 11key4plc11 user1577-key1
+1578 None ssh-rsa 11key4plc11 user1578-key1
+1579 None ssh-rsa 11key4plc11 user1579-key1
+1580 None ssh-rsa 11key4plc11 user1580-key1
+1581 None ssh-rsa 11key4plc11 user1581-key1
+1582 None ssh-rsa 11key4plc11 user1582-key1
+1583 None ssh-rsa 11key4plc11 user1583-key1
+1584 None ssh-rsa 11key4plc11 user1584-key1
+1585 None ssh-rsa 11key4plc11 user1585-key1
+1586 None ssh-rsa 11key4plc11 user1586-key1
+1587 None ssh-rsa 11key4plc11 user1587-key1
+1588 None ssh-rsa 11key4plc11 user1588-key1
+1589 None ssh-rsa 11key4plc11 user1589-key1
+1590 None ssh-rsa 11key4plc11 user1590-key1
+1591 None ssh-rsa 11key4plc11 user1591-key1
+1592 None ssh-rsa 11key4plc11 user1592-key1
+1593 None ssh-rsa 11key4plc11 user1593-key1
+1594 None ssh-rsa 11key4plc11 user1594-key1
+1595 None ssh-rsa 11key4plc11 user1595-key1
+1596 None ssh-rsa 11key4plc11 user1596-key1
+1597 None ssh-rsa 11key4plc11 user1597-key1
+1598 None ssh-rsa 11key4plc11 user1598-key1
+1599 None ssh-rsa 11key4plc11 user1599-key1
+1600 None ssh-rsa 11key4plc11 user1600-key1
+1601 None ssh-rsa 11key4plc11 user1601-key1
+1602 None ssh-rsa 11key4plc11 user1602-key1
+1603 None ssh-rsa 11key4plc11 user1603-key1
+1604 None ssh-rsa 11key4plc11 user1604-key1
+1605 None ssh-rsa 11key4plc11 user1605-key1
+1606 None ssh-rsa 11key4plc11 user1606-key1
+1607 None ssh-rsa 11key4plc11 user1607-key1
+1608 None ssh-rsa 11key4plc11 user1608-key1
+1609 None ssh-rsa 11key4plc11 user1609-key1
+1610 None ssh-rsa 11key4plc11 user1610-key1
+1611 None ssh-rsa 11key4plc11 user1611-key1
+1612 None ssh-rsa 11key4plc11 user1612-key1
+1613 None ssh-rsa 11key4plc11 user1613-key1
+1614 None ssh-rsa 11key4plc11 user1614-key1
+1615 None ssh-rsa 11key4plc11 user1615-key1
+1616 None ssh-rsa 11key4plc11 user1616-key1
+1617 None ssh-rsa 11key4plc11 user1617-key1
+1618 None ssh-rsa 11key4plc11 user1618-key1
+1619 None ssh-rsa 11key4plc11 user1619-key1
+1620 None ssh-rsa 11key4plc11 user1620-key1
+1621 None ssh-rsa 11key4plc11 user1621-key1
+1622 None ssh-rsa 11key4plc11 user1622-key1
+1623 None ssh-rsa 11key4plc11 user1623-key1
+1624 None ssh-rsa 11key4plc11 user1624-key1
+1625 None ssh-rsa 11key4plc11 user1625-key1
+1626 None ssh-rsa 11key4plc11 user1626-key1
+1627 None ssh-rsa 11key4plc11 user1627-key1
+1628 None ssh-rsa 11key4plc11 user1628-key1
+1629 None ssh-rsa 11key4plc11 user1629-key1
+1630 None ssh-rsa 11key4plc11 user1630-key1
+1631 None ssh-rsa 11key4plc11 user1631-key1
+1632 None ssh-rsa 11key4plc11 user1632-key1
+1633 None ssh-rsa 11key4plc11 user1633-key1
+1634 None ssh-rsa 11key4plc11 user1634-key1
+1635 None ssh-rsa 11key4plc11 user1635-key1
+1636 None ssh-rsa 11key4plc11 user1636-key1
+1637 None ssh-rsa 11key4plc11 user1637-key1
+1638 None ssh-rsa 11key4plc11 user1638-key1
+1639 None ssh-rsa 11key4plc11 user1639-key1
+1640 None ssh-rsa 11key4plc11 user1640-key1
+1641 None ssh-rsa 11key4plc11 user1641-key1
+1642 None ssh-rsa 11key4plc11 user1642-key1
+1643 None ssh-rsa 11key4plc11 user1643-key1
+1644 None ssh-rsa 11key4plc11 user1644-key1
+1645 None ssh-rsa 11key4plc11 user1645-key1
+1646 None ssh-rsa 11key4plc11 user1646-key1
+1647 None ssh-rsa 11key4plc11 user1647-key1
+1648 None ssh-rsa 11key4plc11 user1648-key1
+1649 None ssh-rsa 11key4plc11 user1649-key1
+1650 None ssh-rsa 11key4plc11 user1650-key1
+1651 None ssh-rsa 11key4plc11 user1651-key1
+1652 None ssh-rsa 11key4plc11 user1652-key1
+1653 None ssh-rsa 11key4plc11 user1653-key1
+1654 None ssh-rsa 11key4plc11 user1654-key1
+1655 None ssh-rsa 11key4plc11 user1655-key1
+1656 None ssh-rsa 11key4plc11 user1656-key1
+1657 None ssh-rsa 11key4plc11 user1657-key1
+1658 None ssh-rsa 11key4plc11 user1658-key1
+1659 None ssh-rsa 11key4plc11 user1659-key1
+1660 None ssh-rsa 11key4plc11 user1660-key1
+1661 None ssh-rsa 11key4plc11 user1661-key1
+1662 None ssh-rsa 11key4plc11 user1662-key1
+1663 None ssh-rsa 11key4plc11 user1663-key1
+1664 None ssh-rsa 11key4plc11 user1664-key1
+1665 None ssh-rsa 11key4plc11 user1665-key1
+1666 None ssh-rsa 11key4plc11 user1666-key1
+1667 None ssh-rsa 11key4plc11 user1667-key1
+1668 None ssh-rsa 11key4plc11 user1668-key1
+1669 None ssh-rsa 11key4plc11 user1669-key1
+1670 None ssh-rsa 11key4plc11 user1670-key1
+1671 None ssh-rsa 11key4plc11 user1671-key1
+1672 None ssh-rsa 11key4plc11 user1672-key1
+1673 None ssh-rsa 11key4plc11 user1673-key1
+1674 None ssh-rsa 11key4plc11 user1674-key1
+1675 None ssh-rsa 11key4plc11 user1675-key1
+1676 None ssh-rsa 11key4plc11 user1676-key1
+1677 None ssh-rsa 11key4plc11 user1677-key1
+1678 None ssh-rsa 11key4plc11 user1678-key1
+1679 None ssh-rsa 11key4plc11 user1679-key1
+1680 None ssh-rsa 11key4plc11 user1680-key1
+1681 None ssh-rsa 11key4plc11 user1681-key1
+1682 None ssh-rsa 11key4plc11 user1682-key1
+1683 None ssh-rsa 11key4plc11 user1683-key1
+1684 None ssh-rsa 11key4plc11 user1684-key1
+1685 None ssh-rsa 11key4plc11 user1685-key1
+1686 None ssh-rsa 11key4plc11 user1686-key1
+1687 None ssh-rsa 11key4plc11 user1687-key1
+1688 None ssh-rsa 11key4plc11 user1688-key1
+1689 None ssh-rsa 11key4plc11 user1689-key1
+1690 None ssh-rsa 11key4plc11 user1690-key1
+1691 None ssh-rsa 11key4plc11 user1691-key1
+1692 None ssh-rsa 11key4plc11 user1692-key1
+1693 None ssh-rsa 11key4plc11 user1693-key1
+1694 None ssh-rsa 11key4plc11 user1694-key1
+1695 None ssh-rsa 11key4plc11 user1695-key1
+1696 None ssh-rsa 11key4plc11 user1696-key1
+1697 None ssh-rsa 11key4plc11 user1697-key1
+1698 None ssh-rsa 11key4plc11 user1698-key1
+1699 None ssh-rsa 11key4plc11 user1699-key1
+1700 None ssh-rsa 11key4plc11 user1700-key1
+1701 None ssh-rsa 11key4plc11 user1701-key1
+1702 None ssh-rsa 11key4plc11 user1702-key1
+1703 None ssh-rsa 11key4plc11 user1703-key1
+1704 None ssh-rsa 11key4plc11 user1704-key1
+1705 None ssh-rsa 11key4plc11 user1705-key1
+1706 None ssh-rsa 11key4plc11 user1706-key1
+1707 None ssh-rsa 11key4plc11 user1707-key1
+1708 None ssh-rsa 11key4plc11 user1708-key1
+1709 None ssh-rsa 11key4plc11 user1709-key1
+1710 None ssh-rsa 11key4plc11 user1710-key1
+1711 None ssh-rsa 11key4plc11 user1711-key1
+1712 None ssh-rsa 11key4plc11 user1712-key1
+1713 None ssh-rsa 11key4plc11 user1713-key1
+1714 None ssh-rsa 11key4plc11 user1714-key1
+1715 None ssh-rsa 11key4plc11 user1715-key1
+1716 None ssh-rsa 11key4plc11 user1716-key1
+1717 None ssh-rsa 11key4plc11 user1717-key1
+1718 None ssh-rsa 11key4plc11 user1718-key1
+1719 None ssh-rsa 11key4plc11 user1719-key1
+1720 None ssh-rsa 11key4plc11 user1720-key1
+1721 None ssh-rsa 11key4plc11 user1721-key1
+1722 None ssh-rsa 11key4plc11 user1722-key1
+1723 None ssh-rsa 11key4plc11 user1723-key1
+1724 None ssh-rsa 11key4plc11 user1724-key1
+1725 None ssh-rsa 11key4plc11 user1725-key1
+1726 None ssh-rsa 11key4plc11 user1726-key1
+1727 None ssh-rsa 11key4plc11 user1727-key1
+1728 None ssh-rsa 11key4plc11 user1728-key1
+1729 None ssh-rsa 11key4plc11 user1729-key1
+1730 None ssh-rsa 11key4plc11 user1730-key1
+1731 None ssh-rsa 11key4plc11 user1731-key1
+1732 None ssh-rsa 11key4plc11 user1732-key1
+1733 None ssh-rsa 11key4plc11 user1733-key1
+1734 None ssh-rsa 11key4plc11 user1734-key1
+1735 None ssh-rsa 11key4plc11 user1735-key1
+1736 None ssh-rsa 11key4plc11 user1736-key1
+1737 None ssh-rsa 11key4plc11 user1737-key1
+1738 None ssh-rsa 11key4plc11 user1738-key1
+1739 None ssh-rsa 11key4plc11 user1739-key1
+1740 None ssh-rsa 11key4plc11 user1740-key1
+1741 None ssh-rsa 11key4plc11 user1741-key1
+1742 None ssh-rsa 11key4plc11 user1742-key1
+1743 None ssh-rsa 11key4plc11 user1743-key1
+1744 None ssh-rsa 11key4plc11 user1744-key1
+1745 None ssh-rsa 11key4plc11 user1745-key1
+1746 None ssh-rsa 11key4plc11 user1746-key1
+1747 None ssh-rsa 11key4plc11 user1747-key1
+1748 None ssh-rsa 11key4plc11 user1748-key1
+1749 None ssh-rsa 11key4plc11 user1749-key1
+1750 None ssh-rsa 11key4plc11 user1750-key1
+1751 None ssh-rsa 11key4plc11 user1751-key1
+1752 None ssh-rsa 11key4plc11 user1752-key1
+1753 None ssh-rsa 11key4plc11 user1753-key1
+1754 None ssh-rsa 11key4plc11 user1754-key1
+1755 None ssh-rsa 11key4plc11 user1755-key1
+1756 None ssh-rsa 11key4plc11 user1756-key1
+1757 None ssh-rsa 11key4plc11 user1757-key1
+1758 None ssh-rsa 11key4plc11 user1758-key1
+1759 None ssh-rsa 11key4plc11 user1759-key1
+1760 None ssh-rsa 11key4plc11 user1760-key1
+1761 None ssh-rsa 11key4plc11 user1761-key1
+1762 None ssh-rsa 11key4plc11 user1762-key1
+1763 None ssh-rsa 11key4plc11 user1763-key1
+1764 None ssh-rsa 11key4plc11 user1764-key1
+1765 None ssh-rsa 11key4plc11 user1765-key1
+1766 None ssh-rsa 11key4plc11 user1766-key1
+1767 None ssh-rsa 11key4plc11 user1767-key1
+1768 None ssh-rsa 11key4plc11 user1768-key1
+1769 None ssh-rsa 11key4plc11 user1769-key1
+1770 None ssh-rsa 11key4plc11 user1770-key1
+1771 None ssh-rsa 11key4plc11 user1771-key1
+1772 None ssh-rsa 11key4plc11 user1772-key1
+1773 None ssh-rsa 11key4plc11 user1773-key1
+1774 None ssh-rsa 11key4plc11 user1774-key1
+1775 None ssh-rsa 11key4plc11 user1775-key1
+1776 None ssh-rsa 11key4plc11 user1776-key1
+1777 None ssh-rsa 11key4plc11 user1777-key1
+1778 None ssh-rsa 11key4plc11 user1778-key1
+1779 None ssh-rsa 11key4plc11 user1779-key1
+1780 None ssh-rsa 11key4plc11 user1780-key1
+1781 None ssh-rsa 11key4plc11 user1781-key1
+1782 None ssh-rsa 11key4plc11 user1782-key1
+1783 None ssh-rsa 11key4plc11 user1783-key1
+1784 None ssh-rsa 11key4plc11 user1784-key1
+1785 None ssh-rsa 11key4plc11 user1785-key1
+1786 None ssh-rsa 11key4plc11 user1786-key1
+1787 None ssh-rsa 11key4plc11 user1787-key1
+1788 None ssh-rsa 11key4plc11 user1788-key1
+1789 None ssh-rsa 11key4plc11 user1789-key1
+1790 None ssh-rsa 11key4plc11 user1790-key1
+1791 None ssh-rsa 11key4plc11 user1791-key1
+1792 None ssh-rsa 11key4plc11 user1792-key1
+1793 None ssh-rsa 11key4plc11 user1793-key1
+1794 None ssh-rsa 11key4plc11 user1794-key1
+1795 None ssh-rsa 11key4plc11 user1795-key1
+1796 None ssh-rsa 11key4plc11 user1796-key1
+1797 None ssh-rsa 11key4plc11 user1797-key1
+1798 None ssh-rsa 11key4plc11 user1798-key1
+1799 None ssh-rsa 11key4plc11 user1799-key1
+1800 None ssh-rsa 11key4plc11 user1800-key1
+1801 None ssh-rsa 11key4plc11 user1801-key1
+1802 None ssh-rsa 11key4plc11 user1802-key1
+1803 None ssh-rsa 11key4plc11 user1803-key1
+1804 None ssh-rsa 11key4plc11 user1804-key1
+1805 None ssh-rsa 11key4plc11 user1805-key1
+1806 None ssh-rsa 11key4plc11 user1806-key1
+1807 None ssh-rsa 11key4plc11 user1807-key1
+1808 None ssh-rsa 11key4plc11 user1808-key1
+1809 None ssh-rsa 11key4plc11 user1809-key1
+1810 None ssh-rsa 11key4plc11 user1810-key1
+1811 None ssh-rsa 11key4plc11 user1811-key1
+1812 None ssh-rsa 11key4plc11 user1812-key1
+1813 None ssh-rsa 11key4plc11 user1813-key1
+1814 None ssh-rsa 11key4plc11 user1814-key1
+1815 None ssh-rsa 11key4plc11 user1815-key1
+1816 None ssh-rsa 11key4plc11 user1816-key1
+1817 None ssh-rsa 11key4plc11 user1817-key1
+1818 None ssh-rsa 11key4plc11 user1818-key1
+1819 None ssh-rsa 11key4plc11 user1819-key1
+1820 None ssh-rsa 11key4plc11 user1820-key1
+1821 None ssh-rsa 11key4plc11 user1821-key1
+1822 None ssh-rsa 11key4plc11 user1822-key1
+1823 None ssh-rsa 11key4plc11 user1823-key1
+1824 None ssh-rsa 11key4plc11 user1824-key1
+1825 None ssh-rsa 11key4plc11 user1825-key1
+1826 None ssh-rsa 11key4plc11 user1826-key1
+1827 None ssh-rsa 11key4plc11 user1827-key1
+1828 None ssh-rsa 11key4plc11 user1828-key1
+1829 None ssh-rsa 11key4plc11 user1829-key1
+1830 None ssh-rsa 11key4plc11 user1830-key1
+1831 None ssh-rsa 11key4plc11 user1831-key1
+1832 None ssh-rsa 11key4plc11 user1832-key1
+1833 None ssh-rsa 11key4plc11 user1833-key1
+1834 None ssh-rsa 11key4plc11 user1834-key1
+1835 None ssh-rsa 11key4plc11 user1835-key1
+1836 None ssh-rsa 11key4plc11 user1836-key1
+1837 None ssh-rsa 11key4plc11 user1837-key1
+1838 None ssh-rsa 11key4plc11 user1838-key1
+1839 None ssh-rsa 11key4plc11 user1839-key1
+1840 None ssh-rsa 11key4plc11 user1840-key1
+1841 None ssh-rsa 11key4plc11 user1841-key1
+1842 None ssh-rsa 11key4plc11 user1842-key1
+1843 None ssh-rsa 11key4plc11 user1843-key1
+1844 None ssh-rsa 11key4plc11 user1844-key1
+1845 None ssh-rsa 11key4plc11 user1845-key1
+1846 None ssh-rsa 11key4plc11 user1846-key1
+1847 None ssh-rsa 11key4plc11 user1847-key1
+1848 None ssh-rsa 11key4plc11 user1848-key1
+1849 None ssh-rsa 11key4plc11 user1849-key1
+1850 None ssh-rsa 11key4plc11 user1850-key1
+1851 None ssh-rsa 11key4plc11 user1851-key1
+1852 None ssh-rsa 11key4plc11 user1852-key1
+1853 None ssh-rsa 11key4plc11 user1853-key1
+1854 None ssh-rsa 11key4plc11 user1854-key1
+1855 None ssh-rsa 11key4plc11 user1855-key1
+1856 None ssh-rsa 11key4plc11 user1856-key1
+1857 None ssh-rsa 11key4plc11 user1857-key1
+1858 None ssh-rsa 11key4plc11 user1858-key1
+1859 None ssh-rsa 11key4plc11 user1859-key1
+1860 None ssh-rsa 11key4plc11 user1860-key1
+1861 None ssh-rsa 11key4plc11 user1861-key1
+1862 None ssh-rsa 11key4plc11 user1862-key1
+1863 None ssh-rsa 11key4plc11 user1863-key1
+1864 None ssh-rsa 11key4plc11 user1864-key1
+1865 None ssh-rsa 11key4plc11 user1865-key1
+1866 None ssh-rsa 11key4plc11 user1866-key1
+1867 None ssh-rsa 11key4plc11 user1867-key1
+1868 None ssh-rsa 11key4plc11 user1868-key1
+1869 None ssh-rsa 11key4plc11 user1869-key1
+1870 None ssh-rsa 11key4plc11 user1870-key1
+1871 None ssh-rsa 11key4plc11 user1871-key1
+1872 None ssh-rsa 11key4plc11 user1872-key1
+1873 None ssh-rsa 11key4plc11 user1873-key1
+1874 None ssh-rsa 11key4plc11 user1874-key1
+1875 None ssh-rsa 11key4plc11 user1875-key1
+1876 None ssh-rsa 11key4plc11 user1876-key1
+1877 None ssh-rsa 11key4plc11 user1877-key1
+1878 None ssh-rsa 11key4plc11 user1878-key1
+1879 None ssh-rsa 11key4plc11 user1879-key1
+1880 None ssh-rsa 11key4plc11 user1880-key1
+1881 None ssh-rsa 11key4plc11 user1881-key1
+1882 None ssh-rsa 11key4plc11 user1882-key1
+1883 None ssh-rsa 11key4plc11 user1883-key1
+1884 None ssh-rsa 11key4plc11 user1884-key1
+1885 None ssh-rsa 11key4plc11 user1885-key1
+1886 None ssh-rsa 11key4plc11 user1886-key1
+1887 None ssh-rsa 11key4plc11 user1887-key1
+1888 None ssh-rsa 11key4plc11 user1888-key1
+1889 None ssh-rsa 11key4plc11 user1889-key1
+1890 None ssh-rsa 11key4plc11 user1890-key1
+1891 None ssh-rsa 11key4plc11 user1891-key1
+1892 None ssh-rsa 11key4plc11 user1892-key1
+1893 None ssh-rsa 11key4plc11 user1893-key1
+1894 None ssh-rsa 11key4plc11 user1894-key1
+1895 None ssh-rsa 11key4plc11 user1895-key1
+1896 None ssh-rsa 11key4plc11 user1896-key1
+1897 None ssh-rsa 11key4plc11 user1897-key1
+1898 None ssh-rsa 11key4plc11 user1898-key1
+1899 None ssh-rsa 11key4plc11 user1899-key1
+1900 None ssh-rsa 11key4plc11 user1900-key1
+1901 None ssh-rsa 11key4plc11 user1901-key1
+1902 None ssh-rsa 11key4plc11 user1902-key1
+1903 None ssh-rsa 11key4plc11 user1903-key1
+1904 None ssh-rsa 11key4plc11 user1904-key1
+1905 None ssh-rsa 11key4plc11 user1905-key1
+1906 None ssh-rsa 11key4plc11 user1906-key1
+1907 None ssh-rsa 11key4plc11 user1907-key1
+1908 None ssh-rsa 11key4plc11 user1908-key1
+1909 None ssh-rsa 11key4plc11 user1909-key1
+1910 None ssh-rsa 11key4plc11 user1910-key1
+1911 None ssh-rsa 11key4plc11 user1911-key1
+1912 None ssh-rsa 11key4plc11 user1912-key1
+1913 None ssh-rsa 11key4plc11 user1913-key1
+1914 None ssh-rsa 11key4plc11 user1914-key1
+1915 None ssh-rsa 11key4plc11 user1915-key1
+1916 None ssh-rsa 11key4plc11 user1916-key1
+1917 None ssh-rsa 11key4plc11 user1917-key1
+1918 None ssh-rsa 11key4plc11 user1918-key1
+1919 None ssh-rsa 11key4plc11 user1919-key1
+1920 None ssh-rsa 11key4plc11 user1920-key1
+1921 None ssh-rsa 11key4plc11 user1921-key1
+1922 None ssh-rsa 11key4plc11 user1922-key1
+1923 None ssh-rsa 11key4plc11 user1923-key1
+1924 None ssh-rsa 11key4plc11 user1924-key1
+1925 None ssh-rsa 11key4plc11 user1925-key1
+1926 None ssh-rsa 11key4plc11 user1926-key1
+1927 None ssh-rsa 11key4plc11 user1927-key1
+1928 None ssh-rsa 11key4plc11 user1928-key1
+1929 None ssh-rsa 11key4plc11 user1929-key1
+1930 None ssh-rsa 11key4plc11 user1930-key1
+1931 None ssh-rsa 11key4plc11 user1931-key1
+1932 None ssh-rsa 11key4plc11 user1932-key1
+1933 None ssh-rsa 11key4plc11 user1933-key1
+1934 None ssh-rsa 11key4plc11 user1934-key1
+1935 None ssh-rsa 11key4plc11 user1935-key1
+1936 None ssh-rsa 11key4plc11 user1936-key1
+1937 None ssh-rsa 11key4plc11 user1937-key1
+1938 None ssh-rsa 11key4plc11 user1938-key1
+1939 None ssh-rsa 11key4plc11 user1939-key1
+1940 None ssh-rsa 11key4plc11 user1940-key1
+1941 None ssh-rsa 11key4plc11 user1941-key1
+1942 None ssh-rsa 11key4plc11 user1942-key1
+1943 None ssh-rsa 11key4plc11 user1943-key1
+1944 None ssh-rsa 11key4plc11 user1944-key1
+1945 None ssh-rsa 11key4plc11 user1945-key1
+1946 None ssh-rsa 11key4plc11 user1946-key1
+1947 None ssh-rsa 11key4plc11 user1947-key1
+1948 None ssh-rsa 11key4plc11 user1948-key1
+1949 None ssh-rsa 11key4plc11 user1949-key1
+1950 None ssh-rsa 11key4plc11 user1950-key1
+1951 None ssh-rsa 11key4plc11 user1951-key1
+1952 None ssh-rsa 11key4plc11 user1952-key1
+1953 None ssh-rsa 11key4plc11 user1953-key1
+1954 None ssh-rsa 11key4plc11 user1954-key1
+1955 None ssh-rsa 11key4plc11 user1955-key1
+1956 None ssh-rsa 11key4plc11 user1956-key1
+1957 None ssh-rsa 11key4plc11 user1957-key1
+1958 None ssh-rsa 11key4plc11 user1958-key1
+1959 None ssh-rsa 11key4plc11 user1959-key1
+1960 None ssh-rsa 11key4plc11 user1960-key1
+1961 None ssh-rsa 11key4plc11 user1961-key1
+1962 None ssh-rsa 11key4plc11 user1962-key1
+1963 None ssh-rsa 11key4plc11 user1963-key1
+1964 None ssh-rsa 11key4plc11 user1964-key1
+1965 None ssh-rsa 11key4plc11 user1965-key1
+1966 None ssh-rsa 11key4plc11 user1966-key1
+1967 None ssh-rsa 11key4plc11 user1967-key1
+1968 None ssh-rsa 11key4plc11 user1968-key1
+1969 None ssh-rsa 11key4plc11 user1969-key1
+1970 None ssh-rsa 11key4plc11 user1970-key1
+1971 None ssh-rsa 11key4plc11 user1971-key1
+1972 None ssh-rsa 11key4plc11 user1972-key1
+1973 None ssh-rsa 11key4plc11 user1973-key1
+1974 None ssh-rsa 11key4plc11 user1974-key1
+1975 None ssh-rsa 11key4plc11 user1975-key1
+1976 None ssh-rsa 11key4plc11 user1976-key1
+1977 None ssh-rsa 11key4plc11 user1977-key1
+1978 None ssh-rsa 11key4plc11 user1978-key1
+1979 None ssh-rsa 11key4plc11 user1979-key1
+1980 None ssh-rsa 11key4plc11 user1980-key1
+1981 None ssh-rsa 11key4plc11 user1981-key1
+1982 None ssh-rsa 11key4plc11 user1982-key1
+1983 None ssh-rsa 11key4plc11 user1983-key1
+1984 None ssh-rsa 11key4plc11 user1984-key1
+1985 None ssh-rsa 11key4plc11 user1985-key1
+1986 None ssh-rsa 11key4plc11 user1986-key1
+1987 None ssh-rsa 11key4plc11 user1987-key1
+1988 None ssh-rsa 11key4plc11 user1988-key1
+1989 None ssh-rsa 11key4plc11 user1989-key1
+1990 None ssh-rsa 11key4plc11 user1990-key1
+1991 None ssh-rsa 11key4plc11 user1991-key1
+1992 None ssh-rsa 11key4plc11 user1992-key1
+1993 None ssh-rsa 11key4plc11 user1993-key1
+1994 None ssh-rsa 11key4plc11 user1994-key1
+1995 None ssh-rsa 11key4plc11 user1995-key1
+1996 None ssh-rsa 11key4plc11 user1996-key1
+1997 None ssh-rsa 11key4plc11 user1997-key1
+1998 None ssh-rsa 11key4plc11 user1998-key1
+1999 None ssh-rsa 11key4plc11 user1999-key1
+2000 None ssh-rsa 11key4plc11 user2000-key1
+2001 1 ssh-rsa 22key4plc22 user1-key1
+2002 1 ssh-rsa 22key4plc22 user2-key1
+2003 1 ssh-rsa 22key4plc22 user3-key1
+2004 1 ssh-rsa 22key4plc22 user4-key1
+2005 1 ssh-rsa 22key4plc22 user5-key1
+2006 1 ssh-rsa 22key4plc22 user6-key1
+2007 1 ssh-rsa 22key4plc22 user7-key1
+2008 1 ssh-rsa 22key4plc22 user8-key1
+2009 1 ssh-rsa 22key4plc22 user9-key1
+2010 1 ssh-rsa 22key4plc22 user10-key1
+2011 1 ssh-rsa 22key4plc22 user11-key1
+2012 1 ssh-rsa 22key4plc22 user12-key1
+2013 1 ssh-rsa 22key4plc22 user13-key1
+2014 1 ssh-rsa 22key4plc22 user14-key1
+2015 1 ssh-rsa 22key4plc22 user15-key1
+2016 1 ssh-rsa 22key4plc22 user16-key1
+2017 1 ssh-rsa 22key4plc22 user17-key1
+2018 1 ssh-rsa 22key4plc22 user18-key1
+2019 1 ssh-rsa 22key4plc22 user19-key1
+2020 1 ssh-rsa 22key4plc22 user20-key1
+2021 1 ssh-rsa 22key4plc22 user21-key1
+2022 1 ssh-rsa 22key4plc22 user22-key1
+2023 1 ssh-rsa 22key4plc22 user23-key1
+2024 1 ssh-rsa 22key4plc22 user24-key1
+2025 1 ssh-rsa 22key4plc22 user25-key1
+2026 1 ssh-rsa 22key4plc22 user26-key1
+2027 1 ssh-rsa 22key4plc22 user27-key1
+2028 1 ssh-rsa 22key4plc22 user28-key1
+2029 1 ssh-rsa 22key4plc22 user29-key1
+2030 1 ssh-rsa 22key4plc22 user30-key1
+2031 1 ssh-rsa 22key4plc22 user31-key1
+2032 1 ssh-rsa 22key4plc22 user32-key1
+2033 1 ssh-rsa 22key4plc22 user33-key1
+2034 1 ssh-rsa 22key4plc22 user34-key1
+2035 1 ssh-rsa 22key4plc22 user35-key1
+2036 1 ssh-rsa 22key4plc22 user36-key1
+2037 1 ssh-rsa 22key4plc22 user37-key1
+2038 1 ssh-rsa 22key4plc22 user38-key1
+2039 1 ssh-rsa 22key4plc22 user39-key1
+2040 1 ssh-rsa 22key4plc22 user40-key1
+2041 1 ssh-rsa 22key4plc22 user41-key1
+2042 1 ssh-rsa 22key4plc22 user42-key1
+2043 1 ssh-rsa 22key4plc22 user43-key1
+2044 1 ssh-rsa 22key4plc22 user44-key1
+2045 1 ssh-rsa 22key4plc22 user45-key1
+2046 1 ssh-rsa 22key4plc22 user46-key1
+2047 1 ssh-rsa 22key4plc22 user47-key1
+2048 1 ssh-rsa 22key4plc22 user48-key1
+2049 1 ssh-rsa 22key4plc22 user49-key1
+2050 1 ssh-rsa 22key4plc22 user50-key1
+2051 1 ssh-rsa 22key4plc22 user51-key1
+2052 1 ssh-rsa 22key4plc22 user52-key1
+2053 1 ssh-rsa 22key4plc22 user53-key1
+2054 1 ssh-rsa 22key4plc22 user54-key1
+2055 1 ssh-rsa 22key4plc22 user55-key1
+2056 1 ssh-rsa 22key4plc22 user56-key1
+2057 1 ssh-rsa 22key4plc22 user57-key1
+2058 1 ssh-rsa 22key4plc22 user58-key1
+2059 1 ssh-rsa 22key4plc22 user59-key1
+2060 1 ssh-rsa 22key4plc22 user60-key1
+2061 1 ssh-rsa 22key4plc22 user61-key1
+2062 1 ssh-rsa 22key4plc22 user62-key1
+2063 1 ssh-rsa 22key4plc22 user63-key1
+2064 1 ssh-rsa 22key4plc22 user64-key1
+2065 1 ssh-rsa 22key4plc22 user65-key1
+2066 1 ssh-rsa 22key4plc22 user66-key1
+2067 1 ssh-rsa 22key4plc22 user67-key1
+2068 1 ssh-rsa 22key4plc22 user68-key1
+2069 1 ssh-rsa 22key4plc22 user69-key1
+2070 1 ssh-rsa 22key4plc22 user70-key1
+2071 1 ssh-rsa 22key4plc22 user71-key1
+2072 1 ssh-rsa 22key4plc22 user72-key1
+2073 1 ssh-rsa 22key4plc22 user73-key1
+2074 1 ssh-rsa 22key4plc22 user74-key1
+2075 1 ssh-rsa 22key4plc22 user75-key1
+2076 1 ssh-rsa 22key4plc22 user76-key1
+2077 1 ssh-rsa 22key4plc22 user77-key1
+2078 1 ssh-rsa 22key4plc22 user78-key1
+2079 1 ssh-rsa 22key4plc22 user79-key1
+2080 1 ssh-rsa 22key4plc22 user80-key1
+2081 1 ssh-rsa 22key4plc22 user81-key1
+2082 1 ssh-rsa 22key4plc22 user82-key1
+2083 1 ssh-rsa 22key4plc22 user83-key1
+2084 1 ssh-rsa 22key4plc22 user84-key1
+2085 1 ssh-rsa 22key4plc22 user85-key1
+2086 1 ssh-rsa 22key4plc22 user86-key1
+2087 1 ssh-rsa 22key4plc22 user87-key1
+2088 1 ssh-rsa 22key4plc22 user88-key1
+2089 1 ssh-rsa 22key4plc22 user89-key1
+2090 1 ssh-rsa 22key4plc22 user90-key1
+2091 1 ssh-rsa 22key4plc22 user91-key1
+2092 1 ssh-rsa 22key4plc22 user92-key1
+2093 1 ssh-rsa 22key4plc22 user93-key1
+2094 1 ssh-rsa 22key4plc22 user94-key1
+2095 1 ssh-rsa 22key4plc22 user95-key1
+2096 1 ssh-rsa 22key4plc22 user96-key1
+2097 1 ssh-rsa 22key4plc22 user97-key1
+2098 1 ssh-rsa 22key4plc22 user98-key1
+2099 1 ssh-rsa 22key4plc22 user99-key1
+2100 1 ssh-rsa 22key4plc22 user100-key1
+2101 1 ssh-rsa 22key4plc22 user101-key1
+2102 1 ssh-rsa 22key4plc22 user102-key1
+2103 1 ssh-rsa 22key4plc22 user103-key1
+2104 1 ssh-rsa 22key4plc22 user104-key1
+2105 1 ssh-rsa 22key4plc22 user105-key1
+2106 1 ssh-rsa 22key4plc22 user106-key1
+2107 1 ssh-rsa 22key4plc22 user107-key1
+2108 1 ssh-rsa 22key4plc22 user108-key1
+2109 1 ssh-rsa 22key4plc22 user109-key1
+2110 1 ssh-rsa 22key4plc22 user110-key1
+2111 1 ssh-rsa 22key4plc22 user111-key1
+2112 1 ssh-rsa 22key4plc22 user112-key1
+2113 1 ssh-rsa 22key4plc22 user113-key1
+2114 1 ssh-rsa 22key4plc22 user114-key1
+2115 1 ssh-rsa 22key4plc22 user115-key1
+2116 1 ssh-rsa 22key4plc22 user116-key1
+2117 1 ssh-rsa 22key4plc22 user117-key1
+2118 1 ssh-rsa 22key4plc22 user118-key1
+2119 1 ssh-rsa 22key4plc22 user119-key1
+2120 1 ssh-rsa 22key4plc22 user120-key1
+2121 1 ssh-rsa 22key4plc22 user121-key1
+2122 1 ssh-rsa 22key4plc22 user122-key1
+2123 1 ssh-rsa 22key4plc22 user123-key1
+2124 1 ssh-rsa 22key4plc22 user124-key1
+2125 1 ssh-rsa 22key4plc22 user125-key1
+2126 1 ssh-rsa 22key4plc22 user126-key1
+2127 1 ssh-rsa 22key4plc22 user127-key1
+2128 1 ssh-rsa 22key4plc22 user128-key1
+2129 1 ssh-rsa 22key4plc22 user129-key1
+2130 1 ssh-rsa 22key4plc22 user130-key1
+2131 1 ssh-rsa 22key4plc22 user131-key1
+2132 1 ssh-rsa 22key4plc22 user132-key1
+2133 1 ssh-rsa 22key4plc22 user133-key1
+2134 1 ssh-rsa 22key4plc22 user134-key1
+2135 1 ssh-rsa 22key4plc22 user135-key1
+2136 1 ssh-rsa 22key4plc22 user136-key1
+2137 1 ssh-rsa 22key4plc22 user137-key1
+2138 1 ssh-rsa 22key4plc22 user138-key1
+2139 1 ssh-rsa 22key4plc22 user139-key1
+2140 1 ssh-rsa 22key4plc22 user140-key1
+2141 1 ssh-rsa 22key4plc22 user141-key1
+2142 1 ssh-rsa 22key4plc22 user142-key1
+2143 1 ssh-rsa 22key4plc22 user143-key1
+2144 1 ssh-rsa 22key4plc22 user144-key1
+2145 1 ssh-rsa 22key4plc22 user145-key1
+2146 1 ssh-rsa 22key4plc22 user146-key1
+2147 1 ssh-rsa 22key4plc22 user147-key1
+2148 1 ssh-rsa 22key4plc22 user148-key1
+2149 1 ssh-rsa 22key4plc22 user149-key1
+2150 1 ssh-rsa 22key4plc22 user150-key1
+2151 1 ssh-rsa 22key4plc22 user151-key1
+2152 1 ssh-rsa 22key4plc22 user152-key1
+2153 1 ssh-rsa 22key4plc22 user153-key1
+2154 1 ssh-rsa 22key4plc22 user154-key1
+2155 1 ssh-rsa 22key4plc22 user155-key1
+2156 1 ssh-rsa 22key4plc22 user156-key1
+2157 1 ssh-rsa 22key4plc22 user157-key1
+2158 1 ssh-rsa 22key4plc22 user158-key1
+2159 1 ssh-rsa 22key4plc22 user159-key1
+2160 1 ssh-rsa 22key4plc22 user160-key1
+2161 1 ssh-rsa 22key4plc22 user161-key1
+2162 1 ssh-rsa 22key4plc22 user162-key1
+2163 1 ssh-rsa 22key4plc22 user163-key1
+2164 1 ssh-rsa 22key4plc22 user164-key1
+2165 1 ssh-rsa 22key4plc22 user165-key1
+2166 1 ssh-rsa 22key4plc22 user166-key1
+2167 1 ssh-rsa 22key4plc22 user167-key1
+2168 1 ssh-rsa 22key4plc22 user168-key1
+2169 1 ssh-rsa 22key4plc22 user169-key1
+2170 1 ssh-rsa 22key4plc22 user170-key1
+2171 1 ssh-rsa 22key4plc22 user171-key1
+2172 1 ssh-rsa 22key4plc22 user172-key1
+2173 1 ssh-rsa 22key4plc22 user173-key1
+2174 1 ssh-rsa 22key4plc22 user174-key1
+2175 1 ssh-rsa 22key4plc22 user175-key1
+2176 1 ssh-rsa 22key4plc22 user176-key1
+2177 1 ssh-rsa 22key4plc22 user177-key1
+2178 1 ssh-rsa 22key4plc22 user178-key1
+2179 1 ssh-rsa 22key4plc22 user179-key1
+2180 1 ssh-rsa 22key4plc22 user180-key1
+2181 1 ssh-rsa 22key4plc22 user181-key1
+2182 1 ssh-rsa 22key4plc22 user182-key1
+2183 1 ssh-rsa 22key4plc22 user183-key1
+2184 1 ssh-rsa 22key4plc22 user184-key1
+2185 1 ssh-rsa 22key4plc22 user185-key1
+2186 1 ssh-rsa 22key4plc22 user186-key1
+2187 1 ssh-rsa 22key4plc22 user187-key1
+2188 1 ssh-rsa 22key4plc22 user188-key1
+2189 1 ssh-rsa 22key4plc22 user189-key1
+2190 1 ssh-rsa 22key4plc22 user190-key1
+2191 1 ssh-rsa 22key4plc22 user191-key1
+2192 1 ssh-rsa 22key4plc22 user192-key1
+2193 1 ssh-rsa 22key4plc22 user193-key1
+2194 1 ssh-rsa 22key4plc22 user194-key1
+2195 1 ssh-rsa 22key4plc22 user195-key1
+2196 1 ssh-rsa 22key4plc22 user196-key1
+2197 1 ssh-rsa 22key4plc22 user197-key1
+2198 1 ssh-rsa 22key4plc22 user198-key1
+2199 1 ssh-rsa 22key4plc22 user199-key1
+2200 1 ssh-rsa 22key4plc22 user200-key1
+2201 1 ssh-rsa 22key4plc22 user201-key1
+2202 1 ssh-rsa 22key4plc22 user202-key1
+2203 1 ssh-rsa 22key4plc22 user203-key1
+2204 1 ssh-rsa 22key4plc22 user204-key1
+2205 1 ssh-rsa 22key4plc22 user205-key1
+2206 1 ssh-rsa 22key4plc22 user206-key1
+2207 1 ssh-rsa 22key4plc22 user207-key1
+2208 1 ssh-rsa 22key4plc22 user208-key1
+2209 1 ssh-rsa 22key4plc22 user209-key1
+2210 1 ssh-rsa 22key4plc22 user210-key1
+2211 1 ssh-rsa 22key4plc22 user211-key1
+2212 1 ssh-rsa 22key4plc22 user212-key1
+2213 1 ssh-rsa 22key4plc22 user213-key1
+2214 1 ssh-rsa 22key4plc22 user214-key1
+2215 1 ssh-rsa 22key4plc22 user215-key1
+2216 1 ssh-rsa 22key4plc22 user216-key1
+2217 1 ssh-rsa 22key4plc22 user217-key1
+2218 1 ssh-rsa 22key4plc22 user218-key1
+2219 1 ssh-rsa 22key4plc22 user219-key1
+2220 1 ssh-rsa 22key4plc22 user220-key1
+2221 1 ssh-rsa 22key4plc22 user221-key1
+2222 1 ssh-rsa 22key4plc22 user222-key1
+2223 1 ssh-rsa 22key4plc22 user223-key1
+2224 1 ssh-rsa 22key4plc22 user224-key1
+2225 1 ssh-rsa 22key4plc22 user225-key1
+2226 1 ssh-rsa 22key4plc22 user226-key1
+2227 1 ssh-rsa 22key4plc22 user227-key1
+2228 1 ssh-rsa 22key4plc22 user228-key1
+2229 1 ssh-rsa 22key4plc22 user229-key1
+2230 1 ssh-rsa 22key4plc22 user230-key1
+2231 1 ssh-rsa 22key4plc22 user231-key1
+2232 1 ssh-rsa 22key4plc22 user232-key1
+2233 1 ssh-rsa 22key4plc22 user233-key1
+2234 1 ssh-rsa 22key4plc22 user234-key1
+2235 1 ssh-rsa 22key4plc22 user235-key1
+2236 1 ssh-rsa 22key4plc22 user236-key1
+2237 1 ssh-rsa 22key4plc22 user237-key1
+2238 1 ssh-rsa 22key4plc22 user238-key1
+2239 1 ssh-rsa 22key4plc22 user239-key1
+2240 1 ssh-rsa 22key4plc22 user240-key1
+2241 1 ssh-rsa 22key4plc22 user241-key1
+2242 1 ssh-rsa 22key4plc22 user242-key1
+2243 1 ssh-rsa 22key4plc22 user243-key1
+2244 1 ssh-rsa 22key4plc22 user244-key1
+2245 1 ssh-rsa 22key4plc22 user245-key1
+2246 1 ssh-rsa 22key4plc22 user246-key1
+2247 1 ssh-rsa 22key4plc22 user247-key1
+2248 1 ssh-rsa 22key4plc22 user248-key1
+2249 1 ssh-rsa 22key4plc22 user249-key1
+2250 1 ssh-rsa 22key4plc22 user250-key1
+2251 1 ssh-rsa 22key4plc22 user251-key1
+2252 1 ssh-rsa 22key4plc22 user252-key1
+2253 1 ssh-rsa 22key4plc22 user253-key1
+2254 1 ssh-rsa 22key4plc22 user254-key1
+2255 1 ssh-rsa 22key4plc22 user255-key1
+2256 1 ssh-rsa 22key4plc22 user256-key1
+2257 1 ssh-rsa 22key4plc22 user257-key1
+2258 1 ssh-rsa 22key4plc22 user258-key1
+2259 1 ssh-rsa 22key4plc22 user259-key1
+2260 1 ssh-rsa 22key4plc22 user260-key1
+2261 1 ssh-rsa 22key4plc22 user261-key1
+2262 1 ssh-rsa 22key4plc22 user262-key1
+2263 1 ssh-rsa 22key4plc22 user263-key1
+2264 1 ssh-rsa 22key4plc22 user264-key1
+2265 1 ssh-rsa 22key4plc22 user265-key1
+2266 1 ssh-rsa 22key4plc22 user266-key1
+2267 1 ssh-rsa 22key4plc22 user267-key1
+2268 1 ssh-rsa 22key4plc22 user268-key1
+2269 1 ssh-rsa 22key4plc22 user269-key1
+2270 1 ssh-rsa 22key4plc22 user270-key1
+2271 1 ssh-rsa 22key4plc22 user271-key1
+2272 1 ssh-rsa 22key4plc22 user272-key1
+2273 1 ssh-rsa 22key4plc22 user273-key1
+2274 1 ssh-rsa 22key4plc22 user274-key1
+2275 1 ssh-rsa 22key4plc22 user275-key1
+2276 1 ssh-rsa 22key4plc22 user276-key1
+2277 1 ssh-rsa 22key4plc22 user277-key1
+2278 1 ssh-rsa 22key4plc22 user278-key1
+2279 1 ssh-rsa 22key4plc22 user279-key1
+2280 1 ssh-rsa 22key4plc22 user280-key1
+2281 1 ssh-rsa 22key4plc22 user281-key1
+2282 1 ssh-rsa 22key4plc22 user282-key1
+2283 1 ssh-rsa 22key4plc22 user283-key1
+2284 1 ssh-rsa 22key4plc22 user284-key1
+2285 1 ssh-rsa 22key4plc22 user285-key1
+2286 1 ssh-rsa 22key4plc22 user286-key1
+2287 1 ssh-rsa 22key4plc22 user287-key1
+2288 1 ssh-rsa 22key4plc22 user288-key1
+2289 1 ssh-rsa 22key4plc22 user289-key1
+2290 1 ssh-rsa 22key4plc22 user290-key1
+2291 1 ssh-rsa 22key4plc22 user291-key1
+2292 1 ssh-rsa 22key4plc22 user292-key1
+2293 1 ssh-rsa 22key4plc22 user293-key1
+2294 1 ssh-rsa 22key4plc22 user294-key1
+2295 1 ssh-rsa 22key4plc22 user295-key1
+2296 1 ssh-rsa 22key4plc22 user296-key1
+2297 1 ssh-rsa 22key4plc22 user297-key1
+2298 1 ssh-rsa 22key4plc22 user298-key1
+2299 1 ssh-rsa 22key4plc22 user299-key1
+2300 1 ssh-rsa 22key4plc22 user300-key1
+2301 1 ssh-rsa 22key4plc22 user301-key1
+2302 1 ssh-rsa 22key4plc22 user302-key1
+2303 1 ssh-rsa 22key4plc22 user303-key1
+2304 1 ssh-rsa 22key4plc22 user304-key1
+2305 1 ssh-rsa 22key4plc22 user305-key1
+2306 1 ssh-rsa 22key4plc22 user306-key1
+2307 1 ssh-rsa 22key4plc22 user307-key1
+2308 1 ssh-rsa 22key4plc22 user308-key1
+2309 1 ssh-rsa 22key4plc22 user309-key1
+2310 1 ssh-rsa 22key4plc22 user310-key1
+2311 1 ssh-rsa 22key4plc22 user311-key1
+2312 1 ssh-rsa 22key4plc22 user312-key1
+2313 1 ssh-rsa 22key4plc22 user313-key1
+2314 1 ssh-rsa 22key4plc22 user314-key1
+2315 1 ssh-rsa 22key4plc22 user315-key1
+2316 1 ssh-rsa 22key4plc22 user316-key1
+2317 1 ssh-rsa 22key4plc22 user317-key1
+2318 1 ssh-rsa 22key4plc22 user318-key1
+2319 1 ssh-rsa 22key4plc22 user319-key1
+2320 1 ssh-rsa 22key4plc22 user320-key1
+2321 1 ssh-rsa 22key4plc22 user321-key1
+2322 1 ssh-rsa 22key4plc22 user322-key1
+2323 1 ssh-rsa 22key4plc22 user323-key1
+2324 1 ssh-rsa 22key4plc22 user324-key1
+2325 1 ssh-rsa 22key4plc22 user325-key1
+2326 1 ssh-rsa 22key4plc22 user326-key1
+2327 1 ssh-rsa 22key4plc22 user327-key1
+2328 1 ssh-rsa 22key4plc22 user328-key1
+2329 1 ssh-rsa 22key4plc22 user329-key1
+2330 1 ssh-rsa 22key4plc22 user330-key1
+2331 1 ssh-rsa 22key4plc22 user331-key1
+2332 1 ssh-rsa 22key4plc22 user332-key1
+2333 1 ssh-rsa 22key4plc22 user333-key1
+2334 1 ssh-rsa 22key4plc22 user334-key1
+2335 1 ssh-rsa 22key4plc22 user335-key1
+2336 1 ssh-rsa 22key4plc22 user336-key1
+2337 1 ssh-rsa 22key4plc22 user337-key1
+2338 1 ssh-rsa 22key4plc22 user338-key1
+2339 1 ssh-rsa 22key4plc22 user339-key1
+2340 1 ssh-rsa 22key4plc22 user340-key1
+2341 1 ssh-rsa 22key4plc22 user341-key1
+2342 1 ssh-rsa 22key4plc22 user342-key1
+2343 1 ssh-rsa 22key4plc22 user343-key1
+2344 1 ssh-rsa 22key4plc22 user344-key1
+2345 1 ssh-rsa 22key4plc22 user345-key1
+2346 1 ssh-rsa 22key4plc22 user346-key1
+2347 1 ssh-rsa 22key4plc22 user347-key1
+2348 1 ssh-rsa 22key4plc22 user348-key1
+2349 1 ssh-rsa 22key4plc22 user349-key1
+2350 1 ssh-rsa 22key4plc22 user350-key1
+2351 1 ssh-rsa 22key4plc22 user351-key1
+2352 1 ssh-rsa 22key4plc22 user352-key1
+2353 1 ssh-rsa 22key4plc22 user353-key1
+2354 1 ssh-rsa 22key4plc22 user354-key1
+2355 1 ssh-rsa 22key4plc22 user355-key1
+2356 1 ssh-rsa 22key4plc22 user356-key1
+2357 1 ssh-rsa 22key4plc22 user357-key1
+2358 1 ssh-rsa 22key4plc22 user358-key1
+2359 1 ssh-rsa 22key4plc22 user359-key1
+2360 1 ssh-rsa 22key4plc22 user360-key1
+2361 1 ssh-rsa 22key4plc22 user361-key1
+2362 1 ssh-rsa 22key4plc22 user362-key1
+2363 1 ssh-rsa 22key4plc22 user363-key1
+2364 1 ssh-rsa 22key4plc22 user364-key1
+2365 1 ssh-rsa 22key4plc22 user365-key1
+2366 1 ssh-rsa 22key4plc22 user366-key1
+2367 1 ssh-rsa 22key4plc22 user367-key1
+2368 1 ssh-rsa 22key4plc22 user368-key1
+2369 1 ssh-rsa 22key4plc22 user369-key1
+2370 1 ssh-rsa 22key4plc22 user370-key1
+2371 1 ssh-rsa 22key4plc22 user371-key1
+2372 1 ssh-rsa 22key4plc22 user372-key1
+2373 1 ssh-rsa 22key4plc22 user373-key1
+2374 1 ssh-rsa 22key4plc22 user374-key1
+2375 1 ssh-rsa 22key4plc22 user375-key1
+2376 1 ssh-rsa 22key4plc22 user376-key1
+2377 1 ssh-rsa 22key4plc22 user377-key1
+2378 1 ssh-rsa 22key4plc22 user378-key1
+2379 1 ssh-rsa 22key4plc22 user379-key1
+2380 1 ssh-rsa 22key4plc22 user380-key1
+2381 1 ssh-rsa 22key4plc22 user381-key1
+2382 1 ssh-rsa 22key4plc22 user382-key1
+2383 1 ssh-rsa 22key4plc22 user383-key1
+2384 1 ssh-rsa 22key4plc22 user384-key1
+2385 1 ssh-rsa 22key4plc22 user385-key1
+2386 1 ssh-rsa 22key4plc22 user386-key1
+2387 1 ssh-rsa 22key4plc22 user387-key1
+2388 1 ssh-rsa 22key4plc22 user388-key1
+2389 1 ssh-rsa 22key4plc22 user389-key1
+2390 1 ssh-rsa 22key4plc22 user390-key1
+2391 1 ssh-rsa 22key4plc22 user391-key1
+2392 1 ssh-rsa 22key4plc22 user392-key1
+2393 1 ssh-rsa 22key4plc22 user393-key1
+2394 1 ssh-rsa 22key4plc22 user394-key1
+2395 1 ssh-rsa 22key4plc22 user395-key1
+2396 1 ssh-rsa 22key4plc22 user396-key1
+2397 1 ssh-rsa 22key4plc22 user397-key1
+2398 1 ssh-rsa 22key4plc22 user398-key1
+2399 1 ssh-rsa 22key4plc22 user399-key1
+2400 1 ssh-rsa 22key4plc22 user400-key1
+2401 1 ssh-rsa 22key4plc22 user401-key1
+2402 1 ssh-rsa 22key4plc22 user402-key1
+2403 1 ssh-rsa 22key4plc22 user403-key1
+2404 1 ssh-rsa 22key4plc22 user404-key1
+2405 1 ssh-rsa 22key4plc22 user405-key1
+2406 1 ssh-rsa 22key4plc22 user406-key1
+2407 1 ssh-rsa 22key4plc22 user407-key1
+2408 1 ssh-rsa 22key4plc22 user408-key1
+2409 1 ssh-rsa 22key4plc22 user409-key1
+2410 1 ssh-rsa 22key4plc22 user410-key1
+2411 1 ssh-rsa 22key4plc22 user411-key1
+2412 1 ssh-rsa 22key4plc22 user412-key1
+2413 1 ssh-rsa 22key4plc22 user413-key1
+2414 1 ssh-rsa 22key4plc22 user414-key1
+2415 1 ssh-rsa 22key4plc22 user415-key1
+2416 1 ssh-rsa 22key4plc22 user416-key1
+2417 1 ssh-rsa 22key4plc22 user417-key1
+2418 1 ssh-rsa 22key4plc22 user418-key1
+2419 1 ssh-rsa 22key4plc22 user419-key1
+2420 1 ssh-rsa 22key4plc22 user420-key1
+2421 1 ssh-rsa 22key4plc22 user421-key1
+2422 1 ssh-rsa 22key4plc22 user422-key1
+2423 1 ssh-rsa 22key4plc22 user423-key1
+2424 1 ssh-rsa 22key4plc22 user424-key1
+2425 1 ssh-rsa 22key4plc22 user425-key1
+2426 1 ssh-rsa 22key4plc22 user426-key1
+2427 1 ssh-rsa 22key4plc22 user427-key1
+2428 1 ssh-rsa 22key4plc22 user428-key1
+2429 1 ssh-rsa 22key4plc22 user429-key1
+2430 1 ssh-rsa 22key4plc22 user430-key1
+2431 1 ssh-rsa 22key4plc22 user431-key1
+2432 1 ssh-rsa 22key4plc22 user432-key1
+2433 1 ssh-rsa 22key4plc22 user433-key1
+2434 1 ssh-rsa 22key4plc22 user434-key1
+2435 1 ssh-rsa 22key4plc22 user435-key1
+2436 1 ssh-rsa 22key4plc22 user436-key1
+2437 1 ssh-rsa 22key4plc22 user437-key1
+2438 1 ssh-rsa 22key4plc22 user438-key1
+2439 1 ssh-rsa 22key4plc22 user439-key1
+2440 1 ssh-rsa 22key4plc22 user440-key1
+2441 1 ssh-rsa 22key4plc22 user441-key1
+2442 1 ssh-rsa 22key4plc22 user442-key1
+2443 1 ssh-rsa 22key4plc22 user443-key1
+2444 1 ssh-rsa 22key4plc22 user444-key1
+2445 1 ssh-rsa 22key4plc22 user445-key1
+2446 1 ssh-rsa 22key4plc22 user446-key1
+2447 1 ssh-rsa 22key4plc22 user447-key1
+2448 1 ssh-rsa 22key4plc22 user448-key1
+2449 1 ssh-rsa 22key4plc22 user449-key1
+2450 1 ssh-rsa 22key4plc22 user450-key1
+2451 1 ssh-rsa 22key4plc22 user451-key1
+2452 1 ssh-rsa 22key4plc22 user452-key1
+2453 1 ssh-rsa 22key4plc22 user453-key1
+2454 1 ssh-rsa 22key4plc22 user454-key1
+2455 1 ssh-rsa 22key4plc22 user455-key1
+2456 1 ssh-rsa 22key4plc22 user456-key1
+2457 1 ssh-rsa 22key4plc22 user457-key1
+2458 1 ssh-rsa 22key4plc22 user458-key1
+2459 1 ssh-rsa 22key4plc22 user459-key1
+2460 1 ssh-rsa 22key4plc22 user460-key1
+2461 1 ssh-rsa 22key4plc22 user461-key1
+2462 1 ssh-rsa 22key4plc22 user462-key1
+2463 1 ssh-rsa 22key4plc22 user463-key1
+2464 1 ssh-rsa 22key4plc22 user464-key1
+2465 1 ssh-rsa 22key4plc22 user465-key1
+2466 1 ssh-rsa 22key4plc22 user466-key1
+2467 1 ssh-rsa 22key4plc22 user467-key1
+2468 1 ssh-rsa 22key4plc22 user468-key1
+2469 1 ssh-rsa 22key4plc22 user469-key1
+2470 1 ssh-rsa 22key4plc22 user470-key1
+2471 1 ssh-rsa 22key4plc22 user471-key1
+2472 1 ssh-rsa 22key4plc22 user472-key1
+2473 1 ssh-rsa 22key4plc22 user473-key1
+2474 1 ssh-rsa 22key4plc22 user474-key1
+2475 1 ssh-rsa 22key4plc22 user475-key1
+2476 1 ssh-rsa 22key4plc22 user476-key1
+2477 1 ssh-rsa 22key4plc22 user477-key1
+2478 1 ssh-rsa 22key4plc22 user478-key1
+2479 1 ssh-rsa 22key4plc22 user479-key1
+2480 1 ssh-rsa 22key4plc22 user480-key1
+2481 1 ssh-rsa 22key4plc22 user481-key1
+2482 1 ssh-rsa 22key4plc22 user482-key1
+2483 1 ssh-rsa 22key4plc22 user483-key1
+2484 1 ssh-rsa 22key4plc22 user484-key1
+2485 1 ssh-rsa 22key4plc22 user485-key1
+2486 1 ssh-rsa 22key4plc22 user486-key1
+2487 1 ssh-rsa 22key4plc22 user487-key1
+2488 1 ssh-rsa 22key4plc22 user488-key1
+2489 1 ssh-rsa 22key4plc22 user489-key1
+2490 1 ssh-rsa 22key4plc22 user490-key1
+2491 1 ssh-rsa 22key4plc22 user491-key1
+2492 1 ssh-rsa 22key4plc22 user492-key1
+2493 1 ssh-rsa 22key4plc22 user493-key1
+2494 1 ssh-rsa 22key4plc22 user494-key1
+2495 1 ssh-rsa 22key4plc22 user495-key1
+2496 1 ssh-rsa 22key4plc22 user496-key1
+2497 1 ssh-rsa 22key4plc22 user497-key1
+2498 1 ssh-rsa 22key4plc22 user498-key1
+2499 1 ssh-rsa 22key4plc22 user499-key1
+2500 1 ssh-rsa 22key4plc22 user500-key1
+2501 1 ssh-rsa 22key4plc22 user501-key1
+2502 1 ssh-rsa 22key4plc22 user502-key1
+2503 1 ssh-rsa 22key4plc22 user503-key1
+2504 1 ssh-rsa 22key4plc22 user504-key1
+2505 1 ssh-rsa 22key4plc22 user505-key1
+2506 1 ssh-rsa 22key4plc22 user506-key1
+2507 1 ssh-rsa 22key4plc22 user507-key1
+2508 1 ssh-rsa 22key4plc22 user508-key1
+2509 1 ssh-rsa 22key4plc22 user509-key1
+2510 1 ssh-rsa 22key4plc22 user510-key1
+2511 1 ssh-rsa 22key4plc22 user511-key1
+2512 1 ssh-rsa 22key4plc22 user512-key1
+2513 1 ssh-rsa 22key4plc22 user513-key1
+2514 1 ssh-rsa 22key4plc22 user514-key1
+2515 1 ssh-rsa 22key4plc22 user515-key1
+2516 1 ssh-rsa 22key4plc22 user516-key1
+2517 1 ssh-rsa 22key4plc22 user517-key1
+2518 1 ssh-rsa 22key4plc22 user518-key1
+2519 1 ssh-rsa 22key4plc22 user519-key1
+2520 1 ssh-rsa 22key4plc22 user520-key1
+2521 1 ssh-rsa 22key4plc22 user521-key1
+2522 1 ssh-rsa 22key4plc22 user522-key1
+2523 1 ssh-rsa 22key4plc22 user523-key1
+2524 1 ssh-rsa 22key4plc22 user524-key1
+2525 1 ssh-rsa 22key4plc22 user525-key1
+2526 1 ssh-rsa 22key4plc22 user526-key1
+2527 1 ssh-rsa 22key4plc22 user527-key1
+2528 1 ssh-rsa 22key4plc22 user528-key1
+2529 1 ssh-rsa 22key4plc22 user529-key1
+2530 1 ssh-rsa 22key4plc22 user530-key1
+2531 1 ssh-rsa 22key4plc22 user531-key1
+2532 1 ssh-rsa 22key4plc22 user532-key1
+2533 1 ssh-rsa 22key4plc22 user533-key1
+2534 1 ssh-rsa 22key4plc22 user534-key1
+2535 1 ssh-rsa 22key4plc22 user535-key1
+2536 1 ssh-rsa 22key4plc22 user536-key1
+2537 1 ssh-rsa 22key4plc22 user537-key1
+2538 1 ssh-rsa 22key4plc22 user538-key1
+2539 1 ssh-rsa 22key4plc22 user539-key1
+2540 1 ssh-rsa 22key4plc22 user540-key1
+2541 1 ssh-rsa 22key4plc22 user541-key1
+2542 1 ssh-rsa 22key4plc22 user542-key1
+2543 1 ssh-rsa 22key4plc22 user543-key1
+2544 1 ssh-rsa 22key4plc22 user544-key1
+2545 1 ssh-rsa 22key4plc22 user545-key1
+2546 1 ssh-rsa 22key4plc22 user546-key1
+2547 1 ssh-rsa 22key4plc22 user547-key1
+2548 1 ssh-rsa 22key4plc22 user548-key1
+2549 1 ssh-rsa 22key4plc22 user549-key1
+2550 1 ssh-rsa 22key4plc22 user550-key1
+2551 1 ssh-rsa 22key4plc22 user551-key1
+2552 1 ssh-rsa 22key4plc22 user552-key1
+2553 1 ssh-rsa 22key4plc22 user553-key1
+2554 1 ssh-rsa 22key4plc22 user554-key1
+2555 1 ssh-rsa 22key4plc22 user555-key1
+2556 1 ssh-rsa 22key4plc22 user556-key1
+2557 1 ssh-rsa 22key4plc22 user557-key1
+2558 1 ssh-rsa 22key4plc22 user558-key1
+2559 1 ssh-rsa 22key4plc22 user559-key1
+2560 1 ssh-rsa 22key4plc22 user560-key1
+2561 1 ssh-rsa 22key4plc22 user561-key1
+2562 1 ssh-rsa 22key4plc22 user562-key1
+2563 1 ssh-rsa 22key4plc22 user563-key1
+2564 1 ssh-rsa 22key4plc22 user564-key1
+2565 1 ssh-rsa 22key4plc22 user565-key1
+2566 1 ssh-rsa 22key4plc22 user566-key1
+2567 1 ssh-rsa 22key4plc22 user567-key1
+2568 1 ssh-rsa 22key4plc22 user568-key1
+2569 1 ssh-rsa 22key4plc22 user569-key1
+2570 1 ssh-rsa 22key4plc22 user570-key1
+2571 1 ssh-rsa 22key4plc22 user571-key1
+2572 1 ssh-rsa 22key4plc22 user572-key1
+2573 1 ssh-rsa 22key4plc22 user573-key1
+2574 1 ssh-rsa 22key4plc22 user574-key1
+2575 1 ssh-rsa 22key4plc22 user575-key1
+2576 1 ssh-rsa 22key4plc22 user576-key1
+2577 1 ssh-rsa 22key4plc22 user577-key1
+2578 1 ssh-rsa 22key4plc22 user578-key1
+2579 1 ssh-rsa 22key4plc22 user579-key1
+2580 1 ssh-rsa 22key4plc22 user580-key1
+2581 1 ssh-rsa 22key4plc22 user581-key1
+2582 1 ssh-rsa 22key4plc22 user582-key1
+2583 1 ssh-rsa 22key4plc22 user583-key1
+2584 1 ssh-rsa 22key4plc22 user584-key1
+2585 1 ssh-rsa 22key4plc22 user585-key1
+2586 1 ssh-rsa 22key4plc22 user586-key1
+2587 1 ssh-rsa 22key4plc22 user587-key1
+2588 1 ssh-rsa 22key4plc22 user588-key1
+2589 1 ssh-rsa 22key4plc22 user589-key1
+2590 1 ssh-rsa 22key4plc22 user590-key1
+2591 1 ssh-rsa 22key4plc22 user591-key1
+2592 1 ssh-rsa 22key4plc22 user592-key1
+2593 1 ssh-rsa 22key4plc22 user593-key1
+2594 1 ssh-rsa 22key4plc22 user594-key1
+2595 1 ssh-rsa 22key4plc22 user595-key1
+2596 1 ssh-rsa 22key4plc22 user596-key1
+2597 1 ssh-rsa 22key4plc22 user597-key1
+2598 1 ssh-rsa 22key4plc22 user598-key1
+2599 1 ssh-rsa 22key4plc22 user599-key1
+2600 1 ssh-rsa 22key4plc22 user600-key1
+2601 1 ssh-rsa 22key4plc22 user601-key1
+2602 1 ssh-rsa 22key4plc22 user602-key1
+2603 1 ssh-rsa 22key4plc22 user603-key1
+2604 1 ssh-rsa 22key4plc22 user604-key1
+2605 1 ssh-rsa 22key4plc22 user605-key1
+2606 1 ssh-rsa 22key4plc22 user606-key1
+2607 1 ssh-rsa 22key4plc22 user607-key1
+2608 1 ssh-rsa 22key4plc22 user608-key1
+2609 1 ssh-rsa 22key4plc22 user609-key1
+2610 1 ssh-rsa 22key4plc22 user610-key1
+2611 1 ssh-rsa 22key4plc22 user611-key1
+2612 1 ssh-rsa 22key4plc22 user612-key1
+2613 1 ssh-rsa 22key4plc22 user613-key1
+2614 1 ssh-rsa 22key4plc22 user614-key1
+2615 1 ssh-rsa 22key4plc22 user615-key1
+2616 1 ssh-rsa 22key4plc22 user616-key1
+2617 1 ssh-rsa 22key4plc22 user617-key1
+2618 1 ssh-rsa 22key4plc22 user618-key1
+2619 1 ssh-rsa 22key4plc22 user619-key1
+2620 1 ssh-rsa 22key4plc22 user620-key1
+2621 1 ssh-rsa 22key4plc22 user621-key1
+2622 1 ssh-rsa 22key4plc22 user622-key1
+2623 1 ssh-rsa 22key4plc22 user623-key1
+2624 1 ssh-rsa 22key4plc22 user624-key1
+2625 1 ssh-rsa 22key4plc22 user625-key1
+2626 1 ssh-rsa 22key4plc22 user626-key1
+2627 1 ssh-rsa 22key4plc22 user627-key1
+2628 1 ssh-rsa 22key4plc22 user628-key1
+2629 1 ssh-rsa 22key4plc22 user629-key1
+2630 1 ssh-rsa 22key4plc22 user630-key1
+2631 1 ssh-rsa 22key4plc22 user631-key1
+2632 1 ssh-rsa 22key4plc22 user632-key1
+2633 1 ssh-rsa 22key4plc22 user633-key1
+2634 1 ssh-rsa 22key4plc22 user634-key1
+2635 1 ssh-rsa 22key4plc22 user635-key1
+2636 1 ssh-rsa 22key4plc22 user636-key1
+2637 1 ssh-rsa 22key4plc22 user637-key1
+2638 1 ssh-rsa 22key4plc22 user638-key1
+2639 1 ssh-rsa 22key4plc22 user639-key1
+2640 1 ssh-rsa 22key4plc22 user640-key1
+2641 1 ssh-rsa 22key4plc22 user641-key1
+2642 1 ssh-rsa 22key4plc22 user642-key1
+2643 1 ssh-rsa 22key4plc22 user643-key1
+2644 1 ssh-rsa 22key4plc22 user644-key1
+2645 1 ssh-rsa 22key4plc22 user645-key1
+2646 1 ssh-rsa 22key4plc22 user646-key1
+2647 1 ssh-rsa 22key4plc22 user647-key1
+2648 1 ssh-rsa 22key4plc22 user648-key1
+2649 1 ssh-rsa 22key4plc22 user649-key1
+2650 1 ssh-rsa 22key4plc22 user650-key1
+2651 1 ssh-rsa 22key4plc22 user651-key1
+2652 1 ssh-rsa 22key4plc22 user652-key1
+2653 1 ssh-rsa 22key4plc22 user653-key1
+2654 1 ssh-rsa 22key4plc22 user654-key1
+2655 1 ssh-rsa 22key4plc22 user655-key1
+2656 1 ssh-rsa 22key4plc22 user656-key1
+2657 1 ssh-rsa 22key4plc22 user657-key1
+2658 1 ssh-rsa 22key4plc22 user658-key1
+2659 1 ssh-rsa 22key4plc22 user659-key1
+2660 1 ssh-rsa 22key4plc22 user660-key1
+2661 1 ssh-rsa 22key4plc22 user661-key1
+2662 1 ssh-rsa 22key4plc22 user662-key1
+2663 1 ssh-rsa 22key4plc22 user663-key1
+2664 1 ssh-rsa 22key4plc22 user664-key1
+2665 1 ssh-rsa 22key4plc22 user665-key1
+2666 1 ssh-rsa 22key4plc22 user666-key1
+2667 1 ssh-rsa 22key4plc22 user667-key1
+2668 1 ssh-rsa 22key4plc22 user668-key1
+2669 1 ssh-rsa 22key4plc22 user669-key1
+2670 1 ssh-rsa 22key4plc22 user670-key1
+2671 1 ssh-rsa 22key4plc22 user671-key1
+2672 1 ssh-rsa 22key4plc22 user672-key1
+2673 1 ssh-rsa 22key4plc22 user673-key1
+2674 1 ssh-rsa 22key4plc22 user674-key1
+2675 1 ssh-rsa 22key4plc22 user675-key1
+2676 1 ssh-rsa 22key4plc22 user676-key1
+2677 1 ssh-rsa 22key4plc22 user677-key1
+2678 1 ssh-rsa 22key4plc22 user678-key1
+2679 1 ssh-rsa 22key4plc22 user679-key1
+2680 1 ssh-rsa 22key4plc22 user680-key1
+2681 1 ssh-rsa 22key4plc22 user681-key1
+2682 1 ssh-rsa 22key4plc22 user682-key1
+2683 1 ssh-rsa 22key4plc22 user683-key1
+2684 1 ssh-rsa 22key4plc22 user684-key1
+2685 1 ssh-rsa 22key4plc22 user685-key1
+2686 1 ssh-rsa 22key4plc22 user686-key1
+2687 1 ssh-rsa 22key4plc22 user687-key1
+2688 1 ssh-rsa 22key4plc22 user688-key1
+2689 1 ssh-rsa 22key4plc22 user689-key1
+2690 1 ssh-rsa 22key4plc22 user690-key1
+2691 1 ssh-rsa 22key4plc22 user691-key1
+2692 1 ssh-rsa 22key4plc22 user692-key1
+2693 1 ssh-rsa 22key4plc22 user693-key1
+2694 1 ssh-rsa 22key4plc22 user694-key1
+2695 1 ssh-rsa 22key4plc22 user695-key1
+2696 1 ssh-rsa 22key4plc22 user696-key1
+2697 1 ssh-rsa 22key4plc22 user697-key1
+2698 1 ssh-rsa 22key4plc22 user698-key1
+2699 1 ssh-rsa 22key4plc22 user699-key1
+2700 1 ssh-rsa 22key4plc22 user700-key1
+2701 1 ssh-rsa 22key4plc22 user701-key1
+2702 1 ssh-rsa 22key4plc22 user702-key1
+2703 1 ssh-rsa 22key4plc22 user703-key1
+2704 1 ssh-rsa 22key4plc22 user704-key1
+2705 1 ssh-rsa 22key4plc22 user705-key1
+2706 1 ssh-rsa 22key4plc22 user706-key1
+2707 1 ssh-rsa 22key4plc22 user707-key1
+2708 1 ssh-rsa 22key4plc22 user708-key1
+2709 1 ssh-rsa 22key4plc22 user709-key1
+2710 1 ssh-rsa 22key4plc22 user710-key1
+2711 1 ssh-rsa 22key4plc22 user711-key1
+2712 1 ssh-rsa 22key4plc22 user712-key1
+2713 1 ssh-rsa 22key4plc22 user713-key1
+2714 1 ssh-rsa 22key4plc22 user714-key1
+2715 1 ssh-rsa 22key4plc22 user715-key1
+2716 1 ssh-rsa 22key4plc22 user716-key1
+2717 1 ssh-rsa 22key4plc22 user717-key1
+2718 1 ssh-rsa 22key4plc22 user718-key1
+2719 1 ssh-rsa 22key4plc22 user719-key1
+2720 1 ssh-rsa 22key4plc22 user720-key1
+2721 1 ssh-rsa 22key4plc22 user721-key1
+2722 1 ssh-rsa 22key4plc22 user722-key1
+2723 1 ssh-rsa 22key4plc22 user723-key1
+2724 1 ssh-rsa 22key4plc22 user724-key1
+2725 1 ssh-rsa 22key4plc22 user725-key1
+2726 1 ssh-rsa 22key4plc22 user726-key1
+2727 1 ssh-rsa 22key4plc22 user727-key1
+2728 1 ssh-rsa 22key4plc22 user728-key1
+2729 1 ssh-rsa 22key4plc22 user729-key1
+2730 1 ssh-rsa 22key4plc22 user730-key1
+2731 1 ssh-rsa 22key4plc22 user731-key1
+2732 1 ssh-rsa 22key4plc22 user732-key1
+2733 1 ssh-rsa 22key4plc22 user733-key1
+2734 1 ssh-rsa 22key4plc22 user734-key1
+2735 1 ssh-rsa 22key4plc22 user735-key1
+2736 1 ssh-rsa 22key4plc22 user736-key1
+2737 1 ssh-rsa 22key4plc22 user737-key1
+2738 1 ssh-rsa 22key4plc22 user738-key1
+2739 1 ssh-rsa 22key4plc22 user739-key1
+2740 1 ssh-rsa 22key4plc22 user740-key1
+2741 1 ssh-rsa 22key4plc22 user741-key1
+2742 1 ssh-rsa 22key4plc22 user742-key1
+2743 1 ssh-rsa 22key4plc22 user743-key1
+2744 1 ssh-rsa 22key4plc22 user744-key1
+2745 1 ssh-rsa 22key4plc22 user745-key1
+2746 1 ssh-rsa 22key4plc22 user746-key1
+2747 1 ssh-rsa 22key4plc22 user747-key1
+2748 1 ssh-rsa 22key4plc22 user748-key1
+2749 1 ssh-rsa 22key4plc22 user749-key1
+2750 1 ssh-rsa 22key4plc22 user750-key1
+2751 1 ssh-rsa 22key4plc22 user751-key1
+2752 1 ssh-rsa 22key4plc22 user752-key1
+2753 1 ssh-rsa 22key4plc22 user753-key1
+2754 1 ssh-rsa 22key4plc22 user754-key1
+2755 1 ssh-rsa 22key4plc22 user755-key1
+2756 1 ssh-rsa 22key4plc22 user756-key1
+2757 1 ssh-rsa 22key4plc22 user757-key1
+2758 1 ssh-rsa 22key4plc22 user758-key1
+2759 1 ssh-rsa 22key4plc22 user759-key1
+2760 1 ssh-rsa 22key4plc22 user760-key1
+2761 1 ssh-rsa 22key4plc22 user761-key1
+2762 1 ssh-rsa 22key4plc22 user762-key1
+2763 1 ssh-rsa 22key4plc22 user763-key1
+2764 1 ssh-rsa 22key4plc22 user764-key1
+2765 1 ssh-rsa 22key4plc22 user765-key1
+2766 1 ssh-rsa 22key4plc22 user766-key1
+2767 1 ssh-rsa 22key4plc22 user767-key1
+2768 1 ssh-rsa 22key4plc22 user768-key1
+2769 1 ssh-rsa 22key4plc22 user769-key1
+2770 1 ssh-rsa 22key4plc22 user770-key1
+2771 1 ssh-rsa 22key4plc22 user771-key1
+2772 1 ssh-rsa 22key4plc22 user772-key1
+2773 1 ssh-rsa 22key4plc22 user773-key1
+2774 1 ssh-rsa 22key4plc22 user774-key1
+2775 1 ssh-rsa 22key4plc22 user775-key1
+2776 1 ssh-rsa 22key4plc22 user776-key1
+2777 1 ssh-rsa 22key4plc22 user777-key1
+2778 1 ssh-rsa 22key4plc22 user778-key1
+2779 1 ssh-rsa 22key4plc22 user779-key1
+2780 1 ssh-rsa 22key4plc22 user780-key1
+2781 1 ssh-rsa 22key4plc22 user781-key1
+2782 1 ssh-rsa 22key4plc22 user782-key1
+2783 1 ssh-rsa 22key4plc22 user783-key1
+2784 1 ssh-rsa 22key4plc22 user784-key1
+2785 1 ssh-rsa 22key4plc22 user785-key1
+2786 1 ssh-rsa 22key4plc22 user786-key1
+2787 1 ssh-rsa 22key4plc22 user787-key1
+2788 1 ssh-rsa 22key4plc22 user788-key1
+2789 1 ssh-rsa 22key4plc22 user789-key1
+2790 1 ssh-rsa 22key4plc22 user790-key1
+2791 1 ssh-rsa 22key4plc22 user791-key1
+2792 1 ssh-rsa 22key4plc22 user792-key1
+2793 1 ssh-rsa 22key4plc22 user793-key1
+2794 1 ssh-rsa 22key4plc22 user794-key1
+2795 1 ssh-rsa 22key4plc22 user795-key1
+2796 1 ssh-rsa 22key4plc22 user796-key1
+2797 1 ssh-rsa 22key4plc22 user797-key1
+2798 1 ssh-rsa 22key4plc22 user798-key1
+2799 1 ssh-rsa 22key4plc22 user799-key1
+2800 1 ssh-rsa 22key4plc22 user800-key1
+2801 1 ssh-rsa 22key4plc22 user801-key1
+2802 1 ssh-rsa 22key4plc22 user802-key1
+2803 1 ssh-rsa 22key4plc22 user803-key1
+2804 1 ssh-rsa 22key4plc22 user804-key1
+2805 1 ssh-rsa 22key4plc22 user805-key1
+2806 1 ssh-rsa 22key4plc22 user806-key1
+2807 1 ssh-rsa 22key4plc22 user807-key1
+2808 1 ssh-rsa 22key4plc22 user808-key1
+2809 1 ssh-rsa 22key4plc22 user809-key1
+2810 1 ssh-rsa 22key4plc22 user810-key1
+2811 1 ssh-rsa 22key4plc22 user811-key1
+2812 1 ssh-rsa 22key4plc22 user812-key1
+2813 1 ssh-rsa 22key4plc22 user813-key1
+2814 1 ssh-rsa 22key4plc22 user814-key1
+2815 1 ssh-rsa 22key4plc22 user815-key1
+2816 1 ssh-rsa 22key4plc22 user816-key1
+2817 1 ssh-rsa 22key4plc22 user817-key1
+2818 1 ssh-rsa 22key4plc22 user818-key1
+2819 1 ssh-rsa 22key4plc22 user819-key1
+2820 1 ssh-rsa 22key4plc22 user820-key1
+2821 1 ssh-rsa 22key4plc22 user821-key1
+2822 1 ssh-rsa 22key4plc22 user822-key1
+2823 1 ssh-rsa 22key4plc22 user823-key1
+2824 1 ssh-rsa 22key4plc22 user824-key1
+2825 1 ssh-rsa 22key4plc22 user825-key1
+2826 1 ssh-rsa 22key4plc22 user826-key1
+2827 1 ssh-rsa 22key4plc22 user827-key1
+2828 1 ssh-rsa 22key4plc22 user828-key1
+2829 1 ssh-rsa 22key4plc22 user829-key1
+2830 1 ssh-rsa 22key4plc22 user830-key1
+2831 1 ssh-rsa 22key4plc22 user831-key1
+2832 1 ssh-rsa 22key4plc22 user832-key1
+2833 1 ssh-rsa 22key4plc22 user833-key1
+2834 1 ssh-rsa 22key4plc22 user834-key1
+2835 1 ssh-rsa 22key4plc22 user835-key1
+2836 1 ssh-rsa 22key4plc22 user836-key1
+2837 1 ssh-rsa 22key4plc22 user837-key1
+2838 1 ssh-rsa 22key4plc22 user838-key1
+2839 1 ssh-rsa 22key4plc22 user839-key1
+2840 1 ssh-rsa 22key4plc22 user840-key1
+2841 1 ssh-rsa 22key4plc22 user841-key1
+2842 1 ssh-rsa 22key4plc22 user842-key1
+2843 1 ssh-rsa 22key4plc22 user843-key1
+2844 1 ssh-rsa 22key4plc22 user844-key1
+2845 1 ssh-rsa 22key4plc22 user845-key1
+2846 1 ssh-rsa 22key4plc22 user846-key1
+2847 1 ssh-rsa 22key4plc22 user847-key1
+2848 1 ssh-rsa 22key4plc22 user848-key1
+2849 1 ssh-rsa 22key4plc22 user849-key1
+2850 1 ssh-rsa 22key4plc22 user850-key1
+2851 1 ssh-rsa 22key4plc22 user851-key1
+2852 1 ssh-rsa 22key4plc22 user852-key1
+2853 1 ssh-rsa 22key4plc22 user853-key1
+2854 1 ssh-rsa 22key4plc22 user854-key1
+2855 1 ssh-rsa 22key4plc22 user855-key1
+2856 1 ssh-rsa 22key4plc22 user856-key1
+2857 1 ssh-rsa 22key4plc22 user857-key1
+2858 1 ssh-rsa 22key4plc22 user858-key1
+2859 1 ssh-rsa 22key4plc22 user859-key1
+2860 1 ssh-rsa 22key4plc22 user860-key1
+2861 1 ssh-rsa 22key4plc22 user861-key1
+2862 1 ssh-rsa 22key4plc22 user862-key1
+2863 1 ssh-rsa 22key4plc22 user863-key1
+2864 1 ssh-rsa 22key4plc22 user864-key1
+2865 1 ssh-rsa 22key4plc22 user865-key1
+2866 1 ssh-rsa 22key4plc22 user866-key1
+2867 1 ssh-rsa 22key4plc22 user867-key1
+2868 1 ssh-rsa 22key4plc22 user868-key1
+2869 1 ssh-rsa 22key4plc22 user869-key1
+2870 1 ssh-rsa 22key4plc22 user870-key1
+2871 1 ssh-rsa 22key4plc22 user871-key1
+2872 1 ssh-rsa 22key4plc22 user872-key1
+2873 1 ssh-rsa 22key4plc22 user873-key1
+2874 1 ssh-rsa 22key4plc22 user874-key1
+2875 1 ssh-rsa 22key4plc22 user875-key1
+2876 1 ssh-rsa 22key4plc22 user876-key1
+2877 1 ssh-rsa 22key4plc22 user877-key1
+2878 1 ssh-rsa 22key4plc22 user878-key1
+2879 1 ssh-rsa 22key4plc22 user879-key1
+2880 1 ssh-rsa 22key4plc22 user880-key1
+2881 1 ssh-rsa 22key4plc22 user881-key1
+2882 1 ssh-rsa 22key4plc22 user882-key1
+2883 1 ssh-rsa 22key4plc22 user883-key1
+2884 1 ssh-rsa 22key4plc22 user884-key1
+2885 1 ssh-rsa 22key4plc22 user885-key1
+2886 1 ssh-rsa 22key4plc22 user886-key1
+2887 1 ssh-rsa 22key4plc22 user887-key1
+2888 1 ssh-rsa 22key4plc22 user888-key1
+2889 1 ssh-rsa 22key4plc22 user889-key1
+2890 1 ssh-rsa 22key4plc22 user890-key1
+2891 1 ssh-rsa 22key4plc22 user891-key1
+2892 1 ssh-rsa 22key4plc22 user892-key1
+2893 1 ssh-rsa 22key4plc22 user893-key1
+2894 1 ssh-rsa 22key4plc22 user894-key1
+2895 1 ssh-rsa 22key4plc22 user895-key1
+2896 1 ssh-rsa 22key4plc22 user896-key1
+2897 1 ssh-rsa 22key4plc22 user897-key1
+2898 1 ssh-rsa 22key4plc22 user898-key1
+2899 1 ssh-rsa 22key4plc22 user899-key1
+2900 1 ssh-rsa 22key4plc22 user900-key1
+2901 1 ssh-rsa 22key4plc22 user901-key1
+2902 1 ssh-rsa 22key4plc22 user902-key1
+2903 1 ssh-rsa 22key4plc22 user903-key1
+2904 1 ssh-rsa 22key4plc22 user904-key1
+2905 1 ssh-rsa 22key4plc22 user905-key1
+2906 1 ssh-rsa 22key4plc22 user906-key1
+2907 1 ssh-rsa 22key4plc22 user907-key1
+2908 1 ssh-rsa 22key4plc22 user908-key1
+2909 1 ssh-rsa 22key4plc22 user909-key1
+2910 1 ssh-rsa 22key4plc22 user910-key1
+2911 1 ssh-rsa 22key4plc22 user911-key1
+2912 1 ssh-rsa 22key4plc22 user912-key1
+2913 1 ssh-rsa 22key4plc22 user913-key1
+2914 1 ssh-rsa 22key4plc22 user914-key1
+2915 1 ssh-rsa 22key4plc22 user915-key1
+2916 1 ssh-rsa 22key4plc22 user916-key1
+2917 1 ssh-rsa 22key4plc22 user917-key1
+2918 1 ssh-rsa 22key4plc22 user918-key1
+2919 1 ssh-rsa 22key4plc22 user919-key1
+2920 1 ssh-rsa 22key4plc22 user920-key1
+2921 1 ssh-rsa 22key4plc22 user921-key1
+2922 1 ssh-rsa 22key4plc22 user922-key1
+2923 1 ssh-rsa 22key4plc22 user923-key1
+2924 1 ssh-rsa 22key4plc22 user924-key1
+2925 1 ssh-rsa 22key4plc22 user925-key1
+2926 1 ssh-rsa 22key4plc22 user926-key1
+2927 1 ssh-rsa 22key4plc22 user927-key1
+2928 1 ssh-rsa 22key4plc22 user928-key1
+2929 1 ssh-rsa 22key4plc22 user929-key1
+2930 1 ssh-rsa 22key4plc22 user930-key1
+2931 1 ssh-rsa 22key4plc22 user931-key1
+2932 1 ssh-rsa 22key4plc22 user932-key1
+2933 1 ssh-rsa 22key4plc22 user933-key1
+2934 1 ssh-rsa 22key4plc22 user934-key1
+2935 1 ssh-rsa 22key4plc22 user935-key1
+2936 1 ssh-rsa 22key4plc22 user936-key1
+2937 1 ssh-rsa 22key4plc22 user937-key1
+2938 1 ssh-rsa 22key4plc22 user938-key1
+2939 1 ssh-rsa 22key4plc22 user939-key1
+2940 1 ssh-rsa 22key4plc22 user940-key1
+2941 1 ssh-rsa 22key4plc22 user941-key1
+2942 1 ssh-rsa 22key4plc22 user942-key1
+2943 1 ssh-rsa 22key4plc22 user943-key1
+2944 1 ssh-rsa 22key4plc22 user944-key1
+2945 1 ssh-rsa 22key4plc22 user945-key1
+2946 1 ssh-rsa 22key4plc22 user946-key1
+2947 1 ssh-rsa 22key4plc22 user947-key1
+2948 1 ssh-rsa 22key4plc22 user948-key1
+2949 1 ssh-rsa 22key4plc22 user949-key1
+2950 1 ssh-rsa 22key4plc22 user950-key1
+2951 1 ssh-rsa 22key4plc22 user951-key1
+2952 1 ssh-rsa 22key4plc22 user952-key1
+2953 1 ssh-rsa 22key4plc22 user953-key1
+2954 1 ssh-rsa 22key4plc22 user954-key1
+2955 1 ssh-rsa 22key4plc22 user955-key1
+2956 1 ssh-rsa 22key4plc22 user956-key1
+2957 1 ssh-rsa 22key4plc22 user957-key1
+2958 1 ssh-rsa 22key4plc22 user958-key1
+2959 1 ssh-rsa 22key4plc22 user959-key1
+2960 1 ssh-rsa 22key4plc22 user960-key1
+2961 1 ssh-rsa 22key4plc22 user961-key1
+2962 1 ssh-rsa 22key4plc22 user962-key1
+2963 1 ssh-rsa 22key4plc22 user963-key1
+2964 1 ssh-rsa 22key4plc22 user964-key1
+2965 1 ssh-rsa 22key4plc22 user965-key1
+2966 1 ssh-rsa 22key4plc22 user966-key1
+2967 1 ssh-rsa 22key4plc22 user967-key1
+2968 1 ssh-rsa 22key4plc22 user968-key1
+2969 1 ssh-rsa 22key4plc22 user969-key1
+2970 1 ssh-rsa 22key4plc22 user970-key1
+2971 1 ssh-rsa 22key4plc22 user971-key1
+2972 1 ssh-rsa 22key4plc22 user972-key1
+2973 1 ssh-rsa 22key4plc22 user973-key1
+2974 1 ssh-rsa 22key4plc22 user974-key1
+2975 1 ssh-rsa 22key4plc22 user975-key1
+2976 1 ssh-rsa 22key4plc22 user976-key1
+2977 1 ssh-rsa 22key4plc22 user977-key1
+2978 1 ssh-rsa 22key4plc22 user978-key1
+2979 1 ssh-rsa 22key4plc22 user979-key1
+2980 1 ssh-rsa 22key4plc22 user980-key1
+2981 1 ssh-rsa 22key4plc22 user981-key1
+2982 1 ssh-rsa 22key4plc22 user982-key1
+2983 1 ssh-rsa 22key4plc22 user983-key1
+2984 1 ssh-rsa 22key4plc22 user984-key1
+2985 1 ssh-rsa 22key4plc22 user985-key1
+2986 1 ssh-rsa 22key4plc22 user986-key1
+2987 1 ssh-rsa 22key4plc22 user987-key1
+2988 1 ssh-rsa 22key4plc22 user988-key1
+2989 1 ssh-rsa 22key4plc22 user989-key1
+2990 1 ssh-rsa 22key4plc22 user990-key1
+2991 1 ssh-rsa 22key4plc22 user991-key1
+2992 1 ssh-rsa 22key4plc22 user992-key1
+2993 1 ssh-rsa 22key4plc22 user993-key1
+2994 1 ssh-rsa 22key4plc22 user994-key1
+2995 1 ssh-rsa 22key4plc22 user995-key1
+2996 1 ssh-rsa 22key4plc22 user996-key1
+2997 1 ssh-rsa 22key4plc22 user997-key1
+2998 1 ssh-rsa 22key4plc22 user998-key1
+2999 1 ssh-rsa 22key4plc22 user999-key1
+3000 1 ssh-rsa 22key4plc22 user1000-key1
+3001 1 ssh-rsa 22key4plc22 user1001-key1
+3002 1 ssh-rsa 22key4plc22 user1002-key1
+3003 1 ssh-rsa 22key4plc22 user1003-key1
+3004 1 ssh-rsa 22key4plc22 user1004-key1
+3005 1 ssh-rsa 22key4plc22 user1005-key1
+3006 1 ssh-rsa 22key4plc22 user1006-key1
+3007 1 ssh-rsa 22key4plc22 user1007-key1
+3008 1 ssh-rsa 22key4plc22 user1008-key1
+3009 1 ssh-rsa 22key4plc22 user1009-key1
+3010 1 ssh-rsa 22key4plc22 user1010-key1
+3011 1 ssh-rsa 22key4plc22 user1011-key1
+3012 1 ssh-rsa 22key4plc22 user1012-key1
+3013 1 ssh-rsa 22key4plc22 user1013-key1
+3014 1 ssh-rsa 22key4plc22 user1014-key1
+3015 1 ssh-rsa 22key4plc22 user1015-key1
+3016 1 ssh-rsa 22key4plc22 user1016-key1
+3017 1 ssh-rsa 22key4plc22 user1017-key1
+3018 1 ssh-rsa 22key4plc22 user1018-key1
+3019 1 ssh-rsa 22key4plc22 user1019-key1
+3020 1 ssh-rsa 22key4plc22 user1020-key1
+3021 1 ssh-rsa 22key4plc22 user1021-key1
+3022 1 ssh-rsa 22key4plc22 user1022-key1
+3023 1 ssh-rsa 22key4plc22 user1023-key1
+3024 1 ssh-rsa 22key4plc22 user1024-key1
+3025 1 ssh-rsa 22key4plc22 user1025-key1
+3026 1 ssh-rsa 22key4plc22 user1026-key1
+3027 1 ssh-rsa 22key4plc22 user1027-key1
+3028 1 ssh-rsa 22key4plc22 user1028-key1
+3029 1 ssh-rsa 22key4plc22 user1029-key1
+3030 1 ssh-rsa 22key4plc22 user1030-key1
+3031 1 ssh-rsa 22key4plc22 user1031-key1
+3032 1 ssh-rsa 22key4plc22 user1032-key1
+3033 1 ssh-rsa 22key4plc22 user1033-key1
+3034 1 ssh-rsa 22key4plc22 user1034-key1
+3035 1 ssh-rsa 22key4plc22 user1035-key1
+3036 1 ssh-rsa 22key4plc22 user1036-key1
+3037 1 ssh-rsa 22key4plc22 user1037-key1
+3038 1 ssh-rsa 22key4plc22 user1038-key1
+3039 1 ssh-rsa 22key4plc22 user1039-key1
+3040 1 ssh-rsa 22key4plc22 user1040-key1
+3041 1 ssh-rsa 22key4plc22 user1041-key1
+3042 1 ssh-rsa 22key4plc22 user1042-key1
+3043 1 ssh-rsa 22key4plc22 user1043-key1
+3044 1 ssh-rsa 22key4plc22 user1044-key1
+3045 1 ssh-rsa 22key4plc22 user1045-key1
+3046 1 ssh-rsa 22key4plc22 user1046-key1
+3047 1 ssh-rsa 22key4plc22 user1047-key1
+3048 1 ssh-rsa 22key4plc22 user1048-key1
+3049 1 ssh-rsa 22key4plc22 user1049-key1
+3050 1 ssh-rsa 22key4plc22 user1050-key1
+3051 1 ssh-rsa 22key4plc22 user1051-key1
+3052 1 ssh-rsa 22key4plc22 user1052-key1
+3053 1 ssh-rsa 22key4plc22 user1053-key1
+3054 1 ssh-rsa 22key4plc22 user1054-key1
+3055 1 ssh-rsa 22key4plc22 user1055-key1
+3056 1 ssh-rsa 22key4plc22 user1056-key1
+3057 1 ssh-rsa 22key4plc22 user1057-key1
+3058 1 ssh-rsa 22key4plc22 user1058-key1
+3059 1 ssh-rsa 22key4plc22 user1059-key1
+3060 1 ssh-rsa 22key4plc22 user1060-key1
+3061 1 ssh-rsa 22key4plc22 user1061-key1
+3062 1 ssh-rsa 22key4plc22 user1062-key1
+3063 1 ssh-rsa 22key4plc22 user1063-key1
+3064 1 ssh-rsa 22key4plc22 user1064-key1
+3065 1 ssh-rsa 22key4plc22 user1065-key1
+3066 1 ssh-rsa 22key4plc22 user1066-key1
+3067 1 ssh-rsa 22key4plc22 user1067-key1
+3068 1 ssh-rsa 22key4plc22 user1068-key1
+3069 1 ssh-rsa 22key4plc22 user1069-key1
+3070 1 ssh-rsa 22key4plc22 user1070-key1
+3071 1 ssh-rsa 22key4plc22 user1071-key1
+3072 1 ssh-rsa 22key4plc22 user1072-key1
+3073 1 ssh-rsa 22key4plc22 user1073-key1
+3074 1 ssh-rsa 22key4plc22 user1074-key1
+3075 1 ssh-rsa 22key4plc22 user1075-key1
+3076 1 ssh-rsa 22key4plc22 user1076-key1
+3077 1 ssh-rsa 22key4plc22 user1077-key1
+3078 1 ssh-rsa 22key4plc22 user1078-key1
+3079 1 ssh-rsa 22key4plc22 user1079-key1
+3080 1 ssh-rsa 22key4plc22 user1080-key1
+3081 1 ssh-rsa 22key4plc22 user1081-key1
+3082 1 ssh-rsa 22key4plc22 user1082-key1
+3083 1 ssh-rsa 22key4plc22 user1083-key1
+3084 1 ssh-rsa 22key4plc22 user1084-key1
+3085 1 ssh-rsa 22key4plc22 user1085-key1
+3086 1 ssh-rsa 22key4plc22 user1086-key1
+3087 1 ssh-rsa 22key4plc22 user1087-key1
+3088 1 ssh-rsa 22key4plc22 user1088-key1
+3089 1 ssh-rsa 22key4plc22 user1089-key1
+3090 1 ssh-rsa 22key4plc22 user1090-key1
+3091 1 ssh-rsa 22key4plc22 user1091-key1
+3092 1 ssh-rsa 22key4plc22 user1092-key1
+3093 1 ssh-rsa 22key4plc22 user1093-key1
+3094 1 ssh-rsa 22key4plc22 user1094-key1
+3095 1 ssh-rsa 22key4plc22 user1095-key1
+3096 1 ssh-rsa 22key4plc22 user1096-key1
+3097 1 ssh-rsa 22key4plc22 user1097-key1
+3098 1 ssh-rsa 22key4plc22 user1098-key1
+3099 1 ssh-rsa 22key4plc22 user1099-key1
+3100 1 ssh-rsa 22key4plc22 user1100-key1
+3101 1 ssh-rsa 22key4plc22 user1101-key1
+3102 1 ssh-rsa 22key4plc22 user1102-key1
+3103 1 ssh-rsa 22key4plc22 user1103-key1
+3104 1 ssh-rsa 22key4plc22 user1104-key1
+3105 1 ssh-rsa 22key4plc22 user1105-key1
+3106 1 ssh-rsa 22key4plc22 user1106-key1
+3107 1 ssh-rsa 22key4plc22 user1107-key1
+3108 1 ssh-rsa 22key4plc22 user1108-key1
+3109 1 ssh-rsa 22key4plc22 user1109-key1
+3110 1 ssh-rsa 22key4plc22 user1110-key1
+3111 1 ssh-rsa 22key4plc22 user1111-key1
+3112 1 ssh-rsa 22key4plc22 user1112-key1
+3113 1 ssh-rsa 22key4plc22 user1113-key1
+3114 1 ssh-rsa 22key4plc22 user1114-key1
+3115 1 ssh-rsa 22key4plc22 user1115-key1
+3116 1 ssh-rsa 22key4plc22 user1116-key1
+3117 1 ssh-rsa 22key4plc22 user1117-key1
+3118 1 ssh-rsa 22key4plc22 user1118-key1
+3119 1 ssh-rsa 22key4plc22 user1119-key1
+3120 1 ssh-rsa 22key4plc22 user1120-key1
+3121 1 ssh-rsa 22key4plc22 user1121-key1
+3122 1 ssh-rsa 22key4plc22 user1122-key1
+3123 1 ssh-rsa 22key4plc22 user1123-key1
+3124 1 ssh-rsa 22key4plc22 user1124-key1
+3125 1 ssh-rsa 22key4plc22 user1125-key1
+3126 1 ssh-rsa 22key4plc22 user1126-key1
+3127 1 ssh-rsa 22key4plc22 user1127-key1
+3128 1 ssh-rsa 22key4plc22 user1128-key1
+3129 1 ssh-rsa 22key4plc22 user1129-key1
+3130 1 ssh-rsa 22key4plc22 user1130-key1
+3131 1 ssh-rsa 22key4plc22 user1131-key1
+3132 1 ssh-rsa 22key4plc22 user1132-key1
+3133 1 ssh-rsa 22key4plc22 user1133-key1
+3134 1 ssh-rsa 22key4plc22 user1134-key1
+3135 1 ssh-rsa 22key4plc22 user1135-key1
+3136 1 ssh-rsa 22key4plc22 user1136-key1
+3137 1 ssh-rsa 22key4plc22 user1137-key1
+3138 1 ssh-rsa 22key4plc22 user1138-key1
+3139 1 ssh-rsa 22key4plc22 user1139-key1
+3140 1 ssh-rsa 22key4plc22 user1140-key1
+3141 1 ssh-rsa 22key4plc22 user1141-key1
+3142 1 ssh-rsa 22key4plc22 user1142-key1
+3143 1 ssh-rsa 22key4plc22 user1143-key1
+3144 1 ssh-rsa 22key4plc22 user1144-key1
+3145 1 ssh-rsa 22key4plc22 user1145-key1
+3146 1 ssh-rsa 22key4plc22 user1146-key1
+3147 1 ssh-rsa 22key4plc22 user1147-key1
+3148 1 ssh-rsa 22key4plc22 user1148-key1
+3149 1 ssh-rsa 22key4plc22 user1149-key1
+3150 1 ssh-rsa 22key4plc22 user1150-key1
+3151 1 ssh-rsa 22key4plc22 user1151-key1
+3152 1 ssh-rsa 22key4plc22 user1152-key1
+3153 1 ssh-rsa 22key4plc22 user1153-key1
+3154 1 ssh-rsa 22key4plc22 user1154-key1
+3155 1 ssh-rsa 22key4plc22 user1155-key1
+3156 1 ssh-rsa 22key4plc22 user1156-key1
+3157 1 ssh-rsa 22key4plc22 user1157-key1
+3158 1 ssh-rsa 22key4plc22 user1158-key1
+3159 1 ssh-rsa 22key4plc22 user1159-key1
+3160 1 ssh-rsa 22key4plc22 user1160-key1
+3161 1 ssh-rsa 22key4plc22 user1161-key1
+3162 1 ssh-rsa 22key4plc22 user1162-key1
+3163 1 ssh-rsa 22key4plc22 user1163-key1
+3164 1 ssh-rsa 22key4plc22 user1164-key1
+3165 1 ssh-rsa 22key4plc22 user1165-key1
+3166 1 ssh-rsa 22key4plc22 user1166-key1
+3167 1 ssh-rsa 22key4plc22 user1167-key1
+3168 1 ssh-rsa 22key4plc22 user1168-key1
+3169 1 ssh-rsa 22key4plc22 user1169-key1
+3170 1 ssh-rsa 22key4plc22 user1170-key1
+3171 1 ssh-rsa 22key4plc22 user1171-key1
+3172 1 ssh-rsa 22key4plc22 user1172-key1
+3173 1 ssh-rsa 22key4plc22 user1173-key1
+3174 1 ssh-rsa 22key4plc22 user1174-key1
+3175 1 ssh-rsa 22key4plc22 user1175-key1
+3176 1 ssh-rsa 22key4plc22 user1176-key1
+3177 1 ssh-rsa 22key4plc22 user1177-key1
+3178 1 ssh-rsa 22key4plc22 user1178-key1
+3179 1 ssh-rsa 22key4plc22 user1179-key1
+3180 1 ssh-rsa 22key4plc22 user1180-key1
+3181 1 ssh-rsa 22key4plc22 user1181-key1
+3182 1 ssh-rsa 22key4plc22 user1182-key1
+3183 1 ssh-rsa 22key4plc22 user1183-key1
+3184 1 ssh-rsa 22key4plc22 user1184-key1
+3185 1 ssh-rsa 22key4plc22 user1185-key1
+3186 1 ssh-rsa 22key4plc22 user1186-key1
+3187 1 ssh-rsa 22key4plc22 user1187-key1
+3188 1 ssh-rsa 22key4plc22 user1188-key1
+3189 1 ssh-rsa 22key4plc22 user1189-key1
+3190 1 ssh-rsa 22key4plc22 user1190-key1
+3191 1 ssh-rsa 22key4plc22 user1191-key1
+3192 1 ssh-rsa 22key4plc22 user1192-key1
+3193 1 ssh-rsa 22key4plc22 user1193-key1
+3194 1 ssh-rsa 22key4plc22 user1194-key1
+3195 1 ssh-rsa 22key4plc22 user1195-key1
+3196 1 ssh-rsa 22key4plc22 user1196-key1
+3197 1 ssh-rsa 22key4plc22 user1197-key1
+3198 1 ssh-rsa 22key4plc22 user1198-key1
+3199 1 ssh-rsa 22key4plc22 user1199-key1
+3200 1 ssh-rsa 22key4plc22 user1200-key1
+3201 1 ssh-rsa 22key4plc22 user1201-key1
+3202 1 ssh-rsa 22key4plc22 user1202-key1
+3203 1 ssh-rsa 22key4plc22 user1203-key1
+3204 1 ssh-rsa 22key4plc22 user1204-key1
+3205 1 ssh-rsa 22key4plc22 user1205-key1
+3206 1 ssh-rsa 22key4plc22 user1206-key1
+3207 1 ssh-rsa 22key4plc22 user1207-key1
+3208 1 ssh-rsa 22key4plc22 user1208-key1
+3209 1 ssh-rsa 22key4plc22 user1209-key1
+3210 1 ssh-rsa 22key4plc22 user1210-key1
+3211 1 ssh-rsa 22key4plc22 user1211-key1
+3212 1 ssh-rsa 22key4plc22 user1212-key1
+3213 1 ssh-rsa 22key4plc22 user1213-key1
+3214 1 ssh-rsa 22key4plc22 user1214-key1
+3215 1 ssh-rsa 22key4plc22 user1215-key1
+3216 1 ssh-rsa 22key4plc22 user1216-key1
+3217 1 ssh-rsa 22key4plc22 user1217-key1
+3218 1 ssh-rsa 22key4plc22 user1218-key1
+3219 1 ssh-rsa 22key4plc22 user1219-key1
+3220 1 ssh-rsa 22key4plc22 user1220-key1
+3221 1 ssh-rsa 22key4plc22 user1221-key1
+3222 1 ssh-rsa 22key4plc22 user1222-key1
+3223 1 ssh-rsa 22key4plc22 user1223-key1
+3224 1 ssh-rsa 22key4plc22 user1224-key1
+3225 1 ssh-rsa 22key4plc22 user1225-key1
+3226 1 ssh-rsa 22key4plc22 user1226-key1
+3227 1 ssh-rsa 22key4plc22 user1227-key1
+3228 1 ssh-rsa 22key4plc22 user1228-key1
+3229 1 ssh-rsa 22key4plc22 user1229-key1
+3230 1 ssh-rsa 22key4plc22 user1230-key1
+3231 1 ssh-rsa 22key4plc22 user1231-key1
+3232 1 ssh-rsa 22key4plc22 user1232-key1
+3233 1 ssh-rsa 22key4plc22 user1233-key1
+3234 1 ssh-rsa 22key4plc22 user1234-key1
+3235 1 ssh-rsa 22key4plc22 user1235-key1
+3236 1 ssh-rsa 22key4plc22 user1236-key1
+3237 1 ssh-rsa 22key4plc22 user1237-key1
+3238 1 ssh-rsa 22key4plc22 user1238-key1
+3239 1 ssh-rsa 22key4plc22 user1239-key1
+3240 1 ssh-rsa 22key4plc22 user1240-key1
+3241 1 ssh-rsa 22key4plc22 user1241-key1
+3242 1 ssh-rsa 22key4plc22 user1242-key1
+3243 1 ssh-rsa 22key4plc22 user1243-key1
+3244 1 ssh-rsa 22key4plc22 user1244-key1
+3245 1 ssh-rsa 22key4plc22 user1245-key1
+3246 1 ssh-rsa 22key4plc22 user1246-key1
+3247 1 ssh-rsa 22key4plc22 user1247-key1
+3248 1 ssh-rsa 22key4plc22 user1248-key1
+3249 1 ssh-rsa 22key4plc22 user1249-key1
+3250 1 ssh-rsa 22key4plc22 user1250-key1
+3251 1 ssh-rsa 22key4plc22 user1251-key1
+3252 1 ssh-rsa 22key4plc22 user1252-key1
+3253 1 ssh-rsa 22key4plc22 user1253-key1
+3254 1 ssh-rsa 22key4plc22 user1254-key1
+3255 1 ssh-rsa 22key4plc22 user1255-key1
+3256 1 ssh-rsa 22key4plc22 user1256-key1
+3257 1 ssh-rsa 22key4plc22 user1257-key1
+3258 1 ssh-rsa 22key4plc22 user1258-key1
+3259 1 ssh-rsa 22key4plc22 user1259-key1
+3260 1 ssh-rsa 22key4plc22 user1260-key1
+3261 1 ssh-rsa 22key4plc22 user1261-key1
+3262 1 ssh-rsa 22key4plc22 user1262-key1
+3263 1 ssh-rsa 22key4plc22 user1263-key1
+3264 1 ssh-rsa 22key4plc22 user1264-key1
+3265 1 ssh-rsa 22key4plc22 user1265-key1
+3266 1 ssh-rsa 22key4plc22 user1266-key1
+3267 1 ssh-rsa 22key4plc22 user1267-key1
+3268 1 ssh-rsa 22key4plc22 user1268-key1
+3269 1 ssh-rsa 22key4plc22 user1269-key1
+3270 1 ssh-rsa 22key4plc22 user1270-key1
+3271 1 ssh-rsa 22key4plc22 user1271-key1
+3272 1 ssh-rsa 22key4plc22 user1272-key1
+3273 1 ssh-rsa 22key4plc22 user1273-key1
+3274 1 ssh-rsa 22key4plc22 user1274-key1
+3275 1 ssh-rsa 22key4plc22 user1275-key1
+3276 1 ssh-rsa 22key4plc22 user1276-key1
+3277 1 ssh-rsa 22key4plc22 user1277-key1
+3278 1 ssh-rsa 22key4plc22 user1278-key1
+3279 1 ssh-rsa 22key4plc22 user1279-key1
+3280 1 ssh-rsa 22key4plc22 user1280-key1
+3281 1 ssh-rsa 22key4plc22 user1281-key1
+3282 1 ssh-rsa 22key4plc22 user1282-key1
+3283 1 ssh-rsa 22key4plc22 user1283-key1
+3284 1 ssh-rsa 22key4plc22 user1284-key1
+3285 1 ssh-rsa 22key4plc22 user1285-key1
+3286 1 ssh-rsa 22key4plc22 user1286-key1
+3287 1 ssh-rsa 22key4plc22 user1287-key1
+3288 1 ssh-rsa 22key4plc22 user1288-key1
+3289 1 ssh-rsa 22key4plc22 user1289-key1
+3290 1 ssh-rsa 22key4plc22 user1290-key1
+3291 1 ssh-rsa 22key4plc22 user1291-key1
+3292 1 ssh-rsa 22key4plc22 user1292-key1
+3293 1 ssh-rsa 22key4plc22 user1293-key1
+3294 1 ssh-rsa 22key4plc22 user1294-key1
+3295 1 ssh-rsa 22key4plc22 user1295-key1
+3296 1 ssh-rsa 22key4plc22 user1296-key1
+3297 1 ssh-rsa 22key4plc22 user1297-key1
+3298 1 ssh-rsa 22key4plc22 user1298-key1
+3299 1 ssh-rsa 22key4plc22 user1299-key1
+3300 1 ssh-rsa 22key4plc22 user1300-key1
+3301 1 ssh-rsa 22key4plc22 user1301-key1
+3302 1 ssh-rsa 22key4plc22 user1302-key1
+3303 1 ssh-rsa 22key4plc22 user1303-key1
+3304 1 ssh-rsa 22key4plc22 user1304-key1
+3305 1 ssh-rsa 22key4plc22 user1305-key1
+3306 1 ssh-rsa 22key4plc22 user1306-key1
+3307 1 ssh-rsa 22key4plc22 user1307-key1
+3308 1 ssh-rsa 22key4plc22 user1308-key1
+3309 1 ssh-rsa 22key4plc22 user1309-key1
+3310 1 ssh-rsa 22key4plc22 user1310-key1
+3311 1 ssh-rsa 22key4plc22 user1311-key1
+3312 1 ssh-rsa 22key4plc22 user1312-key1
+3313 1 ssh-rsa 22key4plc22 user1313-key1
+3314 1 ssh-rsa 22key4plc22 user1314-key1
+3315 1 ssh-rsa 22key4plc22 user1315-key1
+3316 1 ssh-rsa 22key4plc22 user1316-key1
+3317 1 ssh-rsa 22key4plc22 user1317-key1
+3318 1 ssh-rsa 22key4plc22 user1318-key1
+3319 1 ssh-rsa 22key4plc22 user1319-key1
+3320 1 ssh-rsa 22key4plc22 user1320-key1
+3321 1 ssh-rsa 22key4plc22 user1321-key1
+3322 1 ssh-rsa 22key4plc22 user1322-key1
+3323 1 ssh-rsa 22key4plc22 user1323-key1
+3324 1 ssh-rsa 22key4plc22 user1324-key1
+3325 1 ssh-rsa 22key4plc22 user1325-key1
+3326 1 ssh-rsa 22key4plc22 user1326-key1
+3327 1 ssh-rsa 22key4plc22 user1327-key1
+3328 1 ssh-rsa 22key4plc22 user1328-key1
+3329 1 ssh-rsa 22key4plc22 user1329-key1
+3330 1 ssh-rsa 22key4plc22 user1330-key1
+3331 1 ssh-rsa 22key4plc22 user1331-key1
+3332 1 ssh-rsa 22key4plc22 user1332-key1
+3333 1 ssh-rsa 22key4plc22 user1333-key1
+3334 1 ssh-rsa 22key4plc22 user1334-key1
+3335 1 ssh-rsa 22key4plc22 user1335-key1
+3336 1 ssh-rsa 22key4plc22 user1336-key1
+3337 1 ssh-rsa 22key4plc22 user1337-key1
+3338 1 ssh-rsa 22key4plc22 user1338-key1
+3339 1 ssh-rsa 22key4plc22 user1339-key1
+3340 1 ssh-rsa 22key4plc22 user1340-key1
+3341 1 ssh-rsa 22key4plc22 user1341-key1
+3342 1 ssh-rsa 22key4plc22 user1342-key1
+3343 1 ssh-rsa 22key4plc22 user1343-key1
+3344 1 ssh-rsa 22key4plc22 user1344-key1
+3345 1 ssh-rsa 22key4plc22 user1345-key1
+3346 1 ssh-rsa 22key4plc22 user1346-key1
+3347 1 ssh-rsa 22key4plc22 user1347-key1
+3348 1 ssh-rsa 22key4plc22 user1348-key1
+3349 1 ssh-rsa 22key4plc22 user1349-key1
+3350 1 ssh-rsa 22key4plc22 user1350-key1
+3351 1 ssh-rsa 22key4plc22 user1351-key1
+3352 1 ssh-rsa 22key4plc22 user1352-key1
+3353 1 ssh-rsa 22key4plc22 user1353-key1
+3354 1 ssh-rsa 22key4plc22 user1354-key1
+3355 1 ssh-rsa 22key4plc22 user1355-key1
+3356 1 ssh-rsa 22key4plc22 user1356-key1
+3357 1 ssh-rsa 22key4plc22 user1357-key1
+3358 1 ssh-rsa 22key4plc22 user1358-key1
+3359 1 ssh-rsa 22key4plc22 user1359-key1
+3360 1 ssh-rsa 22key4plc22 user1360-key1
+3361 1 ssh-rsa 22key4plc22 user1361-key1
+3362 1 ssh-rsa 22key4plc22 user1362-key1
+3363 1 ssh-rsa 22key4plc22 user1363-key1
+3364 1 ssh-rsa 22key4plc22 user1364-key1
+3365 1 ssh-rsa 22key4plc22 user1365-key1
+3366 1 ssh-rsa 22key4plc22 user1366-key1
+3367 1 ssh-rsa 22key4plc22 user1367-key1
+3368 1 ssh-rsa 22key4plc22 user1368-key1
+3369 1 ssh-rsa 22key4plc22 user1369-key1
+3370 1 ssh-rsa 22key4plc22 user1370-key1
+3371 1 ssh-rsa 22key4plc22 user1371-key1
+3372 1 ssh-rsa 22key4plc22 user1372-key1
+3373 1 ssh-rsa 22key4plc22 user1373-key1
+3374 1 ssh-rsa 22key4plc22 user1374-key1
+3375 1 ssh-rsa 22key4plc22 user1375-key1
+3376 1 ssh-rsa 22key4plc22 user1376-key1
+3377 1 ssh-rsa 22key4plc22 user1377-key1
+3378 1 ssh-rsa 22key4plc22 user1378-key1
+3379 1 ssh-rsa 22key4plc22 user1379-key1
+3380 1 ssh-rsa 22key4plc22 user1380-key1
+3381 1 ssh-rsa 22key4plc22 user1381-key1
+3382 1 ssh-rsa 22key4plc22 user1382-key1
+3383 1 ssh-rsa 22key4plc22 user1383-key1
+3384 1 ssh-rsa 22key4plc22 user1384-key1
+3385 1 ssh-rsa 22key4plc22 user1385-key1
+3386 1 ssh-rsa 22key4plc22 user1386-key1
+3387 1 ssh-rsa 22key4plc22 user1387-key1
+3388 1 ssh-rsa 22key4plc22 user1388-key1
+3389 1 ssh-rsa 22key4plc22 user1389-key1
+3390 1 ssh-rsa 22key4plc22 user1390-key1
+3391 1 ssh-rsa 22key4plc22 user1391-key1
+3392 1 ssh-rsa 22key4plc22 user1392-key1
+3393 1 ssh-rsa 22key4plc22 user1393-key1
+3394 1 ssh-rsa 22key4plc22 user1394-key1
+3395 1 ssh-rsa 22key4plc22 user1395-key1
+3396 1 ssh-rsa 22key4plc22 user1396-key1
+3397 1 ssh-rsa 22key4plc22 user1397-key1
+3398 1 ssh-rsa 22key4plc22 user1398-key1
+3399 1 ssh-rsa 22key4plc22 user1399-key1
+3400 1 ssh-rsa 22key4plc22 user1400-key1
+3401 1 ssh-rsa 22key4plc22 user1401-key1
+3402 1 ssh-rsa 22key4plc22 user1402-key1
+3403 1 ssh-rsa 22key4plc22 user1403-key1
+3404 1 ssh-rsa 22key4plc22 user1404-key1
+3405 1 ssh-rsa 22key4plc22 user1405-key1
+3406 1 ssh-rsa 22key4plc22 user1406-key1
+3407 1 ssh-rsa 22key4plc22 user1407-key1
+3408 1 ssh-rsa 22key4plc22 user1408-key1
+3409 1 ssh-rsa 22key4plc22 user1409-key1
+3410 1 ssh-rsa 22key4plc22 user1410-key1
+3411 1 ssh-rsa 22key4plc22 user1411-key1
+3412 1 ssh-rsa 22key4plc22 user1412-key1
+3413 1 ssh-rsa 22key4plc22 user1413-key1
+3414 1 ssh-rsa 22key4plc22 user1414-key1
+3415 1 ssh-rsa 22key4plc22 user1415-key1
+3416 1 ssh-rsa 22key4plc22 user1416-key1
+3417 1 ssh-rsa 22key4plc22 user1417-key1
+3418 1 ssh-rsa 22key4plc22 user1418-key1
+3419 1 ssh-rsa 22key4plc22 user1419-key1
+3420 1 ssh-rsa 22key4plc22 user1420-key1
+3421 1 ssh-rsa 22key4plc22 user1421-key1
+3422 1 ssh-rsa 22key4plc22 user1422-key1
+3423 1 ssh-rsa 22key4plc22 user1423-key1
+3424 1 ssh-rsa 22key4plc22 user1424-key1
+3425 1 ssh-rsa 22key4plc22 user1425-key1
+3426 1 ssh-rsa 22key4plc22 user1426-key1
+3427 1 ssh-rsa 22key4plc22 user1427-key1
+3428 1 ssh-rsa 22key4plc22 user1428-key1
+3429 1 ssh-rsa 22key4plc22 user1429-key1
+3430 1 ssh-rsa 22key4plc22 user1430-key1
+3431 1 ssh-rsa 22key4plc22 user1431-key1
+3432 1 ssh-rsa 22key4plc22 user1432-key1
+3433 1 ssh-rsa 22key4plc22 user1433-key1
+3434 1 ssh-rsa 22key4plc22 user1434-key1
+3435 1 ssh-rsa 22key4plc22 user1435-key1
+3436 1 ssh-rsa 22key4plc22 user1436-key1
+3437 1 ssh-rsa 22key4plc22 user1437-key1
+3438 1 ssh-rsa 22key4plc22 user1438-key1
+3439 1 ssh-rsa 22key4plc22 user1439-key1
+3440 1 ssh-rsa 22key4plc22 user1440-key1
+3441 1 ssh-rsa 22key4plc22 user1441-key1
+3442 1 ssh-rsa 22key4plc22 user1442-key1
+3443 1 ssh-rsa 22key4plc22 user1443-key1
+3444 1 ssh-rsa 22key4plc22 user1444-key1
+3445 1 ssh-rsa 22key4plc22 user1445-key1
+3446 1 ssh-rsa 22key4plc22 user1446-key1
+3447 1 ssh-rsa 22key4plc22 user1447-key1
+3448 1 ssh-rsa 22key4plc22 user1448-key1
+3449 1 ssh-rsa 22key4plc22 user1449-key1
+3450 1 ssh-rsa 22key4plc22 user1450-key1
+3451 1 ssh-rsa 22key4plc22 user1451-key1
+3452 1 ssh-rsa 22key4plc22 user1452-key1
+3453 1 ssh-rsa 22key4plc22 user1453-key1
+3454 1 ssh-rsa 22key4plc22 user1454-key1
+3455 1 ssh-rsa 22key4plc22 user1455-key1
+3456 1 ssh-rsa 22key4plc22 user1456-key1
+3457 1 ssh-rsa 22key4plc22 user1457-key1
+3458 1 ssh-rsa 22key4plc22 user1458-key1
+3459 1 ssh-rsa 22key4plc22 user1459-key1
+3460 1 ssh-rsa 22key4plc22 user1460-key1
+3461 1 ssh-rsa 22key4plc22 user1461-key1
+3462 1 ssh-rsa 22key4plc22 user1462-key1
+3463 1 ssh-rsa 22key4plc22 user1463-key1
+3464 1 ssh-rsa 22key4plc22 user1464-key1
+3465 1 ssh-rsa 22key4plc22 user1465-key1
+3466 1 ssh-rsa 22key4plc22 user1466-key1
+3467 1 ssh-rsa 22key4plc22 user1467-key1
+3468 1 ssh-rsa 22key4plc22 user1468-key1
+3469 1 ssh-rsa 22key4plc22 user1469-key1
+3470 1 ssh-rsa 22key4plc22 user1470-key1
+3471 1 ssh-rsa 22key4plc22 user1471-key1
+3472 1 ssh-rsa 22key4plc22 user1472-key1
+3473 1 ssh-rsa 22key4plc22 user1473-key1
+3474 1 ssh-rsa 22key4plc22 user1474-key1
+3475 1 ssh-rsa 22key4plc22 user1475-key1
+3476 1 ssh-rsa 22key4plc22 user1476-key1
+3477 1 ssh-rsa 22key4plc22 user1477-key1
+3478 1 ssh-rsa 22key4plc22 user1478-key1
+3479 1 ssh-rsa 22key4plc22 user1479-key1
+3480 1 ssh-rsa 22key4plc22 user1480-key1
+3481 1 ssh-rsa 22key4plc22 user1481-key1
+3482 1 ssh-rsa 22key4plc22 user1482-key1
+3483 1 ssh-rsa 22key4plc22 user1483-key1
+3484 1 ssh-rsa 22key4plc22 user1484-key1
+3485 1 ssh-rsa 22key4plc22 user1485-key1
+3486 1 ssh-rsa 22key4plc22 user1486-key1
+3487 1 ssh-rsa 22key4plc22 user1487-key1
+3488 1 ssh-rsa 22key4plc22 user1488-key1
+3489 1 ssh-rsa 22key4plc22 user1489-key1
+3490 1 ssh-rsa 22key4plc22 user1490-key1
+3491 1 ssh-rsa 22key4plc22 user1491-key1
+3492 1 ssh-rsa 22key4plc22 user1492-key1
+3493 1 ssh-rsa 22key4plc22 user1493-key1
+3494 1 ssh-rsa 22key4plc22 user1494-key1
+3495 1 ssh-rsa 22key4plc22 user1495-key1
+3496 1 ssh-rsa 22key4plc22 user1496-key1
+3497 1 ssh-rsa 22key4plc22 user1497-key1
+3498 1 ssh-rsa 22key4plc22 user1498-key1
+3499 1 ssh-rsa 22key4plc22 user1499-key1
+3500 1 ssh-rsa 22key4plc22 user1500-key1
+3501 1 ssh-rsa 22key4plc22 user1501-key1
+3502 1 ssh-rsa 22key4plc22 user1502-key1
+3503 1 ssh-rsa 22key4plc22 user1503-key1
+3504 1 ssh-rsa 22key4plc22 user1504-key1
+3505 1 ssh-rsa 22key4plc22 user1505-key1
+3506 1 ssh-rsa 22key4plc22 user1506-key1
+3507 1 ssh-rsa 22key4plc22 user1507-key1
+3508 1 ssh-rsa 22key4plc22 user1508-key1
+3509 1 ssh-rsa 22key4plc22 user1509-key1
+3510 1 ssh-rsa 22key4plc22 user1510-key1
+3511 1 ssh-rsa 22key4plc22 user1511-key1
+3512 1 ssh-rsa 22key4plc22 user1512-key1
+3513 1 ssh-rsa 22key4plc22 user1513-key1
+3514 1 ssh-rsa 22key4plc22 user1514-key1
+3515 1 ssh-rsa 22key4plc22 user1515-key1
+3516 1 ssh-rsa 22key4plc22 user1516-key1
+3517 1 ssh-rsa 22key4plc22 user1517-key1
+3518 1 ssh-rsa 22key4plc22 user1518-key1
+3519 1 ssh-rsa 22key4plc22 user1519-key1
+3520 1 ssh-rsa 22key4plc22 user1520-key1
+3521 1 ssh-rsa 22key4plc22 user1521-key1
+3522 1 ssh-rsa 22key4plc22 user1522-key1
+3523 1 ssh-rsa 22key4plc22 user1523-key1
+3524 1 ssh-rsa 22key4plc22 user1524-key1
+3525 1 ssh-rsa 22key4plc22 user1525-key1
+3526 1 ssh-rsa 22key4plc22 user1526-key1
+3527 1 ssh-rsa 22key4plc22 user1527-key1
+3528 1 ssh-rsa 22key4plc22 user1528-key1
+3529 1 ssh-rsa 22key4plc22 user1529-key1
+3530 1 ssh-rsa 22key4plc22 user1530-key1
+3531 1 ssh-rsa 22key4plc22 user1531-key1
+3532 1 ssh-rsa 22key4plc22 user1532-key1
+3533 1 ssh-rsa 22key4plc22 user1533-key1
+3534 1 ssh-rsa 22key4plc22 user1534-key1
+3535 1 ssh-rsa 22key4plc22 user1535-key1
+3536 1 ssh-rsa 22key4plc22 user1536-key1
+3537 1 ssh-rsa 22key4plc22 user1537-key1
+3538 1 ssh-rsa 22key4plc22 user1538-key1
+3539 1 ssh-rsa 22key4plc22 user1539-key1
+3540 1 ssh-rsa 22key4plc22 user1540-key1
+3541 1 ssh-rsa 22key4plc22 user1541-key1
+3542 1 ssh-rsa 22key4plc22 user1542-key1
+3543 1 ssh-rsa 22key4plc22 user1543-key1
+3544 1 ssh-rsa 22key4plc22 user1544-key1
+3545 1 ssh-rsa 22key4plc22 user1545-key1
+3546 1 ssh-rsa 22key4plc22 user1546-key1
+3547 1 ssh-rsa 22key4plc22 user1547-key1
+3548 1 ssh-rsa 22key4plc22 user1548-key1
+3549 1 ssh-rsa 22key4plc22 user1549-key1
+3550 1 ssh-rsa 22key4plc22 user1550-key1
+3551 1 ssh-rsa 22key4plc22 user1551-key1
+3552 1 ssh-rsa 22key4plc22 user1552-key1
+3553 1 ssh-rsa 22key4plc22 user1553-key1
+3554 1 ssh-rsa 22key4plc22 user1554-key1
+3555 1 ssh-rsa 22key4plc22 user1555-key1
+3556 1 ssh-rsa 22key4plc22 user1556-key1
+3557 1 ssh-rsa 22key4plc22 user1557-key1
+3558 1 ssh-rsa 22key4plc22 user1558-key1
+3559 1 ssh-rsa 22key4plc22 user1559-key1
+3560 1 ssh-rsa 22key4plc22 user1560-key1
+3561 1 ssh-rsa 22key4plc22 user1561-key1
+3562 1 ssh-rsa 22key4plc22 user1562-key1
+3563 1 ssh-rsa 22key4plc22 user1563-key1
+3564 1 ssh-rsa 22key4plc22 user1564-key1
+3565 1 ssh-rsa 22key4plc22 user1565-key1
+3566 1 ssh-rsa 22key4plc22 user1566-key1
+3567 1 ssh-rsa 22key4plc22 user1567-key1
+3568 1 ssh-rsa 22key4plc22 user1568-key1
+3569 1 ssh-rsa 22key4plc22 user1569-key1
+3570 1 ssh-rsa 22key4plc22 user1570-key1
+3571 1 ssh-rsa 22key4plc22 user1571-key1
+3572 1 ssh-rsa 22key4plc22 user1572-key1
+3573 1 ssh-rsa 22key4plc22 user1573-key1
+3574 1 ssh-rsa 22key4plc22 user1574-key1
+3575 1 ssh-rsa 22key4plc22 user1575-key1
+3576 1 ssh-rsa 22key4plc22 user1576-key1
+3577 1 ssh-rsa 22key4plc22 user1577-key1
+3578 1 ssh-rsa 22key4plc22 user1578-key1
+3579 1 ssh-rsa 22key4plc22 user1579-key1
+3580 1 ssh-rsa 22key4plc22 user1580-key1
+3581 1 ssh-rsa 22key4plc22 user1581-key1
+3582 1 ssh-rsa 22key4plc22 user1582-key1
+3583 1 ssh-rsa 22key4plc22 user1583-key1
+3584 1 ssh-rsa 22key4plc22 user1584-key1
+3585 1 ssh-rsa 22key4plc22 user1585-key1
+3586 1 ssh-rsa 22key4plc22 user1586-key1
+3587 1 ssh-rsa 22key4plc22 user1587-key1
+3588 1 ssh-rsa 22key4plc22 user1588-key1
+3589 1 ssh-rsa 22key4plc22 user1589-key1
+3590 1 ssh-rsa 22key4plc22 user1590-key1
+3591 1 ssh-rsa 22key4plc22 user1591-key1
+3592 1 ssh-rsa 22key4plc22 user1592-key1
+3593 1 ssh-rsa 22key4plc22 user1593-key1
+3594 1 ssh-rsa 22key4plc22 user1594-key1
+3595 1 ssh-rsa 22key4plc22 user1595-key1
+3596 1 ssh-rsa 22key4plc22 user1596-key1
+3597 1 ssh-rsa 22key4plc22 user1597-key1
+3598 1 ssh-rsa 22key4plc22 user1598-key1
+3599 1 ssh-rsa 22key4plc22 user1599-key1
+3600 1 ssh-rsa 22key4plc22 user1600-key1
+3601 1 ssh-rsa 22key4plc22 user1601-key1
+3602 1 ssh-rsa 22key4plc22 user1602-key1
+3603 1 ssh-rsa 22key4plc22 user1603-key1
+3604 1 ssh-rsa 22key4plc22 user1604-key1
+3605 1 ssh-rsa 22key4plc22 user1605-key1
+3606 1 ssh-rsa 22key4plc22 user1606-key1
+3607 1 ssh-rsa 22key4plc22 user1607-key1
+3608 1 ssh-rsa 22key4plc22 user1608-key1
+3609 1 ssh-rsa 22key4plc22 user1609-key1
+3610 1 ssh-rsa 22key4plc22 user1610-key1
+3611 1 ssh-rsa 22key4plc22 user1611-key1
+3612 1 ssh-rsa 22key4plc22 user1612-key1
+3613 1 ssh-rsa 22key4plc22 user1613-key1
+3614 1 ssh-rsa 22key4plc22 user1614-key1
+3615 1 ssh-rsa 22key4plc22 user1615-key1
+3616 1 ssh-rsa 22key4plc22 user1616-key1
+3617 1 ssh-rsa 22key4plc22 user1617-key1
+3618 1 ssh-rsa 22key4plc22 user1618-key1
+3619 1 ssh-rsa 22key4plc22 user1619-key1
+3620 1 ssh-rsa 22key4plc22 user1620-key1
+3621 1 ssh-rsa 22key4plc22 user1621-key1
+3622 1 ssh-rsa 22key4plc22 user1622-key1
+3623 1 ssh-rsa 22key4plc22 user1623-key1
+3624 1 ssh-rsa 22key4plc22 user1624-key1
+3625 1 ssh-rsa 22key4plc22 user1625-key1
+3626 1 ssh-rsa 22key4plc22 user1626-key1
+3627 1 ssh-rsa 22key4plc22 user1627-key1
+3628 1 ssh-rsa 22key4plc22 user1628-key1
+3629 1 ssh-rsa 22key4plc22 user1629-key1
+3630 1 ssh-rsa 22key4plc22 user1630-key1
+3631 1 ssh-rsa 22key4plc22 user1631-key1
+3632 1 ssh-rsa 22key4plc22 user1632-key1
+3633 1 ssh-rsa 22key4plc22 user1633-key1
+3634 1 ssh-rsa 22key4plc22 user1634-key1
+3635 1 ssh-rsa 22key4plc22 user1635-key1
+3636 1 ssh-rsa 22key4plc22 user1636-key1
+3637 1 ssh-rsa 22key4plc22 user1637-key1
+3638 1 ssh-rsa 22key4plc22 user1638-key1
+3639 1 ssh-rsa 22key4plc22 user1639-key1
+3640 1 ssh-rsa 22key4plc22 user1640-key1
+3641 1 ssh-rsa 22key4plc22 user1641-key1
+3642 1 ssh-rsa 22key4plc22 user1642-key1
+3643 1 ssh-rsa 22key4plc22 user1643-key1
+3644 1 ssh-rsa 22key4plc22 user1644-key1
+3645 1 ssh-rsa 22key4plc22 user1645-key1
+3646 1 ssh-rsa 22key4plc22 user1646-key1
+3647 1 ssh-rsa 22key4plc22 user1647-key1
+3648 1 ssh-rsa 22key4plc22 user1648-key1
+3649 1 ssh-rsa 22key4plc22 user1649-key1
+3650 1 ssh-rsa 22key4plc22 user1650-key1
+3651 1 ssh-rsa 22key4plc22 user1651-key1
+3652 1 ssh-rsa 22key4plc22 user1652-key1
+3653 1 ssh-rsa 22key4plc22 user1653-key1
+3654 1 ssh-rsa 22key4plc22 user1654-key1
+3655 1 ssh-rsa 22key4plc22 user1655-key1
+3656 1 ssh-rsa 22key4plc22 user1656-key1
+3657 1 ssh-rsa 22key4plc22 user1657-key1
+3658 1 ssh-rsa 22key4plc22 user1658-key1
+3659 1 ssh-rsa 22key4plc22 user1659-key1
+3660 1 ssh-rsa 22key4plc22 user1660-key1
+3661 1 ssh-rsa 22key4plc22 user1661-key1
+3662 1 ssh-rsa 22key4plc22 user1662-key1
+3663 1 ssh-rsa 22key4plc22 user1663-key1
+3664 1 ssh-rsa 22key4plc22 user1664-key1
+3665 1 ssh-rsa 22key4plc22 user1665-key1
+3666 1 ssh-rsa 22key4plc22 user1666-key1
+3667 1 ssh-rsa 22key4plc22 user1667-key1
+3668 1 ssh-rsa 22key4plc22 user1668-key1
+3669 1 ssh-rsa 22key4plc22 user1669-key1
+3670 1 ssh-rsa 22key4plc22 user1670-key1
+3671 1 ssh-rsa 22key4plc22 user1671-key1
+3672 1 ssh-rsa 22key4plc22 user1672-key1
+3673 1 ssh-rsa 22key4plc22 user1673-key1
+3674 1 ssh-rsa 22key4plc22 user1674-key1
+3675 1 ssh-rsa 22key4plc22 user1675-key1
+3676 1 ssh-rsa 22key4plc22 user1676-key1
+3677 1 ssh-rsa 22key4plc22 user1677-key1
+3678 1 ssh-rsa 22key4plc22 user1678-key1
+3679 1 ssh-rsa 22key4plc22 user1679-key1
+3680 1 ssh-rsa 22key4plc22 user1680-key1
+3681 1 ssh-rsa 22key4plc22 user1681-key1
+3682 1 ssh-rsa 22key4plc22 user1682-key1
+3683 1 ssh-rsa 22key4plc22 user1683-key1
+3684 1 ssh-rsa 22key4plc22 user1684-key1
+3685 1 ssh-rsa 22key4plc22 user1685-key1
+3686 1 ssh-rsa 22key4plc22 user1686-key1
+3687 1 ssh-rsa 22key4plc22 user1687-key1
+3688 1 ssh-rsa 22key4plc22 user1688-key1
+3689 1 ssh-rsa 22key4plc22 user1689-key1
+3690 1 ssh-rsa 22key4plc22 user1690-key1
+3691 1 ssh-rsa 22key4plc22 user1691-key1
+3692 1 ssh-rsa 22key4plc22 user1692-key1
+3693 1 ssh-rsa 22key4plc22 user1693-key1
+3694 1 ssh-rsa 22key4plc22 user1694-key1
+3695 1 ssh-rsa 22key4plc22 user1695-key1
+3696 1 ssh-rsa 22key4plc22 user1696-key1
+3697 1 ssh-rsa 22key4plc22 user1697-key1
+3698 1 ssh-rsa 22key4plc22 user1698-key1
+3699 1 ssh-rsa 22key4plc22 user1699-key1
+3700 1 ssh-rsa 22key4plc22 user1700-key1
+3701 1 ssh-rsa 22key4plc22 user1701-key1
+3702 1 ssh-rsa 22key4plc22 user1702-key1
+3703 1 ssh-rsa 22key4plc22 user1703-key1
+3704 1 ssh-rsa 22key4plc22 user1704-key1
+3705 1 ssh-rsa 22key4plc22 user1705-key1
+3706 1 ssh-rsa 22key4plc22 user1706-key1
+3707 1 ssh-rsa 22key4plc22 user1707-key1
+3708 1 ssh-rsa 22key4plc22 user1708-key1
+3709 1 ssh-rsa 22key4plc22 user1709-key1
+3710 1 ssh-rsa 22key4plc22 user1710-key1
+3711 1 ssh-rsa 22key4plc22 user1711-key1
+3712 1 ssh-rsa 22key4plc22 user1712-key1
+3713 1 ssh-rsa 22key4plc22 user1713-key1
+3714 1 ssh-rsa 22key4plc22 user1714-key1
+3715 1 ssh-rsa 22key4plc22 user1715-key1
+3716 1 ssh-rsa 22key4plc22 user1716-key1
+3717 1 ssh-rsa 22key4plc22 user1717-key1
+3718 1 ssh-rsa 22key4plc22 user1718-key1
+3719 1 ssh-rsa 22key4plc22 user1719-key1
+3720 1 ssh-rsa 22key4plc22 user1720-key1
+3721 1 ssh-rsa 22key4plc22 user1721-key1
+3722 1 ssh-rsa 22key4plc22 user1722-key1
+3723 1 ssh-rsa 22key4plc22 user1723-key1
+3724 1 ssh-rsa 22key4plc22 user1724-key1
+3725 1 ssh-rsa 22key4plc22 user1725-key1
+3726 1 ssh-rsa 22key4plc22 user1726-key1
+3727 1 ssh-rsa 22key4plc22 user1727-key1
+3728 1 ssh-rsa 22key4plc22 user1728-key1
+3729 1 ssh-rsa 22key4plc22 user1729-key1
+3730 1 ssh-rsa 22key4plc22 user1730-key1
+3731 1 ssh-rsa 22key4plc22 user1731-key1
+3732 1 ssh-rsa 22key4plc22 user1732-key1
+3733 1 ssh-rsa 22key4plc22 user1733-key1
+3734 1 ssh-rsa 22key4plc22 user1734-key1
+3735 1 ssh-rsa 22key4plc22 user1735-key1
+3736 1 ssh-rsa 22key4plc22 user1736-key1
+3737 1 ssh-rsa 22key4plc22 user1737-key1
+3738 1 ssh-rsa 22key4plc22 user1738-key1
+3739 1 ssh-rsa 22key4plc22 user1739-key1
+3740 1 ssh-rsa 22key4plc22 user1740-key1
+3741 1 ssh-rsa 22key4plc22 user1741-key1
+3742 1 ssh-rsa 22key4plc22 user1742-key1
+3743 1 ssh-rsa 22key4plc22 user1743-key1
+3744 1 ssh-rsa 22key4plc22 user1744-key1
+3745 1 ssh-rsa 22key4plc22 user1745-key1
+3746 1 ssh-rsa 22key4plc22 user1746-key1
+3747 1 ssh-rsa 22key4plc22 user1747-key1
+3748 1 ssh-rsa 22key4plc22 user1748-key1
+3749 1 ssh-rsa 22key4plc22 user1749-key1
+3750 1 ssh-rsa 22key4plc22 user1750-key1
+3751 1 ssh-rsa 22key4plc22 user1751-key1
+3752 1 ssh-rsa 22key4plc22 user1752-key1
+3753 1 ssh-rsa 22key4plc22 user1753-key1
+3754 1 ssh-rsa 22key4plc22 user1754-key1
+3755 1 ssh-rsa 22key4plc22 user1755-key1
+3756 1 ssh-rsa 22key4plc22 user1756-key1
+3757 1 ssh-rsa 22key4plc22 user1757-key1
+3758 1 ssh-rsa 22key4plc22 user1758-key1
+3759 1 ssh-rsa 22key4plc22 user1759-key1
+3760 1 ssh-rsa 22key4plc22 user1760-key1
+3761 1 ssh-rsa 22key4plc22 user1761-key1
+3762 1 ssh-rsa 22key4plc22 user1762-key1
+3763 1 ssh-rsa 22key4plc22 user1763-key1
+3764 1 ssh-rsa 22key4plc22 user1764-key1
+3765 1 ssh-rsa 22key4plc22 user1765-key1
+3766 1 ssh-rsa 22key4plc22 user1766-key1
+3767 1 ssh-rsa 22key4plc22 user1767-key1
+3768 1 ssh-rsa 22key4plc22 user1768-key1
+3769 1 ssh-rsa 22key4plc22 user1769-key1
+3770 1 ssh-rsa 22key4plc22 user1770-key1
+3771 1 ssh-rsa 22key4plc22 user1771-key1
+3772 1 ssh-rsa 22key4plc22 user1772-key1
+3773 1 ssh-rsa 22key4plc22 user1773-key1
+3774 1 ssh-rsa 22key4plc22 user1774-key1
+3775 1 ssh-rsa 22key4plc22 user1775-key1
+3776 1 ssh-rsa 22key4plc22 user1776-key1
+3777 1 ssh-rsa 22key4plc22 user1777-key1
+3778 1 ssh-rsa 22key4plc22 user1778-key1
+3779 1 ssh-rsa 22key4plc22 user1779-key1
+3780 1 ssh-rsa 22key4plc22 user1780-key1
+3781 1 ssh-rsa 22key4plc22 user1781-key1
+3782 1 ssh-rsa 22key4plc22 user1782-key1
+3783 1 ssh-rsa 22key4plc22 user1783-key1
+3784 1 ssh-rsa 22key4plc22 user1784-key1
+3785 1 ssh-rsa 22key4plc22 user1785-key1
+3786 1 ssh-rsa 22key4plc22 user1786-key1
+3787 1 ssh-rsa 22key4plc22 user1787-key1
+3788 1 ssh-rsa 22key4plc22 user1788-key1
+3789 1 ssh-rsa 22key4plc22 user1789-key1
+3790 1 ssh-rsa 22key4plc22 user1790-key1
+3791 1 ssh-rsa 22key4plc22 user1791-key1
+3792 1 ssh-rsa 22key4plc22 user1792-key1
+3793 1 ssh-rsa 22key4plc22 user1793-key1
+3794 1 ssh-rsa 22key4plc22 user1794-key1
+3795 1 ssh-rsa 22key4plc22 user1795-key1
+3796 1 ssh-rsa 22key4plc22 user1796-key1
+3797 1 ssh-rsa 22key4plc22 user1797-key1
+3798 1 ssh-rsa 22key4plc22 user1798-key1
+3799 1 ssh-rsa 22key4plc22 user1799-key1
+3800 1 ssh-rsa 22key4plc22 user1800-key1
+3801 1 ssh-rsa 22key4plc22 user1801-key1
+3802 1 ssh-rsa 22key4plc22 user1802-key1
+3803 1 ssh-rsa 22key4plc22 user1803-key1
+3804 1 ssh-rsa 22key4plc22 user1804-key1
+3805 1 ssh-rsa 22key4plc22 user1805-key1
+3806 1 ssh-rsa 22key4plc22 user1806-key1
+3807 1 ssh-rsa 22key4plc22 user1807-key1
+3808 1 ssh-rsa 22key4plc22 user1808-key1
+3809 1 ssh-rsa 22key4plc22 user1809-key1
+3810 1 ssh-rsa 22key4plc22 user1810-key1
+3811 1 ssh-rsa 22key4plc22 user1811-key1
+3812 1 ssh-rsa 22key4plc22 user1812-key1
+3813 1 ssh-rsa 22key4plc22 user1813-key1
+3814 1 ssh-rsa 22key4plc22 user1814-key1
+3815 1 ssh-rsa 22key4plc22 user1815-key1
+3816 1 ssh-rsa 22key4plc22 user1816-key1
+3817 1 ssh-rsa 22key4plc22 user1817-key1
+3818 1 ssh-rsa 22key4plc22 user1818-key1
+3819 1 ssh-rsa 22key4plc22 user1819-key1
+3820 1 ssh-rsa 22key4plc22 user1820-key1
+3821 1 ssh-rsa 22key4plc22 user1821-key1
+3822 1 ssh-rsa 22key4plc22 user1822-key1
+3823 1 ssh-rsa 22key4plc22 user1823-key1
+3824 1 ssh-rsa 22key4plc22 user1824-key1
+3825 1 ssh-rsa 22key4plc22 user1825-key1
+3826 1 ssh-rsa 22key4plc22 user1826-key1
+3827 1 ssh-rsa 22key4plc22 user1827-key1
+3828 1 ssh-rsa 22key4plc22 user1828-key1
+3829 1 ssh-rsa 22key4plc22 user1829-key1
+3830 1 ssh-rsa 22key4plc22 user1830-key1
+3831 1 ssh-rsa 22key4plc22 user1831-key1
+3832 1 ssh-rsa 22key4plc22 user1832-key1
+3833 1 ssh-rsa 22key4plc22 user1833-key1
+3834 1 ssh-rsa 22key4plc22 user1834-key1
+3835 1 ssh-rsa 22key4plc22 user1835-key1
+3836 1 ssh-rsa 22key4plc22 user1836-key1
+3837 1 ssh-rsa 22key4plc22 user1837-key1
+3838 1 ssh-rsa 22key4plc22 user1838-key1
+3839 1 ssh-rsa 22key4plc22 user1839-key1
+3840 1 ssh-rsa 22key4plc22 user1840-key1
+3841 1 ssh-rsa 22key4plc22 user1841-key1
+3842 1 ssh-rsa 22key4plc22 user1842-key1
+3843 1 ssh-rsa 22key4plc22 user1843-key1
+3844 1 ssh-rsa 22key4plc22 user1844-key1
+3845 1 ssh-rsa 22key4plc22 user1845-key1
+3846 1 ssh-rsa 22key4plc22 user1846-key1
+3847 1 ssh-rsa 22key4plc22 user1847-key1
+3848 1 ssh-rsa 22key4plc22 user1848-key1
+3849 1 ssh-rsa 22key4plc22 user1849-key1
+3850 1 ssh-rsa 22key4plc22 user1850-key1
+3851 1 ssh-rsa 22key4plc22 user1851-key1
+3852 1 ssh-rsa 22key4plc22 user1852-key1
+3853 1 ssh-rsa 22key4plc22 user1853-key1
+3854 1 ssh-rsa 22key4plc22 user1854-key1
+3855 1 ssh-rsa 22key4plc22 user1855-key1
+3856 1 ssh-rsa 22key4plc22 user1856-key1
+3857 1 ssh-rsa 22key4plc22 user1857-key1
+3858 1 ssh-rsa 22key4plc22 user1858-key1
+3859 1 ssh-rsa 22key4plc22 user1859-key1
+3860 1 ssh-rsa 22key4plc22 user1860-key1
+3861 1 ssh-rsa 22key4plc22 user1861-key1
+3862 1 ssh-rsa 22key4plc22 user1862-key1
+3863 1 ssh-rsa 22key4plc22 user1863-key1
+3864 1 ssh-rsa 22key4plc22 user1864-key1
+3865 1 ssh-rsa 22key4plc22 user1865-key1
+3866 1 ssh-rsa 22key4plc22 user1866-key1
+3867 1 ssh-rsa 22key4plc22 user1867-key1
+3868 1 ssh-rsa 22key4plc22 user1868-key1
+3869 1 ssh-rsa 22key4plc22 user1869-key1
+3870 1 ssh-rsa 22key4plc22 user1870-key1
+3871 1 ssh-rsa 22key4plc22 user1871-key1
+3872 1 ssh-rsa 22key4plc22 user1872-key1
+3873 1 ssh-rsa 22key4plc22 user1873-key1
+3874 1 ssh-rsa 22key4plc22 user1874-key1
+3875 1 ssh-rsa 22key4plc22 user1875-key1
+3876 1 ssh-rsa 22key4plc22 user1876-key1
+3877 1 ssh-rsa 22key4plc22 user1877-key1
+3878 1 ssh-rsa 22key4plc22 user1878-key1
+3879 1 ssh-rsa 22key4plc22 user1879-key1
+3880 1 ssh-rsa 22key4plc22 user1880-key1
+3881 1 ssh-rsa 22key4plc22 user1881-key1
+3882 1 ssh-rsa 22key4plc22 user1882-key1
+3883 1 ssh-rsa 22key4plc22 user1883-key1
+3884 1 ssh-rsa 22key4plc22 user1884-key1
+3885 1 ssh-rsa 22key4plc22 user1885-key1
+3886 1 ssh-rsa 22key4plc22 user1886-key1
+3887 1 ssh-rsa 22key4plc22 user1887-key1
+3888 1 ssh-rsa 22key4plc22 user1888-key1
+3889 1 ssh-rsa 22key4plc22 user1889-key1
+3890 1 ssh-rsa 22key4plc22 user1890-key1
+3891 1 ssh-rsa 22key4plc22 user1891-key1
+3892 1 ssh-rsa 22key4plc22 user1892-key1
+3893 1 ssh-rsa 22key4plc22 user1893-key1
+3894 1 ssh-rsa 22key4plc22 user1894-key1
+3895 1 ssh-rsa 22key4plc22 user1895-key1
+3896 1 ssh-rsa 22key4plc22 user1896-key1
+3897 1 ssh-rsa 22key4plc22 user1897-key1
+3898 1 ssh-rsa 22key4plc22 user1898-key1
+3899 1 ssh-rsa 22key4plc22 user1899-key1
+3900 1 ssh-rsa 22key4plc22 user1900-key1
+3901 1 ssh-rsa 22key4plc22 user1901-key1
+3902 1 ssh-rsa 22key4plc22 user1902-key1
+3903 1 ssh-rsa 22key4plc22 user1903-key1
+3904 1 ssh-rsa 22key4plc22 user1904-key1
+3905 1 ssh-rsa 22key4plc22 user1905-key1
+3906 1 ssh-rsa 22key4plc22 user1906-key1
+3907 1 ssh-rsa 22key4plc22 user1907-key1
+3908 1 ssh-rsa 22key4plc22 user1908-key1
+3909 1 ssh-rsa 22key4plc22 user1909-key1
+3910 1 ssh-rsa 22key4plc22 user1910-key1
+3911 1 ssh-rsa 22key4plc22 user1911-key1
+3912 1 ssh-rsa 22key4plc22 user1912-key1
+3913 1 ssh-rsa 22key4plc22 user1913-key1
+3914 1 ssh-rsa 22key4plc22 user1914-key1
+3915 1 ssh-rsa 22key4plc22 user1915-key1
+3916 1 ssh-rsa 22key4plc22 user1916-key1
+3917 1 ssh-rsa 22key4plc22 user1917-key1
+3918 1 ssh-rsa 22key4plc22 user1918-key1
+3919 1 ssh-rsa 22key4plc22 user1919-key1
+3920 1 ssh-rsa 22key4plc22 user1920-key1
+3921 1 ssh-rsa 22key4plc22 user1921-key1
+3922 1 ssh-rsa 22key4plc22 user1922-key1
+3923 1 ssh-rsa 22key4plc22 user1923-key1
+3924 1 ssh-rsa 22key4plc22 user1924-key1
+3925 1 ssh-rsa 22key4plc22 user1925-key1
+3926 1 ssh-rsa 22key4plc22 user1926-key1
+3927 1 ssh-rsa 22key4plc22 user1927-key1
+3928 1 ssh-rsa 22key4plc22 user1928-key1
+3929 1 ssh-rsa 22key4plc22 user1929-key1
+3930 1 ssh-rsa 22key4plc22 user1930-key1
+3931 1 ssh-rsa 22key4plc22 user1931-key1
+3932 1 ssh-rsa 22key4plc22 user1932-key1
+3933 1 ssh-rsa 22key4plc22 user1933-key1
+3934 1 ssh-rsa 22key4plc22 user1934-key1
+3935 1 ssh-rsa 22key4plc22 user1935-key1
+3936 1 ssh-rsa 22key4plc22 user1936-key1
+3937 1 ssh-rsa 22key4plc22 user1937-key1
+3938 1 ssh-rsa 22key4plc22 user1938-key1
+3939 1 ssh-rsa 22key4plc22 user1939-key1
+3940 1 ssh-rsa 22key4plc22 user1940-key1
+3941 1 ssh-rsa 22key4plc22 user1941-key1
+3942 1 ssh-rsa 22key4plc22 user1942-key1
+3943 1 ssh-rsa 22key4plc22 user1943-key1
+3944 1 ssh-rsa 22key4plc22 user1944-key1
+3945 1 ssh-rsa 22key4plc22 user1945-key1
+3946 1 ssh-rsa 22key4plc22 user1946-key1
+3947 1 ssh-rsa 22key4plc22 user1947-key1
+3948 1 ssh-rsa 22key4plc22 user1948-key1
+3949 1 ssh-rsa 22key4plc22 user1949-key1
+3950 1 ssh-rsa 22key4plc22 user1950-key1
+3951 1 ssh-rsa 22key4plc22 user1951-key1
+3952 1 ssh-rsa 22key4plc22 user1952-key1
+3953 1 ssh-rsa 22key4plc22 user1953-key1
+3954 1 ssh-rsa 22key4plc22 user1954-key1
+3955 1 ssh-rsa 22key4plc22 user1955-key1
+3956 1 ssh-rsa 22key4plc22 user1956-key1
+3957 1 ssh-rsa 22key4plc22 user1957-key1
+3958 1 ssh-rsa 22key4plc22 user1958-key1
+3959 1 ssh-rsa 22key4plc22 user1959-key1
+3960 1 ssh-rsa 22key4plc22 user1960-key1
+3961 1 ssh-rsa 22key4plc22 user1961-key1
+3962 1 ssh-rsa 22key4plc22 user1962-key1
+3963 1 ssh-rsa 22key4plc22 user1963-key1
+3964 1 ssh-rsa 22key4plc22 user1964-key1
+3965 1 ssh-rsa 22key4plc22 user1965-key1
+3966 1 ssh-rsa 22key4plc22 user1966-key1
+3967 1 ssh-rsa 22key4plc22 user1967-key1
+3968 1 ssh-rsa 22key4plc22 user1968-key1
+3969 1 ssh-rsa 22key4plc22 user1969-key1
+3970 1 ssh-rsa 22key4plc22 user1970-key1
+3971 1 ssh-rsa 22key4plc22 user1971-key1
+3972 1 ssh-rsa 22key4plc22 user1972-key1
+3973 1 ssh-rsa 22key4plc22 user1973-key1
+3974 1 ssh-rsa 22key4plc22 user1974-key1
+3975 1 ssh-rsa 22key4plc22 user1975-key1
+3976 1 ssh-rsa 22key4plc22 user1976-key1
+3977 1 ssh-rsa 22key4plc22 user1977-key1
+3978 1 ssh-rsa 22key4plc22 user1978-key1
+3979 1 ssh-rsa 22key4plc22 user1979-key1
+3980 1 ssh-rsa 22key4plc22 user1980-key1
+3981 1 ssh-rsa 22key4plc22 user1981-key1
+3982 1 ssh-rsa 22key4plc22 user1982-key1
+3983 1 ssh-rsa 22key4plc22 user1983-key1
+3984 1 ssh-rsa 22key4plc22 user1984-key1
+3985 1 ssh-rsa 22key4plc22 user1985-key1
+3986 1 ssh-rsa 22key4plc22 user1986-key1
+3987 1 ssh-rsa 22key4plc22 user1987-key1
+3988 1 ssh-rsa 22key4plc22 user1988-key1
+3989 1 ssh-rsa 22key4plc22 user1989-key1
+3990 1 ssh-rsa 22key4plc22 user1990-key1
+3991 1 ssh-rsa 22key4plc22 user1991-key1
+3992 1 ssh-rsa 22key4plc22 user1992-key1
+3993 1 ssh-rsa 22key4plc22 user1993-key1
+3994 1 ssh-rsa 22key4plc22 user1994-key1
+3995 1 ssh-rsa 22key4plc22 user1995-key1
+3996 1 ssh-rsa 22key4plc22 user1996-key1
+3997 1 ssh-rsa 22key4plc22 user1997-key1
+3998 1 ssh-rsa 22key4plc22 user1998-key1
+3999 1 ssh-rsa 22key4plc22 user1999-key1
+4000 1 ssh-rsa 22key4plc22 user2000-key1
+01: PERSONS
+1 None maint@localhost.localdomain keys: [] sites: []
+2 None root@plc1.org keys: [] sites: [1]
+3 None peer1@planet-lab.org keys: [] sites: []
+4 None peer2@planet-lab.org keys: [] sites: []
+5 None user1-1@plc1.org keys: [1] sites: []
+6 None user1-2@plc1.org keys: [2] sites: []
+7 None user1-3@plc1.org keys: [3] sites: []
+8 None user1-4@plc1.org keys: [4] sites: []
+9 None user1-5@plc1.org keys: [5] sites: []
+10 None user1-6@plc1.org keys: [6] sites: []
+11 None user1-7@plc1.org keys: [7] sites: []
+12 None user1-8@plc1.org keys: [8] sites: []
+13 None user1-9@plc1.org keys: [9] sites: []
+14 None user1-10@plc1.org keys: [10] sites: []
+15 None user1-11@plc1.org keys: [11] sites: []
+16 None user1-12@plc1.org keys: [12] sites: []
+17 None user1-13@plc1.org keys: [13] sites: []
+18 None user1-14@plc1.org keys: [14] sites: []
+19 None user1-15@plc1.org keys: [15] sites: []
+20 None user1-16@plc1.org keys: [16] sites: []
+21 None user1-17@plc1.org keys: [17] sites: []
+22 None user1-18@plc1.org keys: [18] sites: []
+23 None user1-19@plc1.org keys: [19] sites: []
+24 None user1-20@plc1.org keys: [20] sites: []
+25 None user1-21@plc1.org keys: [21] sites: []
+26 None user1-22@plc1.org keys: [22] sites: []
+27 None user1-23@plc1.org keys: [23] sites: []
+28 None user1-24@plc1.org keys: [24] sites: []
+29 None user1-25@plc1.org keys: [25] sites: []
+30 None user1-26@plc1.org keys: [26] sites: []
+31 None user1-27@plc1.org keys: [27] sites: []
+32 None user1-28@plc1.org keys: [28] sites: []
+33 None user1-29@plc1.org keys: [29] sites: []
+34 None user1-30@plc1.org keys: [30] sites: []
+35 None user1-31@plc1.org keys: [31] sites: []
+36 None user1-32@plc1.org keys: [32] sites: []
+37 None user1-33@plc1.org keys: [33] sites: []
+38 None user1-34@plc1.org keys: [34] sites: []
+39 None user1-35@plc1.org keys: [35] sites: []
+40 None user1-36@plc1.org keys: [36] sites: []
+41 None user1-37@plc1.org keys: [37] sites: []
+42 None user1-38@plc1.org keys: [38] sites: []
+43 None user1-39@plc1.org keys: [39] sites: []
+44 None user1-40@plc1.org keys: [40] sites: []
+45 None user1-41@plc1.org keys: [41] sites: []
+46 None user1-42@plc1.org keys: [42] sites: []
+47 None user1-43@plc1.org keys: [43] sites: []
+48 None user1-44@plc1.org keys: [44] sites: []
+49 None user1-45@plc1.org keys: [45] sites: []
+50 None user1-46@plc1.org keys: [46] sites: []
+51 None user1-47@plc1.org keys: [47] sites: []
+52 None user1-48@plc1.org keys: [48] sites: []
+53 None user1-49@plc1.org keys: [49] sites: []
+54 None user1-50@plc1.org keys: [50] sites: []
+55 None user1-51@plc1.org keys: [51] sites: []
+56 None user1-52@plc1.org keys: [52] sites: []
+57 None user1-53@plc1.org keys: [53] sites: []
+58 None user1-54@plc1.org keys: [54] sites: []
+59 None user1-55@plc1.org keys: [55] sites: []
+60 None user1-56@plc1.org keys: [56] sites: []
+61 None user1-57@plc1.org keys: [57] sites: []
+62 None user1-58@plc1.org keys: [58] sites: []
+63 None user1-59@plc1.org keys: [59] sites: []
+64 None user1-60@plc1.org keys: [60] sites: []
+65 None user1-61@plc1.org keys: [61] sites: []
+66 None user1-62@plc1.org keys: [62] sites: []
+67 None user1-63@plc1.org keys: [63] sites: []
+68 None user1-64@plc1.org keys: [64] sites: []
+69 None user1-65@plc1.org keys: [65] sites: []
+70 None user1-66@plc1.org keys: [66] sites: []
+71 None user1-67@plc1.org keys: [67] sites: []
+72 None user1-68@plc1.org keys: [68] sites: []
+73 None user1-69@plc1.org keys: [69] sites: []
+74 None user1-70@plc1.org keys: [70] sites: []
+75 None user1-71@plc1.org keys: [71] sites: []
+76 None user1-72@plc1.org keys: [72] sites: []
+77 None user1-73@plc1.org keys: [73] sites: []
+78 None user1-74@plc1.org keys: [74] sites: []
+79 None user1-75@plc1.org keys: [75] sites: []
+80 None user1-76@plc1.org keys: [76] sites: []
+81 None user1-77@plc1.org keys: [77] sites: []
+82 None user1-78@plc1.org keys: [78] sites: []
+83 None user1-79@plc1.org keys: [79] sites: []
+84 None user1-80@plc1.org keys: [80] sites: []
+85 None user1-81@plc1.org keys: [81] sites: []
+86 None user1-82@plc1.org keys: [82] sites: []
+87 None user1-83@plc1.org keys: [83] sites: []
+88 None user1-84@plc1.org keys: [84] sites: []
+89 None user1-85@plc1.org keys: [85] sites: []
+90 None user1-86@plc1.org keys: [86] sites: []
+91 None user1-87@plc1.org keys: [87] sites: []
+92 None user1-88@plc1.org keys: [88] sites: []
+93 None user1-89@plc1.org keys: [89] sites: []
+94 None user1-90@plc1.org keys: [90] sites: []
+95 None user1-91@plc1.org keys: [91] sites: []
+96 None user1-92@plc1.org keys: [92] sites: []
+97 None user1-93@plc1.org keys: [93] sites: []
+98 None user1-94@plc1.org keys: [94] sites: []
+99 None user1-95@plc1.org keys: [95] sites: []
+100 None user1-96@plc1.org keys: [96] sites: []
+101 None user1-97@plc1.org keys: [97] sites: []
+102 None user1-98@plc1.org keys: [98] sites: []
+103 None user1-99@plc1.org keys: [99] sites: []
+104 None user1-100@plc1.org keys: [100] sites: []
+105 None user1-101@plc1.org keys: [101] sites: []
+106 None user1-102@plc1.org keys: [102] sites: []
+107 None user1-103@plc1.org keys: [103] sites: []
+108 None user1-104@plc1.org keys: [104] sites: []
+109 None user1-105@plc1.org keys: [105] sites: []
+110 None user1-106@plc1.org keys: [106] sites: []
+111 None user1-107@plc1.org keys: [107] sites: []
+112 None user1-108@plc1.org keys: [108] sites: []
+113 None user1-109@plc1.org keys: [109] sites: []
+114 None user1-110@plc1.org keys: [110] sites: []
+115 None user1-111@plc1.org keys: [111] sites: []
+116 None user1-112@plc1.org keys: [112] sites: []
+117 None user1-113@plc1.org keys: [113] sites: []
+118 None user1-114@plc1.org keys: [114] sites: []
+119 None user1-115@plc1.org keys: [115] sites: []
+120 None user1-116@plc1.org keys: [116] sites: []
+121 None user1-117@plc1.org keys: [117] sites: []
+122 None user1-118@plc1.org keys: [118] sites: []
+123 None user1-119@plc1.org keys: [119] sites: []
+124 None user1-120@plc1.org keys: [120] sites: []
+125 None user1-121@plc1.org keys: [121] sites: []
+126 None user1-122@plc1.org keys: [122] sites: []
+127 None user1-123@plc1.org keys: [123] sites: []
+128 None user1-124@plc1.org keys: [124] sites: []
+129 None user1-125@plc1.org keys: [125] sites: []
+130 None user1-126@plc1.org keys: [126] sites: []
+131 None user1-127@plc1.org keys: [127] sites: []
+132 None user1-128@plc1.org keys: [128] sites: []
+133 None user1-129@plc1.org keys: [129] sites: []
+134 None user1-130@plc1.org keys: [130] sites: []
+135 None user1-131@plc1.org keys: [131] sites: []
+136 None user1-132@plc1.org keys: [132] sites: []
+137 None user1-133@plc1.org keys: [133] sites: []
+138 None user1-134@plc1.org keys: [134] sites: []
+139 None user1-135@plc1.org keys: [135] sites: []
+140 None user1-136@plc1.org keys: [136] sites: []
+141 None user1-137@plc1.org keys: [137] sites: []
+142 None user1-138@plc1.org keys: [138] sites: []
+143 None user1-139@plc1.org keys: [139] sites: []
+144 None user1-140@plc1.org keys: [140] sites: []
+145 None user1-141@plc1.org keys: [141] sites: []
+146 None user1-142@plc1.org keys: [142] sites: []
+147 None user1-143@plc1.org keys: [143] sites: []
+148 None user1-144@plc1.org keys: [144] sites: []
+149 None user1-145@plc1.org keys: [145] sites: []
+150 None user1-146@plc1.org keys: [146] sites: []
+151 None user1-147@plc1.org keys: [147] sites: []
+152 None user1-148@plc1.org keys: [148] sites: []
+153 None user1-149@plc1.org keys: [149] sites: []
+154 None user1-150@plc1.org keys: [150] sites: []
+155 None user1-151@plc1.org keys: [151] sites: []
+156 None user1-152@plc1.org keys: [152] sites: []
+157 None user1-153@plc1.org keys: [153] sites: []
+158 None user1-154@plc1.org keys: [154] sites: []
+159 None user1-155@plc1.org keys: [155] sites: []
+160 None user1-156@plc1.org keys: [156] sites: []
+161 None user1-157@plc1.org keys: [157] sites: []
+162 None user1-158@plc1.org keys: [158] sites: []
+163 None user1-159@plc1.org keys: [159] sites: []
+164 None user1-160@plc1.org keys: [160] sites: []
+165 None user1-161@plc1.org keys: [161] sites: []
+166 None user1-162@plc1.org keys: [162] sites: []
+167 None user1-163@plc1.org keys: [163] sites: []
+168 None user1-164@plc1.org keys: [164] sites: []
+169 None user1-165@plc1.org keys: [165] sites: []
+170 None user1-166@plc1.org keys: [166] sites: []
+171 None user1-167@plc1.org keys: [167] sites: []
+172 None user1-168@plc1.org keys: [168] sites: []
+173 None user1-169@plc1.org keys: [169] sites: []
+174 None user1-170@plc1.org keys: [170] sites: []
+175 None user1-171@plc1.org keys: [171] sites: []
+176 None user1-172@plc1.org keys: [172] sites: []
+177 None user1-173@plc1.org keys: [173] sites: []
+178 None user1-174@plc1.org keys: [174] sites: []
+179 None user1-175@plc1.org keys: [175] sites: []
+180 None user1-176@plc1.org keys: [176] sites: []
+181 None user1-177@plc1.org keys: [177] sites: []
+182 None user1-178@plc1.org keys: [178] sites: []
+183 None user1-179@plc1.org keys: [179] sites: []
+184 None user1-180@plc1.org keys: [180] sites: []
+185 None user1-181@plc1.org keys: [181] sites: []
+186 None user1-182@plc1.org keys: [182] sites: []
+187 None user1-183@plc1.org keys: [183] sites: []
+188 None user1-184@plc1.org keys: [184] sites: []
+189 None user1-185@plc1.org keys: [185] sites: []
+190 None user1-186@plc1.org keys: [186] sites: []
+191 None user1-187@plc1.org keys: [187] sites: []
+192 None user1-188@plc1.org keys: [188] sites: []
+193 None user1-189@plc1.org keys: [189] sites: []
+194 None user1-190@plc1.org keys: [190] sites: []
+195 None user1-191@plc1.org keys: [191] sites: []
+196 None user1-192@plc1.org keys: [192] sites: []
+197 None user1-193@plc1.org keys: [193] sites: []
+198 None user1-194@plc1.org keys: [194] sites: []
+199 None user1-195@plc1.org keys: [195] sites: []
+200 None user1-196@plc1.org keys: [196] sites: []
+201 None user1-197@plc1.org keys: [197] sites: []
+202 None user1-198@plc1.org keys: [198] sites: []
+203 None user1-199@plc1.org keys: [199] sites: []
+204 None user1-200@plc1.org keys: [200] sites: []
+205 None user1-201@plc1.org keys: [201] sites: []
+206 None user1-202@plc1.org keys: [202] sites: []
+207 None user1-203@plc1.org keys: [203] sites: []
+208 None user1-204@plc1.org keys: [204] sites: []
+209 None user1-205@plc1.org keys: [205] sites: []
+210 None user1-206@plc1.org keys: [206] sites: []
+211 None user1-207@plc1.org keys: [207] sites: []
+212 None user1-208@plc1.org keys: [208] sites: []
+213 None user1-209@plc1.org keys: [209] sites: []
+214 None user1-210@plc1.org keys: [210] sites: []
+215 None user1-211@plc1.org keys: [211] sites: []
+216 None user1-212@plc1.org keys: [212] sites: []
+217 None user1-213@plc1.org keys: [213] sites: []
+218 None user1-214@plc1.org keys: [214] sites: []
+219 None user1-215@plc1.org keys: [215] sites: []
+220 None user1-216@plc1.org keys: [216] sites: []
+221 None user1-217@plc1.org keys: [217] sites: []
+222 None user1-218@plc1.org keys: [218] sites: []
+223 None user1-219@plc1.org keys: [219] sites: []
+224 None user1-220@plc1.org keys: [220] sites: []
+225 None user1-221@plc1.org keys: [221] sites: []
+226 None user1-222@plc1.org keys: [222] sites: []
+227 None user1-223@plc1.org keys: [223] sites: []
+228 None user1-224@plc1.org keys: [224] sites: []
+229 None user1-225@plc1.org keys: [225] sites: []
+230 None user1-226@plc1.org keys: [226] sites: []
+231 None user1-227@plc1.org keys: [227] sites: []
+232 None user1-228@plc1.org keys: [228] sites: []
+233 None user1-229@plc1.org keys: [229] sites: []
+234 None user1-230@plc1.org keys: [230] sites: []
+235 None user1-231@plc1.org keys: [231] sites: []
+236 None user1-232@plc1.org keys: [232] sites: []
+237 None user1-233@plc1.org keys: [233] sites: []
+238 None user1-234@plc1.org keys: [234] sites: []
+239 None user1-235@plc1.org keys: [235] sites: []
+240 None user1-236@plc1.org keys: [236] sites: []
+241 None user1-237@plc1.org keys: [237] sites: []
+242 None user1-238@plc1.org keys: [238] sites: []
+243 None user1-239@plc1.org keys: [239] sites: []
+244 None user1-240@plc1.org keys: [240] sites: []
+245 None user1-241@plc1.org keys: [241] sites: []
+246 None user1-242@plc1.org keys: [242] sites: []
+247 None user1-243@plc1.org keys: [243] sites: []
+248 None user1-244@plc1.org keys: [244] sites: []
+249 None user1-245@plc1.org keys: [245] sites: []
+250 None user1-246@plc1.org keys: [246] sites: []
+251 None user1-247@plc1.org keys: [247] sites: []
+252 None user1-248@plc1.org keys: [248] sites: []
+253 None user1-249@plc1.org keys: [249] sites: []
+254 None user1-250@plc1.org keys: [250] sites: []
+255 None user1-251@plc1.org keys: [251] sites: []
+256 None user1-252@plc1.org keys: [252] sites: []
+257 None user1-253@plc1.org keys: [253] sites: []
+258 None user1-254@plc1.org keys: [254] sites: []
+259 None user1-255@plc1.org keys: [255] sites: []
+260 None user1-256@plc1.org keys: [256] sites: []
+261 None user1-257@plc1.org keys: [257] sites: []
+262 None user1-258@plc1.org keys: [258] sites: []
+263 None user1-259@plc1.org keys: [259] sites: []
+264 None user1-260@plc1.org keys: [260] sites: []
+265 None user1-261@plc1.org keys: [261] sites: []
+266 None user1-262@plc1.org keys: [262] sites: []
+267 None user1-263@plc1.org keys: [263] sites: []
+268 None user1-264@plc1.org keys: [264] sites: []
+269 None user1-265@plc1.org keys: [265] sites: []
+270 None user1-266@plc1.org keys: [266] sites: []
+271 None user1-267@plc1.org keys: [267] sites: []
+272 None user1-268@plc1.org keys: [268] sites: []
+273 None user1-269@plc1.org keys: [269] sites: []
+274 None user1-270@plc1.org keys: [270] sites: []
+275 None user1-271@plc1.org keys: [271] sites: []
+276 None user1-272@plc1.org keys: [272] sites: []
+277 None user1-273@plc1.org keys: [273] sites: []
+278 None user1-274@plc1.org keys: [274] sites: []
+279 None user1-275@plc1.org keys: [275] sites: []
+280 None user1-276@plc1.org keys: [276] sites: []
+281 None user1-277@plc1.org keys: [277] sites: []
+282 None user1-278@plc1.org keys: [278] sites: []
+283 None user1-279@plc1.org keys: [279] sites: []
+284 None user1-280@plc1.org keys: [280] sites: []
+285 None user1-281@plc1.org keys: [281] sites: []
+286 None user1-282@plc1.org keys: [282] sites: []
+287 None user1-283@plc1.org keys: [283] sites: []
+288 None user1-284@plc1.org keys: [284] sites: []
+289 None user1-285@plc1.org keys: [285] sites: []
+290 None user1-286@plc1.org keys: [286] sites: []
+291 None user1-287@plc1.org keys: [287] sites: []
+292 None user1-288@plc1.org keys: [288] sites: []
+293 None user1-289@plc1.org keys: [289] sites: []
+294 None user1-290@plc1.org keys: [290] sites: []
+295 None user1-291@plc1.org keys: [291] sites: []
+296 None user1-292@plc1.org keys: [292] sites: []
+297 None user1-293@plc1.org keys: [293] sites: []
+298 None user1-294@plc1.org keys: [294] sites: []
+299 None user1-295@plc1.org keys: [295] sites: []
+300 None user1-296@plc1.org keys: [296] sites: []
+301 None user1-297@plc1.org keys: [297] sites: []
+302 None user1-298@plc1.org keys: [298] sites: []
+303 None user1-299@plc1.org keys: [299] sites: []
+304 None user1-300@plc1.org keys: [300] sites: []
+305 None user1-301@plc1.org keys: [301] sites: []
+306 None user1-302@plc1.org keys: [302] sites: []
+307 None user1-303@plc1.org keys: [303] sites: []
+308 None user1-304@plc1.org keys: [304] sites: []
+309 None user1-305@plc1.org keys: [305] sites: []
+310 None user1-306@plc1.org keys: [306] sites: []
+311 None user1-307@plc1.org keys: [307] sites: []
+312 None user1-308@plc1.org keys: [308] sites: []
+313 None user1-309@plc1.org keys: [309] sites: []
+314 None user1-310@plc1.org keys: [310] sites: []
+315 None user1-311@plc1.org keys: [311] sites: []
+316 None user1-312@plc1.org keys: [312] sites: []
+317 None user1-313@plc1.org keys: [313] sites: []
+318 None user1-314@plc1.org keys: [314] sites: []
+319 None user1-315@plc1.org keys: [315] sites: []
+320 None user1-316@plc1.org keys: [316] sites: []
+321 None user1-317@plc1.org keys: [317] sites: []
+322 None user1-318@plc1.org keys: [318] sites: []
+323 None user1-319@plc1.org keys: [319] sites: []
+324 None user1-320@plc1.org keys: [320] sites: []
+325 None user1-321@plc1.org keys: [321] sites: []
+326 None user1-322@plc1.org keys: [322] sites: []
+327 None user1-323@plc1.org keys: [323] sites: []
+328 None user1-324@plc1.org keys: [324] sites: []
+329 None user1-325@plc1.org keys: [325] sites: []
+330 None user1-326@plc1.org keys: [326] sites: []
+331 None user1-327@plc1.org keys: [327] sites: []
+332 None user1-328@plc1.org keys: [328] sites: []
+333 None user1-329@plc1.org keys: [329] sites: []
+334 None user1-330@plc1.org keys: [330] sites: []
+335 None user1-331@plc1.org keys: [331] sites: []
+336 None user1-332@plc1.org keys: [332] sites: []
+337 None user1-333@plc1.org keys: [333] sites: []
+338 None user1-334@plc1.org keys: [334] sites: []
+339 None user1-335@plc1.org keys: [335] sites: []
+340 None user1-336@plc1.org keys: [336] sites: []
+341 None user1-337@plc1.org keys: [337] sites: []
+342 None user1-338@plc1.org keys: [338] sites: []
+343 None user1-339@plc1.org keys: [339] sites: []
+344 None user1-340@plc1.org keys: [340] sites: []
+345 None user1-341@plc1.org keys: [341] sites: []
+346 None user1-342@plc1.org keys: [342] sites: []
+347 None user1-343@plc1.org keys: [343] sites: []
+348 None user1-344@plc1.org keys: [344] sites: []
+349 None user1-345@plc1.org keys: [345] sites: []
+350 None user1-346@plc1.org keys: [346] sites: []
+351 None user1-347@plc1.org keys: [347] sites: []
+352 None user1-348@plc1.org keys: [348] sites: []
+353 None user1-349@plc1.org keys: [349] sites: []
+354 None user1-350@plc1.org keys: [350] sites: []
+355 None user1-351@plc1.org keys: [351] sites: []
+356 None user1-352@plc1.org keys: [352] sites: []
+357 None user1-353@plc1.org keys: [353] sites: []
+358 None user1-354@plc1.org keys: [354] sites: []
+359 None user1-355@plc1.org keys: [355] sites: []
+360 None user1-356@plc1.org keys: [356] sites: []
+361 None user1-357@plc1.org keys: [357] sites: []
+362 None user1-358@plc1.org keys: [358] sites: []
+363 None user1-359@plc1.org keys: [359] sites: []
+364 None user1-360@plc1.org keys: [360] sites: []
+365 None user1-361@plc1.org keys: [361] sites: []
+366 None user1-362@plc1.org keys: [362] sites: []
+367 None user1-363@plc1.org keys: [363] sites: []
+368 None user1-364@plc1.org keys: [364] sites: []
+369 None user1-365@plc1.org keys: [365] sites: []
+370 None user1-366@plc1.org keys: [366] sites: []
+371 None user1-367@plc1.org keys: [367] sites: []
+372 None user1-368@plc1.org keys: [368] sites: []
+373 None user1-369@plc1.org keys: [369] sites: []
+374 None user1-370@plc1.org keys: [370] sites: []
+375 None user1-371@plc1.org keys: [371] sites: []
+376 None user1-372@plc1.org keys: [372] sites: []
+377 None user1-373@plc1.org keys: [373] sites: []
+378 None user1-374@plc1.org keys: [374] sites: []
+379 None user1-375@plc1.org keys: [375] sites: []
+380 None user1-376@plc1.org keys: [376] sites: []
+381 None user1-377@plc1.org keys: [377] sites: []
+382 None user1-378@plc1.org keys: [378] sites: []
+383 None user1-379@plc1.org keys: [379] sites: []
+384 None user1-380@plc1.org keys: [380] sites: []
+385 None user1-381@plc1.org keys: [381] sites: []
+386 None user1-382@plc1.org keys: [382] sites: []
+387 None user1-383@plc1.org keys: [383] sites: []
+388 None user1-384@plc1.org keys: [384] sites: []
+389 None user1-385@plc1.org keys: [385] sites: []
+390 None user1-386@plc1.org keys: [386] sites: []
+391 None user1-387@plc1.org keys: [387] sites: []
+392 None user1-388@plc1.org keys: [388] sites: []
+393 None user1-389@plc1.org keys: [389] sites: []
+394 None user1-390@plc1.org keys: [390] sites: []
+395 None user1-391@plc1.org keys: [391] sites: []
+396 None user1-392@plc1.org keys: [392] sites: []
+397 None user1-393@plc1.org keys: [393] sites: []
+398 None user1-394@plc1.org keys: [394] sites: []
+399 None user1-395@plc1.org keys: [395] sites: []
+400 None user1-396@plc1.org keys: [396] sites: []
+401 None user1-397@plc1.org keys: [397] sites: []
+402 None user1-398@plc1.org keys: [398] sites: []
+403 None user1-399@plc1.org keys: [399] sites: []
+404 None user1-400@plc1.org keys: [400] sites: []
+405 None user1-401@plc1.org keys: [401] sites: []
+406 None user1-402@plc1.org keys: [402] sites: []
+407 None user1-403@plc1.org keys: [403] sites: []
+408 None user1-404@plc1.org keys: [404] sites: []
+409 None user1-405@plc1.org keys: [405] sites: []
+410 None user1-406@plc1.org keys: [406] sites: []
+411 None user1-407@plc1.org keys: [407] sites: []
+412 None user1-408@plc1.org keys: [408] sites: []
+413 None user1-409@plc1.org keys: [409] sites: []
+414 None user1-410@plc1.org keys: [410] sites: []
+415 None user1-411@plc1.org keys: [411] sites: []
+416 None user1-412@plc1.org keys: [412] sites: []
+417 None user1-413@plc1.org keys: [413] sites: []
+418 None user1-414@plc1.org keys: [414] sites: []
+419 None user1-415@plc1.org keys: [415] sites: []
+420 None user1-416@plc1.org keys: [416] sites: []
+421 None user1-417@plc1.org keys: [417] sites: []
+422 None user1-418@plc1.org keys: [418] sites: []
+423 None user1-419@plc1.org keys: [419] sites: []
+424 None user1-420@plc1.org keys: [420] sites: []
+425 None user1-421@plc1.org keys: [421] sites: []
+426 None user1-422@plc1.org keys: [422] sites: []
+427 None user1-423@plc1.org keys: [423] sites: []
+428 None user1-424@plc1.org keys: [424] sites: []
+429 None user1-425@plc1.org keys: [425] sites: []
+430 None user1-426@plc1.org keys: [426] sites: []
+431 None user1-427@plc1.org keys: [427] sites: []
+432 None user1-428@plc1.org keys: [428] sites: []
+433 None user1-429@plc1.org keys: [429] sites: []
+434 None user1-430@plc1.org keys: [430] sites: []
+435 None user1-431@plc1.org keys: [431] sites: []
+436 None user1-432@plc1.org keys: [432] sites: []
+437 None user1-433@plc1.org keys: [433] sites: []
+438 None user1-434@plc1.org keys: [434] sites: []
+439 None user1-435@plc1.org keys: [435] sites: []
+440 None user1-436@plc1.org keys: [436] sites: []
+441 None user1-437@plc1.org keys: [437] sites: []
+442 None user1-438@plc1.org keys: [438] sites: []
+443 None user1-439@plc1.org keys: [439] sites: []
+444 None user1-440@plc1.org keys: [440] sites: []
+445 None user1-441@plc1.org keys: [441] sites: []
+446 None user1-442@plc1.org keys: [442] sites: []
+447 None user1-443@plc1.org keys: [443] sites: []
+448 None user1-444@plc1.org keys: [444] sites: []
+449 None user1-445@plc1.org keys: [445] sites: []
+450 None user1-446@plc1.org keys: [446] sites: []
+451 None user1-447@plc1.org keys: [447] sites: []
+452 None user1-448@plc1.org keys: [448] sites: []
+453 None user1-449@plc1.org keys: [449] sites: []
+454 None user1-450@plc1.org keys: [450] sites: []
+455 None user1-451@plc1.org keys: [451] sites: []
+456 None user1-452@plc1.org keys: [452] sites: []
+457 None user1-453@plc1.org keys: [453] sites: []
+458 None user1-454@plc1.org keys: [454] sites: []
+459 None user1-455@plc1.org keys: [455] sites: []
+460 None user1-456@plc1.org keys: [456] sites: []
+461 None user1-457@plc1.org keys: [457] sites: []
+462 None user1-458@plc1.org keys: [458] sites: []
+463 None user1-459@plc1.org keys: [459] sites: []
+464 None user1-460@plc1.org keys: [460] sites: []
+465 None user1-461@plc1.org keys: [461] sites: []
+466 None user1-462@plc1.org keys: [462] sites: []
+467 None user1-463@plc1.org keys: [463] sites: []
+468 None user1-464@plc1.org keys: [464] sites: []
+469 None user1-465@plc1.org keys: [465] sites: []
+470 None user1-466@plc1.org keys: [466] sites: []
+471 None user1-467@plc1.org keys: [467] sites: []
+472 None user1-468@plc1.org keys: [468] sites: []
+473 None user1-469@plc1.org keys: [469] sites: []
+474 None user1-470@plc1.org keys: [470] sites: []
+475 None user1-471@plc1.org keys: [471] sites: []
+476 None user1-472@plc1.org keys: [472] sites: []
+477 None user1-473@plc1.org keys: [473] sites: []
+478 None user1-474@plc1.org keys: [474] sites: []
+479 None user1-475@plc1.org keys: [475] sites: []
+480 None user1-476@plc1.org keys: [476] sites: []
+481 None user1-477@plc1.org keys: [477] sites: []
+482 None user1-478@plc1.org keys: [478] sites: []
+483 None user1-479@plc1.org keys: [479] sites: []
+484 None user1-480@plc1.org keys: [480] sites: []
+485 None user1-481@plc1.org keys: [481] sites: []
+486 None user1-482@plc1.org keys: [482] sites: []
+487 None user1-483@plc1.org keys: [483] sites: []
+488 None user1-484@plc1.org keys: [484] sites: []
+489 None user1-485@plc1.org keys: [485] sites: []
+490 None user1-486@plc1.org keys: [486] sites: []
+491 None user1-487@plc1.org keys: [487] sites: []
+492 None user1-488@plc1.org keys: [488] sites: []
+493 None user1-489@plc1.org keys: [489] sites: []
+494 None user1-490@plc1.org keys: [490] sites: []
+495 None user1-491@plc1.org keys: [491] sites: []
+496 None user1-492@plc1.org keys: [492] sites: []
+497 None user1-493@plc1.org keys: [493] sites: []
+498 None user1-494@plc1.org keys: [494] sites: []
+499 None user1-495@plc1.org keys: [495] sites: []
+500 None user1-496@plc1.org keys: [496] sites: []
+501 None user1-497@plc1.org keys: [497] sites: []
+502 None user1-498@plc1.org keys: [498] sites: []
+503 None user1-499@plc1.org keys: [499] sites: []
+504 None user1-500@plc1.org keys: [500] sites: []
+505 None user1-501@plc1.org keys: [501] sites: []
+506 None user1-502@plc1.org keys: [502] sites: []
+507 None user1-503@plc1.org keys: [503] sites: []
+508 None user1-504@plc1.org keys: [504] sites: []
+509 None user1-505@plc1.org keys: [505] sites: []
+510 None user1-506@plc1.org keys: [506] sites: []
+511 None user1-507@plc1.org keys: [507] sites: []
+512 None user1-508@plc1.org keys: [508] sites: []
+513 None user1-509@plc1.org keys: [509] sites: []
+514 None user1-510@plc1.org keys: [510] sites: []
+515 None user1-511@plc1.org keys: [511] sites: []
+516 None user1-512@plc1.org keys: [512] sites: []
+517 None user1-513@plc1.org keys: [513] sites: []
+518 None user1-514@plc1.org keys: [514] sites: []
+519 None user1-515@plc1.org keys: [515] sites: []
+520 None user1-516@plc1.org keys: [516] sites: []
+521 None user1-517@plc1.org keys: [517] sites: []
+522 None user1-518@plc1.org keys: [518] sites: []
+523 None user1-519@plc1.org keys: [519] sites: []
+524 None user1-520@plc1.org keys: [520] sites: []
+525 None user1-521@plc1.org keys: [521] sites: []
+526 None user1-522@plc1.org keys: [522] sites: []
+527 None user1-523@plc1.org keys: [523] sites: []
+528 None user1-524@plc1.org keys: [524] sites: []
+529 None user1-525@plc1.org keys: [525] sites: []
+530 None user1-526@plc1.org keys: [526] sites: []
+531 None user1-527@plc1.org keys: [527] sites: []
+532 None user1-528@plc1.org keys: [528] sites: []
+533 None user1-529@plc1.org keys: [529] sites: []
+534 None user1-530@plc1.org keys: [530] sites: []
+535 None user1-531@plc1.org keys: [531] sites: []
+536 None user1-532@plc1.org keys: [532] sites: []
+537 None user1-533@plc1.org keys: [533] sites: []
+538 None user1-534@plc1.org keys: [534] sites: []
+539 None user1-535@plc1.org keys: [535] sites: []
+540 None user1-536@plc1.org keys: [536] sites: []
+541 None user1-537@plc1.org keys: [537] sites: []
+542 None user1-538@plc1.org keys: [538] sites: []
+543 None user1-539@plc1.org keys: [539] sites: []
+544 None user1-540@plc1.org keys: [540] sites: []
+545 None user1-541@plc1.org keys: [541] sites: []
+546 None user1-542@plc1.org keys: [542] sites: []
+547 None user1-543@plc1.org keys: [543] sites: []
+548 None user1-544@plc1.org keys: [544] sites: []
+549 None user1-545@plc1.org keys: [545] sites: []
+550 None user1-546@plc1.org keys: [546] sites: []
+551 None user1-547@plc1.org keys: [547] sites: []
+552 None user1-548@plc1.org keys: [548] sites: []
+553 None user1-549@plc1.org keys: [549] sites: []
+554 None user1-550@plc1.org keys: [550] sites: []
+555 None user1-551@plc1.org keys: [551] sites: []
+556 None user1-552@plc1.org keys: [552] sites: []
+557 None user1-553@plc1.org keys: [553] sites: []
+558 None user1-554@plc1.org keys: [554] sites: []
+559 None user1-555@plc1.org keys: [555] sites: []
+560 None user1-556@plc1.org keys: [556] sites: []
+561 None user1-557@plc1.org keys: [557] sites: []
+562 None user1-558@plc1.org keys: [558] sites: []
+563 None user1-559@plc1.org keys: [559] sites: []
+564 None user1-560@plc1.org keys: [560] sites: []
+565 None user1-561@plc1.org keys: [561] sites: []
+566 None user1-562@plc1.org keys: [562] sites: []
+567 None user1-563@plc1.org keys: [563] sites: []
+568 None user1-564@plc1.org keys: [564] sites: []
+569 None user1-565@plc1.org keys: [565] sites: []
+570 None user1-566@plc1.org keys: [566] sites: []
+571 None user1-567@plc1.org keys: [567] sites: []
+572 None user1-568@plc1.org keys: [568] sites: []
+573 None user1-569@plc1.org keys: [569] sites: []
+574 None user1-570@plc1.org keys: [570] sites: []
+575 None user1-571@plc1.org keys: [571] sites: []
+576 None user1-572@plc1.org keys: [572] sites: []
+577 None user1-573@plc1.org keys: [573] sites: []
+578 None user1-574@plc1.org keys: [574] sites: []
+579 None user1-575@plc1.org keys: [575] sites: []
+580 None user1-576@plc1.org keys: [576] sites: []
+581 None user1-577@plc1.org keys: [577] sites: []
+582 None user1-578@plc1.org keys: [578] sites: []
+583 None user1-579@plc1.org keys: [579] sites: []
+584 None user1-580@plc1.org keys: [580] sites: []
+585 None user1-581@plc1.org keys: [581] sites: []
+586 None user1-582@plc1.org keys: [582] sites: []
+587 None user1-583@plc1.org keys: [583] sites: []
+588 None user1-584@plc1.org keys: [584] sites: []
+589 None user1-585@plc1.org keys: [585] sites: []
+590 None user1-586@plc1.org keys: [586] sites: []
+591 None user1-587@plc1.org keys: [587] sites: []
+592 None user1-588@plc1.org keys: [588] sites: []
+593 None user1-589@plc1.org keys: [589] sites: []
+594 None user1-590@plc1.org keys: [590] sites: []
+595 None user1-591@plc1.org keys: [591] sites: []
+596 None user1-592@plc1.org keys: [592] sites: []
+597 None user1-593@plc1.org keys: [593] sites: []
+598 None user1-594@plc1.org keys: [594] sites: []
+599 None user1-595@plc1.org keys: [595] sites: []
+600 None user1-596@plc1.org keys: [596] sites: []
+601 None user1-597@plc1.org keys: [597] sites: []
+602 None user1-598@plc1.org keys: [598] sites: []
+603 None user1-599@plc1.org keys: [599] sites: []
+604 None user1-600@plc1.org keys: [600] sites: []
+605 None user1-601@plc1.org keys: [601] sites: []
+606 None user1-602@plc1.org keys: [602] sites: []
+607 None user1-603@plc1.org keys: [603] sites: []
+608 None user1-604@plc1.org keys: [604] sites: []
+609 None user1-605@plc1.org keys: [605] sites: []
+610 None user1-606@plc1.org keys: [606] sites: []
+611 None user1-607@plc1.org keys: [607] sites: []
+612 None user1-608@plc1.org keys: [608] sites: []
+613 None user1-609@plc1.org keys: [609] sites: []
+614 None user1-610@plc1.org keys: [610] sites: []
+615 None user1-611@plc1.org keys: [611] sites: []
+616 None user1-612@plc1.org keys: [612] sites: []
+617 None user1-613@plc1.org keys: [613] sites: []
+618 None user1-614@plc1.org keys: [614] sites: []
+619 None user1-615@plc1.org keys: [615] sites: []
+620 None user1-616@plc1.org keys: [616] sites: []
+621 None user1-617@plc1.org keys: [617] sites: []
+622 None user1-618@plc1.org keys: [618] sites: []
+623 None user1-619@plc1.org keys: [619] sites: []
+624 None user1-620@plc1.org keys: [620] sites: []
+625 None user1-621@plc1.org keys: [621] sites: []
+626 None user1-622@plc1.org keys: [622] sites: []
+627 None user1-623@plc1.org keys: [623] sites: []
+628 None user1-624@plc1.org keys: [624] sites: []
+629 None user1-625@plc1.org keys: [625] sites: []
+630 None user1-626@plc1.org keys: [626] sites: []
+631 None user1-627@plc1.org keys: [627] sites: []
+632 None user1-628@plc1.org keys: [628] sites: []
+633 None user1-629@plc1.org keys: [629] sites: []
+634 None user1-630@plc1.org keys: [630] sites: []
+635 None user1-631@plc1.org keys: [631] sites: []
+636 None user1-632@plc1.org keys: [632] sites: []
+637 None user1-633@plc1.org keys: [633] sites: []
+638 None user1-634@plc1.org keys: [634] sites: []
+639 None user1-635@plc1.org keys: [635] sites: []
+640 None user1-636@plc1.org keys: [636] sites: []
+641 None user1-637@plc1.org keys: [637] sites: []
+642 None user1-638@plc1.org keys: [638] sites: []
+643 None user1-639@plc1.org keys: [639] sites: []
+644 None user1-640@plc1.org keys: [640] sites: []
+645 None user1-641@plc1.org keys: [641] sites: []
+646 None user1-642@plc1.org keys: [642] sites: []
+647 None user1-643@plc1.org keys: [643] sites: []
+648 None user1-644@plc1.org keys: [644] sites: []
+649 None user1-645@plc1.org keys: [645] sites: []
+650 None user1-646@plc1.org keys: [646] sites: []
+651 None user1-647@plc1.org keys: [647] sites: []
+652 None user1-648@plc1.org keys: [648] sites: []
+653 None user1-649@plc1.org keys: [649] sites: []
+654 None user1-650@plc1.org keys: [650] sites: []
+655 None user1-651@plc1.org keys: [651] sites: []
+656 None user1-652@plc1.org keys: [652] sites: []
+657 None user1-653@plc1.org keys: [653] sites: []
+658 None user1-654@plc1.org keys: [654] sites: []
+659 None user1-655@plc1.org keys: [655] sites: []
+660 None user1-656@plc1.org keys: [656] sites: []
+661 None user1-657@plc1.org keys: [657] sites: []
+662 None user1-658@plc1.org keys: [658] sites: []
+663 None user1-659@plc1.org keys: [659] sites: []
+664 None user1-660@plc1.org keys: [660] sites: []
+665 None user1-661@plc1.org keys: [661] sites: []
+666 None user1-662@plc1.org keys: [662] sites: []
+667 None user1-663@plc1.org keys: [663] sites: []
+668 None user1-664@plc1.org keys: [664] sites: []
+669 None user1-665@plc1.org keys: [665] sites: []
+670 None user1-666@plc1.org keys: [666] sites: []
+671 None user1-667@plc1.org keys: [667] sites: []
+672 None user1-668@plc1.org keys: [668] sites: []
+673 None user1-669@plc1.org keys: [669] sites: []
+674 None user1-670@plc1.org keys: [670] sites: []
+675 None user1-671@plc1.org keys: [671] sites: []
+676 None user1-672@plc1.org keys: [672] sites: []
+677 None user1-673@plc1.org keys: [673] sites: []
+678 None user1-674@plc1.org keys: [674] sites: []
+679 None user1-675@plc1.org keys: [675] sites: []
+680 None user1-676@plc1.org keys: [676] sites: []
+681 None user1-677@plc1.org keys: [677] sites: []
+682 None user1-678@plc1.org keys: [678] sites: []
+683 None user1-679@plc1.org keys: [679] sites: []
+684 None user1-680@plc1.org keys: [680] sites: []
+685 None user1-681@plc1.org keys: [681] sites: []
+686 None user1-682@plc1.org keys: [682] sites: []
+687 None user1-683@plc1.org keys: [683] sites: []
+688 None user1-684@plc1.org keys: [684] sites: []
+689 None user1-685@plc1.org keys: [685] sites: []
+690 None user1-686@plc1.org keys: [686] sites: []
+691 None user1-687@plc1.org keys: [687] sites: []
+692 None user1-688@plc1.org keys: [688] sites: []
+693 None user1-689@plc1.org keys: [689] sites: []
+694 None user1-690@plc1.org keys: [690] sites: []
+695 None user1-691@plc1.org keys: [691] sites: []
+696 None user1-692@plc1.org keys: [692] sites: []
+697 None user1-693@plc1.org keys: [693] sites: []
+698 None user1-694@plc1.org keys: [694] sites: []
+699 None user1-695@plc1.org keys: [695] sites: []
+700 None user1-696@plc1.org keys: [696] sites: []
+701 None user1-697@plc1.org keys: [697] sites: []
+702 None user1-698@plc1.org keys: [698] sites: []
+703 None user1-699@plc1.org keys: [699] sites: []
+704 None user1-700@plc1.org keys: [700] sites: []
+705 None user1-701@plc1.org keys: [701] sites: []
+706 None user1-702@plc1.org keys: [702] sites: []
+707 None user1-703@plc1.org keys: [703] sites: []
+708 None user1-704@plc1.org keys: [704] sites: []
+709 None user1-705@plc1.org keys: [705] sites: []
+710 None user1-706@plc1.org keys: [706] sites: []
+711 None user1-707@plc1.org keys: [707] sites: []
+712 None user1-708@plc1.org keys: [708] sites: []
+713 None user1-709@plc1.org keys: [709] sites: []
+714 None user1-710@plc1.org keys: [710] sites: []
+715 None user1-711@plc1.org keys: [711] sites: []
+716 None user1-712@plc1.org keys: [712] sites: []
+717 None user1-713@plc1.org keys: [713] sites: []
+718 None user1-714@plc1.org keys: [714] sites: []
+719 None user1-715@plc1.org keys: [715] sites: []
+720 None user1-716@plc1.org keys: [716] sites: []
+721 None user1-717@plc1.org keys: [717] sites: []
+722 None user1-718@plc1.org keys: [718] sites: []
+723 None user1-719@plc1.org keys: [719] sites: []
+724 None user1-720@plc1.org keys: [720] sites: []
+725 None user1-721@plc1.org keys: [721] sites: []
+726 None user1-722@plc1.org keys: [722] sites: []
+727 None user1-723@plc1.org keys: [723] sites: []
+728 None user1-724@plc1.org keys: [724] sites: []
+729 None user1-725@plc1.org keys: [725] sites: []
+730 None user1-726@plc1.org keys: [726] sites: []
+731 None user1-727@plc1.org keys: [727] sites: []
+732 None user1-728@plc1.org keys: [728] sites: []
+733 None user1-729@plc1.org keys: [729] sites: []
+734 None user1-730@plc1.org keys: [730] sites: []
+735 None user1-731@plc1.org keys: [731] sites: []
+736 None user1-732@plc1.org keys: [732] sites: []
+737 None user1-733@plc1.org keys: [733] sites: []
+738 None user1-734@plc1.org keys: [734] sites: []
+739 None user1-735@plc1.org keys: [735] sites: []
+740 None user1-736@plc1.org keys: [736] sites: []
+741 None user1-737@plc1.org keys: [737] sites: []
+742 None user1-738@plc1.org keys: [738] sites: []
+743 None user1-739@plc1.org keys: [739] sites: []
+744 None user1-740@plc1.org keys: [740] sites: []
+745 None user1-741@plc1.org keys: [741] sites: []
+746 None user1-742@plc1.org keys: [742] sites: []
+747 None user1-743@plc1.org keys: [743] sites: []
+748 None user1-744@plc1.org keys: [744] sites: []
+749 None user1-745@plc1.org keys: [745] sites: []
+750 None user1-746@plc1.org keys: [746] sites: []
+751 None user1-747@plc1.org keys: [747] sites: []
+752 None user1-748@plc1.org keys: [748] sites: []
+753 None user1-749@plc1.org keys: [749] sites: []
+754 None user1-750@plc1.org keys: [750] sites: []
+755 None user1-751@plc1.org keys: [751] sites: []
+756 None user1-752@plc1.org keys: [752] sites: []
+757 None user1-753@plc1.org keys: [753] sites: []
+758 None user1-754@plc1.org keys: [754] sites: []
+759 None user1-755@plc1.org keys: [755] sites: []
+760 None user1-756@plc1.org keys: [756] sites: []
+761 None user1-757@plc1.org keys: [757] sites: []
+762 None user1-758@plc1.org keys: [758] sites: []
+763 None user1-759@plc1.org keys: [759] sites: []
+764 None user1-760@plc1.org keys: [760] sites: []
+765 None user1-761@plc1.org keys: [761] sites: []
+766 None user1-762@plc1.org keys: [762] sites: []
+767 None user1-763@plc1.org keys: [763] sites: []
+768 None user1-764@plc1.org keys: [764] sites: []
+769 None user1-765@plc1.org keys: [765] sites: []
+770 None user1-766@plc1.org keys: [766] sites: []
+771 None user1-767@plc1.org keys: [767] sites: []
+772 None user1-768@plc1.org keys: [768] sites: []
+773 None user1-769@plc1.org keys: [769] sites: []
+774 None user1-770@plc1.org keys: [770] sites: []
+775 None user1-771@plc1.org keys: [771] sites: []
+776 None user1-772@plc1.org keys: [772] sites: []
+777 None user1-773@plc1.org keys: [773] sites: []
+778 None user1-774@plc1.org keys: [774] sites: []
+779 None user1-775@plc1.org keys: [775] sites: []
+780 None user1-776@plc1.org keys: [776] sites: []
+781 None user1-777@plc1.org keys: [777] sites: []
+782 None user1-778@plc1.org keys: [778] sites: []
+783 None user1-779@plc1.org keys: [779] sites: []
+784 None user1-780@plc1.org keys: [780] sites: []
+785 None user1-781@plc1.org keys: [781] sites: []
+786 None user1-782@plc1.org keys: [782] sites: []
+787 None user1-783@plc1.org keys: [783] sites: []
+788 None user1-784@plc1.org keys: [784] sites: []
+789 None user1-785@plc1.org keys: [785] sites: []
+790 None user1-786@plc1.org keys: [786] sites: []
+791 None user1-787@plc1.org keys: [787] sites: []
+792 None user1-788@plc1.org keys: [788] sites: []
+793 None user1-789@plc1.org keys: [789] sites: []
+794 None user1-790@plc1.org keys: [790] sites: []
+795 None user1-791@plc1.org keys: [791] sites: []
+796 None user1-792@plc1.org keys: [792] sites: []
+797 None user1-793@plc1.org keys: [793] sites: []
+798 None user1-794@plc1.org keys: [794] sites: []
+799 None user1-795@plc1.org keys: [795] sites: []
+800 None user1-796@plc1.org keys: [796] sites: []
+801 None user1-797@plc1.org keys: [797] sites: []
+802 None user1-798@plc1.org keys: [798] sites: []
+803 None user1-799@plc1.org keys: [799] sites: []
+804 None user1-800@plc1.org keys: [800] sites: []
+805 None user1-801@plc1.org keys: [801] sites: []
+806 None user1-802@plc1.org keys: [802] sites: []
+807 None user1-803@plc1.org keys: [803] sites: []
+808 None user1-804@plc1.org keys: [804] sites: []
+809 None user1-805@plc1.org keys: [805] sites: []
+810 None user1-806@plc1.org keys: [806] sites: []
+811 None user1-807@plc1.org keys: [807] sites: []
+812 None user1-808@plc1.org keys: [808] sites: []
+813 None user1-809@plc1.org keys: [809] sites: []
+814 None user1-810@plc1.org keys: [810] sites: []
+815 None user1-811@plc1.org keys: [811] sites: []
+816 None user1-812@plc1.org keys: [812] sites: []
+817 None user1-813@plc1.org keys: [813] sites: []
+818 None user1-814@plc1.org keys: [814] sites: []
+819 None user1-815@plc1.org keys: [815] sites: []
+820 None user1-816@plc1.org keys: [816] sites: []
+821 None user1-817@plc1.org keys: [817] sites: []
+822 None user1-818@plc1.org keys: [818] sites: []
+823 None user1-819@plc1.org keys: [819] sites: []
+824 None user1-820@plc1.org keys: [820] sites: []
+825 None user1-821@plc1.org keys: [821] sites: []
+826 None user1-822@plc1.org keys: [822] sites: []
+827 None user1-823@plc1.org keys: [823] sites: []
+828 None user1-824@plc1.org keys: [824] sites: []
+829 None user1-825@plc1.org keys: [825] sites: []
+830 None user1-826@plc1.org keys: [826] sites: []
+831 None user1-827@plc1.org keys: [827] sites: []
+832 None user1-828@plc1.org keys: [828] sites: []
+833 None user1-829@plc1.org keys: [829] sites: []
+834 None user1-830@plc1.org keys: [830] sites: []
+835 None user1-831@plc1.org keys: [831] sites: []
+836 None user1-832@plc1.org keys: [832] sites: []
+837 None user1-833@plc1.org keys: [833] sites: []
+838 None user1-834@plc1.org keys: [834] sites: []
+839 None user1-835@plc1.org keys: [835] sites: []
+840 None user1-836@plc1.org keys: [836] sites: []
+841 None user1-837@plc1.org keys: [837] sites: []
+842 None user1-838@plc1.org keys: [838] sites: []
+843 None user1-839@plc1.org keys: [839] sites: []
+844 None user1-840@plc1.org keys: [840] sites: []
+845 None user1-841@plc1.org keys: [841] sites: []
+846 None user1-842@plc1.org keys: [842] sites: []
+847 None user1-843@plc1.org keys: [843] sites: []
+848 None user1-844@plc1.org keys: [844] sites: []
+849 None user1-845@plc1.org keys: [845] sites: []
+850 None user1-846@plc1.org keys: [846] sites: []
+851 None user1-847@plc1.org keys: [847] sites: []
+852 None user1-848@plc1.org keys: [848] sites: []
+853 None user1-849@plc1.org keys: [849] sites: []
+854 None user1-850@plc1.org keys: [850] sites: []
+855 None user1-851@plc1.org keys: [851] sites: []
+856 None user1-852@plc1.org keys: [852] sites: []
+857 None user1-853@plc1.org keys: [853] sites: []
+858 None user1-854@plc1.org keys: [854] sites: []
+859 None user1-855@plc1.org keys: [855] sites: []
+860 None user1-856@plc1.org keys: [856] sites: []
+861 None user1-857@plc1.org keys: [857] sites: []
+862 None user1-858@plc1.org keys: [858] sites: []
+863 None user1-859@plc1.org keys: [859] sites: []
+864 None user1-860@plc1.org keys: [860] sites: []
+865 None user1-861@plc1.org keys: [861] sites: []
+866 None user1-862@plc1.org keys: [862] sites: []
+867 None user1-863@plc1.org keys: [863] sites: []
+868 None user1-864@plc1.org keys: [864] sites: []
+869 None user1-865@plc1.org keys: [865] sites: []
+870 None user1-866@plc1.org keys: [866] sites: []
+871 None user1-867@plc1.org keys: [867] sites: []
+872 None user1-868@plc1.org keys: [868] sites: []
+873 None user1-869@plc1.org keys: [869] sites: []
+874 None user1-870@plc1.org keys: [870] sites: []
+875 None user1-871@plc1.org keys: [871] sites: []
+876 None user1-872@plc1.org keys: [872] sites: []
+877 None user1-873@plc1.org keys: [873] sites: []
+878 None user1-874@plc1.org keys: [874] sites: []
+879 None user1-875@plc1.org keys: [875] sites: []
+880 None user1-876@plc1.org keys: [876] sites: []
+881 None user1-877@plc1.org keys: [877] sites: []
+882 None user1-878@plc1.org keys: [878] sites: []
+883 None user1-879@plc1.org keys: [879] sites: []
+884 None user1-880@plc1.org keys: [880] sites: []
+885 None user1-881@plc1.org keys: [881] sites: []
+886 None user1-882@plc1.org keys: [882] sites: []
+887 None user1-883@plc1.org keys: [883] sites: []
+888 None user1-884@plc1.org keys: [884] sites: []
+889 None user1-885@plc1.org keys: [885] sites: []
+890 None user1-886@plc1.org keys: [886] sites: []
+891 None user1-887@plc1.org keys: [887] sites: []
+892 None user1-888@plc1.org keys: [888] sites: []
+893 None user1-889@plc1.org keys: [889] sites: []
+894 None user1-890@plc1.org keys: [890] sites: []
+895 None user1-891@plc1.org keys: [891] sites: []
+896 None user1-892@plc1.org keys: [892] sites: []
+897 None user1-893@plc1.org keys: [893] sites: []
+898 None user1-894@plc1.org keys: [894] sites: []
+899 None user1-895@plc1.org keys: [895] sites: []
+900 None user1-896@plc1.org keys: [896] sites: []
+901 None user1-897@plc1.org keys: [897] sites: []
+902 None user1-898@plc1.org keys: [898] sites: []
+903 None user1-899@plc1.org keys: [899] sites: []
+904 None user1-900@plc1.org keys: [900] sites: []
+905 None user1-901@plc1.org keys: [901] sites: []
+906 None user1-902@plc1.org keys: [902] sites: []
+907 None user1-903@plc1.org keys: [903] sites: []
+908 None user1-904@plc1.org keys: [904] sites: []
+909 None user1-905@plc1.org keys: [905] sites: []
+910 None user1-906@plc1.org keys: [906] sites: []
+911 None user1-907@plc1.org keys: [907] sites: []
+912 None user1-908@plc1.org keys: [908] sites: []
+913 None user1-909@plc1.org keys: [909] sites: []
+914 None user1-910@plc1.org keys: [910] sites: []
+915 None user1-911@plc1.org keys: [911] sites: []
+916 None user1-912@plc1.org keys: [912] sites: []
+917 None user1-913@plc1.org keys: [913] sites: []
+918 None user1-914@plc1.org keys: [914] sites: []
+919 None user1-915@plc1.org keys: [915] sites: []
+920 None user1-916@plc1.org keys: [916] sites: []
+921 None user1-917@plc1.org keys: [917] sites: []
+922 None user1-918@plc1.org keys: [918] sites: []
+923 None user1-919@plc1.org keys: [919] sites: []
+924 None user1-920@plc1.org keys: [920] sites: []
+925 None user1-921@plc1.org keys: [921] sites: []
+926 None user1-922@plc1.org keys: [922] sites: []
+927 None user1-923@plc1.org keys: [923] sites: []
+928 None user1-924@plc1.org keys: [924] sites: []
+929 None user1-925@plc1.org keys: [925] sites: []
+930 None user1-926@plc1.org keys: [926] sites: []
+931 None user1-927@plc1.org keys: [927] sites: []
+932 None user1-928@plc1.org keys: [928] sites: []
+933 None user1-929@plc1.org keys: [929] sites: []
+934 None user1-930@plc1.org keys: [930] sites: []
+935 None user1-931@plc1.org keys: [931] sites: []
+936 None user1-932@plc1.org keys: [932] sites: []
+937 None user1-933@plc1.org keys: [933] sites: []
+938 None user1-934@plc1.org keys: [934] sites: []
+939 None user1-935@plc1.org keys: [935] sites: []
+940 None user1-936@plc1.org keys: [936] sites: []
+941 None user1-937@plc1.org keys: [937] sites: []
+942 None user1-938@plc1.org keys: [938] sites: []
+943 None user1-939@plc1.org keys: [939] sites: []
+944 None user1-940@plc1.org keys: [940] sites: []
+945 None user1-941@plc1.org keys: [941] sites: []
+946 None user1-942@plc1.org keys: [942] sites: []
+947 None user1-943@plc1.org keys: [943] sites: []
+948 None user1-944@plc1.org keys: [944] sites: []
+949 None user1-945@plc1.org keys: [945] sites: []
+950 None user1-946@plc1.org keys: [946] sites: []
+951 None user1-947@plc1.org keys: [947] sites: []
+952 None user1-948@plc1.org keys: [948] sites: []
+953 None user1-949@plc1.org keys: [949] sites: []
+954 None user1-950@plc1.org keys: [950] sites: []
+955 None user1-951@plc1.org keys: [951] sites: []
+956 None user1-952@plc1.org keys: [952] sites: []
+957 None user1-953@plc1.org keys: [953] sites: []
+958 None user1-954@plc1.org keys: [954] sites: []
+959 None user1-955@plc1.org keys: [955] sites: []
+960 None user1-956@plc1.org keys: [956] sites: []
+961 None user1-957@plc1.org keys: [957] sites: []
+962 None user1-958@plc1.org keys: [958] sites: []
+963 None user1-959@plc1.org keys: [959] sites: []
+964 None user1-960@plc1.org keys: [960] sites: []
+965 None user1-961@plc1.org keys: [961] sites: []
+966 None user1-962@plc1.org keys: [962] sites: []
+967 None user1-963@plc1.org keys: [963] sites: []
+968 None user1-964@plc1.org keys: [964] sites: []
+969 None user1-965@plc1.org keys: [965] sites: []
+970 None user1-966@plc1.org keys: [966] sites: []
+971 None user1-967@plc1.org keys: [967] sites: []
+972 None user1-968@plc1.org keys: [968] sites: []
+973 None user1-969@plc1.org keys: [969] sites: []
+974 None user1-970@plc1.org keys: [970] sites: []
+975 None user1-971@plc1.org keys: [971] sites: []
+976 None user1-972@plc1.org keys: [972] sites: []
+977 None user1-973@plc1.org keys: [973] sites: []
+978 None user1-974@plc1.org keys: [974] sites: []
+979 None user1-975@plc1.org keys: [975] sites: []
+980 None user1-976@plc1.org keys: [976] sites: []
+981 None user1-977@plc1.org keys: [977] sites: []
+982 None user1-978@plc1.org keys: [978] sites: []
+983 None user1-979@plc1.org keys: [979] sites: []
+984 None user1-980@plc1.org keys: [980] sites: []
+985 None user1-981@plc1.org keys: [981] sites: []
+986 None user1-982@plc1.org keys: [982] sites: []
+987 None user1-983@plc1.org keys: [983] sites: []
+988 None user1-984@plc1.org keys: [984] sites: []
+989 None user1-985@plc1.org keys: [985] sites: []
+990 None user1-986@plc1.org keys: [986] sites: []
+991 None user1-987@plc1.org keys: [987] sites: []
+992 None user1-988@plc1.org keys: [988] sites: []
+993 None user1-989@plc1.org keys: [989] sites: []
+994 None user1-990@plc1.org keys: [990] sites: []
+995 None user1-991@plc1.org keys: [991] sites: []
+996 None user1-992@plc1.org keys: [992] sites: []
+997 None user1-993@plc1.org keys: [993] sites: []
+998 None user1-994@plc1.org keys: [994] sites: []
+999 None user1-995@plc1.org keys: [995] sites: []
+1000 None user1-996@plc1.org keys: [996] sites: []
+1001 None user1-997@plc1.org keys: [997] sites: []
+1002 None user1-998@plc1.org keys: [998] sites: []
+1003 None user1-999@plc1.org keys: [999] sites: []
+1004 None user1-1000@plc1.org keys: [1000] sites: []
+1005 None user1-1001@plc1.org keys: [1001] sites: []
+1006 None user1-1002@plc1.org keys: [1002] sites: []
+1007 None user1-1003@plc1.org keys: [1003] sites: []
+1008 None user1-1004@plc1.org keys: [1004] sites: []
+1009 None user1-1005@plc1.org keys: [1005] sites: []
+1010 None user1-1006@plc1.org keys: [1006] sites: []
+1011 None user1-1007@plc1.org keys: [1007] sites: []
+1012 None user1-1008@plc1.org keys: [1008] sites: []
+1013 None user1-1009@plc1.org keys: [1009] sites: []
+1014 None user1-1010@plc1.org keys: [1010] sites: []
+1015 None user1-1011@plc1.org keys: [1011] sites: []
+1016 None user1-1012@plc1.org keys: [1012] sites: []
+1017 None user1-1013@plc1.org keys: [1013] sites: []
+1018 None user1-1014@plc1.org keys: [1014] sites: []
+1019 None user1-1015@plc1.org keys: [1015] sites: []
+1020 None user1-1016@plc1.org keys: [1016] sites: []
+1021 None user1-1017@plc1.org keys: [1017] sites: []
+1022 None user1-1018@plc1.org keys: [1018] sites: []
+1023 None user1-1019@plc1.org keys: [1019] sites: []
+1024 None user1-1020@plc1.org keys: [1020] sites: []
+1025 None user1-1021@plc1.org keys: [1021] sites: []
+1026 None user1-1022@plc1.org keys: [1022] sites: []
+1027 None user1-1023@plc1.org keys: [1023] sites: []
+1028 None user1-1024@plc1.org keys: [1024] sites: []
+1029 None user1-1025@plc1.org keys: [1025] sites: []
+1030 None user1-1026@plc1.org keys: [1026] sites: []
+1031 None user1-1027@plc1.org keys: [1027] sites: []
+1032 None user1-1028@plc1.org keys: [1028] sites: []
+1033 None user1-1029@plc1.org keys: [1029] sites: []
+1034 None user1-1030@plc1.org keys: [1030] sites: []
+1035 None user1-1031@plc1.org keys: [1031] sites: []
+1036 None user1-1032@plc1.org keys: [1032] sites: []
+1037 None user1-1033@plc1.org keys: [1033] sites: []
+1038 None user1-1034@plc1.org keys: [1034] sites: []
+1039 None user1-1035@plc1.org keys: [1035] sites: []
+1040 None user1-1036@plc1.org keys: [1036] sites: []
+1041 None user1-1037@plc1.org keys: [1037] sites: []
+1042 None user1-1038@plc1.org keys: [1038] sites: []
+1043 None user1-1039@plc1.org keys: [1039] sites: []
+1044 None user1-1040@plc1.org keys: [1040] sites: []
+1045 None user1-1041@plc1.org keys: [1041] sites: []
+1046 None user1-1042@plc1.org keys: [1042] sites: []
+1047 None user1-1043@plc1.org keys: [1043] sites: []
+1048 None user1-1044@plc1.org keys: [1044] sites: []
+1049 None user1-1045@plc1.org keys: [1045] sites: []
+1050 None user1-1046@plc1.org keys: [1046] sites: []
+1051 None user1-1047@plc1.org keys: [1047] sites: []
+1052 None user1-1048@plc1.org keys: [1048] sites: []
+1053 None user1-1049@plc1.org keys: [1049] sites: []
+1054 None user1-1050@plc1.org keys: [1050] sites: []
+1055 None user1-1051@plc1.org keys: [1051] sites: []
+1056 None user1-1052@plc1.org keys: [1052] sites: []
+1057 None user1-1053@plc1.org keys: [1053] sites: []
+1058 None user1-1054@plc1.org keys: [1054] sites: []
+1059 None user1-1055@plc1.org keys: [1055] sites: []
+1060 None user1-1056@plc1.org keys: [1056] sites: []
+1061 None user1-1057@plc1.org keys: [1057] sites: []
+1062 None user1-1058@plc1.org keys: [1058] sites: []
+1063 None user1-1059@plc1.org keys: [1059] sites: []
+1064 None user1-1060@plc1.org keys: [1060] sites: []
+1065 None user1-1061@plc1.org keys: [1061] sites: []
+1066 None user1-1062@plc1.org keys: [1062] sites: []
+1067 None user1-1063@plc1.org keys: [1063] sites: []
+1068 None user1-1064@plc1.org keys: [1064] sites: []
+1069 None user1-1065@plc1.org keys: [1065] sites: []
+1070 None user1-1066@plc1.org keys: [1066] sites: []
+1071 None user1-1067@plc1.org keys: [1067] sites: []
+1072 None user1-1068@plc1.org keys: [1068] sites: []
+1073 None user1-1069@plc1.org keys: [1069] sites: []
+1074 None user1-1070@plc1.org keys: [1070] sites: []
+1075 None user1-1071@plc1.org keys: [1071] sites: []
+1076 None user1-1072@plc1.org keys: [1072] sites: []
+1077 None user1-1073@plc1.org keys: [1073] sites: []
+1078 None user1-1074@plc1.org keys: [1074] sites: []
+1079 None user1-1075@plc1.org keys: [1075] sites: []
+1080 None user1-1076@plc1.org keys: [1076] sites: []
+1081 None user1-1077@plc1.org keys: [1077] sites: []
+1082 None user1-1078@plc1.org keys: [1078] sites: []
+1083 None user1-1079@plc1.org keys: [1079] sites: []
+1084 None user1-1080@plc1.org keys: [1080] sites: []
+1085 None user1-1081@plc1.org keys: [1081] sites: []
+1086 None user1-1082@plc1.org keys: [1082] sites: []
+1087 None user1-1083@plc1.org keys: [1083] sites: []
+1088 None user1-1084@plc1.org keys: [1084] sites: []
+1089 None user1-1085@plc1.org keys: [1085] sites: []
+1090 None user1-1086@plc1.org keys: [1086] sites: []
+1091 None user1-1087@plc1.org keys: [1087] sites: []
+1092 None user1-1088@plc1.org keys: [1088] sites: []
+1093 None user1-1089@plc1.org keys: [1089] sites: []
+1094 None user1-1090@plc1.org keys: [1090] sites: []
+1095 None user1-1091@plc1.org keys: [1091] sites: []
+1096 None user1-1092@plc1.org keys: [1092] sites: []
+1097 None user1-1093@plc1.org keys: [1093] sites: []
+1098 None user1-1094@plc1.org keys: [1094] sites: []
+1099 None user1-1095@plc1.org keys: [1095] sites: []
+1100 None user1-1096@plc1.org keys: [1096] sites: []
+1101 None user1-1097@plc1.org keys: [1097] sites: []
+1102 None user1-1098@plc1.org keys: [1098] sites: []
+1103 None user1-1099@plc1.org keys: [1099] sites: []
+1104 None user1-1100@plc1.org keys: [1100] sites: []
+1105 None user1-1101@plc1.org keys: [1101] sites: []
+1106 None user1-1102@plc1.org keys: [1102] sites: []
+1107 None user1-1103@plc1.org keys: [1103] sites: []
+1108 None user1-1104@plc1.org keys: [1104] sites: []
+1109 None user1-1105@plc1.org keys: [1105] sites: []
+1110 None user1-1106@plc1.org keys: [1106] sites: []
+1111 None user1-1107@plc1.org keys: [1107] sites: []
+1112 None user1-1108@plc1.org keys: [1108] sites: []
+1113 None user1-1109@plc1.org keys: [1109] sites: []
+1114 None user1-1110@plc1.org keys: [1110] sites: []
+1115 None user1-1111@plc1.org keys: [1111] sites: []
+1116 None user1-1112@plc1.org keys: [1112] sites: []
+1117 None user1-1113@plc1.org keys: [1113] sites: []
+1118 None user1-1114@plc1.org keys: [1114] sites: []
+1119 None user1-1115@plc1.org keys: [1115] sites: []
+1120 None user1-1116@plc1.org keys: [1116] sites: []
+1121 None user1-1117@plc1.org keys: [1117] sites: []
+1122 None user1-1118@plc1.org keys: [1118] sites: []
+1123 None user1-1119@plc1.org keys: [1119] sites: []
+1124 None user1-1120@plc1.org keys: [1120] sites: []
+1125 None user1-1121@plc1.org keys: [1121] sites: []
+1126 None user1-1122@plc1.org keys: [1122] sites: []
+1127 None user1-1123@plc1.org keys: [1123] sites: []
+1128 None user1-1124@plc1.org keys: [1124] sites: []
+1129 None user1-1125@plc1.org keys: [1125] sites: []
+1130 None user1-1126@plc1.org keys: [1126] sites: []
+1131 None user1-1127@plc1.org keys: [1127] sites: []
+1132 None user1-1128@plc1.org keys: [1128] sites: []
+1133 None user1-1129@plc1.org keys: [1129] sites: []
+1134 None user1-1130@plc1.org keys: [1130] sites: []
+1135 None user1-1131@plc1.org keys: [1131] sites: []
+1136 None user1-1132@plc1.org keys: [1132] sites: []
+1137 None user1-1133@plc1.org keys: [1133] sites: []
+1138 None user1-1134@plc1.org keys: [1134] sites: []
+1139 None user1-1135@plc1.org keys: [1135] sites: []
+1140 None user1-1136@plc1.org keys: [1136] sites: []
+1141 None user1-1137@plc1.org keys: [1137] sites: []
+1142 None user1-1138@plc1.org keys: [1138] sites: []
+1143 None user1-1139@plc1.org keys: [1139] sites: []
+1144 None user1-1140@plc1.org keys: [1140] sites: []
+1145 None user1-1141@plc1.org keys: [1141] sites: []
+1146 None user1-1142@plc1.org keys: [1142] sites: []
+1147 None user1-1143@plc1.org keys: [1143] sites: []
+1148 None user1-1144@plc1.org keys: [1144] sites: []
+1149 None user1-1145@plc1.org keys: [1145] sites: []
+1150 None user1-1146@plc1.org keys: [1146] sites: []
+1151 None user1-1147@plc1.org keys: [1147] sites: []
+1152 None user1-1148@plc1.org keys: [1148] sites: []
+1153 None user1-1149@plc1.org keys: [1149] sites: []
+1154 None user1-1150@plc1.org keys: [1150] sites: []
+1155 None user1-1151@plc1.org keys: [1151] sites: []
+1156 None user1-1152@plc1.org keys: [1152] sites: []
+1157 None user1-1153@plc1.org keys: [1153] sites: []
+1158 None user1-1154@plc1.org keys: [1154] sites: []
+1159 None user1-1155@plc1.org keys: [1155] sites: []
+1160 None user1-1156@plc1.org keys: [1156] sites: []
+1161 None user1-1157@plc1.org keys: [1157] sites: []
+1162 None user1-1158@plc1.org keys: [1158] sites: []
+1163 None user1-1159@plc1.org keys: [1159] sites: []
+1164 None user1-1160@plc1.org keys: [1160] sites: []
+1165 None user1-1161@plc1.org keys: [1161] sites: []
+1166 None user1-1162@plc1.org keys: [1162] sites: []
+1167 None user1-1163@plc1.org keys: [1163] sites: []
+1168 None user1-1164@plc1.org keys: [1164] sites: []
+1169 None user1-1165@plc1.org keys: [1165] sites: []
+1170 None user1-1166@plc1.org keys: [1166] sites: []
+1171 None user1-1167@plc1.org keys: [1167] sites: []
+1172 None user1-1168@plc1.org keys: [1168] sites: []
+1173 None user1-1169@plc1.org keys: [1169] sites: []
+1174 None user1-1170@plc1.org keys: [1170] sites: []
+1175 None user1-1171@plc1.org keys: [1171] sites: []
+1176 None user1-1172@plc1.org keys: [1172] sites: []
+1177 None user1-1173@plc1.org keys: [1173] sites: []
+1178 None user1-1174@plc1.org keys: [1174] sites: []
+1179 None user1-1175@plc1.org keys: [1175] sites: []
+1180 None user1-1176@plc1.org keys: [1176] sites: []
+1181 None user1-1177@plc1.org keys: [1177] sites: []
+1182 None user1-1178@plc1.org keys: [1178] sites: []
+1183 None user1-1179@plc1.org keys: [1179] sites: []
+1184 None user1-1180@plc1.org keys: [1180] sites: []
+1185 None user1-1181@plc1.org keys: [1181] sites: []
+1186 None user1-1182@plc1.org keys: [1182] sites: []
+1187 None user1-1183@plc1.org keys: [1183] sites: []
+1188 None user1-1184@plc1.org keys: [1184] sites: []
+1189 None user1-1185@plc1.org keys: [1185] sites: []
+1190 None user1-1186@plc1.org keys: [1186] sites: []
+1191 None user1-1187@plc1.org keys: [1187] sites: []
+1192 None user1-1188@plc1.org keys: [1188] sites: []
+1193 None user1-1189@plc1.org keys: [1189] sites: []
+1194 None user1-1190@plc1.org keys: [1190] sites: []
+1195 None user1-1191@plc1.org keys: [1191] sites: []
+1196 None user1-1192@plc1.org keys: [1192] sites: []
+1197 None user1-1193@plc1.org keys: [1193] sites: []
+1198 None user1-1194@plc1.org keys: [1194] sites: []
+1199 None user1-1195@plc1.org keys: [1195] sites: []
+1200 None user1-1196@plc1.org keys: [1196] sites: []
+1201 None user1-1197@plc1.org keys: [1197] sites: []
+1202 None user1-1198@plc1.org keys: [1198] sites: []
+1203 None user1-1199@plc1.org keys: [1199] sites: []
+1204 None user1-1200@plc1.org keys: [1200] sites: []
+1205 None user1-1201@plc1.org keys: [1201] sites: []
+1206 None user1-1202@plc1.org keys: [1202] sites: []
+1207 None user1-1203@plc1.org keys: [1203] sites: []
+1208 None user1-1204@plc1.org keys: [1204] sites: []
+1209 None user1-1205@plc1.org keys: [1205] sites: []
+1210 None user1-1206@plc1.org keys: [1206] sites: []
+1211 None user1-1207@plc1.org keys: [1207] sites: []
+1212 None user1-1208@plc1.org keys: [1208] sites: []
+1213 None user1-1209@plc1.org keys: [1209] sites: []
+1214 None user1-1210@plc1.org keys: [1210] sites: []
+1215 None user1-1211@plc1.org keys: [1211] sites: []
+1216 None user1-1212@plc1.org keys: [1212] sites: []
+1217 None user1-1213@plc1.org keys: [1213] sites: []
+1218 None user1-1214@plc1.org keys: [1214] sites: []
+1219 None user1-1215@plc1.org keys: [1215] sites: []
+1220 None user1-1216@plc1.org keys: [1216] sites: []
+1221 None user1-1217@plc1.org keys: [1217] sites: []
+1222 None user1-1218@plc1.org keys: [1218] sites: []
+1223 None user1-1219@plc1.org keys: [1219] sites: []
+1224 None user1-1220@plc1.org keys: [1220] sites: []
+1225 None user1-1221@plc1.org keys: [1221] sites: []
+1226 None user1-1222@plc1.org keys: [1222] sites: []
+1227 None user1-1223@plc1.org keys: [1223] sites: []
+1228 None user1-1224@plc1.org keys: [1224] sites: []
+1229 None user1-1225@plc1.org keys: [1225] sites: []
+1230 None user1-1226@plc1.org keys: [1226] sites: []
+1231 None user1-1227@plc1.org keys: [1227] sites: []
+1232 None user1-1228@plc1.org keys: [1228] sites: []
+1233 None user1-1229@plc1.org keys: [1229] sites: []
+1234 None user1-1230@plc1.org keys: [1230] sites: []
+1235 None user1-1231@plc1.org keys: [1231] sites: []
+1236 None user1-1232@plc1.org keys: [1232] sites: []
+1237 None user1-1233@plc1.org keys: [1233] sites: []
+1238 None user1-1234@plc1.org keys: [1234] sites: []
+1239 None user1-1235@plc1.org keys: [1235] sites: []
+1240 None user1-1236@plc1.org keys: [1236] sites: []
+1241 None user1-1237@plc1.org keys: [1237] sites: []
+1242 None user1-1238@plc1.org keys: [1238] sites: []
+1243 None user1-1239@plc1.org keys: [1239] sites: []
+1244 None user1-1240@plc1.org keys: [1240] sites: []
+1245 None user1-1241@plc1.org keys: [1241] sites: []
+1246 None user1-1242@plc1.org keys: [1242] sites: []
+1247 None user1-1243@plc1.org keys: [1243] sites: []
+1248 None user1-1244@plc1.org keys: [1244] sites: []
+1249 None user1-1245@plc1.org keys: [1245] sites: []
+1250 None user1-1246@plc1.org keys: [1246] sites: []
+1251 None user1-1247@plc1.org keys: [1247] sites: []
+1252 None user1-1248@plc1.org keys: [1248] sites: []
+1253 None user1-1249@plc1.org keys: [1249] sites: []
+1254 None user1-1250@plc1.org keys: [1250] sites: []
+1255 None user1-1251@plc1.org keys: [1251] sites: []
+1256 None user1-1252@plc1.org keys: [1252] sites: []
+1257 None user1-1253@plc1.org keys: [1253] sites: []
+1258 None user1-1254@plc1.org keys: [1254] sites: []
+1259 None user1-1255@plc1.org keys: [1255] sites: []
+1260 None user1-1256@plc1.org keys: [1256] sites: []
+1261 None user1-1257@plc1.org keys: [1257] sites: []
+1262 None user1-1258@plc1.org keys: [1258] sites: []
+1263 None user1-1259@plc1.org keys: [1259] sites: []
+1264 None user1-1260@plc1.org keys: [1260] sites: []
+1265 None user1-1261@plc1.org keys: [1261] sites: []
+1266 None user1-1262@plc1.org keys: [1262] sites: []
+1267 None user1-1263@plc1.org keys: [1263] sites: []
+1268 None user1-1264@plc1.org keys: [1264] sites: []
+1269 None user1-1265@plc1.org keys: [1265] sites: []
+1270 None user1-1266@plc1.org keys: [1266] sites: []
+1271 None user1-1267@plc1.org keys: [1267] sites: []
+1272 None user1-1268@plc1.org keys: [1268] sites: []
+1273 None user1-1269@plc1.org keys: [1269] sites: []
+1274 None user1-1270@plc1.org keys: [1270] sites: []
+1275 None user1-1271@plc1.org keys: [1271] sites: []
+1276 None user1-1272@plc1.org keys: [1272] sites: []
+1277 None user1-1273@plc1.org keys: [1273] sites: []
+1278 None user1-1274@plc1.org keys: [1274] sites: []
+1279 None user1-1275@plc1.org keys: [1275] sites: []
+1280 None user1-1276@plc1.org keys: [1276] sites: []
+1281 None user1-1277@plc1.org keys: [1277] sites: []
+1282 None user1-1278@plc1.org keys: [1278] sites: []
+1283 None user1-1279@plc1.org keys: [1279] sites: []
+1284 None user1-1280@plc1.org keys: [1280] sites: []
+1285 None user1-1281@plc1.org keys: [1281] sites: []
+1286 None user1-1282@plc1.org keys: [1282] sites: []
+1287 None user1-1283@plc1.org keys: [1283] sites: []
+1288 None user1-1284@plc1.org keys: [1284] sites: []
+1289 None user1-1285@plc1.org keys: [1285] sites: []
+1290 None user1-1286@plc1.org keys: [1286] sites: []
+1291 None user1-1287@plc1.org keys: [1287] sites: []
+1292 None user1-1288@plc1.org keys: [1288] sites: []
+1293 None user1-1289@plc1.org keys: [1289] sites: []
+1294 None user1-1290@plc1.org keys: [1290] sites: []
+1295 None user1-1291@plc1.org keys: [1291] sites: []
+1296 None user1-1292@plc1.org keys: [1292] sites: []
+1297 None user1-1293@plc1.org keys: [1293] sites: []
+1298 None user1-1294@plc1.org keys: [1294] sites: []
+1299 None user1-1295@plc1.org keys: [1295] sites: []
+1300 None user1-1296@plc1.org keys: [1296] sites: []
+1301 None user1-1297@plc1.org keys: [1297] sites: []
+1302 None user1-1298@plc1.org keys: [1298] sites: []
+1303 None user1-1299@plc1.org keys: [1299] sites: []
+1304 None user1-1300@plc1.org keys: [1300] sites: []
+1305 None user1-1301@plc1.org keys: [1301] sites: []
+1306 None user1-1302@plc1.org keys: [1302] sites: []
+1307 None user1-1303@plc1.org keys: [1303] sites: []
+1308 None user1-1304@plc1.org keys: [1304] sites: []
+1309 None user1-1305@plc1.org keys: [1305] sites: []
+1310 None user1-1306@plc1.org keys: [1306] sites: []
+1311 None user1-1307@plc1.org keys: [1307] sites: []
+1312 None user1-1308@plc1.org keys: [1308] sites: []
+1313 None user1-1309@plc1.org keys: [1309] sites: []
+1314 None user1-1310@plc1.org keys: [1310] sites: []
+1315 None user1-1311@plc1.org keys: [1311] sites: []
+1316 None user1-1312@plc1.org keys: [1312] sites: []
+1317 None user1-1313@plc1.org keys: [1313] sites: []
+1318 None user1-1314@plc1.org keys: [1314] sites: []
+1319 None user1-1315@plc1.org keys: [1315] sites: []
+1320 None user1-1316@plc1.org keys: [1316] sites: []
+1321 None user1-1317@plc1.org keys: [1317] sites: []
+1322 None user1-1318@plc1.org keys: [1318] sites: []
+1323 None user1-1319@plc1.org keys: [1319] sites: []
+1324 None user1-1320@plc1.org keys: [1320] sites: []
+1325 None user1-1321@plc1.org keys: [1321] sites: []
+1326 None user1-1322@plc1.org keys: [1322] sites: []
+1327 None user1-1323@plc1.org keys: [1323] sites: []
+1328 None user1-1324@plc1.org keys: [1324] sites: []
+1329 None user1-1325@plc1.org keys: [1325] sites: []
+1330 None user1-1326@plc1.org keys: [1326] sites: []
+1331 None user1-1327@plc1.org keys: [1327] sites: []
+1332 None user1-1328@plc1.org keys: [1328] sites: []
+1333 None user1-1329@plc1.org keys: [1329] sites: []
+1334 None user1-1330@plc1.org keys: [1330] sites: []
+1335 None user1-1331@plc1.org keys: [1331] sites: []
+1336 None user1-1332@plc1.org keys: [1332] sites: []
+1337 None user1-1333@plc1.org keys: [1333] sites: []
+1338 None user1-1334@plc1.org keys: [1334] sites: []
+1339 None user1-1335@plc1.org keys: [1335] sites: []
+1340 None user1-1336@plc1.org keys: [1336] sites: []
+1341 None user1-1337@plc1.org keys: [1337] sites: []
+1342 None user1-1338@plc1.org keys: [1338] sites: []
+1343 None user1-1339@plc1.org keys: [1339] sites: []
+1344 None user1-1340@plc1.org keys: [1340] sites: []
+1345 None user1-1341@plc1.org keys: [1341] sites: []
+1346 None user1-1342@plc1.org keys: [1342] sites: []
+1347 None user1-1343@plc1.org keys: [1343] sites: []
+1348 None user1-1344@plc1.org keys: [1344] sites: []
+1349 None user1-1345@plc1.org keys: [1345] sites: []
+1350 None user1-1346@plc1.org keys: [1346] sites: []
+1351 None user1-1347@plc1.org keys: [1347] sites: []
+1352 None user1-1348@plc1.org keys: [1348] sites: []
+1353 None user1-1349@plc1.org keys: [1349] sites: []
+1354 None user1-1350@plc1.org keys: [1350] sites: []
+1355 None user1-1351@plc1.org keys: [1351] sites: []
+1356 None user1-1352@plc1.org keys: [1352] sites: []
+1357 None user1-1353@plc1.org keys: [1353] sites: []
+1358 None user1-1354@plc1.org keys: [1354] sites: []
+1359 None user1-1355@plc1.org keys: [1355] sites: []
+1360 None user1-1356@plc1.org keys: [1356] sites: []
+1361 None user1-1357@plc1.org keys: [1357] sites: []
+1362 None user1-1358@plc1.org keys: [1358] sites: []
+1363 None user1-1359@plc1.org keys: [1359] sites: []
+1364 None user1-1360@plc1.org keys: [1360] sites: []
+1365 None user1-1361@plc1.org keys: [1361] sites: []
+1366 None user1-1362@plc1.org keys: [1362] sites: []
+1367 None user1-1363@plc1.org keys: [1363] sites: []
+1368 None user1-1364@plc1.org keys: [1364] sites: []
+1369 None user1-1365@plc1.org keys: [1365] sites: []
+1370 None user1-1366@plc1.org keys: [1366] sites: []
+1371 None user1-1367@plc1.org keys: [1367] sites: []
+1372 None user1-1368@plc1.org keys: [1368] sites: []
+1373 None user1-1369@plc1.org keys: [1369] sites: []
+1374 None user1-1370@plc1.org keys: [1370] sites: []
+1375 None user1-1371@plc1.org keys: [1371] sites: []
+1376 None user1-1372@plc1.org keys: [1372] sites: []
+1377 None user1-1373@plc1.org keys: [1373] sites: []
+1378 None user1-1374@plc1.org keys: [1374] sites: []
+1379 None user1-1375@plc1.org keys: [1375] sites: []
+1380 None user1-1376@plc1.org keys: [1376] sites: []
+1381 None user1-1377@plc1.org keys: [1377] sites: []
+1382 None user1-1378@plc1.org keys: [1378] sites: []
+1383 None user1-1379@plc1.org keys: [1379] sites: []
+1384 None user1-1380@plc1.org keys: [1380] sites: []
+1385 None user1-1381@plc1.org keys: [1381] sites: []
+1386 None user1-1382@plc1.org keys: [1382] sites: []
+1387 None user1-1383@plc1.org keys: [1383] sites: []
+1388 None user1-1384@plc1.org keys: [1384] sites: []
+1389 None user1-1385@plc1.org keys: [1385] sites: []
+1390 None user1-1386@plc1.org keys: [1386] sites: []
+1391 None user1-1387@plc1.org keys: [1387] sites: []
+1392 None user1-1388@plc1.org keys: [1388] sites: []
+1393 None user1-1389@plc1.org keys: [1389] sites: []
+1394 None user1-1390@plc1.org keys: [1390] sites: []
+1395 None user1-1391@plc1.org keys: [1391] sites: []
+1396 None user1-1392@plc1.org keys: [1392] sites: []
+1397 None user1-1393@plc1.org keys: [1393] sites: []
+1398 None user1-1394@plc1.org keys: [1394] sites: []
+1399 None user1-1395@plc1.org keys: [1395] sites: []
+1400 None user1-1396@plc1.org keys: [1396] sites: []
+1401 None user1-1397@plc1.org keys: [1397] sites: []
+1402 None user1-1398@plc1.org keys: [1398] sites: []
+1403 None user1-1399@plc1.org keys: [1399] sites: []
+1404 None user1-1400@plc1.org keys: [1400] sites: []
+1405 None user1-1401@plc1.org keys: [1401] sites: []
+1406 None user1-1402@plc1.org keys: [1402] sites: []
+1407 None user1-1403@plc1.org keys: [1403] sites: []
+1408 None user1-1404@plc1.org keys: [1404] sites: []
+1409 None user1-1405@plc1.org keys: [1405] sites: []
+1410 None user1-1406@plc1.org keys: [1406] sites: []
+1411 None user1-1407@plc1.org keys: [1407] sites: []
+1412 None user1-1408@plc1.org keys: [1408] sites: []
+1413 None user1-1409@plc1.org keys: [1409] sites: []
+1414 None user1-1410@plc1.org keys: [1410] sites: []
+1415 None user1-1411@plc1.org keys: [1411] sites: []
+1416 None user1-1412@plc1.org keys: [1412] sites: []
+1417 None user1-1413@plc1.org keys: [1413] sites: []
+1418 None user1-1414@plc1.org keys: [1414] sites: []
+1419 None user1-1415@plc1.org keys: [1415] sites: []
+1420 None user1-1416@plc1.org keys: [1416] sites: []
+1421 None user1-1417@plc1.org keys: [1417] sites: []
+1422 None user1-1418@plc1.org keys: [1418] sites: []
+1423 None user1-1419@plc1.org keys: [1419] sites: []
+1424 None user1-1420@plc1.org keys: [1420] sites: []
+1425 None user1-1421@plc1.org keys: [1421] sites: []
+1426 None user1-1422@plc1.org keys: [1422] sites: []
+1427 None user1-1423@plc1.org keys: [1423] sites: []
+1428 None user1-1424@plc1.org keys: [1424] sites: []
+1429 None user1-1425@plc1.org keys: [1425] sites: []
+1430 None user1-1426@plc1.org keys: [1426] sites: []
+1431 None user1-1427@plc1.org keys: [1427] sites: []
+1432 None user1-1428@plc1.org keys: [1428] sites: []
+1433 None user1-1429@plc1.org keys: [1429] sites: []
+1434 None user1-1430@plc1.org keys: [1430] sites: []
+1435 None user1-1431@plc1.org keys: [1431] sites: []
+1436 None user1-1432@plc1.org keys: [1432] sites: []
+1437 None user1-1433@plc1.org keys: [1433] sites: []
+1438 None user1-1434@plc1.org keys: [1434] sites: []
+1439 None user1-1435@plc1.org keys: [1435] sites: []
+1440 None user1-1436@plc1.org keys: [1436] sites: []
+1441 None user1-1437@plc1.org keys: [1437] sites: []
+1442 None user1-1438@plc1.org keys: [1438] sites: []
+1443 None user1-1439@plc1.org keys: [1439] sites: []
+1444 None user1-1440@plc1.org keys: [1440] sites: []
+1445 None user1-1441@plc1.org keys: [1441] sites: []
+1446 None user1-1442@plc1.org keys: [1442] sites: []
+1447 None user1-1443@plc1.org keys: [1443] sites: []
+1448 None user1-1444@plc1.org keys: [1444] sites: []
+1449 None user1-1445@plc1.org keys: [1445] sites: []
+1450 None user1-1446@plc1.org keys: [1446] sites: []
+1451 None user1-1447@plc1.org keys: [1447] sites: []
+1452 None user1-1448@plc1.org keys: [1448] sites: []
+1453 None user1-1449@plc1.org keys: [1449] sites: []
+1454 None user1-1450@plc1.org keys: [1450] sites: []
+1455 None user1-1451@plc1.org keys: [1451] sites: []
+1456 None user1-1452@plc1.org keys: [1452] sites: []
+1457 None user1-1453@plc1.org keys: [1453] sites: []
+1458 None user1-1454@plc1.org keys: [1454] sites: []
+1459 None user1-1455@plc1.org keys: [1455] sites: []
+1460 None user1-1456@plc1.org keys: [1456] sites: []
+1461 None user1-1457@plc1.org keys: [1457] sites: []
+1462 None user1-1458@plc1.org keys: [1458] sites: []
+1463 None user1-1459@plc1.org keys: [1459] sites: []
+1464 None user1-1460@plc1.org keys: [1460] sites: []
+1465 None user1-1461@plc1.org keys: [1461] sites: []
+1466 None user1-1462@plc1.org keys: [1462] sites: []
+1467 None user1-1463@plc1.org keys: [1463] sites: []
+1468 None user1-1464@plc1.org keys: [1464] sites: []
+1469 None user1-1465@plc1.org keys: [1465] sites: []
+1470 None user1-1466@plc1.org keys: [1466] sites: []
+1471 None user1-1467@plc1.org keys: [1467] sites: []
+1472 None user1-1468@plc1.org keys: [1468] sites: []
+1473 None user1-1469@plc1.org keys: [1469] sites: []
+1474 None user1-1470@plc1.org keys: [1470] sites: []
+1475 None user1-1471@plc1.org keys: [1471] sites: []
+1476 None user1-1472@plc1.org keys: [1472] sites: []
+1477 None user1-1473@plc1.org keys: [1473] sites: []
+1478 None user1-1474@plc1.org keys: [1474] sites: []
+1479 None user1-1475@plc1.org keys: [1475] sites: []
+1480 None user1-1476@plc1.org keys: [1476] sites: []
+1481 None user1-1477@plc1.org keys: [1477] sites: []
+1482 None user1-1478@plc1.org keys: [1478] sites: []
+1483 None user1-1479@plc1.org keys: [1479] sites: []
+1484 None user1-1480@plc1.org keys: [1480] sites: []
+1485 None user1-1481@plc1.org keys: [1481] sites: []
+1486 None user1-1482@plc1.org keys: [1482] sites: []
+1487 None user1-1483@plc1.org keys: [1483] sites: []
+1488 None user1-1484@plc1.org keys: [1484] sites: []
+1489 None user1-1485@plc1.org keys: [1485] sites: []
+1490 None user1-1486@plc1.org keys: [1486] sites: []
+1491 None user1-1487@plc1.org keys: [1487] sites: []
+1492 None user1-1488@plc1.org keys: [1488] sites: []
+1493 None user1-1489@plc1.org keys: [1489] sites: []
+1494 None user1-1490@plc1.org keys: [1490] sites: []
+1495 None user1-1491@plc1.org keys: [1491] sites: []
+1496 None user1-1492@plc1.org keys: [1492] sites: []
+1497 None user1-1493@plc1.org keys: [1493] sites: []
+1498 None user1-1494@plc1.org keys: [1494] sites: []
+1499 None user1-1495@plc1.org keys: [1495] sites: []
+1500 None user1-1496@plc1.org keys: [1496] sites: []
+1501 None user1-1497@plc1.org keys: [1497] sites: []
+1502 None user1-1498@plc1.org keys: [1498] sites: []
+1503 None user1-1499@plc1.org keys: [1499] sites: []
+1504 None user1-1500@plc1.org keys: [1500] sites: []
+1505 None user1-1501@plc1.org keys: [1501] sites: []
+1506 None user1-1502@plc1.org keys: [1502] sites: []
+1507 None user1-1503@plc1.org keys: [1503] sites: []
+1508 None user1-1504@plc1.org keys: [1504] sites: []
+1509 None user1-1505@plc1.org keys: [1505] sites: []
+1510 None user1-1506@plc1.org keys: [1506] sites: []
+1511 None user1-1507@plc1.org keys: [1507] sites: []
+1512 None user1-1508@plc1.org keys: [1508] sites: []
+1513 None user1-1509@plc1.org keys: [1509] sites: []
+1514 None user1-1510@plc1.org keys: [1510] sites: []
+1515 None user1-1511@plc1.org keys: [1511] sites: []
+1516 None user1-1512@plc1.org keys: [1512] sites: []
+1517 None user1-1513@plc1.org keys: [1513] sites: []
+1518 None user1-1514@plc1.org keys: [1514] sites: []
+1519 None user1-1515@plc1.org keys: [1515] sites: []
+1520 None user1-1516@plc1.org keys: [1516] sites: []
+1521 None user1-1517@plc1.org keys: [1517] sites: []
+1522 None user1-1518@plc1.org keys: [1518] sites: []
+1523 None user1-1519@plc1.org keys: [1519] sites: []
+1524 None user1-1520@plc1.org keys: [1520] sites: []
+1525 None user1-1521@plc1.org keys: [1521] sites: []
+1526 None user1-1522@plc1.org keys: [1522] sites: []
+1527 None user1-1523@plc1.org keys: [1523] sites: []
+1528 None user1-1524@plc1.org keys: [1524] sites: []
+1529 None user1-1525@plc1.org keys: [1525] sites: []
+1530 None user1-1526@plc1.org keys: [1526] sites: []
+1531 None user1-1527@plc1.org keys: [1527] sites: []
+1532 None user1-1528@plc1.org keys: [1528] sites: []
+1533 None user1-1529@plc1.org keys: [1529] sites: []
+1534 None user1-1530@plc1.org keys: [1530] sites: []
+1535 None user1-1531@plc1.org keys: [1531] sites: []
+1536 None user1-1532@plc1.org keys: [1532] sites: []
+1537 None user1-1533@plc1.org keys: [1533] sites: []
+1538 None user1-1534@plc1.org keys: [1534] sites: []
+1539 None user1-1535@plc1.org keys: [1535] sites: []
+1540 None user1-1536@plc1.org keys: [1536] sites: []
+1541 None user1-1537@plc1.org keys: [1537] sites: []
+1542 None user1-1538@plc1.org keys: [1538] sites: []
+1543 None user1-1539@plc1.org keys: [1539] sites: []
+1544 None user1-1540@plc1.org keys: [1540] sites: []
+1545 None user1-1541@plc1.org keys: [1541] sites: []
+1546 None user1-1542@plc1.org keys: [1542] sites: []
+1547 None user1-1543@plc1.org keys: [1543] sites: []
+1548 None user1-1544@plc1.org keys: [1544] sites: []
+1549 None user1-1545@plc1.org keys: [1545] sites: []
+1550 None user1-1546@plc1.org keys: [1546] sites: []
+1551 None user1-1547@plc1.org keys: [1547] sites: []
+1552 None user1-1548@plc1.org keys: [1548] sites: []
+1553 None user1-1549@plc1.org keys: [1549] sites: []
+1554 None user1-1550@plc1.org keys: [1550] sites: []
+1555 None user1-1551@plc1.org keys: [1551] sites: []
+1556 None user1-1552@plc1.org keys: [1552] sites: []
+1557 None user1-1553@plc1.org keys: [1553] sites: []
+1558 None user1-1554@plc1.org keys: [1554] sites: []
+1559 None user1-1555@plc1.org keys: [1555] sites: []
+1560 None user1-1556@plc1.org keys: [1556] sites: []
+1561 None user1-1557@plc1.org keys: [1557] sites: []
+1562 None user1-1558@plc1.org keys: [1558] sites: []
+1563 None user1-1559@plc1.org keys: [1559] sites: []
+1564 None user1-1560@plc1.org keys: [1560] sites: []
+1565 None user1-1561@plc1.org keys: [1561] sites: []
+1566 None user1-1562@plc1.org keys: [1562] sites: []
+1567 None user1-1563@plc1.org keys: [1563] sites: []
+1568 None user1-1564@plc1.org keys: [1564] sites: []
+1569 None user1-1565@plc1.org keys: [1565] sites: []
+1570 None user1-1566@plc1.org keys: [1566] sites: []
+1571 None user1-1567@plc1.org keys: [1567] sites: []
+1572 None user1-1568@plc1.org keys: [1568] sites: []
+1573 None user1-1569@plc1.org keys: [1569] sites: []
+1574 None user1-1570@plc1.org keys: [1570] sites: []
+1575 None user1-1571@plc1.org keys: [1571] sites: []
+1576 None user1-1572@plc1.org keys: [1572] sites: []
+1577 None user1-1573@plc1.org keys: [1573] sites: []
+1578 None user1-1574@plc1.org keys: [1574] sites: []
+1579 None user1-1575@plc1.org keys: [1575] sites: []
+1580 None user1-1576@plc1.org keys: [1576] sites: []
+1581 None user1-1577@plc1.org keys: [1577] sites: []
+1582 None user1-1578@plc1.org keys: [1578] sites: []
+1583 None user1-1579@plc1.org keys: [1579] sites: []
+1584 None user1-1580@plc1.org keys: [1580] sites: []
+1585 None user1-1581@plc1.org keys: [1581] sites: []
+1586 None user1-1582@plc1.org keys: [1582] sites: []
+1587 None user1-1583@plc1.org keys: [1583] sites: []
+1588 None user1-1584@plc1.org keys: [1584] sites: []
+1589 None user1-1585@plc1.org keys: [1585] sites: []
+1590 None user1-1586@plc1.org keys: [1586] sites: []
+1591 None user1-1587@plc1.org keys: [1587] sites: []
+1592 None user1-1588@plc1.org keys: [1588] sites: []
+1593 None user1-1589@plc1.org keys: [1589] sites: []
+1594 None user1-1590@plc1.org keys: [1590] sites: []
+1595 None user1-1591@plc1.org keys: [1591] sites: []
+1596 None user1-1592@plc1.org keys: [1592] sites: []
+1597 None user1-1593@plc1.org keys: [1593] sites: []
+1598 None user1-1594@plc1.org keys: [1594] sites: []
+1599 None user1-1595@plc1.org keys: [1595] sites: []
+1600 None user1-1596@plc1.org keys: [1596] sites: []
+1601 None user1-1597@plc1.org keys: [1597] sites: []
+1602 None user1-1598@plc1.org keys: [1598] sites: []
+1603 None user1-1599@plc1.org keys: [1599] sites: []
+1604 None user1-1600@plc1.org keys: [1600] sites: []
+1605 None user1-1601@plc1.org keys: [1601] sites: []
+1606 None user1-1602@plc1.org keys: [1602] sites: []
+1607 None user1-1603@plc1.org keys: [1603] sites: []
+1608 None user1-1604@plc1.org keys: [1604] sites: []
+1609 None user1-1605@plc1.org keys: [1605] sites: []
+1610 None user1-1606@plc1.org keys: [1606] sites: []
+1611 None user1-1607@plc1.org keys: [1607] sites: []
+1612 None user1-1608@plc1.org keys: [1608] sites: []
+1613 None user1-1609@plc1.org keys: [1609] sites: []
+1614 None user1-1610@plc1.org keys: [1610] sites: []
+1615 None user1-1611@plc1.org keys: [1611] sites: []
+1616 None user1-1612@plc1.org keys: [1612] sites: []
+1617 None user1-1613@plc1.org keys: [1613] sites: []
+1618 None user1-1614@plc1.org keys: [1614] sites: []
+1619 None user1-1615@plc1.org keys: [1615] sites: []
+1620 None user1-1616@plc1.org keys: [1616] sites: []
+1621 None user1-1617@plc1.org keys: [1617] sites: []
+1622 None user1-1618@plc1.org keys: [1618] sites: []
+1623 None user1-1619@plc1.org keys: [1619] sites: []
+1624 None user1-1620@plc1.org keys: [1620] sites: []
+1625 None user1-1621@plc1.org keys: [1621] sites: []
+1626 None user1-1622@plc1.org keys: [1622] sites: []
+1627 None user1-1623@plc1.org keys: [1623] sites: []
+1628 None user1-1624@plc1.org keys: [1624] sites: []
+1629 None user1-1625@plc1.org keys: [1625] sites: []
+1630 None user1-1626@plc1.org keys: [1626] sites: []
+1631 None user1-1627@plc1.org keys: [1627] sites: []
+1632 None user1-1628@plc1.org keys: [1628] sites: []
+1633 None user1-1629@plc1.org keys: [1629] sites: []
+1634 None user1-1630@plc1.org keys: [1630] sites: []
+1635 None user1-1631@plc1.org keys: [1631] sites: []
+1636 None user1-1632@plc1.org keys: [1632] sites: []
+1637 None user1-1633@plc1.org keys: [1633] sites: []
+1638 None user1-1634@plc1.org keys: [1634] sites: []
+1639 None user1-1635@plc1.org keys: [1635] sites: []
+1640 None user1-1636@plc1.org keys: [1636] sites: []
+1641 None user1-1637@plc1.org keys: [1637] sites: []
+1642 None user1-1638@plc1.org keys: [1638] sites: []
+1643 None user1-1639@plc1.org keys: [1639] sites: []
+1644 None user1-1640@plc1.org keys: [1640] sites: []
+1645 None user1-1641@plc1.org keys: [1641] sites: []
+1646 None user1-1642@plc1.org keys: [1642] sites: []
+1647 None user1-1643@plc1.org keys: [1643] sites: []
+1648 None user1-1644@plc1.org keys: [1644] sites: []
+1649 None user1-1645@plc1.org keys: [1645] sites: []
+1650 None user1-1646@plc1.org keys: [1646] sites: []
+1651 None user1-1647@plc1.org keys: [1647] sites: []
+1652 None user1-1648@plc1.org keys: [1648] sites: []
+1653 None user1-1649@plc1.org keys: [1649] sites: []
+1654 None user1-1650@plc1.org keys: [1650] sites: []
+1655 None user1-1651@plc1.org keys: [1651] sites: []
+1656 None user1-1652@plc1.org keys: [1652] sites: []
+1657 None user1-1653@plc1.org keys: [1653] sites: []
+1658 None user1-1654@plc1.org keys: [1654] sites: []
+1659 None user1-1655@plc1.org keys: [1655] sites: []
+1660 None user1-1656@plc1.org keys: [1656] sites: []
+1661 None user1-1657@plc1.org keys: [1657] sites: []
+1662 None user1-1658@plc1.org keys: [1658] sites: []
+1663 None user1-1659@plc1.org keys: [1659] sites: []
+1664 None user1-1660@plc1.org keys: [1660] sites: []
+1665 None user1-1661@plc1.org keys: [1661] sites: []
+1666 None user1-1662@plc1.org keys: [1662] sites: []
+1667 None user1-1663@plc1.org keys: [1663] sites: []
+1668 None user1-1664@plc1.org keys: [1664] sites: []
+1669 None user1-1665@plc1.org keys: [1665] sites: []
+1670 None user1-1666@plc1.org keys: [1666] sites: []
+1671 None user1-1667@plc1.org keys: [1667] sites: []
+1672 None user1-1668@plc1.org keys: [1668] sites: []
+1673 None user1-1669@plc1.org keys: [1669] sites: []
+1674 None user1-1670@plc1.org keys: [1670] sites: []
+1675 None user1-1671@plc1.org keys: [1671] sites: []
+1676 None user1-1672@plc1.org keys: [1672] sites: []
+1677 None user1-1673@plc1.org keys: [1673] sites: []
+1678 None user1-1674@plc1.org keys: [1674] sites: []
+1679 None user1-1675@plc1.org keys: [1675] sites: []
+1680 None user1-1676@plc1.org keys: [1676] sites: []
+1681 None user1-1677@plc1.org keys: [1677] sites: []
+1682 None user1-1678@plc1.org keys: [1678] sites: []
+1683 None user1-1679@plc1.org keys: [1679] sites: []
+1684 None user1-1680@plc1.org keys: [1680] sites: []
+1685 None user1-1681@plc1.org keys: [1681] sites: []
+1686 None user1-1682@plc1.org keys: [1682] sites: []
+1687 None user1-1683@plc1.org keys: [1683] sites: []
+1688 None user1-1684@plc1.org keys: [1684] sites: []
+1689 None user1-1685@plc1.org keys: [1685] sites: []
+1690 None user1-1686@plc1.org keys: [1686] sites: []
+1691 None user1-1687@plc1.org keys: [1687] sites: []
+1692 None user1-1688@plc1.org keys: [1688] sites: []
+1693 None user1-1689@plc1.org keys: [1689] sites: []
+1694 None user1-1690@plc1.org keys: [1690] sites: []
+1695 None user1-1691@plc1.org keys: [1691] sites: []
+1696 None user1-1692@plc1.org keys: [1692] sites: []
+1697 None user1-1693@plc1.org keys: [1693] sites: []
+1698 None user1-1694@plc1.org keys: [1694] sites: []
+1699 None user1-1695@plc1.org keys: [1695] sites: []
+1700 None user1-1696@plc1.org keys: [1696] sites: []
+1701 None user1-1697@plc1.org keys: [1697] sites: []
+1702 None user1-1698@plc1.org keys: [1698] sites: []
+1703 None user1-1699@plc1.org keys: [1699] sites: []
+1704 None user1-1700@plc1.org keys: [1700] sites: []
+1705 None user1-1701@plc1.org keys: [1701] sites: []
+1706 None user1-1702@plc1.org keys: [1702] sites: []
+1707 None user1-1703@plc1.org keys: [1703] sites: []
+1708 None user1-1704@plc1.org keys: [1704] sites: []
+1709 None user1-1705@plc1.org keys: [1705] sites: []
+1710 None user1-1706@plc1.org keys: [1706] sites: []
+1711 None user1-1707@plc1.org keys: [1707] sites: []
+1712 None user1-1708@plc1.org keys: [1708] sites: []
+1713 None user1-1709@plc1.org keys: [1709] sites: []
+1714 None user1-1710@plc1.org keys: [1710] sites: []
+1715 None user1-1711@plc1.org keys: [1711] sites: []
+1716 None user1-1712@plc1.org keys: [1712] sites: []
+1717 None user1-1713@plc1.org keys: [1713] sites: []
+1718 None user1-1714@plc1.org keys: [1714] sites: []
+1719 None user1-1715@plc1.org keys: [1715] sites: []
+1720 None user1-1716@plc1.org keys: [1716] sites: []
+1721 None user1-1717@plc1.org keys: [1717] sites: []
+1722 None user1-1718@plc1.org keys: [1718] sites: []
+1723 None user1-1719@plc1.org keys: [1719] sites: []
+1724 None user1-1720@plc1.org keys: [1720] sites: []
+1725 None user1-1721@plc1.org keys: [1721] sites: []
+1726 None user1-1722@plc1.org keys: [1722] sites: []
+1727 None user1-1723@plc1.org keys: [1723] sites: []
+1728 None user1-1724@plc1.org keys: [1724] sites: []
+1729 None user1-1725@plc1.org keys: [1725] sites: []
+1730 None user1-1726@plc1.org keys: [1726] sites: []
+1731 None user1-1727@plc1.org keys: [1727] sites: []
+1732 None user1-1728@plc1.org keys: [1728] sites: []
+1733 None user1-1729@plc1.org keys: [1729] sites: []
+1734 None user1-1730@plc1.org keys: [1730] sites: []
+1735 None user1-1731@plc1.org keys: [1731] sites: []
+1736 None user1-1732@plc1.org keys: [1732] sites: []
+1737 None user1-1733@plc1.org keys: [1733] sites: []
+1738 None user1-1734@plc1.org keys: [1734] sites: []
+1739 None user1-1735@plc1.org keys: [1735] sites: []
+1740 None user1-1736@plc1.org keys: [1736] sites: []
+1741 None user1-1737@plc1.org keys: [1737] sites: []
+1742 None user1-1738@plc1.org keys: [1738] sites: []
+1743 None user1-1739@plc1.org keys: [1739] sites: []
+1744 None user1-1740@plc1.org keys: [1740] sites: []
+1745 None user1-1741@plc1.org keys: [1741] sites: []
+1746 None user1-1742@plc1.org keys: [1742] sites: []
+1747 None user1-1743@plc1.org keys: [1743] sites: []
+1748 None user1-1744@plc1.org keys: [1744] sites: []
+1749 None user1-1745@plc1.org keys: [1745] sites: []
+1750 None user1-1746@plc1.org keys: [1746] sites: []
+1751 None user1-1747@plc1.org keys: [1747] sites: []
+1752 None user1-1748@plc1.org keys: [1748] sites: []
+1753 None user1-1749@plc1.org keys: [1749] sites: []
+1754 None user1-1750@plc1.org keys: [1750] sites: []
+1755 None user1-1751@plc1.org keys: [1751] sites: []
+1756 None user1-1752@plc1.org keys: [1752] sites: []
+1757 None user1-1753@plc1.org keys: [1753] sites: []
+1758 None user1-1754@plc1.org keys: [1754] sites: []
+1759 None user1-1755@plc1.org keys: [1755] sites: []
+1760 None user1-1756@plc1.org keys: [1756] sites: []
+1761 None user1-1757@plc1.org keys: [1757] sites: []
+1762 None user1-1758@plc1.org keys: [1758] sites: []
+1763 None user1-1759@plc1.org keys: [1759] sites: []
+1764 None user1-1760@plc1.org keys: [1760] sites: []
+1765 None user1-1761@plc1.org keys: [1761] sites: []
+1766 None user1-1762@plc1.org keys: [1762] sites: []
+1767 None user1-1763@plc1.org keys: [1763] sites: []
+1768 None user1-1764@plc1.org keys: [1764] sites: []
+1769 None user1-1765@plc1.org keys: [1765] sites: []
+1770 None user1-1766@plc1.org keys: [1766] sites: []
+1771 None user1-1767@plc1.org keys: [1767] sites: []
+1772 None user1-1768@plc1.org keys: [1768] sites: []
+1773 None user1-1769@plc1.org keys: [1769] sites: []
+1774 None user1-1770@plc1.org keys: [1770] sites: []
+1775 None user1-1771@plc1.org keys: [1771] sites: []
+1776 None user1-1772@plc1.org keys: [1772] sites: []
+1777 None user1-1773@plc1.org keys: [1773] sites: []
+1778 None user1-1774@plc1.org keys: [1774] sites: []
+1779 None user1-1775@plc1.org keys: [1775] sites: []
+1780 None user1-1776@plc1.org keys: [1776] sites: []
+1781 None user1-1777@plc1.org keys: [1777] sites: []
+1782 None user1-1778@plc1.org keys: [1778] sites: []
+1783 None user1-1779@plc1.org keys: [1779] sites: []
+1784 None user1-1780@plc1.org keys: [1780] sites: []
+1785 None user1-1781@plc1.org keys: [1781] sites: []
+1786 None user1-1782@plc1.org keys: [1782] sites: []
+1787 None user1-1783@plc1.org keys: [1783] sites: []
+1788 None user1-1784@plc1.org keys: [1784] sites: []
+1789 None user1-1785@plc1.org keys: [1785] sites: []
+1790 None user1-1786@plc1.org keys: [1786] sites: []
+1791 None user1-1787@plc1.org keys: [1787] sites: []
+1792 None user1-1788@plc1.org keys: [1788] sites: []
+1793 None user1-1789@plc1.org keys: [1789] sites: []
+1794 None user1-1790@plc1.org keys: [1790] sites: []
+1795 None user1-1791@plc1.org keys: [1791] sites: []
+1796 None user1-1792@plc1.org keys: [1792] sites: []
+1797 None user1-1793@plc1.org keys: [1793] sites: []
+1798 None user1-1794@plc1.org keys: [1794] sites: []
+1799 None user1-1795@plc1.org keys: [1795] sites: []
+1800 None user1-1796@plc1.org keys: [1796] sites: []
+1801 None user1-1797@plc1.org keys: [1797] sites: []
+1802 None user1-1798@plc1.org keys: [1798] sites: []
+1803 None user1-1799@plc1.org keys: [1799] sites: []
+1804 None user1-1800@plc1.org keys: [1800] sites: []
+1805 None user1-1801@plc1.org keys: [1801] sites: []
+1806 None user1-1802@plc1.org keys: [1802] sites: []
+1807 None user1-1803@plc1.org keys: [1803] sites: []
+1808 None user1-1804@plc1.org keys: [1804] sites: []
+1809 None user1-1805@plc1.org keys: [1805] sites: []
+1810 None user1-1806@plc1.org keys: [1806] sites: []
+1811 None user1-1807@plc1.org keys: [1807] sites: []
+1812 None user1-1808@plc1.org keys: [1808] sites: []
+1813 None user1-1809@plc1.org keys: [1809] sites: []
+1814 None user1-1810@plc1.org keys: [1810] sites: []
+1815 None user1-1811@plc1.org keys: [1811] sites: []
+1816 None user1-1812@plc1.org keys: [1812] sites: []
+1817 None user1-1813@plc1.org keys: [1813] sites: []
+1818 None user1-1814@plc1.org keys: [1814] sites: []
+1819 None user1-1815@plc1.org keys: [1815] sites: []
+1820 None user1-1816@plc1.org keys: [1816] sites: []
+1821 None user1-1817@plc1.org keys: [1817] sites: []
+1822 None user1-1818@plc1.org keys: [1818] sites: []
+1823 None user1-1819@plc1.org keys: [1819] sites: []
+1824 None user1-1820@plc1.org keys: [1820] sites: []
+1825 None user1-1821@plc1.org keys: [1821] sites: []
+1826 None user1-1822@plc1.org keys: [1822] sites: []
+1827 None user1-1823@plc1.org keys: [1823] sites: []
+1828 None user1-1824@plc1.org keys: [1824] sites: []
+1829 None user1-1825@plc1.org keys: [1825] sites: []
+1830 None user1-1826@plc1.org keys: [1826] sites: []
+1831 None user1-1827@plc1.org keys: [1827] sites: []
+1832 None user1-1828@plc1.org keys: [1828] sites: []
+1833 None user1-1829@plc1.org keys: [1829] sites: []
+1834 None user1-1830@plc1.org keys: [1830] sites: []
+1835 None user1-1831@plc1.org keys: [1831] sites: []
+1836 None user1-1832@plc1.org keys: [1832] sites: []
+1837 None user1-1833@plc1.org keys: [1833] sites: []
+1838 None user1-1834@plc1.org keys: [1834] sites: []
+1839 None user1-1835@plc1.org keys: [1835] sites: []
+1840 None user1-1836@plc1.org keys: [1836] sites: []
+1841 None user1-1837@plc1.org keys: [1837] sites: []
+1842 None user1-1838@plc1.org keys: [1838] sites: []
+1843 None user1-1839@plc1.org keys: [1839] sites: []
+1844 None user1-1840@plc1.org keys: [1840] sites: []
+1845 None user1-1841@plc1.org keys: [1841] sites: []
+1846 None user1-1842@plc1.org keys: [1842] sites: []
+1847 None user1-1843@plc1.org keys: [1843] sites: []
+1848 None user1-1844@plc1.org keys: [1844] sites: []
+1849 None user1-1845@plc1.org keys: [1845] sites: []
+1850 None user1-1846@plc1.org keys: [1846] sites: []
+1851 None user1-1847@plc1.org keys: [1847] sites: []
+1852 None user1-1848@plc1.org keys: [1848] sites: []
+1853 None user1-1849@plc1.org keys: [1849] sites: []
+1854 None user1-1850@plc1.org keys: [1850] sites: []
+1855 None user1-1851@plc1.org keys: [1851] sites: []
+1856 None user1-1852@plc1.org keys: [1852] sites: []
+1857 None user1-1853@plc1.org keys: [1853] sites: []
+1858 None user1-1854@plc1.org keys: [1854] sites: []
+1859 None user1-1855@plc1.org keys: [1855] sites: []
+1860 None user1-1856@plc1.org keys: [1856] sites: []
+1861 None user1-1857@plc1.org keys: [1857] sites: []
+1862 None user1-1858@plc1.org keys: [1858] sites: []
+1863 None user1-1859@plc1.org keys: [1859] sites: []
+1864 None user1-1860@plc1.org keys: [1860] sites: []
+1865 None user1-1861@plc1.org keys: [1861] sites: []
+1866 None user1-1862@plc1.org keys: [1862] sites: []
+1867 None user1-1863@plc1.org keys: [1863] sites: []
+1868 None user1-1864@plc1.org keys: [1864] sites: []
+1869 None user1-1865@plc1.org keys: [1865] sites: []
+1870 None user1-1866@plc1.org keys: [1866] sites: []
+1871 None user1-1867@plc1.org keys: [1867] sites: []
+1872 None user1-1868@plc1.org keys: [1868] sites: []
+1873 None user1-1869@plc1.org keys: [1869] sites: []
+1874 None user1-1870@plc1.org keys: [1870] sites: []
+1875 None user1-1871@plc1.org keys: [1871] sites: []
+1876 None user1-1872@plc1.org keys: [1872] sites: []
+1877 None user1-1873@plc1.org keys: [1873] sites: []
+1878 None user1-1874@plc1.org keys: [1874] sites: []
+1879 None user1-1875@plc1.org keys: [1875] sites: []
+1880 None user1-1876@plc1.org keys: [1876] sites: []
+1881 None user1-1877@plc1.org keys: [1877] sites: []
+1882 None user1-1878@plc1.org keys: [1878] sites: []
+1883 None user1-1879@plc1.org keys: [1879] sites: []
+1884 None user1-1880@plc1.org keys: [1880] sites: []
+1885 None user1-1881@plc1.org keys: [1881] sites: []
+1886 None user1-1882@plc1.org keys: [1882] sites: []
+1887 None user1-1883@plc1.org keys: [1883] sites: []
+1888 None user1-1884@plc1.org keys: [1884] sites: []
+1889 None user1-1885@plc1.org keys: [1885] sites: []
+1890 None user1-1886@plc1.org keys: [1886] sites: []
+1891 None user1-1887@plc1.org keys: [1887] sites: []
+1892 None user1-1888@plc1.org keys: [1888] sites: []
+1893 None user1-1889@plc1.org keys: [1889] sites: []
+1894 None user1-1890@plc1.org keys: [1890] sites: []
+1895 None user1-1891@plc1.org keys: [1891] sites: []
+1896 None user1-1892@plc1.org keys: [1892] sites: []
+1897 None user1-1893@plc1.org keys: [1893] sites: []
+1898 None user1-1894@plc1.org keys: [1894] sites: []
+1899 None user1-1895@plc1.org keys: [1895] sites: []
+1900 None user1-1896@plc1.org keys: [1896] sites: []
+1901 None user1-1897@plc1.org keys: [1897] sites: []
+1902 None user1-1898@plc1.org keys: [1898] sites: []
+1903 None user1-1899@plc1.org keys: [1899] sites: []
+1904 None user1-1900@plc1.org keys: [1900] sites: []
+1905 None user1-1901@plc1.org keys: [1901] sites: []
+1906 None user1-1902@plc1.org keys: [1902] sites: []
+1907 None user1-1903@plc1.org keys: [1903] sites: []
+1908 None user1-1904@plc1.org keys: [1904] sites: []
+1909 None user1-1905@plc1.org keys: [1905] sites: []
+1910 None user1-1906@plc1.org keys: [1906] sites: []
+1911 None user1-1907@plc1.org keys: [1907] sites: []
+1912 None user1-1908@plc1.org keys: [1908] sites: []
+1913 None user1-1909@plc1.org keys: [1909] sites: []
+1914 None user1-1910@plc1.org keys: [1910] sites: []
+1915 None user1-1911@plc1.org keys: [1911] sites: []
+1916 None user1-1912@plc1.org keys: [1912] sites: []
+1917 None user1-1913@plc1.org keys: [1913] sites: []
+1918 None user1-1914@plc1.org keys: [1914] sites: []
+1919 None user1-1915@plc1.org keys: [1915] sites: []
+1920 None user1-1916@plc1.org keys: [1916] sites: []
+1921 None user1-1917@plc1.org keys: [1917] sites: []
+1922 None user1-1918@plc1.org keys: [1918] sites: []
+1923 None user1-1919@plc1.org keys: [1919] sites: []
+1924 None user1-1920@plc1.org keys: [1920] sites: []
+1925 None user1-1921@plc1.org keys: [1921] sites: []
+1926 None user1-1922@plc1.org keys: [1922] sites: []
+1927 None user1-1923@plc1.org keys: [1923] sites: []
+1928 None user1-1924@plc1.org keys: [1924] sites: []
+1929 None user1-1925@plc1.org keys: [1925] sites: []
+1930 None user1-1926@plc1.org keys: [1926] sites: []
+1931 None user1-1927@plc1.org keys: [1927] sites: []
+1932 None user1-1928@plc1.org keys: [1928] sites: []
+1933 None user1-1929@plc1.org keys: [1929] sites: []
+1934 None user1-1930@plc1.org keys: [1930] sites: []
+1935 None user1-1931@plc1.org keys: [1931] sites: []
+1936 None user1-1932@plc1.org keys: [1932] sites: []
+1937 None user1-1933@plc1.org keys: [1933] sites: []
+1938 None user1-1934@plc1.org keys: [1934] sites: []
+1939 None user1-1935@plc1.org keys: [1935] sites: []
+1940 None user1-1936@plc1.org keys: [1936] sites: []
+1941 None user1-1937@plc1.org keys: [1937] sites: []
+1942 None user1-1938@plc1.org keys: [1938] sites: []
+1943 None user1-1939@plc1.org keys: [1939] sites: []
+1944 None user1-1940@plc1.org keys: [1940] sites: []
+1945 None user1-1941@plc1.org keys: [1941] sites: []
+1946 None user1-1942@plc1.org keys: [1942] sites: []
+1947 None user1-1943@plc1.org keys: [1943] sites: []
+1948 None user1-1944@plc1.org keys: [1944] sites: []
+1949 None user1-1945@plc1.org keys: [1945] sites: []
+1950 None user1-1946@plc1.org keys: [1946] sites: []
+1951 None user1-1947@plc1.org keys: [1947] sites: []
+1952 None user1-1948@plc1.org keys: [1948] sites: []
+1953 None user1-1949@plc1.org keys: [1949] sites: []
+1954 None user1-1950@plc1.org keys: [1950] sites: []
+1955 None user1-1951@plc1.org keys: [1951] sites: []
+1956 None user1-1952@plc1.org keys: [1952] sites: []
+1957 None user1-1953@plc1.org keys: [1953] sites: []
+1958 None user1-1954@plc1.org keys: [1954] sites: []
+1959 None user1-1955@plc1.org keys: [1955] sites: []
+1960 None user1-1956@plc1.org keys: [1956] sites: []
+1961 None user1-1957@plc1.org keys: [1957] sites: []
+1962 None user1-1958@plc1.org keys: [1958] sites: []
+1963 None user1-1959@plc1.org keys: [1959] sites: []
+1964 None user1-1960@plc1.org keys: [1960] sites: []
+1965 None user1-1961@plc1.org keys: [1961] sites: []
+1966 None user1-1962@plc1.org keys: [1962] sites: []
+1967 None user1-1963@plc1.org keys: [1963] sites: []
+1968 None user1-1964@plc1.org keys: [1964] sites: []
+1969 None user1-1965@plc1.org keys: [1965] sites: []
+1970 None user1-1966@plc1.org keys: [1966] sites: []
+1971 None user1-1967@plc1.org keys: [1967] sites: []
+1972 None user1-1968@plc1.org keys: [1968] sites: []
+1973 None user1-1969@plc1.org keys: [1969] sites: []
+1974 None user1-1970@plc1.org keys: [1970] sites: []
+1975 None user1-1971@plc1.org keys: [1971] sites: []
+1976 None user1-1972@plc1.org keys: [1972] sites: []
+1977 None user1-1973@plc1.org keys: [1973] sites: []
+1978 None user1-1974@plc1.org keys: [1974] sites: []
+1979 None user1-1975@plc1.org keys: [1975] sites: []
+1980 None user1-1976@plc1.org keys: [1976] sites: []
+1981 None user1-1977@plc1.org keys: [1977] sites: []
+1982 None user1-1978@plc1.org keys: [1978] sites: []
+1983 None user1-1979@plc1.org keys: [1979] sites: []
+1984 None user1-1980@plc1.org keys: [1980] sites: []
+1985 None user1-1981@plc1.org keys: [1981] sites: []
+1986 None user1-1982@plc1.org keys: [1982] sites: []
+1987 None user1-1983@plc1.org keys: [1983] sites: []
+1988 None user1-1984@plc1.org keys: [1984] sites: []
+1989 None user1-1985@plc1.org keys: [1985] sites: []
+1990 None user1-1986@plc1.org keys: [1986] sites: []
+1991 None user1-1987@plc1.org keys: [1987] sites: []
+1992 None user1-1988@plc1.org keys: [1988] sites: []
+1993 None user1-1989@plc1.org keys: [1989] sites: []
+1994 None user1-1990@plc1.org keys: [1990] sites: []
+1995 None user1-1991@plc1.org keys: [1991] sites: []
+1996 None user1-1992@plc1.org keys: [1992] sites: []
+1997 None user1-1993@plc1.org keys: [1993] sites: []
+1998 None user1-1994@plc1.org keys: [1994] sites: []
+1999 None user1-1995@plc1.org keys: [1995] sites: []
+2000 None user1-1996@plc1.org keys: [1996] sites: []
+2001 None user1-1997@plc1.org keys: [1997] sites: []
+2002 None user1-1998@plc1.org keys: [1998] sites: []
+2003 None user1-1999@plc1.org keys: [1999] sites: []
+2004 None user1-2000@plc1.org keys: [2000] sites: []
+2005 1 root@plc2.org keys: [] sites: [1002]
+2006 1 user2-1@plc2.org keys: [2001] sites: []
+2007 1 user2-2@plc2.org keys: [2002] sites: []
+2008 1 user2-3@plc2.org keys: [2003] sites: []
+2009 1 user2-4@plc2.org keys: [2004] sites: []
+2010 1 user2-5@plc2.org keys: [2005] sites: []
+2011 1 user2-6@plc2.org keys: [2006] sites: []
+2012 1 user2-7@plc2.org keys: [2007] sites: []
+2013 1 user2-8@plc2.org keys: [2008] sites: []
+2014 1 user2-9@plc2.org keys: [2009] sites: []
+2015 1 user2-10@plc2.org keys: [2010] sites: []
+2016 1 user2-11@plc2.org keys: [2011] sites: []
+2017 1 user2-12@plc2.org keys: [2012] sites: []
+2018 1 user2-13@plc2.org keys: [2013] sites: []
+2019 1 user2-14@plc2.org keys: [2014] sites: []
+2020 1 user2-15@plc2.org keys: [2015] sites: []
+2021 1 user2-16@plc2.org keys: [2016] sites: []
+2022 1 user2-17@plc2.org keys: [2017] sites: []
+2023 1 user2-18@plc2.org keys: [2018] sites: []
+2024 1 user2-19@plc2.org keys: [2019] sites: []
+2025 1 user2-20@plc2.org keys: [2020] sites: []
+2026 1 user2-21@plc2.org keys: [2021] sites: []
+2027 1 user2-22@plc2.org keys: [2022] sites: []
+2028 1 user2-23@plc2.org keys: [2023] sites: []
+2029 1 user2-24@plc2.org keys: [2024] sites: []
+2030 1 user2-25@plc2.org keys: [2025] sites: []
+2031 1 user2-26@plc2.org keys: [2026] sites: []
+2032 1 user2-27@plc2.org keys: [2027] sites: []
+2033 1 user2-28@plc2.org keys: [2028] sites: []
+2034 1 user2-29@plc2.org keys: [2029] sites: []
+2035 1 user2-30@plc2.org keys: [2030] sites: []
+2036 1 user2-31@plc2.org keys: [2031] sites: []
+2037 1 user2-32@plc2.org keys: [2032] sites: []
+2038 1 user2-33@plc2.org keys: [2033] sites: []
+2039 1 user2-34@plc2.org keys: [2034] sites: []
+2040 1 user2-35@plc2.org keys: [2035] sites: []
+2041 1 user2-36@plc2.org keys: [2036] sites: []
+2042 1 user2-37@plc2.org keys: [2037] sites: []
+2043 1 user2-38@plc2.org keys: [2038] sites: []
+2044 1 user2-39@plc2.org keys: [2039] sites: []
+2045 1 user2-40@plc2.org keys: [2040] sites: []
+2046 1 user2-41@plc2.org keys: [2041] sites: []
+2047 1 user2-42@plc2.org keys: [2042] sites: []
+2048 1 user2-43@plc2.org keys: [2043] sites: []
+2049 1 user2-44@plc2.org keys: [2044] sites: []
+2050 1 user2-45@plc2.org keys: [2045] sites: []
+2051 1 user2-46@plc2.org keys: [2046] sites: []
+2052 1 user2-47@plc2.org keys: [2047] sites: []
+2053 1 user2-48@plc2.org keys: [2048] sites: []
+2054 1 user2-49@plc2.org keys: [2049] sites: []
+2055 1 user2-50@plc2.org keys: [2050] sites: []
+2056 1 user2-51@plc2.org keys: [2051] sites: []
+2057 1 user2-52@plc2.org keys: [2052] sites: []
+2058 1 user2-53@plc2.org keys: [2053] sites: []
+2059 1 user2-54@plc2.org keys: [2054] sites: []
+2060 1 user2-55@plc2.org keys: [2055] sites: []
+2061 1 user2-56@plc2.org keys: [2056] sites: []
+2062 1 user2-57@plc2.org keys: [2057] sites: []
+2063 1 user2-58@plc2.org keys: [2058] sites: []
+2064 1 user2-59@plc2.org keys: [2059] sites: []
+2065 1 user2-60@plc2.org keys: [2060] sites: []
+2066 1 user2-61@plc2.org keys: [2061] sites: []
+2067 1 user2-62@plc2.org keys: [2062] sites: []
+2068 1 user2-63@plc2.org keys: [2063] sites: []
+2069 1 user2-64@plc2.org keys: [2064] sites: []
+2070 1 user2-65@plc2.org keys: [2065] sites: []
+2071 1 user2-66@plc2.org keys: [2066] sites: []
+2072 1 user2-67@plc2.org keys: [2067] sites: []
+2073 1 user2-68@plc2.org keys: [2068] sites: []
+2074 1 user2-69@plc2.org keys: [2069] sites: []
+2075 1 user2-70@plc2.org keys: [2070] sites: []
+2076 1 user2-71@plc2.org keys: [2071] sites: []
+2077 1 user2-72@plc2.org keys: [2072] sites: []
+2078 1 user2-73@plc2.org keys: [2073] sites: []
+2079 1 user2-74@plc2.org keys: [2074] sites: []
+2080 1 user2-75@plc2.org keys: [2075] sites: []
+2081 1 user2-76@plc2.org keys: [2076] sites: []
+2082 1 user2-77@plc2.org keys: [2077] sites: []
+2083 1 user2-78@plc2.org keys: [2078] sites: []
+2084 1 user2-79@plc2.org keys: [2079] sites: []
+2085 1 user2-80@plc2.org keys: [2080] sites: []
+2086 1 user2-81@plc2.org keys: [2081] sites: []
+2087 1 user2-82@plc2.org keys: [2082] sites: []
+2088 1 user2-83@plc2.org keys: [2083] sites: []
+2089 1 user2-84@plc2.org keys: [2084] sites: []
+2090 1 user2-85@plc2.org keys: [2085] sites: []
+2091 1 user2-86@plc2.org keys: [2086] sites: []
+2092 1 user2-87@plc2.org keys: [2087] sites: []
+2093 1 user2-88@plc2.org keys: [2088] sites: []
+2094 1 user2-89@plc2.org keys: [2089] sites: []
+2095 1 user2-90@plc2.org keys: [2090] sites: []
+2096 1 user2-91@plc2.org keys: [2091] sites: []
+2097 1 user2-92@plc2.org keys: [2092] sites: []
+2098 1 user2-93@plc2.org keys: [2093] sites: []
+2099 1 user2-94@plc2.org keys: [2094] sites: []
+2100 1 user2-95@plc2.org keys: [2095] sites: []
+2101 1 user2-96@plc2.org keys: [2096] sites: []
+2102 1 user2-97@plc2.org keys: [2097] sites: []
+2103 1 user2-98@plc2.org keys: [2098] sites: []
+2104 1 user2-99@plc2.org keys: [2099] sites: []
+2105 1 user2-100@plc2.org keys: [2100] sites: []
+2106 1 user2-101@plc2.org keys: [2101] sites: []
+2107 1 user2-102@plc2.org keys: [2102] sites: []
+2108 1 user2-103@plc2.org keys: [2103] sites: []
+2109 1 user2-104@plc2.org keys: [2104] sites: []
+2110 1 user2-105@plc2.org keys: [2105] sites: []
+2111 1 user2-106@plc2.org keys: [2106] sites: []
+2112 1 user2-107@plc2.org keys: [2107] sites: []
+2113 1 user2-108@plc2.org keys: [2108] sites: []
+2114 1 user2-109@plc2.org keys: [2109] sites: []
+2115 1 user2-110@plc2.org keys: [2110] sites: []
+2116 1 user2-111@plc2.org keys: [2111] sites: []
+2117 1 user2-112@plc2.org keys: [2112] sites: []
+2118 1 user2-113@plc2.org keys: [2113] sites: []
+2119 1 user2-114@plc2.org keys: [2114] sites: []
+2120 1 user2-115@plc2.org keys: [2115] sites: []
+2121 1 user2-116@plc2.org keys: [2116] sites: []
+2122 1 user2-117@plc2.org keys: [2117] sites: []
+2123 1 user2-118@plc2.org keys: [2118] sites: []
+2124 1 user2-119@plc2.org keys: [2119] sites: []
+2125 1 user2-120@plc2.org keys: [2120] sites: []
+2126 1 user2-121@plc2.org keys: [2121] sites: []
+2127 1 user2-122@plc2.org keys: [2122] sites: []
+2128 1 user2-123@plc2.org keys: [2123] sites: []
+2129 1 user2-124@plc2.org keys: [2124] sites: []
+2130 1 user2-125@plc2.org keys: [2125] sites: []
+2131 1 user2-126@plc2.org keys: [2126] sites: []
+2132 1 user2-127@plc2.org keys: [2127] sites: []
+2133 1 user2-128@plc2.org keys: [2128] sites: []
+2134 1 user2-129@plc2.org keys: [2129] sites: []
+2135 1 user2-130@plc2.org keys: [2130] sites: []
+2136 1 user2-131@plc2.org keys: [2131] sites: []
+2137 1 user2-132@plc2.org keys: [2132] sites: []
+2138 1 user2-133@plc2.org keys: [2133] sites: []
+2139 1 user2-134@plc2.org keys: [2134] sites: []
+2140 1 user2-135@plc2.org keys: [2135] sites: []
+2141 1 user2-136@plc2.org keys: [2136] sites: []
+2142 1 user2-137@plc2.org keys: [2137] sites: []
+2143 1 user2-138@plc2.org keys: [2138] sites: []
+2144 1 user2-139@plc2.org keys: [2139] sites: []
+2145 1 user2-140@plc2.org keys: [2140] sites: []
+2146 1 user2-141@plc2.org keys: [2141] sites: []
+2147 1 user2-142@plc2.org keys: [2142] sites: []
+2148 1 user2-143@plc2.org keys: [2143] sites: []
+2149 1 user2-144@plc2.org keys: [2144] sites: []
+2150 1 user2-145@plc2.org keys: [2145] sites: []
+2151 1 user2-146@plc2.org keys: [2146] sites: []
+2152 1 user2-147@plc2.org keys: [2147] sites: []
+2153 1 user2-148@plc2.org keys: [2148] sites: []
+2154 1 user2-149@plc2.org keys: [2149] sites: []
+2155 1 user2-150@plc2.org keys: [2150] sites: []
+2156 1 user2-151@plc2.org keys: [2151] sites: []
+2157 1 user2-152@plc2.org keys: [2152] sites: []
+2158 1 user2-153@plc2.org keys: [2153] sites: []
+2159 1 user2-154@plc2.org keys: [2154] sites: []
+2160 1 user2-155@plc2.org keys: [2155] sites: []
+2161 1 user2-156@plc2.org keys: [2156] sites: []
+2162 1 user2-157@plc2.org keys: [2157] sites: []
+2163 1 user2-158@plc2.org keys: [2158] sites: []
+2164 1 user2-159@plc2.org keys: [2159] sites: []
+2165 1 user2-160@plc2.org keys: [2160] sites: []
+2166 1 user2-161@plc2.org keys: [2161] sites: []
+2167 1 user2-162@plc2.org keys: [2162] sites: []
+2168 1 user2-163@plc2.org keys: [2163] sites: []
+2169 1 user2-164@plc2.org keys: [2164] sites: []
+2170 1 user2-165@plc2.org keys: [2165] sites: []
+2171 1 user2-166@plc2.org keys: [2166] sites: []
+2172 1 user2-167@plc2.org keys: [2167] sites: []
+2173 1 user2-168@plc2.org keys: [2168] sites: []
+2174 1 user2-169@plc2.org keys: [2169] sites: []
+2175 1 user2-170@plc2.org keys: [2170] sites: []
+2176 1 user2-171@plc2.org keys: [2171] sites: []
+2177 1 user2-172@plc2.org keys: [2172] sites: []
+2178 1 user2-173@plc2.org keys: [2173] sites: []
+2179 1 user2-174@plc2.org keys: [2174] sites: []
+2180 1 user2-175@plc2.org keys: [2175] sites: []
+2181 1 user2-176@plc2.org keys: [2176] sites: []
+2182 1 user2-177@plc2.org keys: [2177] sites: []
+2183 1 user2-178@plc2.org keys: [2178] sites: []
+2184 1 user2-179@plc2.org keys: [2179] sites: []
+2185 1 user2-180@plc2.org keys: [2180] sites: []
+2186 1 user2-181@plc2.org keys: [2181] sites: []
+2187 1 user2-182@plc2.org keys: [2182] sites: []
+2188 1 user2-183@plc2.org keys: [2183] sites: []
+2189 1 user2-184@plc2.org keys: [2184] sites: []
+2190 1 user2-185@plc2.org keys: [2185] sites: []
+2191 1 user2-186@plc2.org keys: [2186] sites: []
+2192 1 user2-187@plc2.org keys: [2187] sites: []
+2193 1 user2-188@plc2.org keys: [2188] sites: []
+2194 1 user2-189@plc2.org keys: [2189] sites: []
+2195 1 user2-190@plc2.org keys: [2190] sites: []
+2196 1 user2-191@plc2.org keys: [2191] sites: []
+2197 1 user2-192@plc2.org keys: [2192] sites: []
+2198 1 user2-193@plc2.org keys: [2193] sites: []
+2199 1 user2-194@plc2.org keys: [2194] sites: []
+2200 1 user2-195@plc2.org keys: [2195] sites: []
+2201 1 user2-196@plc2.org keys: [2196] sites: []
+2202 1 user2-197@plc2.org keys: [2197] sites: []
+2203 1 user2-198@plc2.org keys: [2198] sites: []
+2204 1 user2-199@plc2.org keys: [2199] sites: []
+2205 1 user2-200@plc2.org keys: [2200] sites: []
+2206 1 user2-201@plc2.org keys: [2201] sites: []
+2207 1 user2-202@plc2.org keys: [2202] sites: []
+2208 1 user2-203@plc2.org keys: [2203] sites: []
+2209 1 user2-204@plc2.org keys: [2204] sites: []
+2210 1 user2-205@plc2.org keys: [2205] sites: []
+2211 1 user2-206@plc2.org keys: [2206] sites: []
+2212 1 user2-207@plc2.org keys: [2207] sites: []
+2213 1 user2-208@plc2.org keys: [2208] sites: []
+2214 1 user2-209@plc2.org keys: [2209] sites: []
+2215 1 user2-210@plc2.org keys: [2210] sites: []
+2216 1 user2-211@plc2.org keys: [2211] sites: []
+2217 1 user2-212@plc2.org keys: [2212] sites: []
+2218 1 user2-213@plc2.org keys: [2213] sites: []
+2219 1 user2-214@plc2.org keys: [2214] sites: []
+2220 1 user2-215@plc2.org keys: [2215] sites: []
+2221 1 user2-216@plc2.org keys: [2216] sites: []
+2222 1 user2-217@plc2.org keys: [2217] sites: []
+2223 1 user2-218@plc2.org keys: [2218] sites: []
+2224 1 user2-219@plc2.org keys: [2219] sites: []
+2225 1 user2-220@plc2.org keys: [2220] sites: []
+2226 1 user2-221@plc2.org keys: [2221] sites: []
+2227 1 user2-222@plc2.org keys: [2222] sites: []
+2228 1 user2-223@plc2.org keys: [2223] sites: []
+2229 1 user2-224@plc2.org keys: [2224] sites: []
+2230 1 user2-225@plc2.org keys: [2225] sites: []
+2231 1 user2-226@plc2.org keys: [2226] sites: []
+2232 1 user2-227@plc2.org keys: [2227] sites: []
+2233 1 user2-228@plc2.org keys: [2228] sites: []
+2234 1 user2-229@plc2.org keys: [2229] sites: []
+2235 1 user2-230@plc2.org keys: [2230] sites: []
+2236 1 user2-231@plc2.org keys: [2231] sites: []
+2237 1 user2-232@plc2.org keys: [2232] sites: []
+2238 1 user2-233@plc2.org keys: [2233] sites: []
+2239 1 user2-234@plc2.org keys: [2234] sites: []
+2240 1 user2-235@plc2.org keys: [2235] sites: []
+2241 1 user2-236@plc2.org keys: [2236] sites: []
+2242 1 user2-237@plc2.org keys: [2237] sites: []
+2243 1 user2-238@plc2.org keys: [2238] sites: []
+2244 1 user2-239@plc2.org keys: [2239] sites: []
+2245 1 user2-240@plc2.org keys: [2240] sites: []
+2246 1 user2-241@plc2.org keys: [2241] sites: []
+2247 1 user2-242@plc2.org keys: [2242] sites: []
+2248 1 user2-243@plc2.org keys: [2243] sites: []
+2249 1 user2-244@plc2.org keys: [2244] sites: []
+2250 1 user2-245@plc2.org keys: [2245] sites: []
+2251 1 user2-246@plc2.org keys: [2246] sites: []
+2252 1 user2-247@plc2.org keys: [2247] sites: []
+2253 1 user2-248@plc2.org keys: [2248] sites: []
+2254 1 user2-249@plc2.org keys: [2249] sites: []
+2255 1 user2-250@plc2.org keys: [2250] sites: []
+2256 1 user2-251@plc2.org keys: [2251] sites: []
+2257 1 user2-252@plc2.org keys: [2252] sites: []
+2258 1 user2-253@plc2.org keys: [2253] sites: []
+2259 1 user2-254@plc2.org keys: [2254] sites: []
+2260 1 user2-255@plc2.org keys: [2255] sites: []
+2261 1 user2-256@plc2.org keys: [2256] sites: []
+2262 1 user2-257@plc2.org keys: [2257] sites: []
+2263 1 user2-258@plc2.org keys: [2258] sites: []
+2264 1 user2-259@plc2.org keys: [2259] sites: []
+2265 1 user2-260@plc2.org keys: [2260] sites: []
+2266 1 user2-261@plc2.org keys: [2261] sites: []
+2267 1 user2-262@plc2.org keys: [2262] sites: []
+2268 1 user2-263@plc2.org keys: [2263] sites: []
+2269 1 user2-264@plc2.org keys: [2264] sites: []
+2270 1 user2-265@plc2.org keys: [2265] sites: []
+2271 1 user2-266@plc2.org keys: [2266] sites: []
+2272 1 user2-267@plc2.org keys: [2267] sites: []
+2273 1 user2-268@plc2.org keys: [2268] sites: []
+2274 1 user2-269@plc2.org keys: [2269] sites: []
+2275 1 user2-270@plc2.org keys: [2270] sites: []
+2276 1 user2-271@plc2.org keys: [2271] sites: []
+2277 1 user2-272@plc2.org keys: [2272] sites: []
+2278 1 user2-273@plc2.org keys: [2273] sites: []
+2279 1 user2-274@plc2.org keys: [2274] sites: []
+2280 1 user2-275@plc2.org keys: [2275] sites: []
+2281 1 user2-276@plc2.org keys: [2276] sites: []
+2282 1 user2-277@plc2.org keys: [2277] sites: []
+2283 1 user2-278@plc2.org keys: [2278] sites: []
+2284 1 user2-279@plc2.org keys: [2279] sites: []
+2285 1 user2-280@plc2.org keys: [2280] sites: []
+2286 1 user2-281@plc2.org keys: [2281] sites: []
+2287 1 user2-282@plc2.org keys: [2282] sites: []
+2288 1 user2-283@plc2.org keys: [2283] sites: []
+2289 1 user2-284@plc2.org keys: [2284] sites: []
+2290 1 user2-285@plc2.org keys: [2285] sites: []
+2291 1 user2-286@plc2.org keys: [2286] sites: []
+2292 1 user2-287@plc2.org keys: [2287] sites: []
+2293 1 user2-288@plc2.org keys: [2288] sites: []
+2294 1 user2-289@plc2.org keys: [2289] sites: []
+2295 1 user2-290@plc2.org keys: [2290] sites: []
+2296 1 user2-291@plc2.org keys: [2291] sites: []
+2297 1 user2-292@plc2.org keys: [2292] sites: []
+2298 1 user2-293@plc2.org keys: [2293] sites: []
+2299 1 user2-294@plc2.org keys: [2294] sites: []
+2300 1 user2-295@plc2.org keys: [2295] sites: []
+2301 1 user2-296@plc2.org keys: [2296] sites: []
+2302 1 user2-297@plc2.org keys: [2297] sites: []
+2303 1 user2-298@plc2.org keys: [2298] sites: []
+2304 1 user2-299@plc2.org keys: [2299] sites: []
+2305 1 user2-300@plc2.org keys: [2300] sites: []
+2306 1 user2-301@plc2.org keys: [2301] sites: []
+2307 1 user2-302@plc2.org keys: [2302] sites: []
+2308 1 user2-303@plc2.org keys: [2303] sites: []
+2309 1 user2-304@plc2.org keys: [2304] sites: []
+2310 1 user2-305@plc2.org keys: [2305] sites: []
+2311 1 user2-306@plc2.org keys: [2306] sites: []
+2312 1 user2-307@plc2.org keys: [2307] sites: []
+2313 1 user2-308@plc2.org keys: [2308] sites: []
+2314 1 user2-309@plc2.org keys: [2309] sites: []
+2315 1 user2-310@plc2.org keys: [2310] sites: []
+2316 1 user2-311@plc2.org keys: [2311] sites: []
+2317 1 user2-312@plc2.org keys: [2312] sites: []
+2318 1 user2-313@plc2.org keys: [2313] sites: []
+2319 1 user2-314@plc2.org keys: [2314] sites: []
+2320 1 user2-315@plc2.org keys: [2315] sites: []
+2321 1 user2-316@plc2.org keys: [2316] sites: []
+2322 1 user2-317@plc2.org keys: [2317] sites: []
+2323 1 user2-318@plc2.org keys: [2318] sites: []
+2324 1 user2-319@plc2.org keys: [2319] sites: []
+2325 1 user2-320@plc2.org keys: [2320] sites: []
+2326 1 user2-321@plc2.org keys: [2321] sites: []
+2327 1 user2-322@plc2.org keys: [2322] sites: []
+2328 1 user2-323@plc2.org keys: [2323] sites: []
+2329 1 user2-324@plc2.org keys: [2324] sites: []
+2330 1 user2-325@plc2.org keys: [2325] sites: []
+2331 1 user2-326@plc2.org keys: [2326] sites: []
+2332 1 user2-327@plc2.org keys: [2327] sites: []
+2333 1 user2-328@plc2.org keys: [2328] sites: []
+2334 1 user2-329@plc2.org keys: [2329] sites: []
+2335 1 user2-330@plc2.org keys: [2330] sites: []
+2336 1 user2-331@plc2.org keys: [2331] sites: []
+2337 1 user2-332@plc2.org keys: [2332] sites: []
+2338 1 user2-333@plc2.org keys: [2333] sites: []
+2339 1 user2-334@plc2.org keys: [2334] sites: []
+2340 1 user2-335@plc2.org keys: [2335] sites: []
+2341 1 user2-336@plc2.org keys: [2336] sites: []
+2342 1 user2-337@plc2.org keys: [2337] sites: []
+2343 1 user2-338@plc2.org keys: [2338] sites: []
+2344 1 user2-339@plc2.org keys: [2339] sites: []
+2345 1 user2-340@plc2.org keys: [2340] sites: []
+2346 1 user2-341@plc2.org keys: [2341] sites: []
+2347 1 user2-342@plc2.org keys: [2342] sites: []
+2348 1 user2-343@plc2.org keys: [2343] sites: []
+2349 1 user2-344@plc2.org keys: [2344] sites: []
+2350 1 user2-345@plc2.org keys: [2345] sites: []
+2351 1 user2-346@plc2.org keys: [2346] sites: []
+2352 1 user2-347@plc2.org keys: [2347] sites: []
+2353 1 user2-348@plc2.org keys: [2348] sites: []
+2354 1 user2-349@plc2.org keys: [2349] sites: []
+2355 1 user2-350@plc2.org keys: [2350] sites: []
+2356 1 user2-351@plc2.org keys: [2351] sites: []
+2357 1 user2-352@plc2.org keys: [2352] sites: []
+2358 1 user2-353@plc2.org keys: [2353] sites: []
+2359 1 user2-354@plc2.org keys: [2354] sites: []
+2360 1 user2-355@plc2.org keys: [2355] sites: []
+2361 1 user2-356@plc2.org keys: [2356] sites: []
+2362 1 user2-357@plc2.org keys: [2357] sites: []
+2363 1 user2-358@plc2.org keys: [2358] sites: []
+2364 1 user2-359@plc2.org keys: [2359] sites: []
+2365 1 user2-360@plc2.org keys: [2360] sites: []
+2366 1 user2-361@plc2.org keys: [2361] sites: []
+2367 1 user2-362@plc2.org keys: [2362] sites: []
+2368 1 user2-363@plc2.org keys: [2363] sites: []
+2369 1 user2-364@plc2.org keys: [2364] sites: []
+2370 1 user2-365@plc2.org keys: [2365] sites: []
+2371 1 user2-366@plc2.org keys: [2366] sites: []
+2372 1 user2-367@plc2.org keys: [2367] sites: []
+2373 1 user2-368@plc2.org keys: [2368] sites: []
+2374 1 user2-369@plc2.org keys: [2369] sites: []
+2375 1 user2-370@plc2.org keys: [2370] sites: []
+2376 1 user2-371@plc2.org keys: [2371] sites: []
+2377 1 user2-372@plc2.org keys: [2372] sites: []
+2378 1 user2-373@plc2.org keys: [2373] sites: []
+2379 1 user2-374@plc2.org keys: [2374] sites: []
+2380 1 user2-375@plc2.org keys: [2375] sites: []
+2381 1 user2-376@plc2.org keys: [2376] sites: []
+2382 1 user2-377@plc2.org keys: [2377] sites: []
+2383 1 user2-378@plc2.org keys: [2378] sites: []
+2384 1 user2-379@plc2.org keys: [2379] sites: []
+2385 1 user2-380@plc2.org keys: [2380] sites: []
+2386 1 user2-381@plc2.org keys: [2381] sites: []
+2387 1 user2-382@plc2.org keys: [2382] sites: []
+2388 1 user2-383@plc2.org keys: [2383] sites: []
+2389 1 user2-384@plc2.org keys: [2384] sites: []
+2390 1 user2-385@plc2.org keys: [2385] sites: []
+2391 1 user2-386@plc2.org keys: [2386] sites: []
+2392 1 user2-387@plc2.org keys: [2387] sites: []
+2393 1 user2-388@plc2.org keys: [2388] sites: []
+2394 1 user2-389@plc2.org keys: [2389] sites: []
+2395 1 user2-390@plc2.org keys: [2390] sites: []
+2396 1 user2-391@plc2.org keys: [2391] sites: []
+2397 1 user2-392@plc2.org keys: [2392] sites: []
+2398 1 user2-393@plc2.org keys: [2393] sites: []
+2399 1 user2-394@plc2.org keys: [2394] sites: []
+2400 1 user2-395@plc2.org keys: [2395] sites: []
+2401 1 user2-396@plc2.org keys: [2396] sites: []
+2402 1 user2-397@plc2.org keys: [2397] sites: []
+2403 1 user2-398@plc2.org keys: [2398] sites: []
+2404 1 user2-399@plc2.org keys: [2399] sites: []
+2405 1 user2-400@plc2.org keys: [2400] sites: []
+2406 1 user2-401@plc2.org keys: [2401] sites: []
+2407 1 user2-402@plc2.org keys: [2402] sites: []
+2408 1 user2-403@plc2.org keys: [2403] sites: []
+2409 1 user2-404@plc2.org keys: [2404] sites: []
+2410 1 user2-405@plc2.org keys: [2405] sites: []
+2411 1 user2-406@plc2.org keys: [2406] sites: []
+2412 1 user2-407@plc2.org keys: [2407] sites: []
+2413 1 user2-408@plc2.org keys: [2408] sites: []
+2414 1 user2-409@plc2.org keys: [2409] sites: []
+2415 1 user2-410@plc2.org keys: [2410] sites: []
+2416 1 user2-411@plc2.org keys: [2411] sites: []
+2417 1 user2-412@plc2.org keys: [2412] sites: []
+2418 1 user2-413@plc2.org keys: [2413] sites: []
+2419 1 user2-414@plc2.org keys: [2414] sites: []
+2420 1 user2-415@plc2.org keys: [2415] sites: []
+2421 1 user2-416@plc2.org keys: [2416] sites: []
+2422 1 user2-417@plc2.org keys: [2417] sites: []
+2423 1 user2-418@plc2.org keys: [2418] sites: []
+2424 1 user2-419@plc2.org keys: [2419] sites: []
+2425 1 user2-420@plc2.org keys: [2420] sites: []
+2426 1 user2-421@plc2.org keys: [2421] sites: []
+2427 1 user2-422@plc2.org keys: [2422] sites: []
+2428 1 user2-423@plc2.org keys: [2423] sites: []
+2429 1 user2-424@plc2.org keys: [2424] sites: []
+2430 1 user2-425@plc2.org keys: [2425] sites: []
+2431 1 user2-426@plc2.org keys: [2426] sites: []
+2432 1 user2-427@plc2.org keys: [2427] sites: []
+2433 1 user2-428@plc2.org keys: [2428] sites: []
+2434 1 user2-429@plc2.org keys: [2429] sites: []
+2435 1 user2-430@plc2.org keys: [2430] sites: []
+2436 1 user2-431@plc2.org keys: [2431] sites: []
+2437 1 user2-432@plc2.org keys: [2432] sites: []
+2438 1 user2-433@plc2.org keys: [2433] sites: []
+2439 1 user2-434@plc2.org keys: [2434] sites: []
+2440 1 user2-435@plc2.org keys: [2435] sites: []
+2441 1 user2-436@plc2.org keys: [2436] sites: []
+2442 1 user2-437@plc2.org keys: [2437] sites: []
+2443 1 user2-438@plc2.org keys: [2438] sites: []
+2444 1 user2-439@plc2.org keys: [2439] sites: []
+2445 1 user2-440@plc2.org keys: [2440] sites: []
+2446 1 user2-441@plc2.org keys: [2441] sites: []
+2447 1 user2-442@plc2.org keys: [2442] sites: []
+2448 1 user2-443@plc2.org keys: [2443] sites: []
+2449 1 user2-444@plc2.org keys: [2444] sites: []
+2450 1 user2-445@plc2.org keys: [2445] sites: []
+2451 1 user2-446@plc2.org keys: [2446] sites: []
+2452 1 user2-447@plc2.org keys: [2447] sites: []
+2453 1 user2-448@plc2.org keys: [2448] sites: []
+2454 1 user2-449@plc2.org keys: [2449] sites: []
+2455 1 user2-450@plc2.org keys: [2450] sites: []
+2456 1 user2-451@plc2.org keys: [2451] sites: []
+2457 1 user2-452@plc2.org keys: [2452] sites: []
+2458 1 user2-453@plc2.org keys: [2453] sites: []
+2459 1 user2-454@plc2.org keys: [2454] sites: []
+2460 1 user2-455@plc2.org keys: [2455] sites: []
+2461 1 user2-456@plc2.org keys: [2456] sites: []
+2462 1 user2-457@plc2.org keys: [2457] sites: []
+2463 1 user2-458@plc2.org keys: [2458] sites: []
+2464 1 user2-459@plc2.org keys: [2459] sites: []
+2465 1 user2-460@plc2.org keys: [2460] sites: []
+2466 1 user2-461@plc2.org keys: [2461] sites: []
+2467 1 user2-462@plc2.org keys: [2462] sites: []
+2468 1 user2-463@plc2.org keys: [2463] sites: []
+2469 1 user2-464@plc2.org keys: [2464] sites: []
+2470 1 user2-465@plc2.org keys: [2465] sites: []
+2471 1 user2-466@plc2.org keys: [2466] sites: []
+2472 1 user2-467@plc2.org keys: [2467] sites: []
+2473 1 user2-468@plc2.org keys: [2468] sites: []
+2474 1 user2-469@plc2.org keys: [2469] sites: []
+2475 1 user2-470@plc2.org keys: [2470] sites: []
+2476 1 user2-471@plc2.org keys: [2471] sites: []
+2477 1 user2-472@plc2.org keys: [2472] sites: []
+2478 1 user2-473@plc2.org keys: [2473] sites: []
+2479 1 user2-474@plc2.org keys: [2474] sites: []
+2480 1 user2-475@plc2.org keys: [2475] sites: []
+2481 1 user2-476@plc2.org keys: [2476] sites: []
+2482 1 user2-477@plc2.org keys: [2477] sites: []
+2483 1 user2-478@plc2.org keys: [2478] sites: []
+2484 1 user2-479@plc2.org keys: [2479] sites: []
+2485 1 user2-480@plc2.org keys: [2480] sites: []
+2486 1 user2-481@plc2.org keys: [2481] sites: []
+2487 1 user2-482@plc2.org keys: [2482] sites: []
+2488 1 user2-483@plc2.org keys: [2483] sites: []
+2489 1 user2-484@plc2.org keys: [2484] sites: []
+2490 1 user2-485@plc2.org keys: [2485] sites: []
+2491 1 user2-486@plc2.org keys: [2486] sites: []
+2492 1 user2-487@plc2.org keys: [2487] sites: []
+2493 1 user2-488@plc2.org keys: [2488] sites: []
+2494 1 user2-489@plc2.org keys: [2489] sites: []
+2495 1 user2-490@plc2.org keys: [2490] sites: []
+2496 1 user2-491@plc2.org keys: [2491] sites: []
+2497 1 user2-492@plc2.org keys: [2492] sites: []
+2498 1 user2-493@plc2.org keys: [2493] sites: []
+2499 1 user2-494@plc2.org keys: [2494] sites: []
+2500 1 user2-495@plc2.org keys: [2495] sites: []
+2501 1 user2-496@plc2.org keys: [2496] sites: []
+2502 1 user2-497@plc2.org keys: [2497] sites: []
+2503 1 user2-498@plc2.org keys: [2498] sites: []
+2504 1 user2-499@plc2.org keys: [2499] sites: []
+2505 1 user2-500@plc2.org keys: [2500] sites: []
+2506 1 user2-501@plc2.org keys: [2501] sites: []
+2507 1 user2-502@plc2.org keys: [2502] sites: []
+2508 1 user2-503@plc2.org keys: [2503] sites: []
+2509 1 user2-504@plc2.org keys: [2504] sites: []
+2510 1 user2-505@plc2.org keys: [2505] sites: []
+2511 1 user2-506@plc2.org keys: [2506] sites: []
+2512 1 user2-507@plc2.org keys: [2507] sites: []
+2513 1 user2-508@plc2.org keys: [2508] sites: []
+2514 1 user2-509@plc2.org keys: [2509] sites: []
+2515 1 user2-510@plc2.org keys: [2510] sites: []
+2516 1 user2-511@plc2.org keys: [2511] sites: []
+2517 1 user2-512@plc2.org keys: [2512] sites: []
+2518 1 user2-513@plc2.org keys: [2513] sites: []
+2519 1 user2-514@plc2.org keys: [2514] sites: []
+2520 1 user2-515@plc2.org keys: [2515] sites: []
+2521 1 user2-516@plc2.org keys: [2516] sites: []
+2522 1 user2-517@plc2.org keys: [2517] sites: []
+2523 1 user2-518@plc2.org keys: [2518] sites: []
+2524 1 user2-519@plc2.org keys: [2519] sites: []
+2525 1 user2-520@plc2.org keys: [2520] sites: []
+2526 1 user2-521@plc2.org keys: [2521] sites: []
+2527 1 user2-522@plc2.org keys: [2522] sites: []
+2528 1 user2-523@plc2.org keys: [2523] sites: []
+2529 1 user2-524@plc2.org keys: [2524] sites: []
+2530 1 user2-525@plc2.org keys: [2525] sites: []
+2531 1 user2-526@plc2.org keys: [2526] sites: []
+2532 1 user2-527@plc2.org keys: [2527] sites: []
+2533 1 user2-528@plc2.org keys: [2528] sites: []
+2534 1 user2-529@plc2.org keys: [2529] sites: []
+2535 1 user2-530@plc2.org keys: [2530] sites: []
+2536 1 user2-531@plc2.org keys: [2531] sites: []
+2537 1 user2-532@plc2.org keys: [2532] sites: []
+2538 1 user2-533@plc2.org keys: [2533] sites: []
+2539 1 user2-534@plc2.org keys: [2534] sites: []
+2540 1 user2-535@plc2.org keys: [2535] sites: []
+2541 1 user2-536@plc2.org keys: [2536] sites: []
+2542 1 user2-537@plc2.org keys: [2537] sites: []
+2543 1 user2-538@plc2.org keys: [2538] sites: []
+2544 1 user2-539@plc2.org keys: [2539] sites: []
+2545 1 user2-540@plc2.org keys: [2540] sites: []
+2546 1 user2-541@plc2.org keys: [2541] sites: []
+2547 1 user2-542@plc2.org keys: [2542] sites: []
+2548 1 user2-543@plc2.org keys: [2543] sites: []
+2549 1 user2-544@plc2.org keys: [2544] sites: []
+2550 1 user2-545@plc2.org keys: [2545] sites: []
+2551 1 user2-546@plc2.org keys: [2546] sites: []
+2552 1 user2-547@plc2.org keys: [2547] sites: []
+2553 1 user2-548@plc2.org keys: [2548] sites: []
+2554 1 user2-549@plc2.org keys: [2549] sites: []
+2555 1 user2-550@plc2.org keys: [2550] sites: []
+2556 1 user2-551@plc2.org keys: [2551] sites: []
+2557 1 user2-552@plc2.org keys: [2552] sites: []
+2558 1 user2-553@plc2.org keys: [2553] sites: []
+2559 1 user2-554@plc2.org keys: [2554] sites: []
+2560 1 user2-555@plc2.org keys: [2555] sites: []
+2561 1 user2-556@plc2.org keys: [2556] sites: []
+2562 1 user2-557@plc2.org keys: [2557] sites: []
+2563 1 user2-558@plc2.org keys: [2558] sites: []
+2564 1 user2-559@plc2.org keys: [2559] sites: []
+2565 1 user2-560@plc2.org keys: [2560] sites: []
+2566 1 user2-561@plc2.org keys: [2561] sites: []
+2567 1 user2-562@plc2.org keys: [2562] sites: []
+2568 1 user2-563@plc2.org keys: [2563] sites: []
+2569 1 user2-564@plc2.org keys: [2564] sites: []
+2570 1 user2-565@plc2.org keys: [2565] sites: []
+2571 1 user2-566@plc2.org keys: [2566] sites: []
+2572 1 user2-567@plc2.org keys: [2567] sites: []
+2573 1 user2-568@plc2.org keys: [2568] sites: []
+2574 1 user2-569@plc2.org keys: [2569] sites: []
+2575 1 user2-570@plc2.org keys: [2570] sites: []
+2576 1 user2-571@plc2.org keys: [2571] sites: []
+2577 1 user2-572@plc2.org keys: [2572] sites: []
+2578 1 user2-573@plc2.org keys: [2573] sites: []
+2579 1 user2-574@plc2.org keys: [2574] sites: []
+2580 1 user2-575@plc2.org keys: [2575] sites: []
+2581 1 user2-576@plc2.org keys: [2576] sites: []
+2582 1 user2-577@plc2.org keys: [2577] sites: []
+2583 1 user2-578@plc2.org keys: [2578] sites: []
+2584 1 user2-579@plc2.org keys: [2579] sites: []
+2585 1 user2-580@plc2.org keys: [2580] sites: []
+2586 1 user2-581@plc2.org keys: [2581] sites: []
+2587 1 user2-582@plc2.org keys: [2582] sites: []
+2588 1 user2-583@plc2.org keys: [2583] sites: []
+2589 1 user2-584@plc2.org keys: [2584] sites: []
+2590 1 user2-585@plc2.org keys: [2585] sites: []
+2591 1 user2-586@plc2.org keys: [2586] sites: []
+2592 1 user2-587@plc2.org keys: [2587] sites: []
+2593 1 user2-588@plc2.org keys: [2588] sites: []
+2594 1 user2-589@plc2.org keys: [2589] sites: []
+2595 1 user2-590@plc2.org keys: [2590] sites: []
+2596 1 user2-591@plc2.org keys: [2591] sites: []
+2597 1 user2-592@plc2.org keys: [2592] sites: []
+2598 1 user2-593@plc2.org keys: [2593] sites: []
+2599 1 user2-594@plc2.org keys: [2594] sites: []
+2600 1 user2-595@plc2.org keys: [2595] sites: []
+2601 1 user2-596@plc2.org keys: [2596] sites: []
+2602 1 user2-597@plc2.org keys: [2597] sites: []
+2603 1 user2-598@plc2.org keys: [2598] sites: []
+2604 1 user2-599@plc2.org keys: [2599] sites: []
+2605 1 user2-600@plc2.org keys: [2600] sites: []
+2606 1 user2-601@plc2.org keys: [2601] sites: []
+2607 1 user2-602@plc2.org keys: [2602] sites: []
+2608 1 user2-603@plc2.org keys: [2603] sites: []
+2609 1 user2-604@plc2.org keys: [2604] sites: []
+2610 1 user2-605@plc2.org keys: [2605] sites: []
+2611 1 user2-606@plc2.org keys: [2606] sites: []
+2612 1 user2-607@plc2.org keys: [2607] sites: []
+2613 1 user2-608@plc2.org keys: [2608] sites: []
+2614 1 user2-609@plc2.org keys: [2609] sites: []
+2615 1 user2-610@plc2.org keys: [2610] sites: []
+2616 1 user2-611@plc2.org keys: [2611] sites: []
+2617 1 user2-612@plc2.org keys: [2612] sites: []
+2618 1 user2-613@plc2.org keys: [2613] sites: []
+2619 1 user2-614@plc2.org keys: [2614] sites: []
+2620 1 user2-615@plc2.org keys: [2615] sites: []
+2621 1 user2-616@plc2.org keys: [2616] sites: []
+2622 1 user2-617@plc2.org keys: [2617] sites: []
+2623 1 user2-618@plc2.org keys: [2618] sites: []
+2624 1 user2-619@plc2.org keys: [2619] sites: []
+2625 1 user2-620@plc2.org keys: [2620] sites: []
+2626 1 user2-621@plc2.org keys: [2621] sites: []
+2627 1 user2-622@plc2.org keys: [2622] sites: []
+2628 1 user2-623@plc2.org keys: [2623] sites: []
+2629 1 user2-624@plc2.org keys: [2624] sites: []
+2630 1 user2-625@plc2.org keys: [2625] sites: []
+2631 1 user2-626@plc2.org keys: [2626] sites: []
+2632 1 user2-627@plc2.org keys: [2627] sites: []
+2633 1 user2-628@plc2.org keys: [2628] sites: []
+2634 1 user2-629@plc2.org keys: [2629] sites: []
+2635 1 user2-630@plc2.org keys: [2630] sites: []
+2636 1 user2-631@plc2.org keys: [2631] sites: []
+2637 1 user2-632@plc2.org keys: [2632] sites: []
+2638 1 user2-633@plc2.org keys: [2633] sites: []
+2639 1 user2-634@plc2.org keys: [2634] sites: []
+2640 1 user2-635@plc2.org keys: [2635] sites: []
+2641 1 user2-636@plc2.org keys: [2636] sites: []
+2642 1 user2-637@plc2.org keys: [2637] sites: []
+2643 1 user2-638@plc2.org keys: [2638] sites: []
+2644 1 user2-639@plc2.org keys: [2639] sites: []
+2645 1 user2-640@plc2.org keys: [2640] sites: []
+2646 1 user2-641@plc2.org keys: [2641] sites: []
+2647 1 user2-642@plc2.org keys: [2642] sites: []
+2648 1 user2-643@plc2.org keys: [2643] sites: []
+2649 1 user2-644@plc2.org keys: [2644] sites: []
+2650 1 user2-645@plc2.org keys: [2645] sites: []
+2651 1 user2-646@plc2.org keys: [2646] sites: []
+2652 1 user2-647@plc2.org keys: [2647] sites: []
+2653 1 user2-648@plc2.org keys: [2648] sites: []
+2654 1 user2-649@plc2.org keys: [2649] sites: []
+2655 1 user2-650@plc2.org keys: [2650] sites: []
+2656 1 user2-651@plc2.org keys: [2651] sites: []
+2657 1 user2-652@plc2.org keys: [2652] sites: []
+2658 1 user2-653@plc2.org keys: [2653] sites: []
+2659 1 user2-654@plc2.org keys: [2654] sites: []
+2660 1 user2-655@plc2.org keys: [2655] sites: []
+2661 1 user2-656@plc2.org keys: [2656] sites: []
+2662 1 user2-657@plc2.org keys: [2657] sites: []
+2663 1 user2-658@plc2.org keys: [2658] sites: []
+2664 1 user2-659@plc2.org keys: [2659] sites: []
+2665 1 user2-660@plc2.org keys: [2660] sites: []
+2666 1 user2-661@plc2.org keys: [2661] sites: []
+2667 1 user2-662@plc2.org keys: [2662] sites: []
+2668 1 user2-663@plc2.org keys: [2663] sites: []
+2669 1 user2-664@plc2.org keys: [2664] sites: []
+2670 1 user2-665@plc2.org keys: [2665] sites: []
+2671 1 user2-666@plc2.org keys: [2666] sites: []
+2672 1 user2-667@plc2.org keys: [2667] sites: []
+2673 1 user2-668@plc2.org keys: [2668] sites: []
+2674 1 user2-669@plc2.org keys: [2669] sites: []
+2675 1 user2-670@plc2.org keys: [2670] sites: []
+2676 1 user2-671@plc2.org keys: [2671] sites: []
+2677 1 user2-672@plc2.org keys: [2672] sites: []
+2678 1 user2-673@plc2.org keys: [2673] sites: []
+2679 1 user2-674@plc2.org keys: [2674] sites: []
+2680 1 user2-675@plc2.org keys: [2675] sites: []
+2681 1 user2-676@plc2.org keys: [2676] sites: []
+2682 1 user2-677@plc2.org keys: [2677] sites: []
+2683 1 user2-678@plc2.org keys: [2678] sites: []
+2684 1 user2-679@plc2.org keys: [2679] sites: []
+2685 1 user2-680@plc2.org keys: [2680] sites: []
+2686 1 user2-681@plc2.org keys: [2681] sites: []
+2687 1 user2-682@plc2.org keys: [2682] sites: []
+2688 1 user2-683@plc2.org keys: [2683] sites: []
+2689 1 user2-684@plc2.org keys: [2684] sites: []
+2690 1 user2-685@plc2.org keys: [2685] sites: []
+2691 1 user2-686@plc2.org keys: [2686] sites: []
+2692 1 user2-687@plc2.org keys: [2687] sites: []
+2693 1 user2-688@plc2.org keys: [2688] sites: []
+2694 1 user2-689@plc2.org keys: [2689] sites: []
+2695 1 user2-690@plc2.org keys: [2690] sites: []
+2696 1 user2-691@plc2.org keys: [2691] sites: []
+2697 1 user2-692@plc2.org keys: [2692] sites: []
+2698 1 user2-693@plc2.org keys: [2693] sites: []
+2699 1 user2-694@plc2.org keys: [2694] sites: []
+2700 1 user2-695@plc2.org keys: [2695] sites: []
+2701 1 user2-696@plc2.org keys: [2696] sites: []
+2702 1 user2-697@plc2.org keys: [2697] sites: []
+2703 1 user2-698@plc2.org keys: [2698] sites: []
+2704 1 user2-699@plc2.org keys: [2699] sites: []
+2705 1 user2-700@plc2.org keys: [2700] sites: []
+2706 1 user2-701@plc2.org keys: [2701] sites: []
+2707 1 user2-702@plc2.org keys: [2702] sites: []
+2708 1 user2-703@plc2.org keys: [2703] sites: []
+2709 1 user2-704@plc2.org keys: [2704] sites: []
+2710 1 user2-705@plc2.org keys: [2705] sites: []
+2711 1 user2-706@plc2.org keys: [2706] sites: []
+2712 1 user2-707@plc2.org keys: [2707] sites: []
+2713 1 user2-708@plc2.org keys: [2708] sites: []
+2714 1 user2-709@plc2.org keys: [2709] sites: []
+2715 1 user2-710@plc2.org keys: [2710] sites: []
+2716 1 user2-711@plc2.org keys: [2711] sites: []
+2717 1 user2-712@plc2.org keys: [2712] sites: []
+2718 1 user2-713@plc2.org keys: [2713] sites: []
+2719 1 user2-714@plc2.org keys: [2714] sites: []
+2720 1 user2-715@plc2.org keys: [2715] sites: []
+2721 1 user2-716@plc2.org keys: [2716] sites: []
+2722 1 user2-717@plc2.org keys: [2717] sites: []
+2723 1 user2-718@plc2.org keys: [2718] sites: []
+2724 1 user2-719@plc2.org keys: [2719] sites: []
+2725 1 user2-720@plc2.org keys: [2720] sites: []
+2726 1 user2-721@plc2.org keys: [2721] sites: []
+2727 1 user2-722@plc2.org keys: [2722] sites: []
+2728 1 user2-723@plc2.org keys: [2723] sites: []
+2729 1 user2-724@plc2.org keys: [2724] sites: []
+2730 1 user2-725@plc2.org keys: [2725] sites: []
+2731 1 user2-726@plc2.org keys: [2726] sites: []
+2732 1 user2-727@plc2.org keys: [2727] sites: []
+2733 1 user2-728@plc2.org keys: [2728] sites: []
+2734 1 user2-729@plc2.org keys: [2729] sites: []
+2735 1 user2-730@plc2.org keys: [2730] sites: []
+2736 1 user2-731@plc2.org keys: [2731] sites: []
+2737 1 user2-732@plc2.org keys: [2732] sites: []
+2738 1 user2-733@plc2.org keys: [2733] sites: []
+2739 1 user2-734@plc2.org keys: [2734] sites: []
+2740 1 user2-735@plc2.org keys: [2735] sites: []
+2741 1 user2-736@plc2.org keys: [2736] sites: []
+2742 1 user2-737@plc2.org keys: [2737] sites: []
+2743 1 user2-738@plc2.org keys: [2738] sites: []
+2744 1 user2-739@plc2.org keys: [2739] sites: []
+2745 1 user2-740@plc2.org keys: [2740] sites: []
+2746 1 user2-741@plc2.org keys: [2741] sites: []
+2747 1 user2-742@plc2.org keys: [2742] sites: []
+2748 1 user2-743@plc2.org keys: [2743] sites: []
+2749 1 user2-744@plc2.org keys: [2744] sites: []
+2750 1 user2-745@plc2.org keys: [2745] sites: []
+2751 1 user2-746@plc2.org keys: [2746] sites: []
+2752 1 user2-747@plc2.org keys: [2747] sites: []
+2753 1 user2-748@plc2.org keys: [2748] sites: []
+2754 1 user2-749@plc2.org keys: [2749] sites: []
+2755 1 user2-750@plc2.org keys: [2750] sites: []
+2756 1 user2-751@plc2.org keys: [2751] sites: []
+2757 1 user2-752@plc2.org keys: [2752] sites: []
+2758 1 user2-753@plc2.org keys: [2753] sites: []
+2759 1 user2-754@plc2.org keys: [2754] sites: []
+2760 1 user2-755@plc2.org keys: [2755] sites: []
+2761 1 user2-756@plc2.org keys: [2756] sites: []
+2762 1 user2-757@plc2.org keys: [2757] sites: []
+2763 1 user2-758@plc2.org keys: [2758] sites: []
+2764 1 user2-759@plc2.org keys: [2759] sites: []
+2765 1 user2-760@plc2.org keys: [2760] sites: []
+2766 1 user2-761@plc2.org keys: [2761] sites: []
+2767 1 user2-762@plc2.org keys: [2762] sites: []
+2768 1 user2-763@plc2.org keys: [2763] sites: []
+2769 1 user2-764@plc2.org keys: [2764] sites: []
+2770 1 user2-765@plc2.org keys: [2765] sites: []
+2771 1 user2-766@plc2.org keys: [2766] sites: []
+2772 1 user2-767@plc2.org keys: [2767] sites: []
+2773 1 user2-768@plc2.org keys: [2768] sites: []
+2774 1 user2-769@plc2.org keys: [2769] sites: []
+2775 1 user2-770@plc2.org keys: [2770] sites: []
+2776 1 user2-771@plc2.org keys: [2771] sites: []
+2777 1 user2-772@plc2.org keys: [2772] sites: []
+2778 1 user2-773@plc2.org keys: [2773] sites: []
+2779 1 user2-774@plc2.org keys: [2774] sites: []
+2780 1 user2-775@plc2.org keys: [2775] sites: []
+2781 1 user2-776@plc2.org keys: [2776] sites: []
+2782 1 user2-777@plc2.org keys: [2777] sites: []
+2783 1 user2-778@plc2.org keys: [2778] sites: []
+2784 1 user2-779@plc2.org keys: [2779] sites: []
+2785 1 user2-780@plc2.org keys: [2780] sites: []
+2786 1 user2-781@plc2.org keys: [2781] sites: []
+2787 1 user2-782@plc2.org keys: [2782] sites: []
+2788 1 user2-783@plc2.org keys: [2783] sites: []
+2789 1 user2-784@plc2.org keys: [2784] sites: []
+2790 1 user2-785@plc2.org keys: [2785] sites: []
+2791 1 user2-786@plc2.org keys: [2786] sites: []
+2792 1 user2-787@plc2.org keys: [2787] sites: []
+2793 1 user2-788@plc2.org keys: [2788] sites: []
+2794 1 user2-789@plc2.org keys: [2789] sites: []
+2795 1 user2-790@plc2.org keys: [2790] sites: []
+2796 1 user2-791@plc2.org keys: [2791] sites: []
+2797 1 user2-792@plc2.org keys: [2792] sites: []
+2798 1 user2-793@plc2.org keys: [2793] sites: []
+2799 1 user2-794@plc2.org keys: [2794] sites: []
+2800 1 user2-795@plc2.org keys: [2795] sites: []
+2801 1 user2-796@plc2.org keys: [2796] sites: []
+2802 1 user2-797@plc2.org keys: [2797] sites: []
+2803 1 user2-798@plc2.org keys: [2798] sites: []
+2804 1 user2-799@plc2.org keys: [2799] sites: []
+2805 1 user2-800@plc2.org keys: [2800] sites: []
+2806 1 user2-801@plc2.org keys: [2801] sites: []
+2807 1 user2-802@plc2.org keys: [2802] sites: []
+2808 1 user2-803@plc2.org keys: [2803] sites: []
+2809 1 user2-804@plc2.org keys: [2804] sites: []
+2810 1 user2-805@plc2.org keys: [2805] sites: []
+2811 1 user2-806@plc2.org keys: [2806] sites: []
+2812 1 user2-807@plc2.org keys: [2807] sites: []
+2813 1 user2-808@plc2.org keys: [2808] sites: []
+2814 1 user2-809@plc2.org keys: [2809] sites: []
+2815 1 user2-810@plc2.org keys: [2810] sites: []
+2816 1 user2-811@plc2.org keys: [2811] sites: []
+2817 1 user2-812@plc2.org keys: [2812] sites: []
+2818 1 user2-813@plc2.org keys: [2813] sites: []
+2819 1 user2-814@plc2.org keys: [2814] sites: []
+2820 1 user2-815@plc2.org keys: [2815] sites: []
+2821 1 user2-816@plc2.org keys: [2816] sites: []
+2822 1 user2-817@plc2.org keys: [2817] sites: []
+2823 1 user2-818@plc2.org keys: [2818] sites: []
+2824 1 user2-819@plc2.org keys: [2819] sites: []
+2825 1 user2-820@plc2.org keys: [2820] sites: []
+2826 1 user2-821@plc2.org keys: [2821] sites: []
+2827 1 user2-822@plc2.org keys: [2822] sites: []
+2828 1 user2-823@plc2.org keys: [2823] sites: []
+2829 1 user2-824@plc2.org keys: [2824] sites: []
+2830 1 user2-825@plc2.org keys: [2825] sites: []
+2831 1 user2-826@plc2.org keys: [2826] sites: []
+2832 1 user2-827@plc2.org keys: [2827] sites: []
+2833 1 user2-828@plc2.org keys: [2828] sites: []
+2834 1 user2-829@plc2.org keys: [2829] sites: []
+2835 1 user2-830@plc2.org keys: [2830] sites: []
+2836 1 user2-831@plc2.org keys: [2831] sites: []
+2837 1 user2-832@plc2.org keys: [2832] sites: []
+2838 1 user2-833@plc2.org keys: [2833] sites: []
+2839 1 user2-834@plc2.org keys: [2834] sites: []
+2840 1 user2-835@plc2.org keys: [2835] sites: []
+2841 1 user2-836@plc2.org keys: [2836] sites: []
+2842 1 user2-837@plc2.org keys: [2837] sites: []
+2843 1 user2-838@plc2.org keys: [2838] sites: []
+2844 1 user2-839@plc2.org keys: [2839] sites: []
+2845 1 user2-840@plc2.org keys: [2840] sites: []
+2846 1 user2-841@plc2.org keys: [2841] sites: []
+2847 1 user2-842@plc2.org keys: [2842] sites: []
+2848 1 user2-843@plc2.org keys: [2843] sites: []
+2849 1 user2-844@plc2.org keys: [2844] sites: []
+2850 1 user2-845@plc2.org keys: [2845] sites: []
+2851 1 user2-846@plc2.org keys: [2846] sites: []
+2852 1 user2-847@plc2.org keys: [2847] sites: []
+2853 1 user2-848@plc2.org keys: [2848] sites: []
+2854 1 user2-849@plc2.org keys: [2849] sites: []
+2855 1 user2-850@plc2.org keys: [2850] sites: []
+2856 1 user2-851@plc2.org keys: [2851] sites: []
+2857 1 user2-852@plc2.org keys: [2852] sites: []
+2858 1 user2-853@plc2.org keys: [2853] sites: []
+2859 1 user2-854@plc2.org keys: [2854] sites: []
+2860 1 user2-855@plc2.org keys: [2855] sites: []
+2861 1 user2-856@plc2.org keys: [2856] sites: []
+2862 1 user2-857@plc2.org keys: [2857] sites: []
+2863 1 user2-858@plc2.org keys: [2858] sites: []
+2864 1 user2-859@plc2.org keys: [2859] sites: []
+2865 1 user2-860@plc2.org keys: [2860] sites: []
+2866 1 user2-861@plc2.org keys: [2861] sites: []
+2867 1 user2-862@plc2.org keys: [2862] sites: []
+2868 1 user2-863@plc2.org keys: [2863] sites: []
+2869 1 user2-864@plc2.org keys: [2864] sites: []
+2870 1 user2-865@plc2.org keys: [2865] sites: []
+2871 1 user2-866@plc2.org keys: [2866] sites: []
+2872 1 user2-867@plc2.org keys: [2867] sites: []
+2873 1 user2-868@plc2.org keys: [2868] sites: []
+2874 1 user2-869@plc2.org keys: [2869] sites: []
+2875 1 user2-870@plc2.org keys: [2870] sites: []
+2876 1 user2-871@plc2.org keys: [2871] sites: []
+2877 1 user2-872@plc2.org keys: [2872] sites: []
+2878 1 user2-873@plc2.org keys: [2873] sites: []
+2879 1 user2-874@plc2.org keys: [2874] sites: []
+2880 1 user2-875@plc2.org keys: [2875] sites: []
+2881 1 user2-876@plc2.org keys: [2876] sites: []
+2882 1 user2-877@plc2.org keys: [2877] sites: []
+2883 1 user2-878@plc2.org keys: [2878] sites: []
+2884 1 user2-879@plc2.org keys: [2879] sites: []
+2885 1 user2-880@plc2.org keys: [2880] sites: []
+2886 1 user2-881@plc2.org keys: [2881] sites: []
+2887 1 user2-882@plc2.org keys: [2882] sites: []
+2888 1 user2-883@plc2.org keys: [2883] sites: []
+2889 1 user2-884@plc2.org keys: [2884] sites: []
+2890 1 user2-885@plc2.org keys: [2885] sites: []
+2891 1 user2-886@plc2.org keys: [2886] sites: []
+2892 1 user2-887@plc2.org keys: [2887] sites: []
+2893 1 user2-888@plc2.org keys: [2888] sites: []
+2894 1 user2-889@plc2.org keys: [2889] sites: []
+2895 1 user2-890@plc2.org keys: [2890] sites: []
+2896 1 user2-891@plc2.org keys: [2891] sites: []
+2897 1 user2-892@plc2.org keys: [2892] sites: []
+2898 1 user2-893@plc2.org keys: [2893] sites: []
+2899 1 user2-894@plc2.org keys: [2894] sites: []
+2900 1 user2-895@plc2.org keys: [2895] sites: []
+2901 1 user2-896@plc2.org keys: [2896] sites: []
+2902 1 user2-897@plc2.org keys: [2897] sites: []
+2903 1 user2-898@plc2.org keys: [2898] sites: []
+2904 1 user2-899@plc2.org keys: [2899] sites: []
+2905 1 user2-900@plc2.org keys: [2900] sites: []
+2906 1 user2-901@plc2.org keys: [2901] sites: []
+2907 1 user2-902@plc2.org keys: [2902] sites: []
+2908 1 user2-903@plc2.org keys: [2903] sites: []
+2909 1 user2-904@plc2.org keys: [2904] sites: []
+2910 1 user2-905@plc2.org keys: [2905] sites: []
+2911 1 user2-906@plc2.org keys: [2906] sites: []
+2912 1 user2-907@plc2.org keys: [2907] sites: []
+2913 1 user2-908@plc2.org keys: [2908] sites: []
+2914 1 user2-909@plc2.org keys: [2909] sites: []
+2915 1 user2-910@plc2.org keys: [2910] sites: []
+2916 1 user2-911@plc2.org keys: [2911] sites: []
+2917 1 user2-912@plc2.org keys: [2912] sites: []
+2918 1 user2-913@plc2.org keys: [2913] sites: []
+2919 1 user2-914@plc2.org keys: [2914] sites: []
+2920 1 user2-915@plc2.org keys: [2915] sites: []
+2921 1 user2-916@plc2.org keys: [2916] sites: []
+2922 1 user2-917@plc2.org keys: [2917] sites: []
+2923 1 user2-918@plc2.org keys: [2918] sites: []
+2924 1 user2-919@plc2.org keys: [2919] sites: []
+2925 1 user2-920@plc2.org keys: [2920] sites: []
+2926 1 user2-921@plc2.org keys: [2921] sites: []
+2927 1 user2-922@plc2.org keys: [2922] sites: []
+2928 1 user2-923@plc2.org keys: [2923] sites: []
+2929 1 user2-924@plc2.org keys: [2924] sites: []
+2930 1 user2-925@plc2.org keys: [2925] sites: []
+2931 1 user2-926@plc2.org keys: [2926] sites: []
+2932 1 user2-927@plc2.org keys: [2927] sites: []
+2933 1 user2-928@plc2.org keys: [2928] sites: []
+2934 1 user2-929@plc2.org keys: [2929] sites: []
+2935 1 user2-930@plc2.org keys: [2930] sites: []
+2936 1 user2-931@plc2.org keys: [2931] sites: []
+2937 1 user2-932@plc2.org keys: [2932] sites: []
+2938 1 user2-933@plc2.org keys: [2933] sites: []
+2939 1 user2-934@plc2.org keys: [2934] sites: []
+2940 1 user2-935@plc2.org keys: [2935] sites: []
+2941 1 user2-936@plc2.org keys: [2936] sites: []
+2942 1 user2-937@plc2.org keys: [2937] sites: []
+2943 1 user2-938@plc2.org keys: [2938] sites: []
+2944 1 user2-939@plc2.org keys: [2939] sites: []
+2945 1 user2-940@plc2.org keys: [2940] sites: []
+2946 1 user2-941@plc2.org keys: [2941] sites: []
+2947 1 user2-942@plc2.org keys: [2942] sites: []
+2948 1 user2-943@plc2.org keys: [2943] sites: []
+2949 1 user2-944@plc2.org keys: [2944] sites: []
+2950 1 user2-945@plc2.org keys: [2945] sites: []
+2951 1 user2-946@plc2.org keys: [2946] sites: []
+2952 1 user2-947@plc2.org keys: [2947] sites: []
+2953 1 user2-948@plc2.org keys: [2948] sites: []
+2954 1 user2-949@plc2.org keys: [2949] sites: []
+2955 1 user2-950@plc2.org keys: [2950] sites: []
+2956 1 user2-951@plc2.org keys: [2951] sites: []
+2957 1 user2-952@plc2.org keys: [2952] sites: []
+2958 1 user2-953@plc2.org keys: [2953] sites: []
+2959 1 user2-954@plc2.org keys: [2954] sites: []
+2960 1 user2-955@plc2.org keys: [2955] sites: []
+2961 1 user2-956@plc2.org keys: [2956] sites: []
+2962 1 user2-957@plc2.org keys: [2957] sites: []
+2963 1 user2-958@plc2.org keys: [2958] sites: []
+2964 1 user2-959@plc2.org keys: [2959] sites: []
+2965 1 user2-960@plc2.org keys: [2960] sites: []
+2966 1 user2-961@plc2.org keys: [2961] sites: []
+2967 1 user2-962@plc2.org keys: [2962] sites: []
+2968 1 user2-963@plc2.org keys: [2963] sites: []
+2969 1 user2-964@plc2.org keys: [2964] sites: []
+2970 1 user2-965@plc2.org keys: [2965] sites: []
+2971 1 user2-966@plc2.org keys: [2966] sites: []
+2972 1 user2-967@plc2.org keys: [2967] sites: []
+2973 1 user2-968@plc2.org keys: [2968] sites: []
+2974 1 user2-969@plc2.org keys: [2969] sites: []
+2975 1 user2-970@plc2.org keys: [2970] sites: []
+2976 1 user2-971@plc2.org keys: [2971] sites: []
+2977 1 user2-972@plc2.org keys: [2972] sites: []
+2978 1 user2-973@plc2.org keys: [2973] sites: []
+2979 1 user2-974@plc2.org keys: [2974] sites: []
+2980 1 user2-975@plc2.org keys: [2975] sites: []
+2981 1 user2-976@plc2.org keys: [2976] sites: []
+2982 1 user2-977@plc2.org keys: [2977] sites: []
+2983 1 user2-978@plc2.org keys: [2978] sites: []
+2984 1 user2-979@plc2.org keys: [2979] sites: []
+2985 1 user2-980@plc2.org keys: [2980] sites: []
+2986 1 user2-981@plc2.org keys: [2981] sites: []
+2987 1 user2-982@plc2.org keys: [2982] sites: []
+2988 1 user2-983@plc2.org keys: [2983] sites: []
+2989 1 user2-984@plc2.org keys: [2984] sites: []
+2990 1 user2-985@plc2.org keys: [2985] sites: []
+2991 1 user2-986@plc2.org keys: [2986] sites: []
+2992 1 user2-987@plc2.org keys: [2987] sites: []
+2993 1 user2-988@plc2.org keys: [2988] sites: []
+2994 1 user2-989@plc2.org keys: [2989] sites: []
+2995 1 user2-990@plc2.org keys: [2990] sites: []
+2996 1 user2-991@plc2.org keys: [2991] sites: []
+2997 1 user2-992@plc2.org keys: [2992] sites: []
+2998 1 user2-993@plc2.org keys: [2993] sites: []
+2999 1 user2-994@plc2.org keys: [2994] sites: []
+3000 1 user2-995@plc2.org keys: [2995] sites: []
+3001 1 user2-996@plc2.org keys: [2996] sites: []
+3002 1 user2-997@plc2.org keys: [2997] sites: []
+3003 1 user2-998@plc2.org keys: [2998] sites: []
+3004 1 user2-999@plc2.org keys: [2999] sites: []
+3005 1 user2-1000@plc2.org keys: [3000] sites: []
+3006 1 user2-1001@plc2.org keys: [3001] sites: []
+3007 1 user2-1002@plc2.org keys: [3002] sites: []
+3008 1 user2-1003@plc2.org keys: [3003] sites: []
+3009 1 user2-1004@plc2.org keys: [3004] sites: []
+3010 1 user2-1005@plc2.org keys: [3005] sites: []
+3011 1 user2-1006@plc2.org keys: [3006] sites: []
+3012 1 user2-1007@plc2.org keys: [3007] sites: []
+3013 1 user2-1008@plc2.org keys: [3008] sites: []
+3014 1 user2-1009@plc2.org keys: [3009] sites: []
+3015 1 user2-1010@plc2.org keys: [3010] sites: []
+3016 1 user2-1011@plc2.org keys: [3011] sites: []
+3017 1 user2-1012@plc2.org keys: [3012] sites: []
+3018 1 user2-1013@plc2.org keys: [3013] sites: []
+3019 1 user2-1014@plc2.org keys: [3014] sites: []
+3020 1 user2-1015@plc2.org keys: [3015] sites: []
+3021 1 user2-1016@plc2.org keys: [3016] sites: []
+3022 1 user2-1017@plc2.org keys: [3017] sites: []
+3023 1 user2-1018@plc2.org keys: [3018] sites: []
+3024 1 user2-1019@plc2.org keys: [3019] sites: []
+3025 1 user2-1020@plc2.org keys: [3020] sites: []
+3026 1 user2-1021@plc2.org keys: [3021] sites: []
+3027 1 user2-1022@plc2.org keys: [3022] sites: []
+3028 1 user2-1023@plc2.org keys: [3023] sites: []
+3029 1 user2-1024@plc2.org keys: [3024] sites: []
+3030 1 user2-1025@plc2.org keys: [3025] sites: []
+3031 1 user2-1026@plc2.org keys: [3026] sites: []
+3032 1 user2-1027@plc2.org keys: [3027] sites: []
+3033 1 user2-1028@plc2.org keys: [3028] sites: []
+3034 1 user2-1029@plc2.org keys: [3029] sites: []
+3035 1 user2-1030@plc2.org keys: [3030] sites: []
+3036 1 user2-1031@plc2.org keys: [3031] sites: []
+3037 1 user2-1032@plc2.org keys: [3032] sites: []
+3038 1 user2-1033@plc2.org keys: [3033] sites: []
+3039 1 user2-1034@plc2.org keys: [3034] sites: []
+3040 1 user2-1035@plc2.org keys: [3035] sites: []
+3041 1 user2-1036@plc2.org keys: [3036] sites: []
+3042 1 user2-1037@plc2.org keys: [3037] sites: []
+3043 1 user2-1038@plc2.org keys: [3038] sites: []
+3044 1 user2-1039@plc2.org keys: [3039] sites: []
+3045 1 user2-1040@plc2.org keys: [3040] sites: []
+3046 1 user2-1041@plc2.org keys: [3041] sites: []
+3047 1 user2-1042@plc2.org keys: [3042] sites: []
+3048 1 user2-1043@plc2.org keys: [3043] sites: []
+3049 1 user2-1044@plc2.org keys: [3044] sites: []
+3050 1 user2-1045@plc2.org keys: [3045] sites: []
+3051 1 user2-1046@plc2.org keys: [3046] sites: []
+3052 1 user2-1047@plc2.org keys: [3047] sites: []
+3053 1 user2-1048@plc2.org keys: [3048] sites: []
+3054 1 user2-1049@plc2.org keys: [3049] sites: []
+3055 1 user2-1050@plc2.org keys: [3050] sites: []
+3056 1 user2-1051@plc2.org keys: [3051] sites: []
+3057 1 user2-1052@plc2.org keys: [3052] sites: []
+3058 1 user2-1053@plc2.org keys: [3053] sites: []
+3059 1 user2-1054@plc2.org keys: [3054] sites: []
+3060 1 user2-1055@plc2.org keys: [3055] sites: []
+3061 1 user2-1056@plc2.org keys: [3056] sites: []
+3062 1 user2-1057@plc2.org keys: [3057] sites: []
+3063 1 user2-1058@plc2.org keys: [3058] sites: []
+3064 1 user2-1059@plc2.org keys: [3059] sites: []
+3065 1 user2-1060@plc2.org keys: [3060] sites: []
+3066 1 user2-1061@plc2.org keys: [3061] sites: []
+3067 1 user2-1062@plc2.org keys: [3062] sites: []
+3068 1 user2-1063@plc2.org keys: [3063] sites: []
+3069 1 user2-1064@plc2.org keys: [3064] sites: []
+3070 1 user2-1065@plc2.org keys: [3065] sites: []
+3071 1 user2-1066@plc2.org keys: [3066] sites: []
+3072 1 user2-1067@plc2.org keys: [3067] sites: []
+3073 1 user2-1068@plc2.org keys: [3068] sites: []
+3074 1 user2-1069@plc2.org keys: [3069] sites: []
+3075 1 user2-1070@plc2.org keys: [3070] sites: []
+3076 1 user2-1071@plc2.org keys: [3071] sites: []
+3077 1 user2-1072@plc2.org keys: [3072] sites: []
+3078 1 user2-1073@plc2.org keys: [3073] sites: []
+3079 1 user2-1074@plc2.org keys: [3074] sites: []
+3080 1 user2-1075@plc2.org keys: [3075] sites: []
+3081 1 user2-1076@plc2.org keys: [3076] sites: []
+3082 1 user2-1077@plc2.org keys: [3077] sites: []
+3083 1 user2-1078@plc2.org keys: [3078] sites: []
+3084 1 user2-1079@plc2.org keys: [3079] sites: []
+3085 1 user2-1080@plc2.org keys: [3080] sites: []
+3086 1 user2-1081@plc2.org keys: [3081] sites: []
+3087 1 user2-1082@plc2.org keys: [3082] sites: []
+3088 1 user2-1083@plc2.org keys: [3083] sites: []
+3089 1 user2-1084@plc2.org keys: [3084] sites: []
+3090 1 user2-1085@plc2.org keys: [3085] sites: []
+3091 1 user2-1086@plc2.org keys: [3086] sites: []
+3092 1 user2-1087@plc2.org keys: [3087] sites: []
+3093 1 user2-1088@plc2.org keys: [3088] sites: []
+3094 1 user2-1089@plc2.org keys: [3089] sites: []
+3095 1 user2-1090@plc2.org keys: [3090] sites: []
+3096 1 user2-1091@plc2.org keys: [3091] sites: []
+3097 1 user2-1092@plc2.org keys: [3092] sites: []
+3098 1 user2-1093@plc2.org keys: [3093] sites: []
+3099 1 user2-1094@plc2.org keys: [3094] sites: []
+3100 1 user2-1095@plc2.org keys: [3095] sites: []
+3101 1 user2-1096@plc2.org keys: [3096] sites: []
+3102 1 user2-1097@plc2.org keys: [3097] sites: []
+3103 1 user2-1098@plc2.org keys: [3098] sites: []
+3104 1 user2-1099@plc2.org keys: [3099] sites: []
+3105 1 user2-1100@plc2.org keys: [3100] sites: []
+3106 1 user2-1101@plc2.org keys: [3101] sites: []
+3107 1 user2-1102@plc2.org keys: [3102] sites: []
+3108 1 user2-1103@plc2.org keys: [3103] sites: []
+3109 1 user2-1104@plc2.org keys: [3104] sites: []
+3110 1 user2-1105@plc2.org keys: [3105] sites: []
+3111 1 user2-1106@plc2.org keys: [3106] sites: []
+3112 1 user2-1107@plc2.org keys: [3107] sites: []
+3113 1 user2-1108@plc2.org keys: [3108] sites: []
+3114 1 user2-1109@plc2.org keys: [3109] sites: []
+3115 1 user2-1110@plc2.org keys: [3110] sites: []
+3116 1 user2-1111@plc2.org keys: [3111] sites: []
+3117 1 user2-1112@plc2.org keys: [3112] sites: []
+3118 1 user2-1113@plc2.org keys: [3113] sites: []
+3119 1 user2-1114@plc2.org keys: [3114] sites: []
+3120 1 user2-1115@plc2.org keys: [3115] sites: []
+3121 1 user2-1116@plc2.org keys: [3116] sites: []
+3122 1 user2-1117@plc2.org keys: [3117] sites: []
+3123 1 user2-1118@plc2.org keys: [3118] sites: []
+3124 1 user2-1119@plc2.org keys: [3119] sites: []
+3125 1 user2-1120@plc2.org keys: [3120] sites: []
+3126 1 user2-1121@plc2.org keys: [3121] sites: []
+3127 1 user2-1122@plc2.org keys: [3122] sites: []
+3128 1 user2-1123@plc2.org keys: [3123] sites: []
+3129 1 user2-1124@plc2.org keys: [3124] sites: []
+3130 1 user2-1125@plc2.org keys: [3125] sites: []
+3131 1 user2-1126@plc2.org keys: [3126] sites: []
+3132 1 user2-1127@plc2.org keys: [3127] sites: []
+3133 1 user2-1128@plc2.org keys: [3128] sites: []
+3134 1 user2-1129@plc2.org keys: [3129] sites: []
+3135 1 user2-1130@plc2.org keys: [3130] sites: []
+3136 1 user2-1131@plc2.org keys: [3131] sites: []
+3137 1 user2-1132@plc2.org keys: [3132] sites: []
+3138 1 user2-1133@plc2.org keys: [3133] sites: []
+3139 1 user2-1134@plc2.org keys: [3134] sites: []
+3140 1 user2-1135@plc2.org keys: [3135] sites: []
+3141 1 user2-1136@plc2.org keys: [3136] sites: []
+3142 1 user2-1137@plc2.org keys: [3137] sites: []
+3143 1 user2-1138@plc2.org keys: [3138] sites: []
+3144 1 user2-1139@plc2.org keys: [3139] sites: []
+3145 1 user2-1140@plc2.org keys: [3140] sites: []
+3146 1 user2-1141@plc2.org keys: [3141] sites: []
+3147 1 user2-1142@plc2.org keys: [3142] sites: []
+3148 1 user2-1143@plc2.org keys: [3143] sites: []
+3149 1 user2-1144@plc2.org keys: [3144] sites: []
+3150 1 user2-1145@plc2.org keys: [3145] sites: []
+3151 1 user2-1146@plc2.org keys: [3146] sites: []
+3152 1 user2-1147@plc2.org keys: [3147] sites: []
+3153 1 user2-1148@plc2.org keys: [3148] sites: []
+3154 1 user2-1149@plc2.org keys: [3149] sites: []
+3155 1 user2-1150@plc2.org keys: [3150] sites: []
+3156 1 user2-1151@plc2.org keys: [3151] sites: []
+3157 1 user2-1152@plc2.org keys: [3152] sites: []
+3158 1 user2-1153@plc2.org keys: [3153] sites: []
+3159 1 user2-1154@plc2.org keys: [3154] sites: []
+3160 1 user2-1155@plc2.org keys: [3155] sites: []
+3161 1 user2-1156@plc2.org keys: [3156] sites: []
+3162 1 user2-1157@plc2.org keys: [3157] sites: []
+3163 1 user2-1158@plc2.org keys: [3158] sites: []
+3164 1 user2-1159@plc2.org keys: [3159] sites: []
+3165 1 user2-1160@plc2.org keys: [3160] sites: []
+3166 1 user2-1161@plc2.org keys: [3161] sites: []
+3167 1 user2-1162@plc2.org keys: [3162] sites: []
+3168 1 user2-1163@plc2.org keys: [3163] sites: []
+3169 1 user2-1164@plc2.org keys: [3164] sites: []
+3170 1 user2-1165@plc2.org keys: [3165] sites: []
+3171 1 user2-1166@plc2.org keys: [3166] sites: []
+3172 1 user2-1167@plc2.org keys: [3167] sites: []
+3173 1 user2-1168@plc2.org keys: [3168] sites: []
+3174 1 user2-1169@plc2.org keys: [3169] sites: []
+3175 1 user2-1170@plc2.org keys: [3170] sites: []
+3176 1 user2-1171@plc2.org keys: [3171] sites: []
+3177 1 user2-1172@plc2.org keys: [3172] sites: []
+3178 1 user2-1173@plc2.org keys: [3173] sites: []
+3179 1 user2-1174@plc2.org keys: [3174] sites: []
+3180 1 user2-1175@plc2.org keys: [3175] sites: []
+3181 1 user2-1176@plc2.org keys: [3176] sites: []
+3182 1 user2-1177@plc2.org keys: [3177] sites: []
+3183 1 user2-1178@plc2.org keys: [3178] sites: []
+3184 1 user2-1179@plc2.org keys: [3179] sites: []
+3185 1 user2-1180@plc2.org keys: [3180] sites: []
+3186 1 user2-1181@plc2.org keys: [3181] sites: []
+3187 1 user2-1182@plc2.org keys: [3182] sites: []
+3188 1 user2-1183@plc2.org keys: [3183] sites: []
+3189 1 user2-1184@plc2.org keys: [3184] sites: []
+3190 1 user2-1185@plc2.org keys: [3185] sites: []
+3191 1 user2-1186@plc2.org keys: [3186] sites: []
+3192 1 user2-1187@plc2.org keys: [3187] sites: []
+3193 1 user2-1188@plc2.org keys: [3188] sites: []
+3194 1 user2-1189@plc2.org keys: [3189] sites: []
+3195 1 user2-1190@plc2.org keys: [3190] sites: []
+3196 1 user2-1191@plc2.org keys: [3191] sites: []
+3197 1 user2-1192@plc2.org keys: [3192] sites: []
+3198 1 user2-1193@plc2.org keys: [3193] sites: []
+3199 1 user2-1194@plc2.org keys: [3194] sites: []
+3200 1 user2-1195@plc2.org keys: [3195] sites: []
+3201 1 user2-1196@plc2.org keys: [3196] sites: []
+3202 1 user2-1197@plc2.org keys: [3197] sites: []
+3203 1 user2-1198@plc2.org keys: [3198] sites: []
+3204 1 user2-1199@plc2.org keys: [3199] sites: []
+3205 1 user2-1200@plc2.org keys: [3200] sites: []
+3206 1 user2-1201@plc2.org keys: [3201] sites: []
+3207 1 user2-1202@plc2.org keys: [3202] sites: []
+3208 1 user2-1203@plc2.org keys: [3203] sites: []
+3209 1 user2-1204@plc2.org keys: [3204] sites: []
+3210 1 user2-1205@plc2.org keys: [3205] sites: []
+3211 1 user2-1206@plc2.org keys: [3206] sites: []
+3212 1 user2-1207@plc2.org keys: [3207] sites: []
+3213 1 user2-1208@plc2.org keys: [3208] sites: []
+3214 1 user2-1209@plc2.org keys: [3209] sites: []
+3215 1 user2-1210@plc2.org keys: [3210] sites: []
+3216 1 user2-1211@plc2.org keys: [3211] sites: []
+3217 1 user2-1212@plc2.org keys: [3212] sites: []
+3218 1 user2-1213@plc2.org keys: [3213] sites: []
+3219 1 user2-1214@plc2.org keys: [3214] sites: []
+3220 1 user2-1215@plc2.org keys: [3215] sites: []
+3221 1 user2-1216@plc2.org keys: [3216] sites: []
+3222 1 user2-1217@plc2.org keys: [3217] sites: []
+3223 1 user2-1218@plc2.org keys: [3218] sites: []
+3224 1 user2-1219@plc2.org keys: [3219] sites: []
+3225 1 user2-1220@plc2.org keys: [3220] sites: []
+3226 1 user2-1221@plc2.org keys: [3221] sites: []
+3227 1 user2-1222@plc2.org keys: [3222] sites: []
+3228 1 user2-1223@plc2.org keys: [3223] sites: []
+3229 1 user2-1224@plc2.org keys: [3224] sites: []
+3230 1 user2-1225@plc2.org keys: [3225] sites: []
+3231 1 user2-1226@plc2.org keys: [3226] sites: []
+3232 1 user2-1227@plc2.org keys: [3227] sites: []
+3233 1 user2-1228@plc2.org keys: [3228] sites: []
+3234 1 user2-1229@plc2.org keys: [3229] sites: []
+3235 1 user2-1230@plc2.org keys: [3230] sites: []
+3236 1 user2-1231@plc2.org keys: [3231] sites: []
+3237 1 user2-1232@plc2.org keys: [3232] sites: []
+3238 1 user2-1233@plc2.org keys: [3233] sites: []
+3239 1 user2-1234@plc2.org keys: [3234] sites: []
+3240 1 user2-1235@plc2.org keys: [3235] sites: []
+3241 1 user2-1236@plc2.org keys: [3236] sites: []
+3242 1 user2-1237@plc2.org keys: [3237] sites: []
+3243 1 user2-1238@plc2.org keys: [3238] sites: []
+3244 1 user2-1239@plc2.org keys: [3239] sites: []
+3245 1 user2-1240@plc2.org keys: [3240] sites: []
+3246 1 user2-1241@plc2.org keys: [3241] sites: []
+3247 1 user2-1242@plc2.org keys: [3242] sites: []
+3248 1 user2-1243@plc2.org keys: [3243] sites: []
+3249 1 user2-1244@plc2.org keys: [3244] sites: []
+3250 1 user2-1245@plc2.org keys: [3245] sites: []
+3251 1 user2-1246@plc2.org keys: [3246] sites: []
+3252 1 user2-1247@plc2.org keys: [3247] sites: []
+3253 1 user2-1248@plc2.org keys: [3248] sites: []
+3254 1 user2-1249@plc2.org keys: [3249] sites: []
+3255 1 user2-1250@plc2.org keys: [3250] sites: []
+3256 1 user2-1251@plc2.org keys: [3251] sites: []
+3257 1 user2-1252@plc2.org keys: [3252] sites: []
+3258 1 user2-1253@plc2.org keys: [3253] sites: []
+3259 1 user2-1254@plc2.org keys: [3254] sites: []
+3260 1 user2-1255@plc2.org keys: [3255] sites: []
+3261 1 user2-1256@plc2.org keys: [3256] sites: []
+3262 1 user2-1257@plc2.org keys: [3257] sites: []
+3263 1 user2-1258@plc2.org keys: [3258] sites: []
+3264 1 user2-1259@plc2.org keys: [3259] sites: []
+3265 1 user2-1260@plc2.org keys: [3260] sites: []
+3266 1 user2-1261@plc2.org keys: [3261] sites: []
+3267 1 user2-1262@plc2.org keys: [3262] sites: []
+3268 1 user2-1263@plc2.org keys: [3263] sites: []
+3269 1 user2-1264@plc2.org keys: [3264] sites: []
+3270 1 user2-1265@plc2.org keys: [3265] sites: []
+3271 1 user2-1266@plc2.org keys: [3266] sites: []
+3272 1 user2-1267@plc2.org keys: [3267] sites: []
+3273 1 user2-1268@plc2.org keys: [3268] sites: []
+3274 1 user2-1269@plc2.org keys: [3269] sites: []
+3275 1 user2-1270@plc2.org keys: [3270] sites: []
+3276 1 user2-1271@plc2.org keys: [3271] sites: []
+3277 1 user2-1272@plc2.org keys: [3272] sites: []
+3278 1 user2-1273@plc2.org keys: [3273] sites: []
+3279 1 user2-1274@plc2.org keys: [3274] sites: []
+3280 1 user2-1275@plc2.org keys: [3275] sites: []
+3281 1 user2-1276@plc2.org keys: [3276] sites: []
+3282 1 user2-1277@plc2.org keys: [3277] sites: []
+3283 1 user2-1278@plc2.org keys: [3278] sites: []
+3284 1 user2-1279@plc2.org keys: [3279] sites: []
+3285 1 user2-1280@plc2.org keys: [3280] sites: []
+3286 1 user2-1281@plc2.org keys: [3281] sites: []
+3287 1 user2-1282@plc2.org keys: [3282] sites: []
+3288 1 user2-1283@plc2.org keys: [3283] sites: []
+3289 1 user2-1284@plc2.org keys: [3284] sites: []
+3290 1 user2-1285@plc2.org keys: [3285] sites: []
+3291 1 user2-1286@plc2.org keys: [3286] sites: []
+3292 1 user2-1287@plc2.org keys: [3287] sites: []
+3293 1 user2-1288@plc2.org keys: [3288] sites: []
+3294 1 user2-1289@plc2.org keys: [3289] sites: []
+3295 1 user2-1290@plc2.org keys: [3290] sites: []
+3296 1 user2-1291@plc2.org keys: [3291] sites: []
+3297 1 user2-1292@plc2.org keys: [3292] sites: []
+3298 1 user2-1293@plc2.org keys: [3293] sites: []
+3299 1 user2-1294@plc2.org keys: [3294] sites: []
+3300 1 user2-1295@plc2.org keys: [3295] sites: []
+3301 1 user2-1296@plc2.org keys: [3296] sites: []
+3302 1 user2-1297@plc2.org keys: [3297] sites: []
+3303 1 user2-1298@plc2.org keys: [3298] sites: []
+3304 1 user2-1299@plc2.org keys: [3299] sites: []
+3305 1 user2-1300@plc2.org keys: [3300] sites: []
+3306 1 user2-1301@plc2.org keys: [3301] sites: []
+3307 1 user2-1302@plc2.org keys: [3302] sites: []
+3308 1 user2-1303@plc2.org keys: [3303] sites: []
+3309 1 user2-1304@plc2.org keys: [3304] sites: []
+3310 1 user2-1305@plc2.org keys: [3305] sites: []
+3311 1 user2-1306@plc2.org keys: [3306] sites: []
+3312 1 user2-1307@plc2.org keys: [3307] sites: []
+3313 1 user2-1308@plc2.org keys: [3308] sites: []
+3314 1 user2-1309@plc2.org keys: [3309] sites: []
+3315 1 user2-1310@plc2.org keys: [3310] sites: []
+3316 1 user2-1311@plc2.org keys: [3311] sites: []
+3317 1 user2-1312@plc2.org keys: [3312] sites: []
+3318 1 user2-1313@plc2.org keys: [3313] sites: []
+3319 1 user2-1314@plc2.org keys: [3314] sites: []
+3320 1 user2-1315@plc2.org keys: [3315] sites: []
+3321 1 user2-1316@plc2.org keys: [3316] sites: []
+3322 1 user2-1317@plc2.org keys: [3317] sites: []
+3323 1 user2-1318@plc2.org keys: [3318] sites: []
+3324 1 user2-1319@plc2.org keys: [3319] sites: []
+3325 1 user2-1320@plc2.org keys: [3320] sites: []
+3326 1 user2-1321@plc2.org keys: [3321] sites: []
+3327 1 user2-1322@plc2.org keys: [3322] sites: []
+3328 1 user2-1323@plc2.org keys: [3323] sites: []
+3329 1 user2-1324@plc2.org keys: [3324] sites: []
+3330 1 user2-1325@plc2.org keys: [3325] sites: []
+3331 1 user2-1326@plc2.org keys: [3326] sites: []
+3332 1 user2-1327@plc2.org keys: [3327] sites: []
+3333 1 user2-1328@plc2.org keys: [3328] sites: []
+3334 1 user2-1329@plc2.org keys: [3329] sites: []
+3335 1 user2-1330@plc2.org keys: [3330] sites: []
+3336 1 user2-1331@plc2.org keys: [3331] sites: []
+3337 1 user2-1332@plc2.org keys: [3332] sites: []
+3338 1 user2-1333@plc2.org keys: [3333] sites: []
+3339 1 user2-1334@plc2.org keys: [3334] sites: []
+3340 1 user2-1335@plc2.org keys: [3335] sites: []
+3341 1 user2-1336@plc2.org keys: [3336] sites: []
+3342 1 user2-1337@plc2.org keys: [3337] sites: []
+3343 1 user2-1338@plc2.org keys: [3338] sites: []
+3344 1 user2-1339@plc2.org keys: [3339] sites: []
+3345 1 user2-1340@plc2.org keys: [3340] sites: []
+3346 1 user2-1341@plc2.org keys: [3341] sites: []
+3347 1 user2-1342@plc2.org keys: [3342] sites: []
+3348 1 user2-1343@plc2.org keys: [3343] sites: []
+3349 1 user2-1344@plc2.org keys: [3344] sites: []
+3350 1 user2-1345@plc2.org keys: [3345] sites: []
+3351 1 user2-1346@plc2.org keys: [3346] sites: []
+3352 1 user2-1347@plc2.org keys: [3347] sites: []
+3353 1 user2-1348@plc2.org keys: [3348] sites: []
+3354 1 user2-1349@plc2.org keys: [3349] sites: []
+3355 1 user2-1350@plc2.org keys: [3350] sites: []
+3356 1 user2-1351@plc2.org keys: [3351] sites: []
+3357 1 user2-1352@plc2.org keys: [3352] sites: []
+3358 1 user2-1353@plc2.org keys: [3353] sites: []
+3359 1 user2-1354@plc2.org keys: [3354] sites: []
+3360 1 user2-1355@plc2.org keys: [3355] sites: []
+3361 1 user2-1356@plc2.org keys: [3356] sites: []
+3362 1 user2-1357@plc2.org keys: [3357] sites: []
+3363 1 user2-1358@plc2.org keys: [3358] sites: []
+3364 1 user2-1359@plc2.org keys: [3359] sites: []
+3365 1 user2-1360@plc2.org keys: [3360] sites: []
+3366 1 user2-1361@plc2.org keys: [3361] sites: []
+3367 1 user2-1362@plc2.org keys: [3362] sites: []
+3368 1 user2-1363@plc2.org keys: [3363] sites: []
+3369 1 user2-1364@plc2.org keys: [3364] sites: []
+3370 1 user2-1365@plc2.org keys: [3365] sites: []
+3371 1 user2-1366@plc2.org keys: [3366] sites: []
+3372 1 user2-1367@plc2.org keys: [3367] sites: []
+3373 1 user2-1368@plc2.org keys: [3368] sites: []
+3374 1 user2-1369@plc2.org keys: [3369] sites: []
+3375 1 user2-1370@plc2.org keys: [3370] sites: []
+3376 1 user2-1371@plc2.org keys: [3371] sites: []
+3377 1 user2-1372@plc2.org keys: [3372] sites: []
+3378 1 user2-1373@plc2.org keys: [3373] sites: []
+3379 1 user2-1374@plc2.org keys: [3374] sites: []
+3380 1 user2-1375@plc2.org keys: [3375] sites: []
+3381 1 user2-1376@plc2.org keys: [3376] sites: []
+3382 1 user2-1377@plc2.org keys: [3377] sites: []
+3383 1 user2-1378@plc2.org keys: [3378] sites: []
+3384 1 user2-1379@plc2.org keys: [3379] sites: []
+3385 1 user2-1380@plc2.org keys: [3380] sites: []
+3386 1 user2-1381@plc2.org keys: [3381] sites: []
+3387 1 user2-1382@plc2.org keys: [3382] sites: []
+3388 1 user2-1383@plc2.org keys: [3383] sites: []
+3389 1 user2-1384@plc2.org keys: [3384] sites: []
+3390 1 user2-1385@plc2.org keys: [3385] sites: []
+3391 1 user2-1386@plc2.org keys: [3386] sites: []
+3392 1 user2-1387@plc2.org keys: [3387] sites: []
+3393 1 user2-1388@plc2.org keys: [3388] sites: []
+3394 1 user2-1389@plc2.org keys: [3389] sites: []
+3395 1 user2-1390@plc2.org keys: [3390] sites: []
+3396 1 user2-1391@plc2.org keys: [3391] sites: []
+3397 1 user2-1392@plc2.org keys: [3392] sites: []
+3398 1 user2-1393@plc2.org keys: [3393] sites: []
+3399 1 user2-1394@plc2.org keys: [3394] sites: []
+3400 1 user2-1395@plc2.org keys: [3395] sites: []
+3401 1 user2-1396@plc2.org keys: [3396] sites: []
+3402 1 user2-1397@plc2.org keys: [3397] sites: []
+3403 1 user2-1398@plc2.org keys: [3398] sites: []
+3404 1 user2-1399@plc2.org keys: [3399] sites: []
+3405 1 user2-1400@plc2.org keys: [3400] sites: []
+3406 1 user2-1401@plc2.org keys: [3401] sites: []
+3407 1 user2-1402@plc2.org keys: [3402] sites: []
+3408 1 user2-1403@plc2.org keys: [3403] sites: []
+3409 1 user2-1404@plc2.org keys: [3404] sites: []
+3410 1 user2-1405@plc2.org keys: [3405] sites: []
+3411 1 user2-1406@plc2.org keys: [3406] sites: []
+3412 1 user2-1407@plc2.org keys: [3407] sites: []
+3413 1 user2-1408@plc2.org keys: [3408] sites: []
+3414 1 user2-1409@plc2.org keys: [3409] sites: []
+3415 1 user2-1410@plc2.org keys: [3410] sites: []
+3416 1 user2-1411@plc2.org keys: [3411] sites: []
+3417 1 user2-1412@plc2.org keys: [3412] sites: []
+3418 1 user2-1413@plc2.org keys: [3413] sites: []
+3419 1 user2-1414@plc2.org keys: [3414] sites: []
+3420 1 user2-1415@plc2.org keys: [3415] sites: []
+3421 1 user2-1416@plc2.org keys: [3416] sites: []
+3422 1 user2-1417@plc2.org keys: [3417] sites: []
+3423 1 user2-1418@plc2.org keys: [3418] sites: []
+3424 1 user2-1419@plc2.org keys: [3419] sites: []
+3425 1 user2-1420@plc2.org keys: [3420] sites: []
+3426 1 user2-1421@plc2.org keys: [3421] sites: []
+3427 1 user2-1422@plc2.org keys: [3422] sites: []
+3428 1 user2-1423@plc2.org keys: [3423] sites: []
+3429 1 user2-1424@plc2.org keys: [3424] sites: []
+3430 1 user2-1425@plc2.org keys: [3425] sites: []
+3431 1 user2-1426@plc2.org keys: [3426] sites: []
+3432 1 user2-1427@plc2.org keys: [3427] sites: []
+3433 1 user2-1428@plc2.org keys: [3428] sites: []
+3434 1 user2-1429@plc2.org keys: [3429] sites: []
+3435 1 user2-1430@plc2.org keys: [3430] sites: []
+3436 1 user2-1431@plc2.org keys: [3431] sites: []
+3437 1 user2-1432@plc2.org keys: [3432] sites: []
+3438 1 user2-1433@plc2.org keys: [3433] sites: []
+3439 1 user2-1434@plc2.org keys: [3434] sites: []
+3440 1 user2-1435@plc2.org keys: [3435] sites: []
+3441 1 user2-1436@plc2.org keys: [3436] sites: []
+3442 1 user2-1437@plc2.org keys: [3437] sites: []
+3443 1 user2-1438@plc2.org keys: [3438] sites: []
+3444 1 user2-1439@plc2.org keys: [3439] sites: []
+3445 1 user2-1440@plc2.org keys: [3440] sites: []
+3446 1 user2-1441@plc2.org keys: [3441] sites: []
+3447 1 user2-1442@plc2.org keys: [3442] sites: []
+3448 1 user2-1443@plc2.org keys: [3443] sites: []
+3449 1 user2-1444@plc2.org keys: [3444] sites: []
+3450 1 user2-1445@plc2.org keys: [3445] sites: []
+3451 1 user2-1446@plc2.org keys: [3446] sites: []
+3452 1 user2-1447@plc2.org keys: [3447] sites: []
+3453 1 user2-1448@plc2.org keys: [3448] sites: []
+3454 1 user2-1449@plc2.org keys: [3449] sites: []
+3455 1 user2-1450@plc2.org keys: [3450] sites: []
+3456 1 user2-1451@plc2.org keys: [3451] sites: []
+3457 1 user2-1452@plc2.org keys: [3452] sites: []
+3458 1 user2-1453@plc2.org keys: [3453] sites: []
+3459 1 user2-1454@plc2.org keys: [3454] sites: []
+3460 1 user2-1455@plc2.org keys: [3455] sites: []
+3461 1 user2-1456@plc2.org keys: [3456] sites: []
+3462 1 user2-1457@plc2.org keys: [3457] sites: []
+3463 1 user2-1458@plc2.org keys: [3458] sites: []
+3464 1 user2-1459@plc2.org keys: [3459] sites: []
+3465 1 user2-1460@plc2.org keys: [3460] sites: []
+3466 1 user2-1461@plc2.org keys: [3461] sites: []
+3467 1 user2-1462@plc2.org keys: [3462] sites: []
+3468 1 user2-1463@plc2.org keys: [3463] sites: []
+3469 1 user2-1464@plc2.org keys: [3464] sites: []
+3470 1 user2-1465@plc2.org keys: [3465] sites: []
+3471 1 user2-1466@plc2.org keys: [3466] sites: []
+3472 1 user2-1467@plc2.org keys: [3467] sites: []
+3473 1 user2-1468@plc2.org keys: [3468] sites: []
+3474 1 user2-1469@plc2.org keys: [3469] sites: []
+3475 1 user2-1470@plc2.org keys: [3470] sites: []
+3476 1 user2-1471@plc2.org keys: [3471] sites: []
+3477 1 user2-1472@plc2.org keys: [3472] sites: []
+3478 1 user2-1473@plc2.org keys: [3473] sites: []
+3479 1 user2-1474@plc2.org keys: [3474] sites: []
+3480 1 user2-1475@plc2.org keys: [3475] sites: []
+3481 1 user2-1476@plc2.org keys: [3476] sites: []
+3482 1 user2-1477@plc2.org keys: [3477] sites: []
+3483 1 user2-1478@plc2.org keys: [3478] sites: []
+3484 1 user2-1479@plc2.org keys: [3479] sites: []
+3485 1 user2-1480@plc2.org keys: [3480] sites: []
+3486 1 user2-1481@plc2.org keys: [3481] sites: []
+3487 1 user2-1482@plc2.org keys: [3482] sites: []
+3488 1 user2-1483@plc2.org keys: [3483] sites: []
+3489 1 user2-1484@plc2.org keys: [3484] sites: []
+3490 1 user2-1485@plc2.org keys: [3485] sites: []
+3491 1 user2-1486@plc2.org keys: [3486] sites: []
+3492 1 user2-1487@plc2.org keys: [3487] sites: []
+3493 1 user2-1488@plc2.org keys: [3488] sites: []
+3494 1 user2-1489@plc2.org keys: [3489] sites: []
+3495 1 user2-1490@plc2.org keys: [3490] sites: []
+3496 1 user2-1491@plc2.org keys: [3491] sites: []
+3497 1 user2-1492@plc2.org keys: [3492] sites: []
+3498 1 user2-1493@plc2.org keys: [3493] sites: []
+3499 1 user2-1494@plc2.org keys: [3494] sites: []
+3500 1 user2-1495@plc2.org keys: [3495] sites: []
+3501 1 user2-1496@plc2.org keys: [3496] sites: []
+3502 1 user2-1497@plc2.org keys: [3497] sites: []
+3503 1 user2-1498@plc2.org keys: [3498] sites: []
+3504 1 user2-1499@plc2.org keys: [3499] sites: []
+3505 1 user2-1500@plc2.org keys: [3500] sites: []
+3506 1 user2-1501@plc2.org keys: [3501] sites: []
+3507 1 user2-1502@plc2.org keys: [3502] sites: []
+3508 1 user2-1503@plc2.org keys: [3503] sites: []
+3509 1 user2-1504@plc2.org keys: [3504] sites: []
+3510 1 user2-1505@plc2.org keys: [3505] sites: []
+3511 1 user2-1506@plc2.org keys: [3506] sites: []
+3512 1 user2-1507@plc2.org keys: [3507] sites: []
+3513 1 user2-1508@plc2.org keys: [3508] sites: []
+3514 1 user2-1509@plc2.org keys: [3509] sites: []
+3515 1 user2-1510@plc2.org keys: [3510] sites: []
+3516 1 user2-1511@plc2.org keys: [3511] sites: []
+3517 1 user2-1512@plc2.org keys: [3512] sites: []
+3518 1 user2-1513@plc2.org keys: [3513] sites: []
+3519 1 user2-1514@plc2.org keys: [3514] sites: []
+3520 1 user2-1515@plc2.org keys: [3515] sites: []
+3521 1 user2-1516@plc2.org keys: [3516] sites: []
+3522 1 user2-1517@plc2.org keys: [3517] sites: []
+3523 1 user2-1518@plc2.org keys: [3518] sites: []
+3524 1 user2-1519@plc2.org keys: [3519] sites: []
+3525 1 user2-1520@plc2.org keys: [3520] sites: []
+3526 1 user2-1521@plc2.org keys: [3521] sites: []
+3527 1 user2-1522@plc2.org keys: [3522] sites: []
+3528 1 user2-1523@plc2.org keys: [3523] sites: []
+3529 1 user2-1524@plc2.org keys: [3524] sites: []
+3530 1 user2-1525@plc2.org keys: [3525] sites: []
+3531 1 user2-1526@plc2.org keys: [3526] sites: []
+3532 1 user2-1527@plc2.org keys: [3527] sites: []
+3533 1 user2-1528@plc2.org keys: [3528] sites: []
+3534 1 user2-1529@plc2.org keys: [3529] sites: []
+3535 1 user2-1530@plc2.org keys: [3530] sites: []
+3536 1 user2-1531@plc2.org keys: [3531] sites: []
+3537 1 user2-1532@plc2.org keys: [3532] sites: []
+3538 1 user2-1533@plc2.org keys: [3533] sites: []
+3539 1 user2-1534@plc2.org keys: [3534] sites: []
+3540 1 user2-1535@plc2.org keys: [3535] sites: []
+3541 1 user2-1536@plc2.org keys: [3536] sites: []
+3542 1 user2-1537@plc2.org keys: [3537] sites: []
+3543 1 user2-1538@plc2.org keys: [3538] sites: []
+3544 1 user2-1539@plc2.org keys: [3539] sites: []
+3545 1 user2-1540@plc2.org keys: [3540] sites: []
+3546 1 user2-1541@plc2.org keys: [3541] sites: []
+3547 1 user2-1542@plc2.org keys: [3542] sites: []
+3548 1 user2-1543@plc2.org keys: [3543] sites: []
+3549 1 user2-1544@plc2.org keys: [3544] sites: []
+3550 1 user2-1545@plc2.org keys: [3545] sites: []
+3551 1 user2-1546@plc2.org keys: [3546] sites: []
+3552 1 user2-1547@plc2.org keys: [3547] sites: []
+3553 1 user2-1548@plc2.org keys: [3548] sites: []
+3554 1 user2-1549@plc2.org keys: [3549] sites: []
+3555 1 user2-1550@plc2.org keys: [3550] sites: []
+3556 1 user2-1551@plc2.org keys: [3551] sites: []
+3557 1 user2-1552@plc2.org keys: [3552] sites: []
+3558 1 user2-1553@plc2.org keys: [3553] sites: []
+3559 1 user2-1554@plc2.org keys: [3554] sites: []
+3560 1 user2-1555@plc2.org keys: [3555] sites: []
+3561 1 user2-1556@plc2.org keys: [3556] sites: []
+3562 1 user2-1557@plc2.org keys: [3557] sites: []
+3563 1 user2-1558@plc2.org keys: [3558] sites: []
+3564 1 user2-1559@plc2.org keys: [3559] sites: []
+3565 1 user2-1560@plc2.org keys: [3560] sites: []
+3566 1 user2-1561@plc2.org keys: [3561] sites: []
+3567 1 user2-1562@plc2.org keys: [3562] sites: []
+3568 1 user2-1563@plc2.org keys: [3563] sites: []
+3569 1 user2-1564@plc2.org keys: [3564] sites: []
+3570 1 user2-1565@plc2.org keys: [3565] sites: []
+3571 1 user2-1566@plc2.org keys: [3566] sites: []
+3572 1 user2-1567@plc2.org keys: [3567] sites: []
+3573 1 user2-1568@plc2.org keys: [3568] sites: []
+3574 1 user2-1569@plc2.org keys: [3569] sites: []
+3575 1 user2-1570@plc2.org keys: [3570] sites: []
+3576 1 user2-1571@plc2.org keys: [3571] sites: []
+3577 1 user2-1572@plc2.org keys: [3572] sites: []
+3578 1 user2-1573@plc2.org keys: [3573] sites: []
+3579 1 user2-1574@plc2.org keys: [3574] sites: []
+3580 1 user2-1575@plc2.org keys: [3575] sites: []
+3581 1 user2-1576@plc2.org keys: [3576] sites: []
+3582 1 user2-1577@plc2.org keys: [3577] sites: []
+3583 1 user2-1578@plc2.org keys: [3578] sites: []
+3584 1 user2-1579@plc2.org keys: [3579] sites: []
+3585 1 user2-1580@plc2.org keys: [3580] sites: []
+3586 1 user2-1581@plc2.org keys: [3581] sites: []
+3587 1 user2-1582@plc2.org keys: [3582] sites: []
+3588 1 user2-1583@plc2.org keys: [3583] sites: []
+3589 1 user2-1584@plc2.org keys: [3584] sites: []
+3590 1 user2-1585@plc2.org keys: [3585] sites: []
+3591 1 user2-1586@plc2.org keys: [3586] sites: []
+3592 1 user2-1587@plc2.org keys: [3587] sites: []
+3593 1 user2-1588@plc2.org keys: [3588] sites: []
+3594 1 user2-1589@plc2.org keys: [3589] sites: []
+3595 1 user2-1590@plc2.org keys: [3590] sites: []
+3596 1 user2-1591@plc2.org keys: [3591] sites: []
+3597 1 user2-1592@plc2.org keys: [3592] sites: []
+3598 1 user2-1593@plc2.org keys: [3593] sites: []
+3599 1 user2-1594@plc2.org keys: [3594] sites: []
+3600 1 user2-1595@plc2.org keys: [3595] sites: []
+3601 1 user2-1596@plc2.org keys: [3596] sites: []
+3602 1 user2-1597@plc2.org keys: [3597] sites: []
+3603 1 user2-1598@plc2.org keys: [3598] sites: []
+3604 1 user2-1599@plc2.org keys: [3599] sites: []
+3605 1 user2-1600@plc2.org keys: [3600] sites: []
+3606 1 user2-1601@plc2.org keys: [3601] sites: []
+3607 1 user2-1602@plc2.org keys: [3602] sites: []
+3608 1 user2-1603@plc2.org keys: [3603] sites: []
+3609 1 user2-1604@plc2.org keys: [3604] sites: []
+3610 1 user2-1605@plc2.org keys: [3605] sites: []
+3611 1 user2-1606@plc2.org keys: [3606] sites: []
+3612 1 user2-1607@plc2.org keys: [3607] sites: []
+3613 1 user2-1608@plc2.org keys: [3608] sites: []
+3614 1 user2-1609@plc2.org keys: [3609] sites: []
+3615 1 user2-1610@plc2.org keys: [3610] sites: []
+3616 1 user2-1611@plc2.org keys: [3611] sites: []
+3617 1 user2-1612@plc2.org keys: [3612] sites: []
+3618 1 user2-1613@plc2.org keys: [3613] sites: []
+3619 1 user2-1614@plc2.org keys: [3614] sites: []
+3620 1 user2-1615@plc2.org keys: [3615] sites: []
+3621 1 user2-1616@plc2.org keys: [3616] sites: []
+3622 1 user2-1617@plc2.org keys: [3617] sites: []
+3623 1 user2-1618@plc2.org keys: [3618] sites: []
+3624 1 user2-1619@plc2.org keys: [3619] sites: []
+3625 1 user2-1620@plc2.org keys: [3620] sites: []
+3626 1 user2-1621@plc2.org keys: [3621] sites: []
+3627 1 user2-1622@plc2.org keys: [3622] sites: []
+3628 1 user2-1623@plc2.org keys: [3623] sites: []
+3629 1 user2-1624@plc2.org keys: [3624] sites: []
+3630 1 user2-1625@plc2.org keys: [3625] sites: []
+3631 1 user2-1626@plc2.org keys: [3626] sites: []
+3632 1 user2-1627@plc2.org keys: [3627] sites: []
+3633 1 user2-1628@plc2.org keys: [3628] sites: []
+3634 1 user2-1629@plc2.org keys: [3629] sites: []
+3635 1 user2-1630@plc2.org keys: [3630] sites: []
+3636 1 user2-1631@plc2.org keys: [3631] sites: []
+3637 1 user2-1632@plc2.org keys: [3632] sites: []
+3638 1 user2-1633@plc2.org keys: [3633] sites: []
+3639 1 user2-1634@plc2.org keys: [3634] sites: []
+3640 1 user2-1635@plc2.org keys: [3635] sites: []
+3641 1 user2-1636@plc2.org keys: [3636] sites: []
+3642 1 user2-1637@plc2.org keys: [3637] sites: []
+3643 1 user2-1638@plc2.org keys: [3638] sites: []
+3644 1 user2-1639@plc2.org keys: [3639] sites: []
+3645 1 user2-1640@plc2.org keys: [3640] sites: []
+3646 1 user2-1641@plc2.org keys: [3641] sites: []
+3647 1 user2-1642@plc2.org keys: [3642] sites: []
+3648 1 user2-1643@plc2.org keys: [3643] sites: []
+3649 1 user2-1644@plc2.org keys: [3644] sites: []
+3650 1 user2-1645@plc2.org keys: [3645] sites: []
+3651 1 user2-1646@plc2.org keys: [3646] sites: []
+3652 1 user2-1647@plc2.org keys: [3647] sites: []
+3653 1 user2-1648@plc2.org keys: [3648] sites: []
+3654 1 user2-1649@plc2.org keys: [3649] sites: []
+3655 1 user2-1650@plc2.org keys: [3650] sites: []
+3656 1 user2-1651@plc2.org keys: [3651] sites: []
+3657 1 user2-1652@plc2.org keys: [3652] sites: []
+3658 1 user2-1653@plc2.org keys: [3653] sites: []
+3659 1 user2-1654@plc2.org keys: [3654] sites: []
+3660 1 user2-1655@plc2.org keys: [3655] sites: []
+3661 1 user2-1656@plc2.org keys: [3656] sites: []
+3662 1 user2-1657@plc2.org keys: [3657] sites: []
+3663 1 user2-1658@plc2.org keys: [3658] sites: []
+3664 1 user2-1659@plc2.org keys: [3659] sites: []
+3665 1 user2-1660@plc2.org keys: [3660] sites: []
+3666 1 user2-1661@plc2.org keys: [3661] sites: []
+3667 1 user2-1662@plc2.org keys: [3662] sites: []
+3668 1 user2-1663@plc2.org keys: [3663] sites: []
+3669 1 user2-1664@plc2.org keys: [3664] sites: []
+3670 1 user2-1665@plc2.org keys: [3665] sites: []
+3671 1 user2-1666@plc2.org keys: [3666] sites: []
+3672 1 user2-1667@plc2.org keys: [3667] sites: []
+3673 1 user2-1668@plc2.org keys: [3668] sites: []
+3674 1 user2-1669@plc2.org keys: [3669] sites: []
+3675 1 user2-1670@plc2.org keys: [3670] sites: []
+3676 1 user2-1671@plc2.org keys: [3671] sites: []
+3677 1 user2-1672@plc2.org keys: [3672] sites: []
+3678 1 user2-1673@plc2.org keys: [3673] sites: []
+3679 1 user2-1674@plc2.org keys: [3674] sites: []
+3680 1 user2-1675@plc2.org keys: [3675] sites: []
+3681 1 user2-1676@plc2.org keys: [3676] sites: []
+3682 1 user2-1677@plc2.org keys: [3677] sites: []
+3683 1 user2-1678@plc2.org keys: [3678] sites: []
+3684 1 user2-1679@plc2.org keys: [3679] sites: []
+3685 1 user2-1680@plc2.org keys: [3680] sites: []
+3686 1 user2-1681@plc2.org keys: [3681] sites: []
+3687 1 user2-1682@plc2.org keys: [3682] sites: []
+3688 1 user2-1683@plc2.org keys: [3683] sites: []
+3689 1 user2-1684@plc2.org keys: [3684] sites: []
+3690 1 user2-1685@plc2.org keys: [3685] sites: []
+3691 1 user2-1686@plc2.org keys: [3686] sites: []
+3692 1 user2-1687@plc2.org keys: [3687] sites: []
+3693 1 user2-1688@plc2.org keys: [3688] sites: []
+3694 1 user2-1689@plc2.org keys: [3689] sites: []
+3695 1 user2-1690@plc2.org keys: [3690] sites: []
+3696 1 user2-1691@plc2.org keys: [3691] sites: []
+3697 1 user2-1692@plc2.org keys: [3692] sites: []
+3698 1 user2-1693@plc2.org keys: [3693] sites: []
+3699 1 user2-1694@plc2.org keys: [3694] sites: []
+3700 1 user2-1695@plc2.org keys: [3695] sites: []
+3701 1 user2-1696@plc2.org keys: [3696] sites: []
+3702 1 user2-1697@plc2.org keys: [3697] sites: []
+3703 1 user2-1698@plc2.org keys: [3698] sites: []
+3704 1 user2-1699@plc2.org keys: [3699] sites: []
+3705 1 user2-1700@plc2.org keys: [3700] sites: []
+3706 1 user2-1701@plc2.org keys: [3701] sites: []
+3707 1 user2-1702@plc2.org keys: [3702] sites: []
+3708 1 user2-1703@plc2.org keys: [3703] sites: []
+3709 1 user2-1704@plc2.org keys: [3704] sites: []
+3710 1 user2-1705@plc2.org keys: [3705] sites: []
+3711 1 user2-1706@plc2.org keys: [3706] sites: []
+3712 1 user2-1707@plc2.org keys: [3707] sites: []
+3713 1 user2-1708@plc2.org keys: [3708] sites: []
+3714 1 user2-1709@plc2.org keys: [3709] sites: []
+3715 1 user2-1710@plc2.org keys: [3710] sites: []
+3716 1 user2-1711@plc2.org keys: [3711] sites: []
+3717 1 user2-1712@plc2.org keys: [3712] sites: []
+3718 1 user2-1713@plc2.org keys: [3713] sites: []
+3719 1 user2-1714@plc2.org keys: [3714] sites: []
+3720 1 user2-1715@plc2.org keys: [3715] sites: []
+3721 1 user2-1716@plc2.org keys: [3716] sites: []
+3722 1 user2-1717@plc2.org keys: [3717] sites: []
+3723 1 user2-1718@plc2.org keys: [3718] sites: []
+3724 1 user2-1719@plc2.org keys: [3719] sites: []
+3725 1 user2-1720@plc2.org keys: [3720] sites: []
+3726 1 user2-1721@plc2.org keys: [3721] sites: []
+3727 1 user2-1722@plc2.org keys: [3722] sites: []
+3728 1 user2-1723@plc2.org keys: [3723] sites: []
+3729 1 user2-1724@plc2.org keys: [3724] sites: []
+3730 1 user2-1725@plc2.org keys: [3725] sites: []
+3731 1 user2-1726@plc2.org keys: [3726] sites: []
+3732 1 user2-1727@plc2.org keys: [3727] sites: []
+3733 1 user2-1728@plc2.org keys: [3728] sites: []
+3734 1 user2-1729@plc2.org keys: [3729] sites: []
+3735 1 user2-1730@plc2.org keys: [3730] sites: []
+3736 1 user2-1731@plc2.org keys: [3731] sites: []
+3737 1 user2-1732@plc2.org keys: [3732] sites: []
+3738 1 user2-1733@plc2.org keys: [3733] sites: []
+3739 1 user2-1734@plc2.org keys: [3734] sites: []
+3740 1 user2-1735@plc2.org keys: [3735] sites: []
+3741 1 user2-1736@plc2.org keys: [3736] sites: []
+3742 1 user2-1737@plc2.org keys: [3737] sites: []
+3743 1 user2-1738@plc2.org keys: [3738] sites: []
+3744 1 user2-1739@plc2.org keys: [3739] sites: []
+3745 1 user2-1740@plc2.org keys: [3740] sites: []
+3746 1 user2-1741@plc2.org keys: [3741] sites: []
+3747 1 user2-1742@plc2.org keys: [3742] sites: []
+3748 1 user2-1743@plc2.org keys: [3743] sites: []
+3749 1 user2-1744@plc2.org keys: [3744] sites: []
+3750 1 user2-1745@plc2.org keys: [3745] sites: []
+3751 1 user2-1746@plc2.org keys: [3746] sites: []
+3752 1 user2-1747@plc2.org keys: [3747] sites: []
+3753 1 user2-1748@plc2.org keys: [3748] sites: []
+3754 1 user2-1749@plc2.org keys: [3749] sites: []
+3755 1 user2-1750@plc2.org keys: [3750] sites: []
+3756 1 user2-1751@plc2.org keys: [3751] sites: []
+3757 1 user2-1752@plc2.org keys: [3752] sites: []
+3758 1 user2-1753@plc2.org keys: [3753] sites: []
+3759 1 user2-1754@plc2.org keys: [3754] sites: []
+3760 1 user2-1755@plc2.org keys: [3755] sites: []
+3761 1 user2-1756@plc2.org keys: [3756] sites: []
+3762 1 user2-1757@plc2.org keys: [3757] sites: []
+3763 1 user2-1758@plc2.org keys: [3758] sites: []
+3764 1 user2-1759@plc2.org keys: [3759] sites: []
+3765 1 user2-1760@plc2.org keys: [3760] sites: []
+3766 1 user2-1761@plc2.org keys: [3761] sites: []
+3767 1 user2-1762@plc2.org keys: [3762] sites: []
+3768 1 user2-1763@plc2.org keys: [3763] sites: []
+3769 1 user2-1764@plc2.org keys: [3764] sites: []
+3770 1 user2-1765@plc2.org keys: [3765] sites: []
+3771 1 user2-1766@plc2.org keys: [3766] sites: []
+3772 1 user2-1767@plc2.org keys: [3767] sites: []
+3773 1 user2-1768@plc2.org keys: [3768] sites: []
+3774 1 user2-1769@plc2.org keys: [3769] sites: []
+3775 1 user2-1770@plc2.org keys: [3770] sites: []
+3776 1 user2-1771@plc2.org keys: [3771] sites: []
+3777 1 user2-1772@plc2.org keys: [3772] sites: []
+3778 1 user2-1773@plc2.org keys: [3773] sites: []
+3779 1 user2-1774@plc2.org keys: [3774] sites: []
+3780 1 user2-1775@plc2.org keys: [3775] sites: []
+3781 1 user2-1776@plc2.org keys: [3776] sites: []
+3782 1 user2-1777@plc2.org keys: [3777] sites: []
+3783 1 user2-1778@plc2.org keys: [3778] sites: []
+3784 1 user2-1779@plc2.org keys: [3779] sites: []
+3785 1 user2-1780@plc2.org keys: [3780] sites: []
+3786 1 user2-1781@plc2.org keys: [3781] sites: []
+3787 1 user2-1782@plc2.org keys: [3782] sites: []
+3788 1 user2-1783@plc2.org keys: [3783] sites: []
+3789 1 user2-1784@plc2.org keys: [3784] sites: []
+3790 1 user2-1785@plc2.org keys: [3785] sites: []
+3791 1 user2-1786@plc2.org keys: [3786] sites: []
+3792 1 user2-1787@plc2.org keys: [3787] sites: []
+3793 1 user2-1788@plc2.org keys: [3788] sites: []
+3794 1 user2-1789@plc2.org keys: [3789] sites: []
+3795 1 user2-1790@plc2.org keys: [3790] sites: []
+3796 1 user2-1791@plc2.org keys: [3791] sites: []
+3797 1 user2-1792@plc2.org keys: [3792] sites: []
+3798 1 user2-1793@plc2.org keys: [3793] sites: []
+3799 1 user2-1794@plc2.org keys: [3794] sites: []
+3800 1 user2-1795@plc2.org keys: [3795] sites: []
+3801 1 user2-1796@plc2.org keys: [3796] sites: []
+3802 1 user2-1797@plc2.org keys: [3797] sites: []
+3803 1 user2-1798@plc2.org keys: [3798] sites: []
+3804 1 user2-1799@plc2.org keys: [3799] sites: []
+3805 1 user2-1800@plc2.org keys: [3800] sites: []
+3806 1 user2-1801@plc2.org keys: [3801] sites: []
+3807 1 user2-1802@plc2.org keys: [3802] sites: []
+3808 1 user2-1803@plc2.org keys: [3803] sites: []
+3809 1 user2-1804@plc2.org keys: [3804] sites: []
+3810 1 user2-1805@plc2.org keys: [3805] sites: []
+3811 1 user2-1806@plc2.org keys: [3806] sites: []
+3812 1 user2-1807@plc2.org keys: [3807] sites: []
+3813 1 user2-1808@plc2.org keys: [3808] sites: []
+3814 1 user2-1809@plc2.org keys: [3809] sites: []
+3815 1 user2-1810@plc2.org keys: [3810] sites: []
+3816 1 user2-1811@plc2.org keys: [3811] sites: []
+3817 1 user2-1812@plc2.org keys: [3812] sites: []
+3818 1 user2-1813@plc2.org keys: [3813] sites: []
+3819 1 user2-1814@plc2.org keys: [3814] sites: []
+3820 1 user2-1815@plc2.org keys: [3815] sites: []
+3821 1 user2-1816@plc2.org keys: [3816] sites: []
+3822 1 user2-1817@plc2.org keys: [3817] sites: []
+3823 1 user2-1818@plc2.org keys: [3818] sites: []
+3824 1 user2-1819@plc2.org keys: [3819] sites: []
+3825 1 user2-1820@plc2.org keys: [3820] sites: []
+3826 1 user2-1821@plc2.org keys: [3821] sites: []
+3827 1 user2-1822@plc2.org keys: [3822] sites: []
+3828 1 user2-1823@plc2.org keys: [3823] sites: []
+3829 1 user2-1824@plc2.org keys: [3824] sites: []
+3830 1 user2-1825@plc2.org keys: [3825] sites: []
+3831 1 user2-1826@plc2.org keys: [3826] sites: []
+3832 1 user2-1827@plc2.org keys: [3827] sites: []
+3833 1 user2-1828@plc2.org keys: [3828] sites: []
+3834 1 user2-1829@plc2.org keys: [3829] sites: []
+3835 1 user2-1830@plc2.org keys: [3830] sites: []
+3836 1 user2-1831@plc2.org keys: [3831] sites: []
+3837 1 user2-1832@plc2.org keys: [3832] sites: []
+3838 1 user2-1833@plc2.org keys: [3833] sites: []
+3839 1 user2-1834@plc2.org keys: [3834] sites: []
+3840 1 user2-1835@plc2.org keys: [3835] sites: []
+3841 1 user2-1836@plc2.org keys: [3836] sites: []
+3842 1 user2-1837@plc2.org keys: [3837] sites: []
+3843 1 user2-1838@plc2.org keys: [3838] sites: []
+3844 1 user2-1839@plc2.org keys: [3839] sites: []
+3845 1 user2-1840@plc2.org keys: [3840] sites: []
+3846 1 user2-1841@plc2.org keys: [3841] sites: []
+3847 1 user2-1842@plc2.org keys: [3842] sites: []
+3848 1 user2-1843@plc2.org keys: [3843] sites: []
+3849 1 user2-1844@plc2.org keys: [3844] sites: []
+3850 1 user2-1845@plc2.org keys: [3845] sites: []
+3851 1 user2-1846@plc2.org keys: [3846] sites: []
+3852 1 user2-1847@plc2.org keys: [3847] sites: []
+3853 1 user2-1848@plc2.org keys: [3848] sites: []
+3854 1 user2-1849@plc2.org keys: [3849] sites: []
+3855 1 user2-1850@plc2.org keys: [3850] sites: []
+3856 1 user2-1851@plc2.org keys: [3851] sites: []
+3857 1 user2-1852@plc2.org keys: [3852] sites: []
+3858 1 user2-1853@plc2.org keys: [3853] sites: []
+3859 1 user2-1854@plc2.org keys: [3854] sites: []
+3860 1 user2-1855@plc2.org keys: [3855] sites: []
+3861 1 user2-1856@plc2.org keys: [3856] sites: []
+3862 1 user2-1857@plc2.org keys: [3857] sites: []
+3863 1 user2-1858@plc2.org keys: [3858] sites: []
+3864 1 user2-1859@plc2.org keys: [3859] sites: []
+3865 1 user2-1860@plc2.org keys: [3860] sites: []
+3866 1 user2-1861@plc2.org keys: [3861] sites: []
+3867 1 user2-1862@plc2.org keys: [3862] sites: []
+3868 1 user2-1863@plc2.org keys: [3863] sites: []
+3869 1 user2-1864@plc2.org keys: [3864] sites: []
+3870 1 user2-1865@plc2.org keys: [3865] sites: []
+3871 1 user2-1866@plc2.org keys: [3866] sites: []
+3872 1 user2-1867@plc2.org keys: [3867] sites: []
+3873 1 user2-1868@plc2.org keys: [3868] sites: []
+3874 1 user2-1869@plc2.org keys: [3869] sites: []
+3875 1 user2-1870@plc2.org keys: [3870] sites: []
+3876 1 user2-1871@plc2.org keys: [3871] sites: []
+3877 1 user2-1872@plc2.org keys: [3872] sites: []
+3878 1 user2-1873@plc2.org keys: [3873] sites: []
+3879 1 user2-1874@plc2.org keys: [3874] sites: []
+3880 1 user2-1875@plc2.org keys: [3875] sites: []
+3881 1 user2-1876@plc2.org keys: [3876] sites: []
+3882 1 user2-1877@plc2.org keys: [3877] sites: []
+3883 1 user2-1878@plc2.org keys: [3878] sites: []
+3884 1 user2-1879@plc2.org keys: [3879] sites: []
+3885 1 user2-1880@plc2.org keys: [3880] sites: []
+3886 1 user2-1881@plc2.org keys: [3881] sites: []
+3887 1 user2-1882@plc2.org keys: [3882] sites: []
+3888 1 user2-1883@plc2.org keys: [3883] sites: []
+3889 1 user2-1884@plc2.org keys: [3884] sites: []
+3890 1 user2-1885@plc2.org keys: [3885] sites: []
+3891 1 user2-1886@plc2.org keys: [3886] sites: []
+3892 1 user2-1887@plc2.org keys: [3887] sites: []
+3893 1 user2-1888@plc2.org keys: [3888] sites: []
+3894 1 user2-1889@plc2.org keys: [3889] sites: []
+3895 1 user2-1890@plc2.org keys: [3890] sites: []
+3896 1 user2-1891@plc2.org keys: [3891] sites: []
+3897 1 user2-1892@plc2.org keys: [3892] sites: []
+3898 1 user2-1893@plc2.org keys: [3893] sites: []
+3899 1 user2-1894@plc2.org keys: [3894] sites: []
+3900 1 user2-1895@plc2.org keys: [3895] sites: []
+3901 1 user2-1896@plc2.org keys: [3896] sites: []
+3902 1 user2-1897@plc2.org keys: [3897] sites: []
+3903 1 user2-1898@plc2.org keys: [3898] sites: []
+3904 1 user2-1899@plc2.org keys: [3899] sites: []
+3905 1 user2-1900@plc2.org keys: [3900] sites: []
+3906 1 user2-1901@plc2.org keys: [3901] sites: []
+3907 1 user2-1902@plc2.org keys: [3902] sites: []
+3908 1 user2-1903@plc2.org keys: [3903] sites: []
+3909 1 user2-1904@plc2.org keys: [3904] sites: []
+3910 1 user2-1905@plc2.org keys: [3905] sites: []
+3911 1 user2-1906@plc2.org keys: [3906] sites: []
+3912 1 user2-1907@plc2.org keys: [3907] sites: []
+3913 1 user2-1908@plc2.org keys: [3908] sites: []
+3914 1 user2-1909@plc2.org keys: [3909] sites: []
+3915 1 user2-1910@plc2.org keys: [3910] sites: []
+3916 1 user2-1911@plc2.org keys: [3911] sites: []
+3917 1 user2-1912@plc2.org keys: [3912] sites: []
+3918 1 user2-1913@plc2.org keys: [3913] sites: []
+3919 1 user2-1914@plc2.org keys: [3914] sites: []
+3920 1 user2-1915@plc2.org keys: [3915] sites: []
+3921 1 user2-1916@plc2.org keys: [3916] sites: []
+3922 1 user2-1917@plc2.org keys: [3917] sites: []
+3923 1 user2-1918@plc2.org keys: [3918] sites: []
+3924 1 user2-1919@plc2.org keys: [3919] sites: []
+3925 1 user2-1920@plc2.org keys: [3920] sites: []
+3926 1 user2-1921@plc2.org keys: [3921] sites: []
+3927 1 user2-1922@plc2.org keys: [3922] sites: []
+3928 1 user2-1923@plc2.org keys: [3923] sites: []
+3929 1 user2-1924@plc2.org keys: [3924] sites: []
+3930 1 user2-1925@plc2.org keys: [3925] sites: []
+3931 1 user2-1926@plc2.org keys: [3926] sites: []
+3932 1 user2-1927@plc2.org keys: [3927] sites: []
+3933 1 user2-1928@plc2.org keys: [3928] sites: []
+3934 1 user2-1929@plc2.org keys: [3929] sites: []
+3935 1 user2-1930@plc2.org keys: [3930] sites: []
+3936 1 user2-1931@plc2.org keys: [3931] sites: []
+3937 1 user2-1932@plc2.org keys: [3932] sites: []
+3938 1 user2-1933@plc2.org keys: [3933] sites: []
+3939 1 user2-1934@plc2.org keys: [3934] sites: []
+3940 1 user2-1935@plc2.org keys: [3935] sites: []
+3941 1 user2-1936@plc2.org keys: [3936] sites: []
+3942 1 user2-1937@plc2.org keys: [3937] sites: []
+3943 1 user2-1938@plc2.org keys: [3938] sites: []
+3944 1 user2-1939@plc2.org keys: [3939] sites: []
+3945 1 user2-1940@plc2.org keys: [3940] sites: []
+3946 1 user2-1941@plc2.org keys: [3941] sites: []
+3947 1 user2-1942@plc2.org keys: [3942] sites: []
+3948 1 user2-1943@plc2.org keys: [3943] sites: []
+3949 1 user2-1944@plc2.org keys: [3944] sites: []
+3950 1 user2-1945@plc2.org keys: [3945] sites: []
+3951 1 user2-1946@plc2.org keys: [3946] sites: []
+3952 1 user2-1947@plc2.org keys: [3947] sites: []
+3953 1 user2-1948@plc2.org keys: [3948] sites: []
+3954 1 user2-1949@plc2.org keys: [3949] sites: []
+3955 1 user2-1950@plc2.org keys: [3950] sites: []
+3956 1 user2-1951@plc2.org keys: [3951] sites: []
+3957 1 user2-1952@plc2.org keys: [3952] sites: []
+3958 1 user2-1953@plc2.org keys: [3953] sites: []
+3959 1 user2-1954@plc2.org keys: [3954] sites: []
+3960 1 user2-1955@plc2.org keys: [3955] sites: []
+3961 1 user2-1956@plc2.org keys: [3956] sites: []
+3962 1 user2-1957@plc2.org keys: [3957] sites: []
+3963 1 user2-1958@plc2.org keys: [3958] sites: []
+3964 1 user2-1959@plc2.org keys: [3959] sites: []
+3965 1 user2-1960@plc2.org keys: [3960] sites: []
+3966 1 user2-1961@plc2.org keys: [3961] sites: []
+3967 1 user2-1962@plc2.org keys: [3962] sites: []
+3968 1 user2-1963@plc2.org keys: [3963] sites: []
+3969 1 user2-1964@plc2.org keys: [3964] sites: []
+3970 1 user2-1965@plc2.org keys: [3965] sites: []
+3971 1 user2-1966@plc2.org keys: [3966] sites: []
+3972 1 user2-1967@plc2.org keys: [3967] sites: []
+3973 1 user2-1968@plc2.org keys: [3968] sites: []
+3974 1 user2-1969@plc2.org keys: [3969] sites: []
+3975 1 user2-1970@plc2.org keys: [3970] sites: []
+3976 1 user2-1971@plc2.org keys: [3971] sites: []
+3977 1 user2-1972@plc2.org keys: [3972] sites: []
+3978 1 user2-1973@plc2.org keys: [3973] sites: []
+3979 1 user2-1974@plc2.org keys: [3974] sites: []
+3980 1 user2-1975@plc2.org keys: [3975] sites: []
+3981 1 user2-1976@plc2.org keys: [3976] sites: []
+3982 1 user2-1977@plc2.org keys: [3977] sites: []
+3983 1 user2-1978@plc2.org keys: [3978] sites: []
+3984 1 user2-1979@plc2.org keys: [3979] sites: []
+3985 1 user2-1980@plc2.org keys: [3980] sites: []
+3986 1 user2-1981@plc2.org keys: [3981] sites: []
+3987 1 user2-1982@plc2.org keys: [3982] sites: []
+3988 1 user2-1983@plc2.org keys: [3983] sites: []
+3989 1 user2-1984@plc2.org keys: [3984] sites: []
+3990 1 user2-1985@plc2.org keys: [3985] sites: []
+3991 1 user2-1986@plc2.org keys: [3986] sites: []
+3992 1 user2-1987@plc2.org keys: [3987] sites: []
+3993 1 user2-1988@plc2.org keys: [3988] sites: []
+3994 1 user2-1989@plc2.org keys: [3989] sites: []
+3995 1 user2-1990@plc2.org keys: [3990] sites: []
+3996 1 user2-1991@plc2.org keys: [3991] sites: []
+3997 1 user2-1992@plc2.org keys: [3992] sites: []
+3998 1 user2-1993@plc2.org keys: [3993] sites: []
+3999 1 user2-1994@plc2.org keys: [3994] sites: []
+4000 1 user2-1995@plc2.org keys: [3995] sites: []
+4001 1 user2-1996@plc2.org keys: [3996] sites: []
+4002 1 user2-1997@plc2.org keys: [3997] sites: []
+4003 1 user2-1998@plc2.org keys: [3998] sites: []
+4004 1 user2-1999@plc2.org keys: [3999] sites: []
+4005 1 user2-2000@plc2.org keys: [4000] sites: []
+01: NODES
+1 None n1-001.plc1.org sls= [2] site= 2
+2 None n1-002.plc1.org sls= [2, 3] site= 3
+3 None n1-003.plc1.org sls= [2, 3, 4] site= 4
+4 None n1-004.plc1.org sls= [3, 4, 5] site= 5
+5 None n1-005.plc1.org sls= [4, 5, 6] site= 6
+6 None n1-006.plc1.org sls= [5, 6, 7] site= 7
+7 None n1-007.plc1.org sls= [6, 7, 8] site= 8
+8 None n1-008.plc1.org sls= [7, 8, 9] site= 9
+9 None n1-009.plc1.org sls= [8, 9, 10] site= 10
+10 None n1-010.plc1.org sls= [9, 10, 11] site= 11
+11 None n1-011.plc1.org sls= [10, 11, 12] site= 12
+12 None n1-012.plc1.org sls= [11, 12, 13] site= 13
+13 None n1-013.plc1.org sls= [12, 13, 14] site= 14
+14 None n1-014.plc1.org sls= [13, 14, 15] site= 15
+15 None n1-015.plc1.org sls= [14, 15, 16] site= 16
+16 None n1-016.plc1.org sls= [15, 16, 17] site= 17
+17 None n1-017.plc1.org sls= [16, 17, 18] site= 18
+18 None n1-018.plc1.org sls= [17, 18, 19] site= 19
+19 None n1-019.plc1.org sls= [18, 19, 20] site= 20
+20 None n1-020.plc1.org sls= [19, 20, 21] site= 21
+21 None n1-021.plc1.org sls= [20, 21, 22] site= 22
+22 None n1-022.plc1.org sls= [21, 22, 23] site= 23
+23 None n1-023.plc1.org sls= [22, 23, 24] site= 24
+24 None n1-024.plc1.org sls= [23, 24, 25] site= 25
+25 None n1-025.plc1.org sls= [24, 25, 26] site= 26
+26 None n1-026.plc1.org sls= [25, 26, 27] site= 27
+27 None n1-027.plc1.org sls= [26, 27, 28] site= 28
+28 None n1-028.plc1.org sls= [27, 28, 29] site= 29
+29 None n1-029.plc1.org sls= [28, 29, 30] site= 30
+30 None n1-030.plc1.org sls= [29, 30, 31] site= 31
+31 None n1-031.plc1.org sls= [30, 31, 32] site= 32
+32 None n1-032.plc1.org sls= [31, 32, 33] site= 33
+33 None n1-033.plc1.org sls= [32, 33, 34] site= 34
+34 None n1-034.plc1.org sls= [33, 34, 35] site= 35
+35 None n1-035.plc1.org sls= [34, 35, 36] site= 36
+36 None n1-036.plc1.org sls= [35, 36, 37] site= 37
+37 None n1-037.plc1.org sls= [36, 37, 38] site= 38
+38 None n1-038.plc1.org sls= [37, 38, 39] site= 39
+39 None n1-039.plc1.org sls= [38, 39, 40] site= 40
+40 None n1-040.plc1.org sls= [39, 40, 41] site= 41
+41 None n1-041.plc1.org sls= [40, 41, 42] site= 42
+42 None n1-042.plc1.org sls= [41, 42, 43] site= 43
+43 None n1-043.plc1.org sls= [42, 43, 44] site= 44
+44 None n1-044.plc1.org sls= [43, 44, 45] site= 45
+45 None n1-045.plc1.org sls= [44, 45, 46] site= 46
+46 None n1-046.plc1.org sls= [45, 46, 47] site= 47
+47 None n1-047.plc1.org sls= [46, 47, 48] site= 48
+48 None n1-048.plc1.org sls= [47, 48, 49] site= 49
+49 None n1-049.plc1.org sls= [48, 49, 50] site= 50
+50 None n1-050.plc1.org sls= [49, 50, 51] site= 51
+51 None n1-051.plc1.org sls= [50, 51, 52] site= 52
+52 None n1-052.plc1.org sls= [51, 52, 53] site= 53
+53 None n1-053.plc1.org sls= [52, 53, 54] site= 54
+54 None n1-054.plc1.org sls= [53, 54, 55] site= 55
+55 None n1-055.plc1.org sls= [54, 55, 56] site= 56
+56 None n1-056.plc1.org sls= [55, 56, 57] site= 57
+57 None n1-057.plc1.org sls= [56, 57, 58] site= 58
+58 None n1-058.plc1.org sls= [57, 58, 59] site= 59
+59 None n1-059.plc1.org sls= [58, 59, 60] site= 60
+60 None n1-060.plc1.org sls= [59, 60, 61] site= 61
+61 None n1-061.plc1.org sls= [60, 61, 62] site= 62
+62 None n1-062.plc1.org sls= [61, 62, 63] site= 63
+63 None n1-063.plc1.org sls= [62, 63, 64] site= 64
+64 None n1-064.plc1.org sls= [63, 64, 65] site= 65
+65 None n1-065.plc1.org sls= [64, 65, 66] site= 66
+66 None n1-066.plc1.org sls= [65, 66, 67] site= 67
+67 None n1-067.plc1.org sls= [66, 67, 68] site= 68
+68 None n1-068.plc1.org sls= [67, 68, 69] site= 69
+69 None n1-069.plc1.org sls= [68, 69, 70] site= 70
+70 None n1-070.plc1.org sls= [69, 70, 71] site= 71
+71 None n1-071.plc1.org sls= [70, 71, 72] site= 72
+72 None n1-072.plc1.org sls= [71, 72, 73] site= 73
+73 None n1-073.plc1.org sls= [72, 73, 74] site= 74
+74 None n1-074.plc1.org sls= [73, 74, 75] site= 75
+75 None n1-075.plc1.org sls= [74, 75, 76] site= 76
+76 None n1-076.plc1.org sls= [75, 76, 77] site= 77
+77 None n1-077.plc1.org sls= [76, 77, 78] site= 78
+78 None n1-078.plc1.org sls= [77, 78, 79] site= 79
+79 None n1-079.plc1.org sls= [78, 79, 80] site= 80
+80 None n1-080.plc1.org sls= [79, 80, 81] site= 81
+81 None n1-081.plc1.org sls= [80, 81, 82] site= 82
+82 None n1-082.plc1.org sls= [81, 82, 83] site= 83
+83 None n1-083.plc1.org sls= [82, 83, 84] site= 84
+84 None n1-084.plc1.org sls= [83, 84, 85] site= 85
+85 None n1-085.plc1.org sls= [84, 85, 86] site= 86
+86 None n1-086.plc1.org sls= [85, 86, 87] site= 87
+87 None n1-087.plc1.org sls= [86, 87, 88] site= 88
+88 None n1-088.plc1.org sls= [87, 88, 89] site= 89
+89 None n1-089.plc1.org sls= [88, 89, 90] site= 90
+90 None n1-090.plc1.org sls= [89, 90, 91] site= 91
+91 None n1-091.plc1.org sls= [90, 91, 92] site= 92
+92 None n1-092.plc1.org sls= [91, 92, 93] site= 93
+93 None n1-093.plc1.org sls= [92, 93, 94] site= 94
+94 None n1-094.plc1.org sls= [93, 94, 95] site= 95
+95 None n1-095.plc1.org sls= [94, 95, 96] site= 96
+96 None n1-096.plc1.org sls= [95, 96, 97] site= 97
+97 None n1-097.plc1.org sls= [96, 97, 98] site= 98
+98 None n1-098.plc1.org sls= [97, 98, 99] site= 99
+99 None n1-099.plc1.org sls= [98, 99, 100] site= 100
+100 None n1-100.plc1.org sls= [99, 100, 101] site= 101
+101 None n1-101.plc1.org sls= [100, 101, 102] site= 102
+102 None n1-102.plc1.org sls= [101, 102, 103] site= 103
+103 None n1-103.plc1.org sls= [102, 103, 104] site= 104
+104 None n1-104.plc1.org sls= [103, 104, 105] site= 105
+105 None n1-105.plc1.org sls= [104, 105, 106] site= 106
+106 None n1-106.plc1.org sls= [105, 106, 107] site= 107
+107 None n1-107.plc1.org sls= [106, 107, 108] site= 108
+108 None n1-108.plc1.org sls= [107, 108, 109] site= 109
+109 None n1-109.plc1.org sls= [108, 109, 110] site= 110
+110 None n1-110.plc1.org sls= [109, 110, 111] site= 111
+111 None n1-111.plc1.org sls= [110, 111, 112] site= 112
+112 None n1-112.plc1.org sls= [111, 112, 113] site= 113
+113 None n1-113.plc1.org sls= [112, 113, 114] site= 114
+114 None n1-114.plc1.org sls= [113, 114, 115] site= 115
+115 None n1-115.plc1.org sls= [114, 115, 116] site= 116
+116 None n1-116.plc1.org sls= [115, 116, 117] site= 117
+117 None n1-117.plc1.org sls= [116, 117, 118] site= 118
+118 None n1-118.plc1.org sls= [117, 118, 119] site= 119
+119 None n1-119.plc1.org sls= [118, 119, 120] site= 120
+120 None n1-120.plc1.org sls= [119, 120, 121] site= 121
+121 None n1-121.plc1.org sls= [120, 121, 122] site= 122
+122 None n1-122.plc1.org sls= [121, 122, 123] site= 123
+123 None n1-123.plc1.org sls= [122, 123, 124] site= 124
+124 None n1-124.plc1.org sls= [123, 124, 125] site= 125
+125 None n1-125.plc1.org sls= [124, 125, 126] site= 126
+126 None n1-126.plc1.org sls= [125, 126, 127] site= 127
+127 None n1-127.plc1.org sls= [126, 127, 128] site= 128
+128 None n1-128.plc1.org sls= [127, 128, 129] site= 129
+129 None n1-129.plc1.org sls= [128, 129, 130] site= 130
+130 None n1-130.plc1.org sls= [129, 130, 131] site= 131
+131 None n1-131.plc1.org sls= [130, 131, 132] site= 132
+132 None n1-132.plc1.org sls= [131, 132, 133] site= 133
+133 None n1-133.plc1.org sls= [132, 133, 134] site= 134
+134 None n1-134.plc1.org sls= [133, 134, 135] site= 135
+135 None n1-135.plc1.org sls= [134, 135, 136] site= 136
+136 None n1-136.plc1.org sls= [135, 136, 137] site= 137
+137 None n1-137.plc1.org sls= [136, 137, 138] site= 138
+138 None n1-138.plc1.org sls= [137, 138, 139] site= 139
+139 None n1-139.plc1.org sls= [138, 139, 140] site= 140
+140 None n1-140.plc1.org sls= [139, 140, 141] site= 141
+141 None n1-141.plc1.org sls= [140, 141, 142] site= 142
+142 None n1-142.plc1.org sls= [141, 142, 143] site= 143
+143 None n1-143.plc1.org sls= [142, 143, 144] site= 144
+144 None n1-144.plc1.org sls= [143, 144, 145] site= 145
+145 None n1-145.plc1.org sls= [144, 145, 146] site= 146
+146 None n1-146.plc1.org sls= [145, 146, 147] site= 147
+147 None n1-147.plc1.org sls= [146, 147, 148] site= 148
+148 None n1-148.plc1.org sls= [147, 148, 149] site= 149
+149 None n1-149.plc1.org sls= [148, 149, 150] site= 150
+150 None n1-150.plc1.org sls= [149, 150, 151] site= 151
+151 None n1-151.plc1.org sls= [150, 151, 152] site= 152
+152 None n1-152.plc1.org sls= [151, 152, 153] site= 153
+153 None n1-153.plc1.org sls= [152, 153, 154] site= 154
+154 None n1-154.plc1.org sls= [153, 154, 155] site= 155
+155 None n1-155.plc1.org sls= [154, 155, 156] site= 156
+156 None n1-156.plc1.org sls= [155, 156, 157] site= 157
+157 None n1-157.plc1.org sls= [156, 157, 158] site= 158
+158 None n1-158.plc1.org sls= [157, 158, 159] site= 159
+159 None n1-159.plc1.org sls= [158, 159, 160] site= 160
+160 None n1-160.plc1.org sls= [159, 160, 161] site= 161
+161 None n1-161.plc1.org sls= [160, 161, 162] site= 162
+162 None n1-162.plc1.org sls= [161, 162, 163] site= 163
+163 None n1-163.plc1.org sls= [162, 163, 164] site= 164
+164 None n1-164.plc1.org sls= [163, 164, 165] site= 165
+165 None n1-165.plc1.org sls= [164, 165, 166] site= 166
+166 None n1-166.plc1.org sls= [165, 166, 167] site= 167
+167 None n1-167.plc1.org sls= [166, 167, 168] site= 168
+168 None n1-168.plc1.org sls= [167, 168, 169] site= 169
+169 None n1-169.plc1.org sls= [168, 169, 170] site= 170
+170 None n1-170.plc1.org sls= [169, 170, 171] site= 171
+171 None n1-171.plc1.org sls= [170, 171, 172] site= 172
+172 None n1-172.plc1.org sls= [171, 172, 173] site= 173
+173 None n1-173.plc1.org sls= [172, 173, 174] site= 174
+174 None n1-174.plc1.org sls= [173, 174, 175] site= 175
+175 None n1-175.plc1.org sls= [174, 175, 176] site= 176
+176 None n1-176.plc1.org sls= [175, 176, 177] site= 177
+177 None n1-177.plc1.org sls= [176, 177, 178] site= 178
+178 None n1-178.plc1.org sls= [177, 178, 179] site= 179
+179 None n1-179.plc1.org sls= [178, 179, 180] site= 180
+180 None n1-180.plc1.org sls= [179, 180, 181] site= 181
+181 None n1-181.plc1.org sls= [180, 181, 182] site= 182
+182 None n1-182.plc1.org sls= [181, 182, 183] site= 183
+183 None n1-183.plc1.org sls= [182, 183, 184] site= 184
+184 None n1-184.plc1.org sls= [183, 184, 185] site= 185
+185 None n1-185.plc1.org sls= [184, 185, 186] site= 186
+186 None n1-186.plc1.org sls= [185, 186, 187] site= 187
+187 None n1-187.plc1.org sls= [186, 187, 188] site= 188
+188 None n1-188.plc1.org sls= [187, 188, 189] site= 189
+189 None n1-189.plc1.org sls= [188, 189, 190] site= 190
+190 None n1-190.plc1.org sls= [189, 190, 191] site= 191
+191 None n1-191.plc1.org sls= [190, 191, 192] site= 192
+192 None n1-192.plc1.org sls= [191, 192, 193] site= 193
+193 None n1-193.plc1.org sls= [192, 193, 194] site= 194
+194 None n1-194.plc1.org sls= [193, 194, 195] site= 195
+195 None n1-195.plc1.org sls= [194, 195, 196] site= 196
+196 None n1-196.plc1.org sls= [195, 196, 197] site= 197
+197 None n1-197.plc1.org sls= [196, 197, 198] site= 198
+198 None n1-198.plc1.org sls= [197, 198, 199] site= 199
+199 None n1-199.plc1.org sls= [198, 199, 200] site= 200
+200 None n1-200.plc1.org sls= [199, 200, 201] site= 201
+201 None n1-201.plc1.org sls= [200, 201, 202] site= 202
+202 None n1-202.plc1.org sls= [201, 202, 203] site= 203
+203 None n1-203.plc1.org sls= [202, 203, 204] site= 204
+204 None n1-204.plc1.org sls= [203, 204, 205] site= 205
+205 None n1-205.plc1.org sls= [204, 205, 206] site= 206
+206 None n1-206.plc1.org sls= [205, 206, 207] site= 207
+207 None n1-207.plc1.org sls= [206, 207, 208] site= 208
+208 None n1-208.plc1.org sls= [207, 208, 209] site= 209
+209 None n1-209.plc1.org sls= [208, 209, 210] site= 210
+210 None n1-210.plc1.org sls= [209, 210, 211] site= 211
+211 None n1-211.plc1.org sls= [210, 211, 212] site= 212
+212 None n1-212.plc1.org sls= [211, 212, 213] site= 213
+213 None n1-213.plc1.org sls= [212, 213, 214] site= 214
+214 None n1-214.plc1.org sls= [213, 214, 215] site= 215
+215 None n1-215.plc1.org sls= [214, 215, 216] site= 216
+216 None n1-216.plc1.org sls= [215, 216, 217] site= 217
+217 None n1-217.plc1.org sls= [216, 217, 218] site= 218
+218 None n1-218.plc1.org sls= [217, 218, 219] site= 219
+219 None n1-219.plc1.org sls= [218, 219, 220] site= 220
+220 None n1-220.plc1.org sls= [219, 220, 221] site= 221
+221 None n1-221.plc1.org sls= [220, 221, 222] site= 222
+222 None n1-222.plc1.org sls= [221, 222, 223] site= 223
+223 None n1-223.plc1.org sls= [222, 223, 224] site= 224
+224 None n1-224.plc1.org sls= [223, 224, 225] site= 225
+225 None n1-225.plc1.org sls= [224, 225, 226] site= 226
+226 None n1-226.plc1.org sls= [225, 226, 227] site= 227
+227 None n1-227.plc1.org sls= [226, 227, 228] site= 228
+228 None n1-228.plc1.org sls= [227, 228, 229] site= 229
+229 None n1-229.plc1.org sls= [228, 229, 230] site= 230
+230 None n1-230.plc1.org sls= [229, 230, 231] site= 231
+231 None n1-231.plc1.org sls= [230, 231, 232] site= 232
+232 None n1-232.plc1.org sls= [231, 232, 233] site= 233
+233 None n1-233.plc1.org sls= [232, 233, 234] site= 234
+234 None n1-234.plc1.org sls= [233, 234, 235] site= 235
+235 None n1-235.plc1.org sls= [234, 235, 236] site= 236
+236 None n1-236.plc1.org sls= [235, 236, 237] site= 237
+237 None n1-237.plc1.org sls= [236, 237, 238] site= 238
+238 None n1-238.plc1.org sls= [237, 238, 239] site= 239
+239 None n1-239.plc1.org sls= [238, 239, 240] site= 240
+240 None n1-240.plc1.org sls= [239, 240, 241] site= 241
+241 None n1-241.plc1.org sls= [240, 241, 242] site= 242
+242 None n1-242.plc1.org sls= [241, 242, 243] site= 243
+243 None n1-243.plc1.org sls= [242, 243, 244] site= 244
+244 None n1-244.plc1.org sls= [243, 244, 245] site= 245
+245 None n1-245.plc1.org sls= [244, 245, 246] site= 246
+246 None n1-246.plc1.org sls= [245, 246, 247] site= 247
+247 None n1-247.plc1.org sls= [246, 247, 248] site= 248
+248 None n1-248.plc1.org sls= [247, 248, 249] site= 249
+249 None n1-249.plc1.org sls= [248, 249, 250] site= 250
+250 None n1-250.plc1.org sls= [249, 250, 251] site= 251
+251 None n1-251.plc1.org sls= [250, 251, 252] site= 252
+252 None n1-252.plc1.org sls= [251, 252, 253] site= 253
+253 None n1-253.plc1.org sls= [252, 253, 254] site= 254
+254 None n1-254.plc1.org sls= [253, 254, 255] site= 255
+255 None n1-255.plc1.org sls= [254, 255, 256] site= 256
+256 None n1-256.plc1.org sls= [255, 256, 257] site= 257
+257 None n1-257.plc1.org sls= [256, 257, 258] site= 258
+258 None n1-258.plc1.org sls= [257, 258, 259] site= 259
+259 None n1-259.plc1.org sls= [258, 259, 260] site= 260
+260 None n1-260.plc1.org sls= [259, 260, 261] site= 261
+261 None n1-261.plc1.org sls= [260, 261, 262] site= 262
+262 None n1-262.plc1.org sls= [261, 262, 263] site= 263
+263 None n1-263.plc1.org sls= [262, 263, 264] site= 264
+264 None n1-264.plc1.org sls= [263, 264, 265] site= 265
+265 None n1-265.plc1.org sls= [264, 265, 266] site= 266
+266 None n1-266.plc1.org sls= [265, 266, 267] site= 267
+267 None n1-267.plc1.org sls= [266, 267, 268] site= 268
+268 None n1-268.plc1.org sls= [267, 268, 269] site= 269
+269 None n1-269.plc1.org sls= [268, 269, 270] site= 270
+270 None n1-270.plc1.org sls= [269, 270, 271] site= 271
+271 None n1-271.plc1.org sls= [270, 271, 272] site= 272
+272 None n1-272.plc1.org sls= [271, 272, 273] site= 273
+273 None n1-273.plc1.org sls= [272, 273, 274] site= 274
+274 None n1-274.plc1.org sls= [273, 274, 275] site= 275
+275 None n1-275.plc1.org sls= [274, 275, 276] site= 276
+276 None n1-276.plc1.org sls= [275, 276, 277] site= 277
+277 None n1-277.plc1.org sls= [276, 277, 278] site= 278
+278 None n1-278.plc1.org sls= [277, 278, 279] site= 279
+279 None n1-279.plc1.org sls= [278, 279, 280] site= 280
+280 None n1-280.plc1.org sls= [279, 280, 281] site= 281
+281 None n1-281.plc1.org sls= [280, 281, 282] site= 282
+282 None n1-282.plc1.org sls= [281, 282, 283] site= 283
+283 None n1-283.plc1.org sls= [282, 283, 284] site= 284
+284 None n1-284.plc1.org sls= [283, 284, 285] site= 285
+285 None n1-285.plc1.org sls= [284, 285, 286] site= 286
+286 None n1-286.plc1.org sls= [285, 286, 287] site= 287
+287 None n1-287.plc1.org sls= [286, 287, 288] site= 288
+288 None n1-288.plc1.org sls= [287, 288, 289] site= 289
+289 None n1-289.plc1.org sls= [288, 289, 290] site= 290
+290 None n1-290.plc1.org sls= [289, 290, 291] site= 291
+291 None n1-291.plc1.org sls= [290, 291, 292] site= 292
+292 None n1-292.plc1.org sls= [291, 292, 293] site= 293
+293 None n1-293.plc1.org sls= [292, 293, 294] site= 294
+294 None n1-294.plc1.org sls= [293, 294, 295] site= 295
+295 None n1-295.plc1.org sls= [294, 295, 296] site= 296
+296 None n1-296.plc1.org sls= [295, 296, 297] site= 297
+297 None n1-297.plc1.org sls= [296, 297, 298] site= 298
+298 None n1-298.plc1.org sls= [297, 298, 299] site= 299
+299 None n1-299.plc1.org sls= [298, 299, 300] site= 300
+300 None n1-300.plc1.org sls= [299, 300, 301] site= 301
+301 None n1-301.plc1.org sls= [300, 301, 302] site= 302
+302 None n1-302.plc1.org sls= [301, 302, 303] site= 303
+303 None n1-303.plc1.org sls= [302, 303, 304] site= 304
+304 None n1-304.plc1.org sls= [303, 304, 305] site= 305
+305 None n1-305.plc1.org sls= [304, 305, 306] site= 306
+306 None n1-306.plc1.org sls= [305, 306, 307] site= 307
+307 None n1-307.plc1.org sls= [306, 307, 308] site= 308
+308 None n1-308.plc1.org sls= [307, 308, 309] site= 309
+309 None n1-309.plc1.org sls= [308, 309, 310] site= 310
+310 None n1-310.plc1.org sls= [309, 310, 311] site= 311
+311 None n1-311.plc1.org sls= [310, 311, 312] site= 312
+312 None n1-312.plc1.org sls= [311, 312, 313] site= 313
+313 None n1-313.plc1.org sls= [312, 313, 314] site= 314
+314 None n1-314.plc1.org sls= [313, 314, 315] site= 315
+315 None n1-315.plc1.org sls= [314, 315, 316] site= 316
+316 None n1-316.plc1.org sls= [315, 316, 317] site= 317
+317 None n1-317.plc1.org sls= [316, 317, 318] site= 318
+318 None n1-318.plc1.org sls= [317, 318, 319] site= 319
+319 None n1-319.plc1.org sls= [318, 319, 320] site= 320
+320 None n1-320.plc1.org sls= [319, 320, 321] site= 321
+321 None n1-321.plc1.org sls= [320, 321, 322] site= 322
+322 None n1-322.plc1.org sls= [321, 322, 323] site= 323
+323 None n1-323.plc1.org sls= [322, 323, 324] site= 324
+324 None n1-324.plc1.org sls= [323, 324, 325] site= 325
+325 None n1-325.plc1.org sls= [324, 325, 326] site= 326
+326 None n1-326.plc1.org sls= [325, 326, 327] site= 327
+327 None n1-327.plc1.org sls= [326, 327, 328] site= 328
+328 None n1-328.plc1.org sls= [327, 328, 329] site= 329
+329 None n1-329.plc1.org sls= [328, 329, 330] site= 330
+330 None n1-330.plc1.org sls= [329, 330, 331] site= 331
+331 None n1-331.plc1.org sls= [330, 331, 332] site= 332
+332 None n1-332.plc1.org sls= [331, 332, 333] site= 333
+333 None n1-333.plc1.org sls= [332, 333, 334] site= 334
+334 None n1-334.plc1.org sls= [333, 334, 335] site= 335
+335 None n1-335.plc1.org sls= [334, 335, 336] site= 336
+336 None n1-336.plc1.org sls= [335, 336, 337] site= 337
+337 None n1-337.plc1.org sls= [336, 337, 338] site= 338
+338 None n1-338.plc1.org sls= [337, 338, 339] site= 339
+339 None n1-339.plc1.org sls= [338, 339, 340] site= 340
+340 None n1-340.plc1.org sls= [339, 340, 341] site= 341
+341 None n1-341.plc1.org sls= [340, 341, 342] site= 342
+342 None n1-342.plc1.org sls= [341, 342, 343] site= 343
+343 None n1-343.plc1.org sls= [342, 343, 344] site= 344
+344 None n1-344.plc1.org sls= [343, 344, 345] site= 345
+345 None n1-345.plc1.org sls= [344, 345, 346] site= 346
+346 None n1-346.plc1.org sls= [345, 346, 347] site= 347
+347 None n1-347.plc1.org sls= [346, 347, 348] site= 348
+348 None n1-348.plc1.org sls= [347, 348, 349] site= 349
+349 None n1-349.plc1.org sls= [348, 349, 350] site= 350
+350 None n1-350.plc1.org sls= [349, 350, 351] site= 351
+351 None n1-351.plc1.org sls= [350, 351, 352] site= 352
+352 None n1-352.plc1.org sls= [351, 352, 353] site= 353
+353 None n1-353.plc1.org sls= [352, 353, 354] site= 354
+354 None n1-354.plc1.org sls= [353, 354, 355] site= 355
+355 None n1-355.plc1.org sls= [354, 355, 356] site= 356
+356 None n1-356.plc1.org sls= [355, 356, 357] site= 357
+357 None n1-357.plc1.org sls= [356, 357, 358] site= 358
+358 None n1-358.plc1.org sls= [357, 358, 359] site= 359
+359 None n1-359.plc1.org sls= [358, 359, 360] site= 360
+360 None n1-360.plc1.org sls= [359, 360, 361] site= 361
+361 None n1-361.plc1.org sls= [360, 361, 362] site= 362
+362 None n1-362.plc1.org sls= [361, 362, 363] site= 363
+363 None n1-363.plc1.org sls= [362, 363, 364] site= 364
+364 None n1-364.plc1.org sls= [363, 364, 365] site= 365
+365 None n1-365.plc1.org sls= [364, 365, 366] site= 366
+366 None n1-366.plc1.org sls= [365, 366, 367] site= 367
+367 None n1-367.plc1.org sls= [366, 367, 368] site= 368
+368 None n1-368.plc1.org sls= [367, 368, 369] site= 369
+369 None n1-369.plc1.org sls= [368, 369, 370] site= 370
+370 None n1-370.plc1.org sls= [369, 370, 371] site= 371
+371 None n1-371.plc1.org sls= [370, 371, 372] site= 372
+372 None n1-372.plc1.org sls= [371, 372, 373] site= 373
+373 None n1-373.plc1.org sls= [372, 373, 374] site= 374
+374 None n1-374.plc1.org sls= [373, 374, 375] site= 375
+375 None n1-375.plc1.org sls= [374, 375, 376] site= 376
+376 None n1-376.plc1.org sls= [375, 376, 377] site= 377
+377 None n1-377.plc1.org sls= [376, 377, 378] site= 378
+378 None n1-378.plc1.org sls= [377, 378, 379] site= 379
+379 None n1-379.plc1.org sls= [378, 379, 380] site= 380
+380 None n1-380.plc1.org sls= [379, 380, 381] site= 381
+381 None n1-381.plc1.org sls= [380, 381, 382] site= 382
+382 None n1-382.plc1.org sls= [381, 382, 383] site= 383
+383 None n1-383.plc1.org sls= [382, 383, 384] site= 384
+384 None n1-384.plc1.org sls= [383, 384, 385] site= 385
+385 None n1-385.plc1.org sls= [384, 385, 386] site= 386
+386 None n1-386.plc1.org sls= [385, 386, 387] site= 387
+387 None n1-387.plc1.org sls= [386, 387, 388] site= 388
+388 None n1-388.plc1.org sls= [387, 388, 389] site= 389
+389 None n1-389.plc1.org sls= [388, 389, 390] site= 390
+390 None n1-390.plc1.org sls= [389, 390, 391] site= 391
+391 None n1-391.plc1.org sls= [390, 391, 392] site= 392
+392 None n1-392.plc1.org sls= [391, 392, 393] site= 393
+393 None n1-393.plc1.org sls= [392, 393, 394] site= 394
+394 None n1-394.plc1.org sls= [393, 394, 395] site= 395
+395 None n1-395.plc1.org sls= [394, 395, 396] site= 396
+396 None n1-396.plc1.org sls= [395, 396, 397] site= 397
+397 None n1-397.plc1.org sls= [396, 397, 398] site= 398
+398 None n1-398.plc1.org sls= [397, 398, 399] site= 399
+399 None n1-399.plc1.org sls= [398, 399, 400] site= 400
+400 None n1-400.plc1.org sls= [399, 400, 401] site= 401
+401 None n1-401.plc1.org sls= [400, 401, 402] site= 402
+402 None n1-402.plc1.org sls= [401, 402, 403] site= 403
+403 None n1-403.plc1.org sls= [402, 403, 404] site= 404
+404 None n1-404.plc1.org sls= [403, 404, 405] site= 405
+405 None n1-405.plc1.org sls= [404, 405, 406] site= 406
+406 None n1-406.plc1.org sls= [405, 406, 407] site= 407
+407 None n1-407.plc1.org sls= [406, 407, 408] site= 408
+408 None n1-408.plc1.org sls= [407, 408, 409] site= 409
+409 None n1-409.plc1.org sls= [408, 409, 410] site= 410
+410 None n1-410.plc1.org sls= [409, 410, 411] site= 411
+411 None n1-411.plc1.org sls= [410, 411, 412] site= 412
+412 None n1-412.plc1.org sls= [411, 412, 413] site= 413
+413 None n1-413.plc1.org sls= [412, 413, 414] site= 414
+414 None n1-414.plc1.org sls= [413, 414, 415] site= 415
+415 None n1-415.plc1.org sls= [414, 415, 416] site= 416
+416 None n1-416.plc1.org sls= [415, 416, 417] site= 417
+417 None n1-417.plc1.org sls= [416, 417, 418] site= 418
+418 None n1-418.plc1.org sls= [417, 418, 419] site= 419
+419 None n1-419.plc1.org sls= [418, 419, 420] site= 420
+420 None n1-420.plc1.org sls= [419, 420, 421] site= 421
+421 None n1-421.plc1.org sls= [420, 421, 422] site= 422
+422 None n1-422.plc1.org sls= [421, 422, 423] site= 423
+423 None n1-423.plc1.org sls= [422, 423, 424] site= 424
+424 None n1-424.plc1.org sls= [423, 424, 425] site= 425
+425 None n1-425.plc1.org sls= [424, 425, 426] site= 426
+426 None n1-426.plc1.org sls= [425, 426, 427] site= 427
+427 None n1-427.plc1.org sls= [426, 427, 428] site= 428
+428 None n1-428.plc1.org sls= [427, 428, 429] site= 429
+429 None n1-429.plc1.org sls= [428, 429, 430] site= 430
+430 None n1-430.plc1.org sls= [429, 430, 431] site= 431
+431 None n1-431.plc1.org sls= [430, 431, 432] site= 432
+432 None n1-432.plc1.org sls= [431, 432, 433] site= 433
+433 None n1-433.plc1.org sls= [432, 433, 434] site= 434
+434 None n1-434.plc1.org sls= [433, 434, 435] site= 435
+435 None n1-435.plc1.org sls= [434, 435, 436] site= 436
+436 None n1-436.plc1.org sls= [435, 436, 437] site= 437
+437 None n1-437.plc1.org sls= [436, 437, 438] site= 438
+438 None n1-438.plc1.org sls= [437, 438, 439] site= 439
+439 None n1-439.plc1.org sls= [438, 439, 440] site= 440
+440 None n1-440.plc1.org sls= [439, 440, 441] site= 441
+441 None n1-441.plc1.org sls= [440, 441, 442] site= 442
+442 None n1-442.plc1.org sls= [441, 442, 443] site= 443
+443 None n1-443.plc1.org sls= [442, 443, 444] site= 444
+444 None n1-444.plc1.org sls= [443, 444, 445] site= 445
+445 None n1-445.plc1.org sls= [444, 445, 446] site= 446
+446 None n1-446.plc1.org sls= [445, 446, 447] site= 447
+447 None n1-447.plc1.org sls= [446, 447, 448] site= 448
+448 None n1-448.plc1.org sls= [447, 448, 449] site= 449
+449 None n1-449.plc1.org sls= [448, 449, 450] site= 450
+450 None n1-450.plc1.org sls= [449, 450, 451] site= 451
+451 None n1-451.plc1.org sls= [450, 451, 452] site= 452
+452 None n1-452.plc1.org sls= [451, 452, 453] site= 453
+453 None n1-453.plc1.org sls= [452, 453, 454] site= 454
+454 None n1-454.plc1.org sls= [453, 454, 455] site= 455
+455 None n1-455.plc1.org sls= [454, 455, 456] site= 456
+456 None n1-456.plc1.org sls= [455, 456, 457] site= 457
+457 None n1-457.plc1.org sls= [456, 457, 458] site= 458
+458 None n1-458.plc1.org sls= [457, 458, 459] site= 459
+459 None n1-459.plc1.org sls= [458, 459, 460] site= 460
+460 None n1-460.plc1.org sls= [459, 460, 461] site= 461
+461 None n1-461.plc1.org sls= [460, 461, 462] site= 462
+462 None n1-462.plc1.org sls= [461, 462, 463] site= 463
+463 None n1-463.plc1.org sls= [462, 463, 464] site= 464
+464 None n1-464.plc1.org sls= [463, 464, 465] site= 465
+465 None n1-465.plc1.org sls= [464, 465, 466] site= 466
+466 None n1-466.plc1.org sls= [465, 466, 467] site= 467
+467 None n1-467.plc1.org sls= [466, 467, 468] site= 468
+468 None n1-468.plc1.org sls= [467, 468, 469] site= 469
+469 None n1-469.plc1.org sls= [468, 469, 470] site= 470
+470 None n1-470.plc1.org sls= [469, 470, 471] site= 471
+471 None n1-471.plc1.org sls= [470, 471, 472] site= 472
+472 None n1-472.plc1.org sls= [471, 472, 473] site= 473
+473 None n1-473.plc1.org sls= [472, 473, 474] site= 474
+474 None n1-474.plc1.org sls= [473, 474, 475] site= 475
+475 None n1-475.plc1.org sls= [474, 475, 476] site= 476
+476 None n1-476.plc1.org sls= [475, 476, 477] site= 477
+477 None n1-477.plc1.org sls= [476, 477, 478] site= 478
+478 None n1-478.plc1.org sls= [477, 478, 479] site= 479
+479 None n1-479.plc1.org sls= [478, 479, 480] site= 480
+480 None n1-480.plc1.org sls= [479, 480, 481] site= 481
+481 None n1-481.plc1.org sls= [480, 481, 482] site= 482
+482 None n1-482.plc1.org sls= [481, 482, 483] site= 483
+483 None n1-483.plc1.org sls= [482, 483, 484] site= 484
+484 None n1-484.plc1.org sls= [483, 484, 485] site= 485
+485 None n1-485.plc1.org sls= [484, 485, 486] site= 486
+486 None n1-486.plc1.org sls= [485, 486, 487] site= 487
+487 None n1-487.plc1.org sls= [486, 487, 488] site= 488
+488 None n1-488.plc1.org sls= [487, 488, 489] site= 489
+489 None n1-489.plc1.org sls= [488, 489, 490] site= 490
+490 None n1-490.plc1.org sls= [489, 490, 491] site= 491
+491 None n1-491.plc1.org sls= [490, 491, 492] site= 492
+492 None n1-492.plc1.org sls= [491, 492, 493] site= 493
+493 None n1-493.plc1.org sls= [492, 493, 494] site= 494
+494 None n1-494.plc1.org sls= [493, 494, 495] site= 495
+495 None n1-495.plc1.org sls= [494, 495, 496] site= 496
+496 None n1-496.plc1.org sls= [495, 496, 497] site= 497
+497 None n1-497.plc1.org sls= [496, 497, 498] site= 498
+498 None n1-498.plc1.org sls= [497, 498, 499] site= 499
+499 None n1-499.plc1.org sls= [498, 499, 500] site= 500
+500 None n1-500.plc1.org sls= [499, 500, 501] site= 501
+501 None n1-501.plc1.org sls= [500, 501, 502] site= 502
+502 None n1-502.plc1.org sls= [501, 502, 503] site= 503
+503 None n1-503.plc1.org sls= [502, 503, 504] site= 504
+504 None n1-504.plc1.org sls= [503, 504, 505] site= 505
+505 None n1-505.plc1.org sls= [504, 505, 506] site= 506
+506 None n1-506.plc1.org sls= [505, 506, 507] site= 507
+507 None n1-507.plc1.org sls= [506, 507, 508] site= 508
+508 None n1-508.plc1.org sls= [507, 508, 509] site= 509
+509 None n1-509.plc1.org sls= [508, 509, 510] site= 510
+510 None n1-510.plc1.org sls= [509, 510, 511] site= 511
+511 None n1-511.plc1.org sls= [510, 511, 512] site= 512
+512 None n1-512.plc1.org sls= [511, 512, 513] site= 513
+513 None n1-513.plc1.org sls= [512, 513, 514] site= 514
+514 None n1-514.plc1.org sls= [513, 514, 515] site= 515
+515 None n1-515.plc1.org sls= [514, 515, 516] site= 516
+516 None n1-516.plc1.org sls= [515, 516, 517] site= 517
+517 None n1-517.plc1.org sls= [516, 517, 518] site= 518
+518 None n1-518.plc1.org sls= [517, 518, 519] site= 519
+519 None n1-519.plc1.org sls= [518, 519, 520] site= 520
+520 None n1-520.plc1.org sls= [519, 520, 521] site= 521
+521 None n1-521.plc1.org sls= [520, 521, 522] site= 522
+522 None n1-522.plc1.org sls= [521, 522, 523] site= 523
+523 None n1-523.plc1.org sls= [522, 523, 524] site= 524
+524 None n1-524.plc1.org sls= [523, 524, 525] site= 525
+525 None n1-525.plc1.org sls= [524, 525, 526] site= 526
+526 None n1-526.plc1.org sls= [525, 526, 527] site= 527
+527 None n1-527.plc1.org sls= [526, 527, 528] site= 528
+528 None n1-528.plc1.org sls= [527, 528, 529] site= 529
+529 None n1-529.plc1.org sls= [528, 529, 530] site= 530
+530 None n1-530.plc1.org sls= [529, 530, 531] site= 531
+531 None n1-531.plc1.org sls= [530, 531, 532] site= 532
+532 None n1-532.plc1.org sls= [531, 532, 533] site= 533
+533 None n1-533.plc1.org sls= [532, 533, 534] site= 534
+534 None n1-534.plc1.org sls= [533, 534, 535] site= 535
+535 None n1-535.plc1.org sls= [534, 535, 536] site= 536
+536 None n1-536.plc1.org sls= [535, 536, 537] site= 537
+537 None n1-537.plc1.org sls= [536, 537, 538] site= 538
+538 None n1-538.plc1.org sls= [537, 538, 539] site= 539
+539 None n1-539.plc1.org sls= [538, 539, 540] site= 540
+540 None n1-540.plc1.org sls= [539, 540, 541] site= 541
+541 None n1-541.plc1.org sls= [540, 541, 542] site= 542
+542 None n1-542.plc1.org sls= [541, 542, 543] site= 543
+543 None n1-543.plc1.org sls= [542, 543, 544] site= 544
+544 None n1-544.plc1.org sls= [543, 544, 545] site= 545
+545 None n1-545.plc1.org sls= [544, 545, 546] site= 546
+546 None n1-546.plc1.org sls= [545, 546, 547] site= 547
+547 None n1-547.plc1.org sls= [546, 547, 548] site= 548
+548 None n1-548.plc1.org sls= [547, 548, 549] site= 549
+549 None n1-549.plc1.org sls= [548, 549, 550] site= 550
+550 None n1-550.plc1.org sls= [549, 550, 551] site= 551
+551 None n1-551.plc1.org sls= [550, 551, 552] site= 552
+552 None n1-552.plc1.org sls= [551, 552, 553] site= 553
+553 None n1-553.plc1.org sls= [552, 553, 554] site= 554
+554 None n1-554.plc1.org sls= [553, 554, 555] site= 555
+555 None n1-555.plc1.org sls= [554, 555, 556] site= 556
+556 None n1-556.plc1.org sls= [555, 556, 557] site= 557
+557 None n1-557.plc1.org sls= [556, 557, 558] site= 558
+558 None n1-558.plc1.org sls= [557, 558, 559] site= 559
+559 None n1-559.plc1.org sls= [558, 559, 560] site= 560
+560 None n1-560.plc1.org sls= [559, 560, 561] site= 561
+561 None n1-561.plc1.org sls= [560, 561, 562] site= 562
+562 None n1-562.plc1.org sls= [561, 562, 563] site= 563
+563 None n1-563.plc1.org sls= [562, 563, 564] site= 564
+564 None n1-564.plc1.org sls= [563, 564, 565] site= 565
+565 None n1-565.plc1.org sls= [564, 565, 566] site= 566
+566 None n1-566.plc1.org sls= [565, 566, 567] site= 567
+567 None n1-567.plc1.org sls= [566, 567, 568] site= 568
+568 None n1-568.plc1.org sls= [567, 568, 569] site= 569
+569 None n1-569.plc1.org sls= [568, 569, 570] site= 570
+570 None n1-570.plc1.org sls= [569, 570, 571] site= 571
+571 None n1-571.plc1.org sls= [570, 571, 572] site= 572
+572 None n1-572.plc1.org sls= [571, 572, 573] site= 573
+573 None n1-573.plc1.org sls= [572, 573, 574] site= 574
+574 None n1-574.plc1.org sls= [573, 574, 575] site= 575
+575 None n1-575.plc1.org sls= [574, 575, 576] site= 576
+576 None n1-576.plc1.org sls= [575, 576, 577] site= 577
+577 None n1-577.plc1.org sls= [576, 577, 578] site= 578
+578 None n1-578.plc1.org sls= [577, 578, 579] site= 579
+579 None n1-579.plc1.org sls= [578, 579, 580] site= 580
+580 None n1-580.plc1.org sls= [579, 580, 581] site= 581
+581 None n1-581.plc1.org sls= [580, 581, 582] site= 582
+582 None n1-582.plc1.org sls= [581, 582, 583] site= 583
+583 None n1-583.plc1.org sls= [582, 583, 584] site= 584
+584 None n1-584.plc1.org sls= [583, 584, 585] site= 585
+585 None n1-585.plc1.org sls= [584, 585, 586] site= 586
+586 None n1-586.plc1.org sls= [585, 586, 587] site= 587
+587 None n1-587.plc1.org sls= [586, 587, 588] site= 588
+588 None n1-588.plc1.org sls= [587, 588, 589] site= 589
+589 None n1-589.plc1.org sls= [588, 589, 590] site= 590
+590 None n1-590.plc1.org sls= [589, 590, 591] site= 591
+591 None n1-591.plc1.org sls= [590, 591, 592] site= 592
+592 None n1-592.plc1.org sls= [591, 592, 593] site= 593
+593 None n1-593.plc1.org sls= [592, 593, 594] site= 594
+594 None n1-594.plc1.org sls= [593, 594, 595] site= 595
+595 None n1-595.plc1.org sls= [594, 595, 596] site= 596
+596 None n1-596.plc1.org sls= [595, 596, 597] site= 597
+597 None n1-597.plc1.org sls= [596, 597, 598] site= 598
+598 None n1-598.plc1.org sls= [597, 598, 599] site= 599
+599 None n1-599.plc1.org sls= [598, 599, 600] site= 600
+600 None n1-600.plc1.org sls= [599, 600, 601] site= 601
+601 None n1-601.plc1.org sls= [600, 601, 602] site= 602
+602 None n1-602.plc1.org sls= [601, 602, 603] site= 603
+603 None n1-603.plc1.org sls= [602, 603, 604] site= 604
+604 None n1-604.plc1.org sls= [603, 604, 605] site= 605
+605 None n1-605.plc1.org sls= [604, 605, 606] site= 606
+606 None n1-606.plc1.org sls= [605, 606, 607] site= 607
+607 None n1-607.plc1.org sls= [606, 607, 608] site= 608
+608 None n1-608.plc1.org sls= [607, 608, 609] site= 609
+609 None n1-609.plc1.org sls= [608, 609, 610] site= 610
+610 None n1-610.plc1.org sls= [609, 610, 611] site= 611
+611 None n1-611.plc1.org sls= [610, 611, 612] site= 612
+612 None n1-612.plc1.org sls= [611, 612, 613] site= 613
+613 None n1-613.plc1.org sls= [612, 613, 614] site= 614
+614 None n1-614.plc1.org sls= [613, 614, 615] site= 615
+615 None n1-615.plc1.org sls= [614, 615, 616] site= 616
+616 None n1-616.plc1.org sls= [615, 616, 617] site= 617
+617 None n1-617.plc1.org sls= [616, 617, 618] site= 618
+618 None n1-618.plc1.org sls= [617, 618, 619] site= 619
+619 None n1-619.plc1.org sls= [618, 619, 620] site= 620
+620 None n1-620.plc1.org sls= [619, 620, 621] site= 621
+621 None n1-621.plc1.org sls= [620, 621, 622] site= 622
+622 None n1-622.plc1.org sls= [621, 622, 623] site= 623
+623 None n1-623.plc1.org sls= [622, 623, 624] site= 624
+624 None n1-624.plc1.org sls= [623, 624, 625] site= 625
+625 None n1-625.plc1.org sls= [624, 625, 626] site= 626
+626 None n1-626.plc1.org sls= [625, 626, 627] site= 627
+627 None n1-627.plc1.org sls= [626, 627, 628] site= 628
+628 None n1-628.plc1.org sls= [627, 628, 629] site= 629
+629 None n1-629.plc1.org sls= [628, 629, 630] site= 630
+630 None n1-630.plc1.org sls= [629, 630, 631] site= 631
+631 None n1-631.plc1.org sls= [630, 631, 632] site= 632
+632 None n1-632.plc1.org sls= [631, 632, 633] site= 633
+633 None n1-633.plc1.org sls= [632, 633, 634] site= 634
+634 None n1-634.plc1.org sls= [633, 634, 635] site= 635
+635 None n1-635.plc1.org sls= [634, 635, 636] site= 636
+636 None n1-636.plc1.org sls= [635, 636, 637] site= 637
+637 None n1-637.plc1.org sls= [636, 637, 638] site= 638
+638 None n1-638.plc1.org sls= [637, 638, 639] site= 639
+639 None n1-639.plc1.org sls= [638, 639, 640] site= 640
+640 None n1-640.plc1.org sls= [639, 640, 641] site= 641
+641 None n1-641.plc1.org sls= [640, 641, 642] site= 642
+642 None n1-642.plc1.org sls= [641, 642, 643] site= 643
+643 None n1-643.plc1.org sls= [642, 643, 644] site= 644
+644 None n1-644.plc1.org sls= [643, 644, 645] site= 645
+645 None n1-645.plc1.org sls= [644, 645, 646] site= 646
+646 None n1-646.plc1.org sls= [645, 646, 647] site= 647
+647 None n1-647.plc1.org sls= [646, 647, 648] site= 648
+648 None n1-648.plc1.org sls= [647, 648, 649] site= 649
+649 None n1-649.plc1.org sls= [648, 649, 650] site= 650
+650 None n1-650.plc1.org sls= [649, 650, 651] site= 651
+651 None n1-651.plc1.org sls= [650, 651, 652] site= 652
+652 None n1-652.plc1.org sls= [651, 652, 653] site= 653
+653 None n1-653.plc1.org sls= [652, 653, 654] site= 654
+654 None n1-654.plc1.org sls= [653, 654, 655] site= 655
+655 None n1-655.plc1.org sls= [654, 655, 656] site= 656
+656 None n1-656.plc1.org sls= [655, 656, 657] site= 657
+657 None n1-657.plc1.org sls= [656, 657, 658] site= 658
+658 None n1-658.plc1.org sls= [657, 658, 659] site= 659
+659 None n1-659.plc1.org sls= [658, 659, 660] site= 660
+660 None n1-660.plc1.org sls= [659, 660, 661] site= 661
+661 None n1-661.plc1.org sls= [660, 661, 662] site= 662
+662 None n1-662.plc1.org sls= [661, 662, 663] site= 663
+663 None n1-663.plc1.org sls= [662, 663, 664] site= 664
+664 None n1-664.plc1.org sls= [663, 664, 665] site= 665
+665 None n1-665.plc1.org sls= [664, 665, 666] site= 666
+666 None n1-666.plc1.org sls= [665, 666, 667] site= 667
+667 None n1-667.plc1.org sls= [666, 667, 668] site= 668
+668 None n1-668.plc1.org sls= [667, 668, 669] site= 669
+669 None n1-669.plc1.org sls= [668, 669, 670] site= 670
+670 None n1-670.plc1.org sls= [669, 670, 671] site= 671
+671 None n1-671.plc1.org sls= [670, 671, 672] site= 672
+672 None n1-672.plc1.org sls= [671, 672, 673] site= 673
+673 None n1-673.plc1.org sls= [672, 673, 674] site= 674
+674 None n1-674.plc1.org sls= [673, 674, 675] site= 675
+675 None n1-675.plc1.org sls= [674, 675, 676] site= 676
+676 None n1-676.plc1.org sls= [675, 676, 677] site= 677
+677 None n1-677.plc1.org sls= [676, 677, 678] site= 678
+678 None n1-678.plc1.org sls= [677, 678, 679] site= 679
+679 None n1-679.plc1.org sls= [678, 679, 680] site= 680
+680 None n1-680.plc1.org sls= [679, 680, 681] site= 681
+681 None n1-681.plc1.org sls= [680, 681, 682] site= 682
+682 None n1-682.plc1.org sls= [681, 682, 683] site= 683
+683 None n1-683.plc1.org sls= [682, 683, 684] site= 684
+684 None n1-684.plc1.org sls= [683, 684, 685] site= 685
+685 None n1-685.plc1.org sls= [684, 685, 686] site= 686
+686 None n1-686.plc1.org sls= [685, 686, 687] site= 687
+687 None n1-687.plc1.org sls= [686, 687, 688] site= 688
+688 None n1-688.plc1.org sls= [687, 688, 689] site= 689
+689 None n1-689.plc1.org sls= [688, 689, 690] site= 690
+690 None n1-690.plc1.org sls= [689, 690, 691] site= 691
+691 None n1-691.plc1.org sls= [690, 691, 692] site= 692
+692 None n1-692.plc1.org sls= [691, 692, 693] site= 693
+693 None n1-693.plc1.org sls= [692, 693, 694] site= 694
+694 None n1-694.plc1.org sls= [693, 694, 695] site= 695
+695 None n1-695.plc1.org sls= [694, 695, 696] site= 696
+696 None n1-696.plc1.org sls= [695, 696, 697] site= 697
+697 None n1-697.plc1.org sls= [696, 697, 698] site= 698
+698 None n1-698.plc1.org sls= [697, 698, 699] site= 699
+699 None n1-699.plc1.org sls= [698, 699, 700] site= 700
+700 None n1-700.plc1.org sls= [699, 700, 701] site= 701
+701 None n1-701.plc1.org sls= [700, 701, 702] site= 702
+702 None n1-702.plc1.org sls= [701, 702, 703] site= 703
+703 None n1-703.plc1.org sls= [702, 703, 704] site= 704
+704 None n1-704.plc1.org sls= [703, 704, 705] site= 705
+705 None n1-705.plc1.org sls= [704, 705, 706] site= 706
+706 None n1-706.plc1.org sls= [705, 706, 707] site= 707
+707 None n1-707.plc1.org sls= [706, 707, 708] site= 708
+708 None n1-708.plc1.org sls= [707, 708, 709] site= 709
+709 None n1-709.plc1.org sls= [708, 709, 710] site= 710
+710 None n1-710.plc1.org sls= [709, 710, 711] site= 711
+711 None n1-711.plc1.org sls= [710, 711, 712] site= 712
+712 None n1-712.plc1.org sls= [711, 712, 713] site= 713
+713 None n1-713.plc1.org sls= [712, 713, 714] site= 714
+714 None n1-714.plc1.org sls= [713, 714, 715] site= 715
+715 None n1-715.plc1.org sls= [714, 715, 716] site= 716
+716 None n1-716.plc1.org sls= [715, 716, 717] site= 717
+717 None n1-717.plc1.org sls= [716, 717, 718] site= 718
+718 None n1-718.plc1.org sls= [717, 718, 719] site= 719
+719 None n1-719.plc1.org sls= [718, 719, 720] site= 720
+720 None n1-720.plc1.org sls= [719, 720, 721] site= 721
+721 None n1-721.plc1.org sls= [720, 721, 722] site= 722
+722 None n1-722.plc1.org sls= [721, 722, 723] site= 723
+723 None n1-723.plc1.org sls= [722, 723, 724] site= 724
+724 None n1-724.plc1.org sls= [723, 724, 725] site= 725
+725 None n1-725.plc1.org sls= [724, 725, 726] site= 726
+726 None n1-726.plc1.org sls= [725, 726, 727] site= 727
+727 None n1-727.plc1.org sls= [726, 727, 728] site= 728
+728 None n1-728.plc1.org sls= [727, 728, 729] site= 729
+729 None n1-729.plc1.org sls= [728, 729, 730] site= 730
+730 None n1-730.plc1.org sls= [729, 730, 731] site= 731
+731 None n1-731.plc1.org sls= [730, 731, 732] site= 732
+732 None n1-732.plc1.org sls= [731, 732, 733] site= 733
+733 None n1-733.plc1.org sls= [732, 733, 734] site= 734
+734 None n1-734.plc1.org sls= [733, 734, 735] site= 735
+735 None n1-735.plc1.org sls= [734, 735, 736] site= 736
+736 None n1-736.plc1.org sls= [735, 736, 737] site= 737
+737 None n1-737.plc1.org sls= [736, 737, 738] site= 738
+738 None n1-738.plc1.org sls= [737, 738, 739] site= 739
+739 None n1-739.plc1.org sls= [738, 739, 740] site= 740
+740 None n1-740.plc1.org sls= [739, 740, 741] site= 741
+741 None n1-741.plc1.org sls= [740, 741, 742] site= 742
+742 None n1-742.plc1.org sls= [741, 742, 743] site= 743
+743 None n1-743.plc1.org sls= [742, 743, 744] site= 744
+744 None n1-744.plc1.org sls= [743, 744, 745] site= 745
+745 None n1-745.plc1.org sls= [744, 745, 746] site= 746
+746 None n1-746.plc1.org sls= [745, 746, 747] site= 747
+747 None n1-747.plc1.org sls= [746, 747, 748] site= 748
+748 None n1-748.plc1.org sls= [747, 748, 749] site= 749
+749 None n1-749.plc1.org sls= [748, 749, 750] site= 750
+750 None n1-750.plc1.org sls= [749, 750, 751] site= 751
+751 None n1-751.plc1.org sls= [750, 751, 752] site= 752
+752 None n1-752.plc1.org sls= [751, 752, 753] site= 753
+753 None n1-753.plc1.org sls= [752, 753, 754] site= 754
+754 None n1-754.plc1.org sls= [753, 754, 755] site= 755
+755 None n1-755.plc1.org sls= [754, 755, 756] site= 756
+756 None n1-756.plc1.org sls= [755, 756, 757] site= 757
+757 None n1-757.plc1.org sls= [756, 757, 758] site= 758
+758 None n1-758.plc1.org sls= [757, 758, 759] site= 759
+759 None n1-759.plc1.org sls= [758, 759, 760] site= 760
+760 None n1-760.plc1.org sls= [759, 760, 761] site= 761
+761 None n1-761.plc1.org sls= [760, 761, 762] site= 762
+762 None n1-762.plc1.org sls= [761, 762, 763] site= 763
+763 None n1-763.plc1.org sls= [762, 763, 764] site= 764
+764 None n1-764.plc1.org sls= [763, 764, 765] site= 765
+765 None n1-765.plc1.org sls= [764, 765, 766] site= 766
+766 None n1-766.plc1.org sls= [765, 766, 767] site= 767
+767 None n1-767.plc1.org sls= [766, 767, 768] site= 768
+768 None n1-768.plc1.org sls= [767, 768, 769] site= 769
+769 None n1-769.plc1.org sls= [768, 769, 770] site= 770
+770 None n1-770.plc1.org sls= [769, 770, 771] site= 771
+771 None n1-771.plc1.org sls= [770, 771, 772] site= 772
+772 None n1-772.plc1.org sls= [771, 772, 773] site= 773
+773 None n1-773.plc1.org sls= [772, 773, 774] site= 774
+774 None n1-774.plc1.org sls= [773, 774, 775] site= 775
+775 None n1-775.plc1.org sls= [774, 775, 776] site= 776
+776 None n1-776.plc1.org sls= [775, 776, 777] site= 777
+777 None n1-777.plc1.org sls= [776, 777, 778] site= 778
+778 None n1-778.plc1.org sls= [777, 778, 779] site= 779
+779 None n1-779.plc1.org sls= [778, 779, 780] site= 780
+780 None n1-780.plc1.org sls= [779, 780, 781] site= 781
+781 None n1-781.plc1.org sls= [780, 781, 782] site= 782
+782 None n1-782.plc1.org sls= [781, 782, 783] site= 783
+783 None n1-783.plc1.org sls= [782, 783, 784] site= 784
+784 None n1-784.plc1.org sls= [783, 784, 785] site= 785
+785 None n1-785.plc1.org sls= [784, 785, 786] site= 786
+786 None n1-786.plc1.org sls= [785, 786, 787] site= 787
+787 None n1-787.plc1.org sls= [786, 787, 788] site= 788
+788 None n1-788.plc1.org sls= [787, 788, 789] site= 789
+789 None n1-789.plc1.org sls= [788, 789, 790] site= 790
+790 None n1-790.plc1.org sls= [789, 790, 791] site= 791
+791 None n1-791.plc1.org sls= [790, 791, 792] site= 792
+792 None n1-792.plc1.org sls= [791, 792, 793] site= 793
+793 None n1-793.plc1.org sls= [792, 793, 794] site= 794
+794 None n1-794.plc1.org sls= [793, 794, 795] site= 795
+795 None n1-795.plc1.org sls= [794, 795, 796] site= 796
+796 None n1-796.plc1.org sls= [795, 796, 797] site= 797
+797 None n1-797.plc1.org sls= [796, 797, 798] site= 798
+798 None n1-798.plc1.org sls= [797, 798, 799] site= 799
+799 None n1-799.plc1.org sls= [798, 799, 800] site= 800
+800 None n1-800.plc1.org sls= [799, 800, 801] site= 801
+801 None n1-801.plc1.org sls= [800, 801, 802] site= 802
+802 None n1-802.plc1.org sls= [801, 802, 803] site= 803
+803 None n1-803.plc1.org sls= [802, 803, 804] site= 804
+804 None n1-804.plc1.org sls= [803, 804, 805] site= 805
+805 None n1-805.plc1.org sls= [804, 805, 806] site= 806
+806 None n1-806.plc1.org sls= [805, 806, 807] site= 807
+807 None n1-807.plc1.org sls= [806, 807, 808] site= 808
+808 None n1-808.plc1.org sls= [807, 808, 809] site= 809
+809 None n1-809.plc1.org sls= [808, 809, 810] site= 810
+810 None n1-810.plc1.org sls= [809, 810, 811] site= 811
+811 None n1-811.plc1.org sls= [810, 811, 812] site= 812
+812 None n1-812.plc1.org sls= [811, 812, 813] site= 813
+813 None n1-813.plc1.org sls= [812, 813, 814] site= 814
+814 None n1-814.plc1.org sls= [813, 814, 815] site= 815
+815 None n1-815.plc1.org sls= [814, 815, 816] site= 816
+816 None n1-816.plc1.org sls= [815, 816, 817] site= 817
+817 None n1-817.plc1.org sls= [816, 817, 818] site= 818
+818 None n1-818.plc1.org sls= [817, 818, 819] site= 819
+819 None n1-819.plc1.org sls= [818, 819, 820] site= 820
+820 None n1-820.plc1.org sls= [819, 820, 821] site= 821
+821 None n1-821.plc1.org sls= [820, 821, 822] site= 822
+822 None n1-822.plc1.org sls= [821, 822, 823] site= 823
+823 None n1-823.plc1.org sls= [822, 823, 824] site= 824
+824 None n1-824.plc1.org sls= [823, 824, 825] site= 825
+825 None n1-825.plc1.org sls= [824, 825, 826] site= 826
+826 None n1-826.plc1.org sls= [825, 826, 827] site= 827
+827 None n1-827.plc1.org sls= [826, 827, 828] site= 828
+828 None n1-828.plc1.org sls= [827, 828, 829] site= 829
+829 None n1-829.plc1.org sls= [828, 829, 830] site= 830
+830 None n1-830.plc1.org sls= [829, 830, 831] site= 831
+831 None n1-831.plc1.org sls= [830, 831, 832] site= 832
+832 None n1-832.plc1.org sls= [831, 832, 833] site= 833
+833 None n1-833.plc1.org sls= [832, 833, 834] site= 834
+834 None n1-834.plc1.org sls= [833, 834, 835] site= 835
+835 None n1-835.plc1.org sls= [834, 835, 836] site= 836
+836 None n1-836.plc1.org sls= [835, 836, 837] site= 837
+837 None n1-837.plc1.org sls= [836, 837, 838] site= 838
+838 None n1-838.plc1.org sls= [837, 838, 839] site= 839
+839 None n1-839.plc1.org sls= [838, 839, 840] site= 840
+840 None n1-840.plc1.org sls= [839, 840, 841] site= 841
+841 None n1-841.plc1.org sls= [840, 841, 842] site= 842
+842 None n1-842.plc1.org sls= [841, 842, 843] site= 843
+843 None n1-843.plc1.org sls= [842, 843, 844] site= 844
+844 None n1-844.plc1.org sls= [843, 844, 845] site= 845
+845 None n1-845.plc1.org sls= [844, 845, 846] site= 846
+846 None n1-846.plc1.org sls= [845, 846, 847] site= 847
+847 None n1-847.plc1.org sls= [846, 847, 848] site= 848
+848 None n1-848.plc1.org sls= [847, 848, 849] site= 849
+849 None n1-849.plc1.org sls= [848, 849, 850] site= 850
+850 None n1-850.plc1.org sls= [849, 850, 851] site= 851
+851 None n1-851.plc1.org sls= [850, 851, 852] site= 852
+852 None n1-852.plc1.org sls= [851, 852, 853] site= 853
+853 None n1-853.plc1.org sls= [852, 853, 854] site= 854
+854 None n1-854.plc1.org sls= [853, 854, 855] site= 855
+855 None n1-855.plc1.org sls= [854, 855, 856] site= 856
+856 None n1-856.plc1.org sls= [855, 856, 857] site= 857
+857 None n1-857.plc1.org sls= [856, 857, 858] site= 858
+858 None n1-858.plc1.org sls= [857, 858, 859] site= 859
+859 None n1-859.plc1.org sls= [858, 859, 860] site= 860
+860 None n1-860.plc1.org sls= [859, 860, 861] site= 861
+861 None n1-861.plc1.org sls= [860, 861, 862] site= 862
+862 None n1-862.plc1.org sls= [861, 862, 863] site= 863
+863 None n1-863.plc1.org sls= [862, 863, 864] site= 864
+864 None n1-864.plc1.org sls= [863, 864, 865] site= 865
+865 None n1-865.plc1.org sls= [864, 865, 866] site= 866
+866 None n1-866.plc1.org sls= [865, 866, 867] site= 867
+867 None n1-867.plc1.org sls= [866, 867, 868] site= 868
+868 None n1-868.plc1.org sls= [867, 868, 869] site= 869
+869 None n1-869.plc1.org sls= [868, 869, 870] site= 870
+870 None n1-870.plc1.org sls= [869, 870, 871] site= 871
+871 None n1-871.plc1.org sls= [870, 871, 872] site= 872
+872 None n1-872.plc1.org sls= [871, 872, 873] site= 873
+873 None n1-873.plc1.org sls= [872, 873, 874] site= 874
+874 None n1-874.plc1.org sls= [873, 874, 875] site= 875
+875 None n1-875.plc1.org sls= [874, 875, 876] site= 876
+876 None n1-876.plc1.org sls= [875, 876, 877] site= 877
+877 None n1-877.plc1.org sls= [876, 877, 878] site= 878
+878 None n1-878.plc1.org sls= [877, 878, 879] site= 879
+879 None n1-879.plc1.org sls= [878, 879, 880] site= 880
+880 None n1-880.plc1.org sls= [879, 880, 881] site= 881
+881 None n1-881.plc1.org sls= [880, 881, 882] site= 882
+882 None n1-882.plc1.org sls= [881, 882, 883] site= 883
+883 None n1-883.plc1.org sls= [882, 883, 884] site= 884
+884 None n1-884.plc1.org sls= [883, 884, 885] site= 885
+885 None n1-885.plc1.org sls= [884, 885, 886] site= 886
+886 None n1-886.plc1.org sls= [885, 886, 887] site= 887
+887 None n1-887.plc1.org sls= [886, 887, 888] site= 888
+888 None n1-888.plc1.org sls= [887, 888, 889] site= 889
+889 None n1-889.plc1.org sls= [888, 889, 890] site= 890
+890 None n1-890.plc1.org sls= [889, 890, 891] site= 891
+891 None n1-891.plc1.org sls= [890, 891, 892] site= 892
+892 None n1-892.plc1.org sls= [891, 892, 893] site= 893
+893 None n1-893.plc1.org sls= [892, 893, 894] site= 894
+894 None n1-894.plc1.org sls= [893, 894, 895] site= 895
+895 None n1-895.plc1.org sls= [894, 895, 896] site= 896
+896 None n1-896.plc1.org sls= [895, 896, 897] site= 897
+897 None n1-897.plc1.org sls= [896, 897, 898] site= 898
+898 None n1-898.plc1.org sls= [897, 898, 899] site= 899
+899 None n1-899.plc1.org sls= [898, 899, 900] site= 900
+900 None n1-900.plc1.org sls= [899, 900, 901] site= 901
+901 None n1-901.plc1.org sls= [900, 901, 902] site= 902
+902 None n1-902.plc1.org sls= [901, 902, 903] site= 903
+903 None n1-903.plc1.org sls= [902, 903, 904] site= 904
+904 None n1-904.plc1.org sls= [903, 904, 905] site= 905
+905 None n1-905.plc1.org sls= [904, 905, 906] site= 906
+906 None n1-906.plc1.org sls= [905, 906, 907] site= 907
+907 None n1-907.plc1.org sls= [906, 907, 908] site= 908
+908 None n1-908.plc1.org sls= [907, 908, 909] site= 909
+909 None n1-909.plc1.org sls= [908, 909, 910] site= 910
+910 None n1-910.plc1.org sls= [909, 910, 911] site= 911
+911 None n1-911.plc1.org sls= [910, 911, 912] site= 912
+912 None n1-912.plc1.org sls= [911, 912, 913] site= 913
+913 None n1-913.plc1.org sls= [912, 913, 914] site= 914
+914 None n1-914.plc1.org sls= [913, 914, 915] site= 915
+915 None n1-915.plc1.org sls= [914, 915, 916] site= 916
+916 None n1-916.plc1.org sls= [915, 916, 917] site= 917
+917 None n1-917.plc1.org sls= [916, 917, 918] site= 918
+918 None n1-918.plc1.org sls= [917, 918, 919] site= 919
+919 None n1-919.plc1.org sls= [918, 919, 920] site= 920
+920 None n1-920.plc1.org sls= [919, 920, 921] site= 921
+921 None n1-921.plc1.org sls= [920, 921, 922] site= 922
+922 None n1-922.plc1.org sls= [921, 922, 923] site= 923
+923 None n1-923.plc1.org sls= [922, 923, 924] site= 924
+924 None n1-924.plc1.org sls= [923, 924, 925] site= 925
+925 None n1-925.plc1.org sls= [924, 925, 926] site= 926
+926 None n1-926.plc1.org sls= [925, 926, 927] site= 927
+927 None n1-927.plc1.org sls= [926, 927, 928] site= 928
+928 None n1-928.plc1.org sls= [927, 928, 929] site= 929
+929 None n1-929.plc1.org sls= [928, 929, 930] site= 930
+930 None n1-930.plc1.org sls= [929, 930, 931] site= 931
+931 None n1-931.plc1.org sls= [930, 931, 932] site= 932
+932 None n1-932.plc1.org sls= [931, 932, 933] site= 933
+933 None n1-933.plc1.org sls= [932, 933, 934] site= 934
+934 None n1-934.plc1.org sls= [933, 934, 935] site= 935
+935 None n1-935.plc1.org sls= [934, 935, 936] site= 936
+936 None n1-936.plc1.org sls= [935, 936, 937] site= 937
+937 None n1-937.plc1.org sls= [936, 937, 938] site= 938
+938 None n1-938.plc1.org sls= [937, 938, 939] site= 939
+939 None n1-939.plc1.org sls= [938, 939, 940] site= 940
+940 None n1-940.plc1.org sls= [939, 940, 941] site= 941
+941 None n1-941.plc1.org sls= [940, 941, 942] site= 942
+942 None n1-942.plc1.org sls= [941, 942, 943] site= 943
+943 None n1-943.plc1.org sls= [942, 943, 944] site= 944
+944 None n1-944.plc1.org sls= [943, 944, 945] site= 945
+945 None n1-945.plc1.org sls= [944, 945, 946] site= 946
+946 None n1-946.plc1.org sls= [945, 946, 947] site= 947
+947 None n1-947.plc1.org sls= [946, 947, 948] site= 948
+948 None n1-948.plc1.org sls= [947, 948, 949] site= 949
+949 None n1-949.plc1.org sls= [948, 949, 950] site= 950
+950 None n1-950.plc1.org sls= [949, 950, 951] site= 951
+951 None n1-951.plc1.org sls= [950, 951, 952] site= 952
+952 None n1-952.plc1.org sls= [951, 952, 953] site= 953
+953 None n1-953.plc1.org sls= [952, 953, 954] site= 954
+954 None n1-954.plc1.org sls= [953, 954, 955] site= 955
+955 None n1-955.plc1.org sls= [954, 955, 956] site= 956
+956 None n1-956.plc1.org sls= [955, 956, 957] site= 957
+957 None n1-957.plc1.org sls= [956, 957, 958] site= 958
+958 None n1-958.plc1.org sls= [957, 958, 959] site= 959
+959 None n1-959.plc1.org sls= [958, 959, 960] site= 960
+960 None n1-960.plc1.org sls= [959, 960, 961] site= 961
+961 None n1-961.plc1.org sls= [960, 961, 962] site= 962
+962 None n1-962.plc1.org sls= [961, 962, 963] site= 963
+963 None n1-963.plc1.org sls= [962, 963, 964] site= 964
+964 None n1-964.plc1.org sls= [963, 964, 965] site= 965
+965 None n1-965.plc1.org sls= [964, 965, 966] site= 966
+966 None n1-966.plc1.org sls= [965, 966, 967] site= 967
+967 None n1-967.plc1.org sls= [966, 967, 968] site= 968
+968 None n1-968.plc1.org sls= [967, 968, 969] site= 969
+969 None n1-969.plc1.org sls= [968, 969, 970] site= 970
+970 None n1-970.plc1.org sls= [969, 970, 971] site= 971
+971 None n1-971.plc1.org sls= [970, 971, 972] site= 972
+972 None n1-972.plc1.org sls= [971, 972, 973] site= 973
+973 None n1-973.plc1.org sls= [972, 973, 974] site= 974
+974 None n1-974.plc1.org sls= [973, 974, 975] site= 975
+975 None n1-975.plc1.org sls= [974, 975, 976] site= 976
+976 None n1-976.plc1.org sls= [975, 976, 977] site= 977
+977 None n1-977.plc1.org sls= [976, 977, 978] site= 978
+978 None n1-978.plc1.org sls= [977, 978, 979] site= 979
+979 None n1-979.plc1.org sls= [978, 979, 980] site= 980
+980 None n1-980.plc1.org sls= [979, 980, 981] site= 981
+981 None n1-981.plc1.org sls= [980, 981, 982] site= 982
+982 None n1-982.plc1.org sls= [981, 982, 983] site= 983
+983 None n1-983.plc1.org sls= [982, 983, 984] site= 984
+984 None n1-984.plc1.org sls= [983, 984, 985] site= 985
+985 None n1-985.plc1.org sls= [984, 985, 986] site= 986
+986 None n1-986.plc1.org sls= [985, 986, 987] site= 987
+987 None n1-987.plc1.org sls= [986, 987, 988] site= 988
+988 None n1-988.plc1.org sls= [987, 988, 989] site= 989
+989 None n1-989.plc1.org sls= [988, 989, 990] site= 990
+990 None n1-990.plc1.org sls= [989, 990, 991] site= 991
+991 None n1-991.plc1.org sls= [990, 991, 992] site= 992
+992 None n1-992.plc1.org sls= [991, 992, 993] site= 993
+993 None n1-993.plc1.org sls= [992, 993, 994] site= 994
+994 None n1-994.plc1.org sls= [993, 994, 995] site= 995
+995 None n1-995.plc1.org sls= [994, 995, 996] site= 996
+996 None n1-996.plc1.org sls= [995, 996, 997] site= 997
+997 None n1-997.plc1.org sls= [996, 997, 998] site= 998
+998 None n1-998.plc1.org sls= [997, 998, 999] site= 999
+999 None n1-999.plc1.org sls= [998, 999, 1000] site= 1000
+1000 None n1-1000.plc1.org sls= [999, 1000, 1001] site= 1001
+1001 None n1-1001.plc1.org sls= [1000, 1001, 1002] site= 2
+1002 None n1-1002.plc1.org sls= [1001, 1002, 1003] site= 3
+1003 None n1-1003.plc1.org sls= [1002, 1003, 1004] site= 4
+1004 None n1-1004.plc1.org sls= [1003, 1004, 1005] site= 5
+1005 None n1-1005.plc1.org sls= [1004, 1005, 1006] site= 6
+1006 None n1-1006.plc1.org sls= [1005, 1006, 1007] site= 7
+1007 None n1-1007.plc1.org sls= [1006, 1007, 1008] site= 8
+1008 None n1-1008.plc1.org sls= [1007, 1008, 1009] site= 9
+1009 None n1-1009.plc1.org sls= [1008, 1009, 1010] site= 10
+1010 None n1-1010.plc1.org sls= [1009, 1010, 1011] site= 11
+1011 None n1-1011.plc1.org sls= [1010, 1011, 1012] site= 12
+1012 None n1-1012.plc1.org sls= [1011, 1012, 1013] site= 13
+1013 None n1-1013.plc1.org sls= [1012, 1013, 1014] site= 14
+1014 None n1-1014.plc1.org sls= [1013, 1014, 1015] site= 15
+1015 None n1-1015.plc1.org sls= [1014, 1015, 1016] site= 16
+1016 None n1-1016.plc1.org sls= [1015, 1016, 1017] site= 17
+1017 None n1-1017.plc1.org sls= [1016, 1017, 1018] site= 18
+1018 None n1-1018.plc1.org sls= [1017, 1018, 1019] site= 19
+1019 None n1-1019.plc1.org sls= [1018, 1019, 1020] site= 20
+1020 None n1-1020.plc1.org sls= [1019, 1020, 1021] site= 21
+1021 None n1-1021.plc1.org sls= [1020, 1021, 1022] site= 22
+1022 None n1-1022.plc1.org sls= [1021, 1022, 1023] site= 23
+1023 None n1-1023.plc1.org sls= [1022, 1023, 1024] site= 24
+1024 None n1-1024.plc1.org sls= [1023, 1024, 1025] site= 25
+1025 None n1-1025.plc1.org sls= [1024, 1025, 1026] site= 26
+1026 None n1-1026.plc1.org sls= [1025, 1026, 1027] site= 27
+1027 None n1-1027.plc1.org sls= [1026, 1027, 1028] site= 28
+1028 None n1-1028.plc1.org sls= [1027, 1028, 1029] site= 29
+1029 None n1-1029.plc1.org sls= [1028, 1029, 1030] site= 30
+1030 None n1-1030.plc1.org sls= [1029, 1030, 1031] site= 31
+1031 None n1-1031.plc1.org sls= [1030, 1031, 1032] site= 32
+1032 None n1-1032.plc1.org sls= [1031, 1032, 1033] site= 33
+1033 None n1-1033.plc1.org sls= [1032, 1033, 1034] site= 34
+1034 None n1-1034.plc1.org sls= [1033, 1034, 1035] site= 35
+1035 None n1-1035.plc1.org sls= [1034, 1035, 1036] site= 36
+1036 None n1-1036.plc1.org sls= [1035, 1036, 1037] site= 37
+1037 None n1-1037.plc1.org sls= [1036, 1037, 1038] site= 38
+1038 None n1-1038.plc1.org sls= [1037, 1038, 1039] site= 39
+1039 None n1-1039.plc1.org sls= [1038, 1039, 1040] site= 40
+1040 None n1-1040.plc1.org sls= [1039, 1040, 1041] site= 41
+1041 None n1-1041.plc1.org sls= [1040, 1041, 1042] site= 42
+1042 None n1-1042.plc1.org sls= [1041, 1042, 1043] site= 43
+1043 None n1-1043.plc1.org sls= [1042, 1043, 1044] site= 44
+1044 None n1-1044.plc1.org sls= [1043, 1044, 1045] site= 45
+1045 None n1-1045.plc1.org sls= [1044, 1045, 1046] site= 46
+1046 None n1-1046.plc1.org sls= [1045, 1046, 1047] site= 47
+1047 None n1-1047.plc1.org sls= [1046, 1047, 1048] site= 48
+1048 None n1-1048.plc1.org sls= [1047, 1048, 1049] site= 49
+1049 None n1-1049.plc1.org sls= [1048, 1049, 1050] site= 50
+1050 None n1-1050.plc1.org sls= [1049, 1050, 1051] site= 51
+1051 None n1-1051.plc1.org sls= [1050, 1051, 1052] site= 52
+1052 None n1-1052.plc1.org sls= [1051, 1052, 1053] site= 53
+1053 None n1-1053.plc1.org sls= [1052, 1053, 1054] site= 54
+1054 None n1-1054.plc1.org sls= [1053, 1054, 1055] site= 55
+1055 None n1-1055.plc1.org sls= [1054, 1055, 1056] site= 56
+1056 None n1-1056.plc1.org sls= [1055, 1056, 1057] site= 57
+1057 None n1-1057.plc1.org sls= [1056, 1057, 1058] site= 58
+1058 None n1-1058.plc1.org sls= [1057, 1058, 1059] site= 59
+1059 None n1-1059.plc1.org sls= [1058, 1059, 1060] site= 60
+1060 None n1-1060.plc1.org sls= [1059, 1060, 1061] site= 61
+1061 None n1-1061.plc1.org sls= [1060, 1061, 1062] site= 62
+1062 None n1-1062.plc1.org sls= [1061, 1062, 1063] site= 63
+1063 None n1-1063.plc1.org sls= [1062, 1063, 1064] site= 64
+1064 None n1-1064.plc1.org sls= [1063, 1064, 1065] site= 65
+1065 None n1-1065.plc1.org sls= [1064, 1065, 1066] site= 66
+1066 None n1-1066.plc1.org sls= [1065, 1066, 1067] site= 67
+1067 None n1-1067.plc1.org sls= [1066, 1067, 1068] site= 68
+1068 None n1-1068.plc1.org sls= [1067, 1068, 1069] site= 69
+1069 None n1-1069.plc1.org sls= [1068, 1069, 1070] site= 70
+1070 None n1-1070.plc1.org sls= [1069, 1070, 1071] site= 71
+1071 None n1-1071.plc1.org sls= [1070, 1071, 1072] site= 72
+1072 None n1-1072.plc1.org sls= [1071, 1072, 1073] site= 73
+1073 None n1-1073.plc1.org sls= [1072, 1073, 1074] site= 74
+1074 None n1-1074.plc1.org sls= [1073, 1074, 1075] site= 75
+1075 None n1-1075.plc1.org sls= [1074, 1075, 1076] site= 76
+1076 None n1-1076.plc1.org sls= [1075, 1076, 1077] site= 77
+1077 None n1-1077.plc1.org sls= [1076, 1077, 1078] site= 78
+1078 None n1-1078.plc1.org sls= [1077, 1078, 1079] site= 79
+1079 None n1-1079.plc1.org sls= [1078, 1079, 1080] site= 80
+1080 None n1-1080.plc1.org sls= [1079, 1080, 1081] site= 81
+1081 None n1-1081.plc1.org sls= [1080, 1081, 1082] site= 82
+1082 None n1-1082.plc1.org sls= [1081, 1082, 1083] site= 83
+1083 None n1-1083.plc1.org sls= [1082, 1083, 1084] site= 84
+1084 None n1-1084.plc1.org sls= [1083, 1084, 1085] site= 85
+1085 None n1-1085.plc1.org sls= [1084, 1085, 1086] site= 86
+1086 None n1-1086.plc1.org sls= [1085, 1086, 1087] site= 87
+1087 None n1-1087.plc1.org sls= [1086, 1087, 1088] site= 88
+1088 None n1-1088.plc1.org sls= [1087, 1088, 1089] site= 89
+1089 None n1-1089.plc1.org sls= [1088, 1089, 1090] site= 90
+1090 None n1-1090.plc1.org sls= [1089, 1090, 1091] site= 91
+1091 None n1-1091.plc1.org sls= [1090, 1091, 1092] site= 92
+1092 None n1-1092.plc1.org sls= [1091, 1092, 1093] site= 93
+1093 None n1-1093.plc1.org sls= [1092, 1093, 1094] site= 94
+1094 None n1-1094.plc1.org sls= [1093, 1094, 1095] site= 95
+1095 None n1-1095.plc1.org sls= [1094, 1095, 1096] site= 96
+1096 None n1-1096.plc1.org sls= [1095, 1096, 1097] site= 97
+1097 None n1-1097.plc1.org sls= [1096, 1097, 1098] site= 98
+1098 None n1-1098.plc1.org sls= [1097, 1098, 1099] site= 99
+1099 None n1-1099.plc1.org sls= [1098, 1099, 1100] site= 100
+1100 None n1-1100.plc1.org sls= [1099, 1100, 1101] site= 101
+1101 None n1-1101.plc1.org sls= [1100, 1101, 1102] site= 102
+1102 None n1-1102.plc1.org sls= [1101, 1102, 1103] site= 103
+1103 None n1-1103.plc1.org sls= [1102, 1103, 1104] site= 104
+1104 None n1-1104.plc1.org sls= [1103, 1104, 1105] site= 105
+1105 None n1-1105.plc1.org sls= [1104, 1105, 1106] site= 106
+1106 None n1-1106.plc1.org sls= [1105, 1106, 1107] site= 107
+1107 None n1-1107.plc1.org sls= [1106, 1107, 1108] site= 108
+1108 None n1-1108.plc1.org sls= [1107, 1108, 1109] site= 109
+1109 None n1-1109.plc1.org sls= [1108, 1109, 1110] site= 110
+1110 None n1-1110.plc1.org sls= [1109, 1110, 1111] site= 111
+1111 None n1-1111.plc1.org sls= [1110, 1111, 1112] site= 112
+1112 None n1-1112.plc1.org sls= [1111, 1112, 1113] site= 113
+1113 None n1-1113.plc1.org sls= [1112, 1113, 1114] site= 114
+1114 None n1-1114.plc1.org sls= [1113, 1114, 1115] site= 115
+1115 None n1-1115.plc1.org sls= [1114, 1115, 1116] site= 116
+1116 None n1-1116.plc1.org sls= [1115, 1116, 1117] site= 117
+1117 None n1-1117.plc1.org sls= [1116, 1117, 1118] site= 118
+1118 None n1-1118.plc1.org sls= [1117, 1118, 1119] site= 119
+1119 None n1-1119.plc1.org sls= [1118, 1119, 1120] site= 120
+1120 None n1-1120.plc1.org sls= [1119, 1120, 1121] site= 121
+1121 None n1-1121.plc1.org sls= [1120, 1121, 1122] site= 122
+1122 None n1-1122.plc1.org sls= [1121, 1122, 1123] site= 123
+1123 None n1-1123.plc1.org sls= [1122, 1123, 1124] site= 124
+1124 None n1-1124.plc1.org sls= [1123, 1124, 1125] site= 125
+1125 None n1-1125.plc1.org sls= [1124, 1125, 1126] site= 126
+1126 None n1-1126.plc1.org sls= [1125, 1126, 1127] site= 127
+1127 None n1-1127.plc1.org sls= [1126, 1127, 1128] site= 128
+1128 None n1-1128.plc1.org sls= [1127, 1128, 1129] site= 129
+1129 None n1-1129.plc1.org sls= [1128, 1129, 1130] site= 130
+1130 None n1-1130.plc1.org sls= [1129, 1130, 1131] site= 131
+1131 None n1-1131.plc1.org sls= [1130, 1131, 1132] site= 132
+1132 None n1-1132.plc1.org sls= [1131, 1132, 1133] site= 133
+1133 None n1-1133.plc1.org sls= [1132, 1133, 1134] site= 134
+1134 None n1-1134.plc1.org sls= [1133, 1134, 1135] site= 135
+1135 None n1-1135.plc1.org sls= [1134, 1135, 1136] site= 136
+1136 None n1-1136.plc1.org sls= [1135, 1136, 1137] site= 137
+1137 None n1-1137.plc1.org sls= [1136, 1137, 1138] site= 138
+1138 None n1-1138.plc1.org sls= [1137, 1138, 1139] site= 139
+1139 None n1-1139.plc1.org sls= [1138, 1139, 1140] site= 140
+1140 None n1-1140.plc1.org sls= [1139, 1140, 1141] site= 141
+1141 None n1-1141.plc1.org sls= [1140, 1141, 1142] site= 142
+1142 None n1-1142.plc1.org sls= [1141, 1142, 1143] site= 143
+1143 None n1-1143.plc1.org sls= [1142, 1143, 1144] site= 144
+1144 None n1-1144.plc1.org sls= [1143, 1144, 1145] site= 145
+1145 None n1-1145.plc1.org sls= [1144, 1145, 1146] site= 146
+1146 None n1-1146.plc1.org sls= [1145, 1146, 1147] site= 147
+1147 None n1-1147.plc1.org sls= [1146, 1147, 1148] site= 148
+1148 None n1-1148.plc1.org sls= [1147, 1148, 1149] site= 149
+1149 None n1-1149.plc1.org sls= [1148, 1149, 1150] site= 150
+1150 None n1-1150.plc1.org sls= [1149, 1150, 1151] site= 151
+1151 None n1-1151.plc1.org sls= [1150, 1151, 1152] site= 152
+1152 None n1-1152.plc1.org sls= [1151, 1152, 1153] site= 153
+1153 None n1-1153.plc1.org sls= [1152, 1153, 1154] site= 154
+1154 None n1-1154.plc1.org sls= [1153, 1154, 1155] site= 155
+1155 None n1-1155.plc1.org sls= [1154, 1155, 1156] site= 156
+1156 None n1-1156.plc1.org sls= [1155, 1156, 1157] site= 157
+1157 None n1-1157.plc1.org sls= [1156, 1157, 1158] site= 158
+1158 None n1-1158.plc1.org sls= [1157, 1158, 1159] site= 159
+1159 None n1-1159.plc1.org sls= [1158, 1159, 1160] site= 160
+1160 None n1-1160.plc1.org sls= [1159, 1160, 1161] site= 161
+1161 None n1-1161.plc1.org sls= [1160, 1161, 1162] site= 162
+1162 None n1-1162.plc1.org sls= [1161, 1162, 1163] site= 163
+1163 None n1-1163.plc1.org sls= [1162, 1163, 1164] site= 164
+1164 None n1-1164.plc1.org sls= [1163, 1164, 1165] site= 165
+1165 None n1-1165.plc1.org sls= [1164, 1165, 1166] site= 166
+1166 None n1-1166.plc1.org sls= [1165, 1166, 1167] site= 167
+1167 None n1-1167.plc1.org sls= [1166, 1167, 1168] site= 168
+1168 None n1-1168.plc1.org sls= [1167, 1168, 1169] site= 169
+1169 None n1-1169.plc1.org sls= [1168, 1169, 1170] site= 170
+1170 None n1-1170.plc1.org sls= [1169, 1170, 1171] site= 171
+1171 None n1-1171.plc1.org sls= [1170, 1171, 1172] site= 172
+1172 None n1-1172.plc1.org sls= [1171, 1172, 1173] site= 173
+1173 None n1-1173.plc1.org sls= [1172, 1173, 1174] site= 174
+1174 None n1-1174.plc1.org sls= [1173, 1174, 1175] site= 175
+1175 None n1-1175.plc1.org sls= [1174, 1175, 1176] site= 176
+1176 None n1-1176.plc1.org sls= [1175, 1176, 1177] site= 177
+1177 None n1-1177.plc1.org sls= [1176, 1177, 1178] site= 178
+1178 None n1-1178.plc1.org sls= [1177, 1178, 1179] site= 179
+1179 None n1-1179.plc1.org sls= [1178, 1179, 1180] site= 180
+1180 None n1-1180.plc1.org sls= [1179, 1180, 1181] site= 181
+1181 None n1-1181.plc1.org sls= [1180, 1181, 1182] site= 182
+1182 None n1-1182.plc1.org sls= [1181, 1182, 1183] site= 183
+1183 None n1-1183.plc1.org sls= [1182, 1183, 1184] site= 184
+1184 None n1-1184.plc1.org sls= [1183, 1184, 1185] site= 185
+1185 None n1-1185.plc1.org sls= [1184, 1185, 1186] site= 186
+1186 None n1-1186.plc1.org sls= [1185, 1186, 1187] site= 187
+1187 None n1-1187.plc1.org sls= [1186, 1187, 1188] site= 188
+1188 None n1-1188.plc1.org sls= [1187, 1188, 1189] site= 189
+1189 None n1-1189.plc1.org sls= [1188, 1189, 1190] site= 190
+1190 None n1-1190.plc1.org sls= [1189, 1190, 1191] site= 191
+1191 None n1-1191.plc1.org sls= [1190, 1191, 1192] site= 192
+1192 None n1-1192.plc1.org sls= [1191, 1192, 1193] site= 193
+1193 None n1-1193.plc1.org sls= [1192, 1193, 1194] site= 194
+1194 None n1-1194.plc1.org sls= [1193, 1194, 1195] site= 195
+1195 None n1-1195.plc1.org sls= [1194, 1195, 1196] site= 196
+1196 None n1-1196.plc1.org sls= [1195, 1196, 1197] site= 197
+1197 None n1-1197.plc1.org sls= [1196, 1197, 1198] site= 198
+1198 None n1-1198.plc1.org sls= [1197, 1198, 1199] site= 199
+1199 None n1-1199.plc1.org sls= [1198, 1199, 1200] site= 200
+1200 None n1-1200.plc1.org sls= [1199, 1200, 1201] site= 201
+1201 None n1-1201.plc1.org sls= [1200, 1201, 1202] site= 202
+1202 None n1-1202.plc1.org sls= [1201, 1202, 1203] site= 203
+1203 None n1-1203.plc1.org sls= [1202, 1203, 1204] site= 204
+1204 None n1-1204.plc1.org sls= [1203, 1204, 1205] site= 205
+1205 None n1-1205.plc1.org sls= [1204, 1205, 1206] site= 206
+1206 None n1-1206.plc1.org sls= [1205, 1206, 1207] site= 207
+1207 None n1-1207.plc1.org sls= [1206, 1207, 1208] site= 208
+1208 None n1-1208.plc1.org sls= [1207, 1208, 1209] site= 209
+1209 None n1-1209.plc1.org sls= [1208, 1209, 1210] site= 210
+1210 None n1-1210.plc1.org sls= [1209, 1210, 1211] site= 211
+1211 None n1-1211.plc1.org sls= [1210, 1211, 1212] site= 212
+1212 None n1-1212.plc1.org sls= [1211, 1212, 1213] site= 213
+1213 None n1-1213.plc1.org sls= [1212, 1213, 1214] site= 214
+1214 None n1-1214.plc1.org sls= [1213, 1214, 1215] site= 215
+1215 None n1-1215.plc1.org sls= [1214, 1215, 1216] site= 216
+1216 None n1-1216.plc1.org sls= [1215, 1216, 1217] site= 217
+1217 None n1-1217.plc1.org sls= [1216, 1217, 1218] site= 218
+1218 None n1-1218.plc1.org sls= [1217, 1218, 1219] site= 219
+1219 None n1-1219.plc1.org sls= [1218, 1219, 1220] site= 220
+1220 None n1-1220.plc1.org sls= [1219, 1220, 1221] site= 221
+1221 None n1-1221.plc1.org sls= [1220, 1221, 1222] site= 222
+1222 None n1-1222.plc1.org sls= [1221, 1222, 1223] site= 223
+1223 None n1-1223.plc1.org sls= [1222, 1223, 1224] site= 224
+1224 None n1-1224.plc1.org sls= [1223, 1224, 1225] site= 225
+1225 None n1-1225.plc1.org sls= [1224, 1225, 1226] site= 226
+1226 None n1-1226.plc1.org sls= [1225, 1226, 1227] site= 227
+1227 None n1-1227.plc1.org sls= [1226, 1227, 1228] site= 228
+1228 None n1-1228.plc1.org sls= [1227, 1228, 1229] site= 229
+1229 None n1-1229.plc1.org sls= [1228, 1229, 1230] site= 230
+1230 None n1-1230.plc1.org sls= [1229, 1230, 1231] site= 231
+1231 None n1-1231.plc1.org sls= [1230, 1231, 1232] site= 232
+1232 None n1-1232.plc1.org sls= [1231, 1232, 1233] site= 233
+1233 None n1-1233.plc1.org sls= [1232, 1233, 1234] site= 234
+1234 None n1-1234.plc1.org sls= [1233, 1234, 1235] site= 235
+1235 None n1-1235.plc1.org sls= [1234, 1235, 1236] site= 236
+1236 None n1-1236.plc1.org sls= [1235, 1236, 1237] site= 237
+1237 None n1-1237.plc1.org sls= [1236, 1237, 1238] site= 238
+1238 None n1-1238.plc1.org sls= [1237, 1238, 1239] site= 239
+1239 None n1-1239.plc1.org sls= [1238, 1239, 1240] site= 240
+1240 None n1-1240.plc1.org sls= [1239, 1240, 1241] site= 241
+1241 None n1-1241.plc1.org sls= [1240, 1241, 1242] site= 242
+1242 None n1-1242.plc1.org sls= [1241, 1242, 1243] site= 243
+1243 None n1-1243.plc1.org sls= [1242, 1243, 1244] site= 244
+1244 None n1-1244.plc1.org sls= [1243, 1244, 1245] site= 245
+1245 None n1-1245.plc1.org sls= [1244, 1245, 1246] site= 246
+1246 None n1-1246.plc1.org sls= [1245, 1246, 1247] site= 247
+1247 None n1-1247.plc1.org sls= [1246, 1247, 1248] site= 248
+1248 None n1-1248.plc1.org sls= [1247, 1248, 1249] site= 249
+1249 None n1-1249.plc1.org sls= [1248, 1249, 1250] site= 250
+1250 None n1-1250.plc1.org sls= [1249, 1250, 1251] site= 251
+1251 None n1-1251.plc1.org sls= [1250, 1251, 1252] site= 252
+1252 None n1-1252.plc1.org sls= [1251, 1252, 1253] site= 253
+1253 None n1-1253.plc1.org sls= [1252, 1253, 1254] site= 254
+1254 None n1-1254.plc1.org sls= [1253, 1254, 1255] site= 255
+1255 None n1-1255.plc1.org sls= [1254, 1255, 1256] site= 256
+1256 None n1-1256.plc1.org sls= [1255, 1256, 1257] site= 257
+1257 None n1-1257.plc1.org sls= [1256, 1257, 1258] site= 258
+1258 None n1-1258.plc1.org sls= [1257, 1258, 1259] site= 259
+1259 None n1-1259.plc1.org sls= [1258, 1259, 1260] site= 260
+1260 None n1-1260.plc1.org sls= [1259, 1260, 1261] site= 261
+1261 None n1-1261.plc1.org sls= [1260, 1261, 1262] site= 262
+1262 None n1-1262.plc1.org sls= [1261, 1262, 1263] site= 263
+1263 None n1-1263.plc1.org sls= [1262, 1263, 1264] site= 264
+1264 None n1-1264.plc1.org sls= [1263, 1264, 1265] site= 265
+1265 None n1-1265.plc1.org sls= [1264, 1265, 1266] site= 266
+1266 None n1-1266.plc1.org sls= [1265, 1266, 1267] site= 267
+1267 None n1-1267.plc1.org sls= [1266, 1267, 1268] site= 268
+1268 None n1-1268.plc1.org sls= [1267, 1268, 1269] site= 269
+1269 None n1-1269.plc1.org sls= [1268, 1269, 1270] site= 270
+1270 None n1-1270.plc1.org sls= [1269, 1270, 1271] site= 271
+1271 None n1-1271.plc1.org sls= [1270, 1271, 1272] site= 272
+1272 None n1-1272.plc1.org sls= [1271, 1272, 1273] site= 273
+1273 None n1-1273.plc1.org sls= [1272, 1273, 1274] site= 274
+1274 None n1-1274.plc1.org sls= [1273, 1274, 1275] site= 275
+1275 None n1-1275.plc1.org sls= [1274, 1275, 1276] site= 276
+1276 None n1-1276.plc1.org sls= [1275, 1276, 1277] site= 277
+1277 None n1-1277.plc1.org sls= [1276, 1277, 1278] site= 278
+1278 None n1-1278.plc1.org sls= [1277, 1278, 1279] site= 279
+1279 None n1-1279.plc1.org sls= [1278, 1279, 1280] site= 280
+1280 None n1-1280.plc1.org sls= [1279, 1280, 1281] site= 281
+1281 None n1-1281.plc1.org sls= [1280, 1281, 1282] site= 282
+1282 None n1-1282.plc1.org sls= [1281, 1282, 1283] site= 283
+1283 None n1-1283.plc1.org sls= [1282, 1283, 1284] site= 284
+1284 None n1-1284.plc1.org sls= [1283, 1284, 1285] site= 285
+1285 None n1-1285.plc1.org sls= [1284, 1285, 1286] site= 286
+1286 None n1-1286.plc1.org sls= [1285, 1286, 1287] site= 287
+1287 None n1-1287.plc1.org sls= [1286, 1287, 1288] site= 288
+1288 None n1-1288.plc1.org sls= [1287, 1288, 1289] site= 289
+1289 None n1-1289.plc1.org sls= [1288, 1289, 1290] site= 290
+1290 None n1-1290.plc1.org sls= [1289, 1290, 1291] site= 291
+1291 None n1-1291.plc1.org sls= [1290, 1291, 1292] site= 292
+1292 None n1-1292.plc1.org sls= [1291, 1292, 1293] site= 293
+1293 None n1-1293.plc1.org sls= [1292, 1293, 1294] site= 294
+1294 None n1-1294.plc1.org sls= [1293, 1294, 1295] site= 295
+1295 None n1-1295.plc1.org sls= [1294, 1295, 1296] site= 296
+1296 None n1-1296.plc1.org sls= [1295, 1296, 1297] site= 297
+1297 None n1-1297.plc1.org sls= [1296, 1297, 1298] site= 298
+1298 None n1-1298.plc1.org sls= [1297, 1298, 1299] site= 299
+1299 None n1-1299.plc1.org sls= [1298, 1299, 1300] site= 300
+1300 None n1-1300.plc1.org sls= [1299, 1300, 1301] site= 301
+1301 None n1-1301.plc1.org sls= [1300, 1301, 1302] site= 302
+1302 None n1-1302.plc1.org sls= [1301, 1302, 1303] site= 303
+1303 None n1-1303.plc1.org sls= [1302, 1303, 1304] site= 304
+1304 None n1-1304.plc1.org sls= [1303, 1304, 1305] site= 305
+1305 None n1-1305.plc1.org sls= [1304, 1305, 1306] site= 306
+1306 None n1-1306.plc1.org sls= [1305, 1306, 1307] site= 307
+1307 None n1-1307.plc1.org sls= [1306, 1307, 1308] site= 308
+1308 None n1-1308.plc1.org sls= [1307, 1308, 1309] site= 309
+1309 None n1-1309.plc1.org sls= [1308, 1309, 1310] site= 310
+1310 None n1-1310.plc1.org sls= [1309, 1310, 1311] site= 311
+1311 None n1-1311.plc1.org sls= [1310, 1311, 1312] site= 312
+1312 None n1-1312.plc1.org sls= [1311, 1312, 1313] site= 313
+1313 None n1-1313.plc1.org sls= [1312, 1313, 1314] site= 314
+1314 None n1-1314.plc1.org sls= [1313, 1314, 1315] site= 315
+1315 None n1-1315.plc1.org sls= [1314, 1315, 1316] site= 316
+1316 None n1-1316.plc1.org sls= [1315, 1316, 1317] site= 317
+1317 None n1-1317.plc1.org sls= [1316, 1317, 1318] site= 318
+1318 None n1-1318.plc1.org sls= [1317, 1318, 1319] site= 319
+1319 None n1-1319.plc1.org sls= [1318, 1319, 1320] site= 320
+1320 None n1-1320.plc1.org sls= [1319, 1320, 1321] site= 321
+1321 None n1-1321.plc1.org sls= [1320, 1321, 1322] site= 322
+1322 None n1-1322.plc1.org sls= [1321, 1322, 1323] site= 323
+1323 None n1-1323.plc1.org sls= [1322, 1323, 1324] site= 324
+1324 None n1-1324.plc1.org sls= [1323, 1324, 1325] site= 325
+1325 None n1-1325.plc1.org sls= [1324, 1325, 1326] site= 326
+1326 None n1-1326.plc1.org sls= [1325, 1326, 1327] site= 327
+1327 None n1-1327.plc1.org sls= [1326, 1327, 1328] site= 328
+1328 None n1-1328.plc1.org sls= [1327, 1328, 1329] site= 329
+1329 None n1-1329.plc1.org sls= [1328, 1329, 1330] site= 330
+1330 None n1-1330.plc1.org sls= [1329, 1330, 1331] site= 331
+1331 None n1-1331.plc1.org sls= [1330, 1331, 1332] site= 332
+1332 None n1-1332.plc1.org sls= [1331, 1332, 1333] site= 333
+1333 None n1-1333.plc1.org sls= [1332, 1333, 1334] site= 334
+1334 None n1-1334.plc1.org sls= [1333, 1334, 1335] site= 335
+1335 None n1-1335.plc1.org sls= [1334, 1335, 1336] site= 336
+1336 None n1-1336.plc1.org sls= [1335, 1336, 1337] site= 337
+1337 None n1-1337.plc1.org sls= [1336, 1337, 1338] site= 338
+1338 None n1-1338.plc1.org sls= [1337, 1338, 1339] site= 339
+1339 None n1-1339.plc1.org sls= [1338, 1339, 1340] site= 340
+1340 None n1-1340.plc1.org sls= [1339, 1340, 1341] site= 341
+1341 None n1-1341.plc1.org sls= [1340, 1341, 1342] site= 342
+1342 None n1-1342.plc1.org sls= [1341, 1342, 1343] site= 343
+1343 None n1-1343.plc1.org sls= [1342, 1343, 1344] site= 344
+1344 None n1-1344.plc1.org sls= [1343, 1344, 1345] site= 345
+1345 None n1-1345.plc1.org sls= [1344, 1345, 1346] site= 346
+1346 None n1-1346.plc1.org sls= [1345, 1346, 1347] site= 347
+1347 None n1-1347.plc1.org sls= [1346, 1347, 1348] site= 348
+1348 None n1-1348.plc1.org sls= [1347, 1348, 1349] site= 349
+1349 None n1-1349.plc1.org sls= [1348, 1349, 1350] site= 350
+1350 None n1-1350.plc1.org sls= [1349, 1350, 1351] site= 351
+1351 None n1-1351.plc1.org sls= [1350, 1351, 1352] site= 352
+1352 None n1-1352.plc1.org sls= [1351, 1352, 1353] site= 353
+1353 None n1-1353.plc1.org sls= [1352, 1353, 1354] site= 354
+1354 None n1-1354.plc1.org sls= [1353, 1354, 1355] site= 355
+1355 None n1-1355.plc1.org sls= [1354, 1355, 1356] site= 356
+1356 None n1-1356.plc1.org sls= [1355, 1356, 1357] site= 357
+1357 None n1-1357.plc1.org sls= [1356, 1357, 1358] site= 358
+1358 None n1-1358.plc1.org sls= [1357, 1358, 1359] site= 359
+1359 None n1-1359.plc1.org sls= [1358, 1359, 1360] site= 360
+1360 None n1-1360.plc1.org sls= [1359, 1360, 1361] site= 361
+1361 None n1-1361.plc1.org sls= [1360, 1361, 1362] site= 362
+1362 None n1-1362.plc1.org sls= [1361, 1362, 1363] site= 363
+1363 None n1-1363.plc1.org sls= [1362, 1363, 1364] site= 364
+1364 None n1-1364.plc1.org sls= [1363, 1364, 1365] site= 365
+1365 None n1-1365.plc1.org sls= [1364, 1365, 1366] site= 366
+1366 None n1-1366.plc1.org sls= [1365, 1366, 1367] site= 367
+1367 None n1-1367.plc1.org sls= [1366, 1367, 1368] site= 368
+1368 None n1-1368.plc1.org sls= [1367, 1368, 1369] site= 369
+1369 None n1-1369.plc1.org sls= [1368, 1369, 1370] site= 370
+1370 None n1-1370.plc1.org sls= [1369, 1370, 1371] site= 371
+1371 None n1-1371.plc1.org sls= [1370, 1371, 1372] site= 372
+1372 None n1-1372.plc1.org sls= [1371, 1372, 1373] site= 373
+1373 None n1-1373.plc1.org sls= [1372, 1373, 1374] site= 374
+1374 None n1-1374.plc1.org sls= [1373, 1374, 1375] site= 375
+1375 None n1-1375.plc1.org sls= [1374, 1375, 1376] site= 376
+1376 None n1-1376.plc1.org sls= [1375, 1376, 1377] site= 377
+1377 None n1-1377.plc1.org sls= [1376, 1377, 1378] site= 378
+1378 None n1-1378.plc1.org sls= [1377, 1378, 1379] site= 379
+1379 None n1-1379.plc1.org sls= [1378, 1379, 1380] site= 380
+1380 None n1-1380.plc1.org sls= [1379, 1380, 1381] site= 381
+1381 None n1-1381.plc1.org sls= [1380, 1381, 1382] site= 382
+1382 None n1-1382.plc1.org sls= [1381, 1382, 1383] site= 383
+1383 None n1-1383.plc1.org sls= [1382, 1383, 1384] site= 384
+1384 None n1-1384.plc1.org sls= [1383, 1384, 1385] site= 385
+1385 None n1-1385.plc1.org sls= [1384, 1385, 1386] site= 386
+1386 None n1-1386.plc1.org sls= [1385, 1386, 1387] site= 387
+1387 None n1-1387.plc1.org sls= [1386, 1387, 1388] site= 388
+1388 None n1-1388.plc1.org sls= [1387, 1388, 1389] site= 389
+1389 None n1-1389.plc1.org sls= [1388, 1389, 1390] site= 390
+1390 None n1-1390.plc1.org sls= [1389, 1390, 1391] site= 391
+1391 None n1-1391.plc1.org sls= [1390, 1391, 1392] site= 392
+1392 None n1-1392.plc1.org sls= [1391, 1392, 1393] site= 393
+1393 None n1-1393.plc1.org sls= [1392, 1393, 1394] site= 394
+1394 None n1-1394.plc1.org sls= [1393, 1394, 1395] site= 395
+1395 None n1-1395.plc1.org sls= [1394, 1395, 1396] site= 396
+1396 None n1-1396.plc1.org sls= [1395, 1396, 1397] site= 397
+1397 None n1-1397.plc1.org sls= [1396, 1397, 1398] site= 398
+1398 None n1-1398.plc1.org sls= [1397, 1398, 1399] site= 399
+1399 None n1-1399.plc1.org sls= [1398, 1399, 1400] site= 400
+1400 None n1-1400.plc1.org sls= [1399, 1400, 1401] site= 401
+1401 None n1-1401.plc1.org sls= [1400, 1401, 1402] site= 402
+1402 None n1-1402.plc1.org sls= [1401, 1402, 1403] site= 403
+1403 None n1-1403.plc1.org sls= [1402, 1403, 1404] site= 404
+1404 None n1-1404.plc1.org sls= [1403, 1404, 1405] site= 405
+1405 None n1-1405.plc1.org sls= [1404, 1405, 1406] site= 406
+1406 None n1-1406.plc1.org sls= [1405, 1406, 1407] site= 407
+1407 None n1-1407.plc1.org sls= [1406, 1407, 1408] site= 408
+1408 None n1-1408.plc1.org sls= [1407, 1408, 1409] site= 409
+1409 None n1-1409.plc1.org sls= [1408, 1409, 1410] site= 410
+1410 None n1-1410.plc1.org sls= [1409, 1410, 1411] site= 411
+1411 None n1-1411.plc1.org sls= [1410, 1411, 1412] site= 412
+1412 None n1-1412.plc1.org sls= [1411, 1412, 1413] site= 413
+1413 None n1-1413.plc1.org sls= [1412, 1413, 1414] site= 414
+1414 None n1-1414.plc1.org sls= [1413, 1414, 1415] site= 415
+1415 None n1-1415.plc1.org sls= [1414, 1415, 1416] site= 416
+1416 None n1-1416.plc1.org sls= [1415, 1416, 1417] site= 417
+1417 None n1-1417.plc1.org sls= [1416, 1417, 1418] site= 418
+1418 None n1-1418.plc1.org sls= [1417, 1418, 1419] site= 419
+1419 None n1-1419.plc1.org sls= [1418, 1419, 1420] site= 420
+1420 None n1-1420.plc1.org sls= [1419, 1420, 1421] site= 421
+1421 None n1-1421.plc1.org sls= [1420, 1421, 1422] site= 422
+1422 None n1-1422.plc1.org sls= [1421, 1422, 1423] site= 423
+1423 None n1-1423.plc1.org sls= [1422, 1423, 1424] site= 424
+1424 None n1-1424.plc1.org sls= [1423, 1424, 1425] site= 425
+1425 None n1-1425.plc1.org sls= [1424, 1425, 1426] site= 426
+1426 None n1-1426.plc1.org sls= [1425, 1426, 1427] site= 427
+1427 None n1-1427.plc1.org sls= [1426, 1427, 1428] site= 428
+1428 None n1-1428.plc1.org sls= [1427, 1428, 1429] site= 429
+1429 None n1-1429.plc1.org sls= [1428, 1429, 1430] site= 430
+1430 None n1-1430.plc1.org sls= [1429, 1430, 1431] site= 431
+1431 None n1-1431.plc1.org sls= [1430, 1431, 1432] site= 432
+1432 None n1-1432.plc1.org sls= [1431, 1432, 1433] site= 433
+1433 None n1-1433.plc1.org sls= [1432, 1433, 1434] site= 434
+1434 None n1-1434.plc1.org sls= [1433, 1434, 1435] site= 435
+1435 None n1-1435.plc1.org sls= [1434, 1435, 1436] site= 436
+1436 None n1-1436.plc1.org sls= [1435, 1436, 1437] site= 437
+1437 None n1-1437.plc1.org sls= [1436, 1437, 1438] site= 438
+1438 None n1-1438.plc1.org sls= [1437, 1438, 1439] site= 439
+1439 None n1-1439.plc1.org sls= [1438, 1439, 1440] site= 440
+1440 None n1-1440.plc1.org sls= [1439, 1440, 1441] site= 441
+1441 None n1-1441.plc1.org sls= [1440, 1441, 1442] site= 442
+1442 None n1-1442.plc1.org sls= [1441, 1442, 1443] site= 443
+1443 None n1-1443.plc1.org sls= [1442, 1443, 1444] site= 444
+1444 None n1-1444.plc1.org sls= [1443, 1444, 1445] site= 445
+1445 None n1-1445.plc1.org sls= [1444, 1445, 1446] site= 446
+1446 None n1-1446.plc1.org sls= [1445, 1446, 1447] site= 447
+1447 None n1-1447.plc1.org sls= [1446, 1447, 1448] site= 448
+1448 None n1-1448.plc1.org sls= [1447, 1448, 1449] site= 449
+1449 None n1-1449.plc1.org sls= [1448, 1449, 1450] site= 450
+1450 None n1-1450.plc1.org sls= [1449, 1450, 1451] site= 451
+1451 None n1-1451.plc1.org sls= [1450, 1451, 1452] site= 452
+1452 None n1-1452.plc1.org sls= [1451, 1452, 1453] site= 453
+1453 None n1-1453.plc1.org sls= [1452, 1453, 1454] site= 454
+1454 None n1-1454.plc1.org sls= [1453, 1454, 1455] site= 455
+1455 None n1-1455.plc1.org sls= [1454, 1455, 1456] site= 456
+1456 None n1-1456.plc1.org sls= [1455, 1456, 1457] site= 457
+1457 None n1-1457.plc1.org sls= [1456, 1457, 1458] site= 458
+1458 None n1-1458.plc1.org sls= [1457, 1458, 1459] site= 459
+1459 None n1-1459.plc1.org sls= [1458, 1459, 1460] site= 460
+1460 None n1-1460.plc1.org sls= [1459, 1460, 1461] site= 461
+1461 None n1-1461.plc1.org sls= [1460, 1461, 1462] site= 462
+1462 None n1-1462.plc1.org sls= [1461, 1462, 1463] site= 463
+1463 None n1-1463.plc1.org sls= [1462, 1463, 1464] site= 464
+1464 None n1-1464.plc1.org sls= [1463, 1464, 1465] site= 465
+1465 None n1-1465.plc1.org sls= [1464, 1465, 1466] site= 466
+1466 None n1-1466.plc1.org sls= [1465, 1466, 1467] site= 467
+1467 None n1-1467.plc1.org sls= [1466, 1467, 1468] site= 468
+1468 None n1-1468.plc1.org sls= [1467, 1468, 1469] site= 469
+1469 None n1-1469.plc1.org sls= [1468, 1469, 1470] site= 470
+1470 None n1-1470.plc1.org sls= [1469, 1470, 1471] site= 471
+1471 None n1-1471.plc1.org sls= [1470, 1471, 1472] site= 472
+1472 None n1-1472.plc1.org sls= [1471, 1472, 1473] site= 473
+1473 None n1-1473.plc1.org sls= [1472, 1473, 1474] site= 474
+1474 None n1-1474.plc1.org sls= [1473, 1474, 1475] site= 475
+1475 None n1-1475.plc1.org sls= [1474, 1475, 1476] site= 476
+1476 None n1-1476.plc1.org sls= [1475, 1476, 1477] site= 477
+1477 None n1-1477.plc1.org sls= [1476, 1477, 1478] site= 478
+1478 None n1-1478.plc1.org sls= [1477, 1478, 1479] site= 479
+1479 None n1-1479.plc1.org sls= [1478, 1479, 1480] site= 480
+1480 None n1-1480.plc1.org sls= [1479, 1480, 1481] site= 481
+1481 None n1-1481.plc1.org sls= [1480, 1481, 1482] site= 482
+1482 None n1-1482.plc1.org sls= [1481, 1482, 1483] site= 483
+1483 None n1-1483.plc1.org sls= [1482, 1483, 1484] site= 484
+1484 None n1-1484.plc1.org sls= [1483, 1484, 1485] site= 485
+1485 None n1-1485.plc1.org sls= [1484, 1485, 1486] site= 486
+1486 None n1-1486.plc1.org sls= [1485, 1486, 1487] site= 487
+1487 None n1-1487.plc1.org sls= [1486, 1487, 1488] site= 488
+1488 None n1-1488.plc1.org sls= [1487, 1488, 1489] site= 489
+1489 None n1-1489.plc1.org sls= [1488, 1489, 1490] site= 490
+1490 None n1-1490.plc1.org sls= [1489, 1490, 1491] site= 491
+1491 None n1-1491.plc1.org sls= [1490, 1491, 1492] site= 492
+1492 None n1-1492.plc1.org sls= [1491, 1492, 1493] site= 493
+1493 None n1-1493.plc1.org sls= [1492, 1493, 1494] site= 494
+1494 None n1-1494.plc1.org sls= [1493, 1494, 1495] site= 495
+1495 None n1-1495.plc1.org sls= [1494, 1495, 1496] site= 496
+1496 None n1-1496.plc1.org sls= [1495, 1496, 1497] site= 497
+1497 None n1-1497.plc1.org sls= [1496, 1497, 1498] site= 498
+1498 None n1-1498.plc1.org sls= [1497, 1498, 1499] site= 499
+1499 None n1-1499.plc1.org sls= [1498, 1499, 1500] site= 500
+1500 None n1-1500.plc1.org sls= [1499, 1500, 1501] site= 501
+1501 None n1-1501.plc1.org sls= [1500, 1501, 1502] site= 502
+1502 None n1-1502.plc1.org sls= [1501, 1502, 1503] site= 503
+1503 None n1-1503.plc1.org sls= [1502, 1503, 1504] site= 504
+1504 None n1-1504.plc1.org sls= [1503, 1504, 1505] site= 505
+1505 None n1-1505.plc1.org sls= [1504, 1505, 1506] site= 506
+1506 None n1-1506.plc1.org sls= [1505, 1506, 1507] site= 507
+1507 None n1-1507.plc1.org sls= [1506, 1507, 1508] site= 508
+1508 None n1-1508.plc1.org sls= [1507, 1508, 1509] site= 509
+1509 None n1-1509.plc1.org sls= [1508, 1509, 1510] site= 510
+1510 None n1-1510.plc1.org sls= [1509, 1510, 1511] site= 511
+1511 None n1-1511.plc1.org sls= [1510, 1511, 1512] site= 512
+1512 None n1-1512.plc1.org sls= [1511, 1512, 1513] site= 513
+1513 None n1-1513.plc1.org sls= [1512, 1513, 1514] site= 514
+1514 None n1-1514.plc1.org sls= [1513, 1514, 1515] site= 515
+1515 None n1-1515.plc1.org sls= [1514, 1515, 1516] site= 516
+1516 None n1-1516.plc1.org sls= [1515, 1516, 1517] site= 517
+1517 None n1-1517.plc1.org sls= [1516, 1517, 1518] site= 518
+1518 None n1-1518.plc1.org sls= [1517, 1518, 1519] site= 519
+1519 None n1-1519.plc1.org sls= [1518, 1519, 1520] site= 520
+1520 None n1-1520.plc1.org sls= [1519, 1520, 1521] site= 521
+1521 None n1-1521.plc1.org sls= [1520, 1521, 1522] site= 522
+1522 None n1-1522.plc1.org sls= [1521, 1522, 1523] site= 523
+1523 None n1-1523.plc1.org sls= [1522, 1523, 1524] site= 524
+1524 None n1-1524.plc1.org sls= [1523, 1524, 1525] site= 525
+1525 None n1-1525.plc1.org sls= [1524, 1525, 1526] site= 526
+1526 None n1-1526.plc1.org sls= [1525, 1526, 1527] site= 527
+1527 None n1-1527.plc1.org sls= [1526, 1527, 1528] site= 528
+1528 None n1-1528.plc1.org sls= [1527, 1528, 1529] site= 529
+1529 None n1-1529.plc1.org sls= [1528, 1529, 1530] site= 530
+1530 None n1-1530.plc1.org sls= [1529, 1530, 1531] site= 531
+1531 None n1-1531.plc1.org sls= [1530, 1531, 1532] site= 532
+1532 None n1-1532.plc1.org sls= [1531, 1532, 1533] site= 533
+1533 None n1-1533.plc1.org sls= [1532, 1533, 1534] site= 534
+1534 None n1-1534.plc1.org sls= [1533, 1534, 1535] site= 535
+1535 None n1-1535.plc1.org sls= [1534, 1535, 1536] site= 536
+1536 None n1-1536.plc1.org sls= [1535, 1536, 1537] site= 537
+1537 None n1-1537.plc1.org sls= [1536, 1537, 1538] site= 538
+1538 None n1-1538.plc1.org sls= [1537, 1538, 1539] site= 539
+1539 None n1-1539.plc1.org sls= [1538, 1539, 1540] site= 540
+1540 None n1-1540.plc1.org sls= [1539, 1540, 1541] site= 541
+1541 None n1-1541.plc1.org sls= [1540, 1541, 1542] site= 542
+1542 None n1-1542.plc1.org sls= [1541, 1542, 1543] site= 543
+1543 None n1-1543.plc1.org sls= [1542, 1543, 1544] site= 544
+1544 None n1-1544.plc1.org sls= [1543, 1544, 1545] site= 545
+1545 None n1-1545.plc1.org sls= [1544, 1545, 1546] site= 546
+1546 None n1-1546.plc1.org sls= [1545, 1546, 1547] site= 547
+1547 None n1-1547.plc1.org sls= [1546, 1547, 1548] site= 548
+1548 None n1-1548.plc1.org sls= [1547, 1548, 1549] site= 549
+1549 None n1-1549.plc1.org sls= [1548, 1549, 1550] site= 550
+1550 None n1-1550.plc1.org sls= [1549, 1550, 1551] site= 551
+1551 None n1-1551.plc1.org sls= [1550, 1551, 1552] site= 552
+1552 None n1-1552.plc1.org sls= [1551, 1552, 1553] site= 553
+1553 None n1-1553.plc1.org sls= [1552, 1553, 1554] site= 554
+1554 None n1-1554.plc1.org sls= [1553, 1554, 1555] site= 555
+1555 None n1-1555.plc1.org sls= [1554, 1555, 1556] site= 556
+1556 None n1-1556.plc1.org sls= [1555, 1556, 1557] site= 557
+1557 None n1-1557.plc1.org sls= [1556, 1557, 1558] site= 558
+1558 None n1-1558.plc1.org sls= [1557, 1558, 1559] site= 559
+1559 None n1-1559.plc1.org sls= [1558, 1559, 1560] site= 560
+1560 None n1-1560.plc1.org sls= [1559, 1560, 1561] site= 561
+1561 None n1-1561.plc1.org sls= [1560, 1561, 1562] site= 562
+1562 None n1-1562.plc1.org sls= [1561, 1562, 1563] site= 563
+1563 None n1-1563.plc1.org sls= [1562, 1563, 1564] site= 564
+1564 None n1-1564.plc1.org sls= [1563, 1564, 1565] site= 565
+1565 None n1-1565.plc1.org sls= [1564, 1565, 1566] site= 566
+1566 None n1-1566.plc1.org sls= [1565, 1566, 1567] site= 567
+1567 None n1-1567.plc1.org sls= [1566, 1567, 1568] site= 568
+1568 None n1-1568.plc1.org sls= [1567, 1568, 1569] site= 569
+1569 None n1-1569.plc1.org sls= [1568, 1569, 1570] site= 570
+1570 None n1-1570.plc1.org sls= [1569, 1570, 1571] site= 571
+1571 None n1-1571.plc1.org sls= [1570, 1571, 1572] site= 572
+1572 None n1-1572.plc1.org sls= [1571, 1572, 1573] site= 573
+1573 None n1-1573.plc1.org sls= [1572, 1573, 1574] site= 574
+1574 None n1-1574.plc1.org sls= [1573, 1574, 1575] site= 575
+1575 None n1-1575.plc1.org sls= [1574, 1575, 1576] site= 576
+1576 None n1-1576.plc1.org sls= [1575, 1576, 1577] site= 577
+1577 None n1-1577.plc1.org sls= [1576, 1577, 1578] site= 578
+1578 None n1-1578.plc1.org sls= [1577, 1578, 1579] site= 579
+1579 None n1-1579.plc1.org sls= [1578, 1579, 1580] site= 580
+1580 None n1-1580.plc1.org sls= [1579, 1580, 1581] site= 581
+1581 None n1-1581.plc1.org sls= [1580, 1581, 1582] site= 582
+1582 None n1-1582.plc1.org sls= [1581, 1582, 1583] site= 583
+1583 None n1-1583.plc1.org sls= [1582, 1583, 1584] site= 584
+1584 None n1-1584.plc1.org sls= [1583, 1584, 1585] site= 585
+1585 None n1-1585.plc1.org sls= [1584, 1585, 1586] site= 586
+1586 None n1-1586.plc1.org sls= [1585, 1586, 1587] site= 587
+1587 None n1-1587.plc1.org sls= [1586, 1587, 1588] site= 588
+1588 None n1-1588.plc1.org sls= [1587, 1588, 1589] site= 589
+1589 None n1-1589.plc1.org sls= [1588, 1589, 1590] site= 590
+1590 None n1-1590.plc1.org sls= [1589, 1590, 1591] site= 591
+1591 None n1-1591.plc1.org sls= [1590, 1591, 1592] site= 592
+1592 None n1-1592.plc1.org sls= [1591, 1592, 1593] site= 593
+1593 None n1-1593.plc1.org sls= [1592, 1593, 1594] site= 594
+1594 None n1-1594.plc1.org sls= [1593, 1594, 1595] site= 595
+1595 None n1-1595.plc1.org sls= [1594, 1595, 1596] site= 596
+1596 None n1-1596.plc1.org sls= [1595, 1596, 1597] site= 597
+1597 None n1-1597.plc1.org sls= [1596, 1597, 1598] site= 598
+1598 None n1-1598.plc1.org sls= [1597, 1598, 1599] site= 599
+1599 None n1-1599.plc1.org sls= [1598, 1599, 1600] site= 600
+1600 None n1-1600.plc1.org sls= [1599, 1600, 1601] site= 601
+1601 None n1-1601.plc1.org sls= [1600, 1601, 1602] site= 602
+1602 None n1-1602.plc1.org sls= [1601, 1602, 1603] site= 603
+1603 None n1-1603.plc1.org sls= [1602, 1603, 1604] site= 604
+1604 None n1-1604.plc1.org sls= [1603, 1604, 1605] site= 605
+1605 None n1-1605.plc1.org sls= [1604, 1605, 1606] site= 606
+1606 None n1-1606.plc1.org sls= [1605, 1606, 1607] site= 607
+1607 None n1-1607.plc1.org sls= [1606, 1607, 1608] site= 608
+1608 None n1-1608.plc1.org sls= [1607, 1608, 1609] site= 609
+1609 None n1-1609.plc1.org sls= [1608, 1609, 1610] site= 610
+1610 None n1-1610.plc1.org sls= [1609, 1610, 1611] site= 611
+1611 None n1-1611.plc1.org sls= [1610, 1611, 1612] site= 612
+1612 None n1-1612.plc1.org sls= [1611, 1612, 1613] site= 613
+1613 None n1-1613.plc1.org sls= [1612, 1613, 1614] site= 614
+1614 None n1-1614.plc1.org sls= [1613, 1614, 1615] site= 615
+1615 None n1-1615.plc1.org sls= [1614, 1615, 1616] site= 616
+1616 None n1-1616.plc1.org sls= [1615, 1616, 1617] site= 617
+1617 None n1-1617.plc1.org sls= [1616, 1617, 1618] site= 618
+1618 None n1-1618.plc1.org sls= [1617, 1618, 1619] site= 619
+1619 None n1-1619.plc1.org sls= [1618, 1619, 1620] site= 620
+1620 None n1-1620.plc1.org sls= [1619, 1620, 1621] site= 621
+1621 None n1-1621.plc1.org sls= [1620, 1621, 1622] site= 622
+1622 None n1-1622.plc1.org sls= [1621, 1622, 1623] site= 623
+1623 None n1-1623.plc1.org sls= [1622, 1623, 1624] site= 624
+1624 None n1-1624.plc1.org sls= [1623, 1624, 1625] site= 625
+1625 None n1-1625.plc1.org sls= [1624, 1625, 1626] site= 626
+1626 None n1-1626.plc1.org sls= [1625, 1626, 1627] site= 627
+1627 None n1-1627.plc1.org sls= [1626, 1627, 1628] site= 628
+1628 None n1-1628.plc1.org sls= [1627, 1628, 1629] site= 629
+1629 None n1-1629.plc1.org sls= [1628, 1629, 1630] site= 630
+1630 None n1-1630.plc1.org sls= [1629, 1630, 1631] site= 631
+1631 None n1-1631.plc1.org sls= [1630, 1631, 1632] site= 632
+1632 None n1-1632.plc1.org sls= [1631, 1632, 1633] site= 633
+1633 None n1-1633.plc1.org sls= [1632, 1633, 1634] site= 634
+1634 None n1-1634.plc1.org sls= [1633, 1634, 1635] site= 635
+1635 None n1-1635.plc1.org sls= [1634, 1635, 1636] site= 636
+1636 None n1-1636.plc1.org sls= [1635, 1636, 1637] site= 637
+1637 None n1-1637.plc1.org sls= [1636, 1637, 1638] site= 638
+1638 None n1-1638.plc1.org sls= [1637, 1638, 1639] site= 639
+1639 None n1-1639.plc1.org sls= [1638, 1639, 1640] site= 640
+1640 None n1-1640.plc1.org sls= [1639, 1640, 1641] site= 641
+1641 None n1-1641.plc1.org sls= [1640, 1641, 1642] site= 642
+1642 None n1-1642.plc1.org sls= [1641, 1642, 1643] site= 643
+1643 None n1-1643.plc1.org sls= [1642, 1643, 1644] site= 644
+1644 None n1-1644.plc1.org sls= [1643, 1644, 1645] site= 645
+1645 None n1-1645.plc1.org sls= [1644, 1645, 1646] site= 646
+1646 None n1-1646.plc1.org sls= [1645, 1646, 1647] site= 647
+1647 None n1-1647.plc1.org sls= [1646, 1647, 1648] site= 648
+1648 None n1-1648.plc1.org sls= [1647, 1648, 1649] site= 649
+1649 None n1-1649.plc1.org sls= [1648, 1649, 1650] site= 650
+1650 None n1-1650.plc1.org sls= [1649, 1650, 1651] site= 651
+1651 None n1-1651.plc1.org sls= [1650, 1651, 1652] site= 652
+1652 None n1-1652.plc1.org sls= [1651, 1652, 1653] site= 653
+1653 None n1-1653.plc1.org sls= [1652, 1653, 1654] site= 654
+1654 None n1-1654.plc1.org sls= [1653, 1654, 1655] site= 655
+1655 None n1-1655.plc1.org sls= [1654, 1655, 1656] site= 656
+1656 None n1-1656.plc1.org sls= [1655, 1656, 1657] site= 657
+1657 None n1-1657.plc1.org sls= [1656, 1657, 1658] site= 658
+1658 None n1-1658.plc1.org sls= [1657, 1658, 1659] site= 659
+1659 None n1-1659.plc1.org sls= [1658, 1659, 1660] site= 660
+1660 None n1-1660.plc1.org sls= [1659, 1660, 1661] site= 661
+1661 None n1-1661.plc1.org sls= [1660, 1661, 1662] site= 662
+1662 None n1-1662.plc1.org sls= [1661, 1662, 1663] site= 663
+1663 None n1-1663.plc1.org sls= [1662, 1663, 1664] site= 664
+1664 None n1-1664.plc1.org sls= [1663, 1664, 1665] site= 665
+1665 None n1-1665.plc1.org sls= [1664, 1665, 1666] site= 666
+1666 None n1-1666.plc1.org sls= [1665, 1666, 1667] site= 667
+1667 None n1-1667.plc1.org sls= [1666, 1667, 1668] site= 668
+1668 None n1-1668.plc1.org sls= [1667, 1668, 1669] site= 669
+1669 None n1-1669.plc1.org sls= [1668, 1669, 1670] site= 670
+1670 None n1-1670.plc1.org sls= [1669, 1670, 1671] site= 671
+1671 None n1-1671.plc1.org sls= [1670, 1671, 1672] site= 672
+1672 None n1-1672.plc1.org sls= [1671, 1672, 1673] site= 673
+1673 None n1-1673.plc1.org sls= [1672, 1673, 1674] site= 674
+1674 None n1-1674.plc1.org sls= [1673, 1674, 1675] site= 675
+1675 None n1-1675.plc1.org sls= [1674, 1675, 1676] site= 676
+1676 None n1-1676.plc1.org sls= [1675, 1676, 1677] site= 677
+1677 None n1-1677.plc1.org sls= [1676, 1677, 1678] site= 678
+1678 None n1-1678.plc1.org sls= [1677, 1678, 1679] site= 679
+1679 None n1-1679.plc1.org sls= [1678, 1679, 1680] site= 680
+1680 None n1-1680.plc1.org sls= [1679, 1680, 1681] site= 681
+1681 None n1-1681.plc1.org sls= [1680, 1681, 1682] site= 682
+1682 None n1-1682.plc1.org sls= [1681, 1682, 1683] site= 683
+1683 None n1-1683.plc1.org sls= [1682, 1683, 1684] site= 684
+1684 None n1-1684.plc1.org sls= [1683, 1684, 1685] site= 685
+1685 None n1-1685.plc1.org sls= [1684, 1685, 1686] site= 686
+1686 None n1-1686.plc1.org sls= [1685, 1686, 1687] site= 687
+1687 None n1-1687.plc1.org sls= [1686, 1687, 1688] site= 688
+1688 None n1-1688.plc1.org sls= [1687, 1688, 1689] site= 689
+1689 None n1-1689.plc1.org sls= [1688, 1689, 1690] site= 690
+1690 None n1-1690.plc1.org sls= [1689, 1690, 1691] site= 691
+1691 None n1-1691.plc1.org sls= [1690, 1691, 1692] site= 692
+1692 None n1-1692.plc1.org sls= [1691, 1692, 1693] site= 693
+1693 None n1-1693.plc1.org sls= [1692, 1693, 1694] site= 694
+1694 None n1-1694.plc1.org sls= [1693, 1694, 1695] site= 695
+1695 None n1-1695.plc1.org sls= [1694, 1695, 1696] site= 696
+1696 None n1-1696.plc1.org sls= [1695, 1696, 1697] site= 697
+1697 None n1-1697.plc1.org sls= [1696, 1697, 1698] site= 698
+1698 None n1-1698.plc1.org sls= [1697, 1698, 1699] site= 699
+1699 None n1-1699.plc1.org sls= [1698, 1699, 1700] site= 700
+1700 None n1-1700.plc1.org sls= [1699, 1700, 1701] site= 701
+1701 None n1-1701.plc1.org sls= [1700, 1701, 1702] site= 702
+1702 None n1-1702.plc1.org sls= [1701, 1702, 1703] site= 703
+1703 None n1-1703.plc1.org sls= [1702, 1703, 1704] site= 704
+1704 None n1-1704.plc1.org sls= [1703, 1704, 1705] site= 705
+1705 None n1-1705.plc1.org sls= [1704, 1705, 1706] site= 706
+1706 None n1-1706.plc1.org sls= [1705, 1706, 1707] site= 707
+1707 None n1-1707.plc1.org sls= [1706, 1707, 1708] site= 708
+1708 None n1-1708.plc1.org sls= [1707, 1708, 1709] site= 709
+1709 None n1-1709.plc1.org sls= [1708, 1709, 1710] site= 710
+1710 None n1-1710.plc1.org sls= [1709, 1710, 1711] site= 711
+1711 None n1-1711.plc1.org sls= [1710, 1711, 1712] site= 712
+1712 None n1-1712.plc1.org sls= [1711, 1712, 1713] site= 713
+1713 None n1-1713.plc1.org sls= [1712, 1713, 1714] site= 714
+1714 None n1-1714.plc1.org sls= [1713, 1714, 1715] site= 715
+1715 None n1-1715.plc1.org sls= [1714, 1715, 1716] site= 716
+1716 None n1-1716.plc1.org sls= [1715, 1716, 1717] site= 717
+1717 None n1-1717.plc1.org sls= [1716, 1717, 1718] site= 718
+1718 None n1-1718.plc1.org sls= [1717, 1718, 1719] site= 719
+1719 None n1-1719.plc1.org sls= [1718, 1719, 1720] site= 720
+1720 None n1-1720.plc1.org sls= [1719, 1720, 1721] site= 721
+1721 None n1-1721.plc1.org sls= [1720, 1721, 1722] site= 722
+1722 None n1-1722.plc1.org sls= [1721, 1722, 1723] site= 723
+1723 None n1-1723.plc1.org sls= [1722, 1723, 1724] site= 724
+1724 None n1-1724.plc1.org sls= [1723, 1724, 1725] site= 725
+1725 None n1-1725.plc1.org sls= [1724, 1725, 1726] site= 726
+1726 None n1-1726.plc1.org sls= [1725, 1726, 1727] site= 727
+1727 None n1-1727.plc1.org sls= [1726, 1727, 1728] site= 728
+1728 None n1-1728.plc1.org sls= [1727, 1728, 1729] site= 729
+1729 None n1-1729.plc1.org sls= [1728, 1729, 1730] site= 730
+1730 None n1-1730.plc1.org sls= [1729, 1730, 1731] site= 731
+1731 None n1-1731.plc1.org sls= [1730, 1731, 1732] site= 732
+1732 None n1-1732.plc1.org sls= [1731, 1732, 1733] site= 733
+1733 None n1-1733.plc1.org sls= [1732, 1733, 1734] site= 734
+1734 None n1-1734.plc1.org sls= [1733, 1734, 1735] site= 735
+1735 None n1-1735.plc1.org sls= [1734, 1735, 1736] site= 736
+1736 None n1-1736.plc1.org sls= [1735, 1736, 1737] site= 737
+1737 None n1-1737.plc1.org sls= [1736, 1737, 1738] site= 738
+1738 None n1-1738.plc1.org sls= [1737, 1738, 1739] site= 739
+1739 None n1-1739.plc1.org sls= [1738, 1739, 1740] site= 740
+1740 None n1-1740.plc1.org sls= [1739, 1740, 1741] site= 741
+1741 None n1-1741.plc1.org sls= [1740, 1741, 1742] site= 742
+1742 None n1-1742.plc1.org sls= [1741, 1742, 1743] site= 743
+1743 None n1-1743.plc1.org sls= [1742, 1743, 1744] site= 744
+1744 None n1-1744.plc1.org sls= [1743, 1744, 1745] site= 745
+1745 None n1-1745.plc1.org sls= [1744, 1745, 1746] site= 746
+1746 None n1-1746.plc1.org sls= [1745, 1746, 1747] site= 747
+1747 None n1-1747.plc1.org sls= [1746, 1747, 1748] site= 748
+1748 None n1-1748.plc1.org sls= [1747, 1748, 1749] site= 749
+1749 None n1-1749.plc1.org sls= [1748, 1749, 1750] site= 750
+1750 None n1-1750.plc1.org sls= [1749, 1750, 1751] site= 751
+1751 None n1-1751.plc1.org sls= [1750, 1751, 1752] site= 752
+1752 None n1-1752.plc1.org sls= [1751, 1752, 1753] site= 753
+1753 None n1-1753.plc1.org sls= [1752, 1753, 1754] site= 754
+1754 None n1-1754.plc1.org sls= [1753, 1754, 1755] site= 755
+1755 None n1-1755.plc1.org sls= [1754, 1755, 1756] site= 756
+1756 None n1-1756.plc1.org sls= [1755, 1756, 1757] site= 757
+1757 None n1-1757.plc1.org sls= [1756, 1757, 1758] site= 758
+1758 None n1-1758.plc1.org sls= [1757, 1758, 1759] site= 759
+1759 None n1-1759.plc1.org sls= [1758, 1759, 1760] site= 760
+1760 None n1-1760.plc1.org sls= [1759, 1760, 1761] site= 761
+1761 None n1-1761.plc1.org sls= [1760, 1761, 1762] site= 762
+1762 None n1-1762.plc1.org sls= [1761, 1762, 1763] site= 763
+1763 None n1-1763.plc1.org sls= [1762, 1763, 1764] site= 764
+1764 None n1-1764.plc1.org sls= [1763, 1764, 1765] site= 765
+1765 None n1-1765.plc1.org sls= [1764, 1765, 1766] site= 766
+1766 None n1-1766.plc1.org sls= [1765, 1766, 1767] site= 767
+1767 None n1-1767.plc1.org sls= [1766, 1767, 1768] site= 768
+1768 None n1-1768.plc1.org sls= [1767, 1768, 1769] site= 769
+1769 None n1-1769.plc1.org sls= [1768, 1769, 1770] site= 770
+1770 None n1-1770.plc1.org sls= [1769, 1770, 1771] site= 771
+1771 None n1-1771.plc1.org sls= [1770, 1771, 1772] site= 772
+1772 None n1-1772.plc1.org sls= [1771, 1772, 1773] site= 773
+1773 None n1-1773.plc1.org sls= [1772, 1773, 1774] site= 774
+1774 None n1-1774.plc1.org sls= [1773, 1774, 1775] site= 775
+1775 None n1-1775.plc1.org sls= [1774, 1775, 1776] site= 776
+1776 None n1-1776.plc1.org sls= [1775, 1776, 1777] site= 777
+1777 None n1-1777.plc1.org sls= [1776, 1777, 1778] site= 778
+1778 None n1-1778.plc1.org sls= [1777, 1778, 1779] site= 779
+1779 None n1-1779.plc1.org sls= [1778, 1779, 1780] site= 780
+1780 None n1-1780.plc1.org sls= [1779, 1780, 1781] site= 781
+1781 None n1-1781.plc1.org sls= [1780, 1781, 1782] site= 782
+1782 None n1-1782.plc1.org sls= [1781, 1782, 1783] site= 783
+1783 None n1-1783.plc1.org sls= [1782, 1783, 1784] site= 784
+1784 None n1-1784.plc1.org sls= [1783, 1784, 1785] site= 785
+1785 None n1-1785.plc1.org sls= [1784, 1785, 1786] site= 786
+1786 None n1-1786.plc1.org sls= [1785, 1786, 1787] site= 787
+1787 None n1-1787.plc1.org sls= [1786, 1787, 1788] site= 788
+1788 None n1-1788.plc1.org sls= [1787, 1788, 1789] site= 789
+1789 None n1-1789.plc1.org sls= [1788, 1789, 1790] site= 790
+1790 None n1-1790.plc1.org sls= [1789, 1790, 1791] site= 791
+1791 None n1-1791.plc1.org sls= [1790, 1791, 1792] site= 792
+1792 None n1-1792.plc1.org sls= [1791, 1792, 1793] site= 793
+1793 None n1-1793.plc1.org sls= [1792, 1793, 1794] site= 794
+1794 None n1-1794.plc1.org sls= [1793, 1794, 1795] site= 795
+1795 None n1-1795.plc1.org sls= [1794, 1795, 1796] site= 796
+1796 None n1-1796.plc1.org sls= [1795, 1796, 1797] site= 797
+1797 None n1-1797.plc1.org sls= [1796, 1797, 1798] site= 798
+1798 None n1-1798.plc1.org sls= [1797, 1798, 1799] site= 799
+1799 None n1-1799.plc1.org sls= [1798, 1799, 1800] site= 800
+1800 None n1-1800.plc1.org sls= [1799, 1800, 1801] site= 801
+1801 None n1-1801.plc1.org sls= [1800, 1801, 1802] site= 802
+1802 None n1-1802.plc1.org sls= [1801, 1802, 1803] site= 803
+1803 None n1-1803.plc1.org sls= [1802, 1803, 1804] site= 804
+1804 None n1-1804.plc1.org sls= [1803, 1804, 1805] site= 805
+1805 None n1-1805.plc1.org sls= [1804, 1805, 1806] site= 806
+1806 None n1-1806.plc1.org sls= [1805, 1806, 1807] site= 807
+1807 None n1-1807.plc1.org sls= [1806, 1807, 1808] site= 808
+1808 None n1-1808.plc1.org sls= [1807, 1808, 1809] site= 809
+1809 None n1-1809.plc1.org sls= [1808, 1809, 1810] site= 810
+1810 None n1-1810.plc1.org sls= [1809, 1810, 1811] site= 811
+1811 None n1-1811.plc1.org sls= [1810, 1811, 1812] site= 812
+1812 None n1-1812.plc1.org sls= [1811, 1812, 1813] site= 813
+1813 None n1-1813.plc1.org sls= [1812, 1813, 1814] site= 814
+1814 None n1-1814.plc1.org sls= [1813, 1814, 1815] site= 815
+1815 None n1-1815.plc1.org sls= [1814, 1815, 1816] site= 816
+1816 None n1-1816.plc1.org sls= [1815, 1816, 1817] site= 817
+1817 None n1-1817.plc1.org sls= [1816, 1817, 1818] site= 818
+1818 None n1-1818.plc1.org sls= [1817, 1818, 1819] site= 819
+1819 None n1-1819.plc1.org sls= [1818, 1819, 1820] site= 820
+1820 None n1-1820.plc1.org sls= [1819, 1820, 1821] site= 821
+1821 None n1-1821.plc1.org sls= [1820, 1821, 1822] site= 822
+1822 None n1-1822.plc1.org sls= [1821, 1822, 1823] site= 823
+1823 None n1-1823.plc1.org sls= [1822, 1823, 1824] site= 824
+1824 None n1-1824.plc1.org sls= [1823, 1824, 1825] site= 825
+1825 None n1-1825.plc1.org sls= [1824, 1825, 1826] site= 826
+1826 None n1-1826.plc1.org sls= [1825, 1826, 1827] site= 827
+1827 None n1-1827.plc1.org sls= [1826, 1827, 1828] site= 828
+1828 None n1-1828.plc1.org sls= [1827, 1828, 1829] site= 829
+1829 None n1-1829.plc1.org sls= [1828, 1829, 1830] site= 830
+1830 None n1-1830.plc1.org sls= [1829, 1830, 1831] site= 831
+1831 None n1-1831.plc1.org sls= [1830, 1831, 1832] site= 832
+1832 None n1-1832.plc1.org sls= [1831, 1832, 1833] site= 833
+1833 None n1-1833.plc1.org sls= [1832, 1833, 1834] site= 834
+1834 None n1-1834.plc1.org sls= [1833, 1834, 1835] site= 835
+1835 None n1-1835.plc1.org sls= [1834, 1835, 1836] site= 836
+1836 None n1-1836.plc1.org sls= [1835, 1836, 1837] site= 837
+1837 None n1-1837.plc1.org sls= [1836, 1837, 1838] site= 838
+1838 None n1-1838.plc1.org sls= [1837, 1838, 1839] site= 839
+1839 None n1-1839.plc1.org sls= [1838, 1839, 1840] site= 840
+1840 None n1-1840.plc1.org sls= [1839, 1840, 1841] site= 841
+1841 None n1-1841.plc1.org sls= [1840, 1841, 1842] site= 842
+1842 None n1-1842.plc1.org sls= [1841, 1842, 1843] site= 843
+1843 None n1-1843.plc1.org sls= [1842, 1843, 1844] site= 844
+1844 None n1-1844.plc1.org sls= [1843, 1844, 1845] site= 845
+1845 None n1-1845.plc1.org sls= [1844, 1845, 1846] site= 846
+1846 None n1-1846.plc1.org sls= [1845, 1846, 1847] site= 847
+1847 None n1-1847.plc1.org sls= [1846, 1847, 1848] site= 848
+1848 None n1-1848.plc1.org sls= [1847, 1848, 1849] site= 849
+1849 None n1-1849.plc1.org sls= [1848, 1849, 1850] site= 850
+1850 None n1-1850.plc1.org sls= [1849, 1850, 1851] site= 851
+1851 None n1-1851.plc1.org sls= [1850, 1851, 1852] site= 852
+1852 None n1-1852.plc1.org sls= [1851, 1852, 1853] site= 853
+1853 None n1-1853.plc1.org sls= [1852, 1853, 1854] site= 854
+1854 None n1-1854.plc1.org sls= [1853, 1854, 1855] site= 855
+1855 None n1-1855.plc1.org sls= [1854, 1855, 1856] site= 856
+1856 None n1-1856.plc1.org sls= [1855, 1856, 1857] site= 857
+1857 None n1-1857.plc1.org sls= [1856, 1857, 1858] site= 858
+1858 None n1-1858.plc1.org sls= [1857, 1858, 1859] site= 859
+1859 None n1-1859.plc1.org sls= [1858, 1859, 1860] site= 860
+1860 None n1-1860.plc1.org sls= [1859, 1860, 1861] site= 861
+1861 None n1-1861.plc1.org sls= [1860, 1861, 1862] site= 862
+1862 None n1-1862.plc1.org sls= [1861, 1862, 1863] site= 863
+1863 None n1-1863.plc1.org sls= [1862, 1863, 1864] site= 864
+1864 None n1-1864.plc1.org sls= [1863, 1864, 1865] site= 865
+1865 None n1-1865.plc1.org sls= [1864, 1865, 1866] site= 866
+1866 None n1-1866.plc1.org sls= [1865, 1866, 1867] site= 867
+1867 None n1-1867.plc1.org sls= [1866, 1867, 1868] site= 868
+1868 None n1-1868.plc1.org sls= [1867, 1868, 1869] site= 869
+1869 None n1-1869.plc1.org sls= [1868, 1869, 1870] site= 870
+1870 None n1-1870.plc1.org sls= [1869, 1870, 1871] site= 871
+1871 None n1-1871.plc1.org sls= [1870, 1871, 1872] site= 872
+1872 None n1-1872.plc1.org sls= [1871, 1872, 1873] site= 873
+1873 None n1-1873.plc1.org sls= [1872, 1873, 1874] site= 874
+1874 None n1-1874.plc1.org sls= [1873, 1874, 1875] site= 875
+1875 None n1-1875.plc1.org sls= [1874, 1875, 1876] site= 876
+1876 None n1-1876.plc1.org sls= [1875, 1876, 1877] site= 877
+1877 None n1-1877.plc1.org sls= [1876, 1877, 1878] site= 878
+1878 None n1-1878.plc1.org sls= [1877, 1878, 1879] site= 879
+1879 None n1-1879.plc1.org sls= [1878, 1879, 1880] site= 880
+1880 None n1-1880.plc1.org sls= [1879, 1880, 1881] site= 881
+1881 None n1-1881.plc1.org sls= [1880, 1881, 1882] site= 882
+1882 None n1-1882.plc1.org sls= [1881, 1882, 1883] site= 883
+1883 None n1-1883.plc1.org sls= [1882, 1883, 1884] site= 884
+1884 None n1-1884.plc1.org sls= [1883, 1884, 1885] site= 885
+1885 None n1-1885.plc1.org sls= [1884, 1885, 1886] site= 886
+1886 None n1-1886.plc1.org sls= [1885, 1886, 1887] site= 887
+1887 None n1-1887.plc1.org sls= [1886, 1887, 1888] site= 888
+1888 None n1-1888.plc1.org sls= [1887, 1888, 1889] site= 889
+1889 None n1-1889.plc1.org sls= [1888, 1889, 1890] site= 890
+1890 None n1-1890.plc1.org sls= [1889, 1890, 1891] site= 891
+1891 None n1-1891.plc1.org sls= [1890, 1891, 1892] site= 892
+1892 None n1-1892.plc1.org sls= [1891, 1892, 1893] site= 893
+1893 None n1-1893.plc1.org sls= [1892, 1893, 1894] site= 894
+1894 None n1-1894.plc1.org sls= [1893, 1894, 1895] site= 895
+1895 None n1-1895.plc1.org sls= [1894, 1895, 1896] site= 896
+1896 None n1-1896.plc1.org sls= [1895, 1896, 1897] site= 897
+1897 None n1-1897.plc1.org sls= [1896, 1897, 1898] site= 898
+1898 None n1-1898.plc1.org sls= [1897, 1898, 1899] site= 899
+1899 None n1-1899.plc1.org sls= [1898, 1899, 1900] site= 900
+1900 None n1-1900.plc1.org sls= [1899, 1900, 1901] site= 901
+1901 None n1-1901.plc1.org sls= [1900, 1901, 1902] site= 902
+1902 None n1-1902.plc1.org sls= [1901, 1902, 1903] site= 903
+1903 None n1-1903.plc1.org sls= [1902, 1903, 1904] site= 904
+1904 None n1-1904.plc1.org sls= [1903, 1904, 1905] site= 905
+1905 None n1-1905.plc1.org sls= [1904, 1905, 1906] site= 906
+1906 None n1-1906.plc1.org sls= [1905, 1906, 1907] site= 907
+1907 None n1-1907.plc1.org sls= [1906, 1907, 1908] site= 908
+1908 None n1-1908.plc1.org sls= [1907, 1908, 1909] site= 909
+1909 None n1-1909.plc1.org sls= [1908, 1909, 1910] site= 910
+1910 None n1-1910.plc1.org sls= [1909, 1910, 1911] site= 911
+1911 None n1-1911.plc1.org sls= [1910, 1911, 1912] site= 912
+1912 None n1-1912.plc1.org sls= [1911, 1912, 1913] site= 913
+1913 None n1-1913.plc1.org sls= [1912, 1913, 1914] site= 914
+1914 None n1-1914.plc1.org sls= [1913, 1914, 1915] site= 915
+1915 None n1-1915.plc1.org sls= [1914, 1915, 1916] site= 916
+1916 None n1-1916.plc1.org sls= [1915, 1916, 1917] site= 917
+1917 None n1-1917.plc1.org sls= [1916, 1917, 1918] site= 918
+1918 None n1-1918.plc1.org sls= [1917, 1918, 1919] site= 919
+1919 None n1-1919.plc1.org sls= [1918, 1919, 1920] site= 920
+1920 None n1-1920.plc1.org sls= [1919, 1920, 1921] site= 921
+1921 None n1-1921.plc1.org sls= [1920, 1921, 1922] site= 922
+1922 None n1-1922.plc1.org sls= [1921, 1922, 1923] site= 923
+1923 None n1-1923.plc1.org sls= [1922, 1923, 1924] site= 924
+1924 None n1-1924.plc1.org sls= [1923, 1924, 1925] site= 925
+1925 None n1-1925.plc1.org sls= [1924, 1925, 1926] site= 926
+1926 None n1-1926.plc1.org sls= [1925, 1926, 1927] site= 927
+1927 None n1-1927.plc1.org sls= [1926, 1927, 1928] site= 928
+1928 None n1-1928.plc1.org sls= [1927, 1928, 1929] site= 929
+1929 None n1-1929.plc1.org sls= [1928, 1929, 1930] site= 930
+1930 None n1-1930.plc1.org sls= [1929, 1930, 1931] site= 931
+1931 None n1-1931.plc1.org sls= [1930, 1931, 1932] site= 932
+1932 None n1-1932.plc1.org sls= [1931, 1932, 1933] site= 933
+1933 None n1-1933.plc1.org sls= [1932, 1933, 1934] site= 934
+1934 None n1-1934.plc1.org sls= [1933, 1934, 1935] site= 935
+1935 None n1-1935.plc1.org sls= [1934, 1935, 1936] site= 936
+1936 None n1-1936.plc1.org sls= [1935, 1936, 1937] site= 937
+1937 None n1-1937.plc1.org sls= [1936, 1937, 1938] site= 938
+1938 None n1-1938.plc1.org sls= [1937, 1938, 1939] site= 939
+1939 None n1-1939.plc1.org sls= [1938, 1939, 1940] site= 940
+1940 None n1-1940.plc1.org sls= [1939, 1940, 1941] site= 941
+1941 None n1-1941.plc1.org sls= [1940, 1941, 1942] site= 942
+1942 None n1-1942.plc1.org sls= [1941, 1942, 1943] site= 943
+1943 None n1-1943.plc1.org sls= [1942, 1943, 1944] site= 944
+1944 None n1-1944.plc1.org sls= [1943, 1944, 1945] site= 945
+1945 None n1-1945.plc1.org sls= [1944, 1945, 1946] site= 946
+1946 None n1-1946.plc1.org sls= [1945, 1946, 1947] site= 947
+1947 None n1-1947.plc1.org sls= [1946, 1947, 1948] site= 948
+1948 None n1-1948.plc1.org sls= [1947, 1948, 1949] site= 949
+1949 None n1-1949.plc1.org sls= [1948, 1949, 1950] site= 950
+1950 None n1-1950.plc1.org sls= [1949, 1950, 1951] site= 951
+1951 None n1-1951.plc1.org sls= [1950, 1951, 1952] site= 952
+1952 None n1-1952.plc1.org sls= [1951, 1952, 1953] site= 953
+1953 None n1-1953.plc1.org sls= [1952, 1953, 1954] site= 954
+1954 None n1-1954.plc1.org sls= [1953, 1954, 1955] site= 955
+1955 None n1-1955.plc1.org sls= [1954, 1955, 1956] site= 956
+1956 None n1-1956.plc1.org sls= [1955, 1956, 1957] site= 957
+1957 None n1-1957.plc1.org sls= [1956, 1957, 1958] site= 958
+1958 None n1-1958.plc1.org sls= [1957, 1958, 1959] site= 959
+1959 None n1-1959.plc1.org sls= [1958, 1959, 1960] site= 960
+1960 None n1-1960.plc1.org sls= [1959, 1960, 1961] site= 961
+1961 None n1-1961.plc1.org sls= [1960, 1961, 1962] site= 962
+1962 None n1-1962.plc1.org sls= [1961, 1962, 1963] site= 963
+1963 None n1-1963.plc1.org sls= [1962, 1963, 1964] site= 964
+1964 None n1-1964.plc1.org sls= [1963, 1964, 1965] site= 965
+1965 None n1-1965.plc1.org sls= [1964, 1965, 1966] site= 966
+1966 None n1-1966.plc1.org sls= [1965, 1966, 1967] site= 967
+1967 None n1-1967.plc1.org sls= [1966, 1967, 1968] site= 968
+1968 None n1-1968.plc1.org sls= [1967, 1968, 1969] site= 969
+1969 None n1-1969.plc1.org sls= [1968, 1969, 1970] site= 970
+1970 None n1-1970.plc1.org sls= [1969, 1970, 1971] site= 971
+1971 None n1-1971.plc1.org sls= [1970, 1971, 1972] site= 972
+1972 None n1-1972.plc1.org sls= [1971, 1972, 1973] site= 973
+1973 None n1-1973.plc1.org sls= [1972, 1973, 1974] site= 974
+1974 None n1-1974.plc1.org sls= [1973, 1974, 1975] site= 975
+1975 None n1-1975.plc1.org sls= [1974, 1975, 1976] site= 976
+1976 None n1-1976.plc1.org sls= [1975, 1976, 1977] site= 977
+1977 None n1-1977.plc1.org sls= [1976, 1977, 1978] site= 978
+1978 None n1-1978.plc1.org sls= [1977, 1978, 1979] site= 979
+1979 None n1-1979.plc1.org sls= [1978, 1979, 1980] site= 980
+1980 None n1-1980.plc1.org sls= [1979, 1980, 1981] site= 981
+1981 None n1-1981.plc1.org sls= [1980, 1981, 1982] site= 982
+1982 None n1-1982.plc1.org sls= [1981, 1982, 1983] site= 983
+1983 None n1-1983.plc1.org sls= [1982, 1983, 1984] site= 984
+1984 None n1-1984.plc1.org sls= [1983, 1984, 1985] site= 985
+1985 None n1-1985.plc1.org sls= [1984, 1985, 1986] site= 986
+1986 None n1-1986.plc1.org sls= [1985, 1986, 1987] site= 987
+1987 None n1-1987.plc1.org sls= [1986, 1987, 1988] site= 988
+1988 None n1-1988.plc1.org sls= [1987, 1988, 1989] site= 989
+1989 None n1-1989.plc1.org sls= [1988, 1989, 1990] site= 990
+1990 None n1-1990.plc1.org sls= [1989, 1990, 1991] site= 991
+1991 None n1-1991.plc1.org sls= [1990, 1991, 1992] site= 992
+1992 None n1-1992.plc1.org sls= [1991, 1992, 1993] site= 993
+1993 None n1-1993.plc1.org sls= [1992, 1993, 1994] site= 994
+1994 None n1-1994.plc1.org sls= [1993, 1994, 1995] site= 995
+1995 None n1-1995.plc1.org sls= [1994, 1995, 1996] site= 996
+1996 None n1-1996.plc1.org sls= [1995, 1996, 1997] site= 997
+1997 None n1-1997.plc1.org sls= [1996, 1997, 1998] site= 998
+1998 None n1-1998.plc1.org sls= [1997, 1998, 1999] site= 999
+1999 None n1-1999.plc1.org sls= [1998, 1999, 2000] site= 1000
+2000 None n1-2000.plc1.org sls= [1999, 2000, 2001] site= 1001
+2001 None n1-2001.plc1.org sls= [2000, 2001] site= 2
+2002 None n1-2002.plc1.org sls= [2001] site= 3
+2003 None n1-2003.plc1.org sls= [] site= 4
+2004 None n1-2004.plc1.org sls= [] site= 5
+2005 None n1-2005.plc1.org sls= [] site= 6
+2006 None n1-2006.plc1.org sls= [] site= 7
+2007 None n1-2007.plc1.org sls= [] site= 8
+2008 None n1-2008.plc1.org sls= [] site= 9
+2009 None n1-2009.plc1.org sls= [] site= 10
+2010 None n1-2010.plc1.org sls= [] site= 11
+2011 None n1-2011.plc1.org sls= [] site= 12
+2012 None n1-2012.plc1.org sls= [] site= 13
+2013 None n1-2013.plc1.org sls= [] site= 14
+2014 None n1-2014.plc1.org sls= [] site= 15
+2015 None n1-2015.plc1.org sls= [] site= 16
+2016 None n1-2016.plc1.org sls= [] site= 17
+2017 None n1-2017.plc1.org sls= [] site= 18
+2018 None n1-2018.plc1.org sls= [] site= 19
+2019 None n1-2019.plc1.org sls= [] site= 20
+2020 None n1-2020.plc1.org sls= [] site= 21
+2021 None n1-2021.plc1.org sls= [] site= 22
+2022 None n1-2022.plc1.org sls= [] site= 23
+2023 None n1-2023.plc1.org sls= [] site= 24
+2024 None n1-2024.plc1.org sls= [] site= 25
+2025 None n1-2025.plc1.org sls= [] site= 26
+2026 None n1-2026.plc1.org sls= [] site= 27
+2027 None n1-2027.plc1.org sls= [] site= 28
+2028 None n1-2028.plc1.org sls= [] site= 29
+2029 None n1-2029.plc1.org sls= [] site= 30
+2030 None n1-2030.plc1.org sls= [] site= 31
+2031 None n1-2031.plc1.org sls= [] site= 32
+2032 None n1-2032.plc1.org sls= [] site= 33
+2033 None n1-2033.plc1.org sls= [] site= 34
+2034 None n1-2034.plc1.org sls= [] site= 35
+2035 None n1-2035.plc1.org sls= [] site= 36
+2036 None n1-2036.plc1.org sls= [] site= 37
+2037 None n1-2037.plc1.org sls= [] site= 38
+2038 None n1-2038.plc1.org sls= [] site= 39
+2039 None n1-2039.plc1.org sls= [] site= 40
+2040 None n1-2040.plc1.org sls= [] site= 41
+2041 None n1-2041.plc1.org sls= [] site= 42
+2042 None n1-2042.plc1.org sls= [] site= 43
+2043 None n1-2043.plc1.org sls= [] site= 44
+2044 None n1-2044.plc1.org sls= [] site= 45
+2045 None n1-2045.plc1.org sls= [] site= 46
+2046 None n1-2046.plc1.org sls= [] site= 47
+2047 None n1-2047.plc1.org sls= [] site= 48
+2048 None n1-2048.plc1.org sls= [] site= 49
+2049 None n1-2049.plc1.org sls= [] site= 50
+2050 None n1-2050.plc1.org sls= [] site= 51
+2051 None n1-2051.plc1.org sls= [] site= 52
+2052 None n1-2052.plc1.org sls= [] site= 53
+2053 None n1-2053.plc1.org sls= [] site= 54
+2054 None n1-2054.plc1.org sls= [] site= 55
+2055 None n1-2055.plc1.org sls= [] site= 56
+2056 None n1-2056.plc1.org sls= [] site= 57
+2057 None n1-2057.plc1.org sls= [] site= 58
+2058 None n1-2058.plc1.org sls= [] site= 59
+2059 None n1-2059.plc1.org sls= [] site= 60
+2060 None n1-2060.plc1.org sls= [] site= 61
+2061 None n1-2061.plc1.org sls= [] site= 62
+2062 None n1-2062.plc1.org sls= [] site= 63
+2063 None n1-2063.plc1.org sls= [] site= 64
+2064 None n1-2064.plc1.org sls= [] site= 65
+2065 None n1-2065.plc1.org sls= [] site= 66
+2066 None n1-2066.plc1.org sls= [] site= 67
+2067 None n1-2067.plc1.org sls= [] site= 68
+2068 None n1-2068.plc1.org sls= [] site= 69
+2069 None n1-2069.plc1.org sls= [] site= 70
+2070 None n1-2070.plc1.org sls= [] site= 71
+2071 None n1-2071.plc1.org sls= [] site= 72
+2072 None n1-2072.plc1.org sls= [] site= 73
+2073 None n1-2073.plc1.org sls= [] site= 74
+2074 None n1-2074.plc1.org sls= [] site= 75
+2075 None n1-2075.plc1.org sls= [] site= 76
+2076 None n1-2076.plc1.org sls= [] site= 77
+2077 None n1-2077.plc1.org sls= [] site= 78
+2078 None n1-2078.plc1.org sls= [] site= 79
+2079 None n1-2079.plc1.org sls= [] site= 80
+2080 None n1-2080.plc1.org sls= [] site= 81
+2081 None n1-2081.plc1.org sls= [] site= 82
+2082 None n1-2082.plc1.org sls= [] site= 83
+2083 None n1-2083.plc1.org sls= [] site= 84
+2084 None n1-2084.plc1.org sls= [] site= 85
+2085 None n1-2085.plc1.org sls= [] site= 86
+2086 None n1-2086.plc1.org sls= [] site= 87
+2087 None n1-2087.plc1.org sls= [] site= 88
+2088 None n1-2088.plc1.org sls= [] site= 89
+2089 None n1-2089.plc1.org sls= [] site= 90
+2090 None n1-2090.plc1.org sls= [] site= 91
+2091 None n1-2091.plc1.org sls= [] site= 92
+2092 None n1-2092.plc1.org sls= [] site= 93
+2093 None n1-2093.plc1.org sls= [] site= 94
+2094 None n1-2094.plc1.org sls= [] site= 95
+2095 None n1-2095.plc1.org sls= [] site= 96
+2096 None n1-2096.plc1.org sls= [] site= 97
+2097 None n1-2097.plc1.org sls= [] site= 98
+2098 None n1-2098.plc1.org sls= [] site= 99
+2099 None n1-2099.plc1.org sls= [] site= 100
+2100 None n1-2100.plc1.org sls= [] site= 101
+2101 None n1-2101.plc1.org sls= [] site= 102
+2102 None n1-2102.plc1.org sls= [] site= 103
+2103 None n1-2103.plc1.org sls= [] site= 104
+2104 None n1-2104.plc1.org sls= [] site= 105
+2105 None n1-2105.plc1.org sls= [] site= 106
+2106 None n1-2106.plc1.org sls= [] site= 107
+2107 None n1-2107.plc1.org sls= [] site= 108
+2108 None n1-2108.plc1.org sls= [] site= 109
+2109 None n1-2109.plc1.org sls= [] site= 110
+2110 None n1-2110.plc1.org sls= [] site= 111
+2111 None n1-2111.plc1.org sls= [] site= 112
+2112 None n1-2112.plc1.org sls= [] site= 113
+2113 None n1-2113.plc1.org sls= [] site= 114
+2114 None n1-2114.plc1.org sls= [] site= 115
+2115 None n1-2115.plc1.org sls= [] site= 116
+2116 None n1-2116.plc1.org sls= [] site= 117
+2117 None n1-2117.plc1.org sls= [] site= 118
+2118 None n1-2118.plc1.org sls= [] site= 119
+2119 None n1-2119.plc1.org sls= [] site= 120
+2120 None n1-2120.plc1.org sls= [] site= 121
+2121 None n1-2121.plc1.org sls= [] site= 122
+2122 None n1-2122.plc1.org sls= [] site= 123
+2123 None n1-2123.plc1.org sls= [] site= 124
+2124 None n1-2124.plc1.org sls= [] site= 125
+2125 None n1-2125.plc1.org sls= [] site= 126
+2126 None n1-2126.plc1.org sls= [] site= 127
+2127 None n1-2127.plc1.org sls= [] site= 128
+2128 None n1-2128.plc1.org sls= [] site= 129
+2129 None n1-2129.plc1.org sls= [] site= 130
+2130 None n1-2130.plc1.org sls= [] site= 131
+2131 None n1-2131.plc1.org sls= [] site= 132
+2132 None n1-2132.plc1.org sls= [] site= 133
+2133 None n1-2133.plc1.org sls= [] site= 134
+2134 None n1-2134.plc1.org sls= [] site= 135
+2135 None n1-2135.plc1.org sls= [] site= 136
+2136 None n1-2136.plc1.org sls= [] site= 137
+2137 None n1-2137.plc1.org sls= [] site= 138
+2138 None n1-2138.plc1.org sls= [] site= 139
+2139 None n1-2139.plc1.org sls= [] site= 140
+2140 None n1-2140.plc1.org sls= [] site= 141
+2141 None n1-2141.plc1.org sls= [] site= 142
+2142 None n1-2142.plc1.org sls= [] site= 143
+2143 None n1-2143.plc1.org sls= [] site= 144
+2144 None n1-2144.plc1.org sls= [] site= 145
+2145 None n1-2145.plc1.org sls= [] site= 146
+2146 None n1-2146.plc1.org sls= [] site= 147
+2147 None n1-2147.plc1.org sls= [] site= 148
+2148 None n1-2148.plc1.org sls= [] site= 149
+2149 None n1-2149.plc1.org sls= [] site= 150
+2150 None n1-2150.plc1.org sls= [] site= 151
+2151 None n1-2151.plc1.org sls= [] site= 152
+2152 None n1-2152.plc1.org sls= [] site= 153
+2153 None n1-2153.plc1.org sls= [] site= 154
+2154 None n1-2154.plc1.org sls= [] site= 155
+2155 None n1-2155.plc1.org sls= [] site= 156
+2156 None n1-2156.plc1.org sls= [] site= 157
+2157 None n1-2157.plc1.org sls= [] site= 158
+2158 None n1-2158.plc1.org sls= [] site= 159
+2159 None n1-2159.plc1.org sls= [] site= 160
+2160 None n1-2160.plc1.org sls= [] site= 161
+2161 None n1-2161.plc1.org sls= [] site= 162
+2162 None n1-2162.plc1.org sls= [] site= 163
+2163 None n1-2163.plc1.org sls= [] site= 164
+2164 None n1-2164.plc1.org sls= [] site= 165
+2165 None n1-2165.plc1.org sls= [] site= 166
+2166 None n1-2166.plc1.org sls= [] site= 167
+2167 None n1-2167.plc1.org sls= [] site= 168
+2168 None n1-2168.plc1.org sls= [] site= 169
+2169 None n1-2169.plc1.org sls= [] site= 170
+2170 None n1-2170.plc1.org sls= [] site= 171
+2171 None n1-2171.plc1.org sls= [] site= 172
+2172 None n1-2172.plc1.org sls= [] site= 173
+2173 None n1-2173.plc1.org sls= [] site= 174
+2174 None n1-2174.plc1.org sls= [] site= 175
+2175 None n1-2175.plc1.org sls= [] site= 176
+2176 None n1-2176.plc1.org sls= [] site= 177
+2177 None n1-2177.plc1.org sls= [] site= 178
+2178 None n1-2178.plc1.org sls= [] site= 179
+2179 None n1-2179.plc1.org sls= [] site= 180
+2180 None n1-2180.plc1.org sls= [] site= 181
+2181 None n1-2181.plc1.org sls= [] site= 182
+2182 None n1-2182.plc1.org sls= [] site= 183
+2183 None n1-2183.plc1.org sls= [] site= 184
+2184 None n1-2184.plc1.org sls= [] site= 185
+2185 None n1-2185.plc1.org sls= [] site= 186
+2186 None n1-2186.plc1.org sls= [] site= 187
+2187 None n1-2187.plc1.org sls= [] site= 188
+2188 None n1-2188.plc1.org sls= [] site= 189
+2189 None n1-2189.plc1.org sls= [] site= 190
+2190 None n1-2190.plc1.org sls= [] site= 191
+2191 None n1-2191.plc1.org sls= [] site= 192
+2192 None n1-2192.plc1.org sls= [] site= 193
+2193 None n1-2193.plc1.org sls= [] site= 194
+2194 None n1-2194.plc1.org sls= [] site= 195
+2195 None n1-2195.plc1.org sls= [] site= 196
+2196 None n1-2196.plc1.org sls= [] site= 197
+2197 None n1-2197.plc1.org sls= [] site= 198
+2198 None n1-2198.plc1.org sls= [] site= 199
+2199 None n1-2199.plc1.org sls= [] site= 200
+2200 None n1-2200.plc1.org sls= [] site= 201
+2201 None n1-2201.plc1.org sls= [] site= 202
+2202 None n1-2202.plc1.org sls= [] site= 203
+2203 None n1-2203.plc1.org sls= [] site= 204
+2204 None n1-2204.plc1.org sls= [] site= 205
+2205 None n1-2205.plc1.org sls= [] site= 206
+2206 None n1-2206.plc1.org sls= [] site= 207
+2207 None n1-2207.plc1.org sls= [] site= 208
+2208 None n1-2208.plc1.org sls= [] site= 209
+2209 None n1-2209.plc1.org sls= [] site= 210
+2210 None n1-2210.plc1.org sls= [] site= 211
+2211 None n1-2211.plc1.org sls= [] site= 212
+2212 None n1-2212.plc1.org sls= [] site= 213
+2213 None n1-2213.plc1.org sls= [] site= 214
+2214 None n1-2214.plc1.org sls= [] site= 215
+2215 None n1-2215.plc1.org sls= [] site= 216
+2216 None n1-2216.plc1.org sls= [] site= 217
+2217 None n1-2217.plc1.org sls= [] site= 218
+2218 None n1-2218.plc1.org sls= [] site= 219
+2219 None n1-2219.plc1.org sls= [] site= 220
+2220 None n1-2220.plc1.org sls= [] site= 221
+2221 None n1-2221.plc1.org sls= [] site= 222
+2222 None n1-2222.plc1.org sls= [] site= 223
+2223 None n1-2223.plc1.org sls= [] site= 224
+2224 None n1-2224.plc1.org sls= [] site= 225
+2225 None n1-2225.plc1.org sls= [] site= 226
+2226 None n1-2226.plc1.org sls= [] site= 227
+2227 None n1-2227.plc1.org sls= [] site= 228
+2228 None n1-2228.plc1.org sls= [] site= 229
+2229 None n1-2229.plc1.org sls= [] site= 230
+2230 None n1-2230.plc1.org sls= [] site= 231
+2231 None n1-2231.plc1.org sls= [] site= 232
+2232 None n1-2232.plc1.org sls= [] site= 233
+2233 None n1-2233.plc1.org sls= [] site= 234
+2234 None n1-2234.plc1.org sls= [] site= 235
+2235 None n1-2235.plc1.org sls= [] site= 236
+2236 None n1-2236.plc1.org sls= [] site= 237
+2237 None n1-2237.plc1.org sls= [] site= 238
+2238 None n1-2238.plc1.org sls= [] site= 239
+2239 None n1-2239.plc1.org sls= [] site= 240
+2240 None n1-2240.plc1.org sls= [] site= 241
+2241 None n1-2241.plc1.org sls= [] site= 242
+2242 None n1-2242.plc1.org sls= [] site= 243
+2243 None n1-2243.plc1.org sls= [] site= 244
+2244 None n1-2244.plc1.org sls= [] site= 245
+2245 None n1-2245.plc1.org sls= [] site= 246
+2246 None n1-2246.plc1.org sls= [] site= 247
+2247 None n1-2247.plc1.org sls= [] site= 248
+2248 None n1-2248.plc1.org sls= [] site= 249
+2249 None n1-2249.plc1.org sls= [] site= 250
+2250 None n1-2250.plc1.org sls= [] site= 251
+2251 None n1-2251.plc1.org sls= [] site= 252
+2252 None n1-2252.plc1.org sls= [] site= 253
+2253 None n1-2253.plc1.org sls= [] site= 254
+2254 None n1-2254.plc1.org sls= [] site= 255
+2255 None n1-2255.plc1.org sls= [] site= 256
+2256 None n1-2256.plc1.org sls= [] site= 257
+2257 None n1-2257.plc1.org sls= [] site= 258
+2258 None n1-2258.plc1.org sls= [] site= 259
+2259 None n1-2259.plc1.org sls= [] site= 260
+2260 None n1-2260.plc1.org sls= [] site= 261
+2261 None n1-2261.plc1.org sls= [] site= 262
+2262 None n1-2262.plc1.org sls= [] site= 263
+2263 None n1-2263.plc1.org sls= [] site= 264
+2264 None n1-2264.plc1.org sls= [] site= 265
+2265 None n1-2265.plc1.org sls= [] site= 266
+2266 None n1-2266.plc1.org sls= [] site= 267
+2267 None n1-2267.plc1.org sls= [] site= 268
+2268 None n1-2268.plc1.org sls= [] site= 269
+2269 None n1-2269.plc1.org sls= [] site= 270
+2270 None n1-2270.plc1.org sls= [] site= 271
+2271 None n1-2271.plc1.org sls= [] site= 272
+2272 None n1-2272.plc1.org sls= [] site= 273
+2273 None n1-2273.plc1.org sls= [] site= 274
+2274 None n1-2274.plc1.org sls= [] site= 275
+2275 None n1-2275.plc1.org sls= [] site= 276
+2276 None n1-2276.plc1.org sls= [] site= 277
+2277 None n1-2277.plc1.org sls= [] site= 278
+2278 None n1-2278.plc1.org sls= [] site= 279
+2279 None n1-2279.plc1.org sls= [] site= 280
+2280 None n1-2280.plc1.org sls= [] site= 281
+2281 None n1-2281.plc1.org sls= [] site= 282
+2282 None n1-2282.plc1.org sls= [] site= 283
+2283 None n1-2283.plc1.org sls= [] site= 284
+2284 None n1-2284.plc1.org sls= [] site= 285
+2285 None n1-2285.plc1.org sls= [] site= 286
+2286 None n1-2286.plc1.org sls= [] site= 287
+2287 None n1-2287.plc1.org sls= [] site= 288
+2288 None n1-2288.plc1.org sls= [] site= 289
+2289 None n1-2289.plc1.org sls= [] site= 290
+2290 None n1-2290.plc1.org sls= [] site= 291
+2291 None n1-2291.plc1.org sls= [] site= 292
+2292 None n1-2292.plc1.org sls= [] site= 293
+2293 None n1-2293.plc1.org sls= [] site= 294
+2294 None n1-2294.plc1.org sls= [] site= 295
+2295 None n1-2295.plc1.org sls= [] site= 296
+2296 None n1-2296.plc1.org sls= [] site= 297
+2297 None n1-2297.plc1.org sls= [] site= 298
+2298 None n1-2298.plc1.org sls= [] site= 299
+2299 None n1-2299.plc1.org sls= [] site= 300
+2300 None n1-2300.plc1.org sls= [] site= 301
+2301 None n1-2301.plc1.org sls= [] site= 302
+2302 None n1-2302.plc1.org sls= [] site= 303
+2303 None n1-2303.plc1.org sls= [] site= 304
+2304 None n1-2304.plc1.org sls= [] site= 305
+2305 None n1-2305.plc1.org sls= [] site= 306
+2306 None n1-2306.plc1.org sls= [] site= 307
+2307 None n1-2307.plc1.org sls= [] site= 308
+2308 None n1-2308.plc1.org sls= [] site= 309
+2309 None n1-2309.plc1.org sls= [] site= 310
+2310 None n1-2310.plc1.org sls= [] site= 311
+2311 None n1-2311.plc1.org sls= [] site= 312
+2312 None n1-2312.plc1.org sls= [] site= 313
+2313 None n1-2313.plc1.org sls= [] site= 314
+2314 None n1-2314.plc1.org sls= [] site= 315
+2315 None n1-2315.plc1.org sls= [] site= 316
+2316 None n1-2316.plc1.org sls= [] site= 317
+2317 None n1-2317.plc1.org sls= [] site= 318
+2318 None n1-2318.plc1.org sls= [] site= 319
+2319 None n1-2319.plc1.org sls= [] site= 320
+2320 None n1-2320.plc1.org sls= [] site= 321
+2321 None n1-2321.plc1.org sls= [] site= 322
+2322 None n1-2322.plc1.org sls= [] site= 323
+2323 None n1-2323.plc1.org sls= [] site= 324
+2324 None n1-2324.plc1.org sls= [] site= 325
+2325 None n1-2325.plc1.org sls= [] site= 326
+2326 None n1-2326.plc1.org sls= [] site= 327
+2327 None n1-2327.plc1.org sls= [] site= 328
+2328 None n1-2328.plc1.org sls= [] site= 329
+2329 None n1-2329.plc1.org sls= [] site= 330
+2330 None n1-2330.plc1.org sls= [] site= 331
+2331 None n1-2331.plc1.org sls= [] site= 332
+2332 None n1-2332.plc1.org sls= [] site= 333
+2333 None n1-2333.plc1.org sls= [] site= 334
+2334 None n1-2334.plc1.org sls= [] site= 335
+2335 None n1-2335.plc1.org sls= [] site= 336
+2336 None n1-2336.plc1.org sls= [] site= 337
+2337 None n1-2337.plc1.org sls= [] site= 338
+2338 None n1-2338.plc1.org sls= [] site= 339
+2339 None n1-2339.plc1.org sls= [] site= 340
+2340 None n1-2340.plc1.org sls= [] site= 341
+2341 None n1-2341.plc1.org sls= [] site= 342
+2342 None n1-2342.plc1.org sls= [] site= 343
+2343 None n1-2343.plc1.org sls= [] site= 344
+2344 None n1-2344.plc1.org sls= [] site= 345
+2345 None n1-2345.plc1.org sls= [] site= 346
+2346 None n1-2346.plc1.org sls= [] site= 347
+2347 None n1-2347.plc1.org sls= [] site= 348
+2348 None n1-2348.plc1.org sls= [] site= 349
+2349 None n1-2349.plc1.org sls= [] site= 350
+2350 None n1-2350.plc1.org sls= [] site= 351
+2351 None n1-2351.plc1.org sls= [] site= 352
+2352 None n1-2352.plc1.org sls= [] site= 353
+2353 None n1-2353.plc1.org sls= [] site= 354
+2354 None n1-2354.plc1.org sls= [] site= 355
+2355 None n1-2355.plc1.org sls= [] site= 356
+2356 None n1-2356.plc1.org sls= [] site= 357
+2357 None n1-2357.plc1.org sls= [] site= 358
+2358 None n1-2358.plc1.org sls= [] site= 359
+2359 None n1-2359.plc1.org sls= [] site= 360
+2360 None n1-2360.plc1.org sls= [] site= 361
+2361 None n1-2361.plc1.org sls= [] site= 362
+2362 None n1-2362.plc1.org sls= [] site= 363
+2363 None n1-2363.plc1.org sls= [] site= 364
+2364 None n1-2364.plc1.org sls= [] site= 365
+2365 None n1-2365.plc1.org sls= [] site= 366
+2366 None n1-2366.plc1.org sls= [] site= 367
+2367 None n1-2367.plc1.org sls= [] site= 368
+2368 None n1-2368.plc1.org sls= [] site= 369
+2369 None n1-2369.plc1.org sls= [] site= 370
+2370 None n1-2370.plc1.org sls= [] site= 371
+2371 None n1-2371.plc1.org sls= [] site= 372
+2372 None n1-2372.plc1.org sls= [] site= 373
+2373 None n1-2373.plc1.org sls= [] site= 374
+2374 None n1-2374.plc1.org sls= [] site= 375
+2375 None n1-2375.plc1.org sls= [] site= 376
+2376 None n1-2376.plc1.org sls= [] site= 377
+2377 None n1-2377.plc1.org sls= [] site= 378
+2378 None n1-2378.plc1.org sls= [] site= 379
+2379 None n1-2379.plc1.org sls= [] site= 380
+2380 None n1-2380.plc1.org sls= [] site= 381
+2381 None n1-2381.plc1.org sls= [] site= 382
+2382 None n1-2382.plc1.org sls= [] site= 383
+2383 None n1-2383.plc1.org sls= [] site= 384
+2384 None n1-2384.plc1.org sls= [] site= 385
+2385 None n1-2385.plc1.org sls= [] site= 386
+2386 None n1-2386.plc1.org sls= [] site= 387
+2387 None n1-2387.plc1.org sls= [] site= 388
+2388 None n1-2388.plc1.org sls= [] site= 389
+2389 None n1-2389.plc1.org sls= [] site= 390
+2390 None n1-2390.plc1.org sls= [] site= 391
+2391 None n1-2391.plc1.org sls= [] site= 392
+2392 None n1-2392.plc1.org sls= [] site= 393
+2393 None n1-2393.plc1.org sls= [] site= 394
+2394 None n1-2394.plc1.org sls= [] site= 395
+2395 None n1-2395.plc1.org sls= [] site= 396
+2396 None n1-2396.plc1.org sls= [] site= 397
+2397 None n1-2397.plc1.org sls= [] site= 398
+2398 None n1-2398.plc1.org sls= [] site= 399
+2399 None n1-2399.plc1.org sls= [] site= 400
+2400 None n1-2400.plc1.org sls= [] site= 401
+2401 None n1-2401.plc1.org sls= [] site= 402
+2402 None n1-2402.plc1.org sls= [] site= 403
+2403 None n1-2403.plc1.org sls= [] site= 404
+2404 None n1-2404.plc1.org sls= [] site= 405
+2405 None n1-2405.plc1.org sls= [] site= 406
+2406 None n1-2406.plc1.org sls= [] site= 407
+2407 None n1-2407.plc1.org sls= [] site= 408
+2408 None n1-2408.plc1.org sls= [] site= 409
+2409 None n1-2409.plc1.org sls= [] site= 410
+2410 None n1-2410.plc1.org sls= [] site= 411
+2411 None n1-2411.plc1.org sls= [] site= 412
+2412 None n1-2412.plc1.org sls= [] site= 413
+2413 None n1-2413.plc1.org sls= [] site= 414
+2414 None n1-2414.plc1.org sls= [] site= 415
+2415 None n1-2415.plc1.org sls= [] site= 416
+2416 None n1-2416.plc1.org sls= [] site= 417
+2417 None n1-2417.plc1.org sls= [] site= 418
+2418 None n1-2418.plc1.org sls= [] site= 419
+2419 None n1-2419.plc1.org sls= [] site= 420
+2420 None n1-2420.plc1.org sls= [] site= 421
+2421 None n1-2421.plc1.org sls= [] site= 422
+2422 None n1-2422.plc1.org sls= [] site= 423
+2423 None n1-2423.plc1.org sls= [] site= 424
+2424 None n1-2424.plc1.org sls= [] site= 425
+2425 None n1-2425.plc1.org sls= [] site= 426
+2426 None n1-2426.plc1.org sls= [] site= 427
+2427 None n1-2427.plc1.org sls= [] site= 428
+2428 None n1-2428.plc1.org sls= [] site= 429
+2429 None n1-2429.plc1.org sls= [] site= 430
+2430 None n1-2430.plc1.org sls= [] site= 431
+2431 None n1-2431.plc1.org sls= [] site= 432
+2432 None n1-2432.plc1.org sls= [] site= 433
+2433 None n1-2433.plc1.org sls= [] site= 434
+2434 None n1-2434.plc1.org sls= [] site= 435
+2435 None n1-2435.plc1.org sls= [] site= 436
+2436 None n1-2436.plc1.org sls= [] site= 437
+2437 None n1-2437.plc1.org sls= [] site= 438
+2438 None n1-2438.plc1.org sls= [] site= 439
+2439 None n1-2439.plc1.org sls= [] site= 440
+2440 None n1-2440.plc1.org sls= [] site= 441
+2441 None n1-2441.plc1.org sls= [] site= 442
+2442 None n1-2442.plc1.org sls= [] site= 443
+2443 None n1-2443.plc1.org sls= [] site= 444
+2444 None n1-2444.plc1.org sls= [] site= 445
+2445 None n1-2445.plc1.org sls= [] site= 446
+2446 None n1-2446.plc1.org sls= [] site= 447
+2447 None n1-2447.plc1.org sls= [] site= 448
+2448 None n1-2448.plc1.org sls= [] site= 449
+2449 None n1-2449.plc1.org sls= [] site= 450
+2450 None n1-2450.plc1.org sls= [] site= 451
+2451 None n1-2451.plc1.org sls= [] site= 452
+2452 None n1-2452.plc1.org sls= [] site= 453
+2453 None n1-2453.plc1.org sls= [] site= 454
+2454 None n1-2454.plc1.org sls= [] site= 455
+2455 None n1-2455.plc1.org sls= [] site= 456
+2456 None n1-2456.plc1.org sls= [] site= 457
+2457 None n1-2457.plc1.org sls= [] site= 458
+2458 None n1-2458.plc1.org sls= [] site= 459
+2459 None n1-2459.plc1.org sls= [] site= 460
+2460 None n1-2460.plc1.org sls= [] site= 461
+2461 None n1-2461.plc1.org sls= [] site= 462
+2462 None n1-2462.plc1.org sls= [] site= 463
+2463 None n1-2463.plc1.org sls= [] site= 464
+2464 None n1-2464.plc1.org sls= [] site= 465
+2465 None n1-2465.plc1.org sls= [] site= 466
+2466 None n1-2466.plc1.org sls= [] site= 467
+2467 None n1-2467.plc1.org sls= [] site= 468
+2468 None n1-2468.plc1.org sls= [] site= 469
+2469 None n1-2469.plc1.org sls= [] site= 470
+2470 None n1-2470.plc1.org sls= [] site= 471
+2471 None n1-2471.plc1.org sls= [] site= 472
+2472 None n1-2472.plc1.org sls= [] site= 473
+2473 None n1-2473.plc1.org sls= [] site= 474
+2474 None n1-2474.plc1.org sls= [] site= 475
+2475 None n1-2475.plc1.org sls= [] site= 476
+2476 None n1-2476.plc1.org sls= [] site= 477
+2477 None n1-2477.plc1.org sls= [] site= 478
+2478 None n1-2478.plc1.org sls= [] site= 479
+2479 None n1-2479.plc1.org sls= [] site= 480
+2480 None n1-2480.plc1.org sls= [] site= 481
+2481 None n1-2481.plc1.org sls= [] site= 482
+2482 None n1-2482.plc1.org sls= [] site= 483
+2483 None n1-2483.plc1.org sls= [] site= 484
+2484 None n1-2484.plc1.org sls= [] site= 485
+2485 None n1-2485.plc1.org sls= [] site= 486
+2486 None n1-2486.plc1.org sls= [] site= 487
+2487 None n1-2487.plc1.org sls= [] site= 488
+2488 None n1-2488.plc1.org sls= [] site= 489
+2489 None n1-2489.plc1.org sls= [] site= 490
+2490 None n1-2490.plc1.org sls= [] site= 491
+2491 None n1-2491.plc1.org sls= [] site= 492
+2492 None n1-2492.plc1.org sls= [] site= 493
+2493 None n1-2493.plc1.org sls= [] site= 494
+2494 None n1-2494.plc1.org sls= [] site= 495
+2495 None n1-2495.plc1.org sls= [] site= 496
+2496 None n1-2496.plc1.org sls= [] site= 497
+2497 None n1-2497.plc1.org sls= [] site= 498
+2498 None n1-2498.plc1.org sls= [] site= 499
+2499 None n1-2499.plc1.org sls= [] site= 500
+2500 None n1-2500.plc1.org sls= [] site= 501
+2501 None n1-2501.plc1.org sls= [] site= 502
+2502 None n1-2502.plc1.org sls= [] site= 503
+2503 None n1-2503.plc1.org sls= [] site= 504
+2504 None n1-2504.plc1.org sls= [] site= 505
+2505 None n1-2505.plc1.org sls= [] site= 506
+2506 None n1-2506.plc1.org sls= [] site= 507
+2507 None n1-2507.plc1.org sls= [] site= 508
+2508 None n1-2508.plc1.org sls= [] site= 509
+2509 None n1-2509.plc1.org sls= [] site= 510
+2510 None n1-2510.plc1.org sls= [] site= 511
+2511 None n1-2511.plc1.org sls= [] site= 512
+2512 None n1-2512.plc1.org sls= [] site= 513
+2513 None n1-2513.plc1.org sls= [] site= 514
+2514 None n1-2514.plc1.org sls= [] site= 515
+2515 None n1-2515.plc1.org sls= [] site= 516
+2516 None n1-2516.plc1.org sls= [] site= 517
+2517 None n1-2517.plc1.org sls= [] site= 518
+2518 None n1-2518.plc1.org sls= [] site= 519
+2519 None n1-2519.plc1.org sls= [] site= 520
+2520 None n1-2520.plc1.org sls= [] site= 521
+2521 None n1-2521.plc1.org sls= [] site= 522
+2522 None n1-2522.plc1.org sls= [] site= 523
+2523 None n1-2523.plc1.org sls= [] site= 524
+2524 None n1-2524.plc1.org sls= [] site= 525
+2525 None n1-2525.plc1.org sls= [] site= 526
+2526 None n1-2526.plc1.org sls= [] site= 527
+2527 None n1-2527.plc1.org sls= [] site= 528
+2528 None n1-2528.plc1.org sls= [] site= 529
+2529 None n1-2529.plc1.org sls= [] site= 530
+2530 None n1-2530.plc1.org sls= [] site= 531
+2531 None n1-2531.plc1.org sls= [] site= 532
+2532 None n1-2532.plc1.org sls= [] site= 533
+2533 None n1-2533.plc1.org sls= [] site= 534
+2534 None n1-2534.plc1.org sls= [] site= 535
+2535 None n1-2535.plc1.org sls= [] site= 536
+2536 None n1-2536.plc1.org sls= [] site= 537
+2537 None n1-2537.plc1.org sls= [] site= 538
+2538 None n1-2538.plc1.org sls= [] site= 539
+2539 None n1-2539.plc1.org sls= [] site= 540
+2540 None n1-2540.plc1.org sls= [] site= 541
+2541 None n1-2541.plc1.org sls= [] site= 542
+2542 None n1-2542.plc1.org sls= [] site= 543
+2543 None n1-2543.plc1.org sls= [] site= 544
+2544 None n1-2544.plc1.org sls= [] site= 545
+2545 None n1-2545.plc1.org sls= [] site= 546
+2546 None n1-2546.plc1.org sls= [] site= 547
+2547 None n1-2547.plc1.org sls= [] site= 548
+2548 None n1-2548.plc1.org sls= [] site= 549
+2549 None n1-2549.plc1.org sls= [] site= 550
+2550 None n1-2550.plc1.org sls= [] site= 551
+2551 None n1-2551.plc1.org sls= [] site= 552
+2552 None n1-2552.plc1.org sls= [] site= 553
+2553 None n1-2553.plc1.org sls= [] site= 554
+2554 None n1-2554.plc1.org sls= [] site= 555
+2555 None n1-2555.plc1.org sls= [] site= 556
+2556 None n1-2556.plc1.org sls= [] site= 557
+2557 None n1-2557.plc1.org sls= [] site= 558
+2558 None n1-2558.plc1.org sls= [] site= 559
+2559 None n1-2559.plc1.org sls= [] site= 560
+2560 None n1-2560.plc1.org sls= [] site= 561
+2561 None n1-2561.plc1.org sls= [] site= 562
+2562 None n1-2562.plc1.org sls= [] site= 563
+2563 None n1-2563.plc1.org sls= [] site= 564
+2564 None n1-2564.plc1.org sls= [] site= 565
+2565 None n1-2565.plc1.org sls= [] site= 566
+2566 None n1-2566.plc1.org sls= [] site= 567
+2567 None n1-2567.plc1.org sls= [] site= 568
+2568 None n1-2568.plc1.org sls= [] site= 569
+2569 None n1-2569.plc1.org sls= [] site= 570
+2570 None n1-2570.plc1.org sls= [] site= 571
+2571 None n1-2571.plc1.org sls= [] site= 572
+2572 None n1-2572.plc1.org sls= [] site= 573
+2573 None n1-2573.plc1.org sls= [] site= 574
+2574 None n1-2574.plc1.org sls= [] site= 575
+2575 None n1-2575.plc1.org sls= [] site= 576
+2576 None n1-2576.plc1.org sls= [] site= 577
+2577 None n1-2577.plc1.org sls= [] site= 578
+2578 None n1-2578.plc1.org sls= [] site= 579
+2579 None n1-2579.plc1.org sls= [] site= 580
+2580 None n1-2580.plc1.org sls= [] site= 581
+2581 None n1-2581.plc1.org sls= [] site= 582
+2582 None n1-2582.plc1.org sls= [] site= 583
+2583 None n1-2583.plc1.org sls= [] site= 584
+2584 None n1-2584.plc1.org sls= [] site= 585
+2585 None n1-2585.plc1.org sls= [] site= 586
+2586 None n1-2586.plc1.org sls= [] site= 587
+2587 None n1-2587.plc1.org sls= [] site= 588
+2588 None n1-2588.plc1.org sls= [] site= 589
+2589 None n1-2589.plc1.org sls= [] site= 590
+2590 None n1-2590.plc1.org sls= [] site= 591
+2591 None n1-2591.plc1.org sls= [] site= 592
+2592 None n1-2592.plc1.org sls= [] site= 593
+2593 None n1-2593.plc1.org sls= [] site= 594
+2594 None n1-2594.plc1.org sls= [] site= 595
+2595 None n1-2595.plc1.org sls= [] site= 596
+2596 None n1-2596.plc1.org sls= [] site= 597
+2597 None n1-2597.plc1.org sls= [] site= 598
+2598 None n1-2598.plc1.org sls= [] site= 599
+2599 None n1-2599.plc1.org sls= [] site= 600
+2600 None n1-2600.plc1.org sls= [] site= 601
+2601 None n1-2601.plc1.org sls= [] site= 602
+2602 None n1-2602.plc1.org sls= [] site= 603
+2603 None n1-2603.plc1.org sls= [] site= 604
+2604 None n1-2604.plc1.org sls= [] site= 605
+2605 None n1-2605.plc1.org sls= [] site= 606
+2606 None n1-2606.plc1.org sls= [] site= 607
+2607 None n1-2607.plc1.org sls= [] site= 608
+2608 None n1-2608.plc1.org sls= [] site= 609
+2609 None n1-2609.plc1.org sls= [] site= 610
+2610 None n1-2610.plc1.org sls= [] site= 611
+2611 None n1-2611.plc1.org sls= [] site= 612
+2612 None n1-2612.plc1.org sls= [] site= 613
+2613 None n1-2613.plc1.org sls= [] site= 614
+2614 None n1-2614.plc1.org sls= [] site= 615
+2615 None n1-2615.plc1.org sls= [] site= 616
+2616 None n1-2616.plc1.org sls= [] site= 617
+2617 None n1-2617.plc1.org sls= [] site= 618
+2618 None n1-2618.plc1.org sls= [] site= 619
+2619 None n1-2619.plc1.org sls= [] site= 620
+2620 None n1-2620.plc1.org sls= [] site= 621
+2621 None n1-2621.plc1.org sls= [] site= 622
+2622 None n1-2622.plc1.org sls= [] site= 623
+2623 None n1-2623.plc1.org sls= [] site= 624
+2624 None n1-2624.plc1.org sls= [] site= 625
+2625 None n1-2625.plc1.org sls= [] site= 626
+2626 None n1-2626.plc1.org sls= [] site= 627
+2627 None n1-2627.plc1.org sls= [] site= 628
+2628 None n1-2628.plc1.org sls= [] site= 629
+2629 None n1-2629.plc1.org sls= [] site= 630
+2630 None n1-2630.plc1.org sls= [] site= 631
+2631 None n1-2631.plc1.org sls= [] site= 632
+2632 None n1-2632.plc1.org sls= [] site= 633
+2633 None n1-2633.plc1.org sls= [] site= 634
+2634 None n1-2634.plc1.org sls= [] site= 635
+2635 None n1-2635.plc1.org sls= [] site= 636
+2636 None n1-2636.plc1.org sls= [] site= 637
+2637 None n1-2637.plc1.org sls= [] site= 638
+2638 None n1-2638.plc1.org sls= [] site= 639
+2639 None n1-2639.plc1.org sls= [] site= 640
+2640 None n1-2640.plc1.org sls= [] site= 641
+2641 None n1-2641.plc1.org sls= [] site= 642
+2642 None n1-2642.plc1.org sls= [] site= 643
+2643 None n1-2643.plc1.org sls= [] site= 644
+2644 None n1-2644.plc1.org sls= [] site= 645
+2645 None n1-2645.plc1.org sls= [] site= 646
+2646 None n1-2646.plc1.org sls= [] site= 647
+2647 None n1-2647.plc1.org sls= [] site= 648
+2648 None n1-2648.plc1.org sls= [] site= 649
+2649 None n1-2649.plc1.org sls= [] site= 650
+2650 None n1-2650.plc1.org sls= [] site= 651
+2651 None n1-2651.plc1.org sls= [] site= 652
+2652 None n1-2652.plc1.org sls= [] site= 653
+2653 None n1-2653.plc1.org sls= [] site= 654
+2654 None n1-2654.plc1.org sls= [] site= 655
+2655 None n1-2655.plc1.org sls= [] site= 656
+2656 None n1-2656.plc1.org sls= [] site= 657
+2657 None n1-2657.plc1.org sls= [] site= 658
+2658 None n1-2658.plc1.org sls= [] site= 659
+2659 None n1-2659.plc1.org sls= [] site= 660
+2660 None n1-2660.plc1.org sls= [] site= 661
+2661 None n1-2661.plc1.org sls= [] site= 662
+2662 None n1-2662.plc1.org sls= [] site= 663
+2663 None n1-2663.plc1.org sls= [] site= 664
+2664 None n1-2664.plc1.org sls= [] site= 665
+2665 None n1-2665.plc1.org sls= [] site= 666
+2666 None n1-2666.plc1.org sls= [] site= 667
+2667 None n1-2667.plc1.org sls= [] site= 668
+2668 None n1-2668.plc1.org sls= [] site= 669
+2669 None n1-2669.plc1.org sls= [] site= 670
+2670 None n1-2670.plc1.org sls= [] site= 671
+2671 None n1-2671.plc1.org sls= [] site= 672
+2672 None n1-2672.plc1.org sls= [] site= 673
+2673 None n1-2673.plc1.org sls= [] site= 674
+2674 None n1-2674.plc1.org sls= [] site= 675
+2675 None n1-2675.plc1.org sls= [] site= 676
+2676 None n1-2676.plc1.org sls= [] site= 677
+2677 None n1-2677.plc1.org sls= [] site= 678
+2678 None n1-2678.plc1.org sls= [] site= 679
+2679 None n1-2679.plc1.org sls= [] site= 680
+2680 None n1-2680.plc1.org sls= [] site= 681
+2681 None n1-2681.plc1.org sls= [] site= 682
+2682 None n1-2682.plc1.org sls= [] site= 683
+2683 None n1-2683.plc1.org sls= [] site= 684
+2684 None n1-2684.plc1.org sls= [] site= 685
+2685 None n1-2685.plc1.org sls= [] site= 686
+2686 None n1-2686.plc1.org sls= [] site= 687
+2687 None n1-2687.plc1.org sls= [] site= 688
+2688 None n1-2688.plc1.org sls= [] site= 689
+2689 None n1-2689.plc1.org sls= [] site= 690
+2690 None n1-2690.plc1.org sls= [] site= 691
+2691 None n1-2691.plc1.org sls= [] site= 692
+2692 None n1-2692.plc1.org sls= [] site= 693
+2693 None n1-2693.plc1.org sls= [] site= 694
+2694 None n1-2694.plc1.org sls= [] site= 695
+2695 None n1-2695.plc1.org sls= [] site= 696
+2696 None n1-2696.plc1.org sls= [] site= 697
+2697 None n1-2697.plc1.org sls= [] site= 698
+2698 None n1-2698.plc1.org sls= [] site= 699
+2699 None n1-2699.plc1.org sls= [] site= 700
+2700 None n1-2700.plc1.org sls= [] site= 701
+2701 None n1-2701.plc1.org sls= [] site= 702
+2702 None n1-2702.plc1.org sls= [] site= 703
+2703 None n1-2703.plc1.org sls= [] site= 704
+2704 None n1-2704.plc1.org sls= [] site= 705
+2705 None n1-2705.plc1.org sls= [] site= 706
+2706 None n1-2706.plc1.org sls= [] site= 707
+2707 None n1-2707.plc1.org sls= [] site= 708
+2708 None n1-2708.plc1.org sls= [] site= 709
+2709 None n1-2709.plc1.org sls= [] site= 710
+2710 None n1-2710.plc1.org sls= [] site= 711
+2711 None n1-2711.plc1.org sls= [] site= 712
+2712 None n1-2712.plc1.org sls= [] site= 713
+2713 None n1-2713.plc1.org sls= [] site= 714
+2714 None n1-2714.plc1.org sls= [] site= 715
+2715 None n1-2715.plc1.org sls= [] site= 716
+2716 None n1-2716.plc1.org sls= [] site= 717
+2717 None n1-2717.plc1.org sls= [] site= 718
+2718 None n1-2718.plc1.org sls= [] site= 719
+2719 None n1-2719.plc1.org sls= [] site= 720
+2720 None n1-2720.plc1.org sls= [] site= 721
+2721 None n1-2721.plc1.org sls= [] site= 722
+2722 None n1-2722.plc1.org sls= [] site= 723
+2723 None n1-2723.plc1.org sls= [] site= 724
+2724 None n1-2724.plc1.org sls= [] site= 725
+2725 None n1-2725.plc1.org sls= [] site= 726
+2726 None n1-2726.plc1.org sls= [] site= 727
+2727 None n1-2727.plc1.org sls= [] site= 728
+2728 None n1-2728.plc1.org sls= [] site= 729
+2729 None n1-2729.plc1.org sls= [] site= 730
+2730 None n1-2730.plc1.org sls= [] site= 731
+2731 None n1-2731.plc1.org sls= [] site= 732
+2732 None n1-2732.plc1.org sls= [] site= 733
+2733 None n1-2733.plc1.org sls= [] site= 734
+2734 None n1-2734.plc1.org sls= [] site= 735
+2735 None n1-2735.plc1.org sls= [] site= 736
+2736 None n1-2736.plc1.org sls= [] site= 737
+2737 None n1-2737.plc1.org sls= [] site= 738
+2738 None n1-2738.plc1.org sls= [] site= 739
+2739 None n1-2739.plc1.org sls= [] site= 740
+2740 None n1-2740.plc1.org sls= [] site= 741
+2741 None n1-2741.plc1.org sls= [] site= 742
+2742 None n1-2742.plc1.org sls= [] site= 743
+2743 None n1-2743.plc1.org sls= [] site= 744
+2744 None n1-2744.plc1.org sls= [] site= 745
+2745 None n1-2745.plc1.org sls= [] site= 746
+2746 None n1-2746.plc1.org sls= [] site= 747
+2747 None n1-2747.plc1.org sls= [] site= 748
+2748 None n1-2748.plc1.org sls= [] site= 749
+2749 None n1-2749.plc1.org sls= [] site= 750
+2750 None n1-2750.plc1.org sls= [] site= 751
+2751 None n1-2751.plc1.org sls= [] site= 752
+2752 None n1-2752.plc1.org sls= [] site= 753
+2753 None n1-2753.plc1.org sls= [] site= 754
+2754 None n1-2754.plc1.org sls= [] site= 755
+2755 None n1-2755.plc1.org sls= [] site= 756
+2756 None n1-2756.plc1.org sls= [] site= 757
+2757 None n1-2757.plc1.org sls= [] site= 758
+2758 None n1-2758.plc1.org sls= [] site= 759
+2759 None n1-2759.plc1.org sls= [] site= 760
+2760 None n1-2760.plc1.org sls= [] site= 761
+2761 None n1-2761.plc1.org sls= [] site= 762
+2762 None n1-2762.plc1.org sls= [] site= 763
+2763 None n1-2763.plc1.org sls= [] site= 764
+2764 None n1-2764.plc1.org sls= [] site= 765
+2765 None n1-2765.plc1.org sls= [] site= 766
+2766 None n1-2766.plc1.org sls= [] site= 767
+2767 None n1-2767.plc1.org sls= [] site= 768
+2768 None n1-2768.plc1.org sls= [] site= 769
+2769 None n1-2769.plc1.org sls= [] site= 770
+2770 None n1-2770.plc1.org sls= [] site= 771
+2771 None n1-2771.plc1.org sls= [] site= 772
+2772 None n1-2772.plc1.org sls= [] site= 773
+2773 None n1-2773.plc1.org sls= [] site= 774
+2774 None n1-2774.plc1.org sls= [] site= 775
+2775 None n1-2775.plc1.org sls= [] site= 776
+2776 None n1-2776.plc1.org sls= [] site= 777
+2777 None n1-2777.plc1.org sls= [] site= 778
+2778 None n1-2778.plc1.org sls= [] site= 779
+2779 None n1-2779.plc1.org sls= [] site= 780
+2780 None n1-2780.plc1.org sls= [] site= 781
+2781 None n1-2781.plc1.org sls= [] site= 782
+2782 None n1-2782.plc1.org sls= [] site= 783
+2783 None n1-2783.plc1.org sls= [] site= 784
+2784 None n1-2784.plc1.org sls= [] site= 785
+2785 None n1-2785.plc1.org sls= [] site= 786
+2786 None n1-2786.plc1.org sls= [] site= 787
+2787 None n1-2787.plc1.org sls= [] site= 788
+2788 None n1-2788.plc1.org sls= [] site= 789
+2789 None n1-2789.plc1.org sls= [] site= 790
+2790 None n1-2790.plc1.org sls= [] site= 791
+2791 None n1-2791.plc1.org sls= [] site= 792
+2792 None n1-2792.plc1.org sls= [] site= 793
+2793 None n1-2793.plc1.org sls= [] site= 794
+2794 None n1-2794.plc1.org sls= [] site= 795
+2795 None n1-2795.plc1.org sls= [] site= 796
+2796 None n1-2796.plc1.org sls= [] site= 797
+2797 None n1-2797.plc1.org sls= [] site= 798
+2798 None n1-2798.plc1.org sls= [] site= 799
+2799 None n1-2799.plc1.org sls= [] site= 800
+2800 None n1-2800.plc1.org sls= [] site= 801
+2801 None n1-2801.plc1.org sls= [] site= 802
+2802 None n1-2802.plc1.org sls= [] site= 803
+2803 None n1-2803.plc1.org sls= [] site= 804
+2804 None n1-2804.plc1.org sls= [] site= 805
+2805 None n1-2805.plc1.org sls= [] site= 806
+2806 None n1-2806.plc1.org sls= [] site= 807
+2807 None n1-2807.plc1.org sls= [] site= 808
+2808 None n1-2808.plc1.org sls= [] site= 809
+2809 None n1-2809.plc1.org sls= [] site= 810
+2810 None n1-2810.plc1.org sls= [] site= 811
+2811 None n1-2811.plc1.org sls= [] site= 812
+2812 None n1-2812.plc1.org sls= [] site= 813
+2813 None n1-2813.plc1.org sls= [] site= 814
+2814 None n1-2814.plc1.org sls= [] site= 815
+2815 None n1-2815.plc1.org sls= [] site= 816
+2816 None n1-2816.plc1.org sls= [] site= 817
+2817 None n1-2817.plc1.org sls= [] site= 818
+2818 None n1-2818.plc1.org sls= [] site= 819
+2819 None n1-2819.plc1.org sls= [] site= 820
+2820 None n1-2820.plc1.org sls= [] site= 821
+2821 None n1-2821.plc1.org sls= [] site= 822
+2822 None n1-2822.plc1.org sls= [] site= 823
+2823 None n1-2823.plc1.org sls= [] site= 824
+2824 None n1-2824.plc1.org sls= [] site= 825
+2825 None n1-2825.plc1.org sls= [] site= 826
+2826 None n1-2826.plc1.org sls= [] site= 827
+2827 None n1-2827.plc1.org sls= [] site= 828
+2828 None n1-2828.plc1.org sls= [] site= 829
+2829 None n1-2829.plc1.org sls= [] site= 830
+2830 None n1-2830.plc1.org sls= [] site= 831
+2831 None n1-2831.plc1.org sls= [] site= 832
+2832 None n1-2832.plc1.org sls= [] site= 833
+2833 None n1-2833.plc1.org sls= [] site= 834
+2834 None n1-2834.plc1.org sls= [] site= 835
+2835 None n1-2835.plc1.org sls= [] site= 836
+2836 None n1-2836.plc1.org sls= [] site= 837
+2837 None n1-2837.plc1.org sls= [] site= 838
+2838 None n1-2838.plc1.org sls= [] site= 839
+2839 None n1-2839.plc1.org sls= [] site= 840
+2840 None n1-2840.plc1.org sls= [] site= 841
+2841 None n1-2841.plc1.org sls= [] site= 842
+2842 None n1-2842.plc1.org sls= [] site= 843
+2843 None n1-2843.plc1.org sls= [] site= 844
+2844 None n1-2844.plc1.org sls= [] site= 845
+2845 None n1-2845.plc1.org sls= [] site= 846
+2846 None n1-2846.plc1.org sls= [] site= 847
+2847 None n1-2847.plc1.org sls= [] site= 848
+2848 None n1-2848.plc1.org sls= [] site= 849
+2849 None n1-2849.plc1.org sls= [] site= 850
+2850 None n1-2850.plc1.org sls= [] site= 851
+2851 None n1-2851.plc1.org sls= [] site= 852
+2852 None n1-2852.plc1.org sls= [] site= 853
+2853 None n1-2853.plc1.org sls= [] site= 854
+2854 None n1-2854.plc1.org sls= [] site= 855
+2855 None n1-2855.plc1.org sls= [] site= 856
+2856 None n1-2856.plc1.org sls= [] site= 857
+2857 None n1-2857.plc1.org sls= [] site= 858
+2858 None n1-2858.plc1.org sls= [] site= 859
+2859 None n1-2859.plc1.org sls= [] site= 860
+2860 None n1-2860.plc1.org sls= [] site= 861
+2861 None n1-2861.plc1.org sls= [] site= 862
+2862 None n1-2862.plc1.org sls= [] site= 863
+2863 None n1-2863.plc1.org sls= [] site= 864
+2864 None n1-2864.plc1.org sls= [] site= 865
+2865 None n1-2865.plc1.org sls= [] site= 866
+2866 None n1-2866.plc1.org sls= [] site= 867
+2867 None n1-2867.plc1.org sls= [] site= 868
+2868 None n1-2868.plc1.org sls= [] site= 869
+2869 None n1-2869.plc1.org sls= [] site= 870
+2870 None n1-2870.plc1.org sls= [] site= 871
+2871 None n1-2871.plc1.org sls= [] site= 872
+2872 None n1-2872.plc1.org sls= [] site= 873
+2873 None n1-2873.plc1.org sls= [] site= 874
+2874 None n1-2874.plc1.org sls= [] site= 875
+2875 None n1-2875.plc1.org sls= [] site= 876
+2876 None n1-2876.plc1.org sls= [] site= 877
+2877 None n1-2877.plc1.org sls= [] site= 878
+2878 None n1-2878.plc1.org sls= [] site= 879
+2879 None n1-2879.plc1.org sls= [] site= 880
+2880 None n1-2880.plc1.org sls= [] site= 881
+2881 None n1-2881.plc1.org sls= [] site= 882
+2882 None n1-2882.plc1.org sls= [] site= 883
+2883 None n1-2883.plc1.org sls= [] site= 884
+2884 None n1-2884.plc1.org sls= [] site= 885
+2885 None n1-2885.plc1.org sls= [] site= 886
+2886 None n1-2886.plc1.org sls= [] site= 887
+2887 None n1-2887.plc1.org sls= [] site= 888
+2888 None n1-2888.plc1.org sls= [] site= 889
+2889 None n1-2889.plc1.org sls= [] site= 890
+2890 None n1-2890.plc1.org sls= [] site= 891
+2891 None n1-2891.plc1.org sls= [] site= 892
+2892 None n1-2892.plc1.org sls= [] site= 893
+2893 None n1-2893.plc1.org sls= [] site= 894
+2894 None n1-2894.plc1.org sls= [] site= 895
+2895 None n1-2895.plc1.org sls= [] site= 896
+2896 None n1-2896.plc1.org sls= [] site= 897
+2897 None n1-2897.plc1.org sls= [] site= 898
+2898 None n1-2898.plc1.org sls= [] site= 899
+2899 None n1-2899.plc1.org sls= [] site= 900
+2900 None n1-2900.plc1.org sls= [] site= 901
+2901 None n1-2901.plc1.org sls= [] site= 902
+2902 None n1-2902.plc1.org sls= [] site= 903
+2903 None n1-2903.plc1.org sls= [] site= 904
+2904 None n1-2904.plc1.org sls= [] site= 905
+2905 None n1-2905.plc1.org sls= [] site= 906
+2906 None n1-2906.plc1.org sls= [] site= 907
+2907 None n1-2907.plc1.org sls= [] site= 908
+2908 None n1-2908.plc1.org sls= [] site= 909
+2909 None n1-2909.plc1.org sls= [] site= 910
+2910 None n1-2910.plc1.org sls= [] site= 911
+2911 None n1-2911.plc1.org sls= [] site= 912
+2912 None n1-2912.plc1.org sls= [] site= 913
+2913 None n1-2913.plc1.org sls= [] site= 914
+2914 None n1-2914.plc1.org sls= [] site= 915
+2915 None n1-2915.plc1.org sls= [] site= 916
+2916 None n1-2916.plc1.org sls= [] site= 917
+2917 None n1-2917.plc1.org sls= [] site= 918
+2918 None n1-2918.plc1.org sls= [] site= 919
+2919 None n1-2919.plc1.org sls= [] site= 920
+2920 None n1-2920.plc1.org sls= [] site= 921
+2921 None n1-2921.plc1.org sls= [] site= 922
+2922 None n1-2922.plc1.org sls= [] site= 923
+2923 None n1-2923.plc1.org sls= [] site= 924
+2924 None n1-2924.plc1.org sls= [] site= 925
+2925 None n1-2925.plc1.org sls= [] site= 926
+2926 None n1-2926.plc1.org sls= [] site= 927
+2927 None n1-2927.plc1.org sls= [] site= 928
+2928 None n1-2928.plc1.org sls= [] site= 929
+2929 None n1-2929.plc1.org sls= [] site= 930
+2930 None n1-2930.plc1.org sls= [] site= 931
+2931 None n1-2931.plc1.org sls= [] site= 932
+2932 None n1-2932.plc1.org sls= [] site= 933
+2933 None n1-2933.plc1.org sls= [] site= 934
+2934 None n1-2934.plc1.org sls= [] site= 935
+2935 None n1-2935.plc1.org sls= [] site= 936
+2936 None n1-2936.plc1.org sls= [] site= 937
+2937 None n1-2937.plc1.org sls= [] site= 938
+2938 None n1-2938.plc1.org sls= [] site= 939
+2939 None n1-2939.plc1.org sls= [] site= 940
+2940 None n1-2940.plc1.org sls= [] site= 941
+2941 None n1-2941.plc1.org sls= [] site= 942
+2942 None n1-2942.plc1.org sls= [] site= 943
+2943 None n1-2943.plc1.org sls= [] site= 944
+2944 None n1-2944.plc1.org sls= [] site= 945
+2945 None n1-2945.plc1.org sls= [] site= 946
+2946 None n1-2946.plc1.org sls= [] site= 947
+2947 None n1-2947.plc1.org sls= [] site= 948
+2948 None n1-2948.plc1.org sls= [] site= 949
+2949 None n1-2949.plc1.org sls= [] site= 950
+2950 None n1-2950.plc1.org sls= [] site= 951
+2951 None n1-2951.plc1.org sls= [] site= 952
+2952 None n1-2952.plc1.org sls= [] site= 953
+2953 None n1-2953.plc1.org sls= [] site= 954
+2954 None n1-2954.plc1.org sls= [] site= 955
+2955 None n1-2955.plc1.org sls= [] site= 956
+2956 None n1-2956.plc1.org sls= [] site= 957
+2957 None n1-2957.plc1.org sls= [] site= 958
+2958 None n1-2958.plc1.org sls= [] site= 959
+2959 None n1-2959.plc1.org sls= [] site= 960
+2960 None n1-2960.plc1.org sls= [] site= 961
+2961 None n1-2961.plc1.org sls= [] site= 962
+2962 None n1-2962.plc1.org sls= [] site= 963
+2963 None n1-2963.plc1.org sls= [] site= 964
+2964 None n1-2964.plc1.org sls= [] site= 965
+2965 None n1-2965.plc1.org sls= [] site= 966
+2966 None n1-2966.plc1.org sls= [] site= 967
+2967 None n1-2967.plc1.org sls= [] site= 968
+2968 None n1-2968.plc1.org sls= [] site= 969
+2969 None n1-2969.plc1.org sls= [] site= 970
+2970 None n1-2970.plc1.org sls= [] site= 971
+2971 None n1-2971.plc1.org sls= [] site= 972
+2972 None n1-2972.plc1.org sls= [] site= 973
+2973 None n1-2973.plc1.org sls= [] site= 974
+2974 None n1-2974.plc1.org sls= [] site= 975
+2975 None n1-2975.plc1.org sls= [] site= 976
+2976 None n1-2976.plc1.org sls= [] site= 977
+2977 None n1-2977.plc1.org sls= [] site= 978
+2978 None n1-2978.plc1.org sls= [] site= 979
+2979 None n1-2979.plc1.org sls= [] site= 980
+2980 None n1-2980.plc1.org sls= [] site= 981
+2981 None n1-2981.plc1.org sls= [] site= 982
+2982 None n1-2982.plc1.org sls= [] site= 983
+2983 None n1-2983.plc1.org sls= [] site= 984
+2984 None n1-2984.plc1.org sls= [] site= 985
+2985 None n1-2985.plc1.org sls= [] site= 986
+2986 None n1-2986.plc1.org sls= [] site= 987
+2987 None n1-2987.plc1.org sls= [] site= 988
+2988 None n1-2988.plc1.org sls= [] site= 989
+2989 None n1-2989.plc1.org sls= [] site= 990
+2990 None n1-2990.plc1.org sls= [] site= 991
+2991 None n1-2991.plc1.org sls= [] site= 992
+2992 None n1-2992.plc1.org sls= [] site= 993
+2993 None n1-2993.plc1.org sls= [] site= 994
+2994 None n1-2994.plc1.org sls= [] site= 995
+2995 None n1-2995.plc1.org sls= [] site= 996
+2996 None n1-2996.plc1.org sls= [] site= 997
+2997 None n1-2997.plc1.org sls= [] site= 998
+2998 None n1-2998.plc1.org sls= [] site= 999
+2999 None n1-2999.plc1.org sls= [] site= 1000
+3000 None n1-3000.plc1.org sls= [] site= 1001
+3001 1 n2-001.plc2.org sls= [2] site= 1003
+3002 1 n2-002.plc2.org sls= [2, 3] site= 1004
+3003 1 n2-003.plc2.org sls= [2, 3, 4] site= 1005
+3004 1 n2-004.plc2.org sls= [3, 4, 5] site= 1006
+3005 1 n2-005.plc2.org sls= [4, 5, 6] site= 1007
+3006 1 n2-006.plc2.org sls= [5, 6, 7] site= 1008
+3007 1 n2-007.plc2.org sls= [6, 7, 8] site= 1009
+3008 1 n2-008.plc2.org sls= [7, 8, 9] site= 1010
+3009 1 n2-009.plc2.org sls= [8, 9, 10] site= 1011
+3010 1 n2-010.plc2.org sls= [9, 10, 11] site= 1012
+3011 1 n2-011.plc2.org sls= [10, 11, 12] site= 1013
+3012 1 n2-012.plc2.org sls= [11, 12, 13] site= 1014
+3013 1 n2-013.plc2.org sls= [12, 13, 14] site= 1015
+3014 1 n2-014.plc2.org sls= [13, 14, 15] site= 1016
+3015 1 n2-015.plc2.org sls= [14, 15, 16] site= 1017
+3016 1 n2-016.plc2.org sls= [15, 16, 17] site= 1018
+3017 1 n2-017.plc2.org sls= [16, 17, 18] site= 1019
+3018 1 n2-018.plc2.org sls= [17, 18, 19] site= 1020
+3019 1 n2-019.plc2.org sls= [18, 19, 20] site= 1021
+3020 1 n2-020.plc2.org sls= [19, 20, 21] site= 1022
+3021 1 n2-021.plc2.org sls= [20, 21, 22] site= 1023
+3022 1 n2-022.plc2.org sls= [21, 22, 23] site= 1024
+3023 1 n2-023.plc2.org sls= [22, 23, 24] site= 1025
+3024 1 n2-024.plc2.org sls= [23, 24, 25] site= 1026
+3025 1 n2-025.plc2.org sls= [24, 25, 26] site= 1027
+3026 1 n2-026.plc2.org sls= [25, 26, 27] site= 1028
+3027 1 n2-027.plc2.org sls= [26, 27, 28] site= 1029
+3028 1 n2-028.plc2.org sls= [27, 28, 29] site= 1030
+3029 1 n2-029.plc2.org sls= [28, 29, 30] site= 1031
+3030 1 n2-030.plc2.org sls= [29, 30, 31] site= 1032
+3031 1 n2-031.plc2.org sls= [30, 31, 32] site= 1033
+3032 1 n2-032.plc2.org sls= [31, 32, 33] site= 1034
+3033 1 n2-033.plc2.org sls= [32, 33, 34] site= 1035
+3034 1 n2-034.plc2.org sls= [33, 34, 35] site= 1036
+3035 1 n2-035.plc2.org sls= [34, 35, 36] site= 1037
+3036 1 n2-036.plc2.org sls= [35, 36, 37] site= 1038
+3037 1 n2-037.plc2.org sls= [36, 37, 38] site= 1039
+3038 1 n2-038.plc2.org sls= [37, 38, 39] site= 1040
+3039 1 n2-039.plc2.org sls= [38, 39, 40] site= 1041
+3040 1 n2-040.plc2.org sls= [39, 40, 41] site= 1042
+3041 1 n2-041.plc2.org sls= [40, 41, 42] site= 1043
+3042 1 n2-042.plc2.org sls= [41, 42, 43] site= 1044
+3043 1 n2-043.plc2.org sls= [42, 43, 44] site= 1045
+3044 1 n2-044.plc2.org sls= [45, 43, 44] site= 1046
+3045 1 n2-045.plc2.org sls= [45, 46, 44] site= 1047
+3046 1 n2-046.plc2.org sls= [45, 46, 47] site= 1048
+3047 1 n2-047.plc2.org sls= [46, 47, 48] site= 1049
+3048 1 n2-048.plc2.org sls= [47, 48, 49] site= 1050
+3049 1 n2-049.plc2.org sls= [48, 49, 50] site= 1051
+3050 1 n2-050.plc2.org sls= [49, 50, 51] site= 1052
+3051 1 n2-051.plc2.org sls= [50, 51, 52] site= 1053
+3052 1 n2-052.plc2.org sls= [53, 51, 52] site= 1054
+3053 1 n2-053.plc2.org sls= [53, 54, 52] site= 1055
+3054 1 n2-054.plc2.org sls= [53, 54, 55] site= 1056
+3055 1 n2-055.plc2.org sls= [54, 55, 56] site= 1057
+3056 1 n2-056.plc2.org sls= [55, 56, 57] site= 1058
+3057 1 n2-057.plc2.org sls= [56, 57, 58] site= 1059
+3058 1 n2-058.plc2.org sls= [57, 58, 59] site= 1060
+3059 1 n2-059.plc2.org sls= [58, 59, 60] site= 1061
+3060 1 n2-060.plc2.org sls= [61, 59, 60] site= 1062
+3061 1 n2-061.plc2.org sls= [61, 62, 60] site= 1063
+3062 1 n2-062.plc2.org sls= [61, 62, 63] site= 1064
+3063 1 n2-063.plc2.org sls= [62, 63, 64] site= 1065
+3064 1 n2-064.plc2.org sls= [63, 64, 65] site= 1066
+3065 1 n2-065.plc2.org sls= [64, 65, 66] site= 1067
+3066 1 n2-066.plc2.org sls= [65, 66, 67] site= 1068
+3067 1 n2-067.plc2.org sls= [66, 67, 68] site= 1069
+3068 1 n2-068.plc2.org sls= [69, 67, 68] site= 1070
+3069 1 n2-069.plc2.org sls= [69, 70, 68] site= 1071
+3070 1 n2-070.plc2.org sls= [69, 70, 71] site= 1072
+3071 1 n2-071.plc2.org sls= [70, 71, 72] site= 1073
+3072 1 n2-072.plc2.org sls= [71, 72, 73] site= 1074
+3073 1 n2-073.plc2.org sls= [72, 73, 74] site= 1075
+3074 1 n2-074.plc2.org sls= [73, 74, 75] site= 1076
+3075 1 n2-075.plc2.org sls= [74, 75, 76] site= 1077
+3076 1 n2-076.plc2.org sls= [77, 75, 76] site= 1078
+3077 1 n2-077.plc2.org sls= [77, 78, 76] site= 1079
+3078 1 n2-078.plc2.org sls= [77, 78, 79] site= 1080
+3079 1 n2-079.plc2.org sls= [78, 79, 80] site= 1081
+3080 1 n2-080.plc2.org sls= [79, 80, 81] site= 1082
+3081 1 n2-081.plc2.org sls= [80, 81, 82] site= 1083
+3082 1 n2-082.plc2.org sls= [81, 82, 83] site= 1084
+3083 1 n2-083.plc2.org sls= [82, 83, 84] site= 1085
+3084 1 n2-084.plc2.org sls= [85, 83, 84] site= 1086
+3085 1 n2-085.plc2.org sls= [85, 86, 84] site= 1087
+3086 1 n2-086.plc2.org sls= [85, 86, 87] site= 1088
+3087 1 n2-087.plc2.org sls= [86, 87, 88] site= 1089
+3088 1 n2-088.plc2.org sls= [87, 88, 89] site= 1090
+3089 1 n2-089.plc2.org sls= [88, 89, 90] site= 1091
+3090 1 n2-090.plc2.org sls= [89, 90, 91] site= 1092
+3091 1 n2-091.plc2.org sls= [90, 91, 92] site= 1093
+3092 1 n2-092.plc2.org sls= [93, 91, 92] site= 1094
+3093 1 n2-093.plc2.org sls= [93, 94, 92] site= 1095
+3094 1 n2-094.plc2.org sls= [93, 94, 95] site= 1096
+3095 1 n2-095.plc2.org sls= [94, 95, 96] site= 1097
+3096 1 n2-096.plc2.org sls= [95, 96, 97] site= 1098
+3097 1 n2-097.plc2.org sls= [96, 97, 98] site= 1099
+3098 1 n2-098.plc2.org sls= [97, 98, 99] site= 1100
+3099 1 n2-099.plc2.org sls= [98, 99, 100] site= 1101
+3100 1 n2-100.plc2.org sls= [101, 99, 100] site= 1102
+3101 1 n2-101.plc2.org sls= [101, 102, 100] site= 1103
+3102 1 n2-102.plc2.org sls= [101, 102, 103] site= 1104
+3103 1 n2-103.plc2.org sls= [102, 103, 104] site= 1105
+3104 1 n2-104.plc2.org sls= [103, 104, 105] site= 1106
+3105 1 n2-105.plc2.org sls= [104, 105, 106] site= 1107
+3106 1 n2-106.plc2.org sls= [105, 106, 107] site= 1108
+3107 1 n2-107.plc2.org sls= [106, 107, 108] site= 1109
+3108 1 n2-108.plc2.org sls= [109, 107, 108] site= 1110
+3109 1 n2-109.plc2.org sls= [109, 110, 108] site= 1111
+3110 1 n2-110.plc2.org sls= [109, 110, 111] site= 1112
+3111 1 n2-111.plc2.org sls= [110, 111, 112] site= 1113
+3112 1 n2-112.plc2.org sls= [111, 112, 113] site= 1114
+3113 1 n2-113.plc2.org sls= [112, 113, 114] site= 1115
+3114 1 n2-114.plc2.org sls= [113, 114, 115] site= 1116
+3115 1 n2-115.plc2.org sls= [114, 115, 116] site= 1117
+3116 1 n2-116.plc2.org sls= [117, 115, 116] site= 1118
+3117 1 n2-117.plc2.org sls= [117, 118, 116] site= 1119
+3118 1 n2-118.plc2.org sls= [117, 118, 119] site= 1120
+3119 1 n2-119.plc2.org sls= [118, 119, 120] site= 1121
+3120 1 n2-120.plc2.org sls= [119, 120, 121] site= 1122
+3121 1 n2-121.plc2.org sls= [120, 121, 122] site= 1123
+3122 1 n2-122.plc2.org sls= [121, 122, 123] site= 1124
+3123 1 n2-123.plc2.org sls= [122, 123, 124] site= 1125
+3124 1 n2-124.plc2.org sls= [125, 123, 124] site= 1126
+3125 1 n2-125.plc2.org sls= [125, 126, 124] site= 1127
+3126 1 n2-126.plc2.org sls= [125, 126, 127] site= 1128
+3127 1 n2-127.plc2.org sls= [126, 127, 128] site= 1129
+3128 1 n2-128.plc2.org sls= [127, 128, 129] site= 1130
+3129 1 n2-129.plc2.org sls= [128, 129, 130] site= 1131
+3130 1 n2-130.plc2.org sls= [129, 130, 131] site= 1132
+3131 1 n2-131.plc2.org sls= [130, 131, 132] site= 1133
+3132 1 n2-132.plc2.org sls= [133, 131, 132] site= 1134
+3133 1 n2-133.plc2.org sls= [133, 134, 132] site= 1135
+3134 1 n2-134.plc2.org sls= [133, 134, 135] site= 1136
+3135 1 n2-135.plc2.org sls= [134, 135, 136] site= 1137
+3136 1 n2-136.plc2.org sls= [135, 136, 137] site= 1138
+3137 1 n2-137.plc2.org sls= [136, 137, 138] site= 1139
+3138 1 n2-138.plc2.org sls= [137, 138, 139] site= 1140
+3139 1 n2-139.plc2.org sls= [138, 139, 140] site= 1141
+3140 1 n2-140.plc2.org sls= [141, 139, 140] site= 1142
+3141 1 n2-141.plc2.org sls= [141, 142, 140] site= 1143
+3142 1 n2-142.plc2.org sls= [141, 142, 143] site= 1144
+3143 1 n2-143.plc2.org sls= [142, 143, 144] site= 1145
+3144 1 n2-144.plc2.org sls= [143, 144, 145] site= 1146
+3145 1 n2-145.plc2.org sls= [144, 145, 146] site= 1147
+3146 1 n2-146.plc2.org sls= [145, 146, 147] site= 1148
+3147 1 n2-147.plc2.org sls= [146, 147, 148] site= 1149
+3148 1 n2-148.plc2.org sls= [149, 147, 148] site= 1150
+3149 1 n2-149.plc2.org sls= [149, 150, 148] site= 1151
+3150 1 n2-150.plc2.org sls= [149, 150, 151] site= 1152
+3151 1 n2-151.plc2.org sls= [150, 151, 152] site= 1153
+3152 1 n2-152.plc2.org sls= [151, 152, 153] site= 1154
+3153 1 n2-153.plc2.org sls= [152, 153, 154] site= 1155
+3154 1 n2-154.plc2.org sls= [153, 154, 155] site= 1156
+3155 1 n2-155.plc2.org sls= [154, 155, 156] site= 1157
+3156 1 n2-156.plc2.org sls= [157, 155, 156] site= 1158
+3157 1 n2-157.plc2.org sls= [157, 158, 156] site= 1159
+3158 1 n2-158.plc2.org sls= [157, 158, 159] site= 1160
+3159 1 n2-159.plc2.org sls= [158, 159, 160] site= 1161
+3160 1 n2-160.plc2.org sls= [159, 160, 161] site= 1162
+3161 1 n2-161.plc2.org sls= [160, 161, 162] site= 1163
+3162 1 n2-162.plc2.org sls= [161, 162, 163] site= 1164
+3163 1 n2-163.plc2.org sls= [162, 163, 164] site= 1165
+3164 1 n2-164.plc2.org sls= [165, 163, 164] site= 1166
+3165 1 n2-165.plc2.org sls= [165, 166, 164] site= 1167
+3166 1 n2-166.plc2.org sls= [165, 166, 167] site= 1168
+3167 1 n2-167.plc2.org sls= [166, 167, 168] site= 1169
+3168 1 n2-168.plc2.org sls= [167, 168, 169] site= 1170
+3169 1 n2-169.plc2.org sls= [168, 169, 170] site= 1171
+3170 1 n2-170.plc2.org sls= [169, 170, 171] site= 1172
+3171 1 n2-171.plc2.org sls= [170, 171, 172] site= 1173
+3172 1 n2-172.plc2.org sls= [173, 171, 172] site= 1174
+3173 1 n2-173.plc2.org sls= [173, 174, 172] site= 1175
+3174 1 n2-174.plc2.org sls= [173, 174, 175] site= 1176
+3175 1 n2-175.plc2.org sls= [174, 175, 176] site= 1177
+3176 1 n2-176.plc2.org sls= [175, 176, 177] site= 1178
+3177 1 n2-177.plc2.org sls= [176, 177, 178] site= 1179
+3178 1 n2-178.plc2.org sls= [177, 178, 179] site= 1180
+3179 1 n2-179.plc2.org sls= [178, 179, 180] site= 1181
+3180 1 n2-180.plc2.org sls= [181, 179, 180] site= 1182
+3181 1 n2-181.plc2.org sls= [181, 182, 180] site= 1183
+3182 1 n2-182.plc2.org sls= [181, 182, 183] site= 1184
+3183 1 n2-183.plc2.org sls= [182, 183, 184] site= 1185
+3184 1 n2-184.plc2.org sls= [183, 184, 185] site= 1186
+3185 1 n2-185.plc2.org sls= [184, 185, 186] site= 1187
+3186 1 n2-186.plc2.org sls= [185, 186, 187] site= 1188
+3187 1 n2-187.plc2.org sls= [186, 187, 188] site= 1189
+3188 1 n2-188.plc2.org sls= [189, 187, 188] site= 1190
+3189 1 n2-189.plc2.org sls= [189, 190, 188] site= 1191
+3190 1 n2-190.plc2.org sls= [189, 190, 191] site= 1192
+3191 1 n2-191.plc2.org sls= [190, 191, 192] site= 1193
+3192 1 n2-192.plc2.org sls= [191, 192, 193] site= 1194
+3193 1 n2-193.plc2.org sls= [192, 193, 194] site= 1195
+3194 1 n2-194.plc2.org sls= [193, 194, 195] site= 1196
+3195 1 n2-195.plc2.org sls= [194, 195, 196] site= 1197
+3196 1 n2-196.plc2.org sls= [197, 195, 196] site= 1198
+3197 1 n2-197.plc2.org sls= [197, 198, 196] site= 1199
+3198 1 n2-198.plc2.org sls= [197, 198, 199] site= 1200
+3199 1 n2-199.plc2.org sls= [198, 199, 200] site= 1201
+3200 1 n2-200.plc2.org sls= [199, 200, 201] site= 1202
+3201 1 n2-201.plc2.org sls= [200, 201, 202] site= 1203
+3202 1 n2-202.plc2.org sls= [201, 202, 203] site= 1204
+3203 1 n2-203.plc2.org sls= [202, 203, 204] site= 1205
+3204 1 n2-204.plc2.org sls= [205, 203, 204] site= 1206
+3205 1 n2-205.plc2.org sls= [205, 206, 204] site= 1207
+3206 1 n2-206.plc2.org sls= [205, 206, 207] site= 1208
+3207 1 n2-207.plc2.org sls= [206, 207, 208] site= 1209
+3208 1 n2-208.plc2.org sls= [207, 208, 209] site= 1210
+3209 1 n2-209.plc2.org sls= [208, 209, 210] site= 1211
+3210 1 n2-210.plc2.org sls= [209, 210, 211] site= 1212
+3211 1 n2-211.plc2.org sls= [210, 211, 212] site= 1213
+3212 1 n2-212.plc2.org sls= [213, 211, 212] site= 1214
+3213 1 n2-213.plc2.org sls= [213, 214, 212] site= 1215
+3214 1 n2-214.plc2.org sls= [213, 214, 215] site= 1216
+3215 1 n2-215.plc2.org sls= [214, 215, 216] site= 1217
+3216 1 n2-216.plc2.org sls= [215, 216, 217] site= 1218
+3217 1 n2-217.plc2.org sls= [216, 217, 218] site= 1219
+3218 1 n2-218.plc2.org sls= [217, 218, 219] site= 1220
+3219 1 n2-219.plc2.org sls= [218, 219, 220] site= 1221
+3220 1 n2-220.plc2.org sls= [221, 219, 220] site= 1222
+3221 1 n2-221.plc2.org sls= [221, 222, 220] site= 1223
+3222 1 n2-222.plc2.org sls= [221, 222, 223] site= 1224
+3223 1 n2-223.plc2.org sls= [222, 223, 224] site= 1225
+3224 1 n2-224.plc2.org sls= [223, 224, 225] site= 1226
+3225 1 n2-225.plc2.org sls= [224, 225, 226] site= 1227
+3226 1 n2-226.plc2.org sls= [225, 226, 227] site= 1228
+3227 1 n2-227.plc2.org sls= [226, 227, 228] site= 1229
+3228 1 n2-228.plc2.org sls= [229, 227, 228] site= 1230
+3229 1 n2-229.plc2.org sls= [229, 230, 228] site= 1231
+3230 1 n2-230.plc2.org sls= [229, 230, 231] site= 1232
+3231 1 n2-231.plc2.org sls= [230, 231, 232] site= 1233
+3232 1 n2-232.plc2.org sls= [231, 232, 233] site= 1234
+3233 1 n2-233.plc2.org sls= [232, 233, 234] site= 1235
+3234 1 n2-234.plc2.org sls= [233, 234, 235] site= 1236
+3235 1 n2-235.plc2.org sls= [234, 235, 236] site= 1237
+3236 1 n2-236.plc2.org sls= [237, 235, 236] site= 1238
+3237 1 n2-237.plc2.org sls= [237, 238, 236] site= 1239
+3238 1 n2-238.plc2.org sls= [237, 238, 239] site= 1240
+3239 1 n2-239.plc2.org sls= [238, 239, 240] site= 1241
+3240 1 n2-240.plc2.org sls= [239, 240, 241] site= 1242
+3241 1 n2-241.plc2.org sls= [240, 241, 242] site= 1243
+3242 1 n2-242.plc2.org sls= [241, 242, 243] site= 1244
+3243 1 n2-243.plc2.org sls= [242, 243, 244] site= 1245
+3244 1 n2-244.plc2.org sls= [245, 243, 244] site= 1246
+3245 1 n2-245.plc2.org sls= [245, 246, 244] site= 1247
+3246 1 n2-246.plc2.org sls= [245, 246, 247] site= 1248
+3247 1 n2-247.plc2.org sls= [246, 247, 248] site= 1249
+3248 1 n2-248.plc2.org sls= [247, 248, 249] site= 1250
+3249 1 n2-249.plc2.org sls= [248, 249, 250] site= 1251
+3250 1 n2-250.plc2.org sls= [249, 250, 251] site= 1252
+3251 1 n2-251.plc2.org sls= [250, 251, 252] site= 1253
+3252 1 n2-252.plc2.org sls= [253, 251, 252] site= 1254
+3253 1 n2-253.plc2.org sls= [253, 254, 252] site= 1255
+3254 1 n2-254.plc2.org sls= [253, 254, 255] site= 1256
+3255 1 n2-255.plc2.org sls= [254, 255, 256] site= 1257
+3256 1 n2-256.plc2.org sls= [255, 256, 257] site= 1258
+3257 1 n2-257.plc2.org sls= [256, 257, 258] site= 1259
+3258 1 n2-258.plc2.org sls= [257, 258, 259] site= 1260
+3259 1 n2-259.plc2.org sls= [258, 259, 260] site= 1261
+3260 1 n2-260.plc2.org sls= [261, 259, 260] site= 1262
+3261 1 n2-261.plc2.org sls= [261, 262, 260] site= 1263
+3262 1 n2-262.plc2.org sls= [261, 262, 263] site= 1264
+3263 1 n2-263.plc2.org sls= [262, 263, 264] site= 1265
+3264 1 n2-264.plc2.org sls= [263, 264, 265] site= 1266
+3265 1 n2-265.plc2.org sls= [264, 265, 266] site= 1267
+3266 1 n2-266.plc2.org sls= [265, 266, 267] site= 1268
+3267 1 n2-267.plc2.org sls= [266, 267, 268] site= 1269
+3268 1 n2-268.plc2.org sls= [269, 267, 268] site= 1270
+3269 1 n2-269.plc2.org sls= [269, 270, 268] site= 1271
+3270 1 n2-270.plc2.org sls= [269, 270, 271] site= 1272
+3271 1 n2-271.plc2.org sls= [270, 271, 272] site= 1273
+3272 1 n2-272.plc2.org sls= [271, 272, 273] site= 1274
+3273 1 n2-273.plc2.org sls= [272, 273, 274] site= 1275
+3274 1 n2-274.plc2.org sls= [273, 274, 275] site= 1276
+3275 1 n2-275.plc2.org sls= [274, 275, 276] site= 1277
+3276 1 n2-276.plc2.org sls= [277, 275, 276] site= 1278
+3277 1 n2-277.plc2.org sls= [277, 278, 276] site= 1279
+3278 1 n2-278.plc2.org sls= [277, 278, 279] site= 1280
+3279 1 n2-279.plc2.org sls= [278, 279, 280] site= 1281
+3280 1 n2-280.plc2.org sls= [279, 280, 281] site= 1282
+3281 1 n2-281.plc2.org sls= [280, 281, 282] site= 1283
+3282 1 n2-282.plc2.org sls= [281, 282, 283] site= 1284
+3283 1 n2-283.plc2.org sls= [282, 283, 284] site= 1285
+3284 1 n2-284.plc2.org sls= [285, 283, 284] site= 1286
+3285 1 n2-285.plc2.org sls= [285, 286, 284] site= 1287
+3286 1 n2-286.plc2.org sls= [285, 286, 287] site= 1288
+3287 1 n2-287.plc2.org sls= [286, 287, 288] site= 1289
+3288 1 n2-288.plc2.org sls= [287, 288, 289] site= 1290
+3289 1 n2-289.plc2.org sls= [288, 289, 290] site= 1291
+3290 1 n2-290.plc2.org sls= [289, 290, 291] site= 1292
+3291 1 n2-291.plc2.org sls= [290, 291, 292] site= 1293
+3292 1 n2-292.plc2.org sls= [293, 291, 292] site= 1294
+3293 1 n2-293.plc2.org sls= [293, 294, 292] site= 1295
+3294 1 n2-294.plc2.org sls= [293, 294, 295] site= 1296
+3295 1 n2-295.plc2.org sls= [294, 295, 296] site= 1297
+3296 1 n2-296.plc2.org sls= [295, 296, 297] site= 1298
+3297 1 n2-297.plc2.org sls= [296, 297, 298] site= 1299
+3298 1 n2-298.plc2.org sls= [297, 298, 299] site= 1300
+3299 1 n2-299.plc2.org sls= [298, 299, 300] site= 1301
+3300 1 n2-300.plc2.org sls= [301, 299, 300] site= 1302
+3301 1 n2-301.plc2.org sls= [301, 302, 300] site= 1303
+3302 1 n2-302.plc2.org sls= [301, 302, 303] site= 1304
+3303 1 n2-303.plc2.org sls= [302, 303, 304] site= 1305
+3304 1 n2-304.plc2.org sls= [303, 304, 305] site= 1306
+3305 1 n2-305.plc2.org sls= [304, 305, 306] site= 1307
+3306 1 n2-306.plc2.org sls= [305, 306, 307] site= 1308
+3307 1 n2-307.plc2.org sls= [306, 307, 308] site= 1309
+3308 1 n2-308.plc2.org sls= [309, 307, 308] site= 1310
+3309 1 n2-309.plc2.org sls= [309, 310, 308] site= 1311
+3310 1 n2-310.plc2.org sls= [309, 310, 311] site= 1312
+3311 1 n2-311.plc2.org sls= [310, 311, 312] site= 1313
+3312 1 n2-312.plc2.org sls= [311, 312, 313] site= 1314
+3313 1 n2-313.plc2.org sls= [312, 313, 314] site= 1315
+3314 1 n2-314.plc2.org sls= [313, 314, 315] site= 1316
+3315 1 n2-315.plc2.org sls= [314, 315, 316] site= 1317
+3316 1 n2-316.plc2.org sls= [317, 315, 316] site= 1318
+3317 1 n2-317.plc2.org sls= [317, 318, 316] site= 1319
+3318 1 n2-318.plc2.org sls= [317, 318, 319] site= 1320
+3319 1 n2-319.plc2.org sls= [318, 319, 320] site= 1321
+3320 1 n2-320.plc2.org sls= [319, 320, 321] site= 1322
+3321 1 n2-321.plc2.org sls= [320, 321, 322] site= 1323
+3322 1 n2-322.plc2.org sls= [321, 322, 323] site= 1324
+3323 1 n2-323.plc2.org sls= [322, 323, 324] site= 1325
+3324 1 n2-324.plc2.org sls= [325, 323, 324] site= 1326
+3325 1 n2-325.plc2.org sls= [325, 326, 324] site= 1327
+3326 1 n2-326.plc2.org sls= [325, 326, 327] site= 1328
+3327 1 n2-327.plc2.org sls= [326, 327, 328] site= 1329
+3328 1 n2-328.plc2.org sls= [327, 328, 329] site= 1330
+3329 1 n2-329.plc2.org sls= [328, 329, 330] site= 1331
+3330 1 n2-330.plc2.org sls= [329, 330, 331] site= 1332
+3331 1 n2-331.plc2.org sls= [330, 331, 332] site= 1333
+3332 1 n2-332.plc2.org sls= [333, 331, 332] site= 1334
+3333 1 n2-333.plc2.org sls= [333, 334, 332] site= 1335
+3334 1 n2-334.plc2.org sls= [333, 334, 335] site= 1336
+3335 1 n2-335.plc2.org sls= [334, 335, 336] site= 1337
+3336 1 n2-336.plc2.org sls= [335, 336, 337] site= 1338
+3337 1 n2-337.plc2.org sls= [336, 337, 338] site= 1339
+3338 1 n2-338.plc2.org sls= [337, 338, 339] site= 1340
+3339 1 n2-339.plc2.org sls= [338, 339, 340] site= 1341
+3340 1 n2-340.plc2.org sls= [341, 339, 340] site= 1342
+3341 1 n2-341.plc2.org sls= [341, 342, 340] site= 1343
+3342 1 n2-342.plc2.org sls= [341, 342, 343] site= 1344
+3343 1 n2-343.plc2.org sls= [342, 343, 344] site= 1345
+3344 1 n2-344.plc2.org sls= [343, 344, 345] site= 1346
+3345 1 n2-345.plc2.org sls= [344, 345, 346] site= 1347
+3346 1 n2-346.plc2.org sls= [345, 346, 347] site= 1348
+3347 1 n2-347.plc2.org sls= [346, 347, 348] site= 1349
+3348 1 n2-348.plc2.org sls= [349, 347, 348] site= 1350
+3349 1 n2-349.plc2.org sls= [349, 350, 348] site= 1351
+3350 1 n2-350.plc2.org sls= [349, 350, 351] site= 1352
+3351 1 n2-351.plc2.org sls= [350, 351, 352] site= 1353
+3352 1 n2-352.plc2.org sls= [351, 352, 353] site= 1354
+3353 1 n2-353.plc2.org sls= [352, 353, 354] site= 1355
+3354 1 n2-354.plc2.org sls= [353, 354, 355] site= 1356
+3355 1 n2-355.plc2.org sls= [354, 355, 356] site= 1357
+3356 1 n2-356.plc2.org sls= [357, 355, 356] site= 1358
+3357 1 n2-357.plc2.org sls= [357, 358, 356] site= 1359
+3358 1 n2-358.plc2.org sls= [357, 358, 359] site= 1360
+3359 1 n2-359.plc2.org sls= [358, 359, 360] site= 1361
+3360 1 n2-360.plc2.org sls= [359, 360, 361] site= 1362
+3361 1 n2-361.plc2.org sls= [360, 361, 362] site= 1363
+3362 1 n2-362.plc2.org sls= [361, 362, 363] site= 1364
+3363 1 n2-363.plc2.org sls= [362, 363, 364] site= 1365
+3364 1 n2-364.plc2.org sls= [365, 363, 364] site= 1366
+3365 1 n2-365.plc2.org sls= [365, 366, 364] site= 1367
+3366 1 n2-366.plc2.org sls= [365, 366, 367] site= 1368
+3367 1 n2-367.plc2.org sls= [366, 367, 368] site= 1369
+3368 1 n2-368.plc2.org sls= [367, 368, 369] site= 1370
+3369 1 n2-369.plc2.org sls= [368, 369, 370] site= 1371
+3370 1 n2-370.plc2.org sls= [369, 370, 371] site= 1372
+3371 1 n2-371.plc2.org sls= [370, 371, 372] site= 1373
+3372 1 n2-372.plc2.org sls= [373, 371, 372] site= 1374
+3373 1 n2-373.plc2.org sls= [373, 374, 372] site= 1375
+3374 1 n2-374.plc2.org sls= [373, 374, 375] site= 1376
+3375 1 n2-375.plc2.org sls= [374, 375, 376] site= 1377
+3376 1 n2-376.plc2.org sls= [375, 376, 377] site= 1378
+3377 1 n2-377.plc2.org sls= [376, 377, 378] site= 1379
+3378 1 n2-378.plc2.org sls= [377, 378, 379] site= 1380
+3379 1 n2-379.plc2.org sls= [378, 379, 380] site= 1381
+3380 1 n2-380.plc2.org sls= [381, 379, 380] site= 1382
+3381 1 n2-381.plc2.org sls= [381, 382, 380] site= 1383
+3382 1 n2-382.plc2.org sls= [381, 382, 383] site= 1384
+3383 1 n2-383.plc2.org sls= [382, 383, 384] site= 1385
+3384 1 n2-384.plc2.org sls= [383, 384, 385] site= 1386
+3385 1 n2-385.plc2.org sls= [384, 385, 386] site= 1387
+3386 1 n2-386.plc2.org sls= [385, 386, 387] site= 1388
+3387 1 n2-387.plc2.org sls= [386, 387, 388] site= 1389
+3388 1 n2-388.plc2.org sls= [389, 387, 388] site= 1390
+3389 1 n2-389.plc2.org sls= [389, 390, 388] site= 1391
+3390 1 n2-390.plc2.org sls= [389, 390, 391] site= 1392
+3391 1 n2-391.plc2.org sls= [390, 391, 392] site= 1393
+3392 1 n2-392.plc2.org sls= [391, 392, 393] site= 1394
+3393 1 n2-393.plc2.org sls= [392, 393, 394] site= 1395
+3394 1 n2-394.plc2.org sls= [393, 394, 395] site= 1396
+3395 1 n2-395.plc2.org sls= [394, 395, 396] site= 1397
+3396 1 n2-396.plc2.org sls= [397, 395, 396] site= 1398
+3397 1 n2-397.plc2.org sls= [397, 398, 396] site= 1399
+3398 1 n2-398.plc2.org sls= [397, 398, 399] site= 1400
+3399 1 n2-399.plc2.org sls= [398, 399, 400] site= 1401
+3400 1 n2-400.plc2.org sls= [399, 400, 401] site= 1402
+3401 1 n2-401.plc2.org sls= [400, 401, 402] site= 1403
+3402 1 n2-402.plc2.org sls= [401, 402, 403] site= 1404
+3403 1 n2-403.plc2.org sls= [402, 403, 404] site= 1405
+3404 1 n2-404.plc2.org sls= [405, 403, 404] site= 1406
+3405 1 n2-405.plc2.org sls= [405, 406, 404] site= 1407
+3406 1 n2-406.plc2.org sls= [405, 406, 407] site= 1408
+3407 1 n2-407.plc2.org sls= [406, 407, 408] site= 1409
+3408 1 n2-408.plc2.org sls= [407, 408, 409] site= 1410
+3409 1 n2-409.plc2.org sls= [408, 409, 410] site= 1411
+3410 1 n2-410.plc2.org sls= [409, 410, 411] site= 1412
+3411 1 n2-411.plc2.org sls= [410, 411, 412] site= 1413
+3412 1 n2-412.plc2.org sls= [413, 411, 412] site= 1414
+3413 1 n2-413.plc2.org sls= [413, 414, 412] site= 1415
+3414 1 n2-414.plc2.org sls= [413, 414, 415] site= 1416
+3415 1 n2-415.plc2.org sls= [414, 415, 416] site= 1417
+3416 1 n2-416.plc2.org sls= [415, 416, 417] site= 1418
+3417 1 n2-417.plc2.org sls= [416, 417, 418] site= 1419
+3418 1 n2-418.plc2.org sls= [417, 418, 419] site= 1420
+3419 1 n2-419.plc2.org sls= [418, 419, 420] site= 1421
+3420 1 n2-420.plc2.org sls= [421, 419, 420] site= 1422
+3421 1 n2-421.plc2.org sls= [421, 422, 420] site= 1423
+3422 1 n2-422.plc2.org sls= [421, 422, 423] site= 1424
+3423 1 n2-423.plc2.org sls= [422, 423, 424] site= 1425
+3424 1 n2-424.plc2.org sls= [423, 424, 425] site= 1426
+3425 1 n2-425.plc2.org sls= [424, 425, 426] site= 1427
+3426 1 n2-426.plc2.org sls= [425, 426, 427] site= 1428
+3427 1 n2-427.plc2.org sls= [426, 427, 428] site= 1429
+3428 1 n2-428.plc2.org sls= [429, 427, 428] site= 1430
+3429 1 n2-429.plc2.org sls= [429, 430, 428] site= 1431
+3430 1 n2-430.plc2.org sls= [429, 430, 431] site= 1432
+3431 1 n2-431.plc2.org sls= [430, 431, 432] site= 1433
+3432 1 n2-432.plc2.org sls= [431, 432, 433] site= 1434
+3433 1 n2-433.plc2.org sls= [432, 433, 434] site= 1435
+3434 1 n2-434.plc2.org sls= [433, 434, 435] site= 1436
+3435 1 n2-435.plc2.org sls= [434, 435, 436] site= 1437
+3436 1 n2-436.plc2.org sls= [437, 435, 436] site= 1438
+3437 1 n2-437.plc2.org sls= [437, 438, 436] site= 1439
+3438 1 n2-438.plc2.org sls= [437, 438, 439] site= 1440
+3439 1 n2-439.plc2.org sls= [438, 439, 440] site= 1441
+3440 1 n2-440.plc2.org sls= [439, 440, 441] site= 1442
+3441 1 n2-441.plc2.org sls= [440, 441, 442] site= 1443
+3442 1 n2-442.plc2.org sls= [441, 442, 443] site= 1444
+3443 1 n2-443.plc2.org sls= [442, 443, 444] site= 1445
+3444 1 n2-444.plc2.org sls= [445, 443, 444] site= 1446
+3445 1 n2-445.plc2.org sls= [445, 446, 444] site= 1447
+3446 1 n2-446.plc2.org sls= [445, 446, 447] site= 1448
+3447 1 n2-447.plc2.org sls= [446, 447, 448] site= 1449
+3448 1 n2-448.plc2.org sls= [447, 448, 449] site= 1450
+3449 1 n2-449.plc2.org sls= [448, 449, 450] site= 1451
+3450 1 n2-450.plc2.org sls= [449, 450, 451] site= 1452
+3451 1 n2-451.plc2.org sls= [450, 451, 452] site= 1453
+3452 1 n2-452.plc2.org sls= [453, 451, 452] site= 1454
+3453 1 n2-453.plc2.org sls= [453, 454, 452] site= 1455
+3454 1 n2-454.plc2.org sls= [453, 454, 455] site= 1456
+3455 1 n2-455.plc2.org sls= [454, 455, 456] site= 1457
+3456 1 n2-456.plc2.org sls= [455, 456, 457] site= 1458
+3457 1 n2-457.plc2.org sls= [456, 457, 458] site= 1459
+3458 1 n2-458.plc2.org sls= [457, 458, 459] site= 1460
+3459 1 n2-459.plc2.org sls= [458, 459, 460] site= 1461
+3460 1 n2-460.plc2.org sls= [461, 459, 460] site= 1462
+3461 1 n2-461.plc2.org sls= [461, 462, 460] site= 1463
+3462 1 n2-462.plc2.org sls= [461, 462, 463] site= 1464
+3463 1 n2-463.plc2.org sls= [462, 463, 464] site= 1465
+3464 1 n2-464.plc2.org sls= [463, 464, 465] site= 1466
+3465 1 n2-465.plc2.org sls= [464, 465, 466] site= 1467
+3466 1 n2-466.plc2.org sls= [465, 466, 467] site= 1468
+3467 1 n2-467.plc2.org sls= [466, 467, 468] site= 1469
+3468 1 n2-468.plc2.org sls= [469, 467, 468] site= 1470
+3469 1 n2-469.plc2.org sls= [469, 470, 468] site= 1471
+3470 1 n2-470.plc2.org sls= [469, 470, 471] site= 1472
+3471 1 n2-471.plc2.org sls= [470, 471, 472] site= 1473
+3472 1 n2-472.plc2.org sls= [471, 472, 473] site= 1474
+3473 1 n2-473.plc2.org sls= [472, 473, 474] site= 1475
+3474 1 n2-474.plc2.org sls= [473, 474, 475] site= 1476
+3475 1 n2-475.plc2.org sls= [474, 475, 476] site= 1477
+3476 1 n2-476.plc2.org sls= [477, 475, 476] site= 1478
+3477 1 n2-477.plc2.org sls= [477, 478, 476] site= 1479
+3478 1 n2-478.plc2.org sls= [477, 478, 479] site= 1480
+3479 1 n2-479.plc2.org sls= [478, 479, 480] site= 1481
+3480 1 n2-480.plc2.org sls= [479, 480, 481] site= 1482
+3481 1 n2-481.plc2.org sls= [480, 481, 482] site= 1483
+3482 1 n2-482.plc2.org sls= [481, 482, 483] site= 1484
+3483 1 n2-483.plc2.org sls= [482, 483, 484] site= 1485
+3484 1 n2-484.plc2.org sls= [485, 483, 484] site= 1486
+3485 1 n2-485.plc2.org sls= [485, 486, 484] site= 1487
+3486 1 n2-486.plc2.org sls= [485, 486, 487] site= 1488
+3487 1 n2-487.plc2.org sls= [486, 487, 488] site= 1489
+3488 1 n2-488.plc2.org sls= [487, 488, 489] site= 1490
+3489 1 n2-489.plc2.org sls= [488, 489, 490] site= 1491
+3490 1 n2-490.plc2.org sls= [489, 490, 491] site= 1492
+3491 1 n2-491.plc2.org sls= [490, 491, 492] site= 1493
+3492 1 n2-492.plc2.org sls= [493, 491, 492] site= 1494
+3493 1 n2-493.plc2.org sls= [493, 494, 492] site= 1495
+3494 1 n2-494.plc2.org sls= [493, 494, 495] site= 1496
+3495 1 n2-495.plc2.org sls= [494, 495, 496] site= 1497
+3496 1 n2-496.plc2.org sls= [495, 496, 497] site= 1498
+3497 1 n2-497.plc2.org sls= [496, 497, 498] site= 1499
+3498 1 n2-498.plc2.org sls= [497, 498, 499] site= 1500
+3499 1 n2-499.plc2.org sls= [498, 499, 500] site= 1501
+3500 1 n2-500.plc2.org sls= [501, 499, 500] site= 1502
+3501 1 n2-501.plc2.org sls= [501, 502, 500] site= 1503
+3502 1 n2-502.plc2.org sls= [501, 502, 503] site= 1504
+3503 1 n2-503.plc2.org sls= [502, 503, 504] site= 1505
+3504 1 n2-504.plc2.org sls= [503, 504, 505] site= 1506
+3505 1 n2-505.plc2.org sls= [504, 505, 506] site= 1507
+3506 1 n2-506.plc2.org sls= [505, 506, 507] site= 1508
+3507 1 n2-507.plc2.org sls= [506, 507, 508] site= 1509
+3508 1 n2-508.plc2.org sls= [509, 507, 508] site= 1510
+3509 1 n2-509.plc2.org sls= [509, 510, 508] site= 1511
+3510 1 n2-510.plc2.org sls= [509, 510, 511] site= 1512
+3511 1 n2-511.plc2.org sls= [510, 511, 512] site= 1513
+3512 1 n2-512.plc2.org sls= [511, 512, 513] site= 1514
+3513 1 n2-513.plc2.org sls= [512, 513, 514] site= 1515
+3514 1 n2-514.plc2.org sls= [513, 514, 515] site= 1516
+3515 1 n2-515.plc2.org sls= [514, 515, 516] site= 1517
+3516 1 n2-516.plc2.org sls= [517, 515, 516] site= 1518
+3517 1 n2-517.plc2.org sls= [517, 518, 516] site= 1519
+3518 1 n2-518.plc2.org sls= [517, 518, 519] site= 1520
+3519 1 n2-519.plc2.org sls= [518, 519, 520] site= 1521
+3520 1 n2-520.plc2.org sls= [519, 520, 521] site= 1522
+3521 1 n2-521.plc2.org sls= [520, 521, 522] site= 1523
+3522 1 n2-522.plc2.org sls= [521, 522, 523] site= 1524
+3523 1 n2-523.plc2.org sls= [522, 523, 524] site= 1525
+3524 1 n2-524.plc2.org sls= [525, 523, 524] site= 1526
+3525 1 n2-525.plc2.org sls= [525, 526, 524] site= 1527
+3526 1 n2-526.plc2.org sls= [526, 527, 525] site= 1528
+3527 1 n2-527.plc2.org sls= [527, 528, 526] site= 1529
+3528 1 n2-528.plc2.org sls= [528, 529, 527] site= 1530
+3529 1 n2-529.plc2.org sls= [529, 530, 528] site= 1531
+3530 1 n2-530.plc2.org sls= [530, 531, 529] site= 1532
+3531 1 n2-531.plc2.org sls= [531, 532, 530] site= 1533
+3532 1 n2-532.plc2.org sls= [532, 533, 531] site= 1534
+3533 1 n2-533.plc2.org sls= [533, 534, 532] site= 1535
+3534 1 n2-534.plc2.org sls= [533, 534, 535] site= 1536
+3535 1 n2-535.plc2.org sls= [534, 535, 536] site= 1537
+3536 1 n2-536.plc2.org sls= [535, 536, 537] site= 1538
+3537 1 n2-537.plc2.org sls= [536, 537, 538] site= 1539
+3538 1 n2-538.plc2.org sls= [537, 538, 539] site= 1540
+3539 1 n2-539.plc2.org sls= [538, 539, 540] site= 1541
+3540 1 n2-540.plc2.org sls= [541, 539, 540] site= 1542
+3541 1 n2-541.plc2.org sls= [541, 542, 540] site= 1543
+3542 1 n2-542.plc2.org sls= [541, 542, 543] site= 1544
+3543 1 n2-543.plc2.org sls= [542, 543, 544] site= 1545
+3544 1 n2-544.plc2.org sls= [543, 544, 545] site= 1546
+3545 1 n2-545.plc2.org sls= [544, 545, 546] site= 1547
+3546 1 n2-546.plc2.org sls= [545, 546, 547] site= 1548
+3547 1 n2-547.plc2.org sls= [546, 547, 548] site= 1549
+3548 1 n2-548.plc2.org sls= [549, 547, 548] site= 1550
+3549 1 n2-549.plc2.org sls= [549, 550, 548] site= 1551
+3550 1 n2-550.plc2.org sls= [549, 550, 551] site= 1552
+3551 1 n2-551.plc2.org sls= [550, 551, 552] site= 1553
+3552 1 n2-552.plc2.org sls= [551, 552, 553] site= 1554
+3553 1 n2-553.plc2.org sls= [552, 553, 554] site= 1555
+3554 1 n2-554.plc2.org sls= [553, 554, 555] site= 1556
+3555 1 n2-555.plc2.org sls= [554, 555, 556] site= 1557
+3556 1 n2-556.plc2.org sls= [557, 555, 556] site= 1558
+3557 1 n2-557.plc2.org sls= [557, 558, 556] site= 1559
+3558 1 n2-558.plc2.org sls= [557, 558, 559] site= 1560
+3559 1 n2-559.plc2.org sls= [558, 559, 560] site= 1561
+3560 1 n2-560.plc2.org sls= [559, 560, 561] site= 1562
+3561 1 n2-561.plc2.org sls= [560, 561, 562] site= 1563
+3562 1 n2-562.plc2.org sls= [561, 562, 563] site= 1564
+3563 1 n2-563.plc2.org sls= [562, 563, 564] site= 1565
+3564 1 n2-564.plc2.org sls= [565, 563, 564] site= 1566
+3565 1 n2-565.plc2.org sls= [565, 566, 564] site= 1567
+3566 1 n2-566.plc2.org sls= [565, 566, 567] site= 1568
+3567 1 n2-567.plc2.org sls= [566, 567, 568] site= 1569
+3568 1 n2-568.plc2.org sls= [567, 568, 569] site= 1570
+3569 1 n2-569.plc2.org sls= [568, 569, 570] site= 1571
+3570 1 n2-570.plc2.org sls= [569, 570, 571] site= 1572
+3571 1 n2-571.plc2.org sls= [570, 571, 572] site= 1573
+3572 1 n2-572.plc2.org sls= [573, 571, 572] site= 1574
+3573 1 n2-573.plc2.org sls= [573, 574, 572] site= 1575
+3574 1 n2-574.plc2.org sls= [573, 574, 575] site= 1576
+3575 1 n2-575.plc2.org sls= [574, 575, 576] site= 1577
+3576 1 n2-576.plc2.org sls= [575, 576, 577] site= 1578
+3577 1 n2-577.plc2.org sls= [576, 577, 578] site= 1579
+3578 1 n2-578.plc2.org sls= [577, 578, 579] site= 1580
+3579 1 n2-579.plc2.org sls= [578, 579, 580] site= 1581
+3580 1 n2-580.plc2.org sls= [581, 579, 580] site= 1582
+3581 1 n2-581.plc2.org sls= [581, 582, 580] site= 1583
+3582 1 n2-582.plc2.org sls= [581, 582, 583] site= 1584
+3583 1 n2-583.plc2.org sls= [582, 583, 584] site= 1585
+3584 1 n2-584.plc2.org sls= [583, 584, 585] site= 1586
+3585 1 n2-585.plc2.org sls= [584, 585, 586] site= 1587
+3586 1 n2-586.plc2.org sls= [585, 586, 587] site= 1588
+3587 1 n2-587.plc2.org sls= [586, 587, 588] site= 1589
+3588 1 n2-588.plc2.org sls= [589, 587, 588] site= 1590
+3589 1 n2-589.plc2.org sls= [589, 590, 588] site= 1591
+3590 1 n2-590.plc2.org sls= [589, 590, 591] site= 1592
+3591 1 n2-591.plc2.org sls= [590, 591, 592] site= 1593
+3592 1 n2-592.plc2.org sls= [591, 592, 593] site= 1594
+3593 1 n2-593.plc2.org sls= [592, 593, 594] site= 1595
+3594 1 n2-594.plc2.org sls= [593, 594, 595] site= 1596
+3595 1 n2-595.plc2.org sls= [594, 595, 596] site= 1597
+3596 1 n2-596.plc2.org sls= [597, 595, 596] site= 1598
+3597 1 n2-597.plc2.org sls= [597, 598, 596] site= 1599
+3598 1 n2-598.plc2.org sls= [597, 598, 599] site= 1600
+3599 1 n2-599.plc2.org sls= [598, 599, 600] site= 1601
+3600 1 n2-600.plc2.org sls= [599, 600, 601] site= 1602
+3601 1 n2-601.plc2.org sls= [600, 601, 602] site= 1603
+3602 1 n2-602.plc2.org sls= [601, 602, 603] site= 1604
+3603 1 n2-603.plc2.org sls= [602, 603, 604] site= 1605
+3604 1 n2-604.plc2.org sls= [605, 603, 604] site= 1606
+3605 1 n2-605.plc2.org sls= [605, 606, 604] site= 1607
+3606 1 n2-606.plc2.org sls= [605, 606, 607] site= 1608
+3607 1 n2-607.plc2.org sls= [606, 607, 608] site= 1609
+3608 1 n2-608.plc2.org sls= [607, 608, 609] site= 1610
+3609 1 n2-609.plc2.org sls= [608, 609, 610] site= 1611
+3610 1 n2-610.plc2.org sls= [609, 610, 611] site= 1612
+3611 1 n2-611.plc2.org sls= [610, 611, 612] site= 1613
+3612 1 n2-612.plc2.org sls= [613, 611, 612] site= 1614
+3613 1 n2-613.plc2.org sls= [613, 614, 612] site= 1615
+3614 1 n2-614.plc2.org sls= [613, 614, 615] site= 1616
+3615 1 n2-615.plc2.org sls= [614, 615, 616] site= 1617
+3616 1 n2-616.plc2.org sls= [615, 616, 617] site= 1618
+3617 1 n2-617.plc2.org sls= [616, 617, 618] site= 1619
+3618 1 n2-618.plc2.org sls= [617, 618, 619] site= 1620
+3619 1 n2-619.plc2.org sls= [618, 619, 620] site= 1621
+3620 1 n2-620.plc2.org sls= [621, 619, 620] site= 1622
+3621 1 n2-621.plc2.org sls= [621, 622, 620] site= 1623
+3622 1 n2-622.plc2.org sls= [621, 622, 623] site= 1624
+3623 1 n2-623.plc2.org sls= [622, 623, 624] site= 1625
+3624 1 n2-624.plc2.org sls= [623, 624, 625] site= 1626
+3625 1 n2-625.plc2.org sls= [624, 625, 626] site= 1627
+3626 1 n2-626.plc2.org sls= [625, 626, 627] site= 1628
+3627 1 n2-627.plc2.org sls= [626, 627, 628] site= 1629
+3628 1 n2-628.plc2.org sls= [629, 627, 628] site= 1630
+3629 1 n2-629.plc2.org sls= [629, 630, 628] site= 1631
+3630 1 n2-630.plc2.org sls= [629, 630, 631] site= 1632
+3631 1 n2-631.plc2.org sls= [630, 631, 632] site= 1633
+3632 1 n2-632.plc2.org sls= [631, 632, 633] site= 1634
+3633 1 n2-633.plc2.org sls= [632, 633, 634] site= 1635
+3634 1 n2-634.plc2.org sls= [633, 634, 635] site= 1636
+3635 1 n2-635.plc2.org sls= [634, 635, 636] site= 1637
+3636 1 n2-636.plc2.org sls= [637, 635, 636] site= 1638
+3637 1 n2-637.plc2.org sls= [637, 638, 636] site= 1639
+3638 1 n2-638.plc2.org sls= [637, 638, 639] site= 1640
+3639 1 n2-639.plc2.org sls= [638, 639, 640] site= 1641
+3640 1 n2-640.plc2.org sls= [639, 640, 641] site= 1642
+3641 1 n2-641.plc2.org sls= [640, 641, 642] site= 1643
+3642 1 n2-642.plc2.org sls= [641, 642, 643] site= 1644
+3643 1 n2-643.plc2.org sls= [642, 643, 644] site= 1645
+3644 1 n2-644.plc2.org sls= [645, 643, 644] site= 1646
+3645 1 n2-645.plc2.org sls= [645, 646, 644] site= 1647
+3646 1 n2-646.plc2.org sls= [645, 646, 647] site= 1648
+3647 1 n2-647.plc2.org sls= [646, 647, 648] site= 1649
+3648 1 n2-648.plc2.org sls= [647, 648, 649] site= 1650
+3649 1 n2-649.plc2.org sls= [648, 649, 650] site= 1651
+3650 1 n2-650.plc2.org sls= [649, 650, 651] site= 1652
+3651 1 n2-651.plc2.org sls= [650, 651, 652] site= 1653
+3652 1 n2-652.plc2.org sls= [653, 651, 652] site= 1654
+3653 1 n2-653.plc2.org sls= [653, 654, 652] site= 1655
+3654 1 n2-654.plc2.org sls= [653, 654, 655] site= 1656
+3655 1 n2-655.plc2.org sls= [654, 655, 656] site= 1657
+3656 1 n2-656.plc2.org sls= [655, 656, 657] site= 1658
+3657 1 n2-657.plc2.org sls= [656, 657, 658] site= 1659
+3658 1 n2-658.plc2.org sls= [657, 658, 659] site= 1660
+3659 1 n2-659.plc2.org sls= [658, 659, 660] site= 1661
+3660 1 n2-660.plc2.org sls= [661, 659, 660] site= 1662
+3661 1 n2-661.plc2.org sls= [661, 662, 660] site= 1663
+3662 1 n2-662.plc2.org sls= [661, 662, 663] site= 1664
+3663 1 n2-663.plc2.org sls= [662, 663, 664] site= 1665
+3664 1 n2-664.plc2.org sls= [663, 664, 665] site= 1666
+3665 1 n2-665.plc2.org sls= [664, 665, 666] site= 1667
+3666 1 n2-666.plc2.org sls= [665, 666, 667] site= 1668
+3667 1 n2-667.plc2.org sls= [666, 667, 668] site= 1669
+3668 1 n2-668.plc2.org sls= [669, 667, 668] site= 1670
+3669 1 n2-669.plc2.org sls= [669, 670, 668] site= 1671
+3670 1 n2-670.plc2.org sls= [669, 670, 671] site= 1672
+3671 1 n2-671.plc2.org sls= [670, 671, 672] site= 1673
+3672 1 n2-672.plc2.org sls= [671, 672, 673] site= 1674
+3673 1 n2-673.plc2.org sls= [672, 673, 674] site= 1675
+3674 1 n2-674.plc2.org sls= [673, 674, 675] site= 1676
+3675 1 n2-675.plc2.org sls= [674, 675, 676] site= 1677
+3676 1 n2-676.plc2.org sls= [677, 675, 676] site= 1678
+3677 1 n2-677.plc2.org sls= [677, 678, 676] site= 1679
+3678 1 n2-678.plc2.org sls= [677, 678, 679] site= 1680
+3679 1 n2-679.plc2.org sls= [678, 679, 680] site= 1681
+3680 1 n2-680.plc2.org sls= [679, 680, 681] site= 1682
+3681 1 n2-681.plc2.org sls= [680, 681, 682] site= 1683
+3682 1 n2-682.plc2.org sls= [681, 682, 683] site= 1684
+3683 1 n2-683.plc2.org sls= [682, 683, 684] site= 1685
+3684 1 n2-684.plc2.org sls= [685, 683, 684] site= 1686
+3685 1 n2-685.plc2.org sls= [685, 686, 684] site= 1687
+3686 1 n2-686.plc2.org sls= [685, 686, 687] site= 1688
+3687 1 n2-687.plc2.org sls= [686, 687, 688] site= 1689
+3688 1 n2-688.plc2.org sls= [687, 688, 689] site= 1690
+3689 1 n2-689.plc2.org sls= [688, 689, 690] site= 1691
+3690 1 n2-690.plc2.org sls= [689, 690, 691] site= 1692
+3691 1 n2-691.plc2.org sls= [690, 691, 692] site= 1693
+3692 1 n2-692.plc2.org sls= [693, 691, 692] site= 1694
+3693 1 n2-693.plc2.org sls= [693, 694, 692] site= 1695
+3694 1 n2-694.plc2.org sls= [693, 694, 695] site= 1696
+3695 1 n2-695.plc2.org sls= [694, 695, 696] site= 1697
+3696 1 n2-696.plc2.org sls= [695, 696, 697] site= 1698
+3697 1 n2-697.plc2.org sls= [696, 697, 698] site= 1699
+3698 1 n2-698.plc2.org sls= [697, 698, 699] site= 1700
+3699 1 n2-699.plc2.org sls= [698, 699, 700] site= 1701
+3700 1 n2-700.plc2.org sls= [701, 699, 700] site= 1702
+3701 1 n2-701.plc2.org sls= [701, 702, 700] site= 1703
+3702 1 n2-702.plc2.org sls= [701, 702, 703] site= 1704
+3703 1 n2-703.plc2.org sls= [702, 703, 704] site= 1705
+3704 1 n2-704.plc2.org sls= [703, 704, 705] site= 1706
+3705 1 n2-705.plc2.org sls= [704, 705, 706] site= 1707
+3706 1 n2-706.plc2.org sls= [705, 706, 707] site= 1708
+3707 1 n2-707.plc2.org sls= [706, 707, 708] site= 1709
+3708 1 n2-708.plc2.org sls= [709, 707, 708] site= 1710
+3709 1 n2-709.plc2.org sls= [709, 710, 708] site= 1711
+3710 1 n2-710.plc2.org sls= [709, 710, 711] site= 1712
+3711 1 n2-711.plc2.org sls= [710, 711, 712] site= 1713
+3712 1 n2-712.plc2.org sls= [711, 712, 713] site= 1714
+3713 1 n2-713.plc2.org sls= [712, 713, 714] site= 1715
+3714 1 n2-714.plc2.org sls= [713, 714, 715] site= 1716
+3715 1 n2-715.plc2.org sls= [714, 715, 716] site= 1717
+3716 1 n2-716.plc2.org sls= [717, 715, 716] site= 1718
+3717 1 n2-717.plc2.org sls= [717, 718, 716] site= 1719
+3718 1 n2-718.plc2.org sls= [717, 718, 719] site= 1720
+3719 1 n2-719.plc2.org sls= [718, 719, 720] site= 1721
+3720 1 n2-720.plc2.org sls= [719, 720, 721] site= 1722
+3721 1 n2-721.plc2.org sls= [720, 721, 722] site= 1723
+3722 1 n2-722.plc2.org sls= [721, 722, 723] site= 1724
+3723 1 n2-723.plc2.org sls= [722, 723, 724] site= 1725
+3724 1 n2-724.plc2.org sls= [725, 723, 724] site= 1726
+3725 1 n2-725.plc2.org sls= [725, 726, 724] site= 1727
+3726 1 n2-726.plc2.org sls= [725, 726, 727] site= 1728
+3727 1 n2-727.plc2.org sls= [726, 727, 728] site= 1729
+3728 1 n2-728.plc2.org sls= [727, 728, 729] site= 1730
+3729 1 n2-729.plc2.org sls= [728, 729, 730] site= 1731
+3730 1 n2-730.plc2.org sls= [729, 730, 731] site= 1732
+3731 1 n2-731.plc2.org sls= [730, 731, 732] site= 1733
+3732 1 n2-732.plc2.org sls= [733, 731, 732] site= 1734
+3733 1 n2-733.plc2.org sls= [733, 734, 732] site= 1735
+3734 1 n2-734.plc2.org sls= [733, 734, 735] site= 1736
+3735 1 n2-735.plc2.org sls= [734, 735, 736] site= 1737
+3736 1 n2-736.plc2.org sls= [735, 736, 737] site= 1738
+3737 1 n2-737.plc2.org sls= [736, 737, 738] site= 1739
+3738 1 n2-738.plc2.org sls= [737, 738, 739] site= 1740
+3739 1 n2-739.plc2.org sls= [738, 739, 740] site= 1741
+3740 1 n2-740.plc2.org sls= [741, 739, 740] site= 1742
+3741 1 n2-741.plc2.org sls= [741, 742, 740] site= 1743
+3742 1 n2-742.plc2.org sls= [741, 742, 743] site= 1744
+3743 1 n2-743.plc2.org sls= [742, 743, 744] site= 1745
+3744 1 n2-744.plc2.org sls= [743, 744, 745] site= 1746
+3745 1 n2-745.plc2.org sls= [744, 745, 746] site= 1747
+3746 1 n2-746.plc2.org sls= [745, 746, 747] site= 1748
+3747 1 n2-747.plc2.org sls= [746, 747, 748] site= 1749
+3748 1 n2-748.plc2.org sls= [749, 747, 748] site= 1750
+3749 1 n2-749.plc2.org sls= [749, 750, 748] site= 1751
+3750 1 n2-750.plc2.org sls= [749, 750, 751] site= 1752
+3751 1 n2-751.plc2.org sls= [750, 751, 752] site= 1753
+3752 1 n2-752.plc2.org sls= [751, 752, 753] site= 1754
+3753 1 n2-753.plc2.org sls= [752, 753, 754] site= 1755
+3754 1 n2-754.plc2.org sls= [753, 754, 755] site= 1756
+3755 1 n2-755.plc2.org sls= [754, 755, 756] site= 1757
+3756 1 n2-756.plc2.org sls= [757, 755, 756] site= 1758
+3757 1 n2-757.plc2.org sls= [757, 758, 756] site= 1759
+3758 1 n2-758.plc2.org sls= [757, 758, 759] site= 1760
+3759 1 n2-759.plc2.org sls= [758, 759, 760] site= 1761
+3760 1 n2-760.plc2.org sls= [759, 760, 761] site= 1762
+3761 1 n2-761.plc2.org sls= [760, 761, 762] site= 1763
+3762 1 n2-762.plc2.org sls= [761, 762, 763] site= 1764
+3763 1 n2-763.plc2.org sls= [762, 763, 764] site= 1765
+3764 1 n2-764.plc2.org sls= [765, 763, 764] site= 1766
+3765 1 n2-765.plc2.org sls= [765, 766, 764] site= 1767
+3766 1 n2-766.plc2.org sls= [765, 766, 767] site= 1768
+3767 1 n2-767.plc2.org sls= [766, 767, 768] site= 1769
+3768 1 n2-768.plc2.org sls= [767, 768, 769] site= 1770
+3769 1 n2-769.plc2.org sls= [768, 769, 770] site= 1771
+3770 1 n2-770.plc2.org sls= [769, 770, 771] site= 1772
+3771 1 n2-771.plc2.org sls= [770, 771, 772] site= 1773
+3772 1 n2-772.plc2.org sls= [773, 771, 772] site= 1774
+3773 1 n2-773.plc2.org sls= [773, 774, 772] site= 1775
+3774 1 n2-774.plc2.org sls= [773, 774, 775] site= 1776
+3775 1 n2-775.plc2.org sls= [774, 775, 776] site= 1777
+3776 1 n2-776.plc2.org sls= [775, 776, 777] site= 1778
+3777 1 n2-777.plc2.org sls= [776, 777, 778] site= 1779
+3778 1 n2-778.plc2.org sls= [777, 778, 779] site= 1780
+3779 1 n2-779.plc2.org sls= [778, 779, 780] site= 1781
+3780 1 n2-780.plc2.org sls= [781, 779, 780] site= 1782
+3781 1 n2-781.plc2.org sls= [781, 782, 780] site= 1783
+3782 1 n2-782.plc2.org sls= [781, 782, 783] site= 1784
+3783 1 n2-783.plc2.org sls= [782, 783, 784] site= 1785
+3784 1 n2-784.plc2.org sls= [783, 784, 785] site= 1786
+3785 1 n2-785.plc2.org sls= [784, 785, 786] site= 1787
+3786 1 n2-786.plc2.org sls= [785, 786, 787] site= 1788
+3787 1 n2-787.plc2.org sls= [786, 787, 788] site= 1789
+3788 1 n2-788.plc2.org sls= [789, 787, 788] site= 1790
+3789 1 n2-789.plc2.org sls= [789, 790, 788] site= 1791
+3790 1 n2-790.plc2.org sls= [789, 790, 791] site= 1792
+3791 1 n2-791.plc2.org sls= [790, 791, 792] site= 1793
+3792 1 n2-792.plc2.org sls= [791, 792, 793] site= 1794
+3793 1 n2-793.plc2.org sls= [792, 793, 794] site= 1795
+3794 1 n2-794.plc2.org sls= [793, 794, 795] site= 1796
+3795 1 n2-795.plc2.org sls= [794, 795, 796] site= 1797
+3796 1 n2-796.plc2.org sls= [797, 795, 796] site= 1798
+3797 1 n2-797.plc2.org sls= [797, 798, 796] site= 1799
+3798 1 n2-798.plc2.org sls= [797, 798, 799] site= 1800
+3799 1 n2-799.plc2.org sls= [798, 799, 800] site= 1801
+3800 1 n2-800.plc2.org sls= [799, 800, 801] site= 1802
+3801 1 n2-801.plc2.org sls= [800, 801, 802] site= 1803
+3802 1 n2-802.plc2.org sls= [801, 802, 803] site= 1804
+3803 1 n2-803.plc2.org sls= [802, 803, 804] site= 1805
+3804 1 n2-804.plc2.org sls= [805, 803, 804] site= 1806
+3805 1 n2-805.plc2.org sls= [805, 806, 804] site= 1807
+3806 1 n2-806.plc2.org sls= [805, 806, 807] site= 1808
+3807 1 n2-807.plc2.org sls= [806, 807, 808] site= 1809
+3808 1 n2-808.plc2.org sls= [807, 808, 809] site= 1810
+3809 1 n2-809.plc2.org sls= [808, 809, 810] site= 1811
+3810 1 n2-810.plc2.org sls= [809, 810, 811] site= 1812
+3811 1 n2-811.plc2.org sls= [810, 811, 812] site= 1813
+3812 1 n2-812.plc2.org sls= [813, 811, 812] site= 1814
+3813 1 n2-813.plc2.org sls= [813, 814, 812] site= 1815
+3814 1 n2-814.plc2.org sls= [813, 814, 815] site= 1816
+3815 1 n2-815.plc2.org sls= [814, 815, 816] site= 1817
+3816 1 n2-816.plc2.org sls= [815, 816, 817] site= 1818
+3817 1 n2-817.plc2.org sls= [816, 817, 818] site= 1819
+3818 1 n2-818.plc2.org sls= [817, 818, 819] site= 1820
+3819 1 n2-819.plc2.org sls= [818, 819, 820] site= 1821
+3820 1 n2-820.plc2.org sls= [821, 819, 820] site= 1822
+3821 1 n2-821.plc2.org sls= [821, 822, 820] site= 1823
+3822 1 n2-822.plc2.org sls= [821, 822, 823] site= 1824
+3823 1 n2-823.plc2.org sls= [822, 823, 824] site= 1825
+3824 1 n2-824.plc2.org sls= [823, 824, 825] site= 1826
+3825 1 n2-825.plc2.org sls= [824, 825, 826] site= 1827
+3826 1 n2-826.plc2.org sls= [825, 826, 827] site= 1828
+3827 1 n2-827.plc2.org sls= [826, 827, 828] site= 1829
+3828 1 n2-828.plc2.org sls= [829, 827, 828] site= 1830
+3829 1 n2-829.plc2.org sls= [829, 830, 828] site= 1831
+3830 1 n2-830.plc2.org sls= [829, 830, 831] site= 1832
+3831 1 n2-831.plc2.org sls= [830, 831, 832] site= 1833
+3832 1 n2-832.plc2.org sls= [831, 832, 833] site= 1834
+3833 1 n2-833.plc2.org sls= [832, 833, 834] site= 1835
+3834 1 n2-834.plc2.org sls= [833, 834, 835] site= 1836
+3835 1 n2-835.plc2.org sls= [834, 835, 836] site= 1837
+3836 1 n2-836.plc2.org sls= [837, 835, 836] site= 1838
+3837 1 n2-837.plc2.org sls= [837, 838, 836] site= 1839
+3838 1 n2-838.plc2.org sls= [837, 838, 839] site= 1840
+3839 1 n2-839.plc2.org sls= [838, 839, 840] site= 1841
+3840 1 n2-840.plc2.org sls= [839, 840, 841] site= 1842
+3841 1 n2-841.plc2.org sls= [840, 841, 842] site= 1843
+3842 1 n2-842.plc2.org sls= [841, 842, 843] site= 1844
+3843 1 n2-843.plc2.org sls= [842, 843, 844] site= 1845
+3844 1 n2-844.plc2.org sls= [845, 843, 844] site= 1846
+3845 1 n2-845.plc2.org sls= [845, 846, 844] site= 1847
+3846 1 n2-846.plc2.org sls= [845, 846, 847] site= 1848
+3847 1 n2-847.plc2.org sls= [846, 847, 848] site= 1849
+3848 1 n2-848.plc2.org sls= [847, 848, 849] site= 1850
+3849 1 n2-849.plc2.org sls= [848, 849, 850] site= 1851
+3850 1 n2-850.plc2.org sls= [849, 850, 851] site= 1852
+3851 1 n2-851.plc2.org sls= [850, 851, 852] site= 1853
+3852 1 n2-852.plc2.org sls= [853, 851, 852] site= 1854
+3853 1 n2-853.plc2.org sls= [853, 854, 852] site= 1855
+3854 1 n2-854.plc2.org sls= [853, 854, 855] site= 1856
+3855 1 n2-855.plc2.org sls= [854, 855, 856] site= 1857
+3856 1 n2-856.plc2.org sls= [855, 856, 857] site= 1858
+3857 1 n2-857.plc2.org sls= [856, 857, 858] site= 1859
+3858 1 n2-858.plc2.org sls= [857, 858, 859] site= 1860
+3859 1 n2-859.plc2.org sls= [858, 859, 860] site= 1861
+3860 1 n2-860.plc2.org sls= [861, 859, 860] site= 1862
+3861 1 n2-861.plc2.org sls= [861, 862, 860] site= 1863
+3862 1 n2-862.plc2.org sls= [861, 862, 863] site= 1864
+3863 1 n2-863.plc2.org sls= [862, 863, 864] site= 1865
+3864 1 n2-864.plc2.org sls= [863, 864, 865] site= 1866
+3865 1 n2-865.plc2.org sls= [864, 865, 866] site= 1867
+3866 1 n2-866.plc2.org sls= [865, 866, 867] site= 1868
+3867 1 n2-867.plc2.org sls= [866, 867, 868] site= 1869
+3868 1 n2-868.plc2.org sls= [869, 867, 868] site= 1870
+3869 1 n2-869.plc2.org sls= [869, 870, 868] site= 1871
+3870 1 n2-870.plc2.org sls= [869, 870, 871] site= 1872
+3871 1 n2-871.plc2.org sls= [870, 871, 872] site= 1873
+3872 1 n2-872.plc2.org sls= [871, 872, 873] site= 1874
+3873 1 n2-873.plc2.org sls= [872, 873, 874] site= 1875
+3874 1 n2-874.plc2.org sls= [873, 874, 875] site= 1876
+3875 1 n2-875.plc2.org sls= [874, 875, 876] site= 1877
+3876 1 n2-876.plc2.org sls= [877, 875, 876] site= 1878
+3877 1 n2-877.plc2.org sls= [877, 878, 876] site= 1879
+3878 1 n2-878.plc2.org sls= [877, 878, 879] site= 1880
+3879 1 n2-879.plc2.org sls= [878, 879, 880] site= 1881
+3880 1 n2-880.plc2.org sls= [879, 880, 881] site= 1882
+3881 1 n2-881.plc2.org sls= [880, 881, 882] site= 1883
+3882 1 n2-882.plc2.org sls= [881, 882, 883] site= 1884
+3883 1 n2-883.plc2.org sls= [882, 883, 884] site= 1885
+3884 1 n2-884.plc2.org sls= [885, 883, 884] site= 1886
+3885 1 n2-885.plc2.org sls= [885, 886, 884] site= 1887
+3886 1 n2-886.plc2.org sls= [885, 886, 887] site= 1888
+3887 1 n2-887.plc2.org sls= [886, 887, 888] site= 1889
+3888 1 n2-888.plc2.org sls= [887, 888, 889] site= 1890
+3889 1 n2-889.plc2.org sls= [888, 889, 890] site= 1891
+3890 1 n2-890.plc2.org sls= [889, 890, 891] site= 1892
+3891 1 n2-891.plc2.org sls= [890, 891, 892] site= 1893
+3892 1 n2-892.plc2.org sls= [893, 891, 892] site= 1894
+3893 1 n2-893.plc2.org sls= [893, 894, 892] site= 1895
+3894 1 n2-894.plc2.org sls= [893, 894, 895] site= 1896
+3895 1 n2-895.plc2.org sls= [894, 895, 896] site= 1897
+3896 1 n2-896.plc2.org sls= [895, 896, 897] site= 1898
+3897 1 n2-897.plc2.org sls= [896, 897, 898] site= 1899
+3898 1 n2-898.plc2.org sls= [897, 898, 899] site= 1900
+3899 1 n2-899.plc2.org sls= [898, 899, 900] site= 1901
+3900 1 n2-900.plc2.org sls= [901, 899, 900] site= 1902
+3901 1 n2-901.plc2.org sls= [901, 902, 900] site= 1903
+3902 1 n2-902.plc2.org sls= [901, 902, 903] site= 1904
+3903 1 n2-903.plc2.org sls= [902, 903, 904] site= 1905
+3904 1 n2-904.plc2.org sls= [903, 904, 905] site= 1906
+3905 1 n2-905.plc2.org sls= [904, 905, 906] site= 1907
+3906 1 n2-906.plc2.org sls= [905, 906, 907] site= 1908
+3907 1 n2-907.plc2.org sls= [906, 907, 908] site= 1909
+3908 1 n2-908.plc2.org sls= [909, 907, 908] site= 1910
+3909 1 n2-909.plc2.org sls= [909, 910, 908] site= 1911
+3910 1 n2-910.plc2.org sls= [909, 910, 911] site= 1912
+3911 1 n2-911.plc2.org sls= [910, 911, 912] site= 1913
+3912 1 n2-912.plc2.org sls= [911, 912, 913] site= 1914
+3913 1 n2-913.plc2.org sls= [912, 913, 914] site= 1915
+3914 1 n2-914.plc2.org sls= [913, 914, 915] site= 1916
+3915 1 n2-915.plc2.org sls= [914, 915, 916] site= 1917
+3916 1 n2-916.plc2.org sls= [917, 915, 916] site= 1918
+3917 1 n2-917.plc2.org sls= [917, 918, 916] site= 1919
+3918 1 n2-918.plc2.org sls= [917, 918, 919] site= 1920
+3919 1 n2-919.plc2.org sls= [918, 919, 920] site= 1921
+3920 1 n2-920.plc2.org sls= [919, 920, 921] site= 1922
+3921 1 n2-921.plc2.org sls= [920, 921, 922] site= 1923
+3922 1 n2-922.plc2.org sls= [921, 922, 923] site= 1924
+3923 1 n2-923.plc2.org sls= [922, 923, 924] site= 1925
+3924 1 n2-924.plc2.org sls= [925, 923, 924] site= 1926
+3925 1 n2-925.plc2.org sls= [925, 926, 924] site= 1927
+3926 1 n2-926.plc2.org sls= [925, 926, 927] site= 1928
+3927 1 n2-927.plc2.org sls= [926, 927, 928] site= 1929
+3928 1 n2-928.plc2.org sls= [927, 928, 929] site= 1930
+3929 1 n2-929.plc2.org sls= [928, 929, 930] site= 1931
+3930 1 n2-930.plc2.org sls= [929, 930, 931] site= 1932
+3931 1 n2-931.plc2.org sls= [930, 931, 932] site= 1933
+3932 1 n2-932.plc2.org sls= [933, 931, 932] site= 1934
+3933 1 n2-933.plc2.org sls= [933, 934, 932] site= 1935
+3934 1 n2-934.plc2.org sls= [933, 934, 935] site= 1936
+3935 1 n2-935.plc2.org sls= [934, 935, 936] site= 1937
+3936 1 n2-936.plc2.org sls= [935, 936, 937] site= 1938
+3937 1 n2-937.plc2.org sls= [936, 937, 938] site= 1939
+3938 1 n2-938.plc2.org sls= [937, 938, 939] site= 1940
+3939 1 n2-939.plc2.org sls= [938, 939, 940] site= 1941
+3940 1 n2-940.plc2.org sls= [941, 939, 940] site= 1942
+3941 1 n2-941.plc2.org sls= [941, 942, 940] site= 1943
+3942 1 n2-942.plc2.org sls= [941, 942, 943] site= 1944
+3943 1 n2-943.plc2.org sls= [942, 943, 944] site= 1945
+3944 1 n2-944.plc2.org sls= [943, 944, 945] site= 1946
+3945 1 n2-945.plc2.org sls= [944, 945, 946] site= 1947
+3946 1 n2-946.plc2.org sls= [945, 946, 947] site= 1948
+3947 1 n2-947.plc2.org sls= [946, 947, 948] site= 1949
+3948 1 n2-948.plc2.org sls= [949, 947, 948] site= 1950
+3949 1 n2-949.plc2.org sls= [949, 950, 948] site= 1951
+3950 1 n2-950.plc2.org sls= [949, 950, 951] site= 1952
+3951 1 n2-951.plc2.org sls= [950, 951, 952] site= 1953
+3952 1 n2-952.plc2.org sls= [951, 952, 953] site= 1954
+3953 1 n2-953.plc2.org sls= [952, 953, 954] site= 1955
+3954 1 n2-954.plc2.org sls= [953, 954, 955] site= 1956
+3955 1 n2-955.plc2.org sls= [954, 955, 956] site= 1957
+3956 1 n2-956.plc2.org sls= [957, 955, 956] site= 1958
+3957 1 n2-957.plc2.org sls= [957, 958, 956] site= 1959
+3958 1 n2-958.plc2.org sls= [957, 958, 959] site= 1960
+3959 1 n2-959.plc2.org sls= [958, 959, 960] site= 1961
+3960 1 n2-960.plc2.org sls= [959, 960, 961] site= 1962
+3961 1 n2-961.plc2.org sls= [960, 961, 962] site= 1963
+3962 1 n2-962.plc2.org sls= [961, 962, 963] site= 1964
+3963 1 n2-963.plc2.org sls= [962, 963, 964] site= 1965
+3964 1 n2-964.plc2.org sls= [965, 963, 964] site= 1966
+3965 1 n2-965.plc2.org sls= [965, 966, 964] site= 1967
+3966 1 n2-966.plc2.org sls= [965, 966, 967] site= 1968
+3967 1 n2-967.plc2.org sls= [966, 967, 968] site= 1969
+3968 1 n2-968.plc2.org sls= [967, 968, 969] site= 1970
+3969 1 n2-969.plc2.org sls= [968, 969, 970] site= 1971
+3970 1 n2-970.plc2.org sls= [969, 970, 971] site= 1972
+3971 1 n2-971.plc2.org sls= [970, 971, 972] site= 1973
+3972 1 n2-972.plc2.org sls= [973, 971, 972] site= 1974
+3973 1 n2-973.plc2.org sls= [973, 974, 972] site= 1975
+3974 1 n2-974.plc2.org sls= [973, 974, 975] site= 1976
+3975 1 n2-975.plc2.org sls= [974, 975, 976] site= 1977
+3976 1 n2-976.plc2.org sls= [975, 976, 977] site= 1978
+3977 1 n2-977.plc2.org sls= [976, 977, 978] site= 1979
+3978 1 n2-978.plc2.org sls= [977, 978, 979] site= 1980
+3979 1 n2-979.plc2.org sls= [978, 979, 980] site= 1981
+3980 1 n2-980.plc2.org sls= [981, 979, 980] site= 1982
+3981 1 n2-981.plc2.org sls= [981, 982, 980] site= 1983
+3982 1 n2-982.plc2.org sls= [981, 982, 983] site= 1984
+3983 1 n2-983.plc2.org sls= [982, 983, 984] site= 1985
+3984 1 n2-984.plc2.org sls= [983, 984, 985] site= 1986
+3985 1 n2-985.plc2.org sls= [984, 985, 986] site= 1987
+3986 1 n2-986.plc2.org sls= [985, 986, 987] site= 1988
+3987 1 n2-987.plc2.org sls= [986, 987, 988] site= 1989
+3988 1 n2-988.plc2.org sls= [989, 987, 988] site= 1990
+3989 1 n2-989.plc2.org sls= [989, 990, 988] site= 1991
+3990 1 n2-990.plc2.org sls= [989, 990, 991] site= 1992
+3991 1 n2-991.plc2.org sls= [990, 991, 992] site= 1993
+3992 1 n2-992.plc2.org sls= [991, 992, 993] site= 1994
+3993 1 n2-993.plc2.org sls= [992, 993, 994] site= 1995
+3994 1 n2-994.plc2.org sls= [993, 994, 995] site= 1996
+3995 1 n2-995.plc2.org sls= [994, 995, 996] site= 1997
+3996 1 n2-996.plc2.org sls= [997, 995, 996] site= 1998
+3997 1 n2-997.plc2.org sls= [997, 998, 996] site= 1999
+3998 1 n2-998.plc2.org sls= [997, 998, 999] site= 2000
+3999 1 n2-999.plc2.org sls= [998, 999, 1000] site= 2001
+4000 1 n2-1000.plc2.org sls= [999, 1000, 1001] site= 2002
+4001 1 n2-1001.plc2.org sls= [1000, 1001, 1002] site= 1003
+4002 1 n2-1002.plc2.org sls= [1001, 1002, 1003] site= 1004
+4003 1 n2-1003.plc2.org sls= [1002, 1003, 1004] site= 1005
+4004 1 n2-1004.plc2.org sls= [1005, 1003, 1004] site= 1006
+4005 1 n2-1005.plc2.org sls= [1005, 1006, 1004] site= 1007
+4006 1 n2-1006.plc2.org sls= [1005, 1006, 1007] site= 1008
+4007 1 n2-1007.plc2.org sls= [1006, 1007, 1008] site= 1009
+4008 1 n2-1008.plc2.org sls= [1007, 1008, 1009] site= 1010
+4009 1 n2-1009.plc2.org sls= [1008, 1009, 1010] site= 1011
+4010 1 n2-1010.plc2.org sls= [1009, 1010, 1011] site= 1012
+4011 1 n2-1011.plc2.org sls= [1010, 1011, 1012] site= 1013
+4012 1 n2-1012.plc2.org sls= [1013, 1011, 1012] site= 1014
+4013 1 n2-1013.plc2.org sls= [1013, 1014, 1012] site= 1015
+4014 1 n2-1014.plc2.org sls= [1013, 1014, 1015] site= 1016
+4015 1 n2-1015.plc2.org sls= [1014, 1015, 1016] site= 1017
+4016 1 n2-1016.plc2.org sls= [1015, 1016, 1017] site= 1018
+4017 1 n2-1017.plc2.org sls= [1016, 1017, 1018] site= 1019
+4018 1 n2-1018.plc2.org sls= [1017, 1018, 1019] site= 1020
+4019 1 n2-1019.plc2.org sls= [1018, 1019, 1020] site= 1021
+4020 1 n2-1020.plc2.org sls= [1021, 1019, 1020] site= 1022
+4021 1 n2-1021.plc2.org sls= [1022, 1020, 1021] site= 1023
+4022 1 n2-1022.plc2.org sls= [1023, 1021, 1022] site= 1024
+4023 1 n2-1023.plc2.org sls= [1024, 1022, 1023] site= 1025
+4024 1 n2-1024.plc2.org sls= [1025, 1023, 1024] site= 1026
+4025 1 n2-1025.plc2.org sls= [1026, 1024, 1025] site= 1027
+4026 1 n2-1026.plc2.org sls= [1027, 1025, 1026] site= 1028
+4027 1 n2-1027.plc2.org sls= [1028, 1026, 1027] site= 1029
+4028 1 n2-1028.plc2.org sls= [1029, 1027, 1028] site= 1030
+4029 1 n2-1029.plc2.org sls= [1029, 1030, 1028] site= 1031
+4030 1 n2-1030.plc2.org sls= [1029, 1030, 1031] site= 1032
+4031 1 n2-1031.plc2.org sls= [1030, 1031, 1032] site= 1033
+4032 1 n2-1032.plc2.org sls= [1031, 1032, 1033] site= 1034
+4033 1 n2-1033.plc2.org sls= [1032, 1033, 1034] site= 1035
+4034 1 n2-1034.plc2.org sls= [1033, 1034, 1035] site= 1036
+4035 1 n2-1035.plc2.org sls= [1034, 1035, 1036] site= 1037
+4036 1 n2-1036.plc2.org sls= [1037, 1035, 1036] site= 1038
+4037 1 n2-1037.plc2.org sls= [1037, 1038, 1036] site= 1039
+4038 1 n2-1038.plc2.org sls= [1037, 1038, 1039] site= 1040
+4039 1 n2-1039.plc2.org sls= [1038, 1039, 1040] site= 1041
+4040 1 n2-1040.plc2.org sls= [1039, 1040, 1041] site= 1042
+4041 1 n2-1041.plc2.org sls= [1040, 1041, 1042] site= 1043
+4042 1 n2-1042.plc2.org sls= [1041, 1042, 1043] site= 1044
+4043 1 n2-1043.plc2.org sls= [1042, 1043, 1044] site= 1045
+4044 1 n2-1044.plc2.org sls= [1045, 1043, 1044] site= 1046
+4045 1 n2-1045.plc2.org sls= [1045, 1046, 1044] site= 1047
+4046 1 n2-1046.plc2.org sls= [1045, 1046, 1047] site= 1048
+4047 1 n2-1047.plc2.org sls= [1046, 1047, 1048] site= 1049
+4048 1 n2-1048.plc2.org sls= [1047, 1048, 1049] site= 1050
+4049 1 n2-1049.plc2.org sls= [1048, 1049, 1050] site= 1051
+4050 1 n2-1050.plc2.org sls= [1049, 1050, 1051] site= 1052
+4051 1 n2-1051.plc2.org sls= [1050, 1051, 1052] site= 1053
+4052 1 n2-1052.plc2.org sls= [1053, 1051, 1052] site= 1054
+4053 1 n2-1053.plc2.org sls= [1053, 1054, 1052] site= 1055
+4054 1 n2-1054.plc2.org sls= [1053, 1054, 1055] site= 1056
+4055 1 n2-1055.plc2.org sls= [1054, 1055, 1056] site= 1057
+4056 1 n2-1056.plc2.org sls= [1055, 1056, 1057] site= 1058
+4057 1 n2-1057.plc2.org sls= [1056, 1057, 1058] site= 1059
+4058 1 n2-1058.plc2.org sls= [1057, 1058, 1059] site= 1060
+4059 1 n2-1059.plc2.org sls= [1058, 1059, 1060] site= 1061
+4060 1 n2-1060.plc2.org sls= [1061, 1059, 1060] site= 1062
+4061 1 n2-1061.plc2.org sls= [1061, 1062, 1060] site= 1063
+4062 1 n2-1062.plc2.org sls= [1061, 1062, 1063] site= 1064
+4063 1 n2-1063.plc2.org sls= [1062, 1063, 1064] site= 1065
+4064 1 n2-1064.plc2.org sls= [1063, 1064, 1065] site= 1066
+4065 1 n2-1065.plc2.org sls= [1064, 1065, 1066] site= 1067
+4066 1 n2-1066.plc2.org sls= [1065, 1066, 1067] site= 1068
+4067 1 n2-1067.plc2.org sls= [1066, 1067, 1068] site= 1069
+4068 1 n2-1068.plc2.org sls= [1069, 1067, 1068] site= 1070
+4069 1 n2-1069.plc2.org sls= [1069, 1070, 1068] site= 1071
+4070 1 n2-1070.plc2.org sls= [1069, 1070, 1071] site= 1072
+4071 1 n2-1071.plc2.org sls= [1070, 1071, 1072] site= 1073
+4072 1 n2-1072.plc2.org sls= [1071, 1072, 1073] site= 1074
+4073 1 n2-1073.plc2.org sls= [1072, 1073, 1074] site= 1075
+4074 1 n2-1074.plc2.org sls= [1073, 1074, 1075] site= 1076
+4075 1 n2-1075.plc2.org sls= [1074, 1075, 1076] site= 1077
+4076 1 n2-1076.plc2.org sls= [1077, 1075, 1076] site= 1078
+4077 1 n2-1077.plc2.org sls= [1077, 1078, 1076] site= 1079
+4078 1 n2-1078.plc2.org sls= [1077, 1078, 1079] site= 1080
+4079 1 n2-1079.plc2.org sls= [1078, 1079, 1080] site= 1081
+4080 1 n2-1080.plc2.org sls= [1079, 1080, 1081] site= 1082
+4081 1 n2-1081.plc2.org sls= [1080, 1081, 1082] site= 1083
+4082 1 n2-1082.plc2.org sls= [1081, 1082, 1083] site= 1084
+4083 1 n2-1083.plc2.org sls= [1082, 1083, 1084] site= 1085
+4084 1 n2-1084.plc2.org sls= [1085, 1083, 1084] site= 1086
+4085 1 n2-1085.plc2.org sls= [1085, 1086, 1084] site= 1087
+4086 1 n2-1086.plc2.org sls= [1085, 1086, 1087] site= 1088
+4087 1 n2-1087.plc2.org sls= [1086, 1087, 1088] site= 1089
+4088 1 n2-1088.plc2.org sls= [1087, 1088, 1089] site= 1090
+4089 1 n2-1089.plc2.org sls= [1088, 1089, 1090] site= 1091
+4090 1 n2-1090.plc2.org sls= [1089, 1090, 1091] site= 1092
+4091 1 n2-1091.plc2.org sls= [1090, 1091, 1092] site= 1093
+4092 1 n2-1092.plc2.org sls= [1093, 1091, 1092] site= 1094
+4093 1 n2-1093.plc2.org sls= [1093, 1094, 1092] site= 1095
+4094 1 n2-1094.plc2.org sls= [1093, 1094, 1095] site= 1096
+4095 1 n2-1095.plc2.org sls= [1094, 1095, 1096] site= 1097
+4096 1 n2-1096.plc2.org sls= [1095, 1096, 1097] site= 1098
+4097 1 n2-1097.plc2.org sls= [1096, 1097, 1098] site= 1099
+4098 1 n2-1098.plc2.org sls= [1097, 1098, 1099] site= 1100
+4099 1 n2-1099.plc2.org sls= [1098, 1099, 1100] site= 1101
+4100 1 n2-1100.plc2.org sls= [1101, 1099, 1100] site= 1102
+4101 1 n2-1101.plc2.org sls= [1101, 1102, 1100] site= 1103
+4102 1 n2-1102.plc2.org sls= [1101, 1102, 1103] site= 1104
+4103 1 n2-1103.plc2.org sls= [1102, 1103, 1104] site= 1105
+4104 1 n2-1104.plc2.org sls= [1103, 1104, 1105] site= 1106
+4105 1 n2-1105.plc2.org sls= [1104, 1105, 1106] site= 1107
+4106 1 n2-1106.plc2.org sls= [1105, 1106, 1107] site= 1108
+4107 1 n2-1107.plc2.org sls= [1106, 1107, 1108] site= 1109
+4108 1 n2-1108.plc2.org sls= [1109, 1107, 1108] site= 1110
+4109 1 n2-1109.plc2.org sls= [1109, 1110, 1108] site= 1111
+4110 1 n2-1110.plc2.org sls= [1109, 1110, 1111] site= 1112
+4111 1 n2-1111.plc2.org sls= [1110, 1111, 1112] site= 1113
+4112 1 n2-1112.plc2.org sls= [1111, 1112, 1113] site= 1114
+4113 1 n2-1113.plc2.org sls= [1112, 1113, 1114] site= 1115
+4114 1 n2-1114.plc2.org sls= [1113, 1114, 1115] site= 1116
+4115 1 n2-1115.plc2.org sls= [1114, 1115, 1116] site= 1117
+4116 1 n2-1116.plc2.org sls= [1117, 1115, 1116] site= 1118
+4117 1 n2-1117.plc2.org sls= [1117, 1118, 1116] site= 1119
+4118 1 n2-1118.plc2.org sls= [1117, 1118, 1119] site= 1120
+4119 1 n2-1119.plc2.org sls= [1118, 1119, 1120] site= 1121
+4120 1 n2-1120.plc2.org sls= [1119, 1120, 1121] site= 1122
+4121 1 n2-1121.plc2.org sls= [1120, 1121, 1122] site= 1123
+4122 1 n2-1122.plc2.org sls= [1121, 1122, 1123] site= 1124
+4123 1 n2-1123.plc2.org sls= [1122, 1123, 1124] site= 1125
+4124 1 n2-1124.plc2.org sls= [1125, 1123, 1124] site= 1126
+4125 1 n2-1125.plc2.org sls= [1125, 1126, 1124] site= 1127
+4126 1 n2-1126.plc2.org sls= [1125, 1126, 1127] site= 1128
+4127 1 n2-1127.plc2.org sls= [1126, 1127, 1128] site= 1129
+4128 1 n2-1128.plc2.org sls= [1127, 1128, 1129] site= 1130
+4129 1 n2-1129.plc2.org sls= [1128, 1129, 1130] site= 1131
+4130 1 n2-1130.plc2.org sls= [1129, 1130, 1131] site= 1132
+4131 1 n2-1131.plc2.org sls= [1130, 1131, 1132] site= 1133
+4132 1 n2-1132.plc2.org sls= [1133, 1131, 1132] site= 1134
+4133 1 n2-1133.plc2.org sls= [1133, 1134, 1132] site= 1135
+4134 1 n2-1134.plc2.org sls= [1133, 1134, 1135] site= 1136
+4135 1 n2-1135.plc2.org sls= [1134, 1135, 1136] site= 1137
+4136 1 n2-1136.plc2.org sls= [1135, 1136, 1137] site= 1138
+4137 1 n2-1137.plc2.org sls= [1136, 1137, 1138] site= 1139
+4138 1 n2-1138.plc2.org sls= [1137, 1138, 1139] site= 1140
+4139 1 n2-1139.plc2.org sls= [1138, 1139, 1140] site= 1141
+4140 1 n2-1140.plc2.org sls= [1141, 1139, 1140] site= 1142
+4141 1 n2-1141.plc2.org sls= [1141, 1142, 1140] site= 1143
+4142 1 n2-1142.plc2.org sls= [1141, 1142, 1143] site= 1144
+4143 1 n2-1143.plc2.org sls= [1142, 1143, 1144] site= 1145
+4144 1 n2-1144.plc2.org sls= [1143, 1144, 1145] site= 1146
+4145 1 n2-1145.plc2.org sls= [1144, 1145, 1146] site= 1147
+4146 1 n2-1146.plc2.org sls= [1145, 1146, 1147] site= 1148
+4147 1 n2-1147.plc2.org sls= [1146, 1147, 1148] site= 1149
+4148 1 n2-1148.plc2.org sls= [1149, 1147, 1148] site= 1150
+4149 1 n2-1149.plc2.org sls= [1149, 1150, 1148] site= 1151
+4150 1 n2-1150.plc2.org sls= [1149, 1150, 1151] site= 1152
+4151 1 n2-1151.plc2.org sls= [1150, 1151, 1152] site= 1153
+4152 1 n2-1152.plc2.org sls= [1151, 1152, 1153] site= 1154
+4153 1 n2-1153.plc2.org sls= [1152, 1153, 1154] site= 1155
+4154 1 n2-1154.plc2.org sls= [1153, 1154, 1155] site= 1156
+4155 1 n2-1155.plc2.org sls= [1154, 1155, 1156] site= 1157
+4156 1 n2-1156.plc2.org sls= [1157, 1155, 1156] site= 1158
+4157 1 n2-1157.plc2.org sls= [1157, 1158, 1156] site= 1159
+4158 1 n2-1158.plc2.org sls= [1157, 1158, 1159] site= 1160
+4159 1 n2-1159.plc2.org sls= [1158, 1159, 1160] site= 1161
+4160 1 n2-1160.plc2.org sls= [1159, 1160, 1161] site= 1162
+4161 1 n2-1161.plc2.org sls= [1160, 1161, 1162] site= 1163
+4162 1 n2-1162.plc2.org sls= [1161, 1162, 1163] site= 1164
+4163 1 n2-1163.plc2.org sls= [1162, 1163, 1164] site= 1165
+4164 1 n2-1164.plc2.org sls= [1165, 1163, 1164] site= 1166
+4165 1 n2-1165.plc2.org sls= [1165, 1166, 1164] site= 1167
+4166 1 n2-1166.plc2.org sls= [1165, 1166, 1167] site= 1168
+4167 1 n2-1167.plc2.org sls= [1166, 1167, 1168] site= 1169
+4168 1 n2-1168.plc2.org sls= [1167, 1168, 1169] site= 1170
+4169 1 n2-1169.plc2.org sls= [1168, 1169, 1170] site= 1171
+4170 1 n2-1170.plc2.org sls= [1169, 1170, 1171] site= 1172
+4171 1 n2-1171.plc2.org sls= [1170, 1171, 1172] site= 1173
+4172 1 n2-1172.plc2.org sls= [1173, 1171, 1172] site= 1174
+4173 1 n2-1173.plc2.org sls= [1173, 1174, 1172] site= 1175
+4174 1 n2-1174.plc2.org sls= [1173, 1174, 1175] site= 1176
+4175 1 n2-1175.plc2.org sls= [1174, 1175, 1176] site= 1177
+4176 1 n2-1176.plc2.org sls= [1175, 1176, 1177] site= 1178
+4177 1 n2-1177.plc2.org sls= [1176, 1177, 1178] site= 1179
+4178 1 n2-1178.plc2.org sls= [1177, 1178, 1179] site= 1180
+4179 1 n2-1179.plc2.org sls= [1178, 1179, 1180] site= 1181
+4180 1 n2-1180.plc2.org sls= [1181, 1179, 1180] site= 1182
+4181 1 n2-1181.plc2.org sls= [1181, 1182, 1180] site= 1183
+4182 1 n2-1182.plc2.org sls= [1181, 1182, 1183] site= 1184
+4183 1 n2-1183.plc2.org sls= [1182, 1183, 1184] site= 1185
+4184 1 n2-1184.plc2.org sls= [1183, 1184, 1185] site= 1186
+4185 1 n2-1185.plc2.org sls= [1184, 1185, 1186] site= 1187
+4186 1 n2-1186.plc2.org sls= [1185, 1186, 1187] site= 1188
+4187 1 n2-1187.plc2.org sls= [1186, 1187, 1188] site= 1189
+4188 1 n2-1188.plc2.org sls= [1189, 1187, 1188] site= 1190
+4189 1 n2-1189.plc2.org sls= [1189, 1190, 1188] site= 1191
+4190 1 n2-1190.plc2.org sls= [1189, 1190, 1191] site= 1192
+4191 1 n2-1191.plc2.org sls= [1190, 1191, 1192] site= 1193
+4192 1 n2-1192.plc2.org sls= [1191, 1192, 1193] site= 1194
+4193 1 n2-1193.plc2.org sls= [1192, 1193, 1194] site= 1195
+4194 1 n2-1194.plc2.org sls= [1193, 1194, 1195] site= 1196
+4195 1 n2-1195.plc2.org sls= [1194, 1195, 1196] site= 1197
+4196 1 n2-1196.plc2.org sls= [1197, 1195, 1196] site= 1198
+4197 1 n2-1197.plc2.org sls= [1197, 1198, 1196] site= 1199
+4198 1 n2-1198.plc2.org sls= [1197, 1198, 1199] site= 1200
+4199 1 n2-1199.plc2.org sls= [1198, 1199, 1200] site= 1201
+4200 1 n2-1200.plc2.org sls= [1199, 1200, 1201] site= 1202
+4201 1 n2-1201.plc2.org sls= [1200, 1201, 1202] site= 1203
+4202 1 n2-1202.plc2.org sls= [1201, 1202, 1203] site= 1204
+4203 1 n2-1203.plc2.org sls= [1202, 1203, 1204] site= 1205
+4204 1 n2-1204.plc2.org sls= [1205, 1203, 1204] site= 1206
+4205 1 n2-1205.plc2.org sls= [1205, 1206, 1204] site= 1207
+4206 1 n2-1206.plc2.org sls= [1205, 1206, 1207] site= 1208
+4207 1 n2-1207.plc2.org sls= [1206, 1207, 1208] site= 1209
+4208 1 n2-1208.plc2.org sls= [1207, 1208, 1209] site= 1210
+4209 1 n2-1209.plc2.org sls= [1208, 1209, 1210] site= 1211
+4210 1 n2-1210.plc2.org sls= [1209, 1210, 1211] site= 1212
+4211 1 n2-1211.plc2.org sls= [1210, 1211, 1212] site= 1213
+4212 1 n2-1212.plc2.org sls= [1213, 1211, 1212] site= 1214
+4213 1 n2-1213.plc2.org sls= [1213, 1214, 1212] site= 1215
+4214 1 n2-1214.plc2.org sls= [1213, 1214, 1215] site= 1216
+4215 1 n2-1215.plc2.org sls= [1214, 1215, 1216] site= 1217
+4216 1 n2-1216.plc2.org sls= [1215, 1216, 1217] site= 1218
+4217 1 n2-1217.plc2.org sls= [1216, 1217, 1218] site= 1219
+4218 1 n2-1218.plc2.org sls= [1217, 1218, 1219] site= 1220
+4219 1 n2-1219.plc2.org sls= [1218, 1219, 1220] site= 1221
+4220 1 n2-1220.plc2.org sls= [1221, 1219, 1220] site= 1222
+4221 1 n2-1221.plc2.org sls= [1221, 1222, 1220] site= 1223
+4222 1 n2-1222.plc2.org sls= [1221, 1222, 1223] site= 1224
+4223 1 n2-1223.plc2.org sls= [1222, 1223, 1224] site= 1225
+4224 1 n2-1224.plc2.org sls= [1223, 1224, 1225] site= 1226
+4225 1 n2-1225.plc2.org sls= [1224, 1225, 1226] site= 1227
+4226 1 n2-1226.plc2.org sls= [1225, 1226, 1227] site= 1228
+4227 1 n2-1227.plc2.org sls= [1226, 1227, 1228] site= 1229
+4228 1 n2-1228.plc2.org sls= [1229, 1227, 1228] site= 1230
+4229 1 n2-1229.plc2.org sls= [1229, 1230, 1228] site= 1231
+4230 1 n2-1230.plc2.org sls= [1229, 1230, 1231] site= 1232
+4231 1 n2-1231.plc2.org sls= [1230, 1231, 1232] site= 1233
+4232 1 n2-1232.plc2.org sls= [1231, 1232, 1233] site= 1234
+4233 1 n2-1233.plc2.org sls= [1232, 1233, 1234] site= 1235
+4234 1 n2-1234.plc2.org sls= [1233, 1234, 1235] site= 1236
+4235 1 n2-1235.plc2.org sls= [1234, 1235, 1236] site= 1237
+4236 1 n2-1236.plc2.org sls= [1237, 1235, 1236] site= 1238
+4237 1 n2-1237.plc2.org sls= [1237, 1238, 1236] site= 1239
+4238 1 n2-1238.plc2.org sls= [1237, 1238, 1239] site= 1240
+4239 1 n2-1239.plc2.org sls= [1238, 1239, 1240] site= 1241
+4240 1 n2-1240.plc2.org sls= [1239, 1240, 1241] site= 1242
+4241 1 n2-1241.plc2.org sls= [1240, 1241, 1242] site= 1243
+4242 1 n2-1242.plc2.org sls= [1241, 1242, 1243] site= 1244
+4243 1 n2-1243.plc2.org sls= [1242, 1243, 1244] site= 1245
+4244 1 n2-1244.plc2.org sls= [1245, 1243, 1244] site= 1246
+4245 1 n2-1245.plc2.org sls= [1245, 1246, 1244] site= 1247
+4246 1 n2-1246.plc2.org sls= [1245, 1246, 1247] site= 1248
+4247 1 n2-1247.plc2.org sls= [1246, 1247, 1248] site= 1249
+4248 1 n2-1248.plc2.org sls= [1247, 1248, 1249] site= 1250
+4249 1 n2-1249.plc2.org sls= [1248, 1249, 1250] site= 1251
+4250 1 n2-1250.plc2.org sls= [1249, 1250, 1251] site= 1252
+4251 1 n2-1251.plc2.org sls= [1250, 1251, 1252] site= 1253
+4252 1 n2-1252.plc2.org sls= [1253, 1251, 1252] site= 1254
+4253 1 n2-1253.plc2.org sls= [1253, 1254, 1252] site= 1255
+4254 1 n2-1254.plc2.org sls= [1253, 1254, 1255] site= 1256
+4255 1 n2-1255.plc2.org sls= [1254, 1255, 1256] site= 1257
+4256 1 n2-1256.plc2.org sls= [1255, 1256, 1257] site= 1258
+4257 1 n2-1257.plc2.org sls= [1256, 1257, 1258] site= 1259
+4258 1 n2-1258.plc2.org sls= [1257, 1258, 1259] site= 1260
+4259 1 n2-1259.plc2.org sls= [1258, 1259, 1260] site= 1261
+4260 1 n2-1260.plc2.org sls= [1261, 1259, 1260] site= 1262
+4261 1 n2-1261.plc2.org sls= [1261, 1262, 1260] site= 1263
+4262 1 n2-1262.plc2.org sls= [1261, 1262, 1263] site= 1264
+4263 1 n2-1263.plc2.org sls= [1262, 1263, 1264] site= 1265
+4264 1 n2-1264.plc2.org sls= [1263, 1264, 1265] site= 1266
+4265 1 n2-1265.plc2.org sls= [1264, 1265, 1266] site= 1267
+4266 1 n2-1266.plc2.org sls= [1265, 1266, 1267] site= 1268
+4267 1 n2-1267.plc2.org sls= [1266, 1267, 1268] site= 1269
+4268 1 n2-1268.plc2.org sls= [1269, 1267, 1268] site= 1270
+4269 1 n2-1269.plc2.org sls= [1269, 1270, 1268] site= 1271
+4270 1 n2-1270.plc2.org sls= [1269, 1270, 1271] site= 1272
+4271 1 n2-1271.plc2.org sls= [1270, 1271, 1272] site= 1273
+4272 1 n2-1272.plc2.org sls= [1271, 1272, 1273] site= 1274
+4273 1 n2-1273.plc2.org sls= [1272, 1273, 1274] site= 1275
+4274 1 n2-1274.plc2.org sls= [1273, 1274, 1275] site= 1276
+4275 1 n2-1275.plc2.org sls= [1274, 1275, 1276] site= 1277
+4276 1 n2-1276.plc2.org sls= [1277, 1275, 1276] site= 1278
+4277 1 n2-1277.plc2.org sls= [1277, 1278, 1276] site= 1279
+4278 1 n2-1278.plc2.org sls= [1277, 1278, 1279] site= 1280
+4279 1 n2-1279.plc2.org sls= [1278, 1279, 1280] site= 1281
+4280 1 n2-1280.plc2.org sls= [1279, 1280, 1281] site= 1282
+4281 1 n2-1281.plc2.org sls= [1280, 1281, 1282] site= 1283
+4282 1 n2-1282.plc2.org sls= [1281, 1282, 1283] site= 1284
+4283 1 n2-1283.plc2.org sls= [1282, 1283, 1284] site= 1285
+4284 1 n2-1284.plc2.org sls= [1285, 1283, 1284] site= 1286
+4285 1 n2-1285.plc2.org sls= [1285, 1286, 1284] site= 1287
+4286 1 n2-1286.plc2.org sls= [1285, 1286, 1287] site= 1288
+4287 1 n2-1287.plc2.org sls= [1286, 1287, 1288] site= 1289
+4288 1 n2-1288.plc2.org sls= [1287, 1288, 1289] site= 1290
+4289 1 n2-1289.plc2.org sls= [1288, 1289, 1290] site= 1291
+4290 1 n2-1290.plc2.org sls= [1289, 1290, 1291] site= 1292
+4291 1 n2-1291.plc2.org sls= [1290, 1291, 1292] site= 1293
+4292 1 n2-1292.plc2.org sls= [1293, 1291, 1292] site= 1294
+4293 1 n2-1293.plc2.org sls= [1293, 1294, 1292] site= 1295
+4294 1 n2-1294.plc2.org sls= [1293, 1294, 1295] site= 1296
+4295 1 n2-1295.plc2.org sls= [1294, 1295, 1296] site= 1297
+4296 1 n2-1296.plc2.org sls= [1295, 1296, 1297] site= 1298
+4297 1 n2-1297.plc2.org sls= [1296, 1297, 1298] site= 1299
+4298 1 n2-1298.plc2.org sls= [1297, 1298, 1299] site= 1300
+4299 1 n2-1299.plc2.org sls= [1298, 1299, 1300] site= 1301
+4300 1 n2-1300.plc2.org sls= [1301, 1299, 1300] site= 1302
+4301 1 n2-1301.plc2.org sls= [1301, 1302, 1300] site= 1303
+4302 1 n2-1302.plc2.org sls= [1301, 1302, 1303] site= 1304
+4303 1 n2-1303.plc2.org sls= [1302, 1303, 1304] site= 1305
+4304 1 n2-1304.plc2.org sls= [1303, 1304, 1305] site= 1306
+4305 1 n2-1305.plc2.org sls= [1304, 1305, 1306] site= 1307
+4306 1 n2-1306.plc2.org sls= [1305, 1306, 1307] site= 1308
+4307 1 n2-1307.plc2.org sls= [1306, 1307, 1308] site= 1309
+4308 1 n2-1308.plc2.org sls= [1309, 1307, 1308] site= 1310
+4309 1 n2-1309.plc2.org sls= [1309, 1310, 1308] site= 1311
+4310 1 n2-1310.plc2.org sls= [1309, 1310, 1311] site= 1312
+4311 1 n2-1311.plc2.org sls= [1310, 1311, 1312] site= 1313
+4312 1 n2-1312.plc2.org sls= [1311, 1312, 1313] site= 1314
+4313 1 n2-1313.plc2.org sls= [1312, 1313, 1314] site= 1315
+4314 1 n2-1314.plc2.org sls= [1313, 1314, 1315] site= 1316
+4315 1 n2-1315.plc2.org sls= [1314, 1315, 1316] site= 1317
+4316 1 n2-1316.plc2.org sls= [1317, 1315, 1316] site= 1318
+4317 1 n2-1317.plc2.org sls= [1317, 1318, 1316] site= 1319
+4318 1 n2-1318.plc2.org sls= [1317, 1318, 1319] site= 1320
+4319 1 n2-1319.plc2.org sls= [1318, 1319, 1320] site= 1321
+4320 1 n2-1320.plc2.org sls= [1319, 1320, 1321] site= 1322
+4321 1 n2-1321.plc2.org sls= [1320, 1321, 1322] site= 1323
+4322 1 n2-1322.plc2.org sls= [1321, 1322, 1323] site= 1324
+4323 1 n2-1323.plc2.org sls= [1322, 1323, 1324] site= 1325
+4324 1 n2-1324.plc2.org sls= [1325, 1323, 1324] site= 1326
+4325 1 n2-1325.plc2.org sls= [1325, 1326, 1324] site= 1327
+4326 1 n2-1326.plc2.org sls= [1325, 1326, 1327] site= 1328
+4327 1 n2-1327.plc2.org sls= [1326, 1327, 1328] site= 1329
+4328 1 n2-1328.plc2.org sls= [1327, 1328, 1329] site= 1330
+4329 1 n2-1329.plc2.org sls= [1328, 1329, 1330] site= 1331
+4330 1 n2-1330.plc2.org sls= [1329, 1330, 1331] site= 1332
+4331 1 n2-1331.plc2.org sls= [1330, 1331, 1332] site= 1333
+4332 1 n2-1332.plc2.org sls= [1333, 1331, 1332] site= 1334
+4333 1 n2-1333.plc2.org sls= [1333, 1334, 1332] site= 1335
+4334 1 n2-1334.plc2.org sls= [1333, 1334, 1335] site= 1336
+4335 1 n2-1335.plc2.org sls= [1334, 1335, 1336] site= 1337
+4336 1 n2-1336.plc2.org sls= [1335, 1336, 1337] site= 1338
+4337 1 n2-1337.plc2.org sls= [1336, 1337, 1338] site= 1339
+4338 1 n2-1338.plc2.org sls= [1337, 1338, 1339] site= 1340
+4339 1 n2-1339.plc2.org sls= [1338, 1339, 1340] site= 1341
+4340 1 n2-1340.plc2.org sls= [1341, 1339, 1340] site= 1342
+4341 1 n2-1341.plc2.org sls= [1341, 1342, 1340] site= 1343
+4342 1 n2-1342.plc2.org sls= [1341, 1342, 1343] site= 1344
+4343 1 n2-1343.plc2.org sls= [1342, 1343, 1344] site= 1345
+4344 1 n2-1344.plc2.org sls= [1343, 1344, 1345] site= 1346
+4345 1 n2-1345.plc2.org sls= [1344, 1345, 1346] site= 1347
+4346 1 n2-1346.plc2.org sls= [1345, 1346, 1347] site= 1348
+4347 1 n2-1347.plc2.org sls= [1346, 1347, 1348] site= 1349
+4348 1 n2-1348.plc2.org sls= [1349, 1347, 1348] site= 1350
+4349 1 n2-1349.plc2.org sls= [1349, 1350, 1348] site= 1351
+4350 1 n2-1350.plc2.org sls= [1349, 1350, 1351] site= 1352
+4351 1 n2-1351.plc2.org sls= [1350, 1351, 1352] site= 1353
+4352 1 n2-1352.plc2.org sls= [1351, 1352, 1353] site= 1354
+4353 1 n2-1353.plc2.org sls= [1352, 1353, 1354] site= 1355
+4354 1 n2-1354.plc2.org sls= [1353, 1354, 1355] site= 1356
+4355 1 n2-1355.plc2.org sls= [1354, 1355, 1356] site= 1357
+4356 1 n2-1356.plc2.org sls= [1357, 1355, 1356] site= 1358
+4357 1 n2-1357.plc2.org sls= [1357, 1358, 1356] site= 1359
+4358 1 n2-1358.plc2.org sls= [1357, 1358, 1359] site= 1360
+4359 1 n2-1359.plc2.org sls= [1358, 1359, 1360] site= 1361
+4360 1 n2-1360.plc2.org sls= [1359, 1360, 1361] site= 1362
+4361 1 n2-1361.plc2.org sls= [1360, 1361, 1362] site= 1363
+4362 1 n2-1362.plc2.org sls= [1361, 1362, 1363] site= 1364
+4363 1 n2-1363.plc2.org sls= [1362, 1363, 1364] site= 1365
+4364 1 n2-1364.plc2.org sls= [1365, 1363, 1364] site= 1366
+4365 1 n2-1365.plc2.org sls= [1365, 1366, 1364] site= 1367
+4366 1 n2-1366.plc2.org sls= [1365, 1366, 1367] site= 1368
+4367 1 n2-1367.plc2.org sls= [1366, 1367, 1368] site= 1369
+4368 1 n2-1368.plc2.org sls= [1367, 1368, 1369] site= 1370
+4369 1 n2-1369.plc2.org sls= [1368, 1369, 1370] site= 1371
+4370 1 n2-1370.plc2.org sls= [1369, 1370, 1371] site= 1372
+4371 1 n2-1371.plc2.org sls= [1370, 1371, 1372] site= 1373
+4372 1 n2-1372.plc2.org sls= [1373, 1371, 1372] site= 1374
+4373 1 n2-1373.plc2.org sls= [1373, 1374, 1372] site= 1375
+4374 1 n2-1374.plc2.org sls= [1373, 1374, 1375] site= 1376
+4375 1 n2-1375.plc2.org sls= [1374, 1375, 1376] site= 1377
+4376 1 n2-1376.plc2.org sls= [1375, 1376, 1377] site= 1378
+4377 1 n2-1377.plc2.org sls= [1376, 1377, 1378] site= 1379
+4378 1 n2-1378.plc2.org sls= [1377, 1378, 1379] site= 1380
+4379 1 n2-1379.plc2.org sls= [1378, 1379, 1380] site= 1381
+4380 1 n2-1380.plc2.org sls= [1381, 1379, 1380] site= 1382
+4381 1 n2-1381.plc2.org sls= [1381, 1382, 1380] site= 1383
+4382 1 n2-1382.plc2.org sls= [1381, 1382, 1383] site= 1384
+4383 1 n2-1383.plc2.org sls= [1382, 1383, 1384] site= 1385
+4384 1 n2-1384.plc2.org sls= [1383, 1384, 1385] site= 1386
+4385 1 n2-1385.plc2.org sls= [1384, 1385, 1386] site= 1387
+4386 1 n2-1386.plc2.org sls= [1385, 1386, 1387] site= 1388
+4387 1 n2-1387.plc2.org sls= [1386, 1387, 1388] site= 1389
+4388 1 n2-1388.plc2.org sls= [1389, 1387, 1388] site= 1390
+4389 1 n2-1389.plc2.org sls= [1389, 1390, 1388] site= 1391
+4390 1 n2-1390.plc2.org sls= [1389, 1390, 1391] site= 1392
+4391 1 n2-1391.plc2.org sls= [1390, 1391, 1392] site= 1393
+4392 1 n2-1392.plc2.org sls= [1391, 1392, 1393] site= 1394
+4393 1 n2-1393.plc2.org sls= [1392, 1393, 1394] site= 1395
+4394 1 n2-1394.plc2.org sls= [1393, 1394, 1395] site= 1396
+4395 1 n2-1395.plc2.org sls= [1394, 1395, 1396] site= 1397
+4396 1 n2-1396.plc2.org sls= [1397, 1395, 1396] site= 1398
+4397 1 n2-1397.plc2.org sls= [1397, 1398, 1396] site= 1399
+4398 1 n2-1398.plc2.org sls= [1397, 1398, 1399] site= 1400
+4399 1 n2-1399.plc2.org sls= [1398, 1399, 1400] site= 1401
+4400 1 n2-1400.plc2.org sls= [1399, 1400, 1401] site= 1402
+4401 1 n2-1401.plc2.org sls= [1400, 1401, 1402] site= 1403
+4402 1 n2-1402.plc2.org sls= [1401, 1402, 1403] site= 1404
+4403 1 n2-1403.plc2.org sls= [1402, 1403, 1404] site= 1405
+4404 1 n2-1404.plc2.org sls= [1405, 1403, 1404] site= 1406
+4405 1 n2-1405.plc2.org sls= [1405, 1406, 1404] site= 1407
+4406 1 n2-1406.plc2.org sls= [1405, 1406, 1407] site= 1408
+4407 1 n2-1407.plc2.org sls= [1406, 1407, 1408] site= 1409
+4408 1 n2-1408.plc2.org sls= [1407, 1408, 1409] site= 1410
+4409 1 n2-1409.plc2.org sls= [1408, 1409, 1410] site= 1411
+4410 1 n2-1410.plc2.org sls= [1409, 1410, 1411] site= 1412
+4411 1 n2-1411.plc2.org sls= [1410, 1411, 1412] site= 1413
+4412 1 n2-1412.plc2.org sls= [1413, 1411, 1412] site= 1414
+4413 1 n2-1413.plc2.org sls= [1413, 1414, 1412] site= 1415
+4414 1 n2-1414.plc2.org sls= [1413, 1414, 1415] site= 1416
+4415 1 n2-1415.plc2.org sls= [1414, 1415, 1416] site= 1417
+4416 1 n2-1416.plc2.org sls= [1415, 1416, 1417] site= 1418
+4417 1 n2-1417.plc2.org sls= [1416, 1417, 1418] site= 1419
+4418 1 n2-1418.plc2.org sls= [1417, 1418, 1419] site= 1420
+4419 1 n2-1419.plc2.org sls= [1418, 1419, 1420] site= 1421
+4420 1 n2-1420.plc2.org sls= [1421, 1419, 1420] site= 1422
+4421 1 n2-1421.plc2.org sls= [1421, 1422, 1420] site= 1423
+4422 1 n2-1422.plc2.org sls= [1421, 1422, 1423] site= 1424
+4423 1 n2-1423.plc2.org sls= [1422, 1423, 1424] site= 1425
+4424 1 n2-1424.plc2.org sls= [1423, 1424, 1425] site= 1426
+4425 1 n2-1425.plc2.org sls= [1424, 1425, 1426] site= 1427
+4426 1 n2-1426.plc2.org sls= [1425, 1426, 1427] site= 1428
+4427 1 n2-1427.plc2.org sls= [1426, 1427, 1428] site= 1429
+4428 1 n2-1428.plc2.org sls= [1429, 1427, 1428] site= 1430
+4429 1 n2-1429.plc2.org sls= [1429, 1430, 1428] site= 1431
+4430 1 n2-1430.plc2.org sls= [1429, 1430, 1431] site= 1432
+4431 1 n2-1431.plc2.org sls= [1430, 1431, 1432] site= 1433
+4432 1 n2-1432.plc2.org sls= [1431, 1432, 1433] site= 1434
+4433 1 n2-1433.plc2.org sls= [1432, 1433, 1434] site= 1435
+4434 1 n2-1434.plc2.org sls= [1433, 1434, 1435] site= 1436
+4435 1 n2-1435.plc2.org sls= [1434, 1435, 1436] site= 1437
+4436 1 n2-1436.plc2.org sls= [1437, 1435, 1436] site= 1438
+4437 1 n2-1437.plc2.org sls= [1437, 1438, 1436] site= 1439
+4438 1 n2-1438.plc2.org sls= [1437, 1438, 1439] site= 1440
+4439 1 n2-1439.plc2.org sls= [1438, 1439, 1440] site= 1441
+4440 1 n2-1440.plc2.org sls= [1439, 1440, 1441] site= 1442
+4441 1 n2-1441.plc2.org sls= [1440, 1441, 1442] site= 1443
+4442 1 n2-1442.plc2.org sls= [1441, 1442, 1443] site= 1444
+4443 1 n2-1443.plc2.org sls= [1442, 1443, 1444] site= 1445
+4444 1 n2-1444.plc2.org sls= [1445, 1443, 1444] site= 1446
+4445 1 n2-1445.plc2.org sls= [1445, 1446, 1444] site= 1447
+4446 1 n2-1446.plc2.org sls= [1445, 1446, 1447] site= 1448
+4447 1 n2-1447.plc2.org sls= [1446, 1447, 1448] site= 1449
+4448 1 n2-1448.plc2.org sls= [1447, 1448, 1449] site= 1450
+4449 1 n2-1449.plc2.org sls= [1448, 1449, 1450] site= 1451
+4450 1 n2-1450.plc2.org sls= [1449, 1450, 1451] site= 1452
+4451 1 n2-1451.plc2.org sls= [1450, 1451, 1452] site= 1453
+4452 1 n2-1452.plc2.org sls= [1453, 1451, 1452] site= 1454
+4453 1 n2-1453.plc2.org sls= [1453, 1454, 1452] site= 1455
+4454 1 n2-1454.plc2.org sls= [1453, 1454, 1455] site= 1456
+4455 1 n2-1455.plc2.org sls= [1454, 1455, 1456] site= 1457
+4456 1 n2-1456.plc2.org sls= [1455, 1456, 1457] site= 1458
+4457 1 n2-1457.plc2.org sls= [1456, 1457, 1458] site= 1459
+4458 1 n2-1458.plc2.org sls= [1457, 1458, 1459] site= 1460
+4459 1 n2-1459.plc2.org sls= [1458, 1459, 1460] site= 1461
+4460 1 n2-1460.plc2.org sls= [1461, 1459, 1460] site= 1462
+4461 1 n2-1461.plc2.org sls= [1461, 1462, 1460] site= 1463
+4462 1 n2-1462.plc2.org sls= [1461, 1462, 1463] site= 1464
+4463 1 n2-1463.plc2.org sls= [1462, 1463, 1464] site= 1465
+4464 1 n2-1464.plc2.org sls= [1463, 1464, 1465] site= 1466
+4465 1 n2-1465.plc2.org sls= [1464, 1465, 1466] site= 1467
+4466 1 n2-1466.plc2.org sls= [1465, 1466, 1467] site= 1468
+4467 1 n2-1467.plc2.org sls= [1466, 1467, 1468] site= 1469
+4468 1 n2-1468.plc2.org sls= [1469, 1467, 1468] site= 1470
+4469 1 n2-1469.plc2.org sls= [1469, 1470, 1468] site= 1471
+4470 1 n2-1470.plc2.org sls= [1469, 1470, 1471] site= 1472
+4471 1 n2-1471.plc2.org sls= [1470, 1471, 1472] site= 1473
+4472 1 n2-1472.plc2.org sls= [1471, 1472, 1473] site= 1474
+4473 1 n2-1473.plc2.org sls= [1472, 1473, 1474] site= 1475
+4474 1 n2-1474.plc2.org sls= [1473, 1474, 1475] site= 1476
+4475 1 n2-1475.plc2.org sls= [1474, 1475, 1476] site= 1477
+4476 1 n2-1476.plc2.org sls= [1477, 1475, 1476] site= 1478
+4477 1 n2-1477.plc2.org sls= [1477, 1478, 1476] site= 1479
+4478 1 n2-1478.plc2.org sls= [1477, 1478, 1479] site= 1480
+4479 1 n2-1479.plc2.org sls= [1478, 1479, 1480] site= 1481
+4480 1 n2-1480.plc2.org sls= [1479, 1480, 1481] site= 1482
+4481 1 n2-1481.plc2.org sls= [1480, 1481, 1482] site= 1483
+4482 1 n2-1482.plc2.org sls= [1481, 1482, 1483] site= 1484
+4483 1 n2-1483.plc2.org sls= [1482, 1483, 1484] site= 1485
+4484 1 n2-1484.plc2.org sls= [1485, 1483, 1484] site= 1486
+4485 1 n2-1485.plc2.org sls= [1485, 1486, 1484] site= 1487
+4486 1 n2-1486.plc2.org sls= [1485, 1486, 1487] site= 1488
+4487 1 n2-1487.plc2.org sls= [1486, 1487, 1488] site= 1489
+4488 1 n2-1488.plc2.org sls= [1487, 1488, 1489] site= 1490
+4489 1 n2-1489.plc2.org sls= [1488, 1489, 1490] site= 1491
+4490 1 n2-1490.plc2.org sls= [1489, 1490, 1491] site= 1492
+4491 1 n2-1491.plc2.org sls= [1490, 1491, 1492] site= 1493
+4492 1 n2-1492.plc2.org sls= [1493, 1491, 1492] site= 1494
+4493 1 n2-1493.plc2.org sls= [1493, 1494, 1492] site= 1495
+4494 1 n2-1494.plc2.org sls= [1493, 1494, 1495] site= 1496
+4495 1 n2-1495.plc2.org sls= [1494, 1495, 1496] site= 1497
+4496 1 n2-1496.plc2.org sls= [1495, 1496, 1497] site= 1498
+4497 1 n2-1497.plc2.org sls= [1496, 1497, 1498] site= 1499
+4498 1 n2-1498.plc2.org sls= [1497, 1498, 1499] site= 1500
+4499 1 n2-1499.plc2.org sls= [1498, 1499, 1500] site= 1501
+4500 1 n2-1500.plc2.org sls= [1501, 1499, 1500] site= 1502
+4501 1 n2-1501.plc2.org sls= [1501, 1502, 1500] site= 1503
+4502 1 n2-1502.plc2.org sls= [1501, 1502, 1503] site= 1504
+4503 1 n2-1503.plc2.org sls= [1502, 1503, 1504] site= 1505
+4504 1 n2-1504.plc2.org sls= [1503, 1504, 1505] site= 1506
+4505 1 n2-1505.plc2.org sls= [1504, 1505, 1506] site= 1507
+4506 1 n2-1506.plc2.org sls= [1505, 1506, 1507] site= 1508
+4507 1 n2-1507.plc2.org sls= [1506, 1507, 1508] site= 1509
+4508 1 n2-1508.plc2.org sls= [1509, 1507, 1508] site= 1510
+4509 1 n2-1509.plc2.org sls= [1509, 1510, 1508] site= 1511
+4510 1 n2-1510.plc2.org sls= [1509, 1510, 1511] site= 1512
+4511 1 n2-1511.plc2.org sls= [1510, 1511, 1512] site= 1513
+4512 1 n2-1512.plc2.org sls= [1511, 1512, 1513] site= 1514
+4513 1 n2-1513.plc2.org sls= [1512, 1513, 1514] site= 1515
+4514 1 n2-1514.plc2.org sls= [1513, 1514, 1515] site= 1516
+4515 1 n2-1515.plc2.org sls= [1514, 1515, 1516] site= 1517
+4516 1 n2-1516.plc2.org sls= [1515, 1516, 1517] site= 1518
+4517 1 n2-1517.plc2.org sls= [1516, 1517, 1518] site= 1519
+4518 1 n2-1518.plc2.org sls= [1517, 1518, 1519] site= 1520
+4519 1 n2-1519.plc2.org sls= [1518, 1519, 1520] site= 1521
+4520 1 n2-1520.plc2.org sls= [1519, 1520, 1521] site= 1522
+4521 1 n2-1521.plc2.org sls= [1520, 1521, 1522] site= 1523
+4522 1 n2-1522.plc2.org sls= [1521, 1522, 1523] site= 1524
+4523 1 n2-1523.plc2.org sls= [1522, 1523, 1524] site= 1525
+4524 1 n2-1524.plc2.org sls= [1525, 1523, 1524] site= 1526
+4525 1 n2-1525.plc2.org sls= [1525, 1526, 1524] site= 1527
+4526 1 n2-1526.plc2.org sls= [1525, 1526, 1527] site= 1528
+4527 1 n2-1527.plc2.org sls= [1526, 1527, 1528] site= 1529
+4528 1 n2-1528.plc2.org sls= [1527, 1528, 1529] site= 1530
+4529 1 n2-1529.plc2.org sls= [1528, 1529, 1530] site= 1531
+4530 1 n2-1530.plc2.org sls= [1529, 1530, 1531] site= 1532
+4531 1 n2-1531.plc2.org sls= [1530, 1531, 1532] site= 1533
+4532 1 n2-1532.plc2.org sls= [1533, 1531, 1532] site= 1534
+4533 1 n2-1533.plc2.org sls= [1533, 1534, 1532] site= 1535
+4534 1 n2-1534.plc2.org sls= [1533, 1534, 1535] site= 1536
+4535 1 n2-1535.plc2.org sls= [1534, 1535, 1536] site= 1537
+4536 1 n2-1536.plc2.org sls= [1535, 1536, 1537] site= 1538
+4537 1 n2-1537.plc2.org sls= [1536, 1537, 1538] site= 1539
+4538 1 n2-1538.plc2.org sls= [1537, 1538, 1539] site= 1540
+4539 1 n2-1539.plc2.org sls= [1538, 1539, 1540] site= 1541
+4540 1 n2-1540.plc2.org sls= [1541, 1539, 1540] site= 1542
+4541 1 n2-1541.plc2.org sls= [1541, 1542, 1540] site= 1543
+4542 1 n2-1542.plc2.org sls= [1541, 1542, 1543] site= 1544
+4543 1 n2-1543.plc2.org sls= [1542, 1543, 1544] site= 1545
+4544 1 n2-1544.plc2.org sls= [1543, 1544, 1545] site= 1546
+4545 1 n2-1545.plc2.org sls= [1544, 1545, 1546] site= 1547
+4546 1 n2-1546.plc2.org sls= [1545, 1546, 1547] site= 1548
+4547 1 n2-1547.plc2.org sls= [1546, 1547, 1548] site= 1549
+4548 1 n2-1548.plc2.org sls= [1549, 1547, 1548] site= 1550
+4549 1 n2-1549.plc2.org sls= [1549, 1550, 1548] site= 1551
+4550 1 n2-1550.plc2.org sls= [1549, 1550, 1551] site= 1552
+4551 1 n2-1551.plc2.org sls= [1550, 1551, 1552] site= 1553
+4552 1 n2-1552.plc2.org sls= [1551, 1552, 1553] site= 1554
+4553 1 n2-1553.plc2.org sls= [1552, 1553, 1554] site= 1555
+4554 1 n2-1554.plc2.org sls= [1553, 1554, 1555] site= 1556
+4555 1 n2-1555.plc2.org sls= [1554, 1555, 1556] site= 1557
+4556 1 n2-1556.plc2.org sls= [1557, 1555, 1556] site= 1558
+4557 1 n2-1557.plc2.org sls= [1557, 1558, 1556] site= 1559
+4558 1 n2-1558.plc2.org sls= [1557, 1558, 1559] site= 1560
+4559 1 n2-1559.plc2.org sls= [1558, 1559, 1560] site= 1561
+4560 1 n2-1560.plc2.org sls= [1559, 1560, 1561] site= 1562
+4561 1 n2-1561.plc2.org sls= [1560, 1561, 1562] site= 1563
+4562 1 n2-1562.plc2.org sls= [1561, 1562, 1563] site= 1564
+4563 1 n2-1563.plc2.org sls= [1562, 1563, 1564] site= 1565
+4564 1 n2-1564.plc2.org sls= [1565, 1563, 1564] site= 1566
+4565 1 n2-1565.plc2.org sls= [1565, 1566, 1564] site= 1567
+4566 1 n2-1566.plc2.org sls= [1565, 1566, 1567] site= 1568
+4567 1 n2-1567.plc2.org sls= [1566, 1567, 1568] site= 1569
+4568 1 n2-1568.plc2.org sls= [1567, 1568, 1569] site= 1570
+4569 1 n2-1569.plc2.org sls= [1568, 1569, 1570] site= 1571
+4570 1 n2-1570.plc2.org sls= [1569, 1570, 1571] site= 1572
+4571 1 n2-1571.plc2.org sls= [1570, 1571, 1572] site= 1573
+4572 1 n2-1572.plc2.org sls= [1573, 1571, 1572] site= 1574
+4573 1 n2-1573.plc2.org sls= [1573, 1574, 1572] site= 1575
+4574 1 n2-1574.plc2.org sls= [1573, 1574, 1575] site= 1576
+4575 1 n2-1575.plc2.org sls= [1574, 1575, 1576] site= 1577
+4576 1 n2-1576.plc2.org sls= [1575, 1576, 1577] site= 1578
+4577 1 n2-1577.plc2.org sls= [1576, 1577, 1578] site= 1579
+4578 1 n2-1578.plc2.org sls= [1577, 1578, 1579] site= 1580
+4579 1 n2-1579.plc2.org sls= [1578, 1579, 1580] site= 1581
+4580 1 n2-1580.plc2.org sls= [1581, 1579, 1580] site= 1582
+4581 1 n2-1581.plc2.org sls= [1581, 1582, 1580] site= 1583
+4582 1 n2-1582.plc2.org sls= [1581, 1582, 1583] site= 1584
+4583 1 n2-1583.plc2.org sls= [1582, 1583, 1584] site= 1585
+4584 1 n2-1584.plc2.org sls= [1583, 1584, 1585] site= 1586
+4585 1 n2-1585.plc2.org sls= [1584, 1585, 1586] site= 1587
+4586 1 n2-1586.plc2.org sls= [1585, 1586, 1587] site= 1588
+4587 1 n2-1587.plc2.org sls= [1586, 1587, 1588] site= 1589
+4588 1 n2-1588.plc2.org sls= [1589, 1587, 1588] site= 1590
+4589 1 n2-1589.plc2.org sls= [1589, 1590, 1588] site= 1591
+4590 1 n2-1590.plc2.org sls= [1589, 1590, 1591] site= 1592
+4591 1 n2-1591.plc2.org sls= [1590, 1591, 1592] site= 1593
+4592 1 n2-1592.plc2.org sls= [1591, 1592, 1593] site= 1594
+4593 1 n2-1593.plc2.org sls= [1592, 1593, 1594] site= 1595
+4594 1 n2-1594.plc2.org sls= [1593, 1594, 1595] site= 1596
+4595 1 n2-1595.plc2.org sls= [1594, 1595, 1596] site= 1597
+4596 1 n2-1596.plc2.org sls= [1597, 1595, 1596] site= 1598
+4597 1 n2-1597.plc2.org sls= [1597, 1598, 1596] site= 1599
+4598 1 n2-1598.plc2.org sls= [1597, 1598, 1599] site= 1600
+4599 1 n2-1599.plc2.org sls= [1598, 1599, 1600] site= 1601
+4600 1 n2-1600.plc2.org sls= [1599, 1600, 1601] site= 1602
+4601 1 n2-1601.plc2.org sls= [1600, 1601, 1602] site= 1603
+4602 1 n2-1602.plc2.org sls= [1601, 1602, 1603] site= 1604
+4603 1 n2-1603.plc2.org sls= [1602, 1603, 1604] site= 1605
+4604 1 n2-1604.plc2.org sls= [1605, 1603, 1604] site= 1606
+4605 1 n2-1605.plc2.org sls= [1605, 1606, 1604] site= 1607
+4606 1 n2-1606.plc2.org sls= [1605, 1606, 1607] site= 1608
+4607 1 n2-1607.plc2.org sls= [1606, 1607, 1608] site= 1609
+4608 1 n2-1608.plc2.org sls= [1607, 1608, 1609] site= 1610
+4609 1 n2-1609.plc2.org sls= [1608, 1609, 1610] site= 1611
+4610 1 n2-1610.plc2.org sls= [1609, 1610, 1611] site= 1612
+4611 1 n2-1611.plc2.org sls= [1610, 1611, 1612] site= 1613
+4612 1 n2-1612.plc2.org sls= [1613, 1611, 1612] site= 1614
+4613 1 n2-1613.plc2.org sls= [1613, 1614, 1612] site= 1615
+4614 1 n2-1614.plc2.org sls= [1613, 1614, 1615] site= 1616
+4615 1 n2-1615.plc2.org sls= [1614, 1615, 1616] site= 1617
+4616 1 n2-1616.plc2.org sls= [1615, 1616, 1617] site= 1618
+4617 1 n2-1617.plc2.org sls= [1616, 1617, 1618] site= 1619
+4618 1 n2-1618.plc2.org sls= [1617, 1618, 1619] site= 1620
+4619 1 n2-1619.plc2.org sls= [1618, 1619, 1620] site= 1621
+4620 1 n2-1620.plc2.org sls= [1621, 1619, 1620] site= 1622
+4621 1 n2-1621.plc2.org sls= [1621, 1622, 1620] site= 1623
+4622 1 n2-1622.plc2.org sls= [1621, 1622, 1623] site= 1624
+4623 1 n2-1623.plc2.org sls= [1622, 1623, 1624] site= 1625
+4624 1 n2-1624.plc2.org sls= [1623, 1624, 1625] site= 1626
+4625 1 n2-1625.plc2.org sls= [1624, 1625, 1626] site= 1627
+4626 1 n2-1626.plc2.org sls= [1625, 1626, 1627] site= 1628
+4627 1 n2-1627.plc2.org sls= [1626, 1627, 1628] site= 1629
+4628 1 n2-1628.plc2.org sls= [1629, 1627, 1628] site= 1630
+4629 1 n2-1629.plc2.org sls= [1629, 1630, 1628] site= 1631
+4630 1 n2-1630.plc2.org sls= [1629, 1630, 1631] site= 1632
+4631 1 n2-1631.plc2.org sls= [1630, 1631, 1632] site= 1633
+4632 1 n2-1632.plc2.org sls= [1631, 1632, 1633] site= 1634
+4633 1 n2-1633.plc2.org sls= [1632, 1633, 1634] site= 1635
+4634 1 n2-1634.plc2.org sls= [1633, 1634, 1635] site= 1636
+4635 1 n2-1635.plc2.org sls= [1634, 1635, 1636] site= 1637
+4636 1 n2-1636.plc2.org sls= [1637, 1635, 1636] site= 1638
+4637 1 n2-1637.plc2.org sls= [1637, 1638, 1636] site= 1639
+4638 1 n2-1638.plc2.org sls= [1637, 1638, 1639] site= 1640
+4639 1 n2-1639.plc2.org sls= [1638, 1639, 1640] site= 1641
+4640 1 n2-1640.plc2.org sls= [1639, 1640, 1641] site= 1642
+4641 1 n2-1641.plc2.org sls= [1640, 1641, 1642] site= 1643
+4642 1 n2-1642.plc2.org sls= [1641, 1642, 1643] site= 1644
+4643 1 n2-1643.plc2.org sls= [1642, 1643, 1644] site= 1645
+4644 1 n2-1644.plc2.org sls= [1645, 1643, 1644] site= 1646
+4645 1 n2-1645.plc2.org sls= [1645, 1646, 1644] site= 1647
+4646 1 n2-1646.plc2.org sls= [1645, 1646, 1647] site= 1648
+4647 1 n2-1647.plc2.org sls= [1646, 1647, 1648] site= 1649
+4648 1 n2-1648.plc2.org sls= [1647, 1648, 1649] site= 1650
+4649 1 n2-1649.plc2.org sls= [1648, 1649, 1650] site= 1651
+4650 1 n2-1650.plc2.org sls= [1649, 1650, 1651] site= 1652
+4651 1 n2-1651.plc2.org sls= [1650, 1651, 1652] site= 1653
+4652 1 n2-1652.plc2.org sls= [1653, 1651, 1652] site= 1654
+4653 1 n2-1653.plc2.org sls= [1653, 1654, 1652] site= 1655
+4654 1 n2-1654.plc2.org sls= [1653, 1654, 1655] site= 1656
+4655 1 n2-1655.plc2.org sls= [1654, 1655, 1656] site= 1657
+4656 1 n2-1656.plc2.org sls= [1655, 1656, 1657] site= 1658
+4657 1 n2-1657.plc2.org sls= [1656, 1657, 1658] site= 1659
+4658 1 n2-1658.plc2.org sls= [1657, 1658, 1659] site= 1660
+4659 1 n2-1659.plc2.org sls= [1658, 1659, 1660] site= 1661
+4660 1 n2-1660.plc2.org sls= [1661, 1659, 1660] site= 1662
+4661 1 n2-1661.plc2.org sls= [1661, 1662, 1660] site= 1663
+4662 1 n2-1662.plc2.org sls= [1661, 1662, 1663] site= 1664
+4663 1 n2-1663.plc2.org sls= [1662, 1663, 1664] site= 1665
+4664 1 n2-1664.plc2.org sls= [1663, 1664, 1665] site= 1666
+4665 1 n2-1665.plc2.org sls= [1664, 1665, 1666] site= 1667
+4666 1 n2-1666.plc2.org sls= [1665, 1666, 1667] site= 1668
+4667 1 n2-1667.plc2.org sls= [1666, 1667, 1668] site= 1669
+4668 1 n2-1668.plc2.org sls= [1669, 1667, 1668] site= 1670
+4669 1 n2-1669.plc2.org sls= [1669, 1670, 1668] site= 1671
+4670 1 n2-1670.plc2.org sls= [1669, 1670, 1671] site= 1672
+4671 1 n2-1671.plc2.org sls= [1670, 1671, 1672] site= 1673
+4672 1 n2-1672.plc2.org sls= [1671, 1672, 1673] site= 1674
+4673 1 n2-1673.plc2.org sls= [1672, 1673, 1674] site= 1675
+4674 1 n2-1674.plc2.org sls= [1673, 1674, 1675] site= 1676
+4675 1 n2-1675.plc2.org sls= [1674, 1675, 1676] site= 1677
+4676 1 n2-1676.plc2.org sls= [1677, 1675, 1676] site= 1678
+4677 1 n2-1677.plc2.org sls= [1677, 1678, 1676] site= 1679
+4678 1 n2-1678.plc2.org sls= [1677, 1678, 1679] site= 1680
+4679 1 n2-1679.plc2.org sls= [1678, 1679, 1680] site= 1681
+4680 1 n2-1680.plc2.org sls= [1679, 1680, 1681] site= 1682
+4681 1 n2-1681.plc2.org sls= [1680, 1681, 1682] site= 1683
+4682 1 n2-1682.plc2.org sls= [1681, 1682, 1683] site= 1684
+4683 1 n2-1683.plc2.org sls= [1682, 1683, 1684] site= 1685
+4684 1 n2-1684.plc2.org sls= [1685, 1683, 1684] site= 1686
+4685 1 n2-1685.plc2.org sls= [1685, 1686, 1684] site= 1687
+4686 1 n2-1686.plc2.org sls= [1685, 1686, 1687] site= 1688
+4687 1 n2-1687.plc2.org sls= [1686, 1687, 1688] site= 1689
+4688 1 n2-1688.plc2.org sls= [1687, 1688, 1689] site= 1690
+4689 1 n2-1689.plc2.org sls= [1688, 1689, 1690] site= 1691
+4690 1 n2-1690.plc2.org sls= [1689, 1690, 1691] site= 1692
+4691 1 n2-1691.plc2.org sls= [1690, 1691, 1692] site= 1693
+4692 1 n2-1692.plc2.org sls= [1693, 1691, 1692] site= 1694
+4693 1 n2-1693.plc2.org sls= [1693, 1694, 1692] site= 1695
+4694 1 n2-1694.plc2.org sls= [1693, 1694, 1695] site= 1696
+4695 1 n2-1695.plc2.org sls= [1694, 1695, 1696] site= 1697
+4696 1 n2-1696.plc2.org sls= [1695, 1696, 1697] site= 1698
+4697 1 n2-1697.plc2.org sls= [1696, 1697, 1698] site= 1699
+4698 1 n2-1698.plc2.org sls= [1697, 1698, 1699] site= 1700
+4699 1 n2-1699.plc2.org sls= [1698, 1699, 1700] site= 1701
+4700 1 n2-1700.plc2.org sls= [1701, 1699, 1700] site= 1702
+4701 1 n2-1701.plc2.org sls= [1701, 1702, 1700] site= 1703
+4702 1 n2-1702.plc2.org sls= [1701, 1702, 1703] site= 1704
+4703 1 n2-1703.plc2.org sls= [1702, 1703, 1704] site= 1705
+4704 1 n2-1704.plc2.org sls= [1703, 1704, 1705] site= 1706
+4705 1 n2-1705.plc2.org sls= [1704, 1705, 1706] site= 1707
+4706 1 n2-1706.plc2.org sls= [1705, 1706, 1707] site= 1708
+4707 1 n2-1707.plc2.org sls= [1706, 1707, 1708] site= 1709
+4708 1 n2-1708.plc2.org sls= [1709, 1707, 1708] site= 1710
+4709 1 n2-1709.plc2.org sls= [1709, 1710, 1708] site= 1711
+4710 1 n2-1710.plc2.org sls= [1709, 1710, 1711] site= 1712
+4711 1 n2-1711.plc2.org sls= [1710, 1711, 1712] site= 1713
+4712 1 n2-1712.plc2.org sls= [1711, 1712, 1713] site= 1714
+4713 1 n2-1713.plc2.org sls= [1712, 1713, 1714] site= 1715
+4714 1 n2-1714.plc2.org sls= [1713, 1714, 1715] site= 1716
+4715 1 n2-1715.plc2.org sls= [1714, 1715, 1716] site= 1717
+4716 1 n2-1716.plc2.org sls= [1717, 1715, 1716] site= 1718
+4717 1 n2-1717.plc2.org sls= [1717, 1718, 1716] site= 1719
+4718 1 n2-1718.plc2.org sls= [1717, 1718, 1719] site= 1720
+4719 1 n2-1719.plc2.org sls= [1718, 1719, 1720] site= 1721
+4720 1 n2-1720.plc2.org sls= [1719, 1720, 1721] site= 1722
+4721 1 n2-1721.plc2.org sls= [1720, 1721, 1722] site= 1723
+4722 1 n2-1722.plc2.org sls= [1721, 1722, 1723] site= 1724
+4723 1 n2-1723.plc2.org sls= [1722, 1723, 1724] site= 1725
+4724 1 n2-1724.plc2.org sls= [1725, 1723, 1724] site= 1726
+4725 1 n2-1725.plc2.org sls= [1725, 1726, 1724] site= 1727
+4726 1 n2-1726.plc2.org sls= [1725, 1726, 1727] site= 1728
+4727 1 n2-1727.plc2.org sls= [1726, 1727, 1728] site= 1729
+4728 1 n2-1728.plc2.org sls= [1727, 1728, 1729] site= 1730
+4729 1 n2-1729.plc2.org sls= [1728, 1729, 1730] site= 1731
+4730 1 n2-1730.plc2.org sls= [1729, 1730, 1731] site= 1732
+4731 1 n2-1731.plc2.org sls= [1730, 1731, 1732] site= 1733
+4732 1 n2-1732.plc2.org sls= [1733, 1731, 1732] site= 1734
+4733 1 n2-1733.plc2.org sls= [1733, 1734, 1732] site= 1735
+4734 1 n2-1734.plc2.org sls= [1733, 1734, 1735] site= 1736
+4735 1 n2-1735.plc2.org sls= [1734, 1735, 1736] site= 1737
+4736 1 n2-1736.plc2.org sls= [1735, 1736, 1737] site= 1738
+4737 1 n2-1737.plc2.org sls= [1736, 1737, 1738] site= 1739
+4738 1 n2-1738.plc2.org sls= [1737, 1738, 1739] site= 1740
+4739 1 n2-1739.plc2.org sls= [1738, 1739, 1740] site= 1741
+4740 1 n2-1740.plc2.org sls= [1741, 1739, 1740] site= 1742
+4741 1 n2-1741.plc2.org sls= [1741, 1742, 1740] site= 1743
+4742 1 n2-1742.plc2.org sls= [1741, 1742, 1743] site= 1744
+4743 1 n2-1743.plc2.org sls= [1742, 1743, 1744] site= 1745
+4744 1 n2-1744.plc2.org sls= [1743, 1744, 1745] site= 1746
+4745 1 n2-1745.plc2.org sls= [1744, 1745, 1746] site= 1747
+4746 1 n2-1746.plc2.org sls= [1745, 1746, 1747] site= 1748
+4747 1 n2-1747.plc2.org sls= [1746, 1747, 1748] site= 1749
+4748 1 n2-1748.plc2.org sls= [1749, 1747, 1748] site= 1750
+4749 1 n2-1749.plc2.org sls= [1749, 1750, 1748] site= 1751
+4750 1 n2-1750.plc2.org sls= [1749, 1750, 1751] site= 1752
+4751 1 n2-1751.plc2.org sls= [1750, 1751, 1752] site= 1753
+4752 1 n2-1752.plc2.org sls= [1751, 1752, 1753] site= 1754
+4753 1 n2-1753.plc2.org sls= [1752, 1753, 1754] site= 1755
+4754 1 n2-1754.plc2.org sls= [1753, 1754, 1755] site= 1756
+4755 1 n2-1755.plc2.org sls= [1754, 1755, 1756] site= 1757
+4756 1 n2-1756.plc2.org sls= [1757, 1755, 1756] site= 1758
+4757 1 n2-1757.plc2.org sls= [1757, 1758, 1756] site= 1759
+4758 1 n2-1758.plc2.org sls= [1757, 1758, 1759] site= 1760
+4759 1 n2-1759.plc2.org sls= [1758, 1759, 1760] site= 1761
+4760 1 n2-1760.plc2.org sls= [1759, 1760, 1761] site= 1762
+4761 1 n2-1761.plc2.org sls= [1760, 1761, 1762] site= 1763
+4762 1 n2-1762.plc2.org sls= [1761, 1762, 1763] site= 1764
+4763 1 n2-1763.plc2.org sls= [1762, 1763, 1764] site= 1765
+4764 1 n2-1764.plc2.org sls= [1765, 1763, 1764] site= 1766
+4765 1 n2-1765.plc2.org sls= [1765, 1766, 1764] site= 1767
+4766 1 n2-1766.plc2.org sls= [1765, 1766, 1767] site= 1768
+4767 1 n2-1767.plc2.org sls= [1766, 1767, 1768] site= 1769
+4768 1 n2-1768.plc2.org sls= [1767, 1768, 1769] site= 1770
+4769 1 n2-1769.plc2.org sls= [1768, 1769, 1770] site= 1771
+4770 1 n2-1770.plc2.org sls= [1769, 1770, 1771] site= 1772
+4771 1 n2-1771.plc2.org sls= [1770, 1771, 1772] site= 1773
+4772 1 n2-1772.plc2.org sls= [1773, 1771, 1772] site= 1774
+4773 1 n2-1773.plc2.org sls= [1773, 1774, 1772] site= 1775
+4774 1 n2-1774.plc2.org sls= [1773, 1774, 1775] site= 1776
+4775 1 n2-1775.plc2.org sls= [1774, 1775, 1776] site= 1777
+4776 1 n2-1776.plc2.org sls= [1775, 1776, 1777] site= 1778
+4777 1 n2-1777.plc2.org sls= [1776, 1777, 1778] site= 1779
+4778 1 n2-1778.plc2.org sls= [1777, 1778, 1779] site= 1780
+4779 1 n2-1779.plc2.org sls= [1778, 1779, 1780] site= 1781
+4780 1 n2-1780.plc2.org sls= [1781, 1779, 1780] site= 1782
+4781 1 n2-1781.plc2.org sls= [1781, 1782, 1780] site= 1783
+4782 1 n2-1782.plc2.org sls= [1781, 1782, 1783] site= 1784
+4783 1 n2-1783.plc2.org sls= [1782, 1783, 1784] site= 1785
+4784 1 n2-1784.plc2.org sls= [1783, 1784, 1785] site= 1786
+4785 1 n2-1785.plc2.org sls= [1784, 1785, 1786] site= 1787
+4786 1 n2-1786.plc2.org sls= [1785, 1786, 1787] site= 1788
+4787 1 n2-1787.plc2.org sls= [1786, 1787, 1788] site= 1789
+4788 1 n2-1788.plc2.org sls= [1789, 1787, 1788] site= 1790
+4789 1 n2-1789.plc2.org sls= [1789, 1790, 1788] site= 1791
+4790 1 n2-1790.plc2.org sls= [1789, 1790, 1791] site= 1792
+4791 1 n2-1791.plc2.org sls= [1790, 1791, 1792] site= 1793
+4792 1 n2-1792.plc2.org sls= [1791, 1792, 1793] site= 1794
+4793 1 n2-1793.plc2.org sls= [1792, 1793, 1794] site= 1795
+4794 1 n2-1794.plc2.org sls= [1793, 1794, 1795] site= 1796
+4795 1 n2-1795.plc2.org sls= [1794, 1795, 1796] site= 1797
+4796 1 n2-1796.plc2.org sls= [1797, 1795, 1796] site= 1798
+4797 1 n2-1797.plc2.org sls= [1797, 1798, 1796] site= 1799
+4798 1 n2-1798.plc2.org sls= [1797, 1798, 1799] site= 1800
+4799 1 n2-1799.plc2.org sls= [1798, 1799, 1800] site= 1801
+4800 1 n2-1800.plc2.org sls= [1799, 1800, 1801] site= 1802
+4801 1 n2-1801.plc2.org sls= [1800, 1801, 1802] site= 1803
+4802 1 n2-1802.plc2.org sls= [1801, 1802, 1803] site= 1804
+4803 1 n2-1803.plc2.org sls= [1802, 1803, 1804] site= 1805
+4804 1 n2-1804.plc2.org sls= [1805, 1803, 1804] site= 1806
+4805 1 n2-1805.plc2.org sls= [1805, 1806, 1804] site= 1807
+4806 1 n2-1806.plc2.org sls= [1805, 1806, 1807] site= 1808
+4807 1 n2-1807.plc2.org sls= [1806, 1807, 1808] site= 1809
+4808 1 n2-1808.plc2.org sls= [1807, 1808, 1809] site= 1810
+4809 1 n2-1809.plc2.org sls= [1808, 1809, 1810] site= 1811
+4810 1 n2-1810.plc2.org sls= [1809, 1810, 1811] site= 1812
+4811 1 n2-1811.plc2.org sls= [1810, 1811, 1812] site= 1813
+4812 1 n2-1812.plc2.org sls= [1813, 1811, 1812] site= 1814
+4813 1 n2-1813.plc2.org sls= [1813, 1814, 1812] site= 1815
+4814 1 n2-1814.plc2.org sls= [1813, 1814, 1815] site= 1816
+4815 1 n2-1815.plc2.org sls= [1814, 1815, 1816] site= 1817
+4816 1 n2-1816.plc2.org sls= [1815, 1816, 1817] site= 1818
+4817 1 n2-1817.plc2.org sls= [1816, 1817, 1818] site= 1819
+4818 1 n2-1818.plc2.org sls= [1817, 1818, 1819] site= 1820
+4819 1 n2-1819.plc2.org sls= [1818, 1819, 1820] site= 1821
+4820 1 n2-1820.plc2.org sls= [1821, 1819, 1820] site= 1822
+4821 1 n2-1821.plc2.org sls= [1821, 1822, 1820] site= 1823
+4822 1 n2-1822.plc2.org sls= [1821, 1822, 1823] site= 1824
+4823 1 n2-1823.plc2.org sls= [1822, 1823, 1824] site= 1825
+4824 1 n2-1824.plc2.org sls= [1823, 1824, 1825] site= 1826
+4825 1 n2-1825.plc2.org sls= [1824, 1825, 1826] site= 1827
+4826 1 n2-1826.plc2.org sls= [1825, 1826, 1827] site= 1828
+4827 1 n2-1827.plc2.org sls= [1826, 1827, 1828] site= 1829
+4828 1 n2-1828.plc2.org sls= [1829, 1827, 1828] site= 1830
+4829 1 n2-1829.plc2.org sls= [1829, 1830, 1828] site= 1831
+4830 1 n2-1830.plc2.org sls= [1829, 1830, 1831] site= 1832
+4831 1 n2-1831.plc2.org sls= [1830, 1831, 1832] site= 1833
+4832 1 n2-1832.plc2.org sls= [1831, 1832, 1833] site= 1834
+4833 1 n2-1833.plc2.org sls= [1832, 1833, 1834] site= 1835
+4834 1 n2-1834.plc2.org sls= [1833, 1834, 1835] site= 1836
+4835 1 n2-1835.plc2.org sls= [1834, 1835, 1836] site= 1837
+4836 1 n2-1836.plc2.org sls= [1837, 1835, 1836] site= 1838
+4837 1 n2-1837.plc2.org sls= [1837, 1838, 1836] site= 1839
+4838 1 n2-1838.plc2.org sls= [1837, 1838, 1839] site= 1840
+4839 1 n2-1839.plc2.org sls= [1838, 1839, 1840] site= 1841
+4840 1 n2-1840.plc2.org sls= [1839, 1840, 1841] site= 1842
+4841 1 n2-1841.plc2.org sls= [1840, 1841, 1842] site= 1843
+4842 1 n2-1842.plc2.org sls= [1841, 1842, 1843] site= 1844
+4843 1 n2-1843.plc2.org sls= [1842, 1843, 1844] site= 1845
+4844 1 n2-1844.plc2.org sls= [1845, 1843, 1844] site= 1846
+4845 1 n2-1845.plc2.org sls= [1845, 1846, 1844] site= 1847
+4846 1 n2-1846.plc2.org sls= [1845, 1846, 1847] site= 1848
+4847 1 n2-1847.plc2.org sls= [1846, 1847, 1848] site= 1849
+4848 1 n2-1848.plc2.org sls= [1847, 1848, 1849] site= 1850
+4849 1 n2-1849.plc2.org sls= [1848, 1849, 1850] site= 1851
+4850 1 n2-1850.plc2.org sls= [1849, 1850, 1851] site= 1852
+4851 1 n2-1851.plc2.org sls= [1850, 1851, 1852] site= 1853
+4852 1 n2-1852.plc2.org sls= [1853, 1851, 1852] site= 1854
+4853 1 n2-1853.plc2.org sls= [1853, 1854, 1852] site= 1855
+4854 1 n2-1854.plc2.org sls= [1853, 1854, 1855] site= 1856
+4855 1 n2-1855.plc2.org sls= [1854, 1855, 1856] site= 1857
+4856 1 n2-1856.plc2.org sls= [1855, 1856, 1857] site= 1858
+4857 1 n2-1857.plc2.org sls= [1856, 1857, 1858] site= 1859
+4858 1 n2-1858.plc2.org sls= [1857, 1858, 1859] site= 1860
+4859 1 n2-1859.plc2.org sls= [1858, 1859, 1860] site= 1861
+4860 1 n2-1860.plc2.org sls= [1861, 1859, 1860] site= 1862
+4861 1 n2-1861.plc2.org sls= [1861, 1862, 1860] site= 1863
+4862 1 n2-1862.plc2.org sls= [1861, 1862, 1863] site= 1864
+4863 1 n2-1863.plc2.org sls= [1862, 1863, 1864] site= 1865
+4864 1 n2-1864.plc2.org sls= [1863, 1864, 1865] site= 1866
+4865 1 n2-1865.plc2.org sls= [1864, 1865, 1866] site= 1867
+4866 1 n2-1866.plc2.org sls= [1865, 1866, 1867] site= 1868
+4867 1 n2-1867.plc2.org sls= [1866, 1867, 1868] site= 1869
+4868 1 n2-1868.plc2.org sls= [1869, 1867, 1868] site= 1870
+4869 1 n2-1869.plc2.org sls= [1869, 1870, 1868] site= 1871
+4870 1 n2-1870.plc2.org sls= [1869, 1870, 1871] site= 1872
+4871 1 n2-1871.plc2.org sls= [1870, 1871, 1872] site= 1873
+4872 1 n2-1872.plc2.org sls= [1871, 1872, 1873] site= 1874
+4873 1 n2-1873.plc2.org sls= [1872, 1873, 1874] site= 1875
+4874 1 n2-1874.plc2.org sls= [1873, 1874, 1875] site= 1876
+4875 1 n2-1875.plc2.org sls= [1874, 1875, 1876] site= 1877
+4876 1 n2-1876.plc2.org sls= [1877, 1875, 1876] site= 1878
+4877 1 n2-1877.plc2.org sls= [1877, 1878, 1876] site= 1879
+4878 1 n2-1878.plc2.org sls= [1877, 1878, 1879] site= 1880
+4879 1 n2-1879.plc2.org sls= [1878, 1879, 1880] site= 1881
+4880 1 n2-1880.plc2.org sls= [1879, 1880, 1881] site= 1882
+4881 1 n2-1881.plc2.org sls= [1880, 1881, 1882] site= 1883
+4882 1 n2-1882.plc2.org sls= [1881, 1882, 1883] site= 1884
+4883 1 n2-1883.plc2.org sls= [1882, 1883, 1884] site= 1885
+4884 1 n2-1884.plc2.org sls= [1885, 1883, 1884] site= 1886
+4885 1 n2-1885.plc2.org sls= [1885, 1886, 1884] site= 1887
+4886 1 n2-1886.plc2.org sls= [1885, 1886, 1887] site= 1888
+4887 1 n2-1887.plc2.org sls= [1886, 1887, 1888] site= 1889
+4888 1 n2-1888.plc2.org sls= [1887, 1888, 1889] site= 1890
+4889 1 n2-1889.plc2.org sls= [1888, 1889, 1890] site= 1891
+4890 1 n2-1890.plc2.org sls= [1889, 1890, 1891] site= 1892
+4891 1 n2-1891.plc2.org sls= [1890, 1891, 1892] site= 1893
+4892 1 n2-1892.plc2.org sls= [1893, 1891, 1892] site= 1894
+4893 1 n2-1893.plc2.org sls= [1893, 1894, 1892] site= 1895
+4894 1 n2-1894.plc2.org sls= [1893, 1894, 1895] site= 1896
+4895 1 n2-1895.plc2.org sls= [1894, 1895, 1896] site= 1897
+4896 1 n2-1896.plc2.org sls= [1895, 1896, 1897] site= 1898
+4897 1 n2-1897.plc2.org sls= [1896, 1897, 1898] site= 1899
+4898 1 n2-1898.plc2.org sls= [1897, 1898, 1899] site= 1900
+4899 1 n2-1899.plc2.org sls= [1898, 1899, 1900] site= 1901
+4900 1 n2-1900.plc2.org sls= [1901, 1899, 1900] site= 1902
+4901 1 n2-1901.plc2.org sls= [1901, 1902, 1900] site= 1903
+4902 1 n2-1902.plc2.org sls= [1901, 1902, 1903] site= 1904
+4903 1 n2-1903.plc2.org sls= [1902, 1903, 1904] site= 1905
+4904 1 n2-1904.plc2.org sls= [1903, 1904, 1905] site= 1906
+4905 1 n2-1905.plc2.org sls= [1904, 1905, 1906] site= 1907
+4906 1 n2-1906.plc2.org sls= [1905, 1906, 1907] site= 1908
+4907 1 n2-1907.plc2.org sls= [1906, 1907, 1908] site= 1909
+4908 1 n2-1908.plc2.org sls= [1909, 1907, 1908] site= 1910
+4909 1 n2-1909.plc2.org sls= [1909, 1910, 1908] site= 1911
+4910 1 n2-1910.plc2.org sls= [1909, 1910, 1911] site= 1912
+4911 1 n2-1911.plc2.org sls= [1910, 1911, 1912] site= 1913
+4912 1 n2-1912.plc2.org sls= [1911, 1912, 1913] site= 1914
+4913 1 n2-1913.plc2.org sls= [1912, 1913, 1914] site= 1915
+4914 1 n2-1914.plc2.org sls= [1913, 1914, 1915] site= 1916
+4915 1 n2-1915.plc2.org sls= [1914, 1915, 1916] site= 1917
+4916 1 n2-1916.plc2.org sls= [1917, 1915, 1916] site= 1918
+4917 1 n2-1917.plc2.org sls= [1917, 1918, 1916] site= 1919
+4918 1 n2-1918.plc2.org sls= [1917, 1918, 1919] site= 1920
+4919 1 n2-1919.plc2.org sls= [1918, 1919, 1920] site= 1921
+4920 1 n2-1920.plc2.org sls= [1919, 1920, 1921] site= 1922
+4921 1 n2-1921.plc2.org sls= [1920, 1921, 1922] site= 1923
+4922 1 n2-1922.plc2.org sls= [1921, 1922, 1923] site= 1924
+4923 1 n2-1923.plc2.org sls= [1922, 1923, 1924] site= 1925
+4924 1 n2-1924.plc2.org sls= [1925, 1923, 1924] site= 1926
+4925 1 n2-1925.plc2.org sls= [1925, 1926, 1924] site= 1927
+4926 1 n2-1926.plc2.org sls= [1925, 1926, 1927] site= 1928
+4927 1 n2-1927.plc2.org sls= [1926, 1927, 1928] site= 1929
+4928 1 n2-1928.plc2.org sls= [1927, 1928, 1929] site= 1930
+4929 1 n2-1929.plc2.org sls= [1928, 1929, 1930] site= 1931
+4930 1 n2-1930.plc2.org sls= [1929, 1930, 1931] site= 1932
+4931 1 n2-1931.plc2.org sls= [1930, 1931, 1932] site= 1933
+4932 1 n2-1932.plc2.org sls= [1933, 1931, 1932] site= 1934
+4933 1 n2-1933.plc2.org sls= [1933, 1934, 1932] site= 1935
+4934 1 n2-1934.plc2.org sls= [1933, 1934, 1935] site= 1936
+4935 1 n2-1935.plc2.org sls= [1934, 1935, 1936] site= 1937
+4936 1 n2-1936.plc2.org sls= [1935, 1936, 1937] site= 1938
+4937 1 n2-1937.plc2.org sls= [1936, 1937, 1938] site= 1939
+4938 1 n2-1938.plc2.org sls= [1937, 1938, 1939] site= 1940
+4939 1 n2-1939.plc2.org sls= [1938, 1939, 1940] site= 1941
+4940 1 n2-1940.plc2.org sls= [1941, 1939, 1940] site= 1942
+4941 1 n2-1941.plc2.org sls= [1941, 1942, 1940] site= 1943
+4942 1 n2-1942.plc2.org sls= [1941, 1942, 1943] site= 1944
+4943 1 n2-1943.plc2.org sls= [1942, 1943, 1944] site= 1945
+4944 1 n2-1944.plc2.org sls= [1943, 1944, 1945] site= 1946
+4945 1 n2-1945.plc2.org sls= [1944, 1945, 1946] site= 1947
+4946 1 n2-1946.plc2.org sls= [1945, 1946, 1947] site= 1948
+4947 1 n2-1947.plc2.org sls= [1946, 1947, 1948] site= 1949
+4948 1 n2-1948.plc2.org sls= [1949, 1947, 1948] site= 1950
+4949 1 n2-1949.plc2.org sls= [1949, 1950, 1948] site= 1951
+4950 1 n2-1950.plc2.org sls= [1949, 1950, 1951] site= 1952
+4951 1 n2-1951.plc2.org sls= [1950, 1951, 1952] site= 1953
+4952 1 n2-1952.plc2.org sls= [1951, 1952, 1953] site= 1954
+4953 1 n2-1953.plc2.org sls= [1952, 1953, 1954] site= 1955
+4954 1 n2-1954.plc2.org sls= [1953, 1954, 1955] site= 1956
+4955 1 n2-1955.plc2.org sls= [1954, 1955, 1956] site= 1957
+4956 1 n2-1956.plc2.org sls= [1957, 1955, 1956] site= 1958
+4957 1 n2-1957.plc2.org sls= [1957, 1958, 1956] site= 1959
+4958 1 n2-1958.plc2.org sls= [1957, 1958, 1959] site= 1960
+4959 1 n2-1959.plc2.org sls= [1958, 1959, 1960] site= 1961
+4960 1 n2-1960.plc2.org sls= [1959, 1960, 1961] site= 1962
+4961 1 n2-1961.plc2.org sls= [1960, 1961, 1962] site= 1963
+4962 1 n2-1962.plc2.org sls= [1961, 1962, 1963] site= 1964
+4963 1 n2-1963.plc2.org sls= [1962, 1963, 1964] site= 1965
+4964 1 n2-1964.plc2.org sls= [1965, 1963, 1964] site= 1966
+4965 1 n2-1965.plc2.org sls= [1965, 1966, 1964] site= 1967
+4966 1 n2-1966.plc2.org sls= [1965, 1966, 1967] site= 1968
+4967 1 n2-1967.plc2.org sls= [1966, 1967, 1968] site= 1969
+4968 1 n2-1968.plc2.org sls= [1967, 1968, 1969] site= 1970
+4969 1 n2-1969.plc2.org sls= [1968, 1969, 1970] site= 1971
+4970 1 n2-1970.plc2.org sls= [1969, 1970, 1971] site= 1972
+4971 1 n2-1971.plc2.org sls= [1970, 1971, 1972] site= 1973
+4972 1 n2-1972.plc2.org sls= [1973, 1971, 1972] site= 1974
+4973 1 n2-1973.plc2.org sls= [1973, 1974, 1972] site= 1975
+4974 1 n2-1974.plc2.org sls= [1973, 1974, 1975] site= 1976
+4975 1 n2-1975.plc2.org sls= [1974, 1975, 1976] site= 1977
+4976 1 n2-1976.plc2.org sls= [1975, 1976, 1977] site= 1978
+4977 1 n2-1977.plc2.org sls= [1976, 1977, 1978] site= 1979
+4978 1 n2-1978.plc2.org sls= [1977, 1978, 1979] site= 1980
+4979 1 n2-1979.plc2.org sls= [1978, 1979, 1980] site= 1981
+4980 1 n2-1980.plc2.org sls= [1981, 1979, 1980] site= 1982
+4981 1 n2-1981.plc2.org sls= [1981, 1982, 1980] site= 1983
+4982 1 n2-1982.plc2.org sls= [1981, 1982, 1983] site= 1984
+4983 1 n2-1983.plc2.org sls= [1982, 1983, 1984] site= 1985
+4984 1 n2-1984.plc2.org sls= [1983, 1984, 1985] site= 1986
+4985 1 n2-1985.plc2.org sls= [1984, 1985, 1986] site= 1987
+4986 1 n2-1986.plc2.org sls= [1985, 1986, 1987] site= 1988
+4987 1 n2-1987.plc2.org sls= [1986, 1987, 1988] site= 1989
+4988 1 n2-1988.plc2.org sls= [1989, 1987, 1988] site= 1990
+4989 1 n2-1989.plc2.org sls= [1989, 1990, 1988] site= 1991
+4990 1 n2-1990.plc2.org sls= [1989, 1990, 1991] site= 1992
+4991 1 n2-1991.plc2.org sls= [1990, 1991, 1992] site= 1993
+4992 1 n2-1992.plc2.org sls= [1991, 1992, 1993] site= 1994
+4993 1 n2-1993.plc2.org sls= [1992, 1993, 1994] site= 1995
+4994 1 n2-1994.plc2.org sls= [1993, 1994, 1995] site= 1996
+4995 1 n2-1995.plc2.org sls= [1994, 1995, 1996] site= 1997
+4996 1 n2-1996.plc2.org sls= [1997, 1995, 1996] site= 1998
+4997 1 n2-1997.plc2.org sls= [1997, 1998, 1996] site= 1999
+4998 1 n2-1998.plc2.org sls= [1997, 1998, 1999] site= 2000
+4999 1 n2-1999.plc2.org sls= [1998, 1999, 2000] site= 2001
+5000 1 n2-2000.plc2.org sls= [1999, 2000, 2001] site= 2002
+5001 1 n2-2001.plc2.org sls= [2000, 2001] site= 1003
+5002 1 n2-2002.plc2.org sls= [2001] site= 1004
+5003 1 n2-2003.plc2.org sls= [] site= 1005
+5004 1 n2-2004.plc2.org sls= [] site= 1006
+5005 1 n2-2005.plc2.org sls= [] site= 1007
+5006 1 n2-2006.plc2.org sls= [] site= 1008
+5007 1 n2-2007.plc2.org sls= [] site= 1009
+5008 1 n2-2008.plc2.org sls= [] site= 1010
+5009 1 n2-2009.plc2.org sls= [] site= 1011
+5010 1 n2-2010.plc2.org sls= [] site= 1012
+5011 1 n2-2011.plc2.org sls= [] site= 1013
+5012 1 n2-2012.plc2.org sls= [] site= 1014
+5013 1 n2-2013.plc2.org sls= [] site= 1015
+5014 1 n2-2014.plc2.org sls= [] site= 1016
+5015 1 n2-2015.plc2.org sls= [] site= 1017
+5016 1 n2-2016.plc2.org sls= [] site= 1018
+5017 1 n2-2017.plc2.org sls= [] site= 1019
+5018 1 n2-2018.plc2.org sls= [] site= 1020
+5019 1 n2-2019.plc2.org sls= [] site= 1021
+5020 1 n2-2020.plc2.org sls= [] site= 1022
+5021 1 n2-2021.plc2.org sls= [] site= 1023
+5022 1 n2-2022.plc2.org sls= [] site= 1024
+5023 1 n2-2023.plc2.org sls= [] site= 1025
+5024 1 n2-2024.plc2.org sls= [] site= 1026
+5025 1 n2-2025.plc2.org sls= [] site= 1027
+5026 1 n2-2026.plc2.org sls= [] site= 1028
+5027 1 n2-2027.plc2.org sls= [] site= 1029
+5028 1 n2-2028.plc2.org sls= [] site= 1030
+5029 1 n2-2029.plc2.org sls= [] site= 1031
+5030 1 n2-2030.plc2.org sls= [] site= 1032
+5031 1 n2-2031.plc2.org sls= [] site= 1033
+5032 1 n2-2032.plc2.org sls= [] site= 1034
+5033 1 n2-2033.plc2.org sls= [] site= 1035
+5034 1 n2-2034.plc2.org sls= [] site= 1036
+5035 1 n2-2035.plc2.org sls= [] site= 1037
+5036 1 n2-2036.plc2.org sls= [] site= 1038
+5037 1 n2-2037.plc2.org sls= [] site= 1039
+5038 1 n2-2038.plc2.org sls= [] site= 1040
+5039 1 n2-2039.plc2.org sls= [] site= 1041
+5040 1 n2-2040.plc2.org sls= [] site= 1042
+5041 1 n2-2041.plc2.org sls= [] site= 1043
+5042 1 n2-2042.plc2.org sls= [] site= 1044
+5043 1 n2-2043.plc2.org sls= [] site= 1045
+5044 1 n2-2044.plc2.org sls= [] site= 1046
+5045 1 n2-2045.plc2.org sls= [] site= 1047
+5046 1 n2-2046.plc2.org sls= [] site= 1048
+5047 1 n2-2047.plc2.org sls= [] site= 1049
+5048 1 n2-2048.plc2.org sls= [] site= 1050
+5049 1 n2-2049.plc2.org sls= [] site= 1051
+5050 1 n2-2050.plc2.org sls= [] site= 1052
+5051 1 n2-2051.plc2.org sls= [] site= 1053
+5052 1 n2-2052.plc2.org sls= [] site= 1054
+5053 1 n2-2053.plc2.org sls= [] site= 1055
+5054 1 n2-2054.plc2.org sls= [] site= 1056
+5055 1 n2-2055.plc2.org sls= [] site= 1057
+5056 1 n2-2056.plc2.org sls= [] site= 1058
+5057 1 n2-2057.plc2.org sls= [] site= 1059
+5058 1 n2-2058.plc2.org sls= [] site= 1060
+5059 1 n2-2059.plc2.org sls= [] site= 1061
+5060 1 n2-2060.plc2.org sls= [] site= 1062
+5061 1 n2-2061.plc2.org sls= [] site= 1063
+5062 1 n2-2062.plc2.org sls= [] site= 1064
+5063 1 n2-2063.plc2.org sls= [] site= 1065
+5064 1 n2-2064.plc2.org sls= [] site= 1066
+5065 1 n2-2065.plc2.org sls= [] site= 1067
+5066 1 n2-2066.plc2.org sls= [] site= 1068
+5067 1 n2-2067.plc2.org sls= [] site= 1069
+5068 1 n2-2068.plc2.org sls= [] site= 1070
+5069 1 n2-2069.plc2.org sls= [] site= 1071
+5070 1 n2-2070.plc2.org sls= [] site= 1072
+5071 1 n2-2071.plc2.org sls= [] site= 1073
+5072 1 n2-2072.plc2.org sls= [] site= 1074
+5073 1 n2-2073.plc2.org sls= [] site= 1075
+5074 1 n2-2074.plc2.org sls= [] site= 1076
+5075 1 n2-2075.plc2.org sls= [] site= 1077
+5076 1 n2-2076.plc2.org sls= [] site= 1078
+5077 1 n2-2077.plc2.org sls= [] site= 1079
+5078 1 n2-2078.plc2.org sls= [] site= 1080
+5079 1 n2-2079.plc2.org sls= [] site= 1081
+5080 1 n2-2080.plc2.org sls= [] site= 1082
+5081 1 n2-2081.plc2.org sls= [] site= 1083
+5082 1 n2-2082.plc2.org sls= [] site= 1084
+5083 1 n2-2083.plc2.org sls= [] site= 1085
+5084 1 n2-2084.plc2.org sls= [] site= 1086
+5085 1 n2-2085.plc2.org sls= [] site= 1087
+5086 1 n2-2086.plc2.org sls= [] site= 1088
+5087 1 n2-2087.plc2.org sls= [] site= 1089
+5088 1 n2-2088.plc2.org sls= [] site= 1090
+5089 1 n2-2089.plc2.org sls= [] site= 1091
+5090 1 n2-2090.plc2.org sls= [] site= 1092
+5091 1 n2-2091.plc2.org sls= [] site= 1093
+5092 1 n2-2092.plc2.org sls= [] site= 1094
+5093 1 n2-2093.plc2.org sls= [] site= 1095
+5094 1 n2-2094.plc2.org sls= [] site= 1096
+5095 1 n2-2095.plc2.org sls= [] site= 1097
+5096 1 n2-2096.plc2.org sls= [] site= 1098
+5097 1 n2-2097.plc2.org sls= [] site= 1099
+5098 1 n2-2098.plc2.org sls= [] site= 1100
+5099 1 n2-2099.plc2.org sls= [] site= 1101
+5100 1 n2-2100.plc2.org sls= [] site= 1102
+5101 1 n2-2101.plc2.org sls= [] site= 1103
+5102 1 n2-2102.plc2.org sls= [] site= 1104
+5103 1 n2-2103.plc2.org sls= [] site= 1105
+5104 1 n2-2104.plc2.org sls= [] site= 1106
+5105 1 n2-2105.plc2.org sls= [] site= 1107
+5106 1 n2-2106.plc2.org sls= [] site= 1108
+5107 1 n2-2107.plc2.org sls= [] site= 1109
+5108 1 n2-2108.plc2.org sls= [] site= 1110
+5109 1 n2-2109.plc2.org sls= [] site= 1111
+5110 1 n2-2110.plc2.org sls= [] site= 1112
+5111 1 n2-2111.plc2.org sls= [] site= 1113
+5112 1 n2-2112.plc2.org sls= [] site= 1114
+5113 1 n2-2113.plc2.org sls= [] site= 1115
+5114 1 n2-2114.plc2.org sls= [] site= 1116
+5115 1 n2-2115.plc2.org sls= [] site= 1117
+5116 1 n2-2116.plc2.org sls= [] site= 1118
+5117 1 n2-2117.plc2.org sls= [] site= 1119
+5118 1 n2-2118.plc2.org sls= [] site= 1120
+5119 1 n2-2119.plc2.org sls= [] site= 1121
+5120 1 n2-2120.plc2.org sls= [] site= 1122
+5121 1 n2-2121.plc2.org sls= [] site= 1123
+5122 1 n2-2122.plc2.org sls= [] site= 1124
+5123 1 n2-2123.plc2.org sls= [] site= 1125
+5124 1 n2-2124.plc2.org sls= [] site= 1126
+5125 1 n2-2125.plc2.org sls= [] site= 1127
+5126 1 n2-2126.plc2.org sls= [] site= 1128
+5127 1 n2-2127.plc2.org sls= [] site= 1129
+5128 1 n2-2128.plc2.org sls= [] site= 1130
+5129 1 n2-2129.plc2.org sls= [] site= 1131
+5130 1 n2-2130.plc2.org sls= [] site= 1132
+5131 1 n2-2131.plc2.org sls= [] site= 1133
+5132 1 n2-2132.plc2.org sls= [] site= 1134
+5133 1 n2-2133.plc2.org sls= [] site= 1135
+5134 1 n2-2134.plc2.org sls= [] site= 1136
+5135 1 n2-2135.plc2.org sls= [] site= 1137
+5136 1 n2-2136.plc2.org sls= [] site= 1138
+5137 1 n2-2137.plc2.org sls= [] site= 1139
+5138 1 n2-2138.plc2.org sls= [] site= 1140
+5139 1 n2-2139.plc2.org sls= [] site= 1141
+5140 1 n2-2140.plc2.org sls= [] site= 1142
+5141 1 n2-2141.plc2.org sls= [] site= 1143
+5142 1 n2-2142.plc2.org sls= [] site= 1144
+5143 1 n2-2143.plc2.org sls= [] site= 1145
+5144 1 n2-2144.plc2.org sls= [] site= 1146
+5145 1 n2-2145.plc2.org sls= [] site= 1147
+5146 1 n2-2146.plc2.org sls= [] site= 1148
+5147 1 n2-2147.plc2.org sls= [] site= 1149
+5148 1 n2-2148.plc2.org sls= [] site= 1150
+5149 1 n2-2149.plc2.org sls= [] site= 1151
+5150 1 n2-2150.plc2.org sls= [] site= 1152
+5151 1 n2-2151.plc2.org sls= [] site= 1153
+5152 1 n2-2152.plc2.org sls= [] site= 1154
+5153 1 n2-2153.plc2.org sls= [] site= 1155
+5154 1 n2-2154.plc2.org sls= [] site= 1156
+5155 1 n2-2155.plc2.org sls= [] site= 1157
+5156 1 n2-2156.plc2.org sls= [] site= 1158
+5157 1 n2-2157.plc2.org sls= [] site= 1159
+5158 1 n2-2158.plc2.org sls= [] site= 1160
+5159 1 n2-2159.plc2.org sls= [] site= 1161
+5160 1 n2-2160.plc2.org sls= [] site= 1162
+5161 1 n2-2161.plc2.org sls= [] site= 1163
+5162 1 n2-2162.plc2.org sls= [] site= 1164
+5163 1 n2-2163.plc2.org sls= [] site= 1165
+5164 1 n2-2164.plc2.org sls= [] site= 1166
+5165 1 n2-2165.plc2.org sls= [] site= 1167
+5166 1 n2-2166.plc2.org sls= [] site= 1168
+5167 1 n2-2167.plc2.org sls= [] site= 1169
+5168 1 n2-2168.plc2.org sls= [] site= 1170
+5169 1 n2-2169.plc2.org sls= [] site= 1171
+5170 1 n2-2170.plc2.org sls= [] site= 1172
+5171 1 n2-2171.plc2.org sls= [] site= 1173
+5172 1 n2-2172.plc2.org sls= [] site= 1174
+5173 1 n2-2173.plc2.org sls= [] site= 1175
+5174 1 n2-2174.plc2.org sls= [] site= 1176
+5175 1 n2-2175.plc2.org sls= [] site= 1177
+5176 1 n2-2176.plc2.org sls= [] site= 1178
+5177 1 n2-2177.plc2.org sls= [] site= 1179
+5178 1 n2-2178.plc2.org sls= [] site= 1180
+5179 1 n2-2179.plc2.org sls= [] site= 1181
+5180 1 n2-2180.plc2.org sls= [] site= 1182
+5181 1 n2-2181.plc2.org sls= [] site= 1183
+5182 1 n2-2182.plc2.org sls= [] site= 1184
+5183 1 n2-2183.plc2.org sls= [] site= 1185
+5184 1 n2-2184.plc2.org sls= [] site= 1186
+5185 1 n2-2185.plc2.org sls= [] site= 1187
+5186 1 n2-2186.plc2.org sls= [] site= 1188
+5187 1 n2-2187.plc2.org sls= [] site= 1189
+5188 1 n2-2188.plc2.org sls= [] site= 1190
+5189 1 n2-2189.plc2.org sls= [] site= 1191
+5190 1 n2-2190.plc2.org sls= [] site= 1192
+5191 1 n2-2191.plc2.org sls= [] site= 1193
+5192 1 n2-2192.plc2.org sls= [] site= 1194
+5193 1 n2-2193.plc2.org sls= [] site= 1195
+5194 1 n2-2194.plc2.org sls= [] site= 1196
+5195 1 n2-2195.plc2.org sls= [] site= 1197
+5196 1 n2-2196.plc2.org sls= [] site= 1198
+5197 1 n2-2197.plc2.org sls= [] site= 1199
+5198 1 n2-2198.plc2.org sls= [] site= 1200
+5199 1 n2-2199.plc2.org sls= [] site= 1201
+5200 1 n2-2200.plc2.org sls= [] site= 1202
+5201 1 n2-2201.plc2.org sls= [] site= 1203
+5202 1 n2-2202.plc2.org sls= [] site= 1204
+5203 1 n2-2203.plc2.org sls= [] site= 1205
+5204 1 n2-2204.plc2.org sls= [] site= 1206
+5205 1 n2-2205.plc2.org sls= [] site= 1207
+5206 1 n2-2206.plc2.org sls= [] site= 1208
+5207 1 n2-2207.plc2.org sls= [] site= 1209
+5208 1 n2-2208.plc2.org sls= [] site= 1210
+5209 1 n2-2209.plc2.org sls= [] site= 1211
+5210 1 n2-2210.plc2.org sls= [] site= 1212
+5211 1 n2-2211.plc2.org sls= [] site= 1213
+5212 1 n2-2212.plc2.org sls= [] site= 1214
+5213 1 n2-2213.plc2.org sls= [] site= 1215
+5214 1 n2-2214.plc2.org sls= [] site= 1216
+5215 1 n2-2215.plc2.org sls= [] site= 1217
+5216 1 n2-2216.plc2.org sls= [] site= 1218
+5217 1 n2-2217.plc2.org sls= [] site= 1219
+5218 1 n2-2218.plc2.org sls= [] site= 1220
+5219 1 n2-2219.plc2.org sls= [] site= 1221
+5220 1 n2-2220.plc2.org sls= [] site= 1222
+5221 1 n2-2221.plc2.org sls= [] site= 1223
+5222 1 n2-2222.plc2.org sls= [] site= 1224
+5223 1 n2-2223.plc2.org sls= [] site= 1225
+5224 1 n2-2224.plc2.org sls= [] site= 1226
+5225 1 n2-2225.plc2.org sls= [] site= 1227
+5226 1 n2-2226.plc2.org sls= [] site= 1228
+5227 1 n2-2227.plc2.org sls= [] site= 1229
+5228 1 n2-2228.plc2.org sls= [] site= 1230
+5229 1 n2-2229.plc2.org sls= [] site= 1231
+5230 1 n2-2230.plc2.org sls= [] site= 1232
+5231 1 n2-2231.plc2.org sls= [] site= 1233
+5232 1 n2-2232.plc2.org sls= [] site= 1234
+5233 1 n2-2233.plc2.org sls= [] site= 1235
+5234 1 n2-2234.plc2.org sls= [] site= 1236
+5235 1 n2-2235.plc2.org sls= [] site= 1237
+5236 1 n2-2236.plc2.org sls= [] site= 1238
+5237 1 n2-2237.plc2.org sls= [] site= 1239
+5238 1 n2-2238.plc2.org sls= [] site= 1240
+5239 1 n2-2239.plc2.org sls= [] site= 1241
+5240 1 n2-2240.plc2.org sls= [] site= 1242
+5241 1 n2-2241.plc2.org sls= [] site= 1243
+5242 1 n2-2242.plc2.org sls= [] site= 1244
+5243 1 n2-2243.plc2.org sls= [] site= 1245
+5244 1 n2-2244.plc2.org sls= [] site= 1246
+5245 1 n2-2245.plc2.org sls= [] site= 1247
+5246 1 n2-2246.plc2.org sls= [] site= 1248
+5247 1 n2-2247.plc2.org sls= [] site= 1249
+5248 1 n2-2248.plc2.org sls= [] site= 1250
+5249 1 n2-2249.plc2.org sls= [] site= 1251
+5250 1 n2-2250.plc2.org sls= [] site= 1252
+5251 1 n2-2251.plc2.org sls= [] site= 1253
+5252 1 n2-2252.plc2.org sls= [] site= 1254
+5253 1 n2-2253.plc2.org sls= [] site= 1255
+5254 1 n2-2254.plc2.org sls= [] site= 1256
+5255 1 n2-2255.plc2.org sls= [] site= 1257
+5256 1 n2-2256.plc2.org sls= [] site= 1258
+5257 1 n2-2257.plc2.org sls= [] site= 1259
+5258 1 n2-2258.plc2.org sls= [] site= 1260
+5259 1 n2-2259.plc2.org sls= [] site= 1261
+5260 1 n2-2260.plc2.org sls= [] site= 1262
+5261 1 n2-2261.plc2.org sls= [] site= 1263
+5262 1 n2-2262.plc2.org sls= [] site= 1264
+5263 1 n2-2263.plc2.org sls= [] site= 1265
+5264 1 n2-2264.plc2.org sls= [] site= 1266
+5265 1 n2-2265.plc2.org sls= [] site= 1267
+5266 1 n2-2266.plc2.org sls= [] site= 1268
+5267 1 n2-2267.plc2.org sls= [] site= 1269
+5268 1 n2-2268.plc2.org sls= [] site= 1270
+5269 1 n2-2269.plc2.org sls= [] site= 1271
+5270 1 n2-2270.plc2.org sls= [] site= 1272
+5271 1 n2-2271.plc2.org sls= [] site= 1273
+5272 1 n2-2272.plc2.org sls= [] site= 1274
+5273 1 n2-2273.plc2.org sls= [] site= 1275
+5274 1 n2-2274.plc2.org sls= [] site= 1276
+5275 1 n2-2275.plc2.org sls= [] site= 1277
+5276 1 n2-2276.plc2.org sls= [] site= 1278
+5277 1 n2-2277.plc2.org sls= [] site= 1279
+5278 1 n2-2278.plc2.org sls= [] site= 1280
+5279 1 n2-2279.plc2.org sls= [] site= 1281
+5280 1 n2-2280.plc2.org sls= [] site= 1282
+5281 1 n2-2281.plc2.org sls= [] site= 1283
+5282 1 n2-2282.plc2.org sls= [] site= 1284
+5283 1 n2-2283.plc2.org sls= [] site= 1285
+5284 1 n2-2284.plc2.org sls= [] site= 1286
+5285 1 n2-2285.plc2.org sls= [] site= 1287
+5286 1 n2-2286.plc2.org sls= [] site= 1288
+5287 1 n2-2287.plc2.org sls= [] site= 1289
+5288 1 n2-2288.plc2.org sls= [] site= 1290
+5289 1 n2-2289.plc2.org sls= [] site= 1291
+5290 1 n2-2290.plc2.org sls= [] site= 1292
+5291 1 n2-2291.plc2.org sls= [] site= 1293
+5292 1 n2-2292.plc2.org sls= [] site= 1294
+5293 1 n2-2293.plc2.org sls= [] site= 1295
+5294 1 n2-2294.plc2.org sls= [] site= 1296
+5295 1 n2-2295.plc2.org sls= [] site= 1297
+5296 1 n2-2296.plc2.org sls= [] site= 1298
+5297 1 n2-2297.plc2.org sls= [] site= 1299
+5298 1 n2-2298.plc2.org sls= [] site= 1300
+5299 1 n2-2299.plc2.org sls= [] site= 1301
+5300 1 n2-2300.plc2.org sls= [] site= 1302
+5301 1 n2-2301.plc2.org sls= [] site= 1303
+5302 1 n2-2302.plc2.org sls= [] site= 1304
+5303 1 n2-2303.plc2.org sls= [] site= 1305
+5304 1 n2-2304.plc2.org sls= [] site= 1306
+5305 1 n2-2305.plc2.org sls= [] site= 1307
+5306 1 n2-2306.plc2.org sls= [] site= 1308
+5307 1 n2-2307.plc2.org sls= [] site= 1309
+5308 1 n2-2308.plc2.org sls= [] site= 1310
+5309 1 n2-2309.plc2.org sls= [] site= 1311
+5310 1 n2-2310.plc2.org sls= [] site= 1312
+5311 1 n2-2311.plc2.org sls= [] site= 1313
+5312 1 n2-2312.plc2.org sls= [] site= 1314
+5313 1 n2-2313.plc2.org sls= [] site= 1315
+5314 1 n2-2314.plc2.org sls= [] site= 1316
+5315 1 n2-2315.plc2.org sls= [] site= 1317
+5316 1 n2-2316.plc2.org sls= [] site= 1318
+5317 1 n2-2317.plc2.org sls= [] site= 1319
+5318 1 n2-2318.plc2.org sls= [] site= 1320
+5319 1 n2-2319.plc2.org sls= [] site= 1321
+5320 1 n2-2320.plc2.org sls= [] site= 1322
+5321 1 n2-2321.plc2.org sls= [] site= 1323
+5322 1 n2-2322.plc2.org sls= [] site= 1324
+5323 1 n2-2323.plc2.org sls= [] site= 1325
+5324 1 n2-2324.plc2.org sls= [] site= 1326
+5325 1 n2-2325.plc2.org sls= [] site= 1327
+5326 1 n2-2326.plc2.org sls= [] site= 1328
+5327 1 n2-2327.plc2.org sls= [] site= 1329
+5328 1 n2-2328.plc2.org sls= [] site= 1330
+5329 1 n2-2329.plc2.org sls= [] site= 1331
+5330 1 n2-2330.plc2.org sls= [] site= 1332
+5331 1 n2-2331.plc2.org sls= [] site= 1333
+5332 1 n2-2332.plc2.org sls= [] site= 1334
+5333 1 n2-2333.plc2.org sls= [] site= 1335
+5334 1 n2-2334.plc2.org sls= [] site= 1336
+5335 1 n2-2335.plc2.org sls= [] site= 1337
+5336 1 n2-2336.plc2.org sls= [] site= 1338
+5337 1 n2-2337.plc2.org sls= [] site= 1339
+5338 1 n2-2338.plc2.org sls= [] site= 1340
+5339 1 n2-2339.plc2.org sls= [] site= 1341
+5340 1 n2-2340.plc2.org sls= [] site= 1342
+5341 1 n2-2341.plc2.org sls= [] site= 1343
+5342 1 n2-2342.plc2.org sls= [] site= 1344
+5343 1 n2-2343.plc2.org sls= [] site= 1345
+5344 1 n2-2344.plc2.org sls= [] site= 1346
+5345 1 n2-2345.plc2.org sls= [] site= 1347
+5346 1 n2-2346.plc2.org sls= [] site= 1348
+5347 1 n2-2347.plc2.org sls= [] site= 1349
+5348 1 n2-2348.plc2.org sls= [] site= 1350
+5349 1 n2-2349.plc2.org sls= [] site= 1351
+5350 1 n2-2350.plc2.org sls= [] site= 1352
+5351 1 n2-2351.plc2.org sls= [] site= 1353
+5352 1 n2-2352.plc2.org sls= [] site= 1354
+5353 1 n2-2353.plc2.org sls= [] site= 1355
+5354 1 n2-2354.plc2.org sls= [] site= 1356
+5355 1 n2-2355.plc2.org sls= [] site= 1357
+5356 1 n2-2356.plc2.org sls= [] site= 1358
+5357 1 n2-2357.plc2.org sls= [] site= 1359
+5358 1 n2-2358.plc2.org sls= [] site= 1360
+5359 1 n2-2359.plc2.org sls= [] site= 1361
+5360 1 n2-2360.plc2.org sls= [] site= 1362
+5361 1 n2-2361.plc2.org sls= [] site= 1363
+5362 1 n2-2362.plc2.org sls= [] site= 1364
+5363 1 n2-2363.plc2.org sls= [] site= 1365
+5364 1 n2-2364.plc2.org sls= [] site= 1366
+5365 1 n2-2365.plc2.org sls= [] site= 1367
+5366 1 n2-2366.plc2.org sls= [] site= 1368
+5367 1 n2-2367.plc2.org sls= [] site= 1369
+5368 1 n2-2368.plc2.org sls= [] site= 1370
+5369 1 n2-2369.plc2.org sls= [] site= 1371
+5370 1 n2-2370.plc2.org sls= [] site= 1372
+5371 1 n2-2371.plc2.org sls= [] site= 1373
+5372 1 n2-2372.plc2.org sls= [] site= 1374
+5373 1 n2-2373.plc2.org sls= [] site= 1375
+5374 1 n2-2374.plc2.org sls= [] site= 1376
+5375 1 n2-2375.plc2.org sls= [] site= 1377
+5376 1 n2-2376.plc2.org sls= [] site= 1378
+5377 1 n2-2377.plc2.org sls= [] site= 1379
+5378 1 n2-2378.plc2.org sls= [] site= 1380
+5379 1 n2-2379.plc2.org sls= [] site= 1381
+5380 1 n2-2380.plc2.org sls= [] site= 1382
+5381 1 n2-2381.plc2.org sls= [] site= 1383
+5382 1 n2-2382.plc2.org sls= [] site= 1384
+5383 1 n2-2383.plc2.org sls= [] site= 1385
+5384 1 n2-2384.plc2.org sls= [] site= 1386
+5385 1 n2-2385.plc2.org sls= [] site= 1387
+5386 1 n2-2386.plc2.org sls= [] site= 1388
+5387 1 n2-2387.plc2.org sls= [] site= 1389
+5388 1 n2-2388.plc2.org sls= [] site= 1390
+5389 1 n2-2389.plc2.org sls= [] site= 1391
+5390 1 n2-2390.plc2.org sls= [] site= 1392
+5391 1 n2-2391.plc2.org sls= [] site= 1393
+5392 1 n2-2392.plc2.org sls= [] site= 1394
+5393 1 n2-2393.plc2.org sls= [] site= 1395
+5394 1 n2-2394.plc2.org sls= [] site= 1396
+5395 1 n2-2395.plc2.org sls= [] site= 1397
+5396 1 n2-2396.plc2.org sls= [] site= 1398
+5397 1 n2-2397.plc2.org sls= [] site= 1399
+5398 1 n2-2398.plc2.org sls= [] site= 1400
+5399 1 n2-2399.plc2.org sls= [] site= 1401
+5400 1 n2-2400.plc2.org sls= [] site= 1402
+5401 1 n2-2401.plc2.org sls= [] site= 1403
+5402 1 n2-2402.plc2.org sls= [] site= 1404
+5403 1 n2-2403.plc2.org sls= [] site= 1405
+5404 1 n2-2404.plc2.org sls= [] site= 1406
+5405 1 n2-2405.plc2.org sls= [] site= 1407
+5406 1 n2-2406.plc2.org sls= [] site= 1408
+5407 1 n2-2407.plc2.org sls= [] site= 1409
+5408 1 n2-2408.plc2.org sls= [] site= 1410
+5409 1 n2-2409.plc2.org sls= [] site= 1411
+5410 1 n2-2410.plc2.org sls= [] site= 1412
+5411 1 n2-2411.plc2.org sls= [] site= 1413
+5412 1 n2-2412.plc2.org sls= [] site= 1414
+5413 1 n2-2413.plc2.org sls= [] site= 1415
+5414 1 n2-2414.plc2.org sls= [] site= 1416
+5415 1 n2-2415.plc2.org sls= [] site= 1417
+5416 1 n2-2416.plc2.org sls= [] site= 1418
+5417 1 n2-2417.plc2.org sls= [] site= 1419
+5418 1 n2-2418.plc2.org sls= [] site= 1420
+5419 1 n2-2419.plc2.org sls= [] site= 1421
+5420 1 n2-2420.plc2.org sls= [] site= 1422
+5421 1 n2-2421.plc2.org sls= [] site= 1423
+5422 1 n2-2422.plc2.org sls= [] site= 1424
+5423 1 n2-2423.plc2.org sls= [] site= 1425
+5424 1 n2-2424.plc2.org sls= [] site= 1426
+5425 1 n2-2425.plc2.org sls= [] site= 1427
+5426 1 n2-2426.plc2.org sls= [] site= 1428
+5427 1 n2-2427.plc2.org sls= [] site= 1429
+5428 1 n2-2428.plc2.org sls= [] site= 1430
+5429 1 n2-2429.plc2.org sls= [] site= 1431
+5430 1 n2-2430.plc2.org sls= [] site= 1432
+5431 1 n2-2431.plc2.org sls= [] site= 1433
+5432 1 n2-2432.plc2.org sls= [] site= 1434
+5433 1 n2-2433.plc2.org sls= [] site= 1435
+5434 1 n2-2434.plc2.org sls= [] site= 1436
+5435 1 n2-2435.plc2.org sls= [] site= 1437
+5436 1 n2-2436.plc2.org sls= [] site= 1438
+5437 1 n2-2437.plc2.org sls= [] site= 1439
+5438 1 n2-2438.plc2.org sls= [] site= 1440
+5439 1 n2-2439.plc2.org sls= [] site= 1441
+5440 1 n2-2440.plc2.org sls= [] site= 1442
+5441 1 n2-2441.plc2.org sls= [] site= 1443
+5442 1 n2-2442.plc2.org sls= [] site= 1444
+5443 1 n2-2443.plc2.org sls= [] site= 1445
+5444 1 n2-2444.plc2.org sls= [] site= 1446
+5445 1 n2-2445.plc2.org sls= [] site= 1447
+5446 1 n2-2446.plc2.org sls= [] site= 1448
+5447 1 n2-2447.plc2.org sls= [] site= 1449
+5448 1 n2-2448.plc2.org sls= [] site= 1450
+5449 1 n2-2449.plc2.org sls= [] site= 1451
+5450 1 n2-2450.plc2.org sls= [] site= 1452
+5451 1 n2-2451.plc2.org sls= [] site= 1453
+5452 1 n2-2452.plc2.org sls= [] site= 1454
+5453 1 n2-2453.plc2.org sls= [] site= 1455
+5454 1 n2-2454.plc2.org sls= [] site= 1456
+5455 1 n2-2455.plc2.org sls= [] site= 1457
+5456 1 n2-2456.plc2.org sls= [] site= 1458
+5457 1 n2-2457.plc2.org sls= [] site= 1459
+5458 1 n2-2458.plc2.org sls= [] site= 1460
+5459 1 n2-2459.plc2.org sls= [] site= 1461
+5460 1 n2-2460.plc2.org sls= [] site= 1462
+5461 1 n2-2461.plc2.org sls= [] site= 1463
+5462 1 n2-2462.plc2.org sls= [] site= 1464
+5463 1 n2-2463.plc2.org sls= [] site= 1465
+5464 1 n2-2464.plc2.org sls= [] site= 1466
+5465 1 n2-2465.plc2.org sls= [] site= 1467
+5466 1 n2-2466.plc2.org sls= [] site= 1468
+5467 1 n2-2467.plc2.org sls= [] site= 1469
+5468 1 n2-2468.plc2.org sls= [] site= 1470
+5469 1 n2-2469.plc2.org sls= [] site= 1471
+5470 1 n2-2470.plc2.org sls= [] site= 1472
+5471 1 n2-2471.plc2.org sls= [] site= 1473
+5472 1 n2-2472.plc2.org sls= [] site= 1474
+5473 1 n2-2473.plc2.org sls= [] site= 1475
+5474 1 n2-2474.plc2.org sls= [] site= 1476
+5475 1 n2-2475.plc2.org sls= [] site= 1477
+5476 1 n2-2476.plc2.org sls= [] site= 1478
+5477 1 n2-2477.plc2.org sls= [] site= 1479
+5478 1 n2-2478.plc2.org sls= [] site= 1480
+5479 1 n2-2479.plc2.org sls= [] site= 1481
+5480 1 n2-2480.plc2.org sls= [] site= 1482
+5481 1 n2-2481.plc2.org sls= [] site= 1483
+5482 1 n2-2482.plc2.org sls= [] site= 1484
+5483 1 n2-2483.plc2.org sls= [] site= 1485
+5484 1 n2-2484.plc2.org sls= [] site= 1486
+5485 1 n2-2485.plc2.org sls= [] site= 1487
+5486 1 n2-2486.plc2.org sls= [] site= 1488
+5487 1 n2-2487.plc2.org sls= [] site= 1489
+5488 1 n2-2488.plc2.org sls= [] site= 1490
+5489 1 n2-2489.plc2.org sls= [] site= 1491
+5490 1 n2-2490.plc2.org sls= [] site= 1492
+5491 1 n2-2491.plc2.org sls= [] site= 1493
+5492 1 n2-2492.plc2.org sls= [] site= 1494
+5493 1 n2-2493.plc2.org sls= [] site= 1495
+5494 1 n2-2494.plc2.org sls= [] site= 1496
+5495 1 n2-2495.plc2.org sls= [] site= 1497
+5496 1 n2-2496.plc2.org sls= [] site= 1498
+5497 1 n2-2497.plc2.org sls= [] site= 1499
+5498 1 n2-2498.plc2.org sls= [] site= 1500
+5499 1 n2-2499.plc2.org sls= [] site= 1501
+5500 1 n2-2500.plc2.org sls= [] site= 1502
+5501 1 n2-2501.plc2.org sls= [] site= 1503
+5502 1 n2-2502.plc2.org sls= [] site= 1504
+5503 1 n2-2503.plc2.org sls= [] site= 1505
+5504 1 n2-2504.plc2.org sls= [] site= 1506
+5505 1 n2-2505.plc2.org sls= [] site= 1507
+5506 1 n2-2506.plc2.org sls= [] site= 1508
+5507 1 n2-2507.plc2.org sls= [] site= 1509
+5508 1 n2-2508.plc2.org sls= [] site= 1510
+5509 1 n2-2509.plc2.org sls= [] site= 1511
+5510 1 n2-2510.plc2.org sls= [] site= 1512
+5511 1 n2-2511.plc2.org sls= [] site= 1513
+5512 1 n2-2512.plc2.org sls= [] site= 1514
+5513 1 n2-2513.plc2.org sls= [] site= 1515
+5514 1 n2-2514.plc2.org sls= [] site= 1516
+5515 1 n2-2515.plc2.org sls= [] site= 1517
+5516 1 n2-2516.plc2.org sls= [] site= 1518
+5517 1 n2-2517.plc2.org sls= [] site= 1519
+5518 1 n2-2518.plc2.org sls= [] site= 1520
+5519 1 n2-2519.plc2.org sls= [] site= 1521
+5520 1 n2-2520.plc2.org sls= [] site= 1522
+5521 1 n2-2521.plc2.org sls= [] site= 1523
+5522 1 n2-2522.plc2.org sls= [] site= 1524
+5523 1 n2-2523.plc2.org sls= [] site= 1525
+5524 1 n2-2524.plc2.org sls= [] site= 1526
+5525 1 n2-2525.plc2.org sls= [] site= 1527
+5526 1 n2-2526.plc2.org sls= [] site= 1528
+5527 1 n2-2527.plc2.org sls= [] site= 1529
+5528 1 n2-2528.plc2.org sls= [] site= 1530
+5529 1 n2-2529.plc2.org sls= [] site= 1531
+5530 1 n2-2530.plc2.org sls= [] site= 1532
+5531 1 n2-2531.plc2.org sls= [] site= 1533
+5532 1 n2-2532.plc2.org sls= [] site= 1534
+5533 1 n2-2533.plc2.org sls= [] site= 1535
+5534 1 n2-2534.plc2.org sls= [] site= 1536
+5535 1 n2-2535.plc2.org sls= [] site= 1537
+5536 1 n2-2536.plc2.org sls= [] site= 1538
+5537 1 n2-2537.plc2.org sls= [] site= 1539
+5538 1 n2-2538.plc2.org sls= [] site= 1540
+5539 1 n2-2539.plc2.org sls= [] site= 1541
+5540 1 n2-2540.plc2.org sls= [] site= 1542
+5541 1 n2-2541.plc2.org sls= [] site= 1543
+5542 1 n2-2542.plc2.org sls= [] site= 1544
+5543 1 n2-2543.plc2.org sls= [] site= 1545
+5544 1 n2-2544.plc2.org sls= [] site= 1546
+5545 1 n2-2545.plc2.org sls= [] site= 1547
+5546 1 n2-2546.plc2.org sls= [] site= 1548
+5547 1 n2-2547.plc2.org sls= [] site= 1549
+5548 1 n2-2548.plc2.org sls= [] site= 1550
+5549 1 n2-2549.plc2.org sls= [] site= 1551
+5550 1 n2-2550.plc2.org sls= [] site= 1552
+5551 1 n2-2551.plc2.org sls= [] site= 1553
+5552 1 n2-2552.plc2.org sls= [] site= 1554
+5553 1 n2-2553.plc2.org sls= [] site= 1555
+5554 1 n2-2554.plc2.org sls= [] site= 1556
+5555 1 n2-2555.plc2.org sls= [] site= 1557
+5556 1 n2-2556.plc2.org sls= [] site= 1558
+5557 1 n2-2557.plc2.org sls= [] site= 1559
+5558 1 n2-2558.plc2.org sls= [] site= 1560
+5559 1 n2-2559.plc2.org sls= [] site= 1561
+5560 1 n2-2560.plc2.org sls= [] site= 1562
+5561 1 n2-2561.plc2.org sls= [] site= 1563
+5562 1 n2-2562.plc2.org sls= [] site= 1564
+5563 1 n2-2563.plc2.org sls= [] site= 1565
+5564 1 n2-2564.plc2.org sls= [] site= 1566
+5565 1 n2-2565.plc2.org sls= [] site= 1567
+5566 1 n2-2566.plc2.org sls= [] site= 1568
+5567 1 n2-2567.plc2.org sls= [] site= 1569
+5568 1 n2-2568.plc2.org sls= [] site= 1570
+5569 1 n2-2569.plc2.org sls= [] site= 1571
+5570 1 n2-2570.plc2.org sls= [] site= 1572
+5571 1 n2-2571.plc2.org sls= [] site= 1573
+5572 1 n2-2572.plc2.org sls= [] site= 1574
+5573 1 n2-2573.plc2.org sls= [] site= 1575
+5574 1 n2-2574.plc2.org sls= [] site= 1576
+5575 1 n2-2575.plc2.org sls= [] site= 1577
+5576 1 n2-2576.plc2.org sls= [] site= 1578
+5577 1 n2-2577.plc2.org sls= [] site= 1579
+5578 1 n2-2578.plc2.org sls= [] site= 1580
+5579 1 n2-2579.plc2.org sls= [] site= 1581
+5580 1 n2-2580.plc2.org sls= [] site= 1582
+5581 1 n2-2581.plc2.org sls= [] site= 1583
+5582 1 n2-2582.plc2.org sls= [] site= 1584
+5583 1 n2-2583.plc2.org sls= [] site= 1585
+5584 1 n2-2584.plc2.org sls= [] site= 1586
+5585 1 n2-2585.plc2.org sls= [] site= 1587
+5586 1 n2-2586.plc2.org sls= [] site= 1588
+5587 1 n2-2587.plc2.org sls= [] site= 1589
+5588 1 n2-2588.plc2.org sls= [] site= 1590
+5589 1 n2-2589.plc2.org sls= [] site= 1591
+5590 1 n2-2590.plc2.org sls= [] site= 1592
+5591 1 n2-2591.plc2.org sls= [] site= 1593
+5592 1 n2-2592.plc2.org sls= [] site= 1594
+5593 1 n2-2593.plc2.org sls= [] site= 1595
+5594 1 n2-2594.plc2.org sls= [] site= 1596
+5595 1 n2-2595.plc2.org sls= [] site= 1597
+5596 1 n2-2596.plc2.org sls= [] site= 1598
+5597 1 n2-2597.plc2.org sls= [] site= 1599
+5598 1 n2-2598.plc2.org sls= [] site= 1600
+5599 1 n2-2599.plc2.org sls= [] site= 1601
+5600 1 n2-2600.plc2.org sls= [] site= 1602
+5601 1 n2-2601.plc2.org sls= [] site= 1603
+5602 1 n2-2602.plc2.org sls= [] site= 1604
+5603 1 n2-2603.plc2.org sls= [] site= 1605
+5604 1 n2-2604.plc2.org sls= [] site= 1606
+5605 1 n2-2605.plc2.org sls= [] site= 1607
+5606 1 n2-2606.plc2.org sls= [] site= 1608
+5607 1 n2-2607.plc2.org sls= [] site= 1609
+5608 1 n2-2608.plc2.org sls= [] site= 1610
+5609 1 n2-2609.plc2.org sls= [] site= 1611
+5610 1 n2-2610.plc2.org sls= [] site= 1612
+5611 1 n2-2611.plc2.org sls= [] site= 1613
+5612 1 n2-2612.plc2.org sls= [] site= 1614
+5613 1 n2-2613.plc2.org sls= [] site= 1615
+5614 1 n2-2614.plc2.org sls= [] site= 1616
+5615 1 n2-2615.plc2.org sls= [] site= 1617
+5616 1 n2-2616.plc2.org sls= [] site= 1618
+5617 1 n2-2617.plc2.org sls= [] site= 1619
+5618 1 n2-2618.plc2.org sls= [] site= 1620
+5619 1 n2-2619.plc2.org sls= [] site= 1621
+5620 1 n2-2620.plc2.org sls= [] site= 1622
+5621 1 n2-2621.plc2.org sls= [] site= 1623
+5622 1 n2-2622.plc2.org sls= [] site= 1624
+5623 1 n2-2623.plc2.org sls= [] site= 1625
+5624 1 n2-2624.plc2.org sls= [] site= 1626
+5625 1 n2-2625.plc2.org sls= [] site= 1627
+5626 1 n2-2626.plc2.org sls= [] site= 1628
+5627 1 n2-2627.plc2.org sls= [] site= 1629
+5628 1 n2-2628.plc2.org sls= [] site= 1630
+5629 1 n2-2629.plc2.org sls= [] site= 1631
+5630 1 n2-2630.plc2.org sls= [] site= 1632
+5631 1 n2-2631.plc2.org sls= [] site= 1633
+5632 1 n2-2632.plc2.org sls= [] site= 1634
+5633 1 n2-2633.plc2.org sls= [] site= 1635
+5634 1 n2-2634.plc2.org sls= [] site= 1636
+5635 1 n2-2635.plc2.org sls= [] site= 1637
+5636 1 n2-2636.plc2.org sls= [] site= 1638
+5637 1 n2-2637.plc2.org sls= [] site= 1639
+5638 1 n2-2638.plc2.org sls= [] site= 1640
+5639 1 n2-2639.plc2.org sls= [] site= 1641
+5640 1 n2-2640.plc2.org sls= [] site= 1642
+5641 1 n2-2641.plc2.org sls= [] site= 1643
+5642 1 n2-2642.plc2.org sls= [] site= 1644
+5643 1 n2-2643.plc2.org sls= [] site= 1645
+5644 1 n2-2644.plc2.org sls= [] site= 1646
+5645 1 n2-2645.plc2.org sls= [] site= 1647
+5646 1 n2-2646.plc2.org sls= [] site= 1648
+5647 1 n2-2647.plc2.org sls= [] site= 1649
+5648 1 n2-2648.plc2.org sls= [] site= 1650
+5649 1 n2-2649.plc2.org sls= [] site= 1651
+5650 1 n2-2650.plc2.org sls= [] site= 1652
+5651 1 n2-2651.plc2.org sls= [] site= 1653
+5652 1 n2-2652.plc2.org sls= [] site= 1654
+5653 1 n2-2653.plc2.org sls= [] site= 1655
+5654 1 n2-2654.plc2.org sls= [] site= 1656
+5655 1 n2-2655.plc2.org sls= [] site= 1657
+5656 1 n2-2656.plc2.org sls= [] site= 1658
+5657 1 n2-2657.plc2.org sls= [] site= 1659
+5658 1 n2-2658.plc2.org sls= [] site= 1660
+5659 1 n2-2659.plc2.org sls= [] site= 1661
+5660 1 n2-2660.plc2.org sls= [] site= 1662
+5661 1 n2-2661.plc2.org sls= [] site= 1663
+5662 1 n2-2662.plc2.org sls= [] site= 1664
+5663 1 n2-2663.plc2.org sls= [] site= 1665
+5664 1 n2-2664.plc2.org sls= [] site= 1666
+5665 1 n2-2665.plc2.org sls= [] site= 1667
+5666 1 n2-2666.plc2.org sls= [] site= 1668
+5667 1 n2-2667.plc2.org sls= [] site= 1669
+5668 1 n2-2668.plc2.org sls= [] site= 1670
+5669 1 n2-2669.plc2.org sls= [] site= 1671
+5670 1 n2-2670.plc2.org sls= [] site= 1672
+5671 1 n2-2671.plc2.org sls= [] site= 1673
+5672 1 n2-2672.plc2.org sls= [] site= 1674
+5673 1 n2-2673.plc2.org sls= [] site= 1675
+5674 1 n2-2674.plc2.org sls= [] site= 1676
+5675 1 n2-2675.plc2.org sls= [] site= 1677
+5676 1 n2-2676.plc2.org sls= [] site= 1678
+5677 1 n2-2677.plc2.org sls= [] site= 1679
+5678 1 n2-2678.plc2.org sls= [] site= 1680
+5679 1 n2-2679.plc2.org sls= [] site= 1681
+5680 1 n2-2680.plc2.org sls= [] site= 1682
+5681 1 n2-2681.plc2.org sls= [] site= 1683
+5682 1 n2-2682.plc2.org sls= [] site= 1684
+5683 1 n2-2683.plc2.org sls= [] site= 1685
+5684 1 n2-2684.plc2.org sls= [] site= 1686
+5685 1 n2-2685.plc2.org sls= [] site= 1687
+5686 1 n2-2686.plc2.org sls= [] site= 1688
+5687 1 n2-2687.plc2.org sls= [] site= 1689
+5688 1 n2-2688.plc2.org sls= [] site= 1690
+5689 1 n2-2689.plc2.org sls= [] site= 1691
+5690 1 n2-2690.plc2.org sls= [] site= 1692
+5691 1 n2-2691.plc2.org sls= [] site= 1693
+5692 1 n2-2692.plc2.org sls= [] site= 1694
+5693 1 n2-2693.plc2.org sls= [] site= 1695
+5694 1 n2-2694.plc2.org sls= [] site= 1696
+5695 1 n2-2695.plc2.org sls= [] site= 1697
+5696 1 n2-2696.plc2.org sls= [] site= 1698
+5697 1 n2-2697.plc2.org sls= [] site= 1699
+5698 1 n2-2698.plc2.org sls= [] site= 1700
+5699 1 n2-2699.plc2.org sls= [] site= 1701
+5700 1 n2-2700.plc2.org sls= [] site= 1702
+5701 1 n2-2701.plc2.org sls= [] site= 1703
+5702 1 n2-2702.plc2.org sls= [] site= 1704
+5703 1 n2-2703.plc2.org sls= [] site= 1705
+5704 1 n2-2704.plc2.org sls= [] site= 1706
+5705 1 n2-2705.plc2.org sls= [] site= 1707
+5706 1 n2-2706.plc2.org sls= [] site= 1708
+5707 1 n2-2707.plc2.org sls= [] site= 1709
+5708 1 n2-2708.plc2.org sls= [] site= 1710
+5709 1 n2-2709.plc2.org sls= [] site= 1711
+5710 1 n2-2710.plc2.org sls= [] site= 1712
+5711 1 n2-2711.plc2.org sls= [] site= 1713
+5712 1 n2-2712.plc2.org sls= [] site= 1714
+5713 1 n2-2713.plc2.org sls= [] site= 1715
+5714 1 n2-2714.plc2.org sls= [] site= 1716
+5715 1 n2-2715.plc2.org sls= [] site= 1717
+5716 1 n2-2716.plc2.org sls= [] site= 1718
+5717 1 n2-2717.plc2.org sls= [] site= 1719
+5718 1 n2-2718.plc2.org sls= [] site= 1720
+5719 1 n2-2719.plc2.org sls= [] site= 1721
+5720 1 n2-2720.plc2.org sls= [] site= 1722
+5721 1 n2-2721.plc2.org sls= [] site= 1723
+5722 1 n2-2722.plc2.org sls= [] site= 1724
+5723 1 n2-2723.plc2.org sls= [] site= 1725
+5724 1 n2-2724.plc2.org sls= [] site= 1726
+5725 1 n2-2725.plc2.org sls= [] site= 1727
+5726 1 n2-2726.plc2.org sls= [] site= 1728
+5727 1 n2-2727.plc2.org sls= [] site= 1729
+5728 1 n2-2728.plc2.org sls= [] site= 1730
+5729 1 n2-2729.plc2.org sls= [] site= 1731
+5730 1 n2-2730.plc2.org sls= [] site= 1732
+5731 1 n2-2731.plc2.org sls= [] site= 1733
+5732 1 n2-2732.plc2.org sls= [] site= 1734
+5733 1 n2-2733.plc2.org sls= [] site= 1735
+5734 1 n2-2734.plc2.org sls= [] site= 1736
+5735 1 n2-2735.plc2.org sls= [] site= 1737
+5736 1 n2-2736.plc2.org sls= [] site= 1738
+5737 1 n2-2737.plc2.org sls= [] site= 1739
+5738 1 n2-2738.plc2.org sls= [] site= 1740
+5739 1 n2-2739.plc2.org sls= [] site= 1741
+5740 1 n2-2740.plc2.org sls= [] site= 1742
+5741 1 n2-2741.plc2.org sls= [] site= 1743
+5742 1 n2-2742.plc2.org sls= [] site= 1744
+5743 1 n2-2743.plc2.org sls= [] site= 1745
+5744 1 n2-2744.plc2.org sls= [] site= 1746
+5745 1 n2-2745.plc2.org sls= [] site= 1747
+5746 1 n2-2746.plc2.org sls= [] site= 1748
+5747 1 n2-2747.plc2.org sls= [] site= 1749
+5748 1 n2-2748.plc2.org sls= [] site= 1750
+5749 1 n2-2749.plc2.org sls= [] site= 1751
+5750 1 n2-2750.plc2.org sls= [] site= 1752
+5751 1 n2-2751.plc2.org sls= [] site= 1753
+5752 1 n2-2752.plc2.org sls= [] site= 1754
+5753 1 n2-2753.plc2.org sls= [] site= 1755
+5754 1 n2-2754.plc2.org sls= [] site= 1756
+5755 1 n2-2755.plc2.org sls= [] site= 1757
+5756 1 n2-2756.plc2.org sls= [] site= 1758
+5757 1 n2-2757.plc2.org sls= [] site= 1759
+5758 1 n2-2758.plc2.org sls= [] site= 1760
+5759 1 n2-2759.plc2.org sls= [] site= 1761
+5760 1 n2-2760.plc2.org sls= [] site= 1762
+5761 1 n2-2761.plc2.org sls= [] site= 1763
+5762 1 n2-2762.plc2.org sls= [] site= 1764
+5763 1 n2-2763.plc2.org sls= [] site= 1765
+5764 1 n2-2764.plc2.org sls= [] site= 1766
+5765 1 n2-2765.plc2.org sls= [] site= 1767
+5766 1 n2-2766.plc2.org sls= [] site= 1768
+5767 1 n2-2767.plc2.org sls= [] site= 1769
+5768 1 n2-2768.plc2.org sls= [] site= 1770
+5769 1 n2-2769.plc2.org sls= [] site= 1771
+5770 1 n2-2770.plc2.org sls= [] site= 1772
+5771 1 n2-2771.plc2.org sls= [] site= 1773
+5772 1 n2-2772.plc2.org sls= [] site= 1774
+5773 1 n2-2773.plc2.org sls= [] site= 1775
+5774 1 n2-2774.plc2.org sls= [] site= 1776
+5775 1 n2-2775.plc2.org sls= [] site= 1777
+5776 1 n2-2776.plc2.org sls= [] site= 1778
+5777 1 n2-2777.plc2.org sls= [] site= 1779
+5778 1 n2-2778.plc2.org sls= [] site= 1780
+5779 1 n2-2779.plc2.org sls= [] site= 1781
+5780 1 n2-2780.plc2.org sls= [] site= 1782
+5781 1 n2-2781.plc2.org sls= [] site= 1783
+5782 1 n2-2782.plc2.org sls= [] site= 1784
+5783 1 n2-2783.plc2.org sls= [] site= 1785
+5784 1 n2-2784.plc2.org sls= [] site= 1786
+5785 1 n2-2785.plc2.org sls= [] site= 1787
+5786 1 n2-2786.plc2.org sls= [] site= 1788
+5787 1 n2-2787.plc2.org sls= [] site= 1789
+5788 1 n2-2788.plc2.org sls= [] site= 1790
+5789 1 n2-2789.plc2.org sls= [] site= 1791
+5790 1 n2-2790.plc2.org sls= [] site= 1792
+5791 1 n2-2791.plc2.org sls= [] site= 1793
+5792 1 n2-2792.plc2.org sls= [] site= 1794
+5793 1 n2-2793.plc2.org sls= [] site= 1795
+5794 1 n2-2794.plc2.org sls= [] site= 1796
+5795 1 n2-2795.plc2.org sls= [] site= 1797
+5796 1 n2-2796.plc2.org sls= [] site= 1798
+5797 1 n2-2797.plc2.org sls= [] site= 1799
+5798 1 n2-2798.plc2.org sls= [] site= 1800
+5799 1 n2-2799.plc2.org sls= [] site= 1801
+5800 1 n2-2800.plc2.org sls= [] site= 1802
+5801 1 n2-2801.plc2.org sls= [] site= 1803
+5802 1 n2-2802.plc2.org sls= [] site= 1804
+5803 1 n2-2803.plc2.org sls= [] site= 1805
+5804 1 n2-2804.plc2.org sls= [] site= 1806
+5805 1 n2-2805.plc2.org sls= [] site= 1807
+5806 1 n2-2806.plc2.org sls= [] site= 1808
+5807 1 n2-2807.plc2.org sls= [] site= 1809
+5808 1 n2-2808.plc2.org sls= [] site= 1810
+5809 1 n2-2809.plc2.org sls= [] site= 1811
+5810 1 n2-2810.plc2.org sls= [] site= 1812
+5811 1 n2-2811.plc2.org sls= [] site= 1813
+5812 1 n2-2812.plc2.org sls= [] site= 1814
+5813 1 n2-2813.plc2.org sls= [] site= 1815
+5814 1 n2-2814.plc2.org sls= [] site= 1816
+5815 1 n2-2815.plc2.org sls= [] site= 1817
+5816 1 n2-2816.plc2.org sls= [] site= 1818
+5817 1 n2-2817.plc2.org sls= [] site= 1819
+5818 1 n2-2818.plc2.org sls= [] site= 1820
+5819 1 n2-2819.plc2.org sls= [] site= 1821
+5820 1 n2-2820.plc2.org sls= [] site= 1822
+5821 1 n2-2821.plc2.org sls= [] site= 1823
+5822 1 n2-2822.plc2.org sls= [] site= 1824
+5823 1 n2-2823.plc2.org sls= [] site= 1825
+5824 1 n2-2824.plc2.org sls= [] site= 1826
+5825 1 n2-2825.plc2.org sls= [] site= 1827
+5826 1 n2-2826.plc2.org sls= [] site= 1828
+5827 1 n2-2827.plc2.org sls= [] site= 1829
+5828 1 n2-2828.plc2.org sls= [] site= 1830
+5829 1 n2-2829.plc2.org sls= [] site= 1831
+5830 1 n2-2830.plc2.org sls= [] site= 1832
+5831 1 n2-2831.plc2.org sls= [] site= 1833
+5832 1 n2-2832.plc2.org sls= [] site= 1834
+5833 1 n2-2833.plc2.org sls= [] site= 1835
+5834 1 n2-2834.plc2.org sls= [] site= 1836
+5835 1 n2-2835.plc2.org sls= [] site= 1837
+5836 1 n2-2836.plc2.org sls= [] site= 1838
+5837 1 n2-2837.plc2.org sls= [] site= 1839
+5838 1 n2-2838.plc2.org sls= [] site= 1840
+5839 1 n2-2839.plc2.org sls= [] site= 1841
+5840 1 n2-2840.plc2.org sls= [] site= 1842
+5841 1 n2-2841.plc2.org sls= [] site= 1843
+5842 1 n2-2842.plc2.org sls= [] site= 1844
+5843 1 n2-2843.plc2.org sls= [] site= 1845
+5844 1 n2-2844.plc2.org sls= [] site= 1846
+5845 1 n2-2845.plc2.org sls= [] site= 1847
+5846 1 n2-2846.plc2.org sls= [] site= 1848
+5847 1 n2-2847.plc2.org sls= [] site= 1849
+5848 1 n2-2848.plc2.org sls= [] site= 1850
+5849 1 n2-2849.plc2.org sls= [] site= 1851
+5850 1 n2-2850.plc2.org sls= [] site= 1852
+5851 1 n2-2851.plc2.org sls= [] site= 1853
+5852 1 n2-2852.plc2.org sls= [] site= 1854
+5853 1 n2-2853.plc2.org sls= [] site= 1855
+5854 1 n2-2854.plc2.org sls= [] site= 1856
+5855 1 n2-2855.plc2.org sls= [] site= 1857
+5856 1 n2-2856.plc2.org sls= [] site= 1858
+5857 1 n2-2857.plc2.org sls= [] site= 1859
+5858 1 n2-2858.plc2.org sls= [] site= 1860
+5859 1 n2-2859.plc2.org sls= [] site= 1861
+5860 1 n2-2860.plc2.org sls= [] site= 1862
+5861 1 n2-2861.plc2.org sls= [] site= 1863
+5862 1 n2-2862.plc2.org sls= [] site= 1864
+5863 1 n2-2863.plc2.org sls= [] site= 1865
+5864 1 n2-2864.plc2.org sls= [] site= 1866
+5865 1 n2-2865.plc2.org sls= [] site= 1867
+5866 1 n2-2866.plc2.org sls= [] site= 1868
+5867 1 n2-2867.plc2.org sls= [] site= 1869
+5868 1 n2-2868.plc2.org sls= [] site= 1870
+5869 1 n2-2869.plc2.org sls= [] site= 1871
+5870 1 n2-2870.plc2.org sls= [] site= 1872
+5871 1 n2-2871.plc2.org sls= [] site= 1873
+5872 1 n2-2872.plc2.org sls= [] site= 1874
+5873 1 n2-2873.plc2.org sls= [] site= 1875
+5874 1 n2-2874.plc2.org sls= [] site= 1876
+5875 1 n2-2875.plc2.org sls= [] site= 1877
+5876 1 n2-2876.plc2.org sls= [] site= 1878
+5877 1 n2-2877.plc2.org sls= [] site= 1879
+5878 1 n2-2878.plc2.org sls= [] site= 1880
+5879 1 n2-2879.plc2.org sls= [] site= 1881
+5880 1 n2-2880.plc2.org sls= [] site= 1882
+5881 1 n2-2881.plc2.org sls= [] site= 1883
+5882 1 n2-2882.plc2.org sls= [] site= 1884
+5883 1 n2-2883.plc2.org sls= [] site= 1885
+5884 1 n2-2884.plc2.org sls= [] site= 1886
+5885 1 n2-2885.plc2.org sls= [] site= 1887
+5886 1 n2-2886.plc2.org sls= [] site= 1888
+5887 1 n2-2887.plc2.org sls= [] site= 1889
+5888 1 n2-2888.plc2.org sls= [] site= 1890
+5889 1 n2-2889.plc2.org sls= [] site= 1891
+5890 1 n2-2890.plc2.org sls= [] site= 1892
+5891 1 n2-2891.plc2.org sls= [] site= 1893
+5892 1 n2-2892.plc2.org sls= [] site= 1894
+5893 1 n2-2893.plc2.org sls= [] site= 1895
+5894 1 n2-2894.plc2.org sls= [] site= 1896
+5895 1 n2-2895.plc2.org sls= [] site= 1897
+5896 1 n2-2896.plc2.org sls= [] site= 1898
+5897 1 n2-2897.plc2.org sls= [] site= 1899
+5898 1 n2-2898.plc2.org sls= [] site= 1900
+5899 1 n2-2899.plc2.org sls= [] site= 1901
+5900 1 n2-2900.plc2.org sls= [] site= 1902
+5901 1 n2-2901.plc2.org sls= [] site= 1903
+5902 1 n2-2902.plc2.org sls= [] site= 1904
+5903 1 n2-2903.plc2.org sls= [] site= 1905
+5904 1 n2-2904.plc2.org sls= [] site= 1906
+5905 1 n2-2905.plc2.org sls= [] site= 1907
+5906 1 n2-2906.plc2.org sls= [] site= 1908
+5907 1 n2-2907.plc2.org sls= [] site= 1909
+5908 1 n2-2908.plc2.org sls= [] site= 1910
+5909 1 n2-2909.plc2.org sls= [] site= 1911
+5910 1 n2-2910.plc2.org sls= [] site= 1912
+5911 1 n2-2911.plc2.org sls= [] site= 1913
+5912 1 n2-2912.plc2.org sls= [] site= 1914
+5913 1 n2-2913.plc2.org sls= [] site= 1915
+5914 1 n2-2914.plc2.org sls= [] site= 1916
+5915 1 n2-2915.plc2.org sls= [] site= 1917
+5916 1 n2-2916.plc2.org sls= [] site= 1918
+5917 1 n2-2917.plc2.org sls= [] site= 1919
+5918 1 n2-2918.plc2.org sls= [] site= 1920
+5919 1 n2-2919.plc2.org sls= [] site= 1921
+5920 1 n2-2920.plc2.org sls= [] site= 1922
+5921 1 n2-2921.plc2.org sls= [] site= 1923
+5922 1 n2-2922.plc2.org sls= [] site= 1924
+5923 1 n2-2923.plc2.org sls= [] site= 1925
+5924 1 n2-2924.plc2.org sls= [] site= 1926
+5925 1 n2-2925.plc2.org sls= [] site= 1927
+5926 1 n2-2926.plc2.org sls= [] site= 1928
+5927 1 n2-2927.plc2.org sls= [] site= 1929
+5928 1 n2-2928.plc2.org sls= [] site= 1930
+5929 1 n2-2929.plc2.org sls= [] site= 1931
+5930 1 n2-2930.plc2.org sls= [] site= 1932
+5931 1 n2-2931.plc2.org sls= [] site= 1933
+5932 1 n2-2932.plc2.org sls= [] site= 1934
+5933 1 n2-2933.plc2.org sls= [] site= 1935
+5934 1 n2-2934.plc2.org sls= [] site= 1936
+5935 1 n2-2935.plc2.org sls= [] site= 1937
+5936 1 n2-2936.plc2.org sls= [] site= 1938
+5937 1 n2-2937.plc2.org sls= [] site= 1939
+5938 1 n2-2938.plc2.org sls= [] site= 1940
+5939 1 n2-2939.plc2.org sls= [] site= 1941
+5940 1 n2-2940.plc2.org sls= [] site= 1942
+5941 1 n2-2941.plc2.org sls= [] site= 1943
+5942 1 n2-2942.plc2.org sls= [] site= 1944
+5943 1 n2-2943.plc2.org sls= [] site= 1945
+5944 1 n2-2944.plc2.org sls= [] site= 1946
+5945 1 n2-2945.plc2.org sls= [] site= 1947
+5946 1 n2-2946.plc2.org sls= [] site= 1948
+5947 1 n2-2947.plc2.org sls= [] site= 1949
+5948 1 n2-2948.plc2.org sls= [] site= 1950
+5949 1 n2-2949.plc2.org sls= [] site= 1951
+5950 1 n2-2950.plc2.org sls= [] site= 1952
+5951 1 n2-2951.plc2.org sls= [] site= 1953
+5952 1 n2-2952.plc2.org sls= [] site= 1954
+5953 1 n2-2953.plc2.org sls= [] site= 1955
+5954 1 n2-2954.plc2.org sls= [] site= 1956
+5955 1 n2-2955.plc2.org sls= [] site= 1957
+5956 1 n2-2956.plc2.org sls= [] site= 1958
+5957 1 n2-2957.plc2.org sls= [] site= 1959
+5958 1 n2-2958.plc2.org sls= [] site= 1960
+5959 1 n2-2959.plc2.org sls= [] site= 1961
+5960 1 n2-2960.plc2.org sls= [] site= 1962
+5961 1 n2-2961.plc2.org sls= [] site= 1963
+5962 1 n2-2962.plc2.org sls= [] site= 1964
+5963 1 n2-2963.plc2.org sls= [] site= 1965
+5964 1 n2-2964.plc2.org sls= [] site= 1966
+5965 1 n2-2965.plc2.org sls= [] site= 1967
+5966 1 n2-2966.plc2.org sls= [] site= 1968
+5967 1 n2-2967.plc2.org sls= [] site= 1969
+5968 1 n2-2968.plc2.org sls= [] site= 1970
+5969 1 n2-2969.plc2.org sls= [] site= 1971
+5970 1 n2-2970.plc2.org sls= [] site= 1972
+5971 1 n2-2971.plc2.org sls= [] site= 1973
+5972 1 n2-2972.plc2.org sls= [] site= 1974
+5973 1 n2-2973.plc2.org sls= [] site= 1975
+5974 1 n2-2974.plc2.org sls= [] site= 1976
+5975 1 n2-2975.plc2.org sls= [] site= 1977
+5976 1 n2-2976.plc2.org sls= [] site= 1978
+5977 1 n2-2977.plc2.org sls= [] site= 1979
+5978 1 n2-2978.plc2.org sls= [] site= 1980
+5979 1 n2-2979.plc2.org sls= [] site= 1981
+5980 1 n2-2980.plc2.org sls= [] site= 1982
+5981 1 n2-2981.plc2.org sls= [] site= 1983
+5982 1 n2-2982.plc2.org sls= [] site= 1984
+5983 1 n2-2983.plc2.org sls= [] site= 1985
+5984 1 n2-2984.plc2.org sls= [] site= 1986
+5985 1 n2-2985.plc2.org sls= [] site= 1987
+5986 1 n2-2986.plc2.org sls= [] site= 1988
+5987 1 n2-2987.plc2.org sls= [] site= 1989
+5988 1 n2-2988.plc2.org sls= [] site= 1990
+5989 1 n2-2989.plc2.org sls= [] site= 1991
+5990 1 n2-2990.plc2.org sls= [] site= 1992
+5991 1 n2-2991.plc2.org sls= [] site= 1993
+5992 1 n2-2992.plc2.org sls= [] site= 1994
+5993 1 n2-2993.plc2.org sls= [] site= 1995
+5994 1 n2-2994.plc2.org sls= [] site= 1996
+5995 1 n2-2995.plc2.org sls= [] site= 1997
+5996 1 n2-2996.plc2.org sls= [] site= 1998
+5997 1 n2-2997.plc2.org sls= [] site= 1999
+5998 1 n2-2998.plc2.org sls= [] site= 2000
+5999 1 n2-2999.plc2.org sls= [] site= 2001
+6000 1 n2-3000.plc2.org sls= [] site= 2002
+01: SLICES
+1 None thone_netflow nodes= [] persons= []
+--- sas= [1, 2, 3, 4, 5] thone_netflow crp= 1
+--- 'expires': 1167126457
+2 None oneb_slice1 nodes= [1, 2, 3, 3001, 3002, 3003] persons= [5, 6, 7]
+--- sas= [6, 7, 8, 9] oneb_slice1 crp= 1
+--- 'expires': 1167126821
+3 None onec_slice2 nodes= [2, 3, 4, 3002, 3003, 3004] persons= [6, 7, 8]
+--- sas= [] onec_slice2 crp= 1
+--- 'expires': 1167126821
+4 None oned_slice3 nodes= [3, 4, 5, 3003, 3004, 3005] persons= [7, 8, 9]
+--- sas= [] oned_slice3 crp= 1
+--- 'expires': 1167126821
+5 None onee_slice4 nodes= [4, 5, 6, 3004, 3005, 3006] persons= [8, 9, 10]
+--- sas= [] onee_slice4 crp= 1
+--- 'expires': 1167126822
+6 None onef_slice5 nodes= [5, 6, 7, 3005, 3006, 3007] persons= [9, 10, 11]
+--- sas= [] onef_slice5 crp= 1
+--- 'expires': 1167126822
+7 None oneg_slice6 nodes= [6, 7, 8, 3006, 3007, 3008] persons= [10, 11, 12]
+--- sas= [] oneg_slice6 crp= 1
+--- 'expires': 1167126822
+8 None oneh_slice7 nodes= [7, 8, 9, 3007, 3008, 3009] persons= [11, 12, 13]
+--- sas= [] oneh_slice7 crp= 1
+--- 'expires': 1167126822
+9 None onei_slice8 nodes= [8, 9, 10, 3008, 3009, 3010] persons= [12, 13, 14]
+--- sas= [] onei_slice8 crp= 1
+--- 'expires': 1167126822
+10 None onej_slice9 nodes= [9, 10, 11, 3009, 3010, 3011] persons= [13, 14, 15]
+--- sas= [] onej_slice9 crp= 1
+--- 'expires': 1167126823
+11 None oneba_slice10 nodes= [10, 11, 12, 3010, 3011, 3012] persons= [14, 15, 16]
+--- sas= [] oneba_slice10 crp= 1
+--- 'expires': 1167126823
+12 None onebb_slice11 nodes= [11, 12, 13, 3011, 3012, 3013] persons= [15, 16, 17]
+--- sas= [] onebb_slice11 crp= 1
+--- 'expires': 1167126823
+13 None onebc_slice12 nodes= [12, 13, 14, 3012, 3013, 3014] persons= [16, 17, 18]
+--- sas= [] onebc_slice12 crp= 1
+--- 'expires': 1167126823
+14 None onebd_slice13 nodes= [13, 14, 15, 3013, 3014, 3015] persons= [17, 18, 19]
+--- sas= [] onebd_slice13 crp= 1
+--- 'expires': 1167126823
+15 None onebe_slice14 nodes= [14, 15, 16, 3014, 3015, 3016] persons= [18, 19, 20]
+--- sas= [] onebe_slice14 crp= 1
+--- 'expires': 1167126824
+16 None onebf_slice15 nodes= [15, 16, 17, 3015, 3016, 3017] persons= [19, 20, 21]
+--- sas= [] onebf_slice15 crp= 1
+--- 'expires': 1167126824
+17 None onebg_slice16 nodes= [16, 17, 18, 3016, 3017, 3018] persons= [20, 21, 22]
+--- sas= [] onebg_slice16 crp= 1
+--- 'expires': 1167126824
+18 None onebh_slice17 nodes= [17, 18, 19, 3017, 3018, 3019] persons= [21, 22, 23]
+--- sas= [] onebh_slice17 crp= 1
+--- 'expires': 1167126824
+19 None onebi_slice18 nodes= [18, 19, 20, 3018, 3019, 3020] persons= [22, 23, 24]
+--- sas= [] onebi_slice18 crp= 1
+--- 'expires': 1167126824
+20 None onebj_slice19 nodes= [19, 20, 21, 3019, 3020, 3021] persons= [23, 24, 25]
+--- sas= [] onebj_slice19 crp= 1
+--- 'expires': 1167126824
+21 None oneca_slice20 nodes= [20, 21, 22, 3020, 3021, 3022] persons= [24, 25, 26]
+--- sas= [] oneca_slice20 crp= 1
+--- 'expires': 1167126825
+22 None onecb_slice21 nodes= [21, 22, 23, 3021, 3022, 3023] persons= [25, 26, 27]
+--- sas= [] onecb_slice21 crp= 1
+--- 'expires': 1167126825
+23 None onecc_slice22 nodes= [22, 23, 24, 3022, 3023, 3024] persons= [26, 27, 28]
+--- sas= [] onecc_slice22 crp= 1
+--- 'expires': 1167126825
+24 None onecd_slice23 nodes= [23, 24, 25, 3023, 3024, 3025] persons= [27, 28, 29]
+--- sas= [] onecd_slice23 crp= 1
+--- 'expires': 1167126825
+25 None onece_slice24 nodes= [24, 25, 26, 3024, 3025, 3026] persons= [28, 29, 30]
+--- sas= [] onece_slice24 crp= 1
+--- 'expires': 1167126825
+26 None onecf_slice25 nodes= [25, 26, 27, 3025, 3026, 3027] persons= [29, 30, 31]
+--- sas= [] onecf_slice25 crp= 1
+--- 'expires': 1167126826
+27 None onecg_slice26 nodes= [26, 27, 28, 3026, 3027, 3028] persons= [30, 31, 32]
+--- sas= [] onecg_slice26 crp= 1
+--- 'expires': 1167126826
+28 None onech_slice27 nodes= [27, 28, 29, 3027, 3028, 3029] persons= [31, 32, 33]
+--- sas= [] onech_slice27 crp= 1
+--- 'expires': 1167126826
+29 None oneci_slice28 nodes= [28, 29, 30, 3028, 3029, 3030] persons= [32, 33, 34]
+--- sas= [] oneci_slice28 crp= 1
+--- 'expires': 1167126826
+30 None onecj_slice29 nodes= [29, 30, 31, 3029, 3030, 3031] persons= [33, 34, 35]
+--- sas= [] onecj_slice29 crp= 1
+--- 'expires': 1167126826
+31 None oneda_slice30 nodes= [30, 31, 32, 3030, 3031, 3032] persons= [34, 35, 36]
+--- sas= [] oneda_slice30 crp= 1
+--- 'expires': 1167126827
+32 None onedb_slice31 nodes= [31, 32, 33, 3031, 3032, 3033] persons= [35, 36, 37]
+--- sas= [] onedb_slice31 crp= 1
+--- 'expires': 1167126827
+33 None onedc_slice32 nodes= [32, 33, 34, 3032, 3033, 3034] persons= [36, 37, 38]
+--- sas= [] onedc_slice32 crp= 1
+--- 'expires': 1167126827
+34 None onedd_slice33 nodes= [33, 34, 35, 3033, 3034, 3035] persons= [37, 38, 39]
+--- sas= [] onedd_slice33 crp= 1
+--- 'expires': 1167126827
+35 None onede_slice34 nodes= [34, 35, 36, 3034, 3035, 3036] persons= [38, 39, 40]
+--- sas= [] onede_slice34 crp= 1
+--- 'expires': 1167126827
+36 None onedf_slice35 nodes= [35, 36, 37, 3035, 3036, 3037] persons= [39, 40, 41]
+--- sas= [] onedf_slice35 crp= 1
+--- 'expires': 1167126828
+37 None onedg_slice36 nodes= [36, 37, 38, 3036, 3037, 3038] persons= [40, 41, 42]
+--- sas= [] onedg_slice36 crp= 1
+--- 'expires': 1167126828
+38 None onedh_slice37 nodes= [37, 38, 39, 3037, 3038, 3039] persons= [41, 42, 43]
+--- sas= [] onedh_slice37 crp= 1
+--- 'expires': 1167126828
+39 None onedi_slice38 nodes= [38, 39, 40, 3038, 3039, 3040] persons= [42, 43, 44]
+--- sas= [] onedi_slice38 crp= 1
+--- 'expires': 1167126828
+40 None onedj_slice39 nodes= [39, 40, 41, 3039, 3040, 3041] persons= [43, 44, 45]
+--- sas= [] onedj_slice39 crp= 1
+--- 'expires': 1167126828
+41 None oneea_slice40 nodes= [40, 41, 42, 3040, 3041, 3042] persons= [44, 45, 46]
+--- sas= [] oneea_slice40 crp= 1
+--- 'expires': 1167126828
+42 None oneeb_slice41 nodes= [41, 42, 43, 3041, 3042, 3043] persons= [45, 46, 47]
+--- sas= [] oneeb_slice41 crp= 1
+--- 'expires': 1167126829
+43 None oneec_slice42 nodes= [42, 43, 44, 3042, 3043, 3044] persons= [46, 47, 48]
+--- sas= [] oneec_slice42 crp= 1
+--- 'expires': 1167126829
+44 None oneed_slice43 nodes= [43, 44, 45, 3043, 3044, 3045] persons= [47, 48, 49]
+--- sas= [] oneed_slice43 crp= 1
+--- 'expires': 1167126829
+45 None oneee_slice44 nodes= [44, 45, 46, 3044, 3045, 3046] persons= [48, 49, 50]
+--- sas= [] oneee_slice44 crp= 1
+--- 'expires': 1167126829
+46 None oneef_slice45 nodes= [45, 46, 47, 3045, 3046, 3047] persons= [49, 50, 51]
+--- sas= [] oneef_slice45 crp= 1
+--- 'expires': 1167126829
+47 None oneeg_slice46 nodes= [46, 47, 48, 3046, 3047, 3048] persons= [50, 51, 52]
+--- sas= [] oneeg_slice46 crp= 1
+--- 'expires': 1167126830
+48 None oneeh_slice47 nodes= [47, 48, 49, 3047, 3048, 3049] persons= [51, 52, 53]
+--- sas= [] oneeh_slice47 crp= 1
+--- 'expires': 1167126830
+49 None oneei_slice48 nodes= [48, 49, 50, 3048, 3049, 3050] persons= [52, 53, 54]
+--- sas= [] oneei_slice48 crp= 1
+--- 'expires': 1167126830
+50 None oneej_slice49 nodes= [49, 50, 51, 3049, 3050, 3051] persons= [53, 54, 55]
+--- sas= [] oneej_slice49 crp= 1
+--- 'expires': 1167126830
+51 None onefa_slice50 nodes= [50, 51, 52, 3050, 3051, 3052] persons= [54, 55, 56]
+--- sas= [] onefa_slice50 crp= 1
+--- 'expires': 1167126830
+52 None onefb_slice51 nodes= [51, 52, 53, 3051, 3052, 3053] persons= [55, 56, 57]
+--- sas= [] onefb_slice51 crp= 1
+--- 'expires': 1167126831
+53 None onefc_slice52 nodes= [52, 53, 54, 3052, 3053, 3054] persons= [56, 57, 58]
+--- sas= [] onefc_slice52 crp= 1
+--- 'expires': 1167126831
+54 None onefd_slice53 nodes= [53, 54, 55, 3053, 3054, 3055] persons= [57, 58, 59]
+--- sas= [] onefd_slice53 crp= 1
+--- 'expires': 1167126831
+55 None onefe_slice54 nodes= [54, 55, 56, 3054, 3055, 3056] persons= [58, 59, 60]
+--- sas= [] onefe_slice54 crp= 1
+--- 'expires': 1167126831
+56 None oneff_slice55 nodes= [55, 56, 57, 3055, 3056, 3057] persons= [59, 60, 61]
+--- sas= [] oneff_slice55 crp= 1
+--- 'expires': 1167126831
+57 None onefg_slice56 nodes= [56, 57, 58, 3056, 3057, 3058] persons= [60, 61, 62]
+--- sas= [] onefg_slice56 crp= 1
+--- 'expires': 1167126832
+58 None onefh_slice57 nodes= [57, 58, 59, 3057, 3058, 3059] persons= [61, 62, 63]
+--- sas= [] onefh_slice57 crp= 1
+--- 'expires': 1167126832
+59 None onefi_slice58 nodes= [58, 59, 60, 3058, 3059, 3060] persons= [62, 63, 64]
+--- sas= [] onefi_slice58 crp= 1
+--- 'expires': 1167126832
+60 None onefj_slice59 nodes= [59, 60, 61, 3059, 3060, 3061] persons= [63, 64, 65]
+--- sas= [] onefj_slice59 crp= 1
+--- 'expires': 1167126832
+61 None onega_slice60 nodes= [60, 61, 62, 3060, 3061, 3062] persons= [64, 65, 66]
+--- sas= [] onega_slice60 crp= 1
+--- 'expires': 1167126832
+62 None onegb_slice61 nodes= [61, 62, 63, 3061, 3062, 3063] persons= [65, 66, 67]
+--- sas= [] onegb_slice61 crp= 1
+--- 'expires': 1167126833
+63 None onegc_slice62 nodes= [62, 63, 64, 3062, 3063, 3064] persons= [66, 67, 68]
+--- sas= [] onegc_slice62 crp= 1
+--- 'expires': 1167126833
+64 None onegd_slice63 nodes= [63, 64, 65, 3063, 3064, 3065] persons= [67, 68, 69]
+--- sas= [] onegd_slice63 crp= 1
+--- 'expires': 1167126833
+65 None onege_slice64 nodes= [64, 65, 66, 3064, 3065, 3066] persons= [68, 69, 70]
+--- sas= [] onege_slice64 crp= 1
+--- 'expires': 1167126833
+66 None onegf_slice65 nodes= [65, 66, 67, 3065, 3066, 3067] persons= [69, 70, 71]
+--- sas= [] onegf_slice65 crp= 1
+--- 'expires': 1167126833
+67 None onegg_slice66 nodes= [66, 67, 68, 3066, 3067, 3068] persons= [70, 71, 72]
+--- sas= [] onegg_slice66 crp= 1
+--- 'expires': 1167126834
+68 None onegh_slice67 nodes= [67, 68, 69, 3067, 3068, 3069] persons= [71, 72, 73]
+--- sas= [] onegh_slice67 crp= 1
+--- 'expires': 1167126834
+69 None onegi_slice68 nodes= [68, 69, 70, 3068, 3069, 3070] persons= [72, 73, 74]
+--- sas= [] onegi_slice68 crp= 1
+--- 'expires': 1167126834
+70 None onegj_slice69 nodes= [69, 70, 71, 3069, 3070, 3071] persons= [73, 74, 75]
+--- sas= [] onegj_slice69 crp= 1
+--- 'expires': 1167126834
+71 None oneha_slice70 nodes= [70, 71, 72, 3070, 3071, 3072] persons= [74, 75, 76]
+--- sas= [] oneha_slice70 crp= 1
+--- 'expires': 1167126834
+72 None onehb_slice71 nodes= [71, 72, 73, 3071, 3072, 3073] persons= [75, 76, 77]
+--- sas= [] onehb_slice71 crp= 1
+--- 'expires': 1167126835
+73 None onehc_slice72 nodes= [72, 73, 74, 3072, 3073, 3074] persons= [76, 77, 78]
+--- sas= [] onehc_slice72 crp= 1
+--- 'expires': 1167126835
+74 None onehd_slice73 nodes= [73, 74, 75, 3073, 3074, 3075] persons= [77, 78, 79]
+--- sas= [] onehd_slice73 crp= 1
+--- 'expires': 1167126835
+75 None onehe_slice74 nodes= [74, 75, 76, 3074, 3075, 3076] persons= [78, 79, 80]
+--- sas= [] onehe_slice74 crp= 1
+--- 'expires': 1167126835
+76 None onehf_slice75 nodes= [75, 76, 77, 3075, 3076, 3077] persons= [79, 80, 81]
+--- sas= [] onehf_slice75 crp= 1
+--- 'expires': 1167126835
+77 None onehg_slice76 nodes= [76, 77, 78, 3076, 3077, 3078] persons= [80, 81, 82]
+--- sas= [] onehg_slice76 crp= 1
+--- 'expires': 1167126836
+78 None onehh_slice77 nodes= [77, 78, 79, 3077, 3078, 3079] persons= [81, 82, 83]
+--- sas= [] onehh_slice77 crp= 1
+--- 'expires': 1167126836
+79 None onehi_slice78 nodes= [78, 79, 80, 3078, 3079, 3080] persons= [82, 83, 84]
+--- sas= [] onehi_slice78 crp= 1
+--- 'expires': 1167126836
+80 None onehj_slice79 nodes= [79, 80, 81, 3079, 3080, 3081] persons= [83, 84, 85]
+--- sas= [] onehj_slice79 crp= 1
+--- 'expires': 1167126836
+81 None oneia_slice80 nodes= [80, 81, 82, 3080, 3081, 3082] persons= [84, 85, 86]
+--- sas= [] oneia_slice80 crp= 1
+--- 'expires': 1167126836
+82 None oneib_slice81 nodes= [81, 82, 83, 3081, 3082, 3083] persons= [85, 86, 87]
+--- sas= [] oneib_slice81 crp= 1
+--- 'expires': 1167126836
+83 None oneic_slice82 nodes= [82, 83, 84, 3082, 3083, 3084] persons= [86, 87, 88]
+--- sas= [] oneic_slice82 crp= 1
+--- 'expires': 1167126837
+84 None oneid_slice83 nodes= [83, 84, 85, 3083, 3084, 3085] persons= [87, 88, 89]
+--- sas= [] oneid_slice83 crp= 1
+--- 'expires': 1167126837
+85 None oneie_slice84 nodes= [84, 85, 86, 3084, 3085, 3086] persons= [88, 89, 90]
+--- sas= [] oneie_slice84 crp= 1
+--- 'expires': 1167126837
+86 None oneif_slice85 nodes= [85, 86, 87, 3085, 3086, 3087] persons= [89, 90, 91]
+--- sas= [] oneif_slice85 crp= 1
+--- 'expires': 1167126837
+87 None oneig_slice86 nodes= [86, 87, 88, 3086, 3087, 3088] persons= [90, 91, 92]
+--- sas= [] oneig_slice86 crp= 1
+--- 'expires': 1167126837
+88 None oneih_slice87 nodes= [87, 88, 89, 3087, 3088, 3089] persons= [91, 92, 93]
+--- sas= [] oneih_slice87 crp= 1
+--- 'expires': 1167126838
+89 None oneii_slice88 nodes= [88, 89, 90, 3088, 3089, 3090] persons= [92, 93, 94]
+--- sas= [] oneii_slice88 crp= 1
+--- 'expires': 1167126838
+90 None oneij_slice89 nodes= [89, 90, 91, 3089, 3090, 3091] persons= [93, 94, 95]
+--- sas= [] oneij_slice89 crp= 1
+--- 'expires': 1167126838
+91 None oneja_slice90 nodes= [90, 91, 92, 3090, 3091, 3092] persons= [94, 95, 96]
+--- sas= [] oneja_slice90 crp= 1
+--- 'expires': 1167126838
+92 None onejb_slice91 nodes= [91, 92, 93, 3091, 3092, 3093] persons= [95, 96, 97]
+--- sas= [] onejb_slice91 crp= 1
+--- 'expires': 1167126838
+93 None onejc_slice92 nodes= [92, 93, 94, 3092, 3093, 3094] persons= [96, 97, 98]
+--- sas= [] onejc_slice92 crp= 1
+--- 'expires': 1167126839
+94 None onejd_slice93 nodes= [93, 94, 95, 3093, 3094, 3095] persons= [97, 98, 99]
+--- sas= [] onejd_slice93 crp= 1
+--- 'expires': 1167126839
+95 None oneje_slice94 nodes= [94, 95, 96, 3094, 3095, 3096] persons= [98, 99, 100]
+--- sas= [] oneje_slice94 crp= 1
+--- 'expires': 1167126839
+96 None onejf_slice95 nodes= [95, 96, 97, 3095, 3096, 3097] persons= [99, 100, 101]
+--- sas= [] onejf_slice95 crp= 1
+--- 'expires': 1167126839
+97 None onejg_slice96 nodes= [96, 97, 98, 3096, 3097, 3098] persons= [100, 101, 102]
+--- sas= [] onejg_slice96 crp= 1
+--- 'expires': 1167126839
+98 None onejh_slice97 nodes= [97, 98, 99, 3097, 3098, 3099] persons= [101, 102, 103]
+--- sas= [] onejh_slice97 crp= 1
+--- 'expires': 1167126840
+99 None oneji_slice98 nodes= [98, 99, 100, 3098, 3099, 3100] persons= [102, 103, 104]
+--- sas= [] oneji_slice98 crp= 1
+--- 'expires': 1167126840
+100 None onejj_slice99 nodes= [99, 100, 101, 3099, 3100, 3101] persons= [103, 104, 105]
+--- sas= [] onejj_slice99 crp= 1
+--- 'expires': 1167126840
+101 None onebaa_slice100 nodes= [100, 101, 102, 3100, 3101, 3102] persons= [104, 105, 106]
+--- sas= [] onebaa_slice100 crp= 1
+--- 'expires': 1167126840
+102 None onebab_slice101 nodes= [101, 102, 103, 3101, 3102, 3103] persons= [105, 106, 107]
+--- sas= [] onebab_slice101 crp= 1
+--- 'expires': 1167126840
+103 None onebac_slice102 nodes= [102, 103, 104, 3102, 3103, 3104] persons= [106, 107, 108]
+--- sas= [] onebac_slice102 crp= 1
+--- 'expires': 1167126841
+104 None onebad_slice103 nodes= [103, 104, 105, 3103, 3104, 3105] persons= [107, 108, 109]
+--- sas= [] onebad_slice103 crp= 1
+--- 'expires': 1167126841
+105 None onebae_slice104 nodes= [104, 105, 106, 3104, 3105, 3106] persons= [108, 109, 110]
+--- sas= [] onebae_slice104 crp= 1
+--- 'expires': 1167126841
+106 None onebaf_slice105 nodes= [105, 106, 107, 3105, 3106, 3107] persons= [109, 110, 111]
+--- sas= [] onebaf_slice105 crp= 1
+--- 'expires': 1167126841
+107 None onebag_slice106 nodes= [106, 107, 108, 3106, 3107, 3108] persons= [110, 111, 112]
+--- sas= [] onebag_slice106 crp= 1
+--- 'expires': 1167126841
+108 None onebah_slice107 nodes= [107, 108, 109, 3107, 3108, 3109] persons= [111, 112, 113]
+--- sas= [] onebah_slice107 crp= 1
+--- 'expires': 1167126842
+109 None onebai_slice108 nodes= [108, 109, 110, 3108, 3109, 3110] persons= [112, 113, 114]
+--- sas= [] onebai_slice108 crp= 1
+--- 'expires': 1167126842
+110 None onebaj_slice109 nodes= [109, 110, 111, 3109, 3110, 3111] persons= [113, 114, 115]
+--- sas= [] onebaj_slice109 crp= 1
+--- 'expires': 1167126842
+111 None onebba_slice110 nodes= [110, 111, 112, 3110, 3111, 3112] persons= [114, 115, 116]
+--- sas= [] onebba_slice110 crp= 1
+--- 'expires': 1167126842
+112 None onebbb_slice111 nodes= [111, 112, 113, 3111, 3112, 3113] persons= [115, 116, 117]
+--- sas= [] onebbb_slice111 crp= 1
+--- 'expires': 1167126842
+113 None onebbc_slice112 nodes= [112, 113, 114, 3112, 3113, 3114] persons= [116, 117, 118]
+--- sas= [] onebbc_slice112 crp= 1
+--- 'expires': 1167126843
+114 None onebbd_slice113 nodes= [113, 114, 115, 3113, 3114, 3115] persons= [117, 118, 119]
+--- sas= [] onebbd_slice113 crp= 1
+--- 'expires': 1167126843
+115 None onebbe_slice114 nodes= [114, 115, 116, 3114, 3115, 3116] persons= [118, 119, 120]
+--- sas= [] onebbe_slice114 crp= 1
+--- 'expires': 1167126843
+116 None onebbf_slice115 nodes= [115, 116, 117, 3115, 3116, 3117] persons= [119, 120, 121]
+--- sas= [] onebbf_slice115 crp= 1
+--- 'expires': 1167126843
+117 None onebbg_slice116 nodes= [116, 117, 118, 3116, 3117, 3118] persons= [120, 121, 122]
+--- sas= [] onebbg_slice116 crp= 1
+--- 'expires': 1167126843
+118 None onebbh_slice117 nodes= [117, 118, 119, 3117, 3118, 3119] persons= [121, 122, 123]
+--- sas= [] onebbh_slice117 crp= 1
+--- 'expires': 1167126844
+119 None onebbi_slice118 nodes= [118, 119, 120, 3118, 3119, 3120] persons= [122, 123, 124]
+--- sas= [] onebbi_slice118 crp= 1
+--- 'expires': 1167126844
+120 None onebbj_slice119 nodes= [119, 120, 121, 3119, 3120, 3121] persons= [123, 124, 125]
+--- sas= [] onebbj_slice119 crp= 1
+--- 'expires': 1167126844
+121 None onebca_slice120 nodes= [120, 121, 122, 3120, 3121, 3122] persons= [124, 125, 126]
+--- sas= [] onebca_slice120 crp= 1
+--- 'expires': 1167126844
+122 None onebcb_slice121 nodes= [121, 122, 123, 3121, 3122, 3123] persons= [125, 126, 127]
+--- sas= [] onebcb_slice121 crp= 1
+--- 'expires': 1167126844
+123 None onebcc_slice122 nodes= [122, 123, 124, 3122, 3123, 3124] persons= [126, 127, 128]
+--- sas= [] onebcc_slice122 crp= 1
+--- 'expires': 1167126845
+124 None onebcd_slice123 nodes= [123, 124, 125, 3123, 3124, 3125] persons= [127, 128, 129]
+--- sas= [] onebcd_slice123 crp= 1
+--- 'expires': 1167126845
+125 None onebce_slice124 nodes= [124, 125, 126, 3124, 3125, 3126] persons= [128, 129, 130]
+--- sas= [] onebce_slice124 crp= 1
+--- 'expires': 1167126845
+126 None onebcf_slice125 nodes= [125, 126, 127, 3125, 3126, 3127] persons= [129, 130, 131]
+--- sas= [] onebcf_slice125 crp= 1
+--- 'expires': 1167126845
+127 None onebcg_slice126 nodes= [126, 127, 128, 3126, 3127, 3128] persons= [130, 131, 132]
+--- sas= [] onebcg_slice126 crp= 1
+--- 'expires': 1167126846
+128 None onebch_slice127 nodes= [127, 128, 129, 3127, 3128, 3129] persons= [131, 132, 133]
+--- sas= [] onebch_slice127 crp= 1
+--- 'expires': 1167126846
+129 None onebci_slice128 nodes= [128, 129, 130, 3128, 3129, 3130] persons= [132, 133, 134]
+--- sas= [] onebci_slice128 crp= 1
+--- 'expires': 1167126846
+130 None onebcj_slice129 nodes= [129, 130, 131, 3129, 3130, 3131] persons= [133, 134, 135]
+--- sas= [] onebcj_slice129 crp= 1
+--- 'expires': 1167126846
+131 None onebda_slice130 nodes= [130, 131, 132, 3130, 3131, 3132] persons= [134, 135, 136]
+--- sas= [] onebda_slice130 crp= 1
+--- 'expires': 1167126846
+132 None onebdb_slice131 nodes= [131, 132, 133, 3131, 3132, 3133] persons= [135, 136, 137]
+--- sas= [] onebdb_slice131 crp= 1
+--- 'expires': 1167126847
+133 None onebdc_slice132 nodes= [132, 133, 134, 3132, 3133, 3134] persons= [136, 137, 138]
+--- sas= [] onebdc_slice132 crp= 1
+--- 'expires': 1167126847
+134 None onebdd_slice133 nodes= [133, 134, 135, 3133, 3134, 3135] persons= [137, 138, 139]
+--- sas= [] onebdd_slice133 crp= 1
+--- 'expires': 1167126847
+135 None onebde_slice134 nodes= [134, 135, 136, 3134, 3135, 3136] persons= [138, 139, 140]
+--- sas= [] onebde_slice134 crp= 1
+--- 'expires': 1167126847
+136 None onebdf_slice135 nodes= [135, 136, 137, 3135, 3136, 3137] persons= [139, 140, 141]
+--- sas= [] onebdf_slice135 crp= 1
+--- 'expires': 1167126847
+137 None onebdg_slice136 nodes= [136, 137, 138, 3136, 3137, 3138] persons= [140, 141, 142]
+--- sas= [] onebdg_slice136 crp= 1
+--- 'expires': 1167126848
+138 None onebdh_slice137 nodes= [137, 138, 139, 3137, 3138, 3139] persons= [141, 142, 143]
+--- sas= [] onebdh_slice137 crp= 1
+--- 'expires': 1167126848
+139 None onebdi_slice138 nodes= [138, 139, 140, 3138, 3139, 3140] persons= [142, 143, 144]
+--- sas= [] onebdi_slice138 crp= 1
+--- 'expires': 1167126848
+140 None onebdj_slice139 nodes= [139, 140, 141, 3139, 3140, 3141] persons= [143, 144, 145]
+--- sas= [] onebdj_slice139 crp= 1
+--- 'expires': 1167126848
+141 None onebea_slice140 nodes= [140, 141, 142, 3140, 3141, 3142] persons= [144, 145, 146]
+--- sas= [] onebea_slice140 crp= 1
+--- 'expires': 1167126848
+142 None onebeb_slice141 nodes= [141, 142, 143, 3141, 3142, 3143] persons= [145, 146, 147]
+--- sas= [] onebeb_slice141 crp= 1
+--- 'expires': 1167126849
+143 None onebec_slice142 nodes= [142, 143, 144, 3142, 3143, 3144] persons= [146, 147, 148]
+--- sas= [] onebec_slice142 crp= 1
+--- 'expires': 1167126849
+144 None onebed_slice143 nodes= [143, 144, 145, 3143, 3144, 3145] persons= [147, 148, 149]
+--- sas= [] onebed_slice143 crp= 1
+--- 'expires': 1167126849
+145 None onebee_slice144 nodes= [144, 145, 146, 3144, 3145, 3146] persons= [148, 149, 150]
+--- sas= [] onebee_slice144 crp= 1
+--- 'expires': 1167126849
+146 None onebef_slice145 nodes= [145, 146, 147, 3145, 3146, 3147] persons= [149, 150, 151]
+--- sas= [] onebef_slice145 crp= 1
+--- 'expires': 1167126849
+147 None onebeg_slice146 nodes= [146, 147, 148, 3146, 3147, 3148] persons= [150, 151, 152]
+--- sas= [] onebeg_slice146 crp= 1
+--- 'expires': 1167126850
+148 None onebeh_slice147 nodes= [147, 148, 149, 3147, 3148, 3149] persons= [151, 152, 153]
+--- sas= [] onebeh_slice147 crp= 1
+--- 'expires': 1167126850
+149 None onebei_slice148 nodes= [148, 149, 150, 3148, 3149, 3150] persons= [152, 153, 154]
+--- sas= [] onebei_slice148 crp= 1
+--- 'expires': 1167126850
+150 None onebej_slice149 nodes= [149, 150, 151, 3149, 3150, 3151] persons= [153, 154, 155]
+--- sas= [] onebej_slice149 crp= 1
+--- 'expires': 1167126850
+151 None onebfa_slice150 nodes= [150, 151, 152, 3150, 3151, 3152] persons= [154, 155, 156]
+--- sas= [] onebfa_slice150 crp= 1
+--- 'expires': 1167126850
+152 None onebfb_slice151 nodes= [151, 152, 153, 3151, 3152, 3153] persons= [155, 156, 157]
+--- sas= [] onebfb_slice151 crp= 1
+--- 'expires': 1167126851
+153 None onebfc_slice152 nodes= [152, 153, 154, 3152, 3153, 3154] persons= [156, 157, 158]
+--- sas= [] onebfc_slice152 crp= 1
+--- 'expires': 1167126851
+154 None onebfd_slice153 nodes= [153, 154, 155, 3153, 3154, 3155] persons= [157, 158, 159]
+--- sas= [] onebfd_slice153 crp= 1
+--- 'expires': 1167126851
+155 None onebfe_slice154 nodes= [154, 155, 156, 3154, 3155, 3156] persons= [158, 159, 160]
+--- sas= [] onebfe_slice154 crp= 1
+--- 'expires': 1167126851
+156 None onebff_slice155 nodes= [155, 156, 157, 3155, 3156, 3157] persons= [159, 160, 161]
+--- sas= [] onebff_slice155 crp= 1
+--- 'expires': 1167126852
+157 None onebfg_slice156 nodes= [156, 157, 158, 3156, 3157, 3158] persons= [160, 161, 162]
+--- sas= [] onebfg_slice156 crp= 1
+--- 'expires': 1167126852
+158 None onebfh_slice157 nodes= [157, 158, 159, 3157, 3158, 3159] persons= [161, 162, 163]
+--- sas= [] onebfh_slice157 crp= 1
+--- 'expires': 1167126852
+159 None onebfi_slice158 nodes= [158, 159, 160, 3158, 3159, 3160] persons= [162, 163, 164]
+--- sas= [] onebfi_slice158 crp= 1
+--- 'expires': 1167126852
+160 None onebfj_slice159 nodes= [159, 160, 161, 3159, 3160, 3161] persons= [163, 164, 165]
+--- sas= [] onebfj_slice159 crp= 1
+--- 'expires': 1167126852
+161 None onebga_slice160 nodes= [160, 161, 162, 3160, 3161, 3162] persons= [164, 165, 166]
+--- sas= [] onebga_slice160 crp= 1
+--- 'expires': 1167126853
+162 None onebgb_slice161 nodes= [161, 162, 163, 3161, 3162, 3163] persons= [165, 166, 167]
+--- sas= [] onebgb_slice161 crp= 1
+--- 'expires': 1167126853
+163 None onebgc_slice162 nodes= [162, 163, 164, 3162, 3163, 3164] persons= [166, 167, 168]
+--- sas= [] onebgc_slice162 crp= 1
+--- 'expires': 1167126853
+164 None onebgd_slice163 nodes= [163, 164, 165, 3163, 3164, 3165] persons= [167, 168, 169]
+--- sas= [] onebgd_slice163 crp= 1
+--- 'expires': 1167126853
+165 None onebge_slice164 nodes= [164, 165, 166, 3164, 3165, 3166] persons= [168, 169, 170]
+--- sas= [] onebge_slice164 crp= 1
+--- 'expires': 1167126853
+166 None onebgf_slice165 nodes= [165, 166, 167, 3165, 3166, 3167] persons= [169, 170, 171]
+--- sas= [] onebgf_slice165 crp= 1
+--- 'expires': 1167126854
+167 None onebgg_slice166 nodes= [166, 167, 168, 3166, 3167, 3168] persons= [170, 171, 172]
+--- sas= [] onebgg_slice166 crp= 1
+--- 'expires': 1167126854
+168 None onebgh_slice167 nodes= [167, 168, 169, 3167, 3168, 3169] persons= [171, 172, 173]
+--- sas= [] onebgh_slice167 crp= 1
+--- 'expires': 1167126854
+169 None onebgi_slice168 nodes= [168, 169, 170, 3168, 3169, 3170] persons= [172, 173, 174]
+--- sas= [] onebgi_slice168 crp= 1
+--- 'expires': 1167126854
+170 None onebgj_slice169 nodes= [169, 170, 171, 3169, 3170, 3171] persons= [173, 174, 175]
+--- sas= [] onebgj_slice169 crp= 1
+--- 'expires': 1167126854
+171 None onebha_slice170 nodes= [170, 171, 172, 3170, 3171, 3172] persons= [174, 175, 176]
+--- sas= [] onebha_slice170 crp= 1
+--- 'expires': 1167126855
+172 None onebhb_slice171 nodes= [171, 172, 173, 3171, 3172, 3173] persons= [175, 176, 177]
+--- sas= [] onebhb_slice171 crp= 1
+--- 'expires': 1167126855
+173 None onebhc_slice172 nodes= [172, 173, 174, 3172, 3173, 3174] persons= [176, 177, 178]
+--- sas= [] onebhc_slice172 crp= 1
+--- 'expires': 1167126855
+174 None onebhd_slice173 nodes= [173, 174, 175, 3173, 3174, 3175] persons= [177, 178, 179]
+--- sas= [] onebhd_slice173 crp= 1
+--- 'expires': 1167126855
+175 None onebhe_slice174 nodes= [174, 175, 176, 3174, 3175, 3176] persons= [178, 179, 180]
+--- sas= [] onebhe_slice174 crp= 1
+--- 'expires': 1167126856
+176 None onebhf_slice175 nodes= [175, 176, 177, 3175, 3176, 3177] persons= [179, 180, 181]
+--- sas= [] onebhf_slice175 crp= 1
+--- 'expires': 1167126856
+177 None onebhg_slice176 nodes= [176, 177, 178, 3176, 3177, 3178] persons= [180, 181, 182]
+--- sas= [] onebhg_slice176 crp= 1
+--- 'expires': 1167126856
+178 None onebhh_slice177 nodes= [177, 178, 179, 3177, 3178, 3179] persons= [181, 182, 183]
+--- sas= [] onebhh_slice177 crp= 1
+--- 'expires': 1167126856
+179 None onebhi_slice178 nodes= [178, 179, 180, 3178, 3179, 3180] persons= [182, 183, 184]
+--- sas= [] onebhi_slice178 crp= 1
+--- 'expires': 1167126856
+180 None onebhj_slice179 nodes= [179, 180, 181, 3179, 3180, 3181] persons= [183, 184, 185]
+--- sas= [] onebhj_slice179 crp= 1
+--- 'expires': 1167126857
+181 None onebia_slice180 nodes= [180, 181, 182, 3180, 3181, 3182] persons= [184, 185, 186]
+--- sas= [] onebia_slice180 crp= 1
+--- 'expires': 1167126857
+182 None onebib_slice181 nodes= [181, 182, 183, 3181, 3182, 3183] persons= [185, 186, 187]
+--- sas= [] onebib_slice181 crp= 1
+--- 'expires': 1167126857
+183 None onebic_slice182 nodes= [182, 183, 184, 3182, 3183, 3184] persons= [186, 187, 188]
+--- sas= [] onebic_slice182 crp= 1
+--- 'expires': 1167126857
+184 None onebid_slice183 nodes= [183, 184, 185, 3183, 3184, 3185] persons= [187, 188, 189]
+--- sas= [] onebid_slice183 crp= 1
+--- 'expires': 1167126857
+185 None onebie_slice184 nodes= [184, 185, 186, 3184, 3185, 3186] persons= [188, 189, 190]
+--- sas= [] onebie_slice184 crp= 1
+--- 'expires': 1167126858
+186 None onebif_slice185 nodes= [185, 186, 187, 3185, 3186, 3187] persons= [189, 190, 191]
+--- sas= [] onebif_slice185 crp= 1
+--- 'expires': 1167126858
+187 None onebig_slice186 nodes= [186, 187, 188, 3186, 3187, 3188] persons= [190, 191, 192]
+--- sas= [] onebig_slice186 crp= 1
+--- 'expires': 1167126858
+188 None onebih_slice187 nodes= [187, 188, 189, 3187, 3188, 3189] persons= [191, 192, 193]
+--- sas= [] onebih_slice187 crp= 1
+--- 'expires': 1167126858
+189 None onebii_slice188 nodes= [188, 189, 190, 3188, 3189, 3190] persons= [192, 193, 194]
+--- sas= [] onebii_slice188 crp= 1
+--- 'expires': 1167126859
+190 None onebij_slice189 nodes= [189, 190, 191, 3189, 3190, 3191] persons= [193, 194, 195]
+--- sas= [] onebij_slice189 crp= 1
+--- 'expires': 1167126859
+191 None onebja_slice190 nodes= [190, 191, 192, 3190, 3191, 3192] persons= [194, 195, 196]
+--- sas= [] onebja_slice190 crp= 1
+--- 'expires': 1167126859
+192 None onebjb_slice191 nodes= [191, 192, 193, 3191, 3192, 3193] persons= [195, 196, 197]
+--- sas= [] onebjb_slice191 crp= 1
+--- 'expires': 1167126859
+193 None onebjc_slice192 nodes= [192, 193, 194, 3192, 3193, 3194] persons= [196, 197, 198]
+--- sas= [] onebjc_slice192 crp= 1
+--- 'expires': 1167126859
+194 None onebjd_slice193 nodes= [193, 194, 195, 3193, 3194, 3195] persons= [197, 198, 199]
+--- sas= [] onebjd_slice193 crp= 1
+--- 'expires': 1167126860
+195 None onebje_slice194 nodes= [194, 195, 196, 3194, 3195, 3196] persons= [198, 199, 200]
+--- sas= [] onebje_slice194 crp= 1
+--- 'expires': 1167126860
+196 None onebjf_slice195 nodes= [195, 196, 197, 3195, 3196, 3197] persons= [199, 200, 201]
+--- sas= [] onebjf_slice195 crp= 1
+--- 'expires': 1167126860
+197 None onebjg_slice196 nodes= [196, 197, 198, 3196, 3197, 3198] persons= [200, 201, 202]
+--- sas= [] onebjg_slice196 crp= 1
+--- 'expires': 1167126860
+198 None onebjh_slice197 nodes= [197, 198, 199, 3197, 3198, 3199] persons= [201, 202, 203]
+--- sas= [] onebjh_slice197 crp= 1
+--- 'expires': 1167126860
+199 None onebji_slice198 nodes= [198, 199, 200, 3198, 3199, 3200] persons= [202, 203, 204]
+--- sas= [] onebji_slice198 crp= 1
+--- 'expires': 1167126861
+200 None onebjj_slice199 nodes= [199, 200, 201, 3199, 3200, 3201] persons= [203, 204, 205]
+--- sas= [] onebjj_slice199 crp= 1
+--- 'expires': 1167126861
+201 None onecaa_slice200 nodes= [200, 201, 202, 3200, 3201, 3202] persons= [204, 205, 206]
+--- sas= [] onecaa_slice200 crp= 1
+--- 'expires': 1167126861
+202 None onecab_slice201 nodes= [201, 202, 203, 3201, 3202, 3203] persons= [205, 206, 207]
+--- sas= [] onecab_slice201 crp= 1
+--- 'expires': 1167126861
+203 None onecac_slice202 nodes= [202, 203, 204, 3202, 3203, 3204] persons= [206, 207, 208]
+--- sas= [] onecac_slice202 crp= 1
+--- 'expires': 1167126862
+204 None onecad_slice203 nodes= [203, 204, 205, 3203, 3204, 3205] persons= [207, 208, 209]
+--- sas= [] onecad_slice203 crp= 1
+--- 'expires': 1167126862
+205 None onecae_slice204 nodes= [204, 205, 206, 3204, 3205, 3206] persons= [208, 209, 210]
+--- sas= [] onecae_slice204 crp= 1
+--- 'expires': 1167126862
+206 None onecaf_slice205 nodes= [205, 206, 207, 3205, 3206, 3207] persons= [209, 210, 211]
+--- sas= [] onecaf_slice205 crp= 1
+--- 'expires': 1167126862
+207 None onecag_slice206 nodes= [206, 207, 208, 3206, 3207, 3208] persons= [210, 211, 212]
+--- sas= [] onecag_slice206 crp= 1
+--- 'expires': 1167126862
+208 None onecah_slice207 nodes= [207, 208, 209, 3207, 3208, 3209] persons= [211, 212, 213]
+--- sas= [] onecah_slice207 crp= 1
+--- 'expires': 1167126863
+209 None onecai_slice208 nodes= [208, 209, 210, 3208, 3209, 3210] persons= [212, 213, 214]
+--- sas= [] onecai_slice208 crp= 1
+--- 'expires': 1167126863
+210 None onecaj_slice209 nodes= [209, 210, 211, 3209, 3210, 3211] persons= [213, 214, 215]
+--- sas= [] onecaj_slice209 crp= 1
+--- 'expires': 1167126863
+211 None onecba_slice210 nodes= [210, 211, 212, 3210, 3211, 3212] persons= [214, 215, 216]
+--- sas= [] onecba_slice210 crp= 1
+--- 'expires': 1167126863
+212 None onecbb_slice211 nodes= [211, 212, 213, 3211, 3212, 3213] persons= [215, 216, 217]
+--- sas= [] onecbb_slice211 crp= 1
+--- 'expires': 1167126863
+213 None onecbc_slice212 nodes= [212, 213, 214, 3212, 3213, 3214] persons= [216, 217, 218]
+--- sas= [] onecbc_slice212 crp= 1
+--- 'expires': 1167126864
+214 None onecbd_slice213 nodes= [213, 214, 215, 3213, 3214, 3215] persons= [217, 218, 219]
+--- sas= [] onecbd_slice213 crp= 1
+--- 'expires': 1167126864
+215 None onecbe_slice214 nodes= [214, 215, 216, 3214, 3215, 3216] persons= [218, 219, 220]
+--- sas= [] onecbe_slice214 crp= 1
+--- 'expires': 1167126864
+216 None onecbf_slice215 nodes= [215, 216, 217, 3215, 3216, 3217] persons= [219, 220, 221]
+--- sas= [] onecbf_slice215 crp= 1
+--- 'expires': 1167126864
+217 None onecbg_slice216 nodes= [216, 217, 218, 3216, 3217, 3218] persons= [220, 221, 222]
+--- sas= [] onecbg_slice216 crp= 1
+--- 'expires': 1167126865
+218 None onecbh_slice217 nodes= [217, 218, 219, 3217, 3218, 3219] persons= [221, 222, 223]
+--- sas= [] onecbh_slice217 crp= 1
+--- 'expires': 1167126865
+219 None onecbi_slice218 nodes= [218, 219, 220, 3218, 3219, 3220] persons= [222, 223, 224]
+--- sas= [] onecbi_slice218 crp= 1
+--- 'expires': 1167126865
+220 None onecbj_slice219 nodes= [219, 220, 221, 3219, 3220, 3221] persons= [223, 224, 225]
+--- sas= [] onecbj_slice219 crp= 1
+--- 'expires': 1167126865
+221 None onecca_slice220 nodes= [220, 221, 222, 3220, 3221, 3222] persons= [224, 225, 226]
+--- sas= [] onecca_slice220 crp= 1
+--- 'expires': 1167126865
+222 None oneccb_slice221 nodes= [221, 222, 223, 3221, 3222, 3223] persons= [225, 226, 227]
+--- sas= [] oneccb_slice221 crp= 1
+--- 'expires': 1167126866
+223 None oneccc_slice222 nodes= [222, 223, 224, 3222, 3223, 3224] persons= [226, 227, 228]
+--- sas= [] oneccc_slice222 crp= 1
+--- 'expires': 1167126866
+224 None oneccd_slice223 nodes= [223, 224, 225, 3223, 3224, 3225] persons= [227, 228, 229]
+--- sas= [] oneccd_slice223 crp= 1
+--- 'expires': 1167126866
+225 None onecce_slice224 nodes= [224, 225, 226, 3224, 3225, 3226] persons= [228, 229, 230]
+--- sas= [] onecce_slice224 crp= 1
+--- 'expires': 1167126866
+226 None oneccf_slice225 nodes= [225, 226, 227, 3225, 3226, 3227] persons= [229, 230, 231]
+--- sas= [] oneccf_slice225 crp= 1
+--- 'expires': 1167126867
+227 None oneccg_slice226 nodes= [226, 227, 228, 3226, 3227, 3228] persons= [230, 231, 232]
+--- sas= [] oneccg_slice226 crp= 1
+--- 'expires': 1167126867
+228 None onecch_slice227 nodes= [227, 228, 229, 3227, 3228, 3229] persons= [231, 232, 233]
+--- sas= [] onecch_slice227 crp= 1
+--- 'expires': 1167126867
+229 None onecci_slice228 nodes= [228, 229, 230, 3228, 3229, 3230] persons= [232, 233, 234]
+--- sas= [] onecci_slice228 crp= 1
+--- 'expires': 1167126867
+230 None oneccj_slice229 nodes= [229, 230, 231, 3229, 3230, 3231] persons= [233, 234, 235]
+--- sas= [] oneccj_slice229 crp= 1
+--- 'expires': 1167126867
+231 None onecda_slice230 nodes= [230, 231, 232, 3230, 3231, 3232] persons= [234, 235, 236]
+--- sas= [] onecda_slice230 crp= 1
+--- 'expires': 1167126868
+232 None onecdb_slice231 nodes= [231, 232, 233, 3231, 3232, 3233] persons= [235, 236, 237]
+--- sas= [] onecdb_slice231 crp= 1
+--- 'expires': 1167126868
+233 None onecdc_slice232 nodes= [232, 233, 234, 3232, 3233, 3234] persons= [236, 237, 238]
+--- sas= [] onecdc_slice232 crp= 1
+--- 'expires': 1167126868
+234 None onecdd_slice233 nodes= [233, 234, 235, 3233, 3234, 3235] persons= [237, 238, 239]
+--- sas= [] onecdd_slice233 crp= 1
+--- 'expires': 1167126868
+235 None onecde_slice234 nodes= [234, 235, 236, 3234, 3235, 3236] persons= [238, 239, 240]
+--- sas= [] onecde_slice234 crp= 1
+--- 'expires': 1167126869
+236 None onecdf_slice235 nodes= [235, 236, 237, 3235, 3236, 3237] persons= [239, 240, 241]
+--- sas= [] onecdf_slice235 crp= 1
+--- 'expires': 1167126869
+237 None onecdg_slice236 nodes= [236, 237, 238, 3236, 3237, 3238] persons= [240, 241, 242]
+--- sas= [] onecdg_slice236 crp= 1
+--- 'expires': 1167126869
+238 None onecdh_slice237 nodes= [237, 238, 239, 3237, 3238, 3239] persons= [241, 242, 243]
+--- sas= [] onecdh_slice237 crp= 1
+--- 'expires': 1167126869
+239 None onecdi_slice238 nodes= [238, 239, 240, 3238, 3239, 3240] persons= [242, 243, 244]
+--- sas= [] onecdi_slice238 crp= 1
+--- 'expires': 1167126869
+240 None onecdj_slice239 nodes= [239, 240, 241, 3239, 3240, 3241] persons= [243, 244, 245]
+--- sas= [] onecdj_slice239 crp= 1
+--- 'expires': 1167126870
+241 None onecea_slice240 nodes= [240, 241, 242, 3240, 3241, 3242] persons= [244, 245, 246]
+--- sas= [] onecea_slice240 crp= 1
+--- 'expires': 1167126870
+242 None oneceb_slice241 nodes= [241, 242, 243, 3241, 3242, 3243] persons= [245, 246, 247]
+--- sas= [] oneceb_slice241 crp= 1
+--- 'expires': 1167126870
+243 None onecec_slice242 nodes= [242, 243, 244, 3242, 3243, 3244] persons= [246, 247, 248]
+--- sas= [] onecec_slice242 crp= 1
+--- 'expires': 1167126870
+244 None oneced_slice243 nodes= [243, 244, 245, 3243, 3244, 3245] persons= [247, 248, 249]
+--- sas= [] oneced_slice243 crp= 1
+--- 'expires': 1167126871
+245 None onecee_slice244 nodes= [244, 245, 246, 3244, 3245, 3246] persons= [248, 249, 250]
+--- sas= [] onecee_slice244 crp= 1
+--- 'expires': 1167126871
+246 None onecef_slice245 nodes= [245, 246, 247, 3245, 3246, 3247] persons= [249, 250, 251]
+--- sas= [] onecef_slice245 crp= 1
+--- 'expires': 1167126871
+247 None oneceg_slice246 nodes= [246, 247, 248, 3246, 3247, 3248] persons= [250, 251, 252]
+--- sas= [] oneceg_slice246 crp= 1
+--- 'expires': 1167126871
+248 None oneceh_slice247 nodes= [247, 248, 249, 3247, 3248, 3249] persons= [251, 252, 253]
+--- sas= [] oneceh_slice247 crp= 1
+--- 'expires': 1167126871
+249 None onecei_slice248 nodes= [248, 249, 250, 3248, 3249, 3250] persons= [252, 253, 254]
+--- sas= [] onecei_slice248 crp= 1
+--- 'expires': 1167126872
+250 None onecej_slice249 nodes= [249, 250, 251, 3249, 3250, 3251] persons= [253, 254, 255]
+--- sas= [] onecej_slice249 crp= 1
+--- 'expires': 1167126872
+251 None onecfa_slice250 nodes= [250, 251, 252, 3250, 3251, 3252] persons= [254, 255, 256]
+--- sas= [] onecfa_slice250 crp= 1
+--- 'expires': 1167126872
+252 None onecfb_slice251 nodes= [251, 252, 253, 3251, 3252, 3253] persons= [255, 256, 257]
+--- sas= [] onecfb_slice251 crp= 1
+--- 'expires': 1167126872
+253 None onecfc_slice252 nodes= [252, 253, 254, 3252, 3253, 3254] persons= [256, 257, 258]
+--- sas= [] onecfc_slice252 crp= 1
+--- 'expires': 1167126873
+254 None onecfd_slice253 nodes= [253, 254, 255, 3253, 3254, 3255] persons= [257, 258, 259]
+--- sas= [] onecfd_slice253 crp= 1
+--- 'expires': 1167126873
+255 None onecfe_slice254 nodes= [254, 255, 256, 3254, 3255, 3256] persons= [258, 259, 260]
+--- sas= [] onecfe_slice254 crp= 1
+--- 'expires': 1167126873
+256 None onecff_slice255 nodes= [255, 256, 257, 3255, 3256, 3257] persons= [259, 260, 261]
+--- sas= [] onecff_slice255 crp= 1
+--- 'expires': 1167126873
+257 None onecfg_slice256 nodes= [256, 257, 258, 3256, 3257, 3258] persons= [260, 261, 262]
+--- sas= [] onecfg_slice256 crp= 1
+--- 'expires': 1167126873
+258 None onecfh_slice257 nodes= [257, 258, 259, 3257, 3258, 3259] persons= [261, 262, 263]
+--- sas= [] onecfh_slice257 crp= 1
+--- 'expires': 1167126874
+259 None onecfi_slice258 nodes= [258, 259, 260, 3258, 3259, 3260] persons= [262, 263, 264]
+--- sas= [] onecfi_slice258 crp= 1
+--- 'expires': 1167126874
+260 None onecfj_slice259 nodes= [259, 260, 261, 3259, 3260, 3261] persons= [263, 264, 265]
+--- sas= [] onecfj_slice259 crp= 1
+--- 'expires': 1167126874
+261 None onecga_slice260 nodes= [260, 261, 262, 3260, 3261, 3262] persons= [264, 265, 266]
+--- sas= [] onecga_slice260 crp= 1
+--- 'expires': 1167126874
+262 None onecgb_slice261 nodes= [261, 262, 263, 3261, 3262, 3263] persons= [265, 266, 267]
+--- sas= [] onecgb_slice261 crp= 1
+--- 'expires': 1167126875
+263 None onecgc_slice262 nodes= [262, 263, 264, 3262, 3263, 3264] persons= [266, 267, 268]
+--- sas= [] onecgc_slice262 crp= 1
+--- 'expires': 1167126875
+264 None onecgd_slice263 nodes= [263, 264, 265, 3263, 3264, 3265] persons= [267, 268, 269]
+--- sas= [] onecgd_slice263 crp= 1
+--- 'expires': 1167126875
+265 None onecge_slice264 nodes= [264, 265, 266, 3264, 3265, 3266] persons= [268, 269, 270]
+--- sas= [] onecge_slice264 crp= 1
+--- 'expires': 1167126875
+266 None onecgf_slice265 nodes= [265, 266, 267, 3265, 3266, 3267] persons= [269, 270, 271]
+--- sas= [] onecgf_slice265 crp= 1
+--- 'expires': 1167126875
+267 None onecgg_slice266 nodes= [266, 267, 268, 3266, 3267, 3268] persons= [270, 271, 272]
+--- sas= [] onecgg_slice266 crp= 1
+--- 'expires': 1167126876
+268 None onecgh_slice267 nodes= [267, 268, 269, 3267, 3268, 3269] persons= [271, 272, 273]
+--- sas= [] onecgh_slice267 crp= 1
+--- 'expires': 1167126876
+269 None onecgi_slice268 nodes= [268, 269, 270, 3268, 3269, 3270] persons= [272, 273, 274]
+--- sas= [] onecgi_slice268 crp= 1
+--- 'expires': 1167126876
+270 None onecgj_slice269 nodes= [269, 270, 271, 3269, 3270, 3271] persons= [273, 274, 275]
+--- sas= [] onecgj_slice269 crp= 1
+--- 'expires': 1167126876
+271 None onecha_slice270 nodes= [270, 271, 272, 3270, 3271, 3272] persons= [274, 275, 276]
+--- sas= [] onecha_slice270 crp= 1
+--- 'expires': 1167126877
+272 None onechb_slice271 nodes= [271, 272, 273, 3271, 3272, 3273] persons= [275, 276, 277]
+--- sas= [] onechb_slice271 crp= 1
+--- 'expires': 1167126877
+273 None onechc_slice272 nodes= [272, 273, 274, 3272, 3273, 3274] persons= [276, 277, 278]
+--- sas= [] onechc_slice272 crp= 1
+--- 'expires': 1167126877
+274 None onechd_slice273 nodes= [273, 274, 275, 3273, 3274, 3275] persons= [277, 278, 279]
+--- sas= [] onechd_slice273 crp= 1
+--- 'expires': 1167126877
+275 None oneche_slice274 nodes= [274, 275, 276, 3274, 3275, 3276] persons= [278, 279, 280]
+--- sas= [] oneche_slice274 crp= 1
+--- 'expires': 1167126878
+276 None onechf_slice275 nodes= [275, 276, 277, 3275, 3276, 3277] persons= [279, 280, 281]
+--- sas= [] onechf_slice275 crp= 1
+--- 'expires': 1167126878
+277 None onechg_slice276 nodes= [276, 277, 278, 3276, 3277, 3278] persons= [280, 281, 282]
+--- sas= [] onechg_slice276 crp= 1
+--- 'expires': 1167126878
+278 None onechh_slice277 nodes= [277, 278, 279, 3277, 3278, 3279] persons= [281, 282, 283]
+--- sas= [] onechh_slice277 crp= 1
+--- 'expires': 1167126878
+279 None onechi_slice278 nodes= [278, 279, 280, 3278, 3279, 3280] persons= [282, 283, 284]
+--- sas= [] onechi_slice278 crp= 1
+--- 'expires': 1167126878
+280 None onechj_slice279 nodes= [279, 280, 281, 3279, 3280, 3281] persons= [283, 284, 285]
+--- sas= [] onechj_slice279 crp= 1
+--- 'expires': 1167126879
+281 None onecia_slice280 nodes= [280, 281, 282, 3280, 3281, 3282] persons= [284, 285, 286]
+--- sas= [] onecia_slice280 crp= 1
+--- 'expires': 1167126879
+282 None onecib_slice281 nodes= [281, 282, 283, 3281, 3282, 3283] persons= [285, 286, 287]
+--- sas= [] onecib_slice281 crp= 1
+--- 'expires': 1167126879
+283 None onecic_slice282 nodes= [282, 283, 284, 3282, 3283, 3284] persons= [286, 287, 288]
+--- sas= [] onecic_slice282 crp= 1
+--- 'expires': 1167126879
+284 None onecid_slice283 nodes= [283, 284, 285, 3283, 3284, 3285] persons= [287, 288, 289]
+--- sas= [] onecid_slice283 crp= 1
+--- 'expires': 1167126880
+285 None onecie_slice284 nodes= [284, 285, 286, 3284, 3285, 3286] persons= [288, 289, 290]
+--- sas= [] onecie_slice284 crp= 1
+--- 'expires': 1167126880
+286 None onecif_slice285 nodes= [285, 286, 287, 3285, 3286, 3287] persons= [289, 290, 291]
+--- sas= [] onecif_slice285 crp= 1
+--- 'expires': 1167126880
+287 None onecig_slice286 nodes= [286, 287, 288, 3286, 3287, 3288] persons= [290, 291, 292]
+--- sas= [] onecig_slice286 crp= 1
+--- 'expires': 1167126880
+288 None onecih_slice287 nodes= [287, 288, 289, 3287, 3288, 3289] persons= [291, 292, 293]
+--- sas= [] onecih_slice287 crp= 1
+--- 'expires': 1167126880
+289 None onecii_slice288 nodes= [288, 289, 290, 3288, 3289, 3290] persons= [292, 293, 294]
+--- sas= [] onecii_slice288 crp= 1
+--- 'expires': 1167126881
+290 None onecij_slice289 nodes= [289, 290, 291, 3289, 3290, 3291] persons= [293, 294, 295]
+--- sas= [] onecij_slice289 crp= 1
+--- 'expires': 1167126881
+291 None onecja_slice290 nodes= [290, 291, 292, 3290, 3291, 3292] persons= [294, 295, 296]
+--- sas= [] onecja_slice290 crp= 1
+--- 'expires': 1167126881
+292 None onecjb_slice291 nodes= [291, 292, 293, 3291, 3292, 3293] persons= [295, 296, 297]
+--- sas= [] onecjb_slice291 crp= 1
+--- 'expires': 1167126881
+293 None onecjc_slice292 nodes= [292, 293, 294, 3292, 3293, 3294] persons= [296, 297, 298]
+--- sas= [] onecjc_slice292 crp= 1
+--- 'expires': 1167126882
+294 None onecjd_slice293 nodes= [293, 294, 295, 3293, 3294, 3295] persons= [297, 298, 299]
+--- sas= [] onecjd_slice293 crp= 1
+--- 'expires': 1167126882
+295 None onecje_slice294 nodes= [294, 295, 296, 3294, 3295, 3296] persons= [298, 299, 300]
+--- sas= [] onecje_slice294 crp= 1
+--- 'expires': 1167126882
+296 None onecjf_slice295 nodes= [295, 296, 297, 3295, 3296, 3297] persons= [299, 300, 301]
+--- sas= [] onecjf_slice295 crp= 1
+--- 'expires': 1167126882
+297 None onecjg_slice296 nodes= [296, 297, 298, 3296, 3297, 3298] persons= [300, 301, 302]
+--- sas= [] onecjg_slice296 crp= 1
+--- 'expires': 1167126883
+298 None onecjh_slice297 nodes= [297, 298, 299, 3297, 3298, 3299] persons= [301, 302, 303]
+--- sas= [] onecjh_slice297 crp= 1
+--- 'expires': 1167126883
+299 None onecji_slice298 nodes= [298, 299, 300, 3298, 3299, 3300] persons= [302, 303, 304]
+--- sas= [] onecji_slice298 crp= 1
+--- 'expires': 1167126883
+300 None onecjj_slice299 nodes= [299, 300, 301, 3299, 3300, 3301] persons= [303, 304, 305]
+--- sas= [] onecjj_slice299 crp= 1
+--- 'expires': 1167126883
+301 None onedaa_slice300 nodes= [300, 301, 302, 3300, 3301, 3302] persons= [304, 305, 306]
+--- sas= [] onedaa_slice300 crp= 1
+--- 'expires': 1167126883
+302 None onedab_slice301 nodes= [301, 302, 303, 3301, 3302, 3303] persons= [305, 306, 307]
+--- sas= [] onedab_slice301 crp= 1
+--- 'expires': 1167126884
+303 None onedac_slice302 nodes= [302, 303, 304, 3302, 3303, 3304] persons= [306, 307, 308]
+--- sas= [] onedac_slice302 crp= 1
+--- 'expires': 1167126884
+304 None onedad_slice303 nodes= [303, 304, 305, 3303, 3304, 3305] persons= [307, 308, 309]
+--- sas= [] onedad_slice303 crp= 1
+--- 'expires': 1167126884
+305 None onedae_slice304 nodes= [304, 305, 306, 3304, 3305, 3306] persons= [308, 309, 310]
+--- sas= [] onedae_slice304 crp= 1
+--- 'expires': 1167126884
+306 None onedaf_slice305 nodes= [305, 306, 307, 3305, 3306, 3307] persons= [309, 310, 311]
+--- sas= [] onedaf_slice305 crp= 1
+--- 'expires': 1167126885
+307 None onedag_slice306 nodes= [306, 307, 308, 3306, 3307, 3308] persons= [310, 311, 312]
+--- sas= [] onedag_slice306 crp= 1
+--- 'expires': 1167126885
+308 None onedah_slice307 nodes= [307, 308, 309, 3307, 3308, 3309] persons= [311, 312, 313]
+--- sas= [] onedah_slice307 crp= 1
+--- 'expires': 1167126885
+309 None onedai_slice308 nodes= [308, 309, 310, 3308, 3309, 3310] persons= [312, 313, 314]
+--- sas= [] onedai_slice308 crp= 1
+--- 'expires': 1167126885
+310 None onedaj_slice309 nodes= [309, 310, 311, 3309, 3310, 3311] persons= [313, 314, 315]
+--- sas= [] onedaj_slice309 crp= 1
+--- 'expires': 1167126886
+311 None onedba_slice310 nodes= [310, 311, 312, 3310, 3311, 3312] persons= [314, 315, 316]
+--- sas= [] onedba_slice310 crp= 1
+--- 'expires': 1167126886
+312 None onedbb_slice311 nodes= [311, 312, 313, 3311, 3312, 3313] persons= [315, 316, 317]
+--- sas= [] onedbb_slice311 crp= 1
+--- 'expires': 1167126886
+313 None onedbc_slice312 nodes= [312, 313, 314, 3312, 3313, 3314] persons= [316, 317, 318]
+--- sas= [] onedbc_slice312 crp= 1
+--- 'expires': 1167126886
+314 None onedbd_slice313 nodes= [313, 314, 315, 3313, 3314, 3315] persons= [317, 318, 319]
+--- sas= [] onedbd_slice313 crp= 1
+--- 'expires': 1167126887
+315 None onedbe_slice314 nodes= [314, 315, 316, 3314, 3315, 3316] persons= [318, 319, 320]
+--- sas= [] onedbe_slice314 crp= 1
+--- 'expires': 1167126887
+316 None onedbf_slice315 nodes= [315, 316, 317, 3315, 3316, 3317] persons= [319, 320, 321]
+--- sas= [] onedbf_slice315 crp= 1
+--- 'expires': 1167126887
+317 None onedbg_slice316 nodes= [316, 317, 318, 3316, 3317, 3318] persons= [320, 321, 322]
+--- sas= [] onedbg_slice316 crp= 1
+--- 'expires': 1167126887
+318 None onedbh_slice317 nodes= [317, 318, 319, 3317, 3318, 3319] persons= [321, 322, 323]
+--- sas= [] onedbh_slice317 crp= 1
+--- 'expires': 1167126887
+319 None onedbi_slice318 nodes= [318, 319, 320, 3318, 3319, 3320] persons= [322, 323, 324]
+--- sas= [] onedbi_slice318 crp= 1
+--- 'expires': 1167126888
+320 None onedbj_slice319 nodes= [319, 320, 321, 3319, 3320, 3321] persons= [323, 324, 325]
+--- sas= [] onedbj_slice319 crp= 1
+--- 'expires': 1167126888
+321 None onedca_slice320 nodes= [320, 321, 322, 3320, 3321, 3322] persons= [324, 325, 326]
+--- sas= [] onedca_slice320 crp= 1
+--- 'expires': 1167126888
+322 None onedcb_slice321 nodes= [321, 322, 323, 3321, 3322, 3323] persons= [325, 326, 327]
+--- sas= [] onedcb_slice321 crp= 1
+--- 'expires': 1167126888
+323 None onedcc_slice322 nodes= [322, 323, 324, 3322, 3323, 3324] persons= [326, 327, 328]
+--- sas= [] onedcc_slice322 crp= 1
+--- 'expires': 1167126889
+324 None onedcd_slice323 nodes= [323, 324, 325, 3323, 3324, 3325] persons= [327, 328, 329]
+--- sas= [] onedcd_slice323 crp= 1
+--- 'expires': 1167126889
+325 None onedce_slice324 nodes= [324, 325, 326, 3324, 3325, 3326] persons= [328, 329, 330]
+--- sas= [] onedce_slice324 crp= 1
+--- 'expires': 1167126889
+326 None onedcf_slice325 nodes= [325, 326, 327, 3325, 3326, 3327] persons= [329, 330, 331]
+--- sas= [] onedcf_slice325 crp= 1
+--- 'expires': 1167126889
+327 None onedcg_slice326 nodes= [326, 327, 328, 3326, 3327, 3328] persons= [330, 331, 332]
+--- sas= [] onedcg_slice326 crp= 1
+--- 'expires': 1167126890
+328 None onedch_slice327 nodes= [327, 328, 329, 3327, 3328, 3329] persons= [331, 332, 333]
+--- sas= [] onedch_slice327 crp= 1
+--- 'expires': 1167126890
+329 None onedci_slice328 nodes= [328, 329, 330, 3328, 3329, 3330] persons= [332, 333, 334]
+--- sas= [] onedci_slice328 crp= 1
+--- 'expires': 1167126890
+330 None onedcj_slice329 nodes= [329, 330, 331, 3329, 3330, 3331] persons= [333, 334, 335]
+--- sas= [] onedcj_slice329 crp= 1
+--- 'expires': 1167126890
+331 None onedda_slice330 nodes= [330, 331, 332, 3330, 3331, 3332] persons= [334, 335, 336]
+--- sas= [] onedda_slice330 crp= 1
+--- 'expires': 1167126891
+332 None oneddb_slice331 nodes= [331, 332, 333, 3331, 3332, 3333] persons= [335, 336, 337]
+--- sas= [] oneddb_slice331 crp= 1
+--- 'expires': 1167126891
+333 None oneddc_slice332 nodes= [332, 333, 334, 3332, 3333, 3334] persons= [336, 337, 338]
+--- sas= [] oneddc_slice332 crp= 1
+--- 'expires': 1167126891
+334 None oneddd_slice333 nodes= [333, 334, 335, 3333, 3334, 3335] persons= [337, 338, 339]
+--- sas= [] oneddd_slice333 crp= 1
+--- 'expires': 1167126891
+335 None onedde_slice334 nodes= [334, 335, 336, 3334, 3335, 3336] persons= [338, 339, 340]
+--- sas= [] onedde_slice334 crp= 1
+--- 'expires': 1167126891
+336 None oneddf_slice335 nodes= [335, 336, 337, 3335, 3336, 3337] persons= [339, 340, 341]
+--- sas= [] oneddf_slice335 crp= 1
+--- 'expires': 1167126892
+337 None oneddg_slice336 nodes= [336, 337, 338, 3336, 3337, 3338] persons= [340, 341, 342]
+--- sas= [] oneddg_slice336 crp= 1
+--- 'expires': 1167126892
+338 None oneddh_slice337 nodes= [337, 338, 339, 3337, 3338, 3339] persons= [341, 342, 343]
+--- sas= [] oneddh_slice337 crp= 1
+--- 'expires': 1167126892
+339 None oneddi_slice338 nodes= [338, 339, 340, 3338, 3339, 3340] persons= [342, 343, 344]
+--- sas= [] oneddi_slice338 crp= 1
+--- 'expires': 1167126892
+340 None oneddj_slice339 nodes= [339, 340, 341, 3339, 3340, 3341] persons= [343, 344, 345]
+--- sas= [] oneddj_slice339 crp= 1
+--- 'expires': 1167126893
+341 None onedea_slice340 nodes= [340, 341, 342, 3340, 3341, 3342] persons= [344, 345, 346]
+--- sas= [] onedea_slice340 crp= 1
+--- 'expires': 1167126893
+342 None onedeb_slice341 nodes= [341, 342, 343, 3341, 3342, 3343] persons= [345, 346, 347]
+--- sas= [] onedeb_slice341 crp= 1
+--- 'expires': 1167126893
+343 None onedec_slice342 nodes= [342, 343, 344, 3342, 3343, 3344] persons= [346, 347, 348]
+--- sas= [] onedec_slice342 crp= 1
+--- 'expires': 1167126893
+344 None oneded_slice343 nodes= [343, 344, 345, 3343, 3344, 3345] persons= [347, 348, 349]
+--- sas= [] oneded_slice343 crp= 1
+--- 'expires': 1167126894
+345 None onedee_slice344 nodes= [344, 345, 346, 3344, 3345, 3346] persons= [348, 349, 350]
+--- sas= [] onedee_slice344 crp= 1
+--- 'expires': 1167126894
+346 None onedef_slice345 nodes= [345, 346, 347, 3345, 3346, 3347] persons= [349, 350, 351]
+--- sas= [] onedef_slice345 crp= 1
+--- 'expires': 1167126894
+347 None onedeg_slice346 nodes= [346, 347, 348, 3346, 3347, 3348] persons= [350, 351, 352]
+--- sas= [] onedeg_slice346 crp= 1
+--- 'expires': 1167126894
+348 None onedeh_slice347 nodes= [347, 348, 349, 3347, 3348, 3349] persons= [351, 352, 353]
+--- sas= [] onedeh_slice347 crp= 1
+--- 'expires': 1167126895
+349 None onedei_slice348 nodes= [348, 349, 350, 3348, 3349, 3350] persons= [352, 353, 354]
+--- sas= [] onedei_slice348 crp= 1
+--- 'expires': 1167126895
+350 None onedej_slice349 nodes= [349, 350, 351, 3349, 3350, 3351] persons= [353, 354, 355]
+--- sas= [] onedej_slice349 crp= 1
+--- 'expires': 1167126895
+351 None onedfa_slice350 nodes= [350, 351, 352, 3350, 3351, 3352] persons= [354, 355, 356]
+--- sas= [] onedfa_slice350 crp= 1
+--- 'expires': 1167126895
+352 None onedfb_slice351 nodes= [351, 352, 353, 3351, 3352, 3353] persons= [355, 356, 357]
+--- sas= [] onedfb_slice351 crp= 1
+--- 'expires': 1167126896
+353 None onedfc_slice352 nodes= [352, 353, 354, 3352, 3353, 3354] persons= [356, 357, 358]
+--- sas= [] onedfc_slice352 crp= 1
+--- 'expires': 1167126896
+354 None onedfd_slice353 nodes= [353, 354, 355, 3353, 3354, 3355] persons= [357, 358, 359]
+--- sas= [] onedfd_slice353 crp= 1
+--- 'expires': 1167126896
+355 None onedfe_slice354 nodes= [354, 355, 356, 3354, 3355, 3356] persons= [358, 359, 360]
+--- sas= [] onedfe_slice354 crp= 1
+--- 'expires': 1167126896
+356 None onedff_slice355 nodes= [355, 356, 357, 3355, 3356, 3357] persons= [359, 360, 361]
+--- sas= [] onedff_slice355 crp= 1
+--- 'expires': 1167126896
+357 None onedfg_slice356 nodes= [356, 357, 358, 3356, 3357, 3358] persons= [360, 361, 362]
+--- sas= [] onedfg_slice356 crp= 1
+--- 'expires': 1167126897
+358 None onedfh_slice357 nodes= [357, 358, 359, 3357, 3358, 3359] persons= [361, 362, 363]
+--- sas= [] onedfh_slice357 crp= 1
+--- 'expires': 1167126897
+359 None onedfi_slice358 nodes= [358, 359, 360, 3358, 3359, 3360] persons= [362, 363, 364]
+--- sas= [] onedfi_slice358 crp= 1
+--- 'expires': 1167126897
+360 None onedfj_slice359 nodes= [359, 360, 361, 3359, 3360, 3361] persons= [363, 364, 365]
+--- sas= [] onedfj_slice359 crp= 1
+--- 'expires': 1167126897
+361 None onedga_slice360 nodes= [360, 361, 362, 3360, 3361, 3362] persons= [364, 365, 366]
+--- sas= [] onedga_slice360 crp= 1
+--- 'expires': 1167126898
+362 None onedgb_slice361 nodes= [361, 362, 363, 3361, 3362, 3363] persons= [365, 366, 367]
+--- sas= [] onedgb_slice361 crp= 1
+--- 'expires': 1167126898
+363 None onedgc_slice362 nodes= [362, 363, 364, 3362, 3363, 3364] persons= [366, 367, 368]
+--- sas= [] onedgc_slice362 crp= 1
+--- 'expires': 1167126898
+364 None onedgd_slice363 nodes= [363, 364, 365, 3363, 3364, 3365] persons= [367, 368, 369]
+--- sas= [] onedgd_slice363 crp= 1
+--- 'expires': 1167126898
+365 None onedge_slice364 nodes= [364, 365, 366, 3364, 3365, 3366] persons= [368, 369, 370]
+--- sas= [] onedge_slice364 crp= 1
+--- 'expires': 1167126899
+366 None onedgf_slice365 nodes= [365, 366, 367, 3365, 3366, 3367] persons= [369, 370, 371]
+--- sas= [] onedgf_slice365 crp= 1
+--- 'expires': 1167126899
+367 None onedgg_slice366 nodes= [366, 367, 368, 3366, 3367, 3368] persons= [370, 371, 372]
+--- sas= [] onedgg_slice366 crp= 1
+--- 'expires': 1167126899
+368 None onedgh_slice367 nodes= [367, 368, 369, 3367, 3368, 3369] persons= [371, 372, 373]
+--- sas= [] onedgh_slice367 crp= 1
+--- 'expires': 1167126899
+369 None onedgi_slice368 nodes= [368, 369, 370, 3368, 3369, 3370] persons= [372, 373, 374]
+--- sas= [] onedgi_slice368 crp= 1
+--- 'expires': 1167126900
+370 None onedgj_slice369 nodes= [369, 370, 371, 3369, 3370, 3371] persons= [373, 374, 375]
+--- sas= [] onedgj_slice369 crp= 1
+--- 'expires': 1167126900
+371 None onedha_slice370 nodes= [370, 371, 372, 3370, 3371, 3372] persons= [374, 375, 376]
+--- sas= [] onedha_slice370 crp= 1
+--- 'expires': 1167126900
+372 None onedhb_slice371 nodes= [371, 372, 373, 3371, 3372, 3373] persons= [375, 376, 377]
+--- sas= [] onedhb_slice371 crp= 1
+--- 'expires': 1167126900
+373 None onedhc_slice372 nodes= [372, 373, 374, 3372, 3373, 3374] persons= [376, 377, 378]
+--- sas= [] onedhc_slice372 crp= 1
+--- 'expires': 1167126901
+374 None onedhd_slice373 nodes= [373, 374, 375, 3373, 3374, 3375] persons= [377, 378, 379]
+--- sas= [] onedhd_slice373 crp= 1
+--- 'expires': 1167126901
+375 None onedhe_slice374 nodes= [374, 375, 376, 3374, 3375, 3376] persons= [378, 379, 380]
+--- sas= [] onedhe_slice374 crp= 1
+--- 'expires': 1167126901
+376 None onedhf_slice375 nodes= [375, 376, 377, 3375, 3376, 3377] persons= [379, 380, 381]
+--- sas= [] onedhf_slice375 crp= 1
+--- 'expires': 1167126901
+377 None onedhg_slice376 nodes= [376, 377, 378, 3376, 3377, 3378] persons= [380, 381, 382]
+--- sas= [] onedhg_slice376 crp= 1
+--- 'expires': 1167126902
+378 None onedhh_slice377 nodes= [377, 378, 379, 3377, 3378, 3379] persons= [381, 382, 383]
+--- sas= [] onedhh_slice377 crp= 1
+--- 'expires': 1167126903
+379 None onedhi_slice378 nodes= [378, 379, 380, 3378, 3379, 3380] persons= [382, 383, 384]
+--- sas= [] onedhi_slice378 crp= 1
+--- 'expires': 1167126904
+380 None onedhj_slice379 nodes= [379, 380, 381, 3379, 3380, 3381] persons= [383, 384, 385]
+--- sas= [] onedhj_slice379 crp= 1
+--- 'expires': 1167126905
+381 None onedia_slice380 nodes= [380, 381, 382, 3380, 3381, 3382] persons= [384, 385, 386]
+--- sas= [] onedia_slice380 crp= 1
+--- 'expires': 1167126906
+382 None onedib_slice381 nodes= [381, 382, 383, 3381, 3382, 3383] persons= [385, 386, 387]
+--- sas= [] onedib_slice381 crp= 1
+--- 'expires': 1167126907
+383 None onedic_slice382 nodes= [382, 383, 384, 3382, 3383, 3384] persons= [386, 387, 388]
+--- sas= [] onedic_slice382 crp= 1
+--- 'expires': 1167126908
+384 None onedid_slice383 nodes= [383, 384, 385, 3383, 3384, 3385] persons= [387, 388, 389]
+--- sas= [] onedid_slice383 crp= 1
+--- 'expires': 1167126909
+385 None onedie_slice384 nodes= [384, 385, 386, 3384, 3385, 3386] persons= [388, 389, 390]
+--- sas= [] onedie_slice384 crp= 1
+--- 'expires': 1167126910
+386 None onedif_slice385 nodes= [385, 386, 387, 3385, 3386, 3387] persons= [389, 390, 391]
+--- sas= [] onedif_slice385 crp= 1
+--- 'expires': 1167126911
+387 None onedig_slice386 nodes= [386, 387, 388, 3386, 3387, 3388] persons= [390, 391, 392]
+--- sas= [] onedig_slice386 crp= 1
+--- 'expires': 1167126912
+388 None onedih_slice387 nodes= [387, 388, 389, 3387, 3388, 3389] persons= [391, 392, 393]
+--- sas= [] onedih_slice387 crp= 1
+--- 'expires': 1167126913
+389 None onedii_slice388 nodes= [388, 389, 390, 3388, 3389, 3390] persons= [392, 393, 394]
+--- sas= [] onedii_slice388 crp= 1
+--- 'expires': 1167126914
+390 None onedij_slice389 nodes= [389, 390, 391, 3389, 3390, 3391] persons= [393, 394, 395]
+--- sas= [] onedij_slice389 crp= 1
+--- 'expires': 1167126915
+391 None onedja_slice390 nodes= [390, 391, 392, 3390, 3391, 3392] persons= [394, 395, 396]
+--- sas= [] onedja_slice390 crp= 1
+--- 'expires': 1167126916
+392 None onedjb_slice391 nodes= [391, 392, 393, 3391, 3392, 3393] persons= [395, 396, 397]
+--- sas= [] onedjb_slice391 crp= 1
+--- 'expires': 1167126917
+393 None onedjc_slice392 nodes= [392, 393, 394, 3392, 3393, 3394] persons= [396, 397, 398]
+--- sas= [] onedjc_slice392 crp= 1
+--- 'expires': 1167126918
+394 None onedjd_slice393 nodes= [393, 394, 395, 3393, 3394, 3395] persons= [397, 398, 399]
+--- sas= [] onedjd_slice393 crp= 1
+--- 'expires': 1167126919
+395 None onedje_slice394 nodes= [394, 395, 396, 3394, 3395, 3396] persons= [398, 399, 400]
+--- sas= [] onedje_slice394 crp= 1
+--- 'expires': 1167126920
+396 None onedjf_slice395 nodes= [395, 396, 397, 3395, 3396, 3397] persons= [399, 400, 401]
+--- sas= [] onedjf_slice395 crp= 1
+--- 'expires': 1167126921
+397 None onedjg_slice396 nodes= [396, 397, 398, 3396, 3397, 3398] persons= [400, 401, 402]
+--- sas= [] onedjg_slice396 crp= 1
+--- 'expires': 1167126921
+398 None onedjh_slice397 nodes= [397, 398, 399, 3397, 3398, 3399] persons= [401, 402, 403]
+--- sas= [] onedjh_slice397 crp= 1
+--- 'expires': 1167126921
+399 None onedji_slice398 nodes= [398, 399, 400, 3398, 3399, 3400] persons= [402, 403, 404]
+--- sas= [] onedji_slice398 crp= 1
+--- 'expires': 1167126922
+400 None onedjj_slice399 nodes= [399, 400, 401, 3399, 3400, 3401] persons= [403, 404, 405]
+--- sas= [] onedjj_slice399 crp= 1
+--- 'expires': 1167126922
+401 None oneeaa_slice400 nodes= [400, 401, 402, 3400, 3401, 3402] persons= [404, 405, 406]
+--- sas= [] oneeaa_slice400 crp= 1
+--- 'expires': 1167126922
+402 None oneeab_slice401 nodes= [401, 402, 403, 3401, 3402, 3403] persons= [405, 406, 407]
+--- sas= [] oneeab_slice401 crp= 1
+--- 'expires': 1167126922
+403 None oneeac_slice402 nodes= [402, 403, 404, 3402, 3403, 3404] persons= [406, 407, 408]
+--- sas= [] oneeac_slice402 crp= 1
+--- 'expires': 1167126923
+404 None oneead_slice403 nodes= [403, 404, 405, 3403, 3404, 3405] persons= [407, 408, 409]
+--- sas= [] oneead_slice403 crp= 1
+--- 'expires': 1167126923
+405 None oneeae_slice404 nodes= [404, 405, 406, 3404, 3405, 3406] persons= [408, 409, 410]
+--- sas= [] oneeae_slice404 crp= 1
+--- 'expires': 1167126923
+406 None oneeaf_slice405 nodes= [405, 406, 407, 3405, 3406, 3407] persons= [409, 410, 411]
+--- sas= [] oneeaf_slice405 crp= 1
+--- 'expires': 1167126923
+407 None oneeag_slice406 nodes= [406, 407, 408, 3406, 3407, 3408] persons= [410, 411, 412]
+--- sas= [] oneeag_slice406 crp= 1
+--- 'expires': 1167126924
+408 None oneeah_slice407 nodes= [407, 408, 409, 3407, 3408, 3409] persons= [411, 412, 413]
+--- sas= [] oneeah_slice407 crp= 1
+--- 'expires': 1167126924
+409 None oneeai_slice408 nodes= [408, 409, 410, 3408, 3409, 3410] persons= [412, 413, 414]
+--- sas= [] oneeai_slice408 crp= 1
+--- 'expires': 1167126924
+410 None oneeaj_slice409 nodes= [409, 410, 411, 3409, 3410, 3411] persons= [413, 414, 415]
+--- sas= [] oneeaj_slice409 crp= 1
+--- 'expires': 1167126924
+411 None oneeba_slice410 nodes= [410, 411, 412, 3410, 3411, 3412] persons= [414, 415, 416]
+--- sas= [] oneeba_slice410 crp= 1
+--- 'expires': 1167126925
+412 None oneebb_slice411 nodes= [411, 412, 413, 3411, 3412, 3413] persons= [415, 416, 417]
+--- sas= [] oneebb_slice411 crp= 1
+--- 'expires': 1167126925
+413 None oneebc_slice412 nodes= [412, 413, 414, 3412, 3413, 3414] persons= [416, 417, 418]
+--- sas= [] oneebc_slice412 crp= 1
+--- 'expires': 1167126925
+414 None oneebd_slice413 nodes= [413, 414, 415, 3413, 3414, 3415] persons= [417, 418, 419]
+--- sas= [] oneebd_slice413 crp= 1
+--- 'expires': 1167126925
+415 None oneebe_slice414 nodes= [414, 415, 416, 3414, 3415, 3416] persons= [418, 419, 420]
+--- sas= [] oneebe_slice414 crp= 1
+--- 'expires': 1167126926
+416 None oneebf_slice415 nodes= [415, 416, 417, 3415, 3416, 3417] persons= [419, 420, 421]
+--- sas= [] oneebf_slice415 crp= 1
+--- 'expires': 1167126926
+417 None oneebg_slice416 nodes= [416, 417, 418, 3416, 3417, 3418] persons= [420, 421, 422]
+--- sas= [] oneebg_slice416 crp= 1
+--- 'expires': 1167126926
+418 None oneebh_slice417 nodes= [417, 418, 419, 3417, 3418, 3419] persons= [421, 422, 423]
+--- sas= [] oneebh_slice417 crp= 1
+--- 'expires': 1167126926
+419 None oneebi_slice418 nodes= [418, 419, 420, 3418, 3419, 3420] persons= [422, 423, 424]
+--- sas= [] oneebi_slice418 crp= 1
+--- 'expires': 1167126927
+420 None oneebj_slice419 nodes= [419, 420, 421, 3419, 3420, 3421] persons= [423, 424, 425]
+--- sas= [] oneebj_slice419 crp= 1
+--- 'expires': 1167126927
+421 None oneeca_slice420 nodes= [420, 421, 422, 3420, 3421, 3422] persons= [424, 425, 426]
+--- sas= [] oneeca_slice420 crp= 1
+--- 'expires': 1167126927
+422 None oneecb_slice421 nodes= [421, 422, 423, 3421, 3422, 3423] persons= [425, 426, 427]
+--- sas= [] oneecb_slice421 crp= 1
+--- 'expires': 1167126927
+423 None oneecc_slice422 nodes= [422, 423, 424, 3422, 3423, 3424] persons= [426, 427, 428]
+--- sas= [] oneecc_slice422 crp= 1
+--- 'expires': 1167126928
+424 None oneecd_slice423 nodes= [423, 424, 425, 3423, 3424, 3425] persons= [427, 428, 429]
+--- sas= [] oneecd_slice423 crp= 1
+--- 'expires': 1167126928
+425 None oneece_slice424 nodes= [424, 425, 426, 3424, 3425, 3426] persons= [428, 429, 430]
+--- sas= [] oneece_slice424 crp= 1
+--- 'expires': 1167126928
+426 None oneecf_slice425 nodes= [425, 426, 427, 3425, 3426, 3427] persons= [429, 430, 431]
+--- sas= [] oneecf_slice425 crp= 1
+--- 'expires': 1167126928
+427 None oneecg_slice426 nodes= [426, 427, 428, 3426, 3427, 3428] persons= [430, 431, 432]
+--- sas= [] oneecg_slice426 crp= 1
+--- 'expires': 1167126929
+428 None oneech_slice427 nodes= [427, 428, 429, 3427, 3428, 3429] persons= [431, 432, 433]
+--- sas= [] oneech_slice427 crp= 1
+--- 'expires': 1167126929
+429 None oneeci_slice428 nodes= [428, 429, 430, 3428, 3429, 3430] persons= [432, 433, 434]
+--- sas= [] oneeci_slice428 crp= 1
+--- 'expires': 1167126929
+430 None oneecj_slice429 nodes= [429, 430, 431, 3429, 3430, 3431] persons= [433, 434, 435]
+--- sas= [] oneecj_slice429 crp= 1
+--- 'expires': 1167126929
+431 None oneeda_slice430 nodes= [430, 431, 432, 3430, 3431, 3432] persons= [434, 435, 436]
+--- sas= [] oneeda_slice430 crp= 1
+--- 'expires': 1167126930
+432 None oneedb_slice431 nodes= [431, 432, 433, 3431, 3432, 3433] persons= [435, 436, 437]
+--- sas= [] oneedb_slice431 crp= 1
+--- 'expires': 1167126930
+433 None oneedc_slice432 nodes= [432, 433, 434, 3432, 3433, 3434] persons= [436, 437, 438]
+--- sas= [] oneedc_slice432 crp= 1
+--- 'expires': 1167126930
+434 None oneedd_slice433 nodes= [433, 434, 435, 3433, 3434, 3435] persons= [437, 438, 439]
+--- sas= [] oneedd_slice433 crp= 1
+--- 'expires': 1167126930
+435 None oneede_slice434 nodes= [434, 435, 436, 3434, 3435, 3436] persons= [438, 439, 440]
+--- sas= [] oneede_slice434 crp= 1
+--- 'expires': 1167126931
+436 None oneedf_slice435 nodes= [435, 436, 437, 3435, 3436, 3437] persons= [439, 440, 441]
+--- sas= [] oneedf_slice435 crp= 1
+--- 'expires': 1167126931
+437 None oneedg_slice436 nodes= [436, 437, 438, 3436, 3437, 3438] persons= [440, 441, 442]
+--- sas= [] oneedg_slice436 crp= 1
+--- 'expires': 1167126931
+438 None oneedh_slice437 nodes= [437, 438, 439, 3437, 3438, 3439] persons= [441, 442, 443]
+--- sas= [] oneedh_slice437 crp= 1
+--- 'expires': 1167126931
+439 None oneedi_slice438 nodes= [438, 439, 440, 3438, 3439, 3440] persons= [442, 443, 444]
+--- sas= [] oneedi_slice438 crp= 1
+--- 'expires': 1167126932
+440 None oneedj_slice439 nodes= [439, 440, 441, 3439, 3440, 3441] persons= [443, 444, 445]
+--- sas= [] oneedj_slice439 crp= 1
+--- 'expires': 1167126932
+441 None oneeea_slice440 nodes= [440, 441, 442, 3440, 3441, 3442] persons= [444, 445, 446]
+--- sas= [] oneeea_slice440 crp= 1
+--- 'expires': 1167126932
+442 None oneeeb_slice441 nodes= [441, 442, 443, 3441, 3442, 3443] persons= [445, 446, 447]
+--- sas= [] oneeeb_slice441 crp= 1
+--- 'expires': 1167126932
+443 None oneeec_slice442 nodes= [442, 443, 444, 3442, 3443, 3444] persons= [446, 447, 448]
+--- sas= [] oneeec_slice442 crp= 1
+--- 'expires': 1167126933
+444 None oneeed_slice443 nodes= [443, 444, 445, 3443, 3444, 3445] persons= [447, 448, 449]
+--- sas= [] oneeed_slice443 crp= 1
+--- 'expires': 1167126933
+445 None oneeee_slice444 nodes= [444, 445, 446, 3444, 3445, 3446] persons= [448, 449, 450]
+--- sas= [] oneeee_slice444 crp= 1
+--- 'expires': 1167126933
+446 None oneeef_slice445 nodes= [445, 446, 447, 3445, 3446, 3447] persons= [449, 450, 451]
+--- sas= [] oneeef_slice445 crp= 1
+--- 'expires': 1167126933
+447 None oneeeg_slice446 nodes= [446, 447, 448, 3446, 3447, 3448] persons= [450, 451, 452]
+--- sas= [] oneeeg_slice446 crp= 1
+--- 'expires': 1167126934
+448 None oneeeh_slice447 nodes= [447, 448, 449, 3447, 3448, 3449] persons= [451, 452, 453]
+--- sas= [] oneeeh_slice447 crp= 1
+--- 'expires': 1167126934
+449 None oneeei_slice448 nodes= [448, 449, 450, 3448, 3449, 3450] persons= [452, 453, 454]
+--- sas= [] oneeei_slice448 crp= 1
+--- 'expires': 1167126934
+450 None oneeej_slice449 nodes= [449, 450, 451, 3449, 3450, 3451] persons= [453, 454, 455]
+--- sas= [] oneeej_slice449 crp= 1
+--- 'expires': 1167126934
+451 None oneefa_slice450 nodes= [450, 451, 452, 3450, 3451, 3452] persons= [454, 455, 456]
+--- sas= [] oneefa_slice450 crp= 1
+--- 'expires': 1167126935
+452 None oneefb_slice451 nodes= [451, 452, 453, 3451, 3452, 3453] persons= [455, 456, 457]
+--- sas= [] oneefb_slice451 crp= 1
+--- 'expires': 1167126935
+453 None oneefc_slice452 nodes= [452, 453, 454, 3452, 3453, 3454] persons= [456, 457, 458]
+--- sas= [] oneefc_slice452 crp= 1
+--- 'expires': 1167126935
+454 None oneefd_slice453 nodes= [453, 454, 455, 3453, 3454, 3455] persons= [457, 458, 459]
+--- sas= [] oneefd_slice453 crp= 1
+--- 'expires': 1167126935
+455 None oneefe_slice454 nodes= [454, 455, 456, 3454, 3455, 3456] persons= [458, 459, 460]
+--- sas= [] oneefe_slice454 crp= 1
+--- 'expires': 1167126936
+456 None oneeff_slice455 nodes= [455, 456, 457, 3455, 3456, 3457] persons= [459, 460, 461]
+--- sas= [] oneeff_slice455 crp= 1
+--- 'expires': 1167126936
+457 None oneefg_slice456 nodes= [456, 457, 458, 3456, 3457, 3458] persons= [460, 461, 462]
+--- sas= [] oneefg_slice456 crp= 1
+--- 'expires': 1167126936
+458 None oneefh_slice457 nodes= [457, 458, 459, 3457, 3458, 3459] persons= [461, 462, 463]
+--- sas= [] oneefh_slice457 crp= 1
+--- 'expires': 1167126936
+459 None oneefi_slice458 nodes= [458, 459, 460, 3458, 3459, 3460] persons= [462, 463, 464]
+--- sas= [] oneefi_slice458 crp= 1
+--- 'expires': 1167126937
+460 None oneefj_slice459 nodes= [459, 460, 461, 3459, 3460, 3461] persons= [463, 464, 465]
+--- sas= [] oneefj_slice459 crp= 1
+--- 'expires': 1167126937
+461 None oneega_slice460 nodes= [460, 461, 462, 3460, 3461, 3462] persons= [464, 465, 466]
+--- sas= [] oneega_slice460 crp= 1
+--- 'expires': 1167126937
+462 None oneegb_slice461 nodes= [461, 462, 463, 3461, 3462, 3463] persons= [465, 466, 467]
+--- sas= [] oneegb_slice461 crp= 1
+--- 'expires': 1167126938
+463 None oneegc_slice462 nodes= [462, 463, 464, 3462, 3463, 3464] persons= [466, 467, 468]
+--- sas= [] oneegc_slice462 crp= 1
+--- 'expires': 1167126938
+464 None oneegd_slice463 nodes= [463, 464, 465, 3463, 3464, 3465] persons= [467, 468, 469]
+--- sas= [] oneegd_slice463 crp= 1
+--- 'expires': 1167126938
+465 None oneege_slice464 nodes= [464, 465, 466, 3464, 3465, 3466] persons= [468, 469, 470]
+--- sas= [] oneege_slice464 crp= 1
+--- 'expires': 1167126938
+466 None oneegf_slice465 nodes= [465, 466, 467, 3465, 3466, 3467] persons= [469, 470, 471]
+--- sas= [] oneegf_slice465 crp= 1
+--- 'expires': 1167126939
+467 None oneegg_slice466 nodes= [466, 467, 468, 3466, 3467, 3468] persons= [470, 471, 472]
+--- sas= [] oneegg_slice466 crp= 1
+--- 'expires': 1167126939
+468 None oneegh_slice467 nodes= [467, 468, 469, 3467, 3468, 3469] persons= [471, 472, 473]
+--- sas= [] oneegh_slice467 crp= 1
+--- 'expires': 1167126939
+469 None oneegi_slice468 nodes= [468, 469, 470, 3468, 3469, 3470] persons= [472, 473, 474]
+--- sas= [] oneegi_slice468 crp= 1
+--- 'expires': 1167126939
+470 None oneegj_slice469 nodes= [469, 470, 471, 3469, 3470, 3471] persons= [473, 474, 475]
+--- sas= [] oneegj_slice469 crp= 1
+--- 'expires': 1167126940
+471 None oneeha_slice470 nodes= [470, 471, 472, 3470, 3471, 3472] persons= [474, 475, 476]
+--- sas= [] oneeha_slice470 crp= 1
+--- 'expires': 1167126940
+472 None oneehb_slice471 nodes= [471, 472, 473, 3471, 3472, 3473] persons= [475, 476, 477]
+--- sas= [] oneehb_slice471 crp= 1
+--- 'expires': 1167126940
+473 None oneehc_slice472 nodes= [472, 473, 474, 3472, 3473, 3474] persons= [476, 477, 478]
+--- sas= [] oneehc_slice472 crp= 1
+--- 'expires': 1167126940
+474 None oneehd_slice473 nodes= [473, 474, 475, 3473, 3474, 3475] persons= [477, 478, 479]
+--- sas= [] oneehd_slice473 crp= 1
+--- 'expires': 1167126941
+475 None oneehe_slice474 nodes= [474, 475, 476, 3474, 3475, 3476] persons= [478, 479, 480]
+--- sas= [] oneehe_slice474 crp= 1
+--- 'expires': 1167126941
+476 None oneehf_slice475 nodes= [475, 476, 477, 3475, 3476, 3477] persons= [479, 480, 481]
+--- sas= [] oneehf_slice475 crp= 1
+--- 'expires': 1167126941
+477 None oneehg_slice476 nodes= [476, 477, 478, 3476, 3477, 3478] persons= [480, 481, 482]
+--- sas= [] oneehg_slice476 crp= 1
+--- 'expires': 1167126941
+478 None oneehh_slice477 nodes= [477, 478, 479, 3477, 3478, 3479] persons= [481, 482, 483]
+--- sas= [] oneehh_slice477 crp= 1
+--- 'expires': 1167126942
+479 None oneehi_slice478 nodes= [478, 479, 480, 3478, 3479, 3480] persons= [482, 483, 484]
+--- sas= [] oneehi_slice478 crp= 1
+--- 'expires': 1167126942
+480 None oneehj_slice479 nodes= [479, 480, 481, 3479, 3480, 3481] persons= [483, 484, 485]
+--- sas= [] oneehj_slice479 crp= 1
+--- 'expires': 1167126942
+481 None oneeia_slice480 nodes= [480, 481, 482, 3480, 3481, 3482] persons= [484, 485, 486]
+--- sas= [] oneeia_slice480 crp= 1
+--- 'expires': 1167126942
+482 None oneeib_slice481 nodes= [481, 482, 483, 3481, 3482, 3483] persons= [485, 486, 487]
+--- sas= [] oneeib_slice481 crp= 1
+--- 'expires': 1167126943
+483 None oneeic_slice482 nodes= [482, 483, 484, 3482, 3483, 3484] persons= [486, 487, 488]
+--- sas= [] oneeic_slice482 crp= 1
+--- 'expires': 1167126943
+484 None oneeid_slice483 nodes= [483, 484, 485, 3483, 3484, 3485] persons= [487, 488, 489]
+--- sas= [] oneeid_slice483 crp= 1
+--- 'expires': 1167126943
+485 None oneeie_slice484 nodes= [484, 485, 486, 3484, 3485, 3486] persons= [488, 489, 490]
+--- sas= [] oneeie_slice484 crp= 1
+--- 'expires': 1167126943
+486 None oneeif_slice485 nodes= [485, 486, 487, 3485, 3486, 3487] persons= [489, 490, 491]
+--- sas= [] oneeif_slice485 crp= 1
+--- 'expires': 1167126944
+487 None oneeig_slice486 nodes= [486, 487, 488, 3486, 3487, 3488] persons= [490, 491, 492]
+--- sas= [] oneeig_slice486 crp= 1
+--- 'expires': 1167126944
+488 None oneeih_slice487 nodes= [487, 488, 489, 3487, 3488, 3489] persons= [491, 492, 493]
+--- sas= [] oneeih_slice487 crp= 1
+--- 'expires': 1167126944
+489 None oneeii_slice488 nodes= [488, 489, 490, 3488, 3489, 3490] persons= [492, 493, 494]
+--- sas= [] oneeii_slice488 crp= 1
+--- 'expires': 1167126945
+490 None oneeij_slice489 nodes= [489, 490, 491, 3489, 3490, 3491] persons= [493, 494, 495]
+--- sas= [] oneeij_slice489 crp= 1
+--- 'expires': 1167126945
+491 None oneeja_slice490 nodes= [490, 491, 492, 3490, 3491, 3492] persons= [494, 495, 496]
+--- sas= [] oneeja_slice490 crp= 1
+--- 'expires': 1167126945
+492 None oneejb_slice491 nodes= [491, 492, 493, 3491, 3492, 3493] persons= [495, 496, 497]
+--- sas= [] oneejb_slice491 crp= 1
+--- 'expires': 1167126945
+493 None oneejc_slice492 nodes= [492, 493, 494, 3492, 3493, 3494] persons= [496, 497, 498]
+--- sas= [] oneejc_slice492 crp= 1
+--- 'expires': 1167126946
+494 None oneejd_slice493 nodes= [493, 494, 495, 3493, 3494, 3495] persons= [497, 498, 499]
+--- sas= [] oneejd_slice493 crp= 1
+--- 'expires': 1167126946
+495 None oneeje_slice494 nodes= [494, 495, 496, 3494, 3495, 3496] persons= [498, 499, 500]
+--- sas= [] oneeje_slice494 crp= 1
+--- 'expires': 1167126946
+496 None oneejf_slice495 nodes= [495, 496, 497, 3495, 3496, 3497] persons= [499, 500, 501]
+--- sas= [] oneejf_slice495 crp= 1
+--- 'expires': 1167126946
+497 None oneejg_slice496 nodes= [496, 497, 498, 3496, 3497, 3498] persons= [500, 501, 502]
+--- sas= [] oneejg_slice496 crp= 1
+--- 'expires': 1167126947
+498 None oneejh_slice497 nodes= [497, 498, 499, 3497, 3498, 3499] persons= [501, 502, 503]
+--- sas= [] oneejh_slice497 crp= 1
+--- 'expires': 1167126947
+499 None oneeji_slice498 nodes= [498, 499, 500, 3498, 3499, 3500] persons= [502, 503, 504]
+--- sas= [] oneeji_slice498 crp= 1
+--- 'expires': 1167126947
+500 None oneejj_slice499 nodes= [499, 500, 501, 3499, 3500, 3501] persons= [503, 504, 505]
+--- sas= [] oneejj_slice499 crp= 1
+--- 'expires': 1167126947
+501 None onefaa_slice500 nodes= [500, 501, 502, 3500, 3501, 3502] persons= [504, 505, 506]
+--- sas= [] onefaa_slice500 crp= 1
+--- 'expires': 1167126948
+502 None onefab_slice501 nodes= [501, 502, 503, 3501, 3502, 3503] persons= [505, 506, 507]
+--- sas= [] onefab_slice501 crp= 1
+--- 'expires': 1167126948
+503 None onefac_slice502 nodes= [502, 503, 504, 3502, 3503, 3504] persons= [506, 507, 508]
+--- sas= [] onefac_slice502 crp= 1
+--- 'expires': 1167126948
+504 None onefad_slice503 nodes= [503, 504, 505, 3503, 3504, 3505] persons= [507, 508, 509]
+--- sas= [] onefad_slice503 crp= 1
+--- 'expires': 1167126948
+505 None onefae_slice504 nodes= [504, 505, 506, 3504, 3505, 3506] persons= [508, 509, 510]
+--- sas= [] onefae_slice504 crp= 1
+--- 'expires': 1167126949
+506 None onefaf_slice505 nodes= [505, 506, 507, 3505, 3506, 3507] persons= [509, 510, 511]
+--- sas= [] onefaf_slice505 crp= 1
+--- 'expires': 1167126949
+507 None onefag_slice506 nodes= [506, 507, 508, 3506, 3507, 3508] persons= [510, 511, 512]
+--- sas= [] onefag_slice506 crp= 1
+--- 'expires': 1167126949
+508 None onefah_slice507 nodes= [507, 508, 509, 3507, 3508, 3509] persons= [511, 512, 513]
+--- sas= [] onefah_slice507 crp= 1
+--- 'expires': 1167126950
+509 None onefai_slice508 nodes= [508, 509, 510, 3508, 3509, 3510] persons= [512, 513, 514]
+--- sas= [] onefai_slice508 crp= 1
+--- 'expires': 1167126950
+510 None onefaj_slice509 nodes= [509, 510, 511, 3509, 3510, 3511] persons= [513, 514, 515]
+--- sas= [] onefaj_slice509 crp= 1
+--- 'expires': 1167126950
+511 None onefba_slice510 nodes= [510, 511, 512, 3510, 3511, 3512] persons= [514, 515, 516]
+--- sas= [] onefba_slice510 crp= 1
+--- 'expires': 1167126950
+512 None onefbb_slice511 nodes= [511, 512, 513, 3511, 3512, 3513] persons= [515, 516, 517]
+--- sas= [] onefbb_slice511 crp= 1
+--- 'expires': 1167126951
+513 None onefbc_slice512 nodes= [512, 513, 514, 3512, 3513, 3514] persons= [516, 517, 518]
+--- sas= [] onefbc_slice512 crp= 1
+--- 'expires': 1167126951
+514 None onefbd_slice513 nodes= [513, 514, 515, 3513, 3514, 3515] persons= [517, 518, 519]
+--- sas= [] onefbd_slice513 crp= 1
+--- 'expires': 1167126951
+515 None onefbe_slice514 nodes= [514, 515, 516, 3514, 3515, 3516] persons= [518, 519, 520]
+--- sas= [] onefbe_slice514 crp= 1
+--- 'expires': 1167126951
+516 None onefbf_slice515 nodes= [515, 516, 517, 3515, 3516, 3517] persons= [519, 520, 521]
+--- sas= [] onefbf_slice515 crp= 1
+--- 'expires': 1167126952
+517 None onefbg_slice516 nodes= [516, 517, 518, 3516, 3517, 3518] persons= [520, 521, 522]
+--- sas= [] onefbg_slice516 crp= 1
+--- 'expires': 1167126952
+518 None onefbh_slice517 nodes= [517, 518, 519, 3517, 3518, 3519] persons= [521, 522, 523]
+--- sas= [] onefbh_slice517 crp= 1
+--- 'expires': 1167126952
+519 None onefbi_slice518 nodes= [518, 519, 520, 3518, 3519, 3520] persons= [522, 523, 524]
+--- sas= [] onefbi_slice518 crp= 1
+--- 'expires': 1167126952
+520 None onefbj_slice519 nodes= [519, 520, 521, 3519, 3520, 3521] persons= [523, 524, 525]
+--- sas= [] onefbj_slice519 crp= 1
+--- 'expires': 1167126953
+521 None onefca_slice520 nodes= [520, 521, 522, 3520, 3521, 3522] persons= [524, 525, 526]
+--- sas= [] onefca_slice520 crp= 1
+--- 'expires': 1167126953
+522 None onefcb_slice521 nodes= [521, 522, 523, 3521, 3522, 3523] persons= [525, 526, 527]
+--- sas= [] onefcb_slice521 crp= 1
+--- 'expires': 1167126953
+523 None onefcc_slice522 nodes= [522, 523, 524, 3522, 3523, 3524] persons= [526, 527, 528]
+--- sas= [] onefcc_slice522 crp= 1
+--- 'expires': 1167126954
+524 None onefcd_slice523 nodes= [523, 524, 525, 3523, 3524, 3525] persons= [527, 528, 529]
+--- sas= [] onefcd_slice523 crp= 1
+--- 'expires': 1167126954
+525 None onefce_slice524 nodes= [524, 525, 526, 3524, 3525, 3526] persons= [528, 529, 530]
+--- sas= [] onefce_slice524 crp= 1
+--- 'expires': 1167126954
+526 None onefcf_slice525 nodes= [525, 526, 527, 3525, 3526, 3527] persons= [529, 530, 531]
+--- sas= [] onefcf_slice525 crp= 1
+--- 'expires': 1167126954
+527 None onefcg_slice526 nodes= [526, 527, 528, 3526, 3527, 3528] persons= [530, 531, 532]
+--- sas= [] onefcg_slice526 crp= 1
+--- 'expires': 1167126955
+528 None onefch_slice527 nodes= [527, 528, 529, 3527, 3528, 3529] persons= [531, 532, 533]
+--- sas= [] onefch_slice527 crp= 1
+--- 'expires': 1167126955
+529 None onefci_slice528 nodes= [528, 529, 530, 3528, 3529, 3530] persons= [532, 533, 534]
+--- sas= [] onefci_slice528 crp= 1
+--- 'expires': 1167126955
+530 None onefcj_slice529 nodes= [529, 530, 531, 3529, 3530, 3531] persons= [533, 534, 535]
+--- sas= [] onefcj_slice529 crp= 1
+--- 'expires': 1167126955
+531 None onefda_slice530 nodes= [530, 531, 532, 3530, 3531, 3532] persons= [534, 535, 536]
+--- sas= [] onefda_slice530 crp= 1
+--- 'expires': 1167126956
+532 None onefdb_slice531 nodes= [531, 532, 533, 3531, 3532, 3533] persons= [535, 536, 537]
+--- sas= [] onefdb_slice531 crp= 1
+--- 'expires': 1167126956
+533 None onefdc_slice532 nodes= [532, 533, 534, 3532, 3533, 3534] persons= [536, 537, 538]
+--- sas= [] onefdc_slice532 crp= 1
+--- 'expires': 1167126956
+534 None onefdd_slice533 nodes= [533, 534, 535, 3533, 3534, 3535] persons= [537, 538, 539]
+--- sas= [] onefdd_slice533 crp= 1
+--- 'expires': 1167126956
+535 None onefde_slice534 nodes= [534, 535, 536, 3534, 3535, 3536] persons= [538, 539, 540]
+--- sas= [] onefde_slice534 crp= 1
+--- 'expires': 1167126957
+536 None onefdf_slice535 nodes= [535, 536, 537, 3535, 3536, 3537] persons= [539, 540, 541]
+--- sas= [] onefdf_slice535 crp= 1
+--- 'expires': 1167126957
+537 None onefdg_slice536 nodes= [536, 537, 538, 3536, 3537, 3538] persons= [540, 541, 542]
+--- sas= [] onefdg_slice536 crp= 1
+--- 'expires': 1167126957
+538 None onefdh_slice537 nodes= [537, 538, 539, 3537, 3538, 3539] persons= [541, 542, 543]
+--- sas= [] onefdh_slice537 crp= 1
+--- 'expires': 1167126958
+539 None onefdi_slice538 nodes= [538, 539, 540, 3538, 3539, 3540] persons= [542, 543, 544]
+--- sas= [] onefdi_slice538 crp= 1
+--- 'expires': 1167126958
+540 None onefdj_slice539 nodes= [539, 540, 541, 3539, 3540, 3541] persons= [543, 544, 545]
+--- sas= [] onefdj_slice539 crp= 1
+--- 'expires': 1167126958
+541 None onefea_slice540 nodes= [540, 541, 542, 3540, 3541, 3542] persons= [544, 545, 546]
+--- sas= [] onefea_slice540 crp= 1
+--- 'expires': 1167126958
+542 None onefeb_slice541 nodes= [541, 542, 543, 3541, 3542, 3543] persons= [545, 546, 547]
+--- sas= [] onefeb_slice541 crp= 1
+--- 'expires': 1167126959
+543 None onefec_slice542 nodes= [542, 543, 544, 3542, 3543, 3544] persons= [546, 547, 548]
+--- sas= [] onefec_slice542 crp= 1
+--- 'expires': 1167126959
+544 None onefed_slice543 nodes= [543, 544, 545, 3543, 3544, 3545] persons= [547, 548, 549]
+--- sas= [] onefed_slice543 crp= 1
+--- 'expires': 1167126959
+545 None onefee_slice544 nodes= [544, 545, 546, 3544, 3545, 3546] persons= [548, 549, 550]
+--- sas= [] onefee_slice544 crp= 1
+--- 'expires': 1167126959
+546 None onefef_slice545 nodes= [545, 546, 547, 3545, 3546, 3547] persons= [549, 550, 551]
+--- sas= [] onefef_slice545 crp= 1
+--- 'expires': 1167126960
+547 None onefeg_slice546 nodes= [546, 547, 548, 3546, 3547, 3548] persons= [550, 551, 552]
+--- sas= [] onefeg_slice546 crp= 1
+--- 'expires': 1167126960
+548 None onefeh_slice547 nodes= [547, 548, 549, 3547, 3548, 3549] persons= [551, 552, 553]
+--- sas= [] onefeh_slice547 crp= 1
+--- 'expires': 1167126960
+549 None onefei_slice548 nodes= [548, 549, 550, 3548, 3549, 3550] persons= [552, 553, 554]
+--- sas= [] onefei_slice548 crp= 1
+--- 'expires': 1167126961
+550 None onefej_slice549 nodes= [549, 550, 551, 3549, 3550, 3551] persons= [553, 554, 555]
+--- sas= [] onefej_slice549 crp= 1
+--- 'expires': 1167126961
+551 None oneffa_slice550 nodes= [550, 551, 552, 3550, 3551, 3552] persons= [554, 555, 556]
+--- sas= [] oneffa_slice550 crp= 1
+--- 'expires': 1167126961
+552 None oneffb_slice551 nodes= [551, 552, 553, 3551, 3552, 3553] persons= [555, 556, 557]
+--- sas= [] oneffb_slice551 crp= 1
+--- 'expires': 1167126961
+553 None oneffc_slice552 nodes= [552, 553, 554, 3552, 3553, 3554] persons= [556, 557, 558]
+--- sas= [] oneffc_slice552 crp= 1
+--- 'expires': 1167126962
+554 None oneffd_slice553 nodes= [553, 554, 555, 3553, 3554, 3555] persons= [557, 558, 559]
+--- sas= [] oneffd_slice553 crp= 1
+--- 'expires': 1167126962
+555 None oneffe_slice554 nodes= [554, 555, 556, 3554, 3555, 3556] persons= [558, 559, 560]
+--- sas= [] oneffe_slice554 crp= 1
+--- 'expires': 1167126962
+556 None onefff_slice555 nodes= [555, 556, 557, 3555, 3556, 3557] persons= [559, 560, 561]
+--- sas= [] onefff_slice555 crp= 1
+--- 'expires': 1167126962
+557 None oneffg_slice556 nodes= [556, 557, 558, 3556, 3557, 3558] persons= [560, 561, 562]
+--- sas= [] oneffg_slice556 crp= 1
+--- 'expires': 1167126963
+558 None oneffh_slice557 nodes= [557, 558, 559, 3557, 3558, 3559] persons= [561, 562, 563]
+--- sas= [] oneffh_slice557 crp= 1
+--- 'expires': 1167126963
+559 None oneffi_slice558 nodes= [558, 559, 560, 3558, 3559, 3560] persons= [562, 563, 564]
+--- sas= [] oneffi_slice558 crp= 1
+--- 'expires': 1167126963
+560 None oneffj_slice559 nodes= [559, 560, 561, 3559, 3560, 3561] persons= [563, 564, 565]
+--- sas= [] oneffj_slice559 crp= 1
+--- 'expires': 1167126963
+561 None onefga_slice560 nodes= [560, 561, 562, 3560, 3561, 3562] persons= [564, 565, 566]
+--- sas= [] onefga_slice560 crp= 1
+--- 'expires': 1167126964
+562 None onefgb_slice561 nodes= [561, 562, 563, 3561, 3562, 3563] persons= [565, 566, 567]
+--- sas= [] onefgb_slice561 crp= 1
+--- 'expires': 1167126964
+563 None onefgc_slice562 nodes= [562, 563, 564, 3562, 3563, 3564] persons= [566, 567, 568]
+--- sas= [] onefgc_slice562 crp= 1
+--- 'expires': 1167126964
+564 None onefgd_slice563 nodes= [563, 564, 565, 3563, 3564, 3565] persons= [567, 568, 569]
+--- sas= [] onefgd_slice563 crp= 1
+--- 'expires': 1167126965
+565 None onefge_slice564 nodes= [564, 565, 566, 3564, 3565, 3566] persons= [568, 569, 570]
+--- sas= [] onefge_slice564 crp= 1
+--- 'expires': 1167126965
+566 None onefgf_slice565 nodes= [565, 566, 567, 3565, 3566, 3567] persons= [569, 570, 571]
+--- sas= [] onefgf_slice565 crp= 1
+--- 'expires': 1167126965
+567 None onefgg_slice566 nodes= [566, 567, 568, 3566, 3567, 3568] persons= [570, 571, 572]
+--- sas= [] onefgg_slice566 crp= 1
+--- 'expires': 1167126965
+568 None onefgh_slice567 nodes= [567, 568, 569, 3567, 3568, 3569] persons= [571, 572, 573]
+--- sas= [] onefgh_slice567 crp= 1
+--- 'expires': 1167126966
+569 None onefgi_slice568 nodes= [568, 569, 570, 3568, 3569, 3570] persons= [572, 573, 574]
+--- sas= [] onefgi_slice568 crp= 1
+--- 'expires': 1167126966
+570 None onefgj_slice569 nodes= [569, 570, 571, 3569, 3570, 3571] persons= [573, 574, 575]
+--- sas= [] onefgj_slice569 crp= 1
+--- 'expires': 1167126966
+571 None onefha_slice570 nodes= [570, 571, 572, 3570, 3571, 3572] persons= [574, 575, 576]
+--- sas= [] onefha_slice570 crp= 1
+--- 'expires': 1167126967
+572 None onefhb_slice571 nodes= [571, 572, 573, 3571, 3572, 3573] persons= [575, 576, 577]
+--- sas= [] onefhb_slice571 crp= 1
+--- 'expires': 1167126967
+573 None onefhc_slice572 nodes= [572, 573, 574, 3572, 3573, 3574] persons= [576, 577, 578]
+--- sas= [] onefhc_slice572 crp= 1
+--- 'expires': 1167126967
+574 None onefhd_slice573 nodes= [573, 574, 575, 3573, 3574, 3575] persons= [577, 578, 579]
+--- sas= [] onefhd_slice573 crp= 1
+--- 'expires': 1167126967
+575 None onefhe_slice574 nodes= [574, 575, 576, 3574, 3575, 3576] persons= [578, 579, 580]
+--- sas= [] onefhe_slice574 crp= 1
+--- 'expires': 1167126968
+576 None onefhf_slice575 nodes= [575, 576, 577, 3575, 3576, 3577] persons= [579, 580, 581]
+--- sas= [] onefhf_slice575 crp= 1
+--- 'expires': 1167126968
+577 None onefhg_slice576 nodes= [576, 577, 578, 3576, 3577, 3578] persons= [580, 581, 582]
+--- sas= [] onefhg_slice576 crp= 1
+--- 'expires': 1167126968
+578 None onefhh_slice577 nodes= [577, 578, 579, 3577, 3578, 3579] persons= [581, 582, 583]
+--- sas= [] onefhh_slice577 crp= 1
+--- 'expires': 1167126968
+579 None onefhi_slice578 nodes= [578, 579, 580, 3578, 3579, 3580] persons= [582, 583, 584]
+--- sas= [] onefhi_slice578 crp= 1
+--- 'expires': 1167126969
+580 None onefhj_slice579 nodes= [579, 580, 581, 3579, 3580, 3581] persons= [583, 584, 585]
+--- sas= [] onefhj_slice579 crp= 1
+--- 'expires': 1167126969
+581 None onefia_slice580 nodes= [580, 581, 582, 3580, 3581, 3582] persons= [584, 585, 586]
+--- sas= [] onefia_slice580 crp= 1
+--- 'expires': 1167126969
+582 None onefib_slice581 nodes= [581, 582, 583, 3581, 3582, 3583] persons= [585, 586, 587]
+--- sas= [] onefib_slice581 crp= 1
+--- 'expires': 1167126970
+583 None onefic_slice582 nodes= [582, 583, 584, 3582, 3583, 3584] persons= [586, 587, 588]
+--- sas= [] onefic_slice582 crp= 1
+--- 'expires': 1167126970
+584 None onefid_slice583 nodes= [583, 584, 585, 3583, 3584, 3585] persons= [587, 588, 589]
+--- sas= [] onefid_slice583 crp= 1
+--- 'expires': 1167126970
+585 None onefie_slice584 nodes= [584, 585, 586, 3584, 3585, 3586] persons= [588, 589, 590]
+--- sas= [] onefie_slice584 crp= 1
+--- 'expires': 1167126970
+586 None onefif_slice585 nodes= [585, 586, 587, 3585, 3586, 3587] persons= [589, 590, 591]
+--- sas= [] onefif_slice585 crp= 1
+--- 'expires': 1167126971
+587 None onefig_slice586 nodes= [586, 587, 588, 3586, 3587, 3588] persons= [590, 591, 592]
+--- sas= [] onefig_slice586 crp= 1
+--- 'expires': 1167126971
+588 None onefih_slice587 nodes= [587, 588, 589, 3587, 3588, 3589] persons= [591, 592, 593]
+--- sas= [] onefih_slice587 crp= 1
+--- 'expires': 1167126971
+589 None onefii_slice588 nodes= [588, 589, 590, 3588, 3589, 3590] persons= [592, 593, 594]
+--- sas= [] onefii_slice588 crp= 1
+--- 'expires': 1167126971
+590 None onefij_slice589 nodes= [589, 590, 591, 3589, 3590, 3591] persons= [593, 594, 595]
+--- sas= [] onefij_slice589 crp= 1
+--- 'expires': 1167126972
+591 None onefja_slice590 nodes= [590, 591, 592, 3590, 3591, 3592] persons= [594, 595, 596]
+--- sas= [] onefja_slice590 crp= 1
+--- 'expires': 1167126972
+592 None onefjb_slice591 nodes= [591, 592, 593, 3591, 3592, 3593] persons= [595, 596, 597]
+--- sas= [] onefjb_slice591 crp= 1
+--- 'expires': 1167126972
+593 None onefjc_slice592 nodes= [592, 593, 594, 3592, 3593, 3594] persons= [596, 597, 598]
+--- sas= [] onefjc_slice592 crp= 1
+--- 'expires': 1167126973
+594 None onefjd_slice593 nodes= [593, 594, 595, 3593, 3594, 3595] persons= [597, 598, 599]
+--- sas= [] onefjd_slice593 crp= 1
+--- 'expires': 1167126973
+595 None onefje_slice594 nodes= [594, 595, 596, 3594, 3595, 3596] persons= [598, 599, 600]
+--- sas= [] onefje_slice594 crp= 1
+--- 'expires': 1167126973
+596 None onefjf_slice595 nodes= [595, 596, 597, 3595, 3596, 3597] persons= [599, 600, 601]
+--- sas= [] onefjf_slice595 crp= 1
+--- 'expires': 1167126973
+597 None onefjg_slice596 nodes= [596, 597, 598, 3596, 3597, 3598] persons= [600, 601, 602]
+--- sas= [] onefjg_slice596 crp= 1
+--- 'expires': 1167126974
+598 None onefjh_slice597 nodes= [597, 598, 599, 3597, 3598, 3599] persons= [601, 602, 603]
+--- sas= [] onefjh_slice597 crp= 1
+--- 'expires': 1167126974
+599 None onefji_slice598 nodes= [598, 599, 600, 3598, 3599, 3600] persons= [602, 603, 604]
+--- sas= [] onefji_slice598 crp= 1
+--- 'expires': 1167126974
+600 None onefjj_slice599 nodes= [599, 600, 601, 3599, 3600, 3601] persons= [603, 604, 605]
+--- sas= [] onefjj_slice599 crp= 1
+--- 'expires': 1167126975
+601 None onegaa_slice600 nodes= [600, 601, 602, 3600, 3601, 3602] persons= [604, 605, 606]
+--- sas= [] onegaa_slice600 crp= 1
+--- 'expires': 1167126975
+602 None onegab_slice601 nodes= [601, 602, 603, 3601, 3602, 3603] persons= [605, 606, 607]
+--- sas= [] onegab_slice601 crp= 1
+--- 'expires': 1167126975
+603 None onegac_slice602 nodes= [602, 603, 604, 3602, 3603, 3604] persons= [606, 607, 608]
+--- sas= [] onegac_slice602 crp= 1
+--- 'expires': 1167126975
+604 None onegad_slice603 nodes= [603, 604, 605, 3603, 3604, 3605] persons= [607, 608, 609]
+--- sas= [] onegad_slice603 crp= 1
+--- 'expires': 1167126976
+605 None onegae_slice604 nodes= [604, 605, 606, 3604, 3605, 3606] persons= [608, 609, 610]
+--- sas= [] onegae_slice604 crp= 1
+--- 'expires': 1167126976
+606 None onegaf_slice605 nodes= [605, 606, 607, 3605, 3606, 3607] persons= [609, 610, 611]
+--- sas= [] onegaf_slice605 crp= 1
+--- 'expires': 1167126976
+607 None onegag_slice606 nodes= [606, 607, 608, 3606, 3607, 3608] persons= [610, 611, 612]
+--- sas= [] onegag_slice606 crp= 1
+--- 'expires': 1167126977
+608 None onegah_slice607 nodes= [607, 608, 609, 3607, 3608, 3609] persons= [611, 612, 613]
+--- sas= [] onegah_slice607 crp= 1
+--- 'expires': 1167126977
+609 None onegai_slice608 nodes= [608, 609, 610, 3608, 3609, 3610] persons= [612, 613, 614]
+--- sas= [] onegai_slice608 crp= 1
+--- 'expires': 1167126977
+610 None onegaj_slice609 nodes= [609, 610, 611, 3609, 3610, 3611] persons= [613, 614, 615]
+--- sas= [] onegaj_slice609 crp= 1
+--- 'expires': 1167126977
+611 None onegba_slice610 nodes= [610, 611, 612, 3610, 3611, 3612] persons= [614, 615, 616]
+--- sas= [] onegba_slice610 crp= 1
+--- 'expires': 1167126978
+612 None onegbb_slice611 nodes= [611, 612, 613, 3611, 3612, 3613] persons= [615, 616, 617]
+--- sas= [] onegbb_slice611 crp= 1
+--- 'expires': 1167126978
+613 None onegbc_slice612 nodes= [612, 613, 614, 3612, 3613, 3614] persons= [616, 617, 618]
+--- sas= [] onegbc_slice612 crp= 1
+--- 'expires': 1167126978
+614 None onegbd_slice613 nodes= [613, 614, 615, 3613, 3614, 3615] persons= [617, 618, 619]
+--- sas= [] onegbd_slice613 crp= 1
+--- 'expires': 1167126978
+615 None onegbe_slice614 nodes= [614, 615, 616, 3614, 3615, 3616] persons= [618, 619, 620]
+--- sas= [] onegbe_slice614 crp= 1
+--- 'expires': 1167126979
+616 None onegbf_slice615 nodes= [615, 616, 617, 3615, 3616, 3617] persons= [619, 620, 621]
+--- sas= [] onegbf_slice615 crp= 1
+--- 'expires': 1167126979
+617 None onegbg_slice616 nodes= [616, 617, 618, 3616, 3617, 3618] persons= [620, 621, 622]
+--- sas= [] onegbg_slice616 crp= 1
+--- 'expires': 1167126979
+618 None onegbh_slice617 nodes= [617, 618, 619, 3617, 3618, 3619] persons= [621, 622, 623]
+--- sas= [] onegbh_slice617 crp= 1
+--- 'expires': 1167126980
+619 None onegbi_slice618 nodes= [618, 619, 620, 3618, 3619, 3620] persons= [622, 623, 624]
+--- sas= [] onegbi_slice618 crp= 1
+--- 'expires': 1167126980
+620 None onegbj_slice619 nodes= [619, 620, 621, 3619, 3620, 3621] persons= [623, 624, 625]
+--- sas= [] onegbj_slice619 crp= 1
+--- 'expires': 1167126980
+621 None onegca_slice620 nodes= [620, 621, 622, 3620, 3621, 3622] persons= [624, 625, 626]
+--- sas= [] onegca_slice620 crp= 1
+--- 'expires': 1167126980
+622 None onegcb_slice621 nodes= [621, 622, 623, 3621, 3622, 3623] persons= [625, 626, 627]
+--- sas= [] onegcb_slice621 crp= 1
+--- 'expires': 1167126981
+623 None onegcc_slice622 nodes= [622, 623, 624, 3622, 3623, 3624] persons= [626, 627, 628]
+--- sas= [] onegcc_slice622 crp= 1
+--- 'expires': 1167126981
+624 None onegcd_slice623 nodes= [623, 624, 625, 3623, 3624, 3625] persons= [627, 628, 629]
+--- sas= [] onegcd_slice623 crp= 1
+--- 'expires': 1167126981
+625 None onegce_slice624 nodes= [624, 625, 626, 3624, 3625, 3626] persons= [628, 629, 630]
+--- sas= [] onegce_slice624 crp= 1
+--- 'expires': 1167126982
+626 None onegcf_slice625 nodes= [625, 626, 627, 3625, 3626, 3627] persons= [629, 630, 631]
+--- sas= [] onegcf_slice625 crp= 1
+--- 'expires': 1167126982
+627 None onegcg_slice626 nodes= [626, 627, 628, 3626, 3627, 3628] persons= [630, 631, 632]
+--- sas= [] onegcg_slice626 crp= 1
+--- 'expires': 1167126982
+628 None onegch_slice627 nodes= [627, 628, 629, 3627, 3628, 3629] persons= [631, 632, 633]
+--- sas= [] onegch_slice627 crp= 1
+--- 'expires': 1167126982
+629 None onegci_slice628 nodes= [628, 629, 630, 3628, 3629, 3630] persons= [632, 633, 634]
+--- sas= [] onegci_slice628 crp= 1
+--- 'expires': 1167126983
+630 None onegcj_slice629 nodes= [629, 630, 631, 3629, 3630, 3631] persons= [633, 634, 635]
+--- sas= [] onegcj_slice629 crp= 1
+--- 'expires': 1167126983
+631 None onegda_slice630 nodes= [630, 631, 632, 3630, 3631, 3632] persons= [634, 635, 636]
+--- sas= [] onegda_slice630 crp= 1
+--- 'expires': 1167126983
+632 None onegdb_slice631 nodes= [631, 632, 633, 3631, 3632, 3633] persons= [635, 636, 637]
+--- sas= [] onegdb_slice631 crp= 1
+--- 'expires': 1167126984
+633 None onegdc_slice632 nodes= [632, 633, 634, 3632, 3633, 3634] persons= [636, 637, 638]
+--- sas= [] onegdc_slice632 crp= 1
+--- 'expires': 1167126984
+634 None onegdd_slice633 nodes= [633, 634, 635, 3633, 3634, 3635] persons= [637, 638, 639]
+--- sas= [] onegdd_slice633 crp= 1
+--- 'expires': 1167126984
+635 None onegde_slice634 nodes= [634, 635, 636, 3634, 3635, 3636] persons= [638, 639, 640]
+--- sas= [] onegde_slice634 crp= 1
+--- 'expires': 1167126984
+636 None onegdf_slice635 nodes= [635, 636, 637, 3635, 3636, 3637] persons= [639, 640, 641]
+--- sas= [] onegdf_slice635 crp= 1
+--- 'expires': 1167126985
+637 None onegdg_slice636 nodes= [636, 637, 638, 3636, 3637, 3638] persons= [640, 641, 642]
+--- sas= [] onegdg_slice636 crp= 1
+--- 'expires': 1167126985
+638 None onegdh_slice637 nodes= [637, 638, 639, 3637, 3638, 3639] persons= [641, 642, 643]
+--- sas= [] onegdh_slice637 crp= 1
+--- 'expires': 1167126985
+639 None onegdi_slice638 nodes= [638, 639, 640, 3638, 3639, 3640] persons= [642, 643, 644]
+--- sas= [] onegdi_slice638 crp= 1
+--- 'expires': 1167126986
+640 None onegdj_slice639 nodes= [639, 640, 641, 3639, 3640, 3641] persons= [643, 644, 645]
+--- sas= [] onegdj_slice639 crp= 1
+--- 'expires': 1167126986
+641 None onegea_slice640 nodes= [640, 641, 642, 3640, 3641, 3642] persons= [644, 645, 646]
+--- sas= [] onegea_slice640 crp= 1
+--- 'expires': 1167126986
+642 None onegeb_slice641 nodes= [641, 642, 643, 3641, 3642, 3643] persons= [645, 646, 647]
+--- sas= [] onegeb_slice641 crp= 1
+--- 'expires': 1167126986
+643 None onegec_slice642 nodes= [642, 643, 644, 3642, 3643, 3644] persons= [646, 647, 648]
+--- sas= [] onegec_slice642 crp= 1
+--- 'expires': 1167126987
+644 None oneged_slice643 nodes= [643, 644, 645, 3643, 3644, 3645] persons= [647, 648, 649]
+--- sas= [] oneged_slice643 crp= 1
+--- 'expires': 1167126987
+645 None onegee_slice644 nodes= [644, 645, 646, 3644, 3645, 3646] persons= [648, 649, 650]
+--- sas= [] onegee_slice644 crp= 1
+--- 'expires': 1167126987
+646 None onegef_slice645 nodes= [645, 646, 647, 3645, 3646, 3647] persons= [649, 650, 651]
+--- sas= [] onegef_slice645 crp= 1
+--- 'expires': 1167126988
+647 None onegeg_slice646 nodes= [646, 647, 648, 3646, 3647, 3648] persons= [650, 651, 652]
+--- sas= [] onegeg_slice646 crp= 1
+--- 'expires': 1167126988
+648 None onegeh_slice647 nodes= [647, 648, 649, 3647, 3648, 3649] persons= [651, 652, 653]
+--- sas= [] onegeh_slice647 crp= 1
+--- 'expires': 1167126988
+649 None onegei_slice648 nodes= [648, 649, 650, 3648, 3649, 3650] persons= [652, 653, 654]
+--- sas= [] onegei_slice648 crp= 1
+--- 'expires': 1167126988
+650 None onegej_slice649 nodes= [649, 650, 651, 3649, 3650, 3651] persons= [653, 654, 655]
+--- sas= [] onegej_slice649 crp= 1
+--- 'expires': 1167126989
+651 None onegfa_slice650 nodes= [650, 651, 652, 3650, 3651, 3652] persons= [654, 655, 656]
+--- sas= [] onegfa_slice650 crp= 1
+--- 'expires': 1167126989
+652 None onegfb_slice651 nodes= [651, 652, 653, 3651, 3652, 3653] persons= [655, 656, 657]
+--- sas= [] onegfb_slice651 crp= 1
+--- 'expires': 1167126989
+653 None onegfc_slice652 nodes= [652, 653, 654, 3652, 3653, 3654] persons= [656, 657, 658]
+--- sas= [] onegfc_slice652 crp= 1
+--- 'expires': 1167126990
+654 None onegfd_slice653 nodes= [653, 654, 655, 3653, 3654, 3655] persons= [657, 658, 659]
+--- sas= [] onegfd_slice653 crp= 1
+--- 'expires': 1167126990
+655 None onegfe_slice654 nodes= [654, 655, 656, 3654, 3655, 3656] persons= [658, 659, 660]
+--- sas= [] onegfe_slice654 crp= 1
+--- 'expires': 1167126990
+656 None onegff_slice655 nodes= [655, 656, 657, 3655, 3656, 3657] persons= [659, 660, 661]
+--- sas= [] onegff_slice655 crp= 1
+--- 'expires': 1167126990
+657 None onegfg_slice656 nodes= [656, 657, 658, 3656, 3657, 3658] persons= [660, 661, 662]
+--- sas= [] onegfg_slice656 crp= 1
+--- 'expires': 1167126991
+658 None onegfh_slice657 nodes= [657, 658, 659, 3657, 3658, 3659] persons= [661, 662, 663]
+--- sas= [] onegfh_slice657 crp= 1
+--- 'expires': 1167126991
+659 None onegfi_slice658 nodes= [658, 659, 660, 3658, 3659, 3660] persons= [662, 663, 664]
+--- sas= [] onegfi_slice658 crp= 1
+--- 'expires': 1167126991
+660 None onegfj_slice659 nodes= [659, 660, 661, 3659, 3660, 3661] persons= [663, 664, 665]
+--- sas= [] onegfj_slice659 crp= 1
+--- 'expires': 1167126992
+661 None onegga_slice660 nodes= [660, 661, 662, 3660, 3661, 3662] persons= [664, 665, 666]
+--- sas= [] onegga_slice660 crp= 1
+--- 'expires': 1167126992
+662 None oneggb_slice661 nodes= [661, 662, 663, 3661, 3662, 3663] persons= [665, 666, 667]
+--- sas= [] oneggb_slice661 crp= 1
+--- 'expires': 1167126992
+663 None oneggc_slice662 nodes= [662, 663, 664, 3662, 3663, 3664] persons= [666, 667, 668]
+--- sas= [] oneggc_slice662 crp= 1
+--- 'expires': 1167126992
+664 None oneggd_slice663 nodes= [663, 664, 665, 3663, 3664, 3665] persons= [667, 668, 669]
+--- sas= [] oneggd_slice663 crp= 1
+--- 'expires': 1167126993
+665 None onegge_slice664 nodes= [664, 665, 666, 3664, 3665, 3666] persons= [668, 669, 670]
+--- sas= [] onegge_slice664 crp= 1
+--- 'expires': 1167126993
+666 None oneggf_slice665 nodes= [665, 666, 667, 3665, 3666, 3667] persons= [669, 670, 671]
+--- sas= [] oneggf_slice665 crp= 1
+--- 'expires': 1167126993
+667 None oneggg_slice666 nodes= [666, 667, 668, 3666, 3667, 3668] persons= [670, 671, 672]
+--- sas= [] oneggg_slice666 crp= 1
+--- 'expires': 1167126994
+668 None oneggh_slice667 nodes= [667, 668, 669, 3667, 3668, 3669] persons= [671, 672, 673]
+--- sas= [] oneggh_slice667 crp= 1
+--- 'expires': 1167126994
+669 None oneggi_slice668 nodes= [668, 669, 670, 3668, 3669, 3670] persons= [672, 673, 674]
+--- sas= [] oneggi_slice668 crp= 1
+--- 'expires': 1167126994
+670 None oneggj_slice669 nodes= [669, 670, 671, 3669, 3670, 3671] persons= [673, 674, 675]
+--- sas= [] oneggj_slice669 crp= 1
+--- 'expires': 1167126995
+671 None onegha_slice670 nodes= [670, 671, 672, 3670, 3671, 3672] persons= [674, 675, 676]
+--- sas= [] onegha_slice670 crp= 1
+--- 'expires': 1167126995
+672 None oneghb_slice671 nodes= [671, 672, 673, 3671, 3672, 3673] persons= [675, 676, 677]
+--- sas= [] oneghb_slice671 crp= 1
+--- 'expires': 1167126995
+673 None oneghc_slice672 nodes= [672, 673, 674, 3672, 3673, 3674] persons= [676, 677, 678]
+--- sas= [] oneghc_slice672 crp= 1
+--- 'expires': 1167126995
+674 None oneghd_slice673 nodes= [673, 674, 675, 3673, 3674, 3675] persons= [677, 678, 679]
+--- sas= [] oneghd_slice673 crp= 1
+--- 'expires': 1167126996
+675 None oneghe_slice674 nodes= [674, 675, 676, 3674, 3675, 3676] persons= [678, 679, 680]
+--- sas= [] oneghe_slice674 crp= 1
+--- 'expires': 1167126996
+676 None oneghf_slice675 nodes= [675, 676, 677, 3675, 3676, 3677] persons= [679, 680, 681]
+--- sas= [] oneghf_slice675 crp= 1
+--- 'expires': 1167126996
+677 None oneghg_slice676 nodes= [676, 677, 678, 3676, 3677, 3678] persons= [680, 681, 682]
+--- sas= [] oneghg_slice676 crp= 1
+--- 'expires': 1167126997
+678 None oneghh_slice677 nodes= [677, 678, 679, 3677, 3678, 3679] persons= [681, 682, 683]
+--- sas= [] oneghh_slice677 crp= 1
+--- 'expires': 1167126997
+679 None oneghi_slice678 nodes= [678, 679, 680, 3678, 3679, 3680] persons= [682, 683, 684]
+--- sas= [] oneghi_slice678 crp= 1
+--- 'expires': 1167126997
+680 None oneghj_slice679 nodes= [679, 680, 681, 3679, 3680, 3681] persons= [683, 684, 685]
+--- sas= [] oneghj_slice679 crp= 1
+--- 'expires': 1167126997
+681 None onegia_slice680 nodes= [680, 681, 682, 3680, 3681, 3682] persons= [684, 685, 686]
+--- sas= [] onegia_slice680 crp= 1
+--- 'expires': 1167126998
+682 None onegib_slice681 nodes= [681, 682, 683, 3681, 3682, 3683] persons= [685, 686, 687]
+--- sas= [] onegib_slice681 crp= 1
+--- 'expires': 1167126998
+683 None onegic_slice682 nodes= [682, 683, 684, 3682, 3683, 3684] persons= [686, 687, 688]
+--- sas= [] onegic_slice682 crp= 1
+--- 'expires': 1167126998
+684 None onegid_slice683 nodes= [683, 684, 685, 3683, 3684, 3685] persons= [687, 688, 689]
+--- sas= [] onegid_slice683 crp= 1
+--- 'expires': 1167126999
+685 None onegie_slice684 nodes= [684, 685, 686, 3684, 3685, 3686] persons= [688, 689, 690]
+--- sas= [] onegie_slice684 crp= 1
+--- 'expires': 1167126999
+686 None onegif_slice685 nodes= [685, 686, 687, 3685, 3686, 3687] persons= [689, 690, 691]
+--- sas= [] onegif_slice685 crp= 1
+--- 'expires': 1167126999
+687 None onegig_slice686 nodes= [686, 687, 688, 3686, 3687, 3688] persons= [690, 691, 692]
+--- sas= [] onegig_slice686 crp= 1
+--- 'expires': 1167126999
+688 None onegih_slice687 nodes= [687, 688, 689, 3687, 3688, 3689] persons= [691, 692, 693]
+--- sas= [] onegih_slice687 crp= 1
+--- 'expires': 1167127000
+689 None onegii_slice688 nodes= [688, 689, 690, 3688, 3689, 3690] persons= [692, 693, 694]
+--- sas= [] onegii_slice688 crp= 1
+--- 'expires': 1167127000
+690 None onegij_slice689 nodes= [689, 690, 691, 3689, 3690, 3691] persons= [693, 694, 695]
+--- sas= [] onegij_slice689 crp= 1
+--- 'expires': 1167127000
+691 None onegja_slice690 nodes= [690, 691, 692, 3690, 3691, 3692] persons= [694, 695, 696]
+--- sas= [] onegja_slice690 crp= 1
+--- 'expires': 1167127001
+692 None onegjb_slice691 nodes= [691, 692, 693, 3691, 3692, 3693] persons= [695, 696, 697]
+--- sas= [] onegjb_slice691 crp= 1
+--- 'expires': 1167127001
+693 None onegjc_slice692 nodes= [692, 693, 694, 3692, 3693, 3694] persons= [696, 697, 698]
+--- sas= [] onegjc_slice692 crp= 1
+--- 'expires': 1167127001
+694 None onegjd_slice693 nodes= [693, 694, 695, 3693, 3694, 3695] persons= [697, 698, 699]
+--- sas= [] onegjd_slice693 crp= 1
+--- 'expires': 1167127002
+695 None onegje_slice694 nodes= [694, 695, 696, 3694, 3695, 3696] persons= [698, 699, 700]
+--- sas= [] onegje_slice694 crp= 1
+--- 'expires': 1167127002
+696 None onegjf_slice695 nodes= [695, 696, 697, 3695, 3696, 3697] persons= [699, 700, 701]
+--- sas= [] onegjf_slice695 crp= 1
+--- 'expires': 1167127002
+697 None onegjg_slice696 nodes= [696, 697, 698, 3696, 3697, 3698] persons= [700, 701, 702]
+--- sas= [] onegjg_slice696 crp= 1
+--- 'expires': 1167127002
+698 None onegjh_slice697 nodes= [697, 698, 699, 3697, 3698, 3699] persons= [701, 702, 703]
+--- sas= [] onegjh_slice697 crp= 1
+--- 'expires': 1167127003
+699 None onegji_slice698 nodes= [698, 699, 700, 3698, 3699, 3700] persons= [702, 703, 704]
+--- sas= [] onegji_slice698 crp= 1
+--- 'expires': 1167127003
+700 None onegjj_slice699 nodes= [699, 700, 701, 3699, 3700, 3701] persons= [703, 704, 705]
+--- sas= [] onegjj_slice699 crp= 1
+--- 'expires': 1167127003
+701 None onehaa_slice700 nodes= [700, 701, 702, 3700, 3701, 3702] persons= [704, 705, 706]
+--- sas= [] onehaa_slice700 crp= 1
+--- 'expires': 1167127004
+702 None onehab_slice701 nodes= [701, 702, 703, 3701, 3702, 3703] persons= [705, 706, 707]
+--- sas= [] onehab_slice701 crp= 1
+--- 'expires': 1167127004
+703 None onehac_slice702 nodes= [702, 703, 704, 3702, 3703, 3704] persons= [706, 707, 708]
+--- sas= [] onehac_slice702 crp= 1
+--- 'expires': 1167127004
+704 None onehad_slice703 nodes= [703, 704, 705, 3703, 3704, 3705] persons= [707, 708, 709]
+--- sas= [] onehad_slice703 crp= 1
+--- 'expires': 1167127004
+705 None onehae_slice704 nodes= [704, 705, 706, 3704, 3705, 3706] persons= [708, 709, 710]
+--- sas= [] onehae_slice704 crp= 1
+--- 'expires': 1167127005
+706 None onehaf_slice705 nodes= [705, 706, 707, 3705, 3706, 3707] persons= [709, 710, 711]
+--- sas= [] onehaf_slice705 crp= 1
+--- 'expires': 1167127005
+707 None onehag_slice706 nodes= [706, 707, 708, 3706, 3707, 3708] persons= [710, 711, 712]
+--- sas= [] onehag_slice706 crp= 1
+--- 'expires': 1167127005
+708 None onehah_slice707 nodes= [707, 708, 709, 3707, 3708, 3709] persons= [711, 712, 713]
+--- sas= [] onehah_slice707 crp= 1
+--- 'expires': 1167127006
+709 None onehai_slice708 nodes= [708, 709, 710, 3708, 3709, 3710] persons= [712, 713, 714]
+--- sas= [] onehai_slice708 crp= 1
+--- 'expires': 1167127006
+710 None onehaj_slice709 nodes= [709, 710, 711, 3709, 3710, 3711] persons= [713, 714, 715]
+--- sas= [] onehaj_slice709 crp= 1
+--- 'expires': 1167127006
+711 None onehba_slice710 nodes= [710, 711, 712, 3710, 3711, 3712] persons= [714, 715, 716]
+--- sas= [] onehba_slice710 crp= 1
+--- 'expires': 1167127007
+712 None onehbb_slice711 nodes= [711, 712, 713, 3711, 3712, 3713] persons= [715, 716, 717]
+--- sas= [] onehbb_slice711 crp= 1
+--- 'expires': 1167127007
+713 None onehbc_slice712 nodes= [712, 713, 714, 3712, 3713, 3714] persons= [716, 717, 718]
+--- sas= [] onehbc_slice712 crp= 1
+--- 'expires': 1167127007
+714 None onehbd_slice713 nodes= [713, 714, 715, 3713, 3714, 3715] persons= [717, 718, 719]
+--- sas= [] onehbd_slice713 crp= 1
+--- 'expires': 1167127007
+715 None onehbe_slice714 nodes= [714, 715, 716, 3714, 3715, 3716] persons= [718, 719, 720]
+--- sas= [] onehbe_slice714 crp= 1
+--- 'expires': 1167127008
+716 None onehbf_slice715 nodes= [715, 716, 717, 3715, 3716, 3717] persons= [719, 720, 721]
+--- sas= [] onehbf_slice715 crp= 1
+--- 'expires': 1167127008
+717 None onehbg_slice716 nodes= [716, 717, 718, 3716, 3717, 3718] persons= [720, 721, 722]
+--- sas= [] onehbg_slice716 crp= 1
+--- 'expires': 1167127008
+718 None onehbh_slice717 nodes= [717, 718, 719, 3717, 3718, 3719] persons= [721, 722, 723]
+--- sas= [] onehbh_slice717 crp= 1
+--- 'expires': 1167127009
+719 None onehbi_slice718 nodes= [718, 719, 720, 3718, 3719, 3720] persons= [722, 723, 724]
+--- sas= [] onehbi_slice718 crp= 1
+--- 'expires': 1167127009
+720 None onehbj_slice719 nodes= [719, 720, 721, 3719, 3720, 3721] persons= [723, 724, 725]
+--- sas= [] onehbj_slice719 crp= 1
+--- 'expires': 1167127009
+721 None onehca_slice720 nodes= [720, 721, 722, 3720, 3721, 3722] persons= [724, 725, 726]
+--- sas= [] onehca_slice720 crp= 1
+--- 'expires': 1167127010
+722 None onehcb_slice721 nodes= [721, 722, 723, 3721, 3722, 3723] persons= [725, 726, 727]
+--- sas= [] onehcb_slice721 crp= 1
+--- 'expires': 1167127010
+723 None onehcc_slice722 nodes= [722, 723, 724, 3722, 3723, 3724] persons= [726, 727, 728]
+--- sas= [] onehcc_slice722 crp= 1
+--- 'expires': 1167127010
+724 None onehcd_slice723 nodes= [723, 724, 725, 3723, 3724, 3725] persons= [727, 728, 729]
+--- sas= [] onehcd_slice723 crp= 1
+--- 'expires': 1167127010
+725 None onehce_slice724 nodes= [724, 725, 726, 3724, 3725, 3726] persons= [728, 729, 730]
+--- sas= [] onehce_slice724 crp= 1
+--- 'expires': 1167127011
+726 None onehcf_slice725 nodes= [725, 726, 727, 3725, 3726, 3727] persons= [729, 730, 731]
+--- sas= [] onehcf_slice725 crp= 1
+--- 'expires': 1167127011
+727 None onehcg_slice726 nodes= [726, 727, 728, 3726, 3727, 3728] persons= [730, 731, 732]
+--- sas= [] onehcg_slice726 crp= 1
+--- 'expires': 1167127011
+728 None onehch_slice727 nodes= [727, 728, 729, 3727, 3728, 3729] persons= [731, 732, 733]
+--- sas= [] onehch_slice727 crp= 1
+--- 'expires': 1167127012
+729 None onehci_slice728 nodes= [728, 729, 730, 3728, 3729, 3730] persons= [732, 733, 734]
+--- sas= [] onehci_slice728 crp= 1
+--- 'expires': 1167127012
+730 None onehcj_slice729 nodes= [729, 730, 731, 3729, 3730, 3731] persons= [733, 734, 735]
+--- sas= [] onehcj_slice729 crp= 1
+--- 'expires': 1167127012
+731 None onehda_slice730 nodes= [730, 731, 732, 3730, 3731, 3732] persons= [734, 735, 736]
+--- sas= [] onehda_slice730 crp= 1
+--- 'expires': 1167127013
+732 None onehdb_slice731 nodes= [731, 732, 733, 3731, 3732, 3733] persons= [735, 736, 737]
+--- sas= [] onehdb_slice731 crp= 1
+--- 'expires': 1167127013
+733 None onehdc_slice732 nodes= [732, 733, 734, 3732, 3733, 3734] persons= [736, 737, 738]
+--- sas= [] onehdc_slice732 crp= 1
+--- 'expires': 1167127013
+734 None onehdd_slice733 nodes= [733, 734, 735, 3733, 3734, 3735] persons= [737, 738, 739]
+--- sas= [] onehdd_slice733 crp= 1
+--- 'expires': 1167127013
+735 None onehde_slice734 nodes= [734, 735, 736, 3734, 3735, 3736] persons= [738, 739, 740]
+--- sas= [] onehde_slice734 crp= 1
+--- 'expires': 1167127014
+736 None onehdf_slice735 nodes= [735, 736, 737, 3735, 3736, 3737] persons= [739, 740, 741]
+--- sas= [] onehdf_slice735 crp= 1
+--- 'expires': 1167127014
+737 None onehdg_slice736 nodes= [736, 737, 738, 3736, 3737, 3738] persons= [740, 741, 742]
+--- sas= [] onehdg_slice736 crp= 1
+--- 'expires': 1167127014
+738 None onehdh_slice737 nodes= [737, 738, 739, 3737, 3738, 3739] persons= [741, 742, 743]
+--- sas= [] onehdh_slice737 crp= 1
+--- 'expires': 1167127015
+739 None onehdi_slice738 nodes= [738, 739, 740, 3738, 3739, 3740] persons= [742, 743, 744]
+--- sas= [] onehdi_slice738 crp= 1
+--- 'expires': 1167127015
+740 None onehdj_slice739 nodes= [739, 740, 741, 3739, 3740, 3741] persons= [743, 744, 745]
+--- sas= [] onehdj_slice739 crp= 1
+--- 'expires': 1167127015
+741 None onehea_slice740 nodes= [740, 741, 742, 3740, 3741, 3742] persons= [744, 745, 746]
+--- sas= [] onehea_slice740 crp= 1
+--- 'expires': 1167127016
+742 None oneheb_slice741 nodes= [741, 742, 743, 3741, 3742, 3743] persons= [745, 746, 747]
+--- sas= [] oneheb_slice741 crp= 1
+--- 'expires': 1167127016
+743 None onehec_slice742 nodes= [742, 743, 744, 3742, 3743, 3744] persons= [746, 747, 748]
+--- sas= [] onehec_slice742 crp= 1
+--- 'expires': 1167127016
+744 None onehed_slice743 nodes= [743, 744, 745, 3743, 3744, 3745] persons= [747, 748, 749]
+--- sas= [] onehed_slice743 crp= 1
+--- 'expires': 1167127016
+745 None onehee_slice744 nodes= [744, 745, 746, 3744, 3745, 3746] persons= [748, 749, 750]
+--- sas= [] onehee_slice744 crp= 1
+--- 'expires': 1167127017
+746 None onehef_slice745 nodes= [745, 746, 747, 3745, 3746, 3747] persons= [749, 750, 751]
+--- sas= [] onehef_slice745 crp= 1
+--- 'expires': 1167127017
+747 None oneheg_slice746 nodes= [746, 747, 748, 3746, 3747, 3748] persons= [750, 751, 752]
+--- sas= [] oneheg_slice746 crp= 1
+--- 'expires': 1167127017
+748 None oneheh_slice747 nodes= [747, 748, 749, 3747, 3748, 3749] persons= [751, 752, 753]
+--- sas= [] oneheh_slice747 crp= 1
+--- 'expires': 1167127018
+749 None onehei_slice748 nodes= [748, 749, 750, 3748, 3749, 3750] persons= [752, 753, 754]
+--- sas= [] onehei_slice748 crp= 1
+--- 'expires': 1167127018
+750 None onehej_slice749 nodes= [749, 750, 751, 3749, 3750, 3751] persons= [753, 754, 755]
+--- sas= [] onehej_slice749 crp= 1
+--- 'expires': 1167127018
+751 None onehfa_slice750 nodes= [750, 751, 752, 3750, 3751, 3752] persons= [754, 755, 756]
+--- sas= [] onehfa_slice750 crp= 1
+--- 'expires': 1167127019
+752 None onehfb_slice751 nodes= [751, 752, 753, 3751, 3752, 3753] persons= [755, 756, 757]
+--- sas= [] onehfb_slice751 crp= 1
+--- 'expires': 1167127019
+753 None onehfc_slice752 nodes= [752, 753, 754, 3752, 3753, 3754] persons= [756, 757, 758]
+--- sas= [] onehfc_slice752 crp= 1
+--- 'expires': 1167127019
+754 None onehfd_slice753 nodes= [753, 754, 755, 3753, 3754, 3755] persons= [757, 758, 759]
+--- sas= [] onehfd_slice753 crp= 1
+--- 'expires': 1167127019
+755 None onehfe_slice754 nodes= [754, 755, 756, 3754, 3755, 3756] persons= [758, 759, 760]
+--- sas= [] onehfe_slice754 crp= 1
+--- 'expires': 1167127020
+756 None onehff_slice755 nodes= [755, 756, 757, 3755, 3756, 3757] persons= [759, 760, 761]
+--- sas= [] onehff_slice755 crp= 1
+--- 'expires': 1167127020
+757 None onehfg_slice756 nodes= [756, 757, 758, 3756, 3757, 3758] persons= [760, 761, 762]
+--- sas= [] onehfg_slice756 crp= 1
+--- 'expires': 1167127020
+758 None onehfh_slice757 nodes= [757, 758, 759, 3757, 3758, 3759] persons= [761, 762, 763]
+--- sas= [] onehfh_slice757 crp= 1
+--- 'expires': 1167127021
+759 None onehfi_slice758 nodes= [758, 759, 760, 3758, 3759, 3760] persons= [762, 763, 764]
+--- sas= [] onehfi_slice758 crp= 1
+--- 'expires': 1167127021
+760 None onehfj_slice759 nodes= [759, 760, 761, 3759, 3760, 3761] persons= [763, 764, 765]
+--- sas= [] onehfj_slice759 crp= 1
+--- 'expires': 1167127021
+761 None onehga_slice760 nodes= [760, 761, 762, 3760, 3761, 3762] persons= [764, 765, 766]
+--- sas= [] onehga_slice760 crp= 1
+--- 'expires': 1167127022
+762 None onehgb_slice761 nodes= [761, 762, 763, 3761, 3762, 3763] persons= [765, 766, 767]
+--- sas= [] onehgb_slice761 crp= 1
+--- 'expires': 1167127022
+763 None onehgc_slice762 nodes= [762, 763, 764, 3762, 3763, 3764] persons= [766, 767, 768]
+--- sas= [] onehgc_slice762 crp= 1
+--- 'expires': 1167127022
+764 None onehgd_slice763 nodes= [763, 764, 765, 3763, 3764, 3765] persons= [767, 768, 769]
+--- sas= [] onehgd_slice763 crp= 1
+--- 'expires': 1167127023
+765 None onehge_slice764 nodes= [764, 765, 766, 3764, 3765, 3766] persons= [768, 769, 770]
+--- sas= [] onehge_slice764 crp= 1
+--- 'expires': 1167127023
+766 None onehgf_slice765 nodes= [765, 766, 767, 3765, 3766, 3767] persons= [769, 770, 771]
+--- sas= [] onehgf_slice765 crp= 1
+--- 'expires': 1167127023
+767 None onehgg_slice766 nodes= [766, 767, 768, 3766, 3767, 3768] persons= [770, 771, 772]
+--- sas= [] onehgg_slice766 crp= 1
+--- 'expires': 1167127023
+768 None onehgh_slice767 nodes= [767, 768, 769, 3767, 3768, 3769] persons= [771, 772, 773]
+--- sas= [] onehgh_slice767 crp= 1
+--- 'expires': 1167127024
+769 None onehgi_slice768 nodes= [768, 769, 770, 3768, 3769, 3770] persons= [772, 773, 774]
+--- sas= [] onehgi_slice768 crp= 1
+--- 'expires': 1167127024
+770 None onehgj_slice769 nodes= [769, 770, 771, 3769, 3770, 3771] persons= [773, 774, 775]
+--- sas= [] onehgj_slice769 crp= 1
+--- 'expires': 1167127024
+771 None onehha_slice770 nodes= [770, 771, 772, 3770, 3771, 3772] persons= [774, 775, 776]
+--- sas= [] onehha_slice770 crp= 1
+--- 'expires': 1167127025
+772 None onehhb_slice771 nodes= [771, 772, 773, 3771, 3772, 3773] persons= [775, 776, 777]
+--- sas= [] onehhb_slice771 crp= 1
+--- 'expires': 1167127025
+773 None onehhc_slice772 nodes= [772, 773, 774, 3772, 3773, 3774] persons= [776, 777, 778]
+--- sas= [] onehhc_slice772 crp= 1
+--- 'expires': 1167127025
+774 None onehhd_slice773 nodes= [773, 774, 775, 3773, 3774, 3775] persons= [777, 778, 779]
+--- sas= [] onehhd_slice773 crp= 1
+--- 'expires': 1167127026
+775 None onehhe_slice774 nodes= [774, 775, 776, 3774, 3775, 3776] persons= [778, 779, 780]
+--- sas= [] onehhe_slice774 crp= 1
+--- 'expires': 1167127026
+776 None onehhf_slice775 nodes= [775, 776, 777, 3775, 3776, 3777] persons= [779, 780, 781]
+--- sas= [] onehhf_slice775 crp= 1
+--- 'expires': 1167127026
+777 None onehhg_slice776 nodes= [776, 777, 778, 3776, 3777, 3778] persons= [780, 781, 782]
+--- sas= [] onehhg_slice776 crp= 1
+--- 'expires': 1167127027
+778 None onehhh_slice777 nodes= [777, 778, 779, 3777, 3778, 3779] persons= [781, 782, 783]
+--- sas= [] onehhh_slice777 crp= 1
+--- 'expires': 1167127027
+779 None onehhi_slice778 nodes= [778, 779, 780, 3778, 3779, 3780] persons= [782, 783, 784]
+--- sas= [] onehhi_slice778 crp= 1
+--- 'expires': 1167127027
+780 None onehhj_slice779 nodes= [779, 780, 781, 3779, 3780, 3781] persons= [783, 784, 785]
+--- sas= [] onehhj_slice779 crp= 1
+--- 'expires': 1167127027
+781 None onehia_slice780 nodes= [780, 781, 782, 3780, 3781, 3782] persons= [784, 785, 786]
+--- sas= [] onehia_slice780 crp= 1
+--- 'expires': 1167127028
+782 None onehib_slice781 nodes= [781, 782, 783, 3781, 3782, 3783] persons= [785, 786, 787]
+--- sas= [] onehib_slice781 crp= 1
+--- 'expires': 1167127028
+783 None onehic_slice782 nodes= [782, 783, 784, 3782, 3783, 3784] persons= [786, 787, 788]
+--- sas= [] onehic_slice782 crp= 1
+--- 'expires': 1167127028
+784 None onehid_slice783 nodes= [783, 784, 785, 3783, 3784, 3785] persons= [787, 788, 789]
+--- sas= [] onehid_slice783 crp= 1
+--- 'expires': 1167127029
+785 None onehie_slice784 nodes= [784, 785, 786, 3784, 3785, 3786] persons= [788, 789, 790]
+--- sas= [] onehie_slice784 crp= 1
+--- 'expires': 1167127029
+786 None onehif_slice785 nodes= [785, 786, 787, 3785, 3786, 3787] persons= [789, 790, 791]
+--- sas= [] onehif_slice785 crp= 1
+--- 'expires': 1167127029
+787 None onehig_slice786 nodes= [786, 787, 788, 3786, 3787, 3788] persons= [790, 791, 792]
+--- sas= [] onehig_slice786 crp= 1
+--- 'expires': 1167127030
+788 None onehih_slice787 nodes= [787, 788, 789, 3787, 3788, 3789] persons= [791, 792, 793]
+--- sas= [] onehih_slice787 crp= 1
+--- 'expires': 1167127030
+789 None onehii_slice788 nodes= [788, 789, 790, 3788, 3789, 3790] persons= [792, 793, 794]
+--- sas= [] onehii_slice788 crp= 1
+--- 'expires': 1167127030
+790 None onehij_slice789 nodes= [789, 790, 791, 3789, 3790, 3791] persons= [793, 794, 795]
+--- sas= [] onehij_slice789 crp= 1
+--- 'expires': 1167127031
+791 None onehja_slice790 nodes= [790, 791, 792, 3790, 3791, 3792] persons= [794, 795, 796]
+--- sas= [] onehja_slice790 crp= 1
+--- 'expires': 1167127031
+792 None onehjb_slice791 nodes= [791, 792, 793, 3791, 3792, 3793] persons= [795, 796, 797]
+--- sas= [] onehjb_slice791 crp= 1
+--- 'expires': 1167127031
+793 None onehjc_slice792 nodes= [792, 793, 794, 3792, 3793, 3794] persons= [796, 797, 798]
+--- sas= [] onehjc_slice792 crp= 1
+--- 'expires': 1167127031
+794 None onehjd_slice793 nodes= [793, 794, 795, 3793, 3794, 3795] persons= [797, 798, 799]
+--- sas= [] onehjd_slice793 crp= 1
+--- 'expires': 1167127032
+795 None onehje_slice794 nodes= [794, 795, 796, 3794, 3795, 3796] persons= [798, 799, 800]
+--- sas= [] onehje_slice794 crp= 1
+--- 'expires': 1167127032
+796 None onehjf_slice795 nodes= [795, 796, 797, 3795, 3796, 3797] persons= [799, 800, 801]
+--- sas= [] onehjf_slice795 crp= 1
+--- 'expires': 1167127032
+797 None onehjg_slice796 nodes= [796, 797, 798, 3796, 3797, 3798] persons= [800, 801, 802]
+--- sas= [] onehjg_slice796 crp= 1
+--- 'expires': 1167127033
+798 None onehjh_slice797 nodes= [797, 798, 799, 3797, 3798, 3799] persons= [801, 802, 803]
+--- sas= [] onehjh_slice797 crp= 1
+--- 'expires': 1167127033
+799 None onehji_slice798 nodes= [798, 799, 800, 3798, 3799, 3800] persons= [802, 803, 804]
+--- sas= [] onehji_slice798 crp= 1
+--- 'expires': 1167127033
+800 None onehjj_slice799 nodes= [799, 800, 801, 3799, 3800, 3801] persons= [803, 804, 805]
+--- sas= [] onehjj_slice799 crp= 1
+--- 'expires': 1167127034
+801 None oneiaa_slice800 nodes= [800, 801, 802, 3800, 3801, 3802] persons= [804, 805, 806]
+--- sas= [] oneiaa_slice800 crp= 1
+--- 'expires': 1167127034
+802 None oneiab_slice801 nodes= [801, 802, 803, 3801, 3802, 3803] persons= [805, 806, 807]
+--- sas= [] oneiab_slice801 crp= 1
+--- 'expires': 1167127034
+803 None oneiac_slice802 nodes= [802, 803, 804, 3802, 3803, 3804] persons= [806, 807, 808]
+--- sas= [] oneiac_slice802 crp= 1
+--- 'expires': 1167127035
+804 None oneiad_slice803 nodes= [803, 804, 805, 3803, 3804, 3805] persons= [807, 808, 809]
+--- sas= [] oneiad_slice803 crp= 1
+--- 'expires': 1167127035
+805 None oneiae_slice804 nodes= [804, 805, 806, 3804, 3805, 3806] persons= [808, 809, 810]
+--- sas= [] oneiae_slice804 crp= 1
+--- 'expires': 1167127035
+806 None oneiaf_slice805 nodes= [805, 806, 807, 3805, 3806, 3807] persons= [809, 810, 811]
+--- sas= [] oneiaf_slice805 crp= 1
+--- 'expires': 1167127036
+807 None oneiag_slice806 nodes= [806, 807, 808, 3806, 3807, 3808] persons= [810, 811, 812]
+--- sas= [] oneiag_slice806 crp= 1
+--- 'expires': 1167127036
+808 None oneiah_slice807 nodes= [807, 808, 809, 3807, 3808, 3809] persons= [811, 812, 813]
+--- sas= [] oneiah_slice807 crp= 1
+--- 'expires': 1167127036
+809 None oneiai_slice808 nodes= [808, 809, 810, 3808, 3809, 3810] persons= [812, 813, 814]
+--- sas= [] oneiai_slice808 crp= 1
+--- 'expires': 1167127036
+810 None oneiaj_slice809 nodes= [809, 810, 811, 3809, 3810, 3811] persons= [813, 814, 815]
+--- sas= [] oneiaj_slice809 crp= 1
+--- 'expires': 1167127037
+811 None oneiba_slice810 nodes= [810, 811, 812, 3810, 3811, 3812] persons= [814, 815, 816]
+--- sas= [] oneiba_slice810 crp= 1
+--- 'expires': 1167127037
+812 None oneibb_slice811 nodes= [811, 812, 813, 3811, 3812, 3813] persons= [815, 816, 817]
+--- sas= [] oneibb_slice811 crp= 1
+--- 'expires': 1167127037
+813 None oneibc_slice812 nodes= [812, 813, 814, 3812, 3813, 3814] persons= [816, 817, 818]
+--- sas= [] oneibc_slice812 crp= 1
+--- 'expires': 1167127038
+814 None oneibd_slice813 nodes= [813, 814, 815, 3813, 3814, 3815] persons= [817, 818, 819]
+--- sas= [] oneibd_slice813 crp= 1
+--- 'expires': 1167127038
+815 None oneibe_slice814 nodes= [814, 815, 816, 3814, 3815, 3816] persons= [818, 819, 820]
+--- sas= [] oneibe_slice814 crp= 1
+--- 'expires': 1167127038
+816 None oneibf_slice815 nodes= [815, 816, 817, 3815, 3816, 3817] persons= [819, 820, 821]
+--- sas= [] oneibf_slice815 crp= 1
+--- 'expires': 1167127039
+817 None oneibg_slice816 nodes= [816, 817, 818, 3816, 3817, 3818] persons= [820, 821, 822]
+--- sas= [] oneibg_slice816 crp= 1
+--- 'expires': 1167127039
+818 None oneibh_slice817 nodes= [817, 818, 819, 3817, 3818, 3819] persons= [821, 822, 823]
+--- sas= [] oneibh_slice817 crp= 1
+--- 'expires': 1167127039
+819 None oneibi_slice818 nodes= [818, 819, 820, 3818, 3819, 3820] persons= [822, 823, 824]
+--- sas= [] oneibi_slice818 crp= 1
+--- 'expires': 1167127040
+820 None oneibj_slice819 nodes= [819, 820, 821, 3819, 3820, 3821] persons= [823, 824, 825]
+--- sas= [] oneibj_slice819 crp= 1
+--- 'expires': 1167127040
+821 None oneica_slice820 nodes= [820, 821, 822, 3820, 3821, 3822] persons= [824, 825, 826]
+--- sas= [] oneica_slice820 crp= 1
+--- 'expires': 1167127040
+822 None oneicb_slice821 nodes= [821, 822, 823, 3821, 3822, 3823] persons= [825, 826, 827]
+--- sas= [] oneicb_slice821 crp= 1
+--- 'expires': 1167127041
+823 None oneicc_slice822 nodes= [822, 823, 824, 3822, 3823, 3824] persons= [826, 827, 828]
+--- sas= [] oneicc_slice822 crp= 1
+--- 'expires': 1167127041
+824 None oneicd_slice823 nodes= [823, 824, 825, 3823, 3824, 3825] persons= [827, 828, 829]
+--- sas= [] oneicd_slice823 crp= 1
+--- 'expires': 1167127041
+825 None oneice_slice824 nodes= [824, 825, 826, 3824, 3825, 3826] persons= [828, 829, 830]
+--- sas= [] oneice_slice824 crp= 1
+--- 'expires': 1167127042
+826 None oneicf_slice825 nodes= [825, 826, 827, 3825, 3826, 3827] persons= [829, 830, 831]
+--- sas= [] oneicf_slice825 crp= 1
+--- 'expires': 1167127042
+827 None oneicg_slice826 nodes= [826, 827, 828, 3826, 3827, 3828] persons= [830, 831, 832]
+--- sas= [] oneicg_slice826 crp= 1
+--- 'expires': 1167127042
+828 None oneich_slice827 nodes= [827, 828, 829, 3827, 3828, 3829] persons= [831, 832, 833]
+--- sas= [] oneich_slice827 crp= 1
+--- 'expires': 1167127042
+829 None oneici_slice828 nodes= [828, 829, 830, 3828, 3829, 3830] persons= [832, 833, 834]
+--- sas= [] oneici_slice828 crp= 1
+--- 'expires': 1167127043
+830 None oneicj_slice829 nodes= [829, 830, 831, 3829, 3830, 3831] persons= [833, 834, 835]
+--- sas= [] oneicj_slice829 crp= 1
+--- 'expires': 1167127043
+831 None oneida_slice830 nodes= [830, 831, 832, 3830, 3831, 3832] persons= [834, 835, 836]
+--- sas= [] oneida_slice830 crp= 1
+--- 'expires': 1167127043
+832 None oneidb_slice831 nodes= [831, 832, 833, 3831, 3832, 3833] persons= [835, 836, 837]
+--- sas= [] oneidb_slice831 crp= 1
+--- 'expires': 1167127044
+833 None oneidc_slice832 nodes= [832, 833, 834, 3832, 3833, 3834] persons= [836, 837, 838]
+--- sas= [] oneidc_slice832 crp= 1
+--- 'expires': 1167127044
+834 None oneidd_slice833 nodes= [833, 834, 835, 3833, 3834, 3835] persons= [837, 838, 839]
+--- sas= [] oneidd_slice833 crp= 1
+--- 'expires': 1167127044
+835 None oneide_slice834 nodes= [834, 835, 836, 3834, 3835, 3836] persons= [838, 839, 840]
+--- sas= [] oneide_slice834 crp= 1
+--- 'expires': 1167127045
+836 None oneidf_slice835 nodes= [835, 836, 837, 3835, 3836, 3837] persons= [839, 840, 841]
+--- sas= [] oneidf_slice835 crp= 1
+--- 'expires': 1167127045
+837 None oneidg_slice836 nodes= [836, 837, 838, 3836, 3837, 3838] persons= [840, 841, 842]
+--- sas= [] oneidg_slice836 crp= 1
+--- 'expires': 1167127045
+838 None oneidh_slice837 nodes= [837, 838, 839, 3837, 3838, 3839] persons= [841, 842, 843]
+--- sas= [] oneidh_slice837 crp= 1
+--- 'expires': 1167127046
+839 None oneidi_slice838 nodes= [838, 839, 840, 3838, 3839, 3840] persons= [842, 843, 844]
+--- sas= [] oneidi_slice838 crp= 1
+--- 'expires': 1167127046
+840 None oneidj_slice839 nodes= [839, 840, 841, 3839, 3840, 3841] persons= [843, 844, 845]
+--- sas= [] oneidj_slice839 crp= 1
+--- 'expires': 1167127046
+841 None oneiea_slice840 nodes= [840, 841, 842, 3840, 3841, 3842] persons= [844, 845, 846]
+--- sas= [] oneiea_slice840 crp= 1
+--- 'expires': 1167127047
+842 None oneieb_slice841 nodes= [841, 842, 843, 3841, 3842, 3843] persons= [845, 846, 847]
+--- sas= [] oneieb_slice841 crp= 1
+--- 'expires': 1167127047
+843 None oneiec_slice842 nodes= [842, 843, 844, 3842, 3843, 3844] persons= [846, 847, 848]
+--- sas= [] oneiec_slice842 crp= 1
+--- 'expires': 1167127047
+844 None oneied_slice843 nodes= [843, 844, 845, 3843, 3844, 3845] persons= [847, 848, 849]
+--- sas= [] oneied_slice843 crp= 1
+--- 'expires': 1167127048
+845 None oneiee_slice844 nodes= [844, 845, 846, 3844, 3845, 3846] persons= [848, 849, 850]
+--- sas= [] oneiee_slice844 crp= 1
+--- 'expires': 1167127048
+846 None oneief_slice845 nodes= [845, 846, 847, 3845, 3846, 3847] persons= [849, 850, 851]
+--- sas= [] oneief_slice845 crp= 1
+--- 'expires': 1167127048
+847 None oneieg_slice846 nodes= [846, 847, 848, 3846, 3847, 3848] persons= [850, 851, 852]
+--- sas= [] oneieg_slice846 crp= 1
+--- 'expires': 1167127048
+848 None oneieh_slice847 nodes= [847, 848, 849, 3847, 3848, 3849] persons= [851, 852, 853]
+--- sas= [] oneieh_slice847 crp= 1
+--- 'expires': 1167127049
+849 None oneiei_slice848 nodes= [848, 849, 850, 3848, 3849, 3850] persons= [852, 853, 854]
+--- sas= [] oneiei_slice848 crp= 1
+--- 'expires': 1167127049
+850 None oneiej_slice849 nodes= [849, 850, 851, 3849, 3850, 3851] persons= [853, 854, 855]
+--- sas= [] oneiej_slice849 crp= 1
+--- 'expires': 1167127049
+851 None oneifa_slice850 nodes= [850, 851, 852, 3850, 3851, 3852] persons= [854, 855, 856]
+--- sas= [] oneifa_slice850 crp= 1
+--- 'expires': 1167127050
+852 None oneifb_slice851 nodes= [851, 852, 853, 3851, 3852, 3853] persons= [855, 856, 857]
+--- sas= [] oneifb_slice851 crp= 1
+--- 'expires': 1167127050
+853 None oneifc_slice852 nodes= [852, 853, 854, 3852, 3853, 3854] persons= [856, 857, 858]
+--- sas= [] oneifc_slice852 crp= 1
+--- 'expires': 1167127050
+854 None oneifd_slice853 nodes= [853, 854, 855, 3853, 3854, 3855] persons= [857, 858, 859]
+--- sas= [] oneifd_slice853 crp= 1
+--- 'expires': 1167127051
+855 None oneife_slice854 nodes= [854, 855, 856, 3854, 3855, 3856] persons= [858, 859, 860]
+--- sas= [] oneife_slice854 crp= 1
+--- 'expires': 1167127051
+856 None oneiff_slice855 nodes= [855, 856, 857, 3855, 3856, 3857] persons= [859, 860, 861]
+--- sas= [] oneiff_slice855 crp= 1
+--- 'expires': 1167127051
+857 None oneifg_slice856 nodes= [856, 857, 858, 3856, 3857, 3858] persons= [860, 861, 862]
+--- sas= [] oneifg_slice856 crp= 1
+--- 'expires': 1167127052
+858 None oneifh_slice857 nodes= [857, 858, 859, 3857, 3858, 3859] persons= [861, 862, 863]
+--- sas= [] oneifh_slice857 crp= 1
+--- 'expires': 1167127052
+859 None oneifi_slice858 nodes= [858, 859, 860, 3858, 3859, 3860] persons= [862, 863, 864]
+--- sas= [] oneifi_slice858 crp= 1
+--- 'expires': 1167127052
+860 None oneifj_slice859 nodes= [859, 860, 861, 3859, 3860, 3861] persons= [863, 864, 865]
+--- sas= [] oneifj_slice859 crp= 1
+--- 'expires': 1167127053
+861 None oneiga_slice860 nodes= [860, 861, 862, 3860, 3861, 3862] persons= [864, 865, 866]
+--- sas= [] oneiga_slice860 crp= 1
+--- 'expires': 1167127053
+862 None oneigb_slice861 nodes= [861, 862, 863, 3861, 3862, 3863] persons= [865, 866, 867]
+--- sas= [] oneigb_slice861 crp= 1
+--- 'expires': 1167127053
+863 None oneigc_slice862 nodes= [862, 863, 864, 3862, 3863, 3864] persons= [866, 867, 868]
+--- sas= [] oneigc_slice862 crp= 1
+--- 'expires': 1167127054
+864 None oneigd_slice863 nodes= [863, 864, 865, 3863, 3864, 3865] persons= [867, 868, 869]
+--- sas= [] oneigd_slice863 crp= 1
+--- 'expires': 1167127054
+865 None oneige_slice864 nodes= [864, 865, 866, 3864, 3865, 3866] persons= [868, 869, 870]
+--- sas= [] oneige_slice864 crp= 1
+--- 'expires': 1167127054
+866 None oneigf_slice865 nodes= [865, 866, 867, 3865, 3866, 3867] persons= [869, 870, 871]
+--- sas= [] oneigf_slice865 crp= 1
+--- 'expires': 1167127055
+867 None oneigg_slice866 nodes= [866, 867, 868, 3866, 3867, 3868] persons= [870, 871, 872]
+--- sas= [] oneigg_slice866 crp= 1
+--- 'expires': 1167127055
+868 None oneigh_slice867 nodes= [867, 868, 869, 3867, 3868, 3869] persons= [871, 872, 873]
+--- sas= [] oneigh_slice867 crp= 1
+--- 'expires': 1167127055
+869 None oneigi_slice868 nodes= [868, 869, 870, 3868, 3869, 3870] persons= [872, 873, 874]
+--- sas= [] oneigi_slice868 crp= 1
+--- 'expires': 1167127056
+870 None oneigj_slice869 nodes= [869, 870, 871, 3869, 3870, 3871] persons= [873, 874, 875]
+--- sas= [] oneigj_slice869 crp= 1
+--- 'expires': 1167127056
+871 None oneiha_slice870 nodes= [870, 871, 872, 3870, 3871, 3872] persons= [874, 875, 876]
+--- sas= [] oneiha_slice870 crp= 1
+--- 'expires': 1167127056
+872 None oneihb_slice871 nodes= [871, 872, 873, 3871, 3872, 3873] persons= [875, 876, 877]
+--- sas= [] oneihb_slice871 crp= 1
+--- 'expires': 1167127057
+873 None oneihc_slice872 nodes= [872, 873, 874, 3872, 3873, 3874] persons= [876, 877, 878]
+--- sas= [] oneihc_slice872 crp= 1
+--- 'expires': 1167127057
+874 None oneihd_slice873 nodes= [873, 874, 875, 3873, 3874, 3875] persons= [877, 878, 879]
+--- sas= [] oneihd_slice873 crp= 1
+--- 'expires': 1167127057
+875 None oneihe_slice874 nodes= [874, 875, 876, 3874, 3875, 3876] persons= [878, 879, 880]
+--- sas= [] oneihe_slice874 crp= 1
+--- 'expires': 1167127058
+876 None oneihf_slice875 nodes= [875, 876, 877, 3875, 3876, 3877] persons= [879, 880, 881]
+--- sas= [] oneihf_slice875 crp= 1
+--- 'expires': 1167127058
+877 None oneihg_slice876 nodes= [876, 877, 878, 3876, 3877, 3878] persons= [880, 881, 882]
+--- sas= [] oneihg_slice876 crp= 1
+--- 'expires': 1167127059
+878 None oneihh_slice877 nodes= [877, 878, 879, 3877, 3878, 3879] persons= [881, 882, 883]
+--- sas= [] oneihh_slice877 crp= 1
+--- 'expires': 1167127059
+879 None oneihi_slice878 nodes= [878, 879, 880, 3878, 3879, 3880] persons= [882, 883, 884]
+--- sas= [] oneihi_slice878 crp= 1
+--- 'expires': 1167127059
+880 None oneihj_slice879 nodes= [879, 880, 881, 3879, 3880, 3881] persons= [883, 884, 885]
+--- sas= [] oneihj_slice879 crp= 1
+--- 'expires': 1167127060
+881 None oneiia_slice880 nodes= [880, 881, 882, 3880, 3881, 3882] persons= [884, 885, 886]
+--- sas= [] oneiia_slice880 crp= 1
+--- 'expires': 1167127060
+882 None oneiib_slice881 nodes= [881, 882, 883, 3881, 3882, 3883] persons= [885, 886, 887]
+--- sas= [] oneiib_slice881 crp= 1
+--- 'expires': 1167127060
+883 None oneiic_slice882 nodes= [882, 883, 884, 3882, 3883, 3884] persons= [886, 887, 888]
+--- sas= [] oneiic_slice882 crp= 1
+--- 'expires': 1167127061
+884 None oneiid_slice883 nodes= [883, 884, 885, 3883, 3884, 3885] persons= [887, 888, 889]
+--- sas= [] oneiid_slice883 crp= 1
+--- 'expires': 1167127061
+885 None oneiie_slice884 nodes= [884, 885, 886, 3884, 3885, 3886] persons= [888, 889, 890]
+--- sas= [] oneiie_slice884 crp= 1
+--- 'expires': 1167127061
+886 None oneiif_slice885 nodes= [885, 886, 887, 3885, 3886, 3887] persons= [889, 890, 891]
+--- sas= [] oneiif_slice885 crp= 1
+--- 'expires': 1167127062
+887 None oneiig_slice886 nodes= [886, 887, 888, 3886, 3887, 3888] persons= [890, 891, 892]
+--- sas= [] oneiig_slice886 crp= 1
+--- 'expires': 1167127062
+888 None oneiih_slice887 nodes= [887, 888, 889, 3887, 3888, 3889] persons= [891, 892, 893]
+--- sas= [] oneiih_slice887 crp= 1
+--- 'expires': 1167127062
+889 None oneiii_slice888 nodes= [888, 889, 890, 3888, 3889, 3890] persons= [892, 893, 894]
+--- sas= [] oneiii_slice888 crp= 1
+--- 'expires': 1167127063
+890 None oneiij_slice889 nodes= [889, 890, 891, 3889, 3890, 3891] persons= [893, 894, 895]
+--- sas= [] oneiij_slice889 crp= 1
+--- 'expires': 1167127063
+891 None oneija_slice890 nodes= [890, 891, 892, 3890, 3891, 3892] persons= [894, 895, 896]
+--- sas= [] oneija_slice890 crp= 1
+--- 'expires': 1167127063
+892 None oneijb_slice891 nodes= [891, 892, 893, 3891, 3892, 3893] persons= [895, 896, 897]
+--- sas= [] oneijb_slice891 crp= 1
+--- 'expires': 1167127064
+893 None oneijc_slice892 nodes= [892, 893, 894, 3892, 3893, 3894] persons= [896, 897, 898]
+--- sas= [] oneijc_slice892 crp= 1
+--- 'expires': 1167127064
+894 None oneijd_slice893 nodes= [893, 894, 895, 3893, 3894, 3895] persons= [897, 898, 899]
+--- sas= [] oneijd_slice893 crp= 1
+--- 'expires': 1167127064
+895 None oneije_slice894 nodes= [894, 895, 896, 3894, 3895, 3896] persons= [898, 899, 900]
+--- sas= [] oneije_slice894 crp= 1
+--- 'expires': 1167127065
+896 None oneijf_slice895 nodes= [895, 896, 897, 3895, 3896, 3897] persons= [899, 900, 901]
+--- sas= [] oneijf_slice895 crp= 1
+--- 'expires': 1167127065
+897 None oneijg_slice896 nodes= [896, 897, 898, 3896, 3897, 3898] persons= [900, 901, 902]
+--- sas= [] oneijg_slice896 crp= 1
+--- 'expires': 1167127065
+898 None oneijh_slice897 nodes= [897, 898, 899, 3897, 3898, 3899] persons= [901, 902, 903]
+--- sas= [] oneijh_slice897 crp= 1
+--- 'expires': 1167127066
+899 None oneiji_slice898 nodes= [898, 899, 900, 3898, 3899, 3900] persons= [902, 903, 904]
+--- sas= [] oneiji_slice898 crp= 1
+--- 'expires': 1167127066
+900 None oneijj_slice899 nodes= [899, 900, 901, 3899, 3900, 3901] persons= [903, 904, 905]
+--- sas= [] oneijj_slice899 crp= 1
+--- 'expires': 1167127066
+901 None onejaa_slice900 nodes= [900, 901, 902, 3900, 3901, 3902] persons= [904, 905, 906]
+--- sas= [] onejaa_slice900 crp= 1
+--- 'expires': 1167127067
+902 None onejab_slice901 nodes= [901, 902, 903, 3901, 3902, 3903] persons= [905, 906, 907]
+--- sas= [] onejab_slice901 crp= 1
+--- 'expires': 1167127067
+903 None onejac_slice902 nodes= [902, 903, 904, 3902, 3903, 3904] persons= [906, 907, 908]
+--- sas= [] onejac_slice902 crp= 1
+--- 'expires': 1167127067
+904 None onejad_slice903 nodes= [903, 904, 905, 3903, 3904, 3905] persons= [907, 908, 909]
+--- sas= [] onejad_slice903 crp= 1
+--- 'expires': 1167127068
+905 None onejae_slice904 nodes= [904, 905, 906, 3904, 3905, 3906] persons= [908, 909, 910]
+--- sas= [] onejae_slice904 crp= 1
+--- 'expires': 1167127068
+906 None onejaf_slice905 nodes= [905, 906, 907, 3905, 3906, 3907] persons= [909, 910, 911]
+--- sas= [] onejaf_slice905 crp= 1
+--- 'expires': 1167127068
+907 None onejag_slice906 nodes= [906, 907, 908, 3906, 3907, 3908] persons= [910, 911, 912]
+--- sas= [] onejag_slice906 crp= 1
+--- 'expires': 1167127069
+908 None onejah_slice907 nodes= [907, 908, 909, 3907, 3908, 3909] persons= [911, 912, 913]
+--- sas= [] onejah_slice907 crp= 1
+--- 'expires': 1167127069
+909 None onejai_slice908 nodes= [908, 909, 910, 3908, 3909, 3910] persons= [912, 913, 914]
+--- sas= [] onejai_slice908 crp= 1
+--- 'expires': 1167127069
+910 None onejaj_slice909 nodes= [909, 910, 911, 3909, 3910, 3911] persons= [913, 914, 915]
+--- sas= [] onejaj_slice909 crp= 1
+--- 'expires': 1167127070
+911 None onejba_slice910 nodes= [910, 911, 912, 3910, 3911, 3912] persons= [914, 915, 916]
+--- sas= [] onejba_slice910 crp= 1
+--- 'expires': 1167127070
+912 None onejbb_slice911 nodes= [911, 912, 913, 3911, 3912, 3913] persons= [915, 916, 917]
+--- sas= [] onejbb_slice911 crp= 1
+--- 'expires': 1167127070
+913 None onejbc_slice912 nodes= [912, 913, 914, 3912, 3913, 3914] persons= [916, 917, 918]
+--- sas= [] onejbc_slice912 crp= 1
+--- 'expires': 1167127071
+914 None onejbd_slice913 nodes= [913, 914, 915, 3913, 3914, 3915] persons= [917, 918, 919]
+--- sas= [] onejbd_slice913 crp= 1
+--- 'expires': 1167127071
+915 None onejbe_slice914 nodes= [914, 915, 916, 3914, 3915, 3916] persons= [918, 919, 920]
+--- sas= [] onejbe_slice914 crp= 1
+--- 'expires': 1167127071
+916 None onejbf_slice915 nodes= [915, 916, 917, 3915, 3916, 3917] persons= [919, 920, 921]
+--- sas= [] onejbf_slice915 crp= 1
+--- 'expires': 1167127072
+917 None onejbg_slice916 nodes= [916, 917, 918, 3916, 3917, 3918] persons= [920, 921, 922]
+--- sas= [] onejbg_slice916 crp= 1
+--- 'expires': 1167127072
+918 None onejbh_slice917 nodes= [917, 918, 919, 3917, 3918, 3919] persons= [921, 922, 923]
+--- sas= [] onejbh_slice917 crp= 1
+--- 'expires': 1167127072
+919 None onejbi_slice918 nodes= [918, 919, 920, 3918, 3919, 3920] persons= [922, 923, 924]
+--- sas= [] onejbi_slice918 crp= 1
+--- 'expires': 1167127073
+920 None onejbj_slice919 nodes= [919, 920, 921, 3919, 3920, 3921] persons= [923, 924, 925]
+--- sas= [] onejbj_slice919 crp= 1
+--- 'expires': 1167127073
+921 None onejca_slice920 nodes= [920, 921, 922, 3920, 3921, 3922] persons= [924, 925, 926]
+--- sas= [] onejca_slice920 crp= 1
+--- 'expires': 1167127073
+922 None onejcb_slice921 nodes= [921, 922, 923, 3921, 3922, 3923] persons= [925, 926, 927]
+--- sas= [] onejcb_slice921 crp= 1
+--- 'expires': 1167127074
+923 None onejcc_slice922 nodes= [922, 923, 924, 3922, 3923, 3924] persons= [926, 927, 928]
+--- sas= [] onejcc_slice922 crp= 1
+--- 'expires': 1167127074
+924 None onejcd_slice923 nodes= [923, 924, 925, 3923, 3924, 3925] persons= [927, 928, 929]
+--- sas= [] onejcd_slice923 crp= 1
+--- 'expires': 1167127074
+925 None onejce_slice924 nodes= [924, 925, 926, 3924, 3925, 3926] persons= [928, 929, 930]
+--- sas= [] onejce_slice924 crp= 1
+--- 'expires': 1167127075
+926 None onejcf_slice925 nodes= [925, 926, 927, 3925, 3926, 3927] persons= [929, 930, 931]
+--- sas= [] onejcf_slice925 crp= 1
+--- 'expires': 1167127075
+927 None onejcg_slice926 nodes= [926, 927, 928, 3926, 3927, 3928] persons= [930, 931, 932]
+--- sas= [] onejcg_slice926 crp= 1
+--- 'expires': 1167127075
+928 None onejch_slice927 nodes= [927, 928, 929, 3927, 3928, 3929] persons= [931, 932, 933]
+--- sas= [] onejch_slice927 crp= 1
+--- 'expires': 1167127076
+929 None onejci_slice928 nodes= [928, 929, 930, 3928, 3929, 3930] persons= [932, 933, 934]
+--- sas= [] onejci_slice928 crp= 1
+--- 'expires': 1167127076
+930 None onejcj_slice929 nodes= [929, 930, 931, 3929, 3930, 3931] persons= [933, 934, 935]
+--- sas= [] onejcj_slice929 crp= 1
+--- 'expires': 1167127076
+931 None onejda_slice930 nodes= [930, 931, 932, 3930, 3931, 3932] persons= [934, 935, 936]
+--- sas= [] onejda_slice930 crp= 1
+--- 'expires': 1167127077
+932 None onejdb_slice931 nodes= [931, 932, 933, 3931, 3932, 3933] persons= [935, 936, 937]
+--- sas= [] onejdb_slice931 crp= 1
+--- 'expires': 1167127077
+933 None onejdc_slice932 nodes= [932, 933, 934, 3932, 3933, 3934] persons= [936, 937, 938]
+--- sas= [] onejdc_slice932 crp= 1
+--- 'expires': 1167127077
+934 None onejdd_slice933 nodes= [933, 934, 935, 3933, 3934, 3935] persons= [937, 938, 939]
+--- sas= [] onejdd_slice933 crp= 1
+--- 'expires': 1167127078
+935 None onejde_slice934 nodes= [934, 935, 936, 3934, 3935, 3936] persons= [938, 939, 940]
+--- sas= [] onejde_slice934 crp= 1
+--- 'expires': 1167127078
+936 None onejdf_slice935 nodes= [935, 936, 937, 3935, 3936, 3937] persons= [939, 940, 941]
+--- sas= [] onejdf_slice935 crp= 1
+--- 'expires': 1167127078
+937 None onejdg_slice936 nodes= [936, 937, 938, 3936, 3937, 3938] persons= [940, 941, 942]
+--- sas= [] onejdg_slice936 crp= 1
+--- 'expires': 1167127079
+938 None onejdh_slice937 nodes= [937, 938, 939, 3937, 3938, 3939] persons= [941, 942, 943]
+--- sas= [] onejdh_slice937 crp= 1
+--- 'expires': 1167127079
+939 None onejdi_slice938 nodes= [938, 939, 940, 3938, 3939, 3940] persons= [942, 943, 944]
+--- sas= [] onejdi_slice938 crp= 1
+--- 'expires': 1167127079
+940 None onejdj_slice939 nodes= [939, 940, 941, 3939, 3940, 3941] persons= [943, 944, 945]
+--- sas= [] onejdj_slice939 crp= 1
+--- 'expires': 1167127080
+941 None onejea_slice940 nodes= [940, 941, 942, 3940, 3941, 3942] persons= [944, 945, 946]
+--- sas= [] onejea_slice940 crp= 1
+--- 'expires': 1167127080
+942 None onejeb_slice941 nodes= [941, 942, 943, 3941, 3942, 3943] persons= [945, 946, 947]
+--- sas= [] onejeb_slice941 crp= 1
+--- 'expires': 1167127080
+943 None onejec_slice942 nodes= [942, 943, 944, 3942, 3943, 3944] persons= [946, 947, 948]
+--- sas= [] onejec_slice942 crp= 1
+--- 'expires': 1167127081
+944 None onejed_slice943 nodes= [943, 944, 945, 3943, 3944, 3945] persons= [947, 948, 949]
+--- sas= [] onejed_slice943 crp= 1
+--- 'expires': 1167127081
+945 None onejee_slice944 nodes= [944, 945, 946, 3944, 3945, 3946] persons= [948, 949, 950]
+--- sas= [] onejee_slice944 crp= 1
+--- 'expires': 1167127081
+946 None onejef_slice945 nodes= [945, 946, 947, 3945, 3946, 3947] persons= [949, 950, 951]
+--- sas= [] onejef_slice945 crp= 1
+--- 'expires': 1167127082
+947 None onejeg_slice946 nodes= [946, 947, 948, 3946, 3947, 3948] persons= [950, 951, 952]
+--- sas= [] onejeg_slice946 crp= 1
+--- 'expires': 1167127082
+948 None onejeh_slice947 nodes= [947, 948, 949, 3947, 3948, 3949] persons= [951, 952, 953]
+--- sas= [] onejeh_slice947 crp= 1
+--- 'expires': 1167127082
+949 None onejei_slice948 nodes= [948, 949, 950, 3948, 3949, 3950] persons= [952, 953, 954]
+--- sas= [] onejei_slice948 crp= 1
+--- 'expires': 1167127083
+950 None onejej_slice949 nodes= [949, 950, 951, 3949, 3950, 3951] persons= [953, 954, 955]
+--- sas= [] onejej_slice949 crp= 1
+--- 'expires': 1167127083
+951 None onejfa_slice950 nodes= [950, 951, 952, 3950, 3951, 3952] persons= [954, 955, 956]
+--- sas= [] onejfa_slice950 crp= 1
+--- 'expires': 1167127083
+952 None onejfb_slice951 nodes= [951, 952, 953, 3951, 3952, 3953] persons= [955, 956, 957]
+--- sas= [] onejfb_slice951 crp= 1
+--- 'expires': 1167127084
+953 None onejfc_slice952 nodes= [952, 953, 954, 3952, 3953, 3954] persons= [956, 957, 958]
+--- sas= [] onejfc_slice952 crp= 1
+--- 'expires': 1167127084
+954 None onejfd_slice953 nodes= [953, 954, 955, 3953, 3954, 3955] persons= [957, 958, 959]
+--- sas= [] onejfd_slice953 crp= 1
+--- 'expires': 1167127084
+955 None onejfe_slice954 nodes= [954, 955, 956, 3954, 3955, 3956] persons= [958, 959, 960]
+--- sas= [] onejfe_slice954 crp= 1
+--- 'expires': 1167127085
+956 None onejff_slice955 nodes= [955, 956, 957, 3955, 3956, 3957] persons= [959, 960, 961]
+--- sas= [] onejff_slice955 crp= 1
+--- 'expires': 1167127085
+957 None onejfg_slice956 nodes= [956, 957, 958, 3956, 3957, 3958] persons= [960, 961, 962]
+--- sas= [] onejfg_slice956 crp= 1
+--- 'expires': 1167127085
+958 None onejfh_slice957 nodes= [957, 958, 959, 3957, 3958, 3959] persons= [961, 962, 963]
+--- sas= [] onejfh_slice957 crp= 1
+--- 'expires': 1167127086
+959 None onejfi_slice958 nodes= [958, 959, 960, 3958, 3959, 3960] persons= [962, 963, 964]
+--- sas= [] onejfi_slice958 crp= 1
+--- 'expires': 1167127086
+960 None onejfj_slice959 nodes= [959, 960, 961, 3959, 3960, 3961] persons= [963, 964, 965]
+--- sas= [] onejfj_slice959 crp= 1
+--- 'expires': 1167127086
+961 None onejga_slice960 nodes= [960, 961, 962, 3960, 3961, 3962] persons= [964, 965, 966]
+--- sas= [] onejga_slice960 crp= 1
+--- 'expires': 1167127087
+962 None onejgb_slice961 nodes= [961, 962, 963, 3961, 3962, 3963] persons= [965, 966, 967]
+--- sas= [] onejgb_slice961 crp= 1
+--- 'expires': 1167127087
+963 None onejgc_slice962 nodes= [962, 963, 964, 3962, 3963, 3964] persons= [966, 967, 968]
+--- sas= [] onejgc_slice962 crp= 1
+--- 'expires': 1167127087
+964 None onejgd_slice963 nodes= [963, 964, 965, 3963, 3964, 3965] persons= [967, 968, 969]
+--- sas= [] onejgd_slice963 crp= 1
+--- 'expires': 1167127088
+965 None onejge_slice964 nodes= [964, 965, 966, 3964, 3965, 3966] persons= [968, 969, 970]
+--- sas= [] onejge_slice964 crp= 1
+--- 'expires': 1167127088
+966 None onejgf_slice965 nodes= [965, 966, 967, 3965, 3966, 3967] persons= [969, 970, 971]
+--- sas= [] onejgf_slice965 crp= 1
+--- 'expires': 1167127088
+967 None onejgg_slice966 nodes= [966, 967, 968, 3966, 3967, 3968] persons= [970, 971, 972]
+--- sas= [] onejgg_slice966 crp= 1
+--- 'expires': 1167127089
+968 None onejgh_slice967 nodes= [967, 968, 969, 3967, 3968, 3969] persons= [971, 972, 973]
+--- sas= [] onejgh_slice967 crp= 1
+--- 'expires': 1167127089
+969 None onejgi_slice968 nodes= [968, 969, 970, 3968, 3969, 3970] persons= [972, 973, 974]
+--- sas= [] onejgi_slice968 crp= 1
+--- 'expires': 1167127089
+970 None onejgj_slice969 nodes= [969, 970, 971, 3969, 3970, 3971] persons= [973, 974, 975]
+--- sas= [] onejgj_slice969 crp= 1
+--- 'expires': 1167127090
+971 None onejha_slice970 nodes= [970, 971, 972, 3970, 3971, 3972] persons= [974, 975, 976]
+--- sas= [] onejha_slice970 crp= 1
+--- 'expires': 1167127090
+972 None onejhb_slice971 nodes= [971, 972, 973, 3971, 3972, 3973] persons= [975, 976, 977]
+--- sas= [] onejhb_slice971 crp= 1
+--- 'expires': 1167127090
+973 None onejhc_slice972 nodes= [972, 973, 974, 3972, 3973, 3974] persons= [976, 977, 978]
+--- sas= [] onejhc_slice972 crp= 1
+--- 'expires': 1167127091
+974 None onejhd_slice973 nodes= [973, 974, 975, 3973, 3974, 3975] persons= [977, 978, 979]
+--- sas= [] onejhd_slice973 crp= 1
+--- 'expires': 1167127091
+975 None onejhe_slice974 nodes= [974, 975, 976, 3974, 3975, 3976] persons= [978, 979, 980]
+--- sas= [] onejhe_slice974 crp= 1
+--- 'expires': 1167127091
+976 None onejhf_slice975 nodes= [975, 976, 977, 3975, 3976, 3977] persons= [979, 980, 981]
+--- sas= [] onejhf_slice975 crp= 1
+--- 'expires': 1167127092
+977 None onejhg_slice976 nodes= [976, 977, 978, 3976, 3977, 3978] persons= [980, 981, 982]
+--- sas= [] onejhg_slice976 crp= 1
+--- 'expires': 1167127092
+978 None onejhh_slice977 nodes= [977, 978, 979, 3977, 3978, 3979] persons= [981, 982, 983]
+--- sas= [] onejhh_slice977 crp= 1
+--- 'expires': 1167127092
+979 None onejhi_slice978 nodes= [978, 979, 980, 3978, 3979, 3980] persons= [982, 983, 984]
+--- sas= [] onejhi_slice978 crp= 1
+--- 'expires': 1167127093
+980 None onejhj_slice979 nodes= [979, 980, 981, 3979, 3980, 3981] persons= [983, 984, 985]
+--- sas= [] onejhj_slice979 crp= 1
+--- 'expires': 1167127093
+981 None onejia_slice980 nodes= [980, 981, 982, 3980, 3981, 3982] persons= [984, 985, 986]
+--- sas= [] onejia_slice980 crp= 1
+--- 'expires': 1167127093
+982 None onejib_slice981 nodes= [981, 982, 983, 3981, 3982, 3983] persons= [985, 986, 987]
+--- sas= [] onejib_slice981 crp= 1
+--- 'expires': 1167127094
+983 None onejic_slice982 nodes= [982, 983, 984, 3982, 3983, 3984] persons= [986, 987, 988]
+--- sas= [] onejic_slice982 crp= 1
+--- 'expires': 1167127094
+984 None onejid_slice983 nodes= [983, 984, 985, 3983, 3984, 3985] persons= [987, 988, 989]
+--- sas= [] onejid_slice983 crp= 1
+--- 'expires': 1167127094
+985 None onejie_slice984 nodes= [984, 985, 986, 3984, 3985, 3986] persons= [988, 989, 990]
+--- sas= [] onejie_slice984 crp= 1
+--- 'expires': 1167127095
+986 None onejif_slice985 nodes= [985, 986, 987, 3985, 3986, 3987] persons= [989, 990, 991]
+--- sas= [] onejif_slice985 crp= 1
+--- 'expires': 1167127095
+987 None onejig_slice986 nodes= [986, 987, 988, 3986, 3987, 3988] persons= [990, 991, 992]
+--- sas= [] onejig_slice986 crp= 1
+--- 'expires': 1167127095
+988 None onejih_slice987 nodes= [987, 988, 989, 3987, 3988, 3989] persons= [991, 992, 993]
+--- sas= [] onejih_slice987 crp= 1
+--- 'expires': 1167127096
+989 None onejii_slice988 nodes= [988, 989, 990, 3988, 3989, 3990] persons= [992, 993, 994]
+--- sas= [] onejii_slice988 crp= 1
+--- 'expires': 1167127096
+990 None onejij_slice989 nodes= [989, 990, 991, 3989, 3990, 3991] persons= [993, 994, 995]
+--- sas= [] onejij_slice989 crp= 1
+--- 'expires': 1167127096
+991 None onejja_slice990 nodes= [990, 991, 992, 3990, 3991, 3992] persons= [994, 995, 996]
+--- sas= [] onejja_slice990 crp= 1
+--- 'expires': 1167127097
+992 None onejjb_slice991 nodes= [991, 992, 993, 3991, 3992, 3993] persons= [995, 996, 997]
+--- sas= [] onejjb_slice991 crp= 1
+--- 'expires': 1167127097
+993 None onejjc_slice992 nodes= [992, 993, 994, 3992, 3993, 3994] persons= [996, 997, 998]
+--- sas= [] onejjc_slice992 crp= 1
+--- 'expires': 1167127097
+994 None onejjd_slice993 nodes= [993, 994, 995, 3993, 3994, 3995] persons= [997, 998, 999]
+--- sas= [] onejjd_slice993 crp= 1
+--- 'expires': 1167127098
+995 None onejje_slice994 nodes= [994, 995, 996, 3994, 3995, 3996] persons= [998, 999, 1000]
+--- sas= [] onejje_slice994 crp= 1
+--- 'expires': 1167127098
+996 None onejjf_slice995 nodes= [995, 996, 997, 3995, 3996, 3997] persons= [999, 1000, 1001]
+--- sas= [] onejjf_slice995 crp= 1
+--- 'expires': 1167127098
+997 None onejjg_slice996 nodes= [996, 997, 998, 3996, 3997, 3998] persons= [1000, 1001, 1002]
+--- sas= [] onejjg_slice996 crp= 1
+--- 'expires': 1167127099
+998 None onejjh_slice997 nodes= [997, 998, 999, 3997, 3998, 3999] persons= [1001, 1002, 1003]
+--- sas= [] onejjh_slice997 crp= 1
+--- 'expires': 1167127099
+999 None onejji_slice998 nodes= [998, 999, 1000, 3998, 3999, 4000] persons= [1002, 1003, 1004]
+--- sas= [] onejji_slice998 crp= 1
+--- 'expires': 1167127100
+1000 None onejjj_slice999 nodes= [999, 1000, 1001, 3999, 4000, 4001] persons= [1003, 1004, 1005]
+--- sas= [] onejjj_slice999 crp= 1
+--- 'expires': 1167127100
+1001 None onebaaa_slice1000 nodes= [1000, 1001, 1002, 4000, 4001, 4002] persons= [1004, 1005, 1006]
+--- sas= [] onebaaa_slice1000 crp= 1
+--- 'expires': 1167127100
+1002 None oneb_slice1001 nodes= [1001, 1002, 1003, 4001, 4002, 4003] persons= [1005, 1006, 1007]
+--- sas= [] oneb_slice1001 crp= 1
+--- 'expires': 1167127101
+1003 None onec_slice1002 nodes= [1002, 1003, 1004, 4002, 4003, 4004] persons= [1006, 1007, 1008]
+--- sas= [] onec_slice1002 crp= 1
+--- 'expires': 1167127101
+1004 None oned_slice1003 nodes= [1003, 1004, 1005, 4003, 4004, 4005] persons= [1007, 1008, 1009]
+--- sas= [] oned_slice1003 crp= 1
+--- 'expires': 1167127101
+1005 None onee_slice1004 nodes= [1004, 1005, 1006, 4004, 4005, 4006] persons= [1008, 1009, 1010]
+--- sas= [] onee_slice1004 crp= 1
+--- 'expires': 1167127102
+1006 None onef_slice1005 nodes= [1005, 1006, 1007, 4005, 4006, 4007] persons= [1009, 1010, 1011]
+--- sas= [] onef_slice1005 crp= 1
+--- 'expires': 1167127102
+1007 None oneg_slice1006 nodes= [1006, 1007, 1008, 4006, 4007, 4008] persons= [1010, 1011, 1012]
+--- sas= [] oneg_slice1006 crp= 1
+--- 'expires': 1167127102
+1008 None oneh_slice1007 nodes= [1007, 1008, 1009, 4007, 4008, 4009] persons= [1011, 1012, 1013]
+--- sas= [] oneh_slice1007 crp= 1
+--- 'expires': 1167127103
+1009 None onei_slice1008 nodes= [1008, 1009, 1010, 4008, 4009, 4010] persons= [1012, 1013, 1014]
+--- sas= [] onei_slice1008 crp= 1
+--- 'expires': 1167127103
+1010 None onej_slice1009 nodes= [1009, 1010, 1011, 4009, 4010, 4011] persons= [1013, 1014, 1015]
+--- sas= [] onej_slice1009 crp= 1
+--- 'expires': 1167127103
+1011 None oneba_slice1010 nodes= [1010, 1011, 1012, 4010, 4011, 4012] persons= [1014, 1015, 1016]
+--- sas= [] oneba_slice1010 crp= 1
+--- 'expires': 1167127104
+1012 None onebb_slice1011 nodes= [1011, 1012, 1013, 4011, 4012, 4013] persons= [1015, 1016, 1017]
+--- sas= [] onebb_slice1011 crp= 1
+--- 'expires': 1167127104
+1013 None onebc_slice1012 nodes= [1012, 1013, 1014, 4012, 4013, 4014] persons= [1016, 1017, 1018]
+--- sas= [] onebc_slice1012 crp= 1
+--- 'expires': 1167127104
+1014 None onebd_slice1013 nodes= [1013, 1014, 1015, 4013, 4014, 4015] persons= [1017, 1018, 1019]
+--- sas= [] onebd_slice1013 crp= 1
+--- 'expires': 1167127105
+1015 None onebe_slice1014 nodes= [1014, 1015, 1016, 4014, 4015, 4016] persons= [1018, 1019, 1020]
+--- sas= [] onebe_slice1014 crp= 1
+--- 'expires': 1167127105
+1016 None onebf_slice1015 nodes= [1015, 1016, 1017, 4015, 4016, 4017] persons= [1019, 1020, 1021]
+--- sas= [] onebf_slice1015 crp= 1
+--- 'expires': 1167127105
+1017 None onebg_slice1016 nodes= [1016, 1017, 1018, 4016, 4017, 4018] persons= [1020, 1021, 1022]
+--- sas= [] onebg_slice1016 crp= 1
+--- 'expires': 1167127106
+1018 None onebh_slice1017 nodes= [1017, 1018, 1019, 4017, 4018, 4019] persons= [1021, 1022, 1023]
+--- sas= [] onebh_slice1017 crp= 1
+--- 'expires': 1167127106
+1019 None onebi_slice1018 nodes= [1018, 1019, 1020, 4018, 4019, 4020] persons= [1022, 1023, 1024]
+--- sas= [] onebi_slice1018 crp= 1
+--- 'expires': 1167127106
+1020 None onebj_slice1019 nodes= [1019, 1020, 1021, 4019, 4020, 4021] persons= [1023, 1024, 1025]
+--- sas= [] onebj_slice1019 crp= 1
+--- 'expires': 1167127107
+1021 None oneca_slice1020 nodes= [1020, 1021, 1022, 4020, 4021, 4022] persons= [1024, 1025, 1026]
+--- sas= [] oneca_slice1020 crp= 1
+--- 'expires': 1167127107
+1022 None onecb_slice1021 nodes= [1021, 1022, 1023, 4021, 4022, 4023] persons= [1025, 1026, 1027]
+--- sas= [] onecb_slice1021 crp= 1
+--- 'expires': 1167127107
+1023 None onecc_slice1022 nodes= [1022, 1023, 1024, 4022, 4023, 4024] persons= [1026, 1027, 1028]
+--- sas= [] onecc_slice1022 crp= 1
+--- 'expires': 1167127108
+1024 None onecd_slice1023 nodes= [1023, 1024, 1025, 4023, 4024, 4025] persons= [1027, 1028, 1029]
+--- sas= [] onecd_slice1023 crp= 1
+--- 'expires': 1167127108
+1025 None onece_slice1024 nodes= [1024, 1025, 1026, 4024, 4025, 4026] persons= [1028, 1029, 1030]
+--- sas= [] onece_slice1024 crp= 1
+--- 'expires': 1167127108
+1026 None onecf_slice1025 nodes= [1025, 1026, 1027, 4025, 4026, 4027] persons= [1029, 1030, 1031]
+--- sas= [] onecf_slice1025 crp= 1
+--- 'expires': 1167127109
+1027 None onecg_slice1026 nodes= [1026, 1027, 1028, 4026, 4027, 4028] persons= [1030, 1031, 1032]
+--- sas= [] onecg_slice1026 crp= 1
+--- 'expires': 1167127109
+1028 None onech_slice1027 nodes= [1027, 1028, 1029, 4027, 4028, 4029] persons= [1031, 1032, 1033]
+--- sas= [] onech_slice1027 crp= 1
+--- 'expires': 1167127110
+1029 None oneci_slice1028 nodes= [1028, 1029, 1030, 4028, 4029, 4030] persons= [1032, 1033, 1034]
+--- sas= [] oneci_slice1028 crp= 1
+--- 'expires': 1167127110
+1030 None onecj_slice1029 nodes= [1029, 1030, 1031, 4029, 4030, 4031] persons= [1033, 1034, 1035]
+--- sas= [] onecj_slice1029 crp= 1
+--- 'expires': 1167127110
+1031 None oneda_slice1030 nodes= [1030, 1031, 1032, 4030, 4031, 4032] persons= [1034, 1035, 1036]
+--- sas= [] oneda_slice1030 crp= 1
+--- 'expires': 1167127111
+1032 None onedb_slice1031 nodes= [1031, 1032, 1033, 4031, 4032, 4033] persons= [1035, 1036, 1037]
+--- sas= [] onedb_slice1031 crp= 1
+--- 'expires': 1167127111
+1033 None onedc_slice1032 nodes= [1032, 1033, 1034, 4032, 4033, 4034] persons= [1036, 1037, 1038]
+--- sas= [] onedc_slice1032 crp= 1
+--- 'expires': 1167127111
+1034 None onedd_slice1033 nodes= [1033, 1034, 1035, 4033, 4034, 4035] persons= [1037, 1038, 1039]
+--- sas= [] onedd_slice1033 crp= 1
+--- 'expires': 1167127112
+1035 None onede_slice1034 nodes= [1034, 1035, 1036, 4034, 4035, 4036] persons= [1038, 1039, 1040]
+--- sas= [] onede_slice1034 crp= 1
+--- 'expires': 1167127112
+1036 None onedf_slice1035 nodes= [1035, 1036, 1037, 4035, 4036, 4037] persons= [1039, 1040, 1041]
+--- sas= [] onedf_slice1035 crp= 1
+--- 'expires': 1167127112
+1037 None onedg_slice1036 nodes= [1036, 1037, 1038, 4036, 4037, 4038] persons= [1040, 1041, 1042]
+--- sas= [] onedg_slice1036 crp= 1
+--- 'expires': 1167127113
+1038 None onedh_slice1037 nodes= [1037, 1038, 1039, 4037, 4038, 4039] persons= [1041, 1042, 1043]
+--- sas= [] onedh_slice1037 crp= 1
+--- 'expires': 1167127113
+1039 None onedi_slice1038 nodes= [1038, 1039, 1040, 4038, 4039, 4040] persons= [1042, 1043, 1044]
+--- sas= [] onedi_slice1038 crp= 1
+--- 'expires': 1167127113
+1040 None onedj_slice1039 nodes= [1039, 1040, 1041, 4039, 4040, 4041] persons= [1043, 1044, 1045]
+--- sas= [] onedj_slice1039 crp= 1
+--- 'expires': 1167127114
+1041 None oneea_slice1040 nodes= [1040, 1041, 1042, 4040, 4041, 4042] persons= [1044, 1045, 1046]
+--- sas= [] oneea_slice1040 crp= 1
+--- 'expires': 1167127114
+1042 None oneeb_slice1041 nodes= [1041, 1042, 1043, 4041, 4042, 4043] persons= [1045, 1046, 1047]
+--- sas= [] oneeb_slice1041 crp= 1
+--- 'expires': 1167127114
+1043 None oneec_slice1042 nodes= [1042, 1043, 1044, 4042, 4043, 4044] persons= [1046, 1047, 1048]
+--- sas= [] oneec_slice1042 crp= 1
+--- 'expires': 1167127115
+1044 None oneed_slice1043 nodes= [1043, 1044, 1045, 4043, 4044, 4045] persons= [1047, 1048, 1049]
+--- sas= [] oneed_slice1043 crp= 1
+--- 'expires': 1167127115
+1045 None oneee_slice1044 nodes= [1044, 1045, 1046, 4044, 4045, 4046] persons= [1048, 1049, 1050]
+--- sas= [] oneee_slice1044 crp= 1
+--- 'expires': 1167127115
+1046 None oneef_slice1045 nodes= [1045, 1046, 1047, 4045, 4046, 4047] persons= [1049, 1050, 1051]
+--- sas= [] oneef_slice1045 crp= 1
+--- 'expires': 1167127116
+1047 None oneeg_slice1046 nodes= [1046, 1047, 1048, 4046, 4047, 4048] persons= [1050, 1051, 1052]
+--- sas= [] oneeg_slice1046 crp= 1
+--- 'expires': 1167127116
+1048 None oneeh_slice1047 nodes= [1047, 1048, 1049, 4047, 4048, 4049] persons= [1051, 1052, 1053]
+--- sas= [] oneeh_slice1047 crp= 1
+--- 'expires': 1167127117
+1049 None oneei_slice1048 nodes= [1048, 1049, 1050, 4048, 4049, 4050] persons= [1052, 1053, 1054]
+--- sas= [] oneei_slice1048 crp= 1
+--- 'expires': 1167127117
+1050 None oneej_slice1049 nodes= [1049, 1050, 1051, 4049, 4050, 4051] persons= [1053, 1054, 1055]
+--- sas= [] oneej_slice1049 crp= 1
+--- 'expires': 1167127117
+1051 None onefa_slice1050 nodes= [1050, 1051, 1052, 4050, 4051, 4052] persons= [1054, 1055, 1056]
+--- sas= [] onefa_slice1050 crp= 1
+--- 'expires': 1167127118
+1052 None onefb_slice1051 nodes= [1051, 1052, 1053, 4051, 4052, 4053] persons= [1055, 1056, 1057]
+--- sas= [] onefb_slice1051 crp= 1
+--- 'expires': 1167127118
+1053 None onefc_slice1052 nodes= [1052, 1053, 1054, 4052, 4053, 4054] persons= [1056, 1057, 1058]
+--- sas= [] onefc_slice1052 crp= 1
+--- 'expires': 1167127118
+1054 None onefd_slice1053 nodes= [1053, 1054, 1055, 4053, 4054, 4055] persons= [1057, 1058, 1059]
+--- sas= [] onefd_slice1053 crp= 1
+--- 'expires': 1167127119
+1055 None onefe_slice1054 nodes= [1054, 1055, 1056, 4054, 4055, 4056] persons= [1058, 1059, 1060]
+--- sas= [] onefe_slice1054 crp= 1
+--- 'expires': 1167127119
+1056 None oneff_slice1055 nodes= [1055, 1056, 1057, 4055, 4056, 4057] persons= [1059, 1060, 1061]
+--- sas= [] oneff_slice1055 crp= 1
+--- 'expires': 1167127119
+1057 None onefg_slice1056 nodes= [1056, 1057, 1058, 4056, 4057, 4058] persons= [1060, 1061, 1062]
+--- sas= [] onefg_slice1056 crp= 1
+--- 'expires': 1167127120
+1058 None onefh_slice1057 nodes= [1057, 1058, 1059, 4057, 4058, 4059] persons= [1061, 1062, 1063]
+--- sas= [] onefh_slice1057 crp= 1
+--- 'expires': 1167127120
+1059 None onefi_slice1058 nodes= [1058, 1059, 1060, 4058, 4059, 4060] persons= [1062, 1063, 1064]
+--- sas= [] onefi_slice1058 crp= 1
+--- 'expires': 1167127120
+1060 None onefj_slice1059 nodes= [1059, 1060, 1061, 4059, 4060, 4061] persons= [1063, 1064, 1065]
+--- sas= [] onefj_slice1059 crp= 1
+--- 'expires': 1167127121
+1061 None onega_slice1060 nodes= [1060, 1061, 1062, 4060, 4061, 4062] persons= [1064, 1065, 1066]
+--- sas= [] onega_slice1060 crp= 1
+--- 'expires': 1167127121
+1062 None onegb_slice1061 nodes= [1061, 1062, 1063, 4061, 4062, 4063] persons= [1065, 1066, 1067]
+--- sas= [] onegb_slice1061 crp= 1
+--- 'expires': 1167127121
+1063 None onegc_slice1062 nodes= [1062, 1063, 1064, 4062, 4063, 4064] persons= [1066, 1067, 1068]
+--- sas= [] onegc_slice1062 crp= 1
+--- 'expires': 1167127122
+1064 None onegd_slice1063 nodes= [1063, 1064, 1065, 4063, 4064, 4065] persons= [1067, 1068, 1069]
+--- sas= [] onegd_slice1063 crp= 1
+--- 'expires': 1167127122
+1065 None onege_slice1064 nodes= [1064, 1065, 1066, 4064, 4065, 4066] persons= [1068, 1069, 1070]
+--- sas= [] onege_slice1064 crp= 1
+--- 'expires': 1167127123
+1066 None onegf_slice1065 nodes= [1065, 1066, 1067, 4065, 4066, 4067] persons= [1069, 1070, 1071]
+--- sas= [] onegf_slice1065 crp= 1
+--- 'expires': 1167127123
+1067 None onegg_slice1066 nodes= [1066, 1067, 1068, 4066, 4067, 4068] persons= [1070, 1071, 1072]
+--- sas= [] onegg_slice1066 crp= 1
+--- 'expires': 1167127123
+1068 None onegh_slice1067 nodes= [1067, 1068, 1069, 4067, 4068, 4069] persons= [1071, 1072, 1073]
+--- sas= [] onegh_slice1067 crp= 1
+--- 'expires': 1167127124
+1069 None onegi_slice1068 nodes= [1068, 1069, 1070, 4068, 4069, 4070] persons= [1072, 1073, 1074]
+--- sas= [] onegi_slice1068 crp= 1
+--- 'expires': 1167127124
+1070 None onegj_slice1069 nodes= [1069, 1070, 1071, 4069, 4070, 4071] persons= [1073, 1074, 1075]
+--- sas= [] onegj_slice1069 crp= 1
+--- 'expires': 1167127124
+1071 None oneha_slice1070 nodes= [1070, 1071, 1072, 4070, 4071, 4072] persons= [1074, 1075, 1076]
+--- sas= [] oneha_slice1070 crp= 1
+--- 'expires': 1167127125
+1072 None onehb_slice1071 nodes= [1071, 1072, 1073, 4071, 4072, 4073] persons= [1075, 1076, 1077]
+--- sas= [] onehb_slice1071 crp= 1
+--- 'expires': 1167127125
+1073 None onehc_slice1072 nodes= [1072, 1073, 1074, 4072, 4073, 4074] persons= [1076, 1077, 1078]
+--- sas= [] onehc_slice1072 crp= 1
+--- 'expires': 1167127125
+1074 None onehd_slice1073 nodes= [1073, 1074, 1075, 4073, 4074, 4075] persons= [1077, 1078, 1079]
+--- sas= [] onehd_slice1073 crp= 1
+--- 'expires': 1167127126
+1075 None onehe_slice1074 nodes= [1074, 1075, 1076, 4074, 4075, 4076] persons= [1078, 1079, 1080]
+--- sas= [] onehe_slice1074 crp= 1
+--- 'expires': 1167127126
+1076 None onehf_slice1075 nodes= [1075, 1076, 1077, 4075, 4076, 4077] persons= [1079, 1080, 1081]
+--- sas= [] onehf_slice1075 crp= 1
+--- 'expires': 1167127126
+1077 None onehg_slice1076 nodes= [1076, 1077, 1078, 4076, 4077, 4078] persons= [1080, 1081, 1082]
+--- sas= [] onehg_slice1076 crp= 1
+--- 'expires': 1167127127
+1078 None onehh_slice1077 nodes= [1077, 1078, 1079, 4077, 4078, 4079] persons= [1081, 1082, 1083]
+--- sas= [] onehh_slice1077 crp= 1
+--- 'expires': 1167127127
+1079 None onehi_slice1078 nodes= [1078, 1079, 1080, 4078, 4079, 4080] persons= [1082, 1083, 1084]
+--- sas= [] onehi_slice1078 crp= 1
+--- 'expires': 1167127127
+1080 None onehj_slice1079 nodes= [1079, 1080, 1081, 4079, 4080, 4081] persons= [1083, 1084, 1085]
+--- sas= [] onehj_slice1079 crp= 1
+--- 'expires': 1167127128
+1081 None oneia_slice1080 nodes= [1080, 1081, 1082, 4080, 4081, 4082] persons= [1084, 1085, 1086]
+--- sas= [] oneia_slice1080 crp= 1
+--- 'expires': 1167127128
+1082 None oneib_slice1081 nodes= [1081, 1082, 1083, 4081, 4082, 4083] persons= [1085, 1086, 1087]
+--- sas= [] oneib_slice1081 crp= 1
+--- 'expires': 1167127129
+1083 None oneic_slice1082 nodes= [1082, 1083, 1084, 4082, 4083, 4084] persons= [1086, 1087, 1088]
+--- sas= [] oneic_slice1082 crp= 1
+--- 'expires': 1167127129
+1084 None oneid_slice1083 nodes= [1083, 1084, 1085, 4083, 4084, 4085] persons= [1087, 1088, 1089]
+--- sas= [] oneid_slice1083 crp= 1
+--- 'expires': 1167127129
+1085 None oneie_slice1084 nodes= [1084, 1085, 1086, 4084, 4085, 4086] persons= [1088, 1089, 1090]
+--- sas= [] oneie_slice1084 crp= 1
+--- 'expires': 1167127130
+1086 None oneif_slice1085 nodes= [1085, 1086, 1087, 4085, 4086, 4087] persons= [1089, 1090, 1091]
+--- sas= [] oneif_slice1085 crp= 1
+--- 'expires': 1167127130
+1087 None oneig_slice1086 nodes= [1086, 1087, 1088, 4086, 4087, 4088] persons= [1090, 1091, 1092]
+--- sas= [] oneig_slice1086 crp= 1
+--- 'expires': 1167127130
+1088 None oneih_slice1087 nodes= [1087, 1088, 1089, 4087, 4088, 4089] persons= [1091, 1092, 1093]
+--- sas= [] oneih_slice1087 crp= 1
+--- 'expires': 1167127131
+1089 None oneii_slice1088 nodes= [1088, 1089, 1090, 4088, 4089, 4090] persons= [1092, 1093, 1094]
+--- sas= [] oneii_slice1088 crp= 1
+--- 'expires': 1167127131
+1090 None oneij_slice1089 nodes= [1089, 1090, 1091, 4089, 4090, 4091] persons= [1093, 1094, 1095]
+--- sas= [] oneij_slice1089 crp= 1
+--- 'expires': 1167127131
+1091 None oneja_slice1090 nodes= [1090, 1091, 1092, 4090, 4091, 4092] persons= [1094, 1095, 1096]
+--- sas= [] oneja_slice1090 crp= 1
+--- 'expires': 1167127132
+1092 None onejb_slice1091 nodes= [1091, 1092, 1093, 4091, 4092, 4093] persons= [1095, 1096, 1097]
+--- sas= [] onejb_slice1091 crp= 1
+--- 'expires': 1167127132
+1093 None onejc_slice1092 nodes= [1092, 1093, 1094, 4092, 4093, 4094] persons= [1096, 1097, 1098]
+--- sas= [] onejc_slice1092 crp= 1
+--- 'expires': 1167127132
+1094 None onejd_slice1093 nodes= [1093, 1094, 1095, 4093, 4094, 4095] persons= [1097, 1098, 1099]
+--- sas= [] onejd_slice1093 crp= 1
+--- 'expires': 1167127133
+1095 None oneje_slice1094 nodes= [1094, 1095, 1096, 4094, 4095, 4096] persons= [1098, 1099, 1100]
+--- sas= [] oneje_slice1094 crp= 1
+--- 'expires': 1167127133
+1096 None onejf_slice1095 nodes= [1095, 1096, 1097, 4095, 4096, 4097] persons= [1099, 1100, 1101]
+--- sas= [] onejf_slice1095 crp= 1
+--- 'expires': 1167127134
+1097 None onejg_slice1096 nodes= [1096, 1097, 1098, 4096, 4097, 4098] persons= [1100, 1101, 1102]
+--- sas= [] onejg_slice1096 crp= 1
+--- 'expires': 1167127134
+1098 None onejh_slice1097 nodes= [1097, 1098, 1099, 4097, 4098, 4099] persons= [1101, 1102, 1103]
+--- sas= [] onejh_slice1097 crp= 1
+--- 'expires': 1167127134
+1099 None oneji_slice1098 nodes= [1098, 1099, 1100, 4098, 4099, 4100] persons= [1102, 1103, 1104]
+--- sas= [] oneji_slice1098 crp= 1
+--- 'expires': 1167127135
+1100 None onejj_slice1099 nodes= [1099, 1100, 1101, 4099, 4100, 4101] persons= [1103, 1104, 1105]
+--- sas= [] onejj_slice1099 crp= 1
+--- 'expires': 1167127135
+1101 None onebaa_slice1100 nodes= [1100, 1101, 1102, 4100, 4101, 4102] persons= [1104, 1105, 1106]
+--- sas= [] onebaa_slice1100 crp= 1
+--- 'expires': 1167127135
+1102 None onebab_slice1101 nodes= [1101, 1102, 1103, 4101, 4102, 4103] persons= [1105, 1106, 1107]
+--- sas= [] onebab_slice1101 crp= 1
+--- 'expires': 1167127136
+1103 None onebac_slice1102 nodes= [1102, 1103, 1104, 4102, 4103, 4104] persons= [1106, 1107, 1108]
+--- sas= [] onebac_slice1102 crp= 1
+--- 'expires': 1167127136
+1104 None onebad_slice1103 nodes= [1103, 1104, 1105, 4103, 4104, 4105] persons= [1107, 1108, 1109]
+--- sas= [] onebad_slice1103 crp= 1
+--- 'expires': 1167127136
+1105 None onebae_slice1104 nodes= [1104, 1105, 1106, 4104, 4105, 4106] persons= [1108, 1109, 1110]
+--- sas= [] onebae_slice1104 crp= 1
+--- 'expires': 1167127137
+1106 None onebaf_slice1105 nodes= [1105, 1106, 1107, 4105, 4106, 4107] persons= [1109, 1110, 1111]
+--- sas= [] onebaf_slice1105 crp= 1
+--- 'expires': 1167127137
+1107 None onebag_slice1106 nodes= [1106, 1107, 1108, 4106, 4107, 4108] persons= [1110, 1111, 1112]
+--- sas= [] onebag_slice1106 crp= 1
+--- 'expires': 1167127137
+1108 None onebah_slice1107 nodes= [1107, 1108, 1109, 4107, 4108, 4109] persons= [1111, 1112, 1113]
+--- sas= [] onebah_slice1107 crp= 1
+--- 'expires': 1167127138
+1109 None onebai_slice1108 nodes= [1108, 1109, 1110, 4108, 4109, 4110] persons= [1112, 1113, 1114]
+--- sas= [] onebai_slice1108 crp= 1
+--- 'expires': 1167127138
+1110 None onebaj_slice1109 nodes= [1109, 1110, 1111, 4109, 4110, 4111] persons= [1113, 1114, 1115]
+--- sas= [] onebaj_slice1109 crp= 1
+--- 'expires': 1167127139
+1111 None onebba_slice1110 nodes= [1110, 1111, 1112, 4110, 4111, 4112] persons= [1114, 1115, 1116]
+--- sas= [] onebba_slice1110 crp= 1
+--- 'expires': 1167127139
+1112 None onebbb_slice1111 nodes= [1111, 1112, 1113, 4111, 4112, 4113] persons= [1115, 1116, 1117]
+--- sas= [] onebbb_slice1111 crp= 1
+--- 'expires': 1167127139
+1113 None onebbc_slice1112 nodes= [1112, 1113, 1114, 4112, 4113, 4114] persons= [1116, 1117, 1118]
+--- sas= [] onebbc_slice1112 crp= 1
+--- 'expires': 1167127140
+1114 None onebbd_slice1113 nodes= [1113, 1114, 1115, 4113, 4114, 4115] persons= [1117, 1118, 1119]
+--- sas= [] onebbd_slice1113 crp= 1
+--- 'expires': 1167127140
+1115 None onebbe_slice1114 nodes= [1114, 1115, 1116, 4114, 4115, 4116] persons= [1118, 1119, 1120]
+--- sas= [] onebbe_slice1114 crp= 1
+--- 'expires': 1167127140
+1116 None onebbf_slice1115 nodes= [1115, 1116, 1117, 4115, 4116, 4117] persons= [1119, 1120, 1121]
+--- sas= [] onebbf_slice1115 crp= 1
+--- 'expires': 1167127141
+1117 None onebbg_slice1116 nodes= [1116, 1117, 1118, 4116, 4117, 4118] persons= [1120, 1121, 1122]
+--- sas= [] onebbg_slice1116 crp= 1
+--- 'expires': 1167127141
+1118 None onebbh_slice1117 nodes= [1117, 1118, 1119, 4117, 4118, 4119] persons= [1121, 1122, 1123]
+--- sas= [] onebbh_slice1117 crp= 1
+--- 'expires': 1167127141
+1119 None onebbi_slice1118 nodes= [1118, 1119, 1120, 4118, 4119, 4120] persons= [1122, 1123, 1124]
+--- sas= [] onebbi_slice1118 crp= 1
+--- 'expires': 1167127142
+1120 None onebbj_slice1119 nodes= [1119, 1120, 1121, 4119, 4120, 4121] persons= [1123, 1124, 1125]
+--- sas= [] onebbj_slice1119 crp= 1
+--- 'expires': 1167127142
+1121 None onebca_slice1120 nodes= [1120, 1121, 1122, 4120, 4121, 4122] persons= [1124, 1125, 1126]
+--- sas= [] onebca_slice1120 crp= 1
+--- 'expires': 1167127143
+1122 None onebcb_slice1121 nodes= [1121, 1122, 1123, 4121, 4122, 4123] persons= [1125, 1126, 1127]
+--- sas= [] onebcb_slice1121 crp= 1
+--- 'expires': 1167127143
+1123 None onebcc_slice1122 nodes= [1122, 1123, 1124, 4122, 4123, 4124] persons= [1126, 1127, 1128]
+--- sas= [] onebcc_slice1122 crp= 1
+--- 'expires': 1167127143
+1124 None onebcd_slice1123 nodes= [1123, 1124, 1125, 4123, 4124, 4125] persons= [1127, 1128, 1129]
+--- sas= [] onebcd_slice1123 crp= 1
+--- 'expires': 1167127144
+1125 None onebce_slice1124 nodes= [1124, 1125, 1126, 4124, 4125, 4126] persons= [1128, 1129, 1130]
+--- sas= [] onebce_slice1124 crp= 1
+--- 'expires': 1167127144
+1126 None onebcf_slice1125 nodes= [1125, 1126, 1127, 4125, 4126, 4127] persons= [1129, 1130, 1131]
+--- sas= [] onebcf_slice1125 crp= 1
+--- 'expires': 1167127144
+1127 None onebcg_slice1126 nodes= [1126, 1127, 1128, 4126, 4127, 4128] persons= [1130, 1131, 1132]
+--- sas= [] onebcg_slice1126 crp= 1
+--- 'expires': 1167127145
+1128 None onebch_slice1127 nodes= [1127, 1128, 1129, 4127, 4128, 4129] persons= [1131, 1132, 1133]
+--- sas= [] onebch_slice1127 crp= 1
+--- 'expires': 1167127145
+1129 None onebci_slice1128 nodes= [1128, 1129, 1130, 4128, 4129, 4130] persons= [1132, 1133, 1134]
+--- sas= [] onebci_slice1128 crp= 1
+--- 'expires': 1167127145
+1130 None onebcj_slice1129 nodes= [1129, 1130, 1131, 4129, 4130, 4131] persons= [1133, 1134, 1135]
+--- sas= [] onebcj_slice1129 crp= 1
+--- 'expires': 1167127146
+1131 None onebda_slice1130 nodes= [1130, 1131, 1132, 4130, 4131, 4132] persons= [1134, 1135, 1136]
+--- sas= [] onebda_slice1130 crp= 1
+--- 'expires': 1167127146
+1132 None onebdb_slice1131 nodes= [1131, 1132, 1133, 4131, 4132, 4133] persons= [1135, 1136, 1137]
+--- sas= [] onebdb_slice1131 crp= 1
+--- 'expires': 1167127147
+1133 None onebdc_slice1132 nodes= [1132, 1133, 1134, 4132, 4133, 4134] persons= [1136, 1137, 1138]
+--- sas= [] onebdc_slice1132 crp= 1
+--- 'expires': 1167127147
+1134 None onebdd_slice1133 nodes= [1133, 1134, 1135, 4133, 4134, 4135] persons= [1137, 1138, 1139]
+--- sas= [] onebdd_slice1133 crp= 1
+--- 'expires': 1167127147
+1135 None onebde_slice1134 nodes= [1134, 1135, 1136, 4134, 4135, 4136] persons= [1138, 1139, 1140]
+--- sas= [] onebde_slice1134 crp= 1
+--- 'expires': 1167127148
+1136 None onebdf_slice1135 nodes= [1135, 1136, 1137, 4135, 4136, 4137] persons= [1139, 1140, 1141]
+--- sas= [] onebdf_slice1135 crp= 1
+--- 'expires': 1167127148
+1137 None onebdg_slice1136 nodes= [1136, 1137, 1138, 4136, 4137, 4138] persons= [1140, 1141, 1142]
+--- sas= [] onebdg_slice1136 crp= 1
+--- 'expires': 1167127148
+1138 None onebdh_slice1137 nodes= [1137, 1138, 1139, 4137, 4138, 4139] persons= [1141, 1142, 1143]
+--- sas= [] onebdh_slice1137 crp= 1
+--- 'expires': 1167127149
+1139 None onebdi_slice1138 nodes= [1138, 1139, 1140, 4138, 4139, 4140] persons= [1142, 1143, 1144]
+--- sas= [] onebdi_slice1138 crp= 1
+--- 'expires': 1167127149
+1140 None onebdj_slice1139 nodes= [1139, 1140, 1141, 4139, 4140, 4141] persons= [1143, 1144, 1145]
+--- sas= [] onebdj_slice1139 crp= 1
+--- 'expires': 1167127149
+1141 None onebea_slice1140 nodes= [1140, 1141, 1142, 4140, 4141, 4142] persons= [1144, 1145, 1146]
+--- sas= [] onebea_slice1140 crp= 1
+--- 'expires': 1167127150
+1142 None onebeb_slice1141 nodes= [1141, 1142, 1143, 4141, 4142, 4143] persons= [1145, 1146, 1147]
+--- sas= [] onebeb_slice1141 crp= 1
+--- 'expires': 1167127150
+1143 None onebec_slice1142 nodes= [1142, 1143, 1144, 4142, 4143, 4144] persons= [1146, 1147, 1148]
+--- sas= [] onebec_slice1142 crp= 1
+--- 'expires': 1167127151
+1144 None onebed_slice1143 nodes= [1143, 1144, 1145, 4143, 4144, 4145] persons= [1147, 1148, 1149]
+--- sas= [] onebed_slice1143 crp= 1
+--- 'expires': 1167127151
+1145 None onebee_slice1144 nodes= [1144, 1145, 1146, 4144, 4145, 4146] persons= [1148, 1149, 1150]
+--- sas= [] onebee_slice1144 crp= 1
+--- 'expires': 1167127151
+1146 None onebef_slice1145 nodes= [1145, 1146, 1147, 4145, 4146, 4147] persons= [1149, 1150, 1151]
+--- sas= [] onebef_slice1145 crp= 1
+--- 'expires': 1167127152
+1147 None onebeg_slice1146 nodes= [1146, 1147, 1148, 4146, 4147, 4148] persons= [1150, 1151, 1152]
+--- sas= [] onebeg_slice1146 crp= 1
+--- 'expires': 1167127152
+1148 None onebeh_slice1147 nodes= [1147, 1148, 1149, 4147, 4148, 4149] persons= [1151, 1152, 1153]
+--- sas= [] onebeh_slice1147 crp= 1
+--- 'expires': 1167127152
+1149 None onebei_slice1148 nodes= [1148, 1149, 1150, 4148, 4149, 4150] persons= [1152, 1153, 1154]
+--- sas= [] onebei_slice1148 crp= 1
+--- 'expires': 1167127153
+1150 None onebej_slice1149 nodes= [1149, 1150, 1151, 4149, 4150, 4151] persons= [1153, 1154, 1155]
+--- sas= [] onebej_slice1149 crp= 1
+--- 'expires': 1167127153
+1151 None onebfa_slice1150 nodes= [1150, 1151, 1152, 4150, 4151, 4152] persons= [1154, 1155, 1156]
+--- sas= [] onebfa_slice1150 crp= 1
+--- 'expires': 1167127153
+1152 None onebfb_slice1151 nodes= [1151, 1152, 1153, 4151, 4152, 4153] persons= [1155, 1156, 1157]
+--- sas= [] onebfb_slice1151 crp= 1
+--- 'expires': 1167127154
+1153 None onebfc_slice1152 nodes= [1152, 1153, 1154, 4152, 4153, 4154] persons= [1156, 1157, 1158]
+--- sas= [] onebfc_slice1152 crp= 1
+--- 'expires': 1167127154
+1154 None onebfd_slice1153 nodes= [1153, 1154, 1155, 4153, 4154, 4155] persons= [1157, 1158, 1159]
+--- sas= [] onebfd_slice1153 crp= 1
+--- 'expires': 1167127155
+1155 None onebfe_slice1154 nodes= [1154, 1155, 1156, 4154, 4155, 4156] persons= [1158, 1159, 1160]
+--- sas= [] onebfe_slice1154 crp= 1
+--- 'expires': 1167127155
+1156 None onebff_slice1155 nodes= [1155, 1156, 1157, 4155, 4156, 4157] persons= [1159, 1160, 1161]
+--- sas= [] onebff_slice1155 crp= 1
+--- 'expires': 1167127155
+1157 None onebfg_slice1156 nodes= [1156, 1157, 1158, 4156, 4157, 4158] persons= [1160, 1161, 1162]
+--- sas= [] onebfg_slice1156 crp= 1
+--- 'expires': 1167127156
+1158 None onebfh_slice1157 nodes= [1157, 1158, 1159, 4157, 4158, 4159] persons= [1161, 1162, 1163]
+--- sas= [] onebfh_slice1157 crp= 1
+--- 'expires': 1167127156
+1159 None onebfi_slice1158 nodes= [1158, 1159, 1160, 4158, 4159, 4160] persons= [1162, 1163, 1164]
+--- sas= [] onebfi_slice1158 crp= 1
+--- 'expires': 1167127156
+1160 None onebfj_slice1159 nodes= [1159, 1160, 1161, 4159, 4160, 4161] persons= [1163, 1164, 1165]
+--- sas= [] onebfj_slice1159 crp= 1
+--- 'expires': 1167127157
+1161 None onebga_slice1160 nodes= [1160, 1161, 1162, 4160, 4161, 4162] persons= [1164, 1165, 1166]
+--- sas= [] onebga_slice1160 crp= 1
+--- 'expires': 1167127157
+1162 None onebgb_slice1161 nodes= [1161, 1162, 1163, 4161, 4162, 4163] persons= [1165, 1166, 1167]
+--- sas= [] onebgb_slice1161 crp= 1
+--- 'expires': 1167127157
+1163 None onebgc_slice1162 nodes= [1162, 1163, 1164, 4162, 4163, 4164] persons= [1166, 1167, 1168]
+--- sas= [] onebgc_slice1162 crp= 1
+--- 'expires': 1167127158
+1164 None onebgd_slice1163 nodes= [1163, 1164, 1165, 4163, 4164, 4165] persons= [1167, 1168, 1169]
+--- sas= [] onebgd_slice1163 crp= 1
+--- 'expires': 1167127158
+1165 None onebge_slice1164 nodes= [1164, 1165, 1166, 4164, 4165, 4166] persons= [1168, 1169, 1170]
+--- sas= [] onebge_slice1164 crp= 1
+--- 'expires': 1167127159
+1166 None onebgf_slice1165 nodes= [1165, 1166, 1167, 4165, 4166, 4167] persons= [1169, 1170, 1171]
+--- sas= [] onebgf_slice1165 crp= 1
+--- 'expires': 1167127159
+1167 None onebgg_slice1166 nodes= [1166, 1167, 1168, 4166, 4167, 4168] persons= [1170, 1171, 1172]
+--- sas= [] onebgg_slice1166 crp= 1
+--- 'expires': 1167127159
+1168 None onebgh_slice1167 nodes= [1167, 1168, 1169, 4167, 4168, 4169] persons= [1171, 1172, 1173]
+--- sas= [] onebgh_slice1167 crp= 1
+--- 'expires': 1167127160
+1169 None onebgi_slice1168 nodes= [1168, 1169, 1170, 4168, 4169, 4170] persons= [1172, 1173, 1174]
+--- sas= [] onebgi_slice1168 crp= 1
+--- 'expires': 1167127160
+1170 None onebgj_slice1169 nodes= [1169, 1170, 1171, 4169, 4170, 4171] persons= [1173, 1174, 1175]
+--- sas= [] onebgj_slice1169 crp= 1
+--- 'expires': 1167127161
+1171 None onebha_slice1170 nodes= [1170, 1171, 1172, 4170, 4171, 4172] persons= [1174, 1175, 1176]
+--- sas= [] onebha_slice1170 crp= 1
+--- 'expires': 1167127161
+1172 None onebhb_slice1171 nodes= [1171, 1172, 1173, 4171, 4172, 4173] persons= [1175, 1176, 1177]
+--- sas= [] onebhb_slice1171 crp= 1
+--- 'expires': 1167127161
+1173 None onebhc_slice1172 nodes= [1172, 1173, 1174, 4172, 4173, 4174] persons= [1176, 1177, 1178]
+--- sas= [] onebhc_slice1172 crp= 1
+--- 'expires': 1167127162
+1174 None onebhd_slice1173 nodes= [1173, 1174, 1175, 4173, 4174, 4175] persons= [1177, 1178, 1179]
+--- sas= [] onebhd_slice1173 crp= 1
+--- 'expires': 1167127162
+1175 None onebhe_slice1174 nodes= [1174, 1175, 1176, 4174, 4175, 4176] persons= [1178, 1179, 1180]
+--- sas= [] onebhe_slice1174 crp= 1
+--- 'expires': 1167127163
+1176 None onebhf_slice1175 nodes= [1175, 1176, 1177, 4175, 4176, 4177] persons= [1179, 1180, 1181]
+--- sas= [] onebhf_slice1175 crp= 1
+--- 'expires': 1167127163
+1177 None onebhg_slice1176 nodes= [1176, 1177, 1178, 4176, 4177, 4178] persons= [1180, 1181, 1182]
+--- sas= [] onebhg_slice1176 crp= 1
+--- 'expires': 1167127163
+1178 None onebhh_slice1177 nodes= [1177, 1178, 1179, 4177, 4178, 4179] persons= [1181, 1182, 1183]
+--- sas= [] onebhh_slice1177 crp= 1
+--- 'expires': 1167127164
+1179 None onebhi_slice1178 nodes= [1178, 1179, 1180, 4178, 4179, 4180] persons= [1182, 1183, 1184]
+--- sas= [] onebhi_slice1178 crp= 1
+--- 'expires': 1167127164
+1180 None onebhj_slice1179 nodes= [1179, 1180, 1181, 4179, 4180, 4181] persons= [1183, 1184, 1185]
+--- sas= [] onebhj_slice1179 crp= 1
+--- 'expires': 1167127165
+1181 None onebia_slice1180 nodes= [1180, 1181, 1182, 4180, 4181, 4182] persons= [1184, 1185, 1186]
+--- sas= [] onebia_slice1180 crp= 1
+--- 'expires': 1167127165
+1182 None onebib_slice1181 nodes= [1181, 1182, 1183, 4181, 4182, 4183] persons= [1185, 1186, 1187]
+--- sas= [] onebib_slice1181 crp= 1
+--- 'expires': 1167127165
+1183 None onebic_slice1182 nodes= [1182, 1183, 1184, 4182, 4183, 4184] persons= [1186, 1187, 1188]
+--- sas= [] onebic_slice1182 crp= 1
+--- 'expires': 1167127166
+1184 None onebid_slice1183 nodes= [1183, 1184, 1185, 4183, 4184, 4185] persons= [1187, 1188, 1189]
+--- sas= [] onebid_slice1183 crp= 1
+--- 'expires': 1167127166
+1185 None onebie_slice1184 nodes= [1184, 1185, 1186, 4184, 4185, 4186] persons= [1188, 1189, 1190]
+--- sas= [] onebie_slice1184 crp= 1
+--- 'expires': 1167127167
+1186 None onebif_slice1185 nodes= [1185, 1186, 1187, 4185, 4186, 4187] persons= [1189, 1190, 1191]
+--- sas= [] onebif_slice1185 crp= 1
+--- 'expires': 1167127167
+1187 None onebig_slice1186 nodes= [1186, 1187, 1188, 4186, 4187, 4188] persons= [1190, 1191, 1192]
+--- sas= [] onebig_slice1186 crp= 1
+--- 'expires': 1167127167
+1188 None onebih_slice1187 nodes= [1187, 1188, 1189, 4187, 4188, 4189] persons= [1191, 1192, 1193]
+--- sas= [] onebih_slice1187 crp= 1
+--- 'expires': 1167127168
+1189 None onebii_slice1188 nodes= [1188, 1189, 1190, 4188, 4189, 4190] persons= [1192, 1193, 1194]
+--- sas= [] onebii_slice1188 crp= 1
+--- 'expires': 1167127168
+1190 None onebij_slice1189 nodes= [1189, 1190, 1191, 4189, 4190, 4191] persons= [1193, 1194, 1195]
+--- sas= [] onebij_slice1189 crp= 1
+--- 'expires': 1167127169
+1191 None onebja_slice1190 nodes= [1190, 1191, 1192, 4190, 4191, 4192] persons= [1194, 1195, 1196]
+--- sas= [] onebja_slice1190 crp= 1
+--- 'expires': 1167127169
+1192 None onebjb_slice1191 nodes= [1191, 1192, 1193, 4191, 4192, 4193] persons= [1195, 1196, 1197]
+--- sas= [] onebjb_slice1191 crp= 1
+--- 'expires': 1167127169
+1193 None onebjc_slice1192 nodes= [1192, 1193, 1194, 4192, 4193, 4194] persons= [1196, 1197, 1198]
+--- sas= [] onebjc_slice1192 crp= 1
+--- 'expires': 1167127170
+1194 None onebjd_slice1193 nodes= [1193, 1194, 1195, 4193, 4194, 4195] persons= [1197, 1198, 1199]
+--- sas= [] onebjd_slice1193 crp= 1
+--- 'expires': 1167127170
+1195 None onebje_slice1194 nodes= [1194, 1195, 1196, 4194, 4195, 4196] persons= [1198, 1199, 1200]
+--- sas= [] onebje_slice1194 crp= 1
+--- 'expires': 1167127171
+1196 None onebjf_slice1195 nodes= [1195, 1196, 1197, 4195, 4196, 4197] persons= [1199, 1200, 1201]
+--- sas= [] onebjf_slice1195 crp= 1
+--- 'expires': 1167127171
+1197 None onebjg_slice1196 nodes= [1196, 1197, 1198, 4196, 4197, 4198] persons= [1200, 1201, 1202]
+--- sas= [] onebjg_slice1196 crp= 1
+--- 'expires': 1167127171
+1198 None onebjh_slice1197 nodes= [1197, 1198, 1199, 4197, 4198, 4199] persons= [1201, 1202, 1203]
+--- sas= [] onebjh_slice1197 crp= 1
+--- 'expires': 1167127172
+1199 None onebji_slice1198 nodes= [1198, 1199, 1200, 4198, 4199, 4200] persons= [1202, 1203, 1204]
+--- sas= [] onebji_slice1198 crp= 1
+--- 'expires': 1167127172
+1200 None onebjj_slice1199 nodes= [1199, 1200, 1201, 4199, 4200, 4201] persons= [1203, 1204, 1205]
+--- sas= [] onebjj_slice1199 crp= 1
+--- 'expires': 1167127173
+1201 None onecaa_slice1200 nodes= [1200, 1201, 1202, 4200, 4201, 4202] persons= [1204, 1205, 1206]
+--- sas= [] onecaa_slice1200 crp= 1
+--- 'expires': 1167127173
+1202 None onecab_slice1201 nodes= [1201, 1202, 1203, 4201, 4202, 4203] persons= [1205, 1206, 1207]
+--- sas= [] onecab_slice1201 crp= 1
+--- 'expires': 1167127173
+1203 None onecac_slice1202 nodes= [1202, 1203, 1204, 4202, 4203, 4204] persons= [1206, 1207, 1208]
+--- sas= [] onecac_slice1202 crp= 1
+--- 'expires': 1167127174
+1204 None onecad_slice1203 nodes= [1203, 1204, 1205, 4203, 4204, 4205] persons= [1207, 1208, 1209]
+--- sas= [] onecad_slice1203 crp= 1
+--- 'expires': 1167127174
+1205 None onecae_slice1204 nodes= [1204, 1205, 1206, 4204, 4205, 4206] persons= [1208, 1209, 1210]
+--- sas= [] onecae_slice1204 crp= 1
+--- 'expires': 1167127175
+1206 None onecaf_slice1205 nodes= [1205, 1206, 1207, 4205, 4206, 4207] persons= [1209, 1210, 1211]
+--- sas= [] onecaf_slice1205 crp= 1
+--- 'expires': 1167127175
+1207 None onecag_slice1206 nodes= [1206, 1207, 1208, 4206, 4207, 4208] persons= [1210, 1211, 1212]
+--- sas= [] onecag_slice1206 crp= 1
+--- 'expires': 1167127175
+1208 None onecah_slice1207 nodes= [1207, 1208, 1209, 4207, 4208, 4209] persons= [1211, 1212, 1213]
+--- sas= [] onecah_slice1207 crp= 1
+--- 'expires': 1167127176
+1209 None onecai_slice1208 nodes= [1208, 1209, 1210, 4208, 4209, 4210] persons= [1212, 1213, 1214]
+--- sas= [] onecai_slice1208 crp= 1
+--- 'expires': 1167127176
+1210 None onecaj_slice1209 nodes= [1209, 1210, 1211, 4209, 4210, 4211] persons= [1213, 1214, 1215]
+--- sas= [] onecaj_slice1209 crp= 1
+--- 'expires': 1167127177
+1211 None onecba_slice1210 nodes= [1210, 1211, 1212, 4210, 4211, 4212] persons= [1214, 1215, 1216]
+--- sas= [] onecba_slice1210 crp= 1
+--- 'expires': 1167127177
+1212 None onecbb_slice1211 nodes= [1211, 1212, 1213, 4211, 4212, 4213] persons= [1215, 1216, 1217]
+--- sas= [] onecbb_slice1211 crp= 1
+--- 'expires': 1167127177
+1213 None onecbc_slice1212 nodes= [1212, 1213, 1214, 4212, 4213, 4214] persons= [1216, 1217, 1218]
+--- sas= [] onecbc_slice1212 crp= 1
+--- 'expires': 1167127178
+1214 None onecbd_slice1213 nodes= [1213, 1214, 1215, 4213, 4214, 4215] persons= [1217, 1218, 1219]
+--- sas= [] onecbd_slice1213 crp= 1
+--- 'expires': 1167127178
+1215 None onecbe_slice1214 nodes= [1214, 1215, 1216, 4214, 4215, 4216] persons= [1218, 1219, 1220]
+--- sas= [] onecbe_slice1214 crp= 1
+--- 'expires': 1167127179
+1216 None onecbf_slice1215 nodes= [1215, 1216, 1217, 4215, 4216, 4217] persons= [1219, 1220, 1221]
+--- sas= [] onecbf_slice1215 crp= 1
+--- 'expires': 1167127179
+1217 None onecbg_slice1216 nodes= [1216, 1217, 1218, 4216, 4217, 4218] persons= [1220, 1221, 1222]
+--- sas= [] onecbg_slice1216 crp= 1
+--- 'expires': 1167127179
+1218 None onecbh_slice1217 nodes= [1217, 1218, 1219, 4217, 4218, 4219] persons= [1221, 1222, 1223]
+--- sas= [] onecbh_slice1217 crp= 1
+--- 'expires': 1167127180
+1219 None onecbi_slice1218 nodes= [1218, 1219, 1220, 4218, 4219, 4220] persons= [1222, 1223, 1224]
+--- sas= [] onecbi_slice1218 crp= 1
+--- 'expires': 1167127180
+1220 None onecbj_slice1219 nodes= [1219, 1220, 1221, 4219, 4220, 4221] persons= [1223, 1224, 1225]
+--- sas= [] onecbj_slice1219 crp= 1
+--- 'expires': 1167127181
+1221 None onecca_slice1220 nodes= [1220, 1221, 1222, 4220, 4221, 4222] persons= [1224, 1225, 1226]
+--- sas= [] onecca_slice1220 crp= 1
+--- 'expires': 1167127181
+1222 None oneccb_slice1221 nodes= [1221, 1222, 1223, 4221, 4222, 4223] persons= [1225, 1226, 1227]
+--- sas= [] oneccb_slice1221 crp= 1
+--- 'expires': 1167127182
+1223 None oneccc_slice1222 nodes= [1222, 1223, 1224, 4222, 4223, 4224] persons= [1226, 1227, 1228]
+--- sas= [] oneccc_slice1222 crp= 1
+--- 'expires': 1167127182
+1224 None oneccd_slice1223 nodes= [1223, 1224, 1225, 4223, 4224, 4225] persons= [1227, 1228, 1229]
+--- sas= [] oneccd_slice1223 crp= 1
+--- 'expires': 1167127182
+1225 None onecce_slice1224 nodes= [1224, 1225, 1226, 4224, 4225, 4226] persons= [1228, 1229, 1230]
+--- sas= [] onecce_slice1224 crp= 1
+--- 'expires': 1167127183
+1226 None oneccf_slice1225 nodes= [1225, 1226, 1227, 4225, 4226, 4227] persons= [1229, 1230, 1231]
+--- sas= [] oneccf_slice1225 crp= 1
+--- 'expires': 1167127183
+1227 None oneccg_slice1226 nodes= [1226, 1227, 1228, 4226, 4227, 4228] persons= [1230, 1231, 1232]
+--- sas= [] oneccg_slice1226 crp= 1
+--- 'expires': 1167127184
+1228 None onecch_slice1227 nodes= [1227, 1228, 1229, 4227, 4228, 4229] persons= [1231, 1232, 1233]
+--- sas= [] onecch_slice1227 crp= 1
+--- 'expires': 1167127184
+1229 None onecci_slice1228 nodes= [1228, 1229, 1230, 4228, 4229, 4230] persons= [1232, 1233, 1234]
+--- sas= [] onecci_slice1228 crp= 1
+--- 'expires': 1167127184
+1230 None oneccj_slice1229 nodes= [1229, 1230, 1231, 4229, 4230, 4231] persons= [1233, 1234, 1235]
+--- sas= [] oneccj_slice1229 crp= 1
+--- 'expires': 1167127185
+1231 None onecda_slice1230 nodes= [1230, 1231, 1232, 4230, 4231, 4232] persons= [1234, 1235, 1236]
+--- sas= [] onecda_slice1230 crp= 1
+--- 'expires': 1167127185
+1232 None onecdb_slice1231 nodes= [1231, 1232, 1233, 4231, 4232, 4233] persons= [1235, 1236, 1237]
+--- sas= [] onecdb_slice1231 crp= 1
+--- 'expires': 1167127186
+1233 None onecdc_slice1232 nodes= [1232, 1233, 1234, 4232, 4233, 4234] persons= [1236, 1237, 1238]
+--- sas= [] onecdc_slice1232 crp= 1
+--- 'expires': 1167127186
+1234 None onecdd_slice1233 nodes= [1233, 1234, 1235, 4233, 4234, 4235] persons= [1237, 1238, 1239]
+--- sas= [] onecdd_slice1233 crp= 1
+--- 'expires': 1167127186
+1235 None onecde_slice1234 nodes= [1234, 1235, 1236, 4234, 4235, 4236] persons= [1238, 1239, 1240]
+--- sas= [] onecde_slice1234 crp= 1
+--- 'expires': 1167127187
+1236 None onecdf_slice1235 nodes= [1235, 1236, 1237, 4235, 4236, 4237] persons= [1239, 1240, 1241]
+--- sas= [] onecdf_slice1235 crp= 1
+--- 'expires': 1167127187
+1237 None onecdg_slice1236 nodes= [1236, 1237, 1238, 4236, 4237, 4238] persons= [1240, 1241, 1242]
+--- sas= [] onecdg_slice1236 crp= 1
+--- 'expires': 1167127188
+1238 None onecdh_slice1237 nodes= [1237, 1238, 1239, 4237, 4238, 4239] persons= [1241, 1242, 1243]
+--- sas= [] onecdh_slice1237 crp= 1
+--- 'expires': 1167127188
+1239 None onecdi_slice1238 nodes= [1238, 1239, 1240, 4238, 4239, 4240] persons= [1242, 1243, 1244]
+--- sas= [] onecdi_slice1238 crp= 1
+--- 'expires': 1167127188
+1240 None onecdj_slice1239 nodes= [1239, 1240, 1241, 4239, 4240, 4241] persons= [1243, 1244, 1245]
+--- sas= [] onecdj_slice1239 crp= 1
+--- 'expires': 1167127189
+1241 None onecea_slice1240 nodes= [1240, 1241, 1242, 4240, 4241, 4242] persons= [1244, 1245, 1246]
+--- sas= [] onecea_slice1240 crp= 1
+--- 'expires': 1167127189
+1242 None oneceb_slice1241 nodes= [1241, 1242, 1243, 4241, 4242, 4243] persons= [1245, 1246, 1247]
+--- sas= [] oneceb_slice1241 crp= 1
+--- 'expires': 1167127190
+1243 None onecec_slice1242 nodes= [1242, 1243, 1244, 4242, 4243, 4244] persons= [1246, 1247, 1248]
+--- sas= [] onecec_slice1242 crp= 1
+--- 'expires': 1167127190
+1244 None oneced_slice1243 nodes= [1243, 1244, 1245, 4243, 4244, 4245] persons= [1247, 1248, 1249]
+--- sas= [] oneced_slice1243 crp= 1
+--- 'expires': 1167127190
+1245 None onecee_slice1244 nodes= [1244, 1245, 1246, 4244, 4245, 4246] persons= [1248, 1249, 1250]
+--- sas= [] onecee_slice1244 crp= 1
+--- 'expires': 1167127191
+1246 None onecef_slice1245 nodes= [1245, 1246, 1247, 4245, 4246, 4247] persons= [1249, 1250, 1251]
+--- sas= [] onecef_slice1245 crp= 1
+--- 'expires': 1167127191
+1247 None oneceg_slice1246 nodes= [1246, 1247, 1248, 4246, 4247, 4248] persons= [1250, 1251, 1252]
+--- sas= [] oneceg_slice1246 crp= 1
+--- 'expires': 1167127192
+1248 None oneceh_slice1247 nodes= [1247, 1248, 1249, 4247, 4248, 4249] persons= [1251, 1252, 1253]
+--- sas= [] oneceh_slice1247 crp= 1
+--- 'expires': 1167127192
+1249 None onecei_slice1248 nodes= [1248, 1249, 1250, 4248, 4249, 4250] persons= [1252, 1253, 1254]
+--- sas= [] onecei_slice1248 crp= 1
+--- 'expires': 1167127193
+1250 None onecej_slice1249 nodes= [1249, 1250, 1251, 4249, 4250, 4251] persons= [1253, 1254, 1255]
+--- sas= [] onecej_slice1249 crp= 1
+--- 'expires': 1167127193
+1251 None onecfa_slice1250 nodes= [1250, 1251, 1252, 4250, 4251, 4252] persons= [1254, 1255, 1256]
+--- sas= [] onecfa_slice1250 crp= 1
+--- 'expires': 1167127193
+1252 None onecfb_slice1251 nodes= [1251, 1252, 1253, 4251, 4252, 4253] persons= [1255, 1256, 1257]
+--- sas= [] onecfb_slice1251 crp= 1
+--- 'expires': 1167127194
+1253 None onecfc_slice1252 nodes= [1252, 1253, 1254, 4252, 4253, 4254] persons= [1256, 1257, 1258]
+--- sas= [] onecfc_slice1252 crp= 1
+--- 'expires': 1167127194
+1254 None onecfd_slice1253 nodes= [1253, 1254, 1255, 4253, 4254, 4255] persons= [1257, 1258, 1259]
+--- sas= [] onecfd_slice1253 crp= 1
+--- 'expires': 1167127195
+1255 None onecfe_slice1254 nodes= [1254, 1255, 1256, 4254, 4255, 4256] persons= [1258, 1259, 1260]
+--- sas= [] onecfe_slice1254 crp= 1
+--- 'expires': 1167127195
+1256 None onecff_slice1255 nodes= [1255, 1256, 1257, 4255, 4256, 4257] persons= [1259, 1260, 1261]
+--- sas= [] onecff_slice1255 crp= 1
+--- 'expires': 1167127195
+1257 None onecfg_slice1256 nodes= [1256, 1257, 1258, 4256, 4257, 4258] persons= [1260, 1261, 1262]
+--- sas= [] onecfg_slice1256 crp= 1
+--- 'expires': 1167127196
+1258 None onecfh_slice1257 nodes= [1257, 1258, 1259, 4257, 4258, 4259] persons= [1261, 1262, 1263]
+--- sas= [] onecfh_slice1257 crp= 1
+--- 'expires': 1167127196
+1259 None onecfi_slice1258 nodes= [1258, 1259, 1260, 4258, 4259, 4260] persons= [1262, 1263, 1264]
+--- sas= [] onecfi_slice1258 crp= 1
+--- 'expires': 1167127197
+1260 None onecfj_slice1259 nodes= [1259, 1260, 1261, 4259, 4260, 4261] persons= [1263, 1264, 1265]
+--- sas= [] onecfj_slice1259 crp= 1
+--- 'expires': 1167127197
+1261 None onecga_slice1260 nodes= [1260, 1261, 1262, 4260, 4261, 4262] persons= [1264, 1265, 1266]
+--- sas= [] onecga_slice1260 crp= 1
+--- 'expires': 1167127197
+1262 None onecgb_slice1261 nodes= [1261, 1262, 1263, 4261, 4262, 4263] persons= [1265, 1266, 1267]
+--- sas= [] onecgb_slice1261 crp= 1
+--- 'expires': 1167127198
+1263 None onecgc_slice1262 nodes= [1262, 1263, 1264, 4262, 4263, 4264] persons= [1266, 1267, 1268]
+--- sas= [] onecgc_slice1262 crp= 1
+--- 'expires': 1167127198
+1264 None onecgd_slice1263 nodes= [1263, 1264, 1265, 4263, 4264, 4265] persons= [1267, 1268, 1269]
+--- sas= [] onecgd_slice1263 crp= 1
+--- 'expires': 1167127199
+1265 None onecge_slice1264 nodes= [1264, 1265, 1266, 4264, 4265, 4266] persons= [1268, 1269, 1270]
+--- sas= [] onecge_slice1264 crp= 1
+--- 'expires': 1167127199
+1266 None onecgf_slice1265 nodes= [1265, 1266, 1267, 4265, 4266, 4267] persons= [1269, 1270, 1271]
+--- sas= [] onecgf_slice1265 crp= 1
+--- 'expires': 1167127200
+1267 None onecgg_slice1266 nodes= [1266, 1267, 1268, 4266, 4267, 4268] persons= [1270, 1271, 1272]
+--- sas= [] onecgg_slice1266 crp= 1
+--- 'expires': 1167127200
+1268 None onecgh_slice1267 nodes= [1267, 1268, 1269, 4267, 4268, 4269] persons= [1271, 1272, 1273]
+--- sas= [] onecgh_slice1267 crp= 1
+--- 'expires': 1167127200
+1269 None onecgi_slice1268 nodes= [1268, 1269, 1270, 4268, 4269, 4270] persons= [1272, 1273, 1274]
+--- sas= [] onecgi_slice1268 crp= 1
+--- 'expires': 1167127201
+1270 None onecgj_slice1269 nodes= [1269, 1270, 1271, 4269, 4270, 4271] persons= [1273, 1274, 1275]
+--- sas= [] onecgj_slice1269 crp= 1
+--- 'expires': 1167127201
+1271 None onecha_slice1270 nodes= [1270, 1271, 1272, 4270, 4271, 4272] persons= [1274, 1275, 1276]
+--- sas= [] onecha_slice1270 crp= 1
+--- 'expires': 1167127202
+1272 None onechb_slice1271 nodes= [1271, 1272, 1273, 4271, 4272, 4273] persons= [1275, 1276, 1277]
+--- sas= [] onechb_slice1271 crp= 1
+--- 'expires': 1167127210
+1273 None onechc_slice1272 nodes= [1272, 1273, 1274, 4272, 4273, 4274] persons= [1276, 1277, 1278]
+--- sas= [] onechc_slice1272 crp= 1
+--- 'expires': 1167127211
+1274 None onechd_slice1273 nodes= [1273, 1274, 1275, 4273, 4274, 4275] persons= [1277, 1278, 1279]
+--- sas= [] onechd_slice1273 crp= 1
+--- 'expires': 1167127214
+1275 None oneche_slice1274 nodes= [1274, 1275, 1276, 4274, 4275, 4276] persons= [1278, 1279, 1280]
+--- sas= [] oneche_slice1274 crp= 1
+--- 'expires': 1167127216
+1276 None onechf_slice1275 nodes= [1275, 1276, 1277, 4275, 4276, 4277] persons= [1279, 1280, 1281]
+--- sas= [] onechf_slice1275 crp= 1
+--- 'expires': 1167127217
+1277 None onechg_slice1276 nodes= [1276, 1277, 1278, 4276, 4277, 4278] persons= [1280, 1281, 1282]
+--- sas= [] onechg_slice1276 crp= 1
+--- 'expires': 1167127219
+1278 None onechh_slice1277 nodes= [1277, 1278, 1279, 4277, 4278, 4279] persons= [1281, 1282, 1283]
+--- sas= [] onechh_slice1277 crp= 1
+--- 'expires': 1167127220
+1279 None onechi_slice1278 nodes= [1278, 1279, 1280, 4278, 4279, 4280] persons= [1282, 1283, 1284]
+--- sas= [] onechi_slice1278 crp= 1
+--- 'expires': 1167127222
+1280 None onechj_slice1279 nodes= [1279, 1280, 1281, 4279, 4280, 4281] persons= [1283, 1284, 1285]
+--- sas= [] onechj_slice1279 crp= 1
+--- 'expires': 1167127223
+1281 None onecia_slice1280 nodes= [1280, 1281, 1282, 4280, 4281, 4282] persons= [1284, 1285, 1286]
+--- sas= [] onecia_slice1280 crp= 1
+--- 'expires': 1167127224
+1282 None onecib_slice1281 nodes= [1281, 1282, 1283, 4281, 4282, 4283] persons= [1285, 1286, 1287]
+--- sas= [] onecib_slice1281 crp= 1
+--- 'expires': 1167127226
+1283 None onecic_slice1282 nodes= [1282, 1283, 1284, 4282, 4283, 4284] persons= [1286, 1287, 1288]
+--- sas= [] onecic_slice1282 crp= 1
+--- 'expires': 1167127227
+1284 None onecid_slice1283 nodes= [1283, 1284, 1285, 4283, 4284, 4285] persons= [1287, 1288, 1289]
+--- sas= [] onecid_slice1283 crp= 1
+--- 'expires': 1167127229
+1285 None onecie_slice1284 nodes= [1284, 1285, 1286, 4284, 4285, 4286] persons= [1288, 1289, 1290]
+--- sas= [] onecie_slice1284 crp= 1
+--- 'expires': 1167127230
+1286 None onecif_slice1285 nodes= [1285, 1286, 1287, 4285, 4286, 4287] persons= [1289, 1290, 1291]
+--- sas= [] onecif_slice1285 crp= 1
+--- 'expires': 1167127231
+1287 None onecig_slice1286 nodes= [1286, 1287, 1288, 4286, 4287, 4288] persons= [1290, 1291, 1292]
+--- sas= [] onecig_slice1286 crp= 1
+--- 'expires': 1167127233
+1288 None onecih_slice1287 nodes= [1287, 1288, 1289, 4287, 4288, 4289] persons= [1291, 1292, 1293]
+--- sas= [] onecih_slice1287 crp= 1
+--- 'expires': 1167127234
+1289 None onecii_slice1288 nodes= [1288, 1289, 1290, 4288, 4289, 4290] persons= [1292, 1293, 1294]
+--- sas= [] onecii_slice1288 crp= 1
+--- 'expires': 1167127235
+1290 None onecij_slice1289 nodes= [1289, 1290, 1291, 4289, 4290, 4291] persons= [1293, 1294, 1295]
+--- sas= [] onecij_slice1289 crp= 1
+--- 'expires': 1167127237
+1291 None onecja_slice1290 nodes= [1290, 1291, 1292, 4290, 4291, 4292] persons= [1294, 1295, 1296]
+--- sas= [] onecja_slice1290 crp= 1
+--- 'expires': 1167127239
+1292 None onecjb_slice1291 nodes= [1291, 1292, 1293, 4291, 4292, 4293] persons= [1295, 1296, 1297]
+--- sas= [] onecjb_slice1291 crp= 1
+--- 'expires': 1167127240
+1293 None onecjc_slice1292 nodes= [1292, 1293, 1294, 4292, 4293, 4294] persons= [1296, 1297, 1298]
+--- sas= [] onecjc_slice1292 crp= 1
+--- 'expires': 1167127241
+1294 None onecjd_slice1293 nodes= [1293, 1294, 1295, 4293, 4294, 4295] persons= [1297, 1298, 1299]
+--- sas= [] onecjd_slice1293 crp= 1
+--- 'expires': 1167127243
+1295 None onecje_slice1294 nodes= [1294, 1295, 1296, 4294, 4295, 4296] persons= [1298, 1299, 1300]
+--- sas= [] onecje_slice1294 crp= 1
+--- 'expires': 1167127244
+1296 None onecjf_slice1295 nodes= [1295, 1296, 1297, 4295, 4296, 4297] persons= [1299, 1300, 1301]
+--- sas= [] onecjf_slice1295 crp= 1
+--- 'expires': 1167127245
+1297 None onecjg_slice1296 nodes= [1296, 1297, 1298, 4296, 4297, 4298] persons= [1300, 1301, 1302]
+--- sas= [] onecjg_slice1296 crp= 1
+--- 'expires': 1167127247
+1298 None onecjh_slice1297 nodes= [1297, 1298, 1299, 4297, 4298, 4299] persons= [1301, 1302, 1303]
+--- sas= [] onecjh_slice1297 crp= 1
+--- 'expires': 1167127248
+1299 None onecji_slice1298 nodes= [1298, 1299, 1300, 4298, 4299, 4300] persons= [1302, 1303, 1304]
+--- sas= [] onecji_slice1298 crp= 1
+--- 'expires': 1167127250
+1300 None onecjj_slice1299 nodes= [1299, 1300, 1301, 4299, 4300, 4301] persons= [1303, 1304, 1305]
+--- sas= [] onecjj_slice1299 crp= 1
+--- 'expires': 1167127251
+1301 None onedaa_slice1300 nodes= [1300, 1301, 1302, 4300, 4301, 4302] persons= [1304, 1305, 1306]
+--- sas= [] onedaa_slice1300 crp= 1
+--- 'expires': 1167127253
+1302 None onedab_slice1301 nodes= [1301, 1302, 1303, 4301, 4302, 4303] persons= [1305, 1306, 1307]
+--- sas= [] onedab_slice1301 crp= 1
+--- 'expires': 1167127254
+1303 None onedac_slice1302 nodes= [1302, 1303, 1304, 4302, 4303, 4304] persons= [1306, 1307, 1308]
+--- sas= [] onedac_slice1302 crp= 1
+--- 'expires': 1167127256
+1304 None onedad_slice1303 nodes= [1303, 1304, 1305, 4303, 4304, 4305] persons= [1307, 1308, 1309]
+--- sas= [] onedad_slice1303 crp= 1
+--- 'expires': 1167127257
+1305 None onedae_slice1304 nodes= [1304, 1305, 1306, 4304, 4305, 4306] persons= [1308, 1309, 1310]
+--- sas= [] onedae_slice1304 crp= 1
+--- 'expires': 1167127259
+1306 None onedaf_slice1305 nodes= [1305, 1306, 1307, 4305, 4306, 4307] persons= [1309, 1310, 1311]
+--- sas= [] onedaf_slice1305 crp= 1
+--- 'expires': 1167127260
+1307 None onedag_slice1306 nodes= [1306, 1307, 1308, 4306, 4307, 4308] persons= [1310, 1311, 1312]
+--- sas= [] onedag_slice1306 crp= 1
+--- 'expires': 1167127262
+1308 None onedah_slice1307 nodes= [1307, 1308, 1309, 4307, 4308, 4309] persons= [1311, 1312, 1313]
+--- sas= [] onedah_slice1307 crp= 1
+--- 'expires': 1167127263
+1309 None onedai_slice1308 nodes= [1308, 1309, 1310, 4308, 4309, 4310] persons= [1312, 1313, 1314]
+--- sas= [] onedai_slice1308 crp= 1
+--- 'expires': 1167127264
+1310 None onedaj_slice1309 nodes= [1309, 1310, 1311, 4309, 4310, 4311] persons= [1313, 1314, 1315]
+--- sas= [] onedaj_slice1309 crp= 1
+--- 'expires': 1167127266
+1311 None onedba_slice1310 nodes= [1310, 1311, 1312, 4310, 4311, 4312] persons= [1314, 1315, 1316]
+--- sas= [] onedba_slice1310 crp= 1
+--- 'expires': 1167127267
+1312 None onedbb_slice1311 nodes= [1311, 1312, 1313, 4311, 4312, 4313] persons= [1315, 1316, 1317]
+--- sas= [] onedbb_slice1311 crp= 1
+--- 'expires': 1167127269
+1313 None onedbc_slice1312 nodes= [1312, 1313, 1314, 4312, 4313, 4314] persons= [1316, 1317, 1318]
+--- sas= [] onedbc_slice1312 crp= 1
+--- 'expires': 1167127270
+1314 None onedbd_slice1313 nodes= [1313, 1314, 1315, 4313, 4314, 4315] persons= [1317, 1318, 1319]
+--- sas= [] onedbd_slice1313 crp= 1
+--- 'expires': 1167127271
+1315 None onedbe_slice1314 nodes= [1314, 1315, 1316, 4314, 4315, 4316] persons= [1318, 1319, 1320]
+--- sas= [] onedbe_slice1314 crp= 1
+--- 'expires': 1167127273
+1316 None onedbf_slice1315 nodes= [1315, 1316, 1317, 4315, 4316, 4317] persons= [1319, 1320, 1321]
+--- sas= [] onedbf_slice1315 crp= 1
+--- 'expires': 1167127274
+1317 None onedbg_slice1316 nodes= [1316, 1317, 1318, 4316, 4317, 4318] persons= [1320, 1321, 1322]
+--- sas= [] onedbg_slice1316 crp= 1
+--- 'expires': 1167127276
+1318 None onedbh_slice1317 nodes= [1317, 1318, 1319, 4317, 4318, 4319] persons= [1321, 1322, 1323]
+--- sas= [] onedbh_slice1317 crp= 1
+--- 'expires': 1167127277
+1319 None onedbi_slice1318 nodes= [1318, 1319, 1320, 4318, 4319, 4320] persons= [1322, 1323, 1324]
+--- sas= [] onedbi_slice1318 crp= 1
+--- 'expires': 1167127278
+1320 None onedbj_slice1319 nodes= [1319, 1320, 1321, 4319, 4320, 4321] persons= [1323, 1324, 1325]
+--- sas= [] onedbj_slice1319 crp= 1
+--- 'expires': 1167127280
+1321 None onedca_slice1320 nodes= [1320, 1321, 1322, 4320, 4321, 4322] persons= [1324, 1325, 1326]
+--- sas= [] onedca_slice1320 crp= 1
+--- 'expires': 1167127281
+1322 None onedcb_slice1321 nodes= [1321, 1322, 1323, 4321, 4322, 4323] persons= [1325, 1326, 1327]
+--- sas= [] onedcb_slice1321 crp= 1
+--- 'expires': 1167127283
+1323 None onedcc_slice1322 nodes= [1322, 1323, 1324, 4322, 4323, 4324] persons= [1326, 1327, 1328]
+--- sas= [] onedcc_slice1322 crp= 1
+--- 'expires': 1167127284
+1324 None onedcd_slice1323 nodes= [1323, 1324, 1325, 4323, 4324, 4325] persons= [1327, 1328, 1329]
+--- sas= [] onedcd_slice1323 crp= 1
+--- 'expires': 1167127285
+1325 None onedce_slice1324 nodes= [1324, 1325, 1326, 4324, 4325, 4326] persons= [1328, 1329, 1330]
+--- sas= [] onedce_slice1324 crp= 1
+--- 'expires': 1167127287
+1326 None onedcf_slice1325 nodes= [1325, 1326, 1327, 4325, 4326, 4327] persons= [1329, 1330, 1331]
+--- sas= [] onedcf_slice1325 crp= 1
+--- 'expires': 1167127288
+1327 None onedcg_slice1326 nodes= [1326, 1327, 1328, 4326, 4327, 4328] persons= [1330, 1331, 1332]
+--- sas= [] onedcg_slice1326 crp= 1
+--- 'expires': 1167127290
+1328 None onedch_slice1327 nodes= [1327, 1328, 1329, 4327, 4328, 4329] persons= [1331, 1332, 1333]
+--- sas= [] onedch_slice1327 crp= 1
+--- 'expires': 1167127291
+1329 None onedci_slice1328 nodes= [1328, 1329, 1330, 4328, 4329, 4330] persons= [1332, 1333, 1334]
+--- sas= [] onedci_slice1328 crp= 1
+--- 'expires': 1167127293
+1330 None onedcj_slice1329 nodes= [1329, 1330, 1331, 4329, 4330, 4331] persons= [1333, 1334, 1335]
+--- sas= [] onedcj_slice1329 crp= 1
+--- 'expires': 1167127294
+1331 None onedda_slice1330 nodes= [1330, 1331, 1332, 4330, 4331, 4332] persons= [1334, 1335, 1336]
+--- sas= [] onedda_slice1330 crp= 1
+--- 'expires': 1167127296
+1332 None oneddb_slice1331 nodes= [1331, 1332, 1333, 4331, 4332, 4333] persons= [1335, 1336, 1337]
+--- sas= [] oneddb_slice1331 crp= 1
+--- 'expires': 1167127297
+1333 None oneddc_slice1332 nodes= [1332, 1333, 1334, 4332, 4333, 4334] persons= [1336, 1337, 1338]
+--- sas= [] oneddc_slice1332 crp= 1
+--- 'expires': 1167127298
+1334 None oneddd_slice1333 nodes= [1333, 1334, 1335, 4333, 4334, 4335] persons= [1337, 1338, 1339]
+--- sas= [] oneddd_slice1333 crp= 1
+--- 'expires': 1167127300
+1335 None onedde_slice1334 nodes= [1334, 1335, 1336, 4334, 4335, 4336] persons= [1338, 1339, 1340]
+--- sas= [] onedde_slice1334 crp= 1
+--- 'expires': 1167127301
+1336 None oneddf_slice1335 nodes= [1335, 1336, 1337, 4335, 4336, 4337] persons= [1339, 1340, 1341]
+--- sas= [] oneddf_slice1335 crp= 1
+--- 'expires': 1167127303
+1337 None oneddg_slice1336 nodes= [1336, 1337, 1338, 4336, 4337, 4338] persons= [1340, 1341, 1342]
+--- sas= [] oneddg_slice1336 crp= 1
+--- 'expires': 1167127304
+1338 None oneddh_slice1337 nodes= [1337, 1338, 1339, 4337, 4338, 4339] persons= [1341, 1342, 1343]
+--- sas= [] oneddh_slice1337 crp= 1
+--- 'expires': 1167127305
+1339 None oneddi_slice1338 nodes= [1338, 1339, 1340, 4338, 4339, 4340] persons= [1342, 1343, 1344]
+--- sas= [] oneddi_slice1338 crp= 1
+--- 'expires': 1167127307
+1340 None oneddj_slice1339 nodes= [1339, 1340, 1341, 4339, 4340, 4341] persons= [1343, 1344, 1345]
+--- sas= [] oneddj_slice1339 crp= 1
+--- 'expires': 1167127308
+1341 None onedea_slice1340 nodes= [1340, 1341, 1342, 4340, 4341, 4342] persons= [1344, 1345, 1346]
+--- sas= [] onedea_slice1340 crp= 1
+--- 'expires': 1167127310
+1342 None onedeb_slice1341 nodes= [1341, 1342, 1343, 4341, 4342, 4343] persons= [1345, 1346, 1347]
+--- sas= [] onedeb_slice1341 crp= 1
+--- 'expires': 1167127311
+1343 None onedec_slice1342 nodes= [1342, 1343, 1344, 4342, 4343, 4344] persons= [1346, 1347, 1348]
+--- sas= [] onedec_slice1342 crp= 1
+--- 'expires': 1167127313
+1344 None oneded_slice1343 nodes= [1343, 1344, 1345, 4343, 4344, 4345] persons= [1347, 1348, 1349]
+--- sas= [] oneded_slice1343 crp= 1
+--- 'expires': 1167127314
+1345 None onedee_slice1344 nodes= [1344, 1345, 1346, 4344, 4345, 4346] persons= [1348, 1349, 1350]
+--- sas= [] onedee_slice1344 crp= 1
+--- 'expires': 1167127315
+1346 None onedef_slice1345 nodes= [1345, 1346, 1347, 4345, 4346, 4347] persons= [1349, 1350, 1351]
+--- sas= [] onedef_slice1345 crp= 1
+--- 'expires': 1167127317
+1347 None onedeg_slice1346 nodes= [1346, 1347, 1348, 4346, 4347, 4348] persons= [1350, 1351, 1352]
+--- sas= [] onedeg_slice1346 crp= 1
+--- 'expires': 1167127318
+1348 None onedeh_slice1347 nodes= [1347, 1348, 1349, 4347, 4348, 4349] persons= [1351, 1352, 1353]
+--- sas= [] onedeh_slice1347 crp= 1
+--- 'expires': 1167127320
+1349 None onedei_slice1348 nodes= [1348, 1349, 1350, 4348, 4349, 4350] persons= [1352, 1353, 1354]
+--- sas= [] onedei_slice1348 crp= 1
+--- 'expires': 1167127321
+1350 None onedej_slice1349 nodes= [1349, 1350, 1351, 4349, 4350, 4351] persons= [1353, 1354, 1355]
+--- sas= [] onedej_slice1349 crp= 1
+--- 'expires': 1167127323
+1351 None onedfa_slice1350 nodes= [1350, 1351, 1352, 4350, 4351, 4352] persons= [1354, 1355, 1356]
+--- sas= [] onedfa_slice1350 crp= 1
+--- 'expires': 1167127324
+1352 None onedfb_slice1351 nodes= [1351, 1352, 1353, 4351, 4352, 4353] persons= [1355, 1356, 1357]
+--- sas= [] onedfb_slice1351 crp= 1
+--- 'expires': 1167127325
+1353 None onedfc_slice1352 nodes= [1352, 1353, 1354, 4352, 4353, 4354] persons= [1356, 1357, 1358]
+--- sas= [] onedfc_slice1352 crp= 1
+--- 'expires': 1167127327
+1354 None onedfd_slice1353 nodes= [1353, 1354, 1355, 4353, 4354, 4355] persons= [1357, 1358, 1359]
+--- sas= [] onedfd_slice1353 crp= 1
+--- 'expires': 1167127328
+1355 None onedfe_slice1354 nodes= [1354, 1355, 1356, 4354, 4355, 4356] persons= [1358, 1359, 1360]
+--- sas= [] onedfe_slice1354 crp= 1
+--- 'expires': 1167127330
+1356 None onedff_slice1355 nodes= [1355, 1356, 1357, 4355, 4356, 4357] persons= [1359, 1360, 1361]
+--- sas= [] onedff_slice1355 crp= 1
+--- 'expires': 1167127331
+1357 None onedfg_slice1356 nodes= [1356, 1357, 1358, 4356, 4357, 4358] persons= [1360, 1361, 1362]
+--- sas= [] onedfg_slice1356 crp= 1
+--- 'expires': 1167127332
+1358 None onedfh_slice1357 nodes= [1357, 1358, 1359, 4357, 4358, 4359] persons= [1361, 1362, 1363]
+--- sas= [] onedfh_slice1357 crp= 1
+--- 'expires': 1167127334
+1359 None onedfi_slice1358 nodes= [1358, 1359, 1360, 4358, 4359, 4360] persons= [1362, 1363, 1364]
+--- sas= [] onedfi_slice1358 crp= 1
+--- 'expires': 1167127335
+1360 None onedfj_slice1359 nodes= [1359, 1360, 1361, 4359, 4360, 4361] persons= [1363, 1364, 1365]
+--- sas= [] onedfj_slice1359 crp= 1
+--- 'expires': 1167127337
+1361 None onedga_slice1360 nodes= [1360, 1361, 1362, 4360, 4361, 4362] persons= [1364, 1365, 1366]
+--- sas= [] onedga_slice1360 crp= 1
+--- 'expires': 1167127338
+1362 None onedgb_slice1361 nodes= [1361, 1362, 1363, 4361, 4362, 4363] persons= [1365, 1366, 1367]
+--- sas= [] onedgb_slice1361 crp= 1
+--- 'expires': 1167127340
+1363 None onedgc_slice1362 nodes= [1362, 1363, 1364, 4362, 4363, 4364] persons= [1366, 1367, 1368]
+--- sas= [] onedgc_slice1362 crp= 1
+--- 'expires': 1167127341
+1364 None onedgd_slice1363 nodes= [1363, 1364, 1365, 4363, 4364, 4365] persons= [1367, 1368, 1369]
+--- sas= [] onedgd_slice1363 crp= 1
+--- 'expires': 1167127343
+1365 None onedge_slice1364 nodes= [1364, 1365, 1366, 4364, 4365, 4366] persons= [1368, 1369, 1370]
+--- sas= [] onedge_slice1364 crp= 1
+--- 'expires': 1167127344
+1366 None onedgf_slice1365 nodes= [1365, 1366, 1367, 4365, 4366, 4367] persons= [1369, 1370, 1371]
+--- sas= [] onedgf_slice1365 crp= 1
+--- 'expires': 1167127346
+1367 None onedgg_slice1366 nodes= [1366, 1367, 1368, 4366, 4367, 4368] persons= [1370, 1371, 1372]
+--- sas= [] onedgg_slice1366 crp= 1
+--- 'expires': 1167127347
+1368 None onedgh_slice1367 nodes= [1367, 1368, 1369, 4367, 4368, 4369] persons= [1371, 1372, 1373]
+--- sas= [] onedgh_slice1367 crp= 1
+--- 'expires': 1167127349
+1369 None onedgi_slice1368 nodes= [1368, 1369, 1370, 4368, 4369, 4370] persons= [1372, 1373, 1374]
+--- sas= [] onedgi_slice1368 crp= 1
+--- 'expires': 1167127350
+1370 None onedgj_slice1369 nodes= [1369, 1370, 1371, 4369, 4370, 4371] persons= [1373, 1374, 1375]
+--- sas= [] onedgj_slice1369 crp= 1
+--- 'expires': 1167127352
+1371 None onedha_slice1370 nodes= [1370, 1371, 1372, 4370, 4371, 4372] persons= [1374, 1375, 1376]
+--- sas= [] onedha_slice1370 crp= 1
+--- 'expires': 1167127353
+1372 None onedhb_slice1371 nodes= [1371, 1372, 1373, 4371, 4372, 4373] persons= [1375, 1376, 1377]
+--- sas= [] onedhb_slice1371 crp= 1
+--- 'expires': 1167127355
+1373 None onedhc_slice1372 nodes= [1372, 1373, 1374, 4372, 4373, 4374] persons= [1376, 1377, 1378]
+--- sas= [] onedhc_slice1372 crp= 1
+--- 'expires': 1167127356
+1374 None onedhd_slice1373 nodes= [1373, 1374, 1375, 4373, 4374, 4375] persons= [1377, 1378, 1379]
+--- sas= [] onedhd_slice1373 crp= 1
+--- 'expires': 1167127357
+1375 None onedhe_slice1374 nodes= [1374, 1375, 1376, 4374, 4375, 4376] persons= [1378, 1379, 1380]
+--- sas= [] onedhe_slice1374 crp= 1
+--- 'expires': 1167127359
+1376 None onedhf_slice1375 nodes= [1375, 1376, 1377, 4375, 4376, 4377] persons= [1379, 1380, 1381]
+--- sas= [] onedhf_slice1375 crp= 1
+--- 'expires': 1167127360
+1377 None onedhg_slice1376 nodes= [1376, 1377, 1378, 4376, 4377, 4378] persons= [1380, 1381, 1382]
+--- sas= [] onedhg_slice1376 crp= 1
+--- 'expires': 1167127362
+1378 None onedhh_slice1377 nodes= [1377, 1378, 1379, 4377, 4378, 4379] persons= [1381, 1382, 1383]
+--- sas= [] onedhh_slice1377 crp= 1
+--- 'expires': 1167127363
+1379 None onedhi_slice1378 nodes= [1378, 1379, 1380, 4378, 4379, 4380] persons= [1382, 1383, 1384]
+--- sas= [] onedhi_slice1378 crp= 1
+--- 'expires': 1167127365
+1380 None onedhj_slice1379 nodes= [1379, 1380, 1381, 4379, 4380, 4381] persons= [1383, 1384, 1385]
+--- sas= [] onedhj_slice1379 crp= 1
+--- 'expires': 1167127366
+1381 None onedia_slice1380 nodes= [1380, 1381, 1382, 4380, 4381, 4382] persons= [1384, 1385, 1386]
+--- sas= [] onedia_slice1380 crp= 1
+--- 'expires': 1167127368
+1382 None onedib_slice1381 nodes= [1381, 1382, 1383, 4381, 4382, 4383] persons= [1385, 1386, 1387]
+--- sas= [] onedib_slice1381 crp= 1
+--- 'expires': 1167127369
+1383 None onedic_slice1382 nodes= [1382, 1383, 1384, 4382, 4383, 4384] persons= [1386, 1387, 1388]
+--- sas= [] onedic_slice1382 crp= 1
+--- 'expires': 1167127371
+1384 None onedid_slice1383 nodes= [1383, 1384, 1385, 4383, 4384, 4385] persons= [1387, 1388, 1389]
+--- sas= [] onedid_slice1383 crp= 1
+--- 'expires': 1167127372
+1385 None onedie_slice1384 nodes= [1384, 1385, 1386, 4384, 4385, 4386] persons= [1388, 1389, 1390]
+--- sas= [] onedie_slice1384 crp= 1
+--- 'expires': 1167127374
+1386 None onedif_slice1385 nodes= [1385, 1386, 1387, 4385, 4386, 4387] persons= [1389, 1390, 1391]
+--- sas= [] onedif_slice1385 crp= 1
+--- 'expires': 1167127375
+1387 None onedig_slice1386 nodes= [1386, 1387, 1388, 4386, 4387, 4388] persons= [1390, 1391, 1392]
+--- sas= [] onedig_slice1386 crp= 1
+--- 'expires': 1167127376
+1388 None onedih_slice1387 nodes= [1387, 1388, 1389, 4387, 4388, 4389] persons= [1391, 1392, 1393]
+--- sas= [] onedih_slice1387 crp= 1
+--- 'expires': 1167127378
+1389 None onedii_slice1388 nodes= [1388, 1389, 1390, 4388, 4389, 4390] persons= [1392, 1393, 1394]
+--- sas= [] onedii_slice1388 crp= 1
+--- 'expires': 1167127379
+1390 None onedij_slice1389 nodes= [1389, 1390, 1391, 4389, 4390, 4391] persons= [1393, 1394, 1395]
+--- sas= [] onedij_slice1389 crp= 1
+--- 'expires': 1167127381
+1391 None onedja_slice1390 nodes= [1390, 1391, 1392, 4390, 4391, 4392] persons= [1394, 1395, 1396]
+--- sas= [] onedja_slice1390 crp= 1
+--- 'expires': 1167127382
+1392 None onedjb_slice1391 nodes= [1391, 1392, 1393, 4391, 4392, 4393] persons= [1395, 1396, 1397]
+--- sas= [] onedjb_slice1391 crp= 1
+--- 'expires': 1167127384
+1393 None onedjc_slice1392 nodes= [1392, 1393, 1394, 4392, 4393, 4394] persons= [1396, 1397, 1398]
+--- sas= [] onedjc_slice1392 crp= 1
+--- 'expires': 1167127385
+1394 None onedjd_slice1393 nodes= [1393, 1394, 1395, 4393, 4394, 4395] persons= [1397, 1398, 1399]
+--- sas= [] onedjd_slice1393 crp= 1
+--- 'expires': 1167127387
+1395 None onedje_slice1394 nodes= [1394, 1395, 1396, 4394, 4395, 4396] persons= [1398, 1399, 1400]
+--- sas= [] onedje_slice1394 crp= 1
+--- 'expires': 1167127388
+1396 None onedjf_slice1395 nodes= [1395, 1396, 1397, 4395, 4396, 4397] persons= [1399, 1400, 1401]
+--- sas= [] onedjf_slice1395 crp= 1
+--- 'expires': 1167127389
+1397 None onedjg_slice1396 nodes= [1396, 1397, 1398, 4396, 4397, 4398] persons= [1400, 1401, 1402]
+--- sas= [] onedjg_slice1396 crp= 1
+--- 'expires': 1167127391
+1398 None onedjh_slice1397 nodes= [1397, 1398, 1399, 4397, 4398, 4399] persons= [1401, 1402, 1403]
+--- sas= [] onedjh_slice1397 crp= 1
+--- 'expires': 1167127392
+1399 None onedji_slice1398 nodes= [1398, 1399, 1400, 4398, 4399, 4400] persons= [1402, 1403, 1404]
+--- sas= [] onedji_slice1398 crp= 1
+--- 'expires': 1167127394
+1400 None onedjj_slice1399 nodes= [1399, 1400, 1401, 4399, 4400, 4401] persons= [1403, 1404, 1405]
+--- sas= [] onedjj_slice1399 crp= 1
+--- 'expires': 1167127395
+1401 None oneeaa_slice1400 nodes= [1400, 1401, 1402, 4400, 4401, 4402] persons= [1404, 1405, 1406]
+--- sas= [] oneeaa_slice1400 crp= 1
+--- 'expires': 1167127397
+1402 None oneeab_slice1401 nodes= [1401, 1402, 1403, 4401, 4402, 4403] persons= [1405, 1406, 1407]
+--- sas= [] oneeab_slice1401 crp= 1
+--- 'expires': 1167127398
+1403 None oneeac_slice1402 nodes= [1402, 1403, 1404, 4402, 4403, 4404] persons= [1406, 1407, 1408]
+--- sas= [] oneeac_slice1402 crp= 1
+--- 'expires': 1167127400
+1404 None oneead_slice1403 nodes= [1403, 1404, 1405, 4403, 4404, 4405] persons= [1407, 1408, 1409]
+--- sas= [] oneead_slice1403 crp= 1
+--- 'expires': 1167127401
+1405 None oneeae_slice1404 nodes= [1404, 1405, 1406, 4404, 4405, 4406] persons= [1408, 1409, 1410]
+--- sas= [] oneeae_slice1404 crp= 1
+--- 'expires': 1167127403
+1406 None oneeaf_slice1405 nodes= [1405, 1406, 1407, 4405, 4406, 4407] persons= [1409, 1410, 1411]
+--- sas= [] oneeaf_slice1405 crp= 1
+--- 'expires': 1167127404
+1407 None oneeag_slice1406 nodes= [1406, 1407, 1408, 4406, 4407, 4408] persons= [1410, 1411, 1412]
+--- sas= [] oneeag_slice1406 crp= 1
+--- 'expires': 1167127406
+1408 None oneeah_slice1407 nodes= [1407, 1408, 1409, 4407, 4408, 4409] persons= [1411, 1412, 1413]
+--- sas= [] oneeah_slice1407 crp= 1
+--- 'expires': 1167127407
+1409 None oneeai_slice1408 nodes= [1408, 1409, 1410, 4408, 4409, 4410] persons= [1412, 1413, 1414]
+--- sas= [] oneeai_slice1408 crp= 1
+--- 'expires': 1167127409
+1410 None oneeaj_slice1409 nodes= [1409, 1410, 1411, 4409, 4410, 4411] persons= [1413, 1414, 1415]
+--- sas= [] oneeaj_slice1409 crp= 1
+--- 'expires': 1167127410
+1411 None oneeba_slice1410 nodes= [1410, 1411, 1412, 4410, 4411, 4412] persons= [1414, 1415, 1416]
+--- sas= [] oneeba_slice1410 crp= 1
+--- 'expires': 1167127411
+1412 None oneebb_slice1411 nodes= [1411, 1412, 1413, 4411, 4412, 4413] persons= [1415, 1416, 1417]
+--- sas= [] oneebb_slice1411 crp= 1
+--- 'expires': 1167127413
+1413 None oneebc_slice1412 nodes= [1412, 1413, 1414, 4412, 4413, 4414] persons= [1416, 1417, 1418]
+--- sas= [] oneebc_slice1412 crp= 1
+--- 'expires': 1167127414
+1414 None oneebd_slice1413 nodes= [1413, 1414, 1415, 4413, 4414, 4415] persons= [1417, 1418, 1419]
+--- sas= [] oneebd_slice1413 crp= 1
+--- 'expires': 1167127416
+1415 None oneebe_slice1414 nodes= [1414, 1415, 1416, 4414, 4415, 4416] persons= [1418, 1419, 1420]
+--- sas= [] oneebe_slice1414 crp= 1
+--- 'expires': 1167127417
+1416 None oneebf_slice1415 nodes= [1415, 1416, 1417, 4415, 4416, 4417] persons= [1419, 1420, 1421]
+--- sas= [] oneebf_slice1415 crp= 1
+--- 'expires': 1167127418
+1417 None oneebg_slice1416 nodes= [1416, 1417, 1418, 4416, 4417, 4418] persons= [1420, 1421, 1422]
+--- sas= [] oneebg_slice1416 crp= 1
+--- 'expires': 1167127418
+1418 None oneebh_slice1417 nodes= [1417, 1418, 1419, 4417, 4418, 4419] persons= [1421, 1422, 1423]
+--- sas= [] oneebh_slice1417 crp= 1
+--- 'expires': 1167127419
+1419 None oneebi_slice1418 nodes= [1418, 1419, 1420, 4418, 4419, 4420] persons= [1422, 1423, 1424]
+--- sas= [] oneebi_slice1418 crp= 1
+--- 'expires': 1167127419
+1420 None oneebj_slice1419 nodes= [1419, 1420, 1421, 4419, 4420, 4421] persons= [1423, 1424, 1425]
+--- sas= [] oneebj_slice1419 crp= 1
+--- 'expires': 1167127420
+1421 None oneeca_slice1420 nodes= [1420, 1421, 1422, 4420, 4421, 4422] persons= [1424, 1425, 1426]
+--- sas= [] oneeca_slice1420 crp= 1
+--- 'expires': 1167127420
+1422 None oneecb_slice1421 nodes= [1421, 1422, 1423, 4421, 4422, 4423] persons= [1425, 1426, 1427]
+--- sas= [] oneecb_slice1421 crp= 1
+--- 'expires': 1167127421
+1423 None oneecc_slice1422 nodes= [1422, 1423, 1424, 4422, 4423, 4424] persons= [1426, 1427, 1428]
+--- sas= [] oneecc_slice1422 crp= 1
+--- 'expires': 1167127421
+1424 None oneecd_slice1423 nodes= [1423, 1424, 1425, 4423, 4424, 4425] persons= [1427, 1428, 1429]
+--- sas= [] oneecd_slice1423 crp= 1
+--- 'expires': 1167127422
+1425 None oneece_slice1424 nodes= [1424, 1425, 1426, 4424, 4425, 4426] persons= [1428, 1429, 1430]
+--- sas= [] oneece_slice1424 crp= 1
+--- 'expires': 1167127422
+1426 None oneecf_slice1425 nodes= [1425, 1426, 1427, 4425, 4426, 4427] persons= [1429, 1430, 1431]
+--- sas= [] oneecf_slice1425 crp= 1
+--- 'expires': 1167127422
+1427 None oneecg_slice1426 nodes= [1426, 1427, 1428, 4426, 4427, 4428] persons= [1430, 1431, 1432]
+--- sas= [] oneecg_slice1426 crp= 1
+--- 'expires': 1167127423
+1428 None oneech_slice1427 nodes= [1427, 1428, 1429, 4427, 4428, 4429] persons= [1431, 1432, 1433]
+--- sas= [] oneech_slice1427 crp= 1
+--- 'expires': 1167127423
+1429 None oneeci_slice1428 nodes= [1428, 1429, 1430, 4428, 4429, 4430] persons= [1432, 1433, 1434]
+--- sas= [] oneeci_slice1428 crp= 1
+--- 'expires': 1167127424
+1430 None oneecj_slice1429 nodes= [1429, 1430, 1431, 4429, 4430, 4431] persons= [1433, 1434, 1435]
+--- sas= [] oneecj_slice1429 crp= 1
+--- 'expires': 1167127424
+1431 None oneeda_slice1430 nodes= [1430, 1431, 1432, 4430, 4431, 4432] persons= [1434, 1435, 1436]
+--- sas= [] oneeda_slice1430 crp= 1
+--- 'expires': 1167127425
+1432 None oneedb_slice1431 nodes= [1431, 1432, 1433, 4431, 4432, 4433] persons= [1435, 1436, 1437]
+--- sas= [] oneedb_slice1431 crp= 1
+--- 'expires': 1167127425
+1433 None oneedc_slice1432 nodes= [1432, 1433, 1434, 4432, 4433, 4434] persons= [1436, 1437, 1438]
+--- sas= [] oneedc_slice1432 crp= 1
+--- 'expires': 1167127426
+1434 None oneedd_slice1433 nodes= [1433, 1434, 1435, 4433, 4434, 4435] persons= [1437, 1438, 1439]
+--- sas= [] oneedd_slice1433 crp= 1
+--- 'expires': 1167127426
+1435 None oneede_slice1434 nodes= [1434, 1435, 1436, 4434, 4435, 4436] persons= [1438, 1439, 1440]
+--- sas= [] oneede_slice1434 crp= 1
+--- 'expires': 1167127426
+1436 None oneedf_slice1435 nodes= [1435, 1436, 1437, 4435, 4436, 4437] persons= [1439, 1440, 1441]
+--- sas= [] oneedf_slice1435 crp= 1
+--- 'expires': 1167127427
+1437 None oneedg_slice1436 nodes= [1436, 1437, 1438, 4436, 4437, 4438] persons= [1440, 1441, 1442]
+--- sas= [] oneedg_slice1436 crp= 1
+--- 'expires': 1167127427
+1438 None oneedh_slice1437 nodes= [1437, 1438, 1439, 4437, 4438, 4439] persons= [1441, 1442, 1443]
+--- sas= [] oneedh_slice1437 crp= 1
+--- 'expires': 1167127428
+1439 None oneedi_slice1438 nodes= [1438, 1439, 1440, 4438, 4439, 4440] persons= [1442, 1443, 1444]
+--- sas= [] oneedi_slice1438 crp= 1
+--- 'expires': 1167127428
+1440 None oneedj_slice1439 nodes= [1439, 1440, 1441, 4439, 4440, 4441] persons= [1443, 1444, 1445]
+--- sas= [] oneedj_slice1439 crp= 1
+--- 'expires': 1167127429
+1441 None oneeea_slice1440 nodes= [1440, 1441, 1442, 4440, 4441, 4442] persons= [1444, 1445, 1446]
+--- sas= [] oneeea_slice1440 crp= 1
+--- 'expires': 1167127429
+1442 None oneeeb_slice1441 nodes= [1441, 1442, 1443, 4441, 4442, 4443] persons= [1445, 1446, 1447]
+--- sas= [] oneeeb_slice1441 crp= 1
+--- 'expires': 1167127430
+1443 None oneeec_slice1442 nodes= [1442, 1443, 1444, 4442, 4443, 4444] persons= [1446, 1447, 1448]
+--- sas= [] oneeec_slice1442 crp= 1
+--- 'expires': 1167127430
+1444 None oneeed_slice1443 nodes= [1443, 1444, 1445, 4443, 4444, 4445] persons= [1447, 1448, 1449]
+--- sas= [] oneeed_slice1443 crp= 1
+--- 'expires': 1167127430
+1445 None oneeee_slice1444 nodes= [1444, 1445, 1446, 4444, 4445, 4446] persons= [1448, 1449, 1450]
+--- sas= [] oneeee_slice1444 crp= 1
+--- 'expires': 1167127431
+1446 None oneeef_slice1445 nodes= [1445, 1446, 1447, 4445, 4446, 4447] persons= [1449, 1450, 1451]
+--- sas= [] oneeef_slice1445 crp= 1
+--- 'expires': 1167127431
+1447 None oneeeg_slice1446 nodes= [1446, 1447, 1448, 4446, 4447, 4448] persons= [1450, 1451, 1452]
+--- sas= [] oneeeg_slice1446 crp= 1
+--- 'expires': 1167127432
+1448 None oneeeh_slice1447 nodes= [1447, 1448, 1449, 4447, 4448, 4449] persons= [1451, 1452, 1453]
+--- sas= [] oneeeh_slice1447 crp= 1
+--- 'expires': 1167127432
+1449 None oneeei_slice1448 nodes= [1448, 1449, 1450, 4448, 4449, 4450] persons= [1452, 1453, 1454]
+--- sas= [] oneeei_slice1448 crp= 1
+--- 'expires': 1167127433
+1450 None oneeej_slice1449 nodes= [1449, 1450, 1451, 4449, 4450, 4451] persons= [1453, 1454, 1455]
+--- sas= [] oneeej_slice1449 crp= 1
+--- 'expires': 1167127433
+1451 None oneefa_slice1450 nodes= [1450, 1451, 1452, 4450, 4451, 4452] persons= [1454, 1455, 1456]
+--- sas= [] oneefa_slice1450 crp= 1
+--- 'expires': 1167127433
+1452 None oneefb_slice1451 nodes= [1451, 1452, 1453, 4451, 4452, 4453] persons= [1455, 1456, 1457]
+--- sas= [] oneefb_slice1451 crp= 1
+--- 'expires': 1167127434
+1453 None oneefc_slice1452 nodes= [1452, 1453, 1454, 4452, 4453, 4454] persons= [1456, 1457, 1458]
+--- sas= [] oneefc_slice1452 crp= 1
+--- 'expires': 1167127434
+1454 None oneefd_slice1453 nodes= [1453, 1454, 1455, 4453, 4454, 4455] persons= [1457, 1458, 1459]
+--- sas= [] oneefd_slice1453 crp= 1
+--- 'expires': 1167127435
+1455 None oneefe_slice1454 nodes= [1454, 1455, 1456, 4454, 4455, 4456] persons= [1458, 1459, 1460]
+--- sas= [] oneefe_slice1454 crp= 1
+--- 'expires': 1167127435
+1456 None oneeff_slice1455 nodes= [1455, 1456, 1457, 4455, 4456, 4457] persons= [1459, 1460, 1461]
+--- sas= [] oneeff_slice1455 crp= 1
+--- 'expires': 1167127436
+1457 None oneefg_slice1456 nodes= [1456, 1457, 1458, 4456, 4457, 4458] persons= [1460, 1461, 1462]
+--- sas= [] oneefg_slice1456 crp= 1
+--- 'expires': 1167127436
+1458 None oneefh_slice1457 nodes= [1457, 1458, 1459, 4457, 4458, 4459] persons= [1461, 1462, 1463]
+--- sas= [] oneefh_slice1457 crp= 1
+--- 'expires': 1167127436
+1459 None oneefi_slice1458 nodes= [1458, 1459, 1460, 4458, 4459, 4460] persons= [1462, 1463, 1464]
+--- sas= [] oneefi_slice1458 crp= 1
+--- 'expires': 1167127437
+1460 None oneefj_slice1459 nodes= [1459, 1460, 1461, 4459, 4460, 4461] persons= [1463, 1464, 1465]
+--- sas= [] oneefj_slice1459 crp= 1
+--- 'expires': 1167127437
+1461 None oneega_slice1460 nodes= [1460, 1461, 1462, 4460, 4461, 4462] persons= [1464, 1465, 1466]
+--- sas= [] oneega_slice1460 crp= 1
+--- 'expires': 1167127438
+1462 None oneegb_slice1461 nodes= [1461, 1462, 1463, 4461, 4462, 4463] persons= [1465, 1466, 1467]
+--- sas= [] oneegb_slice1461 crp= 1
+--- 'expires': 1167127438
+1463 None oneegc_slice1462 nodes= [1462, 1463, 1464, 4462, 4463, 4464] persons= [1466, 1467, 1468]
+--- sas= [] oneegc_slice1462 crp= 1
+--- 'expires': 1167127439
+1464 None oneegd_slice1463 nodes= [1463, 1464, 1465, 4463, 4464, 4465] persons= [1467, 1468, 1469]
+--- sas= [] oneegd_slice1463 crp= 1
+--- 'expires': 1167127439
+1465 None oneege_slice1464 nodes= [1464, 1465, 1466, 4464, 4465, 4466] persons= [1468, 1469, 1470]
+--- sas= [] oneege_slice1464 crp= 1
+--- 'expires': 1167127439
+1466 None oneegf_slice1465 nodes= [1465, 1466, 1467, 4465, 4466, 4467] persons= [1469, 1470, 1471]
+--- sas= [] oneegf_slice1465 crp= 1
+--- 'expires': 1167127440
+1467 None oneegg_slice1466 nodes= [1466, 1467, 1468, 4466, 4467, 4468] persons= [1470, 1471, 1472]
+--- sas= [] oneegg_slice1466 crp= 1
+--- 'expires': 1167127440
+1468 None oneegh_slice1467 nodes= [1467, 1468, 1469, 4467, 4468, 4469] persons= [1471, 1472, 1473]
+--- sas= [] oneegh_slice1467 crp= 1
+--- 'expires': 1167127441
+1469 None oneegi_slice1468 nodes= [1468, 1469, 1470, 4468, 4469, 4470] persons= [1472, 1473, 1474]
+--- sas= [] oneegi_slice1468 crp= 1
+--- 'expires': 1167127441
+1470 None oneegj_slice1469 nodes= [1469, 1470, 1471, 4469, 4470, 4471] persons= [1473, 1474, 1475]
+--- sas= [] oneegj_slice1469 crp= 1
+--- 'expires': 1167127442
+1471 None oneeha_slice1470 nodes= [1470, 1471, 1472, 4470, 4471, 4472] persons= [1474, 1475, 1476]
+--- sas= [] oneeha_slice1470 crp= 1
+--- 'expires': 1167127442
+1472 None oneehb_slice1471 nodes= [1471, 1472, 1473, 4471, 4472, 4473] persons= [1475, 1476, 1477]
+--- sas= [] oneehb_slice1471 crp= 1
+--- 'expires': 1167127442
+1473 None oneehc_slice1472 nodes= [1472, 1473, 1474, 4472, 4473, 4474] persons= [1476, 1477, 1478]
+--- sas= [] oneehc_slice1472 crp= 1
+--- 'expires': 1167127443
+1474 None oneehd_slice1473 nodes= [1473, 1474, 1475, 4473, 4474, 4475] persons= [1477, 1478, 1479]
+--- sas= [] oneehd_slice1473 crp= 1
+--- 'expires': 1167127443
+1475 None oneehe_slice1474 nodes= [1474, 1475, 1476, 4474, 4475, 4476] persons= [1478, 1479, 1480]
+--- sas= [] oneehe_slice1474 crp= 1
+--- 'expires': 1167127444
+1476 None oneehf_slice1475 nodes= [1475, 1476, 1477, 4475, 4476, 4477] persons= [1479, 1480, 1481]
+--- sas= [] oneehf_slice1475 crp= 1
+--- 'expires': 1167127444
+1477 None oneehg_slice1476 nodes= [1476, 1477, 1478, 4476, 4477, 4478] persons= [1480, 1481, 1482]
+--- sas= [] oneehg_slice1476 crp= 1
+--- 'expires': 1167127445
+1478 None oneehh_slice1477 nodes= [1477, 1478, 1479, 4477, 4478, 4479] persons= [1481, 1482, 1483]
+--- sas= [] oneehh_slice1477 crp= 1
+--- 'expires': 1167127445
+1479 None oneehi_slice1478 nodes= [1478, 1479, 1480, 4478, 4479, 4480] persons= [1482, 1483, 1484]
+--- sas= [] oneehi_slice1478 crp= 1
+--- 'expires': 1167127446
+1480 None oneehj_slice1479 nodes= [1479, 1480, 1481, 4479, 4480, 4481] persons= [1483, 1484, 1485]
+--- sas= [] oneehj_slice1479 crp= 1
+--- 'expires': 1167127446
+1481 None oneeia_slice1480 nodes= [1480, 1481, 1482, 4480, 4481, 4482] persons= [1484, 1485, 1486]
+--- sas= [] oneeia_slice1480 crp= 1
+--- 'expires': 1167127446
+1482 None oneeib_slice1481 nodes= [1481, 1482, 1483, 4481, 4482, 4483] persons= [1485, 1486, 1487]
+--- sas= [] oneeib_slice1481 crp= 1
+--- 'expires': 1167127447
+1483 None oneeic_slice1482 nodes= [1482, 1483, 1484, 4482, 4483, 4484] persons= [1486, 1487, 1488]
+--- sas= [] oneeic_slice1482 crp= 1
+--- 'expires': 1167127447
+1484 None oneeid_slice1483 nodes= [1483, 1484, 1485, 4483, 4484, 4485] persons= [1487, 1488, 1489]
+--- sas= [] oneeid_slice1483 crp= 1
+--- 'expires': 1167127448
+1485 None oneeie_slice1484 nodes= [1484, 1485, 1486, 4484, 4485, 4486] persons= [1488, 1489, 1490]
+--- sas= [] oneeie_slice1484 crp= 1
+--- 'expires': 1167127448
+1486 None oneeif_slice1485 nodes= [1485, 1486, 1487, 4485, 4486, 4487] persons= [1489, 1490, 1491]
+--- sas= [] oneeif_slice1485 crp= 1
+--- 'expires': 1167127449
+1487 None oneeig_slice1486 nodes= [1486, 1487, 1488, 4486, 4487, 4488] persons= [1490, 1491, 1492]
+--- sas= [] oneeig_slice1486 crp= 1
+--- 'expires': 1167127449
+1488 None oneeih_slice1487 nodes= [1487, 1488, 1489, 4487, 4488, 4489] persons= [1491, 1492, 1493]
+--- sas= [] oneeih_slice1487 crp= 1
+--- 'expires': 1167127449
+1489 None oneeii_slice1488 nodes= [1488, 1489, 1490, 4488, 4489, 4490] persons= [1492, 1493, 1494]
+--- sas= [] oneeii_slice1488 crp= 1
+--- 'expires': 1167127450
+1490 None oneeij_slice1489 nodes= [1489, 1490, 1491, 4489, 4490, 4491] persons= [1493, 1494, 1495]
+--- sas= [] oneeij_slice1489 crp= 1
+--- 'expires': 1167127450
+1491 None oneeja_slice1490 nodes= [1490, 1491, 1492, 4490, 4491, 4492] persons= [1494, 1495, 1496]
+--- sas= [] oneeja_slice1490 crp= 1
+--- 'expires': 1167127451
+1492 None oneejb_slice1491 nodes= [1491, 1492, 1493, 4491, 4492, 4493] persons= [1495, 1496, 1497]
+--- sas= [] oneejb_slice1491 crp= 1
+--- 'expires': 1167127451
+1493 None oneejc_slice1492 nodes= [1492, 1493, 1494, 4492, 4493, 4494] persons= [1496, 1497, 1498]
+--- sas= [] oneejc_slice1492 crp= 1
+--- 'expires': 1167127452
+1494 None oneejd_slice1493 nodes= [1493, 1494, 1495, 4493, 4494, 4495] persons= [1497, 1498, 1499]
+--- sas= [] oneejd_slice1493 crp= 1
+--- 'expires': 1167127452
+1495 None oneeje_slice1494 nodes= [1494, 1495, 1496, 4494, 4495, 4496] persons= [1498, 1499, 1500]
+--- sas= [] oneeje_slice1494 crp= 1
+--- 'expires': 1167127453
+1496 None oneejf_slice1495 nodes= [1495, 1496, 1497, 4495, 4496, 4497] persons= [1499, 1500, 1501]
+--- sas= [] oneejf_slice1495 crp= 1
+--- 'expires': 1167127453
+1497 None oneejg_slice1496 nodes= [1496, 1497, 1498, 4496, 4497, 4498] persons= [1500, 1501, 1502]
+--- sas= [] oneejg_slice1496 crp= 1
+--- 'expires': 1167127453
+1498 None oneejh_slice1497 nodes= [1497, 1498, 1499, 4497, 4498, 4499] persons= [1501, 1502, 1503]
+--- sas= [] oneejh_slice1497 crp= 1
+--- 'expires': 1167127454
+1499 None oneeji_slice1498 nodes= [1498, 1499, 1500, 4498, 4499, 4500] persons= [1502, 1503, 1504]
+--- sas= [] oneeji_slice1498 crp= 1
+--- 'expires': 1167127454
+1500 None oneejj_slice1499 nodes= [1499, 1500, 1501, 4499, 4500, 4501] persons= [1503, 1504, 1505]
+--- sas= [] oneejj_slice1499 crp= 1
+--- 'expires': 1167127455
+1501 None onefaa_slice1500 nodes= [1500, 1501, 1502, 4500, 4501, 4502] persons= [1504, 1505, 1506]
+--- sas= [] onefaa_slice1500 crp= 1
+--- 'expires': 1167127455
+1502 None onefab_slice1501 nodes= [1501, 1502, 1503, 4501, 4502, 4503] persons= [1505, 1506, 1507]
+--- sas= [] onefab_slice1501 crp= 1
+--- 'expires': 1167127456
+1503 None onefac_slice1502 nodes= [1502, 1503, 1504, 4502, 4503, 4504] persons= [1506, 1507, 1508]
+--- sas= [] onefac_slice1502 crp= 1
+--- 'expires': 1167127456
+1504 None onefad_slice1503 nodes= [1503, 1504, 1505, 4503, 4504, 4505] persons= [1507, 1508, 1509]
+--- sas= [] onefad_slice1503 crp= 1
+--- 'expires': 1167127457
+1505 None onefae_slice1504 nodes= [1504, 1505, 1506, 4504, 4505, 4506] persons= [1508, 1509, 1510]
+--- sas= [] onefae_slice1504 crp= 1
+--- 'expires': 1167127457
+1506 None onefaf_slice1505 nodes= [1505, 1506, 1507, 4505, 4506, 4507] persons= [1509, 1510, 1511]
+--- sas= [] onefaf_slice1505 crp= 1
+--- 'expires': 1167127457
+1507 None onefag_slice1506 nodes= [1506, 1507, 1508, 4506, 4507, 4508] persons= [1510, 1511, 1512]
+--- sas= [] onefag_slice1506 crp= 1
+--- 'expires': 1167127458
+1508 None onefah_slice1507 nodes= [1507, 1508, 1509, 4507, 4508, 4509] persons= [1511, 1512, 1513]
+--- sas= [] onefah_slice1507 crp= 1
+--- 'expires': 1167127458
+1509 None onefai_slice1508 nodes= [1508, 1509, 1510, 4508, 4509, 4510] persons= [1512, 1513, 1514]
+--- sas= [] onefai_slice1508 crp= 1
+--- 'expires': 1167127459
+1510 None onefaj_slice1509 nodes= [1509, 1510, 1511, 4509, 4510, 4511] persons= [1513, 1514, 1515]
+--- sas= [] onefaj_slice1509 crp= 1
+--- 'expires': 1167127459
+1511 None onefba_slice1510 nodes= [1510, 1511, 1512, 4510, 4511, 4512] persons= [1514, 1515, 1516]
+--- sas= [] onefba_slice1510 crp= 1
+--- 'expires': 1167127460
+1512 None onefbb_slice1511 nodes= [1511, 1512, 1513, 4511, 4512, 4513] persons= [1515, 1516, 1517]
+--- sas= [] onefbb_slice1511 crp= 1
+--- 'expires': 1167127460
+1513 None onefbc_slice1512 nodes= [1512, 1513, 1514, 4512, 4513, 4514] persons= [1516, 1517, 1518]
+--- sas= [] onefbc_slice1512 crp= 1
+--- 'expires': 1167127460
+1514 None onefbd_slice1513 nodes= [1513, 1514, 1515, 4513, 4514, 4515] persons= [1517, 1518, 1519]
+--- sas= [] onefbd_slice1513 crp= 1
+--- 'expires': 1167127461
+1515 None onefbe_slice1514 nodes= [1514, 1515, 1516, 4514, 4515, 4516] persons= [1518, 1519, 1520]
+--- sas= [] onefbe_slice1514 crp= 1
+--- 'expires': 1167127461
+1516 None onefbf_slice1515 nodes= [1515, 1516, 1517, 4515, 4516, 4517] persons= [1519, 1520, 1521]
+--- sas= [] onefbf_slice1515 crp= 1
+--- 'expires': 1167127462
+1517 None onefbg_slice1516 nodes= [1516, 1517, 1518, 4516, 4517, 4518] persons= [1520, 1521, 1522]
+--- sas= [] onefbg_slice1516 crp= 1
+--- 'expires': 1167127462
+1518 None onefbh_slice1517 nodes= [1517, 1518, 1519, 4517, 4518, 4519] persons= [1521, 1522, 1523]
+--- sas= [] onefbh_slice1517 crp= 1
+--- 'expires': 1167127463
+1519 None onefbi_slice1518 nodes= [1518, 1519, 1520, 4518, 4519, 4520] persons= [1522, 1523, 1524]
+--- sas= [] onefbi_slice1518 crp= 1
+--- 'expires': 1167127463
+1520 None onefbj_slice1519 nodes= [1519, 1520, 1521, 4519, 4520, 4521] persons= [1523, 1524, 1525]
+--- sas= [] onefbj_slice1519 crp= 1
+--- 'expires': 1167127464
+1521 None onefca_slice1520 nodes= [1520, 1521, 1522, 4520, 4521, 4522] persons= [1524, 1525, 1526]
+--- sas= [] onefca_slice1520 crp= 1
+--- 'expires': 1167127464
+1522 None onefcb_slice1521 nodes= [1521, 1522, 1523, 4521, 4522, 4523] persons= [1525, 1526, 1527]
+--- sas= [] onefcb_slice1521 crp= 1
+--- 'expires': 1167127464
+1523 None onefcc_slice1522 nodes= [1522, 1523, 1524, 4522, 4523, 4524] persons= [1526, 1527, 1528]
+--- sas= [] onefcc_slice1522 crp= 1
+--- 'expires': 1167127465
+1524 None onefcd_slice1523 nodes= [1523, 1524, 1525, 4523, 4524, 4525] persons= [1527, 1528, 1529]
+--- sas= [] onefcd_slice1523 crp= 1
+--- 'expires': 1167127465
+1525 None onefce_slice1524 nodes= [1524, 1525, 1526, 4524, 4525, 4526] persons= [1528, 1529, 1530]
+--- sas= [] onefce_slice1524 crp= 1
+--- 'expires': 1167127466
+1526 None onefcf_slice1525 nodes= [1525, 1526, 1527, 4525, 4526, 4527] persons= [1529, 1530, 1531]
+--- sas= [] onefcf_slice1525 crp= 1
+--- 'expires': 1167127466
+1527 None onefcg_slice1526 nodes= [1526, 1527, 1528, 4526, 4527, 4528] persons= [1530, 1531, 1532]
+--- sas= [] onefcg_slice1526 crp= 1
+--- 'expires': 1167127467
+1528 None onefch_slice1527 nodes= [1527, 1528, 1529, 4527, 4528, 4529] persons= [1531, 1532, 1533]
+--- sas= [] onefch_slice1527 crp= 1
+--- 'expires': 1167127467
+1529 None onefci_slice1528 nodes= [1528, 1529, 1530, 4528, 4529, 4530] persons= [1532, 1533, 1534]
+--- sas= [] onefci_slice1528 crp= 1
+--- 'expires': 1167127468
+1530 None onefcj_slice1529 nodes= [1529, 1530, 1531, 4529, 4530, 4531] persons= [1533, 1534, 1535]
+--- sas= [] onefcj_slice1529 crp= 1
+--- 'expires': 1167127468
+1531 None onefda_slice1530 nodes= [1530, 1531, 1532, 4530, 4531, 4532] persons= [1534, 1535, 1536]
+--- sas= [] onefda_slice1530 crp= 1
+--- 'expires': 1167127468
+1532 None onefdb_slice1531 nodes= [1531, 1532, 1533, 4531, 4532, 4533] persons= [1535, 1536, 1537]
+--- sas= [] onefdb_slice1531 crp= 1
+--- 'expires': 1167127469
+1533 None onefdc_slice1532 nodes= [1532, 1533, 1534, 4532, 4533, 4534] persons= [1536, 1537, 1538]
+--- sas= [] onefdc_slice1532 crp= 1
+--- 'expires': 1167127469
+1534 None onefdd_slice1533 nodes= [1533, 1534, 1535, 4533, 4534, 4535] persons= [1537, 1538, 1539]
+--- sas= [] onefdd_slice1533 crp= 1
+--- 'expires': 1167127470
+1535 None onefde_slice1534 nodes= [1534, 1535, 1536, 4534, 4535, 4536] persons= [1538, 1539, 1540]
+--- sas= [] onefde_slice1534 crp= 1
+--- 'expires': 1167127470
+1536 None onefdf_slice1535 nodes= [1535, 1536, 1537, 4535, 4536, 4537] persons= [1539, 1540, 1541]
+--- sas= [] onefdf_slice1535 crp= 1
+--- 'expires': 1167127471
+1537 None onefdg_slice1536 nodes= [1536, 1537, 1538, 4536, 4537, 4538] persons= [1540, 1541, 1542]
+--- sas= [] onefdg_slice1536 crp= 1
+--- 'expires': 1167127471
+1538 None onefdh_slice1537 nodes= [1537, 1538, 1539, 4537, 4538, 4539] persons= [1541, 1542, 1543]
+--- sas= [] onefdh_slice1537 crp= 1
+--- 'expires': 1167127472
+1539 None onefdi_slice1538 nodes= [1538, 1539, 1540, 4538, 4539, 4540] persons= [1542, 1543, 1544]
+--- sas= [] onefdi_slice1538 crp= 1
+--- 'expires': 1167127472
+1540 None onefdj_slice1539 nodes= [1539, 1540, 1541, 4539, 4540, 4541] persons= [1543, 1544, 1545]
+--- sas= [] onefdj_slice1539 crp= 1
+--- 'expires': 1167127472
+1541 None onefea_slice1540 nodes= [1540, 1541, 1542, 4540, 4541, 4542] persons= [1544, 1545, 1546]
+--- sas= [] onefea_slice1540 crp= 1
+--- 'expires': 1167127473
+1542 None onefeb_slice1541 nodes= [1541, 1542, 1543, 4541, 4542, 4543] persons= [1545, 1546, 1547]
+--- sas= [] onefeb_slice1541 crp= 1
+--- 'expires': 1167127473
+1543 None onefec_slice1542 nodes= [1542, 1543, 1544, 4542, 4543, 4544] persons= [1546, 1547, 1548]
+--- sas= [] onefec_slice1542 crp= 1
+--- 'expires': 1167127474
+1544 None onefed_slice1543 nodes= [1543, 1544, 1545, 4543, 4544, 4545] persons= [1547, 1548, 1549]
+--- sas= [] onefed_slice1543 crp= 1
+--- 'expires': 1167127474
+1545 None onefee_slice1544 nodes= [1544, 1545, 1546, 4544, 4545, 4546] persons= [1548, 1549, 1550]
+--- sas= [] onefee_slice1544 crp= 1
+--- 'expires': 1167127475
+1546 None onefef_slice1545 nodes= [1545, 1546, 1547, 4545, 4546, 4547] persons= [1549, 1550, 1551]
+--- sas= [] onefef_slice1545 crp= 1
+--- 'expires': 1167127475
+1547 None onefeg_slice1546 nodes= [1546, 1547, 1548, 4546, 4547, 4548] persons= [1550, 1551, 1552]
+--- sas= [] onefeg_slice1546 crp= 1
+--- 'expires': 1167127476
+1548 None onefeh_slice1547 nodes= [1547, 1548, 1549, 4547, 4548, 4549] persons= [1551, 1552, 1553]
+--- sas= [] onefeh_slice1547 crp= 1
+--- 'expires': 1167127476
+1549 None onefei_slice1548 nodes= [1548, 1549, 1550, 4548, 4549, 4550] persons= [1552, 1553, 1554]
+--- sas= [] onefei_slice1548 crp= 1
+--- 'expires': 1167127476
+1550 None onefej_slice1549 nodes= [1549, 1550, 1551, 4549, 4550, 4551] persons= [1553, 1554, 1555]
+--- sas= [] onefej_slice1549 crp= 1
+--- 'expires': 1167127477
+1551 None oneffa_slice1550 nodes= [1550, 1551, 1552, 4550, 4551, 4552] persons= [1554, 1555, 1556]
+--- sas= [] oneffa_slice1550 crp= 1
+--- 'expires': 1167127477
+1552 None oneffb_slice1551 nodes= [1551, 1552, 1553, 4551, 4552, 4553] persons= [1555, 1556, 1557]
+--- sas= [] oneffb_slice1551 crp= 1
+--- 'expires': 1167127478
+1553 None oneffc_slice1552 nodes= [1552, 1553, 1554, 4552, 4553, 4554] persons= [1556, 1557, 1558]
+--- sas= [] oneffc_slice1552 crp= 1
+--- 'expires': 1167127478
+1554 None oneffd_slice1553 nodes= [1553, 1554, 1555, 4553, 4554, 4555] persons= [1557, 1558, 1559]
+--- sas= [] oneffd_slice1553 crp= 1
+--- 'expires': 1167127479
+1555 None oneffe_slice1554 nodes= [1554, 1555, 1556, 4554, 4555, 4556] persons= [1558, 1559, 1560]
+--- sas= [] oneffe_slice1554 crp= 1
+--- 'expires': 1167127479
+1556 None onefff_slice1555 nodes= [1555, 1556, 1557, 4555, 4556, 4557] persons= [1559, 1560, 1561]
+--- sas= [] onefff_slice1555 crp= 1
+--- 'expires': 1167127480
+1557 None oneffg_slice1556 nodes= [1556, 1557, 1558, 4556, 4557, 4558] persons= [1560, 1561, 1562]
+--- sas= [] oneffg_slice1556 crp= 1
+--- 'expires': 1167127480
+1558 None oneffh_slice1557 nodes= [1557, 1558, 1559, 4557, 4558, 4559] persons= [1561, 1562, 1563]
+--- sas= [] oneffh_slice1557 crp= 1
+--- 'expires': 1167127480
+1559 None oneffi_slice1558 nodes= [1558, 1559, 1560, 4558, 4559, 4560] persons= [1562, 1563, 1564]
+--- sas= [] oneffi_slice1558 crp= 1
+--- 'expires': 1167127481
+1560 None oneffj_slice1559 nodes= [1559, 1560, 1561, 4559, 4560, 4561] persons= [1563, 1564, 1565]
+--- sas= [] oneffj_slice1559 crp= 1
+--- 'expires': 1167127481
+1561 None onefga_slice1560 nodes= [1560, 1561, 1562, 4560, 4561, 4562] persons= [1564, 1565, 1566]
+--- sas= [] onefga_slice1560 crp= 1
+--- 'expires': 1167127482
+1562 None onefgb_slice1561 nodes= [1561, 1562, 1563, 4561, 4562, 4563] persons= [1565, 1566, 1567]
+--- sas= [] onefgb_slice1561 crp= 1
+--- 'expires': 1167127482
+1563 None onefgc_slice1562 nodes= [1562, 1563, 1564, 4562, 4563, 4564] persons= [1566, 1567, 1568]
+--- sas= [] onefgc_slice1562 crp= 1
+--- 'expires': 1167127483
+1564 None onefgd_slice1563 nodes= [1563, 1564, 1565, 4563, 4564, 4565] persons= [1567, 1568, 1569]
+--- sas= [] onefgd_slice1563 crp= 1
+--- 'expires': 1167127483
+1565 None onefge_slice1564 nodes= [1564, 1565, 1566, 4564, 4565, 4566] persons= [1568, 1569, 1570]
+--- sas= [] onefge_slice1564 crp= 1
+--- 'expires': 1167127484
+1566 None onefgf_slice1565 nodes= [1565, 1566, 1567, 4565, 4566, 4567] persons= [1569, 1570, 1571]
+--- sas= [] onefgf_slice1565 crp= 1
+--- 'expires': 1167127484
+1567 None onefgg_slice1566 nodes= [1566, 1567, 1568, 4566, 4567, 4568] persons= [1570, 1571, 1572]
+--- sas= [] onefgg_slice1566 crp= 1
+--- 'expires': 1167127485
+1568 None onefgh_slice1567 nodes= [1567, 1568, 1569, 4567, 4568, 4569] persons= [1571, 1572, 1573]
+--- sas= [] onefgh_slice1567 crp= 1
+--- 'expires': 1167127485
+1569 None onefgi_slice1568 nodes= [1568, 1569, 1570, 4568, 4569, 4570] persons= [1572, 1573, 1574]
+--- sas= [] onefgi_slice1568 crp= 1
+--- 'expires': 1167127485
+1570 None onefgj_slice1569 nodes= [1569, 1570, 1571, 4569, 4570, 4571] persons= [1573, 1574, 1575]
+--- sas= [] onefgj_slice1569 crp= 1
+--- 'expires': 1167127486
+1571 None onefha_slice1570 nodes= [1570, 1571, 1572, 4570, 4571, 4572] persons= [1574, 1575, 1576]
+--- sas= [] onefha_slice1570 crp= 1
+--- 'expires': 1167127486
+1572 None onefhb_slice1571 nodes= [1571, 1572, 1573, 4571, 4572, 4573] persons= [1575, 1576, 1577]
+--- sas= [] onefhb_slice1571 crp= 1
+--- 'expires': 1167127487
+1573 None onefhc_slice1572 nodes= [1572, 1573, 1574, 4572, 4573, 4574] persons= [1576, 1577, 1578]
+--- sas= [] onefhc_slice1572 crp= 1
+--- 'expires': 1167127487
+1574 None onefhd_slice1573 nodes= [1573, 1574, 1575, 4573, 4574, 4575] persons= [1577, 1578, 1579]
+--- sas= [] onefhd_slice1573 crp= 1
+--- 'expires': 1167127488
+1575 None onefhe_slice1574 nodes= [1574, 1575, 1576, 4574, 4575, 4576] persons= [1578, 1579, 1580]
+--- sas= [] onefhe_slice1574 crp= 1
+--- 'expires': 1167127488
+1576 None onefhf_slice1575 nodes= [1575, 1576, 1577, 4575, 4576, 4577] persons= [1579, 1580, 1581]
+--- sas= [] onefhf_slice1575 crp= 1
+--- 'expires': 1167127489
+1577 None onefhg_slice1576 nodes= [1576, 1577, 1578, 4576, 4577, 4578] persons= [1580, 1581, 1582]
+--- sas= [] onefhg_slice1576 crp= 1
+--- 'expires': 1167127489
+1578 None onefhh_slice1577 nodes= [1577, 1578, 1579, 4577, 4578, 4579] persons= [1581, 1582, 1583]
+--- sas= [] onefhh_slice1577 crp= 1
+--- 'expires': 1167127490
+1579 None onefhi_slice1578 nodes= [1578, 1579, 1580, 4578, 4579, 4580] persons= [1582, 1583, 1584]
+--- sas= [] onefhi_slice1578 crp= 1
+--- 'expires': 1167127490
+1580 None onefhj_slice1579 nodes= [1579, 1580, 1581, 4579, 4580, 4581] persons= [1583, 1584, 1585]
+--- sas= [] onefhj_slice1579 crp= 1
+--- 'expires': 1167127490
+1581 None onefia_slice1580 nodes= [1580, 1581, 1582, 4580, 4581, 4582] persons= [1584, 1585, 1586]
+--- sas= [] onefia_slice1580 crp= 1
+--- 'expires': 1167127491
+1582 None onefib_slice1581 nodes= [1581, 1582, 1583, 4581, 4582, 4583] persons= [1585, 1586, 1587]
+--- sas= [] onefib_slice1581 crp= 1
+--- 'expires': 1167127491
+1583 None onefic_slice1582 nodes= [1582, 1583, 1584, 4582, 4583, 4584] persons= [1586, 1587, 1588]
+--- sas= [] onefic_slice1582 crp= 1
+--- 'expires': 1167127492
+1584 None onefid_slice1583 nodes= [1583, 1584, 1585, 4583, 4584, 4585] persons= [1587, 1588, 1589]
+--- sas= [] onefid_slice1583 crp= 1
+--- 'expires': 1167127492
+1585 None onefie_slice1584 nodes= [1584, 1585, 1586, 4584, 4585, 4586] persons= [1588, 1589, 1590]
+--- sas= [] onefie_slice1584 crp= 1
+--- 'expires': 1167127493
+1586 None onefif_slice1585 nodes= [1585, 1586, 1587, 4585, 4586, 4587] persons= [1589, 1590, 1591]
+--- sas= [] onefif_slice1585 crp= 1
+--- 'expires': 1167127493
+1587 None onefig_slice1586 nodes= [1586, 1587, 1588, 4586, 4587, 4588] persons= [1590, 1591, 1592]
+--- sas= [] onefig_slice1586 crp= 1
+--- 'expires': 1167127494
+1588 None onefih_slice1587 nodes= [1587, 1588, 1589, 4587, 4588, 4589] persons= [1591, 1592, 1593]
+--- sas= [] onefih_slice1587 crp= 1
+--- 'expires': 1167127494
+1589 None onefii_slice1588 nodes= [1588, 1589, 1590, 4588, 4589, 4590] persons= [1592, 1593, 1594]
+--- sas= [] onefii_slice1588 crp= 1
+--- 'expires': 1167127494
+1590 None onefij_slice1589 nodes= [1589, 1590, 1591, 4589, 4590, 4591] persons= [1593, 1594, 1595]
+--- sas= [] onefij_slice1589 crp= 1
+--- 'expires': 1167127495
+1591 None onefja_slice1590 nodes= [1590, 1591, 1592, 4590, 4591, 4592] persons= [1594, 1595, 1596]
+--- sas= [] onefja_slice1590 crp= 1
+--- 'expires': 1167127495
+1592 None onefjb_slice1591 nodes= [1591, 1592, 1593, 4591, 4592, 4593] persons= [1595, 1596, 1597]
+--- sas= [] onefjb_slice1591 crp= 1
+--- 'expires': 1167127496
+1593 None onefjc_slice1592 nodes= [1592, 1593, 1594, 4592, 4593, 4594] persons= [1596, 1597, 1598]
+--- sas= [] onefjc_slice1592 crp= 1
+--- 'expires': 1167127496
+1594 None onefjd_slice1593 nodes= [1593, 1594, 1595, 4593, 4594, 4595] persons= [1597, 1598, 1599]
+--- sas= [] onefjd_slice1593 crp= 1
+--- 'expires': 1167127497
+1595 None onefje_slice1594 nodes= [1594, 1595, 1596, 4594, 4595, 4596] persons= [1598, 1599, 1600]
+--- sas= [] onefje_slice1594 crp= 1
+--- 'expires': 1167127497
+1596 None onefjf_slice1595 nodes= [1595, 1596, 1597, 4595, 4596, 4597] persons= [1599, 1600, 1601]
+--- sas= [] onefjf_slice1595 crp= 1
+--- 'expires': 1167127498
+1597 None onefjg_slice1596 nodes= [1596, 1597, 1598, 4596, 4597, 4598] persons= [1600, 1601, 1602]
+--- sas= [] onefjg_slice1596 crp= 1
+--- 'expires': 1167127498
+1598 None onefjh_slice1597 nodes= [1597, 1598, 1599, 4597, 4598, 4599] persons= [1601, 1602, 1603]
+--- sas= [] onefjh_slice1597 crp= 1
+--- 'expires': 1167127499
+1599 None onefji_slice1598 nodes= [1598, 1599, 1600, 4598, 4599, 4600] persons= [1602, 1603, 1604]
+--- sas= [] onefji_slice1598 crp= 1
+--- 'expires': 1167127499
+1600 None onefjj_slice1599 nodes= [1599, 1600, 1601, 4599, 4600, 4601] persons= [1603, 1604, 1605]
+--- sas= [] onefjj_slice1599 crp= 1
+--- 'expires': 1167127500
+1601 None onegaa_slice1600 nodes= [1600, 1601, 1602, 4600, 4601, 4602] persons= [1604, 1605, 1606]
+--- sas= [] onegaa_slice1600 crp= 1
+--- 'expires': 1167127500
+1602 None onegab_slice1601 nodes= [1601, 1602, 1603, 4601, 4602, 4603] persons= [1605, 1606, 1607]
+--- sas= [] onegab_slice1601 crp= 1
+--- 'expires': 1167127500
+1603 None onegac_slice1602 nodes= [1602, 1603, 1604, 4602, 4603, 4604] persons= [1606, 1607, 1608]
+--- sas= [] onegac_slice1602 crp= 1
+--- 'expires': 1167127501
+1604 None onegad_slice1603 nodes= [1603, 1604, 1605, 4603, 4604, 4605] persons= [1607, 1608, 1609]
+--- sas= [] onegad_slice1603 crp= 1
+--- 'expires': 1167127501
+1605 None onegae_slice1604 nodes= [1604, 1605, 1606, 4604, 4605, 4606] persons= [1608, 1609, 1610]
+--- sas= [] onegae_slice1604 crp= 1
+--- 'expires': 1167127502
+1606 None onegaf_slice1605 nodes= [1605, 1606, 1607, 4605, 4606, 4607] persons= [1609, 1610, 1611]
+--- sas= [] onegaf_slice1605 crp= 1
+--- 'expires': 1167127505
+1607 None onegag_slice1606 nodes= [1606, 1607, 1608, 4606, 4607, 4608] persons= [1610, 1611, 1612]
+--- sas= [] onegag_slice1606 crp= 1
+--- 'expires': 1167127508
+1608 None onegah_slice1607 nodes= [1607, 1608, 1609, 4607, 4608, 4609] persons= [1611, 1612, 1613]
+--- sas= [] onegah_slice1607 crp= 1
+--- 'expires': 1167127509
+1609 None onegai_slice1608 nodes= [1608, 1609, 1610, 4608, 4609, 4610] persons= [1612, 1613, 1614]
+--- sas= [] onegai_slice1608 crp= 1
+--- 'expires': 1167127511
+1610 None onegaj_slice1609 nodes= [1609, 1610, 1611, 4609, 4610, 4611] persons= [1613, 1614, 1615]
+--- sas= [] onegaj_slice1609 crp= 1
+--- 'expires': 1167127512
+1611 None onegba_slice1610 nodes= [1610, 1611, 1612, 4610, 4611, 4612] persons= [1614, 1615, 1616]
+--- sas= [] onegba_slice1610 crp= 1
+--- 'expires': 1167127514
+1612 None onegbb_slice1611 nodes= [1611, 1612, 1613, 4611, 4612, 4613] persons= [1615, 1616, 1617]
+--- sas= [] onegbb_slice1611 crp= 1
+--- 'expires': 1167127515
+1613 None onegbc_slice1612 nodes= [1612, 1613, 1614, 4612, 4613, 4614] persons= [1616, 1617, 1618]
+--- sas= [] onegbc_slice1612 crp= 1
+--- 'expires': 1167127517
+1614 None onegbd_slice1613 nodes= [1613, 1614, 1615, 4613, 4614, 4615] persons= [1617, 1618, 1619]
+--- sas= [] onegbd_slice1613 crp= 1
+--- 'expires': 1167127518
+1615 None onegbe_slice1614 nodes= [1614, 1615, 1616, 4614, 4615, 4616] persons= [1618, 1619, 1620]
+--- sas= [] onegbe_slice1614 crp= 1
+--- 'expires': 1167127519
+1616 None onegbf_slice1615 nodes= [1615, 1616, 1617, 4615, 4616, 4617] persons= [1619, 1620, 1621]
+--- sas= [] onegbf_slice1615 crp= 1
+--- 'expires': 1167127521
+1617 None onegbg_slice1616 nodes= [1616, 1617, 1618, 4616, 4617, 4618] persons= [1620, 1621, 1622]
+--- sas= [] onegbg_slice1616 crp= 1
+--- 'expires': 1167127522
+1618 None onegbh_slice1617 nodes= [1617, 1618, 1619, 4617, 4618, 4619] persons= [1621, 1622, 1623]
+--- sas= [] onegbh_slice1617 crp= 1
+--- 'expires': 1167127524
+1619 None onegbi_slice1618 nodes= [1618, 1619, 1620, 4618, 4619, 4620] persons= [1622, 1623, 1624]
+--- sas= [] onegbi_slice1618 crp= 1
+--- 'expires': 1167127525
+1620 None onegbj_slice1619 nodes= [1619, 1620, 1621, 4619, 4620, 4621] persons= [1623, 1624, 1625]
+--- sas= [] onegbj_slice1619 crp= 1
+--- 'expires': 1167127527
+1621 None onegca_slice1620 nodes= [1620, 1621, 1622, 4620, 4621, 4622] persons= [1624, 1625, 1626]
+--- sas= [] onegca_slice1620 crp= 1
+--- 'expires': 1167127529
+1622 None onegcb_slice1621 nodes= [1621, 1622, 1623, 4621, 4622, 4623] persons= [1625, 1626, 1627]
+--- sas= [] onegcb_slice1621 crp= 1
+--- 'expires': 1167127530
+1623 None onegcc_slice1622 nodes= [1622, 1623, 1624, 4622, 4623, 4624] persons= [1626, 1627, 1628]
+--- sas= [] onegcc_slice1622 crp= 1
+--- 'expires': 1167127532
+1624 None onegcd_slice1623 nodes= [1623, 1624, 1625, 4623, 4624, 4625] persons= [1627, 1628, 1629]
+--- sas= [] onegcd_slice1623 crp= 1
+--- 'expires': 1167127533
+1625 None onegce_slice1624 nodes= [1624, 1625, 1626, 4624, 4625, 4626] persons= [1628, 1629, 1630]
+--- sas= [] onegce_slice1624 crp= 1
+--- 'expires': 1167127535
+1626 None onegcf_slice1625 nodes= [1625, 1626, 1627, 4625, 4626, 4627] persons= [1629, 1630, 1631]
+--- sas= [] onegcf_slice1625 crp= 1
+--- 'expires': 1167127536
+1627 None onegcg_slice1626 nodes= [1626, 1627, 1628, 4626, 4627, 4628] persons= [1630, 1631, 1632]
+--- sas= [] onegcg_slice1626 crp= 1
+--- 'expires': 1167127538
+1628 None onegch_slice1627 nodes= [1627, 1628, 1629, 4627, 4628, 4629] persons= [1631, 1632, 1633]
+--- sas= [] onegch_slice1627 crp= 1
+--- 'expires': 1167127539
+1629 None onegci_slice1628 nodes= [1628, 1629, 1630, 4628, 4629, 4630] persons= [1632, 1633, 1634]
+--- sas= [] onegci_slice1628 crp= 1
+--- 'expires': 1167127541
+1630 None onegcj_slice1629 nodes= [1629, 1630, 1631, 4629, 4630, 4631] persons= [1633, 1634, 1635]
+--- sas= [] onegcj_slice1629 crp= 1
+--- 'expires': 1167127542
+1631 None onegda_slice1630 nodes= [1630, 1631, 1632, 4630, 4631, 4632] persons= [1634, 1635, 1636]
+--- sas= [] onegda_slice1630 crp= 1
+--- 'expires': 1167127544
+1632 None onegdb_slice1631 nodes= [1631, 1632, 1633, 4631, 4632, 4633] persons= [1635, 1636, 1637]
+--- sas= [] onegdb_slice1631 crp= 1
+--- 'expires': 1167127545
+1633 None onegdc_slice1632 nodes= [1632, 1633, 1634, 4632, 4633, 4634] persons= [1636, 1637, 1638]
+--- sas= [] onegdc_slice1632 crp= 1
+--- 'expires': 1167127547
+1634 None onegdd_slice1633 nodes= [1633, 1634, 1635, 4633, 4634, 4635] persons= [1637, 1638, 1639]
+--- sas= [] onegdd_slice1633 crp= 1
+--- 'expires': 1167127548
+1635 None onegde_slice1634 nodes= [1634, 1635, 1636, 4634, 4635, 4636] persons= [1638, 1639, 1640]
+--- sas= [] onegde_slice1634 crp= 1
+--- 'expires': 1167127550
+1636 None onegdf_slice1635 nodes= [1635, 1636, 1637, 4635, 4636, 4637] persons= [1639, 1640, 1641]
+--- sas= [] onegdf_slice1635 crp= 1
+--- 'expires': 1167127551
+1637 None onegdg_slice1636 nodes= [1636, 1637, 1638, 4636, 4637, 4638] persons= [1640, 1641, 1642]
+--- sas= [] onegdg_slice1636 crp= 1
+--- 'expires': 1167127553
+1638 None onegdh_slice1637 nodes= [1637, 1638, 1639, 4637, 4638, 4639] persons= [1641, 1642, 1643]
+--- sas= [] onegdh_slice1637 crp= 1
+--- 'expires': 1167127554
+1639 None onegdi_slice1638 nodes= [1638, 1639, 1640, 4638, 4639, 4640] persons= [1642, 1643, 1644]
+--- sas= [] onegdi_slice1638 crp= 1
+--- 'expires': 1167127556
+1640 None onegdj_slice1639 nodes= [1639, 1640, 1641, 4639, 4640, 4641] persons= [1643, 1644, 1645]
+--- sas= [] onegdj_slice1639 crp= 1
+--- 'expires': 1167127557
+1641 None onegea_slice1640 nodes= [1640, 1641, 1642, 4640, 4641, 4642] persons= [1644, 1645, 1646]
+--- sas= [] onegea_slice1640 crp= 1
+--- 'expires': 1167127559
+1642 None onegeb_slice1641 nodes= [1641, 1642, 1643, 4641, 4642, 4643] persons= [1645, 1646, 1647]
+--- sas= [] onegeb_slice1641 crp= 1
+--- 'expires': 1167127560
+1643 None onegec_slice1642 nodes= [1642, 1643, 1644, 4642, 4643, 4644] persons= [1646, 1647, 1648]
+--- sas= [] onegec_slice1642 crp= 1
+--- 'expires': 1167127562
+1644 None oneged_slice1643 nodes= [1643, 1644, 1645, 4643, 4644, 4645] persons= [1647, 1648, 1649]
+--- sas= [] oneged_slice1643 crp= 1
+--- 'expires': 1167127563
+1645 None onegee_slice1644 nodes= [1644, 1645, 1646, 4644, 4645, 4646] persons= [1648, 1649, 1650]
+--- sas= [] onegee_slice1644 crp= 1
+--- 'expires': 1167127565
+1646 None onegef_slice1645 nodes= [1645, 1646, 1647, 4645, 4646, 4647] persons= [1649, 1650, 1651]
+--- sas= [] onegef_slice1645 crp= 1
+--- 'expires': 1167127566
+1647 None onegeg_slice1646 nodes= [1646, 1647, 1648, 4646, 4647, 4648] persons= [1650, 1651, 1652]
+--- sas= [] onegeg_slice1646 crp= 1
+--- 'expires': 1167127568
+1648 None onegeh_slice1647 nodes= [1647, 1648, 1649, 4647, 4648, 4649] persons= [1651, 1652, 1653]
+--- sas= [] onegeh_slice1647 crp= 1
+--- 'expires': 1167127570
+1649 None onegei_slice1648 nodes= [1648, 1649, 1650, 4648, 4649, 4650] persons= [1652, 1653, 1654]
+--- sas= [] onegei_slice1648 crp= 1
+--- 'expires': 1167127571
+1650 None onegej_slice1649 nodes= [1649, 1650, 1651, 4649, 4650, 4651] persons= [1653, 1654, 1655]
+--- sas= [] onegej_slice1649 crp= 1
+--- 'expires': 1167127573
+1651 None onegfa_slice1650 nodes= [1650, 1651, 1652, 4650, 4651, 4652] persons= [1654, 1655, 1656]
+--- sas= [] onegfa_slice1650 crp= 1
+--- 'expires': 1167127575
+1652 None onegfb_slice1651 nodes= [1651, 1652, 1653, 4651, 4652, 4653] persons= [1655, 1656, 1657]
+--- sas= [] onegfb_slice1651 crp= 1
+--- 'expires': 1167127576
+1653 None onegfc_slice1652 nodes= [1652, 1653, 1654, 4652, 4653, 4654] persons= [1656, 1657, 1658]
+--- sas= [] onegfc_slice1652 crp= 1
+--- 'expires': 1167127578
+1654 None onegfd_slice1653 nodes= [1653, 1654, 1655, 4653, 4654, 4655] persons= [1657, 1658, 1659]
+--- sas= [] onegfd_slice1653 crp= 1
+--- 'expires': 1167127580
+1655 None onegfe_slice1654 nodes= [1654, 1655, 1656, 4654, 4655, 4656] persons= [1658, 1659, 1660]
+--- sas= [] onegfe_slice1654 crp= 1
+--- 'expires': 1167127581
+1656 None onegff_slice1655 nodes= [1655, 1656, 1657, 4655, 4656, 4657] persons= [1659, 1660, 1661]
+--- sas= [] onegff_slice1655 crp= 1
+--- 'expires': 1167127583
+1657 None onegfg_slice1656 nodes= [1656, 1657, 1658, 4656, 4657, 4658] persons= [1660, 1661, 1662]
+--- sas= [] onegfg_slice1656 crp= 1
+--- 'expires': 1167127584
+1658 None onegfh_slice1657 nodes= [1657, 1658, 1659, 4657, 4658, 4659] persons= [1661, 1662, 1663]
+--- sas= [] onegfh_slice1657 crp= 1
+--- 'expires': 1167127586
+1659 None onegfi_slice1658 nodes= [1658, 1659, 1660, 4658, 4659, 4660] persons= [1662, 1663, 1664]
+--- sas= [] onegfi_slice1658 crp= 1
+--- 'expires': 1167127587
+1660 None onegfj_slice1659 nodes= [1659, 1660, 1661, 4659, 4660, 4661] persons= [1663, 1664, 1665]
+--- sas= [] onegfj_slice1659 crp= 1
+--- 'expires': 1167127589
+1661 None onegga_slice1660 nodes= [1660, 1661, 1662, 4660, 4661, 4662] persons= [1664, 1665, 1666]
+--- sas= [] onegga_slice1660 crp= 1
+--- 'expires': 1167127590
+1662 None oneggb_slice1661 nodes= [1661, 1662, 1663, 4661, 4662, 4663] persons= [1665, 1666, 1667]
+--- sas= [] oneggb_slice1661 crp= 1
+--- 'expires': 1167127592
+1663 None oneggc_slice1662 nodes= [1662, 1663, 1664, 4662, 4663, 4664] persons= [1666, 1667, 1668]
+--- sas= [] oneggc_slice1662 crp= 1
+--- 'expires': 1167127593
+1664 None oneggd_slice1663 nodes= [1663, 1664, 1665, 4663, 4664, 4665] persons= [1667, 1668, 1669]
+--- sas= [] oneggd_slice1663 crp= 1
+--- 'expires': 1167127595
+1665 None onegge_slice1664 nodes= [1664, 1665, 1666, 4664, 4665, 4666] persons= [1668, 1669, 1670]
+--- sas= [] onegge_slice1664 crp= 1
+--- 'expires': 1167127597
+1666 None oneggf_slice1665 nodes= [1665, 1666, 1667, 4665, 4666, 4667] persons= [1669, 1670, 1671]
+--- sas= [] oneggf_slice1665 crp= 1
+--- 'expires': 1167127598
+1667 None oneggg_slice1666 nodes= [1666, 1667, 1668, 4666, 4667, 4668] persons= [1670, 1671, 1672]
+--- sas= [] oneggg_slice1666 crp= 1
+--- 'expires': 1167127600
+1668 None oneggh_slice1667 nodes= [1667, 1668, 1669, 4667, 4668, 4669] persons= [1671, 1672, 1673]
+--- sas= [] oneggh_slice1667 crp= 1
+--- 'expires': 1167127602
+1669 None oneggi_slice1668 nodes= [1668, 1669, 1670, 4668, 4669, 4670] persons= [1672, 1673, 1674]
+--- sas= [] oneggi_slice1668 crp= 1
+--- 'expires': 1167127603
+1670 None oneggj_slice1669 nodes= [1669, 1670, 1671, 4669, 4670, 4671] persons= [1673, 1674, 1675]
+--- sas= [] oneggj_slice1669 crp= 1
+--- 'expires': 1167127605
+1671 None onegha_slice1670 nodes= [1670, 1671, 1672, 4670, 4671, 4672] persons= [1674, 1675, 1676]
+--- sas= [] onegha_slice1670 crp= 1
+--- 'expires': 1167127606
+1672 None oneghb_slice1671 nodes= [1671, 1672, 1673, 4671, 4672, 4673] persons= [1675, 1676, 1677]
+--- sas= [] oneghb_slice1671 crp= 1
+--- 'expires': 1167127608
+1673 None oneghc_slice1672 nodes= [1672, 1673, 1674, 4672, 4673, 4674] persons= [1676, 1677, 1678]
+--- sas= [] oneghc_slice1672 crp= 1
+--- 'expires': 1167127609
+1674 None oneghd_slice1673 nodes= [1673, 1674, 1675, 4673, 4674, 4675] persons= [1677, 1678, 1679]
+--- sas= [] oneghd_slice1673 crp= 1
+--- 'expires': 1167127611
+1675 None oneghe_slice1674 nodes= [1674, 1675, 1676, 4674, 4675, 4676] persons= [1678, 1679, 1680]
+--- sas= [] oneghe_slice1674 crp= 1
+--- 'expires': 1167127612
+1676 None oneghf_slice1675 nodes= [1675, 1676, 1677, 4675, 4676, 4677] persons= [1679, 1680, 1681]
+--- sas= [] oneghf_slice1675 crp= 1
+--- 'expires': 1167127614
+1677 None oneghg_slice1676 nodes= [1676, 1677, 1678, 4676, 4677, 4678] persons= [1680, 1681, 1682]
+--- sas= [] oneghg_slice1676 crp= 1
+--- 'expires': 1167127616
+1678 None oneghh_slice1677 nodes= [1677, 1678, 1679, 4677, 4678, 4679] persons= [1681, 1682, 1683]
+--- sas= [] oneghh_slice1677 crp= 1
+--- 'expires': 1167127617
+1679 None oneghi_slice1678 nodes= [1678, 1679, 1680, 4678, 4679, 4680] persons= [1682, 1683, 1684]
+--- sas= [] oneghi_slice1678 crp= 1
+--- 'expires': 1167127619
+1680 None oneghj_slice1679 nodes= [1679, 1680, 1681, 4679, 4680, 4681] persons= [1683, 1684, 1685]
+--- sas= [] oneghj_slice1679 crp= 1
+--- 'expires': 1167127620
+1681 None onegia_slice1680 nodes= [1680, 1681, 1682, 4680, 4681, 4682] persons= [1684, 1685, 1686]
+--- sas= [] onegia_slice1680 crp= 1
+--- 'expires': 1167127622
+1682 None onegib_slice1681 nodes= [1681, 1682, 1683, 4681, 4682, 4683] persons= [1685, 1686, 1687]
+--- sas= [] onegib_slice1681 crp= 1
+--- 'expires': 1167127623
+1683 None onegic_slice1682 nodes= [1682, 1683, 1684, 4682, 4683, 4684] persons= [1686, 1687, 1688]
+--- sas= [] onegic_slice1682 crp= 1
+--- 'expires': 1167127625
+1684 None onegid_slice1683 nodes= [1683, 1684, 1685, 4683, 4684, 4685] persons= [1687, 1688, 1689]
+--- sas= [] onegid_slice1683 crp= 1
+--- 'expires': 1167127627
+1685 None onegie_slice1684 nodes= [1684, 1685, 1686, 4684, 4685, 4686] persons= [1688, 1689, 1690]
+--- sas= [] onegie_slice1684 crp= 1
+--- 'expires': 1167127628
+1686 None onegif_slice1685 nodes= [1685, 1686, 1687, 4685, 4686, 4687] persons= [1689, 1690, 1691]
+--- sas= [] onegif_slice1685 crp= 1
+--- 'expires': 1167127630
+1687 None onegig_slice1686 nodes= [1686, 1687, 1688, 4686, 4687, 4688] persons= [1690, 1691, 1692]
+--- sas= [] onegig_slice1686 crp= 1
+--- 'expires': 1167127631
+1688 None onegih_slice1687 nodes= [1687, 1688, 1689, 4687, 4688, 4689] persons= [1691, 1692, 1693]
+--- sas= [] onegih_slice1687 crp= 1
+--- 'expires': 1167127633
+1689 None onegii_slice1688 nodes= [1688, 1689, 1690, 4688, 4689, 4690] persons= [1692, 1693, 1694]
+--- sas= [] onegii_slice1688 crp= 1
+--- 'expires': 1167127634
+1690 None onegij_slice1689 nodes= [1689, 1690, 1691, 4689, 4690, 4691] persons= [1693, 1694, 1695]
+--- sas= [] onegij_slice1689 crp= 1
+--- 'expires': 1167127636
+1691 None onegja_slice1690 nodes= [1690, 1691, 1692, 4690, 4691, 4692] persons= [1694, 1695, 1696]
+--- sas= [] onegja_slice1690 crp= 1
+--- 'expires': 1167127637
+1692 None onegjb_slice1691 nodes= [1691, 1692, 1693, 4691, 4692, 4693] persons= [1695, 1696, 1697]
+--- sas= [] onegjb_slice1691 crp= 1
+--- 'expires': 1167127639
+1693 None onegjc_slice1692 nodes= [1692, 1693, 1694, 4692, 4693, 4694] persons= [1696, 1697, 1698]
+--- sas= [] onegjc_slice1692 crp= 1
+--- 'expires': 1167127640
+1694 None onegjd_slice1693 nodes= [1693, 1694, 1695, 4693, 4694, 4695] persons= [1697, 1698, 1699]
+--- sas= [] onegjd_slice1693 crp= 1
+--- 'expires': 1167127642
+1695 None onegje_slice1694 nodes= [1694, 1695, 1696, 4694, 4695, 4696] persons= [1698, 1699, 1700]
+--- sas= [] onegje_slice1694 crp= 1
+--- 'expires': 1167127644
+1696 None onegjf_slice1695 nodes= [1695, 1696, 1697, 4695, 4696, 4697] persons= [1699, 1700, 1701]
+--- sas= [] onegjf_slice1695 crp= 1
+--- 'expires': 1167127645
+1697 None onegjg_slice1696 nodes= [1696, 1697, 1698, 4696, 4697, 4698] persons= [1700, 1701, 1702]
+--- sas= [] onegjg_slice1696 crp= 1
+--- 'expires': 1167127647
+1698 None onegjh_slice1697 nodes= [1697, 1698, 1699, 4697, 4698, 4699] persons= [1701, 1702, 1703]
+--- sas= [] onegjh_slice1697 crp= 1
+--- 'expires': 1167127648
+1699 None onegji_slice1698 nodes= [1698, 1699, 1700, 4698, 4699, 4700] persons= [1702, 1703, 1704]
+--- sas= [] onegji_slice1698 crp= 1
+--- 'expires': 1167127650
+1700 None onegjj_slice1699 nodes= [1699, 1700, 1701, 4699, 4700, 4701] persons= [1703, 1704, 1705]
+--- sas= [] onegjj_slice1699 crp= 1
+--- 'expires': 1167127651
+1701 None onehaa_slice1700 nodes= [1700, 1701, 1702, 4700, 4701, 4702] persons= [1704, 1705, 1706]
+--- sas= [] onehaa_slice1700 crp= 1
+--- 'expires': 1167127653
+1702 None onehab_slice1701 nodes= [1701, 1702, 1703, 4701, 4702, 4703] persons= [1705, 1706, 1707]
+--- sas= [] onehab_slice1701 crp= 1
+--- 'expires': 1167127655
+1703 None onehac_slice1702 nodes= [1702, 1703, 1704, 4702, 4703, 4704] persons= [1706, 1707, 1708]
+--- sas= [] onehac_slice1702 crp= 1
+--- 'expires': 1167127656
+1704 None onehad_slice1703 nodes= [1703, 1704, 1705, 4703, 4704, 4705] persons= [1707, 1708, 1709]
+--- sas= [] onehad_slice1703 crp= 1
+--- 'expires': 1167127658
+1705 None onehae_slice1704 nodes= [1704, 1705, 1706, 4704, 4705, 4706] persons= [1708, 1709, 1710]
+--- sas= [] onehae_slice1704 crp= 1
+--- 'expires': 1167127659
+1706 None onehaf_slice1705 nodes= [1705, 1706, 1707, 4705, 4706, 4707] persons= [1709, 1710, 1711]
+--- sas= [] onehaf_slice1705 crp= 1
+--- 'expires': 1167127661
+1707 None onehag_slice1706 nodes= [1706, 1707, 1708, 4706, 4707, 4708] persons= [1710, 1711, 1712]
+--- sas= [] onehag_slice1706 crp= 1
+--- 'expires': 1167127662
+1708 None onehah_slice1707 nodes= [1707, 1708, 1709, 4707, 4708, 4709] persons= [1711, 1712, 1713]
+--- sas= [] onehah_slice1707 crp= 1
+--- 'expires': 1167127664
+1709 None onehai_slice1708 nodes= [1708, 1709, 1710, 4708, 4709, 4710] persons= [1712, 1713, 1714]
+--- sas= [] onehai_slice1708 crp= 1
+--- 'expires': 1167127666
+1710 None onehaj_slice1709 nodes= [1709, 1710, 1711, 4709, 4710, 4711] persons= [1713, 1714, 1715]
+--- sas= [] onehaj_slice1709 crp= 1
+--- 'expires': 1167127667
+1711 None onehba_slice1710 nodes= [1710, 1711, 1712, 4710, 4711, 4712] persons= [1714, 1715, 1716]
+--- sas= [] onehba_slice1710 crp= 1
+--- 'expires': 1167127669
+1712 None onehbb_slice1711 nodes= [1711, 1712, 1713, 4711, 4712, 4713] persons= [1715, 1716, 1717]
+--- sas= [] onehbb_slice1711 crp= 1
+--- 'expires': 1167127670
+1713 None onehbc_slice1712 nodes= [1712, 1713, 1714, 4712, 4713, 4714] persons= [1716, 1717, 1718]
+--- sas= [] onehbc_slice1712 crp= 1
+--- 'expires': 1167127672
+1714 None onehbd_slice1713 nodes= [1713, 1714, 1715, 4713, 4714, 4715] persons= [1717, 1718, 1719]
+--- sas= [] onehbd_slice1713 crp= 1
+--- 'expires': 1167127673
+1715 None onehbe_slice1714 nodes= [1714, 1715, 1716, 4714, 4715, 4716] persons= [1718, 1719, 1720]
+--- sas= [] onehbe_slice1714 crp= 1
+--- 'expires': 1167127675
+1716 None onehbf_slice1715 nodes= [1715, 1716, 1717, 4715, 4716, 4717] persons= [1719, 1720, 1721]
+--- sas= [] onehbf_slice1715 crp= 1
+--- 'expires': 1167127677
+1717 None onehbg_slice1716 nodes= [1716, 1717, 1718, 4716, 4717, 4718] persons= [1720, 1721, 1722]
+--- sas= [] onehbg_slice1716 crp= 1
+--- 'expires': 1167127678
+1718 None onehbh_slice1717 nodes= [1717, 1718, 1719, 4717, 4718, 4719] persons= [1721, 1722, 1723]
+--- sas= [] onehbh_slice1717 crp= 1
+--- 'expires': 1167127680
+1719 None onehbi_slice1718 nodes= [1718, 1719, 1720, 4718, 4719, 4720] persons= [1722, 1723, 1724]
+--- sas= [] onehbi_slice1718 crp= 1
+--- 'expires': 1167127681
+1720 None onehbj_slice1719 nodes= [1719, 1720, 1721, 4719, 4720, 4721] persons= [1723, 1724, 1725]
+--- sas= [] onehbj_slice1719 crp= 1
+--- 'expires': 1167127683
+1721 None onehca_slice1720 nodes= [1720, 1721, 1722, 4720, 4721, 4722] persons= [1724, 1725, 1726]
+--- sas= [] onehca_slice1720 crp= 1
+--- 'expires': 1167127685
+1722 None onehcb_slice1721 nodes= [1721, 1722, 1723, 4721, 4722, 4723] persons= [1725, 1726, 1727]
+--- sas= [] onehcb_slice1721 crp= 1
+--- 'expires': 1167127686
+1723 None onehcc_slice1722 nodes= [1722, 1723, 1724, 4722, 4723, 4724] persons= [1726, 1727, 1728]
+--- sas= [] onehcc_slice1722 crp= 1
+--- 'expires': 1167127688
+1724 None onehcd_slice1723 nodes= [1723, 1724, 1725, 4723, 4724, 4725] persons= [1727, 1728, 1729]
+--- sas= [] onehcd_slice1723 crp= 1
+--- 'expires': 1167127689
+1725 None onehce_slice1724 nodes= [1724, 1725, 1726, 4724, 4725, 4726] persons= [1728, 1729, 1730]
+--- sas= [] onehce_slice1724 crp= 1
+--- 'expires': 1167127691
+1726 None onehcf_slice1725 nodes= [1725, 1726, 1727, 4725, 4726, 4727] persons= [1729, 1730, 1731]
+--- sas= [] onehcf_slice1725 crp= 1
+--- 'expires': 1167127693
+1727 None onehcg_slice1726 nodes= [1726, 1727, 1728, 4726, 4727, 4728] persons= [1730, 1731, 1732]
+--- sas= [] onehcg_slice1726 crp= 1
+--- 'expires': 1167127694
+1728 None onehch_slice1727 nodes= [1727, 1728, 1729, 4727, 4728, 4729] persons= [1731, 1732, 1733]
+--- sas= [] onehch_slice1727 crp= 1
+--- 'expires': 1167127696
+1729 None onehci_slice1728 nodes= [1728, 1729, 1730, 4728, 4729, 4730] persons= [1732, 1733, 1734]
+--- sas= [] onehci_slice1728 crp= 1
+--- 'expires': 1167127697
+1730 None onehcj_slice1729 nodes= [1729, 1730, 1731, 4729, 4730, 4731] persons= [1733, 1734, 1735]
+--- sas= [] onehcj_slice1729 crp= 1
+--- 'expires': 1167127699
+1731 None onehda_slice1730 nodes= [1730, 1731, 1732, 4730, 4731, 4732] persons= [1734, 1735, 1736]
+--- sas= [] onehda_slice1730 crp= 1
+--- 'expires': 1167127700
+1732 None onehdb_slice1731 nodes= [1731, 1732, 1733, 4731, 4732, 4733] persons= [1735, 1736, 1737]
+--- sas= [] onehdb_slice1731 crp= 1
+--- 'expires': 1167127702
+1733 None onehdc_slice1732 nodes= [1732, 1733, 1734, 4732, 4733, 4734] persons= [1736, 1737, 1738]
+--- sas= [] onehdc_slice1732 crp= 1
+--- 'expires': 1167127704
+1734 None onehdd_slice1733 nodes= [1733, 1734, 1735, 4733, 4734, 4735] persons= [1737, 1738, 1739]
+--- sas= [] onehdd_slice1733 crp= 1
+--- 'expires': 1167127705
+1735 None onehde_slice1734 nodes= [1734, 1735, 1736, 4734, 4735, 4736] persons= [1738, 1739, 1740]
+--- sas= [] onehde_slice1734 crp= 1
+--- 'expires': 1167127706
+1736 None onehdf_slice1735 nodes= [1735, 1736, 1737, 4735, 4736, 4737] persons= [1739, 1740, 1741]
+--- sas= [] onehdf_slice1735 crp= 1
+--- 'expires': 1167127708
+1737 None onehdg_slice1736 nodes= [1736, 1737, 1738, 4736, 4737, 4738] persons= [1740, 1741, 1742]
+--- sas= [] onehdg_slice1736 crp= 1
+--- 'expires': 1167127709
+1738 None onehdh_slice1737 nodes= [1737, 1738, 1739, 4737, 4738, 4739] persons= [1741, 1742, 1743]
+--- sas= [] onehdh_slice1737 crp= 1
+--- 'expires': 1167127711
+1739 None onehdi_slice1738 nodes= [1738, 1739, 1740, 4738, 4739, 4740] persons= [1742, 1743, 1744]
+--- sas= [] onehdi_slice1738 crp= 1
+--- 'expires': 1167127713
+1740 None onehdj_slice1739 nodes= [1739, 1740, 1741, 4739, 4740, 4741] persons= [1743, 1744, 1745]
+--- sas= [] onehdj_slice1739 crp= 1
+--- 'expires': 1167127714
+1741 None onehea_slice1740 nodes= [1740, 1741, 1742, 4740, 4741, 4742] persons= [1744, 1745, 1746]
+--- sas= [] onehea_slice1740 crp= 1
+--- 'expires': 1167127716
+1742 None oneheb_slice1741 nodes= [1741, 1742, 1743, 4741, 4742, 4743] persons= [1745, 1746, 1747]
+--- sas= [] oneheb_slice1741 crp= 1
+--- 'expires': 1167127717
+1743 None onehec_slice1742 nodes= [1742, 1743, 1744, 4742, 4743, 4744] persons= [1746, 1747, 1748]
+--- sas= [] onehec_slice1742 crp= 1
+--- 'expires': 1167127719
+1744 None onehed_slice1743 nodes= [1743, 1744, 1745, 4743, 4744, 4745] persons= [1747, 1748, 1749]
+--- sas= [] onehed_slice1743 crp= 1
+--- 'expires': 1167127720
+1745 None onehee_slice1744 nodes= [1744, 1745, 1746, 4744, 4745, 4746] persons= [1748, 1749, 1750]
+--- sas= [] onehee_slice1744 crp= 1
+--- 'expires': 1167127722
+1746 None onehef_slice1745 nodes= [1745, 1746, 1747, 4745, 4746, 4747] persons= [1749, 1750, 1751]
+--- sas= [] onehef_slice1745 crp= 1
+--- 'expires': 1167127724
+1747 None oneheg_slice1746 nodes= [1746, 1747, 1748, 4746, 4747, 4748] persons= [1750, 1751, 1752]
+--- sas= [] oneheg_slice1746 crp= 1
+--- 'expires': 1167127725
+1748 None oneheh_slice1747 nodes= [1747, 1748, 1749, 4747, 4748, 4749] persons= [1751, 1752, 1753]
+--- sas= [] oneheh_slice1747 crp= 1
+--- 'expires': 1167127727
+1749 None onehei_slice1748 nodes= [1748, 1749, 1750, 4748, 4749, 4750] persons= [1752, 1753, 1754]
+--- sas= [] onehei_slice1748 crp= 1
+--- 'expires': 1167127728
+1750 None onehej_slice1749 nodes= [1749, 1750, 1751, 4749, 4750, 4751] persons= [1753, 1754, 1755]
+--- sas= [] onehej_slice1749 crp= 1
+--- 'expires': 1167127730
+1751 None onehfa_slice1750 nodes= [1750, 1751, 1752, 4750, 4751, 4752] persons= [1754, 1755, 1756]
+--- sas= [] onehfa_slice1750 crp= 1
+--- 'expires': 1167127732
+1752 None onehfb_slice1751 nodes= [1751, 1752, 1753, 4751, 4752, 4753] persons= [1755, 1756, 1757]
+--- sas= [] onehfb_slice1751 crp= 1
+--- 'expires': 1167127733
+1753 None onehfc_slice1752 nodes= [1752, 1753, 1754, 4752, 4753, 4754] persons= [1756, 1757, 1758]
+--- sas= [] onehfc_slice1752 crp= 1
+--- 'expires': 1167127735
+1754 None onehfd_slice1753 nodes= [1753, 1754, 1755, 4753, 4754, 4755] persons= [1757, 1758, 1759]
+--- sas= [] onehfd_slice1753 crp= 1
+--- 'expires': 1167127737
+1755 None onehfe_slice1754 nodes= [1754, 1755, 1756, 4754, 4755, 4756] persons= [1758, 1759, 1760]
+--- sas= [] onehfe_slice1754 crp= 1
+--- 'expires': 1167127739
+1756 None onehff_slice1755 nodes= [1755, 1756, 1757, 4755, 4756, 4757] persons= [1759, 1760, 1761]
+--- sas= [] onehff_slice1755 crp= 1
+--- 'expires': 1167127740
+1757 None onehfg_slice1756 nodes= [1756, 1757, 1758, 4756, 4757, 4758] persons= [1760, 1761, 1762]
+--- sas= [] onehfg_slice1756 crp= 1
+--- 'expires': 1167127742
+1758 None onehfh_slice1757 nodes= [1757, 1758, 1759, 4757, 4758, 4759] persons= [1761, 1762, 1763]
+--- sas= [] onehfh_slice1757 crp= 1
+--- 'expires': 1167127743
+1759 None onehfi_slice1758 nodes= [1758, 1759, 1760, 4758, 4759, 4760] persons= [1762, 1763, 1764]
+--- sas= [] onehfi_slice1758 crp= 1
+--- 'expires': 1167127745
+1760 None onehfj_slice1759 nodes= [1759, 1760, 1761, 4759, 4760, 4761] persons= [1763, 1764, 1765]
+--- sas= [] onehfj_slice1759 crp= 1
+--- 'expires': 1167127746
+1761 None onehga_slice1760 nodes= [1760, 1761, 1762, 4760, 4761, 4762] persons= [1764, 1765, 1766]
+--- sas= [] onehga_slice1760 crp= 1
+--- 'expires': 1167127748
+1762 None onehgb_slice1761 nodes= [1761, 1762, 1763, 4761, 4762, 4763] persons= [1765, 1766, 1767]
+--- sas= [] onehgb_slice1761 crp= 1
+--- 'expires': 1167127750
+1763 None onehgc_slice1762 nodes= [1762, 1763, 1764, 4762, 4763, 4764] persons= [1766, 1767, 1768]
+--- sas= [] onehgc_slice1762 crp= 1
+--- 'expires': 1167127751
+1764 None onehgd_slice1763 nodes= [1763, 1764, 1765, 4763, 4764, 4765] persons= [1767, 1768, 1769]
+--- sas= [] onehgd_slice1763 crp= 1
+--- 'expires': 1167127753
+1765 None onehge_slice1764 nodes= [1764, 1765, 1766, 4764, 4765, 4766] persons= [1768, 1769, 1770]
+--- sas= [] onehge_slice1764 crp= 1
+--- 'expires': 1167127755
+1766 None onehgf_slice1765 nodes= [1765, 1766, 1767, 4765, 4766, 4767] persons= [1769, 1770, 1771]
+--- sas= [] onehgf_slice1765 crp= 1
+--- 'expires': 1167127756
+1767 None onehgg_slice1766 nodes= [1766, 1767, 1768, 4766, 4767, 4768] persons= [1770, 1771, 1772]
+--- sas= [] onehgg_slice1766 crp= 1
+--- 'expires': 1167127758
+1768 None onehgh_slice1767 nodes= [1767, 1768, 1769, 4767, 4768, 4769] persons= [1771, 1772, 1773]
+--- sas= [] onehgh_slice1767 crp= 1
+--- 'expires': 1167127759
+1769 None onehgi_slice1768 nodes= [1768, 1769, 1770, 4768, 4769, 4770] persons= [1772, 1773, 1774]
+--- sas= [] onehgi_slice1768 crp= 1
+--- 'expires': 1167127761
+1770 None onehgj_slice1769 nodes= [1769, 1770, 1771, 4769, 4770, 4771] persons= [1773, 1774, 1775]
+--- sas= [] onehgj_slice1769 crp= 1
+--- 'expires': 1167127762
+1771 None onehha_slice1770 nodes= [1770, 1771, 1772, 4770, 4771, 4772] persons= [1774, 1775, 1776]
+--- sas= [] onehha_slice1770 crp= 1
+--- 'expires': 1167127764
+1772 None onehhb_slice1771 nodes= [1771, 1772, 1773, 4771, 4772, 4773] persons= [1775, 1776, 1777]
+--- sas= [] onehhb_slice1771 crp= 1
+--- 'expires': 1167127766
+1773 None onehhc_slice1772 nodes= [1772, 1773, 1774, 4772, 4773, 4774] persons= [1776, 1777, 1778]
+--- sas= [] onehhc_slice1772 crp= 1
+--- 'expires': 1167127767
+1774 None onehhd_slice1773 nodes= [1773, 1774, 1775, 4773, 4774, 4775] persons= [1777, 1778, 1779]
+--- sas= [] onehhd_slice1773 crp= 1
+--- 'expires': 1167127769
+1775 None onehhe_slice1774 nodes= [1774, 1775, 1776, 4774, 4775, 4776] persons= [1778, 1779, 1780]
+--- sas= [] onehhe_slice1774 crp= 1
+--- 'expires': 1167127771
+1776 None onehhf_slice1775 nodes= [1775, 1776, 1777, 4775, 4776, 4777] persons= [1779, 1780, 1781]
+--- sas= [] onehhf_slice1775 crp= 1
+--- 'expires': 1167127772
+1777 None onehhg_slice1776 nodes= [1776, 1777, 1778, 4776, 4777, 4778] persons= [1780, 1781, 1782]
+--- sas= [] onehhg_slice1776 crp= 1
+--- 'expires': 1167127774
+1778 None onehhh_slice1777 nodes= [1777, 1778, 1779, 4777, 4778, 4779] persons= [1781, 1782, 1783]
+--- sas= [] onehhh_slice1777 crp= 1
+--- 'expires': 1167127775
+1779 None onehhi_slice1778 nodes= [1778, 1779, 1780, 4778, 4779, 4780] persons= [1782, 1783, 1784]
+--- sas= [] onehhi_slice1778 crp= 1
+--- 'expires': 1167127777
+1780 None onehhj_slice1779 nodes= [1779, 1780, 1781, 4779, 4780, 4781] persons= [1783, 1784, 1785]
+--- sas= [] onehhj_slice1779 crp= 1
+--- 'expires': 1167127779
+1781 None onehia_slice1780 nodes= [1780, 1781, 1782, 4780, 4781, 4782] persons= [1784, 1785, 1786]
+--- sas= [] onehia_slice1780 crp= 1
+--- 'expires': 1167127781
+1782 None onehib_slice1781 nodes= [1781, 1782, 1783, 4781, 4782, 4783] persons= [1785, 1786, 1787]
+--- sas= [] onehib_slice1781 crp= 1
+--- 'expires': 1167127782
+1783 None onehic_slice1782 nodes= [1782, 1783, 1784, 4782, 4783, 4784] persons= [1786, 1787, 1788]
+--- sas= [] onehic_slice1782 crp= 1
+--- 'expires': 1167127784
+1784 None onehid_slice1783 nodes= [1783, 1784, 1785, 4783, 4784, 4785] persons= [1787, 1788, 1789]
+--- sas= [] onehid_slice1783 crp= 1
+--- 'expires': 1167127785
+1785 None onehie_slice1784 nodes= [1784, 1785, 1786, 4784, 4785, 4786] persons= [1788, 1789, 1790]
+--- sas= [] onehie_slice1784 crp= 1
+--- 'expires': 1167127787
+1786 None onehif_slice1785 nodes= [1785, 1786, 1787, 4785, 4786, 4787] persons= [1789, 1790, 1791]
+--- sas= [] onehif_slice1785 crp= 1
+--- 'expires': 1167127789
+1787 None onehig_slice1786 nodes= [1786, 1787, 1788, 4786, 4787, 4788] persons= [1790, 1791, 1792]
+--- sas= [] onehig_slice1786 crp= 1
+--- 'expires': 1167127791
+1788 None onehih_slice1787 nodes= [1787, 1788, 1789, 4787, 4788, 4789] persons= [1791, 1792, 1793]
+--- sas= [] onehih_slice1787 crp= 1
+--- 'expires': 1167127792
+1789 None onehii_slice1788 nodes= [1788, 1789, 1790, 4788, 4789, 4790] persons= [1792, 1793, 1794]
+--- sas= [] onehii_slice1788 crp= 1
+--- 'expires': 1167127794
+1790 None onehij_slice1789 nodes= [1789, 1790, 1791, 4789, 4790, 4791] persons= [1793, 1794, 1795]
+--- sas= [] onehij_slice1789 crp= 1
+--- 'expires': 1167127795
+1791 None onehja_slice1790 nodes= [1790, 1791, 1792, 4790, 4791, 4792] persons= [1794, 1795, 1796]
+--- sas= [] onehja_slice1790 crp= 1
+--- 'expires': 1167127797
+1792 None onehjb_slice1791 nodes= [1791, 1792, 1793, 4791, 4792, 4793] persons= [1795, 1796, 1797]
+--- sas= [] onehjb_slice1791 crp= 1
+--- 'expires': 1167127799
+1793 None onehjc_slice1792 nodes= [1792, 1793, 1794, 4792, 4793, 4794] persons= [1796, 1797, 1798]
+--- sas= [] onehjc_slice1792 crp= 1
+--- 'expires': 1167127800
+1794 None onehjd_slice1793 nodes= [1793, 1794, 1795, 4793, 4794, 4795] persons= [1797, 1798, 1799]
+--- sas= [] onehjd_slice1793 crp= 1
+--- 'expires': 1167127803
+1795 None onehje_slice1794 nodes= [1794, 1795, 1796, 4794, 4795, 4796] persons= [1798, 1799, 1800]
+--- sas= [] onehje_slice1794 crp= 1
+--- 'expires': 1167127804
+1796 None onehjf_slice1795 nodes= [1795, 1796, 1797, 4795, 4796, 4797] persons= [1799, 1800, 1801]
+--- sas= [] onehjf_slice1795 crp= 1
+--- 'expires': 1167127806
+1797 None onehjg_slice1796 nodes= [1796, 1797, 1798, 4796, 4797, 4798] persons= [1800, 1801, 1802]
+--- sas= [] onehjg_slice1796 crp= 1
+--- 'expires': 1167127808
+1798 None onehjh_slice1797 nodes= [1797, 1798, 1799, 4797, 4798, 4799] persons= [1801, 1802, 1803]
+--- sas= [] onehjh_slice1797 crp= 1
+--- 'expires': 1167127809
+1799 None onehji_slice1798 nodes= [1798, 1799, 1800, 4798, 4799, 4800] persons= [1802, 1803, 1804]
+--- sas= [] onehji_slice1798 crp= 1
+--- 'expires': 1167127811
+1800 None onehjj_slice1799 nodes= [1799, 1800, 1801, 4799, 4800, 4801] persons= [1803, 1804, 1805]
+--- sas= [] onehjj_slice1799 crp= 1
+--- 'expires': 1167127813
+1801 None oneiaa_slice1800 nodes= [1800, 1801, 1802, 4800, 4801, 4802] persons= [1804, 1805, 1806]
+--- sas= [] oneiaa_slice1800 crp= 1
+--- 'expires': 1167127814
+1802 None oneiab_slice1801 nodes= [1801, 1802, 1803, 4801, 4802, 4803] persons= [1805, 1806, 1807]
+--- sas= [] oneiab_slice1801 crp= 1
+--- 'expires': 1167127816
+1803 None oneiac_slice1802 nodes= [1802, 1803, 1804, 4802, 4803, 4804] persons= [1806, 1807, 1808]
+--- sas= [] oneiac_slice1802 crp= 1
+--- 'expires': 1167127817
+1804 None oneiad_slice1803 nodes= [1803, 1804, 1805, 4803, 4804, 4805] persons= [1807, 1808, 1809]
+--- sas= [] oneiad_slice1803 crp= 1
+--- 'expires': 1167127819
+1805 None oneiae_slice1804 nodes= [1804, 1805, 1806, 4804, 4805, 4806] persons= [1808, 1809, 1810]
+--- sas= [] oneiae_slice1804 crp= 1
+--- 'expires': 1167127820
+1806 None oneiaf_slice1805 nodes= [1805, 1806, 1807, 4805, 4806, 4807] persons= [1809, 1810, 1811]
+--- sas= [] oneiaf_slice1805 crp= 1
+--- 'expires': 1167127822
+1807 None oneiag_slice1806 nodes= [1806, 1807, 1808, 4806, 4807, 4808] persons= [1810, 1811, 1812]
+--- sas= [] oneiag_slice1806 crp= 1
+--- 'expires': 1167127824
+1808 None oneiah_slice1807 nodes= [1807, 1808, 1809, 4807, 4808, 4809] persons= [1811, 1812, 1813]
+--- sas= [] oneiah_slice1807 crp= 1
+--- 'expires': 1167127825
+1809 None oneiai_slice1808 nodes= [1808, 1809, 1810, 4808, 4809, 4810] persons= [1812, 1813, 1814]
+--- sas= [] oneiai_slice1808 crp= 1
+--- 'expires': 1167127827
+1810 None oneiaj_slice1809 nodes= [1809, 1810, 1811, 4809, 4810, 4811] persons= [1813, 1814, 1815]
+--- sas= [] oneiaj_slice1809 crp= 1
+--- 'expires': 1167127829
+1811 None oneiba_slice1810 nodes= [1810, 1811, 1812, 4810, 4811, 4812] persons= [1814, 1815, 1816]
+--- sas= [] oneiba_slice1810 crp= 1
+--- 'expires': 1167127830
+1812 None oneibb_slice1811 nodes= [1811, 1812, 1813, 4811, 4812, 4813] persons= [1815, 1816, 1817]
+--- sas= [] oneibb_slice1811 crp= 1
+--- 'expires': 1167127832
+1813 None oneibc_slice1812 nodes= [1812, 1813, 1814, 4812, 4813, 4814] persons= [1816, 1817, 1818]
+--- sas= [] oneibc_slice1812 crp= 1
+--- 'expires': 1167127833
+1814 None oneibd_slice1813 nodes= [1813, 1814, 1815, 4813, 4814, 4815] persons= [1817, 1818, 1819]
+--- sas= [] oneibd_slice1813 crp= 1
+--- 'expires': 1167127835
+1815 None oneibe_slice1814 nodes= [1814, 1815, 1816, 4814, 4815, 4816] persons= [1818, 1819, 1820]
+--- sas= [] oneibe_slice1814 crp= 1
+--- 'expires': 1167127836
+1816 None oneibf_slice1815 nodes= [1815, 1816, 1817, 4815, 4816, 4817] persons= [1819, 1820, 1821]
+--- sas= [] oneibf_slice1815 crp= 1
+--- 'expires': 1167127837
+1817 None oneibg_slice1816 nodes= [1816, 1817, 1818, 4816, 4817, 4818] persons= [1820, 1821, 1822]
+--- sas= [] oneibg_slice1816 crp= 1
+--- 'expires': 1167127837
+1818 None oneibh_slice1817 nodes= [1817, 1818, 1819, 4817, 4818, 4819] persons= [1821, 1822, 1823]
+--- sas= [] oneibh_slice1817 crp= 1
+--- 'expires': 1167127838
+1819 None oneibi_slice1818 nodes= [1818, 1819, 1820, 4818, 4819, 4820] persons= [1822, 1823, 1824]
+--- sas= [] oneibi_slice1818 crp= 1
+--- 'expires': 1167127838
+1820 None oneibj_slice1819 nodes= [1819, 1820, 1821, 4819, 4820, 4821] persons= [1823, 1824, 1825]
+--- sas= [] oneibj_slice1819 crp= 1
+--- 'expires': 1167127839
+1821 None oneica_slice1820 nodes= [1820, 1821, 1822, 4820, 4821, 4822] persons= [1824, 1825, 1826]
+--- sas= [] oneica_slice1820 crp= 1
+--- 'expires': 1167127839
+1822 None oneicb_slice1821 nodes= [1821, 1822, 1823, 4821, 4822, 4823] persons= [1825, 1826, 1827]
+--- sas= [] oneicb_slice1821 crp= 1
+--- 'expires': 1167127840
+1823 None oneicc_slice1822 nodes= [1822, 1823, 1824, 4822, 4823, 4824] persons= [1826, 1827, 1828]
+--- sas= [] oneicc_slice1822 crp= 1
+--- 'expires': 1167127840
+1824 None oneicd_slice1823 nodes= [1823, 1824, 1825, 4823, 4824, 4825] persons= [1827, 1828, 1829]
+--- sas= [] oneicd_slice1823 crp= 1
+--- 'expires': 1167127841
+1825 None oneice_slice1824 nodes= [1824, 1825, 1826, 4824, 4825, 4826] persons= [1828, 1829, 1830]
+--- sas= [] oneice_slice1824 crp= 1
+--- 'expires': 1167127841
+1826 None oneicf_slice1825 nodes= [1825, 1826, 1827, 4825, 4826, 4827] persons= [1829, 1830, 1831]
+--- sas= [] oneicf_slice1825 crp= 1
+--- 'expires': 1167127842
+1827 None oneicg_slice1826 nodes= [1826, 1827, 1828, 4826, 4827, 4828] persons= [1830, 1831, 1832]
+--- sas= [] oneicg_slice1826 crp= 1
+--- 'expires': 1167127842
+1828 None oneich_slice1827 nodes= [1827, 1828, 1829, 4827, 4828, 4829] persons= [1831, 1832, 1833]
+--- sas= [] oneich_slice1827 crp= 1
+--- 'expires': 1167127843
+1829 None oneici_slice1828 nodes= [1828, 1829, 1830, 4828, 4829, 4830] persons= [1832, 1833, 1834]
+--- sas= [] oneici_slice1828 crp= 1
+--- 'expires': 1167127843
+1830 None oneicj_slice1829 nodes= [1829, 1830, 1831, 4829, 4830, 4831] persons= [1833, 1834, 1835]
+--- sas= [] oneicj_slice1829 crp= 1
+--- 'expires': 1167127844
+1831 None oneida_slice1830 nodes= [1830, 1831, 1832, 4830, 4831, 4832] persons= [1834, 1835, 1836]
+--- sas= [] oneida_slice1830 crp= 1
+--- 'expires': 1167127844
+1832 None oneidb_slice1831 nodes= [1831, 1832, 1833, 4831, 4832, 4833] persons= [1835, 1836, 1837]
+--- sas= [] oneidb_slice1831 crp= 1
+--- 'expires': 1167127845
+1833 None oneidc_slice1832 nodes= [1832, 1833, 1834, 4832, 4833, 4834] persons= [1836, 1837, 1838]
+--- sas= [] oneidc_slice1832 crp= 1
+--- 'expires': 1167127845
+1834 None oneidd_slice1833 nodes= [1833, 1834, 1835, 4833, 4834, 4835] persons= [1837, 1838, 1839]
+--- sas= [] oneidd_slice1833 crp= 1
+--- 'expires': 1167127846
+1835 None oneide_slice1834 nodes= [1834, 1835, 1836, 4834, 4835, 4836] persons= [1838, 1839, 1840]
+--- sas= [] oneide_slice1834 crp= 1
+--- 'expires': 1167127846
+1836 None oneidf_slice1835 nodes= [1835, 1836, 1837, 4835, 4836, 4837] persons= [1839, 1840, 1841]
+--- sas= [] oneidf_slice1835 crp= 1
+--- 'expires': 1167127847
+1837 None oneidg_slice1836 nodes= [1836, 1837, 1838, 4836, 4837, 4838] persons= [1840, 1841, 1842]
+--- sas= [] oneidg_slice1836 crp= 1
+--- 'expires': 1167127847
+1838 None oneidh_slice1837 nodes= [1837, 1838, 1839, 4837, 4838, 4839] persons= [1841, 1842, 1843]
+--- sas= [] oneidh_slice1837 crp= 1
+--- 'expires': 1167127848
+1839 None oneidi_slice1838 nodes= [1838, 1839, 1840, 4838, 4839, 4840] persons= [1842, 1843, 1844]
+--- sas= [] oneidi_slice1838 crp= 1
+--- 'expires': 1167127848
+1840 None oneidj_slice1839 nodes= [1839, 1840, 1841, 4839, 4840, 4841] persons= [1843, 1844, 1845]
+--- sas= [] oneidj_slice1839 crp= 1
+--- 'expires': 1167127849
+1841 None oneiea_slice1840 nodes= [1840, 1841, 1842, 4840, 4841, 4842] persons= [1844, 1845, 1846]
+--- sas= [] oneiea_slice1840 crp= 1
+--- 'expires': 1167127849
+1842 None oneieb_slice1841 nodes= [1841, 1842, 1843, 4841, 4842, 4843] persons= [1845, 1846, 1847]
+--- sas= [] oneieb_slice1841 crp= 1
+--- 'expires': 1167127850
+1843 None oneiec_slice1842 nodes= [1842, 1843, 1844, 4842, 4843, 4844] persons= [1846, 1847, 1848]
+--- sas= [] oneiec_slice1842 crp= 1
+--- 'expires': 1167127850
+1844 None oneied_slice1843 nodes= [1843, 1844, 1845, 4843, 4844, 4845] persons= [1847, 1848, 1849]
+--- sas= [] oneied_slice1843 crp= 1
+--- 'expires': 1167127851
+1845 None oneiee_slice1844 nodes= [1844, 1845, 1846, 4844, 4845, 4846] persons= [1848, 1849, 1850]
+--- sas= [] oneiee_slice1844 crp= 1
+--- 'expires': 1167127851
+1846 None oneief_slice1845 nodes= [1845, 1846, 1847, 4845, 4846, 4847] persons= [1849, 1850, 1851]
+--- sas= [] oneief_slice1845 crp= 1
+--- 'expires': 1167127852
+1847 None oneieg_slice1846 nodes= [1846, 1847, 1848, 4846, 4847, 4848] persons= [1850, 1851, 1852]
+--- sas= [] oneieg_slice1846 crp= 1
+--- 'expires': 1167127852
+1848 None oneieh_slice1847 nodes= [1847, 1848, 1849, 4847, 4848, 4849] persons= [1851, 1852, 1853]
+--- sas= [] oneieh_slice1847 crp= 1
+--- 'expires': 1167127853
+1849 None oneiei_slice1848 nodes= [1848, 1849, 1850, 4848, 4849, 4850] persons= [1852, 1853, 1854]
+--- sas= [] oneiei_slice1848 crp= 1
+--- 'expires': 1167127853
+1850 None oneiej_slice1849 nodes= [1849, 1850, 1851, 4849, 4850, 4851] persons= [1853, 1854, 1855]
+--- sas= [] oneiej_slice1849 crp= 1
+--- 'expires': 1167127854
+1851 None oneifa_slice1850 nodes= [1850, 1851, 1852, 4850, 4851, 4852] persons= [1854, 1855, 1856]
+--- sas= [] oneifa_slice1850 crp= 1
+--- 'expires': 1167127854
+1852 None oneifb_slice1851 nodes= [1851, 1852, 1853, 4851, 4852, 4853] persons= [1855, 1856, 1857]
+--- sas= [] oneifb_slice1851 crp= 1
+--- 'expires': 1167127855
+1853 None oneifc_slice1852 nodes= [1852, 1853, 1854, 4852, 4853, 4854] persons= [1856, 1857, 1858]
+--- sas= [] oneifc_slice1852 crp= 1
+--- 'expires': 1167127855
+1854 None oneifd_slice1853 nodes= [1853, 1854, 1855, 4853, 4854, 4855] persons= [1857, 1858, 1859]
+--- sas= [] oneifd_slice1853 crp= 1
+--- 'expires': 1167127856
+1855 None oneife_slice1854 nodes= [1854, 1855, 1856, 4854, 4855, 4856] persons= [1858, 1859, 1860]
+--- sas= [] oneife_slice1854 crp= 1
+--- 'expires': 1167127856
+1856 None oneiff_slice1855 nodes= [1855, 1856, 1857, 4855, 4856, 4857] persons= [1859, 1860, 1861]
+--- sas= [] oneiff_slice1855 crp= 1
+--- 'expires': 1167127857
+1857 None oneifg_slice1856 nodes= [1856, 1857, 1858, 4856, 4857, 4858] persons= [1860, 1861, 1862]
+--- sas= [] oneifg_slice1856 crp= 1
+--- 'expires': 1167127857
+1858 None oneifh_slice1857 nodes= [1857, 1858, 1859, 4857, 4858, 4859] persons= [1861, 1862, 1863]
+--- sas= [] oneifh_slice1857 crp= 1
+--- 'expires': 1167127858
+1859 None oneifi_slice1858 nodes= [1858, 1859, 1860, 4858, 4859, 4860] persons= [1862, 1863, 1864]
+--- sas= [] oneifi_slice1858 crp= 1
+--- 'expires': 1167127858
+1860 None oneifj_slice1859 nodes= [1859, 1860, 1861, 4859, 4860, 4861] persons= [1863, 1864, 1865]
+--- sas= [] oneifj_slice1859 crp= 1
+--- 'expires': 1167127859
+1861 None oneiga_slice1860 nodes= [1860, 1861, 1862, 4860, 4861, 4862] persons= [1864, 1865, 1866]
+--- sas= [] oneiga_slice1860 crp= 1
+--- 'expires': 1167127859
+1862 None oneigb_slice1861 nodes= [1861, 1862, 1863, 4861, 4862, 4863] persons= [1865, 1866, 1867]
+--- sas= [] oneigb_slice1861 crp= 1
+--- 'expires': 1167127860
+1863 None oneigc_slice1862 nodes= [1862, 1863, 1864, 4862, 4863, 4864] persons= [1866, 1867, 1868]
+--- sas= [] oneigc_slice1862 crp= 1
+--- 'expires': 1167127860
+1864 None oneigd_slice1863 nodes= [1863, 1864, 1865, 4863, 4864, 4865] persons= [1867, 1868, 1869]
+--- sas= [] oneigd_slice1863 crp= 1
+--- 'expires': 1167127861
+1865 None oneige_slice1864 nodes= [1864, 1865, 1866, 4864, 4865, 4866] persons= [1868, 1869, 1870]
+--- sas= [] oneige_slice1864 crp= 1
+--- 'expires': 1167127861
+1866 None oneigf_slice1865 nodes= [1865, 1866, 1867, 4865, 4866, 4867] persons= [1869, 1870, 1871]
+--- sas= [] oneigf_slice1865 crp= 1
+--- 'expires': 1167127862
+1867 None oneigg_slice1866 nodes= [1866, 1867, 1868, 4866, 4867, 4868] persons= [1870, 1871, 1872]
+--- sas= [] oneigg_slice1866 crp= 1
+--- 'expires': 1167127862
+1868 None oneigh_slice1867 nodes= [1867, 1868, 1869, 4867, 4868, 4869] persons= [1871, 1872, 1873]
+--- sas= [] oneigh_slice1867 crp= 1
+--- 'expires': 1167127863
+1869 None oneigi_slice1868 nodes= [1868, 1869, 1870, 4868, 4869, 4870] persons= [1872, 1873, 1874]
+--- sas= [] oneigi_slice1868 crp= 1
+--- 'expires': 1167127863
+1870 None oneigj_slice1869 nodes= [1869, 1870, 1871, 4869, 4870, 4871] persons= [1873, 1874, 1875]
+--- sas= [] oneigj_slice1869 crp= 1
+--- 'expires': 1167127864
+1871 None oneiha_slice1870 nodes= [1870, 1871, 1872, 4870, 4871, 4872] persons= [1874, 1875, 1876]
+--- sas= [] oneiha_slice1870 crp= 1
+--- 'expires': 1167127864
+1872 None oneihb_slice1871 nodes= [1871, 1872, 1873, 4871, 4872, 4873] persons= [1875, 1876, 1877]
+--- sas= [] oneihb_slice1871 crp= 1
+--- 'expires': 1167127865
+1873 None oneihc_slice1872 nodes= [1872, 1873, 1874, 4872, 4873, 4874] persons= [1876, 1877, 1878]
+--- sas= [] oneihc_slice1872 crp= 1
+--- 'expires': 1167127865
+1874 None oneihd_slice1873 nodes= [1873, 1874, 1875, 4873, 4874, 4875] persons= [1877, 1878, 1879]
+--- sas= [] oneihd_slice1873 crp= 1
+--- 'expires': 1167127866
+1875 None oneihe_slice1874 nodes= [1874, 1875, 1876, 4874, 4875, 4876] persons= [1878, 1879, 1880]
+--- sas= [] oneihe_slice1874 crp= 1
+--- 'expires': 1167127866
+1876 None oneihf_slice1875 nodes= [1875, 1876, 1877, 4875, 4876, 4877] persons= [1879, 1880, 1881]
+--- sas= [] oneihf_slice1875 crp= 1
+--- 'expires': 1167127867
+1877 None oneihg_slice1876 nodes= [1876, 1877, 1878, 4876, 4877, 4878] persons= [1880, 1881, 1882]
+--- sas= [] oneihg_slice1876 crp= 1
+--- 'expires': 1167127867
+1878 None oneihh_slice1877 nodes= [1877, 1878, 1879, 4877, 4878, 4879] persons= [1881, 1882, 1883]
+--- sas= [] oneihh_slice1877 crp= 1
+--- 'expires': 1167127868
+1879 None oneihi_slice1878 nodes= [1878, 1879, 1880, 4878, 4879, 4880] persons= [1882, 1883, 1884]
+--- sas= [] oneihi_slice1878 crp= 1
+--- 'expires': 1167127868
+1880 None oneihj_slice1879 nodes= [1879, 1880, 1881, 4879, 4880, 4881] persons= [1883, 1884, 1885]
+--- sas= [] oneihj_slice1879 crp= 1
+--- 'expires': 1167127869
+1881 None oneiia_slice1880 nodes= [1880, 1881, 1882, 4880, 4881, 4882] persons= [1884, 1885, 1886]
+--- sas= [] oneiia_slice1880 crp= 1
+--- 'expires': 1167127869
+1882 None oneiib_slice1881 nodes= [1881, 1882, 1883, 4881, 4882, 4883] persons= [1885, 1886, 1887]
+--- sas= [] oneiib_slice1881 crp= 1
+--- 'expires': 1167127870
+1883 None oneiic_slice1882 nodes= [1882, 1883, 1884, 4882, 4883, 4884] persons= [1886, 1887, 1888]
+--- sas= [] oneiic_slice1882 crp= 1
+--- 'expires': 1167127870
+1884 None oneiid_slice1883 nodes= [1883, 1884, 1885, 4883, 4884, 4885] persons= [1887, 1888, 1889]
+--- sas= [] oneiid_slice1883 crp= 1
+--- 'expires': 1167127871
+1885 None oneiie_slice1884 nodes= [1884, 1885, 1886, 4884, 4885, 4886] persons= [1888, 1889, 1890]
+--- sas= [] oneiie_slice1884 crp= 1
+--- 'expires': 1167127871
+1886 None oneiif_slice1885 nodes= [1885, 1886, 1887, 4885, 4886, 4887] persons= [1889, 1890, 1891]
+--- sas= [] oneiif_slice1885 crp= 1
+--- 'expires': 1167127872
+1887 None oneiig_slice1886 nodes= [1886, 1887, 1888, 4886, 4887, 4888] persons= [1890, 1891, 1892]
+--- sas= [] oneiig_slice1886 crp= 1
+--- 'expires': 1167127872
+1888 None oneiih_slice1887 nodes= [1887, 1888, 1889, 4887, 4888, 4889] persons= [1891, 1892, 1893]
+--- sas= [] oneiih_slice1887 crp= 1
+--- 'expires': 1167127873
+1889 None oneiii_slice1888 nodes= [1888, 1889, 1890, 4888, 4889, 4890] persons= [1892, 1893, 1894]
+--- sas= [] oneiii_slice1888 crp= 1
+--- 'expires': 1167127873
+1890 None oneiij_slice1889 nodes= [1889, 1890, 1891, 4889, 4890, 4891] persons= [1893, 1894, 1895]
+--- sas= [] oneiij_slice1889 crp= 1
+--- 'expires': 1167127874
+1891 None oneija_slice1890 nodes= [1890, 1891, 1892, 4890, 4891, 4892] persons= [1894, 1895, 1896]
+--- sas= [] oneija_slice1890 crp= 1
+--- 'expires': 1167127874
+1892 None oneijb_slice1891 nodes= [1891, 1892, 1893, 4891, 4892, 4893] persons= [1895, 1896, 1897]
+--- sas= [] oneijb_slice1891 crp= 1
+--- 'expires': 1167127875
+1893 None oneijc_slice1892 nodes= [1892, 1893, 1894, 4892, 4893, 4894] persons= [1896, 1897, 1898]
+--- sas= [] oneijc_slice1892 crp= 1
+--- 'expires': 1167127875
+1894 None oneijd_slice1893 nodes= [1893, 1894, 1895, 4893, 4894, 4895] persons= [1897, 1898, 1899]
+--- sas= [] oneijd_slice1893 crp= 1
+--- 'expires': 1167127876
+1895 None oneije_slice1894 nodes= [1894, 1895, 1896, 4894, 4895, 4896] persons= [1898, 1899, 1900]
+--- sas= [] oneije_slice1894 crp= 1
+--- 'expires': 1167127876
+1896 None oneijf_slice1895 nodes= [1895, 1896, 1897, 4895, 4896, 4897] persons= [1899, 1900, 1901]
+--- sas= [] oneijf_slice1895 crp= 1
+--- 'expires': 1167127877
+1897 None oneijg_slice1896 nodes= [1896, 1897, 1898, 4896, 4897, 4898] persons= [1900, 1901, 1902]
+--- sas= [] oneijg_slice1896 crp= 1
+--- 'expires': 1167127877
+1898 None oneijh_slice1897 nodes= [1897, 1898, 1899, 4897, 4898, 4899] persons= [1901, 1902, 1903]
+--- sas= [] oneijh_slice1897 crp= 1
+--- 'expires': 1167127878
+1899 None oneiji_slice1898 nodes= [1898, 1899, 1900, 4898, 4899, 4900] persons= [1902, 1903, 1904]
+--- sas= [] oneiji_slice1898 crp= 1
+--- 'expires': 1167127878
+1900 None oneijj_slice1899 nodes= [1899, 1900, 1901, 4899, 4900, 4901] persons= [1903, 1904, 1905]
+--- sas= [] oneijj_slice1899 crp= 1
+--- 'expires': 1167127879
+1901 None onejaa_slice1900 nodes= [1900, 1901, 1902, 4900, 4901, 4902] persons= [1904, 1905, 1906]
+--- sas= [] onejaa_slice1900 crp= 1
+--- 'expires': 1167127879
+1902 None onejab_slice1901 nodes= [1901, 1902, 1903, 4901, 4902, 4903] persons= [1905, 1906, 1907]
+--- sas= [] onejab_slice1901 crp= 1
+--- 'expires': 1167127880
+1903 None onejac_slice1902 nodes= [1902, 1903, 1904, 4902, 4903, 4904] persons= [1906, 1907, 1908]
+--- sas= [] onejac_slice1902 crp= 1
+--- 'expires': 1167127880
+1904 None onejad_slice1903 nodes= [1903, 1904, 1905, 4903, 4904, 4905] persons= [1907, 1908, 1909]
+--- sas= [] onejad_slice1903 crp= 1
+--- 'expires': 1167127881
+1905 None onejae_slice1904 nodes= [1904, 1905, 1906, 4904, 4905, 4906] persons= [1908, 1909, 1910]
+--- sas= [] onejae_slice1904 crp= 1
+--- 'expires': 1167127881
+1906 None onejaf_slice1905 nodes= [1905, 1906, 1907, 4905, 4906, 4907] persons= [1909, 1910, 1911]
+--- sas= [] onejaf_slice1905 crp= 1
+--- 'expires': 1167127882
+1907 None onejag_slice1906 nodes= [1906, 1907, 1908, 4906, 4907, 4908] persons= [1910, 1911, 1912]
+--- sas= [] onejag_slice1906 crp= 1
+--- 'expires': 1167127882
+1908 None onejah_slice1907 nodes= [1907, 1908, 1909, 4907, 4908, 4909] persons= [1911, 1912, 1913]
+--- sas= [] onejah_slice1907 crp= 1
+--- 'expires': 1167127883
+1909 None onejai_slice1908 nodes= [1908, 1909, 1910, 4908, 4909, 4910] persons= [1912, 1913, 1914]
+--- sas= [] onejai_slice1908 crp= 1
+--- 'expires': 1167127883
+1910 None onejaj_slice1909 nodes= [1909, 1910, 1911, 4909, 4910, 4911] persons= [1913, 1914, 1915]
+--- sas= [] onejaj_slice1909 crp= 1
+--- 'expires': 1167127884
+1911 None onejba_slice1910 nodes= [1910, 1911, 1912, 4910, 4911, 4912] persons= [1914, 1915, 1916]
+--- sas= [] onejba_slice1910 crp= 1
+--- 'expires': 1167127884
+1912 None onejbb_slice1911 nodes= [1911, 1912, 1913, 4911, 4912, 4913] persons= [1915, 1916, 1917]
+--- sas= [] onejbb_slice1911 crp= 1
+--- 'expires': 1167127885
+1913 None onejbc_slice1912 nodes= [1912, 1913, 1914, 4912, 4913, 4914] persons= [1916, 1917, 1918]
+--- sas= [] onejbc_slice1912 crp= 1
+--- 'expires': 1167127885
+1914 None onejbd_slice1913 nodes= [1913, 1914, 1915, 4913, 4914, 4915] persons= [1917, 1918, 1919]
+--- sas= [] onejbd_slice1913 crp= 1
+--- 'expires': 1167127886
+1915 None onejbe_slice1914 nodes= [1914, 1915, 1916, 4914, 4915, 4916] persons= [1918, 1919, 1920]
+--- sas= [] onejbe_slice1914 crp= 1
+--- 'expires': 1167127886
+1916 None onejbf_slice1915 nodes= [1915, 1916, 1917, 4915, 4916, 4917] persons= [1919, 1920, 1921]
+--- sas= [] onejbf_slice1915 crp= 1
+--- 'expires': 1167127887
+1917 None onejbg_slice1916 nodes= [1916, 1917, 1918, 4916, 4917, 4918] persons= [1920, 1921, 1922]
+--- sas= [] onejbg_slice1916 crp= 1
+--- 'expires': 1167127887
+1918 None onejbh_slice1917 nodes= [1917, 1918, 1919, 4917, 4918, 4919] persons= [1921, 1922, 1923]
+--- sas= [] onejbh_slice1917 crp= 1
+--- 'expires': 1167127888
+1919 None onejbi_slice1918 nodes= [1918, 1919, 1920, 4918, 4919, 4920] persons= [1922, 1923, 1924]
+--- sas= [] onejbi_slice1918 crp= 1
+--- 'expires': 1167127888
+1920 None onejbj_slice1919 nodes= [1919, 1920, 1921, 4919, 4920, 4921] persons= [1923, 1924, 1925]
+--- sas= [] onejbj_slice1919 crp= 1
+--- 'expires': 1167127889
+1921 None onejca_slice1920 nodes= [1920, 1921, 1922, 4920, 4921, 4922] persons= [1924, 1925, 1926]
+--- sas= [] onejca_slice1920 crp= 1
+--- 'expires': 1167127889
+1922 None onejcb_slice1921 nodes= [1921, 1922, 1923, 4921, 4922, 4923] persons= [1925, 1926, 1927]
+--- sas= [] onejcb_slice1921 crp= 1
+--- 'expires': 1167127890
+1923 None onejcc_slice1922 nodes= [1922, 1923, 1924, 4922, 4923, 4924] persons= [1926, 1927, 1928]
+--- sas= [] onejcc_slice1922 crp= 1
+--- 'expires': 1167127890
+1924 None onejcd_slice1923 nodes= [1923, 1924, 1925, 4923, 4924, 4925] persons= [1927, 1928, 1929]
+--- sas= [] onejcd_slice1923 crp= 1
+--- 'expires': 1167127891
+1925 None onejce_slice1924 nodes= [1924, 1925, 1926, 4924, 4925, 4926] persons= [1928, 1929, 1930]
+--- sas= [] onejce_slice1924 crp= 1
+--- 'expires': 1167127891
+1926 None onejcf_slice1925 nodes= [1925, 1926, 1927, 4925, 4926, 4927] persons= [1929, 1930, 1931]
+--- sas= [] onejcf_slice1925 crp= 1
+--- 'expires': 1167127892
+1927 None onejcg_slice1926 nodes= [1926, 1927, 1928, 4926, 4927, 4928] persons= [1930, 1931, 1932]
+--- sas= [] onejcg_slice1926 crp= 1
+--- 'expires': 1167127892
+1928 None onejch_slice1927 nodes= [1927, 1928, 1929, 4927, 4928, 4929] persons= [1931, 1932, 1933]
+--- sas= [] onejch_slice1927 crp= 1
+--- 'expires': 1167127893
+1929 None onejci_slice1928 nodes= [1928, 1929, 1930, 4928, 4929, 4930] persons= [1932, 1933, 1934]
+--- sas= [] onejci_slice1928 crp= 1
+--- 'expires': 1167127893
+1930 None onejcj_slice1929 nodes= [1929, 1930, 1931, 4929, 4930, 4931] persons= [1933, 1934, 1935]
+--- sas= [] onejcj_slice1929 crp= 1
+--- 'expires': 1167127894
+1931 None onejda_slice1930 nodes= [1930, 1931, 1932, 4930, 4931, 4932] persons= [1934, 1935, 1936]
+--- sas= [] onejda_slice1930 crp= 1
+--- 'expires': 1167127894
+1932 None onejdb_slice1931 nodes= [1931, 1932, 1933, 4931, 4932, 4933] persons= [1935, 1936, 1937]
+--- sas= [] onejdb_slice1931 crp= 1
+--- 'expires': 1167127895
+1933 None onejdc_slice1932 nodes= [1932, 1933, 1934, 4932, 4933, 4934] persons= [1936, 1937, 1938]
+--- sas= [] onejdc_slice1932 crp= 1
+--- 'expires': 1167127895
+1934 None onejdd_slice1933 nodes= [1933, 1934, 1935, 4933, 4934, 4935] persons= [1937, 1938, 1939]
+--- sas= [] onejdd_slice1933 crp= 1
+--- 'expires': 1167127896
+1935 None onejde_slice1934 nodes= [1934, 1935, 1936, 4934, 4935, 4936] persons= [1938, 1939, 1940]
+--- sas= [] onejde_slice1934 crp= 1
+--- 'expires': 1167127896
+1936 None onejdf_slice1935 nodes= [1935, 1936, 1937, 4935, 4936, 4937] persons= [1939, 1940, 1941]
+--- sas= [] onejdf_slice1935 crp= 1
+--- 'expires': 1167127897
+1937 None onejdg_slice1936 nodes= [1936, 1937, 1938, 4936, 4937, 4938] persons= [1940, 1941, 1942]
+--- sas= [] onejdg_slice1936 crp= 1
+--- 'expires': 1167127897
+1938 None onejdh_slice1937 nodes= [1937, 1938, 1939, 4937, 4938, 4939] persons= [1941, 1942, 1943]
+--- sas= [] onejdh_slice1937 crp= 1
+--- 'expires': 1167127898
+1939 None onejdi_slice1938 nodes= [1938, 1939, 1940, 4938, 4939, 4940] persons= [1942, 1943, 1944]
+--- sas= [] onejdi_slice1938 crp= 1
+--- 'expires': 1167127898
+1940 None onejdj_slice1939 nodes= [1939, 1940, 1941, 4939, 4940, 4941] persons= [1943, 1944, 1945]
+--- sas= [] onejdj_slice1939 crp= 1
+--- 'expires': 1167127899
+1941 None onejea_slice1940 nodes= [1940, 1941, 1942, 4940, 4941, 4942] persons= [1944, 1945, 1946]
+--- sas= [] onejea_slice1940 crp= 1
+--- 'expires': 1167127899
+1942 None onejeb_slice1941 nodes= [1941, 1942, 1943, 4941, 4942, 4943] persons= [1945, 1946, 1947]
+--- sas= [] onejeb_slice1941 crp= 1
+--- 'expires': 1167127900
+1943 None onejec_slice1942 nodes= [1942, 1943, 1944, 4942, 4943, 4944] persons= [1946, 1947, 1948]
+--- sas= [] onejec_slice1942 crp= 1
+--- 'expires': 1167127901
+1944 None onejed_slice1943 nodes= [1943, 1944, 1945, 4943, 4944, 4945] persons= [1947, 1948, 1949]
+--- sas= [] onejed_slice1943 crp= 1
+--- 'expires': 1167127901
+1945 None onejee_slice1944 nodes= [1944, 1945, 1946, 4944, 4945, 4946] persons= [1948, 1949, 1950]
+--- sas= [] onejee_slice1944 crp= 1
+--- 'expires': 1167127902
+1946 None onejef_slice1945 nodes= [1945, 1946, 1947, 4945, 4946, 4947] persons= [1949, 1950, 1951]
+--- sas= [] onejef_slice1945 crp= 1
+--- 'expires': 1167127902
+1947 None onejeg_slice1946 nodes= [1946, 1947, 1948, 4946, 4947, 4948] persons= [1950, 1951, 1952]
+--- sas= [] onejeg_slice1946 crp= 1
+--- 'expires': 1167127903
+1948 None onejeh_slice1947 nodes= [1947, 1948, 1949, 4947, 4948, 4949] persons= [1951, 1952, 1953]
+--- sas= [] onejeh_slice1947 crp= 1
+--- 'expires': 1167127903
+1949 None onejei_slice1948 nodes= [1948, 1949, 1950, 4948, 4949, 4950] persons= [1952, 1953, 1954]
+--- sas= [] onejei_slice1948 crp= 1
+--- 'expires': 1167127904
+1950 None onejej_slice1949 nodes= [1949, 1950, 1951, 4949, 4950, 4951] persons= [1953, 1954, 1955]
+--- sas= [] onejej_slice1949 crp= 1
+--- 'expires': 1167127904
+1951 None onejfa_slice1950 nodes= [1950, 1951, 1952, 4950, 4951, 4952] persons= [1954, 1955, 1956]
+--- sas= [] onejfa_slice1950 crp= 1
+--- 'expires': 1167127905
+1952 None onejfb_slice1951 nodes= [1951, 1952, 1953, 4951, 4952, 4953] persons= [1955, 1956, 1957]
+--- sas= [] onejfb_slice1951 crp= 1
+--- 'expires': 1167127905
+1953 None onejfc_slice1952 nodes= [1952, 1953, 1954, 4952, 4953, 4954] persons= [1956, 1957, 1958]
+--- sas= [] onejfc_slice1952 crp= 1
+--- 'expires': 1167127906
+1954 None onejfd_slice1953 nodes= [1953, 1954, 1955, 4953, 4954, 4955] persons= [1957, 1958, 1959]
+--- sas= [] onejfd_slice1953 crp= 1
+--- 'expires': 1167127906
+1955 None onejfe_slice1954 nodes= [1954, 1955, 1956, 4954, 4955, 4956] persons= [1958, 1959, 1960]
+--- sas= [] onejfe_slice1954 crp= 1
+--- 'expires': 1167127907
+1956 None onejff_slice1955 nodes= [1955, 1956, 1957, 4955, 4956, 4957] persons= [1959, 1960, 1961]
+--- sas= [] onejff_slice1955 crp= 1
+--- 'expires': 1167127907
+1957 None onejfg_slice1956 nodes= [1956, 1957, 1958, 4956, 4957, 4958] persons= [1960, 1961, 1962]
+--- sas= [] onejfg_slice1956 crp= 1
+--- 'expires': 1167127908
+1958 None onejfh_slice1957 nodes= [1957, 1958, 1959, 4957, 4958, 4959] persons= [1961, 1962, 1963]
+--- sas= [] onejfh_slice1957 crp= 1
+--- 'expires': 1167127908
+1959 None onejfi_slice1958 nodes= [1958, 1959, 1960, 4958, 4959, 4960] persons= [1962, 1963, 1964]
+--- sas= [] onejfi_slice1958 crp= 1
+--- 'expires': 1167127909
+1960 None onejfj_slice1959 nodes= [1959, 1960, 1961, 4959, 4960, 4961] persons= [1963, 1964, 1965]
+--- sas= [] onejfj_slice1959 crp= 1
+--- 'expires': 1167127909
+1961 None onejga_slice1960 nodes= [1960, 1961, 1962, 4960, 4961, 4962] persons= [1964, 1965, 1966]
+--- sas= [] onejga_slice1960 crp= 1
+--- 'expires': 1167127910
+1962 None onejgb_slice1961 nodes= [1961, 1962, 1963, 4961, 4962, 4963] persons= [1965, 1966, 1967]
+--- sas= [] onejgb_slice1961 crp= 1
+--- 'expires': 1167127910
+1963 None onejgc_slice1962 nodes= [1962, 1963, 1964, 4962, 4963, 4964] persons= [1966, 1967, 1968]
+--- sas= [] onejgc_slice1962 crp= 1
+--- 'expires': 1167127911
+1964 None onejgd_slice1963 nodes= [1963, 1964, 1965, 4963, 4964, 4965] persons= [1967, 1968, 1969]
+--- sas= [] onejgd_slice1963 crp= 1
+--- 'expires': 1167127911
+1965 None onejge_slice1964 nodes= [1964, 1965, 1966, 4964, 4965, 4966] persons= [1968, 1969, 1970]
+--- sas= [] onejge_slice1964 crp= 1
+--- 'expires': 1167127912
+1966 None onejgf_slice1965 nodes= [1965, 1966, 1967, 4965, 4966, 4967] persons= [1969, 1970, 1971]
+--- sas= [] onejgf_slice1965 crp= 1
+--- 'expires': 1167127912
+1967 None onejgg_slice1966 nodes= [1966, 1967, 1968, 4966, 4967, 4968] persons= [1970, 1971, 1972]
+--- sas= [] onejgg_slice1966 crp= 1
+--- 'expires': 1167127913
+1968 None onejgh_slice1967 nodes= [1967, 1968, 1969, 4967, 4968, 4969] persons= [1971, 1972, 1973]
+--- sas= [] onejgh_slice1967 crp= 1
+--- 'expires': 1167127913
+1969 None onejgi_slice1968 nodes= [1968, 1969, 1970, 4968, 4969, 4970] persons= [1972, 1973, 1974]
+--- sas= [] onejgi_slice1968 crp= 1
+--- 'expires': 1167127914
+1970 None onejgj_slice1969 nodes= [1969, 1970, 1971, 4969, 4970, 4971] persons= [1973, 1974, 1975]
+--- sas= [] onejgj_slice1969 crp= 1
+--- 'expires': 1167127914
+1971 None onejha_slice1970 nodes= [1970, 1971, 1972, 4970, 4971, 4972] persons= [1974, 1975, 1976]
+--- sas= [] onejha_slice1970 crp= 1
+--- 'expires': 1167127915
+1972 None onejhb_slice1971 nodes= [1971, 1972, 1973, 4971, 4972, 4973] persons= [1975, 1976, 1977]
+--- sas= [] onejhb_slice1971 crp= 1
+--- 'expires': 1167127915
+1973 None onejhc_slice1972 nodes= [1972, 1973, 1974, 4972, 4973, 4974] persons= [1976, 1977, 1978]
+--- sas= [] onejhc_slice1972 crp= 1
+--- 'expires': 1167127916
+1974 None onejhd_slice1973 nodes= [1973, 1974, 1975, 4973, 4974, 4975] persons= [1977, 1978, 1979]
+--- sas= [] onejhd_slice1973 crp= 1
+--- 'expires': 1167127916
+1975 None onejhe_slice1974 nodes= [1974, 1975, 1976, 4974, 4975, 4976] persons= [1978, 1979, 1980]
+--- sas= [] onejhe_slice1974 crp= 1
+--- 'expires': 1167127917
+1976 None onejhf_slice1975 nodes= [1975, 1976, 1977, 4975, 4976, 4977] persons= [1979, 1980, 1981]
+--- sas= [] onejhf_slice1975 crp= 1
+--- 'expires': 1167127918
+1977 None onejhg_slice1976 nodes= [1976, 1977, 1978, 4976, 4977, 4978] persons= [1980, 1981, 1982]
+--- sas= [] onejhg_slice1976 crp= 1
+--- 'expires': 1167127918
+1978 None onejhh_slice1977 nodes= [1977, 1978, 1979, 4977, 4978, 4979] persons= [1981, 1982, 1983]
+--- sas= [] onejhh_slice1977 crp= 1
+--- 'expires': 1167127919
+1979 None onejhi_slice1978 nodes= [1978, 1979, 1980, 4978, 4979, 4980] persons= [1982, 1983, 1984]
+--- sas= [] onejhi_slice1978 crp= 1
+--- 'expires': 1167127919
+1980 None onejhj_slice1979 nodes= [1979, 1980, 1981, 4979, 4980, 4981] persons= [1983, 1984, 1985]
+--- sas= [] onejhj_slice1979 crp= 1
+--- 'expires': 1167127920
+1981 None onejia_slice1980 nodes= [1980, 1981, 1982, 4980, 4981, 4982] persons= [1984, 1985, 1986]
+--- sas= [] onejia_slice1980 crp= 1
+--- 'expires': 1167127920
+1982 None onejib_slice1981 nodes= [1981, 1982, 1983, 4981, 4982, 4983] persons= [1985, 1986, 1987]
+--- sas= [] onejib_slice1981 crp= 1
+--- 'expires': 1167127921
+1983 None onejic_slice1982 nodes= [1982, 1983, 1984, 4982, 4983, 4984] persons= [1986, 1987, 1988]
+--- sas= [] onejic_slice1982 crp= 1
+--- 'expires': 1167127921
+1984 None onejid_slice1983 nodes= [1983, 1984, 1985, 4983, 4984, 4985] persons= [1987, 1988, 1989]
+--- sas= [] onejid_slice1983 crp= 1
+--- 'expires': 1167127922
+1985 None onejie_slice1984 nodes= [1984, 1985, 1986, 4984, 4985, 4986] persons= [1988, 1989, 1990]
+--- sas= [] onejie_slice1984 crp= 1
+--- 'expires': 1167127922
+1986 None onejif_slice1985 nodes= [1985, 1986, 1987, 4985, 4986, 4987] persons= [1989, 1990, 1991]
+--- sas= [] onejif_slice1985 crp= 1
+--- 'expires': 1167127923
+1987 None onejig_slice1986 nodes= [1986, 1987, 1988, 4986, 4987, 4988] persons= [1990, 1991, 1992]
+--- sas= [] onejig_slice1986 crp= 1
+--- 'expires': 1167127923
+1988 None onejih_slice1987 nodes= [1987, 1988, 1989, 4987, 4988, 4989] persons= [1991, 1992, 1993]
+--- sas= [] onejih_slice1987 crp= 1
+--- 'expires': 1167127924
+1989 None onejii_slice1988 nodes= [1988, 1989, 1990, 4988, 4989, 4990] persons= [1992, 1993, 1994]
+--- sas= [] onejii_slice1988 crp= 1
+--- 'expires': 1167127924
+1990 None onejij_slice1989 nodes= [1989, 1990, 1991, 4989, 4990, 4991] persons= [1993, 1994, 1995]
+--- sas= [] onejij_slice1989 crp= 1
+--- 'expires': 1167127925
+1991 None onejja_slice1990 nodes= [1990, 1991, 1992, 4990, 4991, 4992] persons= [1994, 1995, 1996]
+--- sas= [] onejja_slice1990 crp= 1
+--- 'expires': 1167127925
+1992 None onejjb_slice1991 nodes= [1991, 1992, 1993, 4991, 4992, 4993] persons= [1995, 1996, 1997]
+--- sas= [] onejjb_slice1991 crp= 1
+--- 'expires': 1167127926
+1993 None onejjc_slice1992 nodes= [1992, 1993, 1994, 4992, 4993, 4994] persons= [1996, 1997, 1998]
+--- sas= [] onejjc_slice1992 crp= 1
+--- 'expires': 1167127926
+1994 None onejjd_slice1993 nodes= [1993, 1994, 1995, 4993, 4994, 4995] persons= [1997, 1998, 1999]
+--- sas= [] onejjd_slice1993 crp= 1
+--- 'expires': 1167127927
+1995 None onejje_slice1994 nodes= [1994, 1995, 1996, 4994, 4995, 4996] persons= [1998, 1999, 2000]
+--- sas= [] onejje_slice1994 crp= 1
+--- 'expires': 1167127927
+1996 None onejjf_slice1995 nodes= [1995, 1996, 1997, 4995, 4996, 4997] persons= [1999, 2000, 2001]
+--- sas= [] onejjf_slice1995 crp= 1
+--- 'expires': 1167127928
+1997 None onejjg_slice1996 nodes= [1996, 1997, 1998, 4996, 4997, 4998] persons= [2000, 2001, 2002]
+--- sas= [] onejjg_slice1996 crp= 1
+--- 'expires': 1167127928
+1998 None onejjh_slice1997 nodes= [1997, 1998, 1999, 4997, 4998, 4999] persons= [2001, 2002, 2003]
+--- sas= [] onejjh_slice1997 crp= 1
+--- 'expires': 1167127929
+1999 None onejji_slice1998 nodes= [1998, 1999, 2000, 4998, 4999, 5000] persons= [2002, 2003, 2004]
+--- sas= [] onejji_slice1998 crp= 1
+--- 'expires': 1167127929
+2000 None onejjj_slice1999 nodes= [1999, 2000, 2001, 4999, 5000, 5001] persons= [2003, 2004, 5]
+--- sas= [] onejjj_slice1999 crp= 1
+--- 'expires': 1167127930
+2001 None onebaaa_slice2000 nodes= [2000, 2001, 2002, 5000, 5001, 5002] persons= [2004, 5, 6]
+--- sas= [] onebaaa_slice2000 crp= 1
+--- 'expires': 1167127931
+2002 1 thtwo_netflow nodes= [] persons= []
+--- sas= [13, 14, 15] thtwo_netflow crp= 1
+--- 'expires': 1167126460
+01: Slice Attribute Types
+1 None type 20 Type of slice (e.g. vserver)
+2 None system 10 Is a default system slice (1) or not (0 or unset)
+3 None enabled 10 Slice enabled (1 or unset) or suspended (0)
+4 None vref 30 Reference image
+5 None initscript 10 Slice initialization script
+6 None cpu_min 10 Minimum CPU share (ms/s)
+7 None cpu_share 10 Number of CPU shares
+8 None net_min 10 Minimum bandwidth (bps)
+9 None net_max 10 Maximum bandwidth (bps)
+10 None net_avg 10 Average bandwidth (bps)
+11 None net_share 10 Number of bandwidth shares
+12 None net2_min 10 Minimum bandwidth over routes exempt from node bandwidth limits (bps)
+13 None net2_max 10 Maximum bandwidth over routes exempt from node bandwidth limits (bps)
+14 None net2_avg 10 Average bandwidth over routes exempt from node bandwidth limits (bps)
+15 None net2_share 10 Number of bandwidth shares over routes exempt from node bandwidth limits
+16 None disk_max 10 Disk quota (1k disk blocks)
+17 None proper_op 10 Proper operation (e.g. bind_socket)
+18 None plc_slice_type 20 Type of slice rspec to be created
+19 None plc_agent_version 10 Version of PLC agent (slice creation service) software to be deployed
+20 None plc_ticket_pubkey 10 Public key used to verify PLC-signed tickets
+21 None sat_1 10 custom sat on plc1
+22 1 sat_2 10 custom sat on plc2
+01: Slice Attributes
+1 None system AT_id: 2
+--- v= 1 sl= 1 n= None
+2 None vref AT_id: 4
+--- v= planetflow sl= 1 n= None
+3 None proper_op AT_id: 17
+--- v= open file=/etc/passwd, flags=r sl= 1 n= None
+4 None proper_op AT_id: 17
+--- v= create_socket sl= 1 n= None
+5 None proper_op AT_id: 17
+--- v= bind_socket sl= 1 n= None
+6 None sat_1 AT_id: 21
+--- v= custom sat/all nodes sl= 2 n= None
+7 None sat_1 AT_id: 21
+--- v= custom sat/node1 sl= 2 n= 1
+8 None net_max AT_id: 9
+--- v= predefined sat/all nodes sl= 2 n= None
+9 None net_max AT_id: 9
+--- v= predefined sat/node1 sl= 2 n= 1
+13 1 system AT_id: 2
+--- v= 1 sl= 2002 n= None
+14 1 vref AT_id: 4
+--- v= planetflow sl= 2002 n= None
+15 1 proper_op AT_id: 17
+--- v= open file=/etc/passwd, flags=r sl= 2002 n= None
++++ 1800.80 seconds ellapsed (47.90)
+01: Gathering all slivers
++++ 2337.45 seconds ellapsed (536.65)
+01: SLIVERS for first 3 nodes
+01: SLIVERS for : hostname n1-001.plc1.org
+01: 31 config files
+01: SLIVER on hostname n1-001.plc1.org, s= thone_netflow
+01: KEYS[]
+01: ATTRIBUTES[    {'name': 'system', 'value': '1'},
+     {'name': 'vref', 'value': 'planetflow'},
+     {'name': 'proper_op', 'value': 'open file=/etc/passwd, flags=r'},
+     {'name': 'proper_op', 'value': 'create_socket'},
+     {'name': 'proper_op', 'value': 'bind_socket'}]
+01: SLIVER on hostname n1-001.plc1.org, s= oneb_slice1
+01: KEYS[    {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user1-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user2-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user3-key1'}]
+01: ATTRIBUTES[    {'name': 'sat_1', 'value': 'custom sat/node1'},
+     {'name': 'net_max', 'value': 'predefined sat/node1'}]
+01: SLIVERS for : hostname n1-002.plc1.org
+01: 31 config files
+01: SLIVER on hostname n1-002.plc1.org, s= thone_netflow
+01: KEYS[]
+01: ATTRIBUTES[    {'name': 'system', 'value': '1'},
+     {'name': 'vref', 'value': 'planetflow'},
+     {'name': 'proper_op', 'value': 'open file=/etc/passwd, flags=r'},
+     {'name': 'proper_op', 'value': 'create_socket'},
+     {'name': 'proper_op', 'value': 'bind_socket'}]
+01: SLIVER on hostname n1-002.plc1.org, s= oneb_slice1
+01: KEYS[    {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user1-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user2-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user3-key1'}]
+01: ATTRIBUTES[    {'name': 'sat_1', 'value': 'custom sat/all nodes'},
+     {'name': 'net_max', 'value': 'predefined sat/all nodes'}]
+01: SLIVER on hostname n1-002.plc1.org, s= onec_slice2
+01: KEYS[    {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user2-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user3-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user4-key1'}]
+01: ATTRIBUTES[]
+01: SLIVERS for : hostname n1-003.plc1.org
+01: 31 config files
+01: SLIVER on hostname n1-003.plc1.org, s= thone_netflow
+01: KEYS[]
+01: ATTRIBUTES[    {'name': 'system', 'value': '1'},
+     {'name': 'vref', 'value': 'planetflow'},
+     {'name': 'proper_op', 'value': 'open file=/etc/passwd, flags=r'},
+     {'name': 'proper_op', 'value': 'create_socket'},
+     {'name': 'proper_op', 'value': 'bind_socket'}]
+01: SLIVER on hostname n1-003.plc1.org, s= oneb_slice1
+01: KEYS[    {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user1-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user2-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user3-key1'}]
+01: ATTRIBUTES[    {'name': 'sat_1', 'value': 'custom sat/all nodes'},
+     {'name': 'net_max', 'value': 'predefined sat/all nodes'}]
+01: SLIVER on hostname n1-003.plc1.org, s= onec_slice2
+01: KEYS[    {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user2-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user3-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user4-key1'}]
+01: ATTRIBUTES[]
+01: SLIVER on hostname n1-003.plc1.org, s= oned_slice3
+01: KEYS[    {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user3-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user4-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user5-key1'}]
+01: ATTRIBUTES[]
+01:============================== END DUMP
+02:============================== DUMPING
+02: SITES
+1 None thtwo Thierry plc2 Central []
+2 None twob Thierry plc2 [1, 1001, 2001]
+3 None twoc Thierry plc2 [2, 1002, 2002]
+4 None twod Thierry plc2 [3, 1003, 2003]
+5 None twoe Thierry plc2 [4, 1004, 2004]
+6 None twof Thierry plc2 [5, 1005, 2005]
+7 None twog Thierry plc2 [6, 1006, 2006]
+8 None twoh Thierry plc2 [7, 1007, 2007]
+9 None twoi Thierry plc2 [8, 1008, 2008]
+10 None twoj Thierry plc2 [9, 1009, 2009]
+11 None twoba Thierry plc2 [10, 1010, 2010]
+12 None twobb Thierry plc2 [11, 1011, 2011]
+13 None twobc Thierry plc2 [12, 1012, 2012]
+14 None twobd Thierry plc2 [13, 1013, 2013]
+15 None twobe Thierry plc2 [14, 1014, 2014]
+16 None twobf Thierry plc2 [15, 1015, 2015]
+17 None twobg Thierry plc2 [16, 1016, 2016]
+18 None twobh Thierry plc2 [17, 1017, 2017]
+19 None twobi Thierry plc2 [18, 1018, 2018]
+20 None twobj Thierry plc2 [19, 1019, 2019]
+21 None twoca Thierry plc2 [20, 1020, 2020]
+22 None twocb Thierry plc2 [21, 1021, 2021]
+23 None twocc Thierry plc2 [22, 1022, 2022]
+24 None twocd Thierry plc2 [23, 1023, 2023]
+25 None twoce Thierry plc2 [24, 1024, 2024]
+26 None twocf Thierry plc2 [25, 1025, 2025]
+27 None twocg Thierry plc2 [26, 1026, 2026]
+28 None twoch Thierry plc2 [27, 1027, 2027]
+29 None twoci Thierry plc2 [28, 1028, 2028]
+30 None twocj Thierry plc2 [29, 1029, 2029]
+31 None twoda Thierry plc2 [30, 1030, 2030]
+32 None twodb Thierry plc2 [31, 1031, 2031]
+33 None twodc Thierry plc2 [32, 1032, 2032]
+34 None twodd Thierry plc2 [33, 1033, 2033]
+35 None twode Thierry plc2 [34, 1034, 2034]
+36 None twodf Thierry plc2 [35, 1035, 2035]
+37 None twodg Thierry plc2 [36, 1036, 2036]
+38 None twodh Thierry plc2 [37, 1037, 2037]
+39 None twodi Thierry plc2 [38, 1038, 2038]
+40 None twodj Thierry plc2 [39, 1039, 2039]
+41 None twoea Thierry plc2 [40, 1040, 2040]
+42 None twoeb Thierry plc2 [41, 1041, 2041]
+43 None twoec Thierry plc2 [42, 1042, 2042]
+44 None twoed Thierry plc2 [43, 1043, 2043]
+45 None twoee Thierry plc2 [44, 1044, 2044]
+46 None twoef Thierry plc2 [45, 1045, 2045]
+47 None twoeg Thierry plc2 [46, 1046, 2046]
+48 None twoeh Thierry plc2 [47, 1047, 2047]
+49 None twoei Thierry plc2 [48, 1048, 2048]
+50 None twoej Thierry plc2 [49, 1049, 2049]
+51 None twofa Thierry plc2 [50, 1050, 2050]
+52 None twofb Thierry plc2 [51, 1051, 2051]
+53 None twofc Thierry plc2 [52, 1052, 2052]
+54 None twofd Thierry plc2 [53, 1053, 2053]
+55 None twofe Thierry plc2 [54, 1054, 2054]
+56 None twoff Thierry plc2 [55, 1055, 2055]
+57 None twofg Thierry plc2 [56, 1056, 2056]
+58 None twofh Thierry plc2 [57, 1057, 2057]
+59 None twofi Thierry plc2 [58, 1058, 2058]
+60 None twofj Thierry plc2 [59, 1059, 2059]
+61 None twoga Thierry plc2 [60, 1060, 2060]
+62 None twogb Thierry plc2 [61, 1061, 2061]
+63 None twogc Thierry plc2 [62, 1062, 2062]
+64 None twogd Thierry plc2 [63, 1063, 2063]
+65 None twoge Thierry plc2 [64, 1064, 2064]
+66 None twogf Thierry plc2 [65, 1065, 2065]
+67 None twogg Thierry plc2 [66, 1066, 2066]
+68 None twogh Thierry plc2 [67, 1067, 2067]
+69 None twogi Thierry plc2 [68, 1068, 2068]
+70 None twogj Thierry plc2 [69, 1069, 2069]
+71 None twoha Thierry plc2 [70, 1070, 2070]
+72 None twohb Thierry plc2 [71, 1071, 2071]
+73 None twohc Thierry plc2 [72, 1072, 2072]
+74 None twohd Thierry plc2 [73, 1073, 2073]
+75 None twohe Thierry plc2 [74, 1074, 2074]
+76 None twohf Thierry plc2 [75, 1075, 2075]
+77 None twohg Thierry plc2 [76, 1076, 2076]
+78 None twohh Thierry plc2 [77, 1077, 2077]
+79 None twohi Thierry plc2 [78, 1078, 2078]
+80 None twohj Thierry plc2 [79, 1079, 2079]
+81 None twoia Thierry plc2 [80, 1080, 2080]
+82 None twoib Thierry plc2 [81, 1081, 2081]
+83 None twoic Thierry plc2 [82, 1082, 2082]
+84 None twoid Thierry plc2 [83, 1083, 2083]
+85 None twoie Thierry plc2 [84, 1084, 2084]
+86 None twoif Thierry plc2 [85, 1085, 2085]
+87 None twoig Thierry plc2 [86, 1086, 2086]
+88 None twoih Thierry plc2 [87, 1087, 2087]
+89 None twoii Thierry plc2 [88, 1088, 2088]
+90 None twoij Thierry plc2 [89, 1089, 2089]
+91 None twoja Thierry plc2 [90, 1090, 2090]
+92 None twojb Thierry plc2 [91, 1091, 2091]
+93 None twojc Thierry plc2 [92, 1092, 2092]
+94 None twojd Thierry plc2 [93, 1093, 2093]
+95 None twoje Thierry plc2 [94, 1094, 2094]
+96 None twojf Thierry plc2 [95, 1095, 2095]
+97 None twojg Thierry plc2 [96, 1096, 2096]
+98 None twojh Thierry plc2 [97, 1097, 2097]
+99 None twoji Thierry plc2 [98, 1098, 2098]
+100 None twojj Thierry plc2 [99, 1099, 2099]
+101 None twobaa Thierry plc2 [100, 1100, 2100]
+102 None twobab Thierry plc2 [101, 1101, 2101]
+103 None twobac Thierry plc2 [102, 1102, 2102]
+104 None twobad Thierry plc2 [103, 1103, 2103]
+105 None twobae Thierry plc2 [104, 1104, 2104]
+106 None twobaf Thierry plc2 [105, 1105, 2105]
+107 None twobag Thierry plc2 [106, 1106, 2106]
+108 None twobah Thierry plc2 [107, 1107, 2107]
+109 None twobai Thierry plc2 [108, 1108, 2108]
+110 None twobaj Thierry plc2 [109, 1109, 2109]
+111 None twobba Thierry plc2 [110, 1110, 2110]
+112 None twobbb Thierry plc2 [111, 1111, 2111]
+113 None twobbc Thierry plc2 [112, 1112, 2112]
+114 None twobbd Thierry plc2 [113, 1113, 2113]
+115 None twobbe Thierry plc2 [114, 1114, 2114]
+116 None twobbf Thierry plc2 [115, 1115, 2115]
+117 None twobbg Thierry plc2 [116, 1116, 2116]
+118 None twobbh Thierry plc2 [117, 1117, 2117]
+119 None twobbi Thierry plc2 [118, 1118, 2118]
+120 None twobbj Thierry plc2 [119, 1119, 2119]
+121 None twobca Thierry plc2 [120, 1120, 2120]
+122 None twobcb Thierry plc2 [121, 1121, 2121]
+123 None twobcc Thierry plc2 [122, 1122, 2122]
+124 None twobcd Thierry plc2 [123, 1123, 2123]
+125 None twobce Thierry plc2 [124, 1124, 2124]
+126 None twobcf Thierry plc2 [125, 1125, 2125]
+127 None twobcg Thierry plc2 [126, 1126, 2126]
+128 None twobch Thierry plc2 [127, 1127, 2127]
+129 None twobci Thierry plc2 [128, 1128, 2128]
+130 None twobcj Thierry plc2 [129, 1129, 2129]
+131 None twobda Thierry plc2 [130, 1130, 2130]
+132 None twobdb Thierry plc2 [131, 1131, 2131]
+133 None twobdc Thierry plc2 [132, 1132, 2132]
+134 None twobdd Thierry plc2 [133, 1133, 2133]
+135 None twobde Thierry plc2 [134, 1134, 2134]
+136 None twobdf Thierry plc2 [135, 1135, 2135]
+137 None twobdg Thierry plc2 [136, 1136, 2136]
+138 None twobdh Thierry plc2 [137, 1137, 2137]
+139 None twobdi Thierry plc2 [138, 1138, 2138]
+140 None twobdj Thierry plc2 [139, 1139, 2139]
+141 None twobea Thierry plc2 [140, 1140, 2140]
+142 None twobeb Thierry plc2 [141, 1141, 2141]
+143 None twobec Thierry plc2 [142, 1142, 2142]
+144 None twobed Thierry plc2 [143, 1143, 2143]
+145 None twobee Thierry plc2 [144, 1144, 2144]
+146 None twobef Thierry plc2 [145, 1145, 2145]
+147 None twobeg Thierry plc2 [146, 1146, 2146]
+148 None twobeh Thierry plc2 [147, 1147, 2147]
+149 None twobei Thierry plc2 [148, 1148, 2148]
+150 None twobej Thierry plc2 [149, 1149, 2149]
+151 None twobfa Thierry plc2 [150, 1150, 2150]
+152 None twobfb Thierry plc2 [151, 1151, 2151]
+153 None twobfc Thierry plc2 [152, 1152, 2152]
+154 None twobfd Thierry plc2 [153, 1153, 2153]
+155 None twobfe Thierry plc2 [154, 1154, 2154]
+156 None twobff Thierry plc2 [155, 1155, 2155]
+157 None twobfg Thierry plc2 [156, 1156, 2156]
+158 None twobfh Thierry plc2 [157, 1157, 2157]
+159 None twobfi Thierry plc2 [158, 1158, 2158]
+160 None twobfj Thierry plc2 [159, 1159, 2159]
+161 None twobga Thierry plc2 [160, 1160, 2160]
+162 None twobgb Thierry plc2 [161, 1161, 2161]
+163 None twobgc Thierry plc2 [162, 1162, 2162]
+164 None twobgd Thierry plc2 [163, 1163, 2163]
+165 None twobge Thierry plc2 [164, 1164, 2164]
+166 None twobgf Thierry plc2 [165, 1165, 2165]
+167 None twobgg Thierry plc2 [166, 1166, 2166]
+168 None twobgh Thierry plc2 [167, 1167, 2167]
+169 None twobgi Thierry plc2 [168, 1168, 2168]
+170 None twobgj Thierry plc2 [169, 1169, 2169]
+171 None twobha Thierry plc2 [170, 1170, 2170]
+172 None twobhb Thierry plc2 [171, 1171, 2171]
+173 None twobhc Thierry plc2 [172, 1172, 2172]
+174 None twobhd Thierry plc2 [173, 1173, 2173]
+175 None twobhe Thierry plc2 [174, 1174, 2174]
+176 None twobhf Thierry plc2 [175, 1175, 2175]
+177 None twobhg Thierry plc2 [176, 1176, 2176]
+178 None twobhh Thierry plc2 [177, 1177, 2177]
+179 None twobhi Thierry plc2 [178, 1178, 2178]
+180 None twobhj Thierry plc2 [179, 1179, 2179]
+181 None twobia Thierry plc2 [180, 1180, 2180]
+182 None twobib Thierry plc2 [181, 1181, 2181]
+183 None twobic Thierry plc2 [182, 1182, 2182]
+184 None twobid Thierry plc2 [183, 1183, 2183]
+185 None twobie Thierry plc2 [184, 1184, 2184]
+186 None twobif Thierry plc2 [185, 1185, 2185]
+187 None twobig Thierry plc2 [186, 1186, 2186]
+188 None twobih Thierry plc2 [187, 1187, 2187]
+189 None twobii Thierry plc2 [188, 1188, 2188]
+190 None twobij Thierry plc2 [189, 1189, 2189]
+191 None twobja Thierry plc2 [190, 1190, 2190]
+192 None twobjb Thierry plc2 [191, 1191, 2191]
+193 None twobjc Thierry plc2 [192, 1192, 2192]
+194 None twobjd Thierry plc2 [193, 1193, 2193]
+195 None twobje Thierry plc2 [194, 1194, 2194]
+196 None twobjf Thierry plc2 [195, 1195, 2195]
+197 None twobjg Thierry plc2 [196, 1196, 2196]
+198 None twobjh Thierry plc2 [197, 1197, 2197]
+199 None twobji Thierry plc2 [198, 1198, 2198]
+200 None twobjj Thierry plc2 [199, 1199, 2199]
+201 None twocaa Thierry plc2 [200, 1200, 2200]
+202 None twocab Thierry plc2 [201, 1201, 2201]
+203 None twocac Thierry plc2 [202, 1202, 2202]
+204 None twocad Thierry plc2 [203, 1203, 2203]
+205 None twocae Thierry plc2 [204, 1204, 2204]
+206 None twocaf Thierry plc2 [205, 1205, 2205]
+207 None twocag Thierry plc2 [206, 1206, 2206]
+208 None twocah Thierry plc2 [207, 1207, 2207]
+209 None twocai Thierry plc2 [208, 1208, 2208]
+210 None twocaj Thierry plc2 [209, 1209, 2209]
+211 None twocba Thierry plc2 [210, 1210, 2210]
+212 None twocbb Thierry plc2 [211, 1211, 2211]
+213 None twocbc Thierry plc2 [212, 1212, 2212]
+214 None twocbd Thierry plc2 [213, 1213, 2213]
+215 None twocbe Thierry plc2 [214, 1214, 2214]
+216 None twocbf Thierry plc2 [215, 1215, 2215]
+217 None twocbg Thierry plc2 [216, 1216, 2216]
+218 None twocbh Thierry plc2 [217, 1217, 2217]
+219 None twocbi Thierry plc2 [218, 1218, 2218]
+220 None twocbj Thierry plc2 [219, 1219, 2219]
+221 None twocca Thierry plc2 [220, 1220, 2220]
+222 None twoccb Thierry plc2 [221, 1221, 2221]
+223 None twoccc Thierry plc2 [222, 1222, 2222]
+224 None twoccd Thierry plc2 [223, 1223, 2223]
+225 None twocce Thierry plc2 [224, 1224, 2224]
+226 None twoccf Thierry plc2 [225, 1225, 2225]
+227 None twoccg Thierry plc2 [226, 1226, 2226]
+228 None twocch Thierry plc2 [227, 1227, 2227]
+229 None twocci Thierry plc2 [228, 1228, 2228]
+230 None twoccj Thierry plc2 [229, 1229, 2229]
+231 None twocda Thierry plc2 [230, 1230, 2230]
+232 None twocdb Thierry plc2 [231, 1231, 2231]
+233 None twocdc Thierry plc2 [232, 1232, 2232]
+234 None twocdd Thierry plc2 [233, 1233, 2233]
+235 None twocde Thierry plc2 [234, 1234, 2234]
+236 None twocdf Thierry plc2 [235, 1235, 2235]
+237 None twocdg Thierry plc2 [236, 1236, 2236]
+238 None twocdh Thierry plc2 [237, 1237, 2237]
+239 None twocdi Thierry plc2 [238, 1238, 2238]
+240 None twocdj Thierry plc2 [239, 1239, 2239]
+241 None twocea Thierry plc2 [240, 1240, 2240]
+242 None twoceb Thierry plc2 [241, 1241, 2241]
+243 None twocec Thierry plc2 [242, 1242, 2242]
+244 None twoced Thierry plc2 [243, 1243, 2243]
+245 None twocee Thierry plc2 [244, 1244, 2244]
+246 None twocef Thierry plc2 [245, 1245, 2245]
+247 None twoceg Thierry plc2 [246, 1246, 2246]
+248 None twoceh Thierry plc2 [247, 1247, 2247]
+249 None twocei Thierry plc2 [248, 1248, 2248]
+250 None twocej Thierry plc2 [249, 1249, 2249]
+251 None twocfa Thierry plc2 [250, 1250, 2250]
+252 None twocfb Thierry plc2 [251, 1251, 2251]
+253 None twocfc Thierry plc2 [252, 1252, 2252]
+254 None twocfd Thierry plc2 [253, 1253, 2253]
+255 None twocfe Thierry plc2 [254, 1254, 2254]
+256 None twocff Thierry plc2 [255, 1255, 2255]
+257 None twocfg Thierry plc2 [256, 1256, 2256]
+258 None twocfh Thierry plc2 [257, 1257, 2257]
+259 None twocfi Thierry plc2 [258, 1258, 2258]
+260 None twocfj Thierry plc2 [259, 1259, 2259]
+261 None twocga Thierry plc2 [260, 1260, 2260]
+262 None twocgb Thierry plc2 [261, 1261, 2261]
+263 None twocgc Thierry plc2 [262, 1262, 2262]
+264 None twocgd Thierry plc2 [263, 1263, 2263]
+265 None twocge Thierry plc2 [264, 1264, 2264]
+266 None twocgf Thierry plc2 [265, 1265, 2265]
+267 None twocgg Thierry plc2 [266, 1266, 2266]
+268 None twocgh Thierry plc2 [267, 1267, 2267]
+269 None twocgi Thierry plc2 [268, 1268, 2268]
+270 None twocgj Thierry plc2 [269, 1269, 2269]
+271 None twocha Thierry plc2 [270, 1270, 2270]
+272 None twochb Thierry plc2 [271, 1271, 2271]
+273 None twochc Thierry plc2 [272, 1272, 2272]
+274 None twochd Thierry plc2 [273, 1273, 2273]
+275 None twoche Thierry plc2 [274, 1274, 2274]
+276 None twochf Thierry plc2 [275, 1275, 2275]
+277 None twochg Thierry plc2 [276, 1276, 2276]
+278 None twochh Thierry plc2 [277, 1277, 2277]
+279 None twochi Thierry plc2 [278, 1278, 2278]
+280 None twochj Thierry plc2 [279, 1279, 2279]
+281 None twocia Thierry plc2 [280, 1280, 2280]
+282 None twocib Thierry plc2 [281, 1281, 2281]
+283 None twocic Thierry plc2 [282, 1282, 2282]
+284 None twocid Thierry plc2 [283, 1283, 2283]
+285 None twocie Thierry plc2 [284, 1284, 2284]
+286 None twocif Thierry plc2 [285, 1285, 2285]
+287 None twocig Thierry plc2 [286, 1286, 2286]
+288 None twocih Thierry plc2 [287, 1287, 2287]
+289 None twocii Thierry plc2 [288, 1288, 2288]
+290 None twocij Thierry plc2 [289, 1289, 2289]
+291 None twocja Thierry plc2 [290, 1290, 2290]
+292 None twocjb Thierry plc2 [291, 1291, 2291]
+293 None twocjc Thierry plc2 [292, 1292, 2292]
+294 None twocjd Thierry plc2 [293, 1293, 2293]
+295 None twocje Thierry plc2 [294, 1294, 2294]
+296 None twocjf Thierry plc2 [295, 1295, 2295]
+297 None twocjg Thierry plc2 [296, 1296, 2296]
+298 None twocjh Thierry plc2 [297, 1297, 2297]
+299 None twocji Thierry plc2 [298, 1298, 2298]
+300 None twocjj Thierry plc2 [299, 1299, 2299]
+301 None twodaa Thierry plc2 [300, 1300, 2300]
+302 None twodab Thierry plc2 [301, 1301, 2301]
+303 None twodac Thierry plc2 [302, 1302, 2302]
+304 None twodad Thierry plc2 [303, 1303, 2303]
+305 None twodae Thierry plc2 [304, 1304, 2304]
+306 None twodaf Thierry plc2 [305, 1305, 2305]
+307 None twodag Thierry plc2 [306, 1306, 2306]
+308 None twodah Thierry plc2 [307, 1307, 2307]
+309 None twodai Thierry plc2 [308, 1308, 2308]
+310 None twodaj Thierry plc2 [309, 1309, 2309]
+311 None twodba Thierry plc2 [310, 1310, 2310]
+312 None twodbb Thierry plc2 [311, 1311, 2311]
+313 None twodbc Thierry plc2 [312, 1312, 2312]
+314 None twodbd Thierry plc2 [313, 1313, 2313]
+315 None twodbe Thierry plc2 [314, 1314, 2314]
+316 None twodbf Thierry plc2 [315, 1315, 2315]
+317 None twodbg Thierry plc2 [316, 1316, 2316]
+318 None twodbh Thierry plc2 [317, 1317, 2317]
+319 None twodbi Thierry plc2 [318, 1318, 2318]
+320 None twodbj Thierry plc2 [319, 1319, 2319]
+321 None twodca Thierry plc2 [320, 1320, 2320]
+322 None twodcb Thierry plc2 [321, 1321, 2321]
+323 None twodcc Thierry plc2 [322, 1322, 2322]
+324 None twodcd Thierry plc2 [323, 1323, 2323]
+325 None twodce Thierry plc2 [324, 1324, 2324]
+326 None twodcf Thierry plc2 [325, 1325, 2325]
+327 None twodcg Thierry plc2 [326, 1326, 2326]
+328 None twodch Thierry plc2 [327, 1327, 2327]
+329 None twodci Thierry plc2 [328, 1328, 2328]
+330 None twodcj Thierry plc2 [329, 1329, 2329]
+331 None twodda Thierry plc2 [330, 1330, 2330]
+332 None twoddb Thierry plc2 [331, 1331, 2331]
+333 None twoddc Thierry plc2 [332, 1332, 2332]
+334 None twoddd Thierry plc2 [333, 1333, 2333]
+335 None twodde Thierry plc2 [334, 1334, 2334]
+336 None twoddf Thierry plc2 [335, 1335, 2335]
+337 None twoddg Thierry plc2 [336, 1336, 2336]
+338 None twoddh Thierry plc2 [337, 1337, 2337]
+339 None twoddi Thierry plc2 [338, 1338, 2338]
+340 None twoddj Thierry plc2 [339, 1339, 2339]
+341 None twodea Thierry plc2 [340, 1340, 2340]
+342 None twodeb Thierry plc2 [341, 1341, 2341]
+343 None twodec Thierry plc2 [342, 1342, 2342]
+344 None twoded Thierry plc2 [343, 1343, 2343]
+345 None twodee Thierry plc2 [344, 1344, 2344]
+346 None twodef Thierry plc2 [345, 1345, 2345]
+347 None twodeg Thierry plc2 [346, 1346, 2346]
+348 None twodeh Thierry plc2 [347, 1347, 2347]
+349 None twodei Thierry plc2 [348, 1348, 2348]
+350 None twodej Thierry plc2 [349, 1349, 2349]
+351 None twodfa Thierry plc2 [350, 1350, 2350]
+352 None twodfb Thierry plc2 [351, 1351, 2351]
+353 None twodfc Thierry plc2 [352, 1352, 2352]
+354 None twodfd Thierry plc2 [353, 1353, 2353]
+355 None twodfe Thierry plc2 [354, 1354, 2354]
+356 None twodff Thierry plc2 [355, 1355, 2355]
+357 None twodfg Thierry plc2 [356, 1356, 2356]
+358 None twodfh Thierry plc2 [357, 1357, 2357]
+359 None twodfi Thierry plc2 [358, 1358, 2358]
+360 None twodfj Thierry plc2 [359, 1359, 2359]
+361 None twodga Thierry plc2 [360, 1360, 2360]
+362 None twodgb Thierry plc2 [361, 1361, 2361]
+363 None twodgc Thierry plc2 [362, 1362, 2362]
+364 None twodgd Thierry plc2 [363, 1363, 2363]
+365 None twodge Thierry plc2 [364, 1364, 2364]
+366 None twodgf Thierry plc2 [365, 1365, 2365]
+367 None twodgg Thierry plc2 [366, 1366, 2366]
+368 None twodgh Thierry plc2 [367, 1367, 2367]
+369 None twodgi Thierry plc2 [368, 1368, 2368]
+370 None twodgj Thierry plc2 [369, 1369, 2369]
+371 None twodha Thierry plc2 [370, 1370, 2370]
+372 None twodhb Thierry plc2 [371, 1371, 2371]
+373 None twodhc Thierry plc2 [372, 1372, 2372]
+374 None twodhd Thierry plc2 [373, 1373, 2373]
+375 None twodhe Thierry plc2 [374, 1374, 2374]
+376 None twodhf Thierry plc2 [375, 1375, 2375]
+377 None twodhg Thierry plc2 [376, 1376, 2376]
+378 None twodhh Thierry plc2 [377, 1377, 2377]
+379 None twodhi Thierry plc2 [378, 1378, 2378]
+380 None twodhj Thierry plc2 [379, 1379, 2379]
+381 None twodia Thierry plc2 [380, 1380, 2380]
+382 None twodib Thierry plc2 [381, 1381, 2381]
+383 None twodic Thierry plc2 [382, 1382, 2382]
+384 None twodid Thierry plc2 [383, 1383, 2383]
+385 None twodie Thierry plc2 [384, 1384, 2384]
+386 None twodif Thierry plc2 [385, 1385, 2385]
+387 None twodig Thierry plc2 [386, 1386, 2386]
+388 None twodih Thierry plc2 [387, 1387, 2387]
+389 None twodii Thierry plc2 [388, 1388, 2388]
+390 None twodij Thierry plc2 [389, 1389, 2389]
+391 None twodja Thierry plc2 [390, 1390, 2390]
+392 None twodjb Thierry plc2 [391, 1391, 2391]
+393 None twodjc Thierry plc2 [392, 1392, 2392]
+394 None twodjd Thierry plc2 [393, 1393, 2393]
+395 None twodje Thierry plc2 [394, 1394, 2394]
+396 None twodjf Thierry plc2 [395, 1395, 2395]
+397 None twodjg Thierry plc2 [396, 1396, 2396]
+398 None twodjh Thierry plc2 [397, 1397, 2397]
+399 None twodji Thierry plc2 [398, 1398, 2398]
+400 None twodjj Thierry plc2 [399, 1399, 2399]
+401 None twoeaa Thierry plc2 [400, 1400, 2400]
+402 None twoeab Thierry plc2 [401, 1401, 2401]
+403 None twoeac Thierry plc2 [402, 1402, 2402]
+404 None twoead Thierry plc2 [403, 1403, 2403]
+405 None twoeae Thierry plc2 [404, 1404, 2404]
+406 None twoeaf Thierry plc2 [405, 1405, 2405]
+407 None twoeag Thierry plc2 [406, 1406, 2406]
+408 None twoeah Thierry plc2 [407, 1407, 2407]
+409 None twoeai Thierry plc2 [408, 1408, 2408]
+410 None twoeaj Thierry plc2 [409, 1409, 2409]
+411 None twoeba Thierry plc2 [410, 1410, 2410]
+412 None twoebb Thierry plc2 [411, 1411, 2411]
+413 None twoebc Thierry plc2 [412, 1412, 2412]
+414 None twoebd Thierry plc2 [413, 1413, 2413]
+415 None twoebe Thierry plc2 [414, 1414, 2414]
+416 None twoebf Thierry plc2 [415, 1415, 2415]
+417 None twoebg Thierry plc2 [416, 1416, 2416]
+418 None twoebh Thierry plc2 [417, 1417, 2417]
+419 None twoebi Thierry plc2 [418, 1418, 2418]
+420 None twoebj Thierry plc2 [419, 1419, 2419]
+421 None twoeca Thierry plc2 [420, 1420, 2420]
+422 None twoecb Thierry plc2 [421, 1421, 2421]
+423 None twoecc Thierry plc2 [422, 1422, 2422]
+424 None twoecd Thierry plc2 [423, 1423, 2423]
+425 None twoece Thierry plc2 [424, 1424, 2424]
+426 None twoecf Thierry plc2 [425, 1425, 2425]
+427 None twoecg Thierry plc2 [426, 1426, 2426]
+428 None twoech Thierry plc2 [427, 1427, 2427]
+429 None twoeci Thierry plc2 [428, 1428, 2428]
+430 None twoecj Thierry plc2 [429, 1429, 2429]
+431 None twoeda Thierry plc2 [430, 1430, 2430]
+432 None twoedb Thierry plc2 [431, 1431, 2431]
+433 None twoedc Thierry plc2 [432, 1432, 2432]
+434 None twoedd Thierry plc2 [433, 1433, 2433]
+435 None twoede Thierry plc2 [434, 1434, 2434]
+436 None twoedf Thierry plc2 [435, 1435, 2435]
+437 None twoedg Thierry plc2 [436, 1436, 2436]
+438 None twoedh Thierry plc2 [437, 1437, 2437]
+439 None twoedi Thierry plc2 [438, 1438, 2438]
+440 None twoedj Thierry plc2 [439, 1439, 2439]
+441 None twoeea Thierry plc2 [440, 1440, 2440]
+442 None twoeeb Thierry plc2 [441, 1441, 2441]
+443 None twoeec Thierry plc2 [442, 1442, 2442]
+444 None twoeed Thierry plc2 [443, 1443, 2443]
+445 None twoeee Thierry plc2 [444, 1444, 2444]
+446 None twoeef Thierry plc2 [445, 1445, 2445]
+447 None twoeeg Thierry plc2 [446, 1446, 2446]
+448 None twoeeh Thierry plc2 [447, 1447, 2447]
+449 None twoeei Thierry plc2 [448, 1448, 2448]
+450 None twoeej Thierry plc2 [449, 1449, 2449]
+451 None twoefa Thierry plc2 [450, 1450, 2450]
+452 None twoefb Thierry plc2 [451, 1451, 2451]
+453 None twoefc Thierry plc2 [452, 1452, 2452]
+454 None twoefd Thierry plc2 [453, 1453, 2453]
+455 None twoefe Thierry plc2 [454, 1454, 2454]
+456 None twoeff Thierry plc2 [455, 1455, 2455]
+457 None twoefg Thierry plc2 [456, 1456, 2456]
+458 None twoefh Thierry plc2 [457, 1457, 2457]
+459 None twoefi Thierry plc2 [458, 1458, 2458]
+460 None twoefj Thierry plc2 [459, 1459, 2459]
+461 None twoega Thierry plc2 [460, 1460, 2460]
+462 None twoegb Thierry plc2 [461, 1461, 2461]
+463 None twoegc Thierry plc2 [462, 1462, 2462]
+464 None twoegd Thierry plc2 [463, 1463, 2463]
+465 None twoege Thierry plc2 [464, 1464, 2464]
+466 None twoegf Thierry plc2 [465, 1465, 2465]
+467 None twoegg Thierry plc2 [466, 1466, 2466]
+468 None twoegh Thierry plc2 [467, 1467, 2467]
+469 None twoegi Thierry plc2 [468, 1468, 2468]
+470 None twoegj Thierry plc2 [469, 1469, 2469]
+471 None twoeha Thierry plc2 [470, 1470, 2470]
+472 None twoehb Thierry plc2 [471, 1471, 2471]
+473 None twoehc Thierry plc2 [472, 1472, 2472]
+474 None twoehd Thierry plc2 [473, 1473, 2473]
+475 None twoehe Thierry plc2 [474, 1474, 2474]
+476 None twoehf Thierry plc2 [475, 1475, 2475]
+477 None twoehg Thierry plc2 [476, 1476, 2476]
+478 None twoehh Thierry plc2 [477, 1477, 2477]
+479 None twoehi Thierry plc2 [478, 1478, 2478]
+480 None twoehj Thierry plc2 [479, 1479, 2479]
+481 None twoeia Thierry plc2 [480, 1480, 2480]
+482 None twoeib Thierry plc2 [481, 1481, 2481]
+483 None twoeic Thierry plc2 [482, 1482, 2482]
+484 None twoeid Thierry plc2 [483, 1483, 2483]
+485 None twoeie Thierry plc2 [484, 1484, 2484]
+486 None twoeif Thierry plc2 [485, 1485, 2485]
+487 None twoeig Thierry plc2 [486, 1486, 2486]
+488 None twoeih Thierry plc2 [487, 1487, 2487]
+489 None twoeii Thierry plc2 [488, 1488, 2488]
+490 None twoeij Thierry plc2 [489, 1489, 2489]
+491 None twoeja Thierry plc2 [490, 1490, 2490]
+492 None twoejb Thierry plc2 [491, 1491, 2491]
+493 None twoejc Thierry plc2 [492, 1492, 2492]
+494 None twoejd Thierry plc2 [493, 1493, 2493]
+495 None twoeje Thierry plc2 [494, 1494, 2494]
+496 None twoejf Thierry plc2 [495, 1495, 2495]
+497 None twoejg Thierry plc2 [496, 1496, 2496]
+498 None twoejh Thierry plc2 [497, 1497, 2497]
+499 None twoeji Thierry plc2 [498, 1498, 2498]
+500 None twoejj Thierry plc2 [499, 1499, 2499]
+501 None twofaa Thierry plc2 [500, 1500, 2500]
+502 None twofab Thierry plc2 [501, 1501, 2501]
+503 None twofac Thierry plc2 [502, 1502, 2502]
+504 None twofad Thierry plc2 [503, 1503, 2503]
+505 None twofae Thierry plc2 [504, 1504, 2504]
+506 None twofaf Thierry plc2 [505, 1505, 2505]
+507 None twofag Thierry plc2 [506, 1506, 2506]
+508 None twofah Thierry plc2 [507, 1507, 2507]
+509 None twofai Thierry plc2 [508, 1508, 2508]
+510 None twofaj Thierry plc2 [509, 1509, 2509]
+511 None twofba Thierry plc2 [510, 1510, 2510]
+512 None twofbb Thierry plc2 [511, 1511, 2511]
+513 None twofbc Thierry plc2 [512, 1512, 2512]
+514 None twofbd Thierry plc2 [513, 1513, 2513]
+515 None twofbe Thierry plc2 [514, 1514, 2514]
+516 None twofbf Thierry plc2 [515, 1515, 2515]
+517 None twofbg Thierry plc2 [516, 1516, 2516]
+518 None twofbh Thierry plc2 [517, 1517, 2517]
+519 None twofbi Thierry plc2 [518, 1518, 2518]
+520 None twofbj Thierry plc2 [519, 1519, 2519]
+521 None twofca Thierry plc2 [520, 1520, 2520]
+522 None twofcb Thierry plc2 [521, 1521, 2521]
+523 None twofcc Thierry plc2 [522, 1522, 2522]
+524 None twofcd Thierry plc2 [523, 1523, 2523]
+525 None twofce Thierry plc2 [524, 1524, 2524]
+526 None twofcf Thierry plc2 [525, 1525, 2525]
+527 None twofcg Thierry plc2 [526, 1526, 2526]
+528 None twofch Thierry plc2 [527, 1527, 2527]
+529 None twofci Thierry plc2 [528, 1528, 2528]
+530 None twofcj Thierry plc2 [529, 1529, 2529]
+531 None twofda Thierry plc2 [530, 1530, 2530]
+532 None twofdb Thierry plc2 [531, 1531, 2531]
+533 None twofdc Thierry plc2 [532, 1532, 2532]
+534 None twofdd Thierry plc2 [533, 1533, 2533]
+535 None twofde Thierry plc2 [534, 1534, 2534]
+536 None twofdf Thierry plc2 [535, 1535, 2535]
+537 None twofdg Thierry plc2 [536, 1536, 2536]
+538 None twofdh Thierry plc2 [537, 1537, 2537]
+539 None twofdi Thierry plc2 [538, 1538, 2538]
+540 None twofdj Thierry plc2 [539, 1539, 2539]
+541 None twofea Thierry plc2 [540, 1540, 2540]
+542 None twofeb Thierry plc2 [541, 1541, 2541]
+543 None twofec Thierry plc2 [542, 1542, 2542]
+544 None twofed Thierry plc2 [543, 1543, 2543]
+545 None twofee Thierry plc2 [544, 1544, 2544]
+546 None twofef Thierry plc2 [545, 1545, 2545]
+547 None twofeg Thierry plc2 [546, 1546, 2546]
+548 None twofeh Thierry plc2 [547, 1547, 2547]
+549 None twofei Thierry plc2 [548, 1548, 2548]
+550 None twofej Thierry plc2 [549, 1549, 2549]
+551 None twoffa Thierry plc2 [550, 1550, 2550]
+552 None twoffb Thierry plc2 [551, 1551, 2551]
+553 None twoffc Thierry plc2 [552, 1552, 2552]
+554 None twoffd Thierry plc2 [553, 1553, 2553]
+555 None twoffe Thierry plc2 [554, 1554, 2554]
+556 None twofff Thierry plc2 [555, 1555, 2555]
+557 None twoffg Thierry plc2 [556, 1556, 2556]
+558 None twoffh Thierry plc2 [557, 1557, 2557]
+559 None twoffi Thierry plc2 [558, 1558, 2558]
+560 None twoffj Thierry plc2 [559, 1559, 2559]
+561 None twofga Thierry plc2 [560, 1560, 2560]
+562 None twofgb Thierry plc2 [561, 1561, 2561]
+563 None twofgc Thierry plc2 [562, 1562, 2562]
+564 None twofgd Thierry plc2 [563, 1563, 2563]
+565 None twofge Thierry plc2 [564, 1564, 2564]
+566 None twofgf Thierry plc2 [565, 1565, 2565]
+567 None twofgg Thierry plc2 [566, 1566, 2566]
+568 None twofgh Thierry plc2 [567, 1567, 2567]
+569 None twofgi Thierry plc2 [568, 1568, 2568]
+570 None twofgj Thierry plc2 [569, 1569, 2569]
+571 None twofha Thierry plc2 [570, 1570, 2570]
+572 None twofhb Thierry plc2 [571, 1571, 2571]
+573 None twofhc Thierry plc2 [572, 1572, 2572]
+574 None twofhd Thierry plc2 [573, 1573, 2573]
+575 None twofhe Thierry plc2 [574, 1574, 2574]
+576 None twofhf Thierry plc2 [575, 1575, 2575]
+577 None twofhg Thierry plc2 [576, 1576, 2576]
+578 None twofhh Thierry plc2 [577, 1577, 2577]
+579 None twofhi Thierry plc2 [578, 1578, 2578]
+580 None twofhj Thierry plc2 [579, 1579, 2579]
+581 None twofia Thierry plc2 [580, 1580, 2580]
+582 None twofib Thierry plc2 [581, 1581, 2581]
+583 None twofic Thierry plc2 [582, 1582, 2582]
+584 None twofid Thierry plc2 [583, 1583, 2583]
+585 None twofie Thierry plc2 [584, 1584, 2584]
+586 None twofif Thierry plc2 [585, 1585, 2585]
+587 None twofig Thierry plc2 [586, 1586, 2586]
+588 None twofih Thierry plc2 [587, 1587, 2587]
+589 None twofii Thierry plc2 [588, 1588, 2588]
+590 None twofij Thierry plc2 [589, 1589, 2589]
+591 None twofja Thierry plc2 [590, 1590, 2590]
+592 None twofjb Thierry plc2 [591, 1591, 2591]
+593 None twofjc Thierry plc2 [592, 1592, 2592]
+594 None twofjd Thierry plc2 [593, 1593, 2593]
+595 None twofje Thierry plc2 [594, 1594, 2594]
+596 None twofjf Thierry plc2 [595, 1595, 2595]
+597 None twofjg Thierry plc2 [596, 1596, 2596]
+598 None twofjh Thierry plc2 [597, 1597, 2597]
+599 None twofji Thierry plc2 [598, 1598, 2598]
+600 None twofjj Thierry plc2 [599, 1599, 2599]
+601 None twogaa Thierry plc2 [600, 1600, 2600]
+602 None twogab Thierry plc2 [601, 1601, 2601]
+603 None twogac Thierry plc2 [602, 1602, 2602]
+604 None twogad Thierry plc2 [603, 1603, 2603]
+605 None twogae Thierry plc2 [604, 1604, 2604]
+606 None twogaf Thierry plc2 [605, 1605, 2605]
+607 None twogag Thierry plc2 [606, 1606, 2606]
+608 None twogah Thierry plc2 [607, 1607, 2607]
+609 None twogai Thierry plc2 [608, 1608, 2608]
+610 None twogaj Thierry plc2 [609, 1609, 2609]
+611 None twogba Thierry plc2 [610, 1610, 2610]
+612 None twogbb Thierry plc2 [611, 1611, 2611]
+613 None twogbc Thierry plc2 [612, 1612, 2612]
+614 None twogbd Thierry plc2 [613, 1613, 2613]
+615 None twogbe Thierry plc2 [614, 1614, 2614]
+616 None twogbf Thierry plc2 [615, 1615, 2615]
+617 None twogbg Thierry plc2 [616, 1616, 2616]
+618 None twogbh Thierry plc2 [617, 1617, 2617]
+619 None twogbi Thierry plc2 [618, 1618, 2618]
+620 None twogbj Thierry plc2 [619, 1619, 2619]
+621 None twogca Thierry plc2 [620, 1620, 2620]
+622 None twogcb Thierry plc2 [621, 1621, 2621]
+623 None twogcc Thierry plc2 [622, 1622, 2622]
+624 None twogcd Thierry plc2 [623, 1623, 2623]
+625 None twogce Thierry plc2 [624, 1624, 2624]
+626 None twogcf Thierry plc2 [625, 1625, 2625]
+627 None twogcg Thierry plc2 [626, 1626, 2626]
+628 None twogch Thierry plc2 [627, 1627, 2627]
+629 None twogci Thierry plc2 [628, 1628, 2628]
+630 None twogcj Thierry plc2 [629, 1629, 2629]
+631 None twogda Thierry plc2 [630, 1630, 2630]
+632 None twogdb Thierry plc2 [631, 1631, 2631]
+633 None twogdc Thierry plc2 [632, 1632, 2632]
+634 None twogdd Thierry plc2 [633, 1633, 2633]
+635 None twogde Thierry plc2 [634, 1634, 2634]
+636 None twogdf Thierry plc2 [635, 1635, 2635]
+637 None twogdg Thierry plc2 [636, 1636, 2636]
+638 None twogdh Thierry plc2 [637, 1637, 2637]
+639 None twogdi Thierry plc2 [638, 1638, 2638]
+640 None twogdj Thierry plc2 [639, 1639, 2639]
+641 None twogea Thierry plc2 [640, 1640, 2640]
+642 None twogeb Thierry plc2 [641, 1641, 2641]
+643 None twogec Thierry plc2 [642, 1642, 2642]
+644 None twoged Thierry plc2 [643, 1643, 2643]
+645 None twogee Thierry plc2 [644, 1644, 2644]
+646 None twogef Thierry plc2 [645, 1645, 2645]
+647 None twogeg Thierry plc2 [646, 1646, 2646]
+648 None twogeh Thierry plc2 [647, 1647, 2647]
+649 None twogei Thierry plc2 [648, 1648, 2648]
+650 None twogej Thierry plc2 [649, 1649, 2649]
+651 None twogfa Thierry plc2 [650, 1650, 2650]
+652 None twogfb Thierry plc2 [651, 1651, 2651]
+653 None twogfc Thierry plc2 [652, 1652, 2652]
+654 None twogfd Thierry plc2 [653, 1653, 2653]
+655 None twogfe Thierry plc2 [654, 1654, 2654]
+656 None twogff Thierry plc2 [655, 1655, 2655]
+657 None twogfg Thierry plc2 [656, 1656, 2656]
+658 None twogfh Thierry plc2 [657, 1657, 2657]
+659 None twogfi Thierry plc2 [658, 1658, 2658]
+660 None twogfj Thierry plc2 [659, 1659, 2659]
+661 None twogga Thierry plc2 [660, 1660, 2660]
+662 None twoggb Thierry plc2 [661, 1661, 2661]
+663 None twoggc Thierry plc2 [662, 1662, 2662]
+664 None twoggd Thierry plc2 [663, 1663, 2663]
+665 None twogge Thierry plc2 [664, 1664, 2664]
+666 None twoggf Thierry plc2 [665, 1665, 2665]
+667 None twoggg Thierry plc2 [666, 1666, 2666]
+668 None twoggh Thierry plc2 [667, 1667, 2667]
+669 None twoggi Thierry plc2 [668, 1668, 2668]
+670 None twoggj Thierry plc2 [669, 1669, 2669]
+671 None twogha Thierry plc2 [670, 1670, 2670]
+672 None twoghb Thierry plc2 [671, 1671, 2671]
+673 None twoghc Thierry plc2 [672, 1672, 2672]
+674 None twoghd Thierry plc2 [673, 1673, 2673]
+675 None twoghe Thierry plc2 [674, 1674, 2674]
+676 None twoghf Thierry plc2 [675, 1675, 2675]
+677 None twoghg Thierry plc2 [676, 1676, 2676]
+678 None twoghh Thierry plc2 [677, 1677, 2677]
+679 None twoghi Thierry plc2 [678, 1678, 2678]
+680 None twoghj Thierry plc2 [679, 1679, 2679]
+681 None twogia Thierry plc2 [680, 1680, 2680]
+682 None twogib Thierry plc2 [681, 1681, 2681]
+683 None twogic Thierry plc2 [682, 1682, 2682]
+684 None twogid Thierry plc2 [683, 1683, 2683]
+685 None twogie Thierry plc2 [684, 1684, 2684]
+686 None twogif Thierry plc2 [685, 1685, 2685]
+687 None twogig Thierry plc2 [686, 1686, 2686]
+688 None twogih Thierry plc2 [687, 1687, 2687]
+689 None twogii Thierry plc2 [688, 1688, 2688]
+690 None twogij Thierry plc2 [689, 1689, 2689]
+691 None twogja Thierry plc2 [690, 1690, 2690]
+692 None twogjb Thierry plc2 [691, 1691, 2691]
+693 None twogjc Thierry plc2 [692, 1692, 2692]
+694 None twogjd Thierry plc2 [693, 1693, 2693]
+695 None twogje Thierry plc2 [694, 1694, 2694]
+696 None twogjf Thierry plc2 [695, 1695, 2695]
+697 None twogjg Thierry plc2 [696, 1696, 2696]
+698 None twogjh Thierry plc2 [697, 1697, 2697]
+699 None twogji Thierry plc2 [698, 1698, 2698]
+700 None twogjj Thierry plc2 [699, 1699, 2699]
+701 None twohaa Thierry plc2 [700, 1700, 2700]
+702 None twohab Thierry plc2 [701, 1701, 2701]
+703 None twohac Thierry plc2 [702, 1702, 2702]
+704 None twohad Thierry plc2 [703, 1703, 2703]
+705 None twohae Thierry plc2 [704, 1704, 2704]
+706 None twohaf Thierry plc2 [705, 1705, 2705]
+707 None twohag Thierry plc2 [706, 1706, 2706]
+708 None twohah Thierry plc2 [707, 1707, 2707]
+709 None twohai Thierry plc2 [708, 1708, 2708]
+710 None twohaj Thierry plc2 [709, 1709, 2709]
+711 None twohba Thierry plc2 [710, 1710, 2710]
+712 None twohbb Thierry plc2 [711, 1711, 2711]
+713 None twohbc Thierry plc2 [712, 1712, 2712]
+714 None twohbd Thierry plc2 [713, 1713, 2713]
+715 None twohbe Thierry plc2 [714, 1714, 2714]
+716 None twohbf Thierry plc2 [715, 1715, 2715]
+717 None twohbg Thierry plc2 [716, 1716, 2716]
+718 None twohbh Thierry plc2 [717, 1717, 2717]
+719 None twohbi Thierry plc2 [718, 1718, 2718]
+720 None twohbj Thierry plc2 [719, 1719, 2719]
+721 None twohca Thierry plc2 [720, 1720, 2720]
+722 None twohcb Thierry plc2 [721, 1721, 2721]
+723 None twohcc Thierry plc2 [722, 1722, 2722]
+724 None twohcd Thierry plc2 [723, 1723, 2723]
+725 None twohce Thierry plc2 [724, 1724, 2724]
+726 None twohcf Thierry plc2 [725, 1725, 2725]
+727 None twohcg Thierry plc2 [726, 1726, 2726]
+728 None twohch Thierry plc2 [727, 1727, 2727]
+729 None twohci Thierry plc2 [728, 1728, 2728]
+730 None twohcj Thierry plc2 [729, 1729, 2729]
+731 None twohda Thierry plc2 [730, 1730, 2730]
+732 None twohdb Thierry plc2 [731, 1731, 2731]
+733 None twohdc Thierry plc2 [732, 1732, 2732]
+734 None twohdd Thierry plc2 [733, 1733, 2733]
+735 None twohde Thierry plc2 [734, 1734, 2734]
+736 None twohdf Thierry plc2 [735, 1735, 2735]
+737 None twohdg Thierry plc2 [736, 1736, 2736]
+738 None twohdh Thierry plc2 [737, 1737, 2737]
+739 None twohdi Thierry plc2 [738, 1738, 2738]
+740 None twohdj Thierry plc2 [739, 1739, 2739]
+741 None twohea Thierry plc2 [740, 1740, 2740]
+742 None twoheb Thierry plc2 [741, 1741, 2741]
+743 None twohec Thierry plc2 [742, 1742, 2742]
+744 None twohed Thierry plc2 [743, 1743, 2743]
+745 None twohee Thierry plc2 [744, 1744, 2744]
+746 None twohef Thierry plc2 [745, 1745, 2745]
+747 None twoheg Thierry plc2 [746, 1746, 2746]
+748 None twoheh Thierry plc2 [747, 1747, 2747]
+749 None twohei Thierry plc2 [748, 1748, 2748]
+750 None twohej Thierry plc2 [749, 1749, 2749]
+751 None twohfa Thierry plc2 [750, 1750, 2750]
+752 None twohfb Thierry plc2 [751, 1751, 2751]
+753 None twohfc Thierry plc2 [752, 1752, 2752]
+754 None twohfd Thierry plc2 [753, 1753, 2753]
+755 None twohfe Thierry plc2 [754, 1754, 2754]
+756 None twohff Thierry plc2 [755, 1755, 2755]
+757 None twohfg Thierry plc2 [756, 1756, 2756]
+758 None twohfh Thierry plc2 [757, 1757, 2757]
+759 None twohfi Thierry plc2 [758, 1758, 2758]
+760 None twohfj Thierry plc2 [759, 1759, 2759]
+761 None twohga Thierry plc2 [760, 1760, 2760]
+762 None twohgb Thierry plc2 [761, 1761, 2761]
+763 None twohgc Thierry plc2 [762, 1762, 2762]
+764 None twohgd Thierry plc2 [763, 1763, 2763]
+765 None twohge Thierry plc2 [764, 1764, 2764]
+766 None twohgf Thierry plc2 [765, 1765, 2765]
+767 None twohgg Thierry plc2 [766, 1766, 2766]
+768 None twohgh Thierry plc2 [767, 1767, 2767]
+769 None twohgi Thierry plc2 [768, 1768, 2768]
+770 None twohgj Thierry plc2 [769, 1769, 2769]
+771 None twohha Thierry plc2 [770, 1770, 2770]
+772 None twohhb Thierry plc2 [771, 1771, 2771]
+773 None twohhc Thierry plc2 [772, 1772, 2772]
+774 None twohhd Thierry plc2 [773, 1773, 2773]
+775 None twohhe Thierry plc2 [774, 1774, 2774]
+776 None twohhf Thierry plc2 [775, 1775, 2775]
+777 None twohhg Thierry plc2 [776, 1776, 2776]
+778 None twohhh Thierry plc2 [777, 1777, 2777]
+779 None twohhi Thierry plc2 [778, 1778, 2778]
+780 None twohhj Thierry plc2 [779, 1779, 2779]
+781 None twohia Thierry plc2 [780, 1780, 2780]
+782 None twohib Thierry plc2 [781, 1781, 2781]
+783 None twohic Thierry plc2 [782, 1782, 2782]
+784 None twohid Thierry plc2 [783, 1783, 2783]
+785 None twohie Thierry plc2 [784, 1784, 2784]
+786 None twohif Thierry plc2 [785, 1785, 2785]
+787 None twohig Thierry plc2 [786, 1786, 2786]
+788 None twohih Thierry plc2 [787, 1787, 2787]
+789 None twohii Thierry plc2 [788, 1788, 2788]
+790 None twohij Thierry plc2 [789, 1789, 2789]
+791 None twohja Thierry plc2 [790, 1790, 2790]
+792 None twohjb Thierry plc2 [791, 1791, 2791]
+793 None twohjc Thierry plc2 [792, 1792, 2792]
+794 None twohjd Thierry plc2 [793, 1793, 2793]
+795 None twohje Thierry plc2 [794, 1794, 2794]
+796 None twohjf Thierry plc2 [795, 1795, 2795]
+797 None twohjg Thierry plc2 [796, 1796, 2796]
+798 None twohjh Thierry plc2 [797, 1797, 2797]
+799 None twohji Thierry plc2 [798, 1798, 2798]
+800 None twohjj Thierry plc2 [799, 1799, 2799]
+801 None twoiaa Thierry plc2 [800, 1800, 2800]
+802 None twoiab Thierry plc2 [801, 1801, 2801]
+803 None twoiac Thierry plc2 [802, 1802, 2802]
+804 None twoiad Thierry plc2 [803, 1803, 2803]
+805 None twoiae Thierry plc2 [804, 1804, 2804]
+806 None twoiaf Thierry plc2 [805, 1805, 2805]
+807 None twoiag Thierry plc2 [806, 1806, 2806]
+808 None twoiah Thierry plc2 [807, 1807, 2807]
+809 None twoiai Thierry plc2 [808, 1808, 2808]
+810 None twoiaj Thierry plc2 [809, 1809, 2809]
+811 None twoiba Thierry plc2 [810, 1810, 2810]
+812 None twoibb Thierry plc2 [811, 1811, 2811]
+813 None twoibc Thierry plc2 [812, 1812, 2812]
+814 None twoibd Thierry plc2 [813, 1813, 2813]
+815 None twoibe Thierry plc2 [814, 1814, 2814]
+816 None twoibf Thierry plc2 [815, 1815, 2815]
+817 None twoibg Thierry plc2 [816, 1816, 2816]
+818 None twoibh Thierry plc2 [817, 1817, 2817]
+819 None twoibi Thierry plc2 [818, 1818, 2818]
+820 None twoibj Thierry plc2 [819, 1819, 2819]
+821 None twoica Thierry plc2 [820, 1820, 2820]
+822 None twoicb Thierry plc2 [821, 1821, 2821]
+823 None twoicc Thierry plc2 [822, 1822, 2822]
+824 None twoicd Thierry plc2 [823, 1823, 2823]
+825 None twoice Thierry plc2 [824, 1824, 2824]
+826 None twoicf Thierry plc2 [825, 1825, 2825]
+827 None twoicg Thierry plc2 [826, 1826, 2826]
+828 None twoich Thierry plc2 [827, 1827, 2827]
+829 None twoici Thierry plc2 [828, 1828, 2828]
+830 None twoicj Thierry plc2 [829, 1829, 2829]
+831 None twoida Thierry plc2 [830, 1830, 2830]
+832 None twoidb Thierry plc2 [831, 1831, 2831]
+833 None twoidc Thierry plc2 [832, 1832, 2832]
+834 None twoidd Thierry plc2 [833, 1833, 2833]
+835 None twoide Thierry plc2 [834, 1834, 2834]
+836 None twoidf Thierry plc2 [835, 1835, 2835]
+837 None twoidg Thierry plc2 [836, 1836, 2836]
+838 None twoidh Thierry plc2 [837, 1837, 2837]
+839 None twoidi Thierry plc2 [838, 1838, 2838]
+840 None twoidj Thierry plc2 [839, 1839, 2839]
+841 None twoiea Thierry plc2 [840, 1840, 2840]
+842 None twoieb Thierry plc2 [841, 1841, 2841]
+843 None twoiec Thierry plc2 [842, 1842, 2842]
+844 None twoied Thierry plc2 [843, 1843, 2843]
+845 None twoiee Thierry plc2 [844, 1844, 2844]
+846 None twoief Thierry plc2 [845, 1845, 2845]
+847 None twoieg Thierry plc2 [846, 1846, 2846]
+848 None twoieh Thierry plc2 [847, 1847, 2847]
+849 None twoiei Thierry plc2 [848, 1848, 2848]
+850 None twoiej Thierry plc2 [849, 1849, 2849]
+851 None twoifa Thierry plc2 [850, 1850, 2850]
+852 None twoifb Thierry plc2 [851, 1851, 2851]
+853 None twoifc Thierry plc2 [852, 1852, 2852]
+854 None twoifd Thierry plc2 [853, 1853, 2853]
+855 None twoife Thierry plc2 [854, 1854, 2854]
+856 None twoiff Thierry plc2 [855, 1855, 2855]
+857 None twoifg Thierry plc2 [856, 1856, 2856]
+858 None twoifh Thierry plc2 [857, 1857, 2857]
+859 None twoifi Thierry plc2 [858, 1858, 2858]
+860 None twoifj Thierry plc2 [859, 1859, 2859]
+861 None twoiga Thierry plc2 [860, 1860, 2860]
+862 None twoigb Thierry plc2 [861, 1861, 2861]
+863 None twoigc Thierry plc2 [862, 1862, 2862]
+864 None twoigd Thierry plc2 [863, 1863, 2863]
+865 None twoige Thierry plc2 [864, 1864, 2864]
+866 None twoigf Thierry plc2 [865, 1865, 2865]
+867 None twoigg Thierry plc2 [866, 1866, 2866]
+868 None twoigh Thierry plc2 [867, 1867, 2867]
+869 None twoigi Thierry plc2 [868, 1868, 2868]
+870 None twoigj Thierry plc2 [869, 1869, 2869]
+871 None twoiha Thierry plc2 [870, 1870, 2870]
+872 None twoihb Thierry plc2 [871, 1871, 2871]
+873 None twoihc Thierry plc2 [872, 1872, 2872]
+874 None twoihd Thierry plc2 [873, 1873, 2873]
+875 None twoihe Thierry plc2 [874, 1874, 2874]
+876 None twoihf Thierry plc2 [875, 1875, 2875]
+877 None twoihg Thierry plc2 [876, 1876, 2876]
+878 None twoihh Thierry plc2 [877, 1877, 2877]
+879 None twoihi Thierry plc2 [878, 1878, 2878]
+880 None twoihj Thierry plc2 [879, 1879, 2879]
+881 None twoiia Thierry plc2 [880, 1880, 2880]
+882 None twoiib Thierry plc2 [881, 1881, 2881]
+883 None twoiic Thierry plc2 [882, 1882, 2882]
+884 None twoiid Thierry plc2 [883, 1883, 2883]
+885 None twoiie Thierry plc2 [884, 1884, 2884]
+886 None twoiif Thierry plc2 [885, 1885, 2885]
+887 None twoiig Thierry plc2 [886, 1886, 2886]
+888 None twoiih Thierry plc2 [887, 1887, 2887]
+889 None twoiii Thierry plc2 [888, 1888, 2888]
+890 None twoiij Thierry plc2 [889, 1889, 2889]
+891 None twoija Thierry plc2 [890, 1890, 2890]
+892 None twoijb Thierry plc2 [891, 1891, 2891]
+893 None twoijc Thierry plc2 [892, 1892, 2892]
+894 None twoijd Thierry plc2 [893, 1893, 2893]
+895 None twoije Thierry plc2 [894, 1894, 2894]
+896 None twoijf Thierry plc2 [895, 1895, 2895]
+897 None twoijg Thierry plc2 [896, 1896, 2896]
+898 None twoijh Thierry plc2 [897, 1897, 2897]
+899 None twoiji Thierry plc2 [898, 1898, 2898]
+900 None twoijj Thierry plc2 [899, 1899, 2899]
+901 None twojaa Thierry plc2 [900, 1900, 2900]
+902 None twojab Thierry plc2 [901, 1901, 2901]
+903 None twojac Thierry plc2 [902, 1902, 2902]
+904 None twojad Thierry plc2 [903, 1903, 2903]
+905 None twojae Thierry plc2 [904, 1904, 2904]
+906 None twojaf Thierry plc2 [905, 1905, 2905]
+907 None twojag Thierry plc2 [906, 1906, 2906]
+908 None twojah Thierry plc2 [907, 1907, 2907]
+909 None twojai Thierry plc2 [908, 1908, 2908]
+910 None twojaj Thierry plc2 [909, 1909, 2909]
+911 None twojba Thierry plc2 [910, 1910, 2910]
+912 None twojbb Thierry plc2 [911, 1911, 2911]
+913 None twojbc Thierry plc2 [912, 1912, 2912]
+914 None twojbd Thierry plc2 [913, 1913, 2913]
+915 None twojbe Thierry plc2 [914, 1914, 2914]
+916 None twojbf Thierry plc2 [915, 1915, 2915]
+917 None twojbg Thierry plc2 [916, 1916, 2916]
+918 None twojbh Thierry plc2 [917, 1917, 2917]
+919 None twojbi Thierry plc2 [918, 1918, 2918]
+920 None twojbj Thierry plc2 [919, 1919, 2919]
+921 None twojca Thierry plc2 [920, 1920, 2920]
+922 None twojcb Thierry plc2 [921, 1921, 2921]
+923 None twojcc Thierry plc2 [922, 1922, 2922]
+924 None twojcd Thierry plc2 [923, 1923, 2923]
+925 None twojce Thierry plc2 [924, 1924, 2924]
+926 None twojcf Thierry plc2 [925, 1925, 2925]
+927 None twojcg Thierry plc2 [926, 1926, 2926]
+928 None twojch Thierry plc2 [927, 1927, 2927]
+929 None twojci Thierry plc2 [928, 1928, 2928]
+930 None twojcj Thierry plc2 [929, 1929, 2929]
+931 None twojda Thierry plc2 [930, 1930, 2930]
+932 None twojdb Thierry plc2 [931, 1931, 2931]
+933 None twojdc Thierry plc2 [932, 1932, 2932]
+934 None twojdd Thierry plc2 [933, 1933, 2933]
+935 None twojde Thierry plc2 [934, 1934, 2934]
+936 None twojdf Thierry plc2 [935, 1935, 2935]
+937 None twojdg Thierry plc2 [936, 1936, 2936]
+938 None twojdh Thierry plc2 [937, 1937, 2937]
+939 None twojdi Thierry plc2 [938, 1938, 2938]
+940 None twojdj Thierry plc2 [939, 1939, 2939]
+941 None twojea Thierry plc2 [940, 1940, 2940]
+942 None twojeb Thierry plc2 [941, 1941, 2941]
+943 None twojec Thierry plc2 [942, 1942, 2942]
+944 None twojed Thierry plc2 [943, 1943, 2943]
+945 None twojee Thierry plc2 [944, 1944, 2944]
+946 None twojef Thierry plc2 [945, 1945, 2945]
+947 None twojeg Thierry plc2 [946, 1946, 2946]
+948 None twojeh Thierry plc2 [947, 1947, 2947]
+949 None twojei Thierry plc2 [948, 1948, 2948]
+950 None twojej Thierry plc2 [949, 1949, 2949]
+951 None twojfa Thierry plc2 [950, 1950, 2950]
+952 None twojfb Thierry plc2 [951, 1951, 2951]
+953 None twojfc Thierry plc2 [952, 1952, 2952]
+954 None twojfd Thierry plc2 [953, 1953, 2953]
+955 None twojfe Thierry plc2 [954, 1954, 2954]
+956 None twojff Thierry plc2 [955, 1955, 2955]
+957 None twojfg Thierry plc2 [956, 1956, 2956]
+958 None twojfh Thierry plc2 [957, 1957, 2957]
+959 None twojfi Thierry plc2 [958, 1958, 2958]
+960 None twojfj Thierry plc2 [959, 1959, 2959]
+961 None twojga Thierry plc2 [960, 1960, 2960]
+962 None twojgb Thierry plc2 [961, 1961, 2961]
+963 None twojgc Thierry plc2 [962, 1962, 2962]
+964 None twojgd Thierry plc2 [963, 1963, 2963]
+965 None twojge Thierry plc2 [964, 1964, 2964]
+966 None twojgf Thierry plc2 [965, 1965, 2965]
+967 None twojgg Thierry plc2 [966, 1966, 2966]
+968 None twojgh Thierry plc2 [967, 1967, 2967]
+969 None twojgi Thierry plc2 [968, 1968, 2968]
+970 None twojgj Thierry plc2 [969, 1969, 2969]
+971 None twojha Thierry plc2 [970, 1970, 2970]
+972 None twojhb Thierry plc2 [971, 1971, 2971]
+973 None twojhc Thierry plc2 [972, 1972, 2972]
+974 None twojhd Thierry plc2 [973, 1973, 2973]
+975 None twojhe Thierry plc2 [974, 1974, 2974]
+976 None twojhf Thierry plc2 [975, 1975, 2975]
+977 None twojhg Thierry plc2 [976, 1976, 2976]
+978 None twojhh Thierry plc2 [977, 1977, 2977]
+979 None twojhi Thierry plc2 [978, 1978, 2978]
+980 None twojhj Thierry plc2 [979, 1979, 2979]
+981 None twojia Thierry plc2 [980, 1980, 2980]
+982 None twojib Thierry plc2 [981, 1981, 2981]
+983 None twojic Thierry plc2 [982, 1982, 2982]
+984 None twojid Thierry plc2 [983, 1983, 2983]
+985 None twojie Thierry plc2 [984, 1984, 2984]
+986 None twojif Thierry plc2 [985, 1985, 2985]
+987 None twojig Thierry plc2 [986, 1986, 2986]
+988 None twojih Thierry plc2 [987, 1987, 2987]
+989 None twojii Thierry plc2 [988, 1988, 2988]
+990 None twojij Thierry plc2 [989, 1989, 2989]
+991 None twojja Thierry plc2 [990, 1990, 2990]
+992 None twojjb Thierry plc2 [991, 1991, 2991]
+993 None twojjc Thierry plc2 [992, 1992, 2992]
+994 None twojjd Thierry plc2 [993, 1993, 2993]
+995 None twojje Thierry plc2 [994, 1994, 2994]
+996 None twojjf Thierry plc2 [995, 1995, 2995]
+997 None twojjg Thierry plc2 [996, 1996, 2996]
+998 None twojjh Thierry plc2 [997, 1997, 2997]
+999 None twojji Thierry plc2 [998, 1998, 2998]
+1000 None twojjj Thierry plc2 [999, 1999, 2999]
+1001 None twobaaa Thierry plc2 [1000, 2000, 3000]
+1002 1 thone Thierry plc1 Central []
+1003 1 oneb Thierry plc1 [3001, 4001, 5001]
+1004 1 onec Thierry plc1 [3002, 4002, 5002]
+1005 1 oned Thierry plc1 [3003, 4003, 5003]
+1006 1 onee Thierry plc1 [3004, 4004, 5004]
+1007 1 onef Thierry plc1 [3005, 4005, 5005]
+1008 1 oneg Thierry plc1 [3006, 4006, 5006]
+1009 1 oneh Thierry plc1 [3007, 4007, 5007]
+1010 1 onei Thierry plc1 [3008, 4008, 5008]
+1011 1 onej Thierry plc1 [3009, 4009, 5009]
+1012 1 oneba Thierry plc1 [3010, 4010, 5010]
+1013 1 onebb Thierry plc1 [3011, 4011, 5011]
+1014 1 onebc Thierry plc1 [3012, 4012, 5012]
+1015 1 onebd Thierry plc1 [3013, 4013, 5013]
+1016 1 onebe Thierry plc1 [3014, 4014, 5014]
+1017 1 onebf Thierry plc1 [3015, 4015, 5015]
+1018 1 onebg Thierry plc1 [3016, 4016, 5016]
+1019 1 onebh Thierry plc1 [3017, 4017, 5017]
+1020 1 onebi Thierry plc1 [3018, 4018, 5018]
+1021 1 onebj Thierry plc1 [3019, 4019, 5019]
+1022 1 oneca Thierry plc1 [3020, 4020, 5020]
+1023 1 onecb Thierry plc1 [3021, 4021, 5021]
+1024 1 onecc Thierry plc1 [3022, 4022, 5022]
+1025 1 onecd Thierry plc1 [3023, 4023, 5023]
+1026 1 onece Thierry plc1 [3024, 4024, 5024]
+1027 1 onecf Thierry plc1 [3025, 4025, 5025]
+1028 1 onecg Thierry plc1 [3026, 4026, 5026]
+1029 1 onech Thierry plc1 [3027, 4027, 5027]
+1030 1 oneci Thierry plc1 [3028, 4028, 5028]
+1031 1 onecj Thierry plc1 [3029, 4029, 5029]
+1032 1 oneda Thierry plc1 [3030, 4030, 5030]
+1033 1 onedb Thierry plc1 [3031, 4031, 5031]
+1034 1 onedc Thierry plc1 [3032, 4032, 5032]
+1035 1 onedd Thierry plc1 [3033, 4033, 5033]
+1036 1 onede Thierry plc1 [3034, 4034, 5034]
+1037 1 onedf Thierry plc1 [3035, 4035, 5035]
+1038 1 onedg Thierry plc1 [3036, 4036, 5036]
+1039 1 onedh Thierry plc1 [3037, 4037, 5037]
+1040 1 onedi Thierry plc1 [3038, 4038, 5038]
+1041 1 onedj Thierry plc1 [3039, 4039, 5039]
+1042 1 oneea Thierry plc1 [3040, 4040, 5040]
+1043 1 oneeb Thierry plc1 [3041, 4041, 5041]
+1044 1 oneec Thierry plc1 [3042, 4042, 5042]
+1045 1 oneed Thierry plc1 [3043, 4043, 5043]
+1046 1 oneee Thierry plc1 [3044, 4044, 5044]
+1047 1 oneef Thierry plc1 [3045, 4045, 5045]
+1048 1 oneeg Thierry plc1 [3046, 4046, 5046]
+1049 1 oneeh Thierry plc1 [3047, 4047, 5047]
+1050 1 oneei Thierry plc1 [3048, 4048, 5048]
+1051 1 oneej Thierry plc1 [3049, 4049, 5049]
+1052 1 onefa Thierry plc1 [3050, 4050, 5050]
+1053 1 onefb Thierry plc1 [3051, 4051, 5051]
+1054 1 onefc Thierry plc1 [3052, 4052, 5052]
+1055 1 onefd Thierry plc1 [3053, 4053, 5053]
+1056 1 onefe Thierry plc1 [3054, 4054, 5054]
+1057 1 oneff Thierry plc1 [3055, 4055, 5055]
+1058 1 onefg Thierry plc1 [3056, 4056, 5056]
+1059 1 onefh Thierry plc1 [3057, 4057, 5057]
+1060 1 onefi Thierry plc1 [3058, 4058, 5058]
+1061 1 onefj Thierry plc1 [3059, 4059, 5059]
+1062 1 onega Thierry plc1 [3060, 4060, 5060]
+1063 1 onegb Thierry plc1 [3061, 4061, 5061]
+1064 1 onegc Thierry plc1 [3062, 4062, 5062]
+1065 1 onegd Thierry plc1 [3063, 4063, 5063]
+1066 1 onege Thierry plc1 [3064, 4064, 5064]
+1067 1 onegf Thierry plc1 [3065, 4065, 5065]
+1068 1 onegg Thierry plc1 [3066, 4066, 5066]
+1069 1 onegh Thierry plc1 [3067, 4067, 5067]
+1070 1 onegi Thierry plc1 [3068, 4068, 5068]
+1071 1 onegj Thierry plc1 [3069, 4069, 5069]
+1072 1 oneha Thierry plc1 [3070, 4070, 5070]
+1073 1 onehb Thierry plc1 [3071, 4071, 5071]
+1074 1 onehc Thierry plc1 [3072, 4072, 5072]
+1075 1 onehd Thierry plc1 [3073, 4073, 5073]
+1076 1 onehe Thierry plc1 [3074, 4074, 5074]
+1077 1 onehf Thierry plc1 [3075, 4075, 5075]
+1078 1 onehg Thierry plc1 [3076, 4076, 5076]
+1079 1 onehh Thierry plc1 [3077, 4077, 5077]
+1080 1 onehi Thierry plc1 [3078, 4078, 5078]
+1081 1 onehj Thierry plc1 [3079, 4079, 5079]
+1082 1 oneia Thierry plc1 [3080, 4080, 5080]
+1083 1 oneib Thierry plc1 [3081, 4081, 5081]
+1084 1 oneic Thierry plc1 [3082, 4082, 5082]
+1085 1 oneid Thierry plc1 [3083, 4083, 5083]
+1086 1 oneie Thierry plc1 [3084, 4084, 5084]
+1087 1 oneif Thierry plc1 [3085, 4085, 5085]
+1088 1 oneig Thierry plc1 [3086, 4086, 5086]
+1089 1 oneih Thierry plc1 [3087, 4087, 5087]
+1090 1 oneii Thierry plc1 [3088, 4088, 5088]
+1091 1 oneij Thierry plc1 [3089, 4089, 5089]
+1092 1 oneja Thierry plc1 [3090, 4090, 5090]
+1093 1 onejb Thierry plc1 [3091, 4091, 5091]
+1094 1 onejc Thierry plc1 [3092, 4092, 5092]
+1095 1 onejd Thierry plc1 [3093, 4093, 5093]
+1096 1 oneje Thierry plc1 [3094, 4094, 5094]
+1097 1 onejf Thierry plc1 [3095, 4095, 5095]
+1098 1 onejg Thierry plc1 [3096, 4096, 5096]
+1099 1 onejh Thierry plc1 [3097, 4097, 5097]
+1100 1 oneji Thierry plc1 [3098, 4098, 5098]
+1101 1 onejj Thierry plc1 [3099, 4099, 5099]
+1102 1 onebaa Thierry plc1 [3100, 4100, 5100]
+1103 1 onebab Thierry plc1 [3101, 4101, 5101]
+1104 1 onebac Thierry plc1 [3102, 4102, 5102]
+1105 1 onebad Thierry plc1 [3103, 4103, 5103]
+1106 1 onebae Thierry plc1 [3104, 4104, 5104]
+1107 1 onebaf Thierry plc1 [3105, 4105, 5105]
+1108 1 onebag Thierry plc1 [3106, 4106, 5106]
+1109 1 onebah Thierry plc1 [3107, 4107, 5107]
+1110 1 onebai Thierry plc1 [3108, 4108, 5108]
+1111 1 onebaj Thierry plc1 [3109, 4109, 5109]
+1112 1 onebba Thierry plc1 [3110, 4110, 5110]
+1113 1 onebbb Thierry plc1 [3111, 4111, 5111]
+1114 1 onebbc Thierry plc1 [3112, 4112, 5112]
+1115 1 onebbd Thierry plc1 [3113, 4113, 5113]
+1116 1 onebbe Thierry plc1 [3114, 4114, 5114]
+1117 1 onebbf Thierry plc1 [3115, 4115, 5115]
+1118 1 onebbg Thierry plc1 [3116, 4116, 5116]
+1119 1 onebbh Thierry plc1 [3117, 4117, 5117]
+1120 1 onebbi Thierry plc1 [3118, 4118, 5118]
+1121 1 onebbj Thierry plc1 [3119, 4119, 5119]
+1122 1 onebca Thierry plc1 [3120, 4120, 5120]
+1123 1 onebcb Thierry plc1 [3121, 4121, 5121]
+1124 1 onebcc Thierry plc1 [3122, 4122, 5122]
+1125 1 onebcd Thierry plc1 [3123, 4123, 5123]
+1126 1 onebce Thierry plc1 [3124, 4124, 5124]
+1127 1 onebcf Thierry plc1 [3125, 4125, 5125]
+1128 1 onebcg Thierry plc1 [3126, 4126, 5126]
+1129 1 onebch Thierry plc1 [3127, 4127, 5127]
+1130 1 onebci Thierry plc1 [3128, 4128, 5128]
+1131 1 onebcj Thierry plc1 [3129, 4129, 5129]
+1132 1 onebda Thierry plc1 [3130, 4130, 5130]
+1133 1 onebdb Thierry plc1 [3131, 4131, 5131]
+1134 1 onebdc Thierry plc1 [3132, 4132, 5132]
+1135 1 onebdd Thierry plc1 [3133, 4133, 5133]
+1136 1 onebde Thierry plc1 [3134, 4134, 5134]
+1137 1 onebdf Thierry plc1 [3135, 4135, 5135]
+1138 1 onebdg Thierry plc1 [3136, 4136, 5136]
+1139 1 onebdh Thierry plc1 [3137, 4137, 5137]
+1140 1 onebdi Thierry plc1 [3138, 4138, 5138]
+1141 1 onebdj Thierry plc1 [3139, 4139, 5139]
+1142 1 onebea Thierry plc1 [3140, 4140, 5140]
+1143 1 onebeb Thierry plc1 [3141, 4141, 5141]
+1144 1 onebec Thierry plc1 [3142, 4142, 5142]
+1145 1 onebed Thierry plc1 [3143, 4143, 5143]
+1146 1 onebee Thierry plc1 [3144, 4144, 5144]
+1147 1 onebef Thierry plc1 [3145, 4145, 5145]
+1148 1 onebeg Thierry plc1 [3146, 4146, 5146]
+1149 1 onebeh Thierry plc1 [3147, 4147, 5147]
+1150 1 onebei Thierry plc1 [3148, 4148, 5148]
+1151 1 onebej Thierry plc1 [3149, 4149, 5149]
+1152 1 onebfa Thierry plc1 [3150, 4150, 5150]
+1153 1 onebfb Thierry plc1 [3151, 4151, 5151]
+1154 1 onebfc Thierry plc1 [3152, 4152, 5152]
+1155 1 onebfd Thierry plc1 [3153, 4153, 5153]
+1156 1 onebfe Thierry plc1 [3154, 4154, 5154]
+1157 1 onebff Thierry plc1 [3155, 4155, 5155]
+1158 1 onebfg Thierry plc1 [3156, 4156, 5156]
+1159 1 onebfh Thierry plc1 [3157, 4157, 5157]
+1160 1 onebfi Thierry plc1 [3158, 4158, 5158]
+1161 1 onebfj Thierry plc1 [3159, 4159, 5159]
+1162 1 onebga Thierry plc1 [3160, 4160, 5160]
+1163 1 onebgb Thierry plc1 [3161, 4161, 5161]
+1164 1 onebgc Thierry plc1 [3162, 4162, 5162]
+1165 1 onebgd Thierry plc1 [3163, 4163, 5163]
+1166 1 onebge Thierry plc1 [3164, 4164, 5164]
+1167 1 onebgf Thierry plc1 [3165, 4165, 5165]
+1168 1 onebgg Thierry plc1 [3166, 4166, 5166]
+1169 1 onebgh Thierry plc1 [3167, 4167, 5167]
+1170 1 onebgi Thierry plc1 [3168, 4168, 5168]
+1171 1 onebgj Thierry plc1 [3169, 4169, 5169]
+1172 1 onebha Thierry plc1 [3170, 4170, 5170]
+1173 1 onebhb Thierry plc1 [3171, 4171, 5171]
+1174 1 onebhc Thierry plc1 [3172, 4172, 5172]
+1175 1 onebhd Thierry plc1 [3173, 4173, 5173]
+1176 1 onebhe Thierry plc1 [3174, 4174, 5174]
+1177 1 onebhf Thierry plc1 [3175, 4175, 5175]
+1178 1 onebhg Thierry plc1 [3176, 4176, 5176]
+1179 1 onebhh Thierry plc1 [3177, 4177, 5177]
+1180 1 onebhi Thierry plc1 [3178, 4178, 5178]
+1181 1 onebhj Thierry plc1 [3179, 4179, 5179]
+1182 1 onebia Thierry plc1 [3180, 4180, 5180]
+1183 1 onebib Thierry plc1 [3181, 4181, 5181]
+1184 1 onebic Thierry plc1 [3182, 4182, 5182]
+1185 1 onebid Thierry plc1 [3183, 4183, 5183]
+1186 1 onebie Thierry plc1 [3184, 4184, 5184]
+1187 1 onebif Thierry plc1 [3185, 4185, 5185]
+1188 1 onebig Thierry plc1 [3186, 4186, 5186]
+1189 1 onebih Thierry plc1 [3187, 4187, 5187]
+1190 1 onebii Thierry plc1 [3188, 4188, 5188]
+1191 1 onebij Thierry plc1 [3189, 4189, 5189]
+1192 1 onebja Thierry plc1 [3190, 4190, 5190]
+1193 1 onebjb Thierry plc1 [3191, 4191, 5191]
+1194 1 onebjc Thierry plc1 [3192, 4192, 5192]
+1195 1 onebjd Thierry plc1 [3193, 4193, 5193]
+1196 1 onebje Thierry plc1 [3194, 4194, 5194]
+1197 1 onebjf Thierry plc1 [3195, 4195, 5195]
+1198 1 onebjg Thierry plc1 [3196, 4196, 5196]
+1199 1 onebjh Thierry plc1 [3197, 4197, 5197]
+1200 1 onebji Thierry plc1 [3198, 4198, 5198]
+1201 1 onebjj Thierry plc1 [3199, 4199, 5199]
+1202 1 onecaa Thierry plc1 [3200, 4200, 5200]
+1203 1 onecab Thierry plc1 [3201, 4201, 5201]
+1204 1 onecac Thierry plc1 [3202, 4202, 5202]
+1205 1 onecad Thierry plc1 [3203, 4203, 5203]
+1206 1 onecae Thierry plc1 [3204, 4204, 5204]
+1207 1 onecaf Thierry plc1 [3205, 4205, 5205]
+1208 1 onecag Thierry plc1 [3206, 4206, 5206]
+1209 1 onecah Thierry plc1 [3207, 4207, 5207]
+1210 1 onecai Thierry plc1 [3208, 4208, 5208]
+1211 1 onecaj Thierry plc1 [3209, 4209, 5209]
+1212 1 onecba Thierry plc1 [3210, 4210, 5210]
+1213 1 onecbb Thierry plc1 [3211, 4211, 5211]
+1214 1 onecbc Thierry plc1 [3212, 4212, 5212]
+1215 1 onecbd Thierry plc1 [3213, 4213, 5213]
+1216 1 onecbe Thierry plc1 [3214, 4214, 5214]
+1217 1 onecbf Thierry plc1 [3215, 4215, 5215]
+1218 1 onecbg Thierry plc1 [3216, 4216, 5216]
+1219 1 onecbh Thierry plc1 [3217, 4217, 5217]
+1220 1 onecbi Thierry plc1 [3218, 4218, 5218]
+1221 1 onecbj Thierry plc1 [3219, 4219, 5219]
+1222 1 onecca Thierry plc1 [3220, 4220, 5220]
+1223 1 oneccb Thierry plc1 [3221, 4221, 5221]
+1224 1 oneccc Thierry plc1 [3222, 4222, 5222]
+1225 1 oneccd Thierry plc1 [3223, 4223, 5223]
+1226 1 onecce Thierry plc1 [3224, 4224, 5224]
+1227 1 oneccf Thierry plc1 [3225, 4225, 5225]
+1228 1 oneccg Thierry plc1 [3226, 4226, 5226]
+1229 1 onecch Thierry plc1 [3227, 4227, 5227]
+1230 1 onecci Thierry plc1 [3228, 4228, 5228]
+1231 1 oneccj Thierry plc1 [3229, 4229, 5229]
+1232 1 onecda Thierry plc1 [3230, 4230, 5230]
+1233 1 onecdb Thierry plc1 [3231, 4231, 5231]
+1234 1 onecdc Thierry plc1 [3232, 4232, 5232]
+1235 1 onecdd Thierry plc1 [3233, 4233, 5233]
+1236 1 onecde Thierry plc1 [3234, 4234, 5234]
+1237 1 onecdf Thierry plc1 [3235, 4235, 5235]
+1238 1 onecdg Thierry plc1 [3236, 4236, 5236]
+1239 1 onecdh Thierry plc1 [3237, 4237, 5237]
+1240 1 onecdi Thierry plc1 [3238, 4238, 5238]
+1241 1 onecdj Thierry plc1 [3239, 4239, 5239]
+1242 1 onecea Thierry plc1 [3240, 4240, 5240]
+1243 1 oneceb Thierry plc1 [3241, 4241, 5241]
+1244 1 onecec Thierry plc1 [3242, 4242, 5242]
+1245 1 oneced Thierry plc1 [3243, 4243, 5243]
+1246 1 onecee Thierry plc1 [3244, 4244, 5244]
+1247 1 onecef Thierry plc1 [3245, 4245, 5245]
+1248 1 oneceg Thierry plc1 [3246, 4246, 5246]
+1249 1 oneceh Thierry plc1 [3247, 4247, 5247]
+1250 1 onecei Thierry plc1 [3248, 4248, 5248]
+1251 1 onecej Thierry plc1 [3249, 4249, 5249]
+1252 1 onecfa Thierry plc1 [3250, 4250, 5250]
+1253 1 onecfb Thierry plc1 [3251, 4251, 5251]
+1254 1 onecfc Thierry plc1 [3252, 4252, 5252]
+1255 1 onecfd Thierry plc1 [3253, 4253, 5253]
+1256 1 onecfe Thierry plc1 [3254, 4254, 5254]
+1257 1 onecff Thierry plc1 [3255, 4255, 5255]
+1258 1 onecfg Thierry plc1 [3256, 4256, 5256]
+1259 1 onecfh Thierry plc1 [3257, 4257, 5257]
+1260 1 onecfi Thierry plc1 [3258, 4258, 5258]
+1261 1 onecfj Thierry plc1 [3259, 4259, 5259]
+1262 1 onecga Thierry plc1 [3260, 4260, 5260]
+1263 1 onecgb Thierry plc1 [3261, 4261, 5261]
+1264 1 onecgc Thierry plc1 [3262, 4262, 5262]
+1265 1 onecgd Thierry plc1 [3263, 4263, 5263]
+1266 1 onecge Thierry plc1 [3264, 4264, 5264]
+1267 1 onecgf Thierry plc1 [3265, 4265, 5265]
+1268 1 onecgg Thierry plc1 [3266, 4266, 5266]
+1269 1 onecgh Thierry plc1 [3267, 4267, 5267]
+1270 1 onecgi Thierry plc1 [3268, 4268, 5268]
+1271 1 onecgj Thierry plc1 [3269, 4269, 5269]
+1272 1 onecha Thierry plc1 [3270, 4270, 5270]
+1273 1 onechb Thierry plc1 [3271, 4271, 5271]
+1274 1 onechc Thierry plc1 [3272, 4272, 5272]
+1275 1 onechd Thierry plc1 [3273, 4273, 5273]
+1276 1 oneche Thierry plc1 [3274, 4274, 5274]
+1277 1 onechf Thierry plc1 [3275, 4275, 5275]
+1278 1 onechg Thierry plc1 [3276, 4276, 5276]
+1279 1 onechh Thierry plc1 [3277, 4277, 5277]
+1280 1 onechi Thierry plc1 [3278, 4278, 5278]
+1281 1 onechj Thierry plc1 [3279, 4279, 5279]
+1282 1 onecia Thierry plc1 [3280, 4280, 5280]
+1283 1 onecib Thierry plc1 [3281, 4281, 5281]
+1284 1 onecic Thierry plc1 [3282, 4282, 5282]
+1285 1 onecid Thierry plc1 [3283, 4283, 5283]
+1286 1 onecie Thierry plc1 [3284, 4284, 5284]
+1287 1 onecif Thierry plc1 [3285, 4285, 5285]
+1288 1 onecig Thierry plc1 [3286, 4286, 5286]
+1289 1 onecih Thierry plc1 [3287, 4287, 5287]
+1290 1 onecii Thierry plc1 [3288, 4288, 5288]
+1291 1 onecij Thierry plc1 [3289, 4289, 5289]
+1292 1 onecja Thierry plc1 [3290, 4290, 5290]
+1293 1 onecjb Thierry plc1 [3291, 4291, 5291]
+1294 1 onecjc Thierry plc1 [3292, 4292, 5292]
+1295 1 onecjd Thierry plc1 [3293, 4293, 5293]
+1296 1 onecje Thierry plc1 [3294, 4294, 5294]
+1297 1 onecjf Thierry plc1 [3295, 4295, 5295]
+1298 1 onecjg Thierry plc1 [3296, 4296, 5296]
+1299 1 onecjh Thierry plc1 [3297, 4297, 5297]
+1300 1 onecji Thierry plc1 [3298, 4298, 5298]
+1301 1 onecjj Thierry plc1 [3299, 4299, 5299]
+1302 1 onedaa Thierry plc1 [3300, 4300, 5300]
+1303 1 onedab Thierry plc1 [3301, 4301, 5301]
+1304 1 onedac Thierry plc1 [3302, 4302, 5302]
+1305 1 onedad Thierry plc1 [3303, 4303, 5303]
+1306 1 onedae Thierry plc1 [3304, 4304, 5304]
+1307 1 onedaf Thierry plc1 [3305, 4305, 5305]
+1308 1 onedag Thierry plc1 [3306, 4306, 5306]
+1309 1 onedah Thierry plc1 [3307, 4307, 5307]
+1310 1 onedai Thierry plc1 [3308, 4308, 5308]
+1311 1 onedaj Thierry plc1 [3309, 4309, 5309]
+1312 1 onedba Thierry plc1 [3310, 4310, 5310]
+1313 1 onedbb Thierry plc1 [3311, 4311, 5311]
+1314 1 onedbc Thierry plc1 [3312, 4312, 5312]
+1315 1 onedbd Thierry plc1 [3313, 4313, 5313]
+1316 1 onedbe Thierry plc1 [3314, 4314, 5314]
+1317 1 onedbf Thierry plc1 [3315, 4315, 5315]
+1318 1 onedbg Thierry plc1 [3316, 4316, 5316]
+1319 1 onedbh Thierry plc1 [3317, 4317, 5317]
+1320 1 onedbi Thierry plc1 [3318, 4318, 5318]
+1321 1 onedbj Thierry plc1 [3319, 4319, 5319]
+1322 1 onedca Thierry plc1 [3320, 4320, 5320]
+1323 1 onedcb Thierry plc1 [3321, 4321, 5321]
+1324 1 onedcc Thierry plc1 [3322, 4322, 5322]
+1325 1 onedcd Thierry plc1 [3323, 4323, 5323]
+1326 1 onedce Thierry plc1 [3324, 4324, 5324]
+1327 1 onedcf Thierry plc1 [3325, 4325, 5325]
+1328 1 onedcg Thierry plc1 [3326, 4326, 5326]
+1329 1 onedch Thierry plc1 [3327, 4327, 5327]
+1330 1 onedci Thierry plc1 [3328, 4328, 5328]
+1331 1 onedcj Thierry plc1 [3329, 4329, 5329]
+1332 1 onedda Thierry plc1 [3330, 4330, 5330]
+1333 1 oneddb Thierry plc1 [3331, 4331, 5331]
+1334 1 oneddc Thierry plc1 [3332, 4332, 5332]
+1335 1 oneddd Thierry plc1 [3333, 4333, 5333]
+1336 1 onedde Thierry plc1 [3334, 4334, 5334]
+1337 1 oneddf Thierry plc1 [3335, 4335, 5335]
+1338 1 oneddg Thierry plc1 [3336, 4336, 5336]
+1339 1 oneddh Thierry plc1 [3337, 4337, 5337]
+1340 1 oneddi Thierry plc1 [3338, 4338, 5338]
+1341 1 oneddj Thierry plc1 [3339, 4339, 5339]
+1342 1 onedea Thierry plc1 [3340, 4340, 5340]
+1343 1 onedeb Thierry plc1 [3341, 4341, 5341]
+1344 1 onedec Thierry plc1 [3342, 4342, 5342]
+1345 1 oneded Thierry plc1 [3343, 4343, 5343]
+1346 1 onedee Thierry plc1 [3344, 4344, 5344]
+1347 1 onedef Thierry plc1 [3345, 4345, 5345]
+1348 1 onedeg Thierry plc1 [3346, 4346, 5346]
+1349 1 onedeh Thierry plc1 [3347, 4347, 5347]
+1350 1 onedei Thierry plc1 [3348, 4348, 5348]
+1351 1 onedej Thierry plc1 [3349, 4349, 5349]
+1352 1 onedfa Thierry plc1 [3350, 4350, 5350]
+1353 1 onedfb Thierry plc1 [3351, 4351, 5351]
+1354 1 onedfc Thierry plc1 [3352, 4352, 5352]
+1355 1 onedfd Thierry plc1 [3353, 4353, 5353]
+1356 1 onedfe Thierry plc1 [3354, 4354, 5354]
+1357 1 onedff Thierry plc1 [3355, 4355, 5355]
+1358 1 onedfg Thierry plc1 [3356, 4356, 5356]
+1359 1 onedfh Thierry plc1 [3357, 4357, 5357]
+1360 1 onedfi Thierry plc1 [3358, 4358, 5358]
+1361 1 onedfj Thierry plc1 [3359, 4359, 5359]
+1362 1 onedga Thierry plc1 [3360, 4360, 5360]
+1363 1 onedgb Thierry plc1 [3361, 4361, 5361]
+1364 1 onedgc Thierry plc1 [3362, 4362, 5362]
+1365 1 onedgd Thierry plc1 [3363, 4363, 5363]
+1366 1 onedge Thierry plc1 [3364, 4364, 5364]
+1367 1 onedgf Thierry plc1 [3365, 4365, 5365]
+1368 1 onedgg Thierry plc1 [3366, 4366, 5366]
+1369 1 onedgh Thierry plc1 [3367, 4367, 5367]
+1370 1 onedgi Thierry plc1 [3368, 4368, 5368]
+1371 1 onedgj Thierry plc1 [3369, 4369, 5369]
+1372 1 onedha Thierry plc1 [3370, 4370, 5370]
+1373 1 onedhb Thierry plc1 [3371, 4371, 5371]
+1374 1 onedhc Thierry plc1 [3372, 4372, 5372]
+1375 1 onedhd Thierry plc1 [3373, 4373, 5373]
+1376 1 onedhe Thierry plc1 [3374, 4374, 5374]
+1377 1 onedhf Thierry plc1 [3375, 4375, 5375]
+1378 1 onedhg Thierry plc1 [3376, 4376, 5376]
+1379 1 onedhh Thierry plc1 [3377, 4377, 5377]
+1380 1 onedhi Thierry plc1 [3378, 4378, 5378]
+1381 1 onedhj Thierry plc1 [3379, 4379, 5379]
+1382 1 onedia Thierry plc1 [3380, 4380, 5380]
+1383 1 onedib Thierry plc1 [3381, 4381, 5381]
+1384 1 onedic Thierry plc1 [3382, 4382, 5382]
+1385 1 onedid Thierry plc1 [3383, 4383, 5383]
+1386 1 onedie Thierry plc1 [3384, 4384, 5384]
+1387 1 onedif Thierry plc1 [3385, 4385, 5385]
+1388 1 onedig Thierry plc1 [3386, 4386, 5386]
+1389 1 onedih Thierry plc1 [3387, 4387, 5387]
+1390 1 onedii Thierry plc1 [3388, 4388, 5388]
+1391 1 onedij Thierry plc1 [3389, 4389, 5389]
+1392 1 onedja Thierry plc1 [3390, 4390, 5390]
+1393 1 onedjb Thierry plc1 [3391, 4391, 5391]
+1394 1 onedjc Thierry plc1 [3392, 4392, 5392]
+1395 1 onedjd Thierry plc1 [3393, 4393, 5393]
+1396 1 onedje Thierry plc1 [3394, 4394, 5394]
+1397 1 onedjf Thierry plc1 [3395, 4395, 5395]
+1398 1 onedjg Thierry plc1 [3396, 4396, 5396]
+1399 1 onedjh Thierry plc1 [3397, 4397, 5397]
+1400 1 onedji Thierry plc1 [3398, 4398, 5398]
+1401 1 onedjj Thierry plc1 [3399, 4399, 5399]
+1402 1 oneeaa Thierry plc1 [3400, 4400, 5400]
+1403 1 oneeab Thierry plc1 [3401, 4401, 5401]
+1404 1 oneeac Thierry plc1 [3402, 4402, 5402]
+1405 1 oneead Thierry plc1 [3403, 4403, 5403]
+1406 1 oneeae Thierry plc1 [3404, 4404, 5404]
+1407 1 oneeaf Thierry plc1 [3405, 4405, 5405]
+1408 1 oneeag Thierry plc1 [3406, 4406, 5406]
+1409 1 oneeah Thierry plc1 [3407, 4407, 5407]
+1410 1 oneeai Thierry plc1 [3408, 4408, 5408]
+1411 1 oneeaj Thierry plc1 [3409, 4409, 5409]
+1412 1 oneeba Thierry plc1 [3410, 4410, 5410]
+1413 1 oneebb Thierry plc1 [3411, 4411, 5411]
+1414 1 oneebc Thierry plc1 [3412, 4412, 5412]
+1415 1 oneebd Thierry plc1 [3413, 4413, 5413]
+1416 1 oneebe Thierry plc1 [3414, 4414, 5414]
+1417 1 oneebf Thierry plc1 [3415, 4415, 5415]
+1418 1 oneebg Thierry plc1 [3416, 4416, 5416]
+1419 1 oneebh Thierry plc1 [3417, 4417, 5417]
+1420 1 oneebi Thierry plc1 [3418, 4418, 5418]
+1421 1 oneebj Thierry plc1 [3419, 4419, 5419]
+1422 1 oneeca Thierry plc1 [3420, 4420, 5420]
+1423 1 oneecb Thierry plc1 [3421, 4421, 5421]
+1424 1 oneecc Thierry plc1 [3422, 4422, 5422]
+1425 1 oneecd Thierry plc1 [3423, 4423, 5423]
+1426 1 oneece Thierry plc1 [3424, 4424, 5424]
+1427 1 oneecf Thierry plc1 [3425, 4425, 5425]
+1428 1 oneecg Thierry plc1 [3426, 4426, 5426]
+1429 1 oneech Thierry plc1 [3427, 4427, 5427]
+1430 1 oneeci Thierry plc1 [3428, 4428, 5428]
+1431 1 oneecj Thierry plc1 [3429, 4429, 5429]
+1432 1 oneeda Thierry plc1 [3430, 4430, 5430]
+1433 1 oneedb Thierry plc1 [3431, 4431, 5431]
+1434 1 oneedc Thierry plc1 [3432, 4432, 5432]
+1435 1 oneedd Thierry plc1 [3433, 4433, 5433]
+1436 1 oneede Thierry plc1 [3434, 4434, 5434]
+1437 1 oneedf Thierry plc1 [3435, 4435, 5435]
+1438 1 oneedg Thierry plc1 [3436, 4436, 5436]
+1439 1 oneedh Thierry plc1 [3437, 4437, 5437]
+1440 1 oneedi Thierry plc1 [3438, 4438, 5438]
+1441 1 oneedj Thierry plc1 [3439, 4439, 5439]
+1442 1 oneeea Thierry plc1 [3440, 4440, 5440]
+1443 1 oneeeb Thierry plc1 [3441, 4441, 5441]
+1444 1 oneeec Thierry plc1 [3442, 4442, 5442]
+1445 1 oneeed Thierry plc1 [3443, 4443, 5443]
+1446 1 oneeee Thierry plc1 [3444, 4444, 5444]
+1447 1 oneeef Thierry plc1 [3445, 4445, 5445]
+1448 1 oneeeg Thierry plc1 [3446, 4446, 5446]
+1449 1 oneeeh Thierry plc1 [3447, 4447, 5447]
+1450 1 oneeei Thierry plc1 [3448, 4448, 5448]
+1451 1 oneeej Thierry plc1 [3449, 4449, 5449]
+1452 1 oneefa Thierry plc1 [3450, 4450, 5450]
+1453 1 oneefb Thierry plc1 [3451, 4451, 5451]
+1454 1 oneefc Thierry plc1 [3452, 4452, 5452]
+1455 1 oneefd Thierry plc1 [3453, 4453, 5453]
+1456 1 oneefe Thierry plc1 [3454, 4454, 5454]
+1457 1 oneeff Thierry plc1 [3455, 4455, 5455]
+1458 1 oneefg Thierry plc1 [3456, 4456, 5456]
+1459 1 oneefh Thierry plc1 [3457, 4457, 5457]
+1460 1 oneefi Thierry plc1 [3458, 4458, 5458]
+1461 1 oneefj Thierry plc1 [3459, 4459, 5459]
+1462 1 oneega Thierry plc1 [3460, 4460, 5460]
+1463 1 oneegb Thierry plc1 [3461, 4461, 5461]
+1464 1 oneegc Thierry plc1 [3462, 4462, 5462]
+1465 1 oneegd Thierry plc1 [3463, 4463, 5463]
+1466 1 oneege Thierry plc1 [3464, 4464, 5464]
+1467 1 oneegf Thierry plc1 [3465, 4465, 5465]
+1468 1 oneegg Thierry plc1 [3466, 4466, 5466]
+1469 1 oneegh Thierry plc1 [3467, 4467, 5467]
+1470 1 oneegi Thierry plc1 [3468, 4468, 5468]
+1471 1 oneegj Thierry plc1 [3469, 4469, 5469]
+1472 1 oneeha Thierry plc1 [3470, 4470, 5470]
+1473 1 oneehb Thierry plc1 [3471, 4471, 5471]
+1474 1 oneehc Thierry plc1 [3472, 4472, 5472]
+1475 1 oneehd Thierry plc1 [3473, 4473, 5473]
+1476 1 oneehe Thierry plc1 [3474, 4474, 5474]
+1477 1 oneehf Thierry plc1 [3475, 4475, 5475]
+1478 1 oneehg Thierry plc1 [3476, 4476, 5476]
+1479 1 oneehh Thierry plc1 [3477, 4477, 5477]
+1480 1 oneehi Thierry plc1 [3478, 4478, 5478]
+1481 1 oneehj Thierry plc1 [3479, 4479, 5479]
+1482 1 oneeia Thierry plc1 [3480, 4480, 5480]
+1483 1 oneeib Thierry plc1 [3481, 4481, 5481]
+1484 1 oneeic Thierry plc1 [3482, 4482, 5482]
+1485 1 oneeid Thierry plc1 [3483, 4483, 5483]
+1486 1 oneeie Thierry plc1 [3484, 4484, 5484]
+1487 1 oneeif Thierry plc1 [3485, 4485, 5485]
+1488 1 oneeig Thierry plc1 [3486, 4486, 5486]
+1489 1 oneeih Thierry plc1 [3487, 4487, 5487]
+1490 1 oneeii Thierry plc1 [3488, 4488, 5488]
+1491 1 oneeij Thierry plc1 [3489, 4489, 5489]
+1492 1 oneeja Thierry plc1 [3490, 4490, 5490]
+1493 1 oneejb Thierry plc1 [3491, 4491, 5491]
+1494 1 oneejc Thierry plc1 [3492, 4492, 5492]
+1495 1 oneejd Thierry plc1 [3493, 4493, 5493]
+1496 1 oneeje Thierry plc1 [3494, 4494, 5494]
+1497 1 oneejf Thierry plc1 [3495, 4495, 5495]
+1498 1 oneejg Thierry plc1 [3496, 4496, 5496]
+1499 1 oneejh Thierry plc1 [3497, 4497, 5497]
+1500 1 oneeji Thierry plc1 [3498, 4498, 5498]
+1501 1 oneejj Thierry plc1 [3499, 4499, 5499]
+1502 1 onefaa Thierry plc1 [3500, 4500, 5500]
+1503 1 onefab Thierry plc1 [3501, 4501, 5501]
+1504 1 onefac Thierry plc1 [3502, 4502, 5502]
+1505 1 onefad Thierry plc1 [3503, 4503, 5503]
+1506 1 onefae Thierry plc1 [3504, 4504, 5504]
+1507 1 onefaf Thierry plc1 [3505, 4505, 5505]
+1508 1 onefag Thierry plc1 [3506, 4506, 5506]
+1509 1 onefah Thierry plc1 [3507, 4507, 5507]
+1510 1 onefai Thierry plc1 [3508, 4508, 5508]
+1511 1 onefaj Thierry plc1 [3509, 4509, 5509]
+1512 1 onefba Thierry plc1 [3510, 4510, 5510]
+1513 1 onefbb Thierry plc1 [3511, 4511, 5511]
+1514 1 onefbc Thierry plc1 [3512, 4512, 5512]
+1515 1 onefbd Thierry plc1 [3513, 4513, 5513]
+1516 1 onefbe Thierry plc1 [3514, 4514, 5514]
+1517 1 onefbf Thierry plc1 [3515, 4515, 5515]
+1518 1 onefbg Thierry plc1 [3516, 4516, 5516]
+1519 1 onefbh Thierry plc1 [3517, 4517, 5517]
+1520 1 onefbi Thierry plc1 [3518, 4518, 5518]
+1521 1 onefbj Thierry plc1 [3519, 4519, 5519]
+1522 1 onefca Thierry plc1 [3520, 4520, 5520]
+1523 1 onefcb Thierry plc1 [3521, 4521, 5521]
+1524 1 onefcc Thierry plc1 [3522, 4522, 5522]
+1525 1 onefcd Thierry plc1 [3523, 4523, 5523]
+1526 1 onefce Thierry plc1 [3524, 4524, 5524]
+1527 1 onefcf Thierry plc1 [3525, 4525, 5525]
+1528 1 onefcg Thierry plc1 [3526, 4526, 5526]
+1529 1 onefch Thierry plc1 [3527, 4527, 5527]
+1530 1 onefci Thierry plc1 [3528, 4528, 5528]
+1531 1 onefcj Thierry plc1 [3529, 4529, 5529]
+1532 1 onefda Thierry plc1 [3530, 4530, 5530]
+1533 1 onefdb Thierry plc1 [3531, 4531, 5531]
+1534 1 onefdc Thierry plc1 [3532, 4532, 5532]
+1535 1 onefdd Thierry plc1 [3533, 4533, 5533]
+1536 1 onefde Thierry plc1 [3534, 4534, 5534]
+1537 1 onefdf Thierry plc1 [3535, 4535, 5535]
+1538 1 onefdg Thierry plc1 [3536, 4536, 5536]
+1539 1 onefdh Thierry plc1 [3537, 4537, 5537]
+1540 1 onefdi Thierry plc1 [3538, 4538, 5538]
+1541 1 onefdj Thierry plc1 [3539, 4539, 5539]
+1542 1 onefea Thierry plc1 [3540, 4540, 5540]
+1543 1 onefeb Thierry plc1 [3541, 4541, 5541]
+1544 1 onefec Thierry plc1 [3542, 4542, 5542]
+1545 1 onefed Thierry plc1 [3543, 4543, 5543]
+1546 1 onefee Thierry plc1 [3544, 4544, 5544]
+1547 1 onefef Thierry plc1 [3545, 4545, 5545]
+1548 1 onefeg Thierry plc1 [3546, 4546, 5546]
+1549 1 onefeh Thierry plc1 [3547, 4547, 5547]
+1550 1 onefei Thierry plc1 [3548, 4548, 5548]
+1551 1 onefej Thierry plc1 [3549, 4549, 5549]
+1552 1 oneffa Thierry plc1 [3550, 4550, 5550]
+1553 1 oneffb Thierry plc1 [3551, 4551, 5551]
+1554 1 oneffc Thierry plc1 [3552, 4552, 5552]
+1555 1 oneffd Thierry plc1 [3553, 4553, 5553]
+1556 1 oneffe Thierry plc1 [3554, 4554, 5554]
+1557 1 onefff Thierry plc1 [3555, 4555, 5555]
+1558 1 oneffg Thierry plc1 [3556, 4556, 5556]
+1559 1 oneffh Thierry plc1 [3557, 4557, 5557]
+1560 1 oneffi Thierry plc1 [3558, 4558, 5558]
+1561 1 oneffj Thierry plc1 [3559, 4559, 5559]
+1562 1 onefga Thierry plc1 [3560, 4560, 5560]
+1563 1 onefgb Thierry plc1 [3561, 4561, 5561]
+1564 1 onefgc Thierry plc1 [3562, 4562, 5562]
+1565 1 onefgd Thierry plc1 [3563, 4563, 5563]
+1566 1 onefge Thierry plc1 [3564, 4564, 5564]
+1567 1 onefgf Thierry plc1 [3565, 4565, 5565]
+1568 1 onefgg Thierry plc1 [3566, 4566, 5566]
+1569 1 onefgh Thierry plc1 [3567, 4567, 5567]
+1570 1 onefgi Thierry plc1 [3568, 4568, 5568]
+1571 1 onefgj Thierry plc1 [3569, 4569, 5569]
+1572 1 onefha Thierry plc1 [3570, 4570, 5570]
+1573 1 onefhb Thierry plc1 [3571, 4571, 5571]
+1574 1 onefhc Thierry plc1 [3572, 4572, 5572]
+1575 1 onefhd Thierry plc1 [3573, 4573, 5573]
+1576 1 onefhe Thierry plc1 [3574, 4574, 5574]
+1577 1 onefhf Thierry plc1 [3575, 4575, 5575]
+1578 1 onefhg Thierry plc1 [3576, 4576, 5576]
+1579 1 onefhh Thierry plc1 [3577, 4577, 5577]
+1580 1 onefhi Thierry plc1 [3578, 4578, 5578]
+1581 1 onefhj Thierry plc1 [3579, 4579, 5579]
+1582 1 onefia Thierry plc1 [3580, 4580, 5580]
+1583 1 onefib Thierry plc1 [3581, 4581, 5581]
+1584 1 onefic Thierry plc1 [3582, 4582, 5582]
+1585 1 onefid Thierry plc1 [3583, 4583, 5583]
+1586 1 onefie Thierry plc1 [3584, 4584, 5584]
+1587 1 onefif Thierry plc1 [3585, 4585, 5585]
+1588 1 onefig Thierry plc1 [3586, 4586, 5586]
+1589 1 onefih Thierry plc1 [3587, 4587, 5587]
+1590 1 onefii Thierry plc1 [3588, 4588, 5588]
+1591 1 onefij Thierry plc1 [3589, 4589, 5589]
+1592 1 onefja Thierry plc1 [3590, 4590, 5590]
+1593 1 onefjb Thierry plc1 [3591, 4591, 5591]
+1594 1 onefjc Thierry plc1 [3592, 4592, 5592]
+1595 1 onefjd Thierry plc1 [3593, 4593, 5593]
+1596 1 onefje Thierry plc1 [3594, 4594, 5594]
+1597 1 onefjf Thierry plc1 [3595, 4595, 5595]
+1598 1 onefjg Thierry plc1 [3596, 4596, 5596]
+1599 1 onefjh Thierry plc1 [3597, 4597, 5597]
+1600 1 onefji Thierry plc1 [3598, 4598, 5598]
+1601 1 onefjj Thierry plc1 [3599, 4599, 5599]
+1602 1 onegaa Thierry plc1 [3600, 4600, 5600]
+1603 1 onegab Thierry plc1 [3601, 4601, 5601]
+1604 1 onegac Thierry plc1 [3602, 4602, 5602]
+1605 1 onegad Thierry plc1 [3603, 4603, 5603]
+1606 1 onegae Thierry plc1 [3604, 4604, 5604]
+1607 1 onegaf Thierry plc1 [3605, 4605, 5605]
+1608 1 onegag Thierry plc1 [3606, 4606, 5606]
+1609 1 onegah Thierry plc1 [3607, 4607, 5607]
+1610 1 onegai Thierry plc1 [3608, 4608, 5608]
+1611 1 onegaj Thierry plc1 [3609, 4609, 5609]
+1612 1 onegba Thierry plc1 [3610, 4610, 5610]
+1613 1 onegbb Thierry plc1 [3611, 4611, 5611]
+1614 1 onegbc Thierry plc1 [3612, 4612, 5612]
+1615 1 onegbd Thierry plc1 [3613, 4613, 5613]
+1616 1 onegbe Thierry plc1 [3614, 4614, 5614]
+1617 1 onegbf Thierry plc1 [3615, 4615, 5615]
+1618 1 onegbg Thierry plc1 [3616, 4616, 5616]
+1619 1 onegbh Thierry plc1 [3617, 4617, 5617]
+1620 1 onegbi Thierry plc1 [3618, 4618, 5618]
+1621 1 onegbj Thierry plc1 [3619, 4619, 5619]
+1622 1 onegca Thierry plc1 [3620, 4620, 5620]
+1623 1 onegcb Thierry plc1 [3621, 4621, 5621]
+1624 1 onegcc Thierry plc1 [3622, 4622, 5622]
+1625 1 onegcd Thierry plc1 [3623, 4623, 5623]
+1626 1 onegce Thierry plc1 [3624, 4624, 5624]
+1627 1 onegcf Thierry plc1 [3625, 4625, 5625]
+1628 1 onegcg Thierry plc1 [3626, 4626, 5626]
+1629 1 onegch Thierry plc1 [3627, 4627, 5627]
+1630 1 onegci Thierry plc1 [3628, 4628, 5628]
+1631 1 onegcj Thierry plc1 [3629, 4629, 5629]
+1632 1 onegda Thierry plc1 [3630, 4630, 5630]
+1633 1 onegdb Thierry plc1 [3631, 4631, 5631]
+1634 1 onegdc Thierry plc1 [3632, 4632, 5632]
+1635 1 onegdd Thierry plc1 [3633, 4633, 5633]
+1636 1 onegde Thierry plc1 [3634, 4634, 5634]
+1637 1 onegdf Thierry plc1 [3635, 4635, 5635]
+1638 1 onegdg Thierry plc1 [3636, 4636, 5636]
+1639 1 onegdh Thierry plc1 [3637, 4637, 5637]
+1640 1 onegdi Thierry plc1 [3638, 4638, 5638]
+1641 1 onegdj Thierry plc1 [3639, 4639, 5639]
+1642 1 onegea Thierry plc1 [3640, 4640, 5640]
+1643 1 onegeb Thierry plc1 [3641, 4641, 5641]
+1644 1 onegec Thierry plc1 [3642, 4642, 5642]
+1645 1 oneged Thierry plc1 [3643, 4643, 5643]
+1646 1 onegee Thierry plc1 [3644, 4644, 5644]
+1647 1 onegef Thierry plc1 [3645, 4645, 5645]
+1648 1 onegeg Thierry plc1 [3646, 4646, 5646]
+1649 1 onegeh Thierry plc1 [3647, 4647, 5647]
+1650 1 onegei Thierry plc1 [3648, 4648, 5648]
+1651 1 onegej Thierry plc1 [3649, 4649, 5649]
+1652 1 onegfa Thierry plc1 [3650, 4650, 5650]
+1653 1 onegfb Thierry plc1 [3651, 4651, 5651]
+1654 1 onegfc Thierry plc1 [3652, 4652, 5652]
+1655 1 onegfd Thierry plc1 [3653, 4653, 5653]
+1656 1 onegfe Thierry plc1 [3654, 4654, 5654]
+1657 1 onegff Thierry plc1 [3655, 4655, 5655]
+1658 1 onegfg Thierry plc1 [3656, 4656, 5656]
+1659 1 onegfh Thierry plc1 [3657, 4657, 5657]
+1660 1 onegfi Thierry plc1 [3658, 4658, 5658]
+1661 1 onegfj Thierry plc1 [3659, 4659, 5659]
+1662 1 onegga Thierry plc1 [3660, 4660, 5660]
+1663 1 oneggb Thierry plc1 [3661, 4661, 5661]
+1664 1 oneggc Thierry plc1 [3662, 4662, 5662]
+1665 1 oneggd Thierry plc1 [3663, 4663, 5663]
+1666 1 onegge Thierry plc1 [3664, 4664, 5664]
+1667 1 oneggf Thierry plc1 [3665, 4665, 5665]
+1668 1 oneggg Thierry plc1 [3666, 4666, 5666]
+1669 1 oneggh Thierry plc1 [3667, 4667, 5667]
+1670 1 oneggi Thierry plc1 [3668, 4668, 5668]
+1671 1 oneggj Thierry plc1 [3669, 4669, 5669]
+1672 1 onegha Thierry plc1 [3670, 4670, 5670]
+1673 1 oneghb Thierry plc1 [3671, 4671, 5671]
+1674 1 oneghc Thierry plc1 [3672, 4672, 5672]
+1675 1 oneghd Thierry plc1 [3673, 4673, 5673]
+1676 1 oneghe Thierry plc1 [3674, 4674, 5674]
+1677 1 oneghf Thierry plc1 [3675, 4675, 5675]
+1678 1 oneghg Thierry plc1 [3676, 4676, 5676]
+1679 1 oneghh Thierry plc1 [3677, 4677, 5677]
+1680 1 oneghi Thierry plc1 [3678, 4678, 5678]
+1681 1 oneghj Thierry plc1 [3679, 4679, 5679]
+1682 1 onegia Thierry plc1 [3680, 4680, 5680]
+1683 1 onegib Thierry plc1 [3681, 4681, 5681]
+1684 1 onegic Thierry plc1 [3682, 4682, 5682]
+1685 1 onegid Thierry plc1 [3683, 4683, 5683]
+1686 1 onegie Thierry plc1 [3684, 4684, 5684]
+1687 1 onegif Thierry plc1 [3685, 4685, 5685]
+1688 1 onegig Thierry plc1 [3686, 4686, 5686]
+1689 1 onegih Thierry plc1 [3687, 4687, 5687]
+1690 1 onegii Thierry plc1 [3688, 4688, 5688]
+1691 1 onegij Thierry plc1 [3689, 4689, 5689]
+1692 1 onegja Thierry plc1 [3690, 4690, 5690]
+1693 1 onegjb Thierry plc1 [3691, 4691, 5691]
+1694 1 onegjc Thierry plc1 [3692, 4692, 5692]
+1695 1 onegjd Thierry plc1 [3693, 4693, 5693]
+1696 1 onegje Thierry plc1 [3694, 4694, 5694]
+1697 1 onegjf Thierry plc1 [3695, 4695, 5695]
+1698 1 onegjg Thierry plc1 [3696, 4696, 5696]
+1699 1 onegjh Thierry plc1 [3697, 4697, 5697]
+1700 1 onegji Thierry plc1 [3698, 4698, 5698]
+1701 1 onegjj Thierry plc1 [3699, 4699, 5699]
+1702 1 onehaa Thierry plc1 [3700, 4700, 5700]
+1703 1 onehab Thierry plc1 [3701, 4701, 5701]
+1704 1 onehac Thierry plc1 [3702, 4702, 5702]
+1705 1 onehad Thierry plc1 [3703, 4703, 5703]
+1706 1 onehae Thierry plc1 [3704, 4704, 5704]
+1707 1 onehaf Thierry plc1 [3705, 4705, 5705]
+1708 1 onehag Thierry plc1 [3706, 4706, 5706]
+1709 1 onehah Thierry plc1 [3707, 4707, 5707]
+1710 1 onehai Thierry plc1 [3708, 4708, 5708]
+1711 1 onehaj Thierry plc1 [3709, 4709, 5709]
+1712 1 onehba Thierry plc1 [3710, 4710, 5710]
+1713 1 onehbb Thierry plc1 [3711, 4711, 5711]
+1714 1 onehbc Thierry plc1 [3712, 4712, 5712]
+1715 1 onehbd Thierry plc1 [3713, 4713, 5713]
+1716 1 onehbe Thierry plc1 [3714, 4714, 5714]
+1717 1 onehbf Thierry plc1 [3715, 4715, 5715]
+1718 1 onehbg Thierry plc1 [3716, 4716, 5716]
+1719 1 onehbh Thierry plc1 [3717, 4717, 5717]
+1720 1 onehbi Thierry plc1 [3718, 4718, 5718]
+1721 1 onehbj Thierry plc1 [3719, 4719, 5719]
+1722 1 onehca Thierry plc1 [3720, 4720, 5720]
+1723 1 onehcb Thierry plc1 [3721, 4721, 5721]
+1724 1 onehcc Thierry plc1 [3722, 4722, 5722]
+1725 1 onehcd Thierry plc1 [3723, 4723, 5723]
+1726 1 onehce Thierry plc1 [3724, 4724, 5724]
+1727 1 onehcf Thierry plc1 [3725, 4725, 5725]
+1728 1 onehcg Thierry plc1 [3726, 4726, 5726]
+1729 1 onehch Thierry plc1 [3727, 4727, 5727]
+1730 1 onehci Thierry plc1 [3728, 4728, 5728]
+1731 1 onehcj Thierry plc1 [3729, 4729, 5729]
+1732 1 onehda Thierry plc1 [3730, 4730, 5730]
+1733 1 onehdb Thierry plc1 [3731, 4731, 5731]
+1734 1 onehdc Thierry plc1 [3732, 4732, 5732]
+1735 1 onehdd Thierry plc1 [3733, 4733, 5733]
+1736 1 onehde Thierry plc1 [3734, 4734, 5734]
+1737 1 onehdf Thierry plc1 [3735, 4735, 5735]
+1738 1 onehdg Thierry plc1 [3736, 4736, 5736]
+1739 1 onehdh Thierry plc1 [3737, 4737, 5737]
+1740 1 onehdi Thierry plc1 [3738, 4738, 5738]
+1741 1 onehdj Thierry plc1 [3739, 4739, 5739]
+1742 1 onehea Thierry plc1 [3740, 4740, 5740]
+1743 1 oneheb Thierry plc1 [3741, 4741, 5741]
+1744 1 onehec Thierry plc1 [3742, 4742, 5742]
+1745 1 onehed Thierry plc1 [3743, 4743, 5743]
+1746 1 onehee Thierry plc1 [3744, 4744, 5744]
+1747 1 onehef Thierry plc1 [3745, 4745, 5745]
+1748 1 oneheg Thierry plc1 [3746, 4746, 5746]
+1749 1 oneheh Thierry plc1 [3747, 4747, 5747]
+1750 1 onehei Thierry plc1 [3748, 4748, 5748]
+1751 1 onehej Thierry plc1 [3749, 4749, 5749]
+1752 1 onehfa Thierry plc1 [3750, 4750, 5750]
+1753 1 onehfb Thierry plc1 [3751, 4751, 5751]
+1754 1 onehfc Thierry plc1 [3752, 4752, 5752]
+1755 1 onehfd Thierry plc1 [3753, 4753, 5753]
+1756 1 onehfe Thierry plc1 [3754, 4754, 5754]
+1757 1 onehff Thierry plc1 [3755, 4755, 5755]
+1758 1 onehfg Thierry plc1 [3756, 4756, 5756]
+1759 1 onehfh Thierry plc1 [3757, 4757, 5757]
+1760 1 onehfi Thierry plc1 [3758, 4758, 5758]
+1761 1 onehfj Thierry plc1 [3759, 4759, 5759]
+1762 1 onehga Thierry plc1 [3760, 4760, 5760]
+1763 1 onehgb Thierry plc1 [3761, 4761, 5761]
+1764 1 onehgc Thierry plc1 [3762, 4762, 5762]
+1765 1 onehgd Thierry plc1 [3763, 4763, 5763]
+1766 1 onehge Thierry plc1 [3764, 4764, 5764]
+1767 1 onehgf Thierry plc1 [3765, 4765, 5765]
+1768 1 onehgg Thierry plc1 [3766, 4766, 5766]
+1769 1 onehgh Thierry plc1 [3767, 4767, 5767]
+1770 1 onehgi Thierry plc1 [3768, 4768, 5768]
+1771 1 onehgj Thierry plc1 [3769, 4769, 5769]
+1772 1 onehha Thierry plc1 [3770, 4770, 5770]
+1773 1 onehhb Thierry plc1 [3771, 4771, 5771]
+1774 1 onehhc Thierry plc1 [3772, 4772, 5772]
+1775 1 onehhd Thierry plc1 [3773, 4773, 5773]
+1776 1 onehhe Thierry plc1 [3774, 4774, 5774]
+1777 1 onehhf Thierry plc1 [3775, 4775, 5775]
+1778 1 onehhg Thierry plc1 [3776, 4776, 5776]
+1779 1 onehhh Thierry plc1 [3777, 4777, 5777]
+1780 1 onehhi Thierry plc1 [3778, 4778, 5778]
+1781 1 onehhj Thierry plc1 [3779, 4779, 5779]
+1782 1 onehia Thierry plc1 [3780, 4780, 5780]
+1783 1 onehib Thierry plc1 [3781, 4781, 5781]
+1784 1 onehic Thierry plc1 [3782, 4782, 5782]
+1785 1 onehid Thierry plc1 [3783, 4783, 5783]
+1786 1 onehie Thierry plc1 [3784, 4784, 5784]
+1787 1 onehif Thierry plc1 [3785, 4785, 5785]
+1788 1 onehig Thierry plc1 [3786, 4786, 5786]
+1789 1 onehih Thierry plc1 [3787, 4787, 5787]
+1790 1 onehii Thierry plc1 [3788, 4788, 5788]
+1791 1 onehij Thierry plc1 [3789, 4789, 5789]
+1792 1 onehja Thierry plc1 [3790, 4790, 5790]
+1793 1 onehjb Thierry plc1 [3791, 4791, 5791]
+1794 1 onehjc Thierry plc1 [3792, 4792, 5792]
+1795 1 onehjd Thierry plc1 [3793, 4793, 5793]
+1796 1 onehje Thierry plc1 [3794, 4794, 5794]
+1797 1 onehjf Thierry plc1 [3795, 4795, 5795]
+1798 1 onehjg Thierry plc1 [3796, 4796, 5796]
+1799 1 onehjh Thierry plc1 [3797, 4797, 5797]
+1800 1 onehji Thierry plc1 [3798, 4798, 5798]
+1801 1 onehjj Thierry plc1 [3799, 4799, 5799]
+1802 1 oneiaa Thierry plc1 [3800, 4800, 5800]
+1803 1 oneiab Thierry plc1 [3801, 4801, 5801]
+1804 1 oneiac Thierry plc1 [3802, 4802, 5802]
+1805 1 oneiad Thierry plc1 [3803, 4803, 5803]
+1806 1 oneiae Thierry plc1 [3804, 4804, 5804]
+1807 1 oneiaf Thierry plc1 [3805, 4805, 5805]
+1808 1 oneiag Thierry plc1 [3806, 4806, 5806]
+1809 1 oneiah Thierry plc1 [3807, 4807, 5807]
+1810 1 oneiai Thierry plc1 [3808, 4808, 5808]
+1811 1 oneiaj Thierry plc1 [3809, 4809, 5809]
+1812 1 oneiba Thierry plc1 [3810, 4810, 5810]
+1813 1 oneibb Thierry plc1 [3811, 4811, 5811]
+1814 1 oneibc Thierry plc1 [3812, 4812, 5812]
+1815 1 oneibd Thierry plc1 [3813, 4813, 5813]
+1816 1 oneibe Thierry plc1 [3814, 4814, 5814]
+1817 1 oneibf Thierry plc1 [3815, 4815, 5815]
+1818 1 oneibg Thierry plc1 [3816, 4816, 5816]
+1819 1 oneibh Thierry plc1 [3817, 4817, 5817]
+1820 1 oneibi Thierry plc1 [3818, 4818, 5818]
+1821 1 oneibj Thierry plc1 [3819, 4819, 5819]
+1822 1 oneica Thierry plc1 [3820, 4820, 5820]
+1823 1 oneicb Thierry plc1 [3821, 4821, 5821]
+1824 1 oneicc Thierry plc1 [3822, 4822, 5822]
+1825 1 oneicd Thierry plc1 [3823, 4823, 5823]
+1826 1 oneice Thierry plc1 [3824, 4824, 5824]
+1827 1 oneicf Thierry plc1 [3825, 4825, 5825]
+1828 1 oneicg Thierry plc1 [3826, 4826, 5826]
+1829 1 oneich Thierry plc1 [3827, 4827, 5827]
+1830 1 oneici Thierry plc1 [3828, 4828, 5828]
+1831 1 oneicj Thierry plc1 [3829, 4829, 5829]
+1832 1 oneida Thierry plc1 [3830, 4830, 5830]
+1833 1 oneidb Thierry plc1 [3831, 4831, 5831]
+1834 1 oneidc Thierry plc1 [3832, 4832, 5832]
+1835 1 oneidd Thierry plc1 [3833, 4833, 5833]
+1836 1 oneide Thierry plc1 [3834, 4834, 5834]
+1837 1 oneidf Thierry plc1 [3835, 4835, 5835]
+1838 1 oneidg Thierry plc1 [3836, 4836, 5836]
+1839 1 oneidh Thierry plc1 [3837, 4837, 5837]
+1840 1 oneidi Thierry plc1 [3838, 4838, 5838]
+1841 1 oneidj Thierry plc1 [3839, 4839, 5839]
+1842 1 oneiea Thierry plc1 [3840, 4840, 5840]
+1843 1 oneieb Thierry plc1 [3841, 4841, 5841]
+1844 1 oneiec Thierry plc1 [3842, 4842, 5842]
+1845 1 oneied Thierry plc1 [3843, 4843, 5843]
+1846 1 oneiee Thierry plc1 [3844, 4844, 5844]
+1847 1 oneief Thierry plc1 [3845, 4845, 5845]
+1848 1 oneieg Thierry plc1 [3846, 4846, 5846]
+1849 1 oneieh Thierry plc1 [3847, 4847, 5847]
+1850 1 oneiei Thierry plc1 [3848, 4848, 5848]
+1851 1 oneiej Thierry plc1 [3849, 4849, 5849]
+1852 1 oneifa Thierry plc1 [3850, 4850, 5850]
+1853 1 oneifb Thierry plc1 [3851, 4851, 5851]
+1854 1 oneifc Thierry plc1 [3852, 4852, 5852]
+1855 1 oneifd Thierry plc1 [3853, 4853, 5853]
+1856 1 oneife Thierry plc1 [3854, 4854, 5854]
+1857 1 oneiff Thierry plc1 [3855, 4855, 5855]
+1858 1 oneifg Thierry plc1 [3856, 4856, 5856]
+1859 1 oneifh Thierry plc1 [3857, 4857, 5857]
+1860 1 oneifi Thierry plc1 [3858, 4858, 5858]
+1861 1 oneifj Thierry plc1 [3859, 4859, 5859]
+1862 1 oneiga Thierry plc1 [3860, 4860, 5860]
+1863 1 oneigb Thierry plc1 [3861, 4861, 5861]
+1864 1 oneigc Thierry plc1 [3862, 4862, 5862]
+1865 1 oneigd Thierry plc1 [3863, 4863, 5863]
+1866 1 oneige Thierry plc1 [3864, 4864, 5864]
+1867 1 oneigf Thierry plc1 [3865, 4865, 5865]
+1868 1 oneigg Thierry plc1 [3866, 4866, 5866]
+1869 1 oneigh Thierry plc1 [3867, 4867, 5867]
+1870 1 oneigi Thierry plc1 [3868, 4868, 5868]
+1871 1 oneigj Thierry plc1 [3869, 4869, 5869]
+1872 1 oneiha Thierry plc1 [3870, 4870, 5870]
+1873 1 oneihb Thierry plc1 [3871, 4871, 5871]
+1874 1 oneihc Thierry plc1 [3872, 4872, 5872]
+1875 1 oneihd Thierry plc1 [3873, 4873, 5873]
+1876 1 oneihe Thierry plc1 [3874, 4874, 5874]
+1877 1 oneihf Thierry plc1 [3875, 4875, 5875]
+1878 1 oneihg Thierry plc1 [3876, 4876, 5876]
+1879 1 oneihh Thierry plc1 [3877, 4877, 5877]
+1880 1 oneihi Thierry plc1 [3878, 4878, 5878]
+1881 1 oneihj Thierry plc1 [3879, 4879, 5879]
+1882 1 oneiia Thierry plc1 [3880, 4880, 5880]
+1883 1 oneiib Thierry plc1 [3881, 4881, 5881]
+1884 1 oneiic Thierry plc1 [3882, 4882, 5882]
+1885 1 oneiid Thierry plc1 [3883, 4883, 5883]
+1886 1 oneiie Thierry plc1 [3884, 4884, 5884]
+1887 1 oneiif Thierry plc1 [3885, 4885, 5885]
+1888 1 oneiig Thierry plc1 [3886, 4886, 5886]
+1889 1 oneiih Thierry plc1 [3887, 4887, 5887]
+1890 1 oneiii Thierry plc1 [3888, 4888, 5888]
+1891 1 oneiij Thierry plc1 [3889, 4889, 5889]
+1892 1 oneija Thierry plc1 [3890, 4890, 5890]
+1893 1 oneijb Thierry plc1 [3891, 4891, 5891]
+1894 1 oneijc Thierry plc1 [3892, 4892, 5892]
+1895 1 oneijd Thierry plc1 [3893, 4893, 5893]
+1896 1 oneije Thierry plc1 [3894, 4894, 5894]
+1897 1 oneijf Thierry plc1 [3895, 4895, 5895]
+1898 1 oneijg Thierry plc1 [3896, 4896, 5896]
+1899 1 oneijh Thierry plc1 [3897, 4897, 5897]
+1900 1 oneiji Thierry plc1 [3898, 4898, 5898]
+1901 1 oneijj Thierry plc1 [3899, 4899, 5899]
+1902 1 onejaa Thierry plc1 [3900, 4900, 5900]
+1903 1 onejab Thierry plc1 [3901, 4901, 5901]
+1904 1 onejac Thierry plc1 [3902, 4902, 5902]
+1905 1 onejad Thierry plc1 [3903, 4903, 5903]
+1906 1 onejae Thierry plc1 [3904, 4904, 5904]
+1907 1 onejaf Thierry plc1 [3905, 4905, 5905]
+1908 1 onejag Thierry plc1 [3906, 4906, 5906]
+1909 1 onejah Thierry plc1 [3907, 4907, 5907]
+1910 1 onejai Thierry plc1 [3908, 4908, 5908]
+1911 1 onejaj Thierry plc1 [3909, 4909, 5909]
+1912 1 onejba Thierry plc1 [3910, 4910, 5910]
+1913 1 onejbb Thierry plc1 [3911, 4911, 5911]
+1914 1 onejbc Thierry plc1 [3912, 4912, 5912]
+1915 1 onejbd Thierry plc1 [3913, 4913, 5913]
+1916 1 onejbe Thierry plc1 [3914, 4914, 5914]
+1917 1 onejbf Thierry plc1 [3915, 4915, 5915]
+1918 1 onejbg Thierry plc1 [3916, 4916, 5916]
+1919 1 onejbh Thierry plc1 [3917, 4917, 5917]
+1920 1 onejbi Thierry plc1 [3918, 4918, 5918]
+1921 1 onejbj Thierry plc1 [3919, 4919, 5919]
+1922 1 onejca Thierry plc1 [3920, 4920, 5920]
+1923 1 onejcb Thierry plc1 [3921, 4921, 5921]
+1924 1 onejcc Thierry plc1 [3922, 4922, 5922]
+1925 1 onejcd Thierry plc1 [3923, 4923, 5923]
+1926 1 onejce Thierry plc1 [3924, 4924, 5924]
+1927 1 onejcf Thierry plc1 [3925, 4925, 5925]
+1928 1 onejcg Thierry plc1 [3926, 4926, 5926]
+1929 1 onejch Thierry plc1 [3927, 4927, 5927]
+1930 1 onejci Thierry plc1 [3928, 4928, 5928]
+1931 1 onejcj Thierry plc1 [3929, 4929, 5929]
+1932 1 onejda Thierry plc1 [3930, 4930, 5930]
+1933 1 onejdb Thierry plc1 [3931, 4931, 5931]
+1934 1 onejdc Thierry plc1 [3932, 4932, 5932]
+1935 1 onejdd Thierry plc1 [3933, 4933, 5933]
+1936 1 onejde Thierry plc1 [3934, 4934, 5934]
+1937 1 onejdf Thierry plc1 [3935, 4935, 5935]
+1938 1 onejdg Thierry plc1 [3936, 4936, 5936]
+1939 1 onejdh Thierry plc1 [3937, 4937, 5937]
+1940 1 onejdi Thierry plc1 [3938, 4938, 5938]
+1941 1 onejdj Thierry plc1 [3939, 4939, 5939]
+1942 1 onejea Thierry plc1 [3940, 4940, 5940]
+1943 1 onejeb Thierry plc1 [3941, 4941, 5941]
+1944 1 onejec Thierry plc1 [3942, 4942, 5942]
+1945 1 onejed Thierry plc1 [3943, 4943, 5943]
+1946 1 onejee Thierry plc1 [3944, 4944, 5944]
+1947 1 onejef Thierry plc1 [3945, 4945, 5945]
+1948 1 onejeg Thierry plc1 [3946, 4946, 5946]
+1949 1 onejeh Thierry plc1 [3947, 4947, 5947]
+1950 1 onejei Thierry plc1 [3948, 4948, 5948]
+1951 1 onejej Thierry plc1 [3949, 4949, 5949]
+1952 1 onejfa Thierry plc1 [3950, 4950, 5950]
+1953 1 onejfb Thierry plc1 [3951, 4951, 5951]
+1954 1 onejfc Thierry plc1 [3952, 4952, 5952]
+1955 1 onejfd Thierry plc1 [3953, 4953, 5953]
+1956 1 onejfe Thierry plc1 [3954, 4954, 5954]
+1957 1 onejff Thierry plc1 [3955, 4955, 5955]
+1958 1 onejfg Thierry plc1 [3956, 4956, 5956]
+1959 1 onejfh Thierry plc1 [3957, 4957, 5957]
+1960 1 onejfi Thierry plc1 [3958, 4958, 5958]
+1961 1 onejfj Thierry plc1 [3959, 4959, 5959]
+1962 1 onejga Thierry plc1 [3960, 4960, 5960]
+1963 1 onejgb Thierry plc1 [3961, 4961, 5961]
+1964 1 onejgc Thierry plc1 [3962, 4962, 5962]
+1965 1 onejgd Thierry plc1 [3963, 4963, 5963]
+1966 1 onejge Thierry plc1 [3964, 4964, 5964]
+1967 1 onejgf Thierry plc1 [3965, 4965, 5965]
+1968 1 onejgg Thierry plc1 [3966, 4966, 5966]
+1969 1 onejgh Thierry plc1 [3967, 4967, 5967]
+1970 1 onejgi Thierry plc1 [3968, 4968, 5968]
+1971 1 onejgj Thierry plc1 [3969, 4969, 5969]
+1972 1 onejha Thierry plc1 [3970, 4970, 5970]
+1973 1 onejhb Thierry plc1 [3971, 4971, 5971]
+1974 1 onejhc Thierry plc1 [3972, 4972, 5972]
+1975 1 onejhd Thierry plc1 [3973, 4973, 5973]
+1976 1 onejhe Thierry plc1 [3974, 4974, 5974]
+1977 1 onejhf Thierry plc1 [3975, 4975, 5975]
+1978 1 onejhg Thierry plc1 [3976, 4976, 5976]
+1979 1 onejhh Thierry plc1 [3977, 4977, 5977]
+1980 1 onejhi Thierry plc1 [3978, 4978, 5978]
+1981 1 onejhj Thierry plc1 [3979, 4979, 5979]
+1982 1 onejia Thierry plc1 [3980, 4980, 5980]
+1983 1 onejib Thierry plc1 [3981, 4981, 5981]
+1984 1 onejic Thierry plc1 [3982, 4982, 5982]
+1985 1 onejid Thierry plc1 [3983, 4983, 5983]
+1986 1 onejie Thierry plc1 [3984, 4984, 5984]
+1987 1 onejif Thierry plc1 [3985, 4985, 5985]
+1988 1 onejig Thierry plc1 [3986, 4986, 5986]
+1989 1 onejih Thierry plc1 [3987, 4987, 5987]
+1990 1 onejii Thierry plc1 [3988, 4988, 5988]
+1991 1 onejij Thierry plc1 [3989, 4989, 5989]
+1992 1 onejja Thierry plc1 [3990, 4990, 5990]
+1993 1 onejjb Thierry plc1 [3991, 4991, 5991]
+1994 1 onejjc Thierry plc1 [3992, 4992, 5992]
+1995 1 onejjd Thierry plc1 [3993, 4993, 5993]
+1996 1 onejje Thierry plc1 [3994, 4994, 5994]
+1997 1 onejjf Thierry plc1 [3995, 4995, 5995]
+1998 1 onejjg Thierry plc1 [3996, 4996, 5996]
+1999 1 onejjh Thierry plc1 [3997, 4997, 5997]
+2000 1 onejji Thierry plc1 [3998, 4998, 5998]
+2001 1 onejjj Thierry plc1 [3999, 4999, 5999]
+2002 1 onebaaa Thierry plc1 [4000, 5000, 6000]
+02: KEYS
+1 None ssh-rsa 22key4plc22 user1-key1
+2 None ssh-rsa 22key4plc22 user2-key1
+3 None ssh-rsa 22key4plc22 user3-key1
+4 None ssh-rsa 22key4plc22 user4-key1
+5 None ssh-rsa 22key4plc22 user5-key1
+6 None ssh-rsa 22key4plc22 user6-key1
+7 None ssh-rsa 22key4plc22 user7-key1
+8 None ssh-rsa 22key4plc22 user8-key1
+9 None ssh-rsa 22key4plc22 user9-key1
+10 None ssh-rsa 22key4plc22 user10-key1
+11 None ssh-rsa 22key4plc22 user11-key1
+12 None ssh-rsa 22key4plc22 user12-key1
+13 None ssh-rsa 22key4plc22 user13-key1
+14 None ssh-rsa 22key4plc22 user14-key1
+15 None ssh-rsa 22key4plc22 user15-key1
+16 None ssh-rsa 22key4plc22 user16-key1
+17 None ssh-rsa 22key4plc22 user17-key1
+18 None ssh-rsa 22key4plc22 user18-key1
+19 None ssh-rsa 22key4plc22 user19-key1
+20 None ssh-rsa 22key4plc22 user20-key1
+21 None ssh-rsa 22key4plc22 user21-key1
+22 None ssh-rsa 22key4plc22 user22-key1
+23 None ssh-rsa 22key4plc22 user23-key1
+24 None ssh-rsa 22key4plc22 user24-key1
+25 None ssh-rsa 22key4plc22 user25-key1
+26 None ssh-rsa 22key4plc22 user26-key1
+27 None ssh-rsa 22key4plc22 user27-key1
+28 None ssh-rsa 22key4plc22 user28-key1
+29 None ssh-rsa 22key4plc22 user29-key1
+30 None ssh-rsa 22key4plc22 user30-key1
+31 None ssh-rsa 22key4plc22 user31-key1
+32 None ssh-rsa 22key4plc22 user32-key1
+33 None ssh-rsa 22key4plc22 user33-key1
+34 None ssh-rsa 22key4plc22 user34-key1
+35 None ssh-rsa 22key4plc22 user35-key1
+36 None ssh-rsa 22key4plc22 user36-key1
+37 None ssh-rsa 22key4plc22 user37-key1
+38 None ssh-rsa 22key4plc22 user38-key1
+39 None ssh-rsa 22key4plc22 user39-key1
+40 None ssh-rsa 22key4plc22 user40-key1
+41 None ssh-rsa 22key4plc22 user41-key1
+42 None ssh-rsa 22key4plc22 user42-key1
+43 None ssh-rsa 22key4plc22 user43-key1
+44 None ssh-rsa 22key4plc22 user44-key1
+45 None ssh-rsa 22key4plc22 user45-key1
+46 None ssh-rsa 22key4plc22 user46-key1
+47 None ssh-rsa 22key4plc22 user47-key1
+48 None ssh-rsa 22key4plc22 user48-key1
+49 None ssh-rsa 22key4plc22 user49-key1
+50 None ssh-rsa 22key4plc22 user50-key1
+51 None ssh-rsa 22key4plc22 user51-key1
+52 None ssh-rsa 22key4plc22 user52-key1
+53 None ssh-rsa 22key4plc22 user53-key1
+54 None ssh-rsa 22key4plc22 user54-key1
+55 None ssh-rsa 22key4plc22 user55-key1
+56 None ssh-rsa 22key4plc22 user56-key1
+57 None ssh-rsa 22key4plc22 user57-key1
+58 None ssh-rsa 22key4plc22 user58-key1
+59 None ssh-rsa 22key4plc22 user59-key1
+60 None ssh-rsa 22key4plc22 user60-key1
+61 None ssh-rsa 22key4plc22 user61-key1
+62 None ssh-rsa 22key4plc22 user62-key1
+63 None ssh-rsa 22key4plc22 user63-key1
+64 None ssh-rsa 22key4plc22 user64-key1
+65 None ssh-rsa 22key4plc22 user65-key1
+66 None ssh-rsa 22key4plc22 user66-key1
+67 None ssh-rsa 22key4plc22 user67-key1
+68 None ssh-rsa 22key4plc22 user68-key1
+69 None ssh-rsa 22key4plc22 user69-key1
+70 None ssh-rsa 22key4plc22 user70-key1
+71 None ssh-rsa 22key4plc22 user71-key1
+72 None ssh-rsa 22key4plc22 user72-key1
+73 None ssh-rsa 22key4plc22 user73-key1
+74 None ssh-rsa 22key4plc22 user74-key1
+75 None ssh-rsa 22key4plc22 user75-key1
+76 None ssh-rsa 22key4plc22 user76-key1
+77 None ssh-rsa 22key4plc22 user77-key1
+78 None ssh-rsa 22key4plc22 user78-key1
+79 None ssh-rsa 22key4plc22 user79-key1
+80 None ssh-rsa 22key4plc22 user80-key1
+81 None ssh-rsa 22key4plc22 user81-key1
+82 None ssh-rsa 22key4plc22 user82-key1
+83 None ssh-rsa 22key4plc22 user83-key1
+84 None ssh-rsa 22key4plc22 user84-key1
+85 None ssh-rsa 22key4plc22 user85-key1
+86 None ssh-rsa 22key4plc22 user86-key1
+87 None ssh-rsa 22key4plc22 user87-key1
+88 None ssh-rsa 22key4plc22 user88-key1
+89 None ssh-rsa 22key4plc22 user89-key1
+90 None ssh-rsa 22key4plc22 user90-key1
+91 None ssh-rsa 22key4plc22 user91-key1
+92 None ssh-rsa 22key4plc22 user92-key1
+93 None ssh-rsa 22key4plc22 user93-key1
+94 None ssh-rsa 22key4plc22 user94-key1
+95 None ssh-rsa 22key4plc22 user95-key1
+96 None ssh-rsa 22key4plc22 user96-key1
+97 None ssh-rsa 22key4plc22 user97-key1
+98 None ssh-rsa 22key4plc22 user98-key1
+99 None ssh-rsa 22key4plc22 user99-key1
+100 None ssh-rsa 22key4plc22 user100-key1
+101 None ssh-rsa 22key4plc22 user101-key1
+102 None ssh-rsa 22key4plc22 user102-key1
+103 None ssh-rsa 22key4plc22 user103-key1
+104 None ssh-rsa 22key4plc22 user104-key1
+105 None ssh-rsa 22key4plc22 user105-key1
+106 None ssh-rsa 22key4plc22 user106-key1
+107 None ssh-rsa 22key4plc22 user107-key1
+108 None ssh-rsa 22key4plc22 user108-key1
+109 None ssh-rsa 22key4plc22 user109-key1
+110 None ssh-rsa 22key4plc22 user110-key1
+111 None ssh-rsa 22key4plc22 user111-key1
+112 None ssh-rsa 22key4plc22 user112-key1
+113 None ssh-rsa 22key4plc22 user113-key1
+114 None ssh-rsa 22key4plc22 user114-key1
+115 None ssh-rsa 22key4plc22 user115-key1
+116 None ssh-rsa 22key4plc22 user116-key1
+117 None ssh-rsa 22key4plc22 user117-key1
+118 None ssh-rsa 22key4plc22 user118-key1
+119 None ssh-rsa 22key4plc22 user119-key1
+120 None ssh-rsa 22key4plc22 user120-key1
+121 None ssh-rsa 22key4plc22 user121-key1
+122 None ssh-rsa 22key4plc22 user122-key1
+123 None ssh-rsa 22key4plc22 user123-key1
+124 None ssh-rsa 22key4plc22 user124-key1
+125 None ssh-rsa 22key4plc22 user125-key1
+126 None ssh-rsa 22key4plc22 user126-key1
+127 None ssh-rsa 22key4plc22 user127-key1
+128 None ssh-rsa 22key4plc22 user128-key1
+129 None ssh-rsa 22key4plc22 user129-key1
+130 None ssh-rsa 22key4plc22 user130-key1
+131 None ssh-rsa 22key4plc22 user131-key1
+132 None ssh-rsa 22key4plc22 user132-key1
+133 None ssh-rsa 22key4plc22 user133-key1
+134 None ssh-rsa 22key4plc22 user134-key1
+135 None ssh-rsa 22key4plc22 user135-key1
+136 None ssh-rsa 22key4plc22 user136-key1
+137 None ssh-rsa 22key4plc22 user137-key1
+138 None ssh-rsa 22key4plc22 user138-key1
+139 None ssh-rsa 22key4plc22 user139-key1
+140 None ssh-rsa 22key4plc22 user140-key1
+141 None ssh-rsa 22key4plc22 user141-key1
+142 None ssh-rsa 22key4plc22 user142-key1
+143 None ssh-rsa 22key4plc22 user143-key1
+144 None ssh-rsa 22key4plc22 user144-key1
+145 None ssh-rsa 22key4plc22 user145-key1
+146 None ssh-rsa 22key4plc22 user146-key1
+147 None ssh-rsa 22key4plc22 user147-key1
+148 None ssh-rsa 22key4plc22 user148-key1
+149 None ssh-rsa 22key4plc22 user149-key1
+150 None ssh-rsa 22key4plc22 user150-key1
+151 None ssh-rsa 22key4plc22 user151-key1
+152 None ssh-rsa 22key4plc22 user152-key1
+153 None ssh-rsa 22key4plc22 user153-key1
+154 None ssh-rsa 22key4plc22 user154-key1
+155 None ssh-rsa 22key4plc22 user155-key1
+156 None ssh-rsa 22key4plc22 user156-key1
+157 None ssh-rsa 22key4plc22 user157-key1
+158 None ssh-rsa 22key4plc22 user158-key1
+159 None ssh-rsa 22key4plc22 user159-key1
+160 None ssh-rsa 22key4plc22 user160-key1
+161 None ssh-rsa 22key4plc22 user161-key1
+162 None ssh-rsa 22key4plc22 user162-key1
+163 None ssh-rsa 22key4plc22 user163-key1
+164 None ssh-rsa 22key4plc22 user164-key1
+165 None ssh-rsa 22key4plc22 user165-key1
+166 None ssh-rsa 22key4plc22 user166-key1
+167 None ssh-rsa 22key4plc22 user167-key1
+168 None ssh-rsa 22key4plc22 user168-key1
+169 None ssh-rsa 22key4plc22 user169-key1
+170 None ssh-rsa 22key4plc22 user170-key1
+171 None ssh-rsa 22key4plc22 user171-key1
+172 None ssh-rsa 22key4plc22 user172-key1
+173 None ssh-rsa 22key4plc22 user173-key1
+174 None ssh-rsa 22key4plc22 user174-key1
+175 None ssh-rsa 22key4plc22 user175-key1
+176 None ssh-rsa 22key4plc22 user176-key1
+177 None ssh-rsa 22key4plc22 user177-key1
+178 None ssh-rsa 22key4plc22 user178-key1
+179 None ssh-rsa 22key4plc22 user179-key1
+180 None ssh-rsa 22key4plc22 user180-key1
+181 None ssh-rsa 22key4plc22 user181-key1
+182 None ssh-rsa 22key4plc22 user182-key1
+183 None ssh-rsa 22key4plc22 user183-key1
+184 None ssh-rsa 22key4plc22 user184-key1
+185 None ssh-rsa 22key4plc22 user185-key1
+186 None ssh-rsa 22key4plc22 user186-key1
+187 None ssh-rsa 22key4plc22 user187-key1
+188 None ssh-rsa 22key4plc22 user188-key1
+189 None ssh-rsa 22key4plc22 user189-key1
+190 None ssh-rsa 22key4plc22 user190-key1
+191 None ssh-rsa 22key4plc22 user191-key1
+192 None ssh-rsa 22key4plc22 user192-key1
+193 None ssh-rsa 22key4plc22 user193-key1
+194 None ssh-rsa 22key4plc22 user194-key1
+195 None ssh-rsa 22key4plc22 user195-key1
+196 None ssh-rsa 22key4plc22 user196-key1
+197 None ssh-rsa 22key4plc22 user197-key1
+198 None ssh-rsa 22key4plc22 user198-key1
+199 None ssh-rsa 22key4plc22 user199-key1
+200 None ssh-rsa 22key4plc22 user200-key1
+201 None ssh-rsa 22key4plc22 user201-key1
+202 None ssh-rsa 22key4plc22 user202-key1
+203 None ssh-rsa 22key4plc22 user203-key1
+204 None ssh-rsa 22key4plc22 user204-key1
+205 None ssh-rsa 22key4plc22 user205-key1
+206 None ssh-rsa 22key4plc22 user206-key1
+207 None ssh-rsa 22key4plc22 user207-key1
+208 None ssh-rsa 22key4plc22 user208-key1
+209 None ssh-rsa 22key4plc22 user209-key1
+210 None ssh-rsa 22key4plc22 user210-key1
+211 None ssh-rsa 22key4plc22 user211-key1
+212 None ssh-rsa 22key4plc22 user212-key1
+213 None ssh-rsa 22key4plc22 user213-key1
+214 None ssh-rsa 22key4plc22 user214-key1
+215 None ssh-rsa 22key4plc22 user215-key1
+216 None ssh-rsa 22key4plc22 user216-key1
+217 None ssh-rsa 22key4plc22 user217-key1
+218 None ssh-rsa 22key4plc22 user218-key1
+219 None ssh-rsa 22key4plc22 user219-key1
+220 None ssh-rsa 22key4plc22 user220-key1
+221 None ssh-rsa 22key4plc22 user221-key1
+222 None ssh-rsa 22key4plc22 user222-key1
+223 None ssh-rsa 22key4plc22 user223-key1
+224 None ssh-rsa 22key4plc22 user224-key1
+225 None ssh-rsa 22key4plc22 user225-key1
+226 None ssh-rsa 22key4plc22 user226-key1
+227 None ssh-rsa 22key4plc22 user227-key1
+228 None ssh-rsa 22key4plc22 user228-key1
+229 None ssh-rsa 22key4plc22 user229-key1
+230 None ssh-rsa 22key4plc22 user230-key1
+231 None ssh-rsa 22key4plc22 user231-key1
+232 None ssh-rsa 22key4plc22 user232-key1
+233 None ssh-rsa 22key4plc22 user233-key1
+234 None ssh-rsa 22key4plc22 user234-key1
+235 None ssh-rsa 22key4plc22 user235-key1
+236 None ssh-rsa 22key4plc22 user236-key1
+237 None ssh-rsa 22key4plc22 user237-key1
+238 None ssh-rsa 22key4plc22 user238-key1
+239 None ssh-rsa 22key4plc22 user239-key1
+240 None ssh-rsa 22key4plc22 user240-key1
+241 None ssh-rsa 22key4plc22 user241-key1
+242 None ssh-rsa 22key4plc22 user242-key1
+243 None ssh-rsa 22key4plc22 user243-key1
+244 None ssh-rsa 22key4plc22 user244-key1
+245 None ssh-rsa 22key4plc22 user245-key1
+246 None ssh-rsa 22key4plc22 user246-key1
+247 None ssh-rsa 22key4plc22 user247-key1
+248 None ssh-rsa 22key4plc22 user248-key1
+249 None ssh-rsa 22key4plc22 user249-key1
+250 None ssh-rsa 22key4plc22 user250-key1
+251 None ssh-rsa 22key4plc22 user251-key1
+252 None ssh-rsa 22key4plc22 user252-key1
+253 None ssh-rsa 22key4plc22 user253-key1
+254 None ssh-rsa 22key4plc22 user254-key1
+255 None ssh-rsa 22key4plc22 user255-key1
+256 None ssh-rsa 22key4plc22 user256-key1
+257 None ssh-rsa 22key4plc22 user257-key1
+258 None ssh-rsa 22key4plc22 user258-key1
+259 None ssh-rsa 22key4plc22 user259-key1
+260 None ssh-rsa 22key4plc22 user260-key1
+261 None ssh-rsa 22key4plc22 user261-key1
+262 None ssh-rsa 22key4plc22 user262-key1
+263 None ssh-rsa 22key4plc22 user263-key1
+264 None ssh-rsa 22key4plc22 user264-key1
+265 None ssh-rsa 22key4plc22 user265-key1
+266 None ssh-rsa 22key4plc22 user266-key1
+267 None ssh-rsa 22key4plc22 user267-key1
+268 None ssh-rsa 22key4plc22 user268-key1
+269 None ssh-rsa 22key4plc22 user269-key1
+270 None ssh-rsa 22key4plc22 user270-key1
+271 None ssh-rsa 22key4plc22 user271-key1
+272 None ssh-rsa 22key4plc22 user272-key1
+273 None ssh-rsa 22key4plc22 user273-key1
+274 None ssh-rsa 22key4plc22 user274-key1
+275 None ssh-rsa 22key4plc22 user275-key1
+276 None ssh-rsa 22key4plc22 user276-key1
+277 None ssh-rsa 22key4plc22 user277-key1
+278 None ssh-rsa 22key4plc22 user278-key1
+279 None ssh-rsa 22key4plc22 user279-key1
+280 None ssh-rsa 22key4plc22 user280-key1
+281 None ssh-rsa 22key4plc22 user281-key1
+282 None ssh-rsa 22key4plc22 user282-key1
+283 None ssh-rsa 22key4plc22 user283-key1
+284 None ssh-rsa 22key4plc22 user284-key1
+285 None ssh-rsa 22key4plc22 user285-key1
+286 None ssh-rsa 22key4plc22 user286-key1
+287 None ssh-rsa 22key4plc22 user287-key1
+288 None ssh-rsa 22key4plc22 user288-key1
+289 None ssh-rsa 22key4plc22 user289-key1
+290 None ssh-rsa 22key4plc22 user290-key1
+291 None ssh-rsa 22key4plc22 user291-key1
+292 None ssh-rsa 22key4plc22 user292-key1
+293 None ssh-rsa 22key4plc22 user293-key1
+294 None ssh-rsa 22key4plc22 user294-key1
+295 None ssh-rsa 22key4plc22 user295-key1
+296 None ssh-rsa 22key4plc22 user296-key1
+297 None ssh-rsa 22key4plc22 user297-key1
+298 None ssh-rsa 22key4plc22 user298-key1
+299 None ssh-rsa 22key4plc22 user299-key1
+300 None ssh-rsa 22key4plc22 user300-key1
+301 None ssh-rsa 22key4plc22 user301-key1
+302 None ssh-rsa 22key4plc22 user302-key1
+303 None ssh-rsa 22key4plc22 user303-key1
+304 None ssh-rsa 22key4plc22 user304-key1
+305 None ssh-rsa 22key4plc22 user305-key1
+306 None ssh-rsa 22key4plc22 user306-key1
+307 None ssh-rsa 22key4plc22 user307-key1
+308 None ssh-rsa 22key4plc22 user308-key1
+309 None ssh-rsa 22key4plc22 user309-key1
+310 None ssh-rsa 22key4plc22 user310-key1
+311 None ssh-rsa 22key4plc22 user311-key1
+312 None ssh-rsa 22key4plc22 user312-key1
+313 None ssh-rsa 22key4plc22 user313-key1
+314 None ssh-rsa 22key4plc22 user314-key1
+315 None ssh-rsa 22key4plc22 user315-key1
+316 None ssh-rsa 22key4plc22 user316-key1
+317 None ssh-rsa 22key4plc22 user317-key1
+318 None ssh-rsa 22key4plc22 user318-key1
+319 None ssh-rsa 22key4plc22 user319-key1
+320 None ssh-rsa 22key4plc22 user320-key1
+321 None ssh-rsa 22key4plc22 user321-key1
+322 None ssh-rsa 22key4plc22 user322-key1
+323 None ssh-rsa 22key4plc22 user323-key1
+324 None ssh-rsa 22key4plc22 user324-key1
+325 None ssh-rsa 22key4plc22 user325-key1
+326 None ssh-rsa 22key4plc22 user326-key1
+327 None ssh-rsa 22key4plc22 user327-key1
+328 None ssh-rsa 22key4plc22 user328-key1
+329 None ssh-rsa 22key4plc22 user329-key1
+330 None ssh-rsa 22key4plc22 user330-key1
+331 None ssh-rsa 22key4plc22 user331-key1
+332 None ssh-rsa 22key4plc22 user332-key1
+333 None ssh-rsa 22key4plc22 user333-key1
+334 None ssh-rsa 22key4plc22 user334-key1
+335 None ssh-rsa 22key4plc22 user335-key1
+336 None ssh-rsa 22key4plc22 user336-key1
+337 None ssh-rsa 22key4plc22 user337-key1
+338 None ssh-rsa 22key4plc22 user338-key1
+339 None ssh-rsa 22key4plc22 user339-key1
+340 None ssh-rsa 22key4plc22 user340-key1
+341 None ssh-rsa 22key4plc22 user341-key1
+342 None ssh-rsa 22key4plc22 user342-key1
+343 None ssh-rsa 22key4plc22 user343-key1
+344 None ssh-rsa 22key4plc22 user344-key1
+345 None ssh-rsa 22key4plc22 user345-key1
+346 None ssh-rsa 22key4plc22 user346-key1
+347 None ssh-rsa 22key4plc22 user347-key1
+348 None ssh-rsa 22key4plc22 user348-key1
+349 None ssh-rsa 22key4plc22 user349-key1
+350 None ssh-rsa 22key4plc22 user350-key1
+351 None ssh-rsa 22key4plc22 user351-key1
+352 None ssh-rsa 22key4plc22 user352-key1
+353 None ssh-rsa 22key4plc22 user353-key1
+354 None ssh-rsa 22key4plc22 user354-key1
+355 None ssh-rsa 22key4plc22 user355-key1
+356 None ssh-rsa 22key4plc22 user356-key1
+357 None ssh-rsa 22key4plc22 user357-key1
+358 None ssh-rsa 22key4plc22 user358-key1
+359 None ssh-rsa 22key4plc22 user359-key1
+360 None ssh-rsa 22key4plc22 user360-key1
+361 None ssh-rsa 22key4plc22 user361-key1
+362 None ssh-rsa 22key4plc22 user362-key1
+363 None ssh-rsa 22key4plc22 user363-key1
+364 None ssh-rsa 22key4plc22 user364-key1
+365 None ssh-rsa 22key4plc22 user365-key1
+366 None ssh-rsa 22key4plc22 user366-key1
+367 None ssh-rsa 22key4plc22 user367-key1
+368 None ssh-rsa 22key4plc22 user368-key1
+369 None ssh-rsa 22key4plc22 user369-key1
+370 None ssh-rsa 22key4plc22 user370-key1
+371 None ssh-rsa 22key4plc22 user371-key1
+372 None ssh-rsa 22key4plc22 user372-key1
+373 None ssh-rsa 22key4plc22 user373-key1
+374 None ssh-rsa 22key4plc22 user374-key1
+375 None ssh-rsa 22key4plc22 user375-key1
+376 None ssh-rsa 22key4plc22 user376-key1
+377 None ssh-rsa 22key4plc22 user377-key1
+378 None ssh-rsa 22key4plc22 user378-key1
+379 None ssh-rsa 22key4plc22 user379-key1
+380 None ssh-rsa 22key4plc22 user380-key1
+381 None ssh-rsa 22key4plc22 user381-key1
+382 None ssh-rsa 22key4plc22 user382-key1
+383 None ssh-rsa 22key4plc22 user383-key1
+384 None ssh-rsa 22key4plc22 user384-key1
+385 None ssh-rsa 22key4plc22 user385-key1
+386 None ssh-rsa 22key4plc22 user386-key1
+387 None ssh-rsa 22key4plc22 user387-key1
+388 None ssh-rsa 22key4plc22 user388-key1
+389 None ssh-rsa 22key4plc22 user389-key1
+390 None ssh-rsa 22key4plc22 user390-key1
+391 None ssh-rsa 22key4plc22 user391-key1
+392 None ssh-rsa 22key4plc22 user392-key1
+393 None ssh-rsa 22key4plc22 user393-key1
+394 None ssh-rsa 22key4plc22 user394-key1
+395 None ssh-rsa 22key4plc22 user395-key1
+396 None ssh-rsa 22key4plc22 user396-key1
+397 None ssh-rsa 22key4plc22 user397-key1
+398 None ssh-rsa 22key4plc22 user398-key1
+399 None ssh-rsa 22key4plc22 user399-key1
+400 None ssh-rsa 22key4plc22 user400-key1
+401 None ssh-rsa 22key4plc22 user401-key1
+402 None ssh-rsa 22key4plc22 user402-key1
+403 None ssh-rsa 22key4plc22 user403-key1
+404 None ssh-rsa 22key4plc22 user404-key1
+405 None ssh-rsa 22key4plc22 user405-key1
+406 None ssh-rsa 22key4plc22 user406-key1
+407 None ssh-rsa 22key4plc22 user407-key1
+408 None ssh-rsa 22key4plc22 user408-key1
+409 None ssh-rsa 22key4plc22 user409-key1
+410 None ssh-rsa 22key4plc22 user410-key1
+411 None ssh-rsa 22key4plc22 user411-key1
+412 None ssh-rsa 22key4plc22 user412-key1
+413 None ssh-rsa 22key4plc22 user413-key1
+414 None ssh-rsa 22key4plc22 user414-key1
+415 None ssh-rsa 22key4plc22 user415-key1
+416 None ssh-rsa 22key4plc22 user416-key1
+417 None ssh-rsa 22key4plc22 user417-key1
+418 None ssh-rsa 22key4plc22 user418-key1
+419 None ssh-rsa 22key4plc22 user419-key1
+420 None ssh-rsa 22key4plc22 user420-key1
+421 None ssh-rsa 22key4plc22 user421-key1
+422 None ssh-rsa 22key4plc22 user422-key1
+423 None ssh-rsa 22key4plc22 user423-key1
+424 None ssh-rsa 22key4plc22 user424-key1
+425 None ssh-rsa 22key4plc22 user425-key1
+426 None ssh-rsa 22key4plc22 user426-key1
+427 None ssh-rsa 22key4plc22 user427-key1
+428 None ssh-rsa 22key4plc22 user428-key1
+429 None ssh-rsa 22key4plc22 user429-key1
+430 None ssh-rsa 22key4plc22 user430-key1
+431 None ssh-rsa 22key4plc22 user431-key1
+432 None ssh-rsa 22key4plc22 user432-key1
+433 None ssh-rsa 22key4plc22 user433-key1
+434 None ssh-rsa 22key4plc22 user434-key1
+435 None ssh-rsa 22key4plc22 user435-key1
+436 None ssh-rsa 22key4plc22 user436-key1
+437 None ssh-rsa 22key4plc22 user437-key1
+438 None ssh-rsa 22key4plc22 user438-key1
+439 None ssh-rsa 22key4plc22 user439-key1
+440 None ssh-rsa 22key4plc22 user440-key1
+441 None ssh-rsa 22key4plc22 user441-key1
+442 None ssh-rsa 22key4plc22 user442-key1
+443 None ssh-rsa 22key4plc22 user443-key1
+444 None ssh-rsa 22key4plc22 user444-key1
+445 None ssh-rsa 22key4plc22 user445-key1
+446 None ssh-rsa 22key4plc22 user446-key1
+447 None ssh-rsa 22key4plc22 user447-key1
+448 None ssh-rsa 22key4plc22 user448-key1
+449 None ssh-rsa 22key4plc22 user449-key1
+450 None ssh-rsa 22key4plc22 user450-key1
+451 None ssh-rsa 22key4plc22 user451-key1
+452 None ssh-rsa 22key4plc22 user452-key1
+453 None ssh-rsa 22key4plc22 user453-key1
+454 None ssh-rsa 22key4plc22 user454-key1
+455 None ssh-rsa 22key4plc22 user455-key1
+456 None ssh-rsa 22key4plc22 user456-key1
+457 None ssh-rsa 22key4plc22 user457-key1
+458 None ssh-rsa 22key4plc22 user458-key1
+459 None ssh-rsa 22key4plc22 user459-key1
+460 None ssh-rsa 22key4plc22 user460-key1
+461 None ssh-rsa 22key4plc22 user461-key1
+462 None ssh-rsa 22key4plc22 user462-key1
+463 None ssh-rsa 22key4plc22 user463-key1
+464 None ssh-rsa 22key4plc22 user464-key1
+465 None ssh-rsa 22key4plc22 user465-key1
+466 None ssh-rsa 22key4plc22 user466-key1
+467 None ssh-rsa 22key4plc22 user467-key1
+468 None ssh-rsa 22key4plc22 user468-key1
+469 None ssh-rsa 22key4plc22 user469-key1
+470 None ssh-rsa 22key4plc22 user470-key1
+471 None ssh-rsa 22key4plc22 user471-key1
+472 None ssh-rsa 22key4plc22 user472-key1
+473 None ssh-rsa 22key4plc22 user473-key1
+474 None ssh-rsa 22key4plc22 user474-key1
+475 None ssh-rsa 22key4plc22 user475-key1
+476 None ssh-rsa 22key4plc22 user476-key1
+477 None ssh-rsa 22key4plc22 user477-key1
+478 None ssh-rsa 22key4plc22 user478-key1
+479 None ssh-rsa 22key4plc22 user479-key1
+480 None ssh-rsa 22key4plc22 user480-key1
+481 None ssh-rsa 22key4plc22 user481-key1
+482 None ssh-rsa 22key4plc22 user482-key1
+483 None ssh-rsa 22key4plc22 user483-key1
+484 None ssh-rsa 22key4plc22 user484-key1
+485 None ssh-rsa 22key4plc22 user485-key1
+486 None ssh-rsa 22key4plc22 user486-key1
+487 None ssh-rsa 22key4plc22 user487-key1
+488 None ssh-rsa 22key4plc22 user488-key1
+489 None ssh-rsa 22key4plc22 user489-key1
+490 None ssh-rsa 22key4plc22 user490-key1
+491 None ssh-rsa 22key4plc22 user491-key1
+492 None ssh-rsa 22key4plc22 user492-key1
+493 None ssh-rsa 22key4plc22 user493-key1
+494 None ssh-rsa 22key4plc22 user494-key1
+495 None ssh-rsa 22key4plc22 user495-key1
+496 None ssh-rsa 22key4plc22 user496-key1
+497 None ssh-rsa 22key4plc22 user497-key1
+498 None ssh-rsa 22key4plc22 user498-key1
+499 None ssh-rsa 22key4plc22 user499-key1
+500 None ssh-rsa 22key4plc22 user500-key1
+501 None ssh-rsa 22key4plc22 user501-key1
+502 None ssh-rsa 22key4plc22 user502-key1
+503 None ssh-rsa 22key4plc22 user503-key1
+504 None ssh-rsa 22key4plc22 user504-key1
+505 None ssh-rsa 22key4plc22 user505-key1
+506 None ssh-rsa 22key4plc22 user506-key1
+507 None ssh-rsa 22key4plc22 user507-key1
+508 None ssh-rsa 22key4plc22 user508-key1
+509 None ssh-rsa 22key4plc22 user509-key1
+510 None ssh-rsa 22key4plc22 user510-key1
+511 None ssh-rsa 22key4plc22 user511-key1
+512 None ssh-rsa 22key4plc22 user512-key1
+513 None ssh-rsa 22key4plc22 user513-key1
+514 None ssh-rsa 22key4plc22 user514-key1
+515 None ssh-rsa 22key4plc22 user515-key1
+516 None ssh-rsa 22key4plc22 user516-key1
+517 None ssh-rsa 22key4plc22 user517-key1
+518 None ssh-rsa 22key4plc22 user518-key1
+519 None ssh-rsa 22key4plc22 user519-key1
+520 None ssh-rsa 22key4plc22 user520-key1
+521 None ssh-rsa 22key4plc22 user521-key1
+522 None ssh-rsa 22key4plc22 user522-key1
+523 None ssh-rsa 22key4plc22 user523-key1
+524 None ssh-rsa 22key4plc22 user524-key1
+525 None ssh-rsa 22key4plc22 user525-key1
+526 None ssh-rsa 22key4plc22 user526-key1
+527 None ssh-rsa 22key4plc22 user527-key1
+528 None ssh-rsa 22key4plc22 user528-key1
+529 None ssh-rsa 22key4plc22 user529-key1
+530 None ssh-rsa 22key4plc22 user530-key1
+531 None ssh-rsa 22key4plc22 user531-key1
+532 None ssh-rsa 22key4plc22 user532-key1
+533 None ssh-rsa 22key4plc22 user533-key1
+534 None ssh-rsa 22key4plc22 user534-key1
+535 None ssh-rsa 22key4plc22 user535-key1
+536 None ssh-rsa 22key4plc22 user536-key1
+537 None ssh-rsa 22key4plc22 user537-key1
+538 None ssh-rsa 22key4plc22 user538-key1
+539 None ssh-rsa 22key4plc22 user539-key1
+540 None ssh-rsa 22key4plc22 user540-key1
+541 None ssh-rsa 22key4plc22 user541-key1
+542 None ssh-rsa 22key4plc22 user542-key1
+543 None ssh-rsa 22key4plc22 user543-key1
+544 None ssh-rsa 22key4plc22 user544-key1
+545 None ssh-rsa 22key4plc22 user545-key1
+546 None ssh-rsa 22key4plc22 user546-key1
+547 None ssh-rsa 22key4plc22 user547-key1
+548 None ssh-rsa 22key4plc22 user548-key1
+549 None ssh-rsa 22key4plc22 user549-key1
+550 None ssh-rsa 22key4plc22 user550-key1
+551 None ssh-rsa 22key4plc22 user551-key1
+552 None ssh-rsa 22key4plc22 user552-key1
+553 None ssh-rsa 22key4plc22 user553-key1
+554 None ssh-rsa 22key4plc22 user554-key1
+555 None ssh-rsa 22key4plc22 user555-key1
+556 None ssh-rsa 22key4plc22 user556-key1
+557 None ssh-rsa 22key4plc22 user557-key1
+558 None ssh-rsa 22key4plc22 user558-key1
+559 None ssh-rsa 22key4plc22 user559-key1
+560 None ssh-rsa 22key4plc22 user560-key1
+561 None ssh-rsa 22key4plc22 user561-key1
+562 None ssh-rsa 22key4plc22 user562-key1
+563 None ssh-rsa 22key4plc22 user563-key1
+564 None ssh-rsa 22key4plc22 user564-key1
+565 None ssh-rsa 22key4plc22 user565-key1
+566 None ssh-rsa 22key4plc22 user566-key1
+567 None ssh-rsa 22key4plc22 user567-key1
+568 None ssh-rsa 22key4plc22 user568-key1
+569 None ssh-rsa 22key4plc22 user569-key1
+570 None ssh-rsa 22key4plc22 user570-key1
+571 None ssh-rsa 22key4plc22 user571-key1
+572 None ssh-rsa 22key4plc22 user572-key1
+573 None ssh-rsa 22key4plc22 user573-key1
+574 None ssh-rsa 22key4plc22 user574-key1
+575 None ssh-rsa 22key4plc22 user575-key1
+576 None ssh-rsa 22key4plc22 user576-key1
+577 None ssh-rsa 22key4plc22 user577-key1
+578 None ssh-rsa 22key4plc22 user578-key1
+579 None ssh-rsa 22key4plc22 user579-key1
+580 None ssh-rsa 22key4plc22 user580-key1
+581 None ssh-rsa 22key4plc22 user581-key1
+582 None ssh-rsa 22key4plc22 user582-key1
+583 None ssh-rsa 22key4plc22 user583-key1
+584 None ssh-rsa 22key4plc22 user584-key1
+585 None ssh-rsa 22key4plc22 user585-key1
+586 None ssh-rsa 22key4plc22 user586-key1
+587 None ssh-rsa 22key4plc22 user587-key1
+588 None ssh-rsa 22key4plc22 user588-key1
+589 None ssh-rsa 22key4plc22 user589-key1
+590 None ssh-rsa 22key4plc22 user590-key1
+591 None ssh-rsa 22key4plc22 user591-key1
+592 None ssh-rsa 22key4plc22 user592-key1
+593 None ssh-rsa 22key4plc22 user593-key1
+594 None ssh-rsa 22key4plc22 user594-key1
+595 None ssh-rsa 22key4plc22 user595-key1
+596 None ssh-rsa 22key4plc22 user596-key1
+597 None ssh-rsa 22key4plc22 user597-key1
+598 None ssh-rsa 22key4plc22 user598-key1
+599 None ssh-rsa 22key4plc22 user599-key1
+600 None ssh-rsa 22key4plc22 user600-key1
+601 None ssh-rsa 22key4plc22 user601-key1
+602 None ssh-rsa 22key4plc22 user602-key1
+603 None ssh-rsa 22key4plc22 user603-key1
+604 None ssh-rsa 22key4plc22 user604-key1
+605 None ssh-rsa 22key4plc22 user605-key1
+606 None ssh-rsa 22key4plc22 user606-key1
+607 None ssh-rsa 22key4plc22 user607-key1
+608 None ssh-rsa 22key4plc22 user608-key1
+609 None ssh-rsa 22key4plc22 user609-key1
+610 None ssh-rsa 22key4plc22 user610-key1
+611 None ssh-rsa 22key4plc22 user611-key1
+612 None ssh-rsa 22key4plc22 user612-key1
+613 None ssh-rsa 22key4plc22 user613-key1
+614 None ssh-rsa 22key4plc22 user614-key1
+615 None ssh-rsa 22key4plc22 user615-key1
+616 None ssh-rsa 22key4plc22 user616-key1
+617 None ssh-rsa 22key4plc22 user617-key1
+618 None ssh-rsa 22key4plc22 user618-key1
+619 None ssh-rsa 22key4plc22 user619-key1
+620 None ssh-rsa 22key4plc22 user620-key1
+621 None ssh-rsa 22key4plc22 user621-key1
+622 None ssh-rsa 22key4plc22 user622-key1
+623 None ssh-rsa 22key4plc22 user623-key1
+624 None ssh-rsa 22key4plc22 user624-key1
+625 None ssh-rsa 22key4plc22 user625-key1
+626 None ssh-rsa 22key4plc22 user626-key1
+627 None ssh-rsa 22key4plc22 user627-key1
+628 None ssh-rsa 22key4plc22 user628-key1
+629 None ssh-rsa 22key4plc22 user629-key1
+630 None ssh-rsa 22key4plc22 user630-key1
+631 None ssh-rsa 22key4plc22 user631-key1
+632 None ssh-rsa 22key4plc22 user632-key1
+633 None ssh-rsa 22key4plc22 user633-key1
+634 None ssh-rsa 22key4plc22 user634-key1
+635 None ssh-rsa 22key4plc22 user635-key1
+636 None ssh-rsa 22key4plc22 user636-key1
+637 None ssh-rsa 22key4plc22 user637-key1
+638 None ssh-rsa 22key4plc22 user638-key1
+639 None ssh-rsa 22key4plc22 user639-key1
+640 None ssh-rsa 22key4plc22 user640-key1
+641 None ssh-rsa 22key4plc22 user641-key1
+642 None ssh-rsa 22key4plc22 user642-key1
+643 None ssh-rsa 22key4plc22 user643-key1
+644 None ssh-rsa 22key4plc22 user644-key1
+645 None ssh-rsa 22key4plc22 user645-key1
+646 None ssh-rsa 22key4plc22 user646-key1
+647 None ssh-rsa 22key4plc22 user647-key1
+648 None ssh-rsa 22key4plc22 user648-key1
+649 None ssh-rsa 22key4plc22 user649-key1
+650 None ssh-rsa 22key4plc22 user650-key1
+651 None ssh-rsa 22key4plc22 user651-key1
+652 None ssh-rsa 22key4plc22 user652-key1
+653 None ssh-rsa 22key4plc22 user653-key1
+654 None ssh-rsa 22key4plc22 user654-key1
+655 None ssh-rsa 22key4plc22 user655-key1
+656 None ssh-rsa 22key4plc22 user656-key1
+657 None ssh-rsa 22key4plc22 user657-key1
+658 None ssh-rsa 22key4plc22 user658-key1
+659 None ssh-rsa 22key4plc22 user659-key1
+660 None ssh-rsa 22key4plc22 user660-key1
+661 None ssh-rsa 22key4plc22 user661-key1
+662 None ssh-rsa 22key4plc22 user662-key1
+663 None ssh-rsa 22key4plc22 user663-key1
+664 None ssh-rsa 22key4plc22 user664-key1
+665 None ssh-rsa 22key4plc22 user665-key1
+666 None ssh-rsa 22key4plc22 user666-key1
+667 None ssh-rsa 22key4plc22 user667-key1
+668 None ssh-rsa 22key4plc22 user668-key1
+669 None ssh-rsa 22key4plc22 user669-key1
+670 None ssh-rsa 22key4plc22 user670-key1
+671 None ssh-rsa 22key4plc22 user671-key1
+672 None ssh-rsa 22key4plc22 user672-key1
+673 None ssh-rsa 22key4plc22 user673-key1
+674 None ssh-rsa 22key4plc22 user674-key1
+675 None ssh-rsa 22key4plc22 user675-key1
+676 None ssh-rsa 22key4plc22 user676-key1
+677 None ssh-rsa 22key4plc22 user677-key1
+678 None ssh-rsa 22key4plc22 user678-key1
+679 None ssh-rsa 22key4plc22 user679-key1
+680 None ssh-rsa 22key4plc22 user680-key1
+681 None ssh-rsa 22key4plc22 user681-key1
+682 None ssh-rsa 22key4plc22 user682-key1
+683 None ssh-rsa 22key4plc22 user683-key1
+684 None ssh-rsa 22key4plc22 user684-key1
+685 None ssh-rsa 22key4plc22 user685-key1
+686 None ssh-rsa 22key4plc22 user686-key1
+687 None ssh-rsa 22key4plc22 user687-key1
+688 None ssh-rsa 22key4plc22 user688-key1
+689 None ssh-rsa 22key4plc22 user689-key1
+690 None ssh-rsa 22key4plc22 user690-key1
+691 None ssh-rsa 22key4plc22 user691-key1
+692 None ssh-rsa 22key4plc22 user692-key1
+693 None ssh-rsa 22key4plc22 user693-key1
+694 None ssh-rsa 22key4plc22 user694-key1
+695 None ssh-rsa 22key4plc22 user695-key1
+696 None ssh-rsa 22key4plc22 user696-key1
+697 None ssh-rsa 22key4plc22 user697-key1
+698 None ssh-rsa 22key4plc22 user698-key1
+699 None ssh-rsa 22key4plc22 user699-key1
+700 None ssh-rsa 22key4plc22 user700-key1
+701 None ssh-rsa 22key4plc22 user701-key1
+702 None ssh-rsa 22key4plc22 user702-key1
+703 None ssh-rsa 22key4plc22 user703-key1
+704 None ssh-rsa 22key4plc22 user704-key1
+705 None ssh-rsa 22key4plc22 user705-key1
+706 None ssh-rsa 22key4plc22 user706-key1
+707 None ssh-rsa 22key4plc22 user707-key1
+708 None ssh-rsa 22key4plc22 user708-key1
+709 None ssh-rsa 22key4plc22 user709-key1
+710 None ssh-rsa 22key4plc22 user710-key1
+711 None ssh-rsa 22key4plc22 user711-key1
+712 None ssh-rsa 22key4plc22 user712-key1
+713 None ssh-rsa 22key4plc22 user713-key1
+714 None ssh-rsa 22key4plc22 user714-key1
+715 None ssh-rsa 22key4plc22 user715-key1
+716 None ssh-rsa 22key4plc22 user716-key1
+717 None ssh-rsa 22key4plc22 user717-key1
+718 None ssh-rsa 22key4plc22 user718-key1
+719 None ssh-rsa 22key4plc22 user719-key1
+720 None ssh-rsa 22key4plc22 user720-key1
+721 None ssh-rsa 22key4plc22 user721-key1
+722 None ssh-rsa 22key4plc22 user722-key1
+723 None ssh-rsa 22key4plc22 user723-key1
+724 None ssh-rsa 22key4plc22 user724-key1
+725 None ssh-rsa 22key4plc22 user725-key1
+726 None ssh-rsa 22key4plc22 user726-key1
+727 None ssh-rsa 22key4plc22 user727-key1
+728 None ssh-rsa 22key4plc22 user728-key1
+729 None ssh-rsa 22key4plc22 user729-key1
+730 None ssh-rsa 22key4plc22 user730-key1
+731 None ssh-rsa 22key4plc22 user731-key1
+732 None ssh-rsa 22key4plc22 user732-key1
+733 None ssh-rsa 22key4plc22 user733-key1
+734 None ssh-rsa 22key4plc22 user734-key1
+735 None ssh-rsa 22key4plc22 user735-key1
+736 None ssh-rsa 22key4plc22 user736-key1
+737 None ssh-rsa 22key4plc22 user737-key1
+738 None ssh-rsa 22key4plc22 user738-key1
+739 None ssh-rsa 22key4plc22 user739-key1
+740 None ssh-rsa 22key4plc22 user740-key1
+741 None ssh-rsa 22key4plc22 user741-key1
+742 None ssh-rsa 22key4plc22 user742-key1
+743 None ssh-rsa 22key4plc22 user743-key1
+744 None ssh-rsa 22key4plc22 user744-key1
+745 None ssh-rsa 22key4plc22 user745-key1
+746 None ssh-rsa 22key4plc22 user746-key1
+747 None ssh-rsa 22key4plc22 user747-key1
+748 None ssh-rsa 22key4plc22 user748-key1
+749 None ssh-rsa 22key4plc22 user749-key1
+750 None ssh-rsa 22key4plc22 user750-key1
+751 None ssh-rsa 22key4plc22 user751-key1
+752 None ssh-rsa 22key4plc22 user752-key1
+753 None ssh-rsa 22key4plc22 user753-key1
+754 None ssh-rsa 22key4plc22 user754-key1
+755 None ssh-rsa 22key4plc22 user755-key1
+756 None ssh-rsa 22key4plc22 user756-key1
+757 None ssh-rsa 22key4plc22 user757-key1
+758 None ssh-rsa 22key4plc22 user758-key1
+759 None ssh-rsa 22key4plc22 user759-key1
+760 None ssh-rsa 22key4plc22 user760-key1
+761 None ssh-rsa 22key4plc22 user761-key1
+762 None ssh-rsa 22key4plc22 user762-key1
+763 None ssh-rsa 22key4plc22 user763-key1
+764 None ssh-rsa 22key4plc22 user764-key1
+765 None ssh-rsa 22key4plc22 user765-key1
+766 None ssh-rsa 22key4plc22 user766-key1
+767 None ssh-rsa 22key4plc22 user767-key1
+768 None ssh-rsa 22key4plc22 user768-key1
+769 None ssh-rsa 22key4plc22 user769-key1
+770 None ssh-rsa 22key4plc22 user770-key1
+771 None ssh-rsa 22key4plc22 user771-key1
+772 None ssh-rsa 22key4plc22 user772-key1
+773 None ssh-rsa 22key4plc22 user773-key1
+774 None ssh-rsa 22key4plc22 user774-key1
+775 None ssh-rsa 22key4plc22 user775-key1
+776 None ssh-rsa 22key4plc22 user776-key1
+777 None ssh-rsa 22key4plc22 user777-key1
+778 None ssh-rsa 22key4plc22 user778-key1
+779 None ssh-rsa 22key4plc22 user779-key1
+780 None ssh-rsa 22key4plc22 user780-key1
+781 None ssh-rsa 22key4plc22 user781-key1
+782 None ssh-rsa 22key4plc22 user782-key1
+783 None ssh-rsa 22key4plc22 user783-key1
+784 None ssh-rsa 22key4plc22 user784-key1
+785 None ssh-rsa 22key4plc22 user785-key1
+786 None ssh-rsa 22key4plc22 user786-key1
+787 None ssh-rsa 22key4plc22 user787-key1
+788 None ssh-rsa 22key4plc22 user788-key1
+789 None ssh-rsa 22key4plc22 user789-key1
+790 None ssh-rsa 22key4plc22 user790-key1
+791 None ssh-rsa 22key4plc22 user791-key1
+792 None ssh-rsa 22key4plc22 user792-key1
+793 None ssh-rsa 22key4plc22 user793-key1
+794 None ssh-rsa 22key4plc22 user794-key1
+795 None ssh-rsa 22key4plc22 user795-key1
+796 None ssh-rsa 22key4plc22 user796-key1
+797 None ssh-rsa 22key4plc22 user797-key1
+798 None ssh-rsa 22key4plc22 user798-key1
+799 None ssh-rsa 22key4plc22 user799-key1
+800 None ssh-rsa 22key4plc22 user800-key1
+801 None ssh-rsa 22key4plc22 user801-key1
+802 None ssh-rsa 22key4plc22 user802-key1
+803 None ssh-rsa 22key4plc22 user803-key1
+804 None ssh-rsa 22key4plc22 user804-key1
+805 None ssh-rsa 22key4plc22 user805-key1
+806 None ssh-rsa 22key4plc22 user806-key1
+807 None ssh-rsa 22key4plc22 user807-key1
+808 None ssh-rsa 22key4plc22 user808-key1
+809 None ssh-rsa 22key4plc22 user809-key1
+810 None ssh-rsa 22key4plc22 user810-key1
+811 None ssh-rsa 22key4plc22 user811-key1
+812 None ssh-rsa 22key4plc22 user812-key1
+813 None ssh-rsa 22key4plc22 user813-key1
+814 None ssh-rsa 22key4plc22 user814-key1
+815 None ssh-rsa 22key4plc22 user815-key1
+816 None ssh-rsa 22key4plc22 user816-key1
+817 None ssh-rsa 22key4plc22 user817-key1
+818 None ssh-rsa 22key4plc22 user818-key1
+819 None ssh-rsa 22key4plc22 user819-key1
+820 None ssh-rsa 22key4plc22 user820-key1
+821 None ssh-rsa 22key4plc22 user821-key1
+822 None ssh-rsa 22key4plc22 user822-key1
+823 None ssh-rsa 22key4plc22 user823-key1
+824 None ssh-rsa 22key4plc22 user824-key1
+825 None ssh-rsa 22key4plc22 user825-key1
+826 None ssh-rsa 22key4plc22 user826-key1
+827 None ssh-rsa 22key4plc22 user827-key1
+828 None ssh-rsa 22key4plc22 user828-key1
+829 None ssh-rsa 22key4plc22 user829-key1
+830 None ssh-rsa 22key4plc22 user830-key1
+831 None ssh-rsa 22key4plc22 user831-key1
+832 None ssh-rsa 22key4plc22 user832-key1
+833 None ssh-rsa 22key4plc22 user833-key1
+834 None ssh-rsa 22key4plc22 user834-key1
+835 None ssh-rsa 22key4plc22 user835-key1
+836 None ssh-rsa 22key4plc22 user836-key1
+837 None ssh-rsa 22key4plc22 user837-key1
+838 None ssh-rsa 22key4plc22 user838-key1
+839 None ssh-rsa 22key4plc22 user839-key1
+840 None ssh-rsa 22key4plc22 user840-key1
+841 None ssh-rsa 22key4plc22 user841-key1
+842 None ssh-rsa 22key4plc22 user842-key1
+843 None ssh-rsa 22key4plc22 user843-key1
+844 None ssh-rsa 22key4plc22 user844-key1
+845 None ssh-rsa 22key4plc22 user845-key1
+846 None ssh-rsa 22key4plc22 user846-key1
+847 None ssh-rsa 22key4plc22 user847-key1
+848 None ssh-rsa 22key4plc22 user848-key1
+849 None ssh-rsa 22key4plc22 user849-key1
+850 None ssh-rsa 22key4plc22 user850-key1
+851 None ssh-rsa 22key4plc22 user851-key1
+852 None ssh-rsa 22key4plc22 user852-key1
+853 None ssh-rsa 22key4plc22 user853-key1
+854 None ssh-rsa 22key4plc22 user854-key1
+855 None ssh-rsa 22key4plc22 user855-key1
+856 None ssh-rsa 22key4plc22 user856-key1
+857 None ssh-rsa 22key4plc22 user857-key1
+858 None ssh-rsa 22key4plc22 user858-key1
+859 None ssh-rsa 22key4plc22 user859-key1
+860 None ssh-rsa 22key4plc22 user860-key1
+861 None ssh-rsa 22key4plc22 user861-key1
+862 None ssh-rsa 22key4plc22 user862-key1
+863 None ssh-rsa 22key4plc22 user863-key1
+864 None ssh-rsa 22key4plc22 user864-key1
+865 None ssh-rsa 22key4plc22 user865-key1
+866 None ssh-rsa 22key4plc22 user866-key1
+867 None ssh-rsa 22key4plc22 user867-key1
+868 None ssh-rsa 22key4plc22 user868-key1
+869 None ssh-rsa 22key4plc22 user869-key1
+870 None ssh-rsa 22key4plc22 user870-key1
+871 None ssh-rsa 22key4plc22 user871-key1
+872 None ssh-rsa 22key4plc22 user872-key1
+873 None ssh-rsa 22key4plc22 user873-key1
+874 None ssh-rsa 22key4plc22 user874-key1
+875 None ssh-rsa 22key4plc22 user875-key1
+876 None ssh-rsa 22key4plc22 user876-key1
+877 None ssh-rsa 22key4plc22 user877-key1
+878 None ssh-rsa 22key4plc22 user878-key1
+879 None ssh-rsa 22key4plc22 user879-key1
+880 None ssh-rsa 22key4plc22 user880-key1
+881 None ssh-rsa 22key4plc22 user881-key1
+882 None ssh-rsa 22key4plc22 user882-key1
+883 None ssh-rsa 22key4plc22 user883-key1
+884 None ssh-rsa 22key4plc22 user884-key1
+885 None ssh-rsa 22key4plc22 user885-key1
+886 None ssh-rsa 22key4plc22 user886-key1
+887 None ssh-rsa 22key4plc22 user887-key1
+888 None ssh-rsa 22key4plc22 user888-key1
+889 None ssh-rsa 22key4plc22 user889-key1
+890 None ssh-rsa 22key4plc22 user890-key1
+891 None ssh-rsa 22key4plc22 user891-key1
+892 None ssh-rsa 22key4plc22 user892-key1
+893 None ssh-rsa 22key4plc22 user893-key1
+894 None ssh-rsa 22key4plc22 user894-key1
+895 None ssh-rsa 22key4plc22 user895-key1
+896 None ssh-rsa 22key4plc22 user896-key1
+897 None ssh-rsa 22key4plc22 user897-key1
+898 None ssh-rsa 22key4plc22 user898-key1
+899 None ssh-rsa 22key4plc22 user899-key1
+900 None ssh-rsa 22key4plc22 user900-key1
+901 None ssh-rsa 22key4plc22 user901-key1
+902 None ssh-rsa 22key4plc22 user902-key1
+903 None ssh-rsa 22key4plc22 user903-key1
+904 None ssh-rsa 22key4plc22 user904-key1
+905 None ssh-rsa 22key4plc22 user905-key1
+906 None ssh-rsa 22key4plc22 user906-key1
+907 None ssh-rsa 22key4plc22 user907-key1
+908 None ssh-rsa 22key4plc22 user908-key1
+909 None ssh-rsa 22key4plc22 user909-key1
+910 None ssh-rsa 22key4plc22 user910-key1
+911 None ssh-rsa 22key4plc22 user911-key1
+912 None ssh-rsa 22key4plc22 user912-key1
+913 None ssh-rsa 22key4plc22 user913-key1
+914 None ssh-rsa 22key4plc22 user914-key1
+915 None ssh-rsa 22key4plc22 user915-key1
+916 None ssh-rsa 22key4plc22 user916-key1
+917 None ssh-rsa 22key4plc22 user917-key1
+918 None ssh-rsa 22key4plc22 user918-key1
+919 None ssh-rsa 22key4plc22 user919-key1
+920 None ssh-rsa 22key4plc22 user920-key1
+921 None ssh-rsa 22key4plc22 user921-key1
+922 None ssh-rsa 22key4plc22 user922-key1
+923 None ssh-rsa 22key4plc22 user923-key1
+924 None ssh-rsa 22key4plc22 user924-key1
+925 None ssh-rsa 22key4plc22 user925-key1
+926 None ssh-rsa 22key4plc22 user926-key1
+927 None ssh-rsa 22key4plc22 user927-key1
+928 None ssh-rsa 22key4plc22 user928-key1
+929 None ssh-rsa 22key4plc22 user929-key1
+930 None ssh-rsa 22key4plc22 user930-key1
+931 None ssh-rsa 22key4plc22 user931-key1
+932 None ssh-rsa 22key4plc22 user932-key1
+933 None ssh-rsa 22key4plc22 user933-key1
+934 None ssh-rsa 22key4plc22 user934-key1
+935 None ssh-rsa 22key4plc22 user935-key1
+936 None ssh-rsa 22key4plc22 user936-key1
+937 None ssh-rsa 22key4plc22 user937-key1
+938 None ssh-rsa 22key4plc22 user938-key1
+939 None ssh-rsa 22key4plc22 user939-key1
+940 None ssh-rsa 22key4plc22 user940-key1
+941 None ssh-rsa 22key4plc22 user941-key1
+942 None ssh-rsa 22key4plc22 user942-key1
+943 None ssh-rsa 22key4plc22 user943-key1
+944 None ssh-rsa 22key4plc22 user944-key1
+945 None ssh-rsa 22key4plc22 user945-key1
+946 None ssh-rsa 22key4plc22 user946-key1
+947 None ssh-rsa 22key4plc22 user947-key1
+948 None ssh-rsa 22key4plc22 user948-key1
+949 None ssh-rsa 22key4plc22 user949-key1
+950 None ssh-rsa 22key4plc22 user950-key1
+951 None ssh-rsa 22key4plc22 user951-key1
+952 None ssh-rsa 22key4plc22 user952-key1
+953 None ssh-rsa 22key4plc22 user953-key1
+954 None ssh-rsa 22key4plc22 user954-key1
+955 None ssh-rsa 22key4plc22 user955-key1
+956 None ssh-rsa 22key4plc22 user956-key1
+957 None ssh-rsa 22key4plc22 user957-key1
+958 None ssh-rsa 22key4plc22 user958-key1
+959 None ssh-rsa 22key4plc22 user959-key1
+960 None ssh-rsa 22key4plc22 user960-key1
+961 None ssh-rsa 22key4plc22 user961-key1
+962 None ssh-rsa 22key4plc22 user962-key1
+963 None ssh-rsa 22key4plc22 user963-key1
+964 None ssh-rsa 22key4plc22 user964-key1
+965 None ssh-rsa 22key4plc22 user965-key1
+966 None ssh-rsa 22key4plc22 user966-key1
+967 None ssh-rsa 22key4plc22 user967-key1
+968 None ssh-rsa 22key4plc22 user968-key1
+969 None ssh-rsa 22key4plc22 user969-key1
+970 None ssh-rsa 22key4plc22 user970-key1
+971 None ssh-rsa 22key4plc22 user971-key1
+972 None ssh-rsa 22key4plc22 user972-key1
+973 None ssh-rsa 22key4plc22 user973-key1
+974 None ssh-rsa 22key4plc22 user974-key1
+975 None ssh-rsa 22key4plc22 user975-key1
+976 None ssh-rsa 22key4plc22 user976-key1
+977 None ssh-rsa 22key4plc22 user977-key1
+978 None ssh-rsa 22key4plc22 user978-key1
+979 None ssh-rsa 22key4plc22 user979-key1
+980 None ssh-rsa 22key4plc22 user980-key1
+981 None ssh-rsa 22key4plc22 user981-key1
+982 None ssh-rsa 22key4plc22 user982-key1
+983 None ssh-rsa 22key4plc22 user983-key1
+984 None ssh-rsa 22key4plc22 user984-key1
+985 None ssh-rsa 22key4plc22 user985-key1
+986 None ssh-rsa 22key4plc22 user986-key1
+987 None ssh-rsa 22key4plc22 user987-key1
+988 None ssh-rsa 22key4plc22 user988-key1
+989 None ssh-rsa 22key4plc22 user989-key1
+990 None ssh-rsa 22key4plc22 user990-key1
+991 None ssh-rsa 22key4plc22 user991-key1
+992 None ssh-rsa 22key4plc22 user992-key1
+993 None ssh-rsa 22key4plc22 user993-key1
+994 None ssh-rsa 22key4plc22 user994-key1
+995 None ssh-rsa 22key4plc22 user995-key1
+996 None ssh-rsa 22key4plc22 user996-key1
+997 None ssh-rsa 22key4plc22 user997-key1
+998 None ssh-rsa 22key4plc22 user998-key1
+999 None ssh-rsa 22key4plc22 user999-key1
+1000 None ssh-rsa 22key4plc22 user1000-key1
+1001 None ssh-rsa 22key4plc22 user1001-key1
+1002 None ssh-rsa 22key4plc22 user1002-key1
+1003 None ssh-rsa 22key4plc22 user1003-key1
+1004 None ssh-rsa 22key4plc22 user1004-key1
+1005 None ssh-rsa 22key4plc22 user1005-key1
+1006 None ssh-rsa 22key4plc22 user1006-key1
+1007 None ssh-rsa 22key4plc22 user1007-key1
+1008 None ssh-rsa 22key4plc22 user1008-key1
+1009 None ssh-rsa 22key4plc22 user1009-key1
+1010 None ssh-rsa 22key4plc22 user1010-key1
+1011 None ssh-rsa 22key4plc22 user1011-key1
+1012 None ssh-rsa 22key4plc22 user1012-key1
+1013 None ssh-rsa 22key4plc22 user1013-key1
+1014 None ssh-rsa 22key4plc22 user1014-key1
+1015 None ssh-rsa 22key4plc22 user1015-key1
+1016 None ssh-rsa 22key4plc22 user1016-key1
+1017 None ssh-rsa 22key4plc22 user1017-key1
+1018 None ssh-rsa 22key4plc22 user1018-key1
+1019 None ssh-rsa 22key4plc22 user1019-key1
+1020 None ssh-rsa 22key4plc22 user1020-key1
+1021 None ssh-rsa 22key4plc22 user1021-key1
+1022 None ssh-rsa 22key4plc22 user1022-key1
+1023 None ssh-rsa 22key4plc22 user1023-key1
+1024 None ssh-rsa 22key4plc22 user1024-key1
+1025 None ssh-rsa 22key4plc22 user1025-key1
+1026 None ssh-rsa 22key4plc22 user1026-key1
+1027 None ssh-rsa 22key4plc22 user1027-key1
+1028 None ssh-rsa 22key4plc22 user1028-key1
+1029 None ssh-rsa 22key4plc22 user1029-key1
+1030 None ssh-rsa 22key4plc22 user1030-key1
+1031 None ssh-rsa 22key4plc22 user1031-key1
+1032 None ssh-rsa 22key4plc22 user1032-key1
+1033 None ssh-rsa 22key4plc22 user1033-key1
+1034 None ssh-rsa 22key4plc22 user1034-key1
+1035 None ssh-rsa 22key4plc22 user1035-key1
+1036 None ssh-rsa 22key4plc22 user1036-key1
+1037 None ssh-rsa 22key4plc22 user1037-key1
+1038 None ssh-rsa 22key4plc22 user1038-key1
+1039 None ssh-rsa 22key4plc22 user1039-key1
+1040 None ssh-rsa 22key4plc22 user1040-key1
+1041 None ssh-rsa 22key4plc22 user1041-key1
+1042 None ssh-rsa 22key4plc22 user1042-key1
+1043 None ssh-rsa 22key4plc22 user1043-key1
+1044 None ssh-rsa 22key4plc22 user1044-key1
+1045 None ssh-rsa 22key4plc22 user1045-key1
+1046 None ssh-rsa 22key4plc22 user1046-key1
+1047 None ssh-rsa 22key4plc22 user1047-key1
+1048 None ssh-rsa 22key4plc22 user1048-key1
+1049 None ssh-rsa 22key4plc22 user1049-key1
+1050 None ssh-rsa 22key4plc22 user1050-key1
+1051 None ssh-rsa 22key4plc22 user1051-key1
+1052 None ssh-rsa 22key4plc22 user1052-key1
+1053 None ssh-rsa 22key4plc22 user1053-key1
+1054 None ssh-rsa 22key4plc22 user1054-key1
+1055 None ssh-rsa 22key4plc22 user1055-key1
+1056 None ssh-rsa 22key4plc22 user1056-key1
+1057 None ssh-rsa 22key4plc22 user1057-key1
+1058 None ssh-rsa 22key4plc22 user1058-key1
+1059 None ssh-rsa 22key4plc22 user1059-key1
+1060 None ssh-rsa 22key4plc22 user1060-key1
+1061 None ssh-rsa 22key4plc22 user1061-key1
+1062 None ssh-rsa 22key4plc22 user1062-key1
+1063 None ssh-rsa 22key4plc22 user1063-key1
+1064 None ssh-rsa 22key4plc22 user1064-key1
+1065 None ssh-rsa 22key4plc22 user1065-key1
+1066 None ssh-rsa 22key4plc22 user1066-key1
+1067 None ssh-rsa 22key4plc22 user1067-key1
+1068 None ssh-rsa 22key4plc22 user1068-key1
+1069 None ssh-rsa 22key4plc22 user1069-key1
+1070 None ssh-rsa 22key4plc22 user1070-key1
+1071 None ssh-rsa 22key4plc22 user1071-key1
+1072 None ssh-rsa 22key4plc22 user1072-key1
+1073 None ssh-rsa 22key4plc22 user1073-key1
+1074 None ssh-rsa 22key4plc22 user1074-key1
+1075 None ssh-rsa 22key4plc22 user1075-key1
+1076 None ssh-rsa 22key4plc22 user1076-key1
+1077 None ssh-rsa 22key4plc22 user1077-key1
+1078 None ssh-rsa 22key4plc22 user1078-key1
+1079 None ssh-rsa 22key4plc22 user1079-key1
+1080 None ssh-rsa 22key4plc22 user1080-key1
+1081 None ssh-rsa 22key4plc22 user1081-key1
+1082 None ssh-rsa 22key4plc22 user1082-key1
+1083 None ssh-rsa 22key4plc22 user1083-key1
+1084 None ssh-rsa 22key4plc22 user1084-key1
+1085 None ssh-rsa 22key4plc22 user1085-key1
+1086 None ssh-rsa 22key4plc22 user1086-key1
+1087 None ssh-rsa 22key4plc22 user1087-key1
+1088 None ssh-rsa 22key4plc22 user1088-key1
+1089 None ssh-rsa 22key4plc22 user1089-key1
+1090 None ssh-rsa 22key4plc22 user1090-key1
+1091 None ssh-rsa 22key4plc22 user1091-key1
+1092 None ssh-rsa 22key4plc22 user1092-key1
+1093 None ssh-rsa 22key4plc22 user1093-key1
+1094 None ssh-rsa 22key4plc22 user1094-key1
+1095 None ssh-rsa 22key4plc22 user1095-key1
+1096 None ssh-rsa 22key4plc22 user1096-key1
+1097 None ssh-rsa 22key4plc22 user1097-key1
+1098 None ssh-rsa 22key4plc22 user1098-key1
+1099 None ssh-rsa 22key4plc22 user1099-key1
+1100 None ssh-rsa 22key4plc22 user1100-key1
+1101 None ssh-rsa 22key4plc22 user1101-key1
+1102 None ssh-rsa 22key4plc22 user1102-key1
+1103 None ssh-rsa 22key4plc22 user1103-key1
+1104 None ssh-rsa 22key4plc22 user1104-key1
+1105 None ssh-rsa 22key4plc22 user1105-key1
+1106 None ssh-rsa 22key4plc22 user1106-key1
+1107 None ssh-rsa 22key4plc22 user1107-key1
+1108 None ssh-rsa 22key4plc22 user1108-key1
+1109 None ssh-rsa 22key4plc22 user1109-key1
+1110 None ssh-rsa 22key4plc22 user1110-key1
+1111 None ssh-rsa 22key4plc22 user1111-key1
+1112 None ssh-rsa 22key4plc22 user1112-key1
+1113 None ssh-rsa 22key4plc22 user1113-key1
+1114 None ssh-rsa 22key4plc22 user1114-key1
+1115 None ssh-rsa 22key4plc22 user1115-key1
+1116 None ssh-rsa 22key4plc22 user1116-key1
+1117 None ssh-rsa 22key4plc22 user1117-key1
+1118 None ssh-rsa 22key4plc22 user1118-key1
+1119 None ssh-rsa 22key4plc22 user1119-key1
+1120 None ssh-rsa 22key4plc22 user1120-key1
+1121 None ssh-rsa 22key4plc22 user1121-key1
+1122 None ssh-rsa 22key4plc22 user1122-key1
+1123 None ssh-rsa 22key4plc22 user1123-key1
+1124 None ssh-rsa 22key4plc22 user1124-key1
+1125 None ssh-rsa 22key4plc22 user1125-key1
+1126 None ssh-rsa 22key4plc22 user1126-key1
+1127 None ssh-rsa 22key4plc22 user1127-key1
+1128 None ssh-rsa 22key4plc22 user1128-key1
+1129 None ssh-rsa 22key4plc22 user1129-key1
+1130 None ssh-rsa 22key4plc22 user1130-key1
+1131 None ssh-rsa 22key4plc22 user1131-key1
+1132 None ssh-rsa 22key4plc22 user1132-key1
+1133 None ssh-rsa 22key4plc22 user1133-key1
+1134 None ssh-rsa 22key4plc22 user1134-key1
+1135 None ssh-rsa 22key4plc22 user1135-key1
+1136 None ssh-rsa 22key4plc22 user1136-key1
+1137 None ssh-rsa 22key4plc22 user1137-key1
+1138 None ssh-rsa 22key4plc22 user1138-key1
+1139 None ssh-rsa 22key4plc22 user1139-key1
+1140 None ssh-rsa 22key4plc22 user1140-key1
+1141 None ssh-rsa 22key4plc22 user1141-key1
+1142 None ssh-rsa 22key4plc22 user1142-key1
+1143 None ssh-rsa 22key4plc22 user1143-key1
+1144 None ssh-rsa 22key4plc22 user1144-key1
+1145 None ssh-rsa 22key4plc22 user1145-key1
+1146 None ssh-rsa 22key4plc22 user1146-key1
+1147 None ssh-rsa 22key4plc22 user1147-key1
+1148 None ssh-rsa 22key4plc22 user1148-key1
+1149 None ssh-rsa 22key4plc22 user1149-key1
+1150 None ssh-rsa 22key4plc22 user1150-key1
+1151 None ssh-rsa 22key4plc22 user1151-key1
+1152 None ssh-rsa 22key4plc22 user1152-key1
+1153 None ssh-rsa 22key4plc22 user1153-key1
+1154 None ssh-rsa 22key4plc22 user1154-key1
+1155 None ssh-rsa 22key4plc22 user1155-key1
+1156 None ssh-rsa 22key4plc22 user1156-key1
+1157 None ssh-rsa 22key4plc22 user1157-key1
+1158 None ssh-rsa 22key4plc22 user1158-key1
+1159 None ssh-rsa 22key4plc22 user1159-key1
+1160 None ssh-rsa 22key4plc22 user1160-key1
+1161 None ssh-rsa 22key4plc22 user1161-key1
+1162 None ssh-rsa 22key4plc22 user1162-key1
+1163 None ssh-rsa 22key4plc22 user1163-key1
+1164 None ssh-rsa 22key4plc22 user1164-key1
+1165 None ssh-rsa 22key4plc22 user1165-key1
+1166 None ssh-rsa 22key4plc22 user1166-key1
+1167 None ssh-rsa 22key4plc22 user1167-key1
+1168 None ssh-rsa 22key4plc22 user1168-key1
+1169 None ssh-rsa 22key4plc22 user1169-key1
+1170 None ssh-rsa 22key4plc22 user1170-key1
+1171 None ssh-rsa 22key4plc22 user1171-key1
+1172 None ssh-rsa 22key4plc22 user1172-key1
+1173 None ssh-rsa 22key4plc22 user1173-key1
+1174 None ssh-rsa 22key4plc22 user1174-key1
+1175 None ssh-rsa 22key4plc22 user1175-key1
+1176 None ssh-rsa 22key4plc22 user1176-key1
+1177 None ssh-rsa 22key4plc22 user1177-key1
+1178 None ssh-rsa 22key4plc22 user1178-key1
+1179 None ssh-rsa 22key4plc22 user1179-key1
+1180 None ssh-rsa 22key4plc22 user1180-key1
+1181 None ssh-rsa 22key4plc22 user1181-key1
+1182 None ssh-rsa 22key4plc22 user1182-key1
+1183 None ssh-rsa 22key4plc22 user1183-key1
+1184 None ssh-rsa 22key4plc22 user1184-key1
+1185 None ssh-rsa 22key4plc22 user1185-key1
+1186 None ssh-rsa 22key4plc22 user1186-key1
+1187 None ssh-rsa 22key4plc22 user1187-key1
+1188 None ssh-rsa 22key4plc22 user1188-key1
+1189 None ssh-rsa 22key4plc22 user1189-key1
+1190 None ssh-rsa 22key4plc22 user1190-key1
+1191 None ssh-rsa 22key4plc22 user1191-key1
+1192 None ssh-rsa 22key4plc22 user1192-key1
+1193 None ssh-rsa 22key4plc22 user1193-key1
+1194 None ssh-rsa 22key4plc22 user1194-key1
+1195 None ssh-rsa 22key4plc22 user1195-key1
+1196 None ssh-rsa 22key4plc22 user1196-key1
+1197 None ssh-rsa 22key4plc22 user1197-key1
+1198 None ssh-rsa 22key4plc22 user1198-key1
+1199 None ssh-rsa 22key4plc22 user1199-key1
+1200 None ssh-rsa 22key4plc22 user1200-key1
+1201 None ssh-rsa 22key4plc22 user1201-key1
+1202 None ssh-rsa 22key4plc22 user1202-key1
+1203 None ssh-rsa 22key4plc22 user1203-key1
+1204 None ssh-rsa 22key4plc22 user1204-key1
+1205 None ssh-rsa 22key4plc22 user1205-key1
+1206 None ssh-rsa 22key4plc22 user1206-key1
+1207 None ssh-rsa 22key4plc22 user1207-key1
+1208 None ssh-rsa 22key4plc22 user1208-key1
+1209 None ssh-rsa 22key4plc22 user1209-key1
+1210 None ssh-rsa 22key4plc22 user1210-key1
+1211 None ssh-rsa 22key4plc22 user1211-key1
+1212 None ssh-rsa 22key4plc22 user1212-key1
+1213 None ssh-rsa 22key4plc22 user1213-key1
+1214 None ssh-rsa 22key4plc22 user1214-key1
+1215 None ssh-rsa 22key4plc22 user1215-key1
+1216 None ssh-rsa 22key4plc22 user1216-key1
+1217 None ssh-rsa 22key4plc22 user1217-key1
+1218 None ssh-rsa 22key4plc22 user1218-key1
+1219 None ssh-rsa 22key4plc22 user1219-key1
+1220 None ssh-rsa 22key4plc22 user1220-key1
+1221 None ssh-rsa 22key4plc22 user1221-key1
+1222 None ssh-rsa 22key4plc22 user1222-key1
+1223 None ssh-rsa 22key4plc22 user1223-key1
+1224 None ssh-rsa 22key4plc22 user1224-key1
+1225 None ssh-rsa 22key4plc22 user1225-key1
+1226 None ssh-rsa 22key4plc22 user1226-key1
+1227 None ssh-rsa 22key4plc22 user1227-key1
+1228 None ssh-rsa 22key4plc22 user1228-key1
+1229 None ssh-rsa 22key4plc22 user1229-key1
+1230 None ssh-rsa 22key4plc22 user1230-key1
+1231 None ssh-rsa 22key4plc22 user1231-key1
+1232 None ssh-rsa 22key4plc22 user1232-key1
+1233 None ssh-rsa 22key4plc22 user1233-key1
+1234 None ssh-rsa 22key4plc22 user1234-key1
+1235 None ssh-rsa 22key4plc22 user1235-key1
+1236 None ssh-rsa 22key4plc22 user1236-key1
+1237 None ssh-rsa 22key4plc22 user1237-key1
+1238 None ssh-rsa 22key4plc22 user1238-key1
+1239 None ssh-rsa 22key4plc22 user1239-key1
+1240 None ssh-rsa 22key4plc22 user1240-key1
+1241 None ssh-rsa 22key4plc22 user1241-key1
+1242 None ssh-rsa 22key4plc22 user1242-key1
+1243 None ssh-rsa 22key4plc22 user1243-key1
+1244 None ssh-rsa 22key4plc22 user1244-key1
+1245 None ssh-rsa 22key4plc22 user1245-key1
+1246 None ssh-rsa 22key4plc22 user1246-key1
+1247 None ssh-rsa 22key4plc22 user1247-key1
+1248 None ssh-rsa 22key4plc22 user1248-key1
+1249 None ssh-rsa 22key4plc22 user1249-key1
+1250 None ssh-rsa 22key4plc22 user1250-key1
+1251 None ssh-rsa 22key4plc22 user1251-key1
+1252 None ssh-rsa 22key4plc22 user1252-key1
+1253 None ssh-rsa 22key4plc22 user1253-key1
+1254 None ssh-rsa 22key4plc22 user1254-key1
+1255 None ssh-rsa 22key4plc22 user1255-key1
+1256 None ssh-rsa 22key4plc22 user1256-key1
+1257 None ssh-rsa 22key4plc22 user1257-key1
+1258 None ssh-rsa 22key4plc22 user1258-key1
+1259 None ssh-rsa 22key4plc22 user1259-key1
+1260 None ssh-rsa 22key4plc22 user1260-key1
+1261 None ssh-rsa 22key4plc22 user1261-key1
+1262 None ssh-rsa 22key4plc22 user1262-key1
+1263 None ssh-rsa 22key4plc22 user1263-key1
+1264 None ssh-rsa 22key4plc22 user1264-key1
+1265 None ssh-rsa 22key4plc22 user1265-key1
+1266 None ssh-rsa 22key4plc22 user1266-key1
+1267 None ssh-rsa 22key4plc22 user1267-key1
+1268 None ssh-rsa 22key4plc22 user1268-key1
+1269 None ssh-rsa 22key4plc22 user1269-key1
+1270 None ssh-rsa 22key4plc22 user1270-key1
+1271 None ssh-rsa 22key4plc22 user1271-key1
+1272 None ssh-rsa 22key4plc22 user1272-key1
+1273 None ssh-rsa 22key4plc22 user1273-key1
+1274 None ssh-rsa 22key4plc22 user1274-key1
+1275 None ssh-rsa 22key4plc22 user1275-key1
+1276 None ssh-rsa 22key4plc22 user1276-key1
+1277 None ssh-rsa 22key4plc22 user1277-key1
+1278 None ssh-rsa 22key4plc22 user1278-key1
+1279 None ssh-rsa 22key4plc22 user1279-key1
+1280 None ssh-rsa 22key4plc22 user1280-key1
+1281 None ssh-rsa 22key4plc22 user1281-key1
+1282 None ssh-rsa 22key4plc22 user1282-key1
+1283 None ssh-rsa 22key4plc22 user1283-key1
+1284 None ssh-rsa 22key4plc22 user1284-key1
+1285 None ssh-rsa 22key4plc22 user1285-key1
+1286 None ssh-rsa 22key4plc22 user1286-key1
+1287 None ssh-rsa 22key4plc22 user1287-key1
+1288 None ssh-rsa 22key4plc22 user1288-key1
+1289 None ssh-rsa 22key4plc22 user1289-key1
+1290 None ssh-rsa 22key4plc22 user1290-key1
+1291 None ssh-rsa 22key4plc22 user1291-key1
+1292 None ssh-rsa 22key4plc22 user1292-key1
+1293 None ssh-rsa 22key4plc22 user1293-key1
+1294 None ssh-rsa 22key4plc22 user1294-key1
+1295 None ssh-rsa 22key4plc22 user1295-key1
+1296 None ssh-rsa 22key4plc22 user1296-key1
+1297 None ssh-rsa 22key4plc22 user1297-key1
+1298 None ssh-rsa 22key4plc22 user1298-key1
+1299 None ssh-rsa 22key4plc22 user1299-key1
+1300 None ssh-rsa 22key4plc22 user1300-key1
+1301 None ssh-rsa 22key4plc22 user1301-key1
+1302 None ssh-rsa 22key4plc22 user1302-key1
+1303 None ssh-rsa 22key4plc22 user1303-key1
+1304 None ssh-rsa 22key4plc22 user1304-key1
+1305 None ssh-rsa 22key4plc22 user1305-key1
+1306 None ssh-rsa 22key4plc22 user1306-key1
+1307 None ssh-rsa 22key4plc22 user1307-key1
+1308 None ssh-rsa 22key4plc22 user1308-key1
+1309 None ssh-rsa 22key4plc22 user1309-key1
+1310 None ssh-rsa 22key4plc22 user1310-key1
+1311 None ssh-rsa 22key4plc22 user1311-key1
+1312 None ssh-rsa 22key4plc22 user1312-key1
+1313 None ssh-rsa 22key4plc22 user1313-key1
+1314 None ssh-rsa 22key4plc22 user1314-key1
+1315 None ssh-rsa 22key4plc22 user1315-key1
+1316 None ssh-rsa 22key4plc22 user1316-key1
+1317 None ssh-rsa 22key4plc22 user1317-key1
+1318 None ssh-rsa 22key4plc22 user1318-key1
+1319 None ssh-rsa 22key4plc22 user1319-key1
+1320 None ssh-rsa 22key4plc22 user1320-key1
+1321 None ssh-rsa 22key4plc22 user1321-key1
+1322 None ssh-rsa 22key4plc22 user1322-key1
+1323 None ssh-rsa 22key4plc22 user1323-key1
+1324 None ssh-rsa 22key4plc22 user1324-key1
+1325 None ssh-rsa 22key4plc22 user1325-key1
+1326 None ssh-rsa 22key4plc22 user1326-key1
+1327 None ssh-rsa 22key4plc22 user1327-key1
+1328 None ssh-rsa 22key4plc22 user1328-key1
+1329 None ssh-rsa 22key4plc22 user1329-key1
+1330 None ssh-rsa 22key4plc22 user1330-key1
+1331 None ssh-rsa 22key4plc22 user1331-key1
+1332 None ssh-rsa 22key4plc22 user1332-key1
+1333 None ssh-rsa 22key4plc22 user1333-key1
+1334 None ssh-rsa 22key4plc22 user1334-key1
+1335 None ssh-rsa 22key4plc22 user1335-key1
+1336 None ssh-rsa 22key4plc22 user1336-key1
+1337 None ssh-rsa 22key4plc22 user1337-key1
+1338 None ssh-rsa 22key4plc22 user1338-key1
+1339 None ssh-rsa 22key4plc22 user1339-key1
+1340 None ssh-rsa 22key4plc22 user1340-key1
+1341 None ssh-rsa 22key4plc22 user1341-key1
+1342 None ssh-rsa 22key4plc22 user1342-key1
+1343 None ssh-rsa 22key4plc22 user1343-key1
+1344 None ssh-rsa 22key4plc22 user1344-key1
+1345 None ssh-rsa 22key4plc22 user1345-key1
+1346 None ssh-rsa 22key4plc22 user1346-key1
+1347 None ssh-rsa 22key4plc22 user1347-key1
+1348 None ssh-rsa 22key4plc22 user1348-key1
+1349 None ssh-rsa 22key4plc22 user1349-key1
+1350 None ssh-rsa 22key4plc22 user1350-key1
+1351 None ssh-rsa 22key4plc22 user1351-key1
+1352 None ssh-rsa 22key4plc22 user1352-key1
+1353 None ssh-rsa 22key4plc22 user1353-key1
+1354 None ssh-rsa 22key4plc22 user1354-key1
+1355 None ssh-rsa 22key4plc22 user1355-key1
+1356 None ssh-rsa 22key4plc22 user1356-key1
+1357 None ssh-rsa 22key4plc22 user1357-key1
+1358 None ssh-rsa 22key4plc22 user1358-key1
+1359 None ssh-rsa 22key4plc22 user1359-key1
+1360 None ssh-rsa 22key4plc22 user1360-key1
+1361 None ssh-rsa 22key4plc22 user1361-key1
+1362 None ssh-rsa 22key4plc22 user1362-key1
+1363 None ssh-rsa 22key4plc22 user1363-key1
+1364 None ssh-rsa 22key4plc22 user1364-key1
+1365 None ssh-rsa 22key4plc22 user1365-key1
+1366 None ssh-rsa 22key4plc22 user1366-key1
+1367 None ssh-rsa 22key4plc22 user1367-key1
+1368 None ssh-rsa 22key4plc22 user1368-key1
+1369 None ssh-rsa 22key4plc22 user1369-key1
+1370 None ssh-rsa 22key4plc22 user1370-key1
+1371 None ssh-rsa 22key4plc22 user1371-key1
+1372 None ssh-rsa 22key4plc22 user1372-key1
+1373 None ssh-rsa 22key4plc22 user1373-key1
+1374 None ssh-rsa 22key4plc22 user1374-key1
+1375 None ssh-rsa 22key4plc22 user1375-key1
+1376 None ssh-rsa 22key4plc22 user1376-key1
+1377 None ssh-rsa 22key4plc22 user1377-key1
+1378 None ssh-rsa 22key4plc22 user1378-key1
+1379 None ssh-rsa 22key4plc22 user1379-key1
+1380 None ssh-rsa 22key4plc22 user1380-key1
+1381 None ssh-rsa 22key4plc22 user1381-key1
+1382 None ssh-rsa 22key4plc22 user1382-key1
+1383 None ssh-rsa 22key4plc22 user1383-key1
+1384 None ssh-rsa 22key4plc22 user1384-key1
+1385 None ssh-rsa 22key4plc22 user1385-key1
+1386 None ssh-rsa 22key4plc22 user1386-key1
+1387 None ssh-rsa 22key4plc22 user1387-key1
+1388 None ssh-rsa 22key4plc22 user1388-key1
+1389 None ssh-rsa 22key4plc22 user1389-key1
+1390 None ssh-rsa 22key4plc22 user1390-key1
+1391 None ssh-rsa 22key4plc22 user1391-key1
+1392 None ssh-rsa 22key4plc22 user1392-key1
+1393 None ssh-rsa 22key4plc22 user1393-key1
+1394 None ssh-rsa 22key4plc22 user1394-key1
+1395 None ssh-rsa 22key4plc22 user1395-key1
+1396 None ssh-rsa 22key4plc22 user1396-key1
+1397 None ssh-rsa 22key4plc22 user1397-key1
+1398 None ssh-rsa 22key4plc22 user1398-key1
+1399 None ssh-rsa 22key4plc22 user1399-key1
+1400 None ssh-rsa 22key4plc22 user1400-key1
+1401 None ssh-rsa 22key4plc22 user1401-key1
+1402 None ssh-rsa 22key4plc22 user1402-key1
+1403 None ssh-rsa 22key4plc22 user1403-key1
+1404 None ssh-rsa 22key4plc22 user1404-key1
+1405 None ssh-rsa 22key4plc22 user1405-key1
+1406 None ssh-rsa 22key4plc22 user1406-key1
+1407 None ssh-rsa 22key4plc22 user1407-key1
+1408 None ssh-rsa 22key4plc22 user1408-key1
+1409 None ssh-rsa 22key4plc22 user1409-key1
+1410 None ssh-rsa 22key4plc22 user1410-key1
+1411 None ssh-rsa 22key4plc22 user1411-key1
+1412 None ssh-rsa 22key4plc22 user1412-key1
+1413 None ssh-rsa 22key4plc22 user1413-key1
+1414 None ssh-rsa 22key4plc22 user1414-key1
+1415 None ssh-rsa 22key4plc22 user1415-key1
+1416 None ssh-rsa 22key4plc22 user1416-key1
+1417 None ssh-rsa 22key4plc22 user1417-key1
+1418 None ssh-rsa 22key4plc22 user1418-key1
+1419 None ssh-rsa 22key4plc22 user1419-key1
+1420 None ssh-rsa 22key4plc22 user1420-key1
+1421 None ssh-rsa 22key4plc22 user1421-key1
+1422 None ssh-rsa 22key4plc22 user1422-key1
+1423 None ssh-rsa 22key4plc22 user1423-key1
+1424 None ssh-rsa 22key4plc22 user1424-key1
+1425 None ssh-rsa 22key4plc22 user1425-key1
+1426 None ssh-rsa 22key4plc22 user1426-key1
+1427 None ssh-rsa 22key4plc22 user1427-key1
+1428 None ssh-rsa 22key4plc22 user1428-key1
+1429 None ssh-rsa 22key4plc22 user1429-key1
+1430 None ssh-rsa 22key4plc22 user1430-key1
+1431 None ssh-rsa 22key4plc22 user1431-key1
+1432 None ssh-rsa 22key4plc22 user1432-key1
+1433 None ssh-rsa 22key4plc22 user1433-key1
+1434 None ssh-rsa 22key4plc22 user1434-key1
+1435 None ssh-rsa 22key4plc22 user1435-key1
+1436 None ssh-rsa 22key4plc22 user1436-key1
+1437 None ssh-rsa 22key4plc22 user1437-key1
+1438 None ssh-rsa 22key4plc22 user1438-key1
+1439 None ssh-rsa 22key4plc22 user1439-key1
+1440 None ssh-rsa 22key4plc22 user1440-key1
+1441 None ssh-rsa 22key4plc22 user1441-key1
+1442 None ssh-rsa 22key4plc22 user1442-key1
+1443 None ssh-rsa 22key4plc22 user1443-key1
+1444 None ssh-rsa 22key4plc22 user1444-key1
+1445 None ssh-rsa 22key4plc22 user1445-key1
+1446 None ssh-rsa 22key4plc22 user1446-key1
+1447 None ssh-rsa 22key4plc22 user1447-key1
+1448 None ssh-rsa 22key4plc22 user1448-key1
+1449 None ssh-rsa 22key4plc22 user1449-key1
+1450 None ssh-rsa 22key4plc22 user1450-key1
+1451 None ssh-rsa 22key4plc22 user1451-key1
+1452 None ssh-rsa 22key4plc22 user1452-key1
+1453 None ssh-rsa 22key4plc22 user1453-key1
+1454 None ssh-rsa 22key4plc22 user1454-key1
+1455 None ssh-rsa 22key4plc22 user1455-key1
+1456 None ssh-rsa 22key4plc22 user1456-key1
+1457 None ssh-rsa 22key4plc22 user1457-key1
+1458 None ssh-rsa 22key4plc22 user1458-key1
+1459 None ssh-rsa 22key4plc22 user1459-key1
+1460 None ssh-rsa 22key4plc22 user1460-key1
+1461 None ssh-rsa 22key4plc22 user1461-key1
+1462 None ssh-rsa 22key4plc22 user1462-key1
+1463 None ssh-rsa 22key4plc22 user1463-key1
+1464 None ssh-rsa 22key4plc22 user1464-key1
+1465 None ssh-rsa 22key4plc22 user1465-key1
+1466 None ssh-rsa 22key4plc22 user1466-key1
+1467 None ssh-rsa 22key4plc22 user1467-key1
+1468 None ssh-rsa 22key4plc22 user1468-key1
+1469 None ssh-rsa 22key4plc22 user1469-key1
+1470 None ssh-rsa 22key4plc22 user1470-key1
+1471 None ssh-rsa 22key4plc22 user1471-key1
+1472 None ssh-rsa 22key4plc22 user1472-key1
+1473 None ssh-rsa 22key4plc22 user1473-key1
+1474 None ssh-rsa 22key4plc22 user1474-key1
+1475 None ssh-rsa 22key4plc22 user1475-key1
+1476 None ssh-rsa 22key4plc22 user1476-key1
+1477 None ssh-rsa 22key4plc22 user1477-key1
+1478 None ssh-rsa 22key4plc22 user1478-key1
+1479 None ssh-rsa 22key4plc22 user1479-key1
+1480 None ssh-rsa 22key4plc22 user1480-key1
+1481 None ssh-rsa 22key4plc22 user1481-key1
+1482 None ssh-rsa 22key4plc22 user1482-key1
+1483 None ssh-rsa 22key4plc22 user1483-key1
+1484 None ssh-rsa 22key4plc22 user1484-key1
+1485 None ssh-rsa 22key4plc22 user1485-key1
+1486 None ssh-rsa 22key4plc22 user1486-key1
+1487 None ssh-rsa 22key4plc22 user1487-key1
+1488 None ssh-rsa 22key4plc22 user1488-key1
+1489 None ssh-rsa 22key4plc22 user1489-key1
+1490 None ssh-rsa 22key4plc22 user1490-key1
+1491 None ssh-rsa 22key4plc22 user1491-key1
+1492 None ssh-rsa 22key4plc22 user1492-key1
+1493 None ssh-rsa 22key4plc22 user1493-key1
+1494 None ssh-rsa 22key4plc22 user1494-key1
+1495 None ssh-rsa 22key4plc22 user1495-key1
+1496 None ssh-rsa 22key4plc22 user1496-key1
+1497 None ssh-rsa 22key4plc22 user1497-key1
+1498 None ssh-rsa 22key4plc22 user1498-key1
+1499 None ssh-rsa 22key4plc22 user1499-key1
+1500 None ssh-rsa 22key4plc22 user1500-key1
+1501 None ssh-rsa 22key4plc22 user1501-key1
+1502 None ssh-rsa 22key4plc22 user1502-key1
+1503 None ssh-rsa 22key4plc22 user1503-key1
+1504 None ssh-rsa 22key4plc22 user1504-key1
+1505 None ssh-rsa 22key4plc22 user1505-key1
+1506 None ssh-rsa 22key4plc22 user1506-key1
+1507 None ssh-rsa 22key4plc22 user1507-key1
+1508 None ssh-rsa 22key4plc22 user1508-key1
+1509 None ssh-rsa 22key4plc22 user1509-key1
+1510 None ssh-rsa 22key4plc22 user1510-key1
+1511 None ssh-rsa 22key4plc22 user1511-key1
+1512 None ssh-rsa 22key4plc22 user1512-key1
+1513 None ssh-rsa 22key4plc22 user1513-key1
+1514 None ssh-rsa 22key4plc22 user1514-key1
+1515 None ssh-rsa 22key4plc22 user1515-key1
+1516 None ssh-rsa 22key4plc22 user1516-key1
+1517 None ssh-rsa 22key4plc22 user1517-key1
+1518 None ssh-rsa 22key4plc22 user1518-key1
+1519 None ssh-rsa 22key4plc22 user1519-key1
+1520 None ssh-rsa 22key4plc22 user1520-key1
+1521 None ssh-rsa 22key4plc22 user1521-key1
+1522 None ssh-rsa 22key4plc22 user1522-key1
+1523 None ssh-rsa 22key4plc22 user1523-key1
+1524 None ssh-rsa 22key4plc22 user1524-key1
+1525 None ssh-rsa 22key4plc22 user1525-key1
+1526 None ssh-rsa 22key4plc22 user1526-key1
+1527 None ssh-rsa 22key4plc22 user1527-key1
+1528 None ssh-rsa 22key4plc22 user1528-key1
+1529 None ssh-rsa 22key4plc22 user1529-key1
+1530 None ssh-rsa 22key4plc22 user1530-key1
+1531 None ssh-rsa 22key4plc22 user1531-key1
+1532 None ssh-rsa 22key4plc22 user1532-key1
+1533 None ssh-rsa 22key4plc22 user1533-key1
+1534 None ssh-rsa 22key4plc22 user1534-key1
+1535 None ssh-rsa 22key4plc22 user1535-key1
+1536 None ssh-rsa 22key4plc22 user1536-key1
+1537 None ssh-rsa 22key4plc22 user1537-key1
+1538 None ssh-rsa 22key4plc22 user1538-key1
+1539 None ssh-rsa 22key4plc22 user1539-key1
+1540 None ssh-rsa 22key4plc22 user1540-key1
+1541 None ssh-rsa 22key4plc22 user1541-key1
+1542 None ssh-rsa 22key4plc22 user1542-key1
+1543 None ssh-rsa 22key4plc22 user1543-key1
+1544 None ssh-rsa 22key4plc22 user1544-key1
+1545 None ssh-rsa 22key4plc22 user1545-key1
+1546 None ssh-rsa 22key4plc22 user1546-key1
+1547 None ssh-rsa 22key4plc22 user1547-key1
+1548 None ssh-rsa 22key4plc22 user1548-key1
+1549 None ssh-rsa 22key4plc22 user1549-key1
+1550 None ssh-rsa 22key4plc22 user1550-key1
+1551 None ssh-rsa 22key4plc22 user1551-key1
+1552 None ssh-rsa 22key4plc22 user1552-key1
+1553 None ssh-rsa 22key4plc22 user1553-key1
+1554 None ssh-rsa 22key4plc22 user1554-key1
+1555 None ssh-rsa 22key4plc22 user1555-key1
+1556 None ssh-rsa 22key4plc22 user1556-key1
+1557 None ssh-rsa 22key4plc22 user1557-key1
+1558 None ssh-rsa 22key4plc22 user1558-key1
+1559 None ssh-rsa 22key4plc22 user1559-key1
+1560 None ssh-rsa 22key4plc22 user1560-key1
+1561 None ssh-rsa 22key4plc22 user1561-key1
+1562 None ssh-rsa 22key4plc22 user1562-key1
+1563 None ssh-rsa 22key4plc22 user1563-key1
+1564 None ssh-rsa 22key4plc22 user1564-key1
+1565 None ssh-rsa 22key4plc22 user1565-key1
+1566 None ssh-rsa 22key4plc22 user1566-key1
+1567 None ssh-rsa 22key4plc22 user1567-key1
+1568 None ssh-rsa 22key4plc22 user1568-key1
+1569 None ssh-rsa 22key4plc22 user1569-key1
+1570 None ssh-rsa 22key4plc22 user1570-key1
+1571 None ssh-rsa 22key4plc22 user1571-key1
+1572 None ssh-rsa 22key4plc22 user1572-key1
+1573 None ssh-rsa 22key4plc22 user1573-key1
+1574 None ssh-rsa 22key4plc22 user1574-key1
+1575 None ssh-rsa 22key4plc22 user1575-key1
+1576 None ssh-rsa 22key4plc22 user1576-key1
+1577 None ssh-rsa 22key4plc22 user1577-key1
+1578 None ssh-rsa 22key4plc22 user1578-key1
+1579 None ssh-rsa 22key4plc22 user1579-key1
+1580 None ssh-rsa 22key4plc22 user1580-key1
+1581 None ssh-rsa 22key4plc22 user1581-key1
+1582 None ssh-rsa 22key4plc22 user1582-key1
+1583 None ssh-rsa 22key4plc22 user1583-key1
+1584 None ssh-rsa 22key4plc22 user1584-key1
+1585 None ssh-rsa 22key4plc22 user1585-key1
+1586 None ssh-rsa 22key4plc22 user1586-key1
+1587 None ssh-rsa 22key4plc22 user1587-key1
+1588 None ssh-rsa 22key4plc22 user1588-key1
+1589 None ssh-rsa 22key4plc22 user1589-key1
+1590 None ssh-rsa 22key4plc22 user1590-key1
+1591 None ssh-rsa 22key4plc22 user1591-key1
+1592 None ssh-rsa 22key4plc22 user1592-key1
+1593 None ssh-rsa 22key4plc22 user1593-key1
+1594 None ssh-rsa 22key4plc22 user1594-key1
+1595 None ssh-rsa 22key4plc22 user1595-key1
+1596 None ssh-rsa 22key4plc22 user1596-key1
+1597 None ssh-rsa 22key4plc22 user1597-key1
+1598 None ssh-rsa 22key4plc22 user1598-key1
+1599 None ssh-rsa 22key4plc22 user1599-key1
+1600 None ssh-rsa 22key4plc22 user1600-key1
+1601 None ssh-rsa 22key4plc22 user1601-key1
+1602 None ssh-rsa 22key4plc22 user1602-key1
+1603 None ssh-rsa 22key4plc22 user1603-key1
+1604 None ssh-rsa 22key4plc22 user1604-key1
+1605 None ssh-rsa 22key4plc22 user1605-key1
+1606 None ssh-rsa 22key4plc22 user1606-key1
+1607 None ssh-rsa 22key4plc22 user1607-key1
+1608 None ssh-rsa 22key4plc22 user1608-key1
+1609 None ssh-rsa 22key4plc22 user1609-key1
+1610 None ssh-rsa 22key4plc22 user1610-key1
+1611 None ssh-rsa 22key4plc22 user1611-key1
+1612 None ssh-rsa 22key4plc22 user1612-key1
+1613 None ssh-rsa 22key4plc22 user1613-key1
+1614 None ssh-rsa 22key4plc22 user1614-key1
+1615 None ssh-rsa 22key4plc22 user1615-key1
+1616 None ssh-rsa 22key4plc22 user1616-key1
+1617 None ssh-rsa 22key4plc22 user1617-key1
+1618 None ssh-rsa 22key4plc22 user1618-key1
+1619 None ssh-rsa 22key4plc22 user1619-key1
+1620 None ssh-rsa 22key4plc22 user1620-key1
+1621 None ssh-rsa 22key4plc22 user1621-key1
+1622 None ssh-rsa 22key4plc22 user1622-key1
+1623 None ssh-rsa 22key4plc22 user1623-key1
+1624 None ssh-rsa 22key4plc22 user1624-key1
+1625 None ssh-rsa 22key4plc22 user1625-key1
+1626 None ssh-rsa 22key4plc22 user1626-key1
+1627 None ssh-rsa 22key4plc22 user1627-key1
+1628 None ssh-rsa 22key4plc22 user1628-key1
+1629 None ssh-rsa 22key4plc22 user1629-key1
+1630 None ssh-rsa 22key4plc22 user1630-key1
+1631 None ssh-rsa 22key4plc22 user1631-key1
+1632 None ssh-rsa 22key4plc22 user1632-key1
+1633 None ssh-rsa 22key4plc22 user1633-key1
+1634 None ssh-rsa 22key4plc22 user1634-key1
+1635 None ssh-rsa 22key4plc22 user1635-key1
+1636 None ssh-rsa 22key4plc22 user1636-key1
+1637 None ssh-rsa 22key4plc22 user1637-key1
+1638 None ssh-rsa 22key4plc22 user1638-key1
+1639 None ssh-rsa 22key4plc22 user1639-key1
+1640 None ssh-rsa 22key4plc22 user1640-key1
+1641 None ssh-rsa 22key4plc22 user1641-key1
+1642 None ssh-rsa 22key4plc22 user1642-key1
+1643 None ssh-rsa 22key4plc22 user1643-key1
+1644 None ssh-rsa 22key4plc22 user1644-key1
+1645 None ssh-rsa 22key4plc22 user1645-key1
+1646 None ssh-rsa 22key4plc22 user1646-key1
+1647 None ssh-rsa 22key4plc22 user1647-key1
+1648 None ssh-rsa 22key4plc22 user1648-key1
+1649 None ssh-rsa 22key4plc22 user1649-key1
+1650 None ssh-rsa 22key4plc22 user1650-key1
+1651 None ssh-rsa 22key4plc22 user1651-key1
+1652 None ssh-rsa 22key4plc22 user1652-key1
+1653 None ssh-rsa 22key4plc22 user1653-key1
+1654 None ssh-rsa 22key4plc22 user1654-key1
+1655 None ssh-rsa 22key4plc22 user1655-key1
+1656 None ssh-rsa 22key4plc22 user1656-key1
+1657 None ssh-rsa 22key4plc22 user1657-key1
+1658 None ssh-rsa 22key4plc22 user1658-key1
+1659 None ssh-rsa 22key4plc22 user1659-key1
+1660 None ssh-rsa 22key4plc22 user1660-key1
+1661 None ssh-rsa 22key4plc22 user1661-key1
+1662 None ssh-rsa 22key4plc22 user1662-key1
+1663 None ssh-rsa 22key4plc22 user1663-key1
+1664 None ssh-rsa 22key4plc22 user1664-key1
+1665 None ssh-rsa 22key4plc22 user1665-key1
+1666 None ssh-rsa 22key4plc22 user1666-key1
+1667 None ssh-rsa 22key4plc22 user1667-key1
+1668 None ssh-rsa 22key4plc22 user1668-key1
+1669 None ssh-rsa 22key4plc22 user1669-key1
+1670 None ssh-rsa 22key4plc22 user1670-key1
+1671 None ssh-rsa 22key4plc22 user1671-key1
+1672 None ssh-rsa 22key4plc22 user1672-key1
+1673 None ssh-rsa 22key4plc22 user1673-key1
+1674 None ssh-rsa 22key4plc22 user1674-key1
+1675 None ssh-rsa 22key4plc22 user1675-key1
+1676 None ssh-rsa 22key4plc22 user1676-key1
+1677 None ssh-rsa 22key4plc22 user1677-key1
+1678 None ssh-rsa 22key4plc22 user1678-key1
+1679 None ssh-rsa 22key4plc22 user1679-key1
+1680 None ssh-rsa 22key4plc22 user1680-key1
+1681 None ssh-rsa 22key4plc22 user1681-key1
+1682 None ssh-rsa 22key4plc22 user1682-key1
+1683 None ssh-rsa 22key4plc22 user1683-key1
+1684 None ssh-rsa 22key4plc22 user1684-key1
+1685 None ssh-rsa 22key4plc22 user1685-key1
+1686 None ssh-rsa 22key4plc22 user1686-key1
+1687 None ssh-rsa 22key4plc22 user1687-key1
+1688 None ssh-rsa 22key4plc22 user1688-key1
+1689 None ssh-rsa 22key4plc22 user1689-key1
+1690 None ssh-rsa 22key4plc22 user1690-key1
+1691 None ssh-rsa 22key4plc22 user1691-key1
+1692 None ssh-rsa 22key4plc22 user1692-key1
+1693 None ssh-rsa 22key4plc22 user1693-key1
+1694 None ssh-rsa 22key4plc22 user1694-key1
+1695 None ssh-rsa 22key4plc22 user1695-key1
+1696 None ssh-rsa 22key4plc22 user1696-key1
+1697 None ssh-rsa 22key4plc22 user1697-key1
+1698 None ssh-rsa 22key4plc22 user1698-key1
+1699 None ssh-rsa 22key4plc22 user1699-key1
+1700 None ssh-rsa 22key4plc22 user1700-key1
+1701 None ssh-rsa 22key4plc22 user1701-key1
+1702 None ssh-rsa 22key4plc22 user1702-key1
+1703 None ssh-rsa 22key4plc22 user1703-key1
+1704 None ssh-rsa 22key4plc22 user1704-key1
+1705 None ssh-rsa 22key4plc22 user1705-key1
+1706 None ssh-rsa 22key4plc22 user1706-key1
+1707 None ssh-rsa 22key4plc22 user1707-key1
+1708 None ssh-rsa 22key4plc22 user1708-key1
+1709 None ssh-rsa 22key4plc22 user1709-key1
+1710 None ssh-rsa 22key4plc22 user1710-key1
+1711 None ssh-rsa 22key4plc22 user1711-key1
+1712 None ssh-rsa 22key4plc22 user1712-key1
+1713 None ssh-rsa 22key4plc22 user1713-key1
+1714 None ssh-rsa 22key4plc22 user1714-key1
+1715 None ssh-rsa 22key4plc22 user1715-key1
+1716 None ssh-rsa 22key4plc22 user1716-key1
+1717 None ssh-rsa 22key4plc22 user1717-key1
+1718 None ssh-rsa 22key4plc22 user1718-key1
+1719 None ssh-rsa 22key4plc22 user1719-key1
+1720 None ssh-rsa 22key4plc22 user1720-key1
+1721 None ssh-rsa 22key4plc22 user1721-key1
+1722 None ssh-rsa 22key4plc22 user1722-key1
+1723 None ssh-rsa 22key4plc22 user1723-key1
+1724 None ssh-rsa 22key4plc22 user1724-key1
+1725 None ssh-rsa 22key4plc22 user1725-key1
+1726 None ssh-rsa 22key4plc22 user1726-key1
+1727 None ssh-rsa 22key4plc22 user1727-key1
+1728 None ssh-rsa 22key4plc22 user1728-key1
+1729 None ssh-rsa 22key4plc22 user1729-key1
+1730 None ssh-rsa 22key4plc22 user1730-key1
+1731 None ssh-rsa 22key4plc22 user1731-key1
+1732 None ssh-rsa 22key4plc22 user1732-key1
+1733 None ssh-rsa 22key4plc22 user1733-key1
+1734 None ssh-rsa 22key4plc22 user1734-key1
+1735 None ssh-rsa 22key4plc22 user1735-key1
+1736 None ssh-rsa 22key4plc22 user1736-key1
+1737 None ssh-rsa 22key4plc22 user1737-key1
+1738 None ssh-rsa 22key4plc22 user1738-key1
+1739 None ssh-rsa 22key4plc22 user1739-key1
+1740 None ssh-rsa 22key4plc22 user1740-key1
+1741 None ssh-rsa 22key4plc22 user1741-key1
+1742 None ssh-rsa 22key4plc22 user1742-key1
+1743 None ssh-rsa 22key4plc22 user1743-key1
+1744 None ssh-rsa 22key4plc22 user1744-key1
+1745 None ssh-rsa 22key4plc22 user1745-key1
+1746 None ssh-rsa 22key4plc22 user1746-key1
+1747 None ssh-rsa 22key4plc22 user1747-key1
+1748 None ssh-rsa 22key4plc22 user1748-key1
+1749 None ssh-rsa 22key4plc22 user1749-key1
+1750 None ssh-rsa 22key4plc22 user1750-key1
+1751 None ssh-rsa 22key4plc22 user1751-key1
+1752 None ssh-rsa 22key4plc22 user1752-key1
+1753 None ssh-rsa 22key4plc22 user1753-key1
+1754 None ssh-rsa 22key4plc22 user1754-key1
+1755 None ssh-rsa 22key4plc22 user1755-key1
+1756 None ssh-rsa 22key4plc22 user1756-key1
+1757 None ssh-rsa 22key4plc22 user1757-key1
+1758 None ssh-rsa 22key4plc22 user1758-key1
+1759 None ssh-rsa 22key4plc22 user1759-key1
+1760 None ssh-rsa 22key4plc22 user1760-key1
+1761 None ssh-rsa 22key4plc22 user1761-key1
+1762 None ssh-rsa 22key4plc22 user1762-key1
+1763 None ssh-rsa 22key4plc22 user1763-key1
+1764 None ssh-rsa 22key4plc22 user1764-key1
+1765 None ssh-rsa 22key4plc22 user1765-key1
+1766 None ssh-rsa 22key4plc22 user1766-key1
+1767 None ssh-rsa 22key4plc22 user1767-key1
+1768 None ssh-rsa 22key4plc22 user1768-key1
+1769 None ssh-rsa 22key4plc22 user1769-key1
+1770 None ssh-rsa 22key4plc22 user1770-key1
+1771 None ssh-rsa 22key4plc22 user1771-key1
+1772 None ssh-rsa 22key4plc22 user1772-key1
+1773 None ssh-rsa 22key4plc22 user1773-key1
+1774 None ssh-rsa 22key4plc22 user1774-key1
+1775 None ssh-rsa 22key4plc22 user1775-key1
+1776 None ssh-rsa 22key4plc22 user1776-key1
+1777 None ssh-rsa 22key4plc22 user1777-key1
+1778 None ssh-rsa 22key4plc22 user1778-key1
+1779 None ssh-rsa 22key4plc22 user1779-key1
+1780 None ssh-rsa 22key4plc22 user1780-key1
+1781 None ssh-rsa 22key4plc22 user1781-key1
+1782 None ssh-rsa 22key4plc22 user1782-key1
+1783 None ssh-rsa 22key4plc22 user1783-key1
+1784 None ssh-rsa 22key4plc22 user1784-key1
+1785 None ssh-rsa 22key4plc22 user1785-key1
+1786 None ssh-rsa 22key4plc22 user1786-key1
+1787 None ssh-rsa 22key4plc22 user1787-key1
+1788 None ssh-rsa 22key4plc22 user1788-key1
+1789 None ssh-rsa 22key4plc22 user1789-key1
+1790 None ssh-rsa 22key4plc22 user1790-key1
+1791 None ssh-rsa 22key4plc22 user1791-key1
+1792 None ssh-rsa 22key4plc22 user1792-key1
+1793 None ssh-rsa 22key4plc22 user1793-key1
+1794 None ssh-rsa 22key4plc22 user1794-key1
+1795 None ssh-rsa 22key4plc22 user1795-key1
+1796 None ssh-rsa 22key4plc22 user1796-key1
+1797 None ssh-rsa 22key4plc22 user1797-key1
+1798 None ssh-rsa 22key4plc22 user1798-key1
+1799 None ssh-rsa 22key4plc22 user1799-key1
+1800 None ssh-rsa 22key4plc22 user1800-key1
+1801 None ssh-rsa 22key4plc22 user1801-key1
+1802 None ssh-rsa 22key4plc22 user1802-key1
+1803 None ssh-rsa 22key4plc22 user1803-key1
+1804 None ssh-rsa 22key4plc22 user1804-key1
+1805 None ssh-rsa 22key4plc22 user1805-key1
+1806 None ssh-rsa 22key4plc22 user1806-key1
+1807 None ssh-rsa 22key4plc22 user1807-key1
+1808 None ssh-rsa 22key4plc22 user1808-key1
+1809 None ssh-rsa 22key4plc22 user1809-key1
+1810 None ssh-rsa 22key4plc22 user1810-key1
+1811 None ssh-rsa 22key4plc22 user1811-key1
+1812 None ssh-rsa 22key4plc22 user1812-key1
+1813 None ssh-rsa 22key4plc22 user1813-key1
+1814 None ssh-rsa 22key4plc22 user1814-key1
+1815 None ssh-rsa 22key4plc22 user1815-key1
+1816 None ssh-rsa 22key4plc22 user1816-key1
+1817 None ssh-rsa 22key4plc22 user1817-key1
+1818 None ssh-rsa 22key4plc22 user1818-key1
+1819 None ssh-rsa 22key4plc22 user1819-key1
+1820 None ssh-rsa 22key4plc22 user1820-key1
+1821 None ssh-rsa 22key4plc22 user1821-key1
+1822 None ssh-rsa 22key4plc22 user1822-key1
+1823 None ssh-rsa 22key4plc22 user1823-key1
+1824 None ssh-rsa 22key4plc22 user1824-key1
+1825 None ssh-rsa 22key4plc22 user1825-key1
+1826 None ssh-rsa 22key4plc22 user1826-key1
+1827 None ssh-rsa 22key4plc22 user1827-key1
+1828 None ssh-rsa 22key4plc22 user1828-key1
+1829 None ssh-rsa 22key4plc22 user1829-key1
+1830 None ssh-rsa 22key4plc22 user1830-key1
+1831 None ssh-rsa 22key4plc22 user1831-key1
+1832 None ssh-rsa 22key4plc22 user1832-key1
+1833 None ssh-rsa 22key4plc22 user1833-key1
+1834 None ssh-rsa 22key4plc22 user1834-key1
+1835 None ssh-rsa 22key4plc22 user1835-key1
+1836 None ssh-rsa 22key4plc22 user1836-key1
+1837 None ssh-rsa 22key4plc22 user1837-key1
+1838 None ssh-rsa 22key4plc22 user1838-key1
+1839 None ssh-rsa 22key4plc22 user1839-key1
+1840 None ssh-rsa 22key4plc22 user1840-key1
+1841 None ssh-rsa 22key4plc22 user1841-key1
+1842 None ssh-rsa 22key4plc22 user1842-key1
+1843 None ssh-rsa 22key4plc22 user1843-key1
+1844 None ssh-rsa 22key4plc22 user1844-key1
+1845 None ssh-rsa 22key4plc22 user1845-key1
+1846 None ssh-rsa 22key4plc22 user1846-key1
+1847 None ssh-rsa 22key4plc22 user1847-key1
+1848 None ssh-rsa 22key4plc22 user1848-key1
+1849 None ssh-rsa 22key4plc22 user1849-key1
+1850 None ssh-rsa 22key4plc22 user1850-key1
+1851 None ssh-rsa 22key4plc22 user1851-key1
+1852 None ssh-rsa 22key4plc22 user1852-key1
+1853 None ssh-rsa 22key4plc22 user1853-key1
+1854 None ssh-rsa 22key4plc22 user1854-key1
+1855 None ssh-rsa 22key4plc22 user1855-key1
+1856 None ssh-rsa 22key4plc22 user1856-key1
+1857 None ssh-rsa 22key4plc22 user1857-key1
+1858 None ssh-rsa 22key4plc22 user1858-key1
+1859 None ssh-rsa 22key4plc22 user1859-key1
+1860 None ssh-rsa 22key4plc22 user1860-key1
+1861 None ssh-rsa 22key4plc22 user1861-key1
+1862 None ssh-rsa 22key4plc22 user1862-key1
+1863 None ssh-rsa 22key4plc22 user1863-key1
+1864 None ssh-rsa 22key4plc22 user1864-key1
+1865 None ssh-rsa 22key4plc22 user1865-key1
+1866 None ssh-rsa 22key4plc22 user1866-key1
+1867 None ssh-rsa 22key4plc22 user1867-key1
+1868 None ssh-rsa 22key4plc22 user1868-key1
+1869 None ssh-rsa 22key4plc22 user1869-key1
+1870 None ssh-rsa 22key4plc22 user1870-key1
+1871 None ssh-rsa 22key4plc22 user1871-key1
+1872 None ssh-rsa 22key4plc22 user1872-key1
+1873 None ssh-rsa 22key4plc22 user1873-key1
+1874 None ssh-rsa 22key4plc22 user1874-key1
+1875 None ssh-rsa 22key4plc22 user1875-key1
+1876 None ssh-rsa 22key4plc22 user1876-key1
+1877 None ssh-rsa 22key4plc22 user1877-key1
+1878 None ssh-rsa 22key4plc22 user1878-key1
+1879 None ssh-rsa 22key4plc22 user1879-key1
+1880 None ssh-rsa 22key4plc22 user1880-key1
+1881 None ssh-rsa 22key4plc22 user1881-key1
+1882 None ssh-rsa 22key4plc22 user1882-key1
+1883 None ssh-rsa 22key4plc22 user1883-key1
+1884 None ssh-rsa 22key4plc22 user1884-key1
+1885 None ssh-rsa 22key4plc22 user1885-key1
+1886 None ssh-rsa 22key4plc22 user1886-key1
+1887 None ssh-rsa 22key4plc22 user1887-key1
+1888 None ssh-rsa 22key4plc22 user1888-key1
+1889 None ssh-rsa 22key4plc22 user1889-key1
+1890 None ssh-rsa 22key4plc22 user1890-key1
+1891 None ssh-rsa 22key4plc22 user1891-key1
+1892 None ssh-rsa 22key4plc22 user1892-key1
+1893 None ssh-rsa 22key4plc22 user1893-key1
+1894 None ssh-rsa 22key4plc22 user1894-key1
+1895 None ssh-rsa 22key4plc22 user1895-key1
+1896 None ssh-rsa 22key4plc22 user1896-key1
+1897 None ssh-rsa 22key4plc22 user1897-key1
+1898 None ssh-rsa 22key4plc22 user1898-key1
+1899 None ssh-rsa 22key4plc22 user1899-key1
+1900 None ssh-rsa 22key4plc22 user1900-key1
+1901 None ssh-rsa 22key4plc22 user1901-key1
+1902 None ssh-rsa 22key4plc22 user1902-key1
+1903 None ssh-rsa 22key4plc22 user1903-key1
+1904 None ssh-rsa 22key4plc22 user1904-key1
+1905 None ssh-rsa 22key4plc22 user1905-key1
+1906 None ssh-rsa 22key4plc22 user1906-key1
+1907 None ssh-rsa 22key4plc22 user1907-key1
+1908 None ssh-rsa 22key4plc22 user1908-key1
+1909 None ssh-rsa 22key4plc22 user1909-key1
+1910 None ssh-rsa 22key4plc22 user1910-key1
+1911 None ssh-rsa 22key4plc22 user1911-key1
+1912 None ssh-rsa 22key4plc22 user1912-key1
+1913 None ssh-rsa 22key4plc22 user1913-key1
+1914 None ssh-rsa 22key4plc22 user1914-key1
+1915 None ssh-rsa 22key4plc22 user1915-key1
+1916 None ssh-rsa 22key4plc22 user1916-key1
+1917 None ssh-rsa 22key4plc22 user1917-key1
+1918 None ssh-rsa 22key4plc22 user1918-key1
+1919 None ssh-rsa 22key4plc22 user1919-key1
+1920 None ssh-rsa 22key4plc22 user1920-key1
+1921 None ssh-rsa 22key4plc22 user1921-key1
+1922 None ssh-rsa 22key4plc22 user1922-key1
+1923 None ssh-rsa 22key4plc22 user1923-key1
+1924 None ssh-rsa 22key4plc22 user1924-key1
+1925 None ssh-rsa 22key4plc22 user1925-key1
+1926 None ssh-rsa 22key4plc22 user1926-key1
+1927 None ssh-rsa 22key4plc22 user1927-key1
+1928 None ssh-rsa 22key4plc22 user1928-key1
+1929 None ssh-rsa 22key4plc22 user1929-key1
+1930 None ssh-rsa 22key4plc22 user1930-key1
+1931 None ssh-rsa 22key4plc22 user1931-key1
+1932 None ssh-rsa 22key4plc22 user1932-key1
+1933 None ssh-rsa 22key4plc22 user1933-key1
+1934 None ssh-rsa 22key4plc22 user1934-key1
+1935 None ssh-rsa 22key4plc22 user1935-key1
+1936 None ssh-rsa 22key4plc22 user1936-key1
+1937 None ssh-rsa 22key4plc22 user1937-key1
+1938 None ssh-rsa 22key4plc22 user1938-key1
+1939 None ssh-rsa 22key4plc22 user1939-key1
+1940 None ssh-rsa 22key4plc22 user1940-key1
+1941 None ssh-rsa 22key4plc22 user1941-key1
+1942 None ssh-rsa 22key4plc22 user1942-key1
+1943 None ssh-rsa 22key4plc22 user1943-key1
+1944 None ssh-rsa 22key4plc22 user1944-key1
+1945 None ssh-rsa 22key4plc22 user1945-key1
+1946 None ssh-rsa 22key4plc22 user1946-key1
+1947 None ssh-rsa 22key4plc22 user1947-key1
+1948 None ssh-rsa 22key4plc22 user1948-key1
+1949 None ssh-rsa 22key4plc22 user1949-key1
+1950 None ssh-rsa 22key4plc22 user1950-key1
+1951 None ssh-rsa 22key4plc22 user1951-key1
+1952 None ssh-rsa 22key4plc22 user1952-key1
+1953 None ssh-rsa 22key4plc22 user1953-key1
+1954 None ssh-rsa 22key4plc22 user1954-key1
+1955 None ssh-rsa 22key4plc22 user1955-key1
+1956 None ssh-rsa 22key4plc22 user1956-key1
+1957 None ssh-rsa 22key4plc22 user1957-key1
+1958 None ssh-rsa 22key4plc22 user1958-key1
+1959 None ssh-rsa 22key4plc22 user1959-key1
+1960 None ssh-rsa 22key4plc22 user1960-key1
+1961 None ssh-rsa 22key4plc22 user1961-key1
+1962 None ssh-rsa 22key4plc22 user1962-key1
+1963 None ssh-rsa 22key4plc22 user1963-key1
+1964 None ssh-rsa 22key4plc22 user1964-key1
+1965 None ssh-rsa 22key4plc22 user1965-key1
+1966 None ssh-rsa 22key4plc22 user1966-key1
+1967 None ssh-rsa 22key4plc22 user1967-key1
+1968 None ssh-rsa 22key4plc22 user1968-key1
+1969 None ssh-rsa 22key4plc22 user1969-key1
+1970 None ssh-rsa 22key4plc22 user1970-key1
+1971 None ssh-rsa 22key4plc22 user1971-key1
+1972 None ssh-rsa 22key4plc22 user1972-key1
+1973 None ssh-rsa 22key4plc22 user1973-key1
+1974 None ssh-rsa 22key4plc22 user1974-key1
+1975 None ssh-rsa 22key4plc22 user1975-key1
+1976 None ssh-rsa 22key4plc22 user1976-key1
+1977 None ssh-rsa 22key4plc22 user1977-key1
+1978 None ssh-rsa 22key4plc22 user1978-key1
+1979 None ssh-rsa 22key4plc22 user1979-key1
+1980 None ssh-rsa 22key4plc22 user1980-key1
+1981 None ssh-rsa 22key4plc22 user1981-key1
+1982 None ssh-rsa 22key4plc22 user1982-key1
+1983 None ssh-rsa 22key4plc22 user1983-key1
+1984 None ssh-rsa 22key4plc22 user1984-key1
+1985 None ssh-rsa 22key4plc22 user1985-key1
+1986 None ssh-rsa 22key4plc22 user1986-key1
+1987 None ssh-rsa 22key4plc22 user1987-key1
+1988 None ssh-rsa 22key4plc22 user1988-key1
+1989 None ssh-rsa 22key4plc22 user1989-key1
+1990 None ssh-rsa 22key4plc22 user1990-key1
+1991 None ssh-rsa 22key4plc22 user1991-key1
+1992 None ssh-rsa 22key4plc22 user1992-key1
+1993 None ssh-rsa 22key4plc22 user1993-key1
+1994 None ssh-rsa 22key4plc22 user1994-key1
+1995 None ssh-rsa 22key4plc22 user1995-key1
+1996 None ssh-rsa 22key4plc22 user1996-key1
+1997 None ssh-rsa 22key4plc22 user1997-key1
+1998 None ssh-rsa 22key4plc22 user1998-key1
+1999 None ssh-rsa 22key4plc22 user1999-key1
+2000 None ssh-rsa 22key4plc22 user2000-key1
+2001 1 ssh-rsa 11key4plc11 user1-key1
+2002 1 ssh-rsa 11key4plc11 user2-key1
+2003 1 ssh-rsa 11key4plc11 user3-key1
+2004 1 ssh-rsa 11key4plc11 user4-key1
+2005 1 ssh-rsa 11key4plc11 user5-key1
+2006 1 ssh-rsa 11key4plc11 user6-key1
+2007 1 ssh-rsa 11key4plc11 user7-key1
+2008 1 ssh-rsa 11key4plc11 user8-key1
+2009 1 ssh-rsa 11key4plc11 user9-key1
+2010 1 ssh-rsa 11key4plc11 user10-key1
+2011 1 ssh-rsa 11key4plc11 user11-key1
+2012 1 ssh-rsa 11key4plc11 user12-key1
+2013 1 ssh-rsa 11key4plc11 user13-key1
+2014 1 ssh-rsa 11key4plc11 user14-key1
+2015 1 ssh-rsa 11key4plc11 user15-key1
+2016 1 ssh-rsa 11key4plc11 user16-key1
+2017 1 ssh-rsa 11key4plc11 user17-key1
+2018 1 ssh-rsa 11key4plc11 user18-key1
+2019 1 ssh-rsa 11key4plc11 user19-key1
+2020 1 ssh-rsa 11key4plc11 user20-key1
+2021 1 ssh-rsa 11key4plc11 user21-key1
+2022 1 ssh-rsa 11key4plc11 user22-key1
+2023 1 ssh-rsa 11key4plc11 user23-key1
+2024 1 ssh-rsa 11key4plc11 user24-key1
+2025 1 ssh-rsa 11key4plc11 user25-key1
+2026 1 ssh-rsa 11key4plc11 user26-key1
+2027 1 ssh-rsa 11key4plc11 user27-key1
+2028 1 ssh-rsa 11key4plc11 user28-key1
+2029 1 ssh-rsa 11key4plc11 user29-key1
+2030 1 ssh-rsa 11key4plc11 user30-key1
+2031 1 ssh-rsa 11key4plc11 user31-key1
+2032 1 ssh-rsa 11key4plc11 user32-key1
+2033 1 ssh-rsa 11key4plc11 user33-key1
+2034 1 ssh-rsa 11key4plc11 user34-key1
+2035 1 ssh-rsa 11key4plc11 user35-key1
+2036 1 ssh-rsa 11key4plc11 user36-key1
+2037 1 ssh-rsa 11key4plc11 user37-key1
+2038 1 ssh-rsa 11key4plc11 user38-key1
+2039 1 ssh-rsa 11key4plc11 user39-key1
+2040 1 ssh-rsa 11key4plc11 user40-key1
+2041 1 ssh-rsa 11key4plc11 user41-key1
+2042 1 ssh-rsa 11key4plc11 user42-key1
+2043 1 ssh-rsa 11key4plc11 user43-key1
+2044 1 ssh-rsa 11key4plc11 user44-key1
+2045 1 ssh-rsa 11key4plc11 user45-key1
+2046 1 ssh-rsa 11key4plc11 user46-key1
+2047 1 ssh-rsa 11key4plc11 user47-key1
+2048 1 ssh-rsa 11key4plc11 user48-key1
+2049 1 ssh-rsa 11key4plc11 user49-key1
+2050 1 ssh-rsa 11key4plc11 user50-key1
+2051 1 ssh-rsa 11key4plc11 user51-key1
+2052 1 ssh-rsa 11key4plc11 user52-key1
+2053 1 ssh-rsa 11key4plc11 user53-key1
+2054 1 ssh-rsa 11key4plc11 user54-key1
+2055 1 ssh-rsa 11key4plc11 user55-key1
+2056 1 ssh-rsa 11key4plc11 user56-key1
+2057 1 ssh-rsa 11key4plc11 user57-key1
+2058 1 ssh-rsa 11key4plc11 user58-key1
+2059 1 ssh-rsa 11key4plc11 user59-key1
+2060 1 ssh-rsa 11key4plc11 user60-key1
+2061 1 ssh-rsa 11key4plc11 user61-key1
+2062 1 ssh-rsa 11key4plc11 user62-key1
+2063 1 ssh-rsa 11key4plc11 user63-key1
+2064 1 ssh-rsa 11key4plc11 user64-key1
+2065 1 ssh-rsa 11key4plc11 user65-key1
+2066 1 ssh-rsa 11key4plc11 user66-key1
+2067 1 ssh-rsa 11key4plc11 user67-key1
+2068 1 ssh-rsa 11key4plc11 user68-key1
+2069 1 ssh-rsa 11key4plc11 user69-key1
+2070 1 ssh-rsa 11key4plc11 user70-key1
+2071 1 ssh-rsa 11key4plc11 user71-key1
+2072 1 ssh-rsa 11key4plc11 user72-key1
+2073 1 ssh-rsa 11key4plc11 user73-key1
+2074 1 ssh-rsa 11key4plc11 user74-key1
+2075 1 ssh-rsa 11key4plc11 user75-key1
+2076 1 ssh-rsa 11key4plc11 user76-key1
+2077 1 ssh-rsa 11key4plc11 user77-key1
+2078 1 ssh-rsa 11key4plc11 user78-key1
+2079 1 ssh-rsa 11key4plc11 user79-key1
+2080 1 ssh-rsa 11key4plc11 user80-key1
+2081 1 ssh-rsa 11key4plc11 user81-key1
+2082 1 ssh-rsa 11key4plc11 user82-key1
+2083 1 ssh-rsa 11key4plc11 user83-key1
+2084 1 ssh-rsa 11key4plc11 user84-key1
+2085 1 ssh-rsa 11key4plc11 user85-key1
+2086 1 ssh-rsa 11key4plc11 user86-key1
+2087 1 ssh-rsa 11key4plc11 user87-key1
+2088 1 ssh-rsa 11key4plc11 user88-key1
+2089 1 ssh-rsa 11key4plc11 user89-key1
+2090 1 ssh-rsa 11key4plc11 user90-key1
+2091 1 ssh-rsa 11key4plc11 user91-key1
+2092 1 ssh-rsa 11key4plc11 user92-key1
+2093 1 ssh-rsa 11key4plc11 user93-key1
+2094 1 ssh-rsa 11key4plc11 user94-key1
+2095 1 ssh-rsa 11key4plc11 user95-key1
+2096 1 ssh-rsa 11key4plc11 user96-key1
+2097 1 ssh-rsa 11key4plc11 user97-key1
+2098 1 ssh-rsa 11key4plc11 user98-key1
+2099 1 ssh-rsa 11key4plc11 user99-key1
+2100 1 ssh-rsa 11key4plc11 user100-key1
+2101 1 ssh-rsa 11key4plc11 user101-key1
+2102 1 ssh-rsa 11key4plc11 user102-key1
+2103 1 ssh-rsa 11key4plc11 user103-key1
+2104 1 ssh-rsa 11key4plc11 user104-key1
+2105 1 ssh-rsa 11key4plc11 user105-key1
+2106 1 ssh-rsa 11key4plc11 user106-key1
+2107 1 ssh-rsa 11key4plc11 user107-key1
+2108 1 ssh-rsa 11key4plc11 user108-key1
+2109 1 ssh-rsa 11key4plc11 user109-key1
+2110 1 ssh-rsa 11key4plc11 user110-key1
+2111 1 ssh-rsa 11key4plc11 user111-key1
+2112 1 ssh-rsa 11key4plc11 user112-key1
+2113 1 ssh-rsa 11key4plc11 user113-key1
+2114 1 ssh-rsa 11key4plc11 user114-key1
+2115 1 ssh-rsa 11key4plc11 user115-key1
+2116 1 ssh-rsa 11key4plc11 user116-key1
+2117 1 ssh-rsa 11key4plc11 user117-key1
+2118 1 ssh-rsa 11key4plc11 user118-key1
+2119 1 ssh-rsa 11key4plc11 user119-key1
+2120 1 ssh-rsa 11key4plc11 user120-key1
+2121 1 ssh-rsa 11key4plc11 user121-key1
+2122 1 ssh-rsa 11key4plc11 user122-key1
+2123 1 ssh-rsa 11key4plc11 user123-key1
+2124 1 ssh-rsa 11key4plc11 user124-key1
+2125 1 ssh-rsa 11key4plc11 user125-key1
+2126 1 ssh-rsa 11key4plc11 user126-key1
+2127 1 ssh-rsa 11key4plc11 user127-key1
+2128 1 ssh-rsa 11key4plc11 user128-key1
+2129 1 ssh-rsa 11key4plc11 user129-key1
+2130 1 ssh-rsa 11key4plc11 user130-key1
+2131 1 ssh-rsa 11key4plc11 user131-key1
+2132 1 ssh-rsa 11key4plc11 user132-key1
+2133 1 ssh-rsa 11key4plc11 user133-key1
+2134 1 ssh-rsa 11key4plc11 user134-key1
+2135 1 ssh-rsa 11key4plc11 user135-key1
+2136 1 ssh-rsa 11key4plc11 user136-key1
+2137 1 ssh-rsa 11key4plc11 user137-key1
+2138 1 ssh-rsa 11key4plc11 user138-key1
+2139 1 ssh-rsa 11key4plc11 user139-key1
+2140 1 ssh-rsa 11key4plc11 user140-key1
+2141 1 ssh-rsa 11key4plc11 user141-key1
+2142 1 ssh-rsa 11key4plc11 user142-key1
+2143 1 ssh-rsa 11key4plc11 user143-key1
+2144 1 ssh-rsa 11key4plc11 user144-key1
+2145 1 ssh-rsa 11key4plc11 user145-key1
+2146 1 ssh-rsa 11key4plc11 user146-key1
+2147 1 ssh-rsa 11key4plc11 user147-key1
+2148 1 ssh-rsa 11key4plc11 user148-key1
+2149 1 ssh-rsa 11key4plc11 user149-key1
+2150 1 ssh-rsa 11key4plc11 user150-key1
+2151 1 ssh-rsa 11key4plc11 user151-key1
+2152 1 ssh-rsa 11key4plc11 user152-key1
+2153 1 ssh-rsa 11key4plc11 user153-key1
+2154 1 ssh-rsa 11key4plc11 user154-key1
+2155 1 ssh-rsa 11key4plc11 user155-key1
+2156 1 ssh-rsa 11key4plc11 user156-key1
+2157 1 ssh-rsa 11key4plc11 user157-key1
+2158 1 ssh-rsa 11key4plc11 user158-key1
+2159 1 ssh-rsa 11key4plc11 user159-key1
+2160 1 ssh-rsa 11key4plc11 user160-key1
+2161 1 ssh-rsa 11key4plc11 user161-key1
+2162 1 ssh-rsa 11key4plc11 user162-key1
+2163 1 ssh-rsa 11key4plc11 user163-key1
+2164 1 ssh-rsa 11key4plc11 user164-key1
+2165 1 ssh-rsa 11key4plc11 user165-key1
+2166 1 ssh-rsa 11key4plc11 user166-key1
+2167 1 ssh-rsa 11key4plc11 user167-key1
+2168 1 ssh-rsa 11key4plc11 user168-key1
+2169 1 ssh-rsa 11key4plc11 user169-key1
+2170 1 ssh-rsa 11key4plc11 user170-key1
+2171 1 ssh-rsa 11key4plc11 user171-key1
+2172 1 ssh-rsa 11key4plc11 user172-key1
+2173 1 ssh-rsa 11key4plc11 user173-key1
+2174 1 ssh-rsa 11key4plc11 user174-key1
+2175 1 ssh-rsa 11key4plc11 user175-key1
+2176 1 ssh-rsa 11key4plc11 user176-key1
+2177 1 ssh-rsa 11key4plc11 user177-key1
+2178 1 ssh-rsa 11key4plc11 user178-key1
+2179 1 ssh-rsa 11key4plc11 user179-key1
+2180 1 ssh-rsa 11key4plc11 user180-key1
+2181 1 ssh-rsa 11key4plc11 user181-key1
+2182 1 ssh-rsa 11key4plc11 user182-key1
+2183 1 ssh-rsa 11key4plc11 user183-key1
+2184 1 ssh-rsa 11key4plc11 user184-key1
+2185 1 ssh-rsa 11key4plc11 user185-key1
+2186 1 ssh-rsa 11key4plc11 user186-key1
+2187 1 ssh-rsa 11key4plc11 user187-key1
+2188 1 ssh-rsa 11key4plc11 user188-key1
+2189 1 ssh-rsa 11key4plc11 user189-key1
+2190 1 ssh-rsa 11key4plc11 user190-key1
+2191 1 ssh-rsa 11key4plc11 user191-key1
+2192 1 ssh-rsa 11key4plc11 user192-key1
+2193 1 ssh-rsa 11key4plc11 user193-key1
+2194 1 ssh-rsa 11key4plc11 user194-key1
+2195 1 ssh-rsa 11key4plc11 user195-key1
+2196 1 ssh-rsa 11key4plc11 user196-key1
+2197 1 ssh-rsa 11key4plc11 user197-key1
+2198 1 ssh-rsa 11key4plc11 user198-key1
+2199 1 ssh-rsa 11key4plc11 user199-key1
+2200 1 ssh-rsa 11key4plc11 user200-key1
+2201 1 ssh-rsa 11key4plc11 user201-key1
+2202 1 ssh-rsa 11key4plc11 user202-key1
+2203 1 ssh-rsa 11key4plc11 user203-key1
+2204 1 ssh-rsa 11key4plc11 user204-key1
+2205 1 ssh-rsa 11key4plc11 user205-key1
+2206 1 ssh-rsa 11key4plc11 user206-key1
+2207 1 ssh-rsa 11key4plc11 user207-key1
+2208 1 ssh-rsa 11key4plc11 user208-key1
+2209 1 ssh-rsa 11key4plc11 user209-key1
+2210 1 ssh-rsa 11key4plc11 user210-key1
+2211 1 ssh-rsa 11key4plc11 user211-key1
+2212 1 ssh-rsa 11key4plc11 user212-key1
+2213 1 ssh-rsa 11key4plc11 user213-key1
+2214 1 ssh-rsa 11key4plc11 user214-key1
+2215 1 ssh-rsa 11key4plc11 user215-key1
+2216 1 ssh-rsa 11key4plc11 user216-key1
+2217 1 ssh-rsa 11key4plc11 user217-key1
+2218 1 ssh-rsa 11key4plc11 user218-key1
+2219 1 ssh-rsa 11key4plc11 user219-key1
+2220 1 ssh-rsa 11key4plc11 user220-key1
+2221 1 ssh-rsa 11key4plc11 user221-key1
+2222 1 ssh-rsa 11key4plc11 user222-key1
+2223 1 ssh-rsa 11key4plc11 user223-key1
+2224 1 ssh-rsa 11key4plc11 user224-key1
+2225 1 ssh-rsa 11key4plc11 user225-key1
+2226 1 ssh-rsa 11key4plc11 user226-key1
+2227 1 ssh-rsa 11key4plc11 user227-key1
+2228 1 ssh-rsa 11key4plc11 user228-key1
+2229 1 ssh-rsa 11key4plc11 user229-key1
+2230 1 ssh-rsa 11key4plc11 user230-key1
+2231 1 ssh-rsa 11key4plc11 user231-key1
+2232 1 ssh-rsa 11key4plc11 user232-key1
+2233 1 ssh-rsa 11key4plc11 user233-key1
+2234 1 ssh-rsa 11key4plc11 user234-key1
+2235 1 ssh-rsa 11key4plc11 user235-key1
+2236 1 ssh-rsa 11key4plc11 user236-key1
+2237 1 ssh-rsa 11key4plc11 user237-key1
+2238 1 ssh-rsa 11key4plc11 user238-key1
+2239 1 ssh-rsa 11key4plc11 user239-key1
+2240 1 ssh-rsa 11key4plc11 user240-key1
+2241 1 ssh-rsa 11key4plc11 user241-key1
+2242 1 ssh-rsa 11key4plc11 user242-key1
+2243 1 ssh-rsa 11key4plc11 user243-key1
+2244 1 ssh-rsa 11key4plc11 user244-key1
+2245 1 ssh-rsa 11key4plc11 user245-key1
+2246 1 ssh-rsa 11key4plc11 user246-key1
+2247 1 ssh-rsa 11key4plc11 user247-key1
+2248 1 ssh-rsa 11key4plc11 user248-key1
+2249 1 ssh-rsa 11key4plc11 user249-key1
+2250 1 ssh-rsa 11key4plc11 user250-key1
+2251 1 ssh-rsa 11key4plc11 user251-key1
+2252 1 ssh-rsa 11key4plc11 user252-key1
+2253 1 ssh-rsa 11key4plc11 user253-key1
+2254 1 ssh-rsa 11key4plc11 user254-key1
+2255 1 ssh-rsa 11key4plc11 user255-key1
+2256 1 ssh-rsa 11key4plc11 user256-key1
+2257 1 ssh-rsa 11key4plc11 user257-key1
+2258 1 ssh-rsa 11key4plc11 user258-key1
+2259 1 ssh-rsa 11key4plc11 user259-key1
+2260 1 ssh-rsa 11key4plc11 user260-key1
+2261 1 ssh-rsa 11key4plc11 user261-key1
+2262 1 ssh-rsa 11key4plc11 user262-key1
+2263 1 ssh-rsa 11key4plc11 user263-key1
+2264 1 ssh-rsa 11key4plc11 user264-key1
+2265 1 ssh-rsa 11key4plc11 user265-key1
+2266 1 ssh-rsa 11key4plc11 user266-key1
+2267 1 ssh-rsa 11key4plc11 user267-key1
+2268 1 ssh-rsa 11key4plc11 user268-key1
+2269 1 ssh-rsa 11key4plc11 user269-key1
+2270 1 ssh-rsa 11key4plc11 user270-key1
+2271 1 ssh-rsa 11key4plc11 user271-key1
+2272 1 ssh-rsa 11key4plc11 user272-key1
+2273 1 ssh-rsa 11key4plc11 user273-key1
+2274 1 ssh-rsa 11key4plc11 user274-key1
+2275 1 ssh-rsa 11key4plc11 user275-key1
+2276 1 ssh-rsa 11key4plc11 user276-key1
+2277 1 ssh-rsa 11key4plc11 user277-key1
+2278 1 ssh-rsa 11key4plc11 user278-key1
+2279 1 ssh-rsa 11key4plc11 user279-key1
+2280 1 ssh-rsa 11key4plc11 user280-key1
+2281 1 ssh-rsa 11key4plc11 user281-key1
+2282 1 ssh-rsa 11key4plc11 user282-key1
+2283 1 ssh-rsa 11key4plc11 user283-key1
+2284 1 ssh-rsa 11key4plc11 user284-key1
+2285 1 ssh-rsa 11key4plc11 user285-key1
+2286 1 ssh-rsa 11key4plc11 user286-key1
+2287 1 ssh-rsa 11key4plc11 user287-key1
+2288 1 ssh-rsa 11key4plc11 user288-key1
+2289 1 ssh-rsa 11key4plc11 user289-key1
+2290 1 ssh-rsa 11key4plc11 user290-key1
+2291 1 ssh-rsa 11key4plc11 user291-key1
+2292 1 ssh-rsa 11key4plc11 user292-key1
+2293 1 ssh-rsa 11key4plc11 user293-key1
+2294 1 ssh-rsa 11key4plc11 user294-key1
+2295 1 ssh-rsa 11key4plc11 user295-key1
+2296 1 ssh-rsa 11key4plc11 user296-key1
+2297 1 ssh-rsa 11key4plc11 user297-key1
+2298 1 ssh-rsa 11key4plc11 user298-key1
+2299 1 ssh-rsa 11key4plc11 user299-key1
+2300 1 ssh-rsa 11key4plc11 user300-key1
+2301 1 ssh-rsa 11key4plc11 user301-key1
+2302 1 ssh-rsa 11key4plc11 user302-key1
+2303 1 ssh-rsa 11key4plc11 user303-key1
+2304 1 ssh-rsa 11key4plc11 user304-key1
+2305 1 ssh-rsa 11key4plc11 user305-key1
+2306 1 ssh-rsa 11key4plc11 user306-key1
+2307 1 ssh-rsa 11key4plc11 user307-key1
+2308 1 ssh-rsa 11key4plc11 user308-key1
+2309 1 ssh-rsa 11key4plc11 user309-key1
+2310 1 ssh-rsa 11key4plc11 user310-key1
+2311 1 ssh-rsa 11key4plc11 user311-key1
+2312 1 ssh-rsa 11key4plc11 user312-key1
+2313 1 ssh-rsa 11key4plc11 user313-key1
+2314 1 ssh-rsa 11key4plc11 user314-key1
+2315 1 ssh-rsa 11key4plc11 user315-key1
+2316 1 ssh-rsa 11key4plc11 user316-key1
+2317 1 ssh-rsa 11key4plc11 user317-key1
+2318 1 ssh-rsa 11key4plc11 user318-key1
+2319 1 ssh-rsa 11key4plc11 user319-key1
+2320 1 ssh-rsa 11key4plc11 user320-key1
+2321 1 ssh-rsa 11key4plc11 user321-key1
+2322 1 ssh-rsa 11key4plc11 user322-key1
+2323 1 ssh-rsa 11key4plc11 user323-key1
+2324 1 ssh-rsa 11key4plc11 user324-key1
+2325 1 ssh-rsa 11key4plc11 user325-key1
+2326 1 ssh-rsa 11key4plc11 user326-key1
+2327 1 ssh-rsa 11key4plc11 user327-key1
+2328 1 ssh-rsa 11key4plc11 user328-key1
+2329 1 ssh-rsa 11key4plc11 user329-key1
+2330 1 ssh-rsa 11key4plc11 user330-key1
+2331 1 ssh-rsa 11key4plc11 user331-key1
+2332 1 ssh-rsa 11key4plc11 user332-key1
+2333 1 ssh-rsa 11key4plc11 user333-key1
+2334 1 ssh-rsa 11key4plc11 user334-key1
+2335 1 ssh-rsa 11key4plc11 user335-key1
+2336 1 ssh-rsa 11key4plc11 user336-key1
+2337 1 ssh-rsa 11key4plc11 user337-key1
+2338 1 ssh-rsa 11key4plc11 user338-key1
+2339 1 ssh-rsa 11key4plc11 user339-key1
+2340 1 ssh-rsa 11key4plc11 user340-key1
+2341 1 ssh-rsa 11key4plc11 user341-key1
+2342 1 ssh-rsa 11key4plc11 user342-key1
+2343 1 ssh-rsa 11key4plc11 user343-key1
+2344 1 ssh-rsa 11key4plc11 user344-key1
+2345 1 ssh-rsa 11key4plc11 user345-key1
+2346 1 ssh-rsa 11key4plc11 user346-key1
+2347 1 ssh-rsa 11key4plc11 user347-key1
+2348 1 ssh-rsa 11key4plc11 user348-key1
+2349 1 ssh-rsa 11key4plc11 user349-key1
+2350 1 ssh-rsa 11key4plc11 user350-key1
+2351 1 ssh-rsa 11key4plc11 user351-key1
+2352 1 ssh-rsa 11key4plc11 user352-key1
+2353 1 ssh-rsa 11key4plc11 user353-key1
+2354 1 ssh-rsa 11key4plc11 user354-key1
+2355 1 ssh-rsa 11key4plc11 user355-key1
+2356 1 ssh-rsa 11key4plc11 user356-key1
+2357 1 ssh-rsa 11key4plc11 user357-key1
+2358 1 ssh-rsa 11key4plc11 user358-key1
+2359 1 ssh-rsa 11key4plc11 user359-key1
+2360 1 ssh-rsa 11key4plc11 user360-key1
+2361 1 ssh-rsa 11key4plc11 user361-key1
+2362 1 ssh-rsa 11key4plc11 user362-key1
+2363 1 ssh-rsa 11key4plc11 user363-key1
+2364 1 ssh-rsa 11key4plc11 user364-key1
+2365 1 ssh-rsa 11key4plc11 user365-key1
+2366 1 ssh-rsa 11key4plc11 user366-key1
+2367 1 ssh-rsa 11key4plc11 user367-key1
+2368 1 ssh-rsa 11key4plc11 user368-key1
+2369 1 ssh-rsa 11key4plc11 user369-key1
+2370 1 ssh-rsa 11key4plc11 user370-key1
+2371 1 ssh-rsa 11key4plc11 user371-key1
+2372 1 ssh-rsa 11key4plc11 user372-key1
+2373 1 ssh-rsa 11key4plc11 user373-key1
+2374 1 ssh-rsa 11key4plc11 user374-key1
+2375 1 ssh-rsa 11key4plc11 user375-key1
+2376 1 ssh-rsa 11key4plc11 user376-key1
+2377 1 ssh-rsa 11key4plc11 user377-key1
+2378 1 ssh-rsa 11key4plc11 user378-key1
+2379 1 ssh-rsa 11key4plc11 user379-key1
+2380 1 ssh-rsa 11key4plc11 user380-key1
+2381 1 ssh-rsa 11key4plc11 user381-key1
+2382 1 ssh-rsa 11key4plc11 user382-key1
+2383 1 ssh-rsa 11key4plc11 user383-key1
+2384 1 ssh-rsa 11key4plc11 user384-key1
+2385 1 ssh-rsa 11key4plc11 user385-key1
+2386 1 ssh-rsa 11key4plc11 user386-key1
+2387 1 ssh-rsa 11key4plc11 user387-key1
+2388 1 ssh-rsa 11key4plc11 user388-key1
+2389 1 ssh-rsa 11key4plc11 user389-key1
+2390 1 ssh-rsa 11key4plc11 user390-key1
+2391 1 ssh-rsa 11key4plc11 user391-key1
+2392 1 ssh-rsa 11key4plc11 user392-key1
+2393 1 ssh-rsa 11key4plc11 user393-key1
+2394 1 ssh-rsa 11key4plc11 user394-key1
+2395 1 ssh-rsa 11key4plc11 user395-key1
+2396 1 ssh-rsa 11key4plc11 user396-key1
+2397 1 ssh-rsa 11key4plc11 user397-key1
+2398 1 ssh-rsa 11key4plc11 user398-key1
+2399 1 ssh-rsa 11key4plc11 user399-key1
+2400 1 ssh-rsa 11key4plc11 user400-key1
+2401 1 ssh-rsa 11key4plc11 user401-key1
+2402 1 ssh-rsa 11key4plc11 user402-key1
+2403 1 ssh-rsa 11key4plc11 user403-key1
+2404 1 ssh-rsa 11key4plc11 user404-key1
+2405 1 ssh-rsa 11key4plc11 user405-key1
+2406 1 ssh-rsa 11key4plc11 user406-key1
+2407 1 ssh-rsa 11key4plc11 user407-key1
+2408 1 ssh-rsa 11key4plc11 user408-key1
+2409 1 ssh-rsa 11key4plc11 user409-key1
+2410 1 ssh-rsa 11key4plc11 user410-key1
+2411 1 ssh-rsa 11key4plc11 user411-key1
+2412 1 ssh-rsa 11key4plc11 user412-key1
+2413 1 ssh-rsa 11key4plc11 user413-key1
+2414 1 ssh-rsa 11key4plc11 user414-key1
+2415 1 ssh-rsa 11key4plc11 user415-key1
+2416 1 ssh-rsa 11key4plc11 user416-key1
+2417 1 ssh-rsa 11key4plc11 user417-key1
+2418 1 ssh-rsa 11key4plc11 user418-key1
+2419 1 ssh-rsa 11key4plc11 user419-key1
+2420 1 ssh-rsa 11key4plc11 user420-key1
+2421 1 ssh-rsa 11key4plc11 user421-key1
+2422 1 ssh-rsa 11key4plc11 user422-key1
+2423 1 ssh-rsa 11key4plc11 user423-key1
+2424 1 ssh-rsa 11key4plc11 user424-key1
+2425 1 ssh-rsa 11key4plc11 user425-key1
+2426 1 ssh-rsa 11key4plc11 user426-key1
+2427 1 ssh-rsa 11key4plc11 user427-key1
+2428 1 ssh-rsa 11key4plc11 user428-key1
+2429 1 ssh-rsa 11key4plc11 user429-key1
+2430 1 ssh-rsa 11key4plc11 user430-key1
+2431 1 ssh-rsa 11key4plc11 user431-key1
+2432 1 ssh-rsa 11key4plc11 user432-key1
+2433 1 ssh-rsa 11key4plc11 user433-key1
+2434 1 ssh-rsa 11key4plc11 user434-key1
+2435 1 ssh-rsa 11key4plc11 user435-key1
+2436 1 ssh-rsa 11key4plc11 user436-key1
+2437 1 ssh-rsa 11key4plc11 user437-key1
+2438 1 ssh-rsa 11key4plc11 user438-key1
+2439 1 ssh-rsa 11key4plc11 user439-key1
+2440 1 ssh-rsa 11key4plc11 user440-key1
+2441 1 ssh-rsa 11key4plc11 user441-key1
+2442 1 ssh-rsa 11key4plc11 user442-key1
+2443 1 ssh-rsa 11key4plc11 user443-key1
+2444 1 ssh-rsa 11key4plc11 user444-key1
+2445 1 ssh-rsa 11key4plc11 user445-key1
+2446 1 ssh-rsa 11key4plc11 user446-key1
+2447 1 ssh-rsa 11key4plc11 user447-key1
+2448 1 ssh-rsa 11key4plc11 user448-key1
+2449 1 ssh-rsa 11key4plc11 user449-key1
+2450 1 ssh-rsa 11key4plc11 user450-key1
+2451 1 ssh-rsa 11key4plc11 user451-key1
+2452 1 ssh-rsa 11key4plc11 user452-key1
+2453 1 ssh-rsa 11key4plc11 user453-key1
+2454 1 ssh-rsa 11key4plc11 user454-key1
+2455 1 ssh-rsa 11key4plc11 user455-key1
+2456 1 ssh-rsa 11key4plc11 user456-key1
+2457 1 ssh-rsa 11key4plc11 user457-key1
+2458 1 ssh-rsa 11key4plc11 user458-key1
+2459 1 ssh-rsa 11key4plc11 user459-key1
+2460 1 ssh-rsa 11key4plc11 user460-key1
+2461 1 ssh-rsa 11key4plc11 user461-key1
+2462 1 ssh-rsa 11key4plc11 user462-key1
+2463 1 ssh-rsa 11key4plc11 user463-key1
+2464 1 ssh-rsa 11key4plc11 user464-key1
+2465 1 ssh-rsa 11key4plc11 user465-key1
+2466 1 ssh-rsa 11key4plc11 user466-key1
+2467 1 ssh-rsa 11key4plc11 user467-key1
+2468 1 ssh-rsa 11key4plc11 user468-key1
+2469 1 ssh-rsa 11key4plc11 user469-key1
+2470 1 ssh-rsa 11key4plc11 user470-key1
+2471 1 ssh-rsa 11key4plc11 user471-key1
+2472 1 ssh-rsa 11key4plc11 user472-key1
+2473 1 ssh-rsa 11key4plc11 user473-key1
+2474 1 ssh-rsa 11key4plc11 user474-key1
+2475 1 ssh-rsa 11key4plc11 user475-key1
+2476 1 ssh-rsa 11key4plc11 user476-key1
+2477 1 ssh-rsa 11key4plc11 user477-key1
+2478 1 ssh-rsa 11key4plc11 user478-key1
+2479 1 ssh-rsa 11key4plc11 user479-key1
+2480 1 ssh-rsa 11key4plc11 user480-key1
+2481 1 ssh-rsa 11key4plc11 user481-key1
+2482 1 ssh-rsa 11key4plc11 user482-key1
+2483 1 ssh-rsa 11key4plc11 user483-key1
+2484 1 ssh-rsa 11key4plc11 user484-key1
+2485 1 ssh-rsa 11key4plc11 user485-key1
+2486 1 ssh-rsa 11key4plc11 user486-key1
+2487 1 ssh-rsa 11key4plc11 user487-key1
+2488 1 ssh-rsa 11key4plc11 user488-key1
+2489 1 ssh-rsa 11key4plc11 user489-key1
+2490 1 ssh-rsa 11key4plc11 user490-key1
+2491 1 ssh-rsa 11key4plc11 user491-key1
+2492 1 ssh-rsa 11key4plc11 user492-key1
+2493 1 ssh-rsa 11key4plc11 user493-key1
+2494 1 ssh-rsa 11key4plc11 user494-key1
+2495 1 ssh-rsa 11key4plc11 user495-key1
+2496 1 ssh-rsa 11key4plc11 user496-key1
+2497 1 ssh-rsa 11key4plc11 user497-key1
+2498 1 ssh-rsa 11key4plc11 user498-key1
+2499 1 ssh-rsa 11key4plc11 user499-key1
+2500 1 ssh-rsa 11key4plc11 user500-key1
+2501 1 ssh-rsa 11key4plc11 user501-key1
+2502 1 ssh-rsa 11key4plc11 user502-key1
+2503 1 ssh-rsa 11key4plc11 user503-key1
+2504 1 ssh-rsa 11key4plc11 user504-key1
+2505 1 ssh-rsa 11key4plc11 user505-key1
+2506 1 ssh-rsa 11key4plc11 user506-key1
+2507 1 ssh-rsa 11key4plc11 user507-key1
+2508 1 ssh-rsa 11key4plc11 user508-key1
+2509 1 ssh-rsa 11key4plc11 user509-key1
+2510 1 ssh-rsa 11key4plc11 user510-key1
+2511 1 ssh-rsa 11key4plc11 user511-key1
+2512 1 ssh-rsa 11key4plc11 user512-key1
+2513 1 ssh-rsa 11key4plc11 user513-key1
+2514 1 ssh-rsa 11key4plc11 user514-key1
+2515 1 ssh-rsa 11key4plc11 user515-key1
+2516 1 ssh-rsa 11key4plc11 user516-key1
+2517 1 ssh-rsa 11key4plc11 user517-key1
+2518 1 ssh-rsa 11key4plc11 user518-key1
+2519 1 ssh-rsa 11key4plc11 user519-key1
+2520 1 ssh-rsa 11key4plc11 user520-key1
+2521 1 ssh-rsa 11key4plc11 user521-key1
+2522 1 ssh-rsa 11key4plc11 user522-key1
+2523 1 ssh-rsa 11key4plc11 user523-key1
+2524 1 ssh-rsa 11key4plc11 user524-key1
+2525 1 ssh-rsa 11key4plc11 user525-key1
+2526 1 ssh-rsa 11key4plc11 user526-key1
+2527 1 ssh-rsa 11key4plc11 user527-key1
+2528 1 ssh-rsa 11key4plc11 user528-key1
+2529 1 ssh-rsa 11key4plc11 user529-key1
+2530 1 ssh-rsa 11key4plc11 user530-key1
+2531 1 ssh-rsa 11key4plc11 user531-key1
+2532 1 ssh-rsa 11key4plc11 user532-key1
+2533 1 ssh-rsa 11key4plc11 user533-key1
+2534 1 ssh-rsa 11key4plc11 user534-key1
+2535 1 ssh-rsa 11key4plc11 user535-key1
+2536 1 ssh-rsa 11key4plc11 user536-key1
+2537 1 ssh-rsa 11key4plc11 user537-key1
+2538 1 ssh-rsa 11key4plc11 user538-key1
+2539 1 ssh-rsa 11key4plc11 user539-key1
+2540 1 ssh-rsa 11key4plc11 user540-key1
+2541 1 ssh-rsa 11key4plc11 user541-key1
+2542 1 ssh-rsa 11key4plc11 user542-key1
+2543 1 ssh-rsa 11key4plc11 user543-key1
+2544 1 ssh-rsa 11key4plc11 user544-key1
+2545 1 ssh-rsa 11key4plc11 user545-key1
+2546 1 ssh-rsa 11key4plc11 user546-key1
+2547 1 ssh-rsa 11key4plc11 user547-key1
+2548 1 ssh-rsa 11key4plc11 user548-key1
+2549 1 ssh-rsa 11key4plc11 user549-key1
+2550 1 ssh-rsa 11key4plc11 user550-key1
+2551 1 ssh-rsa 11key4plc11 user551-key1
+2552 1 ssh-rsa 11key4plc11 user552-key1
+2553 1 ssh-rsa 11key4plc11 user553-key1
+2554 1 ssh-rsa 11key4plc11 user554-key1
+2555 1 ssh-rsa 11key4plc11 user555-key1
+2556 1 ssh-rsa 11key4plc11 user556-key1
+2557 1 ssh-rsa 11key4plc11 user557-key1
+2558 1 ssh-rsa 11key4plc11 user558-key1
+2559 1 ssh-rsa 11key4plc11 user559-key1
+2560 1 ssh-rsa 11key4plc11 user560-key1
+2561 1 ssh-rsa 11key4plc11 user561-key1
+2562 1 ssh-rsa 11key4plc11 user562-key1
+2563 1 ssh-rsa 11key4plc11 user563-key1
+2564 1 ssh-rsa 11key4plc11 user564-key1
+2565 1 ssh-rsa 11key4plc11 user565-key1
+2566 1 ssh-rsa 11key4plc11 user566-key1
+2567 1 ssh-rsa 11key4plc11 user567-key1
+2568 1 ssh-rsa 11key4plc11 user568-key1
+2569 1 ssh-rsa 11key4plc11 user569-key1
+2570 1 ssh-rsa 11key4plc11 user570-key1
+2571 1 ssh-rsa 11key4plc11 user571-key1
+2572 1 ssh-rsa 11key4plc11 user572-key1
+2573 1 ssh-rsa 11key4plc11 user573-key1
+2574 1 ssh-rsa 11key4plc11 user574-key1
+2575 1 ssh-rsa 11key4plc11 user575-key1
+2576 1 ssh-rsa 11key4plc11 user576-key1
+2577 1 ssh-rsa 11key4plc11 user577-key1
+2578 1 ssh-rsa 11key4plc11 user578-key1
+2579 1 ssh-rsa 11key4plc11 user579-key1
+2580 1 ssh-rsa 11key4plc11 user580-key1
+2581 1 ssh-rsa 11key4plc11 user581-key1
+2582 1 ssh-rsa 11key4plc11 user582-key1
+2583 1 ssh-rsa 11key4plc11 user583-key1
+2584 1 ssh-rsa 11key4plc11 user584-key1
+2585 1 ssh-rsa 11key4plc11 user585-key1
+2586 1 ssh-rsa 11key4plc11 user586-key1
+2587 1 ssh-rsa 11key4plc11 user587-key1
+2588 1 ssh-rsa 11key4plc11 user588-key1
+2589 1 ssh-rsa 11key4plc11 user589-key1
+2590 1 ssh-rsa 11key4plc11 user590-key1
+2591 1 ssh-rsa 11key4plc11 user591-key1
+2592 1 ssh-rsa 11key4plc11 user592-key1
+2593 1 ssh-rsa 11key4plc11 user593-key1
+2594 1 ssh-rsa 11key4plc11 user594-key1
+2595 1 ssh-rsa 11key4plc11 user595-key1
+2596 1 ssh-rsa 11key4plc11 user596-key1
+2597 1 ssh-rsa 11key4plc11 user597-key1
+2598 1 ssh-rsa 11key4plc11 user598-key1
+2599 1 ssh-rsa 11key4plc11 user599-key1
+2600 1 ssh-rsa 11key4plc11 user600-key1
+2601 1 ssh-rsa 11key4plc11 user601-key1
+2602 1 ssh-rsa 11key4plc11 user602-key1
+2603 1 ssh-rsa 11key4plc11 user603-key1
+2604 1 ssh-rsa 11key4plc11 user604-key1
+2605 1 ssh-rsa 11key4plc11 user605-key1
+2606 1 ssh-rsa 11key4plc11 user606-key1
+2607 1 ssh-rsa 11key4plc11 user607-key1
+2608 1 ssh-rsa 11key4plc11 user608-key1
+2609 1 ssh-rsa 11key4plc11 user609-key1
+2610 1 ssh-rsa 11key4plc11 user610-key1
+2611 1 ssh-rsa 11key4plc11 user611-key1
+2612 1 ssh-rsa 11key4plc11 user612-key1
+2613 1 ssh-rsa 11key4plc11 user613-key1
+2614 1 ssh-rsa 11key4plc11 user614-key1
+2615 1 ssh-rsa 11key4plc11 user615-key1
+2616 1 ssh-rsa 11key4plc11 user616-key1
+2617 1 ssh-rsa 11key4plc11 user617-key1
+2618 1 ssh-rsa 11key4plc11 user618-key1
+2619 1 ssh-rsa 11key4plc11 user619-key1
+2620 1 ssh-rsa 11key4plc11 user620-key1
+2621 1 ssh-rsa 11key4plc11 user621-key1
+2622 1 ssh-rsa 11key4plc11 user622-key1
+2623 1 ssh-rsa 11key4plc11 user623-key1
+2624 1 ssh-rsa 11key4plc11 user624-key1
+2625 1 ssh-rsa 11key4plc11 user625-key1
+2626 1 ssh-rsa 11key4plc11 user626-key1
+2627 1 ssh-rsa 11key4plc11 user627-key1
+2628 1 ssh-rsa 11key4plc11 user628-key1
+2629 1 ssh-rsa 11key4plc11 user629-key1
+2630 1 ssh-rsa 11key4plc11 user630-key1
+2631 1 ssh-rsa 11key4plc11 user631-key1
+2632 1 ssh-rsa 11key4plc11 user632-key1
+2633 1 ssh-rsa 11key4plc11 user633-key1
+2634 1 ssh-rsa 11key4plc11 user634-key1
+2635 1 ssh-rsa 11key4plc11 user635-key1
+2636 1 ssh-rsa 11key4plc11 user636-key1
+2637 1 ssh-rsa 11key4plc11 user637-key1
+2638 1 ssh-rsa 11key4plc11 user638-key1
+2639 1 ssh-rsa 11key4plc11 user639-key1
+2640 1 ssh-rsa 11key4plc11 user640-key1
+2641 1 ssh-rsa 11key4plc11 user641-key1
+2642 1 ssh-rsa 11key4plc11 user642-key1
+2643 1 ssh-rsa 11key4plc11 user643-key1
+2644 1 ssh-rsa 11key4plc11 user644-key1
+2645 1 ssh-rsa 11key4plc11 user645-key1
+2646 1 ssh-rsa 11key4plc11 user646-key1
+2647 1 ssh-rsa 11key4plc11 user647-key1
+2648 1 ssh-rsa 11key4plc11 user648-key1
+2649 1 ssh-rsa 11key4plc11 user649-key1
+2650 1 ssh-rsa 11key4plc11 user650-key1
+2651 1 ssh-rsa 11key4plc11 user651-key1
+2652 1 ssh-rsa 11key4plc11 user652-key1
+2653 1 ssh-rsa 11key4plc11 user653-key1
+2654 1 ssh-rsa 11key4plc11 user654-key1
+2655 1 ssh-rsa 11key4plc11 user655-key1
+2656 1 ssh-rsa 11key4plc11 user656-key1
+2657 1 ssh-rsa 11key4plc11 user657-key1
+2658 1 ssh-rsa 11key4plc11 user658-key1
+2659 1 ssh-rsa 11key4plc11 user659-key1
+2660 1 ssh-rsa 11key4plc11 user660-key1
+2661 1 ssh-rsa 11key4plc11 user661-key1
+2662 1 ssh-rsa 11key4plc11 user662-key1
+2663 1 ssh-rsa 11key4plc11 user663-key1
+2664 1 ssh-rsa 11key4plc11 user664-key1
+2665 1 ssh-rsa 11key4plc11 user665-key1
+2666 1 ssh-rsa 11key4plc11 user666-key1
+2667 1 ssh-rsa 11key4plc11 user667-key1
+2668 1 ssh-rsa 11key4plc11 user668-key1
+2669 1 ssh-rsa 11key4plc11 user669-key1
+2670 1 ssh-rsa 11key4plc11 user670-key1
+2671 1 ssh-rsa 11key4plc11 user671-key1
+2672 1 ssh-rsa 11key4plc11 user672-key1
+2673 1 ssh-rsa 11key4plc11 user673-key1
+2674 1 ssh-rsa 11key4plc11 user674-key1
+2675 1 ssh-rsa 11key4plc11 user675-key1
+2676 1 ssh-rsa 11key4plc11 user676-key1
+2677 1 ssh-rsa 11key4plc11 user677-key1
+2678 1 ssh-rsa 11key4plc11 user678-key1
+2679 1 ssh-rsa 11key4plc11 user679-key1
+2680 1 ssh-rsa 11key4plc11 user680-key1
+2681 1 ssh-rsa 11key4plc11 user681-key1
+2682 1 ssh-rsa 11key4plc11 user682-key1
+2683 1 ssh-rsa 11key4plc11 user683-key1
+2684 1 ssh-rsa 11key4plc11 user684-key1
+2685 1 ssh-rsa 11key4plc11 user685-key1
+2686 1 ssh-rsa 11key4plc11 user686-key1
+2687 1 ssh-rsa 11key4plc11 user687-key1
+2688 1 ssh-rsa 11key4plc11 user688-key1
+2689 1 ssh-rsa 11key4plc11 user689-key1
+2690 1 ssh-rsa 11key4plc11 user690-key1
+2691 1 ssh-rsa 11key4plc11 user691-key1
+2692 1 ssh-rsa 11key4plc11 user692-key1
+2693 1 ssh-rsa 11key4plc11 user693-key1
+2694 1 ssh-rsa 11key4plc11 user694-key1
+2695 1 ssh-rsa 11key4plc11 user695-key1
+2696 1 ssh-rsa 11key4plc11 user696-key1
+2697 1 ssh-rsa 11key4plc11 user697-key1
+2698 1 ssh-rsa 11key4plc11 user698-key1
+2699 1 ssh-rsa 11key4plc11 user699-key1
+2700 1 ssh-rsa 11key4plc11 user700-key1
+2701 1 ssh-rsa 11key4plc11 user701-key1
+2702 1 ssh-rsa 11key4plc11 user702-key1
+2703 1 ssh-rsa 11key4plc11 user703-key1
+2704 1 ssh-rsa 11key4plc11 user704-key1
+2705 1 ssh-rsa 11key4plc11 user705-key1
+2706 1 ssh-rsa 11key4plc11 user706-key1
+2707 1 ssh-rsa 11key4plc11 user707-key1
+2708 1 ssh-rsa 11key4plc11 user708-key1
+2709 1 ssh-rsa 11key4plc11 user709-key1
+2710 1 ssh-rsa 11key4plc11 user710-key1
+2711 1 ssh-rsa 11key4plc11 user711-key1
+2712 1 ssh-rsa 11key4plc11 user712-key1
+2713 1 ssh-rsa 11key4plc11 user713-key1
+2714 1 ssh-rsa 11key4plc11 user714-key1
+2715 1 ssh-rsa 11key4plc11 user715-key1
+2716 1 ssh-rsa 11key4plc11 user716-key1
+2717 1 ssh-rsa 11key4plc11 user717-key1
+2718 1 ssh-rsa 11key4plc11 user718-key1
+2719 1 ssh-rsa 11key4plc11 user719-key1
+2720 1 ssh-rsa 11key4plc11 user720-key1
+2721 1 ssh-rsa 11key4plc11 user721-key1
+2722 1 ssh-rsa 11key4plc11 user722-key1
+2723 1 ssh-rsa 11key4plc11 user723-key1
+2724 1 ssh-rsa 11key4plc11 user724-key1
+2725 1 ssh-rsa 11key4plc11 user725-key1
+2726 1 ssh-rsa 11key4plc11 user726-key1
+2727 1 ssh-rsa 11key4plc11 user727-key1
+2728 1 ssh-rsa 11key4plc11 user728-key1
+2729 1 ssh-rsa 11key4plc11 user729-key1
+2730 1 ssh-rsa 11key4plc11 user730-key1
+2731 1 ssh-rsa 11key4plc11 user731-key1
+2732 1 ssh-rsa 11key4plc11 user732-key1
+2733 1 ssh-rsa 11key4plc11 user733-key1
+2734 1 ssh-rsa 11key4plc11 user734-key1
+2735 1 ssh-rsa 11key4plc11 user735-key1
+2736 1 ssh-rsa 11key4plc11 user736-key1
+2737 1 ssh-rsa 11key4plc11 user737-key1
+2738 1 ssh-rsa 11key4plc11 user738-key1
+2739 1 ssh-rsa 11key4plc11 user739-key1
+2740 1 ssh-rsa 11key4plc11 user740-key1
+2741 1 ssh-rsa 11key4plc11 user741-key1
+2742 1 ssh-rsa 11key4plc11 user742-key1
+2743 1 ssh-rsa 11key4plc11 user743-key1
+2744 1 ssh-rsa 11key4plc11 user744-key1
+2745 1 ssh-rsa 11key4plc11 user745-key1
+2746 1 ssh-rsa 11key4plc11 user746-key1
+2747 1 ssh-rsa 11key4plc11 user747-key1
+2748 1 ssh-rsa 11key4plc11 user748-key1
+2749 1 ssh-rsa 11key4plc11 user749-key1
+2750 1 ssh-rsa 11key4plc11 user750-key1
+2751 1 ssh-rsa 11key4plc11 user751-key1
+2752 1 ssh-rsa 11key4plc11 user752-key1
+2753 1 ssh-rsa 11key4plc11 user753-key1
+2754 1 ssh-rsa 11key4plc11 user754-key1
+2755 1 ssh-rsa 11key4plc11 user755-key1
+2756 1 ssh-rsa 11key4plc11 user756-key1
+2757 1 ssh-rsa 11key4plc11 user757-key1
+2758 1 ssh-rsa 11key4plc11 user758-key1
+2759 1 ssh-rsa 11key4plc11 user759-key1
+2760 1 ssh-rsa 11key4plc11 user760-key1
+2761 1 ssh-rsa 11key4plc11 user761-key1
+2762 1 ssh-rsa 11key4plc11 user762-key1
+2763 1 ssh-rsa 11key4plc11 user763-key1
+2764 1 ssh-rsa 11key4plc11 user764-key1
+2765 1 ssh-rsa 11key4plc11 user765-key1
+2766 1 ssh-rsa 11key4plc11 user766-key1
+2767 1 ssh-rsa 11key4plc11 user767-key1
+2768 1 ssh-rsa 11key4plc11 user768-key1
+2769 1 ssh-rsa 11key4plc11 user769-key1
+2770 1 ssh-rsa 11key4plc11 user770-key1
+2771 1 ssh-rsa 11key4plc11 user771-key1
+2772 1 ssh-rsa 11key4plc11 user772-key1
+2773 1 ssh-rsa 11key4plc11 user773-key1
+2774 1 ssh-rsa 11key4plc11 user774-key1
+2775 1 ssh-rsa 11key4plc11 user775-key1
+2776 1 ssh-rsa 11key4plc11 user776-key1
+2777 1 ssh-rsa 11key4plc11 user777-key1
+2778 1 ssh-rsa 11key4plc11 user778-key1
+2779 1 ssh-rsa 11key4plc11 user779-key1
+2780 1 ssh-rsa 11key4plc11 user780-key1
+2781 1 ssh-rsa 11key4plc11 user781-key1
+2782 1 ssh-rsa 11key4plc11 user782-key1
+2783 1 ssh-rsa 11key4plc11 user783-key1
+2784 1 ssh-rsa 11key4plc11 user784-key1
+2785 1 ssh-rsa 11key4plc11 user785-key1
+2786 1 ssh-rsa 11key4plc11 user786-key1
+2787 1 ssh-rsa 11key4plc11 user787-key1
+2788 1 ssh-rsa 11key4plc11 user788-key1
+2789 1 ssh-rsa 11key4plc11 user789-key1
+2790 1 ssh-rsa 11key4plc11 user790-key1
+2791 1 ssh-rsa 11key4plc11 user791-key1
+2792 1 ssh-rsa 11key4plc11 user792-key1
+2793 1 ssh-rsa 11key4plc11 user793-key1
+2794 1 ssh-rsa 11key4plc11 user794-key1
+2795 1 ssh-rsa 11key4plc11 user795-key1
+2796 1 ssh-rsa 11key4plc11 user796-key1
+2797 1 ssh-rsa 11key4plc11 user797-key1
+2798 1 ssh-rsa 11key4plc11 user798-key1
+2799 1 ssh-rsa 11key4plc11 user799-key1
+2800 1 ssh-rsa 11key4plc11 user800-key1
+2801 1 ssh-rsa 11key4plc11 user801-key1
+2802 1 ssh-rsa 11key4plc11 user802-key1
+2803 1 ssh-rsa 11key4plc11 user803-key1
+2804 1 ssh-rsa 11key4plc11 user804-key1
+2805 1 ssh-rsa 11key4plc11 user805-key1
+2806 1 ssh-rsa 11key4plc11 user806-key1
+2807 1 ssh-rsa 11key4plc11 user807-key1
+2808 1 ssh-rsa 11key4plc11 user808-key1
+2809 1 ssh-rsa 11key4plc11 user809-key1
+2810 1 ssh-rsa 11key4plc11 user810-key1
+2811 1 ssh-rsa 11key4plc11 user811-key1
+2812 1 ssh-rsa 11key4plc11 user812-key1
+2813 1 ssh-rsa 11key4plc11 user813-key1
+2814 1 ssh-rsa 11key4plc11 user814-key1
+2815 1 ssh-rsa 11key4plc11 user815-key1
+2816 1 ssh-rsa 11key4plc11 user816-key1
+2817 1 ssh-rsa 11key4plc11 user817-key1
+2818 1 ssh-rsa 11key4plc11 user818-key1
+2819 1 ssh-rsa 11key4plc11 user819-key1
+2820 1 ssh-rsa 11key4plc11 user820-key1
+2821 1 ssh-rsa 11key4plc11 user821-key1
+2822 1 ssh-rsa 11key4plc11 user822-key1
+2823 1 ssh-rsa 11key4plc11 user823-key1
+2824 1 ssh-rsa 11key4plc11 user824-key1
+2825 1 ssh-rsa 11key4plc11 user825-key1
+2826 1 ssh-rsa 11key4plc11 user826-key1
+2827 1 ssh-rsa 11key4plc11 user827-key1
+2828 1 ssh-rsa 11key4plc11 user828-key1
+2829 1 ssh-rsa 11key4plc11 user829-key1
+2830 1 ssh-rsa 11key4plc11 user830-key1
+2831 1 ssh-rsa 11key4plc11 user831-key1
+2832 1 ssh-rsa 11key4plc11 user832-key1
+2833 1 ssh-rsa 11key4plc11 user833-key1
+2834 1 ssh-rsa 11key4plc11 user834-key1
+2835 1 ssh-rsa 11key4plc11 user835-key1
+2836 1 ssh-rsa 11key4plc11 user836-key1
+2837 1 ssh-rsa 11key4plc11 user837-key1
+2838 1 ssh-rsa 11key4plc11 user838-key1
+2839 1 ssh-rsa 11key4plc11 user839-key1
+2840 1 ssh-rsa 11key4plc11 user840-key1
+2841 1 ssh-rsa 11key4plc11 user841-key1
+2842 1 ssh-rsa 11key4plc11 user842-key1
+2843 1 ssh-rsa 11key4plc11 user843-key1
+2844 1 ssh-rsa 11key4plc11 user844-key1
+2845 1 ssh-rsa 11key4plc11 user845-key1
+2846 1 ssh-rsa 11key4plc11 user846-key1
+2847 1 ssh-rsa 11key4plc11 user847-key1
+2848 1 ssh-rsa 11key4plc11 user848-key1
+2849 1 ssh-rsa 11key4plc11 user849-key1
+2850 1 ssh-rsa 11key4plc11 user850-key1
+2851 1 ssh-rsa 11key4plc11 user851-key1
+2852 1 ssh-rsa 11key4plc11 user852-key1
+2853 1 ssh-rsa 11key4plc11 user853-key1
+2854 1 ssh-rsa 11key4plc11 user854-key1
+2855 1 ssh-rsa 11key4plc11 user855-key1
+2856 1 ssh-rsa 11key4plc11 user856-key1
+2857 1 ssh-rsa 11key4plc11 user857-key1
+2858 1 ssh-rsa 11key4plc11 user858-key1
+2859 1 ssh-rsa 11key4plc11 user859-key1
+2860 1 ssh-rsa 11key4plc11 user860-key1
+2861 1 ssh-rsa 11key4plc11 user861-key1
+2862 1 ssh-rsa 11key4plc11 user862-key1
+2863 1 ssh-rsa 11key4plc11 user863-key1
+2864 1 ssh-rsa 11key4plc11 user864-key1
+2865 1 ssh-rsa 11key4plc11 user865-key1
+2866 1 ssh-rsa 11key4plc11 user866-key1
+2867 1 ssh-rsa 11key4plc11 user867-key1
+2868 1 ssh-rsa 11key4plc11 user868-key1
+2869 1 ssh-rsa 11key4plc11 user869-key1
+2870 1 ssh-rsa 11key4plc11 user870-key1
+2871 1 ssh-rsa 11key4plc11 user871-key1
+2872 1 ssh-rsa 11key4plc11 user872-key1
+2873 1 ssh-rsa 11key4plc11 user873-key1
+2874 1 ssh-rsa 11key4plc11 user874-key1
+2875 1 ssh-rsa 11key4plc11 user875-key1
+2876 1 ssh-rsa 11key4plc11 user876-key1
+2877 1 ssh-rsa 11key4plc11 user877-key1
+2878 1 ssh-rsa 11key4plc11 user878-key1
+2879 1 ssh-rsa 11key4plc11 user879-key1
+2880 1 ssh-rsa 11key4plc11 user880-key1
+2881 1 ssh-rsa 11key4plc11 user881-key1
+2882 1 ssh-rsa 11key4plc11 user882-key1
+2883 1 ssh-rsa 11key4plc11 user883-key1
+2884 1 ssh-rsa 11key4plc11 user884-key1
+2885 1 ssh-rsa 11key4plc11 user885-key1
+2886 1 ssh-rsa 11key4plc11 user886-key1
+2887 1 ssh-rsa 11key4plc11 user887-key1
+2888 1 ssh-rsa 11key4plc11 user888-key1
+2889 1 ssh-rsa 11key4plc11 user889-key1
+2890 1 ssh-rsa 11key4plc11 user890-key1
+2891 1 ssh-rsa 11key4plc11 user891-key1
+2892 1 ssh-rsa 11key4plc11 user892-key1
+2893 1 ssh-rsa 11key4plc11 user893-key1
+2894 1 ssh-rsa 11key4plc11 user894-key1
+2895 1 ssh-rsa 11key4plc11 user895-key1
+2896 1 ssh-rsa 11key4plc11 user896-key1
+2897 1 ssh-rsa 11key4plc11 user897-key1
+2898 1 ssh-rsa 11key4plc11 user898-key1
+2899 1 ssh-rsa 11key4plc11 user899-key1
+2900 1 ssh-rsa 11key4plc11 user900-key1
+2901 1 ssh-rsa 11key4plc11 user901-key1
+2902 1 ssh-rsa 11key4plc11 user902-key1
+2903 1 ssh-rsa 11key4plc11 user903-key1
+2904 1 ssh-rsa 11key4plc11 user904-key1
+2905 1 ssh-rsa 11key4plc11 user905-key1
+2906 1 ssh-rsa 11key4plc11 user906-key1
+2907 1 ssh-rsa 11key4plc11 user907-key1
+2908 1 ssh-rsa 11key4plc11 user908-key1
+2909 1 ssh-rsa 11key4plc11 user909-key1
+2910 1 ssh-rsa 11key4plc11 user910-key1
+2911 1 ssh-rsa 11key4plc11 user911-key1
+2912 1 ssh-rsa 11key4plc11 user912-key1
+2913 1 ssh-rsa 11key4plc11 user913-key1
+2914 1 ssh-rsa 11key4plc11 user914-key1
+2915 1 ssh-rsa 11key4plc11 user915-key1
+2916 1 ssh-rsa 11key4plc11 user916-key1
+2917 1 ssh-rsa 11key4plc11 user917-key1
+2918 1 ssh-rsa 11key4plc11 user918-key1
+2919 1 ssh-rsa 11key4plc11 user919-key1
+2920 1 ssh-rsa 11key4plc11 user920-key1
+2921 1 ssh-rsa 11key4plc11 user921-key1
+2922 1 ssh-rsa 11key4plc11 user922-key1
+2923 1 ssh-rsa 11key4plc11 user923-key1
+2924 1 ssh-rsa 11key4plc11 user924-key1
+2925 1 ssh-rsa 11key4plc11 user925-key1
+2926 1 ssh-rsa 11key4plc11 user926-key1
+2927 1 ssh-rsa 11key4plc11 user927-key1
+2928 1 ssh-rsa 11key4plc11 user928-key1
+2929 1 ssh-rsa 11key4plc11 user929-key1
+2930 1 ssh-rsa 11key4plc11 user930-key1
+2931 1 ssh-rsa 11key4plc11 user931-key1
+2932 1 ssh-rsa 11key4plc11 user932-key1
+2933 1 ssh-rsa 11key4plc11 user933-key1
+2934 1 ssh-rsa 11key4plc11 user934-key1
+2935 1 ssh-rsa 11key4plc11 user935-key1
+2936 1 ssh-rsa 11key4plc11 user936-key1
+2937 1 ssh-rsa 11key4plc11 user937-key1
+2938 1 ssh-rsa 11key4plc11 user938-key1
+2939 1 ssh-rsa 11key4plc11 user939-key1
+2940 1 ssh-rsa 11key4plc11 user940-key1
+2941 1 ssh-rsa 11key4plc11 user941-key1
+2942 1 ssh-rsa 11key4plc11 user942-key1
+2943 1 ssh-rsa 11key4plc11 user943-key1
+2944 1 ssh-rsa 11key4plc11 user944-key1
+2945 1 ssh-rsa 11key4plc11 user945-key1
+2946 1 ssh-rsa 11key4plc11 user946-key1
+2947 1 ssh-rsa 11key4plc11 user947-key1
+2948 1 ssh-rsa 11key4plc11 user948-key1
+2949 1 ssh-rsa 11key4plc11 user949-key1
+2950 1 ssh-rsa 11key4plc11 user950-key1
+2951 1 ssh-rsa 11key4plc11 user951-key1
+2952 1 ssh-rsa 11key4plc11 user952-key1
+2953 1 ssh-rsa 11key4plc11 user953-key1
+2954 1 ssh-rsa 11key4plc11 user954-key1
+2955 1 ssh-rsa 11key4plc11 user955-key1
+2956 1 ssh-rsa 11key4plc11 user956-key1
+2957 1 ssh-rsa 11key4plc11 user957-key1
+2958 1 ssh-rsa 11key4plc11 user958-key1
+2959 1 ssh-rsa 11key4plc11 user959-key1
+2960 1 ssh-rsa 11key4plc11 user960-key1
+2961 1 ssh-rsa 11key4plc11 user961-key1
+2962 1 ssh-rsa 11key4plc11 user962-key1
+2963 1 ssh-rsa 11key4plc11 user963-key1
+2964 1 ssh-rsa 11key4plc11 user964-key1
+2965 1 ssh-rsa 11key4plc11 user965-key1
+2966 1 ssh-rsa 11key4plc11 user966-key1
+2967 1 ssh-rsa 11key4plc11 user967-key1
+2968 1 ssh-rsa 11key4plc11 user968-key1
+2969 1 ssh-rsa 11key4plc11 user969-key1
+2970 1 ssh-rsa 11key4plc11 user970-key1
+2971 1 ssh-rsa 11key4plc11 user971-key1
+2972 1 ssh-rsa 11key4plc11 user972-key1
+2973 1 ssh-rsa 11key4plc11 user973-key1
+2974 1 ssh-rsa 11key4plc11 user974-key1
+2975 1 ssh-rsa 11key4plc11 user975-key1
+2976 1 ssh-rsa 11key4plc11 user976-key1
+2977 1 ssh-rsa 11key4plc11 user977-key1
+2978 1 ssh-rsa 11key4plc11 user978-key1
+2979 1 ssh-rsa 11key4plc11 user979-key1
+2980 1 ssh-rsa 11key4plc11 user980-key1
+2981 1 ssh-rsa 11key4plc11 user981-key1
+2982 1 ssh-rsa 11key4plc11 user982-key1
+2983 1 ssh-rsa 11key4plc11 user983-key1
+2984 1 ssh-rsa 11key4plc11 user984-key1
+2985 1 ssh-rsa 11key4plc11 user985-key1
+2986 1 ssh-rsa 11key4plc11 user986-key1
+2987 1 ssh-rsa 11key4plc11 user987-key1
+2988 1 ssh-rsa 11key4plc11 user988-key1
+2989 1 ssh-rsa 11key4plc11 user989-key1
+2990 1 ssh-rsa 11key4plc11 user990-key1
+2991 1 ssh-rsa 11key4plc11 user991-key1
+2992 1 ssh-rsa 11key4plc11 user992-key1
+2993 1 ssh-rsa 11key4plc11 user993-key1
+2994 1 ssh-rsa 11key4plc11 user994-key1
+2995 1 ssh-rsa 11key4plc11 user995-key1
+2996 1 ssh-rsa 11key4plc11 user996-key1
+2997 1 ssh-rsa 11key4plc11 user997-key1
+2998 1 ssh-rsa 11key4plc11 user998-key1
+2999 1 ssh-rsa 11key4plc11 user999-key1
+3000 1 ssh-rsa 11key4plc11 user1000-key1
+3001 1 ssh-rsa 11key4plc11 user1001-key1
+3002 1 ssh-rsa 11key4plc11 user1002-key1
+3003 1 ssh-rsa 11key4plc11 user1003-key1
+3004 1 ssh-rsa 11key4plc11 user1004-key1
+3005 1 ssh-rsa 11key4plc11 user1005-key1
+3006 1 ssh-rsa 11key4plc11 user1006-key1
+3007 1 ssh-rsa 11key4plc11 user1007-key1
+3008 1 ssh-rsa 11key4plc11 user1008-key1
+3009 1 ssh-rsa 11key4plc11 user1009-key1
+3010 1 ssh-rsa 11key4plc11 user1010-key1
+3011 1 ssh-rsa 11key4plc11 user1011-key1
+3012 1 ssh-rsa 11key4plc11 user1012-key1
+3013 1 ssh-rsa 11key4plc11 user1013-key1
+3014 1 ssh-rsa 11key4plc11 user1014-key1
+3015 1 ssh-rsa 11key4plc11 user1015-key1
+3016 1 ssh-rsa 11key4plc11 user1016-key1
+3017 1 ssh-rsa 11key4plc11 user1017-key1
+3018 1 ssh-rsa 11key4plc11 user1018-key1
+3019 1 ssh-rsa 11key4plc11 user1019-key1
+3020 1 ssh-rsa 11key4plc11 user1020-key1
+3021 1 ssh-rsa 11key4plc11 user1021-key1
+3022 1 ssh-rsa 11key4plc11 user1022-key1
+3023 1 ssh-rsa 11key4plc11 user1023-key1
+3024 1 ssh-rsa 11key4plc11 user1024-key1
+3025 1 ssh-rsa 11key4plc11 user1025-key1
+3026 1 ssh-rsa 11key4plc11 user1026-key1
+3027 1 ssh-rsa 11key4plc11 user1027-key1
+3028 1 ssh-rsa 11key4plc11 user1028-key1
+3029 1 ssh-rsa 11key4plc11 user1029-key1
+3030 1 ssh-rsa 11key4plc11 user1030-key1
+3031 1 ssh-rsa 11key4plc11 user1031-key1
+3032 1 ssh-rsa 11key4plc11 user1032-key1
+3033 1 ssh-rsa 11key4plc11 user1033-key1
+3034 1 ssh-rsa 11key4plc11 user1034-key1
+3035 1 ssh-rsa 11key4plc11 user1035-key1
+3036 1 ssh-rsa 11key4plc11 user1036-key1
+3037 1 ssh-rsa 11key4plc11 user1037-key1
+3038 1 ssh-rsa 11key4plc11 user1038-key1
+3039 1 ssh-rsa 11key4plc11 user1039-key1
+3040 1 ssh-rsa 11key4plc11 user1040-key1
+3041 1 ssh-rsa 11key4plc11 user1041-key1
+3042 1 ssh-rsa 11key4plc11 user1042-key1
+3043 1 ssh-rsa 11key4plc11 user1043-key1
+3044 1 ssh-rsa 11key4plc11 user1044-key1
+3045 1 ssh-rsa 11key4plc11 user1045-key1
+3046 1 ssh-rsa 11key4plc11 user1046-key1
+3047 1 ssh-rsa 11key4plc11 user1047-key1
+3048 1 ssh-rsa 11key4plc11 user1048-key1
+3049 1 ssh-rsa 11key4plc11 user1049-key1
+3050 1 ssh-rsa 11key4plc11 user1050-key1
+3051 1 ssh-rsa 11key4plc11 user1051-key1
+3052 1 ssh-rsa 11key4plc11 user1052-key1
+3053 1 ssh-rsa 11key4plc11 user1053-key1
+3054 1 ssh-rsa 11key4plc11 user1054-key1
+3055 1 ssh-rsa 11key4plc11 user1055-key1
+3056 1 ssh-rsa 11key4plc11 user1056-key1
+3057 1 ssh-rsa 11key4plc11 user1057-key1
+3058 1 ssh-rsa 11key4plc11 user1058-key1
+3059 1 ssh-rsa 11key4plc11 user1059-key1
+3060 1 ssh-rsa 11key4plc11 user1060-key1
+3061 1 ssh-rsa 11key4plc11 user1061-key1
+3062 1 ssh-rsa 11key4plc11 user1062-key1
+3063 1 ssh-rsa 11key4plc11 user1063-key1
+3064 1 ssh-rsa 11key4plc11 user1064-key1
+3065 1 ssh-rsa 11key4plc11 user1065-key1
+3066 1 ssh-rsa 11key4plc11 user1066-key1
+3067 1 ssh-rsa 11key4plc11 user1067-key1
+3068 1 ssh-rsa 11key4plc11 user1068-key1
+3069 1 ssh-rsa 11key4plc11 user1069-key1
+3070 1 ssh-rsa 11key4plc11 user1070-key1
+3071 1 ssh-rsa 11key4plc11 user1071-key1
+3072 1 ssh-rsa 11key4plc11 user1072-key1
+3073 1 ssh-rsa 11key4plc11 user1073-key1
+3074 1 ssh-rsa 11key4plc11 user1074-key1
+3075 1 ssh-rsa 11key4plc11 user1075-key1
+3076 1 ssh-rsa 11key4plc11 user1076-key1
+3077 1 ssh-rsa 11key4plc11 user1077-key1
+3078 1 ssh-rsa 11key4plc11 user1078-key1
+3079 1 ssh-rsa 11key4plc11 user1079-key1
+3080 1 ssh-rsa 11key4plc11 user1080-key1
+3081 1 ssh-rsa 11key4plc11 user1081-key1
+3082 1 ssh-rsa 11key4plc11 user1082-key1
+3083 1 ssh-rsa 11key4plc11 user1083-key1
+3084 1 ssh-rsa 11key4plc11 user1084-key1
+3085 1 ssh-rsa 11key4plc11 user1085-key1
+3086 1 ssh-rsa 11key4plc11 user1086-key1
+3087 1 ssh-rsa 11key4plc11 user1087-key1
+3088 1 ssh-rsa 11key4plc11 user1088-key1
+3089 1 ssh-rsa 11key4plc11 user1089-key1
+3090 1 ssh-rsa 11key4plc11 user1090-key1
+3091 1 ssh-rsa 11key4plc11 user1091-key1
+3092 1 ssh-rsa 11key4plc11 user1092-key1
+3093 1 ssh-rsa 11key4plc11 user1093-key1
+3094 1 ssh-rsa 11key4plc11 user1094-key1
+3095 1 ssh-rsa 11key4plc11 user1095-key1
+3096 1 ssh-rsa 11key4plc11 user1096-key1
+3097 1 ssh-rsa 11key4plc11 user1097-key1
+3098 1 ssh-rsa 11key4plc11 user1098-key1
+3099 1 ssh-rsa 11key4plc11 user1099-key1
+3100 1 ssh-rsa 11key4plc11 user1100-key1
+3101 1 ssh-rsa 11key4plc11 user1101-key1
+3102 1 ssh-rsa 11key4plc11 user1102-key1
+3103 1 ssh-rsa 11key4plc11 user1103-key1
+3104 1 ssh-rsa 11key4plc11 user1104-key1
+3105 1 ssh-rsa 11key4plc11 user1105-key1
+3106 1 ssh-rsa 11key4plc11 user1106-key1
+3107 1 ssh-rsa 11key4plc11 user1107-key1
+3108 1 ssh-rsa 11key4plc11 user1108-key1
+3109 1 ssh-rsa 11key4plc11 user1109-key1
+3110 1 ssh-rsa 11key4plc11 user1110-key1
+3111 1 ssh-rsa 11key4plc11 user1111-key1
+3112 1 ssh-rsa 11key4plc11 user1112-key1
+3113 1 ssh-rsa 11key4plc11 user1113-key1
+3114 1 ssh-rsa 11key4plc11 user1114-key1
+3115 1 ssh-rsa 11key4plc11 user1115-key1
+3116 1 ssh-rsa 11key4plc11 user1116-key1
+3117 1 ssh-rsa 11key4plc11 user1117-key1
+3118 1 ssh-rsa 11key4plc11 user1118-key1
+3119 1 ssh-rsa 11key4plc11 user1119-key1
+3120 1 ssh-rsa 11key4plc11 user1120-key1
+3121 1 ssh-rsa 11key4plc11 user1121-key1
+3122 1 ssh-rsa 11key4plc11 user1122-key1
+3123 1 ssh-rsa 11key4plc11 user1123-key1
+3124 1 ssh-rsa 11key4plc11 user1124-key1
+3125 1 ssh-rsa 11key4plc11 user1125-key1
+3126 1 ssh-rsa 11key4plc11 user1126-key1
+3127 1 ssh-rsa 11key4plc11 user1127-key1
+3128 1 ssh-rsa 11key4plc11 user1128-key1
+3129 1 ssh-rsa 11key4plc11 user1129-key1
+3130 1 ssh-rsa 11key4plc11 user1130-key1
+3131 1 ssh-rsa 11key4plc11 user1131-key1
+3132 1 ssh-rsa 11key4plc11 user1132-key1
+3133 1 ssh-rsa 11key4plc11 user1133-key1
+3134 1 ssh-rsa 11key4plc11 user1134-key1
+3135 1 ssh-rsa 11key4plc11 user1135-key1
+3136 1 ssh-rsa 11key4plc11 user1136-key1
+3137 1 ssh-rsa 11key4plc11 user1137-key1
+3138 1 ssh-rsa 11key4plc11 user1138-key1
+3139 1 ssh-rsa 11key4plc11 user1139-key1
+3140 1 ssh-rsa 11key4plc11 user1140-key1
+3141 1 ssh-rsa 11key4plc11 user1141-key1
+3142 1 ssh-rsa 11key4plc11 user1142-key1
+3143 1 ssh-rsa 11key4plc11 user1143-key1
+3144 1 ssh-rsa 11key4plc11 user1144-key1
+3145 1 ssh-rsa 11key4plc11 user1145-key1
+3146 1 ssh-rsa 11key4plc11 user1146-key1
+3147 1 ssh-rsa 11key4plc11 user1147-key1
+3148 1 ssh-rsa 11key4plc11 user1148-key1
+3149 1 ssh-rsa 11key4plc11 user1149-key1
+3150 1 ssh-rsa 11key4plc11 user1150-key1
+3151 1 ssh-rsa 11key4plc11 user1151-key1
+3152 1 ssh-rsa 11key4plc11 user1152-key1
+3153 1 ssh-rsa 11key4plc11 user1153-key1
+3154 1 ssh-rsa 11key4plc11 user1154-key1
+3155 1 ssh-rsa 11key4plc11 user1155-key1
+3156 1 ssh-rsa 11key4plc11 user1156-key1
+3157 1 ssh-rsa 11key4plc11 user1157-key1
+3158 1 ssh-rsa 11key4plc11 user1158-key1
+3159 1 ssh-rsa 11key4plc11 user1159-key1
+3160 1 ssh-rsa 11key4plc11 user1160-key1
+3161 1 ssh-rsa 11key4plc11 user1161-key1
+3162 1 ssh-rsa 11key4plc11 user1162-key1
+3163 1 ssh-rsa 11key4plc11 user1163-key1
+3164 1 ssh-rsa 11key4plc11 user1164-key1
+3165 1 ssh-rsa 11key4plc11 user1165-key1
+3166 1 ssh-rsa 11key4plc11 user1166-key1
+3167 1 ssh-rsa 11key4plc11 user1167-key1
+3168 1 ssh-rsa 11key4plc11 user1168-key1
+3169 1 ssh-rsa 11key4plc11 user1169-key1
+3170 1 ssh-rsa 11key4plc11 user1170-key1
+3171 1 ssh-rsa 11key4plc11 user1171-key1
+3172 1 ssh-rsa 11key4plc11 user1172-key1
+3173 1 ssh-rsa 11key4plc11 user1173-key1
+3174 1 ssh-rsa 11key4plc11 user1174-key1
+3175 1 ssh-rsa 11key4plc11 user1175-key1
+3176 1 ssh-rsa 11key4plc11 user1176-key1
+3177 1 ssh-rsa 11key4plc11 user1177-key1
+3178 1 ssh-rsa 11key4plc11 user1178-key1
+3179 1 ssh-rsa 11key4plc11 user1179-key1
+3180 1 ssh-rsa 11key4plc11 user1180-key1
+3181 1 ssh-rsa 11key4plc11 user1181-key1
+3182 1 ssh-rsa 11key4plc11 user1182-key1
+3183 1 ssh-rsa 11key4plc11 user1183-key1
+3184 1 ssh-rsa 11key4plc11 user1184-key1
+3185 1 ssh-rsa 11key4plc11 user1185-key1
+3186 1 ssh-rsa 11key4plc11 user1186-key1
+3187 1 ssh-rsa 11key4plc11 user1187-key1
+3188 1 ssh-rsa 11key4plc11 user1188-key1
+3189 1 ssh-rsa 11key4plc11 user1189-key1
+3190 1 ssh-rsa 11key4plc11 user1190-key1
+3191 1 ssh-rsa 11key4plc11 user1191-key1
+3192 1 ssh-rsa 11key4plc11 user1192-key1
+3193 1 ssh-rsa 11key4plc11 user1193-key1
+3194 1 ssh-rsa 11key4plc11 user1194-key1
+3195 1 ssh-rsa 11key4plc11 user1195-key1
+3196 1 ssh-rsa 11key4plc11 user1196-key1
+3197 1 ssh-rsa 11key4plc11 user1197-key1
+3198 1 ssh-rsa 11key4plc11 user1198-key1
+3199 1 ssh-rsa 11key4plc11 user1199-key1
+3200 1 ssh-rsa 11key4plc11 user1200-key1
+3201 1 ssh-rsa 11key4plc11 user1201-key1
+3202 1 ssh-rsa 11key4plc11 user1202-key1
+3203 1 ssh-rsa 11key4plc11 user1203-key1
+3204 1 ssh-rsa 11key4plc11 user1204-key1
+3205 1 ssh-rsa 11key4plc11 user1205-key1
+3206 1 ssh-rsa 11key4plc11 user1206-key1
+3207 1 ssh-rsa 11key4plc11 user1207-key1
+3208 1 ssh-rsa 11key4plc11 user1208-key1
+3209 1 ssh-rsa 11key4plc11 user1209-key1
+3210 1 ssh-rsa 11key4plc11 user1210-key1
+3211 1 ssh-rsa 11key4plc11 user1211-key1
+3212 1 ssh-rsa 11key4plc11 user1212-key1
+3213 1 ssh-rsa 11key4plc11 user1213-key1
+3214 1 ssh-rsa 11key4plc11 user1214-key1
+3215 1 ssh-rsa 11key4plc11 user1215-key1
+3216 1 ssh-rsa 11key4plc11 user1216-key1
+3217 1 ssh-rsa 11key4plc11 user1217-key1
+3218 1 ssh-rsa 11key4plc11 user1218-key1
+3219 1 ssh-rsa 11key4plc11 user1219-key1
+3220 1 ssh-rsa 11key4plc11 user1220-key1
+3221 1 ssh-rsa 11key4plc11 user1221-key1
+3222 1 ssh-rsa 11key4plc11 user1222-key1
+3223 1 ssh-rsa 11key4plc11 user1223-key1
+3224 1 ssh-rsa 11key4plc11 user1224-key1
+3225 1 ssh-rsa 11key4plc11 user1225-key1
+3226 1 ssh-rsa 11key4plc11 user1226-key1
+3227 1 ssh-rsa 11key4plc11 user1227-key1
+3228 1 ssh-rsa 11key4plc11 user1228-key1
+3229 1 ssh-rsa 11key4plc11 user1229-key1
+3230 1 ssh-rsa 11key4plc11 user1230-key1
+3231 1 ssh-rsa 11key4plc11 user1231-key1
+3232 1 ssh-rsa 11key4plc11 user1232-key1
+3233 1 ssh-rsa 11key4plc11 user1233-key1
+3234 1 ssh-rsa 11key4plc11 user1234-key1
+3235 1 ssh-rsa 11key4plc11 user1235-key1
+3236 1 ssh-rsa 11key4plc11 user1236-key1
+3237 1 ssh-rsa 11key4plc11 user1237-key1
+3238 1 ssh-rsa 11key4plc11 user1238-key1
+3239 1 ssh-rsa 11key4plc11 user1239-key1
+3240 1 ssh-rsa 11key4plc11 user1240-key1
+3241 1 ssh-rsa 11key4plc11 user1241-key1
+3242 1 ssh-rsa 11key4plc11 user1242-key1
+3243 1 ssh-rsa 11key4plc11 user1243-key1
+3244 1 ssh-rsa 11key4plc11 user1244-key1
+3245 1 ssh-rsa 11key4plc11 user1245-key1
+3246 1 ssh-rsa 11key4plc11 user1246-key1
+3247 1 ssh-rsa 11key4plc11 user1247-key1
+3248 1 ssh-rsa 11key4plc11 user1248-key1
+3249 1 ssh-rsa 11key4plc11 user1249-key1
+3250 1 ssh-rsa 11key4plc11 user1250-key1
+3251 1 ssh-rsa 11key4plc11 user1251-key1
+3252 1 ssh-rsa 11key4plc11 user1252-key1
+3253 1 ssh-rsa 11key4plc11 user1253-key1
+3254 1 ssh-rsa 11key4plc11 user1254-key1
+3255 1 ssh-rsa 11key4plc11 user1255-key1
+3256 1 ssh-rsa 11key4plc11 user1256-key1
+3257 1 ssh-rsa 11key4plc11 user1257-key1
+3258 1 ssh-rsa 11key4plc11 user1258-key1
+3259 1 ssh-rsa 11key4plc11 user1259-key1
+3260 1 ssh-rsa 11key4plc11 user1260-key1
+3261 1 ssh-rsa 11key4plc11 user1261-key1
+3262 1 ssh-rsa 11key4plc11 user1262-key1
+3263 1 ssh-rsa 11key4plc11 user1263-key1
+3264 1 ssh-rsa 11key4plc11 user1264-key1
+3265 1 ssh-rsa 11key4plc11 user1265-key1
+3266 1 ssh-rsa 11key4plc11 user1266-key1
+3267 1 ssh-rsa 11key4plc11 user1267-key1
+3268 1 ssh-rsa 11key4plc11 user1268-key1
+3269 1 ssh-rsa 11key4plc11 user1269-key1
+3270 1 ssh-rsa 11key4plc11 user1270-key1
+3271 1 ssh-rsa 11key4plc11 user1271-key1
+3272 1 ssh-rsa 11key4plc11 user1272-key1
+3273 1 ssh-rsa 11key4plc11 user1273-key1
+3274 1 ssh-rsa 11key4plc11 user1274-key1
+3275 1 ssh-rsa 11key4plc11 user1275-key1
+3276 1 ssh-rsa 11key4plc11 user1276-key1
+3277 1 ssh-rsa 11key4plc11 user1277-key1
+3278 1 ssh-rsa 11key4plc11 user1278-key1
+3279 1 ssh-rsa 11key4plc11 user1279-key1
+3280 1 ssh-rsa 11key4plc11 user1280-key1
+3281 1 ssh-rsa 11key4plc11 user1281-key1
+3282 1 ssh-rsa 11key4plc11 user1282-key1
+3283 1 ssh-rsa 11key4plc11 user1283-key1
+3284 1 ssh-rsa 11key4plc11 user1284-key1
+3285 1 ssh-rsa 11key4plc11 user1285-key1
+3286 1 ssh-rsa 11key4plc11 user1286-key1
+3287 1 ssh-rsa 11key4plc11 user1287-key1
+3288 1 ssh-rsa 11key4plc11 user1288-key1
+3289 1 ssh-rsa 11key4plc11 user1289-key1
+3290 1 ssh-rsa 11key4plc11 user1290-key1
+3291 1 ssh-rsa 11key4plc11 user1291-key1
+3292 1 ssh-rsa 11key4plc11 user1292-key1
+3293 1 ssh-rsa 11key4plc11 user1293-key1
+3294 1 ssh-rsa 11key4plc11 user1294-key1
+3295 1 ssh-rsa 11key4plc11 user1295-key1
+3296 1 ssh-rsa 11key4plc11 user1296-key1
+3297 1 ssh-rsa 11key4plc11 user1297-key1
+3298 1 ssh-rsa 11key4plc11 user1298-key1
+3299 1 ssh-rsa 11key4plc11 user1299-key1
+3300 1 ssh-rsa 11key4plc11 user1300-key1
+3301 1 ssh-rsa 11key4plc11 user1301-key1
+3302 1 ssh-rsa 11key4plc11 user1302-key1
+3303 1 ssh-rsa 11key4plc11 user1303-key1
+3304 1 ssh-rsa 11key4plc11 user1304-key1
+3305 1 ssh-rsa 11key4plc11 user1305-key1
+3306 1 ssh-rsa 11key4plc11 user1306-key1
+3307 1 ssh-rsa 11key4plc11 user1307-key1
+3308 1 ssh-rsa 11key4plc11 user1308-key1
+3309 1 ssh-rsa 11key4plc11 user1309-key1
+3310 1 ssh-rsa 11key4plc11 user1310-key1
+3311 1 ssh-rsa 11key4plc11 user1311-key1
+3312 1 ssh-rsa 11key4plc11 user1312-key1
+3313 1 ssh-rsa 11key4plc11 user1313-key1
+3314 1 ssh-rsa 11key4plc11 user1314-key1
+3315 1 ssh-rsa 11key4plc11 user1315-key1
+3316 1 ssh-rsa 11key4plc11 user1316-key1
+3317 1 ssh-rsa 11key4plc11 user1317-key1
+3318 1 ssh-rsa 11key4plc11 user1318-key1
+3319 1 ssh-rsa 11key4plc11 user1319-key1
+3320 1 ssh-rsa 11key4plc11 user1320-key1
+3321 1 ssh-rsa 11key4plc11 user1321-key1
+3322 1 ssh-rsa 11key4plc11 user1322-key1
+3323 1 ssh-rsa 11key4plc11 user1323-key1
+3324 1 ssh-rsa 11key4plc11 user1324-key1
+3325 1 ssh-rsa 11key4plc11 user1325-key1
+3326 1 ssh-rsa 11key4plc11 user1326-key1
+3327 1 ssh-rsa 11key4plc11 user1327-key1
+3328 1 ssh-rsa 11key4plc11 user1328-key1
+3329 1 ssh-rsa 11key4plc11 user1329-key1
+3330 1 ssh-rsa 11key4plc11 user1330-key1
+3331 1 ssh-rsa 11key4plc11 user1331-key1
+3332 1 ssh-rsa 11key4plc11 user1332-key1
+3333 1 ssh-rsa 11key4plc11 user1333-key1
+3334 1 ssh-rsa 11key4plc11 user1334-key1
+3335 1 ssh-rsa 11key4plc11 user1335-key1
+3336 1 ssh-rsa 11key4plc11 user1336-key1
+3337 1 ssh-rsa 11key4plc11 user1337-key1
+3338 1 ssh-rsa 11key4plc11 user1338-key1
+3339 1 ssh-rsa 11key4plc11 user1339-key1
+3340 1 ssh-rsa 11key4plc11 user1340-key1
+3341 1 ssh-rsa 11key4plc11 user1341-key1
+3342 1 ssh-rsa 11key4plc11 user1342-key1
+3343 1 ssh-rsa 11key4plc11 user1343-key1
+3344 1 ssh-rsa 11key4plc11 user1344-key1
+3345 1 ssh-rsa 11key4plc11 user1345-key1
+3346 1 ssh-rsa 11key4plc11 user1346-key1
+3347 1 ssh-rsa 11key4plc11 user1347-key1
+3348 1 ssh-rsa 11key4plc11 user1348-key1
+3349 1 ssh-rsa 11key4plc11 user1349-key1
+3350 1 ssh-rsa 11key4plc11 user1350-key1
+3351 1 ssh-rsa 11key4plc11 user1351-key1
+3352 1 ssh-rsa 11key4plc11 user1352-key1
+3353 1 ssh-rsa 11key4plc11 user1353-key1
+3354 1 ssh-rsa 11key4plc11 user1354-key1
+3355 1 ssh-rsa 11key4plc11 user1355-key1
+3356 1 ssh-rsa 11key4plc11 user1356-key1
+3357 1 ssh-rsa 11key4plc11 user1357-key1
+3358 1 ssh-rsa 11key4plc11 user1358-key1
+3359 1 ssh-rsa 11key4plc11 user1359-key1
+3360 1 ssh-rsa 11key4plc11 user1360-key1
+3361 1 ssh-rsa 11key4plc11 user1361-key1
+3362 1 ssh-rsa 11key4plc11 user1362-key1
+3363 1 ssh-rsa 11key4plc11 user1363-key1
+3364 1 ssh-rsa 11key4plc11 user1364-key1
+3365 1 ssh-rsa 11key4plc11 user1365-key1
+3366 1 ssh-rsa 11key4plc11 user1366-key1
+3367 1 ssh-rsa 11key4plc11 user1367-key1
+3368 1 ssh-rsa 11key4plc11 user1368-key1
+3369 1 ssh-rsa 11key4plc11 user1369-key1
+3370 1 ssh-rsa 11key4plc11 user1370-key1
+3371 1 ssh-rsa 11key4plc11 user1371-key1
+3372 1 ssh-rsa 11key4plc11 user1372-key1
+3373 1 ssh-rsa 11key4plc11 user1373-key1
+3374 1 ssh-rsa 11key4plc11 user1374-key1
+3375 1 ssh-rsa 11key4plc11 user1375-key1
+3376 1 ssh-rsa 11key4plc11 user1376-key1
+3377 1 ssh-rsa 11key4plc11 user1377-key1
+3378 1 ssh-rsa 11key4plc11 user1378-key1
+3379 1 ssh-rsa 11key4plc11 user1379-key1
+3380 1 ssh-rsa 11key4plc11 user1380-key1
+3381 1 ssh-rsa 11key4plc11 user1381-key1
+3382 1 ssh-rsa 11key4plc11 user1382-key1
+3383 1 ssh-rsa 11key4plc11 user1383-key1
+3384 1 ssh-rsa 11key4plc11 user1384-key1
+3385 1 ssh-rsa 11key4plc11 user1385-key1
+3386 1 ssh-rsa 11key4plc11 user1386-key1
+3387 1 ssh-rsa 11key4plc11 user1387-key1
+3388 1 ssh-rsa 11key4plc11 user1388-key1
+3389 1 ssh-rsa 11key4plc11 user1389-key1
+3390 1 ssh-rsa 11key4plc11 user1390-key1
+3391 1 ssh-rsa 11key4plc11 user1391-key1
+3392 1 ssh-rsa 11key4plc11 user1392-key1
+3393 1 ssh-rsa 11key4plc11 user1393-key1
+3394 1 ssh-rsa 11key4plc11 user1394-key1
+3395 1 ssh-rsa 11key4plc11 user1395-key1
+3396 1 ssh-rsa 11key4plc11 user1396-key1
+3397 1 ssh-rsa 11key4plc11 user1397-key1
+3398 1 ssh-rsa 11key4plc11 user1398-key1
+3399 1 ssh-rsa 11key4plc11 user1399-key1
+3400 1 ssh-rsa 11key4plc11 user1400-key1
+3401 1 ssh-rsa 11key4plc11 user1401-key1
+3402 1 ssh-rsa 11key4plc11 user1402-key1
+3403 1 ssh-rsa 11key4plc11 user1403-key1
+3404 1 ssh-rsa 11key4plc11 user1404-key1
+3405 1 ssh-rsa 11key4plc11 user1405-key1
+3406 1 ssh-rsa 11key4plc11 user1406-key1
+3407 1 ssh-rsa 11key4plc11 user1407-key1
+3408 1 ssh-rsa 11key4plc11 user1408-key1
+3409 1 ssh-rsa 11key4plc11 user1409-key1
+3410 1 ssh-rsa 11key4plc11 user1410-key1
+3411 1 ssh-rsa 11key4plc11 user1411-key1
+3412 1 ssh-rsa 11key4plc11 user1412-key1
+3413 1 ssh-rsa 11key4plc11 user1413-key1
+3414 1 ssh-rsa 11key4plc11 user1414-key1
+3415 1 ssh-rsa 11key4plc11 user1415-key1
+3416 1 ssh-rsa 11key4plc11 user1416-key1
+3417 1 ssh-rsa 11key4plc11 user1417-key1
+3418 1 ssh-rsa 11key4plc11 user1418-key1
+3419 1 ssh-rsa 11key4plc11 user1419-key1
+3420 1 ssh-rsa 11key4plc11 user1420-key1
+3421 1 ssh-rsa 11key4plc11 user1421-key1
+3422 1 ssh-rsa 11key4plc11 user1422-key1
+3423 1 ssh-rsa 11key4plc11 user1423-key1
+3424 1 ssh-rsa 11key4plc11 user1424-key1
+3425 1 ssh-rsa 11key4plc11 user1425-key1
+3426 1 ssh-rsa 11key4plc11 user1426-key1
+3427 1 ssh-rsa 11key4plc11 user1427-key1
+3428 1 ssh-rsa 11key4plc11 user1428-key1
+3429 1 ssh-rsa 11key4plc11 user1429-key1
+3430 1 ssh-rsa 11key4plc11 user1430-key1
+3431 1 ssh-rsa 11key4plc11 user1431-key1
+3432 1 ssh-rsa 11key4plc11 user1432-key1
+3433 1 ssh-rsa 11key4plc11 user1433-key1
+3434 1 ssh-rsa 11key4plc11 user1434-key1
+3435 1 ssh-rsa 11key4plc11 user1435-key1
+3436 1 ssh-rsa 11key4plc11 user1436-key1
+3437 1 ssh-rsa 11key4plc11 user1437-key1
+3438 1 ssh-rsa 11key4plc11 user1438-key1
+3439 1 ssh-rsa 11key4plc11 user1439-key1
+3440 1 ssh-rsa 11key4plc11 user1440-key1
+3441 1 ssh-rsa 11key4plc11 user1441-key1
+3442 1 ssh-rsa 11key4plc11 user1442-key1
+3443 1 ssh-rsa 11key4plc11 user1443-key1
+3444 1 ssh-rsa 11key4plc11 user1444-key1
+3445 1 ssh-rsa 11key4plc11 user1445-key1
+3446 1 ssh-rsa 11key4plc11 user1446-key1
+3447 1 ssh-rsa 11key4plc11 user1447-key1
+3448 1 ssh-rsa 11key4plc11 user1448-key1
+3449 1 ssh-rsa 11key4plc11 user1449-key1
+3450 1 ssh-rsa 11key4plc11 user1450-key1
+3451 1 ssh-rsa 11key4plc11 user1451-key1
+3452 1 ssh-rsa 11key4plc11 user1452-key1
+3453 1 ssh-rsa 11key4plc11 user1453-key1
+3454 1 ssh-rsa 11key4plc11 user1454-key1
+3455 1 ssh-rsa 11key4plc11 user1455-key1
+3456 1 ssh-rsa 11key4plc11 user1456-key1
+3457 1 ssh-rsa 11key4plc11 user1457-key1
+3458 1 ssh-rsa 11key4plc11 user1458-key1
+3459 1 ssh-rsa 11key4plc11 user1459-key1
+3460 1 ssh-rsa 11key4plc11 user1460-key1
+3461 1 ssh-rsa 11key4plc11 user1461-key1
+3462 1 ssh-rsa 11key4plc11 user1462-key1
+3463 1 ssh-rsa 11key4plc11 user1463-key1
+3464 1 ssh-rsa 11key4plc11 user1464-key1
+3465 1 ssh-rsa 11key4plc11 user1465-key1
+3466 1 ssh-rsa 11key4plc11 user1466-key1
+3467 1 ssh-rsa 11key4plc11 user1467-key1
+3468 1 ssh-rsa 11key4plc11 user1468-key1
+3469 1 ssh-rsa 11key4plc11 user1469-key1
+3470 1 ssh-rsa 11key4plc11 user1470-key1
+3471 1 ssh-rsa 11key4plc11 user1471-key1
+3472 1 ssh-rsa 11key4plc11 user1472-key1
+3473 1 ssh-rsa 11key4plc11 user1473-key1
+3474 1 ssh-rsa 11key4plc11 user1474-key1
+3475 1 ssh-rsa 11key4plc11 user1475-key1
+3476 1 ssh-rsa 11key4plc11 user1476-key1
+3477 1 ssh-rsa 11key4plc11 user1477-key1
+3478 1 ssh-rsa 11key4plc11 user1478-key1
+3479 1 ssh-rsa 11key4plc11 user1479-key1
+3480 1 ssh-rsa 11key4plc11 user1480-key1
+3481 1 ssh-rsa 11key4plc11 user1481-key1
+3482 1 ssh-rsa 11key4plc11 user1482-key1
+3483 1 ssh-rsa 11key4plc11 user1483-key1
+3484 1 ssh-rsa 11key4plc11 user1484-key1
+3485 1 ssh-rsa 11key4plc11 user1485-key1
+3486 1 ssh-rsa 11key4plc11 user1486-key1
+3487 1 ssh-rsa 11key4plc11 user1487-key1
+3488 1 ssh-rsa 11key4plc11 user1488-key1
+3489 1 ssh-rsa 11key4plc11 user1489-key1
+3490 1 ssh-rsa 11key4plc11 user1490-key1
+3491 1 ssh-rsa 11key4plc11 user1491-key1
+3492 1 ssh-rsa 11key4plc11 user1492-key1
+3493 1 ssh-rsa 11key4plc11 user1493-key1
+3494 1 ssh-rsa 11key4plc11 user1494-key1
+3495 1 ssh-rsa 11key4plc11 user1495-key1
+3496 1 ssh-rsa 11key4plc11 user1496-key1
+3497 1 ssh-rsa 11key4plc11 user1497-key1
+3498 1 ssh-rsa 11key4plc11 user1498-key1
+3499 1 ssh-rsa 11key4plc11 user1499-key1
+3500 1 ssh-rsa 11key4plc11 user1500-key1
+3501 1 ssh-rsa 11key4plc11 user1501-key1
+3502 1 ssh-rsa 11key4plc11 user1502-key1
+3503 1 ssh-rsa 11key4plc11 user1503-key1
+3504 1 ssh-rsa 11key4plc11 user1504-key1
+3505 1 ssh-rsa 11key4plc11 user1505-key1
+3506 1 ssh-rsa 11key4plc11 user1506-key1
+3507 1 ssh-rsa 11key4plc11 user1507-key1
+3508 1 ssh-rsa 11key4plc11 user1508-key1
+3509 1 ssh-rsa 11key4plc11 user1509-key1
+3510 1 ssh-rsa 11key4plc11 user1510-key1
+3511 1 ssh-rsa 11key4plc11 user1511-key1
+3512 1 ssh-rsa 11key4plc11 user1512-key1
+3513 1 ssh-rsa 11key4plc11 user1513-key1
+3514 1 ssh-rsa 11key4plc11 user1514-key1
+3515 1 ssh-rsa 11key4plc11 user1515-key1
+3516 1 ssh-rsa 11key4plc11 user1516-key1
+3517 1 ssh-rsa 11key4plc11 user1517-key1
+3518 1 ssh-rsa 11key4plc11 user1518-key1
+3519 1 ssh-rsa 11key4plc11 user1519-key1
+3520 1 ssh-rsa 11key4plc11 user1520-key1
+3521 1 ssh-rsa 11key4plc11 user1521-key1
+3522 1 ssh-rsa 11key4plc11 user1522-key1
+3523 1 ssh-rsa 11key4plc11 user1523-key1
+3524 1 ssh-rsa 11key4plc11 user1524-key1
+3525 1 ssh-rsa 11key4plc11 user1525-key1
+3526 1 ssh-rsa 11key4plc11 user1526-key1
+3527 1 ssh-rsa 11key4plc11 user1527-key1
+3528 1 ssh-rsa 11key4plc11 user1528-key1
+3529 1 ssh-rsa 11key4plc11 user1529-key1
+3530 1 ssh-rsa 11key4plc11 user1530-key1
+3531 1 ssh-rsa 11key4plc11 user1531-key1
+3532 1 ssh-rsa 11key4plc11 user1532-key1
+3533 1 ssh-rsa 11key4plc11 user1533-key1
+3534 1 ssh-rsa 11key4plc11 user1534-key1
+3535 1 ssh-rsa 11key4plc11 user1535-key1
+3536 1 ssh-rsa 11key4plc11 user1536-key1
+3537 1 ssh-rsa 11key4plc11 user1537-key1
+3538 1 ssh-rsa 11key4plc11 user1538-key1
+3539 1 ssh-rsa 11key4plc11 user1539-key1
+3540 1 ssh-rsa 11key4plc11 user1540-key1
+3541 1 ssh-rsa 11key4plc11 user1541-key1
+3542 1 ssh-rsa 11key4plc11 user1542-key1
+3543 1 ssh-rsa 11key4plc11 user1543-key1
+3544 1 ssh-rsa 11key4plc11 user1544-key1
+3545 1 ssh-rsa 11key4plc11 user1545-key1
+3546 1 ssh-rsa 11key4plc11 user1546-key1
+3547 1 ssh-rsa 11key4plc11 user1547-key1
+3548 1 ssh-rsa 11key4plc11 user1548-key1
+3549 1 ssh-rsa 11key4plc11 user1549-key1
+3550 1 ssh-rsa 11key4plc11 user1550-key1
+3551 1 ssh-rsa 11key4plc11 user1551-key1
+3552 1 ssh-rsa 11key4plc11 user1552-key1
+3553 1 ssh-rsa 11key4plc11 user1553-key1
+3554 1 ssh-rsa 11key4plc11 user1554-key1
+3555 1 ssh-rsa 11key4plc11 user1555-key1
+3556 1 ssh-rsa 11key4plc11 user1556-key1
+3557 1 ssh-rsa 11key4plc11 user1557-key1
+3558 1 ssh-rsa 11key4plc11 user1558-key1
+3559 1 ssh-rsa 11key4plc11 user1559-key1
+3560 1 ssh-rsa 11key4plc11 user1560-key1
+3561 1 ssh-rsa 11key4plc11 user1561-key1
+3562 1 ssh-rsa 11key4plc11 user1562-key1
+3563 1 ssh-rsa 11key4plc11 user1563-key1
+3564 1 ssh-rsa 11key4plc11 user1564-key1
+3565 1 ssh-rsa 11key4plc11 user1565-key1
+3566 1 ssh-rsa 11key4plc11 user1566-key1
+3567 1 ssh-rsa 11key4plc11 user1567-key1
+3568 1 ssh-rsa 11key4plc11 user1568-key1
+3569 1 ssh-rsa 11key4plc11 user1569-key1
+3570 1 ssh-rsa 11key4plc11 user1570-key1
+3571 1 ssh-rsa 11key4plc11 user1571-key1
+3572 1 ssh-rsa 11key4plc11 user1572-key1
+3573 1 ssh-rsa 11key4plc11 user1573-key1
+3574 1 ssh-rsa 11key4plc11 user1574-key1
+3575 1 ssh-rsa 11key4plc11 user1575-key1
+3576 1 ssh-rsa 11key4plc11 user1576-key1
+3577 1 ssh-rsa 11key4plc11 user1577-key1
+3578 1 ssh-rsa 11key4plc11 user1578-key1
+3579 1 ssh-rsa 11key4plc11 user1579-key1
+3580 1 ssh-rsa 11key4plc11 user1580-key1
+3581 1 ssh-rsa 11key4plc11 user1581-key1
+3582 1 ssh-rsa 11key4plc11 user1582-key1
+3583 1 ssh-rsa 11key4plc11 user1583-key1
+3584 1 ssh-rsa 11key4plc11 user1584-key1
+3585 1 ssh-rsa 11key4plc11 user1585-key1
+3586 1 ssh-rsa 11key4plc11 user1586-key1
+3587 1 ssh-rsa 11key4plc11 user1587-key1
+3588 1 ssh-rsa 11key4plc11 user1588-key1
+3589 1 ssh-rsa 11key4plc11 user1589-key1
+3590 1 ssh-rsa 11key4plc11 user1590-key1
+3591 1 ssh-rsa 11key4plc11 user1591-key1
+3592 1 ssh-rsa 11key4plc11 user1592-key1
+3593 1 ssh-rsa 11key4plc11 user1593-key1
+3594 1 ssh-rsa 11key4plc11 user1594-key1
+3595 1 ssh-rsa 11key4plc11 user1595-key1
+3596 1 ssh-rsa 11key4plc11 user1596-key1
+3597 1 ssh-rsa 11key4plc11 user1597-key1
+3598 1 ssh-rsa 11key4plc11 user1598-key1
+3599 1 ssh-rsa 11key4plc11 user1599-key1
+3600 1 ssh-rsa 11key4plc11 user1600-key1
+3601 1 ssh-rsa 11key4plc11 user1601-key1
+3602 1 ssh-rsa 11key4plc11 user1602-key1
+3603 1 ssh-rsa 11key4plc11 user1603-key1
+3604 1 ssh-rsa 11key4plc11 user1604-key1
+3605 1 ssh-rsa 11key4plc11 user1605-key1
+3606 1 ssh-rsa 11key4plc11 user1606-key1
+3607 1 ssh-rsa 11key4plc11 user1607-key1
+3608 1 ssh-rsa 11key4plc11 user1608-key1
+3609 1 ssh-rsa 11key4plc11 user1609-key1
+3610 1 ssh-rsa 11key4plc11 user1610-key1
+3611 1 ssh-rsa 11key4plc11 user1611-key1
+3612 1 ssh-rsa 11key4plc11 user1612-key1
+3613 1 ssh-rsa 11key4plc11 user1613-key1
+3614 1 ssh-rsa 11key4plc11 user1614-key1
+3615 1 ssh-rsa 11key4plc11 user1615-key1
+3616 1 ssh-rsa 11key4plc11 user1616-key1
+3617 1 ssh-rsa 11key4plc11 user1617-key1
+3618 1 ssh-rsa 11key4plc11 user1618-key1
+3619 1 ssh-rsa 11key4plc11 user1619-key1
+3620 1 ssh-rsa 11key4plc11 user1620-key1
+3621 1 ssh-rsa 11key4plc11 user1621-key1
+3622 1 ssh-rsa 11key4plc11 user1622-key1
+3623 1 ssh-rsa 11key4plc11 user1623-key1
+3624 1 ssh-rsa 11key4plc11 user1624-key1
+3625 1 ssh-rsa 11key4plc11 user1625-key1
+3626 1 ssh-rsa 11key4plc11 user1626-key1
+3627 1 ssh-rsa 11key4plc11 user1627-key1
+3628 1 ssh-rsa 11key4plc11 user1628-key1
+3629 1 ssh-rsa 11key4plc11 user1629-key1
+3630 1 ssh-rsa 11key4plc11 user1630-key1
+3631 1 ssh-rsa 11key4plc11 user1631-key1
+3632 1 ssh-rsa 11key4plc11 user1632-key1
+3633 1 ssh-rsa 11key4plc11 user1633-key1
+3634 1 ssh-rsa 11key4plc11 user1634-key1
+3635 1 ssh-rsa 11key4plc11 user1635-key1
+3636 1 ssh-rsa 11key4plc11 user1636-key1
+3637 1 ssh-rsa 11key4plc11 user1637-key1
+3638 1 ssh-rsa 11key4plc11 user1638-key1
+3639 1 ssh-rsa 11key4plc11 user1639-key1
+3640 1 ssh-rsa 11key4plc11 user1640-key1
+3641 1 ssh-rsa 11key4plc11 user1641-key1
+3642 1 ssh-rsa 11key4plc11 user1642-key1
+3643 1 ssh-rsa 11key4plc11 user1643-key1
+3644 1 ssh-rsa 11key4plc11 user1644-key1
+3645 1 ssh-rsa 11key4plc11 user1645-key1
+3646 1 ssh-rsa 11key4plc11 user1646-key1
+3647 1 ssh-rsa 11key4plc11 user1647-key1
+3648 1 ssh-rsa 11key4plc11 user1648-key1
+3649 1 ssh-rsa 11key4plc11 user1649-key1
+3650 1 ssh-rsa 11key4plc11 user1650-key1
+3651 1 ssh-rsa 11key4plc11 user1651-key1
+3652 1 ssh-rsa 11key4plc11 user1652-key1
+3653 1 ssh-rsa 11key4plc11 user1653-key1
+3654 1 ssh-rsa 11key4plc11 user1654-key1
+3655 1 ssh-rsa 11key4plc11 user1655-key1
+3656 1 ssh-rsa 11key4plc11 user1656-key1
+3657 1 ssh-rsa 11key4plc11 user1657-key1
+3658 1 ssh-rsa 11key4plc11 user1658-key1
+3659 1 ssh-rsa 11key4plc11 user1659-key1
+3660 1 ssh-rsa 11key4plc11 user1660-key1
+3661 1 ssh-rsa 11key4plc11 user1661-key1
+3662 1 ssh-rsa 11key4plc11 user1662-key1
+3663 1 ssh-rsa 11key4plc11 user1663-key1
+3664 1 ssh-rsa 11key4plc11 user1664-key1
+3665 1 ssh-rsa 11key4plc11 user1665-key1
+3666 1 ssh-rsa 11key4plc11 user1666-key1
+3667 1 ssh-rsa 11key4plc11 user1667-key1
+3668 1 ssh-rsa 11key4plc11 user1668-key1
+3669 1 ssh-rsa 11key4plc11 user1669-key1
+3670 1 ssh-rsa 11key4plc11 user1670-key1
+3671 1 ssh-rsa 11key4plc11 user1671-key1
+3672 1 ssh-rsa 11key4plc11 user1672-key1
+3673 1 ssh-rsa 11key4plc11 user1673-key1
+3674 1 ssh-rsa 11key4plc11 user1674-key1
+3675 1 ssh-rsa 11key4plc11 user1675-key1
+3676 1 ssh-rsa 11key4plc11 user1676-key1
+3677 1 ssh-rsa 11key4plc11 user1677-key1
+3678 1 ssh-rsa 11key4plc11 user1678-key1
+3679 1 ssh-rsa 11key4plc11 user1679-key1
+3680 1 ssh-rsa 11key4plc11 user1680-key1
+3681 1 ssh-rsa 11key4plc11 user1681-key1
+3682 1 ssh-rsa 11key4plc11 user1682-key1
+3683 1 ssh-rsa 11key4plc11 user1683-key1
+3684 1 ssh-rsa 11key4plc11 user1684-key1
+3685 1 ssh-rsa 11key4plc11 user1685-key1
+3686 1 ssh-rsa 11key4plc11 user1686-key1
+3687 1 ssh-rsa 11key4plc11 user1687-key1
+3688 1 ssh-rsa 11key4plc11 user1688-key1
+3689 1 ssh-rsa 11key4plc11 user1689-key1
+3690 1 ssh-rsa 11key4plc11 user1690-key1
+3691 1 ssh-rsa 11key4plc11 user1691-key1
+3692 1 ssh-rsa 11key4plc11 user1692-key1
+3693 1 ssh-rsa 11key4plc11 user1693-key1
+3694 1 ssh-rsa 11key4plc11 user1694-key1
+3695 1 ssh-rsa 11key4plc11 user1695-key1
+3696 1 ssh-rsa 11key4plc11 user1696-key1
+3697 1 ssh-rsa 11key4plc11 user1697-key1
+3698 1 ssh-rsa 11key4plc11 user1698-key1
+3699 1 ssh-rsa 11key4plc11 user1699-key1
+3700 1 ssh-rsa 11key4plc11 user1700-key1
+3701 1 ssh-rsa 11key4plc11 user1701-key1
+3702 1 ssh-rsa 11key4plc11 user1702-key1
+3703 1 ssh-rsa 11key4plc11 user1703-key1
+3704 1 ssh-rsa 11key4plc11 user1704-key1
+3705 1 ssh-rsa 11key4plc11 user1705-key1
+3706 1 ssh-rsa 11key4plc11 user1706-key1
+3707 1 ssh-rsa 11key4plc11 user1707-key1
+3708 1 ssh-rsa 11key4plc11 user1708-key1
+3709 1 ssh-rsa 11key4plc11 user1709-key1
+3710 1 ssh-rsa 11key4plc11 user1710-key1
+3711 1 ssh-rsa 11key4plc11 user1711-key1
+3712 1 ssh-rsa 11key4plc11 user1712-key1
+3713 1 ssh-rsa 11key4plc11 user1713-key1
+3714 1 ssh-rsa 11key4plc11 user1714-key1
+3715 1 ssh-rsa 11key4plc11 user1715-key1
+3716 1 ssh-rsa 11key4plc11 user1716-key1
+3717 1 ssh-rsa 11key4plc11 user1717-key1
+3718 1 ssh-rsa 11key4plc11 user1718-key1
+3719 1 ssh-rsa 11key4plc11 user1719-key1
+3720 1 ssh-rsa 11key4plc11 user1720-key1
+3721 1 ssh-rsa 11key4plc11 user1721-key1
+3722 1 ssh-rsa 11key4plc11 user1722-key1
+3723 1 ssh-rsa 11key4plc11 user1723-key1
+3724 1 ssh-rsa 11key4plc11 user1724-key1
+3725 1 ssh-rsa 11key4plc11 user1725-key1
+3726 1 ssh-rsa 11key4plc11 user1726-key1
+3727 1 ssh-rsa 11key4plc11 user1727-key1
+3728 1 ssh-rsa 11key4plc11 user1728-key1
+3729 1 ssh-rsa 11key4plc11 user1729-key1
+3730 1 ssh-rsa 11key4plc11 user1730-key1
+3731 1 ssh-rsa 11key4plc11 user1731-key1
+3732 1 ssh-rsa 11key4plc11 user1732-key1
+3733 1 ssh-rsa 11key4plc11 user1733-key1
+3734 1 ssh-rsa 11key4plc11 user1734-key1
+3735 1 ssh-rsa 11key4plc11 user1735-key1
+3736 1 ssh-rsa 11key4plc11 user1736-key1
+3737 1 ssh-rsa 11key4plc11 user1737-key1
+3738 1 ssh-rsa 11key4plc11 user1738-key1
+3739 1 ssh-rsa 11key4plc11 user1739-key1
+3740 1 ssh-rsa 11key4plc11 user1740-key1
+3741 1 ssh-rsa 11key4plc11 user1741-key1
+3742 1 ssh-rsa 11key4plc11 user1742-key1
+3743 1 ssh-rsa 11key4plc11 user1743-key1
+3744 1 ssh-rsa 11key4plc11 user1744-key1
+3745 1 ssh-rsa 11key4plc11 user1745-key1
+3746 1 ssh-rsa 11key4plc11 user1746-key1
+3747 1 ssh-rsa 11key4plc11 user1747-key1
+3748 1 ssh-rsa 11key4plc11 user1748-key1
+3749 1 ssh-rsa 11key4plc11 user1749-key1
+3750 1 ssh-rsa 11key4plc11 user1750-key1
+3751 1 ssh-rsa 11key4plc11 user1751-key1
+3752 1 ssh-rsa 11key4plc11 user1752-key1
+3753 1 ssh-rsa 11key4plc11 user1753-key1
+3754 1 ssh-rsa 11key4plc11 user1754-key1
+3755 1 ssh-rsa 11key4plc11 user1755-key1
+3756 1 ssh-rsa 11key4plc11 user1756-key1
+3757 1 ssh-rsa 11key4plc11 user1757-key1
+3758 1 ssh-rsa 11key4plc11 user1758-key1
+3759 1 ssh-rsa 11key4plc11 user1759-key1
+3760 1 ssh-rsa 11key4plc11 user1760-key1
+3761 1 ssh-rsa 11key4plc11 user1761-key1
+3762 1 ssh-rsa 11key4plc11 user1762-key1
+3763 1 ssh-rsa 11key4plc11 user1763-key1
+3764 1 ssh-rsa 11key4plc11 user1764-key1
+3765 1 ssh-rsa 11key4plc11 user1765-key1
+3766 1 ssh-rsa 11key4plc11 user1766-key1
+3767 1 ssh-rsa 11key4plc11 user1767-key1
+3768 1 ssh-rsa 11key4plc11 user1768-key1
+3769 1 ssh-rsa 11key4plc11 user1769-key1
+3770 1 ssh-rsa 11key4plc11 user1770-key1
+3771 1 ssh-rsa 11key4plc11 user1771-key1
+3772 1 ssh-rsa 11key4plc11 user1772-key1
+3773 1 ssh-rsa 11key4plc11 user1773-key1
+3774 1 ssh-rsa 11key4plc11 user1774-key1
+3775 1 ssh-rsa 11key4plc11 user1775-key1
+3776 1 ssh-rsa 11key4plc11 user1776-key1
+3777 1 ssh-rsa 11key4plc11 user1777-key1
+3778 1 ssh-rsa 11key4plc11 user1778-key1
+3779 1 ssh-rsa 11key4plc11 user1779-key1
+3780 1 ssh-rsa 11key4plc11 user1780-key1
+3781 1 ssh-rsa 11key4plc11 user1781-key1
+3782 1 ssh-rsa 11key4plc11 user1782-key1
+3783 1 ssh-rsa 11key4plc11 user1783-key1
+3784 1 ssh-rsa 11key4plc11 user1784-key1
+3785 1 ssh-rsa 11key4plc11 user1785-key1
+3786 1 ssh-rsa 11key4plc11 user1786-key1
+3787 1 ssh-rsa 11key4plc11 user1787-key1
+3788 1 ssh-rsa 11key4plc11 user1788-key1
+3789 1 ssh-rsa 11key4plc11 user1789-key1
+3790 1 ssh-rsa 11key4plc11 user1790-key1
+3791 1 ssh-rsa 11key4plc11 user1791-key1
+3792 1 ssh-rsa 11key4plc11 user1792-key1
+3793 1 ssh-rsa 11key4plc11 user1793-key1
+3794 1 ssh-rsa 11key4plc11 user1794-key1
+3795 1 ssh-rsa 11key4plc11 user1795-key1
+3796 1 ssh-rsa 11key4plc11 user1796-key1
+3797 1 ssh-rsa 11key4plc11 user1797-key1
+3798 1 ssh-rsa 11key4plc11 user1798-key1
+3799 1 ssh-rsa 11key4plc11 user1799-key1
+3800 1 ssh-rsa 11key4plc11 user1800-key1
+3801 1 ssh-rsa 11key4plc11 user1801-key1
+3802 1 ssh-rsa 11key4plc11 user1802-key1
+3803 1 ssh-rsa 11key4plc11 user1803-key1
+3804 1 ssh-rsa 11key4plc11 user1804-key1
+3805 1 ssh-rsa 11key4plc11 user1805-key1
+3806 1 ssh-rsa 11key4plc11 user1806-key1
+3807 1 ssh-rsa 11key4plc11 user1807-key1
+3808 1 ssh-rsa 11key4plc11 user1808-key1
+3809 1 ssh-rsa 11key4plc11 user1809-key1
+3810 1 ssh-rsa 11key4plc11 user1810-key1
+3811 1 ssh-rsa 11key4plc11 user1811-key1
+3812 1 ssh-rsa 11key4plc11 user1812-key1
+3813 1 ssh-rsa 11key4plc11 user1813-key1
+3814 1 ssh-rsa 11key4plc11 user1814-key1
+3815 1 ssh-rsa 11key4plc11 user1815-key1
+3816 1 ssh-rsa 11key4plc11 user1816-key1
+3817 1 ssh-rsa 11key4plc11 user1817-key1
+3818 1 ssh-rsa 11key4plc11 user1818-key1
+3819 1 ssh-rsa 11key4plc11 user1819-key1
+3820 1 ssh-rsa 11key4plc11 user1820-key1
+3821 1 ssh-rsa 11key4plc11 user1821-key1
+3822 1 ssh-rsa 11key4plc11 user1822-key1
+3823 1 ssh-rsa 11key4plc11 user1823-key1
+3824 1 ssh-rsa 11key4plc11 user1824-key1
+3825 1 ssh-rsa 11key4plc11 user1825-key1
+3826 1 ssh-rsa 11key4plc11 user1826-key1
+3827 1 ssh-rsa 11key4plc11 user1827-key1
+3828 1 ssh-rsa 11key4plc11 user1828-key1
+3829 1 ssh-rsa 11key4plc11 user1829-key1
+3830 1 ssh-rsa 11key4plc11 user1830-key1
+3831 1 ssh-rsa 11key4plc11 user1831-key1
+3832 1 ssh-rsa 11key4plc11 user1832-key1
+3833 1 ssh-rsa 11key4plc11 user1833-key1
+3834 1 ssh-rsa 11key4plc11 user1834-key1
+3835 1 ssh-rsa 11key4plc11 user1835-key1
+3836 1 ssh-rsa 11key4plc11 user1836-key1
+3837 1 ssh-rsa 11key4plc11 user1837-key1
+3838 1 ssh-rsa 11key4plc11 user1838-key1
+3839 1 ssh-rsa 11key4plc11 user1839-key1
+3840 1 ssh-rsa 11key4plc11 user1840-key1
+3841 1 ssh-rsa 11key4plc11 user1841-key1
+3842 1 ssh-rsa 11key4plc11 user1842-key1
+3843 1 ssh-rsa 11key4plc11 user1843-key1
+3844 1 ssh-rsa 11key4plc11 user1844-key1
+3845 1 ssh-rsa 11key4plc11 user1845-key1
+3846 1 ssh-rsa 11key4plc11 user1846-key1
+3847 1 ssh-rsa 11key4plc11 user1847-key1
+3848 1 ssh-rsa 11key4plc11 user1848-key1
+3849 1 ssh-rsa 11key4plc11 user1849-key1
+3850 1 ssh-rsa 11key4plc11 user1850-key1
+3851 1 ssh-rsa 11key4plc11 user1851-key1
+3852 1 ssh-rsa 11key4plc11 user1852-key1
+3853 1 ssh-rsa 11key4plc11 user1853-key1
+3854 1 ssh-rsa 11key4plc11 user1854-key1
+3855 1 ssh-rsa 11key4plc11 user1855-key1
+3856 1 ssh-rsa 11key4plc11 user1856-key1
+3857 1 ssh-rsa 11key4plc11 user1857-key1
+3858 1 ssh-rsa 11key4plc11 user1858-key1
+3859 1 ssh-rsa 11key4plc11 user1859-key1
+3860 1 ssh-rsa 11key4plc11 user1860-key1
+3861 1 ssh-rsa 11key4plc11 user1861-key1
+3862 1 ssh-rsa 11key4plc11 user1862-key1
+3863 1 ssh-rsa 11key4plc11 user1863-key1
+3864 1 ssh-rsa 11key4plc11 user1864-key1
+3865 1 ssh-rsa 11key4plc11 user1865-key1
+3866 1 ssh-rsa 11key4plc11 user1866-key1
+3867 1 ssh-rsa 11key4plc11 user1867-key1
+3868 1 ssh-rsa 11key4plc11 user1868-key1
+3869 1 ssh-rsa 11key4plc11 user1869-key1
+3870 1 ssh-rsa 11key4plc11 user1870-key1
+3871 1 ssh-rsa 11key4plc11 user1871-key1
+3872 1 ssh-rsa 11key4plc11 user1872-key1
+3873 1 ssh-rsa 11key4plc11 user1873-key1
+3874 1 ssh-rsa 11key4plc11 user1874-key1
+3875 1 ssh-rsa 11key4plc11 user1875-key1
+3876 1 ssh-rsa 11key4plc11 user1876-key1
+3877 1 ssh-rsa 11key4plc11 user1877-key1
+3878 1 ssh-rsa 11key4plc11 user1878-key1
+3879 1 ssh-rsa 11key4plc11 user1879-key1
+3880 1 ssh-rsa 11key4plc11 user1880-key1
+3881 1 ssh-rsa 11key4plc11 user1881-key1
+3882 1 ssh-rsa 11key4plc11 user1882-key1
+3883 1 ssh-rsa 11key4plc11 user1883-key1
+3884 1 ssh-rsa 11key4plc11 user1884-key1
+3885 1 ssh-rsa 11key4plc11 user1885-key1
+3886 1 ssh-rsa 11key4plc11 user1886-key1
+3887 1 ssh-rsa 11key4plc11 user1887-key1
+3888 1 ssh-rsa 11key4plc11 user1888-key1
+3889 1 ssh-rsa 11key4plc11 user1889-key1
+3890 1 ssh-rsa 11key4plc11 user1890-key1
+3891 1 ssh-rsa 11key4plc11 user1891-key1
+3892 1 ssh-rsa 11key4plc11 user1892-key1
+3893 1 ssh-rsa 11key4plc11 user1893-key1
+3894 1 ssh-rsa 11key4plc11 user1894-key1
+3895 1 ssh-rsa 11key4plc11 user1895-key1
+3896 1 ssh-rsa 11key4plc11 user1896-key1
+3897 1 ssh-rsa 11key4plc11 user1897-key1
+3898 1 ssh-rsa 11key4plc11 user1898-key1
+3899 1 ssh-rsa 11key4plc11 user1899-key1
+3900 1 ssh-rsa 11key4plc11 user1900-key1
+3901 1 ssh-rsa 11key4plc11 user1901-key1
+3902 1 ssh-rsa 11key4plc11 user1902-key1
+3903 1 ssh-rsa 11key4plc11 user1903-key1
+3904 1 ssh-rsa 11key4plc11 user1904-key1
+3905 1 ssh-rsa 11key4plc11 user1905-key1
+3906 1 ssh-rsa 11key4plc11 user1906-key1
+3907 1 ssh-rsa 11key4plc11 user1907-key1
+3908 1 ssh-rsa 11key4plc11 user1908-key1
+3909 1 ssh-rsa 11key4plc11 user1909-key1
+3910 1 ssh-rsa 11key4plc11 user1910-key1
+3911 1 ssh-rsa 11key4plc11 user1911-key1
+3912 1 ssh-rsa 11key4plc11 user1912-key1
+3913 1 ssh-rsa 11key4plc11 user1913-key1
+3914 1 ssh-rsa 11key4plc11 user1914-key1
+3915 1 ssh-rsa 11key4plc11 user1915-key1
+3916 1 ssh-rsa 11key4plc11 user1916-key1
+3917 1 ssh-rsa 11key4plc11 user1917-key1
+3918 1 ssh-rsa 11key4plc11 user1918-key1
+3919 1 ssh-rsa 11key4plc11 user1919-key1
+3920 1 ssh-rsa 11key4plc11 user1920-key1
+3921 1 ssh-rsa 11key4plc11 user1921-key1
+3922 1 ssh-rsa 11key4plc11 user1922-key1
+3923 1 ssh-rsa 11key4plc11 user1923-key1
+3924 1 ssh-rsa 11key4plc11 user1924-key1
+3925 1 ssh-rsa 11key4plc11 user1925-key1
+3926 1 ssh-rsa 11key4plc11 user1926-key1
+3927 1 ssh-rsa 11key4plc11 user1927-key1
+3928 1 ssh-rsa 11key4plc11 user1928-key1
+3929 1 ssh-rsa 11key4plc11 user1929-key1
+3930 1 ssh-rsa 11key4plc11 user1930-key1
+3931 1 ssh-rsa 11key4plc11 user1931-key1
+3932 1 ssh-rsa 11key4plc11 user1932-key1
+3933 1 ssh-rsa 11key4plc11 user1933-key1
+3934 1 ssh-rsa 11key4plc11 user1934-key1
+3935 1 ssh-rsa 11key4plc11 user1935-key1
+3936 1 ssh-rsa 11key4plc11 user1936-key1
+3937 1 ssh-rsa 11key4plc11 user1937-key1
+3938 1 ssh-rsa 11key4plc11 user1938-key1
+3939 1 ssh-rsa 11key4plc11 user1939-key1
+3940 1 ssh-rsa 11key4plc11 user1940-key1
+3941 1 ssh-rsa 11key4plc11 user1941-key1
+3942 1 ssh-rsa 11key4plc11 user1942-key1
+3943 1 ssh-rsa 11key4plc11 user1943-key1
+3944 1 ssh-rsa 11key4plc11 user1944-key1
+3945 1 ssh-rsa 11key4plc11 user1945-key1
+3946 1 ssh-rsa 11key4plc11 user1946-key1
+3947 1 ssh-rsa 11key4plc11 user1947-key1
+3948 1 ssh-rsa 11key4plc11 user1948-key1
+3949 1 ssh-rsa 11key4plc11 user1949-key1
+3950 1 ssh-rsa 11key4plc11 user1950-key1
+3951 1 ssh-rsa 11key4plc11 user1951-key1
+3952 1 ssh-rsa 11key4plc11 user1952-key1
+3953 1 ssh-rsa 11key4plc11 user1953-key1
+3954 1 ssh-rsa 11key4plc11 user1954-key1
+3955 1 ssh-rsa 11key4plc11 user1955-key1
+3956 1 ssh-rsa 11key4plc11 user1956-key1
+3957 1 ssh-rsa 11key4plc11 user1957-key1
+3958 1 ssh-rsa 11key4plc11 user1958-key1
+3959 1 ssh-rsa 11key4plc11 user1959-key1
+3960 1 ssh-rsa 11key4plc11 user1960-key1
+3961 1 ssh-rsa 11key4plc11 user1961-key1
+3962 1 ssh-rsa 11key4plc11 user1962-key1
+3963 1 ssh-rsa 11key4plc11 user1963-key1
+3964 1 ssh-rsa 11key4plc11 user1964-key1
+3965 1 ssh-rsa 11key4plc11 user1965-key1
+3966 1 ssh-rsa 11key4plc11 user1966-key1
+3967 1 ssh-rsa 11key4plc11 user1967-key1
+3968 1 ssh-rsa 11key4plc11 user1968-key1
+3969 1 ssh-rsa 11key4plc11 user1969-key1
+3970 1 ssh-rsa 11key4plc11 user1970-key1
+3971 1 ssh-rsa 11key4plc11 user1971-key1
+3972 1 ssh-rsa 11key4plc11 user1972-key1
+3973 1 ssh-rsa 11key4plc11 user1973-key1
+3974 1 ssh-rsa 11key4plc11 user1974-key1
+3975 1 ssh-rsa 11key4plc11 user1975-key1
+3976 1 ssh-rsa 11key4plc11 user1976-key1
+3977 1 ssh-rsa 11key4plc11 user1977-key1
+3978 1 ssh-rsa 11key4plc11 user1978-key1
+3979 1 ssh-rsa 11key4plc11 user1979-key1
+3980 1 ssh-rsa 11key4plc11 user1980-key1
+3981 1 ssh-rsa 11key4plc11 user1981-key1
+3982 1 ssh-rsa 11key4plc11 user1982-key1
+3983 1 ssh-rsa 11key4plc11 user1983-key1
+3984 1 ssh-rsa 11key4plc11 user1984-key1
+3985 1 ssh-rsa 11key4plc11 user1985-key1
+3986 1 ssh-rsa 11key4plc11 user1986-key1
+3987 1 ssh-rsa 11key4plc11 user1987-key1
+3988 1 ssh-rsa 11key4plc11 user1988-key1
+3989 1 ssh-rsa 11key4plc11 user1989-key1
+3990 1 ssh-rsa 11key4plc11 user1990-key1
+3991 1 ssh-rsa 11key4plc11 user1991-key1
+3992 1 ssh-rsa 11key4plc11 user1992-key1
+3993 1 ssh-rsa 11key4plc11 user1993-key1
+3994 1 ssh-rsa 11key4plc11 user1994-key1
+3995 1 ssh-rsa 11key4plc11 user1995-key1
+3996 1 ssh-rsa 11key4plc11 user1996-key1
+3997 1 ssh-rsa 11key4plc11 user1997-key1
+3998 1 ssh-rsa 11key4plc11 user1998-key1
+3999 1 ssh-rsa 11key4plc11 user1999-key1
+4000 1 ssh-rsa 11key4plc11 user2000-key1
+02: PERSONS
+1 None maint@localhost.localdomain keys: [] sites: []
+2 None root@plc2.org keys: [] sites: [1]
+3 None peer2@planet-lab.org keys: [] sites: []
+4 None peer1@planet-lab.org keys: [] sites: []
+5 None user2-1@plc2.org keys: [1] sites: []
+6 None user2-2@plc2.org keys: [2] sites: []
+7 None user2-3@plc2.org keys: [3] sites: []
+8 None user2-4@plc2.org keys: [4] sites: []
+9 None user2-5@plc2.org keys: [5] sites: []
+10 None user2-6@plc2.org keys: [6] sites: []
+11 None user2-7@plc2.org keys: [7] sites: []
+12 None user2-8@plc2.org keys: [8] sites: []
+13 None user2-9@plc2.org keys: [9] sites: []
+14 None user2-10@plc2.org keys: [10] sites: []
+15 None user2-11@plc2.org keys: [11] sites: []
+16 None user2-12@plc2.org keys: [12] sites: []
+17 None user2-13@plc2.org keys: [13] sites: []
+18 None user2-14@plc2.org keys: [14] sites: []
+19 None user2-15@plc2.org keys: [15] sites: []
+20 None user2-16@plc2.org keys: [16] sites: []
+21 None user2-17@plc2.org keys: [17] sites: []
+22 None user2-18@plc2.org keys: [18] sites: []
+23 None user2-19@plc2.org keys: [19] sites: []
+24 None user2-20@plc2.org keys: [20] sites: []
+25 None user2-21@plc2.org keys: [21] sites: []
+26 None user2-22@plc2.org keys: [22] sites: []
+27 None user2-23@plc2.org keys: [23] sites: []
+28 None user2-24@plc2.org keys: [24] sites: []
+29 None user2-25@plc2.org keys: [25] sites: []
+30 None user2-26@plc2.org keys: [26] sites: []
+31 None user2-27@plc2.org keys: [27] sites: []
+32 None user2-28@plc2.org keys: [28] sites: []
+33 None user2-29@plc2.org keys: [29] sites: []
+34 None user2-30@plc2.org keys: [30] sites: []
+35 None user2-31@plc2.org keys: [31] sites: []
+36 None user2-32@plc2.org keys: [32] sites: []
+37 None user2-33@plc2.org keys: [33] sites: []
+38 None user2-34@plc2.org keys: [34] sites: []
+39 None user2-35@plc2.org keys: [35] sites: []
+40 None user2-36@plc2.org keys: [36] sites: []
+41 None user2-37@plc2.org keys: [37] sites: []
+42 None user2-38@plc2.org keys: [38] sites: []
+43 None user2-39@plc2.org keys: [39] sites: []
+44 None user2-40@plc2.org keys: [40] sites: []
+45 None user2-41@plc2.org keys: [41] sites: []
+46 None user2-42@plc2.org keys: [42] sites: []
+47 None user2-43@plc2.org keys: [43] sites: []
+48 None user2-44@plc2.org keys: [44] sites: []
+49 None user2-45@plc2.org keys: [45] sites: []
+50 None user2-46@plc2.org keys: [46] sites: []
+51 None user2-47@plc2.org keys: [47] sites: []
+52 None user2-48@plc2.org keys: [48] sites: []
+53 None user2-49@plc2.org keys: [49] sites: []
+54 None user2-50@plc2.org keys: [50] sites: []
+55 None user2-51@plc2.org keys: [51] sites: []
+56 None user2-52@plc2.org keys: [52] sites: []
+57 None user2-53@plc2.org keys: [53] sites: []
+58 None user2-54@plc2.org keys: [54] sites: []
+59 None user2-55@plc2.org keys: [55] sites: []
+60 None user2-56@plc2.org keys: [56] sites: []
+61 None user2-57@plc2.org keys: [57] sites: []
+62 None user2-58@plc2.org keys: [58] sites: []
+63 None user2-59@plc2.org keys: [59] sites: []
+64 None user2-60@plc2.org keys: [60] sites: []
+65 None user2-61@plc2.org keys: [61] sites: []
+66 None user2-62@plc2.org keys: [62] sites: []
+67 None user2-63@plc2.org keys: [63] sites: []
+68 None user2-64@plc2.org keys: [64] sites: []
+69 None user2-65@plc2.org keys: [65] sites: []
+70 None user2-66@plc2.org keys: [66] sites: []
+71 None user2-67@plc2.org keys: [67] sites: []
+72 None user2-68@plc2.org keys: [68] sites: []
+73 None user2-69@plc2.org keys: [69] sites: []
+74 None user2-70@plc2.org keys: [70] sites: []
+75 None user2-71@plc2.org keys: [71] sites: []
+76 None user2-72@plc2.org keys: [72] sites: []
+77 None user2-73@plc2.org keys: [73] sites: []
+78 None user2-74@plc2.org keys: [74] sites: []
+79 None user2-75@plc2.org keys: [75] sites: []
+80 None user2-76@plc2.org keys: [76] sites: []
+81 None user2-77@plc2.org keys: [77] sites: []
+82 None user2-78@plc2.org keys: [78] sites: []
+83 None user2-79@plc2.org keys: [79] sites: []
+84 None user2-80@plc2.org keys: [80] sites: []
+85 None user2-81@plc2.org keys: [81] sites: []
+86 None user2-82@plc2.org keys: [82] sites: []
+87 None user2-83@plc2.org keys: [83] sites: []
+88 None user2-84@plc2.org keys: [84] sites: []
+89 None user2-85@plc2.org keys: [85] sites: []
+90 None user2-86@plc2.org keys: [86] sites: []
+91 None user2-87@plc2.org keys: [87] sites: []
+92 None user2-88@plc2.org keys: [88] sites: []
+93 None user2-89@plc2.org keys: [89] sites: []
+94 None user2-90@plc2.org keys: [90] sites: []
+95 None user2-91@plc2.org keys: [91] sites: []
+96 None user2-92@plc2.org keys: [92] sites: []
+97 None user2-93@plc2.org keys: [93] sites: []
+98 None user2-94@plc2.org keys: [94] sites: []
+99 None user2-95@plc2.org keys: [95] sites: []
+100 None user2-96@plc2.org keys: [96] sites: []
+101 None user2-97@plc2.org keys: [97] sites: []
+102 None user2-98@plc2.org keys: [98] sites: []
+103 None user2-99@plc2.org keys: [99] sites: []
+104 None user2-100@plc2.org keys: [100] sites: []
+105 None user2-101@plc2.org keys: [101] sites: []
+106 None user2-102@plc2.org keys: [102] sites: []
+107 None user2-103@plc2.org keys: [103] sites: []
+108 None user2-104@plc2.org keys: [104] sites: []
+109 None user2-105@plc2.org keys: [105] sites: []
+110 None user2-106@plc2.org keys: [106] sites: []
+111 None user2-107@plc2.org keys: [107] sites: []
+112 None user2-108@plc2.org keys: [108] sites: []
+113 None user2-109@plc2.org keys: [109] sites: []
+114 None user2-110@plc2.org keys: [110] sites: []
+115 None user2-111@plc2.org keys: [111] sites: []
+116 None user2-112@plc2.org keys: [112] sites: []
+117 None user2-113@plc2.org keys: [113] sites: []
+118 None user2-114@plc2.org keys: [114] sites: []
+119 None user2-115@plc2.org keys: [115] sites: []
+120 None user2-116@plc2.org keys: [116] sites: []
+121 None user2-117@plc2.org keys: [117] sites: []
+122 None user2-118@plc2.org keys: [118] sites: []
+123 None user2-119@plc2.org keys: [119] sites: []
+124 None user2-120@plc2.org keys: [120] sites: []
+125 None user2-121@plc2.org keys: [121] sites: []
+126 None user2-122@plc2.org keys: [122] sites: []
+127 None user2-123@plc2.org keys: [123] sites: []
+128 None user2-124@plc2.org keys: [124] sites: []
+129 None user2-125@plc2.org keys: [125] sites: []
+130 None user2-126@plc2.org keys: [126] sites: []
+131 None user2-127@plc2.org keys: [127] sites: []
+132 None user2-128@plc2.org keys: [128] sites: []
+133 None user2-129@plc2.org keys: [129] sites: []
+134 None user2-130@plc2.org keys: [130] sites: []
+135 None user2-131@plc2.org keys: [131] sites: []
+136 None user2-132@plc2.org keys: [132] sites: []
+137 None user2-133@plc2.org keys: [133] sites: []
+138 None user2-134@plc2.org keys: [134] sites: []
+139 None user2-135@plc2.org keys: [135] sites: []
+140 None user2-136@plc2.org keys: [136] sites: []
+141 None user2-137@plc2.org keys: [137] sites: []
+142 None user2-138@plc2.org keys: [138] sites: []
+143 None user2-139@plc2.org keys: [139] sites: []
+144 None user2-140@plc2.org keys: [140] sites: []
+145 None user2-141@plc2.org keys: [141] sites: []
+146 None user2-142@plc2.org keys: [142] sites: []
+147 None user2-143@plc2.org keys: [143] sites: []
+148 None user2-144@plc2.org keys: [144] sites: []
+149 None user2-145@plc2.org keys: [145] sites: []
+150 None user2-146@plc2.org keys: [146] sites: []
+151 None user2-147@plc2.org keys: [147] sites: []
+152 None user2-148@plc2.org keys: [148] sites: []
+153 None user2-149@plc2.org keys: [149] sites: []
+154 None user2-150@plc2.org keys: [150] sites: []
+155 None user2-151@plc2.org keys: [151] sites: []
+156 None user2-152@plc2.org keys: [152] sites: []
+157 None user2-153@plc2.org keys: [153] sites: []
+158 None user2-154@plc2.org keys: [154] sites: []
+159 None user2-155@plc2.org keys: [155] sites: []
+160 None user2-156@plc2.org keys: [156] sites: []
+161 None user2-157@plc2.org keys: [157] sites: []
+162 None user2-158@plc2.org keys: [158] sites: []
+163 None user2-159@plc2.org keys: [159] sites: []
+164 None user2-160@plc2.org keys: [160] sites: []
+165 None user2-161@plc2.org keys: [161] sites: []
+166 None user2-162@plc2.org keys: [162] sites: []
+167 None user2-163@plc2.org keys: [163] sites: []
+168 None user2-164@plc2.org keys: [164] sites: []
+169 None user2-165@plc2.org keys: [165] sites: []
+170 None user2-166@plc2.org keys: [166] sites: []
+171 None user2-167@plc2.org keys: [167] sites: []
+172 None user2-168@plc2.org keys: [168] sites: []
+173 None user2-169@plc2.org keys: [169] sites: []
+174 None user2-170@plc2.org keys: [170] sites: []
+175 None user2-171@plc2.org keys: [171] sites: []
+176 None user2-172@plc2.org keys: [172] sites: []
+177 None user2-173@plc2.org keys: [173] sites: []
+178 None user2-174@plc2.org keys: [174] sites: []
+179 None user2-175@plc2.org keys: [175] sites: []
+180 None user2-176@plc2.org keys: [176] sites: []
+181 None user2-177@plc2.org keys: [177] sites: []
+182 None user2-178@plc2.org keys: [178] sites: []
+183 None user2-179@plc2.org keys: [179] sites: []
+184 None user2-180@plc2.org keys: [180] sites: []
+185 None user2-181@plc2.org keys: [181] sites: []
+186 None user2-182@plc2.org keys: [182] sites: []
+187 None user2-183@plc2.org keys: [183] sites: []
+188 None user2-184@plc2.org keys: [184] sites: []
+189 None user2-185@plc2.org keys: [185] sites: []
+190 None user2-186@plc2.org keys: [186] sites: []
+191 None user2-187@plc2.org keys: [187] sites: []
+192 None user2-188@plc2.org keys: [188] sites: []
+193 None user2-189@plc2.org keys: [189] sites: []
+194 None user2-190@plc2.org keys: [190] sites: []
+195 None user2-191@plc2.org keys: [191] sites: []
+196 None user2-192@plc2.org keys: [192] sites: []
+197 None user2-193@plc2.org keys: [193] sites: []
+198 None user2-194@plc2.org keys: [194] sites: []
+199 None user2-195@plc2.org keys: [195] sites: []
+200 None user2-196@plc2.org keys: [196] sites: []
+201 None user2-197@plc2.org keys: [197] sites: []
+202 None user2-198@plc2.org keys: [198] sites: []
+203 None user2-199@plc2.org keys: [199] sites: []
+204 None user2-200@plc2.org keys: [200] sites: []
+205 None user2-201@plc2.org keys: [201] sites: []
+206 None user2-202@plc2.org keys: [202] sites: []
+207 None user2-203@plc2.org keys: [203] sites: []
+208 None user2-204@plc2.org keys: [204] sites: []
+209 None user2-205@plc2.org keys: [205] sites: []
+210 None user2-206@plc2.org keys: [206] sites: []
+211 None user2-207@plc2.org keys: [207] sites: []
+212 None user2-208@plc2.org keys: [208] sites: []
+213 None user2-209@plc2.org keys: [209] sites: []
+214 None user2-210@plc2.org keys: [210] sites: []
+215 None user2-211@plc2.org keys: [211] sites: []
+216 None user2-212@plc2.org keys: [212] sites: []
+217 None user2-213@plc2.org keys: [213] sites: []
+218 None user2-214@plc2.org keys: [214] sites: []
+219 None user2-215@plc2.org keys: [215] sites: []
+220 None user2-216@plc2.org keys: [216] sites: []
+221 None user2-217@plc2.org keys: [217] sites: []
+222 None user2-218@plc2.org keys: [218] sites: []
+223 None user2-219@plc2.org keys: [219] sites: []
+224 None user2-220@plc2.org keys: [220] sites: []
+225 None user2-221@plc2.org keys: [221] sites: []
+226 None user2-222@plc2.org keys: [222] sites: []
+227 None user2-223@plc2.org keys: [223] sites: []
+228 None user2-224@plc2.org keys: [224] sites: []
+229 None user2-225@plc2.org keys: [225] sites: []
+230 None user2-226@plc2.org keys: [226] sites: []
+231 None user2-227@plc2.org keys: [227] sites: []
+232 None user2-228@plc2.org keys: [228] sites: []
+233 None user2-229@plc2.org keys: [229] sites: []
+234 None user2-230@plc2.org keys: [230] sites: []
+235 None user2-231@plc2.org keys: [231] sites: []
+236 None user2-232@plc2.org keys: [232] sites: []
+237 None user2-233@plc2.org keys: [233] sites: []
+238 None user2-234@plc2.org keys: [234] sites: []
+239 None user2-235@plc2.org keys: [235] sites: []
+240 None user2-236@plc2.org keys: [236] sites: []
+241 None user2-237@plc2.org keys: [237] sites: []
+242 None user2-238@plc2.org keys: [238] sites: []
+243 None user2-239@plc2.org keys: [239] sites: []
+244 None user2-240@plc2.org keys: [240] sites: []
+245 None user2-241@plc2.org keys: [241] sites: []
+246 None user2-242@plc2.org keys: [242] sites: []
+247 None user2-243@plc2.org keys: [243] sites: []
+248 None user2-244@plc2.org keys: [244] sites: []
+249 None user2-245@plc2.org keys: [245] sites: []
+250 None user2-246@plc2.org keys: [246] sites: []
+251 None user2-247@plc2.org keys: [247] sites: []
+252 None user2-248@plc2.org keys: [248] sites: []
+253 None user2-249@plc2.org keys: [249] sites: []
+254 None user2-250@plc2.org keys: [250] sites: []
+255 None user2-251@plc2.org keys: [251] sites: []
+256 None user2-252@plc2.org keys: [252] sites: []
+257 None user2-253@plc2.org keys: [253] sites: []
+258 None user2-254@plc2.org keys: [254] sites: []
+259 None user2-255@plc2.org keys: [255] sites: []
+260 None user2-256@plc2.org keys: [256] sites: []
+261 None user2-257@plc2.org keys: [257] sites: []
+262 None user2-258@plc2.org keys: [258] sites: []
+263 None user2-259@plc2.org keys: [259] sites: []
+264 None user2-260@plc2.org keys: [260] sites: []
+265 None user2-261@plc2.org keys: [261] sites: []
+266 None user2-262@plc2.org keys: [262] sites: []
+267 None user2-263@plc2.org keys: [263] sites: []
+268 None user2-264@plc2.org keys: [264] sites: []
+269 None user2-265@plc2.org keys: [265] sites: []
+270 None user2-266@plc2.org keys: [266] sites: []
+271 None user2-267@plc2.org keys: [267] sites: []
+272 None user2-268@plc2.org keys: [268] sites: []
+273 None user2-269@plc2.org keys: [269] sites: []
+274 None user2-270@plc2.org keys: [270] sites: []
+275 None user2-271@plc2.org keys: [271] sites: []
+276 None user2-272@plc2.org keys: [272] sites: []
+277 None user2-273@plc2.org keys: [273] sites: []
+278 None user2-274@plc2.org keys: [274] sites: []
+279 None user2-275@plc2.org keys: [275] sites: []
+280 None user2-276@plc2.org keys: [276] sites: []
+281 None user2-277@plc2.org keys: [277] sites: []
+282 None user2-278@plc2.org keys: [278] sites: []
+283 None user2-279@plc2.org keys: [279] sites: []
+284 None user2-280@plc2.org keys: [280] sites: []
+285 None user2-281@plc2.org keys: [281] sites: []
+286 None user2-282@plc2.org keys: [282] sites: []
+287 None user2-283@plc2.org keys: [283] sites: []
+288 None user2-284@plc2.org keys: [284] sites: []
+289 None user2-285@plc2.org keys: [285] sites: []
+290 None user2-286@plc2.org keys: [286] sites: []
+291 None user2-287@plc2.org keys: [287] sites: []
+292 None user2-288@plc2.org keys: [288] sites: []
+293 None user2-289@plc2.org keys: [289] sites: []
+294 None user2-290@plc2.org keys: [290] sites: []
+295 None user2-291@plc2.org keys: [291] sites: []
+296 None user2-292@plc2.org keys: [292] sites: []
+297 None user2-293@plc2.org keys: [293] sites: []
+298 None user2-294@plc2.org keys: [294] sites: []
+299 None user2-295@plc2.org keys: [295] sites: []
+300 None user2-296@plc2.org keys: [296] sites: []
+301 None user2-297@plc2.org keys: [297] sites: []
+302 None user2-298@plc2.org keys: [298] sites: []
+303 None user2-299@plc2.org keys: [299] sites: []
+304 None user2-300@plc2.org keys: [300] sites: []
+305 None user2-301@plc2.org keys: [301] sites: []
+306 None user2-302@plc2.org keys: [302] sites: []
+307 None user2-303@plc2.org keys: [303] sites: []
+308 None user2-304@plc2.org keys: [304] sites: []
+309 None user2-305@plc2.org keys: [305] sites: []
+310 None user2-306@plc2.org keys: [306] sites: []
+311 None user2-307@plc2.org keys: [307] sites: []
+312 None user2-308@plc2.org keys: [308] sites: []
+313 None user2-309@plc2.org keys: [309] sites: []
+314 None user2-310@plc2.org keys: [310] sites: []
+315 None user2-311@plc2.org keys: [311] sites: []
+316 None user2-312@plc2.org keys: [312] sites: []
+317 None user2-313@plc2.org keys: [313] sites: []
+318 None user2-314@plc2.org keys: [314] sites: []
+319 None user2-315@plc2.org keys: [315] sites: []
+320 None user2-316@plc2.org keys: [316] sites: []
+321 None user2-317@plc2.org keys: [317] sites: []
+322 None user2-318@plc2.org keys: [318] sites: []
+323 None user2-319@plc2.org keys: [319] sites: []
+324 None user2-320@plc2.org keys: [320] sites: []
+325 None user2-321@plc2.org keys: [321] sites: []
+326 None user2-322@plc2.org keys: [322] sites: []
+327 None user2-323@plc2.org keys: [323] sites: []
+328 None user2-324@plc2.org keys: [324] sites: []
+329 None user2-325@plc2.org keys: [325] sites: []
+330 None user2-326@plc2.org keys: [326] sites: []
+331 None user2-327@plc2.org keys: [327] sites: []
+332 None user2-328@plc2.org keys: [328] sites: []
+333 None user2-329@plc2.org keys: [329] sites: []
+334 None user2-330@plc2.org keys: [330] sites: []
+335 None user2-331@plc2.org keys: [331] sites: []
+336 None user2-332@plc2.org keys: [332] sites: []
+337 None user2-333@plc2.org keys: [333] sites: []
+338 None user2-334@plc2.org keys: [334] sites: []
+339 None user2-335@plc2.org keys: [335] sites: []
+340 None user2-336@plc2.org keys: [336] sites: []
+341 None user2-337@plc2.org keys: [337] sites: []
+342 None user2-338@plc2.org keys: [338] sites: []
+343 None user2-339@plc2.org keys: [339] sites: []
+344 None user2-340@plc2.org keys: [340] sites: []
+345 None user2-341@plc2.org keys: [341] sites: []
+346 None user2-342@plc2.org keys: [342] sites: []
+347 None user2-343@plc2.org keys: [343] sites: []
+348 None user2-344@plc2.org keys: [344] sites: []
+349 None user2-345@plc2.org keys: [345] sites: []
+350 None user2-346@plc2.org keys: [346] sites: []
+351 None user2-347@plc2.org keys: [347] sites: []
+352 None user2-348@plc2.org keys: [348] sites: []
+353 None user2-349@plc2.org keys: [349] sites: []
+354 None user2-350@plc2.org keys: [350] sites: []
+355 None user2-351@plc2.org keys: [351] sites: []
+356 None user2-352@plc2.org keys: [352] sites: []
+357 None user2-353@plc2.org keys: [353] sites: []
+358 None user2-354@plc2.org keys: [354] sites: []
+359 None user2-355@plc2.org keys: [355] sites: []
+360 None user2-356@plc2.org keys: [356] sites: []
+361 None user2-357@plc2.org keys: [357] sites: []
+362 None user2-358@plc2.org keys: [358] sites: []
+363 None user2-359@plc2.org keys: [359] sites: []
+364 None user2-360@plc2.org keys: [360] sites: []
+365 None user2-361@plc2.org keys: [361] sites: []
+366 None user2-362@plc2.org keys: [362] sites: []
+367 None user2-363@plc2.org keys: [363] sites: []
+368 None user2-364@plc2.org keys: [364] sites: []
+369 None user2-365@plc2.org keys: [365] sites: []
+370 None user2-366@plc2.org keys: [366] sites: []
+371 None user2-367@plc2.org keys: [367] sites: []
+372 None user2-368@plc2.org keys: [368] sites: []
+373 None user2-369@plc2.org keys: [369] sites: []
+374 None user2-370@plc2.org keys: [370] sites: []
+375 None user2-371@plc2.org keys: [371] sites: []
+376 None user2-372@plc2.org keys: [372] sites: []
+377 None user2-373@plc2.org keys: [373] sites: []
+378 None user2-374@plc2.org keys: [374] sites: []
+379 None user2-375@plc2.org keys: [375] sites: []
+380 None user2-376@plc2.org keys: [376] sites: []
+381 None user2-377@plc2.org keys: [377] sites: []
+382 None user2-378@plc2.org keys: [378] sites: []
+383 None user2-379@plc2.org keys: [379] sites: []
+384 None user2-380@plc2.org keys: [380] sites: []
+385 None user2-381@plc2.org keys: [381] sites: []
+386 None user2-382@plc2.org keys: [382] sites: []
+387 None user2-383@plc2.org keys: [383] sites: []
+388 None user2-384@plc2.org keys: [384] sites: []
+389 None user2-385@plc2.org keys: [385] sites: []
+390 None user2-386@plc2.org keys: [386] sites: []
+391 None user2-387@plc2.org keys: [387] sites: []
+392 None user2-388@plc2.org keys: [388] sites: []
+393 None user2-389@plc2.org keys: [389] sites: []
+394 None user2-390@plc2.org keys: [390] sites: []
+395 None user2-391@plc2.org keys: [391] sites: []
+396 None user2-392@plc2.org keys: [392] sites: []
+397 None user2-393@plc2.org keys: [393] sites: []
+398 None user2-394@plc2.org keys: [394] sites: []
+399 None user2-395@plc2.org keys: [395] sites: []
+400 None user2-396@plc2.org keys: [396] sites: []
+401 None user2-397@plc2.org keys: [397] sites: []
+402 None user2-398@plc2.org keys: [398] sites: []
+403 None user2-399@plc2.org keys: [399] sites: []
+404 None user2-400@plc2.org keys: [400] sites: []
+405 None user2-401@plc2.org keys: [401] sites: []
+406 None user2-402@plc2.org keys: [402] sites: []
+407 None user2-403@plc2.org keys: [403] sites: []
+408 None user2-404@plc2.org keys: [404] sites: []
+409 None user2-405@plc2.org keys: [405] sites: []
+410 None user2-406@plc2.org keys: [406] sites: []
+411 None user2-407@plc2.org keys: [407] sites: []
+412 None user2-408@plc2.org keys: [408] sites: []
+413 None user2-409@plc2.org keys: [409] sites: []
+414 None user2-410@plc2.org keys: [410] sites: []
+415 None user2-411@plc2.org keys: [411] sites: []
+416 None user2-412@plc2.org keys: [412] sites: []
+417 None user2-413@plc2.org keys: [413] sites: []
+418 None user2-414@plc2.org keys: [414] sites: []
+419 None user2-415@plc2.org keys: [415] sites: []
+420 None user2-416@plc2.org keys: [416] sites: []
+421 None user2-417@plc2.org keys: [417] sites: []
+422 None user2-418@plc2.org keys: [418] sites: []
+423 None user2-419@plc2.org keys: [419] sites: []
+424 None user2-420@plc2.org keys: [420] sites: []
+425 None user2-421@plc2.org keys: [421] sites: []
+426 None user2-422@plc2.org keys: [422] sites: []
+427 None user2-423@plc2.org keys: [423] sites: []
+428 None user2-424@plc2.org keys: [424] sites: []
+429 None user2-425@plc2.org keys: [425] sites: []
+430 None user2-426@plc2.org keys: [426] sites: []
+431 None user2-427@plc2.org keys: [427] sites: []
+432 None user2-428@plc2.org keys: [428] sites: []
+433 None user2-429@plc2.org keys: [429] sites: []
+434 None user2-430@plc2.org keys: [430] sites: []
+435 None user2-431@plc2.org keys: [431] sites: []
+436 None user2-432@plc2.org keys: [432] sites: []
+437 None user2-433@plc2.org keys: [433] sites: []
+438 None user2-434@plc2.org keys: [434] sites: []
+439 None user2-435@plc2.org keys: [435] sites: []
+440 None user2-436@plc2.org keys: [436] sites: []
+441 None user2-437@plc2.org keys: [437] sites: []
+442 None user2-438@plc2.org keys: [438] sites: []
+443 None user2-439@plc2.org keys: [439] sites: []
+444 None user2-440@plc2.org keys: [440] sites: []
+445 None user2-441@plc2.org keys: [441] sites: []
+446 None user2-442@plc2.org keys: [442] sites: []
+447 None user2-443@plc2.org keys: [443] sites: []
+448 None user2-444@plc2.org keys: [444] sites: []
+449 None user2-445@plc2.org keys: [445] sites: []
+450 None user2-446@plc2.org keys: [446] sites: []
+451 None user2-447@plc2.org keys: [447] sites: []
+452 None user2-448@plc2.org keys: [448] sites: []
+453 None user2-449@plc2.org keys: [449] sites: []
+454 None user2-450@plc2.org keys: [450] sites: []
+455 None user2-451@plc2.org keys: [451] sites: []
+456 None user2-452@plc2.org keys: [452] sites: []
+457 None user2-453@plc2.org keys: [453] sites: []
+458 None user2-454@plc2.org keys: [454] sites: []
+459 None user2-455@plc2.org keys: [455] sites: []
+460 None user2-456@plc2.org keys: [456] sites: []
+461 None user2-457@plc2.org keys: [457] sites: []
+462 None user2-458@plc2.org keys: [458] sites: []
+463 None user2-459@plc2.org keys: [459] sites: []
+464 None user2-460@plc2.org keys: [460] sites: []
+465 None user2-461@plc2.org keys: [461] sites: []
+466 None user2-462@plc2.org keys: [462] sites: []
+467 None user2-463@plc2.org keys: [463] sites: []
+468 None user2-464@plc2.org keys: [464] sites: []
+469 None user2-465@plc2.org keys: [465] sites: []
+470 None user2-466@plc2.org keys: [466] sites: []
+471 None user2-467@plc2.org keys: [467] sites: []
+472 None user2-468@plc2.org keys: [468] sites: []
+473 None user2-469@plc2.org keys: [469] sites: []
+474 None user2-470@plc2.org keys: [470] sites: []
+475 None user2-471@plc2.org keys: [471] sites: []
+476 None user2-472@plc2.org keys: [472] sites: []
+477 None user2-473@plc2.org keys: [473] sites: []
+478 None user2-474@plc2.org keys: [474] sites: []
+479 None user2-475@plc2.org keys: [475] sites: []
+480 None user2-476@plc2.org keys: [476] sites: []
+481 None user2-477@plc2.org keys: [477] sites: []
+482 None user2-478@plc2.org keys: [478] sites: []
+483 None user2-479@plc2.org keys: [479] sites: []
+484 None user2-480@plc2.org keys: [480] sites: []
+485 None user2-481@plc2.org keys: [481] sites: []
+486 None user2-482@plc2.org keys: [482] sites: []
+487 None user2-483@plc2.org keys: [483] sites: []
+488 None user2-484@plc2.org keys: [484] sites: []
+489 None user2-485@plc2.org keys: [485] sites: []
+490 None user2-486@plc2.org keys: [486] sites: []
+491 None user2-487@plc2.org keys: [487] sites: []
+492 None user2-488@plc2.org keys: [488] sites: []
+493 None user2-489@plc2.org keys: [489] sites: []
+494 None user2-490@plc2.org keys: [490] sites: []
+495 None user2-491@plc2.org keys: [491] sites: []
+496 None user2-492@plc2.org keys: [492] sites: []
+497 None user2-493@plc2.org keys: [493] sites: []
+498 None user2-494@plc2.org keys: [494] sites: []
+499 None user2-495@plc2.org keys: [495] sites: []
+500 None user2-496@plc2.org keys: [496] sites: []
+501 None user2-497@plc2.org keys: [497] sites: []
+502 None user2-498@plc2.org keys: [498] sites: []
+503 None user2-499@plc2.org keys: [499] sites: []
+504 None user2-500@plc2.org keys: [500] sites: []
+505 None user2-501@plc2.org keys: [501] sites: []
+506 None user2-502@plc2.org keys: [502] sites: []
+507 None user2-503@plc2.org keys: [503] sites: []
+508 None user2-504@plc2.org keys: [504] sites: []
+509 None user2-505@plc2.org keys: [505] sites: []
+510 None user2-506@plc2.org keys: [506] sites: []
+511 None user2-507@plc2.org keys: [507] sites: []
+512 None user2-508@plc2.org keys: [508] sites: []
+513 None user2-509@plc2.org keys: [509] sites: []
+514 None user2-510@plc2.org keys: [510] sites: []
+515 None user2-511@plc2.org keys: [511] sites: []
+516 None user2-512@plc2.org keys: [512] sites: []
+517 None user2-513@plc2.org keys: [513] sites: []
+518 None user2-514@plc2.org keys: [514] sites: []
+519 None user2-515@plc2.org keys: [515] sites: []
+520 None user2-516@plc2.org keys: [516] sites: []
+521 None user2-517@plc2.org keys: [517] sites: []
+522 None user2-518@plc2.org keys: [518] sites: []
+523 None user2-519@plc2.org keys: [519] sites: []
+524 None user2-520@plc2.org keys: [520] sites: []
+525 None user2-521@plc2.org keys: [521] sites: []
+526 None user2-522@plc2.org keys: [522] sites: []
+527 None user2-523@plc2.org keys: [523] sites: []
+528 None user2-524@plc2.org keys: [524] sites: []
+529 None user2-525@plc2.org keys: [525] sites: []
+530 None user2-526@plc2.org keys: [526] sites: []
+531 None user2-527@plc2.org keys: [527] sites: []
+532 None user2-528@plc2.org keys: [528] sites: []
+533 None user2-529@plc2.org keys: [529] sites: []
+534 None user2-530@plc2.org keys: [530] sites: []
+535 None user2-531@plc2.org keys: [531] sites: []
+536 None user2-532@plc2.org keys: [532] sites: []
+537 None user2-533@plc2.org keys: [533] sites: []
+538 None user2-534@plc2.org keys: [534] sites: []
+539 None user2-535@plc2.org keys: [535] sites: []
+540 None user2-536@plc2.org keys: [536] sites: []
+541 None user2-537@plc2.org keys: [537] sites: []
+542 None user2-538@plc2.org keys: [538] sites: []
+543 None user2-539@plc2.org keys: [539] sites: []
+544 None user2-540@plc2.org keys: [540] sites: []
+545 None user2-541@plc2.org keys: [541] sites: []
+546 None user2-542@plc2.org keys: [542] sites: []
+547 None user2-543@plc2.org keys: [543] sites: []
+548 None user2-544@plc2.org keys: [544] sites: []
+549 None user2-545@plc2.org keys: [545] sites: []
+550 None user2-546@plc2.org keys: [546] sites: []
+551 None user2-547@plc2.org keys: [547] sites: []
+552 None user2-548@plc2.org keys: [548] sites: []
+553 None user2-549@plc2.org keys: [549] sites: []
+554 None user2-550@plc2.org keys: [550] sites: []
+555 None user2-551@plc2.org keys: [551] sites: []
+556 None user2-552@plc2.org keys: [552] sites: []
+557 None user2-553@plc2.org keys: [553] sites: []
+558 None user2-554@plc2.org keys: [554] sites: []
+559 None user2-555@plc2.org keys: [555] sites: []
+560 None user2-556@plc2.org keys: [556] sites: []
+561 None user2-557@plc2.org keys: [557] sites: []
+562 None user2-558@plc2.org keys: [558] sites: []
+563 None user2-559@plc2.org keys: [559] sites: []
+564 None user2-560@plc2.org keys: [560] sites: []
+565 None user2-561@plc2.org keys: [561] sites: []
+566 None user2-562@plc2.org keys: [562] sites: []
+567 None user2-563@plc2.org keys: [563] sites: []
+568 None user2-564@plc2.org keys: [564] sites: []
+569 None user2-565@plc2.org keys: [565] sites: []
+570 None user2-566@plc2.org keys: [566] sites: []
+571 None user2-567@plc2.org keys: [567] sites: []
+572 None user2-568@plc2.org keys: [568] sites: []
+573 None user2-569@plc2.org keys: [569] sites: []
+574 None user2-570@plc2.org keys: [570] sites: []
+575 None user2-571@plc2.org keys: [571] sites: []
+576 None user2-572@plc2.org keys: [572] sites: []
+577 None user2-573@plc2.org keys: [573] sites: []
+578 None user2-574@plc2.org keys: [574] sites: []
+579 None user2-575@plc2.org keys: [575] sites: []
+580 None user2-576@plc2.org keys: [576] sites: []
+581 None user2-577@plc2.org keys: [577] sites: []
+582 None user2-578@plc2.org keys: [578] sites: []
+583 None user2-579@plc2.org keys: [579] sites: []
+584 None user2-580@plc2.org keys: [580] sites: []
+585 None user2-581@plc2.org keys: [581] sites: []
+586 None user2-582@plc2.org keys: [582] sites: []
+587 None user2-583@plc2.org keys: [583] sites: []
+588 None user2-584@plc2.org keys: [584] sites: []
+589 None user2-585@plc2.org keys: [585] sites: []
+590 None user2-586@plc2.org keys: [586] sites: []
+591 None user2-587@plc2.org keys: [587] sites: []
+592 None user2-588@plc2.org keys: [588] sites: []
+593 None user2-589@plc2.org keys: [589] sites: []
+594 None user2-590@plc2.org keys: [590] sites: []
+595 None user2-591@plc2.org keys: [591] sites: []
+596 None user2-592@plc2.org keys: [592] sites: []
+597 None user2-593@plc2.org keys: [593] sites: []
+598 None user2-594@plc2.org keys: [594] sites: []
+599 None user2-595@plc2.org keys: [595] sites: []
+600 None user2-596@plc2.org keys: [596] sites: []
+601 None user2-597@plc2.org keys: [597] sites: []
+602 None user2-598@plc2.org keys: [598] sites: []
+603 None user2-599@plc2.org keys: [599] sites: []
+604 None user2-600@plc2.org keys: [600] sites: []
+605 None user2-601@plc2.org keys: [601] sites: []
+606 None user2-602@plc2.org keys: [602] sites: []
+607 None user2-603@plc2.org keys: [603] sites: []
+608 None user2-604@plc2.org keys: [604] sites: []
+609 None user2-605@plc2.org keys: [605] sites: []
+610 None user2-606@plc2.org keys: [606] sites: []
+611 None user2-607@plc2.org keys: [607] sites: []
+612 None user2-608@plc2.org keys: [608] sites: []
+613 None user2-609@plc2.org keys: [609] sites: []
+614 None user2-610@plc2.org keys: [610] sites: []
+615 None user2-611@plc2.org keys: [611] sites: []
+616 None user2-612@plc2.org keys: [612] sites: []
+617 None user2-613@plc2.org keys: [613] sites: []
+618 None user2-614@plc2.org keys: [614] sites: []
+619 None user2-615@plc2.org keys: [615] sites: []
+620 None user2-616@plc2.org keys: [616] sites: []
+621 None user2-617@plc2.org keys: [617] sites: []
+622 None user2-618@plc2.org keys: [618] sites: []
+623 None user2-619@plc2.org keys: [619] sites: []
+624 None user2-620@plc2.org keys: [620] sites: []
+625 None user2-621@plc2.org keys: [621] sites: []
+626 None user2-622@plc2.org keys: [622] sites: []
+627 None user2-623@plc2.org keys: [623] sites: []
+628 None user2-624@plc2.org keys: [624] sites: []
+629 None user2-625@plc2.org keys: [625] sites: []
+630 None user2-626@plc2.org keys: [626] sites: []
+631 None user2-627@plc2.org keys: [627] sites: []
+632 None user2-628@plc2.org keys: [628] sites: []
+633 None user2-629@plc2.org keys: [629] sites: []
+634 None user2-630@plc2.org keys: [630] sites: []
+635 None user2-631@plc2.org keys: [631] sites: []
+636 None user2-632@plc2.org keys: [632] sites: []
+637 None user2-633@plc2.org keys: [633] sites: []
+638 None user2-634@plc2.org keys: [634] sites: []
+639 None user2-635@plc2.org keys: [635] sites: []
+640 None user2-636@plc2.org keys: [636] sites: []
+641 None user2-637@plc2.org keys: [637] sites: []
+642 None user2-638@plc2.org keys: [638] sites: []
+643 None user2-639@plc2.org keys: [639] sites: []
+644 None user2-640@plc2.org keys: [640] sites: []
+645 None user2-641@plc2.org keys: [641] sites: []
+646 None user2-642@plc2.org keys: [642] sites: []
+647 None user2-643@plc2.org keys: [643] sites: []
+648 None user2-644@plc2.org keys: [644] sites: []
+649 None user2-645@plc2.org keys: [645] sites: []
+650 None user2-646@plc2.org keys: [646] sites: []
+651 None user2-647@plc2.org keys: [647] sites: []
+652 None user2-648@plc2.org keys: [648] sites: []
+653 None user2-649@plc2.org keys: [649] sites: []
+654 None user2-650@plc2.org keys: [650] sites: []
+655 None user2-651@plc2.org keys: [651] sites: []
+656 None user2-652@plc2.org keys: [652] sites: []
+657 None user2-653@plc2.org keys: [653] sites: []
+658 None user2-654@plc2.org keys: [654] sites: []
+659 None user2-655@plc2.org keys: [655] sites: []
+660 None user2-656@plc2.org keys: [656] sites: []
+661 None user2-657@plc2.org keys: [657] sites: []
+662 None user2-658@plc2.org keys: [658] sites: []
+663 None user2-659@plc2.org keys: [659] sites: []
+664 None user2-660@plc2.org keys: [660] sites: []
+665 None user2-661@plc2.org keys: [661] sites: []
+666 None user2-662@plc2.org keys: [662] sites: []
+667 None user2-663@plc2.org keys: [663] sites: []
+668 None user2-664@plc2.org keys: [664] sites: []
+669 None user2-665@plc2.org keys: [665] sites: []
+670 None user2-666@plc2.org keys: [666] sites: []
+671 None user2-667@plc2.org keys: [667] sites: []
+672 None user2-668@plc2.org keys: [668] sites: []
+673 None user2-669@plc2.org keys: [669] sites: []
+674 None user2-670@plc2.org keys: [670] sites: []
+675 None user2-671@plc2.org keys: [671] sites: []
+676 None user2-672@plc2.org keys: [672] sites: []
+677 None user2-673@plc2.org keys: [673] sites: []
+678 None user2-674@plc2.org keys: [674] sites: []
+679 None user2-675@plc2.org keys: [675] sites: []
+680 None user2-676@plc2.org keys: [676] sites: []
+681 None user2-677@plc2.org keys: [677] sites: []
+682 None user2-678@plc2.org keys: [678] sites: []
+683 None user2-679@plc2.org keys: [679] sites: []
+684 None user2-680@plc2.org keys: [680] sites: []
+685 None user2-681@plc2.org keys: [681] sites: []
+686 None user2-682@plc2.org keys: [682] sites: []
+687 None user2-683@plc2.org keys: [683] sites: []
+688 None user2-684@plc2.org keys: [684] sites: []
+689 None user2-685@plc2.org keys: [685] sites: []
+690 None user2-686@plc2.org keys: [686] sites: []
+691 None user2-687@plc2.org keys: [687] sites: []
+692 None user2-688@plc2.org keys: [688] sites: []
+693 None user2-689@plc2.org keys: [689] sites: []
+694 None user2-690@plc2.org keys: [690] sites: []
+695 None user2-691@plc2.org keys: [691] sites: []
+696 None user2-692@plc2.org keys: [692] sites: []
+697 None user2-693@plc2.org keys: [693] sites: []
+698 None user2-694@plc2.org keys: [694] sites: []
+699 None user2-695@plc2.org keys: [695] sites: []
+700 None user2-696@plc2.org keys: [696] sites: []
+701 None user2-697@plc2.org keys: [697] sites: []
+702 None user2-698@plc2.org keys: [698] sites: []
+703 None user2-699@plc2.org keys: [699] sites: []
+704 None user2-700@plc2.org keys: [700] sites: []
+705 None user2-701@plc2.org keys: [701] sites: []
+706 None user2-702@plc2.org keys: [702] sites: []
+707 None user2-703@plc2.org keys: [703] sites: []
+708 None user2-704@plc2.org keys: [704] sites: []
+709 None user2-705@plc2.org keys: [705] sites: []
+710 None user2-706@plc2.org keys: [706] sites: []
+711 None user2-707@plc2.org keys: [707] sites: []
+712 None user2-708@plc2.org keys: [708] sites: []
+713 None user2-709@plc2.org keys: [709] sites: []
+714 None user2-710@plc2.org keys: [710] sites: []
+715 None user2-711@plc2.org keys: [711] sites: []
+716 None user2-712@plc2.org keys: [712] sites: []
+717 None user2-713@plc2.org keys: [713] sites: []
+718 None user2-714@plc2.org keys: [714] sites: []
+719 None user2-715@plc2.org keys: [715] sites: []
+720 None user2-716@plc2.org keys: [716] sites: []
+721 None user2-717@plc2.org keys: [717] sites: []
+722 None user2-718@plc2.org keys: [718] sites: []
+723 None user2-719@plc2.org keys: [719] sites: []
+724 None user2-720@plc2.org keys: [720] sites: []
+725 None user2-721@plc2.org keys: [721] sites: []
+726 None user2-722@plc2.org keys: [722] sites: []
+727 None user2-723@plc2.org keys: [723] sites: []
+728 None user2-724@plc2.org keys: [724] sites: []
+729 None user2-725@plc2.org keys: [725] sites: []
+730 None user2-726@plc2.org keys: [726] sites: []
+731 None user2-727@plc2.org keys: [727] sites: []
+732 None user2-728@plc2.org keys: [728] sites: []
+733 None user2-729@plc2.org keys: [729] sites: []
+734 None user2-730@plc2.org keys: [730] sites: []
+735 None user2-731@plc2.org keys: [731] sites: []
+736 None user2-732@plc2.org keys: [732] sites: []
+737 None user2-733@plc2.org keys: [733] sites: []
+738 None user2-734@plc2.org keys: [734] sites: []
+739 None user2-735@plc2.org keys: [735] sites: []
+740 None user2-736@plc2.org keys: [736] sites: []
+741 None user2-737@plc2.org keys: [737] sites: []
+742 None user2-738@plc2.org keys: [738] sites: []
+743 None user2-739@plc2.org keys: [739] sites: []
+744 None user2-740@plc2.org keys: [740] sites: []
+745 None user2-741@plc2.org keys: [741] sites: []
+746 None user2-742@plc2.org keys: [742] sites: []
+747 None user2-743@plc2.org keys: [743] sites: []
+748 None user2-744@plc2.org keys: [744] sites: []
+749 None user2-745@plc2.org keys: [745] sites: []
+750 None user2-746@plc2.org keys: [746] sites: []
+751 None user2-747@plc2.org keys: [747] sites: []
+752 None user2-748@plc2.org keys: [748] sites: []
+753 None user2-749@plc2.org keys: [749] sites: []
+754 None user2-750@plc2.org keys: [750] sites: []
+755 None user2-751@plc2.org keys: [751] sites: []
+756 None user2-752@plc2.org keys: [752] sites: []
+757 None user2-753@plc2.org keys: [753] sites: []
+758 None user2-754@plc2.org keys: [754] sites: []
+759 None user2-755@plc2.org keys: [755] sites: []
+760 None user2-756@plc2.org keys: [756] sites: []
+761 None user2-757@plc2.org keys: [757] sites: []
+762 None user2-758@plc2.org keys: [758] sites: []
+763 None user2-759@plc2.org keys: [759] sites: []
+764 None user2-760@plc2.org keys: [760] sites: []
+765 None user2-761@plc2.org keys: [761] sites: []
+766 None user2-762@plc2.org keys: [762] sites: []
+767 None user2-763@plc2.org keys: [763] sites: []
+768 None user2-764@plc2.org keys: [764] sites: []
+769 None user2-765@plc2.org keys: [765] sites: []
+770 None user2-766@plc2.org keys: [766] sites: []
+771 None user2-767@plc2.org keys: [767] sites: []
+772 None user2-768@plc2.org keys: [768] sites: []
+773 None user2-769@plc2.org keys: [769] sites: []
+774 None user2-770@plc2.org keys: [770] sites: []
+775 None user2-771@plc2.org keys: [771] sites: []
+776 None user2-772@plc2.org keys: [772] sites: []
+777 None user2-773@plc2.org keys: [773] sites: []
+778 None user2-774@plc2.org keys: [774] sites: []
+779 None user2-775@plc2.org keys: [775] sites: []
+780 None user2-776@plc2.org keys: [776] sites: []
+781 None user2-777@plc2.org keys: [777] sites: []
+782 None user2-778@plc2.org keys: [778] sites: []
+783 None user2-779@plc2.org keys: [779] sites: []
+784 None user2-780@plc2.org keys: [780] sites: []
+785 None user2-781@plc2.org keys: [781] sites: []
+786 None user2-782@plc2.org keys: [782] sites: []
+787 None user2-783@plc2.org keys: [783] sites: []
+788 None user2-784@plc2.org keys: [784] sites: []
+789 None user2-785@plc2.org keys: [785] sites: []
+790 None user2-786@plc2.org keys: [786] sites: []
+791 None user2-787@plc2.org keys: [787] sites: []
+792 None user2-788@plc2.org keys: [788] sites: []
+793 None user2-789@plc2.org keys: [789] sites: []
+794 None user2-790@plc2.org keys: [790] sites: []
+795 None user2-791@plc2.org keys: [791] sites: []
+796 None user2-792@plc2.org keys: [792] sites: []
+797 None user2-793@plc2.org keys: [793] sites: []
+798 None user2-794@plc2.org keys: [794] sites: []
+799 None user2-795@plc2.org keys: [795] sites: []
+800 None user2-796@plc2.org keys: [796] sites: []
+801 None user2-797@plc2.org keys: [797] sites: []
+802 None user2-798@plc2.org keys: [798] sites: []
+803 None user2-799@plc2.org keys: [799] sites: []
+804 None user2-800@plc2.org keys: [800] sites: []
+805 None user2-801@plc2.org keys: [801] sites: []
+806 None user2-802@plc2.org keys: [802] sites: []
+807 None user2-803@plc2.org keys: [803] sites: []
+808 None user2-804@plc2.org keys: [804] sites: []
+809 None user2-805@plc2.org keys: [805] sites: []
+810 None user2-806@plc2.org keys: [806] sites: []
+811 None user2-807@plc2.org keys: [807] sites: []
+812 None user2-808@plc2.org keys: [808] sites: []
+813 None user2-809@plc2.org keys: [809] sites: []
+814 None user2-810@plc2.org keys: [810] sites: []
+815 None user2-811@plc2.org keys: [811] sites: []
+816 None user2-812@plc2.org keys: [812] sites: []
+817 None user2-813@plc2.org keys: [813] sites: []
+818 None user2-814@plc2.org keys: [814] sites: []
+819 None user2-815@plc2.org keys: [815] sites: []
+820 None user2-816@plc2.org keys: [816] sites: []
+821 None user2-817@plc2.org keys: [817] sites: []
+822 None user2-818@plc2.org keys: [818] sites: []
+823 None user2-819@plc2.org keys: [819] sites: []
+824 None user2-820@plc2.org keys: [820] sites: []
+825 None user2-821@plc2.org keys: [821] sites: []
+826 None user2-822@plc2.org keys: [822] sites: []
+827 None user2-823@plc2.org keys: [823] sites: []
+828 None user2-824@plc2.org keys: [824] sites: []
+829 None user2-825@plc2.org keys: [825] sites: []
+830 None user2-826@plc2.org keys: [826] sites: []
+831 None user2-827@plc2.org keys: [827] sites: []
+832 None user2-828@plc2.org keys: [828] sites: []
+833 None user2-829@plc2.org keys: [829] sites: []
+834 None user2-830@plc2.org keys: [830] sites: []
+835 None user2-831@plc2.org keys: [831] sites: []
+836 None user2-832@plc2.org keys: [832] sites: []
+837 None user2-833@plc2.org keys: [833] sites: []
+838 None user2-834@plc2.org keys: [834] sites: []
+839 None user2-835@plc2.org keys: [835] sites: []
+840 None user2-836@plc2.org keys: [836] sites: []
+841 None user2-837@plc2.org keys: [837] sites: []
+842 None user2-838@plc2.org keys: [838] sites: []
+843 None user2-839@plc2.org keys: [839] sites: []
+844 None user2-840@plc2.org keys: [840] sites: []
+845 None user2-841@plc2.org keys: [841] sites: []
+846 None user2-842@plc2.org keys: [842] sites: []
+847 None user2-843@plc2.org keys: [843] sites: []
+848 None user2-844@plc2.org keys: [844] sites: []
+849 None user2-845@plc2.org keys: [845] sites: []
+850 None user2-846@plc2.org keys: [846] sites: []
+851 None user2-847@plc2.org keys: [847] sites: []
+852 None user2-848@plc2.org keys: [848] sites: []
+853 None user2-849@plc2.org keys: [849] sites: []
+854 None user2-850@plc2.org keys: [850] sites: []
+855 None user2-851@plc2.org keys: [851] sites: []
+856 None user2-852@plc2.org keys: [852] sites: []
+857 None user2-853@plc2.org keys: [853] sites: []
+858 None user2-854@plc2.org keys: [854] sites: []
+859 None user2-855@plc2.org keys: [855] sites: []
+860 None user2-856@plc2.org keys: [856] sites: []
+861 None user2-857@plc2.org keys: [857] sites: []
+862 None user2-858@plc2.org keys: [858] sites: []
+863 None user2-859@plc2.org keys: [859] sites: []
+864 None user2-860@plc2.org keys: [860] sites: []
+865 None user2-861@plc2.org keys: [861] sites: []
+866 None user2-862@plc2.org keys: [862] sites: []
+867 None user2-863@plc2.org keys: [863] sites: []
+868 None user2-864@plc2.org keys: [864] sites: []
+869 None user2-865@plc2.org keys: [865] sites: []
+870 None user2-866@plc2.org keys: [866] sites: []
+871 None user2-867@plc2.org keys: [867] sites: []
+872 None user2-868@plc2.org keys: [868] sites: []
+873 None user2-869@plc2.org keys: [869] sites: []
+874 None user2-870@plc2.org keys: [870] sites: []
+875 None user2-871@plc2.org keys: [871] sites: []
+876 None user2-872@plc2.org keys: [872] sites: []
+877 None user2-873@plc2.org keys: [873] sites: []
+878 None user2-874@plc2.org keys: [874] sites: []
+879 None user2-875@plc2.org keys: [875] sites: []
+880 None user2-876@plc2.org keys: [876] sites: []
+881 None user2-877@plc2.org keys: [877] sites: []
+882 None user2-878@plc2.org keys: [878] sites: []
+883 None user2-879@plc2.org keys: [879] sites: []
+884 None user2-880@plc2.org keys: [880] sites: []
+885 None user2-881@plc2.org keys: [881] sites: []
+886 None user2-882@plc2.org keys: [882] sites: []
+887 None user2-883@plc2.org keys: [883] sites: []
+888 None user2-884@plc2.org keys: [884] sites: []
+889 None user2-885@plc2.org keys: [885] sites: []
+890 None user2-886@plc2.org keys: [886] sites: []
+891 None user2-887@plc2.org keys: [887] sites: []
+892 None user2-888@plc2.org keys: [888] sites: []
+893 None user2-889@plc2.org keys: [889] sites: []
+894 None user2-890@plc2.org keys: [890] sites: []
+895 None user2-891@plc2.org keys: [891] sites: []
+896 None user2-892@plc2.org keys: [892] sites: []
+897 None user2-893@plc2.org keys: [893] sites: []
+898 None user2-894@plc2.org keys: [894] sites: []
+899 None user2-895@plc2.org keys: [895] sites: []
+900 None user2-896@plc2.org keys: [896] sites: []
+901 None user2-897@plc2.org keys: [897] sites: []
+902 None user2-898@plc2.org keys: [898] sites: []
+903 None user2-899@plc2.org keys: [899] sites: []
+904 None user2-900@plc2.org keys: [900] sites: []
+905 None user2-901@plc2.org keys: [901] sites: []
+906 None user2-902@plc2.org keys: [902] sites: []
+907 None user2-903@plc2.org keys: [903] sites: []
+908 None user2-904@plc2.org keys: [904] sites: []
+909 None user2-905@plc2.org keys: [905] sites: []
+910 None user2-906@plc2.org keys: [906] sites: []
+911 None user2-907@plc2.org keys: [907] sites: []
+912 None user2-908@plc2.org keys: [908] sites: []
+913 None user2-909@plc2.org keys: [909] sites: []
+914 None user2-910@plc2.org keys: [910] sites: []
+915 None user2-911@plc2.org keys: [911] sites: []
+916 None user2-912@plc2.org keys: [912] sites: []
+917 None user2-913@plc2.org keys: [913] sites: []
+918 None user2-914@plc2.org keys: [914] sites: []
+919 None user2-915@plc2.org keys: [915] sites: []
+920 None user2-916@plc2.org keys: [916] sites: []
+921 None user2-917@plc2.org keys: [917] sites: []
+922 None user2-918@plc2.org keys: [918] sites: []
+923 None user2-919@plc2.org keys: [919] sites: []
+924 None user2-920@plc2.org keys: [920] sites: []
+925 None user2-921@plc2.org keys: [921] sites: []
+926 None user2-922@plc2.org keys: [922] sites: []
+927 None user2-923@plc2.org keys: [923] sites: []
+928 None user2-924@plc2.org keys: [924] sites: []
+929 None user2-925@plc2.org keys: [925] sites: []
+930 None user2-926@plc2.org keys: [926] sites: []
+931 None user2-927@plc2.org keys: [927] sites: []
+932 None user2-928@plc2.org keys: [928] sites: []
+933 None user2-929@plc2.org keys: [929] sites: []
+934 None user2-930@plc2.org keys: [930] sites: []
+935 None user2-931@plc2.org keys: [931] sites: []
+936 None user2-932@plc2.org keys: [932] sites: []
+937 None user2-933@plc2.org keys: [933] sites: []
+938 None user2-934@plc2.org keys: [934] sites: []
+939 None user2-935@plc2.org keys: [935] sites: []
+940 None user2-936@plc2.org keys: [936] sites: []
+941 None user2-937@plc2.org keys: [937] sites: []
+942 None user2-938@plc2.org keys: [938] sites: []
+943 None user2-939@plc2.org keys: [939] sites: []
+944 None user2-940@plc2.org keys: [940] sites: []
+945 None user2-941@plc2.org keys: [941] sites: []
+946 None user2-942@plc2.org keys: [942] sites: []
+947 None user2-943@plc2.org keys: [943] sites: []
+948 None user2-944@plc2.org keys: [944] sites: []
+949 None user2-945@plc2.org keys: [945] sites: []
+950 None user2-946@plc2.org keys: [946] sites: []
+951 None user2-947@plc2.org keys: [947] sites: []
+952 None user2-948@plc2.org keys: [948] sites: []
+953 None user2-949@plc2.org keys: [949] sites: []
+954 None user2-950@plc2.org keys: [950] sites: []
+955 None user2-951@plc2.org keys: [951] sites: []
+956 None user2-952@plc2.org keys: [952] sites: []
+957 None user2-953@plc2.org keys: [953] sites: []
+958 None user2-954@plc2.org keys: [954] sites: []
+959 None user2-955@plc2.org keys: [955] sites: []
+960 None user2-956@plc2.org keys: [956] sites: []
+961 None user2-957@plc2.org keys: [957] sites: []
+962 None user2-958@plc2.org keys: [958] sites: []
+963 None user2-959@plc2.org keys: [959] sites: []
+964 None user2-960@plc2.org keys: [960] sites: []
+965 None user2-961@plc2.org keys: [961] sites: []
+966 None user2-962@plc2.org keys: [962] sites: []
+967 None user2-963@plc2.org keys: [963] sites: []
+968 None user2-964@plc2.org keys: [964] sites: []
+969 None user2-965@plc2.org keys: [965] sites: []
+970 None user2-966@plc2.org keys: [966] sites: []
+971 None user2-967@plc2.org keys: [967] sites: []
+972 None user2-968@plc2.org keys: [968] sites: []
+973 None user2-969@plc2.org keys: [969] sites: []
+974 None user2-970@plc2.org keys: [970] sites: []
+975 None user2-971@plc2.org keys: [971] sites: []
+976 None user2-972@plc2.org keys: [972] sites: []
+977 None user2-973@plc2.org keys: [973] sites: []
+978 None user2-974@plc2.org keys: [974] sites: []
+979 None user2-975@plc2.org keys: [975] sites: []
+980 None user2-976@plc2.org keys: [976] sites: []
+981 None user2-977@plc2.org keys: [977] sites: []
+982 None user2-978@plc2.org keys: [978] sites: []
+983 None user2-979@plc2.org keys: [979] sites: []
+984 None user2-980@plc2.org keys: [980] sites: []
+985 None user2-981@plc2.org keys: [981] sites: []
+986 None user2-982@plc2.org keys: [982] sites: []
+987 None user2-983@plc2.org keys: [983] sites: []
+988 None user2-984@plc2.org keys: [984] sites: []
+989 None user2-985@plc2.org keys: [985] sites: []
+990 None user2-986@plc2.org keys: [986] sites: []
+991 None user2-987@plc2.org keys: [987] sites: []
+992 None user2-988@plc2.org keys: [988] sites: []
+993 None user2-989@plc2.org keys: [989] sites: []
+994 None user2-990@plc2.org keys: [990] sites: []
+995 None user2-991@plc2.org keys: [991] sites: []
+996 None user2-992@plc2.org keys: [992] sites: []
+997 None user2-993@plc2.org keys: [993] sites: []
+998 None user2-994@plc2.org keys: [994] sites: []
+999 None user2-995@plc2.org keys: [995] sites: []
+1000 None user2-996@plc2.org keys: [996] sites: []
+1001 None user2-997@plc2.org keys: [997] sites: []
+1002 None user2-998@plc2.org keys: [998] sites: []
+1003 None user2-999@plc2.org keys: [999] sites: []
+1004 None user2-1000@plc2.org keys: [1000] sites: []
+1005 None user2-1001@plc2.org keys: [1001] sites: []
+1006 None user2-1002@plc2.org keys: [1002] sites: []
+1007 None user2-1003@plc2.org keys: [1003] sites: []
+1008 None user2-1004@plc2.org keys: [1004] sites: []
+1009 None user2-1005@plc2.org keys: [1005] sites: []
+1010 None user2-1006@plc2.org keys: [1006] sites: []
+1011 None user2-1007@plc2.org keys: [1007] sites: []
+1012 None user2-1008@plc2.org keys: [1008] sites: []
+1013 None user2-1009@plc2.org keys: [1009] sites: []
+1014 None user2-1010@plc2.org keys: [1010] sites: []
+1015 None user2-1011@plc2.org keys: [1011] sites: []
+1016 None user2-1012@plc2.org keys: [1012] sites: []
+1017 None user2-1013@plc2.org keys: [1013] sites: []
+1018 None user2-1014@plc2.org keys: [1014] sites: []
+1019 None user2-1015@plc2.org keys: [1015] sites: []
+1020 None user2-1016@plc2.org keys: [1016] sites: []
+1021 None user2-1017@plc2.org keys: [1017] sites: []
+1022 None user2-1018@plc2.org keys: [1018] sites: []
+1023 None user2-1019@plc2.org keys: [1019] sites: []
+1024 None user2-1020@plc2.org keys: [1020] sites: []
+1025 None user2-1021@plc2.org keys: [1021] sites: []
+1026 None user2-1022@plc2.org keys: [1022] sites: []
+1027 None user2-1023@plc2.org keys: [1023] sites: []
+1028 None user2-1024@plc2.org keys: [1024] sites: []
+1029 None user2-1025@plc2.org keys: [1025] sites: []
+1030 None user2-1026@plc2.org keys: [1026] sites: []
+1031 None user2-1027@plc2.org keys: [1027] sites: []
+1032 None user2-1028@plc2.org keys: [1028] sites: []
+1033 None user2-1029@plc2.org keys: [1029] sites: []
+1034 None user2-1030@plc2.org keys: [1030] sites: []
+1035 None user2-1031@plc2.org keys: [1031] sites: []
+1036 None user2-1032@plc2.org keys: [1032] sites: []
+1037 None user2-1033@plc2.org keys: [1033] sites: []
+1038 None user2-1034@plc2.org keys: [1034] sites: []
+1039 None user2-1035@plc2.org keys: [1035] sites: []
+1040 None user2-1036@plc2.org keys: [1036] sites: []
+1041 None user2-1037@plc2.org keys: [1037] sites: []
+1042 None user2-1038@plc2.org keys: [1038] sites: []
+1043 None user2-1039@plc2.org keys: [1039] sites: []
+1044 None user2-1040@plc2.org keys: [1040] sites: []
+1045 None user2-1041@plc2.org keys: [1041] sites: []
+1046 None user2-1042@plc2.org keys: [1042] sites: []
+1047 None user2-1043@plc2.org keys: [1043] sites: []
+1048 None user2-1044@plc2.org keys: [1044] sites: []
+1049 None user2-1045@plc2.org keys: [1045] sites: []
+1050 None user2-1046@plc2.org keys: [1046] sites: []
+1051 None user2-1047@plc2.org keys: [1047] sites: []
+1052 None user2-1048@plc2.org keys: [1048] sites: []
+1053 None user2-1049@plc2.org keys: [1049] sites: []
+1054 None user2-1050@plc2.org keys: [1050] sites: []
+1055 None user2-1051@plc2.org keys: [1051] sites: []
+1056 None user2-1052@plc2.org keys: [1052] sites: []
+1057 None user2-1053@plc2.org keys: [1053] sites: []
+1058 None user2-1054@plc2.org keys: [1054] sites: []
+1059 None user2-1055@plc2.org keys: [1055] sites: []
+1060 None user2-1056@plc2.org keys: [1056] sites: []
+1061 None user2-1057@plc2.org keys: [1057] sites: []
+1062 None user2-1058@plc2.org keys: [1058] sites: []
+1063 None user2-1059@plc2.org keys: [1059] sites: []
+1064 None user2-1060@plc2.org keys: [1060] sites: []
+1065 None user2-1061@plc2.org keys: [1061] sites: []
+1066 None user2-1062@plc2.org keys: [1062] sites: []
+1067 None user2-1063@plc2.org keys: [1063] sites: []
+1068 None user2-1064@plc2.org keys: [1064] sites: []
+1069 None user2-1065@plc2.org keys: [1065] sites: []
+1070 None user2-1066@plc2.org keys: [1066] sites: []
+1071 None user2-1067@plc2.org keys: [1067] sites: []
+1072 None user2-1068@plc2.org keys: [1068] sites: []
+1073 None user2-1069@plc2.org keys: [1069] sites: []
+1074 None user2-1070@plc2.org keys: [1070] sites: []
+1075 None user2-1071@plc2.org keys: [1071] sites: []
+1076 None user2-1072@plc2.org keys: [1072] sites: []
+1077 None user2-1073@plc2.org keys: [1073] sites: []
+1078 None user2-1074@plc2.org keys: [1074] sites: []
+1079 None user2-1075@plc2.org keys: [1075] sites: []
+1080 None user2-1076@plc2.org keys: [1076] sites: []
+1081 None user2-1077@plc2.org keys: [1077] sites: []
+1082 None user2-1078@plc2.org keys: [1078] sites: []
+1083 None user2-1079@plc2.org keys: [1079] sites: []
+1084 None user2-1080@plc2.org keys: [1080] sites: []
+1085 None user2-1081@plc2.org keys: [1081] sites: []
+1086 None user2-1082@plc2.org keys: [1082] sites: []
+1087 None user2-1083@plc2.org keys: [1083] sites: []
+1088 None user2-1084@plc2.org keys: [1084] sites: []
+1089 None user2-1085@plc2.org keys: [1085] sites: []
+1090 None user2-1086@plc2.org keys: [1086] sites: []
+1091 None user2-1087@plc2.org keys: [1087] sites: []
+1092 None user2-1088@plc2.org keys: [1088] sites: []
+1093 None user2-1089@plc2.org keys: [1089] sites: []
+1094 None user2-1090@plc2.org keys: [1090] sites: []
+1095 None user2-1091@plc2.org keys: [1091] sites: []
+1096 None user2-1092@plc2.org keys: [1092] sites: []
+1097 None user2-1093@plc2.org keys: [1093] sites: []
+1098 None user2-1094@plc2.org keys: [1094] sites: []
+1099 None user2-1095@plc2.org keys: [1095] sites: []
+1100 None user2-1096@plc2.org keys: [1096] sites: []
+1101 None user2-1097@plc2.org keys: [1097] sites: []
+1102 None user2-1098@plc2.org keys: [1098] sites: []
+1103 None user2-1099@plc2.org keys: [1099] sites: []
+1104 None user2-1100@plc2.org keys: [1100] sites: []
+1105 None user2-1101@plc2.org keys: [1101] sites: []
+1106 None user2-1102@plc2.org keys: [1102] sites: []
+1107 None user2-1103@plc2.org keys: [1103] sites: []
+1108 None user2-1104@plc2.org keys: [1104] sites: []
+1109 None user2-1105@plc2.org keys: [1105] sites: []
+1110 None user2-1106@plc2.org keys: [1106] sites: []
+1111 None user2-1107@plc2.org keys: [1107] sites: []
+1112 None user2-1108@plc2.org keys: [1108] sites: []
+1113 None user2-1109@plc2.org keys: [1109] sites: []
+1114 None user2-1110@plc2.org keys: [1110] sites: []
+1115 None user2-1111@plc2.org keys: [1111] sites: []
+1116 None user2-1112@plc2.org keys: [1112] sites: []
+1117 None user2-1113@plc2.org keys: [1113] sites: []
+1118 None user2-1114@plc2.org keys: [1114] sites: []
+1119 None user2-1115@plc2.org keys: [1115] sites: []
+1120 None user2-1116@plc2.org keys: [1116] sites: []
+1121 None user2-1117@plc2.org keys: [1117] sites: []
+1122 None user2-1118@plc2.org keys: [1118] sites: []
+1123 None user2-1119@plc2.org keys: [1119] sites: []
+1124 None user2-1120@plc2.org keys: [1120] sites: []
+1125 None user2-1121@plc2.org keys: [1121] sites: []
+1126 None user2-1122@plc2.org keys: [1122] sites: []
+1127 None user2-1123@plc2.org keys: [1123] sites: []
+1128 None user2-1124@plc2.org keys: [1124] sites: []
+1129 None user2-1125@plc2.org keys: [1125] sites: []
+1130 None user2-1126@plc2.org keys: [1126] sites: []
+1131 None user2-1127@plc2.org keys: [1127] sites: []
+1132 None user2-1128@plc2.org keys: [1128] sites: []
+1133 None user2-1129@plc2.org keys: [1129] sites: []
+1134 None user2-1130@plc2.org keys: [1130] sites: []
+1135 None user2-1131@plc2.org keys: [1131] sites: []
+1136 None user2-1132@plc2.org keys: [1132] sites: []
+1137 None user2-1133@plc2.org keys: [1133] sites: []
+1138 None user2-1134@plc2.org keys: [1134] sites: []
+1139 None user2-1135@plc2.org keys: [1135] sites: []
+1140 None user2-1136@plc2.org keys: [1136] sites: []
+1141 None user2-1137@plc2.org keys: [1137] sites: []
+1142 None user2-1138@plc2.org keys: [1138] sites: []
+1143 None user2-1139@plc2.org keys: [1139] sites: []
+1144 None user2-1140@plc2.org keys: [1140] sites: []
+1145 None user2-1141@plc2.org keys: [1141] sites: []
+1146 None user2-1142@plc2.org keys: [1142] sites: []
+1147 None user2-1143@plc2.org keys: [1143] sites: []
+1148 None user2-1144@plc2.org keys: [1144] sites: []
+1149 None user2-1145@plc2.org keys: [1145] sites: []
+1150 None user2-1146@plc2.org keys: [1146] sites: []
+1151 None user2-1147@plc2.org keys: [1147] sites: []
+1152 None user2-1148@plc2.org keys: [1148] sites: []
+1153 None user2-1149@plc2.org keys: [1149] sites: []
+1154 None user2-1150@plc2.org keys: [1150] sites: []
+1155 None user2-1151@plc2.org keys: [1151] sites: []
+1156 None user2-1152@plc2.org keys: [1152] sites: []
+1157 None user2-1153@plc2.org keys: [1153] sites: []
+1158 None user2-1154@plc2.org keys: [1154] sites: []
+1159 None user2-1155@plc2.org keys: [1155] sites: []
+1160 None user2-1156@plc2.org keys: [1156] sites: []
+1161 None user2-1157@plc2.org keys: [1157] sites: []
+1162 None user2-1158@plc2.org keys: [1158] sites: []
+1163 None user2-1159@plc2.org keys: [1159] sites: []
+1164 None user2-1160@plc2.org keys: [1160] sites: []
+1165 None user2-1161@plc2.org keys: [1161] sites: []
+1166 None user2-1162@plc2.org keys: [1162] sites: []
+1167 None user2-1163@plc2.org keys: [1163] sites: []
+1168 None user2-1164@plc2.org keys: [1164] sites: []
+1169 None user2-1165@plc2.org keys: [1165] sites: []
+1170 None user2-1166@plc2.org keys: [1166] sites: []
+1171 None user2-1167@plc2.org keys: [1167] sites: []
+1172 None user2-1168@plc2.org keys: [1168] sites: []
+1173 None user2-1169@plc2.org keys: [1169] sites: []
+1174 None user2-1170@plc2.org keys: [1170] sites: []
+1175 None user2-1171@plc2.org keys: [1171] sites: []
+1176 None user2-1172@plc2.org keys: [1172] sites: []
+1177 None user2-1173@plc2.org keys: [1173] sites: []
+1178 None user2-1174@plc2.org keys: [1174] sites: []
+1179 None user2-1175@plc2.org keys: [1175] sites: []
+1180 None user2-1176@plc2.org keys: [1176] sites: []
+1181 None user2-1177@plc2.org keys: [1177] sites: []
+1182 None user2-1178@plc2.org keys: [1178] sites: []
+1183 None user2-1179@plc2.org keys: [1179] sites: []
+1184 None user2-1180@plc2.org keys: [1180] sites: []
+1185 None user2-1181@plc2.org keys: [1181] sites: []
+1186 None user2-1182@plc2.org keys: [1182] sites: []
+1187 None user2-1183@plc2.org keys: [1183] sites: []
+1188 None user2-1184@plc2.org keys: [1184] sites: []
+1189 None user2-1185@plc2.org keys: [1185] sites: []
+1190 None user2-1186@plc2.org keys: [1186] sites: []
+1191 None user2-1187@plc2.org keys: [1187] sites: []
+1192 None user2-1188@plc2.org keys: [1188] sites: []
+1193 None user2-1189@plc2.org keys: [1189] sites: []
+1194 None user2-1190@plc2.org keys: [1190] sites: []
+1195 None user2-1191@plc2.org keys: [1191] sites: []
+1196 None user2-1192@plc2.org keys: [1192] sites: []
+1197 None user2-1193@plc2.org keys: [1193] sites: []
+1198 None user2-1194@plc2.org keys: [1194] sites: []
+1199 None user2-1195@plc2.org keys: [1195] sites: []
+1200 None user2-1196@plc2.org keys: [1196] sites: []
+1201 None user2-1197@plc2.org keys: [1197] sites: []
+1202 None user2-1198@plc2.org keys: [1198] sites: []
+1203 None user2-1199@plc2.org keys: [1199] sites: []
+1204 None user2-1200@plc2.org keys: [1200] sites: []
+1205 None user2-1201@plc2.org keys: [1201] sites: []
+1206 None user2-1202@plc2.org keys: [1202] sites: []
+1207 None user2-1203@plc2.org keys: [1203] sites: []
+1208 None user2-1204@plc2.org keys: [1204] sites: []
+1209 None user2-1205@plc2.org keys: [1205] sites: []
+1210 None user2-1206@plc2.org keys: [1206] sites: []
+1211 None user2-1207@plc2.org keys: [1207] sites: []
+1212 None user2-1208@plc2.org keys: [1208] sites: []
+1213 None user2-1209@plc2.org keys: [1209] sites: []
+1214 None user2-1210@plc2.org keys: [1210] sites: []
+1215 None user2-1211@plc2.org keys: [1211] sites: []
+1216 None user2-1212@plc2.org keys: [1212] sites: []
+1217 None user2-1213@plc2.org keys: [1213] sites: []
+1218 None user2-1214@plc2.org keys: [1214] sites: []
+1219 None user2-1215@plc2.org keys: [1215] sites: []
+1220 None user2-1216@plc2.org keys: [1216] sites: []
+1221 None user2-1217@plc2.org keys: [1217] sites: []
+1222 None user2-1218@plc2.org keys: [1218] sites: []
+1223 None user2-1219@plc2.org keys: [1219] sites: []
+1224 None user2-1220@plc2.org keys: [1220] sites: []
+1225 None user2-1221@plc2.org keys: [1221] sites: []
+1226 None user2-1222@plc2.org keys: [1222] sites: []
+1227 None user2-1223@plc2.org keys: [1223] sites: []
+1228 None user2-1224@plc2.org keys: [1224] sites: []
+1229 None user2-1225@plc2.org keys: [1225] sites: []
+1230 None user2-1226@plc2.org keys: [1226] sites: []
+1231 None user2-1227@plc2.org keys: [1227] sites: []
+1232 None user2-1228@plc2.org keys: [1228] sites: []
+1233 None user2-1229@plc2.org keys: [1229] sites: []
+1234 None user2-1230@plc2.org keys: [1230] sites: []
+1235 None user2-1231@plc2.org keys: [1231] sites: []
+1236 None user2-1232@plc2.org keys: [1232] sites: []
+1237 None user2-1233@plc2.org keys: [1233] sites: []
+1238 None user2-1234@plc2.org keys: [1234] sites: []
+1239 None user2-1235@plc2.org keys: [1235] sites: []
+1240 None user2-1236@plc2.org keys: [1236] sites: []
+1241 None user2-1237@plc2.org keys: [1237] sites: []
+1242 None user2-1238@plc2.org keys: [1238] sites: []
+1243 None user2-1239@plc2.org keys: [1239] sites: []
+1244 None user2-1240@plc2.org keys: [1240] sites: []
+1245 None user2-1241@plc2.org keys: [1241] sites: []
+1246 None user2-1242@plc2.org keys: [1242] sites: []
+1247 None user2-1243@plc2.org keys: [1243] sites: []
+1248 None user2-1244@plc2.org keys: [1244] sites: []
+1249 None user2-1245@plc2.org keys: [1245] sites: []
+1250 None user2-1246@plc2.org keys: [1246] sites: []
+1251 None user2-1247@plc2.org keys: [1247] sites: []
+1252 None user2-1248@plc2.org keys: [1248] sites: []
+1253 None user2-1249@plc2.org keys: [1249] sites: []
+1254 None user2-1250@plc2.org keys: [1250] sites: []
+1255 None user2-1251@plc2.org keys: [1251] sites: []
+1256 None user2-1252@plc2.org keys: [1252] sites: []
+1257 None user2-1253@plc2.org keys: [1253] sites: []
+1258 None user2-1254@plc2.org keys: [1254] sites: []
+1259 None user2-1255@plc2.org keys: [1255] sites: []
+1260 None user2-1256@plc2.org keys: [1256] sites: []
+1261 None user2-1257@plc2.org keys: [1257] sites: []
+1262 None user2-1258@plc2.org keys: [1258] sites: []
+1263 None user2-1259@plc2.org keys: [1259] sites: []
+1264 None user2-1260@plc2.org keys: [1260] sites: []
+1265 None user2-1261@plc2.org keys: [1261] sites: []
+1266 None user2-1262@plc2.org keys: [1262] sites: []
+1267 None user2-1263@plc2.org keys: [1263] sites: []
+1268 None user2-1264@plc2.org keys: [1264] sites: []
+1269 None user2-1265@plc2.org keys: [1265] sites: []
+1270 None user2-1266@plc2.org keys: [1266] sites: []
+1271 None user2-1267@plc2.org keys: [1267] sites: []
+1272 None user2-1268@plc2.org keys: [1268] sites: []
+1273 None user2-1269@plc2.org keys: [1269] sites: []
+1274 None user2-1270@plc2.org keys: [1270] sites: []
+1275 None user2-1271@plc2.org keys: [1271] sites: []
+1276 None user2-1272@plc2.org keys: [1272] sites: []
+1277 None user2-1273@plc2.org keys: [1273] sites: []
+1278 None user2-1274@plc2.org keys: [1274] sites: []
+1279 None user2-1275@plc2.org keys: [1275] sites: []
+1280 None user2-1276@plc2.org keys: [1276] sites: []
+1281 None user2-1277@plc2.org keys: [1277] sites: []
+1282 None user2-1278@plc2.org keys: [1278] sites: []
+1283 None user2-1279@plc2.org keys: [1279] sites: []
+1284 None user2-1280@plc2.org keys: [1280] sites: []
+1285 None user2-1281@plc2.org keys: [1281] sites: []
+1286 None user2-1282@plc2.org keys: [1282] sites: []
+1287 None user2-1283@plc2.org keys: [1283] sites: []
+1288 None user2-1284@plc2.org keys: [1284] sites: []
+1289 None user2-1285@plc2.org keys: [1285] sites: []
+1290 None user2-1286@plc2.org keys: [1286] sites: []
+1291 None user2-1287@plc2.org keys: [1287] sites: []
+1292 None user2-1288@plc2.org keys: [1288] sites: []
+1293 None user2-1289@plc2.org keys: [1289] sites: []
+1294 None user2-1290@plc2.org keys: [1290] sites: []
+1295 None user2-1291@plc2.org keys: [1291] sites: []
+1296 None user2-1292@plc2.org keys: [1292] sites: []
+1297 None user2-1293@plc2.org keys: [1293] sites: []
+1298 None user2-1294@plc2.org keys: [1294] sites: []
+1299 None user2-1295@plc2.org keys: [1295] sites: []
+1300 None user2-1296@plc2.org keys: [1296] sites: []
+1301 None user2-1297@plc2.org keys: [1297] sites: []
+1302 None user2-1298@plc2.org keys: [1298] sites: []
+1303 None user2-1299@plc2.org keys: [1299] sites: []
+1304 None user2-1300@plc2.org keys: [1300] sites: []
+1305 None user2-1301@plc2.org keys: [1301] sites: []
+1306 None user2-1302@plc2.org keys: [1302] sites: []
+1307 None user2-1303@plc2.org keys: [1303] sites: []
+1308 None user2-1304@plc2.org keys: [1304] sites: []
+1309 None user2-1305@plc2.org keys: [1305] sites: []
+1310 None user2-1306@plc2.org keys: [1306] sites: []
+1311 None user2-1307@plc2.org keys: [1307] sites: []
+1312 None user2-1308@plc2.org keys: [1308] sites: []
+1313 None user2-1309@plc2.org keys: [1309] sites: []
+1314 None user2-1310@plc2.org keys: [1310] sites: []
+1315 None user2-1311@plc2.org keys: [1311] sites: []
+1316 None user2-1312@plc2.org keys: [1312] sites: []
+1317 None user2-1313@plc2.org keys: [1313] sites: []
+1318 None user2-1314@plc2.org keys: [1314] sites: []
+1319 None user2-1315@plc2.org keys: [1315] sites: []
+1320 None user2-1316@plc2.org keys: [1316] sites: []
+1321 None user2-1317@plc2.org keys: [1317] sites: []
+1322 None user2-1318@plc2.org keys: [1318] sites: []
+1323 None user2-1319@plc2.org keys: [1319] sites: []
+1324 None user2-1320@plc2.org keys: [1320] sites: []
+1325 None user2-1321@plc2.org keys: [1321] sites: []
+1326 None user2-1322@plc2.org keys: [1322] sites: []
+1327 None user2-1323@plc2.org keys: [1323] sites: []
+1328 None user2-1324@plc2.org keys: [1324] sites: []
+1329 None user2-1325@plc2.org keys: [1325] sites: []
+1330 None user2-1326@plc2.org keys: [1326] sites: []
+1331 None user2-1327@plc2.org keys: [1327] sites: []
+1332 None user2-1328@plc2.org keys: [1328] sites: []
+1333 None user2-1329@plc2.org keys: [1329] sites: []
+1334 None user2-1330@plc2.org keys: [1330] sites: []
+1335 None user2-1331@plc2.org keys: [1331] sites: []
+1336 None user2-1332@plc2.org keys: [1332] sites: []
+1337 None user2-1333@plc2.org keys: [1333] sites: []
+1338 None user2-1334@plc2.org keys: [1334] sites: []
+1339 None user2-1335@plc2.org keys: [1335] sites: []
+1340 None user2-1336@plc2.org keys: [1336] sites: []
+1341 None user2-1337@plc2.org keys: [1337] sites: []
+1342 None user2-1338@plc2.org keys: [1338] sites: []
+1343 None user2-1339@plc2.org keys: [1339] sites: []
+1344 None user2-1340@plc2.org keys: [1340] sites: []
+1345 None user2-1341@plc2.org keys: [1341] sites: []
+1346 None user2-1342@plc2.org keys: [1342] sites: []
+1347 None user2-1343@plc2.org keys: [1343] sites: []
+1348 None user2-1344@plc2.org keys: [1344] sites: []
+1349 None user2-1345@plc2.org keys: [1345] sites: []
+1350 None user2-1346@plc2.org keys: [1346] sites: []
+1351 None user2-1347@plc2.org keys: [1347] sites: []
+1352 None user2-1348@plc2.org keys: [1348] sites: []
+1353 None user2-1349@plc2.org keys: [1349] sites: []
+1354 None user2-1350@plc2.org keys: [1350] sites: []
+1355 None user2-1351@plc2.org keys: [1351] sites: []
+1356 None user2-1352@plc2.org keys: [1352] sites: []
+1357 None user2-1353@plc2.org keys: [1353] sites: []
+1358 None user2-1354@plc2.org keys: [1354] sites: []
+1359 None user2-1355@plc2.org keys: [1355] sites: []
+1360 None user2-1356@plc2.org keys: [1356] sites: []
+1361 None user2-1357@plc2.org keys: [1357] sites: []
+1362 None user2-1358@plc2.org keys: [1358] sites: []
+1363 None user2-1359@plc2.org keys: [1359] sites: []
+1364 None user2-1360@plc2.org keys: [1360] sites: []
+1365 None user2-1361@plc2.org keys: [1361] sites: []
+1366 None user2-1362@plc2.org keys: [1362] sites: []
+1367 None user2-1363@plc2.org keys: [1363] sites: []
+1368 None user2-1364@plc2.org keys: [1364] sites: []
+1369 None user2-1365@plc2.org keys: [1365] sites: []
+1370 None user2-1366@plc2.org keys: [1366] sites: []
+1371 None user2-1367@plc2.org keys: [1367] sites: []
+1372 None user2-1368@plc2.org keys: [1368] sites: []
+1373 None user2-1369@plc2.org keys: [1369] sites: []
+1374 None user2-1370@plc2.org keys: [1370] sites: []
+1375 None user2-1371@plc2.org keys: [1371] sites: []
+1376 None user2-1372@plc2.org keys: [1372] sites: []
+1377 None user2-1373@plc2.org keys: [1373] sites: []
+1378 None user2-1374@plc2.org keys: [1374] sites: []
+1379 None user2-1375@plc2.org keys: [1375] sites: []
+1380 None user2-1376@plc2.org keys: [1376] sites: []
+1381 None user2-1377@plc2.org keys: [1377] sites: []
+1382 None user2-1378@plc2.org keys: [1378] sites: []
+1383 None user2-1379@plc2.org keys: [1379] sites: []
+1384 None user2-1380@plc2.org keys: [1380] sites: []
+1385 None user2-1381@plc2.org keys: [1381] sites: []
+1386 None user2-1382@plc2.org keys: [1382] sites: []
+1387 None user2-1383@plc2.org keys: [1383] sites: []
+1388 None user2-1384@plc2.org keys: [1384] sites: []
+1389 None user2-1385@plc2.org keys: [1385] sites: []
+1390 None user2-1386@plc2.org keys: [1386] sites: []
+1391 None user2-1387@plc2.org keys: [1387] sites: []
+1392 None user2-1388@plc2.org keys: [1388] sites: []
+1393 None user2-1389@plc2.org keys: [1389] sites: []
+1394 None user2-1390@plc2.org keys: [1390] sites: []
+1395 None user2-1391@plc2.org keys: [1391] sites: []
+1396 None user2-1392@plc2.org keys: [1392] sites: []
+1397 None user2-1393@plc2.org keys: [1393] sites: []
+1398 None user2-1394@plc2.org keys: [1394] sites: []
+1399 None user2-1395@plc2.org keys: [1395] sites: []
+1400 None user2-1396@plc2.org keys: [1396] sites: []
+1401 None user2-1397@plc2.org keys: [1397] sites: []
+1402 None user2-1398@plc2.org keys: [1398] sites: []
+1403 None user2-1399@plc2.org keys: [1399] sites: []
+1404 None user2-1400@plc2.org keys: [1400] sites: []
+1405 None user2-1401@plc2.org keys: [1401] sites: []
+1406 None user2-1402@plc2.org keys: [1402] sites: []
+1407 None user2-1403@plc2.org keys: [1403] sites: []
+1408 None user2-1404@plc2.org keys: [1404] sites: []
+1409 None user2-1405@plc2.org keys: [1405] sites: []
+1410 None user2-1406@plc2.org keys: [1406] sites: []
+1411 None user2-1407@plc2.org keys: [1407] sites: []
+1412 None user2-1408@plc2.org keys: [1408] sites: []
+1413 None user2-1409@plc2.org keys: [1409] sites: []
+1414 None user2-1410@plc2.org keys: [1410] sites: []
+1415 None user2-1411@plc2.org keys: [1411] sites: []
+1416 None user2-1412@plc2.org keys: [1412] sites: []
+1417 None user2-1413@plc2.org keys: [1413] sites: []
+1418 None user2-1414@plc2.org keys: [1414] sites: []
+1419 None user2-1415@plc2.org keys: [1415] sites: []
+1420 None user2-1416@plc2.org keys: [1416] sites: []
+1421 None user2-1417@plc2.org keys: [1417] sites: []
+1422 None user2-1418@plc2.org keys: [1418] sites: []
+1423 None user2-1419@plc2.org keys: [1419] sites: []
+1424 None user2-1420@plc2.org keys: [1420] sites: []
+1425 None user2-1421@plc2.org keys: [1421] sites: []
+1426 None user2-1422@plc2.org keys: [1422] sites: []
+1427 None user2-1423@plc2.org keys: [1423] sites: []
+1428 None user2-1424@plc2.org keys: [1424] sites: []
+1429 None user2-1425@plc2.org keys: [1425] sites: []
+1430 None user2-1426@plc2.org keys: [1426] sites: []
+1431 None user2-1427@plc2.org keys: [1427] sites: []
+1432 None user2-1428@plc2.org keys: [1428] sites: []
+1433 None user2-1429@plc2.org keys: [1429] sites: []
+1434 None user2-1430@plc2.org keys: [1430] sites: []
+1435 None user2-1431@plc2.org keys: [1431] sites: []
+1436 None user2-1432@plc2.org keys: [1432] sites: []
+1437 None user2-1433@plc2.org keys: [1433] sites: []
+1438 None user2-1434@plc2.org keys: [1434] sites: []
+1439 None user2-1435@plc2.org keys: [1435] sites: []
+1440 None user2-1436@plc2.org keys: [1436] sites: []
+1441 None user2-1437@plc2.org keys: [1437] sites: []
+1442 None user2-1438@plc2.org keys: [1438] sites: []
+1443 None user2-1439@plc2.org keys: [1439] sites: []
+1444 None user2-1440@plc2.org keys: [1440] sites: []
+1445 None user2-1441@plc2.org keys: [1441] sites: []
+1446 None user2-1442@plc2.org keys: [1442] sites: []
+1447 None user2-1443@plc2.org keys: [1443] sites: []
+1448 None user2-1444@plc2.org keys: [1444] sites: []
+1449 None user2-1445@plc2.org keys: [1445] sites: []
+1450 None user2-1446@plc2.org keys: [1446] sites: []
+1451 None user2-1447@plc2.org keys: [1447] sites: []
+1452 None user2-1448@plc2.org keys: [1448] sites: []
+1453 None user2-1449@plc2.org keys: [1449] sites: []
+1454 None user2-1450@plc2.org keys: [1450] sites: []
+1455 None user2-1451@plc2.org keys: [1451] sites: []
+1456 None user2-1452@plc2.org keys: [1452] sites: []
+1457 None user2-1453@plc2.org keys: [1453] sites: []
+1458 None user2-1454@plc2.org keys: [1454] sites: []
+1459 None user2-1455@plc2.org keys: [1455] sites: []
+1460 None user2-1456@plc2.org keys: [1456] sites: []
+1461 None user2-1457@plc2.org keys: [1457] sites: []
+1462 None user2-1458@plc2.org keys: [1458] sites: []
+1463 None user2-1459@plc2.org keys: [1459] sites: []
+1464 None user2-1460@plc2.org keys: [1460] sites: []
+1465 None user2-1461@plc2.org keys: [1461] sites: []
+1466 None user2-1462@plc2.org keys: [1462] sites: []
+1467 None user2-1463@plc2.org keys: [1463] sites: []
+1468 None user2-1464@plc2.org keys: [1464] sites: []
+1469 None user2-1465@plc2.org keys: [1465] sites: []
+1470 None user2-1466@plc2.org keys: [1466] sites: []
+1471 None user2-1467@plc2.org keys: [1467] sites: []
+1472 None user2-1468@plc2.org keys: [1468] sites: []
+1473 None user2-1469@plc2.org keys: [1469] sites: []
+1474 None user2-1470@plc2.org keys: [1470] sites: []
+1475 None user2-1471@plc2.org keys: [1471] sites: []
+1476 None user2-1472@plc2.org keys: [1472] sites: []
+1477 None user2-1473@plc2.org keys: [1473] sites: []
+1478 None user2-1474@plc2.org keys: [1474] sites: []
+1479 None user2-1475@plc2.org keys: [1475] sites: []
+1480 None user2-1476@plc2.org keys: [1476] sites: []
+1481 None user2-1477@plc2.org keys: [1477] sites: []
+1482 None user2-1478@plc2.org keys: [1478] sites: []
+1483 None user2-1479@plc2.org keys: [1479] sites: []
+1484 None user2-1480@plc2.org keys: [1480] sites: []
+1485 None user2-1481@plc2.org keys: [1481] sites: []
+1486 None user2-1482@plc2.org keys: [1482] sites: []
+1487 None user2-1483@plc2.org keys: [1483] sites: []
+1488 None user2-1484@plc2.org keys: [1484] sites: []
+1489 None user2-1485@plc2.org keys: [1485] sites: []
+1490 None user2-1486@plc2.org keys: [1486] sites: []
+1491 None user2-1487@plc2.org keys: [1487] sites: []
+1492 None user2-1488@plc2.org keys: [1488] sites: []
+1493 None user2-1489@plc2.org keys: [1489] sites: []
+1494 None user2-1490@plc2.org keys: [1490] sites: []
+1495 None user2-1491@plc2.org keys: [1491] sites: []
+1496 None user2-1492@plc2.org keys: [1492] sites: []
+1497 None user2-1493@plc2.org keys: [1493] sites: []
+1498 None user2-1494@plc2.org keys: [1494] sites: []
+1499 None user2-1495@plc2.org keys: [1495] sites: []
+1500 None user2-1496@plc2.org keys: [1496] sites: []
+1501 None user2-1497@plc2.org keys: [1497] sites: []
+1502 None user2-1498@plc2.org keys: [1498] sites: []
+1503 None user2-1499@plc2.org keys: [1499] sites: []
+1504 None user2-1500@plc2.org keys: [1500] sites: []
+1505 None user2-1501@plc2.org keys: [1501] sites: []
+1506 None user2-1502@plc2.org keys: [1502] sites: []
+1507 None user2-1503@plc2.org keys: [1503] sites: []
+1508 None user2-1504@plc2.org keys: [1504] sites: []
+1509 None user2-1505@plc2.org keys: [1505] sites: []
+1510 None user2-1506@plc2.org keys: [1506] sites: []
+1511 None user2-1507@plc2.org keys: [1507] sites: []
+1512 None user2-1508@plc2.org keys: [1508] sites: []
+1513 None user2-1509@plc2.org keys: [1509] sites: []
+1514 None user2-1510@plc2.org keys: [1510] sites: []
+1515 None user2-1511@plc2.org keys: [1511] sites: []
+1516 None user2-1512@plc2.org keys: [1512] sites: []
+1517 None user2-1513@plc2.org keys: [1513] sites: []
+1518 None user2-1514@plc2.org keys: [1514] sites: []
+1519 None user2-1515@plc2.org keys: [1515] sites: []
+1520 None user2-1516@plc2.org keys: [1516] sites: []
+1521 None user2-1517@plc2.org keys: [1517] sites: []
+1522 None user2-1518@plc2.org keys: [1518] sites: []
+1523 None user2-1519@plc2.org keys: [1519] sites: []
+1524 None user2-1520@plc2.org keys: [1520] sites: []
+1525 None user2-1521@plc2.org keys: [1521] sites: []
+1526 None user2-1522@plc2.org keys: [1522] sites: []
+1527 None user2-1523@plc2.org keys: [1523] sites: []
+1528 None user2-1524@plc2.org keys: [1524] sites: []
+1529 None user2-1525@plc2.org keys: [1525] sites: []
+1530 None user2-1526@plc2.org keys: [1526] sites: []
+1531 None user2-1527@plc2.org keys: [1527] sites: []
+1532 None user2-1528@plc2.org keys: [1528] sites: []
+1533 None user2-1529@plc2.org keys: [1529] sites: []
+1534 None user2-1530@plc2.org keys: [1530] sites: []
+1535 None user2-1531@plc2.org keys: [1531] sites: []
+1536 None user2-1532@plc2.org keys: [1532] sites: []
+1537 None user2-1533@plc2.org keys: [1533] sites: []
+1538 None user2-1534@plc2.org keys: [1534] sites: []
+1539 None user2-1535@plc2.org keys: [1535] sites: []
+1540 None user2-1536@plc2.org keys: [1536] sites: []
+1541 None user2-1537@plc2.org keys: [1537] sites: []
+1542 None user2-1538@plc2.org keys: [1538] sites: []
+1543 None user2-1539@plc2.org keys: [1539] sites: []
+1544 None user2-1540@plc2.org keys: [1540] sites: []
+1545 None user2-1541@plc2.org keys: [1541] sites: []
+1546 None user2-1542@plc2.org keys: [1542] sites: []
+1547 None user2-1543@plc2.org keys: [1543] sites: []
+1548 None user2-1544@plc2.org keys: [1544] sites: []
+1549 None user2-1545@plc2.org keys: [1545] sites: []
+1550 None user2-1546@plc2.org keys: [1546] sites: []
+1551 None user2-1547@plc2.org keys: [1547] sites: []
+1552 None user2-1548@plc2.org keys: [1548] sites: []
+1553 None user2-1549@plc2.org keys: [1549] sites: []
+1554 None user2-1550@plc2.org keys: [1550] sites: []
+1555 None user2-1551@plc2.org keys: [1551] sites: []
+1556 None user2-1552@plc2.org keys: [1552] sites: []
+1557 None user2-1553@plc2.org keys: [1553] sites: []
+1558 None user2-1554@plc2.org keys: [1554] sites: []
+1559 None user2-1555@plc2.org keys: [1555] sites: []
+1560 None user2-1556@plc2.org keys: [1556] sites: []
+1561 None user2-1557@plc2.org keys: [1557] sites: []
+1562 None user2-1558@plc2.org keys: [1558] sites: []
+1563 None user2-1559@plc2.org keys: [1559] sites: []
+1564 None user2-1560@plc2.org keys: [1560] sites: []
+1565 None user2-1561@plc2.org keys: [1561] sites: []
+1566 None user2-1562@plc2.org keys: [1562] sites: []
+1567 None user2-1563@plc2.org keys: [1563] sites: []
+1568 None user2-1564@plc2.org keys: [1564] sites: []
+1569 None user2-1565@plc2.org keys: [1565] sites: []
+1570 None user2-1566@plc2.org keys: [1566] sites: []
+1571 None user2-1567@plc2.org keys: [1567] sites: []
+1572 None user2-1568@plc2.org keys: [1568] sites: []
+1573 None user2-1569@plc2.org keys: [1569] sites: []
+1574 None user2-1570@plc2.org keys: [1570] sites: []
+1575 None user2-1571@plc2.org keys: [1571] sites: []
+1576 None user2-1572@plc2.org keys: [1572] sites: []
+1577 None user2-1573@plc2.org keys: [1573] sites: []
+1578 None user2-1574@plc2.org keys: [1574] sites: []
+1579 None user2-1575@plc2.org keys: [1575] sites: []
+1580 None user2-1576@plc2.org keys: [1576] sites: []
+1581 None user2-1577@plc2.org keys: [1577] sites: []
+1582 None user2-1578@plc2.org keys: [1578] sites: []
+1583 None user2-1579@plc2.org keys: [1579] sites: []
+1584 None user2-1580@plc2.org keys: [1580] sites: []
+1585 None user2-1581@plc2.org keys: [1581] sites: []
+1586 None user2-1582@plc2.org keys: [1582] sites: []
+1587 None user2-1583@plc2.org keys: [1583] sites: []
+1588 None user2-1584@plc2.org keys: [1584] sites: []
+1589 None user2-1585@plc2.org keys: [1585] sites: []
+1590 None user2-1586@plc2.org keys: [1586] sites: []
+1591 None user2-1587@plc2.org keys: [1587] sites: []
+1592 None user2-1588@plc2.org keys: [1588] sites: []
+1593 None user2-1589@plc2.org keys: [1589] sites: []
+1594 None user2-1590@plc2.org keys: [1590] sites: []
+1595 None user2-1591@plc2.org keys: [1591] sites: []
+1596 None user2-1592@plc2.org keys: [1592] sites: []
+1597 None user2-1593@plc2.org keys: [1593] sites: []
+1598 None user2-1594@plc2.org keys: [1594] sites: []
+1599 None user2-1595@plc2.org keys: [1595] sites: []
+1600 None user2-1596@plc2.org keys: [1596] sites: []
+1601 None user2-1597@plc2.org keys: [1597] sites: []
+1602 None user2-1598@plc2.org keys: [1598] sites: []
+1603 None user2-1599@plc2.org keys: [1599] sites: []
+1604 None user2-1600@plc2.org keys: [1600] sites: []
+1605 None user2-1601@plc2.org keys: [1601] sites: []
+1606 None user2-1602@plc2.org keys: [1602] sites: []
+1607 None user2-1603@plc2.org keys: [1603] sites: []
+1608 None user2-1604@plc2.org keys: [1604] sites: []
+1609 None user2-1605@plc2.org keys: [1605] sites: []
+1610 None user2-1606@plc2.org keys: [1606] sites: []
+1611 None user2-1607@plc2.org keys: [1607] sites: []
+1612 None user2-1608@plc2.org keys: [1608] sites: []
+1613 None user2-1609@plc2.org keys: [1609] sites: []
+1614 None user2-1610@plc2.org keys: [1610] sites: []
+1615 None user2-1611@plc2.org keys: [1611] sites: []
+1616 None user2-1612@plc2.org keys: [1612] sites: []
+1617 None user2-1613@plc2.org keys: [1613] sites: []
+1618 None user2-1614@plc2.org keys: [1614] sites: []
+1619 None user2-1615@plc2.org keys: [1615] sites: []
+1620 None user2-1616@plc2.org keys: [1616] sites: []
+1621 None user2-1617@plc2.org keys: [1617] sites: []
+1622 None user2-1618@plc2.org keys: [1618] sites: []
+1623 None user2-1619@plc2.org keys: [1619] sites: []
+1624 None user2-1620@plc2.org keys: [1620] sites: []
+1625 None user2-1621@plc2.org keys: [1621] sites: []
+1626 None user2-1622@plc2.org keys: [1622] sites: []
+1627 None user2-1623@plc2.org keys: [1623] sites: []
+1628 None user2-1624@plc2.org keys: [1624] sites: []
+1629 None user2-1625@plc2.org keys: [1625] sites: []
+1630 None user2-1626@plc2.org keys: [1626] sites: []
+1631 None user2-1627@plc2.org keys: [1627] sites: []
+1632 None user2-1628@plc2.org keys: [1628] sites: []
+1633 None user2-1629@plc2.org keys: [1629] sites: []
+1634 None user2-1630@plc2.org keys: [1630] sites: []
+1635 None user2-1631@plc2.org keys: [1631] sites: []
+1636 None user2-1632@plc2.org keys: [1632] sites: []
+1637 None user2-1633@plc2.org keys: [1633] sites: []
+1638 None user2-1634@plc2.org keys: [1634] sites: []
+1639 None user2-1635@plc2.org keys: [1635] sites: []
+1640 None user2-1636@plc2.org keys: [1636] sites: []
+1641 None user2-1637@plc2.org keys: [1637] sites: []
+1642 None user2-1638@plc2.org keys: [1638] sites: []
+1643 None user2-1639@plc2.org keys: [1639] sites: []
+1644 None user2-1640@plc2.org keys: [1640] sites: []
+1645 None user2-1641@plc2.org keys: [1641] sites: []
+1646 None user2-1642@plc2.org keys: [1642] sites: []
+1647 None user2-1643@plc2.org keys: [1643] sites: []
+1648 None user2-1644@plc2.org keys: [1644] sites: []
+1649 None user2-1645@plc2.org keys: [1645] sites: []
+1650 None user2-1646@plc2.org keys: [1646] sites: []
+1651 None user2-1647@plc2.org keys: [1647] sites: []
+1652 None user2-1648@plc2.org keys: [1648] sites: []
+1653 None user2-1649@plc2.org keys: [1649] sites: []
+1654 None user2-1650@plc2.org keys: [1650] sites: []
+1655 None user2-1651@plc2.org keys: [1651] sites: []
+1656 None user2-1652@plc2.org keys: [1652] sites: []
+1657 None user2-1653@plc2.org keys: [1653] sites: []
+1658 None user2-1654@plc2.org keys: [1654] sites: []
+1659 None user2-1655@plc2.org keys: [1655] sites: []
+1660 None user2-1656@plc2.org keys: [1656] sites: []
+1661 None user2-1657@plc2.org keys: [1657] sites: []
+1662 None user2-1658@plc2.org keys: [1658] sites: []
+1663 None user2-1659@plc2.org keys: [1659] sites: []
+1664 None user2-1660@plc2.org keys: [1660] sites: []
+1665 None user2-1661@plc2.org keys: [1661] sites: []
+1666 None user2-1662@plc2.org keys: [1662] sites: []
+1667 None user2-1663@plc2.org keys: [1663] sites: []
+1668 None user2-1664@plc2.org keys: [1664] sites: []
+1669 None user2-1665@plc2.org keys: [1665] sites: []
+1670 None user2-1666@plc2.org keys: [1666] sites: []
+1671 None user2-1667@plc2.org keys: [1667] sites: []
+1672 None user2-1668@plc2.org keys: [1668] sites: []
+1673 None user2-1669@plc2.org keys: [1669] sites: []
+1674 None user2-1670@plc2.org keys: [1670] sites: []
+1675 None user2-1671@plc2.org keys: [1671] sites: []
+1676 None user2-1672@plc2.org keys: [1672] sites: []
+1677 None user2-1673@plc2.org keys: [1673] sites: []
+1678 None user2-1674@plc2.org keys: [1674] sites: []
+1679 None user2-1675@plc2.org keys: [1675] sites: []
+1680 None user2-1676@plc2.org keys: [1676] sites: []
+1681 None user2-1677@plc2.org keys: [1677] sites: []
+1682 None user2-1678@plc2.org keys: [1678] sites: []
+1683 None user2-1679@plc2.org keys: [1679] sites: []
+1684 None user2-1680@plc2.org keys: [1680] sites: []
+1685 None user2-1681@plc2.org keys: [1681] sites: []
+1686 None user2-1682@plc2.org keys: [1682] sites: []
+1687 None user2-1683@plc2.org keys: [1683] sites: []
+1688 None user2-1684@plc2.org keys: [1684] sites: []
+1689 None user2-1685@plc2.org keys: [1685] sites: []
+1690 None user2-1686@plc2.org keys: [1686] sites: []
+1691 None user2-1687@plc2.org keys: [1687] sites: []
+1692 None user2-1688@plc2.org keys: [1688] sites: []
+1693 None user2-1689@plc2.org keys: [1689] sites: []
+1694 None user2-1690@plc2.org keys: [1690] sites: []
+1695 None user2-1691@plc2.org keys: [1691] sites: []
+1696 None user2-1692@plc2.org keys: [1692] sites: []
+1697 None user2-1693@plc2.org keys: [1693] sites: []
+1698 None user2-1694@plc2.org keys: [1694] sites: []
+1699 None user2-1695@plc2.org keys: [1695] sites: []
+1700 None user2-1696@plc2.org keys: [1696] sites: []
+1701 None user2-1697@plc2.org keys: [1697] sites: []
+1702 None user2-1698@plc2.org keys: [1698] sites: []
+1703 None user2-1699@plc2.org keys: [1699] sites: []
+1704 None user2-1700@plc2.org keys: [1700] sites: []
+1705 None user2-1701@plc2.org keys: [1701] sites: []
+1706 None user2-1702@plc2.org keys: [1702] sites: []
+1707 None user2-1703@plc2.org keys: [1703] sites: []
+1708 None user2-1704@plc2.org keys: [1704] sites: []
+1709 None user2-1705@plc2.org keys: [1705] sites: []
+1710 None user2-1706@plc2.org keys: [1706] sites: []
+1711 None user2-1707@plc2.org keys: [1707] sites: []
+1712 None user2-1708@plc2.org keys: [1708] sites: []
+1713 None user2-1709@plc2.org keys: [1709] sites: []
+1714 None user2-1710@plc2.org keys: [1710] sites: []
+1715 None user2-1711@plc2.org keys: [1711] sites: []
+1716 None user2-1712@plc2.org keys: [1712] sites: []
+1717 None user2-1713@plc2.org keys: [1713] sites: []
+1718 None user2-1714@plc2.org keys: [1714] sites: []
+1719 None user2-1715@plc2.org keys: [1715] sites: []
+1720 None user2-1716@plc2.org keys: [1716] sites: []
+1721 None user2-1717@plc2.org keys: [1717] sites: []
+1722 None user2-1718@plc2.org keys: [1718] sites: []
+1723 None user2-1719@plc2.org keys: [1719] sites: []
+1724 None user2-1720@plc2.org keys: [1720] sites: []
+1725 None user2-1721@plc2.org keys: [1721] sites: []
+1726 None user2-1722@plc2.org keys: [1722] sites: []
+1727 None user2-1723@plc2.org keys: [1723] sites: []
+1728 None user2-1724@plc2.org keys: [1724] sites: []
+1729 None user2-1725@plc2.org keys: [1725] sites: []
+1730 None user2-1726@plc2.org keys: [1726] sites: []
+1731 None user2-1727@plc2.org keys: [1727] sites: []
+1732 None user2-1728@plc2.org keys: [1728] sites: []
+1733 None user2-1729@plc2.org keys: [1729] sites: []
+1734 None user2-1730@plc2.org keys: [1730] sites: []
+1735 None user2-1731@plc2.org keys: [1731] sites: []
+1736 None user2-1732@plc2.org keys: [1732] sites: []
+1737 None user2-1733@plc2.org keys: [1733] sites: []
+1738 None user2-1734@plc2.org keys: [1734] sites: []
+1739 None user2-1735@plc2.org keys: [1735] sites: []
+1740 None user2-1736@plc2.org keys: [1736] sites: []
+1741 None user2-1737@plc2.org keys: [1737] sites: []
+1742 None user2-1738@plc2.org keys: [1738] sites: []
+1743 None user2-1739@plc2.org keys: [1739] sites: []
+1744 None user2-1740@plc2.org keys: [1740] sites: []
+1745 None user2-1741@plc2.org keys: [1741] sites: []
+1746 None user2-1742@plc2.org keys: [1742] sites: []
+1747 None user2-1743@plc2.org keys: [1743] sites: []
+1748 None user2-1744@plc2.org keys: [1744] sites: []
+1749 None user2-1745@plc2.org keys: [1745] sites: []
+1750 None user2-1746@plc2.org keys: [1746] sites: []
+1751 None user2-1747@plc2.org keys: [1747] sites: []
+1752 None user2-1748@plc2.org keys: [1748] sites: []
+1753 None user2-1749@plc2.org keys: [1749] sites: []
+1754 None user2-1750@plc2.org keys: [1750] sites: []
+1755 None user2-1751@plc2.org keys: [1751] sites: []
+1756 None user2-1752@plc2.org keys: [1752] sites: []
+1757 None user2-1753@plc2.org keys: [1753] sites: []
+1758 None user2-1754@plc2.org keys: [1754] sites: []
+1759 None user2-1755@plc2.org keys: [1755] sites: []
+1760 None user2-1756@plc2.org keys: [1756] sites: []
+1761 None user2-1757@plc2.org keys: [1757] sites: []
+1762 None user2-1758@plc2.org keys: [1758] sites: []
+1763 None user2-1759@plc2.org keys: [1759] sites: []
+1764 None user2-1760@plc2.org keys: [1760] sites: []
+1765 None user2-1761@plc2.org keys: [1761] sites: []
+1766 None user2-1762@plc2.org keys: [1762] sites: []
+1767 None user2-1763@plc2.org keys: [1763] sites: []
+1768 None user2-1764@plc2.org keys: [1764] sites: []
+1769 None user2-1765@plc2.org keys: [1765] sites: []
+1770 None user2-1766@plc2.org keys: [1766] sites: []
+1771 None user2-1767@plc2.org keys: [1767] sites: []
+1772 None user2-1768@plc2.org keys: [1768] sites: []
+1773 None user2-1769@plc2.org keys: [1769] sites: []
+1774 None user2-1770@plc2.org keys: [1770] sites: []
+1775 None user2-1771@plc2.org keys: [1771] sites: []
+1776 None user2-1772@plc2.org keys: [1772] sites: []
+1777 None user2-1773@plc2.org keys: [1773] sites: []
+1778 None user2-1774@plc2.org keys: [1774] sites: []
+1779 None user2-1775@plc2.org keys: [1775] sites: []
+1780 None user2-1776@plc2.org keys: [1776] sites: []
+1781 None user2-1777@plc2.org keys: [1777] sites: []
+1782 None user2-1778@plc2.org keys: [1778] sites: []
+1783 None user2-1779@plc2.org keys: [1779] sites: []
+1784 None user2-1780@plc2.org keys: [1780] sites: []
+1785 None user2-1781@plc2.org keys: [1781] sites: []
+1786 None user2-1782@plc2.org keys: [1782] sites: []
+1787 None user2-1783@plc2.org keys: [1783] sites: []
+1788 None user2-1784@plc2.org keys: [1784] sites: []
+1789 None user2-1785@plc2.org keys: [1785] sites: []
+1790 None user2-1786@plc2.org keys: [1786] sites: []
+1791 None user2-1787@plc2.org keys: [1787] sites: []
+1792 None user2-1788@plc2.org keys: [1788] sites: []
+1793 None user2-1789@plc2.org keys: [1789] sites: []
+1794 None user2-1790@plc2.org keys: [1790] sites: []
+1795 None user2-1791@plc2.org keys: [1791] sites: []
+1796 None user2-1792@plc2.org keys: [1792] sites: []
+1797 None user2-1793@plc2.org keys: [1793] sites: []
+1798 None user2-1794@plc2.org keys: [1794] sites: []
+1799 None user2-1795@plc2.org keys: [1795] sites: []
+1800 None user2-1796@plc2.org keys: [1796] sites: []
+1801 None user2-1797@plc2.org keys: [1797] sites: []
+1802 None user2-1798@plc2.org keys: [1798] sites: []
+1803 None user2-1799@plc2.org keys: [1799] sites: []
+1804 None user2-1800@plc2.org keys: [1800] sites: []
+1805 None user2-1801@plc2.org keys: [1801] sites: []
+1806 None user2-1802@plc2.org keys: [1802] sites: []
+1807 None user2-1803@plc2.org keys: [1803] sites: []
+1808 None user2-1804@plc2.org keys: [1804] sites: []
+1809 None user2-1805@plc2.org keys: [1805] sites: []
+1810 None user2-1806@plc2.org keys: [1806] sites: []
+1811 None user2-1807@plc2.org keys: [1807] sites: []
+1812 None user2-1808@plc2.org keys: [1808] sites: []
+1813 None user2-1809@plc2.org keys: [1809] sites: []
+1814 None user2-1810@plc2.org keys: [1810] sites: []
+1815 None user2-1811@plc2.org keys: [1811] sites: []
+1816 None user2-1812@plc2.org keys: [1812] sites: []
+1817 None user2-1813@plc2.org keys: [1813] sites: []
+1818 None user2-1814@plc2.org keys: [1814] sites: []
+1819 None user2-1815@plc2.org keys: [1815] sites: []
+1820 None user2-1816@plc2.org keys: [1816] sites: []
+1821 None user2-1817@plc2.org keys: [1817] sites: []
+1822 None user2-1818@plc2.org keys: [1818] sites: []
+1823 None user2-1819@plc2.org keys: [1819] sites: []
+1824 None user2-1820@plc2.org keys: [1820] sites: []
+1825 None user2-1821@plc2.org keys: [1821] sites: []
+1826 None user2-1822@plc2.org keys: [1822] sites: []
+1827 None user2-1823@plc2.org keys: [1823] sites: []
+1828 None user2-1824@plc2.org keys: [1824] sites: []
+1829 None user2-1825@plc2.org keys: [1825] sites: []
+1830 None user2-1826@plc2.org keys: [1826] sites: []
+1831 None user2-1827@plc2.org keys: [1827] sites: []
+1832 None user2-1828@plc2.org keys: [1828] sites: []
+1833 None user2-1829@plc2.org keys: [1829] sites: []
+1834 None user2-1830@plc2.org keys: [1830] sites: []
+1835 None user2-1831@plc2.org keys: [1831] sites: []
+1836 None user2-1832@plc2.org keys: [1832] sites: []
+1837 None user2-1833@plc2.org keys: [1833] sites: []
+1838 None user2-1834@plc2.org keys: [1834] sites: []
+1839 None user2-1835@plc2.org keys: [1835] sites: []
+1840 None user2-1836@plc2.org keys: [1836] sites: []
+1841 None user2-1837@plc2.org keys: [1837] sites: []
+1842 None user2-1838@plc2.org keys: [1838] sites: []
+1843 None user2-1839@plc2.org keys: [1839] sites: []
+1844 None user2-1840@plc2.org keys: [1840] sites: []
+1845 None user2-1841@plc2.org keys: [1841] sites: []
+1846 None user2-1842@plc2.org keys: [1842] sites: []
+1847 None user2-1843@plc2.org keys: [1843] sites: []
+1848 None user2-1844@plc2.org keys: [1844] sites: []
+1849 None user2-1845@plc2.org keys: [1845] sites: []
+1850 None user2-1846@plc2.org keys: [1846] sites: []
+1851 None user2-1847@plc2.org keys: [1847] sites: []
+1852 None user2-1848@plc2.org keys: [1848] sites: []
+1853 None user2-1849@plc2.org keys: [1849] sites: []
+1854 None user2-1850@plc2.org keys: [1850] sites: []
+1855 None user2-1851@plc2.org keys: [1851] sites: []
+1856 None user2-1852@plc2.org keys: [1852] sites: []
+1857 None user2-1853@plc2.org keys: [1853] sites: []
+1858 None user2-1854@plc2.org keys: [1854] sites: []
+1859 None user2-1855@plc2.org keys: [1855] sites: []
+1860 None user2-1856@plc2.org keys: [1856] sites: []
+1861 None user2-1857@plc2.org keys: [1857] sites: []
+1862 None user2-1858@plc2.org keys: [1858] sites: []
+1863 None user2-1859@plc2.org keys: [1859] sites: []
+1864 None user2-1860@plc2.org keys: [1860] sites: []
+1865 None user2-1861@plc2.org keys: [1861] sites: []
+1866 None user2-1862@plc2.org keys: [1862] sites: []
+1867 None user2-1863@plc2.org keys: [1863] sites: []
+1868 None user2-1864@plc2.org keys: [1864] sites: []
+1869 None user2-1865@plc2.org keys: [1865] sites: []
+1870 None user2-1866@plc2.org keys: [1866] sites: []
+1871 None user2-1867@plc2.org keys: [1867] sites: []
+1872 None user2-1868@plc2.org keys: [1868] sites: []
+1873 None user2-1869@plc2.org keys: [1869] sites: []
+1874 None user2-1870@plc2.org keys: [1870] sites: []
+1875 None user2-1871@plc2.org keys: [1871] sites: []
+1876 None user2-1872@plc2.org keys: [1872] sites: []
+1877 None user2-1873@plc2.org keys: [1873] sites: []
+1878 None user2-1874@plc2.org keys: [1874] sites: []
+1879 None user2-1875@plc2.org keys: [1875] sites: []
+1880 None user2-1876@plc2.org keys: [1876] sites: []
+1881 None user2-1877@plc2.org keys: [1877] sites: []
+1882 None user2-1878@plc2.org keys: [1878] sites: []
+1883 None user2-1879@plc2.org keys: [1879] sites: []
+1884 None user2-1880@plc2.org keys: [1880] sites: []
+1885 None user2-1881@plc2.org keys: [1881] sites: []
+1886 None user2-1882@plc2.org keys: [1882] sites: []
+1887 None user2-1883@plc2.org keys: [1883] sites: []
+1888 None user2-1884@plc2.org keys: [1884] sites: []
+1889 None user2-1885@plc2.org keys: [1885] sites: []
+1890 None user2-1886@plc2.org keys: [1886] sites: []
+1891 None user2-1887@plc2.org keys: [1887] sites: []
+1892 None user2-1888@plc2.org keys: [1888] sites: []
+1893 None user2-1889@plc2.org keys: [1889] sites: []
+1894 None user2-1890@plc2.org keys: [1890] sites: []
+1895 None user2-1891@plc2.org keys: [1891] sites: []
+1896 None user2-1892@plc2.org keys: [1892] sites: []
+1897 None user2-1893@plc2.org keys: [1893] sites: []
+1898 None user2-1894@plc2.org keys: [1894] sites: []
+1899 None user2-1895@plc2.org keys: [1895] sites: []
+1900 None user2-1896@plc2.org keys: [1896] sites: []
+1901 None user2-1897@plc2.org keys: [1897] sites: []
+1902 None user2-1898@plc2.org keys: [1898] sites: []
+1903 None user2-1899@plc2.org keys: [1899] sites: []
+1904 None user2-1900@plc2.org keys: [1900] sites: []
+1905 None user2-1901@plc2.org keys: [1901] sites: []
+1906 None user2-1902@plc2.org keys: [1902] sites: []
+1907 None user2-1903@plc2.org keys: [1903] sites: []
+1908 None user2-1904@plc2.org keys: [1904] sites: []
+1909 None user2-1905@plc2.org keys: [1905] sites: []
+1910 None user2-1906@plc2.org keys: [1906] sites: []
+1911 None user2-1907@plc2.org keys: [1907] sites: []
+1912 None user2-1908@plc2.org keys: [1908] sites: []
+1913 None user2-1909@plc2.org keys: [1909] sites: []
+1914 None user2-1910@plc2.org keys: [1910] sites: []
+1915 None user2-1911@plc2.org keys: [1911] sites: []
+1916 None user2-1912@plc2.org keys: [1912] sites: []
+1917 None user2-1913@plc2.org keys: [1913] sites: []
+1918 None user2-1914@plc2.org keys: [1914] sites: []
+1919 None user2-1915@plc2.org keys: [1915] sites: []
+1920 None user2-1916@plc2.org keys: [1916] sites: []
+1921 None user2-1917@plc2.org keys: [1917] sites: []
+1922 None user2-1918@plc2.org keys: [1918] sites: []
+1923 None user2-1919@plc2.org keys: [1919] sites: []
+1924 None user2-1920@plc2.org keys: [1920] sites: []
+1925 None user2-1921@plc2.org keys: [1921] sites: []
+1926 None user2-1922@plc2.org keys: [1922] sites: []
+1927 None user2-1923@plc2.org keys: [1923] sites: []
+1928 None user2-1924@plc2.org keys: [1924] sites: []
+1929 None user2-1925@plc2.org keys: [1925] sites: []
+1930 None user2-1926@plc2.org keys: [1926] sites: []
+1931 None user2-1927@plc2.org keys: [1927] sites: []
+1932 None user2-1928@plc2.org keys: [1928] sites: []
+1933 None user2-1929@plc2.org keys: [1929] sites: []
+1934 None user2-1930@plc2.org keys: [1930] sites: []
+1935 None user2-1931@plc2.org keys: [1931] sites: []
+1936 None user2-1932@plc2.org keys: [1932] sites: []
+1937 None user2-1933@plc2.org keys: [1933] sites: []
+1938 None user2-1934@plc2.org keys: [1934] sites: []
+1939 None user2-1935@plc2.org keys: [1935] sites: []
+1940 None user2-1936@plc2.org keys: [1936] sites: []
+1941 None user2-1937@plc2.org keys: [1937] sites: []
+1942 None user2-1938@plc2.org keys: [1938] sites: []
+1943 None user2-1939@plc2.org keys: [1939] sites: []
+1944 None user2-1940@plc2.org keys: [1940] sites: []
+1945 None user2-1941@plc2.org keys: [1941] sites: []
+1946 None user2-1942@plc2.org keys: [1942] sites: []
+1947 None user2-1943@plc2.org keys: [1943] sites: []
+1948 None user2-1944@plc2.org keys: [1944] sites: []
+1949 None user2-1945@plc2.org keys: [1945] sites: []
+1950 None user2-1946@plc2.org keys: [1946] sites: []
+1951 None user2-1947@plc2.org keys: [1947] sites: []
+1952 None user2-1948@plc2.org keys: [1948] sites: []
+1953 None user2-1949@plc2.org keys: [1949] sites: []
+1954 None user2-1950@plc2.org keys: [1950] sites: []
+1955 None user2-1951@plc2.org keys: [1951] sites: []
+1956 None user2-1952@plc2.org keys: [1952] sites: []
+1957 None user2-1953@plc2.org keys: [1953] sites: []
+1958 None user2-1954@plc2.org keys: [1954] sites: []
+1959 None user2-1955@plc2.org keys: [1955] sites: []
+1960 None user2-1956@plc2.org keys: [1956] sites: []
+1961 None user2-1957@plc2.org keys: [1957] sites: []
+1962 None user2-1958@plc2.org keys: [1958] sites: []
+1963 None user2-1959@plc2.org keys: [1959] sites: []
+1964 None user2-1960@plc2.org keys: [1960] sites: []
+1965 None user2-1961@plc2.org keys: [1961] sites: []
+1966 None user2-1962@plc2.org keys: [1962] sites: []
+1967 None user2-1963@plc2.org keys: [1963] sites: []
+1968 None user2-1964@plc2.org keys: [1964] sites: []
+1969 None user2-1965@plc2.org keys: [1965] sites: []
+1970 None user2-1966@plc2.org keys: [1966] sites: []
+1971 None user2-1967@plc2.org keys: [1967] sites: []
+1972 None user2-1968@plc2.org keys: [1968] sites: []
+1973 None user2-1969@plc2.org keys: [1969] sites: []
+1974 None user2-1970@plc2.org keys: [1970] sites: []
+1975 None user2-1971@plc2.org keys: [1971] sites: []
+1976 None user2-1972@plc2.org keys: [1972] sites: []
+1977 None user2-1973@plc2.org keys: [1973] sites: []
+1978 None user2-1974@plc2.org keys: [1974] sites: []
+1979 None user2-1975@plc2.org keys: [1975] sites: []
+1980 None user2-1976@plc2.org keys: [1976] sites: []
+1981 None user2-1977@plc2.org keys: [1977] sites: []
+1982 None user2-1978@plc2.org keys: [1978] sites: []
+1983 None user2-1979@plc2.org keys: [1979] sites: []
+1984 None user2-1980@plc2.org keys: [1980] sites: []
+1985 None user2-1981@plc2.org keys: [1981] sites: []
+1986 None user2-1982@plc2.org keys: [1982] sites: []
+1987 None user2-1983@plc2.org keys: [1983] sites: []
+1988 None user2-1984@plc2.org keys: [1984] sites: []
+1989 None user2-1985@plc2.org keys: [1985] sites: []
+1990 None user2-1986@plc2.org keys: [1986] sites: []
+1991 None user2-1987@plc2.org keys: [1987] sites: []
+1992 None user2-1988@plc2.org keys: [1988] sites: []
+1993 None user2-1989@plc2.org keys: [1989] sites: []
+1994 None user2-1990@plc2.org keys: [1990] sites: []
+1995 None user2-1991@plc2.org keys: [1991] sites: []
+1996 None user2-1992@plc2.org keys: [1992] sites: []
+1997 None user2-1993@plc2.org keys: [1993] sites: []
+1998 None user2-1994@plc2.org keys: [1994] sites: []
+1999 None user2-1995@plc2.org keys: [1995] sites: []
+2000 None user2-1996@plc2.org keys: [1996] sites: []
+2001 None user2-1997@plc2.org keys: [1997] sites: []
+2002 None user2-1998@plc2.org keys: [1998] sites: []
+2003 None user2-1999@plc2.org keys: [1999] sites: []
+2004 None user2-2000@plc2.org keys: [2000] sites: []
+2005 1 root@plc1.org keys: [] sites: [1002]
+2006 1 user1-1@plc1.org keys: [2001] sites: []
+2007 1 user1-2@plc1.org keys: [2002] sites: []
+2008 1 user1-3@plc1.org keys: [2003] sites: []
+2009 1 user1-4@plc1.org keys: [2004] sites: []
+2010 1 user1-5@plc1.org keys: [2005] sites: []
+2011 1 user1-6@plc1.org keys: [2006] sites: []
+2012 1 user1-7@plc1.org keys: [2007] sites: []
+2013 1 user1-8@plc1.org keys: [2008] sites: []
+2014 1 user1-9@plc1.org keys: [2009] sites: []
+2015 1 user1-10@plc1.org keys: [2010] sites: []
+2016 1 user1-11@plc1.org keys: [2011] sites: []
+2017 1 user1-12@plc1.org keys: [2012] sites: []
+2018 1 user1-13@plc1.org keys: [2013] sites: []
+2019 1 user1-14@plc1.org keys: [2014] sites: []
+2020 1 user1-15@plc1.org keys: [2015] sites: []
+2021 1 user1-16@plc1.org keys: [2016] sites: []
+2022 1 user1-17@plc1.org keys: [2017] sites: []
+2023 1 user1-18@plc1.org keys: [2018] sites: []
+2024 1 user1-19@plc1.org keys: [2019] sites: []
+2025 1 user1-20@plc1.org keys: [2020] sites: []
+2026 1 user1-21@plc1.org keys: [2021] sites: []
+2027 1 user1-22@plc1.org keys: [2022] sites: []
+2028 1 user1-23@plc1.org keys: [2023] sites: []
+2029 1 user1-24@plc1.org keys: [2024] sites: []
+2030 1 user1-25@plc1.org keys: [2025] sites: []
+2031 1 user1-26@plc1.org keys: [2026] sites: []
+2032 1 user1-27@plc1.org keys: [2027] sites: []
+2033 1 user1-28@plc1.org keys: [2028] sites: []
+2034 1 user1-29@plc1.org keys: [2029] sites: []
+2035 1 user1-30@plc1.org keys: [2030] sites: []
+2036 1 user1-31@plc1.org keys: [2031] sites: []
+2037 1 user1-32@plc1.org keys: [2032] sites: []
+2038 1 user1-33@plc1.org keys: [2033] sites: []
+2039 1 user1-34@plc1.org keys: [2034] sites: []
+2040 1 user1-35@plc1.org keys: [2035] sites: []
+2041 1 user1-36@plc1.org keys: [2036] sites: []
+2042 1 user1-37@plc1.org keys: [2037] sites: []
+2043 1 user1-38@plc1.org keys: [2038] sites: []
+2044 1 user1-39@plc1.org keys: [2039] sites: []
+2045 1 user1-40@plc1.org keys: [2040] sites: []
+2046 1 user1-41@plc1.org keys: [2041] sites: []
+2047 1 user1-42@plc1.org keys: [2042] sites: []
+2048 1 user1-43@plc1.org keys: [2043] sites: []
+2049 1 user1-44@plc1.org keys: [2044] sites: []
+2050 1 user1-45@plc1.org keys: [2045] sites: []
+2051 1 user1-46@plc1.org keys: [2046] sites: []
+2052 1 user1-47@plc1.org keys: [2047] sites: []
+2053 1 user1-48@plc1.org keys: [2048] sites: []
+2054 1 user1-49@plc1.org keys: [2049] sites: []
+2055 1 user1-50@plc1.org keys: [2050] sites: []
+2056 1 user1-51@plc1.org keys: [2051] sites: []
+2057 1 user1-52@plc1.org keys: [2052] sites: []
+2058 1 user1-53@plc1.org keys: [2053] sites: []
+2059 1 user1-54@plc1.org keys: [2054] sites: []
+2060 1 user1-55@plc1.org keys: [2055] sites: []
+2061 1 user1-56@plc1.org keys: [2056] sites: []
+2062 1 user1-57@plc1.org keys: [2057] sites: []
+2063 1 user1-58@plc1.org keys: [2058] sites: []
+2064 1 user1-59@plc1.org keys: [2059] sites: []
+2065 1 user1-60@plc1.org keys: [2060] sites: []
+2066 1 user1-61@plc1.org keys: [2061] sites: []
+2067 1 user1-62@plc1.org keys: [2062] sites: []
+2068 1 user1-63@plc1.org keys: [2063] sites: []
+2069 1 user1-64@plc1.org keys: [2064] sites: []
+2070 1 user1-65@plc1.org keys: [2065] sites: []
+2071 1 user1-66@plc1.org keys: [2066] sites: []
+2072 1 user1-67@plc1.org keys: [2067] sites: []
+2073 1 user1-68@plc1.org keys: [2068] sites: []
+2074 1 user1-69@plc1.org keys: [2069] sites: []
+2075 1 user1-70@plc1.org keys: [2070] sites: []
+2076 1 user1-71@plc1.org keys: [2071] sites: []
+2077 1 user1-72@plc1.org keys: [2072] sites: []
+2078 1 user1-73@plc1.org keys: [2073] sites: []
+2079 1 user1-74@plc1.org keys: [2074] sites: []
+2080 1 user1-75@plc1.org keys: [2075] sites: []
+2081 1 user1-76@plc1.org keys: [2076] sites: []
+2082 1 user1-77@plc1.org keys: [2077] sites: []
+2083 1 user1-78@plc1.org keys: [2078] sites: []
+2084 1 user1-79@plc1.org keys: [2079] sites: []
+2085 1 user1-80@plc1.org keys: [2080] sites: []
+2086 1 user1-81@plc1.org keys: [2081] sites: []
+2087 1 user1-82@plc1.org keys: [2082] sites: []
+2088 1 user1-83@plc1.org keys: [2083] sites: []
+2089 1 user1-84@plc1.org keys: [2084] sites: []
+2090 1 user1-85@plc1.org keys: [2085] sites: []
+2091 1 user1-86@plc1.org keys: [2086] sites: []
+2092 1 user1-87@plc1.org keys: [2087] sites: []
+2093 1 user1-88@plc1.org keys: [2088] sites: []
+2094 1 user1-89@plc1.org keys: [2089] sites: []
+2095 1 user1-90@plc1.org keys: [2090] sites: []
+2096 1 user1-91@plc1.org keys: [2091] sites: []
+2097 1 user1-92@plc1.org keys: [2092] sites: []
+2098 1 user1-93@plc1.org keys: [2093] sites: []
+2099 1 user1-94@plc1.org keys: [2094] sites: []
+2100 1 user1-95@plc1.org keys: [2095] sites: []
+2101 1 user1-96@plc1.org keys: [2096] sites: []
+2102 1 user1-97@plc1.org keys: [2097] sites: []
+2103 1 user1-98@plc1.org keys: [2098] sites: []
+2104 1 user1-99@plc1.org keys: [2099] sites: []
+2105 1 user1-100@plc1.org keys: [2100] sites: []
+2106 1 user1-101@plc1.org keys: [2101] sites: []
+2107 1 user1-102@plc1.org keys: [2102] sites: []
+2108 1 user1-103@plc1.org keys: [2103] sites: []
+2109 1 user1-104@plc1.org keys: [2104] sites: []
+2110 1 user1-105@plc1.org keys: [2105] sites: []
+2111 1 user1-106@plc1.org keys: [2106] sites: []
+2112 1 user1-107@plc1.org keys: [2107] sites: []
+2113 1 user1-108@plc1.org keys: [2108] sites: []
+2114 1 user1-109@plc1.org keys: [2109] sites: []
+2115 1 user1-110@plc1.org keys: [2110] sites: []
+2116 1 user1-111@plc1.org keys: [2111] sites: []
+2117 1 user1-112@plc1.org keys: [2112] sites: []
+2118 1 user1-113@plc1.org keys: [2113] sites: []
+2119 1 user1-114@plc1.org keys: [2114] sites: []
+2120 1 user1-115@plc1.org keys: [2115] sites: []
+2121 1 user1-116@plc1.org keys: [2116] sites: []
+2122 1 user1-117@plc1.org keys: [2117] sites: []
+2123 1 user1-118@plc1.org keys: [2118] sites: []
+2124 1 user1-119@plc1.org keys: [2119] sites: []
+2125 1 user1-120@plc1.org keys: [2120] sites: []
+2126 1 user1-121@plc1.org keys: [2121] sites: []
+2127 1 user1-122@plc1.org keys: [2122] sites: []
+2128 1 user1-123@plc1.org keys: [2123] sites: []
+2129 1 user1-124@plc1.org keys: [2124] sites: []
+2130 1 user1-125@plc1.org keys: [2125] sites: []
+2131 1 user1-126@plc1.org keys: [2126] sites: []
+2132 1 user1-127@plc1.org keys: [2127] sites: []
+2133 1 user1-128@plc1.org keys: [2128] sites: []
+2134 1 user1-129@plc1.org keys: [2129] sites: []
+2135 1 user1-130@plc1.org keys: [2130] sites: []
+2136 1 user1-131@plc1.org keys: [2131] sites: []
+2137 1 user1-132@plc1.org keys: [2132] sites: []
+2138 1 user1-133@plc1.org keys: [2133] sites: []
+2139 1 user1-134@plc1.org keys: [2134] sites: []
+2140 1 user1-135@plc1.org keys: [2135] sites: []
+2141 1 user1-136@plc1.org keys: [2136] sites: []
+2142 1 user1-137@plc1.org keys: [2137] sites: []
+2143 1 user1-138@plc1.org keys: [2138] sites: []
+2144 1 user1-139@plc1.org keys: [2139] sites: []
+2145 1 user1-140@plc1.org keys: [2140] sites: []
+2146 1 user1-141@plc1.org keys: [2141] sites: []
+2147 1 user1-142@plc1.org keys: [2142] sites: []
+2148 1 user1-143@plc1.org keys: [2143] sites: []
+2149 1 user1-144@plc1.org keys: [2144] sites: []
+2150 1 user1-145@plc1.org keys: [2145] sites: []
+2151 1 user1-146@plc1.org keys: [2146] sites: []
+2152 1 user1-147@plc1.org keys: [2147] sites: []
+2153 1 user1-148@plc1.org keys: [2148] sites: []
+2154 1 user1-149@plc1.org keys: [2149] sites: []
+2155 1 user1-150@plc1.org keys: [2150] sites: []
+2156 1 user1-151@plc1.org keys: [2151] sites: []
+2157 1 user1-152@plc1.org keys: [2152] sites: []
+2158 1 user1-153@plc1.org keys: [2153] sites: []
+2159 1 user1-154@plc1.org keys: [2154] sites: []
+2160 1 user1-155@plc1.org keys: [2155] sites: []
+2161 1 user1-156@plc1.org keys: [2156] sites: []
+2162 1 user1-157@plc1.org keys: [2157] sites: []
+2163 1 user1-158@plc1.org keys: [2158] sites: []
+2164 1 user1-159@plc1.org keys: [2159] sites: []
+2165 1 user1-160@plc1.org keys: [2160] sites: []
+2166 1 user1-161@plc1.org keys: [2161] sites: []
+2167 1 user1-162@plc1.org keys: [2162] sites: []
+2168 1 user1-163@plc1.org keys: [2163] sites: []
+2169 1 user1-164@plc1.org keys: [2164] sites: []
+2170 1 user1-165@plc1.org keys: [2165] sites: []
+2171 1 user1-166@plc1.org keys: [2166] sites: []
+2172 1 user1-167@plc1.org keys: [2167] sites: []
+2173 1 user1-168@plc1.org keys: [2168] sites: []
+2174 1 user1-169@plc1.org keys: [2169] sites: []
+2175 1 user1-170@plc1.org keys: [2170] sites: []
+2176 1 user1-171@plc1.org keys: [2171] sites: []
+2177 1 user1-172@plc1.org keys: [2172] sites: []
+2178 1 user1-173@plc1.org keys: [2173] sites: []
+2179 1 user1-174@plc1.org keys: [2174] sites: []
+2180 1 user1-175@plc1.org keys: [2175] sites: []
+2181 1 user1-176@plc1.org keys: [2176] sites: []
+2182 1 user1-177@plc1.org keys: [2177] sites: []
+2183 1 user1-178@plc1.org keys: [2178] sites: []
+2184 1 user1-179@plc1.org keys: [2179] sites: []
+2185 1 user1-180@plc1.org keys: [2180] sites: []
+2186 1 user1-181@plc1.org keys: [2181] sites: []
+2187 1 user1-182@plc1.org keys: [2182] sites: []
+2188 1 user1-183@plc1.org keys: [2183] sites: []
+2189 1 user1-184@plc1.org keys: [2184] sites: []
+2190 1 user1-185@plc1.org keys: [2185] sites: []
+2191 1 user1-186@plc1.org keys: [2186] sites: []
+2192 1 user1-187@plc1.org keys: [2187] sites: []
+2193 1 user1-188@plc1.org keys: [2188] sites: []
+2194 1 user1-189@plc1.org keys: [2189] sites: []
+2195 1 user1-190@plc1.org keys: [2190] sites: []
+2196 1 user1-191@plc1.org keys: [2191] sites: []
+2197 1 user1-192@plc1.org keys: [2192] sites: []
+2198 1 user1-193@plc1.org keys: [2193] sites: []
+2199 1 user1-194@plc1.org keys: [2194] sites: []
+2200 1 user1-195@plc1.org keys: [2195] sites: []
+2201 1 user1-196@plc1.org keys: [2196] sites: []
+2202 1 user1-197@plc1.org keys: [2197] sites: []
+2203 1 user1-198@plc1.org keys: [2198] sites: []
+2204 1 user1-199@plc1.org keys: [2199] sites: []
+2205 1 user1-200@plc1.org keys: [2200] sites: []
+2206 1 user1-201@plc1.org keys: [2201] sites: []
+2207 1 user1-202@plc1.org keys: [2202] sites: []
+2208 1 user1-203@plc1.org keys: [2203] sites: []
+2209 1 user1-204@plc1.org keys: [2204] sites: []
+2210 1 user1-205@plc1.org keys: [2205] sites: []
+2211 1 user1-206@plc1.org keys: [2206] sites: []
+2212 1 user1-207@plc1.org keys: [2207] sites: []
+2213 1 user1-208@plc1.org keys: [2208] sites: []
+2214 1 user1-209@plc1.org keys: [2209] sites: []
+2215 1 user1-210@plc1.org keys: [2210] sites: []
+2216 1 user1-211@plc1.org keys: [2211] sites: []
+2217 1 user1-212@plc1.org keys: [2212] sites: []
+2218 1 user1-213@plc1.org keys: [2213] sites: []
+2219 1 user1-214@plc1.org keys: [2214] sites: []
+2220 1 user1-215@plc1.org keys: [2215] sites: []
+2221 1 user1-216@plc1.org keys: [2216] sites: []
+2222 1 user1-217@plc1.org keys: [2217] sites: []
+2223 1 user1-218@plc1.org keys: [2218] sites: []
+2224 1 user1-219@plc1.org keys: [2219] sites: []
+2225 1 user1-220@plc1.org keys: [2220] sites: []
+2226 1 user1-221@plc1.org keys: [2221] sites: []
+2227 1 user1-222@plc1.org keys: [2222] sites: []
+2228 1 user1-223@plc1.org keys: [2223] sites: []
+2229 1 user1-224@plc1.org keys: [2224] sites: []
+2230 1 user1-225@plc1.org keys: [2225] sites: []
+2231 1 user1-226@plc1.org keys: [2226] sites: []
+2232 1 user1-227@plc1.org keys: [2227] sites: []
+2233 1 user1-228@plc1.org keys: [2228] sites: []
+2234 1 user1-229@plc1.org keys: [2229] sites: []
+2235 1 user1-230@plc1.org keys: [2230] sites: []
+2236 1 user1-231@plc1.org keys: [2231] sites: []
+2237 1 user1-232@plc1.org keys: [2232] sites: []
+2238 1 user1-233@plc1.org keys: [2233] sites: []
+2239 1 user1-234@plc1.org keys: [2234] sites: []
+2240 1 user1-235@plc1.org keys: [2235] sites: []
+2241 1 user1-236@plc1.org keys: [2236] sites: []
+2242 1 user1-237@plc1.org keys: [2237] sites: []
+2243 1 user1-238@plc1.org keys: [2238] sites: []
+2244 1 user1-239@plc1.org keys: [2239] sites: []
+2245 1 user1-240@plc1.org keys: [2240] sites: []
+2246 1 user1-241@plc1.org keys: [2241] sites: []
+2247 1 user1-242@plc1.org keys: [2242] sites: []
+2248 1 user1-243@plc1.org keys: [2243] sites: []
+2249 1 user1-244@plc1.org keys: [2244] sites: []
+2250 1 user1-245@plc1.org keys: [2245] sites: []
+2251 1 user1-246@plc1.org keys: [2246] sites: []
+2252 1 user1-247@plc1.org keys: [2247] sites: []
+2253 1 user1-248@plc1.org keys: [2248] sites: []
+2254 1 user1-249@plc1.org keys: [2249] sites: []
+2255 1 user1-250@plc1.org keys: [2250] sites: []
+2256 1 user1-251@plc1.org keys: [2251] sites: []
+2257 1 user1-252@plc1.org keys: [2252] sites: []
+2258 1 user1-253@plc1.org keys: [2253] sites: []
+2259 1 user1-254@plc1.org keys: [2254] sites: []
+2260 1 user1-255@plc1.org keys: [2255] sites: []
+2261 1 user1-256@plc1.org keys: [2256] sites: []
+2262 1 user1-257@plc1.org keys: [2257] sites: []
+2263 1 user1-258@plc1.org keys: [2258] sites: []
+2264 1 user1-259@plc1.org keys: [2259] sites: []
+2265 1 user1-260@plc1.org keys: [2260] sites: []
+2266 1 user1-261@plc1.org keys: [2261] sites: []
+2267 1 user1-262@plc1.org keys: [2262] sites: []
+2268 1 user1-263@plc1.org keys: [2263] sites: []
+2269 1 user1-264@plc1.org keys: [2264] sites: []
+2270 1 user1-265@plc1.org keys: [2265] sites: []
+2271 1 user1-266@plc1.org keys: [2266] sites: []
+2272 1 user1-267@plc1.org keys: [2267] sites: []
+2273 1 user1-268@plc1.org keys: [2268] sites: []
+2274 1 user1-269@plc1.org keys: [2269] sites: []
+2275 1 user1-270@plc1.org keys: [2270] sites: []
+2276 1 user1-271@plc1.org keys: [2271] sites: []
+2277 1 user1-272@plc1.org keys: [2272] sites: []
+2278 1 user1-273@plc1.org keys: [2273] sites: []
+2279 1 user1-274@plc1.org keys: [2274] sites: []
+2280 1 user1-275@plc1.org keys: [2275] sites: []
+2281 1 user1-276@plc1.org keys: [2276] sites: []
+2282 1 user1-277@plc1.org keys: [2277] sites: []
+2283 1 user1-278@plc1.org keys: [2278] sites: []
+2284 1 user1-279@plc1.org keys: [2279] sites: []
+2285 1 user1-280@plc1.org keys: [2280] sites: []
+2286 1 user1-281@plc1.org keys: [2281] sites: []
+2287 1 user1-282@plc1.org keys: [2282] sites: []
+2288 1 user1-283@plc1.org keys: [2283] sites: []
+2289 1 user1-284@plc1.org keys: [2284] sites: []
+2290 1 user1-285@plc1.org keys: [2285] sites: []
+2291 1 user1-286@plc1.org keys: [2286] sites: []
+2292 1 user1-287@plc1.org keys: [2287] sites: []
+2293 1 user1-288@plc1.org keys: [2288] sites: []
+2294 1 user1-289@plc1.org keys: [2289] sites: []
+2295 1 user1-290@plc1.org keys: [2290] sites: []
+2296 1 user1-291@plc1.org keys: [2291] sites: []
+2297 1 user1-292@plc1.org keys: [2292] sites: []
+2298 1 user1-293@plc1.org keys: [2293] sites: []
+2299 1 user1-294@plc1.org keys: [2294] sites: []
+2300 1 user1-295@plc1.org keys: [2295] sites: []
+2301 1 user1-296@plc1.org keys: [2296] sites: []
+2302 1 user1-297@plc1.org keys: [2297] sites: []
+2303 1 user1-298@plc1.org keys: [2298] sites: []
+2304 1 user1-299@plc1.org keys: [2299] sites: []
+2305 1 user1-300@plc1.org keys: [2300] sites: []
+2306 1 user1-301@plc1.org keys: [2301] sites: []
+2307 1 user1-302@plc1.org keys: [2302] sites: []
+2308 1 user1-303@plc1.org keys: [2303] sites: []
+2309 1 user1-304@plc1.org keys: [2304] sites: []
+2310 1 user1-305@plc1.org keys: [2305] sites: []
+2311 1 user1-306@plc1.org keys: [2306] sites: []
+2312 1 user1-307@plc1.org keys: [2307] sites: []
+2313 1 user1-308@plc1.org keys: [2308] sites: []
+2314 1 user1-309@plc1.org keys: [2309] sites: []
+2315 1 user1-310@plc1.org keys: [2310] sites: []
+2316 1 user1-311@plc1.org keys: [2311] sites: []
+2317 1 user1-312@plc1.org keys: [2312] sites: []
+2318 1 user1-313@plc1.org keys: [2313] sites: []
+2319 1 user1-314@plc1.org keys: [2314] sites: []
+2320 1 user1-315@plc1.org keys: [2315] sites: []
+2321 1 user1-316@plc1.org keys: [2316] sites: []
+2322 1 user1-317@plc1.org keys: [2317] sites: []
+2323 1 user1-318@plc1.org keys: [2318] sites: []
+2324 1 user1-319@plc1.org keys: [2319] sites: []
+2325 1 user1-320@plc1.org keys: [2320] sites: []
+2326 1 user1-321@plc1.org keys: [2321] sites: []
+2327 1 user1-322@plc1.org keys: [2322] sites: []
+2328 1 user1-323@plc1.org keys: [2323] sites: []
+2329 1 user1-324@plc1.org keys: [2324] sites: []
+2330 1 user1-325@plc1.org keys: [2325] sites: []
+2331 1 user1-326@plc1.org keys: [2326] sites: []
+2332 1 user1-327@plc1.org keys: [2327] sites: []
+2333 1 user1-328@plc1.org keys: [2328] sites: []
+2334 1 user1-329@plc1.org keys: [2329] sites: []
+2335 1 user1-330@plc1.org keys: [2330] sites: []
+2336 1 user1-331@plc1.org keys: [2331] sites: []
+2337 1 user1-332@plc1.org keys: [2332] sites: []
+2338 1 user1-333@plc1.org keys: [2333] sites: []
+2339 1 user1-334@plc1.org keys: [2334] sites: []
+2340 1 user1-335@plc1.org keys: [2335] sites: []
+2341 1 user1-336@plc1.org keys: [2336] sites: []
+2342 1 user1-337@plc1.org keys: [2337] sites: []
+2343 1 user1-338@plc1.org keys: [2338] sites: []
+2344 1 user1-339@plc1.org keys: [2339] sites: []
+2345 1 user1-340@plc1.org keys: [2340] sites: []
+2346 1 user1-341@plc1.org keys: [2341] sites: []
+2347 1 user1-342@plc1.org keys: [2342] sites: []
+2348 1 user1-343@plc1.org keys: [2343] sites: []
+2349 1 user1-344@plc1.org keys: [2344] sites: []
+2350 1 user1-345@plc1.org keys: [2345] sites: []
+2351 1 user1-346@plc1.org keys: [2346] sites: []
+2352 1 user1-347@plc1.org keys: [2347] sites: []
+2353 1 user1-348@plc1.org keys: [2348] sites: []
+2354 1 user1-349@plc1.org keys: [2349] sites: []
+2355 1 user1-350@plc1.org keys: [2350] sites: []
+2356 1 user1-351@plc1.org keys: [2351] sites: []
+2357 1 user1-352@plc1.org keys: [2352] sites: []
+2358 1 user1-353@plc1.org keys: [2353] sites: []
+2359 1 user1-354@plc1.org keys: [2354] sites: []
+2360 1 user1-355@plc1.org keys: [2355] sites: []
+2361 1 user1-356@plc1.org keys: [2356] sites: []
+2362 1 user1-357@plc1.org keys: [2357] sites: []
+2363 1 user1-358@plc1.org keys: [2358] sites: []
+2364 1 user1-359@plc1.org keys: [2359] sites: []
+2365 1 user1-360@plc1.org keys: [2360] sites: []
+2366 1 user1-361@plc1.org keys: [2361] sites: []
+2367 1 user1-362@plc1.org keys: [2362] sites: []
+2368 1 user1-363@plc1.org keys: [2363] sites: []
+2369 1 user1-364@plc1.org keys: [2364] sites: []
+2370 1 user1-365@plc1.org keys: [2365] sites: []
+2371 1 user1-366@plc1.org keys: [2366] sites: []
+2372 1 user1-367@plc1.org keys: [2367] sites: []
+2373 1 user1-368@plc1.org keys: [2368] sites: []
+2374 1 user1-369@plc1.org keys: [2369] sites: []
+2375 1 user1-370@plc1.org keys: [2370] sites: []
+2376 1 user1-371@plc1.org keys: [2371] sites: []
+2377 1 user1-372@plc1.org keys: [2372] sites: []
+2378 1 user1-373@plc1.org keys: [2373] sites: []
+2379 1 user1-374@plc1.org keys: [2374] sites: []
+2380 1 user1-375@plc1.org keys: [2375] sites: []
+2381 1 user1-376@plc1.org keys: [2376] sites: []
+2382 1 user1-377@plc1.org keys: [2377] sites: []
+2383 1 user1-378@plc1.org keys: [2378] sites: []
+2384 1 user1-379@plc1.org keys: [2379] sites: []
+2385 1 user1-380@plc1.org keys: [2380] sites: []
+2386 1 user1-381@plc1.org keys: [2381] sites: []
+2387 1 user1-382@plc1.org keys: [2382] sites: []
+2388 1 user1-383@plc1.org keys: [2383] sites: []
+2389 1 user1-384@plc1.org keys: [2384] sites: []
+2390 1 user1-385@plc1.org keys: [2385] sites: []
+2391 1 user1-386@plc1.org keys: [2386] sites: []
+2392 1 user1-387@plc1.org keys: [2387] sites: []
+2393 1 user1-388@plc1.org keys: [2388] sites: []
+2394 1 user1-389@plc1.org keys: [2389] sites: []
+2395 1 user1-390@plc1.org keys: [2390] sites: []
+2396 1 user1-391@plc1.org keys: [2391] sites: []
+2397 1 user1-392@plc1.org keys: [2392] sites: []
+2398 1 user1-393@plc1.org keys: [2393] sites: []
+2399 1 user1-394@plc1.org keys: [2394] sites: []
+2400 1 user1-395@plc1.org keys: [2395] sites: []
+2401 1 user1-396@plc1.org keys: [2396] sites: []
+2402 1 user1-397@plc1.org keys: [2397] sites: []
+2403 1 user1-398@plc1.org keys: [2398] sites: []
+2404 1 user1-399@plc1.org keys: [2399] sites: []
+2405 1 user1-400@plc1.org keys: [2400] sites: []
+2406 1 user1-401@plc1.org keys: [2401] sites: []
+2407 1 user1-402@plc1.org keys: [2402] sites: []
+2408 1 user1-403@plc1.org keys: [2403] sites: []
+2409 1 user1-404@plc1.org keys: [2404] sites: []
+2410 1 user1-405@plc1.org keys: [2405] sites: []
+2411 1 user1-406@plc1.org keys: [2406] sites: []
+2412 1 user1-407@plc1.org keys: [2407] sites: []
+2413 1 user1-408@plc1.org keys: [2408] sites: []
+2414 1 user1-409@plc1.org keys: [2409] sites: []
+2415 1 user1-410@plc1.org keys: [2410] sites: []
+2416 1 user1-411@plc1.org keys: [2411] sites: []
+2417 1 user1-412@plc1.org keys: [2412] sites: []
+2418 1 user1-413@plc1.org keys: [2413] sites: []
+2419 1 user1-414@plc1.org keys: [2414] sites: []
+2420 1 user1-415@plc1.org keys: [2415] sites: []
+2421 1 user1-416@plc1.org keys: [2416] sites: []
+2422 1 user1-417@plc1.org keys: [2417] sites: []
+2423 1 user1-418@plc1.org keys: [2418] sites: []
+2424 1 user1-419@plc1.org keys: [2419] sites: []
+2425 1 user1-420@plc1.org keys: [2420] sites: []
+2426 1 user1-421@plc1.org keys: [2421] sites: []
+2427 1 user1-422@plc1.org keys: [2422] sites: []
+2428 1 user1-423@plc1.org keys: [2423] sites: []
+2429 1 user1-424@plc1.org keys: [2424] sites: []
+2430 1 user1-425@plc1.org keys: [2425] sites: []
+2431 1 user1-426@plc1.org keys: [2426] sites: []
+2432 1 user1-427@plc1.org keys: [2427] sites: []
+2433 1 user1-428@plc1.org keys: [2428] sites: []
+2434 1 user1-429@plc1.org keys: [2429] sites: []
+2435 1 user1-430@plc1.org keys: [2430] sites: []
+2436 1 user1-431@plc1.org keys: [2431] sites: []
+2437 1 user1-432@plc1.org keys: [2432] sites: []
+2438 1 user1-433@plc1.org keys: [2433] sites: []
+2439 1 user1-434@plc1.org keys: [2434] sites: []
+2440 1 user1-435@plc1.org keys: [2435] sites: []
+2441 1 user1-436@plc1.org keys: [2436] sites: []
+2442 1 user1-437@plc1.org keys: [2437] sites: []
+2443 1 user1-438@plc1.org keys: [2438] sites: []
+2444 1 user1-439@plc1.org keys: [2439] sites: []
+2445 1 user1-440@plc1.org keys: [2440] sites: []
+2446 1 user1-441@plc1.org keys: [2441] sites: []
+2447 1 user1-442@plc1.org keys: [2442] sites: []
+2448 1 user1-443@plc1.org keys: [2443] sites: []
+2449 1 user1-444@plc1.org keys: [2444] sites: []
+2450 1 user1-445@plc1.org keys: [2445] sites: []
+2451 1 user1-446@plc1.org keys: [2446] sites: []
+2452 1 user1-447@plc1.org keys: [2447] sites: []
+2453 1 user1-448@plc1.org keys: [2448] sites: []
+2454 1 user1-449@plc1.org keys: [2449] sites: []
+2455 1 user1-450@plc1.org keys: [2450] sites: []
+2456 1 user1-451@plc1.org keys: [2451] sites: []
+2457 1 user1-452@plc1.org keys: [2452] sites: []
+2458 1 user1-453@plc1.org keys: [2453] sites: []
+2459 1 user1-454@plc1.org keys: [2454] sites: []
+2460 1 user1-455@plc1.org keys: [2455] sites: []
+2461 1 user1-456@plc1.org keys: [2456] sites: []
+2462 1 user1-457@plc1.org keys: [2457] sites: []
+2463 1 user1-458@plc1.org keys: [2458] sites: []
+2464 1 user1-459@plc1.org keys: [2459] sites: []
+2465 1 user1-460@plc1.org keys: [2460] sites: []
+2466 1 user1-461@plc1.org keys: [2461] sites: []
+2467 1 user1-462@plc1.org keys: [2462] sites: []
+2468 1 user1-463@plc1.org keys: [2463] sites: []
+2469 1 user1-464@plc1.org keys: [2464] sites: []
+2470 1 user1-465@plc1.org keys: [2465] sites: []
+2471 1 user1-466@plc1.org keys: [2466] sites: []
+2472 1 user1-467@plc1.org keys: [2467] sites: []
+2473 1 user1-468@plc1.org keys: [2468] sites: []
+2474 1 user1-469@plc1.org keys: [2469] sites: []
+2475 1 user1-470@plc1.org keys: [2470] sites: []
+2476 1 user1-471@plc1.org keys: [2471] sites: []
+2477 1 user1-472@plc1.org keys: [2472] sites: []
+2478 1 user1-473@plc1.org keys: [2473] sites: []
+2479 1 user1-474@plc1.org keys: [2474] sites: []
+2480 1 user1-475@plc1.org keys: [2475] sites: []
+2481 1 user1-476@plc1.org keys: [2476] sites: []
+2482 1 user1-477@plc1.org keys: [2477] sites: []
+2483 1 user1-478@plc1.org keys: [2478] sites: []
+2484 1 user1-479@plc1.org keys: [2479] sites: []
+2485 1 user1-480@plc1.org keys: [2480] sites: []
+2486 1 user1-481@plc1.org keys: [2481] sites: []
+2487 1 user1-482@plc1.org keys: [2482] sites: []
+2488 1 user1-483@plc1.org keys: [2483] sites: []
+2489 1 user1-484@plc1.org keys: [2484] sites: []
+2490 1 user1-485@plc1.org keys: [2485] sites: []
+2491 1 user1-486@plc1.org keys: [2486] sites: []
+2492 1 user1-487@plc1.org keys: [2487] sites: []
+2493 1 user1-488@plc1.org keys: [2488] sites: []
+2494 1 user1-489@plc1.org keys: [2489] sites: []
+2495 1 user1-490@plc1.org keys: [2490] sites: []
+2496 1 user1-491@plc1.org keys: [2491] sites: []
+2497 1 user1-492@plc1.org keys: [2492] sites: []
+2498 1 user1-493@plc1.org keys: [2493] sites: []
+2499 1 user1-494@plc1.org keys: [2494] sites: []
+2500 1 user1-495@plc1.org keys: [2495] sites: []
+2501 1 user1-496@plc1.org keys: [2496] sites: []
+2502 1 user1-497@plc1.org keys: [2497] sites: []
+2503 1 user1-498@plc1.org keys: [2498] sites: []
+2504 1 user1-499@plc1.org keys: [2499] sites: []
+2505 1 user1-500@plc1.org keys: [2500] sites: []
+2506 1 user1-501@plc1.org keys: [2501] sites: []
+2507 1 user1-502@plc1.org keys: [2502] sites: []
+2508 1 user1-503@plc1.org keys: [2503] sites: []
+2509 1 user1-504@plc1.org keys: [2504] sites: []
+2510 1 user1-505@plc1.org keys: [2505] sites: []
+2511 1 user1-506@plc1.org keys: [2506] sites: []
+2512 1 user1-507@plc1.org keys: [2507] sites: []
+2513 1 user1-508@plc1.org keys: [2508] sites: []
+2514 1 user1-509@plc1.org keys: [2509] sites: []
+2515 1 user1-510@plc1.org keys: [2510] sites: []
+2516 1 user1-511@plc1.org keys: [2511] sites: []
+2517 1 user1-512@plc1.org keys: [2512] sites: []
+2518 1 user1-513@plc1.org keys: [2513] sites: []
+2519 1 user1-514@plc1.org keys: [2514] sites: []
+2520 1 user1-515@plc1.org keys: [2515] sites: []
+2521 1 user1-516@plc1.org keys: [2516] sites: []
+2522 1 user1-517@plc1.org keys: [2517] sites: []
+2523 1 user1-518@plc1.org keys: [2518] sites: []
+2524 1 user1-519@plc1.org keys: [2519] sites: []
+2525 1 user1-520@plc1.org keys: [2520] sites: []
+2526 1 user1-521@plc1.org keys: [2521] sites: []
+2527 1 user1-522@plc1.org keys: [2522] sites: []
+2528 1 user1-523@plc1.org keys: [2523] sites: []
+2529 1 user1-524@plc1.org keys: [2524] sites: []
+2530 1 user1-525@plc1.org keys: [2525] sites: []
+2531 1 user1-526@plc1.org keys: [2526] sites: []
+2532 1 user1-527@plc1.org keys: [2527] sites: []
+2533 1 user1-528@plc1.org keys: [2528] sites: []
+2534 1 user1-529@plc1.org keys: [2529] sites: []
+2535 1 user1-530@plc1.org keys: [2530] sites: []
+2536 1 user1-531@plc1.org keys: [2531] sites: []
+2537 1 user1-532@plc1.org keys: [2532] sites: []
+2538 1 user1-533@plc1.org keys: [2533] sites: []
+2539 1 user1-534@plc1.org keys: [2534] sites: []
+2540 1 user1-535@plc1.org keys: [2535] sites: []
+2541 1 user1-536@plc1.org keys: [2536] sites: []
+2542 1 user1-537@plc1.org keys: [2537] sites: []
+2543 1 user1-538@plc1.org keys: [2538] sites: []
+2544 1 user1-539@plc1.org keys: [2539] sites: []
+2545 1 user1-540@plc1.org keys: [2540] sites: []
+2546 1 user1-541@plc1.org keys: [2541] sites: []
+2547 1 user1-542@plc1.org keys: [2542] sites: []
+2548 1 user1-543@plc1.org keys: [2543] sites: []
+2549 1 user1-544@plc1.org keys: [2544] sites: []
+2550 1 user1-545@plc1.org keys: [2545] sites: []
+2551 1 user1-546@plc1.org keys: [2546] sites: []
+2552 1 user1-547@plc1.org keys: [2547] sites: []
+2553 1 user1-548@plc1.org keys: [2548] sites: []
+2554 1 user1-549@plc1.org keys: [2549] sites: []
+2555 1 user1-550@plc1.org keys: [2550] sites: []
+2556 1 user1-551@plc1.org keys: [2551] sites: []
+2557 1 user1-552@plc1.org keys: [2552] sites: []
+2558 1 user1-553@plc1.org keys: [2553] sites: []
+2559 1 user1-554@plc1.org keys: [2554] sites: []
+2560 1 user1-555@plc1.org keys: [2555] sites: []
+2561 1 user1-556@plc1.org keys: [2556] sites: []
+2562 1 user1-557@plc1.org keys: [2557] sites: []
+2563 1 user1-558@plc1.org keys: [2558] sites: []
+2564 1 user1-559@plc1.org keys: [2559] sites: []
+2565 1 user1-560@plc1.org keys: [2560] sites: []
+2566 1 user1-561@plc1.org keys: [2561] sites: []
+2567 1 user1-562@plc1.org keys: [2562] sites: []
+2568 1 user1-563@plc1.org keys: [2563] sites: []
+2569 1 user1-564@plc1.org keys: [2564] sites: []
+2570 1 user1-565@plc1.org keys: [2565] sites: []
+2571 1 user1-566@plc1.org keys: [2566] sites: []
+2572 1 user1-567@plc1.org keys: [2567] sites: []
+2573 1 user1-568@plc1.org keys: [2568] sites: []
+2574 1 user1-569@plc1.org keys: [2569] sites: []
+2575 1 user1-570@plc1.org keys: [2570] sites: []
+2576 1 user1-571@plc1.org keys: [2571] sites: []
+2577 1 user1-572@plc1.org keys: [2572] sites: []
+2578 1 user1-573@plc1.org keys: [2573] sites: []
+2579 1 user1-574@plc1.org keys: [2574] sites: []
+2580 1 user1-575@plc1.org keys: [2575] sites: []
+2581 1 user1-576@plc1.org keys: [2576] sites: []
+2582 1 user1-577@plc1.org keys: [2577] sites: []
+2583 1 user1-578@plc1.org keys: [2578] sites: []
+2584 1 user1-579@plc1.org keys: [2579] sites: []
+2585 1 user1-580@plc1.org keys: [2580] sites: []
+2586 1 user1-581@plc1.org keys: [2581] sites: []
+2587 1 user1-582@plc1.org keys: [2582] sites: []
+2588 1 user1-583@plc1.org keys: [2583] sites: []
+2589 1 user1-584@plc1.org keys: [2584] sites: []
+2590 1 user1-585@plc1.org keys: [2585] sites: []
+2591 1 user1-586@plc1.org keys: [2586] sites: []
+2592 1 user1-587@plc1.org keys: [2587] sites: []
+2593 1 user1-588@plc1.org keys: [2588] sites: []
+2594 1 user1-589@plc1.org keys: [2589] sites: []
+2595 1 user1-590@plc1.org keys: [2590] sites: []
+2596 1 user1-591@plc1.org keys: [2591] sites: []
+2597 1 user1-592@plc1.org keys: [2592] sites: []
+2598 1 user1-593@plc1.org keys: [2593] sites: []
+2599 1 user1-594@plc1.org keys: [2594] sites: []
+2600 1 user1-595@plc1.org keys: [2595] sites: []
+2601 1 user1-596@plc1.org keys: [2596] sites: []
+2602 1 user1-597@plc1.org keys: [2597] sites: []
+2603 1 user1-598@plc1.org keys: [2598] sites: []
+2604 1 user1-599@plc1.org keys: [2599] sites: []
+2605 1 user1-600@plc1.org keys: [2600] sites: []
+2606 1 user1-601@plc1.org keys: [2601] sites: []
+2607 1 user1-602@plc1.org keys: [2602] sites: []
+2608 1 user1-603@plc1.org keys: [2603] sites: []
+2609 1 user1-604@plc1.org keys: [2604] sites: []
+2610 1 user1-605@plc1.org keys: [2605] sites: []
+2611 1 user1-606@plc1.org keys: [2606] sites: []
+2612 1 user1-607@plc1.org keys: [2607] sites: []
+2613 1 user1-608@plc1.org keys: [2608] sites: []
+2614 1 user1-609@plc1.org keys: [2609] sites: []
+2615 1 user1-610@plc1.org keys: [2610] sites: []
+2616 1 user1-611@plc1.org keys: [2611] sites: []
+2617 1 user1-612@plc1.org keys: [2612] sites: []
+2618 1 user1-613@plc1.org keys: [2613] sites: []
+2619 1 user1-614@plc1.org keys: [2614] sites: []
+2620 1 user1-615@plc1.org keys: [2615] sites: []
+2621 1 user1-616@plc1.org keys: [2616] sites: []
+2622 1 user1-617@plc1.org keys: [2617] sites: []
+2623 1 user1-618@plc1.org keys: [2618] sites: []
+2624 1 user1-619@plc1.org keys: [2619] sites: []
+2625 1 user1-620@plc1.org keys: [2620] sites: []
+2626 1 user1-621@plc1.org keys: [2621] sites: []
+2627 1 user1-622@plc1.org keys: [2622] sites: []
+2628 1 user1-623@plc1.org keys: [2623] sites: []
+2629 1 user1-624@plc1.org keys: [2624] sites: []
+2630 1 user1-625@plc1.org keys: [2625] sites: []
+2631 1 user1-626@plc1.org keys: [2626] sites: []
+2632 1 user1-627@plc1.org keys: [2627] sites: []
+2633 1 user1-628@plc1.org keys: [2628] sites: []
+2634 1 user1-629@plc1.org keys: [2629] sites: []
+2635 1 user1-630@plc1.org keys: [2630] sites: []
+2636 1 user1-631@plc1.org keys: [2631] sites: []
+2637 1 user1-632@plc1.org keys: [2632] sites: []
+2638 1 user1-633@plc1.org keys: [2633] sites: []
+2639 1 user1-634@plc1.org keys: [2634] sites: []
+2640 1 user1-635@plc1.org keys: [2635] sites: []
+2641 1 user1-636@plc1.org keys: [2636] sites: []
+2642 1 user1-637@plc1.org keys: [2637] sites: []
+2643 1 user1-638@plc1.org keys: [2638] sites: []
+2644 1 user1-639@plc1.org keys: [2639] sites: []
+2645 1 user1-640@plc1.org keys: [2640] sites: []
+2646 1 user1-641@plc1.org keys: [2641] sites: []
+2647 1 user1-642@plc1.org keys: [2642] sites: []
+2648 1 user1-643@plc1.org keys: [2643] sites: []
+2649 1 user1-644@plc1.org keys: [2644] sites: []
+2650 1 user1-645@plc1.org keys: [2645] sites: []
+2651 1 user1-646@plc1.org keys: [2646] sites: []
+2652 1 user1-647@plc1.org keys: [2647] sites: []
+2653 1 user1-648@plc1.org keys: [2648] sites: []
+2654 1 user1-649@plc1.org keys: [2649] sites: []
+2655 1 user1-650@plc1.org keys: [2650] sites: []
+2656 1 user1-651@plc1.org keys: [2651] sites: []
+2657 1 user1-652@plc1.org keys: [2652] sites: []
+2658 1 user1-653@plc1.org keys: [2653] sites: []
+2659 1 user1-654@plc1.org keys: [2654] sites: []
+2660 1 user1-655@plc1.org keys: [2655] sites: []
+2661 1 user1-656@plc1.org keys: [2656] sites: []
+2662 1 user1-657@plc1.org keys: [2657] sites: []
+2663 1 user1-658@plc1.org keys: [2658] sites: []
+2664 1 user1-659@plc1.org keys: [2659] sites: []
+2665 1 user1-660@plc1.org keys: [2660] sites: []
+2666 1 user1-661@plc1.org keys: [2661] sites: []
+2667 1 user1-662@plc1.org keys: [2662] sites: []
+2668 1 user1-663@plc1.org keys: [2663] sites: []
+2669 1 user1-664@plc1.org keys: [2664] sites: []
+2670 1 user1-665@plc1.org keys: [2665] sites: []
+2671 1 user1-666@plc1.org keys: [2666] sites: []
+2672 1 user1-667@plc1.org keys: [2667] sites: []
+2673 1 user1-668@plc1.org keys: [2668] sites: []
+2674 1 user1-669@plc1.org keys: [2669] sites: []
+2675 1 user1-670@plc1.org keys: [2670] sites: []
+2676 1 user1-671@plc1.org keys: [2671] sites: []
+2677 1 user1-672@plc1.org keys: [2672] sites: []
+2678 1 user1-673@plc1.org keys: [2673] sites: []
+2679 1 user1-674@plc1.org keys: [2674] sites: []
+2680 1 user1-675@plc1.org keys: [2675] sites: []
+2681 1 user1-676@plc1.org keys: [2676] sites: []
+2682 1 user1-677@plc1.org keys: [2677] sites: []
+2683 1 user1-678@plc1.org keys: [2678] sites: []
+2684 1 user1-679@plc1.org keys: [2679] sites: []
+2685 1 user1-680@plc1.org keys: [2680] sites: []
+2686 1 user1-681@plc1.org keys: [2681] sites: []
+2687 1 user1-682@plc1.org keys: [2682] sites: []
+2688 1 user1-683@plc1.org keys: [2683] sites: []
+2689 1 user1-684@plc1.org keys: [2684] sites: []
+2690 1 user1-685@plc1.org keys: [2685] sites: []
+2691 1 user1-686@plc1.org keys: [2686] sites: []
+2692 1 user1-687@plc1.org keys: [2687] sites: []
+2693 1 user1-688@plc1.org keys: [2688] sites: []
+2694 1 user1-689@plc1.org keys: [2689] sites: []
+2695 1 user1-690@plc1.org keys: [2690] sites: []
+2696 1 user1-691@plc1.org keys: [2691] sites: []
+2697 1 user1-692@plc1.org keys: [2692] sites: []
+2698 1 user1-693@plc1.org keys: [2693] sites: []
+2699 1 user1-694@plc1.org keys: [2694] sites: []
+2700 1 user1-695@plc1.org keys: [2695] sites: []
+2701 1 user1-696@plc1.org keys: [2696] sites: []
+2702 1 user1-697@plc1.org keys: [2697] sites: []
+2703 1 user1-698@plc1.org keys: [2698] sites: []
+2704 1 user1-699@plc1.org keys: [2699] sites: []
+2705 1 user1-700@plc1.org keys: [2700] sites: []
+2706 1 user1-701@plc1.org keys: [2701] sites: []
+2707 1 user1-702@plc1.org keys: [2702] sites: []
+2708 1 user1-703@plc1.org keys: [2703] sites: []
+2709 1 user1-704@plc1.org keys: [2704] sites: []
+2710 1 user1-705@plc1.org keys: [2705] sites: []
+2711 1 user1-706@plc1.org keys: [2706] sites: []
+2712 1 user1-707@plc1.org keys: [2707] sites: []
+2713 1 user1-708@plc1.org keys: [2708] sites: []
+2714 1 user1-709@plc1.org keys: [2709] sites: []
+2715 1 user1-710@plc1.org keys: [2710] sites: []
+2716 1 user1-711@plc1.org keys: [2711] sites: []
+2717 1 user1-712@plc1.org keys: [2712] sites: []
+2718 1 user1-713@plc1.org keys: [2713] sites: []
+2719 1 user1-714@plc1.org keys: [2714] sites: []
+2720 1 user1-715@plc1.org keys: [2715] sites: []
+2721 1 user1-716@plc1.org keys: [2716] sites: []
+2722 1 user1-717@plc1.org keys: [2717] sites: []
+2723 1 user1-718@plc1.org keys: [2718] sites: []
+2724 1 user1-719@plc1.org keys: [2719] sites: []
+2725 1 user1-720@plc1.org keys: [2720] sites: []
+2726 1 user1-721@plc1.org keys: [2721] sites: []
+2727 1 user1-722@plc1.org keys: [2722] sites: []
+2728 1 user1-723@plc1.org keys: [2723] sites: []
+2729 1 user1-724@plc1.org keys: [2724] sites: []
+2730 1 user1-725@plc1.org keys: [2725] sites: []
+2731 1 user1-726@plc1.org keys: [2726] sites: []
+2732 1 user1-727@plc1.org keys: [2727] sites: []
+2733 1 user1-728@plc1.org keys: [2728] sites: []
+2734 1 user1-729@plc1.org keys: [2729] sites: []
+2735 1 user1-730@plc1.org keys: [2730] sites: []
+2736 1 user1-731@plc1.org keys: [2731] sites: []
+2737 1 user1-732@plc1.org keys: [2732] sites: []
+2738 1 user1-733@plc1.org keys: [2733] sites: []
+2739 1 user1-734@plc1.org keys: [2734] sites: []
+2740 1 user1-735@plc1.org keys: [2735] sites: []
+2741 1 user1-736@plc1.org keys: [2736] sites: []
+2742 1 user1-737@plc1.org keys: [2737] sites: []
+2743 1 user1-738@plc1.org keys: [2738] sites: []
+2744 1 user1-739@plc1.org keys: [2739] sites: []
+2745 1 user1-740@plc1.org keys: [2740] sites: []
+2746 1 user1-741@plc1.org keys: [2741] sites: []
+2747 1 user1-742@plc1.org keys: [2742] sites: []
+2748 1 user1-743@plc1.org keys: [2743] sites: []
+2749 1 user1-744@plc1.org keys: [2744] sites: []
+2750 1 user1-745@plc1.org keys: [2745] sites: []
+2751 1 user1-746@plc1.org keys: [2746] sites: []
+2752 1 user1-747@plc1.org keys: [2747] sites: []
+2753 1 user1-748@plc1.org keys: [2748] sites: []
+2754 1 user1-749@plc1.org keys: [2749] sites: []
+2755 1 user1-750@plc1.org keys: [2750] sites: []
+2756 1 user1-751@plc1.org keys: [2751] sites: []
+2757 1 user1-752@plc1.org keys: [2752] sites: []
+2758 1 user1-753@plc1.org keys: [2753] sites: []
+2759 1 user1-754@plc1.org keys: [2754] sites: []
+2760 1 user1-755@plc1.org keys: [2755] sites: []
+2761 1 user1-756@plc1.org keys: [2756] sites: []
+2762 1 user1-757@plc1.org keys: [2757] sites: []
+2763 1 user1-758@plc1.org keys: [2758] sites: []
+2764 1 user1-759@plc1.org keys: [2759] sites: []
+2765 1 user1-760@plc1.org keys: [2760] sites: []
+2766 1 user1-761@plc1.org keys: [2761] sites: []
+2767 1 user1-762@plc1.org keys: [2762] sites: []
+2768 1 user1-763@plc1.org keys: [2763] sites: []
+2769 1 user1-764@plc1.org keys: [2764] sites: []
+2770 1 user1-765@plc1.org keys: [2765] sites: []
+2771 1 user1-766@plc1.org keys: [2766] sites: []
+2772 1 user1-767@plc1.org keys: [2767] sites: []
+2773 1 user1-768@plc1.org keys: [2768] sites: []
+2774 1 user1-769@plc1.org keys: [2769] sites: []
+2775 1 user1-770@plc1.org keys: [2770] sites: []
+2776 1 user1-771@plc1.org keys: [2771] sites: []
+2777 1 user1-772@plc1.org keys: [2772] sites: []
+2778 1 user1-773@plc1.org keys: [2773] sites: []
+2779 1 user1-774@plc1.org keys: [2774] sites: []
+2780 1 user1-775@plc1.org keys: [2775] sites: []
+2781 1 user1-776@plc1.org keys: [2776] sites: []
+2782 1 user1-777@plc1.org keys: [2777] sites: []
+2783 1 user1-778@plc1.org keys: [2778] sites: []
+2784 1 user1-779@plc1.org keys: [2779] sites: []
+2785 1 user1-780@plc1.org keys: [2780] sites: []
+2786 1 user1-781@plc1.org keys: [2781] sites: []
+2787 1 user1-782@plc1.org keys: [2782] sites: []
+2788 1 user1-783@plc1.org keys: [2783] sites: []
+2789 1 user1-784@plc1.org keys: [2784] sites: []
+2790 1 user1-785@plc1.org keys: [2785] sites: []
+2791 1 user1-786@plc1.org keys: [2786] sites: []
+2792 1 user1-787@plc1.org keys: [2787] sites: []
+2793 1 user1-788@plc1.org keys: [2788] sites: []
+2794 1 user1-789@plc1.org keys: [2789] sites: []
+2795 1 user1-790@plc1.org keys: [2790] sites: []
+2796 1 user1-791@plc1.org keys: [2791] sites: []
+2797 1 user1-792@plc1.org keys: [2792] sites: []
+2798 1 user1-793@plc1.org keys: [2793] sites: []
+2799 1 user1-794@plc1.org keys: [2794] sites: []
+2800 1 user1-795@plc1.org keys: [2795] sites: []
+2801 1 user1-796@plc1.org keys: [2796] sites: []
+2802 1 user1-797@plc1.org keys: [2797] sites: []
+2803 1 user1-798@plc1.org keys: [2798] sites: []
+2804 1 user1-799@plc1.org keys: [2799] sites: []
+2805 1 user1-800@plc1.org keys: [2800] sites: []
+2806 1 user1-801@plc1.org keys: [2801] sites: []
+2807 1 user1-802@plc1.org keys: [2802] sites: []
+2808 1 user1-803@plc1.org keys: [2803] sites: []
+2809 1 user1-804@plc1.org keys: [2804] sites: []
+2810 1 user1-805@plc1.org keys: [2805] sites: []
+2811 1 user1-806@plc1.org keys: [2806] sites: []
+2812 1 user1-807@plc1.org keys: [2807] sites: []
+2813 1 user1-808@plc1.org keys: [2808] sites: []
+2814 1 user1-809@plc1.org keys: [2809] sites: []
+2815 1 user1-810@plc1.org keys: [2810] sites: []
+2816 1 user1-811@plc1.org keys: [2811] sites: []
+2817 1 user1-812@plc1.org keys: [2812] sites: []
+2818 1 user1-813@plc1.org keys: [2813] sites: []
+2819 1 user1-814@plc1.org keys: [2814] sites: []
+2820 1 user1-815@plc1.org keys: [2815] sites: []
+2821 1 user1-816@plc1.org keys: [2816] sites: []
+2822 1 user1-817@plc1.org keys: [2817] sites: []
+2823 1 user1-818@plc1.org keys: [2818] sites: []
+2824 1 user1-819@plc1.org keys: [2819] sites: []
+2825 1 user1-820@plc1.org keys: [2820] sites: []
+2826 1 user1-821@plc1.org keys: [2821] sites: []
+2827 1 user1-822@plc1.org keys: [2822] sites: []
+2828 1 user1-823@plc1.org keys: [2823] sites: []
+2829 1 user1-824@plc1.org keys: [2824] sites: []
+2830 1 user1-825@plc1.org keys: [2825] sites: []
+2831 1 user1-826@plc1.org keys: [2826] sites: []
+2832 1 user1-827@plc1.org keys: [2827] sites: []
+2833 1 user1-828@plc1.org keys: [2828] sites: []
+2834 1 user1-829@plc1.org keys: [2829] sites: []
+2835 1 user1-830@plc1.org keys: [2830] sites: []
+2836 1 user1-831@plc1.org keys: [2831] sites: []
+2837 1 user1-832@plc1.org keys: [2832] sites: []
+2838 1 user1-833@plc1.org keys: [2833] sites: []
+2839 1 user1-834@plc1.org keys: [2834] sites: []
+2840 1 user1-835@plc1.org keys: [2835] sites: []
+2841 1 user1-836@plc1.org keys: [2836] sites: []
+2842 1 user1-837@plc1.org keys: [2837] sites: []
+2843 1 user1-838@plc1.org keys: [2838] sites: []
+2844 1 user1-839@plc1.org keys: [2839] sites: []
+2845 1 user1-840@plc1.org keys: [2840] sites: []
+2846 1 user1-841@plc1.org keys: [2841] sites: []
+2847 1 user1-842@plc1.org keys: [2842] sites: []
+2848 1 user1-843@plc1.org keys: [2843] sites: []
+2849 1 user1-844@plc1.org keys: [2844] sites: []
+2850 1 user1-845@plc1.org keys: [2845] sites: []
+2851 1 user1-846@plc1.org keys: [2846] sites: []
+2852 1 user1-847@plc1.org keys: [2847] sites: []
+2853 1 user1-848@plc1.org keys: [2848] sites: []
+2854 1 user1-849@plc1.org keys: [2849] sites: []
+2855 1 user1-850@plc1.org keys: [2850] sites: []
+2856 1 user1-851@plc1.org keys: [2851] sites: []
+2857 1 user1-852@plc1.org keys: [2852] sites: []
+2858 1 user1-853@plc1.org keys: [2853] sites: []
+2859 1 user1-854@plc1.org keys: [2854] sites: []
+2860 1 user1-855@plc1.org keys: [2855] sites: []
+2861 1 user1-856@plc1.org keys: [2856] sites: []
+2862 1 user1-857@plc1.org keys: [2857] sites: []
+2863 1 user1-858@plc1.org keys: [2858] sites: []
+2864 1 user1-859@plc1.org keys: [2859] sites: []
+2865 1 user1-860@plc1.org keys: [2860] sites: []
+2866 1 user1-861@plc1.org keys: [2861] sites: []
+2867 1 user1-862@plc1.org keys: [2862] sites: []
+2868 1 user1-863@plc1.org keys: [2863] sites: []
+2869 1 user1-864@plc1.org keys: [2864] sites: []
+2870 1 user1-865@plc1.org keys: [2865] sites: []
+2871 1 user1-866@plc1.org keys: [2866] sites: []
+2872 1 user1-867@plc1.org keys: [2867] sites: []
+2873 1 user1-868@plc1.org keys: [2868] sites: []
+2874 1 user1-869@plc1.org keys: [2869] sites: []
+2875 1 user1-870@plc1.org keys: [2870] sites: []
+2876 1 user1-871@plc1.org keys: [2871] sites: []
+2877 1 user1-872@plc1.org keys: [2872] sites: []
+2878 1 user1-873@plc1.org keys: [2873] sites: []
+2879 1 user1-874@plc1.org keys: [2874] sites: []
+2880 1 user1-875@plc1.org keys: [2875] sites: []
+2881 1 user1-876@plc1.org keys: [2876] sites: []
+2882 1 user1-877@plc1.org keys: [2877] sites: []
+2883 1 user1-878@plc1.org keys: [2878] sites: []
+2884 1 user1-879@plc1.org keys: [2879] sites: []
+2885 1 user1-880@plc1.org keys: [2880] sites: []
+2886 1 user1-881@plc1.org keys: [2881] sites: []
+2887 1 user1-882@plc1.org keys: [2882] sites: []
+2888 1 user1-883@plc1.org keys: [2883] sites: []
+2889 1 user1-884@plc1.org keys: [2884] sites: []
+2890 1 user1-885@plc1.org keys: [2885] sites: []
+2891 1 user1-886@plc1.org keys: [2886] sites: []
+2892 1 user1-887@plc1.org keys: [2887] sites: []
+2893 1 user1-888@plc1.org keys: [2888] sites: []
+2894 1 user1-889@plc1.org keys: [2889] sites: []
+2895 1 user1-890@plc1.org keys: [2890] sites: []
+2896 1 user1-891@plc1.org keys: [2891] sites: []
+2897 1 user1-892@plc1.org keys: [2892] sites: []
+2898 1 user1-893@plc1.org keys: [2893] sites: []
+2899 1 user1-894@plc1.org keys: [2894] sites: []
+2900 1 user1-895@plc1.org keys: [2895] sites: []
+2901 1 user1-896@plc1.org keys: [2896] sites: []
+2902 1 user1-897@plc1.org keys: [2897] sites: []
+2903 1 user1-898@plc1.org keys: [2898] sites: []
+2904 1 user1-899@plc1.org keys: [2899] sites: []
+2905 1 user1-900@plc1.org keys: [2900] sites: []
+2906 1 user1-901@plc1.org keys: [2901] sites: []
+2907 1 user1-902@plc1.org keys: [2902] sites: []
+2908 1 user1-903@plc1.org keys: [2903] sites: []
+2909 1 user1-904@plc1.org keys: [2904] sites: []
+2910 1 user1-905@plc1.org keys: [2905] sites: []
+2911 1 user1-906@plc1.org keys: [2906] sites: []
+2912 1 user1-907@plc1.org keys: [2907] sites: []
+2913 1 user1-908@plc1.org keys: [2908] sites: []
+2914 1 user1-909@plc1.org keys: [2909] sites: []
+2915 1 user1-910@plc1.org keys: [2910] sites: []
+2916 1 user1-911@plc1.org keys: [2911] sites: []
+2917 1 user1-912@plc1.org keys: [2912] sites: []
+2918 1 user1-913@plc1.org keys: [2913] sites: []
+2919 1 user1-914@plc1.org keys: [2914] sites: []
+2920 1 user1-915@plc1.org keys: [2915] sites: []
+2921 1 user1-916@plc1.org keys: [2916] sites: []
+2922 1 user1-917@plc1.org keys: [2917] sites: []
+2923 1 user1-918@plc1.org keys: [2918] sites: []
+2924 1 user1-919@plc1.org keys: [2919] sites: []
+2925 1 user1-920@plc1.org keys: [2920] sites: []
+2926 1 user1-921@plc1.org keys: [2921] sites: []
+2927 1 user1-922@plc1.org keys: [2922] sites: []
+2928 1 user1-923@plc1.org keys: [2923] sites: []
+2929 1 user1-924@plc1.org keys: [2924] sites: []
+2930 1 user1-925@plc1.org keys: [2925] sites: []
+2931 1 user1-926@plc1.org keys: [2926] sites: []
+2932 1 user1-927@plc1.org keys: [2927] sites: []
+2933 1 user1-928@plc1.org keys: [2928] sites: []
+2934 1 user1-929@plc1.org keys: [2929] sites: []
+2935 1 user1-930@plc1.org keys: [2930] sites: []
+2936 1 user1-931@plc1.org keys: [2931] sites: []
+2937 1 user1-932@plc1.org keys: [2932] sites: []
+2938 1 user1-933@plc1.org keys: [2933] sites: []
+2939 1 user1-934@plc1.org keys: [2934] sites: []
+2940 1 user1-935@plc1.org keys: [2935] sites: []
+2941 1 user1-936@plc1.org keys: [2936] sites: []
+2942 1 user1-937@plc1.org keys: [2937] sites: []
+2943 1 user1-938@plc1.org keys: [2938] sites: []
+2944 1 user1-939@plc1.org keys: [2939] sites: []
+2945 1 user1-940@plc1.org keys: [2940] sites: []
+2946 1 user1-941@plc1.org keys: [2941] sites: []
+2947 1 user1-942@plc1.org keys: [2942] sites: []
+2948 1 user1-943@plc1.org keys: [2943] sites: []
+2949 1 user1-944@plc1.org keys: [2944] sites: []
+2950 1 user1-945@plc1.org keys: [2945] sites: []
+2951 1 user1-946@plc1.org keys: [2946] sites: []
+2952 1 user1-947@plc1.org keys: [2947] sites: []
+2953 1 user1-948@plc1.org keys: [2948] sites: []
+2954 1 user1-949@plc1.org keys: [2949] sites: []
+2955 1 user1-950@plc1.org keys: [2950] sites: []
+2956 1 user1-951@plc1.org keys: [2951] sites: []
+2957 1 user1-952@plc1.org keys: [2952] sites: []
+2958 1 user1-953@plc1.org keys: [2953] sites: []
+2959 1 user1-954@plc1.org keys: [2954] sites: []
+2960 1 user1-955@plc1.org keys: [2955] sites: []
+2961 1 user1-956@plc1.org keys: [2956] sites: []
+2962 1 user1-957@plc1.org keys: [2957] sites: []
+2963 1 user1-958@plc1.org keys: [2958] sites: []
+2964 1 user1-959@plc1.org keys: [2959] sites: []
+2965 1 user1-960@plc1.org keys: [2960] sites: []
+2966 1 user1-961@plc1.org keys: [2961] sites: []
+2967 1 user1-962@plc1.org keys: [2962] sites: []
+2968 1 user1-963@plc1.org keys: [2963] sites: []
+2969 1 user1-964@plc1.org keys: [2964] sites: []
+2970 1 user1-965@plc1.org keys: [2965] sites: []
+2971 1 user1-966@plc1.org keys: [2966] sites: []
+2972 1 user1-967@plc1.org keys: [2967] sites: []
+2973 1 user1-968@plc1.org keys: [2968] sites: []
+2974 1 user1-969@plc1.org keys: [2969] sites: []
+2975 1 user1-970@plc1.org keys: [2970] sites: []
+2976 1 user1-971@plc1.org keys: [2971] sites: []
+2977 1 user1-972@plc1.org keys: [2972] sites: []
+2978 1 user1-973@plc1.org keys: [2973] sites: []
+2979 1 user1-974@plc1.org keys: [2974] sites: []
+2980 1 user1-975@plc1.org keys: [2975] sites: []
+2981 1 user1-976@plc1.org keys: [2976] sites: []
+2982 1 user1-977@plc1.org keys: [2977] sites: []
+2983 1 user1-978@plc1.org keys: [2978] sites: []
+2984 1 user1-979@plc1.org keys: [2979] sites: []
+2985 1 user1-980@plc1.org keys: [2980] sites: []
+2986 1 user1-981@plc1.org keys: [2981] sites: []
+2987 1 user1-982@plc1.org keys: [2982] sites: []
+2988 1 user1-983@plc1.org keys: [2983] sites: []
+2989 1 user1-984@plc1.org keys: [2984] sites: []
+2990 1 user1-985@plc1.org keys: [2985] sites: []
+2991 1 user1-986@plc1.org keys: [2986] sites: []
+2992 1 user1-987@plc1.org keys: [2987] sites: []
+2993 1 user1-988@plc1.org keys: [2988] sites: []
+2994 1 user1-989@plc1.org keys: [2989] sites: []
+2995 1 user1-990@plc1.org keys: [2990] sites: []
+2996 1 user1-991@plc1.org keys: [2991] sites: []
+2997 1 user1-992@plc1.org keys: [2992] sites: []
+2998 1 user1-993@plc1.org keys: [2993] sites: []
+2999 1 user1-994@plc1.org keys: [2994] sites: []
+3000 1 user1-995@plc1.org keys: [2995] sites: []
+3001 1 user1-996@plc1.org keys: [2996] sites: []
+3002 1 user1-997@plc1.org keys: [2997] sites: []
+3003 1 user1-998@plc1.org keys: [2998] sites: []
+3004 1 user1-999@plc1.org keys: [2999] sites: []
+3005 1 user1-1000@plc1.org keys: [3000] sites: []
+3006 1 user1-1001@plc1.org keys: [3001] sites: []
+3007 1 user1-1002@plc1.org keys: [3002] sites: []
+3008 1 user1-1003@plc1.org keys: [3003] sites: []
+3009 1 user1-1004@plc1.org keys: [3004] sites: []
+3010 1 user1-1005@plc1.org keys: [3005] sites: []
+3011 1 user1-1006@plc1.org keys: [3006] sites: []
+3012 1 user1-1007@plc1.org keys: [3007] sites: []
+3013 1 user1-1008@plc1.org keys: [3008] sites: []
+3014 1 user1-1009@plc1.org keys: [3009] sites: []
+3015 1 user1-1010@plc1.org keys: [3010] sites: []
+3016 1 user1-1011@plc1.org keys: [3011] sites: []
+3017 1 user1-1012@plc1.org keys: [3012] sites: []
+3018 1 user1-1013@plc1.org keys: [3013] sites: []
+3019 1 user1-1014@plc1.org keys: [3014] sites: []
+3020 1 user1-1015@plc1.org keys: [3015] sites: []
+3021 1 user1-1016@plc1.org keys: [3016] sites: []
+3022 1 user1-1017@plc1.org keys: [3017] sites: []
+3023 1 user1-1018@plc1.org keys: [3018] sites: []
+3024 1 user1-1019@plc1.org keys: [3019] sites: []
+3025 1 user1-1020@plc1.org keys: [3020] sites: []
+3026 1 user1-1021@plc1.org keys: [3021] sites: []
+3027 1 user1-1022@plc1.org keys: [3022] sites: []
+3028 1 user1-1023@plc1.org keys: [3023] sites: []
+3029 1 user1-1024@plc1.org keys: [3024] sites: []
+3030 1 user1-1025@plc1.org keys: [3025] sites: []
+3031 1 user1-1026@plc1.org keys: [3026] sites: []
+3032 1 user1-1027@plc1.org keys: [3027] sites: []
+3033 1 user1-1028@plc1.org keys: [3028] sites: []
+3034 1 user1-1029@plc1.org keys: [3029] sites: []
+3035 1 user1-1030@plc1.org keys: [3030] sites: []
+3036 1 user1-1031@plc1.org keys: [3031] sites: []
+3037 1 user1-1032@plc1.org keys: [3032] sites: []
+3038 1 user1-1033@plc1.org keys: [3033] sites: []
+3039 1 user1-1034@plc1.org keys: [3034] sites: []
+3040 1 user1-1035@plc1.org keys: [3035] sites: []
+3041 1 user1-1036@plc1.org keys: [3036] sites: []
+3042 1 user1-1037@plc1.org keys: [3037] sites: []
+3043 1 user1-1038@plc1.org keys: [3038] sites: []
+3044 1 user1-1039@plc1.org keys: [3039] sites: []
+3045 1 user1-1040@plc1.org keys: [3040] sites: []
+3046 1 user1-1041@plc1.org keys: [3041] sites: []
+3047 1 user1-1042@plc1.org keys: [3042] sites: []
+3048 1 user1-1043@plc1.org keys: [3043] sites: []
+3049 1 user1-1044@plc1.org keys: [3044] sites: []
+3050 1 user1-1045@plc1.org keys: [3045] sites: []
+3051 1 user1-1046@plc1.org keys: [3046] sites: []
+3052 1 user1-1047@plc1.org keys: [3047] sites: []
+3053 1 user1-1048@plc1.org keys: [3048] sites: []
+3054 1 user1-1049@plc1.org keys: [3049] sites: []
+3055 1 user1-1050@plc1.org keys: [3050] sites: []
+3056 1 user1-1051@plc1.org keys: [3051] sites: []
+3057 1 user1-1052@plc1.org keys: [3052] sites: []
+3058 1 user1-1053@plc1.org keys: [3053] sites: []
+3059 1 user1-1054@plc1.org keys: [3054] sites: []
+3060 1 user1-1055@plc1.org keys: [3055] sites: []
+3061 1 user1-1056@plc1.org keys: [3056] sites: []
+3062 1 user1-1057@plc1.org keys: [3057] sites: []
+3063 1 user1-1058@plc1.org keys: [3058] sites: []
+3064 1 user1-1059@plc1.org keys: [3059] sites: []
+3065 1 user1-1060@plc1.org keys: [3060] sites: []
+3066 1 user1-1061@plc1.org keys: [3061] sites: []
+3067 1 user1-1062@plc1.org keys: [3062] sites: []
+3068 1 user1-1063@plc1.org keys: [3063] sites: []
+3069 1 user1-1064@plc1.org keys: [3064] sites: []
+3070 1 user1-1065@plc1.org keys: [3065] sites: []
+3071 1 user1-1066@plc1.org keys: [3066] sites: []
+3072 1 user1-1067@plc1.org keys: [3067] sites: []
+3073 1 user1-1068@plc1.org keys: [3068] sites: []
+3074 1 user1-1069@plc1.org keys: [3069] sites: []
+3075 1 user1-1070@plc1.org keys: [3070] sites: []
+3076 1 user1-1071@plc1.org keys: [3071] sites: []
+3077 1 user1-1072@plc1.org keys: [3072] sites: []
+3078 1 user1-1073@plc1.org keys: [3073] sites: []
+3079 1 user1-1074@plc1.org keys: [3074] sites: []
+3080 1 user1-1075@plc1.org keys: [3075] sites: []
+3081 1 user1-1076@plc1.org keys: [3076] sites: []
+3082 1 user1-1077@plc1.org keys: [3077] sites: []
+3083 1 user1-1078@plc1.org keys: [3078] sites: []
+3084 1 user1-1079@plc1.org keys: [3079] sites: []
+3085 1 user1-1080@plc1.org keys: [3080] sites: []
+3086 1 user1-1081@plc1.org keys: [3081] sites: []
+3087 1 user1-1082@plc1.org keys: [3082] sites: []
+3088 1 user1-1083@plc1.org keys: [3083] sites: []
+3089 1 user1-1084@plc1.org keys: [3084] sites: []
+3090 1 user1-1085@plc1.org keys: [3085] sites: []
+3091 1 user1-1086@plc1.org keys: [3086] sites: []
+3092 1 user1-1087@plc1.org keys: [3087] sites: []
+3093 1 user1-1088@plc1.org keys: [3088] sites: []
+3094 1 user1-1089@plc1.org keys: [3089] sites: []
+3095 1 user1-1090@plc1.org keys: [3090] sites: []
+3096 1 user1-1091@plc1.org keys: [3091] sites: []
+3097 1 user1-1092@plc1.org keys: [3092] sites: []
+3098 1 user1-1093@plc1.org keys: [3093] sites: []
+3099 1 user1-1094@plc1.org keys: [3094] sites: []
+3100 1 user1-1095@plc1.org keys: [3095] sites: []
+3101 1 user1-1096@plc1.org keys: [3096] sites: []
+3102 1 user1-1097@plc1.org keys: [3097] sites: []
+3103 1 user1-1098@plc1.org keys: [3098] sites: []
+3104 1 user1-1099@plc1.org keys: [3099] sites: []
+3105 1 user1-1100@plc1.org keys: [3100] sites: []
+3106 1 user1-1101@plc1.org keys: [3101] sites: []
+3107 1 user1-1102@plc1.org keys: [3102] sites: []
+3108 1 user1-1103@plc1.org keys: [3103] sites: []
+3109 1 user1-1104@plc1.org keys: [3104] sites: []
+3110 1 user1-1105@plc1.org keys: [3105] sites: []
+3111 1 user1-1106@plc1.org keys: [3106] sites: []
+3112 1 user1-1107@plc1.org keys: [3107] sites: []
+3113 1 user1-1108@plc1.org keys: [3108] sites: []
+3114 1 user1-1109@plc1.org keys: [3109] sites: []
+3115 1 user1-1110@plc1.org keys: [3110] sites: []
+3116 1 user1-1111@plc1.org keys: [3111] sites: []
+3117 1 user1-1112@plc1.org keys: [3112] sites: []
+3118 1 user1-1113@plc1.org keys: [3113] sites: []
+3119 1 user1-1114@plc1.org keys: [3114] sites: []
+3120 1 user1-1115@plc1.org keys: [3115] sites: []
+3121 1 user1-1116@plc1.org keys: [3116] sites: []
+3122 1 user1-1117@plc1.org keys: [3117] sites: []
+3123 1 user1-1118@plc1.org keys: [3118] sites: []
+3124 1 user1-1119@plc1.org keys: [3119] sites: []
+3125 1 user1-1120@plc1.org keys: [3120] sites: []
+3126 1 user1-1121@plc1.org keys: [3121] sites: []
+3127 1 user1-1122@plc1.org keys: [3122] sites: []
+3128 1 user1-1123@plc1.org keys: [3123] sites: []
+3129 1 user1-1124@plc1.org keys: [3124] sites: []
+3130 1 user1-1125@plc1.org keys: [3125] sites: []
+3131 1 user1-1126@plc1.org keys: [3126] sites: []
+3132 1 user1-1127@plc1.org keys: [3127] sites: []
+3133 1 user1-1128@plc1.org keys: [3128] sites: []
+3134 1 user1-1129@plc1.org keys: [3129] sites: []
+3135 1 user1-1130@plc1.org keys: [3130] sites: []
+3136 1 user1-1131@plc1.org keys: [3131] sites: []
+3137 1 user1-1132@plc1.org keys: [3132] sites: []
+3138 1 user1-1133@plc1.org keys: [3133] sites: []
+3139 1 user1-1134@plc1.org keys: [3134] sites: []
+3140 1 user1-1135@plc1.org keys: [3135] sites: []
+3141 1 user1-1136@plc1.org keys: [3136] sites: []
+3142 1 user1-1137@plc1.org keys: [3137] sites: []
+3143 1 user1-1138@plc1.org keys: [3138] sites: []
+3144 1 user1-1139@plc1.org keys: [3139] sites: []
+3145 1 user1-1140@plc1.org keys: [3140] sites: []
+3146 1 user1-1141@plc1.org keys: [3141] sites: []
+3147 1 user1-1142@plc1.org keys: [3142] sites: []
+3148 1 user1-1143@plc1.org keys: [3143] sites: []
+3149 1 user1-1144@plc1.org keys: [3144] sites: []
+3150 1 user1-1145@plc1.org keys: [3145] sites: []
+3151 1 user1-1146@plc1.org keys: [3146] sites: []
+3152 1 user1-1147@plc1.org keys: [3147] sites: []
+3153 1 user1-1148@plc1.org keys: [3148] sites: []
+3154 1 user1-1149@plc1.org keys: [3149] sites: []
+3155 1 user1-1150@plc1.org keys: [3150] sites: []
+3156 1 user1-1151@plc1.org keys: [3151] sites: []
+3157 1 user1-1152@plc1.org keys: [3152] sites: []
+3158 1 user1-1153@plc1.org keys: [3153] sites: []
+3159 1 user1-1154@plc1.org keys: [3154] sites: []
+3160 1 user1-1155@plc1.org keys: [3155] sites: []
+3161 1 user1-1156@plc1.org keys: [3156] sites: []
+3162 1 user1-1157@plc1.org keys: [3157] sites: []
+3163 1 user1-1158@plc1.org keys: [3158] sites: []
+3164 1 user1-1159@plc1.org keys: [3159] sites: []
+3165 1 user1-1160@plc1.org keys: [3160] sites: []
+3166 1 user1-1161@plc1.org keys: [3161] sites: []
+3167 1 user1-1162@plc1.org keys: [3162] sites: []
+3168 1 user1-1163@plc1.org keys: [3163] sites: []
+3169 1 user1-1164@plc1.org keys: [3164] sites: []
+3170 1 user1-1165@plc1.org keys: [3165] sites: []
+3171 1 user1-1166@plc1.org keys: [3166] sites: []
+3172 1 user1-1167@plc1.org keys: [3167] sites: []
+3173 1 user1-1168@plc1.org keys: [3168] sites: []
+3174 1 user1-1169@plc1.org keys: [3169] sites: []
+3175 1 user1-1170@plc1.org keys: [3170] sites: []
+3176 1 user1-1171@plc1.org keys: [3171] sites: []
+3177 1 user1-1172@plc1.org keys: [3172] sites: []
+3178 1 user1-1173@plc1.org keys: [3173] sites: []
+3179 1 user1-1174@plc1.org keys: [3174] sites: []
+3180 1 user1-1175@plc1.org keys: [3175] sites: []
+3181 1 user1-1176@plc1.org keys: [3176] sites: []
+3182 1 user1-1177@plc1.org keys: [3177] sites: []
+3183 1 user1-1178@plc1.org keys: [3178] sites: []
+3184 1 user1-1179@plc1.org keys: [3179] sites: []
+3185 1 user1-1180@plc1.org keys: [3180] sites: []
+3186 1 user1-1181@plc1.org keys: [3181] sites: []
+3187 1 user1-1182@plc1.org keys: [3182] sites: []
+3188 1 user1-1183@plc1.org keys: [3183] sites: []
+3189 1 user1-1184@plc1.org keys: [3184] sites: []
+3190 1 user1-1185@plc1.org keys: [3185] sites: []
+3191 1 user1-1186@plc1.org keys: [3186] sites: []
+3192 1 user1-1187@plc1.org keys: [3187] sites: []
+3193 1 user1-1188@plc1.org keys: [3188] sites: []
+3194 1 user1-1189@plc1.org keys: [3189] sites: []
+3195 1 user1-1190@plc1.org keys: [3190] sites: []
+3196 1 user1-1191@plc1.org keys: [3191] sites: []
+3197 1 user1-1192@plc1.org keys: [3192] sites: []
+3198 1 user1-1193@plc1.org keys: [3193] sites: []
+3199 1 user1-1194@plc1.org keys: [3194] sites: []
+3200 1 user1-1195@plc1.org keys: [3195] sites: []
+3201 1 user1-1196@plc1.org keys: [3196] sites: []
+3202 1 user1-1197@plc1.org keys: [3197] sites: []
+3203 1 user1-1198@plc1.org keys: [3198] sites: []
+3204 1 user1-1199@plc1.org keys: [3199] sites: []
+3205 1 user1-1200@plc1.org keys: [3200] sites: []
+3206 1 user1-1201@plc1.org keys: [3201] sites: []
+3207 1 user1-1202@plc1.org keys: [3202] sites: []
+3208 1 user1-1203@plc1.org keys: [3203] sites: []
+3209 1 user1-1204@plc1.org keys: [3204] sites: []
+3210 1 user1-1205@plc1.org keys: [3205] sites: []
+3211 1 user1-1206@plc1.org keys: [3206] sites: []
+3212 1 user1-1207@plc1.org keys: [3207] sites: []
+3213 1 user1-1208@plc1.org keys: [3208] sites: []
+3214 1 user1-1209@plc1.org keys: [3209] sites: []
+3215 1 user1-1210@plc1.org keys: [3210] sites: []
+3216 1 user1-1211@plc1.org keys: [3211] sites: []
+3217 1 user1-1212@plc1.org keys: [3212] sites: []
+3218 1 user1-1213@plc1.org keys: [3213] sites: []
+3219 1 user1-1214@plc1.org keys: [3214] sites: []
+3220 1 user1-1215@plc1.org keys: [3215] sites: []
+3221 1 user1-1216@plc1.org keys: [3216] sites: []
+3222 1 user1-1217@plc1.org keys: [3217] sites: []
+3223 1 user1-1218@plc1.org keys: [3218] sites: []
+3224 1 user1-1219@plc1.org keys: [3219] sites: []
+3225 1 user1-1220@plc1.org keys: [3220] sites: []
+3226 1 user1-1221@plc1.org keys: [3221] sites: []
+3227 1 user1-1222@plc1.org keys: [3222] sites: []
+3228 1 user1-1223@plc1.org keys: [3223] sites: []
+3229 1 user1-1224@plc1.org keys: [3224] sites: []
+3230 1 user1-1225@plc1.org keys: [3225] sites: []
+3231 1 user1-1226@plc1.org keys: [3226] sites: []
+3232 1 user1-1227@plc1.org keys: [3227] sites: []
+3233 1 user1-1228@plc1.org keys: [3228] sites: []
+3234 1 user1-1229@plc1.org keys: [3229] sites: []
+3235 1 user1-1230@plc1.org keys: [3230] sites: []
+3236 1 user1-1231@plc1.org keys: [3231] sites: []
+3237 1 user1-1232@plc1.org keys: [3232] sites: []
+3238 1 user1-1233@plc1.org keys: [3233] sites: []
+3239 1 user1-1234@plc1.org keys: [3234] sites: []
+3240 1 user1-1235@plc1.org keys: [3235] sites: []
+3241 1 user1-1236@plc1.org keys: [3236] sites: []
+3242 1 user1-1237@plc1.org keys: [3237] sites: []
+3243 1 user1-1238@plc1.org keys: [3238] sites: []
+3244 1 user1-1239@plc1.org keys: [3239] sites: []
+3245 1 user1-1240@plc1.org keys: [3240] sites: []
+3246 1 user1-1241@plc1.org keys: [3241] sites: []
+3247 1 user1-1242@plc1.org keys: [3242] sites: []
+3248 1 user1-1243@plc1.org keys: [3243] sites: []
+3249 1 user1-1244@plc1.org keys: [3244] sites: []
+3250 1 user1-1245@plc1.org keys: [3245] sites: []
+3251 1 user1-1246@plc1.org keys: [3246] sites: []
+3252 1 user1-1247@plc1.org keys: [3247] sites: []
+3253 1 user1-1248@plc1.org keys: [3248] sites: []
+3254 1 user1-1249@plc1.org keys: [3249] sites: []
+3255 1 user1-1250@plc1.org keys: [3250] sites: []
+3256 1 user1-1251@plc1.org keys: [3251] sites: []
+3257 1 user1-1252@plc1.org keys: [3252] sites: []
+3258 1 user1-1253@plc1.org keys: [3253] sites: []
+3259 1 user1-1254@plc1.org keys: [3254] sites: []
+3260 1 user1-1255@plc1.org keys: [3255] sites: []
+3261 1 user1-1256@plc1.org keys: [3256] sites: []
+3262 1 user1-1257@plc1.org keys: [3257] sites: []
+3263 1 user1-1258@plc1.org keys: [3258] sites: []
+3264 1 user1-1259@plc1.org keys: [3259] sites: []
+3265 1 user1-1260@plc1.org keys: [3260] sites: []
+3266 1 user1-1261@plc1.org keys: [3261] sites: []
+3267 1 user1-1262@plc1.org keys: [3262] sites: []
+3268 1 user1-1263@plc1.org keys: [3263] sites: []
+3269 1 user1-1264@plc1.org keys: [3264] sites: []
+3270 1 user1-1265@plc1.org keys: [3265] sites: []
+3271 1 user1-1266@plc1.org keys: [3266] sites: []
+3272 1 user1-1267@plc1.org keys: [3267] sites: []
+3273 1 user1-1268@plc1.org keys: [3268] sites: []
+3274 1 user1-1269@plc1.org keys: [3269] sites: []
+3275 1 user1-1270@plc1.org keys: [3270] sites: []
+3276 1 user1-1271@plc1.org keys: [3271] sites: []
+3277 1 user1-1272@plc1.org keys: [3272] sites: []
+3278 1 user1-1273@plc1.org keys: [3273] sites: []
+3279 1 user1-1274@plc1.org keys: [3274] sites: []
+3280 1 user1-1275@plc1.org keys: [3275] sites: []
+3281 1 user1-1276@plc1.org keys: [3276] sites: []
+3282 1 user1-1277@plc1.org keys: [3277] sites: []
+3283 1 user1-1278@plc1.org keys: [3278] sites: []
+3284 1 user1-1279@plc1.org keys: [3279] sites: []
+3285 1 user1-1280@plc1.org keys: [3280] sites: []
+3286 1 user1-1281@plc1.org keys: [3281] sites: []
+3287 1 user1-1282@plc1.org keys: [3282] sites: []
+3288 1 user1-1283@plc1.org keys: [3283] sites: []
+3289 1 user1-1284@plc1.org keys: [3284] sites: []
+3290 1 user1-1285@plc1.org keys: [3285] sites: []
+3291 1 user1-1286@plc1.org keys: [3286] sites: []
+3292 1 user1-1287@plc1.org keys: [3287] sites: []
+3293 1 user1-1288@plc1.org keys: [3288] sites: []
+3294 1 user1-1289@plc1.org keys: [3289] sites: []
+3295 1 user1-1290@plc1.org keys: [3290] sites: []
+3296 1 user1-1291@plc1.org keys: [3291] sites: []
+3297 1 user1-1292@plc1.org keys: [3292] sites: []
+3298 1 user1-1293@plc1.org keys: [3293] sites: []
+3299 1 user1-1294@plc1.org keys: [3294] sites: []
+3300 1 user1-1295@plc1.org keys: [3295] sites: []
+3301 1 user1-1296@plc1.org keys: [3296] sites: []
+3302 1 user1-1297@plc1.org keys: [3297] sites: []
+3303 1 user1-1298@plc1.org keys: [3298] sites: []
+3304 1 user1-1299@plc1.org keys: [3299] sites: []
+3305 1 user1-1300@plc1.org keys: [3300] sites: []
+3306 1 user1-1301@plc1.org keys: [3301] sites: []
+3307 1 user1-1302@plc1.org keys: [3302] sites: []
+3308 1 user1-1303@plc1.org keys: [3303] sites: []
+3309 1 user1-1304@plc1.org keys: [3304] sites: []
+3310 1 user1-1305@plc1.org keys: [3305] sites: []
+3311 1 user1-1306@plc1.org keys: [3306] sites: []
+3312 1 user1-1307@plc1.org keys: [3307] sites: []
+3313 1 user1-1308@plc1.org keys: [3308] sites: []
+3314 1 user1-1309@plc1.org keys: [3309] sites: []
+3315 1 user1-1310@plc1.org keys: [3310] sites: []
+3316 1 user1-1311@plc1.org keys: [3311] sites: []
+3317 1 user1-1312@plc1.org keys: [3312] sites: []
+3318 1 user1-1313@plc1.org keys: [3313] sites: []
+3319 1 user1-1314@plc1.org keys: [3314] sites: []
+3320 1 user1-1315@plc1.org keys: [3315] sites: []
+3321 1 user1-1316@plc1.org keys: [3316] sites: []
+3322 1 user1-1317@plc1.org keys: [3317] sites: []
+3323 1 user1-1318@plc1.org keys: [3318] sites: []
+3324 1 user1-1319@plc1.org keys: [3319] sites: []
+3325 1 user1-1320@plc1.org keys: [3320] sites: []
+3326 1 user1-1321@plc1.org keys: [3321] sites: []
+3327 1 user1-1322@plc1.org keys: [3322] sites: []
+3328 1 user1-1323@plc1.org keys: [3323] sites: []
+3329 1 user1-1324@plc1.org keys: [3324] sites: []
+3330 1 user1-1325@plc1.org keys: [3325] sites: []
+3331 1 user1-1326@plc1.org keys: [3326] sites: []
+3332 1 user1-1327@plc1.org keys: [3327] sites: []
+3333 1 user1-1328@plc1.org keys: [3328] sites: []
+3334 1 user1-1329@plc1.org keys: [3329] sites: []
+3335 1 user1-1330@plc1.org keys: [3330] sites: []
+3336 1 user1-1331@plc1.org keys: [3331] sites: []
+3337 1 user1-1332@plc1.org keys: [3332] sites: []
+3338 1 user1-1333@plc1.org keys: [3333] sites: []
+3339 1 user1-1334@plc1.org keys: [3334] sites: []
+3340 1 user1-1335@plc1.org keys: [3335] sites: []
+3341 1 user1-1336@plc1.org keys: [3336] sites: []
+3342 1 user1-1337@plc1.org keys: [3337] sites: []
+3343 1 user1-1338@plc1.org keys: [3338] sites: []
+3344 1 user1-1339@plc1.org keys: [3339] sites: []
+3345 1 user1-1340@plc1.org keys: [3340] sites: []
+3346 1 user1-1341@plc1.org keys: [3341] sites: []
+3347 1 user1-1342@plc1.org keys: [3342] sites: []
+3348 1 user1-1343@plc1.org keys: [3343] sites: []
+3349 1 user1-1344@plc1.org keys: [3344] sites: []
+3350 1 user1-1345@plc1.org keys: [3345] sites: []
+3351 1 user1-1346@plc1.org keys: [3346] sites: []
+3352 1 user1-1347@plc1.org keys: [3347] sites: []
+3353 1 user1-1348@plc1.org keys: [3348] sites: []
+3354 1 user1-1349@plc1.org keys: [3349] sites: []
+3355 1 user1-1350@plc1.org keys: [3350] sites: []
+3356 1 user1-1351@plc1.org keys: [3351] sites: []
+3357 1 user1-1352@plc1.org keys: [3352] sites: []
+3358 1 user1-1353@plc1.org keys: [3353] sites: []
+3359 1 user1-1354@plc1.org keys: [3354] sites: []
+3360 1 user1-1355@plc1.org keys: [3355] sites: []
+3361 1 user1-1356@plc1.org keys: [3356] sites: []
+3362 1 user1-1357@plc1.org keys: [3357] sites: []
+3363 1 user1-1358@plc1.org keys: [3358] sites: []
+3364 1 user1-1359@plc1.org keys: [3359] sites: []
+3365 1 user1-1360@plc1.org keys: [3360] sites: []
+3366 1 user1-1361@plc1.org keys: [3361] sites: []
+3367 1 user1-1362@plc1.org keys: [3362] sites: []
+3368 1 user1-1363@plc1.org keys: [3363] sites: []
+3369 1 user1-1364@plc1.org keys: [3364] sites: []
+3370 1 user1-1365@plc1.org keys: [3365] sites: []
+3371 1 user1-1366@plc1.org keys: [3366] sites: []
+3372 1 user1-1367@plc1.org keys: [3367] sites: []
+3373 1 user1-1368@plc1.org keys: [3368] sites: []
+3374 1 user1-1369@plc1.org keys: [3369] sites: []
+3375 1 user1-1370@plc1.org keys: [3370] sites: []
+3376 1 user1-1371@plc1.org keys: [3371] sites: []
+3377 1 user1-1372@plc1.org keys: [3372] sites: []
+3378 1 user1-1373@plc1.org keys: [3373] sites: []
+3379 1 user1-1374@plc1.org keys: [3374] sites: []
+3380 1 user1-1375@plc1.org keys: [3375] sites: []
+3381 1 user1-1376@plc1.org keys: [3376] sites: []
+3382 1 user1-1377@plc1.org keys: [3377] sites: []
+3383 1 user1-1378@plc1.org keys: [3378] sites: []
+3384 1 user1-1379@plc1.org keys: [3379] sites: []
+3385 1 user1-1380@plc1.org keys: [3380] sites: []
+3386 1 user1-1381@plc1.org keys: [3381] sites: []
+3387 1 user1-1382@plc1.org keys: [3382] sites: []
+3388 1 user1-1383@plc1.org keys: [3383] sites: []
+3389 1 user1-1384@plc1.org keys: [3384] sites: []
+3390 1 user1-1385@plc1.org keys: [3385] sites: []
+3391 1 user1-1386@plc1.org keys: [3386] sites: []
+3392 1 user1-1387@plc1.org keys: [3387] sites: []
+3393 1 user1-1388@plc1.org keys: [3388] sites: []
+3394 1 user1-1389@plc1.org keys: [3389] sites: []
+3395 1 user1-1390@plc1.org keys: [3390] sites: []
+3396 1 user1-1391@plc1.org keys: [3391] sites: []
+3397 1 user1-1392@plc1.org keys: [3392] sites: []
+3398 1 user1-1393@plc1.org keys: [3393] sites: []
+3399 1 user1-1394@plc1.org keys: [3394] sites: []
+3400 1 user1-1395@plc1.org keys: [3395] sites: []
+3401 1 user1-1396@plc1.org keys: [3396] sites: []
+3402 1 user1-1397@plc1.org keys: [3397] sites: []
+3403 1 user1-1398@plc1.org keys: [3398] sites: []
+3404 1 user1-1399@plc1.org keys: [3399] sites: []
+3405 1 user1-1400@plc1.org keys: [3400] sites: []
+3406 1 user1-1401@plc1.org keys: [3401] sites: []
+3407 1 user1-1402@plc1.org keys: [3402] sites: []
+3408 1 user1-1403@plc1.org keys: [3403] sites: []
+3409 1 user1-1404@plc1.org keys: [3404] sites: []
+3410 1 user1-1405@plc1.org keys: [3405] sites: []
+3411 1 user1-1406@plc1.org keys: [3406] sites: []
+3412 1 user1-1407@plc1.org keys: [3407] sites: []
+3413 1 user1-1408@plc1.org keys: [3408] sites: []
+3414 1 user1-1409@plc1.org keys: [3409] sites: []
+3415 1 user1-1410@plc1.org keys: [3410] sites: []
+3416 1 user1-1411@plc1.org keys: [3411] sites: []
+3417 1 user1-1412@plc1.org keys: [3412] sites: []
+3418 1 user1-1413@plc1.org keys: [3413] sites: []
+3419 1 user1-1414@plc1.org keys: [3414] sites: []
+3420 1 user1-1415@plc1.org keys: [3415] sites: []
+3421 1 user1-1416@plc1.org keys: [3416] sites: []
+3422 1 user1-1417@plc1.org keys: [3417] sites: []
+3423 1 user1-1418@plc1.org keys: [3418] sites: []
+3424 1 user1-1419@plc1.org keys: [3419] sites: []
+3425 1 user1-1420@plc1.org keys: [3420] sites: []
+3426 1 user1-1421@plc1.org keys: [3421] sites: []
+3427 1 user1-1422@plc1.org keys: [3422] sites: []
+3428 1 user1-1423@plc1.org keys: [3423] sites: []
+3429 1 user1-1424@plc1.org keys: [3424] sites: []
+3430 1 user1-1425@plc1.org keys: [3425] sites: []
+3431 1 user1-1426@plc1.org keys: [3426] sites: []
+3432 1 user1-1427@plc1.org keys: [3427] sites: []
+3433 1 user1-1428@plc1.org keys: [3428] sites: []
+3434 1 user1-1429@plc1.org keys: [3429] sites: []
+3435 1 user1-1430@plc1.org keys: [3430] sites: []
+3436 1 user1-1431@plc1.org keys: [3431] sites: []
+3437 1 user1-1432@plc1.org keys: [3432] sites: []
+3438 1 user1-1433@plc1.org keys: [3433] sites: []
+3439 1 user1-1434@plc1.org keys: [3434] sites: []
+3440 1 user1-1435@plc1.org keys: [3435] sites: []
+3441 1 user1-1436@plc1.org keys: [3436] sites: []
+3442 1 user1-1437@plc1.org keys: [3437] sites: []
+3443 1 user1-1438@plc1.org keys: [3438] sites: []
+3444 1 user1-1439@plc1.org keys: [3439] sites: []
+3445 1 user1-1440@plc1.org keys: [3440] sites: []
+3446 1 user1-1441@plc1.org keys: [3441] sites: []
+3447 1 user1-1442@plc1.org keys: [3442] sites: []
+3448 1 user1-1443@plc1.org keys: [3443] sites: []
+3449 1 user1-1444@plc1.org keys: [3444] sites: []
+3450 1 user1-1445@plc1.org keys: [3445] sites: []
+3451 1 user1-1446@plc1.org keys: [3446] sites: []
+3452 1 user1-1447@plc1.org keys: [3447] sites: []
+3453 1 user1-1448@plc1.org keys: [3448] sites: []
+3454 1 user1-1449@plc1.org keys: [3449] sites: []
+3455 1 user1-1450@plc1.org keys: [3450] sites: []
+3456 1 user1-1451@plc1.org keys: [3451] sites: []
+3457 1 user1-1452@plc1.org keys: [3452] sites: []
+3458 1 user1-1453@plc1.org keys: [3453] sites: []
+3459 1 user1-1454@plc1.org keys: [3454] sites: []
+3460 1 user1-1455@plc1.org keys: [3455] sites: []
+3461 1 user1-1456@plc1.org keys: [3456] sites: []
+3462 1 user1-1457@plc1.org keys: [3457] sites: []
+3463 1 user1-1458@plc1.org keys: [3458] sites: []
+3464 1 user1-1459@plc1.org keys: [3459] sites: []
+3465 1 user1-1460@plc1.org keys: [3460] sites: []
+3466 1 user1-1461@plc1.org keys: [3461] sites: []
+3467 1 user1-1462@plc1.org keys: [3462] sites: []
+3468 1 user1-1463@plc1.org keys: [3463] sites: []
+3469 1 user1-1464@plc1.org keys: [3464] sites: []
+3470 1 user1-1465@plc1.org keys: [3465] sites: []
+3471 1 user1-1466@plc1.org keys: [3466] sites: []
+3472 1 user1-1467@plc1.org keys: [3467] sites: []
+3473 1 user1-1468@plc1.org keys: [3468] sites: []
+3474 1 user1-1469@plc1.org keys: [3469] sites: []
+3475 1 user1-1470@plc1.org keys: [3470] sites: []
+3476 1 user1-1471@plc1.org keys: [3471] sites: []
+3477 1 user1-1472@plc1.org keys: [3472] sites: []
+3478 1 user1-1473@plc1.org keys: [3473] sites: []
+3479 1 user1-1474@plc1.org keys: [3474] sites: []
+3480 1 user1-1475@plc1.org keys: [3475] sites: []
+3481 1 user1-1476@plc1.org keys: [3476] sites: []
+3482 1 user1-1477@plc1.org keys: [3477] sites: []
+3483 1 user1-1478@plc1.org keys: [3478] sites: []
+3484 1 user1-1479@plc1.org keys: [3479] sites: []
+3485 1 user1-1480@plc1.org keys: [3480] sites: []
+3486 1 user1-1481@plc1.org keys: [3481] sites: []
+3487 1 user1-1482@plc1.org keys: [3482] sites: []
+3488 1 user1-1483@plc1.org keys: [3483] sites: []
+3489 1 user1-1484@plc1.org keys: [3484] sites: []
+3490 1 user1-1485@plc1.org keys: [3485] sites: []
+3491 1 user1-1486@plc1.org keys: [3486] sites: []
+3492 1 user1-1487@plc1.org keys: [3487] sites: []
+3493 1 user1-1488@plc1.org keys: [3488] sites: []
+3494 1 user1-1489@plc1.org keys: [3489] sites: []
+3495 1 user1-1490@plc1.org keys: [3490] sites: []
+3496 1 user1-1491@plc1.org keys: [3491] sites: []
+3497 1 user1-1492@plc1.org keys: [3492] sites: []
+3498 1 user1-1493@plc1.org keys: [3493] sites: []
+3499 1 user1-1494@plc1.org keys: [3494] sites: []
+3500 1 user1-1495@plc1.org keys: [3495] sites: []
+3501 1 user1-1496@plc1.org keys: [3496] sites: []
+3502 1 user1-1497@plc1.org keys: [3497] sites: []
+3503 1 user1-1498@plc1.org keys: [3498] sites: []
+3504 1 user1-1499@plc1.org keys: [3499] sites: []
+3505 1 user1-1500@plc1.org keys: [3500] sites: []
+3506 1 user1-1501@plc1.org keys: [3501] sites: []
+3507 1 user1-1502@plc1.org keys: [3502] sites: []
+3508 1 user1-1503@plc1.org keys: [3503] sites: []
+3509 1 user1-1504@plc1.org keys: [3504] sites: []
+3510 1 user1-1505@plc1.org keys: [3505] sites: []
+3511 1 user1-1506@plc1.org keys: [3506] sites: []
+3512 1 user1-1507@plc1.org keys: [3507] sites: []
+3513 1 user1-1508@plc1.org keys: [3508] sites: []
+3514 1 user1-1509@plc1.org keys: [3509] sites: []
+3515 1 user1-1510@plc1.org keys: [3510] sites: []
+3516 1 user1-1511@plc1.org keys: [3511] sites: []
+3517 1 user1-1512@plc1.org keys: [3512] sites: []
+3518 1 user1-1513@plc1.org keys: [3513] sites: []
+3519 1 user1-1514@plc1.org keys: [3514] sites: []
+3520 1 user1-1515@plc1.org keys: [3515] sites: []
+3521 1 user1-1516@plc1.org keys: [3516] sites: []
+3522 1 user1-1517@plc1.org keys: [3517] sites: []
+3523 1 user1-1518@plc1.org keys: [3518] sites: []
+3524 1 user1-1519@plc1.org keys: [3519] sites: []
+3525 1 user1-1520@plc1.org keys: [3520] sites: []
+3526 1 user1-1521@plc1.org keys: [3521] sites: []
+3527 1 user1-1522@plc1.org keys: [3522] sites: []
+3528 1 user1-1523@plc1.org keys: [3523] sites: []
+3529 1 user1-1524@plc1.org keys: [3524] sites: []
+3530 1 user1-1525@plc1.org keys: [3525] sites: []
+3531 1 user1-1526@plc1.org keys: [3526] sites: []
+3532 1 user1-1527@plc1.org keys: [3527] sites: []
+3533 1 user1-1528@plc1.org keys: [3528] sites: []
+3534 1 user1-1529@plc1.org keys: [3529] sites: []
+3535 1 user1-1530@plc1.org keys: [3530] sites: []
+3536 1 user1-1531@plc1.org keys: [3531] sites: []
+3537 1 user1-1532@plc1.org keys: [3532] sites: []
+3538 1 user1-1533@plc1.org keys: [3533] sites: []
+3539 1 user1-1534@plc1.org keys: [3534] sites: []
+3540 1 user1-1535@plc1.org keys: [3535] sites: []
+3541 1 user1-1536@plc1.org keys: [3536] sites: []
+3542 1 user1-1537@plc1.org keys: [3537] sites: []
+3543 1 user1-1538@plc1.org keys: [3538] sites: []
+3544 1 user1-1539@plc1.org keys: [3539] sites: []
+3545 1 user1-1540@plc1.org keys: [3540] sites: []
+3546 1 user1-1541@plc1.org keys: [3541] sites: []
+3547 1 user1-1542@plc1.org keys: [3542] sites: []
+3548 1 user1-1543@plc1.org keys: [3543] sites: []
+3549 1 user1-1544@plc1.org keys: [3544] sites: []
+3550 1 user1-1545@plc1.org keys: [3545] sites: []
+3551 1 user1-1546@plc1.org keys: [3546] sites: []
+3552 1 user1-1547@plc1.org keys: [3547] sites: []
+3553 1 user1-1548@plc1.org keys: [3548] sites: []
+3554 1 user1-1549@plc1.org keys: [3549] sites: []
+3555 1 user1-1550@plc1.org keys: [3550] sites: []
+3556 1 user1-1551@plc1.org keys: [3551] sites: []
+3557 1 user1-1552@plc1.org keys: [3552] sites: []
+3558 1 user1-1553@plc1.org keys: [3553] sites: []
+3559 1 user1-1554@plc1.org keys: [3554] sites: []
+3560 1 user1-1555@plc1.org keys: [3555] sites: []
+3561 1 user1-1556@plc1.org keys: [3556] sites: []
+3562 1 user1-1557@plc1.org keys: [3557] sites: []
+3563 1 user1-1558@plc1.org keys: [3558] sites: []
+3564 1 user1-1559@plc1.org keys: [3559] sites: []
+3565 1 user1-1560@plc1.org keys: [3560] sites: []
+3566 1 user1-1561@plc1.org keys: [3561] sites: []
+3567 1 user1-1562@plc1.org keys: [3562] sites: []
+3568 1 user1-1563@plc1.org keys: [3563] sites: []
+3569 1 user1-1564@plc1.org keys: [3564] sites: []
+3570 1 user1-1565@plc1.org keys: [3565] sites: []
+3571 1 user1-1566@plc1.org keys: [3566] sites: []
+3572 1 user1-1567@plc1.org keys: [3567] sites: []
+3573 1 user1-1568@plc1.org keys: [3568] sites: []
+3574 1 user1-1569@plc1.org keys: [3569] sites: []
+3575 1 user1-1570@plc1.org keys: [3570] sites: []
+3576 1 user1-1571@plc1.org keys: [3571] sites: []
+3577 1 user1-1572@plc1.org keys: [3572] sites: []
+3578 1 user1-1573@plc1.org keys: [3573] sites: []
+3579 1 user1-1574@plc1.org keys: [3574] sites: []
+3580 1 user1-1575@plc1.org keys: [3575] sites: []
+3581 1 user1-1576@plc1.org keys: [3576] sites: []
+3582 1 user1-1577@plc1.org keys: [3577] sites: []
+3583 1 user1-1578@plc1.org keys: [3578] sites: []
+3584 1 user1-1579@plc1.org keys: [3579] sites: []
+3585 1 user1-1580@plc1.org keys: [3580] sites: []
+3586 1 user1-1581@plc1.org keys: [3581] sites: []
+3587 1 user1-1582@plc1.org keys: [3582] sites: []
+3588 1 user1-1583@plc1.org keys: [3583] sites: []
+3589 1 user1-1584@plc1.org keys: [3584] sites: []
+3590 1 user1-1585@plc1.org keys: [3585] sites: []
+3591 1 user1-1586@plc1.org keys: [3586] sites: []
+3592 1 user1-1587@plc1.org keys: [3587] sites: []
+3593 1 user1-1588@plc1.org keys: [3588] sites: []
+3594 1 user1-1589@plc1.org keys: [3589] sites: []
+3595 1 user1-1590@plc1.org keys: [3590] sites: []
+3596 1 user1-1591@plc1.org keys: [3591] sites: []
+3597 1 user1-1592@plc1.org keys: [3592] sites: []
+3598 1 user1-1593@plc1.org keys: [3593] sites: []
+3599 1 user1-1594@plc1.org keys: [3594] sites: []
+3600 1 user1-1595@plc1.org keys: [3595] sites: []
+3601 1 user1-1596@plc1.org keys: [3596] sites: []
+3602 1 user1-1597@plc1.org keys: [3597] sites: []
+3603 1 user1-1598@plc1.org keys: [3598] sites: []
+3604 1 user1-1599@plc1.org keys: [3599] sites: []
+3605 1 user1-1600@plc1.org keys: [3600] sites: []
+3606 1 user1-1601@plc1.org keys: [3601] sites: []
+3607 1 user1-1602@plc1.org keys: [3602] sites: []
+3608 1 user1-1603@plc1.org keys: [3603] sites: []
+3609 1 user1-1604@plc1.org keys: [3604] sites: []
+3610 1 user1-1605@plc1.org keys: [3605] sites: []
+3611 1 user1-1606@plc1.org keys: [3606] sites: []
+3612 1 user1-1607@plc1.org keys: [3607] sites: []
+3613 1 user1-1608@plc1.org keys: [3608] sites: []
+3614 1 user1-1609@plc1.org keys: [3609] sites: []
+3615 1 user1-1610@plc1.org keys: [3610] sites: []
+3616 1 user1-1611@plc1.org keys: [3611] sites: []
+3617 1 user1-1612@plc1.org keys: [3612] sites: []
+3618 1 user1-1613@plc1.org keys: [3613] sites: []
+3619 1 user1-1614@plc1.org keys: [3614] sites: []
+3620 1 user1-1615@plc1.org keys: [3615] sites: []
+3621 1 user1-1616@plc1.org keys: [3616] sites: []
+3622 1 user1-1617@plc1.org keys: [3617] sites: []
+3623 1 user1-1618@plc1.org keys: [3618] sites: []
+3624 1 user1-1619@plc1.org keys: [3619] sites: []
+3625 1 user1-1620@plc1.org keys: [3620] sites: []
+3626 1 user1-1621@plc1.org keys: [3621] sites: []
+3627 1 user1-1622@plc1.org keys: [3622] sites: []
+3628 1 user1-1623@plc1.org keys: [3623] sites: []
+3629 1 user1-1624@plc1.org keys: [3624] sites: []
+3630 1 user1-1625@plc1.org keys: [3625] sites: []
+3631 1 user1-1626@plc1.org keys: [3626] sites: []
+3632 1 user1-1627@plc1.org keys: [3627] sites: []
+3633 1 user1-1628@plc1.org keys: [3628] sites: []
+3634 1 user1-1629@plc1.org keys: [3629] sites: []
+3635 1 user1-1630@plc1.org keys: [3630] sites: []
+3636 1 user1-1631@plc1.org keys: [3631] sites: []
+3637 1 user1-1632@plc1.org keys: [3632] sites: []
+3638 1 user1-1633@plc1.org keys: [3633] sites: []
+3639 1 user1-1634@plc1.org keys: [3634] sites: []
+3640 1 user1-1635@plc1.org keys: [3635] sites: []
+3641 1 user1-1636@plc1.org keys: [3636] sites: []
+3642 1 user1-1637@plc1.org keys: [3637] sites: []
+3643 1 user1-1638@plc1.org keys: [3638] sites: []
+3644 1 user1-1639@plc1.org keys: [3639] sites: []
+3645 1 user1-1640@plc1.org keys: [3640] sites: []
+3646 1 user1-1641@plc1.org keys: [3641] sites: []
+3647 1 user1-1642@plc1.org keys: [3642] sites: []
+3648 1 user1-1643@plc1.org keys: [3643] sites: []
+3649 1 user1-1644@plc1.org keys: [3644] sites: []
+3650 1 user1-1645@plc1.org keys: [3645] sites: []
+3651 1 user1-1646@plc1.org keys: [3646] sites: []
+3652 1 user1-1647@plc1.org keys: [3647] sites: []
+3653 1 user1-1648@plc1.org keys: [3648] sites: []
+3654 1 user1-1649@plc1.org keys: [3649] sites: []
+3655 1 user1-1650@plc1.org keys: [3650] sites: []
+3656 1 user1-1651@plc1.org keys: [3651] sites: []
+3657 1 user1-1652@plc1.org keys: [3652] sites: []
+3658 1 user1-1653@plc1.org keys: [3653] sites: []
+3659 1 user1-1654@plc1.org keys: [3654] sites: []
+3660 1 user1-1655@plc1.org keys: [3655] sites: []
+3661 1 user1-1656@plc1.org keys: [3656] sites: []
+3662 1 user1-1657@plc1.org keys: [3657] sites: []
+3663 1 user1-1658@plc1.org keys: [3658] sites: []
+3664 1 user1-1659@plc1.org keys: [3659] sites: []
+3665 1 user1-1660@plc1.org keys: [3660] sites: []
+3666 1 user1-1661@plc1.org keys: [3661] sites: []
+3667 1 user1-1662@plc1.org keys: [3662] sites: []
+3668 1 user1-1663@plc1.org keys: [3663] sites: []
+3669 1 user1-1664@plc1.org keys: [3664] sites: []
+3670 1 user1-1665@plc1.org keys: [3665] sites: []
+3671 1 user1-1666@plc1.org keys: [3666] sites: []
+3672 1 user1-1667@plc1.org keys: [3667] sites: []
+3673 1 user1-1668@plc1.org keys: [3668] sites: []
+3674 1 user1-1669@plc1.org keys: [3669] sites: []
+3675 1 user1-1670@plc1.org keys: [3670] sites: []
+3676 1 user1-1671@plc1.org keys: [3671] sites: []
+3677 1 user1-1672@plc1.org keys: [3672] sites: []
+3678 1 user1-1673@plc1.org keys: [3673] sites: []
+3679 1 user1-1674@plc1.org keys: [3674] sites: []
+3680 1 user1-1675@plc1.org keys: [3675] sites: []
+3681 1 user1-1676@plc1.org keys: [3676] sites: []
+3682 1 user1-1677@plc1.org keys: [3677] sites: []
+3683 1 user1-1678@plc1.org keys: [3678] sites: []
+3684 1 user1-1679@plc1.org keys: [3679] sites: []
+3685 1 user1-1680@plc1.org keys: [3680] sites: []
+3686 1 user1-1681@plc1.org keys: [3681] sites: []
+3687 1 user1-1682@plc1.org keys: [3682] sites: []
+3688 1 user1-1683@plc1.org keys: [3683] sites: []
+3689 1 user1-1684@plc1.org keys: [3684] sites: []
+3690 1 user1-1685@plc1.org keys: [3685] sites: []
+3691 1 user1-1686@plc1.org keys: [3686] sites: []
+3692 1 user1-1687@plc1.org keys: [3687] sites: []
+3693 1 user1-1688@plc1.org keys: [3688] sites: []
+3694 1 user1-1689@plc1.org keys: [3689] sites: []
+3695 1 user1-1690@plc1.org keys: [3690] sites: []
+3696 1 user1-1691@plc1.org keys: [3691] sites: []
+3697 1 user1-1692@plc1.org keys: [3692] sites: []
+3698 1 user1-1693@plc1.org keys: [3693] sites: []
+3699 1 user1-1694@plc1.org keys: [3694] sites: []
+3700 1 user1-1695@plc1.org keys: [3695] sites: []
+3701 1 user1-1696@plc1.org keys: [3696] sites: []
+3702 1 user1-1697@plc1.org keys: [3697] sites: []
+3703 1 user1-1698@plc1.org keys: [3698] sites: []
+3704 1 user1-1699@plc1.org keys: [3699] sites: []
+3705 1 user1-1700@plc1.org keys: [3700] sites: []
+3706 1 user1-1701@plc1.org keys: [3701] sites: []
+3707 1 user1-1702@plc1.org keys: [3702] sites: []
+3708 1 user1-1703@plc1.org keys: [3703] sites: []
+3709 1 user1-1704@plc1.org keys: [3704] sites: []
+3710 1 user1-1705@plc1.org keys: [3705] sites: []
+3711 1 user1-1706@plc1.org keys: [3706] sites: []
+3712 1 user1-1707@plc1.org keys: [3707] sites: []
+3713 1 user1-1708@plc1.org keys: [3708] sites: []
+3714 1 user1-1709@plc1.org keys: [3709] sites: []
+3715 1 user1-1710@plc1.org keys: [3710] sites: []
+3716 1 user1-1711@plc1.org keys: [3711] sites: []
+3717 1 user1-1712@plc1.org keys: [3712] sites: []
+3718 1 user1-1713@plc1.org keys: [3713] sites: []
+3719 1 user1-1714@plc1.org keys: [3714] sites: []
+3720 1 user1-1715@plc1.org keys: [3715] sites: []
+3721 1 user1-1716@plc1.org keys: [3716] sites: []
+3722 1 user1-1717@plc1.org keys: [3717] sites: []
+3723 1 user1-1718@plc1.org keys: [3718] sites: []
+3724 1 user1-1719@plc1.org keys: [3719] sites: []
+3725 1 user1-1720@plc1.org keys: [3720] sites: []
+3726 1 user1-1721@plc1.org keys: [3721] sites: []
+3727 1 user1-1722@plc1.org keys: [3722] sites: []
+3728 1 user1-1723@plc1.org keys: [3723] sites: []
+3729 1 user1-1724@plc1.org keys: [3724] sites: []
+3730 1 user1-1725@plc1.org keys: [3725] sites: []
+3731 1 user1-1726@plc1.org keys: [3726] sites: []
+3732 1 user1-1727@plc1.org keys: [3727] sites: []
+3733 1 user1-1728@plc1.org keys: [3728] sites: []
+3734 1 user1-1729@plc1.org keys: [3729] sites: []
+3735 1 user1-1730@plc1.org keys: [3730] sites: []
+3736 1 user1-1731@plc1.org keys: [3731] sites: []
+3737 1 user1-1732@plc1.org keys: [3732] sites: []
+3738 1 user1-1733@plc1.org keys: [3733] sites: []
+3739 1 user1-1734@plc1.org keys: [3734] sites: []
+3740 1 user1-1735@plc1.org keys: [3735] sites: []
+3741 1 user1-1736@plc1.org keys: [3736] sites: []
+3742 1 user1-1737@plc1.org keys: [3737] sites: []
+3743 1 user1-1738@plc1.org keys: [3738] sites: []
+3744 1 user1-1739@plc1.org keys: [3739] sites: []
+3745 1 user1-1740@plc1.org keys: [3740] sites: []
+3746 1 user1-1741@plc1.org keys: [3741] sites: []
+3747 1 user1-1742@plc1.org keys: [3742] sites: []
+3748 1 user1-1743@plc1.org keys: [3743] sites: []
+3749 1 user1-1744@plc1.org keys: [3744] sites: []
+3750 1 user1-1745@plc1.org keys: [3745] sites: []
+3751 1 user1-1746@plc1.org keys: [3746] sites: []
+3752 1 user1-1747@plc1.org keys: [3747] sites: []
+3753 1 user1-1748@plc1.org keys: [3748] sites: []
+3754 1 user1-1749@plc1.org keys: [3749] sites: []
+3755 1 user1-1750@plc1.org keys: [3750] sites: []
+3756 1 user1-1751@plc1.org keys: [3751] sites: []
+3757 1 user1-1752@plc1.org keys: [3752] sites: []
+3758 1 user1-1753@plc1.org keys: [3753] sites: []
+3759 1 user1-1754@plc1.org keys: [3754] sites: []
+3760 1 user1-1755@plc1.org keys: [3755] sites: []
+3761 1 user1-1756@plc1.org keys: [3756] sites: []
+3762 1 user1-1757@plc1.org keys: [3757] sites: []
+3763 1 user1-1758@plc1.org keys: [3758] sites: []
+3764 1 user1-1759@plc1.org keys: [3759] sites: []
+3765 1 user1-1760@plc1.org keys: [3760] sites: []
+3766 1 user1-1761@plc1.org keys: [3761] sites: []
+3767 1 user1-1762@plc1.org keys: [3762] sites: []
+3768 1 user1-1763@plc1.org keys: [3763] sites: []
+3769 1 user1-1764@plc1.org keys: [3764] sites: []
+3770 1 user1-1765@plc1.org keys: [3765] sites: []
+3771 1 user1-1766@plc1.org keys: [3766] sites: []
+3772 1 user1-1767@plc1.org keys: [3767] sites: []
+3773 1 user1-1768@plc1.org keys: [3768] sites: []
+3774 1 user1-1769@plc1.org keys: [3769] sites: []
+3775 1 user1-1770@plc1.org keys: [3770] sites: []
+3776 1 user1-1771@plc1.org keys: [3771] sites: []
+3777 1 user1-1772@plc1.org keys: [3772] sites: []
+3778 1 user1-1773@plc1.org keys: [3773] sites: []
+3779 1 user1-1774@plc1.org keys: [3774] sites: []
+3780 1 user1-1775@plc1.org keys: [3775] sites: []
+3781 1 user1-1776@plc1.org keys: [3776] sites: []
+3782 1 user1-1777@plc1.org keys: [3777] sites: []
+3783 1 user1-1778@plc1.org keys: [3778] sites: []
+3784 1 user1-1779@plc1.org keys: [3779] sites: []
+3785 1 user1-1780@plc1.org keys: [3780] sites: []
+3786 1 user1-1781@plc1.org keys: [3781] sites: []
+3787 1 user1-1782@plc1.org keys: [3782] sites: []
+3788 1 user1-1783@plc1.org keys: [3783] sites: []
+3789 1 user1-1784@plc1.org keys: [3784] sites: []
+3790 1 user1-1785@plc1.org keys: [3785] sites: []
+3791 1 user1-1786@plc1.org keys: [3786] sites: []
+3792 1 user1-1787@plc1.org keys: [3787] sites: []
+3793 1 user1-1788@plc1.org keys: [3788] sites: []
+3794 1 user1-1789@plc1.org keys: [3789] sites: []
+3795 1 user1-1790@plc1.org keys: [3790] sites: []
+3796 1 user1-1791@plc1.org keys: [3791] sites: []
+3797 1 user1-1792@plc1.org keys: [3792] sites: []
+3798 1 user1-1793@plc1.org keys: [3793] sites: []
+3799 1 user1-1794@plc1.org keys: [3794] sites: []
+3800 1 user1-1795@plc1.org keys: [3795] sites: []
+3801 1 user1-1796@plc1.org keys: [3796] sites: []
+3802 1 user1-1797@plc1.org keys: [3797] sites: []
+3803 1 user1-1798@plc1.org keys: [3798] sites: []
+3804 1 user1-1799@plc1.org keys: [3799] sites: []
+3805 1 user1-1800@plc1.org keys: [3800] sites: []
+3806 1 user1-1801@plc1.org keys: [3801] sites: []
+3807 1 user1-1802@plc1.org keys: [3802] sites: []
+3808 1 user1-1803@plc1.org keys: [3803] sites: []
+3809 1 user1-1804@plc1.org keys: [3804] sites: []
+3810 1 user1-1805@plc1.org keys: [3805] sites: []
+3811 1 user1-1806@plc1.org keys: [3806] sites: []
+3812 1 user1-1807@plc1.org keys: [3807] sites: []
+3813 1 user1-1808@plc1.org keys: [3808] sites: []
+3814 1 user1-1809@plc1.org keys: [3809] sites: []
+3815 1 user1-1810@plc1.org keys: [3810] sites: []
+3816 1 user1-1811@plc1.org keys: [3811] sites: []
+3817 1 user1-1812@plc1.org keys: [3812] sites: []
+3818 1 user1-1813@plc1.org keys: [3813] sites: []
+3819 1 user1-1814@plc1.org keys: [3814] sites: []
+3820 1 user1-1815@plc1.org keys: [3815] sites: []
+3821 1 user1-1816@plc1.org keys: [3816] sites: []
+3822 1 user1-1817@plc1.org keys: [3817] sites: []
+3823 1 user1-1818@plc1.org keys: [3818] sites: []
+3824 1 user1-1819@plc1.org keys: [3819] sites: []
+3825 1 user1-1820@plc1.org keys: [3820] sites: []
+3826 1 user1-1821@plc1.org keys: [3821] sites: []
+3827 1 user1-1822@plc1.org keys: [3822] sites: []
+3828 1 user1-1823@plc1.org keys: [3823] sites: []
+3829 1 user1-1824@plc1.org keys: [3824] sites: []
+3830 1 user1-1825@plc1.org keys: [3825] sites: []
+3831 1 user1-1826@plc1.org keys: [3826] sites: []
+3832 1 user1-1827@plc1.org keys: [3827] sites: []
+3833 1 user1-1828@plc1.org keys: [3828] sites: []
+3834 1 user1-1829@plc1.org keys: [3829] sites: []
+3835 1 user1-1830@plc1.org keys: [3830] sites: []
+3836 1 user1-1831@plc1.org keys: [3831] sites: []
+3837 1 user1-1832@plc1.org keys: [3832] sites: []
+3838 1 user1-1833@plc1.org keys: [3833] sites: []
+3839 1 user1-1834@plc1.org keys: [3834] sites: []
+3840 1 user1-1835@plc1.org keys: [3835] sites: []
+3841 1 user1-1836@plc1.org keys: [3836] sites: []
+3842 1 user1-1837@plc1.org keys: [3837] sites: []
+3843 1 user1-1838@plc1.org keys: [3838] sites: []
+3844 1 user1-1839@plc1.org keys: [3839] sites: []
+3845 1 user1-1840@plc1.org keys: [3840] sites: []
+3846 1 user1-1841@plc1.org keys: [3841] sites: []
+3847 1 user1-1842@plc1.org keys: [3842] sites: []
+3848 1 user1-1843@plc1.org keys: [3843] sites: []
+3849 1 user1-1844@plc1.org keys: [3844] sites: []
+3850 1 user1-1845@plc1.org keys: [3845] sites: []
+3851 1 user1-1846@plc1.org keys: [3846] sites: []
+3852 1 user1-1847@plc1.org keys: [3847] sites: []
+3853 1 user1-1848@plc1.org keys: [3848] sites: []
+3854 1 user1-1849@plc1.org keys: [3849] sites: []
+3855 1 user1-1850@plc1.org keys: [3850] sites: []
+3856 1 user1-1851@plc1.org keys: [3851] sites: []
+3857 1 user1-1852@plc1.org keys: [3852] sites: []
+3858 1 user1-1853@plc1.org keys: [3853] sites: []
+3859 1 user1-1854@plc1.org keys: [3854] sites: []
+3860 1 user1-1855@plc1.org keys: [3855] sites: []
+3861 1 user1-1856@plc1.org keys: [3856] sites: []
+3862 1 user1-1857@plc1.org keys: [3857] sites: []
+3863 1 user1-1858@plc1.org keys: [3858] sites: []
+3864 1 user1-1859@plc1.org keys: [3859] sites: []
+3865 1 user1-1860@plc1.org keys: [3860] sites: []
+3866 1 user1-1861@plc1.org keys: [3861] sites: []
+3867 1 user1-1862@plc1.org keys: [3862] sites: []
+3868 1 user1-1863@plc1.org keys: [3863] sites: []
+3869 1 user1-1864@plc1.org keys: [3864] sites: []
+3870 1 user1-1865@plc1.org keys: [3865] sites: []
+3871 1 user1-1866@plc1.org keys: [3866] sites: []
+3872 1 user1-1867@plc1.org keys: [3867] sites: []
+3873 1 user1-1868@plc1.org keys: [3868] sites: []
+3874 1 user1-1869@plc1.org keys: [3869] sites: []
+3875 1 user1-1870@plc1.org keys: [3870] sites: []
+3876 1 user1-1871@plc1.org keys: [3871] sites: []
+3877 1 user1-1872@plc1.org keys: [3872] sites: []
+3878 1 user1-1873@plc1.org keys: [3873] sites: []
+3879 1 user1-1874@plc1.org keys: [3874] sites: []
+3880 1 user1-1875@plc1.org keys: [3875] sites: []
+3881 1 user1-1876@plc1.org keys: [3876] sites: []
+3882 1 user1-1877@plc1.org keys: [3877] sites: []
+3883 1 user1-1878@plc1.org keys: [3878] sites: []
+3884 1 user1-1879@plc1.org keys: [3879] sites: []
+3885 1 user1-1880@plc1.org keys: [3880] sites: []
+3886 1 user1-1881@plc1.org keys: [3881] sites: []
+3887 1 user1-1882@plc1.org keys: [3882] sites: []
+3888 1 user1-1883@plc1.org keys: [3883] sites: []
+3889 1 user1-1884@plc1.org keys: [3884] sites: []
+3890 1 user1-1885@plc1.org keys: [3885] sites: []
+3891 1 user1-1886@plc1.org keys: [3886] sites: []
+3892 1 user1-1887@plc1.org keys: [3887] sites: []
+3893 1 user1-1888@plc1.org keys: [3888] sites: []
+3894 1 user1-1889@plc1.org keys: [3889] sites: []
+3895 1 user1-1890@plc1.org keys: [3890] sites: []
+3896 1 user1-1891@plc1.org keys: [3891] sites: []
+3897 1 user1-1892@plc1.org keys: [3892] sites: []
+3898 1 user1-1893@plc1.org keys: [3893] sites: []
+3899 1 user1-1894@plc1.org keys: [3894] sites: []
+3900 1 user1-1895@plc1.org keys: [3895] sites: []
+3901 1 user1-1896@plc1.org keys: [3896] sites: []
+3902 1 user1-1897@plc1.org keys: [3897] sites: []
+3903 1 user1-1898@plc1.org keys: [3898] sites: []
+3904 1 user1-1899@plc1.org keys: [3899] sites: []
+3905 1 user1-1900@plc1.org keys: [3900] sites: []
+3906 1 user1-1901@plc1.org keys: [3901] sites: []
+3907 1 user1-1902@plc1.org keys: [3902] sites: []
+3908 1 user1-1903@plc1.org keys: [3903] sites: []
+3909 1 user1-1904@plc1.org keys: [3904] sites: []
+3910 1 user1-1905@plc1.org keys: [3905] sites: []
+3911 1 user1-1906@plc1.org keys: [3906] sites: []
+3912 1 user1-1907@plc1.org keys: [3907] sites: []
+3913 1 user1-1908@plc1.org keys: [3908] sites: []
+3914 1 user1-1909@plc1.org keys: [3909] sites: []
+3915 1 user1-1910@plc1.org keys: [3910] sites: []
+3916 1 user1-1911@plc1.org keys: [3911] sites: []
+3917 1 user1-1912@plc1.org keys: [3912] sites: []
+3918 1 user1-1913@plc1.org keys: [3913] sites: []
+3919 1 user1-1914@plc1.org keys: [3914] sites: []
+3920 1 user1-1915@plc1.org keys: [3915] sites: []
+3921 1 user1-1916@plc1.org keys: [3916] sites: []
+3922 1 user1-1917@plc1.org keys: [3917] sites: []
+3923 1 user1-1918@plc1.org keys: [3918] sites: []
+3924 1 user1-1919@plc1.org keys: [3919] sites: []
+3925 1 user1-1920@plc1.org keys: [3920] sites: []
+3926 1 user1-1921@plc1.org keys: [3921] sites: []
+3927 1 user1-1922@plc1.org keys: [3922] sites: []
+3928 1 user1-1923@plc1.org keys: [3923] sites: []
+3929 1 user1-1924@plc1.org keys: [3924] sites: []
+3930 1 user1-1925@plc1.org keys: [3925] sites: []
+3931 1 user1-1926@plc1.org keys: [3926] sites: []
+3932 1 user1-1927@plc1.org keys: [3927] sites: []
+3933 1 user1-1928@plc1.org keys: [3928] sites: []
+3934 1 user1-1929@plc1.org keys: [3929] sites: []
+3935 1 user1-1930@plc1.org keys: [3930] sites: []
+3936 1 user1-1931@plc1.org keys: [3931] sites: []
+3937 1 user1-1932@plc1.org keys: [3932] sites: []
+3938 1 user1-1933@plc1.org keys: [3933] sites: []
+3939 1 user1-1934@plc1.org keys: [3934] sites: []
+3940 1 user1-1935@plc1.org keys: [3935] sites: []
+3941 1 user1-1936@plc1.org keys: [3936] sites: []
+3942 1 user1-1937@plc1.org keys: [3937] sites: []
+3943 1 user1-1938@plc1.org keys: [3938] sites: []
+3944 1 user1-1939@plc1.org keys: [3939] sites: []
+3945 1 user1-1940@plc1.org keys: [3940] sites: []
+3946 1 user1-1941@plc1.org keys: [3941] sites: []
+3947 1 user1-1942@plc1.org keys: [3942] sites: []
+3948 1 user1-1943@plc1.org keys: [3943] sites: []
+3949 1 user1-1944@plc1.org keys: [3944] sites: []
+3950 1 user1-1945@plc1.org keys: [3945] sites: []
+3951 1 user1-1946@plc1.org keys: [3946] sites: []
+3952 1 user1-1947@plc1.org keys: [3947] sites: []
+3953 1 user1-1948@plc1.org keys: [3948] sites: []
+3954 1 user1-1949@plc1.org keys: [3949] sites: []
+3955 1 user1-1950@plc1.org keys: [3950] sites: []
+3956 1 user1-1951@plc1.org keys: [3951] sites: []
+3957 1 user1-1952@plc1.org keys: [3952] sites: []
+3958 1 user1-1953@plc1.org keys: [3953] sites: []
+3959 1 user1-1954@plc1.org keys: [3954] sites: []
+3960 1 user1-1955@plc1.org keys: [3955] sites: []
+3961 1 user1-1956@plc1.org keys: [3956] sites: []
+3962 1 user1-1957@plc1.org keys: [3957] sites: []
+3963 1 user1-1958@plc1.org keys: [3958] sites: []
+3964 1 user1-1959@plc1.org keys: [3959] sites: []
+3965 1 user1-1960@plc1.org keys: [3960] sites: []
+3966 1 user1-1961@plc1.org keys: [3961] sites: []
+3967 1 user1-1962@plc1.org keys: [3962] sites: []
+3968 1 user1-1963@plc1.org keys: [3963] sites: []
+3969 1 user1-1964@plc1.org keys: [3964] sites: []
+3970 1 user1-1965@plc1.org keys: [3965] sites: []
+3971 1 user1-1966@plc1.org keys: [3966] sites: []
+3972 1 user1-1967@plc1.org keys: [3967] sites: []
+3973 1 user1-1968@plc1.org keys: [3968] sites: []
+3974 1 user1-1969@plc1.org keys: [3969] sites: []
+3975 1 user1-1970@plc1.org keys: [3970] sites: []
+3976 1 user1-1971@plc1.org keys: [3971] sites: []
+3977 1 user1-1972@plc1.org keys: [3972] sites: []
+3978 1 user1-1973@plc1.org keys: [3973] sites: []
+3979 1 user1-1974@plc1.org keys: [3974] sites: []
+3980 1 user1-1975@plc1.org keys: [3975] sites: []
+3981 1 user1-1976@plc1.org keys: [3976] sites: []
+3982 1 user1-1977@plc1.org keys: [3977] sites: []
+3983 1 user1-1978@plc1.org keys: [3978] sites: []
+3984 1 user1-1979@plc1.org keys: [3979] sites: []
+3985 1 user1-1980@plc1.org keys: [3980] sites: []
+3986 1 user1-1981@plc1.org keys: [3981] sites: []
+3987 1 user1-1982@plc1.org keys: [3982] sites: []
+3988 1 user1-1983@plc1.org keys: [3983] sites: []
+3989 1 user1-1984@plc1.org keys: [3984] sites: []
+3990 1 user1-1985@plc1.org keys: [3985] sites: []
+3991 1 user1-1986@plc1.org keys: [3986] sites: []
+3992 1 user1-1987@plc1.org keys: [3987] sites: []
+3993 1 user1-1988@plc1.org keys: [3988] sites: []
+3994 1 user1-1989@plc1.org keys: [3989] sites: []
+3995 1 user1-1990@plc1.org keys: [3990] sites: []
+3996 1 user1-1991@plc1.org keys: [3991] sites: []
+3997 1 user1-1992@plc1.org keys: [3992] sites: []
+3998 1 user1-1993@plc1.org keys: [3993] sites: []
+3999 1 user1-1994@plc1.org keys: [3994] sites: []
+4000 1 user1-1995@plc1.org keys: [3995] sites: []
+4001 1 user1-1996@plc1.org keys: [3996] sites: []
+4002 1 user1-1997@plc1.org keys: [3997] sites: []
+4003 1 user1-1998@plc1.org keys: [3998] sites: []
+4004 1 user1-1999@plc1.org keys: [3999] sites: []
+4005 1 user1-2000@plc1.org keys: [4000] sites: []
+02: NODES
+1 None n2-001.plc2.org sls= [3] site= 2
+2 None n2-002.plc2.org sls= [3, 4] site= 3
+3 None n2-003.plc2.org sls= [3, 4, 5] site= 4
+4 None n2-004.plc2.org sls= [4, 5, 6] site= 5
+5 None n2-005.plc2.org sls= [5, 6, 7] site= 6
+6 None n2-006.plc2.org sls= [6, 7, 8] site= 7
+7 None n2-007.plc2.org sls= [7, 8, 9] site= 8
+8 None n2-008.plc2.org sls= [8, 9, 10] site= 9
+9 None n2-009.plc2.org sls= [9, 10, 11] site= 10
+10 None n2-010.plc2.org sls= [10, 11, 12] site= 11
+11 None n2-011.plc2.org sls= [11, 12, 13] site= 12
+12 None n2-012.plc2.org sls= [12, 13, 14] site= 13
+13 None n2-013.plc2.org sls= [13, 14, 15] site= 14
+14 None n2-014.plc2.org sls= [14, 15, 16] site= 15
+15 None n2-015.plc2.org sls= [15, 16, 17] site= 16
+16 None n2-016.plc2.org sls= [16, 17, 18] site= 17
+17 None n2-017.plc2.org sls= [17, 18, 19] site= 18
+18 None n2-018.plc2.org sls= [18, 19, 20] site= 19
+19 None n2-019.plc2.org sls= [19, 20, 21] site= 20
+20 None n2-020.plc2.org sls= [20, 21, 22] site= 21
+21 None n2-021.plc2.org sls= [21, 22, 23] site= 22
+22 None n2-022.plc2.org sls= [22, 23, 24] site= 23
+23 None n2-023.plc2.org sls= [23, 24, 25] site= 24
+24 None n2-024.plc2.org sls= [24, 25, 26] site= 25
+25 None n2-025.plc2.org sls= [25, 26, 27] site= 26
+26 None n2-026.plc2.org sls= [26, 27, 28] site= 27
+27 None n2-027.plc2.org sls= [27, 28, 29] site= 28
+28 None n2-028.plc2.org sls= [28, 29, 30] site= 29
+29 None n2-029.plc2.org sls= [29, 30, 31] site= 30
+30 None n2-030.plc2.org sls= [30, 31, 32] site= 31
+31 None n2-031.plc2.org sls= [31, 32, 33] site= 32
+32 None n2-032.plc2.org sls= [32, 33, 34] site= 33
+33 None n2-033.plc2.org sls= [33, 34, 35] site= 34
+34 None n2-034.plc2.org sls= [34, 35, 36] site= 35
+35 None n2-035.plc2.org sls= [35, 36, 37] site= 36
+36 None n2-036.plc2.org sls= [36, 37, 38] site= 37
+37 None n2-037.plc2.org sls= [37, 38, 39] site= 38
+38 None n2-038.plc2.org sls= [38, 39, 40] site= 39
+39 None n2-039.plc2.org sls= [39, 40, 41] site= 40
+40 None n2-040.plc2.org sls= [40, 41, 42] site= 41
+41 None n2-041.plc2.org sls= [41, 42, 43] site= 42
+42 None n2-042.plc2.org sls= [42, 43, 44] site= 43
+43 None n2-043.plc2.org sls= [43, 44, 45] site= 44
+44 None n2-044.plc2.org sls= [44, 45, 46] site= 45
+45 None n2-045.plc2.org sls= [45, 46, 47] site= 46
+46 None n2-046.plc2.org sls= [46, 47, 48] site= 47
+47 None n2-047.plc2.org sls= [47, 48, 49] site= 48
+48 None n2-048.plc2.org sls= [48, 49, 50] site= 49
+49 None n2-049.plc2.org sls= [49, 50, 51] site= 50
+50 None n2-050.plc2.org sls= [50, 51, 52] site= 51
+51 None n2-051.plc2.org sls= [51, 52, 53] site= 52
+52 None n2-052.plc2.org sls= [52, 53, 54] site= 53
+53 None n2-053.plc2.org sls= [53, 54, 55] site= 54
+54 None n2-054.plc2.org sls= [54, 55, 56] site= 55
+55 None n2-055.plc2.org sls= [55, 56, 57] site= 56
+56 None n2-056.plc2.org sls= [56, 57, 58] site= 57
+57 None n2-057.plc2.org sls= [57, 58, 59] site= 58
+58 None n2-058.plc2.org sls= [58, 59, 60] site= 59
+59 None n2-059.plc2.org sls= [59, 60, 61] site= 60
+60 None n2-060.plc2.org sls= [60, 61, 62] site= 61
+61 None n2-061.plc2.org sls= [61, 62, 63] site= 62
+62 None n2-062.plc2.org sls= [62, 63, 64] site= 63
+63 None n2-063.plc2.org sls= [63, 64, 65] site= 64
+64 None n2-064.plc2.org sls= [64, 65, 66] site= 65
+65 None n2-065.plc2.org sls= [65, 66, 67] site= 66
+66 None n2-066.plc2.org sls= [66, 67, 68] site= 67
+67 None n2-067.plc2.org sls= [67, 68, 69] site= 68
+68 None n2-068.plc2.org sls= [68, 69, 70] site= 69
+69 None n2-069.plc2.org sls= [69, 70, 71] site= 70
+70 None n2-070.plc2.org sls= [70, 71, 72] site= 71
+71 None n2-071.plc2.org sls= [71, 72, 73] site= 72
+72 None n2-072.plc2.org sls= [72, 73, 74] site= 73
+73 None n2-073.plc2.org sls= [73, 74, 75] site= 74
+74 None n2-074.plc2.org sls= [74, 75, 76] site= 75
+75 None n2-075.plc2.org sls= [75, 76, 77] site= 76
+76 None n2-076.plc2.org sls= [76, 77, 78] site= 77
+77 None n2-077.plc2.org sls= [77, 78, 79] site= 78
+78 None n2-078.plc2.org sls= [78, 79, 80] site= 79
+79 None n2-079.plc2.org sls= [79, 80, 81] site= 80
+80 None n2-080.plc2.org sls= [80, 81, 82] site= 81
+81 None n2-081.plc2.org sls= [81, 82, 83] site= 82
+82 None n2-082.plc2.org sls= [82, 83, 84] site= 83
+83 None n2-083.plc2.org sls= [83, 84, 85] site= 84
+84 None n2-084.plc2.org sls= [84, 85, 86] site= 85
+85 None n2-085.plc2.org sls= [85, 86, 87] site= 86
+86 None n2-086.plc2.org sls= [86, 87, 88] site= 87
+87 None n2-087.plc2.org sls= [87, 88, 89] site= 88
+88 None n2-088.plc2.org sls= [88, 89, 90] site= 89
+89 None n2-089.plc2.org sls= [89, 90, 91] site= 90
+90 None n2-090.plc2.org sls= [90, 91, 92] site= 91
+91 None n2-091.plc2.org sls= [91, 92, 93] site= 92
+92 None n2-092.plc2.org sls= [92, 93, 94] site= 93
+93 None n2-093.plc2.org sls= [93, 94, 95] site= 94
+94 None n2-094.plc2.org sls= [94, 95, 96] site= 95
+95 None n2-095.plc2.org sls= [95, 96, 97] site= 96
+96 None n2-096.plc2.org sls= [96, 97, 98] site= 97
+97 None n2-097.plc2.org sls= [97, 98, 99] site= 98
+98 None n2-098.plc2.org sls= [98, 99, 100] site= 99
+99 None n2-099.plc2.org sls= [99, 100, 101] site= 100
+100 None n2-100.plc2.org sls= [100, 101, 102] site= 101
+101 None n2-101.plc2.org sls= [101, 102, 103] site= 102
+102 None n2-102.plc2.org sls= [102, 103, 104] site= 103
+103 None n2-103.plc2.org sls= [103, 104, 105] site= 104
+104 None n2-104.plc2.org sls= [104, 105, 106] site= 105
+105 None n2-105.plc2.org sls= [105, 106, 107] site= 106
+106 None n2-106.plc2.org sls= [106, 107, 108] site= 107
+107 None n2-107.plc2.org sls= [107, 108, 109] site= 108
+108 None n2-108.plc2.org sls= [108, 109, 110] site= 109
+109 None n2-109.plc2.org sls= [109, 110, 111] site= 110
+110 None n2-110.plc2.org sls= [110, 111, 112] site= 111
+111 None n2-111.plc2.org sls= [111, 112, 113] site= 112
+112 None n2-112.plc2.org sls= [112, 113, 114] site= 113
+113 None n2-113.plc2.org sls= [113, 114, 115] site= 114
+114 None n2-114.plc2.org sls= [114, 115, 116] site= 115
+115 None n2-115.plc2.org sls= [115, 116, 117] site= 116
+116 None n2-116.plc2.org sls= [116, 117, 118] site= 117
+117 None n2-117.plc2.org sls= [117, 118, 119] site= 118
+118 None n2-118.plc2.org sls= [118, 119, 120] site= 119
+119 None n2-119.plc2.org sls= [119, 120, 121] site= 120
+120 None n2-120.plc2.org sls= [120, 121, 122] site= 121
+121 None n2-121.plc2.org sls= [121, 122, 123] site= 122
+122 None n2-122.plc2.org sls= [122, 123, 124] site= 123
+123 None n2-123.plc2.org sls= [123, 124, 125] site= 124
+124 None n2-124.plc2.org sls= [124, 125, 126] site= 125
+125 None n2-125.plc2.org sls= [125, 126, 127] site= 126
+126 None n2-126.plc2.org sls= [126, 127, 128] site= 127
+127 None n2-127.plc2.org sls= [127, 128, 129] site= 128
+128 None n2-128.plc2.org sls= [128, 129, 130] site= 129
+129 None n2-129.plc2.org sls= [129, 130, 131] site= 130
+130 None n2-130.plc2.org sls= [130, 131, 132] site= 131
+131 None n2-131.plc2.org sls= [131, 132, 133] site= 132
+132 None n2-132.plc2.org sls= [132, 133, 134] site= 133
+133 None n2-133.plc2.org sls= [133, 134, 135] site= 134
+134 None n2-134.plc2.org sls= [134, 135, 136] site= 135
+135 None n2-135.plc2.org sls= [135, 136, 137] site= 136
+136 None n2-136.plc2.org sls= [136, 137, 138] site= 137
+137 None n2-137.plc2.org sls= [137, 138, 139] site= 138
+138 None n2-138.plc2.org sls= [138, 139, 140] site= 139
+139 None n2-139.plc2.org sls= [139, 140, 141] site= 140
+140 None n2-140.plc2.org sls= [140, 141, 142] site= 141
+141 None n2-141.plc2.org sls= [141, 142, 143] site= 142
+142 None n2-142.plc2.org sls= [142, 143, 144] site= 143
+143 None n2-143.plc2.org sls= [143, 144, 145] site= 144
+144 None n2-144.plc2.org sls= [144, 145, 146] site= 145
+145 None n2-145.plc2.org sls= [145, 146, 147] site= 146
+146 None n2-146.plc2.org sls= [146, 147, 148] site= 147
+147 None n2-147.plc2.org sls= [147, 148, 149] site= 148
+148 None n2-148.plc2.org sls= [148, 149, 150] site= 149
+149 None n2-149.plc2.org sls= [149, 150, 151] site= 150
+150 None n2-150.plc2.org sls= [150, 151, 152] site= 151
+151 None n2-151.plc2.org sls= [151, 152, 153] site= 152
+152 None n2-152.plc2.org sls= [152, 153, 154] site= 153
+153 None n2-153.plc2.org sls= [153, 154, 155] site= 154
+154 None n2-154.plc2.org sls= [154, 155, 156] site= 155
+155 None n2-155.plc2.org sls= [155, 156, 157] site= 156
+156 None n2-156.plc2.org sls= [156, 157, 158] site= 157
+157 None n2-157.plc2.org sls= [157, 158, 159] site= 158
+158 None n2-158.plc2.org sls= [158, 159, 160] site= 159
+159 None n2-159.plc2.org sls= [159, 160, 161] site= 160
+160 None n2-160.plc2.org sls= [160, 161, 162] site= 161
+161 None n2-161.plc2.org sls= [161, 162, 163] site= 162
+162 None n2-162.plc2.org sls= [162, 163, 164] site= 163
+163 None n2-163.plc2.org sls= [163, 164, 165] site= 164
+164 None n2-164.plc2.org sls= [164, 165, 166] site= 165
+165 None n2-165.plc2.org sls= [165, 166, 167] site= 166
+166 None n2-166.plc2.org sls= [166, 167, 168] site= 167
+167 None n2-167.plc2.org sls= [167, 168, 169] site= 168
+168 None n2-168.plc2.org sls= [168, 169, 170] site= 169
+169 None n2-169.plc2.org sls= [169, 170, 171] site= 170
+170 None n2-170.plc2.org sls= [170, 171, 172] site= 171
+171 None n2-171.plc2.org sls= [171, 172, 173] site= 172
+172 None n2-172.plc2.org sls= [172, 173, 174] site= 173
+173 None n2-173.plc2.org sls= [173, 174, 175] site= 174
+174 None n2-174.plc2.org sls= [174, 175, 176] site= 175
+175 None n2-175.plc2.org sls= [175, 176, 177] site= 176
+176 None n2-176.plc2.org sls= [176, 177, 178] site= 177
+177 None n2-177.plc2.org sls= [177, 178, 179] site= 178
+178 None n2-178.plc2.org sls= [178, 179, 180] site= 179
+179 None n2-179.plc2.org sls= [179, 180, 181] site= 180
+180 None n2-180.plc2.org sls= [180, 181, 182] site= 181
+181 None n2-181.plc2.org sls= [181, 182, 183] site= 182
+182 None n2-182.plc2.org sls= [182, 183, 184] site= 183
+183 None n2-183.plc2.org sls= [183, 184, 185] site= 184
+184 None n2-184.plc2.org sls= [184, 185, 186] site= 185
+185 None n2-185.plc2.org sls= [185, 186, 187] site= 186
+186 None n2-186.plc2.org sls= [186, 187, 188] site= 187
+187 None n2-187.plc2.org sls= [187, 188, 189] site= 188
+188 None n2-188.plc2.org sls= [188, 189, 190] site= 189
+189 None n2-189.plc2.org sls= [189, 190, 191] site= 190
+190 None n2-190.plc2.org sls= [190, 191, 192] site= 191
+191 None n2-191.plc2.org sls= [191, 192, 193] site= 192
+192 None n2-192.plc2.org sls= [192, 193, 194] site= 193
+193 None n2-193.plc2.org sls= [193, 194, 195] site= 194
+194 None n2-194.plc2.org sls= [194, 195, 196] site= 195
+195 None n2-195.plc2.org sls= [195, 196, 197] site= 196
+196 None n2-196.plc2.org sls= [196, 197, 198] site= 197
+197 None n2-197.plc2.org sls= [197, 198, 199] site= 198
+198 None n2-198.plc2.org sls= [198, 199, 200] site= 199
+199 None n2-199.plc2.org sls= [199, 200, 201] site= 200
+200 None n2-200.plc2.org sls= [200, 201, 202] site= 201
+201 None n2-201.plc2.org sls= [201, 202, 203] site= 202
+202 None n2-202.plc2.org sls= [202, 203, 204] site= 203
+203 None n2-203.plc2.org sls= [203, 204, 205] site= 204
+204 None n2-204.plc2.org sls= [204, 205, 206] site= 205
+205 None n2-205.plc2.org sls= [205, 206, 207] site= 206
+206 None n2-206.plc2.org sls= [206, 207, 208] site= 207
+207 None n2-207.plc2.org sls= [207, 208, 209] site= 208
+208 None n2-208.plc2.org sls= [208, 209, 210] site= 209
+209 None n2-209.plc2.org sls= [209, 210, 211] site= 210
+210 None n2-210.plc2.org sls= [210, 211, 212] site= 211
+211 None n2-211.plc2.org sls= [211, 212, 213] site= 212
+212 None n2-212.plc2.org sls= [212, 213, 214] site= 213
+213 None n2-213.plc2.org sls= [213, 214, 215] site= 214
+214 None n2-214.plc2.org sls= [214, 215, 216] site= 215
+215 None n2-215.plc2.org sls= [215, 216, 217] site= 216
+216 None n2-216.plc2.org sls= [216, 217, 218] site= 217
+217 None n2-217.plc2.org sls= [217, 218, 219] site= 218
+218 None n2-218.plc2.org sls= [218, 219, 220] site= 219
+219 None n2-219.plc2.org sls= [219, 220, 221] site= 220
+220 None n2-220.plc2.org sls= [220, 221, 222] site= 221
+221 None n2-221.plc2.org sls= [221, 222, 223] site= 222
+222 None n2-222.plc2.org sls= [222, 223, 224] site= 223
+223 None n2-223.plc2.org sls= [223, 224, 225] site= 224
+224 None n2-224.plc2.org sls= [224, 225, 226] site= 225
+225 None n2-225.plc2.org sls= [225, 226, 227] site= 226
+226 None n2-226.plc2.org sls= [226, 227, 228] site= 227
+227 None n2-227.plc2.org sls= [227, 228, 229] site= 228
+228 None n2-228.plc2.org sls= [228, 229, 230] site= 229
+229 None n2-229.plc2.org sls= [229, 230, 231] site= 230
+230 None n2-230.plc2.org sls= [230, 231, 232] site= 231
+231 None n2-231.plc2.org sls= [231, 232, 233] site= 232
+232 None n2-232.plc2.org sls= [232, 233, 234] site= 233
+233 None n2-233.plc2.org sls= [233, 234, 235] site= 234
+234 None n2-234.plc2.org sls= [234, 235, 236] site= 235
+235 None n2-235.plc2.org sls= [235, 236, 237] site= 236
+236 None n2-236.plc2.org sls= [236, 237, 238] site= 237
+237 None n2-237.plc2.org sls= [237, 238, 239] site= 238
+238 None n2-238.plc2.org sls= [238, 239, 240] site= 239
+239 None n2-239.plc2.org sls= [239, 240, 241] site= 240
+240 None n2-240.plc2.org sls= [240, 241, 242] site= 241
+241 None n2-241.plc2.org sls= [241, 242, 243] site= 242
+242 None n2-242.plc2.org sls= [242, 243, 244] site= 243
+243 None n2-243.plc2.org sls= [243, 244, 245] site= 244
+244 None n2-244.plc2.org sls= [244, 245, 246] site= 245
+245 None n2-245.plc2.org sls= [245, 246, 247] site= 246
+246 None n2-246.plc2.org sls= [246, 247, 248] site= 247
+247 None n2-247.plc2.org sls= [247, 248, 249] site= 248
+248 None n2-248.plc2.org sls= [248, 249, 250] site= 249
+249 None n2-249.plc2.org sls= [249, 250, 251] site= 250
+250 None n2-250.plc2.org sls= [250, 251, 252] site= 251
+251 None n2-251.plc2.org sls= [251, 252, 253] site= 252
+252 None n2-252.plc2.org sls= [252, 253, 254] site= 253
+253 None n2-253.plc2.org sls= [253, 254, 255] site= 254
+254 None n2-254.plc2.org sls= [254, 255, 256] site= 255
+255 None n2-255.plc2.org sls= [255, 256, 257] site= 256
+256 None n2-256.plc2.org sls= [256, 257, 258] site= 257
+257 None n2-257.plc2.org sls= [257, 258, 259] site= 258
+258 None n2-258.plc2.org sls= [258, 259, 260] site= 259
+259 None n2-259.plc2.org sls= [259, 260, 261] site= 260
+260 None n2-260.plc2.org sls= [260, 261, 262] site= 261
+261 None n2-261.plc2.org sls= [261, 262, 263] site= 262
+262 None n2-262.plc2.org sls= [262, 263, 264] site= 263
+263 None n2-263.plc2.org sls= [263, 264, 265] site= 264
+264 None n2-264.plc2.org sls= [264, 265, 266] site= 265
+265 None n2-265.plc2.org sls= [265, 266, 267] site= 266
+266 None n2-266.plc2.org sls= [266, 267, 268] site= 267
+267 None n2-267.plc2.org sls= [267, 268, 269] site= 268
+268 None n2-268.plc2.org sls= [268, 269, 270] site= 269
+269 None n2-269.plc2.org sls= [269, 270, 271] site= 270
+270 None n2-270.plc2.org sls= [270, 271, 272] site= 271
+271 None n2-271.plc2.org sls= [271, 272, 273] site= 272
+272 None n2-272.plc2.org sls= [272, 273, 274] site= 273
+273 None n2-273.plc2.org sls= [273, 274, 275] site= 274
+274 None n2-274.plc2.org sls= [274, 275, 276] site= 275
+275 None n2-275.plc2.org sls= [275, 276, 277] site= 276
+276 None n2-276.plc2.org sls= [276, 277, 278] site= 277
+277 None n2-277.plc2.org sls= [277, 278, 279] site= 278
+278 None n2-278.plc2.org sls= [278, 279, 280] site= 279
+279 None n2-279.plc2.org sls= [279, 280, 281] site= 280
+280 None n2-280.plc2.org sls= [280, 281, 282] site= 281
+281 None n2-281.plc2.org sls= [281, 282, 283] site= 282
+282 None n2-282.plc2.org sls= [282, 283, 284] site= 283
+283 None n2-283.plc2.org sls= [283, 284, 285] site= 284
+284 None n2-284.plc2.org sls= [284, 285, 286] site= 285
+285 None n2-285.plc2.org sls= [285, 286, 287] site= 286
+286 None n2-286.plc2.org sls= [286, 287, 288] site= 287
+287 None n2-287.plc2.org sls= [287, 288, 289] site= 288
+288 None n2-288.plc2.org sls= [288, 289, 290] site= 289
+289 None n2-289.plc2.org sls= [289, 290, 291] site= 290
+290 None n2-290.plc2.org sls= [290, 291, 292] site= 291
+291 None n2-291.plc2.org sls= [291, 292, 293] site= 292
+292 None n2-292.plc2.org sls= [292, 293, 294] site= 293
+293 None n2-293.plc2.org sls= [293, 294, 295] site= 294
+294 None n2-294.plc2.org sls= [294, 295, 296] site= 295
+295 None n2-295.plc2.org sls= [295, 296, 297] site= 296
+296 None n2-296.plc2.org sls= [296, 297, 298] site= 297
+297 None n2-297.plc2.org sls= [297, 298, 299] site= 298
+298 None n2-298.plc2.org sls= [298, 299, 300] site= 299
+299 None n2-299.plc2.org sls= [299, 300, 301] site= 300
+300 None n2-300.plc2.org sls= [300, 301, 302] site= 301
+301 None n2-301.plc2.org sls= [301, 302, 303] site= 302
+302 None n2-302.plc2.org sls= [302, 303, 304] site= 303
+303 None n2-303.plc2.org sls= [303, 304, 305] site= 304
+304 None n2-304.plc2.org sls= [304, 305, 306] site= 305
+305 None n2-305.plc2.org sls= [305, 306, 307] site= 306
+306 None n2-306.plc2.org sls= [306, 307, 308] site= 307
+307 None n2-307.plc2.org sls= [307, 308, 309] site= 308
+308 None n2-308.plc2.org sls= [308, 309, 310] site= 309
+309 None n2-309.plc2.org sls= [309, 310, 311] site= 310
+310 None n2-310.plc2.org sls= [310, 311, 312] site= 311
+311 None n2-311.plc2.org sls= [311, 312, 313] site= 312
+312 None n2-312.plc2.org sls= [312, 313, 314] site= 313
+313 None n2-313.plc2.org sls= [313, 314, 315] site= 314
+314 None n2-314.plc2.org sls= [314, 315, 316] site= 315
+315 None n2-315.plc2.org sls= [315, 316, 317] site= 316
+316 None n2-316.plc2.org sls= [316, 317, 318] site= 317
+317 None n2-317.plc2.org sls= [317, 318, 319] site= 318
+318 None n2-318.plc2.org sls= [318, 319, 320] site= 319
+319 None n2-319.plc2.org sls= [319, 320, 321] site= 320
+320 None n2-320.plc2.org sls= [320, 321, 322] site= 321
+321 None n2-321.plc2.org sls= [321, 322, 323] site= 322
+322 None n2-322.plc2.org sls= [322, 323, 324] site= 323
+323 None n2-323.plc2.org sls= [323, 324, 325] site= 324
+324 None n2-324.plc2.org sls= [324, 325, 326] site= 325
+325 None n2-325.plc2.org sls= [325, 326, 327] site= 326
+326 None n2-326.plc2.org sls= [326, 327, 328] site= 327
+327 None n2-327.plc2.org sls= [327, 328, 329] site= 328
+328 None n2-328.plc2.org sls= [328, 329, 330] site= 329
+329 None n2-329.plc2.org sls= [329, 330, 331] site= 330
+330 None n2-330.plc2.org sls= [330, 331, 332] site= 331
+331 None n2-331.plc2.org sls= [331, 332, 333] site= 332
+332 None n2-332.plc2.org sls= [332, 333, 334] site= 333
+333 None n2-333.plc2.org sls= [333, 334, 335] site= 334
+334 None n2-334.plc2.org sls= [334, 335, 336] site= 335
+335 None n2-335.plc2.org sls= [335, 336, 337] site= 336
+336 None n2-336.plc2.org sls= [336, 337, 338] site= 337
+337 None n2-337.plc2.org sls= [337, 338, 339] site= 338
+338 None n2-338.plc2.org sls= [338, 339, 340] site= 339
+339 None n2-339.plc2.org sls= [339, 340, 341] site= 340
+340 None n2-340.plc2.org sls= [340, 341, 342] site= 341
+341 None n2-341.plc2.org sls= [341, 342, 343] site= 342
+342 None n2-342.plc2.org sls= [342, 343, 344] site= 343
+343 None n2-343.plc2.org sls= [343, 344, 345] site= 344
+344 None n2-344.plc2.org sls= [344, 345, 346] site= 345
+345 None n2-345.plc2.org sls= [345, 346, 347] site= 346
+346 None n2-346.plc2.org sls= [346, 347, 348] site= 347
+347 None n2-347.plc2.org sls= [347, 348, 349] site= 348
+348 None n2-348.plc2.org sls= [348, 349, 350] site= 349
+349 None n2-349.plc2.org sls= [349, 350, 351] site= 350
+350 None n2-350.plc2.org sls= [350, 351, 352] site= 351
+351 None n2-351.plc2.org sls= [351, 352, 353] site= 352
+352 None n2-352.plc2.org sls= [352, 353, 354] site= 353
+353 None n2-353.plc2.org sls= [353, 354, 355] site= 354
+354 None n2-354.plc2.org sls= [354, 355, 356] site= 355
+355 None n2-355.plc2.org sls= [355, 356, 357] site= 356
+356 None n2-356.plc2.org sls= [356, 357, 358] site= 357
+357 None n2-357.plc2.org sls= [357, 358, 359] site= 358
+358 None n2-358.plc2.org sls= [358, 359, 360] site= 359
+359 None n2-359.plc2.org sls= [359, 360, 361] site= 360
+360 None n2-360.plc2.org sls= [360, 361, 362] site= 361
+361 None n2-361.plc2.org sls= [361, 362, 363] site= 362
+362 None n2-362.plc2.org sls= [362, 363, 364] site= 363
+363 None n2-363.plc2.org sls= [363, 364, 365] site= 364
+364 None n2-364.plc2.org sls= [364, 365, 366] site= 365
+365 None n2-365.plc2.org sls= [365, 366, 367] site= 366
+366 None n2-366.plc2.org sls= [366, 367, 368] site= 367
+367 None n2-367.plc2.org sls= [367, 368, 369] site= 368
+368 None n2-368.plc2.org sls= [368, 369, 370] site= 369
+369 None n2-369.plc2.org sls= [369, 370, 371] site= 370
+370 None n2-370.plc2.org sls= [370, 371, 372] site= 371
+371 None n2-371.plc2.org sls= [371, 372, 373] site= 372
+372 None n2-372.plc2.org sls= [372, 373, 374] site= 373
+373 None n2-373.plc2.org sls= [373, 374, 375] site= 374
+374 None n2-374.plc2.org sls= [374, 375, 376] site= 375
+375 None n2-375.plc2.org sls= [375, 376, 377] site= 376
+376 None n2-376.plc2.org sls= [376, 377, 378] site= 377
+377 None n2-377.plc2.org sls= [377, 378, 379] site= 378
+378 None n2-378.plc2.org sls= [378, 379, 380] site= 379
+379 None n2-379.plc2.org sls= [379, 380, 381] site= 380
+380 None n2-380.plc2.org sls= [380, 381, 382] site= 381
+381 None n2-381.plc2.org sls= [381, 382, 383] site= 382
+382 None n2-382.plc2.org sls= [382, 383, 384] site= 383
+383 None n2-383.plc2.org sls= [383, 384, 385] site= 384
+384 None n2-384.plc2.org sls= [384, 385, 386] site= 385
+385 None n2-385.plc2.org sls= [385, 386, 387] site= 386
+386 None n2-386.plc2.org sls= [386, 387, 388] site= 387
+387 None n2-387.plc2.org sls= [387, 388, 389] site= 388
+388 None n2-388.plc2.org sls= [388, 389, 390] site= 389
+389 None n2-389.plc2.org sls= [389, 390, 391] site= 390
+390 None n2-390.plc2.org sls= [390, 391, 392] site= 391
+391 None n2-391.plc2.org sls= [391, 392, 393] site= 392
+392 None n2-392.plc2.org sls= [392, 393, 394] site= 393
+393 None n2-393.plc2.org sls= [393, 394, 395] site= 394
+394 None n2-394.plc2.org sls= [394, 395, 396] site= 395
+395 None n2-395.plc2.org sls= [395, 396, 397] site= 396
+396 None n2-396.plc2.org sls= [396, 397, 398] site= 397
+397 None n2-397.plc2.org sls= [397, 398, 399] site= 398
+398 None n2-398.plc2.org sls= [398, 399, 400] site= 399
+399 None n2-399.plc2.org sls= [399, 400, 401] site= 400
+400 None n2-400.plc2.org sls= [400, 401, 402] site= 401
+401 None n2-401.plc2.org sls= [401, 402, 403] site= 402
+402 None n2-402.plc2.org sls= [402, 403, 404] site= 403
+403 None n2-403.plc2.org sls= [403, 404, 405] site= 404
+404 None n2-404.plc2.org sls= [404, 405, 406] site= 405
+405 None n2-405.plc2.org sls= [405, 406, 407] site= 406
+406 None n2-406.plc2.org sls= [406, 407, 408] site= 407
+407 None n2-407.plc2.org sls= [407, 408, 409] site= 408
+408 None n2-408.plc2.org sls= [408, 409, 410] site= 409
+409 None n2-409.plc2.org sls= [409, 410, 411] site= 410
+410 None n2-410.plc2.org sls= [410, 411, 412] site= 411
+411 None n2-411.plc2.org sls= [411, 412, 413] site= 412
+412 None n2-412.plc2.org sls= [412, 413, 414] site= 413
+413 None n2-413.plc2.org sls= [413, 414, 415] site= 414
+414 None n2-414.plc2.org sls= [414, 415, 416] site= 415
+415 None n2-415.plc2.org sls= [415, 416, 417] site= 416
+416 None n2-416.plc2.org sls= [416, 417, 418] site= 417
+417 None n2-417.plc2.org sls= [417, 418, 419] site= 418
+418 None n2-418.plc2.org sls= [418, 419, 420] site= 419
+419 None n2-419.plc2.org sls= [419, 420, 421] site= 420
+420 None n2-420.plc2.org sls= [420, 421, 422] site= 421
+421 None n2-421.plc2.org sls= [421, 422, 423] site= 422
+422 None n2-422.plc2.org sls= [422, 423, 424] site= 423
+423 None n2-423.plc2.org sls= [423, 424, 425] site= 424
+424 None n2-424.plc2.org sls= [424, 425, 426] site= 425
+425 None n2-425.plc2.org sls= [425, 426, 427] site= 426
+426 None n2-426.plc2.org sls= [426, 427, 428] site= 427
+427 None n2-427.plc2.org sls= [427, 428, 429] site= 428
+428 None n2-428.plc2.org sls= [428, 429, 430] site= 429
+429 None n2-429.plc2.org sls= [429, 430, 431] site= 430
+430 None n2-430.plc2.org sls= [430, 431, 432] site= 431
+431 None n2-431.plc2.org sls= [431, 432, 433] site= 432
+432 None n2-432.plc2.org sls= [432, 433, 434] site= 433
+433 None n2-433.plc2.org sls= [433, 434, 435] site= 434
+434 None n2-434.plc2.org sls= [434, 435, 436] site= 435
+435 None n2-435.plc2.org sls= [435, 436, 437] site= 436
+436 None n2-436.plc2.org sls= [436, 437, 438] site= 437
+437 None n2-437.plc2.org sls= [437, 438, 439] site= 438
+438 None n2-438.plc2.org sls= [438, 439, 440] site= 439
+439 None n2-439.plc2.org sls= [439, 440, 441] site= 440
+440 None n2-440.plc2.org sls= [440, 441, 442] site= 441
+441 None n2-441.plc2.org sls= [441, 442, 443] site= 442
+442 None n2-442.plc2.org sls= [442, 443, 444] site= 443
+443 None n2-443.plc2.org sls= [443, 444, 445] site= 444
+444 None n2-444.plc2.org sls= [444, 445, 446] site= 445
+445 None n2-445.plc2.org sls= [445, 446, 447] site= 446
+446 None n2-446.plc2.org sls= [446, 447, 448] site= 447
+447 None n2-447.plc2.org sls= [447, 448, 449] site= 448
+448 None n2-448.plc2.org sls= [448, 449, 450] site= 449
+449 None n2-449.plc2.org sls= [449, 450, 451] site= 450
+450 None n2-450.plc2.org sls= [450, 451, 452] site= 451
+451 None n2-451.plc2.org sls= [451, 452, 453] site= 452
+452 None n2-452.plc2.org sls= [452, 453, 454] site= 453
+453 None n2-453.plc2.org sls= [453, 454, 455] site= 454
+454 None n2-454.plc2.org sls= [454, 455, 456] site= 455
+455 None n2-455.plc2.org sls= [455, 456, 457] site= 456
+456 None n2-456.plc2.org sls= [456, 457, 458] site= 457
+457 None n2-457.plc2.org sls= [457, 458, 459] site= 458
+458 None n2-458.plc2.org sls= [458, 459, 460] site= 459
+459 None n2-459.plc2.org sls= [459, 460, 461] site= 460
+460 None n2-460.plc2.org sls= [460, 461, 462] site= 461
+461 None n2-461.plc2.org sls= [461, 462, 463] site= 462
+462 None n2-462.plc2.org sls= [462, 463, 464] site= 463
+463 None n2-463.plc2.org sls= [463, 464, 465] site= 464
+464 None n2-464.plc2.org sls= [464, 465, 466] site= 465
+465 None n2-465.plc2.org sls= [465, 466, 467] site= 466
+466 None n2-466.plc2.org sls= [466, 467, 468] site= 467
+467 None n2-467.plc2.org sls= [467, 468, 469] site= 468
+468 None n2-468.plc2.org sls= [468, 469, 470] site= 469
+469 None n2-469.plc2.org sls= [469, 470, 471] site= 470
+470 None n2-470.plc2.org sls= [470, 471, 472] site= 471
+471 None n2-471.plc2.org sls= [471, 472, 473] site= 472
+472 None n2-472.plc2.org sls= [472, 473, 474] site= 473
+473 None n2-473.plc2.org sls= [473, 474, 475] site= 474
+474 None n2-474.plc2.org sls= [474, 475, 476] site= 475
+475 None n2-475.plc2.org sls= [475, 476, 477] site= 476
+476 None n2-476.plc2.org sls= [476, 477, 478] site= 477
+477 None n2-477.plc2.org sls= [477, 478, 479] site= 478
+478 None n2-478.plc2.org sls= [478, 479, 480] site= 479
+479 None n2-479.plc2.org sls= [479, 480, 481] site= 480
+480 None n2-480.plc2.org sls= [480, 481, 482] site= 481
+481 None n2-481.plc2.org sls= [481, 482, 483] site= 482
+482 None n2-482.plc2.org sls= [482, 483, 484] site= 483
+483 None n2-483.plc2.org sls= [483, 484, 485] site= 484
+484 None n2-484.plc2.org sls= [484, 485, 486] site= 485
+485 None n2-485.plc2.org sls= [485, 486, 487] site= 486
+486 None n2-486.plc2.org sls= [486, 487, 488] site= 487
+487 None n2-487.plc2.org sls= [487, 488, 489] site= 488
+488 None n2-488.plc2.org sls= [488, 489, 490] site= 489
+489 None n2-489.plc2.org sls= [489, 490, 491] site= 490
+490 None n2-490.plc2.org sls= [490, 491, 492] site= 491
+491 None n2-491.plc2.org sls= [491, 492, 493] site= 492
+492 None n2-492.plc2.org sls= [492, 493, 494] site= 493
+493 None n2-493.plc2.org sls= [493, 494, 495] site= 494
+494 None n2-494.plc2.org sls= [494, 495, 496] site= 495
+495 None n2-495.plc2.org sls= [495, 496, 497] site= 496
+496 None n2-496.plc2.org sls= [496, 497, 498] site= 497
+497 None n2-497.plc2.org sls= [497, 498, 499] site= 498
+498 None n2-498.plc2.org sls= [498, 499, 500] site= 499
+499 None n2-499.plc2.org sls= [499, 500, 501] site= 500
+500 None n2-500.plc2.org sls= [500, 501, 502] site= 501
+501 None n2-501.plc2.org sls= [501, 502, 503] site= 502
+502 None n2-502.plc2.org sls= [502, 503, 504] site= 503
+503 None n2-503.plc2.org sls= [503, 504, 505] site= 504
+504 None n2-504.plc2.org sls= [504, 505, 506] site= 505
+505 None n2-505.plc2.org sls= [505, 506, 507] site= 506
+506 None n2-506.plc2.org sls= [506, 507, 508] site= 507
+507 None n2-507.plc2.org sls= [507, 508, 509] site= 508
+508 None n2-508.plc2.org sls= [508, 509, 510] site= 509
+509 None n2-509.plc2.org sls= [509, 510, 511] site= 510
+510 None n2-510.plc2.org sls= [510, 511, 512] site= 511
+511 None n2-511.plc2.org sls= [511, 512, 513] site= 512
+512 None n2-512.plc2.org sls= [512, 513, 514] site= 513
+513 None n2-513.plc2.org sls= [513, 514, 515] site= 514
+514 None n2-514.plc2.org sls= [514, 515, 516] site= 515
+515 None n2-515.plc2.org sls= [515, 516, 517] site= 516
+516 None n2-516.plc2.org sls= [516, 517, 518] site= 517
+517 None n2-517.plc2.org sls= [517, 518, 519] site= 518
+518 None n2-518.plc2.org sls= [518, 519, 520] site= 519
+519 None n2-519.plc2.org sls= [519, 520, 521] site= 520
+520 None n2-520.plc2.org sls= [520, 521, 522] site= 521
+521 None n2-521.plc2.org sls= [521, 522, 523] site= 522
+522 None n2-522.plc2.org sls= [522, 523, 524] site= 523
+523 None n2-523.plc2.org sls= [523, 524, 525] site= 524
+524 None n2-524.plc2.org sls= [524, 525, 526] site= 525
+525 None n2-525.plc2.org sls= [525, 526, 527] site= 526
+526 None n2-526.plc2.org sls= [526, 527, 528] site= 527
+527 None n2-527.plc2.org sls= [527, 528, 529] site= 528
+528 None n2-528.plc2.org sls= [528, 529, 530] site= 529
+529 None n2-529.plc2.org sls= [529, 530, 531] site= 530
+530 None n2-530.plc2.org sls= [530, 531, 532] site= 531
+531 None n2-531.plc2.org sls= [531, 532, 533] site= 532
+532 None n2-532.plc2.org sls= [532, 533, 534] site= 533
+533 None n2-533.plc2.org sls= [533, 534, 535] site= 534
+534 None n2-534.plc2.org sls= [534, 535, 536] site= 535
+535 None n2-535.plc2.org sls= [535, 536, 537] site= 536
+536 None n2-536.plc2.org sls= [536, 537, 538] site= 537
+537 None n2-537.plc2.org sls= [537, 538, 539] site= 538
+538 None n2-538.plc2.org sls= [538, 539, 540] site= 539
+539 None n2-539.plc2.org sls= [539, 540, 541] site= 540
+540 None n2-540.plc2.org sls= [540, 541, 542] site= 541
+541 None n2-541.plc2.org sls= [541, 542, 543] site= 542
+542 None n2-542.plc2.org sls= [542, 543, 544] site= 543
+543 None n2-543.plc2.org sls= [543, 544, 545] site= 544
+544 None n2-544.plc2.org sls= [544, 545, 546] site= 545
+545 None n2-545.plc2.org sls= [545, 546, 547] site= 546
+546 None n2-546.plc2.org sls= [546, 547, 548] site= 547
+547 None n2-547.plc2.org sls= [547, 548, 549] site= 548
+548 None n2-548.plc2.org sls= [548, 549, 550] site= 549
+549 None n2-549.plc2.org sls= [549, 550, 551] site= 550
+550 None n2-550.plc2.org sls= [550, 551, 552] site= 551
+551 None n2-551.plc2.org sls= [551, 552, 553] site= 552
+552 None n2-552.plc2.org sls= [552, 553, 554] site= 553
+553 None n2-553.plc2.org sls= [553, 554, 555] site= 554
+554 None n2-554.plc2.org sls= [554, 555, 556] site= 555
+555 None n2-555.plc2.org sls= [555, 556, 557] site= 556
+556 None n2-556.plc2.org sls= [556, 557, 558] site= 557
+557 None n2-557.plc2.org sls= [557, 558, 559] site= 558
+558 None n2-558.plc2.org sls= [558, 559, 560] site= 559
+559 None n2-559.plc2.org sls= [559, 560, 561] site= 560
+560 None n2-560.plc2.org sls= [560, 561, 562] site= 561
+561 None n2-561.plc2.org sls= [561, 562, 563] site= 562
+562 None n2-562.plc2.org sls= [562, 563, 564] site= 563
+563 None n2-563.plc2.org sls= [563, 564, 565] site= 564
+564 None n2-564.plc2.org sls= [564, 565, 566] site= 565
+565 None n2-565.plc2.org sls= [565, 566, 567] site= 566
+566 None n2-566.plc2.org sls= [566, 567, 568] site= 567
+567 None n2-567.plc2.org sls= [567, 568, 569] site= 568
+568 None n2-568.plc2.org sls= [568, 569, 570] site= 569
+569 None n2-569.plc2.org sls= [569, 570, 571] site= 570
+570 None n2-570.plc2.org sls= [570, 571, 572] site= 571
+571 None n2-571.plc2.org sls= [571, 572, 573] site= 572
+572 None n2-572.plc2.org sls= [572, 573, 574] site= 573
+573 None n2-573.plc2.org sls= [573, 574, 575] site= 574
+574 None n2-574.plc2.org sls= [574, 575, 576] site= 575
+575 None n2-575.plc2.org sls= [575, 576, 577] site= 576
+576 None n2-576.plc2.org sls= [576, 577, 578] site= 577
+577 None n2-577.plc2.org sls= [577, 578, 579] site= 578
+578 None n2-578.plc2.org sls= [578, 579, 580] site= 579
+579 None n2-579.plc2.org sls= [579, 580, 581] site= 580
+580 None n2-580.plc2.org sls= [580, 581, 582] site= 581
+581 None n2-581.plc2.org sls= [581, 582, 583] site= 582
+582 None n2-582.plc2.org sls= [582, 583, 584] site= 583
+583 None n2-583.plc2.org sls= [583, 584, 585] site= 584
+584 None n2-584.plc2.org sls= [584, 585, 586] site= 585
+585 None n2-585.plc2.org sls= [585, 586, 587] site= 586
+586 None n2-586.plc2.org sls= [586, 587, 588] site= 587
+587 None n2-587.plc2.org sls= [587, 588, 589] site= 588
+588 None n2-588.plc2.org sls= [588, 589, 590] site= 589
+589 None n2-589.plc2.org sls= [589, 590, 591] site= 590
+590 None n2-590.plc2.org sls= [590, 591, 592] site= 591
+591 None n2-591.plc2.org sls= [591, 592, 593] site= 592
+592 None n2-592.plc2.org sls= [592, 593, 594] site= 593
+593 None n2-593.plc2.org sls= [593, 594, 595] site= 594
+594 None n2-594.plc2.org sls= [594, 595, 596] site= 595
+595 None n2-595.plc2.org sls= [595, 596, 597] site= 596
+596 None n2-596.plc2.org sls= [596, 597, 598] site= 597
+597 None n2-597.plc2.org sls= [597, 598, 599] site= 598
+598 None n2-598.plc2.org sls= [598, 599, 600] site= 599
+599 None n2-599.plc2.org sls= [599, 600, 601] site= 600
+600 None n2-600.plc2.org sls= [600, 601, 602] site= 601
+601 None n2-601.plc2.org sls= [601, 602, 603] site= 602
+602 None n2-602.plc2.org sls= [602, 603, 604] site= 603
+603 None n2-603.plc2.org sls= [603, 604, 605] site= 604
+604 None n2-604.plc2.org sls= [604, 605, 606] site= 605
+605 None n2-605.plc2.org sls= [605, 606, 607] site= 606
+606 None n2-606.plc2.org sls= [606, 607, 608] site= 607
+607 None n2-607.plc2.org sls= [607, 608, 609] site= 608
+608 None n2-608.plc2.org sls= [608, 609, 610] site= 609
+609 None n2-609.plc2.org sls= [609, 610, 611] site= 610
+610 None n2-610.plc2.org sls= [610, 611, 612] site= 611
+611 None n2-611.plc2.org sls= [611, 612, 613] site= 612
+612 None n2-612.plc2.org sls= [612, 613, 614] site= 613
+613 None n2-613.plc2.org sls= [613, 614, 615] site= 614
+614 None n2-614.plc2.org sls= [614, 615, 616] site= 615
+615 None n2-615.plc2.org sls= [615, 616, 617] site= 616
+616 None n2-616.plc2.org sls= [616, 617, 618] site= 617
+617 None n2-617.plc2.org sls= [617, 618, 619] site= 618
+618 None n2-618.plc2.org sls= [618, 619, 620] site= 619
+619 None n2-619.plc2.org sls= [619, 620, 621] site= 620
+620 None n2-620.plc2.org sls= [620, 621, 622] site= 621
+621 None n2-621.plc2.org sls= [621, 622, 623] site= 622
+622 None n2-622.plc2.org sls= [622, 623, 624] site= 623
+623 None n2-623.plc2.org sls= [623, 624, 625] site= 624
+624 None n2-624.plc2.org sls= [624, 625, 626] site= 625
+625 None n2-625.plc2.org sls= [625, 626, 627] site= 626
+626 None n2-626.plc2.org sls= [626, 627, 628] site= 627
+627 None n2-627.plc2.org sls= [627, 628, 629] site= 628
+628 None n2-628.plc2.org sls= [628, 629, 630] site= 629
+629 None n2-629.plc2.org sls= [629, 630, 631] site= 630
+630 None n2-630.plc2.org sls= [630, 631, 632] site= 631
+631 None n2-631.plc2.org sls= [631, 632, 633] site= 632
+632 None n2-632.plc2.org sls= [632, 633, 634] site= 633
+633 None n2-633.plc2.org sls= [633, 634, 635] site= 634
+634 None n2-634.plc2.org sls= [634, 635, 636] site= 635
+635 None n2-635.plc2.org sls= [635, 636, 637] site= 636
+636 None n2-636.plc2.org sls= [636, 637, 638] site= 637
+637 None n2-637.plc2.org sls= [637, 638, 639] site= 638
+638 None n2-638.plc2.org sls= [638, 639, 640] site= 639
+639 None n2-639.plc2.org sls= [639, 640, 641] site= 640
+640 None n2-640.plc2.org sls= [640, 641, 642] site= 641
+641 None n2-641.plc2.org sls= [641, 642, 643] site= 642
+642 None n2-642.plc2.org sls= [642, 643, 644] site= 643
+643 None n2-643.plc2.org sls= [643, 644, 645] site= 644
+644 None n2-644.plc2.org sls= [644, 645, 646] site= 645
+645 None n2-645.plc2.org sls= [645, 646, 647] site= 646
+646 None n2-646.plc2.org sls= [646, 647, 648] site= 647
+647 None n2-647.plc2.org sls= [647, 648, 649] site= 648
+648 None n2-648.plc2.org sls= [648, 649, 650] site= 649
+649 None n2-649.plc2.org sls= [649, 650, 651] site= 650
+650 None n2-650.plc2.org sls= [650, 651, 652] site= 651
+651 None n2-651.plc2.org sls= [651, 652, 653] site= 652
+652 None n2-652.plc2.org sls= [652, 653, 654] site= 653
+653 None n2-653.plc2.org sls= [653, 654, 655] site= 654
+654 None n2-654.plc2.org sls= [654, 655, 656] site= 655
+655 None n2-655.plc2.org sls= [655, 656, 657] site= 656
+656 None n2-656.plc2.org sls= [656, 657, 658] site= 657
+657 None n2-657.plc2.org sls= [657, 658, 659] site= 658
+658 None n2-658.plc2.org sls= [658, 659, 660] site= 659
+659 None n2-659.plc2.org sls= [659, 660, 661] site= 660
+660 None n2-660.plc2.org sls= [660, 661, 662] site= 661
+661 None n2-661.plc2.org sls= [661, 662, 663] site= 662
+662 None n2-662.plc2.org sls= [662, 663, 664] site= 663
+663 None n2-663.plc2.org sls= [663, 664, 665] site= 664
+664 None n2-664.plc2.org sls= [664, 665, 666] site= 665
+665 None n2-665.plc2.org sls= [665, 666, 667] site= 666
+666 None n2-666.plc2.org sls= [666, 667, 668] site= 667
+667 None n2-667.plc2.org sls= [667, 668, 669] site= 668
+668 None n2-668.plc2.org sls= [668, 669, 670] site= 669
+669 None n2-669.plc2.org sls= [669, 670, 671] site= 670
+670 None n2-670.plc2.org sls= [670, 671, 672] site= 671
+671 None n2-671.plc2.org sls= [671, 672, 673] site= 672
+672 None n2-672.plc2.org sls= [672, 673, 674] site= 673
+673 None n2-673.plc2.org sls= [673, 674, 675] site= 674
+674 None n2-674.plc2.org sls= [674, 675, 676] site= 675
+675 None n2-675.plc2.org sls= [675, 676, 677] site= 676
+676 None n2-676.plc2.org sls= [676, 677, 678] site= 677
+677 None n2-677.plc2.org sls= [677, 678, 679] site= 678
+678 None n2-678.plc2.org sls= [678, 679, 680] site= 679
+679 None n2-679.plc2.org sls= [679, 680, 681] site= 680
+680 None n2-680.plc2.org sls= [680, 681, 682] site= 681
+681 None n2-681.plc2.org sls= [681, 682, 683] site= 682
+682 None n2-682.plc2.org sls= [682, 683, 684] site= 683
+683 None n2-683.plc2.org sls= [683, 684, 685] site= 684
+684 None n2-684.plc2.org sls= [684, 685, 686] site= 685
+685 None n2-685.plc2.org sls= [685, 686, 687] site= 686
+686 None n2-686.plc2.org sls= [686, 687, 688] site= 687
+687 None n2-687.plc2.org sls= [687, 688, 689] site= 688
+688 None n2-688.plc2.org sls= [688, 689, 690] site= 689
+689 None n2-689.plc2.org sls= [689, 690, 691] site= 690
+690 None n2-690.plc2.org sls= [690, 691, 692] site= 691
+691 None n2-691.plc2.org sls= [691, 692, 693] site= 692
+692 None n2-692.plc2.org sls= [692, 693, 694] site= 693
+693 None n2-693.plc2.org sls= [693, 694, 695] site= 694
+694 None n2-694.plc2.org sls= [694, 695, 696] site= 695
+695 None n2-695.plc2.org sls= [695, 696, 697] site= 696
+696 None n2-696.plc2.org sls= [696, 697, 698] site= 697
+697 None n2-697.plc2.org sls= [697, 698, 699] site= 698
+698 None n2-698.plc2.org sls= [698, 699, 700] site= 699
+699 None n2-699.plc2.org sls= [699, 700, 701] site= 700
+700 None n2-700.plc2.org sls= [700, 701, 702] site= 701
+701 None n2-701.plc2.org sls= [701, 702, 703] site= 702
+702 None n2-702.plc2.org sls= [702, 703, 704] site= 703
+703 None n2-703.plc2.org sls= [703, 704, 705] site= 704
+704 None n2-704.plc2.org sls= [704, 705, 706] site= 705
+705 None n2-705.plc2.org sls= [705, 706, 707] site= 706
+706 None n2-706.plc2.org sls= [706, 707, 708] site= 707
+707 None n2-707.plc2.org sls= [707, 708, 709] site= 708
+708 None n2-708.plc2.org sls= [708, 709, 710] site= 709
+709 None n2-709.plc2.org sls= [709, 710, 711] site= 710
+710 None n2-710.plc2.org sls= [710, 711, 712] site= 711
+711 None n2-711.plc2.org sls= [711, 712, 713] site= 712
+712 None n2-712.plc2.org sls= [712, 713, 714] site= 713
+713 None n2-713.plc2.org sls= [713, 714, 715] site= 714
+714 None n2-714.plc2.org sls= [714, 715, 716] site= 715
+715 None n2-715.plc2.org sls= [715, 716, 717] site= 716
+716 None n2-716.plc2.org sls= [716, 717, 718] site= 717
+717 None n2-717.plc2.org sls= [717, 718, 719] site= 718
+718 None n2-718.plc2.org sls= [718, 719, 720] site= 719
+719 None n2-719.plc2.org sls= [719, 720, 721] site= 720
+720 None n2-720.plc2.org sls= [720, 721, 722] site= 721
+721 None n2-721.plc2.org sls= [721, 722, 723] site= 722
+722 None n2-722.plc2.org sls= [722, 723, 724] site= 723
+723 None n2-723.plc2.org sls= [723, 724, 725] site= 724
+724 None n2-724.plc2.org sls= [724, 725, 726] site= 725
+725 None n2-725.plc2.org sls= [725, 726, 727] site= 726
+726 None n2-726.plc2.org sls= [726, 727, 728] site= 727
+727 None n2-727.plc2.org sls= [727, 728, 729] site= 728
+728 None n2-728.plc2.org sls= [728, 729, 730] site= 729
+729 None n2-729.plc2.org sls= [729, 730, 731] site= 730
+730 None n2-730.plc2.org sls= [730, 731, 732] site= 731
+731 None n2-731.plc2.org sls= [731, 732, 733] site= 732
+732 None n2-732.plc2.org sls= [732, 733, 734] site= 733
+733 None n2-733.plc2.org sls= [733, 734, 735] site= 734
+734 None n2-734.plc2.org sls= [734, 735, 736] site= 735
+735 None n2-735.plc2.org sls= [735, 736, 737] site= 736
+736 None n2-736.plc2.org sls= [736, 737, 738] site= 737
+737 None n2-737.plc2.org sls= [737, 738, 739] site= 738
+738 None n2-738.plc2.org sls= [738, 739, 740] site= 739
+739 None n2-739.plc2.org sls= [739, 740, 741] site= 740
+740 None n2-740.plc2.org sls= [740, 741, 742] site= 741
+741 None n2-741.plc2.org sls= [741, 742, 743] site= 742
+742 None n2-742.plc2.org sls= [742, 743, 744] site= 743
+743 None n2-743.plc2.org sls= [743, 744, 745] site= 744
+744 None n2-744.plc2.org sls= [744, 745, 746] site= 745
+745 None n2-745.plc2.org sls= [745, 746, 747] site= 746
+746 None n2-746.plc2.org sls= [746, 747, 748] site= 747
+747 None n2-747.plc2.org sls= [747, 748, 749] site= 748
+748 None n2-748.plc2.org sls= [748, 749, 750] site= 749
+749 None n2-749.plc2.org sls= [749, 750, 751] site= 750
+750 None n2-750.plc2.org sls= [750, 751, 752] site= 751
+751 None n2-751.plc2.org sls= [751, 752, 753] site= 752
+752 None n2-752.plc2.org sls= [752, 753, 754] site= 753
+753 None n2-753.plc2.org sls= [753, 754, 755] site= 754
+754 None n2-754.plc2.org sls= [754, 755, 756] site= 755
+755 None n2-755.plc2.org sls= [755, 756, 757] site= 756
+756 None n2-756.plc2.org sls= [756, 757, 758] site= 757
+757 None n2-757.plc2.org sls= [757, 758, 759] site= 758
+758 None n2-758.plc2.org sls= [758, 759, 760] site= 759
+759 None n2-759.plc2.org sls= [759, 760, 761] site= 760
+760 None n2-760.plc2.org sls= [760, 761, 762] site= 761
+761 None n2-761.plc2.org sls= [761, 762, 763] site= 762
+762 None n2-762.plc2.org sls= [762, 763, 764] site= 763
+763 None n2-763.plc2.org sls= [763, 764, 765] site= 764
+764 None n2-764.plc2.org sls= [764, 765, 766] site= 765
+765 None n2-765.plc2.org sls= [765, 766, 767] site= 766
+766 None n2-766.plc2.org sls= [766, 767, 768] site= 767
+767 None n2-767.plc2.org sls= [767, 768, 769] site= 768
+768 None n2-768.plc2.org sls= [768, 769, 770] site= 769
+769 None n2-769.plc2.org sls= [769, 770, 771] site= 770
+770 None n2-770.plc2.org sls= [770, 771, 772] site= 771
+771 None n2-771.plc2.org sls= [771, 772, 773] site= 772
+772 None n2-772.plc2.org sls= [772, 773, 774] site= 773
+773 None n2-773.plc2.org sls= [773, 774, 775] site= 774
+774 None n2-774.plc2.org sls= [774, 775, 776] site= 775
+775 None n2-775.plc2.org sls= [775, 776, 777] site= 776
+776 None n2-776.plc2.org sls= [776, 777, 778] site= 777
+777 None n2-777.plc2.org sls= [777, 778, 779] site= 778
+778 None n2-778.plc2.org sls= [778, 779, 780] site= 779
+779 None n2-779.plc2.org sls= [779, 780, 781] site= 780
+780 None n2-780.plc2.org sls= [780, 781, 782] site= 781
+781 None n2-781.plc2.org sls= [781, 782, 783] site= 782
+782 None n2-782.plc2.org sls= [782, 783, 784] site= 783
+783 None n2-783.plc2.org sls= [783, 784, 785] site= 784
+784 None n2-784.plc2.org sls= [784, 785, 786] site= 785
+785 None n2-785.plc2.org sls= [785, 786, 787] site= 786
+786 None n2-786.plc2.org sls= [786, 787, 788] site= 787
+787 None n2-787.plc2.org sls= [787, 788, 789] site= 788
+788 None n2-788.plc2.org sls= [788, 789, 790] site= 789
+789 None n2-789.plc2.org sls= [789, 790, 791] site= 790
+790 None n2-790.plc2.org sls= [790, 791, 792] site= 791
+791 None n2-791.plc2.org sls= [791, 792, 793] site= 792
+792 None n2-792.plc2.org sls= [792, 793, 794] site= 793
+793 None n2-793.plc2.org sls= [793, 794, 795] site= 794
+794 None n2-794.plc2.org sls= [794, 795, 796] site= 795
+795 None n2-795.plc2.org sls= [795, 796, 797] site= 796
+796 None n2-796.plc2.org sls= [796, 797, 798] site= 797
+797 None n2-797.plc2.org sls= [797, 798, 799] site= 798
+798 None n2-798.plc2.org sls= [798, 799, 800] site= 799
+799 None n2-799.plc2.org sls= [799, 800, 801] site= 800
+800 None n2-800.plc2.org sls= [800, 801, 802] site= 801
+801 None n2-801.plc2.org sls= [801, 802, 803] site= 802
+802 None n2-802.plc2.org sls= [802, 803, 804] site= 803
+803 None n2-803.plc2.org sls= [803, 804, 805] site= 804
+804 None n2-804.plc2.org sls= [804, 805, 806] site= 805
+805 None n2-805.plc2.org sls= [805, 806, 807] site= 806
+806 None n2-806.plc2.org sls= [806, 807, 808] site= 807
+807 None n2-807.plc2.org sls= [807, 808, 809] site= 808
+808 None n2-808.plc2.org sls= [808, 809, 810] site= 809
+809 None n2-809.plc2.org sls= [809, 810, 811] site= 810
+810 None n2-810.plc2.org sls= [810, 811, 812] site= 811
+811 None n2-811.plc2.org sls= [811, 812, 813] site= 812
+812 None n2-812.plc2.org sls= [812, 813, 814] site= 813
+813 None n2-813.plc2.org sls= [813, 814, 815] site= 814
+814 None n2-814.plc2.org sls= [814, 815, 816] site= 815
+815 None n2-815.plc2.org sls= [815, 816, 817] site= 816
+816 None n2-816.plc2.org sls= [816, 817, 818] site= 817
+817 None n2-817.plc2.org sls= [817, 818, 819] site= 818
+818 None n2-818.plc2.org sls= [818, 819, 820] site= 819
+819 None n2-819.plc2.org sls= [819, 820, 821] site= 820
+820 None n2-820.plc2.org sls= [820, 821, 822] site= 821
+821 None n2-821.plc2.org sls= [821, 822, 823] site= 822
+822 None n2-822.plc2.org sls= [822, 823, 824] site= 823
+823 None n2-823.plc2.org sls= [823, 824, 825] site= 824
+824 None n2-824.plc2.org sls= [824, 825, 826] site= 825
+825 None n2-825.plc2.org sls= [825, 826, 827] site= 826
+826 None n2-826.plc2.org sls= [826, 827, 828] site= 827
+827 None n2-827.plc2.org sls= [827, 828, 829] site= 828
+828 None n2-828.plc2.org sls= [828, 829, 830] site= 829
+829 None n2-829.plc2.org sls= [829, 830, 831] site= 830
+830 None n2-830.plc2.org sls= [830, 831, 832] site= 831
+831 None n2-831.plc2.org sls= [831, 832, 833] site= 832
+832 None n2-832.plc2.org sls= [832, 833, 834] site= 833
+833 None n2-833.plc2.org sls= [833, 834, 835] site= 834
+834 None n2-834.plc2.org sls= [834, 835, 836] site= 835
+835 None n2-835.plc2.org sls= [835, 836, 837] site= 836
+836 None n2-836.plc2.org sls= [836, 837, 838] site= 837
+837 None n2-837.plc2.org sls= [837, 838, 839] site= 838
+838 None n2-838.plc2.org sls= [838, 839, 840] site= 839
+839 None n2-839.plc2.org sls= [839, 840, 841] site= 840
+840 None n2-840.plc2.org sls= [840, 841, 842] site= 841
+841 None n2-841.plc2.org sls= [841, 842, 843] site= 842
+842 None n2-842.plc2.org sls= [842, 843, 844] site= 843
+843 None n2-843.plc2.org sls= [843, 844, 845] site= 844
+844 None n2-844.plc2.org sls= [844, 845, 846] site= 845
+845 None n2-845.plc2.org sls= [845, 846, 847] site= 846
+846 None n2-846.plc2.org sls= [846, 847, 848] site= 847
+847 None n2-847.plc2.org sls= [847, 848, 849] site= 848
+848 None n2-848.plc2.org sls= [848, 849, 850] site= 849
+849 None n2-849.plc2.org sls= [849, 850, 851] site= 850
+850 None n2-850.plc2.org sls= [850, 851, 852] site= 851
+851 None n2-851.plc2.org sls= [851, 852, 853] site= 852
+852 None n2-852.plc2.org sls= [852, 853, 854] site= 853
+853 None n2-853.plc2.org sls= [853, 854, 855] site= 854
+854 None n2-854.plc2.org sls= [854, 855, 856] site= 855
+855 None n2-855.plc2.org sls= [855, 856, 857] site= 856
+856 None n2-856.plc2.org sls= [856, 857, 858] site= 857
+857 None n2-857.plc2.org sls= [857, 858, 859] site= 858
+858 None n2-858.plc2.org sls= [858, 859, 860] site= 859
+859 None n2-859.plc2.org sls= [859, 860, 861] site= 860
+860 None n2-860.plc2.org sls= [860, 861, 862] site= 861
+861 None n2-861.plc2.org sls= [861, 862, 863] site= 862
+862 None n2-862.plc2.org sls= [862, 863, 864] site= 863
+863 None n2-863.plc2.org sls= [863, 864, 865] site= 864
+864 None n2-864.plc2.org sls= [864, 865, 866] site= 865
+865 None n2-865.plc2.org sls= [865, 866, 867] site= 866
+866 None n2-866.plc2.org sls= [866, 867, 868] site= 867
+867 None n2-867.plc2.org sls= [867, 868, 869] site= 868
+868 None n2-868.plc2.org sls= [868, 869, 870] site= 869
+869 None n2-869.plc2.org sls= [869, 870, 871] site= 870
+870 None n2-870.plc2.org sls= [870, 871, 872] site= 871
+871 None n2-871.plc2.org sls= [871, 872, 873] site= 872
+872 None n2-872.plc2.org sls= [872, 873, 874] site= 873
+873 None n2-873.plc2.org sls= [873, 874, 875] site= 874
+874 None n2-874.plc2.org sls= [874, 875, 876] site= 875
+875 None n2-875.plc2.org sls= [875, 876, 877] site= 876
+876 None n2-876.plc2.org sls= [876, 877, 878] site= 877
+877 None n2-877.plc2.org sls= [877, 878, 879] site= 878
+878 None n2-878.plc2.org sls= [878, 879, 880] site= 879
+879 None n2-879.plc2.org sls= [879, 880, 881] site= 880
+880 None n2-880.plc2.org sls= [880, 881, 882] site= 881
+881 None n2-881.plc2.org sls= [881, 882, 883] site= 882
+882 None n2-882.plc2.org sls= [882, 883, 884] site= 883
+883 None n2-883.plc2.org sls= [883, 884, 885] site= 884
+884 None n2-884.plc2.org sls= [884, 885, 886] site= 885
+885 None n2-885.plc2.org sls= [885, 886, 887] site= 886
+886 None n2-886.plc2.org sls= [886, 887, 888] site= 887
+887 None n2-887.plc2.org sls= [887, 888, 889] site= 888
+888 None n2-888.plc2.org sls= [888, 889, 890] site= 889
+889 None n2-889.plc2.org sls= [889, 890, 891] site= 890
+890 None n2-890.plc2.org sls= [890, 891, 892] site= 891
+891 None n2-891.plc2.org sls= [891, 892, 893] site= 892
+892 None n2-892.plc2.org sls= [892, 893, 894] site= 893
+893 None n2-893.plc2.org sls= [893, 894, 895] site= 894
+894 None n2-894.plc2.org sls= [894, 895, 896] site= 895
+895 None n2-895.plc2.org sls= [895, 896, 897] site= 896
+896 None n2-896.plc2.org sls= [896, 897, 898] site= 897
+897 None n2-897.plc2.org sls= [897, 898, 899] site= 898
+898 None n2-898.plc2.org sls= [898, 899, 900] site= 899
+899 None n2-899.plc2.org sls= [899, 900, 901] site= 900
+900 None n2-900.plc2.org sls= [900, 901, 902] site= 901
+901 None n2-901.plc2.org sls= [901, 902, 903] site= 902
+902 None n2-902.plc2.org sls= [902, 903, 904] site= 903
+903 None n2-903.plc2.org sls= [903, 904, 905] site= 904
+904 None n2-904.plc2.org sls= [904, 905, 906] site= 905
+905 None n2-905.plc2.org sls= [905, 906, 907] site= 906
+906 None n2-906.plc2.org sls= [906, 907, 908] site= 907
+907 None n2-907.plc2.org sls= [907, 908, 909] site= 908
+908 None n2-908.plc2.org sls= [908, 909, 910] site= 909
+909 None n2-909.plc2.org sls= [909, 910, 911] site= 910
+910 None n2-910.plc2.org sls= [910, 911, 912] site= 911
+911 None n2-911.plc2.org sls= [911, 912, 913] site= 912
+912 None n2-912.plc2.org sls= [912, 913, 914] site= 913
+913 None n2-913.plc2.org sls= [913, 914, 915] site= 914
+914 None n2-914.plc2.org sls= [914, 915, 916] site= 915
+915 None n2-915.plc2.org sls= [915, 916, 917] site= 916
+916 None n2-916.plc2.org sls= [916, 917, 918] site= 917
+917 None n2-917.plc2.org sls= [917, 918, 919] site= 918
+918 None n2-918.plc2.org sls= [918, 919, 920] site= 919
+919 None n2-919.plc2.org sls= [919, 920, 921] site= 920
+920 None n2-920.plc2.org sls= [920, 921, 922] site= 921
+921 None n2-921.plc2.org sls= [921, 922, 923] site= 922
+922 None n2-922.plc2.org sls= [922, 923, 924] site= 923
+923 None n2-923.plc2.org sls= [923, 924, 925] site= 924
+924 None n2-924.plc2.org sls= [924, 925, 926] site= 925
+925 None n2-925.plc2.org sls= [925, 926, 927] site= 926
+926 None n2-926.plc2.org sls= [926, 927, 928] site= 927
+927 None n2-927.plc2.org sls= [927, 928, 929] site= 928
+928 None n2-928.plc2.org sls= [928, 929, 930] site= 929
+929 None n2-929.plc2.org sls= [929, 930, 931] site= 930
+930 None n2-930.plc2.org sls= [930, 931, 932] site= 931
+931 None n2-931.plc2.org sls= [931, 932, 933] site= 932
+932 None n2-932.plc2.org sls= [932, 933, 934] site= 933
+933 None n2-933.plc2.org sls= [933, 934, 935] site= 934
+934 None n2-934.plc2.org sls= [934, 935, 936] site= 935
+935 None n2-935.plc2.org sls= [935, 936, 937] site= 936
+936 None n2-936.plc2.org sls= [936, 937, 938] site= 937
+937 None n2-937.plc2.org sls= [937, 938, 939] site= 938
+938 None n2-938.plc2.org sls= [938, 939, 940] site= 939
+939 None n2-939.plc2.org sls= [939, 940, 941] site= 940
+940 None n2-940.plc2.org sls= [940, 941, 942] site= 941
+941 None n2-941.plc2.org sls= [941, 942, 943] site= 942
+942 None n2-942.plc2.org sls= [942, 943, 944] site= 943
+943 None n2-943.plc2.org sls= [943, 944, 945] site= 944
+944 None n2-944.plc2.org sls= [944, 945, 946] site= 945
+945 None n2-945.plc2.org sls= [945, 946, 947] site= 946
+946 None n2-946.plc2.org sls= [946, 947, 948] site= 947
+947 None n2-947.plc2.org sls= [947, 948, 949] site= 948
+948 None n2-948.plc2.org sls= [948, 949, 950] site= 949
+949 None n2-949.plc2.org sls= [949, 950, 951] site= 950
+950 None n2-950.plc2.org sls= [950, 951, 952] site= 951
+951 None n2-951.plc2.org sls= [951, 952, 953] site= 952
+952 None n2-952.plc2.org sls= [952, 953, 954] site= 953
+953 None n2-953.plc2.org sls= [953, 954, 955] site= 954
+954 None n2-954.plc2.org sls= [954, 955, 956] site= 955
+955 None n2-955.plc2.org sls= [955, 956, 957] site= 956
+956 None n2-956.plc2.org sls= [956, 957, 958] site= 957
+957 None n2-957.plc2.org sls= [957, 958, 959] site= 958
+958 None n2-958.plc2.org sls= [958, 959, 960] site= 959
+959 None n2-959.plc2.org sls= [959, 960, 961] site= 960
+960 None n2-960.plc2.org sls= [960, 961, 962] site= 961
+961 None n2-961.plc2.org sls= [961, 962, 963] site= 962
+962 None n2-962.plc2.org sls= [962, 963, 964] site= 963
+963 None n2-963.plc2.org sls= [963, 964, 965] site= 964
+964 None n2-964.plc2.org sls= [964, 965, 966] site= 965
+965 None n2-965.plc2.org sls= [965, 966, 967] site= 966
+966 None n2-966.plc2.org sls= [966, 967, 968] site= 967
+967 None n2-967.plc2.org sls= [967, 968, 969] site= 968
+968 None n2-968.plc2.org sls= [968, 969, 970] site= 969
+969 None n2-969.plc2.org sls= [969, 970, 971] site= 970
+970 None n2-970.plc2.org sls= [970, 971, 972] site= 971
+971 None n2-971.plc2.org sls= [971, 972, 973] site= 972
+972 None n2-972.plc2.org sls= [972, 973, 974] site= 973
+973 None n2-973.plc2.org sls= [973, 974, 975] site= 974
+974 None n2-974.plc2.org sls= [974, 975, 976] site= 975
+975 None n2-975.plc2.org sls= [975, 976, 977] site= 976
+976 None n2-976.plc2.org sls= [976, 977, 978] site= 977
+977 None n2-977.plc2.org sls= [977, 978, 979] site= 978
+978 None n2-978.plc2.org sls= [978, 979, 980] site= 979
+979 None n2-979.plc2.org sls= [979, 980, 981] site= 980
+980 None n2-980.plc2.org sls= [980, 981, 982] site= 981
+981 None n2-981.plc2.org sls= [981, 982, 983] site= 982
+982 None n2-982.plc2.org sls= [982, 983, 984] site= 983
+983 None n2-983.plc2.org sls= [983, 984, 985] site= 984
+984 None n2-984.plc2.org sls= [984, 985, 986] site= 985
+985 None n2-985.plc2.org sls= [985, 986, 987] site= 986
+986 None n2-986.plc2.org sls= [986, 987, 988] site= 987
+987 None n2-987.plc2.org sls= [987, 988, 989] site= 988
+988 None n2-988.plc2.org sls= [988, 989, 990] site= 989
+989 None n2-989.plc2.org sls= [989, 990, 991] site= 990
+990 None n2-990.plc2.org sls= [990, 991, 992] site= 991
+991 None n2-991.plc2.org sls= [991, 992, 993] site= 992
+992 None n2-992.plc2.org sls= [992, 993, 994] site= 993
+993 None n2-993.plc2.org sls= [993, 994, 995] site= 994
+994 None n2-994.plc2.org sls= [994, 995, 996] site= 995
+995 None n2-995.plc2.org sls= [995, 996, 997] site= 996
+996 None n2-996.plc2.org sls= [996, 997, 998] site= 997
+997 None n2-997.plc2.org sls= [997, 998, 999] site= 998
+998 None n2-998.plc2.org sls= [998, 999, 1000] site= 999
+999 None n2-999.plc2.org sls= [999, 1000, 1001] site= 1000
+1000 None n2-1000.plc2.org sls= [1000, 1001, 1002] site= 1001
+1001 None n2-1001.plc2.org sls= [1001, 1002, 1003] site= 2
+1002 None n2-1002.plc2.org sls= [1002, 1003, 1004] site= 3
+1003 None n2-1003.plc2.org sls= [1003, 1004, 1005] site= 4
+1004 None n2-1004.plc2.org sls= [1004, 1005, 1006] site= 5
+1005 None n2-1005.plc2.org sls= [1005, 1006, 1007] site= 6
+1006 None n2-1006.plc2.org sls= [1006, 1007, 1008] site= 7
+1007 None n2-1007.plc2.org sls= [1007, 1008, 1009] site= 8
+1008 None n2-1008.plc2.org sls= [1008, 1009, 1010] site= 9
+1009 None n2-1009.plc2.org sls= [1009, 1010, 1011] site= 10
+1010 None n2-1010.plc2.org sls= [1010, 1011, 1012] site= 11
+1011 None n2-1011.plc2.org sls= [1011, 1012, 1013] site= 12
+1012 None n2-1012.plc2.org sls= [1012, 1013, 1014] site= 13
+1013 None n2-1013.plc2.org sls= [1013, 1014, 1015] site= 14
+1014 None n2-1014.plc2.org sls= [1014, 1015, 1016] site= 15
+1015 None n2-1015.plc2.org sls= [1015, 1016, 1017] site= 16
+1016 None n2-1016.plc2.org sls= [1016, 1017, 1018] site= 17
+1017 None n2-1017.plc2.org sls= [1017, 1018, 1019] site= 18
+1018 None n2-1018.plc2.org sls= [1018, 1019, 1020] site= 19
+1019 None n2-1019.plc2.org sls= [1019, 1020, 1021] site= 20
+1020 None n2-1020.plc2.org sls= [1020, 1021, 1022] site= 21
+1021 None n2-1021.plc2.org sls= [1021, 1022, 1023] site= 22
+1022 None n2-1022.plc2.org sls= [1022, 1023, 1024] site= 23
+1023 None n2-1023.plc2.org sls= [1023, 1024, 1025] site= 24
+1024 None n2-1024.plc2.org sls= [1024, 1025, 1026] site= 25
+1025 None n2-1025.plc2.org sls= [1025, 1026, 1027] site= 26
+1026 None n2-1026.plc2.org sls= [1026, 1027, 1028] site= 27
+1027 None n2-1027.plc2.org sls= [1027, 1028, 1029] site= 28
+1028 None n2-1028.plc2.org sls= [1028, 1029, 1030] site= 29
+1029 None n2-1029.plc2.org sls= [1029, 1030, 1031] site= 30
+1030 None n2-1030.plc2.org sls= [1030, 1031, 1032] site= 31
+1031 None n2-1031.plc2.org sls= [1031, 1032, 1033] site= 32
+1032 None n2-1032.plc2.org sls= [1032, 1033, 1034] site= 33
+1033 None n2-1033.plc2.org sls= [1033, 1034, 1035] site= 34
+1034 None n2-1034.plc2.org sls= [1034, 1035, 1036] site= 35
+1035 None n2-1035.plc2.org sls= [1035, 1036, 1037] site= 36
+1036 None n2-1036.plc2.org sls= [1036, 1037, 1038] site= 37
+1037 None n2-1037.plc2.org sls= [1037, 1038, 1039] site= 38
+1038 None n2-1038.plc2.org sls= [1038, 1039, 1040] site= 39
+1039 None n2-1039.plc2.org sls= [1039, 1040, 1041] site= 40
+1040 None n2-1040.plc2.org sls= [1040, 1041, 1042] site= 41
+1041 None n2-1041.plc2.org sls= [1041, 1042, 1043] site= 42
+1042 None n2-1042.plc2.org sls= [1042, 1043, 1044] site= 43
+1043 None n2-1043.plc2.org sls= [1043, 1044, 1045] site= 44
+1044 None n2-1044.plc2.org sls= [1044, 1045, 1046] site= 45
+1045 None n2-1045.plc2.org sls= [1045, 1046, 1047] site= 46
+1046 None n2-1046.plc2.org sls= [1046, 1047, 1048] site= 47
+1047 None n2-1047.plc2.org sls= [1047, 1048, 1049] site= 48
+1048 None n2-1048.plc2.org sls= [1048, 1049, 1050] site= 49
+1049 None n2-1049.plc2.org sls= [1049, 1050, 1051] site= 50
+1050 None n2-1050.plc2.org sls= [1050, 1051, 1052] site= 51
+1051 None n2-1051.plc2.org sls= [1051, 1052, 1053] site= 52
+1052 None n2-1052.plc2.org sls= [1052, 1053, 1054] site= 53
+1053 None n2-1053.plc2.org sls= [1053, 1054, 1055] site= 54
+1054 None n2-1054.plc2.org sls= [1054, 1055, 1056] site= 55
+1055 None n2-1055.plc2.org sls= [1055, 1056, 1057] site= 56
+1056 None n2-1056.plc2.org sls= [1056, 1057, 1058] site= 57
+1057 None n2-1057.plc2.org sls= [1057, 1058, 1059] site= 58
+1058 None n2-1058.plc2.org sls= [1058, 1059, 1060] site= 59
+1059 None n2-1059.plc2.org sls= [1059, 1060, 1061] site= 60
+1060 None n2-1060.plc2.org sls= [1060, 1061, 1062] site= 61
+1061 None n2-1061.plc2.org sls= [1061, 1062, 1063] site= 62
+1062 None n2-1062.plc2.org sls= [1062, 1063, 1064] site= 63
+1063 None n2-1063.plc2.org sls= [1063, 1064, 1065] site= 64
+1064 None n2-1064.plc2.org sls= [1064, 1065, 1066] site= 65
+1065 None n2-1065.plc2.org sls= [1065, 1066, 1067] site= 66
+1066 None n2-1066.plc2.org sls= [1066, 1067, 1068] site= 67
+1067 None n2-1067.plc2.org sls= [1067, 1068, 1069] site= 68
+1068 None n2-1068.plc2.org sls= [1068, 1069, 1070] site= 69
+1069 None n2-1069.plc2.org sls= [1069, 1070, 1071] site= 70
+1070 None n2-1070.plc2.org sls= [1070, 1071, 1072] site= 71
+1071 None n2-1071.plc2.org sls= [1071, 1072, 1073] site= 72
+1072 None n2-1072.plc2.org sls= [1072, 1073, 1074] site= 73
+1073 None n2-1073.plc2.org sls= [1073, 1074, 1075] site= 74
+1074 None n2-1074.plc2.org sls= [1074, 1075, 1076] site= 75
+1075 None n2-1075.plc2.org sls= [1075, 1076, 1077] site= 76
+1076 None n2-1076.plc2.org sls= [1076, 1077, 1078] site= 77
+1077 None n2-1077.plc2.org sls= [1077, 1078, 1079] site= 78
+1078 None n2-1078.plc2.org sls= [1078, 1079, 1080] site= 79
+1079 None n2-1079.plc2.org sls= [1079, 1080, 1081] site= 80
+1080 None n2-1080.plc2.org sls= [1080, 1081, 1082] site= 81
+1081 None n2-1081.plc2.org sls= [1081, 1082, 1083] site= 82
+1082 None n2-1082.plc2.org sls= [1082, 1083, 1084] site= 83
+1083 None n2-1083.plc2.org sls= [1083, 1084, 1085] site= 84
+1084 None n2-1084.plc2.org sls= [1084, 1085, 1086] site= 85
+1085 None n2-1085.plc2.org sls= [1085, 1086, 1087] site= 86
+1086 None n2-1086.plc2.org sls= [1086, 1087, 1088] site= 87
+1087 None n2-1087.plc2.org sls= [1087, 1088, 1089] site= 88
+1088 None n2-1088.plc2.org sls= [1088, 1089, 1090] site= 89
+1089 None n2-1089.plc2.org sls= [1089, 1090, 1091] site= 90
+1090 None n2-1090.plc2.org sls= [1090, 1091, 1092] site= 91
+1091 None n2-1091.plc2.org sls= [1091, 1092, 1093] site= 92
+1092 None n2-1092.plc2.org sls= [1092, 1093, 1094] site= 93
+1093 None n2-1093.plc2.org sls= [1093, 1094, 1095] site= 94
+1094 None n2-1094.plc2.org sls= [1094, 1095, 1096] site= 95
+1095 None n2-1095.plc2.org sls= [1095, 1096, 1097] site= 96
+1096 None n2-1096.plc2.org sls= [1096, 1097, 1098] site= 97
+1097 None n2-1097.plc2.org sls= [1097, 1098, 1099] site= 98
+1098 None n2-1098.plc2.org sls= [1098, 1099, 1100] site= 99
+1099 None n2-1099.plc2.org sls= [1099, 1100, 1101] site= 100
+1100 None n2-1100.plc2.org sls= [1100, 1101, 1102] site= 101
+1101 None n2-1101.plc2.org sls= [1101, 1102, 1103] site= 102
+1102 None n2-1102.plc2.org sls= [1102, 1103, 1104] site= 103
+1103 None n2-1103.plc2.org sls= [1103, 1104, 1105] site= 104
+1104 None n2-1104.plc2.org sls= [1104, 1105, 1106] site= 105
+1105 None n2-1105.plc2.org sls= [1105, 1106, 1107] site= 106
+1106 None n2-1106.plc2.org sls= [1106, 1107, 1108] site= 107
+1107 None n2-1107.plc2.org sls= [1107, 1108, 1109] site= 108
+1108 None n2-1108.plc2.org sls= [1108, 1109, 1110] site= 109
+1109 None n2-1109.plc2.org sls= [1109, 1110, 1111] site= 110
+1110 None n2-1110.plc2.org sls= [1110, 1111, 1112] site= 111
+1111 None n2-1111.plc2.org sls= [1111, 1112, 1113] site= 112
+1112 None n2-1112.plc2.org sls= [1112, 1113, 1114] site= 113
+1113 None n2-1113.plc2.org sls= [1113, 1114, 1115] site= 114
+1114 None n2-1114.plc2.org sls= [1114, 1115, 1116] site= 115
+1115 None n2-1115.plc2.org sls= [1115, 1116, 1117] site= 116
+1116 None n2-1116.plc2.org sls= [1116, 1117, 1118] site= 117
+1117 None n2-1117.plc2.org sls= [1117, 1118, 1119] site= 118
+1118 None n2-1118.plc2.org sls= [1118, 1119, 1120] site= 119
+1119 None n2-1119.plc2.org sls= [1119, 1120, 1121] site= 120
+1120 None n2-1120.plc2.org sls= [1120, 1121, 1122] site= 121
+1121 None n2-1121.plc2.org sls= [1121, 1122, 1123] site= 122
+1122 None n2-1122.plc2.org sls= [1122, 1123, 1124] site= 123
+1123 None n2-1123.plc2.org sls= [1123, 1124, 1125] site= 124
+1124 None n2-1124.plc2.org sls= [1124, 1125, 1126] site= 125
+1125 None n2-1125.plc2.org sls= [1125, 1126, 1127] site= 126
+1126 None n2-1126.plc2.org sls= [1126, 1127, 1128] site= 127
+1127 None n2-1127.plc2.org sls= [1127, 1128, 1129] site= 128
+1128 None n2-1128.plc2.org sls= [1128, 1129, 1130] site= 129
+1129 None n2-1129.plc2.org sls= [1129, 1130, 1131] site= 130
+1130 None n2-1130.plc2.org sls= [1130, 1131, 1132] site= 131
+1131 None n2-1131.plc2.org sls= [1131, 1132, 1133] site= 132
+1132 None n2-1132.plc2.org sls= [1132, 1133, 1134] site= 133
+1133 None n2-1133.plc2.org sls= [1133, 1134, 1135] site= 134
+1134 None n2-1134.plc2.org sls= [1134, 1135, 1136] site= 135
+1135 None n2-1135.plc2.org sls= [1135, 1136, 1137] site= 136
+1136 None n2-1136.plc2.org sls= [1136, 1137, 1138] site= 137
+1137 None n2-1137.plc2.org sls= [1137, 1138, 1139] site= 138
+1138 None n2-1138.plc2.org sls= [1138, 1139, 1140] site= 139
+1139 None n2-1139.plc2.org sls= [1139, 1140, 1141] site= 140
+1140 None n2-1140.plc2.org sls= [1140, 1141, 1142] site= 141
+1141 None n2-1141.plc2.org sls= [1141, 1142, 1143] site= 142
+1142 None n2-1142.plc2.org sls= [1142, 1143, 1144] site= 143
+1143 None n2-1143.plc2.org sls= [1143, 1144, 1145] site= 144
+1144 None n2-1144.plc2.org sls= [1144, 1145, 1146] site= 145
+1145 None n2-1145.plc2.org sls= [1145, 1146, 1147] site= 146
+1146 None n2-1146.plc2.org sls= [1146, 1147, 1148] site= 147
+1147 None n2-1147.plc2.org sls= [1147, 1148, 1149] site= 148
+1148 None n2-1148.plc2.org sls= [1148, 1149, 1150] site= 149
+1149 None n2-1149.plc2.org sls= [1149, 1150, 1151] site= 150
+1150 None n2-1150.plc2.org sls= [1150, 1151, 1152] site= 151
+1151 None n2-1151.plc2.org sls= [1151, 1152, 1153] site= 152
+1152 None n2-1152.plc2.org sls= [1152, 1153, 1154] site= 153
+1153 None n2-1153.plc2.org sls= [1153, 1154, 1155] site= 154
+1154 None n2-1154.plc2.org sls= [1154, 1155, 1156] site= 155
+1155 None n2-1155.plc2.org sls= [1155, 1156, 1157] site= 156
+1156 None n2-1156.plc2.org sls= [1156, 1157, 1158] site= 157
+1157 None n2-1157.plc2.org sls= [1157, 1158, 1159] site= 158
+1158 None n2-1158.plc2.org sls= [1158, 1159, 1160] site= 159
+1159 None n2-1159.plc2.org sls= [1159, 1160, 1161] site= 160
+1160 None n2-1160.plc2.org sls= [1160, 1161, 1162] site= 161
+1161 None n2-1161.plc2.org sls= [1161, 1162, 1163] site= 162
+1162 None n2-1162.plc2.org sls= [1162, 1163, 1164] site= 163
+1163 None n2-1163.plc2.org sls= [1163, 1164, 1165] site= 164
+1164 None n2-1164.plc2.org sls= [1164, 1165, 1166] site= 165
+1165 None n2-1165.plc2.org sls= [1165, 1166, 1167] site= 166
+1166 None n2-1166.plc2.org sls= [1166, 1167, 1168] site= 167
+1167 None n2-1167.plc2.org sls= [1167, 1168, 1169] site= 168
+1168 None n2-1168.plc2.org sls= [1168, 1169, 1170] site= 169
+1169 None n2-1169.plc2.org sls= [1169, 1170, 1171] site= 170
+1170 None n2-1170.plc2.org sls= [1170, 1171, 1172] site= 171
+1171 None n2-1171.plc2.org sls= [1171, 1172, 1173] site= 172
+1172 None n2-1172.plc2.org sls= [1172, 1173, 1174] site= 173
+1173 None n2-1173.plc2.org sls= [1173, 1174, 1175] site= 174
+1174 None n2-1174.plc2.org sls= [1174, 1175, 1176] site= 175
+1175 None n2-1175.plc2.org sls= [1175, 1176, 1177] site= 176
+1176 None n2-1176.plc2.org sls= [1176, 1177, 1178] site= 177
+1177 None n2-1177.plc2.org sls= [1177, 1178, 1179] site= 178
+1178 None n2-1178.plc2.org sls= [1178, 1179, 1180] site= 179
+1179 None n2-1179.plc2.org sls= [1179, 1180, 1181] site= 180
+1180 None n2-1180.plc2.org sls= [1180, 1181, 1182] site= 181
+1181 None n2-1181.plc2.org sls= [1181, 1182, 1183] site= 182
+1182 None n2-1182.plc2.org sls= [1182, 1183, 1184] site= 183
+1183 None n2-1183.plc2.org sls= [1183, 1184, 1185] site= 184
+1184 None n2-1184.plc2.org sls= [1184, 1185, 1186] site= 185
+1185 None n2-1185.plc2.org sls= [1185, 1186, 1187] site= 186
+1186 None n2-1186.plc2.org sls= [1186, 1187, 1188] site= 187
+1187 None n2-1187.plc2.org sls= [1187, 1188, 1189] site= 188
+1188 None n2-1188.plc2.org sls= [1188, 1189, 1190] site= 189
+1189 None n2-1189.plc2.org sls= [1189, 1190, 1191] site= 190
+1190 None n2-1190.plc2.org sls= [1190, 1191, 1192] site= 191
+1191 None n2-1191.plc2.org sls= [1191, 1192, 1193] site= 192
+1192 None n2-1192.plc2.org sls= [1192, 1193, 1194] site= 193
+1193 None n2-1193.plc2.org sls= [1193, 1194, 1195] site= 194
+1194 None n2-1194.plc2.org sls= [1194, 1195, 1196] site= 195
+1195 None n2-1195.plc2.org sls= [1195, 1196, 1197] site= 196
+1196 None n2-1196.plc2.org sls= [1196, 1197, 1198] site= 197
+1197 None n2-1197.plc2.org sls= [1197, 1198, 1199] site= 198
+1198 None n2-1198.plc2.org sls= [1198, 1199, 1200] site= 199
+1199 None n2-1199.plc2.org sls= [1199, 1200, 1201] site= 200
+1200 None n2-1200.plc2.org sls= [1200, 1201, 1202] site= 201
+1201 None n2-1201.plc2.org sls= [1201, 1202, 1203] site= 202
+1202 None n2-1202.plc2.org sls= [1202, 1203, 1204] site= 203
+1203 None n2-1203.plc2.org sls= [1203, 1204, 1205] site= 204
+1204 None n2-1204.plc2.org sls= [1204, 1205, 1206] site= 205
+1205 None n2-1205.plc2.org sls= [1205, 1206, 1207] site= 206
+1206 None n2-1206.plc2.org sls= [1206, 1207, 1208] site= 207
+1207 None n2-1207.plc2.org sls= [1207, 1208, 1209] site= 208
+1208 None n2-1208.plc2.org sls= [1208, 1209, 1210] site= 209
+1209 None n2-1209.plc2.org sls= [1209, 1210, 1211] site= 210
+1210 None n2-1210.plc2.org sls= [1210, 1211, 1212] site= 211
+1211 None n2-1211.plc2.org sls= [1211, 1212, 1213] site= 212
+1212 None n2-1212.plc2.org sls= [1212, 1213, 1214] site= 213
+1213 None n2-1213.plc2.org sls= [1213, 1214, 1215] site= 214
+1214 None n2-1214.plc2.org sls= [1214, 1215, 1216] site= 215
+1215 None n2-1215.plc2.org sls= [1215, 1216, 1217] site= 216
+1216 None n2-1216.plc2.org sls= [1216, 1217, 1218] site= 217
+1217 None n2-1217.plc2.org sls= [1217, 1218, 1219] site= 218
+1218 None n2-1218.plc2.org sls= [1218, 1219, 1220] site= 219
+1219 None n2-1219.plc2.org sls= [1219, 1220, 1221] site= 220
+1220 None n2-1220.plc2.org sls= [1220, 1221, 1222] site= 221
+1221 None n2-1221.plc2.org sls= [1221, 1222, 1223] site= 222
+1222 None n2-1222.plc2.org sls= [1222, 1223, 1224] site= 223
+1223 None n2-1223.plc2.org sls= [1223, 1224, 1225] site= 224
+1224 None n2-1224.plc2.org sls= [1224, 1225, 1226] site= 225
+1225 None n2-1225.plc2.org sls= [1225, 1226, 1227] site= 226
+1226 None n2-1226.plc2.org sls= [1226, 1227, 1228] site= 227
+1227 None n2-1227.plc2.org sls= [1227, 1228, 1229] site= 228
+1228 None n2-1228.plc2.org sls= [1228, 1229, 1230] site= 229
+1229 None n2-1229.plc2.org sls= [1229, 1230, 1231] site= 230
+1230 None n2-1230.plc2.org sls= [1230, 1231, 1232] site= 231
+1231 None n2-1231.plc2.org sls= [1231, 1232, 1233] site= 232
+1232 None n2-1232.plc2.org sls= [1232, 1233, 1234] site= 233
+1233 None n2-1233.plc2.org sls= [1233, 1234, 1235] site= 234
+1234 None n2-1234.plc2.org sls= [1234, 1235, 1236] site= 235
+1235 None n2-1235.plc2.org sls= [1235, 1236, 1237] site= 236
+1236 None n2-1236.plc2.org sls= [1236, 1237, 1238] site= 237
+1237 None n2-1237.plc2.org sls= [1237, 1238, 1239] site= 238
+1238 None n2-1238.plc2.org sls= [1238, 1239, 1240] site= 239
+1239 None n2-1239.plc2.org sls= [1239, 1240, 1241] site= 240
+1240 None n2-1240.plc2.org sls= [1240, 1241, 1242] site= 241
+1241 None n2-1241.plc2.org sls= [1241, 1242, 1243] site= 242
+1242 None n2-1242.plc2.org sls= [1242, 1243, 1244] site= 243
+1243 None n2-1243.plc2.org sls= [1243, 1244, 1245] site= 244
+1244 None n2-1244.plc2.org sls= [1244, 1245, 1246] site= 245
+1245 None n2-1245.plc2.org sls= [1245, 1246, 1247] site= 246
+1246 None n2-1246.plc2.org sls= [1246, 1247, 1248] site= 247
+1247 None n2-1247.plc2.org sls= [1247, 1248, 1249] site= 248
+1248 None n2-1248.plc2.org sls= [1248, 1249, 1250] site= 249
+1249 None n2-1249.plc2.org sls= [1249, 1250, 1251] site= 250
+1250 None n2-1250.plc2.org sls= [1250, 1251, 1252] site= 251
+1251 None n2-1251.plc2.org sls= [1251, 1252, 1253] site= 252
+1252 None n2-1252.plc2.org sls= [1252, 1253, 1254] site= 253
+1253 None n2-1253.plc2.org sls= [1253, 1254, 1255] site= 254
+1254 None n2-1254.plc2.org sls= [1254, 1255, 1256] site= 255
+1255 None n2-1255.plc2.org sls= [1255, 1256, 1257] site= 256
+1256 None n2-1256.plc2.org sls= [1256, 1257, 1258] site= 257
+1257 None n2-1257.plc2.org sls= [1257, 1258, 1259] site= 258
+1258 None n2-1258.plc2.org sls= [1258, 1259, 1260] site= 259
+1259 None n2-1259.plc2.org sls= [1259, 1260, 1261] site= 260
+1260 None n2-1260.plc2.org sls= [1260, 1261, 1262] site= 261
+1261 None n2-1261.plc2.org sls= [1261, 1262, 1263] site= 262
+1262 None n2-1262.plc2.org sls= [1262, 1263, 1264] site= 263
+1263 None n2-1263.plc2.org sls= [1263, 1264, 1265] site= 264
+1264 None n2-1264.plc2.org sls= [1264, 1265, 1266] site= 265
+1265 None n2-1265.plc2.org sls= [1265, 1266, 1267] site= 266
+1266 None n2-1266.plc2.org sls= [1266, 1267, 1268] site= 267
+1267 None n2-1267.plc2.org sls= [1267, 1268, 1269] site= 268
+1268 None n2-1268.plc2.org sls= [1268, 1269, 1270] site= 269
+1269 None n2-1269.plc2.org sls= [1269, 1270, 1271] site= 270
+1270 None n2-1270.plc2.org sls= [1270, 1271, 1272] site= 271
+1271 None n2-1271.plc2.org sls= [1271, 1272, 1273] site= 272
+1272 None n2-1272.plc2.org sls= [1272, 1273, 1274] site= 273
+1273 None n2-1273.plc2.org sls= [1273, 1274, 1275] site= 274
+1274 None n2-1274.plc2.org sls= [1274, 1275, 1276] site= 275
+1275 None n2-1275.plc2.org sls= [1275, 1276, 1277] site= 276
+1276 None n2-1276.plc2.org sls= [1276, 1277, 1278] site= 277
+1277 None n2-1277.plc2.org sls= [1277, 1278, 1279] site= 278
+1278 None n2-1278.plc2.org sls= [1278, 1279, 1280] site= 279
+1279 None n2-1279.plc2.org sls= [1279, 1280, 1281] site= 280
+1280 None n2-1280.plc2.org sls= [1280, 1281, 1282] site= 281
+1281 None n2-1281.plc2.org sls= [1281, 1282, 1283] site= 282
+1282 None n2-1282.plc2.org sls= [1282, 1283, 1284] site= 283
+1283 None n2-1283.plc2.org sls= [1283, 1284, 1285] site= 284
+1284 None n2-1284.plc2.org sls= [1284, 1285, 1286] site= 285
+1285 None n2-1285.plc2.org sls= [1285, 1286, 1287] site= 286
+1286 None n2-1286.plc2.org sls= [1286, 1287, 1288] site= 287
+1287 None n2-1287.plc2.org sls= [1287, 1288, 1289] site= 288
+1288 None n2-1288.plc2.org sls= [1288, 1289, 1290] site= 289
+1289 None n2-1289.plc2.org sls= [1289, 1290, 1291] site= 290
+1290 None n2-1290.plc2.org sls= [1290, 1291, 1292] site= 291
+1291 None n2-1291.plc2.org sls= [1291, 1292, 1293] site= 292
+1292 None n2-1292.plc2.org sls= [1292, 1293, 1294] site= 293
+1293 None n2-1293.plc2.org sls= [1293, 1294, 1295] site= 294
+1294 None n2-1294.plc2.org sls= [1294, 1295, 1296] site= 295
+1295 None n2-1295.plc2.org sls= [1295, 1296, 1297] site= 296
+1296 None n2-1296.plc2.org sls= [1296, 1297, 1298] site= 297
+1297 None n2-1297.plc2.org sls= [1297, 1298, 1299] site= 298
+1298 None n2-1298.plc2.org sls= [1298, 1299, 1300] site= 299
+1299 None n2-1299.plc2.org sls= [1299, 1300, 1301] site= 300
+1300 None n2-1300.plc2.org sls= [1300, 1301, 1302] site= 301
+1301 None n2-1301.plc2.org sls= [1301, 1302, 1303] site= 302
+1302 None n2-1302.plc2.org sls= [1302, 1303, 1304] site= 303
+1303 None n2-1303.plc2.org sls= [1303, 1304, 1305] site= 304
+1304 None n2-1304.plc2.org sls= [1304, 1305, 1306] site= 305
+1305 None n2-1305.plc2.org sls= [1305, 1306, 1307] site= 306
+1306 None n2-1306.plc2.org sls= [1306, 1307, 1308] site= 307
+1307 None n2-1307.plc2.org sls= [1307, 1308, 1309] site= 308
+1308 None n2-1308.plc2.org sls= [1308, 1309, 1310] site= 309
+1309 None n2-1309.plc2.org sls= [1309, 1310, 1311] site= 310
+1310 None n2-1310.plc2.org sls= [1310, 1311, 1312] site= 311
+1311 None n2-1311.plc2.org sls= [1311, 1312, 1313] site= 312
+1312 None n2-1312.plc2.org sls= [1312, 1313, 1314] site= 313
+1313 None n2-1313.plc2.org sls= [1313, 1314, 1315] site= 314
+1314 None n2-1314.plc2.org sls= [1314, 1315, 1316] site= 315
+1315 None n2-1315.plc2.org sls= [1315, 1316, 1317] site= 316
+1316 None n2-1316.plc2.org sls= [1316, 1317, 1318] site= 317
+1317 None n2-1317.plc2.org sls= [1317, 1318, 1319] site= 318
+1318 None n2-1318.plc2.org sls= [1318, 1319, 1320] site= 319
+1319 None n2-1319.plc2.org sls= [1319, 1320, 1321] site= 320
+1320 None n2-1320.plc2.org sls= [1320, 1321, 1322] site= 321
+1321 None n2-1321.plc2.org sls= [1321, 1322, 1323] site= 322
+1322 None n2-1322.plc2.org sls= [1322, 1323, 1324] site= 323
+1323 None n2-1323.plc2.org sls= [1323, 1324, 1325] site= 324
+1324 None n2-1324.plc2.org sls= [1324, 1325, 1326] site= 325
+1325 None n2-1325.plc2.org sls= [1325, 1326, 1327] site= 326
+1326 None n2-1326.plc2.org sls= [1326, 1327, 1328] site= 327
+1327 None n2-1327.plc2.org sls= [1327, 1328, 1329] site= 328
+1328 None n2-1328.plc2.org sls= [1328, 1329, 1330] site= 329
+1329 None n2-1329.plc2.org sls= [1329, 1330, 1331] site= 330
+1330 None n2-1330.plc2.org sls= [1330, 1331, 1332] site= 331
+1331 None n2-1331.plc2.org sls= [1331, 1332, 1333] site= 332
+1332 None n2-1332.plc2.org sls= [1332, 1333, 1334] site= 333
+1333 None n2-1333.plc2.org sls= [1333, 1334, 1335] site= 334
+1334 None n2-1334.plc2.org sls= [1334, 1335, 1336] site= 335
+1335 None n2-1335.plc2.org sls= [1335, 1336, 1337] site= 336
+1336 None n2-1336.plc2.org sls= [1336, 1337, 1338] site= 337
+1337 None n2-1337.plc2.org sls= [1337, 1338, 1339] site= 338
+1338 None n2-1338.plc2.org sls= [1338, 1339, 1340] site= 339
+1339 None n2-1339.plc2.org sls= [1339, 1340, 1341] site= 340
+1340 None n2-1340.plc2.org sls= [1340, 1341, 1342] site= 341
+1341 None n2-1341.plc2.org sls= [1341, 1342, 1343] site= 342
+1342 None n2-1342.plc2.org sls= [1342, 1343, 1344] site= 343
+1343 None n2-1343.plc2.org sls= [1343, 1344, 1345] site= 344
+1344 None n2-1344.plc2.org sls= [1344, 1345, 1346] site= 345
+1345 None n2-1345.plc2.org sls= [1345, 1346, 1347] site= 346
+1346 None n2-1346.plc2.org sls= [1346, 1347, 1348] site= 347
+1347 None n2-1347.plc2.org sls= [1347, 1348, 1349] site= 348
+1348 None n2-1348.plc2.org sls= [1348, 1349, 1350] site= 349
+1349 None n2-1349.plc2.org sls= [1349, 1350, 1351] site= 350
+1350 None n2-1350.plc2.org sls= [1350, 1351, 1352] site= 351
+1351 None n2-1351.plc2.org sls= [1351, 1352, 1353] site= 352
+1352 None n2-1352.plc2.org sls= [1352, 1353, 1354] site= 353
+1353 None n2-1353.plc2.org sls= [1353, 1354, 1355] site= 354
+1354 None n2-1354.plc2.org sls= [1354, 1355, 1356] site= 355
+1355 None n2-1355.plc2.org sls= [1355, 1356, 1357] site= 356
+1356 None n2-1356.plc2.org sls= [1356, 1357, 1358] site= 357
+1357 None n2-1357.plc2.org sls= [1357, 1358, 1359] site= 358
+1358 None n2-1358.plc2.org sls= [1358, 1359, 1360] site= 359
+1359 None n2-1359.plc2.org sls= [1359, 1360, 1361] site= 360
+1360 None n2-1360.plc2.org sls= [1360, 1361, 1362] site= 361
+1361 None n2-1361.plc2.org sls= [1361, 1362, 1363] site= 362
+1362 None n2-1362.plc2.org sls= [1362, 1363, 1364] site= 363
+1363 None n2-1363.plc2.org sls= [1363, 1364, 1365] site= 364
+1364 None n2-1364.plc2.org sls= [1364, 1365, 1366] site= 365
+1365 None n2-1365.plc2.org sls= [1365, 1366, 1367] site= 366
+1366 None n2-1366.plc2.org sls= [1366, 1367, 1368] site= 367
+1367 None n2-1367.plc2.org sls= [1367, 1368, 1369] site= 368
+1368 None n2-1368.plc2.org sls= [1368, 1369, 1370] site= 369
+1369 None n2-1369.plc2.org sls= [1369, 1370, 1371] site= 370
+1370 None n2-1370.plc2.org sls= [1370, 1371, 1372] site= 371
+1371 None n2-1371.plc2.org sls= [1371, 1372, 1373] site= 372
+1372 None n2-1372.plc2.org sls= [1372, 1373, 1374] site= 373
+1373 None n2-1373.plc2.org sls= [1373, 1374, 1375] site= 374
+1374 None n2-1374.plc2.org sls= [1374, 1375, 1376] site= 375
+1375 None n2-1375.plc2.org sls= [1375, 1376, 1377] site= 376
+1376 None n2-1376.plc2.org sls= [1376, 1377, 1378] site= 377
+1377 None n2-1377.plc2.org sls= [1377, 1378, 1379] site= 378
+1378 None n2-1378.plc2.org sls= [1378, 1379, 1380] site= 379
+1379 None n2-1379.plc2.org sls= [1379, 1380, 1381] site= 380
+1380 None n2-1380.plc2.org sls= [1380, 1381, 1382] site= 381
+1381 None n2-1381.plc2.org sls= [1381, 1382, 1383] site= 382
+1382 None n2-1382.plc2.org sls= [1382, 1383, 1384] site= 383
+1383 None n2-1383.plc2.org sls= [1383, 1384, 1385] site= 384
+1384 None n2-1384.plc2.org sls= [1384, 1385, 1386] site= 385
+1385 None n2-1385.plc2.org sls= [1385, 1386, 1387] site= 386
+1386 None n2-1386.plc2.org sls= [1386, 1387, 1388] site= 387
+1387 None n2-1387.plc2.org sls= [1387, 1388, 1389] site= 388
+1388 None n2-1388.plc2.org sls= [1388, 1389, 1390] site= 389
+1389 None n2-1389.plc2.org sls= [1389, 1390, 1391] site= 390
+1390 None n2-1390.plc2.org sls= [1390, 1391, 1392] site= 391
+1391 None n2-1391.plc2.org sls= [1391, 1392, 1393] site= 392
+1392 None n2-1392.plc2.org sls= [1392, 1393, 1394] site= 393
+1393 None n2-1393.plc2.org sls= [1393, 1394, 1395] site= 394
+1394 None n2-1394.plc2.org sls= [1394, 1395, 1396] site= 395
+1395 None n2-1395.plc2.org sls= [1395, 1396, 1397] site= 396
+1396 None n2-1396.plc2.org sls= [1396, 1397, 1398] site= 397
+1397 None n2-1397.plc2.org sls= [1397, 1398, 1399] site= 398
+1398 None n2-1398.plc2.org sls= [1398, 1399, 1400] site= 399
+1399 None n2-1399.plc2.org sls= [1399, 1400, 1401] site= 400
+1400 None n2-1400.plc2.org sls= [1400, 1401, 1402] site= 401
+1401 None n2-1401.plc2.org sls= [1401, 1402, 1403] site= 402
+1402 None n2-1402.plc2.org sls= [1402, 1403, 1404] site= 403
+1403 None n2-1403.plc2.org sls= [1403, 1404, 1405] site= 404
+1404 None n2-1404.plc2.org sls= [1404, 1405, 1406] site= 405
+1405 None n2-1405.plc2.org sls= [1405, 1406, 1407] site= 406
+1406 None n2-1406.plc2.org sls= [1406, 1407, 1408] site= 407
+1407 None n2-1407.plc2.org sls= [1407, 1408, 1409] site= 408
+1408 None n2-1408.plc2.org sls= [1408, 1409, 1410] site= 409
+1409 None n2-1409.plc2.org sls= [1409, 1410, 1411] site= 410
+1410 None n2-1410.plc2.org sls= [1410, 1411, 1412] site= 411
+1411 None n2-1411.plc2.org sls= [1411, 1412, 1413] site= 412
+1412 None n2-1412.plc2.org sls= [1412, 1413, 1414] site= 413
+1413 None n2-1413.plc2.org sls= [1413, 1414, 1415] site= 414
+1414 None n2-1414.plc2.org sls= [1414, 1415, 1416] site= 415
+1415 None n2-1415.plc2.org sls= [1415, 1416, 1417] site= 416
+1416 None n2-1416.plc2.org sls= [1416, 1417, 1418] site= 417
+1417 None n2-1417.plc2.org sls= [1417, 1418, 1419] site= 418
+1418 None n2-1418.plc2.org sls= [1418, 1419, 1420] site= 419
+1419 None n2-1419.plc2.org sls= [1419, 1420, 1421] site= 420
+1420 None n2-1420.plc2.org sls= [1420, 1421, 1422] site= 421
+1421 None n2-1421.plc2.org sls= [1421, 1422, 1423] site= 422
+1422 None n2-1422.plc2.org sls= [1422, 1423, 1424] site= 423
+1423 None n2-1423.plc2.org sls= [1423, 1424, 1425] site= 424
+1424 None n2-1424.plc2.org sls= [1424, 1425, 1426] site= 425
+1425 None n2-1425.plc2.org sls= [1425, 1426, 1427] site= 426
+1426 None n2-1426.plc2.org sls= [1426, 1427, 1428] site= 427
+1427 None n2-1427.plc2.org sls= [1427, 1428, 1429] site= 428
+1428 None n2-1428.plc2.org sls= [1428, 1429, 1430] site= 429
+1429 None n2-1429.plc2.org sls= [1429, 1430, 1431] site= 430
+1430 None n2-1430.plc2.org sls= [1430, 1431, 1432] site= 431
+1431 None n2-1431.plc2.org sls= [1431, 1432, 1433] site= 432
+1432 None n2-1432.plc2.org sls= [1432, 1433, 1434] site= 433
+1433 None n2-1433.plc2.org sls= [1433, 1434, 1435] site= 434
+1434 None n2-1434.plc2.org sls= [1434, 1435, 1436] site= 435
+1435 None n2-1435.plc2.org sls= [1435, 1436, 1437] site= 436
+1436 None n2-1436.plc2.org sls= [1436, 1437, 1438] site= 437
+1437 None n2-1437.plc2.org sls= [1437, 1438, 1439] site= 438
+1438 None n2-1438.plc2.org sls= [1438, 1439, 1440] site= 439
+1439 None n2-1439.plc2.org sls= [1439, 1440, 1441] site= 440
+1440 None n2-1440.plc2.org sls= [1440, 1441, 1442] site= 441
+1441 None n2-1441.plc2.org sls= [1441, 1442, 1443] site= 442
+1442 None n2-1442.plc2.org sls= [1442, 1443, 1444] site= 443
+1443 None n2-1443.plc2.org sls= [1443, 1444, 1445] site= 444
+1444 None n2-1444.plc2.org sls= [1444, 1445, 1446] site= 445
+1445 None n2-1445.plc2.org sls= [1445, 1446, 1447] site= 446
+1446 None n2-1446.plc2.org sls= [1446, 1447, 1448] site= 447
+1447 None n2-1447.plc2.org sls= [1447, 1448, 1449] site= 448
+1448 None n2-1448.plc2.org sls= [1448, 1449, 1450] site= 449
+1449 None n2-1449.plc2.org sls= [1449, 1450, 1451] site= 450
+1450 None n2-1450.plc2.org sls= [1450, 1451, 1452] site= 451
+1451 None n2-1451.plc2.org sls= [1451, 1452, 1453] site= 452
+1452 None n2-1452.plc2.org sls= [1452, 1453, 1454] site= 453
+1453 None n2-1453.plc2.org sls= [1453, 1454, 1455] site= 454
+1454 None n2-1454.plc2.org sls= [1454, 1455, 1456] site= 455
+1455 None n2-1455.plc2.org sls= [1455, 1456, 1457] site= 456
+1456 None n2-1456.plc2.org sls= [1456, 1457, 1458] site= 457
+1457 None n2-1457.plc2.org sls= [1457, 1458, 1459] site= 458
+1458 None n2-1458.plc2.org sls= [1458, 1459, 1460] site= 459
+1459 None n2-1459.plc2.org sls= [1459, 1460, 1461] site= 460
+1460 None n2-1460.plc2.org sls= [1460, 1461, 1462] site= 461
+1461 None n2-1461.plc2.org sls= [1461, 1462, 1463] site= 462
+1462 None n2-1462.plc2.org sls= [1462, 1463, 1464] site= 463
+1463 None n2-1463.plc2.org sls= [1463, 1464, 1465] site= 464
+1464 None n2-1464.plc2.org sls= [1464, 1465, 1466] site= 465
+1465 None n2-1465.plc2.org sls= [1465, 1466, 1467] site= 466
+1466 None n2-1466.plc2.org sls= [1466, 1467, 1468] site= 467
+1467 None n2-1467.plc2.org sls= [1467, 1468, 1469] site= 468
+1468 None n2-1468.plc2.org sls= [1468, 1469, 1470] site= 469
+1469 None n2-1469.plc2.org sls= [1469, 1470, 1471] site= 470
+1470 None n2-1470.plc2.org sls= [1470, 1471, 1472] site= 471
+1471 None n2-1471.plc2.org sls= [1471, 1472, 1473] site= 472
+1472 None n2-1472.plc2.org sls= [1472, 1473, 1474] site= 473
+1473 None n2-1473.plc2.org sls= [1473, 1474, 1475] site= 474
+1474 None n2-1474.plc2.org sls= [1474, 1475, 1476] site= 475
+1475 None n2-1475.plc2.org sls= [1475, 1476, 1477] site= 476
+1476 None n2-1476.plc2.org sls= [1476, 1477, 1478] site= 477
+1477 None n2-1477.plc2.org sls= [1477, 1478, 1479] site= 478
+1478 None n2-1478.plc2.org sls= [1478, 1479, 1480] site= 479
+1479 None n2-1479.plc2.org sls= [1479, 1480, 1481] site= 480
+1480 None n2-1480.plc2.org sls= [1480, 1481, 1482] site= 481
+1481 None n2-1481.plc2.org sls= [1481, 1482, 1483] site= 482
+1482 None n2-1482.plc2.org sls= [1482, 1483, 1484] site= 483
+1483 None n2-1483.plc2.org sls= [1483, 1484, 1485] site= 484
+1484 None n2-1484.plc2.org sls= [1484, 1485, 1486] site= 485
+1485 None n2-1485.plc2.org sls= [1485, 1486, 1487] site= 486
+1486 None n2-1486.plc2.org sls= [1486, 1487, 1488] site= 487
+1487 None n2-1487.plc2.org sls= [1487, 1488, 1489] site= 488
+1488 None n2-1488.plc2.org sls= [1488, 1489, 1490] site= 489
+1489 None n2-1489.plc2.org sls= [1489, 1490, 1491] site= 490
+1490 None n2-1490.plc2.org sls= [1490, 1491, 1492] site= 491
+1491 None n2-1491.plc2.org sls= [1491, 1492, 1493] site= 492
+1492 None n2-1492.plc2.org sls= [1492, 1493, 1494] site= 493
+1493 None n2-1493.plc2.org sls= [1493, 1494, 1495] site= 494
+1494 None n2-1494.plc2.org sls= [1494, 1495, 1496] site= 495
+1495 None n2-1495.plc2.org sls= [1495, 1496, 1497] site= 496
+1496 None n2-1496.plc2.org sls= [1496, 1497, 1498] site= 497
+1497 None n2-1497.plc2.org sls= [1497, 1498, 1499] site= 498
+1498 None n2-1498.plc2.org sls= [1498, 1499, 1500] site= 499
+1499 None n2-1499.plc2.org sls= [1499, 1500, 1501] site= 500
+1500 None n2-1500.plc2.org sls= [1500, 1501, 1502] site= 501
+1501 None n2-1501.plc2.org sls= [1501, 1502, 1503] site= 502
+1502 None n2-1502.plc2.org sls= [1502, 1503, 1504] site= 503
+1503 None n2-1503.plc2.org sls= [1503, 1504, 1505] site= 504
+1504 None n2-1504.plc2.org sls= [1504, 1505, 1506] site= 505
+1505 None n2-1505.plc2.org sls= [1505, 1506, 1507] site= 506
+1506 None n2-1506.plc2.org sls= [1506, 1507, 1508] site= 507
+1507 None n2-1507.plc2.org sls= [1507, 1508, 1509] site= 508
+1508 None n2-1508.plc2.org sls= [1508, 1509, 1510] site= 509
+1509 None n2-1509.plc2.org sls= [1509, 1510, 1511] site= 510
+1510 None n2-1510.plc2.org sls= [1510, 1511, 1512] site= 511
+1511 None n2-1511.plc2.org sls= [1511, 1512, 1513] site= 512
+1512 None n2-1512.plc2.org sls= [1512, 1513, 1514] site= 513
+1513 None n2-1513.plc2.org sls= [1513, 1514, 1515] site= 514
+1514 None n2-1514.plc2.org sls= [1514, 1515, 1516] site= 515
+1515 None n2-1515.plc2.org sls= [1515, 1516, 1517] site= 516
+1516 None n2-1516.plc2.org sls= [1516, 1517, 1518] site= 517
+1517 None n2-1517.plc2.org sls= [1517, 1518, 1519] site= 518
+1518 None n2-1518.plc2.org sls= [1518, 1519, 1520] site= 519
+1519 None n2-1519.plc2.org sls= [1519, 1520, 1521] site= 520
+1520 None n2-1520.plc2.org sls= [1520, 1521, 1522] site= 521
+1521 None n2-1521.plc2.org sls= [1521, 1522, 1523] site= 522
+1522 None n2-1522.plc2.org sls= [1522, 1523, 1524] site= 523
+1523 None n2-1523.plc2.org sls= [1523, 1524, 1525] site= 524
+1524 None n2-1524.plc2.org sls= [1524, 1525, 1526] site= 525
+1525 None n2-1525.plc2.org sls= [1525, 1526, 1527] site= 526
+1526 None n2-1526.plc2.org sls= [1526, 1527, 1528] site= 527
+1527 None n2-1527.plc2.org sls= [1527, 1528, 1529] site= 528
+1528 None n2-1528.plc2.org sls= [1528, 1529, 1530] site= 529
+1529 None n2-1529.plc2.org sls= [1529, 1530, 1531] site= 530
+1530 None n2-1530.plc2.org sls= [1530, 1531, 1532] site= 531
+1531 None n2-1531.plc2.org sls= [1531, 1532, 1533] site= 532
+1532 None n2-1532.plc2.org sls= [1532, 1533, 1534] site= 533
+1533 None n2-1533.plc2.org sls= [1533, 1534, 1535] site= 534
+1534 None n2-1534.plc2.org sls= [1534, 1535, 1536] site= 535
+1535 None n2-1535.plc2.org sls= [1535, 1536, 1537] site= 536
+1536 None n2-1536.plc2.org sls= [1536, 1537, 1538] site= 537
+1537 None n2-1537.plc2.org sls= [1537, 1538, 1539] site= 538
+1538 None n2-1538.plc2.org sls= [1538, 1539, 1540] site= 539
+1539 None n2-1539.plc2.org sls= [1539, 1540, 1541] site= 540
+1540 None n2-1540.plc2.org sls= [1540, 1541, 1542] site= 541
+1541 None n2-1541.plc2.org sls= [1541, 1542, 1543] site= 542
+1542 None n2-1542.plc2.org sls= [1542, 1543, 1544] site= 543
+1543 None n2-1543.plc2.org sls= [1543, 1544, 1545] site= 544
+1544 None n2-1544.plc2.org sls= [1544, 1545, 1546] site= 545
+1545 None n2-1545.plc2.org sls= [1545, 1546, 1547] site= 546
+1546 None n2-1546.plc2.org sls= [1546, 1547, 1548] site= 547
+1547 None n2-1547.plc2.org sls= [1547, 1548, 1549] site= 548
+1548 None n2-1548.plc2.org sls= [1548, 1549, 1550] site= 549
+1549 None n2-1549.plc2.org sls= [1549, 1550, 1551] site= 550
+1550 None n2-1550.plc2.org sls= [1550, 1551, 1552] site= 551
+1551 None n2-1551.plc2.org sls= [1551, 1552, 1553] site= 552
+1552 None n2-1552.plc2.org sls= [1552, 1553, 1554] site= 553
+1553 None n2-1553.plc2.org sls= [1553, 1554, 1555] site= 554
+1554 None n2-1554.plc2.org sls= [1554, 1555, 1556] site= 555
+1555 None n2-1555.plc2.org sls= [1555, 1556, 1557] site= 556
+1556 None n2-1556.plc2.org sls= [1556, 1557, 1558] site= 557
+1557 None n2-1557.plc2.org sls= [1557, 1558, 1559] site= 558
+1558 None n2-1558.plc2.org sls= [1558, 1559, 1560] site= 559
+1559 None n2-1559.plc2.org sls= [1559, 1560, 1561] site= 560
+1560 None n2-1560.plc2.org sls= [1560, 1561, 1562] site= 561
+1561 None n2-1561.plc2.org sls= [1561, 1562, 1563] site= 562
+1562 None n2-1562.plc2.org sls= [1562, 1563, 1564] site= 563
+1563 None n2-1563.plc2.org sls= [1563, 1564, 1565] site= 564
+1564 None n2-1564.plc2.org sls= [1564, 1565, 1566] site= 565
+1565 None n2-1565.plc2.org sls= [1565, 1566, 1567] site= 566
+1566 None n2-1566.plc2.org sls= [1566, 1567, 1568] site= 567
+1567 None n2-1567.plc2.org sls= [1567, 1568, 1569] site= 568
+1568 None n2-1568.plc2.org sls= [1568, 1569, 1570] site= 569
+1569 None n2-1569.plc2.org sls= [1569, 1570, 1571] site= 570
+1570 None n2-1570.plc2.org sls= [1570, 1571, 1572] site= 571
+1571 None n2-1571.plc2.org sls= [1571, 1572, 1573] site= 572
+1572 None n2-1572.plc2.org sls= [1572, 1573, 1574] site= 573
+1573 None n2-1573.plc2.org sls= [1573, 1574, 1575] site= 574
+1574 None n2-1574.plc2.org sls= [1574, 1575, 1576] site= 575
+1575 None n2-1575.plc2.org sls= [1575, 1576, 1577] site= 576
+1576 None n2-1576.plc2.org sls= [1576, 1577, 1578] site= 577
+1577 None n2-1577.plc2.org sls= [1577, 1578, 1579] site= 578
+1578 None n2-1578.plc2.org sls= [1578, 1579, 1580] site= 579
+1579 None n2-1579.plc2.org sls= [1579, 1580, 1581] site= 580
+1580 None n2-1580.plc2.org sls= [1580, 1581, 1582] site= 581
+1581 None n2-1581.plc2.org sls= [1581, 1582, 1583] site= 582
+1582 None n2-1582.plc2.org sls= [1582, 1583, 1584] site= 583
+1583 None n2-1583.plc2.org sls= [1583, 1584, 1585] site= 584
+1584 None n2-1584.plc2.org sls= [1584, 1585, 1586] site= 585
+1585 None n2-1585.plc2.org sls= [1585, 1586, 1587] site= 586
+1586 None n2-1586.plc2.org sls= [1586, 1587, 1588] site= 587
+1587 None n2-1587.plc2.org sls= [1587, 1588, 1589] site= 588
+1588 None n2-1588.plc2.org sls= [1588, 1589, 1590] site= 589
+1589 None n2-1589.plc2.org sls= [1589, 1590, 1591] site= 590
+1590 None n2-1590.plc2.org sls= [1590, 1591, 1592] site= 591
+1591 None n2-1591.plc2.org sls= [1591, 1592, 1593] site= 592
+1592 None n2-1592.plc2.org sls= [1592, 1593, 1594] site= 593
+1593 None n2-1593.plc2.org sls= [1593, 1594, 1595] site= 594
+1594 None n2-1594.plc2.org sls= [1594, 1595, 1596] site= 595
+1595 None n2-1595.plc2.org sls= [1595, 1596, 1597] site= 596
+1596 None n2-1596.plc2.org sls= [1596, 1597, 1598] site= 597
+1597 None n2-1597.plc2.org sls= [1597, 1598, 1599] site= 598
+1598 None n2-1598.plc2.org sls= [1598, 1599, 1600] site= 599
+1599 None n2-1599.plc2.org sls= [1599, 1600, 1601] site= 600
+1600 None n2-1600.plc2.org sls= [1600, 1601, 1602] site= 601
+1601 None n2-1601.plc2.org sls= [1601, 1602, 1603] site= 602
+1602 None n2-1602.plc2.org sls= [1602, 1603, 1604] site= 603
+1603 None n2-1603.plc2.org sls= [1603, 1604, 1605] site= 604
+1604 None n2-1604.plc2.org sls= [1604, 1605, 1606] site= 605
+1605 None n2-1605.plc2.org sls= [1605, 1606, 1607] site= 606
+1606 None n2-1606.plc2.org sls= [1606, 1607, 1608] site= 607
+1607 None n2-1607.plc2.org sls= [1607, 1608, 1609] site= 608
+1608 None n2-1608.plc2.org sls= [1608, 1609, 1610] site= 609
+1609 None n2-1609.plc2.org sls= [1609, 1610, 1611] site= 610
+1610 None n2-1610.plc2.org sls= [1610, 1611, 1612] site= 611
+1611 None n2-1611.plc2.org sls= [1611, 1612, 1613] site= 612
+1612 None n2-1612.plc2.org sls= [1612, 1613, 1614] site= 613
+1613 None n2-1613.plc2.org sls= [1613, 1614, 1615] site= 614
+1614 None n2-1614.plc2.org sls= [1614, 1615, 1616] site= 615
+1615 None n2-1615.plc2.org sls= [1615, 1616, 1617] site= 616
+1616 None n2-1616.plc2.org sls= [1616, 1617, 1618] site= 617
+1617 None n2-1617.plc2.org sls= [1617, 1618, 1619] site= 618
+1618 None n2-1618.plc2.org sls= [1618, 1619, 1620] site= 619
+1619 None n2-1619.plc2.org sls= [1619, 1620, 1621] site= 620
+1620 None n2-1620.plc2.org sls= [1620, 1621, 1622] site= 621
+1621 None n2-1621.plc2.org sls= [1621, 1622, 1623] site= 622
+1622 None n2-1622.plc2.org sls= [1622, 1623, 1624] site= 623
+1623 None n2-1623.plc2.org sls= [1623, 1624, 1625] site= 624
+1624 None n2-1624.plc2.org sls= [1624, 1625, 1626] site= 625
+1625 None n2-1625.plc2.org sls= [1625, 1626, 1627] site= 626
+1626 None n2-1626.plc2.org sls= [1626, 1627, 1628] site= 627
+1627 None n2-1627.plc2.org sls= [1627, 1628, 1629] site= 628
+1628 None n2-1628.plc2.org sls= [1628, 1629, 1630] site= 629
+1629 None n2-1629.plc2.org sls= [1629, 1630, 1631] site= 630
+1630 None n2-1630.plc2.org sls= [1630, 1631, 1632] site= 631
+1631 None n2-1631.plc2.org sls= [1631, 1632, 1633] site= 632
+1632 None n2-1632.plc2.org sls= [1632, 1633, 1634] site= 633
+1633 None n2-1633.plc2.org sls= [1633, 1634, 1635] site= 634
+1634 None n2-1634.plc2.org sls= [1634, 1635, 1636] site= 635
+1635 None n2-1635.plc2.org sls= [1635, 1636, 1637] site= 636
+1636 None n2-1636.plc2.org sls= [1636, 1637, 1638] site= 637
+1637 None n2-1637.plc2.org sls= [1637, 1638, 1639] site= 638
+1638 None n2-1638.plc2.org sls= [1638, 1639, 1640] site= 639
+1639 None n2-1639.plc2.org sls= [1639, 1640, 1641] site= 640
+1640 None n2-1640.plc2.org sls= [1640, 1641, 1642] site= 641
+1641 None n2-1641.plc2.org sls= [1641, 1642, 1643] site= 642
+1642 None n2-1642.plc2.org sls= [1642, 1643, 1644] site= 643
+1643 None n2-1643.plc2.org sls= [1643, 1644, 1645] site= 644
+1644 None n2-1644.plc2.org sls= [1644, 1645, 1646] site= 645
+1645 None n2-1645.plc2.org sls= [1645, 1646, 1647] site= 646
+1646 None n2-1646.plc2.org sls= [1646, 1647, 1648] site= 647
+1647 None n2-1647.plc2.org sls= [1647, 1648, 1649] site= 648
+1648 None n2-1648.plc2.org sls= [1648, 1649, 1650] site= 649
+1649 None n2-1649.plc2.org sls= [1649, 1650, 1651] site= 650
+1650 None n2-1650.plc2.org sls= [1650, 1651, 1652] site= 651
+1651 None n2-1651.plc2.org sls= [1651, 1652, 1653] site= 652
+1652 None n2-1652.plc2.org sls= [1652, 1653, 1654] site= 653
+1653 None n2-1653.plc2.org sls= [1653, 1654, 1655] site= 654
+1654 None n2-1654.plc2.org sls= [1654, 1655, 1656] site= 655
+1655 None n2-1655.plc2.org sls= [1655, 1656, 1657] site= 656
+1656 None n2-1656.plc2.org sls= [1656, 1657, 1658] site= 657
+1657 None n2-1657.plc2.org sls= [1657, 1658, 1659] site= 658
+1658 None n2-1658.plc2.org sls= [1658, 1659, 1660] site= 659
+1659 None n2-1659.plc2.org sls= [1659, 1660, 1661] site= 660
+1660 None n2-1660.plc2.org sls= [1660, 1661, 1662] site= 661
+1661 None n2-1661.plc2.org sls= [1661, 1662, 1663] site= 662
+1662 None n2-1662.plc2.org sls= [1662, 1663, 1664] site= 663
+1663 None n2-1663.plc2.org sls= [1663, 1664, 1665] site= 664
+1664 None n2-1664.plc2.org sls= [1664, 1665, 1666] site= 665
+1665 None n2-1665.plc2.org sls= [1665, 1666, 1667] site= 666
+1666 None n2-1666.plc2.org sls= [1666, 1667, 1668] site= 667
+1667 None n2-1667.plc2.org sls= [1667, 1668, 1669] site= 668
+1668 None n2-1668.plc2.org sls= [1668, 1669, 1670] site= 669
+1669 None n2-1669.plc2.org sls= [1669, 1670, 1671] site= 670
+1670 None n2-1670.plc2.org sls= [1670, 1671, 1672] site= 671
+1671 None n2-1671.plc2.org sls= [1671, 1672, 1673] site= 672
+1672 None n2-1672.plc2.org sls= [1672, 1673, 1674] site= 673
+1673 None n2-1673.plc2.org sls= [1673, 1674, 1675] site= 674
+1674 None n2-1674.plc2.org sls= [1674, 1675, 1676] site= 675
+1675 None n2-1675.plc2.org sls= [1675, 1676, 1677] site= 676
+1676 None n2-1676.plc2.org sls= [1676, 1677, 1678] site= 677
+1677 None n2-1677.plc2.org sls= [1677, 1678, 1679] site= 678
+1678 None n2-1678.plc2.org sls= [1678, 1679, 1680] site= 679
+1679 None n2-1679.plc2.org sls= [1679, 1680, 1681] site= 680
+1680 None n2-1680.plc2.org sls= [1680, 1681, 1682] site= 681
+1681 None n2-1681.plc2.org sls= [1681, 1682, 1683] site= 682
+1682 None n2-1682.plc2.org sls= [1682, 1683, 1684] site= 683
+1683 None n2-1683.plc2.org sls= [1683, 1684, 1685] site= 684
+1684 None n2-1684.plc2.org sls= [1684, 1685, 1686] site= 685
+1685 None n2-1685.plc2.org sls= [1685, 1686, 1687] site= 686
+1686 None n2-1686.plc2.org sls= [1686, 1687, 1688] site= 687
+1687 None n2-1687.plc2.org sls= [1687, 1688, 1689] site= 688
+1688 None n2-1688.plc2.org sls= [1688, 1689, 1690] site= 689
+1689 None n2-1689.plc2.org sls= [1689, 1690, 1691] site= 690
+1690 None n2-1690.plc2.org sls= [1690, 1691, 1692] site= 691
+1691 None n2-1691.plc2.org sls= [1691, 1692, 1693] site= 692
+1692 None n2-1692.plc2.org sls= [1692, 1693, 1694] site= 693
+1693 None n2-1693.plc2.org sls= [1693, 1694, 1695] site= 694
+1694 None n2-1694.plc2.org sls= [1694, 1695, 1696] site= 695
+1695 None n2-1695.plc2.org sls= [1695, 1696, 1697] site= 696
+1696 None n2-1696.plc2.org sls= [1696, 1697, 1698] site= 697
+1697 None n2-1697.plc2.org sls= [1697, 1698, 1699] site= 698
+1698 None n2-1698.plc2.org sls= [1698, 1699, 1700] site= 699
+1699 None n2-1699.plc2.org sls= [1699, 1700, 1701] site= 700
+1700 None n2-1700.plc2.org sls= [1700, 1701, 1702] site= 701
+1701 None n2-1701.plc2.org sls= [1701, 1702, 1703] site= 702
+1702 None n2-1702.plc2.org sls= [1702, 1703, 1704] site= 703
+1703 None n2-1703.plc2.org sls= [1703, 1704, 1705] site= 704
+1704 None n2-1704.plc2.org sls= [1704, 1705, 1706] site= 705
+1705 None n2-1705.plc2.org sls= [1705, 1706, 1707] site= 706
+1706 None n2-1706.plc2.org sls= [1706, 1707, 1708] site= 707
+1707 None n2-1707.plc2.org sls= [1707, 1708, 1709] site= 708
+1708 None n2-1708.plc2.org sls= [1708, 1709, 1710] site= 709
+1709 None n2-1709.plc2.org sls= [1709, 1710, 1711] site= 710
+1710 None n2-1710.plc2.org sls= [1710, 1711, 1712] site= 711
+1711 None n2-1711.plc2.org sls= [1711, 1712, 1713] site= 712
+1712 None n2-1712.plc2.org sls= [1712, 1713, 1714] site= 713
+1713 None n2-1713.plc2.org sls= [1713, 1714, 1715] site= 714
+1714 None n2-1714.plc2.org sls= [1714, 1715, 1716] site= 715
+1715 None n2-1715.plc2.org sls= [1715, 1716, 1717] site= 716
+1716 None n2-1716.plc2.org sls= [1716, 1717, 1718] site= 717
+1717 None n2-1717.plc2.org sls= [1717, 1718, 1719] site= 718
+1718 None n2-1718.plc2.org sls= [1718, 1719, 1720] site= 719
+1719 None n2-1719.plc2.org sls= [1719, 1720, 1721] site= 720
+1720 None n2-1720.plc2.org sls= [1720, 1721, 1722] site= 721
+1721 None n2-1721.plc2.org sls= [1721, 1722, 1723] site= 722
+1722 None n2-1722.plc2.org sls= [1722, 1723, 1724] site= 723
+1723 None n2-1723.plc2.org sls= [1723, 1724, 1725] site= 724
+1724 None n2-1724.plc2.org sls= [1724, 1725, 1726] site= 725
+1725 None n2-1725.plc2.org sls= [1725, 1726, 1727] site= 726
+1726 None n2-1726.plc2.org sls= [1726, 1727, 1728] site= 727
+1727 None n2-1727.plc2.org sls= [1727, 1728, 1729] site= 728
+1728 None n2-1728.plc2.org sls= [1728, 1729, 1730] site= 729
+1729 None n2-1729.plc2.org sls= [1729, 1730, 1731] site= 730
+1730 None n2-1730.plc2.org sls= [1730, 1731, 1732] site= 731
+1731 None n2-1731.plc2.org sls= [1731, 1732, 1733] site= 732
+1732 None n2-1732.plc2.org sls= [1732, 1733, 1734] site= 733
+1733 None n2-1733.plc2.org sls= [1733, 1734, 1735] site= 734
+1734 None n2-1734.plc2.org sls= [1734, 1735, 1736] site= 735
+1735 None n2-1735.plc2.org sls= [1735, 1736, 1737] site= 736
+1736 None n2-1736.plc2.org sls= [1736, 1737, 1738] site= 737
+1737 None n2-1737.plc2.org sls= [1737, 1738, 1739] site= 738
+1738 None n2-1738.plc2.org sls= [1738, 1739, 1740] site= 739
+1739 None n2-1739.plc2.org sls= [1739, 1740, 1741] site= 740
+1740 None n2-1740.plc2.org sls= [1740, 1741, 1742] site= 741
+1741 None n2-1741.plc2.org sls= [1741, 1742, 1743] site= 742
+1742 None n2-1742.plc2.org sls= [1742, 1743, 1744] site= 743
+1743 None n2-1743.plc2.org sls= [1743, 1744, 1745] site= 744
+1744 None n2-1744.plc2.org sls= [1744, 1745, 1746] site= 745
+1745 None n2-1745.plc2.org sls= [1745, 1746, 1747] site= 746
+1746 None n2-1746.plc2.org sls= [1746, 1747, 1748] site= 747
+1747 None n2-1747.plc2.org sls= [1747, 1748, 1749] site= 748
+1748 None n2-1748.plc2.org sls= [1748, 1749, 1750] site= 749
+1749 None n2-1749.plc2.org sls= [1749, 1750, 1751] site= 750
+1750 None n2-1750.plc2.org sls= [1750, 1751, 1752] site= 751
+1751 None n2-1751.plc2.org sls= [1751, 1752, 1753] site= 752
+1752 None n2-1752.plc2.org sls= [1752, 1753, 1754] site= 753
+1753 None n2-1753.plc2.org sls= [1753, 1754, 1755] site= 754
+1754 None n2-1754.plc2.org sls= [1754, 1755, 1756] site= 755
+1755 None n2-1755.plc2.org sls= [1755, 1756, 1757] site= 756
+1756 None n2-1756.plc2.org sls= [1756, 1757, 1758] site= 757
+1757 None n2-1757.plc2.org sls= [1757, 1758, 1759] site= 758
+1758 None n2-1758.plc2.org sls= [1758, 1759, 1760] site= 759
+1759 None n2-1759.plc2.org sls= [1759, 1760, 1761] site= 760
+1760 None n2-1760.plc2.org sls= [1760, 1761, 1762] site= 761
+1761 None n2-1761.plc2.org sls= [1761, 1762, 1763] site= 762
+1762 None n2-1762.plc2.org sls= [1762, 1763, 1764] site= 763
+1763 None n2-1763.plc2.org sls= [1763, 1764, 1765] site= 764
+1764 None n2-1764.plc2.org sls= [1764, 1765, 1766] site= 765
+1765 None n2-1765.plc2.org sls= [1765, 1766, 1767] site= 766
+1766 None n2-1766.plc2.org sls= [1766, 1767, 1768] site= 767
+1767 None n2-1767.plc2.org sls= [1767, 1768, 1769] site= 768
+1768 None n2-1768.plc2.org sls= [1768, 1769, 1770] site= 769
+1769 None n2-1769.plc2.org sls= [1769, 1770, 1771] site= 770
+1770 None n2-1770.plc2.org sls= [1770, 1771, 1772] site= 771
+1771 None n2-1771.plc2.org sls= [1771, 1772, 1773] site= 772
+1772 None n2-1772.plc2.org sls= [1772, 1773, 1774] site= 773
+1773 None n2-1773.plc2.org sls= [1773, 1774, 1775] site= 774
+1774 None n2-1774.plc2.org sls= [1774, 1775, 1776] site= 775
+1775 None n2-1775.plc2.org sls= [1775, 1776, 1777] site= 776
+1776 None n2-1776.plc2.org sls= [1776, 1777, 1778] site= 777
+1777 None n2-1777.plc2.org sls= [1777, 1778, 1779] site= 778
+1778 None n2-1778.plc2.org sls= [1778, 1779, 1780] site= 779
+1779 None n2-1779.plc2.org sls= [1779, 1780, 1781] site= 780
+1780 None n2-1780.plc2.org sls= [1780, 1781, 1782] site= 781
+1781 None n2-1781.plc2.org sls= [1781, 1782, 1783] site= 782
+1782 None n2-1782.plc2.org sls= [1782, 1783, 1784] site= 783
+1783 None n2-1783.plc2.org sls= [1783, 1784, 1785] site= 784
+1784 None n2-1784.plc2.org sls= [1784, 1785, 1786] site= 785
+1785 None n2-1785.plc2.org sls= [1785, 1786, 1787] site= 786
+1786 None n2-1786.plc2.org sls= [1786, 1787, 1788] site= 787
+1787 None n2-1787.plc2.org sls= [1787, 1788, 1789] site= 788
+1788 None n2-1788.plc2.org sls= [1788, 1789, 1790] site= 789
+1789 None n2-1789.plc2.org sls= [1789, 1790, 1791] site= 790
+1790 None n2-1790.plc2.org sls= [1790, 1791, 1792] site= 791
+1791 None n2-1791.plc2.org sls= [1791, 1792, 1793] site= 792
+1792 None n2-1792.plc2.org sls= [1792, 1793, 1794] site= 793
+1793 None n2-1793.plc2.org sls= [1793, 1794, 1795] site= 794
+1794 None n2-1794.plc2.org sls= [1794, 1795, 1796] site= 795
+1795 None n2-1795.plc2.org sls= [1795, 1796, 1797] site= 796
+1796 None n2-1796.plc2.org sls= [1796, 1797, 1798] site= 797
+1797 None n2-1797.plc2.org sls= [1797, 1798, 1799] site= 798
+1798 None n2-1798.plc2.org sls= [1798, 1799, 1800] site= 799
+1799 None n2-1799.plc2.org sls= [1799, 1800, 1801] site= 800
+1800 None n2-1800.plc2.org sls= [1800, 1801, 1802] site= 801
+1801 None n2-1801.plc2.org sls= [1801, 1802, 1803] site= 802
+1802 None n2-1802.plc2.org sls= [1802, 1803, 1804] site= 803
+1803 None n2-1803.plc2.org sls= [1803, 1804, 1805] site= 804
+1804 None n2-1804.plc2.org sls= [1804, 1805, 1806] site= 805
+1805 None n2-1805.plc2.org sls= [1805, 1806, 1807] site= 806
+1806 None n2-1806.plc2.org sls= [1806, 1807, 1808] site= 807
+1807 None n2-1807.plc2.org sls= [1807, 1808, 1809] site= 808
+1808 None n2-1808.plc2.org sls= [1808, 1809, 1810] site= 809
+1809 None n2-1809.plc2.org sls= [1809, 1810, 1811] site= 810
+1810 None n2-1810.plc2.org sls= [1810, 1811, 1812] site= 811
+1811 None n2-1811.plc2.org sls= [1811, 1812, 1813] site= 812
+1812 None n2-1812.plc2.org sls= [1812, 1813, 1814] site= 813
+1813 None n2-1813.plc2.org sls= [1813, 1814, 1815] site= 814
+1814 None n2-1814.plc2.org sls= [1814, 1815, 1816] site= 815
+1815 None n2-1815.plc2.org sls= [1815, 1816, 1817] site= 816
+1816 None n2-1816.plc2.org sls= [1816, 1817, 1818] site= 817
+1817 None n2-1817.plc2.org sls= [1817, 1818, 1819] site= 818
+1818 None n2-1818.plc2.org sls= [1818, 1819, 1820] site= 819
+1819 None n2-1819.plc2.org sls= [1819, 1820, 1821] site= 820
+1820 None n2-1820.plc2.org sls= [1820, 1821, 1822] site= 821
+1821 None n2-1821.plc2.org sls= [1821, 1822, 1823] site= 822
+1822 None n2-1822.plc2.org sls= [1822, 1823, 1824] site= 823
+1823 None n2-1823.plc2.org sls= [1823, 1824, 1825] site= 824
+1824 None n2-1824.plc2.org sls= [1824, 1825, 1826] site= 825
+1825 None n2-1825.plc2.org sls= [1825, 1826, 1827] site= 826
+1826 None n2-1826.plc2.org sls= [1826, 1827, 1828] site= 827
+1827 None n2-1827.plc2.org sls= [1827, 1828, 1829] site= 828
+1828 None n2-1828.plc2.org sls= [1828, 1829, 1830] site= 829
+1829 None n2-1829.plc2.org sls= [1829, 1830, 1831] site= 830
+1830 None n2-1830.plc2.org sls= [1830, 1831, 1832] site= 831
+1831 None n2-1831.plc2.org sls= [1831, 1832, 1833] site= 832
+1832 None n2-1832.plc2.org sls= [1832, 1833, 1834] site= 833
+1833 None n2-1833.plc2.org sls= [1833, 1834, 1835] site= 834
+1834 None n2-1834.plc2.org sls= [1834, 1835, 1836] site= 835
+1835 None n2-1835.plc2.org sls= [1835, 1836, 1837] site= 836
+1836 None n2-1836.plc2.org sls= [1836, 1837, 1838] site= 837
+1837 None n2-1837.plc2.org sls= [1837, 1838, 1839] site= 838
+1838 None n2-1838.plc2.org sls= [1838, 1839, 1840] site= 839
+1839 None n2-1839.plc2.org sls= [1839, 1840, 1841] site= 840
+1840 None n2-1840.plc2.org sls= [1840, 1841, 1842] site= 841
+1841 None n2-1841.plc2.org sls= [1841, 1842, 1843] site= 842
+1842 None n2-1842.plc2.org sls= [1842, 1843, 1844] site= 843
+1843 None n2-1843.plc2.org sls= [1843, 1844, 1845] site= 844
+1844 None n2-1844.plc2.org sls= [1844, 1845, 1846] site= 845
+1845 None n2-1845.plc2.org sls= [1845, 1846, 1847] site= 846
+1846 None n2-1846.plc2.org sls= [1846, 1847, 1848] site= 847
+1847 None n2-1847.plc2.org sls= [1847, 1848, 1849] site= 848
+1848 None n2-1848.plc2.org sls= [1848, 1849, 1850] site= 849
+1849 None n2-1849.plc2.org sls= [1849, 1850, 1851] site= 850
+1850 None n2-1850.plc2.org sls= [1850, 1851, 1852] site= 851
+1851 None n2-1851.plc2.org sls= [1851, 1852, 1853] site= 852
+1852 None n2-1852.plc2.org sls= [1852, 1853, 1854] site= 853
+1853 None n2-1853.plc2.org sls= [1853, 1854, 1855] site= 854
+1854 None n2-1854.plc2.org sls= [1854, 1855, 1856] site= 855
+1855 None n2-1855.plc2.org sls= [1855, 1856, 1857] site= 856
+1856 None n2-1856.plc2.org sls= [1856, 1857, 1858] site= 857
+1857 None n2-1857.plc2.org sls= [1857, 1858, 1859] site= 858
+1858 None n2-1858.plc2.org sls= [1858, 1859, 1860] site= 859
+1859 None n2-1859.plc2.org sls= [1859, 1860, 1861] site= 860
+1860 None n2-1860.plc2.org sls= [1860, 1861, 1862] site= 861
+1861 None n2-1861.plc2.org sls= [1861, 1862, 1863] site= 862
+1862 None n2-1862.plc2.org sls= [1862, 1863, 1864] site= 863
+1863 None n2-1863.plc2.org sls= [1863, 1864, 1865] site= 864
+1864 None n2-1864.plc2.org sls= [1864, 1865, 1866] site= 865
+1865 None n2-1865.plc2.org sls= [1865, 1866, 1867] site= 866
+1866 None n2-1866.plc2.org sls= [1866, 1867, 1868] site= 867
+1867 None n2-1867.plc2.org sls= [1867, 1868, 1869] site= 868
+1868 None n2-1868.plc2.org sls= [1868, 1869, 1870] site= 869
+1869 None n2-1869.plc2.org sls= [1869, 1870, 1871] site= 870
+1870 None n2-1870.plc2.org sls= [1870, 1871, 1872] site= 871
+1871 None n2-1871.plc2.org sls= [1871, 1872, 1873] site= 872
+1872 None n2-1872.plc2.org sls= [1872, 1873, 1874] site= 873
+1873 None n2-1873.plc2.org sls= [1873, 1874, 1875] site= 874
+1874 None n2-1874.plc2.org sls= [1874, 1875, 1876] site= 875
+1875 None n2-1875.plc2.org sls= [1875, 1876, 1877] site= 876
+1876 None n2-1876.plc2.org sls= [1876, 1877, 1878] site= 877
+1877 None n2-1877.plc2.org sls= [1877, 1878, 1879] site= 878
+1878 None n2-1878.plc2.org sls= [1878, 1879, 1880] site= 879
+1879 None n2-1879.plc2.org sls= [1879, 1880, 1881] site= 880
+1880 None n2-1880.plc2.org sls= [1880, 1881, 1882] site= 881
+1881 None n2-1881.plc2.org sls= [1881, 1882, 1883] site= 882
+1882 None n2-1882.plc2.org sls= [1882, 1883, 1884] site= 883
+1883 None n2-1883.plc2.org sls= [1883, 1884, 1885] site= 884
+1884 None n2-1884.plc2.org sls= [1884, 1885, 1886] site= 885
+1885 None n2-1885.plc2.org sls= [1885, 1886, 1887] site= 886
+1886 None n2-1886.plc2.org sls= [1886, 1887, 1888] site= 887
+1887 None n2-1887.plc2.org sls= [1887, 1888, 1889] site= 888
+1888 None n2-1888.plc2.org sls= [1888, 1889, 1890] site= 889
+1889 None n2-1889.plc2.org sls= [1889, 1890, 1891] site= 890
+1890 None n2-1890.plc2.org sls= [1890, 1891, 1892] site= 891
+1891 None n2-1891.plc2.org sls= [1891, 1892, 1893] site= 892
+1892 None n2-1892.plc2.org sls= [1892, 1893, 1894] site= 893
+1893 None n2-1893.plc2.org sls= [1893, 1894, 1895] site= 894
+1894 None n2-1894.plc2.org sls= [1894, 1895, 1896] site= 895
+1895 None n2-1895.plc2.org sls= [1895, 1896, 1897] site= 896
+1896 None n2-1896.plc2.org sls= [1896, 1897, 1898] site= 897
+1897 None n2-1897.plc2.org sls= [1897, 1898, 1899] site= 898
+1898 None n2-1898.plc2.org sls= [1898, 1899, 1900] site= 899
+1899 None n2-1899.plc2.org sls= [1899, 1900, 1901] site= 900
+1900 None n2-1900.plc2.org sls= [1900, 1901, 1902] site= 901
+1901 None n2-1901.plc2.org sls= [1901, 1902, 1903] site= 902
+1902 None n2-1902.plc2.org sls= [1902, 1903, 1904] site= 903
+1903 None n2-1903.plc2.org sls= [1903, 1904, 1905] site= 904
+1904 None n2-1904.plc2.org sls= [1904, 1905, 1906] site= 905
+1905 None n2-1905.plc2.org sls= [1905, 1906, 1907] site= 906
+1906 None n2-1906.plc2.org sls= [1906, 1907, 1908] site= 907
+1907 None n2-1907.plc2.org sls= [1907, 1908, 1909] site= 908
+1908 None n2-1908.plc2.org sls= [1908, 1909, 1910] site= 909
+1909 None n2-1909.plc2.org sls= [1909, 1910, 1911] site= 910
+1910 None n2-1910.plc2.org sls= [1910, 1911, 1912] site= 911
+1911 None n2-1911.plc2.org sls= [1911, 1912, 1913] site= 912
+1912 None n2-1912.plc2.org sls= [1912, 1913, 1914] site= 913
+1913 None n2-1913.plc2.org sls= [1913, 1914, 1915] site= 914
+1914 None n2-1914.plc2.org sls= [1914, 1915, 1916] site= 915
+1915 None n2-1915.plc2.org sls= [1915, 1916, 1917] site= 916
+1916 None n2-1916.plc2.org sls= [1916, 1917, 1918] site= 917
+1917 None n2-1917.plc2.org sls= [1917, 1918, 1919] site= 918
+1918 None n2-1918.plc2.org sls= [1918, 1919, 1920] site= 919
+1919 None n2-1919.plc2.org sls= [1919, 1920, 1921] site= 920
+1920 None n2-1920.plc2.org sls= [1920, 1921, 1922] site= 921
+1921 None n2-1921.plc2.org sls= [1921, 1922, 1923] site= 922
+1922 None n2-1922.plc2.org sls= [1922, 1923, 1924] site= 923
+1923 None n2-1923.plc2.org sls= [1923, 1924, 1925] site= 924
+1924 None n2-1924.plc2.org sls= [1924, 1925, 1926] site= 925
+1925 None n2-1925.plc2.org sls= [1925, 1926, 1927] site= 926
+1926 None n2-1926.plc2.org sls= [1926, 1927, 1928] site= 927
+1927 None n2-1927.plc2.org sls= [1927, 1928, 1929] site= 928
+1928 None n2-1928.plc2.org sls= [1928, 1929, 1930] site= 929
+1929 None n2-1929.plc2.org sls= [1929, 1930, 1931] site= 930
+1930 None n2-1930.plc2.org sls= [1930, 1931, 1932] site= 931
+1931 None n2-1931.plc2.org sls= [1931, 1932, 1933] site= 932
+1932 None n2-1932.plc2.org sls= [1932, 1933, 1934] site= 933
+1933 None n2-1933.plc2.org sls= [1933, 1934, 1935] site= 934
+1934 None n2-1934.plc2.org sls= [1934, 1935, 1936] site= 935
+1935 None n2-1935.plc2.org sls= [1935, 1936, 1937] site= 936
+1936 None n2-1936.plc2.org sls= [1936, 1937, 1938] site= 937
+1937 None n2-1937.plc2.org sls= [1937, 1938, 1939] site= 938
+1938 None n2-1938.plc2.org sls= [1938, 1939, 1940] site= 939
+1939 None n2-1939.plc2.org sls= [1939, 1940, 1941] site= 940
+1940 None n2-1940.plc2.org sls= [1940, 1941, 1942] site= 941
+1941 None n2-1941.plc2.org sls= [1941, 1942, 1943] site= 942
+1942 None n2-1942.plc2.org sls= [1942, 1943, 1944] site= 943
+1943 None n2-1943.plc2.org sls= [1943, 1944, 1945] site= 944
+1944 None n2-1944.plc2.org sls= [1944, 1945, 1946] site= 945
+1945 None n2-1945.plc2.org sls= [1945, 1946, 1947] site= 946
+1946 None n2-1946.plc2.org sls= [1946, 1947, 1948] site= 947
+1947 None n2-1947.plc2.org sls= [1947, 1948, 1949] site= 948
+1948 None n2-1948.plc2.org sls= [1948, 1949, 1950] site= 949
+1949 None n2-1949.plc2.org sls= [1949, 1950, 1951] site= 950
+1950 None n2-1950.plc2.org sls= [1950, 1951, 1952] site= 951
+1951 None n2-1951.plc2.org sls= [1951, 1952, 1953] site= 952
+1952 None n2-1952.plc2.org sls= [1952, 1953, 1954] site= 953
+1953 None n2-1953.plc2.org sls= [1953, 1954, 1955] site= 954
+1954 None n2-1954.plc2.org sls= [1954, 1955, 1956] site= 955
+1955 None n2-1955.plc2.org sls= [1955, 1956, 1957] site= 956
+1956 None n2-1956.plc2.org sls= [1956, 1957, 1958] site= 957
+1957 None n2-1957.plc2.org sls= [1957, 1958, 1959] site= 958
+1958 None n2-1958.plc2.org sls= [1958, 1959, 1960] site= 959
+1959 None n2-1959.plc2.org sls= [1959, 1960, 1961] site= 960
+1960 None n2-1960.plc2.org sls= [1960, 1961, 1962] site= 961
+1961 None n2-1961.plc2.org sls= [1961, 1962, 1963] site= 962
+1962 None n2-1962.plc2.org sls= [1962, 1963, 1964] site= 963
+1963 None n2-1963.plc2.org sls= [1963, 1964, 1965] site= 964
+1964 None n2-1964.plc2.org sls= [1964, 1965, 1966] site= 965
+1965 None n2-1965.plc2.org sls= [1965, 1966, 1967] site= 966
+1966 None n2-1966.plc2.org sls= [1966, 1967, 1968] site= 967
+1967 None n2-1967.plc2.org sls= [1967, 1968, 1969] site= 968
+1968 None n2-1968.plc2.org sls= [1968, 1969, 1970] site= 969
+1969 None n2-1969.plc2.org sls= [1969, 1970, 1971] site= 970
+1970 None n2-1970.plc2.org sls= [1970, 1971, 1972] site= 971
+1971 None n2-1971.plc2.org sls= [1971, 1972, 1973] site= 972
+1972 None n2-1972.plc2.org sls= [1972, 1973, 1974] site= 973
+1973 None n2-1973.plc2.org sls= [1973, 1974, 1975] site= 974
+1974 None n2-1974.plc2.org sls= [1974, 1975, 1976] site= 975
+1975 None n2-1975.plc2.org sls= [1975, 1976, 1977] site= 976
+1976 None n2-1976.plc2.org sls= [1976, 1977, 1978] site= 977
+1977 None n2-1977.plc2.org sls= [1977, 1978, 1979] site= 978
+1978 None n2-1978.plc2.org sls= [1978, 1979, 1980] site= 979
+1979 None n2-1979.plc2.org sls= [1979, 1980, 1981] site= 980
+1980 None n2-1980.plc2.org sls= [1980, 1981, 1982] site= 981
+1981 None n2-1981.plc2.org sls= [1981, 1982, 1983] site= 982
+1982 None n2-1982.plc2.org sls= [1982, 1983, 1984] site= 983
+1983 None n2-1983.plc2.org sls= [1983, 1984, 1985] site= 984
+1984 None n2-1984.plc2.org sls= [1984, 1985, 1986] site= 985
+1985 None n2-1985.plc2.org sls= [1985, 1986, 1987] site= 986
+1986 None n2-1986.plc2.org sls= [1986, 1987, 1988] site= 987
+1987 None n2-1987.plc2.org sls= [1987, 1988, 1989] site= 988
+1988 None n2-1988.plc2.org sls= [1988, 1989, 1990] site= 989
+1989 None n2-1989.plc2.org sls= [1989, 1990, 1991] site= 990
+1990 None n2-1990.plc2.org sls= [1990, 1991, 1992] site= 991
+1991 None n2-1991.plc2.org sls= [1991, 1992, 1993] site= 992
+1992 None n2-1992.plc2.org sls= [1992, 1993, 1994] site= 993
+1993 None n2-1993.plc2.org sls= [1993, 1994, 1995] site= 994
+1994 None n2-1994.plc2.org sls= [1994, 1995, 1996] site= 995
+1995 None n2-1995.plc2.org sls= [1995, 1996, 1997] site= 996
+1996 None n2-1996.plc2.org sls= [1996, 1997, 1998] site= 997
+1997 None n2-1997.plc2.org sls= [1997, 1998, 1999] site= 998
+1998 None n2-1998.plc2.org sls= [1998, 1999, 2000] site= 999
+1999 None n2-1999.plc2.org sls= [1999, 2000, 2001] site= 1000
+2000 None n2-2000.plc2.org sls= [2000, 2001, 2002] site= 1001
+2001 None n2-2001.plc2.org sls= [2001, 2002] site= 2
+2002 None n2-2002.plc2.org sls= [2002] site= 3
+2003 None n2-2003.plc2.org sls= [] site= 4
+2004 None n2-2004.plc2.org sls= [] site= 5
+2005 None n2-2005.plc2.org sls= [] site= 6
+2006 None n2-2006.plc2.org sls= [] site= 7
+2007 None n2-2007.plc2.org sls= [] site= 8
+2008 None n2-2008.plc2.org sls= [] site= 9
+2009 None n2-2009.plc2.org sls= [] site= 10
+2010 None n2-2010.plc2.org sls= [] site= 11
+2011 None n2-2011.plc2.org sls= [] site= 12
+2012 None n2-2012.plc2.org sls= [] site= 13
+2013 None n2-2013.plc2.org sls= [] site= 14
+2014 None n2-2014.plc2.org sls= [] site= 15
+2015 None n2-2015.plc2.org sls= [] site= 16
+2016 None n2-2016.plc2.org sls= [] site= 17
+2017 None n2-2017.plc2.org sls= [] site= 18
+2018 None n2-2018.plc2.org sls= [] site= 19
+2019 None n2-2019.plc2.org sls= [] site= 20
+2020 None n2-2020.plc2.org sls= [] site= 21
+2021 None n2-2021.plc2.org sls= [] site= 22
+2022 None n2-2022.plc2.org sls= [] site= 23
+2023 None n2-2023.plc2.org sls= [] site= 24
+2024 None n2-2024.plc2.org sls= [] site= 25
+2025 None n2-2025.plc2.org sls= [] site= 26
+2026 None n2-2026.plc2.org sls= [] site= 27
+2027 None n2-2027.plc2.org sls= [] site= 28
+2028 None n2-2028.plc2.org sls= [] site= 29
+2029 None n2-2029.plc2.org sls= [] site= 30
+2030 None n2-2030.plc2.org sls= [] site= 31
+2031 None n2-2031.plc2.org sls= [] site= 32
+2032 None n2-2032.plc2.org sls= [] site= 33
+2033 None n2-2033.plc2.org sls= [] site= 34
+2034 None n2-2034.plc2.org sls= [] site= 35
+2035 None n2-2035.plc2.org sls= [] site= 36
+2036 None n2-2036.plc2.org sls= [] site= 37
+2037 None n2-2037.plc2.org sls= [] site= 38
+2038 None n2-2038.plc2.org sls= [] site= 39
+2039 None n2-2039.plc2.org sls= [] site= 40
+2040 None n2-2040.plc2.org sls= [] site= 41
+2041 None n2-2041.plc2.org sls= [] site= 42
+2042 None n2-2042.plc2.org sls= [] site= 43
+2043 None n2-2043.plc2.org sls= [] site= 44
+2044 None n2-2044.plc2.org sls= [] site= 45
+2045 None n2-2045.plc2.org sls= [] site= 46
+2046 None n2-2046.plc2.org sls= [] site= 47
+2047 None n2-2047.plc2.org sls= [] site= 48
+2048 None n2-2048.plc2.org sls= [] site= 49
+2049 None n2-2049.plc2.org sls= [] site= 50
+2050 None n2-2050.plc2.org sls= [] site= 51
+2051 None n2-2051.plc2.org sls= [] site= 52
+2052 None n2-2052.plc2.org sls= [] site= 53
+2053 None n2-2053.plc2.org sls= [] site= 54
+2054 None n2-2054.plc2.org sls= [] site= 55
+2055 None n2-2055.plc2.org sls= [] site= 56
+2056 None n2-2056.plc2.org sls= [] site= 57
+2057 None n2-2057.plc2.org sls= [] site= 58
+2058 None n2-2058.plc2.org sls= [] site= 59
+2059 None n2-2059.plc2.org sls= [] site= 60
+2060 None n2-2060.plc2.org sls= [] site= 61
+2061 None n2-2061.plc2.org sls= [] site= 62
+2062 None n2-2062.plc2.org sls= [] site= 63
+2063 None n2-2063.plc2.org sls= [] site= 64
+2064 None n2-2064.plc2.org sls= [] site= 65
+2065 None n2-2065.plc2.org sls= [] site= 66
+2066 None n2-2066.plc2.org sls= [] site= 67
+2067 None n2-2067.plc2.org sls= [] site= 68
+2068 None n2-2068.plc2.org sls= [] site= 69
+2069 None n2-2069.plc2.org sls= [] site= 70
+2070 None n2-2070.plc2.org sls= [] site= 71
+2071 None n2-2071.plc2.org sls= [] site= 72
+2072 None n2-2072.plc2.org sls= [] site= 73
+2073 None n2-2073.plc2.org sls= [] site= 74
+2074 None n2-2074.plc2.org sls= [] site= 75
+2075 None n2-2075.plc2.org sls= [] site= 76
+2076 None n2-2076.plc2.org sls= [] site= 77
+2077 None n2-2077.plc2.org sls= [] site= 78
+2078 None n2-2078.plc2.org sls= [] site= 79
+2079 None n2-2079.plc2.org sls= [] site= 80
+2080 None n2-2080.plc2.org sls= [] site= 81
+2081 None n2-2081.plc2.org sls= [] site= 82
+2082 None n2-2082.plc2.org sls= [] site= 83
+2083 None n2-2083.plc2.org sls= [] site= 84
+2084 None n2-2084.plc2.org sls= [] site= 85
+2085 None n2-2085.plc2.org sls= [] site= 86
+2086 None n2-2086.plc2.org sls= [] site= 87
+2087 None n2-2087.plc2.org sls= [] site= 88
+2088 None n2-2088.plc2.org sls= [] site= 89
+2089 None n2-2089.plc2.org sls= [] site= 90
+2090 None n2-2090.plc2.org sls= [] site= 91
+2091 None n2-2091.plc2.org sls= [] site= 92
+2092 None n2-2092.plc2.org sls= [] site= 93
+2093 None n2-2093.plc2.org sls= [] site= 94
+2094 None n2-2094.plc2.org sls= [] site= 95
+2095 None n2-2095.plc2.org sls= [] site= 96
+2096 None n2-2096.plc2.org sls= [] site= 97
+2097 None n2-2097.plc2.org sls= [] site= 98
+2098 None n2-2098.plc2.org sls= [] site= 99
+2099 None n2-2099.plc2.org sls= [] site= 100
+2100 None n2-2100.plc2.org sls= [] site= 101
+2101 None n2-2101.plc2.org sls= [] site= 102
+2102 None n2-2102.plc2.org sls= [] site= 103
+2103 None n2-2103.plc2.org sls= [] site= 104
+2104 None n2-2104.plc2.org sls= [] site= 105
+2105 None n2-2105.plc2.org sls= [] site= 106
+2106 None n2-2106.plc2.org sls= [] site= 107
+2107 None n2-2107.plc2.org sls= [] site= 108
+2108 None n2-2108.plc2.org sls= [] site= 109
+2109 None n2-2109.plc2.org sls= [] site= 110
+2110 None n2-2110.plc2.org sls= [] site= 111
+2111 None n2-2111.plc2.org sls= [] site= 112
+2112 None n2-2112.plc2.org sls= [] site= 113
+2113 None n2-2113.plc2.org sls= [] site= 114
+2114 None n2-2114.plc2.org sls= [] site= 115
+2115 None n2-2115.plc2.org sls= [] site= 116
+2116 None n2-2116.plc2.org sls= [] site= 117
+2117 None n2-2117.plc2.org sls= [] site= 118
+2118 None n2-2118.plc2.org sls= [] site= 119
+2119 None n2-2119.plc2.org sls= [] site= 120
+2120 None n2-2120.plc2.org sls= [] site= 121
+2121 None n2-2121.plc2.org sls= [] site= 122
+2122 None n2-2122.plc2.org sls= [] site= 123
+2123 None n2-2123.plc2.org sls= [] site= 124
+2124 None n2-2124.plc2.org sls= [] site= 125
+2125 None n2-2125.plc2.org sls= [] site= 126
+2126 None n2-2126.plc2.org sls= [] site= 127
+2127 None n2-2127.plc2.org sls= [] site= 128
+2128 None n2-2128.plc2.org sls= [] site= 129
+2129 None n2-2129.plc2.org sls= [] site= 130
+2130 None n2-2130.plc2.org sls= [] site= 131
+2131 None n2-2131.plc2.org sls= [] site= 132
+2132 None n2-2132.plc2.org sls= [] site= 133
+2133 None n2-2133.plc2.org sls= [] site= 134
+2134 None n2-2134.plc2.org sls= [] site= 135
+2135 None n2-2135.plc2.org sls= [] site= 136
+2136 None n2-2136.plc2.org sls= [] site= 137
+2137 None n2-2137.plc2.org sls= [] site= 138
+2138 None n2-2138.plc2.org sls= [] site= 139
+2139 None n2-2139.plc2.org sls= [] site= 140
+2140 None n2-2140.plc2.org sls= [] site= 141
+2141 None n2-2141.plc2.org sls= [] site= 142
+2142 None n2-2142.plc2.org sls= [] site= 143
+2143 None n2-2143.plc2.org sls= [] site= 144
+2144 None n2-2144.plc2.org sls= [] site= 145
+2145 None n2-2145.plc2.org sls= [] site= 146
+2146 None n2-2146.plc2.org sls= [] site= 147
+2147 None n2-2147.plc2.org sls= [] site= 148
+2148 None n2-2148.plc2.org sls= [] site= 149
+2149 None n2-2149.plc2.org sls= [] site= 150
+2150 None n2-2150.plc2.org sls= [] site= 151
+2151 None n2-2151.plc2.org sls= [] site= 152
+2152 None n2-2152.plc2.org sls= [] site= 153
+2153 None n2-2153.plc2.org sls= [] site= 154
+2154 None n2-2154.plc2.org sls= [] site= 155
+2155 None n2-2155.plc2.org sls= [] site= 156
+2156 None n2-2156.plc2.org sls= [] site= 157
+2157 None n2-2157.plc2.org sls= [] site= 158
+2158 None n2-2158.plc2.org sls= [] site= 159
+2159 None n2-2159.plc2.org sls= [] site= 160
+2160 None n2-2160.plc2.org sls= [] site= 161
+2161 None n2-2161.plc2.org sls= [] site= 162
+2162 None n2-2162.plc2.org sls= [] site= 163
+2163 None n2-2163.plc2.org sls= [] site= 164
+2164 None n2-2164.plc2.org sls= [] site= 165
+2165 None n2-2165.plc2.org sls= [] site= 166
+2166 None n2-2166.plc2.org sls= [] site= 167
+2167 None n2-2167.plc2.org sls= [] site= 168
+2168 None n2-2168.plc2.org sls= [] site= 169
+2169 None n2-2169.plc2.org sls= [] site= 170
+2170 None n2-2170.plc2.org sls= [] site= 171
+2171 None n2-2171.plc2.org sls= [] site= 172
+2172 None n2-2172.plc2.org sls= [] site= 173
+2173 None n2-2173.plc2.org sls= [] site= 174
+2174 None n2-2174.plc2.org sls= [] site= 175
+2175 None n2-2175.plc2.org sls= [] site= 176
+2176 None n2-2176.plc2.org sls= [] site= 177
+2177 None n2-2177.plc2.org sls= [] site= 178
+2178 None n2-2178.plc2.org sls= [] site= 179
+2179 None n2-2179.plc2.org sls= [] site= 180
+2180 None n2-2180.plc2.org sls= [] site= 181
+2181 None n2-2181.plc2.org sls= [] site= 182
+2182 None n2-2182.plc2.org sls= [] site= 183
+2183 None n2-2183.plc2.org sls= [] site= 184
+2184 None n2-2184.plc2.org sls= [] site= 185
+2185 None n2-2185.plc2.org sls= [] site= 186
+2186 None n2-2186.plc2.org sls= [] site= 187
+2187 None n2-2187.plc2.org sls= [] site= 188
+2188 None n2-2188.plc2.org sls= [] site= 189
+2189 None n2-2189.plc2.org sls= [] site= 190
+2190 None n2-2190.plc2.org sls= [] site= 191
+2191 None n2-2191.plc2.org sls= [] site= 192
+2192 None n2-2192.plc2.org sls= [] site= 193
+2193 None n2-2193.plc2.org sls= [] site= 194
+2194 None n2-2194.plc2.org sls= [] site= 195
+2195 None n2-2195.plc2.org sls= [] site= 196
+2196 None n2-2196.plc2.org sls= [] site= 197
+2197 None n2-2197.plc2.org sls= [] site= 198
+2198 None n2-2198.plc2.org sls= [] site= 199
+2199 None n2-2199.plc2.org sls= [] site= 200
+2200 None n2-2200.plc2.org sls= [] site= 201
+2201 None n2-2201.plc2.org sls= [] site= 202
+2202 None n2-2202.plc2.org sls= [] site= 203
+2203 None n2-2203.plc2.org sls= [] site= 204
+2204 None n2-2204.plc2.org sls= [] site= 205
+2205 None n2-2205.plc2.org sls= [] site= 206
+2206 None n2-2206.plc2.org sls= [] site= 207
+2207 None n2-2207.plc2.org sls= [] site= 208
+2208 None n2-2208.plc2.org sls= [] site= 209
+2209 None n2-2209.plc2.org sls= [] site= 210
+2210 None n2-2210.plc2.org sls= [] site= 211
+2211 None n2-2211.plc2.org sls= [] site= 212
+2212 None n2-2212.plc2.org sls= [] site= 213
+2213 None n2-2213.plc2.org sls= [] site= 214
+2214 None n2-2214.plc2.org sls= [] site= 215
+2215 None n2-2215.plc2.org sls= [] site= 216
+2216 None n2-2216.plc2.org sls= [] site= 217
+2217 None n2-2217.plc2.org sls= [] site= 218
+2218 None n2-2218.plc2.org sls= [] site= 219
+2219 None n2-2219.plc2.org sls= [] site= 220
+2220 None n2-2220.plc2.org sls= [] site= 221
+2221 None n2-2221.plc2.org sls= [] site= 222
+2222 None n2-2222.plc2.org sls= [] site= 223
+2223 None n2-2223.plc2.org sls= [] site= 224
+2224 None n2-2224.plc2.org sls= [] site= 225
+2225 None n2-2225.plc2.org sls= [] site= 226
+2226 None n2-2226.plc2.org sls= [] site= 227
+2227 None n2-2227.plc2.org sls= [] site= 228
+2228 None n2-2228.plc2.org sls= [] site= 229
+2229 None n2-2229.plc2.org sls= [] site= 230
+2230 None n2-2230.plc2.org sls= [] site= 231
+2231 None n2-2231.plc2.org sls= [] site= 232
+2232 None n2-2232.plc2.org sls= [] site= 233
+2233 None n2-2233.plc2.org sls= [] site= 234
+2234 None n2-2234.plc2.org sls= [] site= 235
+2235 None n2-2235.plc2.org sls= [] site= 236
+2236 None n2-2236.plc2.org sls= [] site= 237
+2237 None n2-2237.plc2.org sls= [] site= 238
+2238 None n2-2238.plc2.org sls= [] site= 239
+2239 None n2-2239.plc2.org sls= [] site= 240
+2240 None n2-2240.plc2.org sls= [] site= 241
+2241 None n2-2241.plc2.org sls= [] site= 242
+2242 None n2-2242.plc2.org sls= [] site= 243
+2243 None n2-2243.plc2.org sls= [] site= 244
+2244 None n2-2244.plc2.org sls= [] site= 245
+2245 None n2-2245.plc2.org sls= [] site= 246
+2246 None n2-2246.plc2.org sls= [] site= 247
+2247 None n2-2247.plc2.org sls= [] site= 248
+2248 None n2-2248.plc2.org sls= [] site= 249
+2249 None n2-2249.plc2.org sls= [] site= 250
+2250 None n2-2250.plc2.org sls= [] site= 251
+2251 None n2-2251.plc2.org sls= [] site= 252
+2252 None n2-2252.plc2.org sls= [] site= 253
+2253 None n2-2253.plc2.org sls= [] site= 254
+2254 None n2-2254.plc2.org sls= [] site= 255
+2255 None n2-2255.plc2.org sls= [] site= 256
+2256 None n2-2256.plc2.org sls= [] site= 257
+2257 None n2-2257.plc2.org sls= [] site= 258
+2258 None n2-2258.plc2.org sls= [] site= 259
+2259 None n2-2259.plc2.org sls= [] site= 260
+2260 None n2-2260.plc2.org sls= [] site= 261
+2261 None n2-2261.plc2.org sls= [] site= 262
+2262 None n2-2262.plc2.org sls= [] site= 263
+2263 None n2-2263.plc2.org sls= [] site= 264
+2264 None n2-2264.plc2.org sls= [] site= 265
+2265 None n2-2265.plc2.org sls= [] site= 266
+2266 None n2-2266.plc2.org sls= [] site= 267
+2267 None n2-2267.plc2.org sls= [] site= 268
+2268 None n2-2268.plc2.org sls= [] site= 269
+2269 None n2-2269.plc2.org sls= [] site= 270
+2270 None n2-2270.plc2.org sls= [] site= 271
+2271 None n2-2271.plc2.org sls= [] site= 272
+2272 None n2-2272.plc2.org sls= [] site= 273
+2273 None n2-2273.plc2.org sls= [] site= 274
+2274 None n2-2274.plc2.org sls= [] site= 275
+2275 None n2-2275.plc2.org sls= [] site= 276
+2276 None n2-2276.plc2.org sls= [] site= 277
+2277 None n2-2277.plc2.org sls= [] site= 278
+2278 None n2-2278.plc2.org sls= [] site= 279
+2279 None n2-2279.plc2.org sls= [] site= 280
+2280 None n2-2280.plc2.org sls= [] site= 281
+2281 None n2-2281.plc2.org sls= [] site= 282
+2282 None n2-2282.plc2.org sls= [] site= 283
+2283 None n2-2283.plc2.org sls= [] site= 284
+2284 None n2-2284.plc2.org sls= [] site= 285
+2285 None n2-2285.plc2.org sls= [] site= 286
+2286 None n2-2286.plc2.org sls= [] site= 287
+2287 None n2-2287.plc2.org sls= [] site= 288
+2288 None n2-2288.plc2.org sls= [] site= 289
+2289 None n2-2289.plc2.org sls= [] site= 290
+2290 None n2-2290.plc2.org sls= [] site= 291
+2291 None n2-2291.plc2.org sls= [] site= 292
+2292 None n2-2292.plc2.org sls= [] site= 293
+2293 None n2-2293.plc2.org sls= [] site= 294
+2294 None n2-2294.plc2.org sls= [] site= 295
+2295 None n2-2295.plc2.org sls= [] site= 296
+2296 None n2-2296.plc2.org sls= [] site= 297
+2297 None n2-2297.plc2.org sls= [] site= 298
+2298 None n2-2298.plc2.org sls= [] site= 299
+2299 None n2-2299.plc2.org sls= [] site= 300
+2300 None n2-2300.plc2.org sls= [] site= 301
+2301 None n2-2301.plc2.org sls= [] site= 302
+2302 None n2-2302.plc2.org sls= [] site= 303
+2303 None n2-2303.plc2.org sls= [] site= 304
+2304 None n2-2304.plc2.org sls= [] site= 305
+2305 None n2-2305.plc2.org sls= [] site= 306
+2306 None n2-2306.plc2.org sls= [] site= 307
+2307 None n2-2307.plc2.org sls= [] site= 308
+2308 None n2-2308.plc2.org sls= [] site= 309
+2309 None n2-2309.plc2.org sls= [] site= 310
+2310 None n2-2310.plc2.org sls= [] site= 311
+2311 None n2-2311.plc2.org sls= [] site= 312
+2312 None n2-2312.plc2.org sls= [] site= 313
+2313 None n2-2313.plc2.org sls= [] site= 314
+2314 None n2-2314.plc2.org sls= [] site= 315
+2315 None n2-2315.plc2.org sls= [] site= 316
+2316 None n2-2316.plc2.org sls= [] site= 317
+2317 None n2-2317.plc2.org sls= [] site= 318
+2318 None n2-2318.plc2.org sls= [] site= 319
+2319 None n2-2319.plc2.org sls= [] site= 320
+2320 None n2-2320.plc2.org sls= [] site= 321
+2321 None n2-2321.plc2.org sls= [] site= 322
+2322 None n2-2322.plc2.org sls= [] site= 323
+2323 None n2-2323.plc2.org sls= [] site= 324
+2324 None n2-2324.plc2.org sls= [] site= 325
+2325 None n2-2325.plc2.org sls= [] site= 326
+2326 None n2-2326.plc2.org sls= [] site= 327
+2327 None n2-2327.plc2.org sls= [] site= 328
+2328 None n2-2328.plc2.org sls= [] site= 329
+2329 None n2-2329.plc2.org sls= [] site= 330
+2330 None n2-2330.plc2.org sls= [] site= 331
+2331 None n2-2331.plc2.org sls= [] site= 332
+2332 None n2-2332.plc2.org sls= [] site= 333
+2333 None n2-2333.plc2.org sls= [] site= 334
+2334 None n2-2334.plc2.org sls= [] site= 335
+2335 None n2-2335.plc2.org sls= [] site= 336
+2336 None n2-2336.plc2.org sls= [] site= 337
+2337 None n2-2337.plc2.org sls= [] site= 338
+2338 None n2-2338.plc2.org sls= [] site= 339
+2339 None n2-2339.plc2.org sls= [] site= 340
+2340 None n2-2340.plc2.org sls= [] site= 341
+2341 None n2-2341.plc2.org sls= [] site= 342
+2342 None n2-2342.plc2.org sls= [] site= 343
+2343 None n2-2343.plc2.org sls= [] site= 344
+2344 None n2-2344.plc2.org sls= [] site= 345
+2345 None n2-2345.plc2.org sls= [] site= 346
+2346 None n2-2346.plc2.org sls= [] site= 347
+2347 None n2-2347.plc2.org sls= [] site= 348
+2348 None n2-2348.plc2.org sls= [] site= 349
+2349 None n2-2349.plc2.org sls= [] site= 350
+2350 None n2-2350.plc2.org sls= [] site= 351
+2351 None n2-2351.plc2.org sls= [] site= 352
+2352 None n2-2352.plc2.org sls= [] site= 353
+2353 None n2-2353.plc2.org sls= [] site= 354
+2354 None n2-2354.plc2.org sls= [] site= 355
+2355 None n2-2355.plc2.org sls= [] site= 356
+2356 None n2-2356.plc2.org sls= [] site= 357
+2357 None n2-2357.plc2.org sls= [] site= 358
+2358 None n2-2358.plc2.org sls= [] site= 359
+2359 None n2-2359.plc2.org sls= [] site= 360
+2360 None n2-2360.plc2.org sls= [] site= 361
+2361 None n2-2361.plc2.org sls= [] site= 362
+2362 None n2-2362.plc2.org sls= [] site= 363
+2363 None n2-2363.plc2.org sls= [] site= 364
+2364 None n2-2364.plc2.org sls= [] site= 365
+2365 None n2-2365.plc2.org sls= [] site= 366
+2366 None n2-2366.plc2.org sls= [] site= 367
+2367 None n2-2367.plc2.org sls= [] site= 368
+2368 None n2-2368.plc2.org sls= [] site= 369
+2369 None n2-2369.plc2.org sls= [] site= 370
+2370 None n2-2370.plc2.org sls= [] site= 371
+2371 None n2-2371.plc2.org sls= [] site= 372
+2372 None n2-2372.plc2.org sls= [] site= 373
+2373 None n2-2373.plc2.org sls= [] site= 374
+2374 None n2-2374.plc2.org sls= [] site= 375
+2375 None n2-2375.plc2.org sls= [] site= 376
+2376 None n2-2376.plc2.org sls= [] site= 377
+2377 None n2-2377.plc2.org sls= [] site= 378
+2378 None n2-2378.plc2.org sls= [] site= 379
+2379 None n2-2379.plc2.org sls= [] site= 380
+2380 None n2-2380.plc2.org sls= [] site= 381
+2381 None n2-2381.plc2.org sls= [] site= 382
+2382 None n2-2382.plc2.org sls= [] site= 383
+2383 None n2-2383.plc2.org sls= [] site= 384
+2384 None n2-2384.plc2.org sls= [] site= 385
+2385 None n2-2385.plc2.org sls= [] site= 386
+2386 None n2-2386.plc2.org sls= [] site= 387
+2387 None n2-2387.plc2.org sls= [] site= 388
+2388 None n2-2388.plc2.org sls= [] site= 389
+2389 None n2-2389.plc2.org sls= [] site= 390
+2390 None n2-2390.plc2.org sls= [] site= 391
+2391 None n2-2391.plc2.org sls= [] site= 392
+2392 None n2-2392.plc2.org sls= [] site= 393
+2393 None n2-2393.plc2.org sls= [] site= 394
+2394 None n2-2394.plc2.org sls= [] site= 395
+2395 None n2-2395.plc2.org sls= [] site= 396
+2396 None n2-2396.plc2.org sls= [] site= 397
+2397 None n2-2397.plc2.org sls= [] site= 398
+2398 None n2-2398.plc2.org sls= [] site= 399
+2399 None n2-2399.plc2.org sls= [] site= 400
+2400 None n2-2400.plc2.org sls= [] site= 401
+2401 None n2-2401.plc2.org sls= [] site= 402
+2402 None n2-2402.plc2.org sls= [] site= 403
+2403 None n2-2403.plc2.org sls= [] site= 404
+2404 None n2-2404.plc2.org sls= [] site= 405
+2405 None n2-2405.plc2.org sls= [] site= 406
+2406 None n2-2406.plc2.org sls= [] site= 407
+2407 None n2-2407.plc2.org sls= [] site= 408
+2408 None n2-2408.plc2.org sls= [] site= 409
+2409 None n2-2409.plc2.org sls= [] site= 410
+2410 None n2-2410.plc2.org sls= [] site= 411
+2411 None n2-2411.plc2.org sls= [] site= 412
+2412 None n2-2412.plc2.org sls= [] site= 413
+2413 None n2-2413.plc2.org sls= [] site= 414
+2414 None n2-2414.plc2.org sls= [] site= 415
+2415 None n2-2415.plc2.org sls= [] site= 416
+2416 None n2-2416.plc2.org sls= [] site= 417
+2417 None n2-2417.plc2.org sls= [] site= 418
+2418 None n2-2418.plc2.org sls= [] site= 419
+2419 None n2-2419.plc2.org sls= [] site= 420
+2420 None n2-2420.plc2.org sls= [] site= 421
+2421 None n2-2421.plc2.org sls= [] site= 422
+2422 None n2-2422.plc2.org sls= [] site= 423
+2423 None n2-2423.plc2.org sls= [] site= 424
+2424 None n2-2424.plc2.org sls= [] site= 425
+2425 None n2-2425.plc2.org sls= [] site= 426
+2426 None n2-2426.plc2.org sls= [] site= 427
+2427 None n2-2427.plc2.org sls= [] site= 428
+2428 None n2-2428.plc2.org sls= [] site= 429
+2429 None n2-2429.plc2.org sls= [] site= 430
+2430 None n2-2430.plc2.org sls= [] site= 431
+2431 None n2-2431.plc2.org sls= [] site= 432
+2432 None n2-2432.plc2.org sls= [] site= 433
+2433 None n2-2433.plc2.org sls= [] site= 434
+2434 None n2-2434.plc2.org sls= [] site= 435
+2435 None n2-2435.plc2.org sls= [] site= 436
+2436 None n2-2436.plc2.org sls= [] site= 437
+2437 None n2-2437.plc2.org sls= [] site= 438
+2438 None n2-2438.plc2.org sls= [] site= 439
+2439 None n2-2439.plc2.org sls= [] site= 440
+2440 None n2-2440.plc2.org sls= [] site= 441
+2441 None n2-2441.plc2.org sls= [] site= 442
+2442 None n2-2442.plc2.org sls= [] site= 443
+2443 None n2-2443.plc2.org sls= [] site= 444
+2444 None n2-2444.plc2.org sls= [] site= 445
+2445 None n2-2445.plc2.org sls= [] site= 446
+2446 None n2-2446.plc2.org sls= [] site= 447
+2447 None n2-2447.plc2.org sls= [] site= 448
+2448 None n2-2448.plc2.org sls= [] site= 449
+2449 None n2-2449.plc2.org sls= [] site= 450
+2450 None n2-2450.plc2.org sls= [] site= 451
+2451 None n2-2451.plc2.org sls= [] site= 452
+2452 None n2-2452.plc2.org sls= [] site= 453
+2453 None n2-2453.plc2.org sls= [] site= 454
+2454 None n2-2454.plc2.org sls= [] site= 455
+2455 None n2-2455.plc2.org sls= [] site= 456
+2456 None n2-2456.plc2.org sls= [] site= 457
+2457 None n2-2457.plc2.org sls= [] site= 458
+2458 None n2-2458.plc2.org sls= [] site= 459
+2459 None n2-2459.plc2.org sls= [] site= 460
+2460 None n2-2460.plc2.org sls= [] site= 461
+2461 None n2-2461.plc2.org sls= [] site= 462
+2462 None n2-2462.plc2.org sls= [] site= 463
+2463 None n2-2463.plc2.org sls= [] site= 464
+2464 None n2-2464.plc2.org sls= [] site= 465
+2465 None n2-2465.plc2.org sls= [] site= 466
+2466 None n2-2466.plc2.org sls= [] site= 467
+2467 None n2-2467.plc2.org sls= [] site= 468
+2468 None n2-2468.plc2.org sls= [] site= 469
+2469 None n2-2469.plc2.org sls= [] site= 470
+2470 None n2-2470.plc2.org sls= [] site= 471
+2471 None n2-2471.plc2.org sls= [] site= 472
+2472 None n2-2472.plc2.org sls= [] site= 473
+2473 None n2-2473.plc2.org sls= [] site= 474
+2474 None n2-2474.plc2.org sls= [] site= 475
+2475 None n2-2475.plc2.org sls= [] site= 476
+2476 None n2-2476.plc2.org sls= [] site= 477
+2477 None n2-2477.plc2.org sls= [] site= 478
+2478 None n2-2478.plc2.org sls= [] site= 479
+2479 None n2-2479.plc2.org sls= [] site= 480
+2480 None n2-2480.plc2.org sls= [] site= 481
+2481 None n2-2481.plc2.org sls= [] site= 482
+2482 None n2-2482.plc2.org sls= [] site= 483
+2483 None n2-2483.plc2.org sls= [] site= 484
+2484 None n2-2484.plc2.org sls= [] site= 485
+2485 None n2-2485.plc2.org sls= [] site= 486
+2486 None n2-2486.plc2.org sls= [] site= 487
+2487 None n2-2487.plc2.org sls= [] site= 488
+2488 None n2-2488.plc2.org sls= [] site= 489
+2489 None n2-2489.plc2.org sls= [] site= 490
+2490 None n2-2490.plc2.org sls= [] site= 491
+2491 None n2-2491.plc2.org sls= [] site= 492
+2492 None n2-2492.plc2.org sls= [] site= 493
+2493 None n2-2493.plc2.org sls= [] site= 494
+2494 None n2-2494.plc2.org sls= [] site= 495
+2495 None n2-2495.plc2.org sls= [] site= 496
+2496 None n2-2496.plc2.org sls= [] site= 497
+2497 None n2-2497.plc2.org sls= [] site= 498
+2498 None n2-2498.plc2.org sls= [] site= 499
+2499 None n2-2499.plc2.org sls= [] site= 500
+2500 None n2-2500.plc2.org sls= [] site= 501
+2501 None n2-2501.plc2.org sls= [] site= 502
+2502 None n2-2502.plc2.org sls= [] site= 503
+2503 None n2-2503.plc2.org sls= [] site= 504
+2504 None n2-2504.plc2.org sls= [] site= 505
+2505 None n2-2505.plc2.org sls= [] site= 506
+2506 None n2-2506.plc2.org sls= [] site= 507
+2507 None n2-2507.plc2.org sls= [] site= 508
+2508 None n2-2508.plc2.org sls= [] site= 509
+2509 None n2-2509.plc2.org sls= [] site= 510
+2510 None n2-2510.plc2.org sls= [] site= 511
+2511 None n2-2511.plc2.org sls= [] site= 512
+2512 None n2-2512.plc2.org sls= [] site= 513
+2513 None n2-2513.plc2.org sls= [] site= 514
+2514 None n2-2514.plc2.org sls= [] site= 515
+2515 None n2-2515.plc2.org sls= [] site= 516
+2516 None n2-2516.plc2.org sls= [] site= 517
+2517 None n2-2517.plc2.org sls= [] site= 518
+2518 None n2-2518.plc2.org sls= [] site= 519
+2519 None n2-2519.plc2.org sls= [] site= 520
+2520 None n2-2520.plc2.org sls= [] site= 521
+2521 None n2-2521.plc2.org sls= [] site= 522
+2522 None n2-2522.plc2.org sls= [] site= 523
+2523 None n2-2523.plc2.org sls= [] site= 524
+2524 None n2-2524.plc2.org sls= [] site= 525
+2525 None n2-2525.plc2.org sls= [] site= 526
+2526 None n2-2526.plc2.org sls= [] site= 527
+2527 None n2-2527.plc2.org sls= [] site= 528
+2528 None n2-2528.plc2.org sls= [] site= 529
+2529 None n2-2529.plc2.org sls= [] site= 530
+2530 None n2-2530.plc2.org sls= [] site= 531
+2531 None n2-2531.plc2.org sls= [] site= 532
+2532 None n2-2532.plc2.org sls= [] site= 533
+2533 None n2-2533.plc2.org sls= [] site= 534
+2534 None n2-2534.plc2.org sls= [] site= 535
+2535 None n2-2535.plc2.org sls= [] site= 536
+2536 None n2-2536.plc2.org sls= [] site= 537
+2537 None n2-2537.plc2.org sls= [] site= 538
+2538 None n2-2538.plc2.org sls= [] site= 539
+2539 None n2-2539.plc2.org sls= [] site= 540
+2540 None n2-2540.plc2.org sls= [] site= 541
+2541 None n2-2541.plc2.org sls= [] site= 542
+2542 None n2-2542.plc2.org sls= [] site= 543
+2543 None n2-2543.plc2.org sls= [] site= 544
+2544 None n2-2544.plc2.org sls= [] site= 545
+2545 None n2-2545.plc2.org sls= [] site= 546
+2546 None n2-2546.plc2.org sls= [] site= 547
+2547 None n2-2547.plc2.org sls= [] site= 548
+2548 None n2-2548.plc2.org sls= [] site= 549
+2549 None n2-2549.plc2.org sls= [] site= 550
+2550 None n2-2550.plc2.org sls= [] site= 551
+2551 None n2-2551.plc2.org sls= [] site= 552
+2552 None n2-2552.plc2.org sls= [] site= 553
+2553 None n2-2553.plc2.org sls= [] site= 554
+2554 None n2-2554.plc2.org sls= [] site= 555
+2555 None n2-2555.plc2.org sls= [] site= 556
+2556 None n2-2556.plc2.org sls= [] site= 557
+2557 None n2-2557.plc2.org sls= [] site= 558
+2558 None n2-2558.plc2.org sls= [] site= 559
+2559 None n2-2559.plc2.org sls= [] site= 560
+2560 None n2-2560.plc2.org sls= [] site= 561
+2561 None n2-2561.plc2.org sls= [] site= 562
+2562 None n2-2562.plc2.org sls= [] site= 563
+2563 None n2-2563.plc2.org sls= [] site= 564
+2564 None n2-2564.plc2.org sls= [] site= 565
+2565 None n2-2565.plc2.org sls= [] site= 566
+2566 None n2-2566.plc2.org sls= [] site= 567
+2567 None n2-2567.plc2.org sls= [] site= 568
+2568 None n2-2568.plc2.org sls= [] site= 569
+2569 None n2-2569.plc2.org sls= [] site= 570
+2570 None n2-2570.plc2.org sls= [] site= 571
+2571 None n2-2571.plc2.org sls= [] site= 572
+2572 None n2-2572.plc2.org sls= [] site= 573
+2573 None n2-2573.plc2.org sls= [] site= 574
+2574 None n2-2574.plc2.org sls= [] site= 575
+2575 None n2-2575.plc2.org sls= [] site= 576
+2576 None n2-2576.plc2.org sls= [] site= 577
+2577 None n2-2577.plc2.org sls= [] site= 578
+2578 None n2-2578.plc2.org sls= [] site= 579
+2579 None n2-2579.plc2.org sls= [] site= 580
+2580 None n2-2580.plc2.org sls= [] site= 581
+2581 None n2-2581.plc2.org sls= [] site= 582
+2582 None n2-2582.plc2.org sls= [] site= 583
+2583 None n2-2583.plc2.org sls= [] site= 584
+2584 None n2-2584.plc2.org sls= [] site= 585
+2585 None n2-2585.plc2.org sls= [] site= 586
+2586 None n2-2586.plc2.org sls= [] site= 587
+2587 None n2-2587.plc2.org sls= [] site= 588
+2588 None n2-2588.plc2.org sls= [] site= 589
+2589 None n2-2589.plc2.org sls= [] site= 590
+2590 None n2-2590.plc2.org sls= [] site= 591
+2591 None n2-2591.plc2.org sls= [] site= 592
+2592 None n2-2592.plc2.org sls= [] site= 593
+2593 None n2-2593.plc2.org sls= [] site= 594
+2594 None n2-2594.plc2.org sls= [] site= 595
+2595 None n2-2595.plc2.org sls= [] site= 596
+2596 None n2-2596.plc2.org sls= [] site= 597
+2597 None n2-2597.plc2.org sls= [] site= 598
+2598 None n2-2598.plc2.org sls= [] site= 599
+2599 None n2-2599.plc2.org sls= [] site= 600
+2600 None n2-2600.plc2.org sls= [] site= 601
+2601 None n2-2601.plc2.org sls= [] site= 602
+2602 None n2-2602.plc2.org sls= [] site= 603
+2603 None n2-2603.plc2.org sls= [] site= 604
+2604 None n2-2604.plc2.org sls= [] site= 605
+2605 None n2-2605.plc2.org sls= [] site= 606
+2606 None n2-2606.plc2.org sls= [] site= 607
+2607 None n2-2607.plc2.org sls= [] site= 608
+2608 None n2-2608.plc2.org sls= [] site= 609
+2609 None n2-2609.plc2.org sls= [] site= 610
+2610 None n2-2610.plc2.org sls= [] site= 611
+2611 None n2-2611.plc2.org sls= [] site= 612
+2612 None n2-2612.plc2.org sls= [] site= 613
+2613 None n2-2613.plc2.org sls= [] site= 614
+2614 None n2-2614.plc2.org sls= [] site= 615
+2615 None n2-2615.plc2.org sls= [] site= 616
+2616 None n2-2616.plc2.org sls= [] site= 617
+2617 None n2-2617.plc2.org sls= [] site= 618
+2618 None n2-2618.plc2.org sls= [] site= 619
+2619 None n2-2619.plc2.org sls= [] site= 620
+2620 None n2-2620.plc2.org sls= [] site= 621
+2621 None n2-2621.plc2.org sls= [] site= 622
+2622 None n2-2622.plc2.org sls= [] site= 623
+2623 None n2-2623.plc2.org sls= [] site= 624
+2624 None n2-2624.plc2.org sls= [] site= 625
+2625 None n2-2625.plc2.org sls= [] site= 626
+2626 None n2-2626.plc2.org sls= [] site= 627
+2627 None n2-2627.plc2.org sls= [] site= 628
+2628 None n2-2628.plc2.org sls= [] site= 629
+2629 None n2-2629.plc2.org sls= [] site= 630
+2630 None n2-2630.plc2.org sls= [] site= 631
+2631 None n2-2631.plc2.org sls= [] site= 632
+2632 None n2-2632.plc2.org sls= [] site= 633
+2633 None n2-2633.plc2.org sls= [] site= 634
+2634 None n2-2634.plc2.org sls= [] site= 635
+2635 None n2-2635.plc2.org sls= [] site= 636
+2636 None n2-2636.plc2.org sls= [] site= 637
+2637 None n2-2637.plc2.org sls= [] site= 638
+2638 None n2-2638.plc2.org sls= [] site= 639
+2639 None n2-2639.plc2.org sls= [] site= 640
+2640 None n2-2640.plc2.org sls= [] site= 641
+2641 None n2-2641.plc2.org sls= [] site= 642
+2642 None n2-2642.plc2.org sls= [] site= 643
+2643 None n2-2643.plc2.org sls= [] site= 644
+2644 None n2-2644.plc2.org sls= [] site= 645
+2645 None n2-2645.plc2.org sls= [] site= 646
+2646 None n2-2646.plc2.org sls= [] site= 647
+2647 None n2-2647.plc2.org sls= [] site= 648
+2648 None n2-2648.plc2.org sls= [] site= 649
+2649 None n2-2649.plc2.org sls= [] site= 650
+2650 None n2-2650.plc2.org sls= [] site= 651
+2651 None n2-2651.plc2.org sls= [] site= 652
+2652 None n2-2652.plc2.org sls= [] site= 653
+2653 None n2-2653.plc2.org sls= [] site= 654
+2654 None n2-2654.plc2.org sls= [] site= 655
+2655 None n2-2655.plc2.org sls= [] site= 656
+2656 None n2-2656.plc2.org sls= [] site= 657
+2657 None n2-2657.plc2.org sls= [] site= 658
+2658 None n2-2658.plc2.org sls= [] site= 659
+2659 None n2-2659.plc2.org sls= [] site= 660
+2660 None n2-2660.plc2.org sls= [] site= 661
+2661 None n2-2661.plc2.org sls= [] site= 662
+2662 None n2-2662.plc2.org sls= [] site= 663
+2663 None n2-2663.plc2.org sls= [] site= 664
+2664 None n2-2664.plc2.org sls= [] site= 665
+2665 None n2-2665.plc2.org sls= [] site= 666
+2666 None n2-2666.plc2.org sls= [] site= 667
+2667 None n2-2667.plc2.org sls= [] site= 668
+2668 None n2-2668.plc2.org sls= [] site= 669
+2669 None n2-2669.plc2.org sls= [] site= 670
+2670 None n2-2670.plc2.org sls= [] site= 671
+2671 None n2-2671.plc2.org sls= [] site= 672
+2672 None n2-2672.plc2.org sls= [] site= 673
+2673 None n2-2673.plc2.org sls= [] site= 674
+2674 None n2-2674.plc2.org sls= [] site= 675
+2675 None n2-2675.plc2.org sls= [] site= 676
+2676 None n2-2676.plc2.org sls= [] site= 677
+2677 None n2-2677.plc2.org sls= [] site= 678
+2678 None n2-2678.plc2.org sls= [] site= 679
+2679 None n2-2679.plc2.org sls= [] site= 680
+2680 None n2-2680.plc2.org sls= [] site= 681
+2681 None n2-2681.plc2.org sls= [] site= 682
+2682 None n2-2682.plc2.org sls= [] site= 683
+2683 None n2-2683.plc2.org sls= [] site= 684
+2684 None n2-2684.plc2.org sls= [] site= 685
+2685 None n2-2685.plc2.org sls= [] site= 686
+2686 None n2-2686.plc2.org sls= [] site= 687
+2687 None n2-2687.plc2.org sls= [] site= 688
+2688 None n2-2688.plc2.org sls= [] site= 689
+2689 None n2-2689.plc2.org sls= [] site= 690
+2690 None n2-2690.plc2.org sls= [] site= 691
+2691 None n2-2691.plc2.org sls= [] site= 692
+2692 None n2-2692.plc2.org sls= [] site= 693
+2693 None n2-2693.plc2.org sls= [] site= 694
+2694 None n2-2694.plc2.org sls= [] site= 695
+2695 None n2-2695.plc2.org sls= [] site= 696
+2696 None n2-2696.plc2.org sls= [] site= 697
+2697 None n2-2697.plc2.org sls= [] site= 698
+2698 None n2-2698.plc2.org sls= [] site= 699
+2699 None n2-2699.plc2.org sls= [] site= 700
+2700 None n2-2700.plc2.org sls= [] site= 701
+2701 None n2-2701.plc2.org sls= [] site= 702
+2702 None n2-2702.plc2.org sls= [] site= 703
+2703 None n2-2703.plc2.org sls= [] site= 704
+2704 None n2-2704.plc2.org sls= [] site= 705
+2705 None n2-2705.plc2.org sls= [] site= 706
+2706 None n2-2706.plc2.org sls= [] site= 707
+2707 None n2-2707.plc2.org sls= [] site= 708
+2708 None n2-2708.plc2.org sls= [] site= 709
+2709 None n2-2709.plc2.org sls= [] site= 710
+2710 None n2-2710.plc2.org sls= [] site= 711
+2711 None n2-2711.plc2.org sls= [] site= 712
+2712 None n2-2712.plc2.org sls= [] site= 713
+2713 None n2-2713.plc2.org sls= [] site= 714
+2714 None n2-2714.plc2.org sls= [] site= 715
+2715 None n2-2715.plc2.org sls= [] site= 716
+2716 None n2-2716.plc2.org sls= [] site= 717
+2717 None n2-2717.plc2.org sls= [] site= 718
+2718 None n2-2718.plc2.org sls= [] site= 719
+2719 None n2-2719.plc2.org sls= [] site= 720
+2720 None n2-2720.plc2.org sls= [] site= 721
+2721 None n2-2721.plc2.org sls= [] site= 722
+2722 None n2-2722.plc2.org sls= [] site= 723
+2723 None n2-2723.plc2.org sls= [] site= 724
+2724 None n2-2724.plc2.org sls= [] site= 725
+2725 None n2-2725.plc2.org sls= [] site= 726
+2726 None n2-2726.plc2.org sls= [] site= 727
+2727 None n2-2727.plc2.org sls= [] site= 728
+2728 None n2-2728.plc2.org sls= [] site= 729
+2729 None n2-2729.plc2.org sls= [] site= 730
+2730 None n2-2730.plc2.org sls= [] site= 731
+2731 None n2-2731.plc2.org sls= [] site= 732
+2732 None n2-2732.plc2.org sls= [] site= 733
+2733 None n2-2733.plc2.org sls= [] site= 734
+2734 None n2-2734.plc2.org sls= [] site= 735
+2735 None n2-2735.plc2.org sls= [] site= 736
+2736 None n2-2736.plc2.org sls= [] site= 737
+2737 None n2-2737.plc2.org sls= [] site= 738
+2738 None n2-2738.plc2.org sls= [] site= 739
+2739 None n2-2739.plc2.org sls= [] site= 740
+2740 None n2-2740.plc2.org sls= [] site= 741
+2741 None n2-2741.plc2.org sls= [] site= 742
+2742 None n2-2742.plc2.org sls= [] site= 743
+2743 None n2-2743.plc2.org sls= [] site= 744
+2744 None n2-2744.plc2.org sls= [] site= 745
+2745 None n2-2745.plc2.org sls= [] site= 746
+2746 None n2-2746.plc2.org sls= [] site= 747
+2747 None n2-2747.plc2.org sls= [] site= 748
+2748 None n2-2748.plc2.org sls= [] site= 749
+2749 None n2-2749.plc2.org sls= [] site= 750
+2750 None n2-2750.plc2.org sls= [] site= 751
+2751 None n2-2751.plc2.org sls= [] site= 752
+2752 None n2-2752.plc2.org sls= [] site= 753
+2753 None n2-2753.plc2.org sls= [] site= 754
+2754 None n2-2754.plc2.org sls= [] site= 755
+2755 None n2-2755.plc2.org sls= [] site= 756
+2756 None n2-2756.plc2.org sls= [] site= 757
+2757 None n2-2757.plc2.org sls= [] site= 758
+2758 None n2-2758.plc2.org sls= [] site= 759
+2759 None n2-2759.plc2.org sls= [] site= 760
+2760 None n2-2760.plc2.org sls= [] site= 761
+2761 None n2-2761.plc2.org sls= [] site= 762
+2762 None n2-2762.plc2.org sls= [] site= 763
+2763 None n2-2763.plc2.org sls= [] site= 764
+2764 None n2-2764.plc2.org sls= [] site= 765
+2765 None n2-2765.plc2.org sls= [] site= 766
+2766 None n2-2766.plc2.org sls= [] site= 767
+2767 None n2-2767.plc2.org sls= [] site= 768
+2768 None n2-2768.plc2.org sls= [] site= 769
+2769 None n2-2769.plc2.org sls= [] site= 770
+2770 None n2-2770.plc2.org sls= [] site= 771
+2771 None n2-2771.plc2.org sls= [] site= 772
+2772 None n2-2772.plc2.org sls= [] site= 773
+2773 None n2-2773.plc2.org sls= [] site= 774
+2774 None n2-2774.plc2.org sls= [] site= 775
+2775 None n2-2775.plc2.org sls= [] site= 776
+2776 None n2-2776.plc2.org sls= [] site= 777
+2777 None n2-2777.plc2.org sls= [] site= 778
+2778 None n2-2778.plc2.org sls= [] site= 779
+2779 None n2-2779.plc2.org sls= [] site= 780
+2780 None n2-2780.plc2.org sls= [] site= 781
+2781 None n2-2781.plc2.org sls= [] site= 782
+2782 None n2-2782.plc2.org sls= [] site= 783
+2783 None n2-2783.plc2.org sls= [] site= 784
+2784 None n2-2784.plc2.org sls= [] site= 785
+2785 None n2-2785.plc2.org sls= [] site= 786
+2786 None n2-2786.plc2.org sls= [] site= 787
+2787 None n2-2787.plc2.org sls= [] site= 788
+2788 None n2-2788.plc2.org sls= [] site= 789
+2789 None n2-2789.plc2.org sls= [] site= 790
+2790 None n2-2790.plc2.org sls= [] site= 791
+2791 None n2-2791.plc2.org sls= [] site= 792
+2792 None n2-2792.plc2.org sls= [] site= 793
+2793 None n2-2793.plc2.org sls= [] site= 794
+2794 None n2-2794.plc2.org sls= [] site= 795
+2795 None n2-2795.plc2.org sls= [] site= 796
+2796 None n2-2796.plc2.org sls= [] site= 797
+2797 None n2-2797.plc2.org sls= [] site= 798
+2798 None n2-2798.plc2.org sls= [] site= 799
+2799 None n2-2799.plc2.org sls= [] site= 800
+2800 None n2-2800.plc2.org sls= [] site= 801
+2801 None n2-2801.plc2.org sls= [] site= 802
+2802 None n2-2802.plc2.org sls= [] site= 803
+2803 None n2-2803.plc2.org sls= [] site= 804
+2804 None n2-2804.plc2.org sls= [] site= 805
+2805 None n2-2805.plc2.org sls= [] site= 806
+2806 None n2-2806.plc2.org sls= [] site= 807
+2807 None n2-2807.plc2.org sls= [] site= 808
+2808 None n2-2808.plc2.org sls= [] site= 809
+2809 None n2-2809.plc2.org sls= [] site= 810
+2810 None n2-2810.plc2.org sls= [] site= 811
+2811 None n2-2811.plc2.org sls= [] site= 812
+2812 None n2-2812.plc2.org sls= [] site= 813
+2813 None n2-2813.plc2.org sls= [] site= 814
+2814 None n2-2814.plc2.org sls= [] site= 815
+2815 None n2-2815.plc2.org sls= [] site= 816
+2816 None n2-2816.plc2.org sls= [] site= 817
+2817 None n2-2817.plc2.org sls= [] site= 818
+2818 None n2-2818.plc2.org sls= [] site= 819
+2819 None n2-2819.plc2.org sls= [] site= 820
+2820 None n2-2820.plc2.org sls= [] site= 821
+2821 None n2-2821.plc2.org sls= [] site= 822
+2822 None n2-2822.plc2.org sls= [] site= 823
+2823 None n2-2823.plc2.org sls= [] site= 824
+2824 None n2-2824.plc2.org sls= [] site= 825
+2825 None n2-2825.plc2.org sls= [] site= 826
+2826 None n2-2826.plc2.org sls= [] site= 827
+2827 None n2-2827.plc2.org sls= [] site= 828
+2828 None n2-2828.plc2.org sls= [] site= 829
+2829 None n2-2829.plc2.org sls= [] site= 830
+2830 None n2-2830.plc2.org sls= [] site= 831
+2831 None n2-2831.plc2.org sls= [] site= 832
+2832 None n2-2832.plc2.org sls= [] site= 833
+2833 None n2-2833.plc2.org sls= [] site= 834
+2834 None n2-2834.plc2.org sls= [] site= 835
+2835 None n2-2835.plc2.org sls= [] site= 836
+2836 None n2-2836.plc2.org sls= [] site= 837
+2837 None n2-2837.plc2.org sls= [] site= 838
+2838 None n2-2838.plc2.org sls= [] site= 839
+2839 None n2-2839.plc2.org sls= [] site= 840
+2840 None n2-2840.plc2.org sls= [] site= 841
+2841 None n2-2841.plc2.org sls= [] site= 842
+2842 None n2-2842.plc2.org sls= [] site= 843
+2843 None n2-2843.plc2.org sls= [] site= 844
+2844 None n2-2844.plc2.org sls= [] site= 845
+2845 None n2-2845.plc2.org sls= [] site= 846
+2846 None n2-2846.plc2.org sls= [] site= 847
+2847 None n2-2847.plc2.org sls= [] site= 848
+2848 None n2-2848.plc2.org sls= [] site= 849
+2849 None n2-2849.plc2.org sls= [] site= 850
+2850 None n2-2850.plc2.org sls= [] site= 851
+2851 None n2-2851.plc2.org sls= [] site= 852
+2852 None n2-2852.plc2.org sls= [] site= 853
+2853 None n2-2853.plc2.org sls= [] site= 854
+2854 None n2-2854.plc2.org sls= [] site= 855
+2855 None n2-2855.plc2.org sls= [] site= 856
+2856 None n2-2856.plc2.org sls= [] site= 857
+2857 None n2-2857.plc2.org sls= [] site= 858
+2858 None n2-2858.plc2.org sls= [] site= 859
+2859 None n2-2859.plc2.org sls= [] site= 860
+2860 None n2-2860.plc2.org sls= [] site= 861
+2861 None n2-2861.plc2.org sls= [] site= 862
+2862 None n2-2862.plc2.org sls= [] site= 863
+2863 None n2-2863.plc2.org sls= [] site= 864
+2864 None n2-2864.plc2.org sls= [] site= 865
+2865 None n2-2865.plc2.org sls= [] site= 866
+2866 None n2-2866.plc2.org sls= [] site= 867
+2867 None n2-2867.plc2.org sls= [] site= 868
+2868 None n2-2868.plc2.org sls= [] site= 869
+2869 None n2-2869.plc2.org sls= [] site= 870
+2870 None n2-2870.plc2.org sls= [] site= 871
+2871 None n2-2871.plc2.org sls= [] site= 872
+2872 None n2-2872.plc2.org sls= [] site= 873
+2873 None n2-2873.plc2.org sls= [] site= 874
+2874 None n2-2874.plc2.org sls= [] site= 875
+2875 None n2-2875.plc2.org sls= [] site= 876
+2876 None n2-2876.plc2.org sls= [] site= 877
+2877 None n2-2877.plc2.org sls= [] site= 878
+2878 None n2-2878.plc2.org sls= [] site= 879
+2879 None n2-2879.plc2.org sls= [] site= 880
+2880 None n2-2880.plc2.org sls= [] site= 881
+2881 None n2-2881.plc2.org sls= [] site= 882
+2882 None n2-2882.plc2.org sls= [] site= 883
+2883 None n2-2883.plc2.org sls= [] site= 884
+2884 None n2-2884.plc2.org sls= [] site= 885
+2885 None n2-2885.plc2.org sls= [] site= 886
+2886 None n2-2886.plc2.org sls= [] site= 887
+2887 None n2-2887.plc2.org sls= [] site= 888
+2888 None n2-2888.plc2.org sls= [] site= 889
+2889 None n2-2889.plc2.org sls= [] site= 890
+2890 None n2-2890.plc2.org sls= [] site= 891
+2891 None n2-2891.plc2.org sls= [] site= 892
+2892 None n2-2892.plc2.org sls= [] site= 893
+2893 None n2-2893.plc2.org sls= [] site= 894
+2894 None n2-2894.plc2.org sls= [] site= 895
+2895 None n2-2895.plc2.org sls= [] site= 896
+2896 None n2-2896.plc2.org sls= [] site= 897
+2897 None n2-2897.plc2.org sls= [] site= 898
+2898 None n2-2898.plc2.org sls= [] site= 899
+2899 None n2-2899.plc2.org sls= [] site= 900
+2900 None n2-2900.plc2.org sls= [] site= 901
+2901 None n2-2901.plc2.org sls= [] site= 902
+2902 None n2-2902.plc2.org sls= [] site= 903
+2903 None n2-2903.plc2.org sls= [] site= 904
+2904 None n2-2904.plc2.org sls= [] site= 905
+2905 None n2-2905.plc2.org sls= [] site= 906
+2906 None n2-2906.plc2.org sls= [] site= 907
+2907 None n2-2907.plc2.org sls= [] site= 908
+2908 None n2-2908.plc2.org sls= [] site= 909
+2909 None n2-2909.plc2.org sls= [] site= 910
+2910 None n2-2910.plc2.org sls= [] site= 911
+2911 None n2-2911.plc2.org sls= [] site= 912
+2912 None n2-2912.plc2.org sls= [] site= 913
+2913 None n2-2913.plc2.org sls= [] site= 914
+2914 None n2-2914.plc2.org sls= [] site= 915
+2915 None n2-2915.plc2.org sls= [] site= 916
+2916 None n2-2916.plc2.org sls= [] site= 917
+2917 None n2-2917.plc2.org sls= [] site= 918
+2918 None n2-2918.plc2.org sls= [] site= 919
+2919 None n2-2919.plc2.org sls= [] site= 920
+2920 None n2-2920.plc2.org sls= [] site= 921
+2921 None n2-2921.plc2.org sls= [] site= 922
+2922 None n2-2922.plc2.org sls= [] site= 923
+2923 None n2-2923.plc2.org sls= [] site= 924
+2924 None n2-2924.plc2.org sls= [] site= 925
+2925 None n2-2925.plc2.org sls= [] site= 926
+2926 None n2-2926.plc2.org sls= [] site= 927
+2927 None n2-2927.plc2.org sls= [] site= 928
+2928 None n2-2928.plc2.org sls= [] site= 929
+2929 None n2-2929.plc2.org sls= [] site= 930
+2930 None n2-2930.plc2.org sls= [] site= 931
+2931 None n2-2931.plc2.org sls= [] site= 932
+2932 None n2-2932.plc2.org sls= [] site= 933
+2933 None n2-2933.plc2.org sls= [] site= 934
+2934 None n2-2934.plc2.org sls= [] site= 935
+2935 None n2-2935.plc2.org sls= [] site= 936
+2936 None n2-2936.plc2.org sls= [] site= 937
+2937 None n2-2937.plc2.org sls= [] site= 938
+2938 None n2-2938.plc2.org sls= [] site= 939
+2939 None n2-2939.plc2.org sls= [] site= 940
+2940 None n2-2940.plc2.org sls= [] site= 941
+2941 None n2-2941.plc2.org sls= [] site= 942
+2942 None n2-2942.plc2.org sls= [] site= 943
+2943 None n2-2943.plc2.org sls= [] site= 944
+2944 None n2-2944.plc2.org sls= [] site= 945
+2945 None n2-2945.plc2.org sls= [] site= 946
+2946 None n2-2946.plc2.org sls= [] site= 947
+2947 None n2-2947.plc2.org sls= [] site= 948
+2948 None n2-2948.plc2.org sls= [] site= 949
+2949 None n2-2949.plc2.org sls= [] site= 950
+2950 None n2-2950.plc2.org sls= [] site= 951
+2951 None n2-2951.plc2.org sls= [] site= 952
+2952 None n2-2952.plc2.org sls= [] site= 953
+2953 None n2-2953.plc2.org sls= [] site= 954
+2954 None n2-2954.plc2.org sls= [] site= 955
+2955 None n2-2955.plc2.org sls= [] site= 956
+2956 None n2-2956.plc2.org sls= [] site= 957
+2957 None n2-2957.plc2.org sls= [] site= 958
+2958 None n2-2958.plc2.org sls= [] site= 959
+2959 None n2-2959.plc2.org sls= [] site= 960
+2960 None n2-2960.plc2.org sls= [] site= 961
+2961 None n2-2961.plc2.org sls= [] site= 962
+2962 None n2-2962.plc2.org sls= [] site= 963
+2963 None n2-2963.plc2.org sls= [] site= 964
+2964 None n2-2964.plc2.org sls= [] site= 965
+2965 None n2-2965.plc2.org sls= [] site= 966
+2966 None n2-2966.plc2.org sls= [] site= 967
+2967 None n2-2967.plc2.org sls= [] site= 968
+2968 None n2-2968.plc2.org sls= [] site= 969
+2969 None n2-2969.plc2.org sls= [] site= 970
+2970 None n2-2970.plc2.org sls= [] site= 971
+2971 None n2-2971.plc2.org sls= [] site= 972
+2972 None n2-2972.plc2.org sls= [] site= 973
+2973 None n2-2973.plc2.org sls= [] site= 974
+2974 None n2-2974.plc2.org sls= [] site= 975
+2975 None n2-2975.plc2.org sls= [] site= 976
+2976 None n2-2976.plc2.org sls= [] site= 977
+2977 None n2-2977.plc2.org sls= [] site= 978
+2978 None n2-2978.plc2.org sls= [] site= 979
+2979 None n2-2979.plc2.org sls= [] site= 980
+2980 None n2-2980.plc2.org sls= [] site= 981
+2981 None n2-2981.plc2.org sls= [] site= 982
+2982 None n2-2982.plc2.org sls= [] site= 983
+2983 None n2-2983.plc2.org sls= [] site= 984
+2984 None n2-2984.plc2.org sls= [] site= 985
+2985 None n2-2985.plc2.org sls= [] site= 986
+2986 None n2-2986.plc2.org sls= [] site= 987
+2987 None n2-2987.plc2.org sls= [] site= 988
+2988 None n2-2988.plc2.org sls= [] site= 989
+2989 None n2-2989.plc2.org sls= [] site= 990
+2990 None n2-2990.plc2.org sls= [] site= 991
+2991 None n2-2991.plc2.org sls= [] site= 992
+2992 None n2-2992.plc2.org sls= [] site= 993
+2993 None n2-2993.plc2.org sls= [] site= 994
+2994 None n2-2994.plc2.org sls= [] site= 995
+2995 None n2-2995.plc2.org sls= [] site= 996
+2996 None n2-2996.plc2.org sls= [] site= 997
+2997 None n2-2997.plc2.org sls= [] site= 998
+2998 None n2-2998.plc2.org sls= [] site= 999
+2999 None n2-2999.plc2.org sls= [] site= 1000
+3000 None n2-3000.plc2.org sls= [] site= 1001
+3001 1 n1-001.plc1.org sls= [3] site= 1003
+3002 1 n1-002.plc1.org sls= [3, 4] site= 1004
+3003 1 n1-003.plc1.org sls= [3, 4, 5] site= 1005
+3004 1 n1-004.plc1.org sls= [4, 5, 6] site= 1006
+3005 1 n1-005.plc1.org sls= [5, 6, 7] site= 1007
+3006 1 n1-006.plc1.org sls= [6, 7, 8] site= 1008
+3007 1 n1-007.plc1.org sls= [7, 8, 9] site= 1009
+3008 1 n1-008.plc1.org sls= [8, 9, 10] site= 1010
+3009 1 n1-009.plc1.org sls= [9, 10, 11] site= 1011
+3010 1 n1-010.plc1.org sls= [10, 11, 12] site= 1012
+3011 1 n1-011.plc1.org sls= [11, 12, 13] site= 1013
+3012 1 n1-012.plc1.org sls= [12, 13, 14] site= 1014
+3013 1 n1-013.plc1.org sls= [13, 14, 15] site= 1015
+3014 1 n1-014.plc1.org sls= [14, 15, 16] site= 1016
+3015 1 n1-015.plc1.org sls= [15, 16, 17] site= 1017
+3016 1 n1-016.plc1.org sls= [16, 17, 18] site= 1018
+3017 1 n1-017.plc1.org sls= [17, 18, 19] site= 1019
+3018 1 n1-018.plc1.org sls= [18, 19, 20] site= 1020
+3019 1 n1-019.plc1.org sls= [19, 20, 21] site= 1021
+3020 1 n1-020.plc1.org sls= [20, 21, 22] site= 1022
+3021 1 n1-021.plc1.org sls= [21, 22, 23] site= 1023
+3022 1 n1-022.plc1.org sls= [22, 23, 24] site= 1024
+3023 1 n1-023.plc1.org sls= [23, 24, 25] site= 1025
+3024 1 n1-024.plc1.org sls= [24, 25, 26] site= 1026
+3025 1 n1-025.plc1.org sls= [25, 26, 27] site= 1027
+3026 1 n1-026.plc1.org sls= [26, 27, 28] site= 1028
+3027 1 n1-027.plc1.org sls= [27, 28, 29] site= 1029
+3028 1 n1-028.plc1.org sls= [28, 29, 30] site= 1030
+3029 1 n1-029.plc1.org sls= [29, 30, 31] site= 1031
+3030 1 n1-030.plc1.org sls= [30, 31, 32] site= 1032
+3031 1 n1-031.plc1.org sls= [31, 32, 33] site= 1033
+3032 1 n1-032.plc1.org sls= [32, 33, 34] site= 1034
+3033 1 n1-033.plc1.org sls= [33, 34, 35] site= 1035
+3034 1 n1-034.plc1.org sls= [34, 35, 36] site= 1036
+3035 1 n1-035.plc1.org sls= [35, 36, 37] site= 1037
+3036 1 n1-036.plc1.org sls= [36, 37, 38] site= 1038
+3037 1 n1-037.plc1.org sls= [37, 38, 39] site= 1039
+3038 1 n1-038.plc1.org sls= [38, 39, 40] site= 1040
+3039 1 n1-039.plc1.org sls= [39, 40, 41] site= 1041
+3040 1 n1-040.plc1.org sls= [40, 41, 42] site= 1042
+3041 1 n1-041.plc1.org sls= [41, 42, 43] site= 1043
+3042 1 n1-042.plc1.org sls= [42, 43, 44] site= 1044
+3043 1 n1-043.plc1.org sls= [43, 44, 45] site= 1045
+3044 1 n1-044.plc1.org sls= [44, 45, 46] site= 1046
+3045 1 n1-045.plc1.org sls= [45, 46, 47] site= 1047
+3046 1 n1-046.plc1.org sls= [46, 47, 48] site= 1048
+3047 1 n1-047.plc1.org sls= [47, 48, 49] site= 1049
+3048 1 n1-048.plc1.org sls= [48, 49, 50] site= 1050
+3049 1 n1-049.plc1.org sls= [49, 50, 51] site= 1051
+3050 1 n1-050.plc1.org sls= [50, 51, 52] site= 1052
+3051 1 n1-051.plc1.org sls= [51, 52, 53] site= 1053
+3052 1 n1-052.plc1.org sls= [52, 53, 54] site= 1054
+3053 1 n1-053.plc1.org sls= [53, 54, 55] site= 1055
+3054 1 n1-054.plc1.org sls= [54, 55, 56] site= 1056
+3055 1 n1-055.plc1.org sls= [55, 56, 57] site= 1057
+3056 1 n1-056.plc1.org sls= [56, 57, 58] site= 1058
+3057 1 n1-057.plc1.org sls= [57, 58, 59] site= 1059
+3058 1 n1-058.plc1.org sls= [58, 59, 60] site= 1060
+3059 1 n1-059.plc1.org sls= [59, 60, 61] site= 1061
+3060 1 n1-060.plc1.org sls= [60, 61, 62] site= 1062
+3061 1 n1-061.plc1.org sls= [61, 62, 63] site= 1063
+3062 1 n1-062.plc1.org sls= [62, 63, 64] site= 1064
+3063 1 n1-063.plc1.org sls= [63, 64, 65] site= 1065
+3064 1 n1-064.plc1.org sls= [64, 65, 66] site= 1066
+3065 1 n1-065.plc1.org sls= [65, 66, 67] site= 1067
+3066 1 n1-066.plc1.org sls= [66, 67, 68] site= 1068
+3067 1 n1-067.plc1.org sls= [67, 68, 69] site= 1069
+3068 1 n1-068.plc1.org sls= [68, 69, 70] site= 1070
+3069 1 n1-069.plc1.org sls= [69, 70, 71] site= 1071
+3070 1 n1-070.plc1.org sls= [70, 71, 72] site= 1072
+3071 1 n1-071.plc1.org sls= [71, 72, 73] site= 1073
+3072 1 n1-072.plc1.org sls= [72, 73, 74] site= 1074
+3073 1 n1-073.plc1.org sls= [73, 74, 75] site= 1075
+3074 1 n1-074.plc1.org sls= [74, 75, 76] site= 1076
+3075 1 n1-075.plc1.org sls= [75, 76, 77] site= 1077
+3076 1 n1-076.plc1.org sls= [76, 77, 78] site= 1078
+3077 1 n1-077.plc1.org sls= [77, 78, 79] site= 1079
+3078 1 n1-078.plc1.org sls= [78, 79, 80] site= 1080
+3079 1 n1-079.plc1.org sls= [79, 80, 81] site= 1081
+3080 1 n1-080.plc1.org sls= [80, 81, 82] site= 1082
+3081 1 n1-081.plc1.org sls= [81, 82, 83] site= 1083
+3082 1 n1-082.plc1.org sls= [82, 83, 84] site= 1084
+3083 1 n1-083.plc1.org sls= [83, 84, 85] site= 1085
+3084 1 n1-084.plc1.org sls= [84, 85, 86] site= 1086
+3085 1 n1-085.plc1.org sls= [85, 86, 87] site= 1087
+3086 1 n1-086.plc1.org sls= [86, 87, 88] site= 1088
+3087 1 n1-087.plc1.org sls= [87, 88, 89] site= 1089
+3088 1 n1-088.plc1.org sls= [88, 89, 90] site= 1090
+3089 1 n1-089.plc1.org sls= [89, 90, 91] site= 1091
+3090 1 n1-090.plc1.org sls= [90, 91, 92] site= 1092
+3091 1 n1-091.plc1.org sls= [91, 92, 93] site= 1093
+3092 1 n1-092.plc1.org sls= [92, 93, 94] site= 1094
+3093 1 n1-093.plc1.org sls= [93, 94, 95] site= 1095
+3094 1 n1-094.plc1.org sls= [94, 95, 96] site= 1096
+3095 1 n1-095.plc1.org sls= [95, 96, 97] site= 1097
+3096 1 n1-096.plc1.org sls= [96, 97, 98] site= 1098
+3097 1 n1-097.plc1.org sls= [97, 98, 99] site= 1099
+3098 1 n1-098.plc1.org sls= [98, 99, 100] site= 1100
+3099 1 n1-099.plc1.org sls= [99, 100, 101] site= 1101
+3100 1 n1-100.plc1.org sls= [100, 101, 102] site= 1102
+3101 1 n1-101.plc1.org sls= [101, 102, 103] site= 1103
+3102 1 n1-102.plc1.org sls= [102, 103, 104] site= 1104
+3103 1 n1-103.plc1.org sls= [103, 104, 105] site= 1105
+3104 1 n1-104.plc1.org sls= [104, 105, 106] site= 1106
+3105 1 n1-105.plc1.org sls= [105, 106, 107] site= 1107
+3106 1 n1-106.plc1.org sls= [106, 107, 108] site= 1108
+3107 1 n1-107.plc1.org sls= [107, 108, 109] site= 1109
+3108 1 n1-108.plc1.org sls= [108, 109, 110] site= 1110
+3109 1 n1-109.plc1.org sls= [109, 110, 111] site= 1111
+3110 1 n1-110.plc1.org sls= [110, 111, 112] site= 1112
+3111 1 n1-111.plc1.org sls= [111, 112, 113] site= 1113
+3112 1 n1-112.plc1.org sls= [112, 113, 114] site= 1114
+3113 1 n1-113.plc1.org sls= [113, 114, 115] site= 1115
+3114 1 n1-114.plc1.org sls= [114, 115, 116] site= 1116
+3115 1 n1-115.plc1.org sls= [115, 116, 117] site= 1117
+3116 1 n1-116.plc1.org sls= [116, 117, 118] site= 1118
+3117 1 n1-117.plc1.org sls= [117, 118, 119] site= 1119
+3118 1 n1-118.plc1.org sls= [118, 119, 120] site= 1120
+3119 1 n1-119.plc1.org sls= [119, 120, 121] site= 1121
+3120 1 n1-120.plc1.org sls= [120, 121, 122] site= 1122
+3121 1 n1-121.plc1.org sls= [121, 122, 123] site= 1123
+3122 1 n1-122.plc1.org sls= [122, 123, 124] site= 1124
+3123 1 n1-123.plc1.org sls= [123, 124, 125] site= 1125
+3124 1 n1-124.plc1.org sls= [124, 125, 126] site= 1126
+3125 1 n1-125.plc1.org sls= [125, 126, 127] site= 1127
+3126 1 n1-126.plc1.org sls= [126, 127, 128] site= 1128
+3127 1 n1-127.plc1.org sls= [127, 128, 129] site= 1129
+3128 1 n1-128.plc1.org sls= [128, 129, 130] site= 1130
+3129 1 n1-129.plc1.org sls= [129, 130, 131] site= 1131
+3130 1 n1-130.plc1.org sls= [130, 131, 132] site= 1132
+3131 1 n1-131.plc1.org sls= [131, 132, 133] site= 1133
+3132 1 n1-132.plc1.org sls= [132, 133, 134] site= 1134
+3133 1 n1-133.plc1.org sls= [133, 134, 135] site= 1135
+3134 1 n1-134.plc1.org sls= [134, 135, 136] site= 1136
+3135 1 n1-135.plc1.org sls= [135, 136, 137] site= 1137
+3136 1 n1-136.plc1.org sls= [136, 137, 138] site= 1138
+3137 1 n1-137.plc1.org sls= [137, 138, 139] site= 1139
+3138 1 n1-138.plc1.org sls= [138, 139, 140] site= 1140
+3139 1 n1-139.plc1.org sls= [139, 140, 141] site= 1141
+3140 1 n1-140.plc1.org sls= [140, 141, 142] site= 1142
+3141 1 n1-141.plc1.org sls= [141, 142, 143] site= 1143
+3142 1 n1-142.plc1.org sls= [142, 143, 144] site= 1144
+3143 1 n1-143.plc1.org sls= [143, 144, 145] site= 1145
+3144 1 n1-144.plc1.org sls= [144, 145, 146] site= 1146
+3145 1 n1-145.plc1.org sls= [145, 146, 147] site= 1147
+3146 1 n1-146.plc1.org sls= [146, 147, 148] site= 1148
+3147 1 n1-147.plc1.org sls= [147, 148, 149] site= 1149
+3148 1 n1-148.plc1.org sls= [148, 149, 150] site= 1150
+3149 1 n1-149.plc1.org sls= [149, 150, 151] site= 1151
+3150 1 n1-150.plc1.org sls= [150, 151, 152] site= 1152
+3151 1 n1-151.plc1.org sls= [151, 152, 153] site= 1153
+3152 1 n1-152.plc1.org sls= [152, 153, 154] site= 1154
+3153 1 n1-153.plc1.org sls= [153, 154, 155] site= 1155
+3154 1 n1-154.plc1.org sls= [154, 155, 156] site= 1156
+3155 1 n1-155.plc1.org sls= [155, 156, 157] site= 1157
+3156 1 n1-156.plc1.org sls= [156, 157, 158] site= 1158
+3157 1 n1-157.plc1.org sls= [157, 158, 159] site= 1159
+3158 1 n1-158.plc1.org sls= [158, 159, 160] site= 1160
+3159 1 n1-159.plc1.org sls= [159, 160, 161] site= 1161
+3160 1 n1-160.plc1.org sls= [160, 161, 162] site= 1162
+3161 1 n1-161.plc1.org sls= [161, 162, 163] site= 1163
+3162 1 n1-162.plc1.org sls= [162, 163, 164] site= 1164
+3163 1 n1-163.plc1.org sls= [163, 164, 165] site= 1165
+3164 1 n1-164.plc1.org sls= [164, 165, 166] site= 1166
+3165 1 n1-165.plc1.org sls= [165, 166, 167] site= 1167
+3166 1 n1-166.plc1.org sls= [166, 167, 168] site= 1168
+3167 1 n1-167.plc1.org sls= [167, 168, 169] site= 1169
+3168 1 n1-168.plc1.org sls= [168, 169, 170] site= 1170
+3169 1 n1-169.plc1.org sls= [169, 170, 171] site= 1171
+3170 1 n1-170.plc1.org sls= [170, 171, 172] site= 1172
+3171 1 n1-171.plc1.org sls= [171, 172, 173] site= 1173
+3172 1 n1-172.plc1.org sls= [172, 173, 174] site= 1174
+3173 1 n1-173.plc1.org sls= [173, 174, 175] site= 1175
+3174 1 n1-174.plc1.org sls= [174, 175, 176] site= 1176
+3175 1 n1-175.plc1.org sls= [175, 176, 177] site= 1177
+3176 1 n1-176.plc1.org sls= [176, 177, 178] site= 1178
+3177 1 n1-177.plc1.org sls= [177, 178, 179] site= 1179
+3178 1 n1-178.plc1.org sls= [178, 179, 180] site= 1180
+3179 1 n1-179.plc1.org sls= [179, 180, 181] site= 1181
+3180 1 n1-180.plc1.org sls= [180, 181, 182] site= 1182
+3181 1 n1-181.plc1.org sls= [181, 182, 183] site= 1183
+3182 1 n1-182.plc1.org sls= [182, 183, 184] site= 1184
+3183 1 n1-183.plc1.org sls= [183, 184, 185] site= 1185
+3184 1 n1-184.plc1.org sls= [184, 185, 186] site= 1186
+3185 1 n1-185.plc1.org sls= [185, 186, 187] site= 1187
+3186 1 n1-186.plc1.org sls= [186, 187, 188] site= 1188
+3187 1 n1-187.plc1.org sls= [187, 188, 189] site= 1189
+3188 1 n1-188.plc1.org sls= [188, 189, 190] site= 1190
+3189 1 n1-189.plc1.org sls= [189, 190, 191] site= 1191
+3190 1 n1-190.plc1.org sls= [190, 191, 192] site= 1192
+3191 1 n1-191.plc1.org sls= [191, 192, 193] site= 1193
+3192 1 n1-192.plc1.org sls= [192, 193, 194] site= 1194
+3193 1 n1-193.plc1.org sls= [193, 194, 195] site= 1195
+3194 1 n1-194.plc1.org sls= [194, 195, 196] site= 1196
+3195 1 n1-195.plc1.org sls= [195, 196, 197] site= 1197
+3196 1 n1-196.plc1.org sls= [196, 197, 198] site= 1198
+3197 1 n1-197.plc1.org sls= [197, 198, 199] site= 1199
+3198 1 n1-198.plc1.org sls= [198, 199, 200] site= 1200
+3199 1 n1-199.plc1.org sls= [199, 200, 201] site= 1201
+3200 1 n1-200.plc1.org sls= [200, 201, 202] site= 1202
+3201 1 n1-201.plc1.org sls= [201, 202, 203] site= 1203
+3202 1 n1-202.plc1.org sls= [202, 203, 204] site= 1204
+3203 1 n1-203.plc1.org sls= [203, 204, 205] site= 1205
+3204 1 n1-204.plc1.org sls= [204, 205, 206] site= 1206
+3205 1 n1-205.plc1.org sls= [205, 206, 207] site= 1207
+3206 1 n1-206.plc1.org sls= [206, 207, 208] site= 1208
+3207 1 n1-207.plc1.org sls= [207, 208, 209] site= 1209
+3208 1 n1-208.plc1.org sls= [208, 209, 210] site= 1210
+3209 1 n1-209.plc1.org sls= [209, 210, 211] site= 1211
+3210 1 n1-210.plc1.org sls= [210, 211, 212] site= 1212
+3211 1 n1-211.plc1.org sls= [211, 212, 213] site= 1213
+3212 1 n1-212.plc1.org sls= [212, 213, 214] site= 1214
+3213 1 n1-213.plc1.org sls= [213, 214, 215] site= 1215
+3214 1 n1-214.plc1.org sls= [214, 215, 216] site= 1216
+3215 1 n1-215.plc1.org sls= [215, 216, 217] site= 1217
+3216 1 n1-216.plc1.org sls= [216, 217, 218] site= 1218
+3217 1 n1-217.plc1.org sls= [217, 218, 219] site= 1219
+3218 1 n1-218.plc1.org sls= [218, 219, 220] site= 1220
+3219 1 n1-219.plc1.org sls= [219, 220, 221] site= 1221
+3220 1 n1-220.plc1.org sls= [220, 221, 222] site= 1222
+3221 1 n1-221.plc1.org sls= [221, 222, 223] site= 1223
+3222 1 n1-222.plc1.org sls= [222, 223, 224] site= 1224
+3223 1 n1-223.plc1.org sls= [223, 224, 225] site= 1225
+3224 1 n1-224.plc1.org sls= [224, 225, 226] site= 1226
+3225 1 n1-225.plc1.org sls= [225, 226, 227] site= 1227
+3226 1 n1-226.plc1.org sls= [226, 227, 228] site= 1228
+3227 1 n1-227.plc1.org sls= [227, 228, 229] site= 1229
+3228 1 n1-228.plc1.org sls= [228, 229, 230] site= 1230
+3229 1 n1-229.plc1.org sls= [229, 230, 231] site= 1231
+3230 1 n1-230.plc1.org sls= [230, 231, 232] site= 1232
+3231 1 n1-231.plc1.org sls= [231, 232, 233] site= 1233
+3232 1 n1-232.plc1.org sls= [232, 233, 234] site= 1234
+3233 1 n1-233.plc1.org sls= [233, 234, 235] site= 1235
+3234 1 n1-234.plc1.org sls= [234, 235, 236] site= 1236
+3235 1 n1-235.plc1.org sls= [235, 236, 237] site= 1237
+3236 1 n1-236.plc1.org sls= [236, 237, 238] site= 1238
+3237 1 n1-237.plc1.org sls= [237, 238, 239] site= 1239
+3238 1 n1-238.plc1.org sls= [238, 239, 240] site= 1240
+3239 1 n1-239.plc1.org sls= [239, 240, 241] site= 1241
+3240 1 n1-240.plc1.org sls= [240, 241, 242] site= 1242
+3241 1 n1-241.plc1.org sls= [241, 242, 243] site= 1243
+3242 1 n1-242.plc1.org sls= [242, 243, 244] site= 1244
+3243 1 n1-243.plc1.org sls= [243, 244, 245] site= 1245
+3244 1 n1-244.plc1.org sls= [244, 245, 246] site= 1246
+3245 1 n1-245.plc1.org sls= [245, 246, 247] site= 1247
+3246 1 n1-246.plc1.org sls= [246, 247, 248] site= 1248
+3247 1 n1-247.plc1.org sls= [247, 248, 249] site= 1249
+3248 1 n1-248.plc1.org sls= [248, 249, 250] site= 1250
+3249 1 n1-249.plc1.org sls= [249, 250, 251] site= 1251
+3250 1 n1-250.plc1.org sls= [250, 251, 252] site= 1252
+3251 1 n1-251.plc1.org sls= [251, 252, 253] site= 1253
+3252 1 n1-252.plc1.org sls= [252, 253, 254] site= 1254
+3253 1 n1-253.plc1.org sls= [253, 254, 255] site= 1255
+3254 1 n1-254.plc1.org sls= [254, 255, 256] site= 1256
+3255 1 n1-255.plc1.org sls= [255, 256, 257] site= 1257
+3256 1 n1-256.plc1.org sls= [256, 257, 258] site= 1258
+3257 1 n1-257.plc1.org sls= [257, 258, 259] site= 1259
+3258 1 n1-258.plc1.org sls= [258, 259, 260] site= 1260
+3259 1 n1-259.plc1.org sls= [259, 260, 261] site= 1261
+3260 1 n1-260.plc1.org sls= [260, 261, 262] site= 1262
+3261 1 n1-261.plc1.org sls= [261, 262, 263] site= 1263
+3262 1 n1-262.plc1.org sls= [262, 263, 264] site= 1264
+3263 1 n1-263.plc1.org sls= [263, 264, 265] site= 1265
+3264 1 n1-264.plc1.org sls= [264, 265, 266] site= 1266
+3265 1 n1-265.plc1.org sls= [265, 266, 267] site= 1267
+3266 1 n1-266.plc1.org sls= [266, 267, 268] site= 1268
+3267 1 n1-267.plc1.org sls= [267, 268, 269] site= 1269
+3268 1 n1-268.plc1.org sls= [268, 269, 270] site= 1270
+3269 1 n1-269.plc1.org sls= [269, 270, 271] site= 1271
+3270 1 n1-270.plc1.org sls= [270, 271, 272] site= 1272
+3271 1 n1-271.plc1.org sls= [271, 272, 273] site= 1273
+3272 1 n1-272.plc1.org sls= [272, 273, 274] site= 1274
+3273 1 n1-273.plc1.org sls= [273, 274, 275] site= 1275
+3274 1 n1-274.plc1.org sls= [274, 275, 276] site= 1276
+3275 1 n1-275.plc1.org sls= [275, 276, 277] site= 1277
+3276 1 n1-276.plc1.org sls= [276, 277, 278] site= 1278
+3277 1 n1-277.plc1.org sls= [277, 278, 279] site= 1279
+3278 1 n1-278.plc1.org sls= [278, 279, 280] site= 1280
+3279 1 n1-279.plc1.org sls= [279, 280, 281] site= 1281
+3280 1 n1-280.plc1.org sls= [280, 281, 282] site= 1282
+3281 1 n1-281.plc1.org sls= [281, 282, 283] site= 1283
+3282 1 n1-282.plc1.org sls= [282, 283, 284] site= 1284
+3283 1 n1-283.plc1.org sls= [283, 284, 285] site= 1285
+3284 1 n1-284.plc1.org sls= [284, 285, 286] site= 1286
+3285 1 n1-285.plc1.org sls= [285, 286, 287] site= 1287
+3286 1 n1-286.plc1.org sls= [286, 287, 288] site= 1288
+3287 1 n1-287.plc1.org sls= [287, 288, 289] site= 1289
+3288 1 n1-288.plc1.org sls= [288, 289, 290] site= 1290
+3289 1 n1-289.plc1.org sls= [289, 290, 291] site= 1291
+3290 1 n1-290.plc1.org sls= [290, 291, 292] site= 1292
+3291 1 n1-291.plc1.org sls= [291, 292, 293] site= 1293
+3292 1 n1-292.plc1.org sls= [292, 293, 294] site= 1294
+3293 1 n1-293.plc1.org sls= [293, 294, 295] site= 1295
+3294 1 n1-294.plc1.org sls= [294, 295, 296] site= 1296
+3295 1 n1-295.plc1.org sls= [295, 296, 297] site= 1297
+3296 1 n1-296.plc1.org sls= [296, 297, 298] site= 1298
+3297 1 n1-297.plc1.org sls= [297, 298, 299] site= 1299
+3298 1 n1-298.plc1.org sls= [298, 299, 300] site= 1300
+3299 1 n1-299.plc1.org sls= [299, 300, 301] site= 1301
+3300 1 n1-300.plc1.org sls= [300, 301, 302] site= 1302
+3301 1 n1-301.plc1.org sls= [301, 302, 303] site= 1303
+3302 1 n1-302.plc1.org sls= [302, 303, 304] site= 1304
+3303 1 n1-303.plc1.org sls= [303, 304, 305] site= 1305
+3304 1 n1-304.plc1.org sls= [304, 305, 306] site= 1306
+3305 1 n1-305.plc1.org sls= [305, 306, 307] site= 1307
+3306 1 n1-306.plc1.org sls= [306, 307, 308] site= 1308
+3307 1 n1-307.plc1.org sls= [307, 308, 309] site= 1309
+3308 1 n1-308.plc1.org sls= [308, 309, 310] site= 1310
+3309 1 n1-309.plc1.org sls= [309, 310, 311] site= 1311
+3310 1 n1-310.plc1.org sls= [310, 311, 312] site= 1312
+3311 1 n1-311.plc1.org sls= [311, 312, 313] site= 1313
+3312 1 n1-312.plc1.org sls= [312, 313, 314] site= 1314
+3313 1 n1-313.plc1.org sls= [313, 314, 315] site= 1315
+3314 1 n1-314.plc1.org sls= [314, 315, 316] site= 1316
+3315 1 n1-315.plc1.org sls= [315, 316, 317] site= 1317
+3316 1 n1-316.plc1.org sls= [316, 317, 318] site= 1318
+3317 1 n1-317.plc1.org sls= [317, 318, 319] site= 1319
+3318 1 n1-318.plc1.org sls= [318, 319, 320] site= 1320
+3319 1 n1-319.plc1.org sls= [319, 320, 321] site= 1321
+3320 1 n1-320.plc1.org sls= [320, 321, 322] site= 1322
+3321 1 n1-321.plc1.org sls= [321, 322, 323] site= 1323
+3322 1 n1-322.plc1.org sls= [322, 323, 324] site= 1324
+3323 1 n1-323.plc1.org sls= [323, 324, 325] site= 1325
+3324 1 n1-324.plc1.org sls= [324, 325, 326] site= 1326
+3325 1 n1-325.plc1.org sls= [325, 326, 327] site= 1327
+3326 1 n1-326.plc1.org sls= [326, 327, 328] site= 1328
+3327 1 n1-327.plc1.org sls= [327, 328, 329] site= 1329
+3328 1 n1-328.plc1.org sls= [328, 329, 330] site= 1330
+3329 1 n1-329.plc1.org sls= [329, 330, 331] site= 1331
+3330 1 n1-330.plc1.org sls= [330, 331, 332] site= 1332
+3331 1 n1-331.plc1.org sls= [331, 332, 333] site= 1333
+3332 1 n1-332.plc1.org sls= [332, 333, 334] site= 1334
+3333 1 n1-333.plc1.org sls= [333, 334, 335] site= 1335
+3334 1 n1-334.plc1.org sls= [334, 335, 336] site= 1336
+3335 1 n1-335.plc1.org sls= [335, 336, 337] site= 1337
+3336 1 n1-336.plc1.org sls= [336, 337, 338] site= 1338
+3337 1 n1-337.plc1.org sls= [337, 338, 339] site= 1339
+3338 1 n1-338.plc1.org sls= [338, 339, 340] site= 1340
+3339 1 n1-339.plc1.org sls= [339, 340, 341] site= 1341
+3340 1 n1-340.plc1.org sls= [340, 341, 342] site= 1342
+3341 1 n1-341.plc1.org sls= [341, 342, 343] site= 1343
+3342 1 n1-342.plc1.org sls= [342, 343, 344] site= 1344
+3343 1 n1-343.plc1.org sls= [343, 344, 345] site= 1345
+3344 1 n1-344.plc1.org sls= [344, 345, 346] site= 1346
+3345 1 n1-345.plc1.org sls= [345, 346, 347] site= 1347
+3346 1 n1-346.plc1.org sls= [346, 347, 348] site= 1348
+3347 1 n1-347.plc1.org sls= [347, 348, 349] site= 1349
+3348 1 n1-348.plc1.org sls= [348, 349, 350] site= 1350
+3349 1 n1-349.plc1.org sls= [349, 350, 351] site= 1351
+3350 1 n1-350.plc1.org sls= [350, 351, 352] site= 1352
+3351 1 n1-351.plc1.org sls= [351, 352, 353] site= 1353
+3352 1 n1-352.plc1.org sls= [352, 353, 354] site= 1354
+3353 1 n1-353.plc1.org sls= [353, 354, 355] site= 1355
+3354 1 n1-354.plc1.org sls= [354, 355, 356] site= 1356
+3355 1 n1-355.plc1.org sls= [355, 356, 357] site= 1357
+3356 1 n1-356.plc1.org sls= [356, 357, 358] site= 1358
+3357 1 n1-357.plc1.org sls= [357, 358, 359] site= 1359
+3358 1 n1-358.plc1.org sls= [358, 359, 360] site= 1360
+3359 1 n1-359.plc1.org sls= [359, 360, 361] site= 1361
+3360 1 n1-360.plc1.org sls= [360, 361, 362] site= 1362
+3361 1 n1-361.plc1.org sls= [361, 362, 363] site= 1363
+3362 1 n1-362.plc1.org sls= [362, 363, 364] site= 1364
+3363 1 n1-363.plc1.org sls= [363, 364, 365] site= 1365
+3364 1 n1-364.plc1.org sls= [364, 365, 366] site= 1366
+3365 1 n1-365.plc1.org sls= [365, 366, 367] site= 1367
+3366 1 n1-366.plc1.org sls= [366, 367, 368] site= 1368
+3367 1 n1-367.plc1.org sls= [367, 368, 369] site= 1369
+3368 1 n1-368.plc1.org sls= [368, 369, 370] site= 1370
+3369 1 n1-369.plc1.org sls= [369, 370, 371] site= 1371
+3370 1 n1-370.plc1.org sls= [370, 371, 372] site= 1372
+3371 1 n1-371.plc1.org sls= [371, 372, 373] site= 1373
+3372 1 n1-372.plc1.org sls= [372, 373, 374] site= 1374
+3373 1 n1-373.plc1.org sls= [373, 374, 375] site= 1375
+3374 1 n1-374.plc1.org sls= [374, 375, 376] site= 1376
+3375 1 n1-375.plc1.org sls= [375, 376, 377] site= 1377
+3376 1 n1-376.plc1.org sls= [376, 377, 378] site= 1378
+3377 1 n1-377.plc1.org sls= [377, 378, 379] site= 1379
+3378 1 n1-378.plc1.org sls= [378, 379, 380] site= 1380
+3379 1 n1-379.plc1.org sls= [379, 380, 381] site= 1381
+3380 1 n1-380.plc1.org sls= [380, 381, 382] site= 1382
+3381 1 n1-381.plc1.org sls= [381, 382, 383] site= 1383
+3382 1 n1-382.plc1.org sls= [382, 383, 384] site= 1384
+3383 1 n1-383.plc1.org sls= [383, 384, 385] site= 1385
+3384 1 n1-384.plc1.org sls= [384, 385, 386] site= 1386
+3385 1 n1-385.plc1.org sls= [385, 386, 387] site= 1387
+3386 1 n1-386.plc1.org sls= [386, 387, 388] site= 1388
+3387 1 n1-387.plc1.org sls= [387, 388, 389] site= 1389
+3388 1 n1-388.plc1.org sls= [388, 389, 390] site= 1390
+3389 1 n1-389.plc1.org sls= [389, 390, 391] site= 1391
+3390 1 n1-390.plc1.org sls= [390, 391, 392] site= 1392
+3391 1 n1-391.plc1.org sls= [391, 392, 393] site= 1393
+3392 1 n1-392.plc1.org sls= [392, 393, 394] site= 1394
+3393 1 n1-393.plc1.org sls= [393, 394, 395] site= 1395
+3394 1 n1-394.plc1.org sls= [394, 395, 396] site= 1396
+3395 1 n1-395.plc1.org sls= [395, 396, 397] site= 1397
+3396 1 n1-396.plc1.org sls= [396, 397, 398] site= 1398
+3397 1 n1-397.plc1.org sls= [397, 398, 399] site= 1399
+3398 1 n1-398.plc1.org sls= [398, 399, 400] site= 1400
+3399 1 n1-399.plc1.org sls= [399, 400, 401] site= 1401
+3400 1 n1-400.plc1.org sls= [400, 401, 402] site= 1402
+3401 1 n1-401.plc1.org sls= [401, 402, 403] site= 1403
+3402 1 n1-402.plc1.org sls= [402, 403, 404] site= 1404
+3403 1 n1-403.plc1.org sls= [403, 404, 405] site= 1405
+3404 1 n1-404.plc1.org sls= [404, 405, 406] site= 1406
+3405 1 n1-405.plc1.org sls= [405, 406, 407] site= 1407
+3406 1 n1-406.plc1.org sls= [406, 407, 408] site= 1408
+3407 1 n1-407.plc1.org sls= [407, 408, 409] site= 1409
+3408 1 n1-408.plc1.org sls= [408, 409, 410] site= 1410
+3409 1 n1-409.plc1.org sls= [409, 410, 411] site= 1411
+3410 1 n1-410.plc1.org sls= [410, 411, 412] site= 1412
+3411 1 n1-411.plc1.org sls= [411, 412, 413] site= 1413
+3412 1 n1-412.plc1.org sls= [412, 413, 414] site= 1414
+3413 1 n1-413.plc1.org sls= [413, 414, 415] site= 1415
+3414 1 n1-414.plc1.org sls= [414, 415, 416] site= 1416
+3415 1 n1-415.plc1.org sls= [415, 416, 417] site= 1417
+3416 1 n1-416.plc1.org sls= [416, 417, 418] site= 1418
+3417 1 n1-417.plc1.org sls= [417, 418, 419] site= 1419
+3418 1 n1-418.plc1.org sls= [418, 419, 420] site= 1420
+3419 1 n1-419.plc1.org sls= [419, 420, 421] site= 1421
+3420 1 n1-420.plc1.org sls= [420, 421, 422] site= 1422
+3421 1 n1-421.plc1.org sls= [421, 422, 423] site= 1423
+3422 1 n1-422.plc1.org sls= [422, 423, 424] site= 1424
+3423 1 n1-423.plc1.org sls= [423, 424, 425] site= 1425
+3424 1 n1-424.plc1.org sls= [424, 425, 426] site= 1426
+3425 1 n1-425.plc1.org sls= [425, 426, 427] site= 1427
+3426 1 n1-426.plc1.org sls= [426, 427, 428] site= 1428
+3427 1 n1-427.plc1.org sls= [427, 428, 429] site= 1429
+3428 1 n1-428.plc1.org sls= [428, 429, 430] site= 1430
+3429 1 n1-429.plc1.org sls= [429, 430, 431] site= 1431
+3430 1 n1-430.plc1.org sls= [430, 431, 432] site= 1432
+3431 1 n1-431.plc1.org sls= [431, 432, 433] site= 1433
+3432 1 n1-432.plc1.org sls= [432, 433, 434] site= 1434
+3433 1 n1-433.plc1.org sls= [433, 434, 435] site= 1435
+3434 1 n1-434.plc1.org sls= [434, 435, 436] site= 1436
+3435 1 n1-435.plc1.org sls= [435, 436, 437] site= 1437
+3436 1 n1-436.plc1.org sls= [436, 437, 438] site= 1438
+3437 1 n1-437.plc1.org sls= [437, 438, 439] site= 1439
+3438 1 n1-438.plc1.org sls= [438, 439, 440] site= 1440
+3439 1 n1-439.plc1.org sls= [439, 440, 441] site= 1441
+3440 1 n1-440.plc1.org sls= [440, 441, 442] site= 1442
+3441 1 n1-441.plc1.org sls= [441, 442, 443] site= 1443
+3442 1 n1-442.plc1.org sls= [442, 443, 444] site= 1444
+3443 1 n1-443.plc1.org sls= [443, 444, 445] site= 1445
+3444 1 n1-444.plc1.org sls= [444, 445, 446] site= 1446
+3445 1 n1-445.plc1.org sls= [445, 446, 447] site= 1447
+3446 1 n1-446.plc1.org sls= [446, 447, 448] site= 1448
+3447 1 n1-447.plc1.org sls= [447, 448, 449] site= 1449
+3448 1 n1-448.plc1.org sls= [448, 449, 450] site= 1450
+3449 1 n1-449.plc1.org sls= [449, 450, 451] site= 1451
+3450 1 n1-450.plc1.org sls= [450, 451, 452] site= 1452
+3451 1 n1-451.plc1.org sls= [451, 452, 453] site= 1453
+3452 1 n1-452.plc1.org sls= [452, 453, 454] site= 1454
+3453 1 n1-453.plc1.org sls= [453, 454, 455] site= 1455
+3454 1 n1-454.plc1.org sls= [454, 455, 456] site= 1456
+3455 1 n1-455.plc1.org sls= [455, 456, 457] site= 1457
+3456 1 n1-456.plc1.org sls= [456, 457, 458] site= 1458
+3457 1 n1-457.plc1.org sls= [457, 458, 459] site= 1459
+3458 1 n1-458.plc1.org sls= [458, 459, 460] site= 1460
+3459 1 n1-459.plc1.org sls= [459, 460, 461] site= 1461
+3460 1 n1-460.plc1.org sls= [460, 461, 462] site= 1462
+3461 1 n1-461.plc1.org sls= [461, 462, 463] site= 1463
+3462 1 n1-462.plc1.org sls= [462, 463, 464] site= 1464
+3463 1 n1-463.plc1.org sls= [463, 464, 465] site= 1465
+3464 1 n1-464.plc1.org sls= [464, 465, 466] site= 1466
+3465 1 n1-465.plc1.org sls= [465, 466, 467] site= 1467
+3466 1 n1-466.plc1.org sls= [466, 467, 468] site= 1468
+3467 1 n1-467.plc1.org sls= [467, 468, 469] site= 1469
+3468 1 n1-468.plc1.org sls= [468, 469, 470] site= 1470
+3469 1 n1-469.plc1.org sls= [469, 470, 471] site= 1471
+3470 1 n1-470.plc1.org sls= [470, 471, 472] site= 1472
+3471 1 n1-471.plc1.org sls= [471, 472, 473] site= 1473
+3472 1 n1-472.plc1.org sls= [472, 473, 474] site= 1474
+3473 1 n1-473.plc1.org sls= [473, 474, 475] site= 1475
+3474 1 n1-474.plc1.org sls= [474, 475, 476] site= 1476
+3475 1 n1-475.plc1.org sls= [475, 476, 477] site= 1477
+3476 1 n1-476.plc1.org sls= [476, 477, 478] site= 1478
+3477 1 n1-477.plc1.org sls= [477, 478, 479] site= 1479
+3478 1 n1-478.plc1.org sls= [478, 479, 480] site= 1480
+3479 1 n1-479.plc1.org sls= [479, 480, 481] site= 1481
+3480 1 n1-480.plc1.org sls= [480, 481, 482] site= 1482
+3481 1 n1-481.plc1.org sls= [481, 482, 483] site= 1483
+3482 1 n1-482.plc1.org sls= [482, 483, 484] site= 1484
+3483 1 n1-483.plc1.org sls= [483, 484, 485] site= 1485
+3484 1 n1-484.plc1.org sls= [484, 485, 486] site= 1486
+3485 1 n1-485.plc1.org sls= [485, 486, 487] site= 1487
+3486 1 n1-486.plc1.org sls= [486, 487, 488] site= 1488
+3487 1 n1-487.plc1.org sls= [487, 488, 489] site= 1489
+3488 1 n1-488.plc1.org sls= [488, 489, 490] site= 1490
+3489 1 n1-489.plc1.org sls= [489, 490, 491] site= 1491
+3490 1 n1-490.plc1.org sls= [490, 491, 492] site= 1492
+3491 1 n1-491.plc1.org sls= [491, 492, 493] site= 1493
+3492 1 n1-492.plc1.org sls= [492, 493, 494] site= 1494
+3493 1 n1-493.plc1.org sls= [493, 494, 495] site= 1495
+3494 1 n1-494.plc1.org sls= [494, 495, 496] site= 1496
+3495 1 n1-495.plc1.org sls= [495, 496, 497] site= 1497
+3496 1 n1-496.plc1.org sls= [496, 497, 498] site= 1498
+3497 1 n1-497.plc1.org sls= [497, 498, 499] site= 1499
+3498 1 n1-498.plc1.org sls= [498, 499, 500] site= 1500
+3499 1 n1-499.plc1.org sls= [499, 500, 501] site= 1501
+3500 1 n1-500.plc1.org sls= [500, 501, 502] site= 1502
+3501 1 n1-501.plc1.org sls= [501, 502, 503] site= 1503
+3502 1 n1-502.plc1.org sls= [502, 503, 504] site= 1504
+3503 1 n1-503.plc1.org sls= [503, 504, 505] site= 1505
+3504 1 n1-504.plc1.org sls= [504, 505, 506] site= 1506
+3505 1 n1-505.plc1.org sls= [505, 506, 507] site= 1507
+3506 1 n1-506.plc1.org sls= [506, 507, 508] site= 1508
+3507 1 n1-507.plc1.org sls= [507, 508, 509] site= 1509
+3508 1 n1-508.plc1.org sls= [508, 509, 510] site= 1510
+3509 1 n1-509.plc1.org sls= [509, 510, 511] site= 1511
+3510 1 n1-510.plc1.org sls= [510, 511, 512] site= 1512
+3511 1 n1-511.plc1.org sls= [511, 512, 513] site= 1513
+3512 1 n1-512.plc1.org sls= [512, 513, 514] site= 1514
+3513 1 n1-513.plc1.org sls= [513, 514, 515] site= 1515
+3514 1 n1-514.plc1.org sls= [514, 515, 516] site= 1516
+3515 1 n1-515.plc1.org sls= [515, 516, 517] site= 1517
+3516 1 n1-516.plc1.org sls= [516, 517, 518] site= 1518
+3517 1 n1-517.plc1.org sls= [517, 518, 519] site= 1519
+3518 1 n1-518.plc1.org sls= [518, 519, 520] site= 1520
+3519 1 n1-519.plc1.org sls= [519, 520, 521] site= 1521
+3520 1 n1-520.plc1.org sls= [520, 521, 522] site= 1522
+3521 1 n1-521.plc1.org sls= [521, 522, 523] site= 1523
+3522 1 n1-522.plc1.org sls= [522, 523, 524] site= 1524
+3523 1 n1-523.plc1.org sls= [523, 524, 525] site= 1525
+3524 1 n1-524.plc1.org sls= [524, 525, 526] site= 1526
+3525 1 n1-525.plc1.org sls= [525, 526, 527] site= 1527
+3526 1 n1-526.plc1.org sls= [526, 527, 528] site= 1528
+3527 1 n1-527.plc1.org sls= [527, 528, 529] site= 1529
+3528 1 n1-528.plc1.org sls= [528, 529, 530] site= 1530
+3529 1 n1-529.plc1.org sls= [529, 530, 531] site= 1531
+3530 1 n1-530.plc1.org sls= [530, 531, 532] site= 1532
+3531 1 n1-531.plc1.org sls= [531, 532, 533] site= 1533
+3532 1 n1-532.plc1.org sls= [532, 533, 534] site= 1534
+3533 1 n1-533.plc1.org sls= [533, 534, 535] site= 1535
+3534 1 n1-534.plc1.org sls= [534, 535, 536] site= 1536
+3535 1 n1-535.plc1.org sls= [535, 536, 537] site= 1537
+3536 1 n1-536.plc1.org sls= [536, 537, 538] site= 1538
+3537 1 n1-537.plc1.org sls= [537, 538, 539] site= 1539
+3538 1 n1-538.plc1.org sls= [538, 539, 540] site= 1540
+3539 1 n1-539.plc1.org sls= [539, 540, 541] site= 1541
+3540 1 n1-540.plc1.org sls= [540, 541, 542] site= 1542
+3541 1 n1-541.plc1.org sls= [541, 542, 543] site= 1543
+3542 1 n1-542.plc1.org sls= [542, 543, 544] site= 1544
+3543 1 n1-543.plc1.org sls= [543, 544, 545] site= 1545
+3544 1 n1-544.plc1.org sls= [544, 545, 546] site= 1546
+3545 1 n1-545.plc1.org sls= [545, 546, 547] site= 1547
+3546 1 n1-546.plc1.org sls= [546, 547, 548] site= 1548
+3547 1 n1-547.plc1.org sls= [547, 548, 549] site= 1549
+3548 1 n1-548.plc1.org sls= [548, 549, 550] site= 1550
+3549 1 n1-549.plc1.org sls= [549, 550, 551] site= 1551
+3550 1 n1-550.plc1.org sls= [550, 551, 552] site= 1552
+3551 1 n1-551.plc1.org sls= [551, 552, 553] site= 1553
+3552 1 n1-552.plc1.org sls= [552, 553, 554] site= 1554
+3553 1 n1-553.plc1.org sls= [553, 554, 555] site= 1555
+3554 1 n1-554.plc1.org sls= [554, 555, 556] site= 1556
+3555 1 n1-555.plc1.org sls= [555, 556, 557] site= 1557
+3556 1 n1-556.plc1.org sls= [556, 557, 558] site= 1558
+3557 1 n1-557.plc1.org sls= [557, 558, 559] site= 1559
+3558 1 n1-558.plc1.org sls= [558, 559, 560] site= 1560
+3559 1 n1-559.plc1.org sls= [559, 560, 561] site= 1561
+3560 1 n1-560.plc1.org sls= [560, 561, 562] site= 1562
+3561 1 n1-561.plc1.org sls= [561, 562, 563] site= 1563
+3562 1 n1-562.plc1.org sls= [562, 563, 564] site= 1564
+3563 1 n1-563.plc1.org sls= [563, 564, 565] site= 1565
+3564 1 n1-564.plc1.org sls= [564, 565, 566] site= 1566
+3565 1 n1-565.plc1.org sls= [565, 566, 567] site= 1567
+3566 1 n1-566.plc1.org sls= [566, 567, 568] site= 1568
+3567 1 n1-567.plc1.org sls= [567, 568, 569] site= 1569
+3568 1 n1-568.plc1.org sls= [568, 569, 570] site= 1570
+3569 1 n1-569.plc1.org sls= [569, 570, 571] site= 1571
+3570 1 n1-570.plc1.org sls= [570, 571, 572] site= 1572
+3571 1 n1-571.plc1.org sls= [571, 572, 573] site= 1573
+3572 1 n1-572.plc1.org sls= [572, 573, 574] site= 1574
+3573 1 n1-573.plc1.org sls= [573, 574, 575] site= 1575
+3574 1 n1-574.plc1.org sls= [574, 575, 576] site= 1576
+3575 1 n1-575.plc1.org sls= [575, 576, 577] site= 1577
+3576 1 n1-576.plc1.org sls= [576, 577, 578] site= 1578
+3577 1 n1-577.plc1.org sls= [577, 578, 579] site= 1579
+3578 1 n1-578.plc1.org sls= [578, 579, 580] site= 1580
+3579 1 n1-579.plc1.org sls= [579, 580, 581] site= 1581
+3580 1 n1-580.plc1.org sls= [580, 581, 582] site= 1582
+3581 1 n1-581.plc1.org sls= [581, 582, 583] site= 1583
+3582 1 n1-582.plc1.org sls= [582, 583, 584] site= 1584
+3583 1 n1-583.plc1.org sls= [583, 584, 585] site= 1585
+3584 1 n1-584.plc1.org sls= [584, 585, 586] site= 1586
+3585 1 n1-585.plc1.org sls= [585, 586, 587] site= 1587
+3586 1 n1-586.plc1.org sls= [586, 587, 588] site= 1588
+3587 1 n1-587.plc1.org sls= [587, 588, 589] site= 1589
+3588 1 n1-588.plc1.org sls= [588, 589, 590] site= 1590
+3589 1 n1-589.plc1.org sls= [589, 590, 591] site= 1591
+3590 1 n1-590.plc1.org sls= [590, 591, 592] site= 1592
+3591 1 n1-591.plc1.org sls= [591, 592, 593] site= 1593
+3592 1 n1-592.plc1.org sls= [592, 593, 594] site= 1594
+3593 1 n1-593.plc1.org sls= [593, 594, 595] site= 1595
+3594 1 n1-594.plc1.org sls= [594, 595, 596] site= 1596
+3595 1 n1-595.plc1.org sls= [595, 596, 597] site= 1597
+3596 1 n1-596.plc1.org sls= [596, 597, 598] site= 1598
+3597 1 n1-597.plc1.org sls= [597, 598, 599] site= 1599
+3598 1 n1-598.plc1.org sls= [598, 599, 600] site= 1600
+3599 1 n1-599.plc1.org sls= [599, 600, 601] site= 1601
+3600 1 n1-600.plc1.org sls= [600, 601, 602] site= 1602
+3601 1 n1-601.plc1.org sls= [601, 602, 603] site= 1603
+3602 1 n1-602.plc1.org sls= [602, 603, 604] site= 1604
+3603 1 n1-603.plc1.org sls= [603, 604, 605] site= 1605
+3604 1 n1-604.plc1.org sls= [604, 605, 606] site= 1606
+3605 1 n1-605.plc1.org sls= [605, 606, 607] site= 1607
+3606 1 n1-606.plc1.org sls= [606, 607, 608] site= 1608
+3607 1 n1-607.plc1.org sls= [607, 608, 609] site= 1609
+3608 1 n1-608.plc1.org sls= [608, 609, 610] site= 1610
+3609 1 n1-609.plc1.org sls= [609, 610, 611] site= 1611
+3610 1 n1-610.plc1.org sls= [610, 611, 612] site= 1612
+3611 1 n1-611.plc1.org sls= [611, 612, 613] site= 1613
+3612 1 n1-612.plc1.org sls= [612, 613, 614] site= 1614
+3613 1 n1-613.plc1.org sls= [613, 614, 615] site= 1615
+3614 1 n1-614.plc1.org sls= [614, 615, 616] site= 1616
+3615 1 n1-615.plc1.org sls= [615, 616, 617] site= 1617
+3616 1 n1-616.plc1.org sls= [616, 617, 618] site= 1618
+3617 1 n1-617.plc1.org sls= [617, 618, 619] site= 1619
+3618 1 n1-618.plc1.org sls= [618, 619, 620] site= 1620
+3619 1 n1-619.plc1.org sls= [619, 620, 621] site= 1621
+3620 1 n1-620.plc1.org sls= [620, 621, 622] site= 1622
+3621 1 n1-621.plc1.org sls= [621, 622, 623] site= 1623
+3622 1 n1-622.plc1.org sls= [622, 623, 624] site= 1624
+3623 1 n1-623.plc1.org sls= [623, 624, 625] site= 1625
+3624 1 n1-624.plc1.org sls= [624, 625, 626] site= 1626
+3625 1 n1-625.plc1.org sls= [625, 626, 627] site= 1627
+3626 1 n1-626.plc1.org sls= [626, 627, 628] site= 1628
+3627 1 n1-627.plc1.org sls= [627, 628, 629] site= 1629
+3628 1 n1-628.plc1.org sls= [628, 629, 630] site= 1630
+3629 1 n1-629.plc1.org sls= [629, 630, 631] site= 1631
+3630 1 n1-630.plc1.org sls= [630, 631, 632] site= 1632
+3631 1 n1-631.plc1.org sls= [631, 632, 633] site= 1633
+3632 1 n1-632.plc1.org sls= [632, 633, 634] site= 1634
+3633 1 n1-633.plc1.org sls= [633, 634, 635] site= 1635
+3634 1 n1-634.plc1.org sls= [634, 635, 636] site= 1636
+3635 1 n1-635.plc1.org sls= [635, 636, 637] site= 1637
+3636 1 n1-636.plc1.org sls= [636, 637, 638] site= 1638
+3637 1 n1-637.plc1.org sls= [637, 638, 639] site= 1639
+3638 1 n1-638.plc1.org sls= [638, 639, 640] site= 1640
+3639 1 n1-639.plc1.org sls= [639, 640, 641] site= 1641
+3640 1 n1-640.plc1.org sls= [640, 641, 642] site= 1642
+3641 1 n1-641.plc1.org sls= [641, 642, 643] site= 1643
+3642 1 n1-642.plc1.org sls= [642, 643, 644] site= 1644
+3643 1 n1-643.plc1.org sls= [643, 644, 645] site= 1645
+3644 1 n1-644.plc1.org sls= [644, 645, 646] site= 1646
+3645 1 n1-645.plc1.org sls= [645, 646, 647] site= 1647
+3646 1 n1-646.plc1.org sls= [646, 647, 648] site= 1648
+3647 1 n1-647.plc1.org sls= [647, 648, 649] site= 1649
+3648 1 n1-648.plc1.org sls= [648, 649, 650] site= 1650
+3649 1 n1-649.plc1.org sls= [649, 650, 651] site= 1651
+3650 1 n1-650.plc1.org sls= [650, 651, 652] site= 1652
+3651 1 n1-651.plc1.org sls= [651, 652, 653] site= 1653
+3652 1 n1-652.plc1.org sls= [652, 653, 654] site= 1654
+3653 1 n1-653.plc1.org sls= [653, 654, 655] site= 1655
+3654 1 n1-654.plc1.org sls= [654, 655, 656] site= 1656
+3655 1 n1-655.plc1.org sls= [655, 656, 657] site= 1657
+3656 1 n1-656.plc1.org sls= [656, 657, 658] site= 1658
+3657 1 n1-657.plc1.org sls= [657, 658, 659] site= 1659
+3658 1 n1-658.plc1.org sls= [658, 659, 660] site= 1660
+3659 1 n1-659.plc1.org sls= [659, 660, 661] site= 1661
+3660 1 n1-660.plc1.org sls= [660, 661, 662] site= 1662
+3661 1 n1-661.plc1.org sls= [661, 662, 663] site= 1663
+3662 1 n1-662.plc1.org sls= [662, 663, 664] site= 1664
+3663 1 n1-663.plc1.org sls= [663, 664, 665] site= 1665
+3664 1 n1-664.plc1.org sls= [664, 665, 666] site= 1666
+3665 1 n1-665.plc1.org sls= [665, 666, 667] site= 1667
+3666 1 n1-666.plc1.org sls= [666, 667, 668] site= 1668
+3667 1 n1-667.plc1.org sls= [667, 668, 669] site= 1669
+3668 1 n1-668.plc1.org sls= [668, 669, 670] site= 1670
+3669 1 n1-669.plc1.org sls= [669, 670, 671] site= 1671
+3670 1 n1-670.plc1.org sls= [670, 671, 672] site= 1672
+3671 1 n1-671.plc1.org sls= [671, 672, 673] site= 1673
+3672 1 n1-672.plc1.org sls= [672, 673, 674] site= 1674
+3673 1 n1-673.plc1.org sls= [673, 674, 675] site= 1675
+3674 1 n1-674.plc1.org sls= [674, 675, 676] site= 1676
+3675 1 n1-675.plc1.org sls= [675, 676, 677] site= 1677
+3676 1 n1-676.plc1.org sls= [676, 677, 678] site= 1678
+3677 1 n1-677.plc1.org sls= [677, 678, 679] site= 1679
+3678 1 n1-678.plc1.org sls= [678, 679, 680] site= 1680
+3679 1 n1-679.plc1.org sls= [679, 680, 681] site= 1681
+3680 1 n1-680.plc1.org sls= [680, 681, 682] site= 1682
+3681 1 n1-681.plc1.org sls= [681, 682, 683] site= 1683
+3682 1 n1-682.plc1.org sls= [682, 683, 684] site= 1684
+3683 1 n1-683.plc1.org sls= [683, 684, 685] site= 1685
+3684 1 n1-684.plc1.org sls= [684, 685, 686] site= 1686
+3685 1 n1-685.plc1.org sls= [685, 686, 687] site= 1687
+3686 1 n1-686.plc1.org sls= [686, 687, 688] site= 1688
+3687 1 n1-687.plc1.org sls= [687, 688, 689] site= 1689
+3688 1 n1-688.plc1.org sls= [688, 689, 690] site= 1690
+3689 1 n1-689.plc1.org sls= [689, 690, 691] site= 1691
+3690 1 n1-690.plc1.org sls= [690, 691, 692] site= 1692
+3691 1 n1-691.plc1.org sls= [691, 692, 693] site= 1693
+3692 1 n1-692.plc1.org sls= [692, 693, 694] site= 1694
+3693 1 n1-693.plc1.org sls= [693, 694, 695] site= 1695
+3694 1 n1-694.plc1.org sls= [694, 695, 696] site= 1696
+3695 1 n1-695.plc1.org sls= [695, 696, 697] site= 1697
+3696 1 n1-696.plc1.org sls= [696, 697, 698] site= 1698
+3697 1 n1-697.plc1.org sls= [697, 698, 699] site= 1699
+3698 1 n1-698.plc1.org sls= [698, 699, 700] site= 1700
+3699 1 n1-699.plc1.org sls= [699, 700, 701] site= 1701
+3700 1 n1-700.plc1.org sls= [700, 701, 702] site= 1702
+3701 1 n1-701.plc1.org sls= [701, 702, 703] site= 1703
+3702 1 n1-702.plc1.org sls= [702, 703, 704] site= 1704
+3703 1 n1-703.plc1.org sls= [703, 704, 705] site= 1705
+3704 1 n1-704.plc1.org sls= [704, 705, 706] site= 1706
+3705 1 n1-705.plc1.org sls= [705, 706, 707] site= 1707
+3706 1 n1-706.plc1.org sls= [706, 707, 708] site= 1708
+3707 1 n1-707.plc1.org sls= [707, 708, 709] site= 1709
+3708 1 n1-708.plc1.org sls= [708, 709, 710] site= 1710
+3709 1 n1-709.plc1.org sls= [709, 710, 711] site= 1711
+3710 1 n1-710.plc1.org sls= [710, 711, 712] site= 1712
+3711 1 n1-711.plc1.org sls= [711, 712, 713] site= 1713
+3712 1 n1-712.plc1.org sls= [712, 713, 714] site= 1714
+3713 1 n1-713.plc1.org sls= [713, 714, 715] site= 1715
+3714 1 n1-714.plc1.org sls= [714, 715, 716] site= 1716
+3715 1 n1-715.plc1.org sls= [715, 716, 717] site= 1717
+3716 1 n1-716.plc1.org sls= [716, 717, 718] site= 1718
+3717 1 n1-717.plc1.org sls= [717, 718, 719] site= 1719
+3718 1 n1-718.plc1.org sls= [718, 719, 720] site= 1720
+3719 1 n1-719.plc1.org sls= [719, 720, 721] site= 1721
+3720 1 n1-720.plc1.org sls= [720, 721, 722] site= 1722
+3721 1 n1-721.plc1.org sls= [721, 722, 723] site= 1723
+3722 1 n1-722.plc1.org sls= [722, 723, 724] site= 1724
+3723 1 n1-723.plc1.org sls= [723, 724, 725] site= 1725
+3724 1 n1-724.plc1.org sls= [724, 725, 726] site= 1726
+3725 1 n1-725.plc1.org sls= [725, 726, 727] site= 1727
+3726 1 n1-726.plc1.org sls= [726, 727, 728] site= 1728
+3727 1 n1-727.plc1.org sls= [727, 728, 729] site= 1729
+3728 1 n1-728.plc1.org sls= [728, 729, 730] site= 1730
+3729 1 n1-729.plc1.org sls= [729, 730, 731] site= 1731
+3730 1 n1-730.plc1.org sls= [730, 731, 732] site= 1732
+3731 1 n1-731.plc1.org sls= [731, 732, 733] site= 1733
+3732 1 n1-732.plc1.org sls= [732, 733, 734] site= 1734
+3733 1 n1-733.plc1.org sls= [733, 734, 735] site= 1735
+3734 1 n1-734.plc1.org sls= [734, 735, 736] site= 1736
+3735 1 n1-735.plc1.org sls= [735, 736, 737] site= 1737
+3736 1 n1-736.plc1.org sls= [736, 737, 738] site= 1738
+3737 1 n1-737.plc1.org sls= [737, 738, 739] site= 1739
+3738 1 n1-738.plc1.org sls= [738, 739, 740] site= 1740
+3739 1 n1-739.plc1.org sls= [739, 740, 741] site= 1741
+3740 1 n1-740.plc1.org sls= [740, 741, 742] site= 1742
+3741 1 n1-741.plc1.org sls= [741, 742, 743] site= 1743
+3742 1 n1-742.plc1.org sls= [742, 743, 744] site= 1744
+3743 1 n1-743.plc1.org sls= [743, 744, 745] site= 1745
+3744 1 n1-744.plc1.org sls= [744, 745, 746] site= 1746
+3745 1 n1-745.plc1.org sls= [745, 746, 747] site= 1747
+3746 1 n1-746.plc1.org sls= [746, 747, 748] site= 1748
+3747 1 n1-747.plc1.org sls= [747, 748, 749] site= 1749
+3748 1 n1-748.plc1.org sls= [748, 749, 750] site= 1750
+3749 1 n1-749.plc1.org sls= [749, 750, 751] site= 1751
+3750 1 n1-750.plc1.org sls= [750, 751, 752] site= 1752
+3751 1 n1-751.plc1.org sls= [751, 752, 753] site= 1753
+3752 1 n1-752.plc1.org sls= [752, 753, 754] site= 1754
+3753 1 n1-753.plc1.org sls= [753, 754, 755] site= 1755
+3754 1 n1-754.plc1.org sls= [754, 755, 756] site= 1756
+3755 1 n1-755.plc1.org sls= [755, 756, 757] site= 1757
+3756 1 n1-756.plc1.org sls= [756, 757, 758] site= 1758
+3757 1 n1-757.plc1.org sls= [757, 758, 759] site= 1759
+3758 1 n1-758.plc1.org sls= [758, 759, 760] site= 1760
+3759 1 n1-759.plc1.org sls= [759, 760, 761] site= 1761
+3760 1 n1-760.plc1.org sls= [760, 761, 762] site= 1762
+3761 1 n1-761.plc1.org sls= [761, 762, 763] site= 1763
+3762 1 n1-762.plc1.org sls= [762, 763, 764] site= 1764
+3763 1 n1-763.plc1.org sls= [763, 764, 765] site= 1765
+3764 1 n1-764.plc1.org sls= [764, 765, 766] site= 1766
+3765 1 n1-765.plc1.org sls= [765, 766, 767] site= 1767
+3766 1 n1-766.plc1.org sls= [766, 767, 768] site= 1768
+3767 1 n1-767.plc1.org sls= [767, 768, 769] site= 1769
+3768 1 n1-768.plc1.org sls= [768, 769, 770] site= 1770
+3769 1 n1-769.plc1.org sls= [769, 770, 771] site= 1771
+3770 1 n1-770.plc1.org sls= [770, 771, 772] site= 1772
+3771 1 n1-771.plc1.org sls= [771, 772, 773] site= 1773
+3772 1 n1-772.plc1.org sls= [772, 773, 774] site= 1774
+3773 1 n1-773.plc1.org sls= [773, 774, 775] site= 1775
+3774 1 n1-774.plc1.org sls= [774, 775, 776] site= 1776
+3775 1 n1-775.plc1.org sls= [775, 776, 777] site= 1777
+3776 1 n1-776.plc1.org sls= [776, 777, 778] site= 1778
+3777 1 n1-777.plc1.org sls= [777, 778, 779] site= 1779
+3778 1 n1-778.plc1.org sls= [778, 779, 780] site= 1780
+3779 1 n1-779.plc1.org sls= [779, 780, 781] site= 1781
+3780 1 n1-780.plc1.org sls= [780, 781, 782] site= 1782
+3781 1 n1-781.plc1.org sls= [781, 782, 783] site= 1783
+3782 1 n1-782.plc1.org sls= [782, 783, 784] site= 1784
+3783 1 n1-783.plc1.org sls= [783, 784, 785] site= 1785
+3784 1 n1-784.plc1.org sls= [784, 785, 786] site= 1786
+3785 1 n1-785.plc1.org sls= [785, 786, 787] site= 1787
+3786 1 n1-786.plc1.org sls= [786, 787, 788] site= 1788
+3787 1 n1-787.plc1.org sls= [787, 788, 789] site= 1789
+3788 1 n1-788.plc1.org sls= [788, 789, 790] site= 1790
+3789 1 n1-789.plc1.org sls= [789, 790, 791] site= 1791
+3790 1 n1-790.plc1.org sls= [790, 791, 792] site= 1792
+3791 1 n1-791.plc1.org sls= [791, 792, 793] site= 1793
+3792 1 n1-792.plc1.org sls= [792, 793, 794] site= 1794
+3793 1 n1-793.plc1.org sls= [793, 794, 795] site= 1795
+3794 1 n1-794.plc1.org sls= [794, 795, 796] site= 1796
+3795 1 n1-795.plc1.org sls= [795, 796, 797] site= 1797
+3796 1 n1-796.plc1.org sls= [796, 797, 798] site= 1798
+3797 1 n1-797.plc1.org sls= [797, 798, 799] site= 1799
+3798 1 n1-798.plc1.org sls= [798, 799, 800] site= 1800
+3799 1 n1-799.plc1.org sls= [799, 800, 801] site= 1801
+3800 1 n1-800.plc1.org sls= [800, 801, 802] site= 1802
+3801 1 n1-801.plc1.org sls= [801, 802, 803] site= 1803
+3802 1 n1-802.plc1.org sls= [802, 803, 804] site= 1804
+3803 1 n1-803.plc1.org sls= [803, 804, 805] site= 1805
+3804 1 n1-804.plc1.org sls= [804, 805, 806] site= 1806
+3805 1 n1-805.plc1.org sls= [805, 806, 807] site= 1807
+3806 1 n1-806.plc1.org sls= [806, 807, 808] site= 1808
+3807 1 n1-807.plc1.org sls= [807, 808, 809] site= 1809
+3808 1 n1-808.plc1.org sls= [808, 809, 810] site= 1810
+3809 1 n1-809.plc1.org sls= [809, 810, 811] site= 1811
+3810 1 n1-810.plc1.org sls= [810, 811, 812] site= 1812
+3811 1 n1-811.plc1.org sls= [811, 812, 813] site= 1813
+3812 1 n1-812.plc1.org sls= [812, 813, 814] site= 1814
+3813 1 n1-813.plc1.org sls= [813, 814, 815] site= 1815
+3814 1 n1-814.plc1.org sls= [814, 815, 816] site= 1816
+3815 1 n1-815.plc1.org sls= [815, 816, 817] site= 1817
+3816 1 n1-816.plc1.org sls= [816, 817, 818] site= 1818
+3817 1 n1-817.plc1.org sls= [817, 818, 819] site= 1819
+3818 1 n1-818.plc1.org sls= [818, 819, 820] site= 1820
+3819 1 n1-819.plc1.org sls= [819, 820, 821] site= 1821
+3820 1 n1-820.plc1.org sls= [820, 821, 822] site= 1822
+3821 1 n1-821.plc1.org sls= [821, 822, 823] site= 1823
+3822 1 n1-822.plc1.org sls= [822, 823, 824] site= 1824
+3823 1 n1-823.plc1.org sls= [823, 824, 825] site= 1825
+3824 1 n1-824.plc1.org sls= [824, 825, 826] site= 1826
+3825 1 n1-825.plc1.org sls= [825, 826, 827] site= 1827
+3826 1 n1-826.plc1.org sls= [826, 827, 828] site= 1828
+3827 1 n1-827.plc1.org sls= [827, 828, 829] site= 1829
+3828 1 n1-828.plc1.org sls= [828, 829, 830] site= 1830
+3829 1 n1-829.plc1.org sls= [829, 830, 831] site= 1831
+3830 1 n1-830.plc1.org sls= [830, 831, 832] site= 1832
+3831 1 n1-831.plc1.org sls= [831, 832, 833] site= 1833
+3832 1 n1-832.plc1.org sls= [832, 833, 834] site= 1834
+3833 1 n1-833.plc1.org sls= [833, 834, 835] site= 1835
+3834 1 n1-834.plc1.org sls= [834, 835, 836] site= 1836
+3835 1 n1-835.plc1.org sls= [835, 836, 837] site= 1837
+3836 1 n1-836.plc1.org sls= [836, 837, 838] site= 1838
+3837 1 n1-837.plc1.org sls= [837, 838, 839] site= 1839
+3838 1 n1-838.plc1.org sls= [838, 839, 840] site= 1840
+3839 1 n1-839.plc1.org sls= [839, 840, 841] site= 1841
+3840 1 n1-840.plc1.org sls= [840, 841, 842] site= 1842
+3841 1 n1-841.plc1.org sls= [841, 842, 843] site= 1843
+3842 1 n1-842.plc1.org sls= [842, 843, 844] site= 1844
+3843 1 n1-843.plc1.org sls= [843, 844, 845] site= 1845
+3844 1 n1-844.plc1.org sls= [844, 845, 846] site= 1846
+3845 1 n1-845.plc1.org sls= [845, 846, 847] site= 1847
+3846 1 n1-846.plc1.org sls= [846, 847, 848] site= 1848
+3847 1 n1-847.plc1.org sls= [847, 848, 849] site= 1849
+3848 1 n1-848.plc1.org sls= [848, 849, 850] site= 1850
+3849 1 n1-849.plc1.org sls= [849, 850, 851] site= 1851
+3850 1 n1-850.plc1.org sls= [850, 851, 852] site= 1852
+3851 1 n1-851.plc1.org sls= [851, 852, 853] site= 1853
+3852 1 n1-852.plc1.org sls= [852, 853, 854] site= 1854
+3853 1 n1-853.plc1.org sls= [853, 854, 855] site= 1855
+3854 1 n1-854.plc1.org sls= [854, 855, 856] site= 1856
+3855 1 n1-855.plc1.org sls= [855, 856, 857] site= 1857
+3856 1 n1-856.plc1.org sls= [856, 857, 858] site= 1858
+3857 1 n1-857.plc1.org sls= [857, 858, 859] site= 1859
+3858 1 n1-858.plc1.org sls= [858, 859, 860] site= 1860
+3859 1 n1-859.plc1.org sls= [859, 860, 861] site= 1861
+3860 1 n1-860.plc1.org sls= [860, 861, 862] site= 1862
+3861 1 n1-861.plc1.org sls= [861, 862, 863] site= 1863
+3862 1 n1-862.plc1.org sls= [862, 863, 864] site= 1864
+3863 1 n1-863.plc1.org sls= [863, 864, 865] site= 1865
+3864 1 n1-864.plc1.org sls= [864, 865, 866] site= 1866
+3865 1 n1-865.plc1.org sls= [865, 866, 867] site= 1867
+3866 1 n1-866.plc1.org sls= [866, 867, 868] site= 1868
+3867 1 n1-867.plc1.org sls= [867, 868, 869] site= 1869
+3868 1 n1-868.plc1.org sls= [868, 869, 870] site= 1870
+3869 1 n1-869.plc1.org sls= [869, 870, 871] site= 1871
+3870 1 n1-870.plc1.org sls= [870, 871, 872] site= 1872
+3871 1 n1-871.plc1.org sls= [871, 872, 873] site= 1873
+3872 1 n1-872.plc1.org sls= [872, 873, 874] site= 1874
+3873 1 n1-873.plc1.org sls= [873, 874, 875] site= 1875
+3874 1 n1-874.plc1.org sls= [874, 875, 876] site= 1876
+3875 1 n1-875.plc1.org sls= [875, 876, 877] site= 1877
+3876 1 n1-876.plc1.org sls= [876, 877, 878] site= 1878
+3877 1 n1-877.plc1.org sls= [877, 878, 879] site= 1879
+3878 1 n1-878.plc1.org sls= [878, 879, 880] site= 1880
+3879 1 n1-879.plc1.org sls= [879, 880, 881] site= 1881
+3880 1 n1-880.plc1.org sls= [880, 881, 882] site= 1882
+3881 1 n1-881.plc1.org sls= [881, 882, 883] site= 1883
+3882 1 n1-882.plc1.org sls= [882, 883, 884] site= 1884
+3883 1 n1-883.plc1.org sls= [883, 884, 885] site= 1885
+3884 1 n1-884.plc1.org sls= [884, 885, 886] site= 1886
+3885 1 n1-885.plc1.org sls= [885, 886, 887] site= 1887
+3886 1 n1-886.plc1.org sls= [886, 887, 888] site= 1888
+3887 1 n1-887.plc1.org sls= [887, 888, 889] site= 1889
+3888 1 n1-888.plc1.org sls= [888, 889, 890] site= 1890
+3889 1 n1-889.plc1.org sls= [889, 890, 891] site= 1891
+3890 1 n1-890.plc1.org sls= [890, 891, 892] site= 1892
+3891 1 n1-891.plc1.org sls= [891, 892, 893] site= 1893
+3892 1 n1-892.plc1.org sls= [892, 893, 894] site= 1894
+3893 1 n1-893.plc1.org sls= [893, 894, 895] site= 1895
+3894 1 n1-894.plc1.org sls= [894, 895, 896] site= 1896
+3895 1 n1-895.plc1.org sls= [895, 896, 897] site= 1897
+3896 1 n1-896.plc1.org sls= [896, 897, 898] site= 1898
+3897 1 n1-897.plc1.org sls= [897, 898, 899] site= 1899
+3898 1 n1-898.plc1.org sls= [898, 899, 900] site= 1900
+3899 1 n1-899.plc1.org sls= [899, 900, 901] site= 1901
+3900 1 n1-900.plc1.org sls= [900, 901, 902] site= 1902
+3901 1 n1-901.plc1.org sls= [901, 902, 903] site= 1903
+3902 1 n1-902.plc1.org sls= [902, 903, 904] site= 1904
+3903 1 n1-903.plc1.org sls= [903, 904, 905] site= 1905
+3904 1 n1-904.plc1.org sls= [904, 905, 906] site= 1906
+3905 1 n1-905.plc1.org sls= [905, 906, 907] site= 1907
+3906 1 n1-906.plc1.org sls= [906, 907, 908] site= 1908
+3907 1 n1-907.plc1.org sls= [907, 908, 909] site= 1909
+3908 1 n1-908.plc1.org sls= [908, 909, 910] site= 1910
+3909 1 n1-909.plc1.org sls= [909, 910, 911] site= 1911
+3910 1 n1-910.plc1.org sls= [910, 911, 912] site= 1912
+3911 1 n1-911.plc1.org sls= [911, 912, 913] site= 1913
+3912 1 n1-912.plc1.org sls= [912, 913, 914] site= 1914
+3913 1 n1-913.plc1.org sls= [913, 914, 915] site= 1915
+3914 1 n1-914.plc1.org sls= [914, 915, 916] site= 1916
+3915 1 n1-915.plc1.org sls= [915, 916, 917] site= 1917
+3916 1 n1-916.plc1.org sls= [916, 917, 918] site= 1918
+3917 1 n1-917.plc1.org sls= [917, 918, 919] site= 1919
+3918 1 n1-918.plc1.org sls= [918, 919, 920] site= 1920
+3919 1 n1-919.plc1.org sls= [919, 920, 921] site= 1921
+3920 1 n1-920.plc1.org sls= [920, 921, 922] site= 1922
+3921 1 n1-921.plc1.org sls= [921, 922, 923] site= 1923
+3922 1 n1-922.plc1.org sls= [922, 923, 924] site= 1924
+3923 1 n1-923.plc1.org sls= [923, 924, 925] site= 1925
+3924 1 n1-924.plc1.org sls= [924, 925, 926] site= 1926
+3925 1 n1-925.plc1.org sls= [925, 926, 927] site= 1927
+3926 1 n1-926.plc1.org sls= [926, 927, 928] site= 1928
+3927 1 n1-927.plc1.org sls= [927, 928, 929] site= 1929
+3928 1 n1-928.plc1.org sls= [928, 929, 930] site= 1930
+3929 1 n1-929.plc1.org sls= [929, 930, 931] site= 1931
+3930 1 n1-930.plc1.org sls= [930, 931, 932] site= 1932
+3931 1 n1-931.plc1.org sls= [931, 932, 933] site= 1933
+3932 1 n1-932.plc1.org sls= [932, 933, 934] site= 1934
+3933 1 n1-933.plc1.org sls= [933, 934, 935] site= 1935
+3934 1 n1-934.plc1.org sls= [934, 935, 936] site= 1936
+3935 1 n1-935.plc1.org sls= [935, 936, 937] site= 1937
+3936 1 n1-936.plc1.org sls= [936, 937, 938] site= 1938
+3937 1 n1-937.plc1.org sls= [937, 938, 939] site= 1939
+3938 1 n1-938.plc1.org sls= [938, 939, 940] site= 1940
+3939 1 n1-939.plc1.org sls= [939, 940, 941] site= 1941
+3940 1 n1-940.plc1.org sls= [940, 941, 942] site= 1942
+3941 1 n1-941.plc1.org sls= [941, 942, 943] site= 1943
+3942 1 n1-942.plc1.org sls= [942, 943, 944] site= 1944
+3943 1 n1-943.plc1.org sls= [943, 944, 945] site= 1945
+3944 1 n1-944.plc1.org sls= [944, 945, 946] site= 1946
+3945 1 n1-945.plc1.org sls= [945, 946, 947] site= 1947
+3946 1 n1-946.plc1.org sls= [946, 947, 948] site= 1948
+3947 1 n1-947.plc1.org sls= [947, 948, 949] site= 1949
+3948 1 n1-948.plc1.org sls= [948, 949, 950] site= 1950
+3949 1 n1-949.plc1.org sls= [949, 950, 951] site= 1951
+3950 1 n1-950.plc1.org sls= [950, 951, 952] site= 1952
+3951 1 n1-951.plc1.org sls= [951, 952, 953] site= 1953
+3952 1 n1-952.plc1.org sls= [952, 953, 954] site= 1954
+3953 1 n1-953.plc1.org sls= [953, 954, 955] site= 1955
+3954 1 n1-954.plc1.org sls= [954, 955, 956] site= 1956
+3955 1 n1-955.plc1.org sls= [955, 956, 957] site= 1957
+3956 1 n1-956.plc1.org sls= [956, 957, 958] site= 1958
+3957 1 n1-957.plc1.org sls= [957, 958, 959] site= 1959
+3958 1 n1-958.plc1.org sls= [958, 959, 960] site= 1960
+3959 1 n1-959.plc1.org sls= [959, 960, 961] site= 1961
+3960 1 n1-960.plc1.org sls= [960, 961, 962] site= 1962
+3961 1 n1-961.plc1.org sls= [961, 962, 963] site= 1963
+3962 1 n1-962.plc1.org sls= [962, 963, 964] site= 1964
+3963 1 n1-963.plc1.org sls= [963, 964, 965] site= 1965
+3964 1 n1-964.plc1.org sls= [964, 965, 966] site= 1966
+3965 1 n1-965.plc1.org sls= [965, 966, 967] site= 1967
+3966 1 n1-966.plc1.org sls= [966, 967, 968] site= 1968
+3967 1 n1-967.plc1.org sls= [967, 968, 969] site= 1969
+3968 1 n1-968.plc1.org sls= [968, 969, 970] site= 1970
+3969 1 n1-969.plc1.org sls= [969, 970, 971] site= 1971
+3970 1 n1-970.plc1.org sls= [970, 971, 972] site= 1972
+3971 1 n1-971.plc1.org sls= [971, 972, 973] site= 1973
+3972 1 n1-972.plc1.org sls= [972, 973, 974] site= 1974
+3973 1 n1-973.plc1.org sls= [973, 974, 975] site= 1975
+3974 1 n1-974.plc1.org sls= [974, 975, 976] site= 1976
+3975 1 n1-975.plc1.org sls= [975, 976, 977] site= 1977
+3976 1 n1-976.plc1.org sls= [976, 977, 978] site= 1978
+3977 1 n1-977.plc1.org sls= [977, 978, 979] site= 1979
+3978 1 n1-978.plc1.org sls= [978, 979, 980] site= 1980
+3979 1 n1-979.plc1.org sls= [979, 980, 981] site= 1981
+3980 1 n1-980.plc1.org sls= [980, 981, 982] site= 1982
+3981 1 n1-981.plc1.org sls= [981, 982, 983] site= 1983
+3982 1 n1-982.plc1.org sls= [982, 983, 984] site= 1984
+3983 1 n1-983.plc1.org sls= [983, 984, 985] site= 1985
+3984 1 n1-984.plc1.org sls= [984, 985, 986] site= 1986
+3985 1 n1-985.plc1.org sls= [985, 986, 987] site= 1987
+3986 1 n1-986.plc1.org sls= [986, 987, 988] site= 1988
+3987 1 n1-987.plc1.org sls= [987, 988, 989] site= 1989
+3988 1 n1-988.plc1.org sls= [988, 989, 990] site= 1990
+3989 1 n1-989.plc1.org sls= [989, 990, 991] site= 1991
+3990 1 n1-990.plc1.org sls= [990, 991, 992] site= 1992
+3991 1 n1-991.plc1.org sls= [991, 992, 993] site= 1993
+3992 1 n1-992.plc1.org sls= [992, 993, 994] site= 1994
+3993 1 n1-993.plc1.org sls= [993, 994, 995] site= 1995
+3994 1 n1-994.plc1.org sls= [994, 995, 996] site= 1996
+3995 1 n1-995.plc1.org sls= [995, 996, 997] site= 1997
+3996 1 n1-996.plc1.org sls= [996, 997, 998] site= 1998
+3997 1 n1-997.plc1.org sls= [997, 998, 999] site= 1999
+3998 1 n1-998.plc1.org sls= [998, 999, 1000] site= 2000
+3999 1 n1-999.plc1.org sls= [999, 1000, 1001] site= 2001
+4000 1 n1-1000.plc1.org sls= [1000, 1001, 1002] site= 2002
+4001 1 n1-1001.plc1.org sls= [1001, 1002, 1003] site= 1003
+4002 1 n1-1002.plc1.org sls= [1002, 1003, 1004] site= 1004
+4003 1 n1-1003.plc1.org sls= [1003, 1004, 1005] site= 1005
+4004 1 n1-1004.plc1.org sls= [1004, 1005, 1006] site= 1006
+4005 1 n1-1005.plc1.org sls= [1005, 1006, 1007] site= 1007
+4006 1 n1-1006.plc1.org sls= [1006, 1007, 1008] site= 1008
+4007 1 n1-1007.plc1.org sls= [1007, 1008, 1009] site= 1009
+4008 1 n1-1008.plc1.org sls= [1008, 1009, 1010] site= 1010
+4009 1 n1-1009.plc1.org sls= [1009, 1010, 1011] site= 1011
+4010 1 n1-1010.plc1.org sls= [1010, 1011, 1012] site= 1012
+4011 1 n1-1011.plc1.org sls= [1011, 1012, 1013] site= 1013
+4012 1 n1-1012.plc1.org sls= [1012, 1013, 1014] site= 1014
+4013 1 n1-1013.plc1.org sls= [1013, 1014, 1015] site= 1015
+4014 1 n1-1014.plc1.org sls= [1014, 1015, 1016] site= 1016
+4015 1 n1-1015.plc1.org sls= [1015, 1016, 1017] site= 1017
+4016 1 n1-1016.plc1.org sls= [1016, 1017, 1018] site= 1018
+4017 1 n1-1017.plc1.org sls= [1017, 1018, 1019] site= 1019
+4018 1 n1-1018.plc1.org sls= [1018, 1019, 1020] site= 1020
+4019 1 n1-1019.plc1.org sls= [1019, 1020, 1021] site= 1021
+4020 1 n1-1020.plc1.org sls= [1020, 1021, 1022] site= 1022
+4021 1 n1-1021.plc1.org sls= [1021, 1022, 1023] site= 1023
+4022 1 n1-1022.plc1.org sls= [1022, 1023, 1024] site= 1024
+4023 1 n1-1023.plc1.org sls= [1023, 1024, 1025] site= 1025
+4024 1 n1-1024.plc1.org sls= [1024, 1025, 1026] site= 1026
+4025 1 n1-1025.plc1.org sls= [1025, 1026, 1027] site= 1027
+4026 1 n1-1026.plc1.org sls= [1026, 1027, 1028] site= 1028
+4027 1 n1-1027.plc1.org sls= [1027, 1028, 1029] site= 1029
+4028 1 n1-1028.plc1.org sls= [1028, 1029, 1030] site= 1030
+4029 1 n1-1029.plc1.org sls= [1029, 1030, 1031] site= 1031
+4030 1 n1-1030.plc1.org sls= [1030, 1031, 1032] site= 1032
+4031 1 n1-1031.plc1.org sls= [1031, 1032, 1033] site= 1033
+4032 1 n1-1032.plc1.org sls= [1032, 1033, 1034] site= 1034
+4033 1 n1-1033.plc1.org sls= [1033, 1034, 1035] site= 1035
+4034 1 n1-1034.plc1.org sls= [1034, 1035, 1036] site= 1036
+4035 1 n1-1035.plc1.org sls= [1035, 1036, 1037] site= 1037
+4036 1 n1-1036.plc1.org sls= [1036, 1037, 1038] site= 1038
+4037 1 n1-1037.plc1.org sls= [1037, 1038, 1039] site= 1039
+4038 1 n1-1038.plc1.org sls= [1038, 1039, 1040] site= 1040
+4039 1 n1-1039.plc1.org sls= [1039, 1040, 1041] site= 1041
+4040 1 n1-1040.plc1.org sls= [1040, 1041, 1042] site= 1042
+4041 1 n1-1041.plc1.org sls= [1041, 1042, 1043] site= 1043
+4042 1 n1-1042.plc1.org sls= [1042, 1043, 1044] site= 1044
+4043 1 n1-1043.plc1.org sls= [1043, 1044, 1045] site= 1045
+4044 1 n1-1044.plc1.org sls= [1044, 1045, 1046] site= 1046
+4045 1 n1-1045.plc1.org sls= [1045, 1046, 1047] site= 1047
+4046 1 n1-1046.plc1.org sls= [1046, 1047, 1048] site= 1048
+4047 1 n1-1047.plc1.org sls= [1047, 1048, 1049] site= 1049
+4048 1 n1-1048.plc1.org sls= [1048, 1049, 1050] site= 1050
+4049 1 n1-1049.plc1.org sls= [1049, 1050, 1051] site= 1051
+4050 1 n1-1050.plc1.org sls= [1050, 1051, 1052] site= 1052
+4051 1 n1-1051.plc1.org sls= [1051, 1052, 1053] site= 1053
+4052 1 n1-1052.plc1.org sls= [1052, 1053, 1054] site= 1054
+4053 1 n1-1053.plc1.org sls= [1053, 1054, 1055] site= 1055
+4054 1 n1-1054.plc1.org sls= [1054, 1055, 1056] site= 1056
+4055 1 n1-1055.plc1.org sls= [1055, 1056, 1057] site= 1057
+4056 1 n1-1056.plc1.org sls= [1056, 1057, 1058] site= 1058
+4057 1 n1-1057.plc1.org sls= [1057, 1058, 1059] site= 1059
+4058 1 n1-1058.plc1.org sls= [1058, 1059, 1060] site= 1060
+4059 1 n1-1059.plc1.org sls= [1059, 1060, 1061] site= 1061
+4060 1 n1-1060.plc1.org sls= [1060, 1061, 1062] site= 1062
+4061 1 n1-1061.plc1.org sls= [1061, 1062, 1063] site= 1063
+4062 1 n1-1062.plc1.org sls= [1062, 1063, 1064] site= 1064
+4063 1 n1-1063.plc1.org sls= [1063, 1064, 1065] site= 1065
+4064 1 n1-1064.plc1.org sls= [1064, 1065, 1066] site= 1066
+4065 1 n1-1065.plc1.org sls= [1065, 1066, 1067] site= 1067
+4066 1 n1-1066.plc1.org sls= [1066, 1067, 1068] site= 1068
+4067 1 n1-1067.plc1.org sls= [1067, 1068, 1069] site= 1069
+4068 1 n1-1068.plc1.org sls= [1068, 1069, 1070] site= 1070
+4069 1 n1-1069.plc1.org sls= [1069, 1070, 1071] site= 1071
+4070 1 n1-1070.plc1.org sls= [1070, 1071, 1072] site= 1072
+4071 1 n1-1071.plc1.org sls= [1071, 1072, 1073] site= 1073
+4072 1 n1-1072.plc1.org sls= [1072, 1073, 1074] site= 1074
+4073 1 n1-1073.plc1.org sls= [1073, 1074, 1075] site= 1075
+4074 1 n1-1074.plc1.org sls= [1074, 1075, 1076] site= 1076
+4075 1 n1-1075.plc1.org sls= [1075, 1076, 1077] site= 1077
+4076 1 n1-1076.plc1.org sls= [1076, 1077, 1078] site= 1078
+4077 1 n1-1077.plc1.org sls= [1077, 1078, 1079] site= 1079
+4078 1 n1-1078.plc1.org sls= [1078, 1079, 1080] site= 1080
+4079 1 n1-1079.plc1.org sls= [1079, 1080, 1081] site= 1081
+4080 1 n1-1080.plc1.org sls= [1080, 1081, 1082] site= 1082
+4081 1 n1-1081.plc1.org sls= [1081, 1082, 1083] site= 1083
+4082 1 n1-1082.plc1.org sls= [1082, 1083, 1084] site= 1084
+4083 1 n1-1083.plc1.org sls= [1083, 1084, 1085] site= 1085
+4084 1 n1-1084.plc1.org sls= [1084, 1085, 1086] site= 1086
+4085 1 n1-1085.plc1.org sls= [1085, 1086, 1087] site= 1087
+4086 1 n1-1086.plc1.org sls= [1086, 1087, 1088] site= 1088
+4087 1 n1-1087.plc1.org sls= [1087, 1088, 1089] site= 1089
+4088 1 n1-1088.plc1.org sls= [1088, 1089, 1090] site= 1090
+4089 1 n1-1089.plc1.org sls= [1089, 1090, 1091] site= 1091
+4090 1 n1-1090.plc1.org sls= [1090, 1091, 1092] site= 1092
+4091 1 n1-1091.plc1.org sls= [1091, 1092, 1093] site= 1093
+4092 1 n1-1092.plc1.org sls= [1092, 1093, 1094] site= 1094
+4093 1 n1-1093.plc1.org sls= [1093, 1094, 1095] site= 1095
+4094 1 n1-1094.plc1.org sls= [1094, 1095, 1096] site= 1096
+4095 1 n1-1095.plc1.org sls= [1095, 1096, 1097] site= 1097
+4096 1 n1-1096.plc1.org sls= [1096, 1097, 1098] site= 1098
+4097 1 n1-1097.plc1.org sls= [1097, 1098, 1099] site= 1099
+4098 1 n1-1098.plc1.org sls= [1098, 1099, 1100] site= 1100
+4099 1 n1-1099.plc1.org sls= [1099, 1100, 1101] site= 1101
+4100 1 n1-1100.plc1.org sls= [1100, 1101, 1102] site= 1102
+4101 1 n1-1101.plc1.org sls= [1101, 1102, 1103] site= 1103
+4102 1 n1-1102.plc1.org sls= [1102, 1103, 1104] site= 1104
+4103 1 n1-1103.plc1.org sls= [1103, 1104, 1105] site= 1105
+4104 1 n1-1104.plc1.org sls= [1104, 1105, 1106] site= 1106
+4105 1 n1-1105.plc1.org sls= [1105, 1106, 1107] site= 1107
+4106 1 n1-1106.plc1.org sls= [1106, 1107, 1108] site= 1108
+4107 1 n1-1107.plc1.org sls= [1107, 1108, 1109] site= 1109
+4108 1 n1-1108.plc1.org sls= [1108, 1109, 1110] site= 1110
+4109 1 n1-1109.plc1.org sls= [1109, 1110, 1111] site= 1111
+4110 1 n1-1110.plc1.org sls= [1110, 1111, 1112] site= 1112
+4111 1 n1-1111.plc1.org sls= [1111, 1112, 1113] site= 1113
+4112 1 n1-1112.plc1.org sls= [1112, 1113, 1114] site= 1114
+4113 1 n1-1113.plc1.org sls= [1113, 1114, 1115] site= 1115
+4114 1 n1-1114.plc1.org sls= [1114, 1115, 1116] site= 1116
+4115 1 n1-1115.plc1.org sls= [1115, 1116, 1117] site= 1117
+4116 1 n1-1116.plc1.org sls= [1116, 1117, 1118] site= 1118
+4117 1 n1-1117.plc1.org sls= [1117, 1118, 1119] site= 1119
+4118 1 n1-1118.plc1.org sls= [1118, 1119, 1120] site= 1120
+4119 1 n1-1119.plc1.org sls= [1119, 1120, 1121] site= 1121
+4120 1 n1-1120.plc1.org sls= [1120, 1121, 1122] site= 1122
+4121 1 n1-1121.plc1.org sls= [1121, 1122, 1123] site= 1123
+4122 1 n1-1122.plc1.org sls= [1122, 1123, 1124] site= 1124
+4123 1 n1-1123.plc1.org sls= [1123, 1124, 1125] site= 1125
+4124 1 n1-1124.plc1.org sls= [1124, 1125, 1126] site= 1126
+4125 1 n1-1125.plc1.org sls= [1125, 1126, 1127] site= 1127
+4126 1 n1-1126.plc1.org sls= [1126, 1127, 1128] site= 1128
+4127 1 n1-1127.plc1.org sls= [1127, 1128, 1129] site= 1129
+4128 1 n1-1128.plc1.org sls= [1128, 1129, 1130] site= 1130
+4129 1 n1-1129.plc1.org sls= [1129, 1130, 1131] site= 1131
+4130 1 n1-1130.plc1.org sls= [1130, 1131, 1132] site= 1132
+4131 1 n1-1131.plc1.org sls= [1131, 1132, 1133] site= 1133
+4132 1 n1-1132.plc1.org sls= [1132, 1133, 1134] site= 1134
+4133 1 n1-1133.plc1.org sls= [1133, 1134, 1135] site= 1135
+4134 1 n1-1134.plc1.org sls= [1134, 1135, 1136] site= 1136
+4135 1 n1-1135.plc1.org sls= [1135, 1136, 1137] site= 1137
+4136 1 n1-1136.plc1.org sls= [1136, 1137, 1138] site= 1138
+4137 1 n1-1137.plc1.org sls= [1137, 1138, 1139] site= 1139
+4138 1 n1-1138.plc1.org sls= [1138, 1139, 1140] site= 1140
+4139 1 n1-1139.plc1.org sls= [1139, 1140, 1141] site= 1141
+4140 1 n1-1140.plc1.org sls= [1140, 1141, 1142] site= 1142
+4141 1 n1-1141.plc1.org sls= [1141, 1142, 1143] site= 1143
+4142 1 n1-1142.plc1.org sls= [1142, 1143, 1144] site= 1144
+4143 1 n1-1143.plc1.org sls= [1143, 1144, 1145] site= 1145
+4144 1 n1-1144.plc1.org sls= [1144, 1145, 1146] site= 1146
+4145 1 n1-1145.plc1.org sls= [1145, 1146, 1147] site= 1147
+4146 1 n1-1146.plc1.org sls= [1146, 1147, 1148] site= 1148
+4147 1 n1-1147.plc1.org sls= [1147, 1148, 1149] site= 1149
+4148 1 n1-1148.plc1.org sls= [1148, 1149, 1150] site= 1150
+4149 1 n1-1149.plc1.org sls= [1149, 1150, 1151] site= 1151
+4150 1 n1-1150.plc1.org sls= [1150, 1151, 1152] site= 1152
+4151 1 n1-1151.plc1.org sls= [1151, 1152, 1153] site= 1153
+4152 1 n1-1152.plc1.org sls= [1152, 1153, 1154] site= 1154
+4153 1 n1-1153.plc1.org sls= [1153, 1154, 1155] site= 1155
+4154 1 n1-1154.plc1.org sls= [1154, 1155, 1156] site= 1156
+4155 1 n1-1155.plc1.org sls= [1155, 1156, 1157] site= 1157
+4156 1 n1-1156.plc1.org sls= [1156, 1157, 1158] site= 1158
+4157 1 n1-1157.plc1.org sls= [1157, 1158, 1159] site= 1159
+4158 1 n1-1158.plc1.org sls= [1158, 1159, 1160] site= 1160
+4159 1 n1-1159.plc1.org sls= [1159, 1160, 1161] site= 1161
+4160 1 n1-1160.plc1.org sls= [1160, 1161, 1162] site= 1162
+4161 1 n1-1161.plc1.org sls= [1161, 1162, 1163] site= 1163
+4162 1 n1-1162.plc1.org sls= [1162, 1163, 1164] site= 1164
+4163 1 n1-1163.plc1.org sls= [1163, 1164, 1165] site= 1165
+4164 1 n1-1164.plc1.org sls= [1164, 1165, 1166] site= 1166
+4165 1 n1-1165.plc1.org sls= [1165, 1166, 1167] site= 1167
+4166 1 n1-1166.plc1.org sls= [1166, 1167, 1168] site= 1168
+4167 1 n1-1167.plc1.org sls= [1167, 1168, 1169] site= 1169
+4168 1 n1-1168.plc1.org sls= [1168, 1169, 1170] site= 1170
+4169 1 n1-1169.plc1.org sls= [1169, 1170, 1171] site= 1171
+4170 1 n1-1170.plc1.org sls= [1170, 1171, 1172] site= 1172
+4171 1 n1-1171.plc1.org sls= [1171, 1172, 1173] site= 1173
+4172 1 n1-1172.plc1.org sls= [1172, 1173, 1174] site= 1174
+4173 1 n1-1173.plc1.org sls= [1173, 1174, 1175] site= 1175
+4174 1 n1-1174.plc1.org sls= [1174, 1175, 1176] site= 1176
+4175 1 n1-1175.plc1.org sls= [1175, 1176, 1177] site= 1177
+4176 1 n1-1176.plc1.org sls= [1176, 1177, 1178] site= 1178
+4177 1 n1-1177.plc1.org sls= [1177, 1178, 1179] site= 1179
+4178 1 n1-1178.plc1.org sls= [1178, 1179, 1180] site= 1180
+4179 1 n1-1179.plc1.org sls= [1179, 1180, 1181] site= 1181
+4180 1 n1-1180.plc1.org sls= [1180, 1181, 1182] site= 1182
+4181 1 n1-1181.plc1.org sls= [1181, 1182, 1183] site= 1183
+4182 1 n1-1182.plc1.org sls= [1182, 1183, 1184] site= 1184
+4183 1 n1-1183.plc1.org sls= [1183, 1184, 1185] site= 1185
+4184 1 n1-1184.plc1.org sls= [1184, 1185, 1186] site= 1186
+4185 1 n1-1185.plc1.org sls= [1185, 1186, 1187] site= 1187
+4186 1 n1-1186.plc1.org sls= [1186, 1187, 1188] site= 1188
+4187 1 n1-1187.plc1.org sls= [1187, 1188, 1189] site= 1189
+4188 1 n1-1188.plc1.org sls= [1188, 1189, 1190] site= 1190
+4189 1 n1-1189.plc1.org sls= [1189, 1190, 1191] site= 1191
+4190 1 n1-1190.plc1.org sls= [1190, 1191, 1192] site= 1192
+4191 1 n1-1191.plc1.org sls= [1191, 1192, 1193] site= 1193
+4192 1 n1-1192.plc1.org sls= [1192, 1193, 1194] site= 1194
+4193 1 n1-1193.plc1.org sls= [1193, 1194, 1195] site= 1195
+4194 1 n1-1194.plc1.org sls= [1194, 1195, 1196] site= 1196
+4195 1 n1-1195.plc1.org sls= [1195, 1196, 1197] site= 1197
+4196 1 n1-1196.plc1.org sls= [1196, 1197, 1198] site= 1198
+4197 1 n1-1197.plc1.org sls= [1197, 1198, 1199] site= 1199
+4198 1 n1-1198.plc1.org sls= [1198, 1199, 1200] site= 1200
+4199 1 n1-1199.plc1.org sls= [1199, 1200, 1201] site= 1201
+4200 1 n1-1200.plc1.org sls= [1200, 1201, 1202] site= 1202
+4201 1 n1-1201.plc1.org sls= [1201, 1202, 1203] site= 1203
+4202 1 n1-1202.plc1.org sls= [1202, 1203, 1204] site= 1204
+4203 1 n1-1203.plc1.org sls= [1203, 1204, 1205] site= 1205
+4204 1 n1-1204.plc1.org sls= [1204, 1205, 1206] site= 1206
+4205 1 n1-1205.plc1.org sls= [1205, 1206, 1207] site= 1207
+4206 1 n1-1206.plc1.org sls= [1206, 1207, 1208] site= 1208
+4207 1 n1-1207.plc1.org sls= [1207, 1208, 1209] site= 1209
+4208 1 n1-1208.plc1.org sls= [1208, 1209, 1210] site= 1210
+4209 1 n1-1209.plc1.org sls= [1209, 1210, 1211] site= 1211
+4210 1 n1-1210.plc1.org sls= [1210, 1211, 1212] site= 1212
+4211 1 n1-1211.plc1.org sls= [1211, 1212, 1213] site= 1213
+4212 1 n1-1212.plc1.org sls= [1212, 1213, 1214] site= 1214
+4213 1 n1-1213.plc1.org sls= [1213, 1214, 1215] site= 1215
+4214 1 n1-1214.plc1.org sls= [1214, 1215, 1216] site= 1216
+4215 1 n1-1215.plc1.org sls= [1215, 1216, 1217] site= 1217
+4216 1 n1-1216.plc1.org sls= [1216, 1217, 1218] site= 1218
+4217 1 n1-1217.plc1.org sls= [1217, 1218, 1219] site= 1219
+4218 1 n1-1218.plc1.org sls= [1218, 1219, 1220] site= 1220
+4219 1 n1-1219.plc1.org sls= [1219, 1220, 1221] site= 1221
+4220 1 n1-1220.plc1.org sls= [1220, 1221, 1222] site= 1222
+4221 1 n1-1221.plc1.org sls= [1221, 1222, 1223] site= 1223
+4222 1 n1-1222.plc1.org sls= [1222, 1223, 1224] site= 1224
+4223 1 n1-1223.plc1.org sls= [1223, 1224, 1225] site= 1225
+4224 1 n1-1224.plc1.org sls= [1224, 1225, 1226] site= 1226
+4225 1 n1-1225.plc1.org sls= [1225, 1226, 1227] site= 1227
+4226 1 n1-1226.plc1.org sls= [1226, 1227, 1228] site= 1228
+4227 1 n1-1227.plc1.org sls= [1227, 1228, 1229] site= 1229
+4228 1 n1-1228.plc1.org sls= [1228, 1229, 1230] site= 1230
+4229 1 n1-1229.plc1.org sls= [1229, 1230, 1231] site= 1231
+4230 1 n1-1230.plc1.org sls= [1230, 1231, 1232] site= 1232
+4231 1 n1-1231.plc1.org sls= [1231, 1232, 1233] site= 1233
+4232 1 n1-1232.plc1.org sls= [1232, 1233, 1234] site= 1234
+4233 1 n1-1233.plc1.org sls= [1233, 1234, 1235] site= 1235
+4234 1 n1-1234.plc1.org sls= [1234, 1235, 1236] site= 1236
+4235 1 n1-1235.plc1.org sls= [1235, 1236, 1237] site= 1237
+4236 1 n1-1236.plc1.org sls= [1236, 1237, 1238] site= 1238
+4237 1 n1-1237.plc1.org sls= [1237, 1238, 1239] site= 1239
+4238 1 n1-1238.plc1.org sls= [1238, 1239, 1240] site= 1240
+4239 1 n1-1239.plc1.org sls= [1239, 1240, 1241] site= 1241
+4240 1 n1-1240.plc1.org sls= [1240, 1241, 1242] site= 1242
+4241 1 n1-1241.plc1.org sls= [1241, 1242, 1243] site= 1243
+4242 1 n1-1242.plc1.org sls= [1242, 1243, 1244] site= 1244
+4243 1 n1-1243.plc1.org sls= [1243, 1244, 1245] site= 1245
+4244 1 n1-1244.plc1.org sls= [1244, 1245, 1246] site= 1246
+4245 1 n1-1245.plc1.org sls= [1245, 1246, 1247] site= 1247
+4246 1 n1-1246.plc1.org sls= [1246, 1247, 1248] site= 1248
+4247 1 n1-1247.plc1.org sls= [1247, 1248, 1249] site= 1249
+4248 1 n1-1248.plc1.org sls= [1248, 1249, 1250] site= 1250
+4249 1 n1-1249.plc1.org sls= [1249, 1250, 1251] site= 1251
+4250 1 n1-1250.plc1.org sls= [1250, 1251, 1252] site= 1252
+4251 1 n1-1251.plc1.org sls= [1251, 1252, 1253] site= 1253
+4252 1 n1-1252.plc1.org sls= [1252, 1253, 1254] site= 1254
+4253 1 n1-1253.plc1.org sls= [1253, 1254, 1255] site= 1255
+4254 1 n1-1254.plc1.org sls= [1254, 1255, 1256] site= 1256
+4255 1 n1-1255.plc1.org sls= [1255, 1256, 1257] site= 1257
+4256 1 n1-1256.plc1.org sls= [1256, 1257, 1258] site= 1258
+4257 1 n1-1257.plc1.org sls= [1257, 1258, 1259] site= 1259
+4258 1 n1-1258.plc1.org sls= [1258, 1259, 1260] site= 1260
+4259 1 n1-1259.plc1.org sls= [1259, 1260, 1261] site= 1261
+4260 1 n1-1260.plc1.org sls= [1260, 1261, 1262] site= 1262
+4261 1 n1-1261.plc1.org sls= [1261, 1262, 1263] site= 1263
+4262 1 n1-1262.plc1.org sls= [1262, 1263, 1264] site= 1264
+4263 1 n1-1263.plc1.org sls= [1263, 1264, 1265] site= 1265
+4264 1 n1-1264.plc1.org sls= [1264, 1265, 1266] site= 1266
+4265 1 n1-1265.plc1.org sls= [1265, 1266, 1267] site= 1267
+4266 1 n1-1266.plc1.org sls= [1266, 1267, 1268] site= 1268
+4267 1 n1-1267.plc1.org sls= [1267, 1268, 1269] site= 1269
+4268 1 n1-1268.plc1.org sls= [1268, 1269, 1270] site= 1270
+4269 1 n1-1269.plc1.org sls= [1269, 1270, 1271] site= 1271
+4270 1 n1-1270.plc1.org sls= [1270, 1271, 1272] site= 1272
+4271 1 n1-1271.plc1.org sls= [1271, 1272, 1273] site= 1273
+4272 1 n1-1272.plc1.org sls= [1272, 1273, 1274] site= 1274
+4273 1 n1-1273.plc1.org sls= [1273, 1274, 1275] site= 1275
+4274 1 n1-1274.plc1.org sls= [1274, 1275, 1276] site= 1276
+4275 1 n1-1275.plc1.org sls= [1275, 1276, 1277] site= 1277
+4276 1 n1-1276.plc1.org sls= [1276, 1277, 1278] site= 1278
+4277 1 n1-1277.plc1.org sls= [1277, 1278, 1279] site= 1279
+4278 1 n1-1278.plc1.org sls= [1278, 1279, 1280] site= 1280
+4279 1 n1-1279.plc1.org sls= [1279, 1280, 1281] site= 1281
+4280 1 n1-1280.plc1.org sls= [1280, 1281, 1282] site= 1282
+4281 1 n1-1281.plc1.org sls= [1281, 1282, 1283] site= 1283
+4282 1 n1-1282.plc1.org sls= [1282, 1283, 1284] site= 1284
+4283 1 n1-1283.plc1.org sls= [1283, 1284, 1285] site= 1285
+4284 1 n1-1284.plc1.org sls= [1284, 1285, 1286] site= 1286
+4285 1 n1-1285.plc1.org sls= [1285, 1286, 1287] site= 1287
+4286 1 n1-1286.plc1.org sls= [1286, 1287, 1288] site= 1288
+4287 1 n1-1287.plc1.org sls= [1287, 1288, 1289] site= 1289
+4288 1 n1-1288.plc1.org sls= [1288, 1289, 1290] site= 1290
+4289 1 n1-1289.plc1.org sls= [1289, 1290, 1291] site= 1291
+4290 1 n1-1290.plc1.org sls= [1290, 1291, 1292] site= 1292
+4291 1 n1-1291.plc1.org sls= [1291, 1292, 1293] site= 1293
+4292 1 n1-1292.plc1.org sls= [1292, 1293, 1294] site= 1294
+4293 1 n1-1293.plc1.org sls= [1293, 1294, 1295] site= 1295
+4294 1 n1-1294.plc1.org sls= [1294, 1295, 1296] site= 1296
+4295 1 n1-1295.plc1.org sls= [1295, 1296, 1297] site= 1297
+4296 1 n1-1296.plc1.org sls= [1296, 1297, 1298] site= 1298
+4297 1 n1-1297.plc1.org sls= [1297, 1298, 1299] site= 1299
+4298 1 n1-1298.plc1.org sls= [1298, 1299, 1300] site= 1300
+4299 1 n1-1299.plc1.org sls= [1299, 1300, 1301] site= 1301
+4300 1 n1-1300.plc1.org sls= [1300, 1301, 1302] site= 1302
+4301 1 n1-1301.plc1.org sls= [1301, 1302, 1303] site= 1303
+4302 1 n1-1302.plc1.org sls= [1302, 1303, 1304] site= 1304
+4303 1 n1-1303.plc1.org sls= [1303, 1304, 1305] site= 1305
+4304 1 n1-1304.plc1.org sls= [1304, 1305, 1306] site= 1306
+4305 1 n1-1305.plc1.org sls= [1305, 1306, 1307] site= 1307
+4306 1 n1-1306.plc1.org sls= [1306, 1307, 1308] site= 1308
+4307 1 n1-1307.plc1.org sls= [1307, 1308, 1309] site= 1309
+4308 1 n1-1308.plc1.org sls= [1308, 1309, 1310] site= 1310
+4309 1 n1-1309.plc1.org sls= [1309, 1310, 1311] site= 1311
+4310 1 n1-1310.plc1.org sls= [1310, 1311, 1312] site= 1312
+4311 1 n1-1311.plc1.org sls= [1311, 1312, 1313] site= 1313
+4312 1 n1-1312.plc1.org sls= [1312, 1313, 1314] site= 1314
+4313 1 n1-1313.plc1.org sls= [1313, 1314, 1315] site= 1315
+4314 1 n1-1314.plc1.org sls= [1314, 1315, 1316] site= 1316
+4315 1 n1-1315.plc1.org sls= [1315, 1316, 1317] site= 1317
+4316 1 n1-1316.plc1.org sls= [1316, 1317, 1318] site= 1318
+4317 1 n1-1317.plc1.org sls= [1317, 1318, 1319] site= 1319
+4318 1 n1-1318.plc1.org sls= [1318, 1319, 1320] site= 1320
+4319 1 n1-1319.plc1.org sls= [1319, 1320, 1321] site= 1321
+4320 1 n1-1320.plc1.org sls= [1320, 1321, 1322] site= 1322
+4321 1 n1-1321.plc1.org sls= [1321, 1322, 1323] site= 1323
+4322 1 n1-1322.plc1.org sls= [1322, 1323, 1324] site= 1324
+4323 1 n1-1323.plc1.org sls= [1323, 1324, 1325] site= 1325
+4324 1 n1-1324.plc1.org sls= [1324, 1325, 1326] site= 1326
+4325 1 n1-1325.plc1.org sls= [1325, 1326, 1327] site= 1327
+4326 1 n1-1326.plc1.org sls= [1326, 1327, 1328] site= 1328
+4327 1 n1-1327.plc1.org sls= [1327, 1328, 1329] site= 1329
+4328 1 n1-1328.plc1.org sls= [1328, 1329, 1330] site= 1330
+4329 1 n1-1329.plc1.org sls= [1329, 1330, 1331] site= 1331
+4330 1 n1-1330.plc1.org sls= [1330, 1331, 1332] site= 1332
+4331 1 n1-1331.plc1.org sls= [1331, 1332, 1333] site= 1333
+4332 1 n1-1332.plc1.org sls= [1332, 1333, 1334] site= 1334
+4333 1 n1-1333.plc1.org sls= [1333, 1334, 1335] site= 1335
+4334 1 n1-1334.plc1.org sls= [1334, 1335, 1336] site= 1336
+4335 1 n1-1335.plc1.org sls= [1335, 1336, 1337] site= 1337
+4336 1 n1-1336.plc1.org sls= [1336, 1337, 1338] site= 1338
+4337 1 n1-1337.plc1.org sls= [1337, 1338, 1339] site= 1339
+4338 1 n1-1338.plc1.org sls= [1338, 1339, 1340] site= 1340
+4339 1 n1-1339.plc1.org sls= [1339, 1340, 1341] site= 1341
+4340 1 n1-1340.plc1.org sls= [1340, 1341, 1342] site= 1342
+4341 1 n1-1341.plc1.org sls= [1341, 1342, 1343] site= 1343
+4342 1 n1-1342.plc1.org sls= [1342, 1343, 1344] site= 1344
+4343 1 n1-1343.plc1.org sls= [1343, 1344, 1345] site= 1345
+4344 1 n1-1344.plc1.org sls= [1344, 1345, 1346] site= 1346
+4345 1 n1-1345.plc1.org sls= [1345, 1346, 1347] site= 1347
+4346 1 n1-1346.plc1.org sls= [1346, 1347, 1348] site= 1348
+4347 1 n1-1347.plc1.org sls= [1347, 1348, 1349] site= 1349
+4348 1 n1-1348.plc1.org sls= [1348, 1349, 1350] site= 1350
+4349 1 n1-1349.plc1.org sls= [1349, 1350, 1351] site= 1351
+4350 1 n1-1350.plc1.org sls= [1350, 1351, 1352] site= 1352
+4351 1 n1-1351.plc1.org sls= [1351, 1352, 1353] site= 1353
+4352 1 n1-1352.plc1.org sls= [1352, 1353, 1354] site= 1354
+4353 1 n1-1353.plc1.org sls= [1353, 1354, 1355] site= 1355
+4354 1 n1-1354.plc1.org sls= [1354, 1355, 1356] site= 1356
+4355 1 n1-1355.plc1.org sls= [1355, 1356, 1357] site= 1357
+4356 1 n1-1356.plc1.org sls= [1356, 1357, 1358] site= 1358
+4357 1 n1-1357.plc1.org sls= [1357, 1358, 1359] site= 1359
+4358 1 n1-1358.plc1.org sls= [1358, 1359, 1360] site= 1360
+4359 1 n1-1359.plc1.org sls= [1359, 1360, 1361] site= 1361
+4360 1 n1-1360.plc1.org sls= [1360, 1361, 1362] site= 1362
+4361 1 n1-1361.plc1.org sls= [1361, 1362, 1363] site= 1363
+4362 1 n1-1362.plc1.org sls= [1362, 1363, 1364] site= 1364
+4363 1 n1-1363.plc1.org sls= [1363, 1364, 1365] site= 1365
+4364 1 n1-1364.plc1.org sls= [1364, 1365, 1366] site= 1366
+4365 1 n1-1365.plc1.org sls= [1365, 1366, 1367] site= 1367
+4366 1 n1-1366.plc1.org sls= [1366, 1367, 1368] site= 1368
+4367 1 n1-1367.plc1.org sls= [1367, 1368, 1369] site= 1369
+4368 1 n1-1368.plc1.org sls= [1368, 1369, 1370] site= 1370
+4369 1 n1-1369.plc1.org sls= [1369, 1370, 1371] site= 1371
+4370 1 n1-1370.plc1.org sls= [1370, 1371, 1372] site= 1372
+4371 1 n1-1371.plc1.org sls= [1371, 1372, 1373] site= 1373
+4372 1 n1-1372.plc1.org sls= [1372, 1373, 1374] site= 1374
+4373 1 n1-1373.plc1.org sls= [1373, 1374, 1375] site= 1375
+4374 1 n1-1374.plc1.org sls= [1374, 1375, 1376] site= 1376
+4375 1 n1-1375.plc1.org sls= [1375, 1376, 1377] site= 1377
+4376 1 n1-1376.plc1.org sls= [1376, 1377, 1378] site= 1378
+4377 1 n1-1377.plc1.org sls= [1377, 1378, 1379] site= 1379
+4378 1 n1-1378.plc1.org sls= [1378, 1379, 1380] site= 1380
+4379 1 n1-1379.plc1.org sls= [1379, 1380, 1381] site= 1381
+4380 1 n1-1380.plc1.org sls= [1380, 1381, 1382] site= 1382
+4381 1 n1-1381.plc1.org sls= [1381, 1382, 1383] site= 1383
+4382 1 n1-1382.plc1.org sls= [1382, 1383, 1384] site= 1384
+4383 1 n1-1383.plc1.org sls= [1383, 1384, 1385] site= 1385
+4384 1 n1-1384.plc1.org sls= [1384, 1385, 1386] site= 1386
+4385 1 n1-1385.plc1.org sls= [1385, 1386, 1387] site= 1387
+4386 1 n1-1386.plc1.org sls= [1386, 1387, 1388] site= 1388
+4387 1 n1-1387.plc1.org sls= [1387, 1388, 1389] site= 1389
+4388 1 n1-1388.plc1.org sls= [1388, 1389, 1390] site= 1390
+4389 1 n1-1389.plc1.org sls= [1389, 1390, 1391] site= 1391
+4390 1 n1-1390.plc1.org sls= [1390, 1391, 1392] site= 1392
+4391 1 n1-1391.plc1.org sls= [1391, 1392, 1393] site= 1393
+4392 1 n1-1392.plc1.org sls= [1392, 1393, 1394] site= 1394
+4393 1 n1-1393.plc1.org sls= [1393, 1394, 1395] site= 1395
+4394 1 n1-1394.plc1.org sls= [1394, 1395, 1396] site= 1396
+4395 1 n1-1395.plc1.org sls= [1395, 1396, 1397] site= 1397
+4396 1 n1-1396.plc1.org sls= [1396, 1397, 1398] site= 1398
+4397 1 n1-1397.plc1.org sls= [1397, 1398, 1399] site= 1399
+4398 1 n1-1398.plc1.org sls= [1398, 1399, 1400] site= 1400
+4399 1 n1-1399.plc1.org sls= [1399, 1400, 1401] site= 1401
+4400 1 n1-1400.plc1.org sls= [1400, 1401, 1402] site= 1402
+4401 1 n1-1401.plc1.org sls= [1401, 1402, 1403] site= 1403
+4402 1 n1-1402.plc1.org sls= [1402, 1403, 1404] site= 1404
+4403 1 n1-1403.plc1.org sls= [1403, 1404, 1405] site= 1405
+4404 1 n1-1404.plc1.org sls= [1404, 1405, 1406] site= 1406
+4405 1 n1-1405.plc1.org sls= [1405, 1406, 1407] site= 1407
+4406 1 n1-1406.plc1.org sls= [1406, 1407, 1408] site= 1408
+4407 1 n1-1407.plc1.org sls= [1407, 1408, 1409] site= 1409
+4408 1 n1-1408.plc1.org sls= [1408, 1409, 1410] site= 1410
+4409 1 n1-1409.plc1.org sls= [1409, 1410, 1411] site= 1411
+4410 1 n1-1410.plc1.org sls= [1410, 1411, 1412] site= 1412
+4411 1 n1-1411.plc1.org sls= [1411, 1412, 1413] site= 1413
+4412 1 n1-1412.plc1.org sls= [1412, 1413, 1414] site= 1414
+4413 1 n1-1413.plc1.org sls= [1413, 1414, 1415] site= 1415
+4414 1 n1-1414.plc1.org sls= [1414, 1415, 1416] site= 1416
+4415 1 n1-1415.plc1.org sls= [1415, 1416, 1417] site= 1417
+4416 1 n1-1416.plc1.org sls= [1416, 1417, 1418] site= 1418
+4417 1 n1-1417.plc1.org sls= [1417, 1418, 1419] site= 1419
+4418 1 n1-1418.plc1.org sls= [1418, 1419, 1420] site= 1420
+4419 1 n1-1419.plc1.org sls= [1419, 1420, 1421] site= 1421
+4420 1 n1-1420.plc1.org sls= [1420, 1421, 1422] site= 1422
+4421 1 n1-1421.plc1.org sls= [1421, 1422, 1423] site= 1423
+4422 1 n1-1422.plc1.org sls= [1422, 1423, 1424] site= 1424
+4423 1 n1-1423.plc1.org sls= [1423, 1424, 1425] site= 1425
+4424 1 n1-1424.plc1.org sls= [1424, 1425, 1426] site= 1426
+4425 1 n1-1425.plc1.org sls= [1425, 1426, 1427] site= 1427
+4426 1 n1-1426.plc1.org sls= [1426, 1427, 1428] site= 1428
+4427 1 n1-1427.plc1.org sls= [1427, 1428, 1429] site= 1429
+4428 1 n1-1428.plc1.org sls= [1428, 1429, 1430] site= 1430
+4429 1 n1-1429.plc1.org sls= [1429, 1430, 1431] site= 1431
+4430 1 n1-1430.plc1.org sls= [1430, 1431, 1432] site= 1432
+4431 1 n1-1431.plc1.org sls= [1431, 1432, 1433] site= 1433
+4432 1 n1-1432.plc1.org sls= [1432, 1433, 1434] site= 1434
+4433 1 n1-1433.plc1.org sls= [1433, 1434, 1435] site= 1435
+4434 1 n1-1434.plc1.org sls= [1434, 1435, 1436] site= 1436
+4435 1 n1-1435.plc1.org sls= [1435, 1436, 1437] site= 1437
+4436 1 n1-1436.plc1.org sls= [1436, 1437, 1438] site= 1438
+4437 1 n1-1437.plc1.org sls= [1437, 1438, 1439] site= 1439
+4438 1 n1-1438.plc1.org sls= [1438, 1439, 1440] site= 1440
+4439 1 n1-1439.plc1.org sls= [1439, 1440, 1441] site= 1441
+4440 1 n1-1440.plc1.org sls= [1440, 1441, 1442] site= 1442
+4441 1 n1-1441.plc1.org sls= [1441, 1442, 1443] site= 1443
+4442 1 n1-1442.plc1.org sls= [1442, 1443, 1444] site= 1444
+4443 1 n1-1443.plc1.org sls= [1443, 1444, 1445] site= 1445
+4444 1 n1-1444.plc1.org sls= [1444, 1445, 1446] site= 1446
+4445 1 n1-1445.plc1.org sls= [1445, 1446, 1447] site= 1447
+4446 1 n1-1446.plc1.org sls= [1446, 1447, 1448] site= 1448
+4447 1 n1-1447.plc1.org sls= [1447, 1448, 1449] site= 1449
+4448 1 n1-1448.plc1.org sls= [1448, 1449, 1450] site= 1450
+4449 1 n1-1449.plc1.org sls= [1449, 1450, 1451] site= 1451
+4450 1 n1-1450.plc1.org sls= [1450, 1451, 1452] site= 1452
+4451 1 n1-1451.plc1.org sls= [1451, 1452, 1453] site= 1453
+4452 1 n1-1452.plc1.org sls= [1452, 1453, 1454] site= 1454
+4453 1 n1-1453.plc1.org sls= [1453, 1454, 1455] site= 1455
+4454 1 n1-1454.plc1.org sls= [1454, 1455, 1456] site= 1456
+4455 1 n1-1455.plc1.org sls= [1455, 1456, 1457] site= 1457
+4456 1 n1-1456.plc1.org sls= [1456, 1457, 1458] site= 1458
+4457 1 n1-1457.plc1.org sls= [1457, 1458, 1459] site= 1459
+4458 1 n1-1458.plc1.org sls= [1458, 1459, 1460] site= 1460
+4459 1 n1-1459.plc1.org sls= [1459, 1460, 1461] site= 1461
+4460 1 n1-1460.plc1.org sls= [1460, 1461, 1462] site= 1462
+4461 1 n1-1461.plc1.org sls= [1461, 1462, 1463] site= 1463
+4462 1 n1-1462.plc1.org sls= [1462, 1463, 1464] site= 1464
+4463 1 n1-1463.plc1.org sls= [1463, 1464, 1465] site= 1465
+4464 1 n1-1464.plc1.org sls= [1464, 1465, 1466] site= 1466
+4465 1 n1-1465.plc1.org sls= [1465, 1466, 1467] site= 1467
+4466 1 n1-1466.plc1.org sls= [1466, 1467, 1468] site= 1468
+4467 1 n1-1467.plc1.org sls= [1467, 1468, 1469] site= 1469
+4468 1 n1-1468.plc1.org sls= [1468, 1469, 1470] site= 1470
+4469 1 n1-1469.plc1.org sls= [1469, 1470, 1471] site= 1471
+4470 1 n1-1470.plc1.org sls= [1470, 1471, 1472] site= 1472
+4471 1 n1-1471.plc1.org sls= [1471, 1472, 1473] site= 1473
+4472 1 n1-1472.plc1.org sls= [1472, 1473, 1474] site= 1474
+4473 1 n1-1473.plc1.org sls= [1473, 1474, 1475] site= 1475
+4474 1 n1-1474.plc1.org sls= [1474, 1475, 1476] site= 1476
+4475 1 n1-1475.plc1.org sls= [1475, 1476, 1477] site= 1477
+4476 1 n1-1476.plc1.org sls= [1476, 1477, 1478] site= 1478
+4477 1 n1-1477.plc1.org sls= [1477, 1478, 1479] site= 1479
+4478 1 n1-1478.plc1.org sls= [1478, 1479, 1480] site= 1480
+4479 1 n1-1479.plc1.org sls= [1479, 1480, 1481] site= 1481
+4480 1 n1-1480.plc1.org sls= [1480, 1481, 1482] site= 1482
+4481 1 n1-1481.plc1.org sls= [1481, 1482, 1483] site= 1483
+4482 1 n1-1482.plc1.org sls= [1482, 1483, 1484] site= 1484
+4483 1 n1-1483.plc1.org sls= [1483, 1484, 1485] site= 1485
+4484 1 n1-1484.plc1.org sls= [1484, 1485, 1486] site= 1486
+4485 1 n1-1485.plc1.org sls= [1485, 1486, 1487] site= 1487
+4486 1 n1-1486.plc1.org sls= [1486, 1487, 1488] site= 1488
+4487 1 n1-1487.plc1.org sls= [1487, 1488, 1489] site= 1489
+4488 1 n1-1488.plc1.org sls= [1488, 1489, 1490] site= 1490
+4489 1 n1-1489.plc1.org sls= [1489, 1490, 1491] site= 1491
+4490 1 n1-1490.plc1.org sls= [1490, 1491, 1492] site= 1492
+4491 1 n1-1491.plc1.org sls= [1491, 1492, 1493] site= 1493
+4492 1 n1-1492.plc1.org sls= [1492, 1493, 1494] site= 1494
+4493 1 n1-1493.plc1.org sls= [1493, 1494, 1495] site= 1495
+4494 1 n1-1494.plc1.org sls= [1494, 1495, 1496] site= 1496
+4495 1 n1-1495.plc1.org sls= [1495, 1496, 1497] site= 1497
+4496 1 n1-1496.plc1.org sls= [1496, 1497, 1498] site= 1498
+4497 1 n1-1497.plc1.org sls= [1497, 1498, 1499] site= 1499
+4498 1 n1-1498.plc1.org sls= [1498, 1499, 1500] site= 1500
+4499 1 n1-1499.plc1.org sls= [1499, 1500, 1501] site= 1501
+4500 1 n1-1500.plc1.org sls= [1500, 1501, 1502] site= 1502
+4501 1 n1-1501.plc1.org sls= [1501, 1502, 1503] site= 1503
+4502 1 n1-1502.plc1.org sls= [1502, 1503, 1504] site= 1504
+4503 1 n1-1503.plc1.org sls= [1503, 1504, 1505] site= 1505
+4504 1 n1-1504.plc1.org sls= [1504, 1505, 1506] site= 1506
+4505 1 n1-1505.plc1.org sls= [1505, 1506, 1507] site= 1507
+4506 1 n1-1506.plc1.org sls= [1506, 1507, 1508] site= 1508
+4507 1 n1-1507.plc1.org sls= [1507, 1508, 1509] site= 1509
+4508 1 n1-1508.plc1.org sls= [1508, 1509, 1510] site= 1510
+4509 1 n1-1509.plc1.org sls= [1509, 1510, 1511] site= 1511
+4510 1 n1-1510.plc1.org sls= [1510, 1511, 1512] site= 1512
+4511 1 n1-1511.plc1.org sls= [1511, 1512, 1513] site= 1513
+4512 1 n1-1512.plc1.org sls= [1512, 1513, 1514] site= 1514
+4513 1 n1-1513.plc1.org sls= [1513, 1514, 1515] site= 1515
+4514 1 n1-1514.plc1.org sls= [1514, 1515, 1516] site= 1516
+4515 1 n1-1515.plc1.org sls= [1515, 1516, 1517] site= 1517
+4516 1 n1-1516.plc1.org sls= [1516, 1517, 1518] site= 1518
+4517 1 n1-1517.plc1.org sls= [1517, 1518, 1519] site= 1519
+4518 1 n1-1518.plc1.org sls= [1518, 1519, 1520] site= 1520
+4519 1 n1-1519.plc1.org sls= [1519, 1520, 1521] site= 1521
+4520 1 n1-1520.plc1.org sls= [1520, 1521, 1522] site= 1522
+4521 1 n1-1521.plc1.org sls= [1521, 1522, 1523] site= 1523
+4522 1 n1-1522.plc1.org sls= [1522, 1523, 1524] site= 1524
+4523 1 n1-1523.plc1.org sls= [1523, 1524, 1525] site= 1525
+4524 1 n1-1524.plc1.org sls= [1524, 1525, 1526] site= 1526
+4525 1 n1-1525.plc1.org sls= [1525, 1526, 1527] site= 1527
+4526 1 n1-1526.plc1.org sls= [1526, 1527, 1528] site= 1528
+4527 1 n1-1527.plc1.org sls= [1527, 1528, 1529] site= 1529
+4528 1 n1-1528.plc1.org sls= [1528, 1529, 1530] site= 1530
+4529 1 n1-1529.plc1.org sls= [1529, 1530, 1531] site= 1531
+4530 1 n1-1530.plc1.org sls= [1530, 1531, 1532] site= 1532
+4531 1 n1-1531.plc1.org sls= [1531, 1532, 1533] site= 1533
+4532 1 n1-1532.plc1.org sls= [1532, 1533, 1534] site= 1534
+4533 1 n1-1533.plc1.org sls= [1533, 1534, 1535] site= 1535
+4534 1 n1-1534.plc1.org sls= [1534, 1535, 1536] site= 1536
+4535 1 n1-1535.plc1.org sls= [1535, 1536, 1537] site= 1537
+4536 1 n1-1536.plc1.org sls= [1536, 1537, 1538] site= 1538
+4537 1 n1-1537.plc1.org sls= [1537, 1538, 1539] site= 1539
+4538 1 n1-1538.plc1.org sls= [1538, 1539, 1540] site= 1540
+4539 1 n1-1539.plc1.org sls= [1539, 1540, 1541] site= 1541
+4540 1 n1-1540.plc1.org sls= [1540, 1541, 1542] site= 1542
+4541 1 n1-1541.plc1.org sls= [1541, 1542, 1543] site= 1543
+4542 1 n1-1542.plc1.org sls= [1542, 1543, 1544] site= 1544
+4543 1 n1-1543.plc1.org sls= [1543, 1544, 1545] site= 1545
+4544 1 n1-1544.plc1.org sls= [1544, 1545, 1546] site= 1546
+4545 1 n1-1545.plc1.org sls= [1545, 1546, 1547] site= 1547
+4546 1 n1-1546.plc1.org sls= [1546, 1547, 1548] site= 1548
+4547 1 n1-1547.plc1.org sls= [1547, 1548, 1549] site= 1549
+4548 1 n1-1548.plc1.org sls= [1548, 1549, 1550] site= 1550
+4549 1 n1-1549.plc1.org sls= [1549, 1550, 1551] site= 1551
+4550 1 n1-1550.plc1.org sls= [1550, 1551, 1552] site= 1552
+4551 1 n1-1551.plc1.org sls= [1551, 1552, 1553] site= 1553
+4552 1 n1-1552.plc1.org sls= [1552, 1553, 1554] site= 1554
+4553 1 n1-1553.plc1.org sls= [1553, 1554, 1555] site= 1555
+4554 1 n1-1554.plc1.org sls= [1554, 1555, 1556] site= 1556
+4555 1 n1-1555.plc1.org sls= [1555, 1556, 1557] site= 1557
+4556 1 n1-1556.plc1.org sls= [1556, 1557, 1558] site= 1558
+4557 1 n1-1557.plc1.org sls= [1557, 1558, 1559] site= 1559
+4558 1 n1-1558.plc1.org sls= [1558, 1559, 1560] site= 1560
+4559 1 n1-1559.plc1.org sls= [1559, 1560, 1561] site= 1561
+4560 1 n1-1560.plc1.org sls= [1560, 1561, 1562] site= 1562
+4561 1 n1-1561.plc1.org sls= [1561, 1562, 1563] site= 1563
+4562 1 n1-1562.plc1.org sls= [1562, 1563, 1564] site= 1564
+4563 1 n1-1563.plc1.org sls= [1563, 1564, 1565] site= 1565
+4564 1 n1-1564.plc1.org sls= [1564, 1565, 1566] site= 1566
+4565 1 n1-1565.plc1.org sls= [1565, 1566, 1567] site= 1567
+4566 1 n1-1566.plc1.org sls= [1566, 1567, 1568] site= 1568
+4567 1 n1-1567.plc1.org sls= [1567, 1568, 1569] site= 1569
+4568 1 n1-1568.plc1.org sls= [1568, 1569, 1570] site= 1570
+4569 1 n1-1569.plc1.org sls= [1569, 1570, 1571] site= 1571
+4570 1 n1-1570.plc1.org sls= [1570, 1571, 1572] site= 1572
+4571 1 n1-1571.plc1.org sls= [1571, 1572, 1573] site= 1573
+4572 1 n1-1572.plc1.org sls= [1572, 1573, 1574] site= 1574
+4573 1 n1-1573.plc1.org sls= [1573, 1574, 1575] site= 1575
+4574 1 n1-1574.plc1.org sls= [1574, 1575, 1576] site= 1576
+4575 1 n1-1575.plc1.org sls= [1575, 1576, 1577] site= 1577
+4576 1 n1-1576.plc1.org sls= [1576, 1577, 1578] site= 1578
+4577 1 n1-1577.plc1.org sls= [1577, 1578, 1579] site= 1579
+4578 1 n1-1578.plc1.org sls= [1578, 1579, 1580] site= 1580
+4579 1 n1-1579.plc1.org sls= [1579, 1580, 1581] site= 1581
+4580 1 n1-1580.plc1.org sls= [1580, 1581, 1582] site= 1582
+4581 1 n1-1581.plc1.org sls= [1581, 1582, 1583] site= 1583
+4582 1 n1-1582.plc1.org sls= [1582, 1583, 1584] site= 1584
+4583 1 n1-1583.plc1.org sls= [1583, 1584, 1585] site= 1585
+4584 1 n1-1584.plc1.org sls= [1584, 1585, 1586] site= 1586
+4585 1 n1-1585.plc1.org sls= [1585, 1586, 1587] site= 1587
+4586 1 n1-1586.plc1.org sls= [1586, 1587, 1588] site= 1588
+4587 1 n1-1587.plc1.org sls= [1587, 1588, 1589] site= 1589
+4588 1 n1-1588.plc1.org sls= [1588, 1589, 1590] site= 1590
+4589 1 n1-1589.plc1.org sls= [1589, 1590, 1591] site= 1591
+4590 1 n1-1590.plc1.org sls= [1590, 1591, 1592] site= 1592
+4591 1 n1-1591.plc1.org sls= [1591, 1592, 1593] site= 1593
+4592 1 n1-1592.plc1.org sls= [1592, 1593, 1594] site= 1594
+4593 1 n1-1593.plc1.org sls= [1593, 1594, 1595] site= 1595
+4594 1 n1-1594.plc1.org sls= [1594, 1595, 1596] site= 1596
+4595 1 n1-1595.plc1.org sls= [1595, 1596, 1597] site= 1597
+4596 1 n1-1596.plc1.org sls= [1596, 1597, 1598] site= 1598
+4597 1 n1-1597.plc1.org sls= [1597, 1598, 1599] site= 1599
+4598 1 n1-1598.plc1.org sls= [1598, 1599, 1600] site= 1600
+4599 1 n1-1599.plc1.org sls= [1599, 1600, 1601] site= 1601
+4600 1 n1-1600.plc1.org sls= [1600, 1601, 1602] site= 1602
+4601 1 n1-1601.plc1.org sls= [1601, 1602, 1603] site= 1603
+4602 1 n1-1602.plc1.org sls= [1602, 1603, 1604] site= 1604
+4603 1 n1-1603.plc1.org sls= [1603, 1604, 1605] site= 1605
+4604 1 n1-1604.plc1.org sls= [1604, 1605, 1606] site= 1606
+4605 1 n1-1605.plc1.org sls= [1605, 1606, 1607] site= 1607
+4606 1 n1-1606.plc1.org sls= [1606, 1607, 1608] site= 1608
+4607 1 n1-1607.plc1.org sls= [1607, 1608, 1609] site= 1609
+4608 1 n1-1608.plc1.org sls= [1608, 1609, 1610] site= 1610
+4609 1 n1-1609.plc1.org sls= [1609, 1610, 1611] site= 1611
+4610 1 n1-1610.plc1.org sls= [1610, 1611, 1612] site= 1612
+4611 1 n1-1611.plc1.org sls= [1611, 1612, 1613] site= 1613
+4612 1 n1-1612.plc1.org sls= [1612, 1613, 1614] site= 1614
+4613 1 n1-1613.plc1.org sls= [1613, 1614, 1615] site= 1615
+4614 1 n1-1614.plc1.org sls= [1614, 1615, 1616] site= 1616
+4615 1 n1-1615.plc1.org sls= [1615, 1616, 1617] site= 1617
+4616 1 n1-1616.plc1.org sls= [1616, 1617, 1618] site= 1618
+4617 1 n1-1617.plc1.org sls= [1617, 1618, 1619] site= 1619
+4618 1 n1-1618.plc1.org sls= [1618, 1619, 1620] site= 1620
+4619 1 n1-1619.plc1.org sls= [1619, 1620, 1621] site= 1621
+4620 1 n1-1620.plc1.org sls= [1620, 1621, 1622] site= 1622
+4621 1 n1-1621.plc1.org sls= [1621, 1622, 1623] site= 1623
+4622 1 n1-1622.plc1.org sls= [1622, 1623, 1624] site= 1624
+4623 1 n1-1623.plc1.org sls= [1623, 1624, 1625] site= 1625
+4624 1 n1-1624.plc1.org sls= [1624, 1625, 1626] site= 1626
+4625 1 n1-1625.plc1.org sls= [1625, 1626, 1627] site= 1627
+4626 1 n1-1626.plc1.org sls= [1626, 1627, 1628] site= 1628
+4627 1 n1-1627.plc1.org sls= [1627, 1628, 1629] site= 1629
+4628 1 n1-1628.plc1.org sls= [1628, 1629, 1630] site= 1630
+4629 1 n1-1629.plc1.org sls= [1629, 1630, 1631] site= 1631
+4630 1 n1-1630.plc1.org sls= [1630, 1631, 1632] site= 1632
+4631 1 n1-1631.plc1.org sls= [1631, 1632, 1633] site= 1633
+4632 1 n1-1632.plc1.org sls= [1632, 1633, 1634] site= 1634
+4633 1 n1-1633.plc1.org sls= [1633, 1634, 1635] site= 1635
+4634 1 n1-1634.plc1.org sls= [1634, 1635, 1636] site= 1636
+4635 1 n1-1635.plc1.org sls= [1635, 1636, 1637] site= 1637
+4636 1 n1-1636.plc1.org sls= [1636, 1637, 1638] site= 1638
+4637 1 n1-1637.plc1.org sls= [1637, 1638, 1639] site= 1639
+4638 1 n1-1638.plc1.org sls= [1638, 1639, 1640] site= 1640
+4639 1 n1-1639.plc1.org sls= [1639, 1640, 1641] site= 1641
+4640 1 n1-1640.plc1.org sls= [1640, 1641, 1642] site= 1642
+4641 1 n1-1641.plc1.org sls= [1641, 1642, 1643] site= 1643
+4642 1 n1-1642.plc1.org sls= [1642, 1643, 1644] site= 1644
+4643 1 n1-1643.plc1.org sls= [1643, 1644, 1645] site= 1645
+4644 1 n1-1644.plc1.org sls= [1644, 1645, 1646] site= 1646
+4645 1 n1-1645.plc1.org sls= [1645, 1646, 1647] site= 1647
+4646 1 n1-1646.plc1.org sls= [1646, 1647, 1648] site= 1648
+4647 1 n1-1647.plc1.org sls= [1647, 1648, 1649] site= 1649
+4648 1 n1-1648.plc1.org sls= [1648, 1649, 1650] site= 1650
+4649 1 n1-1649.plc1.org sls= [1649, 1650, 1651] site= 1651
+4650 1 n1-1650.plc1.org sls= [1650, 1651, 1652] site= 1652
+4651 1 n1-1651.plc1.org sls= [1651, 1652, 1653] site= 1653
+4652 1 n1-1652.plc1.org sls= [1652, 1653, 1654] site= 1654
+4653 1 n1-1653.plc1.org sls= [1653, 1654, 1655] site= 1655
+4654 1 n1-1654.plc1.org sls= [1654, 1655, 1656] site= 1656
+4655 1 n1-1655.plc1.org sls= [1655, 1656, 1657] site= 1657
+4656 1 n1-1656.plc1.org sls= [1656, 1657, 1658] site= 1658
+4657 1 n1-1657.plc1.org sls= [1657, 1658, 1659] site= 1659
+4658 1 n1-1658.plc1.org sls= [1658, 1659, 1660] site= 1660
+4659 1 n1-1659.plc1.org sls= [1659, 1660, 1661] site= 1661
+4660 1 n1-1660.plc1.org sls= [1660, 1661, 1662] site= 1662
+4661 1 n1-1661.plc1.org sls= [1661, 1662, 1663] site= 1663
+4662 1 n1-1662.plc1.org sls= [1662, 1663, 1664] site= 1664
+4663 1 n1-1663.plc1.org sls= [1663, 1664, 1665] site= 1665
+4664 1 n1-1664.plc1.org sls= [1664, 1665, 1666] site= 1666
+4665 1 n1-1665.plc1.org sls= [1665, 1666, 1667] site= 1667
+4666 1 n1-1666.plc1.org sls= [1666, 1667, 1668] site= 1668
+4667 1 n1-1667.plc1.org sls= [1667, 1668, 1669] site= 1669
+4668 1 n1-1668.plc1.org sls= [1668, 1669, 1670] site= 1670
+4669 1 n1-1669.plc1.org sls= [1669, 1670, 1671] site= 1671
+4670 1 n1-1670.plc1.org sls= [1670, 1671, 1672] site= 1672
+4671 1 n1-1671.plc1.org sls= [1671, 1672, 1673] site= 1673
+4672 1 n1-1672.plc1.org sls= [1672, 1673, 1674] site= 1674
+4673 1 n1-1673.plc1.org sls= [1673, 1674, 1675] site= 1675
+4674 1 n1-1674.plc1.org sls= [1674, 1675, 1676] site= 1676
+4675 1 n1-1675.plc1.org sls= [1675, 1676, 1677] site= 1677
+4676 1 n1-1676.plc1.org sls= [1676, 1677, 1678] site= 1678
+4677 1 n1-1677.plc1.org sls= [1677, 1678, 1679] site= 1679
+4678 1 n1-1678.plc1.org sls= [1678, 1679, 1680] site= 1680
+4679 1 n1-1679.plc1.org sls= [1679, 1680, 1681] site= 1681
+4680 1 n1-1680.plc1.org sls= [1680, 1681, 1682] site= 1682
+4681 1 n1-1681.plc1.org sls= [1681, 1682, 1683] site= 1683
+4682 1 n1-1682.plc1.org sls= [1682, 1683, 1684] site= 1684
+4683 1 n1-1683.plc1.org sls= [1683, 1684, 1685] site= 1685
+4684 1 n1-1684.plc1.org sls= [1684, 1685, 1686] site= 1686
+4685 1 n1-1685.plc1.org sls= [1685, 1686, 1687] site= 1687
+4686 1 n1-1686.plc1.org sls= [1686, 1687, 1688] site= 1688
+4687 1 n1-1687.plc1.org sls= [1687, 1688, 1689] site= 1689
+4688 1 n1-1688.plc1.org sls= [1688, 1689, 1690] site= 1690
+4689 1 n1-1689.plc1.org sls= [1689, 1690, 1691] site= 1691
+4690 1 n1-1690.plc1.org sls= [1690, 1691, 1692] site= 1692
+4691 1 n1-1691.plc1.org sls= [1691, 1692, 1693] site= 1693
+4692 1 n1-1692.plc1.org sls= [1692, 1693, 1694] site= 1694
+4693 1 n1-1693.plc1.org sls= [1693, 1694, 1695] site= 1695
+4694 1 n1-1694.plc1.org sls= [1694, 1695, 1696] site= 1696
+4695 1 n1-1695.plc1.org sls= [1695, 1696, 1697] site= 1697
+4696 1 n1-1696.plc1.org sls= [1696, 1697, 1698] site= 1698
+4697 1 n1-1697.plc1.org sls= [1697, 1698, 1699] site= 1699
+4698 1 n1-1698.plc1.org sls= [1698, 1699, 1700] site= 1700
+4699 1 n1-1699.plc1.org sls= [1699, 1700, 1701] site= 1701
+4700 1 n1-1700.plc1.org sls= [1700, 1701, 1702] site= 1702
+4701 1 n1-1701.plc1.org sls= [1701, 1702, 1703] site= 1703
+4702 1 n1-1702.plc1.org sls= [1702, 1703, 1704] site= 1704
+4703 1 n1-1703.plc1.org sls= [1703, 1704, 1705] site= 1705
+4704 1 n1-1704.plc1.org sls= [1704, 1705, 1706] site= 1706
+4705 1 n1-1705.plc1.org sls= [1705, 1706, 1707] site= 1707
+4706 1 n1-1706.plc1.org sls= [1706, 1707, 1708] site= 1708
+4707 1 n1-1707.plc1.org sls= [1707, 1708, 1709] site= 1709
+4708 1 n1-1708.plc1.org sls= [1708, 1709, 1710] site= 1710
+4709 1 n1-1709.plc1.org sls= [1709, 1710, 1711] site= 1711
+4710 1 n1-1710.plc1.org sls= [1710, 1711, 1712] site= 1712
+4711 1 n1-1711.plc1.org sls= [1711, 1712, 1713] site= 1713
+4712 1 n1-1712.plc1.org sls= [1712, 1713, 1714] site= 1714
+4713 1 n1-1713.plc1.org sls= [1713, 1714, 1715] site= 1715
+4714 1 n1-1714.plc1.org sls= [1714, 1715, 1716] site= 1716
+4715 1 n1-1715.plc1.org sls= [1715, 1716, 1717] site= 1717
+4716 1 n1-1716.plc1.org sls= [1716, 1717, 1718] site= 1718
+4717 1 n1-1717.plc1.org sls= [1717, 1718, 1719] site= 1719
+4718 1 n1-1718.plc1.org sls= [1718, 1719, 1720] site= 1720
+4719 1 n1-1719.plc1.org sls= [1719, 1720, 1721] site= 1721
+4720 1 n1-1720.plc1.org sls= [1720, 1721, 1722] site= 1722
+4721 1 n1-1721.plc1.org sls= [1721, 1722, 1723] site= 1723
+4722 1 n1-1722.plc1.org sls= [1722, 1723, 1724] site= 1724
+4723 1 n1-1723.plc1.org sls= [1723, 1724, 1725] site= 1725
+4724 1 n1-1724.plc1.org sls= [1724, 1725, 1726] site= 1726
+4725 1 n1-1725.plc1.org sls= [1725, 1726, 1727] site= 1727
+4726 1 n1-1726.plc1.org sls= [1726, 1727, 1728] site= 1728
+4727 1 n1-1727.plc1.org sls= [1727, 1728, 1729] site= 1729
+4728 1 n1-1728.plc1.org sls= [1728, 1729, 1730] site= 1730
+4729 1 n1-1729.plc1.org sls= [1729, 1730, 1731] site= 1731
+4730 1 n1-1730.plc1.org sls= [1730, 1731, 1732] site= 1732
+4731 1 n1-1731.plc1.org sls= [1731, 1732, 1733] site= 1733
+4732 1 n1-1732.plc1.org sls= [1732, 1733, 1734] site= 1734
+4733 1 n1-1733.plc1.org sls= [1733, 1734, 1735] site= 1735
+4734 1 n1-1734.plc1.org sls= [1734, 1735, 1736] site= 1736
+4735 1 n1-1735.plc1.org sls= [1735, 1736, 1737] site= 1737
+4736 1 n1-1736.plc1.org sls= [1736, 1737, 1738] site= 1738
+4737 1 n1-1737.plc1.org sls= [1737, 1738, 1739] site= 1739
+4738 1 n1-1738.plc1.org sls= [1738, 1739, 1740] site= 1740
+4739 1 n1-1739.plc1.org sls= [1739, 1740, 1741] site= 1741
+4740 1 n1-1740.plc1.org sls= [1740, 1741, 1742] site= 1742
+4741 1 n1-1741.plc1.org sls= [1741, 1742, 1743] site= 1743
+4742 1 n1-1742.plc1.org sls= [1742, 1743, 1744] site= 1744
+4743 1 n1-1743.plc1.org sls= [1743, 1744, 1745] site= 1745
+4744 1 n1-1744.plc1.org sls= [1744, 1745, 1746] site= 1746
+4745 1 n1-1745.plc1.org sls= [1745, 1746, 1747] site= 1747
+4746 1 n1-1746.plc1.org sls= [1746, 1747, 1748] site= 1748
+4747 1 n1-1747.plc1.org sls= [1747, 1748, 1749] site= 1749
+4748 1 n1-1748.plc1.org sls= [1748, 1749, 1750] site= 1750
+4749 1 n1-1749.plc1.org sls= [1749, 1750, 1751] site= 1751
+4750 1 n1-1750.plc1.org sls= [1750, 1751, 1752] site= 1752
+4751 1 n1-1751.plc1.org sls= [1751, 1752, 1753] site= 1753
+4752 1 n1-1752.plc1.org sls= [1752, 1753, 1754] site= 1754
+4753 1 n1-1753.plc1.org sls= [1753, 1754, 1755] site= 1755
+4754 1 n1-1754.plc1.org sls= [1754, 1755, 1756] site= 1756
+4755 1 n1-1755.plc1.org sls= [1755, 1756, 1757] site= 1757
+4756 1 n1-1756.plc1.org sls= [1756, 1757, 1758] site= 1758
+4757 1 n1-1757.plc1.org sls= [1757, 1758, 1759] site= 1759
+4758 1 n1-1758.plc1.org sls= [1758, 1759, 1760] site= 1760
+4759 1 n1-1759.plc1.org sls= [1759, 1760, 1761] site= 1761
+4760 1 n1-1760.plc1.org sls= [1760, 1761, 1762] site= 1762
+4761 1 n1-1761.plc1.org sls= [1761, 1762, 1763] site= 1763
+4762 1 n1-1762.plc1.org sls= [1762, 1763, 1764] site= 1764
+4763 1 n1-1763.plc1.org sls= [1763, 1764, 1765] site= 1765
+4764 1 n1-1764.plc1.org sls= [1764, 1765, 1766] site= 1766
+4765 1 n1-1765.plc1.org sls= [1765, 1766, 1767] site= 1767
+4766 1 n1-1766.plc1.org sls= [1766, 1767, 1768] site= 1768
+4767 1 n1-1767.plc1.org sls= [1767, 1768, 1769] site= 1769
+4768 1 n1-1768.plc1.org sls= [1768, 1769, 1770] site= 1770
+4769 1 n1-1769.plc1.org sls= [1769, 1770, 1771] site= 1771
+4770 1 n1-1770.plc1.org sls= [1770, 1771, 1772] site= 1772
+4771 1 n1-1771.plc1.org sls= [1771, 1772, 1773] site= 1773
+4772 1 n1-1772.plc1.org sls= [1772, 1773, 1774] site= 1774
+4773 1 n1-1773.plc1.org sls= [1773, 1774, 1775] site= 1775
+4774 1 n1-1774.plc1.org sls= [1774, 1775, 1776] site= 1776
+4775 1 n1-1775.plc1.org sls= [1775, 1776, 1777] site= 1777
+4776 1 n1-1776.plc1.org sls= [1776, 1777, 1778] site= 1778
+4777 1 n1-1777.plc1.org sls= [1777, 1778, 1779] site= 1779
+4778 1 n1-1778.plc1.org sls= [1778, 1779, 1780] site= 1780
+4779 1 n1-1779.plc1.org sls= [1779, 1780, 1781] site= 1781
+4780 1 n1-1780.plc1.org sls= [1780, 1781, 1782] site= 1782
+4781 1 n1-1781.plc1.org sls= [1781, 1782, 1783] site= 1783
+4782 1 n1-1782.plc1.org sls= [1782, 1783, 1784] site= 1784
+4783 1 n1-1783.plc1.org sls= [1783, 1784, 1785] site= 1785
+4784 1 n1-1784.plc1.org sls= [1784, 1785, 1786] site= 1786
+4785 1 n1-1785.plc1.org sls= [1785, 1786, 1787] site= 1787
+4786 1 n1-1786.plc1.org sls= [1786, 1787, 1788] site= 1788
+4787 1 n1-1787.plc1.org sls= [1787, 1788, 1789] site= 1789
+4788 1 n1-1788.plc1.org sls= [1788, 1789, 1790] site= 1790
+4789 1 n1-1789.plc1.org sls= [1789, 1790, 1791] site= 1791
+4790 1 n1-1790.plc1.org sls= [1790, 1791, 1792] site= 1792
+4791 1 n1-1791.plc1.org sls= [1791, 1792, 1793] site= 1793
+4792 1 n1-1792.plc1.org sls= [1792, 1793, 1794] site= 1794
+4793 1 n1-1793.plc1.org sls= [1793, 1794, 1795] site= 1795
+4794 1 n1-1794.plc1.org sls= [1794, 1795, 1796] site= 1796
+4795 1 n1-1795.plc1.org sls= [1795, 1796, 1797] site= 1797
+4796 1 n1-1796.plc1.org sls= [1796, 1797, 1798] site= 1798
+4797 1 n1-1797.plc1.org sls= [1797, 1798, 1799] site= 1799
+4798 1 n1-1798.plc1.org sls= [1798, 1799, 1800] site= 1800
+4799 1 n1-1799.plc1.org sls= [1799, 1800, 1801] site= 1801
+4800 1 n1-1800.plc1.org sls= [1800, 1801, 1802] site= 1802
+4801 1 n1-1801.plc1.org sls= [1801, 1802, 1803] site= 1803
+4802 1 n1-1802.plc1.org sls= [1802, 1803, 1804] site= 1804
+4803 1 n1-1803.plc1.org sls= [1803, 1804, 1805] site= 1805
+4804 1 n1-1804.plc1.org sls= [1804, 1805, 1806] site= 1806
+4805 1 n1-1805.plc1.org sls= [1805, 1806, 1807] site= 1807
+4806 1 n1-1806.plc1.org sls= [1806, 1807, 1808] site= 1808
+4807 1 n1-1807.plc1.org sls= [1807, 1808, 1809] site= 1809
+4808 1 n1-1808.plc1.org sls= [1808, 1809, 1810] site= 1810
+4809 1 n1-1809.plc1.org sls= [1809, 1810, 1811] site= 1811
+4810 1 n1-1810.plc1.org sls= [1810, 1811, 1812] site= 1812
+4811 1 n1-1811.plc1.org sls= [1811, 1812, 1813] site= 1813
+4812 1 n1-1812.plc1.org sls= [1812, 1813, 1814] site= 1814
+4813 1 n1-1813.plc1.org sls= [1813, 1814, 1815] site= 1815
+4814 1 n1-1814.plc1.org sls= [1814, 1815, 1816] site= 1816
+4815 1 n1-1815.plc1.org sls= [1815, 1816, 1817] site= 1817
+4816 1 n1-1816.plc1.org sls= [1816, 1817, 1818] site= 1818
+4817 1 n1-1817.plc1.org sls= [1817, 1818, 1819] site= 1819
+4818 1 n1-1818.plc1.org sls= [1818, 1819, 1820] site= 1820
+4819 1 n1-1819.plc1.org sls= [1819, 1820, 1821] site= 1821
+4820 1 n1-1820.plc1.org sls= [1820, 1821, 1822] site= 1822
+4821 1 n1-1821.plc1.org sls= [1821, 1822, 1823] site= 1823
+4822 1 n1-1822.plc1.org sls= [1822, 1823, 1824] site= 1824
+4823 1 n1-1823.plc1.org sls= [1823, 1824, 1825] site= 1825
+4824 1 n1-1824.plc1.org sls= [1824, 1825, 1826] site= 1826
+4825 1 n1-1825.plc1.org sls= [1825, 1826, 1827] site= 1827
+4826 1 n1-1826.plc1.org sls= [1826, 1827, 1828] site= 1828
+4827 1 n1-1827.plc1.org sls= [1827, 1828, 1829] site= 1829
+4828 1 n1-1828.plc1.org sls= [1828, 1829, 1830] site= 1830
+4829 1 n1-1829.plc1.org sls= [1829, 1830, 1831] site= 1831
+4830 1 n1-1830.plc1.org sls= [1830, 1831, 1832] site= 1832
+4831 1 n1-1831.plc1.org sls= [1831, 1832, 1833] site= 1833
+4832 1 n1-1832.plc1.org sls= [1832, 1833, 1834] site= 1834
+4833 1 n1-1833.plc1.org sls= [1833, 1834, 1835] site= 1835
+4834 1 n1-1834.plc1.org sls= [1834, 1835, 1836] site= 1836
+4835 1 n1-1835.plc1.org sls= [1835, 1836, 1837] site= 1837
+4836 1 n1-1836.plc1.org sls= [1836, 1837, 1838] site= 1838
+4837 1 n1-1837.plc1.org sls= [1837, 1838, 1839] site= 1839
+4838 1 n1-1838.plc1.org sls= [1838, 1839, 1840] site= 1840
+4839 1 n1-1839.plc1.org sls= [1839, 1840, 1841] site= 1841
+4840 1 n1-1840.plc1.org sls= [1840, 1841, 1842] site= 1842
+4841 1 n1-1841.plc1.org sls= [1841, 1842, 1843] site= 1843
+4842 1 n1-1842.plc1.org sls= [1842, 1843, 1844] site= 1844
+4843 1 n1-1843.plc1.org sls= [1843, 1844, 1845] site= 1845
+4844 1 n1-1844.plc1.org sls= [1844, 1845, 1846] site= 1846
+4845 1 n1-1845.plc1.org sls= [1845, 1846, 1847] site= 1847
+4846 1 n1-1846.plc1.org sls= [1846, 1847, 1848] site= 1848
+4847 1 n1-1847.plc1.org sls= [1847, 1848, 1849] site= 1849
+4848 1 n1-1848.plc1.org sls= [1848, 1849, 1850] site= 1850
+4849 1 n1-1849.plc1.org sls= [1849, 1850, 1851] site= 1851
+4850 1 n1-1850.plc1.org sls= [1850, 1851, 1852] site= 1852
+4851 1 n1-1851.plc1.org sls= [1851, 1852, 1853] site= 1853
+4852 1 n1-1852.plc1.org sls= [1852, 1853, 1854] site= 1854
+4853 1 n1-1853.plc1.org sls= [1853, 1854, 1855] site= 1855
+4854 1 n1-1854.plc1.org sls= [1854, 1855, 1856] site= 1856
+4855 1 n1-1855.plc1.org sls= [1855, 1856, 1857] site= 1857
+4856 1 n1-1856.plc1.org sls= [1856, 1857, 1858] site= 1858
+4857 1 n1-1857.plc1.org sls= [1857, 1858, 1859] site= 1859
+4858 1 n1-1858.plc1.org sls= [1858, 1859, 1860] site= 1860
+4859 1 n1-1859.plc1.org sls= [1859, 1860, 1861] site= 1861
+4860 1 n1-1860.plc1.org sls= [1860, 1861, 1862] site= 1862
+4861 1 n1-1861.plc1.org sls= [1861, 1862, 1863] site= 1863
+4862 1 n1-1862.plc1.org sls= [1862, 1863, 1864] site= 1864
+4863 1 n1-1863.plc1.org sls= [1863, 1864, 1865] site= 1865
+4864 1 n1-1864.plc1.org sls= [1864, 1865, 1866] site= 1866
+4865 1 n1-1865.plc1.org sls= [1865, 1866, 1867] site= 1867
+4866 1 n1-1866.plc1.org sls= [1866, 1867, 1868] site= 1868
+4867 1 n1-1867.plc1.org sls= [1867, 1868, 1869] site= 1869
+4868 1 n1-1868.plc1.org sls= [1868, 1869, 1870] site= 1870
+4869 1 n1-1869.plc1.org sls= [1869, 1870, 1871] site= 1871
+4870 1 n1-1870.plc1.org sls= [1870, 1871, 1872] site= 1872
+4871 1 n1-1871.plc1.org sls= [1871, 1872, 1873] site= 1873
+4872 1 n1-1872.plc1.org sls= [1872, 1873, 1874] site= 1874
+4873 1 n1-1873.plc1.org sls= [1873, 1874, 1875] site= 1875
+4874 1 n1-1874.plc1.org sls= [1874, 1875, 1876] site= 1876
+4875 1 n1-1875.plc1.org sls= [1875, 1876, 1877] site= 1877
+4876 1 n1-1876.plc1.org sls= [1876, 1877, 1878] site= 1878
+4877 1 n1-1877.plc1.org sls= [1877, 1878, 1879] site= 1879
+4878 1 n1-1878.plc1.org sls= [1878, 1879, 1880] site= 1880
+4879 1 n1-1879.plc1.org sls= [1879, 1880, 1881] site= 1881
+4880 1 n1-1880.plc1.org sls= [1880, 1881, 1882] site= 1882
+4881 1 n1-1881.plc1.org sls= [1881, 1882, 1883] site= 1883
+4882 1 n1-1882.plc1.org sls= [1882, 1883, 1884] site= 1884
+4883 1 n1-1883.plc1.org sls= [1883, 1884, 1885] site= 1885
+4884 1 n1-1884.plc1.org sls= [1884, 1885, 1886] site= 1886
+4885 1 n1-1885.plc1.org sls= [1885, 1886, 1887] site= 1887
+4886 1 n1-1886.plc1.org sls= [1886, 1887, 1888] site= 1888
+4887 1 n1-1887.plc1.org sls= [1887, 1888, 1889] site= 1889
+4888 1 n1-1888.plc1.org sls= [1888, 1889, 1890] site= 1890
+4889 1 n1-1889.plc1.org sls= [1889, 1890, 1891] site= 1891
+4890 1 n1-1890.plc1.org sls= [1890, 1891, 1892] site= 1892
+4891 1 n1-1891.plc1.org sls= [1891, 1892, 1893] site= 1893
+4892 1 n1-1892.plc1.org sls= [1892, 1893, 1894] site= 1894
+4893 1 n1-1893.plc1.org sls= [1893, 1894, 1895] site= 1895
+4894 1 n1-1894.plc1.org sls= [1894, 1895, 1896] site= 1896
+4895 1 n1-1895.plc1.org sls= [1895, 1896, 1897] site= 1897
+4896 1 n1-1896.plc1.org sls= [1896, 1897, 1898] site= 1898
+4897 1 n1-1897.plc1.org sls= [1897, 1898, 1899] site= 1899
+4898 1 n1-1898.plc1.org sls= [1898, 1899, 1900] site= 1900
+4899 1 n1-1899.plc1.org sls= [1899, 1900, 1901] site= 1901
+4900 1 n1-1900.plc1.org sls= [1900, 1901, 1902] site= 1902
+4901 1 n1-1901.plc1.org sls= [1901, 1902, 1903] site= 1903
+4902 1 n1-1902.plc1.org sls= [1902, 1903, 1904] site= 1904
+4903 1 n1-1903.plc1.org sls= [1903, 1904, 1905] site= 1905
+4904 1 n1-1904.plc1.org sls= [1904, 1905, 1906] site= 1906
+4905 1 n1-1905.plc1.org sls= [1905, 1906, 1907] site= 1907
+4906 1 n1-1906.plc1.org sls= [1906, 1907, 1908] site= 1908
+4907 1 n1-1907.plc1.org sls= [1907, 1908, 1909] site= 1909
+4908 1 n1-1908.plc1.org sls= [1908, 1909, 1910] site= 1910
+4909 1 n1-1909.plc1.org sls= [1909, 1910, 1911] site= 1911
+4910 1 n1-1910.plc1.org sls= [1910, 1911, 1912] site= 1912
+4911 1 n1-1911.plc1.org sls= [1911, 1912, 1913] site= 1913
+4912 1 n1-1912.plc1.org sls= [1912, 1913, 1914] site= 1914
+4913 1 n1-1913.plc1.org sls= [1913, 1914, 1915] site= 1915
+4914 1 n1-1914.plc1.org sls= [1914, 1915, 1916] site= 1916
+4915 1 n1-1915.plc1.org sls= [1915, 1916, 1917] site= 1917
+4916 1 n1-1916.plc1.org sls= [1916, 1917, 1918] site= 1918
+4917 1 n1-1917.plc1.org sls= [1917, 1918, 1919] site= 1919
+4918 1 n1-1918.plc1.org sls= [1918, 1919, 1920] site= 1920
+4919 1 n1-1919.plc1.org sls= [1919, 1920, 1921] site= 1921
+4920 1 n1-1920.plc1.org sls= [1920, 1921, 1922] site= 1922
+4921 1 n1-1921.plc1.org sls= [1921, 1922, 1923] site= 1923
+4922 1 n1-1922.plc1.org sls= [1922, 1923, 1924] site= 1924
+4923 1 n1-1923.plc1.org sls= [1923, 1924, 1925] site= 1925
+4924 1 n1-1924.plc1.org sls= [1924, 1925, 1926] site= 1926
+4925 1 n1-1925.plc1.org sls= [1925, 1926, 1927] site= 1927
+4926 1 n1-1926.plc1.org sls= [1926, 1927, 1928] site= 1928
+4927 1 n1-1927.plc1.org sls= [1927, 1928, 1929] site= 1929
+4928 1 n1-1928.plc1.org sls= [1928, 1929, 1930] site= 1930
+4929 1 n1-1929.plc1.org sls= [1929, 1930, 1931] site= 1931
+4930 1 n1-1930.plc1.org sls= [1930, 1931, 1932] site= 1932
+4931 1 n1-1931.plc1.org sls= [1931, 1932, 1933] site= 1933
+4932 1 n1-1932.plc1.org sls= [1932, 1933, 1934] site= 1934
+4933 1 n1-1933.plc1.org sls= [1933, 1934, 1935] site= 1935
+4934 1 n1-1934.plc1.org sls= [1934, 1935, 1936] site= 1936
+4935 1 n1-1935.plc1.org sls= [1935, 1936, 1937] site= 1937
+4936 1 n1-1936.plc1.org sls= [1936, 1937, 1938] site= 1938
+4937 1 n1-1937.plc1.org sls= [1937, 1938, 1939] site= 1939
+4938 1 n1-1938.plc1.org sls= [1938, 1939, 1940] site= 1940
+4939 1 n1-1939.plc1.org sls= [1939, 1940, 1941] site= 1941
+4940 1 n1-1940.plc1.org sls= [1940, 1941, 1942] site= 1942
+4941 1 n1-1941.plc1.org sls= [1941, 1942, 1943] site= 1943
+4942 1 n1-1942.plc1.org sls= [1942, 1943, 1944] site= 1944
+4943 1 n1-1943.plc1.org sls= [1943, 1944, 1945] site= 1945
+4944 1 n1-1944.plc1.org sls= [1944, 1945, 1946] site= 1946
+4945 1 n1-1945.plc1.org sls= [1945, 1946, 1947] site= 1947
+4946 1 n1-1946.plc1.org sls= [1946, 1947, 1948] site= 1948
+4947 1 n1-1947.plc1.org sls= [1947, 1948, 1949] site= 1949
+4948 1 n1-1948.plc1.org sls= [1948, 1949, 1950] site= 1950
+4949 1 n1-1949.plc1.org sls= [1949, 1950, 1951] site= 1951
+4950 1 n1-1950.plc1.org sls= [1950, 1951, 1952] site= 1952
+4951 1 n1-1951.plc1.org sls= [1951, 1952, 1953] site= 1953
+4952 1 n1-1952.plc1.org sls= [1952, 1953, 1954] site= 1954
+4953 1 n1-1953.plc1.org sls= [1953, 1954, 1955] site= 1955
+4954 1 n1-1954.plc1.org sls= [1954, 1955, 1956] site= 1956
+4955 1 n1-1955.plc1.org sls= [1955, 1956, 1957] site= 1957
+4956 1 n1-1956.plc1.org sls= [1956, 1957, 1958] site= 1958
+4957 1 n1-1957.plc1.org sls= [1957, 1958, 1959] site= 1959
+4958 1 n1-1958.plc1.org sls= [1958, 1959, 1960] site= 1960
+4959 1 n1-1959.plc1.org sls= [1959, 1960, 1961] site= 1961
+4960 1 n1-1960.plc1.org sls= [1960, 1961, 1962] site= 1962
+4961 1 n1-1961.plc1.org sls= [1961, 1962, 1963] site= 1963
+4962 1 n1-1962.plc1.org sls= [1962, 1963, 1964] site= 1964
+4963 1 n1-1963.plc1.org sls= [1963, 1964, 1965] site= 1965
+4964 1 n1-1964.plc1.org sls= [1964, 1965, 1966] site= 1966
+4965 1 n1-1965.plc1.org sls= [1965, 1966, 1967] site= 1967
+4966 1 n1-1966.plc1.org sls= [1966, 1967, 1968] site= 1968
+4967 1 n1-1967.plc1.org sls= [1967, 1968, 1969] site= 1969
+4968 1 n1-1968.plc1.org sls= [1968, 1969, 1970] site= 1970
+4969 1 n1-1969.plc1.org sls= [1969, 1970, 1971] site= 1971
+4970 1 n1-1970.plc1.org sls= [1970, 1971, 1972] site= 1972
+4971 1 n1-1971.plc1.org sls= [1971, 1972, 1973] site= 1973
+4972 1 n1-1972.plc1.org sls= [1972, 1973, 1974] site= 1974
+4973 1 n1-1973.plc1.org sls= [1973, 1974, 1975] site= 1975
+4974 1 n1-1974.plc1.org sls= [1974, 1975, 1976] site= 1976
+4975 1 n1-1975.plc1.org sls= [1975, 1976, 1977] site= 1977
+4976 1 n1-1976.plc1.org sls= [1976, 1977, 1978] site= 1978
+4977 1 n1-1977.plc1.org sls= [1977, 1978, 1979] site= 1979
+4978 1 n1-1978.plc1.org sls= [1978, 1979, 1980] site= 1980
+4979 1 n1-1979.plc1.org sls= [1979, 1980, 1981] site= 1981
+4980 1 n1-1980.plc1.org sls= [1980, 1981, 1982] site= 1982
+4981 1 n1-1981.plc1.org sls= [1981, 1982, 1983] site= 1983
+4982 1 n1-1982.plc1.org sls= [1982, 1983, 1984] site= 1984
+4983 1 n1-1983.plc1.org sls= [1983, 1984, 1985] site= 1985
+4984 1 n1-1984.plc1.org sls= [1984, 1985, 1986] site= 1986
+4985 1 n1-1985.plc1.org sls= [1985, 1986, 1987] site= 1987
+4986 1 n1-1986.plc1.org sls= [1986, 1987, 1988] site= 1988
+4987 1 n1-1987.plc1.org sls= [1987, 1988, 1989] site= 1989
+4988 1 n1-1988.plc1.org sls= [1988, 1989, 1990] site= 1990
+4989 1 n1-1989.plc1.org sls= [1989, 1990, 1991] site= 1991
+4990 1 n1-1990.plc1.org sls= [1990, 1991, 1992] site= 1992
+4991 1 n1-1991.plc1.org sls= [1991, 1992, 1993] site= 1993
+4992 1 n1-1992.plc1.org sls= [1992, 1993, 1994] site= 1994
+4993 1 n1-1993.plc1.org sls= [1993, 1994, 1995] site= 1995
+4994 1 n1-1994.plc1.org sls= [1994, 1995, 1996] site= 1996
+4995 1 n1-1995.plc1.org sls= [1995, 1996, 1997] site= 1997
+4996 1 n1-1996.plc1.org sls= [1996, 1997, 1998] site= 1998
+4997 1 n1-1997.plc1.org sls= [1997, 1998, 1999] site= 1999
+4998 1 n1-1998.plc1.org sls= [1998, 1999, 2000] site= 2000
+4999 1 n1-1999.plc1.org sls= [1999, 2000, 2001] site= 2001
+5000 1 n1-2000.plc1.org sls= [2000, 2001, 2002] site= 2002
+5001 1 n1-2001.plc1.org sls= [2001, 2002] site= 1003
+5002 1 n1-2002.plc1.org sls= [2002] site= 1004
+5003 1 n1-2003.plc1.org sls= [] site= 1005
+5004 1 n1-2004.plc1.org sls= [] site= 1006
+5005 1 n1-2005.plc1.org sls= [] site= 1007
+5006 1 n1-2006.plc1.org sls= [] site= 1008
+5007 1 n1-2007.plc1.org sls= [] site= 1009
+5008 1 n1-2008.plc1.org sls= [] site= 1010
+5009 1 n1-2009.plc1.org sls= [] site= 1011
+5010 1 n1-2010.plc1.org sls= [] site= 1012
+5011 1 n1-2011.plc1.org sls= [] site= 1013
+5012 1 n1-2012.plc1.org sls= [] site= 1014
+5013 1 n1-2013.plc1.org sls= [] site= 1015
+5014 1 n1-2014.plc1.org sls= [] site= 1016
+5015 1 n1-2015.plc1.org sls= [] site= 1017
+5016 1 n1-2016.plc1.org sls= [] site= 1018
+5017 1 n1-2017.plc1.org sls= [] site= 1019
+5018 1 n1-2018.plc1.org sls= [] site= 1020
+5019 1 n1-2019.plc1.org sls= [] site= 1021
+5020 1 n1-2020.plc1.org sls= [] site= 1022
+5021 1 n1-2021.plc1.org sls= [] site= 1023
+5022 1 n1-2022.plc1.org sls= [] site= 1024
+5023 1 n1-2023.plc1.org sls= [] site= 1025
+5024 1 n1-2024.plc1.org sls= [] site= 1026
+5025 1 n1-2025.plc1.org sls= [] site= 1027
+5026 1 n1-2026.plc1.org sls= [] site= 1028
+5027 1 n1-2027.plc1.org sls= [] site= 1029
+5028 1 n1-2028.plc1.org sls= [] site= 1030
+5029 1 n1-2029.plc1.org sls= [] site= 1031
+5030 1 n1-2030.plc1.org sls= [] site= 1032
+5031 1 n1-2031.plc1.org sls= [] site= 1033
+5032 1 n1-2032.plc1.org sls= [] site= 1034
+5033 1 n1-2033.plc1.org sls= [] site= 1035
+5034 1 n1-2034.plc1.org sls= [] site= 1036
+5035 1 n1-2035.plc1.org sls= [] site= 1037
+5036 1 n1-2036.plc1.org sls= [] site= 1038
+5037 1 n1-2037.plc1.org sls= [] site= 1039
+5038 1 n1-2038.plc1.org sls= [] site= 1040
+5039 1 n1-2039.plc1.org sls= [] site= 1041
+5040 1 n1-2040.plc1.org sls= [] site= 1042
+5041 1 n1-2041.plc1.org sls= [] site= 1043
+5042 1 n1-2042.plc1.org sls= [] site= 1044
+5043 1 n1-2043.plc1.org sls= [] site= 1045
+5044 1 n1-2044.plc1.org sls= [] site= 1046
+5045 1 n1-2045.plc1.org sls= [] site= 1047
+5046 1 n1-2046.plc1.org sls= [] site= 1048
+5047 1 n1-2047.plc1.org sls= [] site= 1049
+5048 1 n1-2048.plc1.org sls= [] site= 1050
+5049 1 n1-2049.plc1.org sls= [] site= 1051
+5050 1 n1-2050.plc1.org sls= [] site= 1052
+5051 1 n1-2051.plc1.org sls= [] site= 1053
+5052 1 n1-2052.plc1.org sls= [] site= 1054
+5053 1 n1-2053.plc1.org sls= [] site= 1055
+5054 1 n1-2054.plc1.org sls= [] site= 1056
+5055 1 n1-2055.plc1.org sls= [] site= 1057
+5056 1 n1-2056.plc1.org sls= [] site= 1058
+5057 1 n1-2057.plc1.org sls= [] site= 1059
+5058 1 n1-2058.plc1.org sls= [] site= 1060
+5059 1 n1-2059.plc1.org sls= [] site= 1061
+5060 1 n1-2060.plc1.org sls= [] site= 1062
+5061 1 n1-2061.plc1.org sls= [] site= 1063
+5062 1 n1-2062.plc1.org sls= [] site= 1064
+5063 1 n1-2063.plc1.org sls= [] site= 1065
+5064 1 n1-2064.plc1.org sls= [] site= 1066
+5065 1 n1-2065.plc1.org sls= [] site= 1067
+5066 1 n1-2066.plc1.org sls= [] site= 1068
+5067 1 n1-2067.plc1.org sls= [] site= 1069
+5068 1 n1-2068.plc1.org sls= [] site= 1070
+5069 1 n1-2069.plc1.org sls= [] site= 1071
+5070 1 n1-2070.plc1.org sls= [] site= 1072
+5071 1 n1-2071.plc1.org sls= [] site= 1073
+5072 1 n1-2072.plc1.org sls= [] site= 1074
+5073 1 n1-2073.plc1.org sls= [] site= 1075
+5074 1 n1-2074.plc1.org sls= [] site= 1076
+5075 1 n1-2075.plc1.org sls= [] site= 1077
+5076 1 n1-2076.plc1.org sls= [] site= 1078
+5077 1 n1-2077.plc1.org sls= [] site= 1079
+5078 1 n1-2078.plc1.org sls= [] site= 1080
+5079 1 n1-2079.plc1.org sls= [] site= 1081
+5080 1 n1-2080.plc1.org sls= [] site= 1082
+5081 1 n1-2081.plc1.org sls= [] site= 1083
+5082 1 n1-2082.plc1.org sls= [] site= 1084
+5083 1 n1-2083.plc1.org sls= [] site= 1085
+5084 1 n1-2084.plc1.org sls= [] site= 1086
+5085 1 n1-2085.plc1.org sls= [] site= 1087
+5086 1 n1-2086.plc1.org sls= [] site= 1088
+5087 1 n1-2087.plc1.org sls= [] site= 1089
+5088 1 n1-2088.plc1.org sls= [] site= 1090
+5089 1 n1-2089.plc1.org sls= [] site= 1091
+5090 1 n1-2090.plc1.org sls= [] site= 1092
+5091 1 n1-2091.plc1.org sls= [] site= 1093
+5092 1 n1-2092.plc1.org sls= [] site= 1094
+5093 1 n1-2093.plc1.org sls= [] site= 1095
+5094 1 n1-2094.plc1.org sls= [] site= 1096
+5095 1 n1-2095.plc1.org sls= [] site= 1097
+5096 1 n1-2096.plc1.org sls= [] site= 1098
+5097 1 n1-2097.plc1.org sls= [] site= 1099
+5098 1 n1-2098.plc1.org sls= [] site= 1100
+5099 1 n1-2099.plc1.org sls= [] site= 1101
+5100 1 n1-2100.plc1.org sls= [] site= 1102
+5101 1 n1-2101.plc1.org sls= [] site= 1103
+5102 1 n1-2102.plc1.org sls= [] site= 1104
+5103 1 n1-2103.plc1.org sls= [] site= 1105
+5104 1 n1-2104.plc1.org sls= [] site= 1106
+5105 1 n1-2105.plc1.org sls= [] site= 1107
+5106 1 n1-2106.plc1.org sls= [] site= 1108
+5107 1 n1-2107.plc1.org sls= [] site= 1109
+5108 1 n1-2108.plc1.org sls= [] site= 1110
+5109 1 n1-2109.plc1.org sls= [] site= 1111
+5110 1 n1-2110.plc1.org sls= [] site= 1112
+5111 1 n1-2111.plc1.org sls= [] site= 1113
+5112 1 n1-2112.plc1.org sls= [] site= 1114
+5113 1 n1-2113.plc1.org sls= [] site= 1115
+5114 1 n1-2114.plc1.org sls= [] site= 1116
+5115 1 n1-2115.plc1.org sls= [] site= 1117
+5116 1 n1-2116.plc1.org sls= [] site= 1118
+5117 1 n1-2117.plc1.org sls= [] site= 1119
+5118 1 n1-2118.plc1.org sls= [] site= 1120
+5119 1 n1-2119.plc1.org sls= [] site= 1121
+5120 1 n1-2120.plc1.org sls= [] site= 1122
+5121 1 n1-2121.plc1.org sls= [] site= 1123
+5122 1 n1-2122.plc1.org sls= [] site= 1124
+5123 1 n1-2123.plc1.org sls= [] site= 1125
+5124 1 n1-2124.plc1.org sls= [] site= 1126
+5125 1 n1-2125.plc1.org sls= [] site= 1127
+5126 1 n1-2126.plc1.org sls= [] site= 1128
+5127 1 n1-2127.plc1.org sls= [] site= 1129
+5128 1 n1-2128.plc1.org sls= [] site= 1130
+5129 1 n1-2129.plc1.org sls= [] site= 1131
+5130 1 n1-2130.plc1.org sls= [] site= 1132
+5131 1 n1-2131.plc1.org sls= [] site= 1133
+5132 1 n1-2132.plc1.org sls= [] site= 1134
+5133 1 n1-2133.plc1.org sls= [] site= 1135
+5134 1 n1-2134.plc1.org sls= [] site= 1136
+5135 1 n1-2135.plc1.org sls= [] site= 1137
+5136 1 n1-2136.plc1.org sls= [] site= 1138
+5137 1 n1-2137.plc1.org sls= [] site= 1139
+5138 1 n1-2138.plc1.org sls= [] site= 1140
+5139 1 n1-2139.plc1.org sls= [] site= 1141
+5140 1 n1-2140.plc1.org sls= [] site= 1142
+5141 1 n1-2141.plc1.org sls= [] site= 1143
+5142 1 n1-2142.plc1.org sls= [] site= 1144
+5143 1 n1-2143.plc1.org sls= [] site= 1145
+5144 1 n1-2144.plc1.org sls= [] site= 1146
+5145 1 n1-2145.plc1.org sls= [] site= 1147
+5146 1 n1-2146.plc1.org sls= [] site= 1148
+5147 1 n1-2147.plc1.org sls= [] site= 1149
+5148 1 n1-2148.plc1.org sls= [] site= 1150
+5149 1 n1-2149.plc1.org sls= [] site= 1151
+5150 1 n1-2150.plc1.org sls= [] site= 1152
+5151 1 n1-2151.plc1.org sls= [] site= 1153
+5152 1 n1-2152.plc1.org sls= [] site= 1154
+5153 1 n1-2153.plc1.org sls= [] site= 1155
+5154 1 n1-2154.plc1.org sls= [] site= 1156
+5155 1 n1-2155.plc1.org sls= [] site= 1157
+5156 1 n1-2156.plc1.org sls= [] site= 1158
+5157 1 n1-2157.plc1.org sls= [] site= 1159
+5158 1 n1-2158.plc1.org sls= [] site= 1160
+5159 1 n1-2159.plc1.org sls= [] site= 1161
+5160 1 n1-2160.plc1.org sls= [] site= 1162
+5161 1 n1-2161.plc1.org sls= [] site= 1163
+5162 1 n1-2162.plc1.org sls= [] site= 1164
+5163 1 n1-2163.plc1.org sls= [] site= 1165
+5164 1 n1-2164.plc1.org sls= [] site= 1166
+5165 1 n1-2165.plc1.org sls= [] site= 1167
+5166 1 n1-2166.plc1.org sls= [] site= 1168
+5167 1 n1-2167.plc1.org sls= [] site= 1169
+5168 1 n1-2168.plc1.org sls= [] site= 1170
+5169 1 n1-2169.plc1.org sls= [] site= 1171
+5170 1 n1-2170.plc1.org sls= [] site= 1172
+5171 1 n1-2171.plc1.org sls= [] site= 1173
+5172 1 n1-2172.plc1.org sls= [] site= 1174
+5173 1 n1-2173.plc1.org sls= [] site= 1175
+5174 1 n1-2174.plc1.org sls= [] site= 1176
+5175 1 n1-2175.plc1.org sls= [] site= 1177
+5176 1 n1-2176.plc1.org sls= [] site= 1178
+5177 1 n1-2177.plc1.org sls= [] site= 1179
+5178 1 n1-2178.plc1.org sls= [] site= 1180
+5179 1 n1-2179.plc1.org sls= [] site= 1181
+5180 1 n1-2180.plc1.org sls= [] site= 1182
+5181 1 n1-2181.plc1.org sls= [] site= 1183
+5182 1 n1-2182.plc1.org sls= [] site= 1184
+5183 1 n1-2183.plc1.org sls= [] site= 1185
+5184 1 n1-2184.plc1.org sls= [] site= 1186
+5185 1 n1-2185.plc1.org sls= [] site= 1187
+5186 1 n1-2186.plc1.org sls= [] site= 1188
+5187 1 n1-2187.plc1.org sls= [] site= 1189
+5188 1 n1-2188.plc1.org sls= [] site= 1190
+5189 1 n1-2189.plc1.org sls= [] site= 1191
+5190 1 n1-2190.plc1.org sls= [] site= 1192
+5191 1 n1-2191.plc1.org sls= [] site= 1193
+5192 1 n1-2192.plc1.org sls= [] site= 1194
+5193 1 n1-2193.plc1.org sls= [] site= 1195
+5194 1 n1-2194.plc1.org sls= [] site= 1196
+5195 1 n1-2195.plc1.org sls= [] site= 1197
+5196 1 n1-2196.plc1.org sls= [] site= 1198
+5197 1 n1-2197.plc1.org sls= [] site= 1199
+5198 1 n1-2198.plc1.org sls= [] site= 1200
+5199 1 n1-2199.plc1.org sls= [] site= 1201
+5200 1 n1-2200.plc1.org sls= [] site= 1202
+5201 1 n1-2201.plc1.org sls= [] site= 1203
+5202 1 n1-2202.plc1.org sls= [] site= 1204
+5203 1 n1-2203.plc1.org sls= [] site= 1205
+5204 1 n1-2204.plc1.org sls= [] site= 1206
+5205 1 n1-2205.plc1.org sls= [] site= 1207
+5206 1 n1-2206.plc1.org sls= [] site= 1208
+5207 1 n1-2207.plc1.org sls= [] site= 1209
+5208 1 n1-2208.plc1.org sls= [] site= 1210
+5209 1 n1-2209.plc1.org sls= [] site= 1211
+5210 1 n1-2210.plc1.org sls= [] site= 1212
+5211 1 n1-2211.plc1.org sls= [] site= 1213
+5212 1 n1-2212.plc1.org sls= [] site= 1214
+5213 1 n1-2213.plc1.org sls= [] site= 1215
+5214 1 n1-2214.plc1.org sls= [] site= 1216
+5215 1 n1-2215.plc1.org sls= [] site= 1217
+5216 1 n1-2216.plc1.org sls= [] site= 1218
+5217 1 n1-2217.plc1.org sls= [] site= 1219
+5218 1 n1-2218.plc1.org sls= [] site= 1220
+5219 1 n1-2219.plc1.org sls= [] site= 1221
+5220 1 n1-2220.plc1.org sls= [] site= 1222
+5221 1 n1-2221.plc1.org sls= [] site= 1223
+5222 1 n1-2222.plc1.org sls= [] site= 1224
+5223 1 n1-2223.plc1.org sls= [] site= 1225
+5224 1 n1-2224.plc1.org sls= [] site= 1226
+5225 1 n1-2225.plc1.org sls= [] site= 1227
+5226 1 n1-2226.plc1.org sls= [] site= 1228
+5227 1 n1-2227.plc1.org sls= [] site= 1229
+5228 1 n1-2228.plc1.org sls= [] site= 1230
+5229 1 n1-2229.plc1.org sls= [] site= 1231
+5230 1 n1-2230.plc1.org sls= [] site= 1232
+5231 1 n1-2231.plc1.org sls= [] site= 1233
+5232 1 n1-2232.plc1.org sls= [] site= 1234
+5233 1 n1-2233.plc1.org sls= [] site= 1235
+5234 1 n1-2234.plc1.org sls= [] site= 1236
+5235 1 n1-2235.plc1.org sls= [] site= 1237
+5236 1 n1-2236.plc1.org sls= [] site= 1238
+5237 1 n1-2237.plc1.org sls= [] site= 1239
+5238 1 n1-2238.plc1.org sls= [] site= 1240
+5239 1 n1-2239.plc1.org sls= [] site= 1241
+5240 1 n1-2240.plc1.org sls= [] site= 1242
+5241 1 n1-2241.plc1.org sls= [] site= 1243
+5242 1 n1-2242.plc1.org sls= [] site= 1244
+5243 1 n1-2243.plc1.org sls= [] site= 1245
+5244 1 n1-2244.plc1.org sls= [] site= 1246
+5245 1 n1-2245.plc1.org sls= [] site= 1247
+5246 1 n1-2246.plc1.org sls= [] site= 1248
+5247 1 n1-2247.plc1.org sls= [] site= 1249
+5248 1 n1-2248.plc1.org sls= [] site= 1250
+5249 1 n1-2249.plc1.org sls= [] site= 1251
+5250 1 n1-2250.plc1.org sls= [] site= 1252
+5251 1 n1-2251.plc1.org sls= [] site= 1253
+5252 1 n1-2252.plc1.org sls= [] site= 1254
+5253 1 n1-2253.plc1.org sls= [] site= 1255
+5254 1 n1-2254.plc1.org sls= [] site= 1256
+5255 1 n1-2255.plc1.org sls= [] site= 1257
+5256 1 n1-2256.plc1.org sls= [] site= 1258
+5257 1 n1-2257.plc1.org sls= [] site= 1259
+5258 1 n1-2258.plc1.org sls= [] site= 1260
+5259 1 n1-2259.plc1.org sls= [] site= 1261
+5260 1 n1-2260.plc1.org sls= [] site= 1262
+5261 1 n1-2261.plc1.org sls= [] site= 1263
+5262 1 n1-2262.plc1.org sls= [] site= 1264
+5263 1 n1-2263.plc1.org sls= [] site= 1265
+5264 1 n1-2264.plc1.org sls= [] site= 1266
+5265 1 n1-2265.plc1.org sls= [] site= 1267
+5266 1 n1-2266.plc1.org sls= [] site= 1268
+5267 1 n1-2267.plc1.org sls= [] site= 1269
+5268 1 n1-2268.plc1.org sls= [] site= 1270
+5269 1 n1-2269.plc1.org sls= [] site= 1271
+5270 1 n1-2270.plc1.org sls= [] site= 1272
+5271 1 n1-2271.plc1.org sls= [] site= 1273
+5272 1 n1-2272.plc1.org sls= [] site= 1274
+5273 1 n1-2273.plc1.org sls= [] site= 1275
+5274 1 n1-2274.plc1.org sls= [] site= 1276
+5275 1 n1-2275.plc1.org sls= [] site= 1277
+5276 1 n1-2276.plc1.org sls= [] site= 1278
+5277 1 n1-2277.plc1.org sls= [] site= 1279
+5278 1 n1-2278.plc1.org sls= [] site= 1280
+5279 1 n1-2279.plc1.org sls= [] site= 1281
+5280 1 n1-2280.plc1.org sls= [] site= 1282
+5281 1 n1-2281.plc1.org sls= [] site= 1283
+5282 1 n1-2282.plc1.org sls= [] site= 1284
+5283 1 n1-2283.plc1.org sls= [] site= 1285
+5284 1 n1-2284.plc1.org sls= [] site= 1286
+5285 1 n1-2285.plc1.org sls= [] site= 1287
+5286 1 n1-2286.plc1.org sls= [] site= 1288
+5287 1 n1-2287.plc1.org sls= [] site= 1289
+5288 1 n1-2288.plc1.org sls= [] site= 1290
+5289 1 n1-2289.plc1.org sls= [] site= 1291
+5290 1 n1-2290.plc1.org sls= [] site= 1292
+5291 1 n1-2291.plc1.org sls= [] site= 1293
+5292 1 n1-2292.plc1.org sls= [] site= 1294
+5293 1 n1-2293.plc1.org sls= [] site= 1295
+5294 1 n1-2294.plc1.org sls= [] site= 1296
+5295 1 n1-2295.plc1.org sls= [] site= 1297
+5296 1 n1-2296.plc1.org sls= [] site= 1298
+5297 1 n1-2297.plc1.org sls= [] site= 1299
+5298 1 n1-2298.plc1.org sls= [] site= 1300
+5299 1 n1-2299.plc1.org sls= [] site= 1301
+5300 1 n1-2300.plc1.org sls= [] site= 1302
+5301 1 n1-2301.plc1.org sls= [] site= 1303
+5302 1 n1-2302.plc1.org sls= [] site= 1304
+5303 1 n1-2303.plc1.org sls= [] site= 1305
+5304 1 n1-2304.plc1.org sls= [] site= 1306
+5305 1 n1-2305.plc1.org sls= [] site= 1307
+5306 1 n1-2306.plc1.org sls= [] site= 1308
+5307 1 n1-2307.plc1.org sls= [] site= 1309
+5308 1 n1-2308.plc1.org sls= [] site= 1310
+5309 1 n1-2309.plc1.org sls= [] site= 1311
+5310 1 n1-2310.plc1.org sls= [] site= 1312
+5311 1 n1-2311.plc1.org sls= [] site= 1313
+5312 1 n1-2312.plc1.org sls= [] site= 1314
+5313 1 n1-2313.plc1.org sls= [] site= 1315
+5314 1 n1-2314.plc1.org sls= [] site= 1316
+5315 1 n1-2315.plc1.org sls= [] site= 1317
+5316 1 n1-2316.plc1.org sls= [] site= 1318
+5317 1 n1-2317.plc1.org sls= [] site= 1319
+5318 1 n1-2318.plc1.org sls= [] site= 1320
+5319 1 n1-2319.plc1.org sls= [] site= 1321
+5320 1 n1-2320.plc1.org sls= [] site= 1322
+5321 1 n1-2321.plc1.org sls= [] site= 1323
+5322 1 n1-2322.plc1.org sls= [] site= 1324
+5323 1 n1-2323.plc1.org sls= [] site= 1325
+5324 1 n1-2324.plc1.org sls= [] site= 1326
+5325 1 n1-2325.plc1.org sls= [] site= 1327
+5326 1 n1-2326.plc1.org sls= [] site= 1328
+5327 1 n1-2327.plc1.org sls= [] site= 1329
+5328 1 n1-2328.plc1.org sls= [] site= 1330
+5329 1 n1-2329.plc1.org sls= [] site= 1331
+5330 1 n1-2330.plc1.org sls= [] site= 1332
+5331 1 n1-2331.plc1.org sls= [] site= 1333
+5332 1 n1-2332.plc1.org sls= [] site= 1334
+5333 1 n1-2333.plc1.org sls= [] site= 1335
+5334 1 n1-2334.plc1.org sls= [] site= 1336
+5335 1 n1-2335.plc1.org sls= [] site= 1337
+5336 1 n1-2336.plc1.org sls= [] site= 1338
+5337 1 n1-2337.plc1.org sls= [] site= 1339
+5338 1 n1-2338.plc1.org sls= [] site= 1340
+5339 1 n1-2339.plc1.org sls= [] site= 1341
+5340 1 n1-2340.plc1.org sls= [] site= 1342
+5341 1 n1-2341.plc1.org sls= [] site= 1343
+5342 1 n1-2342.plc1.org sls= [] site= 1344
+5343 1 n1-2343.plc1.org sls= [] site= 1345
+5344 1 n1-2344.plc1.org sls= [] site= 1346
+5345 1 n1-2345.plc1.org sls= [] site= 1347
+5346 1 n1-2346.plc1.org sls= [] site= 1348
+5347 1 n1-2347.plc1.org sls= [] site= 1349
+5348 1 n1-2348.plc1.org sls= [] site= 1350
+5349 1 n1-2349.plc1.org sls= [] site= 1351
+5350 1 n1-2350.plc1.org sls= [] site= 1352
+5351 1 n1-2351.plc1.org sls= [] site= 1353
+5352 1 n1-2352.plc1.org sls= [] site= 1354
+5353 1 n1-2353.plc1.org sls= [] site= 1355
+5354 1 n1-2354.plc1.org sls= [] site= 1356
+5355 1 n1-2355.plc1.org sls= [] site= 1357
+5356 1 n1-2356.plc1.org sls= [] site= 1358
+5357 1 n1-2357.plc1.org sls= [] site= 1359
+5358 1 n1-2358.plc1.org sls= [] site= 1360
+5359 1 n1-2359.plc1.org sls= [] site= 1361
+5360 1 n1-2360.plc1.org sls= [] site= 1362
+5361 1 n1-2361.plc1.org sls= [] site= 1363
+5362 1 n1-2362.plc1.org sls= [] site= 1364
+5363 1 n1-2363.plc1.org sls= [] site= 1365
+5364 1 n1-2364.plc1.org sls= [] site= 1366
+5365 1 n1-2365.plc1.org sls= [] site= 1367
+5366 1 n1-2366.plc1.org sls= [] site= 1368
+5367 1 n1-2367.plc1.org sls= [] site= 1369
+5368 1 n1-2368.plc1.org sls= [] site= 1370
+5369 1 n1-2369.plc1.org sls= [] site= 1371
+5370 1 n1-2370.plc1.org sls= [] site= 1372
+5371 1 n1-2371.plc1.org sls= [] site= 1373
+5372 1 n1-2372.plc1.org sls= [] site= 1374
+5373 1 n1-2373.plc1.org sls= [] site= 1375
+5374 1 n1-2374.plc1.org sls= [] site= 1376
+5375 1 n1-2375.plc1.org sls= [] site= 1377
+5376 1 n1-2376.plc1.org sls= [] site= 1378
+5377 1 n1-2377.plc1.org sls= [] site= 1379
+5378 1 n1-2378.plc1.org sls= [] site= 1380
+5379 1 n1-2379.plc1.org sls= [] site= 1381
+5380 1 n1-2380.plc1.org sls= [] site= 1382
+5381 1 n1-2381.plc1.org sls= [] site= 1383
+5382 1 n1-2382.plc1.org sls= [] site= 1384
+5383 1 n1-2383.plc1.org sls= [] site= 1385
+5384 1 n1-2384.plc1.org sls= [] site= 1386
+5385 1 n1-2385.plc1.org sls= [] site= 1387
+5386 1 n1-2386.plc1.org sls= [] site= 1388
+5387 1 n1-2387.plc1.org sls= [] site= 1389
+5388 1 n1-2388.plc1.org sls= [] site= 1390
+5389 1 n1-2389.plc1.org sls= [] site= 1391
+5390 1 n1-2390.plc1.org sls= [] site= 1392
+5391 1 n1-2391.plc1.org sls= [] site= 1393
+5392 1 n1-2392.plc1.org sls= [] site= 1394
+5393 1 n1-2393.plc1.org sls= [] site= 1395
+5394 1 n1-2394.plc1.org sls= [] site= 1396
+5395 1 n1-2395.plc1.org sls= [] site= 1397
+5396 1 n1-2396.plc1.org sls= [] site= 1398
+5397 1 n1-2397.plc1.org sls= [] site= 1399
+5398 1 n1-2398.plc1.org sls= [] site= 1400
+5399 1 n1-2399.plc1.org sls= [] site= 1401
+5400 1 n1-2400.plc1.org sls= [] site= 1402
+5401 1 n1-2401.plc1.org sls= [] site= 1403
+5402 1 n1-2402.plc1.org sls= [] site= 1404
+5403 1 n1-2403.plc1.org sls= [] site= 1405
+5404 1 n1-2404.plc1.org sls= [] site= 1406
+5405 1 n1-2405.plc1.org sls= [] site= 1407
+5406 1 n1-2406.plc1.org sls= [] site= 1408
+5407 1 n1-2407.plc1.org sls= [] site= 1409
+5408 1 n1-2408.plc1.org sls= [] site= 1410
+5409 1 n1-2409.plc1.org sls= [] site= 1411
+5410 1 n1-2410.plc1.org sls= [] site= 1412
+5411 1 n1-2411.plc1.org sls= [] site= 1413
+5412 1 n1-2412.plc1.org sls= [] site= 1414
+5413 1 n1-2413.plc1.org sls= [] site= 1415
+5414 1 n1-2414.plc1.org sls= [] site= 1416
+5415 1 n1-2415.plc1.org sls= [] site= 1417
+5416 1 n1-2416.plc1.org sls= [] site= 1418
+5417 1 n1-2417.plc1.org sls= [] site= 1419
+5418 1 n1-2418.plc1.org sls= [] site= 1420
+5419 1 n1-2419.plc1.org sls= [] site= 1421
+5420 1 n1-2420.plc1.org sls= [] site= 1422
+5421 1 n1-2421.plc1.org sls= [] site= 1423
+5422 1 n1-2422.plc1.org sls= [] site= 1424
+5423 1 n1-2423.plc1.org sls= [] site= 1425
+5424 1 n1-2424.plc1.org sls= [] site= 1426
+5425 1 n1-2425.plc1.org sls= [] site= 1427
+5426 1 n1-2426.plc1.org sls= [] site= 1428
+5427 1 n1-2427.plc1.org sls= [] site= 1429
+5428 1 n1-2428.plc1.org sls= [] site= 1430
+5429 1 n1-2429.plc1.org sls= [] site= 1431
+5430 1 n1-2430.plc1.org sls= [] site= 1432
+5431 1 n1-2431.plc1.org sls= [] site= 1433
+5432 1 n1-2432.plc1.org sls= [] site= 1434
+5433 1 n1-2433.plc1.org sls= [] site= 1435
+5434 1 n1-2434.plc1.org sls= [] site= 1436
+5435 1 n1-2435.plc1.org sls= [] site= 1437
+5436 1 n1-2436.plc1.org sls= [] site= 1438
+5437 1 n1-2437.plc1.org sls= [] site= 1439
+5438 1 n1-2438.plc1.org sls= [] site= 1440
+5439 1 n1-2439.plc1.org sls= [] site= 1441
+5440 1 n1-2440.plc1.org sls= [] site= 1442
+5441 1 n1-2441.plc1.org sls= [] site= 1443
+5442 1 n1-2442.plc1.org sls= [] site= 1444
+5443 1 n1-2443.plc1.org sls= [] site= 1445
+5444 1 n1-2444.plc1.org sls= [] site= 1446
+5445 1 n1-2445.plc1.org sls= [] site= 1447
+5446 1 n1-2446.plc1.org sls= [] site= 1448
+5447 1 n1-2447.plc1.org sls= [] site= 1449
+5448 1 n1-2448.plc1.org sls= [] site= 1450
+5449 1 n1-2449.plc1.org sls= [] site= 1451
+5450 1 n1-2450.plc1.org sls= [] site= 1452
+5451 1 n1-2451.plc1.org sls= [] site= 1453
+5452 1 n1-2452.plc1.org sls= [] site= 1454
+5453 1 n1-2453.plc1.org sls= [] site= 1455
+5454 1 n1-2454.plc1.org sls= [] site= 1456
+5455 1 n1-2455.plc1.org sls= [] site= 1457
+5456 1 n1-2456.plc1.org sls= [] site= 1458
+5457 1 n1-2457.plc1.org sls= [] site= 1459
+5458 1 n1-2458.plc1.org sls= [] site= 1460
+5459 1 n1-2459.plc1.org sls= [] site= 1461
+5460 1 n1-2460.plc1.org sls= [] site= 1462
+5461 1 n1-2461.plc1.org sls= [] site= 1463
+5462 1 n1-2462.plc1.org sls= [] site= 1464
+5463 1 n1-2463.plc1.org sls= [] site= 1465
+5464 1 n1-2464.plc1.org sls= [] site= 1466
+5465 1 n1-2465.plc1.org sls= [] site= 1467
+5466 1 n1-2466.plc1.org sls= [] site= 1468
+5467 1 n1-2467.plc1.org sls= [] site= 1469
+5468 1 n1-2468.plc1.org sls= [] site= 1470
+5469 1 n1-2469.plc1.org sls= [] site= 1471
+5470 1 n1-2470.plc1.org sls= [] site= 1472
+5471 1 n1-2471.plc1.org sls= [] site= 1473
+5472 1 n1-2472.plc1.org sls= [] site= 1474
+5473 1 n1-2473.plc1.org sls= [] site= 1475
+5474 1 n1-2474.plc1.org sls= [] site= 1476
+5475 1 n1-2475.plc1.org sls= [] site= 1477
+5476 1 n1-2476.plc1.org sls= [] site= 1478
+5477 1 n1-2477.plc1.org sls= [] site= 1479
+5478 1 n1-2478.plc1.org sls= [] site= 1480
+5479 1 n1-2479.plc1.org sls= [] site= 1481
+5480 1 n1-2480.plc1.org sls= [] site= 1482
+5481 1 n1-2481.plc1.org sls= [] site= 1483
+5482 1 n1-2482.plc1.org sls= [] site= 1484
+5483 1 n1-2483.plc1.org sls= [] site= 1485
+5484 1 n1-2484.plc1.org sls= [] site= 1486
+5485 1 n1-2485.plc1.org sls= [] site= 1487
+5486 1 n1-2486.plc1.org sls= [] site= 1488
+5487 1 n1-2487.plc1.org sls= [] site= 1489
+5488 1 n1-2488.plc1.org sls= [] site= 1490
+5489 1 n1-2489.plc1.org sls= [] site= 1491
+5490 1 n1-2490.plc1.org sls= [] site= 1492
+5491 1 n1-2491.plc1.org sls= [] site= 1493
+5492 1 n1-2492.plc1.org sls= [] site= 1494
+5493 1 n1-2493.plc1.org sls= [] site= 1495
+5494 1 n1-2494.plc1.org sls= [] site= 1496
+5495 1 n1-2495.plc1.org sls= [] site= 1497
+5496 1 n1-2496.plc1.org sls= [] site= 1498
+5497 1 n1-2497.plc1.org sls= [] site= 1499
+5498 1 n1-2498.plc1.org sls= [] site= 1500
+5499 1 n1-2499.plc1.org sls= [] site= 1501
+5500 1 n1-2500.plc1.org sls= [] site= 1502
+5501 1 n1-2501.plc1.org sls= [] site= 1503
+5502 1 n1-2502.plc1.org sls= [] site= 1504
+5503 1 n1-2503.plc1.org sls= [] site= 1505
+5504 1 n1-2504.plc1.org sls= [] site= 1506
+5505 1 n1-2505.plc1.org sls= [] site= 1507
+5506 1 n1-2506.plc1.org sls= [] site= 1508
+5507 1 n1-2507.plc1.org sls= [] site= 1509
+5508 1 n1-2508.plc1.org sls= [] site= 1510
+5509 1 n1-2509.plc1.org sls= [] site= 1511
+5510 1 n1-2510.plc1.org sls= [] site= 1512
+5511 1 n1-2511.plc1.org sls= [] site= 1513
+5512 1 n1-2512.plc1.org sls= [] site= 1514
+5513 1 n1-2513.plc1.org sls= [] site= 1515
+5514 1 n1-2514.plc1.org sls= [] site= 1516
+5515 1 n1-2515.plc1.org sls= [] site= 1517
+5516 1 n1-2516.plc1.org sls= [] site= 1518
+5517 1 n1-2517.plc1.org sls= [] site= 1519
+5518 1 n1-2518.plc1.org sls= [] site= 1520
+5519 1 n1-2519.plc1.org sls= [] site= 1521
+5520 1 n1-2520.plc1.org sls= [] site= 1522
+5521 1 n1-2521.plc1.org sls= [] site= 1523
+5522 1 n1-2522.plc1.org sls= [] site= 1524
+5523 1 n1-2523.plc1.org sls= [] site= 1525
+5524 1 n1-2524.plc1.org sls= [] site= 1526
+5525 1 n1-2525.plc1.org sls= [] site= 1527
+5526 1 n1-2526.plc1.org sls= [] site= 1528
+5527 1 n1-2527.plc1.org sls= [] site= 1529
+5528 1 n1-2528.plc1.org sls= [] site= 1530
+5529 1 n1-2529.plc1.org sls= [] site= 1531
+5530 1 n1-2530.plc1.org sls= [] site= 1532
+5531 1 n1-2531.plc1.org sls= [] site= 1533
+5532 1 n1-2532.plc1.org sls= [] site= 1534
+5533 1 n1-2533.plc1.org sls= [] site= 1535
+5534 1 n1-2534.plc1.org sls= [] site= 1536
+5535 1 n1-2535.plc1.org sls= [] site= 1537
+5536 1 n1-2536.plc1.org sls= [] site= 1538
+5537 1 n1-2537.plc1.org sls= [] site= 1539
+5538 1 n1-2538.plc1.org sls= [] site= 1540
+5539 1 n1-2539.plc1.org sls= [] site= 1541
+5540 1 n1-2540.plc1.org sls= [] site= 1542
+5541 1 n1-2541.plc1.org sls= [] site= 1543
+5542 1 n1-2542.plc1.org sls= [] site= 1544
+5543 1 n1-2543.plc1.org sls= [] site= 1545
+5544 1 n1-2544.plc1.org sls= [] site= 1546
+5545 1 n1-2545.plc1.org sls= [] site= 1547
+5546 1 n1-2546.plc1.org sls= [] site= 1548
+5547 1 n1-2547.plc1.org sls= [] site= 1549
+5548 1 n1-2548.plc1.org sls= [] site= 1550
+5549 1 n1-2549.plc1.org sls= [] site= 1551
+5550 1 n1-2550.plc1.org sls= [] site= 1552
+5551 1 n1-2551.plc1.org sls= [] site= 1553
+5552 1 n1-2552.plc1.org sls= [] site= 1554
+5553 1 n1-2553.plc1.org sls= [] site= 1555
+5554 1 n1-2554.plc1.org sls= [] site= 1556
+5555 1 n1-2555.plc1.org sls= [] site= 1557
+5556 1 n1-2556.plc1.org sls= [] site= 1558
+5557 1 n1-2557.plc1.org sls= [] site= 1559
+5558 1 n1-2558.plc1.org sls= [] site= 1560
+5559 1 n1-2559.plc1.org sls= [] site= 1561
+5560 1 n1-2560.plc1.org sls= [] site= 1562
+5561 1 n1-2561.plc1.org sls= [] site= 1563
+5562 1 n1-2562.plc1.org sls= [] site= 1564
+5563 1 n1-2563.plc1.org sls= [] site= 1565
+5564 1 n1-2564.plc1.org sls= [] site= 1566
+5565 1 n1-2565.plc1.org sls= [] site= 1567
+5566 1 n1-2566.plc1.org sls= [] site= 1568
+5567 1 n1-2567.plc1.org sls= [] site= 1569
+5568 1 n1-2568.plc1.org sls= [] site= 1570
+5569 1 n1-2569.plc1.org sls= [] site= 1571
+5570 1 n1-2570.plc1.org sls= [] site= 1572
+5571 1 n1-2571.plc1.org sls= [] site= 1573
+5572 1 n1-2572.plc1.org sls= [] site= 1574
+5573 1 n1-2573.plc1.org sls= [] site= 1575
+5574 1 n1-2574.plc1.org sls= [] site= 1576
+5575 1 n1-2575.plc1.org sls= [] site= 1577
+5576 1 n1-2576.plc1.org sls= [] site= 1578
+5577 1 n1-2577.plc1.org sls= [] site= 1579
+5578 1 n1-2578.plc1.org sls= [] site= 1580
+5579 1 n1-2579.plc1.org sls= [] site= 1581
+5580 1 n1-2580.plc1.org sls= [] site= 1582
+5581 1 n1-2581.plc1.org sls= [] site= 1583
+5582 1 n1-2582.plc1.org sls= [] site= 1584
+5583 1 n1-2583.plc1.org sls= [] site= 1585
+5584 1 n1-2584.plc1.org sls= [] site= 1586
+5585 1 n1-2585.plc1.org sls= [] site= 1587
+5586 1 n1-2586.plc1.org sls= [] site= 1588
+5587 1 n1-2587.plc1.org sls= [] site= 1589
+5588 1 n1-2588.plc1.org sls= [] site= 1590
+5589 1 n1-2589.plc1.org sls= [] site= 1591
+5590 1 n1-2590.plc1.org sls= [] site= 1592
+5591 1 n1-2591.plc1.org sls= [] site= 1593
+5592 1 n1-2592.plc1.org sls= [] site= 1594
+5593 1 n1-2593.plc1.org sls= [] site= 1595
+5594 1 n1-2594.plc1.org sls= [] site= 1596
+5595 1 n1-2595.plc1.org sls= [] site= 1597
+5596 1 n1-2596.plc1.org sls= [] site= 1598
+5597 1 n1-2597.plc1.org sls= [] site= 1599
+5598 1 n1-2598.plc1.org sls= [] site= 1600
+5599 1 n1-2599.plc1.org sls= [] site= 1601
+5600 1 n1-2600.plc1.org sls= [] site= 1602
+5601 1 n1-2601.plc1.org sls= [] site= 1603
+5602 1 n1-2602.plc1.org sls= [] site= 1604
+5603 1 n1-2603.plc1.org sls= [] site= 1605
+5604 1 n1-2604.plc1.org sls= [] site= 1606
+5605 1 n1-2605.plc1.org sls= [] site= 1607
+5606 1 n1-2606.plc1.org sls= [] site= 1608
+5607 1 n1-2607.plc1.org sls= [] site= 1609
+5608 1 n1-2608.plc1.org sls= [] site= 1610
+5609 1 n1-2609.plc1.org sls= [] site= 1611
+5610 1 n1-2610.plc1.org sls= [] site= 1612
+5611 1 n1-2611.plc1.org sls= [] site= 1613
+5612 1 n1-2612.plc1.org sls= [] site= 1614
+5613 1 n1-2613.plc1.org sls= [] site= 1615
+5614 1 n1-2614.plc1.org sls= [] site= 1616
+5615 1 n1-2615.plc1.org sls= [] site= 1617
+5616 1 n1-2616.plc1.org sls= [] site= 1618
+5617 1 n1-2617.plc1.org sls= [] site= 1619
+5618 1 n1-2618.plc1.org sls= [] site= 1620
+5619 1 n1-2619.plc1.org sls= [] site= 1621
+5620 1 n1-2620.plc1.org sls= [] site= 1622
+5621 1 n1-2621.plc1.org sls= [] site= 1623
+5622 1 n1-2622.plc1.org sls= [] site= 1624
+5623 1 n1-2623.plc1.org sls= [] site= 1625
+5624 1 n1-2624.plc1.org sls= [] site= 1626
+5625 1 n1-2625.plc1.org sls= [] site= 1627
+5626 1 n1-2626.plc1.org sls= [] site= 1628
+5627 1 n1-2627.plc1.org sls= [] site= 1629
+5628 1 n1-2628.plc1.org sls= [] site= 1630
+5629 1 n1-2629.plc1.org sls= [] site= 1631
+5630 1 n1-2630.plc1.org sls= [] site= 1632
+5631 1 n1-2631.plc1.org sls= [] site= 1633
+5632 1 n1-2632.plc1.org sls= [] site= 1634
+5633 1 n1-2633.plc1.org sls= [] site= 1635
+5634 1 n1-2634.plc1.org sls= [] site= 1636
+5635 1 n1-2635.plc1.org sls= [] site= 1637
+5636 1 n1-2636.plc1.org sls= [] site= 1638
+5637 1 n1-2637.plc1.org sls= [] site= 1639
+5638 1 n1-2638.plc1.org sls= [] site= 1640
+5639 1 n1-2639.plc1.org sls= [] site= 1641
+5640 1 n1-2640.plc1.org sls= [] site= 1642
+5641 1 n1-2641.plc1.org sls= [] site= 1643
+5642 1 n1-2642.plc1.org sls= [] site= 1644
+5643 1 n1-2643.plc1.org sls= [] site= 1645
+5644 1 n1-2644.plc1.org sls= [] site= 1646
+5645 1 n1-2645.plc1.org sls= [] site= 1647
+5646 1 n1-2646.plc1.org sls= [] site= 1648
+5647 1 n1-2647.plc1.org sls= [] site= 1649
+5648 1 n1-2648.plc1.org sls= [] site= 1650
+5649 1 n1-2649.plc1.org sls= [] site= 1651
+5650 1 n1-2650.plc1.org sls= [] site= 1652
+5651 1 n1-2651.plc1.org sls= [] site= 1653
+5652 1 n1-2652.plc1.org sls= [] site= 1654
+5653 1 n1-2653.plc1.org sls= [] site= 1655
+5654 1 n1-2654.plc1.org sls= [] site= 1656
+5655 1 n1-2655.plc1.org sls= [] site= 1657
+5656 1 n1-2656.plc1.org sls= [] site= 1658
+5657 1 n1-2657.plc1.org sls= [] site= 1659
+5658 1 n1-2658.plc1.org sls= [] site= 1660
+5659 1 n1-2659.plc1.org sls= [] site= 1661
+5660 1 n1-2660.plc1.org sls= [] site= 1662
+5661 1 n1-2661.plc1.org sls= [] site= 1663
+5662 1 n1-2662.plc1.org sls= [] site= 1664
+5663 1 n1-2663.plc1.org sls= [] site= 1665
+5664 1 n1-2664.plc1.org sls= [] site= 1666
+5665 1 n1-2665.plc1.org sls= [] site= 1667
+5666 1 n1-2666.plc1.org sls= [] site= 1668
+5667 1 n1-2667.plc1.org sls= [] site= 1669
+5668 1 n1-2668.plc1.org sls= [] site= 1670
+5669 1 n1-2669.plc1.org sls= [] site= 1671
+5670 1 n1-2670.plc1.org sls= [] site= 1672
+5671 1 n1-2671.plc1.org sls= [] site= 1673
+5672 1 n1-2672.plc1.org sls= [] site= 1674
+5673 1 n1-2673.plc1.org sls= [] site= 1675
+5674 1 n1-2674.plc1.org sls= [] site= 1676
+5675 1 n1-2675.plc1.org sls= [] site= 1677
+5676 1 n1-2676.plc1.org sls= [] site= 1678
+5677 1 n1-2677.plc1.org sls= [] site= 1679
+5678 1 n1-2678.plc1.org sls= [] site= 1680
+5679 1 n1-2679.plc1.org sls= [] site= 1681
+5680 1 n1-2680.plc1.org sls= [] site= 1682
+5681 1 n1-2681.plc1.org sls= [] site= 1683
+5682 1 n1-2682.plc1.org sls= [] site= 1684
+5683 1 n1-2683.plc1.org sls= [] site= 1685
+5684 1 n1-2684.plc1.org sls= [] site= 1686
+5685 1 n1-2685.plc1.org sls= [] site= 1687
+5686 1 n1-2686.plc1.org sls= [] site= 1688
+5687 1 n1-2687.plc1.org sls= [] site= 1689
+5688 1 n1-2688.plc1.org sls= [] site= 1690
+5689 1 n1-2689.plc1.org sls= [] site= 1691
+5690 1 n1-2690.plc1.org sls= [] site= 1692
+5691 1 n1-2691.plc1.org sls= [] site= 1693
+5692 1 n1-2692.plc1.org sls= [] site= 1694
+5693 1 n1-2693.plc1.org sls= [] site= 1695
+5694 1 n1-2694.plc1.org sls= [] site= 1696
+5695 1 n1-2695.plc1.org sls= [] site= 1697
+5696 1 n1-2696.plc1.org sls= [] site= 1698
+5697 1 n1-2697.plc1.org sls= [] site= 1699
+5698 1 n1-2698.plc1.org sls= [] site= 1700
+5699 1 n1-2699.plc1.org sls= [] site= 1701
+5700 1 n1-2700.plc1.org sls= [] site= 1702
+5701 1 n1-2701.plc1.org sls= [] site= 1703
+5702 1 n1-2702.plc1.org sls= [] site= 1704
+5703 1 n1-2703.plc1.org sls= [] site= 1705
+5704 1 n1-2704.plc1.org sls= [] site= 1706
+5705 1 n1-2705.plc1.org sls= [] site= 1707
+5706 1 n1-2706.plc1.org sls= [] site= 1708
+5707 1 n1-2707.plc1.org sls= [] site= 1709
+5708 1 n1-2708.plc1.org sls= [] site= 1710
+5709 1 n1-2709.plc1.org sls= [] site= 1711
+5710 1 n1-2710.plc1.org sls= [] site= 1712
+5711 1 n1-2711.plc1.org sls= [] site= 1713
+5712 1 n1-2712.plc1.org sls= [] site= 1714
+5713 1 n1-2713.plc1.org sls= [] site= 1715
+5714 1 n1-2714.plc1.org sls= [] site= 1716
+5715 1 n1-2715.plc1.org sls= [] site= 1717
+5716 1 n1-2716.plc1.org sls= [] site= 1718
+5717 1 n1-2717.plc1.org sls= [] site= 1719
+5718 1 n1-2718.plc1.org sls= [] site= 1720
+5719 1 n1-2719.plc1.org sls= [] site= 1721
+5720 1 n1-2720.plc1.org sls= [] site= 1722
+5721 1 n1-2721.plc1.org sls= [] site= 1723
+5722 1 n1-2722.plc1.org sls= [] site= 1724
+5723 1 n1-2723.plc1.org sls= [] site= 1725
+5724 1 n1-2724.plc1.org sls= [] site= 1726
+5725 1 n1-2725.plc1.org sls= [] site= 1727
+5726 1 n1-2726.plc1.org sls= [] site= 1728
+5727 1 n1-2727.plc1.org sls= [] site= 1729
+5728 1 n1-2728.plc1.org sls= [] site= 1730
+5729 1 n1-2729.plc1.org sls= [] site= 1731
+5730 1 n1-2730.plc1.org sls= [] site= 1732
+5731 1 n1-2731.plc1.org sls= [] site= 1733
+5732 1 n1-2732.plc1.org sls= [] site= 1734
+5733 1 n1-2733.plc1.org sls= [] site= 1735
+5734 1 n1-2734.plc1.org sls= [] site= 1736
+5735 1 n1-2735.plc1.org sls= [] site= 1737
+5736 1 n1-2736.plc1.org sls= [] site= 1738
+5737 1 n1-2737.plc1.org sls= [] site= 1739
+5738 1 n1-2738.plc1.org sls= [] site= 1740
+5739 1 n1-2739.plc1.org sls= [] site= 1741
+5740 1 n1-2740.plc1.org sls= [] site= 1742
+5741 1 n1-2741.plc1.org sls= [] site= 1743
+5742 1 n1-2742.plc1.org sls= [] site= 1744
+5743 1 n1-2743.plc1.org sls= [] site= 1745
+5744 1 n1-2744.plc1.org sls= [] site= 1746
+5745 1 n1-2745.plc1.org sls= [] site= 1747
+5746 1 n1-2746.plc1.org sls= [] site= 1748
+5747 1 n1-2747.plc1.org sls= [] site= 1749
+5748 1 n1-2748.plc1.org sls= [] site= 1750
+5749 1 n1-2749.plc1.org sls= [] site= 1751
+5750 1 n1-2750.plc1.org sls= [] site= 1752
+5751 1 n1-2751.plc1.org sls= [] site= 1753
+5752 1 n1-2752.plc1.org sls= [] site= 1754
+5753 1 n1-2753.plc1.org sls= [] site= 1755
+5754 1 n1-2754.plc1.org sls= [] site= 1756
+5755 1 n1-2755.plc1.org sls= [] site= 1757
+5756 1 n1-2756.plc1.org sls= [] site= 1758
+5757 1 n1-2757.plc1.org sls= [] site= 1759
+5758 1 n1-2758.plc1.org sls= [] site= 1760
+5759 1 n1-2759.plc1.org sls= [] site= 1761
+5760 1 n1-2760.plc1.org sls= [] site= 1762
+5761 1 n1-2761.plc1.org sls= [] site= 1763
+5762 1 n1-2762.plc1.org sls= [] site= 1764
+5763 1 n1-2763.plc1.org sls= [] site= 1765
+5764 1 n1-2764.plc1.org sls= [] site= 1766
+5765 1 n1-2765.plc1.org sls= [] site= 1767
+5766 1 n1-2766.plc1.org sls= [] site= 1768
+5767 1 n1-2767.plc1.org sls= [] site= 1769
+5768 1 n1-2768.plc1.org sls= [] site= 1770
+5769 1 n1-2769.plc1.org sls= [] site= 1771
+5770 1 n1-2770.plc1.org sls= [] site= 1772
+5771 1 n1-2771.plc1.org sls= [] site= 1773
+5772 1 n1-2772.plc1.org sls= [] site= 1774
+5773 1 n1-2773.plc1.org sls= [] site= 1775
+5774 1 n1-2774.plc1.org sls= [] site= 1776
+5775 1 n1-2775.plc1.org sls= [] site= 1777
+5776 1 n1-2776.plc1.org sls= [] site= 1778
+5777 1 n1-2777.plc1.org sls= [] site= 1779
+5778 1 n1-2778.plc1.org sls= [] site= 1780
+5779 1 n1-2779.plc1.org sls= [] site= 1781
+5780 1 n1-2780.plc1.org sls= [] site= 1782
+5781 1 n1-2781.plc1.org sls= [] site= 1783
+5782 1 n1-2782.plc1.org sls= [] site= 1784
+5783 1 n1-2783.plc1.org sls= [] site= 1785
+5784 1 n1-2784.plc1.org sls= [] site= 1786
+5785 1 n1-2785.plc1.org sls= [] site= 1787
+5786 1 n1-2786.plc1.org sls= [] site= 1788
+5787 1 n1-2787.plc1.org sls= [] site= 1789
+5788 1 n1-2788.plc1.org sls= [] site= 1790
+5789 1 n1-2789.plc1.org sls= [] site= 1791
+5790 1 n1-2790.plc1.org sls= [] site= 1792
+5791 1 n1-2791.plc1.org sls= [] site= 1793
+5792 1 n1-2792.plc1.org sls= [] site= 1794
+5793 1 n1-2793.plc1.org sls= [] site= 1795
+5794 1 n1-2794.plc1.org sls= [] site= 1796
+5795 1 n1-2795.plc1.org sls= [] site= 1797
+5796 1 n1-2796.plc1.org sls= [] site= 1798
+5797 1 n1-2797.plc1.org sls= [] site= 1799
+5798 1 n1-2798.plc1.org sls= [] site= 1800
+5799 1 n1-2799.plc1.org sls= [] site= 1801
+5800 1 n1-2800.plc1.org sls= [] site= 1802
+5801 1 n1-2801.plc1.org sls= [] site= 1803
+5802 1 n1-2802.plc1.org sls= [] site= 1804
+5803 1 n1-2803.plc1.org sls= [] site= 1805
+5804 1 n1-2804.plc1.org sls= [] site= 1806
+5805 1 n1-2805.plc1.org sls= [] site= 1807
+5806 1 n1-2806.plc1.org sls= [] site= 1808
+5807 1 n1-2807.plc1.org sls= [] site= 1809
+5808 1 n1-2808.plc1.org sls= [] site= 1810
+5809 1 n1-2809.plc1.org sls= [] site= 1811
+5810 1 n1-2810.plc1.org sls= [] site= 1812
+5811 1 n1-2811.plc1.org sls= [] site= 1813
+5812 1 n1-2812.plc1.org sls= [] site= 1814
+5813 1 n1-2813.plc1.org sls= [] site= 1815
+5814 1 n1-2814.plc1.org sls= [] site= 1816
+5815 1 n1-2815.plc1.org sls= [] site= 1817
+5816 1 n1-2816.plc1.org sls= [] site= 1818
+5817 1 n1-2817.plc1.org sls= [] site= 1819
+5818 1 n1-2818.plc1.org sls= [] site= 1820
+5819 1 n1-2819.plc1.org sls= [] site= 1821
+5820 1 n1-2820.plc1.org sls= [] site= 1822
+5821 1 n1-2821.plc1.org sls= [] site= 1823
+5822 1 n1-2822.plc1.org sls= [] site= 1824
+5823 1 n1-2823.plc1.org sls= [] site= 1825
+5824 1 n1-2824.plc1.org sls= [] site= 1826
+5825 1 n1-2825.plc1.org sls= [] site= 1827
+5826 1 n1-2826.plc1.org sls= [] site= 1828
+5827 1 n1-2827.plc1.org sls= [] site= 1829
+5828 1 n1-2828.plc1.org sls= [] site= 1830
+5829 1 n1-2829.plc1.org sls= [] site= 1831
+5830 1 n1-2830.plc1.org sls= [] site= 1832
+5831 1 n1-2831.plc1.org sls= [] site= 1833
+5832 1 n1-2832.plc1.org sls= [] site= 1834
+5833 1 n1-2833.plc1.org sls= [] site= 1835
+5834 1 n1-2834.plc1.org sls= [] site= 1836
+5835 1 n1-2835.plc1.org sls= [] site= 1837
+5836 1 n1-2836.plc1.org sls= [] site= 1838
+5837 1 n1-2837.plc1.org sls= [] site= 1839
+5838 1 n1-2838.plc1.org sls= [] site= 1840
+5839 1 n1-2839.plc1.org sls= [] site= 1841
+5840 1 n1-2840.plc1.org sls= [] site= 1842
+5841 1 n1-2841.plc1.org sls= [] site= 1843
+5842 1 n1-2842.plc1.org sls= [] site= 1844
+5843 1 n1-2843.plc1.org sls= [] site= 1845
+5844 1 n1-2844.plc1.org sls= [] site= 1846
+5845 1 n1-2845.plc1.org sls= [] site= 1847
+5846 1 n1-2846.plc1.org sls= [] site= 1848
+5847 1 n1-2847.plc1.org sls= [] site= 1849
+5848 1 n1-2848.plc1.org sls= [] site= 1850
+5849 1 n1-2849.plc1.org sls= [] site= 1851
+5850 1 n1-2850.plc1.org sls= [] site= 1852
+5851 1 n1-2851.plc1.org sls= [] site= 1853
+5852 1 n1-2852.plc1.org sls= [] site= 1854
+5853 1 n1-2853.plc1.org sls= [] site= 1855
+5854 1 n1-2854.plc1.org sls= [] site= 1856
+5855 1 n1-2855.plc1.org sls= [] site= 1857
+5856 1 n1-2856.plc1.org sls= [] site= 1858
+5857 1 n1-2857.plc1.org sls= [] site= 1859
+5858 1 n1-2858.plc1.org sls= [] site= 1860
+5859 1 n1-2859.plc1.org sls= [] site= 1861
+5860 1 n1-2860.plc1.org sls= [] site= 1862
+5861 1 n1-2861.plc1.org sls= [] site= 1863
+5862 1 n1-2862.plc1.org sls= [] site= 1864
+5863 1 n1-2863.plc1.org sls= [] site= 1865
+5864 1 n1-2864.plc1.org sls= [] site= 1866
+5865 1 n1-2865.plc1.org sls= [] site= 1867
+5866 1 n1-2866.plc1.org sls= [] site= 1868
+5867 1 n1-2867.plc1.org sls= [] site= 1869
+5868 1 n1-2868.plc1.org sls= [] site= 1870
+5869 1 n1-2869.plc1.org sls= [] site= 1871
+5870 1 n1-2870.plc1.org sls= [] site= 1872
+5871 1 n1-2871.plc1.org sls= [] site= 1873
+5872 1 n1-2872.plc1.org sls= [] site= 1874
+5873 1 n1-2873.plc1.org sls= [] site= 1875
+5874 1 n1-2874.plc1.org sls= [] site= 1876
+5875 1 n1-2875.plc1.org sls= [] site= 1877
+5876 1 n1-2876.plc1.org sls= [] site= 1878
+5877 1 n1-2877.plc1.org sls= [] site= 1879
+5878 1 n1-2878.plc1.org sls= [] site= 1880
+5879 1 n1-2879.plc1.org sls= [] site= 1881
+5880 1 n1-2880.plc1.org sls= [] site= 1882
+5881 1 n1-2881.plc1.org sls= [] site= 1883
+5882 1 n1-2882.plc1.org sls= [] site= 1884
+5883 1 n1-2883.plc1.org sls= [] site= 1885
+5884 1 n1-2884.plc1.org sls= [] site= 1886
+5885 1 n1-2885.plc1.org sls= [] site= 1887
+5886 1 n1-2886.plc1.org sls= [] site= 1888
+5887 1 n1-2887.plc1.org sls= [] site= 1889
+5888 1 n1-2888.plc1.org sls= [] site= 1890
+5889 1 n1-2889.plc1.org sls= [] site= 1891
+5890 1 n1-2890.plc1.org sls= [] site= 1892
+5891 1 n1-2891.plc1.org sls= [] site= 1893
+5892 1 n1-2892.plc1.org sls= [] site= 1894
+5893 1 n1-2893.plc1.org sls= [] site= 1895
+5894 1 n1-2894.plc1.org sls= [] site= 1896
+5895 1 n1-2895.plc1.org sls= [] site= 1897
+5896 1 n1-2896.plc1.org sls= [] site= 1898
+5897 1 n1-2897.plc1.org sls= [] site= 1899
+5898 1 n1-2898.plc1.org sls= [] site= 1900
+5899 1 n1-2899.plc1.org sls= [] site= 1901
+5900 1 n1-2900.plc1.org sls= [] site= 1902
+5901 1 n1-2901.plc1.org sls= [] site= 1903
+5902 1 n1-2902.plc1.org sls= [] site= 1904
+5903 1 n1-2903.plc1.org sls= [] site= 1905
+5904 1 n1-2904.plc1.org sls= [] site= 1906
+5905 1 n1-2905.plc1.org sls= [] site= 1907
+5906 1 n1-2906.plc1.org sls= [] site= 1908
+5907 1 n1-2907.plc1.org sls= [] site= 1909
+5908 1 n1-2908.plc1.org sls= [] site= 1910
+5909 1 n1-2909.plc1.org sls= [] site= 1911
+5910 1 n1-2910.plc1.org sls= [] site= 1912
+5911 1 n1-2911.plc1.org sls= [] site= 1913
+5912 1 n1-2912.plc1.org sls= [] site= 1914
+5913 1 n1-2913.plc1.org sls= [] site= 1915
+5914 1 n1-2914.plc1.org sls= [] site= 1916
+5915 1 n1-2915.plc1.org sls= [] site= 1917
+5916 1 n1-2916.plc1.org sls= [] site= 1918
+5917 1 n1-2917.plc1.org sls= [] site= 1919
+5918 1 n1-2918.plc1.org sls= [] site= 1920
+5919 1 n1-2919.plc1.org sls= [] site= 1921
+5920 1 n1-2920.plc1.org sls= [] site= 1922
+5921 1 n1-2921.plc1.org sls= [] site= 1923
+5922 1 n1-2922.plc1.org sls= [] site= 1924
+5923 1 n1-2923.plc1.org sls= [] site= 1925
+5924 1 n1-2924.plc1.org sls= [] site= 1926
+5925 1 n1-2925.plc1.org sls= [] site= 1927
+5926 1 n1-2926.plc1.org sls= [] site= 1928
+5927 1 n1-2927.plc1.org sls= [] site= 1929
+5928 1 n1-2928.plc1.org sls= [] site= 1930
+5929 1 n1-2929.plc1.org sls= [] site= 1931
+5930 1 n1-2930.plc1.org sls= [] site= 1932
+5931 1 n1-2931.plc1.org sls= [] site= 1933
+5932 1 n1-2932.plc1.org sls= [] site= 1934
+5933 1 n1-2933.plc1.org sls= [] site= 1935
+5934 1 n1-2934.plc1.org sls= [] site= 1936
+5935 1 n1-2935.plc1.org sls= [] site= 1937
+5936 1 n1-2936.plc1.org sls= [] site= 1938
+5937 1 n1-2937.plc1.org sls= [] site= 1939
+5938 1 n1-2938.plc1.org sls= [] site= 1940
+5939 1 n1-2939.plc1.org sls= [] site= 1941
+5940 1 n1-2940.plc1.org sls= [] site= 1942
+5941 1 n1-2941.plc1.org sls= [] site= 1943
+5942 1 n1-2942.plc1.org sls= [] site= 1944
+5943 1 n1-2943.plc1.org sls= [] site= 1945
+5944 1 n1-2944.plc1.org sls= [] site= 1946
+5945 1 n1-2945.plc1.org sls= [] site= 1947
+5946 1 n1-2946.plc1.org sls= [] site= 1948
+5947 1 n1-2947.plc1.org sls= [] site= 1949
+5948 1 n1-2948.plc1.org sls= [] site= 1950
+5949 1 n1-2949.plc1.org sls= [] site= 1951
+5950 1 n1-2950.plc1.org sls= [] site= 1952
+5951 1 n1-2951.plc1.org sls= [] site= 1953
+5952 1 n1-2952.plc1.org sls= [] site= 1954
+5953 1 n1-2953.plc1.org sls= [] site= 1955
+5954 1 n1-2954.plc1.org sls= [] site= 1956
+5955 1 n1-2955.plc1.org sls= [] site= 1957
+5956 1 n1-2956.plc1.org sls= [] site= 1958
+5957 1 n1-2957.plc1.org sls= [] site= 1959
+5958 1 n1-2958.plc1.org sls= [] site= 1960
+5959 1 n1-2959.plc1.org sls= [] site= 1961
+5960 1 n1-2960.plc1.org sls= [] site= 1962
+5961 1 n1-2961.plc1.org sls= [] site= 1963
+5962 1 n1-2962.plc1.org sls= [] site= 1964
+5963 1 n1-2963.plc1.org sls= [] site= 1965
+5964 1 n1-2964.plc1.org sls= [] site= 1966
+5965 1 n1-2965.plc1.org sls= [] site= 1967
+5966 1 n1-2966.plc1.org sls= [] site= 1968
+5967 1 n1-2967.plc1.org sls= [] site= 1969
+5968 1 n1-2968.plc1.org sls= [] site= 1970
+5969 1 n1-2969.plc1.org sls= [] site= 1971
+5970 1 n1-2970.plc1.org sls= [] site= 1972
+5971 1 n1-2971.plc1.org sls= [] site= 1973
+5972 1 n1-2972.plc1.org sls= [] site= 1974
+5973 1 n1-2973.plc1.org sls= [] site= 1975
+5974 1 n1-2974.plc1.org sls= [] site= 1976
+5975 1 n1-2975.plc1.org sls= [] site= 1977
+5976 1 n1-2976.plc1.org sls= [] site= 1978
+5977 1 n1-2977.plc1.org sls= [] site= 1979
+5978 1 n1-2978.plc1.org sls= [] site= 1980
+5979 1 n1-2979.plc1.org sls= [] site= 1981
+5980 1 n1-2980.plc1.org sls= [] site= 1982
+5981 1 n1-2981.plc1.org sls= [] site= 1983
+5982 1 n1-2982.plc1.org sls= [] site= 1984
+5983 1 n1-2983.plc1.org sls= [] site= 1985
+5984 1 n1-2984.plc1.org sls= [] site= 1986
+5985 1 n1-2985.plc1.org sls= [] site= 1987
+5986 1 n1-2986.plc1.org sls= [] site= 1988
+5987 1 n1-2987.plc1.org sls= [] site= 1989
+5988 1 n1-2988.plc1.org sls= [] site= 1990
+5989 1 n1-2989.plc1.org sls= [] site= 1991
+5990 1 n1-2990.plc1.org sls= [] site= 1992
+5991 1 n1-2991.plc1.org sls= [] site= 1993
+5992 1 n1-2992.plc1.org sls= [] site= 1994
+5993 1 n1-2993.plc1.org sls= [] site= 1995
+5994 1 n1-2994.plc1.org sls= [] site= 1996
+5995 1 n1-2995.plc1.org sls= [] site= 1997
+5996 1 n1-2996.plc1.org sls= [] site= 1998
+5997 1 n1-2997.plc1.org sls= [] site= 1999
+5998 1 n1-2998.plc1.org sls= [] site= 2000
+5999 1 n1-2999.plc1.org sls= [] site= 2001
+6000 1 n1-3000.plc1.org sls= [] site= 2002
+02: SLICES
+1 None thtwo_netflow nodes= [] persons= []
+--- sas= [1, 2, 3, 4, 5] thtwo_netflow crp= 1
+--- 'expires': 1167126460
+2 1 thone_netflow nodes= [] persons= []
+--- sas= [] thone_netflow crp= 1
+--- 'expires': 1167126457
+3 1 oneb_slice1 nodes= [1, 2, 3, 3001, 3002, 3003] persons= [2008, 2006, 2007]
+--- sas= [] oneb_slice1 crp= 1
+--- 'expires': 1167126821
+4 1 onec_slice2 nodes= [2, 3, 4, 3002, 3003, 3004] persons= [2008, 2009, 2007]
+--- sas= [] onec_slice2 crp= 1
+--- 'expires': 1167126821
+5 1 oned_slice3 nodes= [3, 4, 5, 3003, 3004, 3005] persons= [2008, 2009, 2010]
+--- sas= [] oned_slice3 crp= 1
+--- 'expires': 1167126821
+6 1 onee_slice4 nodes= [4, 5, 6, 3004, 3005, 3006] persons= [2009, 2010, 2011]
+--- sas= [] onee_slice4 crp= 1
+--- 'expires': 1167126822
+7 1 onef_slice5 nodes= [5, 6, 7, 3005, 3006, 3007] persons= [2010, 2011, 2012]
+--- sas= [] onef_slice5 crp= 1
+--- 'expires': 1167126822
+8 1 oneg_slice6 nodes= [3008, 6, 7, 8, 3006, 3007] persons= [2011, 2012, 2013]
+--- sas= [] oneg_slice6 crp= 1
+--- 'expires': 1167126822
+9 1 oneh_slice7 nodes= [3008, 3009, 7, 8, 9, 3007] persons= [2012, 2013, 2014]
+--- sas= [] oneh_slice7 crp= 1
+--- 'expires': 1167126822
+10 1 onei_slice8 nodes= [3008, 3009, 3010, 8, 9, 10] persons= [2013, 2014, 2015]
+--- sas= [] onei_slice8 crp= 1
+--- 'expires': 1167126822
+11 1 onej_slice9 nodes= [3009, 3010, 3011, 9, 10, 11] persons= [2016, 2014, 2015]
+--- sas= [] onej_slice9 crp= 1
+--- 'expires': 1167126823
+12 1 oneba_slice10 nodes= [3010, 3011, 3012, 10, 11, 12] persons= [2016, 2017, 2015]
+--- sas= [] oneba_slice10 crp= 1
+--- 'expires': 1167126823
+13 1 onebb_slice11 nodes= [3011, 3012, 3013, 11, 12, 13] persons= [2016, 2017, 2018]
+--- sas= [] onebb_slice11 crp= 1
+--- 'expires': 1167126823
+14 1 onebc_slice12 nodes= [3012, 3013, 3014, 12, 13, 14] persons= [2017, 2018, 2019]
+--- sas= [] onebc_slice12 crp= 1
+--- 'expires': 1167126823
+15 1 onebd_slice13 nodes= [3013, 3014, 3015, 13, 14, 15] persons= [2018, 2019, 2020]
+--- sas= [] onebd_slice13 crp= 1
+--- 'expires': 1167126823
+16 1 onebe_slice14 nodes= [3014, 3015, 3016, 14, 15, 16] persons= [2019, 2020, 2021]
+--- sas= [] onebe_slice14 crp= 1
+--- 'expires': 1167126824
+17 1 onebf_slice15 nodes= [3015, 3016, 3017, 15, 16, 17] persons= [2020, 2021, 2022]
+--- sas= [] onebf_slice15 crp= 1
+--- 'expires': 1167126824
+18 1 onebg_slice16 nodes= [3016, 3017, 3018, 16, 17, 18] persons= [2021, 2022, 2023]
+--- sas= [] onebg_slice16 crp= 1
+--- 'expires': 1167126824
+19 1 onebh_slice17 nodes= [3017, 3018, 3019, 17, 18, 19] persons= [2024, 2022, 2023]
+--- sas= [] onebh_slice17 crp= 1
+--- 'expires': 1167126824
+20 1 onebi_slice18 nodes= [3018, 3019, 3020, 18, 19, 20] persons= [2024, 2025, 2023]
+--- sas= [] onebi_slice18 crp= 1
+--- 'expires': 1167126824
+21 1 onebj_slice19 nodes= [3019, 3020, 3021, 19, 20, 21] persons= [2024, 2025, 2026]
+--- sas= [] onebj_slice19 crp= 1
+--- 'expires': 1167126824
+22 1 oneca_slice20 nodes= [3020, 3021, 3022, 20, 21, 22] persons= [2025, 2026, 2027]
+--- sas= [] oneca_slice20 crp= 1
+--- 'expires': 1167126825
+23 1 onecb_slice21 nodes= [3021, 3022, 3023, 21, 22, 23] persons= [2026, 2027, 2028]
+--- sas= [] onecb_slice21 crp= 1
+--- 'expires': 1167126825
+24 1 onecc_slice22 nodes= [3022, 3023, 3024, 22, 23, 24] persons= [2027, 2028, 2029]
+--- sas= [] onecc_slice22 crp= 1
+--- 'expires': 1167126825
+25 1 onecd_slice23 nodes= [3023, 3024, 3025, 23, 24, 25] persons= [2028, 2029, 2030]
+--- sas= [] onecd_slice23 crp= 1
+--- 'expires': 1167126825
+26 1 onece_slice24 nodes= [3024, 3025, 3026, 24, 25, 26] persons= [2029, 2030, 2031]
+--- sas= [] onece_slice24 crp= 1
+--- 'expires': 1167126825
+27 1 onecf_slice25 nodes= [3025, 3026, 3027, 25, 26, 27] persons= [2032, 2030, 2031]
+--- sas= [] onecf_slice25 crp= 1
+--- 'expires': 1167126826
+28 1 onecg_slice26 nodes= [3026, 3027, 3028, 26, 27, 28] persons= [2032, 2033, 2031]
+--- sas= [] onecg_slice26 crp= 1
+--- 'expires': 1167126826
+29 1 onech_slice27 nodes= [3027, 3028, 3029, 27, 28, 29] persons= [2032, 2033, 2034]
+--- sas= [] onech_slice27 crp= 1
+--- 'expires': 1167126826
+30 1 oneci_slice28 nodes= [3028, 3029, 3030, 28, 29, 30] persons= [2033, 2034, 2035]
+--- sas= [] oneci_slice28 crp= 1
+--- 'expires': 1167126826
+31 1 onecj_slice29 nodes= [3029, 3030, 3031, 29, 30, 31] persons= [2034, 2035, 2036]
+--- sas= [] onecj_slice29 crp= 1
+--- 'expires': 1167126826
+32 1 oneda_slice30 nodes= [32, 3030, 3031, 3032, 30, 31] persons= [2035, 2036, 2037]
+--- sas= [] oneda_slice30 crp= 1
+--- 'expires': 1167126827
+33 1 onedb_slice31 nodes= [32, 33, 3031, 3032, 3033, 31] persons= [2036, 2037, 2038]
+--- sas= [] onedb_slice31 crp= 1
+--- 'expires': 1167126827
+34 1 onedc_slice32 nodes= [32, 33, 34, 3032, 3033, 3034] persons= [2037, 2038, 2039]
+--- sas= [] onedc_slice32 crp= 1
+--- 'expires': 1167126827
+35 1 onedd_slice33 nodes= [33, 34, 35, 3033, 3034, 3035] persons= [2040, 2038, 2039]
+--- sas= [] onedd_slice33 crp= 1
+--- 'expires': 1167126827
+36 1 onede_slice34 nodes= [34, 35, 36, 3034, 3035, 3036] persons= [2040, 2041, 2039]
+--- sas= [] onede_slice34 crp= 1
+--- 'expires': 1167126827
+37 1 onedf_slice35 nodes= [35, 36, 37, 3035, 3036, 3037] persons= [2040, 2041, 2042]
+--- sas= [] onedf_slice35 crp= 1
+--- 'expires': 1167126828
+38 1 onedg_slice36 nodes= [36, 37, 38, 3036, 3037, 3038] persons= [2041, 2042, 2043]
+--- sas= [] onedg_slice36 crp= 1
+--- 'expires': 1167126828
+39 1 onedh_slice37 nodes= [37, 38, 39, 3037, 3038, 3039] persons= [2042, 2043, 2044]
+--- sas= [] onedh_slice37 crp= 1
+--- 'expires': 1167126828
+40 1 onedi_slice38 nodes= [3040, 38, 39, 40, 3038, 3039] persons= [2043, 2044, 2045]
+--- sas= [] onedi_slice38 crp= 1
+--- 'expires': 1167126828
+41 1 onedj_slice39 nodes= [3040, 3041, 39, 40, 41, 3039] persons= [2044, 2045, 2046]
+--- sas= [] onedj_slice39 crp= 1
+--- 'expires': 1167126828
+42 1 oneea_slice40 nodes= [3040, 3041, 3042, 40, 41, 42] persons= [2045, 2046, 2047]
+--- sas= [] oneea_slice40 crp= 1
+--- 'expires': 1167126828
+43 1 oneeb_slice41 nodes= [3041, 3042, 3043, 41, 42, 43] persons= [2048, 2046, 2047]
+--- sas= [] oneeb_slice41 crp= 1
+--- 'expires': 1167126829
+44 1 oneec_slice42 nodes= [3042, 3043, 3044, 42, 43, 44] persons= [2048, 2049, 2047]
+--- sas= [] oneec_slice42 crp= 1
+--- 'expires': 1167126829
+45 1 oneed_slice43 nodes= [3043, 3044, 3045, 43, 44, 45] persons= [2048, 2049, 2050]
+--- sas= [] oneed_slice43 crp= 1
+--- 'expires': 1167126829
+46 1 oneee_slice44 nodes= [3044, 3045, 3046, 44, 45, 46] persons= [2049, 2050, 2051]
+--- sas= [] oneee_slice44 crp= 1
+--- 'expires': 1167126829
+47 1 oneef_slice45 nodes= [3045, 3046, 3047, 45, 46, 47] persons= [2050, 2051, 2052]
+--- sas= [] oneef_slice45 crp= 1
+--- 'expires': 1167126829
+48 1 oneeg_slice46 nodes= [3046, 3047, 3048, 46, 47, 48] persons= [2051, 2052, 2053]
+--- sas= [] oneeg_slice46 crp= 1
+--- 'expires': 1167126830
+49 1 oneeh_slice47 nodes= [3047, 3048, 3049, 47, 48, 49] persons= [2052, 2053, 2054]
+--- sas= [] oneeh_slice47 crp= 1
+--- 'expires': 1167126830
+50 1 oneei_slice48 nodes= [3048, 3049, 3050, 48, 49, 50] persons= [2053, 2054, 2055]
+--- sas= [] oneei_slice48 crp= 1
+--- 'expires': 1167126830
+51 1 oneej_slice49 nodes= [3049, 3050, 3051, 49, 50, 51] persons= [2056, 2054, 2055]
+--- sas= [] oneej_slice49 crp= 1
+--- 'expires': 1167126830
+52 1 onefa_slice50 nodes= [3050, 3051, 3052, 50, 51, 52] persons= [2056, 2057, 2055]
+--- sas= [] onefa_slice50 crp= 1
+--- 'expires': 1167126830
+53 1 onefb_slice51 nodes= [3051, 3052, 3053, 51, 52, 53] persons= [2056, 2057, 2058]
+--- sas= [] onefb_slice51 crp= 1
+--- 'expires': 1167126831
+54 1 onefc_slice52 nodes= [3052, 3053, 3054, 52, 53, 54] persons= [2057, 2058, 2059]
+--- sas= [] onefc_slice52 crp= 1
+--- 'expires': 1167126831
+55 1 onefd_slice53 nodes= [3053, 3054, 3055, 53, 54, 55] persons= [2058, 2059, 2060]
+--- sas= [] onefd_slice53 crp= 1
+--- 'expires': 1167126831
+56 1 onefe_slice54 nodes= [3054, 3055, 3056, 54, 55, 56] persons= [2059, 2060, 2061]
+--- sas= [] onefe_slice54 crp= 1
+--- 'expires': 1167126831
+57 1 oneff_slice55 nodes= [3055, 3056, 3057, 55, 56, 57] persons= [2060, 2061, 2062]
+--- sas= [] oneff_slice55 crp= 1
+--- 'expires': 1167126831
+58 1 onefg_slice56 nodes= [3056, 3057, 3058, 56, 57, 58] persons= [2061, 2062, 2063]
+--- sas= [] onefg_slice56 crp= 1
+--- 'expires': 1167126832
+59 1 onefh_slice57 nodes= [3057, 3058, 3059, 57, 58, 59] persons= [2064, 2062, 2063]
+--- sas= [] onefh_slice57 crp= 1
+--- 'expires': 1167126832
+60 1 onefi_slice58 nodes= [3058, 3059, 3060, 58, 59, 60] persons= [2064, 2065, 2063]
+--- sas= [] onefi_slice58 crp= 1
+--- 'expires': 1167126832
+61 1 onefj_slice59 nodes= [3059, 3060, 3061, 59, 60, 61] persons= [2064, 2065, 2066]
+--- sas= [] onefj_slice59 crp= 1
+--- 'expires': 1167126832
+62 1 onega_slice60 nodes= [3060, 3061, 3062, 60, 61, 62] persons= [2065, 2066, 2067]
+--- sas= [] onega_slice60 crp= 1
+--- 'expires': 1167126832
+63 1 onegb_slice61 nodes= [3061, 3062, 3063, 61, 62, 63] persons= [2066, 2067, 2068]
+--- sas= [] onegb_slice61 crp= 1
+--- 'expires': 1167126833
+64 1 onegc_slice62 nodes= [64, 3062, 3063, 3064, 62, 63] persons= [2067, 2068, 2069]
+--- sas= [] onegc_slice62 crp= 1
+--- 'expires': 1167126833
+65 1 onegd_slice63 nodes= [64, 65, 3063, 3064, 3065, 63] persons= [2068, 2069, 2070]
+--- sas= [] onegd_slice63 crp= 1
+--- 'expires': 1167126833
+66 1 onege_slice64 nodes= [64, 65, 66, 3064, 3065, 3066] persons= [2069, 2070, 2071]
+--- sas= [] onege_slice64 crp= 1
+--- 'expires': 1167126833
+67 1 onegf_slice65 nodes= [65, 66, 67, 3065, 3066, 3067] persons= [2072, 2070, 2071]
+--- sas= [] onegf_slice65 crp= 1
+--- 'expires': 1167126833
+68 1 onegg_slice66 nodes= [66, 67, 68, 3066, 3067, 3068] persons= [2072, 2073, 2071]
+--- sas= [] onegg_slice66 crp= 1
+--- 'expires': 1167126834
+69 1 onegh_slice67 nodes= [67, 68, 69, 3067, 3068, 3069] persons= [2072, 2073, 2074]
+--- sas= [] onegh_slice67 crp= 1
+--- 'expires': 1167126834
+70 1 onegi_slice68 nodes= [68, 69, 70, 3068, 3069, 3070] persons= [2073, 2074, 2075]
+--- sas= [] onegi_slice68 crp= 1
+--- 'expires': 1167126834
+71 1 onegj_slice69 nodes= [69, 70, 71, 3069, 3070, 3071] persons= [2074, 2075, 2076]
+--- sas= [] onegj_slice69 crp= 1
+--- 'expires': 1167126834
+72 1 oneha_slice70 nodes= [3072, 70, 71, 72, 3070, 3071] persons= [2075, 2076, 2077]
+--- sas= [] oneha_slice70 crp= 1
+--- 'expires': 1167126834
+73 1 onehb_slice71 nodes= [3072, 3073, 71, 72, 73, 3071] persons= [2076, 2077, 2078]
+--- sas= [] onehb_slice71 crp= 1
+--- 'expires': 1167126835
+74 1 onehc_slice72 nodes= [3072, 3073, 3074, 72, 73, 74] persons= [2077, 2078, 2079]
+--- sas= [] onehc_slice72 crp= 1
+--- 'expires': 1167126835
+75 1 onehd_slice73 nodes= [3073, 3074, 3075, 73, 74, 75] persons= [2080, 2078, 2079]
+--- sas= [] onehd_slice73 crp= 1
+--- 'expires': 1167126835
+76 1 onehe_slice74 nodes= [3074, 3075, 3076, 74, 75, 76] persons= [2080, 2081, 2079]
+--- sas= [] onehe_slice74 crp= 1
+--- 'expires': 1167126835
+77 1 onehf_slice75 nodes= [3075, 3076, 3077, 75, 76, 77] persons= [2080, 2081, 2082]
+--- sas= [] onehf_slice75 crp= 1
+--- 'expires': 1167126835
+78 1 onehg_slice76 nodes= [3076, 3077, 3078, 76, 77, 78] persons= [2081, 2082, 2083]
+--- sas= [] onehg_slice76 crp= 1
+--- 'expires': 1167126836
+79 1 onehh_slice77 nodes= [3077, 3078, 3079, 77, 78, 79] persons= [2082, 2083, 2084]
+--- sas= [] onehh_slice77 crp= 1
+--- 'expires': 1167126836
+80 1 onehi_slice78 nodes= [3078, 3079, 3080, 78, 79, 80] persons= [2083, 2084, 2085]
+--- sas= [] onehi_slice78 crp= 1
+--- 'expires': 1167126836
+81 1 onehj_slice79 nodes= [3079, 3080, 3081, 79, 80, 81] persons= [2084, 2085, 2086]
+--- sas= [] onehj_slice79 crp= 1
+--- 'expires': 1167126836
+82 1 oneia_slice80 nodes= [3080, 3081, 3082, 80, 81, 82] persons= [2085, 2086, 2087]
+--- sas= [] oneia_slice80 crp= 1
+--- 'expires': 1167126836
+83 1 oneib_slice81 nodes= [3081, 3082, 3083, 81, 82, 83] persons= [2088, 2086, 2087]
+--- sas= [] oneib_slice81 crp= 1
+--- 'expires': 1167126836
+84 1 oneic_slice82 nodes= [3082, 3083, 3084, 82, 83, 84] persons= [2088, 2089, 2087]
+--- sas= [] oneic_slice82 crp= 1
+--- 'expires': 1167126837
+85 1 oneid_slice83 nodes= [3083, 3084, 3085, 83, 84, 85] persons= [2088, 2089, 2090]
+--- sas= [] oneid_slice83 crp= 1
+--- 'expires': 1167126837
+86 1 oneie_slice84 nodes= [3084, 3085, 3086, 84, 85, 86] persons= [2089, 2090, 2091]
+--- sas= [] oneie_slice84 crp= 1
+--- 'expires': 1167126837
+87 1 oneif_slice85 nodes= [3085, 3086, 3087, 85, 86, 87] persons= [2090, 2091, 2092]
+--- sas= [] oneif_slice85 crp= 1
+--- 'expires': 1167126837
+88 1 oneig_slice86 nodes= [3086, 3087, 3088, 86, 87, 88] persons= [2091, 2092, 2093]
+--- sas= [] oneig_slice86 crp= 1
+--- 'expires': 1167126837
+89 1 oneih_slice87 nodes= [3087, 3088, 3089, 87, 88, 89] persons= [2092, 2093, 2094]
+--- sas= [] oneih_slice87 crp= 1
+--- 'expires': 1167126838
+90 1 oneii_slice88 nodes= [3088, 3089, 3090, 88, 89, 90] persons= [2093, 2094, 2095]
+--- sas= [] oneii_slice88 crp= 1
+--- 'expires': 1167126838
+91 1 oneij_slice89 nodes= [3089, 3090, 3091, 89, 90, 91] persons= [2096, 2094, 2095]
+--- sas= [] oneij_slice89 crp= 1
+--- 'expires': 1167126838
+92 1 oneja_slice90 nodes= [3090, 3091, 3092, 90, 91, 92] persons= [2096, 2097, 2095]
+--- sas= [] oneja_slice90 crp= 1
+--- 'expires': 1167126838
+93 1 onejb_slice91 nodes= [3091, 3092, 3093, 91, 92, 93] persons= [2096, 2097, 2098]
+--- sas= [] onejb_slice91 crp= 1
+--- 'expires': 1167126838
+94 1 onejc_slice92 nodes= [3092, 3093, 3094, 92, 93, 94] persons= [2097, 2098, 2099]
+--- sas= [] onejc_slice92 crp= 1
+--- 'expires': 1167126839
+95 1 onejd_slice93 nodes= [3093, 3094, 3095, 93, 94, 95] persons= [2098, 2099, 2100]
+--- sas= [] onejd_slice93 crp= 1
+--- 'expires': 1167126839
+96 1 oneje_slice94 nodes= [96, 3094, 3095, 3096, 94, 95] persons= [2099, 2100, 2101]
+--- sas= [] oneje_slice94 crp= 1
+--- 'expires': 1167126839
+97 1 onejf_slice95 nodes= [96, 97, 3095, 3096, 3097, 95] persons= [2100, 2101, 2102]
+--- sas= [] onejf_slice95 crp= 1
+--- 'expires': 1167126839
+98 1 onejg_slice96 nodes= [96, 97, 98, 3096, 3097, 3098] persons= [2101, 2102, 2103]
+--- sas= [] onejg_slice96 crp= 1
+--- 'expires': 1167126839
+99 1 onejh_slice97 nodes= [97, 98, 99, 3097, 3098, 3099] persons= [2104, 2102, 2103]
+--- sas= [] onejh_slice97 crp= 1
+--- 'expires': 1167126840
+100 1 oneji_slice98 nodes= [98, 99, 100, 3098, 3099, 3100] persons= [2104, 2105, 2103]
+--- sas= [] oneji_slice98 crp= 1
+--- 'expires': 1167126840
+101 1 onejj_slice99 nodes= [99, 100, 101, 3099, 3100, 3101] persons= [2104, 2105, 2106]
+--- sas= [] onejj_slice99 crp= 1
+--- 'expires': 1167126840
+102 1 onebaa_slice100 nodes= [100, 101, 102, 3100, 3101, 3102] persons= [2105, 2106, 2107]
+--- sas= [] onebaa_slice100 crp= 1
+--- 'expires': 1167126840
+103 1 onebab_slice101 nodes= [101, 102, 103, 3101, 3102, 3103] persons= [2106, 2107, 2108]
+--- sas= [] onebab_slice101 crp= 1
+--- 'expires': 1167126840
+104 1 onebac_slice102 nodes= [3104, 102, 103, 104, 3102, 3103] persons= [2107, 2108, 2109]
+--- sas= [] onebac_slice102 crp= 1
+--- 'expires': 1167126841
+105 1 onebad_slice103 nodes= [3104, 3105, 103, 104, 105, 3103] persons= [2108, 2109, 2110]
+--- sas= [] onebad_slice103 crp= 1
+--- 'expires': 1167126841
+106 1 onebae_slice104 nodes= [3104, 3105, 3106, 104, 105, 106] persons= [2109, 2110, 2111]
+--- sas= [] onebae_slice104 crp= 1
+--- 'expires': 1167126841
+107 1 onebaf_slice105 nodes= [3105, 3106, 3107, 105, 106, 107] persons= [2112, 2110, 2111]
+--- sas= [] onebaf_slice105 crp= 1
+--- 'expires': 1167126841
+108 1 onebag_slice106 nodes= [3106, 3107, 3108, 106, 107, 108] persons= [2112, 2113, 2111]
+--- sas= [] onebag_slice106 crp= 1
+--- 'expires': 1167126841
+109 1 onebah_slice107 nodes= [3107, 3108, 3109, 107, 108, 109] persons= [2112, 2113, 2114]
+--- sas= [] onebah_slice107 crp= 1
+--- 'expires': 1167126842
+110 1 onebai_slice108 nodes= [3108, 3109, 3110, 108, 109, 110] persons= [2113, 2114, 2115]
+--- sas= [] onebai_slice108 crp= 1
+--- 'expires': 1167126842
+111 1 onebaj_slice109 nodes= [3109, 3110, 3111, 109, 110, 111] persons= [2114, 2115, 2116]
+--- sas= [] onebaj_slice109 crp= 1
+--- 'expires': 1167126842
+112 1 onebba_slice110 nodes= [3110, 3111, 3112, 110, 111, 112] persons= [2115, 2116, 2117]
+--- sas= [] onebba_slice110 crp= 1
+--- 'expires': 1167126842
+113 1 onebbb_slice111 nodes= [3111, 3112, 3113, 111, 112, 113] persons= [2116, 2117, 2118]
+--- sas= [] onebbb_slice111 crp= 1
+--- 'expires': 1167126842
+114 1 onebbc_slice112 nodes= [3112, 3113, 3114, 112, 113, 114] persons= [2117, 2118, 2119]
+--- sas= [] onebbc_slice112 crp= 1
+--- 'expires': 1167126843
+115 1 onebbd_slice113 nodes= [3113, 3114, 3115, 113, 114, 115] persons= [2120, 2118, 2119]
+--- sas= [] onebbd_slice113 crp= 1
+--- 'expires': 1167126843
+116 1 onebbe_slice114 nodes= [3114, 3115, 3116, 114, 115, 116] persons= [2120, 2121, 2119]
+--- sas= [] onebbe_slice114 crp= 1
+--- 'expires': 1167126843
+117 1 onebbf_slice115 nodes= [3115, 3116, 3117, 115, 116, 117] persons= [2120, 2121, 2122]
+--- sas= [] onebbf_slice115 crp= 1
+--- 'expires': 1167126843
+118 1 onebbg_slice116 nodes= [3116, 3117, 3118, 116, 117, 118] persons= [2121, 2122, 2123]
+--- sas= [] onebbg_slice116 crp= 1
+--- 'expires': 1167126843
+119 1 onebbh_slice117 nodes= [3117, 3118, 3119, 117, 118, 119] persons= [2122, 2123, 2124]
+--- sas= [] onebbh_slice117 crp= 1
+--- 'expires': 1167126844
+120 1 onebbi_slice118 nodes= [3118, 3119, 3120, 118, 119, 120] persons= [2123, 2124, 2125]
+--- sas= [] onebbi_slice118 crp= 1
+--- 'expires': 1167126844
+121 1 onebbj_slice119 nodes= [3119, 3120, 3121, 119, 120, 121] persons= [2124, 2125, 2126]
+--- sas= [] onebbj_slice119 crp= 1
+--- 'expires': 1167126844
+122 1 onebca_slice120 nodes= [3120, 3121, 3122, 120, 121, 122] persons= [2125, 2126, 2127]
+--- sas= [] onebca_slice120 crp= 1
+--- 'expires': 1167126844
+123 1 onebcb_slice121 nodes= [3121, 3122, 3123, 121, 122, 123] persons= [2128, 2126, 2127]
+--- sas= [] onebcb_slice121 crp= 1
+--- 'expires': 1167126844
+124 1 onebcc_slice122 nodes= [3122, 3123, 3124, 122, 123, 124] persons= [2128, 2129, 2127]
+--- sas= [] onebcc_slice122 crp= 1
+--- 'expires': 1167126845
+125 1 onebcd_slice123 nodes= [3123, 3124, 3125, 123, 124, 125] persons= [2128, 2129, 2130]
+--- sas= [] onebcd_slice123 crp= 1
+--- 'expires': 1167126845
+126 1 onebce_slice124 nodes= [3124, 3125, 3126, 124, 125, 126] persons= [2129, 2130, 2131]
+--- sas= [] onebce_slice124 crp= 1
+--- 'expires': 1167126845
+127 1 onebcf_slice125 nodes= [3125, 3126, 3127, 125, 126, 127] persons= [2130, 2131, 2132]
+--- sas= [] onebcf_slice125 crp= 1
+--- 'expires': 1167126845
+128 1 onebcg_slice126 nodes= [128, 3126, 3127, 3128, 126, 127] persons= [2131, 2132, 2133]
+--- sas= [] onebcg_slice126 crp= 1
+--- 'expires': 1167126846
+129 1 onebch_slice127 nodes= [128, 129, 3127, 3128, 3129, 127] persons= [2132, 2133, 2134]
+--- sas= [] onebch_slice127 crp= 1
+--- 'expires': 1167126846
+130 1 onebci_slice128 nodes= [128, 129, 130, 3128, 3129, 3130] persons= [2133, 2134, 2135]
+--- sas= [] onebci_slice128 crp= 1
+--- 'expires': 1167126846
+131 1 onebcj_slice129 nodes= [129, 130, 131, 3129, 3130, 3131] persons= [2136, 2134, 2135]
+--- sas= [] onebcj_slice129 crp= 1
+--- 'expires': 1167126846
+132 1 onebda_slice130 nodes= [130, 131, 132, 3130, 3131, 3132] persons= [2136, 2137, 2135]
+--- sas= [] onebda_slice130 crp= 1
+--- 'expires': 1167126846
+133 1 onebdb_slice131 nodes= [131, 132, 133, 3131, 3132, 3133] persons= [2136, 2137, 2138]
+--- sas= [] onebdb_slice131 crp= 1
+--- 'expires': 1167126847
+134 1 onebdc_slice132 nodes= [132, 133, 134, 3132, 3133, 3134] persons= [2137, 2138, 2139]
+--- sas= [] onebdc_slice132 crp= 1
+--- 'expires': 1167126847
+135 1 onebdd_slice133 nodes= [133, 134, 135, 3133, 3134, 3135] persons= [2138, 2139, 2140]
+--- sas= [] onebdd_slice133 crp= 1
+--- 'expires': 1167126847
+136 1 onebde_slice134 nodes= [3136, 134, 135, 136, 3134, 3135] persons= [2139, 2140, 2141]
+--- sas= [] onebde_slice134 crp= 1
+--- 'expires': 1167126847
+137 1 onebdf_slice135 nodes= [3136, 3137, 135, 136, 137, 3135] persons= [2140, 2141, 2142]
+--- sas= [] onebdf_slice135 crp= 1
+--- 'expires': 1167126847
+138 1 onebdg_slice136 nodes= [3136, 3137, 3138, 136, 137, 138] persons= [2141, 2142, 2143]
+--- sas= [] onebdg_slice136 crp= 1
+--- 'expires': 1167126848
+139 1 onebdh_slice137 nodes= [3137, 3138, 3139, 137, 138, 139] persons= [2144, 2142, 2143]
+--- sas= [] onebdh_slice137 crp= 1
+--- 'expires': 1167126848
+140 1 onebdi_slice138 nodes= [3138, 3139, 3140, 138, 139, 140] persons= [2144, 2145, 2143]
+--- sas= [] onebdi_slice138 crp= 1
+--- 'expires': 1167126848
+141 1 onebdj_slice139 nodes= [3139, 3140, 3141, 139, 140, 141] persons= [2144, 2145, 2146]
+--- sas= [] onebdj_slice139 crp= 1
+--- 'expires': 1167126848
+142 1 onebea_slice140 nodes= [3140, 3141, 3142, 140, 141, 142] persons= [2145, 2146, 2147]
+--- sas= [] onebea_slice140 crp= 1
+--- 'expires': 1167126848
+143 1 onebeb_slice141 nodes= [3141, 3142, 3143, 141, 142, 143] persons= [2146, 2147, 2148]
+--- sas= [] onebeb_slice141 crp= 1
+--- 'expires': 1167126849
+144 1 onebec_slice142 nodes= [3142, 3143, 3144, 142, 143, 144] persons= [2147, 2148, 2149]
+--- sas= [] onebec_slice142 crp= 1
+--- 'expires': 1167126849
+145 1 onebed_slice143 nodes= [3143, 3144, 3145, 143, 144, 145] persons= [2148, 2149, 2150]
+--- sas= [] onebed_slice143 crp= 1
+--- 'expires': 1167126849
+146 1 onebee_slice144 nodes= [3144, 3145, 3146, 144, 145, 146] persons= [2149, 2150, 2151]
+--- sas= [] onebee_slice144 crp= 1
+--- 'expires': 1167126849
+147 1 onebef_slice145 nodes= [3145, 3146, 3147, 145, 146, 147] persons= [2152, 2150, 2151]
+--- sas= [] onebef_slice145 crp= 1
+--- 'expires': 1167126849
+148 1 onebeg_slice146 nodes= [3146, 3147, 3148, 146, 147, 148] persons= [2152, 2153, 2151]
+--- sas= [] onebeg_slice146 crp= 1
+--- 'expires': 1167126850
+149 1 onebeh_slice147 nodes= [3147, 3148, 3149, 147, 148, 149] persons= [2152, 2153, 2154]
+--- sas= [] onebeh_slice147 crp= 1
+--- 'expires': 1167126850
+150 1 onebei_slice148 nodes= [3148, 3149, 3150, 148, 149, 150] persons= [2153, 2154, 2155]
+--- sas= [] onebei_slice148 crp= 1
+--- 'expires': 1167126850
+151 1 onebej_slice149 nodes= [3149, 3150, 3151, 149, 150, 151] persons= [2154, 2155, 2156]
+--- sas= [] onebej_slice149 crp= 1
+--- 'expires': 1167126850
+152 1 onebfa_slice150 nodes= [3150, 3151, 3152, 150, 151, 152] persons= [2155, 2156, 2157]
+--- sas= [] onebfa_slice150 crp= 1
+--- 'expires': 1167126850
+153 1 onebfb_slice151 nodes= [3151, 3152, 3153, 151, 152, 153] persons= [2156, 2157, 2158]
+--- sas= [] onebfb_slice151 crp= 1
+--- 'expires': 1167126851
+154 1 onebfc_slice152 nodes= [3152, 3153, 3154, 152, 153, 154] persons= [2157, 2158, 2159]
+--- sas= [] onebfc_slice152 crp= 1
+--- 'expires': 1167126851
+155 1 onebfd_slice153 nodes= [3153, 3154, 3155, 153, 154, 155] persons= [2160, 2158, 2159]
+--- sas= [] onebfd_slice153 crp= 1
+--- 'expires': 1167126851
+156 1 onebfe_slice154 nodes= [3154, 3155, 3156, 154, 155, 156] persons= [2160, 2161, 2159]
+--- sas= [] onebfe_slice154 crp= 1
+--- 'expires': 1167126851
+157 1 onebff_slice155 nodes= [3155, 3156, 3157, 155, 156, 157] persons= [2160, 2161, 2162]
+--- sas= [] onebff_slice155 crp= 1
+--- 'expires': 1167126852
+158 1 onebfg_slice156 nodes= [3156, 3157, 3158, 156, 157, 158] persons= [2161, 2162, 2163]
+--- sas= [] onebfg_slice156 crp= 1
+--- 'expires': 1167126852
+159 1 onebfh_slice157 nodes= [3157, 3158, 3159, 157, 158, 159] persons= [2162, 2163, 2164]
+--- sas= [] onebfh_slice157 crp= 1
+--- 'expires': 1167126852
+160 1 onebfi_slice158 nodes= [160, 3158, 3159, 3160, 158, 159] persons= [2163, 2164, 2165]
+--- sas= [] onebfi_slice158 crp= 1
+--- 'expires': 1167126852
+161 1 onebfj_slice159 nodes= [160, 161, 3159, 3160, 3161, 159] persons= [2164, 2165, 2166]
+--- sas= [] onebfj_slice159 crp= 1
+--- 'expires': 1167126852
+162 1 onebga_slice160 nodes= [160, 161, 162, 3160, 3161, 3162] persons= [2165, 2166, 2167]
+--- sas= [] onebga_slice160 crp= 1
+--- 'expires': 1167126853
+163 1 onebgb_slice161 nodes= [161, 162, 163, 3161, 3162, 3163] persons= [2168, 2166, 2167]
+--- sas= [] onebgb_slice161 crp= 1
+--- 'expires': 1167126853
+164 1 onebgc_slice162 nodes= [162, 163, 164, 3162, 3163, 3164] persons= [2168, 2169, 2167]
+--- sas= [] onebgc_slice162 crp= 1
+--- 'expires': 1167126853
+165 1 onebgd_slice163 nodes= [163, 164, 165, 3163, 3164, 3165] persons= [2168, 2169, 2170]
+--- sas= [] onebgd_slice163 crp= 1
+--- 'expires': 1167126853
+166 1 onebge_slice164 nodes= [164, 165, 166, 3164, 3165, 3166] persons= [2169, 2170, 2171]
+--- sas= [] onebge_slice164 crp= 1
+--- 'expires': 1167126853
+167 1 onebgf_slice165 nodes= [165, 166, 167, 3165, 3166, 3167] persons= [2170, 2171, 2172]
+--- sas= [] onebgf_slice165 crp= 1
+--- 'expires': 1167126854
+168 1 onebgg_slice166 nodes= [3168, 166, 167, 168, 3166, 3167] persons= [2171, 2172, 2173]
+--- sas= [] onebgg_slice166 crp= 1
+--- 'expires': 1167126854
+169 1 onebgh_slice167 nodes= [3168, 3169, 167, 168, 169, 3167] persons= [2172, 2173, 2174]
+--- sas= [] onebgh_slice167 crp= 1
+--- 'expires': 1167126854
+170 1 onebgi_slice168 nodes= [3168, 3169, 3170, 168, 169, 170] persons= [2173, 2174, 2175]
+--- sas= [] onebgi_slice168 crp= 1
+--- 'expires': 1167126854
+171 1 onebgj_slice169 nodes= [3169, 3170, 3171, 169, 170, 171] persons= [2176, 2174, 2175]
+--- sas= [] onebgj_slice169 crp= 1
+--- 'expires': 1167126854
+172 1 onebha_slice170 nodes= [3170, 3171, 3172, 170, 171, 172] persons= [2176, 2177, 2175]
+--- sas= [] onebha_slice170 crp= 1
+--- 'expires': 1167126855
+173 1 onebhb_slice171 nodes= [3171, 3172, 3173, 171, 172, 173] persons= [2176, 2177, 2178]
+--- sas= [] onebhb_slice171 crp= 1
+--- 'expires': 1167126855
+174 1 onebhc_slice172 nodes= [3172, 3173, 3174, 172, 173, 174] persons= [2177, 2178, 2179]
+--- sas= [] onebhc_slice172 crp= 1
+--- 'expires': 1167126855
+175 1 onebhd_slice173 nodes= [3173, 3174, 3175, 173, 174, 175] persons= [2178, 2179, 2180]
+--- sas= [] onebhd_slice173 crp= 1
+--- 'expires': 1167126855
+176 1 onebhe_slice174 nodes= [3174, 3175, 3176, 174, 175, 176] persons= [2179, 2180, 2181]
+--- sas= [] onebhe_slice174 crp= 1
+--- 'expires': 1167126856
+177 1 onebhf_slice175 nodes= [3175, 3176, 3177, 175, 176, 177] persons= [2180, 2181, 2182]
+--- sas= [] onebhf_slice175 crp= 1
+--- 'expires': 1167126856
+178 1 onebhg_slice176 nodes= [3176, 3177, 3178, 176, 177, 178] persons= [2181, 2182, 2183]
+--- sas= [] onebhg_slice176 crp= 1
+--- 'expires': 1167126856
+179 1 onebhh_slice177 nodes= [3177, 3178, 3179, 177, 178, 179] persons= [2184, 2182, 2183]
+--- sas= [] onebhh_slice177 crp= 1
+--- 'expires': 1167126856
+180 1 onebhi_slice178 nodes= [3178, 3179, 3180, 178, 179, 180] persons= [2184, 2185, 2183]
+--- sas= [] onebhi_slice178 crp= 1
+--- 'expires': 1167126856
+181 1 onebhj_slice179 nodes= [3179, 3180, 3181, 179, 180, 181] persons= [2184, 2185, 2186]
+--- sas= [] onebhj_slice179 crp= 1
+--- 'expires': 1167126857
+182 1 onebia_slice180 nodes= [3180, 3181, 3182, 180, 181, 182] persons= [2185, 2186, 2187]
+--- sas= [] onebia_slice180 crp= 1
+--- 'expires': 1167126857
+183 1 onebib_slice181 nodes= [3181, 3182, 3183, 181, 182, 183] persons= [2186, 2187, 2188]
+--- sas= [] onebib_slice181 crp= 1
+--- 'expires': 1167126857
+184 1 onebic_slice182 nodes= [3182, 3183, 3184, 182, 183, 184] persons= [2187, 2188, 2189]
+--- sas= [] onebic_slice182 crp= 1
+--- 'expires': 1167126857
+185 1 onebid_slice183 nodes= [3183, 3184, 3185, 183, 184, 185] persons= [2188, 2189, 2190]
+--- sas= [] onebid_slice183 crp= 1
+--- 'expires': 1167126857
+186 1 onebie_slice184 nodes= [3184, 3185, 3186, 184, 185, 186] persons= [2189, 2190, 2191]
+--- sas= [] onebie_slice184 crp= 1
+--- 'expires': 1167126858
+187 1 onebif_slice185 nodes= [3185, 3186, 3187, 185, 186, 187] persons= [2192, 2190, 2191]
+--- sas= [] onebif_slice185 crp= 1
+--- 'expires': 1167126858
+188 1 onebig_slice186 nodes= [3186, 3187, 3188, 186, 187, 188] persons= [2192, 2193, 2191]
+--- sas= [] onebig_slice186 crp= 1
+--- 'expires': 1167126858
+189 1 onebih_slice187 nodes= [3187, 3188, 3189, 187, 188, 189] persons= [2192, 2193, 2194]
+--- sas= [] onebih_slice187 crp= 1
+--- 'expires': 1167126858
+190 1 onebii_slice188 nodes= [3188, 3189, 3190, 188, 189, 190] persons= [2193, 2194, 2195]
+--- sas= [] onebii_slice188 crp= 1
+--- 'expires': 1167126859
+191 1 onebij_slice189 nodes= [3189, 3190, 3191, 189, 190, 191] persons= [2194, 2195, 2196]
+--- sas= [] onebij_slice189 crp= 1
+--- 'expires': 1167126859
+192 1 onebja_slice190 nodes= [192, 3190, 3191, 3192, 190, 191] persons= [2195, 2196, 2197]
+--- sas= [] onebja_slice190 crp= 1
+--- 'expires': 1167126859
+193 1 onebjb_slice191 nodes= [192, 193, 3191, 3192, 3193, 191] persons= [2196, 2197, 2198]
+--- sas= [] onebjb_slice191 crp= 1
+--- 'expires': 1167126859
+194 1 onebjc_slice192 nodes= [192, 193, 194, 3192, 3193, 3194] persons= [2197, 2198, 2199]
+--- sas= [] onebjc_slice192 crp= 1
+--- 'expires': 1167126859
+195 1 onebjd_slice193 nodes= [193, 194, 195, 3193, 3194, 3195] persons= [2200, 2198, 2199]
+--- sas= [] onebjd_slice193 crp= 1
+--- 'expires': 1167126860
+196 1 onebje_slice194 nodes= [194, 195, 196, 3194, 3195, 3196] persons= [2200, 2201, 2199]
+--- sas= [] onebje_slice194 crp= 1
+--- 'expires': 1167126860
+197 1 onebjf_slice195 nodes= [195, 196, 197, 3195, 3196, 3197] persons= [2200, 2201, 2202]
+--- sas= [] onebjf_slice195 crp= 1
+--- 'expires': 1167126860
+198 1 onebjg_slice196 nodes= [196, 197, 198, 3196, 3197, 3198] persons= [2201, 2202, 2203]
+--- sas= [] onebjg_slice196 crp= 1
+--- 'expires': 1167126860
+199 1 onebjh_slice197 nodes= [197, 198, 199, 3197, 3198, 3199] persons= [2202, 2203, 2204]
+--- sas= [] onebjh_slice197 crp= 1
+--- 'expires': 1167126860
+200 1 onebji_slice198 nodes= [3200, 198, 199, 200, 3198, 3199] persons= [2203, 2204, 2205]
+--- sas= [] onebji_slice198 crp= 1
+--- 'expires': 1167126861
+201 1 onebjj_slice199 nodes= [3200, 3201, 199, 200, 201, 3199] persons= [2204, 2205, 2206]
+--- sas= [] onebjj_slice199 crp= 1
+--- 'expires': 1167126861
+202 1 onecaa_slice200 nodes= [3200, 3201, 3202, 200, 201, 202] persons= [2205, 2206, 2207]
+--- sas= [] onecaa_slice200 crp= 1
+--- 'expires': 1167126861
+203 1 onecab_slice201 nodes= [3201, 3202, 3203, 201, 202, 203] persons= [2208, 2206, 2207]
+--- sas= [] onecab_slice201 crp= 1
+--- 'expires': 1167126861
+204 1 onecac_slice202 nodes= [3202, 3203, 3204, 202, 203, 204] persons= [2208, 2209, 2207]
+--- sas= [] onecac_slice202 crp= 1
+--- 'expires': 1167126862
+205 1 onecad_slice203 nodes= [3203, 3204, 3205, 203, 204, 205] persons= [2208, 2209, 2210]
+--- sas= [] onecad_slice203 crp= 1
+--- 'expires': 1167126862
+206 1 onecae_slice204 nodes= [3204, 3205, 3206, 204, 205, 206] persons= [2209, 2210, 2211]
+--- sas= [] onecae_slice204 crp= 1
+--- 'expires': 1167126862
+207 1 onecaf_slice205 nodes= [3205, 3206, 3207, 205, 206, 207] persons= [2210, 2211, 2212]
+--- sas= [] onecaf_slice205 crp= 1
+--- 'expires': 1167126862
+208 1 onecag_slice206 nodes= [3206, 3207, 3208, 206, 207, 208] persons= [2211, 2212, 2213]
+--- sas= [] onecag_slice206 crp= 1
+--- 'expires': 1167126862
+209 1 onecah_slice207 nodes= [3207, 3208, 3209, 207, 208, 209] persons= [2212, 2213, 2214]
+--- sas= [] onecah_slice207 crp= 1
+--- 'expires': 1167126863
+210 1 onecai_slice208 nodes= [3208, 3209, 3210, 208, 209, 210] persons= [2213, 2214, 2215]
+--- sas= [] onecai_slice208 crp= 1
+--- 'expires': 1167126863
+211 1 onecaj_slice209 nodes= [3209, 3210, 3211, 209, 210, 211] persons= [2216, 2214, 2215]
+--- sas= [] onecaj_slice209 crp= 1
+--- 'expires': 1167126863
+212 1 onecba_slice210 nodes= [3210, 3211, 3212, 210, 211, 212] persons= [2216, 2217, 2215]
+--- sas= [] onecba_slice210 crp= 1
+--- 'expires': 1167126863
+213 1 onecbb_slice211 nodes= [3211, 3212, 3213, 211, 212, 213] persons= [2216, 2217, 2218]
+--- sas= [] onecbb_slice211 crp= 1
+--- 'expires': 1167126863
+214 1 onecbc_slice212 nodes= [3212, 3213, 3214, 212, 213, 214] persons= [2217, 2218, 2219]
+--- sas= [] onecbc_slice212 crp= 1
+--- 'expires': 1167126864
+215 1 onecbd_slice213 nodes= [3213, 3214, 3215, 213, 214, 215] persons= [2218, 2219, 2220]
+--- sas= [] onecbd_slice213 crp= 1
+--- 'expires': 1167126864
+216 1 onecbe_slice214 nodes= [3214, 3215, 3216, 214, 215, 216] persons= [2219, 2220, 2221]
+--- sas= [] onecbe_slice214 crp= 1
+--- 'expires': 1167126864
+217 1 onecbf_slice215 nodes= [3215, 3216, 3217, 215, 216, 217] persons= [2220, 2221, 2222]
+--- sas= [] onecbf_slice215 crp= 1
+--- 'expires': 1167126864
+218 1 onecbg_slice216 nodes= [3216, 3217, 3218, 216, 217, 218] persons= [2221, 2222, 2223]
+--- sas= [] onecbg_slice216 crp= 1
+--- 'expires': 1167126865
+219 1 onecbh_slice217 nodes= [3217, 3218, 3219, 217, 218, 219] persons= [2224, 2222, 2223]
+--- sas= [] onecbh_slice217 crp= 1
+--- 'expires': 1167126865
+220 1 onecbi_slice218 nodes= [3218, 3219, 3220, 218, 219, 220] persons= [2224, 2225, 2223]
+--- sas= [] onecbi_slice218 crp= 1
+--- 'expires': 1167126865
+221 1 onecbj_slice219 nodes= [3219, 3220, 3221, 219, 220, 221] persons= [2224, 2225, 2226]
+--- sas= [] onecbj_slice219 crp= 1
+--- 'expires': 1167126865
+222 1 onecca_slice220 nodes= [3220, 3221, 3222, 220, 221, 222] persons= [2225, 2226, 2227]
+--- sas= [] onecca_slice220 crp= 1
+--- 'expires': 1167126865
+223 1 oneccb_slice221 nodes= [3221, 3222, 3223, 221, 222, 223] persons= [2226, 2227, 2228]
+--- sas= [] oneccb_slice221 crp= 1
+--- 'expires': 1167126866
+224 1 oneccc_slice222 nodes= [224, 3222, 3223, 3224, 222, 223] persons= [2227, 2228, 2229]
+--- sas= [] oneccc_slice222 crp= 1
+--- 'expires': 1167126866
+225 1 oneccd_slice223 nodes= [224, 225, 3223, 3224, 3225, 223] persons= [2228, 2229, 2230]
+--- sas= [] oneccd_slice223 crp= 1
+--- 'expires': 1167126866
+226 1 onecce_slice224 nodes= [224, 225, 226, 3224, 3225, 3226] persons= [2229, 2230, 2231]
+--- sas= [] onecce_slice224 crp= 1
+--- 'expires': 1167126866
+227 1 oneccf_slice225 nodes= [225, 226, 227, 3225, 3226, 3227] persons= [2232, 2230, 2231]
+--- sas= [] oneccf_slice225 crp= 1
+--- 'expires': 1167126867
+228 1 oneccg_slice226 nodes= [226, 227, 228, 3226, 3227, 3228] persons= [2232, 2233, 2231]
+--- sas= [] oneccg_slice226 crp= 1
+--- 'expires': 1167126867
+229 1 onecch_slice227 nodes= [227, 228, 229, 3227, 3228, 3229] persons= [2232, 2233, 2234]
+--- sas= [] onecch_slice227 crp= 1
+--- 'expires': 1167126867
+230 1 onecci_slice228 nodes= [228, 229, 230, 3228, 3229, 3230] persons= [2233, 2234, 2235]
+--- sas= [] onecci_slice228 crp= 1
+--- 'expires': 1167126867
+231 1 oneccj_slice229 nodes= [229, 230, 231, 3229, 3230, 3231] persons= [2234, 2235, 2236]
+--- sas= [] oneccj_slice229 crp= 1
+--- 'expires': 1167126867
+232 1 onecda_slice230 nodes= [3232, 230, 231, 232, 3230, 3231] persons= [2235, 2236, 2237]
+--- sas= [] onecda_slice230 crp= 1
+--- 'expires': 1167126868
+233 1 onecdb_slice231 nodes= [3232, 3233, 231, 232, 233, 3231] persons= [2236, 2237, 2238]
+--- sas= [] onecdb_slice231 crp= 1
+--- 'expires': 1167126868
+234 1 onecdc_slice232 nodes= [3232, 3233, 3234, 232, 233, 234] persons= [2237, 2238, 2239]
+--- sas= [] onecdc_slice232 crp= 1
+--- 'expires': 1167126868
+235 1 onecdd_slice233 nodes= [3233, 3234, 3235, 233, 234, 235] persons= [2240, 2238, 2239]
+--- sas= [] onecdd_slice233 crp= 1
+--- 'expires': 1167126868
+236 1 onecde_slice234 nodes= [3234, 3235, 3236, 234, 235, 236] persons= [2240, 2241, 2239]
+--- sas= [] onecde_slice234 crp= 1
+--- 'expires': 1167126869
+237 1 onecdf_slice235 nodes= [3235, 3236, 3237, 235, 236, 237] persons= [2240, 2241, 2242]
+--- sas= [] onecdf_slice235 crp= 1
+--- 'expires': 1167126869
+238 1 onecdg_slice236 nodes= [3236, 3237, 3238, 236, 237, 238] persons= [2241, 2242, 2243]
+--- sas= [] onecdg_slice236 crp= 1
+--- 'expires': 1167126869
+239 1 onecdh_slice237 nodes= [3237, 3238, 3239, 237, 238, 239] persons= [2242, 2243, 2244]
+--- sas= [] onecdh_slice237 crp= 1
+--- 'expires': 1167126869
+240 1 onecdi_slice238 nodes= [3238, 3239, 3240, 238, 239, 240] persons= [2243, 2244, 2245]
+--- sas= [] onecdi_slice238 crp= 1
+--- 'expires': 1167126869
+241 1 onecdj_slice239 nodes= [3239, 3240, 3241, 239, 240, 241] persons= [2244, 2245, 2246]
+--- sas= [] onecdj_slice239 crp= 1
+--- 'expires': 1167126870
+242 1 onecea_slice240 nodes= [3240, 3241, 3242, 240, 241, 242] persons= [2245, 2246, 2247]
+--- sas= [] onecea_slice240 crp= 1
+--- 'expires': 1167126870
+243 1 oneceb_slice241 nodes= [3241, 3242, 3243, 241, 242, 243] persons= [2248, 2246, 2247]
+--- sas= [] oneceb_slice241 crp= 1
+--- 'expires': 1167126870
+244 1 onecec_slice242 nodes= [3242, 3243, 3244, 242, 243, 244] persons= [2248, 2249, 2247]
+--- sas= [] onecec_slice242 crp= 1
+--- 'expires': 1167126870
+245 1 oneced_slice243 nodes= [3243, 3244, 3245, 243, 244, 245] persons= [2248, 2249, 2250]
+--- sas= [] oneced_slice243 crp= 1
+--- 'expires': 1167126871
+246 1 onecee_slice244 nodes= [3244, 3245, 3246, 244, 245, 246] persons= [2249, 2250, 2251]
+--- sas= [] onecee_slice244 crp= 1
+--- 'expires': 1167126871
+247 1 onecef_slice245 nodes= [3245, 3246, 3247, 245, 246, 247] persons= [2250, 2251, 2252]
+--- sas= [] onecef_slice245 crp= 1
+--- 'expires': 1167126871
+248 1 oneceg_slice246 nodes= [3246, 3247, 3248, 246, 247, 248] persons= [2251, 2252, 2253]
+--- sas= [] oneceg_slice246 crp= 1
+--- 'expires': 1167126871
+249 1 oneceh_slice247 nodes= [3247, 3248, 3249, 247, 248, 249] persons= [2252, 2253, 2254]
+--- sas= [] oneceh_slice247 crp= 1
+--- 'expires': 1167126871
+250 1 onecei_slice248 nodes= [3248, 3249, 3250, 248, 249, 250] persons= [2253, 2254, 2255]
+--- sas= [] onecei_slice248 crp= 1
+--- 'expires': 1167126872
+251 1 onecej_slice249 nodes= [3249, 3250, 3251, 249, 250, 251] persons= [2256, 2254, 2255]
+--- sas= [] onecej_slice249 crp= 1
+--- 'expires': 1167126872
+252 1 onecfa_slice250 nodes= [3250, 3251, 3252, 250, 251, 252] persons= [2256, 2257, 2255]
+--- sas= [] onecfa_slice250 crp= 1
+--- 'expires': 1167126872
+253 1 onecfb_slice251 nodes= [3251, 3252, 3253, 251, 252, 253] persons= [2256, 2257, 2258]
+--- sas= [] onecfb_slice251 crp= 1
+--- 'expires': 1167126872
+254 1 onecfc_slice252 nodes= [3252, 3253, 3254, 252, 253, 254] persons= [2257, 2258, 2259]
+--- sas= [] onecfc_slice252 crp= 1
+--- 'expires': 1167126873
+255 1 onecfd_slice253 nodes= [3253, 3254, 3255, 253, 254, 255] persons= [2258, 2259, 2260]
+--- sas= [] onecfd_slice253 crp= 1
+--- 'expires': 1167126873
+256 1 onecfe_slice254 nodes= [256, 3254, 3255, 3256, 254, 255] persons= [2259, 2260, 2261]
+--- sas= [] onecfe_slice254 crp= 1
+--- 'expires': 1167126873
+257 1 onecff_slice255 nodes= [256, 257, 3255, 3256, 3257, 255] persons= [2260, 2261, 2262]
+--- sas= [] onecff_slice255 crp= 1
+--- 'expires': 1167126873
+258 1 onecfg_slice256 nodes= [256, 257, 258, 3256, 3257, 3258] persons= [2261, 2262, 2263]
+--- sas= [] onecfg_slice256 crp= 1
+--- 'expires': 1167126873
+259 1 onecfh_slice257 nodes= [257, 258, 259, 3257, 3258, 3259] persons= [2264, 2262, 2263]
+--- sas= [] onecfh_slice257 crp= 1
+--- 'expires': 1167126874
+260 1 onecfi_slice258 nodes= [258, 259, 260, 3258, 3259, 3260] persons= [2264, 2265, 2263]
+--- sas= [] onecfi_slice258 crp= 1
+--- 'expires': 1167126874
+261 1 onecfj_slice259 nodes= [259, 260, 261, 3259, 3260, 3261] persons= [2264, 2265, 2266]
+--- sas= [] onecfj_slice259 crp= 1
+--- 'expires': 1167126874
+262 1 onecga_slice260 nodes= [260, 261, 262, 3260, 3261, 3262] persons= [2265, 2266, 2267]
+--- sas= [] onecga_slice260 crp= 1
+--- 'expires': 1167126874
+263 1 onecgb_slice261 nodes= [261, 262, 263, 3261, 3262, 3263] persons= [2266, 2267, 2268]
+--- sas= [] onecgb_slice261 crp= 1
+--- 'expires': 1167126875
+264 1 onecgc_slice262 nodes= [3264, 262, 263, 264, 3262, 3263] persons= [2267, 2268, 2269]
+--- sas= [] onecgc_slice262 crp= 1
+--- 'expires': 1167126875
+265 1 onecgd_slice263 nodes= [3264, 3265, 263, 264, 265, 3263] persons= [2268, 2269, 2270]
+--- sas= [] onecgd_slice263 crp= 1
+--- 'expires': 1167126875
+266 1 onecge_slice264 nodes= [3264, 3265, 3266, 264, 265, 266] persons= [2269, 2270, 2271]
+--- sas= [] onecge_slice264 crp= 1
+--- 'expires': 1167126875
+267 1 onecgf_slice265 nodes= [3265, 3266, 3267, 265, 266, 267] persons= [2272, 2270, 2271]
+--- sas= [] onecgf_slice265 crp= 1
+--- 'expires': 1167126875
+268 1 onecgg_slice266 nodes= [3266, 3267, 3268, 266, 267, 268] persons= [2272, 2273, 2271]
+--- sas= [] onecgg_slice266 crp= 1
+--- 'expires': 1167126876
+269 1 onecgh_slice267 nodes= [3267, 3268, 3269, 267, 268, 269] persons= [2272, 2273, 2274]
+--- sas= [] onecgh_slice267 crp= 1
+--- 'expires': 1167126876
+270 1 onecgi_slice268 nodes= [3268, 3269, 3270, 268, 269, 270] persons= [2273, 2274, 2275]
+--- sas= [] onecgi_slice268 crp= 1
+--- 'expires': 1167126876
+271 1 onecgj_slice269 nodes= [3269, 3270, 3271, 269, 270, 271] persons= [2274, 2275, 2276]
+--- sas= [] onecgj_slice269 crp= 1
+--- 'expires': 1167126876
+272 1 onecha_slice270 nodes= [3270, 3271, 3272, 270, 271, 272] persons= [2275, 2276, 2277]
+--- sas= [] onecha_slice270 crp= 1
+--- 'expires': 1167126877
+273 1 onechb_slice271 nodes= [3271, 3272, 3273, 271, 272, 273] persons= [2276, 2277, 2278]
+--- sas= [] onechb_slice271 crp= 1
+--- 'expires': 1167126877
+274 1 onechc_slice272 nodes= [3272, 3273, 3274, 272, 273, 274] persons= [2277, 2278, 2279]
+--- sas= [] onechc_slice272 crp= 1
+--- 'expires': 1167126877
+275 1 onechd_slice273 nodes= [3273, 3274, 3275, 273, 274, 275] persons= [2280, 2278, 2279]
+--- sas= [] onechd_slice273 crp= 1
+--- 'expires': 1167126877
+276 1 oneche_slice274 nodes= [3274, 3275, 3276, 274, 275, 276] persons= [2280, 2281, 2279]
+--- sas= [] oneche_slice274 crp= 1
+--- 'expires': 1167126878
+277 1 onechf_slice275 nodes= [3275, 3276, 3277, 275, 276, 277] persons= [2280, 2281, 2282]
+--- sas= [] onechf_slice275 crp= 1
+--- 'expires': 1167126878
+278 1 onechg_slice276 nodes= [3276, 3277, 3278, 276, 277, 278] persons= [2281, 2282, 2283]
+--- sas= [] onechg_slice276 crp= 1
+--- 'expires': 1167126878
+279 1 onechh_slice277 nodes= [3277, 3278, 3279, 277, 278, 279] persons= [2282, 2283, 2284]
+--- sas= [] onechh_slice277 crp= 1
+--- 'expires': 1167126878
+280 1 onechi_slice278 nodes= [3278, 3279, 3280, 278, 279, 280] persons= [2283, 2284, 2285]
+--- sas= [] onechi_slice278 crp= 1
+--- 'expires': 1167126878
+281 1 onechj_slice279 nodes= [3279, 3280, 3281, 279, 280, 281] persons= [2284, 2285, 2286]
+--- sas= [] onechj_slice279 crp= 1
+--- 'expires': 1167126879
+282 1 onecia_slice280 nodes= [3280, 3281, 3282, 280, 281, 282] persons= [2285, 2286, 2287]
+--- sas= [] onecia_slice280 crp= 1
+--- 'expires': 1167126879
+283 1 onecib_slice281 nodes= [3281, 3282, 3283, 281, 282, 283] persons= [2288, 2286, 2287]
+--- sas= [] onecib_slice281 crp= 1
+--- 'expires': 1167126879
+284 1 onecic_slice282 nodes= [3282, 3283, 3284, 282, 283, 284] persons= [2288, 2289, 2287]
+--- sas= [] onecic_slice282 crp= 1
+--- 'expires': 1167126879
+285 1 onecid_slice283 nodes= [3283, 3284, 3285, 283, 284, 285] persons= [2288, 2289, 2290]
+--- sas= [] onecid_slice283 crp= 1
+--- 'expires': 1167126880
+286 1 onecie_slice284 nodes= [3284, 3285, 3286, 284, 285, 286] persons= [2289, 2290, 2291]
+--- sas= [] onecie_slice284 crp= 1
+--- 'expires': 1167126880
+287 1 onecif_slice285 nodes= [3285, 3286, 3287, 285, 286, 287] persons= [2290, 2291, 2292]
+--- sas= [] onecif_slice285 crp= 1
+--- 'expires': 1167126880
+288 1 onecig_slice286 nodes= [288, 3286, 3287, 3288, 286, 287] persons= [2291, 2292, 2293]
+--- sas= [] onecig_slice286 crp= 1
+--- 'expires': 1167126880
+289 1 onecih_slice287 nodes= [288, 289, 3287, 3288, 3289, 287] persons= [2292, 2293, 2294]
+--- sas= [] onecih_slice287 crp= 1
+--- 'expires': 1167126880
+290 1 onecii_slice288 nodes= [288, 289, 290, 3288, 3289, 3290] persons= [2293, 2294, 2295]
+--- sas= [] onecii_slice288 crp= 1
+--- 'expires': 1167126881
+291 1 onecij_slice289 nodes= [289, 290, 291, 3289, 3290, 3291] persons= [2296, 2294, 2295]
+--- sas= [] onecij_slice289 crp= 1
+--- 'expires': 1167126881
+292 1 onecja_slice290 nodes= [290, 291, 292, 3290, 3291, 3292] persons= [2296, 2297, 2295]
+--- sas= [] onecja_slice290 crp= 1
+--- 'expires': 1167126881
+293 1 onecjb_slice291 nodes= [291, 292, 293, 3291, 3292, 3293] persons= [2296, 2297, 2298]
+--- sas= [] onecjb_slice291 crp= 1
+--- 'expires': 1167126881
+294 1 onecjc_slice292 nodes= [292, 293, 294, 3292, 3293, 3294] persons= [2297, 2298, 2299]
+--- sas= [] onecjc_slice292 crp= 1
+--- 'expires': 1167126882
+295 1 onecjd_slice293 nodes= [293, 294, 295, 3293, 3294, 3295] persons= [2298, 2299, 2300]
+--- sas= [] onecjd_slice293 crp= 1
+--- 'expires': 1167126882
+296 1 onecje_slice294 nodes= [3296, 294, 295, 296, 3294, 3295] persons= [2299, 2300, 2301]
+--- sas= [] onecje_slice294 crp= 1
+--- 'expires': 1167126882
+297 1 onecjf_slice295 nodes= [3296, 3297, 295, 296, 297, 3295] persons= [2300, 2301, 2302]
+--- sas= [] onecjf_slice295 crp= 1
+--- 'expires': 1167126882
+298 1 onecjg_slice296 nodes= [3296, 3297, 3298, 296, 297, 298] persons= [2301, 2302, 2303]
+--- sas= [] onecjg_slice296 crp= 1
+--- 'expires': 1167126883
+299 1 onecjh_slice297 nodes= [3297, 3298, 3299, 297, 298, 299] persons= [2304, 2302, 2303]
+--- sas= [] onecjh_slice297 crp= 1
+--- 'expires': 1167126883
+300 1 onecji_slice298 nodes= [3298, 3299, 3300, 298, 299, 300] persons= [2304, 2305, 2303]
+--- sas= [] onecji_slice298 crp= 1
+--- 'expires': 1167126883
+301 1 onecjj_slice299 nodes= [3299, 3300, 3301, 299, 300, 301] persons= [2304, 2305, 2306]
+--- sas= [] onecjj_slice299 crp= 1
+--- 'expires': 1167126883
+302 1 onedaa_slice300 nodes= [3300, 3301, 3302, 300, 301, 302] persons= [2305, 2306, 2307]
+--- sas= [] onedaa_slice300 crp= 1
+--- 'expires': 1167126883
+303 1 onedab_slice301 nodes= [3301, 3302, 3303, 301, 302, 303] persons= [2306, 2307, 2308]
+--- sas= [] onedab_slice301 crp= 1
+--- 'expires': 1167126884
+304 1 onedac_slice302 nodes= [3302, 3303, 3304, 302, 303, 304] persons= [2307, 2308, 2309]
+--- sas= [] onedac_slice302 crp= 1
+--- 'expires': 1167126884
+305 1 onedad_slice303 nodes= [3303, 3304, 3305, 303, 304, 305] persons= [2308, 2309, 2310]
+--- sas= [] onedad_slice303 crp= 1
+--- 'expires': 1167126884
+306 1 onedae_slice304 nodes= [3304, 3305, 3306, 304, 305, 306] persons= [2309, 2310, 2311]
+--- sas= [] onedae_slice304 crp= 1
+--- 'expires': 1167126884
+307 1 onedaf_slice305 nodes= [3305, 3306, 3307, 305, 306, 307] persons= [2312, 2310, 2311]
+--- sas= [] onedaf_slice305 crp= 1
+--- 'expires': 1167126885
+308 1 onedag_slice306 nodes= [3306, 3307, 3308, 306, 307, 308] persons= [2312, 2313, 2311]
+--- sas= [] onedag_slice306 crp= 1
+--- 'expires': 1167126885
+309 1 onedah_slice307 nodes= [3307, 3308, 3309, 307, 308, 309] persons= [2312, 2313, 2314]
+--- sas= [] onedah_slice307 crp= 1
+--- 'expires': 1167126885
+310 1 onedai_slice308 nodes= [3308, 3309, 3310, 308, 309, 310] persons= [2313, 2314, 2315]
+--- sas= [] onedai_slice308 crp= 1
+--- 'expires': 1167126885
+311 1 onedaj_slice309 nodes= [3309, 3310, 3311, 309, 310, 311] persons= [2314, 2315, 2316]
+--- sas= [] onedaj_slice309 crp= 1
+--- 'expires': 1167126886
+312 1 onedba_slice310 nodes= [3310, 3311, 3312, 310, 311, 312] persons= [2315, 2316, 2317]
+--- sas= [] onedba_slice310 crp= 1
+--- 'expires': 1167126886
+313 1 onedbb_slice311 nodes= [3311, 3312, 3313, 311, 312, 313] persons= [2316, 2317, 2318]
+--- sas= [] onedbb_slice311 crp= 1
+--- 'expires': 1167126886
+314 1 onedbc_slice312 nodes= [3312, 3313, 3314, 312, 313, 314] persons= [2317, 2318, 2319]
+--- sas= [] onedbc_slice312 crp= 1
+--- 'expires': 1167126886
+315 1 onedbd_slice313 nodes= [3313, 3314, 3315, 313, 314, 315] persons= [2320, 2318, 2319]
+--- sas= [] onedbd_slice313 crp= 1
+--- 'expires': 1167126887
+316 1 onedbe_slice314 nodes= [3314, 3315, 3316, 314, 315, 316] persons= [2320, 2321, 2319]
+--- sas= [] onedbe_slice314 crp= 1
+--- 'expires': 1167126887
+317 1 onedbf_slice315 nodes= [3315, 3316, 3317, 315, 316, 317] persons= [2320, 2321, 2322]
+--- sas= [] onedbf_slice315 crp= 1
+--- 'expires': 1167126887
+318 1 onedbg_slice316 nodes= [3316, 3317, 3318, 316, 317, 318] persons= [2321, 2322, 2323]
+--- sas= [] onedbg_slice316 crp= 1
+--- 'expires': 1167126887
+319 1 onedbh_slice317 nodes= [3317, 3318, 3319, 317, 318, 319] persons= [2322, 2323, 2324]
+--- sas= [] onedbh_slice317 crp= 1
+--- 'expires': 1167126887
+320 1 onedbi_slice318 nodes= [320, 3318, 3319, 3320, 318, 319] persons= [2323, 2324, 2325]
+--- sas= [] onedbi_slice318 crp= 1
+--- 'expires': 1167126888
+321 1 onedbj_slice319 nodes= [320, 321, 3319, 3320, 3321, 319] persons= [2324, 2325, 2326]
+--- sas= [] onedbj_slice319 crp= 1
+--- 'expires': 1167126888
+322 1 onedca_slice320 nodes= [320, 321, 322, 3320, 3321, 3322] persons= [2325, 2326, 2327]
+--- sas= [] onedca_slice320 crp= 1
+--- 'expires': 1167126888
+323 1 onedcb_slice321 nodes= [321, 322, 323, 3321, 3322, 3323] persons= [2328, 2326, 2327]
+--- sas= [] onedcb_slice321 crp= 1
+--- 'expires': 1167126888
+324 1 onedcc_slice322 nodes= [322, 323, 324, 3322, 3323, 3324] persons= [2328, 2329, 2327]
+--- sas= [] onedcc_slice322 crp= 1
+--- 'expires': 1167126889
+325 1 onedcd_slice323 nodes= [323, 324, 325, 3323, 3324, 3325] persons= [2328, 2329, 2330]
+--- sas= [] onedcd_slice323 crp= 1
+--- 'expires': 1167126889
+326 1 onedce_slice324 nodes= [324, 325, 326, 3324, 3325, 3326] persons= [2329, 2330, 2331]
+--- sas= [] onedce_slice324 crp= 1
+--- 'expires': 1167126889
+327 1 onedcf_slice325 nodes= [325, 326, 327, 3325, 3326, 3327] persons= [2330, 2331, 2332]
+--- sas= [] onedcf_slice325 crp= 1
+--- 'expires': 1167126889
+328 1 onedcg_slice326 nodes= [3328, 326, 327, 328, 3326, 3327] persons= [2331, 2332, 2333]
+--- sas= [] onedcg_slice326 crp= 1
+--- 'expires': 1167126890
+329 1 onedch_slice327 nodes= [3328, 3329, 327, 328, 329, 3327] persons= [2332, 2333, 2334]
+--- sas= [] onedch_slice327 crp= 1
+--- 'expires': 1167126890
+330 1 onedci_slice328 nodes= [3328, 3329, 3330, 328, 329, 330] persons= [2333, 2334, 2335]
+--- sas= [] onedci_slice328 crp= 1
+--- 'expires': 1167126890
+331 1 onedcj_slice329 nodes= [3329, 3330, 3331, 329, 330, 331] persons= [2336, 2334, 2335]
+--- sas= [] onedcj_slice329 crp= 1
+--- 'expires': 1167126890
+332 1 onedda_slice330 nodes= [3330, 3331, 3332, 330, 331, 332] persons= [2336, 2337, 2335]
+--- sas= [] onedda_slice330 crp= 1
+--- 'expires': 1167126891
+333 1 oneddb_slice331 nodes= [3331, 3332, 3333, 331, 332, 333] persons= [2336, 2337, 2338]
+--- sas= [] oneddb_slice331 crp= 1
+--- 'expires': 1167126891
+334 1 oneddc_slice332 nodes= [3332, 3333, 3334, 332, 333, 334] persons= [2337, 2338, 2339]
+--- sas= [] oneddc_slice332 crp= 1
+--- 'expires': 1167126891
+335 1 oneddd_slice333 nodes= [3333, 3334, 3335, 333, 334, 335] persons= [2338, 2339, 2340]
+--- sas= [] oneddd_slice333 crp= 1
+--- 'expires': 1167126891
+336 1 onedde_slice334 nodes= [3334, 3335, 3336, 334, 335, 336] persons= [2339, 2340, 2341]
+--- sas= [] onedde_slice334 crp= 1
+--- 'expires': 1167126891
+337 1 oneddf_slice335 nodes= [3335, 3336, 3337, 335, 336, 337] persons= [2340, 2341, 2342]
+--- sas= [] oneddf_slice335 crp= 1
+--- 'expires': 1167126892
+338 1 oneddg_slice336 nodes= [3336, 3337, 3338, 336, 337, 338] persons= [2341, 2342, 2343]
+--- sas= [] oneddg_slice336 crp= 1
+--- 'expires': 1167126892
+339 1 oneddh_slice337 nodes= [3337, 3338, 3339, 337, 338, 339] persons= [2344, 2342, 2343]
+--- sas= [] oneddh_slice337 crp= 1
+--- 'expires': 1167126892
+340 1 oneddi_slice338 nodes= [3338, 3339, 3340, 338, 339, 340] persons= [2344, 2345, 2343]
+--- sas= [] oneddi_slice338 crp= 1
+--- 'expires': 1167126892
+341 1 oneddj_slice339 nodes= [3339, 3340, 3341, 339, 340, 341] persons= [2344, 2345, 2346]
+--- sas= [] oneddj_slice339 crp= 1
+--- 'expires': 1167126893
+342 1 onedea_slice340 nodes= [3340, 3341, 3342, 340, 341, 342] persons= [2345, 2346, 2347]
+--- sas= [] onedea_slice340 crp= 1
+--- 'expires': 1167126893
+343 1 onedeb_slice341 nodes= [3341, 3342, 3343, 341, 342, 343] persons= [2346, 2347, 2348]
+--- sas= [] onedeb_slice341 crp= 1
+--- 'expires': 1167126893
+344 1 onedec_slice342 nodes= [3342, 3343, 3344, 342, 343, 344] persons= [2347, 2348, 2349]
+--- sas= [] onedec_slice342 crp= 1
+--- 'expires': 1167126893
+345 1 oneded_slice343 nodes= [3343, 3344, 3345, 343, 344, 345] persons= [2348, 2349, 2350]
+--- sas= [] oneded_slice343 crp= 1
+--- 'expires': 1167126894
+346 1 onedee_slice344 nodes= [3344, 3345, 3346, 344, 345, 346] persons= [2349, 2350, 2351]
+--- sas= [] onedee_slice344 crp= 1
+--- 'expires': 1167126894
+347 1 onedef_slice345 nodes= [3345, 3346, 3347, 345, 346, 347] persons= [2352, 2350, 2351]
+--- sas= [] onedef_slice345 crp= 1
+--- 'expires': 1167126894
+348 1 onedeg_slice346 nodes= [3346, 3347, 3348, 346, 347, 348] persons= [2352, 2353, 2351]
+--- sas= [] onedeg_slice346 crp= 1
+--- 'expires': 1167126894
+349 1 onedeh_slice347 nodes= [3347, 3348, 3349, 347, 348, 349] persons= [2352, 2353, 2354]
+--- sas= [] onedeh_slice347 crp= 1
+--- 'expires': 1167126895
+350 1 onedei_slice348 nodes= [3348, 3349, 3350, 348, 349, 350] persons= [2353, 2354, 2355]
+--- sas= [] onedei_slice348 crp= 1
+--- 'expires': 1167126895
+351 1 onedej_slice349 nodes= [3349, 3350, 3351, 349, 350, 351] persons= [2354, 2355, 2356]
+--- sas= [] onedej_slice349 crp= 1
+--- 'expires': 1167126895
+352 1 onedfa_slice350 nodes= [352, 3350, 3351, 3352, 350, 351] persons= [2355, 2356, 2357]
+--- sas= [] onedfa_slice350 crp= 1
+--- 'expires': 1167126895
+353 1 onedfb_slice351 nodes= [352, 353, 3351, 3352, 3353, 351] persons= [2356, 2357, 2358]
+--- sas= [] onedfb_slice351 crp= 1
+--- 'expires': 1167126896
+354 1 onedfc_slice352 nodes= [352, 353, 354, 3352, 3353, 3354] persons= [2357, 2358, 2359]
+--- sas= [] onedfc_slice352 crp= 1
+--- 'expires': 1167126896
+355 1 onedfd_slice353 nodes= [353, 354, 355, 3353, 3354, 3355] persons= [2360, 2358, 2359]
+--- sas= [] onedfd_slice353 crp= 1
+--- 'expires': 1167126896
+356 1 onedfe_slice354 nodes= [354, 355, 356, 3354, 3355, 3356] persons= [2360, 2361, 2359]
+--- sas= [] onedfe_slice354 crp= 1
+--- 'expires': 1167126896
+357 1 onedff_slice355 nodes= [355, 356, 357, 3355, 3356, 3357] persons= [2360, 2361, 2362]
+--- sas= [] onedff_slice355 crp= 1
+--- 'expires': 1167126896
+358 1 onedfg_slice356 nodes= [356, 357, 358, 3356, 3357, 3358] persons= [2361, 2362, 2363]
+--- sas= [] onedfg_slice356 crp= 1
+--- 'expires': 1167126897
+359 1 onedfh_slice357 nodes= [357, 358, 359, 3357, 3358, 3359] persons= [2362, 2363, 2364]
+--- sas= [] onedfh_slice357 crp= 1
+--- 'expires': 1167126897
+360 1 onedfi_slice358 nodes= [3360, 358, 359, 360, 3358, 3359] persons= [2363, 2364, 2365]
+--- sas= [] onedfi_slice358 crp= 1
+--- 'expires': 1167126897
+361 1 onedfj_slice359 nodes= [3360, 3361, 359, 360, 361, 3359] persons= [2364, 2365, 2366]
+--- sas= [] onedfj_slice359 crp= 1
+--- 'expires': 1167126897
+362 1 onedga_slice360 nodes= [3360, 3361, 3362, 360, 361, 362] persons= [2365, 2366, 2367]
+--- sas= [] onedga_slice360 crp= 1
+--- 'expires': 1167126898
+363 1 onedgb_slice361 nodes= [3361, 3362, 3363, 361, 362, 363] persons= [2368, 2366, 2367]
+--- sas= [] onedgb_slice361 crp= 1
+--- 'expires': 1167126898
+364 1 onedgc_slice362 nodes= [3362, 3363, 3364, 362, 363, 364] persons= [2368, 2369, 2367]
+--- sas= [] onedgc_slice362 crp= 1
+--- 'expires': 1167126898
+365 1 onedgd_slice363 nodes= [3363, 3364, 3365, 363, 364, 365] persons= [2368, 2369, 2370]
+--- sas= [] onedgd_slice363 crp= 1
+--- 'expires': 1167126898
+366 1 onedge_slice364 nodes= [3364, 3365, 3366, 364, 365, 366] persons= [2369, 2370, 2371]
+--- sas= [] onedge_slice364 crp= 1
+--- 'expires': 1167126899
+367 1 onedgf_slice365 nodes= [3365, 3366, 3367, 365, 366, 367] persons= [2370, 2371, 2372]
+--- sas= [] onedgf_slice365 crp= 1
+--- 'expires': 1167126899
+368 1 onedgg_slice366 nodes= [3366, 3367, 3368, 366, 367, 368] persons= [2371, 2372, 2373]
+--- sas= [] onedgg_slice366 crp= 1
+--- 'expires': 1167126899
+369 1 onedgh_slice367 nodes= [3367, 3368, 3369, 367, 368, 369] persons= [2372, 2373, 2374]
+--- sas= [] onedgh_slice367 crp= 1
+--- 'expires': 1167126899
+370 1 onedgi_slice368 nodes= [3368, 3369, 3370, 368, 369, 370] persons= [2373, 2374, 2375]
+--- sas= [] onedgi_slice368 crp= 1
+--- 'expires': 1167126900
+371 1 onedgj_slice369 nodes= [3369, 3370, 3371, 369, 370, 371] persons= [2376, 2374, 2375]
+--- sas= [] onedgj_slice369 crp= 1
+--- 'expires': 1167126900
+372 1 onedha_slice370 nodes= [3370, 3371, 3372, 370, 371, 372] persons= [2376, 2377, 2375]
+--- sas= [] onedha_slice370 crp= 1
+--- 'expires': 1167126900
+373 1 onedhb_slice371 nodes= [3371, 3372, 3373, 371, 372, 373] persons= [2376, 2377, 2378]
+--- sas= [] onedhb_slice371 crp= 1
+--- 'expires': 1167126900
+374 1 onedhc_slice372 nodes= [3372, 3373, 3374, 372, 373, 374] persons= [2377, 2378, 2379]
+--- sas= [] onedhc_slice372 crp= 1
+--- 'expires': 1167126901
+375 1 onedhd_slice373 nodes= [3373, 3374, 3375, 373, 374, 375] persons= [2378, 2379, 2380]
+--- sas= [] onedhd_slice373 crp= 1
+--- 'expires': 1167126901
+376 1 onedhe_slice374 nodes= [3374, 3375, 3376, 374, 375, 376] persons= [2379, 2380, 2381]
+--- sas= [] onedhe_slice374 crp= 1
+--- 'expires': 1167126901
+377 1 onedhf_slice375 nodes= [3375, 3376, 3377, 375, 376, 377] persons= [2380, 2381, 2382]
+--- sas= [] onedhf_slice375 crp= 1
+--- 'expires': 1167126901
+378 1 onedhg_slice376 nodes= [3376, 3377, 3378, 376, 377, 378] persons= [2381, 2382, 2383]
+--- sas= [] onedhg_slice376 crp= 1
+--- 'expires': 1167126902
+379 1 onedhh_slice377 nodes= [3377, 3378, 3379, 377, 378, 379] persons= [2384, 2382, 2383]
+--- sas= [] onedhh_slice377 crp= 1
+--- 'expires': 1167126903
+380 1 onedhi_slice378 nodes= [3378, 3379, 3380, 378, 379, 380] persons= [2384, 2385, 2383]
+--- sas= [] onedhi_slice378 crp= 1
+--- 'expires': 1167126904
+381 1 onedhj_slice379 nodes= [3379, 3380, 3381, 379, 380, 381] persons= [2384, 2385, 2386]
+--- sas= [] onedhj_slice379 crp= 1
+--- 'expires': 1167126905
+382 1 onedia_slice380 nodes= [3380, 3381, 3382, 380, 381, 382] persons= [2385, 2386, 2387]
+--- sas= [] onedia_slice380 crp= 1
+--- 'expires': 1167126906
+383 1 onedib_slice381 nodes= [3381, 3382, 3383, 381, 382, 383] persons= [2386, 2387, 2388]
+--- sas= [] onedib_slice381 crp= 1
+--- 'expires': 1167126907
+384 1 onedic_slice382 nodes= [384, 3382, 3383, 3384, 382, 383] persons= [2387, 2388, 2389]
+--- sas= [] onedic_slice382 crp= 1
+--- 'expires': 1167126908
+385 1 onedid_slice383 nodes= [384, 385, 3383, 3384, 3385, 383] persons= [2388, 2389, 2390]
+--- sas= [] onedid_slice383 crp= 1
+--- 'expires': 1167126909
+386 1 onedie_slice384 nodes= [384, 385, 386, 3384, 3385, 3386] persons= [2389, 2390, 2391]
+--- sas= [] onedie_slice384 crp= 1
+--- 'expires': 1167126910
+387 1 onedif_slice385 nodes= [385, 386, 387, 3385, 3386, 3387] persons= [2392, 2390, 2391]
+--- sas= [] onedif_slice385 crp= 1
+--- 'expires': 1167126911
+388 1 onedig_slice386 nodes= [386, 387, 388, 3386, 3387, 3388] persons= [2392, 2393, 2391]
+--- sas= [] onedig_slice386 crp= 1
+--- 'expires': 1167126912
+389 1 onedih_slice387 nodes= [387, 388, 389, 3387, 3388, 3389] persons= [2392, 2393, 2394]
+--- sas= [] onedih_slice387 crp= 1
+--- 'expires': 1167126913
+390 1 onedii_slice388 nodes= [388, 389, 390, 3388, 3389, 3390] persons= [2393, 2394, 2395]
+--- sas= [] onedii_slice388 crp= 1
+--- 'expires': 1167126914
+391 1 onedij_slice389 nodes= [389, 390, 391, 3389, 3390, 3391] persons= [2394, 2395, 2396]
+--- sas= [] onedij_slice389 crp= 1
+--- 'expires': 1167126915
+392 1 onedja_slice390 nodes= [3392, 390, 391, 392, 3390, 3391] persons= [2395, 2396, 2397]
+--- sas= [] onedja_slice390 crp= 1
+--- 'expires': 1167126916
+393 1 onedjb_slice391 nodes= [3392, 3393, 391, 392, 393, 3391] persons= [2396, 2397, 2398]
+--- sas= [] onedjb_slice391 crp= 1
+--- 'expires': 1167126917
+394 1 onedjc_slice392 nodes= [3392, 3393, 3394, 392, 393, 394] persons= [2397, 2398, 2399]
+--- sas= [] onedjc_slice392 crp= 1
+--- 'expires': 1167126918
+395 1 onedjd_slice393 nodes= [3393, 3394, 3395, 393, 394, 395] persons= [2400, 2398, 2399]
+--- sas= [] onedjd_slice393 crp= 1
+--- 'expires': 1167126919
+396 1 onedje_slice394 nodes= [3394, 3395, 3396, 394, 395, 396] persons= [2400, 2401, 2399]
+--- sas= [] onedje_slice394 crp= 1
+--- 'expires': 1167126920
+397 1 onedjf_slice395 nodes= [3395, 3396, 3397, 395, 396, 397] persons= [2400, 2401, 2402]
+--- sas= [] onedjf_slice395 crp= 1
+--- 'expires': 1167126921
+398 1 onedjg_slice396 nodes= [3396, 3397, 3398, 396, 397, 398] persons= [2401, 2402, 2403]
+--- sas= [] onedjg_slice396 crp= 1
+--- 'expires': 1167126921
+399 1 onedjh_slice397 nodes= [3397, 3398, 3399, 397, 398, 399] persons= [2402, 2403, 2404]
+--- sas= [] onedjh_slice397 crp= 1
+--- 'expires': 1167126921
+400 1 onedji_slice398 nodes= [3398, 3399, 3400, 398, 399, 400] persons= [2403, 2404, 2405]
+--- sas= [] onedji_slice398 crp= 1
+--- 'expires': 1167126922
+401 1 onedjj_slice399 nodes= [3399, 3400, 3401, 399, 400, 401] persons= [2404, 2405, 2406]
+--- sas= [] onedjj_slice399 crp= 1
+--- 'expires': 1167126922
+402 1 oneeaa_slice400 nodes= [3400, 3401, 3402, 400, 401, 402] persons= [2405, 2406, 2407]
+--- sas= [] oneeaa_slice400 crp= 1
+--- 'expires': 1167126922
+403 1 oneeab_slice401 nodes= [3401, 3402, 3403, 401, 402, 403] persons= [2408, 2406, 2407]
+--- sas= [] oneeab_slice401 crp= 1
+--- 'expires': 1167126922
+404 1 oneeac_slice402 nodes= [3402, 3403, 3404, 402, 403, 404] persons= [2408, 2409, 2407]
+--- sas= [] oneeac_slice402 crp= 1
+--- 'expires': 1167126923
+405 1 oneead_slice403 nodes= [3403, 3404, 3405, 403, 404, 405] persons= [2408, 2409, 2410]
+--- sas= [] oneead_slice403 crp= 1
+--- 'expires': 1167126923
+406 1 oneeae_slice404 nodes= [3404, 3405, 3406, 404, 405, 406] persons= [2409, 2410, 2411]
+--- sas= [] oneeae_slice404 crp= 1
+--- 'expires': 1167126923
+407 1 oneeaf_slice405 nodes= [3405, 3406, 3407, 405, 406, 407] persons= [2410, 2411, 2412]
+--- sas= [] oneeaf_slice405 crp= 1
+--- 'expires': 1167126923
+408 1 oneeag_slice406 nodes= [3406, 3407, 3408, 406, 407, 408] persons= [2411, 2412, 2413]
+--- sas= [] oneeag_slice406 crp= 1
+--- 'expires': 1167126924
+409 1 oneeah_slice407 nodes= [3407, 3408, 3409, 407, 408, 409] persons= [2412, 2413, 2414]
+--- sas= [] oneeah_slice407 crp= 1
+--- 'expires': 1167126924
+410 1 oneeai_slice408 nodes= [3408, 3409, 3410, 408, 409, 410] persons= [2413, 2414, 2415]
+--- sas= [] oneeai_slice408 crp= 1
+--- 'expires': 1167126924
+411 1 oneeaj_slice409 nodes= [3409, 3410, 3411, 409, 410, 411] persons= [2416, 2414, 2415]
+--- sas= [] oneeaj_slice409 crp= 1
+--- 'expires': 1167126924
+412 1 oneeba_slice410 nodes= [3410, 3411, 3412, 410, 411, 412] persons= [2416, 2417, 2415]
+--- sas= [] oneeba_slice410 crp= 1
+--- 'expires': 1167126925
+413 1 oneebb_slice411 nodes= [3411, 3412, 3413, 411, 412, 413] persons= [2416, 2417, 2418]
+--- sas= [] oneebb_slice411 crp= 1
+--- 'expires': 1167126925
+414 1 oneebc_slice412 nodes= [3412, 3413, 3414, 412, 413, 414] persons= [2417, 2418, 2419]
+--- sas= [] oneebc_slice412 crp= 1
+--- 'expires': 1167126925
+415 1 oneebd_slice413 nodes= [3413, 3414, 3415, 413, 414, 415] persons= [2418, 2419, 2420]
+--- sas= [] oneebd_slice413 crp= 1
+--- 'expires': 1167126925
+416 1 oneebe_slice414 nodes= [416, 3414, 3415, 3416, 414, 415] persons= [2419, 2420, 2421]
+--- sas= [] oneebe_slice414 crp= 1
+--- 'expires': 1167126926
+417 1 oneebf_slice415 nodes= [416, 417, 3415, 3416, 3417, 415] persons= [2420, 2421, 2422]
+--- sas= [] oneebf_slice415 crp= 1
+--- 'expires': 1167126926
+418 1 oneebg_slice416 nodes= [416, 417, 418, 3416, 3417, 3418] persons= [2421, 2422, 2423]
+--- sas= [] oneebg_slice416 crp= 1
+--- 'expires': 1167126926
+419 1 oneebh_slice417 nodes= [417, 418, 419, 3417, 3418, 3419] persons= [2424, 2422, 2423]
+--- sas= [] oneebh_slice417 crp= 1
+--- 'expires': 1167126926
+420 1 oneebi_slice418 nodes= [418, 419, 420, 3418, 3419, 3420] persons= [2424, 2425, 2423]
+--- sas= [] oneebi_slice418 crp= 1
+--- 'expires': 1167126927
+421 1 oneebj_slice419 nodes= [419, 420, 421, 3419, 3420, 3421] persons= [2424, 2425, 2426]
+--- sas= [] oneebj_slice419 crp= 1
+--- 'expires': 1167126927
+422 1 oneeca_slice420 nodes= [420, 421, 422, 3420, 3421, 3422] persons= [2425, 2426, 2427]
+--- sas= [] oneeca_slice420 crp= 1
+--- 'expires': 1167126927
+423 1 oneecb_slice421 nodes= [421, 422, 423, 3421, 3422, 3423] persons= [2426, 2427, 2428]
+--- sas= [] oneecb_slice421 crp= 1
+--- 'expires': 1167126927
+424 1 oneecc_slice422 nodes= [3424, 422, 423, 424, 3422, 3423] persons= [2427, 2428, 2429]
+--- sas= [] oneecc_slice422 crp= 1
+--- 'expires': 1167126928
+425 1 oneecd_slice423 nodes= [3424, 3425, 423, 424, 425, 3423] persons= [2428, 2429, 2430]
+--- sas= [] oneecd_slice423 crp= 1
+--- 'expires': 1167126928
+426 1 oneece_slice424 nodes= [3424, 3425, 3426, 424, 425, 426] persons= [2429, 2430, 2431]
+--- sas= [] oneece_slice424 crp= 1
+--- 'expires': 1167126928
+427 1 oneecf_slice425 nodes= [3425, 3426, 3427, 425, 426, 427] persons= [2432, 2430, 2431]
+--- sas= [] oneecf_slice425 crp= 1
+--- 'expires': 1167126928
+428 1 oneecg_slice426 nodes= [3426, 3427, 3428, 426, 427, 428] persons= [2432, 2433, 2431]
+--- sas= [] oneecg_slice426 crp= 1
+--- 'expires': 1167126929
+429 1 oneech_slice427 nodes= [3427, 3428, 3429, 427, 428, 429] persons= [2432, 2433, 2434]
+--- sas= [] oneech_slice427 crp= 1
+--- 'expires': 1167126929
+430 1 oneeci_slice428 nodes= [3428, 3429, 3430, 428, 429, 430] persons= [2433, 2434, 2435]
+--- sas= [] oneeci_slice428 crp= 1
+--- 'expires': 1167126929
+431 1 oneecj_slice429 nodes= [3429, 3430, 3431, 429, 430, 431] persons= [2434, 2435, 2436]
+--- sas= [] oneecj_slice429 crp= 1
+--- 'expires': 1167126929
+432 1 oneeda_slice430 nodes= [3430, 3431, 3432, 430, 431, 432] persons= [2435, 2436, 2437]
+--- sas= [] oneeda_slice430 crp= 1
+--- 'expires': 1167126930
+433 1 oneedb_slice431 nodes= [3431, 3432, 3433, 431, 432, 433] persons= [2436, 2437, 2438]
+--- sas= [] oneedb_slice431 crp= 1
+--- 'expires': 1167126930
+434 1 oneedc_slice432 nodes= [3432, 3433, 3434, 432, 433, 434] persons= [2437, 2438, 2439]
+--- sas= [] oneedc_slice432 crp= 1
+--- 'expires': 1167126930
+435 1 oneedd_slice433 nodes= [3433, 3434, 3435, 433, 434, 435] persons= [2440, 2438, 2439]
+--- sas= [] oneedd_slice433 crp= 1
+--- 'expires': 1167126930
+436 1 oneede_slice434 nodes= [3434, 3435, 3436, 434, 435, 436] persons= [2440, 2441, 2439]
+--- sas= [] oneede_slice434 crp= 1
+--- 'expires': 1167126931
+437 1 oneedf_slice435 nodes= [3435, 3436, 3437, 435, 436, 437] persons= [2440, 2441, 2442]
+--- sas= [] oneedf_slice435 crp= 1
+--- 'expires': 1167126931
+438 1 oneedg_slice436 nodes= [3436, 3437, 3438, 436, 437, 438] persons= [2441, 2442, 2443]
+--- sas= [] oneedg_slice436 crp= 1
+--- 'expires': 1167126931
+439 1 oneedh_slice437 nodes= [3437, 3438, 3439, 437, 438, 439] persons= [2442, 2443, 2444]
+--- sas= [] oneedh_slice437 crp= 1
+--- 'expires': 1167126931
+440 1 oneedi_slice438 nodes= [3438, 3439, 3440, 438, 439, 440] persons= [2443, 2444, 2445]
+--- sas= [] oneedi_slice438 crp= 1
+--- 'expires': 1167126932
+441 1 oneedj_slice439 nodes= [3439, 3440, 3441, 439, 440, 441] persons= [2444, 2445, 2446]
+--- sas= [] oneedj_slice439 crp= 1
+--- 'expires': 1167126932
+442 1 oneeea_slice440 nodes= [3440, 3441, 3442, 440, 441, 442] persons= [2445, 2446, 2447]
+--- sas= [] oneeea_slice440 crp= 1
+--- 'expires': 1167126932
+443 1 oneeeb_slice441 nodes= [3441, 3442, 3443, 441, 442, 443] persons= [2448, 2446, 2447]
+--- sas= [] oneeeb_slice441 crp= 1
+--- 'expires': 1167126932
+444 1 oneeec_slice442 nodes= [3442, 3443, 3444, 442, 443, 444] persons= [2448, 2449, 2447]
+--- sas= [] oneeec_slice442 crp= 1
+--- 'expires': 1167126933
+445 1 oneeed_slice443 nodes= [3443, 3444, 3445, 443, 444, 445] persons= [2448, 2449, 2450]
+--- sas= [] oneeed_slice443 crp= 1
+--- 'expires': 1167126933
+446 1 oneeee_slice444 nodes= [3444, 3445, 3446, 444, 445, 446] persons= [2449, 2450, 2451]
+--- sas= [] oneeee_slice444 crp= 1
+--- 'expires': 1167126933
+447 1 oneeef_slice445 nodes= [3445, 3446, 3447, 445, 446, 447] persons= [2450, 2451, 2452]
+--- sas= [] oneeef_slice445 crp= 1
+--- 'expires': 1167126933
+448 1 oneeeg_slice446 nodes= [448, 3446, 3447, 3448, 446, 447] persons= [2451, 2452, 2453]
+--- sas= [] oneeeg_slice446 crp= 1
+--- 'expires': 1167126934
+449 1 oneeeh_slice447 nodes= [448, 449, 3447, 3448, 3449, 447] persons= [2452, 2453, 2454]
+--- sas= [] oneeeh_slice447 crp= 1
+--- 'expires': 1167126934
+450 1 oneeei_slice448 nodes= [448, 449, 450, 3448, 3449, 3450] persons= [2453, 2454, 2455]
+--- sas= [] oneeei_slice448 crp= 1
+--- 'expires': 1167126934
+451 1 oneeej_slice449 nodes= [449, 450, 451, 3449, 3450, 3451] persons= [2456, 2454, 2455]
+--- sas= [] oneeej_slice449 crp= 1
+--- 'expires': 1167126934
+452 1 oneefa_slice450 nodes= [450, 451, 452, 3450, 3451, 3452] persons= [2456, 2457, 2455]
+--- sas= [] oneefa_slice450 crp= 1
+--- 'expires': 1167126935
+453 1 oneefb_slice451 nodes= [451, 452, 453, 3451, 3452, 3453] persons= [2456, 2457, 2458]
+--- sas= [] oneefb_slice451 crp= 1
+--- 'expires': 1167126935
+454 1 oneefc_slice452 nodes= [452, 453, 454, 3452, 3453, 3454] persons= [2457, 2458, 2459]
+--- sas= [] oneefc_slice452 crp= 1
+--- 'expires': 1167126935
+455 1 oneefd_slice453 nodes= [453, 454, 455, 3453, 3454, 3455] persons= [2458, 2459, 2460]
+--- sas= [] oneefd_slice453 crp= 1
+--- 'expires': 1167126935
+456 1 oneefe_slice454 nodes= [3456, 454, 455, 456, 3454, 3455] persons= [2459, 2460, 2461]
+--- sas= [] oneefe_slice454 crp= 1
+--- 'expires': 1167126936
+457 1 oneeff_slice455 nodes= [3456, 3457, 455, 456, 457, 3455] persons= [2460, 2461, 2462]
+--- sas= [] oneeff_slice455 crp= 1
+--- 'expires': 1167126936
+458 1 oneefg_slice456 nodes= [3456, 3457, 3458, 456, 457, 458] persons= [2461, 2462, 2463]
+--- sas= [] oneefg_slice456 crp= 1
+--- 'expires': 1167126936
+459 1 oneefh_slice457 nodes= [3457, 3458, 3459, 457, 458, 459] persons= [2464, 2462, 2463]
+--- sas= [] oneefh_slice457 crp= 1
+--- 'expires': 1167126936
+460 1 oneefi_slice458 nodes= [3458, 3459, 3460, 458, 459, 460] persons= [2464, 2465, 2463]
+--- sas= [] oneefi_slice458 crp= 1
+--- 'expires': 1167126937
+461 1 oneefj_slice459 nodes= [3459, 3460, 3461, 459, 460, 461] persons= [2464, 2465, 2466]
+--- sas= [] oneefj_slice459 crp= 1
+--- 'expires': 1167126937
+462 1 oneega_slice460 nodes= [3460, 3461, 3462, 460, 461, 462] persons= [2465, 2466, 2467]
+--- sas= [] oneega_slice460 crp= 1
+--- 'expires': 1167126937
+463 1 oneegb_slice461 nodes= [3461, 3462, 3463, 461, 462, 463] persons= [2466, 2467, 2468]
+--- sas= [] oneegb_slice461 crp= 1
+--- 'expires': 1167126938
+464 1 oneegc_slice462 nodes= [3462, 3463, 3464, 462, 463, 464] persons= [2467, 2468, 2469]
+--- sas= [] oneegc_slice462 crp= 1
+--- 'expires': 1167126938
+465 1 oneegd_slice463 nodes= [3463, 3464, 3465, 463, 464, 465] persons= [2468, 2469, 2470]
+--- sas= [] oneegd_slice463 crp= 1
+--- 'expires': 1167126938
+466 1 oneege_slice464 nodes= [3464, 3465, 3466, 464, 465, 466] persons= [2469, 2470, 2471]
+--- sas= [] oneege_slice464 crp= 1
+--- 'expires': 1167126938
+467 1 oneegf_slice465 nodes= [3465, 3466, 3467, 465, 466, 467] persons= [2472, 2470, 2471]
+--- sas= [] oneegf_slice465 crp= 1
+--- 'expires': 1167126939
+468 1 oneegg_slice466 nodes= [3466, 3467, 3468, 466, 467, 468] persons= [2472, 2473, 2471]
+--- sas= [] oneegg_slice466 crp= 1
+--- 'expires': 1167126939
+469 1 oneegh_slice467 nodes= [3467, 3468, 3469, 467, 468, 469] persons= [2472, 2473, 2474]
+--- sas= [] oneegh_slice467 crp= 1
+--- 'expires': 1167126939
+470 1 oneegi_slice468 nodes= [3468, 3469, 3470, 468, 469, 470] persons= [2473, 2474, 2475]
+--- sas= [] oneegi_slice468 crp= 1
+--- 'expires': 1167126939
+471 1 oneegj_slice469 nodes= [3469, 3470, 3471, 469, 470, 471] persons= [2474, 2475, 2476]
+--- sas= [] oneegj_slice469 crp= 1
+--- 'expires': 1167126940
+472 1 oneeha_slice470 nodes= [3470, 3471, 3472, 470, 471, 472] persons= [2475, 2476, 2477]
+--- sas= [] oneeha_slice470 crp= 1
+--- 'expires': 1167126940
+473 1 oneehb_slice471 nodes= [3471, 3472, 3473, 471, 472, 473] persons= [2476, 2477, 2478]
+--- sas= [] oneehb_slice471 crp= 1
+--- 'expires': 1167126940
+474 1 oneehc_slice472 nodes= [3472, 3473, 3474, 472, 473, 474] persons= [2477, 2478, 2479]
+--- sas= [] oneehc_slice472 crp= 1
+--- 'expires': 1167126940
+475 1 oneehd_slice473 nodes= [3473, 3474, 3475, 473, 474, 475] persons= [2480, 2478, 2479]
+--- sas= [] oneehd_slice473 crp= 1
+--- 'expires': 1167126941
+476 1 oneehe_slice474 nodes= [3474, 3475, 3476, 474, 475, 476] persons= [2480, 2481, 2479]
+--- sas= [] oneehe_slice474 crp= 1
+--- 'expires': 1167126941
+477 1 oneehf_slice475 nodes= [3475, 3476, 3477, 475, 476, 477] persons= [2480, 2481, 2482]
+--- sas= [] oneehf_slice475 crp= 1
+--- 'expires': 1167126941
+478 1 oneehg_slice476 nodes= [3476, 3477, 3478, 476, 477, 478] persons= [2481, 2482, 2483]
+--- sas= [] oneehg_slice476 crp= 1
+--- 'expires': 1167126941
+479 1 oneehh_slice477 nodes= [3477, 3478, 3479, 477, 478, 479] persons= [2482, 2483, 2484]
+--- sas= [] oneehh_slice477 crp= 1
+--- 'expires': 1167126942
+480 1 oneehi_slice478 nodes= [480, 3478, 3479, 3480, 478, 479] persons= [2483, 2484, 2485]
+--- sas= [] oneehi_slice478 crp= 1
+--- 'expires': 1167126942
+481 1 oneehj_slice479 nodes= [480, 481, 3479, 3480, 3481, 479] persons= [2484, 2485, 2486]
+--- sas= [] oneehj_slice479 crp= 1
+--- 'expires': 1167126942
+482 1 oneeia_slice480 nodes= [480, 481, 482, 3480, 3481, 3482] persons= [2485, 2486, 2487]
+--- sas= [] oneeia_slice480 crp= 1
+--- 'expires': 1167126942
+483 1 oneeib_slice481 nodes= [481, 482, 483, 3481, 3482, 3483] persons= [2488, 2486, 2487]
+--- sas= [] oneeib_slice481 crp= 1
+--- 'expires': 1167126943
+484 1 oneeic_slice482 nodes= [482, 483, 484, 3482, 3483, 3484] persons= [2488, 2489, 2487]
+--- sas= [] oneeic_slice482 crp= 1
+--- 'expires': 1167126943
+485 1 oneeid_slice483 nodes= [483, 484, 485, 3483, 3484, 3485] persons= [2488, 2489, 2490]
+--- sas= [] oneeid_slice483 crp= 1
+--- 'expires': 1167126943
+486 1 oneeie_slice484 nodes= [484, 485, 486, 3484, 3485, 3486] persons= [2489, 2490, 2491]
+--- sas= [] oneeie_slice484 crp= 1
+--- 'expires': 1167126943
+487 1 oneeif_slice485 nodes= [485, 486, 487, 3485, 3486, 3487] persons= [2490, 2491, 2492]
+--- sas= [] oneeif_slice485 crp= 1
+--- 'expires': 1167126944
+488 1 oneeig_slice486 nodes= [3488, 486, 487, 488, 3486, 3487] persons= [2491, 2492, 2493]
+--- sas= [] oneeig_slice486 crp= 1
+--- 'expires': 1167126944
+489 1 oneeih_slice487 nodes= [3488, 3489, 487, 488, 489, 3487] persons= [2492, 2493, 2494]
+--- sas= [] oneeih_slice487 crp= 1
+--- 'expires': 1167126944
+490 1 oneeii_slice488 nodes= [3488, 3489, 3490, 488, 489, 490] persons= [2493, 2494, 2495]
+--- sas= [] oneeii_slice488 crp= 1
+--- 'expires': 1167126945
+491 1 oneeij_slice489 nodes= [3489, 3490, 3491, 489, 490, 491] persons= [2496, 2494, 2495]
+--- sas= [] oneeij_slice489 crp= 1
+--- 'expires': 1167126945
+492 1 oneeja_slice490 nodes= [3490, 3491, 3492, 490, 491, 492] persons= [2496, 2497, 2495]
+--- sas= [] oneeja_slice490 crp= 1
+--- 'expires': 1167126945
+493 1 oneejb_slice491 nodes= [3491, 3492, 3493, 491, 492, 493] persons= [2496, 2497, 2498]
+--- sas= [] oneejb_slice491 crp= 1
+--- 'expires': 1167126945
+494 1 oneejc_slice492 nodes= [3492, 3493, 3494, 492, 493, 494] persons= [2497, 2498, 2499]
+--- sas= [] oneejc_slice492 crp= 1
+--- 'expires': 1167126946
+495 1 oneejd_slice493 nodes= [3493, 3494, 3495, 493, 494, 495] persons= [2498, 2499, 2500]
+--- sas= [] oneejd_slice493 crp= 1
+--- 'expires': 1167126946
+496 1 oneeje_slice494 nodes= [3494, 3495, 3496, 494, 495, 496] persons= [2499, 2500, 2501]
+--- sas= [] oneeje_slice494 crp= 1
+--- 'expires': 1167126946
+497 1 oneejf_slice495 nodes= [3495, 3496, 3497, 495, 496, 497] persons= [2500, 2501, 2502]
+--- sas= [] oneejf_slice495 crp= 1
+--- 'expires': 1167126946
+498 1 oneejg_slice496 nodes= [3496, 3497, 3498, 496, 497, 498] persons= [2501, 2502, 2503]
+--- sas= [] oneejg_slice496 crp= 1
+--- 'expires': 1167126947
+499 1 oneejh_slice497 nodes= [3497, 3498, 3499, 497, 498, 499] persons= [2504, 2502, 2503]
+--- sas= [] oneejh_slice497 crp= 1
+--- 'expires': 1167126947
+500 1 oneeji_slice498 nodes= [3498, 3499, 3500, 498, 499, 500] persons= [2504, 2505, 2503]
+--- sas= [] oneeji_slice498 crp= 1
+--- 'expires': 1167126947
+501 1 oneejj_slice499 nodes= [3499, 3500, 3501, 499, 500, 501] persons= [2504, 2505, 2506]
+--- sas= [] oneejj_slice499 crp= 1
+--- 'expires': 1167126947
+502 1 onefaa_slice500 nodes= [3500, 3501, 3502, 500, 501, 502] persons= [2505, 2506, 2507]
+--- sas= [] onefaa_slice500 crp= 1
+--- 'expires': 1167126948
+503 1 onefab_slice501 nodes= [3501, 3502, 3503, 501, 502, 503] persons= [2506, 2507, 2508]
+--- sas= [] onefab_slice501 crp= 1
+--- 'expires': 1167126948
+504 1 onefac_slice502 nodes= [3502, 3503, 3504, 502, 503, 504] persons= [2507, 2508, 2509]
+--- sas= [] onefac_slice502 crp= 1
+--- 'expires': 1167126948
+505 1 onefad_slice503 nodes= [3503, 3504, 3505, 503, 504, 505] persons= [2508, 2509, 2510]
+--- sas= [] onefad_slice503 crp= 1
+--- 'expires': 1167126948
+506 1 onefae_slice504 nodes= [3504, 3505, 3506, 504, 505, 506] persons= [2509, 2510, 2511]
+--- sas= [] onefae_slice504 crp= 1
+--- 'expires': 1167126949
+507 1 onefaf_slice505 nodes= [3505, 3506, 3507, 505, 506, 507] persons= [2512, 2510, 2511]
+--- sas= [] onefaf_slice505 crp= 1
+--- 'expires': 1167126949
+508 1 onefag_slice506 nodes= [3506, 3507, 3508, 506, 507, 508] persons= [2512, 2513, 2511]
+--- sas= [] onefag_slice506 crp= 1
+--- 'expires': 1167126949
+509 1 onefah_slice507 nodes= [3507, 3508, 3509, 507, 508, 509] persons= [2512, 2513, 2514]
+--- sas= [] onefah_slice507 crp= 1
+--- 'expires': 1167126950
+510 1 onefai_slice508 nodes= [3508, 3509, 3510, 508, 509, 510] persons= [2513, 2514, 2515]
+--- sas= [] onefai_slice508 crp= 1
+--- 'expires': 1167126950
+511 1 onefaj_slice509 nodes= [3509, 3510, 3511, 509, 510, 511] persons= [2514, 2515, 2516]
+--- sas= [] onefaj_slice509 crp= 1
+--- 'expires': 1167126950
+512 1 onefba_slice510 nodes= [512, 3510, 3511, 3512, 510, 511] persons= [2515, 2516, 2517]
+--- sas= [] onefba_slice510 crp= 1
+--- 'expires': 1167126950
+513 1 onefbb_slice511 nodes= [512, 513, 3511, 3512, 3513, 511] persons= [2516, 2517, 2518]
+--- sas= [] onefbb_slice511 crp= 1
+--- 'expires': 1167126951
+514 1 onefbc_slice512 nodes= [512, 513, 514, 3512, 3513, 3514] persons= [2517, 2518, 2519]
+--- sas= [] onefbc_slice512 crp= 1
+--- 'expires': 1167126951
+515 1 onefbd_slice513 nodes= [513, 514, 515, 3513, 3514, 3515] persons= [2520, 2518, 2519]
+--- sas= [] onefbd_slice513 crp= 1
+--- 'expires': 1167126951
+516 1 onefbe_slice514 nodes= [514, 515, 516, 3514, 3515, 3516] persons= [2520, 2521, 2519]
+--- sas= [] onefbe_slice514 crp= 1
+--- 'expires': 1167126951
+517 1 onefbf_slice515 nodes= [515, 516, 517, 3515, 3516, 3517] persons= [2520, 2521, 2522]
+--- sas= [] onefbf_slice515 crp= 1
+--- 'expires': 1167126952
+518 1 onefbg_slice516 nodes= [516, 517, 518, 3516, 3517, 3518] persons= [2521, 2522, 2523]
+--- sas= [] onefbg_slice516 crp= 1
+--- 'expires': 1167126952
+519 1 onefbh_slice517 nodes= [517, 518, 519, 3517, 3518, 3519] persons= [2522, 2523, 2524]
+--- sas= [] onefbh_slice517 crp= 1
+--- 'expires': 1167126952
+520 1 onefbi_slice518 nodes= [3520, 518, 519, 520, 3518, 3519] persons= [2523, 2524, 2525]
+--- sas= [] onefbi_slice518 crp= 1
+--- 'expires': 1167126952
+521 1 onefbj_slice519 nodes= [3520, 3521, 519, 520, 521, 3519] persons= [2524, 2525, 2526]
+--- sas= [] onefbj_slice519 crp= 1
+--- 'expires': 1167126953
+522 1 onefca_slice520 nodes= [3520, 3521, 3522, 520, 521, 522] persons= [2525, 2526, 2527]
+--- sas= [] onefca_slice520 crp= 1
+--- 'expires': 1167126953
+523 1 onefcb_slice521 nodes= [3521, 3522, 3523, 521, 522, 523] persons= [2528, 2526, 2527]
+--- sas= [] onefcb_slice521 crp= 1
+--- 'expires': 1167126953
+524 1 onefcc_slice522 nodes= [3522, 3523, 3524, 522, 523, 524] persons= [2528, 2529, 2527]
+--- sas= [] onefcc_slice522 crp= 1
+--- 'expires': 1167126954
+525 1 onefcd_slice523 nodes= [3523, 3524, 3525, 523, 524, 525] persons= [2528, 2529, 2530]
+--- sas= [] onefcd_slice523 crp= 1
+--- 'expires': 1167126954
+526 1 onefce_slice524 nodes= [3524, 3525, 3526, 524, 525, 526] persons= [2529, 2530, 2531]
+--- sas= [] onefce_slice524 crp= 1
+--- 'expires': 1167126954
+527 1 onefcf_slice525 nodes= [3525, 3526, 3527, 525, 526, 527] persons= [2530, 2531, 2532]
+--- sas= [] onefcf_slice525 crp= 1
+--- 'expires': 1167126954
+528 1 onefcg_slice526 nodes= [3526, 3527, 3528, 526, 527, 528] persons= [2531, 2532, 2533]
+--- sas= [] onefcg_slice526 crp= 1
+--- 'expires': 1167126955
+529 1 onefch_slice527 nodes= [3527, 3528, 3529, 527, 528, 529] persons= [2532, 2533, 2534]
+--- sas= [] onefch_slice527 crp= 1
+--- 'expires': 1167126955
+530 1 onefci_slice528 nodes= [3528, 3529, 3530, 528, 529, 530] persons= [2533, 2534, 2535]
+--- sas= [] onefci_slice528 crp= 1
+--- 'expires': 1167126955
+531 1 onefcj_slice529 nodes= [3529, 3530, 3531, 529, 530, 531] persons= [2536, 2534, 2535]
+--- sas= [] onefcj_slice529 crp= 1
+--- 'expires': 1167126955
+532 1 onefda_slice530 nodes= [3530, 3531, 3532, 530, 531, 532] persons= [2536, 2537, 2535]
+--- sas= [] onefda_slice530 crp= 1
+--- 'expires': 1167126956
+533 1 onefdb_slice531 nodes= [3531, 3532, 3533, 531, 532, 533] persons= [2536, 2537, 2538]
+--- sas= [] onefdb_slice531 crp= 1
+--- 'expires': 1167126956
+534 1 onefdc_slice532 nodes= [3532, 3533, 3534, 532, 533, 534] persons= [2537, 2538, 2539]
+--- sas= [] onefdc_slice532 crp= 1
+--- 'expires': 1167126956
+535 1 onefdd_slice533 nodes= [3533, 3534, 3535, 533, 534, 535] persons= [2538, 2539, 2540]
+--- sas= [] onefdd_slice533 crp= 1
+--- 'expires': 1167126956
+536 1 onefde_slice534 nodes= [3534, 3535, 3536, 534, 535, 536] persons= [2539, 2540, 2541]
+--- sas= [] onefde_slice534 crp= 1
+--- 'expires': 1167126957
+537 1 onefdf_slice535 nodes= [3535, 3536, 3537, 535, 536, 537] persons= [2540, 2541, 2542]
+--- sas= [] onefdf_slice535 crp= 1
+--- 'expires': 1167126957
+538 1 onefdg_slice536 nodes= [3536, 3537, 3538, 536, 537, 538] persons= [2541, 2542, 2543]
+--- sas= [] onefdg_slice536 crp= 1
+--- 'expires': 1167126957
+539 1 onefdh_slice537 nodes= [3537, 3538, 3539, 537, 538, 539] persons= [2544, 2542, 2543]
+--- sas= [] onefdh_slice537 crp= 1
+--- 'expires': 1167126958
+540 1 onefdi_slice538 nodes= [3538, 3539, 3540, 538, 539, 540] persons= [2544, 2545, 2543]
+--- sas= [] onefdi_slice538 crp= 1
+--- 'expires': 1167126958
+541 1 onefdj_slice539 nodes= [3539, 3540, 3541, 539, 540, 541] persons= [2544, 2545, 2546]
+--- sas= [] onefdj_slice539 crp= 1
+--- 'expires': 1167126958
+542 1 onefea_slice540 nodes= [3540, 3541, 3542, 540, 541, 542] persons= [2545, 2546, 2547]
+--- sas= [] onefea_slice540 crp= 1
+--- 'expires': 1167126958
+543 1 onefeb_slice541 nodes= [3541, 3542, 3543, 541, 542, 543] persons= [2546, 2547, 2548]
+--- sas= [] onefeb_slice541 crp= 1
+--- 'expires': 1167126959
+544 1 onefec_slice542 nodes= [544, 3542, 3543, 3544, 542, 543] persons= [2547, 2548, 2549]
+--- sas= [] onefec_slice542 crp= 1
+--- 'expires': 1167126959
+545 1 onefed_slice543 nodes= [544, 545, 3543, 3544, 3545, 543] persons= [2548, 2549, 2550]
+--- sas= [] onefed_slice543 crp= 1
+--- 'expires': 1167126959
+546 1 onefee_slice544 nodes= [544, 545, 546, 3544, 3545, 3546] persons= [2549, 2550, 2551]
+--- sas= [] onefee_slice544 crp= 1
+--- 'expires': 1167126959
+547 1 onefef_slice545 nodes= [545, 546, 547, 3545, 3546, 3547] persons= [2552, 2550, 2551]
+--- sas= [] onefef_slice545 crp= 1
+--- 'expires': 1167126960
+548 1 onefeg_slice546 nodes= [546, 547, 548, 3546, 3547, 3548] persons= [2552, 2553, 2551]
+--- sas= [] onefeg_slice546 crp= 1
+--- 'expires': 1167126960
+549 1 onefeh_slice547 nodes= [547, 548, 549, 3547, 3548, 3549] persons= [2552, 2553, 2554]
+--- sas= [] onefeh_slice547 crp= 1
+--- 'expires': 1167126960
+550 1 onefei_slice548 nodes= [548, 549, 550, 3548, 3549, 3550] persons= [2553, 2554, 2555]
+--- sas= [] onefei_slice548 crp= 1
+--- 'expires': 1167126961
+551 1 onefej_slice549 nodes= [549, 550, 551, 3549, 3550, 3551] persons= [2554, 2555, 2556]
+--- sas= [] onefej_slice549 crp= 1
+--- 'expires': 1167126961
+552 1 oneffa_slice550 nodes= [3552, 550, 551, 552, 3550, 3551] persons= [2555, 2556, 2557]
+--- sas= [] oneffa_slice550 crp= 1
+--- 'expires': 1167126961
+553 1 oneffb_slice551 nodes= [3552, 3553, 551, 552, 553, 3551] persons= [2556, 2557, 2558]
+--- sas= [] oneffb_slice551 crp= 1
+--- 'expires': 1167126961
+554 1 oneffc_slice552 nodes= [3552, 3553, 3554, 552, 553, 554] persons= [2557, 2558, 2559]
+--- sas= [] oneffc_slice552 crp= 1
+--- 'expires': 1167126962
+555 1 oneffd_slice553 nodes= [3553, 3554, 3555, 553, 554, 555] persons= [2560, 2558, 2559]
+--- sas= [] oneffd_slice553 crp= 1
+--- 'expires': 1167126962
+556 1 oneffe_slice554 nodes= [3554, 3555, 3556, 554, 555, 556] persons= [2560, 2561, 2559]
+--- sas= [] oneffe_slice554 crp= 1
+--- 'expires': 1167126962
+557 1 onefff_slice555 nodes= [3555, 3556, 3557, 555, 556, 557] persons= [2560, 2561, 2562]
+--- sas= [] onefff_slice555 crp= 1
+--- 'expires': 1167126962
+558 1 oneffg_slice556 nodes= [3556, 3557, 3558, 556, 557, 558] persons= [2561, 2562, 2563]
+--- sas= [] oneffg_slice556 crp= 1
+--- 'expires': 1167126963
+559 1 oneffh_slice557 nodes= [3557, 3558, 3559, 557, 558, 559] persons= [2562, 2563, 2564]
+--- sas= [] oneffh_slice557 crp= 1
+--- 'expires': 1167126963
+560 1 oneffi_slice558 nodes= [3558, 3559, 3560, 558, 559, 560] persons= [2563, 2564, 2565]
+--- sas= [] oneffi_slice558 crp= 1
+--- 'expires': 1167126963
+561 1 oneffj_slice559 nodes= [3559, 3560, 3561, 559, 560, 561] persons= [2564, 2565, 2566]
+--- sas= [] oneffj_slice559 crp= 1
+--- 'expires': 1167126963
+562 1 onefga_slice560 nodes= [3560, 3561, 3562, 560, 561, 562] persons= [2565, 2566, 2567]
+--- sas= [] onefga_slice560 crp= 1
+--- 'expires': 1167126964
+563 1 onefgb_slice561 nodes= [3561, 3562, 3563, 561, 562, 563] persons= [2568, 2566, 2567]
+--- sas= [] onefgb_slice561 crp= 1
+--- 'expires': 1167126964
+564 1 onefgc_slice562 nodes= [3562, 3563, 3564, 562, 563, 564] persons= [2568, 2569, 2567]
+--- sas= [] onefgc_slice562 crp= 1
+--- 'expires': 1167126964
+565 1 onefgd_slice563 nodes= [3563, 3564, 3565, 563, 564, 565] persons= [2568, 2569, 2570]
+--- sas= [] onefgd_slice563 crp= 1
+--- 'expires': 1167126965
+566 1 onefge_slice564 nodes= [3564, 3565, 3566, 564, 565, 566] persons= [2569, 2570, 2571]
+--- sas= [] onefge_slice564 crp= 1
+--- 'expires': 1167126965
+567 1 onefgf_slice565 nodes= [3565, 3566, 3567, 565, 566, 567] persons= [2570, 2571, 2572]
+--- sas= [] onefgf_slice565 crp= 1
+--- 'expires': 1167126965
+568 1 onefgg_slice566 nodes= [3566, 3567, 3568, 566, 567, 568] persons= [2571, 2572, 2573]
+--- sas= [] onefgg_slice566 crp= 1
+--- 'expires': 1167126965
+569 1 onefgh_slice567 nodes= [3567, 3568, 3569, 567, 568, 569] persons= [2572, 2573, 2574]
+--- sas= [] onefgh_slice567 crp= 1
+--- 'expires': 1167126966
+570 1 onefgi_slice568 nodes= [3568, 3569, 3570, 568, 569, 570] persons= [2573, 2574, 2575]
+--- sas= [] onefgi_slice568 crp= 1
+--- 'expires': 1167126966
+571 1 onefgj_slice569 nodes= [3569, 3570, 3571, 569, 570, 571] persons= [2576, 2574, 2575]
+--- sas= [] onefgj_slice569 crp= 1
+--- 'expires': 1167126966
+572 1 onefha_slice570 nodes= [3570, 3571, 3572, 570, 571, 572] persons= [2576, 2577, 2575]
+--- sas= [] onefha_slice570 crp= 1
+--- 'expires': 1167126967
+573 1 onefhb_slice571 nodes= [3571, 3572, 3573, 571, 572, 573] persons= [2576, 2577, 2578]
+--- sas= [] onefhb_slice571 crp= 1
+--- 'expires': 1167126967
+574 1 onefhc_slice572 nodes= [3572, 3573, 3574, 572, 573, 574] persons= [2577, 2578, 2579]
+--- sas= [] onefhc_slice572 crp= 1
+--- 'expires': 1167126967
+575 1 onefhd_slice573 nodes= [3573, 3574, 3575, 573, 574, 575] persons= [2578, 2579, 2580]
+--- sas= [] onefhd_slice573 crp= 1
+--- 'expires': 1167126967
+576 1 onefhe_slice574 nodes= [576, 3574, 3575, 3576, 574, 575] persons= [2579, 2580, 2581]
+--- sas= [] onefhe_slice574 crp= 1
+--- 'expires': 1167126968
+577 1 onefhf_slice575 nodes= [576, 577, 3575, 3576, 3577, 575] persons= [2580, 2581, 2582]
+--- sas= [] onefhf_slice575 crp= 1
+--- 'expires': 1167126968
+578 1 onefhg_slice576 nodes= [576, 577, 578, 3576, 3577, 3578] persons= [2581, 2582, 2583]
+--- sas= [] onefhg_slice576 crp= 1
+--- 'expires': 1167126968
+579 1 onefhh_slice577 nodes= [577, 578, 579, 3577, 3578, 3579] persons= [2584, 2582, 2583]
+--- sas= [] onefhh_slice577 crp= 1
+--- 'expires': 1167126968
+580 1 onefhi_slice578 nodes= [578, 579, 580, 3578, 3579, 3580] persons= [2584, 2585, 2583]
+--- sas= [] onefhi_slice578 crp= 1
+--- 'expires': 1167126969
+581 1 onefhj_slice579 nodes= [579, 580, 581, 3579, 3580, 3581] persons= [2584, 2585, 2586]
+--- sas= [] onefhj_slice579 crp= 1
+--- 'expires': 1167126969
+582 1 onefia_slice580 nodes= [580, 581, 582, 3580, 3581, 3582] persons= [2585, 2586, 2587]
+--- sas= [] onefia_slice580 crp= 1
+--- 'expires': 1167126969
+583 1 onefib_slice581 nodes= [581, 582, 583, 3581, 3582, 3583] persons= [2586, 2587, 2588]
+--- sas= [] onefib_slice581 crp= 1
+--- 'expires': 1167126970
+584 1 onefic_slice582 nodes= [3584, 582, 583, 584, 3582, 3583] persons= [2587, 2588, 2589]
+--- sas= [] onefic_slice582 crp= 1
+--- 'expires': 1167126970
+585 1 onefid_slice583 nodes= [3584, 3585, 583, 584, 585, 3583] persons= [2588, 2589, 2590]
+--- sas= [] onefid_slice583 crp= 1
+--- 'expires': 1167126970
+586 1 onefie_slice584 nodes= [3584, 3585, 3586, 584, 585, 586] persons= [2589, 2590, 2591]
+--- sas= [] onefie_slice584 crp= 1
+--- 'expires': 1167126970
+587 1 onefif_slice585 nodes= [3585, 3586, 3587, 585, 586, 587] persons= [2592, 2590, 2591]
+--- sas= [] onefif_slice585 crp= 1
+--- 'expires': 1167126971
+588 1 onefig_slice586 nodes= [3586, 3587, 3588, 586, 587, 588] persons= [2592, 2593, 2591]
+--- sas= [] onefig_slice586 crp= 1
+--- 'expires': 1167126971
+589 1 onefih_slice587 nodes= [3587, 3588, 3589, 587, 588, 589] persons= [2592, 2593, 2594]
+--- sas= [] onefih_slice587 crp= 1
+--- 'expires': 1167126971
+590 1 onefii_slice588 nodes= [3588, 3589, 3590, 588, 589, 590] persons= [2593, 2594, 2595]
+--- sas= [] onefii_slice588 crp= 1
+--- 'expires': 1167126971
+591 1 onefij_slice589 nodes= [3589, 3590, 3591, 589, 590, 591] persons= [2594, 2595, 2596]
+--- sas= [] onefij_slice589 crp= 1
+--- 'expires': 1167126972
+592 1 onefja_slice590 nodes= [3590, 3591, 3592, 590, 591, 592] persons= [2595, 2596, 2597]
+--- sas= [] onefja_slice590 crp= 1
+--- 'expires': 1167126972
+593 1 onefjb_slice591 nodes= [3591, 3592, 3593, 591, 592, 593] persons= [2596, 2597, 2598]
+--- sas= [] onefjb_slice591 crp= 1
+--- 'expires': 1167126972
+594 1 onefjc_slice592 nodes= [3592, 3593, 3594, 592, 593, 594] persons= [2597, 2598, 2599]
+--- sas= [] onefjc_slice592 crp= 1
+--- 'expires': 1167126973
+595 1 onefjd_slice593 nodes= [3593, 3594, 3595, 593, 594, 595] persons= [2600, 2598, 2599]
+--- sas= [] onefjd_slice593 crp= 1
+--- 'expires': 1167126973
+596 1 onefje_slice594 nodes= [3594, 3595, 3596, 594, 595, 596] persons= [2600, 2601, 2599]
+--- sas= [] onefje_slice594 crp= 1
+--- 'expires': 1167126973
+597 1 onefjf_slice595 nodes= [3595, 3596, 3597, 595, 596, 597] persons= [2600, 2601, 2602]
+--- sas= [] onefjf_slice595 crp= 1
+--- 'expires': 1167126973
+598 1 onefjg_slice596 nodes= [3596, 3597, 3598, 596, 597, 598] persons= [2601, 2602, 2603]
+--- sas= [] onefjg_slice596 crp= 1
+--- 'expires': 1167126974
+599 1 onefjh_slice597 nodes= [3597, 3598, 3599, 597, 598, 599] persons= [2602, 2603, 2604]
+--- sas= [] onefjh_slice597 crp= 1
+--- 'expires': 1167126974
+600 1 onefji_slice598 nodes= [3598, 3599, 3600, 598, 599, 600] persons= [2603, 2604, 2605]
+--- sas= [] onefji_slice598 crp= 1
+--- 'expires': 1167126974
+601 1 onefjj_slice599 nodes= [3599, 3600, 3601, 599, 600, 601] persons= [2604, 2605, 2606]
+--- sas= [] onefjj_slice599 crp= 1
+--- 'expires': 1167126975
+602 1 onegaa_slice600 nodes= [3600, 3601, 3602, 600, 601, 602] persons= [2605, 2606, 2607]
+--- sas= [] onegaa_slice600 crp= 1
+--- 'expires': 1167126975
+603 1 onegab_slice601 nodes= [3601, 3602, 3603, 601, 602, 603] persons= [2608, 2606, 2607]
+--- sas= [] onegab_slice601 crp= 1
+--- 'expires': 1167126975
+604 1 onegac_slice602 nodes= [3602, 3603, 3604, 602, 603, 604] persons= [2608, 2609, 2607]
+--- sas= [] onegac_slice602 crp= 1
+--- 'expires': 1167126975
+605 1 onegad_slice603 nodes= [3603, 3604, 3605, 603, 604, 605] persons= [2608, 2609, 2610]
+--- sas= [] onegad_slice603 crp= 1
+--- 'expires': 1167126976
+606 1 onegae_slice604 nodes= [3604, 3605, 3606, 604, 605, 606] persons= [2609, 2610, 2611]
+--- sas= [] onegae_slice604 crp= 1
+--- 'expires': 1167126976
+607 1 onegaf_slice605 nodes= [3605, 3606, 3607, 605, 606, 607] persons= [2610, 2611, 2612]
+--- sas= [] onegaf_slice605 crp= 1
+--- 'expires': 1167126976
+608 1 onegag_slice606 nodes= [608, 3606, 3607, 3608, 606, 607] persons= [2611, 2612, 2613]
+--- sas= [] onegag_slice606 crp= 1
+--- 'expires': 1167126977
+609 1 onegah_slice607 nodes= [608, 609, 3607, 3608, 3609, 607] persons= [2612, 2613, 2614]
+--- sas= [] onegah_slice607 crp= 1
+--- 'expires': 1167126977
+610 1 onegai_slice608 nodes= [608, 609, 610, 3608, 3609, 3610] persons= [2613, 2614, 2615]
+--- sas= [] onegai_slice608 crp= 1
+--- 'expires': 1167126977
+611 1 onegaj_slice609 nodes= [609, 610, 611, 3609, 3610, 3611] persons= [2616, 2614, 2615]
+--- sas= [] onegaj_slice609 crp= 1
+--- 'expires': 1167126977
+612 1 onegba_slice610 nodes= [610, 611, 612, 3610, 3611, 3612] persons= [2616, 2617, 2615]
+--- sas= [] onegba_slice610 crp= 1
+--- 'expires': 1167126978
+613 1 onegbb_slice611 nodes= [611, 612, 613, 3611, 3612, 3613] persons= [2616, 2617, 2618]
+--- sas= [] onegbb_slice611 crp= 1
+--- 'expires': 1167126978
+614 1 onegbc_slice612 nodes= [612, 613, 614, 3612, 3613, 3614] persons= [2617, 2618, 2619]
+--- sas= [] onegbc_slice612 crp= 1
+--- 'expires': 1167126978
+615 1 onegbd_slice613 nodes= [613, 614, 615, 3613, 3614, 3615] persons= [2618, 2619, 2620]
+--- sas= [] onegbd_slice613 crp= 1
+--- 'expires': 1167126978
+616 1 onegbe_slice614 nodes= [3616, 614, 615, 616, 3614, 3615] persons= [2619, 2620, 2621]
+--- sas= [] onegbe_slice614 crp= 1
+--- 'expires': 1167126979
+617 1 onegbf_slice615 nodes= [3616, 3617, 615, 616, 617, 3615] persons= [2620, 2621, 2622]
+--- sas= [] onegbf_slice615 crp= 1
+--- 'expires': 1167126979
+618 1 onegbg_slice616 nodes= [3616, 3617, 3618, 616, 617, 618] persons= [2621, 2622, 2623]
+--- sas= [] onegbg_slice616 crp= 1
+--- 'expires': 1167126979
+619 1 onegbh_slice617 nodes= [3617, 3618, 3619, 617, 618, 619] persons= [2624, 2622, 2623]
+--- sas= [] onegbh_slice617 crp= 1
+--- 'expires': 1167126980
+620 1 onegbi_slice618 nodes= [3618, 3619, 3620, 618, 619, 620] persons= [2624, 2625, 2623]
+--- sas= [] onegbi_slice618 crp= 1
+--- 'expires': 1167126980
+621 1 onegbj_slice619 nodes= [3619, 3620, 3621, 619, 620, 621] persons= [2624, 2625, 2626]
+--- sas= [] onegbj_slice619 crp= 1
+--- 'expires': 1167126980
+622 1 onegca_slice620 nodes= [3620, 3621, 3622, 620, 621, 622] persons= [2625, 2626, 2627]
+--- sas= [] onegca_slice620 crp= 1
+--- 'expires': 1167126980
+623 1 onegcb_slice621 nodes= [3621, 3622, 3623, 621, 622, 623] persons= [2626, 2627, 2628]
+--- sas= [] onegcb_slice621 crp= 1
+--- 'expires': 1167126981
+624 1 onegcc_slice622 nodes= [3622, 3623, 3624, 622, 623, 624] persons= [2627, 2628, 2629]
+--- sas= [] onegcc_slice622 crp= 1
+--- 'expires': 1167126981
+625 1 onegcd_slice623 nodes= [3623, 3624, 3625, 623, 624, 625] persons= [2628, 2629, 2630]
+--- sas= [] onegcd_slice623 crp= 1
+--- 'expires': 1167126981
+626 1 onegce_slice624 nodes= [3624, 3625, 3626, 624, 625, 626] persons= [2629, 2630, 2631]
+--- sas= [] onegce_slice624 crp= 1
+--- 'expires': 1167126982
+627 1 onegcf_slice625 nodes= [3625, 3626, 3627, 625, 626, 627] persons= [2632, 2630, 2631]
+--- sas= [] onegcf_slice625 crp= 1
+--- 'expires': 1167126982
+628 1 onegcg_slice626 nodes= [3626, 3627, 3628, 626, 627, 628] persons= [2632, 2633, 2631]
+--- sas= [] onegcg_slice626 crp= 1
+--- 'expires': 1167126982
+629 1 onegch_slice627 nodes= [3627, 3628, 3629, 627, 628, 629] persons= [2632, 2633, 2634]
+--- sas= [] onegch_slice627 crp= 1
+--- 'expires': 1167126982
+630 1 onegci_slice628 nodes= [3628, 3629, 3630, 628, 629, 630] persons= [2633, 2634, 2635]
+--- sas= [] onegci_slice628 crp= 1
+--- 'expires': 1167126983
+631 1 onegcj_slice629 nodes= [3629, 3630, 3631, 629, 630, 631] persons= [2634, 2635, 2636]
+--- sas= [] onegcj_slice629 crp= 1
+--- 'expires': 1167126983
+632 1 onegda_slice630 nodes= [3630, 3631, 3632, 630, 631, 632] persons= [2635, 2636, 2637]
+--- sas= [] onegda_slice630 crp= 1
+--- 'expires': 1167126983
+633 1 onegdb_slice631 nodes= [3631, 3632, 3633, 631, 632, 633] persons= [2636, 2637, 2638]
+--- sas= [] onegdb_slice631 crp= 1
+--- 'expires': 1167126984
+634 1 onegdc_slice632 nodes= [3632, 3633, 3634, 632, 633, 634] persons= [2637, 2638, 2639]
+--- sas= [] onegdc_slice632 crp= 1
+--- 'expires': 1167126984
+635 1 onegdd_slice633 nodes= [3633, 3634, 3635, 633, 634, 635] persons= [2640, 2638, 2639]
+--- sas= [] onegdd_slice633 crp= 1
+--- 'expires': 1167126984
+636 1 onegde_slice634 nodes= [3634, 3635, 3636, 634, 635, 636] persons= [2640, 2641, 2639]
+--- sas= [] onegde_slice634 crp= 1
+--- 'expires': 1167126984
+637 1 onegdf_slice635 nodes= [3635, 3636, 3637, 635, 636, 637] persons= [2640, 2641, 2642]
+--- sas= [] onegdf_slice635 crp= 1
+--- 'expires': 1167126985
+638 1 onegdg_slice636 nodes= [3636, 3637, 3638, 636, 637, 638] persons= [2641, 2642, 2643]
+--- sas= [] onegdg_slice636 crp= 1
+--- 'expires': 1167126985
+639 1 onegdh_slice637 nodes= [3637, 3638, 3639, 637, 638, 639] persons= [2642, 2643, 2644]
+--- sas= [] onegdh_slice637 crp= 1
+--- 'expires': 1167126985
+640 1 onegdi_slice638 nodes= [640, 3638, 3639, 3640, 638, 639] persons= [2643, 2644, 2645]
+--- sas= [] onegdi_slice638 crp= 1
+--- 'expires': 1167126986
+641 1 onegdj_slice639 nodes= [640, 641, 3639, 3640, 3641, 639] persons= [2644, 2645, 2646]
+--- sas= [] onegdj_slice639 crp= 1
+--- 'expires': 1167126986
+642 1 onegea_slice640 nodes= [640, 641, 642, 3640, 3641, 3642] persons= [2645, 2646, 2647]
+--- sas= [] onegea_slice640 crp= 1
+--- 'expires': 1167126986
+643 1 onegeb_slice641 nodes= [641, 642, 643, 3641, 3642, 3643] persons= [2648, 2646, 2647]
+--- sas= [] onegeb_slice641 crp= 1
+--- 'expires': 1167126986
+644 1 onegec_slice642 nodes= [642, 643, 644, 3642, 3643, 3644] persons= [2648, 2649, 2647]
+--- sas= [] onegec_slice642 crp= 1
+--- 'expires': 1167126987
+645 1 oneged_slice643 nodes= [643, 644, 645, 3643, 3644, 3645] persons= [2648, 2649, 2650]
+--- sas= [] oneged_slice643 crp= 1
+--- 'expires': 1167126987
+646 1 onegee_slice644 nodes= [644, 645, 646, 3644, 3645, 3646] persons= [2649, 2650, 2651]
+--- sas= [] onegee_slice644 crp= 1
+--- 'expires': 1167126987
+647 1 onegef_slice645 nodes= [645, 646, 647, 3645, 3646, 3647] persons= [2650, 2651, 2652]
+--- sas= [] onegef_slice645 crp= 1
+--- 'expires': 1167126988
+648 1 onegeg_slice646 nodes= [3648, 646, 647, 648, 3646, 3647] persons= [2651, 2652, 2653]
+--- sas= [] onegeg_slice646 crp= 1
+--- 'expires': 1167126988
+649 1 onegeh_slice647 nodes= [3648, 3649, 647, 648, 649, 3647] persons= [2652, 2653, 2654]
+--- sas= [] onegeh_slice647 crp= 1
+--- 'expires': 1167126988
+650 1 onegei_slice648 nodes= [3648, 3649, 3650, 648, 649, 650] persons= [2653, 2654, 2655]
+--- sas= [] onegei_slice648 crp= 1
+--- 'expires': 1167126988
+651 1 onegej_slice649 nodes= [3649, 3650, 3651, 649, 650, 651] persons= [2656, 2654, 2655]
+--- sas= [] onegej_slice649 crp= 1
+--- 'expires': 1167126989
+652 1 onegfa_slice650 nodes= [3650, 3651, 3652, 650, 651, 652] persons= [2656, 2657, 2655]
+--- sas= [] onegfa_slice650 crp= 1
+--- 'expires': 1167126989
+653 1 onegfb_slice651 nodes= [3651, 3652, 3653, 651, 652, 653] persons= [2656, 2657, 2658]
+--- sas= [] onegfb_slice651 crp= 1
+--- 'expires': 1167126989
+654 1 onegfc_slice652 nodes= [3652, 3653, 3654, 652, 653, 654] persons= [2657, 2658, 2659]
+--- sas= [] onegfc_slice652 crp= 1
+--- 'expires': 1167126990
+655 1 onegfd_slice653 nodes= [3653, 3654, 3655, 653, 654, 655] persons= [2658, 2659, 2660]
+--- sas= [] onegfd_slice653 crp= 1
+--- 'expires': 1167126990
+656 1 onegfe_slice654 nodes= [3654, 3655, 3656, 654, 655, 656] persons= [2659, 2660, 2661]
+--- sas= [] onegfe_slice654 crp= 1
+--- 'expires': 1167126990
+657 1 onegff_slice655 nodes= [3655, 3656, 3657, 655, 656, 657] persons= [2660, 2661, 2662]
+--- sas= [] onegff_slice655 crp= 1
+--- 'expires': 1167126990
+658 1 onegfg_slice656 nodes= [3656, 3657, 3658, 656, 657, 658] persons= [2661, 2662, 2663]
+--- sas= [] onegfg_slice656 crp= 1
+--- 'expires': 1167126991
+659 1 onegfh_slice657 nodes= [3657, 3658, 3659, 657, 658, 659] persons= [2664, 2662, 2663]
+--- sas= [] onegfh_slice657 crp= 1
+--- 'expires': 1167126991
+660 1 onegfi_slice658 nodes= [3658, 3659, 3660, 658, 659, 660] persons= [2664, 2665, 2663]
+--- sas= [] onegfi_slice658 crp= 1
+--- 'expires': 1167126991
+661 1 onegfj_slice659 nodes= [3659, 3660, 3661, 659, 660, 661] persons= [2664, 2665, 2666]
+--- sas= [] onegfj_slice659 crp= 1
+--- 'expires': 1167126992
+662 1 onegga_slice660 nodes= [3660, 3661, 3662, 660, 661, 662] persons= [2665, 2666, 2667]
+--- sas= [] onegga_slice660 crp= 1
+--- 'expires': 1167126992
+663 1 oneggb_slice661 nodes= [3661, 3662, 3663, 661, 662, 663] persons= [2666, 2667, 2668]
+--- sas= [] oneggb_slice661 crp= 1
+--- 'expires': 1167126992
+664 1 oneggc_slice662 nodes= [3662, 3663, 3664, 662, 663, 664] persons= [2667, 2668, 2669]
+--- sas= [] oneggc_slice662 crp= 1
+--- 'expires': 1167126992
+665 1 oneggd_slice663 nodes= [3663, 3664, 3665, 663, 664, 665] persons= [2668, 2669, 2670]
+--- sas= [] oneggd_slice663 crp= 1
+--- 'expires': 1167126993
+666 1 onegge_slice664 nodes= [3664, 3665, 3666, 664, 665, 666] persons= [2669, 2670, 2671]
+--- sas= [] onegge_slice664 crp= 1
+--- 'expires': 1167126993
+667 1 oneggf_slice665 nodes= [3665, 3666, 3667, 665, 666, 667] persons= [2672, 2670, 2671]
+--- sas= [] oneggf_slice665 crp= 1
+--- 'expires': 1167126993
+668 1 oneggg_slice666 nodes= [3666, 3667, 3668, 666, 667, 668] persons= [2672, 2673, 2671]
+--- sas= [] oneggg_slice666 crp= 1
+--- 'expires': 1167126994
+669 1 oneggh_slice667 nodes= [3667, 3668, 3669, 667, 668, 669] persons= [2672, 2673, 2674]
+--- sas= [] oneggh_slice667 crp= 1
+--- 'expires': 1167126994
+670 1 oneggi_slice668 nodes= [3668, 3669, 3670, 668, 669, 670] persons= [2673, 2674, 2675]
+--- sas= [] oneggi_slice668 crp= 1
+--- 'expires': 1167126994
+671 1 oneggj_slice669 nodes= [3669, 3670, 3671, 669, 670, 671] persons= [2674, 2675, 2676]
+--- sas= [] oneggj_slice669 crp= 1
+--- 'expires': 1167126995
+672 1 onegha_slice670 nodes= [672, 3670, 3671, 3672, 670, 671] persons= [2675, 2676, 2677]
+--- sas= [] onegha_slice670 crp= 1
+--- 'expires': 1167126995
+673 1 oneghb_slice671 nodes= [672, 673, 3671, 3672, 3673, 671] persons= [2676, 2677, 2678]
+--- sas= [] oneghb_slice671 crp= 1
+--- 'expires': 1167126995
+674 1 oneghc_slice672 nodes= [672, 673, 674, 3672, 3673, 3674] persons= [2677, 2678, 2679]
+--- sas= [] oneghc_slice672 crp= 1
+--- 'expires': 1167126995
+675 1 oneghd_slice673 nodes= [673, 674, 675, 3673, 3674, 3675] persons= [2680, 2678, 2679]
+--- sas= [] oneghd_slice673 crp= 1
+--- 'expires': 1167126996
+676 1 oneghe_slice674 nodes= [674, 675, 676, 3674, 3675, 3676] persons= [2680, 2681, 2679]
+--- sas= [] oneghe_slice674 crp= 1
+--- 'expires': 1167126996
+677 1 oneghf_slice675 nodes= [675, 676, 677, 3675, 3676, 3677] persons= [2680, 2681, 2682]
+--- sas= [] oneghf_slice675 crp= 1
+--- 'expires': 1167126996
+678 1 oneghg_slice676 nodes= [676, 677, 678, 3676, 3677, 3678] persons= [2681, 2682, 2683]
+--- sas= [] oneghg_slice676 crp= 1
+--- 'expires': 1167126997
+679 1 oneghh_slice677 nodes= [677, 678, 679, 3677, 3678, 3679] persons= [2682, 2683, 2684]
+--- sas= [] oneghh_slice677 crp= 1
+--- 'expires': 1167126997
+680 1 oneghi_slice678 nodes= [3680, 678, 679, 680, 3678, 3679] persons= [2683, 2684, 2685]
+--- sas= [] oneghi_slice678 crp= 1
+--- 'expires': 1167126997
+681 1 oneghj_slice679 nodes= [3680, 3681, 679, 680, 681, 3679] persons= [2684, 2685, 2686]
+--- sas= [] oneghj_slice679 crp= 1
+--- 'expires': 1167126997
+682 1 onegia_slice680 nodes= [3680, 3681, 3682, 680, 681, 682] persons= [2685, 2686, 2687]
+--- sas= [] onegia_slice680 crp= 1
+--- 'expires': 1167126998
+683 1 onegib_slice681 nodes= [3681, 3682, 3683, 681, 682, 683] persons= [2688, 2686, 2687]
+--- sas= [] onegib_slice681 crp= 1
+--- 'expires': 1167126998
+684 1 onegic_slice682 nodes= [3682, 3683, 3684, 682, 683, 684] persons= [2688, 2689, 2687]
+--- sas= [] onegic_slice682 crp= 1
+--- 'expires': 1167126998
+685 1 onegid_slice683 nodes= [3683, 3684, 3685, 683, 684, 685] persons= [2688, 2689, 2690]
+--- sas= [] onegid_slice683 crp= 1
+--- 'expires': 1167126999
+686 1 onegie_slice684 nodes= [3684, 3685, 3686, 684, 685, 686] persons= [2689, 2690, 2691]
+--- sas= [] onegie_slice684 crp= 1
+--- 'expires': 1167126999
+687 1 onegif_slice685 nodes= [3685, 3686, 3687, 685, 686, 687] persons= [2690, 2691, 2692]
+--- sas= [] onegif_slice685 crp= 1
+--- 'expires': 1167126999
+688 1 onegig_slice686 nodes= [3686, 3687, 3688, 686, 687, 688] persons= [2691, 2692, 2693]
+--- sas= [] onegig_slice686 crp= 1
+--- 'expires': 1167126999
+689 1 onegih_slice687 nodes= [3687, 3688, 3689, 687, 688, 689] persons= [2692, 2693, 2694]
+--- sas= [] onegih_slice687 crp= 1
+--- 'expires': 1167127000
+690 1 onegii_slice688 nodes= [3688, 3689, 3690, 688, 689, 690] persons= [2693, 2694, 2695]
+--- sas= [] onegii_slice688 crp= 1
+--- 'expires': 1167127000
+691 1 onegij_slice689 nodes= [3689, 3690, 3691, 689, 690, 691] persons= [2696, 2694, 2695]
+--- sas= [] onegij_slice689 crp= 1
+--- 'expires': 1167127000
+692 1 onegja_slice690 nodes= [3690, 3691, 3692, 690, 691, 692] persons= [2696, 2697, 2695]
+--- sas= [] onegja_slice690 crp= 1
+--- 'expires': 1167127001
+693 1 onegjb_slice691 nodes= [3691, 3692, 3693, 691, 692, 693] persons= [2696, 2697, 2698]
+--- sas= [] onegjb_slice691 crp= 1
+--- 'expires': 1167127001
+694 1 onegjc_slice692 nodes= [3692, 3693, 3694, 692, 693, 694] persons= [2697, 2698, 2699]
+--- sas= [] onegjc_slice692 crp= 1
+--- 'expires': 1167127001
+695 1 onegjd_slice693 nodes= [3693, 3694, 3695, 693, 694, 695] persons= [2698, 2699, 2700]
+--- sas= [] onegjd_slice693 crp= 1
+--- 'expires': 1167127002
+696 1 onegje_slice694 nodes= [3694, 3695, 3696, 694, 695, 696] persons= [2699, 2700, 2701]
+--- sas= [] onegje_slice694 crp= 1
+--- 'expires': 1167127002
+697 1 onegjf_slice695 nodes= [3695, 3696, 3697, 695, 696, 697] persons= [2700, 2701, 2702]
+--- sas= [] onegjf_slice695 crp= 1
+--- 'expires': 1167127002
+698 1 onegjg_slice696 nodes= [3696, 3697, 3698, 696, 697, 698] persons= [2701, 2702, 2703]
+--- sas= [] onegjg_slice696 crp= 1
+--- 'expires': 1167127002
+699 1 onegjh_slice697 nodes= [3697, 3698, 3699, 697, 698, 699] persons= [2704, 2702, 2703]
+--- sas= [] onegjh_slice697 crp= 1
+--- 'expires': 1167127003
+700 1 onegji_slice698 nodes= [3698, 3699, 3700, 698, 699, 700] persons= [2704, 2705, 2703]
+--- sas= [] onegji_slice698 crp= 1
+--- 'expires': 1167127003
+701 1 onegjj_slice699 nodes= [3699, 3700, 3701, 699, 700, 701] persons= [2704, 2705, 2706]
+--- sas= [] onegjj_slice699 crp= 1
+--- 'expires': 1167127003
+702 1 onehaa_slice700 nodes= [3700, 3701, 3702, 700, 701, 702] persons= [2705, 2706, 2707]
+--- sas= [] onehaa_slice700 crp= 1
+--- 'expires': 1167127004
+703 1 onehab_slice701 nodes= [3701, 3702, 3703, 701, 702, 703] persons= [2706, 2707, 2708]
+--- sas= [] onehab_slice701 crp= 1
+--- 'expires': 1167127004
+704 1 onehac_slice702 nodes= [704, 3702, 3703, 3704, 702, 703] persons= [2707, 2708, 2709]
+--- sas= [] onehac_slice702 crp= 1
+--- 'expires': 1167127004
+705 1 onehad_slice703 nodes= [704, 705, 3703, 3704, 3705, 703] persons= [2708, 2709, 2710]
+--- sas= [] onehad_slice703 crp= 1
+--- 'expires': 1167127004
+706 1 onehae_slice704 nodes= [704, 705, 706, 3704, 3705, 3706] persons= [2709, 2710, 2711]
+--- sas= [] onehae_slice704 crp= 1
+--- 'expires': 1167127005
+707 1 onehaf_slice705 nodes= [705, 706, 707, 3705, 3706, 3707] persons= [2712, 2710, 2711]
+--- sas= [] onehaf_slice705 crp= 1
+--- 'expires': 1167127005
+708 1 onehag_slice706 nodes= [706, 707, 708, 3706, 3707, 3708] persons= [2712, 2713, 2711]
+--- sas= [] onehag_slice706 crp= 1
+--- 'expires': 1167127005
+709 1 onehah_slice707 nodes= [707, 708, 709, 3707, 3708, 3709] persons= [2712, 2713, 2714]
+--- sas= [] onehah_slice707 crp= 1
+--- 'expires': 1167127006
+710 1 onehai_slice708 nodes= [708, 709, 710, 3708, 3709, 3710] persons= [2713, 2714, 2715]
+--- sas= [] onehai_slice708 crp= 1
+--- 'expires': 1167127006
+711 1 onehaj_slice709 nodes= [709, 710, 711, 3709, 3710, 3711] persons= [2714, 2715, 2716]
+--- sas= [] onehaj_slice709 crp= 1
+--- 'expires': 1167127006
+712 1 onehba_slice710 nodes= [3712, 710, 711, 712, 3710, 3711] persons= [2715, 2716, 2717]
+--- sas= [] onehba_slice710 crp= 1
+--- 'expires': 1167127007
+713 1 onehbb_slice711 nodes= [3712, 3713, 711, 712, 713, 3711] persons= [2716, 2717, 2718]
+--- sas= [] onehbb_slice711 crp= 1
+--- 'expires': 1167127007
+714 1 onehbc_slice712 nodes= [3712, 3713, 3714, 712, 713, 714] persons= [2717, 2718, 2719]
+--- sas= [] onehbc_slice712 crp= 1
+--- 'expires': 1167127007
+715 1 onehbd_slice713 nodes= [3713, 3714, 3715, 713, 714, 715] persons= [2720, 2718, 2719]
+--- sas= [] onehbd_slice713 crp= 1
+--- 'expires': 1167127007
+716 1 onehbe_slice714 nodes= [3714, 3715, 3716, 714, 715, 716] persons= [2720, 2721, 2719]
+--- sas= [] onehbe_slice714 crp= 1
+--- 'expires': 1167127008
+717 1 onehbf_slice715 nodes= [3715, 3716, 3717, 715, 716, 717] persons= [2720, 2721, 2722]
+--- sas= [] onehbf_slice715 crp= 1
+--- 'expires': 1167127008
+718 1 onehbg_slice716 nodes= [3716, 3717, 3718, 716, 717, 718] persons= [2721, 2722, 2723]
+--- sas= [] onehbg_slice716 crp= 1
+--- 'expires': 1167127008
+719 1 onehbh_slice717 nodes= [3717, 3718, 3719, 717, 718, 719] persons= [2722, 2723, 2724]
+--- sas= [] onehbh_slice717 crp= 1
+--- 'expires': 1167127009
+720 1 onehbi_slice718 nodes= [3718, 3719, 3720, 718, 719, 720] persons= [2723, 2724, 2725]
+--- sas= [] onehbi_slice718 crp= 1
+--- 'expires': 1167127009
+721 1 onehbj_slice719 nodes= [3719, 3720, 3721, 719, 720, 721] persons= [2724, 2725, 2726]
+--- sas= [] onehbj_slice719 crp= 1
+--- 'expires': 1167127009
+722 1 onehca_slice720 nodes= [3720, 3721, 3722, 720, 721, 722] persons= [2725, 2726, 2727]
+--- sas= [] onehca_slice720 crp= 1
+--- 'expires': 1167127010
+723 1 onehcb_slice721 nodes= [3721, 3722, 3723, 721, 722, 723] persons= [2728, 2726, 2727]
+--- sas= [] onehcb_slice721 crp= 1
+--- 'expires': 1167127010
+724 1 onehcc_slice722 nodes= [3722, 3723, 3724, 722, 723, 724] persons= [2728, 2729, 2727]
+--- sas= [] onehcc_slice722 crp= 1
+--- 'expires': 1167127010
+725 1 onehcd_slice723 nodes= [3723, 3724, 3725, 723, 724, 725] persons= [2728, 2729, 2730]
+--- sas= [] onehcd_slice723 crp= 1
+--- 'expires': 1167127010
+726 1 onehce_slice724 nodes= [3724, 3725, 3726, 724, 725, 726] persons= [2729, 2730, 2731]
+--- sas= [] onehce_slice724 crp= 1
+--- 'expires': 1167127011
+727 1 onehcf_slice725 nodes= [3725, 3726, 3727, 725, 726, 727] persons= [2730, 2731, 2732]
+--- sas= [] onehcf_slice725 crp= 1
+--- 'expires': 1167127011
+728 1 onehcg_slice726 nodes= [3726, 3727, 3728, 726, 727, 728] persons= [2731, 2732, 2733]
+--- sas= [] onehcg_slice726 crp= 1
+--- 'expires': 1167127011
+729 1 onehch_slice727 nodes= [3727, 3728, 3729, 727, 728, 729] persons= [2732, 2733, 2734]
+--- sas= [] onehch_slice727 crp= 1
+--- 'expires': 1167127012
+730 1 onehci_slice728 nodes= [3728, 3729, 3730, 728, 729, 730] persons= [2733, 2734, 2735]
+--- sas= [] onehci_slice728 crp= 1
+--- 'expires': 1167127012
+731 1 onehcj_slice729 nodes= [3729, 3730, 3731, 729, 730, 731] persons= [2736, 2734, 2735]
+--- sas= [] onehcj_slice729 crp= 1
+--- 'expires': 1167127012
+732 1 onehda_slice730 nodes= [3730, 3731, 3732, 730, 731, 732] persons= [2736, 2737, 2735]
+--- sas= [] onehda_slice730 crp= 1
+--- 'expires': 1167127013
+733 1 onehdb_slice731 nodes= [3731, 3732, 3733, 731, 732, 733] persons= [2736, 2737, 2738]
+--- sas= [] onehdb_slice731 crp= 1
+--- 'expires': 1167127013
+734 1 onehdc_slice732 nodes= [3732, 3733, 3734, 732, 733, 734] persons= [2737, 2738, 2739]
+--- sas= [] onehdc_slice732 crp= 1
+--- 'expires': 1167127013
+735 1 onehdd_slice733 nodes= [3733, 3734, 3735, 733, 734, 735] persons= [2738, 2739, 2740]
+--- sas= [] onehdd_slice733 crp= 1
+--- 'expires': 1167127013
+736 1 onehde_slice734 nodes= [736, 3734, 3735, 3736, 734, 735] persons= [2739, 2740, 2741]
+--- sas= [] onehde_slice734 crp= 1
+--- 'expires': 1167127014
+737 1 onehdf_slice735 nodes= [736, 737, 3735, 3736, 3737, 735] persons= [2740, 2741, 2742]
+--- sas= [] onehdf_slice735 crp= 1
+--- 'expires': 1167127014
+738 1 onehdg_slice736 nodes= [736, 737, 738, 3736, 3737, 3738] persons= [2741, 2742, 2743]
+--- sas= [] onehdg_slice736 crp= 1
+--- 'expires': 1167127014
+739 1 onehdh_slice737 nodes= [737, 738, 739, 3737, 3738, 3739] persons= [2744, 2742, 2743]
+--- sas= [] onehdh_slice737 crp= 1
+--- 'expires': 1167127015
+740 1 onehdi_slice738 nodes= [738, 739, 740, 3738, 3739, 3740] persons= [2744, 2745, 2743]
+--- sas= [] onehdi_slice738 crp= 1
+--- 'expires': 1167127015
+741 1 onehdj_slice739 nodes= [739, 740, 741, 3739, 3740, 3741] persons= [2744, 2745, 2746]
+--- sas= [] onehdj_slice739 crp= 1
+--- 'expires': 1167127015
+742 1 onehea_slice740 nodes= [740, 741, 742, 3740, 3741, 3742] persons= [2745, 2746, 2747]
+--- sas= [] onehea_slice740 crp= 1
+--- 'expires': 1167127016
+743 1 oneheb_slice741 nodes= [741, 742, 743, 3741, 3742, 3743] persons= [2746, 2747, 2748]
+--- sas= [] oneheb_slice741 crp= 1
+--- 'expires': 1167127016
+744 1 onehec_slice742 nodes= [3744, 742, 743, 744, 3742, 3743] persons= [2747, 2748, 2749]
+--- sas= [] onehec_slice742 crp= 1
+--- 'expires': 1167127016
+745 1 onehed_slice743 nodes= [3744, 3745, 743, 744, 745, 3743] persons= [2748, 2749, 2750]
+--- sas= [] onehed_slice743 crp= 1
+--- 'expires': 1167127016
+746 1 onehee_slice744 nodes= [3744, 3745, 3746, 744, 745, 746] persons= [2749, 2750, 2751]
+--- sas= [] onehee_slice744 crp= 1
+--- 'expires': 1167127017
+747 1 onehef_slice745 nodes= [3745, 3746, 3747, 745, 746, 747] persons= [2752, 2750, 2751]
+--- sas= [] onehef_slice745 crp= 1
+--- 'expires': 1167127017
+748 1 oneheg_slice746 nodes= [3746, 3747, 3748, 746, 747, 748] persons= [2752, 2753, 2751]
+--- sas= [] oneheg_slice746 crp= 1
+--- 'expires': 1167127017
+749 1 oneheh_slice747 nodes= [3747, 3748, 3749, 747, 748, 749] persons= [2752, 2753, 2754]
+--- sas= [] oneheh_slice747 crp= 1
+--- 'expires': 1167127018
+750 1 onehei_slice748 nodes= [3748, 3749, 3750, 748, 749, 750] persons= [2753, 2754, 2755]
+--- sas= [] onehei_slice748 crp= 1
+--- 'expires': 1167127018
+751 1 onehej_slice749 nodes= [3749, 3750, 3751, 749, 750, 751] persons= [2754, 2755, 2756]
+--- sas= [] onehej_slice749 crp= 1
+--- 'expires': 1167127018
+752 1 onehfa_slice750 nodes= [3750, 3751, 3752, 750, 751, 752] persons= [2755, 2756, 2757]
+--- sas= [] onehfa_slice750 crp= 1
+--- 'expires': 1167127019
+753 1 onehfb_slice751 nodes= [3751, 3752, 3753, 751, 752, 753] persons= [2756, 2757, 2758]
+--- sas= [] onehfb_slice751 crp= 1
+--- 'expires': 1167127019
+754 1 onehfc_slice752 nodes= [3752, 3753, 3754, 752, 753, 754] persons= [2757, 2758, 2759]
+--- sas= [] onehfc_slice752 crp= 1
+--- 'expires': 1167127019
+755 1 onehfd_slice753 nodes= [3753, 3754, 3755, 753, 754, 755] persons= [2760, 2758, 2759]
+--- sas= [] onehfd_slice753 crp= 1
+--- 'expires': 1167127019
+756 1 onehfe_slice754 nodes= [3754, 3755, 3756, 754, 755, 756] persons= [2760, 2761, 2759]
+--- sas= [] onehfe_slice754 crp= 1
+--- 'expires': 1167127020
+757 1 onehff_slice755 nodes= [3755, 3756, 3757, 755, 756, 757] persons= [2760, 2761, 2762]
+--- sas= [] onehff_slice755 crp= 1
+--- 'expires': 1167127020
+758 1 onehfg_slice756 nodes= [3756, 3757, 3758, 756, 757, 758] persons= [2761, 2762, 2763]
+--- sas= [] onehfg_slice756 crp= 1
+--- 'expires': 1167127020
+759 1 onehfh_slice757 nodes= [3757, 3758, 3759, 757, 758, 759] persons= [2762, 2763, 2764]
+--- sas= [] onehfh_slice757 crp= 1
+--- 'expires': 1167127021
+760 1 onehfi_slice758 nodes= [3758, 3759, 3760, 758, 759, 760] persons= [2763, 2764, 2765]
+--- sas= [] onehfi_slice758 crp= 1
+--- 'expires': 1167127021
+761 1 onehfj_slice759 nodes= [3759, 3760, 3761, 759, 760, 761] persons= [2764, 2765, 2766]
+--- sas= [] onehfj_slice759 crp= 1
+--- 'expires': 1167127021
+762 1 onehga_slice760 nodes= [3760, 3761, 3762, 760, 761, 762] persons= [2765, 2766, 2767]
+--- sas= [] onehga_slice760 crp= 1
+--- 'expires': 1167127022
+763 1 onehgb_slice761 nodes= [3761, 3762, 3763, 761, 762, 763] persons= [2768, 2766, 2767]
+--- sas= [] onehgb_slice761 crp= 1
+--- 'expires': 1167127022
+764 1 onehgc_slice762 nodes= [3762, 3763, 3764, 762, 763, 764] persons= [2768, 2769, 2767]
+--- sas= [] onehgc_slice762 crp= 1
+--- 'expires': 1167127022
+765 1 onehgd_slice763 nodes= [3763, 3764, 3765, 763, 764, 765] persons= [2768, 2769, 2770]
+--- sas= [] onehgd_slice763 crp= 1
+--- 'expires': 1167127023
+766 1 onehge_slice764 nodes= [3764, 3765, 3766, 764, 765, 766] persons= [2769, 2770, 2771]
+--- sas= [] onehge_slice764 crp= 1
+--- 'expires': 1167127023
+767 1 onehgf_slice765 nodes= [3765, 3766, 3767, 765, 766, 767] persons= [2770, 2771, 2772]
+--- sas= [] onehgf_slice765 crp= 1
+--- 'expires': 1167127023
+768 1 onehgg_slice766 nodes= [768, 3766, 3767, 3768, 766, 767] persons= [2771, 2772, 2773]
+--- sas= [] onehgg_slice766 crp= 1
+--- 'expires': 1167127023
+769 1 onehgh_slice767 nodes= [768, 769, 3767, 3768, 3769, 767] persons= [2772, 2773, 2774]
+--- sas= [] onehgh_slice767 crp= 1
+--- 'expires': 1167127024
+770 1 onehgi_slice768 nodes= [768, 769, 770, 3768, 3769, 3770] persons= [2773, 2774, 2775]
+--- sas= [] onehgi_slice768 crp= 1
+--- 'expires': 1167127024
+771 1 onehgj_slice769 nodes= [769, 770, 771, 3769, 3770, 3771] persons= [2776, 2774, 2775]
+--- sas= [] onehgj_slice769 crp= 1
+--- 'expires': 1167127024
+772 1 onehha_slice770 nodes= [770, 771, 772, 3770, 3771, 3772] persons= [2776, 2777, 2775]
+--- sas= [] onehha_slice770 crp= 1
+--- 'expires': 1167127025
+773 1 onehhb_slice771 nodes= [771, 772, 773, 3771, 3772, 3773] persons= [2776, 2777, 2778]
+--- sas= [] onehhb_slice771 crp= 1
+--- 'expires': 1167127025
+774 1 onehhc_slice772 nodes= [772, 773, 774, 3772, 3773, 3774] persons= [2777, 2778, 2779]
+--- sas= [] onehhc_slice772 crp= 1
+--- 'expires': 1167127025
+775 1 onehhd_slice773 nodes= [773, 774, 775, 3773, 3774, 3775] persons= [2778, 2779, 2780]
+--- sas= [] onehhd_slice773 crp= 1
+--- 'expires': 1167127026
+776 1 onehhe_slice774 nodes= [3776, 774, 775, 776, 3774, 3775] persons= [2779, 2780, 2781]
+--- sas= [] onehhe_slice774 crp= 1
+--- 'expires': 1167127026
+777 1 onehhf_slice775 nodes= [3776, 3777, 775, 776, 777, 3775] persons= [2780, 2781, 2782]
+--- sas= [] onehhf_slice775 crp= 1
+--- 'expires': 1167127026
+778 1 onehhg_slice776 nodes= [3776, 3777, 3778, 776, 777, 778] persons= [2781, 2782, 2783]
+--- sas= [] onehhg_slice776 crp= 1
+--- 'expires': 1167127027
+779 1 onehhh_slice777 nodes= [3777, 3778, 3779, 777, 778, 779] persons= [2784, 2782, 2783]
+--- sas= [] onehhh_slice777 crp= 1
+--- 'expires': 1167127027
+780 1 onehhi_slice778 nodes= [3778, 3779, 3780, 778, 779, 780] persons= [2784, 2785, 2783]
+--- sas= [] onehhi_slice778 crp= 1
+--- 'expires': 1167127027
+781 1 onehhj_slice779 nodes= [3779, 3780, 3781, 779, 780, 781] persons= [2784, 2785, 2786]
+--- sas= [] onehhj_slice779 crp= 1
+--- 'expires': 1167127027
+782 1 onehia_slice780 nodes= [3780, 3781, 3782, 780, 781, 782] persons= [2785, 2786, 2787]
+--- sas= [] onehia_slice780 crp= 1
+--- 'expires': 1167127028
+783 1 onehib_slice781 nodes= [3781, 3782, 3783, 781, 782, 783] persons= [2786, 2787, 2788]
+--- sas= [] onehib_slice781 crp= 1
+--- 'expires': 1167127028
+784 1 onehic_slice782 nodes= [3782, 3783, 3784, 782, 783, 784] persons= [2787, 2788, 2789]
+--- sas= [] onehic_slice782 crp= 1
+--- 'expires': 1167127028
+785 1 onehid_slice783 nodes= [3783, 3784, 3785, 783, 784, 785] persons= [2788, 2789, 2790]
+--- sas= [] onehid_slice783 crp= 1
+--- 'expires': 1167127029
+786 1 onehie_slice784 nodes= [3784, 3785, 3786, 784, 785, 786] persons= [2789, 2790, 2791]
+--- sas= [] onehie_slice784 crp= 1
+--- 'expires': 1167127029
+787 1 onehif_slice785 nodes= [3785, 3786, 3787, 785, 786, 787] persons= [2792, 2790, 2791]
+--- sas= [] onehif_slice785 crp= 1
+--- 'expires': 1167127029
+788 1 onehig_slice786 nodes= [3786, 3787, 3788, 786, 787, 788] persons= [2792, 2793, 2791]
+--- sas= [] onehig_slice786 crp= 1
+--- 'expires': 1167127030
+789 1 onehih_slice787 nodes= [3787, 3788, 3789, 787, 788, 789] persons= [2792, 2793, 2794]
+--- sas= [] onehih_slice787 crp= 1
+--- 'expires': 1167127030
+790 1 onehii_slice788 nodes= [3788, 3789, 3790, 788, 789, 790] persons= [2793, 2794, 2795]
+--- sas= [] onehii_slice788 crp= 1
+--- 'expires': 1167127030
+791 1 onehij_slice789 nodes= [3789, 3790, 3791, 789, 790, 791] persons= [2794, 2795, 2796]
+--- sas= [] onehij_slice789 crp= 1
+--- 'expires': 1167127031
+792 1 onehja_slice790 nodes= [3790, 3791, 3792, 790, 791, 792] persons= [2795, 2796, 2797]
+--- sas= [] onehja_slice790 crp= 1
+--- 'expires': 1167127031
+793 1 onehjb_slice791 nodes= [3791, 3792, 3793, 791, 792, 793] persons= [2796, 2797, 2798]
+--- sas= [] onehjb_slice791 crp= 1
+--- 'expires': 1167127031
+794 1 onehjc_slice792 nodes= [3792, 3793, 3794, 792, 793, 794] persons= [2797, 2798, 2799]
+--- sas= [] onehjc_slice792 crp= 1
+--- 'expires': 1167127031
+795 1 onehjd_slice793 nodes= [3793, 3794, 3795, 793, 794, 795] persons= [2800, 2798, 2799]
+--- sas= [] onehjd_slice793 crp= 1
+--- 'expires': 1167127032
+796 1 onehje_slice794 nodes= [3794, 3795, 3796, 794, 795, 796] persons= [2800, 2801, 2799]
+--- sas= [] onehje_slice794 crp= 1
+--- 'expires': 1167127032
+797 1 onehjf_slice795 nodes= [3795, 3796, 3797, 795, 796, 797] persons= [2800, 2801, 2802]
+--- sas= [] onehjf_slice795 crp= 1
+--- 'expires': 1167127032
+798 1 onehjg_slice796 nodes= [3796, 3797, 3798, 796, 797, 798] persons= [2801, 2802, 2803]
+--- sas= [] onehjg_slice796 crp= 1
+--- 'expires': 1167127033
+799 1 onehjh_slice797 nodes= [3797, 3798, 3799, 797, 798, 799] persons= [2802, 2803, 2804]
+--- sas= [] onehjh_slice797 crp= 1
+--- 'expires': 1167127033
+800 1 onehji_slice798 nodes= [800, 3798, 3799, 3800, 798, 799] persons= [2803, 2804, 2805]
+--- sas= [] onehji_slice798 crp= 1
+--- 'expires': 1167127033
+801 1 onehjj_slice799 nodes= [800, 801, 3799, 3800, 3801, 799] persons= [2804, 2805, 2806]
+--- sas= [] onehjj_slice799 crp= 1
+--- 'expires': 1167127034
+802 1 oneiaa_slice800 nodes= [800, 801, 802, 3800, 3801, 3802] persons= [2805, 2806, 2807]
+--- sas= [] oneiaa_slice800 crp= 1
+--- 'expires': 1167127034
+803 1 oneiab_slice801 nodes= [801, 802, 803, 3801, 3802, 3803] persons= [2808, 2806, 2807]
+--- sas= [] oneiab_slice801 crp= 1
+--- 'expires': 1167127034
+804 1 oneiac_slice802 nodes= [802, 803, 804, 3802, 3803, 3804] persons= [2808, 2809, 2807]
+--- sas= [] oneiac_slice802 crp= 1
+--- 'expires': 1167127035
+805 1 oneiad_slice803 nodes= [803, 804, 805, 3803, 3804, 3805] persons= [2808, 2809, 2810]
+--- sas= [] oneiad_slice803 crp= 1
+--- 'expires': 1167127035
+806 1 oneiae_slice804 nodes= [804, 805, 806, 3804, 3805, 3806] persons= [2809, 2810, 2811]
+--- sas= [] oneiae_slice804 crp= 1
+--- 'expires': 1167127035
+807 1 oneiaf_slice805 nodes= [805, 806, 807, 3805, 3806, 3807] persons= [2810, 2811, 2812]
+--- sas= [] oneiaf_slice805 crp= 1
+--- 'expires': 1167127036
+808 1 oneiag_slice806 nodes= [3808, 806, 807, 808, 3806, 3807] persons= [2811, 2812, 2813]
+--- sas= [] oneiag_slice806 crp= 1
+--- 'expires': 1167127036
+809 1 oneiah_slice807 nodes= [3808, 3809, 807, 808, 809, 3807] persons= [2812, 2813, 2814]
+--- sas= [] oneiah_slice807 crp= 1
+--- 'expires': 1167127036
+810 1 oneiai_slice808 nodes= [3808, 3809, 3810, 808, 809, 810] persons= [2813, 2814, 2815]
+--- sas= [] oneiai_slice808 crp= 1
+--- 'expires': 1167127036
+811 1 oneiaj_slice809 nodes= [3809, 3810, 3811, 809, 810, 811] persons= [2816, 2814, 2815]
+--- sas= [] oneiaj_slice809 crp= 1
+--- 'expires': 1167127037
+812 1 oneiba_slice810 nodes= [3810, 3811, 3812, 810, 811, 812] persons= [2816, 2817, 2815]
+--- sas= [] oneiba_slice810 crp= 1
+--- 'expires': 1167127037
+813 1 oneibb_slice811 nodes= [3811, 3812, 3813, 811, 812, 813] persons= [2816, 2817, 2818]
+--- sas= [] oneibb_slice811 crp= 1
+--- 'expires': 1167127037
+814 1 oneibc_slice812 nodes= [3812, 3813, 3814, 812, 813, 814] persons= [2817, 2818, 2819]
+--- sas= [] oneibc_slice812 crp= 1
+--- 'expires': 1167127038
+815 1 oneibd_slice813 nodes= [3813, 3814, 3815, 813, 814, 815] persons= [2818, 2819, 2820]
+--- sas= [] oneibd_slice813 crp= 1
+--- 'expires': 1167127038
+816 1 oneibe_slice814 nodes= [3814, 3815, 3816, 814, 815, 816] persons= [2819, 2820, 2821]
+--- sas= [] oneibe_slice814 crp= 1
+--- 'expires': 1167127038
+817 1 oneibf_slice815 nodes= [3815, 3816, 3817, 815, 816, 817] persons= [2820, 2821, 2822]
+--- sas= [] oneibf_slice815 crp= 1
+--- 'expires': 1167127039
+818 1 oneibg_slice816 nodes= [3816, 3817, 3818, 816, 817, 818] persons= [2821, 2822, 2823]
+--- sas= [] oneibg_slice816 crp= 1
+--- 'expires': 1167127039
+819 1 oneibh_slice817 nodes= [3817, 3818, 3819, 817, 818, 819] persons= [2824, 2822, 2823]
+--- sas= [] oneibh_slice817 crp= 1
+--- 'expires': 1167127039
+820 1 oneibi_slice818 nodes= [3818, 3819, 3820, 818, 819, 820] persons= [2824, 2825, 2823]
+--- sas= [] oneibi_slice818 crp= 1
+--- 'expires': 1167127040
+821 1 oneibj_slice819 nodes= [3819, 3820, 3821, 819, 820, 821] persons= [2824, 2825, 2826]
+--- sas= [] oneibj_slice819 crp= 1
+--- 'expires': 1167127040
+822 1 oneica_slice820 nodes= [3820, 3821, 3822, 820, 821, 822] persons= [2825, 2826, 2827]
+--- sas= [] oneica_slice820 crp= 1
+--- 'expires': 1167127040
+823 1 oneicb_slice821 nodes= [3821, 3822, 3823, 821, 822, 823] persons= [2826, 2827, 2828]
+--- sas= [] oneicb_slice821 crp= 1
+--- 'expires': 1167127041
+824 1 oneicc_slice822 nodes= [3822, 3823, 3824, 822, 823, 824] persons= [2827, 2828, 2829]
+--- sas= [] oneicc_slice822 crp= 1
+--- 'expires': 1167127041
+825 1 oneicd_slice823 nodes= [3823, 3824, 3825, 823, 824, 825] persons= [2828, 2829, 2830]
+--- sas= [] oneicd_slice823 crp= 1
+--- 'expires': 1167127041
+826 1 oneice_slice824 nodes= [3824, 3825, 3826, 824, 825, 826] persons= [2829, 2830, 2831]
+--- sas= [] oneice_slice824 crp= 1
+--- 'expires': 1167127042
+827 1 oneicf_slice825 nodes= [3825, 3826, 3827, 825, 826, 827] persons= [2832, 2830, 2831]
+--- sas= [] oneicf_slice825 crp= 1
+--- 'expires': 1167127042
+828 1 oneicg_slice826 nodes= [3826, 3827, 3828, 826, 827, 828] persons= [2832, 2833, 2831]
+--- sas= [] oneicg_slice826 crp= 1
+--- 'expires': 1167127042
+829 1 oneich_slice827 nodes= [3827, 3828, 3829, 827, 828, 829] persons= [2832, 2833, 2834]
+--- sas= [] oneich_slice827 crp= 1
+--- 'expires': 1167127042
+830 1 oneici_slice828 nodes= [3828, 3829, 3830, 828, 829, 830] persons= [2833, 2834, 2835]
+--- sas= [] oneici_slice828 crp= 1
+--- 'expires': 1167127043
+831 1 oneicj_slice829 nodes= [3829, 3830, 3831, 829, 830, 831] persons= [2834, 2835, 2836]
+--- sas= [] oneicj_slice829 crp= 1
+--- 'expires': 1167127043
+832 1 oneida_slice830 nodes= [832, 3830, 3831, 3832, 830, 831] persons= [2835, 2836, 2837]
+--- sas= [] oneida_slice830 crp= 1
+--- 'expires': 1167127043
+833 1 oneidb_slice831 nodes= [832, 833, 3831, 3832, 3833, 831] persons= [2836, 2837, 2838]
+--- sas= [] oneidb_slice831 crp= 1
+--- 'expires': 1167127044
+834 1 oneidc_slice832 nodes= [832, 833, 834, 3832, 3833, 3834] persons= [2837, 2838, 2839]
+--- sas= [] oneidc_slice832 crp= 1
+--- 'expires': 1167127044
+835 1 oneidd_slice833 nodes= [833, 834, 835, 3833, 3834, 3835] persons= [2840, 2838, 2839]
+--- sas= [] oneidd_slice833 crp= 1
+--- 'expires': 1167127044
+836 1 oneide_slice834 nodes= [834, 835, 836, 3834, 3835, 3836] persons= [2840, 2841, 2839]
+--- sas= [] oneide_slice834 crp= 1
+--- 'expires': 1167127045
+837 1 oneidf_slice835 nodes= [835, 836, 837, 3835, 3836, 3837] persons= [2840, 2841, 2842]
+--- sas= [] oneidf_slice835 crp= 1
+--- 'expires': 1167127045
+838 1 oneidg_slice836 nodes= [836, 837, 838, 3836, 3837, 3838] persons= [2841, 2842, 2843]
+--- sas= [] oneidg_slice836 crp= 1
+--- 'expires': 1167127045
+839 1 oneidh_slice837 nodes= [837, 838, 839, 3837, 3838, 3839] persons= [2842, 2843, 2844]
+--- sas= [] oneidh_slice837 crp= 1
+--- 'expires': 1167127046
+840 1 oneidi_slice838 nodes= [3840, 838, 839, 840, 3838, 3839] persons= [2843, 2844, 2845]
+--- sas= [] oneidi_slice838 crp= 1
+--- 'expires': 1167127046
+841 1 oneidj_slice839 nodes= [3840, 3841, 839, 840, 841, 3839] persons= [2844, 2845, 2846]
+--- sas= [] oneidj_slice839 crp= 1
+--- 'expires': 1167127046
+842 1 oneiea_slice840 nodes= [3840, 3841, 3842, 840, 841, 842] persons= [2845, 2846, 2847]
+--- sas= [] oneiea_slice840 crp= 1
+--- 'expires': 1167127047
+843 1 oneieb_slice841 nodes= [3841, 3842, 3843, 841, 842, 843] persons= [2848, 2846, 2847]
+--- sas= [] oneieb_slice841 crp= 1
+--- 'expires': 1167127047
+844 1 oneiec_slice842 nodes= [3842, 3843, 3844, 842, 843, 844] persons= [2848, 2849, 2847]
+--- sas= [] oneiec_slice842 crp= 1
+--- 'expires': 1167127047
+845 1 oneied_slice843 nodes= [3843, 3844, 3845, 843, 844, 845] persons= [2848, 2849, 2850]
+--- sas= [] oneied_slice843 crp= 1
+--- 'expires': 1167127048
+846 1 oneiee_slice844 nodes= [3844, 3845, 3846, 844, 845, 846] persons= [2849, 2850, 2851]
+--- sas= [] oneiee_slice844 crp= 1
+--- 'expires': 1167127048
+847 1 oneief_slice845 nodes= [3845, 3846, 3847, 845, 846, 847] persons= [2850, 2851, 2852]
+--- sas= [] oneief_slice845 crp= 1
+--- 'expires': 1167127048
+848 1 oneieg_slice846 nodes= [3846, 3847, 3848, 846, 847, 848] persons= [2851, 2852, 2853]
+--- sas= [] oneieg_slice846 crp= 1
+--- 'expires': 1167127048
+849 1 oneieh_slice847 nodes= [3847, 3848, 3849, 847, 848, 849] persons= [2852, 2853, 2854]
+--- sas= [] oneieh_slice847 crp= 1
+--- 'expires': 1167127049
+850 1 oneiei_slice848 nodes= [3848, 3849, 3850, 848, 849, 850] persons= [2853, 2854, 2855]
+--- sas= [] oneiei_slice848 crp= 1
+--- 'expires': 1167127049
+851 1 oneiej_slice849 nodes= [3849, 3850, 3851, 849, 850, 851] persons= [2856, 2854, 2855]
+--- sas= [] oneiej_slice849 crp= 1
+--- 'expires': 1167127049
+852 1 oneifa_slice850 nodes= [3850, 3851, 3852, 850, 851, 852] persons= [2856, 2857, 2855]
+--- sas= [] oneifa_slice850 crp= 1
+--- 'expires': 1167127050
+853 1 oneifb_slice851 nodes= [3851, 3852, 3853, 851, 852, 853] persons= [2856, 2857, 2858]
+--- sas= [] oneifb_slice851 crp= 1
+--- 'expires': 1167127050
+854 1 oneifc_slice852 nodes= [3852, 3853, 3854, 852, 853, 854] persons= [2857, 2858, 2859]
+--- sas= [] oneifc_slice852 crp= 1
+--- 'expires': 1167127050
+855 1 oneifd_slice853 nodes= [3853, 3854, 3855, 853, 854, 855] persons= [2858, 2859, 2860]
+--- sas= [] oneifd_slice853 crp= 1
+--- 'expires': 1167127051
+856 1 oneife_slice854 nodes= [3854, 3855, 3856, 854, 855, 856] persons= [2859, 2860, 2861]
+--- sas= [] oneife_slice854 crp= 1
+--- 'expires': 1167127051
+857 1 oneiff_slice855 nodes= [3855, 3856, 3857, 855, 856, 857] persons= [2860, 2861, 2862]
+--- sas= [] oneiff_slice855 crp= 1
+--- 'expires': 1167127051
+858 1 oneifg_slice856 nodes= [3856, 3857, 3858, 856, 857, 858] persons= [2861, 2862, 2863]
+--- sas= [] oneifg_slice856 crp= 1
+--- 'expires': 1167127052
+859 1 oneifh_slice857 nodes= [3857, 3858, 3859, 857, 858, 859] persons= [2864, 2862, 2863]
+--- sas= [] oneifh_slice857 crp= 1
+--- 'expires': 1167127052
+860 1 oneifi_slice858 nodes= [3858, 3859, 3860, 858, 859, 860] persons= [2864, 2865, 2863]
+--- sas= [] oneifi_slice858 crp= 1
+--- 'expires': 1167127052
+861 1 oneifj_slice859 nodes= [3859, 3860, 3861, 859, 860, 861] persons= [2864, 2865, 2866]
+--- sas= [] oneifj_slice859 crp= 1
+--- 'expires': 1167127053
+862 1 oneiga_slice860 nodes= [3860, 3861, 3862, 860, 861, 862] persons= [2865, 2866, 2867]
+--- sas= [] oneiga_slice860 crp= 1
+--- 'expires': 1167127053
+863 1 oneigb_slice861 nodes= [3861, 3862, 3863, 861, 862, 863] persons= [2866, 2867, 2868]
+--- sas= [] oneigb_slice861 crp= 1
+--- 'expires': 1167127053
+864 1 oneigc_slice862 nodes= [864, 3862, 3863, 3864, 862, 863] persons= [2867, 2868, 2869]
+--- sas= [] oneigc_slice862 crp= 1
+--- 'expires': 1167127054
+865 1 oneigd_slice863 nodes= [864, 865, 3863, 3864, 3865, 863] persons= [2868, 2869, 2870]
+--- sas= [] oneigd_slice863 crp= 1
+--- 'expires': 1167127054
+866 1 oneige_slice864 nodes= [864, 865, 866, 3864, 3865, 3866] persons= [2869, 2870, 2871]
+--- sas= [] oneige_slice864 crp= 1
+--- 'expires': 1167127054
+867 1 oneigf_slice865 nodes= [865, 866, 867, 3865, 3866, 3867] persons= [2872, 2870, 2871]
+--- sas= [] oneigf_slice865 crp= 1
+--- 'expires': 1167127055
+868 1 oneigg_slice866 nodes= [866, 867, 868, 3866, 3867, 3868] persons= [2872, 2873, 2871]
+--- sas= [] oneigg_slice866 crp= 1
+--- 'expires': 1167127055
+869 1 oneigh_slice867 nodes= [867, 868, 869, 3867, 3868, 3869] persons= [2872, 2873, 2874]
+--- sas= [] oneigh_slice867 crp= 1
+--- 'expires': 1167127055
+870 1 oneigi_slice868 nodes= [868, 869, 870, 3868, 3869, 3870] persons= [2873, 2874, 2875]
+--- sas= [] oneigi_slice868 crp= 1
+--- 'expires': 1167127056
+871 1 oneigj_slice869 nodes= [869, 870, 871, 3869, 3870, 3871] persons= [2874, 2875, 2876]
+--- sas= [] oneigj_slice869 crp= 1
+--- 'expires': 1167127056
+872 1 oneiha_slice870 nodes= [3872, 870, 871, 872, 3870, 3871] persons= [2875, 2876, 2877]
+--- sas= [] oneiha_slice870 crp= 1
+--- 'expires': 1167127056
+873 1 oneihb_slice871 nodes= [3872, 3873, 871, 872, 873, 3871] persons= [2876, 2877, 2878]
+--- sas= [] oneihb_slice871 crp= 1
+--- 'expires': 1167127057
+874 1 oneihc_slice872 nodes= [3872, 3873, 3874, 872, 873, 874] persons= [2877, 2878, 2879]
+--- sas= [] oneihc_slice872 crp= 1
+--- 'expires': 1167127057
+875 1 oneihd_slice873 nodes= [3873, 3874, 3875, 873, 874, 875] persons= [2880, 2878, 2879]
+--- sas= [] oneihd_slice873 crp= 1
+--- 'expires': 1167127057
+876 1 oneihe_slice874 nodes= [3874, 3875, 3876, 874, 875, 876] persons= [2880, 2881, 2879]
+--- sas= [] oneihe_slice874 crp= 1
+--- 'expires': 1167127058
+877 1 oneihf_slice875 nodes= [3875, 3876, 3877, 875, 876, 877] persons= [2880, 2881, 2882]
+--- sas= [] oneihf_slice875 crp= 1
+--- 'expires': 1167127058
+878 1 oneihg_slice876 nodes= [3876, 3877, 3878, 876, 877, 878] persons= [2881, 2882, 2883]
+--- sas= [] oneihg_slice876 crp= 1
+--- 'expires': 1167127059
+879 1 oneihh_slice877 nodes= [3877, 3878, 3879, 877, 878, 879] persons= [2882, 2883, 2884]
+--- sas= [] oneihh_slice877 crp= 1
+--- 'expires': 1167127059
+880 1 oneihi_slice878 nodes= [3878, 3879, 3880, 878, 879, 880] persons= [2883, 2884, 2885]
+--- sas= [] oneihi_slice878 crp= 1
+--- 'expires': 1167127059
+881 1 oneihj_slice879 nodes= [3879, 3880, 3881, 879, 880, 881] persons= [2884, 2885, 2886]
+--- sas= [] oneihj_slice879 crp= 1
+--- 'expires': 1167127060
+882 1 oneiia_slice880 nodes= [3880, 3881, 3882, 880, 881, 882] persons= [2885, 2886, 2887]
+--- sas= [] oneiia_slice880 crp= 1
+--- 'expires': 1167127060
+883 1 oneiib_slice881 nodes= [3881, 3882, 3883, 881, 882, 883] persons= [2888, 2886, 2887]
+--- sas= [] oneiib_slice881 crp= 1
+--- 'expires': 1167127060
+884 1 oneiic_slice882 nodes= [3882, 3883, 3884, 882, 883, 884] persons= [2888, 2889, 2887]
+--- sas= [] oneiic_slice882 crp= 1
+--- 'expires': 1167127061
+885 1 oneiid_slice883 nodes= [3883, 3884, 3885, 883, 884, 885] persons= [2888, 2889, 2890]
+--- sas= [] oneiid_slice883 crp= 1
+--- 'expires': 1167127061
+886 1 oneiie_slice884 nodes= [3884, 3885, 3886, 884, 885, 886] persons= [2889, 2890, 2891]
+--- sas= [] oneiie_slice884 crp= 1
+--- 'expires': 1167127061
+887 1 oneiif_slice885 nodes= [3885, 3886, 3887, 885, 886, 887] persons= [2890, 2891, 2892]
+--- sas= [] oneiif_slice885 crp= 1
+--- 'expires': 1167127062
+888 1 oneiig_slice886 nodes= [3886, 3887, 3888, 886, 887, 888] persons= [2891, 2892, 2893]
+--- sas= [] oneiig_slice886 crp= 1
+--- 'expires': 1167127062
+889 1 oneiih_slice887 nodes= [3887, 3888, 3889, 887, 888, 889] persons= [2892, 2893, 2894]
+--- sas= [] oneiih_slice887 crp= 1
+--- 'expires': 1167127062
+890 1 oneiii_slice888 nodes= [3888, 3889, 3890, 888, 889, 890] persons= [2893, 2894, 2895]
+--- sas= [] oneiii_slice888 crp= 1
+--- 'expires': 1167127063
+891 1 oneiij_slice889 nodes= [3889, 3890, 3891, 889, 890, 891] persons= [2896, 2894, 2895]
+--- sas= [] oneiij_slice889 crp= 1
+--- 'expires': 1167127063
+892 1 oneija_slice890 nodes= [3890, 3891, 3892, 890, 891, 892] persons= [2896, 2897, 2895]
+--- sas= [] oneija_slice890 crp= 1
+--- 'expires': 1167127063
+893 1 oneijb_slice891 nodes= [3891, 3892, 3893, 891, 892, 893] persons= [2896, 2897, 2898]
+--- sas= [] oneijb_slice891 crp= 1
+--- 'expires': 1167127064
+894 1 oneijc_slice892 nodes= [3892, 3893, 3894, 892, 893, 894] persons= [2897, 2898, 2899]
+--- sas= [] oneijc_slice892 crp= 1
+--- 'expires': 1167127064
+895 1 oneijd_slice893 nodes= [3893, 3894, 3895, 893, 894, 895] persons= [2898, 2899, 2900]
+--- sas= [] oneijd_slice893 crp= 1
+--- 'expires': 1167127064
+896 1 oneije_slice894 nodes= [896, 3894, 3895, 3896, 894, 895] persons= [2899, 2900, 2901]
+--- sas= [] oneije_slice894 crp= 1
+--- 'expires': 1167127065
+897 1 oneijf_slice895 nodes= [896, 897, 3895, 3896, 3897, 895] persons= [2900, 2901, 2902]
+--- sas= [] oneijf_slice895 crp= 1
+--- 'expires': 1167127065
+898 1 oneijg_slice896 nodes= [896, 897, 898, 3896, 3897, 3898] persons= [2901, 2902, 2903]
+--- sas= [] oneijg_slice896 crp= 1
+--- 'expires': 1167127065
+899 1 oneijh_slice897 nodes= [897, 898, 899, 3897, 3898, 3899] persons= [2904, 2902, 2903]
+--- sas= [] oneijh_slice897 crp= 1
+--- 'expires': 1167127066
+900 1 oneiji_slice898 nodes= [898, 899, 900, 3898, 3899, 3900] persons= [2904, 2905, 2903]
+--- sas= [] oneiji_slice898 crp= 1
+--- 'expires': 1167127066
+901 1 oneijj_slice899 nodes= [899, 900, 901, 3899, 3900, 3901] persons= [2904, 2905, 2906]
+--- sas= [] oneijj_slice899 crp= 1
+--- 'expires': 1167127066
+902 1 onejaa_slice900 nodes= [900, 901, 902, 3900, 3901, 3902] persons= [2905, 2906, 2907]
+--- sas= [] onejaa_slice900 crp= 1
+--- 'expires': 1167127067
+903 1 onejab_slice901 nodes= [901, 902, 903, 3901, 3902, 3903] persons= [2906, 2907, 2908]
+--- sas= [] onejab_slice901 crp= 1
+--- 'expires': 1167127067
+904 1 onejac_slice902 nodes= [3904, 902, 903, 904, 3902, 3903] persons= [2907, 2908, 2909]
+--- sas= [] onejac_slice902 crp= 1
+--- 'expires': 1167127067
+905 1 onejad_slice903 nodes= [3904, 3905, 903, 904, 905, 3903] persons= [2908, 2909, 2910]
+--- sas= [] onejad_slice903 crp= 1
+--- 'expires': 1167127068
+906 1 onejae_slice904 nodes= [3904, 3905, 3906, 904, 905, 906] persons= [2909, 2910, 2911]
+--- sas= [] onejae_slice904 crp= 1
+--- 'expires': 1167127068
+907 1 onejaf_slice905 nodes= [3905, 3906, 3907, 905, 906, 907] persons= [2912, 2910, 2911]
+--- sas= [] onejaf_slice905 crp= 1
+--- 'expires': 1167127068
+908 1 onejag_slice906 nodes= [3906, 3907, 3908, 906, 907, 908] persons= [2912, 2913, 2911]
+--- sas= [] onejag_slice906 crp= 1
+--- 'expires': 1167127069
+909 1 onejah_slice907 nodes= [3907, 3908, 3909, 907, 908, 909] persons= [2912, 2913, 2914]
+--- sas= [] onejah_slice907 crp= 1
+--- 'expires': 1167127069
+910 1 onejai_slice908 nodes= [3908, 3909, 3910, 908, 909, 910] persons= [2913, 2914, 2915]
+--- sas= [] onejai_slice908 crp= 1
+--- 'expires': 1167127069
+911 1 onejaj_slice909 nodes= [3909, 3910, 3911, 909, 910, 911] persons= [2914, 2915, 2916]
+--- sas= [] onejaj_slice909 crp= 1
+--- 'expires': 1167127070
+912 1 onejba_slice910 nodes= [3910, 3911, 3912, 910, 911, 912] persons= [2915, 2916, 2917]
+--- sas= [] onejba_slice910 crp= 1
+--- 'expires': 1167127070
+913 1 onejbb_slice911 nodes= [3911, 3912, 3913, 911, 912, 913] persons= [2916, 2917, 2918]
+--- sas= [] onejbb_slice911 crp= 1
+--- 'expires': 1167127070
+914 1 onejbc_slice912 nodes= [3912, 3913, 3914, 912, 913, 914] persons= [2917, 2918, 2919]
+--- sas= [] onejbc_slice912 crp= 1
+--- 'expires': 1167127071
+915 1 onejbd_slice913 nodes= [3913, 3914, 3915, 913, 914, 915] persons= [2920, 2918, 2919]
+--- sas= [] onejbd_slice913 crp= 1
+--- 'expires': 1167127071
+916 1 onejbe_slice914 nodes= [3914, 3915, 3916, 914, 915, 916] persons= [2920, 2921, 2919]
+--- sas= [] onejbe_slice914 crp= 1
+--- 'expires': 1167127071
+917 1 onejbf_slice915 nodes= [3915, 3916, 3917, 915, 916, 917] persons= [2920, 2921, 2922]
+--- sas= [] onejbf_slice915 crp= 1
+--- 'expires': 1167127072
+918 1 onejbg_slice916 nodes= [3916, 3917, 3918, 916, 917, 918] persons= [2921, 2922, 2923]
+--- sas= [] onejbg_slice916 crp= 1
+--- 'expires': 1167127072
+919 1 onejbh_slice917 nodes= [3917, 3918, 3919, 917, 918, 919] persons= [2922, 2923, 2924]
+--- sas= [] onejbh_slice917 crp= 1
+--- 'expires': 1167127072
+920 1 onejbi_slice918 nodes= [3918, 3919, 3920, 918, 919, 920] persons= [2923, 2924, 2925]
+--- sas= [] onejbi_slice918 crp= 1
+--- 'expires': 1167127073
+921 1 onejbj_slice919 nodes= [3919, 3920, 3921, 919, 920, 921] persons= [2924, 2925, 2926]
+--- sas= [] onejbj_slice919 crp= 1
+--- 'expires': 1167127073
+922 1 onejca_slice920 nodes= [3920, 3921, 3922, 920, 921, 922] persons= [2925, 2926, 2927]
+--- sas= [] onejca_slice920 crp= 1
+--- 'expires': 1167127073
+923 1 onejcb_slice921 nodes= [3921, 3922, 3923, 921, 922, 923] persons= [2928, 2926, 2927]
+--- sas= [] onejcb_slice921 crp= 1
+--- 'expires': 1167127074
+924 1 onejcc_slice922 nodes= [3922, 3923, 3924, 922, 923, 924] persons= [2928, 2929, 2927]
+--- sas= [] onejcc_slice922 crp= 1
+--- 'expires': 1167127074
+925 1 onejcd_slice923 nodes= [3923, 3924, 3925, 923, 924, 925] persons= [2928, 2929, 2930]
+--- sas= [] onejcd_slice923 crp= 1
+--- 'expires': 1167127074
+926 1 onejce_slice924 nodes= [3924, 3925, 3926, 924, 925, 926] persons= [2929, 2930, 2931]
+--- sas= [] onejce_slice924 crp= 1
+--- 'expires': 1167127075
+927 1 onejcf_slice925 nodes= [3925, 3926, 3927, 925, 926, 927] persons= [2930, 2931, 2932]
+--- sas= [] onejcf_slice925 crp= 1
+--- 'expires': 1167127075
+928 1 onejcg_slice926 nodes= [928, 3926, 3927, 3928, 926, 927] persons= [2931, 2932, 2933]
+--- sas= [] onejcg_slice926 crp= 1
+--- 'expires': 1167127075
+929 1 onejch_slice927 nodes= [928, 929, 3927, 3928, 3929, 927] persons= [2932, 2933, 2934]
+--- sas= [] onejch_slice927 crp= 1
+--- 'expires': 1167127076
+930 1 onejci_slice928 nodes= [928, 929, 930, 3928, 3929, 3930] persons= [2933, 2934, 2935]
+--- sas= [] onejci_slice928 crp= 1
+--- 'expires': 1167127076
+931 1 onejcj_slice929 nodes= [929, 930, 931, 3929, 3930, 3931] persons= [2936, 2934, 2935]
+--- sas= [] onejcj_slice929 crp= 1
+--- 'expires': 1167127076
+932 1 onejda_slice930 nodes= [930, 931, 932, 3930, 3931, 3932] persons= [2936, 2937, 2935]
+--- sas= [] onejda_slice930 crp= 1
+--- 'expires': 1167127077
+933 1 onejdb_slice931 nodes= [931, 932, 933, 3931, 3932, 3933] persons= [2936, 2937, 2938]
+--- sas= [] onejdb_slice931 crp= 1
+--- 'expires': 1167127077
+934 1 onejdc_slice932 nodes= [932, 933, 934, 3932, 3933, 3934] persons= [2937, 2938, 2939]
+--- sas= [] onejdc_slice932 crp= 1
+--- 'expires': 1167127077
+935 1 onejdd_slice933 nodes= [933, 934, 935, 3933, 3934, 3935] persons= [2938, 2939, 2940]
+--- sas= [] onejdd_slice933 crp= 1
+--- 'expires': 1167127078
+936 1 onejde_slice934 nodes= [3936, 934, 935, 936, 3934, 3935] persons= [2939, 2940, 2941]
+--- sas= [] onejde_slice934 crp= 1
+--- 'expires': 1167127078
+937 1 onejdf_slice935 nodes= [3936, 3937, 935, 936, 937, 3935] persons= [2940, 2941, 2942]
+--- sas= [] onejdf_slice935 crp= 1
+--- 'expires': 1167127078
+938 1 onejdg_slice936 nodes= [3936, 3937, 3938, 936, 937, 938] persons= [2941, 2942, 2943]
+--- sas= [] onejdg_slice936 crp= 1
+--- 'expires': 1167127079
+939 1 onejdh_slice937 nodes= [3937, 3938, 3939, 937, 938, 939] persons= [2944, 2942, 2943]
+--- sas= [] onejdh_slice937 crp= 1
+--- 'expires': 1167127079
+940 1 onejdi_slice938 nodes= [3938, 3939, 3940, 938, 939, 940] persons= [2944, 2945, 2943]
+--- sas= [] onejdi_slice938 crp= 1
+--- 'expires': 1167127079
+941 1 onejdj_slice939 nodes= [3939, 3940, 3941, 939, 940, 941] persons= [2944, 2945, 2946]
+--- sas= [] onejdj_slice939 crp= 1
+--- 'expires': 1167127080
+942 1 onejea_slice940 nodes= [3940, 3941, 3942, 940, 941, 942] persons= [2945, 2946, 2947]
+--- sas= [] onejea_slice940 crp= 1
+--- 'expires': 1167127080
+943 1 onejeb_slice941 nodes= [3941, 3942, 3943, 941, 942, 943] persons= [2946, 2947, 2948]
+--- sas= [] onejeb_slice941 crp= 1
+--- 'expires': 1167127080
+944 1 onejec_slice942 nodes= [3942, 3943, 3944, 942, 943, 944] persons= [2947, 2948, 2949]
+--- sas= [] onejec_slice942 crp= 1
+--- 'expires': 1167127081
+945 1 onejed_slice943 nodes= [3943, 3944, 3945, 943, 944, 945] persons= [2948, 2949, 2950]
+--- sas= [] onejed_slice943 crp= 1
+--- 'expires': 1167127081
+946 1 onejee_slice944 nodes= [3944, 3945, 3946, 944, 945, 946] persons= [2949, 2950, 2951]
+--- sas= [] onejee_slice944 crp= 1
+--- 'expires': 1167127081
+947 1 onejef_slice945 nodes= [3945, 3946, 3947, 945, 946, 947] persons= [2952, 2950, 2951]
+--- sas= [] onejef_slice945 crp= 1
+--- 'expires': 1167127082
+948 1 onejeg_slice946 nodes= [3946, 3947, 3948, 946, 947, 948] persons= [2952, 2953, 2951]
+--- sas= [] onejeg_slice946 crp= 1
+--- 'expires': 1167127082
+949 1 onejeh_slice947 nodes= [3947, 3948, 3949, 947, 948, 949] persons= [2952, 2953, 2954]
+--- sas= [] onejeh_slice947 crp= 1
+--- 'expires': 1167127082
+950 1 onejei_slice948 nodes= [3948, 3949, 3950, 948, 949, 950] persons= [2953, 2954, 2955]
+--- sas= [] onejei_slice948 crp= 1
+--- 'expires': 1167127083
+951 1 onejej_slice949 nodes= [3949, 3950, 3951, 949, 950, 951] persons= [2954, 2955, 2956]
+--- sas= [] onejej_slice949 crp= 1
+--- 'expires': 1167127083
+952 1 onejfa_slice950 nodes= [3950, 3951, 3952, 950, 951, 952] persons= [2955, 2956, 2957]
+--- sas= [] onejfa_slice950 crp= 1
+--- 'expires': 1167127083
+953 1 onejfb_slice951 nodes= [3951, 3952, 3953, 951, 952, 953] persons= [2956, 2957, 2958]
+--- sas= [] onejfb_slice951 crp= 1
+--- 'expires': 1167127084
+954 1 onejfc_slice952 nodes= [3952, 3953, 3954, 952, 953, 954] persons= [2957, 2958, 2959]
+--- sas= [] onejfc_slice952 crp= 1
+--- 'expires': 1167127084
+955 1 onejfd_slice953 nodes= [3953, 3954, 3955, 953, 954, 955] persons= [2960, 2958, 2959]
+--- sas= [] onejfd_slice953 crp= 1
+--- 'expires': 1167127084
+956 1 onejfe_slice954 nodes= [3954, 3955, 3956, 954, 955, 956] persons= [2960, 2961, 2959]
+--- sas= [] onejfe_slice954 crp= 1
+--- 'expires': 1167127085
+957 1 onejff_slice955 nodes= [3955, 3956, 3957, 955, 956, 957] persons= [2960, 2961, 2962]
+--- sas= [] onejff_slice955 crp= 1
+--- 'expires': 1167127085
+958 1 onejfg_slice956 nodes= [3956, 3957, 3958, 956, 957, 958] persons= [2961, 2962, 2963]
+--- sas= [] onejfg_slice956 crp= 1
+--- 'expires': 1167127085
+959 1 onejfh_slice957 nodes= [3957, 3958, 3959, 957, 958, 959] persons= [2962, 2963, 2964]
+--- sas= [] onejfh_slice957 crp= 1
+--- 'expires': 1167127086
+960 1 onejfi_slice958 nodes= [960, 3958, 3959, 3960, 958, 959] persons= [2963, 2964, 2965]
+--- sas= [] onejfi_slice958 crp= 1
+--- 'expires': 1167127086
+961 1 onejfj_slice959 nodes= [960, 961, 3959, 3960, 3961, 959] persons= [2964, 2965, 2966]
+--- sas= [] onejfj_slice959 crp= 1
+--- 'expires': 1167127086
+962 1 onejga_slice960 nodes= [960, 961, 962, 3960, 3961, 3962] persons= [2965, 2966, 2967]
+--- sas= [] onejga_slice960 crp= 1
+--- 'expires': 1167127087
+963 1 onejgb_slice961 nodes= [961, 962, 963, 3961, 3962, 3963] persons= [2968, 2966, 2967]
+--- sas= [] onejgb_slice961 crp= 1
+--- 'expires': 1167127087
+964 1 onejgc_slice962 nodes= [962, 963, 964, 3962, 3963, 3964] persons= [2968, 2969, 2967]
+--- sas= [] onejgc_slice962 crp= 1
+--- 'expires': 1167127087
+965 1 onejgd_slice963 nodes= [963, 964, 965, 3963, 3964, 3965] persons= [2968, 2969, 2970]
+--- sas= [] onejgd_slice963 crp= 1
+--- 'expires': 1167127088
+966 1 onejge_slice964 nodes= [964, 965, 966, 3964, 3965, 3966] persons= [2969, 2970, 2971]
+--- sas= [] onejge_slice964 crp= 1
+--- 'expires': 1167127088
+967 1 onejgf_slice965 nodes= [965, 966, 967, 3965, 3966, 3967] persons= [2970, 2971, 2972]
+--- sas= [] onejgf_slice965 crp= 1
+--- 'expires': 1167127088
+968 1 onejgg_slice966 nodes= [3968, 966, 967, 968, 3966, 3967] persons= [2971, 2972, 2973]
+--- sas= [] onejgg_slice966 crp= 1
+--- 'expires': 1167127089
+969 1 onejgh_slice967 nodes= [3968, 3969, 967, 968, 969, 3967] persons= [2972, 2973, 2974]
+--- sas= [] onejgh_slice967 crp= 1
+--- 'expires': 1167127089
+970 1 onejgi_slice968 nodes= [3968, 3969, 3970, 968, 969, 970] persons= [2973, 2974, 2975]
+--- sas= [] onejgi_slice968 crp= 1
+--- 'expires': 1167127089
+971 1 onejgj_slice969 nodes= [3969, 3970, 3971, 969, 970, 971] persons= [2976, 2974, 2975]
+--- sas= [] onejgj_slice969 crp= 1
+--- 'expires': 1167127090
+972 1 onejha_slice970 nodes= [3970, 3971, 3972, 970, 971, 972] persons= [2976, 2977, 2975]
+--- sas= [] onejha_slice970 crp= 1
+--- 'expires': 1167127090
+973 1 onejhb_slice971 nodes= [3971, 3972, 3973, 971, 972, 973] persons= [2976, 2977, 2978]
+--- sas= [] onejhb_slice971 crp= 1
+--- 'expires': 1167127090
+974 1 onejhc_slice972 nodes= [3972, 3973, 3974, 972, 973, 974] persons= [2977, 2978, 2979]
+--- sas= [] onejhc_slice972 crp= 1
+--- 'expires': 1167127091
+975 1 onejhd_slice973 nodes= [3973, 3974, 3975, 973, 974, 975] persons= [2978, 2979, 2980]
+--- sas= [] onejhd_slice973 crp= 1
+--- 'expires': 1167127091
+976 1 onejhe_slice974 nodes= [3974, 3975, 3976, 974, 975, 976] persons= [2979, 2980, 2981]
+--- sas= [] onejhe_slice974 crp= 1
+--- 'expires': 1167127091
+977 1 onejhf_slice975 nodes= [3975, 3976, 3977, 975, 976, 977] persons= [2980, 2981, 2982]
+--- sas= [] onejhf_slice975 crp= 1
+--- 'expires': 1167127092
+978 1 onejhg_slice976 nodes= [3976, 3977, 3978, 976, 977, 978] persons= [2981, 2982, 2983]
+--- sas= [] onejhg_slice976 crp= 1
+--- 'expires': 1167127092
+979 1 onejhh_slice977 nodes= [3977, 3978, 3979, 977, 978, 979] persons= [2984, 2982, 2983]
+--- sas= [] onejhh_slice977 crp= 1
+--- 'expires': 1167127092
+980 1 onejhi_slice978 nodes= [3978, 3979, 3980, 978, 979, 980] persons= [2984, 2985, 2983]
+--- sas= [] onejhi_slice978 crp= 1
+--- 'expires': 1167127093
+981 1 onejhj_slice979 nodes= [3979, 3980, 3981, 979, 980, 981] persons= [2984, 2985, 2986]
+--- sas= [] onejhj_slice979 crp= 1
+--- 'expires': 1167127093
+982 1 onejia_slice980 nodes= [3980, 3981, 3982, 980, 981, 982] persons= [2985, 2986, 2987]
+--- sas= [] onejia_slice980 crp= 1
+--- 'expires': 1167127093
+983 1 onejib_slice981 nodes= [3981, 3982, 3983, 981, 982, 983] persons= [2986, 2987, 2988]
+--- sas= [] onejib_slice981 crp= 1
+--- 'expires': 1167127094
+984 1 onejic_slice982 nodes= [3982, 3983, 3984, 982, 983, 984] persons= [2987, 2988, 2989]
+--- sas= [] onejic_slice982 crp= 1
+--- 'expires': 1167127094
+985 1 onejid_slice983 nodes= [3983, 3984, 3985, 983, 984, 985] persons= [2988, 2989, 2990]
+--- sas= [] onejid_slice983 crp= 1
+--- 'expires': 1167127094
+986 1 onejie_slice984 nodes= [3984, 3985, 3986, 984, 985, 986] persons= [2989, 2990, 2991]
+--- sas= [] onejie_slice984 crp= 1
+--- 'expires': 1167127095
+987 1 onejif_slice985 nodes= [3985, 3986, 3987, 985, 986, 987] persons= [2992, 2990, 2991]
+--- sas= [] onejif_slice985 crp= 1
+--- 'expires': 1167127095
+988 1 onejig_slice986 nodes= [3986, 3987, 3988, 986, 987, 988] persons= [2992, 2993, 2991]
+--- sas= [] onejig_slice986 crp= 1
+--- 'expires': 1167127095
+989 1 onejih_slice987 nodes= [3987, 3988, 3989, 987, 988, 989] persons= [2992, 2993, 2994]
+--- sas= [] onejih_slice987 crp= 1
+--- 'expires': 1167127096
+990 1 onejii_slice988 nodes= [3988, 3989, 3990, 988, 989, 990] persons= [2993, 2994, 2995]
+--- sas= [] onejii_slice988 crp= 1
+--- 'expires': 1167127096
+991 1 onejij_slice989 nodes= [3989, 3990, 3991, 989, 990, 991] persons= [2994, 2995, 2996]
+--- sas= [] onejij_slice989 crp= 1
+--- 'expires': 1167127096
+992 1 onejja_slice990 nodes= [992, 3990, 3991, 3992, 990, 991] persons= [2995, 2996, 2997]
+--- sas= [] onejja_slice990 crp= 1
+--- 'expires': 1167127097
+993 1 onejjb_slice991 nodes= [992, 993, 3991, 3992, 3993, 991] persons= [2996, 2997, 2998]
+--- sas= [] onejjb_slice991 crp= 1
+--- 'expires': 1167127097
+994 1 onejjc_slice992 nodes= [992, 993, 994, 3992, 3993, 3994] persons= [2997, 2998, 2999]
+--- sas= [] onejjc_slice992 crp= 1
+--- 'expires': 1167127097
+995 1 onejjd_slice993 nodes= [993, 994, 995, 3993, 3994, 3995] persons= [3000, 2998, 2999]
+--- sas= [] onejjd_slice993 crp= 1
+--- 'expires': 1167127098
+996 1 onejje_slice994 nodes= [994, 995, 996, 3994, 3995, 3996] persons= [3000, 3001, 2999]
+--- sas= [] onejje_slice994 crp= 1
+--- 'expires': 1167127098
+997 1 onejjf_slice995 nodes= [995, 996, 997, 3995, 3996, 3997] persons= [3000, 3001, 3002]
+--- sas= [] onejjf_slice995 crp= 1
+--- 'expires': 1167127098
+998 1 onejjg_slice996 nodes= [996, 997, 998, 3996, 3997, 3998] persons= [3001, 3002, 3003]
+--- sas= [] onejjg_slice996 crp= 1
+--- 'expires': 1167127099
+999 1 onejjh_slice997 nodes= [997, 998, 999, 3997, 3998, 3999] persons= [3002, 3003, 3004]
+--- sas= [] onejjh_slice997 crp= 1
+--- 'expires': 1167127099
+1000 1 onejji_slice998 nodes= [4000, 998, 999, 1000, 3998, 3999] persons= [3003, 3004, 3005]
+--- sas= [] onejji_slice998 crp= 1
+--- 'expires': 1167127100
+1001 1 onejjj_slice999 nodes= [4000, 4001, 999, 1000, 1001, 3999] persons= [3004, 3005, 3006]
+--- sas= [] onejjj_slice999 crp= 1
+--- 'expires': 1167127100
+1002 1 onebaaa_slice1000 nodes= [4000, 4001, 4002, 1000, 1001, 1002] persons= [3005, 3006, 3007]
+--- sas= [] onebaaa_slice1000 crp= 1
+--- 'expires': 1167127100
+1003 1 oneb_slice1001 nodes= [4001, 4002, 4003, 1001, 1002, 1003] persons= [3008, 3006, 3007]
+--- sas= [] oneb_slice1001 crp= 1
+--- 'expires': 1167127101
+1004 1 onec_slice1002 nodes= [4002, 4003, 4004, 1002, 1003, 1004] persons= [3008, 3009, 3007]
+--- sas= [] onec_slice1002 crp= 1
+--- 'expires': 1167127101
+1005 1 oned_slice1003 nodes= [4003, 4004, 4005, 1003, 1004, 1005] persons= [3008, 3009, 3010]
+--- sas= [] oned_slice1003 crp= 1
+--- 'expires': 1167127101
+1006 1 onee_slice1004 nodes= [4004, 4005, 4006, 1004, 1005, 1006] persons= [3009, 3010, 3011]
+--- sas= [] onee_slice1004 crp= 1
+--- 'expires': 1167127102
+1007 1 onef_slice1005 nodes= [4005, 4006, 4007, 1005, 1006, 1007] persons= [3010, 3011, 3012]
+--- sas= [] onef_slice1005 crp= 1
+--- 'expires': 1167127102
+1008 1 oneg_slice1006 nodes= [4006, 4007, 4008, 1006, 1007, 1008] persons= [3011, 3012, 3013]
+--- sas= [] oneg_slice1006 crp= 1
+--- 'expires': 1167127102
+1009 1 oneh_slice1007 nodes= [4007, 4008, 4009, 1007, 1008, 1009] persons= [3012, 3013, 3014]
+--- sas= [] oneh_slice1007 crp= 1
+--- 'expires': 1167127103
+1010 1 onei_slice1008 nodes= [4008, 4009, 4010, 1008, 1009, 1010] persons= [3013, 3014, 3015]
+--- sas= [] onei_slice1008 crp= 1
+--- 'expires': 1167127103
+1011 1 onej_slice1009 nodes= [4009, 4010, 4011, 1009, 1010, 1011] persons= [3016, 3014, 3015]
+--- sas= [] onej_slice1009 crp= 1
+--- 'expires': 1167127103
+1012 1 oneba_slice1010 nodes= [4010, 4011, 4012, 1010, 1011, 1012] persons= [3016, 3017, 3015]
+--- sas= [] oneba_slice1010 crp= 1
+--- 'expires': 1167127104
+1013 1 onebb_slice1011 nodes= [4011, 4012, 4013, 1011, 1012, 1013] persons= [3016, 3017, 3018]
+--- sas= [] onebb_slice1011 crp= 1
+--- 'expires': 1167127104
+1014 1 onebc_slice1012 nodes= [4012, 4013, 4014, 1012, 1013, 1014] persons= [3017, 3018, 3019]
+--- sas= [] onebc_slice1012 crp= 1
+--- 'expires': 1167127104
+1015 1 onebd_slice1013 nodes= [4013, 4014, 4015, 1013, 1014, 1015] persons= [3018, 3019, 3020]
+--- sas= [] onebd_slice1013 crp= 1
+--- 'expires': 1167127105
+1016 1 onebe_slice1014 nodes= [4014, 4015, 4016, 1014, 1015, 1016] persons= [3019, 3020, 3021]
+--- sas= [] onebe_slice1014 crp= 1
+--- 'expires': 1167127105
+1017 1 onebf_slice1015 nodes= [4015, 4016, 4017, 1015, 1016, 1017] persons= [3020, 3021, 3022]
+--- sas= [] onebf_slice1015 crp= 1
+--- 'expires': 1167127105
+1018 1 onebg_slice1016 nodes= [4016, 4017, 4018, 1016, 1017, 1018] persons= [3021, 3022, 3023]
+--- sas= [] onebg_slice1016 crp= 1
+--- 'expires': 1167127106
+1019 1 onebh_slice1017 nodes= [4017, 4018, 4019, 1017, 1018, 1019] persons= [3024, 3022, 3023]
+--- sas= [] onebh_slice1017 crp= 1
+--- 'expires': 1167127106
+1020 1 onebi_slice1018 nodes= [4018, 4019, 4020, 1018, 1019, 1020] persons= [3024, 3025, 3023]
+--- sas= [] onebi_slice1018 crp= 1
+--- 'expires': 1167127106
+1021 1 onebj_slice1019 nodes= [4019, 4020, 4021, 1019, 1020, 1021] persons= [3024, 3025, 3026]
+--- sas= [] onebj_slice1019 crp= 1
+--- 'expires': 1167127107
+1022 1 oneca_slice1020 nodes= [4020, 4021, 4022, 1020, 1021, 1022] persons= [3025, 3026, 3027]
+--- sas= [] oneca_slice1020 crp= 1
+--- 'expires': 1167127107
+1023 1 onecb_slice1021 nodes= [4021, 4022, 4023, 1021, 1022, 1023] persons= [3026, 3027, 3028]
+--- sas= [] onecb_slice1021 crp= 1
+--- 'expires': 1167127107
+1024 1 onecc_slice1022 nodes= [1024, 4022, 4023, 4024, 1022, 1023] persons= [3027, 3028, 3029]
+--- sas= [] onecc_slice1022 crp= 1
+--- 'expires': 1167127108
+1025 1 onecd_slice1023 nodes= [1024, 1025, 4023, 4024, 4025, 1023] persons= [3028, 3029, 3030]
+--- sas= [] onecd_slice1023 crp= 1
+--- 'expires': 1167127108
+1026 1 onece_slice1024 nodes= [1024, 1025, 1026, 4024, 4025, 4026] persons= [3029, 3030, 3031]
+--- sas= [] onece_slice1024 crp= 1
+--- 'expires': 1167127108
+1027 1 onecf_slice1025 nodes= [1025, 1026, 1027, 4025, 4026, 4027] persons= [3032, 3030, 3031]
+--- sas= [] onecf_slice1025 crp= 1
+--- 'expires': 1167127109
+1028 1 onecg_slice1026 nodes= [1026, 1027, 1028, 4026, 4027, 4028] persons= [3032, 3033, 3031]
+--- sas= [] onecg_slice1026 crp= 1
+--- 'expires': 1167127109
+1029 1 onech_slice1027 nodes= [1027, 1028, 1029, 4027, 4028, 4029] persons= [3032, 3033, 3034]
+--- sas= [] onech_slice1027 crp= 1
+--- 'expires': 1167127110
+1030 1 oneci_slice1028 nodes= [1028, 1029, 1030, 4028, 4029, 4030] persons= [3033, 3034, 3035]
+--- sas= [] oneci_slice1028 crp= 1
+--- 'expires': 1167127110
+1031 1 onecj_slice1029 nodes= [1029, 1030, 1031, 4029, 4030, 4031] persons= [3034, 3035, 3036]
+--- sas= [] onecj_slice1029 crp= 1
+--- 'expires': 1167127110
+1032 1 oneda_slice1030 nodes= [4032, 1030, 1031, 1032, 4030, 4031] persons= [3035, 3036, 3037]
+--- sas= [] oneda_slice1030 crp= 1
+--- 'expires': 1167127111
+1033 1 onedb_slice1031 nodes= [4032, 4033, 1031, 1032, 1033, 4031] persons= [3036, 3037, 3038]
+--- sas= [] onedb_slice1031 crp= 1
+--- 'expires': 1167127111
+1034 1 onedc_slice1032 nodes= [4032, 4033, 4034, 1032, 1033, 1034] persons= [3037, 3038, 3039]
+--- sas= [] onedc_slice1032 crp= 1
+--- 'expires': 1167127111
+1035 1 onedd_slice1033 nodes= [4033, 4034, 4035, 1033, 1034, 1035] persons= [3040, 3038, 3039]
+--- sas= [] onedd_slice1033 crp= 1
+--- 'expires': 1167127112
+1036 1 onede_slice1034 nodes= [4034, 4035, 4036, 1034, 1035, 1036] persons= [3040, 3041, 3039]
+--- sas= [] onede_slice1034 crp= 1
+--- 'expires': 1167127112
+1037 1 onedf_slice1035 nodes= [4035, 4036, 4037, 1035, 1036, 1037] persons= [3040, 3041, 3042]
+--- sas= [] onedf_slice1035 crp= 1
+--- 'expires': 1167127112
+1038 1 onedg_slice1036 nodes= [4036, 4037, 4038, 1036, 1037, 1038] persons= [3041, 3042, 3043]
+--- sas= [] onedg_slice1036 crp= 1
+--- 'expires': 1167127113
+1039 1 onedh_slice1037 nodes= [4037, 4038, 4039, 1037, 1038, 1039] persons= [3042, 3043, 3044]
+--- sas= [] onedh_slice1037 crp= 1
+--- 'expires': 1167127113
+1040 1 onedi_slice1038 nodes= [4038, 4039, 4040, 1038, 1039, 1040] persons= [3043, 3044, 3045]
+--- sas= [] onedi_slice1038 crp= 1
+--- 'expires': 1167127113
+1041 1 onedj_slice1039 nodes= [4039, 4040, 4041, 1039, 1040, 1041] persons= [3044, 3045, 3046]
+--- sas= [] onedj_slice1039 crp= 1
+--- 'expires': 1167127114
+1042 1 oneea_slice1040 nodes= [4040, 4041, 4042, 1040, 1041, 1042] persons= [3045, 3046, 3047]
+--- sas= [] oneea_slice1040 crp= 1
+--- 'expires': 1167127114
+1043 1 oneeb_slice1041 nodes= [4041, 4042, 4043, 1041, 1042, 1043] persons= [3048, 3046, 3047]
+--- sas= [] oneeb_slice1041 crp= 1
+--- 'expires': 1167127114
+1044 1 oneec_slice1042 nodes= [4042, 4043, 4044, 1042, 1043, 1044] persons= [3048, 3049, 3047]
+--- sas= [] oneec_slice1042 crp= 1
+--- 'expires': 1167127115
+1045 1 oneed_slice1043 nodes= [4043, 4044, 4045, 1043, 1044, 1045] persons= [3048, 3049, 3050]
+--- sas= [] oneed_slice1043 crp= 1
+--- 'expires': 1167127115
+1046 1 oneee_slice1044 nodes= [4044, 4045, 4046, 1044, 1045, 1046] persons= [3049, 3050, 3051]
+--- sas= [] oneee_slice1044 crp= 1
+--- 'expires': 1167127115
+1047 1 oneef_slice1045 nodes= [4045, 4046, 4047, 1045, 1046, 1047] persons= [3050, 3051, 3052]
+--- sas= [] oneef_slice1045 crp= 1
+--- 'expires': 1167127116
+1048 1 oneeg_slice1046 nodes= [4046, 4047, 4048, 1046, 1047, 1048] persons= [3051, 3052, 3053]
+--- sas= [] oneeg_slice1046 crp= 1
+--- 'expires': 1167127116
+1049 1 oneeh_slice1047 nodes= [4047, 4048, 4049, 1047, 1048, 1049] persons= [3052, 3053, 3054]
+--- sas= [] oneeh_slice1047 crp= 1
+--- 'expires': 1167127117
+1050 1 oneei_slice1048 nodes= [4048, 4049, 4050, 1048, 1049, 1050] persons= [3053, 3054, 3055]
+--- sas= [] oneei_slice1048 crp= 1
+--- 'expires': 1167127117
+1051 1 oneej_slice1049 nodes= [4049, 4050, 4051, 1049, 1050, 1051] persons= [3056, 3054, 3055]
+--- sas= [] oneej_slice1049 crp= 1
+--- 'expires': 1167127117
+1052 1 onefa_slice1050 nodes= [4050, 4051, 4052, 1050, 1051, 1052] persons= [3056, 3057, 3055]
+--- sas= [] onefa_slice1050 crp= 1
+--- 'expires': 1167127118
+1053 1 onefb_slice1051 nodes= [4051, 4052, 4053, 1051, 1052, 1053] persons= [3056, 3057, 3058]
+--- sas= [] onefb_slice1051 crp= 1
+--- 'expires': 1167127118
+1054 1 onefc_slice1052 nodes= [4052, 4053, 4054, 1052, 1053, 1054] persons= [3057, 3058, 3059]
+--- sas= [] onefc_slice1052 crp= 1
+--- 'expires': 1167127118
+1055 1 onefd_slice1053 nodes= [4053, 4054, 4055, 1053, 1054, 1055] persons= [3058, 3059, 3060]
+--- sas= [] onefd_slice1053 crp= 1
+--- 'expires': 1167127119
+1056 1 onefe_slice1054 nodes= [1056, 4054, 4055, 4056, 1054, 1055] persons= [3059, 3060, 3061]
+--- sas= [] onefe_slice1054 crp= 1
+--- 'expires': 1167127119
+1057 1 oneff_slice1055 nodes= [1056, 1057, 4055, 4056, 4057, 1055] persons= [3060, 3061, 3062]
+--- sas= [] oneff_slice1055 crp= 1
+--- 'expires': 1167127119
+1058 1 onefg_slice1056 nodes= [1056, 1057, 1058, 4056, 4057, 4058] persons= [3061, 3062, 3063]
+--- sas= [] onefg_slice1056 crp= 1
+--- 'expires': 1167127120
+1059 1 onefh_slice1057 nodes= [1057, 1058, 1059, 4057, 4058, 4059] persons= [3064, 3062, 3063]
+--- sas= [] onefh_slice1057 crp= 1
+--- 'expires': 1167127120
+1060 1 onefi_slice1058 nodes= [1058, 1059, 1060, 4058, 4059, 4060] persons= [3064, 3065, 3063]
+--- sas= [] onefi_slice1058 crp= 1
+--- 'expires': 1167127120
+1061 1 onefj_slice1059 nodes= [1059, 1060, 1061, 4059, 4060, 4061] persons= [3064, 3065, 3066]
+--- sas= [] onefj_slice1059 crp= 1
+--- 'expires': 1167127121
+1062 1 onega_slice1060 nodes= [1060, 1061, 1062, 4060, 4061, 4062] persons= [3065, 3066, 3067]
+--- sas= [] onega_slice1060 crp= 1
+--- 'expires': 1167127121
+1063 1 onegb_slice1061 nodes= [1061, 1062, 1063, 4061, 4062, 4063] persons= [3066, 3067, 3068]
+--- sas= [] onegb_slice1061 crp= 1
+--- 'expires': 1167127121
+1064 1 onegc_slice1062 nodes= [4064, 1062, 1063, 1064, 4062, 4063] persons= [3067, 3068, 3069]
+--- sas= [] onegc_slice1062 crp= 1
+--- 'expires': 1167127122
+1065 1 onegd_slice1063 nodes= [4064, 4065, 1063, 1064, 1065, 4063] persons= [3068, 3069, 3070]
+--- sas= [] onegd_slice1063 crp= 1
+--- 'expires': 1167127122
+1066 1 onege_slice1064 nodes= [4064, 4065, 4066, 1064, 1065, 1066] persons= [3069, 3070, 3071]
+--- sas= [] onege_slice1064 crp= 1
+--- 'expires': 1167127123
+1067 1 onegf_slice1065 nodes= [4065, 4066, 4067, 1065, 1066, 1067] persons= [3072, 3070, 3071]
+--- sas= [] onegf_slice1065 crp= 1
+--- 'expires': 1167127123
+1068 1 onegg_slice1066 nodes= [4066, 4067, 4068, 1066, 1067, 1068] persons= [3072, 3073, 3071]
+--- sas= [] onegg_slice1066 crp= 1
+--- 'expires': 1167127123
+1069 1 onegh_slice1067 nodes= [4067, 4068, 4069, 1067, 1068, 1069] persons= [3072, 3073, 3074]
+--- sas= [] onegh_slice1067 crp= 1
+--- 'expires': 1167127124
+1070 1 onegi_slice1068 nodes= [4068, 4069, 4070, 1068, 1069, 1070] persons= [3073, 3074, 3075]
+--- sas= [] onegi_slice1068 crp= 1
+--- 'expires': 1167127124
+1071 1 onegj_slice1069 nodes= [4069, 4070, 4071, 1069, 1070, 1071] persons= [3074, 3075, 3076]
+--- sas= [] onegj_slice1069 crp= 1
+--- 'expires': 1167127124
+1072 1 oneha_slice1070 nodes= [4070, 4071, 4072, 1070, 1071, 1072] persons= [3075, 3076, 3077]
+--- sas= [] oneha_slice1070 crp= 1
+--- 'expires': 1167127125
+1073 1 onehb_slice1071 nodes= [4071, 4072, 4073, 1071, 1072, 1073] persons= [3076, 3077, 3078]
+--- sas= [] onehb_slice1071 crp= 1
+--- 'expires': 1167127125
+1074 1 onehc_slice1072 nodes= [4072, 4073, 4074, 1072, 1073, 1074] persons= [3077, 3078, 3079]
+--- sas= [] onehc_slice1072 crp= 1
+--- 'expires': 1167127125
+1075 1 onehd_slice1073 nodes= [4073, 4074, 4075, 1073, 1074, 1075] persons= [3080, 3078, 3079]
+--- sas= [] onehd_slice1073 crp= 1
+--- 'expires': 1167127126
+1076 1 onehe_slice1074 nodes= [4074, 4075, 4076, 1074, 1075, 1076] persons= [3080, 3081, 3079]
+--- sas= [] onehe_slice1074 crp= 1
+--- 'expires': 1167127126
+1077 1 onehf_slice1075 nodes= [4075, 4076, 4077, 1075, 1076, 1077] persons= [3080, 3081, 3082]
+--- sas= [] onehf_slice1075 crp= 1
+--- 'expires': 1167127126
+1078 1 onehg_slice1076 nodes= [4076, 4077, 4078, 1076, 1077, 1078] persons= [3081, 3082, 3083]
+--- sas= [] onehg_slice1076 crp= 1
+--- 'expires': 1167127127
+1079 1 onehh_slice1077 nodes= [4077, 4078, 4079, 1077, 1078, 1079] persons= [3082, 3083, 3084]
+--- sas= [] onehh_slice1077 crp= 1
+--- 'expires': 1167127127
+1080 1 onehi_slice1078 nodes= [4078, 4079, 4080, 1078, 1079, 1080] persons= [3083, 3084, 3085]
+--- sas= [] onehi_slice1078 crp= 1
+--- 'expires': 1167127127
+1081 1 onehj_slice1079 nodes= [4079, 4080, 4081, 1079, 1080, 1081] persons= [3084, 3085, 3086]
+--- sas= [] onehj_slice1079 crp= 1
+--- 'expires': 1167127128
+1082 1 oneia_slice1080 nodes= [4080, 4081, 4082, 1080, 1081, 1082] persons= [3085, 3086, 3087]
+--- sas= [] oneia_slice1080 crp= 1
+--- 'expires': 1167127128
+1083 1 oneib_slice1081 nodes= [4081, 4082, 4083, 1081, 1082, 1083] persons= [3088, 3086, 3087]
+--- sas= [] oneib_slice1081 crp= 1
+--- 'expires': 1167127129
+1084 1 oneic_slice1082 nodes= [4082, 4083, 4084, 1082, 1083, 1084] persons= [3088, 3089, 3087]
+--- sas= [] oneic_slice1082 crp= 1
+--- 'expires': 1167127129
+1085 1 oneid_slice1083 nodes= [4083, 4084, 4085, 1083, 1084, 1085] persons= [3088, 3089, 3090]
+--- sas= [] oneid_slice1083 crp= 1
+--- 'expires': 1167127129
+1086 1 oneie_slice1084 nodes= [4084, 4085, 4086, 1084, 1085, 1086] persons= [3089, 3090, 3091]
+--- sas= [] oneie_slice1084 crp= 1
+--- 'expires': 1167127130
+1087 1 oneif_slice1085 nodes= [4085, 4086, 4087, 1085, 1086, 1087] persons= [3090, 3091, 3092]
+--- sas= [] oneif_slice1085 crp= 1
+--- 'expires': 1167127130
+1088 1 oneig_slice1086 nodes= [1088, 4086, 4087, 4088, 1086, 1087] persons= [3091, 3092, 3093]
+--- sas= [] oneig_slice1086 crp= 1
+--- 'expires': 1167127130
+1089 1 oneih_slice1087 nodes= [1088, 1089, 4087, 4088, 4089, 1087] persons= [3092, 3093, 3094]
+--- sas= [] oneih_slice1087 crp= 1
+--- 'expires': 1167127131
+1090 1 oneii_slice1088 nodes= [1088, 1089, 1090, 4088, 4089, 4090] persons= [3093, 3094, 3095]
+--- sas= [] oneii_slice1088 crp= 1
+--- 'expires': 1167127131
+1091 1 oneij_slice1089 nodes= [1089, 1090, 1091, 4089, 4090, 4091] persons= [3096, 3094, 3095]
+--- sas= [] oneij_slice1089 crp= 1
+--- 'expires': 1167127131
+1092 1 oneja_slice1090 nodes= [1090, 1091, 1092, 4090, 4091, 4092] persons= [3096, 3097, 3095]
+--- sas= [] oneja_slice1090 crp= 1
+--- 'expires': 1167127132
+1093 1 onejb_slice1091 nodes= [1091, 1092, 1093, 4091, 4092, 4093] persons= [3096, 3097, 3098]
+--- sas= [] onejb_slice1091 crp= 1
+--- 'expires': 1167127132
+1094 1 onejc_slice1092 nodes= [1092, 1093, 1094, 4092, 4093, 4094] persons= [3097, 3098, 3099]
+--- sas= [] onejc_slice1092 crp= 1
+--- 'expires': 1167127132
+1095 1 onejd_slice1093 nodes= [1093, 1094, 1095, 4093, 4094, 4095] persons= [3098, 3099, 3100]
+--- sas= [] onejd_slice1093 crp= 1
+--- 'expires': 1167127133
+1096 1 oneje_slice1094 nodes= [4096, 1094, 1095, 1096, 4094, 4095] persons= [3099, 3100, 3101]
+--- sas= [] oneje_slice1094 crp= 1
+--- 'expires': 1167127133
+1097 1 onejf_slice1095 nodes= [4096, 4097, 1095, 1096, 1097, 4095] persons= [3100, 3101, 3102]
+--- sas= [] onejf_slice1095 crp= 1
+--- 'expires': 1167127134
+1098 1 onejg_slice1096 nodes= [4096, 4097, 4098, 1096, 1097, 1098] persons= [3101, 3102, 3103]
+--- sas= [] onejg_slice1096 crp= 1
+--- 'expires': 1167127134
+1099 1 onejh_slice1097 nodes= [4097, 4098, 4099, 1097, 1098, 1099] persons= [3104, 3102, 3103]
+--- sas= [] onejh_slice1097 crp= 1
+--- 'expires': 1167127134
+1100 1 oneji_slice1098 nodes= [4098, 4099, 4100, 1098, 1099, 1100] persons= [3104, 3105, 3103]
+--- sas= [] oneji_slice1098 crp= 1
+--- 'expires': 1167127135
+1101 1 onejj_slice1099 nodes= [4099, 4100, 4101, 1099, 1100, 1101] persons= [3104, 3105, 3106]
+--- sas= [] onejj_slice1099 crp= 1
+--- 'expires': 1167127135
+1102 1 onebaa_slice1100 nodes= [4100, 4101, 4102, 1100, 1101, 1102] persons= [3105, 3106, 3107]
+--- sas= [] onebaa_slice1100 crp= 1
+--- 'expires': 1167127135
+1103 1 onebab_slice1101 nodes= [4101, 4102, 4103, 1101, 1102, 1103] persons= [3106, 3107, 3108]
+--- sas= [] onebab_slice1101 crp= 1
+--- 'expires': 1167127136
+1104 1 onebac_slice1102 nodes= [4102, 4103, 4104, 1102, 1103, 1104] persons= [3107, 3108, 3109]
+--- sas= [] onebac_slice1102 crp= 1
+--- 'expires': 1167127136
+1105 1 onebad_slice1103 nodes= [4103, 4104, 4105, 1103, 1104, 1105] persons= [3108, 3109, 3110]
+--- sas= [] onebad_slice1103 crp= 1
+--- 'expires': 1167127136
+1106 1 onebae_slice1104 nodes= [4104, 4105, 4106, 1104, 1105, 1106] persons= [3109, 3110, 3111]
+--- sas= [] onebae_slice1104 crp= 1
+--- 'expires': 1167127137
+1107 1 onebaf_slice1105 nodes= [4105, 4106, 4107, 1105, 1106, 1107] persons= [3112, 3110, 3111]
+--- sas= [] onebaf_slice1105 crp= 1
+--- 'expires': 1167127137
+1108 1 onebag_slice1106 nodes= [4106, 4107, 4108, 1106, 1107, 1108] persons= [3112, 3113, 3111]
+--- sas= [] onebag_slice1106 crp= 1
+--- 'expires': 1167127137
+1109 1 onebah_slice1107 nodes= [4107, 4108, 4109, 1107, 1108, 1109] persons= [3112, 3113, 3114]
+--- sas= [] onebah_slice1107 crp= 1
+--- 'expires': 1167127138
+1110 1 onebai_slice1108 nodes= [4108, 4109, 4110, 1108, 1109, 1110] persons= [3113, 3114, 3115]
+--- sas= [] onebai_slice1108 crp= 1
+--- 'expires': 1167127138
+1111 1 onebaj_slice1109 nodes= [4109, 4110, 4111, 1109, 1110, 1111] persons= [3114, 3115, 3116]
+--- sas= [] onebaj_slice1109 crp= 1
+--- 'expires': 1167127139
+1112 1 onebba_slice1110 nodes= [4110, 4111, 4112, 1110, 1111, 1112] persons= [3115, 3116, 3117]
+--- sas= [] onebba_slice1110 crp= 1
+--- 'expires': 1167127139
+1113 1 onebbb_slice1111 nodes= [4111, 4112, 4113, 1111, 1112, 1113] persons= [3116, 3117, 3118]
+--- sas= [] onebbb_slice1111 crp= 1
+--- 'expires': 1167127139
+1114 1 onebbc_slice1112 nodes= [4112, 4113, 4114, 1112, 1113, 1114] persons= [3117, 3118, 3119]
+--- sas= [] onebbc_slice1112 crp= 1
+--- 'expires': 1167127140
+1115 1 onebbd_slice1113 nodes= [4113, 4114, 4115, 1113, 1114, 1115] persons= [3120, 3118, 3119]
+--- sas= [] onebbd_slice1113 crp= 1
+--- 'expires': 1167127140
+1116 1 onebbe_slice1114 nodes= [4114, 4115, 4116, 1114, 1115, 1116] persons= [3120, 3121, 3119]
+--- sas= [] onebbe_slice1114 crp= 1
+--- 'expires': 1167127140
+1117 1 onebbf_slice1115 nodes= [4115, 4116, 4117, 1115, 1116, 1117] persons= [3120, 3121, 3122]
+--- sas= [] onebbf_slice1115 crp= 1
+--- 'expires': 1167127141
+1118 1 onebbg_slice1116 nodes= [4116, 4117, 4118, 1116, 1117, 1118] persons= [3121, 3122, 3123]
+--- sas= [] onebbg_slice1116 crp= 1
+--- 'expires': 1167127141
+1119 1 onebbh_slice1117 nodes= [4117, 4118, 4119, 1117, 1118, 1119] persons= [3122, 3123, 3124]
+--- sas= [] onebbh_slice1117 crp= 1
+--- 'expires': 1167127141
+1120 1 onebbi_slice1118 nodes= [1120, 4118, 4119, 4120, 1118, 1119] persons= [3123, 3124, 3125]
+--- sas= [] onebbi_slice1118 crp= 1
+--- 'expires': 1167127142
+1121 1 onebbj_slice1119 nodes= [1120, 1121, 4119, 4120, 4121, 1119] persons= [3124, 3125, 3126]
+--- sas= [] onebbj_slice1119 crp= 1
+--- 'expires': 1167127142
+1122 1 onebca_slice1120 nodes= [1120, 1121, 1122, 4120, 4121, 4122] persons= [3125, 3126, 3127]
+--- sas= [] onebca_slice1120 crp= 1
+--- 'expires': 1167127143
+1123 1 onebcb_slice1121 nodes= [1121, 1122, 1123, 4121, 4122, 4123] persons= [3128, 3126, 3127]
+--- sas= [] onebcb_slice1121 crp= 1
+--- 'expires': 1167127143
+1124 1 onebcc_slice1122 nodes= [1122, 1123, 1124, 4122, 4123, 4124] persons= [3128, 3129, 3127]
+--- sas= [] onebcc_slice1122 crp= 1
+--- 'expires': 1167127143
+1125 1 onebcd_slice1123 nodes= [1123, 1124, 1125, 4123, 4124, 4125] persons= [3128, 3129, 3130]
+--- sas= [] onebcd_slice1123 crp= 1
+--- 'expires': 1167127144
+1126 1 onebce_slice1124 nodes= [1124, 1125, 1126, 4124, 4125, 4126] persons= [3129, 3130, 3131]
+--- sas= [] onebce_slice1124 crp= 1
+--- 'expires': 1167127144
+1127 1 onebcf_slice1125 nodes= [1125, 1126, 1127, 4125, 4126, 4127] persons= [3130, 3131, 3132]
+--- sas= [] onebcf_slice1125 crp= 1
+--- 'expires': 1167127144
+1128 1 onebcg_slice1126 nodes= [4128, 1126, 1127, 1128, 4126, 4127] persons= [3131, 3132, 3133]
+--- sas= [] onebcg_slice1126 crp= 1
+--- 'expires': 1167127145
+1129 1 onebch_slice1127 nodes= [4128, 4129, 1127, 1128, 1129, 4127] persons= [3132, 3133, 3134]
+--- sas= [] onebch_slice1127 crp= 1
+--- 'expires': 1167127145
+1130 1 onebci_slice1128 nodes= [4128, 4129, 4130, 1128, 1129, 1130] persons= [3133, 3134, 3135]
+--- sas= [] onebci_slice1128 crp= 1
+--- 'expires': 1167127145
+1131 1 onebcj_slice1129 nodes= [4129, 4130, 4131, 1129, 1130, 1131] persons= [3136, 3134, 3135]
+--- sas= [] onebcj_slice1129 crp= 1
+--- 'expires': 1167127146
+1132 1 onebda_slice1130 nodes= [4130, 4131, 4132, 1130, 1131, 1132] persons= [3136, 3137, 3135]
+--- sas= [] onebda_slice1130 crp= 1
+--- 'expires': 1167127146
+1133 1 onebdb_slice1131 nodes= [4131, 4132, 4133, 1131, 1132, 1133] persons= [3136, 3137, 3138]
+--- sas= [] onebdb_slice1131 crp= 1
+--- 'expires': 1167127147
+1134 1 onebdc_slice1132 nodes= [4132, 4133, 4134, 1132, 1133, 1134] persons= [3137, 3138, 3139]
+--- sas= [] onebdc_slice1132 crp= 1
+--- 'expires': 1167127147
+1135 1 onebdd_slice1133 nodes= [4133, 4134, 4135, 1133, 1134, 1135] persons= [3138, 3139, 3140]
+--- sas= [] onebdd_slice1133 crp= 1
+--- 'expires': 1167127147
+1136 1 onebde_slice1134 nodes= [4134, 4135, 4136, 1134, 1135, 1136] persons= [3139, 3140, 3141]
+--- sas= [] onebde_slice1134 crp= 1
+--- 'expires': 1167127148
+1137 1 onebdf_slice1135 nodes= [4135, 4136, 4137, 1135, 1136, 1137] persons= [3140, 3141, 3142]
+--- sas= [] onebdf_slice1135 crp= 1
+--- 'expires': 1167127148
+1138 1 onebdg_slice1136 nodes= [4136, 4137, 4138, 1136, 1137, 1138] persons= [3141, 3142, 3143]
+--- sas= [] onebdg_slice1136 crp= 1
+--- 'expires': 1167127148
+1139 1 onebdh_slice1137 nodes= [4137, 4138, 4139, 1137, 1138, 1139] persons= [3144, 3142, 3143]
+--- sas= [] onebdh_slice1137 crp= 1
+--- 'expires': 1167127149
+1140 1 onebdi_slice1138 nodes= [4138, 4139, 4140, 1138, 1139, 1140] persons= [3144, 3145, 3143]
+--- sas= [] onebdi_slice1138 crp= 1
+--- 'expires': 1167127149
+1141 1 onebdj_slice1139 nodes= [4139, 4140, 4141, 1139, 1140, 1141] persons= [3144, 3145, 3146]
+--- sas= [] onebdj_slice1139 crp= 1
+--- 'expires': 1167127149
+1142 1 onebea_slice1140 nodes= [4140, 4141, 4142, 1140, 1141, 1142] persons= [3145, 3146, 3147]
+--- sas= [] onebea_slice1140 crp= 1
+--- 'expires': 1167127150
+1143 1 onebeb_slice1141 nodes= [4141, 4142, 4143, 1141, 1142, 1143] persons= [3146, 3147, 3148]
+--- sas= [] onebeb_slice1141 crp= 1
+--- 'expires': 1167127150
+1144 1 onebec_slice1142 nodes= [4142, 4143, 4144, 1142, 1143, 1144] persons= [3147, 3148, 3149]
+--- sas= [] onebec_slice1142 crp= 1
+--- 'expires': 1167127151
+1145 1 onebed_slice1143 nodes= [4143, 4144, 4145, 1143, 1144, 1145] persons= [3148, 3149, 3150]
+--- sas= [] onebed_slice1143 crp= 1
+--- 'expires': 1167127151
+1146 1 onebee_slice1144 nodes= [4144, 4145, 4146, 1144, 1145, 1146] persons= [3149, 3150, 3151]
+--- sas= [] onebee_slice1144 crp= 1
+--- 'expires': 1167127151
+1147 1 onebef_slice1145 nodes= [4145, 4146, 4147, 1145, 1146, 1147] persons= [3152, 3150, 3151]
+--- sas= [] onebef_slice1145 crp= 1
+--- 'expires': 1167127152
+1148 1 onebeg_slice1146 nodes= [4146, 4147, 4148, 1146, 1147, 1148] persons= [3152, 3153, 3151]
+--- sas= [] onebeg_slice1146 crp= 1
+--- 'expires': 1167127152
+1149 1 onebeh_slice1147 nodes= [4147, 4148, 4149, 1147, 1148, 1149] persons= [3152, 3153, 3154]
+--- sas= [] onebeh_slice1147 crp= 1
+--- 'expires': 1167127152
+1150 1 onebei_slice1148 nodes= [4148, 4149, 4150, 1148, 1149, 1150] persons= [3153, 3154, 3155]
+--- sas= [] onebei_slice1148 crp= 1
+--- 'expires': 1167127153
+1151 1 onebej_slice1149 nodes= [4149, 4150, 4151, 1149, 1150, 1151] persons= [3154, 3155, 3156]
+--- sas= [] onebej_slice1149 crp= 1
+--- 'expires': 1167127153
+1152 1 onebfa_slice1150 nodes= [1152, 4150, 4151, 4152, 1150, 1151] persons= [3155, 3156, 3157]
+--- sas= [] onebfa_slice1150 crp= 1
+--- 'expires': 1167127153
+1153 1 onebfb_slice1151 nodes= [1152, 1153, 4151, 4152, 4153, 1151] persons= [3156, 3157, 3158]
+--- sas= [] onebfb_slice1151 crp= 1
+--- 'expires': 1167127154
+1154 1 onebfc_slice1152 nodes= [1152, 1153, 1154, 4152, 4153, 4154] persons= [3157, 3158, 3159]
+--- sas= [] onebfc_slice1152 crp= 1
+--- 'expires': 1167127154
+1155 1 onebfd_slice1153 nodes= [1153, 1154, 1155, 4153, 4154, 4155] persons= [3160, 3158, 3159]
+--- sas= [] onebfd_slice1153 crp= 1
+--- 'expires': 1167127155
+1156 1 onebfe_slice1154 nodes= [1154, 1155, 1156, 4154, 4155, 4156] persons= [3160, 3161, 3159]
+--- sas= [] onebfe_slice1154 crp= 1
+--- 'expires': 1167127155
+1157 1 onebff_slice1155 nodes= [1155, 1156, 1157, 4155, 4156, 4157] persons= [3160, 3161, 3162]
+--- sas= [] onebff_slice1155 crp= 1
+--- 'expires': 1167127155
+1158 1 onebfg_slice1156 nodes= [1156, 1157, 1158, 4156, 4157, 4158] persons= [3161, 3162, 3163]
+--- sas= [] onebfg_slice1156 crp= 1
+--- 'expires': 1167127156
+1159 1 onebfh_slice1157 nodes= [1157, 1158, 1159, 4157, 4158, 4159] persons= [3162, 3163, 3164]
+--- sas= [] onebfh_slice1157 crp= 1
+--- 'expires': 1167127156
+1160 1 onebfi_slice1158 nodes= [4160, 1158, 1159, 1160, 4158, 4159] persons= [3163, 3164, 3165]
+--- sas= [] onebfi_slice1158 crp= 1
+--- 'expires': 1167127156
+1161 1 onebfj_slice1159 nodes= [4160, 4161, 1159, 1160, 1161, 4159] persons= [3164, 3165, 3166]
+--- sas= [] onebfj_slice1159 crp= 1
+--- 'expires': 1167127157
+1162 1 onebga_slice1160 nodes= [4160, 4161, 4162, 1160, 1161, 1162] persons= [3165, 3166, 3167]
+--- sas= [] onebga_slice1160 crp= 1
+--- 'expires': 1167127157
+1163 1 onebgb_slice1161 nodes= [4161, 4162, 4163, 1161, 1162, 1163] persons= [3168, 3166, 3167]
+--- sas= [] onebgb_slice1161 crp= 1
+--- 'expires': 1167127157
+1164 1 onebgc_slice1162 nodes= [4162, 4163, 4164, 1162, 1163, 1164] persons= [3168, 3169, 3167]
+--- sas= [] onebgc_slice1162 crp= 1
+--- 'expires': 1167127158
+1165 1 onebgd_slice1163 nodes= [4163, 4164, 4165, 1163, 1164, 1165] persons= [3168, 3169, 3170]
+--- sas= [] onebgd_slice1163 crp= 1
+--- 'expires': 1167127158
+1166 1 onebge_slice1164 nodes= [4164, 4165, 4166, 1164, 1165, 1166] persons= [3169, 3170, 3171]
+--- sas= [] onebge_slice1164 crp= 1
+--- 'expires': 1167127159
+1167 1 onebgf_slice1165 nodes= [4165, 4166, 4167, 1165, 1166, 1167] persons= [3170, 3171, 3172]
+--- sas= [] onebgf_slice1165 crp= 1
+--- 'expires': 1167127159
+1168 1 onebgg_slice1166 nodes= [4166, 4167, 4168, 1166, 1167, 1168] persons= [3171, 3172, 3173]
+--- sas= [] onebgg_slice1166 crp= 1
+--- 'expires': 1167127159
+1169 1 onebgh_slice1167 nodes= [4167, 4168, 4169, 1167, 1168, 1169] persons= [3172, 3173, 3174]
+--- sas= [] onebgh_slice1167 crp= 1
+--- 'expires': 1167127160
+1170 1 onebgi_slice1168 nodes= [4168, 4169, 4170, 1168, 1169, 1170] persons= [3173, 3174, 3175]
+--- sas= [] onebgi_slice1168 crp= 1
+--- 'expires': 1167127160
+1171 1 onebgj_slice1169 nodes= [4169, 4170, 4171, 1169, 1170, 1171] persons= [3176, 3174, 3175]
+--- sas= [] onebgj_slice1169 crp= 1
+--- 'expires': 1167127161
+1172 1 onebha_slice1170 nodes= [4170, 4171, 4172, 1170, 1171, 1172] persons= [3176, 3177, 3175]
+--- sas= [] onebha_slice1170 crp= 1
+--- 'expires': 1167127161
+1173 1 onebhb_slice1171 nodes= [4171, 4172, 4173, 1171, 1172, 1173] persons= [3176, 3177, 3178]
+--- sas= [] onebhb_slice1171 crp= 1
+--- 'expires': 1167127161
+1174 1 onebhc_slice1172 nodes= [4172, 4173, 4174, 1172, 1173, 1174] persons= [3177, 3178, 3179]
+--- sas= [] onebhc_slice1172 crp= 1
+--- 'expires': 1167127162
+1175 1 onebhd_slice1173 nodes= [4173, 4174, 4175, 1173, 1174, 1175] persons= [3178, 3179, 3180]
+--- sas= [] onebhd_slice1173 crp= 1
+--- 'expires': 1167127162
+1176 1 onebhe_slice1174 nodes= [4174, 4175, 4176, 1174, 1175, 1176] persons= [3179, 3180, 3181]
+--- sas= [] onebhe_slice1174 crp= 1
+--- 'expires': 1167127163
+1177 1 onebhf_slice1175 nodes= [4175, 4176, 4177, 1175, 1176, 1177] persons= [3180, 3181, 3182]
+--- sas= [] onebhf_slice1175 crp= 1
+--- 'expires': 1167127163
+1178 1 onebhg_slice1176 nodes= [4176, 4177, 4178, 1176, 1177, 1178] persons= [3181, 3182, 3183]
+--- sas= [] onebhg_slice1176 crp= 1
+--- 'expires': 1167127163
+1179 1 onebhh_slice1177 nodes= [4177, 4178, 4179, 1177, 1178, 1179] persons= [3184, 3182, 3183]
+--- sas= [] onebhh_slice1177 crp= 1
+--- 'expires': 1167127164
+1180 1 onebhi_slice1178 nodes= [4178, 4179, 4180, 1178, 1179, 1180] persons= [3184, 3185, 3183]
+--- sas= [] onebhi_slice1178 crp= 1
+--- 'expires': 1167127164
+1181 1 onebhj_slice1179 nodes= [4179, 4180, 4181, 1179, 1180, 1181] persons= [3184, 3185, 3186]
+--- sas= [] onebhj_slice1179 crp= 1
+--- 'expires': 1167127165
+1182 1 onebia_slice1180 nodes= [4180, 4181, 4182, 1180, 1181, 1182] persons= [3185, 3186, 3187]
+--- sas= [] onebia_slice1180 crp= 1
+--- 'expires': 1167127165
+1183 1 onebib_slice1181 nodes= [4181, 4182, 4183, 1181, 1182, 1183] persons= [3186, 3187, 3188]
+--- sas= [] onebib_slice1181 crp= 1
+--- 'expires': 1167127165
+1184 1 onebic_slice1182 nodes= [1184, 4182, 4183, 4184, 1182, 1183] persons= [3187, 3188, 3189]
+--- sas= [] onebic_slice1182 crp= 1
+--- 'expires': 1167127166
+1185 1 onebid_slice1183 nodes= [1184, 1185, 4183, 4184, 4185, 1183] persons= [3188, 3189, 3190]
+--- sas= [] onebid_slice1183 crp= 1
+--- 'expires': 1167127166
+1186 1 onebie_slice1184 nodes= [1184, 1185, 1186, 4184, 4185, 4186] persons= [3189, 3190, 3191]
+--- sas= [] onebie_slice1184 crp= 1
+--- 'expires': 1167127167
+1187 1 onebif_slice1185 nodes= [1185, 1186, 1187, 4185, 4186, 4187] persons= [3192, 3190, 3191]
+--- sas= [] onebif_slice1185 crp= 1
+--- 'expires': 1167127167
+1188 1 onebig_slice1186 nodes= [1186, 1187, 1188, 4186, 4187, 4188] persons= [3192, 3193, 3191]
+--- sas= [] onebig_slice1186 crp= 1
+--- 'expires': 1167127167
+1189 1 onebih_slice1187 nodes= [1187, 1188, 1189, 4187, 4188, 4189] persons= [3192, 3193, 3194]
+--- sas= [] onebih_slice1187 crp= 1
+--- 'expires': 1167127168
+1190 1 onebii_slice1188 nodes= [1188, 1189, 1190, 4188, 4189, 4190] persons= [3193, 3194, 3195]
+--- sas= [] onebii_slice1188 crp= 1
+--- 'expires': 1167127168
+1191 1 onebij_slice1189 nodes= [1189, 1190, 1191, 4189, 4190, 4191] persons= [3194, 3195, 3196]
+--- sas= [] onebij_slice1189 crp= 1
+--- 'expires': 1167127169
+1192 1 onebja_slice1190 nodes= [4192, 1190, 1191, 1192, 4190, 4191] persons= [3195, 3196, 3197]
+--- sas= [] onebja_slice1190 crp= 1
+--- 'expires': 1167127169
+1193 1 onebjb_slice1191 nodes= [4192, 4193, 1191, 1192, 1193, 4191] persons= [3196, 3197, 3198]
+--- sas= [] onebjb_slice1191 crp= 1
+--- 'expires': 1167127169
+1194 1 onebjc_slice1192 nodes= [4192, 4193, 4194, 1192, 1193, 1194] persons= [3197, 3198, 3199]
+--- sas= [] onebjc_slice1192 crp= 1
+--- 'expires': 1167127170
+1195 1 onebjd_slice1193 nodes= [4193, 4194, 4195, 1193, 1194, 1195] persons= [3200, 3198, 3199]
+--- sas= [] onebjd_slice1193 crp= 1
+--- 'expires': 1167127170
+1196 1 onebje_slice1194 nodes= [4194, 4195, 4196, 1194, 1195, 1196] persons= [3200, 3201, 3199]
+--- sas= [] onebje_slice1194 crp= 1
+--- 'expires': 1167127171
+1197 1 onebjf_slice1195 nodes= [4195, 4196, 4197, 1195, 1196, 1197] persons= [3200, 3201, 3202]
+--- sas= [] onebjf_slice1195 crp= 1
+--- 'expires': 1167127171
+1198 1 onebjg_slice1196 nodes= [4196, 4197, 4198, 1196, 1197, 1198] persons= [3201, 3202, 3203]
+--- sas= [] onebjg_slice1196 crp= 1
+--- 'expires': 1167127171
+1199 1 onebjh_slice1197 nodes= [4197, 4198, 4199, 1197, 1198, 1199] persons= [3202, 3203, 3204]
+--- sas= [] onebjh_slice1197 crp= 1
+--- 'expires': 1167127172
+1200 1 onebji_slice1198 nodes= [4198, 4199, 4200, 1198, 1199, 1200] persons= [3203, 3204, 3205]
+--- sas= [] onebji_slice1198 crp= 1
+--- 'expires': 1167127172
+1201 1 onebjj_slice1199 nodes= [4199, 4200, 4201, 1199, 1200, 1201] persons= [3204, 3205, 3206]
+--- sas= [] onebjj_slice1199 crp= 1
+--- 'expires': 1167127173
+1202 1 onecaa_slice1200 nodes= [4200, 4201, 4202, 1200, 1201, 1202] persons= [3205, 3206, 3207]
+--- sas= [] onecaa_slice1200 crp= 1
+--- 'expires': 1167127173
+1203 1 onecab_slice1201 nodes= [4201, 4202, 4203, 1201, 1202, 1203] persons= [3208, 3206, 3207]
+--- sas= [] onecab_slice1201 crp= 1
+--- 'expires': 1167127173
+1204 1 onecac_slice1202 nodes= [4202, 4203, 4204, 1202, 1203, 1204] persons= [3208, 3209, 3207]
+--- sas= [] onecac_slice1202 crp= 1
+--- 'expires': 1167127174
+1205 1 onecad_slice1203 nodes= [4203, 4204, 4205, 1203, 1204, 1205] persons= [3208, 3209, 3210]
+--- sas= [] onecad_slice1203 crp= 1
+--- 'expires': 1167127174
+1206 1 onecae_slice1204 nodes= [4204, 4205, 4206, 1204, 1205, 1206] persons= [3209, 3210, 3211]
+--- sas= [] onecae_slice1204 crp= 1
+--- 'expires': 1167127175
+1207 1 onecaf_slice1205 nodes= [4205, 4206, 4207, 1205, 1206, 1207] persons= [3210, 3211, 3212]
+--- sas= [] onecaf_slice1205 crp= 1
+--- 'expires': 1167127175
+1208 1 onecag_slice1206 nodes= [4206, 4207, 4208, 1206, 1207, 1208] persons= [3211, 3212, 3213]
+--- sas= [] onecag_slice1206 crp= 1
+--- 'expires': 1167127175
+1209 1 onecah_slice1207 nodes= [4207, 4208, 4209, 1207, 1208, 1209] persons= [3212, 3213, 3214]
+--- sas= [] onecah_slice1207 crp= 1
+--- 'expires': 1167127176
+1210 1 onecai_slice1208 nodes= [4208, 4209, 4210, 1208, 1209, 1210] persons= [3213, 3214, 3215]
+--- sas= [] onecai_slice1208 crp= 1
+--- 'expires': 1167127176
+1211 1 onecaj_slice1209 nodes= [4209, 4210, 4211, 1209, 1210, 1211] persons= [3216, 3214, 3215]
+--- sas= [] onecaj_slice1209 crp= 1
+--- 'expires': 1167127177
+1212 1 onecba_slice1210 nodes= [4210, 4211, 4212, 1210, 1211, 1212] persons= [3216, 3217, 3215]
+--- sas= [] onecba_slice1210 crp= 1
+--- 'expires': 1167127177
+1213 1 onecbb_slice1211 nodes= [4211, 4212, 4213, 1211, 1212, 1213] persons= [3216, 3217, 3218]
+--- sas= [] onecbb_slice1211 crp= 1
+--- 'expires': 1167127177
+1214 1 onecbc_slice1212 nodes= [4212, 4213, 4214, 1212, 1213, 1214] persons= [3217, 3218, 3219]
+--- sas= [] onecbc_slice1212 crp= 1
+--- 'expires': 1167127178
+1215 1 onecbd_slice1213 nodes= [4213, 4214, 4215, 1213, 1214, 1215] persons= [3218, 3219, 3220]
+--- sas= [] onecbd_slice1213 crp= 1
+--- 'expires': 1167127178
+1216 1 onecbe_slice1214 nodes= [1216, 4214, 4215, 4216, 1214, 1215] persons= [3219, 3220, 3221]
+--- sas= [] onecbe_slice1214 crp= 1
+--- 'expires': 1167127179
+1217 1 onecbf_slice1215 nodes= [1216, 1217, 4215, 4216, 4217, 1215] persons= [3220, 3221, 3222]
+--- sas= [] onecbf_slice1215 crp= 1
+--- 'expires': 1167127179
+1218 1 onecbg_slice1216 nodes= [1216, 1217, 1218, 4216, 4217, 4218] persons= [3221, 3222, 3223]
+--- sas= [] onecbg_slice1216 crp= 1
+--- 'expires': 1167127179
+1219 1 onecbh_slice1217 nodes= [1217, 1218, 1219, 4217, 4218, 4219] persons= [3224, 3222, 3223]
+--- sas= [] onecbh_slice1217 crp= 1
+--- 'expires': 1167127180
+1220 1 onecbi_slice1218 nodes= [1218, 1219, 1220, 4218, 4219, 4220] persons= [3224, 3225, 3223]
+--- sas= [] onecbi_slice1218 crp= 1
+--- 'expires': 1167127180
+1221 1 onecbj_slice1219 nodes= [1219, 1220, 1221, 4219, 4220, 4221] persons= [3224, 3225, 3226]
+--- sas= [] onecbj_slice1219 crp= 1
+--- 'expires': 1167127181
+1222 1 onecca_slice1220 nodes= [1220, 1221, 1222, 4220, 4221, 4222] persons= [3225, 3226, 3227]
+--- sas= [] onecca_slice1220 crp= 1
+--- 'expires': 1167127181
+1223 1 oneccb_slice1221 nodes= [1221, 1222, 1223, 4221, 4222, 4223] persons= [3226, 3227, 3228]
+--- sas= [] oneccb_slice1221 crp= 1
+--- 'expires': 1167127182
+1224 1 oneccc_slice1222 nodes= [4224, 1222, 1223, 1224, 4222, 4223] persons= [3227, 3228, 3229]
+--- sas= [] oneccc_slice1222 crp= 1
+--- 'expires': 1167127182
+1225 1 oneccd_slice1223 nodes= [4224, 4225, 1223, 1224, 1225, 4223] persons= [3228, 3229, 3230]
+--- sas= [] oneccd_slice1223 crp= 1
+--- 'expires': 1167127182
+1226 1 onecce_slice1224 nodes= [4224, 4225, 4226, 1224, 1225, 1226] persons= [3229, 3230, 3231]
+--- sas= [] onecce_slice1224 crp= 1
+--- 'expires': 1167127183
+1227 1 oneccf_slice1225 nodes= [4225, 4226, 4227, 1225, 1226, 1227] persons= [3232, 3230, 3231]
+--- sas= [] oneccf_slice1225 crp= 1
+--- 'expires': 1167127183
+1228 1 oneccg_slice1226 nodes= [4226, 4227, 4228, 1226, 1227, 1228] persons= [3232, 3233, 3231]
+--- sas= [] oneccg_slice1226 crp= 1
+--- 'expires': 1167127184
+1229 1 onecch_slice1227 nodes= [4227, 4228, 4229, 1227, 1228, 1229] persons= [3232, 3233, 3234]
+--- sas= [] onecch_slice1227 crp= 1
+--- 'expires': 1167127184
+1230 1 onecci_slice1228 nodes= [4228, 4229, 4230, 1228, 1229, 1230] persons= [3233, 3234, 3235]
+--- sas= [] onecci_slice1228 crp= 1
+--- 'expires': 1167127184
+1231 1 oneccj_slice1229 nodes= [4229, 4230, 4231, 1229, 1230, 1231] persons= [3234, 3235, 3236]
+--- sas= [] oneccj_slice1229 crp= 1
+--- 'expires': 1167127185
+1232 1 onecda_slice1230 nodes= [4230, 4231, 4232, 1230, 1231, 1232] persons= [3235, 3236, 3237]
+--- sas= [] onecda_slice1230 crp= 1
+--- 'expires': 1167127185
+1233 1 onecdb_slice1231 nodes= [4231, 4232, 4233, 1231, 1232, 1233] persons= [3236, 3237, 3238]
+--- sas= [] onecdb_slice1231 crp= 1
+--- 'expires': 1167127186
+1234 1 onecdc_slice1232 nodes= [4232, 4233, 4234, 1232, 1233, 1234] persons= [3237, 3238, 3239]
+--- sas= [] onecdc_slice1232 crp= 1
+--- 'expires': 1167127186
+1235 1 onecdd_slice1233 nodes= [4233, 4234, 4235, 1233, 1234, 1235] persons= [3240, 3238, 3239]
+--- sas= [] onecdd_slice1233 crp= 1
+--- 'expires': 1167127186
+1236 1 onecde_slice1234 nodes= [4234, 4235, 4236, 1234, 1235, 1236] persons= [3240, 3241, 3239]
+--- sas= [] onecde_slice1234 crp= 1
+--- 'expires': 1167127187
+1237 1 onecdf_slice1235 nodes= [4235, 4236, 4237, 1235, 1236, 1237] persons= [3240, 3241, 3242]
+--- sas= [] onecdf_slice1235 crp= 1
+--- 'expires': 1167127187
+1238 1 onecdg_slice1236 nodes= [4236, 4237, 4238, 1236, 1237, 1238] persons= [3241, 3242, 3243]
+--- sas= [] onecdg_slice1236 crp= 1
+--- 'expires': 1167127188
+1239 1 onecdh_slice1237 nodes= [4237, 4238, 4239, 1237, 1238, 1239] persons= [3242, 3243, 3244]
+--- sas= [] onecdh_slice1237 crp= 1
+--- 'expires': 1167127188
+1240 1 onecdi_slice1238 nodes= [4238, 4239, 4240, 1238, 1239, 1240] persons= [3243, 3244, 3245]
+--- sas= [] onecdi_slice1238 crp= 1
+--- 'expires': 1167127188
+1241 1 onecdj_slice1239 nodes= [4239, 4240, 4241, 1239, 1240, 1241] persons= [3244, 3245, 3246]
+--- sas= [] onecdj_slice1239 crp= 1
+--- 'expires': 1167127189
+1242 1 onecea_slice1240 nodes= [4240, 4241, 4242, 1240, 1241, 1242] persons= [3245, 3246, 3247]
+--- sas= [] onecea_slice1240 crp= 1
+--- 'expires': 1167127189
+1243 1 oneceb_slice1241 nodes= [4241, 4242, 4243, 1241, 1242, 1243] persons= [3248, 3246, 3247]
+--- sas= [] oneceb_slice1241 crp= 1
+--- 'expires': 1167127190
+1244 1 onecec_slice1242 nodes= [4242, 4243, 4244, 1242, 1243, 1244] persons= [3248, 3249, 3247]
+--- sas= [] onecec_slice1242 crp= 1
+--- 'expires': 1167127190
+1245 1 oneced_slice1243 nodes= [4243, 4244, 4245, 1243, 1244, 1245] persons= [3248, 3249, 3250]
+--- sas= [] oneced_slice1243 crp= 1
+--- 'expires': 1167127190
+1246 1 onecee_slice1244 nodes= [4244, 4245, 4246, 1244, 1245, 1246] persons= [3249, 3250, 3251]
+--- sas= [] onecee_slice1244 crp= 1
+--- 'expires': 1167127191
+1247 1 onecef_slice1245 nodes= [4245, 4246, 4247, 1245, 1246, 1247] persons= [3250, 3251, 3252]
+--- sas= [] onecef_slice1245 crp= 1
+--- 'expires': 1167127191
+1248 1 oneceg_slice1246 nodes= [1248, 4246, 4247, 4248, 1246, 1247] persons= [3251, 3252, 3253]
+--- sas= [] oneceg_slice1246 crp= 1
+--- 'expires': 1167127192
+1249 1 oneceh_slice1247 nodes= [1248, 1249, 4247, 4248, 4249, 1247] persons= [3252, 3253, 3254]
+--- sas= [] oneceh_slice1247 crp= 1
+--- 'expires': 1167127192
+1250 1 onecei_slice1248 nodes= [1248, 1249, 1250, 4248, 4249, 4250] persons= [3253, 3254, 3255]
+--- sas= [] onecei_slice1248 crp= 1
+--- 'expires': 1167127193
+1251 1 onecej_slice1249 nodes= [1249, 1250, 1251, 4249, 4250, 4251] persons= [3256, 3254, 3255]
+--- sas= [] onecej_slice1249 crp= 1
+--- 'expires': 1167127193
+1252 1 onecfa_slice1250 nodes= [1250, 1251, 1252, 4250, 4251, 4252] persons= [3256, 3257, 3255]
+--- sas= [] onecfa_slice1250 crp= 1
+--- 'expires': 1167127193
+1253 1 onecfb_slice1251 nodes= [1251, 1252, 1253, 4251, 4252, 4253] persons= [3256, 3257, 3258]
+--- sas= [] onecfb_slice1251 crp= 1
+--- 'expires': 1167127194
+1254 1 onecfc_slice1252 nodes= [1252, 1253, 1254, 4252, 4253, 4254] persons= [3257, 3258, 3259]
+--- sas= [] onecfc_slice1252 crp= 1
+--- 'expires': 1167127194
+1255 1 onecfd_slice1253 nodes= [1253, 1254, 1255, 4253, 4254, 4255] persons= [3258, 3259, 3260]
+--- sas= [] onecfd_slice1253 crp= 1
+--- 'expires': 1167127195
+1256 1 onecfe_slice1254 nodes= [4256, 1254, 1255, 1256, 4254, 4255] persons= [3259, 3260, 3261]
+--- sas= [] onecfe_slice1254 crp= 1
+--- 'expires': 1167127195
+1257 1 onecff_slice1255 nodes= [4256, 4257, 1255, 1256, 1257, 4255] persons= [3260, 3261, 3262]
+--- sas= [] onecff_slice1255 crp= 1
+--- 'expires': 1167127195
+1258 1 onecfg_slice1256 nodes= [4256, 4257, 4258, 1256, 1257, 1258] persons= [3261, 3262, 3263]
+--- sas= [] onecfg_slice1256 crp= 1
+--- 'expires': 1167127196
+1259 1 onecfh_slice1257 nodes= [4257, 4258, 4259, 1257, 1258, 1259] persons= [3264, 3262, 3263]
+--- sas= [] onecfh_slice1257 crp= 1
+--- 'expires': 1167127196
+1260 1 onecfi_slice1258 nodes= [4258, 4259, 4260, 1258, 1259, 1260] persons= [3264, 3265, 3263]
+--- sas= [] onecfi_slice1258 crp= 1
+--- 'expires': 1167127197
+1261 1 onecfj_slice1259 nodes= [4259, 4260, 4261, 1259, 1260, 1261] persons= [3264, 3265, 3266]
+--- sas= [] onecfj_slice1259 crp= 1
+--- 'expires': 1167127197
+1262 1 onecga_slice1260 nodes= [4260, 4261, 4262, 1260, 1261, 1262] persons= [3265, 3266, 3267]
+--- sas= [] onecga_slice1260 crp= 1
+--- 'expires': 1167127197
+1263 1 onecgb_slice1261 nodes= [4261, 4262, 4263, 1261, 1262, 1263] persons= [3266, 3267, 3268]
+--- sas= [] onecgb_slice1261 crp= 1
+--- 'expires': 1167127198
+1264 1 onecgc_slice1262 nodes= [4262, 4263, 4264, 1262, 1263, 1264] persons= [3267, 3268, 3269]
+--- sas= [] onecgc_slice1262 crp= 1
+--- 'expires': 1167127198
+1265 1 onecgd_slice1263 nodes= [4263, 4264, 4265, 1263, 1264, 1265] persons= [3268, 3269, 3270]
+--- sas= [] onecgd_slice1263 crp= 1
+--- 'expires': 1167127199
+1266 1 onecge_slice1264 nodes= [4264, 4265, 4266, 1264, 1265, 1266] persons= [3269, 3270, 3271]
+--- sas= [] onecge_slice1264 crp= 1
+--- 'expires': 1167127199
+1267 1 onecgf_slice1265 nodes= [4265, 4266, 4267, 1265, 1266, 1267] persons= [3272, 3270, 3271]
+--- sas= [] onecgf_slice1265 crp= 1
+--- 'expires': 1167127200
+1268 1 onecgg_slice1266 nodes= [4266, 4267, 4268, 1266, 1267, 1268] persons= [3272, 3273, 3271]
+--- sas= [] onecgg_slice1266 crp= 1
+--- 'expires': 1167127200
+1269 1 onecgh_slice1267 nodes= [4267, 4268, 4269, 1267, 1268, 1269] persons= [3272, 3273, 3274]
+--- sas= [] onecgh_slice1267 crp= 1
+--- 'expires': 1167127200
+1270 1 onecgi_slice1268 nodes= [4268, 4269, 4270, 1268, 1269, 1270] persons= [3273, 3274, 3275]
+--- sas= [] onecgi_slice1268 crp= 1
+--- 'expires': 1167127201
+1271 1 onecgj_slice1269 nodes= [4269, 4270, 4271, 1269, 1270, 1271] persons= [3274, 3275, 3276]
+--- sas= [] onecgj_slice1269 crp= 1
+--- 'expires': 1167127201
+1272 1 onecha_slice1270 nodes= [4270, 4271, 4272, 1270, 1271, 1272] persons= [3275, 3276, 3277]
+--- sas= [] onecha_slice1270 crp= 1
+--- 'expires': 1167127202
+1273 1 onechb_slice1271 nodes= [4271, 4272, 4273, 1271, 1272, 1273] persons= [3276, 3277, 3278]
+--- sas= [] onechb_slice1271 crp= 1
+--- 'expires': 1167127210
+1274 1 onechc_slice1272 nodes= [4272, 4273, 4274, 1272, 1273, 1274] persons= [3277, 3278, 3279]
+--- sas= [] onechc_slice1272 crp= 1
+--- 'expires': 1167127211
+1275 1 onechd_slice1273 nodes= [4273, 4274, 4275, 1273, 1274, 1275] persons= [3280, 3278, 3279]
+--- sas= [] onechd_slice1273 crp= 1
+--- 'expires': 1167127214
+1276 1 oneche_slice1274 nodes= [4274, 4275, 4276, 1274, 1275, 1276] persons= [3280, 3281, 3279]
+--- sas= [] oneche_slice1274 crp= 1
+--- 'expires': 1167127216
+1277 1 onechf_slice1275 nodes= [4275, 4276, 4277, 1275, 1276, 1277] persons= [3280, 3281, 3282]
+--- sas= [] onechf_slice1275 crp= 1
+--- 'expires': 1167127217
+1278 1 onechg_slice1276 nodes= [4276, 4277, 4278, 1276, 1277, 1278] persons= [3281, 3282, 3283]
+--- sas= [] onechg_slice1276 crp= 1
+--- 'expires': 1167127219
+1279 1 onechh_slice1277 nodes= [4277, 4278, 4279, 1277, 1278, 1279] persons= [3282, 3283, 3284]
+--- sas= [] onechh_slice1277 crp= 1
+--- 'expires': 1167127220
+1280 1 onechi_slice1278 nodes= [1280, 4278, 4279, 4280, 1278, 1279] persons= [3283, 3284, 3285]
+--- sas= [] onechi_slice1278 crp= 1
+--- 'expires': 1167127222
+1281 1 onechj_slice1279 nodes= [1280, 1281, 4279, 4280, 4281, 1279] persons= [3284, 3285, 3286]
+--- sas= [] onechj_slice1279 crp= 1
+--- 'expires': 1167127223
+1282 1 onecia_slice1280 nodes= [1280, 1281, 1282, 4280, 4281, 4282] persons= [3285, 3286, 3287]
+--- sas= [] onecia_slice1280 crp= 1
+--- 'expires': 1167127224
+1283 1 onecib_slice1281 nodes= [1281, 1282, 1283, 4281, 4282, 4283] persons= [3288, 3286, 3287]
+--- sas= [] onecib_slice1281 crp= 1
+--- 'expires': 1167127226
+1284 1 onecic_slice1282 nodes= [1282, 1283, 1284, 4282, 4283, 4284] persons= [3288, 3289, 3287]
+--- sas= [] onecic_slice1282 crp= 1
+--- 'expires': 1167127227
+1285 1 onecid_slice1283 nodes= [1283, 1284, 1285, 4283, 4284, 4285] persons= [3288, 3289, 3290]
+--- sas= [] onecid_slice1283 crp= 1
+--- 'expires': 1167127229
+1286 1 onecie_slice1284 nodes= [1284, 1285, 1286, 4284, 4285, 4286] persons= [3289, 3290, 3291]
+--- sas= [] onecie_slice1284 crp= 1
+--- 'expires': 1167127230
+1287 1 onecif_slice1285 nodes= [1285, 1286, 1287, 4285, 4286, 4287] persons= [3290, 3291, 3292]
+--- sas= [] onecif_slice1285 crp= 1
+--- 'expires': 1167127231
+1288 1 onecig_slice1286 nodes= [4288, 1286, 1287, 1288, 4286, 4287] persons= [3291, 3292, 3293]
+--- sas= [] onecig_slice1286 crp= 1
+--- 'expires': 1167127233
+1289 1 onecih_slice1287 nodes= [4288, 4289, 1287, 1288, 1289, 4287] persons= [3292, 3293, 3294]
+--- sas= [] onecih_slice1287 crp= 1
+--- 'expires': 1167127234
+1290 1 onecii_slice1288 nodes= [4288, 4289, 4290, 1288, 1289, 1290] persons= [3293, 3294, 3295]
+--- sas= [] onecii_slice1288 crp= 1
+--- 'expires': 1167127235
+1291 1 onecij_slice1289 nodes= [4289, 4290, 4291, 1289, 1290, 1291] persons= [3296, 3294, 3295]
+--- sas= [] onecij_slice1289 crp= 1
+--- 'expires': 1167127237
+1292 1 onecja_slice1290 nodes= [4290, 4291, 4292, 1290, 1291, 1292] persons= [3296, 3297, 3295]
+--- sas= [] onecja_slice1290 crp= 1
+--- 'expires': 1167127239
+1293 1 onecjb_slice1291 nodes= [4291, 4292, 4293, 1291, 1292, 1293] persons= [3296, 3297, 3298]
+--- sas= [] onecjb_slice1291 crp= 1
+--- 'expires': 1167127240
+1294 1 onecjc_slice1292 nodes= [4292, 4293, 4294, 1292, 1293, 1294] persons= [3297, 3298, 3299]
+--- sas= [] onecjc_slice1292 crp= 1
+--- 'expires': 1167127241
+1295 1 onecjd_slice1293 nodes= [4293, 4294, 4295, 1293, 1294, 1295] persons= [3298, 3299, 3300]
+--- sas= [] onecjd_slice1293 crp= 1
+--- 'expires': 1167127243
+1296 1 onecje_slice1294 nodes= [4294, 4295, 4296, 1294, 1295, 1296] persons= [3299, 3300, 3301]
+--- sas= [] onecje_slice1294 crp= 1
+--- 'expires': 1167127244
+1297 1 onecjf_slice1295 nodes= [4295, 4296, 4297, 1295, 1296, 1297] persons= [3300, 3301, 3302]
+--- sas= [] onecjf_slice1295 crp= 1
+--- 'expires': 1167127245
+1298 1 onecjg_slice1296 nodes= [4296, 4297, 4298, 1296, 1297, 1298] persons= [3301, 3302, 3303]
+--- sas= [] onecjg_slice1296 crp= 1
+--- 'expires': 1167127247
+1299 1 onecjh_slice1297 nodes= [4297, 4298, 4299, 1297, 1298, 1299] persons= [3304, 3302, 3303]
+--- sas= [] onecjh_slice1297 crp= 1
+--- 'expires': 1167127248
+1300 1 onecji_slice1298 nodes= [4298, 4299, 4300, 1298, 1299, 1300] persons= [3304, 3305, 3303]
+--- sas= [] onecji_slice1298 crp= 1
+--- 'expires': 1167127250
+1301 1 onecjj_slice1299 nodes= [4299, 4300, 4301, 1299, 1300, 1301] persons= [3304, 3305, 3306]
+--- sas= [] onecjj_slice1299 crp= 1
+--- 'expires': 1167127251
+1302 1 onedaa_slice1300 nodes= [4300, 4301, 4302, 1300, 1301, 1302] persons= [3305, 3306, 3307]
+--- sas= [] onedaa_slice1300 crp= 1
+--- 'expires': 1167127253
+1303 1 onedab_slice1301 nodes= [4301, 4302, 4303, 1301, 1302, 1303] persons= [3306, 3307, 3308]
+--- sas= [] onedab_slice1301 crp= 1
+--- 'expires': 1167127254
+1304 1 onedac_slice1302 nodes= [4302, 4303, 4304, 1302, 1303, 1304] persons= [3307, 3308, 3309]
+--- sas= [] onedac_slice1302 crp= 1
+--- 'expires': 1167127256
+1305 1 onedad_slice1303 nodes= [4303, 4304, 4305, 1303, 1304, 1305] persons= [3308, 3309, 3310]
+--- sas= [] onedad_slice1303 crp= 1
+--- 'expires': 1167127257
+1306 1 onedae_slice1304 nodes= [4304, 4305, 4306, 1304, 1305, 1306] persons= [3309, 3310, 3311]
+--- sas= [] onedae_slice1304 crp= 1
+--- 'expires': 1167127259
+1307 1 onedaf_slice1305 nodes= [4305, 4306, 4307, 1305, 1306, 1307] persons= [3312, 3310, 3311]
+--- sas= [] onedaf_slice1305 crp= 1
+--- 'expires': 1167127260
+1308 1 onedag_slice1306 nodes= [4306, 4307, 4308, 1306, 1307, 1308] persons= [3312, 3313, 3311]
+--- sas= [] onedag_slice1306 crp= 1
+--- 'expires': 1167127262
+1309 1 onedah_slice1307 nodes= [4307, 4308, 4309, 1307, 1308, 1309] persons= [3312, 3313, 3314]
+--- sas= [] onedah_slice1307 crp= 1
+--- 'expires': 1167127263
+1310 1 onedai_slice1308 nodes= [4308, 4309, 4310, 1308, 1309, 1310] persons= [3313, 3314, 3315]
+--- sas= [] onedai_slice1308 crp= 1
+--- 'expires': 1167127264
+1311 1 onedaj_slice1309 nodes= [4309, 4310, 4311, 1309, 1310, 1311] persons= [3314, 3315, 3316]
+--- sas= [] onedaj_slice1309 crp= 1
+--- 'expires': 1167127266
+1312 1 onedba_slice1310 nodes= [1312, 4310, 4311, 4312, 1310, 1311] persons= [3315, 3316, 3317]
+--- sas= [] onedba_slice1310 crp= 1
+--- 'expires': 1167127267
+1313 1 onedbb_slice1311 nodes= [1312, 1313, 4311, 4312, 4313, 1311] persons= [3316, 3317, 3318]
+--- sas= [] onedbb_slice1311 crp= 1
+--- 'expires': 1167127269
+1314 1 onedbc_slice1312 nodes= [1312, 1313, 1314, 4312, 4313, 4314] persons= [3317, 3318, 3319]
+--- sas= [] onedbc_slice1312 crp= 1
+--- 'expires': 1167127270
+1315 1 onedbd_slice1313 nodes= [1313, 1314, 1315, 4313, 4314, 4315] persons= [3320, 3318, 3319]
+--- sas= [] onedbd_slice1313 crp= 1
+--- 'expires': 1167127271
+1316 1 onedbe_slice1314 nodes= [1314, 1315, 1316, 4314, 4315, 4316] persons= [3320, 3321, 3319]
+--- sas= [] onedbe_slice1314 crp= 1
+--- 'expires': 1167127273
+1317 1 onedbf_slice1315 nodes= [1315, 1316, 1317, 4315, 4316, 4317] persons= [3320, 3321, 3322]
+--- sas= [] onedbf_slice1315 crp= 1
+--- 'expires': 1167127274
+1318 1 onedbg_slice1316 nodes= [1316, 1317, 1318, 4316, 4317, 4318] persons= [3321, 3322, 3323]
+--- sas= [] onedbg_slice1316 crp= 1
+--- 'expires': 1167127276
+1319 1 onedbh_slice1317 nodes= [1317, 1318, 1319, 4317, 4318, 4319] persons= [3322, 3323, 3324]
+--- sas= [] onedbh_slice1317 crp= 1
+--- 'expires': 1167127277
+1320 1 onedbi_slice1318 nodes= [4320, 1318, 1319, 1320, 4318, 4319] persons= [3323, 3324, 3325]
+--- sas= [] onedbi_slice1318 crp= 1
+--- 'expires': 1167127278
+1321 1 onedbj_slice1319 nodes= [4320, 4321, 1319, 1320, 1321, 4319] persons= [3324, 3325, 3326]
+--- sas= [] onedbj_slice1319 crp= 1
+--- 'expires': 1167127280
+1322 1 onedca_slice1320 nodes= [4320, 4321, 4322, 1320, 1321, 1322] persons= [3325, 3326, 3327]
+--- sas= [] onedca_slice1320 crp= 1
+--- 'expires': 1167127281
+1323 1 onedcb_slice1321 nodes= [4321, 4322, 4323, 1321, 1322, 1323] persons= [3328, 3326, 3327]
+--- sas= [] onedcb_slice1321 crp= 1
+--- 'expires': 1167127283
+1324 1 onedcc_slice1322 nodes= [4322, 4323, 4324, 1322, 1323, 1324] persons= [3328, 3329, 3327]
+--- sas= [] onedcc_slice1322 crp= 1
+--- 'expires': 1167127284
+1325 1 onedcd_slice1323 nodes= [4323, 4324, 4325, 1323, 1324, 1325] persons= [3328, 3329, 3330]
+--- sas= [] onedcd_slice1323 crp= 1
+--- 'expires': 1167127285
+1326 1 onedce_slice1324 nodes= [4324, 4325, 4326, 1324, 1325, 1326] persons= [3329, 3330, 3331]
+--- sas= [] onedce_slice1324 crp= 1
+--- 'expires': 1167127287
+1327 1 onedcf_slice1325 nodes= [4325, 4326, 4327, 1325, 1326, 1327] persons= [3330, 3331, 3332]
+--- sas= [] onedcf_slice1325 crp= 1
+--- 'expires': 1167127288
+1328 1 onedcg_slice1326 nodes= [4326, 4327, 4328, 1326, 1327, 1328] persons= [3331, 3332, 3333]
+--- sas= [] onedcg_slice1326 crp= 1
+--- 'expires': 1167127290
+1329 1 onedch_slice1327 nodes= [4327, 4328, 4329, 1327, 1328, 1329] persons= [3332, 3333, 3334]
+--- sas= [] onedch_slice1327 crp= 1
+--- 'expires': 1167127291
+1330 1 onedci_slice1328 nodes= [4328, 4329, 4330, 1328, 1329, 1330] persons= [3333, 3334, 3335]
+--- sas= [] onedci_slice1328 crp= 1
+--- 'expires': 1167127293
+1331 1 onedcj_slice1329 nodes= [4329, 4330, 4331, 1329, 1330, 1331] persons= [3336, 3334, 3335]
+--- sas= [] onedcj_slice1329 crp= 1
+--- 'expires': 1167127294
+1332 1 onedda_slice1330 nodes= [4330, 4331, 4332, 1330, 1331, 1332] persons= [3336, 3337, 3335]
+--- sas= [] onedda_slice1330 crp= 1
+--- 'expires': 1167127296
+1333 1 oneddb_slice1331 nodes= [4331, 4332, 4333, 1331, 1332, 1333] persons= [3336, 3337, 3338]
+--- sas= [] oneddb_slice1331 crp= 1
+--- 'expires': 1167127297
+1334 1 oneddc_slice1332 nodes= [4332, 4333, 4334, 1332, 1333, 1334] persons= [3337, 3338, 3339]
+--- sas= [] oneddc_slice1332 crp= 1
+--- 'expires': 1167127298
+1335 1 oneddd_slice1333 nodes= [4333, 4334, 4335, 1333, 1334, 1335] persons= [3338, 3339, 3340]
+--- sas= [] oneddd_slice1333 crp= 1
+--- 'expires': 1167127300
+1336 1 onedde_slice1334 nodes= [4334, 4335, 4336, 1334, 1335, 1336] persons= [3339, 3340, 3341]
+--- sas= [] onedde_slice1334 crp= 1
+--- 'expires': 1167127301
+1337 1 oneddf_slice1335 nodes= [4335, 4336, 4337, 1335, 1336, 1337] persons= [3340, 3341, 3342]
+--- sas= [] oneddf_slice1335 crp= 1
+--- 'expires': 1167127303
+1338 1 oneddg_slice1336 nodes= [4336, 4337, 4338, 1336, 1337, 1338] persons= [3341, 3342, 3343]
+--- sas= [] oneddg_slice1336 crp= 1
+--- 'expires': 1167127304
+1339 1 oneddh_slice1337 nodes= [4337, 4338, 4339, 1337, 1338, 1339] persons= [3344, 3342, 3343]
+--- sas= [] oneddh_slice1337 crp= 1
+--- 'expires': 1167127305
+1340 1 oneddi_slice1338 nodes= [4338, 4339, 4340, 1338, 1339, 1340] persons= [3344, 3345, 3343]
+--- sas= [] oneddi_slice1338 crp= 1
+--- 'expires': 1167127307
+1341 1 oneddj_slice1339 nodes= [4339, 4340, 4341, 1339, 1340, 1341] persons= [3344, 3345, 3346]
+--- sas= [] oneddj_slice1339 crp= 1
+--- 'expires': 1167127308
+1342 1 onedea_slice1340 nodes= [4340, 4341, 4342, 1340, 1341, 1342] persons= [3345, 3346, 3347]
+--- sas= [] onedea_slice1340 crp= 1
+--- 'expires': 1167127310
+1343 1 onedeb_slice1341 nodes= [4341, 4342, 4343, 1341, 1342, 1343] persons= [3346, 3347, 3348]
+--- sas= [] onedeb_slice1341 crp= 1
+--- 'expires': 1167127311
+1344 1 onedec_slice1342 nodes= [1344, 4342, 4343, 4344, 1342, 1343] persons= [3347, 3348, 3349]
+--- sas= [] onedec_slice1342 crp= 1
+--- 'expires': 1167127313
+1345 1 oneded_slice1343 nodes= [1344, 1345, 4343, 4344, 4345, 1343] persons= [3348, 3349, 3350]
+--- sas= [] oneded_slice1343 crp= 1
+--- 'expires': 1167127314
+1346 1 onedee_slice1344 nodes= [1344, 1345, 1346, 4344, 4345, 4346] persons= [3349, 3350, 3351]
+--- sas= [] onedee_slice1344 crp= 1
+--- 'expires': 1167127315
+1347 1 onedef_slice1345 nodes= [1345, 1346, 1347, 4345, 4346, 4347] persons= [3352, 3350, 3351]
+--- sas= [] onedef_slice1345 crp= 1
+--- 'expires': 1167127317
+1348 1 onedeg_slice1346 nodes= [1346, 1347, 1348, 4346, 4347, 4348] persons= [3352, 3353, 3351]
+--- sas= [] onedeg_slice1346 crp= 1
+--- 'expires': 1167127318
+1349 1 onedeh_slice1347 nodes= [1347, 1348, 1349, 4347, 4348, 4349] persons= [3352, 3353, 3354]
+--- sas= [] onedeh_slice1347 crp= 1
+--- 'expires': 1167127320
+1350 1 onedei_slice1348 nodes= [1348, 1349, 1350, 4348, 4349, 4350] persons= [3353, 3354, 3355]
+--- sas= [] onedei_slice1348 crp= 1
+--- 'expires': 1167127321
+1351 1 onedej_slice1349 nodes= [1349, 1350, 1351, 4349, 4350, 4351] persons= [3354, 3355, 3356]
+--- sas= [] onedej_slice1349 crp= 1
+--- 'expires': 1167127323
+1352 1 onedfa_slice1350 nodes= [4352, 1350, 1351, 1352, 4350, 4351] persons= [3355, 3356, 3357]
+--- sas= [] onedfa_slice1350 crp= 1
+--- 'expires': 1167127324
+1353 1 onedfb_slice1351 nodes= [4352, 4353, 1351, 1352, 1353, 4351] persons= [3356, 3357, 3358]
+--- sas= [] onedfb_slice1351 crp= 1
+--- 'expires': 1167127325
+1354 1 onedfc_slice1352 nodes= [4352, 4353, 4354, 1352, 1353, 1354] persons= [3357, 3358, 3359]
+--- sas= [] onedfc_slice1352 crp= 1
+--- 'expires': 1167127327
+1355 1 onedfd_slice1353 nodes= [4353, 4354, 4355, 1353, 1354, 1355] persons= [3360, 3358, 3359]
+--- sas= [] onedfd_slice1353 crp= 1
+--- 'expires': 1167127328
+1356 1 onedfe_slice1354 nodes= [4354, 4355, 4356, 1354, 1355, 1356] persons= [3360, 3361, 3359]
+--- sas= [] onedfe_slice1354 crp= 1
+--- 'expires': 1167127330
+1357 1 onedff_slice1355 nodes= [4355, 4356, 4357, 1355, 1356, 1357] persons= [3360, 3361, 3362]
+--- sas= [] onedff_slice1355 crp= 1
+--- 'expires': 1167127331
+1358 1 onedfg_slice1356 nodes= [4356, 4357, 4358, 1356, 1357, 1358] persons= [3361, 3362, 3363]
+--- sas= [] onedfg_slice1356 crp= 1
+--- 'expires': 1167127332
+1359 1 onedfh_slice1357 nodes= [4357, 4358, 4359, 1357, 1358, 1359] persons= [3362, 3363, 3364]
+--- sas= [] onedfh_slice1357 crp= 1
+--- 'expires': 1167127334
+1360 1 onedfi_slice1358 nodes= [4358, 4359, 4360, 1358, 1359, 1360] persons= [3363, 3364, 3365]
+--- sas= [] onedfi_slice1358 crp= 1
+--- 'expires': 1167127335
+1361 1 onedfj_slice1359 nodes= [4359, 4360, 4361, 1359, 1360, 1361] persons= [3364, 3365, 3366]
+--- sas= [] onedfj_slice1359 crp= 1
+--- 'expires': 1167127337
+1362 1 onedga_slice1360 nodes= [4360, 4361, 4362, 1360, 1361, 1362] persons= [3365, 3366, 3367]
+--- sas= [] onedga_slice1360 crp= 1
+--- 'expires': 1167127338
+1363 1 onedgb_slice1361 nodes= [4361, 4362, 4363, 1361, 1362, 1363] persons= [3368, 3366, 3367]
+--- sas= [] onedgb_slice1361 crp= 1
+--- 'expires': 1167127340
+1364 1 onedgc_slice1362 nodes= [4362, 4363, 4364, 1362, 1363, 1364] persons= [3368, 3369, 3367]
+--- sas= [] onedgc_slice1362 crp= 1
+--- 'expires': 1167127341
+1365 1 onedgd_slice1363 nodes= [4363, 4364, 4365, 1363, 1364, 1365] persons= [3368, 3369, 3370]
+--- sas= [] onedgd_slice1363 crp= 1
+--- 'expires': 1167127343
+1366 1 onedge_slice1364 nodes= [4364, 4365, 4366, 1364, 1365, 1366] persons= [3369, 3370, 3371]
+--- sas= [] onedge_slice1364 crp= 1
+--- 'expires': 1167127344
+1367 1 onedgf_slice1365 nodes= [4365, 4366, 4367, 1365, 1366, 1367] persons= [3370, 3371, 3372]
+--- sas= [] onedgf_slice1365 crp= 1
+--- 'expires': 1167127346
+1368 1 onedgg_slice1366 nodes= [4366, 4367, 4368, 1366, 1367, 1368] persons= [3371, 3372, 3373]
+--- sas= [] onedgg_slice1366 crp= 1
+--- 'expires': 1167127347
+1369 1 onedgh_slice1367 nodes= [4367, 4368, 4369, 1367, 1368, 1369] persons= [3372, 3373, 3374]
+--- sas= [] onedgh_slice1367 crp= 1
+--- 'expires': 1167127349
+1370 1 onedgi_slice1368 nodes= [4368, 4369, 4370, 1368, 1369, 1370] persons= [3373, 3374, 3375]
+--- sas= [] onedgi_slice1368 crp= 1
+--- 'expires': 1167127350
+1371 1 onedgj_slice1369 nodes= [4369, 4370, 4371, 1369, 1370, 1371] persons= [3376, 3374, 3375]
+--- sas= [] onedgj_slice1369 crp= 1
+--- 'expires': 1167127352
+1372 1 onedha_slice1370 nodes= [4370, 4371, 4372, 1370, 1371, 1372] persons= [3376, 3377, 3375]
+--- sas= [] onedha_slice1370 crp= 1
+--- 'expires': 1167127353
+1373 1 onedhb_slice1371 nodes= [4371, 4372, 4373, 1371, 1372, 1373] persons= [3376, 3377, 3378]
+--- sas= [] onedhb_slice1371 crp= 1
+--- 'expires': 1167127355
+1374 1 onedhc_slice1372 nodes= [4372, 4373, 4374, 1372, 1373, 1374] persons= [3377, 3378, 3379]
+--- sas= [] onedhc_slice1372 crp= 1
+--- 'expires': 1167127356
+1375 1 onedhd_slice1373 nodes= [4373, 4374, 4375, 1373, 1374, 1375] persons= [3378, 3379, 3380]
+--- sas= [] onedhd_slice1373 crp= 1
+--- 'expires': 1167127357
+1376 1 onedhe_slice1374 nodes= [1376, 4374, 4375, 4376, 1374, 1375] persons= [3379, 3380, 3381]
+--- sas= [] onedhe_slice1374 crp= 1
+--- 'expires': 1167127359
+1377 1 onedhf_slice1375 nodes= [1376, 1377, 4375, 4376, 4377, 1375] persons= [3380, 3381, 3382]
+--- sas= [] onedhf_slice1375 crp= 1
+--- 'expires': 1167127360
+1378 1 onedhg_slice1376 nodes= [1376, 1377, 1378, 4376, 4377, 4378] persons= [3381, 3382, 3383]
+--- sas= [] onedhg_slice1376 crp= 1
+--- 'expires': 1167127362
+1379 1 onedhh_slice1377 nodes= [1377, 1378, 1379, 4377, 4378, 4379] persons= [3384, 3382, 3383]
+--- sas= [] onedhh_slice1377 crp= 1
+--- 'expires': 1167127363
+1380 1 onedhi_slice1378 nodes= [1378, 1379, 1380, 4378, 4379, 4380] persons= [3384, 3385, 3383]
+--- sas= [] onedhi_slice1378 crp= 1
+--- 'expires': 1167127365
+1381 1 onedhj_slice1379 nodes= [1379, 1380, 1381, 4379, 4380, 4381] persons= [3384, 3385, 3386]
+--- sas= [] onedhj_slice1379 crp= 1
+--- 'expires': 1167127366
+1382 1 onedia_slice1380 nodes= [1380, 1381, 1382, 4380, 4381, 4382] persons= [3385, 3386, 3387]
+--- sas= [] onedia_slice1380 crp= 1
+--- 'expires': 1167127368
+1383 1 onedib_slice1381 nodes= [1381, 1382, 1383, 4381, 4382, 4383] persons= [3386, 3387, 3388]
+--- sas= [] onedib_slice1381 crp= 1
+--- 'expires': 1167127369
+1384 1 onedic_slice1382 nodes= [4384, 1382, 1383, 1384, 4382, 4383] persons= [3387, 3388, 3389]
+--- sas= [] onedic_slice1382 crp= 1
+--- 'expires': 1167127371
+1385 1 onedid_slice1383 nodes= [4384, 4385, 1383, 1384, 1385, 4383] persons= [3388, 3389, 3390]
+--- sas= [] onedid_slice1383 crp= 1
+--- 'expires': 1167127372
+1386 1 onedie_slice1384 nodes= [4384, 4385, 4386, 1384, 1385, 1386] persons= [3389, 3390, 3391]
+--- sas= [] onedie_slice1384 crp= 1
+--- 'expires': 1167127374
+1387 1 onedif_slice1385 nodes= [4385, 4386, 4387, 1385, 1386, 1387] persons= [3392, 3390, 3391]
+--- sas= [] onedif_slice1385 crp= 1
+--- 'expires': 1167127375
+1388 1 onedig_slice1386 nodes= [4386, 4387, 4388, 1386, 1387, 1388] persons= [3392, 3393, 3391]
+--- sas= [] onedig_slice1386 crp= 1
+--- 'expires': 1167127376
+1389 1 onedih_slice1387 nodes= [4387, 4388, 4389, 1387, 1388, 1389] persons= [3392, 3393, 3394]
+--- sas= [] onedih_slice1387 crp= 1
+--- 'expires': 1167127378
+1390 1 onedii_slice1388 nodes= [4388, 4389, 4390, 1388, 1389, 1390] persons= [3393, 3394, 3395]
+--- sas= [] onedii_slice1388 crp= 1
+--- 'expires': 1167127379
+1391 1 onedij_slice1389 nodes= [4389, 4390, 4391, 1389, 1390, 1391] persons= [3394, 3395, 3396]
+--- sas= [] onedij_slice1389 crp= 1
+--- 'expires': 1167127381
+1392 1 onedja_slice1390 nodes= [4390, 4391, 4392, 1390, 1391, 1392] persons= [3395, 3396, 3397]
+--- sas= [] onedja_slice1390 crp= 1
+--- 'expires': 1167127382
+1393 1 onedjb_slice1391 nodes= [4391, 4392, 4393, 1391, 1392, 1393] persons= [3396, 3397, 3398]
+--- sas= [] onedjb_slice1391 crp= 1
+--- 'expires': 1167127384
+1394 1 onedjc_slice1392 nodes= [4392, 4393, 4394, 1392, 1393, 1394] persons= [3397, 3398, 3399]
+--- sas= [] onedjc_slice1392 crp= 1
+--- 'expires': 1167127385
+1395 1 onedjd_slice1393 nodes= [4393, 4394, 4395, 1393, 1394, 1395] persons= [3400, 3398, 3399]
+--- sas= [] onedjd_slice1393 crp= 1
+--- 'expires': 1167127387
+1396 1 onedje_slice1394 nodes= [4394, 4395, 4396, 1394, 1395, 1396] persons= [3400, 3401, 3399]
+--- sas= [] onedje_slice1394 crp= 1
+--- 'expires': 1167127388
+1397 1 onedjf_slice1395 nodes= [4395, 4396, 4397, 1395, 1396, 1397] persons= [3400, 3401, 3402]
+--- sas= [] onedjf_slice1395 crp= 1
+--- 'expires': 1167127389
+1398 1 onedjg_slice1396 nodes= [4396, 4397, 4398, 1396, 1397, 1398] persons= [3401, 3402, 3403]
+--- sas= [] onedjg_slice1396 crp= 1
+--- 'expires': 1167127391
+1399 1 onedjh_slice1397 nodes= [4397, 4398, 4399, 1397, 1398, 1399] persons= [3402, 3403, 3404]
+--- sas= [] onedjh_slice1397 crp= 1
+--- 'expires': 1167127392
+1400 1 onedji_slice1398 nodes= [4398, 4399, 4400, 1398, 1399, 1400] persons= [3403, 3404, 3405]
+--- sas= [] onedji_slice1398 crp= 1
+--- 'expires': 1167127394
+1401 1 onedjj_slice1399 nodes= [4399, 4400, 4401, 1399, 1400, 1401] persons= [3404, 3405, 3406]
+--- sas= [] onedjj_slice1399 crp= 1
+--- 'expires': 1167127395
+1402 1 oneeaa_slice1400 nodes= [4400, 4401, 4402, 1400, 1401, 1402] persons= [3405, 3406, 3407]
+--- sas= [] oneeaa_slice1400 crp= 1
+--- 'expires': 1167127397
+1403 1 oneeab_slice1401 nodes= [4401, 4402, 4403, 1401, 1402, 1403] persons= [3408, 3406, 3407]
+--- sas= [] oneeab_slice1401 crp= 1
+--- 'expires': 1167127398
+1404 1 oneeac_slice1402 nodes= [4402, 4403, 4404, 1402, 1403, 1404] persons= [3408, 3409, 3407]
+--- sas= [] oneeac_slice1402 crp= 1
+--- 'expires': 1167127400
+1405 1 oneead_slice1403 nodes= [4403, 4404, 4405, 1403, 1404, 1405] persons= [3408, 3409, 3410]
+--- sas= [] oneead_slice1403 crp= 1
+--- 'expires': 1167127401
+1406 1 oneeae_slice1404 nodes= [4404, 4405, 4406, 1404, 1405, 1406] persons= [3409, 3410, 3411]
+--- sas= [] oneeae_slice1404 crp= 1
+--- 'expires': 1167127403
+1407 1 oneeaf_slice1405 nodes= [4405, 4406, 4407, 1405, 1406, 1407] persons= [3410, 3411, 3412]
+--- sas= [] oneeaf_slice1405 crp= 1
+--- 'expires': 1167127404
+1408 1 oneeag_slice1406 nodes= [1408, 4406, 4407, 4408, 1406, 1407] persons= [3411, 3412, 3413]
+--- sas= [] oneeag_slice1406 crp= 1
+--- 'expires': 1167127406
+1409 1 oneeah_slice1407 nodes= [1408, 1409, 4407, 4408, 4409, 1407] persons= [3412, 3413, 3414]
+--- sas= [] oneeah_slice1407 crp= 1
+--- 'expires': 1167127407
+1410 1 oneeai_slice1408 nodes= [1408, 1409, 1410, 4408, 4409, 4410] persons= [3413, 3414, 3415]
+--- sas= [] oneeai_slice1408 crp= 1
+--- 'expires': 1167127409
+1411 1 oneeaj_slice1409 nodes= [1409, 1410, 1411, 4409, 4410, 4411] persons= [3416, 3414, 3415]
+--- sas= [] oneeaj_slice1409 crp= 1
+--- 'expires': 1167127410
+1412 1 oneeba_slice1410 nodes= [1410, 1411, 1412, 4410, 4411, 4412] persons= [3416, 3417, 3415]
+--- sas= [] oneeba_slice1410 crp= 1
+--- 'expires': 1167127411
+1413 1 oneebb_slice1411 nodes= [1411, 1412, 1413, 4411, 4412, 4413] persons= [3416, 3417, 3418]
+--- sas= [] oneebb_slice1411 crp= 1
+--- 'expires': 1167127413
+1414 1 oneebc_slice1412 nodes= [1412, 1413, 1414, 4412, 4413, 4414] persons= [3417, 3418, 3419]
+--- sas= [] oneebc_slice1412 crp= 1
+--- 'expires': 1167127414
+1415 1 oneebd_slice1413 nodes= [1413, 1414, 1415, 4413, 4414, 4415] persons= [3418, 3419, 3420]
+--- sas= [] oneebd_slice1413 crp= 1
+--- 'expires': 1167127416
+1416 1 oneebe_slice1414 nodes= [4416, 1414, 1415, 1416, 4414, 4415] persons= [3419, 3420, 3421]
+--- sas= [] oneebe_slice1414 crp= 1
+--- 'expires': 1167127417
+1417 1 oneebf_slice1415 nodes= [4416, 4417, 1415, 1416, 1417, 4415] persons= [3420, 3421, 3422]
+--- sas= [] oneebf_slice1415 crp= 1
+--- 'expires': 1167127418
+1418 1 oneebg_slice1416 nodes= [4416, 4417, 4418, 1416, 1417, 1418] persons= [3421, 3422, 3423]
+--- sas= [] oneebg_slice1416 crp= 1
+--- 'expires': 1167127418
+1419 1 oneebh_slice1417 nodes= [4417, 4418, 4419, 1417, 1418, 1419] persons= [3424, 3422, 3423]
+--- sas= [] oneebh_slice1417 crp= 1
+--- 'expires': 1167127419
+1420 1 oneebi_slice1418 nodes= [4418, 4419, 4420, 1418, 1419, 1420] persons= [3424, 3425, 3423]
+--- sas= [] oneebi_slice1418 crp= 1
+--- 'expires': 1167127419
+1421 1 oneebj_slice1419 nodes= [4419, 4420, 4421, 1419, 1420, 1421] persons= [3424, 3425, 3426]
+--- sas= [] oneebj_slice1419 crp= 1
+--- 'expires': 1167127420
+1422 1 oneeca_slice1420 nodes= [4420, 4421, 4422, 1420, 1421, 1422] persons= [3425, 3426, 3427]
+--- sas= [] oneeca_slice1420 crp= 1
+--- 'expires': 1167127420
+1423 1 oneecb_slice1421 nodes= [4421, 4422, 4423, 1421, 1422, 1423] persons= [3426, 3427, 3428]
+--- sas= [] oneecb_slice1421 crp= 1
+--- 'expires': 1167127421
+1424 1 oneecc_slice1422 nodes= [4422, 4423, 4424, 1422, 1423, 1424] persons= [3427, 3428, 3429]
+--- sas= [] oneecc_slice1422 crp= 1
+--- 'expires': 1167127421
+1425 1 oneecd_slice1423 nodes= [4423, 4424, 4425, 1423, 1424, 1425] persons= [3428, 3429, 3430]
+--- sas= [] oneecd_slice1423 crp= 1
+--- 'expires': 1167127422
+1426 1 oneece_slice1424 nodes= [4424, 4425, 4426, 1424, 1425, 1426] persons= [3429, 3430, 3431]
+--- sas= [] oneece_slice1424 crp= 1
+--- 'expires': 1167127422
+1427 1 oneecf_slice1425 nodes= [4425, 4426, 4427, 1425, 1426, 1427] persons= [3432, 3430, 3431]
+--- sas= [] oneecf_slice1425 crp= 1
+--- 'expires': 1167127422
+1428 1 oneecg_slice1426 nodes= [4426, 4427, 4428, 1426, 1427, 1428] persons= [3432, 3433, 3431]
+--- sas= [] oneecg_slice1426 crp= 1
+--- 'expires': 1167127423
+1429 1 oneech_slice1427 nodes= [4427, 4428, 4429, 1427, 1428, 1429] persons= [3432, 3433, 3434]
+--- sas= [] oneech_slice1427 crp= 1
+--- 'expires': 1167127423
+1430 1 oneeci_slice1428 nodes= [4428, 4429, 4430, 1428, 1429, 1430] persons= [3433, 3434, 3435]
+--- sas= [] oneeci_slice1428 crp= 1
+--- 'expires': 1167127424
+1431 1 oneecj_slice1429 nodes= [4429, 4430, 4431, 1429, 1430, 1431] persons= [3434, 3435, 3436]
+--- sas= [] oneecj_slice1429 crp= 1
+--- 'expires': 1167127424
+1432 1 oneeda_slice1430 nodes= [4430, 4431, 4432, 1430, 1431, 1432] persons= [3435, 3436, 3437]
+--- sas= [] oneeda_slice1430 crp= 1
+--- 'expires': 1167127425
+1433 1 oneedb_slice1431 nodes= [4431, 4432, 4433, 1431, 1432, 1433] persons= [3436, 3437, 3438]
+--- sas= [] oneedb_slice1431 crp= 1
+--- 'expires': 1167127425
+1434 1 oneedc_slice1432 nodes= [4432, 4433, 4434, 1432, 1433, 1434] persons= [3437, 3438, 3439]
+--- sas= [] oneedc_slice1432 crp= 1
+--- 'expires': 1167127426
+1435 1 oneedd_slice1433 nodes= [4433, 4434, 4435, 1433, 1434, 1435] persons= [3440, 3438, 3439]
+--- sas= [] oneedd_slice1433 crp= 1
+--- 'expires': 1167127426
+1436 1 oneede_slice1434 nodes= [4434, 4435, 4436, 1434, 1435, 1436] persons= [3440, 3441, 3439]
+--- sas= [] oneede_slice1434 crp= 1
+--- 'expires': 1167127426
+1437 1 oneedf_slice1435 nodes= [4435, 4436, 4437, 1435, 1436, 1437] persons= [3440, 3441, 3442]
+--- sas= [] oneedf_slice1435 crp= 1
+--- 'expires': 1167127427
+1438 1 oneedg_slice1436 nodes= [4436, 4437, 4438, 1436, 1437, 1438] persons= [3441, 3442, 3443]
+--- sas= [] oneedg_slice1436 crp= 1
+--- 'expires': 1167127427
+1439 1 oneedh_slice1437 nodes= [4437, 4438, 4439, 1437, 1438, 1439] persons= [3442, 3443, 3444]
+--- sas= [] oneedh_slice1437 crp= 1
+--- 'expires': 1167127428
+1440 1 oneedi_slice1438 nodes= [1440, 4438, 4439, 4440, 1438, 1439] persons= [3443, 3444, 3445]
+--- sas= [] oneedi_slice1438 crp= 1
+--- 'expires': 1167127428
+1441 1 oneedj_slice1439 nodes= [1440, 1441, 4439, 4440, 4441, 1439] persons= [3444, 3445, 3446]
+--- sas= [] oneedj_slice1439 crp= 1
+--- 'expires': 1167127429
+1442 1 oneeea_slice1440 nodes= [1440, 1441, 1442, 4440, 4441, 4442] persons= [3445, 3446, 3447]
+--- sas= [] oneeea_slice1440 crp= 1
+--- 'expires': 1167127429
+1443 1 oneeeb_slice1441 nodes= [1441, 1442, 1443, 4441, 4442, 4443] persons= [3448, 3446, 3447]
+--- sas= [] oneeeb_slice1441 crp= 1
+--- 'expires': 1167127430
+1444 1 oneeec_slice1442 nodes= [1442, 1443, 1444, 4442, 4443, 4444] persons= [3448, 3449, 3447]
+--- sas= [] oneeec_slice1442 crp= 1
+--- 'expires': 1167127430
+1445 1 oneeed_slice1443 nodes= [1443, 1444, 1445, 4443, 4444, 4445] persons= [3448, 3449, 3450]
+--- sas= [] oneeed_slice1443 crp= 1
+--- 'expires': 1167127430
+1446 1 oneeee_slice1444 nodes= [1444, 1445, 1446, 4444, 4445, 4446] persons= [3449, 3450, 3451]
+--- sas= [] oneeee_slice1444 crp= 1
+--- 'expires': 1167127431
+1447 1 oneeef_slice1445 nodes= [1445, 1446, 1447, 4445, 4446, 4447] persons= [3450, 3451, 3452]
+--- sas= [] oneeef_slice1445 crp= 1
+--- 'expires': 1167127431
+1448 1 oneeeg_slice1446 nodes= [4448, 1446, 1447, 1448, 4446, 4447] persons= [3451, 3452, 3453]
+--- sas= [] oneeeg_slice1446 crp= 1
+--- 'expires': 1167127432
+1449 1 oneeeh_slice1447 nodes= [4448, 4449, 1447, 1448, 1449, 4447] persons= [3452, 3453, 3454]
+--- sas= [] oneeeh_slice1447 crp= 1
+--- 'expires': 1167127432
+1450 1 oneeei_slice1448 nodes= [4448, 4449, 4450, 1448, 1449, 1450] persons= [3453, 3454, 3455]
+--- sas= [] oneeei_slice1448 crp= 1
+--- 'expires': 1167127433
+1451 1 oneeej_slice1449 nodes= [4449, 4450, 4451, 1449, 1450, 1451] persons= [3456, 3454, 3455]
+--- sas= [] oneeej_slice1449 crp= 1
+--- 'expires': 1167127433
+1452 1 oneefa_slice1450 nodes= [4450, 4451, 4452, 1450, 1451, 1452] persons= [3456, 3457, 3455]
+--- sas= [] oneefa_slice1450 crp= 1
+--- 'expires': 1167127433
+1453 1 oneefb_slice1451 nodes= [4451, 4452, 4453, 1451, 1452, 1453] persons= [3456, 3457, 3458]
+--- sas= [] oneefb_slice1451 crp= 1
+--- 'expires': 1167127434
+1454 1 oneefc_slice1452 nodes= [4452, 4453, 4454, 1452, 1453, 1454] persons= [3457, 3458, 3459]
+--- sas= [] oneefc_slice1452 crp= 1
+--- 'expires': 1167127434
+1455 1 oneefd_slice1453 nodes= [4453, 4454, 4455, 1453, 1454, 1455] persons= [3458, 3459, 3460]
+--- sas= [] oneefd_slice1453 crp= 1
+--- 'expires': 1167127435
+1456 1 oneefe_slice1454 nodes= [4454, 4455, 4456, 1454, 1455, 1456] persons= [3459, 3460, 3461]
+--- sas= [] oneefe_slice1454 crp= 1
+--- 'expires': 1167127435
+1457 1 oneeff_slice1455 nodes= [4455, 4456, 4457, 1455, 1456, 1457] persons= [3460, 3461, 3462]
+--- sas= [] oneeff_slice1455 crp= 1
+--- 'expires': 1167127436
+1458 1 oneefg_slice1456 nodes= [4456, 4457, 4458, 1456, 1457, 1458] persons= [3461, 3462, 3463]
+--- sas= [] oneefg_slice1456 crp= 1
+--- 'expires': 1167127436
+1459 1 oneefh_slice1457 nodes= [4457, 4458, 4459, 1457, 1458, 1459] persons= [3464, 3462, 3463]
+--- sas= [] oneefh_slice1457 crp= 1
+--- 'expires': 1167127436
+1460 1 oneefi_slice1458 nodes= [4458, 4459, 4460, 1458, 1459, 1460] persons= [3464, 3465, 3463]
+--- sas= [] oneefi_slice1458 crp= 1
+--- 'expires': 1167127437
+1461 1 oneefj_slice1459 nodes= [4459, 4460, 4461, 1459, 1460, 1461] persons= [3464, 3465, 3466]
+--- sas= [] oneefj_slice1459 crp= 1
+--- 'expires': 1167127437
+1462 1 oneega_slice1460 nodes= [4460, 4461, 4462, 1460, 1461, 1462] persons= [3465, 3466, 3467]
+--- sas= [] oneega_slice1460 crp= 1
+--- 'expires': 1167127438
+1463 1 oneegb_slice1461 nodes= [4461, 4462, 4463, 1461, 1462, 1463] persons= [3466, 3467, 3468]
+--- sas= [] oneegb_slice1461 crp= 1
+--- 'expires': 1167127438
+1464 1 oneegc_slice1462 nodes= [4462, 4463, 4464, 1462, 1463, 1464] persons= [3467, 3468, 3469]
+--- sas= [] oneegc_slice1462 crp= 1
+--- 'expires': 1167127439
+1465 1 oneegd_slice1463 nodes= [4463, 4464, 4465, 1463, 1464, 1465] persons= [3468, 3469, 3470]
+--- sas= [] oneegd_slice1463 crp= 1
+--- 'expires': 1167127439
+1466 1 oneege_slice1464 nodes= [4464, 4465, 4466, 1464, 1465, 1466] persons= [3469, 3470, 3471]
+--- sas= [] oneege_slice1464 crp= 1
+--- 'expires': 1167127439
+1467 1 oneegf_slice1465 nodes= [4465, 4466, 4467, 1465, 1466, 1467] persons= [3472, 3470, 3471]
+--- sas= [] oneegf_slice1465 crp= 1
+--- 'expires': 1167127440
+1468 1 oneegg_slice1466 nodes= [4466, 4467, 4468, 1466, 1467, 1468] persons= [3472, 3473, 3471]
+--- sas= [] oneegg_slice1466 crp= 1
+--- 'expires': 1167127440
+1469 1 oneegh_slice1467 nodes= [4467, 4468, 4469, 1467, 1468, 1469] persons= [3472, 3473, 3474]
+--- sas= [] oneegh_slice1467 crp= 1
+--- 'expires': 1167127441
+1470 1 oneegi_slice1468 nodes= [4468, 4469, 4470, 1468, 1469, 1470] persons= [3473, 3474, 3475]
+--- sas= [] oneegi_slice1468 crp= 1
+--- 'expires': 1167127441
+1471 1 oneegj_slice1469 nodes= [4469, 4470, 4471, 1469, 1470, 1471] persons= [3474, 3475, 3476]
+--- sas= [] oneegj_slice1469 crp= 1
+--- 'expires': 1167127442
+1472 1 oneeha_slice1470 nodes= [1472, 4470, 4471, 4472, 1470, 1471] persons= [3475, 3476, 3477]
+--- sas= [] oneeha_slice1470 crp= 1
+--- 'expires': 1167127442
+1473 1 oneehb_slice1471 nodes= [1472, 1473, 4471, 4472, 4473, 1471] persons= [3476, 3477, 3478]
+--- sas= [] oneehb_slice1471 crp= 1
+--- 'expires': 1167127442
+1474 1 oneehc_slice1472 nodes= [1472, 1473, 1474, 4472, 4473, 4474] persons= [3477, 3478, 3479]
+--- sas= [] oneehc_slice1472 crp= 1
+--- 'expires': 1167127443
+1475 1 oneehd_slice1473 nodes= [1473, 1474, 1475, 4473, 4474, 4475] persons= [3480, 3478, 3479]
+--- sas= [] oneehd_slice1473 crp= 1
+--- 'expires': 1167127443
+1476 1 oneehe_slice1474 nodes= [1474, 1475, 1476, 4474, 4475, 4476] persons= [3480, 3481, 3479]
+--- sas= [] oneehe_slice1474 crp= 1
+--- 'expires': 1167127444
+1477 1 oneehf_slice1475 nodes= [1475, 1476, 1477, 4475, 4476, 4477] persons= [3480, 3481, 3482]
+--- sas= [] oneehf_slice1475 crp= 1
+--- 'expires': 1167127444
+1478 1 oneehg_slice1476 nodes= [1476, 1477, 1478, 4476, 4477, 4478] persons= [3481, 3482, 3483]
+--- sas= [] oneehg_slice1476 crp= 1
+--- 'expires': 1167127445
+1479 1 oneehh_slice1477 nodes= [1477, 1478, 1479, 4477, 4478, 4479] persons= [3482, 3483, 3484]
+--- sas= [] oneehh_slice1477 crp= 1
+--- 'expires': 1167127445
+1480 1 oneehi_slice1478 nodes= [4480, 1478, 1479, 1480, 4478, 4479] persons= [3483, 3484, 3485]
+--- sas= [] oneehi_slice1478 crp= 1
+--- 'expires': 1167127446
+1481 1 oneehj_slice1479 nodes= [4480, 4481, 1479, 1480, 1481, 4479] persons= [3484, 3485, 3486]
+--- sas= [] oneehj_slice1479 crp= 1
+--- 'expires': 1167127446
+1482 1 oneeia_slice1480 nodes= [4480, 4481, 4482, 1480, 1481, 1482] persons= [3485, 3486, 3487]
+--- sas= [] oneeia_slice1480 crp= 1
+--- 'expires': 1167127446
+1483 1 oneeib_slice1481 nodes= [4481, 4482, 4483, 1481, 1482, 1483] persons= [3488, 3486, 3487]
+--- sas= [] oneeib_slice1481 crp= 1
+--- 'expires': 1167127447
+1484 1 oneeic_slice1482 nodes= [4482, 4483, 4484, 1482, 1483, 1484] persons= [3488, 3489, 3487]
+--- sas= [] oneeic_slice1482 crp= 1
+--- 'expires': 1167127447
+1485 1 oneeid_slice1483 nodes= [4483, 4484, 4485, 1483, 1484, 1485] persons= [3488, 3489, 3490]
+--- sas= [] oneeid_slice1483 crp= 1
+--- 'expires': 1167127448
+1486 1 oneeie_slice1484 nodes= [4484, 4485, 4486, 1484, 1485, 1486] persons= [3489, 3490, 3491]
+--- sas= [] oneeie_slice1484 crp= 1
+--- 'expires': 1167127448
+1487 1 oneeif_slice1485 nodes= [4485, 4486, 4487, 1485, 1486, 1487] persons= [3490, 3491, 3492]
+--- sas= [] oneeif_slice1485 crp= 1
+--- 'expires': 1167127449
+1488 1 oneeig_slice1486 nodes= [4486, 4487, 4488, 1486, 1487, 1488] persons= [3491, 3492, 3493]
+--- sas= [] oneeig_slice1486 crp= 1
+--- 'expires': 1167127449
+1489 1 oneeih_slice1487 nodes= [4487, 4488, 4489, 1487, 1488, 1489] persons= [3492, 3493, 3494]
+--- sas= [] oneeih_slice1487 crp= 1
+--- 'expires': 1167127449
+1490 1 oneeii_slice1488 nodes= [4488, 4489, 4490, 1488, 1489, 1490] persons= [3493, 3494, 3495]
+--- sas= [] oneeii_slice1488 crp= 1
+--- 'expires': 1167127450
+1491 1 oneeij_slice1489 nodes= [4489, 4490, 4491, 1489, 1490, 1491] persons= [3496, 3494, 3495]
+--- sas= [] oneeij_slice1489 crp= 1
+--- 'expires': 1167127450
+1492 1 oneeja_slice1490 nodes= [4490, 4491, 4492, 1490, 1491, 1492] persons= [3496, 3497, 3495]
+--- sas= [] oneeja_slice1490 crp= 1
+--- 'expires': 1167127451
+1493 1 oneejb_slice1491 nodes= [4491, 4492, 4493, 1491, 1492, 1493] persons= [3496, 3497, 3498]
+--- sas= [] oneejb_slice1491 crp= 1
+--- 'expires': 1167127451
+1494 1 oneejc_slice1492 nodes= [4492, 4493, 4494, 1492, 1493, 1494] persons= [3497, 3498, 3499]
+--- sas= [] oneejc_slice1492 crp= 1
+--- 'expires': 1167127452
+1495 1 oneejd_slice1493 nodes= [4493, 4494, 4495, 1493, 1494, 1495] persons= [3498, 3499, 3500]
+--- sas= [] oneejd_slice1493 crp= 1
+--- 'expires': 1167127452
+1496 1 oneeje_slice1494 nodes= [4494, 4495, 4496, 1494, 1495, 1496] persons= [3499, 3500, 3501]
+--- sas= [] oneeje_slice1494 crp= 1
+--- 'expires': 1167127453
+1497 1 oneejf_slice1495 nodes= [4495, 4496, 4497, 1495, 1496, 1497] persons= [3500, 3501, 3502]
+--- sas= [] oneejf_slice1495 crp= 1
+--- 'expires': 1167127453
+1498 1 oneejg_slice1496 nodes= [4496, 4497, 4498, 1496, 1497, 1498] persons= [3501, 3502, 3503]
+--- sas= [] oneejg_slice1496 crp= 1
+--- 'expires': 1167127453
+1499 1 oneejh_slice1497 nodes= [4497, 4498, 4499, 1497, 1498, 1499] persons= [3504, 3502, 3503]
+--- sas= [] oneejh_slice1497 crp= 1
+--- 'expires': 1167127454
+1500 1 oneeji_slice1498 nodes= [4498, 4499, 4500, 1498, 1499, 1500] persons= [3504, 3505, 3503]
+--- sas= [] oneeji_slice1498 crp= 1
+--- 'expires': 1167127454
+1501 1 oneejj_slice1499 nodes= [4499, 4500, 4501, 1499, 1500, 1501] persons= [3504, 3505, 3506]
+--- sas= [] oneejj_slice1499 crp= 1
+--- 'expires': 1167127455
+1502 1 onefaa_slice1500 nodes= [4500, 4501, 4502, 1500, 1501, 1502] persons= [3505, 3506, 3507]
+--- sas= [] onefaa_slice1500 crp= 1
+--- 'expires': 1167127455
+1503 1 onefab_slice1501 nodes= [4501, 4502, 4503, 1501, 1502, 1503] persons= [3506, 3507, 3508]
+--- sas= [] onefab_slice1501 crp= 1
+--- 'expires': 1167127456
+1504 1 onefac_slice1502 nodes= [1504, 4502, 4503, 4504, 1502, 1503] persons= [3507, 3508, 3509]
+--- sas= [] onefac_slice1502 crp= 1
+--- 'expires': 1167127456
+1505 1 onefad_slice1503 nodes= [1504, 1505, 4503, 4504, 4505, 1503] persons= [3508, 3509, 3510]
+--- sas= [] onefad_slice1503 crp= 1
+--- 'expires': 1167127457
+1506 1 onefae_slice1504 nodes= [1504, 1505, 1506, 4504, 4505, 4506] persons= [3509, 3510, 3511]
+--- sas= [] onefae_slice1504 crp= 1
+--- 'expires': 1167127457
+1507 1 onefaf_slice1505 nodes= [1505, 1506, 1507, 4505, 4506, 4507] persons= [3512, 3510, 3511]
+--- sas= [] onefaf_slice1505 crp= 1
+--- 'expires': 1167127457
+1508 1 onefag_slice1506 nodes= [1506, 1507, 1508, 4506, 4507, 4508] persons= [3512, 3513, 3511]
+--- sas= [] onefag_slice1506 crp= 1
+--- 'expires': 1167127458
+1509 1 onefah_slice1507 nodes= [1507, 1508, 1509, 4507, 4508, 4509] persons= [3512, 3513, 3514]
+--- sas= [] onefah_slice1507 crp= 1
+--- 'expires': 1167127458
+1510 1 onefai_slice1508 nodes= [1508, 1509, 1510, 4508, 4509, 4510] persons= [3513, 3514, 3515]
+--- sas= [] onefai_slice1508 crp= 1
+--- 'expires': 1167127459
+1511 1 onefaj_slice1509 nodes= [1509, 1510, 1511, 4509, 4510, 4511] persons= [3514, 3515, 3516]
+--- sas= [] onefaj_slice1509 crp= 1
+--- 'expires': 1167127459
+1512 1 onefba_slice1510 nodes= [4512, 1510, 1511, 1512, 4510, 4511] persons= [3515, 3516, 3517]
+--- sas= [] onefba_slice1510 crp= 1
+--- 'expires': 1167127460
+1513 1 onefbb_slice1511 nodes= [4512, 4513, 1511, 1512, 1513, 4511] persons= [3516, 3517, 3518]
+--- sas= [] onefbb_slice1511 crp= 1
+--- 'expires': 1167127460
+1514 1 onefbc_slice1512 nodes= [4512, 4513, 4514, 1512, 1513, 1514] persons= [3517, 3518, 3519]
+--- sas= [] onefbc_slice1512 crp= 1
+--- 'expires': 1167127460
+1515 1 onefbd_slice1513 nodes= [4513, 4514, 4515, 1513, 1514, 1515] persons= [3520, 3518, 3519]
+--- sas= [] onefbd_slice1513 crp= 1
+--- 'expires': 1167127461
+1516 1 onefbe_slice1514 nodes= [4514, 4515, 4516, 1514, 1515, 1516] persons= [3520, 3521, 3519]
+--- sas= [] onefbe_slice1514 crp= 1
+--- 'expires': 1167127461
+1517 1 onefbf_slice1515 nodes= [4515, 4516, 4517, 1515, 1516, 1517] persons= [3520, 3521, 3522]
+--- sas= [] onefbf_slice1515 crp= 1
+--- 'expires': 1167127462
+1518 1 onefbg_slice1516 nodes= [4516, 4517, 4518, 1516, 1517, 1518] persons= [3521, 3522, 3523]
+--- sas= [] onefbg_slice1516 crp= 1
+--- 'expires': 1167127462
+1519 1 onefbh_slice1517 nodes= [4517, 4518, 4519, 1517, 1518, 1519] persons= [3522, 3523, 3524]
+--- sas= [] onefbh_slice1517 crp= 1
+--- 'expires': 1167127463
+1520 1 onefbi_slice1518 nodes= [4518, 4519, 4520, 1518, 1519, 1520] persons= [3523, 3524, 3525]
+--- sas= [] onefbi_slice1518 crp= 1
+--- 'expires': 1167127463
+1521 1 onefbj_slice1519 nodes= [4519, 4520, 4521, 1519, 1520, 1521] persons= [3524, 3525, 3526]
+--- sas= [] onefbj_slice1519 crp= 1
+--- 'expires': 1167127464
+1522 1 onefca_slice1520 nodes= [4520, 4521, 4522, 1520, 1521, 1522] persons= [3525, 3526, 3527]
+--- sas= [] onefca_slice1520 crp= 1
+--- 'expires': 1167127464
+1523 1 onefcb_slice1521 nodes= [4521, 4522, 4523, 1521, 1522, 1523] persons= [3528, 3526, 3527]
+--- sas= [] onefcb_slice1521 crp= 1
+--- 'expires': 1167127464
+1524 1 onefcc_slice1522 nodes= [4522, 4523, 4524, 1522, 1523, 1524] persons= [3528, 3529, 3527]
+--- sas= [] onefcc_slice1522 crp= 1
+--- 'expires': 1167127465
+1525 1 onefcd_slice1523 nodes= [4523, 4524, 4525, 1523, 1524, 1525] persons= [3528, 3529, 3530]
+--- sas= [] onefcd_slice1523 crp= 1
+--- 'expires': 1167127465
+1526 1 onefce_slice1524 nodes= [4524, 4525, 4526, 1524, 1525, 1526] persons= [3529, 3530, 3531]
+--- sas= [] onefce_slice1524 crp= 1
+--- 'expires': 1167127466
+1527 1 onefcf_slice1525 nodes= [4525, 4526, 4527, 1525, 1526, 1527] persons= [3530, 3531, 3532]
+--- sas= [] onefcf_slice1525 crp= 1
+--- 'expires': 1167127466
+1528 1 onefcg_slice1526 nodes= [4526, 4527, 4528, 1526, 1527, 1528] persons= [3531, 3532, 3533]
+--- sas= [] onefcg_slice1526 crp= 1
+--- 'expires': 1167127467
+1529 1 onefch_slice1527 nodes= [4527, 4528, 4529, 1527, 1528, 1529] persons= [3532, 3533, 3534]
+--- sas= [] onefch_slice1527 crp= 1
+--- 'expires': 1167127467
+1530 1 onefci_slice1528 nodes= [4528, 4529, 4530, 1528, 1529, 1530] persons= [3533, 3534, 3535]
+--- sas= [] onefci_slice1528 crp= 1
+--- 'expires': 1167127468
+1531 1 onefcj_slice1529 nodes= [4529, 4530, 4531, 1529, 1530, 1531] persons= [3536, 3534, 3535]
+--- sas= [] onefcj_slice1529 crp= 1
+--- 'expires': 1167127468
+1532 1 onefda_slice1530 nodes= [4530, 4531, 4532, 1530, 1531, 1532] persons= [3536, 3537, 3535]
+--- sas= [] onefda_slice1530 crp= 1
+--- 'expires': 1167127468
+1533 1 onefdb_slice1531 nodes= [4531, 4532, 4533, 1531, 1532, 1533] persons= [3536, 3537, 3538]
+--- sas= [] onefdb_slice1531 crp= 1
+--- 'expires': 1167127469
+1534 1 onefdc_slice1532 nodes= [4532, 4533, 4534, 1532, 1533, 1534] persons= [3537, 3538, 3539]
+--- sas= [] onefdc_slice1532 crp= 1
+--- 'expires': 1167127469
+1535 1 onefdd_slice1533 nodes= [4533, 4534, 4535, 1533, 1534, 1535] persons= [3538, 3539, 3540]
+--- sas= [] onefdd_slice1533 crp= 1
+--- 'expires': 1167127470
+1536 1 onefde_slice1534 nodes= [1536, 4534, 4535, 4536, 1534, 1535] persons= [3539, 3540, 3541]
+--- sas= [] onefde_slice1534 crp= 1
+--- 'expires': 1167127470
+1537 1 onefdf_slice1535 nodes= [1536, 1537, 4535, 4536, 4537, 1535] persons= [3540, 3541, 3542]
+--- sas= [] onefdf_slice1535 crp= 1
+--- 'expires': 1167127471
+1538 1 onefdg_slice1536 nodes= [1536, 1537, 1538, 4536, 4537, 4538] persons= [3541, 3542, 3543]
+--- sas= [] onefdg_slice1536 crp= 1
+--- 'expires': 1167127471
+1539 1 onefdh_slice1537 nodes= [1537, 1538, 1539, 4537, 4538, 4539] persons= [3544, 3542, 3543]
+--- sas= [] onefdh_slice1537 crp= 1
+--- 'expires': 1167127472
+1540 1 onefdi_slice1538 nodes= [1538, 1539, 1540, 4538, 4539, 4540] persons= [3544, 3545, 3543]
+--- sas= [] onefdi_slice1538 crp= 1
+--- 'expires': 1167127472
+1541 1 onefdj_slice1539 nodes= [1539, 1540, 1541, 4539, 4540, 4541] persons= [3544, 3545, 3546]
+--- sas= [] onefdj_slice1539 crp= 1
+--- 'expires': 1167127472
+1542 1 onefea_slice1540 nodes= [1540, 1541, 1542, 4540, 4541, 4542] persons= [3545, 3546, 3547]
+--- sas= [] onefea_slice1540 crp= 1
+--- 'expires': 1167127473
+1543 1 onefeb_slice1541 nodes= [1541, 1542, 1543, 4541, 4542, 4543] persons= [3546, 3547, 3548]
+--- sas= [] onefeb_slice1541 crp= 1
+--- 'expires': 1167127473
+1544 1 onefec_slice1542 nodes= [4544, 1542, 1543, 1544, 4542, 4543] persons= [3547, 3548, 3549]
+--- sas= [] onefec_slice1542 crp= 1
+--- 'expires': 1167127474
+1545 1 onefed_slice1543 nodes= [4544, 4545, 1543, 1544, 1545, 4543] persons= [3548, 3549, 3550]
+--- sas= [] onefed_slice1543 crp= 1
+--- 'expires': 1167127474
+1546 1 onefee_slice1544 nodes= [4544, 4545, 4546, 1544, 1545, 1546] persons= [3549, 3550, 3551]
+--- sas= [] onefee_slice1544 crp= 1
+--- 'expires': 1167127475
+1547 1 onefef_slice1545 nodes= [4545, 4546, 4547, 1545, 1546, 1547] persons= [3552, 3550, 3551]
+--- sas= [] onefef_slice1545 crp= 1
+--- 'expires': 1167127475
+1548 1 onefeg_slice1546 nodes= [4546, 4547, 4548, 1546, 1547, 1548] persons= [3552, 3553, 3551]
+--- sas= [] onefeg_slice1546 crp= 1
+--- 'expires': 1167127476
+1549 1 onefeh_slice1547 nodes= [4547, 4548, 4549, 1547, 1548, 1549] persons= [3552, 3553, 3554]
+--- sas= [] onefeh_slice1547 crp= 1
+--- 'expires': 1167127476
+1550 1 onefei_slice1548 nodes= [4548, 4549, 4550, 1548, 1549, 1550] persons= [3553, 3554, 3555]
+--- sas= [] onefei_slice1548 crp= 1
+--- 'expires': 1167127476
+1551 1 onefej_slice1549 nodes= [4549, 4550, 4551, 1549, 1550, 1551] persons= [3554, 3555, 3556]
+--- sas= [] onefej_slice1549 crp= 1
+--- 'expires': 1167127477
+1552 1 oneffa_slice1550 nodes= [4550, 4551, 4552, 1550, 1551, 1552] persons= [3555, 3556, 3557]
+--- sas= [] oneffa_slice1550 crp= 1
+--- 'expires': 1167127477
+1553 1 oneffb_slice1551 nodes= [4551, 4552, 4553, 1551, 1552, 1553] persons= [3556, 3557, 3558]
+--- sas= [] oneffb_slice1551 crp= 1
+--- 'expires': 1167127478
+1554 1 oneffc_slice1552 nodes= [4552, 4553, 4554, 1552, 1553, 1554] persons= [3557, 3558, 3559]
+--- sas= [] oneffc_slice1552 crp= 1
+--- 'expires': 1167127478
+1555 1 oneffd_slice1553 nodes= [4553, 4554, 4555, 1553, 1554, 1555] persons= [3560, 3558, 3559]
+--- sas= [] oneffd_slice1553 crp= 1
+--- 'expires': 1167127479
+1556 1 oneffe_slice1554 nodes= [4554, 4555, 4556, 1554, 1555, 1556] persons= [3560, 3561, 3559]
+--- sas= [] oneffe_slice1554 crp= 1
+--- 'expires': 1167127479
+1557 1 onefff_slice1555 nodes= [4555, 4556, 4557, 1555, 1556, 1557] persons= [3560, 3561, 3562]
+--- sas= [] onefff_slice1555 crp= 1
+--- 'expires': 1167127480
+1558 1 oneffg_slice1556 nodes= [4556, 4557, 4558, 1556, 1557, 1558] persons= [3561, 3562, 3563]
+--- sas= [] oneffg_slice1556 crp= 1
+--- 'expires': 1167127480
+1559 1 oneffh_slice1557 nodes= [4557, 4558, 4559, 1557, 1558, 1559] persons= [3562, 3563, 3564]
+--- sas= [] oneffh_slice1557 crp= 1
+--- 'expires': 1167127480
+1560 1 oneffi_slice1558 nodes= [4558, 4559, 4560, 1558, 1559, 1560] persons= [3563, 3564, 3565]
+--- sas= [] oneffi_slice1558 crp= 1
+--- 'expires': 1167127481
+1561 1 oneffj_slice1559 nodes= [4559, 4560, 4561, 1559, 1560, 1561] persons= [3564, 3565, 3566]
+--- sas= [] oneffj_slice1559 crp= 1
+--- 'expires': 1167127481
+1562 1 onefga_slice1560 nodes= [4560, 4561, 4562, 1560, 1561, 1562] persons= [3565, 3566, 3567]
+--- sas= [] onefga_slice1560 crp= 1
+--- 'expires': 1167127482
+1563 1 onefgb_slice1561 nodes= [4561, 4562, 4563, 1561, 1562, 1563] persons= [3568, 3566, 3567]
+--- sas= [] onefgb_slice1561 crp= 1
+--- 'expires': 1167127482
+1564 1 onefgc_slice1562 nodes= [4562, 4563, 4564, 1562, 1563, 1564] persons= [3568, 3569, 3567]
+--- sas= [] onefgc_slice1562 crp= 1
+--- 'expires': 1167127483
+1565 1 onefgd_slice1563 nodes= [4563, 4564, 4565, 1563, 1564, 1565] persons= [3568, 3569, 3570]
+--- sas= [] onefgd_slice1563 crp= 1
+--- 'expires': 1167127483
+1566 1 onefge_slice1564 nodes= [4564, 4565, 4566, 1564, 1565, 1566] persons= [3569, 3570, 3571]
+--- sas= [] onefge_slice1564 crp= 1
+--- 'expires': 1167127484
+1567 1 onefgf_slice1565 nodes= [4565, 4566, 4567, 1565, 1566, 1567] persons= [3570, 3571, 3572]
+--- sas= [] onefgf_slice1565 crp= 1
+--- 'expires': 1167127484
+1568 1 onefgg_slice1566 nodes= [1568, 4566, 4567, 4568, 1566, 1567] persons= [3571, 3572, 3573]
+--- sas= [] onefgg_slice1566 crp= 1
+--- 'expires': 1167127485
+1569 1 onefgh_slice1567 nodes= [1568, 1569, 4567, 4568, 4569, 1567] persons= [3572, 3573, 3574]
+--- sas= [] onefgh_slice1567 crp= 1
+--- 'expires': 1167127485
+1570 1 onefgi_slice1568 nodes= [1568, 1569, 1570, 4568, 4569, 4570] persons= [3573, 3574, 3575]
+--- sas= [] onefgi_slice1568 crp= 1
+--- 'expires': 1167127485
+1571 1 onefgj_slice1569 nodes= [1569, 1570, 1571, 4569, 4570, 4571] persons= [3576, 3574, 3575]
+--- sas= [] onefgj_slice1569 crp= 1
+--- 'expires': 1167127486
+1572 1 onefha_slice1570 nodes= [1570, 1571, 1572, 4570, 4571, 4572] persons= [3576, 3577, 3575]
+--- sas= [] onefha_slice1570 crp= 1
+--- 'expires': 1167127486
+1573 1 onefhb_slice1571 nodes= [1571, 1572, 1573, 4571, 4572, 4573] persons= [3576, 3577, 3578]
+--- sas= [] onefhb_slice1571 crp= 1
+--- 'expires': 1167127487
+1574 1 onefhc_slice1572 nodes= [1572, 1573, 1574, 4572, 4573, 4574] persons= [3577, 3578, 3579]
+--- sas= [] onefhc_slice1572 crp= 1
+--- 'expires': 1167127487
+1575 1 onefhd_slice1573 nodes= [1573, 1574, 1575, 4573, 4574, 4575] persons= [3578, 3579, 3580]
+--- sas= [] onefhd_slice1573 crp= 1
+--- 'expires': 1167127488
+1576 1 onefhe_slice1574 nodes= [4576, 1574, 1575, 1576, 4574, 4575] persons= [3579, 3580, 3581]
+--- sas= [] onefhe_slice1574 crp= 1
+--- 'expires': 1167127488
+1577 1 onefhf_slice1575 nodes= [4576, 4577, 1575, 1576, 1577, 4575] persons= [3580, 3581, 3582]
+--- sas= [] onefhf_slice1575 crp= 1
+--- 'expires': 1167127489
+1578 1 onefhg_slice1576 nodes= [4576, 4577, 4578, 1576, 1577, 1578] persons= [3581, 3582, 3583]
+--- sas= [] onefhg_slice1576 crp= 1
+--- 'expires': 1167127489
+1579 1 onefhh_slice1577 nodes= [4577, 4578, 4579, 1577, 1578, 1579] persons= [3584, 3582, 3583]
+--- sas= [] onefhh_slice1577 crp= 1
+--- 'expires': 1167127490
+1580 1 onefhi_slice1578 nodes= [4578, 4579, 4580, 1578, 1579, 1580] persons= [3584, 3585, 3583]
+--- sas= [] onefhi_slice1578 crp= 1
+--- 'expires': 1167127490
+1581 1 onefhj_slice1579 nodes= [4579, 4580, 4581, 1579, 1580, 1581] persons= [3584, 3585, 3586]
+--- sas= [] onefhj_slice1579 crp= 1
+--- 'expires': 1167127490
+1582 1 onefia_slice1580 nodes= [4580, 4581, 4582, 1580, 1581, 1582] persons= [3585, 3586, 3587]
+--- sas= [] onefia_slice1580 crp= 1
+--- 'expires': 1167127491
+1583 1 onefib_slice1581 nodes= [4581, 4582, 4583, 1581, 1582, 1583] persons= [3586, 3587, 3588]
+--- sas= [] onefib_slice1581 crp= 1
+--- 'expires': 1167127491
+1584 1 onefic_slice1582 nodes= [4582, 4583, 4584, 1582, 1583, 1584] persons= [3587, 3588, 3589]
+--- sas= [] onefic_slice1582 crp= 1
+--- 'expires': 1167127492
+1585 1 onefid_slice1583 nodes= [4583, 4584, 4585, 1583, 1584, 1585] persons= [3588, 3589, 3590]
+--- sas= [] onefid_slice1583 crp= 1
+--- 'expires': 1167127492
+1586 1 onefie_slice1584 nodes= [4584, 4585, 4586, 1584, 1585, 1586] persons= [3589, 3590, 3591]
+--- sas= [] onefie_slice1584 crp= 1
+--- 'expires': 1167127493
+1587 1 onefif_slice1585 nodes= [4585, 4586, 4587, 1585, 1586, 1587] persons= [3592, 3590, 3591]
+--- sas= [] onefif_slice1585 crp= 1
+--- 'expires': 1167127493
+1588 1 onefig_slice1586 nodes= [4586, 4587, 4588, 1586, 1587, 1588] persons= [3592, 3593, 3591]
+--- sas= [] onefig_slice1586 crp= 1
+--- 'expires': 1167127494
+1589 1 onefih_slice1587 nodes= [4587, 4588, 4589, 1587, 1588, 1589] persons= [3592, 3593, 3594]
+--- sas= [] onefih_slice1587 crp= 1
+--- 'expires': 1167127494
+1590 1 onefii_slice1588 nodes= [4588, 4589, 4590, 1588, 1589, 1590] persons= [3593, 3594, 3595]
+--- sas= [] onefii_slice1588 crp= 1
+--- 'expires': 1167127494
+1591 1 onefij_slice1589 nodes= [4589, 4590, 4591, 1589, 1590, 1591] persons= [3594, 3595, 3596]
+--- sas= [] onefij_slice1589 crp= 1
+--- 'expires': 1167127495
+1592 1 onefja_slice1590 nodes= [4590, 4591, 4592, 1590, 1591, 1592] persons= [3595, 3596, 3597]
+--- sas= [] onefja_slice1590 crp= 1
+--- 'expires': 1167127495
+1593 1 onefjb_slice1591 nodes= [4591, 4592, 4593, 1591, 1592, 1593] persons= [3596, 3597, 3598]
+--- sas= [] onefjb_slice1591 crp= 1
+--- 'expires': 1167127496
+1594 1 onefjc_slice1592 nodes= [4592, 4593, 4594, 1592, 1593, 1594] persons= [3597, 3598, 3599]
+--- sas= [] onefjc_slice1592 crp= 1
+--- 'expires': 1167127496
+1595 1 onefjd_slice1593 nodes= [4593, 4594, 4595, 1593, 1594, 1595] persons= [3600, 3598, 3599]
+--- sas= [] onefjd_slice1593 crp= 1
+--- 'expires': 1167127497
+1596 1 onefje_slice1594 nodes= [4594, 4595, 4596, 1594, 1595, 1596] persons= [3600, 3601, 3599]
+--- sas= [] onefje_slice1594 crp= 1
+--- 'expires': 1167127497
+1597 1 onefjf_slice1595 nodes= [4595, 4596, 4597, 1595, 1596, 1597] persons= [3600, 3601, 3602]
+--- sas= [] onefjf_slice1595 crp= 1
+--- 'expires': 1167127498
+1598 1 onefjg_slice1596 nodes= [4596, 4597, 4598, 1596, 1597, 1598] persons= [3601, 3602, 3603]
+--- sas= [] onefjg_slice1596 crp= 1
+--- 'expires': 1167127498
+1599 1 onefjh_slice1597 nodes= [4597, 4598, 4599, 1597, 1598, 1599] persons= [3602, 3603, 3604]
+--- sas= [] onefjh_slice1597 crp= 1
+--- 'expires': 1167127499
+1600 1 onefji_slice1598 nodes= [1600, 4598, 4599, 4600, 1598, 1599] persons= [3603, 3604, 3605]
+--- sas= [] onefji_slice1598 crp= 1
+--- 'expires': 1167127499
+1601 1 onefjj_slice1599 nodes= [1600, 1601, 4599, 4600, 4601, 1599] persons= [3604, 3605, 3606]
+--- sas= [] onefjj_slice1599 crp= 1
+--- 'expires': 1167127500
+1602 1 onegaa_slice1600 nodes= [1600, 1601, 1602, 4600, 4601, 4602] persons= [3605, 3606, 3607]
+--- sas= [] onegaa_slice1600 crp= 1
+--- 'expires': 1167127500
+1603 1 onegab_slice1601 nodes= [1601, 1602, 1603, 4601, 4602, 4603] persons= [3608, 3606, 3607]
+--- sas= [] onegab_slice1601 crp= 1
+--- 'expires': 1167127500
+1604 1 onegac_slice1602 nodes= [1602, 1603, 1604, 4602, 4603, 4604] persons= [3608, 3609, 3607]
+--- sas= [] onegac_slice1602 crp= 1
+--- 'expires': 1167127501
+1605 1 onegad_slice1603 nodes= [1603, 1604, 1605, 4603, 4604, 4605] persons= [3608, 3609, 3610]
+--- sas= [] onegad_slice1603 crp= 1
+--- 'expires': 1167127501
+1606 1 onegae_slice1604 nodes= [1604, 1605, 1606, 4604, 4605, 4606] persons= [3609, 3610, 3611]
+--- sas= [] onegae_slice1604 crp= 1
+--- 'expires': 1167127502
+1607 1 onegaf_slice1605 nodes= [1605, 1606, 1607, 4605, 4606, 4607] persons= [3610, 3611, 3612]
+--- sas= [] onegaf_slice1605 crp= 1
+--- 'expires': 1167127505
+1608 1 onegag_slice1606 nodes= [4608, 1606, 1607, 1608, 4606, 4607] persons= [3611, 3612, 3613]
+--- sas= [] onegag_slice1606 crp= 1
+--- 'expires': 1167127508
+1609 1 onegah_slice1607 nodes= [4608, 4609, 1607, 1608, 1609, 4607] persons= [3612, 3613, 3614]
+--- sas= [] onegah_slice1607 crp= 1
+--- 'expires': 1167127509
+1610 1 onegai_slice1608 nodes= [4608, 4609, 4610, 1608, 1609, 1610] persons= [3613, 3614, 3615]
+--- sas= [] onegai_slice1608 crp= 1
+--- 'expires': 1167127511
+1611 1 onegaj_slice1609 nodes= [4609, 4610, 4611, 1609, 1610, 1611] persons= [3616, 3614, 3615]
+--- sas= [] onegaj_slice1609 crp= 1
+--- 'expires': 1167127512
+1612 1 onegba_slice1610 nodes= [4610, 4611, 4612, 1610, 1611, 1612] persons= [3616, 3617, 3615]
+--- sas= [] onegba_slice1610 crp= 1
+--- 'expires': 1167127514
+1613 1 onegbb_slice1611 nodes= [4611, 4612, 4613, 1611, 1612, 1613] persons= [3616, 3617, 3618]
+--- sas= [] onegbb_slice1611 crp= 1
+--- 'expires': 1167127515
+1614 1 onegbc_slice1612 nodes= [4612, 4613, 4614, 1612, 1613, 1614] persons= [3617, 3618, 3619]
+--- sas= [] onegbc_slice1612 crp= 1
+--- 'expires': 1167127517
+1615 1 onegbd_slice1613 nodes= [4613, 4614, 4615, 1613, 1614, 1615] persons= [3618, 3619, 3620]
+--- sas= [] onegbd_slice1613 crp= 1
+--- 'expires': 1167127518
+1616 1 onegbe_slice1614 nodes= [4614, 4615, 4616, 1614, 1615, 1616] persons= [3619, 3620, 3621]
+--- sas= [] onegbe_slice1614 crp= 1
+--- 'expires': 1167127519
+1617 1 onegbf_slice1615 nodes= [4615, 4616, 4617, 1615, 1616, 1617] persons= [3620, 3621, 3622]
+--- sas= [] onegbf_slice1615 crp= 1
+--- 'expires': 1167127521
+1618 1 onegbg_slice1616 nodes= [4616, 4617, 4618, 1616, 1617, 1618] persons= [3621, 3622, 3623]
+--- sas= [] onegbg_slice1616 crp= 1
+--- 'expires': 1167127522
+1619 1 onegbh_slice1617 nodes= [4617, 4618, 4619, 1617, 1618, 1619] persons= [3624, 3622, 3623]
+--- sas= [] onegbh_slice1617 crp= 1
+--- 'expires': 1167127524
+1620 1 onegbi_slice1618 nodes= [4618, 4619, 4620, 1618, 1619, 1620] persons= [3624, 3625, 3623]
+--- sas= [] onegbi_slice1618 crp= 1
+--- 'expires': 1167127525
+1621 1 onegbj_slice1619 nodes= [4619, 4620, 4621, 1619, 1620, 1621] persons= [3624, 3625, 3626]
+--- sas= [] onegbj_slice1619 crp= 1
+--- 'expires': 1167127527
+1622 1 onegca_slice1620 nodes= [4620, 4621, 4622, 1620, 1621, 1622] persons= [3625, 3626, 3627]
+--- sas= [] onegca_slice1620 crp= 1
+--- 'expires': 1167127529
+1623 1 onegcb_slice1621 nodes= [4621, 4622, 4623, 1621, 1622, 1623] persons= [3626, 3627, 3628]
+--- sas= [] onegcb_slice1621 crp= 1
+--- 'expires': 1167127530
+1624 1 onegcc_slice1622 nodes= [4622, 4623, 4624, 1622, 1623, 1624] persons= [3627, 3628, 3629]
+--- sas= [] onegcc_slice1622 crp= 1
+--- 'expires': 1167127532
+1625 1 onegcd_slice1623 nodes= [4623, 4624, 4625, 1623, 1624, 1625] persons= [3628, 3629, 3630]
+--- sas= [] onegcd_slice1623 crp= 1
+--- 'expires': 1167127533
+1626 1 onegce_slice1624 nodes= [4624, 4625, 4626, 1624, 1625, 1626] persons= [3629, 3630, 3631]
+--- sas= [] onegce_slice1624 crp= 1
+--- 'expires': 1167127535
+1627 1 onegcf_slice1625 nodes= [4625, 4626, 4627, 1625, 1626, 1627] persons= [3632, 3630, 3631]
+--- sas= [] onegcf_slice1625 crp= 1
+--- 'expires': 1167127536
+1628 1 onegcg_slice1626 nodes= [4626, 4627, 4628, 1626, 1627, 1628] persons= [3632, 3633, 3631]
+--- sas= [] onegcg_slice1626 crp= 1
+--- 'expires': 1167127538
+1629 1 onegch_slice1627 nodes= [4627, 4628, 4629, 1627, 1628, 1629] persons= [3632, 3633, 3634]
+--- sas= [] onegch_slice1627 crp= 1
+--- 'expires': 1167127539
+1630 1 onegci_slice1628 nodes= [4628, 4629, 4630, 1628, 1629, 1630] persons= [3633, 3634, 3635]
+--- sas= [] onegci_slice1628 crp= 1
+--- 'expires': 1167127541
+1631 1 onegcj_slice1629 nodes= [4629, 4630, 4631, 1629, 1630, 1631] persons= [3634, 3635, 3636]
+--- sas= [] onegcj_slice1629 crp= 1
+--- 'expires': 1167127542
+1632 1 onegda_slice1630 nodes= [1632, 4630, 4631, 4632, 1630, 1631] persons= [3635, 3636, 3637]
+--- sas= [] onegda_slice1630 crp= 1
+--- 'expires': 1167127544
+1633 1 onegdb_slice1631 nodes= [1632, 1633, 4631, 4632, 4633, 1631] persons= [3636, 3637, 3638]
+--- sas= [] onegdb_slice1631 crp= 1
+--- 'expires': 1167127545
+1634 1 onegdc_slice1632 nodes= [1632, 1633, 1634, 4632, 4633, 4634] persons= [3637, 3638, 3639]
+--- sas= [] onegdc_slice1632 crp= 1
+--- 'expires': 1167127547
+1635 1 onegdd_slice1633 nodes= [1633, 1634, 1635, 4633, 4634, 4635] persons= [3640, 3638, 3639]
+--- sas= [] onegdd_slice1633 crp= 1
+--- 'expires': 1167127548
+1636 1 onegde_slice1634 nodes= [1634, 1635, 1636, 4634, 4635, 4636] persons= [3640, 3641, 3639]
+--- sas= [] onegde_slice1634 crp= 1
+--- 'expires': 1167127550
+1637 1 onegdf_slice1635 nodes= [1635, 1636, 1637, 4635, 4636, 4637] persons= [3640, 3641, 3642]
+--- sas= [] onegdf_slice1635 crp= 1
+--- 'expires': 1167127551
+1638 1 onegdg_slice1636 nodes= [1636, 1637, 1638, 4636, 4637, 4638] persons= [3641, 3642, 3643]
+--- sas= [] onegdg_slice1636 crp= 1
+--- 'expires': 1167127553
+1639 1 onegdh_slice1637 nodes= [1637, 1638, 1639, 4637, 4638, 4639] persons= [3642, 3643, 3644]
+--- sas= [] onegdh_slice1637 crp= 1
+--- 'expires': 1167127554
+1640 1 onegdi_slice1638 nodes= [4640, 1638, 1639, 1640, 4638, 4639] persons= [3643, 3644, 3645]
+--- sas= [] onegdi_slice1638 crp= 1
+--- 'expires': 1167127556
+1641 1 onegdj_slice1639 nodes= [4640, 4641, 1639, 1640, 1641, 4639] persons= [3644, 3645, 3646]
+--- sas= [] onegdj_slice1639 crp= 1
+--- 'expires': 1167127557
+1642 1 onegea_slice1640 nodes= [4640, 4641, 4642, 1640, 1641, 1642] persons= [3645, 3646, 3647]
+--- sas= [] onegea_slice1640 crp= 1
+--- 'expires': 1167127559
+1643 1 onegeb_slice1641 nodes= [4641, 4642, 4643, 1641, 1642, 1643] persons= [3648, 3646, 3647]
+--- sas= [] onegeb_slice1641 crp= 1
+--- 'expires': 1167127560
+1644 1 onegec_slice1642 nodes= [4642, 4643, 4644, 1642, 1643, 1644] persons= [3648, 3649, 3647]
+--- sas= [] onegec_slice1642 crp= 1
+--- 'expires': 1167127562
+1645 1 oneged_slice1643 nodes= [4643, 4644, 4645, 1643, 1644, 1645] persons= [3648, 3649, 3650]
+--- sas= [] oneged_slice1643 crp= 1
+--- 'expires': 1167127563
+1646 1 onegee_slice1644 nodes= [4644, 4645, 4646, 1644, 1645, 1646] persons= [3649, 3650, 3651]
+--- sas= [] onegee_slice1644 crp= 1
+--- 'expires': 1167127565
+1647 1 onegef_slice1645 nodes= [4645, 4646, 4647, 1645, 1646, 1647] persons= [3650, 3651, 3652]
+--- sas= [] onegef_slice1645 crp= 1
+--- 'expires': 1167127566
+1648 1 onegeg_slice1646 nodes= [4646, 4647, 4648, 1646, 1647, 1648] persons= [3651, 3652, 3653]
+--- sas= [] onegeg_slice1646 crp= 1
+--- 'expires': 1167127568
+1649 1 onegeh_slice1647 nodes= [4647, 4648, 4649, 1647, 1648, 1649] persons= [3652, 3653, 3654]
+--- sas= [] onegeh_slice1647 crp= 1
+--- 'expires': 1167127570
+1650 1 onegei_slice1648 nodes= [4648, 4649, 4650, 1648, 1649, 1650] persons= [3653, 3654, 3655]
+--- sas= [] onegei_slice1648 crp= 1
+--- 'expires': 1167127571
+1651 1 onegej_slice1649 nodes= [4649, 4650, 4651, 1649, 1650, 1651] persons= [3656, 3654, 3655]
+--- sas= [] onegej_slice1649 crp= 1
+--- 'expires': 1167127573
+1652 1 onegfa_slice1650 nodes= [4650, 4651, 4652, 1650, 1651, 1652] persons= [3656, 3657, 3655]
+--- sas= [] onegfa_slice1650 crp= 1
+--- 'expires': 1167127575
+1653 1 onegfb_slice1651 nodes= [4651, 4652, 4653, 1651, 1652, 1653] persons= [3656, 3657, 3658]
+--- sas= [] onegfb_slice1651 crp= 1
+--- 'expires': 1167127576
+1654 1 onegfc_slice1652 nodes= [4652, 4653, 4654, 1652, 1653, 1654] persons= [3657, 3658, 3659]
+--- sas= [] onegfc_slice1652 crp= 1
+--- 'expires': 1167127578
+1655 1 onegfd_slice1653 nodes= [4653, 4654, 4655, 1653, 1654, 1655] persons= [3658, 3659, 3660]
+--- sas= [] onegfd_slice1653 crp= 1
+--- 'expires': 1167127580
+1656 1 onegfe_slice1654 nodes= [4654, 4655, 4656, 1654, 1655, 1656] persons= [3659, 3660, 3661]
+--- sas= [] onegfe_slice1654 crp= 1
+--- 'expires': 1167127581
+1657 1 onegff_slice1655 nodes= [4655, 4656, 4657, 1655, 1656, 1657] persons= [3660, 3661, 3662]
+--- sas= [] onegff_slice1655 crp= 1
+--- 'expires': 1167127583
+1658 1 onegfg_slice1656 nodes= [4656, 4657, 4658, 1656, 1657, 1658] persons= [3661, 3662, 3663]
+--- sas= [] onegfg_slice1656 crp= 1
+--- 'expires': 1167127584
+1659 1 onegfh_slice1657 nodes= [4657, 4658, 4659, 1657, 1658, 1659] persons= [3664, 3662, 3663]
+--- sas= [] onegfh_slice1657 crp= 1
+--- 'expires': 1167127586
+1660 1 onegfi_slice1658 nodes= [4658, 4659, 4660, 1658, 1659, 1660] persons= [3664, 3665, 3663]
+--- sas= [] onegfi_slice1658 crp= 1
+--- 'expires': 1167127587
+1661 1 onegfj_slice1659 nodes= [4659, 4660, 4661, 1659, 1660, 1661] persons= [3664, 3665, 3666]
+--- sas= [] onegfj_slice1659 crp= 1
+--- 'expires': 1167127589
+1662 1 onegga_slice1660 nodes= [4660, 4661, 4662, 1660, 1661, 1662] persons= [3665, 3666, 3667]
+--- sas= [] onegga_slice1660 crp= 1
+--- 'expires': 1167127590
+1663 1 oneggb_slice1661 nodes= [4661, 4662, 4663, 1661, 1662, 1663] persons= [3666, 3667, 3668]
+--- sas= [] oneggb_slice1661 crp= 1
+--- 'expires': 1167127592
+1664 1 oneggc_slice1662 nodes= [1664, 4662, 4663, 4664, 1662, 1663] persons= [3667, 3668, 3669]
+--- sas= [] oneggc_slice1662 crp= 1
+--- 'expires': 1167127593
+1665 1 oneggd_slice1663 nodes= [1664, 1665, 4663, 4664, 4665, 1663] persons= [3668, 3669, 3670]
+--- sas= [] oneggd_slice1663 crp= 1
+--- 'expires': 1167127595
+1666 1 onegge_slice1664 nodes= [1664, 1665, 1666, 4664, 4665, 4666] persons= [3669, 3670, 3671]
+--- sas= [] onegge_slice1664 crp= 1
+--- 'expires': 1167127597
+1667 1 oneggf_slice1665 nodes= [1665, 1666, 1667, 4665, 4666, 4667] persons= [3672, 3670, 3671]
+--- sas= [] oneggf_slice1665 crp= 1
+--- 'expires': 1167127598
+1668 1 oneggg_slice1666 nodes= [1666, 1667, 1668, 4666, 4667, 4668] persons= [3672, 3673, 3671]
+--- sas= [] oneggg_slice1666 crp= 1
+--- 'expires': 1167127600
+1669 1 oneggh_slice1667 nodes= [1667, 1668, 1669, 4667, 4668, 4669] persons= [3672, 3673, 3674]
+--- sas= [] oneggh_slice1667 crp= 1
+--- 'expires': 1167127602
+1670 1 oneggi_slice1668 nodes= [1668, 1669, 1670, 4668, 4669, 4670] persons= [3673, 3674, 3675]
+--- sas= [] oneggi_slice1668 crp= 1
+--- 'expires': 1167127603
+1671 1 oneggj_slice1669 nodes= [1669, 1670, 1671, 4669, 4670, 4671] persons= [3674, 3675, 3676]
+--- sas= [] oneggj_slice1669 crp= 1
+--- 'expires': 1167127605
+1672 1 onegha_slice1670 nodes= [4672, 1670, 1671, 1672, 4670, 4671] persons= [3675, 3676, 3677]
+--- sas= [] onegha_slice1670 crp= 1
+--- 'expires': 1167127606
+1673 1 oneghb_slice1671 nodes= [4672, 4673, 1671, 1672, 1673, 4671] persons= [3676, 3677, 3678]
+--- sas= [] oneghb_slice1671 crp= 1
+--- 'expires': 1167127608
+1674 1 oneghc_slice1672 nodes= [4672, 4673, 4674, 1672, 1673, 1674] persons= [3677, 3678, 3679]
+--- sas= [] oneghc_slice1672 crp= 1
+--- 'expires': 1167127609
+1675 1 oneghd_slice1673 nodes= [4673, 4674, 4675, 1673, 1674, 1675] persons= [3680, 3678, 3679]
+--- sas= [] oneghd_slice1673 crp= 1
+--- 'expires': 1167127611
+1676 1 oneghe_slice1674 nodes= [4674, 4675, 4676, 1674, 1675, 1676] persons= [3680, 3681, 3679]
+--- sas= [] oneghe_slice1674 crp= 1
+--- 'expires': 1167127612
+1677 1 oneghf_slice1675 nodes= [4675, 4676, 4677, 1675, 1676, 1677] persons= [3680, 3681, 3682]
+--- sas= [] oneghf_slice1675 crp= 1
+--- 'expires': 1167127614
+1678 1 oneghg_slice1676 nodes= [4676, 4677, 4678, 1676, 1677, 1678] persons= [3681, 3682, 3683]
+--- sas= [] oneghg_slice1676 crp= 1
+--- 'expires': 1167127616
+1679 1 oneghh_slice1677 nodes= [4677, 4678, 4679, 1677, 1678, 1679] persons= [3682, 3683, 3684]
+--- sas= [] oneghh_slice1677 crp= 1
+--- 'expires': 1167127617
+1680 1 oneghi_slice1678 nodes= [4678, 4679, 4680, 1678, 1679, 1680] persons= [3683, 3684, 3685]
+--- sas= [] oneghi_slice1678 crp= 1
+--- 'expires': 1167127619
+1681 1 oneghj_slice1679 nodes= [4679, 4680, 4681, 1679, 1680, 1681] persons= [3684, 3685, 3686]
+--- sas= [] oneghj_slice1679 crp= 1
+--- 'expires': 1167127620
+1682 1 onegia_slice1680 nodes= [4680, 4681, 4682, 1680, 1681, 1682] persons= [3685, 3686, 3687]
+--- sas= [] onegia_slice1680 crp= 1
+--- 'expires': 1167127622
+1683 1 onegib_slice1681 nodes= [4681, 4682, 4683, 1681, 1682, 1683] persons= [3688, 3686, 3687]
+--- sas= [] onegib_slice1681 crp= 1
+--- 'expires': 1167127623
+1684 1 onegic_slice1682 nodes= [4682, 4683, 4684, 1682, 1683, 1684] persons= [3688, 3689, 3687]
+--- sas= [] onegic_slice1682 crp= 1
+--- 'expires': 1167127625
+1685 1 onegid_slice1683 nodes= [4683, 4684, 4685, 1683, 1684, 1685] persons= [3688, 3689, 3690]
+--- sas= [] onegid_slice1683 crp= 1
+--- 'expires': 1167127627
+1686 1 onegie_slice1684 nodes= [4684, 4685, 4686, 1684, 1685, 1686] persons= [3689, 3690, 3691]
+--- sas= [] onegie_slice1684 crp= 1
+--- 'expires': 1167127628
+1687 1 onegif_slice1685 nodes= [4685, 4686, 4687, 1685, 1686, 1687] persons= [3690, 3691, 3692]
+--- sas= [] onegif_slice1685 crp= 1
+--- 'expires': 1167127630
+1688 1 onegig_slice1686 nodes= [4686, 4687, 4688, 1686, 1687, 1688] persons= [3691, 3692, 3693]
+--- sas= [] onegig_slice1686 crp= 1
+--- 'expires': 1167127631
+1689 1 onegih_slice1687 nodes= [4687, 4688, 4689, 1687, 1688, 1689] persons= [3692, 3693, 3694]
+--- sas= [] onegih_slice1687 crp= 1
+--- 'expires': 1167127633
+1690 1 onegii_slice1688 nodes= [4688, 4689, 4690, 1688, 1689, 1690] persons= [3693, 3694, 3695]
+--- sas= [] onegii_slice1688 crp= 1
+--- 'expires': 1167127634
+1691 1 onegij_slice1689 nodes= [4689, 4690, 4691, 1689, 1690, 1691] persons= [3696, 3694, 3695]
+--- sas= [] onegij_slice1689 crp= 1
+--- 'expires': 1167127636
+1692 1 onegja_slice1690 nodes= [4690, 4691, 4692, 1690, 1691, 1692] persons= [3696, 3697, 3695]
+--- sas= [] onegja_slice1690 crp= 1
+--- 'expires': 1167127637
+1693 1 onegjb_slice1691 nodes= [4691, 4692, 4693, 1691, 1692, 1693] persons= [3696, 3697, 3698]
+--- sas= [] onegjb_slice1691 crp= 1
+--- 'expires': 1167127639
+1694 1 onegjc_slice1692 nodes= [4692, 4693, 4694, 1692, 1693, 1694] persons= [3697, 3698, 3699]
+--- sas= [] onegjc_slice1692 crp= 1
+--- 'expires': 1167127640
+1695 1 onegjd_slice1693 nodes= [4693, 4694, 4695, 1693, 1694, 1695] persons= [3698, 3699, 3700]
+--- sas= [] onegjd_slice1693 crp= 1
+--- 'expires': 1167127642
+1696 1 onegje_slice1694 nodes= [1696, 4694, 4695, 4696, 1694, 1695] persons= [3699, 3700, 3701]
+--- sas= [] onegje_slice1694 crp= 1
+--- 'expires': 1167127644
+1697 1 onegjf_slice1695 nodes= [1696, 1697, 4695, 4696, 4697, 1695] persons= [3700, 3701, 3702]
+--- sas= [] onegjf_slice1695 crp= 1
+--- 'expires': 1167127645
+1698 1 onegjg_slice1696 nodes= [1696, 1697, 1698, 4696, 4697, 4698] persons= [3701, 3702, 3703]
+--- sas= [] onegjg_slice1696 crp= 1
+--- 'expires': 1167127647
+1699 1 onegjh_slice1697 nodes= [1697, 1698, 1699, 4697, 4698, 4699] persons= [3704, 3702, 3703]
+--- sas= [] onegjh_slice1697 crp= 1
+--- 'expires': 1167127648
+1700 1 onegji_slice1698 nodes= [1698, 1699, 1700, 4698, 4699, 4700] persons= [3704, 3705, 3703]
+--- sas= [] onegji_slice1698 crp= 1
+--- 'expires': 1167127650
+1701 1 onegjj_slice1699 nodes= [1699, 1700, 1701, 4699, 4700, 4701] persons= [3704, 3705, 3706]
+--- sas= [] onegjj_slice1699 crp= 1
+--- 'expires': 1167127651
+1702 1 onehaa_slice1700 nodes= [1700, 1701, 1702, 4700, 4701, 4702] persons= [3705, 3706, 3707]
+--- sas= [] onehaa_slice1700 crp= 1
+--- 'expires': 1167127653
+1703 1 onehab_slice1701 nodes= [1701, 1702, 1703, 4701, 4702, 4703] persons= [3706, 3707, 3708]
+--- sas= [] onehab_slice1701 crp= 1
+--- 'expires': 1167127655
+1704 1 onehac_slice1702 nodes= [4704, 1702, 1703, 1704, 4702, 4703] persons= [3707, 3708, 3709]
+--- sas= [] onehac_slice1702 crp= 1
+--- 'expires': 1167127656
+1705 1 onehad_slice1703 nodes= [4704, 4705, 1703, 1704, 1705, 4703] persons= [3708, 3709, 3710]
+--- sas= [] onehad_slice1703 crp= 1
+--- 'expires': 1167127658
+1706 1 onehae_slice1704 nodes= [4704, 4705, 4706, 1704, 1705, 1706] persons= [3709, 3710, 3711]
+--- sas= [] onehae_slice1704 crp= 1
+--- 'expires': 1167127659
+1707 1 onehaf_slice1705 nodes= [4705, 4706, 4707, 1705, 1706, 1707] persons= [3712, 3710, 3711]
+--- sas= [] onehaf_slice1705 crp= 1
+--- 'expires': 1167127661
+1708 1 onehag_slice1706 nodes= [4706, 4707, 4708, 1706, 1707, 1708] persons= [3712, 3713, 3711]
+--- sas= [] onehag_slice1706 crp= 1
+--- 'expires': 1167127662
+1709 1 onehah_slice1707 nodes= [4707, 4708, 4709, 1707, 1708, 1709] persons= [3712, 3713, 3714]
+--- sas= [] onehah_slice1707 crp= 1
+--- 'expires': 1167127664
+1710 1 onehai_slice1708 nodes= [4708, 4709, 4710, 1708, 1709, 1710] persons= [3713, 3714, 3715]
+--- sas= [] onehai_slice1708 crp= 1
+--- 'expires': 1167127666
+1711 1 onehaj_slice1709 nodes= [4709, 4710, 4711, 1709, 1710, 1711] persons= [3714, 3715, 3716]
+--- sas= [] onehaj_slice1709 crp= 1
+--- 'expires': 1167127667
+1712 1 onehba_slice1710 nodes= [4710, 4711, 4712, 1710, 1711, 1712] persons= [3715, 3716, 3717]
+--- sas= [] onehba_slice1710 crp= 1
+--- 'expires': 1167127669
+1713 1 onehbb_slice1711 nodes= [4711, 4712, 4713, 1711, 1712, 1713] persons= [3716, 3717, 3718]
+--- sas= [] onehbb_slice1711 crp= 1
+--- 'expires': 1167127670
+1714 1 onehbc_slice1712 nodes= [4712, 4713, 4714, 1712, 1713, 1714] persons= [3717, 3718, 3719]
+--- sas= [] onehbc_slice1712 crp= 1
+--- 'expires': 1167127672
+1715 1 onehbd_slice1713 nodes= [4713, 4714, 4715, 1713, 1714, 1715] persons= [3720, 3718, 3719]
+--- sas= [] onehbd_slice1713 crp= 1
+--- 'expires': 1167127673
+1716 1 onehbe_slice1714 nodes= [4714, 4715, 4716, 1714, 1715, 1716] persons= [3720, 3721, 3719]
+--- sas= [] onehbe_slice1714 crp= 1
+--- 'expires': 1167127675
+1717 1 onehbf_slice1715 nodes= [4715, 4716, 4717, 1715, 1716, 1717] persons= [3720, 3721, 3722]
+--- sas= [] onehbf_slice1715 crp= 1
+--- 'expires': 1167127677
+1718 1 onehbg_slice1716 nodes= [4716, 4717, 4718, 1716, 1717, 1718] persons= [3721, 3722, 3723]
+--- sas= [] onehbg_slice1716 crp= 1
+--- 'expires': 1167127678
+1719 1 onehbh_slice1717 nodes= [4717, 4718, 4719, 1717, 1718, 1719] persons= [3722, 3723, 3724]
+--- sas= [] onehbh_slice1717 crp= 1
+--- 'expires': 1167127680
+1720 1 onehbi_slice1718 nodes= [4718, 4719, 4720, 1718, 1719, 1720] persons= [3723, 3724, 3725]
+--- sas= [] onehbi_slice1718 crp= 1
+--- 'expires': 1167127681
+1721 1 onehbj_slice1719 nodes= [4719, 4720, 4721, 1719, 1720, 1721] persons= [3724, 3725, 3726]
+--- sas= [] onehbj_slice1719 crp= 1
+--- 'expires': 1167127683
+1722 1 onehca_slice1720 nodes= [4720, 4721, 4722, 1720, 1721, 1722] persons= [3725, 3726, 3727]
+--- sas= [] onehca_slice1720 crp= 1
+--- 'expires': 1167127685
+1723 1 onehcb_slice1721 nodes= [4721, 4722, 4723, 1721, 1722, 1723] persons= [3728, 3726, 3727]
+--- sas= [] onehcb_slice1721 crp= 1
+--- 'expires': 1167127686
+1724 1 onehcc_slice1722 nodes= [4722, 4723, 4724, 1722, 1723, 1724] persons= [3728, 3729, 3727]
+--- sas= [] onehcc_slice1722 crp= 1
+--- 'expires': 1167127688
+1725 1 onehcd_slice1723 nodes= [4723, 4724, 4725, 1723, 1724, 1725] persons= [3728, 3729, 3730]
+--- sas= [] onehcd_slice1723 crp= 1
+--- 'expires': 1167127689
+1726 1 onehce_slice1724 nodes= [4724, 4725, 4726, 1724, 1725, 1726] persons= [3729, 3730, 3731]
+--- sas= [] onehce_slice1724 crp= 1
+--- 'expires': 1167127691
+1727 1 onehcf_slice1725 nodes= [4725, 4726, 4727, 1725, 1726, 1727] persons= [3730, 3731, 3732]
+--- sas= [] onehcf_slice1725 crp= 1
+--- 'expires': 1167127693
+1728 1 onehcg_slice1726 nodes= [1728, 4726, 4727, 4728, 1726, 1727] persons= [3731, 3732, 3733]
+--- sas= [] onehcg_slice1726 crp= 1
+--- 'expires': 1167127694
+1729 1 onehch_slice1727 nodes= [1728, 1729, 4727, 4728, 4729, 1727] persons= [3732, 3733, 3734]
+--- sas= [] onehch_slice1727 crp= 1
+--- 'expires': 1167127696
+1730 1 onehci_slice1728 nodes= [1728, 1729, 1730, 4728, 4729, 4730] persons= [3733, 3734, 3735]
+--- sas= [] onehci_slice1728 crp= 1
+--- 'expires': 1167127697
+1731 1 onehcj_slice1729 nodes= [1729, 1730, 1731, 4729, 4730, 4731] persons= [3736, 3734, 3735]
+--- sas= [] onehcj_slice1729 crp= 1
+--- 'expires': 1167127699
+1732 1 onehda_slice1730 nodes= [1730, 1731, 1732, 4730, 4731, 4732] persons= [3736, 3737, 3735]
+--- sas= [] onehda_slice1730 crp= 1
+--- 'expires': 1167127700
+1733 1 onehdb_slice1731 nodes= [1731, 1732, 1733, 4731, 4732, 4733] persons= [3736, 3737, 3738]
+--- sas= [] onehdb_slice1731 crp= 1
+--- 'expires': 1167127702
+1734 1 onehdc_slice1732 nodes= [1732, 1733, 1734, 4732, 4733, 4734] persons= [3737, 3738, 3739]
+--- sas= [] onehdc_slice1732 crp= 1
+--- 'expires': 1167127704
+1735 1 onehdd_slice1733 nodes= [1733, 1734, 1735, 4733, 4734, 4735] persons= [3738, 3739, 3740]
+--- sas= [] onehdd_slice1733 crp= 1
+--- 'expires': 1167127705
+1736 1 onehde_slice1734 nodes= [4736, 1734, 1735, 1736, 4734, 4735] persons= [3739, 3740, 3741]
+--- sas= [] onehde_slice1734 crp= 1
+--- 'expires': 1167127706
+1737 1 onehdf_slice1735 nodes= [4736, 4737, 1735, 1736, 1737, 4735] persons= [3740, 3741, 3742]
+--- sas= [] onehdf_slice1735 crp= 1
+--- 'expires': 1167127708
+1738 1 onehdg_slice1736 nodes= [4736, 4737, 4738, 1736, 1737, 1738] persons= [3741, 3742, 3743]
+--- sas= [] onehdg_slice1736 crp= 1
+--- 'expires': 1167127709
+1739 1 onehdh_slice1737 nodes= [4737, 4738, 4739, 1737, 1738, 1739] persons= [3744, 3742, 3743]
+--- sas= [] onehdh_slice1737 crp= 1
+--- 'expires': 1167127711
+1740 1 onehdi_slice1738 nodes= [4738, 4739, 4740, 1738, 1739, 1740] persons= [3744, 3745, 3743]
+--- sas= [] onehdi_slice1738 crp= 1
+--- 'expires': 1167127713
+1741 1 onehdj_slice1739 nodes= [4739, 4740, 4741, 1739, 1740, 1741] persons= [3744, 3745, 3746]
+--- sas= [] onehdj_slice1739 crp= 1
+--- 'expires': 1167127714
+1742 1 onehea_slice1740 nodes= [4740, 4741, 4742, 1740, 1741, 1742] persons= [3745, 3746, 3747]
+--- sas= [] onehea_slice1740 crp= 1
+--- 'expires': 1167127716
+1743 1 oneheb_slice1741 nodes= [4741, 4742, 4743, 1741, 1742, 1743] persons= [3746, 3747, 3748]
+--- sas= [] oneheb_slice1741 crp= 1
+--- 'expires': 1167127717
+1744 1 onehec_slice1742 nodes= [4742, 4743, 4744, 1742, 1743, 1744] persons= [3747, 3748, 3749]
+--- sas= [] onehec_slice1742 crp= 1
+--- 'expires': 1167127719
+1745 1 onehed_slice1743 nodes= [4743, 4744, 4745, 1743, 1744, 1745] persons= [3748, 3749, 3750]
+--- sas= [] onehed_slice1743 crp= 1
+--- 'expires': 1167127720
+1746 1 onehee_slice1744 nodes= [4744, 4745, 4746, 1744, 1745, 1746] persons= [3749, 3750, 3751]
+--- sas= [] onehee_slice1744 crp= 1
+--- 'expires': 1167127722
+1747 1 onehef_slice1745 nodes= [4745, 4746, 4747, 1745, 1746, 1747] persons= [3752, 3750, 3751]
+--- sas= [] onehef_slice1745 crp= 1
+--- 'expires': 1167127724
+1748 1 oneheg_slice1746 nodes= [4746, 4747, 4748, 1746, 1747, 1748] persons= [3752, 3753, 3751]
+--- sas= [] oneheg_slice1746 crp= 1
+--- 'expires': 1167127725
+1749 1 oneheh_slice1747 nodes= [4747, 4748, 4749, 1747, 1748, 1749] persons= [3752, 3753, 3754]
+--- sas= [] oneheh_slice1747 crp= 1
+--- 'expires': 1167127727
+1750 1 onehei_slice1748 nodes= [4748, 4749, 4750, 1748, 1749, 1750] persons= [3753, 3754, 3755]
+--- sas= [] onehei_slice1748 crp= 1
+--- 'expires': 1167127728
+1751 1 onehej_slice1749 nodes= [4749, 4750, 4751, 1749, 1750, 1751] persons= [3754, 3755, 3756]
+--- sas= [] onehej_slice1749 crp= 1
+--- 'expires': 1167127730
+1752 1 onehfa_slice1750 nodes= [4750, 4751, 4752, 1750, 1751, 1752] persons= [3755, 3756, 3757]
+--- sas= [] onehfa_slice1750 crp= 1
+--- 'expires': 1167127732
+1753 1 onehfb_slice1751 nodes= [4751, 4752, 4753, 1751, 1752, 1753] persons= [3756, 3757, 3758]
+--- sas= [] onehfb_slice1751 crp= 1
+--- 'expires': 1167127733
+1754 1 onehfc_slice1752 nodes= [4752, 4753, 4754, 1752, 1753, 1754] persons= [3757, 3758, 3759]
+--- sas= [] onehfc_slice1752 crp= 1
+--- 'expires': 1167127735
+1755 1 onehfd_slice1753 nodes= [4753, 4754, 4755, 1753, 1754, 1755] persons= [3760, 3758, 3759]
+--- sas= [] onehfd_slice1753 crp= 1
+--- 'expires': 1167127737
+1756 1 onehfe_slice1754 nodes= [4754, 4755, 4756, 1754, 1755, 1756] persons= [3760, 3761, 3759]
+--- sas= [] onehfe_slice1754 crp= 1
+--- 'expires': 1167127739
+1757 1 onehff_slice1755 nodes= [4755, 4756, 4757, 1755, 1756, 1757] persons= [3760, 3761, 3762]
+--- sas= [] onehff_slice1755 crp= 1
+--- 'expires': 1167127740
+1758 1 onehfg_slice1756 nodes= [4756, 4757, 4758, 1756, 1757, 1758] persons= [3761, 3762, 3763]
+--- sas= [] onehfg_slice1756 crp= 1
+--- 'expires': 1167127742
+1759 1 onehfh_slice1757 nodes= [4757, 4758, 4759, 1757, 1758, 1759] persons= [3762, 3763, 3764]
+--- sas= [] onehfh_slice1757 crp= 1
+--- 'expires': 1167127743
+1760 1 onehfi_slice1758 nodes= [1760, 4758, 4759, 4760, 1758, 1759] persons= [3763, 3764, 3765]
+--- sas= [] onehfi_slice1758 crp= 1
+--- 'expires': 1167127745
+1761 1 onehfj_slice1759 nodes= [1760, 1761, 4759, 4760, 4761, 1759] persons= [3764, 3765, 3766]
+--- sas= [] onehfj_slice1759 crp= 1
+--- 'expires': 1167127746
+1762 1 onehga_slice1760 nodes= [1760, 1761, 1762, 4760, 4761, 4762] persons= [3765, 3766, 3767]
+--- sas= [] onehga_slice1760 crp= 1
+--- 'expires': 1167127748
+1763 1 onehgb_slice1761 nodes= [1761, 1762, 1763, 4761, 4762, 4763] persons= [3768, 3766, 3767]
+--- sas= [] onehgb_slice1761 crp= 1
+--- 'expires': 1167127750
+1764 1 onehgc_slice1762 nodes= [1762, 1763, 1764, 4762, 4763, 4764] persons= [3768, 3769, 3767]
+--- sas= [] onehgc_slice1762 crp= 1
+--- 'expires': 1167127751
+1765 1 onehgd_slice1763 nodes= [1763, 1764, 1765, 4763, 4764, 4765] persons= [3768, 3769, 3770]
+--- sas= [] onehgd_slice1763 crp= 1
+--- 'expires': 1167127753
+1766 1 onehge_slice1764 nodes= [1764, 1765, 1766, 4764, 4765, 4766] persons= [3769, 3770, 3771]
+--- sas= [] onehge_slice1764 crp= 1
+--- 'expires': 1167127755
+1767 1 onehgf_slice1765 nodes= [1765, 1766, 1767, 4765, 4766, 4767] persons= [3770, 3771, 3772]
+--- sas= [] onehgf_slice1765 crp= 1
+--- 'expires': 1167127756
+1768 1 onehgg_slice1766 nodes= [4768, 1766, 1767, 1768, 4766, 4767] persons= [3771, 3772, 3773]
+--- sas= [] onehgg_slice1766 crp= 1
+--- 'expires': 1167127758
+1769 1 onehgh_slice1767 nodes= [4768, 4769, 1767, 1768, 1769, 4767] persons= [3772, 3773, 3774]
+--- sas= [] onehgh_slice1767 crp= 1
+--- 'expires': 1167127759
+1770 1 onehgi_slice1768 nodes= [4768, 4769, 4770, 1768, 1769, 1770] persons= [3773, 3774, 3775]
+--- sas= [] onehgi_slice1768 crp= 1
+--- 'expires': 1167127761
+1771 1 onehgj_slice1769 nodes= [4769, 4770, 4771, 1769, 1770, 1771] persons= [3776, 3774, 3775]
+--- sas= [] onehgj_slice1769 crp= 1
+--- 'expires': 1167127762
+1772 1 onehha_slice1770 nodes= [4770, 4771, 4772, 1770, 1771, 1772] persons= [3776, 3777, 3775]
+--- sas= [] onehha_slice1770 crp= 1
+--- 'expires': 1167127764
+1773 1 onehhb_slice1771 nodes= [4771, 4772, 4773, 1771, 1772, 1773] persons= [3776, 3777, 3778]
+--- sas= [] onehhb_slice1771 crp= 1
+--- 'expires': 1167127766
+1774 1 onehhc_slice1772 nodes= [4772, 4773, 4774, 1772, 1773, 1774] persons= [3777, 3778, 3779]
+--- sas= [] onehhc_slice1772 crp= 1
+--- 'expires': 1167127767
+1775 1 onehhd_slice1773 nodes= [4773, 4774, 4775, 1773, 1774, 1775] persons= [3778, 3779, 3780]
+--- sas= [] onehhd_slice1773 crp= 1
+--- 'expires': 1167127769
+1776 1 onehhe_slice1774 nodes= [4774, 4775, 4776, 1774, 1775, 1776] persons= [3779, 3780, 3781]
+--- sas= [] onehhe_slice1774 crp= 1
+--- 'expires': 1167127771
+1777 1 onehhf_slice1775 nodes= [4775, 4776, 4777, 1775, 1776, 1777] persons= [3780, 3781, 3782]
+--- sas= [] onehhf_slice1775 crp= 1
+--- 'expires': 1167127772
+1778 1 onehhg_slice1776 nodes= [4776, 4777, 4778, 1776, 1777, 1778] persons= [3781, 3782, 3783]
+--- sas= [] onehhg_slice1776 crp= 1
+--- 'expires': 1167127774
+1779 1 onehhh_slice1777 nodes= [4777, 4778, 4779, 1777, 1778, 1779] persons= [3784, 3782, 3783]
+--- sas= [] onehhh_slice1777 crp= 1
+--- 'expires': 1167127775
+1780 1 onehhi_slice1778 nodes= [4778, 4779, 4780, 1778, 1779, 1780] persons= [3784, 3785, 3783]
+--- sas= [] onehhi_slice1778 crp= 1
+--- 'expires': 1167127777
+1781 1 onehhj_slice1779 nodes= [4779, 4780, 4781, 1779, 1780, 1781] persons= [3784, 3785, 3786]
+--- sas= [] onehhj_slice1779 crp= 1
+--- 'expires': 1167127779
+1782 1 onehia_slice1780 nodes= [4780, 4781, 4782, 1780, 1781, 1782] persons= [3785, 3786, 3787]
+--- sas= [] onehia_slice1780 crp= 1
+--- 'expires': 1167127781
+1783 1 onehib_slice1781 nodes= [4781, 4782, 4783, 1781, 1782, 1783] persons= [3786, 3787, 3788]
+--- sas= [] onehib_slice1781 crp= 1
+--- 'expires': 1167127782
+1784 1 onehic_slice1782 nodes= [4782, 4783, 4784, 1782, 1783, 1784] persons= [3787, 3788, 3789]
+--- sas= [] onehic_slice1782 crp= 1
+--- 'expires': 1167127784
+1785 1 onehid_slice1783 nodes= [4783, 4784, 4785, 1783, 1784, 1785] persons= [3788, 3789, 3790]
+--- sas= [] onehid_slice1783 crp= 1
+--- 'expires': 1167127785
+1786 1 onehie_slice1784 nodes= [4784, 4785, 4786, 1784, 1785, 1786] persons= [3789, 3790, 3791]
+--- sas= [] onehie_slice1784 crp= 1
+--- 'expires': 1167127787
+1787 1 onehif_slice1785 nodes= [4785, 4786, 4787, 1785, 1786, 1787] persons= [3792, 3790, 3791]
+--- sas= [] onehif_slice1785 crp= 1
+--- 'expires': 1167127789
+1788 1 onehig_slice1786 nodes= [4786, 4787, 4788, 1786, 1787, 1788] persons= [3792, 3793, 3791]
+--- sas= [] onehig_slice1786 crp= 1
+--- 'expires': 1167127791
+1789 1 onehih_slice1787 nodes= [4787, 4788, 4789, 1787, 1788, 1789] persons= [3792, 3793, 3794]
+--- sas= [] onehih_slice1787 crp= 1
+--- 'expires': 1167127792
+1790 1 onehii_slice1788 nodes= [4788, 4789, 4790, 1788, 1789, 1790] persons= [3793, 3794, 3795]
+--- sas= [] onehii_slice1788 crp= 1
+--- 'expires': 1167127794
+1791 1 onehij_slice1789 nodes= [4789, 4790, 4791, 1789, 1790, 1791] persons= [3794, 3795, 3796]
+--- sas= [] onehij_slice1789 crp= 1
+--- 'expires': 1167127795
+1792 1 onehja_slice1790 nodes= [1792, 4790, 4791, 4792, 1790, 1791] persons= [3795, 3796, 3797]
+--- sas= [] onehja_slice1790 crp= 1
+--- 'expires': 1167127797
+1793 1 onehjb_slice1791 nodes= [1792, 1793, 4791, 4792, 4793, 1791] persons= [3796, 3797, 3798]
+--- sas= [] onehjb_slice1791 crp= 1
+--- 'expires': 1167127799
+1794 1 onehjc_slice1792 nodes= [1792, 1793, 1794, 4792, 4793, 4794] persons= [3797, 3798, 3799]
+--- sas= [] onehjc_slice1792 crp= 1
+--- 'expires': 1167127800
+1795 1 onehjd_slice1793 nodes= [1793, 1794, 1795, 4793, 4794, 4795] persons= [3800, 3798, 3799]
+--- sas= [] onehjd_slice1793 crp= 1
+--- 'expires': 1167127803
+1796 1 onehje_slice1794 nodes= [1794, 1795, 1796, 4794, 4795, 4796] persons= [3800, 3801, 3799]
+--- sas= [] onehje_slice1794 crp= 1
+--- 'expires': 1167127804
+1797 1 onehjf_slice1795 nodes= [1795, 1796, 1797, 4795, 4796, 4797] persons= [3800, 3801, 3802]
+--- sas= [] onehjf_slice1795 crp= 1
+--- 'expires': 1167127806
+1798 1 onehjg_slice1796 nodes= [1796, 1797, 1798, 4796, 4797, 4798] persons= [3801, 3802, 3803]
+--- sas= [] onehjg_slice1796 crp= 1
+--- 'expires': 1167127808
+1799 1 onehjh_slice1797 nodes= [1797, 1798, 1799, 4797, 4798, 4799] persons= [3802, 3803, 3804]
+--- sas= [] onehjh_slice1797 crp= 1
+--- 'expires': 1167127809
+1800 1 onehji_slice1798 nodes= [4800, 1798, 1799, 1800, 4798, 4799] persons= [3803, 3804, 3805]
+--- sas= [] onehji_slice1798 crp= 1
+--- 'expires': 1167127811
+1801 1 onehjj_slice1799 nodes= [4800, 4801, 1799, 1800, 1801, 4799] persons= [3804, 3805, 3806]
+--- sas= [] onehjj_slice1799 crp= 1
+--- 'expires': 1167127813
+1802 1 oneiaa_slice1800 nodes= [4800, 4801, 4802, 1800, 1801, 1802] persons= [3805, 3806, 3807]
+--- sas= [] oneiaa_slice1800 crp= 1
+--- 'expires': 1167127814
+1803 1 oneiab_slice1801 nodes= [4801, 4802, 4803, 1801, 1802, 1803] persons= [3808, 3806, 3807]
+--- sas= [] oneiab_slice1801 crp= 1
+--- 'expires': 1167127816
+1804 1 oneiac_slice1802 nodes= [4802, 4803, 4804, 1802, 1803, 1804] persons= [3808, 3809, 3807]
+--- sas= [] oneiac_slice1802 crp= 1
+--- 'expires': 1167127817
+1805 1 oneiad_slice1803 nodes= [4803, 4804, 4805, 1803, 1804, 1805] persons= [3808, 3809, 3810]
+--- sas= [] oneiad_slice1803 crp= 1
+--- 'expires': 1167127819
+1806 1 oneiae_slice1804 nodes= [4804, 4805, 4806, 1804, 1805, 1806] persons= [3809, 3810, 3811]
+--- sas= [] oneiae_slice1804 crp= 1
+--- 'expires': 1167127820
+1807 1 oneiaf_slice1805 nodes= [4805, 4806, 4807, 1805, 1806, 1807] persons= [3810, 3811, 3812]
+--- sas= [] oneiaf_slice1805 crp= 1
+--- 'expires': 1167127822
+1808 1 oneiag_slice1806 nodes= [4806, 4807, 4808, 1806, 1807, 1808] persons= [3811, 3812, 3813]
+--- sas= [] oneiag_slice1806 crp= 1
+--- 'expires': 1167127824
+1809 1 oneiah_slice1807 nodes= [4807, 4808, 4809, 1807, 1808, 1809] persons= [3812, 3813, 3814]
+--- sas= [] oneiah_slice1807 crp= 1
+--- 'expires': 1167127825
+1810 1 oneiai_slice1808 nodes= [4808, 4809, 4810, 1808, 1809, 1810] persons= [3813, 3814, 3815]
+--- sas= [] oneiai_slice1808 crp= 1
+--- 'expires': 1167127827
+1811 1 oneiaj_slice1809 nodes= [4809, 4810, 4811, 1809, 1810, 1811] persons= [3816, 3814, 3815]
+--- sas= [] oneiaj_slice1809 crp= 1
+--- 'expires': 1167127829
+1812 1 oneiba_slice1810 nodes= [4810, 4811, 4812, 1810, 1811, 1812] persons= [3816, 3817, 3815]
+--- sas= [] oneiba_slice1810 crp= 1
+--- 'expires': 1167127830
+1813 1 oneibb_slice1811 nodes= [4811, 4812, 4813, 1811, 1812, 1813] persons= [3816, 3817, 3818]
+--- sas= [] oneibb_slice1811 crp= 1
+--- 'expires': 1167127832
+1814 1 oneibc_slice1812 nodes= [4812, 4813, 4814, 1812, 1813, 1814] persons= [3817, 3818, 3819]
+--- sas= [] oneibc_slice1812 crp= 1
+--- 'expires': 1167127833
+1815 1 oneibd_slice1813 nodes= [4813, 4814, 4815, 1813, 1814, 1815] persons= [3818, 3819, 3820]
+--- sas= [] oneibd_slice1813 crp= 1
+--- 'expires': 1167127835
+1816 1 oneibe_slice1814 nodes= [4814, 4815, 4816, 1814, 1815, 1816] persons= [3819, 3820, 3821]
+--- sas= [] oneibe_slice1814 crp= 1
+--- 'expires': 1167127836
+1817 1 oneibf_slice1815 nodes= [4815, 4816, 4817, 1815, 1816, 1817] persons= [3820, 3821, 3822]
+--- sas= [] oneibf_slice1815 crp= 1
+--- 'expires': 1167127837
+1818 1 oneibg_slice1816 nodes= [4816, 4817, 4818, 1816, 1817, 1818] persons= [3821, 3822, 3823]
+--- sas= [] oneibg_slice1816 crp= 1
+--- 'expires': 1167127837
+1819 1 oneibh_slice1817 nodes= [4817, 4818, 4819, 1817, 1818, 1819] persons= [3824, 3822, 3823]
+--- sas= [] oneibh_slice1817 crp= 1
+--- 'expires': 1167127838
+1820 1 oneibi_slice1818 nodes= [4818, 4819, 4820, 1818, 1819, 1820] persons= [3824, 3825, 3823]
+--- sas= [] oneibi_slice1818 crp= 1
+--- 'expires': 1167127838
+1821 1 oneibj_slice1819 nodes= [4819, 4820, 4821, 1819, 1820, 1821] persons= [3824, 3825, 3826]
+--- sas= [] oneibj_slice1819 crp= 1
+--- 'expires': 1167127839
+1822 1 oneica_slice1820 nodes= [4820, 4821, 4822, 1820, 1821, 1822] persons= [3825, 3826, 3827]
+--- sas= [] oneica_slice1820 crp= 1
+--- 'expires': 1167127839
+1823 1 oneicb_slice1821 nodes= [4821, 4822, 4823, 1821, 1822, 1823] persons= [3826, 3827, 3828]
+--- sas= [] oneicb_slice1821 crp= 1
+--- 'expires': 1167127840
+1824 1 oneicc_slice1822 nodes= [1824, 4822, 4823, 4824, 1822, 1823] persons= [3827, 3828, 3829]
+--- sas= [] oneicc_slice1822 crp= 1
+--- 'expires': 1167127840
+1825 1 oneicd_slice1823 nodes= [1824, 1825, 4823, 4824, 4825, 1823] persons= [3828, 3829, 3830]
+--- sas= [] oneicd_slice1823 crp= 1
+--- 'expires': 1167127841
+1826 1 oneice_slice1824 nodes= [1824, 1825, 1826, 4824, 4825, 4826] persons= [3829, 3830, 3831]
+--- sas= [] oneice_slice1824 crp= 1
+--- 'expires': 1167127841
+1827 1 oneicf_slice1825 nodes= [1825, 1826, 1827, 4825, 4826, 4827] persons= [3832, 3830, 3831]
+--- sas= [] oneicf_slice1825 crp= 1
+--- 'expires': 1167127842
+1828 1 oneicg_slice1826 nodes= [1826, 1827, 1828, 4826, 4827, 4828] persons= [3832, 3833, 3831]
+--- sas= [] oneicg_slice1826 crp= 1
+--- 'expires': 1167127842
+1829 1 oneich_slice1827 nodes= [1827, 1828, 1829, 4827, 4828, 4829] persons= [3832, 3833, 3834]
+--- sas= [] oneich_slice1827 crp= 1
+--- 'expires': 1167127843
+1830 1 oneici_slice1828 nodes= [1828, 1829, 1830, 4828, 4829, 4830] persons= [3833, 3834, 3835]
+--- sas= [] oneici_slice1828 crp= 1
+--- 'expires': 1167127843
+1831 1 oneicj_slice1829 nodes= [1829, 1830, 1831, 4829, 4830, 4831] persons= [3834, 3835, 3836]
+--- sas= [] oneicj_slice1829 crp= 1
+--- 'expires': 1167127844
+1832 1 oneida_slice1830 nodes= [4832, 1830, 1831, 1832, 4830, 4831] persons= [3835, 3836, 3837]
+--- sas= [] oneida_slice1830 crp= 1
+--- 'expires': 1167127844
+1833 1 oneidb_slice1831 nodes= [4832, 4833, 1831, 1832, 1833, 4831] persons= [3836, 3837, 3838]
+--- sas= [] oneidb_slice1831 crp= 1
+--- 'expires': 1167127845
+1834 1 oneidc_slice1832 nodes= [4832, 4833, 4834, 1832, 1833, 1834] persons= [3837, 3838, 3839]
+--- sas= [] oneidc_slice1832 crp= 1
+--- 'expires': 1167127845
+1835 1 oneidd_slice1833 nodes= [4833, 4834, 4835, 1833, 1834, 1835] persons= [3840, 3838, 3839]
+--- sas= [] oneidd_slice1833 crp= 1
+--- 'expires': 1167127846
+1836 1 oneide_slice1834 nodes= [4834, 4835, 4836, 1834, 1835, 1836] persons= [3840, 3841, 3839]
+--- sas= [] oneide_slice1834 crp= 1
+--- 'expires': 1167127846
+1837 1 oneidf_slice1835 nodes= [4835, 4836, 4837, 1835, 1836, 1837] persons= [3840, 3841, 3842]
+--- sas= [] oneidf_slice1835 crp= 1
+--- 'expires': 1167127847
+1838 1 oneidg_slice1836 nodes= [4836, 4837, 4838, 1836, 1837, 1838] persons= [3841, 3842, 3843]
+--- sas= [] oneidg_slice1836 crp= 1
+--- 'expires': 1167127847
+1839 1 oneidh_slice1837 nodes= [4837, 4838, 4839, 1837, 1838, 1839] persons= [3842, 3843, 3844]
+--- sas= [] oneidh_slice1837 crp= 1
+--- 'expires': 1167127848
+1840 1 oneidi_slice1838 nodes= [4838, 4839, 4840, 1838, 1839, 1840] persons= [3843, 3844, 3845]
+--- sas= [] oneidi_slice1838 crp= 1
+--- 'expires': 1167127848
+1841 1 oneidj_slice1839 nodes= [4839, 4840, 4841, 1839, 1840, 1841] persons= [3844, 3845, 3846]
+--- sas= [] oneidj_slice1839 crp= 1
+--- 'expires': 1167127849
+1842 1 oneiea_slice1840 nodes= [4840, 4841, 4842, 1840, 1841, 1842] persons= [3845, 3846, 3847]
+--- sas= [] oneiea_slice1840 crp= 1
+--- 'expires': 1167127849
+1843 1 oneieb_slice1841 nodes= [4841, 4842, 4843, 1841, 1842, 1843] persons= [3848, 3846, 3847]
+--- sas= [] oneieb_slice1841 crp= 1
+--- 'expires': 1167127850
+1844 1 oneiec_slice1842 nodes= [4842, 4843, 4844, 1842, 1843, 1844] persons= [3848, 3849, 3847]
+--- sas= [] oneiec_slice1842 crp= 1
+--- 'expires': 1167127850
+1845 1 oneied_slice1843 nodes= [4843, 4844, 4845, 1843, 1844, 1845] persons= [3848, 3849, 3850]
+--- sas= [] oneied_slice1843 crp= 1
+--- 'expires': 1167127851
+1846 1 oneiee_slice1844 nodes= [4844, 4845, 4846, 1844, 1845, 1846] persons= [3849, 3850, 3851]
+--- sas= [] oneiee_slice1844 crp= 1
+--- 'expires': 1167127851
+1847 1 oneief_slice1845 nodes= [4845, 4846, 4847, 1845, 1846, 1847] persons= [3850, 3851, 3852]
+--- sas= [] oneief_slice1845 crp= 1
+--- 'expires': 1167127852
+1848 1 oneieg_slice1846 nodes= [4846, 4847, 4848, 1846, 1847, 1848] persons= [3851, 3852, 3853]
+--- sas= [] oneieg_slice1846 crp= 1
+--- 'expires': 1167127852
+1849 1 oneieh_slice1847 nodes= [4847, 4848, 4849, 1847, 1848, 1849] persons= [3852, 3853, 3854]
+--- sas= [] oneieh_slice1847 crp= 1
+--- 'expires': 1167127853
+1850 1 oneiei_slice1848 nodes= [4848, 4849, 4850, 1848, 1849, 1850] persons= [3853, 3854, 3855]
+--- sas= [] oneiei_slice1848 crp= 1
+--- 'expires': 1167127853
+1851 1 oneiej_slice1849 nodes= [4849, 4850, 4851, 1849, 1850, 1851] persons= [3856, 3854, 3855]
+--- sas= [] oneiej_slice1849 crp= 1
+--- 'expires': 1167127854
+1852 1 oneifa_slice1850 nodes= [4850, 4851, 4852, 1850, 1851, 1852] persons= [3856, 3857, 3855]
+--- sas= [] oneifa_slice1850 crp= 1
+--- 'expires': 1167127854
+1853 1 oneifb_slice1851 nodes= [4851, 4852, 4853, 1851, 1852, 1853] persons= [3856, 3857, 3858]
+--- sas= [] oneifb_slice1851 crp= 1
+--- 'expires': 1167127855
+1854 1 oneifc_slice1852 nodes= [4852, 4853, 4854, 1852, 1853, 1854] persons= [3857, 3858, 3859]
+--- sas= [] oneifc_slice1852 crp= 1
+--- 'expires': 1167127855
+1855 1 oneifd_slice1853 nodes= [4853, 4854, 4855, 1853, 1854, 1855] persons= [3858, 3859, 3860]
+--- sas= [] oneifd_slice1853 crp= 1
+--- 'expires': 1167127856
+1856 1 oneife_slice1854 nodes= [1856, 4854, 4855, 4856, 1854, 1855] persons= [3859, 3860, 3861]
+--- sas= [] oneife_slice1854 crp= 1
+--- 'expires': 1167127856
+1857 1 oneiff_slice1855 nodes= [1856, 1857, 4855, 4856, 4857, 1855] persons= [3860, 3861, 3862]
+--- sas= [] oneiff_slice1855 crp= 1
+--- 'expires': 1167127857
+1858 1 oneifg_slice1856 nodes= [1856, 1857, 1858, 4856, 4857, 4858] persons= [3861, 3862, 3863]
+--- sas= [] oneifg_slice1856 crp= 1
+--- 'expires': 1167127857
+1859 1 oneifh_slice1857 nodes= [1857, 1858, 1859, 4857, 4858, 4859] persons= [3864, 3862, 3863]
+--- sas= [] oneifh_slice1857 crp= 1
+--- 'expires': 1167127858
+1860 1 oneifi_slice1858 nodes= [1858, 1859, 1860, 4858, 4859, 4860] persons= [3864, 3865, 3863]
+--- sas= [] oneifi_slice1858 crp= 1
+--- 'expires': 1167127858
+1861 1 oneifj_slice1859 nodes= [1859, 1860, 1861, 4859, 4860, 4861] persons= [3864, 3865, 3866]
+--- sas= [] oneifj_slice1859 crp= 1
+--- 'expires': 1167127859
+1862 1 oneiga_slice1860 nodes= [1860, 1861, 1862, 4860, 4861, 4862] persons= [3865, 3866, 3867]
+--- sas= [] oneiga_slice1860 crp= 1
+--- 'expires': 1167127859
+1863 1 oneigb_slice1861 nodes= [1861, 1862, 1863, 4861, 4862, 4863] persons= [3866, 3867, 3868]
+--- sas= [] oneigb_slice1861 crp= 1
+--- 'expires': 1167127860
+1864 1 oneigc_slice1862 nodes= [4864, 1862, 1863, 1864, 4862, 4863] persons= [3867, 3868, 3869]
+--- sas= [] oneigc_slice1862 crp= 1
+--- 'expires': 1167127860
+1865 1 oneigd_slice1863 nodes= [4864, 4865, 1863, 1864, 1865, 4863] persons= [3868, 3869, 3870]
+--- sas= [] oneigd_slice1863 crp= 1
+--- 'expires': 1167127861
+1866 1 oneige_slice1864 nodes= [4864, 4865, 4866, 1864, 1865, 1866] persons= [3869, 3870, 3871]
+--- sas= [] oneige_slice1864 crp= 1
+--- 'expires': 1167127861
+1867 1 oneigf_slice1865 nodes= [4865, 4866, 4867, 1865, 1866, 1867] persons= [3872, 3870, 3871]
+--- sas= [] oneigf_slice1865 crp= 1
+--- 'expires': 1167127862
+1868 1 oneigg_slice1866 nodes= [4866, 4867, 4868, 1866, 1867, 1868] persons= [3872, 3873, 3871]
+--- sas= [] oneigg_slice1866 crp= 1
+--- 'expires': 1167127862
+1869 1 oneigh_slice1867 nodes= [4867, 4868, 4869, 1867, 1868, 1869] persons= [3872, 3873, 3874]
+--- sas= [] oneigh_slice1867 crp= 1
+--- 'expires': 1167127863
+1870 1 oneigi_slice1868 nodes= [4868, 4869, 4870, 1868, 1869, 1870] persons= [3873, 3874, 3875]
+--- sas= [] oneigi_slice1868 crp= 1
+--- 'expires': 1167127863
+1871 1 oneigj_slice1869 nodes= [4869, 4870, 4871, 1869, 1870, 1871] persons= [3874, 3875, 3876]
+--- sas= [] oneigj_slice1869 crp= 1
+--- 'expires': 1167127864
+1872 1 oneiha_slice1870 nodes= [4870, 4871, 4872, 1870, 1871, 1872] persons= [3875, 3876, 3877]
+--- sas= [] oneiha_slice1870 crp= 1
+--- 'expires': 1167127864
+1873 1 oneihb_slice1871 nodes= [4871, 4872, 4873, 1871, 1872, 1873] persons= [3876, 3877, 3878]
+--- sas= [] oneihb_slice1871 crp= 1
+--- 'expires': 1167127865
+1874 1 oneihc_slice1872 nodes= [4872, 4873, 4874, 1872, 1873, 1874] persons= [3877, 3878, 3879]
+--- sas= [] oneihc_slice1872 crp= 1
+--- 'expires': 1167127865
+1875 1 oneihd_slice1873 nodes= [4873, 4874, 4875, 1873, 1874, 1875] persons= [3880, 3878, 3879]
+--- sas= [] oneihd_slice1873 crp= 1
+--- 'expires': 1167127866
+1876 1 oneihe_slice1874 nodes= [4874, 4875, 4876, 1874, 1875, 1876] persons= [3880, 3881, 3879]
+--- sas= [] oneihe_slice1874 crp= 1
+--- 'expires': 1167127866
+1877 1 oneihf_slice1875 nodes= [4875, 4876, 4877, 1875, 1876, 1877] persons= [3880, 3881, 3882]
+--- sas= [] oneihf_slice1875 crp= 1
+--- 'expires': 1167127867
+1878 1 oneihg_slice1876 nodes= [4876, 4877, 4878, 1876, 1877, 1878] persons= [3881, 3882, 3883]
+--- sas= [] oneihg_slice1876 crp= 1
+--- 'expires': 1167127867
+1879 1 oneihh_slice1877 nodes= [4877, 4878, 4879, 1877, 1878, 1879] persons= [3882, 3883, 3884]
+--- sas= [] oneihh_slice1877 crp= 1
+--- 'expires': 1167127868
+1880 1 oneihi_slice1878 nodes= [4878, 4879, 4880, 1878, 1879, 1880] persons= [3883, 3884, 3885]
+--- sas= [] oneihi_slice1878 crp= 1
+--- 'expires': 1167127868
+1881 1 oneihj_slice1879 nodes= [4879, 4880, 4881, 1879, 1880, 1881] persons= [3884, 3885, 3886]
+--- sas= [] oneihj_slice1879 crp= 1
+--- 'expires': 1167127869
+1882 1 oneiia_slice1880 nodes= [4880, 4881, 4882, 1880, 1881, 1882] persons= [3885, 3886, 3887]
+--- sas= [] oneiia_slice1880 crp= 1
+--- 'expires': 1167127869
+1883 1 oneiib_slice1881 nodes= [4881, 4882, 4883, 1881, 1882, 1883] persons= [3888, 3886, 3887]
+--- sas= [] oneiib_slice1881 crp= 1
+--- 'expires': 1167127870
+1884 1 oneiic_slice1882 nodes= [4882, 4883, 4884, 1882, 1883, 1884] persons= [3888, 3889, 3887]
+--- sas= [] oneiic_slice1882 crp= 1
+--- 'expires': 1167127870
+1885 1 oneiid_slice1883 nodes= [4883, 4884, 4885, 1883, 1884, 1885] persons= [3888, 3889, 3890]
+--- sas= [] oneiid_slice1883 crp= 1
+--- 'expires': 1167127871
+1886 1 oneiie_slice1884 nodes= [4884, 4885, 4886, 1884, 1885, 1886] persons= [3889, 3890, 3891]
+--- sas= [] oneiie_slice1884 crp= 1
+--- 'expires': 1167127871
+1887 1 oneiif_slice1885 nodes= [4885, 4886, 4887, 1885, 1886, 1887] persons= [3890, 3891, 3892]
+--- sas= [] oneiif_slice1885 crp= 1
+--- 'expires': 1167127872
+1888 1 oneiig_slice1886 nodes= [1888, 4886, 4887, 4888, 1886, 1887] persons= [3891, 3892, 3893]
+--- sas= [] oneiig_slice1886 crp= 1
+--- 'expires': 1167127872
+1889 1 oneiih_slice1887 nodes= [1888, 1889, 4887, 4888, 4889, 1887] persons= [3892, 3893, 3894]
+--- sas= [] oneiih_slice1887 crp= 1
+--- 'expires': 1167127873
+1890 1 oneiii_slice1888 nodes= [1888, 1889, 1890, 4888, 4889, 4890] persons= [3893, 3894, 3895]
+--- sas= [] oneiii_slice1888 crp= 1
+--- 'expires': 1167127873
+1891 1 oneiij_slice1889 nodes= [1889, 1890, 1891, 4889, 4890, 4891] persons= [3896, 3894, 3895]
+--- sas= [] oneiij_slice1889 crp= 1
+--- 'expires': 1167127874
+1892 1 oneija_slice1890 nodes= [1890, 1891, 1892, 4890, 4891, 4892] persons= [3896, 3897, 3895]
+--- sas= [] oneija_slice1890 crp= 1
+--- 'expires': 1167127874
+1893 1 oneijb_slice1891 nodes= [1891, 1892, 1893, 4891, 4892, 4893] persons= [3896, 3897, 3898]
+--- sas= [] oneijb_slice1891 crp= 1
+--- 'expires': 1167127875
+1894 1 oneijc_slice1892 nodes= [1892, 1893, 1894, 4892, 4893, 4894] persons= [3897, 3898, 3899]
+--- sas= [] oneijc_slice1892 crp= 1
+--- 'expires': 1167127875
+1895 1 oneijd_slice1893 nodes= [1893, 1894, 1895, 4893, 4894, 4895] persons= [3898, 3899, 3900]
+--- sas= [] oneijd_slice1893 crp= 1
+--- 'expires': 1167127876
+1896 1 oneije_slice1894 nodes= [4896, 1894, 1895, 1896, 4894, 4895] persons= [3899, 3900, 3901]
+--- sas= [] oneije_slice1894 crp= 1
+--- 'expires': 1167127876
+1897 1 oneijf_slice1895 nodes= [4896, 4897, 1895, 1896, 1897, 4895] persons= [3900, 3901, 3902]
+--- sas= [] oneijf_slice1895 crp= 1
+--- 'expires': 1167127877
+1898 1 oneijg_slice1896 nodes= [4896, 4897, 4898, 1896, 1897, 1898] persons= [3901, 3902, 3903]
+--- sas= [] oneijg_slice1896 crp= 1
+--- 'expires': 1167127877
+1899 1 oneijh_slice1897 nodes= [4897, 4898, 4899, 1897, 1898, 1899] persons= [3904, 3902, 3903]
+--- sas= [] oneijh_slice1897 crp= 1
+--- 'expires': 1167127878
+1900 1 oneiji_slice1898 nodes= [4898, 4899, 4900, 1898, 1899, 1900] persons= [3904, 3905, 3903]
+--- sas= [] oneiji_slice1898 crp= 1
+--- 'expires': 1167127878
+1901 1 oneijj_slice1899 nodes= [4899, 4900, 4901, 1899, 1900, 1901] persons= [3904, 3905, 3906]
+--- sas= [] oneijj_slice1899 crp= 1
+--- 'expires': 1167127879
+1902 1 onejaa_slice1900 nodes= [4900, 4901, 4902, 1900, 1901, 1902] persons= [3905, 3906, 3907]
+--- sas= [] onejaa_slice1900 crp= 1
+--- 'expires': 1167127879
+1903 1 onejab_slice1901 nodes= [4901, 4902, 4903, 1901, 1902, 1903] persons= [3906, 3907, 3908]
+--- sas= [] onejab_slice1901 crp= 1
+--- 'expires': 1167127880
+1904 1 onejac_slice1902 nodes= [4902, 4903, 4904, 1902, 1903, 1904] persons= [3907, 3908, 3909]
+--- sas= [] onejac_slice1902 crp= 1
+--- 'expires': 1167127880
+1905 1 onejad_slice1903 nodes= [4903, 4904, 4905, 1903, 1904, 1905] persons= [3908, 3909, 3910]
+--- sas= [] onejad_slice1903 crp= 1
+--- 'expires': 1167127881
+1906 1 onejae_slice1904 nodes= [4904, 4905, 4906, 1904, 1905, 1906] persons= [3909, 3910, 3911]
+--- sas= [] onejae_slice1904 crp= 1
+--- 'expires': 1167127881
+1907 1 onejaf_slice1905 nodes= [4905, 4906, 4907, 1905, 1906, 1907] persons= [3912, 3910, 3911]
+--- sas= [] onejaf_slice1905 crp= 1
+--- 'expires': 1167127882
+1908 1 onejag_slice1906 nodes= [4906, 4907, 4908, 1906, 1907, 1908] persons= [3912, 3913, 3911]
+--- sas= [] onejag_slice1906 crp= 1
+--- 'expires': 1167127882
+1909 1 onejah_slice1907 nodes= [4907, 4908, 4909, 1907, 1908, 1909] persons= [3912, 3913, 3914]
+--- sas= [] onejah_slice1907 crp= 1
+--- 'expires': 1167127883
+1910 1 onejai_slice1908 nodes= [4908, 4909, 4910, 1908, 1909, 1910] persons= [3913, 3914, 3915]
+--- sas= [] onejai_slice1908 crp= 1
+--- 'expires': 1167127883
+1911 1 onejaj_slice1909 nodes= [4909, 4910, 4911, 1909, 1910, 1911] persons= [3914, 3915, 3916]
+--- sas= [] onejaj_slice1909 crp= 1
+--- 'expires': 1167127884
+1912 1 onejba_slice1910 nodes= [4910, 4911, 4912, 1910, 1911, 1912] persons= [3915, 3916, 3917]
+--- sas= [] onejba_slice1910 crp= 1
+--- 'expires': 1167127884
+1913 1 onejbb_slice1911 nodes= [4911, 4912, 4913, 1911, 1912, 1913] persons= [3916, 3917, 3918]
+--- sas= [] onejbb_slice1911 crp= 1
+--- 'expires': 1167127885
+1914 1 onejbc_slice1912 nodes= [4912, 4913, 4914, 1912, 1913, 1914] persons= [3917, 3918, 3919]
+--- sas= [] onejbc_slice1912 crp= 1
+--- 'expires': 1167127885
+1915 1 onejbd_slice1913 nodes= [4913, 4914, 4915, 1913, 1914, 1915] persons= [3920, 3918, 3919]
+--- sas= [] onejbd_slice1913 crp= 1
+--- 'expires': 1167127886
+1916 1 onejbe_slice1914 nodes= [4914, 4915, 4916, 1914, 1915, 1916] persons= [3920, 3921, 3919]
+--- sas= [] onejbe_slice1914 crp= 1
+--- 'expires': 1167127886
+1917 1 onejbf_slice1915 nodes= [4915, 4916, 4917, 1915, 1916, 1917] persons= [3920, 3921, 3922]
+--- sas= [] onejbf_slice1915 crp= 1
+--- 'expires': 1167127887
+1918 1 onejbg_slice1916 nodes= [4916, 4917, 4918, 1916, 1917, 1918] persons= [3921, 3922, 3923]
+--- sas= [] onejbg_slice1916 crp= 1
+--- 'expires': 1167127887
+1919 1 onejbh_slice1917 nodes= [4917, 4918, 4919, 1917, 1918, 1919] persons= [3922, 3923, 3924]
+--- sas= [] onejbh_slice1917 crp= 1
+--- 'expires': 1167127888
+1920 1 onejbi_slice1918 nodes= [1920, 4918, 4919, 4920, 1918, 1919] persons= [3923, 3924, 3925]
+--- sas= [] onejbi_slice1918 crp= 1
+--- 'expires': 1167127888
+1921 1 onejbj_slice1919 nodes= [1920, 1921, 4919, 4920, 4921, 1919] persons= [3924, 3925, 3926]
+--- sas= [] onejbj_slice1919 crp= 1
+--- 'expires': 1167127889
+1922 1 onejca_slice1920 nodes= [1920, 1921, 1922, 4920, 4921, 4922] persons= [3925, 3926, 3927]
+--- sas= [] onejca_slice1920 crp= 1
+--- 'expires': 1167127889
+1923 1 onejcb_slice1921 nodes= [1921, 1922, 1923, 4921, 4922, 4923] persons= [3928, 3926, 3927]
+--- sas= [] onejcb_slice1921 crp= 1
+--- 'expires': 1167127890
+1924 1 onejcc_slice1922 nodes= [1922, 1923, 1924, 4922, 4923, 4924] persons= [3928, 3929, 3927]
+--- sas= [] onejcc_slice1922 crp= 1
+--- 'expires': 1167127890
+1925 1 onejcd_slice1923 nodes= [1923, 1924, 1925, 4923, 4924, 4925] persons= [3928, 3929, 3930]
+--- sas= [] onejcd_slice1923 crp= 1
+--- 'expires': 1167127891
+1926 1 onejce_slice1924 nodes= [1924, 1925, 1926, 4924, 4925, 4926] persons= [3929, 3930, 3931]
+--- sas= [] onejce_slice1924 crp= 1
+--- 'expires': 1167127891
+1927 1 onejcf_slice1925 nodes= [1925, 1926, 1927, 4925, 4926, 4927] persons= [3930, 3931, 3932]
+--- sas= [] onejcf_slice1925 crp= 1
+--- 'expires': 1167127892
+1928 1 onejcg_slice1926 nodes= [4928, 1926, 1927, 1928, 4926, 4927] persons= [3931, 3932, 3933]
+--- sas= [] onejcg_slice1926 crp= 1
+--- 'expires': 1167127892
+1929 1 onejch_slice1927 nodes= [4928, 4929, 1927, 1928, 1929, 4927] persons= [3932, 3933, 3934]
+--- sas= [] onejch_slice1927 crp= 1
+--- 'expires': 1167127893
+1930 1 onejci_slice1928 nodes= [4928, 4929, 4930, 1928, 1929, 1930] persons= [3933, 3934, 3935]
+--- sas= [] onejci_slice1928 crp= 1
+--- 'expires': 1167127893
+1931 1 onejcj_slice1929 nodes= [4929, 4930, 4931, 1929, 1930, 1931] persons= [3936, 3934, 3935]
+--- sas= [] onejcj_slice1929 crp= 1
+--- 'expires': 1167127894
+1932 1 onejda_slice1930 nodes= [4930, 4931, 4932, 1930, 1931, 1932] persons= [3936, 3937, 3935]
+--- sas= [] onejda_slice1930 crp= 1
+--- 'expires': 1167127894
+1933 1 onejdb_slice1931 nodes= [4931, 4932, 4933, 1931, 1932, 1933] persons= [3936, 3937, 3938]
+--- sas= [] onejdb_slice1931 crp= 1
+--- 'expires': 1167127895
+1934 1 onejdc_slice1932 nodes= [4932, 4933, 4934, 1932, 1933, 1934] persons= [3937, 3938, 3939]
+--- sas= [] onejdc_slice1932 crp= 1
+--- 'expires': 1167127895
+1935 1 onejdd_slice1933 nodes= [4933, 4934, 4935, 1933, 1934, 1935] persons= [3938, 3939, 3940]
+--- sas= [] onejdd_slice1933 crp= 1
+--- 'expires': 1167127896
+1936 1 onejde_slice1934 nodes= [4934, 4935, 4936, 1934, 1935, 1936] persons= [3939, 3940, 3941]
+--- sas= [] onejde_slice1934 crp= 1
+--- 'expires': 1167127896
+1937 1 onejdf_slice1935 nodes= [4935, 4936, 4937, 1935, 1936, 1937] persons= [3940, 3941, 3942]
+--- sas= [] onejdf_slice1935 crp= 1
+--- 'expires': 1167127897
+1938 1 onejdg_slice1936 nodes= [4936, 4937, 4938, 1936, 1937, 1938] persons= [3941, 3942, 3943]
+--- sas= [] onejdg_slice1936 crp= 1
+--- 'expires': 1167127897
+1939 1 onejdh_slice1937 nodes= [4937, 4938, 4939, 1937, 1938, 1939] persons= [3944, 3942, 3943]
+--- sas= [] onejdh_slice1937 crp= 1
+--- 'expires': 1167127898
+1940 1 onejdi_slice1938 nodes= [4938, 4939, 4940, 1938, 1939, 1940] persons= [3944, 3945, 3943]
+--- sas= [] onejdi_slice1938 crp= 1
+--- 'expires': 1167127898
+1941 1 onejdj_slice1939 nodes= [4939, 4940, 4941, 1939, 1940, 1941] persons= [3944, 3945, 3946]
+--- sas= [] onejdj_slice1939 crp= 1
+--- 'expires': 1167127899
+1942 1 onejea_slice1940 nodes= [4940, 4941, 4942, 1940, 1941, 1942] persons= [3945, 3946, 3947]
+--- sas= [] onejea_slice1940 crp= 1
+--- 'expires': 1167127899
+1943 1 onejeb_slice1941 nodes= [4941, 4942, 4943, 1941, 1942, 1943] persons= [3946, 3947, 3948]
+--- sas= [] onejeb_slice1941 crp= 1
+--- 'expires': 1167127900
+1944 1 onejec_slice1942 nodes= [4942, 4943, 4944, 1942, 1943, 1944] persons= [3947, 3948, 3949]
+--- sas= [] onejec_slice1942 crp= 1
+--- 'expires': 1167127901
+1945 1 onejed_slice1943 nodes= [4943, 4944, 4945, 1943, 1944, 1945] persons= [3948, 3949, 3950]
+--- sas= [] onejed_slice1943 crp= 1
+--- 'expires': 1167127901
+1946 1 onejee_slice1944 nodes= [4944, 4945, 4946, 1944, 1945, 1946] persons= [3949, 3950, 3951]
+--- sas= [] onejee_slice1944 crp= 1
+--- 'expires': 1167127902
+1947 1 onejef_slice1945 nodes= [4945, 4946, 4947, 1945, 1946, 1947] persons= [3952, 3950, 3951]
+--- sas= [] onejef_slice1945 crp= 1
+--- 'expires': 1167127902
+1948 1 onejeg_slice1946 nodes= [4946, 4947, 4948, 1946, 1947, 1948] persons= [3952, 3953, 3951]
+--- sas= [] onejeg_slice1946 crp= 1
+--- 'expires': 1167127903
+1949 1 onejeh_slice1947 nodes= [4947, 4948, 4949, 1947, 1948, 1949] persons= [3952, 3953, 3954]
+--- sas= [] onejeh_slice1947 crp= 1
+--- 'expires': 1167127903
+1950 1 onejei_slice1948 nodes= [4948, 4949, 4950, 1948, 1949, 1950] persons= [3953, 3954, 3955]
+--- sas= [] onejei_slice1948 crp= 1
+--- 'expires': 1167127904
+1951 1 onejej_slice1949 nodes= [4949, 4950, 4951, 1949, 1950, 1951] persons= [3954, 3955, 3956]
+--- sas= [] onejej_slice1949 crp= 1
+--- 'expires': 1167127904
+1952 1 onejfa_slice1950 nodes= [1952, 4950, 4951, 4952, 1950, 1951] persons= [3955, 3956, 3957]
+--- sas= [] onejfa_slice1950 crp= 1
+--- 'expires': 1167127905
+1953 1 onejfb_slice1951 nodes= [1952, 1953, 4951, 4952, 4953, 1951] persons= [3956, 3957, 3958]
+--- sas= [] onejfb_slice1951 crp= 1
+--- 'expires': 1167127905
+1954 1 onejfc_slice1952 nodes= [1952, 1953, 1954, 4952, 4953, 4954] persons= [3957, 3958, 3959]
+--- sas= [] onejfc_slice1952 crp= 1
+--- 'expires': 1167127906
+1955 1 onejfd_slice1953 nodes= [1953, 1954, 1955, 4953, 4954, 4955] persons= [3960, 3958, 3959]
+--- sas= [] onejfd_slice1953 crp= 1
+--- 'expires': 1167127906
+1956 1 onejfe_slice1954 nodes= [1954, 1955, 1956, 4954, 4955, 4956] persons= [3960, 3961, 3959]
+--- sas= [] onejfe_slice1954 crp= 1
+--- 'expires': 1167127907
+1957 1 onejff_slice1955 nodes= [1955, 1956, 1957, 4955, 4956, 4957] persons= [3960, 3961, 3962]
+--- sas= [] onejff_slice1955 crp= 1
+--- 'expires': 1167127907
+1958 1 onejfg_slice1956 nodes= [1956, 1957, 1958, 4956, 4957, 4958] persons= [3961, 3962, 3963]
+--- sas= [] onejfg_slice1956 crp= 1
+--- 'expires': 1167127908
+1959 1 onejfh_slice1957 nodes= [1957, 1958, 1959, 4957, 4958, 4959] persons= [3962, 3963, 3964]
+--- sas= [] onejfh_slice1957 crp= 1
+--- 'expires': 1167127908
+1960 1 onejfi_slice1958 nodes= [4960, 1958, 1959, 1960, 4958, 4959] persons= [3963, 3964, 3965]
+--- sas= [] onejfi_slice1958 crp= 1
+--- 'expires': 1167127909
+1961 1 onejfj_slice1959 nodes= [4960, 4961, 1959, 1960, 1961, 4959] persons= [3964, 3965, 3966]
+--- sas= [] onejfj_slice1959 crp= 1
+--- 'expires': 1167127909
+1962 1 onejga_slice1960 nodes= [4960, 4961, 4962, 1960, 1961, 1962] persons= [3965, 3966, 3967]
+--- sas= [] onejga_slice1960 crp= 1
+--- 'expires': 1167127910
+1963 1 onejgb_slice1961 nodes= [4961, 4962, 4963, 1961, 1962, 1963] persons= [3968, 3966, 3967]
+--- sas= [] onejgb_slice1961 crp= 1
+--- 'expires': 1167127910
+1964 1 onejgc_slice1962 nodes= [4962, 4963, 4964, 1962, 1963, 1964] persons= [3968, 3969, 3967]
+--- sas= [] onejgc_slice1962 crp= 1
+--- 'expires': 1167127911
+1965 1 onejgd_slice1963 nodes= [4963, 4964, 4965, 1963, 1964, 1965] persons= [3968, 3969, 3970]
+--- sas= [] onejgd_slice1963 crp= 1
+--- 'expires': 1167127911
+1966 1 onejge_slice1964 nodes= [4964, 4965, 4966, 1964, 1965, 1966] persons= [3969, 3970, 3971]
+--- sas= [] onejge_slice1964 crp= 1
+--- 'expires': 1167127912
+1967 1 onejgf_slice1965 nodes= [4965, 4966, 4967, 1965, 1966, 1967] persons= [3970, 3971, 3972]
+--- sas= [] onejgf_slice1965 crp= 1
+--- 'expires': 1167127912
+1968 1 onejgg_slice1966 nodes= [4966, 4967, 4968, 1966, 1967, 1968] persons= [3971, 3972, 3973]
+--- sas= [] onejgg_slice1966 crp= 1
+--- 'expires': 1167127913
+1969 1 onejgh_slice1967 nodes= [4967, 4968, 4969, 1967, 1968, 1969] persons= [3972, 3973, 3974]
+--- sas= [] onejgh_slice1967 crp= 1
+--- 'expires': 1167127913
+1970 1 onejgi_slice1968 nodes= [4968, 4969, 4970, 1968, 1969, 1970] persons= [3973, 3974, 3975]
+--- sas= [] onejgi_slice1968 crp= 1
+--- 'expires': 1167127914
+1971 1 onejgj_slice1969 nodes= [4969, 4970, 4971, 1969, 1970, 1971] persons= [3976, 3974, 3975]
+--- sas= [] onejgj_slice1969 crp= 1
+--- 'expires': 1167127914
+1972 1 onejha_slice1970 nodes= [4970, 4971, 4972, 1970, 1971, 1972] persons= [3976, 3977, 3975]
+--- sas= [] onejha_slice1970 crp= 1
+--- 'expires': 1167127915
+1973 1 onejhb_slice1971 nodes= [4971, 4972, 4973, 1971, 1972, 1973] persons= [3976, 3977, 3978]
+--- sas= [] onejhb_slice1971 crp= 1
+--- 'expires': 1167127915
+1974 1 onejhc_slice1972 nodes= [4972, 4973, 4974, 1972, 1973, 1974] persons= [3977, 3978, 3979]
+--- sas= [] onejhc_slice1972 crp= 1
+--- 'expires': 1167127916
+1975 1 onejhd_slice1973 nodes= [4973, 4974, 4975, 1973, 1974, 1975] persons= [3978, 3979, 3980]
+--- sas= [] onejhd_slice1973 crp= 1
+--- 'expires': 1167127916
+1976 1 onejhe_slice1974 nodes= [4974, 4975, 4976, 1974, 1975, 1976] persons= [3979, 3980, 3981]
+--- sas= [] onejhe_slice1974 crp= 1
+--- 'expires': 1167127917
+1977 1 onejhf_slice1975 nodes= [4975, 4976, 4977, 1975, 1976, 1977] persons= [3980, 3981, 3982]
+--- sas= [] onejhf_slice1975 crp= 1
+--- 'expires': 1167127918
+1978 1 onejhg_slice1976 nodes= [4976, 4977, 4978, 1976, 1977, 1978] persons= [3981, 3982, 3983]
+--- sas= [] onejhg_slice1976 crp= 1
+--- 'expires': 1167127918
+1979 1 onejhh_slice1977 nodes= [4977, 4978, 4979, 1977, 1978, 1979] persons= [3984, 3982, 3983]
+--- sas= [] onejhh_slice1977 crp= 1
+--- 'expires': 1167127919
+1980 1 onejhi_slice1978 nodes= [4978, 4979, 4980, 1978, 1979, 1980] persons= [3984, 3985, 3983]
+--- sas= [] onejhi_slice1978 crp= 1
+--- 'expires': 1167127919
+1981 1 onejhj_slice1979 nodes= [4979, 4980, 4981, 1979, 1980, 1981] persons= [3984, 3985, 3986]
+--- sas= [] onejhj_slice1979 crp= 1
+--- 'expires': 1167127920
+1982 1 onejia_slice1980 nodes= [4980, 4981, 4982, 1980, 1981, 1982] persons= [3985, 3986, 3987]
+--- sas= [] onejia_slice1980 crp= 1
+--- 'expires': 1167127920
+1983 1 onejib_slice1981 nodes= [4981, 4982, 4983, 1981, 1982, 1983] persons= [3986, 3987, 3988]
+--- sas= [] onejib_slice1981 crp= 1
+--- 'expires': 1167127921
+1984 1 onejic_slice1982 nodes= [1984, 4982, 4983, 4984, 1982, 1983] persons= [3987, 3988, 3989]
+--- sas= [] onejic_slice1982 crp= 1
+--- 'expires': 1167127921
+1985 1 onejid_slice1983 nodes= [1984, 1985, 4983, 4984, 4985, 1983] persons= [3988, 3989, 3990]
+--- sas= [] onejid_slice1983 crp= 1
+--- 'expires': 1167127922
+1986 1 onejie_slice1984 nodes= [1984, 1985, 1986, 4984, 4985, 4986] persons= [3989, 3990, 3991]
+--- sas= [] onejie_slice1984 crp= 1
+--- 'expires': 1167127922
+1987 1 onejif_slice1985 nodes= [1985, 1986, 1987, 4985, 4986, 4987] persons= [3992, 3990, 3991]
+--- sas= [] onejif_slice1985 crp= 1
+--- 'expires': 1167127923
+1988 1 onejig_slice1986 nodes= [1986, 1987, 1988, 4986, 4987, 4988] persons= [3992, 3993, 3991]
+--- sas= [] onejig_slice1986 crp= 1
+--- 'expires': 1167127923
+1989 1 onejih_slice1987 nodes= [1987, 1988, 1989, 4987, 4988, 4989] persons= [3992, 3993, 3994]
+--- sas= [] onejih_slice1987 crp= 1
+--- 'expires': 1167127924
+1990 1 onejii_slice1988 nodes= [1988, 1989, 1990, 4988, 4989, 4990] persons= [3993, 3994, 3995]
+--- sas= [] onejii_slice1988 crp= 1
+--- 'expires': 1167127924
+1991 1 onejij_slice1989 nodes= [1989, 1990, 1991, 4989, 4990, 4991] persons= [3994, 3995, 3996]
+--- sas= [] onejij_slice1989 crp= 1
+--- 'expires': 1167127925
+1992 1 onejja_slice1990 nodes= [4992, 1990, 1991, 1992, 4990, 4991] persons= [3995, 3996, 3997]
+--- sas= [] onejja_slice1990 crp= 1
+--- 'expires': 1167127925
+1993 1 onejjb_slice1991 nodes= [4992, 4993, 1991, 1992, 1993, 4991] persons= [3996, 3997, 3998]
+--- sas= [] onejjb_slice1991 crp= 1
+--- 'expires': 1167127926
+1994 1 onejjc_slice1992 nodes= [4992, 4993, 4994, 1992, 1993, 1994] persons= [3997, 3998, 3999]
+--- sas= [] onejjc_slice1992 crp= 1
+--- 'expires': 1167127926
+1995 1 onejjd_slice1993 nodes= [4993, 4994, 4995, 1993, 1994, 1995] persons= [4000, 3998, 3999]
+--- sas= [] onejjd_slice1993 crp= 1
+--- 'expires': 1167127927
+1996 1 onejje_slice1994 nodes= [4994, 4995, 4996, 1994, 1995, 1996] persons= [4000, 4001, 3999]
+--- sas= [] onejje_slice1994 crp= 1
+--- 'expires': 1167127927
+1997 1 onejjf_slice1995 nodes= [4995, 4996, 4997, 1995, 1996, 1997] persons= [4000, 4001, 4002]
+--- sas= [] onejjf_slice1995 crp= 1
+--- 'expires': 1167127928
+1998 1 onejjg_slice1996 nodes= [4996, 4997, 4998, 1996, 1997, 1998] persons= [4001, 4002, 4003]
+--- sas= [] onejjg_slice1996 crp= 1
+--- 'expires': 1167127928
+1999 1 onejjh_slice1997 nodes= [4997, 4998, 4999, 1997, 1998, 1999] persons= [4002, 4003, 4004]
+--- sas= [] onejjh_slice1997 crp= 1
+--- 'expires': 1167127929
+2000 1 onejji_slice1998 nodes= [4998, 4999, 5000, 1998, 1999, 2000] persons= [4003, 4004, 4005]
+--- sas= [] onejji_slice1998 crp= 1
+--- 'expires': 1167127929
+2001 1 onejjj_slice1999 nodes= [4999, 5000, 5001, 1999, 2000, 2001] persons= [4004, 4005, 2006]
+--- sas= [] onejjj_slice1999 crp= 1
+--- 'expires': 1167127930
+2002 1 onebaaa_slice2000 nodes= [5000, 5001, 5002, 2000, 2001, 2002] persons= [4005, 2006, 2007]
+--- sas= [] onebaaa_slice2000 crp= 1
+--- 'expires': 1167127931
+02: Slice Attribute Types
+1 None type 20 Type of slice (e.g. vserver)
+2 None system 10 Is a default system slice (1) or not (0 or unset)
+3 None enabled 10 Slice enabled (1 or unset) or suspended (0)
+4 None vref 30 Reference image
+5 None initscript 10 Slice initialization script
+6 None cpu_min 10 Minimum CPU share (ms/s)
+7 None cpu_share 10 Number of CPU shares
+8 None net_min 10 Minimum bandwidth (bps)
+9 None net_max 10 Maximum bandwidth (bps)
+10 None net_avg 10 Average bandwidth (bps)
+11 None net_share 10 Number of bandwidth shares
+12 None net2_min 10 Minimum bandwidth over routes exempt from node bandwidth limits (bps)
+13 None net2_max 10 Maximum bandwidth over routes exempt from node bandwidth limits (bps)
+14 None net2_avg 10 Average bandwidth over routes exempt from node bandwidth limits (bps)
+15 None net2_share 10 Number of bandwidth shares over routes exempt from node bandwidth limits
+16 None disk_max 10 Disk quota (1k disk blocks)
+17 None proper_op 10 Proper operation (e.g. bind_socket)
+18 None plc_slice_type 20 Type of slice rspec to be created
+19 None plc_agent_version 10 Version of PLC agent (slice creation service) software to be deployed
+20 None plc_ticket_pubkey 10 Public key used to verify PLC-signed tickets
+21 None sat_2 10 custom sat on plc2
+22 1 sat_1 10 custom sat on plc1
+02: Slice Attributes
+1 None system AT_id: 2
+--- v= 1 sl= 1 n= None
+2 None vref AT_id: 4
+--- v= planetflow sl= 1 n= None
+3 None proper_op AT_id: 17
+--- v= open file=/etc/passwd, flags=r sl= 1 n= None
+4 None proper_op AT_id: 17
+--- v= create_socket sl= 1 n= None
+5 None proper_op AT_id: 17
+--- v= bind_socket sl= 1 n= None
++++ 2407.69 seconds ellapsed (70.25)
+02: Gathering all slivers
++++ 3118.88 seconds ellapsed (711.19)
+02: SLIVERS for first 3 nodes
+02: SLIVERS for : hostname n2-001.plc2.org
+02: 31 config files
+02: SLIVER on hostname n2-001.plc2.org, s= thtwo_netflow
+02: KEYS[]
+02: ATTRIBUTES[    {'name': 'system', 'value': '1'},
+     {'name': 'vref', 'value': 'planetflow'},
+     {'name': 'proper_op', 'value': 'open file=/etc/passwd, flags=r'},
+     {'name': 'proper_op', 'value': 'create_socket'},
+     {'name': 'proper_op', 'value': 'bind_socket'}]
+02: SLIVER on hostname n2-001.plc2.org, s= oneb_slice1
+02: KEYS[    {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user3-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user1-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user2-key1'}]
+02: ATTRIBUTES[]
+02: SLIVERS for : hostname n2-002.plc2.org
+02: 31 config files
+02: SLIVER on hostname n2-002.plc2.org, s= thtwo_netflow
+02: KEYS[]
+02: ATTRIBUTES[    {'name': 'system', 'value': '1'},
+     {'name': 'vref', 'value': 'planetflow'},
+     {'name': 'proper_op', 'value': 'open file=/etc/passwd, flags=r'},
+     {'name': 'proper_op', 'value': 'create_socket'},
+     {'name': 'proper_op', 'value': 'bind_socket'}]
+02: SLIVER on hostname n2-002.plc2.org, s= oneb_slice1
+02: KEYS[    {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user3-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user1-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user2-key1'}]
+02: ATTRIBUTES[]
+02: SLIVER on hostname n2-002.plc2.org, s= onec_slice2
+02: KEYS[    {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user3-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user4-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user2-key1'}]
+02: ATTRIBUTES[]
+02: SLIVERS for : hostname n2-003.plc2.org
+02: 31 config files
+02: SLIVER on hostname n2-003.plc2.org, s= thtwo_netflow
+02: KEYS[]
+02: ATTRIBUTES[    {'name': 'system', 'value': '1'},
+     {'name': 'vref', 'value': 'planetflow'},
+     {'name': 'proper_op', 'value': 'open file=/etc/passwd, flags=r'},
+     {'name': 'proper_op', 'value': 'create_socket'},
+     {'name': 'proper_op', 'value': 'bind_socket'}]
+02: SLIVER on hostname n2-003.plc2.org, s= oneb_slice1
+02: KEYS[    {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user3-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user1-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user2-key1'}]
+02: ATTRIBUTES[]
+02: SLIVER on hostname n2-003.plc2.org, s= onec_slice2
+02: KEYS[    {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user3-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user4-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user2-key1'}]
+02: ATTRIBUTES[]
+02: SLIVER on hostname n2-003.plc2.org, s= oned_slice3
+02: KEYS[    {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user3-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user4-key1'},
+     {'key_type': 'ssh', 'key': 'ssh-rsa 11key4plc11 user5-key1'}]
+02: ATTRIBUTES[]
+02:============================== END DUMP
++++ 3122.84 seconds ellapsed (3.96)
+==================== ('END',)
++++ 3122.84 seconds ellapsed (0.00)
diff --git a/trunk/tests/testpeers.-m.-1.populate.ref b/trunk/tests/testpeers.-m.-1.populate.ref
new file mode 100644 (file)
index 0000000..2be08fd
--- /dev/null
@@ -0,0 +1,59 @@
+options {'local_peer': 1, 'plc1': '', 'plc2': '', 'factor': 1, 'debug': False, 'size': 'mini'} args ['populate']
+1 sites, 1 persons, 1 nodes & 1 slices
+1 keys/person, 1 nodes/slice & 1 persons/slice
+fast_flag True
+Running locally on index 1
+funcname populate
+dir() ['args', 'funcname', 'options', 'parser', 'size_func', 'steps', 'usage']
++++ timer start
+==================== ('INIT',)
++++ timer start
+==================== s[1]
+show_config obsoleted
+==================== s[2]
+show_config obsoleted
+====================
+01:== created peer admin account 3, peer1@planet-lab.org - peer
+Dummy method GetPersons on remote peer 2 skipped
+Dummy method AddPerson on remote peer 2 skipped
+01:== enabled+admin on account 3:peer1@planet-lab.org
+Dummy method AdmSetPersonEnabled on remote peer 2 skipped
++++ timer start
+Trying to locate keys for peer on plc[1] in gpg_plc2.pub and api_plc2.crt
+01:Created peer 1
+Dummy method GetPeers on remote peer 2 skipped
+Trying to locate keys for peer on plc[2] in gpg_plc1.pub and api_plc1.crt
+Dummy method AddPeer on remote peer 2 skipped
+02:Created peer 0
++++ 0.35 seconds ellapsed (0.35)
+01:== Created site 2 with max_slices=1
+Dummy method GetSites on remote peer 2 skipped
+Dummy method AddSite on remote peer 2 skipped
++++ 0.45 seconds ellapsed (0.10)
+01:== created user account 4, user-1@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user1-key1 to person user-1@plc.org
+Dummy method GetPersons on remote peer 2 skipped
+Dummy method AddPerson on remote peer 2 skipped
++++ 0.55 seconds ellapsed (0.09)
+01:== Added node 1 n1-001.plc1.org
+Dummy method GetNodes on remote peer 2 skipped
+Dummy method AddNode on remote peer 2 skipped
++++ 0.62 seconds ellapsed (0.07)
+01:== created slice 2 - max nodes=1
+01:== Attached person user-1@plc.org to slice oneone_slice1
++++ 0.72 seconds ellapsed (0.10)
+01:== added in slice oneone_slice1 local  ['n1-001.plc1.org']
++++ 0.76 seconds ellapsed (0.04)
+01:== created SliceAttributeType = 23
+Dummy method GetSliceAttributeTypes on remote peer 2 skipped
+Dummy method AddSliceAttributeType on remote peer 2 skipped
++++ 0.79 seconds ellapsed (0.03)
+slice_name oneone_slice1 sat_name sat_1
+01:== created SliceAttribute = 6 On slice oneone_slice1 and node None
+01:== created SliceAttribute = 7 On slice oneone_slice1 and node n1-001.plc1.org
+slice_name oneone_slice1 sat_name vref
+01:== created SliceAttribute = 8 On slice oneone_slice1 and node None
+01:== created SliceAttribute = 9 On slice oneone_slice1 and node n1-001.plc1.org
++++ 0.94 seconds ellapsed (0.15)
+==================== ('END',)
++++ 0.94 seconds ellapsed (0.00)
diff --git a/trunk/tests/testpeers.-m.-2.populate.ref b/trunk/tests/testpeers.-m.-2.populate.ref
new file mode 100644 (file)
index 0000000..97d2e22
--- /dev/null
@@ -0,0 +1,57 @@
+options {'local_peer': 2, 'plc1': '', 'plc2': '', 'factor': 1, 'debug': False, 'size': 'mini'} args ['populate']
+1 sites, 1 persons, 1 nodes & 1 slices
+1 keys/person, 1 nodes/slice & 1 persons/slice
+fast_flag True
+Running locally on index 2
+funcname populate
+dir() ['args', 'funcname', 'options', 'parser', 'size_func', 'steps', 'usage']
++++ timer start
+==================== ('INIT',)
++++ timer start
+==================== s[1]
+show_config obsoleted
+==================== s[2]
+show_config obsoleted
+====================
+Dummy method GetPersons on remote peer 1 skipped
+Dummy method AddPerson on remote peer 1 skipped
+02:== created peer admin account 3, peer2@planet-lab.org - peer
+Dummy method AdmSetPersonEnabled on remote peer 1 skipped
+02:== enabled+admin on account 3:peer2@planet-lab.org
++++ timer start
+Dummy method GetPeers on remote peer 1 skipped
+Trying to locate keys for peer on plc[1] in gpg_plc2.pub and api_plc2.crt
+Dummy method AddPeer on remote peer 1 skipped
+01:Created peer 0
+Trying to locate keys for peer on plc[2] in gpg_plc1.pub and api_plc1.crt
+02:Created peer 1
++++ 0.36 seconds ellapsed (0.36)
+Dummy method GetSites on remote peer 1 skipped
+Dummy method AddSite on remote peer 1 skipped
+02:== Created site 2 with max_slices=1
++++ 0.46 seconds ellapsed (0.10)
+Dummy method GetPersons on remote peer 1 skipped
+Dummy method AddPerson on remote peer 1 skipped
+02:== created user account 4, user-1@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user1-key1 to person user-1@plc.org
++++ 0.55 seconds ellapsed (0.09)
+Dummy method GetNodes on remote peer 1 skipped
+Dummy method AddNode on remote peer 1 skipped
+02:== Added node 1 n2-001.plc2.org
++++ 0.62 seconds ellapsed (0.07)
+Dummy method GetSlices on remote peer 1 skipped
+Dummy method AddSlice on remote peer 1 skipped
++++ 0.62 seconds ellapsed (0.00)
+Dummy method AddSliceToNodes on remote peer 1 skipped
++++ 0.62 seconds ellapsed (0.00)
+Dummy method GetSliceAttributeTypes on remote peer 1 skipped
+Dummy method AddSliceAttributeType on remote peer 1 skipped
+02:== created SliceAttributeType = 23
++++ 0.66 seconds ellapsed (0.03)
+Dummy method GetSliceAttributes on remote peer 1 skipped
+slice_name oneone_slice1 sat_name sat_1
+Dummy method AddSliceAttribute on remote peer 1 skipped
+slice_name oneone_slice1 sat_name vref
++++ 0.66 seconds ellapsed (0.00)
+==================== ('END',)
++++ 0.66 seconds ellapsed (0.00)
diff --git a/trunk/tests/testpeers.-m.populate_end.ref b/trunk/tests/testpeers.-m.populate_end.ref
new file mode 100644 (file)
index 0000000..1b61239
--- /dev/null
@@ -0,0 +1,161 @@
+options {'local_peer': None, 'plc1': '', 'plc2': '', 'factor': 1, 'debug': False, 'size': 'mini'} args ['populate_end']
+1 sites, 1 persons, 1 nodes & 1 slices
+1 keys/person, 1 nodes/slice & 1 persons/slice
+fast_flag True
+funcname populate_end
+dir() ['args', 'funcname', 'options', 'parser', 'size_func', 'steps', 'usage']
++++ timer start
+initializing s[1]=>https://caicol.inria.fr:443/PLCAPI/ user= peer1@planet-lab.org
+initializing s[2]=>https://jamaica.inria.fr:443/PLCAPI/ user= peer2@planet-lab.org
+=== refresh Peer 1 for publishing foreign nodes from 2
++++ 0.23 seconds ellapsed (0.23)
+01:== Refreshing peer
++++ ellapsed: { keys 0.0208368301392 local_nodes 0.00778102874756 nodes 0.0430390834808 peer_db 0.0725510120392 persons 0.0409860610962 site 0.0512850284576 slices 0.0167291164398 transport 0.879606962204 }
++++ 3.67 seconds ellapsed (3.44)
++++ 3.67 seconds ellapsed (0.00)
+01:== added in slice oneone_slice1 foreign  ['n2-001.plc2.org']
++++ 4.36 seconds ellapsed (0.70)
+=== refresh populate: refresh all
++++ 4.37 seconds ellapsed (0.00)
+01:== Refreshing peer
++++ ellapsed: { keys 0.00697612762451 local_nodes 0.00733304023743 nodes 0.0202178955078 peer_db 0.0714790821075 persons 0.0111219882965 site 0.0236639976501 slices 0.00864315032959 transport 0.87544798851 }
++++ 7.07 seconds ellapsed (2.71)
+02:== Refreshing peer
++++ ellapsed: { keys 0.0203778743744 local_nodes 0.00704407691956 nodes 0.0458459854126 peer_db 0.0725910663605 persons 0.0411431789398 site 0.0511009693146 slices 0.0439729690552 transport 0.888474941254 }
++++ 10.54 seconds ellapsed (3.46)
++++ 10.54 seconds ellapsed (0.00)
+=== refresh empty refresh
++++ 10.54 seconds ellapsed (0.00)
+01:== Refreshing peer
++++ ellapsed: { keys 0.00701522827148 local_nodes 0.00736999511719 nodes 0.0202560424805 peer_db 0.0723881721497 persons 0.0111818313599 site 0.0234751701355 slices 0.00855803489685 transport 0.900480747223 }
++++ 12.76 seconds ellapsed (2.22)
+02:== Refreshing peer
++++ ellapsed: { keys 0.00629615783691 local_nodes 0.00665903091431 nodes 0.0196490287781 peer_db 0.0748579502106 persons 0.0105831623077 site 0.0236220359802 slices 0.0118470191956 transport 0.381079912186 }
++++ 15.66 seconds ellapsed (2.90)
+01:============================== DUMPING
+01: SITES
+1 None plc1 FederationTestPlc1 Central []
+2 None oneone FederationTestPlc1 [1]
+3 1 plc2 FederationTestPlc2 Central []
+4 1 twoone FederationTestPlc2 [2]
+01: KEYS
+1 None ssh-rsa somekey4plctestbed user1-key1
+2 1 ssh-rsa somekey4plctestbed user1-key1
+01: PERSONS
+1 None maint@localhost.localdomain keys: [] sites: []
+2 None root@plc1.inria.fr keys: [] sites: [1]
+3 None peer1@planet-lab.org keys: [] sites: []
+4 None user-1@plc.org keys: [1] sites: []
+5 1 peer2@planet-lab.org keys: [] sites: []
+6 1 user-1@plc.org keys: [2] sites: []
+01: NODES
+1 None n1-001.plc1.org sls= [2] site= 2
+2 1 n2-001.plc2.org sls= [2] site= 4
+01: SLICES
+name: plc1_netflow id: 01 peer: None nodes= [] persons= []
+--- sa_ids= [1, 2, 3, 4, 5] creator:   1
+--- 'expires': 1183552191
+name: oneone_slice1 id: 02 peer: None nodes= [1, 2] persons= [4]
+--- sa_ids= [6, 7, 8, 9] creator:   1
+--- 'expires': 1183552272
+01: Slice Attribute Types
+sat_id: 01 min_role_id: 20 name: type < Type of slice (e.g. vserver) >
+sat_id: 02 min_role_id: 10 name: system < Is a default system slice (1) or not (0 or unset) >
+sat_id: 03 min_role_id: 10 name: enabled < Slice enabled (1 or unset) or suspended (0) >
+sat_id: 04 min_role_id: 30 name: vref < Reference image >
+sat_id: 05 min_role_id: 10 name: initscript < Slice initialization script >
+sat_id: 06 min_role_id: 10 name: cpu_min < Minimum CPU share (ms/s) >
+sat_id: 07 min_role_id: 10 name: cpu_share < Number of CPU shares >
+sat_id: 08 min_role_id: 10 name: net_min_rate < Minimum bandwidth (kbps) >
+sat_id: 09 min_role_id: 10 name: net_max_rate < Maximum bandwidth (kbps) >
+sat_id: 10 min_role_id: 10 name: net_i2_min_rate < Minimum bandwidth over I2 routes (kbps) >
+sat_id: 11 min_role_id: 10 name: net_i2_max_rate < Maximum bandwidth over I2 routes (kbps) >
+sat_id: 12 min_role_id: 10 name: net_max_kbyte < Maximum daily network Tx KByte limit. >
+sat_id: 13 min_role_id: 10 name: net_thresh_kbyte < KByte limit before warning and throttling. >
+sat_id: 14 min_role_id: 10 name: net_i2_max_kbyte < Maximum daily network Tx KByte limit to I2 hosts. >
+sat_id: 15 min_role_id: 10 name: net_i2_thresh_kbyte < KByte limit to I2 hosts before warning and throttling. >
+sat_id: 16 min_role_id: 10 name: net_share < Number of bandwidth shares >
+sat_id: 17 min_role_id: 10 name: net_i2_share < Number of bandwidth shares over I2 routes >
+sat_id: 18 min_role_id: 10 name: disk_max < Disk quota (1k disk blocks) >
+sat_id: 19 min_role_id: 10 name: proper_op < Proper operation (e.g. bind_socket) >
+sat_id: 20 min_role_id: 20 name: plc_slice_type < Type of slice rspec to be created >
+sat_id: 21 min_role_id: 10 name: plc_agent_version < Version of PLC agent (slice creation service) software to be deployed >
+sat_id: 22 min_role_id: 10 name: plc_ticket_pubkey < Public key used to verify PLC-signed tickets >
+sat_id: 23 min_role_id: 10 name: sat_1 < custom sat on plc1 >
+01: Slice Attributes
+name: system       sa_id: 01 sat_id: 02 sl=01 v= 1 n= None
+name: vref         sa_id: 09 sat_id: 04 sl=02 v= predefined sat/node1 n= 1
+name: vref         sa_id: 08 sat_id: 04 sl=02 v= predefined sat/all nodes n= None
+name: vref         sa_id: 02 sat_id: 04 sl=01 v= planetflow n= None
+name: proper_op    sa_id: 05 sat_id: 19 sl=01 v= bind_socket n= None
+name: proper_op    sa_id: 04 sat_id: 19 sl=01 v= create_socket n= None
+name: proper_op    sa_id: 03 sat_id: 19 sl=01 v= open file=/etc/passwd, flags=r n= None
+name: sat_1        sa_id: 07 sat_id: 23 sl=02 v= custom sat/node1 n= 1
+name: sat_1        sa_id: 06 sat_id: 23 sl=02 v= custom sat/all nodes n= None
++++ 16.80 seconds ellapsed (1.14)
+01: SLIVERS for first 1 nodes
+WARNING - GetSlivers needs fix
+01:============================== END DUMP
+02:============================== DUMPING
+02: SITES
+1 None plc2 FederationTestPlc2 Central []
+2 None twoone FederationTestPlc2 [1]
+3 1 plc1 FederationTestPlc1 Central []
+4 1 oneone FederationTestPlc1 [2]
+02: KEYS
+1 None ssh-rsa somekey4plctestbed user1-key1
+2 1 ssh-rsa somekey4plctestbed user1-key1
+02: PERSONS
+1 None maint@localhost.localdomain keys: [] sites: []
+2 None root@plc2.inria.fr keys: [] sites: [1]
+3 None peer2@planet-lab.org keys: [] sites: []
+4 None user-1@plc.org keys: [1] sites: []
+5 1 peer1@planet-lab.org keys: [] sites: []
+6 1 user-1@plc.org keys: [2] sites: []
+02: NODES
+1 None n2-001.plc2.org sls= [2] site= 2
+2 1 n1-001.plc1.org sls= [2] site= 4
+02: SLICES
+name: plc2_netflow id: 01 peer: None nodes= [] persons= []
+--- sa_ids= [1, 2, 3, 4, 5] creator:   1
+--- 'expires': 1183552212
+name: oneone_slice1 id: 02 peer: 1 nodes= [1, 2] persons= [6]
+--- sa_ids= [] creator: None
+--- 'expires': 1183552272
+02: Slice Attribute Types
+sat_id: 01 min_role_id: 20 name: type < Type of slice (e.g. vserver) >
+sat_id: 02 min_role_id: 10 name: system < Is a default system slice (1) or not (0 or unset) >
+sat_id: 03 min_role_id: 10 name: enabled < Slice enabled (1 or unset) or suspended (0) >
+sat_id: 04 min_role_id: 30 name: vref < Reference image >
+sat_id: 05 min_role_id: 10 name: initscript < Slice initialization script >
+sat_id: 06 min_role_id: 10 name: cpu_min < Minimum CPU share (ms/s) >
+sat_id: 07 min_role_id: 10 name: cpu_share < Number of CPU shares >
+sat_id: 08 min_role_id: 10 name: net_min_rate < Minimum bandwidth (kbps) >
+sat_id: 09 min_role_id: 10 name: net_max_rate < Maximum bandwidth (kbps) >
+sat_id: 10 min_role_id: 10 name: net_i2_min_rate < Minimum bandwidth over I2 routes (kbps) >
+sat_id: 11 min_role_id: 10 name: net_i2_max_rate < Maximum bandwidth over I2 routes (kbps) >
+sat_id: 12 min_role_id: 10 name: net_max_kbyte < Maximum daily network Tx KByte limit. >
+sat_id: 13 min_role_id: 10 name: net_thresh_kbyte < KByte limit before warning and throttling. >
+sat_id: 14 min_role_id: 10 name: net_i2_max_kbyte < Maximum daily network Tx KByte limit to I2 hosts. >
+sat_id: 15 min_role_id: 10 name: net_i2_thresh_kbyte < KByte limit to I2 hosts before warning and throttling. >
+sat_id: 16 min_role_id: 10 name: net_share < Number of bandwidth shares >
+sat_id: 17 min_role_id: 10 name: net_i2_share < Number of bandwidth shares over I2 routes >
+sat_id: 18 min_role_id: 10 name: disk_max < Disk quota (1k disk blocks) >
+sat_id: 19 min_role_id: 10 name: proper_op < Proper operation (e.g. bind_socket) >
+sat_id: 20 min_role_id: 20 name: plc_slice_type < Type of slice rspec to be created >
+sat_id: 21 min_role_id: 10 name: plc_agent_version < Version of PLC agent (slice creation service) software to be deployed >
+sat_id: 22 min_role_id: 10 name: plc_ticket_pubkey < Public key used to verify PLC-signed tickets >
+sat_id: 23 min_role_id: 10 name: sat_2 < custom sat on plc2 >
+02: Slice Attributes
+name: system       sa_id: 01 sat_id: 02 sl=01 v= 1 n= None
+name: vref         sa_id: 02 sat_id: 04 sl=01 v= planetflow n= None
+name: proper_op    sa_id: 05 sat_id: 19 sl=01 v= bind_socket n= None
+name: proper_op    sa_id: 04 sat_id: 19 sl=01 v= create_socket n= None
+name: proper_op    sa_id: 03 sat_id: 19 sl=01 v= open file=/etc/passwd, flags=r n= None
++++ 18.43 seconds ellapsed (1.63)
+02: SLIVERS for first 1 nodes
+WARNING - GetSlivers needs fix
+02:============================== END DUMP
++++ 18.43 seconds ellapsed (0.00)
+==================== ('END',)
++++ 18.43 seconds ellapsed (0.00)
diff --git a/trunk/tests/testpeers.-m.test_all.ref b/trunk/tests/testpeers.-m.test_all.ref
new file mode 100644 (file)
index 0000000..08db5bb
--- /dev/null
@@ -0,0 +1,437 @@
+options {'local_peer': None, 'plc1': '', 'plc2': '', 'factor': 1, 'debug': False, 'size': 'mini'} args ['test_all']
+1 sites, 1 persons, 1 nodes & 1 slices
+1 keys/person, 1 nodes/slice & 1 persons/slice
+fast_flag True
+funcname test_all
+dir() ['args', 'funcname', 'options', 'parser', 'size_func', 'steps', 'usage']
+==================== ('INIT',)
++++ timer start
+initializing s[1]=>https://caicol.inria.fr:443/PLCAPI/ user= root@plc1.inria.fr
+initializing s[2]=>https://jamaica.inria.fr:443/PLCAPI/ user= root@plc2.inria.fr
+==================== s[1]
+show_config obsoleted
+==================== s[2]
+show_config obsoleted
+====================
+01:== created peer admin account 3, peer1@planet-lab.org - peer
+02:== created peer admin account 3, peer2@planet-lab.org - peer
+01:== enabled+admin on account 3:peer1@planet-lab.org
+02:== enabled+admin on account 3:peer2@planet-lab.org
++++ timer start
+initializing s[1]=>https://caicol.inria.fr:443/PLCAPI/ user= peer1@planet-lab.org
+initializing s[2]=>https://jamaica.inria.fr:443/PLCAPI/ user= peer2@planet-lab.org
+Trying to locate keys for peer on plc[1] in gpg_plc2.pub and api_plc2.crt
+01:Created peer 1
+Trying to locate keys for peer on plc[2] in gpg_plc1.pub and api_plc1.crt
+02:Created peer 1
++++ 1.11 seconds ellapsed (1.11)
+01:== Created site 2 with max_slices=1
+02:== Created site 2 with max_slices=1
+=== refresh after site creation
++++ 2.24 seconds ellapsed (1.14)
+01:== Refreshing peer
++++ ellapsed: { keys 0.0038001537323 local_nodes 0.00645995140076 nodes 0.0165648460388 peer_db 0.0730428695679 persons 0.0198659896851 site 0.0508999824524 slices 0.0088050365448 transport 0.332457065582 }
++++ 4.06 seconds ellapsed (1.82)
+02:== Refreshing peer
++++ ellapsed: { keys 0.00386905670166 local_nodes 0.00602221488953 nodes 0.0169570446014 peer_db 0.0704660415649 persons 0.025032043457 site 0.0491960048676 slices 0.00849199295044 transport 0.322968959808 }
++++ 5.86 seconds ellapsed (1.80)
++++ 5.86 seconds ellapsed (0.00)
+=== refresh before persons&keys creation
++++ 6.16 seconds ellapsed (0.30)
+01:== Refreshing peer
++++ ellapsed: { keys 0.00431799888611 local_nodes 0.00593590736389 nodes 0.0162229537964 peer_db 0.0734379291534 persons 0.00807285308838 site 0.0193409919739 slices 0.00921893119812 transport 0.321912050247 }
++++ 7.76 seconds ellapsed (1.60)
+02:== Refreshing peer
++++ ellapsed: { keys 0.0039849281311 local_nodes 0.00554800033569 nodes 0.0161969661713 peer_db 0.0727128982544 persons 0.00770306587219 site 0.0193841457367 slices 0.00873184204102 transport 0.306769132614 }
++++ 9.35 seconds ellapsed (1.59)
+01: Checking keys: got 0 local (e=0) & 0 foreign (e=0)
+02: Checking keys: got 0 local (e=0) & 0 foreign (e=0)
+01: Checking persons: got 3 local (e=3) & 1 foreign (e=1)
+02: Checking persons: got 3 local (e=3) & 1 foreign (e=1)
+==================== ('Creating persons&keys',)
+01:== created user account 5, user-1@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user1-key1 to person user-1@plc.org
+02:== created user account 5, user-1@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user1-key1 to person user-1@plc.org
+01: Checking keys: got 1 local (e=1) & 0 foreign (e=0)
+02: Checking keys: got 1 local (e=1) & 0 foreign (e=0)
+01: Checking persons: got 4 local (e=4) & 1 foreign (e=1)
+02: Checking persons: got 4 local (e=4) & 1 foreign (e=1)
+=== refresh after persons&keys creation
++++ 11.64 seconds ellapsed (2.29)
+01:== Refreshing peer
++++ ellapsed: { keys 0.0234961509705 local_nodes 0.0105268955231 nodes 0.0203311443329 peer_db 0.0715289115906 persons 0.0292110443115 site 0.0190658569336 slices 0.00835180282593 transport 0.316730976105 }
++++ 13.29 seconds ellapsed (1.65)
+02:== Refreshing peer
++++ ellapsed: { keys 0.0290341377258 local_nodes 0.00588989257812 nodes 0.0160729885101 peer_db 0.0720119476318 persons 0.0320210456848 site 0.0194230079651 slices 0.00832509994507 transport 0.315702199936 }
++++ 14.91 seconds ellapsed (1.62)
+01: Checking keys: got 1 local (e=1) & 1 foreign (e=1)
+02: Checking keys: got 1 local (e=1) & 1 foreign (e=1)
+01: Checking persons: got 4 local (e=4) & 2 foreign (e=2)
+02: Checking persons: got 4 local (e=4) & 2 foreign (e=2)
++++ 15.54 seconds ellapsed (0.63)
+==================== ('RESETTING NODES',)
+01:== Cleaning all nodes
+02:== Cleaning all nodes
+=== refresh cleaned nodes
++++ 15.87 seconds ellapsed (0.33)
+01:== Refreshing peer
++++ ellapsed: { keys 0.00443601608276 local_nodes 0.00593090057373 nodes 0.0157189369202 peer_db 0.0721609592438 persons 0.0130760669708 site 0.0235221385956 slices 0.00863313674927 transport 0.32453918457 }
++++ 17.52 seconds ellapsed (1.65)
+02:== Refreshing peer
++++ ellapsed: { keys 0.006511926651 local_nodes 0.00657796859741 nodes 0.0164999961853 peer_db 0.0736320018768 persons 0.0117130279541 site 0.0236840248108 slices 0.00867795944214 transport 0.316795110703 }
++++ 19.16 seconds ellapsed (1.64)
+01: Checking nodes: got 0 local (e=0) & 0 foreign (e=0)
+02: Checking nodes: got 0 local (e=0) & 0 foreign (e=0)
+==================== ('CREATING NODES',)
+01:== Added node 1 n1-001.plc1.org
+02:== Added node 1 n2-001.plc2.org
+01: Checking nodes: got 1 local (e=1) & 0 foreign (e=0)
+02: Checking nodes: got 1 local (e=1) & 0 foreign (e=0)
+=== refresh after node creation
++++ 20.59 seconds ellapsed (1.44)
+01:== Refreshing peer
++++ ellapsed: { keys 0.00726294517517 local_nodes 0.00728988647461 nodes 0.0482001304626 peer_db 0.07448387146 persons 0.0103290081024 site 0.0238211154938 slices 0.00867295265198 transport 0.339636087418 }
++++ 22.26 seconds ellapsed (1.67)
+02:== Refreshing peer
++++ ellapsed: { keys 0.00730514526367 local_nodes 0.00690698623657 nodes 0.0464520454407 peer_db 0.0739932060242 persons 0.00910305976868 site 0.0260801315308 slices 0.00841307640076 transport 0.324549674988 }
++++ 23.90 seconds ellapsed (1.64)
+01: Checking nodes: got 1 local (e=1) & 1 foreign (e=1)
+02: Checking nodes: got 1 local (e=1) & 1 foreign (e=1)
+02:== Deleted node 1, returns 1
+02: Checking nodes: got 0 local (e=0) & 1 foreign (e=1)
+=== refresh after deletion on plc2
++++ 24.80 seconds ellapsed (0.90)
+01:== Refreshing peer
++++ ellapsed: { keys 0.00459384918213 local_nodes 0.00618600845337 nodes 0.0548779964447 peer_db 0.0725939273834 persons 0.0087308883667 site 0.0193519592285 slices 0.00713205337524 transport 0.321602106094 }
++++ 26.44 seconds ellapsed (1.64)
+02:== Refreshing peer
++++ ellapsed: { keys 0.00454807281494 local_nodes 0.00633716583252 nodes 0.0176470279694 peer_db 0.0725169181824 persons 0.00868988037109 site 0.0192210674286 slices 0.00999689102173 transport 0.317940235138 }
++++ 28.09 seconds ellapsed (1.65)
+01: Checking nodes: got 1 local (e=1) & 0 foreign (e=0)
+02: Checking nodes: got 0 local (e=0) & 1 foreign (e=1)
+==================== ('ADD on plc2 for different indexes',)
+02:== Added node 3 n2-001.plc2.org
+01: Checking nodes: got 1 local (e=1) & 0 foreign (e=0)
+02: Checking nodes: got 1 local (e=1) & 1 foreign (e=1)
+=== refresh after re-creation on plc2
++++ 29.14 seconds ellapsed (1.05)
+01:== Refreshing peer
++++ ellapsed: { keys 0.0046820640564 local_nodes 0.00679898262024 nodes 0.0361959934235 peer_db 0.0734241008759 persons 0.0088038444519 site 0.0188229084015 slices 0.0088210105896 transport 0.322027921677 }
++++ 30.81 seconds ellapsed (1.67)
+02:== Refreshing peer
++++ ellapsed: { keys 0.00457215309143 local_nodes 0.00660705566406 nodes 0.0175521373749 peer_db 0.0737800598145 persons 0.00872206687927 site 0.0191171169281 slices 0.00901699066162 transport 0.323905944824 }
++++ 32.46 seconds ellapsed (1.65)
+01: Checking nodes: got 1 local (e=1) & 1 foreign (e=1)
+02: Checking nodes: got 1 local (e=1) & 1 foreign (e=1)
++++ 32.80 seconds ellapsed (0.34)
+==================== ('RESETTING SLICES TEST',)
+01:== Cleaning all nodes
+01:==== Cleaning node 1
+02:== Cleaning all nodes
+02:==== Cleaning node 3
+01:== Added node 4 n1-001.plc1.org
+02:== Added node 4 n2-001.plc2.org
+01:== Cleaning all slices
+02:== Cleaning all slices
+=== refresh After slices init
++++ 34.65 seconds ellapsed (1.86)
+01:== Refreshing peer
++++ ellapsed: { keys 0.00450301170349 local_nodes 0.00647306442261 nodes 0.0622019767761 peer_db 0.0748679637909 persons 0.00879502296448 site 0.0192511081696 slices 0.00795698165894 transport 0.323952913284 }
++++ 36.29 seconds ellapsed (1.64)
+02:== Refreshing peer
++++ ellapsed: { keys 0.0045371055603 local_nodes 0.00651907920837 nodes 0.0640370845795 peer_db 0.0733089447021 persons 0.00870203971863 site 0.0192790031433 slices 0.00765705108643 transport 0.322642087936 }
++++ 37.91 seconds ellapsed (1.62)
+==================== ('CREATING SLICES on plc1',)
+01:== created slice 2 - max nodes=1
+01:== Attached person user-1@plc.org to slice oneone_slice1
+01: Checking slices: got 2 local (e=2) & 0 foreign (e=0)
+02: Checking slices: got 1 local (e=1) & 0 foreign (e=0)
+=== refresh after slice created on plc1
++++ 39.07 seconds ellapsed (1.15)
+01:== Refreshing peer
++++ ellapsed: { keys 0.00460600852966 local_nodes 0.00738000869751 nodes 0.0173969268799 peer_db 0.0756890773773 persons 0.00878095626831 site 0.019326210022 slices 0.00891304016113 transport 0.326341867447 }
++++ 40.73 seconds ellapsed (1.66)
+02:== Refreshing peer
++++ ellapsed: { keys 0.00508999824524 local_nodes 0.00707006454468 nodes 0.0185298919678 peer_db 0.07577085495 persons 0.00907492637634 site 0.0194971561432 slices 0.0462868213654 transport 0.327960014343 }
++++ 42.41 seconds ellapsed (1.68)
+01: Checking slices: got 2 local (e=2) & 0 foreign (e=0)
+02: Checking slices: got 1 local (e=1) & 1 foreign (e=1)
+01: local slice oneone_slice1 (e=0)  on nodes  []
+02: foreign slice oneone_slice1 (e=0)  on nodes  []
+==================== ('ADDING LOCAL NODES IN SLICES',)
+01:== added in slice oneone_slice1 local  ['n1-001.plc1.org']
+01: local slice oneone_slice1 (e=1)  on nodes  [4]
+[LOC:1] :  n1-001.plc1.org  
+02: foreign slice oneone_slice1 (e=0)  on nodes  []
+=== refresh After local nodes were added on plc1
++++ 44.55 seconds ellapsed (2.14)
+01:== Refreshing peer
++++ ellapsed: { keys 0.00452089309692 local_nodes 0.00669598579407 nodes 0.0172870159149 peer_db 0.0735449790955 persons 0.0086498260498 site 0.0192210674286 slices 0.0090548992157 transport 0.327414035797 }
++++ 46.19 seconds ellapsed (1.64)
+02:== Refreshing peer
++++ ellapsed: { keys 0.00501203536987 local_nodes 0.00737619400024 nodes 0.0181210041046 peer_db 0.0753741264343 persons 0.00912189483643 site 0.0198740959167 slices 0.0148589611053 transport 0.326575994492 }
++++ 47.78 seconds ellapsed (1.59)
+01: local slice oneone_slice1 (e=1)  on nodes  [4]
+[LOC:1] :  n1-001.plc1.org  
+02: foreign slice oneone_slice1 (e=1)  on nodes  [5]
+[FOR:1] :  n1-001.plc1.org  
+==================== ('ADDING FOREIGN NODES IN SLICES',)
+01:== added in slice oneone_slice1 foreign  ['n2-001.plc2.org']
+01: local slice oneone_slice1 (e=2)  on nodes  [5, 4]
+[LOC:1] :  n1-001.plc1.org  
+[FOR:1] :  n2-001.plc2.org  
+02: foreign slice oneone_slice1 (e=1)  on nodes  [5]
+[FOR:1] :  n1-001.plc1.org  
+=== refresh After foreign nodes were added in plc1
++++ 49.29 seconds ellapsed (1.51)
+01:== Refreshing peer
++++ ellapsed: { keys 0.00503015518188 local_nodes 0.00770211219788 nodes 0.0177919864655 peer_db 0.0740900039673 persons 0.00913286209106 site 0.0193819999695 slices 0.00882196426392 transport 0.328030109406 }
++++ 50.87 seconds ellapsed (1.59)
+02:== Refreshing peer
++++ ellapsed: { keys 0.00501203536987 local_nodes 0.00771689414978 nodes 0.0179951190948 peer_db 0.0737829208374 persons 0.00910806655884 site 0.0195059776306 slices 0.0138790607452 transport 0.329298019409 }
++++ 52.48 seconds ellapsed (1.61)
+01: local slice oneone_slice1 (e=2)  on nodes  [5, 4]
+[LOC:1] :  n1-001.plc1.org  
+[FOR:1] :  n2-001.plc2.org  
+02: foreign slice oneone_slice1 (e=2)  on nodes  [4, 5]
+[LOC:1] :  n2-001.plc2.org  
+[FOR:1] :  n1-001.plc1.org  
+01: 2 slivers (exp. 2) in GetSlivers for node n1-001.plc1.org
+>>slivername =  plc1_netflow
+{    'attributes': [    {'name': 'system', 'value': '1'},
+                        {'name': 'vref', 'value': 'planetflow'},
+                        {    'name': 'proper_op',
+                             'value': 'open file=/etc/passwd, flags=r'},
+                        {'name': 'proper_op', 'value': 'create_socket'},
+                        {'name': 'proper_op', 'value': 'bind_socket'}],
+     'expires': 1183553992,
+     'instantiation': 'plc-instantiated',
+     'keys': [],
+     'name': 'plc1_netflow',
+     'slice_id': 1}
+>>slivername =  oneone_slice1
+{    'attributes': [],
+     'expires': 1183559059,
+     'instantiation': 'plc-instantiated',
+     'keys': [],
+     'name': 'oneone_slice1',
+     'slice_id': 2}
+02: 2 slivers (exp. 2) in GetSlivers for node n2-001.plc2.org
+>>slivername =  plc2_netflow
+{    'attributes': [    {'name': 'system', 'value': '1'},
+                        {'name': 'vref', 'value': 'planetflow'},
+                        {    'name': 'proper_op',
+                             'value': 'open file=/etc/passwd, flags=r'},
+                        {'name': 'proper_op', 'value': 'create_socket'},
+                        {'name': 'proper_op', 'value': 'bind_socket'}],
+     'expires': 1183554012,
+     'instantiation': 'plc-instantiated',
+     'keys': [],
+     'name': 'plc2_netflow',
+     'slice_id': 1}
+>>slivername =  oneone_slice1
+{    'attributes': [],
+     'expires': 1183559059,
+     'instantiation': 'plc-instantiated',
+     'keys': [],
+     'name': 'oneone_slice1',
+     'slice_id': 2}
+==================== ('DELETING FOREIGN NODES FROM SLICES',)
+01:== deleted in slice oneone_slice1 foreign  ['n2-001.plc2.org']
+01: local slice oneone_slice1 (e=1)  on nodes  [4]
+[LOC:1] :  n1-001.plc1.org  
+02: foreign slice oneone_slice1 (e=2)  on nodes  [4, 5]
+[LOC:1] :  n2-001.plc2.org  
+[FOR:1] :  n1-001.plc1.org  
+01: 2 slivers (exp. 2) in GetSlivers for node n1-001.plc1.org
+>>slivername =  plc1_netflow
+{    'attributes': [    {'name': 'system', 'value': '1'},
+                        {'name': 'vref', 'value': 'planetflow'},
+                        {    'name': 'proper_op',
+                             'value': 'open file=/etc/passwd, flags=r'},
+                        {'name': 'proper_op', 'value': 'create_socket'},
+                        {'name': 'proper_op', 'value': 'bind_socket'}],
+     'expires': 1183553992,
+     'instantiation': 'plc-instantiated',
+     'keys': [],
+     'name': 'plc1_netflow',
+     'slice_id': 1}
+>>slivername =  oneone_slice1
+{    'attributes': [],
+     'expires': 1183559059,
+     'instantiation': 'plc-instantiated',
+     'keys': [],
+     'name': 'oneone_slice1',
+     'slice_id': 2}
+=== refresh After foreign nodes were removed on plc1
++++ 54.96 seconds ellapsed (2.47)
+01:== Refreshing peer
++++ ellapsed: { keys 0.00453805923462 local_nodes 0.00685501098633 nodes 0.0173001289368 peer_db 0.0743207931519 persons 0.00870394706726 site 0.0192351341248 slices 0.00876808166504 transport 0.327321052551 }
++++ 56.53 seconds ellapsed (1.57)
+02:== Refreshing peer
++++ ellapsed: { keys 0.00459313392639 local_nodes 0.00714993476868 nodes 0.0179018974304 peer_db 0.0734980106354 persons 0.00876402854919 site 0.0196471214294 slices 0.0168151855469 transport 0.326390981674 }
++++ 58.19 seconds ellapsed (1.66)
+01: local slice oneone_slice1 (e=1)  on nodes  [4]
+[LOC:1] :  n1-001.plc1.org  
+02: foreign slice oneone_slice1 (e=1)  on nodes  [5]
+[FOR:1] :  n1-001.plc1.org  
+==================== ('DELETING LOCAL NODES FROM SLICES',)
+01:== deleted in slice oneone_slice1 local  ['n1-001.plc1.org']
+01: local slice oneone_slice1 (e=0)  on nodes  []
+02: foreign slice oneone_slice1 (e=1)  on nodes  [5]
+[FOR:1] :  n1-001.plc1.org  
+=== refresh After local nodes were removed on plc1
++++ 59.69 seconds ellapsed (1.50)
+01:== Refreshing peer
++++ ellapsed: { keys 0.0046010017395 local_nodes 0.0074291229248 nodes 0.0173571109772 peer_db 0.0745379924774 persons 0.0088050365448 site 0.0192980766296 slices 0.00872993469238 transport 0.327045202255 }
++++ 61.34 seconds ellapsed (1.64)
+02:== Refreshing peer
++++ ellapsed: { keys 0.00650191307068 local_nodes 0.00670886039734 nodes 0.0182948112488 peer_db 0.0741491317749 persons 0.0112988948822 site 0.023903131485 slices 0.0140850543976 transport 0.329675912857 }
++++ 62.96 seconds ellapsed (1.62)
+01: local slice oneone_slice1 (e=0)  on nodes  []
+02: foreign slice oneone_slice1 (e=0)  on nodes  []
+==================== ('CHECKING SLICES CLEAN UP',)
+01:== Cleaning all slices
+01:==== Cleaned slice 2
+01: Checking slices: got 1 local (e=1) & 0 foreign (e=0)
+02: Checking slices: got 1 local (e=1) & 1 foreign (e=1)
+=== refresh After slices clenaup
++++ 64.58 seconds ellapsed (1.63)
+01:== Refreshing peer
++++ ellapsed: { keys 0.00501298904419 local_nodes 0.00675821304321 nodes 0.0177989006042 peer_db 0.0747208595276 persons 0.00913691520691 site 0.0215060710907 slices 0.00876688957214 transport 0.327316045761 }
++++ 66.18 seconds ellapsed (1.59)
+02:== Refreshing peer
++++ ellapsed: { keys 0.0045599937439 local_nodes 0.00678086280823 nodes 0.0176630020142 peer_db 0.0735070705414 persons 0.00879001617432 site 0.0198049545288 slices 0.0313010215759 transport 0.325602054596 }
++++ 67.85 seconds ellapsed (1.67)
+01: Checking slices: got 1 local (e=1) & 0 foreign (e=0)
+02: Checking slices: got 1 local (e=1) & 0 foreign (e=0)
++++ 68.48 seconds ellapsed (0.63)
+01:== created SliceAttributeType = 23
+02:== created SliceAttributeType = 23
+=== refresh after SliceAttributeType creation
++++ 69.11 seconds ellapsed (0.63)
+01:== Refreshing peer
++++ ellapsed: { keys 0.00452494621277 local_nodes 0.00672507286072 nodes 0.0180468559265 peer_db 0.0739049911499 persons 0.00868201255798 site 0.0191102027893 slices 0.00880193710327 transport 0.325891971588 }
++++ 70.77 seconds ellapsed (1.66)
+02:== Refreshing peer
++++ ellapsed: { keys 0.00455808639526 local_nodes 0.0073459148407 nodes 0.0177400112152 peer_db 0.0747611522675 persons 0.00878596305847 site 0.019455909729 slices 0.010351896286 transport 0.32853770256 }
++++ 72.38 seconds ellapsed (1.60)
++++ 72.38 seconds ellapsed (0.00)
+01:============================== DUMPING
+01: SITES
+1 None plc1 FederationTestPlc1 Central []
+2 None oneone FederationTestPlc1 [4]
+3 1 plc2 FederationTestPlc2 Central []
+4 1 twoone FederationTestPlc2 [5]
+01: KEYS
+1 None ssh-rsa somekey4plctestbed user1-key1
+2 1 ssh-rsa somekey4plctestbed user1-key1
+01: PERSONS
+1 None maint@localhost.localdomain keys: [] sites: []
+2 None root@plc1.inria.fr keys: [] sites: [1]
+3 None peer1@planet-lab.org keys: [] sites: []
+4 1 peer2@planet-lab.org keys: [] sites: []
+5 None user-1@plc.org keys: [1] sites: []
+6 1 user-1@plc.org keys: [2] sites: []
+01: NODES
+5 1 n2-001.plc2.org sls= [] site= 4
+4 None n1-001.plc1.org sls= [] site= 2
+01: SLICES
+name: plc1_netflow id: 01 peer: None nodes= [] persons= []
+--- sa_ids= [1, 2, 3, 4, 5] creator:   1
+--- 'expires': 1183553992
+01: Slice Attribute Types
+sat_id: 01 min_role_id: 20 name: type < Type of slice (e.g. vserver) >
+sat_id: 02 min_role_id: 10 name: system < Is a default system slice (1) or not (0 or unset) >
+sat_id: 03 min_role_id: 10 name: enabled < Slice enabled (1 or unset) or suspended (0) >
+sat_id: 04 min_role_id: 30 name: vref < Reference image >
+sat_id: 05 min_role_id: 10 name: initscript < Slice initialization script >
+sat_id: 06 min_role_id: 10 name: cpu_min < Minimum CPU share (ms/s) >
+sat_id: 07 min_role_id: 10 name: cpu_share < Number of CPU shares >
+sat_id: 08 min_role_id: 10 name: net_min_rate < Minimum bandwidth (kbps) >
+sat_id: 09 min_role_id: 10 name: net_max_rate < Maximum bandwidth (kbps) >
+sat_id: 10 min_role_id: 10 name: net_i2_min_rate < Minimum bandwidth over I2 routes (kbps) >
+sat_id: 11 min_role_id: 10 name: net_i2_max_rate < Maximum bandwidth over I2 routes (kbps) >
+sat_id: 12 min_role_id: 10 name: net_max_kbyte < Maximum daily network Tx KByte limit. >
+sat_id: 13 min_role_id: 10 name: net_thresh_kbyte < KByte limit before warning and throttling. >
+sat_id: 14 min_role_id: 10 name: net_i2_max_kbyte < Maximum daily network Tx KByte limit to I2 hosts. >
+sat_id: 15 min_role_id: 10 name: net_i2_thresh_kbyte < KByte limit to I2 hosts before warning and throttling. >
+sat_id: 16 min_role_id: 10 name: net_share < Number of bandwidth shares >
+sat_id: 17 min_role_id: 10 name: net_i2_share < Number of bandwidth shares over I2 routes >
+sat_id: 18 min_role_id: 10 name: disk_max < Disk quota (1k disk blocks) >
+sat_id: 19 min_role_id: 10 name: proper_op < Proper operation (e.g. bind_socket) >
+sat_id: 20 min_role_id: 20 name: plc_slice_type < Type of slice rspec to be created >
+sat_id: 21 min_role_id: 10 name: plc_agent_version < Version of PLC agent (slice creation service) software to be deployed >
+sat_id: 22 min_role_id: 10 name: plc_ticket_pubkey < Public key used to verify PLC-signed tickets >
+sat_id: 23 min_role_id: 10 name: sat_1 < custom sat on plc1 >
+01: Slice Attributes
+name: system       sa_id: 01 sat_id: 02 sl=01 v= 1 n= None
+name: vref         sa_id: 02 sat_id: 04 sl=01 v= planetflow n= None
+name: proper_op    sa_id: 05 sat_id: 19 sl=01 v= bind_socket n= None
+name: proper_op    sa_id: 04 sat_id: 19 sl=01 v= create_socket n= None
+name: proper_op    sa_id: 03 sat_id: 19 sl=01 v= open file=/etc/passwd, flags=r n= None
++++ 73.50 seconds ellapsed (1.13)
+01: SLIVERS for first 1 nodes
+WARNING - GetSlivers needs fix
+01:============================== END DUMP
+02:============================== DUMPING
+02: SITES
+1 None plc2 FederationTestPlc2 Central []
+2 None twoone FederationTestPlc2 [4]
+3 1 plc1 FederationTestPlc1 Central []
+4 1 oneone FederationTestPlc1 [5]
+02: KEYS
+1 None ssh-rsa somekey4plctestbed user1-key1
+2 1 ssh-rsa somekey4plctestbed user1-key1
+02: PERSONS
+1 None maint@localhost.localdomain keys: [] sites: []
+2 None root@plc2.inria.fr keys: [] sites: [1]
+3 None peer2@planet-lab.org keys: [] sites: []
+4 1 peer1@planet-lab.org keys: [] sites: []
+5 None user-1@plc.org keys: [1] sites: []
+6 1 user-1@plc.org keys: [2] sites: []
+02: NODES
+5 1 n1-001.plc1.org sls= [] site= 4
+4 None n2-001.plc2.org sls= [] site= 2
+02: SLICES
+name: plc2_netflow id: 01 peer: None nodes= [] persons= []
+--- sa_ids= [1, 2, 3, 4, 5] creator:   1
+--- 'expires': 1183554012
+02: Slice Attribute Types
+sat_id: 01 min_role_id: 20 name: type < Type of slice (e.g. vserver) >
+sat_id: 02 min_role_id: 10 name: system < Is a default system slice (1) or not (0 or unset) >
+sat_id: 03 min_role_id: 10 name: enabled < Slice enabled (1 or unset) or suspended (0) >
+sat_id: 04 min_role_id: 30 name: vref < Reference image >
+sat_id: 05 min_role_id: 10 name: initscript < Slice initialization script >
+sat_id: 06 min_role_id: 10 name: cpu_min < Minimum CPU share (ms/s) >
+sat_id: 07 min_role_id: 10 name: cpu_share < Number of CPU shares >
+sat_id: 08 min_role_id: 10 name: net_min_rate < Minimum bandwidth (kbps) >
+sat_id: 09 min_role_id: 10 name: net_max_rate < Maximum bandwidth (kbps) >
+sat_id: 10 min_role_id: 10 name: net_i2_min_rate < Minimum bandwidth over I2 routes (kbps) >
+sat_id: 11 min_role_id: 10 name: net_i2_max_rate < Maximum bandwidth over I2 routes (kbps) >
+sat_id: 12 min_role_id: 10 name: net_max_kbyte < Maximum daily network Tx KByte limit. >
+sat_id: 13 min_role_id: 10 name: net_thresh_kbyte < KByte limit before warning and throttling. >
+sat_id: 14 min_role_id: 10 name: net_i2_max_kbyte < Maximum daily network Tx KByte limit to I2 hosts. >
+sat_id: 15 min_role_id: 10 name: net_i2_thresh_kbyte < KByte limit to I2 hosts before warning and throttling. >
+sat_id: 16 min_role_id: 10 name: net_share < Number of bandwidth shares >
+sat_id: 17 min_role_id: 10 name: net_i2_share < Number of bandwidth shares over I2 routes >
+sat_id: 18 min_role_id: 10 name: disk_max < Disk quota (1k disk blocks) >
+sat_id: 19 min_role_id: 10 name: proper_op < Proper operation (e.g. bind_socket) >
+sat_id: 20 min_role_id: 20 name: plc_slice_type < Type of slice rspec to be created >
+sat_id: 21 min_role_id: 10 name: plc_agent_version < Version of PLC agent (slice creation service) software to be deployed >
+sat_id: 22 min_role_id: 10 name: plc_ticket_pubkey < Public key used to verify PLC-signed tickets >
+sat_id: 23 min_role_id: 10 name: sat_2 < custom sat on plc2 >
+02: Slice Attributes
+name: system       sa_id: 01 sat_id: 02 sl=01 v= 1 n= None
+name: vref         sa_id: 02 sat_id: 04 sl=01 v= planetflow n= None
+name: proper_op    sa_id: 05 sat_id: 19 sl=01 v= bind_socket n= None
+name: proper_op    sa_id: 04 sat_id: 19 sl=01 v= create_socket n= None
+name: proper_op    sa_id: 03 sat_id: 19 sl=01 v= open file=/etc/passwd, flags=r n= None
++++ 74.63 seconds ellapsed (1.13)
+02: SLIVERS for first 1 nodes
+WARNING - GetSlivers needs fix
+02:============================== END DUMP
++++ 74.63 seconds ellapsed (0.00)
+==================== ('END',)
++++ 74.63 seconds ellapsed (0.00)
diff --git a/trunk/tests/testpeers.-n.-1.populate.ref b/trunk/tests/testpeers.-n.-1.populate.ref
new file mode 100644 (file)
index 0000000..ce31442
--- /dev/null
@@ -0,0 +1,97 @@
+options {'local_peer': 1, 'plc1': '', 'plc2': '', 'factor': 1, 'debug': False, 'size': 'normal'} args ['populate']
+4 sites, 4 persons, 5 nodes & 4 slices
+2 keys/person, 3 nodes/slice & 6 persons/slice
+fast_flag False
+Running locally on index 1
+funcname populate
+dir() ['args', 'funcname', 'options', 'parser', 'size_func', 'steps', 'usage']
++++ timer start
+==================== ('INIT',)
++++ timer start
+==================== s[1]
+show_config obsoleted
+==================== s[2]
+show_config obsoleted
+====================
+01:== created peer admin account 3, peer1@planet-lab.org - peer
+Dummy method GetPersons on remote peer 2 skipped
+Dummy method AddPerson on remote peer 2 skipped
+01:== enabled+admin on account 3:peer1@planet-lab.org
+Dummy method AdmSetPersonEnabled on remote peer 2 skipped
++++ timer start
+Trying to locate keys for peer on plc[1] in gpg_plc2.pub and api_plc2.crt
+01:Created peer 1
+Dummy method GetPeers on remote peer 2 skipped
+Trying to locate keys for peer on plc[2] in gpg_plc1.pub and api_plc1.crt
+Dummy method AddPeer on remote peer 2 skipped
+02:Created peer 0
++++ 0.36 seconds ellapsed (0.36)
+01:== Created site 2 with max_slices=4
+Dummy method GetSites on remote peer 2 skipped
+Dummy method AddSite on remote peer 2 skipped
+01:== Created site 3 with max_slices=4
+01:== Created site 4 with max_slices=4
+01:== Created site 5 with max_slices=4
++++ 0.70 seconds ellapsed (0.33)
+01:== created user account 4, user-1@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user1-key1 to person user-1@plc.org
+01:== added key ssh-rsa somekey4plctestbed user1-key2 to person user-1@plc.org
+Dummy method GetPersons on remote peer 2 skipped
+Dummy method AddPerson on remote peer 2 skipped
+01:== created user account 5, user-2@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user2-key1 to person user-2@plc.org
+01:== added key ssh-rsa somekey4plctestbed user2-key2 to person user-2@plc.org
+01:== created user account 6, user-3@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user3-key1 to person user-3@plc.org
+01:== added key ssh-rsa somekey4plctestbed user3-key2 to person user-3@plc.org
+01:== created user account 7, user-4@plc.org - password1
+01:== added key ssh-rsa somekey4plctestbed user4-key1 to person user-4@plc.org
+01:== added key ssh-rsa somekey4plctestbed user4-key2 to person user-4@plc.org
++++ 1.14 seconds ellapsed (0.44)
+01:== Added node 1 n1-001.plc1.org
+Dummy method GetNodes on remote peer 2 skipped
+Dummy method AddNode on remote peer 2 skipped
+01:== Added node 2 n1-002.plc1.org
+01:== Added node 3 n1-003.plc1.org
+01:== Added node 4 n1-004.plc1.org
+01:== Added node 5 n1-005.plc1.org
++++ 1.44 seconds ellapsed (0.30)
+01:== created slice 2 - max nodes=5
+01:== Attached person user-1@plc.org to slice oneone_slice1
+01:== Attached person user-2@plc.org to slice oneone_slice1
+01:== Attached person user-3@plc.org to slice oneone_slice1
+01:== Attached person user-4@plc.org to slice oneone_slice1
+01:== created slice 3 - max nodes=5
+01:== Attached person user-2@plc.org to slice onetwo_slice2
+01:== Attached person user-3@plc.org to slice onetwo_slice2
+01:== Attached person user-4@plc.org to slice onetwo_slice2
+01:== Attached person user-1@plc.org to slice onetwo_slice2
+01:== created slice 4 - max nodes=5
+01:== Attached person user-3@plc.org to slice onethree_slice3
+01:== Attached person user-4@plc.org to slice onethree_slice3
+01:== Attached person user-1@plc.org to slice onethree_slice3
+01:== Attached person user-2@plc.org to slice onethree_slice3
+01:== created slice 5 - max nodes=5
+01:== Attached person user-4@plc.org to slice onefour_slice4
+01:== Attached person user-1@plc.org to slice onefour_slice4
+01:== Attached person user-2@plc.org to slice onefour_slice4
+01:== Attached person user-3@plc.org to slice onefour_slice4
++++ 2.00 seconds ellapsed (0.56)
+01:== added in slice oneone_slice1 local  ['n1-001.plc1.org', 'n1-002.plc1.org', 'n1-003.plc1.org']
+01:== added in slice onetwo_slice2 local  ['n1-002.plc1.org', 'n1-003.plc1.org', 'n1-004.plc1.org']
+01:== added in slice onethree_slice3 local  ['n1-003.plc1.org', 'n1-004.plc1.org', 'n1-005.plc1.org']
+01:== added in slice onefour_slice4 local  ['n1-004.plc1.org', 'n1-005.plc1.org', 'n1-001.plc1.org']
++++ 2.15 seconds ellapsed (0.15)
+01:== created SliceAttributeType = 23
+Dummy method GetSliceAttributeTypes on remote peer 2 skipped
+Dummy method AddSliceAttributeType on remote peer 2 skipped
++++ 2.19 seconds ellapsed (0.04)
+slice_name oneone_slice1 sat_name sat_1
+01:== created SliceAttribute = 6 On slice oneone_slice1 and node None
+01:== created SliceAttribute = 7 On slice oneone_slice1 and node n1-001.plc1.org
+slice_name oneone_slice1 sat_name vref
+01:== created SliceAttribute = 8 On slice oneone_slice1 and node None
+01:== created SliceAttribute = 9 On slice oneone_slice1 and node n1-001.plc1.org
++++ 2.34 seconds ellapsed (0.15)
+==================== ('END',)
++++ 2.34 seconds ellapsed (0.00)
diff --git a/trunk/tests/testpeers.-n.-2.populate.ref b/trunk/tests/testpeers.-n.-2.populate.ref
new file mode 100644 (file)
index 0000000..17810a3
--- /dev/null
@@ -0,0 +1,74 @@
+options {'local_peer': 2, 'plc1': '', 'plc2': '', 'factor': 1, 'debug': False, 'size': 'normal'} args ['populate']
+4 sites, 4 persons, 5 nodes & 4 slices
+2 keys/person, 3 nodes/slice & 6 persons/slice
+fast_flag False
+Running locally on index 2
+funcname populate
+dir() ['args', 'funcname', 'options', 'parser', 'size_func', 'steps', 'usage']
++++ timer start
+==================== ('INIT',)
++++ timer start
+==================== s[1]
+show_config obsoleted
+==================== s[2]
+show_config obsoleted
+====================
+Dummy method GetPersons on remote peer 1 skipped
+Dummy method AddPerson on remote peer 1 skipped
+02:== created peer admin account 3, peer2@planet-lab.org - peer
+Dummy method AdmSetPersonEnabled on remote peer 1 skipped
+02:== enabled+admin on account 3:peer2@planet-lab.org
++++ timer start
+Dummy method GetPeers on remote peer 1 skipped
+Trying to locate keys for peer on plc[1] in gpg_plc2.pub and api_plc2.crt
+Dummy method AddPeer on remote peer 1 skipped
+01:Created peer 0
+Trying to locate keys for peer on plc[2] in gpg_plc1.pub and api_plc1.crt
+02:Created peer 1
++++ 0.35 seconds ellapsed (0.35)
+Dummy method GetSites on remote peer 1 skipped
+Dummy method AddSite on remote peer 1 skipped
+02:== Created site 2 with max_slices=4
+02:== Created site 3 with max_slices=4
+02:== Created site 4 with max_slices=4
+02:== Created site 5 with max_slices=4
++++ 0.69 seconds ellapsed (0.34)
+Dummy method GetPersons on remote peer 1 skipped
+Dummy method AddPerson on remote peer 1 skipped
+02:== created user account 4, user-1@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user1-key1 to person user-1@plc.org
+02:== added key ssh-rsa somekey4plctestbed user1-key2 to person user-1@plc.org
+02:== created user account 5, user-2@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user2-key1 to person user-2@plc.org
+02:== added key ssh-rsa somekey4plctestbed user2-key2 to person user-2@plc.org
+02:== created user account 6, user-3@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user3-key1 to person user-3@plc.org
+02:== added key ssh-rsa somekey4plctestbed user3-key2 to person user-3@plc.org
+02:== created user account 7, user-4@plc.org - password2
+02:== added key ssh-rsa somekey4plctestbed user4-key1 to person user-4@plc.org
+02:== added key ssh-rsa somekey4plctestbed user4-key2 to person user-4@plc.org
++++ 1.16 seconds ellapsed (0.46)
+Dummy method GetNodes on remote peer 1 skipped
+Dummy method AddNode on remote peer 1 skipped
+02:== Added node 1 n2-001.plc2.org
+02:== Added node 2 n2-002.plc2.org
+02:== Added node 3 n2-003.plc2.org
+02:== Added node 4 n2-004.plc2.org
+02:== Added node 5 n2-005.plc2.org
++++ 1.44 seconds ellapsed (0.29)
+Dummy method GetSlices on remote peer 1 skipped
+Dummy method AddSlice on remote peer 1 skipped
++++ 1.45 seconds ellapsed (0.00)
+Dummy method AddSliceToNodes on remote peer 1 skipped
++++ 1.45 seconds ellapsed (0.00)
+Dummy method GetSliceAttributeTypes on remote peer 1 skipped
+Dummy method AddSliceAttributeType on remote peer 1 skipped
+02:== created SliceAttributeType = 23
++++ 1.48 seconds ellapsed (0.03)
+Dummy method GetSliceAttributes on remote peer 1 skipped
+slice_name oneone_slice1 sat_name sat_1
+Dummy method AddSliceAttribute on remote peer 1 skipped
+slice_name oneone_slice1 sat_name vref
++++ 1.48 seconds ellapsed (0.00)
+==================== ('END',)
++++ 1.48 seconds ellapsed (0.00)
diff --git a/trunk/tests/testpeers.-n.populate_end.ref b/trunk/tests/testpeers.-n.populate_end.ref
new file mode 100644 (file)
index 0000000..e8038d0
--- /dev/null
@@ -0,0 +1,250 @@
+options {'local_peer': None, 'plc1': '', 'plc2': '', 'factor': 1, 'debug': False, 'size': 'normal'} args ['populate_end']
+4 sites, 4 persons, 5 nodes & 4 slices
+2 keys/person, 3 nodes/slice & 6 persons/slice
+fast_flag False
+funcname populate_end
+dir() ['args', 'funcname', 'options', 'parser', 'size_func', 'steps', 'usage']
++++ timer start
+initializing s[1]=>https://caicol.inria.fr:443/PLCAPI/ user= peer1@planet-lab.org
+initializing s[2]=>https://jamaica.inria.fr:443/PLCAPI/ user= peer2@planet-lab.org
+=== refresh Peer 1 for publishing foreign nodes from 2
++++ 0.23 seconds ellapsed (0.23)
+01:== Refreshing peer
++++ ellapsed: { keys 0.0584080219269 local_nodes 0.0104968547821 nodes 0.0956499576569 peer_db 0.0798010826111 persons 0.0858988761902 site 0.0857949256897 slices 0.0084400177002 transport 0.413682699203 }
++++ 2.39 seconds ellapsed (2.16)
++++ 2.39 seconds ellapsed (0.00)
+01:== added in slice oneone_slice1 foreign  ['n2-001.plc2.org', 'n2-002.plc2.org', 'n2-003.plc2.org']
+01:== added in slice onetwo_slice2 foreign  ['n2-002.plc2.org', 'n2-003.plc2.org', 'n2-004.plc2.org']
+01:== added in slice onethree_slice3 foreign  ['n2-003.plc2.org', 'n2-004.plc2.org', 'n2-005.plc2.org']
+01:== added in slice onefour_slice4 foreign  ['n2-004.plc2.org', 'n2-005.plc2.org', 'n2-001.plc2.org']
++++ 3.17 seconds ellapsed (0.78)
+=== refresh populate: refresh all
++++ 3.17 seconds ellapsed (0.00)
+01:== Refreshing peer
++++ ellapsed: { keys 0.00897598266602 local_nodes 0.00887680053711 nodes 0.02374792099 peer_db 0.0800650119781 persons 0.0151720046997 site 0.0278759002686 slices 0.00831913948059 transport 0.408355951309 }
++++ 4.96 seconds ellapsed (1.79)
+02:== Refreshing peer
++++ ellapsed: { keys 0.0736620426178 local_nodes 0.00899505615234 nodes 0.0971839427948 peer_db 0.0860619544983 persons 0.0938341617584 site 0.0988049507141 slices 0.146500825882 transport 0.467275857925 }
++++ 7.37 seconds ellapsed (2.42)
++++ 7.37 seconds ellapsed (0.00)
+=== refresh empty refresh
++++ 7.37 seconds ellapsed (0.00)
+01:== Refreshing peer
++++ ellapsed: { keys 0.00746011734009 local_nodes 0.00917816162109 nodes 0.0223898887634 peer_db 0.0814049243927 persons 0.0131568908691 site 0.0241479873657 slices 0.00885701179504 transport 0.430548191071 }
++++ 9.13 seconds ellapsed (1.75)
+02:== Refreshing peer
++++ ellapsed: { keys 0.00907683372498 local_nodes 0.00895595550537 nodes 0.0241439342499 peer_db 0.0860838890076 persons 0.0207340717316 site 0.0281040668488 slices 0.0154550075531 transport 0.463763237 }
++++ 10.96 seconds ellapsed (1.83)
+01:============================== DUMPING
+01: SITES
+1 None plc1 FederationTestPlc1 Central []
+2 None oneone FederationTestPlc1 [5, 1]
+3 None onetwo FederationTestPlc1 [2]
+4 None onethree FederationTestPlc1 [3]
+5 None onefour FederationTestPlc1 [4]
+6 1 plc2 FederationTestPlc2 Central []
+7 1 twoone FederationTestPlc2 [10, 6]
+8 1 twotwo FederationTestPlc2 [7]
+9 1 twothree FederationTestPlc2 [8]
+10 1 twofour FederationTestPlc2 [9]
+01: KEYS
+1 None ssh-rsa somekey4plctestbed user1-key1
+2 None ssh-rsa somekey4plctestbed user1-key2
+3 None ssh-rsa somekey4plctestbed user2-key1
+4 None ssh-rsa somekey4plctestbed user2-key2
+5 None ssh-rsa somekey4plctestbed user3-key1
+6 None ssh-rsa somekey4plctestbed user3-key2
+7 None ssh-rsa somekey4plctestbed user4-key1
+8 None ssh-rsa somekey4plctestbed user4-key2
+9 1 ssh-rsa somekey4plctestbed user1-key1
+10 1 ssh-rsa somekey4plctestbed user1-key2
+11 1 ssh-rsa somekey4plctestbed user2-key1
+12 1 ssh-rsa somekey4plctestbed user2-key2
+13 1 ssh-rsa somekey4plctestbed user3-key1
+14 1 ssh-rsa somekey4plctestbed user3-key2
+15 1 ssh-rsa somekey4plctestbed user4-key1
+16 1 ssh-rsa somekey4plctestbed user4-key2
+01: PERSONS
+1 None maint@localhost.localdomain keys: [] sites: []
+2 None root@plc1.inria.fr keys: [] sites: [1]
+3 None peer1@planet-lab.org keys: [] sites: []
+4 None user-1@plc.org keys: [2, 1] sites: []
+5 None user-2@plc.org keys: [4, 3] sites: []
+6 None user-3@plc.org keys: [6, 5] sites: []
+7 None user-4@plc.org keys: [8, 7] sites: []
+8 1 peer2@planet-lab.org keys: [] sites: []
+9 1 user-1@plc.org keys: [10, 9] sites: []
+10 1 user-2@plc.org keys: [12, 11] sites: []
+11 1 user-3@plc.org keys: [14, 13] sites: []
+12 1 user-4@plc.org keys: [15, 16] sites: []
+01: NODES
+1 None n1-001.plc1.org sls= [5, 2] site= 2
+2 None n1-002.plc1.org sls= [3, 2] site= 3
+3 None n1-003.plc1.org sls= [4, 3, 2] site= 4
+4 None n1-004.plc1.org sls= [5, 4, 3] site= 5
+5 None n1-005.plc1.org sls= [5, 4] site= 2
+6 1 n2-001.plc2.org sls= [5, 2] site= 7
+7 1 n2-002.plc2.org sls= [3, 2] site= 8
+8 1 n2-003.plc2.org sls= [4, 3, 2] site= 9
+9 1 n2-004.plc2.org sls= [5, 4, 3] site= 10
+10 1 n2-005.plc2.org sls= [5, 4] site= 7
+01: SLICES
+name: plc1_netflow id: 01 peer: None nodes= [] persons= []
+--- sa_ids= [1, 2, 3, 4, 5] creator:   1
+--- 'expires': 1183553992
+name: oneone_slice1 id: 02 peer: None nodes= [8, 7, 6, 3, 2, 1] persons= [7, 6, 5, 4]
+--- sa_ids= [6, 7, 8, 9] creator:   1
+--- 'expires': 1183556357
+name: onetwo_slice2 id: 03 peer: None nodes= [9, 8, 7, 4, 3, 2] persons= [4, 7, 6, 5]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183556357
+name: onethree_slice3 id: 04 peer: None nodes= [10, 9, 8, 5, 4, 3] persons= [5, 4, 7, 6]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183556357
+name: onefour_slice4 id: 05 peer: None nodes= [10, 9, 6, 5, 4, 1] persons= [6, 5, 4, 7]
+--- sa_ids= [] creator:   1
+--- 'expires': 1183556357
+01: Slice Attribute Types
+sat_id: 01 min_role_id: 20 name: type < Type of slice (e.g. vserver) >
+sat_id: 02 min_role_id: 10 name: system < Is a default system slice (1) or not (0 or unset) >
+sat_id: 03 min_role_id: 10 name: enabled < Slice enabled (1 or unset) or suspended (0) >
+sat_id: 04 min_role_id: 30 name: vref < Reference image >
+sat_id: 05 min_role_id: 10 name: initscript < Slice initialization script >
+sat_id: 06 min_role_id: 10 name: cpu_min < Minimum CPU share (ms/s) >
+sat_id: 07 min_role_id: 10 name: cpu_share < Number of CPU shares >
+sat_id: 08 min_role_id: 10 name: net_min_rate < Minimum bandwidth (kbps) >
+sat_id: 09 min_role_id: 10 name: net_max_rate < Maximum bandwidth (kbps) >
+sat_id: 10 min_role_id: 10 name: net_i2_min_rate < Minimum bandwidth over I2 routes (kbps) >
+sat_id: 11 min_role_id: 10 name: net_i2_max_rate < Maximum bandwidth over I2 routes (kbps) >
+sat_id: 12 min_role_id: 10 name: net_max_kbyte < Maximum daily network Tx KByte limit. >
+sat_id: 13 min_role_id: 10 name: net_thresh_kbyte < KByte limit before warning and throttling. >
+sat_id: 14 min_role_id: 10 name: net_i2_max_kbyte < Maximum daily network Tx KByte limit to I2 hosts. >
+sat_id: 15 min_role_id: 10 name: net_i2_thresh_kbyte < KByte limit to I2 hosts before warning and throttling. >
+sat_id: 16 min_role_id: 10 name: net_share < Number of bandwidth shares >
+sat_id: 17 min_role_id: 10 name: net_i2_share < Number of bandwidth shares over I2 routes >
+sat_id: 18 min_role_id: 10 name: disk_max < Disk quota (1k disk blocks) >
+sat_id: 19 min_role_id: 10 name: proper_op < Proper operation (e.g. bind_socket) >
+sat_id: 20 min_role_id: 20 name: plc_slice_type < Type of slice rspec to be created >
+sat_id: 21 min_role_id: 10 name: plc_agent_version < Version of PLC agent (slice creation service) software to be deployed >
+sat_id: 22 min_role_id: 10 name: plc_ticket_pubkey < Public key used to verify PLC-signed tickets >
+sat_id: 23 min_role_id: 10 name: sat_1 < custom sat on plc1 >
+01: Slice Attributes
+name: system       sa_id: 01 sat_id: 02 sl=01 v= 1 n= None
+name: vref         sa_id: 09 sat_id: 04 sl=02 v= predefined sat/node1 n= 1
+name: vref         sa_id: 08 sat_id: 04 sl=02 v= predefined sat/all nodes n= None
+name: vref         sa_id: 02 sat_id: 04 sl=01 v= planetflow n= None
+name: proper_op    sa_id: 05 sat_id: 19 sl=01 v= bind_socket n= None
+name: proper_op    sa_id: 04 sat_id: 19 sl=01 v= create_socket n= None
+name: proper_op    sa_id: 03 sat_id: 19 sl=01 v= open file=/etc/passwd, flags=r n= None
+name: sat_1        sa_id: 07 sat_id: 23 sl=02 v= custom sat/node1 n= 1
+name: sat_1        sa_id: 06 sat_id: 23 sl=02 v= custom sat/all nodes n= None
++++ 12.19 seconds ellapsed (1.23)
+01: SLIVERS for first 3 nodes
+WARNING - GetSlivers needs fix
+01:============================== END DUMP
+02:============================== DUMPING
+02: SITES
+1 None plc2 FederationTestPlc2 Central []
+2 None twoone FederationTestPlc2 [5, 1]
+3 None twotwo FederationTestPlc2 [2]
+4 None twothree FederationTestPlc2 [3]
+5 None twofour FederationTestPlc2 [4]
+6 1 plc1 FederationTestPlc1 Central []
+7 1 oneone FederationTestPlc1 [10, 6]
+8 1 onetwo FederationTestPlc1 [7]
+9 1 onethree FederationTestPlc1 [8]
+10 1 onefour FederationTestPlc1 [9]
+02: KEYS
+1 None ssh-rsa somekey4plctestbed user1-key1
+2 None ssh-rsa somekey4plctestbed user1-key2
+3 None ssh-rsa somekey4plctestbed user2-key1
+4 None ssh-rsa somekey4plctestbed user2-key2
+5 None ssh-rsa somekey4plctestbed user3-key1
+6 None ssh-rsa somekey4plctestbed user3-key2
+7 None ssh-rsa somekey4plctestbed user4-key1
+8 None ssh-rsa somekey4plctestbed user4-key2
+9 1 ssh-rsa somekey4plctestbed user1-key1
+10 1 ssh-rsa somekey4plctestbed user1-key2
+11 1 ssh-rsa somekey4plctestbed user2-key1
+12 1 ssh-rsa somekey4plctestbed user2-key2
+13 1 ssh-rsa somekey4plctestbed user3-key1
+14 1 ssh-rsa somekey4plctestbed user3-key2
+15 1 ssh-rsa somekey4plctestbed user4-key1
+16 1 ssh-rsa somekey4plctestbed user4-key2
+02: PERSONS
+1 None maint@localhost.localdomain keys: [] sites: []
+2 None root@plc2.inria.fr keys: [] sites: [1]
+3 None peer2@planet-lab.org keys: [] sites: []
+4 None user-1@plc.org keys: [2, 1] sites: []
+5 None user-2@plc.org keys: [4, 3] sites: []
+6 None user-3@plc.org keys: [6, 5] sites: []
+7 None user-4@plc.org keys: [8, 7] sites: []
+8 1 peer1@planet-lab.org keys: [] sites: []
+9 1 user-1@plc.org keys: [10, 9] sites: []
+10 1 user-2@plc.org keys: [12, 11] sites: []
+11 1 user-3@plc.org keys: [14, 13] sites: []
+12 1 user-4@plc.org keys: [15, 16] sites: []
+02: NODES
+1 None n2-001.plc2.org sls= [5, 2] site= 2
+2 None n2-002.plc2.org sls= [3, 2] site= 3
+3 None n2-003.plc2.org sls= [4, 3, 2] site= 4
+4 None n2-004.plc2.org sls= [5, 4, 3] site= 5
+5 None n2-005.plc2.org sls= [5, 4] site= 2
+6 1 n1-001.plc1.org sls= [5, 2] site= 7
+7 1 n1-002.plc1.org sls= [3, 2] site= 8
+8 1 n1-003.plc1.org sls= [4, 3, 2] site= 9
+9 1 n1-004.plc1.org sls= [5, 4, 3] site= 10
+10 1 n1-005.plc1.org sls= [5, 4] site= 7
+02: SLICES
+name: plc2_netflow id: 01 peer: None nodes= [] persons= []
+--- sa_ids= [1, 2, 3, 4, 5] creator:   1
+--- 'expires': 1183554012
+name: oneone_slice1 id: 02 peer: 1 nodes= [3, 2, 1, 8, 7, 6] persons= [12, 11, 10, 9]
+--- sa_ids= [] creator: None
+--- 'expires': 1183556357
+name: onetwo_slice2 id: 03 peer: 1 nodes= [4, 3, 2, 9, 8, 7] persons= [12, 11, 10, 9]
+--- sa_ids= [] creator: None
+--- 'expires': 1183556357
+name: onethree_slice3 id: 04 peer: 1 nodes= [5, 4, 3, 10, 9, 8] persons= [12, 11, 10, 9]
+--- sa_ids= [] creator: None
+--- 'expires': 1183556357
+name: onefour_slice4 id: 05 peer: 1 nodes= [5, 4, 1, 10, 9, 6] persons= [12, 11, 10, 9]
+--- sa_ids= [] creator: None
+--- 'expires': 1183556357
+02: Slice Attribute Types
+sat_id: 01 min_role_id: 20 name: type < Type of slice (e.g. vserver) >
+sat_id: 02 min_role_id: 10 name: system < Is a default system slice (1) or not (0 or unset) >
+sat_id: 03 min_role_id: 10 name: enabled < Slice enabled (1 or unset) or suspended (0) >
+sat_id: 04 min_role_id: 30 name: vref < Reference image >
+sat_id: 05 min_role_id: 10 name: initscript < Slice initialization script >
+sat_id: 06 min_role_id: 10 name: cpu_min < Minimum CPU share (ms/s) >
+sat_id: 07 min_role_id: 10 name: cpu_share < Number of CPU shares >
+sat_id: 08 min_role_id: 10 name: net_min_rate < Minimum bandwidth (kbps) >
+sat_id: 09 min_role_id: 10 name: net_max_rate < Maximum bandwidth (kbps) >
+sat_id: 10 min_role_id: 10 name: net_i2_min_rate < Minimum bandwidth over I2 routes (kbps) >
+sat_id: 11 min_role_id: 10 name: net_i2_max_rate < Maximum bandwidth over I2 routes (kbps) >
+sat_id: 12 min_role_id: 10 name: net_max_kbyte < Maximum daily network Tx KByte limit. >
+sat_id: 13 min_role_id: 10 name: net_thresh_kbyte < KByte limit before warning and throttling. >
+sat_id: 14 min_role_id: 10 name: net_i2_max_kbyte < Maximum daily network Tx KByte limit to I2 hosts. >
+sat_id: 15 min_role_id: 10 name: net_i2_thresh_kbyte < KByte limit to I2 hosts before warning and throttling. >
+sat_id: 16 min_role_id: 10 name: net_share < Number of bandwidth shares >
+sat_id: 17 min_role_id: 10 name: net_i2_share < Number of bandwidth shares over I2 routes >
+sat_id: 18 min_role_id: 10 name: disk_max < Disk quota (1k disk blocks) >
+sat_id: 19 min_role_id: 10 name: proper_op < Proper operation (e.g. bind_socket) >
+sat_id: 20 min_role_id: 20 name: plc_slice_type < Type of slice rspec to be created >
+sat_id: 21 min_role_id: 10 name: plc_agent_version < Version of PLC agent (slice creation service) software to be deployed >
+sat_id: 22 min_role_id: 10 name: plc_ticket_pubkey < Public key used to verify PLC-signed tickets >
+sat_id: 23 min_role_id: 10 name: sat_2 < custom sat on plc2 >
+02: Slice Attributes
+name: system       sa_id: 01 sat_id: 02 sl=01 v= 1 n= None
+name: vref         sa_id: 02 sat_id: 04 sl=01 v= planetflow n= None
+name: proper_op    sa_id: 05 sat_id: 19 sl=01 v= bind_socket n= None
+name: proper_op    sa_id: 04 sat_id: 19 sl=01 v= create_socket n= None
+name: proper_op    sa_id: 03 sat_id: 19 sl=01 v= open file=/etc/passwd, flags=r n= None
++++ 13.43 seconds ellapsed (1.23)
+02: SLIVERS for first 3 nodes
+WARNING - GetSlivers needs fix
+02:============================== END DUMP
++++ 13.43 seconds ellapsed (0.00)
+==================== ('END',)
++++ 13.43 seconds ellapsed (0.00)
diff --git a/trunk/tools/dzombie.py b/trunk/tools/dzombie.py
new file mode 100755 (executable)
index 0000000..e3c170a
--- /dev/null
@@ -0,0 +1,122 @@
+#!/usr/bin/python
+#
+# Tool that removes zombie records from database tables#
+import sys
+import os
+import getopt
+import pgdb
+from pprint import pprint
+
+schema_file = None
+config_file = "/etc/planetlab/plc_config"
+config = {}
+execfile(config_file, config)
+
+def usage():
+        print "Usage: %s SCHEMA_FILE " % sys.argv[0]
+        sys.exit(1)
+
+try:
+               schema_file  = sys.argv[1]
+except IndexError:
+        print "Error: too few arguments"
+        usage()
+
+# all foreing keys exist as primary kyes in another table
+# will represent all foreign keys as
+# { 'table.foreign_key': 'table.primary_key'} 
+foreign_keys = {}
+foreign_keys_ordered = []
+zombie_keys = {}
+# parse the schema for foreign keys
+try:
+        file = open(schema_file, 'r')
+        index = 0
+        lines = file.readlines()
+        while index < len(lines):
+               line = lines[index].strip()
+                # find all created objects
+                if line.startswith("CREATE"):
+                       line_parts = line.split(" ")
+                       if line_parts[1:3] == ['OR', 'REPLACE']:
+                               line_parts = line_parts[2:]
+                       item_type = line_parts[1].strip()
+                       item_name = line_parts[2].strip()
+                       if item_type.upper() in ['TABLE']:
+                               while index < len(lines):
+                                       index = index + 1
+                                       nextline =lines[index].strip()
+                                       if nextline.find("--") > -1:
+                                               nextline = nextline[0:nextline.index("--")].replace(',', '')
+                                       if nextline.upper().find("REFERENCES") > -1:
+                                               nextline_parts = nextline.split(" ")
+                                               foreign_key_name = nextline_parts[0].strip()
+                                               foreign_key_table = nextline_parts[nextline_parts.index("REFERENCES")+1].strip()
+                                               foreign_key = item_name + "."+ foreign_key_name
+                                               primary_key = foreign_key_table +"."+ foreign_key_name 
+                                               foreign_keys[foreign_key] = primary_key
+                                               foreign_keys_ordered.append(foreign_key)
+                                       elif nextline.find(";") >= 0:
+                                                break
+               index = index + 1
+except:
+       raise
+
+db = pgdb.connect(user = config['PLC_DB_USER'],
+                  database = config['PLC_DB_NAME'])
+cursor = db.cursor()
+try:
+       for foreign_key in foreign_keys_ordered:
+               primary_key = foreign_keys[foreign_key]
+               sql = "SELECT distinct %s from %s"
+               
+               # get all foreign keys in this table
+               foreign_key_parts = foreign_key.split(".")
+       
+               # do not delete from primary tables
+               if foreign_key_parts[0] in ['addresses', 'boot_states', 'conf_files', \
+                       'keys', 'messages', 'nodegroups', 'nodenetworks', 'nodes', 'pcus', 'peers' \
+                        'persons', 'roles', 'sessions', 'sites', 'slices']:
+                       #print "skipping table %s" % foreign_key_parts[0] 
+                       continue
+
+               cursor.execute(sql % (foreign_key_parts[1], foreign_key_parts[0]))
+               foreign_rows = cursor.fetchall()
+                               
+               # get all the primary keys from this foreign key's primary table 
+               primary_key_parts = primary_key.split(".")
+               # foreign key name may not match primary key name. must rename these
+               if primary_key_parts[1] == 'creator_person_id':
+                       primary_key_parts[1] = 'person_id'
+               elif primary_key_parts[1] == 'min_role_id':
+                       primary_key_parts[1]  = 'role_id'
+               sql = sql % (primary_key_parts[1], primary_key_parts[0])
+               
+               # determin which primary records are deleted
+               desc = os.popen('psql planetlab4 postgres -c "\d %s;"' % primary_key_parts[0])
+                result = desc.readlines()
+               if primary_key_parts[0] in ['slices']:
+                       sql  = sql + " where name not like '%_deleted'"
+               elif filter(lambda line: line.find("deleted") > -1, result):
+                       sql = sql + " where deleted = false"
+
+               cursor.execute(sql)
+               primary_key_rows = cursor.fetchall()
+               
+               # if foreign key isnt present in primay_key query, it either doesnt exist or marked as deleted
+               # also, ignore null foreign keys, not considered zombied
+               zombie_keys_func = lambda key: key not in primary_key_rows and not key == [None]
+               zombie_keys_list = [zombie_key[0] for zombie_key in filter(zombie_keys_func, foreign_rows)]
+               print zombie_keys_list
+               # delete these zombie records
+               if zombie_keys_list:
+                       print " -> Deleting %d zombie record(s) from %s after checking %s" % \
+                                       (len(zombie_keys_list), foreign_key_parts[0], primary_key_parts[0])
+                       sql_delete = 'DELETE FROM %s WHERE %s IN %s' % \
+                       (foreign_key_parts[0], foreign_key_parts[1], tuple(zombie_keys_list))
+                       cursor.execute(sql_delete)
+                       db.commit()
+               #zombie_keys[foreign_key] = zombie_keys_list
+       print "done"
+except pgdb.DatabaseError:
+       raise
diff --git a/trunk/tools/planetlab3_dump.sh b/trunk/tools/planetlab3_dump.sh
new file mode 100755 (executable)
index 0000000..e6a86e3
--- /dev/null
@@ -0,0 +1,119 @@
+#!/bin/bash
+#
+# Dumps the planetlab3 database on zulu, fixing a few things on the way
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2007 The Trustees of Princeton University
+#
+# $Id$
+#
+
+tables=(
+node_bootstates
+nodes
+nodenetworks
+node_nodenetworks
+nodegroups
+nodegroup_nodes
+override_bootscripts
+pod_hash
+conf_file
+conf_assoc
+address_types
+addresses
+organizations
+sites
+roles
+capabilities
+persons
+person_roles
+person_capabilities
+person_address
+key_types
+keys
+person_keys
+person_site
+node_root_access
+authorized_subnets
+site_authorized_subnets
+event_classes
+dslice03_states
+dslice03_attributetypes
+dslice03_slices
+dslice03_attributes
+dslice03_sliceattribute
+dslice03_slicenode
+dslice03_sliceuser
+dslice03_siteinfo
+pcu
+pcu_ports
+join_request
+whatsnew
+node_hostnames
+blacklist
+dslice03_initscripts
+dslice03_defaultattribute
+peered_mas
+sessions
+)
+
+# Dump tables
+for table in "${tables[@]}" ; do
+    pg_dump -U postgres -t $table planetlab3
+done |
+
+# Do some manual cleanup
+sed -f <(cat <<EOF
+# Swap person_id=1 (kfall@cs.berkeley.edu) with person_id=1303 (maint@planet-lab.org)
+/^COPY \(persons\|person_roles\|person_capabilities\|person_address\|person_keys\|person_site\|node_root_access\)/,/^\\\./{
+s/^1\t/1303\t/
+t
+s/^1303\t/1\t/
+t
+}
+/^COPY dslice03_sliceuser/,/^\\\./{
+s/\t1$/\t1303/
+t
+s/\t1303$/\t1/
+t
+}
+
+# Swap person_id=2 (nakao@cs.princeton.edu) with person_id=13342 (root@planet-lab.org)
+/^COPY \(persons\|person_roles\|person_capabilities\|person_address\|person_keys\|person_site\|node_root_access\)/,/^\\\./{
+s/^2\t/13342\t/
+t
+s/^13342\t/2\t/
+t
+}
+/^COPY dslice03_sliceuser/,/^\\\./{
+s/\t2$/\t13342/
+t
+s/\t13342$/\t2/
+t
+}
+
+# Swap site_id=1 (gt) with site_id=90 (pl)
+/^COPY \(sites\|site_authorized_subnets\|dslice03_siteinfo\)/,/^\\\./{
+s/^1\t/90\t/
+t
+s/^90\t/1\t/
+t
+}
+/^COPY \(person_site\|pcu\)/,/^\\\./{
+s/\([^\t]*\t\)1\t/\190\t/
+t
+s/\([^\t]*\t\)90\t/\11\t/
+t
+}
+/^COPY \(dslice03_slices\)/,/^\\\./{
+s/\([^\t]*\t[^\t]*\t\)1\t/\190\t/
+t
+s/\([^\t]*\t[^\t]*\t\)90\t/\11\t/
+t
+}
+EOF
+)
+
+# Dump events and api_log schema only
+pg_dump -U postgres -s -t events planetlab3
+pg_dump -U postgres -s -t api_log planetlab3
diff --git a/trunk/tools/plcdb.3-4.conf b/trunk/tools/plcdb.3-4.conf
new file mode 100644 (file)
index 0000000..9620703
--- /dev/null
@@ -0,0 +1,62 @@
+# configuration file that describes the differences
+
+# new_table_name = field:old_table.field[:required_join_table.join_using:...], ...
+
+DB_VERSION_PREVIOUS = '3'
+
+DB_VERSION_NEW = '4'
+
+sites = 'site_id:sites.site_id, login_base:sites.login_base, name:sites.name, abbreviated_name:sites.abbreviated_name, deleted:sites.deleted, is_public:sites.is_public, max_slices:dslice03_siteinfo.max_slices:dslice03_siteinfo.site_id, latitude:sites.latitude, longitude:sites.longitude, url:sites.url, date_created:sites.date_created'
+
+persons = 'person_id:persons.person_id, email:persons.email, first_name:persons.first_name, last_name:persons.last_name, deleted:persons.deleted, enabled:persons.enabled, password:persons.password, verification_key:persons.verification_key, verification_expires:persons.verification_expires, title:persons.title, phone:persons.phone, url:persons.url, bio:persons.bio'
+
+person_site = 'person_id:person_site.person_id, site_id:person_site.site_id, is_primary:person_site.is_primary'
+
+address_types = 'address_type_id:address_types.address_type_id, name:address_types.name'
+
+addresses = 'address_id:addresses.address_id:addresses.address_type_id=10001, line1:addresses.line1, line2:addresses.line2, line3:addresses.line3, city:addresses.city, state:addresses.state, postalcode:addresses.postalcode, country:addresses.country'
+
+site_address = 'address_id:addresses.address_id, site_id:person_site.site_id:person_address.address_id:person_site.person_id:addresses.address_type_id=10001'
+
+address_address_type = 'address_id:addresses.address_id:addresses.address_type_id=10001, address_type_id:addresses.address_type_id'
+
+key_types = 'key_type:key_types.key_type'
+
+keys = 'key_id:keys.key_id:person_keys.key_id:person_keys.deleted=false, key_type:keys.key_type, key:keys.key, is_blacklisted:keys.is_blacklisted'
+
+person_key = 'person_id:person_keys.person_id:person_keys.deleted=false, key_id:person_keys.key_id'
+
+roles = 'role_id:roles.role_id, name:roles.name'
+
+person_role = 'person_id:person_roles.person_id, role_id:person_roles.role_id'
+
+boot_states = 'boot_state:node_bootstates.boot_state'
+
+nodes = 'node_id:nodes.node_id, hostname:nodes.hostname, site_id:sites.site_id:nodegroup_nodes.node_id:sites.nodegroup_id, boot_state:nodes.boot_state , deleted:nodes.deleted , model:nodes.model , boot_nonce:nodes.boot_nonce, version:nodes.version, ssh_rsa_key:nodes.ssh_rsa_key, key:nodes.key, date_created:nodes.date_created'
+
+nodegroups = 'nodegroup_id:nodegroups.nodegroup_id, name:nodegroups.name, description:nodegroups.description'
+
+nodegroup_node = 'nodegroup_id:nodegroup_nodes.nodegroup_id, node_id:nodegroup_nodes.node_id'
+
+# conf_files = 'conf_file_id:conf_file.conf_file_id, enabled:conf_file.enabled, source:conf_file.source, dest:conf_file.dest, file_permissions:conf_file.file_permissions, file_owner:conf_file.file_owner, file_group:conf_file.file_group, preinstall_cmd:conf_file.preinstall_cmd, postinstall_cmd:conf_file.postinstall_cmd, error_cmd:conf_file.error_cmd, ignore_cmd_errors:conf_file.ignore_cmd_errors, always_update:conf_file.always_update'
+
+# conf_file_node = 'conf_file_id:conf_assoc.conf_file_id, node_id:conf_assoc.node_id'
+
+# conf_file_nodegroup = 'conf_file_id:conf_assoc.conf_file_id, nodegroup_id:conf_assoc.nodegroup_id'
+
+nodenetworks = 'nodenetwork_id:nodenetworks.nodenetwork_id, node_id:node_nodenetworks.node_id:node_nodenetworks.nodenetwork_id, is_primary:node_nodenetworks.is_primary:node_nodenetworks.nodenetwork_id, type:nodenetworks.type, method:nodenetworks.method, ip:nodenetworks.ip, mac:nodenetworks.mac, gateway:nodenetworks.gateway, network:nodenetworks.network, broadcast:nodenetworks.broadcast, netmask:nodenetworks.netmask, dns1:nodenetworks.dns1, dns2:nodenetworks.dns2, bwlimit:nodenetworks.bwlimit, hostname:nodenetworks.hostname'
+
+pcus = 'pcu_id:pcu.pcu_id, site_id:pcu.site_id, hostname:pcu.hostname, ip:pcu.ip, protocol:pcu.protocol, username:pcu.username, password:pcu.password, model:pcu.model, notes:pcu.notes'
+
+pcu_node = 'pcu_id:pcu_ports.pcu_id, node_id:pcu_ports.node_id, port:pcu_ports.port_number'
+
+slices = 'slice_id:dslice03_slices.slice_id, site_id:dslice03_slices.site_id, name:dslice03_slices.name, instantiation:dslice03_states.name:dslice03_states.state_id, url:dslice03_slices.url, description:dslice03_slices.description, max_nodes:dslice03_siteinfo.max_slices:dslice03_siteinfo.site_id, creator_person_id:dslice03_slices.creator_person_id, created:dslice03_slices.created, expires:dslice03_slices.expires, is_deleted:dslice03_slices.is_deleted'
+
+slice_node = 'slice_id:dslice03_slicenode.slice_id, node_id:dslice03_slicenode.node_id'
+
+slice_person = 'slice_id:dslice03_sliceuser.slice_id, person_id:dslice03_sliceuser.person_id'
+
+slice_attribute_types = 'attribute_type_id:dslice03_attributetypes.type_id, name:dslice03_attributetypes.name, description:dslice03_attributetypes.description, min_role_id:dslice03_attributetypes.min_role_id'
+
+slice_attribute = 'slice_attribute_id:dslice03_sliceattribute.attribute_id, slice_id:dslice03_sliceattribute.slice_id, attribute_type_id:dslice03_attributes.type_id:dslice03_attributes.attribute_id, value:dslice03_attributes.value1:dslice03_attributes.attribute_id'
+
diff --git a/trunk/tools/slice_attributes.py b/trunk/tools/slice_attributes.py
new file mode 100755 (executable)
index 0000000..d206098
--- /dev/null
@@ -0,0 +1,282 @@
+#!/usr/bin/env /usr/bin/plcsh
+#
+# Convert old planetlab3 slice attributes and initscripts to new
+# planetlab4 ones.
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id$
+#
+
+import re
+import base64
+
+# Convert nm_net_{exempt_,}{min,max}_rate (bps) to
+# net_{i2_,}{min,max}_rate and net_{i2_,}{min,max}_rate (kbps)
+rename = {'nm_net_min_rate': 'net_min_rate',
+          'nm_net_max_rate': 'net_max_rate',
+          'nm_net_exempt_min_rate': 'net_i2_min_rate',
+          'nm_net_exempt_max_rate': 'net_i2_max_rate'}
+for slice_attribute in GetSliceAttributes({'name': rename.keys()}):
+    id = slice_attribute['slice_attribute_id']
+    name = slice_attribute['name']
+    slice_id = slice_attribute['slice_id']
+
+    # Convert bps to kbps
+    bps = int(slice_attribute['value'])
+    kbps = bps / 1000
+
+    # Add the new attribute
+    if GetSlices([slice_id]):
+        AddSliceAttribute(slice_id, rename[name], str(kbps))
+
+    # Delete the old attribute
+    DeleteSliceAttribute(id)
+
+# Convert nm_net_{exempt_,}avg_rate to
+# net_{i2_,}max_kbyte and net_{i2_,}thresh_kbyte
+rename = {'nm_net_avg_rate': {'max': 'net_max_kbyte',
+                              'thresh': 'net_thresh_kbyte'},
+          'nm_net_exempt_avg_rate': {'max': 'net_i2_max_kbyte',
+                                     'thresh': 'net_i2_thresh_kbyte'}}
+for slice_attribute in GetSliceAttributes({'name': rename.keys()}):
+    id = slice_attribute['slice_attribute_id']
+    name = slice_attribute['name']
+    slice_id = slice_attribute['slice_id']
+
+    # Convert bps to 80% and 100% of max bytes per day
+    bps = int(slice_attribute['value'])
+    max_kbyte = bps * 24 * 60 * 60 / 8 / 1000
+    thresh_kbyte = int(0.8 * max_kbyte)
+
+    # Add the new attribute
+    if GetSlices([slice_id]):
+        AddSliceAttribute(slice_id, rename[name]['max'], str(max_kbyte))
+        AddSliceAttribute(slice_id, rename[name]['thresh'], str(thresh_kbyte))
+
+    # Delete the old attribute
+    DeleteSliceAttribute(id)
+
+# Convert plc_slice_state
+for slice_attribute in GetSliceAttributes({'name': 'plc_slice_state'}):
+    id = slice_attribute['slice_attribute_id']
+    name = slice_attribute['name']
+    slice_id = slice_attribute['slice_id']
+
+    # Add the new attribute
+    if GetSlices([slice_id]):
+        if slice_attribute['value'] == "suspended":
+            AddSliceAttribute(slice_id, 'enabled', "0")
+        else:
+            AddSliceAttribute(slice_id, 'enabled', "1")
+
+    # Delete the old attribute
+    DeleteSliceAttribute(id)
+    
+# Straight renames
+rename = {'nm_cpu_share': 'cpu_share',
+          'nm_disk_quota': 'disk_max',
+          'nm_net_share': 'net_share',
+          'nm_net_exempt_share': 'net_i2_share',
+          'nm_net_max_byte': 'net_max_kbyte',
+          'nm_net_max_thresh_byte': 'net_thresh_kbyte',
+          'nm_net_max_exempt_byte': 'net_i2_max_kbyte',
+          'nm_net_max_thresh_exempt_byte': 'net_i2_thresh_kbyte'}
+for slice_attribute in GetSliceAttributes({'name': rename.keys()}):
+    id = slice_attribute['slice_attribute_id']
+    name = slice_attribute['name']
+    slice_id = slice_attribute['slice_id']
+
+    # Pass straight through
+    value = slice_attribute['value']
+
+    # Add the new attribute
+    if GetSlices([slice_id]):
+        AddSliceAttribute(slice_id, rename[name], value)
+
+    # Delete the old attribute
+    DeleteSliceAttribute(id)
+
+# Update plc_ticket_pubkey attribute
+for slice_attribute in GetSliceAttributes({'name': "plc_ticket_pubkey"}):
+    id = slice_attribute['slice_attribute_id']
+
+    UpdateSliceAttribute(id, """
+MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDKXa72MEKDAnVyzEpKOB1ot2eW
+xG/TG2aa7q/2oy1xf5XMmU9H9uKwO+GoUeinp1BSxgkVRF0VhEGGaqKR9kYQzX0k
+ht4+P2hAr+UyU4cp0NxV4xfmyAbrNKuHVjawMUCu5BH0IkBUC/89ckxk71oROnak
+FbI7ojUezSGr4aVabQIDAQAB
+""".lstrip())
+
+# Delete _deleted and deprecated slice attributes and types
+for attribute_type in GetSliceAttributeTypes():
+    id = attribute_type['attribute_type_id']
+    name = attribute_type['name']
+
+    if name == 'general_prop_share' or \
+       re.match('nm_', name) or \
+       re.search('_deleted$', name):
+        DeleteSliceAttributeType(id)
+        # N.B. Automatically deletes all slice attributes of this type
+
+# Add Proper ops
+proper_ops = [
+    # give Stork permission to mount and unmount client dirs
+    ('arizona_stork', 'mount_dir'),
+    ('arizona_stork', 'set_file_flags pass, "1"'),
+    ('arizona_stork', 'set_file_flags_list "1"'),
+    ('arizona_stork', 'bind_socket sockname=64?:*'),
+    ('arizona_stork2', 'mount_dir'),
+    ('arizona_stork2', 'set_file_flags pass, "1"'),
+    ('arizona_stork2', 'set_file_flags_list "1"'),
+    ('arizona_stork2', 'bind_socket sockname=64?:*'),
+
+    # give CoMon the necessary permissions to run slicestat
+    ('princeton_slicestat', 'exec "root", pass, "/usr/local/planetlab/bin/pl-ps", none'),
+    ('princeton_slicestat', 'exec "root", pass, "/usr/sbin/vtop", "bn1", none'),
+    ('princeton_slicestat', 'open_file file=/proc/virtual/*/cacct'),
+    ('princeton_slicestat', 'open_file file=/proc/virtual/*/limit'),
+    ('princeton_comon', 'open_file file=/var/log/secure'),
+    ('princeton_comon', 'exec "root", pass, "/bin/df", "/vservers", none'),
+
+    # give pl_slicedir access to /etc/passwd
+    ('pl_slicedir', 'open_file pass, "/etc/passwd"'),
+
+    # nyu_d are building a DNS demux so give them access to port 53
+    ('nyu_d', 'bind_socket'),
+    ('nyu_oasis', 'bind_socket'),
+
+    # QA slices need to be able to create and delete bind-mounts
+    ('pl_qa_0', 'mount_dir'),
+    ('pl_qa_1', 'mount_dir'),
+
+    # irb_snort needs packet sockets for tcpdump
+    ('irb_snort', 'create_socket'),
+
+    # uw_ankur is using netlink sockets to do the same thing as netflow
+    ('uw_ankur', 'create_socket'),
+
+    # cornell_codons gets access to port 53 for now
+    ('cornell_codons', 'create_socket'),
+
+    # give Mic Bowman's conf-monitor service read-only access to root fs
+    # and the ability to run df
+    ('idsl_monitor', 'mount_dir "root:/", pass, "ro"'),
+    ('idsl_monitor', 'unmount'),
+    ('idsl_monitor', 'exec "root", pass, "/bin/df", "-P", "/", "/vservers", none'),
+
+    # give Shark access to port 111 to run portmap
+    # and port 955 to run mount
+    ('nyu_shkr', 'bind_socket'),
+    ('nyu_shkr', 'mount_dir "nfs:**:**"'),
+    ('nyu_shkr', 'exec "root", pass, "/bin/umount", "-l", "/vservers/nyu_shkr/**", none'),
+
+    # give tsinghua_lgh access to restricted ports
+    ('tsinghua_lgh', 'bind_socket'),
+
+    # CoDeeN needs port 53 too
+    ('princeton_codeen', 'bind_socket sockname=53:*'),
+
+    # give ucin_load access to /var/log/wtmp
+    ('ucin_load', 'open_file file=/var/log/wtmp*'),
+
+    # give google_highground permission to bind port 81 (and raw sockets)
+    ('google_highground', 'bind_socket'),
+
+    # pl_conf needs access to port 814
+    ('pl_conf', 'bind_socket sockname=814:*'),
+    ('pl_conf', 'open file=/home/*/.ssh/authorized_keys'),
+
+    # give princeton_visp permission to read all packets sent through the
+    # tap0 device
+    ('princeton_visp', 'open file=/dev/net/tun, flags=rw'),
+
+    # The PLB group needs the BGP port
+    ('princeton_iias', 'bind_socket sockname=179:*'),
+    ('princeton_visp', 'bind_socket sockname=179:*'),
+    ('mit_rcp', 'bind_socket sockname=179:*'),
+    ('princeton_bgpmux', 'bind_socket sockname=179:*'),
+    ('princeton_bgpmux2', 'bind_socket sockname=179:*'),
+
+    # PL-VINI group
+    ('mit_rcp', 'exec "root", pass, "/usr/bin/chrt"'),
+    ('princeton_iias', 'exec "root", pass, "/usr/bin/chrt"'),
+
+    # Tycoon needs access to /etc/passwd to determine Slicename->XID mappings
+    ('hplabs_tycoon_aucd', 'open_file file=/etc/passwd'),
+]
+
+for slice, op in proper_ops:
+    try:
+        AddSliceAttribute(slice, 'proper_op', op)
+    except Exception, err:
+        print "Warning: %s:" % slice, err
+
+initscripts = dict([(initscript['initscript_id'], initscript) for initscript in [{'initscript_id': 8, 'script': 'IyEgL2Jpbi9zaA0KDQojIDxQcm9ncmFtIE5hbWU+DQojICAgIGJpbmRzY3JpcHQNCiMNCiMgPEF1dGhvcj4NCiMgICAgSmVmZnJ5IEpvaG5zdG9uIGFuZCBKZXJlbXkgUGxpY2h0YQ0KIw0KIyA8UHVycG9zZT4NCiMgICAgRG93bmxvYWRzIGFuZCBpbnN0YWxscyBzdG9yayBvbiBhIG5vZGUuDQoNCiMgc2F2ZSBvcmlnaW5hbCBQV0QNCk9MRFBXRD0kUFdEDQoNCiMgZXJyb3IgcmVwb3J0aW5nIGZ1bmN0aW9uDQplcnJvcigpDQp7DQogICBlY2hvDQogICBlY2hvICJQbGVhc2UgRS1tYWlsIHN0b3JrLXN1cHBvcnRAY3MuYXJpem9uYS5lZHUgaWYgeW91IGJlbGlldmUgeW91IGhhdmUiIA0KICAgZWNobyAicmVjZWl2ZWQgdGhpcyBtZXNzYWdlIGluIGVycm9yLiINCg0KICAgIyBnZXQgcmlkIG9mIENFUlQgZmlsZQ0KICAgaWYgWyAtZiAkQ0VSVCBdDQogICB0aGVuDQogICAgICBybSAtZiAkQ0VSVCA+IC9kZXYvbnVsbA0KICAgZmkNCg0KICAgIyByZXN0b3JlIG9yaWdpbmFsIFBXRA0KICAgY2QgJE9MRFBXRA0KICAgZXhpdCAxDQp9DQoNCkNFUlQ9YHB3ZGAvdGVtcGNydGZpbGUNCg0KI2Z1bmN0aW9ucw0KDQojIyMNCiMjIyBjcmVhdGVDZXJ0aWZpY2F0ZSgpDQojIyMgICAgcHJpbnRzIG91dCB0aGUgZXF1aWZheCBjZXJ0aWZpY2F0ZSB0byB1c2UgYW5kIHN0b3Jlcw0KIyMjICAgIHRoZSBmaWxlIG5hbWUgaW4gJENFUlQNCiMjIw0KZnVuY3Rpb24gY3JlYXRlQ2VydGlmaWNhdGUoKXsNCmNhdCA+ICRDRVJUIDw8RVFVSUZBWA0KLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tDQpNSUlDa0RDQ0FmbWdBd0lCQWdJQkFUQU5CZ2txaGtpRzl3MEJBUVFGQURCYU1Rc3dDUVlEVlFRR0V3SlYNClV6RWNNQm9HQTFVRUNoTVRSWEYxYVdaaGVDQlRaV04xY21VZ1NXNWpMakV0TUNzR0ExVUVBeE1rUlhGMQ0KYVdaaGVDQlRaV04xY21VZ1IyeHZZbUZzSUdWQ2RYTnBibVZ6Y3lCRFFTMHhNQjRYRFRrNU1EWXlNVEEwDQpNREF3TUZvWERUSXdNRFl5TVRBME1EQXdNRm93V2pFTE1Ba0dBMVVFQmhNQ1ZWTXhIREFhQmdOVkJBb1QNCkUwVnhkV2xtWVhnZ1UyVmpkWEpsSUVsdVl5NHhMVEFyQmdOVkJBTVRKRVZ4ZFdsbVlYZ2dVMlZqZFhKbA0KSUVkc2IySmhiQ0JsUW5WemFXNWxjM01nUTBFdE1UQ0JuekFOQmdrcWhraUc5dzBCQVFFRkFBT0JqUUF3DQpnWWtDZ1lFQXV1Y1hrQUpsc1RSVlBFbkNVZFhmcDlFM2o5SG5nWE5CVW1DYm5hRVhKbml0eDdIb0pwUXkNCnRkNHpqVG92Mi9LYWVscHptS05jNmZ1S2N4dGM1OE8vZ0d6TnFmVFdLOEQzK1ptcVk2S3hSd0lQMU9SUg0KT2hJOGJJcGFWSVJ3MjhIRmtNOXlSY3VvV2NETk01MC9vNWJyaFRNaEhENGVQbUJ1ZHB4bmhjWEl3MkVDDQpBd0VBQWFObU1HUXdFUVlKWUlaSUFZYjRRZ0VCQkFRREFnQUhNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHcNCkh3WURWUjBqQkJnd0ZvQVV2cWlnZEhKUWEwUzN5U1BZKzZqL3MxZHJhR3d3SFFZRFZSME9CQllFRkw2bw0Kb0hSeVVHdEV0OGtqMlB1by83TlhhMmhzTUEwR0NTcUdTSWIzRFFFQkJBVUFBNEdCQUREaUFWR3F4K3BmDQoycm5RWlE4dzFqN2FEUlJKYnBHVEp4UXg3OFQzTFVYNDdNZS9va0VOSTdTUytSa0FaNzBCcjgzZ2NmeGENCnoyVEU0SmFZMEtOQTRnR0s3eWNIOFdVQmlrUXRCbVYxVXNDR0VDQWhYMnhyRDJ5dUNSeXY4cUlZTk1SMQ0KcEhNYzhZM2M3NjM1czNhMGtyL2NsUkFldnN2SU8xcUVZQmxXbEtsVg0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLSANCkVRVUlGQVgNCn0NCg0KIyMjDQojIyMgb3ZlcldyaXRlQ29uZigpDQojIyMJb3ZlcndyaXRlIHRoZSBkZWZhdWx0IHN0b3JrLmNvbmYgZmlsZQ0KIyMjICAgICB0aGF0IHdhcyBpbnN0YWxsZWQgYnkgdGhlIHJwbSBwYWNrYWdlLg0KIyMjICAgICB0aGlzIGlzIGEgdGVtcG9yYXJ5IGhhY2sgYmVjYXVzZSBJIG5lZWQNCiMjIyAgICAgdG8gY2hhbmdlIHRoZSBuZXN0cG9ydCBhbmQgSSBkb250IGtub3cNCiMjIyAgICAgZW5vdWdoIHRvIHJlcGFja2FnZSB0aGUgcnBtIHdpdGggdGhlDQojIyMgICAgIGNvcnJlY3Qgc2V0dGluZ3MNCmZ1bmN0aW9uIG92ZXJXcml0ZUNvbmYoKXsNCmNhdCA+IC91c3IvbG9jYWwvc3RvcmsvZXRjL3N0b3JrLmNvbmYgPDxFTkRPRkZJTEUNCnBhY21hbj0vdXNyL2xvY2FsL3N0b3JrL2Jpbi9wYWNtYW4NCmR0ZC1wYWNrYWdlcz0vdXNyL2xvY2FsL3N0b3JrL2Jpbi9wYWNrYWdlcy5kdGQNCmR0ZC1ncm91cHM9L3Vzci9sb2NhbC9zdG9yay9iaW4vZ3JvdXBzLmR0ZA0Kc3RvcmtuZXN0dXBkYXRlbGlzdGVuZXJwb3J0PTY0OQ0KDQojYml0dG9ycmVudHRyYWNrZXJob3N0PXF1YWRydXMuY3MuYXJpem9uYS5lZHUNCmJpdHRvcnJlbnR0cmFja2VyaG9zdD1ucjA2LmNzLmFyaXpvbmEuZWR1DQoNCmJpdHRvcnJlbnR0cmFja2VycG9ydD02ODgwDQpiaXR0b3JyZW50dXBsb2FkcmF0ZT0wDQpiaXR0b3JyZW50c2VlZGxvb2t1cHRpbWVvdXQ9MzANCg0KI3BhY2thZ2VyZXBvc2l0b3J5ID0gcXVhZHJ1cy5jcy5hcml6b25hLmVkdS9QbGFuZXRMYWIvVjN8ZGlzdCwgc3RhYmxlDQpwYWNrYWdlcmVwb3NpdG9yeSA9IG5yMDYuY3MuYXJpem9uYS5lZHUvUGxhbmV0TGFiL1YzfGRpc3QsIHN0YWJsZQ0KI3BhY2thZ2VpbmZvcmVwb3NpdG9yeSA9IHF1YWRydXMuY3MuYXJpem9uYS5lZHUvUGxhbmV0TGFiL1YzL3N0b3JrLmluZm8NCnBhY2thZ2VpbmZvcmVwb3NpdG9yeSA9IG5yMDYuY3MuYXJpem9uYS5lZHUvUGxhbmV0TGFiL1YzL3N0b3JrLmluZm8NCg0KdXNlcm5hbWUgPSBQbGFuZXRMYWINCnB1YmxpY2tleWZpbGUgPSAvdXNyL2xvY2FsL3N0b3JrL3Zhci9rZXlzL1BsYW5ldExhYi5wdWJsaWNrZXkNCnBhY2thZ2VtYW5hZ2VycyA9IG5lc3RycG0sIHJwbSwgdGFyZ3oNCnRyYW5zZmVybWV0aG9kPSBuZXN0LGJpdHRvcnJlbnQsY29ibGl0eixjb3JhbCxodHRwLGZ0cA0KbmVzdHBvcnQ9NjAwMA0KdGFycGFja2luZm9wYXRoPS91c3IvbG9jYWwvc3RvcmsvdmFyL3RhcmluZm8NCkVORE9GRklMRQ0KfSANCg0KDQojIyMNCiMjIyBkb3dubG9hZE5SMDYoKQ0KIyMjICAgIGRvd25sb2FkIGEgZmlsZSBmcm9tIG5yMDYgdXNpbmcgY3VybA0KIyMjDQojIyMgYXJnczogDQojIyMgICAgICAgLSB0aGUgcGF0aCBvZiB0aGUgZmlsZSB5b3Ugd2lzaCB0byBkb3dubG9hZA0KIyMjICAgICAgICAgcmVsYXRpdmUgZnJvbSBodHRwczovL25yMDYuY3MuYXJpem9uYS5lZHUNCiMjIyAgICAgICAtIHRoZSBmaWxlIHRvIHNhdmUgaXQgdG8NCiMjIyAgICAgICAtIHJldHVybmVkIHZhbHVlIGFzIHNwZWNpZmllZCBpbiB2ZXJpZnlEb3dubG9hZA0KZnVuY3Rpb24gZG93bmxvYWROUjA2KCl7DQogICAgY3VybCAtLWNhY2VydCAkQ0VSVCBodHRwczovL25yMDYuY3MuYXJpem9uYS5lZHUvJDEgLW8gJDIgMj4vZGV2L251bGwNCiAgICB2ZXJpZnlEb3dubG9hZCAkMiAkMw0KfQ0KDQojIyMNCiMjIyB2ZXJpZnlEb3dubG9hZCgpDQojIyMgICAgIHZlcmlmeSB0aGF0IGEgZmlsZSB0aGF0IHdhcyBqdXN0IGRvd25sb2FkIHdpdGggZG93bmxvYWROUjA2DQojIyMgICAgIHdhcyBkb3dubG9hZCBjb3JyZWN0bHkuIFNpbmNlIHdlIGFyZSBnZXR0aW5nIHN0dWZmIGZyb20gYQ0KIyMjICAgICBodHRwIHNlcnZlciB3ZSBhcmUgYXNzdW1pbmcgdGhhdCBpZiB3ZSBnZXQgYSA0MDQgcmVzcG9uc2UNCiMjIyAgICAgdGhhdCB0aGUgcGFnZSB3ZSB3YW50IGRvZXMgbm90IGV4aXN0LiBBbHNvLCBpZiB0aGUgb3V0cHV0IGZpbGUNCiMjIyAgICAgZG9lcyBub3QgZXhpc3QgdGhhdCBtZWFucyB0aGF0IG9ubHkgaGVhZGVycyB3ZXJlIHJldHVybmVkDQojIyMgICAgIHdpdGhvdXQgYW55IGNvbnRlbnQuIHRoaXMgdG9vIGlzIGEgaW52YWxpZCBmaWxlIGRvd25sb2FkDQojIyMNCiMjIyBhcmdzOg0KIyMjICAgICAgIC0gdGhlIGZpbGUgdG8gdmVyaWZ5DQojIyMgICAgICAgLSByZXR1cm4gdmFyaWFibGUsIHdpbGwgaGF2ZSAxIGlmIGZhaWwgMCBpZiBnb29kDQojIyMNCmZ1bmN0aW9uIHZlcmlmeURvd25sb2FkKCl7DQogICAgZXZhbCAiJDI9MCINCiAgICBpZiBbICEgLWYgJDEgXTsNCiAgICB0aGVuDQogICAgICAgIGV2YWwgIiQyPTEiDQogICAgZWxpZiBncmVwICc0MDQgTm90IEZvdW5kJyAkMSA+IC9kZXYvbnVsbA0KICAgIHRoZW4NCglybSAtZiAkMQ0KICAgICAgICBldmFsICIkMj0xIg0KICAgIGVsc2UNCiAgICAgICAgZXZhbCAiJDI9MCINCiAgICBmaQ0KfQ0KDQoNCiMgY2hlY2sgZm9yIHJvb3QgdXNlcg0KaWYgWyAkVUlEIC1uZSAiMCIgXQ0KdGhlbg0KICAgZWNobyAiWW91IG11c3QgcnVuIHRoaXMgcHJvZ3JhbSB3aXRoIHJvb3QgcGVybWlzc2lvbnMuLi4iDQogICBlcnJvcg0KZmkgICANCiANCiMgY2xlYW4gdXAgaW4gY2FzZSB0aGlzIHNjcmlwdCB3YXMgcnVuIGJlZm9yZSBhbmQgZmFpbGVkDQpybSAtcmYgL3RtcC9zdG9yayAmPiAvZGV2L251bGwNCg0KIyBjcmVhdGUgL3RtcC9zdG9yayBkaXJlY3RvcnkNCm1rZGlyIC90bXAvc3RvcmsgDQppZiBbICQ/IC1uZSAiMCIgXQ0KdGhlbg0KICAgZWNobw0KICAgZWNobyAiQ291bGQgbm90IGNyZWF0ZSB0aGUgL3RtcC9zdG9yayBkaXJlY3RvcnkuLi4iDQogICBlcnJvcg0KZmkNCg0KIyBleHBvcnQgb3VyIHJvb3QgZGlyZWN0b3J5IHRvIFN0b3JrDQplY2hvICJhcml6b25hX3N0b3JrMiIgPiAvLmV4cG9ydGRpcg0KaWYgWyAkPyAtbmUgIjAiIF0NCnRoZW4NCiAgIGVjaG8NCiAgIGVjaG8gIkNvdWxkIG5vdCBjcmVhdGUgdGhlIC8uZXhwb3J0ZGlyIGZpbGUuLi4iDQogICBlcnJvcg0KZmkNCiANCiMgdGVsbCBzdG9yayB0aGF0IHdlIHdhbnQgdG8gYmUgc2VydmVkDQppZiBbIC1mIC9ldGMvc2xpY2VuYW1lIF0NCnRoZW4NCiAgIFNMSUNFTkFNRT1gY2F0IC9ldGMvc2xpY2VuYW1lYA0KZWxzZSANCiAgIFNMSUNFTkFNRT0kVVNFUg0KZmkNCndnZXQgLU8gL3RtcC9zdG9yay8kU0xJQ0VOQU1FICJodHRwOi8vbG9jYWxob3N0OjY0OC8kU0xJQ0VOQU1FXCRiaW5kc2NyaXB0Ig0KDQojIHZlcmlmeSB0aGF0IHRoZSBkb3dubG9hZCB3YXMgc3VjY2Vzc2Z1bA0KaWYgWyAhIC1mIC90bXAvc3RvcmsvJFNMSUNFTkFNRSAtbyAkPyAtbmUgMCBdDQp0aGVuDQogICBlY2hvDQogICBlY2hvICJTdG9yayBkb2Vzbid0IHNlZW0gdG8gYmUgcnVubmluZyBvbiB0aGlzIG5vZGUuLi4iDQogICBlcnJvcg0KZmkNCg0KIyB3YWl0IGZvciBzdG9yayBzbGljZSANCmVjaG8gIldhaXRpbmcgZm9yIFN0b3JrIHRvIGFjY2VwdCBvdXIgYmluZGluZy4uLiINCndoaWxlIFsgISAtZiAvdG1wL3N0b3JrL3N0b3JrX3NheXNfZ28gXQ0KZG8NCiAgIHNsZWVwIDENCmRvbmUNCg0KIyBjaGFuZ2UgUFdEIHRvIHRoZSAvdG1wL3N0b3JrIGRpcmVjdG9yeSANCmNkIC90bXAvc3RvcmsNCmlmIFsgJD8gLW5lICIwIiBdDQp0aGVuDQogICBlY2hvDQogICBlY2hvICJDb3VsZCBub3QgYWNjZXNzIHRoZSAvdG1wL3N0b3JrIGRpcmVjdG9yeS4uLiINCiAgIGVycm9yDQpmaQ0KDQojIGNvbmZpcm0gdGhhdCBwYWNrYWdlcyB0byBiZSBpbnN0YWxsZWQgYWN0dWFsbHkgZXhpc3QNCmlmIGVjaG8gKi5ycG0gfCBncmVwICcqJyA+IC9kZXYvbnVsbA0KdGhlbg0KICAgZWNobw0KICAgZWNobyAiRXJyb3I6IFN0b3JrIHBhY2thZ2UgZG93bmxvYWQgZmFpbGVkLi4uIg0KICAgZXJyb3INCmZpDQoNCiMgcmVtb3ZlIFN0b3JrIHBhY2thZ2VzIGFuZCBmaWxlcw0KZWNobw0KZWNobyAiUmVtb3ZpbmcgU3RvcmsgZmlsZXMuLi4iDQoNCiMgYnVpbGQgYSBsaXN0IG9mIHBhY2thZ2VzIHRvIHJlbW92ZQ0KcGFja2FnZXM9IiINCmZvciBmaWxlbmFtZSBpbiAqLnJwbQ0KZG8NCiAgIyBjb252ZXJ0IGZpbGVuYW1lIHRvIGEgcGFja2FnZSBuYW1lDQogIHBhY2s9YHJwbSAtcXAgLS1xZiAiJXtOQU1FfVxuIiAkZmlsZW5hbWVgDQogIGlmIFsgJD8gLWVxICIwIiBdDQogIHRoZW4NCiAgICBwYWNrYWdlcz0iJHBhY2thZ2VzICRwYWNrIg0KICBmaQ0KZG9uZSAgIA0KDQojIHJlbW92ZSBvbGQgU3RvcmsgcGFja2FnZXMNCnJwbSAtZSAkcGFja2FnZXMgJj4gL2Rldi9udWxsDQoNCiMgcmVtb3ZlIGFueXRoaW5nIGxlZnQgaW4gL3Vzci9sb2NhbC9zdG9yay9iaW4NCnJtIC1yZiAvdXNyL2xvY2FsL3N0b3JrL2Jpbi8qICY+IC9kZXYvbnVsbCANCg0KIyBpbnN0YWxsIFN0b3JrIHBhY2thZ2VzDQplY2hvDQplY2hvICJJbnN0YWxsaW5nIHBhY2thZ2VzLi4uIiANCg0KIyBidWlsZCBhIGxpc3Qgb2YgcGFja2FnZXMgdG8gaW5zdGFsbA0KcGFja2FnZXM9IiINCmZvciBmaWxlbmFtZSBpbiAqLnJwbQ0KZG8NCiAgcGFja2FnZXM9IiRwYWNrYWdlcyAkZmlsZW5hbWUiDQpkb25lICAgDQoNCiMgaW5zdGFsbCB0aGUgbmV3IHN0b3JrIHBhY2thZ2VzDQpycG0gLWkgJHBhY2thZ2VzDQoNCiMgcmVwb3J0IHBhY2thZ2UgaW5zdGFsbGF0aW9uIGVycm9ycw0KaWYgWyAkPyAtbmUgIjAiIF0NCnRoZW4NCiAgZWNobyAiV2FybmluZzogUG9zc2libGUgZXJyb3IgaW5zdGFsbGluZyBTdG9yayBwYWNrYWdlcy4uLiINCmZpDQoNCiMgcmVzdG9yZSBvcmlnaW5hbCBQV0QNCmNkICRPTERQV0QNCg0KIyBjbGVhbiB1cCB0ZW1wb3JhcnkgZmlsZXMNCnJtIC1yZiAvdG1wL3N0b3JrICY+IC9kZXYvbnVsbA0KDQojIFNFRSBUTy1ETyAxDQojY3JlYXRlIHRoZSBlcXVpZmF4IGNlcnRpZmljYXRlIHRvIHVzZSBmb3IgY3VybA0KI2NyZWF0ZUNlcnRpZmljYXRlDQoNCiMgVE8tRE8gMQ0KIyBpbXBsZW1lbnQgdGhlIGJlbG93IGluIHRoZSBiZWdnaW5pbmcgb2Ygc3RvcmsucHkNCiNhdHRlbXB0IHRvIGRvd25sb2FkIHRoZSB1c2VycyBwdWJsaWMga2V5IGZyb20gdGhlIHJlcG9zaXRvcnkNCiNkb3dubG9hZE5SMDYgInVzZXItdXBsb2FkL3B1YmtleXMvJFNMSUNFTkFNRS5wdWJsaWNrZXkiICIvdXNyL2xvY2FsL3N0b3JrL3Zhci8kU0xJQ0VOQU1FLnB1YmxpY2tleSIgUkVUDQoNCiNpZiBbICRSRVQgLW5lIDAgXTsNCiN0aGVuDQojICAgZWNobw0KIyAgIGVjaG8gIkNvdWxkIG5vdCBmZXRjaCB5b3VyIHB1YmxpYyBrZXkgZnJvbSB0aGUgcmVwb3NpdG9yeS4iDQojICAgZWNobyAiSWYgeW91IHdhbnQgdG8gdXBsb2FkIG9uZSBmb3IgdGhlIG5leHQgdGltZSB5b3UgcnVuIg0KIyAgIGVjaG8gInRoZSBpbml0c2NyaXB0IHBsZWFzZSB2aXNpdCINCiMgICBlY2hvICJodHRwOi8vbnIwNi5jcy5hcml6b25hLmVkdS90ZXN0cGhwL3VwbG9hZC5waHAiDQojICAgZWNobw0KI2ZpDQoNCiNhdHRlbXB0IHRvIGRvd25sb2FkIHRoZSB1c2VycyBzdG9yay5jb25mIGZpbGUgZnJvbSB0aGUgcmVwb3NpdG9yeQ0KI2Rvd25sb2FkTlIwNiAidXNlci11cGxvYWQvY29uZi8kU0xJQ0VOQU1FLnN0b3JrLmNvbmYiICIvdXNyL2xvY2FsL3N0b3JrL2V0Yy9zdG9yay5jb25mLnVzZXJzIiBSRVQNCg0KI2lmIFsgJFJFVCAtbmUgMCBdOw0KI3RoZW4NCiMgICBlY2hvDQojICAgZWNobyAiQ291bGQgbm90IGZldGNoIHlvdXIgc3RvcmsuY29uZiBmaWxlIGZyb20gdGhlIHJlcG9zaXRvcnkuIg0KIyAgIGVjaG8gIklmIHlvdSB3YW50IHRvIHVwbG9hZCBvbmUgZm9yIHRoZSBuZXh0IHRpbWUgeW91IHJ1biINCiMgICBlY2hvICJ0aGUgaW5pdHNjcmlwdCBwbGVhc2UgdmlzaXQiDQojICAgZWNobyAiaHR0cDovL25yMDYuY3MuYXJpem9uYS5lZHUvdGVzdHBocC91cGxvYWQucGhwIg0KIyAgIGVjaG8gIlN0b3JrIHdpbGwgd29yayB3aXRob3V0IGEgY29uZmlndXJhdGlvbiBmaWxlIGJ1dCB0byBtYWtlIG9uZSINCiMgICBlY2hvICJwbGVhc2UgcGxhY2UgYSBmaWxlIG5hbWVkIHN0b3JrLmNvbmYgaW4gL3Vzci9sb2NhbC9zdG9yay9ldGMiDQojICAgZWNobyAicmVmZXIgdG8gdGhlIG1hbnVhbCBmb3IgbW9yZSBkaXJlY3Rpb25zIG9yIGVtYWlsOiINCiMgICBlY2hvICJzdG9yay1zdXBwb3J0QGNzLmFyaXpvbmEuZWR1IGZvciBhZGRpdGlvbmFsIGFzc2lzdGFuY2UuIg0KIyAgIGVjaG8NCiNmaQ0KDQojZG9udCBuZWVkIHRvIG92ZXJ3cml0ZSB0aGUgZGVmYXVsdCBjb25mIGZpbGUNCiNiZWNhdXNlIGl0IHNob3VsZCBiZSBmaXhlZCBpbiB0aGUgbmV3IHJwbXMNCiNvdmVyV3JpdGVDb25mDQoNCiMgcnVuIHN0b3JrIHRvIHVwZGF0ZSBrZXlmaWxlcyBhbmQgZG93bmxvYWQgcGFja2FnZSBsaXN0cw0KZWNobw0KZWNobyAiQXR0ZW1wdGluZyB0byBjb21tdW5pY2F0ZSB3aXRoIHN0b3JrLi4uIg0KaWYgc3RvcmsgDQp0aGVuDQogICBlY2hvDQogICBlY2hvICJDb25ncmF0dWxhdGlvbnMsIHlvdSBoYXZlIHN1Y2Nlc3NmdWxseSBib3VuZCB0byBzdG9yayEiDQogICBlY2hvDQogICBlY2hvICJGb3IgaGVscCwgeW91IG1heSB0eXBlIHN0b3JrIC0taGVscCINCiAgIGVjaG8NCiAgICNlY2hvICJUaGVyZSBpcyBhbHNvIGEgc3RvcmtxdWVyeSBjb21tYW5kIHRoYXQgd2lsbCBwcm92aWRlIGluZm9ybWF0aW9uIg0KICAgI2VjaG8gImFib3V0IHBhY2thZ2VzIGluIHRoZSByZXBvc2l0b3J5LiINCiAgIGVjaG8NCiAgIGVjaG8gIkZvciBtb3JlIGhlbHAsIHZpc2l0IHRoZSBzdG9yayBwcm9qZWN0IG9ubGluZSBhdCINCiAgIGVjaG8gImh0dHA6Ly93d3cuY3MuYXJpem9uYS5lZHUvc3RvcmsvLiAgUGxlYXNlIGNvbnRhY3QiDQogICBlY2hvICJzdG9yay1zdXBwb3J0QGNzLmFyaXpvbmEuZWR1IGZvciBhZGRpdGlvbmFsIGFzc2lzdGFuY2UuIiANCiAgICNybSAtZiAkQ0VSVCA+IC9kZXYvbnVsbA0KZWxzZQ0KICAgZWNobw0KICAgZWNobyAiQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIGluc3RhbGwgZmluYWxpemF0aW9uLi4uICBQbGVhc2UgY29udGFjdCINCiAgIGVjaG8gInN0b3JrLXN1cHBvcnRAY3MuYXJpem9uYS5lZHUgZm9yIGFzc2lzdGFuY2UuIg0KICAgI3JtIC1mICRDRVJUID4gL2Rldi9udWxsDQogICBleGl0IDENCmZpDQoNCiMgZG9uZQ0KZXhpdCAwDQo=', 'name': 'arizona_stork_2', 'encoding': 'base64'}, {'initscript_id': 9, 'script': 'IyEvYmluL2Jhc2gNCmNkIC8NCnJtIC1mIHN0YXJ0X3B1cnBsZQ0Kd2dldCBodHRwOi8vd3d3LmNzLnByaW5jZXRvbi5lZHUvfmRlaXNlbnN0L3B1cnBsZS9zdGFydF9wdXJwbGUNCmNobW9kIDc1NSBzdGFydF9wdXJwbGUNCnN1IHByaW5jZXRvbl9wdXJwbGUgLWMgJy4vc3RhcnRfcHVycGxlJw0K', 'name': 'princeton_purple', 'encoding': 'base64'}, {'initscript_id': 6, 'script': 'IyEgL2Jpbi9zaA0KDQojIHNhdmUgb3JpZ2luYWwgUFdEDQpPTERQV0Q9JFBXRA0KDQojIGVycm9yIHJlcG9ydGluZyBmdW5jdGlvbg0KZXJyb3IoKQ0Kew0KICAgZWNobw0KICAgZWNobyAiUGxlYXNlIEUtbWFpbCBzdG9yay1zdXBwb3J0QGNzLmFyaXpvbmEuZWR1IGlmIHlvdSBiZWxpZXZlIHlvdSBoYXZlIiANCiAgIGVjaG8gInJlY2VpdmVkIHRoaXMgbWVzc2FnZSBpbiBlcnJvci4iDQoNCiAgICMgcmVzdG9yZSBvcmlnaW5hbCBQV0QNCiAgIGNkICRPTERQV0QNCiAgIGV4aXQgMQ0KfQ0KDQojIGNoZWNrIGZvciByb290IHVzZXINCmlmIFsgJFVJRCAtbmUgIjAiIF0NCnRoZW4NCiAgIGVjaG8gJ1lvdSBtdXN0IGJlIHJvb3QgdG8gcnVuIHRoaXMgcHJvZ3JhbS4uLicNCiAgIGVycm9yDQpmaSAgIA0KIA0KIyBDbGVhbiB1cCBpbiBjYXNlIEkgcmFuIHRoaXMgYmVmb3JlDQpybSAtZiAvdG1wL3N0b3JrKiA+IC9kZXYvbnVsbCAyPiYxDQoNCiMgRmlyc3Qgb2YgYWxsIGV4cG9ydCBvdXIgcm9vdCBkaXJlY3RvcnkgdG8gU3RvcmsNCmVjaG8gImFyaXpvbmFfc3RvcmsiID4gLy5leHBvcnRkaXINCiANCiMgTm93IHRlbGwgc3RvcmsgdGhhdCB3ZSB3YW50IHRvIGJlIHNlcnZlZA0KaWYgWyAtZiAvZXRjL3NsaWNlbmFtZSBdDQp0aGVuDQogICBTTElDRU5BTUU9YGNhdCAvZXRjL3NsaWNlbmFtZWANCmVsc2UgDQogICBTTElDRU5BTUU9JFVTRVINCmZpDQoNCndnZXQgaHR0cDovL2xvY2FsaG9zdDo2NDAvJFNMSUNFTkFNRQ0KDQojIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgZG93bmxvYWQgd2FzIHN1Y2Nlc3NmdWwNCmlmIFsgISAtZiAkU0xJQ0VOQU1FIC1vICQ/IC1uZSAwIF0NCnRoZW4NCiAgIGVjaG8NCiAgIGVjaG8gIlN0b3JrIGRvZXNuJ3Qgc2VlbSB0byBiZSBydW5uaW5nIG9uIHRoaXMgbm9kZS4uLiINCiAgIGVycm9yDQpmaQ0KDQojIHdhaXQgZm9yIHN0b3JrIHNsaWNlIA0KZWNobyAiV2FpdGluZyBmb3IgU3RvcmsgdG8gYWNjZXB0IG91ciBiaW5kaW5nLi4uIg0Kd2hpbGUgWyAhIC1mIC90bXAvc3Rvcmtfc2F5c19nbyBdDQpkbw0KICAgc2xlZXAgMQ0KZG9uZQ0KDQojIGNoYW5nZSBQV0QgdG8gdGhlIC90bXAgZGlyZWN0b3J5IA0KY2QgL3RtcA0KaWYgWyAkPyAtbmUgIjAiIF0NCnRoZW4NCiAgIGVjaG8NCiAgIGVjaG8gIkNvdWxkIG5vdCBhY2Nlc3MgdGhlIC90bXAgZGlyZWN0b3J5Li4uIg0KICAgZXJyb3INCmZpDQoNCiMgY29uZmlybSB0aGF0IHBhY2thZ2VzIHRvIGJlIGluc3RhbGxlZCBhY3R1YWxseSBleGlzdA0KaWYgZWNobyAqLnJwbSB8IGdyZXAgJyonID4gL2Rldi9udWxsDQp0aGVuDQogICBlY2hvDQogICBlY2hvICJFcnJvcjogU3RvcmsgcGFja2FnZSBkb3dubG9hZCBmYWlsZWQuLi4iDQogICBlcnJvcg0KZmkNCg0KIyBpbnN0YWxsIFN0b3JrIHBhY2thZ2VzDQplY2hvICJJbnN0YWxsaW5nIHBhY2thZ2VzLi4uIiANCmZvciBwYWNrIGluICoucnBtDQpkbw0KICAgIyByZW1vdmUgdGhlIG9sZCBzdG9yayBwYWNrYWdlLCBpZiBhbnkNCiAgIHJwbSAtZSBgcnBtIC1xcCAtLXFmICIle05BTUV9XG4iICRwYWNrYCA+IC9kZXYvbnVsbCAyPiYxDQoNCiAgICMgcmVtb3ZlIGFueXRoaW5nIGxlZnQgaW4gL3Vzci9sb2NhbC9zdG9yay9iaW4NCiAgIHJtIC1yZiAvdXNyL2xvY2FsL3N0b3JrL2Jpbi8qID4gL2Rldi9udWxsIDI+JjENCg0KICAgIyBpbnN0YWxsIHRoZSBuZXcgc3RvcmsgcGFja2FnZQ0KICAgcnBtIC1pICRwYWNrDQoNCiAgICMgcmVwb3J0IHBhY2thZ2UgaW5zdGFsbGF0aW9uIGVycm9ycw0KICAgaWYgWyAkPyAtbmUgIjAiIF0NCiAgIHRoZW4NCiAgICAgZWNobyAiV2FybmluZzogUG9zc2libGUgZXJyb3IgaW5zdGFsbGluZyBTdG9yayBwYWNrYWdlOiAkcGFjay4uLiINCiAgIGZpDQpkb25lDQoNCiMgcmVzdG9yZSBvcmlnaW5hbCBQV0QNCmNkICRPTERQV0QNCg0KIyBjbGVhbiB1cCB0ZW1wb3JhcnkgZmlsZXMNCnJtIC1mIC90bXAvc3RvcmsqID4gL2Rldi9udWxsIDI+JjENCnJtICRTTElDRU5BTUUqIA0KDQojIHJ1biBzdG9yayB0byB1cGRhdGUga2V5ZmlsZXMgYW5kIGRvd25sb2FkIHBhY2thZ2UgbGlzdHMNCmVjaG8gIkF0dGVtcHRpbmcgdG8gY29tbXVuaWNhdGUgd2l0aCBzdG9yay4uLiINCmlmIHN0b3JrIA0KdGhlbg0KICAgZWNobw0KICAgZWNobyAiQ29uZ3JhdHVsYXRpb25zLCB5b3UgaGF2ZSBzdWNjZXNzZnVsbHkgYm91bmQgdG8gc3RvcmshIg0KICAgZWNobw0KICAgZWNobyAiRm9yIGhlbHAsIHlvdSBtYXkgdHlwZSBzdG9yayAtLWhlbHAgIg0KICAgZWNobw0KICAgZWNobyAiVGhlcmUgaXMgYWxzbyBhIHN0b3JrcXVlcnkgY29tbWFuZCB0aGF0IHdpbGwgcHJvdmlkZSBpbmZvcm1hdGlvbiINCiAgIGVjaG8gImFib3V0IHBhY2thZ2VzIGluIHRoZSByZXBvc2l0b3J5LiINCiAgIGVjaG8NCiAgIGVjaG8gIkZvciBtb3JlIGhlbHAsIHZpc2l0IHRoZSBzdG9yayBwcm9qZWN0IG9ubGluZSBhdCINCiAgIGVjaG8gImh0dHA6Ly93d3cuY3MuYXJpem9uYS5lZHUvc3RvcmsvLiAgUGxlYXNlIGNvbnRhY3QiDQogICBlY2hvICJzdG9yay1zdXBwb3J0QGNzLmFyaXpvbmEuZWR1IGZvciBhZGRpdGlvbmFsIGFzc2lzdGFuY2UuIiANCmVsc2UNCiAgIGVjaG8NCiAgIGVjaG8gIkFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBpbnN0YWxsIGZpbmFsaXphdGlvbi4uLiAgUGxlYXNlIGNvbnRhY3QiDQogICBlY2hvICJzdG9yay1zdXBwb3J0QGNzLmFyaXpvbmEuZWR1IGZvciBhc3Npc3RhbmNlLiINCiAgIGV4aXQgMQ0KZmkNCg0KIw0KIyBIZWxsbyBXb3JsZCBkZW1vIGNvZGUNCiMNCg0KIyBQdWJsaWMga2V5IGZvciB0aGlzIGRlbW8NCmNhdCA+L3Vzci9sb2NhbC9zdG9yay92YXIva2V5cy9oZWxsby5wdWJsaWNrZXkgPDwiRU9GIg0KLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0NCk1Gd3dEUVlKS29aSWh2Y05BUUVCQlFBRFN3QXdTQUpCQU1XcVE3K2VxQVljNlRPSUJPbkJyRnZqYjlnRVViaWgNCkkxd0Nyeld4a09aa01BcXFmY1RuMW9tcCtLMGd0cUtBK3VaNEIzRGlQRXI0Q0V0Myt5MmJlMGtDQXdFQUFRPT0NCi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQ0KRU9GDQpzZWQgLWkgLWUgJ3MvXnVzZXJuYW1lLiovdXNlcm5hbWUgPSBoZWxsby8nIC91c3IvbG9jYWwvc3RvcmsvZXRjL3N0b3JrLmNvbmYNCg0KIyBJbnN0YWxsIFJQTQ0Kc3RvcmsgdXBncmFkZSBoZWxsbw0KDQojIGVuZA0KZXhpdCAwDQo=', 'name': 'princeton_hello_stork', 'encoding': 'base64'}, {'initscript_id': 10, 'script': 'IyEvYmluL2Jhc2gNCg0KIyBJbml0IHNjcmlwdCBmb3IgdGhlIFBsYW5ldExhYiAiSGVsbG8gV29ybGQiIGRlbW8gdXNpbmcgR29vZ2xlIEVhcnRoLg0KIyBJbnN0YWxscyBhIGNyb250YWIgZW50cnkgb24gdGhlIG5vZGUgdGhhdCBwaG9uZXMgaG9tZSB0byB0aGUgc2VydmVyDQojIGV2ZXJ5IHRocmVlIG1pbnV0ZXMuDQoNClNFUlZFUj0xMjguMTEyLjEzOS43Mzo4MDQyCQkjIHBsYW5ldGxhYi0zLmNzLnByaW5jZXRvbi5lZHUNCg0KL3Vzci9iaW4vY3VybCAtcyBodHRwOi8vJFNFUlZFUi8NCmVjaG8gIiovNSAqICogKiAqIC91c3IvYmluL2N1cmwgLXMgaHR0cDovLyRTRVJWRVIvIiB8IGNyb250YWIgLQ0KL3NiaW4vY2hrY29uZmlnIGNyb25kIG9uDQo=', 'name': 'princeton_hello', 'encoding': 'base64'}]])
+
+# Convert plc_initscript.initscript_id to raw initscript attribute
+for slice_attribute in GetSliceAttributes({'name': 'plc_initscript'}):
+    id = slice_attribute['slice_attribute_id']
+    slice_id = slice_attribute['slice_id']
+    initscript_id = int(slice_attribute['value'])
+
+    # Delete old attribute
+    DeleteSliceAttribute(id)
+
+    if initscript_id not in initscripts:
+        print "Warning: Missing initscript %d" % initscript_id
+        continue
+
+    initscript = base64.b64decode(initscripts[initscript_id]['script'])
+
+    # Add as initscript attribute
+    AddSliceAttribute(slice_id, 'initscript', initscript)
+
+# Add our custom yum.conf entries
+conf_file_id = AddConfFile({
+    'enabled': True,
+    'source': 'PlanetLabConf/yum.conf.php?gpgcheck=1&alpha',
+    'dest': '/etc/yum.conf',
+    'file_permissions': '644',
+    'file_owner': 'root',
+    'file_group': 'root',
+    'preinstall_cmd': '',
+    'postinstall_cmd': '',
+    'error_cmd': '',
+    'ignore_cmd_errors': False,
+    'always_update': False})
+AddConfFileToNodeGroup(conf_file_id, 'Alpha')
+
+conf_file_id = AddConfFile({
+    'enabled': True,
+    'source': 'PlanetLabConf/yum.conf.php?gpgcheck=1&beta',
+    'dest': '/etc/yum.conf',
+    'file_permissions': '644',
+    'file_owner': 'root',
+    'file_group': 'root',
+    'preinstall_cmd': '',
+    'postinstall_cmd': '',
+    'error_cmd': '',
+    'ignore_cmd_errors': False,
+    'always_update': False})
+AddConfFileToNodeGroup(conf_file_id, 'Beta')
+
+conf_file_id = AddConfFile({
+    'enabled': True,
+    'source': 'PlanetLabConf/yum.conf.php?gpgcheck=1&rollout',
+    'dest': '/etc/yum.conf',
+    'file_permissions': '644',
+    'file_owner': 'root',
+    'file_group': 'root',
+    'preinstall_cmd': '',
+    'postinstall_cmd': '',
+    'error_cmd': '',
+    'ignore_cmd_errors': False,
+    'always_update': False})
+AddConfFileToNodeGroup(conf_file_id, 'Rollout')
+
+# Add OneLab as a peer
+onelab = {'peername': u'OneLab', 'peer_url': u'https://onelab-plc.inria.fr/PLCAPI/', 'key': u'-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1.4.5 (GNU/Linux)\n\nmQGiBEW0kJMRBACaTlrW0eYlQwkzRuMFfEYMwyqBT9Bm6R4g68SJ5GdjCRu3XCnd\nGTGCFF4ewOu6IcUmZDv39eqxShBWyx+JqBogYPGNvPrj07jXXKaSBCM7TPk+9kMW\nPziIxSClvO15XaPKv89c6kFaEBe0z1xsoMB/TNoLmhFUxmc24O7JnEqmYwCgjzIS\nHP7u9KIOYk1ZlTdOtwyRxVkD/1uYbPzD0Qigf8uF9ADzx7I4F1ATd2ezYq0EfzhD\nTDa15FPWwA7jm+Mye//ovT01Ju6JQtCU4N9wRsV2Yy2tWcWFZiYt+BISPVS0lJDx\nQ2Cd2+kEWyl9ByL9/ACHmCUz0OOaz9j1x+GpJLArjUdZSJOs68kPw90F62mrLHfg\nYCHpA/0ZcdJQG9QYNZ67KMFqNPho+uRww5/7kxQ4wkSyP7EK3QUVgXG5OWZ/1mPZ\njon9N04nnjrL9qoQv7m04ih3rmqyGy1MsicNCoys0RNh1eavPdAsXD1ZEXnWPA7z\naC37hxUaRPP3hH+1ifjPpAWQX1E89MK2y2zQpZipvEOAO2Lw8LRCT25lTGFiIENl\nbnRyYWwgKGh0dHA6Ly9vbmVsYWItcGxjLmlucmlhLmZyLykgPHN1cHBvcnRAb25l\nLWxhYi5vcmc+iGAEExECACAFAkW0kJMCGyMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX\ngAAKCRBuu7E0vzFd9fvbAJ9QB2neTSbAN5HuoigIbuKzTUCTjQCeM/3h7/OmjD+z\n6yXtWD4Fzyfr7fSIYAQTEQIAIAUCRbibbAIbIwYLCQgHAwIEFQIIAwQWAgMBAh4B\nAheAAAoJEG67sTS/MV31w3AAn2t6qb94HIPmqCoD/ptK34Dv+VW0AJ4782ffPPnk\nbVXHU/Sx31QCoFmj34hgBBMRAgAgBQJFtJJBAhsjBgsJCAcDAgQVAggDBBYCAwEC\nHgECF4AACgkQbruxNL8xXfU5UQCeKqXWeNzTqdMqj/qHPkp1JCb+isEAn2AzDnde\nITF0aYd02RAKsU4sKePEtEJPbmVMYWIgQ2VudHJhbCAoaHR0cDovL29uZWxhYi1w\nbGMuaW5yaWEuZnIvKSA8c3VwcG9ydEBvbmUtbGFiLm9yZz6IYAQTEQIAIAUCRbi2\npgIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEG67sTS/MV31W4AAn0rW5yjR\n2a8jPP/V44gw1JhqnE8jAKCMAEh0nPjvle5oLEGectC3Es9Pm7kBDQRFtJCUEAQA\nhp38fNVy/aJiPg2lUKKnA6KjrRm3LxD66N8MSWfxGCIYzQRJHhmZWnS+m1DDOjdu\nFG9FM6QrsCRRcEQuvhKI2ORFfK75D24lj4QaXzw7vfBbAibTaDsYa0b5LxfR5pGj\nYPCQ5LrRex+Ws3DrB3acJE5/XnYJZ+rUO1ZJlm00FTMAAwUD/Ai4ZUunVB8F0VqS\nhJgDYQF08/OlAnDAcbL//P5dtXdztUNSgXZM4wW/XFnDvAsBuRnbfkT/3BeptM9L\neEbdrMi4eThLstSl13ITOsZbSL3i/2OO9sPAxupWzRWOXcQILpqR2YMRK1EapO+M\nNhjrgxU9JpMXz24FESocczSyywDXiEkEGBECAAkFAkW0kJQCGwwACgkQbruxNL8x\nXfXGxQCfZqzSqinohParWaHv+4XNoIz2B7IAn2Ge0O5wjYZeV/joulkTXfPKm7Iu\n=SsZg\n-----END PGP PUBLIC KEY BLOCK-----\n', 'cacert': u'Certificate:\r\n    Data:\r\n        Version: 3 (0x2)\r\n        Serial Number: 67109883 (0x40003fb)\r\n        Signature Algorithm: sha1WithRSAEncryption\r\n        Issuer: C=US, O=GTE Corporation, OU=GTE CyberTrust Solutions, Inc., CN=G\r\n        Validity\r\n            Not Before: Mar 14 20:30:00 2006 GMT\r\n            Not After : Mar 14 23:59:00 2013 GMT\r\n        Subject: C=BE, O=Cybertrust, OU=Educational CA, CN=Cybertrust Educationa\r\n        Subject Public Key Info:\r\n            Public Key Algorithm: rsaEncryption\r\n            RSA Public Key: (2048 bit)\r\n                Modulus (2048 bit):\r\n                    00:95:22:a1:10:1d:4a:46:60:6e:05:91:9b:df:83:\r\n                    c2:ed:12:b2:5a:7c:f8:ab:e1:f8:50:5c:28:2c:7e:\r\n                    7e:00:38:93:b0:8b:4a:f1:c2:4c:3c:10:2c:3c:ef:\r\n                    b0:ec:a1:69:2f:b9:fc:cc:08:14:6b:8d:4f:18:f3:\r\n                    83:d2:fa:a9:37:08:20:aa:5c:aa:80:60:a2:d5:a5:\r\n                    22:00:cf:5a:e5:b4:97:df:ba:1e:be:5c:8e:17:19:\r\n                    66:fd:af:9f:7c:7b:89:b2:0e:24:d8:c7:ab:63:c4:\r\n                    95:32:8d:48:e6:63:59:7d:04:b8:33:a8:bd:d7:5d:\r\n                    64:bc:63:b5:f7:4d:28:fd:f9:06:72:31:5c:ba:45:\r\n                    94:65:a3:d2:b4:58:ec:3b:61:58:44:a3:2f:62:b3:\r\n                    9b:80:b4:82:fd:d5:c7:cc:51:25:e5:95:3f:47:2f:\r\n                    30:7b:ac:c8:78:6e:e2:e1:6d:27:eb:3d:cc:01:82:\r\n                    e8:35:77:8d:ab:58:bb:55:d1:d5:a4:81:56:8d:1c:\r\n                    d0:14:b1:b0:06:de:a0:91:22:f3:f0:a8:34:17:47:\r\n                    c6:e0:3e:f6:0c:5a:ac:7e:50:4b:cd:e1:69:6e:06:\r\n                    fc:06:7e:6a:4d:b4:95:99:a0:59:5c:35:66:ec:d9:\r\n                    49:d4:17:e0:60:b0:5d:a5:d7:1a:e2:2a:6e:66:f2:\r\n                    af:1d\r\n                Exponent: 65537 (0x10001)\r\n        X509v3 extensions:\r\n            X509v3 CRL Distribution Points: \r\n                URI:http://www.public-trust.com/cgi-bin/CRL/2018/cdp.crl\r\n\r\n            X509v3 Subject Key Identifier: \r\n                65:65:A3:3D:D7:3B:11:A3:0A:07:25:37:C9:42:4A:5B:76:77:50:E1\r\n            X509v3 Certificate Policies: \r\n                Policy: 1.3.6.1.4.1.6334.1.0\r\n                  CPS: http://www.public-trust.com/CPS/OmniRoot.html\r\n\r\n            X509v3 Authority Key Identifier: \r\n                DirName:/C=US/O=GTE Corporation/OU=GTE CyberTrust Solutions, Inc\r\n                serial:01:A5\r\n\r\n            X509v3 Key Usage: critical\r\n                Certificate Sign, CRL Sign\r\n            X509v3 Basic Constraints: critical\r\n                CA:TRUE, pathlen:0\r\n    Signature Algorithm: sha1WithRSAEncryption\r\n        43:b3:45:83:54:71:c4:1f:dc:b2:3c:6b:4e:bf:26:f2:4e:f2:\r\n        ad:9a:5b:fa:86:37:88:e8:14:6c:41:18:42:5f:ef:65:3e:eb:\r\n        03:77:a0:b7:9e:75:7a:51:7c:bb:15:5b:b8:af:91:a0:34:92:\r\n        53:ed:7f:2a:49:84:ac:b9:80:4b:b5:c7:b2:23:22:fb:eb:d8:\r\n        fb:6e:c9:3c:f3:d2:d1:bb:be:c9:1c:ff:6d:01:db:69:80:0e:\r\n        99:a5:ea:9e:7b:97:98:8f:b7:cf:22:9c:b3:b8:5d:e5:a9:33:\r\n        17:74:c6:97:37:0f:b4:e9:26:82:5f:61:0b:3f:1e:3d:64:e9:\r\n        2b:9b\r\n-----BEGIN CERTIFICATE-----\r\nMIIEQjCCA6ugAwIBAgIEBAAD+zANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJV\r\nUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU\r\ncnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds\r\nb2JhbCBSb290MB4XDTA2MDMxNDIwMzAwMFoXDTEzMDMxNDIzNTkwMFowXzELMAkG\r\nA1UEBhMCQkUxEzARBgNVBAoTCkN5YmVydHJ1c3QxFzAVBgNVBAsTDkVkdWNhdGlv\r\nbmFsIENBMSIwIAYDVQQDExlDeWJlcnRydXN0IEVkdWNhdGlvbmFsIENBMIIBIjAN\r\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlSKhEB1KRmBuBZGb34PC7RKyWnz4\r\nq+H4UFwoLH5+ADiTsItK8cJMPBAsPO+w7KFpL7n8zAgUa41PGPOD0vqpNwggqlyq\r\ngGCi1aUiAM9a5bSX37oevlyOFxlm/a+ffHuJsg4k2MerY8SVMo1I5mNZfQS4M6i9\r\n111kvGO1900o/fkGcjFcukWUZaPStFjsO2FYRKMvYrObgLSC/dXHzFEl5ZU/Ry8w\r\ne6zIeG7i4W0n6z3MAYLoNXeNq1i7VdHVpIFWjRzQFLGwBt6gkSLz8Kg0F0fG4D72\r\nDFqsflBLzeFpbgb8Bn5qTbSVmaBZXDVm7NlJ1BfgYLBdpdca4ipuZvKvHQIDAQAB\r\no4IBbzCCAWswRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL3d3dy5wdWJsaWMtdHJ1\r\nc3QuY29tL2NnaS1iaW4vQ1JMLzIwMTgvY2RwLmNybDAdBgNVHQ4EFgQUZWWjPdc7\r\nEaMKByU3yUJKW3Z3UOEwUwYDVR0gBEwwSjBIBgkrBgEEAbE+AQAwOzA5BggrBgEF\r\nBQcCARYtaHR0cDovL3d3dy5wdWJsaWMtdHJ1c3QuY29tL0NQUy9PbW5pUm9vdC5o\r\ndG1sMIGJBgNVHSMEgYEwf6F5pHcwdTELMAkGA1UEBhMCVVMxGDAWBgNVBAoTD0dU\r\nRSBDb3Jwb3JhdGlvbjEnMCUGA1UECxMeR1RFIEN5YmVyVHJ1c3QgU29sdXRpb25z\r\nLCBJbmMuMSMwIQYDVQQDExpHVEUgQ3liZXJUcnVzdCBHbG9iYWwgUm9vdIICAaUw\r\nDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQEF\r\nBQADgYEAQ7NFg1RxxB/csjxrTr8m8k7yrZpb+oY3iOgUbEEYQl/vZT7rA3egt551\r\nelF8uxVbuK+RoDSSU+1/KkmErLmAS7XHsiMi++vY+27JPPPS0bu+yRz/bQHbaYAO\r\nmaXqnnuXmI+3zyKcs7hd5akzF3TGlzcPtOkmgl9hCz8ePWTpK5s=\r\n-----END CERTIFICATE-----\r\nCertificate:\r\n    Data:\r\n        Version: 1 (0x0)\r\n        Serial Number: 421 (0x1a5)\r\n        Signature Algorithm: md5WithRSAEncryption\r\n        Issuer: C=US, O=GTE Corporation, OU=GTE CyberTrust Solutions, Inc., CN=GTE CyberTrust Global Root\r\n        Validity\r\n            Not Before: Aug 13 00:29:00 1998 GMT\r\n            Not After : Aug 13 23:59:00 2018 GMT\r\n        Subject: C=US, O=GTE Corporation, OU=GTE CyberTrust Solutions, Inc., CN=GTE CyberTrust Global Root\r\n        Subject Public Key Info:\r\n            Public Key Algorithm: rsaEncryption\r\n            RSA Public Key: (1024 bit)\r\n                Modulus (1024 bit):\r\n                    00:95:0f:a0:b6:f0:50:9c:e8:7a:c7:88:cd:dd:17:\r\n                    0e:2e:b0:94:d0:1b:3d:0e:f6:94:c0:8a:94:c7:06:\r\n                    c8:90:97:c8:b8:64:1a:7a:7e:6c:3c:53:e1:37:28:\r\n                    73:60:7f:b2:97:53:07:9f:53:f9:6d:58:94:d2:af:\r\n                    8d:6d:88:67:80:e6:ed:b2:95:cf:72:31:ca:a5:1c:\r\n                    72:ba:5c:02:e7:64:42:e7:f9:a9:2c:d6:3a:0d:ac:\r\n                    8d:42:aa:24:01:39:e6:9c:3f:01:85:57:0d:58:87:\r\n                    45:f8:d3:85:aa:93:69:26:85:70:48:80:3f:12:15:\r\n                    c7:79:b4:1f:05:2f:3b:62:99\r\n                Exponent: 65537 (0x10001)\r\n    Signature Algorithm: md5WithRSAEncryption\r\n        6d:eb:1b:09:e9:5e:d9:51:db:67:22:61:a4:2a:3c:48:77:e3:\r\n        a0:7c:a6:de:73:a2:14:03:85:3d:fb:ab:0e:30:c5:83:16:33:\r\n        81:13:08:9e:7b:34:4e:df:40:c8:74:d7:b9:7d:dc:f4:76:55:\r\n        7d:9b:63:54:18:e9:f0:ea:f3:5c:b1:d9:8b:42:1e:b9:c0:95:\r\n        4e:ba:fa:d5:e2:7c:f5:68:61:bf:8e:ec:05:97:5f:5b:b0:d7:\r\n        a3:85:34:c4:24:a7:0d:0f:95:93:ef:cb:94:d8:9e:1f:9d:5c:\r\n        85:6d:c7:aa:ae:4f:1f:22:b5:cd:95:ad:ba:a7:cc:f9:ab:0b:\r\n        7a:7f\r\n-----BEGIN CERTIFICATE-----\r\nMIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYD\r\nVQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNv\r\nbHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJv\r\nb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1MQswCQYDVQQGEwJV\r\nUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU\r\ncnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds\r\nb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrH\r\niM3dFw4usJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTS\r\nr41tiGeA5u2ylc9yMcqlHHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X4\r\n04Wqk2kmhXBIgD8SFcd5tB8FLztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3r\r\nGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l9\r\n3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P\r\nlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/\r\n-----END CERTIFICATE-----\r\n'}
+
+AddPeer(onelab)
diff --git a/trunk/tools/upgrade-db.py b/trunk/tools/upgrade-db.py
new file mode 100755 (executable)
index 0000000..b7614f0
--- /dev/null
@@ -0,0 +1,457 @@
+#!/usr/bin/python
+#
+# Tool for upgrading/converting a db
+# Requirements:
+# 1) Databse Schema - schema for the new database you what to upgrade to
+# 2) Config File - the config file that describes how to convert the db
+#
+# Notes:
+# 1) Will attempt to convert the db defined in  /etc/planetlab/plc_config
+# 2) Does not automatically drop archived database. They must be removed
+#    manually
+
+import sys
+import os
+import getopt
+import pgdb
+
+config = {}
+config_file = "/etc/planetlab/plc_config"
+execfile(config_file, config)
+upgrade_config_file = "plcdb.3-4.conf"
+schema_file = "planetlab4.sql"
+temp_dir = "/tmp"
+
+
+def usage():
+        print "Usage: %s [OPTION] UPGRADE_CONFIG_FILE " % sys.argv[0]
+        print "Options:"
+        print "     -s, --schema=FILE       Upgraded Database Schema"
+        print "     -t, --temp-dir=DIR      Temp Directory"
+        print "     --help                  This message"
+        sys.exit(1)
+
+try:
+        (opts, argv) = getopt.getopt(sys.argv[1:],
+                                     "s:d:",
+                                     ["schema=",
+                                      "temp-dir=",
+                                      "help"])
+except getopt.GetoptError, err:
+       print "Error: ", err.msg
+        usage()
+
+for (opt, optval) in opts:
+        if opt == "-s" or opt == "--schema":
+               schema_file = optval
+        elif opt == "-d" or opt == "--temp-dir":
+               temp_dir = optval
+        elif opt == "--help":
+               usage()
+try:
+       upgrade_config_file = argv[0]
+except IndexError:
+       print "Error: too few arguments"
+        usage()
+
+schema = {}
+inserts = []
+schema_items_ordered = []
+sequences = {}
+temp_tables = {}
+
+
+# load conf file for this upgrade
+try:
+        upgrade_config = {}
+        execfile(upgrade_config_file, upgrade_config)
+        upgrade_config.pop('__builtins__')
+       db_version_previous = upgrade_config['DB_VERSION_PREVIOUS']
+        db_version_new = upgrade_config['DB_VERSION_NEW']
+
+except IOError, fault:
+        print "Error: upgrade config file (%s) not found. Exiting" % \
+               (fault)
+        sys.exit(1) 
+except KeyError, fault:
+       print "Error: %s not set in upgrade confing (%s). Exiting" % \
+               (fault, upgrade_config_file)
+       sys.exit(1)
+
+
+
+
+def connect():
+       db = pgdb.connect(user = config['PLC_DB_USER'],
+                 database = config['PLC_DB_NAME'])     
+       return db
+
+def archive_db(database, archived_database):
+
+        archive_db = " dropdb -U postgres %s > /dev/null 2>&1;" \
+                    " psql template1 postgres -qc " \
+                     " 'ALTER DATABASE %s RENAME TO %s;';" % \
+                     (archived_database, database, archived_database)
+       exit_status = os.system(archive_db)
+        if exit_status:
+                print "Error: unable to archive database. Upgrade failed"
+                sys.exit(1)
+        #print "Status: %s has been archived. now named %s" % (database, archived_database)
+
+
+def encode_utf8(inputfile_name, outputfile_name):
+       # rewrite a iso-8859-1 encoded file in utf8
+       try:
+               inputfile = open(inputfile_name, 'r')
+               outputfile = open(outputfile_name, 'w')
+               for line in inputfile:
+                       if line.upper().find('SET CLIENT_ENCODING') > -1:
+                               continue
+                       outputfile.write(unicode(line, 'iso-8859-1').encode('utf8'))
+               inputfile.close()
+               outputfile.close()              
+       except:
+               print 'error encoding file'
+               raise
+
+def create_item_from_schema(item_name):
+
+       try:
+                (type, body_list) = schema[item_name]
+               exit_status = os.system('psql %s %s -qc "%s" > /dev/null 2>&1' % \
+                           (config['PLC_DB_NAME'], config['PLC_DB_USER'],"".join(body_list) ) )
+               if exit_status:
+                       raise Exception
+        except Exception, fault:
+                print 'Error: create %s failed. Check schema.' % item_name
+               sys.exit(1)
+               raise fault
+
+        except KeyError:
+                print "Error: cannot create %s. definition not found in %s" % \
+                        (key, schema_file)
+                return False
+
+def fix_row(row, table_name, table_fields):
+
+       if table_name in ['nodenetworks']:
+               # convert str bwlimit to bps int
+               bwlimit_index = table_fields.index('bwlimit')
+               if isinstance(row[bwlimit_index], int):
+                       pass
+               elif row[bwlimit_index].find('mbit') > -1:
+                       row[bwlimit_index] = int(row[bwlimit_index].split('mbit')[0]) \
+                                           * 1000000
+               elif row[bwlimit_index].find('kbit') > -1:
+                       row[bwlimit_index] = int(row[bwlimit_index].split('kbit')[0]) \
+                                            * 1000
+       elif table_name in ['slice_attribute']:
+               # modify some invalid foreign keys
+               attribute_type_index = table_fields.index('attribute_type_id')
+               if row[attribute_type_index] == 10004:
+                       row[attribute_type_index] = 10016
+               elif row[attribute_type_index] == 10006:
+                       row[attribute_type_index] = 10017
+               elif row[attribute_type_index] in [10031, 10033]:
+                       row[attribute_type_index] = 10037
+               elif row[attribute_type_index] in [10034, 10035]:
+                       row[attribute_type_index] = 10036
+       elif table_name in ['slice_attribute_types']:
+               type_id_index = table_fields.index('attribute_type_id')
+               if row[type_id_index] in [10004, 10006, 10031, 10033, 10034, 10035]:
+                       return None
+       return row
+       
+def fix_table(table, table_name, table_fields):
+       if table_name in ['slice_attribute_types']:
+               # remove duplicate/redundant primary keys
+               type_id_index = table_fields.index('attribute_type_id')
+               for row in table:
+                       if row[type_id_index] in [10004, 10006, 10031, 10033, 10034, 10035]:
+                               table.remove(row)
+       return table
+
+def remove_temp_tables():
+       # remove temp_tables
+       try:
+               for temp_table in temp_tables:
+                       os.remove(temp_tables[temp_table])
+       except:
+               raise
+
+def generate_temp_table(table_name, db):
+       cursor = db.cursor()
+        try:
+                # get upgrade directions
+                table_def = upgrade_config[table_name].replace('(', '').replace(')', '').split(',')
+                table_fields, old_fields, joins, wheres = [], [], set(), set()
+                for field in table_def:
+                        field_parts = field.strip().split(':')
+                        table_fields.append(field_parts[0])
+                        old_fields.append(field_parts[1])
+                        if field_parts[2:]:    
+                               joins.update(set(filter(lambda x: not x.find('=') > -1, field_parts[2:])))
+                               wheres.update(set(filter(lambda x: x.find('=') > -1, field_parts[2:])))
+               
+               # get indices of fields that cannot be null
+               (type, body_list) = schema[table_name]
+               not_null_indices = []
+               for field in table_fields:
+                       for body_line in body_list:
+                               if body_line.find(field) > -1 and \
+                                  body_line.upper().find("NOT NULL") > -1:
+                                       not_null_indices.append(table_fields.index(field))
+               # get index of primary key
+               primary_key_indices = []
+               for body_line in body_list:
+                       if body_line.find("PRIMARY KEY") > -1:
+                               primary_key = body_line
+                               for field in table_fields:
+                                       if primary_key.find(" "+field+" ") > -1:
+                                               primary_key_indices.append(table_fields.index(field))
+                               #break
+       
+                # get old data
+                get_old_data = "SELECT DISTINCT %s FROM %s" % \
+                      (", ".join(old_fields), old_fields[0].split(".")[0])
+                for join in joins:
+                        get_old_data = get_old_data + " INNER JOIN %s USING (%s) " % \
+                                       (join.split('.')[0], join.split('.')[1])
+               if wheres:      
+                       get_old_data = get_old_data + " WHERE " 
+               for where in wheres:
+                       get_old_data = get_old_data + " %s" % where 
+                cursor.execute(get_old_data)
+                rows = cursor.fetchall()
+
+                # write data to a temp file
+                temp_file_name = '%s/%s.tmp' % (temp_dir, table_name)
+                temp_file = open(temp_file_name, 'w')
+                for row in rows:
+                       # attempt to make any necessary fixes to data
+                       row = fix_row(row, table_name, table_fields)
+                       # do not attempt to write null rows
+                       if row == None:
+                               continue
+                       # do not attempt to write rows with null primary keys
+                       if filter(lambda x: row[x] == None, primary_key_indices):
+                               continue 
+                        for i in range(len(row)):
+                               # convert nulls into something pg can understand
+                               if row[i] == None:
+                                        if i in not_null_indices:
+                                               # XX doesnt work if column is int type
+                                               row[i] = ""
+                                       else: 
+                                               row[i] = "\N"
+                                if isinstance(row[i], int) or isinstance(row[i], float):
+                                        row[i] = str(row[i])
+                               # escape whatever can mess up the data format
+                               if isinstance(row[i], str):
+                                       row[i] = row[i].replace('\t', '\\t')
+                                       row[i] = row[i].replace('\n', '\\n')
+                                       row[i] = row[i].replace('\r', '\\r')
+                       data_row = "\t".join(row)
+                       temp_file.write(data_row + "\n")
+                temp_file.write("\.\n")
+                temp_file.close()
+                temp_tables[table_name] = temp_file_name
+
+        except KeyError:
+                #print "WARNING: cannot upgrade %s. upgrade def not found. skipping" % \
+                #       (table_name)
+                return False
+        except IndexError, fault:
+                print "Error: error found in upgrade config file. " \
+                      "check %s configuration. Aborting " % \
+                      (table_name)
+                sys.exit(1)
+        except:
+                print "Error: configuration for %s doesnt match db schema. " \
+                     " Aborting" % (table_name)
+                try:
+                        db.rollback()
+                except:
+                        pass
+               raise
+
+
+# Connect to current db
+db = connect()
+cursor = db.cursor()
+
+# determin current db version
+try:
+       cursor.execute("SELECT relname from pg_class where relname = 'plc_db_version'")
+       rows = cursor.fetchall()
+       if not rows:
+               print "Warning: current db has no version. Unable to validate config file."
+       else:
+               cursor.execute("SELECT version FROM plc_db_version")
+               rows = cursor.fetchall()
+               if not rows or not rows[0]:
+                       print "Warning: current db has no version. Unable to validate config file."
+               elif rows[0][0] == db_version_new:
+                               print "Status: Versions are the same. No upgrade necessary."
+                       sys.exit()
+               elif not rows[0][0] == db_version_previous:
+                       print "Stauts: DB_VERSION_PREVIOUS in config file (%s) does not" \
+                             " match current db version %d" % (upgrade_config_file, rows[0][0])
+                       sys.exit()
+               else:
+                       print "STATUS: attempting upgrade from %d to %d" % \
+                                (db_version_previous, db_version_new)  
+       
+       # check db encoding
+       sql = " SELECT pg_catalog.pg_encoding_to_char(d.encoding)" \
+             " FROM pg_catalog.pg_database d " \
+             " WHERE d.datname = '%s' " % config['PLC_DB_NAME']
+       cursor.execute(sql)
+       rows = cursor.fetchall()
+       if rows[0][0] not in ['UTF8', 'UNICODE']:
+               print "WARNING: db encoding is not utf8. Attempting to encode"
+               db.close()
+               # generate db dump
+               dump_file = '%s/dump.sql' % (temp_dir)
+               dump_file_encoded = dump_file + ".utf8"
+               dump_cmd = 'pg_dump -i %s -U postgres -f %s > /dev/null 2>&1' % \
+                          (config['PLC_DB_NAME'], dump_file)
+               if os.system(dump_cmd):
+                       print "ERROR: during db dump. Exiting."
+                       sys.exit(1)
+               # encode dump to utf8
+               print "Status: encoding database dump"
+               encode_utf8(dump_file, dump_file_encoded)
+               # archive original db
+               archive_db(config['PLC_DB_NAME'], config['PLC_DB_NAME']+'_sqlascii_archived')
+               # create a utf8 database and upload encoded data
+               recreate_cmd = 'createdb -U postgres -E UTF8 %s > /dev/null; ' \
+                              'psql -a -U  %s %s < %s > /dev/null 2>&1;'   % \
+                         (config['PLC_DB_NAME'], config['PLC_DB_USER'], \
+                          config['PLC_DB_NAME'], dump_file_encoded) 
+               print "Status: recreating database as utf8"
+               if os.system(recreate_cmd):
+                       print "Error: database encoding failed. Aborting"
+                       sys.exit(1)
+               
+               os.remove(dump_file_encoded)
+               os.remove(dump_file)
+except:
+       raise
+
+
+db = connect()
+cursor = db.cursor()
+
+# parse the schema user wishes to upgrade to
+try:
+       file = open(schema_file, 'r')
+       index = 0
+       lines = file.readlines()
+       while index < len(lines):
+               line = lines[index] 
+               if line.find("--") > -1:
+                       line_parts = line.split("--")
+                        line = line_parts[0]
+               # find all created objects
+               if line.startswith("CREATE"):
+                       line_parts = line.split(" ")
+                       if line_parts[1:3] == ['OR', 'REPLACE']:
+                               line_parts = line_parts[2:]
+                       item_type = line_parts[1]
+                       item_name = line_parts[2]
+                       schema_items_ordered.append(item_name)
+                       if item_type in ['INDEX']:
+                               schema[item_name] = (item_type, line)
+                       
+                       # functions, tables, views span over multiple lines
+                       # handle differently than indexes
+                       elif item_type in ['AGGREGATE', 'TABLE', 'VIEW']:
+                               fields = [line]
+                               while index < len(lines):
+                                       index = index + 1
+                                       nextline =lines[index]
+                                       if nextline.find("--") > -1:
+                                                new_line_parts = nextline.split("--")
+                                                nextline = new_line_parts[0]
+                                       # look for any sequences
+                                       if item_type in ['TABLE'] and nextline.find('serial') > -1:
+                                               sequences[item_name] = nextline.strip().split()[0]
+                                       fields.append(nextline)
+                                       if nextline.find(";") >= 0:
+                                               break
+                               schema[item_name] = (item_type, fields)
+                       else:
+                               print "Error: unknown type %s" % item_type
+               elif line.startswith("INSERT"):
+                       inserts.append(line)
+               index = index + 1
+                               
+except:
+       raise
+
+print "Status: generating temp tables"
+# generate all temp tables
+for key in schema_items_ordered:
+       (type, body_list) = schema[key]
+       if type == 'TABLE':
+               generate_temp_table(key, db)
+
+# disconenct from current database and archive it
+cursor.close()
+db.close()
+
+print "Status: archiving database"
+archive_db(config['PLC_DB_NAME'], config['PLC_DB_NAME']+'_archived')
+os.system('createdb -U postgres -E UTF8 %s > /dev/null; ' % config['PLC_DB_NAME'])
+
+print "Status: upgrading database"
+# attempt to create and load all items from schema into temp db
+try:
+       for key in schema_items_ordered:
+               (type, body_list) = schema[key]
+               create_item_from_schema(key)
+               if type == 'TABLE':
+                       if upgrade_config.has_key(key):                         
+                               # attempt to populate with temp table data
+                               table_def = upgrade_config[key].replace('(', '').replace(')', '').split(',')
+                               table_fields = [field.strip().split(':')[0] for field in table_def]
+                               insert_cmd = "psql %s %s -c " \
+                                             " 'COPY %s (%s) FROM stdin;' < %s " % \
+                                             (config['PLC_DB_NAME'], config['PLC_DB_USER'], key, 
+                                             ", ".join(table_fields), temp_tables[key] )
+                               exit_status = os.system(insert_cmd)
+                               if exit_status:
+                                       print "Error: upgrade %s failed" % key
+                                       sys.exit(1)
+                               # update the primary key sequence
+                               if sequences.has_key(key):
+                                       sequence = key +"_"+ sequences[key] +"_seq"
+                                       update_seq = "psql %s %s -c " \
+                                            " \"select setval('%s', max(%s)) FROM %s;\" > /dev/null" % \
+                                            (config['PLC_DB_NAME'], config['PLC_DB_USER'], sequence, 
+                                             sequences[key], key)
+                                       exit_status = os.system(update_seq)
+                                       if exit_status:
+                                               print "Error: sequence %s update failed" % sequence
+                                               sys.exit(1)
+                       else:
+                               # check if there are any insert stmts in schema for this table
+                               print "Warning: %s has no temp data file. Unable to populate with old data" % key
+                               for insert_stmt in inserts:
+                                       if insert_stmt.find(key) > -1:
+                                               insert_cmd = 'psql %s postgres -qc "%s;" > /dev/null 2>&1' % \
+                                               (config['PLC_DB_NAME'], insert_stmt)
+                                               os.system(insert_cmd) 
+except:
+       print "Error: failed to populate db. Unarchiving original database and aborting"
+       undo_command = "dropdb -U postgres %s > /dev/null; psql template1 postgres -qc" \
+                       " 'ALTER DATABASE %s RENAME TO %s;';  > /dev/null" % \
+                       (config['PLC_DB_NAME'], config['PLC_DB_NAME']+'_archived', config['PLC_DB_NAME'])
+       os.system(undo_command) 
+       #remove_temp_tables()
+       raise
+       
+#remove_temp_tables()
+
+print "upgrade complete"